Browse Source

Merge branch 'dev' of https://github.com/mrdoob/three.js into fix/13180

# Conflicts:
#	examples/js/loaders/FBXLoader.js
andts 7 years ago
parent
commit
f57df83cda
100 changed files with 2036 additions and 2095 deletions
  1. 3 0
      .gitattributes
  2. 15 12
      .github/ISSUE_TEMPLATE.md
  3. 1 0
      .gitignore
  4. 1 1
      LICENSE
  5. 58 54
      build/three.js
  6. 0 381
      build/three.min.js
  7. 57 53
      build/three.module.js
  8. 7 4
      docs/api/audio/Audio.html
  9. 10 7
      docs/api/audio/AudioAnalyser.html
  10. 11 8
      docs/api/audio/AudioListener.html
  11. 13 9
      docs/api/audio/PositionalAudio.html
  12. 1 1
      docs/api/cameras/OrthographicCamera.html
  13. 0 2
      docs/api/constants/Renderer.html
  14. 1 1
      docs/api/core/BufferGeometry.html
  15. 0 3
      docs/api/core/DirectGeometry.html
  16. 99 99
      docs/api/core/EventDispatcher.html
  17. 2 2
      docs/api/core/Geometry.html
  18. 20 5
      docs/api/core/InterleavedBuffer.html
  19. 20 35
      docs/api/core/InterleavedBufferAttribute.html
  20. 15 8
      docs/api/deprecated/DeprecatedList.html
  21. 31 0
      docs/api/extras/Earcut.html
  22. 2 36
      docs/api/extras/ShapeUtils.html
  23. 12 0
      docs/api/extras/core/Curve.html
  24. 20 15
      docs/api/extras/core/Path.html
  25. 16 6
      docs/api/extras/core/Shape.html
  26. 11 8
      docs/api/extras/curves/CatmullRomCurve3.html
  27. 7 7
      docs/api/extras/curves/EllipseCurve.html
  28. 71 71
      docs/api/extras/curves/SplineCurve.html
  29. 2 2
      docs/api/geometries/CircleBufferGeometry.html
  30. 4 4
      docs/api/geometries/ConeBufferGeometry.html
  31. 1 1
      docs/api/geometries/ConeGeometry.html
  32. 6 6
      docs/api/geometries/CylinderBufferGeometry.html
  33. 2 2
      docs/api/geometries/CylinderGeometry.html
  34. 1 1
      docs/api/geometries/ExtrudeBufferGeometry.html
  35. 4 4
      docs/api/geometries/RingBufferGeometry.html
  36. 2 2
      docs/api/geometries/SphereBufferGeometry.html
  37. 2 3
      docs/api/geometries/TextBufferGeometry.html
  38. 160 161
      docs/api/geometries/TextGeometry.html
  39. 3 3
      docs/api/geometries/TorusBufferGeometry.html
  40. 2 2
      docs/api/geometries/TorusGeometry.html
  41. 3 3
      docs/api/geometries/TorusKnotBufferGeometry.html
  42. 2 2
      docs/api/geometries/TorusKnotGeometry.html
  43. 104 104
      docs/api/geometries/TubeBufferGeometry.html
  44. 104 104
      docs/api/geometries/TubeGeometry.html
  45. 97 97
      docs/api/helpers/ArrowHelper.html
  46. 2 2
      docs/api/helpers/AxesHelper.html
  47. 1 1
      docs/api/lights/DirectionalLight.html
  48. 2 2
      docs/api/lights/PointLight.html
  49. 8 67
      docs/api/lights/RectAreaLight.html
  50. 2 2
      docs/api/lights/SpotLight.html
  51. 2 2
      docs/api/lights/shadows/DirectionalLightShadow.html
  52. 7 3
      docs/api/lights/shadows/SpotLightShadow.html
  53. 7 4
      docs/api/loaders/AnimationLoader.html
  54. 7 4
      docs/api/loaders/AudioLoader.html
  55. 8 5
      docs/api/loaders/BufferGeometryLoader.html
  56. 1 1
      docs/api/loaders/Cache.html
  57. 12 8
      docs/api/loaders/CubeTextureLoader.html
  58. 24 24
      docs/api/loaders/FileLoader.html
  59. 8 7
      docs/api/loaders/FontLoader.html
  60. 105 0
      docs/api/loaders/ImageBitmapLoader.html
  61. 12 25
      docs/api/loaders/ImageLoader.html
  62. 10 4
      docs/api/loaders/JSONLoader.html
  63. 0 8
      docs/api/loaders/Loader.html
  64. 38 0
      docs/api/loaders/LoaderUtils.html
  65. 8 5
      docs/api/loaders/MaterialLoader.html
  66. 22 22
      docs/api/loaders/ObjectLoader.html
  67. 11 8
      docs/api/loaders/TextureLoader.html
  68. 39 0
      docs/api/loaders/managers/LoadingManager.html
  69. 37 4
      docs/api/materials/Material.html
  70. 1 1
      docs/api/materials/MeshPhongMaterial.html
  71. 9 2
      docs/api/math/Box3.html
  72. 1 1
      docs/api/math/Color.html
  73. 2 3
      docs/api/math/Matrix4.html
  74. 2 2
      docs/api/math/Plane.html
  75. 1 1
      docs/api/math/Ray.html
  76. 1 1
      docs/api/math/Sphere.html
  77. 8 1
      docs/api/math/Triangle.html
  78. 1 1
      docs/api/math/Vector3.html
  79. 1 1
      docs/api/math/Vector4.html
  80. 0 129
      docs/api/objects/LensFlare.html
  81. 2 2
      docs/api/objects/Mesh.html
  82. 1 1
      docs/api/objects/Points.html
  83. 90 79
      docs/api/objects/Sprite.html
  84. 134 134
      docs/api/renderers/WebGLRenderTarget.html
  85. 70 70
      docs/api/renderers/WebGLRenderTargetCube.html
  86. 21 33
      docs/api/renderers/WebGLRenderer.html
  87. 49 49
      docs/api/scenes/Fog.html
  88. 2 2
      docs/api/scenes/FogExp2.html
  89. 27 0
      docs/api/textures/DataTexture.html
  90. 1 1
      docs/api/textures/Texture.html
  91. 1 5
      docs/api/textures/VideoTexture.html
  92. 2 0
      docs/examples/exporters/GLTFExporter.html
  93. 25 20
      docs/examples/loaders/GLTFLoader.html
  94. 12 11
      docs/examples/loaders/LoaderSupport.html
  95. 6 5
      docs/examples/loaders/MTLLoader.html
  96. 1 1
      docs/examples/loaders/OBJLoader.html
  97. 1 1
      docs/examples/loaders/OBJLoader2.html
  98. 108 0
      docs/examples/loaders/PRWMLoader.html
  99. 73 0
      docs/examples/objects/LensFlare.html
  100. 7 1
      docs/examples/renderers/CanvasRenderer.html

+ 3 - 0
.gitattributes

@@ -0,0 +1,3 @@
+# Set the default behavior, in case people don't have core.autocrlf set.
+* text=auto
+

+ 15 - 12
.github/ISSUE_TEMPLATE.md

