Browse Source

Merge branch 'dev' into dev

Remus M 7 years ago
parent
commit
b52b4d94d7
100 changed files with 4801 additions and 4115 deletions
  1. 11 8
      .github/ISSUE_TEMPLATE.md
  2. 1 1
      .gitignore
  3. 13 12
      README.md
  4. 640 723
      build/three.js
  5. 335 338
      build/three.min.js
  6. 639 722
      build/three.module.js
  7. 350 117
      docs/api/animation/AnimationAction.html
  8. 104 55
      docs/api/animation/AnimationClip.html
  9. 83 74
      docs/api/animation/AnimationMixer.html
  10. 55 44
      docs/api/animation/AnimationObjectGroup.html
  11. 54 51
      docs/api/animation/AnimationUtils.html
  12. 234 151
      docs/api/animation/KeyframeTrack.html
  13. 88 88
      docs/api/animation/PropertyBinding.html
  14. 68 68
      docs/api/animation/PropertyMixer.html
  15. 53 47
      docs/api/animation/tracks/BooleanKeyframeTrack.html
  16. 42 32
      docs/api/animation/tracks/ColorKeyframeTrack.html
  17. 42 32
      docs/api/animation/tracks/NumberKeyframeTrack.html
  18. 49 45
      docs/api/animation/tracks/QuaternionKeyframeTrack.html
  19. 56 49
      docs/api/animation/tracks/StringKeyframeTrack.html
  20. 42 32
      docs/api/animation/tracks/VectorKeyframeTrack.html
  21. 13 7
      docs/api/audio/Audio.html
  22. 10 7
      docs/api/audio/AudioAnalyser.html
  23. 11 8
      docs/api/audio/AudioListener.html
  24. 15 11
      docs/api/audio/PositionalAudio.html
  25. 7 11
      docs/api/cameras/Camera.html
  26. 12 6
      docs/api/cameras/CubeCamera.html
  27. 5 2
      docs/api/cameras/OrthographicCamera.html
  28. 5 4
      docs/api/cameras/PerspectiveCamera.html
  29. 1 1
      docs/api/constants/CustomBlendingEquations.html
  30. 1 11
      docs/api/constants/Materials.html
  31. 1 1
      docs/api/constants/Renderer.html
  32. 8 3
      docs/api/constants/Textures.html
  33. 4 0
      docs/api/core/BufferAttribute.html
  34. 12 12
      docs/api/core/BufferGeometry.html
  35. 0 3
      docs/api/core/DirectGeometry.html
  36. 99 99
      docs/api/core/EventDispatcher.html
  37. 133 133
      docs/api/core/Face3.html
  38. 17 14
      docs/api/core/Geometry.html
  39. 20 5
      docs/api/core/InterleavedBuffer.html
  40. 31 43
      docs/api/core/InterleavedBufferAttribute.html
  41. 18 19
      docs/api/core/Layers.html
  42. 29 5
      docs/api/core/Object3D.html
  43. 5 2
      docs/api/deprecated/DeprecatedList.html
  44. 0 63
      docs/api/extras/CurveUtils.html
  45. 31 0
      docs/api/extras/Earcut.html
  46. 1 1
      docs/api/extras/SceneUtils.html
  47. 6 40
      docs/api/extras/ShapeUtils.html
  48. 44 22
      docs/api/extras/core/Curve.html
  49. 0 23
      docs/api/extras/core/CurvePath.html
  50. 8 1
      docs/api/extras/core/Font.html
  51. 47 0
      docs/api/extras/core/Interpolations.html
  52. 11 11
      docs/api/extras/core/Path.html
  53. 16 7
      docs/api/extras/core/Shape.html
  54. 11 0
      docs/api/extras/curves/ArcCurve.html
  55. 21 11
      docs/api/extras/curves/CatmullRomCurve3.html
  56. 13 6
      docs/api/extras/curves/CubicBezierCurve.html
  57. 9 2
      docs/api/extras/curves/CubicBezierCurve3.html
  58. 17 9
      docs/api/extras/curves/EllipseCurve.html
  59. 7 0
      docs/api/extras/curves/LineCurve3.html
  60. 9 2
      docs/api/extras/curves/QuadraticBezierCurve.html
  61. 8 2
      docs/api/extras/curves/QuadraticBezierCurve3.html
  62. 71 64
      docs/api/extras/curves/SplineCurve.html
  63. 0 179
      docs/api/extras/objects/MorphBlendMesh.html
  64. 4 4
      docs/api/geometries/BoxBufferGeometry.html
  65. 4 4
      docs/api/geometries/BoxGeometry.html
  66. 2 2
      docs/api/geometries/CircleGeometry.html
  67. 2 2
      docs/api/geometries/ConeBufferGeometry.html
  68. 1 1
      docs/api/geometries/ConeGeometry.html
  69. 66 66
      docs/api/geometries/CylinderBufferGeometry.html
  70. 6 6
      docs/api/geometries/CylinderGeometry.html
  71. 145 0
      docs/api/geometries/ExtrudeBufferGeometry.html
  72. 5 5
      docs/api/geometries/ExtrudeGeometry.html
  73. 3 3
      docs/api/geometries/PlaneBufferGeometry.html
  74. 18 18
      docs/api/geometries/PlaneGeometry.html
  75. 2 2
      docs/api/geometries/PolyhedronBufferGeometry.html
  76. 2 2
      docs/api/geometries/PolyhedronGeometry.html
  77. 1 1
      docs/api/geometries/RingBufferGeometry.html
  78. 3 3
      docs/api/geometries/RingGeometry.html
  79. 2 2
      docs/api/geometries/SphereGeometry.html
  80. 160 0
      docs/api/geometries/TextBufferGeometry.html
  81. 26 4
      docs/api/geometries/TextGeometry.html
  82. 3 3
      docs/api/geometries/TorusGeometry.html
  83. 3 3
      docs/api/geometries/TorusKnotGeometry.html
  84. 104 102
      docs/api/geometries/TubeBufferGeometry.html
  85. 104 102
      docs/api/geometries/TubeGeometry.html
  86. 97 97
      docs/api/helpers/ArrowHelper.html
  87. 5 5
      docs/api/helpers/AxesHelper.html
  88. 64 0
      docs/api/helpers/Box3Helper.html
  89. 10 3
      docs/api/helpers/BoxHelper.html
  90. 12 4
      docs/api/helpers/DirectionalLightHelper.html
  91. 13 4
      docs/api/helpers/HemisphereLightHelper.html
  92. 65 0
      docs/api/helpers/PlaneHelper.html
  93. 13 6
      docs/api/helpers/PointLightHelper.html
  94. 12 2
      docs/api/helpers/RectAreaLightHelper.html
  95. 1 14
      docs/api/helpers/SkeletonHelper.html
  96. 12 4
      docs/api/helpers/SpotLightHelper.html
  97. 78 78
      docs/api/helpers/VertexNormalsHelper.html
  98. 2 2
      docs/api/lights/DirectionalLight.html
  99. 2 4
      docs/api/lights/PointLight.html
  100. 3 18
      docs/api/lights/RectAreaLight.html

+ 11 - 8
.github/ISSUE_TEMPLATE.md

@@ -1,18 +1,20 @@
-(*** This section is for 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. ***)
-
 ##### Description of the problem 
 
-Describe the problem/request in detail.
-Code snippet, screenshot, and small-test help us understand.
+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).
+
+Describe the bug or feature request in detail.  
+A code snippet, screenshot, and small-test help us understand.
 
-You can edit for small-test.
-http://jsfiddle.net/akmcv7Lh/ (current revision)
+You can edit for small-test.  
+http://jsfiddle.net/akmcv7Lh/ (current revision)  
 http://jsfiddle.net/hw9rcLL8/ (dev)
 
 ##### Three.js version
 
 - [ ] Dev
-- [ ] r84
+- [ ] r89
 - [ ] ...
 
 ##### Browser
@@ -26,9 +28,10 @@ http://jsfiddle.net/hw9rcLL8/ (dev)
 
 - [x] All of them
 - [ ] Windows
+- [ ] macOS
 - [ ] Linux
 - [ ] Android
-- [ ] IOS
+- [ ] iOS
 
 ##### Hardware Requirements (graphics card, VR Device, ...)
 

+ 1 - 1
.gitignore

@@ -5,4 +5,4 @@ node_modules
 .idea/
 .vscode/
 npm-debug.log
-
+.jshintrc

+ 13 - 12
README.md

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

File diff suppressed because it is too large
+ 640 - 723
build/three.js


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


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


+ 350 - 117
docs/api/animation/AnimationAction.html

@@ -8,125 +8,358 @@
 		<link type="text/css" rel="stylesheet" href="page.css" />
 	</head>
 	<body>
-    <h1>[name]</h1>
+		<h1>[name]</h1>
 
-    <div class="desc">
-    An AnimationAction schedules clip playback on specific objects.
-    </div>
+		<div class="desc">
+			AnimationActions schedule the performance of the animations which are stored in
+			[page:AnimationClip AnimationClips].<br /><br />
 
