瀏覽代碼

Merge branch 'dev' into powerPreference

Luigi De Rosa 7 年之前
父節點
當前提交
405084c6ab
共有 100 個文件被更改,包括 2928 次插入2017 次删除
  1. 1 1
      .github/ISSUE_TEMPLATE.md
  2. 13 12
      README.md
  3. 668 360
      build/three.js
  4. 295 362
      build/three.min.js
  5. 667 359
      build/three.module.js
  6. 6 3
      docs/api/audio/Audio.html
  7. 5 5
      docs/api/audio/PositionalAudio.html
  8. 0 8
      docs/api/cameras/Camera.html
  9. 12 6
      docs/api/cameras/CubeCamera.html
  10. 5 2
      docs/api/cameras/OrthographicCamera.html
  11. 5 4
      docs/api/cameras/PerspectiveCamera.html
  12. 0 10
      docs/api/constants/Materials.html
  13. 1 1
      docs/api/constants/Renderer.html
  14. 5 5
      docs/api/core/BufferGeometry.html
  15. 0 3
      docs/api/core/DirectGeometry.html
  16. 99 99
      docs/api/core/EventDispatcher.html
  17. 1 1
      docs/api/core/Face3.html
  18. 17 14
      docs/api/core/Geometry.html
  19. 13 10
      docs/api/core/InterleavedBufferAttribute.html
  20. 18 19
      docs/api/core/Layers.html
  21. 18 3
      docs/api/core/Object3D.html
  22. 1 1
      docs/api/deprecated/DeprecatedList.html
  23. 0 63
      docs/api/extras/CurveUtils.html
  24. 31 0
      docs/api/extras/Earcut.html
  25. 2 36
      docs/api/extras/ShapeUtils.html
  26. 20 5
      docs/api/extras/core/Curve.html
  27. 0 23
      docs/api/extras/core/CurvePath.html
  28. 1 1
      docs/api/extras/core/Font.html
  29. 47 0
      docs/api/extras/core/Interpolations.html
  30. 1 1
      docs/api/extras/core/Path.html
  31. 11 7
      docs/api/extras/core/Shape.html
  32. 11 0
      docs/api/extras/curves/ArcCurve.html
  33. 21 11
      docs/api/extras/curves/CatmullRomCurve3.html
  34. 13 6
      docs/api/extras/curves/CubicBezierCurve.html
  35. 9 2
      docs/api/extras/curves/CubicBezierCurve3.html
  36. 17 9
      docs/api/extras/curves/EllipseCurve.html
  37. 7 0
      docs/api/extras/curves/LineCurve3.html
  38. 9 2
      docs/api/extras/curves/QuadraticBezierCurve.html
  39. 8 2
      docs/api/extras/curves/QuadraticBezierCurve3.html
  40. 10 3
      docs/api/extras/curves/SplineCurve.html
  41. 0 179
      docs/api/extras/objects/MorphBlendMesh.html
  42. 4 4
      docs/api/geometries/BoxBufferGeometry.html
  43. 4 4
      docs/api/geometries/BoxGeometry.html
  44. 2 2
      docs/api/geometries/CircleGeometry.html
  45. 4 4
      docs/api/geometries/CylinderGeometry.html
  46. 3 3
      docs/api/geometries/PlaneBufferGeometry.html
  47. 18 18
      docs/api/geometries/PlaneGeometry.html
  48. 2 2
      docs/api/geometries/PolyhedronBufferGeometry.html
  49. 2 2
      docs/api/geometries/PolyhedronGeometry.html
  50. 1 1
      docs/api/geometries/RingBufferGeometry.html
  51. 3 3
      docs/api/geometries/RingGeometry.html
  52. 2 2
      docs/api/geometries/SphereGeometry.html
  53. 160 0
      docs/api/geometries/TextBufferGeometry.html
  54. 3 3
      docs/api/geometries/TorusGeometry.html
  55. 3 3
      docs/api/geometries/TorusKnotGeometry.html
  56. 3 3
      docs/api/helpers/AxesHelper.html
  57. 64 0
      docs/api/helpers/Box3Helper.html
  58. 12 4
      docs/api/helpers/DirectionalLightHelper.html
  59. 13 4
      docs/api/helpers/HemisphereLightHelper.html
  60. 65 0
      docs/api/helpers/PlaneHelper.html
  61. 13 6
      docs/api/helpers/PointLightHelper.html
  62. 12 2
      docs/api/helpers/RectAreaLightHelper.html
  63. 11 3
      docs/api/helpers/SpotLightHelper.html
  64. 78 78
      docs/api/helpers/VertexNormalsHelper.html
  65. 1 1
      docs/api/lights/DirectionalLight.html
  66. 2 4
      docs/api/lights/PointLight.html
  67. 0 15
      docs/api/lights/RectAreaLight.html
  68. 3 3
      docs/api/lights/SpotLight.html
  69. 2 2
      docs/api/lights/shadows/DirectionalLightShadow.html
  70. 0 54
      docs/api/lights/shadows/RectAreaLightShadow.html
  71. 7 3
      docs/api/lights/shadows/SpotLightShadow.html
  72. 3 3
      docs/api/loaders/AnimationLoader.html
  73. 1 1
      docs/api/loaders/Cache.html
  74. 12 8
      docs/api/loaders/CubeTextureLoader.html
  75. 9 3
      docs/api/loaders/FontLoader.html
  76. 104 0
      docs/api/loaders/ImageBitmapLoader.html
  77. 1 14
      docs/api/loaders/ImageLoader.html
  78. 17 7
      docs/api/loaders/TextureLoader.html
  79. 61 3
      docs/api/loaders/managers/LoadingManager.html
  80. 14 7
      docs/api/materials/Material.html
  81. 15 4
      docs/api/materials/MeshBasicMaterial.html
  82. 13 5
      docs/api/materials/MeshLambertMaterial.html
  83. 17 6
      docs/api/materials/MeshPhongMaterial.html
  84. 11 3
      docs/api/materials/MeshStandardMaterial.html
  85. 2 2
      docs/api/materials/PointsMaterial.html
  86. 5 6
      docs/api/materials/ShaderMaterial.html
  87. 3 3
      docs/api/math/Box3.html
  88. 1 1
      docs/api/math/Color.html
  89. 4 13
      docs/api/math/Euler.html
  90. 1 1
      docs/api/math/Frustum.html
  91. 4 4
      docs/api/math/Math.html
  92. 17 0
      docs/api/math/Matrix3.html
  93. 2 2
      docs/api/math/Matrix4.html
  94. 19 37
      docs/api/math/Plane.html
  95. 1 1
      docs/api/math/Sphere.html
  96. 7 2
      docs/api/math/Vector2.html
  97. 3 3
      docs/api/math/Vector3.html
  98. 13 4
      docs/api/math/Vector4.html
  99. 2 2
      docs/api/objects/Group.html
  100. 1 1
      docs/api/objects/Mesh.html

+ 1 - 1
.github/ISSUE_TEMPLATE.md

@@ -14,7 +14,7 @@ http://jsfiddle.net/hw9rcLL8/ (dev)
 ##### Three.js version
 ##### Three.js version
 
 
 - [ ] Dev
 - [ ] Dev
-- [ ] r85
+- [ ] r88
 - [ ] ...
 - [ ] ...
 
 
 ##### Browser
 ##### Browser

+ 13 - 12
README.md

@@ -1,6 +1,7 @@
 three.js
 three.js
 ========
 ========
 
 
+[![Gitter][gitter-badge]][gitter-badge-url]
 [![Latest NPM release][npm-badge]][npm-badge-url]
 [![Latest NPM release][npm-badge]][npm-badge-url]
 [![License][license-badge]][license-badge-url]
 [![License][license-badge]][license-badge-url]
 [![Dependencies][dependencies-badge]][dependencies-badge-url]
 [![Dependencies][dependencies-badge]][dependencies-badge-url]
@@ -18,17 +19,17 @@ The aim of the project is to create an easy to use, lightweight, 3D library. The
 
 
 ### Usage ###
 ### Usage ###
 
 