@@ -1,20 +1,25 @@
-##### Description of the problem 
+##### Description of the problem
 
 
-This form is for three.js bug reports and feature requests only.  
-This is NOT a help site. Do not ask help questions here.  
-If you need help, please use [stackoverflow](http://stackoverflow.com/questions/tagged/three.js).
+This form is for three.js bug reports and feature requests only.
 
 
-Describe the bug or feature request in detail.  
-A code snippet, screenshot, and small-test help us understand.
+This is NOT a help site. Do not ask help questions here.
+If you need help, please use the [forum](https://discourse.threejs.org/) or [stackoverflow](http://stackoverflow.com/questions/tagged/three.js).
 
 
-You can edit for small-test.  
-http://jsfiddle.net/akmcv7Lh/ (current revision)  
-http://jsfiddle.net/hw9rcLL8/ (dev)
+Describe the bug or feature request in detail.
+
+Always include a code snippet, screenshots, and any relevant models or textures to help us understand your issue.
+
+Please also include a live example if possible. You can start from these templates:
+
+* [jsfiddle](https://jsfiddle.net/s3rjfcc3/) (latest release branch)
+* [jsfiddle](https://jsfiddle.net/ptgwhemb/) (dev branch)
+* [codepen](https://codepen.io/anon/pen/aEBKxR) (latest release branch)
+* [codepen](https://codepen.io/anon/pen/BJWzaN) (dev branch)
 
 
 ##### Three.js version
 ##### Three.js version
 
 
 - [ ] Dev
 - [ ] Dev
-- [ ] r87
+- [ ] r89
 - [ ] ...
 - [ ] ...
 
 
 ##### Browser
 ##### Browser
@@ -34,5 +39,3 @@ http://jsfiddle.net/hw9rcLL8/ (dev)
 - [ ] iOS
 - [ ] iOS
 
 
 ##### Hardware Requirements (graphics card, VR Device, ...)
 ##### Hardware Requirements (graphics card, VR Device, ...)
-
-

+ 1 - 0
.gitignore

@@ -6,3 +6,4 @@ node_modules
 .vscode/
 .vscode/
 npm-debug.log
 npm-debug.log
 .jshintrc
 .jshintrc
+.vs/

+ 1 - 1
LICENSE

@@ -1,6 +1,6 @@
 The MIT License
 The MIT License
 
 
-Copyright © 2010-2017 three.js authors
+Copyright © 2010-2018 three.js authors
 
 
 Permission is hereby granted, free of charge, to any person obtaining a copy
 Permission is hereby granted, free of charge, to any person obtaining a copy
 of this software and associated documentation files (the "Software"), to deal
 of this software and associated documentation files (the "Software"), to deal

File diff suppressed because it is too large
+ 58 - 54
build/three.js


File diff suppressed because it is too large
+ 0 - 381
build/three.min.js


File diff suppressed because it is too large
+ 57 - 53
build/three.module.js


+ 7 - 4
docs/api/audio/Audio.html

@@ -21,18 +21,21 @@
 
 
 		<h2>Example</h2>
 		<h2>Example</h2>
 
 
-		<div>[example:misc_sound misc / sound ]</div>
+		<div>
+			[example:webaudio_sandbox webaudio / sandbox ]</br>
+			[example:webaudio_visualizer webaudio / visualizer ]
+		</div>
+
 		<code>
 		<code>
-		//Create an AudioListener and add it to the camera
+		// create an AudioListener and add it to the camera
 		var listener = new THREE.AudioListener();
 		var listener = new THREE.AudioListener();
 		camera.add( listener );
 		camera.add( listener );
 
 
 		// create a global audio source
 		// create a global audio source
 		var sound = new THREE.Audio( listener );
 		var sound = new THREE.Audio( listener );
 
 
+		// load a sound and set it as the Audio object's buffer
 		var audioLoader = new THREE.AudioLoader();
 		var audioLoader = new THREE.AudioLoader();
-
-		//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.setLoop( true );

+ 10 - 7
docs/api/audio/AudioAnalyser.html

@@ -21,18 +21,21 @@
 
 
 		<h2>Example</h2>
 		<h2>Example</h2>
 
 
-		<div>[example:misc_sound misc / sound ]</div>
+		<div>
+			[example:webaudio_sandbox webaudio / sandbox ]</br>
+			[example:webaudio_visualizer webaudio / visualizer ]
+		</div>
+
 		<code>
 		<code>
-		//Create an AudioListener and add it to the camera
+		// create an AudioListener and add it to the camera
 		var listener = new THREE.AudioListener();
 		var listener = new THREE.AudioListener();
 		camera.add( listener );
 		camera.add( listener );
 
 
 		// create an Audio source
 		// create an Audio source
 		var sound = new THREE.Audio( listener );
 		var sound = new THREE.Audio( listener );
 
 
+		// load a sound and set it as the Audio object's buffer
 		var audioLoader = new THREE.AudioLoader();
 		var audioLoader = new THREE.AudioLoader();
-
-		//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.setLoop(true);
@@ -40,11 +43,11 @@
 			sound.play();
 			sound.play();
 		});
 		});
 
 
-		//Create an AudioAnalyser, passing in the sound and desired fftSize
+		// create an AudioAnalyser, passing in the sound and desired fftSize
 		var analyser = new THREE.AudioAnalyser( sound, 32 );
 		var analyser = new THREE.AudioAnalyser( sound, 32 );
 
 
-		//Get the average frequency of the sound
-		analyser.getAverageFrequency();
+		// get the average frequency of the sound
+		var data = analyser.getAverageFrequency();
 		</code>
 		</code>
 
 
 
 

+ 11 - 8
docs/api/audio/AudioListener.html

@@ -13,27 +13,30 @@
 		<h1>[name]</h1>
 		<h1>[name]</h1>
 
 
 		<div class="desc">
 		<div class="desc">
-			Create a non-positional ( global ) audio object.<br /><br />
-
-			This uses the [link:https://developer.mozilla.org/en-US/docs/Web/API/Web_Audio_API Web Audio API].
-
+			The [name] represents a virtual [link:https://developer.mozilla.org/de/docs/Web/API/AudioListener listener] of the all positional and non-positional audio effects in the scene.</br>
+			A three.js application usually creates a single instance of [name]. It is a mandatory construtor parameter for audios entities like [page:Audio Audio] and [page:PositionalAudio PositionalAudio].</br>
+			In most cases, the listener object is a child of the camera. So the 3D transformation of the camera represents the 3D transformation of the listener.
 		</div>
 		</div>
 
 
 
 
 		<h2>Example</h2>
 		<h2>Example</h2>
 
 
-		<div>[example:misc_sound misc / sound ]</div>
+		<div>
+			[example:webaudio_sandbox webaudio / sandbox ]</br>
+			[example:webaudio_timing webaudio / timing ]</br>
+			[example:webaudio_visualizer webaudio / visualizer ]
+		</div>
+
 		<code>
 		<code>
-		//Create an AudioListener and add it to the camera
+		// create an AudioListener and add it to the camera
 		var listener = new THREE.AudioListener();
 		var listener = new THREE.AudioListener();
 		camera.add( listener );
 		camera.add( listener );
 
 
 		// create a global audio source
 		// create a global audio source
 		var sound = new THREE.Audio( listener );
 		var sound = new THREE.Audio( listener );
 
 
+		// load a sound and set it as the Audio object's buffer
 		var audioLoader = new THREE.AudioLoader();
 		var audioLoader = new THREE.AudioLoader();
-
-		//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.setLoop(true);

+ 13 - 9
docs/api/audio/PositionalAudio.html

@@ -21,30 +21,34 @@
 
 
 		<h2>Example</h2>
 		<h2>Example</h2>
 
 
-		<div>[example:misc_sound misc / sound ]</div>
+		<div>
+			[example:webaudio_sandbox webaudio / sandbox ]</br>
+			[example:webaudio_timing webaudio / timing ]
+		</div>
+
 		<code>
 		<code>
-		//Create an AudioListener and add it to the camera
+		// create an AudioListener and add it to the camera
 		var listener = new THREE.AudioListener();
 		var listener = new THREE.AudioListener();
 		camera.add( listener );
 		camera.add( listener );
 
 
-		//Create the PositionalAudio object (passing in the listener)
+		// create the PositionalAudio object (passing in the listener)
 		var sound = new THREE.PositionalAudio( listener );
 		var sound = new THREE.PositionalAudio( listener );
 
 
-		//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
 		var sphere = new THREE.SphereGeometry( 20, 32, 16 );
 		var sphere = new THREE.SphereGeometry( 20, 32, 16 );
 		var material = new THREE.MeshPhongMaterial( { color: 0xff2200 } );
 		var material = new THREE.MeshPhongMaterial( { color: 0xff2200 } );
 		var mesh = new THREE.Mesh( sphere, material );
 		var mesh = new THREE.Mesh( sphere, material );
 		scene.add( mesh );
 		scene.add( mesh );
 
 
-		//Finally add the sound to the mesh
+		// finally add the sound to the mesh
 		mesh.add( sound );
 		mesh.add( sound );
 		</code>
 		</code>
 
 

+ 1 - 1
docs/api/cameras/OrthographicCamera.html

@@ -59,7 +59,7 @@ scene.add( camera );</code>
 		<h2>Properties</h2>
 		<h2>Properties</h2>
 		<div>
 		<div>
 			See the base [page:Camera] class for common properties.<br>
 			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 
+ 			Note that after making changes to most of these properties you will have to call 
  			[page:OrthographicCamera.updateProjectionMatrix .updateProjectionMatrix] for the changes to take effect.
  			[page:OrthographicCamera.updateProjectionMatrix .updateProjectionMatrix] for the changes to take effect.
 		</div>
 		</div>
 
 

+ 0 - 2
docs/api/constants/Renderer.html

@@ -18,7 +18,6 @@
 		THREE.CullFaceFrontBack
 		THREE.CullFaceFrontBack
 		</code>
 		</code>
 		<div>
 		<div>
-		These are used by the WebGLRenderer's [page:WebGLRenderer.setFaceCulling setFaceCulling] method.<br /><br />
 		[page:constant CullFaceNone] disables face culling.<br />
 		[page:constant CullFaceNone] disables face culling.<br />
 		[page:constant CullFaceBack] culls back faces (default).<br />
 		[page:constant CullFaceBack] culls back faces (default).<br />
 		[page:constant CullFaceFront] culls front faces.<br />
 		[page:constant CullFaceFront] culls front faces.<br />
@@ -31,7 +30,6 @@
 		THREE.FrontFaceDirectionCCW
 		THREE.FrontFaceDirectionCCW
 		</code>
 		</code>
 		<div>
 		<div>
-		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 FrontFaceDirectionCCW] 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>

+ 1 - 1
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>
 
 

+ 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>

+ 2 - 2
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];

+ 20 - 5
docs/api/core/InterleavedBuffer.html

@@ -11,21 +11,32 @@
 		<h1>[name]</h1>
 		<h1>[name]</h1>
 
 
 		<div class="desc">
 		<div class="desc">
+			"Interleaved" means that multiple attributes, possibly of different types, (e.g., position, normal, uv, color) are packed into a single array buffer.
+			<br/><br/>
+			An introduction into interleaved arrays can be found here: [link:https://blog.tojicode.com/2011/05/interleaved-array-basics.html Interleaved array basics]
 		</div>
 		</div>
 
 
+		<h2>Example</h2>
+
+		<div>[example:webgl_buffergeometry_points_interleaved webgl / buffergeometry / points / interleaved]</div>
+
 		<h2>Constructor</h2>
 		<h2>Constructor</h2>
 		<h3>[name]( [page:TypedArray array], [page:Integer stride] )</h3>
 		<h3>[name]( [page:TypedArray array], [page:Integer stride] )</h3>
 		<div>
 		<div>
+			[page:TypedArray array] -- A typed array with a shared buffer. Stores the geometry data.<br/>
+			[page:Integer stride] -- The number of typed-array elements per vertex.
 		</div>
 		</div>
 
 
 		<h2>Properties</h2>
 		<h2>Properties</h2>
 
 
 		<h3>[property:Array array]</h3>
 		<h3>[property:Array array]</h3>
 		<div>
 		<div>
+			 A typed array with a shared buffer. Stores the geometry data.
 		</div>
 		</div>
 
 
 		<h3>[property:Integer stride]</h3>
 		<h3>[property:Integer stride]</h3>
 		<div>
 		<div>
+			The number of typed-array elements per vertex.
 		</div>
 		</div>
 
 
 		<h3>[property:Integer count]</h3>
 		<h3>[property:Integer count]</h3>
@@ -45,7 +56,7 @@
 
 
 		<h3>[property:Number updateRange.offset]</h3>
 		<h3>[property:Number updateRange.offset]</h3>
 		<div>
 		<div>
-		DEfault is *0*.
+		Default is *0*.
 		</div>
 		</div>
 
 
 		<h3>[property:Number updateRange.count]</h3>
 		<h3>[property:Number updateRange.count]</h3>
@@ -82,19 +93,23 @@
 
 
 		<h3>[method:InterleavedBuffer copy]( source ) </h3>
 		<h3>[method:InterleavedBuffer copy]( source ) </h3>
 		<div>
 		<div>
-		 Copy the array, count, stride and value of dynamic to this.
+		 Copies another [name] to this [name].
 		</div>
 		</div>
 
 
 		<h3>[method:InterleavedBuffer copyAt]( index1, attribute, index2 ) </h3>
 		<h3>[method:InterleavedBuffer copyAt]( index1, attribute, index2 ) </h3>
-		<div>
-		</div>
+		<div>Copies data from attribute[index2] to [page:InterleavedBuffer.array array][index1].</div>
 
 
 		<h3>[method:InterleavedBuffer set]( value, offset ) </h3>
 		<h3>[method:InterleavedBuffer set]( value, offset ) </h3>
 		<div>
 		<div>
+			value - The source (typed) array.<br/>
+			offset - The offset into the target array at which to begin writing values from the source array. Default is *0*.<br/><br />
+
+			Stores multiple values in the buffer, reading input values from a specified array.
 		</div>
 		</div>
 
 
-		<h3>[method:InterleavedBuffer clone]( index, x, y ) </h3>
+		<h3>[method:InterleavedBuffer clone]() </h3>
 		<div>
 		<div>
+			Creates a clone of this [name].
 		</div>
 		</div>
 
 
 		<h2>Source</h2>
 		<h2>Source</h2>

+ 20 - 35
docs/api/core/InterleavedBufferAttribute.html

@@ -36,16 +36,18 @@
 		<div>
 		<div>
 			The value of [page:InterleavedBufferAttribute.data data].count.
 			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.
+			If the buffer is storing a 3-component item (such as a position, normal, or color),
+			then this will count the number of such items stored.
 		</div>
 		</div>
 
 
 		<h3>[property:Integer itemSize]</h3>
 		<h3>[property:Integer itemSize]</h3>
 		<div>
 		<div>
+			How many values make up each item.
 		</div>
 		</div>
 
 
 		<h3>[property:Integer offset]</h3>
 		<h3>[property:Integer offset]</h3>
 		<div>
 		<div>
+			The offset in the underlying array buffer where an item starts.
 		</div>
 		</div>
 
 
 		<h3>[property:Boolean normalized]</h3>
 		<h3>[property:Boolean normalized]</h3>
@@ -60,55 +62,38 @@
 
 
 		<h2>Methods</h2>
 		<h2>Methods</h2>
 
 
-		<h3>[method:null getX]( index ) </h3>
-		<div>
-
-		</div>
-
-		<h3>[method:null getY]( index ) </h3>
-		<div>
+		<h3>[method:Number getX]( index ) </h3>
+		<div>Returns the x component of the item at the given index.</div>
 
 
-		</div>
+		<h3>[method:Number getY]( index ) </h3>
+		<div>Returns the y component of the item at the given index.</div>
 
 
-		<h3>[method:null getZ]( index ) </h3>
-		<div>
+		<h3>[method:Number getZ]( index ) </h3>
+		<div>Returns the z component of the item at the given index.</div>
 
 
-		</div>
-
-		<h3>[method:null getW]( index ) </h3>
-		<div>
-
-		</div>
+		<h3>[method:Number getW]( index ) </h3>
+		<div>Returns the w component of the item at the given index.</div>
 
 
 		<h3>[method:null setX]( index, x ) </h3>
 		<h3>[method:null setX]( index, x ) </h3>
-		<div>
-
-		</div>
+		<div>Sets the x component of the item at the given index.</div>
 
 
 		<h3>[method:null setY]( index, y ) </h3>
 		<h3>[method:null setY]( index, y ) </h3>
-		<div>
-
-		</div>
+		<div>Sets the y component of the item at the given index.</div>
 
 
 		<h3>[method:null setZ]( index, z ) </h3>
 		<h3>[method:null setZ]( index, z ) </h3>
-		<div>
+		<div>Sets the z component of the item at the given index.</div>
 
 
-		</div>
+		<h3>[method:null setW]( index, w ) </h3>
+		<div>Sets the w component of the item at the given index.</div>
 
 
 		<h3>[method:null setXY]( index, x, y ) </h3>
 		<h3>[method:null setXY]( index, x, y ) </h3>
-		<div>
-
-		</div>
+		<div>Sets the x and y components of the item at the given index.</div>
 
 
 		<h3>[method:null setXYZ]( index, x, y, z ) </h3>
 		<h3>[method:null setXYZ]( index, x, y, z ) </h3>
-		<div>
-
-		</div>
+		<div>Sets the x, y and z components of the item at the given index.</div>
 
 
 		<h3>[method:null setXYZW]( index, x, y, z, w ) </h3>
 		<h3>[method:null setXYZW]( index, x, y, z, w ) </h3>
-		<div>
-
-		</div>
+		<div>Sets the x, y, z and w components of the item at the given index.</div>
 
 
 
 
 
 

+ 15 - 8
docs/api/deprecated/DeprecatedList.html

@@ -456,9 +456,14 @@
 			Object3D.useQuaternion has been removed. The library now uses quaternions by default.
 			Object3D.useQuaternion has been removed. The library now uses quaternions by default.
 		</div>
 		</div>
 
 
+		<h3>[page:LensFlare]</h3>
+		<div>
+			LensFlare has been moved to [link:https://github.com/mrdoob/three.js/blob/master/examples/js/objects/LensFlare.js /examples/js/objects/LensFlare.js].
+		</div>
+
 
 
 		<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>
@@ -534,15 +539,22 @@
 
 
 			WebGLRenderer.updateShadowMap() has been removed.<br /><br />
 			WebGLRenderer.updateShadowMap() has been removed.<br /><br />
 
 
+			WebGLRenderer.setFaceCulling() has been removed.<br /><br />
+
 			WebGLRenderer.setTexture is deprecated, use [page:WebGLRenderer.setTexture2D]() instead.<br /><br />
 			WebGLRenderer.setTexture is deprecated, use [page:WebGLRenderer.setTexture2D]() instead.<br /><br />
 
 
 			WebGLRenderer.shadowMapEnabled is now [page:WebGLRenderer.shadowMap.enabled].<br /><br />
 			WebGLRenderer.shadowMapEnabled is now [page:WebGLRenderer.shadowMap.enabled].<br /><br />
 
 
 			WebGLRenderer.shadowMapType is now [page:WebGLRenderer.shadowMap.type].<br /><br />
 			WebGLRenderer.shadowMapType is now [page:WebGLRenderer.shadowMap.type].<br /><br />
 
 
-			WebGLRenderer.shadowMapCullFace is now [page:WebGLRenderer.shadowMap.cullFace].<br /><br />
+			WebGLRenderer.shadowMapCullFace has been removed. Set [page:Material.shadowSide] instead.<br /><br />
+
+			WebGLRenderer.shadowMap.cullFace has been removed. Set [page:Material.shadowSide] instead.<br /><br />
+
+			WebGLRenderer.shadowMap.renderReverseSided has been removed. Set [page:Material.shadowSide] instead.<br /><br />
+
+			WebGLRenderer.shadowMap.renderSingleSided has been removed. Set [page:Material.shadowSide] instead.
 
 
-			WebGLRenderer.shadowMap.cullFace is deprecated. Set [page:WebGLRenderer.shadowMap.renderReverseSided] to true or false instead.
 		</div>
 		</div>
 
 
 		<h3>[page:WebGLRenderTarget]</h3>
 		<h3>[page:WebGLRenderTarget]</h3>
@@ -569,11 +581,6 @@
 		</div>
 		</div>
 
 
 
 
-
-
-
-
-
 		<h2>Textures</h2>
 		<h2>Textures</h2>
 
 
 		<h3>[page:ImageUtils]</h3>
 		<h3>[page:ImageUtils]</h3>

+ 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>

+ 12 - 0
docs/api/extras/core/Curve.html

@@ -97,6 +97,18 @@
 		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 instance.</div>
+
+		<h3>[method:Curve copy]( [page:Curve source] )</h3>
+		<div>Copies another [name] object to this instance.</div>
+
+		<h3>[method:Object toJSON]()</h3>
+		<div>Returns a JSON object representation of this instance.</div>
+
+		<h3>[method:Curve fromJSON]( [page:Object json] )</h3>
+		<div>Copies the data from the given JSON object 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]

+ 20 - 15
docs/api/extras/core/Path.html

@@ -13,20 +13,25 @@
 		<h1>[name]</h1>
 		<h1>[name]</h1>
 
 
 		<div class="desc">
 		<div class="desc">
-		A 2d path representation, comprising of points, lines, and cubes, similar to the 2D Canvas API.
-		It extends [page:CurvePath].
+		A 2D path representation. The class provides methods for creating paths and contours of 2D shapes similar to the 2D Canvas API.
 		</div>
 		</div>
 
 
 		<h2>Example</h2>
 		<h2>Example</h2>
 
 
 		<code>
 		<code>
-var v1 = new THREE.Vector3();
-var v2 = new THREE.Vector3(1, 45, 6);
-var v3 = new THREE.Vector3(34, 34, 676);
+			var path = new THREE.Path();
 
 
-var vectors = [v1, v2, v3];
+			path.lineTo( 0, 0.8 );
+			path.quadraticCurveTo( 0, 1, 0.2, 1 );
+			path.lineTo( 1, 1 );
 
 
-var path = new THREE.Path(vectors);
+			var points = path.getPoints();
+
+			var geometry = new THREE.BufferGeometry().setFromPoints( points );
+			var material = new THREE.LineBasicMaterial( { color: 0xffffff } );
+
+			var line = new THREE.Line( geometry, material );
+			scene.add( line );
 		</code>
 		</code>
 
 
 
 
@@ -94,14 +99,6 @@ var path = new THREE.Path(vectors);
 		<h3>[method:null bezierCurveTo]( [page:Float cp1X], [page:Float cp1Y], [page:Float cp2X], [page:Float cp2Y], [page:Float x], [page:Float y] )</h3>
 		<h3>[method:null bezierCurveTo]( [page:Float cp1X], [page:Float cp1Y], [page:Float cp2X], [page:Float cp2Y], [page:Float x], [page:Float y] )</h3>
 		<div>This creates a bezier curve from [page:.currentPoint] with (cp1X, cp1Y) and (cp2X, cp2Y) as control points and updates [page:.currentPoint] to x and y.</div>
 		<div>This creates a bezier curve from [page:.currentPoint] with (cp1X, cp1Y) and (cp2X, cp2Y) as control points and updates [page:.currentPoint] to x and y.</div>
 
 
-		<h3>[method:null fromPoints]( [page:Array vector2s] )</h3>
-		<div>
-			points --  array of [page:Vector2 Vector2s].<br /><br />
-
-			Adds to the from the points. Points	are added to the [page:CurvePath.curves curves]
-			array as [page:LineCurve LineCurves].
-		</div>
-
 		<h3>[method:null ellipse]( [page:Float x], [page:Float y], [page:Float xRadius], [page:Float yRadius], [page:Float startAngle], [page:Float endAngle], [page:Float clockwise], [page:Float rotation] )</h3>
 		<h3>[method:null ellipse]( [page:Float x], [page:Float y], [page:Float xRadius], [page:Float yRadius], [page:Float startAngle], [page:Float endAngle], [page:Float clockwise], [page:Float rotation] )</h3>
 		<div>
 		<div>
 			x, y -- The center of the ellipse offset from the last call.<br />
 			x, y -- The center of the ellipse offset from the last call.<br />
@@ -126,6 +123,14 @@ var path = new THREE.Path(vectors);
 		<h3>[method:null quadraticCurveTo]( [page:Float cpX], [page:Float cpY], [page:Float x], [page:Float y] )</h3>
 		<h3>[method:null quadraticCurveTo]( [page:Float cpX], [page:Float cpY], [page:Float x], [page:Float y] )</h3>
 		<div>Creates a quadratic curve from [page:.currentPoint] with cpX and cpY as control point and updates [page:.currentPoint] to x and y.</div>
 		<div>Creates a quadratic curve from [page:.currentPoint] with cpX and cpY as control point and updates [page:.currentPoint] to x and y.</div>
 
 
+		<h3>[method:null setFromPoints]( [page:Array vector2s] )</h3>
+		<div>
+			points --  array of [page:Vector2 Vector2s].<br /><br />
+
+			Points are added to the [page:CurvePath.curves curves]
+			array as [page:LineCurve LineCurves].
+		</div>
+
 		<h3>[method:null splineThru] ( [page:Array points] ) </h3>
 		<h3>[method:null splineThru] ( [page:Array points] ) </h3>
 		<div>
 		<div>
 			points - An array of [page:Vector2 Vector2s]<br /><br />
 			points - An array of [page:Vector2 Vector2s]<br /><br />

+ 16 - 6
docs/api/extras/core/Shape.html

@@ -47,19 +47,33 @@
 		<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>
 		<div>See the base [page:Path] class for common properties.</div>
 		<div>See the base [page:Path] class for common properties.</div>
 
 
+		<h3>[property:String uuid]</h3>
+		<div>
+		[link:http://en.wikipedia.org/wiki/Universally_unique_identifier UUID] of this instance. This gets automatically assigned, so this shouldn't be edited.
+		</div>
+
 		<h3>[property:array holes]</h3>
 		<h3>[property:array holes]</h3>
 		<div>An array of [page:Path paths] that define the holes in the shape.</div>
 		<div>An array of [page:Path paths] that define the holes in the shape.</div>
 
 
 		<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 />
 
 
@@ -73,10 +87,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 - 8
docs/api/extras/curves/CatmullRomCurve3.html

@@ -41,10 +41,13 @@ 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>
@@ -58,16 +61,16 @@ var curveObject = new THREE.Line( geometry, material );
 		</div>
 		</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 curveType]</h3>
 		<h3>[property:String curveType]</h3>
-		<div>Possible values are `centripetal` (default), `chordal` and `catmullrom`.</div>
+		<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>

+ 7 - 7
docs/api/extras/curves/EllipseCurve.html

@@ -42,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.

+ 71 - 71
docs/api/extras/curves/SplineCurve.html

@@ -1,72 +1,72 @@
-<!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:Curve] &rarr;
-
-		<h1>[name]</h1>
-
-		<div class="desc">
-		Create a smooth 2d spline curve from a series of points. Internally this uses
-		[page:Interpolations.CatmullRom] to create the curve.
-		</div>
-
-		<h2>Example</h2>
-
-<code>
-// Create a sine-like wave
-var curve = new THREE.SplineCurve( [
-	new THREE.Vector2( -10, 0 ),
-	new THREE.Vector2( -5, 5 ),
-	new THREE.Vector2( 0, 0 ),
-	new THREE.Vector2( 5, -5 ),
-	new THREE.Vector2( 10, 0 )
-] );
-
-var points = curve.getPoints( 50 );
-var geometry = new THREE.BufferGeometry().setFromPoints( points );
-
-var material = new THREE.LineBasicMaterial( { color : 0xff0000 } );
-
-// Create the final object to add to the scene
-var splineObject = new THREE.Line( geometry, material );
-</code>
-
-		<h2>Constructor</h2>
-
-
-		<h3>[name]( [page:Array points] )</h3>
-		<div>points – An array of [page:Vector2] points that define the curve.</div>
-
-
-		<h2>Properties</h2>
-		<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>
-		<div>The array of [page:Vector3] points that define the curve.</div>
-
-
-
-		<h2>Methods</h2>
-		<div>See the base [page:Curve] class for common methods.</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:Curve] &rarr;
+
+		<h1>[name]</h1>
+
+		<div class="desc">
+		Create a smooth 2d spline curve from a series of points. Internally this uses
+		[page:Interpolations.CatmullRom] to create the curve.
+		</div>
+
+		<h2>Example</h2>
+
+<code>
+// Create a sine-like wave
+var curve = new THREE.SplineCurve( [
+	new THREE.Vector2( -10, 0 ),
+	new THREE.Vector2( -5, 5 ),
+	new THREE.Vector2( 0, 0 ),
+	new THREE.Vector2( 5, -5 ),
+	new THREE.Vector2( 10, 0 )
+] );
+
+var points = curve.getPoints( 50 );
+var geometry = new THREE.BufferGeometry().setFromPoints( points );
+
+var material = new THREE.LineBasicMaterial( { color : 0xff0000 } );
+
+// Create the final object to add to the scene
+var splineObject = new THREE.Line( geometry, material );
+</code>
+
+		<h2>Constructor</h2>
+
+
+		<h3>[name]( [page:Array points] )</h3>
+		<div>points – An array of [page:Vector2] points that define the curve.</div>
+
+
+		<h2>Properties</h2>
+		<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>
+		<div>The array of [page:Vector2] points that define the curve.</div>
+
+
+
+		<h2>Methods</h2>
+		<div>See the base [page:Curve] class for common methods.</div>
+
+
+
+		<h2>Source</h2>
+
+		[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+	</body>
+</html>

+ 2 - 2
docs/api/geometries/CircleBufferGeometry.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 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/ConeBufferGeometry.html

@@ -42,11 +42,11 @@
 
 
 		<h2>Constructor</h2>
 		<h2>Constructor</h2>
 
 
-		<h3>[name]([page:Float radius], [page:Float height], [page:Integer radiusSegments], [page:Integer heightSegments], [page:Boolean openEnded], [page:Float thetaStart], [page:Float thetaLength])</h3>
+		<h3>[name]([page:Float radius], [page:Float height], [page:Integer radialSegments], [page:Integer heightSegments], [page:Boolean openEnded], [page:Float thetaStart], [page:Float thetaLength])</h3>
 		<div>
 		<div>
-		radius — Radius of the cone base. Default is 20.<br />
-		height — Height of the cone. Default is 100.<br />
-		radiusSegments — Number of segmented faces around the circumference of the cone. Default is 8<br />
+		radius — Radius of the cone base. Default is 1.<br />
+		height — Height of the cone. Default is 1.<br />
+		radialSegments — Number of segmented faces around the circumference of the cone. Default is 8<br />
 		heightSegments — Number of rows of faces along the height of the cone. Default is 1.<br />
 		heightSegments — Number of rows of faces along the height of the cone. Default is 1.<br />
 		openEnded — A Boolean indicating whether the base of the cone is open or capped. Default is false, meaning capped.<br />
 		openEnded — A Boolean indicating whether the base of the cone is open or capped. Default is false, meaning capped.<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 />

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

@@ -46,7 +46,7 @@
 		<div>
 		<div>
 		radius — Radius of the cone at the base. Default is 20.<br />
 		radius — Radius of the cone at the base. Default is 20.<br />
 		height — Height of the cone. Default is 100.<br />
 		height — Height of the cone. Default is 100.<br />
-		radiusSegments — Number of segmented faces around the circumference of the cone. Default is 8<br />
+		radialSegments — Number of segmented faces around the circumference of the cone. Default is 8<br />
 		heightSegments — Number of rows of faces along the height of the cone. Default is 1.<br />
 		heightSegments — Number of rows of faces along the height of the cone. Default is 1.<br />
 		openEnded — A Boolean indicating whether the base of the cone is open or capped. Default is false, meaning capped.<br />
 		openEnded — A Boolean indicating whether the base of the cone is open or capped. Default is false, meaning capped.<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 />

+ 6 - 6
docs/api/geometries/CylinderBufferGeometry.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>
@@ -42,12 +42,12 @@
 
 
 		<h2>Constructor</h2>
 		<h2>Constructor</h2>
 
 
-		<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 radialSegments], [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 />
-		radiusSegments — Number of segmented faces around the circumference of the cylinder. Default is 8<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 />
+		radialSegments — 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 />
 		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 />

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

@@ -42,12 +42,12 @@
 
 
 		<h2>Constructor</h2>
 		<h2>Constructor</h2>
 
 
-		<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 radialSegments], [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 1.<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 />
 		radiusBottom — Radius of the cylinder at the bottom. Default is 1.<br />
 		height — Height of the cylinder. 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 />
+		radialSegments — 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 />
 		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 />

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

@@ -140,6 +140,6 @@
 
 
 		<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/ExtrudeGeometry.js src/ExtrudeGeometry.js]
 	</body>
 	</body>
 </html>
 </html>

+ 4 - 4
docs/api/geometries/RingBufferGeometry.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,10 +44,10 @@
 
 
 		<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 20. <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 1.<br />
 		thetaStart — Starting angle. Default is 0. <br />
 		thetaStart — Starting angle. Default is 0. <br />
 		thetaLength — Central angle.  Default is Math.PI * 2.
 		thetaLength — Central angle.  Default is Math.PI * 2.
 		</div>
 		</div>

+ 2 - 2
docs/api/geometries/SphereBufferGeometry.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 />

+ 2 - 3
docs/api/geometries/TextBufferGeometry.html

@@ -39,8 +39,7 @@
 		<h2>Examples</h2>
 		<h2>Examples</h2>
 
 
 		<div>
 		<div>
-		[example:webgl_geometry_text geometry / text ]<br/>
-		[example:webgl_geometry_text_pnltri geometry / text2 ]
+		[example:webgl_geometry_text geometry / text ]
 		</div>
 		</div>
 
 
 		<code>
 		<code>
@@ -156,6 +155,6 @@
 
 
 		<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/TextGeometry.js src/TextGeometry.js]
 	</body>
 	</body>
 </html>
 </html>

