Browse Source

Move TextGeometry, FontLoader and Font to examples. (#22560)

Michael Herzog 3 years ago
parent
commit
eb58ff1531
41 changed files with 182 additions and 429 deletions
  1. 0 54
      docs/api/en/extras/core/Font.html
  2. 2 2
      docs/api/en/extras/core/Interpolations.html
  3. 1 2
      docs/api/en/extras/core/ShapePath.html
  4. 2 2
      docs/api/ko/extras/core/Interpolations.html
  5. 2 3
      docs/api/ko/extras/core/ShapePath.html
  6. 0 55
      docs/api/zh/extras/core/Font.html
  7. 2 2
      docs/api/zh/extras/core/Interpolations.html
  8. 0 1
      docs/api/zh/extras/core/ShapePath.html
  9. 6 8
      docs/examples/en/geometries/TextGeometry.html
  10. 6 6
      docs/examples/en/loaders/FontLoader.html
  11. 5 7
      docs/examples/zh/geometries/TextGeometry.html
  12. 5 5
      docs/examples/zh/loaders/FontLoader.html
  13. 6 8
      docs/list.json
  14. 0 75
      docs/scenes/geometry-browser.html
  15. 4 2
      examples/jsm/geometries/TextGeometry.js
  16. 55 2
      examples/jsm/loaders/FontLoader.js
  17. 5 2
      examples/webgl_camera_logarithmicdepthbuffer.html
  18. 5 2
      examples/webgl_custom_attributes_lines.html
  19. 5 2
      examples/webgl_geometry_text.html
  20. 2 1
      examples/webgl_geometry_text_shapes.html
  21. 2 1
      examples/webgl_geometry_text_stroke.html
  22. 4 2
      examples/webgl_loader_ttf.html
  23. 4 2
      examples/webgl_materials_variations_basic.html
  24. 4 2
      examples/webgl_materials_variations_lambert.html
  25. 4 2
      examples/webgl_materials_variations_phong.html
  26. 4 2
      examples/webgl_materials_variations_physical.html
  27. 4 2
      examples/webgl_materials_variations_standard.html
  28. 4 2
      examples/webgl_materials_variations_toon.html
  29. 4 2
      examples/webgl_modifier_curve.html
  30. 4 2
      examples/webgl_modifier_curve_instanced.html
  31. 4 2
      examples/webgl_modifier_tessellation.html
  32. 4 2
      examples/webgl_shadowmap.html
  33. 4 2
      examples/webgl_shadowmap_performance.html
  34. 19 0
      src/Three.Legacy.js
  35. 0 2
      src/Three.js
  36. 0 1
      src/geometries/Geometries.js
  37. 0 53
      src/loaders/FontLoader.js
  38. 0 35
      test/unit/src/extras/core/Font.tests.js
  39. 0 32
      test/unit/src/geometries/TextGeometry.tests.js
  40. 0 37
      test/unit/src/loaders/FontLoader.tests.js
  41. 0 3
      test/unit/three.source.unit.js

+ 0 - 54
docs/api/en/extras/core/Font.html

@@ -1,54 +0,0 @@
-<!DOCTYPE html>
-<html lang="en">
-	<head>
-		<meta charset="utf-8" />
-		<base href="../../../../" />
-		<script src="page.js"></script>
-		<link type="text/css" rel="stylesheet" href="page.css" />
-	</head>
-	<body>
-		<h1>[name]</h1>
-
-		<p class="desc">
-		Create a set of [page:Shape Shapes] representing a font loaded in JSON format.<br /><br />
-
-		This is used internally by the [page:FontLoader].
-		</p>
-
-		<h2>Examples</h2>
-
-		<p>
-		[example:webgl_geometry_text_shapes geometry / text / shapes ]
-		</p>
-
-		<h2>Constructor</h2>
-
-		<h3>[name]( data )</h3>
-		<p>
-		data -- JSON data representing the font.<br /><br />
-
-		This constructor creates a new [name], which is an array of [page:Shape Shapes].
-		</p>
-
-		<h2>Properties</h2>
-
-		<h3>[property:Array data]</h3>
-		<p>The JSON data passed in the constructor.</p>
-
-		<h2>Methods</h2>
-
-		<h3>[method:null generateShapes]( [param:String text], [param:Float size] )</h3>
-		<p>
-			[page:String text] -- string of text.<br />
-			[page:Float size] -- (optional) scale for the [page:Shape Shapes]. Default is *100*.<br />
-
-			Creates an array of [page:Shape Shapes] representing the text in the font.
-		</p>
-
-		<h2>Source</h2>
-
-		<p>
-			[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
-		</p>
-	</body>
-</html>

+ 2 - 2
docs/api/en/extras/core/Interpolations.html

@@ -28,7 +28,7 @@
 		t -- interpolation weight.<br />
 		t -- interpolation weight.<br />
 		p0, p1, p2 -- the starting, control and end points defining the curve.<br /><br />
 		p0, p1, p2 -- the starting, control and end points defining the curve.<br /><br />
 
 
-		Used internally by [page:QuadraticBezierCurve3 QuadraticBezierCurve3], [page:QuadraticBezierCurve QuadraticBezierCurve] and [page:Font Font].
+		Used internally by [page:QuadraticBezierCurve3 QuadraticBezierCurve3] and [page:QuadraticBezierCurve QuadraticBezierCurve].
 		</p>
 		</p>
 
 
 		<h3>[method:Float CubicBezier]( [param:Float t], [param:Float p0], [param:Float p1], [param:Float p2], [param:Float p3] )</h3>
 		<h3>[method:Float CubicBezier]( [param:Float t], [param:Float p0], [param:Float p1], [param:Float p2], [param:Float p3] )</h3>
@@ -36,7 +36,7 @@
 		t -- interpolation weight.<br />
 		t -- interpolation weight.<br />
 		p0, p1, p2, p3 -- the starting, control(twice) and end points defining the curve.<br /><br />
 		p0, p1, p2, p3 -- the starting, control(twice) and end points defining the curve.<br /><br />
 
 
-		Used internally by [page:CubicBezierCurve3 CubicBezierCurve3], [page:CubicBezierCurve CubicBezierCurve] and [page:Font Font].
+		Used internally by [page:CubicBezierCurve3 CubicBezierCurve3] and [page:CubicBezierCurve CubicBezierCurve].
 		</p>
 		</p>
 
 
 		<h2>Source</h2>
 		<h2>Source</h2>

+ 1 - 2
docs/api/en/extras/core/ShapePath.html

@@ -11,8 +11,7 @@
 
 
 		<p class="desc">
 		<p class="desc">
 		This class is used to convert a series of shapes to an array of [page:Path]s, for example an SVG shape to a
 		This class is used to convert a series of shapes to an array of [page:Path]s, for example an SVG shape to a
-		path (see the example below). It is used internally by [page:Font] to convert a font in JSON format to a
-		series of paths.
+		path (see the example below).
 		</p>
 		</p>
 
 
 		<h2>Examples</h2>
 		<h2>Examples</h2>

+ 2 - 2
docs/api/ko/extras/core/Interpolations.html

@@ -28,7 +28,7 @@
 		t -- 보간 가중치.<br />
 		t -- 보간 가중치.<br />
 		p0, p1, p2 -- 곡선을 정의하는 시작, 조절, 끝 점입니다.<br /><br />
 		p0, p1, p2 -- 곡선을 정의하는 시작, 조절, 끝 점입니다.<br /><br />
 
 
-		[page:QuadraticBezierCurve3 QuadraticBezierCurve3], [page:QuadraticBezierCurve QuadraticBezierCurve] 및 [page:Font Font]에서 내부적으로 사용됩니다.
+		[page:QuadraticBezierCurve3 QuadraticBezierCurve3] 및 [page:QuadraticBezierCurve QuadraticBezierCurve]에서 내부적으로 사용됩니다.
 		</p>
 		</p>
 
 
 		<h3>[method:Float CubicBezier]( [param:Float t], [param:Float p0], [param:Float p1], [param:Float p2], [param:Float p3] )</h3>
 		<h3>[method:Float CubicBezier]( [param:Float t], [param:Float p0], [param:Float p1], [param:Float p2], [param:Float p3] )</h3>
@@ -36,7 +36,7 @@
 		t -- 보간 가중치.<br />
 		t -- 보간 가중치.<br />
 		p0, p1, p2, p3 -- 곡선을 정의하는 시작, 조절(두 번), 끝 점입니다.<br /><br />
 		p0, p1, p2, p3 -- 곡선을 정의하는 시작, 조절(두 번), 끝 점입니다.<br /><br />
 
 
-		[page:CubicBezierCurve3 CubicBezierCurve3], [page:CubicBezierCurve CubicBezierCurve] 및 [page:Font Font]에서 내부적으로 사용됩니다.
+		[page:CubicBezierCurve3 CubicBezierCurve3] 및 [page:CubicBezierCurve CubicBezierCurve]에서 내부적으로 사용됩니다.
 		</p>
 		</p>
 
 
 		<h2>소스코드</h2>
 		<h2>소스코드</h2>

+ 2 - 3
docs/api/ko/extras/core/ShapePath.html

@@ -10,8 +10,7 @@
 		<h1>[name]</h1>
 		<h1>[name]</h1>
 
 
 		<p class="desc">
 		<p class="desc">
-		This class is used to convert 이 클래스는 연속된 shape들을 [page:Path] 배열로 바꾸는데에 사용되며, 일례로 SVG shape를 path로 바꾸는 것이 있습니다.(아래 예제를 확인하세요). 
-		[page:Font]에서 내부적으로 JSON 포맷의 폰드를 path 시리즈로 만드는 데에 사용됩니다.
+		This class is used to convert 이 클래스는 연속된 shape들을 [page:Path] 배열로 바꾸는데에 사용되며, 일례로 SVG shape를 path로 바꾸는 것이 있습니다.(아래 예제를 확인하세요).
 		</p>
 		</p>
 
 
 		<h2>예제</h2>
 		<h2>예제</h2>
@@ -71,7 +70,7 @@
 		noHoles -- holes를 생성할지 안 할지를 설정합니다.
 		noHoles -- holes를 생성할지 안 할지를 설정합니다.
 		</p>
 		</p>
 		<p>
 		<p>
-		[page:ShapePath.subPaths subPaths] 배열을 Shapes 배열로 변환합니다. 기본값으로 solid shapes는 시계방향(CW)이고 holes는 반시계방향(CCW)입니다. 
+		[page:ShapePath.subPaths subPaths] 배열을 Shapes 배열로 변환합니다. 기본값으로 solid shapes는 시계방향(CW)이고 holes는 반시계방향(CCW)입니다.
 		isCCW가 true면, 이 값들이 반대가 됩니다.
 		isCCW가 true면, 이 값들이 반대가 됩니다.
 		noHoles 파라미터가 true면 모든 path들은 solid shapes로 설정되고 isCCW는 무시됩니다.
 		noHoles 파라미터가 true면 모든 path들은 solid shapes로 설정되고 isCCW는 무시됩니다.
 		<br/>
 		<br/>

+ 0 - 55
docs/api/zh/extras/core/Font.html

@@ -1,55 +0,0 @@
-<!DOCTYPE html>
-<html lang="zh">
-	<head>
-		<meta charset="utf-8" />
-		<base href="../../../../" />
-		<script src="page.js"></script>
-		<link type="text/css" rel="stylesheet" href="page.css" />
-	</head>
-	<body>
-		<h1>字体([name])</h1>
-
-		<p class="desc">
-		以JSON格式,创建一系列的[page:Shape Shape](形状)来表示一个字体。
-		<br /><br />
-
-		该类在内部由[page:FontLoader]所使用。
-		</p>
-
-		<h2>例子</h2>
-
-		<p>
-		[example:webgl_geometry_text_shapes geometry / text / shapes ]
-		</p>
-
-		<h2>构造函数</h2>
-
-		<h3>[name]( data )</h3>
-		<p>
-		data -- 表示字体的JSON数据。<br /><br />
-
-		这一构造函数创建一个新的[name],它是一个[page:Shape Shapes]数组。
-		</p>
-
-		<h2>属性</h2>
-
-		<h3>[property:Array data]</h3>
-		<p>传入到构造函数的JSON数据。</p>
-
-		<h2>方法</h2>
-
-		<h3>[method:null generateShapes]( [param:String text], [param:Float size] )</h3>
-		<p>
-			[page:String text] -- 文本字符串。<br />
-			[page:Float size] -- (可选)[page:Shape Shapes]的缩放,默认值为*100*。<br />
-
-			创建一个[page:Shape Shapes]数组,表示使用字体的文本。
-		</p>
-
-		<h2>源代码</h2>
-
-		<p>
-			[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
-		</p>
-	</body>
-</html>

+ 2 - 2
docs/api/zh/extras/core/Interpolations.html

@@ -28,7 +28,7 @@
 		t -- 插值权重<br />
 		t -- 插值权重<br />
 		p0, p1, p2 -- 定义了该曲线的起始点、控制点和终止点。<br /><br />
 		p0, p1, p2 -- 定义了该曲线的起始点、控制点和终止点。<br /><br />
 
 
-		在内部由[page:QuadraticBezierCurve3 QuadraticBezierCurve3]、[page:QuadraticBezierCurve QuadraticBezierCurve]和[page:Font Font]所使用。
+		在内部由[page:QuadraticBezierCurve3 QuadraticBezierCurve3]和[page:QuadraticBezierCurve QuadraticBezierCurve]所使用。
 		</p>
 		</p>
 
 
 		<h3>[method:Float CubicBezier]( [param:Float t], [param:Float p0], [param:Float p1], [param:Float p2], [param:Float p3] )</h3>
 		<h3>[method:Float CubicBezier]( [param:Float t], [param:Float p0], [param:Float p1], [param:Float p2], [param:Float p3] )</h3>
@@ -36,7 +36,7 @@
 		t -- 插值权重<br />
 		t -- 插值权重<br />
 		p0, p1, p2, p3 -- 定义了该曲线的起始点、两个控制点和终止点。<br /><br />
 		p0, p1, p2, p3 -- 定义了该曲线的起始点、两个控制点和终止点。<br /><br />
 
 
-		在内部由[page:CubicBezierCurve3 CubicBezierCurve3]、[page:CubicBezierCurve CubicBezierCurve]和[page:Font Font]所使用。
+		在内部由[page:CubicBezierCurve3 CubicBezierCurve3]和[page:CubicBezierCurve CubicBezierCurve]所使用。
 		</p>
 		</p>
 
 
 		<h2>源代码</h2>
 		<h2>源代码</h2>

+ 0 - 1
docs/api/zh/extras/core/ShapePath.html

@@ -11,7 +11,6 @@
 
 
 		<p class="desc">
 		<p class="desc">
 		该类用于转换一系列的形状为一个[page:Path]数组,例如转换SVG中的Path为three.js中的Path(请参阅下方的example)。
 		该类用于转换一系列的形状为一个[page:Path]数组,例如转换SVG中的Path为three.js中的Path(请参阅下方的example)。
-		在内部它由[page:Font]所使用,用于将JSON字体转换为一系列路径。
 		</p>
 		</p>
 
 
 		<h2>例子</h2>
 		<h2>例子</h2>

+ 6 - 8
docs/api/en/geometries/TextGeometry.html → docs/examples/en/geometries/TextGeometry.html

@@ -12,13 +12,11 @@
 		<h1>[name]</h1>
 		<h1>[name]</h1>
 
 
 		<p class="desc">
 		<p class="desc">
-			A class for generating text as a single geometry. It is constructed by providing a string of text, and a hash of
-			parameters consisting of a loaded [page:Font] and settings for the geometry's parent [page:ExtrudeGeometry].
-			See the [page:Font], [page:FontLoader] and [page:Creating_Text] pages for additional details.
+			A class for generating text as a single geometry. It is constructed by providing a string of text, and a set of
+			parameters consisting of a loaded font and settings for the geometry's parent [page:ExtrudeGeometry].
+			See the [page:FontLoader] page for additional details.
 		</p>
 		</p>
 
 
-		<iframe id="scene" src="scenes/geometry-browser.html#TextGeometry"></iframe>
-
 		<script>
 		<script>
 
 
 		// iOS iframe auto-resize workaround
 		// iOS iframe auto-resize workaround
@@ -38,11 +36,11 @@
 		<h2>Code Example</h2>
 		<h2>Code Example</h2>
 
 
 		<code>
 		<code>
-		const loader = new THREE.FontLoader();
+		const loader = new FontLoader();
 
 
 		loader.load( 'fonts/helvetiker_regular.typeface.json', function ( font ) {
 		loader.load( 'fonts/helvetiker_regular.typeface.json', function ( font ) {
 
 
-			const geometry = new THREE.TextGeometry( 'Hello three.js!', {
+			const geometry = new TextGeometry( 'Hello three.js!', {
 				font: font,
 				font: font,
 				size: 80,
 				size: 80,
 				height: 5,
 				height: 5,
@@ -170,7 +168,7 @@
 		<h2>Source</h2>
 		<h2>Source</h2>
 
 
 		<p>
 		<p>
-			[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+			[link:https://github.com/mrdoob/three.js/blob/master/examples/jsm/geometries/TextGeometry.js examples/jsm/geometries/TextGeometry.js]
 		</p>
 		</p>
 	</body>
 	</body>
 </html>
 </html>

+ 6 - 6
docs/api/en/loaders/FontLoader.html → docs/examples/en/loaders/FontLoader.html

@@ -12,7 +12,7 @@
 		<h1>[name]</h1>
 		<h1>[name]</h1>
 
 
 		<p class="desc">
 		<p class="desc">
-		Class for loading a font in JSON format. Returns a [page:Font Font], which is an
+		Class for loading a font in JSON format. Returns a font, which is an
 		array of [page:Shape Shapes] representing the font.
 		array of [page:Shape Shapes] representing the font.
 		This uses the [page:FileLoader] internally for loading files. <br /><br />
 		This uses the [page:FileLoader] internally for loading files. <br /><br />
 
 
@@ -22,7 +22,7 @@
 		<h2>Code Example</h2>
 		<h2>Code Example</h2>
 
 
 		<code>
 		<code>
-		const loader = new THREE.FontLoader();
+		const loader = new FontLoader();
 		const font = loader.load(
 		const font = loader.load(
 			// resource URL
 			// resource URL
 			'fonts/helvetiker_bold.typeface.json',
 			'fonts/helvetiker_bold.typeface.json',
@@ -30,7 +30,7 @@
 			// onLoad callback
 			// onLoad callback
 			function ( font ) {
 			function ( font ) {
 				// do something with the font
 				// do something with the font
-				scene.add( font );
+				console.log( font );
 			},
 			},
 
 
 			// onProgress callback
 			// onProgress callback
@@ -70,7 +70,7 @@
 		<p>
 		<p>
 		[page:String url] — the path or URL to the file. This can also be a
 		[page:String url] — the path or URL to the file. This can also be a
 			[link:https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/Data_URIs Data URI].<br />
 			[link:https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/Data_URIs Data URI].<br />
-		[page:Function onLoad] — Will be called when load completes. The argument will be the loaded [page:Font font].<br />
+		[page:Function onLoad] — Will be called when load completes. The argument will be the loaded font.<br />
 		[page:Function onProgress] — Will be called while load progresses. The argument will be the XMLHttpRequest instance, which contains .[page:Integer total] and .[page:Integer loaded] bytes.<br />
 		[page:Function onProgress] — Will be called while load progresses. The argument will be the XMLHttpRequest instance, which contains .[page:Integer total] and .[page:Integer loaded] bytes.<br />
 		[page:Function onError] — Will be called when load errors.<br /><br />
 		[page:Function onError] — Will be called when load errors.<br /><br />
 
 
@@ -80,13 +80,13 @@
 		<h3>[method:Font parse]( [param:Object json] )</h3>
 		<h3>[method:Font parse]( [param:Object json] )</h3>
 		<p>
 		<p>
 		[page:Object json] — The <em>JSON</em> structure to parse.<br /><br />
 		[page:Object json] — The <em>JSON</em> structure to parse.<br /><br />
-		Parse a <em>JSON</em> structure and return a [page:Font].
+		Parse a <em>JSON</em> structure and return a font.
 		</p>
 		</p>
 
 
 		<h2>Source</h2>
 		<h2>Source</h2>
 
 
 		<p>
 		<p>
-			[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+			[link:https://github.com/mrdoob/three.js/blob/master/examples/jsm/loaders/FontLoader.js examples/jsm/loaders/FontLoader.js]
 		</p>
 		</p>
 	</body>
 	</body>
 </html>
 </html>

+ 5 - 7
docs/api/zh/geometries/TextGeometry.html → docs/examples/zh/geometries/TextGeometry.html

@@ -13,12 +13,10 @@
 
 
 		<p class="desc">
 		<p class="desc">
 				一个用于将文本生成为单一的几何体的类。
 				一个用于将文本生成为单一的几何体的类。
-				它是由一串给定的文本,以及由加载的[page:Font](字体)和该几何体[page:ExtrudeGeometry]父类中的设置所组成的参数来构造的。
-				请参阅[page:Font]、[page:FontLoader]和[page:Creating_Text]页面来查看更多详细信息。
+				它是由一串给定的文本,以及由加载的font(字体)和该几何体[page:ExtrudeGeometry]父类中的设置所组成的参数来构造的。
+				请参阅[page:FontLoader]页面来查看更多详细信息。
 			</p>
 			</p>
 
 
-		<iframe id="scene" src="scenes/geometry-browser.html#TextGeometry"></iframe>
-
 		<script>
 		<script>
 
 
 		// iOS iframe auto-resize workaround
 		// iOS iframe auto-resize workaround
@@ -38,11 +36,11 @@
 		<h2>代码示例</h2>
 		<h2>代码示例</h2>
 
 
 		<code>
 		<code>
-		const loader = new THREE.FontLoader();
+		const loader = new FontLoader();
 
 
 		loader.load( 'fonts/helvetiker_regular.typeface.json', function ( font ) {
 		loader.load( 'fonts/helvetiker_regular.typeface.json', function ( font ) {
 
 
-			const geometry = new THREE.TextGeometry( 'Hello three.js!', {
+			const geometry = new TextGeometry( 'Hello three.js!', {
 				font: font,
 				font: font,
 				size: 80,
 				size: 80,
 				height: 5,
 				height: 5,
@@ -168,7 +166,7 @@
 		<h2>源代码</h2>
 		<h2>源代码</h2>
 
 
 		<p>
 		<p>
-			[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+			[link:https://github.com/mrdoob/three.js/blob/master/examples/jsm/geometries/TextGeometry.js examples/jsm/geometries/TextGeometry.js]
 		</p>
 		</p>
 	</body>
 	</body>
 </html>
 </html>

+ 5 - 5
docs/api/zh/loaders/FontLoader.html → docs/examples/zh/loaders/FontLoader.html

@@ -12,7 +12,7 @@
 		<h1>[name]</h1>
 		<h1>[name]</h1>
 
 
 		<p class="desc">
 		<p class="desc">
-		使用JSON格式中加载字体的一个类。返回[page:Font Font], 返回值是表示字体的[page:Shape Shape]类型的数组。
+		使用JSON格式中加载字体的一个类。返回font, 返回值是表示字体的[page:Shape Shape]类型的数组。
 		其内部使用[page:FileLoader]来加载文件。 <br /><br />
 		其内部使用[page:FileLoader]来加载文件。 <br /><br />
 
 
 		你可以使用[link:https://gero3.github.io/facetype.js/ facetype.js]在线转换字体。
 		你可以使用[link:https://gero3.github.io/facetype.js/ facetype.js]在线转换字体。
@@ -21,7 +21,7 @@
 		<h2>代码示例</h2>
 		<h2>代码示例</h2>
 
 
 		<code>
 		<code>
-		const loader = new THREE.FontLoader();
+		const loader = new FontLoader();
 		const font = loader.load(
 		const font = loader.load(
 			// 资源URL
 			// 资源URL
 			'fonts/helvetiker_bold.typeface.json',
 			'fonts/helvetiker_bold.typeface.json',
@@ -29,7 +29,7 @@
 			// onLoad回调
 			// onLoad回调
 			function ( font ) {
 			function ( font ) {
 				// do something with the font
 				// do something with the font
-				scene.add( font );
+				console.log( font );
 			},
 			},
 
 
 			// onProgress回调
 			// onProgress回调
@@ -79,13 +79,13 @@
 		<h3>[method:Font parse]( [param:Object json] )</h3>
 		<h3>[method:Font parse]( [param:Object json] )</h3>
 		<p>
 		<p>
 		[page:Object json] — The <em>JSON</em> structure to parse.<br /><br />
 		[page:Object json] — The <em>JSON</em> structure to parse.<br /><br />
-		以<em>JSON</em>格式进行解析,并返回一个[page:Font].
+		以<em>JSON</em>格式进行解析,并返回一个font.
 		</p>
 		</p>
 
 
 		<h2>源</h2>
 		<h2>源</h2>
 
 
 		<p>
 		<p>
-			[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+			[link:https://github.com/mrdoob/three.js/blob/master/examples/jsm/loaders/FontLoader.js examples/jsm/loaders/FontLoader.js]
 		</p>
 		</p>
 	</body>
 	</body>
 </html>
 </html>

+ 6 - 8
docs/list.json

@@ -113,7 +113,6 @@
 			"Extras / Core": {
 			"Extras / Core": {
 				"Curve": "api/en/extras/core/Curve",
 				"Curve": "api/en/extras/core/Curve",
 				"CurvePath": "api/en/extras/core/CurvePath",
 				"CurvePath": "api/en/extras/core/CurvePath",
-				"Font": "api/en/extras/core/Font",
 				"Interpolations": "api/en/extras/core/Interpolations",
 				"Interpolations": "api/en/extras/core/Interpolations",
 				"Path": "api/en/extras/core/Path",
 				"Path": "api/en/extras/core/Path",
 				"Shape": "api/en/extras/core/Shape",
 				"Shape": "api/en/extras/core/Shape",
@@ -154,7 +153,6 @@
 				"ShapeGeometry": "api/en/geometries/ShapeGeometry",
 				"ShapeGeometry": "api/en/geometries/ShapeGeometry",
 				"SphereGeometry": "api/en/geometries/SphereGeometry",
 				"SphereGeometry": "api/en/geometries/SphereGeometry",
 				"TetrahedronGeometry": "api/en/geometries/TetrahedronGeometry",
 				"TetrahedronGeometry": "api/en/geometries/TetrahedronGeometry",
-				"TextGeometry": "api/en/geometries/TextGeometry",
 				"TorusGeometry": "api/en/geometries/TorusGeometry",
 				"TorusGeometry": "api/en/geometries/TorusGeometry",
 				"TorusKnotGeometry": "api/en/geometries/TorusKnotGeometry",
 				"TorusKnotGeometry": "api/en/geometries/TorusKnotGeometry",
 				"TubeGeometry": "api/en/geometries/TubeGeometry",
 				"TubeGeometry": "api/en/geometries/TubeGeometry",
@@ -206,7 +204,6 @@
 				"CubeTextureLoader": "api/en/loaders/CubeTextureLoader",
 				"CubeTextureLoader": "api/en/loaders/CubeTextureLoader",
 				"DataTextureLoader": "api/en/loaders/DataTextureLoader",
 				"DataTextureLoader": "api/en/loaders/DataTextureLoader",
 				"FileLoader": "api/en/loaders/FileLoader",
 				"FileLoader": "api/en/loaders/FileLoader",
-				"FontLoader": "api/en/loaders/FontLoader",
 				"ImageBitmapLoader": "api/en/loaders/ImageBitmapLoader",
 				"ImageBitmapLoader": "api/en/loaders/ImageBitmapLoader",
 				"ImageLoader": "api/en/loaders/ImageLoader",
 				"ImageLoader": "api/en/loaders/ImageLoader",
 				"Loader": "api/en/loaders/Loader",
 				"Loader": "api/en/loaders/Loader",
@@ -351,7 +348,8 @@
 			"Geometries": {
 			"Geometries": {
 				"ConvexGeometry": "examples/en/geometries/ConvexGeometry",
 				"ConvexGeometry": "examples/en/geometries/ConvexGeometry",
 				"DecalGeometry": "examples/en/geometries/DecalGeometry",
 				"DecalGeometry": "examples/en/geometries/DecalGeometry",
-				"ParametricGeometry": "examples/en/geometries/ParametricGeometry"
+				"ParametricGeometry": "examples/en/geometries/ParametricGeometry",
+				"TextGeometry": "examples/en/geometries/TextGeometry"
 			},
 			},
 
 
 			"Helpers": {
 			"Helpers": {
@@ -370,6 +368,7 @@
 				"3DMLoader": "examples/en/loaders/3DMLoader",
 				"3DMLoader": "examples/en/loaders/3DMLoader",
 				"BasisTextureLoader": "examples/en/loaders/BasisTextureLoader",
 				"BasisTextureLoader": "examples/en/loaders/BasisTextureLoader",
 				"DRACOLoader": "examples/en/loaders/DRACOLoader",
 				"DRACOLoader": "examples/en/loaders/DRACOLoader",
+				"FontLoader": "examples/en/loaders/FontLoader",
 				"GLTFLoader": "examples/en/loaders/GLTFLoader",
 				"GLTFLoader": "examples/en/loaders/GLTFLoader",
 				"KTX2Loader": "examples/en/loaders/KTX2Loader",
 				"KTX2Loader": "examples/en/loaders/KTX2Loader",
 				"MMDLoader": "examples/en/loaders/MMDLoader",
 				"MMDLoader": "examples/en/loaders/MMDLoader",
@@ -623,7 +622,6 @@
 			"附件 / 核心": {
 			"附件 / 核心": {
 				"Curve": "api/zh/extras/core/Curve",
 				"Curve": "api/zh/extras/core/Curve",
 				"CurvePath": "api/zh/extras/core/CurvePath",
 				"CurvePath": "api/zh/extras/core/CurvePath",
-				"Font": "api/zh/extras/core/Font",
 				"Interpolations": "api/zh/extras/core/Interpolations",
 				"Interpolations": "api/zh/extras/core/Interpolations",
 				"Path": "api/zh/extras/core/Path",
 				"Path": "api/zh/extras/core/Path",
 				"Shape": "api/zh/extras/core/Shape",
 				"Shape": "api/zh/extras/core/Shape",
@@ -664,7 +662,6 @@
 				"ShapeGeometry": "api/zh/geometries/ShapeGeometry",
 				"ShapeGeometry": "api/zh/geometries/ShapeGeometry",
 				"SphereGeometry": "api/zh/geometries/SphereGeometry",
 				"SphereGeometry": "api/zh/geometries/SphereGeometry",
 				"TetrahedronGeometry": "api/zh/geometries/TetrahedronGeometry",
 				"TetrahedronGeometry": "api/zh/geometries/TetrahedronGeometry",
-				"TextGeometry": "api/zh/geometries/TextGeometry",
 				"TorusGeometry": "api/zh/geometries/TorusGeometry",
 				"TorusGeometry": "api/zh/geometries/TorusGeometry",
 				"TorusKnotGeometry": "api/zh/geometries/TorusKnotGeometry",
 				"TorusKnotGeometry": "api/zh/geometries/TorusKnotGeometry",
 				"TubeGeometry": "api/zh/geometries/TubeGeometry",
 				"TubeGeometry": "api/zh/geometries/TubeGeometry",
@@ -716,7 +713,6 @@
 				"CubeTextureLoader": "api/zh/loaders/CubeTextureLoader",
 				"CubeTextureLoader": "api/zh/loaders/CubeTextureLoader",
 				"DataTextureLoader": "api/zh/loaders/DataTextureLoader",
 				"DataTextureLoader": "api/zh/loaders/DataTextureLoader",
 				"FileLoader": "api/zh/loaders/FileLoader",
 				"FileLoader": "api/zh/loaders/FileLoader",
-				"FontLoader": "api/zh/loaders/FontLoader",
 				"ImageBitmapLoader": "api/zh/loaders/ImageBitmapLoader",
 				"ImageBitmapLoader": "api/zh/loaders/ImageBitmapLoader",
 				"ImageLoader": "api/zh/loaders/ImageLoader",
 				"ImageLoader": "api/zh/loaders/ImageLoader",
 				"Loader": "api/zh/loaders/Loader",
 				"Loader": "api/zh/loaders/Loader",
@@ -860,7 +856,8 @@
 			"几何体": {
 			"几何体": {
 				"ConvexGeometry": "examples/zh/geometries/ConvexGeometry",
 				"ConvexGeometry": "examples/zh/geometries/ConvexGeometry",
 				"DecalGeometry": "examples/zh/geometries/DecalGeometry",
 				"DecalGeometry": "examples/zh/geometries/DecalGeometry",
-				"ParametricGeometry": "examples/zh/geometries/ParametricGeometry"
+				"ParametricGeometry": "examples/zh/geometries/ParametricGeometry",
+				"TextGeometry": "examples/zh/geometries/TextGeometry"
 			},
 			},
 
 
 			"辅助对象": {
 			"辅助对象": {
@@ -878,6 +875,7 @@
 			"加载器": {
 			"加载器": {
 				"BasisTextureLoader": "examples/zh/loaders/BasisTextureLoader",
 				"BasisTextureLoader": "examples/zh/loaders/BasisTextureLoader",
 				"DRACOLoader": "examples/zh/loaders/DRACOLoader",
 				"DRACOLoader": "examples/zh/loaders/DRACOLoader",
+				"FontLoader": "examples/zh/loaders/FontLoader",
 				"GLTFLoader": "examples/zh/loaders/GLTFLoader",
 				"GLTFLoader": "examples/zh/loaders/GLTFLoader",
 				"MMDLoader": "examples/zh/loaders/MMDLoader",
 				"MMDLoader": "examples/zh/loaders/MMDLoader",
 				"MTLLoader": "examples/zh/loaders/MTLLoader",
 				"MTLLoader": "examples/zh/loaders/MTLLoader",

+ 0 - 75
docs/scenes/geometry-browser.html

@@ -38,7 +38,6 @@
 				DoubleSide,
 				DoubleSide,
 				ExtrudeGeometry,
 				ExtrudeGeometry,
 				Float32BufferAttribute,
 				Float32BufferAttribute,
-				FontLoader,
 				Group,
 				Group,
 				IcosahedronGeometry,
 				IcosahedronGeometry,
 				LatheGeometry,
 				LatheGeometry,
@@ -56,7 +55,6 @@
 				ShapeGeometry,
 				ShapeGeometry,
 				SphereGeometry,
 				SphereGeometry,
 				TetrahedronGeometry,
 				TetrahedronGeometry,
-				TextGeometry,
 				TorusGeometry,
 				TorusGeometry,
 				TorusKnotGeometry,
 				TorusKnotGeometry,
 				TubeGeometry,
 				TubeGeometry,
@@ -68,7 +66,6 @@
 
 
 			import { GUI } from '../../examples/jsm/libs/dat.gui.module.js';
 			import { GUI } from '../../examples/jsm/libs/dat.gui.module.js';
 			import { OrbitControls } from '../../examples/jsm/controls/OrbitControls.js';
 			import { OrbitControls } from '../../examples/jsm/controls/OrbitControls.js';
-			import { ParametricGeometries } from '../../examples/jsm/geometries/ParametricGeometries.js';
 
 
 			const twoPi = Math.PI * 2;
 			const twoPi = Math.PI * 2;
 
 
@@ -515,78 +512,6 @@
 
 
 				},
 				},
 
 
-				TextGeometry: function ( mesh ) {
-
-					const data = {
-						text: 'TextGeometry',
-						size: 5,
-						height: 2,
-						curveSegments: 12,
-						font: 'helvetiker',
-						weight: 'regular',
-						bevelEnabled: false,
-						bevelThickness: 1,
-						bevelSize: 0.5,
-						bevelOffset: 0.0,
-						bevelSegments: 3
-					};
-
-					const fonts = [
-						'helvetiker',
-						'optimer',
-						'gentilis',
-						'droid/droid_serif'
-					];
-
-					const weights = [
-						'regular', 'bold'
-					];
-
-					function generateGeometry() {
-
-						const loader = new FontLoader();
-						loader.load( '../../examples/fonts/' + data.font + '_' + data.weight + '.typeface.json', function ( font ) {
-
-							const geometry = new TextGeometry( data.text, {
-								font: font,
-								size: data.size,
-								height: data.height,
-								curveSegments: data.curveSegments,
-								bevelEnabled: data.bevelEnabled,
-								bevelThickness: data.bevelThickness,
-								bevelSize: data.bevelSize,
-								bevelOffset: data.bevelOffset,
-								bevelSegments: data.bevelSegments
-							} );
-							geometry.center();
-
-							updateGroupGeometry( mesh, geometry );
-
-						} );
-
-					}
-
-					//Hide the wireframe
-					mesh.children[ 0 ].visible = false;
-
-					const folder = gui.addFolder( 'THREE.TextGeometry' );
-
-					folder.add( data, 'text' ).onChange( generateGeometry );
-					folder.add( data, 'size', 1, 30 ).onChange( generateGeometry );
-					folder.add( data, 'height', 1, 20 ).onChange( generateGeometry );
-					folder.add( data, 'curveSegments', 1, 20 ).step( 1 ).onChange( generateGeometry );
-					folder.add( data, 'font', fonts ).onChange( generateGeometry );
-					folder.add( data, 'weight', weights ).onChange( generateGeometry );
-					folder.add( data, 'bevelEnabled' ).onChange( generateGeometry );
-					folder.add( data, 'bevelThickness', 0.1, 3 ).onChange( generateGeometry );
-					folder.add( data, 'bevelSize', 0, 3 ).onChange( generateGeometry );
-					folder.add( data, 'bevelOffset', - 0.5, 1.5 ).onChange( generateGeometry );
-					folder.add( data, 'bevelSegments', 0, 8 ).step( 1 ).onChange( generateGeometry );
-
-					generateGeometry();
-
-				},
-
 				TorusGeometry: function ( mesh ) {
 				TorusGeometry: function ( mesh ) {
 
 
 					const data = {
 					const data = {

+ 4 - 2
src/geometries/TextGeometry.js → examples/jsm/geometries/TextGeometry.js

@@ -15,8 +15,10 @@
  * }
  * }
  */
  */
 
 
-import { BufferGeometry } from '../core/BufferGeometry.js';
-import { ExtrudeGeometry } from './ExtrudeGeometry.js';
+import {
+	BufferGeometry,
+	ExtrudeGeometry
+} from '../../../build/three.module.js';
 
 
 class TextGeometry extends ExtrudeGeometry {
 class TextGeometry extends ExtrudeGeometry {
 
 

+ 55 - 2
src/extras/core/Font.js → examples/jsm/loaders/FontLoader.js

@@ -1,4 +1,57 @@
-import { ShapePath } from './ShapePath.js';
+import {
+	FileLoader,
+	Loader,
+	ShapePath
+} from '../../../build/three.module.js';
+
+class FontLoader extends Loader {
+
+	constructor( manager ) {
+
+		super( manager );
+
+	}
+
+	load( url, onLoad, onProgress, onError ) {
+
+		const scope = this;
+
+		const loader = new FileLoader( this.manager );
+		loader.setPath( this.path );
+		loader.setRequestHeader( this.requestHeader );
+		loader.setWithCredentials( scope.withCredentials );
+		loader.load( url, function ( text ) {
+
+			let json;
+
+			try {
+
+				json = JSON.parse( text );
+
+			} catch ( e ) {
+
+				console.warn( 'THREE.FontLoader: typeface.js support is being deprecated. Use typeface.json instead.' );
+				json = JSON.parse( text.substring( 65, text.length - 2 ) );
+
+			}
+
+			const font = scope.parse( json );
+
+			if ( onLoad ) onLoad( font );
+
+		}, onProgress, onError );
+
+	}
+
+	parse( json ) {
+
+		return new Font( json );
+
+	}
+
+}
+
+//
 
 
 class Font {
 class Font {
 
 
@@ -140,4 +193,4 @@ function createPath( char, scale, offsetX, offsetY, data ) {
 
 
 Font.prototype.isFont = true;
 Font.prototype.isFont = true;
 
 
-export { Font };
+export { FontLoader, Font };

+ 5 - 2
examples/webgl_camera_logarithmicdepthbuffer.html

@@ -66,6 +66,9 @@
 
 
 			import * as THREE from '../build/three.module.js';
 			import * as THREE from '../build/three.module.js';
 
 
+			import { FontLoader } from './jsm/loaders/FontLoader.js';
+			import { TextGeometry } from './jsm/geometries/TextGeometry.js';
+
 			import Stats from './jsm/libs/stats.module.js';
 			import Stats from './jsm/libs/stats.module.js';
 
 
 			// 1 micrometer to 100 billion light years in one scene, with 1 unit = 1 meter?  preposterous!  and yet...
 			// 1 micrometer to 100 billion light years in one scene, with 1 unit = 1 meter?  preposterous!  and yet...
@@ -107,7 +110,7 @@
 
 
 				container = document.getElementById( 'container' );
 				container = document.getElementById( 'container' );
 
 
-				const loader = new THREE.FontLoader();
+				const loader = new FontLoader();
 				loader.load( 'fonts/helvetiker_regular.typeface.json', function ( font ) {
 				loader.load( 'fonts/helvetiker_regular.typeface.json', function ( font ) {
 
 
 					const scene = initScene( font );
 					const scene = initScene( font );
@@ -174,7 +177,7 @@
 
 
 					const scale = labeldata[ i ].scale || 1;
 					const scale = labeldata[ i ].scale || 1;
 
 
-					const labelgeo = new THREE.TextGeometry( labeldata[ i ].label, {
+					const labelgeo = new TextGeometry( labeldata[ i ].label, {
 						font: font,
 						font: font,
 						size: labeldata[ i ].size,
 						size: labeldata[ i ].size,
 						height: labeldata[ i ].size / 2
 						height: labeldata[ i ].size / 2

+ 5 - 2
examples/webgl_custom_attributes_lines.html

@@ -51,13 +51,16 @@
 
 
 			import * as THREE from '../build/three.module.js';
 			import * as THREE from '../build/three.module.js';
 
 
+			import { FontLoader } from './jsm/loaders/FontLoader.js';
+			import { TextGeometry } from './jsm/geometries/TextGeometry.js';
+
 			import Stats from './jsm/libs/stats.module.js';
 			import Stats from './jsm/libs/stats.module.js';
 
 
 			let renderer, scene, camera, stats;
 			let renderer, scene, camera, stats;
 
 
 			let line, uniforms;
 			let line, uniforms;
 
 
-			const loader = new THREE.FontLoader();
+			const loader = new FontLoader();
 			loader.load( 'fonts/helvetiker_bold.typeface.json', function ( font ) {
 			loader.load( 'fonts/helvetiker_bold.typeface.json', function ( font ) {
 
 
 				init( font );
 				init( font );
@@ -93,7 +96,7 @@
 				} );
 				} );
 
 
 
 
-				const geometry = new THREE.TextGeometry( 'three.js', {
+				const geometry = new TextGeometry( 'three.js', {
 
 
 					font: font,
 					font: font,
 
 

+ 5 - 2
examples/webgl_geometry_text.html

@@ -22,6 +22,9 @@
 
 
 			import * as THREE from '../build/three.module.js';
 			import * as THREE from '../build/three.module.js';
 
 
+			import { FontLoader } from './jsm/loaders/FontLoader.js';
+			import { TextGeometry } from './jsm/geometries/TextGeometry.js';
+
 			import Stats from './jsm/libs/stats.module.js';
 			import Stats from './jsm/libs/stats.module.js';
 
 
 			THREE.Cache.enabled = true;
 			THREE.Cache.enabled = true;
@@ -326,7 +329,7 @@
 
 
 			function loadFont() {
 			function loadFont() {
 
 
-				const loader = new THREE.FontLoader();
+				const loader = new FontLoader();
 				loader.load( 'fonts/' + fontName + '_' + fontWeight + '.typeface.json', function ( response ) {
 				loader.load( 'fonts/' + fontName + '_' + fontWeight + '.typeface.json', function ( response ) {
 
 
 					font = response;
 					font = response;
@@ -339,7 +342,7 @@
 
 
 			function createText() {
 			function createText() {
 
 
-				textGeo = new THREE.TextGeometry( text, {
+				textGeo = new TextGeometry( text, {
 
 
 					font: font,
 					font: font,
 
 

+ 2 - 1
examples/webgl_geometry_text_shapes.html

@@ -25,6 +25,7 @@
 			import * as THREE from '../build/three.module.js';
 			import * as THREE from '../build/three.module.js';
 
 
 			import { OrbitControls } from './jsm/controls/OrbitControls.js';
 			import { OrbitControls } from './jsm/controls/OrbitControls.js';
+			import { FontLoader } from './jsm/loaders/FontLoader.js';
 
 
 			let camera, scene, renderer;
 			let camera, scene, renderer;
 
 
@@ -39,7 +40,7 @@
 				scene = new THREE.Scene();
 				scene = new THREE.Scene();
 				scene.background = new THREE.Color( 0xf0f0f0 );
 				scene.background = new THREE.Color( 0xf0f0f0 );
 
 
-				const loader = new THREE.FontLoader();
+				const loader = new FontLoader();
 				loader.load( 'fonts/helvetiker_regular.typeface.json', function ( font ) {
 				loader.load( 'fonts/helvetiker_regular.typeface.json', function ( font ) {
 
 
 					const color = 0x006699;
 					const color = 0x006699;

+ 2 - 1
examples/webgl_geometry_text_stroke.html

@@ -26,6 +26,7 @@
 
 
 			import { OrbitControls } from './jsm/controls/OrbitControls.js';
 			import { OrbitControls } from './jsm/controls/OrbitControls.js';
 			import { SVGLoader } from './jsm/loaders/SVGLoader.js';
 			import { SVGLoader } from './jsm/loaders/SVGLoader.js';
+			import { FontLoader } from './jsm/loaders/FontLoader.js';
 
 
 			let camera, scene, renderer;
 			let camera, scene, renderer;
 
 
@@ -40,7 +41,7 @@
 				scene = new THREE.Scene();
 				scene = new THREE.Scene();
 				scene.background = new THREE.Color( 0xf0f0f0 );
 				scene.background = new THREE.Color( 0xf0f0f0 );
 
 
-				const loader = new THREE.FontLoader();
+				const loader = new FontLoader();
 				loader.load( 'fonts/helvetiker_regular.typeface.json', function ( font ) {
 				loader.load( 'fonts/helvetiker_regular.typeface.json', function ( font ) {
 
 
 					const color = new THREE.Color( 0x006699 );
 					const color = new THREE.Color( 0x006699 );

+ 4 - 2
examples/webgl_loader_ttf.html

@@ -17,6 +17,8 @@
 			import * as THREE from '../build/three.module.js';
 			import * as THREE from '../build/three.module.js';
 
 
 			import { TTFLoader } from './jsm/loaders/TTFLoader.js';
 			import { TTFLoader } from './jsm/loaders/TTFLoader.js';
+			import { Font } from './jsm/loaders/FontLoader.js';
+			import { TextGeometry } from './jsm/geometries/TextGeometry.js';
 
 
 			let container;
 			let container;
 			let camera, cameraTarget, scene, renderer;
 			let camera, cameraTarget, scene, renderer;
@@ -85,7 +87,7 @@
 
 
 				loader.load( 'fonts/ttf/kenpixel.ttf', function ( json ) {
 				loader.load( 'fonts/ttf/kenpixel.ttf', function ( json ) {
 
 
-					font = new THREE.Font( json );
+					font = new Font( json );
 					createText();
 					createText();
 
 
 				} );
 				} );
@@ -177,7 +179,7 @@
 
 
 			function createText() {
 			function createText() {
 
 
-				textGeo = new THREE.TextGeometry( text, {
+				textGeo = new TextGeometry( text, {
 
 
 					font: font,
 					font: font,
 
 

+ 4 - 2
examples/webgl_materials_variations_basic.html

@@ -18,13 +18,15 @@
 			import Stats from './jsm/libs/stats.module.js';
 			import Stats from './jsm/libs/stats.module.js';
 
 
 			import { OrbitControls } from './jsm/controls/OrbitControls.js';
 			import { OrbitControls } from './jsm/controls/OrbitControls.js';
+			import { FontLoader } from './jsm/loaders/FontLoader.js';
+			import { TextGeometry } from './jsm/geometries/TextGeometry.js';
 
 
 			let container, stats;
 			let container, stats;
 
 
 			let camera, scene, renderer;
 			let camera, scene, renderer;
 			let particleLight;
 			let particleLight;
 
 
-			const loader = new THREE.FontLoader();
+			const loader = new FontLoader();
 			loader.load( 'fonts/gentilis_regular.typeface.json', function ( font ) {
 			loader.load( 'fonts/gentilis_regular.typeface.json', function ( font ) {
 
 
 				init( font );
 				init( font );
@@ -96,7 +98,7 @@
 
 
 				function addLabel( name, location ) {
 				function addLabel( name, location ) {
 
 
-					const textGeo = new THREE.TextGeometry( name, {
+					const textGeo = new TextGeometry( name, {
 
 
 						font: font,
 						font: font,
 
 

+ 4 - 2
examples/webgl_materials_variations_lambert.html

@@ -18,13 +18,15 @@
 			import Stats from './jsm/libs/stats.module.js';
 			import Stats from './jsm/libs/stats.module.js';
 
 
 			import { OrbitControls } from './jsm/controls/OrbitControls.js';
 			import { OrbitControls } from './jsm/controls/OrbitControls.js';
+			import { FontLoader } from './jsm/loaders/FontLoader.js';
+			import { TextGeometry } from './jsm/geometries/TextGeometry.js';
 
 
 			let container, stats;
 			let container, stats;
 
 
 			let camera, scene, renderer;
 			let camera, scene, renderer;
 			let particleLight;
 			let particleLight;
 
 
-			const loader = new THREE.FontLoader();
+			const loader = new FontLoader();
 			loader.load( 'fonts/gentilis_regular.typeface.json', function ( font ) {
 			loader.load( 'fonts/gentilis_regular.typeface.json', function ( font ) {
 
 
 				init( font );
 				init( font );
@@ -96,7 +98,7 @@
 
 
 				function addLabel( name, location ) {
 				function addLabel( name, location ) {
 
 
-					const textGeo = new THREE.TextGeometry( name, {
+					const textGeo = new TextGeometry( name, {
 
 
 						font: font,
 						font: font,
 
 

+ 4 - 2
examples/webgl_materials_variations_phong.html

@@ -18,13 +18,15 @@
 			import Stats from './jsm/libs/stats.module.js';
 			import Stats from './jsm/libs/stats.module.js';
 
 
 			import { OrbitControls } from './jsm/controls/OrbitControls.js';
 			import { OrbitControls } from './jsm/controls/OrbitControls.js';
+			import { FontLoader } from './jsm/loaders/FontLoader.js';
+			import { TextGeometry } from './jsm/geometries/TextGeometry.js';
 
 
 			let container, stats;
 			let container, stats;
 
 
 			let camera, scene, renderer;
 			let camera, scene, renderer;
 			let particleLight;
 			let particleLight;
 
 
-			const loader = new THREE.FontLoader();
+			const loader = new FontLoader();
 			loader.load( 'fonts/gentilis_regular.typeface.json', function ( font ) {
 			loader.load( 'fonts/gentilis_regular.typeface.json', function ( font ) {
 
 
 				init( font );
 				init( font );
@@ -106,7 +108,7 @@
 
 
 				function addLabel( name, location ) {
 				function addLabel( name, location ) {
 
 
-					const textGeo = new THREE.TextGeometry( name, {
+					const textGeo = new TextGeometry( name, {
 
 
 						font: font,
 						font: font,
 
 

+ 4 - 2
examples/webgl_materials_variations_physical.html

@@ -20,13 +20,15 @@
 
 
 			import { OrbitControls } from './jsm/controls/OrbitControls.js';
 			import { OrbitControls } from './jsm/controls/OrbitControls.js';
 			import { RGBELoader } from './jsm/loaders/RGBELoader.js';
 			import { RGBELoader } from './jsm/loaders/RGBELoader.js';
+			import { FontLoader } from './jsm/loaders/FontLoader.js';
+			import { TextGeometry } from './jsm/geometries/TextGeometry.js';
 
 
 			let container, stats;
 			let container, stats;
 
 
 			let camera, scene, renderer;
 			let camera, scene, renderer;
 			let particleLight;
 			let particleLight;
 
 
-			const loader = new THREE.FontLoader();
+			const loader = new FontLoader();
 			loader.load( 'fonts/gentilis_regular.typeface.json', function ( font ) {
 			loader.load( 'fonts/gentilis_regular.typeface.json', function ( font ) {
 
 
 				init( font );
 				init( font );
@@ -107,7 +109,7 @@
 
 
 				function addLabel( name, location ) {
 				function addLabel( name, location ) {
 
 
-					const textGeo = new THREE.TextGeometry( name, {
+					const textGeo = new TextGeometry( name, {
 
 
 						font: font,
 						font: font,
 
 

+ 4 - 2
examples/webgl_materials_variations_standard.html

@@ -20,13 +20,15 @@
 
 
 			import { OrbitControls } from './jsm/controls/OrbitControls.js';
 			import { OrbitControls } from './jsm/controls/OrbitControls.js';
 			import { RGBELoader } from './jsm/loaders/RGBELoader.js';
 			import { RGBELoader } from './jsm/loaders/RGBELoader.js';
+			import { FontLoader } from './jsm/loaders/FontLoader.js';
+			import { TextGeometry } from './jsm/geometries/TextGeometry.js';
 
 
 			let container, stats;
 			let container, stats;
 
 
 			let camera, scene, renderer;
 			let camera, scene, renderer;
 			let particleLight;
 			let particleLight;
 
 
-			const loader = new THREE.FontLoader();
+			const loader = new FontLoader();
 			loader.load( 'fonts/gentilis_regular.typeface.json', function ( font ) {
 			loader.load( 'fonts/gentilis_regular.typeface.json', function ( font ) {
 
 
 				init( font );
 				init( font );
@@ -110,7 +112,7 @@
 
 
 				function addLabel( name, location ) {
 				function addLabel( name, location ) {
 
 
-					const textGeo = new THREE.TextGeometry( name, {
+					const textGeo = new TextGeometry( name, {
 
 
 						font: font,
 						font: font,
 
 

+ 4 - 2
examples/webgl_materials_variations_toon.html

@@ -19,13 +19,15 @@
 
 
 			import { OrbitControls } from './jsm/controls/OrbitControls.js';
 			import { OrbitControls } from './jsm/controls/OrbitControls.js';
 			import { OutlineEffect } from './jsm/effects/OutlineEffect.js';
 			import { OutlineEffect } from './jsm/effects/OutlineEffect.js';
+			import { FontLoader } from './jsm/loaders/FontLoader.js';
+			import { TextGeometry } from './jsm/geometries/TextGeometry.js';
 
 
 			let container, stats;
 			let container, stats;
 
 
 			let camera, scene, renderer, effect;
 			let camera, scene, renderer, effect;
 			let particleLight;
 			let particleLight;
 
 
-			const loader = new THREE.FontLoader();
+			const loader = new FontLoader();
 			loader.load( 'fonts/gentilis_regular.typeface.json', function ( font ) {
 			loader.load( 'fonts/gentilis_regular.typeface.json', function ( font ) {
 
 
 				init( font );
 				init( font );
@@ -98,7 +100,7 @@
 
 
 				function addLabel( name, location ) {
 				function addLabel( name, location ) {
 
 
-					const textGeo = new THREE.TextGeometry( name, {
+					const textGeo = new TextGeometry( name, {
 
 
 						font: font,
 						font: font,
 
 

+ 4 - 2
examples/webgl_modifier_curve.html

@@ -19,6 +19,8 @@
 			import { TransformControls } from './jsm/controls/TransformControls.js';
 			import { TransformControls } from './jsm/controls/TransformControls.js';
 			import Stats from './jsm/libs/stats.module.js';
 			import Stats from './jsm/libs/stats.module.js';
 			import { Flow } from './jsm/modifiers/CurveModifier.js';
 			import { Flow } from './jsm/modifiers/CurveModifier.js';
+			import { FontLoader } from './jsm/loaders/FontLoader.js';
+			import { TextGeometry } from './jsm/geometries/TextGeometry.js';
 
 
 			const ACTION_SELECT = 1, ACTION_NONE = 0;
 			const ACTION_SELECT = 1, ACTION_NONE = 0;
 			const curveHandles = [];
 			const curveHandles = [];
@@ -95,10 +97,10 @@
 
 
 				//
 				//
 
 
-				const loader = new THREE.FontLoader();
+				const loader = new FontLoader();
 				loader.load( 'fonts/helvetiker_regular.typeface.json', function ( font ) {
 				loader.load( 'fonts/helvetiker_regular.typeface.json', function ( font ) {
 
 
-					const geometry = new THREE.TextGeometry( 'Hello three.js!', {
+					const geometry = new TextGeometry( 'Hello three.js!', {
 						font: font,
 						font: font,
 						size: 0.2,
 						size: 0.2,
 						height: 0.05,
 						height: 0.05,

+ 4 - 2
examples/webgl_modifier_curve_instanced.html

@@ -19,6 +19,8 @@
 			import { TransformControls } from './jsm/controls/TransformControls.js';
 			import { TransformControls } from './jsm/controls/TransformControls.js';
 			import Stats from './jsm/libs/stats.module.js';
 			import Stats from './jsm/libs/stats.module.js';
 			import { InstancedFlow } from './jsm/modifiers/CurveModifier.js';
 			import { InstancedFlow } from './jsm/modifiers/CurveModifier.js';
+			import { FontLoader } from './jsm/loaders/FontLoader.js';
+			import { TextGeometry } from './jsm/geometries/TextGeometry.js';
 
 
 			const ACTION_SELECT = 1, ACTION_NONE = 0;
 			const ACTION_SELECT = 1, ACTION_NONE = 0;
 			const curveHandles = [];
 			const curveHandles = [];
@@ -108,10 +110,10 @@
 
 
 				//
 				//
 
 
-				const loader = new THREE.FontLoader();
+				const loader = new FontLoader();
 				loader.load( 'fonts/helvetiker_regular.typeface.json', function ( font ) {
 				loader.load( 'fonts/helvetiker_regular.typeface.json', function ( font ) {
 
 
-					const geometry = new THREE.TextGeometry( 'Hello three.js!', {
+					const geometry = new TextGeometry( 'Hello three.js!', {
 						font: font,
 						font: font,
 						size: 0.2,
 						size: 0.2,
 						height: 0.05,
 						height: 0.05,

+ 4 - 2
examples/webgl_modifier_tessellation.html

@@ -61,6 +61,8 @@
 
 
 			import { TrackballControls } from './jsm/controls/TrackballControls.js';
 			import { TrackballControls } from './jsm/controls/TrackballControls.js';
 			import { TessellateModifier } from './jsm/modifiers/TessellateModifier.js';
 			import { TessellateModifier } from './jsm/modifiers/TessellateModifier.js';
+			import { FontLoader } from './jsm/loaders/FontLoader.js';
+			import { TextGeometry } from './jsm/geometries/TextGeometry.js';
 
 
 			let renderer, scene, camera, stats;
 			let renderer, scene, camera, stats;
 
 
@@ -71,7 +73,7 @@
 			const WIDTH = window.innerWidth;
 			const WIDTH = window.innerWidth;
 			const HEIGHT = window.innerHeight;
 			const HEIGHT = window.innerHeight;
 
 
-			const loader = new THREE.FontLoader();
+			const loader = new FontLoader();
 			loader.load( 'fonts/helvetiker_bold.typeface.json', function ( font ) {
 			loader.load( 'fonts/helvetiker_bold.typeface.json', function ( font ) {
 
 
 				init( font );
 				init( font );
@@ -89,7 +91,7 @@
 
 
 				//
 				//
 
 
-				let geometry = new THREE.TextGeometry( 'THREE.JS', {
+				let geometry = new TextGeometry( 'THREE.JS', {
 
 
 					font: font,
 					font: font,
 
 

+ 4 - 2
examples/webgl_shadowmap.html

@@ -23,6 +23,8 @@
 
 
 			import { FirstPersonControls } from './jsm/controls/FirstPersonControls.js';
 			import { FirstPersonControls } from './jsm/controls/FirstPersonControls.js';
 			import { GLTFLoader } from './jsm/loaders/GLTFLoader.js';
 			import { GLTFLoader } from './jsm/loaders/GLTFLoader.js';
+			import { FontLoader } from './jsm/loaders/FontLoader.js';
+			import { TextGeometry } from './jsm/geometries/TextGeometry.js';
 			import { ShadowMapViewer } from './jsm/utils/ShadowMapViewer.js';
 			import { ShadowMapViewer } from './jsm/utils/ShadowMapViewer.js';
 
 
 			const SHADOW_MAP_WIDTH = 2048, SHADOW_MAP_HEIGHT = 1024;
 			const SHADOW_MAP_WIDTH = 2048, SHADOW_MAP_HEIGHT = 1024;
@@ -184,10 +186,10 @@
 
 
 				// TEXT
 				// TEXT
 
 
-				const loader = new THREE.FontLoader();
+				const loader = new FontLoader();
 				loader.load( 'fonts/helvetiker_bold.typeface.json', function ( font ) {
 				loader.load( 'fonts/helvetiker_bold.typeface.json', function ( font ) {
 
 
-					const textGeo = new THREE.TextGeometry( "THREE.JS", {
+					const textGeo = new TextGeometry( "THREE.JS", {
 
 
 						font: font,
 						font: font,
 
 

+ 4 - 2
examples/webgl_shadowmap_performance.html

@@ -22,6 +22,8 @@
 
 
 			import { FirstPersonControls } from './jsm/controls/FirstPersonControls.js';
 			import { FirstPersonControls } from './jsm/controls/FirstPersonControls.js';
 			import { GLTFLoader } from './jsm/loaders/GLTFLoader.js';
 			import { GLTFLoader } from './jsm/loaders/GLTFLoader.js';
+			import { FontLoader } from './jsm/loaders/FontLoader.js';
+			import { TextGeometry } from './jsm/geometries/TextGeometry.js';
 
 
 			const SHADOW_MAP_WIDTH = 2048, SHADOW_MAP_HEIGHT = 1024;
 			const SHADOW_MAP_WIDTH = 2048, SHADOW_MAP_HEIGHT = 1024;
 
 
@@ -154,10 +156,10 @@
 
 
 				// TEXT
 				// TEXT
 
 
-				const loader = new THREE.FontLoader();
+				const loader = new FontLoader();
 				loader.load( 'fonts/helvetiker_bold.typeface.json', function ( font ) {
 				loader.load( 'fonts/helvetiker_bold.typeface.json', function ( font ) {
 
 
-					const textGeo = new THREE.TextGeometry( "THREE.JS", {
+					const textGeo = new TextGeometry( "THREE.JS", {
 
 
 						font: font,
 						font: font,
 
 

+ 19 - 0
src/Three.Legacy.js

@@ -1938,3 +1938,22 @@ export function ParametricGeometry() {
 	return new BufferGeometry();
 	return new BufferGeometry();
 
 
 }
 }
+
+export function TextGeometry() {
+
+	console.error( 'THREE.TextGeometry has been moved to /examples/jsm/geometries/TextGeometry.js' );
+	return new BufferGeometry();
+
+}
+
+export function FontLoader() {
+
+	console.error( 'THREE.FontLoader has been moved to /examples/jsm/loaders/FontLoader.js' );
+
+}
+
+export function Font() {
+
+	console.error( 'THREE.Font has been moved to /examples/jsm/loaders/FontLoader.js' );
+
+}

+ 0 - 2
src/Three.js

@@ -47,7 +47,6 @@ export { BufferGeometryLoader } from './loaders/BufferGeometryLoader.js';
 export { DefaultLoadingManager, LoadingManager } from './loaders/LoadingManager.js';
 export { DefaultLoadingManager, LoadingManager } from './loaders/LoadingManager.js';
 export { ImageLoader } from './loaders/ImageLoader.js';
 export { ImageLoader } from './loaders/ImageLoader.js';
 export { ImageBitmapLoader } from './loaders/ImageBitmapLoader.js';
 export { ImageBitmapLoader } from './loaders/ImageBitmapLoader.js';
-export { FontLoader } from './loaders/FontLoader.js';
 export { FileLoader } from './loaders/FileLoader.js';
 export { FileLoader } from './loaders/FileLoader.js';
 export { Loader } from './loaders/Loader.js';
 export { Loader } from './loaders/Loader.js';
 export { LoaderUtils } from './loaders/LoaderUtils.js';
 export { LoaderUtils } from './loaders/LoaderUtils.js';
@@ -144,7 +143,6 @@ export * from './extras/curves/Curves.js';
 export { Shape } from './extras/core/Shape.js';
 export { Shape } from './extras/core/Shape.js';
 export { Path } from './extras/core/Path.js';
 export { Path } from './extras/core/Path.js';
 export { ShapePath } from './extras/core/ShapePath.js';
 export { ShapePath } from './extras/core/ShapePath.js';
-export { Font } from './extras/core/Font.js';
 export { CurvePath } from './extras/core/CurvePath.js';
 export { CurvePath } from './extras/core/CurvePath.js';
 export { Curve } from './extras/core/Curve.js';
 export { Curve } from './extras/core/Curve.js';
 export { DataUtils } from './extras/DataUtils.js';
 export { DataUtils } from './extras/DataUtils.js';

+ 0 - 1
src/geometries/Geometries.js

@@ -14,7 +14,6 @@ export * from './RingGeometry.js';
 export * from './ShapeGeometry.js';
 export * from './ShapeGeometry.js';
 export * from './SphereGeometry.js';
 export * from './SphereGeometry.js';
 export * from './TetrahedronGeometry.js';
 export * from './TetrahedronGeometry.js';
-export * from './TextGeometry.js';
 export * from './TorusGeometry.js';
 export * from './TorusGeometry.js';
 export * from './TorusKnotGeometry.js';
 export * from './TorusKnotGeometry.js';
 export * from './TubeGeometry.js';
 export * from './TubeGeometry.js';

+ 0 - 53
src/loaders/FontLoader.js

@@ -1,53 +0,0 @@
-import { Font } from '../extras/core/Font.js';
-import { FileLoader } from './FileLoader.js';
-import { Loader } from './Loader.js';
-
-class FontLoader extends Loader {
-
-	constructor( manager ) {
-
-		super( manager );
-
-	}
-
-	load( url, onLoad, onProgress, onError ) {
-
-		const scope = this;
-
-		const loader = new FileLoader( this.manager );
-		loader.setPath( this.path );
-		loader.setRequestHeader( this.requestHeader );
-		loader.setWithCredentials( scope.withCredentials );
-		loader.load( url, function ( text ) {
-
-			let json;
-
-			try {
-
-				json = JSON.parse( text );
-
-			} catch ( e ) {
-
-				console.warn( 'THREE.FontLoader: typeface.js support is being deprecated. Use typeface.json instead.' );
-				json = JSON.parse( text.substring( 65, text.length - 2 ) );
-
-			}
-
-			const font = scope.parse( json );
-
-			if ( onLoad ) onLoad( font );
-
-		}, onProgress, onError );
-
-	}
-
-	parse( json ) {
-
-		return new Font( json );
-
-	}
-
-}
-
-
-export { FontLoader };

+ 0 - 35
test/unit/src/extras/core/Font.tests.js

@@ -1,35 +0,0 @@
-/* global QUnit */
-
-import { Font } from '../../../../../src/extras/core/Font';
-
-export default QUnit.module( 'Extras', () => {
-
-	QUnit.module( 'Core', () => {
-
-		QUnit.module( 'Font', () => {
-
-			// INSTANCING
-			QUnit.todo( "Instancing", ( assert ) => {
-
-				assert.ok( false, "everything's gonna be alright" );
-
-			} );
-
-			// PUBLIC STUFF
-			QUnit.todo( "isFont", ( assert ) => {
-
-				assert.ok( false, "everything's gonna be alright" );
-
-			} );
-
-			QUnit.todo( "generateShapes", ( assert ) => {
-
-				assert.ok( false, "everything's gonna be alright" );
-
-			} );
-
-		} );
-
-	} );
-
-} );

+ 0 - 32
test/unit/src/geometries/TextGeometry.tests.js

@@ -1,32 +0,0 @@
-/* global QUnit */
-
-import { TextGeometry, TextBufferGeometry } from '../../../../src/geometries/TextGeometry';
-
-export default QUnit.module( 'Geometries', () => {
-
-	QUnit.module( 'TextGeometry', () => {
-
-		// INHERITANCE
-		QUnit.todo( "Extending", ( assert ) => {
-
-			assert.ok( false, "everything's gonna be alright" );
-
-		} );
-
-		// INSTANCING
-		QUnit.todo( "Instancing", ( assert ) => {
-
-			assert.ok( false, "everything's gonna be alright" );
-
-		} );
-
-		// OTHERS
-		QUnit.todo( 'Standard geometry tests', ( assert ) => {
-
-			assert.ok( false, "everything's gonna be alright" );
-
-		} );
-
-	} );
-
-} );

+ 0 - 37
test/unit/src/loaders/FontLoader.tests.js

@@ -1,37 +0,0 @@
-/* global QUnit */
-
-import { FontLoader } from '../../../../src/loaders/FontLoader';
-
-export default QUnit.module( 'Loaders', () => {
-
-	QUnit.module( 'FontLoader', () => {
-
-		// INSTANCING
-		QUnit.todo( "Instancing", ( assert ) => {
-
-			assert.ok( false, "everything's gonna be alright" );
-
-		} );
-
-		// PUBLIC STUFF
-		QUnit.todo( "load", ( assert ) => {
-
-			assert.ok( false, "everything's gonna be alright" );
-
-		} );
-
-		QUnit.todo( "parse", ( assert ) => {
-
-			assert.ok( false, "everything's gonna be alright" );
-
-		} );
-
-		QUnit.todo( "setPath", ( assert ) => {
-
-			assert.ok( false, "everything's gonna be alright" );
-
-		} );
-
-	} );
-
-} );

+ 0 - 3
test/unit/three.source.unit.js

@@ -64,7 +64,6 @@ import './src/extras/ShapeUtils.tests';
 //src/extras/core
 //src/extras/core
 import './src/extras/core/Curve.tests';
 import './src/extras/core/Curve.tests';
 import './src/extras/core/CurvePath.tests';
 import './src/extras/core/CurvePath.tests';
-import './src/extras/core/Font.tests';
 import './src/extras/core/Interpolations.tests';
 import './src/extras/core/Interpolations.tests';
 import './src/extras/core/Path.tests';
 import './src/extras/core/Path.tests';
 import './src/extras/core/Shape.tests';
 import './src/extras/core/Shape.tests';
@@ -103,7 +102,6 @@ import './src/geometries/RingGeometry.tests';
 import './src/geometries/ShapeGeometry.tests';
 import './src/geometries/ShapeGeometry.tests';
 import './src/geometries/SphereGeometry.tests';
 import './src/geometries/SphereGeometry.tests';
 import './src/geometries/TetrahedronGeometry.tests';
 import './src/geometries/TetrahedronGeometry.tests';
-import './src/geometries/TextGeometry.tests';
 import './src/geometries/TorusGeometry.tests';
 import './src/geometries/TorusGeometry.tests';
 import './src/geometries/TorusKnotGeometry.tests';
 import './src/geometries/TorusKnotGeometry.tests';
 import './src/geometries/TubeGeometry.tests';
 import './src/geometries/TubeGeometry.tests';
@@ -148,7 +146,6 @@ import './src/loaders/CompressedTextureLoader.tests';
 import './src/loaders/CubeTextureLoader.tests';
 import './src/loaders/CubeTextureLoader.tests';
 import './src/loaders/DataTextureLoader.tests';
 import './src/loaders/DataTextureLoader.tests';
 import './src/loaders/FileLoader.tests';
 import './src/loaders/FileLoader.tests';
-import './src/loaders/FontLoader.tests';
 import './src/loaders/ImageLoader.tests';
 import './src/loaders/ImageLoader.tests';
 import './src/loaders/Loader.tests';
 import './src/loaders/Loader.tests';
 import './src/loaders/LoaderUtils.tests';
 import './src/loaders/LoaderUtils.tests';