-Download the [minified library](http://threejs.org/build/three.min.js) and include it in your html.
+Download the [minified library](http://threejs.org/build/three.min.js) and include it in your HTML, or install and import it as a [module](http://threejs.org/docs/#manual/introduction/Import-via-modules),
 Alternatively see [how to build the library yourself](https://github.com/mrdoob/three.js/wiki/Build-instructions).
 Alternatively see [how to build the library yourself](https://github.com/mrdoob/three.js/wiki/Build-instructions).
 
 
 ```html
 ```html
 <script src="js/three.min.js"></script>
 <script src="js/three.min.js"></script>
 ```
 ```
 
 
-This code creates a scene, a camera, and a geometric cube, and it adds the cube to the scene. It then creates a `WebGL` renderer for the scene and camera, and it adds that viewport to the document.body element. Finally it animates the cube within the scene for the camera.
+This code creates a scene, a camera, and a geometric cube, and it adds the cube to the scene. It then creates a `WebGL` renderer for the scene and camera, and it adds that viewport to the document.body element. Finally, it animates the cube within the scene for the camera.
 
 
 ```javascript
 ```javascript
-var scene, camera, renderer;
+var camera, scene, renderer;
 var geometry, material, mesh;
 var geometry, material, mesh;
 
 
 init();
 init();
@@ -36,20 +37,19 @@ animate();
 
 
 function init() {
 function init() {
 
 
-	scene = new THREE.Scene();
+	camera = new THREE.PerspectiveCamera( 70, window.innerWidth / window.innerHeight, 0.01, 10 );
+	camera.position.z = 1;
 
 
-	camera = new THREE.PerspectiveCamera( 75, window.innerWidth / window.innerHeight, 1, 10000 );
-	camera.position.z = 1000;
+	scene = new THREE.Scene();
 
 
-	geometry = new THREE.BoxGeometry( 200, 200, 200 );
-	material = new THREE.MeshBasicMaterial( { color: 0xff0000, wireframe: true } );
+	geometry = new THREE.BoxGeometry( 0.2, 0.2, 0.2 );
+	material = new THREE.MeshNormalMaterial();
 
 
 	mesh = new THREE.Mesh( geometry, material );
 	mesh = new THREE.Mesh( geometry, material );
 	scene.add( mesh );
 	scene.add( mesh );
 
 
-	renderer = new THREE.WebGLRenderer();
+	renderer = new THREE.WebGLRenderer( { antialias: true } );
 	renderer.setSize( window.innerWidth, window.innerHeight );
 	renderer.setSize( window.innerWidth, window.innerHeight );
-
 	document.body.appendChild( renderer.domElement );
 	document.body.appendChild( renderer.domElement );
 
 
 }
 }
@@ -66,14 +66,15 @@ function animate() {
 }
 }
 ```
 ```
 
 
-If everything went well you should see [this](http://jsfiddle.net/hfj7gm6t/).
+If everything went well you should see [this](https://jsfiddle.net/f2Lommf5/).
 
 
 ### Change log ###
 ### Change log ###
 
 
 [releases](https://github.com/mrdoob/three.js/releases)
 [releases](https://github.com/mrdoob/three.js/releases)
 
 
 
 
-
+[gitter-badge]: https://badges.gitter.im/mrdoob/three.js.svg
+[gitter-badge-url]: https://gitter.im/mrdoob/three.js
 [npm-badge]: https://img.shields.io/npm/v/three.svg
 [npm-badge]: https://img.shields.io/npm/v/three.svg
 [npm-badge-url]: https://www.npmjs.com/package/three
 [npm-badge-url]: https://www.npmjs.com/package/three
 [license-badge]: https://img.shields.io/npm/l/three.svg
 [license-badge]: https://img.shields.io/npm/l/three.svg

文件差異過大導致無法顯示
+ 668 - 360
build/three.js


文件差異過大導致無法顯示
+ 295 - 362
build/three.min.js


文件差異過大導致無法顯示
+ 667 - 359
build/three.module.js


+ 6 - 3
docs/api/audio/Audio.html

@@ -35,8 +35,8 @@
 		//Load a sound and set it as the Audio object's buffer
 		//Load a sound and set it as the Audio object's buffer
 		audioLoader.load( 'sounds/ambient.ogg', function( buffer ) {
 		audioLoader.load( 'sounds/ambient.ogg', function( buffer ) {
 			sound.setBuffer( buffer );
 			sound.setBuffer( buffer );
-			sound.setLoop(true);
-			sound.setVolume(0.5);
+			sound.setLoop( true );
+			sound.setVolume( 0.5 );
 			sound.play();
 			sound.play();
 		});
 		});
 		</code>
 		</code>
@@ -77,7 +77,10 @@
 		<div>Whether the audio is currently playing.</div>
 		<div>Whether the audio is currently playing.</div>
 
 
 		<h3>[property:Number startTime]</h3>
 		<h3>[property:Number startTime]</h3>
-		<div>Point at which to start playback. Default is *0*.</div>
+		<div>The time at which the sound should begin to play. Same as the *when* paramter of [link:https://developer.mozilla.org/en-US/docs/Web/API/AudioBufferSourceNode/start AudioBufferSourceNode.start](). Default is *0*.</div>
+
+		<h3>[property:Number offset]</h3>
+		<div>An offset to the time within the audio buffer that playback should begin. Same as the *offset* paramter of [link:https://developer.mozilla.org/en-US/docs/Web/API/AudioBufferSourceNode/start AudioBufferSourceNode.start](). Default is *0*.</div>
 
 
 		<h3>[property:String source]</h3>
 		<h3>[property:String source]</h3>
 		<div>An [link:https://developer.mozilla.org/en-US/docs/Web/API/AudioBufferSourceNode AudioBufferSourceNode] created
 		<div>An [link:https://developer.mozilla.org/en-US/docs/Web/API/AudioBufferSourceNode AudioBufferSourceNode] created

+ 5 - 5
docs/api/audio/PositionalAudio.html

@@ -33,9 +33,9 @@
 		//Load a sound and set it as the PositionalAudio object's buffer
 		//Load a sound and set it as the PositionalAudio object's buffer
 		var audioLoader = new THREE.AudioLoader();
 		var audioLoader = new THREE.AudioLoader();
 		audioLoader.load( 'sounds/song.ogg', function( buffer ) {
 		audioLoader.load( 'sounds/song.ogg', function( buffer ) {
-			sound1.setBuffer( buffer );
-			sound1.setRefDistance( 20 );
-			sound1.play();
+			sound.setBuffer( buffer );
+			sound.setRefDistance( 20 );
+			sound.play();
 		});
 		});
 
 
 		//Create an object for the sound to play from
 		//Create an object for the sound to play from
@@ -110,12 +110,12 @@
 
 
 		<h3>[method:PannerNode getMaxDistance]()</h3>
 		<h3>[method:PannerNode getMaxDistance]()</h3>
 		<div>
 		<div>
-		Returns the value of [link:https://developer.mozilla.org/en-US/docs/Web/API/PannerNode/maxDistance panner.distanceModel].
+		Returns the value of [link:https://developer.mozilla.org/en-US/docs/Web/API/PannerNode/maxDistance panner.maxDistance].
 		</div>
 		</div>
 
 
 		<h3>[method:PannerNode setMaxDistance]( [page:Number value] )</h3>
 		<h3>[method:PannerNode setMaxDistance]( [page:Number value] )</h3>
 		<div>
 		<div>
-		Sets the value of [link:https://developer.mozilla.org/en-US/docs/Web/API/PannerNode/maxDistance panner.distanceModel].
+		Sets the value of [link:https://developer.mozilla.org/en-US/docs/Web/API/PannerNode/maxDistance panner.maxDistance].
 		</div>
 		</div>
 
 
 		<h2>Source</h2>
 		<h2>Source</h2>

+ 0 - 8
docs/api/cameras/Camera.html

@@ -80,14 +80,6 @@
 		(which can be reused in this way), otherwise a new vector will be created.
 		(which can be reused in this way), otherwise a new vector will be created.
 		</div>
 		</div>
 
 
-		<h3>[method:null lookAt]( [page:Vector3 target] )</h3>
-		<div>
-		target — position in 3D space for the camera to point towards<br /><br />
-
-		This makes the camera look at the vector position in the global space as long as
-		the parent of this camera is the scene or at position (0,0,0).
-		</div>
-
 		<h2>Source</h2>
 		<h2>Source</h2>
 
 
 		[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
 		[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]

+ 12 - 6
docs/api/cameras/CubeCamera.html

@@ -20,21 +20,21 @@
 		<div>[example:webgl_materials_cubemap_dynamic2 materials / cubemap / dynamic2 ]</div>
 		<div>[example:webgl_materials_cubemap_dynamic2 materials / cubemap / dynamic2 ]</div>
 		<div>[example:webgl_shading_physical shading / physical ]</div>
 		<div>[example:webgl_shading_physical shading / physical ]</div>
 
 
-		<code>//Create cube camera
+		<code>// Create cube camera
 		var cubeCamera = new THREE.CubeCamera( 1, 100000, 128 );
 		var cubeCamera = new THREE.CubeCamera( 1, 100000, 128 );
 		scene.add( cubeCamera );
 		scene.add( cubeCamera );
 
 
-		//Create car
+		// Create car
 		var chromeMaterial = new THREE.MeshLambertMaterial( { color: 0xffffff, envMap: cubeCamera.renderTarget } );
 		var chromeMaterial = new THREE.MeshLambertMaterial( { color: 0xffffff, envMap: cubeCamera.renderTarget } );
 		var car = new Mesh( carGeometry, chromeMaterial );
 		var car = new Mesh( carGeometry, chromeMaterial );
 		scene.add( car );
 		scene.add( car );
 
 
-		//Update the render target cube
+		// Update the render target cube
 		car.setVisible( false );
 		car.setVisible( false );
 		cubeCamera.position.copy( car.position );
 		cubeCamera.position.copy( car.position );
-		cubeCamera.updateCubeMap( renderer, scene );
+		cubeCamera.update( renderer, scene );
 
 
-		//Render the scene
+		// Render the scene
 		car.setVisible( true );
 		car.setVisible( true );
 		renderer.render( scene, camera );
 		renderer.render( scene, camera );
 		</code>
 		</code>
@@ -67,7 +67,7 @@
 		<div>See the base [page:Object3D] class for common methods.</div>
 		<div>See the base [page:Object3D] class for common methods.</div>
 
 
 
 
-		<h3>[method:null updateCubeMap]( [page:WebGLRenderer renderer], [page:Scene scene] )</h3>
+		<h3>[method:null update]( [page:WebGLRenderer renderer], [page:Scene scene] )</h3>
 		<div>
 		<div>
 		renderer -- The current WebGL renderer <br />
 		renderer -- The current WebGL renderer <br />
 		scene -- The current scene
 		scene -- The current scene
@@ -76,6 +76,12 @@
 		Call this to update the [page:CubeCamera.renderTarget renderTarget].
 		Call this to update the [page:CubeCamera.renderTarget renderTarget].
 		</div>
 		</div>
 
 
+		<h3>[method:null clear]( [page:WebGLRenderer renderer], [page:Boolean color], [page:Boolean depth], [page:Boolean stencil] )</h3>
+		<div>
+		Call this to clear the [page:CubeCamera.renderTarget renderTarget] color, depth, and/or stencil buffers.
+		The color buffer is set to the renderer's current clear color. Arguments default to *true*.
+		</div>
+
 		<h2>Source</h2>
 		<h2>Source</h2>
 
 
 		[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
 		[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]

+ 5 - 2
docs/api/cameras/OrthographicCamera.html

@@ -25,7 +25,6 @@
 		<h2>Example</h2>
 		<h2>Example</h2>
 
 
 		<div>[example:canvas_camera_orthographic camera / orthographic ]</div>
 		<div>[example:canvas_camera_orthographic camera / orthographic ]</div>
-		<div>[example:canvas_camera_orthographic2 camera / orthographic2 ]</div>
 		<div>[example:webgl_camera camera ]</div>
 		<div>[example:webgl_camera camera ]</div>
 		<div>[example:webgl_interactive_cubes_ortho interactive / cubes / ortho ]</div>
 		<div>[example:webgl_interactive_cubes_ortho interactive / cubes / ortho ]</div>
 		<div>[example:webgl_materials_cubemap_dynamic materials / cubemap / dynamic ]</div>
 		<div>[example:webgl_materials_cubemap_dynamic materials / cubemap / dynamic ]</div>
@@ -58,7 +57,11 @@ scene.add( camera );</code>
 
 
 
 
 		<h2>Properties</h2>
 		<h2>Properties</h2>
-		<div>See the base [page:Camera] class for common properties.</div>
+		<div>
+			See the base [page:Camera] class for common properties.<br>
+ 			Note that after making changes to most of these poperties you will have to call 
+ 			[page:OrthographicCamera.updateProjectionMatrix .updateProjectionMatrix] for the changes to take effect.
+		</div>
 
 
 		<h3>[property:Float bottom]</h3>
 		<h3>[property:Float bottom]</h3>
 		<div>Camera frustum bottom plane.</div>
 		<div>Camera frustum bottom plane.</div>

+ 5 - 4
docs/api/cameras/PerspectiveCamera.html

@@ -48,7 +48,11 @@ scene.add( camera );</code>
 
 
 
 
 		<h2>Properties</h2>
 		<h2>Properties</h2>
-		<div>See the base [page:Camera] class for common properties.</div>
+		<div>
+			See the base [page:Camera] class for common properties.<br>
+			Note that after making changes to most of these poperties you will have to call 
+			[page:PerspectiveCamera.updateProjectionMatrix .updateProjectionMatrix] for the changes to take effect. 
+		</div>
 
 
 		<h3>[property:Float aspect]</h3>
 		<h3>[property:Float aspect]</h3>
 		<div>Camera frustum aspect ratio, usually the canvas width / canvas height. Default is *1* (square canvas).</div>
 		<div>Camera frustum aspect ratio, usually the canvas width / canvas height. Default is *1* (square canvas).</div>
@@ -103,9 +107,6 @@ scene.add( camera );</code>
 		<div>Gets or sets the zoom factor of the camera. Default is *1*.</div>
 		<div>Gets or sets the zoom factor of the camera. Default is *1*.</div>
 
 
 
 
-
-
-
 		<h2>Methods</h2>
 		<h2>Methods</h2>
 		<div>See the base [page:Camera] class for common methods.</div>
 		<div>See the base [page:Camera] class for common methods.</div>
 
 

+ 0 - 10
docs/api/constants/Materials.html

@@ -28,16 +28,6 @@
 		</div>
 		</div>
 
 
 
 
-		<h2>Shading</h2>
-		<code>
-	  THREE.SmoothShading
-		THREE.FlatShading
-		</code>
-		<div>
-		[page:Constant SmoothShading] is the default and linearly interpolates color between vertices.<br />
-		[page:Constant FlatShading] uses the color of the first vertex for every pixel in a face.
-		</div>
-
 		<h2>Colors</h2>
 		<h2>Colors</h2>
 		<code>
 		<code>
 		THREE.NoColors
 		THREE.NoColors

+ 1 - 1
docs/api/constants/Renderer.html

@@ -33,7 +33,7 @@
 		<div>
 		<div>
 		These are used by the WebGLRenderer's [page:WebGLRenderer.setFaceCulling setFaceCulling] method.<br /><br />
 		These are used by the WebGLRenderer's [page:WebGLRenderer.setFaceCulling setFaceCulling] method.<br /><br />
 		[page:constant FrontFaceDirectionCW] sets the winding order for polygons to clockwise.<br />
 		[page:constant FrontFaceDirectionCW] sets the winding order for polygons to clockwise.<br />
-		[page:constant FrontFaceDirectionCW] sets the winding order for polygons to counter-clockwise (default).
+		[page:constant FrontFaceDirectionCCW] sets the winding order for polygons to counter-clockwise (default).
 		</div>
 		</div>
 
 
 		<h2>Shadow Types</h2>
 		<h2>Shadow Types</h2>

+ 5 - 5
docs/api/core/BufferGeometry.html

@@ -73,7 +73,7 @@
 
 
 		<h3>[page:BufferAttribute normal] (itemSize: 3)</h3>
 		<h3>[page:BufferAttribute normal] (itemSize: 3)</h3>
 		<div>
 		<div>
-		Stores the x, y, and z components of the face or vertex normal vector of each vertex in this geometry.
+		Stores the x, y, and z components of the vertex normal vector of each vertex in this geometry.
 		Set by [page:.fromGeometry]().
 		Set by [page:.fromGeometry]().
 		</div>
 		</div>
 
 
@@ -110,7 +110,7 @@
 		<h3>[property:Hashmap attributes]</h3>
 		<h3>[property:Hashmap attributes]</h3>
 		<div>
 		<div>
 		This hashmap has as id the name of the attribute to be set and as value the [page:BufferAttribute buffer] to set it to.
 		This hashmap has as id the name of the attribute to be set and as value the [page:BufferAttribute buffer] to set it to.
-		Rather than accessing this property directly, use addAttribute and getAttribute to access attributes of this geometry.
+		Rather than accessing this property directly, use [page:.addAttribute] and [page:.getAttribute] to access attributes of this geometry.
 		</div>
 		</div>
 
 
 		<h3>[property:Box3 boundingBox]</h3>
 		<h3>[property:Box3 boundingBox]</h3>
@@ -176,9 +176,6 @@
 			You should not change this, as it used internally for optimisation.
 			You should not change this, as it used internally for optimisation.
 		</div>
 		</div>
 
 
-		<h3>[property:Integer MaxIndex]</h3>
-		<div>Maximum number of vertices allowed, set to *65535*.</div>
-
 		<h3>[property:Object morphAttributes]</h3>
 		<h3>[property:Object morphAttributes]</h3>
 		<div>
 		<div>
 			Hashmap of [page:BufferAttribute]s holding details of the geometry's [page:Geometry.morphTargets morphTargets].
 			Hashmap of [page:BufferAttribute]s holding details of the geometry's [page:Geometry.morphTargets morphTargets].
@@ -319,6 +316,9 @@
 		<h3>[method:BufferGeometry setFromObject] ( [page:Object3D object] )</h3>
 		<h3>[method:BufferGeometry setFromObject] ( [page:Object3D object] )</h3>
 		<div>Sets the attributes for this BufferGeometry from an [page:Object3D].</div>
 		<div>Sets the attributes for this BufferGeometry from an [page:Object3D].</div>
 
 
+		<h3>[method:BufferGeometry setFromPoints] ( [page:Array points] )</h3>
+		<div>Sets the attributes for this BufferGeometry from an array of points.</div>
+
 		<h3>[method:Object toJSON]()</h3>
 		<h3>[method:Object toJSON]()</h3>
 		<div>Returns a JSON object representation of the BufferGeometry.</div>
 		<div>Returns a JSON object representation of the BufferGeometry.</div>
 
 

+ 0 - 3
docs/api/core/DirectGeometry.html

@@ -82,9 +82,6 @@
 		<h3>[property:Boolean normalsNeedUpdate]</h3>
 		<h3>[property:Boolean normalsNeedUpdate]</h3>
 		<div>Default is false.</div>
 		<div>Default is false.</div>
 
 
-		<h3>[property:Boolean verticesNeedUpdate]</h3>
-		<div>Default is false.</div>
-
 		<h3>[property:Boolean colorsNeedUpdate]</h3>
 		<h3>[property:Boolean colorsNeedUpdate]</h3>
 		<div>Default is false.</div>
 		<div>Default is false.</div>
 
 

+ 99 - 99
docs/api/core/EventDispatcher.html

@@ -1,100 +1,100 @@
-<!DOCTYPE html>
-<html lang="en">
-	<head>
+<!DOCTYPE html>
+<html lang="en">
+	<head>
 		<meta charset="utf-8" />
 		<meta charset="utf-8" />
-		<base href="../../" />
-		<script src="list.js"></script>
-		<script src="page.js"></script>
-		<link type="text/css" rel="stylesheet" href="page.css" />
-	</head>
-	<body>
-		<h1>[name]</h1>
-
-		<div class="desc">
-			JavaScript events for custom objects.<br />
-			[link:https://github.com/mrdoob/eventdispatcher.js Eventdispatcher on GitHub]
-		</div>
-
-		<h2>Example</h2>
-
-		<code>
-// Adding events to a custom object
-
-var Car = function () {
-
-    this.start = function () {
-
-        this.dispatchEvent( { type: 'start', message: 'vroom vroom!' } );
-
-    };
-
-};
-
-// Mixin the EventDispatcher.prototype with the custom object prototype
-
-Object.assign( Car.prototype, EventDispatcher.prototype );
-
-// Using events with the custom object
-
-var car = new Car();
-
-car.addEventListener( 'start', function ( event ) {
-
-    alert( event.message );
-
-} );
-
-car.start();
-		</code>
-
-		<h2>Constructor</h2>
-
-		<h3>[name]()</h3>
-		<div>
-		Creates EventDispatcher object.
-		</div>
-
-
-		<h2>Methods</h2>
-
-		<h3>[method:null addEventListener]( [page:String type], [page:Function listener] )</h3>
-		<div>
-		type - The type of event to listen to.<br />
-		listener - The function that gets called when the event is fired.
-		</div>
-		<div>
-		Adds a listener to an event type.
-		</div>
-
-		<h3>[method:Boolean hasEventListener]( [page:String type], [page:Function listener] )</h3>
-		<div>
-		type - The type of event to listen to.<br />
-		listener - The function that gets called when the event is fired.
-		</div>
-		<div>
-		Checks if listener is added to an event type.
-		</div>
-
-		<h3>[method:null removeEventListener]( [page:String type], [page:Function listener] )</h3>
-		<div>
-		type - The type of the listener that gets removed.<br />
-		listener - The listener function that gets removed.
-		</div>
-		<div>
-		Removes a listener from an event type.
-		</div>
-
-		<h3>[method:null dispatchEvent]( [page:object event] )</h3>
-		<div>
-		event - The event that gets fired.
-		</div>
-		<div>
-		Fire an event type.
-		</div>
-
-
-		<h2>Source</h2>
-
-		[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
-	</body>
-</html>
+		<base href="../../" />
+		<script src="list.js"></script>
+		<script src="page.js"></script>
+		<link type="text/css" rel="stylesheet" href="page.css" />
+	</head>
+	<body>
+		<h1>[name]</h1>
+
+		<div class="desc">
+			JavaScript events for custom objects.<br />
+			[link:https://github.com/mrdoob/eventdispatcher.js Eventdispatcher on GitHub]
+		</div>
+
+		<h2>Example</h2>
+
+		<code>
+// Adding events to a custom object
+
+var Car = function () {
+
+    this.start = function () {
+
+        this.dispatchEvent( { type: 'start', message: 'vroom vroom!' } );
+
+    };
+
+};
+
+// Mixing the EventDispatcher.prototype with the custom object prototype
+
+Object.assign( Car.prototype, EventDispatcher.prototype );
+
+// Using events with the custom object
+
+var car = new Car();
+
+car.addEventListener( 'start', function ( event ) {
+
+    alert( event.message );
+
+} );
+
+car.start();
+		</code>
+
+		<h2>Constructor</h2>
+
+		<h3>[name]()</h3>
+		<div>
+		Creates EventDispatcher object.
+		</div>
+
+
+		<h2>Methods</h2>
+
+		<h3>[method:null addEventListener]( [page:String type], [page:Function listener] )</h3>
+		<div>
+		type - The type of event to listen to.<br />
+		listener - The function that gets called when the event is fired.
+		</div>
+		<div>
+		Adds a listener to an event type.
+		</div>
+
+		<h3>[method:Boolean hasEventListener]( [page:String type], [page:Function listener] )</h3>
+		<div>
+		type - The type of event to listen to.<br />
+		listener - The function that gets called when the event is fired.
+		</div>
+		<div>
+		Checks if listener is added to an event type.
+		</div>
+
+		<h3>[method:null removeEventListener]( [page:String type], [page:Function listener] )</h3>
+		<div>
+		type - The type of the listener that gets removed.<br />
+		listener - The listener function that gets removed.
+		</div>
+		<div>
+		Removes a listener from an event type.
+		</div>
+
+		<h3>[method:null dispatchEvent]( [page:object event] )</h3>
+		<div>
+		event - The event that gets fired.
+		</div>
+		<div>
+		Fire an event type.
+		</div>
+
+
+		<h2>Source</h2>
+
+		[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+	</body>
+</html>

+ 1 - 1
docs/api/core/Face3.html

@@ -21,7 +21,7 @@
 
 
 		<div>[example:misc_ubiquity_test ubiquity / test ]</div>
 		<div>[example:misc_ubiquity_test ubiquity / test ]</div>
 		<div>[example:svg_sandbox svg / sandbox ]</div>
 		<div>[example:svg_sandbox svg / sandbox ]</div>
-		<div>[example:webgl_exporter_obj WebGL / exporter / obj ]</div>
+		<div>[example:misc_exporter_obj exporter / obj ]</div>
 		<div>[example:webgl_shaders_vector WebGL / shaders / vector ]</div>
 		<div>[example:webgl_shaders_vector WebGL / shaders / vector ]</div>
 
 
 
 

+ 17 - 14
docs/api/core/Geometry.html

@@ -159,8 +159,8 @@
 		In code another example could look like this:
 		In code another example could look like this:
 		<code>
 		<code>
 		// e.g.
 		// e.g.
-		geometry.skinIndices[15] = new THREE.Vector4(   0,   5,   9, 0 );
-		geometry.skinWeights[15] = new THREE.Vector4( 0.2, 0.5, 0.3, 0 );
+		geometry.skinIndices[15] = new THREE.Vector4(   0,   5,   9, 10 );
+		geometry.skinWeights[15] = new THREE.Vector4( 0.2, 0.5, 0.3,  0 );
 
 
 		// corresponds with the following vertex
 		// corresponds with the following vertex
 		geometry.vertices[15];
 		geometry.vertices[15];
@@ -274,7 +274,7 @@
 		<div>
 		<div>
 		vector - A world vector to look at.<br /><br />
 		vector - A world vector to look at.<br /><br />
 
 
-		Rotates the geometry to face point in space. This is typically done as a one time operation, and not during a loop
+		Rotates the geometry to face point in space. This is typically done as a one time operation but not during the render loop.<br>
 		Use [page:Object3D.lookAt] for typical real-time mesh usage.
 		Use [page:Object3D.lookAt] for typical real-time mesh usage.
 		</div>
 		</div>
 
 
@@ -299,31 +299,34 @@
 
 
 		<h3>[method:Geometry rotateX] ( [page:Float radians] )</h3>
 		<h3>[method:Geometry rotateX] ( [page:Float radians] )</h3>
 		<div>
 		<div>
-		Rotate the geometry about the X axis. This is typically done as a one time operation, and not during a loop
-    Use [page:Object3D.rotation] for typical real-time mesh rotation.
+		Rotate the geometry about the X axis. This is typically done as a one time operation but not during the render loop.<br>
+		Use [page:Object3D.rotation] for typical real-time mesh rotation.
 		</div>
 		</div>
 
 
 		<h3>[method:Geometry rotateY] ( [page:Float radians] )</h3>
 		<h3>[method:Geometry rotateY] ( [page:Float radians] )</h3>
 		<div>
 		<div>
-		Rotate the geometry about the Y axis. This is typically done as a one time operation, and not during a loop
-    Use [page:Object3D.rotation] for typical real-time mesh rotation.
+		Rotate the geometry about the Y axis. This is typically done as a one time operation but not during the render loop.<br>
+    	        Use [page:Object3D.rotation] for typical real-time mesh rotation.
 		</div>
 		</div>
 
 
 		<h3>[method:Geometry rotateZ] ( [page:Float radians] )</h3>
 		<h3>[method:Geometry rotateZ] ( [page:Float radians] )</h3>
 		<div>
 		<div>
-		Rotate the geometry about the Z axis. This is typically done as a one time operation, and not during a loop
-    Use [page:Object3D.rotation] for typical real-time mesh rotation.
+		Rotate the geometry about the Z axis. This is typically done as a one time operation but not during the render loop.<br>
+	        Use [page:Object3D.rotation] for typical real-time mesh rotation.
 		</div>
 		</div>
 
 
+		<h3>[method:Geometry setFromPoints] ( [page:Array points] )</h3>
+		<div>Sets the vertices for this Geometry from an array of points.</div>
+
 		<h3>[method:null sortFacesByMaterialIndex] (  )</h3>
 		<h3>[method:null sortFacesByMaterialIndex] (  )</h3>
 		<div>
 		<div>
-			Sorts the faces array according to material index. For complex geometries with several materials,
-			this can result in reduced draw call and improved performance.
+		Sorts the faces array according to material index. For complex geometries with several materials,
+		this can result in reduced draw calls and improved performance.
 		</div>
 		</div>
 
 
 		<h3>[method:Geometry scale] ( [page:Float x], [page:Float y], [page:Float z] )</h3>
 		<h3>[method:Geometry scale] ( [page:Float x], [page:Float y], [page:Float z] )</h3>
 		<div>
 		<div>
-		Scale the geometry data. This is typically done as a one time operation, and not during a loop
+		Scale the geometry data. This is typically done as a one time operation but not during the render loop.<br>
 		Use [page:Object3D.scale] for typical real-time mesh scaling.
 		Use [page:Object3D.scale] for typical real-time mesh scaling.
 		</div>
 		</div>
 
 
@@ -332,8 +335,8 @@
 
 
 		<h3>[method:Geometry translate] ( [page:Float x], [page:Float y], [page:Float z] )</h3>
 		<h3>[method:Geometry translate] ( [page:Float x], [page:Float y], [page:Float z] )</h3>
 		<div>
 		<div>
-		Translate the geometry. This is typically done as a one time operation, and not during a loop
-    Use [page:Object3D.position] for typical real-time mesh translation.
+		Translate the geometry. This is typically done as a one time operation but not during the render loop.<br>
+    	        Use [page:Object3D.position] for typical real-time mesh translation.
 		</div>
 		</div>
 
 
 
 

+ 13 - 10
docs/api/core/InterleavedBufferAttribute.html

@@ -27,6 +27,19 @@
 			The [page:InterleavedBuffer InterleavedBuffer] instance passed in the constructor.
 			The [page:InterleavedBuffer InterleavedBuffer] instance passed in the constructor.
 		</div>
 		</div>
 
 
+		<h3>[property:TypedArray array]</h3>
+		<div>
+			The value of [page:InterleavedBufferAttribute.data data].array.
+		</div>
+
+		<h3>[property:Integer count]</h3>
+		<div>
+			The value of [page:InterleavedBufferAttribute.data data].count.
+
+			If the buffer is storing a 3-component vector (such as a position, normal, or color),
+			then this will count the number of such vectors stored.
+		</div>
+
 		<h3>[property:Integer itemSize]</h3>
 		<h3>[property:Integer itemSize]</h3>
 		<div>
 		<div>
 		</div>
 		</div>
@@ -47,16 +60,6 @@
 
 
 		<h2>Methods</h2>
 		<h2>Methods</h2>
 
 
-		<h3>[method:Integer count]()</h3>
-		<div>
-			The value of [page:InterleavedBufferAttribute.data data].count.
-		</div>
-
-		<h3>[method:Array array]()</h3>
-		<div>
-			The value of [page:InterleavedBufferAttribute.data data].array.
-		</div>
-
 		<h3>[method:null getX]( index ) </h3>
 		<h3>[method:null getX]( index ) </h3>
 		<div>
 		<div>
 
 

+ 18 - 19
docs/api/core/Layers.html

@@ -11,15 +11,14 @@
 		<h1>[name]</h1>
 		<h1>[name]</h1>
 
 
 		<div class="desc">
 		<div class="desc">
-		An object providing a [link:https://en.wikipedia.org/wiki/Mask_(computing) bit mask] and accessor methods
-		used to control an [page:Object3D]'s visibility.
-		A [page:Layers] object assigns an [page:Object3D] to 0 or more of 32 layers numbered 0 to 31.<br /><br />
+      			A [page:Layers] object assigns an [page:Object3D] to 1 or more of 32 layers numbered 0 to 31
+      			- internally the layers are stored as a [link:https://en.wikipedia.org/wiki/Mask_(computing) bit mask], and by default all
+      			Object3Ds are a member of layer 0.<br /><br />
 
 
-		This is used to control visibility - an object must share a layer with a [page:Camera camera]
-		to be visible when that camera's view is renderered.<br /><br />
+      			This can be used to control visibility - an object must share a layer with a [page:Camera camera] to be visible when that camera's
+      			view is renderered.<br /><br />
 
 
-		All classes that inherit from [page:Object3D] have a [property:layers] property which is an instance
-		of this class.
+      			All classes that inherit from [page:Object3D] have an [page:Object3D.layers] property which is an instance of this class.
 		</div>
 		</div>
 
 
 
 
@@ -28,14 +27,14 @@
 
 
 		<h3>[name]()</h3>
 		<h3>[name]()</h3>
 		<div>
 		<div>
-		Create a new Layers object, with an initial mask set to layer 1.
+			Create a new Layers object, with membership initially set to layer 0.
 		</div>
 		</div>
 
 
 		<h2>Properties</h2>
 		<h2>Properties</h2>
 
 
 		<h3>[property:Integer mask]</h3>
 		<h3>[property:Integer mask]</h3>
 		<div>
 		<div>
-		Internal layer mask.
+		 	A bit mask storing which of the 32 layers this layers object is currently a member of.
 		</div>
 		</div>
 
 
 
 
@@ -43,37 +42,37 @@
 
 
 		<h3>[method:null disable]( [page:Integer layer] )</h3>
 		<h3>[method:null disable]( [page:Integer layer] )</h3>
 		<div>
 		<div>
-		layer - an integer from 0 to 31.<br /><br />
+			layer - an integer from 0 to 31.<br /><br />
 
 
-		Remove *layer* from the mask.
+			Remove membership of this *layer*.
 		</div>
 		</div>
 
 
 		<h3>[method:null enable]( [page:Integer layer] )</h3>
 		<h3>[method:null enable]( [page:Integer layer] )</h3>
 		<div>
 		<div>
-		layer - an integer from 0 to 31.<br /><br />
+			layer - an integer from 0 to 31.<br /><br />
 
 
-		Add *layer* to the mask.
+			Add membership of this *layer*.
 		</div>
 		</div>
 
 
 		<h3>[method:null set]( [page:Integer layer] )</h3>
 		<h3>[method:null set]( [page:Integer layer] )</h3>
 		<div>
 		<div>
-		layer - an integer from 0 to 31.<br /><br />
+			layer - an integer from 0 to 31.<br /><br />
 
 
-		Set the layer mask to the value *layer*.
+			Set membership to *layer*, and remove membership all other layers.
 		</div>
 		</div>
 
 
 		<h3>[method:Boolean test]( [page:Integer layers] )</h3>
 		<h3>[method:Boolean test]( [page:Integer layers] )</h3>
 		<div>
 		<div>
-		layers - a 32bit bit mask of layer numbers.<br /><br />
+			layers - a Layers object<br /><br />
 
 
-		Returns true if *layers* and [page:.mask] have any bits set in common.
+			Returns true if this and the passed *layers* object are members of the same set of layers.
 		</div>
 		</div>
 
 
 		<h3>[method:null toggle]( [page:Integer layer] )</h3>
 		<h3>[method:null toggle]( [page:Integer layer] )</h3>
 		<div>
 		<div>
-		layer - an integer from 0 to 31.<br /><br />
+			layer - an integer from 0 to 31.<br /><br />
 
 
-		Toggle the *layer* value in the mask.
+			Toggle membership of *layer*.
 		</div>
 		</div>
 
 
 		<h2>Source</h2>
 		<h2>Source</h2>

+ 18 - 3
docs/api/core/Object3D.html

@@ -112,7 +112,7 @@
 		<div>Object's parent in the [link:https://en.wikipedia.org/wiki/Scene_graph scene graph].</div>
 		<div>Object's parent in the [link:https://en.wikipedia.org/wiki/Scene_graph scene graph].</div>
 
 
 		<h3>[property:Vector3 position]</h3>
 		<h3>[property:Vector3 position]</h3>
-		<div>The object's local position.</div>
+		<div>A [page:Vector3] representing the object's local position. Default is (0, 0, 0).</div>
 
 
 		<h3>[property:Quaternion quaternion]</h3>
 		<h3>[property:Quaternion quaternion]</h3>
 		<div>Object's local rotation as a [page:Quaternion Quaternion].</div>
 		<div>Object's local rotation as a [page:Quaternion Quaternion].</div>
@@ -287,11 +287,17 @@
 		Converts the vector from local space to world space.
 		Converts the vector from local space to world space.
 		</div>
 		</div>
 
 
-		<h3>[method:null lookAt]( [page:Vector3 vector] )</h3>
+		<h3>[method:null lookAt]( [page:Vector3 vector] )</br>
+		[method:null lookAt]( [page:Float x], [page:Float y], [page:Float z] )</h3>
 		<div>
 		<div>
 		vector - A vector representing a position in world space.<br /><br />
 		vector - A vector representing a position in world space.<br /><br />
+		Optionally, the [page:.x x], [page:.y y] and [page:.z z] components of the world space position.<br /><br />
+
+		Rotates the object to face a point in world space.<br /><br />
+
+		This method does not support objects with rotated and/or translated parent(s).
+		</div>
 
 
-		Rotates the object to face a point in world space.
 		</div>
 		</div>
 
 
 		<h3>[method:Array raycast]( [page:Raycaster raycaster], [page:Array intersects] )</h3>
 		<h3>[method:Array raycast]( [page:Raycaster raycaster], [page:Array intersects] )</h3>
@@ -314,6 +320,15 @@
 		Rotate an object along an axis in object space. The axis is assumed to be normalized.
 		Rotate an object along an axis in object space. The axis is assumed to be normalized.
 		</div>
 		</div>
 
 
+		<h3>[method:Object3D rotateOnWorldAxis]( [page:Vector3 axis], [page:Float angle] )</h3>
+		<div>
+		axis -- A normalized vector in world space. <br />
+		angle -- The angle in radians.<br /><br />
+
+		Rotate an object along an axis in world space. The axis is assumed to be normalized.
+		Method Assumes no rotated parent.
+		</div>
+
 		<h3>[method:null rotateX]( [page:Float rad] )</h3>
 		<h3>[method:null rotateX]( [page:Float rad] )</h3>
 		<div>
 		<div>
 		rad - the angle to rotate in radians.<br /><br />
 		rad - the angle to rotate in radians.<br /><br />

+ 1 - 1
docs/api/deprecated/DeprecatedList.html

@@ -458,7 +458,7 @@
 
 
 
 
 		<h3>[page:Particle]</h3>
 		<h3>[page:Particle]</h3>
-		<div>ParticleSystem has been renamed to [page:Sprite].</div>
+		<div>Particle has been renamed to [page:Sprite].</div>
 
 
 		<h3>[page:ParticleSystem]</h3>
 		<h3>[page:ParticleSystem]</h3>
 		<div>ParticleSystem has been renamed to [page:Points].</div>
 		<div>ParticleSystem has been renamed to [page:Points].</div>

+ 0 - 63
docs/api/extras/CurveUtils.html

@@ -1,63 +0,0 @@
-<!DOCTYPE html>
-<html lang="en">
-	<head>
-		<meta charset="utf-8" />
-		<base href="../../" />
-		<script src="list.js"></script>
-		<script src="page.js"></script>
-		<link type="text/css" rel="stylesheet" href="page.css" />
-	</head>
-	<body>
-		<h1>[name]</h1>
-
-		<div class="desc">
-		A class containing utility functions for curves.<br /><br />
-
-		Note that these are all linear functions so it is neccessary to calculate separately for
-		x, y (and z, w if present) components of a curve.
-		</div>
-
-
-		<h2>Methods</h2>
-
-		<h3>[method:Number interpolate]( p0, p1, p2, p3, t )</h3>
-		<div>
-		t -- interpolation weight. <br />
-		p0, p1, p2, p4 -- the points defining the spline curve.<br /><br />
-
-		Used internally by [page:SplineCurve SplineCurve].
-		</div>
-
-		<h3>[method:Number tangentQuadraticBezier]( t, p0, p1, p2 )</h3>
-		<div>
-		t -- the point at which to calculate the tangent. <br />
-		p0, p1, p2 -- the three points defining the quadratic Bézier curve.<br /><br />
-
-		Calculate the tangent at the point t on a quadratic Bézier curve given by the three points.<br /><br />
-
-		Used internally by [page:QuadraticBezierCurve QuadraticBezierCurve].
-		</div>
-
-		<h3>[method:Number tangentCubicBezier]( t, p0, p1, p2, p3 )</h3>
-		<div>
-		t -- the point at which to calculate the tangent. <br />
-		p0, p1, p2, p3 -- the points defining the cubic Bézier curve.<br /><br />
-
-		Calculate the tangent at the point t on a cubic Bézier curve given by the four points.<br /><br />
-
-		Used internally by [page:CubicBezierCurve CubicBezierCurve].
-		</div>
-
-		<h3>[method:Number tangentSpline]( t, p0, p1, p2, p3 )</h3>
-		<div>
-		t -- the point at which to calculate the tangent. <br />
-		p0, p1, p2, p3 -- the points defining the spline curve.<br /><br />
-
-		Calculate the tangent at the point t on a spline curve given by the four points.
-		</div>
-
-		<h2>Source</h2>
-
-		[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
-	</body>
-</html>

+ 31 - 0
docs/api/extras/Earcut.html

@@ -0,0 +1,31 @@
+<!DOCTYPE html>
+<html lang="en">
+	<head>
+		<meta charset="utf-8" />
+		<base href="../../" />
+		<script src="list.js"></script>
+		<script src="page.js"></script>
+		<link type="text/css" rel="stylesheet" href="page.css" />
+	</head>
+	<body>
+		<h1>[name]</h1>
+
+		<div class="desc">
+		An implementation of the earcut polygon triangulation algorithm. The code is a port of [link:https://github.com/mapbox/earcut mapbox/earcut].
+		</div>
+
+		<h2>Methods</h2>
+
+		<h3>[method:Array triangulate]( data, holeIndices, dim )</h3>
+		<div>
+		data -- A flat array of vertice coordinates.<br /><br />
+		holeIndices -- An array of hole indices if any.<br /><br />
+		dim -- The number of coordinates per vertice in the input array.<br /><br />
+
+		</div>
+
+		<h2>Source</h2>
+
+		[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+	</body>
+</html>

+ 2 - 36
docs/api/extras/ShapeUtils.html

@@ -28,30 +28,6 @@
 
 
 		</div>
 		</div>
 
 
-		<h3>[method:Number b2]( t, p0, p1, p2 )</h3>
-		<div>
-		t -- number<br />
-		p0, p1, p2 -- x, y, z or w components of a quadratic bezier curve.<br /><br />
-
-		Note that this is a linear function so it is neccessary to calculate separately for
-		x, y (and z for 3D curves) components of a curve.<br /><br />
-
-		Used internally by [page:QuadraticBezierCurve QuadraticBezierCurve],
-		[page:QuadraticBezierCurve3 QuadraticBezierCurve3] and [page:Font Font].
-		</div>
-
-		<h3>[method:Number b3]( t, p0, p1, p2, p3 )</h3>
-		<div>
-		t -- number. <br />
-		p0, p1, p2, p3 -- x, y or z components of a cubic bezier curve..<br /><br />
-
-		Note that this is a linear function so it is neccessary to calculate separately for
-		x, y (and z for 3D curves) components of a curve.<br /><br />
-
-		Used internally by [page:CubicBezierCurve CubicBezierCurve],
-		[page:CubicBezierCurve3 CubicBezierCurve3] and [page:Font Font].
-		</div>
-
 		<h3>[method:Boolean isClockwise]( pts )</h3>
 		<h3>[method:Boolean isClockwise]( pts )</h3>
 		<div>
 		<div>
 		pts -- points defining a 2D polygon<br /><br />
 		pts -- points defining a 2D polygon<br /><br />
@@ -60,16 +36,7 @@
 		x, y  components of a polygon.<br /><br />
 		x, y  components of a polygon.<br /><br />
 
 
 		Used internally by [page:Path Path],
 		Used internally by [page:Path Path],
-		[page:ExtrudeGeometry ExtrudeGeometry] and [page:ShapeBufferGeometry ShapeBufferGeometry].
-		</div>
-
-		<h3>[method:null triangulate]( contour, indices )</h3>
-		<div>
-		contour --  2D polygon.<br />
-		indices -- <br /><br />
-
-		Used internally by [page:ExtrudeGeometry ExtrudeGeometry]
-		and [page:ShapeBufferGeometry ShapeBufferGeometry] to calculate faces.
+		[page:ExtrudeGeometry ExtrudeGeometry] and [page:ShapeGeometry ShapeGeometry].
 		</div>
 		</div>
 
 
 		<h3>[method:null triangulateShape]( contour, holes )</h3>
 		<h3>[method:null triangulateShape]( contour, holes )</h3>
@@ -77,8 +44,7 @@
 		contour -- 2D polygon.<br />
 		contour -- 2D polygon.<br />
 		holes -- array of holes<br /><br />
 		holes -- array of holes<br /><br />
 
 
-		Used internally by [page:ExtrudeGeometry ExtrudeGeometry]
-		and [page:ShapeBufferGeometry ShapeBufferGeometry] to calculate faces in shapes with holes.
+		Used internally by [page:ExtrudeGeometry ExtrudeGeometry] and [page:ShapeGeometry ShapeGeometry] to calculate faces in shapes with holes.
 		</div>
 		</div>
 
 
 		<h2>Source</h2>
 		<h2>Source</h2>

+ 20 - 5
docs/api/extras/core/Curve.html

@@ -31,13 +31,22 @@
 
 
 		<h2>Methods</h2>
 		<h2>Methods</h2>
 
 
-		<h3>[method:Vector getPoint]( [page:Float t] )</h3>
-		<div>Returns a vector for point t of the curve where t is between 0 and 1. Must be implemented in the extending curve.</div>
+		<h3>[method:Vector getPoint]( [page:Float t], [page:Vector optionalTarget] )</h3>
+		<div>
+			[page:Float t] - A position on the curve. Must be in the range [ 0, 1 ]. <br>
+			[page:Vector optionalTarget] — (optional) If specified, the result will be copied into this Vector,
+			otherwise a new Vector will be created. <br /><br />
+
+			Returns a vector for a given position on the curve.
+		</div>
 
 
-		<h3>[method:Vector getPointAt]( [page:Float u] )</h3>
+		<h3>[method:Vector getPointAt]( [page:Float u], [page:Vector optionalTarget] )</h3>
 		<div>
 		<div>
-			Returns a vector for point at a relative position in curve according to arc length.
-			u is in the range [0, 1].
+			[page:Float u] - A position on the curve according to the arc length. Must be in the range [ 0, 1 ]. <br>
+			[page:Vector optionalTarget] — (optional) If specified, the result will be copied into this Vector,
+			otherwise a new Vector will be created. <br /><br />
+
+			Returns a vector for a given position on the curve according to the arc length.
 		</div>
 		</div>
 
 
 		<h3>[method:Array getPoints]( [page:Integer divisions] )</h3>
 		<h3>[method:Array getPoints]( [page:Integer divisions] )</h3>
@@ -88,6 +97,12 @@
 		Generates the Frenet Frames. Used in geometries like [page:TubeGeometry] or [page:ExtrudeGeometry].
 		Generates the Frenet Frames. Used in geometries like [page:TubeGeometry] or [page:ExtrudeGeometry].
 		</div>
 		</div>
 
 
+		<h3>[method:Curve clone]()</h3>
+		<div>Creates a clone of this curve.</div>
+
+		<h3>[method:Curve copy]( [page:Curve source] )</h3>
+		<div>Copies another curve to this instance.</div>
+
 		<h2>Source</h2>
 		<h2>Source</h2>
 
 
 		[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
 		[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]

+ 0 - 23
docs/api/extras/core/CurvePath.html

@@ -49,29 +49,6 @@
 		<h3>[method:null closePath]()</h3>
 		<h3>[method:null closePath]()</h3>
 		<div>Adds a [page:LineCurve lineCurve] to close the path.</div>
 		<div>Adds a [page:LineCurve lineCurve] to close the path.</div>
 
 
-		<h3>[method:Geometry createGeometry]( [page:Vector3 points] )</h3>
-		<div>
-		points -- An array of [page:Vector3 Vector3s]<br /><br />
-
-		Creates a geometry from points
-		</div>
-
-		<h3>[method:Geometry createPointsGeometry]( [page:Integer divisions] )</h3>
-		<div>
-		divisions -- How many segments to create. Defaults to *12*.<br /><br />
-
-		Creates a [page:Geometry] object comprised of [page:Vector3 Vector3s], for example
-		to be used with [page:Line] or [page:Points]. Uses [page:Curve.getPoints]() for the division.
-		</div>
-
-		<h3>[method:Geometry createSpacedPointsGeometry]( [page:Integer divisions] )</h3>
-		<div>
-		divisions -- How many segments to create. Defaults to *12*.<br /><br />
-
-		Creates a [page:Geometry] object comprised of [page:Vector3]s that are equidistant, for example
-		to be used with [page:Line] or [page:Points].	Uses [page:Curve.getSpacedPoints]() for the division.
-		</div>
-
 		<h3>[method:Float getCurveLengths]()</h3>
 		<h3>[method:Float getCurveLengths]()</h3>
 		<div>Adds together the lengths of the curves in the [page:.curves] array.</div>
 		<div>Adds together the lengths of the curves in the [page:.curves] array.</div>
 
 

+ 1 - 1
docs/api/extras/core/Font.html

@@ -50,7 +50,7 @@
 		<div>
 		<div>
 			[page:String text] -- string of text.<br />
 			[page:String text] -- string of text.<br />
 			[page:Float size] -- (optional) scale for the [page:Shape Shapes]. Default is *100*.<br />
 			[page:Float size] -- (optional) scale for the [page:Shape Shapes]. Default is *100*.<br />
-			[page:Integer divisions] -- (optional) fineness of the [page:Shape Shapes]. Default is *5*.<br />
+			[page:Integer divisions] -- (optional) fineness of the [page:Shape Shapes]. Default is *4*.<br />
 
 
 			Creates an array of [page:Shape Shapes] representing the text in the font.
 			Creates an array of [page:Shape Shapes] representing the text in the font.
 		</div>
 		</div>

+ 47 - 0
docs/api/extras/core/Interpolations.html

@@ -0,0 +1,47 @@
+<!DOCTYPE html>
+<html lang="en">
+	<head>
+		<meta charset="utf-8" />
+		<base href="../../../" />
+		<script src="list.js"></script>
+		<script src="page.js"></script>
+		<link type="text/css" rel="stylesheet" href="page.css" />
+	</head>
+	<body>
+		<h1>[name]</h1>
+
+		<div class="desc">
+		TODO
+		</div>
+
+		<h2>Methods</h2>
+
+		<h3>[method:Float CatmullRom]( [page:Float t], [page:Float p0], [page:Float p1], [page:Float p2], [page:Float p3] )</h3>
+		<div>
+		t -- interpolation weight.<br />
+		p0, p1, p2, p3 -- the points defining the spline curve.<br /><br />
+
+		Used internally by [page:SplineCurve SplineCurve].
+		</div>
+
+		<h3>[method:Float QuadraticBezier]( [page:Float t], [page:Float p0], [page:Float p1], [page:Float p2] )</h3>
+		<div>
+		t -- interpolation weight.<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].
+		</div>
+
+		<h3>[method:Float CubicBezier]( [page:Float t], [page:Float p0], [page:Float p1], [page:Float p2], [page:Float p3] )</h3>
+		<div>
+		t -- interpolation weight.<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].
+		</div>
+
+		<h2>Source</h2>
+
+		[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+	</body>
+</html>

+ 1 - 1
docs/api/extras/core/Path.html

@@ -98,7 +98,7 @@ var path = new THREE.Path(vectors);
 		<div>
 		<div>
 			points --  array of [page:Vector2 Vector2s].<br /><br />
 			points --  array of [page:Vector2 Vector2s].<br /><br />
 
 
-			Adds to the from the points. Points	are added to the [page:CurvePath.curves curves]
+			Points are added to the [page:CurvePath.curves curves]
 			array as [page:LineCurve LineCurves].
 			array as [page:LineCurve LineCurves].
 		</div>
 		</div>
 
 

+ 11 - 7
docs/api/extras/core/Shape.html

@@ -41,14 +41,22 @@
 		[example:webgl_geometry_shapes geometry / shapes ]<br/>
 		[example:webgl_geometry_shapes geometry / shapes ]<br/>
 		[example:webgl_geometry_extrude_shapes geometry / extrude / shapes ]<br/>
 		[example:webgl_geometry_extrude_shapes geometry / extrude / shapes ]<br/>
 		[example:webgl_geometry_extrude_shapes2 geometry / extrude / shapes2 ]<br/>
 		[example:webgl_geometry_extrude_shapes2 geometry / extrude / shapes2 ]<br/>
-		[example:webgl_particles_shapes particles / shapes ]
 		</div>
 		</div>
 
 
 
 
 		<h2>Constructor</h2>
 		<h2>Constructor</h2>
 
 
 
 
-		<h3>[name]()</h3>
+		<h3>[name]( [page:Array points] )</h3>
+		<div>
+		points -- (optional) array of [page:Vector2 Vector2s].<br /><br />
+
+		Creates a Shape from the points. The first point defines the offset, then successive points
+		are added to the [page:CurvePath.curves curves] array as [page:LineCurve LineCurves].<br /><br />
+
+		If no points are specified, an empty shape is created and the [page:.currentPoint] is set to
+		the origin.
+		</div>
 
 
 
 
 		<h2>Properties</h2>
 		<h2>Properties</h2>
@@ -60,7 +68,7 @@
 		<h2>Methods</h2>
 		<h2>Methods</h2>
 		<div>See the base [page:Path] class for common methods.</div>
 		<div>See the base [page:Path] class for common methods.</div>
 
 
-		<h3>[method:Array extractAllPoints]( [page:Integer divisions] )</h3>
+		<h3>[method:Array extractPoints]( [page:Integer divisions] )</h3>
 		<div>
 		<div>
 		divisions -- The fineness of the result.<br /><br />
 		divisions -- The fineness of the result.<br /><br />
 
 
@@ -74,10 +82,6 @@
 		where shape and holes are arrays of [page:Vector2 Vector2s].
 		where shape and holes are arrays of [page:Vector2 Vector2s].
 		</div>
 		</div>
 
 
-		<h3>[method:Object extractPoints]( [page:Integer divisions] )</h3>
-		<div>This is identical to [page:.extractAllPoints].</div>
-
-
 		<h3>[method:Array getPointsHoles]( [page:Integer divisions] )</h3>
 		<h3>[method:Array getPointsHoles]( [page:Integer divisions] )</h3>
 		<div>
 		<div>
 		divisions -- The fineness of the result.<br /><br />
 		divisions -- The fineness of the result.<br /><br />

+ 11 - 0
docs/api/extras/curves/ArcCurve.html

@@ -14,6 +14,17 @@
 
 
 		<div class="desc">Alias for [page:EllipseCurve]</div>
 		<div class="desc">Alias for [page:EllipseCurve]</div>
 
 
+		<h2>Properties</h2>
+		<div>See the [page:EllipseCurve] class for common properties.</div>
+
+		<h3>[property:Boolean isArcCurve]</h3>
+		<div>
+			Used to check whether this or derived classes are ArcCurves. Default is *true*.<br /><br />
+
+			You should not change this, as it used internally for optimisation.
+		</div>
+
+
 		<h2>Source</h2>
 		<h2>Source</h2>
 
 
 		[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
 		[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]

+ 21 - 11
docs/api/extras/curves/CatmullRomCurve3.html

@@ -27,8 +27,8 @@ var curve = new THREE.CatmullRomCurve3( [
 	new THREE.Vector3( 10, 0, 10 )
 	new THREE.Vector3( 10, 0, 10 )
 ] );
 ] );
 
 
-var geometry = new THREE.Geometry();
-geometry.vertices = curve.getPoints( 50 );
+var points = curve.getPoints( 50 );
+var geometry = new THREE.BufferGeometry().setFromPoints( points );
 
 
 var material = new THREE.LineBasicMaterial( { color : 0xff0000 } );
 var material = new THREE.LineBasicMaterial( { color : 0xff0000 } );
 
 
@@ -41,26 +41,36 @@ var curveObject = new THREE.Line( geometry, material );
 
 
 		<h2>Constructor</h2>
 		<h2>Constructor</h2>
 
 
-		<h3>[name]( [page:Array points] )</h3>
-		<div>points – An array of [page:Vector3] points</div>
-
-
+		<h3>[name]( [page:Array points], [page:Boolean closed], [page:String curveType], [page:Float tension] )</h3>
+		<div>
+			points – An array of [page:Vector3] points<br/>
+			closed – Whether the curve is closed. Default is *false*.<br/>
+			curveType – Type of the curve. Default is *centripetal*.<br/>
+			tension – Tension of the curve. Default is *0.5*.
+		</div>
 
 
 
 
 		<h2>Properties</h2>
 		<h2>Properties</h2>
 		<div>See the base [page:Curve] class for common properties.</div>
 		<div>See the base [page:Curve] class for common properties.</div>
 
 
+		<h3>[property:Boolean isCatmullRomCurve3]</h3>
+		<div>
+			Used to check whether this or derived classes are CatmullRomCurve3s. Default is *true*.<br /><br />
+
+			You should not change this, as it used internally for optimisation.
+		</div>
+
 		<h3>[property:Array points]</h3>
 		<h3>[property:Array points]</h3>
-		<div>The array of array of [page:Vector3] points that define the curve.</div>
+		<div>The array of [page:Vector3] points that define the curve. It needs at least two entries.</div>
 
 
 		<h3>[property:Boolean closed]</h3>
 		<h3>[property:Boolean closed]</h3>
-		<div>The curve will loop back onto itself when this is true. False by default</div>
+		<div>The curve will loop back onto itself when this is true.</div>
 
 
-		<h3>[property:String type]</h3>
-		<div>Possible values are `centripetal` (default), `chordal` and `catmullrom`.</div>
+		<h3>[property:String curveType]</h3>
+		<div>Possible values are *centripetal*, *chordal* and *catmullrom*.</div>
 
 
 		<h3>[property:float tension]</h3>
 		<h3>[property:float tension]</h3>
-		<div>When [page:.type] is `catmullrom`, defines catmullrom's tension. Defaults is *0.5*.</div>
+		<div>When [page:.type] is *catmullrom*, defines catmullrom's tension.</div>
 
 
 
 
 		<h2>Methods</h2>
 		<h2>Methods</h2>

+ 13 - 6
docs/api/extras/curves/CubicBezierCurve.html

@@ -22,15 +22,15 @@
 
 
 <code>
 <code>
 var curve = new THREE.CubicBezierCurve(
 var curve = new THREE.CubicBezierCurve(
-	new THREE.Vector2( -10, 0, 0 ),
-	new THREE.Vector2( -5, 15, 0 ),
-	new THREE.Vector2( 20, 15, 0 ),
-	new THREE.Vector2( 10, 0, 0 )
+	new THREE.Vector2( -10, 0 ),
+	new THREE.Vector2( -5, 15 ),
+	new THREE.Vector2( 20, 15 ),
+	new THREE.Vector2( 10, 0 )
 );
 );
 
 
-var path = new THREE.Path( curve.getPoints( 50 ) );
+var points = curve.getPoints( 50 );
+var geometry = new THREE.BufferGeometry().setFromPoints( points );
 
 
-var geometry = path.createPointsGeometry( 50 );
 var material = new THREE.LineBasicMaterial( { color : 0xff0000 } );
 var material = new THREE.LineBasicMaterial( { color : 0xff0000 } );
 
 
 // Create the final object to add to the scene
 // Create the final object to add to the scene
@@ -51,6 +51,13 @@ var curveObject = new THREE.Line( geometry, material );
 		<h2>Properties</h2>
 		<h2>Properties</h2>
 		<div>See the base [page:Curve] class for common properties.</div>
 		<div>See the base [page:Curve] class for common properties.</div>
 
 
+		<h3>[property:Boolean isCubicBezierCurve]</h3>
+		<div>
+			Used to check whether this or derived classes are CubicBezierCurves. Default is *true*.<br /><br />
+
+			You should not change this, as it used internally for optimisation.
+		</div>
+
 		<h3>[property:Vector2 v0]</h3>
 		<h3>[property:Vector2 v0]</h3>
 		<div>The starting point.</div>
 		<div>The starting point.</div>
 
 

+ 9 - 2
docs/api/extras/curves/CubicBezierCurve3.html

@@ -28,8 +28,8 @@ var curve = new THREE.CubicBezierCurve3(
 	new THREE.Vector3( 10, 0, 0 )
 	new THREE.Vector3( 10, 0, 0 )
 );
 );
 
 
-var geometry = new THREE.Geometry();
-geometry.vertices = curve.getPoints( 50 );
+var points = curve.getPoints( 50 );
+var geometry = new THREE.BufferGeometry().setFromPoints( points );
 
 
 var material = new THREE.LineBasicMaterial( { color : 0xff0000 } );
 var material = new THREE.LineBasicMaterial( { color : 0xff0000 } );
 
 
@@ -52,6 +52,13 @@ var curveObject = new THREE.Line( geometry, material );
 		<h2>Properties</h2>
 		<h2>Properties</h2>
 		<div>See the base [page:Curve] class for common properties.</div>
 		<div>See the base [page:Curve] class for common properties.</div>
 
 
+		<h3>[property:Boolean isCubicBezierCurve3]</h3>
+		<div>
+			Used to check whether this or derived classes are CubicBezierCurve3s. Default is *true*.<br /><br />
+
+			You should not change this, as it used internally for optimisation.
+		</div>
+
 		<h3>[property:Vector2 v0]</h3>
 		<h3>[property:Vector2 v0]</h3>
 		<div>The starting point.</div>
 		<div>The starting point.</div>
 
 

+ 17 - 9
docs/api/extras/curves/EllipseCurve.html

@@ -28,8 +28,9 @@ var curve = new THREE.EllipseCurve(
 	0                 // aRotation
 	0                 // aRotation
 );
 );
 
 
-var path = new THREE.Path( curve.getPoints( 50 ) );
-var geometry = path.createPointsGeometry( 50 );
+var points = curve.getPoints( 50 );
+var geometry = new THREE.BufferGeometry().setFromPoints( points );
+
 var material = new THREE.LineBasicMaterial( { color : 0xff0000 } );
 var material = new THREE.LineBasicMaterial( { color : 0xff0000 } );
 
 
 // Create the final object to add to the scene
 // Create the final object to add to the scene
@@ -41,13 +42,13 @@ var ellipse = new THREE.Line( geometry, material );
 
 
 		<h3>[name]( [page:Float aX], [page:Float aY], [page:Float xRadius], [page:Float yRadius], [page:Radians aStartAngle], [page:Radians aEndAngle], [page:Boolean aClockwise], [page:Radians aRotation] )</h3>
 		<h3>[name]( [page:Float aX], [page:Float aY], [page:Float xRadius], [page:Float yRadius], [page:Radians aStartAngle], [page:Radians aEndAngle], [page:Boolean aClockwise], [page:Radians aRotation] )</h3>
 		<div>
 		<div>
-			[page:Float aX] – The X center of the ellipse.<br/>
-			[page:Float aY] – The Y center of the ellipse.<br/>
-			[page:Float xRadius] – The radius of the ellipse in the x direction.<br/>
-			[page:Float yRadius] – The radius of the ellipse in the y direction.<br/>
-			[page:Radians aStartAngle] – The start angle of the curve in radians starting from the middle right side.<br/>
-			[page:Radians aEndAngle] – The end angle of the curve in radians starting from the middle right side.<br/>
-			[page:Boolean aClockwise] – Whether the ellipse is drawn clockwise.<br/>
+			[page:Float aX] – The X center of the ellipse. Default is *0*.<br/>
+			[page:Float aY] – The Y center of the ellipse. Default is *0*.<br/>
+			[page:Float xRadius] – The radius of the ellipse in the x direction. Default is *1*.<br/>
+			[page:Float yRadius] – The radius of the ellipse in the y direction. Default is *1*.<br/>
+			[page:Radians aStartAngle] – The start angle of the curve in radians starting from the middle right side.  Default is *0*.<br/>
+			[page:Radians aEndAngle] – The end angle of the curve in radians starting from the middle right side. Default is *2 x Math.PI*.<br/>
+			[page:Boolean aClockwise] – Whether the ellipse is drawn clockwise. Default is *false*.<br/>
 			[page:Radians aRotation]  – The rotation angle of the ellipse in radians, counterclockwise from the positive X axis (optional). Default is *0*.<br/><br/>
 			[page:Radians aRotation]  – The rotation angle of the ellipse in radians, counterclockwise from the positive X axis (optional). Default is *0*.<br/><br/>
 
 
 			<em>Note:</em> When going clockwise it's best to set the start angle to (Math.PI * 2) and then work towards lower numbers.
 			<em>Note:</em> When going clockwise it's best to set the start angle to (Math.PI * 2) and then work towards lower numbers.
@@ -56,6 +57,13 @@ var ellipse = new THREE.Line( geometry, material );
 		<h2>Properties</h2>
 		<h2>Properties</h2>
 		<div>See the base [page:Curve] class for common properties.</div>
 		<div>See the base [page:Curve] class for common properties.</div>
 
 
+		<h3>[property:Boolean isEllipseCurve]</h3>
+		<div>
+			Used to check whether this or derived classes are EllipseCurves. Default is *true*.<br /><br />
+
+			You should not change this, as it used internally for optimisation.
+		</div>
+
 		<h3>[property:Float aX]</h3>
 		<h3>[property:Float aX]</h3>
 		<div>The X center of the ellipse.</div>
 		<div>The X center of the ellipse.</div>
 
 

+ 7 - 0
docs/api/extras/curves/LineCurve3.html

@@ -27,6 +27,13 @@
 		<h2>Properties</h2>
 		<h2>Properties</h2>
 		<div>See the base [page:Curve] class for common properties.</div>
 		<div>See the base [page:Curve] class for common properties.</div>
 
 
+		<h3>[property:Boolean isLineCurve3]</h3>
+		<div>
+			Used to check whether this or derived classes are LineCurve3s. Default is *true*.<br /><br />
+
+			You should not change this, as it used internally for optimisation.
+		</div>
+
 		<h3>[property:Vector3 v1]</h3>
 		<h3>[property:Vector3 v1]</h3>
 		<div>The start point.</div>
 		<div>The start point.</div>
 
 

+ 9 - 2
docs/api/extras/curves/QuadraticBezierCurve.html

@@ -27,9 +27,9 @@ var curve = new THREE.QuadraticBezierCurve(
 	new THREE.Vector2( 10, 0 )
 	new THREE.Vector2( 10, 0 )
 );
 );
 
 
-var path = new THREE.Path( curve.getPoints( 50 ) );
+var points = curve.getPoints( 50 );
+var geometry = new THREE.BufferGeometry().setFromPoints( points );
 
 
-var geometry = path.createPointsGeometry( 50 );
 var material = new THREE.LineBasicMaterial( { color : 0xff0000 } );
 var material = new THREE.LineBasicMaterial( { color : 0xff0000 } );
 
 
 //Create the final object to add to the scene
 //Create the final object to add to the scene
@@ -50,6 +50,13 @@ var curveObject = new THREE.Line( geometry, material );
 		<h2>Properties</h2>
 		<h2>Properties</h2>
 		<div>See the base [page:Curve] class for common properties.</div>
 		<div>See the base [page:Curve] class for common properties.</div>
 
 
+		<h3>[property:Boolean isQuadraticBezierCurve]</h3>
+		<div>
+			Used to check whether this or derived classes are QuadraticBezierCurves. Default is *true*.<br /><br />
+
+			You should not change this, as it used internally for optimisation.
+		</div>
+
 
 
 		<h3>[property:Vector2 v0]</h3>
 		<h3>[property:Vector2 v0]</h3>
 		<div>The startpoint.</div>
 		<div>The startpoint.</div>

+ 8 - 2
docs/api/extras/curves/QuadraticBezierCurve3.html

@@ -27,8 +27,8 @@ var curve = new THREE.QuadraticBezierCurve3(
 	new THREE.Vector3( 10, 0, 0 )
 	new THREE.Vector3( 10, 0, 0 )
 );
 );
 
 
-var geometry = new THREE.Geometry();
-geometry.vertices = curve.getPoints( 50 );
+var points = curve.getPoints( 50 );
+var geometry = new THREE.BufferGeometry().setFromPoints( points );
 
 
 var material = new THREE.LineBasicMaterial( { color : 0xff0000 } );
 var material = new THREE.LineBasicMaterial( { color : 0xff0000 } );
 
 
@@ -51,6 +51,12 @@ var curveObject = new THREE.Line( geometry, material );
 		<h2>Properties</h2>
 		<h2>Properties</h2>
 		<div>See the base [page:Curve] class for common properties.</div>
 		<div>See the base [page:Curve] class for common properties.</div>
 
 
+		<h3>[property:Boolean isQuadraticBezierCurve3]</h3>
+		<div>
+			Used to check whether this or derived classes are QuadraticBezierCurve3s. Default is *true*.<br /><br />
+
+			You should not change this, as it used internally for optimisation.
+		</div>
 
 
 		<h3>[property:Vector3 v0]</h3>
 		<h3>[property:Vector3 v0]</h3>
 		<div>The startpoint.</div>
 		<div>The startpoint.</div>

+ 10 - 3
docs/api/extras/curves/SplineCurve.html

@@ -14,7 +14,7 @@
 
 
 		<div class="desc">
 		<div class="desc">
 		Create a smooth 2d spline curve from a series of points. Internally this uses
 		Create a smooth 2d spline curve from a series of points. Internally this uses
-		[page:CurveUtils.interpolate] to create the curve.
+		[page:Interpolations.CatmullRom] to create the curve.
 		</div>
 		</div>
 
 
 		<h2>Example</h2>
 		<h2>Example</h2>
@@ -29,9 +29,9 @@ var curve = new THREE.SplineCurve( [
 	new THREE.Vector2( 10, 0 )
 	new THREE.Vector2( 10, 0 )
 ] );
 ] );
 
 
-var path = new THREE.Path( curve.getPoints( 50 ) );
+var points = curve.getPoints( 50 );
+var geometry = new THREE.BufferGeometry().setFromPoints( points );
 
 
-var geometry = path.createPointsGeometry( 50 );
 var material = new THREE.LineBasicMaterial( { color : 0xff0000 } );
 var material = new THREE.LineBasicMaterial( { color : 0xff0000 } );
 
 
 // Create the final object to add to the scene
 // Create the final object to add to the scene
@@ -48,6 +48,13 @@ var splineObject = new THREE.Line( geometry, material );
 		<h2>Properties</h2>
 		<h2>Properties</h2>
 		<div>See the base [page:Curve] class for common properties.</div>
 		<div>See the base [page:Curve] class for common properties.</div>
 
 
+		<h3>[property:Boolean isSplineCurve]</h3>
+		<div>
+			Used to check whether this or derived classes are SplineCurves. Default is *true*.<br /><br />
+
+			You should not change this, as it used internally for optimisation.
+		</div>
+
 		<h3>[property:Array points]</h3>
 		<h3>[property:Array points]</h3>
 		<div>The array of [page:Vector3] points that define the curve.</div>
 		<div>The array of [page:Vector3] points that define the curve.</div>
 
 

+ 0 - 179
docs/api/extras/objects/MorphBlendMesh.html

@@ -1,179 +0,0 @@
-<!DOCTYPE html>
-<html lang="en">
-	<head>
-		<meta charset="utf-8" />
-		<base href="../../../" />
-		<script src="list.js"></script>
-		<script src="page.js"></script>
-		<link type="text/css" rel="stylesheet" href="page.css" />
-	</head>
-	<body>
-		[page:Mesh] &rarr;
-
-		<h1>[name]</h1>
-
-		<div class="desc">A mesh that can blend together multiple animated morph targets.</div>
-
-		<h2>Example</h2>
-		[example:webgl_morphtargets_md2_control morphtargets / md2 / controll]
-
-
-		<h2>Constructor</h2>
-
-
-		<h3>[name]([page:Geometry geometry], [page:Material material])</h3>
-		<div>
-		geometry — An instance of [page:Geometry].<br />
-		material — An instance of [page:Material] (optional).
-		</div>
-
-		<h2>Properties</h2>
-
-
-		<h3>[property:object animationsMap]</h3>
-		<div>
-		An object of named animations as added by [page:MorphBlendMesh.createAnimation].
-		</div>
-
-		<h3>[property:array animationsList]</h3>
-		<div>
-		The list of animations as added by [page:MorphBlendMesh.createAnimation].
-		</div>
-
-		<h2>Methods</h2>
-
-
-
-		<h3>[method:null setAnimationWeight]([page:String name], [page:Float weight])</h3>
-		<div>
-		name -- The name of the animation<br />
-		weight -- Weight of the animation, typically 0-1
-		</div>
-		<div>
-		Set the weight of how much this animation will apply to the overall morph. 0 is off, 1 is full weight.
-		</div>
-
-		<h3>[method:null setAnimationFPS]([page:String name], [page:Float fps])</h3>
-		<div>
-		name -- The name of the animation <br />
-		fps -- The number of frames (morphTargets) per second
-		</div>
-		<div>
-		A frame is typically 1 morph target.
-		</div>
-
-		<h3>[method:null createAnimation]([page:String name], [page:Integer start], [page:Integer end], [page:Float fps])</h3>
-		<div>
-		name -- The name of the animation <br />
-		start -- The starting frame (morph)<br />
-		end -- The ending frame (morph)<br />
-		fps -- How many frames (morphs) to play per second
-		</div>
-		<div>
-		Creates an animation object that gets added to both the [page:MorphBlendMesh.animationsMap animationsMap] and
-		[page:MorphBlendMesh.animationsList animationsList].<br/><br/>
-
-		Animation object:<br/><br/>
-		startFrame -- Starting frame<br/>
-		endFrame -- Ending frame<br/>
-		length -- The number of frames<br/>
-		fps -- The frames per second<br/>
-		duration -- The length of the animation in seconds<br/>
-		lastFrame -- The previous frame that was played<br/>
-		currentFrame -- The current frame<br/>
-		active -- Whether or not the animation is being played<br/>
-		time -- The time in seconds of the animation<br/>
-		direction -- Which way to play the animation<br/>
-		weight -- The weight of the animation<br/>
-		directionBackwards -- Is playing backwards<br/>
-		mirroredLoop -- Loop back and forth
-		</div>
-
-		<h3>[method:null playAnimation]([page:String name])</h3>
-		<div>
-		name -- The name of the animation
-		</div>
-		<div>
-		Sets the animation to active and animation time to 0
-		</div>
-
-		<h3>[method:null update]([page:Float delta])</h3>
-		<div>
-		delta -- Time in seconds
-		</div>
-		<div>
-		Updates and plays the animation
-		</div>
-
-		<h3>[method:null autoCreateAnimations]([page:Float fps])</h3>
-		<div>
-		fps -- Frames per second
-		</div>
-		<div>
-		Goes through the geometry's morphTargets and generates animations based on the morphTargets' names. Names
-		are of the form "walk_01", "walk_02", "walk_03", etc or "run001", "run002", "run003".
-		</div>
-
-		<h3>[method:null setAnimationDuration]([page:String name], [page:Float duration])</h3>
-		<div>
-		name -- The name of the animation <br />
-		duration -- How long in seconds to play the animation
-		</div>
-		<div>
-		Updates the animation object with proper values to update the duration.
-		</div>
-
-		<h3>[method:null setAnimationDirectionForward]([page:String name])</h3>
-		<div>
-		name -- The name of the animation
-		</div>
-		<div>
-		Sets the animation to play forwards
-		</div>
-
-		<h3>[method:null setAnimationDirectionBackward]([page:String name])</h3>
-		<div>
-		name -- The name of the animation
-		</div>
-		<div>
-		Sets the animation to play backwards
-		</div>
-
-		<h3>[method:Float getAnimationDuration]([page:String name])</h3>
-		<div>
-		name -- The name of the animation
-		</div>
-		<div>
-		Returns the duration in seconds of the animation. Returns -1 if it can't be found.
-		</div>
-
-		<h3>[method:Float getAnimationTime]([page:String name])</h3>
-		<div>
-		name -- The name of the animation
-		</div>
-		<div>
-		Returns the current time position of the animation.
-		</div>
-
-		<h3>[method:null setAnimationTime]([page:String name], [page:Float time])</h3>
-		<div>
-		name -- The name of the animation <br />
-		time -- The time in seconds
-		</div>
-		<div>
-		Sets the current time position of the animation
-		</div>
-
-		<h3>[method:null stopAnimation]([page:String name])</h3>
-		<div>
-		name -- The name of the animation
-		</div>
-		<div>
-		Stops the playback of the animation
-		</div>
-
-		<h2>Source</h2>
-
-		[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
-	</body>
-</html>

+ 4 - 4
docs/api/geometries/BoxBufferGeometry.html

@@ -1,7 +1,7 @@
 <!DOCTYPE html>
 <!DOCTYPE html>
 <html lang="en">
 <html lang="en">
 	<head>
 	<head>
-		<meta charset="utf-8" />
+		<meta charset="utf-8" />
 		<base href="../../" />
 		<base href="../../" />
 		<script src="list.js"></script>
 		<script src="list.js"></script>
 		<script src="page.js"></script>
 		<script src="page.js"></script>
@@ -44,9 +44,9 @@
 
 
 		<h3>[name]([page:Float width], [page:Float height], [page:Float depth], [page:Integer widthSegments], [page:Integer heightSegments], [page:Integer depthSegments])</h3>
 		<h3>[name]([page:Float width], [page:Float height], [page:Float depth], [page:Integer widthSegments], [page:Integer heightSegments], [page:Integer depthSegments])</h3>
 		<div>
 		<div>
-		width — Width of the sides on the X axis.<br />
-		height — Height of the sides on the Y axis.<br />
-		depth — Depth of the sides on the Z axis.<br />
+		width — Width of the sides on the X axis. Default is 1.<br />
+		height — Height of the sides on the Y axis. Default is 1.<br />
+		depth — Depth of the sides on the Z axis. Default is 1.<br />
 		widthSegments — Optional. Number of segmented faces along the width of the sides. Default is 1.<br />
 		widthSegments — Optional. Number of segmented faces along the width of the sides. Default is 1.<br />
 		heightSegments — Optional. Number of segmented faces along the height of the sides. Default is 1.<br />
 		heightSegments — Optional. Number of segmented faces along the height of the sides. Default is 1.<br />
 		depthSegments — Optional. Number of segmented faces along the depth of the sides. Default is 1.
 		depthSegments — Optional. Number of segmented faces along the depth of the sides. Default is 1.

+ 4 - 4
docs/api/geometries/BoxGeometry.html

@@ -1,7 +1,7 @@
 <!DOCTYPE html>
 <!DOCTYPE html>
 <html lang="en">
 <html lang="en">
 	<head>
 	<head>
-		<meta charset="utf-8" />
+		<meta charset="utf-8" />
 		<base href="../../" />
 		<base href="../../" />
 		<script src="list.js"></script>
 		<script src="list.js"></script>
 		<script src="page.js"></script>
 		<script src="page.js"></script>
@@ -44,9 +44,9 @@
 
 
 		<h3>[name]([page:Float width], [page:Float height], [page:Float depth], [page:Integer widthSegments], [page:Integer heightSegments], [page:Integer depthSegments])</h3>
 		<h3>[name]([page:Float width], [page:Float height], [page:Float depth], [page:Integer widthSegments], [page:Integer heightSegments], [page:Integer depthSegments])</h3>
 		<div>
 		<div>
-		width — Width of the sides on the X axis.<br />
-		height — Height of the sides on the Y axis.<br />
-		depth — Depth of the sides on the Z axis.<br />
+		width — Width of the sides on the X axis. Default is 1.<br />
+		height — Height of the sides on the Y axis. Default is 1.<br />
+		depth — Depth of the sides on the Z axis. Default is 1.<br />
 		widthSegments — Optional. Number of segmented faces along the width of the sides. Default is 1.<br />
 		widthSegments — Optional. Number of segmented faces along the width of the sides. Default is 1.<br />
 		heightSegments — Optional. Number of segmented faces along the height of the sides. Default is 1.<br />
 		heightSegments — Optional. Number of segmented faces along the height of the sides. Default is 1.<br />
 		depthSegments — Optional. Number of segmented faces along the depth of the sides. Default is 1.
 		depthSegments — Optional. Number of segmented faces along the depth of the sides. Default is 1.

+ 2 - 2
docs/api/geometries/CircleGeometry.html

@@ -1,7 +1,7 @@
 <!DOCTYPE html>
 <!DOCTYPE html>
 <html lang="en">
 <html lang="en">
 	<head>
 	<head>
-		<meta charset="utf-8" />
+		<meta charset="utf-8" />
 		<base href="../../" />
 		<base href="../../" />
 		<script src="list.js"></script>
 		<script src="list.js"></script>
 		<script src="page.js"></script>
 		<script src="page.js"></script>
@@ -46,7 +46,7 @@
 
 
 		<h3>[name]([page:Float radius], [page:Integer segments], [page:Float thetaStart], [page:Float thetaLength])</h3>
 		<h3>[name]([page:Float radius], [page:Integer segments], [page:Float thetaStart], [page:Float thetaLength])</h3>
 		<div>
 		<div>
-		radius — Radius of the circle, default = 50.<br />
+		radius — Radius of the circle, default = 1.<br />
 		segments — Number of segments (triangles), minimum = 3, default = 8.<br />
 		segments — Number of segments (triangles), minimum = 3, default = 8.<br />
 		thetaStart — Start angle for first segment, default = 0 (three o'clock position).<br />
 		thetaStart — Start angle for first segment, default = 0 (three o'clock position).<br />
 		thetaLength — The central angle, often called theta, of the circular sector. The default is 2*Pi, which makes for a complete circle.
 		thetaLength — The central angle, often called theta, of the circular sector. The default is 2*Pi, which makes for a complete circle.

+ 4 - 4
docs/api/geometries/CylinderGeometry.html

@@ -1,7 +1,7 @@
 <!DOCTYPE html>
 <!DOCTYPE html>
 <html lang="en">
 <html lang="en">
 	<head>
 	<head>
-		<meta charset="utf-8" />
+		<meta charset="utf-8" />
 		<base href="../../" />
 		<base href="../../" />
 		<script src="list.js"></script>
 		<script src="list.js"></script>
 		<script src="page.js"></script>
 		<script src="page.js"></script>
@@ -44,9 +44,9 @@
 
 
 		<h3>[name]([page:Float radiusTop], [page:Float radiusBottom], [page:Float height], [page:Integer radiusSegments], [page:Integer heightSegments], [page:Boolean openEnded], [page:Float thetaStart], [page:Float thetaLength])</h3>
 		<h3>[name]([page:Float radiusTop], [page:Float radiusBottom], [page:Float height], [page:Integer radiusSegments], [page:Integer heightSegments], [page:Boolean openEnded], [page:Float thetaStart], [page:Float thetaLength])</h3>
 		<div>
 		<div>
-		radiusTop — Radius of the cylinder at the top. Default is 20.<br />
-		radiusBottom — Radius of the cylinder at the bottom. Default is 20.<br />
-		height — Height of the cylinder. Default is 100.<br />
+		radiusTop — Radius of the cylinder at the top. Default is 1.<br />
+		radiusBottom — Radius of the cylinder at the bottom. Default is 1.<br />
+		height — Height of the cylinder. Default is 1.<br />
 		radiusSegments — Number of segmented faces around the circumference of the cylinder. Default is 8<br />
 		radiusSegments — Number of segmented faces around the circumference of the cylinder. Default is 8<br />
 		heightSegments — Number of rows of faces along the height of the cylinder. Default is 1.<br />
 		heightSegments — Number of rows of faces along the height of the cylinder. Default is 1.<br />
 		openEnded — A Boolean indicating whether the ends of the cylinder are open or capped. Default is false, meaning capped.<br />
 		openEnded — A Boolean indicating whether the ends of the cylinder are open or capped. Default is false, meaning capped.<br />

+ 3 - 3
docs/api/geometries/PlaneBufferGeometry.html

@@ -1,7 +1,7 @@
 <!DOCTYPE html>
 <!DOCTYPE html>
 <html lang="en">
 <html lang="en">
 	<head>
 	<head>
-		<meta charset="utf-8" />
+		<meta charset="utf-8" />
 		<base href="../../" />
 		<base href="../../" />
 		<script src="list.js"></script>
 		<script src="list.js"></script>
 		<script src="page.js"></script>
 		<script src="page.js"></script>
@@ -44,8 +44,8 @@
 
 
 		<h3>[name]([page:Float width], [page:Float height], [page:Integer widthSegments], [page:Integer heightSegments])</h3>
 		<h3>[name]([page:Float width], [page:Float height], [page:Integer widthSegments], [page:Integer heightSegments])</h3>
 		<div>
 		<div>
-		width — Width along the X axis.<br />
-		height — Height along the Y axis.<br />
+		width — Width along the X axis. Default is 1.<br />
+		height — Height along the Y axis. Default is 1.<br />
 		widthSegments — Optional. Default is 1. <br />
 		widthSegments — Optional. Default is 1. <br />
 		heightSegments — Optional. Default is 1.
 		heightSegments — Optional. Default is 1.
 		</div>
 		</div>

+ 18 - 18
docs/api/geometries/PlaneGeometry.html

@@ -15,22 +15,22 @@
 		<div class="desc">A class for generating plane geometries</div>
 		<div class="desc">A class for generating plane geometries</div>
 
 
 		<iframe id="scene" src="scenes/geometry-browser.html#PlaneGeometry"></iframe>
 		<iframe id="scene" src="scenes/geometry-browser.html#PlaneGeometry"></iframe>
-
-		<script>
-
-		// iOS iframe auto-resize workaround
-
-		if ( /(iPad|iPhone|iPod)/g.test( navigator.userAgent ) ) {
-
-			var scene = document.getElementById( 'scene' );
-
-			scene.style.width = getComputedStyle( scene ).width;
-			scene.style.height = getComputedStyle( scene ).height;
-			scene.setAttribute( 'scrolling', 'no' );
-
-		}
-
-		</script>
+
+		<script>
+
+		// iOS iframe auto-resize workaround
+
+		if ( /(iPad|iPhone|iPod)/g.test( navigator.userAgent ) ) {
+
+			var scene = document.getElementById( 'scene' );
+
+			scene.style.width = getComputedStyle( scene ).width;
+			scene.style.height = getComputedStyle( scene ).height;
+			scene.setAttribute( 'scrolling', 'no' );
+
+		}
+
+		</script>
 
 
 		<h2>Example</h2>
 		<h2>Example</h2>
 
 
@@ -44,8 +44,8 @@
 
 
 		<h3>[name]([page:Float width], [page:Float height], [page:Integer widthSegments], [page:Integer heightSegments])</h3>
 		<h3>[name]([page:Float width], [page:Float height], [page:Integer widthSegments], [page:Integer heightSegments])</h3>
 		<div>
 		<div>
-		width — Width along the X axis.<br />
-		height — Height along the Y axis.<br />
+		width — Width along the X axis. Default is 1.<br />
+		height — Height along the Y axis. Default is 1.<br />
 		widthSegments — Optional. Default is 1. <br />
 		widthSegments — Optional. Default is 1. <br />
 		heightSegments — Optional. Default is 1.
 		heightSegments — Optional. Default is 1.
 		</div>
 		</div>

+ 2 - 2
docs/api/geometries/PolyhedronBufferGeometry.html

@@ -41,10 +41,10 @@ var geometry = new THREE.PolyhedronBufferGeometry( verticesOfCube, indicesOfFace
 		<h2>Constructor</h2>
 		<h2>Constructor</h2>
 
 
 
 
-		<h3>[name]([page:Array vertices], [page:Array faces], [page:Float radius], [page:Integer detail])</h3>
+		<h3>[name]([page:Array vertices], [page:Array indices], [page:Float radius], [page:Integer detail])</h3>
 		<div>
 		<div>
 		vertices — [page:Array] of points of the form [1,1,1, -1,-1,-1, ... ] <br />
 		vertices — [page:Array] of points of the form [1,1,1, -1,-1,-1, ... ] <br />
-		faces — [page:Array] of indices that make up the faces of the form [0,1,2, 2,3,0, ... ] <br />
+		indices — [page:Array] of indices that make up the faces of the form [0,1,2, 2,3,0, ... ] <br />
 		radius — [page:Float] - The radius of the final shape <br />
 		radius — [page:Float] - The radius of the final shape <br />
 		detail — [page:Integer] - How many levels to subdivide the geometry. The more detail, the smoother the shape.
 		detail — [page:Integer] - How many levels to subdivide the geometry. The more detail, the smoother the shape.
 		</div>
 		</div>

+ 2 - 2
docs/api/geometries/PolyhedronGeometry.html

@@ -39,10 +39,10 @@ var geometry = new THREE.PolyhedronGeometry( verticesOfCube, indicesOfFaces, 6,
 		<h2>Constructor</h2>
 		<h2>Constructor</h2>
 
 
 
 
-		<h3>[name]([page:Array vertices], [page:Array faces], [page:Float radius], [page:Integer detail])</h3>
+		<h3>[name]([page:Array vertices], [page:Array indices], [page:Float radius], [page:Integer detail])</h3>
 		<div>
 		<div>
 		vertices — [page:Array] of points of the form [1,1,1, -1,-1,-1, ... ] <br />
 		vertices — [page:Array] of points of the form [1,1,1, -1,-1,-1, ... ] <br />
-		faces — [page:Array] of indices that make up the faces of the form [0,1,2, 2,3,0, ... ] <br />
+		indices — [page:Array] of indices that make up the faces of the form [0,1,2, 2,3,0, ... ] <br />
 		radius — [page:Float] - The radius of the final shape <br />
 		radius — [page:Float] - The radius of the final shape <br />
 		detail — [page:Integer] - How many levels to subdivide the geometry. The more detail, the smoother the shape.
 		detail — [page:Integer] - How many levels to subdivide the geometry. The more detail, the smoother the shape.
 		</div>
 		</div>

+ 1 - 1
docs/api/geometries/RingBufferGeometry.html

@@ -44,7 +44,7 @@
 
 
 		<h3>[name]([page:Float innerRadius], [page:Float outerRadius], [page:Integer thetaSegments], [page:Integer phiSegments], [page:Float thetaStart], [page:Float thetaLength])</h3>
 		<h3>[name]([page:Float innerRadius], [page:Float outerRadius], [page:Integer thetaSegments], [page:Integer phiSegments], [page:Float thetaStart], [page:Float thetaLength])</h3>
 		<div>
 		<div>
-		innerRadius — Default is 0, but it doesn't work right when innerRadius is set to 0.<br />
+		innerRadius — Default is 20. <br />
 		outerRadius — Default is 50. <br />
 		outerRadius — Default is 50. <br />
 		thetaSegments — Number of segments.  A higher number means the ring will be more round.  Minimum is 3.  Default is 8. <br />
 		thetaSegments — Number of segments.  A higher number means the ring will be more round.  Minimum is 3.  Default is 8. <br />
 		phiSegments — Minimum is 1.  Default is 8.<br />
 		phiSegments — Minimum is 1.  Default is 8.<br />

+ 3 - 3
docs/api/geometries/RingGeometry.html

@@ -1,7 +1,7 @@
 <!DOCTYPE html>
 <!DOCTYPE html>
 <html lang="en">
 <html lang="en">
 	<head>
 	<head>
-		<meta charset="utf-8" />
+		<meta charset="utf-8" />
 		<base href="../../" />
 		<base href="../../" />
 		<script src="list.js"></script>
 		<script src="list.js"></script>
 		<script src="page.js"></script>
 		<script src="page.js"></script>
@@ -44,8 +44,8 @@
 
 
 		<h3>[name]([page:Float innerRadius], [page:Float outerRadius], [page:Integer thetaSegments], [page:Integer phiSegments], [page:Float thetaStart], [page:Float thetaLength])</h3>
 		<h3>[name]([page:Float innerRadius], [page:Float outerRadius], [page:Integer thetaSegments], [page:Integer phiSegments], [page:Float thetaStart], [page:Float thetaLength])</h3>
 		<div>
 		<div>
-		innerRadius — Default is 0, but it doesn't work right when innerRadius is set to 0.<br />
-		outerRadius — Default is 50. <br />
+		innerRadius — Default is 0.5. <br />
+		outerRadius — Default is 1. <br />
 		thetaSegments — Number of segments.  A higher number means the ring will be more round.  Minimum is 3.  Default is 8. <br />
 		thetaSegments — Number of segments.  A higher number means the ring will be more round.  Minimum is 3.  Default is 8. <br />
 		phiSegments — Minimum is 1.  Default is 8.<br />
 		phiSegments — Minimum is 1.  Default is 8.<br />
 		thetaStart — Starting angle. Default is 0. <br />
 		thetaStart — Starting angle. Default is 0. <br />

+ 2 - 2
docs/api/geometries/SphereGeometry.html

@@ -1,7 +1,7 @@
 <!DOCTYPE html>
 <!DOCTYPE html>
 <html lang="en">
 <html lang="en">
 	<head>
 	<head>
-		<meta charset="utf-8" />
+		<meta charset="utf-8" />
 		<base href="../../" />
 		<base href="../../" />
 		<script src="list.js"></script>
 		<script src="list.js"></script>
 		<script src="page.js"></script>
 		<script src="page.js"></script>
@@ -45,7 +45,7 @@
 		<h3>[name]([page:Float radius], [page:Integer widthSegments], [page:Integer heightSegments], [page:Float phiStart], [page:Float phiLength], [page:Float thetaStart], [page:Float thetaLength])</h3>
 		<h3>[name]([page:Float radius], [page:Integer widthSegments], [page:Integer heightSegments], [page:Float phiStart], [page:Float phiLength], [page:Float thetaStart], [page:Float thetaLength])</h3>
 
 
 		<div>
 		<div>
-		radius — sphere radius. Default is 50.<br />
+		radius — sphere radius. Default is 1.<br />
 		widthSegments — number of horizontal segments. Minimum value is 3, and the default is 8.<br />
 		widthSegments — number of horizontal segments. Minimum value is 3, and the default is 8.<br />
 		heightSegments — number of vertical segments. Minimum value is 2, and the default is 6.<br />
 		heightSegments — number of vertical segments. Minimum value is 2, and the default is 6.<br />
 		phiStart — specify horizontal starting angle. Default is 0.<br />
 		phiStart — specify horizontal starting angle. Default is 0.<br />

+ 160 - 0
docs/api/geometries/TextBufferGeometry.html

@@ -0,0 +1,160 @@
+<!DOCTYPE html>
+<html lang="en">
+	<head>
+		<meta charset="utf-8" />
+		<base href="../../" />
+		<script src="list.js"></script>
+		<script src="page.js"></script>
+		<link type="text/css" rel="stylesheet" href="page.css" />
+	</head>
+	<body>
+		[page:ExtrudeBufferGeometry] &rarr;
+
+		<h1>[name]</h1>
+
+		<div 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:ExtrudeBufferGeometry].
+			See the [page:Font], [page:FontLoader] and [page:Creating_Text] pages for additional details.
+		</div>
+
+		<iframe id="scene" src="scenes/geometry-browser.html#TextBufferGeometry"></iframe>
+
+		<script>
+
+		// iOS iframe auto-resize workaround
+
+		if ( /(iPad|iPhone|iPod)/g.test( navigator.userAgent ) ) {
+
+			var scene = document.getElementById( 'scene' );
+
+			scene.style.width = getComputedStyle( scene ).width;
+			scene.style.height = getComputedStyle( scene ).height;
+			scene.setAttribute( 'scrolling', 'no' );
+
+		}
+
+		</script>
+
+		<h2>Examples</h2>
+
+		<div>
+		[example:webgl_geometry_text geometry / text ]
+		</div>
+
+		<code>
+		var loader = new THREE.FontLoader();
+
+		loader.load( 'fonts/helvetiker_regular.typeface.json', function ( font ) {
+
+			var geometry = new THREE.TextBufferGeometry( 'Hello three.js!', {
+				font: font,
+				size: 80,
+				height: 5,
+				curveSegments: 12,
+				bevelEnabled: true,
+				bevelThickness: 10,
+				bevelSize: 8,
+				bevelSegments: 5
+			} );
+		} );
+		</code>
+
+		<h2>Constructor</h2>
+
+		<h3>[name]([page:String text], [page:Object parameters])</h3>
+		<div>
+		text — The text that needs to be shown. <br />
+		parameters — Object that can contains the following parameters.
+		<ul>
+			<li>font — an instance of THREE.Font.</li>
+			<li>size — Float. Size of the text. Default is 100.</li>
+			<li>height — Float. Thickness to extrude text.  Default is 50.</li>
+			<li>curveSegments — Integer. Number of points on the curves. Default is 12.</li>
+			<li>bevelEnabled — Boolean. Turn on bevel. Default is False.</li>
+			<li>bevelThickness — Float. How deep into text bevel goes. Default is 10.</li>
+			<li>bevelSize — Float. How far from text outline is bevel. Default is 8.</li>
+			<li>bevelSegments — Integer. Number of bevel segments. Default is 3.</li>
+		</ul>
+		</div>
+
+		<h2>Available Fonts</h2>
+
+		<div>
+		TextGeometry uses <a href='http://gero3.github.io/facetype.js/' target="_top">typeface.json</a> generated fonts.
+		Some existing fonts can be found located in <b>/examples/fonts</b> and must be included in the page.
+		</div>
+		<table>
+			<tr>
+				<th>Font</th>
+				<th>Weight</th>
+				<th>Style</th>
+				<th>File Path</th>
+			</tr>
+			<tr>
+				<td>helvetiker</td>
+				<td>normal</td>
+				<td>normal</td>
+				<td>/examples/fonts/helvetiker_regular.typeface.json</td>
+			</tr>
+			<tr>
+				<td>helvetiker</td>
+				<td>bold</td>
+				<td>normal</td>
+				<td>/examples/fonts/helvetiker_bold.typeface.json</td>
+			</tr>
+			<tr>
+				<td>optimer</td>
+				<td>normal</td>
+				<td>normal</td>
+				<td>/examples/fonts/optimer_regular.typeface.json</td>
+			</tr>
+			<tr>
+				<td>optimer</td>
+				<td>bold</td>
+				<td>normal</td>
+				<td>/examples/fonts/optimer_bold.typeface.json</td>
+			</tr>
+			<tr>
+				<td>gentilis</td>
+				<td>normal</td>
+				<td>normal</td>
+				<td>/examples/fonts/gentilis_regular.typeface.json</td>
+			</tr>
+			<tr>
+				<td>gentilis</td>
+				<td>bold</td>
+				<td>normal</td>
+				<td>/examples/fonts/gentilis_bold.typeface.json</td>
+			</tr>
+			<tr>
+				<td>droid sans</td>
+				<td>normal</td>
+				<td>normal</td>
+				<td>/examples/fonts/droid/droid_sans_regular.typeface.json</td>
+			</tr>
+			<tr>
+				<td>droid sans</td>
+				<td>bold</td>
+				<td>normal</td>
+				<td>/examples/fonts/droid/droid_sans_bold.typeface.json</td>
+			</tr>
+			<tr>
+				<td>droid serif</td>
+				<td>normal</td>
+				<td>normal</td>
+				<td>/examples/fonts/droid/droid_serif_regular.typeface.json</td>
+			</tr>
+			<tr>
+				<td>droid serif</td>
+				<td>bold</td>
+				<td>normal</td>
+				<td>/examples/fonts/droid/droid_serif_bold.typeface.json</td>
+			</tr>
+		</table>
+
+		<h2>Source</h2>
+
+		[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+	</body>
+</html>

+ 3 - 3
docs/api/geometries/TorusGeometry.html

@@ -1,7 +1,7 @@
 <!DOCTYPE html>
 <!DOCTYPE html>
 <html lang="en">
 <html lang="en">
 	<head>
 	<head>
-		<meta charset="utf-8" />
+		<meta charset="utf-8" />
 		<base href="../../" />
 		<base href="../../" />
 		<script src="list.js"></script>
 		<script src="list.js"></script>
 		<script src="page.js"></script>
 		<script src="page.js"></script>
@@ -44,8 +44,8 @@
 
 
 		<h3>[name]([page:Float radius], [page:Float tube], [page:Integer radialSegments], [page:Integer tubularSegments], [page:Float arc])</h3>
 		<h3>[name]([page:Float radius], [page:Float tube], [page:Integer radialSegments], [page:Integer tubularSegments], [page:Float arc])</h3>
 		<div>
 		<div>
-		radius — Default is 100. <br />
-		tube — Diameter of the tube.  Default is 40. <br />
+		radius — Default is 1. <br />
+		tube — Diameter of the tube.  Default is 0.4. <br />
 		radialSegments — Default is 8 <br />
 		radialSegments — Default is 8 <br />
 		tubularSegments — Default is 6. <br />
 		tubularSegments — Default is 6. <br />
 		arc — Central angle.  Default is Math.PI * 2.
 		arc — Central angle.  Default is Math.PI * 2.

+ 3 - 3
docs/api/geometries/TorusKnotGeometry.html

@@ -1,7 +1,7 @@
 <!DOCTYPE html>
 <!DOCTYPE html>
 <html lang="en">
 <html lang="en">
 	<head>
 	<head>
-		<meta charset="utf-8" />
+		<meta charset="utf-8" />
 		<base href="../../" />
 		<base href="../../" />
 		<script src="list.js"></script>
 		<script src="list.js"></script>
 		<script src="page.js"></script>
 		<script src="page.js"></script>
@@ -45,8 +45,8 @@
 		<h3>[name]([page:Float radius], [page:Float tube], [page:Integer tubularSegments], [page:Integer radialSegments], [page:Integer p], [page:Integer q])</h3>
 		<h3>[name]([page:Float radius], [page:Float tube], [page:Integer tubularSegments], [page:Integer radialSegments], [page:Integer p], [page:Integer q])</h3>
 		<div>
 		<div>
 			<ul>
 			<ul>
-				<li>radius — Default is 100.</li>
-				<li>tube — Diameter of the tube. Default is 40.</li>
+				<li>radius — Default is 1.</li>
+				<li>tube — Diameter of the tube. Default is 0.4.</li>
 				<li>tubularSegments — Default is 64.</li>
 				<li>tubularSegments — Default is 64.</li>
 				<li>radialSegments — Default is 8.</li>
 				<li>radialSegments — Default is 8.</li>
 				<li>p — This value determines, how many times the geometry winds around its axis of rotational symmetry. Default is 2.</li>
 				<li>p — This value determines, how many times the geometry winds around its axis of rotational symmetry. Default is 2.</li>

+ 3 - 3
docs/api/helpers/AxisHelper.html → docs/api/helpers/AxesHelper.html

@@ -1,7 +1,7 @@
 <!DOCTYPE html>
 <!DOCTYPE html>
 <html lang="en">
 <html lang="en">
 	<head>
 	<head>
-		<meta charset="utf-8" />
+		<meta charset="utf-8" />
 		<base href="../../" />
 		<base href="../../" />
 		<script src="list.js"></script>
 		<script src="list.js"></script>
 		<script src="page.js"></script>
 		<script src="page.js"></script>
@@ -26,8 +26,8 @@
 
 
 
 
 		<code>
 		<code>
-var axisHelper = new THREE.AxisHelper( 5 );
-scene.add( axisHelper );
+var axesHelper = new THREE.AxesHelper( 5 );
+scene.add( axesHelper );
     </code>
     </code>
 
 
 		<h2>Constructor</h2>
 		<h2>Constructor</h2>

+ 64 - 0
docs/api/helpers/Box3Helper.html

@@ -0,0 +1,64 @@
+<!DOCTYPE html>
+<html lang="en">
+	<head>
+		<meta charset="utf-8" />
+		<base href="../../" />
+		<script src="list.js"></script>
+		<script src="page.js"></script>
+		<link type="text/css" rel="stylesheet" href="page.css" />
+	</head>
+	<body>
+		[page:LineSegments] &rarr;
+
+		<h1>[name]</h1>
+
+		<div class="desc">
+			Helper object to visualize a [page:Box3].
+		</div>
+
+
+		<h2>Example</h2>
+
+		<code>
+		var box = new THREE.Box3();
+		box.setFromCenterAndSize( new THREE.Vector3( 1, 1, 1 ), new THREE.Vector3( 2, 1, 3 ) );
+
+		var helper = new THREE.Box3Helper( box, 0xffff00 );
+		scene.add( helper );
+		</code>
+
+
+		<h2>Constructor</h2>
+
+
+		<h3>[name]( [page:Box3 box], [page:Color color] )</h3>
+		<div>
+		[page:Box3 box]  -- the Box3 to show.<br />
+		[page:Color color] --  (optional) the box's color. Default is 0xffff00.<br /><br />
+
+		Creates a new wireframe box that represents the passed Box3.
+		</div>
+
+		<h2>Properties</h2>
+		<div>See the base [page:LineSegments] class for common properties.</div>
+
+		<h3>[property:Box3 box]</h3>
+		<div>The Box3 being visualized.</div>
+
+
+		<h2>Methods</h2>
+		<div>See the base [page:LineSegments] class for common methods.</div>
+
+
+		<h3>[method:void updateMatrixWorld]( force )</h3>
+		<div>
+			This overrides the method in the base [page:Object3D] class so that it
+			also updates the wireframe box to the extent of the [page:Box3Helper.box .box]
+			property.
+		</div>
+
+		<h2>Source</h2>
+
+		[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+	</body>
+</html>

+ 12 - 4
docs/api/helpers/DirectionalLightHelper.html

@@ -1,7 +1,7 @@
 <!DOCTYPE html>
 <!DOCTYPE html>
 <html lang="en">
 <html lang="en">
 	<head>
 	<head>
-		<meta charset="utf-8" />
+		<meta charset="utf-8" />
 		<base href="../../" />
 		<base href="../../" />
 		<script src="list.js"></script>
 		<script src="list.js"></script>
 		<script src="page.js"></script>
 		<script src="page.js"></script>
@@ -32,10 +32,13 @@
 		<h2>Constructor</h2>
 		<h2>Constructor</h2>
 
 
 
 
-		<h3>[name]( [page:DirectionalLight light], [page:Number size] )</h3>
+		<h3>[name]( [page:DirectionalLight light], [page:Number size], [page:Hex color] )</h3>
 		<div>
 		<div>
-		[page:DirectionalLight light]-- The light to be visualized. <br />
-		[page:Number size] -- (optional) dimensions of the plane. Default is *1*.<br /><br />
+			[page:DirectionalLight light]-- The light to be visualized. <br /><br />
+
+			[page:Number size] -- (optional) dimensions of the plane. Default is *1*.<br /><br />
+			
+			[page:Hex color] -- (optional) if this is not the set the helper will take the color of the light.
 		</div>
 		</div>
 
 
 
 
@@ -58,6 +61,11 @@
 			light's [page:Object3D.matrixWorld matrixWorld].
 			light's [page:Object3D.matrixWorld matrixWorld].
 		</div>
 		</div>
 
 
+		<h3>[property:hex color]</h3>
+		<div>
+			The color parameter passed in the constructor. Default is *undefined*. If this is changed, 
+			the helper's color will update the next time [page:.update update] is called.
+		</div>
 
 
 
 
 		<h2>Methods</h2>
 		<h2>Methods</h2>

+ 13 - 4
docs/api/helpers/HemisphereLightHelper.html

@@ -1,7 +1,7 @@
 <!DOCTYPE html>
 <!DOCTYPE html>
 <html lang="en">
 <html lang="en">
 	<head>
 	<head>
-		<meta charset="utf-8" />
+		<meta charset="utf-8" />
 		<base href="../../" />
 		<base href="../../" />
 		<script src="list.js"></script>
 		<script src="list.js"></script>
 		<script src="page.js"></script>
 		<script src="page.js"></script>
@@ -29,10 +29,13 @@ scene.add( helper );
 
 
 		<h2>Constructor</h2>
 		<h2>Constructor</h2>
 
 
-		<h3>[name]([page:HemisphereLight light], [page:Number sphereSize])</h3>
+		<h3>[name]( [page:HemisphereLight light], [page:Number sphereSize], [page:Hex color] )</h3>
 		<div>
 		<div>
-		[page:HemisphereLight light] -- The light being visualized. <br />
-		[page:Number size] -- The size of the mesh used to visualize the light.
+			[page:HemisphereLight light] -- The light being visualized. <br /><br />
+
+			[page:Number size] -- The size of the mesh used to visualize the light.<br /><br />
+			
+			[page:Hex color] -- (optional) if this is not the set the helper will take the color of the light.
 		</div>
 		</div>
 
 
 
 
@@ -51,6 +54,12 @@ scene.add( helper );
 			hemisphereLight's [page:Object3D.matrixWorld matrixWorld].
 			hemisphereLight's [page:Object3D.matrixWorld matrixWorld].
 		</div>
 		</div>
 
 
+		<h3>[property:hex color]</h3>
+		<div>
+			 The color parameter passed in the constructor. Default is *undefined*. If this is changed, the helper's color will update
+			the next time [page:.update update] is called.
+		</div>
+
 
 
 		<h2>Methods</h2>
 		<h2>Methods</h2>
 		<div>See the base [page:Object3D] class for common methods.</div>
 		<div>See the base [page:Object3D] class for common methods.</div>

+ 65 - 0
docs/api/helpers/PlaneHelper.html

@@ -0,0 +1,65 @@
+<!DOCTYPE html>
+<html lang="en">
+	<head>
+		<meta charset="utf-8" />
+		<base href="../../" />
+		<script src="list.js"></script>
+		<script src="page.js"></script>
+		<link type="text/css" rel="stylesheet" href="page.css" />
+	</head>
+	<body>
+		[page:LineSegments] &rarr;
+
+		<h1>[name]</h1>
+
+		<div class="desc">
+			Helper object to visualize a [page:Plane].
+		</div>
+
+
+		<h2>Example</h2>
+
+		<code>
+		var plane = new THREE.Plane( new THREE.Vector3( 1, 1, 0.2 ), 3 );
+		var helper = new THREE.PlaneHelper( plane, 1, 0xffff00 );
+		scene.add( helper );
+		</code>
+
+
+		<h2>Constructor</h2>
+
+
+		<h3>[name]( [page:Plane plane], [page:Float size], [page:Color hex] )</h3>
+		<div>
+		[page:Plane plane] --  the plane to visualize.<br />
+		[page:Float size] -- (optional) side length of plane helper. Default is 1.<br />
+		[page:Color color] --  (optional) the color of the helper. Default is 0xffff00.<br /><br />
+
+		Creates a new wireframe representation of the passed plane.
+		</div>
+
+		<h2>Properties</h2>
+		<div>See the base [page:LineSegments] class for common properties.</div>
+
+		<h3>[property:Plane plane]</h3>
+		<div>The [page:Plane plane] being visualized.</div>
+
+		<h3>[property:Float size]</h3>
+		<div>The side lengths of plane helper.</div>
+
+
+		<h2>Methods</h2>
+		<div>See the base [page:LineSegments] class for common methods.</div>
+
+		<h3>[method:void updateMatrixWorld]( force )</h3>
+		<div>
+			This overrides the method in the base [page:Object3D] class so that it also
+			updates the helper object according to the [page:PlaneHelper.plane .plane] and
+			[page:PlaneHelper.size .size] properties.
+		</div>
+
+		<h2>Source</h2>
+
+		[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+	</body>
+</html>

+ 13 - 6
docs/api/helpers/PointLightHelper.html

@@ -1,7 +1,7 @@
 <!DOCTYPE html>
 <!DOCTYPE html>
 <html lang="en">
 <html lang="en">
 	<head>
 	<head>
-		<meta charset="utf-8" />
+		<meta charset="utf-8" />
 		<base href="../../" />
 		<base href="../../" />
 		<script src="list.js"></script>
 		<script src="list.js"></script>
 		<script src="page.js"></script>
 		<script src="page.js"></script>
@@ -37,12 +37,14 @@
 
 
 		<h2>Constructor</h2>
 		<h2>Constructor</h2>
 
 
-		<h3>[name]( [page:PointLight light], [page:Float sphereSize] )</h3>
+		<h3>[name]( [page:PointLight light], [page:Float sphereSize], [page:Hex color] )</h3>
 		<div>
 		<div>
-		[page:PointLight light] -- The light to be visualized. <br />
-		 [page:Float sphereSize] -- (optional) The size of the sphere helper. Default is *1*.
-		</div>
+		[page:PointLight light] -- The light to be visualized. <br /><br />
+
+		[page:Float sphereSize] -- (optional) The size of the sphere helper. Default is *1*.<br /><br />
 
 
+		[page:Hex color] -- (optional) if this is not the set the helper will take the color of the light.
+		</div>
 
 
 		<h2>Properties</h2>
 		<h2>Properties</h2>
 		<div>See the base [page:Mesh] class for common properties.</div>
 		<div>See the base [page:Mesh] class for common properties.</div>
@@ -59,7 +61,12 @@
 			pointLight's [page:Object3D.matrixWorld matrixWorld].
 			pointLight's [page:Object3D.matrixWorld matrixWorld].
 		</div>
 		</div>
 
 
-
+		<h3>[property:hex color]</h3>
+		<div>
+			 The color parameter passed in the constructor. Default is *undefined*. If this is changed, the helper's color will update
+			the next time [page:.update update] is called.
+		</div>
+		
 		<h2>Methods</h2>
 		<h2>Methods</h2>
 		<div>See the base [page:Mesh] class for common methods.</div>
 		<div>See the base [page:Mesh] class for common methods.</div>
 
 

+ 12 - 2
docs/api/helpers/RectAreaLightHelper.html

@@ -29,8 +29,12 @@ scene.add( helper );
 
 
 		<h2>Constructor</h2>
 		<h2>Constructor</h2>
 
 
-		<h3>[name]( [page:RectAreaLight light] )</h3>
-		<div>[page:RectAreaLight light] -- The light being visualized.</div>
+		<h3>[name]( [page:RectAreaLight light], [page:Hex color] )</h3>
+		<div>
+			[page:RectAreaLight light] -- The light being visualized.<br /><br />
+
+			[page:Hex color] -- (optional) if this is not the set the helper will take the color of the light.
+		</div>
 
 
 
 
 		<h2>Properties</h2>
 		<h2>Properties</h2>
@@ -39,6 +43,12 @@ scene.add( helper );
 		<h3>[property:RectAreaLight light]</h3>
 		<h3>[property:RectAreaLight light]</h3>
 		<div>Reference to the RectAreaLight being visualized.</div>
 		<div>Reference to the RectAreaLight being visualized.</div>
 
 
+		<h3>[property:hex color]</h3>
+		<div>
+						 The color parameter passed in the constructor. Default is *undefined*. If this is changed, the helper's color will update
+						the next time [page:.update update] is called.
+		</div>
+
 
 
 		<h2>Methods</h2>
 		<h2>Methods</h2>
 		<div>See the base [page:Object3D] class for common methods.</div>
 		<div>See the base [page:Object3D] class for common methods.</div>

+ 11 - 3
docs/api/helpers/SpotLightHelper.html

@@ -35,8 +35,12 @@
 		<h2>Constructor</h2>
 		<h2>Constructor</h2>
 
 
 
 
-		<h3>[name]([page:SpotLight light])</h3>
-		<div>light -- The [page:SpotLight] to be visualized.</div>
+		<h3>[name]( [page:SpotLight light], [page:Hex color] )</h3>
+		<div>
+			[page:SpotLight light] -- The [page:SpotLight] to be visualized. <br /><br/>
+			
+			[page:Hex color] -- (optional) if this is not the set the helper will take the color of the light. 
+		</div>
 
 
 
 
 		<h2>Properties</h2>
 		<h2>Properties</h2>
@@ -45,7 +49,6 @@
 		<h3>[property:LineSegments cone]</h3>
 		<h3>[property:LineSegments cone]</h3>
 		<div>[page:LineSegments] used to visualize the light.</div>
 		<div>[page:LineSegments] used to visualize the light.</div>
 
 
-
 		<h3>[property:SpotLight light]</h3>
 		<h3>[property:SpotLight light]</h3>
 		<div>Reference to the [page:SpotLight] being visualized.</div>
 		<div>Reference to the [page:SpotLight] being visualized.</div>
 
 
@@ -58,6 +61,11 @@
 			spotLight's [page:Object3D.matrixWorld matrixWorld].
 			spotLight's [page:Object3D.matrixWorld matrixWorld].
 		</div>
 		</div>
 
 
+		<h3>[property:hex color]</h3>
+		<div>
+					 The color parameter passed in the constructor. Default is *undefined*. If this is changed, the helper's color will update
+					the next time [page:.update update] is called.
+		</div>
 
 
 		<h2>Methods</h2>
 		<h2>Methods</h2>
 		<div>See the base [page:Object3D] class for common methods.</div>
 		<div>See the base [page:Object3D] class for common methods.</div>

+ 78 - 78
docs/api/helpers/VertexNormalsHelper.html

@@ -1,79 +1,79 @@
-<!DOCTYPE html>
-<html lang="en">
-	<head>
+<!DOCTYPE html>
+<html lang="en">
+	<head>
 		<meta charset="utf-8" />
 		<meta charset="utf-8" />
-		<base href="../../" />
-		<script src="list.js"></script>
-		<script src="page.js"></script>
-		<link type="text/css" rel="stylesheet" href="page.css" />
-	</head>
-	<body>
-		[page:Line] &rarr;
-
-		<h1>[name]</h1>
-
-		<div class="desc">
-			Renders [page:ArrowHelper arrows] to visualize an object's vertex normal vectors.
-			Requires that normals have been specified in a [page:BufferAttribute custom attribute] or
-			have been calculated using [page:Geometry.computeVertexNormals computeVertexNormals].<br /><br />
-
-			Unline [page:FaceNormalsHelper], this works with [page:BufferGeometry].
-		</div>
-
-		<h2>Example</h2>
-
-		[example:webgl_helpers WebGL / helpers]
-
-		<code>
-		var geometry = new THREE.BoxGeometry( 10, 10, 10, 2, 2, 2 );
-		var material = new THREE.MeshBasicMaterial( { color: 0xff0000 } );
-		var box = new THREE.Mesh( geometry, material );
-
-		var helper = new THREE.VertexNormalsHelper( box, 2, 0x00ff00, 1 );
-
-		scene.add( box );
-		scene.add( helper );
-		</code>
-
-
-		<h2>Constructor</h2>
-
-
-		<h3>[name]( [page:Object3D object], [page:Number size], [page:Hex color], [page:Number linewidth] )</h3>
-		<div>
-			[page:Object3D object] -- object for which to render vertex normals.<br />
-			[page:Number size] -- (optional) length of the arrows. Default is 1.<br />
-			[page:Hex color] -- hex color of the arrows. Default is 0xff0000.<br />
-			[page:Number linewidth] -- (optional) width of the arrow lines. Default is 1.
-		</div>
-
-
-		<h2>Properties</h2>
-		<div>See the base [page:LineSegments] class for common properties.</div>
-
-		<h3>[property:object matrixAutoUpdate]</h3>
-		<div>
-			See [page:Object3D.matrixAutoUpdate]. Set to *false* here as the helper is using the
-			objects's [page:Object3D.matrixWorld matrixWorld].
-		</div>
-
-		<h3>[property:Object3D object]</h3>
-		<div>The object for which the vertex normals are being visualized.</div>
-
-		<h3>[property:Number size]</h3>
-		<div>Length of the arrows. Default is *1*.</div>
-
-
-		<h2>Methods</h2>
-		<div>See the base [page:LineSegments] class for common methods.</div>
-
-
-		<h3>[method:null update]()</h3>
-		<div>Updates the vertex normal preview based on movement of the object.</div>
-
-
-		<h2>Source</h2>
-
-		[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
-	</body>
-</html>
+		<base href="../../" />
+		<script src="list.js"></script>
+		<script src="page.js"></script>
+		<link type="text/css" rel="stylesheet" href="page.css" />
+	</head>
+	<body>
+		[page:Line] &rarr;
+
+		<h1>[name]</h1>
+
+		<div class="desc">
+			Renders [page:ArrowHelper arrows] to visualize an object's vertex normal vectors.
+			Requires that normals have been specified in a [page:BufferAttribute custom attribute] or
+			have been calculated using [page:Geometry.computeVertexNormals computeVertexNormals].<br /><br />
+
+			Unlike [page:FaceNormalsHelper], this works with [page:BufferGeometry].
+		</div>
+
+		<h2>Example</h2>
+
+		[example:webgl_helpers WebGL / helpers]
+
+		<code>
+		var geometry = new THREE.BoxGeometry( 10, 10, 10, 2, 2, 2 );
+		var material = new THREE.MeshBasicMaterial( { color: 0xff0000 } );
+		var box = new THREE.Mesh( geometry, material );
+
+		var helper = new THREE.VertexNormalsHelper( box, 2, 0x00ff00, 1 );
+
+		scene.add( box );
+		scene.add( helper );
+		</code>
+
+
+		<h2>Constructor</h2>
+
+
+		<h3>[name]( [page:Object3D object], [page:Number size], [page:Hex color], [page:Number linewidth] )</h3>
+		<div>
+			[page:Object3D object] -- object for which to render vertex normals.<br />
+			[page:Number size] -- (optional) length of the arrows. Default is 1.<br />
+			[page:Hex color] -- hex color of the arrows. Default is 0xff0000.<br />
+			[page:Number linewidth] -- (optional) width of the arrow lines. Default is 1.
+		</div>
+
+
+		<h2>Properties</h2>
+		<div>See the base [page:LineSegments] class for common properties.</div>
+
+		<h3>[property:object matrixAutoUpdate]</h3>
+		<div>
+			See [page:Object3D.matrixAutoUpdate]. Set to *false* here as the helper is using the
+			objects's [page:Object3D.matrixWorld matrixWorld].
+		</div>
+
+		<h3>[property:Object3D object]</h3>
+		<div>The object for which the vertex normals are being visualized.</div>
+
+		<h3>[property:Number size]</h3>
+		<div>Length of the arrows. Default is *1*.</div>
+
+
+		<h2>Methods</h2>
+		<div>See the base [page:LineSegments] class for common methods.</div>
+
+
+		<h3>[method:null update]()</h3>
+		<div>Updates the vertex normal preview based on movement of the object.</div>
+
+
+		<h2>Source</h2>
+
+		[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+	</body>
+</html>

+ 1 - 1
docs/api/lights/DirectionalLight.html

@@ -60,7 +60,7 @@ scene.add( directionalLight );
 
 
 		<h2>Constructor</h2>
 		<h2>Constructor</h2>
 
 
-		<h3>[name]( [page:Integer hex], [page:Float intensity] )</h3>
+		<h3>[name]( [page:Integer color], [page:Float intensity] )</h3>
 		<div>
 		<div>
 			[page:Integer color] - (optional) hexadecimal color of the light. Default is 0xffffff (white).<br />
 			[page:Integer color] - (optional) hexadecimal color of the light. Default is 0xffffff (white).<br />
 			[page:Float intensity] - (optional) numeric value of the light's strength/intensity. Default is 1.<br /><br />
 			[page:Float intensity] - (optional) numeric value of the light's strength/intensity. Default is 1.<br /><br />

+ 2 - 4
docs/api/lights/PointLight.html

@@ -27,9 +27,7 @@
 			[example:webgl_lights_pointlights lights / pointlights ]<br />
 			[example:webgl_lights_pointlights lights / pointlights ]<br />
 			[example:webgl_lights_pointlights2 lights / pointlights2 ]<br />
 			[example:webgl_lights_pointlights2 lights / pointlights2 ]<br />
 			[example:webgldeferred_animation animation ]<br />
 			[example:webgldeferred_animation animation ]<br />
-			[example:webgldeferred_pointlights pointlights ]<br />
 			[example:webgl_effects_anaglyph effects / anaglyph ]<br />
 			[example:webgl_effects_anaglyph effects / anaglyph ]<br />
-			[example:webgl_geometry_large_mesh geometry / large / mesh ]<br />
 			[example:webgl_geometry_text geometry / text ]<br />
 			[example:webgl_geometry_text geometry / text ]<br />
 			[example:webgl_lensflares lensflares ]
 			[example:webgl_lensflares lensflares ]
 		</div>
 		</div>
@@ -84,11 +82,11 @@ scene.add( light );
 		<div>
 		<div>
 			The light's power.<br />
 			The light's power.<br />
 			In [page:WebGLRenderer.physicallyCorrectLights physically correct] mode, the luminous
 			In [page:WebGLRenderer.physicallyCorrectLights physically correct] mode, the luminous
-			power of the light measured in lumens. Default - *4PI*. <br /><br />
+			power of the light measured in lumens. Default is *4Math.PI*. <br /><br />
 
 
 			This is directly related to the [page:.intensity intensity] in the ratio
 			This is directly related to the [page:.intensity intensity] in the ratio
 			<code>
 			<code>
-				power = intensity * 4&Pi;
+				power = intensity * 4&pi;
 			</code>
 			</code>
 			and changing this will also change the intensity.
 			and changing this will also change the intensity.
 		</div>
 		</div>

+ 0 - 15
docs/api/lights/RectAreaLight.html

@@ -16,8 +16,6 @@
 			This light gets emitted uniformly across the face a rectangular plane. This can be
 			This light gets emitted uniformly across the face a rectangular plane. This can be
 			used to simulate things like bright windows or strip lighting.<br /><br />
 			used to simulate things like bright windows or strip lighting.<br /><br />
 
 
-			This light can cast shadows - see the [page:RectAreaLightShadow] page for details.<br /><br />
-
 			<em>NOTE:</em> this class is currently under active development and is probably not
 			<em>NOTE:</em> this class is currently under active development and is probably not
 			production ready yet (as of r83). Check back in a month or two! And feel free to try it out in the meantime.
 			production ready yet (as of r83). Check back in a month or two! And feel free to try it out in the meantime.
 		</div>
 		</div>
@@ -28,7 +26,6 @@
 		<h2>Examples</h2>
 		<h2>Examples</h2>
 
 
 		<div>
 		<div>
-			[example:webgl_lights_arealight WebGL / arealight ]<br />
 			[example:webgl_lights_rectarealight WebGL / rectarealight ]
 			[example:webgl_lights_rectarealight WebGL / rectarealight ]
 
 
 			<code>
 			<code>
@@ -70,10 +67,6 @@ scene.add( rectLightHelper );
 
 
 		<h3>[property:Boolean castShadow]</h3>
 		<h3>[property:Boolean castShadow]</h3>
 		<div>
 		<div>
-			If set to *true* light will cast dynamic shadows. *Warning*: This is expensive and
-			requires tweaking to get shadows looking right. See the [page:RectAreaLightShadow] for details.
-			The default is *false*.<br /><br />
-
 			<em>Note:</em> this is not yet implemented for this light type! (r83)
 			<em>Note:</em> this is not yet implemented for this light type! (r83)
 		</div>
 		</div>
 
 
@@ -106,14 +99,6 @@ scene.add( rectLightHelper );
 			This is set equal to [page:Object3D.DefaultUp] (0, 1, 0), so that the light shines from the top down.
 			This is set equal to [page:Object3D.DefaultUp] (0, 1, 0), so that the light shines from the top down.
 		</div>
 		</div>
 
 
-		<h3>[property:RectAreaLightShadow shadow]</h3>
-		<div>
-			A [page:RectAreaLightShadow] used to calculate shadows for this light.<br /><br />
-
-			<em>Note:</em> this is not yet implemented for this light type! (r83)
-		</div>
-
-
 		<h3>[property:Object3D target]</h3>
 		<h3>[property:Object3D target]</h3>
 		<div>
 		<div>
 			The RectAreaLight points from its [page:.position position] to target.position. The default
 			The RectAreaLight points from its [page:.position position] to target.position. The default

+ 3 - 3
docs/api/lights/SpotLight.html

@@ -36,7 +36,7 @@
 			[example:webgl_interactive_draggablecubes interactive / draggablecubes ]<br />
 			[example:webgl_interactive_draggablecubes interactive / draggablecubes ]<br />
 			[example:webgl_materials_bumpmap_skin materials / bumpmap / skin ]<br />
 			[example:webgl_materials_bumpmap_skin materials / bumpmap / skin ]<br />
 			[example:webgl_materials_cubemap_dynamic materials / cubemap / dynamic ]<br />
 			[example:webgl_materials_cubemap_dynamic materials / cubemap / dynamic ]<br />
-			[example:webgl_morphtargets_md2 morphtargets / md2 ]<br />
+			[example:webgl_loader_md2 loader / md2 ]<br />
 			[example:webgl_shading_physical shading / physical ]<br />
 			[example:webgl_shading_physical shading / physical ]<br />
 			[example:webgl_materials_bumpmap materials / bumpmap]<br/>
 			[example:webgl_materials_bumpmap materials / bumpmap]<br/>
 			[example:webgl_shading_physical shading / physical]<br/>
 			[example:webgl_shading_physical shading / physical]<br/>
@@ -135,11 +135,11 @@
 		<div>
 		<div>
 			The light's power.<br />
 			The light's power.<br />
 			In [page:WebGLRenderer.physicallyCorrectLights physically correct] mode, the luminous
 			In [page:WebGLRenderer.physicallyCorrectLights physically correct] mode, the luminous
-			power of the light measured in lumens. Default - *4PI*. <br /><br />
+			power of the light measured in lumens. Default is *4Math.PI*. <br /><br />
 
 
 			This is directly related to the [page:.intensity intensity] in the ratio
 			This is directly related to the [page:.intensity intensity] in the ratio
 			<code>
 			<code>
-				power = intensity * &Pi;
+				power = intensity * &pi;
 			</code>
 			</code>
 			and changing this will also change the intensity.
 			and changing this will also change the intensity.
 		</div>
 		</div>

+ 2 - 2
docs/api/lights/shadows/DirectionalLightShadow.html

@@ -37,8 +37,8 @@ scene.add( light );
 //Set up shadow properties for the light
 //Set up shadow properties for the light
 light.shadow.mapSize.width = 512;  // default
 light.shadow.mapSize.width = 512;  // default
 light.shadow.mapSize.height = 512; // default
 light.shadow.mapSize.height = 512; // default
-light.shadow.camera.near = 0.5;       // default
-light.shadow.camera.far = 500      // default
+light.shadow.camera.near = 0.5;    // default
+light.shadow.camera.far = 500;     // default
 
 
 //Create a sphere that cast shadows (but does not receive them)
 //Create a sphere that cast shadows (but does not receive them)
 var sphereGeometry = new THREE.SphereBufferGeometry( 5, 32, 32 );
 var sphereGeometry = new THREE.SphereBufferGeometry( 5, 32, 32 );

+ 0 - 54
docs/api/lights/shadows/RectAreaLightShadow.html

@@ -1,54 +0,0 @@
-<!DOCTYPE html>
-<html lang="en">
-	<head>
-		<meta charset="utf-8" />
-		<base href="../../../" />
-		<script src="list.js"></script>
-		<script src="page.js"></script>
-		<link type="text/css" rel="stylesheet" href="page.css" />
-	</head>
-	<body>
-
-		<h1>[name]</h1>
-
-		<div class="desc">
-			<em>Note: this is currently being developed and does nothing at the moment (r83).
-				Check back in a while!</em><br /><br />
-
-			This used internally by [page:RectAreaLight RectAreaLight] for calculating shadows.
-		</div>
-
-
-		<!--
-		<h2>Example</h2>
-		<div>
-			<code>
-			</code>
-		</div>
-	-->
-
-		<h2>Constructor</h2>
-
-		<h3>[name]( [page:Camera camera] )</h3>
-		<div>
-		[page:Camera camera] - the light's view of the world.<br /><br />
-
-		Create a new [name]. This is not intended to be called directly - it is called
-		internally by [page:RectAreaLight].
-		</div>
-
-		<h2>Properties</h2>
-		<div>
-			See the base [page:LightShadow] class for common properties.
-		</div>
-
-		<h2>Methods</h2>
-		<div>
-			See the base [page:LightShadow] class for common methods.
-		</div>
-
-		<h2>Source</h2>
-
-		[link:https://github.com/mrdoob/three.js/blob/master/src/lights/[name].js src/lights/[name].js]
-	</body>
-</html>

+ 7 - 3
docs/api/lights/shadows/SpotLightShadow.html

@@ -70,9 +70,13 @@ scene.add( helper );
 		 The light's view of the world. This is used to generate a depth map of the scene; objects behind
 		 The light's view of the world. This is used to generate a depth map of the scene; objects behind
 		 other objects from the light's perspective will be in shadow.<br /><br />
 		 other objects from the light's perspective will be in shadow.<br /><br />
 
 
-		 The default is a  [page:PerspectiveCamera] with [page:PerspectiveCamera.fov fov] of 90,
-	  [page:PerspectiveCamera.aspect aspect] of 1, [page:PerspectiveCamera.near near]
-		clipping plane at 0.5 and	[page:PerspectiveCamera.far far] clipping plane at 500.
+		 The default is a  [page:PerspectiveCamera] with [page:PerspectiveCamera.near near] clipping plane at 0.5.
+		 The [page:PerspectiveCamera.fov fov] will track the [page:SpotLight.angle angle] property of the owning
+		 [page:SpotLight SpotLight] via the [page:SpotLightShadow.update update] method. Similarly, the 
+		 [page:PerspectiveCamera.aspect aspect] property will track the aspect of the
+		 [page:LightShadow.mapSize mapSize]. If the [page:SpotLight.distance distance] property of the light is 
+		 set, the [page:PerspectiveCamera.far far] clipping plane will track that, otherwise it defaults to 500.
+		 
 	 </div>
 	 </div>
 
 
 	 <h3>[property:Boolean isSpotLightShadow]</h3>
 	 <h3>[property:Boolean isSpotLightShadow]</h3>

+ 3 - 3
docs/api/loaders/AnimationLoader.html

@@ -11,7 +11,7 @@
 		<h1>[name]</h1>
 		<h1>[name]</h1>
 
 
 		<div class="desc">
 		<div class="desc">
-			Class for loading an animation in JSON format.
+			Class for loading [page:AnimationClip AnimationClips] in JSON format.
 			This uses the [page:FileLoader] internally for loading files.
 			This uses the [page:FileLoader] internally for loading files.
 		</div>
 		</div>
 
 
@@ -26,8 +26,8 @@
 			// resource URL
 			// resource URL
 			'animations/animation.js',
 			'animations/animation.js',
 			// Function when resource is loaded
 			// Function when resource is loaded
-			function ( animation ) {
-				// do something with the animation
+			function ( animations ) {
+				// animations is an array of AnimationClips
 			},
 			},
 			// Function called when download progresses
 			// Function called when download progresses
 			function ( xhr ) {
 			function ( xhr ) {

+ 1 - 1
docs/api/loaders/Cache.html

@@ -17,7 +17,7 @@
 		<h2>Examples</h2>
 		<h2>Examples</h2>
 
 
 		<div>
 		<div>
-			[example:webgl_geometry_text_earcut WebGL / geometry / text / earcut]<br />
+			[example:webgl_geometry_text WebGL / geometry / text ]<br />
 			[example:webgl_interactive_instances_gpu WebGL / interactive / instances / gpu]<br />
 			[example:webgl_interactive_instances_gpu WebGL / interactive / instances / gpu]<br />
 			[example:webgl_loader_ttf WebGL / loader / ttf]
 			[example:webgl_loader_ttf WebGL / loader / ttf]
 		</div>
 		</div>

+ 12 - 8
docs/api/loaders/CubeTextureLoader.html

@@ -31,12 +31,12 @@ var scene = new THREE.Scene();
 scene.background = new THREE.CubeTextureLoader()
 scene.background = new THREE.CubeTextureLoader()
 	.setPath( 'textures/cubeMaps/' )
 	.setPath( 'textures/cubeMaps/' )
 	.load( [
 	.load( [
-				'1.png',
-				'2.png',
-				'3.png',
-				'4.png',
-				'5.png',
-				'6.png'
+				'px.png',
+				'nx.png',
+				'py.png',
+				'ny.png',
+				'pz.png',
+				'nz.png'
 			] );
 			] );
 		</code>
 		</code>
 
 
@@ -73,8 +73,12 @@ scene.background = new THREE.CubeTextureLoader()
 
 
 		<h3>[method:null load]( [page:String urls], [page:Function onLoad], [page:Function onProgress], [page:Function onError] )</h3>
 		<h3>[method:null load]( [page:String urls], [page:Function onLoad], [page:Function onProgress], [page:Function onError] )</h3>
 		<div>
 		<div>
-		[page:String urls] — array of 6 urls to images, one for each side of the CubeTexture. These can also be
-			[link:https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/Data_URIs Data URIs].<br />
+		[page:String urls] — array of 6 urls to images, one for each side of the CubeTexture.
+		The urls should be specified in the following order: pos-x, neg-x, pos-y, neg-y, pos-z, neg-z.
+		They can also be [link:https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/Data_URIs Data URIs].<br />
+		Note that, by convention, cube maps are specified in a coordinate system in which positive-x is to the right
+		when looking up the positive-z axis -- in other words, using a left-handed coordinate system.
+		Since three.js uses a right-handed coordinate system, environment maps used in three.js will have pos-x and neg-x swapped.<br />
 		[page:Function onLoad] — Will be called when load completes. The argument will be the loaded [page:Texture texture].<br />
 		[page:Function onLoad] — Will be called when load completes. The argument will be the loaded [page:Texture texture].<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 />
 		[page:Function onError] — Will be called when load errors.<br />

+ 9 - 3
docs/api/loaders/FontLoader.html

@@ -22,9 +22,7 @@
 
 
 		<div>
 		<div>
 		[example:webgl_geometry_text_shapes geometry / text / shapes ]<br/>
 		[example:webgl_geometry_text_shapes geometry / text / shapes ]<br/>
-		[example:webgl_geometry_text geometry / text ]<br />
-		[example:webgl_geometry_text_earcut geometry / text / earcut]<br />
-		[example:webgl_geometry_text_pnltri geometry / text / pnltri]<br />
+		[example:webgl_geometry_text geometry / text ]
 		</div>
 		</div>
 
 
 		<code>
 		<code>
@@ -63,6 +61,8 @@
 			The [page:LoadingManager loadingManager] the loader is using. Default is [page:DefaultLoadingManager].
 			The [page:LoadingManager loadingManager] the loader is using. Default is [page:DefaultLoadingManager].
 		</div>
 		</div>
 
 
+		<h3>[property:String path]</h3>
+		<div>The base path from which fonts will be loaded. See [page:.setPath]. Default is *undefined*.</div>
 
 
 		<h2>Methods</h2>
 		<h2>Methods</h2>
 
 
@@ -83,6 +83,12 @@
 		Parse a <em>JSON</em> structure and return a [page:Font].
 		Parse a <em>JSON</em> structure and return a [page:Font].
 		</div>
 		</div>
 
 
+		<h3>[method:FontLoader setPath]( [page:String path] )</h3>
+		<div>
+			Set the base path or URL from which to load fonts. This can be useful if
+			you are loading many fonts from the same directory.
+		</div>
+
 		<h2>Source</h2>
 		<h2>Source</h2>
 
 
 		[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
 		[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]

+ 104 - 0
docs/api/loaders/ImageBitmapLoader.html

@@ -0,0 +1,104 @@
+<!DOCTYPE html>
+<html lang="en">
+	<head>
+		<meta charset="utf-8" />
+		<base href="../../" />
+		<script src="list.js"></script>
+		<script src="page.js"></script>
+		<link type="text/css" rel="stylesheet" href="page.css" />
+	</head>
+	<body>
+		<h1>[name]</h1>
+
+		<div class="desc">
+			A loader for loading an [page:Image] as an [link:https://developer.mozilla.org/de/docs/Web/API/ImageBitmap ImageBitmap]. An ImageBitmap provides an asynchronous and resource efficient pathway to prepare textures for rendering in WebGL.
+
+		</div>
+
+		<h2>Example</h2>
+
+		<div>
+			[example:webgl_loader_imagebitmap WebGL / loader / ImageBitmap]
+		</div>
+
+		<code>
+		// instantiate a loader
+		var loader = new THREE.ImageBitmapLoader();
+
+		// load a image resource
+		loader.load(
+			// resource URL
+			'textures/skyboxsun25degtest.png',
+			// Function when resource is loaded
+			function ( imageBitmap ) {
+				var texture = new THREE.CanvasTexture( imageBitmap );
+				var material = new THREE.MeshBasicMaterial( { map: texture } );
+			},
+			// Function called when download progresses
+			function ( xhr ) {
+				console.log( (xhr.loaded / xhr.total * 100) + '% loaded' );
+			},
+			// Function called when download errors
+			function ( xhr ) {
+				console.log( 'An error happened' );
+			}
+		);
+		</code>
+
+
+		<h2>Constructor</h2>
+
+		<h3>[name]( [page:LoadingManager manager] )</h3>
+		<div>
+		[page:LoadingManager manager] — The [page:LoadingManager loadingManager] for the loader to use. Default is [page:LoadingManager THREE.DefaultLoadingManager].<br /><br />
+
+		Creates a new [name].
+		</div>
+
+		<h2>Properties</h2>
+
+		<h3>[property:LoadingManager manager]</h3>
+		<div>
+			The [page:LoadingManager loadingManager] the loader is using. Default is [page:DefaultLoadingManager].
+		</div>
+
+		<h3>[property:String options]</h3>
+		<div>An optional object that sets options for the internally used [link:https://developer.mozilla.org/en-US/docs/Web/API/WindowOrWorkerGlobalScope/createImageBitmap createImageBitmap] factory method. Default is *undefined*.</div>
+
+		<h3>[property:String path]</h3>
+		<div>The base path from which files will be loaded. See [page:.setPath]. Default is *undefined*.</div>
+
+		<h2>Methods</h2>
+
+		<h3>[method:null load]( [page:String url], [page:Function onLoad], [page:Function onProgress], [page:Function onError] )</h3>
+		<div>
+		[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 />
+		[page:Function onLoad] — Will be called when load completes. The argument will be the loaded [page:Image image].<br />
+		[page:Function onProgress] — Will be called while load progresses. The argument will be the progress event.<br />
+		[page:Function onError] — Will be called when load errors.<br />
+		</div>
+		<div>
+		Begin loading from url and return the [page:ImageBitmap image] object that will contain the data.
+		</div>
+
+		<h3>[method:ImageBitmapLoader setCrossOrigin]()</h3>
+		<div>This method exists for compatibility reasons and implements no logic. It ensures that [name] has a similar interface like [page:ImageLoader].</div>
+
+		<h3>[method:ImageBitmapLoader setOptions]( [page:Object options] )</h3>
+		<div>
+			Sets the options object for [link:https://developer.mozilla.org/en-US/docs/Web/API/WindowOrWorkerGlobalScope/createImageBitmap createImageBitmap].
+		</div>
+
+		<h3>[method:ImageBitmapLoader setPath]( [page:String path] )</h3>
+		<div>
+			Sets the base path or URL from which to load files. This can be useful if
+			you are loading many images from the same directory.
+		</div>
+
+
+		<h2>Source</h2>
+
+		[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+	</body>
+</html>

+ 1 - 14
docs/api/loaders/ImageLoader.html

@@ -78,12 +78,6 @@
 		<h3>[property:String path]</h3>
 		<h3>[property:String path]</h3>
 		<div>The base path from which files will be loaded. See [page:.setPath]. Default is *undefined*.</div>
 		<div>The base path from which files will be loaded. See [page:.setPath]. Default is *undefined*.</div>
 
 
-		<h3>[property:String withCredentials]</h3>
-		<div>
-			Whether the XMLHttpRequest uses credentials - see [page:.setWithCredentials].
-			Default is *undefined*.
-		</div>
-
 		<h2>Methods</h2>
 		<h2>Methods</h2>
 
 
 		<h3>[method:null load]( [page:String url], [page:Function onLoad], [page:Function onProgress], [page:Function onError] )</h3>
 		<h3>[method:null load]( [page:String url], [page:Function onLoad], [page:Function onProgress], [page:Function onError] )</h3>
@@ -104,16 +98,9 @@
 		<h3>[method:FileLoader setPath]( [page:String path] )</h3>
 		<h3>[method:FileLoader setPath]( [page:String path] )</h3>
 		<div>
 		<div>
 			Set the base path or URL from which to load files. This can be useful if
 			Set the base path or URL from which to load files. This can be useful if
-			you are loading many models from the same directory.
+			you are loading many images from the same directory.
 		</div>
 		</div>
 
 
-		<h3>[method:FileLoader setWithCredentials]( [page:Boolean value] )</h3>
-		Whether the XMLHttpRequest uses credentials such as cookies, authorization headers or
-		TLS client certificates. See
-		[link:https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/withCredentials XMLHttpRequest.withCredentials].<br />
-		Note that this has no effect if you are loading files locally or from the same domain.
-		<div>
-
 		<h2>Source</h2>
 		<h2>Source</h2>
 
 
 		[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
 		[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]

+ 17 - 7
docs/api/loaders/TextureLoader.html

@@ -17,6 +17,17 @@
 
 
 		<h2>Example</h2>
 		<h2>Example</h2>
 
 
+		<code>
+		var texture = new THREE.TextureLoader().load( 'textures/land_ocean_ice_cloud_2048.jpg' );
+
+		// immediately use the texture for material creation
+		var material = new THREE.MeshBasicMaterial( { map: texture } );
+		</code>
+
+		[example:webgl_geometry_cube geometry / cube]
+
+		<h2>Example with Callbacks</h2>
+
 		<code>
 		<code>
 		// instantiate a loader
 		// instantiate a loader
 		var loader = new THREE.TextureLoader();
 		var loader = new THREE.TextureLoader();
@@ -27,24 +38,22 @@
 			'textures/land_ocean_ice_cloud_2048.jpg',
 			'textures/land_ocean_ice_cloud_2048.jpg',
 			// Function when resource is loaded
 			// Function when resource is loaded
 			function ( texture ) {
 			function ( texture ) {
-				// do something with the texture
+				// in this example we create the material when the texture is loaded
 				var material = new THREE.MeshBasicMaterial( {
 				var material = new THREE.MeshBasicMaterial( {
 					map: texture
 					map: texture
 				 } );
 				 } );
 			},
 			},
 			// Function called when download progresses
 			// Function called when download progresses
 			function ( xhr ) {
 			function ( xhr ) {
-				console.log( (xhr.loaded / xhr.total * 100) + '% loaded' );
+				console.log( ( xhr.loaded / xhr.total * 100 ) + '% loaded' );
 			},
 			},
 			// Function called when download errors
 			// Function called when download errors
 			function ( xhr ) {
 			function ( xhr ) {
-				console.log( 'An error happened' );
+				console.error( 'An error happened' );
 			}
 			}
 		);
 		);
 		</code>
 		</code>
 
 
-		[example:canvas_geometry_earth]
-
 		<h2>Constructor</h2>
 		<h2>Constructor</h2>
 
 
 		<h3>[name]( [page:LoadingManager manager] )</h3>
 		<h3>[name]( [page:LoadingManager manager] )</h3>
@@ -81,7 +90,7 @@
 
 
 		<h2>Methods</h2>
 		<h2>Methods</h2>
 
 
-		<h3>[method:null load]( [page:String url], [page:Function onLoad], [page:Function onProgress], [page:Function onError] )</h3>
+		<h3>[method:Texture load]( [page:String url], [page:Function onLoad], [page:Function onProgress], [page:Function onError] )</h3>
 		<div>
 		<div>
 		[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 />
@@ -89,7 +98,8 @@
 		[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 />
 
 
-		Begin loading from url and pass the loaded [page:Texture texture] to onLoad.
+		Begin loading from the given URL and pass the fully loaded [page:Texture texture] to onLoad. The method also returns a new texture object which can directly be used for material creation.
+		If you do it this way, the texture may pop up in your scene once the respective loading process is finished.
 		</div>
 		</div>
 
 
 		<h3>[method:null setCrossOrigin]( [page:String value] )</h3>
 		<h3>[method:null setCrossOrigin]( [page:String value] )</h3>

+ 61 - 3
docs/api/loaders/managers/LoadingManager.html

@@ -31,6 +31,10 @@
 			[example:webgl_terrain_dynamic WebGL / terrain / dynamic]
 			[example:webgl_terrain_dynamic WebGL / terrain / dynamic]
 		</div>
 		</div>
 
 
+		<p>
+			This example shows how to use LoadingManager to track the progress of
+			[page:OBJLoader].
+		</p>
 
 
 		<code>
 		<code>
 		var manager = new THREE.LoadingManager();
 		var manager = new THREE.LoadingManager();
@@ -67,6 +71,41 @@
 		} );
 		} );
 		</code>
 		</code>
 
 
+		<p>
+			In addition to observing progress, a LoadingManager can be used to
+			override resource URLs during loading. This may be helpful for assets
+			coming from drag-and-drop events, WebSockets, WebRTC, or other APIs. An
+			example showing how to load an in-memory model using Blob URLs is below.
+		</p>
+
+		<code>
+		// Blob or File objects created when dragging files into the webpage.
+		var blobs = {'fish.gltf': blob1, 'diffuse.png': blob2, 'normal.png': blob3};
+
+		var manager = new THREE.LoadingManager();
+
+		// Initialize loading manager with URL callback.
+		var objectURLs = [];
+		manager.setURLModifier( ( url ) => {
+
+			url = URL.createObjectURL( blobs[ url ] );
+
+			objectURLs.push( url );
+
+			return url;
+
+		} );
+
+		// Load as usual, then revoke the blob URLs.
+		var loader = new THREE.GLTFLoader( manager );
+		loader.load( 'fish.gltf', (gltf) => {
+
+			scene.add( gltf.scene );
+
+			objectURLs.forEach( ( url ) => URL.revokeObjectURL( url ) );
+
+		});
+		</code>
 
 
 		<h2>Constructor</h2>
 		<h2>Constructor</h2>
 
 
@@ -121,6 +160,25 @@
 
 
 		<h2>Methods</h2>
 		<h2>Methods</h2>
 
 
+		<h3>[method:null setURLModifier]( [page:Function callback] )</h3>
+		<div>
+		[page:Function callback] — URL modifier callback. Called with [page:String url] argument, and
+		must return [page:String resolvedURL].<br /><br />
+
+		If provided, the callback will be passed each resource URL before a request is sent. The
+		callback may return the original URL, or a new URL to override loading behavior. This
+		behavior can be used to load assets from .ZIP files, drag-and-drop APIs, and Data URIs.
+		</div>
+
+		<h3>[method:String resolveURL]( [page:String url] )</h3>
+		<div>
+		[page:String url] — the url to load<br /><br />
+
+		Given a URL, uses the URL modifier callback (if any) and returns a resolved URL. If no
+		URL modifier is set, returns the original URL.
+		</div>
+
+		<br /><br />
 		<div>
 		<div>
 			<em>Note: The following methods are designed to be called internally by loaders. You shouldn't call
 			<em>Note: The following methods are designed to be called internally by loaders. You shouldn't call
 			them directly.</em>
 			them directly.</em>
@@ -130,14 +188,14 @@
 		<div>
 		<div>
 		[page:String url] — the url to load<br /><br />
 		[page:String url] — the url to load<br /><br />
 
 
-		This should be called by any loader used by the manager when the loader starts loading an url.
+		This should be called by any loader using the manager when the loader starts loading an url.
 		</div>
 		</div>
 
 
 		<h3>[method:null itemEnd]( [page:String url] )</h3>
 		<h3>[method:null itemEnd]( [page:String url] )</h3>
 		<div>
 		<div>
 		[page:String url] — the loaded url<br /><br />
 		[page:String url] — the loaded url<br /><br />
 
 
-		This should be called by any loader used by the manager when the loader ended loading an url.
+		This should be called by any loader using the manager when the loader ended loading an url.
 		</div>
 		</div>
 
 
 
 
@@ -145,7 +203,7 @@
 		<div>
 		<div>
 		[page:String url] — the loaded url<br /><br />
 		[page:String url] — the loaded url<br /><br />
 
 
-		This should be called by any loader used by the manager when the loader errors loading an url.
+		This should be called by any loader using the manager when the loader errors loading an url.
 		</div>
 		</div>
 
 
 		<h2>Source</h2>
 		<h2>Source</h2>

+ 14 - 7
docs/api/materials/Material.html

@@ -84,7 +84,7 @@
 		<div>
 		<div>
 		User-defined clipping planes specified as THREE.Plane objects in world space.
 		User-defined clipping planes specified as THREE.Plane objects in world space.
 		These planes apply to the objects this material is attached to.
 		These planes apply to the objects this material is attached to.
-		Points in space whose dot product with the plane is negative are cut away.
+		Points in space whose signed distance to the plane is negative are clipped (not rendered).
 		See the [example:webgl_clipping_intersection WebGL / clipping /intersection] example.
 		See the [example:webgl_clipping_intersection WebGL / clipping /intersection] example.
 		Default is *null*.
 		Default is *null*.
 		</div>
 		</div>
@@ -102,12 +102,15 @@
 
 
 		<h3>[property:Material customDepthMaterial]</h3>
 		<h3>[property:Material customDepthMaterial]</h3>
 		<div>
 		<div>
-		Custom depth material to be used by this material in depth based computation. If a material uses any custom logic to position the vertices (animation, displacement other than the default texture based, instancing...) the depth material should also include that logic in order to make effects like shadows and SSAO work. Defining this property allows the WebGLRenderer to use this instance of the material instead of the internal cache. Default is *undefined*.
+		Custom depth material to be used by this material when rendering to the depth map.
+		When shadow-casting with a [page:DirectionalLight] or [page:SpotLight], if you are (a) modifying vertex positions in the vertex shader,
+		(b) using a displacement map, (c) using an alpha map with alphaTest, or (d) using a transparent texture with alphaTest,
+		you must specify a customDepthMaterial for proper shadows. Default is *undefined*.
 		</div>
 		</div>
 		
 		
 		<h3>[property:Material customDistanceMaterial]</h3>
 		<h3>[property:Material customDistanceMaterial]</h3>
 		<div>
 		<div>
-		Same as customDepthMaterial but used for specific computation (point lights for example). Default is *undefined*
+		Same as customDepthMaterial, but used with [page:PointLight]. Default is *undefined*.
 		</div>
 		</div>
 		
 		
 		<h3>[property:Object defines]</h3>
 		<h3>[property:Object defines]</h3>
@@ -204,10 +207,9 @@
 		Default is *false*.
 		Default is *false*.
 		</div>
 		</div>
 
 
-		<h3>[property:Integer shading]</h3>
+		<h3>[property:Boolean flatShading]</h3>
 		<div>
 		<div>
-		Defines how the material is shaded.
-		This can be either [page:Materials THREE.SmoothShading] (default)	or [page:Materials THREE.FlatShading].
+		Define whether the material is rendered with flat shading. Default is false.
 		</div>
 		</div>
 
 
 		<h3>[property:Integer side]</h3>
 		<h3>[property:Integer side]</h3>
@@ -250,7 +252,12 @@
 		<div>
 		<div>
 		Defines whether this material is visible. Default is *true*.
 		Defines whether this material is visible. Default is *true*.
 		</div>
 		</div>
-
+		
+		<h3>[property:object userData]</h3>
+		<div>
+		An object that can be used to store custom data about the Material. It should not hold
+		references to functions as these will not be cloned.
+		</div>
 
 
 		<h2>Methods</h2>
 		<h2>Methods</h2>
 
 

+ 15 - 4
docs/api/materials/MeshBasicMaterial.html

@@ -63,7 +63,9 @@
 		</div>
 		</div>
 
 
 		<h3>[property:Texture aoMap]</h3>
 		<h3>[property:Texture aoMap]</h3>
-		<div>The red channel of this texture is used as the ambient occlusion map. Default is null. The aoMap requires a second set of UVs.</div>
+		<div>The red channel of this texture is used as the ambient occlusion map. Default is null. 
+		The aoMap requires a second set of UVs, and consequently will ignore the [page:Texture repeat]
+		and [page:Texture offset] Texture properties.</div>
 
 
 		<h3>[property:Float aoMapIntensity]</h3>
 		<h3>[property:Float aoMapIntensity]</h3>
 		<div>Intensity of the ambient occlusion effect. Default is 1. Zero is no occlusion effect.</div>
 		<div>Intensity of the ambient occlusion effect. Default is 1. Zero is no occlusion effect.</div>
@@ -91,7 +93,9 @@
 		<div>The environment map. Default is null.</div>
 		<div>The environment map. Default is null.</div>
 
 
 		<h3>[property:Texture lightMap]</h3>
 		<h3>[property:Texture lightMap]</h3>
-		<div>The light map. Default is null. The lightMap requires a second set of UVs.</div>
+		<div>The light map. Default is null. The lightMap requires a second set of UVs, 
+		and consequently will ignore the [page:Texture repeat] and [page:Texture offset] 
+		Texture properties.</div>
 
 
 		<h3>[property:Float lightMapIntensity]</h3>
 		<h3>[property:Float lightMapIntensity]</h3>
 		<div>Intensity of the baked light. Default is 1.</div>
 		<div>Intensity of the baked light. Default is 1.</div>
@@ -107,10 +111,17 @@
 
 
 
 
 		<h3>[property:Float reflectivity]</h3>
 		<h3>[property:Float reflectivity]</h3>
-		<div>How much the environment map affects the surface; also see [page:.combine].</div>
+		<div>
+			How much the environment map affects the surface; also see [page:.combine]. 
+			The default value is 1 and the valid range is between 0 (no reflections) and 1 (full reflections).
+		</div>
 
 
 		<h3>[property:Float refractionRatio]</h3>
 		<h3>[property:Float refractionRatio]</h3>
-		<div>The index of refraction for an environment map using [page:Textures THREE.CubeRefractionMapping]. Default is *0.98*.</div>
+		<div>
+			The index of refraction (IOR) of air (approximately 1) divided by the index of refraction of the material.
+			It is used with environment mapping modes [page:Textures THREE.CubeRefractionMapping] and [page:Textures THREE.EquirectangularRefractionMapping].
+			The refraction ratio should not exceed 1. Default is *0.98*.
+		</div>
 
 
 		<h3>[property:Boolean skinning]</h3>
 		<h3>[property:Boolean skinning]</h3>
 		<div>Define whether the material uses skinning. Default is false.</div>
 		<div>Define whether the material uses skinning. Default is false.</div>

+ 13 - 5
docs/api/materials/MeshLambertMaterial.html

@@ -15,8 +15,8 @@
 		<div class="desc">
 		<div class="desc">
 			A material for non-shiny surfaces, without specular highlights.<br /><br />
 			A material for non-shiny surfaces, without specular highlights.<br /><br />
 
 
-			The uses a non-physically based [link:https://en.wikipedia.org/wiki/Lambertian_reflectance Lambertian]
-			model	for calculating reflectance. This can simulate some surfaces (such as untreated wood or stone) well,
+			The material uses a non-physically based [link:https://en.wikipedia.org/wiki/Lambertian_reflectance Lambertian]
+			model for calculating reflectance. This can simulate some surfaces (such as untreated wood or stone) well,
 			but cannot simulate shiny surfaces with specular highlights (such as varnished wood).<br /><br />
 			but cannot simulate shiny surfaces with specular highlights (such as varnished wood).<br /><br />
 
 
 
 
@@ -74,7 +74,9 @@
 		</div>
 		</div>
 
 
 		<h3>[property:Texture aoMap]</h3>
 		<h3>[property:Texture aoMap]</h3>
-		<div>The red channel of this texture is used as the ambient occlusion map. Default is null. The aoMap requires a second set of UVs.</div>
+		<div>The red channel of this texture is used as the ambient occlusion map. Default is null. 
+		The aoMap requires a second set of UVs, and consequently will ignore the [page:Texture repeat]
+		and [page:Texture offset] Texture properties.</div>
 
 
 		<h3>[property:Float aoMapIntensity]</h3>
 		<h3>[property:Float aoMapIntensity]</h3>
 		<div>Intensity of the ambient occlusion effect. Default is 1. Zero is no occlusion effect.</div>
 		<div>Intensity of the ambient occlusion effect. Default is 1. Zero is no occlusion effect.</div>
@@ -118,7 +120,9 @@
 		</div>
 		</div>
 
 
 		<h3>[property:Texture lightMap]</h3>
 		<h3>[property:Texture lightMap]</h3>
-		<div>The light map. Default is null. The lightMap requires a second set of UVs.</div>
+		<div>The light map. Default is null. The lightMap requires a second set of UVs, 
+		and consequently will ignore the [page:Texture repeat] and [page:Texture offset] 
+		Texture properties.</div>
 
 
 		<h3>[property:Float lightMapIntensity]</h3>
 		<h3>[property:Float lightMapIntensity]</h3>
 		<div>Intensity of the baked light. Default is 1.</div>
 		<div>Intensity of the baked light. Default is 1.</div>
@@ -139,7 +143,11 @@
 		<div>How much the environment map affects the surface; also see [page:.combine].</div>
 		<div>How much the environment map affects the surface; also see [page:.combine].</div>
 
 
 		<h3>[property:Float refractionRatio]</h3>
 		<h3>[property:Float refractionRatio]</h3>
-		<div>The index of refraction for an environment map using [page:Textures THREE.CubeRefractionMapping]. Default is *0.98*.</div>
+		<div>
+			The index of refraction (IOR) of air (approximately 1) divided by the index of refraction of the material.
+			It is used with environment mapping modes [page:Textures THREE.CubeRefractionMapping] and [page:Textures THREE.EquirectangularRefractionMapping].
+			The refraction ratio should not exceed 1. Default is *0.98*.
+		</div>
 
 
 		<h3>[property:Boolean skinning]</h3>
 		<h3>[property:Boolean skinning]</h3>
 		<div>Define whether the material uses skinning. Default is false.</div>
 		<div>Define whether the material uses skinning. Default is false.</div>

+ 17 - 6
docs/api/materials/MeshPhongMaterial.html

@@ -15,8 +15,8 @@
 		<div class="desc">
 		<div class="desc">
 			A material for shiny surfaces with specular highlights.<br /><br />
 			A material for shiny surfaces with specular highlights.<br /><br />
 
 
-			The uses a non-physically based [link:https://en.wikipedia.org/wiki/Blinn-Phong_shading_model Blinn-Phong]
-			model	for calculating reflectance. Unlike the Lambertian model used in the [page:MeshLambertMaterial]
+			The material uses a non-physically based [link:https://en.wikipedia.org/wiki/Blinn-Phong_shading_model Blinn-Phong]
+			model for calculating reflectance. Unlike the Lambertian model used in the [page:MeshLambertMaterial]
 			this can simulate shiny surfaces with specular highlights (such as varnished wood).<br /><br />
 			this can simulate shiny surfaces with specular highlights (such as varnished wood).<br /><br />
 
 
 			Shading is calculated using a [link:https://en.wikipedia.org/wiki/Phong_shading Phong] shading model.
 			Shading is calculated using a [link:https://en.wikipedia.org/wiki/Phong_shading Phong] shading model.
@@ -73,7 +73,9 @@
 		</div>
 		</div>
 
 
 		<h3>[property:Texture aoMap]</h3>
 		<h3>[property:Texture aoMap]</h3>
-		<div>The red channel of this texture is used as the ambient occlusion map. Default is null. The aoMap requires a second set of UVs.</div>
+		<div>The red channel of this texture is used as the ambient occlusion map. Default is null. 
+		The aoMap requires a second set of UVs, and consequently will ignore the [page:Texture repeat]
+		and [page:Texture offset] Texture properties.</div>
 
 
 		<h3>[property:Float aoMapIntensity]</h3>
 		<h3>[property:Float aoMapIntensity]</h3>
 		<div>Intensity of the ambient occlusion effect. Default is 1. Zero is no occlusion effect.</div>
 		<div>Intensity of the ambient occlusion effect. Default is 1. Zero is no occlusion effect.</div>
@@ -151,7 +153,9 @@
 
 
 
 
 		<h3>[property:Texture lightMap]</h3>
 		<h3>[property:Texture lightMap]</h3>
-		<div>The light map. Default is null. The lightMap requires a second set of UVs.</div>
+		<div>The light map. Default is null. The lightMap requires a second set of UVs, 
+		and consequently will ignore the [page:Texture repeat] and [page:Texture offset] 
+		Texture properties.</div>
 
 
 		<h3>[property:Float lightMapIntensity]</h3>
 		<h3>[property:Float lightMapIntensity]</h3>
 		<div>Intensity of the baked light. Default is 1.</div>
 		<div>Intensity of the baked light. Default is 1.</div>
@@ -182,10 +186,17 @@
 
 
 
 
 		<h3>[property:Float reflectivity]</h3>
 		<h3>[property:Float reflectivity]</h3>
-		<div>How much the environment map affects the surface; also see [page:.combine].</div>
+		<div>
+			How much the environment map affects the surface; also see [page:.combine]. 
+			The default value is 1 and the valid range is between 0 (no reflections) and 1 (full reflections).
+		</div>
 
 
 		<h3>[property:Float refractionRatio]</h3>
 		<h3>[property:Float refractionRatio]</h3>
-		<div>The index of refraction for an environment map using [page:Textures THREE.CubeRefractionMapping]. Default is *0.98*.</div>
+		<div>
+			The index of refraction (IOR) of air (approximately 1) divided by the index of refraction of the material.
+			It is used with environment mapping modes [page:Textures THREE.CubeRefractionMapping] and [page:Textures THREE.EquirectangularRefractionMapping].
+			The refraction ratio should not exceed 1. Default is *0.98*.
+		</div>
 
 
 		<h3>[property:Float shininess]</h3>
 		<h3>[property:Float shininess]</h3>
 		<div>How shiny the [page:.specular] highlight is; a higher value gives a sharper highlight. Default is *30*.</div>
 		<div>How shiny the [page:.specular] highlight is; a higher value gives a sharper highlight. Default is *30*.</div>

+ 11 - 3
docs/api/materials/MeshStandardMaterial.html

@@ -97,7 +97,9 @@
 		</div>
 		</div>
 
 
 		<h3>[property:Texture aoMap]</h3>
 		<h3>[property:Texture aoMap]</h3>
-		<div>The red channel of this texture is used as the ambient occlusion map. Default is null. The aoMap requires a second set of UVs.</div>
+		<div>The red channel of this texture is used as the ambient occlusion map. Default is null. 
+		The aoMap requires a second set of UVs, and consequently will ignore the [page:Texture repeat]
+		and [page:Texture offset] Texture properties.</div>
 
 
 		<h3>[property:Float aoMapIntensity]</h3>
 		<h3>[property:Float aoMapIntensity]</h3>
 		<div>Intensity of the ambient occlusion effect. Default is 1. Zero is no occlusion effect.</div>
 		<div>Intensity of the ambient occlusion effect. Default is 1. Zero is no occlusion effect.</div>
@@ -182,7 +184,9 @@
 
 
 
 
 		<h3>[property:Texture lightMap]</h3>
 		<h3>[property:Texture lightMap]</h3>
-		<div>The light map. Default is null. The lightMap requires a second set of UVs.</div>
+		<div>The light map. Default is null. The lightMap requires a second set of UVs, 
+		and consequently will ignore the [page:Texture repeat] and [page:Texture offset] 
+		Texture properties.</div>
 
 
 		<h3>[property:Float lightMapIntensity]</h3>
 		<h3>[property:Float lightMapIntensity]</h3>
 		<div>Intensity of the baked light. Default is 1.</div>
 		<div>Intensity of the baked light. Default is 1.</div>
@@ -222,7 +226,11 @@
 		</div>
 		</div>
 
 
 		<h3>[property:Float refractionRatio]</h3>
 		<h3>[property:Float refractionRatio]</h3>
-		<div>The index of refraction for an environment map using [page:Textures THREE.CubeRefractionMapping]. Default is *0.98*.</div>
+		<div>
+			The index of refraction (IOR) of air (approximately 1) divided by the index of refraction of the material.
+			It is used with environment mapping modes [page:Textures THREE.CubeRefractionMapping] and [page:Textures THREE.EquirectangularRefractionMapping].
+			The refraction ratio should not exceed 1. Default is *0.98*.
+		</div>
 
 
 		<h3>[property:Float roughness]</h3>
 		<h3>[property:Float roughness]</h3>
 		<div>
 		<div>

+ 2 - 2
docs/api/materials/PointsMaterial.html

@@ -44,11 +44,11 @@ for ( var i = 0; i < 10000; i ++ ) {
 	star.y = THREE.Math.randFloatSpread( 2000 );
 	star.y = THREE.Math.randFloatSpread( 2000 );
 	star.z = THREE.Math.randFloatSpread( 2000 );
 	star.z = THREE.Math.randFloatSpread( 2000 );
 
 
-	starsGeometry.vertices.push( star )
+	starsGeometry.vertices.push( star );
 
 
 }
 }
 
 
-var starsMaterial = new THREE.PointsMaterial( { color: 0x888888 } )
+var starsMaterial = new THREE.PointsMaterial( { color: 0x888888 } );
 
 
 var starField = new THREE.Points( starsGeometry, starsMaterial );
 var starField = new THREE.Points( starsGeometry, starsMaterial );
 
 

+ 5 - 6
docs/api/materials/ShaderMaterial.html

@@ -14,7 +14,7 @@
 
 
 		<div class="desc">
 		<div class="desc">
 			A material rendered with custom shaders. A shader is a small program written in
 			A material rendered with custom shaders. A shader is a small program written in
-			[link:https://www.khronos.org/files/opengles_shading_language.pdf_ES GLSL] that runs on the GPU.
+			[link:https://www.khronos.org/files/opengles_shading_language.pdf GLSL] that runs on the GPU.
 			You may want to use a custom shader if you need to:
 			You may want to use a custom shader if you need to:
 		<ul>
 		<ul>
 			<li>implement an effect not included with any of the built-in [page:Material materials]</li>
 			<li>implement an effect not included with any of the built-in [page:Material materials]</li>
@@ -40,7 +40,7 @@
 				must be used instead.
 				must be used instead.
 			</li>
 			</li>
 			<li>
 			<li>
-				Built in attributes an uniforms are passed to the shaders along with your code.
+				Built in attributes and uniforms are passed to the shaders along with your code.
 				If you don't want the [page:WebGLProgram] to add anything to your shader code, you can use
 				If you don't want the [page:WebGLProgram] to add anything to your shader code, you can use
 				[page:RawShaderMaterial] instead of this class.
 				[page:RawShaderMaterial] instead of this class.
 			</li>
 			</li>
@@ -296,7 +296,7 @@ this.defaultAttributeValues = {
 
 
 		<h3>[property:Object extensions]</h3>
 		<h3>[property:Object extensions]</h3>
 		<div>
 		<div>
-		An object with the folowing properties:
+		An object with the following properties:
 		<code>
 		<code>
 this.extensions = {
 this.extensions = {
 	derivatives: false, // set to use derivatives
 	derivatives: false, // set to use derivatives
@@ -371,10 +371,9 @@ this.extensions = {
 		You should not need to access this property.
 		You should not need to access this property.
 		</div>
 		</div>
 
 
-		<h3>[property:Number shading]</h3>
+		<h3>[property:Boolean flatShading]</h3>
 		<div>
 		<div>
-		Define shading type, which determines whether normals are smoothed between vertices;
-		possible values are [page:Materials THREE.SmoothShading] or [page:Materials THREE.FlatShading]. Default is THREE.SmoothShading.
+		Define whether the material is rendered with flat shading. Default is false.
 		</div>
 		</div>
 
 
 
 

+ 3 - 3
docs/api/math/Box3.html

@@ -47,7 +47,7 @@
 
 
 		<h3>[property:Vector3 max]</h3>
 		<h3>[property:Vector3 max]</h3>
 		<div>
 		<div>
-			[page:Vector3] representing the lower upper (x, y, z) boundary of the box.<br />
+			[page:Vector3] representing the upper (x, y, z) boundary of the box.<br />
 			Default is ( - Infinity, - Infinity, - Infinity ).
 			Default is ( - Infinity, - Infinity, - Infinity ).
 		</div>
 		</div>
 
 
@@ -244,7 +244,7 @@
 		<h3>[method:Box3 setFromCenterAndSize]( [page:Vector3 center], [page:Vector3 size] )</h3>
 		<h3>[method:Box3 setFromCenterAndSize]( [page:Vector3 center], [page:Vector3 size] )</h3>
 		<div>
 		<div>
 		[page:Vector3 center] - Desired center position of the box ([page:Vector3]). <br>
 		[page:Vector3 center] - Desired center position of the box ([page:Vector3]). <br>
-		[page:Vector3 size] - Desired x and y dimensions of the box ([page:Vector3]).<br /><br />
+		[page:Vector3 size] - Desired x, y and z dimensions of the box ([page:Vector3]).<br /><br />
 
 
 		Centers this box on [page:Vector3 center] and sets this box's width and height to the values specified
 		Centers this box on [page:Vector3 center] and sets this box's width and height to the values specified
 		in [page:Vector3 size].
 		in [page:Vector3 size].
@@ -280,7 +280,7 @@
 		[page:Vector3 offset] - Direction and distance of offset.<br /><br />
 		[page:Vector3 offset] - Direction and distance of offset.<br /><br />
 
 
 		Adds [page:Vector3 offset] to both the upper and lower bounds of this box, effectively moving this box
 		Adds [page:Vector3 offset] to both the upper and lower bounds of this box, effectively moving this box
-		[page:Vector3 offset] units in 2D space.
+		[page:Vector3 offset] units in 3D space.
 		</div>
 		</div>
 
 
 		<h3>[method:Box3 union]( [page:Box3 box] )</h3>
 		<h3>[method:Box3 union]( [page:Box3 box] )</h3>

+ 1 - 1
docs/api/math/Color.html

@@ -35,7 +35,7 @@ var color = new THREE.Color( 'skyblue' );
 //HSL string
 //HSL string
 var color = new THREE.Color("hsl(0, 100%, 50%)");
 var color = new THREE.Color("hsl(0, 100%, 50%)");
 
 
-//Seperate RGB values between 0 and 1
+//Separate RGB values between 0 and 1
 var color = new THREE.Color( 1, 0, 0 );
 var color = new THREE.Color( 1, 0, 0 );
 		</code>
 		</code>
 
 

+ 4 - 13
docs/api/math/Euler.html

@@ -54,19 +54,10 @@
 			rotated around its X axis, then its Y axis and finally its Z axis. Other possibilities are:
 			rotated around its X axis, then its Y axis and finally its Z axis. Other possibilities are:
 			'YZX', 'ZXY', 'XZY', 'YXZ' and 'ZYX'. These must be in upper case.<br /><br />
 			'YZX', 'ZXY', 'XZY', 'YXZ' and 'ZYX'. These must be in upper case.<br /><br />
 
 
-			Three.js uses <em>intrinsic</em> (Tait-Bryan) ordering, also known as <em>yaw</em>, <em>pitch</em>
-			and <em>roll</em>. This means that rotations are performed with respect to the <em>local</em>
-			coordinate system. That is, for order 'XYZ', the rotation is first around world-X, then around
-			local-Y (which may now be different from the world Y-axis), then local-Z (which may be different
-			from the world Z-axis).<br /><br />
-
-			Some implementations may use <em>extrinsic</em> (proper) ordering, in which case rotations are performed
-			with respect to the <em>world</em> coordinate system, so that for order 'XYZ', the rotations
-			are around world-X, world-Y, and world-Z.<br /><br />
-
-			Converting between the two types is relatively straightforward, you just need to reverse the order
-			and the rotation, so that an intrinsic (three.js) Euler rotation of angles a, b, c about XYZ
-			will be equivalent to to an extrinsic Euler rotation of angles c, b, a about ZYX.<br /><br />
+			Three.js uses <em>intrinsic</em> Tait-Bryan angles. This means that rotations are performed with respect
+			to the <em>local</em> coordinate system. That is, for order 'XYZ', the rotation is first around the local-X
+			axis (which is the same as the world-X axis), then around local-Y (which may now be different from the
+			world Y-axis), then local-Z (which may be different from the world Z-axis).<br /><br />
 
 
 			If the order is changed, [page:.onChangeCallback onChangeCallback] will be called.
 			If the order is changed, [page:.onChangeCallback onChangeCallback] will be called.
 		</div>
 		</div>

+ 1 - 1
docs/api/math/Frustum.html

@@ -98,7 +98,7 @@
 		<div>
 		<div>
 			[page:Matrix4 matrix] - [page:Matrix4] used to set the [page:.planes planes]<br /><br />
 			[page:Matrix4 matrix] - [page:Matrix4] used to set the [page:.planes planes]<br /><br />
 
 
-			This is used by the [page:WebGLRenderer] to set up the Frustum from a [page:Camera Camera's]
+			This is used by the [page:WebGLRenderer] to set up the Frustum from a [page:Camera Camera]'s
 			[page:Camera.projectionMatrix projectionMatrix] and [page:Camera.matrixWorldInverse matrixWorldInverse].
 			[page:Camera.projectionMatrix projectionMatrix] and [page:Camera.matrixWorldInverse matrixWorldInverse].
 		</div>
 		</div>
 
 

+ 4 - 4
docs/api/math/Math.html

@@ -70,11 +70,11 @@
 		Linear mapping of [page:Float x] from range [[page:Float a1], [page:Float a2]] to range [[page:Float b1], [page:Float b2]].
 		Linear mapping of [page:Float x] from range [[page:Float a1], [page:Float a2]] to range [[page:Float b1], [page:Float b2]].
 		</div>
 		</div>
 
 
-		<h3>[method:Integer nearestPowerOfTwo]( [page:Number n] )</h3>
-		<div>	Returns the nearest power of 2 to a given number [page:Number n].</div>
+		<h3>[method:Integer ceilPowerOfTwo]( [page:Number n] )</h3>
+		<div>Returns the smallest power of 2 that is greater than or equal to [page:Number n].</div>
 
 
-		<h3>[method:Integer nextPowerOfTwo]( [page:Number n] )</h3>
-		<div>Returns the nearest power of 2 that is bigger than [page:Number n].</div>
+		<h3>[method:Integer floorPowerOfTwo]( [page:Number n] )</h3>
+		<div>Returns the largest power of 2 that is less than or equal to [page:Number n].</div>
 
 
 		<h3>[method:Float radToDeg]( [page:Float radians] )</h3>
 		<h3>[method:Float radToDeg]( [page:Float radians] )</h3>
 		<div>Converts radians to degrees.</div>
 		<div>Converts radians to degrees.</div>

+ 17 - 0
docs/api/math/Matrix3.html

@@ -169,6 +169,23 @@ m.elements = [ 11, 21, 31,
 		<h3>[method:Matrix3 setFromMatrix4]( [page:Matrix4 m] )</h3>
 		<h3>[method:Matrix3 setFromMatrix4]( [page:Matrix4 m] )</h3>
 		<div>Set this matrx to the upper 3x3 matrix of the Matrix4 [page:Matrix4 m].</div>
 		<div>Set this matrx to the upper 3x3 matrix of the Matrix4 [page:Matrix4 m].</div>
 
 
+		<h3>
+			[method:Matrix3 setUvTransform](
+			[page:Float tx], [page:Float ty], [page:Float sx], [page:Float sy],
+			[page:Float rotation], [page:Float cx], [page:Float cy] )
+		</h3>
+		<div>
+		[page:Float tx] - offset x<br />
+		[page:Float ty] - offset y<br />
+		[page:Float sx] - repeat x<br />
+		[page:Float sy] - repeat y<br />
+		[page:Float rotation] - rotation (in radians)<br />
+		[page:Float cx] - center x of rotation<br />
+		[page:Float cy] - center y of rotation<br /><br />
+
+		Sets the UV transform matrix from offset, repeat, rotation, and center.
+		</div>
+
 		<h3>[method:Array toArray]( [page:Array array], [page:Integer offset] )</h3>
 		<h3>[method:Array toArray]( [page:Array array], [page:Integer offset] )</h3>
 		<div>
 		<div>
 		[page:Array array] - (optional) array to store the resulting vector in. If not given a new array will be created.<br />
 		[page:Array array] - (optional) array to store the resulting vector in. If not given a new array will be created.<br />

+ 2 - 2
docs/api/math/Matrix4.html

@@ -75,7 +75,7 @@ m.elements = [ 11, 21, 31, 41,
 		and internally all calculations are performed using column-major ordering. However, as the actual ordering
 		and internally all calculations are performed using column-major ordering. However, as the actual ordering
 		makes no difference mathematically and most people are used to thinking about matrices in row-major order,
 		makes no difference mathematically and most people are used to thinking about matrices in row-major order,
 		the three.js documentation shows matrices in row-major order. Just bear in mind that if you are reading the source
 		the three.js documentation shows matrices in row-major order. Just bear in mind that if you are reading the source
-		code, you'll have to take the [link: https://en.wikipedia.org/wiki/Transpose transpose] of any matrices outlined here to make sense of the calculations.
+		code, you'll have to take the [link:https://en.wikipedia.org/wiki/Transpose transpose] of any matrices outlined here to make sense of the calculations.
 		</div>
 		</div>
 
 
 
 
@@ -260,7 +260,7 @@ xAxis.z, yAxis.z, zAxis.z, 0,
 		[link:https://en.wikipedia.org/wiki/Rotation_matrix#Quaternion here].
 		[link:https://en.wikipedia.org/wiki/Rotation_matrix#Quaternion here].
 		The rest of the matrix is set to the identity. So, given [page:Quaternion q] = w + xi + yj + zk, the resulting matrix will be:
 		The rest of the matrix is set to the identity. So, given [page:Quaternion q] = w + xi + yj + zk, the resulting matrix will be:
 		<code>
 		<code>
-1-2y²-2z²    2xy-2zw    2xz-2yw    0
+1-2y²-2z²    2xy-2zw    2xz+2yw    0
 2xy+2zw      1-2x²-2z²  2yz-2xw    0
 2xy+2zw      1-2x²-2z²  2yz-2xw    0
 2xz-2yw      2yz+2xw    1-2x²-2y²  0
 2xz-2yw      2yz+2xw    1-2x²-2y²  0
 0            0          0          1
 0            0          0          1

+ 19 - 37
docs/api/math/Plane.html

@@ -11,9 +11,8 @@
 		<h1>[name]</h1>
 		<h1>[name]</h1>
 
 
 		<div class="desc">
 		<div class="desc">
-			A two dimensional surface that extends infinitely in 3d space, defined by
-			a [link:https://en.wikipedia.org/wiki/Normal_(geometry) normal vector], and a
-			distance from the origin along the normal.
+			A two dimensional surface that extends infinitely in 3d space, represented in [link:http://mathworld.wolfram.com/HessianNormalForm.html Hessian normal form]
+			by a unit length normal vector and a constant.
 		</div>
 		</div>
 
 
 
 
@@ -22,10 +21,8 @@
 
 
 		<h3>[name]( [page:Vector3 normal], [page:Float constant] )</h3>
 		<h3>[name]( [page:Vector3 normal], [page:Float constant] )</h3>
 		<div>
 		<div>
-		[page:Vector3 normal] - (optional) a [page:Vector3] defining the direction of the
-		plane. Default is *(1, 0, 0)*.<br />
-		[page:Float constant] - (optional) the negative distance from the origin to the plane along
-		 the [page:Vector3 normal] vector. Default is *0*.
+		[page:Vector3 normal] - (optional) a unit length [page:Vector3] defining the normal of the plane. Default is *(1, 0, 0)*.<br />
+		[page:Float constant] - (optional) the signed distance from the origin to the plane. Default is *0*.
 		</div>
 		</div>
 
 
 
 
@@ -68,10 +65,10 @@
 		</div>
 		</div>
 
 
 		<h3>[method:Float distanceToPoint]( [page:Vector3 point] )</h3>
 		<h3>[method:Float distanceToPoint]( [page:Vector3 point] )</h3>
-		<div>Returns the smallest distance from the [page:Vector3 point] to the plane.</div>
+		<div>Returns the signed distance from the [page:Vector3 point] to the plane.</div>
 
 
 		<h3>[method:Float distanceToSphere]( [page:Sphere sphere] )</h3>
 		<h3>[method:Float distanceToSphere]( [page:Sphere sphere] )</h3>
-		<div>Returns the smallest distance from the [page:Sphere sphere] to the plane.</div>
+		<div>Returns the signed distance from the [page:Sphere sphere] to the plane.</div>
 
 
 		<h3>[method:Boolean equals]( [page:Plane plane] )</h3>
 		<h3>[method:Boolean equals]( [page:Plane plane] )</h3>
 		<div>
 		<div>
@@ -113,8 +110,7 @@
 
 
 		<h3>[method:Plane negate]()</h3>
 		<h3>[method:Plane negate]()</h3>
 		<div>
 		<div>
-		Negates both the normal vector and constant, effectively mirroring the plane across
-		the origin.
+		Negates both the normal vector and the constant.
 		</div>
 		</div>
 
 
 		<h3>[method:Plane normalize]()</h3>
 		<h3>[method:Plane normalize]()</h3>
@@ -123,44 +119,31 @@
 			value accordingly.
 			value accordingly.
 		</div>
 		</div>
 
 
-		<h3>[method:Vector3 orthoPoint]( [page:Vector3 point], [page:Vector3 optionalTarget] )</h3>
-		<div>
-		[page:Vector3 point] - [page:Vector3] <br />
-		[page:Vector3 optionalTarget] - (optional) if specified, the result will be copied
-		into this [page:Vector3], otherwise a new [page:Vector3] will be created.<br /><br />
-
-		Returns a vector in the same direction as the Plane's normal, but with magnitude
-		equal to the passed point's original distance to the plane.
-		</div>
-
 		<h3>[method:Vector3 projectPoint]( [page:Vector3 point], [page:Vector3 optionalTarget] )</h3>
 		<h3>[method:Vector3 projectPoint]( [page:Vector3 point], [page:Vector3 optionalTarget] )</h3>
 		<div>
 		<div>
 		[page:Vector3 point] - the [page:Vector3] to project onto the plane.<br />
 		[page:Vector3 point] - the [page:Vector3] to project onto the plane.<br />
 		[page:Vector3 optionalTarget] - (optional) if specified, the result will be copied into this [page:Vector3],
 		[page:Vector3 optionalTarget] - (optional) if specified, the result will be copied into this [page:Vector3],
 		otherwise a new [page:Vector3] will be created.<br /><br />
 		otherwise a new [page:Vector3] will be created.<br /><br />
 
 
-		Projects a [page:Vector3 point] onto the plane. The projected point is the closest
-		 point on the plane to the passed point, so a line drawn from the projected point
-		 and the passed point would be orthogonal to the plane.
+		Projects a [page:Vector3 point] onto the plane.
 		</div>
 		</div>
 
 
 		<h3>[method:Plane set]( [page:Vector3 normal], [page:Float constant] )</h3>
 		<h3>[method:Plane set]( [page:Vector3 normal], [page:Float constant] )</h3>
 		<div>
 		<div>
-			[page:Vector3 normal] -  a [page:Vector3] defining the direction of the	plane.<br />
-			[page:Float constant] - (optional) the negative distance from the origin to the plane along
-			 the [page:Vector3 normal] vector. Default is *0*.<br /><br />
+			[page:Vector3 normal] - a unit length [page:Vector3] defining the normal of the plane.<br />
+			[page:Float constant] - the signed distance from the origin to the plane. Default is *0*.<br /><br />
 
 
 			 Sets the plane's [page:.normal normal] and [page:.constant constant] properties.
 			 Sets the plane's [page:.normal normal] and [page:.constant constant] properties.
 		</div>
 		</div>
 
 
 		<h3>[method:Plane setComponents]( [page:Float x], [page:Float y], [page:Float z], [page:Float w] )</h3>
 		<h3>[method:Plane setComponents]( [page:Float x], [page:Float y], [page:Float z], [page:Float w] )</h3>
 		<div>
 		<div>
-		[page:Float x] - x value of the normal vector.<br />
-		[page:Float y] - y value of the normal vector.<br />
-		[page:Float z] - z value of the normal vector.<br />
+		[page:Float x] - x value of the unit length normal vector.<br />
+		[page:Float y] - y value of the unit length normal vector.<br />
+		[page:Float z] - z value of the unit length normal vector.<br />
 		[page:Float w] - the value of the plane's [page:.constant constant] property.<br /><br />
 		[page:Float w] - the value of the plane's [page:.constant constant] property.<br /><br />
 
 
-		Set the individual components that make up the plane.
+		Set the individual components that define the plane.
 		</div>
 		</div>
 
 
 		<h3>[method:Plane setFromCoplanarPoints]( [page:Vector3 a], [page:Vector3 b], [page:Vector3 c] )</h3>
 		<h3>[method:Plane setFromCoplanarPoints]( [page:Vector3 a], [page:Vector3 b], [page:Vector3 c] )</h3>
@@ -169,13 +152,13 @@
 		 [page:Vector3 a] - second point on the plane.<br />
 		 [page:Vector3 a] - second point on the plane.<br />
 		 [page:Vector3 a] - third point on the plane.<br /><br />
 		 [page:Vector3 a] - third point on the plane.<br /><br />
 
 
-		Defines the plane based on the 3 provided points. The winding order is counter
-		clockwise, and determines which direction the [page:.normal normal] will point.
+		Defines the plane based on the 3 provided points. The winding order is assumed to be counter-clockwise,
+		and determines the direction of the [page:.normal normal].
 		</div>
 		</div>
 
 
 		<h3>[method:Plane setFromNormalAndCoplanarPoint]( [page:Vector3 normal], [page:Vector3 point] ) [page:Vector3 this]</h3>
 		<h3>[method:Plane setFromNormalAndCoplanarPoint]( [page:Vector3 normal], [page:Vector3 point] ) [page:Vector3 this]</h3>
 		<div>
 		<div>
-		[page:Vector3 normal] - a [page:Vector3] defining the direction of the plane.<br />
+		[page:Vector3 normal] - a unit length [page:Vector3] defining the normal of the plane.<br />
 		[page:Vector3 point] - [page:Vector3]<br /><br />
 		[page:Vector3 point] - [page:Vector3]<br /><br />
 
 
 		Sets the plane's properties as defined by a [page:Vector3 normal] and an arbitrary coplanar [page:Vector3 point].
 		Sets the plane's properties as defined by a [page:Vector3 normal] and an arbitrary coplanar [page:Vector3 point].
@@ -185,9 +168,8 @@
 		<div>
 		<div>
 		[page:Vector3 offset] - the amount to move the plane by.<br /><br />
 		[page:Vector3 offset] - the amount to move the plane by.<br /><br />
 
 
-		Translates the plane the distance defined by the [page:Vector3 offset] vector.
-		Note that this only affects	the constant (distance from origin) and will not affect
-		the normal vector.
+		Translates the plane by the distance defined by the [page:Vector3 offset] vector.
+		Note that this only affects the plane constant and will not affect the normal vector.
 		</div>
 		</div>
 
 
 		<h2>Source</h2>
 		<h2>Source</h2>

+ 1 - 1
docs/api/math/Sphere.html

@@ -84,7 +84,7 @@
 
 
 		<h3>[method:Box3 getBoundingBox]( [page:Box3 optionalTarget] )</h3>
 		<h3>[method:Box3 getBoundingBox]( [page:Box3 optionalTarget] )</h3>
 		<div>
 		<div>
-			[page:Box3 optionalTarget] - (optional) if specified, the result will be copied into this [page:Vector3], otherwise a new [page:Box3] will be created.<br /><br />
+			[page:Box3 optionalTarget] - (optional) if specified, the result will be copied into this [page:Box3], otherwise a new [page:Box3] will be created.<br /><br />
 
 
 			Returns a[link:https://en.wikipedia.org/wiki/Minimum_bounding_box Minimum Bounding Box] for the sphere.
 			Returns a[link:https://en.wikipedia.org/wiki/Minimum_bounding_box Minimum Bounding Box] for the sphere.
 		</div>
 		</div>

+ 7 - 2
docs/api/math/Vector2.html

@@ -97,6 +97,11 @@
 		Computes the angle in radians of this vector with respect to the positive x-axis.
 		Computes the angle in radians of this vector with respect to the positive x-axis.
 		</div>
 		</div>
 
 
+		<h3>[method:Vector2 applyMatrix3]( [page:Matrix3 m] )</h3>
+		<div>
+		Multiplies this vector (with an implicit 1 as the 3rd component) by m.
+		</div>
+
 		<h3>[method:Vector2 ceil]()</h3>
 		<h3>[method:Vector2 ceil]()</h3>
 		<div>
 		<div>
 		The [page:.x x] and [page:.y y] components of the vector are rounded up to the nearest integer value.
 		The [page:.x x] and [page:.y y] components of the vector are rounded up to the nearest integer value.
@@ -143,7 +148,7 @@
 		<h3>[method:Float distanceTo]( [page:Vector2 v] )</h3>
 		<h3>[method:Float distanceTo]( [page:Vector2 v] )</h3>
 		<div>Computes the distance from this vector to [page:Vector2 v].</div>
 		<div>Computes the distance from this vector to [page:Vector2 v].</div>
 
 
-		<h3>[method:Float distanceToManhattan]( [page:Vector2 v] )</h3>
+		<h3>[method:Float manhattanDistanceTo]( [page:Vector2 v] )</h3>
 		<div>
 		<div>
 		Computes the [link:https://en.wikipedia.org/wiki/Taxicab_geometry Manhattan distance] from this vector to [page:Vector2 v].
 		Computes the [link:https://en.wikipedia.org/wiki/Taxicab_geometry Manhattan distance] from this vector to [page:Vector2 v].
 		</div>
 		</div>
@@ -204,7 +209,7 @@
 		<div>Computes the [link:https://en.wikipedia.org/wiki/Euclidean_distance Euclidean length]
 		<div>Computes the [link:https://en.wikipedia.org/wiki/Euclidean_distance Euclidean length]
 		(straight-line length) from (0, 0) to (x, y).</div>
 		(straight-line length) from (0, 0) to (x, y).</div>
 
 
-		<h3>[method:Float lengthManhattan]()</h3>
+		<h3>[method:Float manhattanLength]()</h3>
 		<div>
 		<div>
 		Computes the [link:http://en.wikipedia.org/wiki/Taxicab_geometry Manhattan length] of this vector.
 		Computes the [link:http://en.wikipedia.org/wiki/Taxicab_geometry Manhattan length] of this vector.
 		</div>
 		</div>

+ 3 - 3
docs/api/math/Vector3.html

@@ -178,7 +178,7 @@ var d = a.distanceTo( b );
 		<h3>[method:Float distanceTo]( [page:Vector3 v] )</h3>
 		<h3>[method:Float distanceTo]( [page:Vector3 v] )</h3>
 		<div>Computes the distance from this vector to [page:Vector3 v].</div>
 		<div>Computes the distance from this vector to [page:Vector3 v].</div>
 
 
-		<h3>[method:Float distanceToManhattan]( [page:Vector3 v] )</h3>
+		<h3>[method:Float manhattanDistanceTo]( [page:Vector3 v] )</h3>
 		<div>
 		<div>
 		Computes the [link:https://en.wikipedia.org/wiki/Taxicab_geometry Manhattan distance] from this vector to [page:Vector3 v].
 		Computes the [link:https://en.wikipedia.org/wiki/Taxicab_geometry Manhattan distance] from this vector to [page:Vector3 v].
 		</div>
 		</div>
@@ -241,7 +241,7 @@ var d = a.distanceTo( b );
 		<div>Computes the [link:https://en.wikipedia.org/wiki/Euclidean_distance Euclidean length]
 		<div>Computes the [link:https://en.wikipedia.org/wiki/Euclidean_distance Euclidean length]
 		(straight-line length) from (0, 0, 0) to (x, y, z).</div>
 		(straight-line length) from (0, 0, 0) to (x, y, z).</div>
 
 
-		<h3>[method:Float lengthManhattan]()</h3>
+		<h3>[method:Float manhattanLength]()</h3>
 		<div>
 		<div>
 		Computes the [link:http://en.wikipedia.org/wiki/Taxicab_geometry Manhattan length] of this vector.
 		Computes the [link:http://en.wikipedia.org/wiki/Taxicab_geometry Manhattan length] of this vector.
 		</div>
 		</div>
@@ -301,7 +301,7 @@ var d = a.distanceTo( b );
 		<div>Multiplies this vector by scalar [page:Float s].</div>
 		<div>Multiplies this vector by scalar [page:Float s].</div>
 
 
 		<h3>[method:Vector3 multiplyVectors]( [page:Vector3 a], [page:Vector3 b] )</h3>
 		<h3>[method:Vector3 multiplyVectors]( [page:Vector3 a], [page:Vector3 b] )</h3>
-		<div>Sets this vector equal to [page:Vector3 a] x [page:Vector3 b].</div>
+		<div>Sets this vector equal to [page:Vector3 a] * [page:Vector3 b], component-wise.</div>
 
 
 		<h3>[method:Vector3 project]( [page:Camera camera] )</h3>
 		<h3>[method:Vector3 project]( [page:Camera camera] )</h3>
 		<div>
 		<div>

+ 13 - 4
docs/api/math/Vector4.html

@@ -110,6 +110,15 @@ var d = a.dot( b );
 		If this vector's x, y, z or w value is less than the min vector's x, y, z or w value, it is replaced by the corresponding value.
 		If this vector's x, y, z or w value is less than the min vector's x, y, z or w value, it is replaced by the corresponding value.
 		</div>
 		</div>
 
 
+		<h3>[method:Vector4 clampLength]( [page:Float min], [page:Float max] )</h3>
+		<div>
+		[page:Float min] - the minimum value the length will be clamped to <br />
+		[page:Float max] - the maximum value the length will be clamped to<br /><br />
+
+		If this vector's length is greater than the max value, it is replaced by the max value. <br /><br />
+		If this vector's length is less than the min value, it is replaced by the min value.
+		</div>
+
 		<h3>[method:Vector4 clampScalar]( [page:Float min], [page:Float max] )</h3>
 		<h3>[method:Vector4 clampScalar]( [page:Float min], [page:Float max] )</h3>
 		<div>
 		<div>
 		[page:Float min] - the minimum value the components will be clamped to <br />
 		[page:Float min] - the minimum value the components will be clamped to <br />
@@ -167,7 +176,7 @@ var d = a.dot( b );
 
 
 		<h3>[method:Float getComponent]( [page:Integer index] )</h3>
 		<h3>[method:Float getComponent]( [page:Integer index] )</h3>
 		<div>
 		<div>
-		[page:Integer index] - 0, 1 or 2.<br /><br />
+		[page:Integer index] - 0, 1, 2 or 3.<br /><br />
 
 
 		If index equals 0 returns the [page:.x x] value. <br />
 		If index equals 0 returns the [page:.x x] value. <br />
 		If index equals 1 returns the [page:.y y] value. <br />
 		If index equals 1 returns the [page:.y y] value. <br />
@@ -179,7 +188,7 @@ var d = a.dot( b );
 		<div>Computes the [link:https://en.wikipedia.org/wiki/Euclidean_distance Euclidean length]
 		<div>Computes the [link:https://en.wikipedia.org/wiki/Euclidean_distance Euclidean length]
 		(straight-line length) from (0, 0, 0, 0) to (x, y, z, w).</div>
 		(straight-line length) from (0, 0, 0, 0) to (x, y, z, w).</div>
 
 
-		<h3>[method:Float lengthManhattan]()</h3>
+		<h3>[method:Float manhattanLength]()</h3>
 		<div>
 		<div>
 		Computes the [link:http://en.wikipedia.org/wiki/Taxicab_geometry Manhattan length] of this vector.
 		Computes the [link:http://en.wikipedia.org/wiki/Taxicab_geometry Manhattan length] of this vector.
 		</div>
 		</div>
@@ -222,13 +231,13 @@ var d = a.dot( b );
 
 
 		<h3>[method:Vector4 max]( [page:Vector4 v] )</h3>
 		<h3>[method:Vector4 max]( [page:Vector4 v] )</h3>
 		<div>
 		<div>
-		If this vector's x, y, z or w value is less than [page:Vector4 v's] x, y, z or w value, replace
+		If this vector's x, y, z or w value is less than [page:Vector4 v]'s x, y, z or w value, replace
 		that value with the corresponding max value.
 		that value with the corresponding max value.
 		</div>
 		</div>
 
 
 		<h3>[method:Vector4 min]( [page:Vector4 v] )</h3>
 		<h3>[method:Vector4 min]( [page:Vector4 v] )</h3>
 		<div>
 		<div>
-		If this vector's x, y, z or w value is greater than [page:Vector4 v's] x, y, z or w value, replace
+		If this vector's x, y, z or w value is greater than [page:Vector4 v]'s x, y, z or w value, replace
 		that value with the corresponding min value.
 		that value with the corresponding min value.
 		</div>
 		</div>
 
 

+ 2 - 2
docs/api/objects/Group.html

@@ -13,7 +13,7 @@
 		<h1>[name]</h1>
 		<h1>[name]</h1>
 
 
 		<div class="desc">
 		<div class="desc">
-			This is almost identical to an [page:Object3D Object3D]. It's purpose is to make working
+			This is almost identical to an [page:Object3D Object3D]. Its purpose is to make working
 			with groups of objects syntactically clearer.
 			with groups of objects syntactically clearer.
 		</div>
 		</div>
 
 
@@ -28,7 +28,7 @@
 		cubeA.position.set( 100, 100, 0 );
 		cubeA.position.set( 100, 100, 0 );
 
 
 		var cubeB = new THREE.Mesh( geometry, material );
 		var cubeB = new THREE.Mesh( geometry, material );
-		cubeA.position.set( -100, -100, 0 );
+		cubeB.position.set( -100, -100, 0 );
 
 
 		//create a group and add the two cubes
 		//create a group and add the two cubes
 		//These cubes can now be rotated / scaled etc as a group
 		//These cubes can now be rotated / scaled etc as a group

+ 1 - 1
docs/api/objects/Mesh.html

@@ -14,7 +14,7 @@
 
 
 		<div class="desc">
 		<div class="desc">
 			Class representing triangular [link:https://en.wikipedia.org/wiki/Polygon_mesh polygon mesh] based objects.
 			Class representing triangular [link:https://en.wikipedia.org/wiki/Polygon_mesh polygon mesh] based objects.
-		  Also serves as a base for other classes such as [page:MorphBlendMesh] and [page:SkinnedMesh].
+		  Also serves as a base for other classes such as [page:SkinnedMesh].
 		</div>
 		</div>
 
 
 
 

部分文件因文件數量過多而無法顯示