+ 160 - 161
docs/api/geometries/TextGeometry.html

@@ -1,161 +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:ExtrudeGeometry] &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:ExtrudeGeometry].
-			See the [page:Font], [page:FontLoader] and [page:Creating_Text] pages for additional details.
-		</div>
-
-		<iframe id="scene" src="scenes/geometry-browser.html#TextGeometry"></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 ]<br/>
-		[example:webgl_geometry_text2 geometry / text2 ]
-		</div>
-
-		<code>
-		var loader = new THREE.FontLoader();
-		
-		loader.load( 'fonts/helvetiker_regular.typeface.json', function ( font ) {
-
-			var geometry = new THREE.TextGeometry( '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>
+<!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:ExtrudeGeometry] &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:ExtrudeGeometry].
+			See the [page:Font], [page:FontLoader] and [page:Creating_Text] pages for additional details.
+		</div>
+
+		<iframe id="scene" src="scenes/geometry-browser.html#TextGeometry"></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.TextGeometry( '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/TorusBufferGeometry.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 - Radius of the torus, from the center of the torus to the center of the tube. Default is 1. <br />
+		tube — Radius 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.

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

@@ -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 1. <br />
-		tube — Diameter of the tube.  Default is 0.4. <br />
+		radius - Radius of the torus, from the center of the torus to the center of the tube. Default is 1. <br />
+		tube — Radius 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/TorusKnotBufferGeometry.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 - Radius of the torus. Default is 1.</li>
+				<li>tube — Radius 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>

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

@@ -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 1.</li>
-				<li>tube — Diameter of the tube. Default is 0.4.</li>
+				<li>radius - Radius of the torus. Default is 1.</li>
+				<li>tube — Radius 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>

+ 104 - 104
docs/api/geometries/TubeBufferGeometry.html

@@ -1,105 +1,105 @@
-<!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:BufferGeometry] &rarr;
-
-		<h1>[name]</h1>
-
-		<div class="desc">Creates a tube that extrudes along a 3d curve.</div>
-
-		<iframe id="scene" src="scenes/geometry-browser.html#TubeBufferGeometry"></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>Example</h2>
-
-		<code>
-		function CustomSinCurve( scale ) {
-
-			THREE.Curve.call( this );
-
-			this.scale = ( scale === undefined ) ? 1 : scale;
-
-		}
-
-		CustomSinCurve.prototype = Object.create( THREE.Curve.prototype );
-		CustomSinCurve.prototype.constructor = CustomSinCurve;
-
-		CustomSinCurve.prototype.getPoint = function ( t ) {
-
-			var tx = t * 3 - 1.5;
-			var ty = Math.sin( 2 * Math.PI * t );
-			var tz = 0;
-
-			return new THREE.Vector3( tx, ty, tz ).multiplyScalar( this.scale );
-
-		};
-
-		var path = new CustomSinCurve( 10 );
-		var geometry = new THREE.TubeBufferGeometry( path, 20, 2, 8, false );
-		var material = new THREE.MeshBasicMaterial( { color: 0x00ff00 } );
-		var mesh = new THREE.Mesh( geometry, material );
-		scene.add( mesh );
-		</code>
-
-		<h2>Constructor</h2>
-
-
-		<h3>[name]([page:Curve path], [page:Integer tubularSegments], [page:Float radius], [page:Integer radiusSegments], [page:Boolean closed])</h3>
-		<div>
-		path — [page:Curve] - A path that inherits from the [page:Curve] base class<br />
-		tubularSegments — [page:Integer] - The number of segments that make up the tube, default is 64<br />
-		radius — [page:Float] - The radius of the tube, default is 1<br />
-		radiusSegments — [page:Integer] - The number of segments that make up the cross-section, default is 8 <br />
-		closed — [page:Boolean] Is the tube open or closed, default is false <br />
-		</div>
-
-
-		<h2>Properties</h2>
-
-		<h3>[property:Object parameters]</h3>
-		<div>
-		An object with all of the parameters that were used to generate the geometry.
-		</div>
-
-		<h3>[property:Array tangents]</h3>
-		<div>
-		An array of [page:Vector3] tangents
-		</div>
-
-		<h3>[property:Array normals]</h3>
-		<div>
-		An array of [page:Vector3] normals
-		</div>
-
-		<h3>[property:Array binormals]</h3>
-		<div>
-		An array of [page:Vector3] binormals
-		</div>
-
-		<h2>Source</h2>
-
-		[link:https://github.com/mrdoob/three.js/blob/master/src/geometries/TubeGeometry.js src/geometries/TubeGeometry.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:BufferGeometry] &rarr;
+
+		<h1>[name]</h1>
+
+		<div class="desc">Creates a tube that extrudes along a 3d curve.</div>
+
+		<iframe id="scene" src="scenes/geometry-browser.html#TubeBufferGeometry"></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>Example</h2>
+
+		<code>
+		function CustomSinCurve( scale ) {
+
+			THREE.Curve.call( this );
+
+			this.scale = ( scale === undefined ) ? 1 : scale;
+
+		}
+
+		CustomSinCurve.prototype = Object.create( THREE.Curve.prototype );
+		CustomSinCurve.prototype.constructor = CustomSinCurve;
+
+		CustomSinCurve.prototype.getPoint = function ( t ) {
+
+			var tx = t * 3 - 1.5;
+			var ty = Math.sin( 2 * Math.PI * t );
+			var tz = 0;
+
+			return new THREE.Vector3( tx, ty, tz ).multiplyScalar( this.scale );
+
+		};
+
+		var path = new CustomSinCurve( 10 );
+		var geometry = new THREE.TubeBufferGeometry( path, 20, 2, 8, false );
+		var material = new THREE.MeshBasicMaterial( { color: 0x00ff00 } );
+		var mesh = new THREE.Mesh( geometry, material );
+		scene.add( mesh );
+		</code>
+
+		<h2>Constructor</h2>
+
+
+		<h3>[name]([page:Curve path], [page:Integer tubularSegments], [page:Float radius], [page:Integer radialSegments], [page:Boolean closed])</h3>
+		<div>
+		path — [page:Curve] - A path that inherits from the [page:Curve] base class<br />
+		tubularSegments — [page:Integer] - The number of segments that make up the tube, default is 64<br />
+		radius — [page:Float] - The radius of the tube, default is 1<br />
+		radialSegments — [page:Integer] - The number of segments that make up the cross-section, default is 8 <br />
+		closed — [page:Boolean] Is the tube open or closed, default is false <br />
+		</div>
+
+
+		<h2>Properties</h2>
+
+		<h3>[property:Object parameters]</h3>
+		<div>
+		An object with all of the parameters that were used to generate the geometry.
+		</div>
+
+		<h3>[property:Array tangents]</h3>
+		<div>
+		An array of [page:Vector3] tangents
+		</div>
+
+		<h3>[property:Array normals]</h3>
+		<div>
+		An array of [page:Vector3] normals
+		</div>
+
+		<h3>[property:Array binormals]</h3>
+		<div>
+		An array of [page:Vector3] binormals
+		</div>
+
+		<h2>Source</h2>
+
+		[link:https://github.com/mrdoob/three.js/blob/master/src/geometries/TubeGeometry.js src/geometries/TubeGeometry.js]
+	</body>
+</html>

+ 104 - 104
docs/api/geometries/TubeGeometry.html

@@ -1,105 +1,105 @@
-<!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:Geometry] &rarr;
-
-		<h1>[name]</h1>
-
-		<div class="desc">Creates a tube that extrudes along a 3d curve.</div>
-
-		<iframe id="scene" src="scenes/geometry-browser.html#TubeGeometry"></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>Example</h2>
-
-		<code>
-		function CustomSinCurve( scale ) {
-
-			THREE.Curve.call( this );
-
-			this.scale = ( scale === undefined ) ? 1 : scale;
-
-		}
-
-		CustomSinCurve.prototype = Object.create( THREE.Curve.prototype );
-		CustomSinCurve.prototype.constructor = CustomSinCurve;
-
-		CustomSinCurve.prototype.getPoint = function ( t ) {
-
-			var tx = t * 3 - 1.5;
-			var ty = Math.sin( 2 * Math.PI * t );
-			var tz = 0;
-
-			return new THREE.Vector3( tx, ty, tz ).multiplyScalar( this.scale );
-
-		};
-
-		var path = new CustomSinCurve( 10 );
-		var geometry = new THREE.TubeGeometry( path, 20, 2, 8, false );
-		var material = new THREE.MeshBasicMaterial( { color: 0x00ff00 } );
-		var mesh = new THREE.Mesh( geometry, material );
-		scene.add( mesh );
-		</code>
-
-		<h2>Constructor</h2>
-
-
-		<h3>[name]([page:Curve path], [page:Integer tubularSegments], [page:Float radius], [page:Integer radiusSegments], [page:Boolean closed])</h3>
-		<div>
-		path — [page:Curve] - A path that inherits from the [page:Curve] base class<br />
-		tubularSegments — [page:Integer] - The number of segments that make up the tube, default is 64<br />
-		radius — [page:Float] - The radius of the tube, default is 1<br />
-		radiusSegments — [page:Integer] - The number of segments that make up the cross-section, default is 8 <br />
-		closed — [page:Boolean] Is the tube open or closed, default is false <br />
-		</div>
-
-
-		<h2>Properties</h2>
-
-		<h3>[property:Object parameters]</h3>
-		<div>
-		An object with all of the parameters that were used to generate the geometry.
-		</div>
-
-		<h3>[property:Array tangents]</h3>
-		<div>
-		An array of [page:Vector3] tangents
-		</div>
-
-		<h3>[property:Array normals]</h3>
-		<div>
-		An array of [page:Vector3] normals
-		</div>
-
-		<h3>[property:Array binormals]</h3>
-		<div>
-		An array of [page:Vector3] binormals
-		</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:Geometry] &rarr;
+
+		<h1>[name]</h1>
+
+		<div class="desc">Creates a tube that extrudes along a 3d curve.</div>
+
+		<iframe id="scene" src="scenes/geometry-browser.html#TubeGeometry"></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>Example</h2>
+
+		<code>
+		function CustomSinCurve( scale ) {
+
+			THREE.Curve.call( this );
+
+			this.scale = ( scale === undefined ) ? 1 : scale;
+
+		}
+
+		CustomSinCurve.prototype = Object.create( THREE.Curve.prototype );
+		CustomSinCurve.prototype.constructor = CustomSinCurve;
+
+		CustomSinCurve.prototype.getPoint = function ( t ) {
+
+			var tx = t * 3 - 1.5;
+			var ty = Math.sin( 2 * Math.PI * t );
+			var tz = 0;
+
+			return new THREE.Vector3( tx, ty, tz ).multiplyScalar( this.scale );
+
+		};
+
+		var path = new CustomSinCurve( 10 );
+		var geometry = new THREE.TubeGeometry( path, 20, 2, 8, false );
+		var material = new THREE.MeshBasicMaterial( { color: 0x00ff00 } );
+		var mesh = new THREE.Mesh( geometry, material );
+		scene.add( mesh );
+		</code>
+
+		<h2>Constructor</h2>
+
+
+		<h3>[name]([page:Curve path], [page:Integer tubularSegments], [page:Float radius], [page:Integer radialSegments], [page:Boolean closed])</h3>
+		<div>
+		path — [page:Curve] - A path that inherits from the [page:Curve] base class<br />
+		tubularSegments — [page:Integer] - The number of segments that make up the tube, default is 64<br />
+		radius — [page:Float] - The radius of the tube, default is 1<br />
+		radialSegments — [page:Integer] - The number of segments that make up the cross-section, default is 8 <br />
+		closed — [page:Boolean] Is the tube open or closed, default is false <br />
+		</div>
+
+
+		<h2>Properties</h2>
+
+		<h3>[property:Object parameters]</h3>
+		<div>
+		An object with all of the parameters that were used to generate the geometry.
+		</div>
+
+		<h3>[property:Array tangents]</h3>
+		<div>
+		An array of [page:Vector3] tangents
+		</div>
+
+		<h3>[property:Array normals]</h3>
+		<div>
+		An array of [page:Vector3] normals
+		</div>
+
+		<h3>[property:Array binormals]</h3>
+		<div>
+		An array of [page:Vector3] binormals
+		</div>
+
+		<h2>Source</h2>
+
+		[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+	</body>
+</html>

+ 97 - 97
docs/api/helpers/ArrowHelper.html

@@ -1,98 +1,98 @@
-<!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:Object3D] &rarr;
-
-		<h1>[name]</h1>
-
-		<div class="desc">An 3D arrow object for visualizing directions.</div>
-
-
-		<h2>Example</h2>
-
-		<div>[example:webgl_geometries WebGL / geometries]</div>
-		<div>[example:webgl_geometry_normals WebGL / geometry / normals]</div>
-		<div>[example:webgl_shadowmesh WebGL / shadowmesh]</div>
-
-		<code>
-		var dir = new THREE.Vector3( 1, 2, 0 );
-
-		//normalize the direction vector (convert to vector of length 1)
-		dir.normalize();
-
-		var origin = new THREE.Vector3( 0, 0, 0 );
-		var length = 1;
-		var hex = 0xffff00;
-
-		var arrowHelper = new THREE.ArrowHelper( dir, origin, length, hex );
-		scene.add( arrowHelper );
-		</code>
-
-
-
-		<h2>Constructor</h2>
-
-
-		<h3>[name]([page:Vector3 dir], [page:Vector3 origin], [page:Number length], [page:Number hex], [page:Number headLength], [page:Number headWidth] )</h3>
-		<div>
-		[page:Vector3 dir] -- direction from origin. Must be a unit vector. <br />
-		[page:Vector3 origin] -- Point at which the arrow starts.<br />
-		[page:Number length] -- length of the arrow. Default is *1*.<br />
-		[page:Number hex] -- hexadecimal value to define color. Default is 0xffff00.<br />
-		[page:Number headLength] -- The length of the head of the arrow. Default is 0.2 * length.<br />
-		[page:Number headWidth] -- The length of the width of the arrow. Default is 0.2 * headLength.
-		</div>
-
-		<h2>Properties</h2>
-		<div>See the base [page:Object3D] class for common properties.</div>
-
-
-		<h3>[property:Line line]</h3>
-		<div>Contains the line part of the arrowHelper.</div>
-
-		<h3>[property:Mesh cone]</h3>
-		<div>Contains the cone part of the arrowHelper.</div>
-
-
-
-
-		<h2>Methods</h2>
-		<div>See the base [page:Object3D] class for common methods.</div>
-
-
-
-		<h3>[method:null setColor]([page:Number hex])</h3>
-		<div>
-		hex -- The hexadicmal value of the color.<br /><br />
-
-		Sets the color of the arrowHelper.
-		</div>
-
-		<h3>[method:null setLength]([page:Number length], [page:Number headLength], [page:Number headWidth])</h3>
-		<div>
-		length -- The desired length.<br />
-		headLength -- The length of the head of the arrow.<br />
-		headWidth -- The length of the width of the arrow.<br /><br />
-
-		Sets the length of the arrowhelper.
-		</div>
-
-		<h3>[method:null setDirection]([page:Vector3 dir])</h3>
-		<div>
-		dir -- The desired direction. Must be a unit vector.<br /><br />
-
-		Sets the direction of the arrowhelper.
-		</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:Object3D] &rarr;
+
+		<h1>[name]</h1>
+
+		<div class="desc">An 3D arrow object for visualizing directions.</div>
+
+
+		<h2>Example</h2>
+
+		<div>[example:webgl_geometries WebGL / geometries]</div>
+		<div>[example:webgl_geometry_normals WebGL / geometry / normals]</div>
+		<div>[example:webgl_shadowmesh WebGL / shadowmesh]</div>
+
+		<code>
+		var dir = new THREE.Vector3( 1, 2, 0 );
+
+		//normalize the direction vector (convert to vector of length 1)
+		dir.normalize();
+
+		var origin = new THREE.Vector3( 0, 0, 0 );
+		var length = 1;
+		var hex = 0xffff00;
+
+		var arrowHelper = new THREE.ArrowHelper( dir, origin, length, hex );
+		scene.add( arrowHelper );
+		</code>
+
+
+
+		<h2>Constructor</h2>
+
+
+		<h3>[name]([page:Vector3 dir], [page:Vector3 origin], [page:Number length], [page:Number hex], [page:Number headLength], [page:Number headWidth] )</h3>
+		<div>
+		[page:Vector3 dir] -- direction from origin. Must be a unit vector. <br />
+		[page:Vector3 origin] -- Point at which the arrow starts.<br />
+		[page:Number length] -- length of the arrow. Default is *1*.<br />
+		[page:Number hex] -- hexadecimal value to define color. Default is 0xffff00.<br />
+		[page:Number headLength] -- The length of the head of the arrow. Default is 0.2 * length.<br />
+		[page:Number headWidth] -- The length of the width of the arrow. Default is 0.2 * headLength.
+		</div>
+
+		<h2>Properties</h2>
+		<div>See the base [page:Object3D] class for common properties.</div>
+
+
+		<h3>[property:Line line]</h3>
+		<div>Contains the line part of the arrowHelper.</div>
+
+		<h3>[property:Mesh cone]</h3>
+		<div>Contains the cone part of the arrowHelper.</div>
+
+
+
+
+		<h2>Methods</h2>
+		<div>See the base [page:Object3D] class for common methods.</div>
+
+
+
+		<h3>[method:null setColor]([page:Number hex])</h3>
+		<div>
+		hex -- The hexadecimal value of the color.<br /><br />
+
+		Sets the color of the arrowHelper.
+		</div>
+
+		<h3>[method:null setLength]([page:Number length], [page:Number headLength], [page:Number headWidth])</h3>
+		<div>
+		length -- The desired length.<br />
+		headLength -- The length of the head of the arrow.<br />
+		headWidth -- The length of the width of the arrow.<br /><br />
+
+		Sets the length of the arrowhelper.
+		</div>
+
+		<h3>[method:null setDirection]([page:Vector3 dir])</h3>
+		<div>
+		dir -- The desired direction. Must be a unit vector.<br /><br />
+
+		Sets the direction of the arrowhelper.
+		</div>
+
+		<h2>Source</h2>
+
+		[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+	</body>
+</html>

+ 2 - 2
docs/api/helpers/AxesHelper.html

@@ -12,7 +12,7 @@
 
 
 		<h1>[name]</h1>
 		<h1>[name]</h1>
 
 
-		<div class="desc">An axis object to visualize the the 3 axes in a simple way. <br />
+		<div class="desc">An axis object to visualize the 3 axes in a simple way. <br />
 			The X axis is red. The Y axis is green. The Z axis is blue.</div>
 			The X axis is red. The Y axis is green. The Z axis is blue.</div>
 
 
 
 
@@ -35,7 +35,7 @@ scene.add( axesHelper );
 
 
 		<h3>[name]( [page:Number size] )</h3>
 		<h3>[name]( [page:Number size] )</h3>
 		<div>
 		<div>
-		[page:Number size] -- (optional )size of the lines representing the axes. Default is *1*.
+		[page:Number size] -- (optional) size of the lines representing the axes. Default is *1*.
 		</div>
 		</div>
 
 
 		<h2>Properties</h2>
 		<h2>Properties</h2>

+ 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 - 2
docs/api/lights/PointLight.html

@@ -82,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>

+ 8 - 67
docs/api/lights/RectAreaLight.html

@@ -13,27 +13,25 @@
 		<h1>[name]</h1>
 		<h1>[name]</h1>
 
 
 		<div class="desc">
 		<div class="desc">
-			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 />
-
-			<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.
+			RectAreaLight emits light uniformly across the face a rectangular plane. This light type can be
+			used to simulate light sources such as bright windows or strip lighting.<br /><br />
+			RectAreaLight does not support shadows.<br /><br />
 		</div>
 		</div>
 
 
 
 
 
 
-
 		<h2>Examples</h2>
 		<h2>Examples</h2>
 
 
 		<div>
 		<div>
 			[example:webgl_lights_rectarealight WebGL / rectarealight ]
 			[example:webgl_lights_rectarealight WebGL / rectarealight ]
 
 
 			<code>
 			<code>
-var width = 2;
+var width = 10;
 var height = 10;
 var height = 10;
-var rectLight = new THREE.RectAreaLight( 0xffffff, undefined,  width, height );
-rectLight.intensity = 70.0;
+var intensity = 1;
+var rectLight = new THREE.RectAreaLight( 0xffffff, intensity,  width, height );
 rectLight.position.set( 5, 5, 0 );
 rectLight.position.set( 5, 5, 0 );
+rectLight.lookAt( 0, 0, 0 );
 scene.add( rectLight )
 scene.add( rectLight )
 
 
 rectLightHelper = new THREE.RectAreaLightHelper( rectLight );
 rectLightHelper = new THREE.RectAreaLightHelper( rectLight );
@@ -43,16 +41,13 @@ scene.add( rectLightHelper );
 		</div>
 		</div>
 
 
 
 
-
-
-
 		<h2>Constructor</h2>
 		<h2>Constructor</h2>
 
 
 
 
 		<h3>[name]( [page:Integer color], [page:Float intensity], [page:Float width], [page:Float height] )</h3>
 		<h3>[name]( [page:Integer color], [page:Float intensity], [page:Float width], [page:Float height] )</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 />
+			[page:Float intensity] - (optional) the light's intensity, or brightness. Default is 1.<br />
 			[page:Float width] - (optional) width of the light. Default is 10.<br />
 			[page:Float width] - (optional) width of the light. Default is 10.<br />
 			[page:Float height] - (optional) height of the light. Default is 10.<br /><br />
 			[page:Float height] - (optional) height of the light. Default is 10.<br /><br />
 
 
@@ -64,29 +59,6 @@ scene.add( rectLightHelper );
 			See the base [page:Light Light] class for common properties.
 			See the base [page:Light Light] class for common properties.
 		</div>
 		</div>
 
 
-
-		<h3>[property:Boolean castShadow]</h3>
-		<div>
-			<em>Note:</em> this is not yet implemented for this light type! (r83)
-		</div>
-
-		<h3>[property:Float decay]</h3>
-		<div>
-			The amount the light dims along the distance of the light.<br />
-			In [page:WebGLRenderer.physicallyCorrectLights physically correct] mode, decay = 2 leads to
-			physically realistic light falloff. The default is *1*.<br /><br />
-
-			<em>Note:</em> this is not yet implemented for this light type! (r83)
-		</div>
-
-		<h3>[property:Float distance]</h3>
-		<div>
-			If non-zero, light will attenuate linearly from maximum intensity at the light's
-			position down to zero at this distance from the light. Default is *0.0*.<br /><br />
-
-			<em>Note:</em> this is not yet implemented for this light type! (r83)
-		</div>
-
 		<h3>[property:Boolean isRectAreaLight]</h3>
 		<h3>[property:Boolean isRectAreaLight]</h3>
 		<div>
 		<div>
 			Used to check whether this or derived classes are RectAreaLights. Default is *true*.<br /><br />
 			Used to check whether this or derived classes are RectAreaLights. Default is *true*.<br /><br />
@@ -94,37 +66,6 @@ scene.add( rectLightHelper );
 			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:Vector3 position]</h3>