+			Note: Most of AnimationAction's methods can be chained.<br /><br />
+
+			For an overview of the different elements of the three.js animation system see the
+			"Animation System" article in the "Next Steps" section of the manual.
+		</div>
+
+
+		<h2>Constructor</h2>
+
+
+		<h3>[name]( [page:AnimationMixer mixer], [page:AnimationClip clip], [page:Object3D localRoot] )</h3>
+		<div>
+			[page:AnimationMixer mixer] - the *AnimationMixer* that is controlled by this action.<br />
+			[page:AnimationClip clip] - the *AnimationClip* that holds the animation data for this action.<br />
+			[page:Object3D localRoot] - the root object on which this action is performed.<br /><br />
+
+			Note: Instead of calling this constructor directly you should instantiate an AnimationAction with
+			[page:AnimationMixer.clipAction] since this method provides caching for better performance.
+		</div>
+
+
+		<h2>Properties</h2>
+
+
+		<h3>[property:Boolean clampWhenFinished]</h3>
+		<div>
+			If *clampWhenFinished* is set to true the animation will automatically be [page:.paused paused]
+			on its last frame.<br /><br />
+
+			If *clampWhenFinished* is set to false, [page:.enabled enabled] will automatically be switched
+			to false when the last loop of the action has finished, so that this action has no further
+			impact.<br /><br />
+
+			Default is false.<br /><br />
+
+			Note: *clampWhenFinished* has no impact if the action is interrupted (it has only an effect if
+			its last loop has really finished).
+		</div>
+
+		<h3>[property:Boolean enabled]</h3>
+		<div>
+			Setting *enabled* to *false* disables this action, so that it has no impact. Default is *true*.<br /><br />
+
+			When the action is re-enabled, the animation continues from its current [page:.time time]
+			(setting *enabled* to *false* doesn't reset the action).<br /><br />
+
+			Note: Setting *enabled* to *true* doesn’t automatically restart the animation. Setting *enabled*
+			to *true* will only restart the animation immediately if the following condition is fulfilled:
+			[page:.paused paused] is *false*, this action has not been deactivated in the meantime (by
+			executing a [page:.stop stop] or [page:.reset reset] command), and neither [page:.weight weight]
+			nor [page:.timeScale timeScale] is 0.
+		</div>
+
+		<h3>[property:Number loop]</h3>
+		<div>
+			The looping mode (can be changed with [page:.setLoop setLoop]). Default is
+			[page:Animation THREE.LoopRepeat] (with an infinite number of [page:.repetitions repetitions])<br /><br />
+
+			Must be one of these constants:<br /><br />
+			[page:Animation THREE.LoopOnce] - playing the clip once,<br />
+			[page:Animation THREE.LoopRepeat] - playing the clip with the choosen number of *repetitions*,
+			each time jumping from the end of the clip directly to its beginning,<br />
+			[page:Animation THREE.LoopPingPong] - playing the clip with the choosen number of *repetitions*,
+			alternately playing forward and backward.
+		</div>
+
+		<h3>[property:Boolean paused]</h3>
+		<div>
+			Setting *paused* to *true* pauses the execution of the action by setting the effective time scale
+			to 0. Default is *false*.<br /><br />
+		</div>
+
+		<h3>[property:Number repetitions]</h3>
+		<div>
+			The number of repetitions of the performed [page:AnimationClip] over the course of this action.
+			Can be set via [page:.setLoop setLoop]. Default is *Infinity*.<br /><br />
+			Setting this number has no effect, if the [page:.loop loop mode] is set to
+			[page:Animation THREE.LoopOnce].<br /><br />
+
+			Note: The first run is not taken into account. For example: if *repetition* is set to 2, the
+			total number of executed rounds will be 3.
+		</div>
+
+		<h3>[property:Number time]</h3>
+		<div>
+			The local time of this action (in seconds, starting with 0).<br /><br />
+
+			The value gets clamped or wrapped to 0...clip.duration (according to the loop state). It can be
+			scaled relativly to the global mixer time by changing [page:.timeScale timeScale] (using
+			[page:.setEffectiveTimeScale setEffectiveTimeScale] or [page:.setDuration setDuration]).<br />
+		</div>
+
+		<h3>[property:Number timeScale]</h3>
+		<div>
+			Scaling factor for the [page:.time time]. A value of 0 causes the animation to pause. Negative
+			values cause the animation to play backwards. Default is 1.<br /><br />
+			Properties/methods concerning *timeScale* (respectively *time*) are:
+			[page:.getEffectiveTimeScale getEffectiveTimeScale],
+			[page:.halt halt],
+			[page:.paused paused],
+			[page:.setDuration setDuration],
+			[page:.setEffectiveTimeScale setEffectiveTimeScale],
+			[page:.stopWarping stopWarping],
+			[page:.syncWith syncWith],
+			[page:.warp warp].
+		</div>
+
+		<h3>[property:Number weight]</h3>
+		<div>
+			The degree of influence of this action (in the interval [0, 1]). Values between 0 (no impact)
+			and 1 (full impact) can be used to blend between several actions. Default is 1. <br /><br />
+			Properties/methods concerning  *weight* are:
+			[page:.crossFadeFrom crossFadeFrom],
+			[page:.crossFadeTo crossFadeTo],
+			[page:.enabled enabled],
+			[page:.fadeIn fadeIn],
+			[page:.fadeOut fadeOut],
+			[page:.getEffectiveWeight getEffectiveWeight],
+			[page:.setEffectiveWeight setEffectiveWeight],
+			[page:.stopFading stopFading].
+		</div>
+
+		<h3>[property:Boolean zeroSlopeAtEnd]</h3>
+		<div>
+			Enables smooth interpolation without separate clips for start, loop and end. Default is *true*.
+		</div>
+
+		<h3>[property:Boolean zeroSlopeAtStart]</h3>
+		<div>
+			Enables smooth interpolation without separate clips for start, loop and end. Default is *true*.
+		</div>
+
+
+		<h2>Methods</h2>
+
+
+		<h3>[method:AnimationAction crossFadeFrom]( [page:AnimationAction fadeOutAction], [page:Number durationInSeconds], [page:Boolean warpBoolean] )</h3>
+		<div>
+			Causes this action to [page:.fadeIn fade in], fading out another action simultaneously, within
+			the passed time interval. This method can be chained.<br /><br />
+
+			If warpBoolean is true, additional [page:.warp warping] (gradually changes of the time scales)
+			will be applied.<br /><br />
+
+			Note: Like with *fadeIn*/*fadeOut*, the fading starts/ends with a weight of 1.
+
+		</div>
+
+		<h3>[method:AnimationAction crossFadeTo]( [page:AnimationAction fadeInAction], [page:Number durationInSeconds], [page:Boolean warpBoolean] )</h3>
+		<div>
+			Causes this action to [page:.fadeOut fade out], fading in another action simultaneously, within
+			the passed time interval. This method can be chained.<br /><br />
+			If warpBoolean is true, additional [page:.warp warping] (gradually changes of the time scales)
+			will be applied.<br /><br />
+
+			Note: Like with *fadeIn*/*fadeOut*, the fading starts/ends with a weight of 1.
+		</div>
+
+		<h3>[method:AnimationAction fadeIn]( [page:Number durationInSeconds] )</h3>
+		<div>
+			Increases the [page:.weight weight] of this action gradually from 0 to 1, within the passed time
+			interval. This method can be chained.
+		</div>
+
+		<h3>[method:AnimationAction fadeOut]( [page:Number durationInSeconds] )</h3>
+		<div>
+			Decreases the [page:.weight weight] of this action gradually from 1 to 0, within the passed time
+			interval. This method can be chained.
+		</div>
+
+		<h3>[method:Number getEffectiveTimeScale]()</h3>
+		<div>
+			Returns the effective time scale (considering the current states of warping and
+			[page:.paused paused]).
+		</div>
+
+		<h3>[method:number getEffectiveWeight]()</h3>
+		<div>
+			Returns the effective weight (considering the current states of fading and
+			[page:.enabled enabled]).
+		</div>
+
+		<h3>[method:AnimationClip getClip]()</h3>
+		<div>
+			Returns the clip which holds the animation data for this action.
+		</div>
+
+		<h3>[method:AnimationMixer getMixer]()</h3>
+		<div>
+			Returns the mixer which is responsible for playing this action.
+		</div>
+
+		<h3>[method:Object3D getRoot]()</h3>
+		<div>
+			Returns the root object on which this action is performed.
+		</div>
+
+		<h3>[method:AnimationAction halt]( [page:Number durationInSeconds] )</h3>
+		<div>
+			Decelerates this animation's speed to 0 by decreasing [page:.timeScale timeScale] gradually
+			(starting from its current value), within the passed time interval. This method can be chained.
+		</div>
+
+		<h3>[method:Boolean isRunning]()</h3>
+		<div>
+			Returns true if the action’s [page:.time time] is currently running.<br /><br />
+
+			In addition to being activated in the mixer (see [page:.isScheduled isScheduled]) the following conditions must be fulfilled:
+			[page:.paused paused] is equal to false, [page:.enabled enabled] is equal to true,
+			[page:.timeScale timeScale] is different from 0, and there is no scheduling for a delayed start
+			([page:.startAt startAt]).<br /><br />
+
+			Note: *isRunning* being true doesn’t necessarily mean that the animation can actually be seen.
+			This is only the case, if [page:.weight weight] is additionally set to a non-zero value.
+		</div>
+
+		<h3>[method:Boolean isScheduled]()</h3>
+		<div>
+			Returns true, if this action is activated in the mixer.<br /><br />
+			Note: This doesn’t necessarily mean that the animation is actually running (compare the additional
+			conditions for [page:.isRunning isRunning]).
+		</div>
+
+		<h3>[method:AnimationAction play]()</h3>
+		<div>
+			Tells the mixer to activate the action. This method can be chained.<br /><br />
+
+			Note: Activating this action doesn’t necessarily mean that the animation starts immediately:
+			If the action had already finished before (by reaching the end of its last loop), or if a time
+			for a delayed start has been set (via [page:.startAt startAt]), a [page:.reset reset] must be
+			executed first. Some other settings ([page:.paused paused]=true, [page:.enabled enabled]=false,
+			[page:.weight weight]=0, [page:.timeScale timeScale]=0) can prevent the animation from playing,
+			too.
+		</div>
+
+		<h3>[method:AnimationAction reset]()</h3>
+		<div>
+			Resets the action. This method can be chained.<br /><br />
+
+			This method sets [page:.paused paused] to false, [page:.enabled enabled] to true,
+			[page:.time time] to 0, interrupts any scheduled fading and warping, and removes the internal
+			loop count and scheduling for delayed starting.<br /><br />
+
+			Note: .*reset* is always called by [page:.stop stop], but .*reset* doesn’t call .*stop* itself.
+			This means: If you want both, resetting and stopping, don’t call .*reset*; call .*stop* instead.
+		</div>
+
+		<h3>[method:AnimationAction setDuration]( [page:Number durationInSeconds] )</h3>
+		<div>
+			Sets the duration for a single loop of this action (by adjusting [page:.timeScale timeScale]
+			and stopping any scheduled warping). This method can be chained.
+		</div>
+
+		<h3>[method:AnimationAction setEffectiveTimeScale]( [page:Number timeScale] )</h3>
+		<div>
+			Sets the [page:.timeScale timeScale] and stops any scheduled warping. This method can be chained.<br /><br />
+
+			If [page:.paused paused] is false, the effective time scale (an internal property) will also be set
+			to this value; otherwise the effective time scale (directly affecting the animation at
+			this moment) will be set to 0.<br /><br />
+
+			Note: .*paused* will not be switched to *true* automatically, if .*timeScale* is set to 0 by
+			this method.
+		</div>
+
+		<h3>[method:AnimationAction setEffectiveWeight]( [page:Number weight] )</h3>
+		<div>
+			Sets the [page:.weight weight] and stops any scheduled fading. This method can be chained.<br /><br />
+
+			If [page:.enabled enabled] is true, the effective weight (an internal property) will also be set
+			to this value; otherwise the effective weight (directly affecting the animation at this moment)
+			will be set to 0.<br /><br />
+
+			Note: .*enabled* will not be switched to *false* automatically, if .*weight* is set to 0 by
+			this method.
+		</div>
+
+		<h3>[method:AnimationAction setLoop]( [page:Number loopMode], [page:Number repetitions] )</h3>
+		<div>
+			Sets the [page:.loop loop mode] and the number of [page:.repetitions repetitions]. This method
+			can be chained.
+		</div>
+
+		<h3>[method:AnimationAction startAt]( [page:Number startTimeInSeconds] )</h3>
+		<div>
+			Defines the time for a delayed start (usually passed as [page:AnimationMixer.time] +
+			deltaTimeInSeconds). This method can be chained.<br /><br />
+
+			Note: The animation will only start at the given time, if .*startAt* is chained with
+			[page:.play play], or if the action has already been activated in the mixer (by a previous
+			call of .*play*, without stopping or resetting it in the meantime).
+		</div>
+
+		<h3>[method:AnimationAction stop]()</h3>
+		<div>
+			Tells the mixer to deactivate this action. This method can be chained.<br /><br />
+
+			The action will be immediately stopped and completely [page:.reset reset].<br /><br />
+
+			Note: You can stop all active actions on the same mixer in one go via 
+			[page:AnimationMixer.stopAllAction mixer.stopAllAction].
+		</div>
+
+		<h3>[method:AnimationAction stopFading]()</h3>
+		<div>
+			Stops any scheduled [page:.fadeIn fading] which is applied to this action. This method can be
+			chained.
+		</div>
+
+		<h3>[method:AnimationAction stopWarping]()</h3>
+		<div>
+			Stops any scheduled [page:.warp warping] which is applied to this action. This method can be
+			chained.
+		</div>
+
+		<h3>[method:AnimationAction syncWith]( [page:AnimationAction otherAction] )</h3>
+		<div>
+			Synchronizes this action with the passed other action. This method can be chained.<br /><br />
+
+			Synchronizing is done by setting this action’s [page:.time time] and [page:.timeScale timeScale] values
+			to the corresponding values of the other action (stopping any scheduled warping).<br /><br />
+
+			Note: Future changes of the other action's *time* and *timeScale* will not be detected.
+		</div>
+
+		<h3>[method:AnimationAction warp]( [page:Number startTimeScale], [page:Number endTimeScale], [page:Number durationInSeconds] )</h3>
+		<div>
+			Changes the playback speed, within the passed time interval, by modifying 
+			[page:.timeScale timeScale] gradually from *startTimeScale* to *endTimeScale*. This method can
+			be chained.
+		</div>
+
+
+		<h2>Events</h2>
 
-    <h2>Constructor</h2>
 
-
-    <h3>[name]( [page:AnimationMixer mixer], [page:AnimationClip clip], [page:Object3D localRoot] )</h3>
-
-
-    <h2>Properties</h2>
-
-
-    <h3>[property:Number time]</h3>
-
-    <h3>[property:Number timeScale]</h3>
-
-    <h3>[property:Number weight]</h3>
-
-    <h3>[property:Number loop]</h3>
-
-    <h3>[property:Number repetitions]</h3>
-
-    <h3>[property:Boolean paused]</h3>
-
-    <h3>[property:Boolean enabled]</h3>
-
-    <h3>[property:Boolean clampWhenFinished]</h3>
-
-    <h3>[property:Boolean zeroSlopeAtStart]</h3>
-
-    <h3>[property:Boolean zeroSlopeAtEnd]</h3>
-
-
-    <h2>Methods</h2>
-
-
-    <h3>[method:AnimationAction play]()</h3>
-
-    <h3>[method:AnimationAction stop]()</h3>
-
-    <h3>[method:AnimationAction reset]()</h3>
-
-    <h3>[method:Boolean isRunning]()</h3>
-
-    <h3>[method:Boolean isScheduled]()</h3>
-
-    <h3>[method:AnimationAction startAt]()</h3>
-
-    <h3>[method:AnimationAction setLoop]( [page:Number mode], [page:Number repetitions] )</h3>
-
-    <h3>[method:AnimationAction setEffectiveWeight]( [page:Number weight] )</h3>
-
-    <h3>[method:number getEffectiveWeight]()</h3>
-
-    <h3>[method:AnimationAction fadeIn]( [page:Number duration] )</h3>
-
-    <h3>[method:AnimationAction fadeOut]( [page:Number duration] )</h3>
-
-    <h3>[method:AnimationAction crossFadeFrom]( [page:AnimationAction fadeOutAction], [page:Number duration], [page:Boolean warp] )</h3>
-
-    <h3>[method:AnimationAction crossFadeTo]( [page:AnimationAction fadeInAction], [page:Number duration], [page:Boolean warp] )</h3>
-
-    <h3>[method:AnimationAction stopFading]()</h3>
-
-    <h3>[method:AnimationAction setEffectiveTimeScale]( [page:Number timeScale] )</h3>
-
-    <h3>[method:Number getEffectiveTimeScale]()</h3>
-
-    <h3>[method:AnimationAction setDuration]( [page:Number duration] )</h3>
-
-    <h3>[method:AnimationAction syncWith]( [page:AnimationAction action] )</h3>
-
-    <h3>[method:AnimationAction halt]( [page:Number duration] )</h3>
-
-    <h3>[method:AnimationAction warp]( [page:Number startTimeScale], [page:Number endTimeScale], [page:Number duration] )</h3>
-
-    <h3>[method:AnimationAction stopWarping]()</h3>
-
-    <h3>[method:AnimationMixer getMixer]()</h3>
-
-    <h3>[method:AnimationClip getClip]()</h3>
-
-    <h3>[method:Object3D getRoot]()</h3>
-
-
-    <h2>Static Methods</h2>
-
-
-    <h3>[method:AnimationClip parse]( [page:Object json] )</h3>
-    <div>
-    json -- JSON object
-    </div>
-
-    <h3>[method:Object toJSON]( [page:AnimationClip clip] )</h3>
-    <div>
-    clip -- AnimationClip
-    </div>
-
-    <h3>[method:AnimationClip CreateFromMorphTargetSequence]( [page:String name], [page:Array morphTargetSequence], [page:Number fps], [page:Boolean noLoop] )</h3>
-    <div>
-    name -- Name for the new clip <br />
-    morphTargetSequence -- Array of morph targets <br />
-    fps -- Number of frames per second <br />
-    noLoop -- Whether looping occurs automatically.
-    </div>
-
-    <h3>[method:AnimationClip parseAnimation]( [page:Object animation], [page:Array bones] )</h3>
-    <div>
-    Parses the animation.hierarchy format and returns an AnimationClip.
-    </div>
-
-
-    <h2>Source</h2>
-
-
-    [link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
-  </body>
+		<div class="desc">
+			There are two events indicating when a single loop of the action respectively the entire action has finished. You can react to them with:
+		</div>
+		<code>
+		mixer.addEventListener( 'loop', function( e ) { …} ); // properties of e: type, action and loopDelta
+		mixer.addEventListener( 'finished', function( e ) { …} ); // properties of e: type, action and direction
+		</code>
+
+		<h2>Source</h2>
+
+		[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+	</body>
 </html>

+ 104 - 55
docs/api/animation/AnimationClip.html

@@ -1,87 +1,136 @@
 <!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>
+	<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 AnimationClip is a reusable set of Tracks that represent an animation.
-    </div>
+		<div class="desc">
+			An AnimationClip is a reusable set of keyframe tracks which represent an animation.<br /><br />
 
+			For an overview of the different elements of the three.js animation system see the
+			"Animation System" article in the "Next Steps" section of the manual.
+		</div>
 
-    <h2>Constructor</h2>
 
+		<h2>Constructor</h2>
 
-    <h3>[name]( [page:String name], [page:Number duration], tracks )</h3>
 
+		<h3>[name]( [page:String name], [page:Number duration], [page:Array tracks] )</h3>
+		<div>
+			[page:String name] - a name for this clip.<br />
+			[page:Number duration] - the duration of this clip (in seconds). If a negative value is passed,
+			the duration will be calculated from the passed *tracks* array.<br />
+			[page:Array tracks] - an array of [page:KeyframeTrack KeyframeTracks].<br /><br />
 
-    <h2>Properties</h2>
+			Note: Instead of instantiating an AnimationClip directly with the constructor, you can use one
+			of its static methods to create AnimationClips: from JSON ([page:.parse parse]), from morph
+			target sequences ([page:.CreateFromMorphTargetSequence CreateFromMorphTargetSequence],
+			[page:.CreateClipsFromMorphTargetSequences CreateClipsFromMorphTargetSequences]) or from
+			animation hierarchies ([page:.parseAnimation parseAnimation]) - if your model doesn't already
+			hold AnimationClips in its geometry's animations array.
+		</div>
 
 
-    <h3>[property:String uuid]</h3>
+		<h2>Properties</h2>
 
-    <h3>[property:String name]</h3>
 
-    <h3>[property:Number duration]</h3>
+		<h3>[property:Number duration]</h3>
+		<div>
+			The duration of this clip (in seconds). This can be calculated from the [page:.tracks tracks]
+			array via [page:.resetDuration resetDuration].
+		</div>
 
-    <h3>.tracks</h3>
+		<h3>[property:String name]</h3>
+		<div>
+			A name for this clip. A certain clip can be searched via [page:.findByName findByName].
+		</div>
 
+		<h3>[property:Array tracks]</h3>
+		<div>
+			An array containing a [page:KeyframeTrack] for each property that are animated by this clip.
+		</div>
 
-    <h2>Methods</h2>
+		<h3>[property:String uuid]</h3>
+		<div>
+			The [link:http://en.wikipedia.org/wiki/Universally_unique_identifier UUID] of this clip instance.
+			It gets automatically assigned and shouldn't be edited.
+		</div>
 
 
-    <h3>[method:null resetDuration]()</h3>
-    <div>
-    Resets duration by scanning all tracks in the clip.
-    </div>
+		<h2>Methods</h2>
 
-    <h3>[method:AnimationClip trim]()</h3>
-    <div>
-    Trims all tracks to the clip's duration.
-    </div>
 
-    <h3>[method:AnimationClip optimize]()</h3>
-    <div>
-    Optimizes each track.
-    </div>
+		<h3>[method:AnimationClip optimize]()</h3>
+		<div>
+			Optimizes each track by removing equivalent sequential keys (which are common in morph target
+			sequences).
+		</div>
 
+		<h3>[method:null resetDuration]()</h3>
+		<div>
+			Sets the [page:.duration duration] of the clip to the duration of its longest
+			[page:KeyframeTrack].
+		</div>
 
-    <h2>Static Methods</h2>
+		<h3>[method:AnimationClip trim]()</h3>
+		<div>
+			Trims all tracks to the clip's duration.
+		</div>
 
 
-    <h3>[method:AnimationClip parse]( [page:Object json] )</h3>
-    <div>
-    json -- JSON object
-    </div>
+		<h2>Static Methods</h2>
 
-    <h3>[method:Object toJSON]( [page:AnimationClip clip] )</h3>
-    <div>
-    clip -- AnimationClip
-    </div>
 
-    <h3>[method:AnimationClip CreateFromMorphTargetSequence]( [page:String name], [page:Array morphTargetSequence], [page:Number fps], [page:Boolean noLoop] )</h3>
-    <div>
-    name -- Name for the new clip <br />
-    morphTargetSequence -- Array of morph targets <br />
-    fps -- Number of frames per second <br />
-    noLoop -- Whether looping occurs automatically.
-    </div>
+		<h3>[method:Array CreateClipsFromMorphTargetSequences]( [page:String name], [page:Array morphTargetSequence], [page:Number fps], [page:Boolean noLoop] )</h3>
+		<div>
+			Returns an array of new AnimationClips created from the [page:Geometry.morphTargets morph
+			target sequences] of a geometry, trying to sort morph target names into animation-group-based
+			patterns like "Walk_001, Walk_002, Run_001, Run_002 ..."<br /><br />
 
-    <h3>[method:AnimationClip parseAnimation]( [page:Object animation], [page:Array bones] )</h3>
-    <div>
-    Parses the animation.hierarchy format and returns an AnimationClip.
-    </div>
+			This method is called by the [page:JSONLoader] internally, and it uses
+			[page:.CreateFromMorphTargetSequence CreateFromMorphTargetSequence].
+		</div>
 
+		<h3>[method:AnimationClip CreateFromMorphTargetSequence]( [page:String name], [page:Array morphTargetSequence], [page:Number fps], [page:Boolean noLoop] )</h3>
+		<div>
+			Returns a new AnimationClip from the passed [page:Geometry.morphTargets morph targets array]
+			of a geometry, taking a name and the number of frames per second.<br /><br />
 
-    <h2>Source</h2>
+			Note: The fps parameter is required, but the animation speed can be overridden in an 
+			*AnimationAction* via [page:AnimationAction.setDuration animationAction.setDuration].
+		</div>
 
+		<h3>[method:AnimationClip findByName]( [page:Object objectOrClipArray], [page:String name] )</h3>
+		<div>
+			Searches for an AnimationClip by name, taking as its first parameter either an array of
+			AnimationClips, or a mesh or geometry that contains an array named "animations".
+		</div>
 
-    [link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
-  </body>
+		<h3>[method:AnimationClip parse]( [page:Object json] )</h3>
+		<div>
+			Parses a JSON representation of a clip and returns an AnimationClip.
+		</div>
+
+		<h3>[method:AnimationClip parseAnimation]( [page:Object animation], [page:Array bones] )</h3>
+		<div>
+			Parses the animation.hierarchy format and returns an AnimationClip.
+		</div>
+
+		<h3>[method:Object toJSON]( [page:AnimationClip clip] )</h3>
+		<div>
+			Takes an AnimationClip and returns a JSON object.
+		</div>
+
+
+		<h2>Source</h2>
+
+
+		[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+	</body>
 </html>

+ 83 - 74
docs/api/animation/AnimationMixer.html

@@ -1,102 +1,111 @@
 <!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>
+	<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">
-    The AnimationMixer is a player for AnimationClip objects.
-    </div>
+		<div class="desc">
+			The AnimationMixer is a player for animations on a particular object in the scene. When
+			multiple objects in the scene are animated independently, one AnimationMixer may be used for
+			each object.<br /><br />
 
+			For an overview of the different elements of the three.js animation system see the
+			"Animation System" article in the "Next Steps" section of the manual.
+		</div>
 
-    <h2>Constructor</h2>
 
+		<h2>Constructor</h2>
 
-    <h3>[name]( [page:Object3D root] )</h3>
 
+		<h3>[name]( [page:Object3D rootObject] )</h3>
+		<div>
+			[page:Object3D rootObject] - the object whose animations shall be played by this mixer.<br />
+		</div>
 
-    <h2>Properties</h2>
 
+		<h2>Properties</h2>
 
-    <h3>[property:Number time]</h3>
 
-    <h3>[property:Number timeScale]</h3>
+		<h3>[property:Number time]</h3>
+		<div>
+			The global mixer time (in seconds; starting with 0 on the mixer's creation).
+		</div>
 
+		<h3>[property:Number timeScale]</h3>
+		<div>
+			A scaling factor for the global [page:.time mixer time].<br /><br />
 
-    <h2>Methods</h2>
+			Note: Setting the mixer's timeScale to 0 and later back to 1 is a possibility to pause/unpause
+			all actions that are controlled by this mixer.
+		</div>
 
 
-    <h3>[method:AnimationAction clipAction]([page:AnimationClip clip], [page:Object3D optionalRoot])</h3>
-    <div>
-    clip -- AnimationClip <br />
-    optionalRoot -- Object3D
-    </div>
-    <div>
-    Return an action for a clip, optionally using a custom root target object.
-    </div>
+		<h2>Methods</h2>
 
-    <h3>[method:AnimationAction existingAction]([page:AnimationClip clip], [page:Object3D optionalRoot])</h3>
-    <div>
-    clip -- AnimationClip <br />
-    optionalRoot -- Object3D
-    </div>
-    <div>
-    Return an existing action.
-    </div>
 
-    <h3>[method:AnimationMixer stopAllAction]()</h3>
-    <div>
-    Deactivates all scheduled actions.
-    </div>
+		<h3>[method:AnimationAction clipAction]([page:AnimationClip clip], [page:Object3D optionalRoot])</h3>
+		<div>
+			Returns an [page:AnimationAction] for the passed clip, optionally using a root object different
+			from the mixer's default root. The first parameter can be either an [page:AnimationClip] object
+			or the name of an AnimationClip.<br /><br />
 
-    <h3>[method:AnimationMixer update]([page:Number deltaTimeMS]) </h3>
-    <div>
-    deltaTimeMS -- Time elapsed since last update in milliseconds.
-    </div>
-    <div>
-    Updates the animation with deltaTimeMS.
-    </div>
+			If an action fitting these parameters doesn't yet exist, it will be created by this method.<br /><br />
 
-    <h3>[method:Object3D getRoot]()</h3>
-    <div>
-    Return this mixer's root target object.
-    </div>
+			Note: Calling this method several times with the same parameters returns always the same clip 
+			instance.
+		</div>
 
-    <h3>[method:null uncacheClip]([page:AnimationClip clip])</h3>
-    <div>
-    clip -- AnimationClip
-    </div>
-    <div>
-    Free all resources for a clip.
-    </div>
+		<h3>[method:AnimationAction existingAction]([page:AnimationClip clip], [page:Object3D optionalRoot])</h3>
+		<div>
+			Returns an existing [page:AnimationAction] for the passed clip, optionally using a root object
+			different from the mixer's default root.<br /><br />
 
-    <h3>[method:null uncacheRoot]([page:Object3D root]) </h3>
-    <div>
-    root -- Object3D
-    </div>
-    <div>
-    Free all resources for a root target object.
-    </div>
+			The first parameter can be either an [page:AnimationClip] object or the name of an AnimationClip.
+		</div>
 
-    <h3>[method:null uncacheAction]([page:AnimationClip clip], [page:Object3D optionalRoot])</h3>
-    <div>
-    clip -- AnimationClip <br />
-    optionalRoot -- Object3D
-    </div>
-    <div>
-    Free all resources for an action.
-    </div>
+		<h3>[method:Object3D getRoot]()</h3>
+		<div>
+			Returns this mixer's root object.
+		</div>
 
+		<h3>[method:AnimationMixer stopAllAction]()</h3>
+		<div>
+			Deactivates all previously scheduled actions on this mixer.
+		</div>
 
-    <h2>Source</h2>
+		<h3>[method:AnimationMixer update]([page:Number deltaTimeInSeconds]) </h3>
+		<div>
+			Advances the global mixer time and updates the animation.<br /><br />
 
+			This is usually done in the render loop, passing [page:Clock.getDelta clock.getDelta] scaled by the mixer's [page:.timeScale timeScale]).
+		</div>
 
-    [link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
-  </body>
+		<h3>[method:null uncacheClip]([page:AnimationClip clip])</h3>
+
+		<div>
+			Deallocates all memory resources for a clip.
+		</div>
+
+		<h3>[method:null uncacheRoot]([page:Object3D root]) </h3>
+		<div>
+			Deallocates all memory resources for a root object.
+		</div>
+
+		<h3>[method:null uncacheAction]([page:AnimationClip clip], [page:Object3D optionalRoot])</h3>
+		<div>
+			Deallocates all memory resources for an action.
+		</div>
+
+
+		<h2>Source</h2>
+
+
+		[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+	</body>
 </html>

+ 55 - 44
docs/api/animation/AnimationObjectGroup.html

@@ -1,74 +1,85 @@
 <!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>
+	<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 group of objects that receives a shared animation state.</div>
+		<div class="desc">A group of objects that receives a shared animation state.<br /><br />
 
-    <h2>Usage:</h2>
+			For an overview of the different elements of the three.js animation system see the
+			"Animation System" article in the "Next Steps" section of the manual.
+		</div>
 
-    <div>
-      Add objects you would otherwise pass as 'root' to the	constructor or the [page:AnimationMixer.clipAction clipAction]
-      method of [page:AnimationMixer AnimationMixer] and instead pass this object as 'root'.<br /><br />
+		<h2>Usage:</h2>
 
-      Note that objects of this class appear as one object to the mixer,
-      so cache control of the individual objects must be done	on the group.
-    </div>
+		<div class="desc">
+			Add objects you would otherwise pass as 'root' to the constructor or the [page:AnimationMixer.clipAction clipAction]
+			method of [page:AnimationMixer AnimationMixer] and instead pass this object as 'root'.<br /><br />
 
+			Note that objects of this class appear as one object to the mixer,
+			so cache control of the individual objects must be done	on the group.
+		</div>
 
-   <h2>Limitations</h2>
-   <div>
-    The animated properties must be compatible among all objects in the group.<br /><br />
 
-    A single property can either be controlled through a target group or directly, but not both.
-    </div>
+		<h2>Limitations</h2>
+		<div class="desc">
+			The animated properties must be compatible among all objects in the group.<br /><br />
 
+			A single property can either be controlled through a target group or directly, but not both.
+		</div>
 
-    <h2>Constructor</h2>
 
+		<h2>Constructor</h2>
 
-    <h3>[name]( [page:object obj1], [page:object obj2], [page:object obj3], ... )</h3>
 
+		<h3>[name]( [page:object obj1], [page:object obj2], [page:object obj3], ... )</h3>
+		[page:object obj] - an abitrary number of meshes that share the same animation state.<br />
 
-    <h2>Properties</h2>
 
-    <h3>[property:object stats]</h3>
-    <div>
+		<h2>Properties</h2>
 
-    </div>
 
-    <h3>[property:Number timeScale]</h3>
+		<h3>[property:object stats]</h3>
+		<div>
+			An object that contains some informations of this *AnimationObjectGroup* (total number, number
+			in use, number of bindings per object)
+		</div>
 
+		<h3>[property:String uuid]</h3>
+		<div>
+			The [link:http://en.wikipedia.org/wiki/Universally_unique_identifier UUID] of this
+			*AnimationObjectGroup*. It gets automatically assigned and shouldn't be edited.
+		</div>
 
-    <h2>Methods</h2>
 
+		<h2>Methods</h2>
 
-    <h3>[method:null add]( [page:object obj1], [page:object obj2], [page:object obj3], ... )</h3>
-    <div>
 
-    </div>
+		<h3>[method:null add]( [page:object obj1], [page:object obj2], [page:object obj3], ... )</h3>
+		<div>
+			Adds an arbitrary number of objects to this *AnimationObjectGroup*.
+		</div>
 
-    <h3>[method:null remove]( [page:object obj1], [page:object obj2], [page:object obj3], ... )</h3>
-    <div>
+		<h3>[method:null remove]( [page:object obj1], [page:object obj2], [page:object obj3], ... )</h3>
+		<div>
+			Removes an arbitrary number of objects from this *AnimationObjectGroup*.
+		</div>
 
-    </div>
+		<h3>[method:null uncache]( [page:object obj1], [page:object obj2], [page:object obj3], ... )</h3>
+		<div>
+			Deallocates all memory resources for the passed objects of this *AnimationObjectGroup*.
+		</div>
 
-    <h3>[method:null uncache]( [page:object obj1], [page:object obj2], [page:object obj3], ... )</h3>
-    <div>
 
-    </div>
+		<h2>Source</h2>
 
 
-    <h2>Source</h2>
-
-
-    [link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
-  </body>
+		[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+	</body>
 </html>

+ 54 - 51
docs/api/animation/AnimationUtils.html

@@ -1,54 +1,57 @@
 <!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 various functions to assist with animations.
-    </div>
-
-    <h2>Methods</h2>
-
-    <h3>[method:Array arraySlice]( array, from, to )</h3>
-    <div>
-    This is the same as  Array.prototype.slice, but also works on typed arrays.
-    </div>
-
-    <h3>[method:Array convertArray]( array, type, forceClone )</h3>
-    <div>
-    Convert an array to a specific type.
-    </div>
-
-    <h3>[method:Boolean isTypedArray]( object )</h3>
-    <div>
-    Return *true* if the object is a typed array.
-    </div>
-
-    <h3>[method:Array getKeyframeOrder]( times )</h3>
-    <div>
-    Returns an array by which times and values can be sorted.
-    </div>
-
-    <h3>[method:Array sortedArray]( values, stride, order )</h3>
-    <div>
-    Sort the array previously returned by [page:AnimationUtils.getKeyframeOrder getKeyframeOrder].
-    </div>
-
-    <h3>[method:Array flattenJSON]( jsonKeys, times, values, valuePropertyName  )</h3>
-    <div>
-    Used for parsing AOS keyframe formats
-    </div>
-
-    <h2>Source</h2>
-
-
-    [link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
-  </body>
+	<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 various functions to assist with animations, used internally.
+		</div>
+
+
+		<h2>Methods</h2>
+
+
+		<h3>[method:Array arraySlice]( array, from, to )</h3>
+		<div>
+		This is the same as  Array.prototype.slice, but also works on typed arrays.
+		</div>
+
+		<h3>[method:Array convertArray]( array, type, forceClone )</h3>
+		<div>
+		Converts an array to a specific type.
+		</div>
+
+		<h3>[method:Array flattenJSON]( jsonKeys, times, values, valuePropertyName  )</h3>
+		<div>
+		Used for parsing AOS keyframe formats.
+		</div>
+
+		<h3>[method:Array getKeyframeOrder]( times )</h3>
+		<div>
+		Returns an array by which times and values can be sorted.
+		</div>
+
+		<h3>[method:Boolean isTypedArray]( object )</h3>
+		<div>
+		Returns *true* if the object is a typed array.
+		</div>
+
+		<h3>[method:Array sortedArray]( values, stride, order )</h3>
+		<div>
+		Sorts the array previously returned by [page:AnimationUtils.getKeyframeOrder getKeyframeOrder].
+		</div>
+
+
+		<h2>Source</h2>
+
+
+		[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+	</body>
 </html>

+ 234 - 151
docs/api/animation/KeyframeTrack.html

@@ -1,154 +1,237 @@
 <!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 timed sequence of [link:https://en.wikipedia.org/wiki/Key_frame keyframes] for animating
-    a specific property of an object.
-    </div>
-
-
-    <h2>Constructor</h2>
-
-
-    <h3>[name]( [page:String name], [page:Array times], [page:Array values], [page:Constant interpolation] )</h3>
-    <div>
-      -- [page:String name] (required) identifier for the KeyframeTrack.<br />
-      -- [page:Array times] (required) array of keyframe times<br />
-      -- [page:Array values] values for the keyframes at the times specified.<br />
-      -- [page:Constant interpolation] the type of interpolation to use. See [page:Animation Animation Constants] for possible values.
-      Default is [page:Animation InterpolateLinear].
-    </div>
-
-    <h2>Properties</h2>
-
-
-    <h3>[property:String name]</h3>
-    <div>
-    The name given to the KeyframeTrack in the constructor.
-    </div>
-
-    <h3>[property:Float32Array times]</h3>
-    <div>
-    [link:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Float32Array Float32Array]
-    of keyframe times.
-    </div>
-
-    <h3>[property:Float32Array values]</h3>
-    <div>
-    [link:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Float32Array Float32Array]
-    of keyframe values, corresponding to the [page:KeyframeTrack.times times].
-    </div>
-
-    <h3>[property:Constant DefaultInterpolation]</h3>
-    <div>
-    The default tnterpolation type to use, [page:Animation InterpolateLinear].
-    </div>
-
-
-    <h2>Methods</h2>
-
-    <h3>[method:null createInterpolant ](  )</h3>
-    <div>
-      Create a [page:LinearInterpolant LinearInterpolant], [page:CubicInterpolant CubicInterpolant]
-      or [page:DiscreteInterpolant DiscreteInterpolant], depending on the value of the interpolation parameter
-      passed in the constructor.
-    </div>
-
-    <h3>[method:null getInterpolation ](  )</h3>
-    <div>
-      Get the interpolation type.
-    </div>
-
-    <h3>[method:Number getValueSize ](  )</h3>
-    <div>
-      The the size of each value (length of the values array divied by length of times array).
-    </div>
-
-    <h3>[method:DiscreteInterpolant InterpolantFactoryMethodDiscrete ]( result )</h3>
-    <div>
-      Create a new [page:DiscreteInterpolant DiscreteInterpolant] from the [page:KeyframeTrack.times times]
-      and [page:KeyframeTrack.times values].
-    </div>
-
-    <h3>[method:null InterpolantFactoryMethodLinear ](  )</h3>
-    <div>
-      Create a new [page:LinearInterpolant LinearInterpolant] from the [page:KeyframeTrack.times times]
-      and [page:KeyframeTrack.times values].
-    </div>
-
-    <h3>[method:null InterpolantFactoryMethodSmooth ](  )</h3>
-    <div>
-      Create a new [page:CubicInterpolant CubicInterpolant] from the [page:KeyframeTrack.times times]
-      and [page:KeyframeTrack.times values].
-    </div>
-
-    <h3>[method:null optimize ](  )</h3>
-    <div>
-      Remove equivalent sequential keys, which are common in morph target sequences. <br />
-  	  Called automatically by the constructor.
-    </div>
-
-    <h3>[method:KeyframeTrack parse]( [page:JSON json] )</h3>
-    <div>
-    Parse json and return new keyframe track of the correct type.
-    </div>
-
-    <h3>[method:null scale ](  )</h3>
-    <div>
-      Scale all keyframe times by a factor (useful for frame <-> seconds conversions).
-    </div>
-
-    <h3>[method:null setInterpolation ]( [page:Constant interpolation] )</h3>
-    <div>
-      Set the interpolation type. See [page:Animation animation constants] for choices.
-    </div>
-
-    <h3>[method:null shift ]( [page:Number timeOffset] )</h3>
-    <div>
-      Move all keyframes either forwards or backwards in time.
-    </div>
-
-    <h3>[method:null TimeBufferType ](  )</h3>
-    <div>
-      [link:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Float32Array Float32Array],
-      used to convert the times array passed in the constructor to a Float32Array.
-    </div>
-
-    <h3>[method:JSON toJSON]( [page:KeyframeTrack track] )</h3>
-    <div>
-    Convert the track to JSON.
-    </div>
-
-    <h3>[method:null trim ]( [page:Number startTime], [page:Number endTime] )</h3>
-    <div>
-      Removes keyframes before [page:Number startTime] and after [page:Number endTime]
-      without changing any values within the range [[page:Number startTime], [page:Number endTime]].
-    </div>
-
-    <h3>[method:null validate ](  )</h3>
-    <div>
-      Perform minimal validation on the tracks. Called automatically by the constructor.
-    </div>
-
-    <h3>[method:null ValueBufferType ](  )</h3>
-    <div>
-      [link:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Float32Array Float32Array],
-      used to convert the values array passed in the constructor to a Float32Array.
-    </div>
-
-    <h2>Source</h2>
-
-
-    [link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
-  </body>
+	<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 KeyframeTrack is a timed sequence of [link:https://en.wikipedia.org/wiki/Key_frame keyframes],
+			which are composed of lists of times and related values, and which are used to animate a
+			specific property of an object.<br /><br />
+
+			For an overview of the different elements of the three.js animation system see the
+			"Animation System" article in the "Next Steps" section of the manual.<br /><br />
+
+			In contrast to the animation hierarchy of the
+			[link:https://github.com/mrdoob/three.js/wiki/JSON-Model-format-3 JSON model format] a
+			*KeyframeTrack* doesn't store its single keyframes as objects in a "keys" array (holding the
+			times and the values for each frame together in one place).<br /><br />
+
+			Instead of this there are always two arrays in a *KeyframeTrack*: the [page:.times times] array
+			stores the time values for all keyframes of this track in sequential order, and the
+			[page:.values values] array contains the corresponding changing values of the animated property.<br /><br />
+
+			A single value, belonging to a certain point of time, can not only be a simple number, but (for
+			example) a vector (if a position is animated) or a quaternion (if a rotation is animated). For
+			this reason the values array (which is a flat array, too) might be three or four times as long as the
+			times array.<br /><br />
+
+			Corresponding to the different possible types of animated values there are several subclasses of
+			*KeyframeTrack*, inheriting the most properties and methods:
+
+			<ul>
+				<li>[page:BooleanKeyframeTrack]</li>
+				<li>[page:ColorKeyframeTrack]</li>
+				<li>[page:NumberKeyframeTrack]</li>
+				<li>[page:QuaternionKeyframeTrack]</li>
+				<li>[page:StringKeyframeTrack]</li>
+				<li>[page:VectorKeyframeTrack]</li>
+			</ul>
+			Some examples of how to manually create [page:AnimationClip AnimationClips] with different sorts
+			of KeyframeTracks can be found in the [link:https://threejs.org/examples/js/AnimationClipCreator.js]
+			file.<br /><br />
+
+			Since explicit values are only specified for the discrete points of time stored in the times array,
+			all values in between have to be interpolated.<br /><br />
+
+			The track's name is important for the connection of this track with a specific property of the
+			animated node (done by [page:PropertyBinding]).
+
+
+		</div>
+
+
+		<h2>Constructor</h2>
+
+
+		<h3>[name]( [page:String name], [page:Array times], [page:Array values], [page:Constant interpolation] )</h3>
+		<div>
+			[page:String name] - the identifier for the *KeyframeTrack*.<br />
+			[page:Array times] - an array of keyframe times, converted internally to a
+			[link:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Float32Array Float32Array].<br />
+			[page:Array values] - an array with the values related to the times array, converted internally to a
+			[link:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Float32Array Float32Array].<br />
+			[page:Constant interpolation] - the type of interpolation to use. See
+			[page:Animation Animation Constants] for possible values. Default is [page:Animation InterpolateLinear].
+		</div>
+
+
+		<h2>Properties</h2>
+
+
+		<h3>[property:String name]</h3>
+		<div>
+			The track's name can refer to [page:Geometry.morphTargets morph targets] or
+			[page:SkinnedMesh bones] or possibly other values within an animated object. See
+			[page:PropertyBinding.parseTrackName] for the forms of strings that can be parsed for property
+			binding:<br /><br />
+
+			The name can specify the node either using its name or its uuid (although it needs to be in the
+			subtree of the scene graph node passed into the mixer). Or, if the track name starts with a dot,
+			the track applies to the root node that was passed into the mixer.<br /><br />
+
+			Usually after the node a property will be specified directly. But you can also specify a
+			subproperty, such as .rotation[x], if you just want to drive the X component of the rotation
+			via a float track.<br /><br />
+
+			You can also specify bones or multimaterials by using an object name, for example:
+			.bones[R_hand].scale; the red channel of the diffuse color of the fourth material in a
+			materials array - as a further example - can be accessed with .materials[3].diffuse[r].<br /><br />
+
+			PropertyBinding will also resolve morph target names, for example: .morphTargetInfluences[run].<br /><br />
+
+			Note: The track's name does not necessarily have to be unique. Multiple tracks can drive the same
+			property. The result should be based on a weighted blend between the multiple tracks according to
+			the weights of their respective actions.
+		</div>
+
+		<h3>[property:Float32Array times]</h3>
+		<div>
+			A [link:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Float32Array Float32Array],
+			converted from the times array which is passed in the constructor.
+		</div>
+
+		<h3>[property:Float32Array values]</h3>
+		<div>
+			A [link:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Float32Array Float32Array],
+			converted from the values array which is passed in the constructor.
+		</div>
+
+		<h3>[property:Constant DefaultInterpolation]</h3>
+		<div>
+			The default interpolation type: [page:Animation InterpolateLinear].
+		</div>
+
+		<h3>[property:Constant TimeBufferType ]</h3>
+		<div>
+			[link:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Float32Array Float32Array],
+			the type of the buffer internally used for the times.
+		</div>
+
+		<h3>[property:Constant ValueBufferType ]</h3>
+		<div>
+			[link:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Float32Array Float32Array],
+			the type of the buffer internally used for the values.
+		</div>
+
+
+		<h2>Methods</h2>
+
+
+		<h3>[method:null createInterpolant]()</h3>
+		<div>
+			Creates a [page:LinearInterpolant LinearInterpolant], [page:CubicInterpolant CubicInterpolant]
+			or [page:DiscreteInterpolant DiscreteInterpolant], depending on the value of the interpolation
+			parameter passed in the constructor.
+		</div>
+
+		<h3>[method:null getInterpolation]()</h3>
+		<div>
+			Returns the interpolation type.
+		</div>
+
+		<h3>[method:Number getValueSize]()</h3>
+		<div>
+			Returns the size of each value (that is the length of the [page:.values values] array divided
+			by the length of the [page:.times times] array).
+		</div>
+
+		<h3>[method:DiscreteInterpolant InterpolantFactoryMethodDiscrete]( [link:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Float32Array result] )</h3>
+		<div>
+			Creates a new [page:DiscreteInterpolant DiscreteInterpolant] from the
+			[page:KeyframeTrack.times times] and [page:KeyframeTrack.times values]. A Float32Array can be
+			passed which will receive the results. Otherwise a new array with the appropriate size will be
+			created automatically.
+		</div>
+
+		<h3>[method:null InterpolantFactoryMethodLinear]( [link:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Float32Array result] )</h3>
+		<div>
+			Creates a new [page:LinearInterpolant LinearInterpolant] from the
+			[page:KeyframeTrack.times times] and [page:KeyframeTrack.times values]. A Float32Array can be
+			passed which will receive the results. Otherwise a new array with the appropriate size will be
+			created automatically.
+		</div>
+
+		<h3>[method:null InterpolantFactoryMethodSmooth]( [link:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Float32Array result] )</h3>
+		<div>
+			Create a new [page:CubicInterpolant CubicInterpolant] from the
+			[page:KeyframeTrack.times times] and [page:KeyframeTrack.times values]. A Float32Array can be
+			passed which will receive the results. Otherwise a new array with the appropriate size will be
+			created automatically.
+		</div>
+
+		<h3>[method:null optimize]()</h3>
+		<div>
+			Removes equivalent sequential keys, which are common in morph target sequences. Called
+			automatically by the constructor.
+		</div>
+
+		<h3>[method:null scale]()</h3>
+		<div>
+			Scales all keyframe times by a factor.<br /><br />
+
+			Note: This is useful, for example, for conversions to a certain rate of frames per seconds (as it
+			is done internally by
+			[page:AnimationClip.CreateFromMorphTargetSequence animationClip.CreateFromMorphTargetSequence]).
+		</div>
+
+		<h3>[method:null setInterpolation]( [page:Constant interpolationType] )</h3>
+		<div>
+			Sets the interpolation type. See [page:Animation Animation Constants] for choices.
+		</div>
+
+		<h3>[method:null shift]( [page:Number timeOffsetInSeconds] )</h3>
+		<div>
+			Moves all keyframes either forward or backward in time.
+		</div>
+
+
+		<h3>[method:null trim]( [page:Number startTimeInSeconds], [page:Number endTimeInSeconds] )</h3>
+		<div>
+			Removes keyframes before *startTime* and after *endTime*,
+			without changing any values within the range [*startTime*, *endTime*].
+		</div>
+
+		<h3>[method:null validate]()</h3>
+		<div>
+			Performs minimal validation on the tracks. Called automatically by the constructor.<br /><br />
+			This method logs errors to the console, if a track is empty, if the [page:.valueSize value size] is not valid, if an item
+			in the [page:.times times] or [page:.values values] array is not a valid number or if the items in the *times* array are out of order.
+		</div>
+
+		<h2>Static Methods</h2>
+
+		<h3>[method:KeyframeTrack parse]( [page:JSON json] )</h3>
+		<div>
+		Parses a JSON object and returns a new keyframe track of the correct type.
+		</div>
+
+		<h3>[method:JSON toJSON]( [page:KeyframeTrack track] )</h3>
+		<div>
+		Converts the track to JSON.
+		</div>
+
+
+		<h2>Source</h2>
+
+
+		[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+	</body>
 </html>

+ 88 - 88
docs/api/animation/PropertyBinding.html

@@ -1,131 +1,131 @@
 <!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>
+	<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">
-    This holds a reference to a real property in the scene graph.
-    </div>
+		<div class="desc">
+			This holds a reference to a real property in the scene graph; used internally.
+		</div>
 
 
-    <h2>Constructor</h2>
+		<h2>Constructor</h2>
 
 
-    <h3>[name]( [page:Object3D rootNode], path, parsedPath )</h3>
-    <div>
-      -- [page:Object3D rootNode]:
-      -- path
-      -- parsedPath (optional)
+		<h3>[name]( [page:Object3D rootNode], path, parsedPath )</h3>
+		<div>
+			-- [page:Object3D rootNode]:
+			-- path
+			-- parsedPath (optional)
 
-    </div>
+		</div>
 
-    <h2>Properties</h2>
+		<h2>Properties</h2>
 
-    <h3>[property:Number path]</h3>
-    <div>
+		<h3>[property:Number path]</h3>
+		<div>
 
-    </div>
+		</div>
 
-    <h3>[property:Number parsedPath]</h3>
-    <div>
+		<h3>[property:Number parsedPath]</h3>
+		<div>
 
-    </div>
+		</div>
 
-    <h3>[property:Number node]</h3>
-    <div>
+		<h3>[property:Number node]</h3>
+		<div>
 
-    </div>
+		</div>
 
-    <h3>[property:Number rootNode]</h3>
-    <div>
+		<h3>[property:Number rootNode]</h3>
+		<div>
 
-    </div>
+		</div>
 
-    <h3>[property:Object BindingType]</h3>
-    <div>
+		<h3>[property:Object BindingType]</h3>
+		<div>
 
-    </div>
+		</div>
 
-    <h3>[property:Object Versioning]</h3>
-    <div>
+		<h3>[property:Object Versioning]</h3>
+		<div>
 
-    </div>
+		</div>
 
-    <h3>[property:Array GetterByBindingType]</h3>
-    <div>
+		<h3>[property:Array GetterByBindingType]</h3>
+		<div>
 
-    </div>
+		</div>
 
-    <h3>[property:Array SetterByBindingTypeAndVersioning]</h3>
-    <div>
+		<h3>[property:Array SetterByBindingTypeAndVersioning]</h3>
+		<div>
 
-    </div>
+		</div>
 
 
 
-    <h2>Methods</h2>
+		<h2>Methods</h2>
 
-    <h3>[method:null getValue]( [page:Array targetArray], [page:Number offset] )</h3>
-    <div>
-    </div>
+		<h3>[method:null getValue]( [page:Array targetArray], [page:Number offset] )</h3>
+		<div>
+		</div>
 
-    <h3>[method:null setValue]( [page:Array sourceArray], [page:Number offset] )</h3>
-    <div>
-    </div>
+		<h3>[method:null setValue]( [page:Array sourceArray], [page:Number offset] )</h3>
+		<div>
+		</div>
 
-    <h3>[method:null bind]( )</h3>
-    <div>
-      Create getter / setter pair for a property in the scene graph. Used internally by
-      [page:PropertyBinding.getValue getValue] and [page:PropertyBinding.setValue setValue].
-    </div>
+		<h3>[method:null bind]( )</h3>
+		<div>
+			Create getter / setter pair for a property in the scene graph. Used internally by
+			[page:PropertyBinding.getValue getValue] and [page:PropertyBinding.setValue setValue].
+		</div>
 
-    <h3>[method:null unbind]( )</h3>
-    <div>
-      Unbind getter / setter pair for a property in the scene graph.
-    </div>
+		<h3>[method:null unbind]( )</h3>
+		<div>
+			Unbind getter / setter pair for a property in the scene graph.
+		</div>
 
-    <h3>[method:Constructor Composite]( targetGroup, path, optionalParsedPath )</h3>
-    <div>
-      Create a new Composite PropertyBinding.
-    </div>
+		<h3>[method:Constructor Composite]( targetGroup, path, optionalParsedPath )</h3>
+		<div>
+			Create a new Composite PropertyBinding.
+		</div>
 
-    <h3>[method:Constructor create]( root, path, parsedPath )</h3>
-    <div>
-      Create a new Composite PropertyBinding (if root is an [page:AnimationObjectGroup]) or PropertyBinding.
-    </div>
+		<h3>[method:Constructor create]( root, path, parsedPath )</h3>
+		<div>
+			Create a new Composite PropertyBinding (if root is an [page:AnimationObjectGroup]) or PropertyBinding.
+		</div>
 
-    <h3>[method:Constructor parseTrackName]( trackName )</h3>
-    <div>
-      Matches strings in the following forms:<br />
-      -- nodeName.property<br />
-      -- nodeName.property[accessor]<br />
-      -- nodeName.material.property[accessor]<br />
-      -- uuid.property[accessor]<br />
-      -- uuid.objectName[objectIndex].propertyName[propertyIndex]<br />
-      -- parentName/nodeName.property<br />
-      -- parentName/parentName/nodeName.property[index]<br />
-      -- .bone[Armature.DEF_cog].position<br />
-      -- scene:helium_balloon_model:helium_balloon_model.position
-    </div>
+		<h3>[method:Constructor parseTrackName]( trackName )</h3>
+		<div>
+			Matches strings in the following forms:<br />
+			-- nodeName.property<br />
+			-- nodeName.property[accessor]<br />
+			-- nodeName.material.property[accessor]<br />
+			-- uuid.property[accessor]<br />
+			-- uuid.objectName[objectIndex].propertyName[propertyIndex]<br />
+			-- parentName/nodeName.property<br />
+			-- parentName/parentName/nodeName.property[index]<br />
+			-- .bone[Armature.DEF_cog].position<br />
+			-- scene:helium_balloon_model:helium_balloon_model.position
+		</div>
 
-    <h3>[method:Constructor findNode]( root, nodeName )</h3>
-    <div>
-      Find a node in a node tree or [page:Skeleton Skeleton].
-    </div>
+		<h3>[method:Constructor findNode]( root, nodeName )</h3>
+		<div>
+			Find a node in a node tree or [page:Skeleton Skeleton].
+		</div>
 
 
 
 
-    <h2>Source</h2>
+		<h2>Source</h2>
 
 
-    [link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
-  </body>
+		[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+	</body>
 </html>

+ 68 - 68
docs/api/animation/PropertyMixer.html

@@ -1,99 +1,99 @@
 <!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>
+	<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">
-    Buffered scene graph property that allows weighted accumulation.
-    </div>
+		<div class="desc">
+		Buffered scene graph property that allows weighted accumulation; used internally.
+		</div>
 
 
-    <h2>Constructor</h2>
+		<h2>Constructor</h2>
 
 
-    <h3>[name]( binding, typeName, valueSize )</h3>
-    <div>
-      -- binding <br />
-      -- typeName <br />
-      -- valueSize <br />
-    </div>
+		<h3>[name]( binding, typeName, valueSize )</h3>
+		<div>
+			-- binding <br />
+			-- typeName <br />
+			-- valueSize <br />
+		</div>
 
 
-    <h2>Properties</h2>
+		<h2>Properties</h2>
 
 
-    <h3>[property:Number binding]</h3>
-    <div>
+		<h3>[property:Number binding]</h3>
+		<div>
 
-    </div>
+		</div>
 
-    <h3>[property:Number buffer]</h3>
-    <div>
-      Buffer with size [page:PropertyMixer valueSize] * 4. <br /><br />
-      This has the layout: [ incoming | accu0 | accu1 | orig ]<br /><br />
-      Interpolators can use .buffer as their .result and the data then goes to 'incoming'.<br />
-      'accu0' and 'accu1' are used frame-interleaved for the cumulative result and
-      are compared to detect changes.<br />
-      'orig' stores the original state of the property.<br />
-    </div>
+		<h3>[property:Number buffer]</h3>
+		<div>
+			Buffer with size [page:PropertyMixer valueSize] * 4. <br /><br />
+			This has the layout: [ incoming | accu0 | accu1 | orig ]<br /><br />
+			Interpolators can use .buffer as their .result and the data then goes to 'incoming'.<br />
+			'accu0' and 'accu1' are used frame-interleaved for the cumulative result and
+			are compared to detect changes.<br />
+			'orig' stores the original state of the property.<br />
+		</div>
 
-    <h3>[property:Number cumulativeWeight]</h3>
-    <div>
-      Default is *0*.
-    </div>
+		<h3>[property:Number cumulativeWeight]</h3>
+		<div>
+			Default is *0*.
+		</div>
 
-    <h3>[property:Number valueSize]</h3>
-    <div>
+		<h3>[property:Number valueSize]</h3>
+		<div>
 
-    </div>
+		</div>
 
-    <h3>[property:Number referenceCount]</h3>
-    <div>
-      Default is *0*.
-    </div>
+		<h3>[property:Number referenceCount]</h3>
+		<div>
+			Default is *0*.
+		</div>
 
-    <h3>[property:Number useCount]</h3>
-    <div>
-      Default is *0*.
-    </div>
+		<h3>[property:Number useCount]</h3>
+		<div>
+			Default is *0*.
+		</div>
 
 
-    <h2>Methods</h2>
+		<h2>Methods</h2>
 
 
-    <h3>[method:null accumulate]( accuIndex, weight )</h3>
-    <div>
-      Accumulate data in [page:PropertyMixer.buffer buffer][accuIndex] 'incoming' region into 'accu[i]'.<br />
+		<h3>[method:null accumulate]( accuIndex, weight )</h3>
+		<div>
+			Accumulate data in [page:PropertyMixer.buffer buffer][accuIndex] 'incoming' region into 'accu[i]'.<br />
 
-      If weight is *0* this does nothing.
-    </div>
+			If weight is *0* this does nothing.
+		</div>
 
-    <h3>[method:null apply]( accuIndex )</h3>
-    <div>
-      Apply the state of [page:PropertyMixer.buffer buffer] 'accu[i]' to the binding when accus differ.
-    </div>
+		<h3>[method:null apply]( accuIndex )</h3>
+		<div>
+			Apply the state of [page:PropertyMixer.buffer buffer] 'accu[i]' to the binding when accus differ.
+		</div>
 
-    <h3>[method:null saveOriginalState]( )</h3>
-    <div>
-      Remember the state of the bound property and copy it to both accus.
-    </div>
+		<h3>[method:null saveOriginalState]( )</h3>
+		<div>
+			Remember the state of the bound property and copy it to both accus.
+		</div>
 
-    <h3>[method:null restoreOriginalState](  )</h3>
-    <div>
-      Apply the state previously taken via 'saveOriginalState' to the binding.
-    </div>
+		<h3>[method:null restoreOriginalState](  )</h3>
+		<div>
+			Apply the state previously taken via 'saveOriginalState' to the binding.
+		</div>
 
 
-    <h2>Source</h2>
+		<h2>Source</h2>
 
 
-    [link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
-  </body>
+		[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+	</body>
 </html>

+ 53 - 47
docs/api/animation/tracks/BooleanKeyframeTrack.html

@@ -1,72 +1,78 @@
 <!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>
+	<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:KeyframeTrack] &rarr;
 
-    <h1>[name]</h1>
+		<h1>[name]</h1>
 
-    <div class="desc">
-     A Track of Boolean keyframe values.
-    </div>
+		<div class="desc">
+			A Track of boolean keyframe values.
+		</div>
 
 
-    <h2>Constructor</h2>
+		<h2>Constructor</h2>
 
 
-    <h3>[name]( [page:String name], [page:Array times], [page:Array values] )</h3>
-    <div>
-      -- [page:String name] (required) identifier for the KeyframeTrack.<br />
-      -- [page:Array times] (required) array of keyframe times<br />
-      -- [page:Array values] values for the keyframes at the times specified.<br />
-    </div>
+		<h3>[name]( [page:String name], [page:Array times], [page:Array values] )</h3>
+		<div>
+			[page:String name] - (required) identifier for the KeyframeTrack.<br />
+			[page:Array times] - (required) array of keyframe times.<br />
+			[page:Array values] - values for the keyframes at the times specified.<br />
+		</div>
 
-    <h2>Properties</h2>
 
-		See [page:KeyframeTrack] for inherited properties.
+		<h2>Properties</h2>
 
 
-    <h3>[property:String ValueTypeName]</h3>
-    <div>
-    String 'bool'.
-    </div>
+		<div class="desc">
+			See [page:KeyframeTrack] for inherited properties.
+		</div>
 
-    <h3>[property:Constant DefaultInterpolation]</h3>
-    <div>
-    The default interpolation type to use, [page:Animation InterpolateDiscrete].
-    </div>
+		<h3>[property:Constant DefaultInterpolation]</h3>
+		<div>
+			The default interpolation type to use, [page:Animation InterpolateDiscrete].
+		</div>
 
+		<h3>[property:Array ValueBufferType]</h3>
+		<div>
+			A normal Array (no Float32Array in this case, unlike *ValueBufferType* of [page:KeyframeTrack]).
+		</div>
 
-    <h2>Methods</h2>
+		<h3>[property:String ValueTypeName]</h3>
+		<div>
+			String 'bool'.
+		</div>
 
-		See [page:KeyframeTrack] for inherited methods.
 
-    <h3>[method:null InterpolantFactoryMethodLinear ](  )</h3>
-    <div>
-      The value of this method here is 'undefined', as it does not make sense for discrete properties.
-    </div>
+		<h2>Methods</h2>
 
-    <h3>[method:null InterpolantFactoryMethodSmooth ](  )</h3>
-    <div>
-      The value of this method here is 'undefined', as it does not make sense for discrete properties.
-    </div>
 
-    <h3>[method:null ValueBufferType ](  )</h3>
-    <div>
-      Used to convert the values array passed in the constructor to an Array.
-			Note: In this case this does nothing, other Track types may convert the array to a Typed Array.
-    </div>
+		<div class="desc">
+			See [page:KeyframeTrack] for inherited methods.
+		</div>
 
-    <h2>Source</h2>
+		<h3>[method:null InterpolantFactoryMethodLinear ]()</h3>
+		<div>
+			The value of this method here is 'undefined', as it does not make sense for discrete properties.
+		</div>
 
+		<h3>[method:null InterpolantFactoryMethodSmooth ]()</h3>
+		<div>
+			The value of this method here is 'undefined', as it does not make sense for discrete properties.
+		</div>
 
-    [link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
-  </body>
+
+		<h2>Source</h2>
+
+
+		[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+	</body>
 </html>

+ 42 - 32
docs/api/animation/tracks/ColorKeyframeTrack.html

@@ -1,52 +1,62 @@
 <!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>
+	<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:KeyframeTrack] &rarr;
 
-    <h1>[name]</h1>
+		<h1>[name]</h1>
 
-    <div class="desc">
-     A Track of keyframe values that represent color.
-    </div>
+		<div class="desc">
+			A Track of keyframe values that represent color changes.<br /><br />
+			The very basic implementation of this subclass has nothing special yet. However, this is the place
+			for color space parameterization.
+		</div>
 
 
-    <h2>Constructor</h2>
+		<h2>Constructor</h2>
 
 
-    <h3>[name]( [page:String name], [page:Array times], [page:Array values] )</h3>
-    <div>
-      -- [page:String name] (required) identifier for the KeyframeTrack.<br />
-      -- [page:Array times] (required) array of keyframe times<br />
-      -- [page:Array values] values for the keyframes at the times specified.<br />
-			-- [page:Constant interpolation] the type of interpolation to use. See [page:Animation Animation Constants] for possible values.
-      Default is [page:Animation InterpolateLinear].
-    </div>
+		<h3>[name]( [page:String name], [page:Array times], [page:Array values] )</h3>
+		<div>
+			[page:String name] - (required) identifier for the KeyframeTrack.<br />
+			[page:Array times] - (required) array of keyframe times.<br />
+			[page:Array values] - values for the keyframes at the times specified.<br />
+			[page:Constant interpolation] - the type of interpolation to use. See
+			[page:Animation Animation Constants] for possible values. Default is
+			[page:Animation InterpolateLinear].
+		</div>
 
-    <h2>Properties</h2>
 
-		See [page:KeyframeTrack] for inherited properties.
+		<h2>Properties</h2>
 
-    <h3>[property:String ValueTypeName]</h3>
-    <div>
-    String 'color'.
-    </div>
 
-    <h2>Methods</h2>
+		<div class="desc">
+			See [page:KeyframeTrack] for inherited properties.
+		</div>
 
-		See [page:KeyframeTrack] for inherited methods.
+		<h3>[property:String ValueTypeName]</h3>
+		<div>
+			String 'color'.
+		</div>
 
 
-    <h2>Source</h2>
+		<h2>Methods</h2>
 
 
-    [link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
-  </body>
+		<div class="desc">
+			See [page:KeyframeTrack] for inherited methods.
+		</div>
+
+		<h2>Source</h2>
+
+
+		[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+	</body>
 </html>

+ 42 - 32
docs/api/animation/tracks/NumberKeyframeTrack.html

@@ -1,52 +1,62 @@
 <!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>
+	<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:KeyframeTrack] &rarr;
 
-    <h1>[name]</h1>
+		<h1>[name]</h1>
 
-    <div class="desc">
-     A Track of numeric keyframe values.
-    </div>
+		<div class="desc">
+			A Track of numeric keyframe values.
+		</div>
 
 
-    <h2>Constructor</h2>
+		<h2>Constructor</h2>
 
 
-    <h3>[name]( [page:String name], [page:Array times], [page:Array values] )</h3>
-    <div>
-      -- [page:String name] (required) identifier for the KeyframeTrack.<br />
-      -- [page:Array times] (required) array of keyframe times<br />
-      -- [page:Array values] values for the keyframes at the times specified.<br />
-			-- [page:Constant interpolation] the type of interpolation to use. See [page:Animation Animation Constants] for possible values.
-      Default is [page:Animation InterpolateLinear].
-    </div>
+		<h3>[name]( [page:String name], [page:Array times], [page:Array values] )</h3>
+		<div>
+			[page:String name] - (required) identifier for the KeyframeTrack.<br />
+			[page:Array times] - (required) array of keyframe times.<br />
+			[page:Array values] - values for the keyframes at the times specified.<br />
+			[page:Constant interpolation] - the type of interpolation to use. See
+			[page:Animation Animation Constants] for possible values. Default is
+			[page:Animation InterpolateLinear].
+		</div>
 
-    <h2>Properties</h2>
 
-		See [page:KeyframeTrack] for inherited properties.
+		<h2>Properties</h2>
 
 
-    <h3>[property:String ValueTypeName]</h3>
-    <div>
-    String 'number'.
-    </div>
+		<div class="desc">
+			See [page:KeyframeTrack] for inherited properties.
+		</div>
 
-    <h2>Methods</h2>
 
-		See [page:KeyframeTrack] for inherited methods.
+		<h3>[property:String ValueTypeName]</h3>
+		<div>
+			String 'number'.
+		</div>
 
-    <h2>Source</h2>
 
+		<h2>Methods</h2>
 
-    [link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
-  </body>
+
+		<div class="desc">
+			See [page:KeyframeTrack] for inherited methods.
+		</div>
+
+
+		<h2>Source</h2>
+
+
+		[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+	</body>
 </html>

+ 49 - 45
docs/api/animation/tracks/QuaternionKeyframeTrack.html

@@ -1,69 +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>
+	<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:KeyframeTrack] &rarr;
 
-    <h1>[name]</h1>
+		<h1>[name]</h1>
 
-    <div class="desc">
-     A Track of quaternion keyframe values.
-    </div>
+		<div class="desc">
+			A Track of quaternion keyframe values.
+		</div>
 
 
-    <h2>Constructor</h2>
+		<h2>Constructor</h2>
 
 
-    <h3>[name]( [page:String name], [page:Array times], [page:Array values] )</h3>
-    <div>
-      -- [page:String name] (required) identifier for the KeyframeTrack.<br />
-      -- [page:Array times] (required) array of keyframe times<br />
-      -- [page:Array values] values for the keyframes at the times specified.<br />
-			-- [page:Constant interpolation] the type of interpolation to use. See [page:Animation Animation Constants] for possible values.
-      Default is [page:Animation InterpolateLinear].
-    </div>
+		<h3>[name]( [page:String name], [page:Array times], [page:Array values] )</h3>
+		<div>
+			[page:String name] (required) identifier for the KeyframeTrack.<br />
+			[page:Array times] (required) array of keyframe times.<br />
+			[page:Array values] values for the keyframes at the times specified.<br />
+			[page:Constant interpolation] the type of interpolation to use. See
+			[page:Animation Animation Constants] for possible values. Default is
+			[page:Animation InterpolateLinear].
+		</div>
 
-    <h2>Properties</h2>
 
-		See [page:KeyframeTrack] for inherited properties.
+		<h2>Properties</h2>
 
 
-    <h3>[property:String ValueTypeName]</h3>
-    <div>
-    String 'quaternion'.
-    </div>
+		<div class="desc">
+			See [page:KeyframeTrack] for inherited properties.
+		</div>
 
-    <h3>[property:Constant DefaultInterpolation]</h3>
-    <div>
-    The default interpolation type to use, [page:Animation InterpolateLinear].
-    </div>
+		<h3>[property:Constant DefaultInterpolation]</h3>
+		<div>
+			The default interpolation type to use, [page:Animation InterpolateLinear].
+		</div>
 
+		<h3>[property:String ValueTypeName]</h3>
+		<div>
+			String 'quaternion'.
+		</div>
 
-    <h2>Methods</h2>
 
-		See [page:KeyframeTrack] for inherited methods.
+		<h2>Methods</h2>
 
-    <h3>[method:Number getValueSize ](  )</h3>
-    <div>
-      The the size of each value (length of the values array divied by length of times array).
-    </div>
 
-    <h3>[method:null InterpolantFactoryMethodLinear ](  )</h3>
-    <div>
-      Returns a new [page:QuaternionLinearInterpolant QuaternionLinearInterpolant] based on the [page:KeyframeTrack.values values],
-			[page:KeyframeTrack.times times] and [page:KeyframeTrack.valueSize valueSize] of the keyframes.
-    </div>
+		<div class="desc">
+			See [page:KeyframeTrack] for inherited methods.
+		</div>
 
+		<h3>[method:null InterpolantFactoryMethodLinear]()</h3>
+		<div>
+			Returns a new [page:QuaternionLinearInterpolant QuaternionLinearInterpolant] based on the 
+			[page:KeyframeTrack.values values], [page:KeyframeTrack.times times] and 
+			[page:KeyframeTrack.valueSize valueSize] of the keyframes.
+		</div>
 
-    <h2>Source</h2>
 
-    [link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
-  </body>
+		<h2>Source</h2>
+
+
+		[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+	</body>
 </html>

+ 56 - 49
docs/api/animation/tracks/StringKeyframeTrack.html

@@ -1,74 +1,81 @@
 <!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>
+	<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:KeyframeTrack] &rarr;
 
-    <h1>[name]</h1>
+		<h1>[name]</h1>
 
-    <div class="desc">
-     A Track of String keyframe values.
-    </div>
+		<div class="desc">
+			A Track of string keyframe values.
+		</div>
 
 
-    <h2>Constructor</h2>
+		<h2>Constructor</h2>
 
 
-    <h3>[name]( [page:String name], [page:Array times], [page:Array values] )</h3>
-    <div>
-      -- [page:String name] (required) identifier for the KeyframeTrack.<br />
-      -- [page:Array times] (required) array of keyframe times<br />
-      -- [page:Array values] values for the keyframes at the times specified.<br />
-			-- [page:Constant interpolation] the type of interpolation to use. See [page:Animation Animation Constants] for possible values.
-      Default is [page:Animation InterpolateDiscrete].
-    </div>
+		<h3>[name]( [page:String name], [page:Array times], [page:Array values] )</h3>
+		<div>
+			[page:String name] - (required) identifier for the KeyframeTrack.<br />
+			[page:Array times] - (required) array of keyframe times.<br />
+			[page:Array values] - values for the keyframes at the times specified.<br />
+			[page:Constant interpolation] - the type of interpolation to use. See
+			[page:Animation Animation Constants] for possible values. Default is
+			[page:Animation InterpolateDiscrete].
+		</div>
 
-    <h2>Properties</h2>
 
-		See [page:KeyframeTrack] for inherited properties.
+		<h2>Properties</h2>
 
 
-    <h3>[property:String ValueTypeName]</h3>
-    <div>
-    String 'string'.
-    </div>
+		<div class="desc">
+			See [page:KeyframeTrack] for inherited properties.
+		</div>
 
-    <h3>[property:Constant DefaultInterpolation]</h3>
-    <div>
-    The default interpolation type to use, [page:Animation InterpolateDiscrete].
-    </div>
+		<h3>[property:Constant DefaultInterpolation]</h3>
+		<div>
+			The default interpolation type to use, [page:Animation InterpolateDiscrete].
+		</div>
 
+		<h3>[property:Array ValueBufferType]</h3>
+		<div>
+			A normal Array (no Float32Array in this case, unlike *ValueBufferType* of [page:KeyframeTrack]).
+		</div>
 
-    <h2>Methods</h2>
+		<h3>[property:String ValueTypeName]</h3>
+		<div>
+			String 'string'.
+		</div>
 
-		See [page:KeyframeTrack] for inherited methods.
 
-    <h3>[method:null InterpolantFactoryMethodLinear ](  )</h3>
-    <div>
-      The value of this method here is 'undefined', as it does not make sense for discrete properties.
-    </div>
+		<h2>Methods</h2>
 
-    <h3>[method:null InterpolantFactoryMethodSmooth ](  )</h3>
-    <div>
-      The value of this method here is 'undefined', as it does not make sense for discrete properties.
-    </div>
 
-    <h3>[method:null ValueBufferType ](  )</h3>
-    <div>
-      Used to convert the values array passed in the constructor to an Array.
-			Note: In this case this does nothing, other Track types may convert the array to a Typed Array.
-    </div>
+		<div class="desc">
+			See [page:KeyframeTrack] for inherited methods.
+		</div>
 
-    <h2>Source</h2>
+		<h3>[method:null InterpolantFactoryMethodLinear]()</h3>
+		<div>
+		  The value of this method here is 'undefined', as it does not make sense for discrete properties.
+		</div>
 
+		<h3>[method:null InterpolantFactoryMethodSmooth]()</h3>
+		<div>
+		  The value of this method here is 'undefined', as it does not make sense for discrete properties.
+		</div>
 
-    [link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
-  </body>
+
+		<h2>Source</h2>
+
+
+		[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+	</body>
 </html>

+ 42 - 32
docs/api/animation/tracks/VectorKeyframeTrack.html

@@ -1,51 +1,61 @@
 <!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>
+	<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:KeyframeTrack] &rarr;
 
-    <h1>[name]</h1>
+		<h1>[name]</h1>
 
-    <div class="desc">
-     A Track of Vector keyframe values.
-    </div>
+		<div class="desc">
+			A Track of vector keyframe values.
+		</div>
 
 
-    <h2>Constructor</h2>
+		<h2>Constructor</h2>
 
 
-    <h3>[name]( [page:String name], [page:Array times], [page:Array values] )</h3>
-    <div>
-      -- [page:String name] (required) identifier for the KeyframeTrack.<br />
-      -- [page:Array times] (required) array of keyframe times<br />
-      -- [page:Array values] values for the keyframes at the times specified.<br />
-			-- [page:Constant interpolation] the type of interpolation to use. See [page:Animation Animation Constants] for possible values.
-      Default is [page:Animation InterpolateLinear].
-    </div>
+		<h3>[name]( [page:String name], [page:Array times], [page:Array values] )</h3>
+		<div>
+			[page:String name] - (required) identifier for the KeyframeTrack.<br />
+			[page:Array times] - (required) array of keyframe times.<br />
+			[page:Array values] - values for the keyframes at the times specified.<br />
+			[page:Constant interpolation] - the type of interpolation to use. See 
+			[page:Animation Animation Constants] for possible values. Default is 
+			[page:Animation InterpolateLinear].
+		</div>
 
-    <h2>Properties</h2>
 
-		See [page:KeyframeTrack] for inherited properties.
+		<h2>Properties</h2>
 
-    <h3>[property:String ValueTypeName]</h3>
-    <div>
-    String 'vector'.
-    </div>
 
-    <h2>Methods</h2>
+		<div class="desc">
+			See [page:KeyframeTrack] for inherited properties.
+		</div>
 
-		See [page:KeyframeTrack] for inherited methods.
+		<h3>[property:String ValueTypeName]</h3>
+		<div>
+			String 'vector'.
+		</div>
 
-    <h2>Source</h2>
 
+		<h2>Methods</h2>
 
-    [link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
-  </body>
+
+		<div class="desc">
+			See [page:KeyframeTrack] for inherited methods.
+		</div>
+
+
+		<h2>Source</h2>
+
+
+		[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+	</body>
 </html>

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

@@ -21,22 +21,25 @@
 
 		<h2>Example</h2>
 
-		<div>[example:misc_sound misc / sound ]</div>
+		<div>
+			[example:webaudio_sandbox webaudio / sandbox ]</br>
+			[example:webaudio_visualizer webaudio / visualizer ]
+		</div>
+
 		<code>
-		//Create an AudioListener and add it to the camera
+		// create an AudioListener and add it to the camera
 		var listener = new THREE.AudioListener();
 		camera.add( listener );
 
 		// create a global audio source
 		var sound = new THREE.Audio( listener );
 
+		// load a sound and set it as the Audio object's buffer
 		var audioLoader = new THREE.AudioLoader();
-
-		//Load a sound and set it as the Audio object's buffer
 		audioLoader.load( 'sounds/ambient.ogg', function( buffer ) {
 			sound.setBuffer( buffer );
-			sound.setLoop(true);
-			sound.setVolume(0.5);
+			sound.setLoop( true );
+			sound.setVolume( 0.5 );
 			sound.play();
 		});
 		</code>
@@ -77,7 +80,10 @@
 		<div>Whether the audio is currently playing.</div>
 
 		<h3>[property:Number startTime]</h3>
-		<div>Point at which to start playback. Default is *0*.</div>
+		<div>The time at which the sound should begin to play. Same as the *when* paramter of [link:https://developer.mozilla.org/en-US/docs/Web/API/AudioBufferSourceNode/start AudioBufferSourceNode.start](). Default is *0*.</div>
+
+		<h3>[property:Number offset]</h3>
+		<div>An offset to the time within the audio buffer that playback should begin. Same as the *offset* paramter of [link:https://developer.mozilla.org/en-US/docs/Web/API/AudioBufferSourceNode/start AudioBufferSourceNode.start](). Default is *0*.</div>
 
 		<h3>[property:String source]</h3>
 		<div>An [link:https://developer.mozilla.org/en-US/docs/Web/API/AudioBufferSourceNode AudioBufferSourceNode] created

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

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

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

@@ -13,27 +13,30 @@
 		<h1>[name]</h1>
 
 		<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>
 
 
 		<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>
-		//Create an AudioListener and add it to the camera
+		// create an AudioListener and add it to the camera
 		var listener = new THREE.AudioListener();
 		camera.add( listener );
 
 		// create a global audio source
 		var sound = new THREE.Audio( listener );
 
+		// load a sound and set it as the Audio object's buffer
 		var audioLoader = new THREE.AudioLoader();
-
-		//Load a sound and set it as the Audio object's buffer
 		audioLoader.load( 'sounds/ambient.ogg', function( buffer ) {
 			sound.setBuffer( buffer );
 			sound.setLoop(true);

+ 15 - 11
docs/api/audio/PositionalAudio.html

@@ -21,30 +21,34 @@
 
 		<h2>Example</h2>
 
-		<div>[example:misc_sound misc / sound ]</div>
+		<div>
+			[example:webaudio_sandbox webaudio / sandbox ]</br>
+			[example:webaudio_timing webaudio / timing ]
+		</div>
+
 		<code>
-		//Create an AudioListener and add it to the camera
+		// create an AudioListener and add it to the camera
 		var listener = new THREE.AudioListener();
 		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 );
 
-		//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();
 		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 material = new THREE.MeshPhongMaterial( { color: 0xff2200 } );
 		var mesh = new THREE.Mesh( sphere, material );
 		scene.add( mesh );
 
-		//Finally add the sound to the mesh
+		// finally add the sound to the mesh
 		mesh.add( sound );
 		</code>
 
@@ -110,12 +114,12 @@
 
 		<h3>[method:PannerNode getMaxDistance]()</h3>
 		<div>
-		Returns the value of [link:https://developer.mozilla.org/en-US/docs/Web/API/PannerNode/maxDistance panner.distanceModel].
+		Returns the value of [link:https://developer.mozilla.org/en-US/docs/Web/API/PannerNode/maxDistance panner.maxDistance].
 		</div>
 
 		<h3>[method:PannerNode setMaxDistance]( [page:Number value] )</h3>
 		<div>
-		Sets the value of [link:https://developer.mozilla.org/en-US/docs/Web/API/PannerNode/maxDistance panner.distanceModel].
+		Sets the value of [link:https://developer.mozilla.org/en-US/docs/Web/API/PannerNode/maxDistance panner.maxDistance].
 		</div>
 
 		<h2>Source</h2>

+ 7 - 11
docs/api/cameras/Camera.html

@@ -71,17 +71,13 @@
 
 		<h3>[method:Vector3 getWorldDirection]( [page:Vector3 optionalTarget] )</h3>
 		<div>
-		Returns a vector representing the direction in which the camera is looking,
-		in world space. If the [page:Vector3 optionalTarget] is set, returns a vector representing the direction
-		from the camera's position to the [page:Vector3 optionalTarget].
-		</div>
-
-		<h3>[method:null lookAt]( [page:Vector3 target] )</h3>
-		<div>
-		target — position in 3D space for the camera to point towards<br /><br />
-
-		This makes the camera look at the vector position in the global space as long as
-		the parent of this camera is the scene or at position (0,0,0).
+		Returns a [page:Vector3] representing the world space direction in which the camera is looking.<br /><br />
+		
+		Note: This is not the camera’s positive, but its negative z-axis, in contrast to
+		[page:Object3D.getWorldDirection getWorldDirection] of the base class (Object3D).<br /><br />
+		
+		If an [page:Vector3 optionalTarget] vector is specified, the result will be copied into this vector
+		(which can be reused in this way), otherwise a new vector will be created.
 		</div>
 
 		<h2>Source</h2>

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

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

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

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

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

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

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

@@ -22,7 +22,7 @@
 		material.blending = THREE.CustomBlending;
 		material.blendEquation = THREE.AddEquation; //default
 		material.blendSrc = THREE.SrcAlphaFactor; //default
-		material.blendDst = THREE.OneMinusDstAlphaFactor; //default
+		material.blendDst = THREE.OneMinusSrcAlphaFactor; //default
 		</code>
 
 		<h2>Blending Equations</h2>

+ 1 - 11
docs/api/constants/Materials.html

@@ -28,16 +28,6 @@
 		</div>
 
 
-		<h2>Shading</h2>
-		<code>
-	  THREE.SmoothShading
-		THREE.FlatShading
-		</code>
-		<div>
-		[page:Constant SmoothShading] is the default and linearly interpolates color between vertices.<br />
-		[page:Constant FlatShading] uses the color of the first vertex for every pixel in a face.
-		</div>
-
 		<h2>Colors</h2>
 		<code>
 		THREE.NoColors
@@ -87,7 +77,7 @@
 		[page:Materials LessEqualDepth] is the default and will return true if the incoming pixel Z-depth is less than or equal to the current buffer Z-depth.<br />
 		[page:Materials GreaterEqualDepth] will return true if the incoming pixel Z-depth is greater than or equal to the current buffer Z-depth.<br />
 		[page:Materials GreaterDepth] will return true if the incoming pixel Z-depth is greater than the current buffer Z-depth.<br />
-		[page:Materials NotEqualDepth] will return true if the incoming pixel Z-depth is equal to the current buffer Z-depth.<br />
+		[page:Materials NotEqualDepth] will return true if the incoming pixel Z-depth is not equal to the current buffer Z-depth.<br />
 		</div>
 
 		<h2>Texture Combine Operations</h2>

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

@@ -33,7 +33,7 @@
 		<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 counter-clockwise (default).
+		[page:constant FrontFaceDirectionCCW] sets the winding order for polygons to counter-clockwise (default).
 		</div>
 
 		<h2>Shadow Types</h2>

+ 8 - 3
docs/api/constants/Textures.html

@@ -33,9 +33,14 @@
 		[page:Constant CubeReflectionMapping] is the default for a [page:CubeTexture CubeTexture]. <br /><br />
 
 		[page:Constant EquirectangularReflectionMapping] and [page:Constant EquirectangularRefractionMapping]
-		are for use with an equirectangular environment map.<br /><br />
-
-		[page:Constant SphericalReflectionMapping] is for use with a spherical reflection map.<br /><br />
+		are for use with an equirectangular environment map.  Also called a lat-long map, an equirectangular 
+		texture represents a 360-degree view along the horizontal centerline, and a 180-degree view along the 
+		vertical axis, with the top and bottom edges of the image corresponding to the north and south poles 
+		of a mapped sphere.<br /><br />
+
+		[page:Constant SphericalReflectionMapping] is for use with a spherical reflection map such as may be obtained
+		by cropping a photograph of a mirrored ball.  Sphere maps will be rendered "facing" the camera, irrespective
+		of the position of the camera relative to the cubemapped object or surface.<br /><br />
 
 		See the [example:webgl_materials_envmaps materials / envmaps] example.
 		</div>

+ 4 - 0
docs/api/core/BufferAttribute.html

@@ -78,6 +78,10 @@
 		<h3>[property:Integer itemSize]</h3>
 		<div>The length of vectors that are being stored in the [page:BufferAttribute.array array].</div>
 
+		<h3>[property:String name]</h3>
+		<div>
+		Optional name for this attribute instance. Default is an empty string.
+		</div>
 
 		<h3>[property:Boolean needsUpdate]</h3>
 		<div>

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

@@ -73,7 +73,7 @@
 
 		<h3>[page:BufferAttribute normal] (itemSize: 3)</h3>
 		<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]().
 		</div>
 
@@ -110,7 +110,7 @@
 		<h3>[property:Hashmap attributes]</h3>
 		<div>
 		This hashmap has as id the name of the attribute to be set and as value the [page:BufferAttribute buffer] to set it to.
-		Rather than accessing this property directly, use addAttribute and getAttribute to access attributes of this geometry.
+		Rather than accessing this property directly, use [page:.addAttribute] and [page:.getAttribute] to access attributes of this geometry.
 		</div>
 
 		<h3>[property:Box3 boundingBox]</h3>
@@ -138,12 +138,12 @@
 		<h3>[property:Array groups]</h3>
 		<div>
 			Split the geometry into groups, each of which will be rendered in a separate WebGL draw call.
-			This allows a [page:MultiMaterial] to be used with the bufferGeometry.<br /><br />
+			This allows an array of materials to be used with the bufferGeometry.<br /><br />
 
 			Each group is an object of the form:
 			<code>{ start: Integer, count: Integer, materialIndex: Integer }</code>
 			where start specifies the index of the first vertex in this draw call, count specifies
-			how many vertices are included, and materialIndex specifies the [page:MultiMaterial] index to use.<br /><br />
+			how many vertices are included, and materialIndex specifies the material array index to use.<br /><br />
 
 			Use [page:.addGroup] to add groups, rather than modifying this array directly.
 		</div>
@@ -176,9 +176,6 @@
 			You should not change this, as it used internally for optimisation.
 		</div>
 
-		<h3>[property:Integer MaxIndex]</h3>
-		<div>Maximum number of vertices allowed, set to *65535*.</div>
-
 		<h3>[property:Object morphAttributes]</h3>
 		<div>
 			Hashmap of [page:BufferAttribute]s holding details of the geometry's [page:Geometry.morphTargets morphTargets].
@@ -319,6 +316,9 @@
 		<h3>[method:BufferGeometry setFromObject] ( [page:Object3D object] )</h3>
 		<div>Sets the attributes for this BufferGeometry from an [page:Object3D].</div>
 
+		<h3>[method:BufferGeometry setFromPoints] ( [page:Array points] )</h3>
+		<div>Sets the attributes for this BufferGeometry from an array of points.</div>
+
 		<h3>[method:Object toJSON]()</h3>
 		<div>Returns a JSON object representation of the BufferGeometry.</div>
 
@@ -329,11 +329,11 @@
 		<div>
 		Translate the geometry. This is typically done as a one time operation, and not during a loop.
     Use [page:Object3D.position] for typical real-time mesh translation.
-		</div>
-
-		<h3>[method:BufferGeometry updateFromObject] ( [page:Object3D object] )</h3>
-		<div>Updates the attributes for this BufferGeometry from an [page:Object3D].</div>
-
+		</div>
+
+		<h3>[method:BufferGeometry updateFromObject] ( [page:Object3D object] )</h3>
+		<div>Updates the attributes for this BufferGeometry from an [page:Object3D].</div>
+
 
 
 

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

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

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

@@ -1,134 +1,134 @@
-<!DOCTYPE html>
-<html lang="en">
-	<head>
+<!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">
-		Triangular face used in [page:Geometry]. These are created automatically for all
-		standard geometry types, however if you are building a custom geometry you will have to
-		create them manually.
-		</div>
-
-
-		<h2>Examples</h2>
-
-		<div>[example:misc_ubiquity_test ubiquity / test ]</div>
-		<div>[example:svg_sandbox svg / sandbox ]</div>
-		<div>[example:webgl_exporter_obj WebGL / exporter / obj ]</div>
-		<div>[example:webgl_shaders_vector WebGL / shaders / vector ]</div>
-
-
-		<code>
-var material = new THREE.MeshStandardMaterial( { color : 0x00cc00 } );
-
-//create a triangular geometry
-var geometry = new THREE.Geometry();
-geometry.vertices.push( new THREE.Vector3( -50, -50, 0 ) );
-geometry.vertices.push( new THREE.Vector3(  50, -50, 0 ) );
-geometry.vertices.push( new THREE.Vector3(  50,  50, 0 ) );
-
-//create a new face using vertices 0, 1, 2
-var normal = new THREE.Vector3( 0, 1, 0 ); //optional
-var color = new THREE.Color( 0xffaa00 ); //optional
-var materialIndex = 0; //optional
-var face = new THREE.Face3( 0, 1, 2, normal, color, materialIndex );
-
-//add the face to the geometry's faces array
-geometry.faces.push( face );
-
-//the face normals and vertex normals can be calculated automatically if not supplied above
-geometry.computeFaceNormals();
-geometry.computeVertexNormals();
-
-scene.add( new THREE.Mesh( geometry, material ) );
-	</code>
-
-
-		<h2>Constructor</h2>
-
-		<h3>[name]( [page:Integer a], [page:Integer b], [page:Integer c], [page:Vector3 normal], [page:Color color], [page:Integer materialIndex] )</h3>
-		<div>
-		a — Vertex A index.<br />
-		b — Vertex B index.<br />
-		c — Vertex C index.<br /><br />
-
-		normal — (optional) Face normal ([page:Vector3 Vector3]) or array of vertex normals.
-		If a single vector is passed in, this sets [page:.normal], otherwise if an array of three
-		vectors is passed in this sets [page:.vertexNormals]<br /><br />
-
-		color — (optional) Face [page:Color color] or array of vertex [page:Color colors].
-		If a single vector is passed in, this sets [page:.color], otherwise if an array of three
-		vectors is passed in this sets [page:.vertexColors]<br /><br />
-
-		materialIndex — (optional) which index of a [page:MultiMaterial] to associate
-		with the face.
-		</div>
-
-		<h2>Properties</h2>
-
-		<h3>[property:Integer a]</h3>
-		<div>
-		Vertex A index.
-		</div>
-
-		<h3>[property:Integer b]</h3>
-		<div>
-		Vertex B index.
-		</div>
-
-		<h3>[property:Integer c]</h3>
-		<div>
-		Vertex C index.
-		</div>
-
-		<h3>[property:Vector3 normal]</h3>
-		<div>
-		Face normal - vector showing the direction of the Face3. If calculated automatically
-		(using [page:Geometry.computeFaceNormals]), this is the normalized cross product of two edges of the
-		triangle. Default is *(0, 0, 0)*.
-		</div>
-
-		<h3>[property:Color color]</h3>
-		<div>
-		Face color - for this to be used a material's [page:Material.vertexColors vertexColors] property
-		must be set to [page:Materials THREE.FaceColors].
-		</div>
-
-		<h3>[property:Array vertexNormals]</h3>
-		<div>
-		Array of 3 [page:Vector3 vertex normals].
-		</div>
-
-		<h3>[property:Array vertexColors]</h3>
-		<div>
-		Array of 3 vertex colors - for these to be used a material's [page:Material.vertexColors vertexColors] property
-		must be set to [page:Materials THREE.VertexColors].
-		</div>
-
-
-		<h3>[property:Integer materialIndex]</h3>
-		<div>
-		Material index (points to [page:MultiMaterial MultiMaterial.materials]). Default is *0*.
-		</div>
-
-		<h2>Methods</h2>
-
-		<h3>[method:Face3 clone]()</h3>
-		<div>Creates a new clone of the Face3 object.</div>
-
-		<h3>[method:Face3 copy]( [page:Face3 face3] )</h3>
-		<div>Copy the paramaters of another Face3 into this.</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">
+		Triangular face used in [page:Geometry]. These are created automatically for all
+		standard geometry types, however if you are building a custom geometry you will have to
+		create them manually.
+		</div>
+
+
+		<h2>Examples</h2>
+
+		<div>[example:misc_ubiquity_test ubiquity / test ]</div>
+		<div>[example:svg_sandbox svg / sandbox ]</div>
+		<div>[example:misc_exporter_obj exporter / obj ]</div>
+		<div>[example:webgl_shaders_vector WebGL / shaders / vector ]</div>
+
+
+		<code>
+var material = new THREE.MeshStandardMaterial( { color : 0x00cc00 } );
+
+//create a triangular geometry
+var geometry = new THREE.Geometry();
+geometry.vertices.push( new THREE.Vector3( -50, -50, 0 ) );
+geometry.vertices.push( new THREE.Vector3(  50, -50, 0 ) );
+geometry.vertices.push( new THREE.Vector3(  50,  50, 0 ) );
+
+//create a new face using vertices 0, 1, 2
+var normal = new THREE.Vector3( 0, 1, 0 ); //optional
+var color = new THREE.Color( 0xffaa00 ); //optional
+var materialIndex = 0; //optional
+var face = new THREE.Face3( 0, 1, 2, normal, color, materialIndex );
+
+//add the face to the geometry's faces array
+geometry.faces.push( face );
+
+//the face normals and vertex normals can be calculated automatically if not supplied above
+geometry.computeFaceNormals();
+geometry.computeVertexNormals();
+
+scene.add( new THREE.Mesh( geometry, material ) );
+	</code>
+
+
+		<h2>Constructor</h2>
+
+		<h3>[name]( [page:Integer a], [page:Integer b], [page:Integer c], [page:Vector3 normal], [page:Color color], [page:Integer materialIndex] )</h3>
+		<div>
+		a — Vertex A index.<br />
+		b — Vertex B index.<br />
+		c — Vertex C index.<br /><br />
+
+		normal — (optional) Face normal ([page:Vector3 Vector3]) or array of vertex normals.
+		If a single vector is passed in, this sets [page:.normal], otherwise if an array of three
+		vectors is passed in this sets [page:.vertexNormals]<br /><br />
+
+		color — (optional) Face [page:Color color] or array of vertex [page:Color colors].
+		If a single vector is passed in, this sets [page:.color], otherwise if an array of three
+		vectors is passed in this sets [page:.vertexColors]<br /><br />
+
+		materialIndex — (optional) which index of an array of materials to associate
+		with the face.
+		</div>
+
+		<h2>Properties</h2>
+
+		<h3>[property:Integer a]</h3>
+		<div>
+		Vertex A index.
+		</div>
+
+		<h3>[property:Integer b]</h3>
+		<div>
+		Vertex B index.
+		</div>
+
+		<h3>[property:Integer c]</h3>
+		<div>
+		Vertex C index.
+		</div>
+
+		<h3>[property:Vector3 normal]</h3>
+		<div>
+		Face normal - vector showing the direction of the Face3. If calculated automatically
+		(using [page:Geometry.computeFaceNormals]), this is the normalized cross product of two edges of the
+		triangle. Default is *(0, 0, 0)*.
+		</div>
+
+		<h3>[property:Color color]</h3>
+		<div>
+		Face color - for this to be used a material's [page:Material.vertexColors vertexColors] property
+		must be set to [page:Materials THREE.FaceColors].
+		</div>
+
+		<h3>[property:Array vertexNormals]</h3>
+		<div>
+		Array of 3 [page:Vector3 vertex normals].
+		</div>
+
+		<h3>[property:Array vertexColors]</h3>
+		<div>
+		Array of 3 vertex colors - for these to be used a material's [page:Material.vertexColors vertexColors] property
+		must be set to [page:Materials THREE.VertexColors].
+		</div>
+
+
+		<h3>[property:Integer materialIndex]</h3>
+		<div>
+		Material index (points to an index in the associated array of materials). Default is *0*.
+		</div>
+
+		<h2>Methods</h2>
+
+		<h3>[method:Face3 clone]()</h3>
+		<div>Creates a new clone of the Face3 object.</div>
+
+		<h3>[method:Face3 copy]( [page:Face3 face3] )</h3>
+		<div>Copy the paramaters of another Face3 into this.</div>
+
+
+		<h2>Source</h2>
+
+		[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+	</body>
+</html>

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

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

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

@@ -11,21 +11,32 @@
 		<h1>[name]</h1>
 
 		<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>
 
+		<h2>Example</h2>
+
+		<div>[example:webgl_buffergeometry_points_interleaved webgl / buffergeometry / points / interleaved]</div>
+
 		<h2>Constructor</h2>
 		<h3>[name]( [page:TypedArray array], [page:Integer stride] )</h3>
 		<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>
 
 		<h2>Properties</h2>
 
 		<h3>[property:Array array]</h3>
 		<div>
+			 A typed array with a shared buffer. Stores the geometry data.
 		</div>
 
 		<h3>[property:Integer stride]</h3>
 		<div>
+			The number of typed-array elements per vertex.
 		</div>
 
 		<h3>[property:Integer count]</h3>
@@ -45,7 +56,7 @@
 
 		<h3>[property:Number updateRange.offset]</h3>
 		<div>
-		DEfault is *0*.
+		Default is *0*.
 		</div>
 
 		<h3>[property:Number updateRange.count]</h3>
@@ -82,19 +93,23 @@
 
 		<h3>[method:InterleavedBuffer copy]( source ) </h3>
 		<div>
-		 Copy the array, count, stride and value of dynamic to this.
+		 Copies another [name] to this [name].
 		</div>
 
 		<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>
 		<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>
 
-		<h3>[method:InterleavedBuffer clone]( index, x, y ) </h3>
+		<h3>[method:InterleavedBuffer clone]() </h3>
 		<div>
+			Creates a clone of this [name].
 		</div>
 
 		<h2>Source</h2>

+ 31 - 43
docs/api/core/InterleavedBufferAttribute.html

@@ -27,85 +27,73 @@
 			The [page:InterleavedBuffer InterleavedBuffer] instance passed in the constructor.
 		</div>
 
-		<h3>[property:Integer itemSize]</h3>
+		<h3>[property:TypedArray array]</h3>
 		<div>
+			The value of [page:InterleavedBufferAttribute.data data].array.
 		</div>
 
-		<h3>[property:Integer offset]</h3>
+		<h3>[property:Integer count]</h3>
 		<div>
-		</div>
+			The value of [page:InterleavedBufferAttribute.data data].count.
 
-		<h3>[property:Boolean normalized]</h3>
-		<div>
-			Default is *true*.
+			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>
 
-		<h3>[property:Boolean isInterleavedBufferAttribute]</h3>
+		<h3>[property:Integer itemSize]</h3>
 		<div>
-			Default is *true*.
+			How many values make up each item.
 		</div>
 
-		<h2>Methods</h2>
-
-		<h3>[method:Integer count]()</h3>
+		<h3>[property:Integer offset]</h3>
 		<div>
-			The value of [page:InterleavedBufferAttribute.data data].count.
+			The offset in the underlying array buffer where an item starts.
 		</div>
 
-		<h3>[method:Array array]()</h3>
+		<h3>[property:Boolean normalized]</h3>
 		<div>
-			The value of [page:InterleavedBufferAttribute.data data].array.
+			Default is *true*.
 		</div>
 
-		<h3>[method:null getX]( index ) </h3>
+		<h3>[property:Boolean isInterleavedBufferAttribute]</h3>
 		<div>
-
+			Default is *true*.
 		</div>
 
-		<h3>[method:null getY]( index ) </h3>
-		<div>
-
-		</div>
+		<h2>Methods</h2>
 
-		<h3>[method:null getZ]( 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 getW]( 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:Number getW]( index ) </h3>
+		<div>Returns the w component of the item at the given index.</div>
 
 		<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>
-		<div>
-
-		</div>
+		<div>Sets the y component of the item at the given index.</div>
 
 		<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>
-		<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>
-		<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>
-		<div>
-
-		</div>
+		<div>Sets the x, y, z and w components of the item at the given index.</div>
 
 
 

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

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

+ 29 - 5
docs/api/core/Object3D.html

@@ -86,7 +86,13 @@
 		<div>Optional name of the object (doesn't need to be unique). Default is an empty string.</div>
 
 		<h3>[property:Matrix3 normalMatrix]</h3>
-		<div>This is passed to the shader and used to calculate lighting for the object.</div>
+		<div>
+		This is passed to the shader and used to calculate lighting for the object. It is the transpose of the inverse of the upper left 3x3 sub-matrix of this object's modelViewMatrix.<br /><br />
+
+		The reason for this special matrix is that simply using the modelViewMatrix could result in a non-unit length of normals (on scaling) or in a non-perpendicular direction (on non-uniform scaling).<br /><br />
+
+		On the other hand the translation part of the modelViewMatrix is not relevant for the calculation of normals. Thus a Matrix3 is sufficient.
+		</div>
 
 		<h3>[property:function onAfterRender]</h3>
 		<div>
@@ -106,7 +112,7 @@
 		<div>Object's parent in the [link:https://en.wikipedia.org/wiki/Scene_graph scene graph].</div>
 
 		<h3>[property:Vector3 position]</h3>
-		<div>The object's local position.</div>
+		<div>A [page:Vector3] representing the object's local position. Default is (0, 0, 0).</div>
 
 		<h3>[property:Quaternion quaternion]</h3>
 		<div>Object's local rotation as a [page:Quaternion Quaternion].</div>
@@ -190,7 +196,10 @@
 		</div>
 
 		<h3>[method:null applyMatrix]( [page:Matrix4 matrix] )</h3>
-		<div>This updates the position, rotation and scale with the matrix.</div>
+		<div>Applies the matrix transform to the object and updates the object's position, rotation and scale.</div>
+
+		<h3>[method:Object3D applyQuaternion]( [page:Quaternion quaternion] )</h3>
+		<div>Applies the rotation represented by the quaternion to the object.</div>
 
 		<h3>[method:Object3D clone]( [page:Boolean recursive] )</h3>
 		<div>
@@ -278,11 +287,17 @@
 		Converts the vector from local space to world space.
 		</div>
 
-		<h3>[method:null lookAt]( [page:Vector3 vector] )</h3>
+		<h3>[method:null lookAt]( [page:Vector3 vector] )</br>
+		[method:null lookAt]( [page:Float x], [page:Float y], [page:Float z] )</h3>
 		<div>
 		vector - A vector representing a position in world space.<br /><br />
+		Optionally, the [page:.x x], [page:.y y] and [page:.z z] components of the world space position.<br /><br />
+
+		Rotates the object to face a point in world space.<br /><br />
+
+		This method does not support objects with rotated and/or translated parent(s).
+		</div>
 
-		Rotates the object to face a point in world space.
 		</div>
 
 		<h3>[method:Array raycast]( [page:Raycaster raycaster], [page:Array intersects] )</h3>
@@ -305,6 +320,15 @@
 		Rotate an object along an axis in object space. The axis is assumed to be normalized.
 		</div>
 
+		<h3>[method:Object3D rotateOnWorldAxis]( [page:Vector3 axis], [page:Float angle] )</h3>
+		<div>
+		axis -- A normalized vector in world space. <br />
+		angle -- The angle in radians.<br /><br />
+
+		Rotate an object along an axis in world space. The axis is assumed to be normalized.
+		Method Assumes no rotated parent.
+		</div>
+
 		<h3>[method:null rotateX]( [page:Float rad] )</h3>
 		<div>
 		rad - the angle to rotate in radians.<br /><br />

+ 5 - 2
docs/api/deprecated/DeprecatedList.html

@@ -411,7 +411,10 @@
 		</div>
 
 		<h3>[page:MeshFaceMaterial]</h3>
-		<div>MeshFaceMaterial has been removed. Use [page:MultiMaterial] instead.</div>
+		<div>MeshFaceMaterial has been removed. Use an array of materials instead.</div>
+
+		<h3>[page:MultiMaterial]</h3>
+		<div>MultiMaterial has been removed. Use an array of materials instead.</div>
 
 		<h3>[page:MeshPhongMaterial]</h3>
 		<div>MeshPhongMaterial.metal has been removed. Use [page:MeshStandardMaterial] instead.</div>
@@ -455,7 +458,7 @@
 
 
 		<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>
 		<div>ParticleSystem has been renamed to [page:Points].</div>

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

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

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

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

+ 1 - 1
docs/api/extras/SceneUtils.html

@@ -22,7 +22,7 @@
 		materials -- The materials for the object.
 		</div>
 		<div>
-		Creates a new Group that contains a new mesh for each material defined in materials. Beware that this is not the same as MultiMaterial which defines multiple material for 1 mesh.<br />
+		Creates a new Group that contains a new mesh for each material defined in materials. Beware that this is not the same as an array of materials which defines multiple materials for 1 mesh.<br />
 		This is mostly useful for objects that need both a material and a wireframe implementation.
 		</div>
 

+ 6 - 40
docs/api/extras/ShapeUtils.html

@@ -11,10 +11,10 @@
 		<h1>[name]</h1>
 
 		<div class="desc">
-		A class containing utility functions for shapes.<br />
+		A class containing utility functions for shapes.<br /><br />
 
-		Note that these are all linear functions so it is neccessary to calculate seperately for
-		x, y (an z, w if present) components of a vector.
+		Note that these are all linear functions so it is neccessary to calculate separately for
+		x, y (and z, w if present) components of a vector.
 		</div>
 
 
@@ -28,48 +28,15 @@
 
 		</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 seperately 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 seperately 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>
 		<div>
 		pts -- points defining a 2D polygon<br /><br />
 
-		Note that this is a linear function so it is neccessary to calculate seperately for
+		Note that this is a linear function so it is neccessary to calculate separately for
 		x, y  components of a polygon.<br /><br />
 
 		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>
 
 		<h3>[method:null triangulateShape]( contour, holes )</h3>
@@ -77,8 +44,7 @@
 		contour -- 2D polygon.<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>
 
 		<h2>Source</h2>

+ 44 - 22
docs/api/extras/core/Curve.html

@@ -11,14 +11,10 @@
 		<h1>[name]</h1>
 
 		<div class="desc">
-		An abstract base class for creating a curve object that contains methods for interpolation.
-		For an array of Curves see [page:CurvePath].
+		An abstract base class for creating a [name] object that contains methods for interpolation.
+		For an array of [name]s see [page:CurvePath].
 		</div>
 
-		<h2>Examples</h2>
-
-		<h3>[example:webgl_geometry_extrude_splines geometry / extrude / splines ]</h3>
-
 		<h2>Constructor</h2>
 
 
@@ -27,26 +23,40 @@
 		This constructor creates a new [name].
 		</div>
 
+		<h2>Properties</h2>
+
+		<h3>[property:Integer arcLengthDivisions]</h3>
+		<div>This value determines the amount of divisions when calculating the cumulative segment lengths of a curve via [page:.getLengths].
+			To ensure precision when using methods like [page:.getSpacedPoints], it is recommended to increase [page:.arcLengthDivisions] if the curve is very large. Default is 200.</div>
 
 		<h2>Methods</h2>
 
-		<h3>[method:Vector getPoint]( [page:Number t] )</h3>
-		<div>Returns a vector for point t of the curve where t is between 0 and 1. Must be implemented in the extending class.</div>
+		<h3>[method:Vector getPoint]( [page:Float t], [page:Vector optionalTarget] )</h3>
+		<div>
+			[page:Float t] - A position on the curve. Must be in the range [ 0, 1 ]. <br>
+			[page:Vector optionalTarget] — (optional) If specified, the result will be copied into this Vector,
+			otherwise a new Vector will be created. <br /><br />
+
+			Returns a vector for a given position on the curve.
+		</div>
 
-		<h3>[method:Vector getPointAt]( [page:Number u] )</h3>
+		<h3>[method:Vector getPointAt]( [page:Float u], [page:Vector optionalTarget] )</h3>
 		<div>
-			Returns a vector for point at a relative position in curve according to arc length.
-			u is in the range [0, 1].
+			[page:Float u] - A position on the curve according to the arc length. Must be in the range [ 0, 1 ]. <br>
+			[page:Vector optionalTarget] — (optional) If specified, the result will be copied into this Vector,
+			otherwise a new Vector will be created. <br /><br />
+
+			Returns a vector for a given position on the curve according to the arc length.
 		</div>
 
-		<h3>[method:Array getPoints]( [page:integer divisions] )</h3>
+		<h3>[method:Array getPoints]( [page:Integer divisions] )</h3>
 		<div>
 			divisions -- number of pieces to divide the curve into. Default is *5*.<br /><br />
 
 			Returns a set of divisions + 1 points using getPoint( t ).
 		</div>
 
-		<h3>[method:Array getSpacedPoints]( divisions )</h3>
+		<h3>[method:Array getSpacedPoints]( [page:Integer divisions] )</h3>
 		<div>
 			divisions -- number of pieces to divide the curve into. Default is *5*.<br /><br />
 
@@ -56,37 +66,49 @@
 		<h3>[method:Float getLength]()</h3>
 		<div>Get total curve arc length.</div>
 
-		<h3>[method:Array getLengths]( divisions )</h3>
+		<h3>[method:Array getLengths]( [page:Integer divisions] )</h3>
 		<div>Get list of cumulative segment lengths.</div>
 
 		<h3>[method:null updateArcLengths]()</h3>
 		<div>Update the cumlative segment distance cache.</div>
 
-		<h3>[method:Float getUtoTmapping]( [page:Number u], distance )</h3>
+		<h3>[method:Float getUtoTmapping]( [page:Float u], [page:Float distance] )</h3>
 		<div>
-			Given u in the range ( 0 .. 1 ), returns [page:Number t] also in the range ( 0 .. 1 ).
+			Given u in the range ( 0 .. 1 ), returns [page:Float t] also in the range ( 0 .. 1 ).
 			u and t can then be used to give you points which are equidistant from the ends of the curve,
 			using [page:.getPoint].
 		 </div>
 
-		<h3>[method:Vector getTangent]( [page:Number t] )</h3>
+		<h3>[method:Vector getTangent]( [page:Float t] )</h3>
 		<div>
-			Returns a unit vector tangent at t. If the subclassed curve do not implement its
-			tangent derivation, 2 points a small delta apart will be used to find its gradient
-			which seems to give a reasonable approximation
+			Returns a unit vector tangent at t. If the derived curve does not implement its
+			tangent derivation, two points a small delta apart will be used to find its gradient
+			which seems to give a reasonable approximation.
 		</div>
 
-		<h3>[method:Vector getTangentAt]( [page:Number u] )</h3>
+		<h3>[method:Vector getTangentAt]( [page:Float u] )</h3>
 		<div>
 			Returns tangent at a point which is equidistant to the ends of the curve from the
 			point given in [page:.getTangent].
 		</div>
 
-		<h3>[method:Object computeFrenetFrames]( segments, closed )</h3>
+		<h3>[method:Object computeFrenetFrames]( [page:Integer segments], [page:Boolean closed] )</h3>
 		<div>
 		Generates the Frenet Frames. Used in geometries like [page:TubeGeometry] or [page:ExtrudeGeometry].
 		</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>
 
 		[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]

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

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

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

@@ -16,6 +16,13 @@
 		This is used internally by the [page:FontLoader].
 		</div>
 
+		<h2>Examples</h2>
+
+		<div>
+		[example:webgl_geometry_text_shapes geometry / text / shapes ]<br/>
+		[example:webgl_shaders_vector vector / text ]<br/>
+		</div>
+
 		<h2>Constructor</h2>
 
 		<h3>[name]( data )</h3>
@@ -43,7 +50,7 @@
 		<div>
 			[page:String text] -- string of text.<br />
 			[page:Float size] -- (optional) scale for the [page:Shape Shapes]. Default is *100*.<br />
-			[page:Integer divisions] -- (optional) fineness of the [page:Shape Shapes]. Default is *5*.<br />
+			[page:Integer divisions] -- (optional) fineness of the [page:Shape Shapes]. Default is *4*.<br />
 
 			Creates an array of [page:Shape Shapes] representing the text in the font.
 		</div>

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

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

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

@@ -20,9 +20,9 @@
 		<h2>Example</h2>
 
 		<code>
-var v1 = new THREE.Vector3();
-var v2 = new THREE.Vector3(1, 45, 6);
-var v3 = new THREE.Vector3(34, 34, 676);
+var v1 = new THREE.Vector2();
+var v2 = new THREE.Vector2(1, 45);
+var v3 = new THREE.Vector2(34, 34);
 
 var vectors = [v1, v2, v3];
 
@@ -94,14 +94,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>
 		<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>
 		<div>
 			x, y -- The center of the ellipse offset from the last call.<br />
@@ -126,6 +118,14 @@ var path = new THREE.Path(vectors);
 		<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>
 
+		<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>
 		<div>
 			points - An array of [page:Vector2 Vector2s]<br /><br />

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

@@ -41,26 +41,39 @@
 		[example:webgl_geometry_shapes geometry / shapes ]<br/>
 		[example:webgl_geometry_extrude_shapes geometry / extrude / shapes ]<br/>
 		[example:webgl_geometry_extrude_shapes2 geometry / extrude / shapes2 ]<br/>
-		[example:webgl_particles_shapes particles / shapes ]
 		</div>
 
 
 		<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>
 		<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>
 		<div>An array of [page:Path paths] that define the holes in the shape.</div>
 
 		<h2>Methods</h2>
 		<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>
 		divisions -- The fineness of the result.<br /><br />
 
@@ -74,10 +87,6 @@
 		where shape and holes are arrays of [page:Vector2 Vector2s].
 		</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>
 		<div>
 		divisions -- The fineness of the result.<br /><br />

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

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

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

@@ -27,8 +27,8 @@ var curve = new THREE.CatmullRomCurve3( [
 	new THREE.Vector3( 10, 0, 10 )
 ] );
 
-var geometry = new THREE.Geometry();
-geometry.vertices = curve.getPoints( 50 );
+var points = curve.getPoints( 50 );
+var geometry = new THREE.BufferGeometry().setFromPoints( points );
 
 var material = new THREE.LineBasicMaterial( { color : 0xff0000 } );
 
@@ -41,26 +41,36 @@ var curveObject = new THREE.Line( geometry, material );
 
 		<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>
 		<div>See the base [page:Curve] class for common properties.</div>
 
+		<h3>[property:Boolean isCatmullRomCurve3]</h3>
+		<div>
+			Used to check whether this or derived classes are CatmullRomCurve3s. Default is *true*.<br /><br />
+
+			You should not change this, as it used internally for optimisation.
+		</div>
+
 		<h3>[property:Array points]</h3>
-		<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>
-		<div>The curve will loop back onto itself when this is true. False by default</div>
+		<div>The curve will loop back onto itself when this is true.</div>
 
-		<h3>[property:String type]</h3>
-		<div>Possible values are `centripetal` (default), `chordal` and `catmullrom`.</div>
+		<h3>[property:String curveType]</h3>
+		<div>Possible values are *centripetal*, *chordal* and *catmullrom*.</div>
 
 		<h3>[property:float tension]</h3>
-		<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>

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

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

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

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

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

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

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

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

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

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

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

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

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

@@ -1,65 +1,72 @@
-<!DOCTYPE html>
-<html lang="en">
-	<head>
+<!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:Curve] &rarr;
-
-		<h1>[name]</h1>
-
-		<div class="desc">
-		Create a smooth 2d spline curve from a series of points. Internally this uses
-		[page:CurveUtils.interpolate] 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 path = new THREE.Path( curve.getPoints( 50 ) );
-
-var geometry = path.createPointsGeometry( 50 );
-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: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>

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

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

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

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

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

@@ -1,7 +1,7 @@
 <!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>
@@ -44,9 +44,9 @@
 
 		<h3>[name]([page:Float width], [page:Float height], [page:Float depth], [page:Integer widthSegments], [page:Integer heightSegments], [page:Integer depthSegments])</h3>
 		<div>
-		width — Width of the sides on the X axis.<br />
-		height — Height of the sides on the Y axis.<br />
-		depth — Depth of the sides on the Z axis.<br />
+		width — Width of the sides on the X axis. Default is 1.<br />
+		height — Height of the sides on the Y axis. Default is 1.<br />
+		depth — Depth of the sides on the Z axis. Default is 1.<br />
 		widthSegments — Optional. Number of segmented faces along the width of the sides. Default is 1.<br />
 		heightSegments — Optional. Number of segmented faces along the height of the sides. Default is 1.<br />
 		depthSegments — Optional. Number of segmented faces along the depth of the sides. Default is 1.

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

@@ -1,7 +1,7 @@
 <!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>
@@ -46,7 +46,7 @@
 
 		<h3>[name]([page:Float radius], [page:Integer segments], [page:Float thetaStart], [page:Float thetaLength])</h3>
 		<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 />
 		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.

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

@@ -42,11 +42,11 @@
 
 		<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>
 		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 />
+		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 />
 		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 />

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

@@ -46,7 +46,7 @@
 		<div>
 		radius — Radius of the cone at the 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 />
+		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 />
 		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 />

+ 66 - 66
docs/api/geometries/CylinderBufferGeometry.html

@@ -1,67 +1,67 @@
-<!DOCTYPE html>
-<html lang="en">
-	<head>
+<!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:BufferGeometry] &rarr;
-
-		<h1>[name]</h1>
-
-		<div class="desc">This is the [page:BufferGeometry] port of [page:CylinderGeometry].</div>
-
-		<iframe id="scene" src="scenes/geometry-browser.html#CylinderBufferGeometry"></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>var geometry = new THREE.CylinderBufferGeometry( 5, 5, 20, 32 );
-		var material = new THREE.MeshBasicMaterial( {color: 0xffff00} );
-		var cylinder = new THREE.Mesh( geometry, material );
-		scene.add( cylinder );
-		</code>
-
-		<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>
-		<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 />
-		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 />
-		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 cylinder.
-		</div>
-
-		<h2>Properties</h2>
-
-		<div>
-		Each of the constructor parameters is accessible as a property of the same name. Any modification of these properties after instantiation does not change the geometry.
-		</div>
-
-		<h2>Source</h2>
-
-		[link:https://github.com/mrdoob/three.js/blob/master/src/geometries/CylinderGeometry.js src/geometries/CylinderGeometry.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">This is the [page:BufferGeometry] port of [page:CylinderGeometry].</div>
+
+		<iframe id="scene" src="scenes/geometry-browser.html#CylinderBufferGeometry"></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>var geometry = new THREE.CylinderBufferGeometry( 5, 5, 20, 32 );
+		var material = new THREE.MeshBasicMaterial( {color: 0xffff00} );
+		var cylinder = new THREE.Mesh( geometry, material );
+		scene.add( cylinder );
+		</code>
+
+		<h2>Constructor</h2>
+
+		<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>
+		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 />
+		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 />
+		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 />
+		thetaLength — The central angle, often called theta, of the circular sector. The default is 2*Pi, which makes for a complete cylinder.
+		</div>
+
+		<h2>Properties</h2>
+
+		<div>
+		Each of the constructor parameters is accessible as a property of the same name. Any modification of these properties after instantiation does not change the geometry.
+		</div>
+
+		<h2>Source</h2>
+
+		[link:https://github.com/mrdoob/three.js/blob/master/src/geometries/CylinderGeometry.js src/geometries/CylinderGeometry.js]
+	</body>
+</html>

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

@@ -1,7 +1,7 @@
 <!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>
@@ -42,12 +42,12 @@
 
 		<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>
-		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 />
 		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 />

+ 145 - 0
docs/api/geometries/ExtrudeBufferGeometry.html

@@ -0,0 +1,145 @@
+<!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:BufferGeometry] &rarr;
+
+		<h1>[name]</h1>
+
+		<div class="desc">Creates extruded BufferGeometry from a path shape.</div>
+
+		<iframe id="scene" src="scenes/geometry-browser.html#ExtrudeBufferGeometry"></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>
+		var length = 12, width = 8;
+
+		var shape = new THREE.Shape();
+		shape.moveTo( 0,0 );
+		shape.lineTo( 0, width );
+		shape.lineTo( length, width );
+		shape.lineTo( length, 0 );
+		shape.lineTo( 0, 0 );
+
+		var extrudeSettings = {
+			steps: 2,
+			amount: 16,
+			bevelEnabled: true,
+			bevelThickness: 1,
+			bevelSize: 1,
+			bevelSegments: 1
+		};
+
+		var geometry = new THREE.ExtrudeBufferGeometry( shape, extrudeSettings );
+		var material = new THREE.MeshBasicMaterial( { color: 0x00ff00 } );
+		var mesh = new THREE.Mesh( geometry, material ) ;
+		scene.add( mesh );
+		</code>
+
+
+		<h2>Constructor</h2>
+
+
+		<h3>[name]([page:Array shapes], [page:Object options])</h3>
+		<div>
+		shapes — Shape or an array of shapes. <br />
+		options — Object that can contain the following parameters.
+
+			<ul>
+				<li>curveSegments — int. Number of points on the curves. Default is 12.</li>
+				<li>steps — int. Number of points used for subdividing segments along the depth of the extruded spline. Default is 1.</li>
+				<li>amount — int. Depth to extrude the shape. Default is 100.</li>
+				<li>bevelEnabled — bool. Apply beveling to the shape. Default is true.</li>
+				<li>bevelThickness — float. How deep into the original shape the bevel goes. Default is 6.</li>
+				<li>bevelSize — float. Distance from the shape outline that the bevel extends. Default is bevelThickness - 2.</li>
+				<li>bevelSegments — int. Number of bevel layers. Default is 3.</li>
+				<li>extrudePath — THREE.CurvePath. A 3D spline path along which the shape should be extruded (creates Frames if frames aren't defined).</li>
+				<li>frames — An object containing arrays of tangents, normals, binormals for each step along the extrudePath. </li>
+				<li>UVGenerator —  Object. object that provides UV generator functions</li>
+			</ul>
+
+		</div>
+		<div>
+			This object extrudes a 2D shape to a 3D geometry.
+		</div>
+
+		<div>
+			When creating a Mesh with this geometry, if you'd like to have a separate material used for its face
+			and its extruded sides, you can use an array of materials. The first material will be
+			applied to the face; the second material will be applied to the sides.
+		</div>
+
+
+		<h2>Properties</h2>
+
+
+		<h2>Methods</h2>
+
+		<h3>[method:null addShapeList]([page:Array shapes], [page:Object options])</h3>
+		<div>
+			shapes — An Array of shapes to add. <br />
+			options — Object that can contain the following parameters.
+			<ul>
+				<li>curveSegments — int. Number of points on the curves. Default is 12.</li>
+				<li>steps — int. Number of points used for subdividing segments along the depth of the extruded spline. Default is 1.</li>
+				<li>amount — int. Depth to extrude the shape. Default is 100.</li>
+				<li>bevelEnabled — bool. Apply beveling to the shape. Default is true.</li>
+				<li>bevelThickness — float. How deep into the original shape the bevel goes. Default is 6.</li>
+				<li>bevelSize — float. Distance from the shape outline that the bevel extends. Default is bevelThickness - 2.</li>
+				<li>bevelSegments — int. Number of bevel layers. Default is 3.</li>
+				<li>extrudePath — THREE.CurvePath. A 3D spline path along which the shape should be extruded (creates Frames if frames aren't defined).</li>
+				<li>frames — An object containing arrays of tangents, normals, binormals for each step along the extrudePath. </li>
+				<li>UVGenerator —  Object. object that provides UV generator functions</li>
+			</ul>
+		</div>
+		<div>Adds the shapes to the list to extrude.</div>
+
+		<h3>[method:null addShape]([page:Shape shape], [page:Object options])</h3>
+		<div>
+			shape — A shape to add. <br />
+			options — Object that can contain the following parameters.
+			<ul>
+				<li>curveSegments — int. Number of points on the curves. Default is 12.</li>
+				<li>steps — int. Number of points used for subdividing segments along the depth of the extruded spline. Default is 1.</li>
+				<li>amount — int. Depth to extrude the shape. Default is 100.</li>
+				<li>bevelEnabled — bool. Apply beveling to the shape. Default is true.</li>
+				<li>bevelThickness — float. How deep into the original shape the bevel goes. Default is 6.</li>
+				<li>bevelSize — float. Distance from the shape outline that the bevel extends. Default is bevelThickness - 2.</li>
+				<li>bevelSegments — int. Number of bevel layers. Default is 3.</li>
+				<li>extrudePath — THREE.CurvePath. A 3D spline path along which the shape should be extruded (creates Frames if frames aren't defined).</li>
+				<li>frames — An object containing arrays of tangents, normals, binormals for each step along the extrudePath. </li>
+				<li>UVGenerator —  Object. object that provides UV generator functions</li>
+			</ul>
+		</div>
+		<div>Add the shape to the list to extrude.</div>
+
+
+		<h2>Source</h2>
+
+		[link:https://github.com/mrdoob/three.js/blob/master/src/ExtrudeGeometry.js src/ExtrudeGeometry.js]
+	</body>
+</html>

+ 5 - 5
docs/api/geometries/ExtrudeGeometry.html

@@ -78,7 +78,7 @@
 				<li>bevelSize — float. Distance from the shape outline that the bevel extends. Default is bevelThickness - 2.</li>
 				<li>bevelSegments — int. Number of bevel layers. Default is 3.</li>
 				<li>extrudePath — THREE.CurvePath. A 3D spline path along which the shape should be extruded (creates Frames if frames aren't defined).</li>
-				<li>frames — An instance of THREE.TubeGeometry.FrenetFrames containing arrays of tangents, normals, binormals for each step along the extrudePath. </li>
+				<li>frames — An object containing arrays of tangents, normals, binormals for each step along the extrudePath. </li>
 				<li>UVGenerator —  Object. object that provides UV generator functions</li>
 			</ul>
 
@@ -88,8 +88,8 @@
 		</div>
 
 		<div>
-			When creating a Mesh with this geometry, if you'd like to have a separate material used for its face 
-			and its extruded sides, you can use an instance of THREE.MultiMaterial. The first material will be 
+			When creating a Mesh with this geometry, if you'd like to have a separate material used for its face
+			and its extruded sides, you can use an array of materials. The first material will be
 			applied to the face; the second material will be applied to the sides.
 		</div>
 
@@ -112,7 +112,7 @@
 				<li>bevelSize — float. Distance from the shape outline that the bevel extends. Default is bevelThickness - 2.</li>
 				<li>bevelSegments — int. Number of bevel layers. Default is 3.</li>
 				<li>extrudePath — THREE.CurvePath. A 3D spline path along which the shape should be extruded (creates Frames if frames aren't defined).</li>
-				<li>frames — An instance of THREE.TubeGeometry.FrenetFrames containing arrays of tangents, normals, binormals for each step along the extrudePath. </li>
+				<li>frames — An object containing arrays of tangents, normals, binormals for each step along the extrudePath. </li>
 				<li>UVGenerator —  Object. object that provides UV generator functions</li>
 			</ul>
 		</div>
@@ -131,7 +131,7 @@
 				<li>bevelSize — float. Distance from the shape outline that the bevel extends. Default is bevelThickness - 2.</li>
 				<li>bevelSegments — int. Number of bevel layers. Default is 3.</li>
 				<li>extrudePath — THREE.CurvePath. A 3D spline path along which the shape should be extruded (creates Frames if frames aren't defined).</li>
-				<li>frames — An instance of THREE.TubeGeometry.FrenetFrames containing arrays of tangents, normals, binormals for each step along the extrudePath. </li>
+				<li>frames — An object containing arrays of tangents, normals, binormals for each step along the extrudePath. </li>
 				<li>UVGenerator —  Object. object that provides UV generator functions</li>
 			</ul>
 		</div>

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

@@ -1,7 +1,7 @@
 <!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>
@@ -44,8 +44,8 @@
 
 		<h3>[name]([page:Float width], [page:Float height], [page:Integer widthSegments], [page:Integer heightSegments])</h3>
 		<div>
-		width — Width along the X axis.<br />
-		height — Height along the Y axis.<br />
+		width — Width along the X axis. Default is 1.<br />
+		height — Height along the Y axis. Default is 1.<br />
 		widthSegments — Optional. Default is 1. <br />
 		heightSegments — Optional. Default is 1.
 		</div>

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

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

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

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

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

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

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

@@ -44,7 +44,7 @@
 
 		<h3>[name]([page:Float innerRadius], [page:Float outerRadius], [page:Integer thetaSegments], [page:Integer phiSegments], [page:Float thetaStart], [page:Float thetaLength])</h3>
 		<div>
-		innerRadius — Default is 0, but it doesn't work right when innerRadius is set to 0.<br />
+		innerRadius — Default is 20. <br />
 		outerRadius — Default is 50. <br />
 		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 />

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

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

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

@@ -1,7 +1,7 @@
 <!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>
@@ -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>
 
 		<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 />
 		heightSegments — number of vertical segments. Minimum value is 2, and the default is 6.<br />
 		phiStart — specify horizontal starting angle. Default is 0.<br />

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

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

+ 26 - 4
docs/api/geometries/TextGeometry.html

@@ -12,7 +12,11 @@
 
 		<h1>[name]</h1>
 
-		<div class="desc">This object creates a 3D object of text as a single object.</div>
+		<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>
 
@@ -32,13 +36,31 @@
 
 		</script>
 
-		<h2>Example</h2>
+		<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>
@@ -46,8 +68,8 @@
 		text — The text that needs to be shown. <br />
 		parameters — Object that can contains the following parameters.
 		<ul>
-			<li>font — THREE.Font.</li>
-			<li>size — Float. Size of the text.</li>
+			<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>

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

@@ -1,7 +1,7 @@
 <!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>
@@ -44,8 +44,8 @@
 
 		<h3>[name]([page:Float radius], [page:Float tube], [page:Integer radialSegments], [page:Integer tubularSegments], [page:Float arc])</h3>
 		<div>
-		radius — Default is 100. <br />
-		tube — Diameter of the tube.  Default is 40. <br />
+		radius — Default is 1. <br />
+		tube — Diameter of the tube.  Default is 0.4. <br />
 		radialSegments — Default is 8 <br />
 		tubularSegments — Default is 6. <br />
 		arc — Central angle.  Default is Math.PI * 2.

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

@@ -1,7 +1,7 @@
 <!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>
@@ -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>
 		<div>
 			<ul>
-				<li>radius — Default is 100.</li>
-				<li>tube — Diameter of the tube. Default is 40.</li>
+				<li>radius — Default is 1.</li>
+				<li>tube — Diameter of the tube. Default is 0.4.</li>
 				<li>tubularSegments — Default is 64.</li>
 				<li>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>

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

@@ -1,103 +1,105 @@
-<!DOCTYPE html>
-<html lang="en">
-	<head>
+<!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: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 ){
-
-			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 - 102
docs/api/geometries/TubeGeometry.html

@@ -1,103 +1,105 @@
-<!DOCTYPE html>
-<html lang="en">
-	<head>
+<!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: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 ){
-
-			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" />
-		<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>

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

@@ -1,7 +1,7 @@
 <!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>
@@ -12,7 +12,7 @@
 
 		<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>
 
 
@@ -26,8 +26,8 @@
 
 
 		<code>
-var axisHelper = new THREE.AxisHelper( 5 );
-scene.add( axisHelper );
+var axesHelper = new THREE.AxesHelper( 5 );
+scene.add( axesHelper );
     </code>
 
 		<h2>Constructor</h2>
@@ -35,7 +35,7 @@ scene.add( axisHelper );
 
 		<h3>[name]( [page:Number size] )</h3>
 		<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>
 
 		<h2>Properties</h2>

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

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

+ 10 - 3
docs/api/helpers/BoxHelper.html

@@ -54,10 +54,17 @@
 		<h2>Methods</h2>
 		<div>See the base [page:LineSegments] class for common methods.</div>
 
-		<h3>[method:null update]( [page:Object3D object] )</h3>
+		<h3>[method:null update]()</h3>
 		<div>
-			Updates the helper's geometry to match the dimensions of the
-		 	of the passed object, including any children. See [page:Box3.setFromObject].
+			Updates the helper's geometry to match the dimensions
+			of the object, including any children. See [page:Box3.setFromObject].
+		</div>
+
+		<h3>[method:BoxHelper setFromObject]( [page:Object3D object] )</h3>
+		<div>
+			[page:Object3D object] - [page:Object3D] to create the helper of.<br /><br />
+
+			Updates the wireframe box for the passed object.
 		</div>
 
 		<h2>Source</h2>

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

@@ -1,7 +1,7 @@
 <!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>
@@ -32,10 +32,13 @@
 		<h2>Constructor</h2>
 
 
-		<h3>[name]( [page:DirectionalLight light], [page:Number size] )</h3>
+		<h3>[name]( [page:DirectionalLight light], [page:Number size], [page:Hex color] )</h3>
 		<div>
-		[page:DirectionalLight light]-- The light to be visualized. <br />
-		[page:Number size] -- (optional) dimensions of the plane. Default is *1*.<br /><br />
+			[page:DirectionalLight light]-- The light to be visualized. <br /><br />
+
+			[page:Number size] -- (optional) dimensions of the plane. Default is *1*.<br /><br />
+			
+			[page:Hex color] -- (optional) if this is not the set the helper will take the color of the light.
 		</div>
 
 
@@ -58,6 +61,11 @@
 			light's [page:Object3D.matrixWorld matrixWorld].
 		</div>
 
+		<h3>[property:hex color]</h3>
+		<div>
+			The color parameter passed in the constructor. Default is *undefined*. If this is changed, 
+			the helper's color will update the next time [page:.update update] is called.
+		</div>
 
 
 		<h2>Methods</h2>

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

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

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

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

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

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

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

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

+ 1 - 14
docs/api/helpers/SkeletonHelper.html

@@ -53,20 +53,7 @@ scene.add( helper );
 		<div>
 		The object passed in the constructor.
 		</div>
-
-		<h2>Methods</h2>
-
-		<h3>[method:Array getBoneList]( object )</h3>
-		<div>
-		getBoneList -- the object used in the constructor.<br /><br />
-
-		This is called automatically to generate a list of bones from the object passed in the constructor.
-		</div>
-
-		<h3>[method:null update]()</h3>
-		<div>
-		Update the helper. Call in the render loop if animating the model.
-		</div>
+		
 
 		<h2>Source</h2>
 

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

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

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

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

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

@@ -43,7 +43,7 @@
 			[example:canvas_morphtargets_horse morphtargets / horse ]<br />
 			[example:misc_controls_fly controls / fly ]<br />
 			[example:misc_lights_test lights / test ]<br />
-			[example:vr_cubes cubes ]<br />
+			[example:webvr_cubes cubes ]<br />
 			[example:webgl_effects_parallaxbarrier effects / parallaxbarrier ]<br />
 			[example:webgl_effects_stereo effects / stereo ]<br />
 			[example:webgl_geometry_extrude_splines geometry / extrude / splines ]<br />
@@ -60,7 +60,7 @@ scene.add( directionalLight );
 
 		<h2>Constructor</h2>
 
-		<h3>[name]( [page:Integer hex], [page:Float intensity] )</h3>
+		<h3>[name]( [page:Integer color], [page:Float intensity] )</h3>
 		<div>
 			[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 />

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

@@ -27,9 +27,7 @@
 			[example:webgl_lights_pointlights lights / pointlights ]<br />
 			[example:webgl_lights_pointlights2 lights / pointlights2 ]<br />
 			[example:webgldeferred_animation animation ]<br />
-			[example:webgldeferred_pointlights pointlights ]<br />
 			[example:webgl_effects_anaglyph effects / anaglyph ]<br />
-			[example:webgl_geometry_large_mesh geometry / large / mesh ]<br />
 			[example:webgl_geometry_text geometry / text ]<br />
 			[example:webgl_lensflares lensflares ]
 		</div>
@@ -84,11 +82,11 @@ scene.add( light );
 		<div>
 			The light's power.<br />
 			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
 			<code>
-				power = intensity * 4&Pi;
+				power = intensity * 4&pi;
 			</code>
 			and changing this will also change the intensity.
 		</div>

+ 3 - 18
docs/api/lights/RectAreaLight.html

@@ -16,8 +16,6 @@
 			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 />
 
-			This light can cast shadows - see the [page:RectAreaLightShadow] page for details.<br /><br />
-
 			<em>NOTE:</em> this class is currently under active development and is probably not
 			production ready yet (as of r83). Check back in a month or two! And feel free to try it out in the meantime.
 		</div>
@@ -28,20 +26,19 @@
 		<h2>Examples</h2>
 
 		<div>
-			[example:webgl_lights_arealight WebGL / arealight ]<br />
 			[example:webgl_lights_rectarealight WebGL / rectarealight ]
 
 			<code>
 var width = 2;
 var height = 10;
 var rectLight = new THREE.RectAreaLight( 0xffffff, undefined,  width, height );
-rectLight.matrixAutoUpdate = true;
 rectLight.intensity = 70.0;
 rectLight.position.set( 5, 5, 0 );
+scene.add( rectLight )
+
 rectLightHelper = new THREE.RectAreaLightHelper( rectLight );
-rectLight.add( rectLightHelper );
+scene.add( rectLightHelper );
 
-scene.add(rectLight)
 			</code>
 		</div>
 
@@ -70,10 +67,6 @@ scene.add(rectLight)
 
 		<h3>[property:Boolean castShadow]</h3>
 		<div>
-			If set to *true* light will cast dynamic shadows. *Warning*: This is expensive and
-			requires tweaking to get shadows looking right. See the [page:RectAreaLightShadow] for details.
-			The default is *false*.<br /><br />
-
 			<em>Note:</em> this is not yet implemented for this light type! (r83)
 		</div>
 
@@ -106,14 +99,6 @@ scene.add(rectLight)
 			This is set equal to [page:Object3D.DefaultUp] (0, 1, 0), so that the light shines from the top down.
 		</div>
 
-		<h3>[property:RectAreaLightShadow shadow]</h3>
-		<div>
-			A [page:RectAreaLightShadow] used to calculate shadows for this light.<br /><br />
-
-			<em>Note:</em> this is not yet implemented for this light type! (r83)
-		</div>
-
-
 		<h3>[property:Object3D target]</h3>
 		<div>
 			The RectAreaLight points from its [page:.position position] to target.position. The default

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