-		<div>
-			This is set equal to [page:Object3D.DefaultUp] (0, 1, 0), so that the light shines from the top down.
-		</div>
-
-		<h3>[property:Object3D target]</h3>
-		<div>
-			The RectAreaLight points from its [page:.position position] to target.position. The default
-			position of the target is *(0, 0, 0)*.<br />
-
-			*Note*: For the the target's position to be changed to anything other than the default,
-			it must be added to the [page:Scene scene] using
-			<code>
-				scene.add( light.target );
-			</code>
-
-			This is so that the target's [page:Object3D.matrixWorld matrixWorld] gets automatically
-			updated each frame.<br /><br />
-
-			It is also possible to set the target to be another object in the scene (anything with a
-			[page:Object3D.position position] property), like so:
-			<code>
-var targetObject = new THREE.Object3D();
-scene.add(targetObject);
-
-light.target = targetObject;
-			</code>
-			The RectAreaLight will now track the target object.
-		</div>
-
-
 		<h2>Methods</h2>
 		<h2>Methods</h2>
 		<div>
 		<div>
 			See the base [page:Light Light] class for common methods.
 			See the base [page:Light Light] class for common methods.

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

@@ -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 );

+ 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>

+ 7 - 4
docs/api/loaders/AnimationLoader.html

@@ -25,16 +25,19 @@
 		loader.load(
 		loader.load(
 			// resource URL
 			// resource URL
 			'animations/animation.js',
 			'animations/animation.js',
-			// Function when resource is loaded
+
+			// onLoad callback
 			function ( animations ) {
 			function ( animations ) {
 				// animations is an array of AnimationClips
 				// animations is an array of AnimationClips
 			},
 			},
-			// Function called when download progresses
+
+			// onProgress callback
 			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 ( xhr ) {
+
+			// onError callback
+			function ( err ) {
 				console.log( 'An error happened' );
 				console.log( 'An error happened' );
 			}
 			}
 		);
 		);

+ 7 - 4
docs/api/loaders/AudioLoader.html

@@ -38,7 +38,8 @@
 		loader.load(
 		loader.load(
 			// resource URL
 			// resource URL
 			'audio/ambient_ocean.ogg',
 			'audio/ambient_ocean.ogg',
-			// Function when resource is loaded
+
+			// onLoad callback
 			function ( audioBuffer ) {
 			function ( audioBuffer ) {
 				// set the audio object buffer to the loaded object
 				// set the audio object buffer to the loaded object
 				oceanAmbientSound.setBuffer( audioBuffer );
 				oceanAmbientSound.setBuffer( audioBuffer );
@@ -46,12 +47,14 @@
 				// play the audio
 				// play the audio
 				oceanAmbientSound.play();
 				oceanAmbientSound.play();
 			},
 			},
-			// Function called when download progresses
+
+			// onProgress callback
 			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 ( xhr ) {
+
+			// onError callback
+			function ( err ) {
 				console.log( 'An error happened' );
 				console.log( 'An error happened' );
 			}
 			}
 		);
 		);

+ 8 - 5
docs/api/loaders/BufferGeometryLoader.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>
@@ -27,18 +27,21 @@
 		loader.load(
 		loader.load(
 			// resource URL
 			// resource URL
 			'models/json/pressure.json',
 			'models/json/pressure.json',
-			// Function when resource is loaded
+
+			// onLoad callback
 			function ( geometry ) {
 			function ( geometry ) {
 				var material = new THREE.MeshLambertMaterial( { color: 0xF5F5F5 } );
 				var material = new THREE.MeshLambertMaterial( { color: 0xF5F5F5 } );
 				var object = new THREE.Mesh( geometry, material );
 				var object = new THREE.Mesh( geometry, material );
 				scene.add( object );
 				scene.add( object );
 			},
 			},
-			// Function called when download progresses
+
+			// onProgress callback
 			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 ( xhr ) {
+
+			// onError callback
+			function ( err ) {
 				console.log( 'An error happened' );
 				console.log( 'An error happened' );
 			}
 			}
 		);
 		);

+ 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 />

+ 24 - 24
docs/api/loaders/FileLoader.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>
@@ -22,29 +22,29 @@
 			[example:webgl_morphtargets_human WebGL / morphtargets / human]<br />
 			[example:webgl_morphtargets_human WebGL / morphtargets / human]<br />
 		</div>
 		</div>
 		<code>
 		<code>
-var loader = new THREE.FileLoader();
-
-//load a text file a output the result to the console
-loader.load(
-    // resource URL
-    'example.txt',
-
-    // Function when resource is loaded
-    function ( data ) {
-        // output the text to the console
-        console.log( data )
-    },
-
-    // Function called when download progresses
-    function ( xhr ) {
-        console.log( (xhr.loaded / xhr.total * 100) + '% loaded' );
-    },
-
-    // Function called when download errors
-    function ( xhr ) {
-        console.error( 'An error happened' );
-    }
-);
+		var loader = new THREE.FileLoader();
+
+		//load a text file a output the result to the console
+		loader.load(
+			// resource URL
+			'example.txt',
+
+			// onLoad callback
+			function ( data ) {
+				// output the text to the console
+				console.log( data )
+			},
+
+			// onProgress callback
+			function ( xhr ) {
+				console.log( (xhr.loaded / xhr.total * 100) + '% loaded' );
+			},
+
+			// onError callback
+			function ( err ) {
+				console.error( 'An error happened' );
+			}
+		);
 		</code>
 		</code>
 
 
 		<h2>Constructor</h2>
 		<h2>Constructor</h2>

+ 8 - 7
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>
@@ -32,17 +30,20 @@
 		var font = loader.load(
 		var font = loader.load(
 			// resource URL
 			// resource URL
 			'fonts/helvetiker_bold.typeface.json'
 			'fonts/helvetiker_bold.typeface.json'
-			// Function when resource is loaded
+
+			// onLoad callback
 			function ( font ) {
 			function ( font ) {
 				// do something with the font
 				// do something with the font
 				scene.add( font );
 				scene.add( font );
 			},
 			},
-			// Function called when download progresses
+
+			// onProgress callback
 			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 ( xhr ) {
+
+			// onError callback
+			function ( err ) {
 				console.log( 'An error happened' );
 				console.log( 'An error happened' );
 			}
 			}
 		);
 		);

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

@@ -0,0 +1,105 @@
+<!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',
+
+			// onLoad callback
+			function ( imageBitmap ) {
+				var texture = new THREE.CanvasTexture( imageBitmap );
+				var material = new THREE.MeshBasicMaterial( { map: texture } );
+			},
+
+			// onProgress callback currently not supported
+			undefined,
+
+			// onError callback
+			function ( err ) {
+				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>

+ 12 - 25
docs/api/loaders/ImageLoader.html

@@ -32,26 +32,26 @@
 		loader.load(
 		loader.load(
 			// resource URL
 			// resource URL
 			'textures/skyboxsun25degtest.png',
 			'textures/skyboxsun25degtest.png',
-			// Function when resource is loaded
-			function ( image ) {
-				// do something with it
 
 
-				// like drawing a part of it on a canvas
+			// onLoad callback
+			function ( image ) {
+				// use the image, e.g. draw part of it on a canvas
 				var canvas = document.createElement( 'canvas' );
 				var canvas = document.createElement( 'canvas' );
 				var context = canvas.getContext( '2d' );
 				var context = canvas.getContext( '2d' );
 				context.drawImage( image, 100, 100 );
 				context.drawImage( image, 100, 100 );
 			},
 			},
-			// 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' );
+
+			// onProgress callback currently not supported
+			undefined,
+
+			// onError callback
+			function () {
+				console.error( 'An error happened.' );
 			}
 			}
 		);
 		);
 		</code>
 		</code>
 
 
+		Please note three.js r84 dropped support for ImageLoader progress events. For an ImageLoader that supports progress events, see [link:https://github.com/mrdoob/three.js/issues/10439#issuecomment-275785639 this thread].
 
 
 		<h2>Constructor</h2>
 		<h2>Constructor</h2>
 
 
@@ -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]

+ 10 - 4
docs/api/loaders/JSONLoader.html

@@ -28,18 +28,24 @@
 
 
 		// load a resource
 		// load a resource
 		loader.load(
 		loader.load(
-
 			// resource URL
 			// resource URL
 			'models/animated/monster/monster.js',
 			'models/animated/monster/monster.js',
 
 
-			// Function when resource is loaded
+			// onLoad callback
 			function ( geometry, materials ) {
 			function ( geometry, materials ) {
-
 				var material = materials[ 0 ];
 				var material = materials[ 0 ];
 				var object = new THREE.Mesh( geometry, material );
 				var object = new THREE.Mesh( geometry, material );
-
 				scene.add( object );
 				scene.add( object );
+			},
+
+			// onProgress callback
+			function ( xhr ) {
+				console.log( (xhr.loaded / xhr.total * 100) + '% loaded' );
+			},
 
 
+			// onError callback
+			function( err ) {
+				console.log( 'An error happened' );
 			}
 			}
 		);
 		);
 		</code>
 		</code>

+ 0 - 8
docs/api/loaders/Loader.html

@@ -61,14 +61,6 @@
 		Creates an array of [page:Material] based on the array of parameters m. The index of the parameters decide the correct index of the materials.
 		Creates an array of [page:Material] based on the array of parameters m. The index of the parameters decide the correct index of the materials.
 		</div>
 		</div>
 
 
-		<h3>[method:String extractUrlBase]( [page:string url] )</h3>
-		<div>
-		[page:String url] —  The url to extract the base url from.
-		</div>
-		<div>
-		Extract the base from the URL.
-		</div>
-
 
 
 		<h2>Source</h2>
 		<h2>Source</h2>
 
 

+ 38 - 0
docs/api/loaders/LoaderUtils.html

@@ -0,0 +1,38 @@
+<!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 object with several loader utility functions.</div>
+
+		<h2>Functions</h2>
+
+		<h3>[method:String decodeText]( [page:TypedArray array] )</h3>
+		<div>
+		[page:TypedArray array] —  A stream of bytes as a typed array.
+		</div>
+		<div>
+		The function takes a stream of bytes as input and returns a string representation.
+		</div>
+
+		<h3>[method:String extractUrlBase]( [page:string url] )</h3>
+		<div>
+		[page:String url] —  The url to extract the base url from.
+		</div>
+		<div>
+		Extract the base from the URL.
+		</div>
+
+
+		<h2>Source</h2>
+
+		[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+	</body>
+</html>

+ 8 - 5
docs/api/loaders/MaterialLoader.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,16 +26,19 @@
 		loader.load(
 		loader.load(
 			// resource URL
 			// resource URL
 			'path/to/material.json',
 			'path/to/material.json',
-			// Function when resource is loaded
+
+			// onLoad callback
 			function ( material ) {
 			function ( material ) {
 				object.material = material;
 				object.material = material;
 			},
 			},
-			// Function called when download progresses
+
+			// onProgress callback
 			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 ( xhr ) {
+
+			// onError callback
+			function ( err ) {
 				console.log( 'An error happened' );
 				console.log( 'An error happened' );
 			}
 			}
 		);
 		);

+ 22 - 22
docs/api/loaders/ObjectLoader.html

@@ -29,35 +29,35 @@
 		</div>
 		</div>
 
 
 		<code>
 		<code>
-var loader = new THREE.ObjectLoader();
+		var loader = new THREE.ObjectLoader();
 
 
-loader.load(
-    // resource URL
-    "models/json/example.json",
+		loader.load(
+			// resource URL
+			"models/json/example.json",
 
 
-    // pass the loaded data to the onLoad function.
-		//Here it is assumed to be an object
-    function ( obj ) {
-				//add the loaded object to the scene
-        scene.add( obj );
-    },
+			// onLoad callback
+			// Here the loaded data is assumed to be an object
+			function ( obj ) {
+				// Add the loaded object to the scene
+				scene.add( obj );
+			},
 
 
-    // Function called when download progresses
-    function ( xhr ) {
-        console.log( (xhr.loaded / xhr.total * 100) + '% loaded' );
-    },
+			// onProgress callback
+			function ( xhr ) {
+				console.log( (xhr.loaded / xhr.total * 100) + '% loaded' );
+			},
 
 
-    // Function called when download errors
-    function ( xhr ) {
-        console.error( 'An error happened' );
-    }
-);
+			// onError callback
+			function ( err ) {
+				console.error( 'An error happened' );
+			}
+		);
 
 
 
 
-// Alternatively, to parse a previously loaded JSON structure
-var object = loader.parse( a_json_object );
+		// Alternatively, to parse a previously loaded JSON structure
+		var object = loader.parse( a_json_object );
 
 
-scene.add( object );
+		scene.add( object );
 		</code>
 		</code>
 
 
 
 

+ 11 - 8
docs/api/loaders/TextureLoader.html

@@ -36,24 +36,27 @@
 		loader.load(
 		loader.load(
 			// resource URL
 			// resource URL
 			'textures/land_ocean_ice_cloud_2048.jpg',
 			'textures/land_ocean_ice_cloud_2048.jpg',
-			// Function when resource is loaded
+
+			// onLoad callback
 			function ( texture ) {
 			function ( texture ) {
 				// in this example we create the material when the texture is loaded
 				// 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 ( xhr ) {
-				console.log( ( xhr.loaded / xhr.total * 100 ) + '% loaded' );
-			},
-			// Function called when download errors
-			function ( xhr ) {
-				console.error( 'An error happened' );
+
+			// onProgress callback currently not supported
+			undefined,
+
+			// onError callback
+			function ( err ) {
+				console.error( 'An error happened.' );
 			}
 			}
 		);
 		);
 		</code>
 		</code>
 
 
+		Please note three.js r84 dropped support for TextureLoader progress events. For a TextureLoader that supports progress events, see [link:https://github.com/mrdoob/three.js/issues/10439#issuecomment-293260145 this thread].
+
 		<h2>Constructor</h2>
 		<h2>Constructor</h2>
 
 
 		<h3>[name]( [page:LoadingManager manager] )</h3>
 		<h3>[name]( [page:LoadingManager manager] )</h3>

+ 39 - 0
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>
 
 

+ 37 - 4
docs/api/materials/Material.html

@@ -135,6 +135,11 @@
 		When drawing 2D overlays it can be useful to disable the depth writing in order to layer several things together without creating z-index artifacts.
 		When drawing 2D overlays it can be useful to disable the depth writing in order to layer several things together without creating z-index artifacts.
 		</div>
 		</div>
 
 
+		<h3>[property:Boolean flatShading]</h3>
+		<div>
+		Define whether the material is rendered with flat shading. Default is false.
+		</div>
+
 		<h3>[property:Boolean fog]</h3>
 		<h3>[property:Boolean fog]</h3>
 		<div>Whether the material is affected by fog. Default is *true*.</div>
 		<div>Whether the material is affected by fog. Default is *true*.</div>
 
 
@@ -191,7 +196,7 @@
 		<h3>[property:String precision]</h3>
 		<h3>[property:String precision]</h3>
 		<div>
 		<div>
 		Override the renderer's default precision for this material. Can be "*highp*", "*mediump*" or "*lowp*".
 		Override the renderer's default precision for this material. Can be "*highp*", "*mediump*" or "*lowp*".
-		Defaults is *null*.
+		Default is *null*.
 		</div>
 		</div>
 
 
 		<h3>[property:Boolean premultipliedAlpha]</h3>
 		<h3>[property:Boolean premultipliedAlpha]</h3>
@@ -207,9 +212,37 @@
 		Default is *false*.
 		Default is *false*.
 		</div>
 		</div>
 
 
-		<h3>[property:Boolean flatShading]</h3>
-		<div>
-		Define whether the material is rendered with flat shading. Default is false.
+		<h3>[property:Integer shadowSide]</h3>
+		<div>
+		Defines which side of faces cast shadows.
+		When set, can be [page:Materials THREE.FrontSide], [page:Materials THREE.BackSide], or [page:Materials THREE.DoubleSide]. Default is *null*. <br />
+		If *null*, the side casting shadows is determined as follows: <br />
+
+		<table>
+			<thead>
+				<tr>
+					<th>[page:Material.side]</th>
+					<th>Side casting shadows</th>
+				</tr>
+			</thead>
+			<tbody>
+
+				<tr>
+					<td>THREE.FrontSide</td>
+					<td>back side</td>
+				</tr>
+				<tr>
+					<td>THREE.BackSide</td>
+					<td>front side</td>
+				</tr>
+				<tr>
+					<td>THREE.DoubleSide</td>
+					<td>both sides</td>
+				</tr>
+			</tbody>
+		</table>
+
+
 		</div>
 		</div>
 
 
 		<h3>[property:Integer side]</h3>
 		<h3>[property:Integer side]</h3>

+ 1 - 1
docs/api/materials/MeshPhongMaterial.html

@@ -205,7 +205,7 @@
 		<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>
 
 
-		<h3>[property:Texture specular]</h3>
+		<h3>[property:Color specular]</h3>
 		<div>
 		<div>
 			Specular color of the material. Default is a [page:Color] set to *0x111111* (very dark grey).<br /><br />
 			Specular color of the material. Default is a [page:Color] set to *0x111111* (very dark grey).<br /><br />
 
 

+ 9 - 2
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>
 
 
@@ -209,6 +209,13 @@
 		Determines whether or not this box intersects [page:Sphere sphere].
 		Determines whether or not this box intersects [page:Sphere sphere].
 		</div>
 		</div>
 
 
+		<h3>[method:Boolean intersectsTriangle]( [page:Triangle triangle] )</h3>
+		<div>
+		[page:Triangle triangle] - [page:Triangle] to check for intersection against.<br /><br />
+
+		Determines whether or not this box intersects [page:Triangle triangle].
+		</div>
+
 		<h3>[method:Boolean isEmpty]()</h3>
 		<h3>[method:Boolean isEmpty]()</h3>
 		<div>
 		<div>
 		Returns true if this box includes zero points within its bounds.<br>
 		Returns true if this box includes zero points within its bounds.<br>
@@ -280,7 +287,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>
 
 

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

@@ -26,11 +26,10 @@
 			Every [page:Object3D] has three associated Matrix4s:
 			Every [page:Object3D] has three associated Matrix4s:
 			<ul>
 			<ul>
 				<li>
 				<li>
-					[page:Object3D.matrix]: This stores the local transform of the object.
+					[page:Object3D.matrix]: This stores the local transform of the object. This is the object's transformation relative to its parent.
 				</li>
 				</li>
 				<li>
 				<li>
-					[page:Object3D.matrixWorld]: The global or world transform of the object. This is the object's transformation relative to its parent.
-					If the object has no parent, then this is identical to the local transform.
+					[page:Object3D.matrixWorld]: The global or world transform of the object. If the object has no parent, then this is identical to the local transform stored in [page:Object3D.matrix matrix].
 				</li>
 				</li>
 				<li>
 				<li>
 					[page:Object3D.modelViewMatrix]: This represents the object's transformation relative to the camera's coordinate system.
 					[page:Object3D.modelViewMatrix]: This represents the object's transformation relative to the camera's coordinate system.

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

@@ -149,8 +149,8 @@
 		<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>
 		<div>
 		<div>
 		 [page:Vector3 a] - first point on the plane.<br />
 		 [page:Vector3 a] - first 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 b] - second point on the plane.<br />
+		 [page:Vector3 c] - third point on the plane.<br /><br />
 
 
 		Defines the plane based on the 3 provided points. The winding order is assumed to be counter-clockwise,
 		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].
 		and determines the direction of the [page:.normal normal].

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

@@ -12,7 +12,7 @@
 
 
 		<div class="desc">
 		<div class="desc">
 			A ray that emits from an origin in a certain direction. This is used by the
 			A ray that emits from an origin in a certain direction. This is used by the
-			[page:RayCaster] to assist with [link:https://en.wikipedia.org/wiki/Ray_casting raycasting].
+			[page:Raycaster] to assist with [link:https://en.wikipedia.org/wiki/Ray_casting raycasting].
 			Raycasting is used for mouse picking (working out what objects in the 3D space the mouse is over) amongst
 			Raycasting is used for mouse picking (working out what objects in the 3D space the mouse is over) amongst
 			other things.
 			other things.
 		</div>
 		</div>

+ 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>

+ 8 - 1
docs/api/math/Triangle.html

@@ -79,7 +79,7 @@
 		<div>
 		<div>
 		[page:Vector3 point] - [page:Vector3] to check.<br /><br />
 		[page:Vector3 point] - [page:Vector3] to check.<br /><br />
 
 
-		Returns true if the passed vector is within the triangle.
+		Returns true if the passed point, when projected onto the plane of the triangle, lies within the triangle.
 		</div>
 		</div>
 
 
 		<h3>[method:Triangle copy]( [page:Triangle triangle] )</h3>
 		<h3>[method:Triangle copy]( [page:Triangle triangle] )</h3>
@@ -93,6 +93,13 @@
 		Returns true if the two triangles have identical [page:.a a], [page:.b b] and [page:.c c] properties.
 		Returns true if the two triangles have identical [page:.a a], [page:.b b] and [page:.c c] properties.
 		</div>
 		</div>
 
 
+		<h3>[method:Boolean intersectsBox]( [page:Box3 box] )</h3>
+		<div>
+		[page:Box3 box] - Box to check for intersection against.<br /><br />
+
+		Determines whether or not this triangle intersects [page:Box3 box].
+		</div>
+
 		<h3>[method:Vector3 midpoint]( [page:Vector3 optionalTarget] )</h3>
 		<h3>[method:Vector3 midpoint]( [page:Vector3 optionalTarget] )</h3>
 		<div>
 		<div>
 			[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 />
 			[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 />

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

@@ -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>

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

@@ -176,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 />

+ 0 - 129
docs/api/objects/LensFlare.html

@@ -1,129 +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:Object3D] &rarr;
-
-		<h1>[name]</h1>
-
-		<div class="desc">
-			Creates a simulated lens flare that tracks a light.<br /><br />
-
-			Note: [page:WebGLRenderer.alpha] must be set to *true* for LensFlare to work.
-		</div>
-
-		<h2>Example</h2>
-
-		<div>
-			[example:webgl_lensflares lensflares]
-
-			<code>
-var light = new THREE.PointLight( 0xffffff, 1.5, 2000 );
-
-var textureLoader = new THREE.TextureLoader();
-
-var textureFlare = textureLoader.load( "textures/lensflare/lensflare.png" );
-
-var flareColor = new THREE.Color( 0xffffff );
-flareColor.setHSL( h, s, l + 0.5 );
-
-var lensFlare = new THREE.LensFlare( textureFlare, 700, 0.0, THREE.AdditiveBlending, flareColor );
-lensFlare.position.copy( light.position );
-
-scene.add( lensFlare );
-			</code>
-
-		</div>
-
-		<h2>Constructor</h2>
-
-
-		<h3>[name]( [page:Texture texture], [page:Float size], [page:Float distance], [page:Materials blending], [page:Color color] )</h3>
-		<div>
-		[page:Texture texture] - (optional) THREE.Texture to use for the flare. <br />
-		[page:Float size] - (optional) size in pixels (-1 = use texture.width) <br />
-		[page:Float distance] - (optional) (0-1) from light source (0 = at light source) <br />
-		[page:Materials blending] - (optional) [page:Materials Blending Mode] - Defaults to THREE.NormalBlending <br />
-		[page:Color color] - (optional) the [page:Color] of the lens flare<br /><br />
-
-		Automatically adds a lens flare to the lensFlares array if a [page:Texture texture] is set.
-		If [page:Texture texture] not passed here, [page:.add add] must be called later.
-		</div>
-
-		<h2>Properties</h2>
-		<div>See the base [page:Object3D] class for common properties.</div>
-
-		<h3>[property:Boolean isLensFlare]</h3>
-		<div>
-			Used to check whether this or derived classes are lens flares. Default is *true*.<br /><br />
-
-			You should not change this, as it used internally for optimisation.
-		</div>
-
-
-		<h3>[property:array lensFlares]</h3>
-		<div>
-			The array of flares as set by [page:LensFlare.add] or passed in the constructor.
-			Each flare is an object with the following defaults:
-			<code>
-{
-	texture: texture,	// texture passed in the constructor or [page:.add add] method
-	size: size, 		// if not passed in, default is -1
-	distance: distance, 	// if not passed in, default is 0
-	x: 0, y: 0, z: 0,	// screen position (-1 => 1) z = 0 is in front z = 1 is back
-	scale: 1,
-	rotation: 0,
-	opacity: opacity,	// if not passed in, default is 1
-	color: color,		// if not passed in, default is new Color( 0xffffff ) (white)
-	blending: blending	// if not passed in, default is NormalBlending
-}
-			</code>
-		</div>
-
-		<h3>[property:Vector3 positionScreen]</h3>
-		<div>The position of the lens flare on the screen.</div>
-
-		<h3>[property:Function customUpdateCallback]</h3>
-		<div>
-		A custom update callback. Default is undefined, set this to override [page:.updateLensFlares updateLensFlares]().
-		</div>
-
-		<h2>Methods</h2>
-		<div>See the base [page:Object3D] class for common methods.</div>
-
-
-		<h3>[method:null add]( [page:Texture texture], [page:Float size], [page:Float distance], [page:Materials blending], [page:Color color] )</h3>
-		<div>
-		Adds a lens flare. Takes the same parameters as the constructor.
-		</div>
-
-		<h3>[method:LensFlare clone]()</h3>
-		<div>
-			Return a new LensFlare with the same parameters as this one.
-		</div>
-
-		<h3>[method:LensFlare copy]( [page:LensFlare source] )</h3>
-		<div>
-			Copy the parameters from the [page:LensFlare source] LensFlare into this one.
-		</div>
-
-		<h3>[method:null updateLensFlares]()</h3>
-		<div>
-		Updates [page:.lensFlares lensFlares] based on the [page:LensFlare.positionScreen positionScreen] 
-		property.<br /><br />
-
-		Can be overridden by setting the [page:.customUpdateCallback customUpdateCallback] function.
-		</div>
-
-
-		<h2>Source</h2>
-
-		[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
-	</body>
-</html>

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

@@ -67,8 +67,8 @@
 
 
 		<h3>[property:Material material]</h3>
 		<h3>[property:Material material]</h3>
 		<div>
 		<div>
-			An instance of material derived from the [page:Material] base class, defining the
-			object's appearance. Default is a [page:MeshBasicMaterial] with a random colour.
+			An instance of material derived from the [page:Material] base class or an array of materials, defining the
+			object's appearance. Default is a [page:MeshBasicMaterial] with a random color.
 		</div>
 		</div>
 
 
 		<h3>[property:Array morphTargetInfluences]</h3>
 		<h3>[property:Array morphTargetInfluences]</h3>

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

@@ -51,7 +51,7 @@
 		<h3>[property:Material material]</h3>
 		<h3>[property:Material material]</h3>
 		<div>
 		<div>
 			An instance of [page:Material], defining the object's appearance.
 			An instance of [page:Material], defining the object's appearance.
-			Default is a [page:PointsMaterial] with a random colour.
+			Default is a [page:PointsMaterial] with a random color.
 		</div>
 		</div>
 
 
 
 

+ 90 - 79
docs/api/objects/Sprite.html

@@ -1,79 +1,90 @@
-<!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:Object3D] &rarr;
-
-		<h1>[name]</h1>
-
-		<div class="desc">
-			A sprite is a plane that always faces towards the camera, generally with a
-			partially transparent texture applied.<br /><br />
-
-			Sprites do not cast shadows, setting <code>castShadow = true</code> will have no effect.
-		</div>
-
-		<h2>Example</h2>
-
-		<code>
-var spriteMap = new THREE.TextureLoader().load( "sprite.png" );
-var spriteMaterial = new THREE.SpriteMaterial( { map: spriteMap, color: 0xffffff } );
-var sprite = new THREE.Sprite( spriteMaterial );
-scene.add( sprite );
-		</code>
-
-
-		<h2>Constructor</h2>
-
-		<h3>[name]( [page:Material material] )</h3>
-		<div>
-    [page:Material material] - (optional) an instance of [page:SpriteMaterial]. Default is a white [page:SpriteMaterial].<br /><br />
-
-		Creates a new [name].
-		</div>
-
-
-		<h2>Properties</h2>
-		<div>See the base [page:Object3D] class for common properties.</div>
-
-		<h3>[property:Boolean isSprite]</h3>
-		<div>
-			Used to check whether this or derived classes are sprites. Default is *true*.<br /><br />
-
-			You should not change this, as it used internally for optimisation.
-		</div>
-
-
-		<h3>[property:SpriteMaterial material]</h3>
-		<div>
-		An instance of [page:SpriteMaterial], defining the object's appearance.
-		Default is a white [page:SpriteMaterial].
-		</div>
-
-
- 		<h2>Methods</h2>
-		<div>See the base [page:Object3D] class for common methods.</div>
-
-		<h3>[method:Sprite clone]()</h3>
-		<div>
-		Returns a clone of this Sprite object and any descendants.
-		</div>
-
-		<h3>[method:Array raycast]( [page:Raycaster raycaster], [page:Array intersects] )</h3>
-		<div>
-		Get intersections between a casted ray and this sprite.
-		[page:Raycaster.intersectObject] will call this method.
-		</div>
-
-
-		<h2>Source</h2>
-
-		[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
-	</body>
-</html>
+<!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:Object3D] &rarr;
+
+		<h1>[name]</h1>
+
+		<div class="desc">
+			A sprite is a plane that always faces towards the camera, generally with a
+			partially transparent texture applied.<br /><br />
+
+			Sprites do not cast shadows, setting <code>castShadow = true</code> will have no effect.
+		</div>
+
+		<h2>Example</h2>
+
+		<code>
+var spriteMap = new THREE.TextureLoader().load( "sprite.png" );
+var spriteMaterial = new THREE.SpriteMaterial( { map: spriteMap, color: 0xffffff } );
+var sprite = new THREE.Sprite( spriteMaterial );
+scene.add( sprite );
+		</code>
+
+
+		<h2>Constructor</h2>
+
+		<h3>[name]( [page:Material material] )</h3>
+		<div>
+    [page:Material material] - (optional) an instance of [page:SpriteMaterial]. Default is a white [page:SpriteMaterial].<br /><br />
+
+		Creates a new [name].
+		</div>
+
+
+		<h2>Properties</h2>
+		<div>See the base [page:Object3D] class for common properties.</div>
+
+		<h3>[property:Boolean isSprite]</h3>
+		<div>
+			Used to check whether this or derived classes are sprites. Default is *true*.<br /><br />
+
+			You should not change this, as it used internally for optimisation.
+		</div>
+
+
+		<h3>[property:SpriteMaterial material]</h3>
+		<div>
+		An instance of [page:SpriteMaterial], defining the object's appearance.
+		Default is a white [page:SpriteMaterial].
+		</div>
+
+
+		<h3>[property:Vector2 center]</h3>
+		<div>
+		The sprite's anchor point, and the point around which the sprite rotates. A value of (0.5, 0.5) corresponds to the midpoint of the sprite.
+		A value of (0, 0) corresponds to the lower left corner of the sprite. The default is (0.5, 0.5).
+		</div>
+
+		<h2>Methods</h2>
+		<div>See the base [page:Object3D] class for common methods.</div>
+
+		<h3>[method:Sprite clone]()</h3>
+		<div>
+		Returns a clone of this Sprite object and any descendants.
+		</div>
+
+		<h3>[method:Sprite copy]( [page:Sprite sprite] )</h3>
+		<div>
+		Copies the properties of the passed sprite to this one.
+		</div>
+
+		<h3>[method:Array raycast]( [page:Raycaster raycaster], [page:Array intersects] )</h3>
+		<div>
+		Get intersections between a casted ray and this sprite.
+		[page:Raycaster.intersectObject] will call this method.
+		</div>
+
+
+		<h2>Source</h2>
+
+		[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+	</body>
+</html>

+ 134 - 134
docs/api/renderers/WebGLRenderTarget.html

@@ -1,134 +1,134 @@
-<!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 [link:https://msdn.microsoft.com/en-us/library/bb976073.aspx render target] is a buffer
-			where the video card draws pixels for a scene that	is being rendered in the background.
-			It is used in different effects, such as applying postprocessing to a rendered image
-			before displaying it on the screen.
-		</div>
-
-
-		<h2>Constructor</h2>
-
-
-		<h3>[name]([page:Number width], [page:Number height], [page:Object options])</h3>
-
-		<div>
-		[page:Float width] - The width of the renderTarget. <br />
-		[page:Float height] - The height of the renderTarget.<br />
-		options - (optional object that holds texture parameters for an auto-generated target
-		texture and depthBuffer/stencilBuffer booleans.
-
-		For an explanation of the texture parameters see [page:Texture Texture]. The following are
-		valid options:<br /><br />
-
-		[page:Constant wrapS] - default is [page:Textures ClampToEdgeWrapping]. <br />
-		[page:Constant wrapT] - default is [page:Textures ClampToEdgeWrapping]. <br />
-		[page:Constant magFilter] - default is [page:Textures .LinearFilter]. <br />
-		[page:Constant minFilter] - default is [page:Textures LinearFilter]. <br />
-		[page:Constant format] - default is [page:Textures RGBAFormat]. <br />
-		[page:Constant type] - default is [page:Textures UnsignedByteType]. <br />
-		[page:Number anisotropy] - default is *1*. See [page:Texture.anistropy]<br />
-		[page:Constant encoding] - default is [page:Textures LinearEncoding]. <br />
-		[page:Boolean depthBuffer] - default is *true*. Set this to false if you don't need it. <br />
-		[page:Boolean stencilBuffer] - default is *true*. Set this to false if you don't need it.<br /><br />
-
-		Creates a new [name]
-		</div>
-
-		<h2>Properties</h2>
-
-		<h3>[property:number uuid]</h3>
-		<div>
-		A unique number for this render target instance.
-		</div>
-
-		<h3>[property:number width]</h3>
-		<div>
-		The width of the render target.
-		</div>
-
-		<h3>[property:number height]</h3>
-		<div>
-		The height of the render target.
-		</div>
-
-		<h3>[property:Vector4 scissor]</h3>
-		<div>
-		A rectangular area inside the render target's viewport. Fragments that are outside the area will be discarded.
-		</div>
-
-		<h3>[property:boolean scissorTest]</h3>
-		<div>
-		Indicates whether the scissor test is active or not.
-		</div>
-
-		<h3>[property:Vector4 viewport]</h3>
-		<div>
-		The viewport of this render target.
-		</div>
-
-		<h3>[property:Texture texture]</h3>
-		<div>
-		This texture instance holds the rendered pixels. Use it as input for further processing.
-		</div>
-
-		<h3>[property:boolean depthBuffer]</h3>
-		<div>
-		Renders to the depth buffer. Default is true.
-		</div>
-
-		<h3>[property:boolean stencilBuffer]</h3>
-		<div>
-		Renders to the stencil buffer. Default is true.
-		</div>
-
-		<h3>[property:DepthTexture depthTexture]</h3>
-		<div>
-		If set, the scene depth will be rendered to this texture. Default is null.
-		</div>
-
-
-		<h2>Methods</h2>
-
-		<h3>[method:null setSize]( [page:Number width], [page:Number height] )</h3>
-		<div>
-		Sets the size of the render target.
-		</div>
-
-		<h3>[method:WebGLRenderTarget clone]()</h3>
-		<div>
-		Creates a copy of this render target.
-		</div>
-
-		<h3>[method:WebGLRenderTarget copy]( [page:WebGLRenderTarget source] )</h3>
-		<div>
-		Adopts the settings of the given render target.
-		</div>
-
-		<h3>[method:null dispose]()</h3>
-		<div>
-		Dispatches a dispose event.
-		</div>
-
-
-
-
-
-		<h3>[page:EventDispatcher EventDispatcher] methods are available on this class.</h3>
-
-		<h2>Source</h2>
-
-		[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
-	</body>
-</html>
+<!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 [link:https://msdn.microsoft.com/en-us/library/ff604997.aspx render target] is a buffer
+			where the video card draws pixels for a scene that	is being rendered in the background.
+			It is used in different effects, such as applying postprocessing to a rendered image
+			before displaying it on the screen.
+		</div>
+
+
+		<h2>Constructor</h2>
+
+
+		<h3>[name]([page:Number width], [page:Number height], [page:Object options])</h3>
+
+		<div>
+		[page:Float width] - The width of the renderTarget. <br />
+		[page:Float height] - The height of the renderTarget.<br />
+		options - (optional object that holds texture parameters for an auto-generated target
+		texture and depthBuffer/stencilBuffer booleans.
+
+		For an explanation of the texture parameters see [page:Texture Texture]. The following are
+		valid options:<br /><br />
+
+		[page:Constant wrapS] - default is [page:Textures ClampToEdgeWrapping]. <br />
+		[page:Constant wrapT] - default is [page:Textures ClampToEdgeWrapping]. <br />
+		[page:Constant magFilter] - default is [page:Textures LinearFilter]. <br />
+		[page:Constant minFilter] - default is [page:Textures LinearFilter]. <br />
+		[page:Constant format] - default is [page:Textures RGBAFormat]. <br />
+		[page:Constant type] - default is [page:Textures UnsignedByteType]. <br />
+		[page:Number anisotropy] - default is *1*. See [page:Texture.anistropy]<br />
+		[page:Constant encoding] - default is [page:Textures LinearEncoding]. <br />
+		[page:Boolean depthBuffer] - default is *true*. Set this to false if you don't need it. <br />
+		[page:Boolean stencilBuffer] - default is *true*. Set this to false if you don't need it.<br /><br />
+
+		Creates a new [name]
+		</div>
+
+		<h2>Properties</h2>
+
+		<h3>[property:number uuid]</h3>
+		<div>
+		A unique number for this render target instance.
+		</div>
+
+		<h3>[property:number width]</h3>
+		<div>
+		The width of the render target.
+		</div>
+
+		<h3>[property:number height]</h3>
+		<div>
+		The height of the render target.
+		</div>
+
+		<h3>[property:Vector4 scissor]</h3>
+		<div>
+		A rectangular area inside the render target's viewport. Fragments that are outside the area will be discarded.
+		</div>
+
+		<h3>[property:boolean scissorTest]</h3>
+		<div>
+		Indicates whether the scissor test is active or not.
+		</div>
+
+		<h3>[property:Vector4 viewport]</h3>
+		<div>
+		The viewport of this render target.
+		</div>
+
+		<h3>[property:Texture texture]</h3>
+		<div>
+		This texture instance holds the rendered pixels. Use it as input for further processing.
+		</div>
+
+		<h3>[property:boolean depthBuffer]</h3>
+		<div>
+		Renders to the depth buffer. Default is true.
+		</div>
+
+		<h3>[property:boolean stencilBuffer]</h3>
+		<div>
+		Renders to the stencil buffer. Default is true.
+		</div>
+
+		<h3>[property:DepthTexture depthTexture]</h3>
+		<div>
+		If set, the scene depth will be rendered to this texture. Default is null.
+		</div>
+
+
+		<h2>Methods</h2>
+
+		<h3>[method:null setSize]( [page:Number width], [page:Number height] )</h3>
+		<div>
+		Sets the size of the render target.
+		</div>
+
+		<h3>[method:WebGLRenderTarget clone]()</h3>
+		<div>
+		Creates a copy of this render target.
+		</div>
+
+		<h3>[method:WebGLRenderTarget copy]( [page:WebGLRenderTarget source] )</h3>
+		<div>
+		Adopts the settings of the given render target.
+		</div>
+
+		<h3>[method:null dispose]()</h3>
+		<div>
+		Dispatches a dispose event.
+		</div>
+
+
+
+
+
+		<h3>[page:EventDispatcher EventDispatcher] methods are available on this class.</h3>
+
+		<h2>Source</h2>
+
+		[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+	</body>
+</html>

+ 70 - 70
docs/api/renderers/WebGLRenderTargetCube.html

@@ -1,71 +1,71 @@
-<!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:WebGLRenderTarget] &rarr;
-
-		<h1>[name]</h1>
-
-		<div class="desc">
-			Used by the [page:CubeCamera] as its [page:WebGLRenderTarget].
-		</div>
-
-		<h2>Examples</h2>
-
-		<div>See [page:CubeCamera] for examples.</div>
-
-
-		<h2>Constructor</h2>
-
-
-		<h3>[name]([page:Number width], [page:Number height], [page:Object options])</h3>
-		<div>
-		[page:Float width] - The width of the renderTarget. <br />
-		[page:Float height] - The height of the renderTarget. <br />
-		options - (optional0 object that holds texture parameters for an auto-generated target
-		texture and depthBuffer/stencilBuffer booleans.
-
-		For an explanation of the texture parameters see [page:Texture Texture]. The following are
-		valid options:<br /><br />
-
-		[page:Constant wrapS] - default is [page:Textures ClampToEdgeWrapping]. <br />
-		[page:Constant wrapT] - default is [page:Textures ClampToEdgeWrapping]. <br />
-		[page:Constant magFilter] - default is [page:Textures .LinearFilter]. <br />
-		[page:Constant minFilter] - default is [page:Textures LinearFilter]. <br />
-		[page:Constant format] - default is [page:Textures RGBAFormat]. <br />
-		[page:Constant type] - default is [page:Textures UnsignedByteType]. <br />
-		[page:Number anisotropy] - default is *1*. See [page:Texture.anistropy]<br />
-		[page:Constant encoding] - default is [page:Textures LinearEncoding]. <br />
-		[page:Boolean depthBuffer] - default is *true*. Set this to false if you don't need it. <br />
-		[page:Boolean stencilBuffer] - default is *true*. Set this to false if you don't need it.<br /><br />
-
-		Creates a new [name]]
-		</div>
-
-		<h2>Properties</h2>
-
-		<h3>[property:integer activeCubeFace]</h3>
-		<div>
-		The activeCubeFace property corresponds to a cube side (PX 0, NX 1, PY 2, NY 3, PZ 4, NZ 5) and is
-		used and set internally by the [page:CubeCamera].
-		</div>
-
-		<h3>See [page:WebGLRenderTarget] for inherited properties</h3>
-
-
-		<h2>Methods</h2>
-
-		<h3>See [page:WebGLRenderTarget] for inherited methods</h3>
-
-
-		<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:WebGLRenderTarget] &rarr;
+
+		<h1>[name]</h1>
+
+		<div class="desc">
+			Used by the [page:CubeCamera] as its [page:WebGLRenderTarget].
+		</div>
+
+		<h2>Examples</h2>
+
+		<div>See [page:CubeCamera] for examples.</div>
+
+
+		<h2>Constructor</h2>
+
+
+		<h3>[name]([page:Number width], [page:Number height], [page:Object options])</h3>
+		<div>
+		[page:Float width] - The width of the renderTarget. <br />
+		[page:Float height] - The height of the renderTarget. <br />
+		options - (optional) object that holds texture parameters for an auto-generated target
+		texture and depthBuffer/stencilBuffer booleans.
+
+		For an explanation of the texture parameters see [page:Texture Texture]. The following are
+		valid options:<br /><br />
+
+		[page:Constant wrapS] - default is [page:Textures ClampToEdgeWrapping]. <br />
+		[page:Constant wrapT] - default is [page:Textures ClampToEdgeWrapping]. <br />
+		[page:Constant magFilter] - default is [page:Textures .LinearFilter]. <br />
+		[page:Constant minFilter] - default is [page:Textures LinearFilter]. <br />
+		[page:Constant format] - default is [page:Textures RGBAFormat]. <br />
+		[page:Constant type] - default is [page:Textures UnsignedByteType]. <br />
+		[page:Number anisotropy] - default is *1*. See [page:Texture.anistropy]<br />
+		[page:Constant encoding] - default is [page:Textures LinearEncoding]. <br />
+		[page:Boolean depthBuffer] - default is *true*. Set this to false if you don't need it. <br />
+		[page:Boolean stencilBuffer] - default is *true*. Set this to false if you don't need it.<br /><br />
+
+		Creates a new [name]
+		</div>
+
+		<h2>Properties</h2>
+
+		<h3>[property:integer activeCubeFace]</h3>
+		<div>
+		The activeCubeFace property corresponds to a cube side (PX 0, NX 1, PY 2, NY 3, PZ 4, NZ 5) and is
+		used and set internally by the [page:CubeCamera].
+		</div>
+
+		<h3>See [page:WebGLRenderTarget] for inherited properties</h3>
+
+
+		<h2>Methods</h2>
+
+		<h3>See [page:WebGLRenderTarget] for inherited methods</h3>
+
+
+		<h2>Source</h2>
+
+		[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+	</body>
+</html>

+ 21 - 33
docs/api/renderers/WebGLRenderer.html

@@ -51,7 +51,11 @@
 		Default is *true*.<br />
 		Default is *true*.<br />
 
 
 		[page:Boolean preserveDrawingBuffer] - whether to preserve the buffers until manually cleared
 		[page:Boolean preserveDrawingBuffer] - whether to preserve the buffers until manually cleared
-	  or overwritten. Default is *false*.<br />
+		or overwritten. Default is *false*.<br />
+
+		[page:String powerPreference] - Provides a hint to the user agent indicating what configuration
+		of GPU is suitable for this WebGL context. Can be *"high-performance"*, *"low-power"* or *"default"*. Default is *"default"*.
+		See the [link:https://www.khronos.org/registry/webgl/specs/latest/1.0/#5.2 WebGL spec] for more information.<br />
 
 
 		[page:Boolean depth] - whether the drawing buffer has a
 		[page:Boolean depth] - whether the drawing buffer has a
 		[link:https://en.wikipedia.org/wiki/Z-buffering depth buffer] of at least 16 bits.
 		[link:https://en.wikipedia.org/wiki/Z-buffering depth buffer] of at least 16 bits.
@@ -95,8 +99,8 @@
 		- [property:Boolean floatFragmentTextures]: whether the context supports the [link:https://developer.mozilla.org/en-US/docs/Web/API/OES_texture_float OES_texture_float] extension.
 		- [property:Boolean floatFragmentTextures]: whether the context supports the [link:https://developer.mozilla.org/en-US/docs/Web/API/OES_texture_float OES_texture_float] extension.
 			According to [link:https://webglstats.com/ WebGLStats], as of February 2016 over 95% of WebGL enabled devices support this.<br />
 			According to [link:https://webglstats.com/ WebGLStats], as of February 2016 over 95% of WebGL enabled devices support this.<br />
 		- [property:Boolean floatVertexTextures]: *true* if [property:Boolean floatFragmentTextures] and [property:Boolean vertexTextures] are both true.<br />
 		- [property:Boolean floatVertexTextures]: *true* if [property:Boolean floatFragmentTextures] and [property:Boolean vertexTextures] are both true.<br />
-		- [property:Method getMaxAnisotropy](): see [page:WebGLRenderer.getMaxAnisotropy getMaxAnisotropy] below. <br />
-		- [property:Method getMaxPrecision](): see [page:WebGLRenderer.getMaxPrecision getMaxPrecision] below. <br />
+		- [property:Method getMaxAnisotropy](): Returns the maximum available anisotropy.<br />
+		- [property:Method getMaxPrecision](): Returns the maximum available precision for vertex and fragment shaders. <br />
 		- [property:Boolean logarithmicDepthBuffer]: *true* if the [property:parameter logarithmicDepthBuffer] was set to true in the constructor and
 		- [property:Boolean logarithmicDepthBuffer]: *true* if the [property:parameter logarithmicDepthBuffer] was set to true in the constructor and
 		the context supports the [link:https://developer.mozilla.org/en-US/docs/Web/API/EXT_frag_depth EXT_frag_depth] extension.
 		the context supports the [link:https://developer.mozilla.org/en-US/docs/Web/API/EXT_frag_depth EXT_frag_depth] extension.
 			According to [link:https://webglstats.com/ WebGLStats], as of February 2016 around 66% of WebGL enabled devices support this.<br />
 			According to [link:https://webglstats.com/ WebGLStats], as of February 2016 around 66% of WebGL enabled devices support this.<br />
@@ -129,7 +133,7 @@
 		<h3>[property:WebGLRenderingContext context]</h3>
 		<h3>[property:WebGLRenderingContext context]</h3>
 		<div>
 		<div>
 		The renderer obtains a [link:https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContext RenderingContext] context
 		The renderer obtains a [link:https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContext RenderingContext] context
-		  from its [page:WebGLRenderer.domElement domElement][page:WebGLRenderer.domElement domElement] by default, using
+		  from its [page:WebGLRenderer.domElement domElement] by default, using
 			[link:https://developer.mozilla.org/en/docs/Web/API/HTMLCanvasElement/getContext HTMLCanvasElement.getContext]().<br /><br />
 			[link:https://developer.mozilla.org/en/docs/Web/API/HTMLCanvasElement/getContext HTMLCanvasElement.getContext]().<br /><br />
 
 
 		You can create this manually, however it must correspond to the
 		You can create this manually, however it must correspond to the
@@ -185,6 +189,12 @@
 			</li>
 			</li>
 		</ul>
 		</ul>
 		</div>
 		</div>
+		<div>By default these data are reset at each render calls, but when using the composer or mirrors it can be preferred to reset them with a custom pattern :
+		<code>
+		renderer.info.autoReset = false;
+		renderer.info.reset();
+		</code>
+		</div>
 
 
 		<h3>[property:Boolean localClippingEnabled]</h3>
 		<h3>[property:Boolean localClippingEnabled]</h3>
 		<div>Defines whether the renderer respects object-level clipping planes. Default is *false*.</div>
 		<div>Defines whether the renderer respects object-level clipping planes. Default is *false*.</div>
@@ -237,21 +247,6 @@
 		<div>Defines shadow map type (unfiltered, percentage close filtering, percentage close filtering with bilinear filtering in shader)</div>
 		<div>Defines shadow map type (unfiltered, percentage close filtering, percentage close filtering with bilinear filtering in shader)</div>
 		<div>Options are THREE.BasicShadowMap, THREE.PCFShadowMap (default), THREE.PCFSoftShadowMap. See [page:WebGLRenderer WebGLRenderer constants] for details.</div>
 		<div>Options are THREE.BasicShadowMap, THREE.PCFShadowMap (default), THREE.PCFSoftShadowMap. See [page:WebGLRenderer WebGLRenderer constants] for details.</div>
 
 
-		<h3>[property:Boolean shadowMap.renderReverseSided]</h3>
-		<div>
-		Whether to render the opposite side as specified by the material into the shadow map.
-			When disabled, an appropriate shadow.bias must be set on the light source for surfaces that can
-			both cast and receive shadows at the same time to render correctly. Default is *true*.
-		</div>
-
-		<h3>[property:Boolean shadowMap.renderSingleSided]</h3>
-		<div>
-		Whether to treat materials specified as double-sided as if they were specified as front-sided
-		when rendering the shadow map. When disabled, an appropriate shadow.bias must be set on the light
-		source for surfaces that can both cast and receive shadows at the same time to render correctly.
-		Default is *true*.
-		</div>
-
 		<h3>[property:Boolean sortObjects]</h3>
 		<h3>[property:Boolean sortObjects]</h3>
 		<div>
 		<div>
 		Defines whether the renderer should sort objects. Default is *true*.<br /><br />
 		Defines whether the renderer should sort objects. Default is *true*.<br /><br />
@@ -321,6 +316,9 @@
 		<h3>[method:null compile]( [page:Scene scene], [page:Camera camera] )</h3>
 		<h3>[method:null compile]( [page:Scene scene], [page:Camera camera] )</h3>
 		<div>Compiles all materials in the scene with the camera. This is useful to precompile shaders before the first rendering.</div>
 		<div>Compiles all materials in the scene with the camera. This is useful to precompile shaders before the first rendering.</div>
 
 
+		<h3>[method:null copyFramebufferToTexture]( [page:Vector2 position], [page:Texture texture], [page:Number level] )</h3>
+		<div>Copies pixels from the current WebGLFramebuffer into a 2D texture. Enables access to [link:https://developer.mozilla.org/de/docs/Web/API/WebGLRenderingContext/copyTexImage2D WebGLRenderingContext.copyTexImage2D].</div>
+
 		<h3>[method:null dispose]( )</h3>
 		<h3>[method:null dispose]( )</h3>
 		<div>Dispose of the current rendering context.</div>
 		<div>Dispose of the current rendering context.</div>
 
 
@@ -355,11 +353,11 @@
 		<h3>[method:WebGLContextAttributes getContextAttributes]()</h3>
 		<h3>[method:WebGLContextAttributes getContextAttributes]()</h3>
 		<div>Returns an object that describes the attributes set on the WebGL context when it was created.</div>
 		<div>Returns an object that describes the attributes set on the WebGL context when it was created.</div>
 
 
-		<h3>[method:RenderTarget getCurrentRenderTarget](  )</h3>
+		<h3>[method:RenderTarget getRenderTarget]()</h3>
 		<div>Returns the current RenderTarget, if any.</div>
 		<div>Returns the current RenderTarget, if any.</div>
 
 
-		<h3>[method:Number getMaxAnisotropy]()</h3>
-		<div>This returns the anisotropy level of the textures.</div>
+		<h3>[method:RenderTarget getCurrentViewport]()</h3>
+		<div>Returns the current viewport.</div>
 
 
 		<h3>[method:Object getDrawingBufferSize]()</h3>
 		<h3>[method:Object getDrawingBufferSize]()</h3>
 		<div>Returns an object containing the width and height of the renderer's drawing buffer, in pixels.</div>
 		<div>Returns an object containing the width and height of the renderer's drawing buffer, in pixels.</div>
@@ -367,9 +365,6 @@
 		<h3>[method:number getPixelRatio]()</h3>
 		<h3>[method:number getPixelRatio]()</h3>
 		<div>Returns current device pixel ratio used.</div>
 		<div>Returns current device pixel ratio used.</div>
 
 
-		<h3>[method:string getPrecision]()</h3>
-		<div>This gets the precision used by the shaders. It returns "highp","mediump" or "lowp".</div>
-
 		<h3>[method:Object getSize]()</h3>
 		<h3>[method:Object getSize]()</h3>
 		<div>Returns an object containing the width and height of the renderer's output canvas, in pixels.</div>
 		<div>Returns an object containing the width and height of the renderer's output canvas, in pixels.</div>
 
 
@@ -414,13 +409,6 @@
 		<h3>[method:null setClearColor]( [page:Color color], [page:Float alpha] )</h3>
 		<h3>[method:null setClearColor]( [page:Color color], [page:Float alpha] )</h3>
 		<div>Sets the clear color and opacity.</div>
 		<div>Sets the clear color and opacity.</div>
 
 
-		<h3>[method:null setFaceCulling]( [page:Renderer cullFace], [page:Renderer frontFace] )</h3>
-		<div>
-		See [page:Renderer WebGLRenderer constants] for all possible values for [page:Renderer cullFace] and [page:Renderer frontFace].<br />
-		Used for setting the gl.frontFace and gl.cullFace states in the GPU, thus enabling/disabling face culling when rendering.<br />
-		If cullFace is set to [page:Renderer CullFaceNone], culling will be disabled.<br />
-		</div>
-
 		<h3>[method:null setPixelRatio]( [page:number value] )</h3>
 		<h3>[method:null setPixelRatio]( [page:number value] )</h3>
 		<div>Sets device pixel ratio. This is usually used for HiDPI device to prevent bluring output canvas.</div>
 		<div>Sets device pixel ratio. This is usually used for HiDPI device to prevent bluring output canvas.</div>
 
 
@@ -451,7 +439,7 @@
 		<div>
 		<div>
 		Resizes the output canvas to (width, height) with device pixel ratio taken into account,
 		Resizes the output canvas to (width, height) with device pixel ratio taken into account,
 			and also sets the viewport to fit that size, starting in (0, 0).
 			and also sets the viewport to fit that size, starting in (0, 0).
-			Setting [page:Boolean updateStyle] to true adds explicit pixel units to the output canvas style.
+			Setting [page:Boolean updateStyle] to false prevents any style changes to the output canvas.
 		</div>
 		</div>
 
 
 		<h3>[method:null setTexture2D]( [page:Texture texture], [page:number slot] )</h3>
 		<h3>[method:null setTexture2D]( [page:Texture texture], [page:number slot] )</h3>

+ 49 - 49
docs/api/scenes/Fog.html

@@ -1,50 +1,50 @@
-<!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">This class contains the parameters that define linear fog, i.e., that grows linearly denser with the distance.</div>
-
-
-		<h2>Constructor</h2>
-
-
-		<h3>[name]( [page:Integer hex], [page:Float near], [page:Float far] )</h3>
-		<div>The hex parameter is passed to the [page:Color] constructor to set the color property.  Hex can be a hexadecimal integer or a CSS-style string.</div>
-
-		<h2>Properties</h2>
-
-		<h3>[property:String name]</h3>
-		<div>Optional name of the object (doesn't need to be unique). Default is an empty string.</div>
-
-		<h3>[property:Color color]</h3>
-		<div>Fog color.  Example: If set to black, far away objects will be rendered black.</div>
-
-		<h3>[property:Float near]</h3>
-		<div>The minimum distance to start applying fog. Objects that are less than 'near' units from the active camera won't be affected by fog.</div>
-		<div>Default is 1.</div>
-
-		<h3>[property:Float far]</h3>
-		<div>The maximum distance at which fog stops being calculated and applied. Objects that are more than 'far' units away from the active camera won't be affected by fog.</div>
-		<div>Default is 1000.</div>
-
-		<h2>Methods</h2>
-
-		<h3>[method:Fog clone]()</h3>
-		<div>Returns a new fog instance with the same parameters as this one.</div>
-
-		<h3>[method:Fog toJSON]()</h3>
-		<div>Return fog data in JSON format.</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">This class contains the parameters that define linear fog, i.e., that grows linearly denser with the distance.</div>
+
+
+		<h2>Constructor</h2>
+
+
+		<h3>[name]( [page:Integer color], [page:Float near], [page:Float far] )</h3>
+		<div>The color parameter is passed to the [page:Color] constructor to set the color property. Color can be a hexadecimal integer or a CSS-style string.</div>
+
+		<h2>Properties</h2>
+
+		<h3>[property:String name]</h3>
+		<div>Optional name of the object (doesn't need to be unique). Default is an empty string.</div>
+
+		<h3>[property:Color color]</h3>
+		<div>Fog color.  Example: If set to black, far away objects will be rendered black.</div>
+
+		<h3>[property:Float near]</h3>
+		<div>The minimum distance to start applying fog. Objects that are less than 'near' units from the active camera won't be affected by fog.</div>
+		<div>Default is 1.</div>
+
+		<h3>[property:Float far]</h3>
+		<div>The maximum distance at which fog stops being calculated and applied. Objects that are more than 'far' units away from the active camera won't be affected by fog.</div>
+		<div>Default is 1000.</div>
+
+		<h2>Methods</h2>
+
+		<h3>[method:Fog clone]()</h3>
+		<div>Returns a new fog instance with the same parameters as this one.</div>
+
+		<h3>[method:Fog toJSON]()</h3>
+		<div>Return fog data in JSON format.</div>
+
+		<h2>Source</h2>
+
+		[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+	</body>
+</html>

+ 2 - 2
docs/api/scenes/FogExp2.html

@@ -16,9 +16,9 @@
 		<h2>Constructor</h2>
 		<h2>Constructor</h2>
 
 
 
 
-		<h3>[name]( [page:Integer hex], [page:Float density] )</h3>
+		<h3>[name]( [page:Integer color], [page:Float density] )</h3>
 
 
-		<div>The hex parameter is passed to the [page:Color] constructor to set the color property.  Hex can be a hexadecimal integer or a CSS-style string.</div>
+		<div>The color parameter is passed to the [page:Color] constructor to set the color property. Color can be a hexadecimal integer or a CSS-style string.</div>
 		<h2>Properties</h2>
 		<h2>Properties</h2>
 
 
 		<h3>[property:String name]</h3>
 		<h3>[property:String name]</h3>

+ 27 - 0
docs/api/textures/DataTexture.html

@@ -32,6 +32,33 @@
 			In order to use the types THREE.FloatType and THREE.HalfFloatType, the WebGL implementation must support the respective extensions OES_texture_float and OES_texture_half_float. In order to use THREE.LinearFilter for component-wise, bilinear interpolation of the texels based on these types, the WebGL extensions OES_texture_float_linear or OES_texture_half_float_linear must also be present.
 			In order to use the types THREE.FloatType and THREE.HalfFloatType, the WebGL implementation must support the respective extensions OES_texture_float and OES_texture_half_float. In order to use THREE.LinearFilter for component-wise, bilinear interpolation of the texels based on these types, the WebGL extensions OES_texture_float_linear or OES_texture_half_float_linear must also be present.
 		</div>
 		</div>
 
 
+		<h2>Example</h2>
+
+		<code>
+		// create a buffer with color data
+
+		var size = width * height;
+		var data = new Uint8Array( 3 * size );
+
+		var r = Math.floor( color.r * 255 );
+		var g = Math.floor( color.g * 255 );
+		var b = Math.floor( color.b * 255 );
+
+		for ( var i = 0; i < size; i ++ ) {
+
+			var stride = i * 3;
+
+			data[ stride ] = r;
+			data[ stride + 1 ] = g;
+			data[ stride + 2 ] = b;
+
+		}
+
+		// used the buffer to create a [name]
+
+		var texture = new THREE.DataTexture( data, width, height, THREE.RGBFormat );
+		</code>
+
 		<h2>Properties</h2>
 		<h2>Properties</h2>
 
 
 		<h3>[property:Image image]</h3>
 		<h3>[property:Image image]</h3>

+ 1 - 1
docs/api/textures/Texture.html

@@ -15,7 +15,7 @@
 
 
 		<h2>Constructor</h2>
 		<h2>Constructor</h2>
 
 
-		<h3>[name]( image, mapping, wrapS, wrapT, magFilter, minFilter, format, type, anisotropy )</h3>
+		<h3>[name]( image, mapping, wrapS, wrapT, magFilter, minFilter, format, type, anisotropy, encoding )</h3>
 
 
 		<h2>Example</h2>
 		<h2>Example</h2>
 
 

+ 1 - 5
docs/api/textures/VideoTexture.html

@@ -15,11 +15,7 @@
 		<div class="desc">
 		<div class="desc">
 		Creates a texture for use with a video texture.<br /><br />
 		Creates a texture for use with a video texture.<br /><br />
 
 
-		This is almost the same as the base [page:Texture Texture] class,
-    except that it continuosly sets [page:Texture.needsUpdate needsUpdate] to *true*
-    (using <a href="https://developer.mozilla.org/en-US/docs/Web/API/window/requestAnimationFrame">requestAnimationFrame</a>)
-    so that the texture is updated as the video plays. Automatic creation of [page:Texture.mipmaps mipmaps]
-    is also disabled.
+		This is almost the same as the base [page:Texture Texture] class, except that it continuosly sets [page:Texture.needsUpdate needsUpdate] to *true* so that the texture is updated as the video plays. Automatic creation of [page:Texture.mipmaps mipmaps] is also disabled.
 		</div>
 		</div>
 
 
     <h2>Example</h2>
     <h2>Example</h2>

+ 2 - 0
docs/examples/exporters/GLTFExporter.html

@@ -79,6 +79,8 @@ exporter.parse( [ scene1, object1, object2, scene2 ], ...)
 			<li>onlyVisible - bool. Export only visible objects. Default is true.</li>
 			<li>onlyVisible - bool. Export only visible objects. Default is true.</li>
 			<li>truncateDrawRange - bool. Export just the attributes within the drawRange, if defined, instead of exporting the whole array. Default is true.</li>
 			<li>truncateDrawRange - bool. Export just the attributes within the drawRange, if defined, instead of exporting the whole array. Default is true.</li>
 			<li>binary - bool. Export in binary (.glb) format, returning an ArrayBuffer. Default is false.</li>
 			<li>binary - bool. Export in binary (.glb) format, returning an ArrayBuffer. Default is false.</li>
+			<li>embedImages - bool. Export with images embedded into the glTF asset. Default is true.</li>
+			<li>animations - Array<[page:AnimationClip AnimationClip]>. List of animations to be included in the export.
 		</ul>
 		</ul>
 		</div>
 		</div>
 		<div>
 		<div>

+ 25 - 20
docs/examples/loaders/GLTFLoader.html

@@ -28,16 +28,10 @@
 
 
 		<ul>
 		<ul>
 			<li>
 			<li>
-				<a target="_blank" href="https://github.com/KhronosGroup/glTF/tree/master/extensions/Khronos/KHR_materials_pbrSpecularGlossiness">
+				<a target="_blank" href="https://github.com/KhronosGroup/glTF/tree/master/extensions/2.0/Khronos/KHR_materials_pbrSpecularGlossiness">
 					KHR_materials_pbrSpecularGlossiness
 					KHR_materials_pbrSpecularGlossiness
 				</a>
 				</a>
 			</li>
 			</li>
-			<li>
-				<a target="_blank" href="https://github.com/KhronosGroup/glTF/tree/master/extensions/Khronos/KHR_materials_common">
-					KHR_materials_common
-				</a>
-				(experimental)
-			</li>
 			<li>
 			<li>
 				KHR_lights (experimental)
 				KHR_lights (experimental)
 			</li>
 			</li>
@@ -48,39 +42,49 @@
 		<code>
 		<code>
 			// Instantiate a loader
 			// Instantiate a loader
 			var loader = new THREE.GLTFLoader();
 			var loader = new THREE.GLTFLoader();
-	
+
 			// Load a glTF resource
 			// Load a glTF resource
 			loader.load(
 			loader.load(
 				// resource URL
 				// resource URL
 				'models/gltf/duck/duck.gltf',
 				'models/gltf/duck/duck.gltf',
 				// called when the resource is loaded
 				// called when the resource is loaded
 				function ( gltf ) {
 				function ( gltf ) {
-	
+
 					scene.add( gltf.scene );
 					scene.add( gltf.scene );
-	
+
 					gltf.animations; // Array&lt;THREE.AnimationClip&gt;
 					gltf.animations; // Array&lt;THREE.AnimationClip&gt;
 					gltf.scene; // THREE.Scene
 					gltf.scene; // THREE.Scene
 					gltf.scenes; // Array&lt;THREE.Scene&gt;
 					gltf.scenes; // Array&lt;THREE.Scene&gt;
 					gltf.cameras; // Array&lt;THREE.Camera&gt;
 					gltf.cameras; // Array&lt;THREE.Camera&gt;
-	
+
 				},
 				},
 				// called when loading is in progresses
 				// called when loading is in progresses
 				function ( xhr ) {
 				function ( xhr ) {
-	
+
 					console.log( ( xhr.loaded / xhr.total * 100 ) + '% loaded' );
 					console.log( ( xhr.loaded / xhr.total * 100 ) + '% loaded' );
-	
+
 				},
 				},
 				// called when loading has errors
 				// called when loading has errors
 				function ( error ) {
 				function ( error ) {
-	
+
 					console.log( 'An error happened' );
 					console.log( 'An error happened' );
-	
+
 				}
 				}
 			);
 			);
 			</code>
 			</code>
 
 
 		[example:webgl_loader_gltf]
 		[example:webgl_loader_gltf]
 
 
+		<h2>Browser compatibility</h2>
+
+		<p>GLTFLoader relies on ES6 <a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise">Promises</a>,
+		which are not supported in IE11. To use the loader in IE11, you must
+		<a href="https://github.com/stefanpenner/es6-promise">include a polyfill</a>
+		providing a Promise replacement.</p>
+
+		<br>
+		<hr>
+
 		<h2>Constructor</h2>
 		<h2>Constructor</h2>
 
 
 		<h3>[name]( [page:LoadingManager manager] )</h3>
 		<h3>[name]( [page:LoadingManager manager] )</h3>
@@ -99,7 +103,7 @@
 		<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>
 		<div>
 		<div>
 		[page:String url] — A string containing the path/URL of the <em>.gltf</em> or <em>.glb</em> file.<br />
 		[page:String url] — A string containing the path/URL of the <em>.gltf</em> or <em>.glb</em> file.<br />
-		[page:Function onLoad] — (optional) A function to be called after the loading is successfully completed. The function receives the loaded JSON response returned from [page:Function parse].<br />
+		[page:Function onLoad] — A function to be called after the loading is successfully completed. The function receives the loaded JSON response returned from [page:Function parse].<br />
 		[page:Function onProgress] — (optional) A function to be called while the loading is in progress. The argument will be the XMLHttpRequest instance, that contains .[page:Integer total] and .[page:Integer loaded] bytes.<br />
 		[page:Function onProgress] — (optional) A function to be called while the loading is in progress. The argument will be the XMLHttpRequest instance, that contains .[page:Integer total] and .[page:Integer loaded] bytes.<br />
 		[page:Function onError] — (optional) A function to be called if an error occurs during loading. The function receives error as an argument.<br />
 		[page:Function onError] — (optional) A function to be called if an error occurs during loading. The function receives error as an argument.<br />
 		</div>
 		</div>
@@ -120,14 +124,15 @@
 		[page:String value] — The crossOrigin string to implement CORS for loading the url from a different domain that allows CORS.
 		[page:String value] — The crossOrigin string to implement CORS for loading the url from a different domain that allows CORS.
 		</div>
 		</div>
 
 
-		<h3>[method:null parse]( [page:Object json], [page:Function callBack], [page:String path] )</h3>
+		<h3>[method:null parse]( [page:ArrayBuffer data], [page:String path], [page:Function onLoad], [page:Function onError] )</h3>
 		<div>
 		<div>
-		[page:Object json] — <em>JSON</em> object to parse.<br />
-		[page:Function callBack] — Will be called when parse completes.<br />
+		[page:ArrayBuffer data] — glTF asset to parse, as an ArrayBuffer or <em>JSON</em> string.<br />
 		[page:String path] — The base path from which to find subsequent glTF resources such as textures and .bin data files.<br />
 		[page:String path] — The base path from which to find subsequent glTF resources such as textures and .bin data files.<br />
+		[page:Function onLoad] — A function to be called when parse completes.<br />
+		[page:Function onError] — (optional) A function to be called if an error occurs during parsing. The function receives error as an argument.<br />
 		</div>
 		</div>
 		<div>
 		<div>
-		Parse a glTF-based <em>JSON</em> structure and fire [page:Function callback] when complete. The argument to [page:Function callback] will be an [page:object] that contains loaded parts: .[page:Scene scene], .[page:Array scenes], .[page:Array cameras], and .[page:Array animations].
+		Parse a glTF-based ArrayBuffer or <em>JSON</em> String and fire [page:Function onLoad] callback when complete. The argument to [page:Function onLoad] will be an [page:object] that contains loaded parts: .[page:Scene scene], .[page:Array scenes], .[page:Array cameras], and .[page:Array animations].
 		</div>
 		</div>
 
 
 		<h2>Source</h2>
 		<h2>Source</h2>

+ 12 - 11
docs/examples/loaders/LoaderSupport.html

@@ -156,10 +156,9 @@
 
 
 		<h2>Methods</h2>
 		<h2>Methods</h2>
 
 
-		<h3>[method:null validate] ( [page:Function functionCodeBuilder], [page:Boolean forceWorkerReload], Array of [page:String libLocations], [page:String libPath], [page:LoaderSupport.WorkerRunnerRefImpl runnerImpl] )</h3>
+		<h3>[method:null validate] ( [page:Function functionCodeBuilder], Array of [page:String libLocations], [page:String libPath], [page:LoaderSupport.WorkerRunnerRefImpl runnerImpl] )</h3>
 		<div>
 		<div>
 			[page:Function functionCodeBuilder] - Function that is invoked with funcBuildObject and funcBuildSingelton that allows stringification of objects and singletons.<br>
 			[page:Function functionCodeBuilder] - Function that is invoked with funcBuildObject and funcBuildSingelton that allows stringification of objects and singletons.<br>
-			[page:Boolean forceWorkerReload] - Force re-build of the worker code.<br>
 			Array of [page:String libLocations] - URL of libraries that shall be added to worker code relative to libPath.<br>
 			Array of [page:String libLocations] - URL of libraries that shall be added to worker code relative to libPath.<br>
 			[page:String libPath] - Base path used for loading libraries.<br>
 			[page:String libPath] - Base path used for loading libraries.<br>
 			[page:LoaderSupport.WorkerRunnerRefImpl runnerImpl] - The default worker parser wrapper implementation (communication and execution). An extended class could be passed here.
 			[page:LoaderSupport.WorkerRunnerRefImpl runnerImpl] - The default worker parser wrapper implementation (communication and execution). An extended class could be passed here.
@@ -178,12 +177,6 @@
 		</div>
 		</div>
 
 
 
 
-		<h3>[method:null terminateWorker] ()</h3>
-		<div>
-			Terminate the worker and the code.
-		</div>
-
-
 		<h3>[method:null setCallbacks] ( [page:Function builder], [page:Function onLoad] )</h3>
 		<h3>[method:null setCallbacks] ( [page:Function builder], [page:Function onLoad] )</h3>
 		<div>
 		<div>
 			[page:Function builder] - The builder function. Default is [page:LoaderSupport.Builder].<br>
 			[page:Function builder] - The builder function. Default is [page:LoaderSupport.Builder].<br>
@@ -251,7 +244,7 @@
 			- prepareWorkers<br>
 			- prepareWorkers<br>
 			- enqueueForRun<br>
 			- enqueueForRun<br>
 			- processQueue<br>
 			- processQueue<br>
-			- deregister
+			- tearDown
 		</div>
 		</div>
 
 
 
 
@@ -283,7 +276,10 @@
 		</div>
 		</div>
 
 
 
 
-		<h3>[method:null deregister]()</h3>
+		<h3>[method:null tearDown]( [page:Function callbackOnFinishedProcessing] )</h3>
+		<div>
+			[page:Function callbackOnFinishedProcessing] - Function called once all workers finished processing.
+		</div>
 		<div>
 		<div>
 			Terminate all workers.
 			Terminate all workers.
 		</div>
 		</div>
@@ -300,6 +296,11 @@
 			Returns the maximum number of workers.
 			Returns the maximum number of workers.
 		</div>
 		</div>
 
 
+		<h3>[method:Boolean isRunning]()</h3>
+		<div>
+			Returns if any workers are running.
+		</div>
+
 
 
 		<h3>[method:null setCrossOrigin]( [page:String crossOrigin] )</h3>
 		<h3>[method:null setCrossOrigin]( [page:String crossOrigin] )</h3>
 		<div>
 		<div>
@@ -543,7 +544,7 @@
 
 
 		<h2>Methods</h2>
 		<h2>Methods</h2>
 
 
-		<h3>[method:null isValid]( [page:Object input] )</h3>
+		<h3>[method:Boolean isValid]( [page:Object input] )</h3>
 		<div>
 		<div>
 			[page:Object input] - Can be anything
 			[page:Object input] - Can be anything
 		</div>
 		</div>

+ 6 - 5
docs/examples/loaders/MTLLoader.html

@@ -11,9 +11,9 @@
 
 
 		<h1>[name]</h1>
 		<h1>[name]</h1>
 
 
-		<div class="desc">A loader for loading an <em>.mtl</em> resource, used internaly by [page:OBJMTLLoader] and [page:UTF8Loader].<br />
+		<div class="desc">A loader for loading an <em>.mtl</em> resource, used internaly by [page:OBJLoader] and [page:UTF8Loader].<br />
 		The Material Template Library format (MTL) or .MTL File Format is a companion file format to .OBJ that describes surface shading
 		The Material Template Library format (MTL) or .MTL File Format is a companion file format to .OBJ that describes surface shading
-		(material) properties of objects within one or more .OBJ files. 		
+		(material) properties of objects within one or more .OBJ files.
 		</div>
 		</div>
 
 
 		<h2>Constructor</h2>
 		<h2>Constructor</h2>
@@ -69,7 +69,7 @@
 		<div>
 		<div>
 			Set to true if you need to load textures from a different origin.
 			Set to true if you need to load textures from a different origin.
 		</div>
 		</div>
-	
+
 
 
 		<h3>[method:null setMaterialOptions]( [page:Object options] )</h3>
 		<h3>[method:null setMaterialOptions]( [page:Object options] )</h3>
 		<div>
 		<div>
@@ -79,12 +79,13 @@
 				<li>wrap: What type of wrapping to apply for textures. THREE.RepeatWrapping (default), THREE.ClampToEdgeWrapping, THREE.MirroredRepeatWrapping</li>
 				<li>wrap: What type of wrapping to apply for textures. THREE.RepeatWrapping (default), THREE.ClampToEdgeWrapping, THREE.MirroredRepeatWrapping</li>
 				<li>normalizeRGB: RGBs need to be normalized to 0-1 from 0-255. Default: false, assumed to be already normalized</li>
 				<li>normalizeRGB: RGBs need to be normalized to 0-1 from 0-255. Default: false, assumed to be already normalized</li>
 				<li>ignoreZeroRGBs: Ignore values of RGBs (Ka,Kd,Ks) that are all 0's. Default: false</li>
 				<li>ignoreZeroRGBs: Ignore values of RGBs (Ka,Kd,Ks) that are all 0's. Default: false</li>
+				<li>invertTrProperty: Use values 1 of Tr field for fully opaque. This option is useful for obj exported from 3ds MAX, vcglib or meshlab. Default: false</li>
 			</ul>
 			</ul>
 		</div>
 		</div>
 		<div>
 		<div>
 			Set of options on how to construct the materials
 			Set of options on how to construct the materials
 		</div>
 		</div>
-	
+
 
 
 		<h3>[method:MTLLoaderMaterialCreator parse]( [page:String text] )</h3>
 		<h3>[method:MTLLoaderMaterialCreator parse]( [page:String text] )</h3>
 		<div>
 		<div>
@@ -93,7 +94,7 @@
 		<div>
 		<div>
 			Parse a <em>mtl</em> text structure and return a [page:MTLLoaderMaterialCreator] instance.<br />
 			Parse a <em>mtl</em> text structure and return a [page:MTLLoaderMaterialCreator] instance.<br />
 		</div>
 		</div>
-		
+
 
 
 		<h2>Source</h2>
 		<h2>Source</h2>
 
 

+ 1 - 1
docs/examples/loaders/OBJLoader.html

@@ -13,7 +13,7 @@
 
 
 		<div class="desc">A loader for loading a <em>.obj</em> resource.<br />
 		<div class="desc">A loader for loading a <em>.obj</em> resource.<br />
 		The <a href="https://en.wikipedia.org/wiki/Wavefront_.obj_file">OBJ file format</a> is a simple data-format 
 		The <a href="https://en.wikipedia.org/wiki/Wavefront_.obj_file">OBJ file format</a> is a simple data-format 
-		that represents 3D geometry in a human redeable format as, the position of each vertex, the UV position of 
+		that represents 3D geometry in a human readable format as the position of each vertex, the UV position of 
 		each texture coordinate vertex, vertex normals, and the faces that make each polygon defined as a list of 
 		each texture coordinate vertex, vertex normals, and the faces that make each polygon defined as a list of 
 		vertices, and texture vertices.
 		vertices, and texture vertices.
 		</div>
 		</div>

+ 1 - 1
docs/examples/loaders/OBJLoader2.html

@@ -76,7 +76,7 @@
 			[page:String url] - A string containing the path/URL of the <em>.obj</em> file.<br>
 			[page:String url] - A string containing the path/URL of the <em>.obj</em> file.<br>
 			[page:Function onLoad] - A function to be called after loading is successfully completed. The function receives loaded [page:Object3D] as an argument.<br>
 			[page:Function onLoad] - A function to be called after loading is successfully completed. The function receives loaded [page:Object3D] as an argument.<br>
 			[page:Function onProgress] - (optional) A function to be called while the loading is in progress. The argument will be the XMLHttpRequest instance, which contains [page:Integer total] and [page:Integer loaded] bytes.<br>
 			[page:Function onProgress] - (optional) A function to be called while the loading is in progress. The argument will be the XMLHttpRequest instance, which contains [page:Integer total] and [page:Integer loaded] bytes.<br>
-			[page:Function onError] - (optional) A function to be called if an error occurrs during loading. The function receives the error as an argument.<br>
+			[page:Function onError] - (optional) A function to be called if an error occurs during loading. The function receives the error as an argument.<br>
 			[page:Function onMeshAlter] - (optional) A function to be called after a new mesh raw data becomes available for alteration.<br>
 			[page:Function onMeshAlter] - (optional) A function to be called after a new mesh raw data becomes available for alteration.<br>
 			[page:boolean useAsync] - (optional) If true, uses async loading with worker, if false loads data synchronously.
 			[page:boolean useAsync] - (optional) If true, uses async loading with worker, if false loads data synchronously.
 		</div>
 		</div>

+ 108 - 0
docs/examples/loaders/PRWMLoader.html

@@ -0,0 +1,108 @@
+<!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 a <em>.prwm</em> resource.<br />
+		Packed Raw WebGL Model is an open-source binary file format for nD geometries specifically designed for
+		JavaScript and WebGL with a strong focus on fast parsing (from 1ms to 0.1ms in Chrome 59
+		on a MBP Late 2013). The parsing of PRWM file is especially fast when the endianness of the file is
+		the same as the endianness of the client platform. More information
+		on this <a href="https://github.com/kchapelier/PRWM">here</a>.
+		</div>
+
+		<h2>Example</h2>
+
+		<code>
+		// instantiate a loader
+		var loader = new THREE.PRWMLoader();
+
+		// load a resource
+		loader.load(
+			// resource URL
+			'models/nefertiti.le.prwm',
+			// called when resource is loaded
+			function ( bufferGeometry ) {
+
+				var object = new THREE.Mesh( bufferGeometry, new THREE.MeshNormalMaterial() );
+				scene.add( object );
+
+			},
+			// called when loading is in progresses
+			function ( xhr ) {
+
+				console.log( ( xhr.loaded / xhr.total * 100 ) + '% loaded' );
+
+			},
+			// called when loading has errors
+			function ( error ) {
+
+				console.log( 'An error happened' );
+
+			}
+		);
+		</code>
+
+		[example:webgl_loader_prwm]
+
+
+		<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].
+		</div>
+		<div>
+		Creates a new [name].
+		</div>
+
+		<h2>Properties</h2>
+
+
+		<h2>Methods</h2>
+
+		<h3>[method:null load]( [page:String url], [page:Function onLoad], [page:Function onProgress], [page:Function onError] )</h3>
+		<div>
+		[page:String url] — A string containing the path/URL of the <em>.prwm</em> file. Any <em>*</em> character in the URL will be automatically replaced by <em>le</em> or <em>be</em> depending on the platform endianness.<br />
+		[page:Function onLoad] — (optional) A function to be called after the loading is successfully completed. The function receives the loaded [page:BufferGeometry] as an argument.<br />
+		[page:Function onProgress] — (optional) A function to be called while the loading is in progress. The function receives a XMLHttpRequest instance, which contains [page:Integer total] and [page:Integer loaded] bytes.<br />
+		[page:Function onError] — (optional) A function to be called if an error occurs during loading. The function receives error as an argument.<br />
+		</div>
+		<div>
+		Begin loading from url and call onLoad with the parsed response content.
+		</div>
+
+		<h3>[method:BufferGeometry parse]( [page:ArrayBuffer arrayBuffer] )</h3>
+		<div>
+		[page:ArrayBuffer arrayBuffer] — ArrayBuffer containing the <em>prwm</em> data.
+		</div>
+		<div>
+		Parse a <em>prwm</em> file passed as an ArrayBuffer and directly return an instance of [page:BufferGeometry].
+		</div>
+
+		<h3>PRWMLoader.isBigEndianPlatform( )</h3>
+
+		<div>
+		Return true if the endianness of the platform is Big Endian, false otherwise.
+		</div>
+
+		<h2>Source</h2>
+
+		[link:https://github.com/mrdoob/three.js/blob/master/examples/js/loaders/PRWMLoader.js examples/js/loaders/PRWMLoader.js]
+
+		<h2>Additional notes</h2>
+
+		<div>
+		This loader is additionally available on npm as <a href="https://www.npmjs.com/package/three-prwm-loader">three-prwm-loader</a>.
+		</div>
+
+	</body>
+</html>

+ 73 - 0
docs/examples/objects/LensFlare.html

@@ -0,0 +1,73 @@
+<!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">
+			Creates a simulated lens flare that tracks a light.<br /><br />
+
+			Note: [page:WebGLRenderer.alpha] must be set to *true* for LensFlare to work.
+		</div>
+
+		<h2>Example</h2>
+
+		<div>
+			[example:webgl_lensflares lensflares]
+
+			<code>
+var light = new THREE.PointLight( 0xffffff, 1.5, 2000 );
+
+var textureLoader = new THREE.TextureLoader();
+
+var textureFlare0 = textureLoader.load( "textures/lensflare/lensflare0.png" );
+var textureFlare1 = textureLoader.load( "textures/lensflare/lensflare2.png" );
+var textureFlare2 = textureLoader.load( "textures/lensflare/lensflare3.png" );
+
+var lensFlare = new THREE.LensFlare();
+
+lensFlare.add( new THREE.LensFlareElement( textureFlare0, 512, 0 ) );
+lensFlare.add( new THREE.LensFlareElement( textureFlare1, 512, 0 ) );
+lensFlare.add( new THREE.LensFlareElement( textureFlare2, 60, 0.6 ) );
+
+light.add( lensFlare );
+			</code>
+
+		</div>
+
+		<h2>Constructor</h2>
+
+
+		<h3>LensFlareElement( [page:Texture texture], [page:Float size], [page:Float distance], [page:Color color], [page:Materials blending] )</h3>
+		<div>
+		[page:Texture texture] - THREE.Texture to use for the flare. <br />
+		[page:Float size] - (optional) size in pixels <br />
+		[page:Float distance] - (optional) (0-1) from light source (0 = at light source) <br />
+		[page:Color color] - (optional) the [page:Color] of the lens flare<br />
+		[page:Materials blending] - (optional) [page:Materials Blending Mode] - Defaults to THREE.NormalBlending
+		</div>
+
+		<h2>Properties</h2>
+		<div>See the base [page:Mesh] class for common properties.</div>
+
+		<h3>[property:Boolean isLensFlare]</h3>
+		<div>
+			Used to check whether this or derived classes are lens flares. Default is *true*.<br /><br />
+
+			You should not change this, as it used internally for optimisation.
+		</div>
+
+
+		<h2>Source</h2>
+
+		[link:https://github.com/mrdoob/three.js/blob/master/examples/js/objects/LensFlare.js examples/js/objects/LensFlare.js]
+	</body>
+</html>

+ 7 - 1
docs/examples/renderers/CanvasRenderer.html

@@ -55,7 +55,13 @@
         <div>parameters is an optional object with properties defining the renderer's behaviour. The constructor also accepts no parameters at all. In all cases, it will assume sane defaults when parameters are missing.</div>
         <div>parameters is an optional object with properties defining the renderer's behaviour. The constructor also accepts no parameters at all. In all cases, it will assume sane defaults when parameters are missing.</div>
 
 
 		<div>
 		<div>
-		canvas — A [page:Canvas] where the renderer draws its output.
+		[page:DOMElement canvas] - A [link:https://developer.mozilla.org/en-US/docs/Web/HTML/Element/canvas canvas]
+		where the renderer draws its output.
+		This corresponds to the [page:CanvasRenderer.domElement domElement] property below.
+		If not passed in here, a new canvas element will be created.<br />
+
+		[page:Boolean alpha] - whether the canvas contains an alpha (transparency) buffer or not.
+	  Default is *false*.
 		</div>
 		</div>
 
 
 
 

Some files were not shown because too many files changed in this diff