瀏覽代碼

Merge branch 'dev' into dev-fbxloader

Lewy Blue 5 年之前
父節點
當前提交
14d74a54b5
共有 100 個文件被更改,包括 2697 次插入2621 次删除
  1. 3 2
      .github/CONTRIBUTING.md
  2. 3 5
      .github/ISSUE_TEMPLATE.md
  3. 1 1
      .gitignore
  4. 35 4
      .travis.yml
  5. 1 1
      LICENSE
  6. 12 20
      README.md
  7. 697 468
      build/three.js
  8. 0 315
      build/three.min.js
  9. 693 464
      build/three.module.js
  10. 3 1
      docs/api/en/Polyfills.html
  11. 3 1
      docs/api/en/Template.html
  12. 3 1
      docs/api/en/animation/AnimationAction.html
  13. 3 1
      docs/api/en/animation/AnimationClip.html
  14. 10 1
      docs/api/en/animation/AnimationMixer.html
  15. 6 4
      docs/api/en/animation/AnimationObjectGroup.html
  16. 7 1
      docs/api/en/animation/AnimationUtils.html
  17. 4 2
      docs/api/en/animation/KeyframeTrack.html
  18. 3 1
      docs/api/en/animation/PropertyBinding.html
  19. 3 1
      docs/api/en/animation/PropertyMixer.html
  20. 3 1
      docs/api/en/animation/tracks/BooleanKeyframeTrack.html
  21. 3 1
      docs/api/en/animation/tracks/ColorKeyframeTrack.html
  22. 3 1
      docs/api/en/animation/tracks/NumberKeyframeTrack.html
  23. 3 1
      docs/api/en/animation/tracks/QuaternionKeyframeTrack.html
  24. 3 1
      docs/api/en/animation/tracks/StringKeyframeTrack.html
  25. 3 1
      docs/api/en/animation/tracks/VectorKeyframeTrack.html
  26. 32 16
      docs/api/en/audio/Audio.html
  27. 10 8
      docs/api/en/audio/AudioAnalyser.html
  28. 3 1
      docs/api/en/audio/AudioContext.html
  29. 11 9
      docs/api/en/audio/AudioListener.html
  30. 12 10
      docs/api/en/audio/PositionalAudio.html
  31. 4 2
      docs/api/en/cameras/ArrayCamera.html
  32. 3 8
      docs/api/en/cameras/Camera.html
  33. 14 9
      docs/api/en/cameras/CubeCamera.html
  34. 20 22
      docs/api/en/cameras/OrthographicCamera.html
  35. 16 17
      docs/api/en/cameras/PerspectiveCamera.html
  36. 7 13
      docs/api/en/cameras/StereoCamera.html
  37. 4 2
      docs/api/en/constants/Animation.html
  38. 3 2
      docs/api/en/constants/Core.html
  39. 8 6
      docs/api/en/constants/CustomBlendingEquations.html
  40. 0 83
      docs/api/en/constants/DrawModes.html
  41. 4 16
      docs/api/en/constants/Materials.html
  42. 6 2
      docs/api/en/constants/Renderer.html
  43. 327 2
      docs/api/en/constants/Textures.html
  44. 24 28
      docs/api/en/core/BufferAttribute.html
  45. 19 15
      docs/api/en/core/BufferGeometry.html
  46. 3 1
      docs/api/en/core/Clock.html
  47. 3 1
      docs/api/en/core/DirectGeometry.html
  48. 18 16
      docs/api/en/core/EventDispatcher.html
  49. 30 27
      docs/api/en/core/Face3.html
  50. 21 22
      docs/api/en/core/Geometry.html
  51. 4 7
      docs/api/en/core/InstancedBufferAttribute.html
  52. 5 14
      docs/api/en/core/InstancedBufferGeometry.html
  53. 3 6
      docs/api/en/core/InstancedInterleavedBuffer.html
  54. 11 20
      docs/api/en/core/InterleavedBuffer.html
  55. 6 6
      docs/api/en/core/InterleavedBufferAttribute.html
  56. 13 1
      docs/api/en/core/Layers.html
  57. 19 16
      docs/api/en/core/Object3D.html
  58. 26 16
      docs/api/en/core/Raycaster.html
  59. 69 7
      docs/api/en/core/Uniform.html
  60. 13 5
      docs/api/en/core/bufferAttributeTypes/BufferAttributeTypes.html
  61. 0 608
      docs/api/en/deprecated/DeprecatedList.html
  62. 7 4
      docs/api/en/extras/Earcut.html
  63. 32 0
      docs/api/en/extras/ImageUtils.html
  64. 80 0
      docs/api/en/extras/PMREMGenerator.html
  65. 5 4
      docs/api/en/extras/ShapeUtils.html
  66. 13 3
      docs/api/en/extras/core/Curve.html
  67. 23 1
      docs/api/en/extras/core/CurvePath.html
  68. 3 8
      docs/api/en/extras/core/Font.html
  69. 4 2
      docs/api/en/extras/core/Interpolations.html
  70. 23 21
      docs/api/en/extras/core/Path.html
  71. 6 2
      docs/api/en/extras/core/Shape.html
  72. 12 11
      docs/api/en/extras/core/ShapePath.html
  73. 4 9
      docs/api/en/extras/curves/ArcCurve.html
  74. 23 25
      docs/api/en/extras/curves/CatmullRomCurve3.html
  75. 17 22
      docs/api/en/extras/curves/CubicBezierCurve.html
  76. 17 22
      docs/api/en/extras/curves/CubicBezierCurve3.html
  77. 20 27
      docs/api/en/extras/curves/EllipseCurve.html
  78. 3 8
      docs/api/en/extras/curves/LineCurve.html
  79. 3 8
      docs/api/en/extras/curves/LineCurve3.html
  80. 16 22
      docs/api/en/extras/curves/QuadraticBezierCurve.html
  81. 16 21
      docs/api/en/extras/curves/QuadraticBezierCurve3.html
  82. 19 24
      docs/api/en/extras/curves/SplineCurve.html
  83. 3 1
      docs/api/en/extras/objects/ImmediateRenderObject.html
  84. 4 2
      docs/api/en/geometries/BoxBufferGeometry.html
  85. 4 2
      docs/api/en/geometries/BoxGeometry.html
  86. 4 2
      docs/api/en/geometries/CircleBufferGeometry.html
  87. 4 2
      docs/api/en/geometries/CircleGeometry.html
  88. 4 2
      docs/api/en/geometries/ConeBufferGeometry.html
  89. 4 2
      docs/api/en/geometries/ConeGeometry.html
  90. 4 2
      docs/api/en/geometries/CylinderBufferGeometry.html
  91. 4 2
      docs/api/en/geometries/CylinderGeometry.html
  92. 3 1
      docs/api/en/geometries/DodecahedronBufferGeometry.html
  93. 3 1
      docs/api/en/geometries/DodecahedronGeometry.html
  94. 9 4
      docs/api/en/geometries/EdgesGeometry.html
  95. 4 2
      docs/api/en/geometries/ExtrudeBufferGeometry.html
  96. 4 2
      docs/api/en/geometries/ExtrudeGeometry.html
  97. 3 1
      docs/api/en/geometries/IcosahedronBufferGeometry.html
  98. 3 1
      docs/api/en/geometries/IcosahedronGeometry.html
  99. 4 2
      docs/api/en/geometries/LatheBufferGeometry.html
  100. 4 2
      docs/api/en/geometries/LatheGeometry.html

+ 3 - 2
.github/CONTRIBUTING.md

@@ -1,5 +1,5 @@
 
-# Help 
+# Help
 #### The issues section is for bug reports and feature requests only. If you need help, please use the [forum](http://discourse.threejs.org/) or [stackoverflow](http://stackoverflow.com/questions/tagged/three.js).
 ---
 # Bugs
@@ -25,4 +25,5 @@
 2. Fork the repository on GitHub.
 3. Check the [Contribution Guidelines](https://github.com/mrdoob/three.js/wiki/How-to-contribute-to-three.js).
 4. Make changes to your clone of the repository.
-5. Submit a pull request. Don't include build files in the PR.
+5. If your changes leads to a change in examples, make a new screenshot with `npm run make-screenshot <example_name>`.
+6. Submit a pull request. Don't include build files in the PR.

+ 3 - 5
.github/ISSUE_TEMPLATE.md

@@ -11,15 +11,13 @@ Always include a code snippet, screenshots, and any relevant models or textures
 
 Please also include a live example if possible. You can start from these templates:
 
-* [jsfiddle](https://jsfiddle.net/3foLr7sn/) (latest release branch)
-* [jsfiddle](https://jsfiddle.net/qgu17w5o/) (dev branch)
-* [codepen](https://codepen.io/anon/pen/aEBKxR) (latest release branch)
-* [codepen](https://codepen.io/anon/pen/BJWzaN) (dev branch)
+* [jsfiddle](https://jsfiddle.net/hyok6tvj/) (latest release branch)
+* [jsfiddle](https://jsfiddle.net/c5m1kazu/) (dev branch)
 
 ##### Three.js version
 
 - [ ] Dev
-- [ ] r107
+- [ ] r115
 - [ ] ...
 
 ##### Browser

+ 1 - 1
.gitignore

@@ -7,4 +7,4 @@ node_modules
 npm-debug.log
 .jshintrc
 .vs/
-test/unit/three.*.unit.js
+test/unit/three.*.unit.js

+ 35 - 4
.travis.yml

@@ -1,5 +1,36 @@
 language: node_js
-node_js:
-  - node
-script:
-  - npm run travis
+node_js: node
+services: xvfb
+cache: bundler
+
+jobs:
+  include:
+
+    - &lint-n-unit
+      stage: lint & unit
+      name: lint
+      script: npm run test-lint
+    - <<: *lint-n-unit
+      name: unit
+      script: npm run test-unit
+
+    - &e2e
+      stage: e2e
+      name: e2e
+      script: npm run test-e2e
+      env: FORCE_COLOR=0 CI=0
+    - <<: *e2e
+      env: FORCE_COLOR=0 CI=1
+    - <<: *e2e
+      env: FORCE_COLOR=0 CI=2
+    - <<: *e2e
+      env: FORCE_COLOR=0 CI=3
+
+    - &e2e-cov
+      stage: e2e-cov
+      name: e2e-cov
+      script: npm run test-e2e-cov
+
+  allow_failures:
+
+    - stage: e2e-cov

+ 1 - 1
LICENSE

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

+ 12 - 20
README.md

@@ -1,10 +1,9 @@
 three.js
 ========
 
-[![NPM package][npm]][npm-url]
+[![NPM Package][npm]][npm-url]
 [![Build Size][build-size]][build-size-url]
-[![Build Status][build-status]][build-status-url]
-[![Dependencies][dependencies]][dependencies-url]
+[![NPM Downloads][npm-downloads]][npmtrends-url]
 [![Dev Dependencies][dev-dependencies]][dev-dependencies-url]
 [![Language Grade][lgtm]][lgtm-url]
 
@@ -18,21 +17,16 @@ The aim of the project is to create an easy to use, lightweight, 3D library with
 [Migrating](https://github.com/mrdoob/three.js/wiki/Migration-Guide) &mdash;
 [Questions](http://stackoverflow.com/questions/tagged/three.js) &mdash;
 [Forum](https://discourse.threejs.org/) &mdash;
-[Gitter](https://gitter.im/mrdoob/three.js) &mdash;
-[Slack](https://join.slack.com/t/threejs/shared_invite/enQtMzYxMzczODM2OTgxLTQ1YmY4YTQxOTFjNDAzYmQ4NjU2YzRhNzliY2RiNDEyYjU2MjhhODgyYWQ5Y2MyZTU3MWNkOGVmOGRhOTQzYTk)
+[Slack](https://join.slack.com/t/threejs/shared_invite/enQtMzYxMzczODM2OTgxLTQ1YmY4YTQxOTFjNDAzYmQ4NjU2YzRhNzliY2RiNDEyYjU2MjhhODgyYWQ5Y2MyZTU3MWNkOGVmOGRhOTQzYTk) &mdash;
+[Discord](https://discordapp.com/invite/HF4UdyF)
 
 ### Usage ###
 
-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.
 
 ```javascript
+import * as THREE from 'js/three.module.js';
+
 var camera, scene, renderer;
 var geometry, material, mesh;
 
@@ -70,22 +64,20 @@ function animate() {
 }
 ```
 
-If everything went well you should see [this](https://jsfiddle.net/f2Lommf5/).
+If everything went well you should see [this](https://jsfiddle.net/8kubjpL5/).
 
 ### Change log ###
 
 [Releases](https://github.com/mrdoob/three.js/releases)
 
 
-[npm]: https://img.shields.io/npm/v/three.svg
+[npm]: https://img.shields.io/npm/v/three
 [npm-url]: https://www.npmjs.com/package/three
 [build-size]: https://badgen.net/bundlephobia/minzip/three
 [build-size-url]: https://bundlephobia.com/result?p=three
-[build-status]: https://travis-ci.org/mrdoob/three.js.svg?branch=dev
-[build-status-url]: https://travis-ci.org/mrdoob/three.js
-[dependencies]: https://img.shields.io/david/mrdoob/three.js.svg
-[dependencies-url]: https://david-dm.org/mrdoob/three.js
-[dev-dependencies]: https://img.shields.io/david/dev/mrdoob/three.js.svg
+[npm-downloads]: https://img.shields.io/npm/dw/three
+[npmtrends-url]: https://www.npmtrends.com/three
+[dev-dependencies]: https://img.shields.io/david/dev/mrdoob/three.js
 [dev-dependencies-url]: https://david-dm.org/mrdoob/three.js#info=devDependencies
-[lgtm]: https://img.shields.io/lgtm/grade/javascript/g/mrdoob/three.js.svg?label=code%20quality
+[lgtm]: https://img.shields.io/lgtm/alerts/github/mrdoob/three.js
 [lgtm-url]: https://lgtm.com/projects/g/mrdoob/three.js/

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


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


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


+ 3 - 1
docs/api/en/Polyfills.html

@@ -41,6 +41,8 @@
 
 		<h2>Source</h2>
 
-		[link:https://github.com/mrdoob/three.js/blob/master/src/polyfills.js src/polyfills.js]
+		<p>
+			[link:https://github.com/mrdoob/three.js/blob/master/src/polyfills.js src/polyfills.js]
+		</p>
 	</body>
 </html>

+ 3 - 1
docs/api/en/Template.html

@@ -43,6 +43,8 @@
 
 		<h2>Source</h2>
 
-		[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+		<p>
+			[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+		</p>
 	</body>
 </html>

+ 3 - 1
docs/api/en/animation/AnimationAction.html

@@ -357,6 +357,8 @@
 
 		<h2>Source</h2>
 
-		[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+		<p>
+			[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+		</p>
 	</body>
 </html>

+ 3 - 1
docs/api/en/animation/AnimationClip.html

@@ -138,6 +138,8 @@
 		<h2>Source</h2>
 
 
-		[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+		<p>
+			[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+		</p>
 	</body>
 </html>

+ 10 - 1
docs/api/en/animation/AnimationMixer.html

@@ -85,6 +85,13 @@
 			This is usually done in the render loop, passing [page:Clock.getDelta clock.getDelta] scaled by the mixer's [page:.timeScale timeScale]).
 		</p>
 
+		<h3>[method:AnimationMixer setTime]([param:Number timeInSeconds]) </h3>
+		<p>
+			Sets the global mixer to a specific time and updates the animation accordingly.<br /><br />
+
+			This is useful when you need to jump to an exact time in an animation. The input parameter will be scaled by the mixer's [page:.timeScale timeScale].
+		</p>
+
 		<h3>[method:null uncacheClip]([param:AnimationClip clip])</h3>
 
 		<p>
@@ -105,6 +112,8 @@
 		<h2>Source</h2>
 
 
-		[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+		<p>
+			[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+		</p>
 	</body>
 </html>

+ 6 - 4
docs/api/en/animation/AnimationObjectGroup.html

@@ -37,10 +37,10 @@
 
 		<h2>Constructor</h2>
 
-
 		<h3>[name]( [param:object obj1], [param:object obj2], [param:object obj3], ... )</h3>
-		[page:object obj] - an abitrary number of meshes that share the same animation state.<br />
-
+		<p>
+			[page:object obj] - an abitrary number of meshes that share the same animation state.
+		</p>
 
 		<h2>Properties</h2>
 
@@ -80,6 +80,8 @@
 		<h2>Source</h2>
 
 
-		[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+		<p>
+			[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+		</p>
 	</body>
 </html>

+ 7 - 1
docs/api/en/animation/AnimationUtils.html

@@ -48,10 +48,16 @@
 		Sorts the array previously returned by [page:AnimationUtils.getKeyframeOrder getKeyframeOrder].
 		</p>
 
+		<h3>[method:AnimationClip subclip]( [param:AnimationClip clip], [param:String name], [param:Number startFrame], [param:Number endFrame], [param:Number fps] )</h3>
+		<p>
+		Creates a new clip, containing only the segment of the original clip between the given frames.
+		</p>
 
 		<h2>Source</h2>
 
 
-		[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+		<p>
+			[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+		</p>
 	</body>
 </html>

+ 4 - 2
docs/api/en/animation/KeyframeTrack.html

@@ -58,7 +58,7 @@
 
 		<p>
 			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/animation/AnimationClipCreator.js AnimationClipCreator]
+			of KeyframeTracks can be found in the [link:https://threejs.org/examples/jsm/animation/AnimationClipCreator.js AnimationClipCreator]
 			file.
 		</p>
 
@@ -264,6 +264,8 @@
 		<h2>Source</h2>
 
 
-		[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+		<p>
+			[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+		</p>
 	</body>
 </html>

+ 3 - 1
docs/api/en/animation/PropertyBinding.html

@@ -126,6 +126,8 @@
 		<h2>Source</h2>
 
 
-		[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+		<p>
+			[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+		</p>
 	</body>
 </html>

+ 3 - 1
docs/api/en/animation/PropertyMixer.html

@@ -93,6 +93,8 @@
 		<h2>Source</h2>
 
 
-		[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+		<p>
+			[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+		</p>
 	</body>
 </html>

+ 3 - 1
docs/api/en/animation/tracks/BooleanKeyframeTrack.html

@@ -73,6 +73,8 @@
 		<h2>Source</h2>
 
 
-		[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+		<p>
+			[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+		</p>
 	</body>
 </html>

+ 3 - 1
docs/api/en/animation/tracks/ColorKeyframeTrack.html

@@ -57,6 +57,8 @@
 		<h2>Source</h2>
 
 
-		[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+		<p>
+			[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+		</p>
 	</body>
 </html>

+ 3 - 1
docs/api/en/animation/tracks/NumberKeyframeTrack.html

@@ -57,6 +57,8 @@
 		<h2>Source</h2>
 
 
-		[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+		<p>
+			[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+		</p>
 	</body>
 </html>

+ 3 - 1
docs/api/en/animation/tracks/QuaternionKeyframeTrack.html

@@ -68,6 +68,8 @@
 		<h2>Source</h2>
 
 
-		[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+		<p>
+			[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+		</p>
 	</body>
 </html>

+ 3 - 1
docs/api/en/animation/tracks/StringKeyframeTrack.html

@@ -76,6 +76,8 @@
 		<h2>Source</h2>
 
 
-		[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+		<p>
+			[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+		</p>
 	</body>
 </html>

+ 3 - 1
docs/api/en/animation/tracks/VectorKeyframeTrack.html

@@ -56,6 +56,8 @@
 		<h2>Source</h2>
 
 
-		[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+		<p>
+			[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+		</p>
 	</body>
 </html>

+ 32 - 16
docs/api/en/audio/Audio.html

@@ -18,13 +18,7 @@
 			This uses the [link:https://developer.mozilla.org/en-US/docs/Web/API/Web_Audio_API Web Audio API].
 		</p>
 
-
-		<h2>Example</h2>
-
-		<p>
-			[example:webaudio_sandbox webaudio / sandbox ]<br />
-			[example:webaudio_visualizer webaudio / visualizer ]
-		</p>
+		<h2>Code Example</h2>
 
 		<code>
 		// create an AudioListener and add it to the camera
@@ -44,6 +38,12 @@
 		});
 		</code>
 
+		<h2>Examples</h2>
+
+		<p>
+			[example:webaudio_sandbox webaudio / sandbox ]<br />
+			[example:webaudio_visualizer webaudio / visualizer ]
+		</p>
 
 		<h2>Constructor</h2>
 
@@ -85,11 +85,11 @@
 		<h3>[property:Number playbackRate]</h3>
 		<p>Speed of playback. Default is *1*.</p>
 
-		<h3>[property:Number startTime]</h3>
-		<p>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*.</p>
-
 		<h3>[property:Number offset]</h3>
-		<p>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*.</p>
+		<p>An offset to the time within the audio buffer that playback should begin. Same as the *offset* parameter of [link:https://developer.mozilla.org/en-US/docs/Web/API/AudioBufferSourceNode/start AudioBufferSourceNode.start](). Default is *0*.</p>
+
+		<h3>[property:Number duration]</h3>
+		<p>Overrides the duration of the audio. Same as the *duration* parameter of [link:https://developer.mozilla.org/en-US/docs/Web/API/AudioBufferSourceNode/start AudioBufferSourceNode.start](). Default is *undefined* to play the whole buffer.</p>
 
 		<h3>[property:String source]</h3>
 		<p>An [link:https://developer.mozilla.org/en-US/docs/Web/API/AudioBufferSourceNode AudioBufferSourceNode] created
@@ -147,7 +147,7 @@
 		Return the current volume.
 		</p>
 
-		<h3>[method:Audio play]()</h3>
+		<h3>[method:Audio play]( delay )</h3>
 		<p>
 		If [page:Audio.hasPlaybackControl hasPlaybackControl] is true, starts playback.
 		</p>
@@ -159,7 +159,7 @@
 
 		<h3>[method:null onEnded]()</h3>
 		<p>
-		Called automatically when playback finished. Sets If [page:Audio.isPlaying isPlaying] to false.
+		Called automatically when playback finished.
 		</p>
 
 		<h3>[method:Audio setBuffer]( audioBuffer )</h3>
@@ -185,11 +185,26 @@
 		(whether playback should loop).
 		</p>
 
+		<h3>[method:Audio setLoopStart]( [param:Float value] )</h3>
+		<p>
+		Set [link:https://developer.mozilla.org/en-US/docs/Web/API/AudioBufferSourceNode/loopStart source.loopStart] to *value*.
+		</p>
+
+		<h3>[method:Audio setLoopEnd]( [param:Float value] )</h3>
+		<p>
+		Set [link:https://developer.mozilla.org/en-US/docs/Web/API/AudioBufferSourceNode/loopEnd source.loopEnd] to *value*.
+		</p>
+
 		<h3>[method:Audio setMediaElementSource]( mediaElement )</h3>
 		<p>
 		Applies the given object of type [link:https://developer.mozilla.org/en-US/docs/Web/API/HTMLMediaElement HTMLMediaElement] as the source of this audio.<br />
 		Also sets [page:Audio.hasPlaybackControl hasPlaybackControl] to false.
+		</p>
 
+		<h3>[method:Audio setMediaStreamSource]( mediaStream )</h3>
+		<p>
+		Applies the given object of type [link:https://developer.mozilla.org/en-US/docs/Web/API/MediaStream MediaStream] as the source of this audio.<br />
+		Also sets [page:Audio.hasPlaybackControl hasPlaybackControl] to false.
 		</p>
 
 		<h3>[method:Audio setNodeSource]( audioNode )</h3>
@@ -211,12 +226,13 @@
 
 		<h3>[method:Audio stop]()</h3>
 		<p>
-		If [page:Audio.hasPlaybackControl hasPlaybackControl] is enabled, stops playback,
-		resets [page:Audio.startTime startTime] to *0* and sets [page:Audio.isPlaying isPlaying] to false.
+		If [page:Audio.hasPlaybackControl hasPlaybackControl] is enabled, stops playback.
 		</p>
 
 		<h2>Source</h2>
 
-		[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+		<p>
+			[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+		</p>
 	</body>
 </html>

+ 10 - 8
docs/api/en/audio/AudioAnalyser.html

@@ -18,13 +18,7 @@
 
 		</p>
 
-
-		<h2>Example</h2>
-
-		<p>
-			[example:webaudio_sandbox webaudio / sandbox ]<br />
-			[example:webaudio_visualizer webaudio / visualizer ]
-		</p>
+		<h2>Code Example</h2>
 
 		<code>
 		// create an AudioListener and add it to the camera
@@ -50,6 +44,12 @@
 		var data = analyser.getAverageFrequency();
 		</code>
 
+		<h2>Examples</h2>
+
+		<p>
+			[example:webaudio_sandbox webaudio / sandbox ]<br />
+			[example:webaudio_visualizer webaudio / visualizer ]
+		</p>
 
 		<h2>Constructor</h2>
 
@@ -94,6 +94,8 @@
 
 		<h2>Source</h2>
 
-		[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+		<p>
+			[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+		</p>
 	</body>
 </html>

+ 3 - 1
docs/api/en/audio/AudioContext.html

@@ -37,6 +37,8 @@
 
 		<h2>Source</h2>
 
-		[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+		<p>
+			[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+		</p>
 	</body>
 </html>

+ 11 - 9
docs/api/en/audio/AudioListener.html

@@ -18,14 +18,7 @@
 			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.
 		</p>
 
-
-		<h2>Example</h2>
-
-		<p>
-			[example:webaudio_sandbox webaudio / sandbox ]<br />
-			[example:webaudio_timing webaudio / timing ]<br />
-			[example:webaudio_visualizer webaudio / visualizer ]
-		</p>
+		<h2>Code Example</h2>
 
 		<code>
 		// create an AudioListener and add it to the camera
@@ -45,6 +38,13 @@
 		});
 		</code>
 
+		<h2>Examples</h2>
+
+		<p>
+			[example:webaudio_sandbox webaudio / sandbox ]<br />
+			[example:webaudio_timing webaudio / timing ]<br />
+			[example:webaudio_visualizer webaudio / visualizer ]
+		</p>
 
 		<h2>Constructor</h2>
 
@@ -106,6 +106,8 @@
 
 		<h2>Source</h2>
 
-		[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+		<p>
+			[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+		</p>
 	</body>
 </html>

+ 12 - 10
docs/api/en/audio/PositionalAudio.html

@@ -18,14 +18,7 @@
 			This uses the [link:https://developer.mozilla.org/en-US/docs/Web/API/Web_Audio_API Web Audio API].
 		</p>
 
-
-		<h2>Example</h2>
-
-		<p>
-			[example:webaudio_orientation webaudio / orientation ]<br />
-			[example:webaudio_sandbox webaudio / sandbox ]<br />
-			[example:webaudio_timing webaudio / timing ]
-		</p>
+		<h2>Code Example</h2>
 
 		<code>
 		// create an AudioListener and add it to the camera
@@ -44,7 +37,7 @@
 		});
 
 		// create an object for the sound to play from
-		var sphere = new THREE.SphereGeometry( 20, 32, 16 );
+		var sphere = new THREE.SphereBufferGeometry( 20, 32, 16 );
 		var material = new THREE.MeshPhongMaterial( { color: 0xff2200 } );
 		var mesh = new THREE.Mesh( sphere, material );
 		scene.add( mesh );
@@ -53,6 +46,13 @@
 		mesh.add( sound );
 		</code>
 
+		<h2>Examples</h2>
+
+		<p>
+			[example:webaudio_orientation webaudio / orientation ]<br />
+			[example:webaudio_sandbox webaudio / sandbox ]<br />
+			[example:webaudio_timing webaudio / timing ]
+		</p>
 
 		<h2>Constructor</h2>
 
@@ -130,6 +130,8 @@
 
 		<h2>Source</h2>
 
-		[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+		<p>
+			[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+		</p>
 	</body>
 </html>

+ 4 - 2
docs/api/en/cameras/ArrayCamera.html

@@ -17,7 +17,7 @@
 			An instance of [name] always has an array of sub cameras. It's mandatory to define for each sub camera the *viewport* property which determines the part of the viewport that is rendered with this camera.
 		</p>
 
-		<h2>Example</h2>
+		<h2>Examples</h2>
 
 		<p>[example:webgl_camera_array camera / array ]</p>
 
@@ -42,6 +42,8 @@
 
 		<h2>Source</h2>
 
-		[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+		<p>
+			[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+		</p>
 	</body>
 </html>

+ 3 - 8
docs/api/en/cameras/Camera.html

@@ -30,13 +30,6 @@
 		<h2>Properties</h2>
 		<p>See the base [page:Object3D] class for common properties.</p>
 
-		<h3>[property:Boolean isCamera]</h3>
-		<p>
-			Used to check whether this or derived classes are cameras. Default is *true*.<br /><br />
-
-			You should not change this, as it used internally by the renderer for optimisation.
-		</p>
-
 		<h3>[property:Layers layers]</h3>
 		<p>
 		The [page:Layers layers] that the camera is a member of. This is an inherited
@@ -82,6 +75,8 @@
 
 		<h2>Source</h2>
 
-		[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+		<p>
+			[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+		</p>
 	</body>
 </html>

+ 14 - 9
docs/api/en/cameras/CubeCamera.html

@@ -12,12 +12,9 @@
 
 		<h1>[name]</h1>
 
-		<p class="desc">Creates 6 cameras that render to a [page:WebGLRenderTargetCube].</p>
+		<p class="desc">Creates 6 cameras that render to a [page:WebGLCubeRenderTarget].</p>
 
-		<h2>Examples</h2>
-
-		<p>[example:webgl_materials_cubemap_dynamic materials / cubemap / dynamic ]</p>
-		<p>[example:webgl_shading_physical shading / physical ]</p>
+		<h2>Code Example</h2>
 
 		<code>// Create cube camera
 		var cubeCamera = new THREE.CubeCamera( 1, 100000, 128 );
@@ -38,6 +35,12 @@
 		renderer.render( scene, camera );
 		</code>
 
+		<h2>Examples</h2>
+
+		<p>
+			[example:webgl_materials_cubemap_dynamic materials / cubemap / dynamic ]<br />
+			[example:webgl_shading_physical shading / physical ]
+		</p>
 
 		<h2>Constructor</h2>
 
@@ -47,7 +50,7 @@
 		near -- The near clipping distance. <br />
 		far -- The far clipping distance <br />
 		cubeResolution -- Sets the length of the cube's edges. <br />
-		options - (optional) object that holds texture parameters passed to the auto-generated WebGLRenderTargetCube.
+		options - (optional) object that holds texture parameters passed to the auto-generated WebGLCubeRenderTarget.
 		If not specified, the options default to:
 		<code>
 		{ format: RGBFormat, magFilter: LinearFilter, minFilter: LinearFilter }
@@ -56,14 +59,14 @@
 		</p>
 		<p>
 		Constructs a CubeCamera that contains 6 [page:PerspectiveCamera PerspectiveCameras] that
-		render to a [page:WebGLRenderTargetCube].
+		render to a [page:WebGLCubeRenderTarget].
 		</p>
 
 
 		<h2>Properties</h2>
 		<p>See the base [page:Object3D] class for common properties.</p>
 
-		<h3>[property:WebGLRenderTargetCube renderTarget]</h3>
+		<h3>[property:WebGLCubeRenderTarget renderTarget]</h3>
 		<p>
 		The cube texture that gets generated.
 		</p>
@@ -89,6 +92,8 @@
 
 		<h2>Source</h2>
 
-		[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+		<p>
+			[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+		</p>
 	</body>
 </html>

+ 20 - 22
docs/api/en/cameras/OrthographicCamera.html

@@ -21,23 +21,26 @@
 			This can be useful for rendering 2D scenes and UI elements, amongst other things.
 		</p>
 
+		<h2>Code Example</h2>
 
-		<h2>Example</h2>
+		<code>
+		var camera = new THREE.OrthographicCamera( width / - 2, width / 2, height / 2, height / - 2, 1, 1000 );
+		scene.add( camera );
+		</code>
 
-		<p>[example:webgl_camera camera ]</p>
-		<p>[example:webgl_interactive_cubes_ortho interactive / cubes / ortho ]</p>
-		<p>[example:webgl_materials_cubemap_dynamic materials / cubemap / dynamic ]</p>
-		<p>[example:webgl_postprocessing_advanced postprocessing / advanced ]</p>
-		<p>[example:webgl_postprocessing_dof2 postprocessing / dof2 ]</p>
-		<p>[example:webgl_postprocessing_godrays postprocessing / godrays ]</p>
-		<p>[example:webgl_rtt rtt ]</p>
-		<p>[example:webgl_shaders_tonemapping shaders / tonemapping ]</p>
-		<p>[example:webgl_shadowmap shadowmap ]</p>
-		<p>[example:webgl_terrain_dynamic terrain / dynamic ]</p>
-
-		<code>var camera = new THREE.OrthographicCamera( width / - 2, width / 2, height / 2, height / - 2, 1, 1000 );
-scene.add( camera );</code>
+		<h2>Examples</h2>
 
+		<p>
+			[example:webgl_camera camera ]<br />
+			[example:webgl_interactive_cubes_ortho interactive / cubes / ortho ]<br />
+			[example:webgl_materials_cubemap_dynamic materials / cubemap / dynamic ]<br />
+			[example:webgl_postprocessing_advanced postprocessing / advanced ]<br />
+			[example:webgl_postprocessing_dof2 postprocessing / dof2 ]<br />
+			[example:webgl_postprocessing_godrays postprocessing / godrays ]<br />
+			[example:webgl_rtt rtt ]<br />
+			[example:webgl_shaders_tonemapping shaders / tonemapping ]<br />
+			[example:webgl_shadowmap shadowmap ]
+		</p>
 
 		<h2>Constructor</h2>
 
@@ -72,13 +75,6 @@ scene.add( camera );</code>
 		The valid range is between the current value of the [page:.near near] plane and infinity.
 		</p>
 
-		<h3>[property:Boolean isOrthographicCamera]</h3>
-		<p>
-			Used to test whether this or derived classes are OrthographicCameras. Default is *true*.<br /><br />
-
-			This should not be changed as it is used internally by the renderer for optimisation.
-		</p>
-
 		<h3>[property:Float left]</h3>
 		<p>Camera frustum left plane.</p>
 
@@ -138,6 +134,8 @@ scene.add( camera );</code>
 
 		<h2>Source</h2>
 
-		[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+		<p>
+			[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+		</p>
 	</body>
 </html>

+ 16 - 17
docs/api/en/cameras/PerspectiveCamera.html

@@ -19,18 +19,22 @@
 			common projection mode used for rendering a 3D scene.
 		</p>
 
+		<h2>Code Example</h2>
 
-		<h2>Example</h2>
+		<code>
+		var camera = new THREE.PerspectiveCamera( 45, width / height, 1, 1000 );
+		scene.add( camera );
+		</code>
 
-		<p>[example:webgl_animation_skinning_blending animation / skinning / blending ]</p>
-		<p>[example:webgl_animation_skinning_morph animation / skinning / blending ]</p>
-		<p>[example:webgl_effects_stereo effects / stereo ]</p>
-		<p>[example:webgl_interactive_cubes interactive / cubes ]</p>
-		<p>[example:webgl_loader_collada_skinning loader / collada / skinning ]</p>
-
-		<code>var camera = new THREE.PerspectiveCamera( 45, width / height, 1, 1000 );
-scene.add( camera );</code>
+		<h2>Examples</h2>
 
+		<p>
+			[example:webgl_animation_skinning_blending animation / skinning / blending ]<br />
+			[example:webgl_animation_skinning_morph animation / skinning / blending ]<br />
+			[example:webgl_effects_stereo effects / stereo ]<br />
+			[example:webgl_interactive_cubes interactive / cubes ]<br />
+			[example:webgl_loader_collada_skinning loader / collada / skinning ]
+		</p>
 
 		<h2>Constructor</h2>
 
@@ -77,13 +81,6 @@ scene.add( camera );</code>
 		<h3>[property:Float fov]</h3>
 		<p>Camera frustum vertical field of view, from bottom to top of view, in degrees. Default is *50*.</p>
 
-		<h3>[property:Boolean isPerspectiveCamera]</h3>
-		<p>
-			Used to test whether this or derived classes are PerspectiveCameras. Default is *true*.<br /><br />
-
-			This should not be changed as it is used internally by the renderer for optimisation.
-		</p>
-
 
 		<h3>[property:Float near]</h3>
 		<p>
@@ -198,6 +195,8 @@ camera.setViewOffset( fullWidth, fullHeight, w * 2, h * 1, w, h );
 
 		<h2>Source</h2>
 
-		[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+		<p>
+			[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+		</p>
 	</body>
 </html>

+ 7 - 13
docs/api/en/cameras/StereoCamera.html

@@ -16,22 +16,14 @@
 		[link:https://en.wikipedia.org/wiki/Anaglyph_3D 3D Anaglyph] or [link:https://en.wikipedia.org/wiki/parallax_barrier Parallax Barrier].
 		</p>
 
-
-		<h2>Example</h2>
-
-		<p>[example:webgl_effects_anaglyph effects / anaglyph ]</p>
-		<p>[example:webgl_effects_parallaxbarrier effects / parallaxbarrier ]</p>
-		<p>[example:webgl_effects_stereo effects / stereo ]</p>
+		<h2>Examples</h2>
 
 		<p>
-		This class is used internally in the files<br /><br />
-		[link:https://github.com/mrdoob/three.js/blob/master/examples/js/effects/AnaglyphEffect.js examples/js/effects/AnaglyphEffect.js]<br /><br />
-		[link:https://github.com/mrdoob/three.js/blob/master/examples/js/effects/ParallaxBarrierEffect.js examples/js/effects/ParallaxBarrierEffect.js]<br /><br />
-		[link:https://github.com/mrdoob/three.js/blob/master/examples/js/effects/StereoEffect.js examples/js/effects/StereoEffect.js]<br /><br />
-		used in the above examples.
+			[example:webgl_effects_anaglyph effects / anaglyph ]<br />
+			[example:webgl_effects_parallaxbarrier effects / parallaxbarrier ]<br />
+			[example:webgl_effects_stereo effects / stereo ]
 		</p>
 
-
 		<h2>Constructor</h2>
 
 		<h3>[name]( )</h3>
@@ -62,6 +54,8 @@
 
 		<h2>Source</h2>
 
-		[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+		<p>
+			[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+		</p>
 	</body>
 </html>

+ 4 - 2
docs/api/en/constants/Animation.html

@@ -11,7 +11,7 @@
 		<h1>Animation Constants</h1>
 
 		<h2>Loop Modes</h2>
-    
+
 		<code>
 THREE.LoopOnce
 THREE.LoopRepeat
@@ -34,6 +34,8 @@ THREE.WrapAroundEnding
 
 		<h2>Source</h2>
 
-		[link:https://github.com/mrdoob/three.js/blob/master/src/constants.js src/constants.js]
+		<p>
+			[link:https://github.com/mrdoob/three.js/blob/master/src/constants.js src/constants.js]
+		</p>
 	</body>
 </html>

+ 3 - 2
docs/api/en/constants/Core.html

@@ -29,8 +29,9 @@
 
 		<h2>Source</h2>
 
-		[link:https://github.com/mrdoob/three.js/blob/master/src/constants.js src/constants.js]
-
+		<p>
+			[link:https://github.com/mrdoob/three.js/blob/master/src/constants.js src/constants.js]
+		</p>
 	</body>
 
 

+ 8 - 6
docs/api/en/constants/CustomBlendingEquations.html

@@ -10,15 +10,12 @@
 	<body>
 		<h1>Custom Blending Equation Constants</h1>
 
-
-		<h2>Example</h2>
-		<p>[example:webgl_materials_blending_custom materials / blending / custom ]</p>
-
-		<h2>Usage</h2>
 		<p>
 			These work with all material types. First set the material's blending mode to THREE.CustomBlending, then set the desired Blending Equation, Source Factor and Destination Factor.
 		</p>
 
+		<h2>Code Example</h2>
+
 		<code>
 		var material = new THREE.MeshBasicMaterial( {color: 0x00ff00} );
 		material.blending = THREE.CustomBlending;
@@ -27,6 +24,9 @@
 		material.blendDst = THREE.OneMinusSrcAlphaFactor; //default
 		</code>
 
+		<h2>Examples</h2>
+		<p>[example:webgl_materials_blending_custom materials / blending / custom ]</p>
+
 		<h2>Blending Equations</h2>
 		<code>
 		THREE.AddEquation
@@ -58,6 +58,8 @@
 
 		<h2>Source</h2>
 
-		[link:https://github.com/mrdoob/three.js/blob/master/src/constants.js src/constants.js]
+		<p>
+			[link:https://github.com/mrdoob/three.js/blob/master/src/constants.js src/constants.js]
+		</p>
 	</body>
 </html>

+ 0 - 83
docs/api/en/constants/DrawModes.html

@@ -1,83 +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>Draw Mode Constants</h1>
-
-		<p class="desc">
-			These are valid values for [page:Mesh.drawMode], and control how the list of vertices is interpeted once sent to the GPU.<br /><br />
-
-			Note that these only work when [page:Mesh.geometry] is a [page:BufferGeometry]. Changing this
-			when [page:Mesh.geometry] is a [page:Geometry] will have no effect.<br /><br />
-
-
-
-		</p>
-
-		<h2>Draw Modes</h2>
-
-		<code>
-			THREE.TrianglesDrawMode
-		</code>
-		<p>
-			This is the default, and results in every three consecutive vertices (v0, v1, v2), (v2, v3, v5), ...
-			being interpreted as a separate triangle. <br />
-			If the number of vertices is not a multiple of 3, excess vertices are ignored.
-		</p>
-
-		<code>
-			THREE.TriangleStripDrawMode
-		</code>
-		<p>
-			This will result in a series of triangles connected in a strip, given by (v0, v1, v2), (v2, v1, v3), (v2, v3, v4), ...
-			so that every subsequent triangle shares two vertices with the previous triangle.
-		</p>
-
-		<code>
-			THREE.TriangleFanDrawMode
-		</code>
-		<p>
-			This will result in a series of triangles each sharing the first vertex (like a fan),
-			given by (v0, v1, v2), (v0, v2, v3), (v0, v3, v4), ... <br /><br />
-
-			<em>Note:</em> As of [link:https://en.wikipedia.org/wiki/DirectX#DirectX_10 DirectX10], this mode is not supported. As Chrome and Firefox
-			render WebGL using [link:https://en.wikipedia.org/wiki/ANGLE_(software) ANGLE] on Windows,
-			internally this mode will be converted to a supported mode, which will likely lead to lowered
-			performance on those browsers.
-		</p>
-
-
-		<h2>Usage</h2>
-
-		<code>
-		var geometry = new THREE.Geometry();
-
-		geometry.vertices.push(
-			new THREE.Vector3( -10,  10, 0 ),
-			new THREE.Vector3( -10, -10, 0 ),
-			new THREE.Vector3(  10, -10, 0 ),
-			...
-		);
-		geometry.faces.push( new THREE.Face3( 0, 1, 2 ), ... );
-
-		var material = new THREE.MeshBasicMaterial( { color: 0xffff00 } );
-
-		var mesh = new THREE.Mesh( geometry, material );
-		mesh.drawMode = THREE.TrianglesDrawMode; //default
-
-		scene.add( mesh );
-		</code>
-
-
-
-		<h2>Source</h2>
-
-		[link:https://github.com/mrdoob/three.js/blob/master/src/constants.js src/constants.js]
-	</body>
-</html>

+ 4 - 16
docs/api/en/constants/Materials.html

@@ -27,20 +27,6 @@
 		Default is [page:Constant FrontSide].
 		</p>
 
-
-		<h2>Colors</h2>
-		<code>
-		THREE.NoColors
-		THREE.FaceColors
-		THREE.VertexColors
-		</code>
-		<p>
-		[page:Constant NoColors] is the default and applies the material's color to all faces.<br />
-		[page:Constant FaceColors] colors faces according to each [page:Face3 Face3] [page:Color Color] value.<br />
-		[page:Constant VertexColors] colors faces according to each [page:Face3 Face3] vertexColors value. This is an array of three [page:Color Color]s, one for each vertex in the face.<br />
-		See the [example:webgl_geometry_colors geometry / colors] example.
-		</p>
-
 		<h2>Blending Mode</h2>
 		<code>
 		THREE.NoBlending
@@ -92,7 +78,7 @@
 		[page:Constant MixOperation] uses reflectivity to blend between the two colors.<br />
 		[page:Constant AddOperation] adds the two colors.
 		</p>
-		
+
 		<h2>Stencil Functions</h2>
 		<code>
 		THREE.NeverStencilFunc
@@ -141,6 +127,8 @@
 
 		<h2>Source</h2>
 
-		[link:https://github.com/mrdoob/three.js/blob/master/src/constants.js src/constants.js]
+		<p>
+			[link:https://github.com/mrdoob/three.js/blob/master/src/constants.js src/constants.js]
+		</p>
 	</body>
 </html>

+ 6 - 2
docs/api/en/constants/Renderer.html

@@ -39,13 +39,15 @@
 		THREE.BasicShadowMap
 		THREE.PCFShadowMap
 		THREE.PCFSoftShadowMap
+		THREE.VSMShadowMap
 		</code>
 		<p>
 		These define the WebGLRenderer's [page:WebGLRenderer.shadowMap.type shadowMap.type] property.<br /><br />
 
 		[page:constant BasicShadowMap] gives unfiltered shadow maps - fastest, but lowest quality.<br />
 		[page:constant PCFShadowMap] filters shadow maps using the Percentage-Closer Filtering (PCF) algorithm (default).<br />
-		[page:constant PCFSoftShadowMap] filters shadow maps using the Percentage-Closer Soft Shadows (PCSS) algorithm.
+		[page:constant PCFSoftShadowMap] filters shadow maps using the Percentage-Closer Filtering (PCF) algorithm with better soft shadows especially when using low-resolution shadow maps.<br />
+		[page:constant VSMShadowMap] filters shadow maps using the Variance Shadow Map (VSM) algorithm. When using VSMShadowMap all shadow receivers will also cast shadows.
 		</p>
 
 		<h2>Tone Mapping</h2>
@@ -72,6 +74,8 @@
 
 		<h2>Source</h2>
 
-		[link:https://github.com/mrdoob/three.js/blob/master/src/constants.js src/constants.js]
+		<p>
+			[link:https://github.com/mrdoob/three.js/blob/master/src/constants.js src/constants.js]
+		</p>
 	</body>
 </html>

+ 327 - 2
docs/api/en/constants/Textures.html

@@ -147,8 +147,14 @@
 		<h2>Formats</h2>
 		<code>
 		THREE.AlphaFormat
+		THREE.RedFormat
+		THREE.RedIntegerFormat
+		THREE.RGFormat
+		THREE.RGIntegerFormat
 		THREE.RGBFormat
+		THREE.RGBIntegerFormat
 		THREE.RGBAFormat
+		THREE.RGBAIntegerFormat
 		THREE.LuminanceFormat
 		THREE.LuminanceAlphaFormat
 		THREE.RGBEFormat
@@ -161,10 +167,35 @@
 
 		[page:constant AlphaFormat] discards the red, green and blue components and reads just the alpha component.<br /><br />
 
+		[page:constant RedFormat] discards the green and blue components and reads just the red component.<br /><br />
+
+		[page:constant RedIntegerFormat] discards the green and blue components and reads just the red component.
+		The texels are read as integers instead of floating point.
+		(can only be used with a WebGL 2 rendering context).
+		<br /><br />
+
+		[page:constant RGFormat] discards the alpha, and blue components and reads the red, and green components.
+		(can only be used with a WebGL 2 rendering context).
+		<br /><br />
+
+		[page:constant RGIntegerFormat] discards the alpha, and blue components and reads the red, and green components.
+		The texels are read as integers instead of floating point.
+		(can only be used with a WebGL 2 rendering context).
+		<br /><br />
+
 		[page:constant RGBFormat] discards the alpha components and reads the red, green and blue components.<br /><br />
 
+		[page:constant RGBIntegerFormat] discards the alpha components and reads the red, green and blue components.
+		(can only be used with a WebGL 2 rendering context).
+		<br /><br />
+
 		[page:constant RGBAFormat] is the default and reads the red, green, blue and alpha components.<br /><br />
 
+		[page:constant RGBAIntegerFormat] is the default and reads the red, green, blue and alpha components.
+		The texels are read as integers instead of floating point.
+		(can only be used with a WebGL 2 rendering context).
+		<br /><br />
+
 		[page:constant LuminanceFormat] reads each element as a single luminance component.
 		 This is then converted to a floating point, clamped to the range [0,1], and then assembled
 		 into an RGBA element by placing the luminance value in the red, green and blue channels,
@@ -231,11 +262,303 @@
 		<h2>ETC Compressed Texture Format</h2>
 		<code>
 		THREE.RGB_ETC1_Format
+		THREE.RGB_ETC2_Format
+		THREE.RGBA_ETC2_EAC_Format
 		</code>
 		<p>
 		For use with a [page:CompressedTexture CompressedTexture]'s [page:Texture.format format]	property,
 		these require support for the [link:https://www.khronos.org/registry/webgl/extensions/WEBGL_compressed_texture_etc1/ WEBGL_compressed_texture_etc1]
-		extension. <br /><br />
+		(ETC1) or [link:https://www.khronos.org/registry/webgl/extensions/WEBGL_compressed_texture_etc/ WEBGL_compressed_texture_etc]
+		(ETC2) extensions. <br /><br />
+		</p>
+
+		<h2>ASTC Compressed Texture Format</h2>
+		<code>
+		THREE.RGBA_ASTC_4x4_Format
+		THREE.RGBA_ASTC_5x4_Format
+		THREE.RGBA_ASTC_5x5_Format
+		THREE.RGBA_ASTC_6x5_Format
+		THREE.RGBA_ASTC_6x6_Format
+		THREE.RGBA_ASTC_8x5_Format
+		THREE.RGBA_ASTC_8x6_Format
+		THREE.RGBA_ASTC_8x8_Format
+		THREE.RGBA_ASTC_10x5_Format
+		THREE.RGBA_ASTC_10x6_Format
+		THREE.RGBA_ASTC_10x8_Format
+		THREE.RGBA_ASTC_10x10_Format
+		THREE.RGBA_ASTC_12x10_Format
+		THREE.RGBA_ASTC_12x12_Format
+		THREE.SRGB8_ALPHA8_ASTC_4x4_Format
+		THREE.SRGB8_ALPHA8_ASTC_5x4_Format
+		THREE.SRGB8_ALPHA8_ASTC_5x5_Format
+		THREE.SRGB8_ALPHA8_ASTC_6x5_Format
+		THREE.SRGB8_ALPHA8_ASTC_6x6_Format
+		THREE.SRGB8_ALPHA8_ASTC_8x5_Format
+		THREE.SRGB8_ALPHA8_ASTC_8x6_Format
+		THREE.SRGB8_ALPHA8_ASTC_8x8_Format
+		THREE.SRGB8_ALPHA8_ASTC_10x5_Format
+		THREE.SRGB8_ALPHA8_ASTC_10x6_Format
+		THREE.SRGB8_ALPHA8_ASTC_10x8_Format
+		THREE.SRGB8_ALPHA8_ASTC_10x10_Format
+		THREE.SRGB8_ALPHA8_ASTC_12x10_Format
+		THREE.SRGB8_ALPHA8_ASTC_12x12_Format
+		</code>
+		<p>
+		For use with a [page:CompressedTexture CompressedTexture]'s [page:Texture.format format]	property,
+		these require support for the [link:https://www.khronos.org/registry/webgl/extensions/WEBGL_compressed_texture_astc/ WEBGL_compressed_texture_astc] extension. <br /><br />
+		</p>
+
+		<h2>Internal Formats</h2>
+		<code>
+		'ALPHA'
+		'RGB'
+		'RGBA'
+		'LUMINANCE'
+		'LUMINANCE_ALPHA'
+		'RED_INTEGER'
+		'R8'
+		'R8_SNORM'
+		'R8I'
+		'R8UI'
+		'R16I'
+		'R16UI'
+		'R16F'
+		'R32I'
+		'R32UI'
+		'R32F'
+		'RG8'
+		'RG8_SNORM'
+		'RG8I'
+		'RG8UI'
+		'RG16I'
+		'RG16UI'
+		'RG16F'
+		'RG32I'
+		'RG32UI'
+		'RG32F'
+		'RGB565'
+		'RGB8'
+		'RGB8_SNORM'
+		'RGB8I'
+		'RGB8UI'
+		'RGB16I'
+		'RGB16UI'
+		'RGB16F'
+		'RGB32I'
+		'RGB32UI'
+		'RGB32F'
+		'RGB9_E5'
+		'SRGB8'
+		'R11F_G11F_B10F'
+		'RGBA4'
+		'RGBA8'
+		'RGBA8_SNORM'
+		'RGBA8I'
+		'RGBA8UI'
+		'RGBA16I'
+		'RGBA16UI'
+		'RGBA16F'
+		'RGBA32I'
+		'RGBA32UI'
+		'RGBA32F'
+		'RGB5_A1'
+		'RGB10_A2'
+		'RGB10_A2UI'
+		'SRGB8_ALPHA8'
+		'DEPTH_COMPONENT16'
+		'DEPTH_COMPONENT24'
+		'DEPTH_COMPONENT32F'
+		'DEPTH24_STENCIL8'
+		'DEPTH32F_STENCIL8'
+		</code>
+
+		<p>
+
+		Heads up: changing the internal format of a texture will only affect the
+		texture when using a WebGL 2 rendering context.<br /><br />
+
+		For use with a texture's [page:Texture.internalFormat internalFormat]	property,
+		these define how elements of a texture, or *texels*, are stored on the GPU.<br /><br />
+
+		[page:constant R8] stores the red component on 8 bits.<br /><br />
+
+		[page:constant R8_SNORM] stores the red component on 8 bits. The component is stored as normalized. <br /><br />
+
+		[page:constant R8I] stores the red component on 8 bits. The component is stored as an integer. <br /><br />
+
+		[page:constant R8UI] stores the red component on 8 bits. The component is stored as an unsigned integer. <br /><br />
+
+		[page:constant R16I] stores the red component on 16 bits. The component is stored as an integer. <br /><br />
+
+		[page:constant R16UI] stores the red component on 16 bits. The component is stored as an unsigned integer. <br /><br />
+
+		[page:constant R16F] stores the red component on 16 bits. The component is stored as floating point. <br /><br />
+
+		[page:constant R32I] stores the red component on 32 bits. The component is stored as an integer. <br /><br />
+
+		[page:constant R32UI] stores the red component on 32 bits. The component is stored as an unsigned integer. <br /><br />
+
+		[page:constant R32F] stores the red component on 32 bits. The component is stored as floating point. <br /><br />
+
+		[page:constant RG8] stores the red and green components on 8 bits each.<br /><br />
+
+		[page:constant RG8_SNORM] stores the red and green components on 8 bits each.
+		Every component is stored as normalized.
+		<br /><br />
+
+		[page:constant RG8I] stores the red and green components on 8 bits each.
+		Every component is stored as an integer.
+		<br /><br />
+
+		[page:constant RG8UI] stores the red and green components on 8 bits each.
+		Every component is stored as an unsigned integer.
+		<br /><br />
+
+		[page:constant RG16I] stores the red and green components on 16 bits each.
+		Every component is stored as an integer.
+		<br /><br />
+
+		[page:constant RG16UI] stores the red and green components on 16 bits each.
+		Every component is stored as an unsigned integer.
+		<br /><br />
+
+		[page:constant RG16F] stores the red and green components on 16 bits each.
+		Every component is stored as floating point.
+		<br /><br />
+
+		[page:constant RG32I] stores the red and green components on 32 bits each.
+		Every component is stored as an integer.
+		<br /><br />
+
+		[page:constant RG32UI] stores the red and green components on 32 bits.
+		Every component is stored as an unsigned integer.
+		<br /><br />
+
+		[page:constant RG32F] stores the red and green components on 32 bits.
+		Every component is stored as floating point.
+		<br /><br />
+
+		[page:constant RGB8] stores the red, green, and blue components on 8 bits each.
+
+		[page:constant RGB8_SNORM] stores the red, green, and blue components on 8 bits each.
+		Every component is stored as normalized.
+		<br /><br />
+
+		[page:constant RGB8I] stores the red, green, and blue components on 8 bits each.
+		Every component is stored as an integer.
+		<br /><br />
+
+		[page:constant RGB8UI] stores the red, green, and blue components on 8 bits each.
+		Every component is stored as an unsigned integer.
+		<br /><br />
+
+		[page:constant RGB16I] stores the red, green, and blue components on 16 bits each.
+		Every component is stored as an integer.
+		<br /><br />
+
+		[page:constant RGB16UI] stores the red, green, and blue components on 16 bits each.
+		Every component is stored as an unsigned integer.
+		<br /><br />
+
+		[page:constant RGB16F] stores the red, green, and blue components on 16 bits each.
+		Every component is stored as floating point
+		<br /><br />
+
+		[page:constant RGB32I] stores the red, green, and blue components on 32 bits each.
+		Every component is stored as an integer.
+		<br /><br />
+
+		[page:constant RGB32UI] stores the red, green, and blue components on 32 bits each.
+		Every component is stored as an unsigned integer.
+		<br /><br />
+
+		[page:constant RGB32F] stores the red, green, and blue components on 32 bits each.
+		Every component is stored as floating point
+		<br /><br />
+
+		[page:constant R11F_G11F_B10F] stores the red, green, and blue components respectively on 11 bits, 11 bits, and 10bits.
+		Every component is stored as floating point.
+		<br /><br />
+
+		[page:constant RGB565] stores the red, green, and blue components respectively on 5 bits, 6 bits, and 5 bits.<br /><br />
+
+		[page:constant RGB9_E5] stores the red, green, and blue components on 9 bits each.<br /><br />
+
+		[page:constant RGBA8] stores the red, green, blue, and alpha components on 8 bits each.<br /><br />
+
+		[page:constant RGBA8_SNORM] stores the red, green, blue, and alpha components on 8 bits.
+		Every component is stored as normalized.
+		<br /><br />
+
+		[page:constant RGBA8I] stores the red, green, blue, and alpha components on 8 bits each.
+		Every component is stored as an integer.
+		<br /><br />
+
+		[page:constant RGBA8UI] stores the red, green, blue, and alpha components on 8 bits.
+		Every component is stored as an unsigned integer.
+		<br /><br />
+
+		[page:constant RGBA16I] stores the red, green, blue, and alpha components on 16 bits.
+		Every component is stored as an integer.
+		<br /><br />
+
+		[page:constant RGBA16UI] stores the red, green, blue, and alpha components on 16 bits.
+		Every component is stored as an unsigned integer.
+		<br /><br />
+
+		[page:constant RGBA16F] stores the red, green, blue, and alpha components on 16 bits.
+		Every component is stored as floating point.
+		<br /><br />
+
+		[page:constant RGBA32I] stores the red, green, blue, and alpha components on 32 bits.
+		Every component is stored as an integer.
+		<br /><br />
+
+		[page:constant RGBA32UI] stores the red, green, blue, and alpha components on 32 bits.
+		Every component is stored as an unsigned integer.
+		<br /><br />
+
+		[page:constant RGBA32F] stores the red, green, blue, and alpha components on 32 bits.
+		Every component is stored as floating point.
+		<br /><br />
+
+		[page:constant RGB5_A1] stores the red, green, blue, and alpha components respectively on 5 bits, 5 bits, 5 bits, and 1 bit.<br /><br />
+
+		[page:constant RGB10_A2] stores the red, green, blue, and alpha components respectively on 10 bits, 10 bits, 10 bits and 2 bits.<br /><br />
+
+		[page:constant RGB10_A2UI] stores the red, green, blue, and alpha components respectively on 10 bits, 10 bits, 10 bits and 2 bits.
+		Every component is stored as an unsigned integer.
+		<br /><br />
+
+		[page:constant SRGB8] stores the red, green, and blue components on 8 bits each.<br /><br />
+
+		[page:constant SRGB8_ALPHA8] stores the red, green, blue, and alpha components on 8 bits each.<br /><br />
+
+		[page:constant DEPTH_COMPONENT16] stores the depth component on 16bits.<br /><br />
+
+		[page:constant DEPTH_COMPONENT24] stores the depth component on 24bits.<br /><br />
+
+		[page:constant DEPTH_COMPONENT32F] stores the depth component on 32bits. The component is stored as floating point.<br /><br />
+
+		[page:constant DEPTH24_STENCIL8] stores the depth, and stencil components respectively on 24 bits and 8 bits.
+		The stencil component is stored as an unsigned integer.
+		<br /><br />
+
+		[page:constant DEPTH32F_STENCIL8] stores the depth, and stencil components respectively on 32 bits and 8 bits.
+		The depth component is stored as floating point, and the stencil component as an unsigned integer.
+		<br /><br />
+
+		Note that the texture must have the correct [page:Texture.type type] set,
+		as well as the correct [page:Texture.format format].
+
+		See [link:https://developer.mozilla.org/en/docs/Web/API/WebGLRenderingContext/texImage2D WebGLRenderingContext.texImage2D], and
+		[link:https://developer.mozilla.org/en-US/docs/Web/API/WebGL2RenderingContext/texImage3D WebGL2RenderingContext.texImage3D],
+		for more details regarding the possible combination of [page:Texture.format format], [page:Texture.internalFormat internalFormat],
+		and [page:Texture.type type].<br /><br />
+
+		For more in-depth information regarding internal formats, you can also refer directly
+		to the [link:https://www.khronos.org/registry/webgl/specs/latest/2.0/ WebGL2 Specification] and
+		to the [link:https://www.khronos.org/registry/OpenGL/specs/es/3.0/es_spec_3.0.pdf OpenGL ES 3.0 Specification].
 		</p>
 
 		<h2>Encoding</h2>
@@ -263,6 +586,8 @@
 
 		<h2>Source</h2>
 
-		[link:https://github.com/mrdoob/three.js/blob/master/src/constants.js src/constants.js]
+		<p>
+			[link:https://github.com/mrdoob/three.js/blob/master/src/constants.js src/constants.js]
+		</p>
 	</body>
 </html>

+ 24 - 28
docs/api/en/core/BufferAttribute.html

@@ -58,23 +58,6 @@
 		then this will count the number of such vectors stored.
 		</p>
 
-		<h3>[property:Boolean dynamic]</h3>
-		<p>
-			Whether the buffer is dynamic or not. Default is *false*.<br />
-
-			If false, the GPU is informed that contents of the buffer are likely to be used often and not change often.
-			This corresponds to the  [link:https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContext/bufferData gl.STATIC_DRAW] flag.<br />
-			if true, the GPU is informed that contents of the buffer are likely to be used often and change often.
-			This corresponds to the  [link:https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContext/bufferData gl.DYNAMIC_DRAW] flag.
-		</p>
-
-		<h3>[property:Boolean isBufferAttribute]</h3>
-		<p>
-			Used to check whether this or derived classes are BufferAttributes. Default is *true*.<br /><br />
-
-			You should not change this, as it used internally for optimisation.
-		</p>
-
 		<h3>[property:Integer itemSize]</h3>
 		<p>The length of vectors that are being stored in the [page:BufferAttribute.array array].</p>
 
@@ -111,12 +94,30 @@
 			related to color).
 		</p>
 
+		<h3>[property:Usage usage]</h3>
+		<p>
+			Defines the intended usage pattern of the data store for optimization purposes. Corresponds to the *usage* parameter of
+			[link:https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContext/bufferData WebGLRenderingContext.bufferData]().
+			Default is *THREE.StaticDrawUsage*.
+		</p>
+
 		<h3>[property:Integer version]</h3>
 		<p>A version number, incremented every time the [page:BufferAttribute.needsUpdate needsUpdate] property is set to true.</p>
 
-
 		<h2>Methods</h2>
 
+		<h3>[method:this applyMatrix3]( [param:Matrix3 m] )</h3>
+		<p>Applies matrix [page:Matrix3 m] to every Vector3 element of this BufferAttribute.</p>
+
+		<h3>[method:this applyMatrix4]( [param:Matrix4 m] )</h3>
+		<p>Applies matrix [page:Matrix4 m] to every Vector3 element of this BufferAttribute.</p>
+
+		<h3>[method:this applyNormalMatrix]( [param:Matrix3 m] )</h3>
+		<p>Applies normal matrix [page:Matrix3 m] to every Vector3 element of this BufferAttribute.</p>
+
+		<h3>[method:this transformDirection]( [param:Matrix4 m] )</h3>
+		<p>Applies matrix [page:Matrix4 m] to every Vector3 element of this BufferAttribute, interpreting the elements as a direction vectors.</p>
+
 		<h3>[method:BufferAttribute clone]() </h3>
 		<p>Return a copy of this bufferAttribute.</p>
 
@@ -178,15 +179,8 @@
 		being a [page:TypedArray].
 		</p>
 
-		<h3>[method:BufferAttribute setArray] ( [param:TypedArray array] ) </h3>
-		<p>
-		[page:BufferAttribute.array array] to the TypedArray passed in here.<br /><br />
-
-		After setting the array, [page:BufferAttribute.needsUpdate needsUpdate] should be set to true.
-		</p>
-
-		<h3>[method:BufferAttribute setDynamic] ( [param:Boolean value] ) </h3>
-		<p>Set [page:BufferAttribute.dynamic dynamic] to value.</p>
+		<h3>[method:BufferAttribute setUsage] ( [param:Usage value] ) </h3>
+		<p>Set [page:BufferAttribute.usage usage] to value.</p>
 
 		<h3>[method:BufferAttribute setX]( [param:Integer index], [param:Float x] ) </h3>
 		<p>Sets the x component of the vector at the given index.</p>
@@ -213,6 +207,8 @@
 
 		<h2>Source</h2>
 
-		[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+		<p>
+			[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+		</p>
 	</body>
 </html>

+ 19 - 15
docs/api/en/core/BufferGeometry.html

@@ -22,7 +22,7 @@
 		For a less efficient but easier-to-use representation of geometry, see [page:Geometry].
 		</p>
 
-		<h2>Example</h2>
+		<h2>Code Example</h2>
 		<code>
 		var geometry = new THREE.BufferGeometry();
 		// create a simple square shape. We duplicate the top left and bottom right
@@ -38,10 +38,12 @@
 		] );
 
 		// itemSize = 3 because there are 3 values (components) per vertex
-		geometry.addAttribute( 'position', new THREE.BufferAttribute( vertices, 3 ) );
+		geometry.setAttribute( 'position', new THREE.BufferAttribute( vertices, 3 ) );
 		var material = new THREE.MeshBasicMaterial( { color: 0xff0000 } );
 		var mesh = new THREE.Mesh( geometry, material );
 		</code>
+
+		<h2>Examples</h2>
 		<p>
 			[example:webgl_buffergeometry Mesh with non-indexed faces]<br />
 			[example:webgl_buffergeometry_indexed Mesh with indexed faces]<br />
@@ -65,7 +67,7 @@
 		<h3>[property:Object attributes]</h3>
 		<p>
 		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 [page:.addAttribute] and [page:.getAttribute] to access attributes of this geometry.
+		Rather than accessing this property directly, use [page:.setAttribute] and [page:.getAttribute] to access attributes of this geometry.
 		</p>
 
 		<h3>[property:Box3 boundingBox]</h3>
@@ -132,16 +134,16 @@
 			Default is *null*.
 		</p>
 
-		<h3>[property:Boolean isBufferGeometry]</h3>
+		<h3>[property:Object morphAttributes]</h3>
 		<p>
-			Used to check whether this or derived classes are BufferGeometries. Default is *true*.<br /><br />
-
-			You should not change this, as it used internally for optimisation.
+			Hashmap of [page:BufferAttribute]s holding details of the geometry's [page:Geometry.morphTargets morphTargets].
 		</p>
 
-		<h3>[property:Object morphAttributes]</h3>
+		<h3>[property:Boolean morphTargetsRelative]</h3>
 		<p>
-			Hashmap of [page:BufferAttribute]s holding details of the geometry's [page:Geometry.morphTargets morphTargets].
+			Used to control the morph target behavior; when set to true, the morph target data is treated as relative offsets, rather than as absolute positions/normals.
+
+			Default is *false*.
 		</p>
 
 		<h3>[property:String name]</h3>
@@ -165,9 +167,9 @@
 
 		<h3>[page:EventDispatcher EventDispatcher] methods are available on this class.</h3>
 
-		<h3>[method:BufferGeometry addAttribute]( [param:String name], [param:BufferAttribute attribute] )</h3>
+		<h3>[method:BufferGeometry setAttribute]( [param:String name], [param:BufferAttribute attribute] )</h3>
 		<p>
-		Adds an attribute to this geometry. Use this rather than the attributes property,
+		Sets an attribute to this geometry. Use this rather than the attributes property,
 		because an internal hashmap of [page:.attributes] is maintained to speed up iterating over
 		attributes.
 		</p>
@@ -179,7 +181,7 @@
 		</p>
 
 
-		<h3>[method:null applyMatrix]( [param:Matrix4 matrix] )</h3>
+		<h3>[method:null applyMatrix4]( [param:Matrix4 matrix] )</h3>
 		<p>Bakes matrix transform directly into vertex coordinates.</p>
 
 		<h3>[method:BufferGeometry center] ()</h3>
@@ -249,8 +251,8 @@
 		This will correct lighting on the geometry surfaces.
 		</p>
 
-		<h3>[method:BufferAttribute removeAttribute]( [param:String name] )</h3>
-		<p>Removes the [page:BufferAttribute attribute] with the specified name.</p>
+		<h3>[method:BufferAttribute deleteAttribute]( [param:String name] )</h3>
+		<p>Deletes the [page:BufferAttribute attribute] with the specified name.</p>
 
 		<h3>[method:BufferGeometry rotateX] ( [param:Float radians] )</h3>
 		<p>
@@ -322,6 +324,8 @@
 
 		<h2>Source</h2>
 
-		[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+		<p>
+			[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+		</p>
 	</body>
 </html>

+ 3 - 1
docs/api/en/core/Clock.html

@@ -82,6 +82,8 @@
 
 		<h2>Source</h2>
 
-		[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+		<p>
+			[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+		</p>
 	</body>
 </html>

+ 3 - 1
docs/api/en/core/DirectGeometry.html

@@ -103,6 +103,8 @@
 
 		<h2>Source</h2>
 
-		[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+		<p>
+			[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+		</p>
 	</body>
 </html>

+ 18 - 16
docs/api/en/core/EventDispatcher.html

@@ -15,36 +15,36 @@
 			[link:https://github.com/mrdoob/eventdispatcher.js Eventdispatcher on GitHub]
 		</p>
 
-		<h2>Example</h2>
+		<h2>Code Example</h2>
 
 		<code>
-// Adding events to a custom object
+		// Adding events to a custom object
 
-var Car = function () {
+		var Car = function () {
 
-    this.start = function () {
+		    this.start = function () {
 
-        this.dispatchEvent( { type: 'start', message: 'vroom vroom!' } );
+		        this.dispatchEvent( { type: 'start', message: 'vroom vroom!' } );
 
-    };
+		    };
 
-};
+		};
 
-// Mixing the EventDispatcher.prototype with the custom object prototype
+		// Mixing the EventDispatcher.prototype with the custom object prototype
 
-Object.assign( Car.prototype, EventDispatcher.prototype );
+		Object.assign( Car.prototype, EventDispatcher.prototype );
 
-// Using events with the custom object
+		// Using events with the custom object
 
-var car = new Car();
+		var car = new Car();
 
-car.addEventListener( 'start', function ( event ) {
+		car.addEventListener( 'start', function ( event ) {
 
-    alert( event.message );
+		    alert( event.message );
 
-} );
+		} );
 
-car.start();
+		car.start();
 		</code>
 
 		<h2>Constructor</h2>
@@ -95,6 +95,8 @@ car.start();
 
 		<h2>Source</h2>
 
-		[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+		<p>
+			[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+		</p>
 	</body>
 </html>

+ 30 - 27
docs/api/en/core/Face3.html

@@ -16,39 +16,40 @@
 		create them manually.
 		</p>
 
-
-		<h2>Examples</h2>
-
-		<p>[example:svg_sandbox svg / sandbox ]</p>
-		<p>[example:misc_exporter_obj exporter / obj ]</p>
-		<p>[example:webgl_shaders_vector WebGL / shaders / vector ]</p>
-
+		<h2>Code Example</h2>
 
 		<code>
-var material = new THREE.MeshStandardMaterial( { color : 0x00cc00 } );
+		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 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 );
+		//create a new face using vertices 0, 1, 2
+		var normal = new THREE.Vector3( 0, 0, 1 ); //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 );
+		//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();
+		//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 ) );
+		scene.add( new THREE.Mesh( geometry, material ) );
 	</code>
 
+		<h2>Examples</h2>
+
+		<p>
+			[example:svg_sandbox svg / sandbox ]<br />
+			[example:misc_exporter_obj exporter / obj ]<br />
+			[example:webgl_shaders_vector WebGL / shaders / vector ]
+		</p>
 
 		<h2>Constructor</h2>
 
@@ -97,7 +98,7 @@ scene.add( new THREE.Mesh( geometry, material ) );
 		<h3>[property:Color color]</h3>
 		<p>
 		Face color - for this to be used a material's [page:Material.vertexColors vertexColors] property
-		must be set to [page:Materials THREE.FaceColors].
+		must be set to *true*.
 		</p>
 
 		<h3>[property:Array vertexNormals]</h3>
@@ -108,7 +109,7 @@ scene.add( new THREE.Mesh( geometry, material ) );
 		<h3>[property:Array vertexColors]</h3>
 		<p>
 		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].
+		must be set to *true*.
 		</p>
 
 
@@ -128,6 +129,8 @@ scene.add( new THREE.Mesh( geometry, material ) );
 
 		<h2>Source</h2>
 
-		[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+		<p>
+			[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+		</p>
 	</body>
 </html>

+ 21 - 22
docs/api/en/core/Geometry.html

@@ -21,20 +21,10 @@
 		</p>
 		</div>
 
+		<h2>Code Example</h2>
 
-		<h2>Example</h2>
-
-		<div>[example:webgl_geometry_minecraft WebGL / geometry / minecraft ]</div>
-		<div>[example:webgl_geometry_minecraft_ao WebGL / geometry / minecraft / ao ]</div>
-		<div>[example:webgl_geometry_nurbs WebGL / geometry / nurbs ]</div>
-		<div>[example:webgl_geometry_spline_editor WebGL / geometry / spline / editor ]</div>
-		<div>[example:webgl_interactive_cubes_gpu WebGL / interactive / cubes / gpu ]</div>
-		<div>[example:webgl_interactive_lines WebGL / interactive / lines ]</div>
-		<div>[example:webgl_interactive_raycasting_points WebGL / interactive / raycasting / points ]</div>
-		<div>[example:webgl_interactive_voxelpainter WebGL / interactive / voxelpainter ]</div>
-
-
-		<code>var geometry = new THREE.Geometry();
+		<code>
+		var geometry = new THREE.Geometry();
 
 		geometry.vertices.push(
 			new THREE.Vector3( -10,  10, 0 ),
@@ -47,6 +37,20 @@
 		geometry.computeBoundingSphere();
 		</code>
 
+
+		<h2>Examples</h2>
+
+		<p>
+			[example:webgl_geometry_minecraft WebGL / geometry / minecraft ]<br />
+			[example:webgl_geometry_minecraft_ao WebGL / geometry / minecraft / ao ]<br />
+			[example:webgl_geometry_nurbs WebGL / geometry / nurbs ]<br />
+			[example:webgl_geometry_spline_editor WebGL / geometry / spline / editor ]<br />
+			[example:webgl_interactive_cubes_gpu WebGL / interactive / cubes / gpu ]<br />
+			[example:webgl_interactive_lines WebGL / interactive / lines ]<br />
+			[example:webgl_interactive_raycasting_points WebGL / interactive / raycasting / points ]<br />
+			[example:webgl_interactive_voxelpainter WebGL / interactive / voxelpainter ]
+		</p>
+
 		<h2>Constructor</h2>
 
 
@@ -98,13 +102,6 @@
 		<h3>[property:Integer id]</h3>
 		<p>Unique number for this geometry instance.</p>
 
-		<h3>[property:Boolean isGeometry]</h3>
-		<p>
-			Used to check whether this or derived classes are Geometries. Default is *true*.<br /><br />
-
-			You should not change this, as it used internally for optimisation.
-		</p>
-
 		<h3>[property:array lineDistances]</h3>
 		<p>
 		An array containing distances between vertices for Line geometries.
@@ -210,7 +207,7 @@
 
 		<h3>[page:EventDispatcher EventDispatcher] methods are available on this class.</h3>
 
-		<h3>[method:null applyMatrix]( [param:Matrix4 matrix] )</h3>
+		<h3>[method:null applyMatrix4]( [param:Matrix4 matrix] )</h3>
 		<p>Bakes matrix transform directly into vertex coordinates.</p>
 
 		<h3>[method:Geometry center] ()</h3>
@@ -341,6 +338,8 @@
 
 		<h2>Source</h2>
 
-		[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+		<p>
+			[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+		</p>
 	</body>
 </html>

+ 4 - 7
docs/api/en/core/InstancedBufferAttribute.html

@@ -22,23 +22,20 @@
 		</p>
 
 		<h2>Properties</h2>
-		See [page:BufferAttribute] for inherited properties.
+		<p>See [page:BufferAttribute] for inherited properties.</p>
 
 		<h3>[property:Number meshPerAttribute]</h3>
 		<p>
 			Default is *1*.
 		</p>
 
-		<h3>[property:Boolean isInstancedBufferAttribute]</h3>
-		<p>
-			Default is *true*.
-		</p>
-
 		<h2>Methods</h2>
 		<p>See [page:BufferAttribute] for inherited methods.</p>
 
 		<h2>Source</h2>
 
-		[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+		<p>
+			[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+		</p>
 	</body>
 </html>

+ 5 - 14
docs/api/en/core/InstancedBufferGeometry.html

@@ -22,29 +22,20 @@
 		</p>
 
 		<h2>Properties</h2>
-		See [page:BufferGeometry] for inherited properties.
+		<p>See [page:BufferGeometry] for inherited properties.</p>
 
 		<h3>[property:Number maxInstancedCount]</h3>
 		<p>
 			Default is *undefined*.
 		</p>
 
-		<h3>[property:Boolean isInstancedBufferGeometry]</h3>
-		<p>
-			Default is *true*.
-		</p>
-
 		<h2>Methods</h2>
-		<p>See [page:BufferAttribute] for inherited methods.</p>
-
-		<h3>[property:Number addGroup]( start, count, materialIndex )</h3>
-		<p>
-
-		</p>
-
+		<p>See [page:BufferGeometry] for inherited methods.</p>
 
 		<h2>Source</h2>
 
-		[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+		<p>
+			[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+		</p>
 	</body>
 </html>

+ 3 - 6
docs/api/en/core/InstancedInterleavedBuffer.html

@@ -31,11 +31,6 @@
 			Default is *1*.
 		</p>
 
-		<h3>[property:Boolean isInstancedInterleavedBuffer]</h3>
-		<p>
-			Default is *true*.
-		</p>
-
 		<h2>Methods</h2>
 		<p>
 			See [page:InterleavedBuffer] for inherited methods.
@@ -43,6 +38,8 @@
 
 		<h2>Source</h2>
 
-		[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+		<p>
+			[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+		</p>
 	</body>
 </html>

+ 11 - 20
docs/api/en/core/InterleavedBuffer.html

@@ -16,7 +16,7 @@
 			An introduction into interleaved arrays can be found here: [link:https://blog.tojicode.com/2011/05/interleaved-array-basics.html Interleaved array basics]
 		</p>
 
-		<h2>Example</h2>
+		<h2>Examples</h2>
 
 		<p>[example:webgl_buffergeometry_points_interleaved webgl / buffergeometry / points / interleaved]</p>
 
@@ -44,11 +44,6 @@
 		Gives the total number of elements in the array.
 		</p>
 
-		<h3>[property:Boolean dynamic]</h3>
-		<p>
-		Default is *false*.
-		</p>
-
 		<h3>[property:Object updateRange]</h3>
 		<p>
 		Object containing offset and count.
@@ -69,27 +64,18 @@
 		A version number, incremented every time the needsUpdate property is set to true.
 		</p>
 
-		<h3>[property:Boolean isInterleavedBuffer]</h3>
-		<p>
-		Default is *true*.
-		</p>
-
 		<h3>[property:Boolean needsUpdate]</h3>
 		<p>
 		Default is *false*. Setting this to true increments [page:InterleavedBuffer.version version].
 		</p>
 
-		<h2>Methods</h2>
-
-		<h3>[method:InterleavedBuffer setArray] ( [param:TypedArray array] ) </h3>
+		<h3>[property:Usage usage]</h3>
 		<p>
-		 array - must be  a Typed Array.
+			Defines the intended usage pattern of the data store for optimization purposes. Corresponds to the *usage* parameter of
+			[link:https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContext/bufferData WebGLRenderingContext.bufferData]().
 		</p>
 
-		<h3>[method:InterleavedBuffer setDynamic] ( [param:Boolean value] ) </h3>
-		<p>
-			Set [page:InterleavedBuffer.dynamic dynamic] to value.
-		</p>
+		<h2>Methods</h2>
 
 		<h3>[method:InterleavedBuffer copy]( [param:InterleavedBuffer source] ) </h3>
 		<p>
@@ -112,8 +98,13 @@
 			Creates a clone of this [name].
 		</p>
 
+		<h3>[method:BufferAttribute setUsage] ( [param:Usage value] ) </h3>
+		<p>Set [page:BufferAttribute.usage usage] to value.</p>
+
 		<h2>Source</h2>
 
-		[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+		<p>
+			[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+		</p>
 	</body>
 </html>

+ 6 - 6
docs/api/en/core/InterleavedBufferAttribute.html

@@ -55,13 +55,11 @@
 			Default is *false*.
 		</p>
 
-		<h3>[property:Boolean isInterleavedBufferAttribute]</h3>
-		<p>
-			Default is *true*.
-		</p>
-
 		<h2>Methods</h2>
 
+		<h3>[method:this applyMatrix4]( [param:Matrix4 m] )</h3>
+		<p>Applies matrix [page:Matrix4 m] to every Vector3 element of this InterleavedBufferAttribute.</p>
+
 		<h3>[method:Number getX]( [param:Integer index] ) </h3>
 		<p>Returns the x component of the item at the given index.</p>
 
@@ -99,6 +97,8 @@
 
 		<h2>Source</h2>
 
-		[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+		<p>
+			[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+		</p>
 	</body>
 </html>

+ 13 - 1
docs/api/en/core/Layers.html

@@ -80,8 +80,20 @@
 			Toggle membership of *layer*.
 		</p>
 
+		<h3>[method:null enableAll]()</h3>
+		<p>
+			Add membership to all layers.
+		</p>
+
+		<h3>[method:null disableAll]()</h3>
+		<p>
+			Remove membership from all layers.
+		</p>
+
 		<h2>Source</h2>
 
-		[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+		<p>
+			[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+		</p>
 	</body>
 </html>

+ 19 - 16
docs/api/en/core/Object3D.html

@@ -58,17 +58,11 @@
 		<h3>[property:Integer id]</h3>
 		<p>readonly – Unique number for this object instance.</p>
 
-		<h3>[property:Boolean isObject3D]</h3>
-		<p>
-			Used to check whether this or derived classes are Object3Ds. Default is *true*.<br /><br />
-
-			You should not change this, as it is used internally for optimisation.
-		</p>
-
 		<h3>[property:Layers layers]</h3>
 		<p>
 		The layer membership of the object. The object is only visible if it has at least one
-		layer in common with the [page:Camera] in use.
+		layer in common with the [page:Camera] in use. This property can also be used to filter out
+		unwanted objects in ray-intersection tests when using [page:Raycaster].
 		</p>
 
 		<h3>[property:Matrix4 matrix]</h3>
@@ -192,7 +186,7 @@
 			Set to ( 0, 1, 0 ) by default.
 		</p>
 
-		<h3>[property:Vector3 DefaultMatrixAutoUpdate]</h3>
+		<h3>[property:Boolean DefaultMatrixAutoUpdate]</h3>
 		<p>
 			The default setting for [page:.matrixAutoUpdate matrixAutoUpdate] for newly created Object3Ds.<br />
 
@@ -211,7 +205,7 @@
 		See [page:Group] for info on manually grouping objects.
 		</p>
 
-		<h3>[method:null applyMatrix]( [param:Matrix4 matrix] )</h3>
+		<h3>[method:null applyMatrix4]( [param:Matrix4 matrix] )</h3>
 		<p>Applies the matrix transform to the object and updates the object's position, rotation and scale.</p>
 
 		<h3>[method:this applyQuaternion]( [param:Quaternion quaternion] )</h3>
@@ -240,7 +234,7 @@
 		<p>
 		id -- Unique number of the object instance<br /><br />
 
-		Searches through the object's children and returns the first with a matching id.<br />
+		Searches through an object and its children, starting with the object itself, and returns the first with a matching id.<br />
 		Note that ids are assigned in chronological order: 1, 2, 3, ..., incrementing by one for each new object.
 		</p>
 
@@ -248,7 +242,7 @@
 		<p>
 		name -- String to match to the children's Object3D.name property. <br /><br />
 
-		Searches through the object's children and returns the first with a matching name.<br />
+		Searches through an object and its children, starting with the object itself, and returns the first with a matching name.<br />
 		Note that for most objects the name is an empty string by default. You will
 		have to set it manually to make use of this method.
 		</p>
@@ -258,7 +252,7 @@
 		name -- the property name to search for. <br />
 		value -- value of the given property. <br /><br />
 
-		Searches through the object's children and returns the first with a property that matches the value given.
+		Searches through an object and its children, starting with the object itself, and returns the first with a property that matches the value given.
 		</p>
 
 		<h3>[method:Vector3 getWorldPosition]( [param:Vector3 target] )</h3>
@@ -438,11 +432,18 @@
 		</p>
 
 		<h3>[method:null updateMatrix]()</h3>
-		<p>Update the local transform.</p>
+		<p>Updates the local transform.</p>
 
 		<h3>[method:null updateMatrixWorld]( [param:Boolean force] )</h3>
-		<p>Update the global transform of the object and its children.</p>
+		<p>Updates the global transform of the object and its descendants.</p>
 
+		<h3>[method:null updateWorldMatrix]( [param:Boolean updateParents], [param:Boolean updateChildren] )</h3>
+		<p>
+		updateParents - recursively updates global transform of ancestors.<br />
+		updateChildren - recursively updates global transform of descendants.<br /><br />
+
+		Updates the global transform of the object.
+		</p>
 
 		<h3>[method:Vector3 worldToLocal]( [param:Vector3 vector] )</h3>
 		<p>
@@ -453,6 +454,8 @@
 
 		<h2>Source</h2>
 
-		[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+		<p>
+			[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+		</p>
 	</body>
 </html>

+ 26 - 16
docs/api/en/core/Raycaster.html

@@ -16,7 +16,7 @@
 		other things.
 		</p>
 
-		<h2>Example</h2>
+		<h2>Code Example</h2>
 		<code>
 		var raycaster = new THREE.Raycaster();
 		var mouse = new THREE.Vector2();
@@ -54,22 +54,21 @@
 		window.requestAnimationFrame(render);
 
 		</code>
-		<div>
-			Examples: [example:webgl_interactive_cubes Raycasting to a Mesh]<br />
+
+		<h2>Examples</h2>
+
+		<p>
+			[example:webgl_interactive_cubes Raycasting to a Mesh]<br />
 			[example:webgl_interactive_cubes_ortho Raycasting to a Mesh in using an OrthographicCamera]<br />
 			[example:webgl_interactive_buffergeometry Raycasting to a Mesh with BufferGeometry]<br />
+			[example:webgl_instancing_raycast Raycasting to a InstancedMesh]<br />
 			[example:webgl_interactive_lines Raycasting to a Line]<br />
 			[example:webgl_interactive_raycasting_points Raycasting to Points]<br />
 			[example:webgl_geometry_terrain_raycast Terrain raycasting]<br />
 			[example:webgl_interactive_voxelpainter Raycasting to paint voxels]<br />
 			[example:webgl_raycast_texture Raycast to a Texture]
-		</div>
-
-
-		<p>
 		</p>
 
-
 		<h2>Constructor</h2>
 
 		<h3>[name]( [param:Vector3 origin], [param:Vector3 direction], [param:Float near], [param:Float far] ) {</h3>
@@ -92,11 +91,6 @@
 		This value shouldn't be negative and should be larger than the near property.
 		</p>
 
-		<h3>[property:float linePrecision]</h3>
-		<p>
-		The precision factor of the raycaster when intersecting [page:Line] objects.
-		</p>
-
 		<h3>[property:float near]</h3>
 		<p>
 		The near factor of the raycaster. This value indicates which objects can be discarded based on the distance.
@@ -111,6 +105,18 @@
 		Defaults to null.
 		</p>
 
+		<h3>[property:Layers layers]</h3>
+		<p>
+		Used by [name] to selectively ignore 3D objects when performing intersection tests. The following code example ensures that
+		only 3D objects on layer *1* will be honored by the instance of [name].
+
+		<code>
+		raycaster.layers.set( 1 );
+		object.layers.enable( 1 );
+		</code>
+
+		</p>
+
 		<h3>[property:Object params]</h3>
 		<p>
 		An object with the following properties:
@@ -118,13 +124,14 @@
 			<code>
 {
 	Mesh: {},
-	Line: {},
+	Line: { threshold: 1 },
 	LOD: {},
 	Points: { threshold: 1 },
 	Sprite: {}
 }
 			</code>
 
+		Where threshold is the precision of the raycaster when intersecting objects, in world units.
 		</p>
 
 		<h3>[property:Ray ray]</h3>
@@ -170,7 +177,8 @@
 			[page:Integer faceIndex] – index of the intersected face<br />
 			[page:Object3D object] – the intersected object<br />
 			[page:Vector2 uv] - U,V coordinates at point of intersection<br />
-			[page:Vector2 uv2] - Second set of U,V coordinates at point of intersection
+			[page:Vector2 uv2] - Second set of U,V coordinates at point of intersection<br />
+			[page:Integer instanceId] – The index number of the instance where the ray intersects the InstancedMesh
 		</p>
 		<p>
 		*Raycaster* delegates to the [page:Object3D.raycast raycast] method of the passed object, when evaluating whether the ray intersects the object or not. This allows [page:Mesh meshes] to respond differently to ray casting than [page:Line lines] and [page:Points pointclouds].
@@ -192,6 +200,8 @@
 
 		<h2>Source</h2>
 
-		[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+		<p>
+			[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+		</p>
 	</body>
 </html>

+ 69 - 7
docs/api/en/core/Uniform.html

@@ -13,18 +13,18 @@
 		<p class="desc">Uniforms are global [link:https://www.opengl.org/documentation/glsl/ GLSL] variables. They are passed to shader programs.
 		</p>
 
-		<h3>Example</h3>
+		<h2>Code Example</h2>
 		<p>
 		When declaring a uniform of a [page:ShaderMaterial], it is declared by value or by object.
 		</p>
 		<code>
 		uniforms: {
 			time: { value: 1.0 },
-			resolution: new THREE.Uniform(new THREE.Vector2())
-		}
+			resolution: new Uniform( new Vector2() )
+		};
 		</code>
 
-		<h3>Uniform types</h3>
+		<h2>Uniform types</h2>
 
 		<p>
 		Each uniform must have a *value* property. The type of the value must correspond to the
@@ -50,6 +50,10 @@
 					<td>int</td>
 					<td>[page:Number]</td>
 				</tr>
+				<tr>
+					<td>uint (WebGL 2)</td>
+					<td>[page:Number]</td>
+				</tr>
 				<tr>
 					<td>float</td>
 					<td>[page:Number]</td>
@@ -182,6 +186,63 @@
 		(*) Same for an (innermost) array (dimension) of the same GLSL type, containing the components of all vectors or matrices in the array.
 		</p>
 
+		<h2>Structured Uniforms</h2>
+
+		<p>
+			Sometimes you want to organize uniforms as *structs* in your shader code. The following style must be used so *three.js* is able
+			to process structured uniform data.
+		</p>
+		<code>
+		uniforms = {
+			data: {
+				value: {
+					position: new Vector3(),
+					direction: new Vector3( 0, 0, 1 )
+				 }
+			}
+		};
+		</code>
+		This definition can be mapped on the following GLSL code:
+		<code>
+		struct Data {
+			vec3 position;
+			vec3 direction;
+		};
+
+		uniform Data data;
+		</code>
+
+		<h2>Structured Uniforms with Arrays</h2>
+
+		<p>
+			It's also possible to manage *structs* in arrays. The syntax for this use case looks like so:
+		</p>
+		<code>
+		var entry1 = {
+			position: new Vector3(),
+			direction: new Vector3( 0, 0, 1 )
+		};
+		var entry2 = {
+			position: new Vector3( 1, 1, 1 ),
+			direction: new Vector3( 0, 1, 0 )
+		};
+
+		uniforms = {
+			data: {
+				value: [ entry1, entry2 ]
+			}
+		};
+		</code>
+		This definition can be mapped on the following GLSL code:
+		<code>
+		struct Data {
+			vec3 position;
+			vec3 direction;
+		};
+
+		uniform Data data[ 2 ];
+		</code>
+
 		<h2>Constructor</h2>
 
 		<h3>[name]( [param:Object value] )</h3>
@@ -202,12 +263,13 @@
 		<p>
 		Returns a clone of this uniform.<br />
 		If the uniform's value property is an [page:Object] with a clone() method, this is used, otherwise the value is copied by assignment.
-		Array values are shared between cloned [page:Uniform]s.<br /><br />
-		See [example:webgldeferred_animation WebGL deferred animation] for an example of this method in use.
+		Array values are shared between cloned [page:Uniform]s.
 		</p>
 
 		<h2>Source</h2>
 
-		[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+		<p>
+			[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+		</p>
 	</body>
 </html>

+ 13 - 5
docs/api/en/core/bufferAttributeTypes/BufferAttributeTypes.html

@@ -33,9 +33,11 @@
 
 		<p>All of the above are called in the same way.</p>
 
-		<h3>TypedBufferAttribute( [param:Array array], [param:Integer itemSize], [param:Boolean normalized] )</h3>
+		<h3>TypedBufferAttribute( [param:Array_or_Integer array], [param:Integer itemSize], [param:Boolean normalized] )</h3>
 		<p>
-			array -- this can be a typed or untyped (normal) array. It will be converted to the Type specified.<br /><br />
+			array -- this can be a typed or untyped (normal) array or an integer length.
+			An array value will be converted to the Type specified.
+			If a length is given a new TypedArray will created, initialized with all elements set to zero.<br /><br />
 
 			itemSize -- the number of values of the array that should be associated with a particular vertex.<br /><br />
 
@@ -44,14 +46,20 @@
 
 		<h2>Properties</h2>
 
-		See the [page:BufferAttribute] page for inherited properties.
+		<p>
+			See the [page:BufferAttribute] page for inherited properties.
+		</p>
 
 		<h2>Methods</h2>
 
-		See the [page:BufferAttribute] page for inherited methods.
+		<p>
+			See the [page:BufferAttribute] page for inherited methods.
+		</p>
 
 		<h2>Source</h2>
 
-		[link:https://github.com/mrdoob/three.js/blob/master/src/core/BufferAttribute.js src/core/BufferAttribute.js]
+		<p>
+			[link:https://github.com/mrdoob/three.js/blob/master/src/core/BufferAttribute.js src/core/BufferAttribute.js]
+		</p>	
 	</body>
 </html>

+ 0 - 608
docs/api/en/deprecated/DeprecatedList.html

@@ -1,608 +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>Deprecated API List</h1>
-
-		<p>
-			As three.js has a rapidly evolving interface, you may come across examples that
-			suggest the use of API elements that are no longer part of the core.<br /><br />
-
-			Below is a list of such elements, along with info regarding their replacements.
-		</p>
-
-
-
-
-
-
-
-
-
-
-		<h2>Audio</h2>
-
-		<h3>[page:Audio]</h3>
-		<p>Audio.load has been deprecated. Use [page:AudioLoader] instead.</p>
-
-		<h3>[page:AudioAnalyser]</h3>
-		<p>AudioAnalyser.getData() has been renamed to [page:AudioAnalyser.getFrequencyData]().</p>
-
-		<h3>[page:BinaryTextureLoader]</h3>
-		<p>BinaryTextureLoader has been renamed to [page:DataTextureLoader].</p>
-
-
-
-
-
-
-
-
-
-
-
-		<h2>Buffers</h2>
-
-		<h3>[page:BufferAttribute]</h3>
-		<p>BufferAttribute.length has been renamed to [page:BufferAttribute.count].</p>
-		<p>BufferAttribute.copyIndicesArray() has been removed.</p>
-
-
-		<h3>[page:DynamicBufferAttribute]</h3>
-		<p>DynamicBufferAttribute has been removed. Use [page:BufferAttribute.setDynamic]( true ) instead.</p>
-
-		<h3>[page:Int8Attribute]</h3>
-		<p>Int8Attribute has been removed. Use [page:BufferAttributeTypes Int8BufferAttribute] instead.</p>
-
-		<h3>[page:Uint8Attribute]</h3>
-		<p>Uint8Attribute has been removed. Use [page:BufferAttributeTypes Uint8BufferAttribute] instead.</p>
-
-		<h3>[page:Uint8ClampedAttribute]</h3>
-		<p>Uint8ClampedAttribute has been removed. Use [page:BufferAttributeTypes Uint8ClampedBufferAttribute] instead.</p>
-
-		<h3>[page:Int16Attribute]</h3>
-		<p>Int16Attribute has been removed. Use [page:BufferAttributeTypes Int16BufferAttribute] instead.</p>
-
-		<h3>[page:Uint16Attribute]</h3>
-		<p>Uint16Attribute has been removed. Use [page:BufferAttributeTypes Uint16BufferAttribute] instead.</p>
-
-		<h3>[page:Int32Attribute]</h3>
-		<p>Int32Attribute has been removed. Use [page:BufferAttributeTypes Int32BufferAttribute] instead.</p>
-
-		<h3>[page:Uint32Attribute]</h3>
-		<p>Uint32Attribute has been removed. Use [page:BufferAttributeTypes Uint32BufferAttribute] instead.</p>
-
-		<h3>[page:Float32Attribute]</h3>
-		<p>Float32Attribute has been removed. Use [page:BufferAttributeTypes Float32BufferAttribute] instead.</p>
-
-		<h3>[page:Float64Attribute]</h3>
-		<p>Float64Attribute has been removed. Use [page:BufferAttributeTypes Float64BufferAttribute] instead.</p>
-
-
-
-
-
-
-
-		<h2>Cameras</h2>
-
-		<h3>[page:PerspectiveCamera]</h3>
-		<p>
-		PerspectiveCamera.setLens() is deprecated. Use [page:PerspectiveCamera.setFocalLength]()
-		 and [page:PerspectiveCamera.filmGauge]() for a photographic setup.
-		</p>
-
-
-
-
-
-
-
-		<h2>Constants</h2>
-
-		<h3>[page:LineStrip]</h3>
-
-		<h3>[page:LinePieces]</h3>
-		<p>
-		LinePieces mode is no longer supported for [page:Line]s. Create a [page:LineSegments] instead.
-		</p>
-
-
-
-
-
-		<h2>Core</h2>
-
-		<h3>[page:EventDispatcher]</h3>
-		<p>EventDispatcher.apply has been removed. Inherit or Object.assign the prototype to mix-in instead.</p>
-
-		<h3>[page:Raycaster]</h3>
-		<p>Raycaster.params.PointCloud has been renamed to [page:Raycaster.params.Points].</p>
-
-
-		<h3>[page:Uniform]</h3>
-		<p>
-			Uniform.dynamic has been removed. Use object.onBeforeRender() instead.<br /><br />
-
-			Uniform.onUpdate has been removed. Use object.onBeforeRender() instead.
-		</p>
-
-
-
-
-
-
-		<h2>Extras</h2>
-
-		<h3>[page:ClosedSplineCurve3]</h3>
-		<p>ClosedSplineCurve3 has been deprecated. Use [page:CatmullRomCurve3] instead.</p>
-
-		<h3>[page:SplineCurve3]</h3>
-		<p>SplineCurve3 has been deprecated. Use [page:CatmullRomCurve3] instead.</p>
-
-
-
-
-
-
-
-		<h2>Geometry</h2>
-
-		<p>
-			Geometry.computeTangents() has been removed.<br /><br />
-
-			Geometry.computeLineDistances() has been removed. Use [page:Line.computeLineDistances] instead.<br /><br />
-		</p>
-
-		<h3>[page:BufferGeometry]</h3>
-		<p>
-			BufferGeometry.addIndex has been renamed to [page:BufferGeometry.setIndex].<br /><br />
-
-			BufferGeometry.addDrawCall is now [page:BufferGeometry.addGroup].<br /><br />
-
-			BufferGeometry.clearDrawCalls is now [page:BufferGeometry.clearGroups].<br /><br />
-
-			BufferGeometry.computeTangents has been removed.<br /><br />
-
-			BufferGeometry.computeOffsets has been removed.<br /><br />
-
-			BufferGeometry.drawcalls has been renamed to [page:BufferGeometry.groups].<br /><br />
-
-			BufferGeometry.offsets has been renamed to [page:BufferGeometry.groups].<br /><br />
-
-		</p>
-
-		<h3>[page:CubeGeometry]</h3>
-		<p>CubeGeometry has been renamed to [page:BoxGeometry].</p>
-
-		<h3>[page:Geometry]</h3>
-		<p>Geometry.computeTangents() has been removed.</p>
-
-		<h3>[page:GeometryUtils]</h3>
-		<p>
-			GeometryUtils.merge has been moved to [page:Geometry]. Use [page:Geometry.merge]( geometry2, matrix, materialIndexOffset ) instead.<br /><br />
-
-			GeometryUtils.center has been moved to [page:Geometry]. Use [page:Geometry.center]( ) instead.
-		</p>
-
-		<h3>[page:Plane]</h3>
-		<p>
-			Plane.isIntersectionLine() has been renamed to	[page:Plane.intersectsLine]().
-		</p>
-
-
-
-
-
-
-
-
-		<h2>Helpers</h2>
-
-		<h3>[page:BoundingBoxHelper]</h3>
-		<p>BoundingBoxHelper has been deprecated. Use [page:BoxHelper] instead.</p>
-
-		<h3>[page:EdgesHelper]</h3>
-		<p>EdgesHelper has been removed. Use [page:EdgesGeometry] instead.</p>
-
-		<h3>[page:GridHelper]</h3>
-		<p>GridHelper.setColors() has been deprecated, pass them in the constructor instead.</p>
-
-		<h3>[page:WireframeHelper WireframeHelper]</h3>
-		<p>WireframeHelper has been removed. Use [page:WireframeGeometry] instead.</p>
-
-
-
-
-		<h2>Lights</h2>
-
-		<h3>[page:Light]</h3>
-		<p>
-			Light.onlyShadow has been removed.<br /><br />
-
-			Light.shadowCameraLeft is now [page:Light.shadow.camera.left].<br /><br />
-
-			Light.shadowCameraRight is now [page:Light.shadow.camera.right].<br /><br />
-
-			Light.shadowCameraTop is now [page:Light.shadow.camera.top].<br /><br />
-
-			Light.shadowCameraBottom is now [page:Light.shadow.camera.bottom].<br /><br />
-
-			Light.shadowCameraNear is now [page:Light.shadow.camera.near].<br /><br />
-
-			Light.shadowCameraFar is now [page:Light.shadow.camera.far].<br /><br />
-
-			Light.shadowCameraVisible has been removed. Use [page:CameraHelper] ( light.shadow.camera ) instead.<br /><br />
-
-			Light.shadowMapWidth is now [page:Light.shadow.mapSize.width].<br /><br />
-
-			Light.shadowMapHeight is now [page:Light.shadow.mapSize.height].
-		</p>
-
-		<h2>Loaders</h2>
-
-		<h3>[page:XHRLoader]</h3>
-		<p>XHRLoader has been renamed to [page:FileLoader].</p>
-
-		<h3>[page:JSONLoader]</h3>
-		<p>JSONLoader has been removed from core.</p>
-
-		<h2>Maths</h2>
-
-		<h3>[page:Box2]</h3>
-		<p>
-			Box2.center has been renamed to [page:Box2.getCenter]().<br /><br />
-
-			Box2.empty has been renamed to [page:Box2.isEmpty]().<br /><br />
-
-			Box2.isIntersectionBox has been renamed to [page:Box2.intersectsBox]().<br /><br />
-
-			Box2.size has been renamed to [page:Box2.getSize]().
-
-		</p>
-
-		<h3>[page:Box3]</h3>
-		<p>
-			Box3.center has been renamed to [page:Box3.getCenter]().<br /><br />
-
-			Box3.empty has been renamed to [page:Box3.isEmpty]().<br /><br />
-
-			Box3.isIntersectionBox has been renamed to [page:Box3.intersectsBox]().<br /><br />
-
-			Box3.isIntersectionSphere has been renamed to [page:Box3.intersectsSphere]().<br /><br />
-
-			Box3.size has been renamed to [page:Box3.getSize]().
-		</p>
-
-		<h3>[page:Face4]</h3>
-		<p>Face4 has been removed. Use [page:Face3] instead.</p>
-
-		<h3>[page:Line3]</h3>
-		<p>Line3.center has been renamed to [page:Line3.getCenter]().</p>
-
-		<h3>[page:Math]</h3>
-		<p>
-			Math.random16() has been deprecated. Use Math.random() instead.
-		</p>
-
-		<h3>[page:Matrix3]</h3>
-		<p>
-			Matrix3.flattenToArrayOffset is deprecated. Use [page:Matrix3.toArray]() instead.<br /><br />
-
-			Matrix3.multiplyVector3 has been removed. Use vector.applyMatrix3( matrix ) instead.<br /><br />
-
-			Matrix3.multiplyVector3Array has been renamed to [page:Matrix3.applyToVector3Array]( array ).<br /><br />
-
-			Matrix3.applyToBuffer has been removed. Use matrix.applyToBufferAttribute( attribute ) instead.<br /><br />
-
-			Matrix3.applyToVector3Array has been removed.
-		<p>
-
-		<h3>[page:Matrix4]</h3>
-		<p>
-			Matrix4.flattenToArrayOffset() is deprecated. Use [page:Matrix4.toArray]() instead.<br /><br />
-
-			Matrix4.extractPosition() has been renamed to [page:Matrix4.copyPosition]( matrix ).<br /><br />
-
-			Matrix4.getPosition() has been removed. Use [page:Vector3.setFromMatrixPosition]( matrix ) instead.<br /><br />
-
-			Matrix4.setRotationFromQuaternion() has been renamed to [page:Matrix4.makeRotationFromQuaternion]( quaternion ).<br /><br />
-
-			Matrix4.multiplyVector3() has been removed. Use vector.applyMatrix4( matrix ) instead.<br /><br />
-
-			Matrix4.multiplyVector4() has been removed. Use vector.applyMatrix4( matrix ) instead.<br /><br />
-
-			Matrix4.multiplyVector3Array() has been renamed to [page:Matrix4.applyToVector3Array] ( array ).<br /><br />
-
-			Matrix4.rotateAxis() has been removed. Use [page:Matrix4.transformDirection]( matrix ) instead.<br /><br />
-
-			Matrix4.crossVector() has been removed. Use vector.applyMatrix4( matrix ) instead.<br /><br />
-
-			Matrix4.rotateX() has been removed.<br /><br />
-
-			Matrix4.rotateY() has been removed.<br /><br />
-
-			Matrix4.rotateZ() has been removed.<br /><br />
-
-			Matrix4.rotateByAxis() has been removed.<br /><br />
-
-			Matrix4.applyToBuffer() has been removed. Use matrix.applyToBufferAttribute() instead.<br /><br />
-
-			Matrix4.applyToVector3Array() has been removed.<br /><br />
-
-			Matrix4.makeFrustum() has been removed. Use [page:Matrix4.makePerspective]( left, right, top, bottom, near, far ) instead.
-		</p>
-
-
-		<h3>[page:Quaternion.multiplyVector3]</h3>
-		<p>Quaternion.multiplyVector3() has been removed. Use vector.applyQuaternion( quaternion ) instead.</p>
-
-		<h3>[page:Ray]</h3>
-		<p>
-			Ray.isIntersectionBox() has been renamed to [page:Ray.intersectsBox]().<br /><br />
-
-			Ray.isIntersectionPlane has been renamed to [page:Ray.intersectsPlane].<br /><br />
-
-			Ray.isIntersectionSphere has been renamed to [page:Ray.intersectsSphere].
-		</p>
-
-		<h3>[page:Triangle]</h3>
-		<p>
-			Triangle.area() has been renamed to [page:Triangle.getArea]().<br /><br />
-			Triangle.barycoordFromPoint() has been renamed to [page:Triangle.getBarycoord]().<br /><br />
-			Triangle.midpoint() has been renamed to [page:Triangle.getMidpoint]().<br /><br />
-			Triangle.normal() has been renamed to [page:Triangle.getNormal]().<br /><br />
-			Triangle.plane() has been renamed to [page:Triangle.getPlane]().
-		</p>
-
-		<h3>[page:Vector2]</h3>
-		<p>
-			Vector2.fromAttribute() has been renamed to [page:Vector2.fromBufferAttribute]().
-		</p>
-
-		<h3>[page:Vector3]</h3>
-		<p>
-			Vector3.setEulerFromRotationMatrix() has been removed. Use [page:Euler.setFromRotationMatrix]() instead.<br /><br />
-
-			Vector3.setEulerFromQuaternion() has been removed. Use [page:Euler.setFromQuaternion]() instead.<br /><br />
-
-			Vector3.getPositionFromMatrix() has been renamed to [page:Vector3.setFromMatrixPosition]().<br /><br />
-
-			Vector3.getScaleFromMatrix() has been renamed to [page:Vector3.setFromMatrixScale]().<br /><br />
-
-			Vector3.getColumnFromMatrix() has been renamed to [page:Vector3.setFromMatrixColumn]().<br /><br />
-
-			Vector3.applyProjection() has been removed. Use [page:Vector3.applyMatrix4]() instead.<br /><br />
-
-			Vector3.fromAttribute() has been renamed to [page:Vector3.fromBufferAttribute]().
-		</p>
-
-		<h3>[page:Vector4]</h3>
-		<p>
-			Vector4.fromAttribute() has been renamed to [page:Vector4.fromBufferAttribute]().
-		</p>
-
-		<h3>[page:Vertex]</h3>
-		<p>Vertex has been removed. Use [page:Vector3] instead.</p>
-
-		<h3>[page:Spline]</h3>
-		<p>Spline has been removed. Use [page:CatmullRomCurve3] instead.</p>
-
-
-
-
-
-
-
-
-
-
-
-
-		<h2>Materials</h2>
-
-		<h3>[page:Material]</h3>
-		<p>
-			Material.wrapAround has been removed.<br /><br />
-
-			Material.wrapRGB has been removed.
-
-		</p>
-
-		<h3>[page:MeshFaceMaterial]</h3>
-		<p>MeshFaceMaterial has been removed. Use an array of materials instead.</p>
-
-		<h3>[page:MultiMaterial]</h3>
-		<p>MultiMaterial has been removed. Use an array of materials instead.</p>
-
-		<h3>[page:MeshPhongMaterial]</h3>
-		<p>MeshPhongMaterial.metal has been removed. Use [page:MeshStandardMaterial] instead.</p>
-
-		<h3>[page:ParticleBasicMaterial]</h3>
-		<p>ParticleBasicMaterial has been renamed to [page:PointsMaterial].</p>
-
-		<h3>[page:ParticleSystemMaterial]</h3>
-		<p>ParticleBasicMaterial has been renamed to [page:PointsMaterial].</p>
-
-		<h3>[page:PointCloudMaterial]</h3>
-		<p>PointCloudMaterial has been renamed to [page:PointsMaterial].</p>
-
-		<h3>[page:ShaderMaterial.derivatives]</h3>
-		<p>ShaderMaterial.derivatives has been moved to [page:ShaderMaterial.extensions.derivatives].</p>
-
-
-
-
-
-
-
-
-		<h2>Objects</h2>
-
-		<h3>[page:LOD.objects]</h3>
-		<p>LOD.objects has been renamed to [page:LOD.levels].</p>
-
-		<h3>[page:Object3D]</h3>
-		<p>
-			Object3D.eulerOrder is now [page:Object3D.rotation.order].<br /><br />
-
-			Object3D.getChildByName() has been renamed to [page:Object3D.getObjectByName]().<br /><br />
-
-			Object3D.renderDepth has been removed. Use [page:Object3D.renderOrder] instead.<br /><br />
-
-			Object3D.translate() has been removed. Use [page:Object3D.translateOnAxis]( axis, distance ) instead.<br /><br />
-
-			Object3D.useQuaternion has been removed. The library now uses quaternions by default.
-		</p>
-
-		<h3>[page:LensFlare]</h3>
-		<p>
-			LensFlare has been moved to [link:https://github.com/mrdoob/three.js/blob/master/examples/js/objects/Lensflare.js /examples/js/objects/Lensflare.js].
-		</p>
-
-
-		<h3>[page:Particle]</h3>
-		<p>Particle has been renamed to [page:Sprite].</p>
-
-		<h3>[page:ParticleSystem]</h3>
-		<p>ParticleSystem has been renamed to [page:Points].</p>
-
-		<h3>[page:PointCloud]</h3>
-		<p>PointCloud has been renamed to [page:Points].</p>
-
-		<h3>[page:Shape]</h3>
-		<p>
-			Shape.extrude has been removed. Use [page:ExtrudeGeometry] instead.<br /><br />
-
-			Shape.makeGeometry has been removed. Use [page:ShapeGeometry] instead.
-		</p>
-
-		<h3>[page:SkinnedMesh]</h3>
-		<p>
-			SkinnedMesh.initBones() has been removed.
-		</p>
-
-
-		<h2>Renderers</h2>
-
-		<h3>[page:CanvasRenderer]</h3>
-		<p>
-			CanvasRenderer has been removed.
-		</p>
-
-		<h3>[page:Projector]</h3>
-		<p>
-			Projector has been moved to
-			[link:https://github.com/mrdoob/three.js/blob/master/examples/js/renderers/Projector.js 	/examples/js/renderers/Projector.js].<br /><br />
-
-			Projector.projectVector() is now [page:Vector.project]().<br /><br />
-
-			Projector.unprojectVector() is now [page:Vector.unproject]().<br /><br />
-
-			Projector:.pickingRay() is now [page:Raycaster.setFromCamera]().
-		</p>
-
-		<h3>[page:WebGLProgram]</h3>
-		<p>
-			WebGLProgram.uniforms is now [page:WebGLProgram.getUniforms]().<br /><br />
-
-			WebGLProgram.attributes is now [page:WebGLProgram.getAttributes]().
-		</p>
-
-		<h3>[page:WebGLRenderer]</h3>
-		<p>
-			WebGLRenderer.supportsFloatTextures() is now [page:WebGLRenderer.extensions.get]( 'OES_texture_float' ).<br /><br />
-
-			WebGLRenderer.supportsHalfFloatTextures() is now [page:WebGLRenderer.extensions.get]( 'OES_texture_half_float' ).<br /><br />
-
-			WebGLRenderer.supportsStandardDerivatives() is now [page:WebGLRenderer.extensions.get]( 'OES_standard_derivatives' ).<br /><br />
-
-			WebGLRenderer.supportsCompressedTextureS3TC() is now [page:WebGLRenderer.extensions.get]( 'WEBGL_compressed_texture_s3tc' ).<br /><br />
-
-			WebGLRenderer.supportsCompressedTexturePVRTC() is now [page:WebGLRenderer.extensions.get]( 'WEBGL_compressed_texture_pvrtc' ).<br /><br />
-
-			WebGLRenderer.supportsBlendMinMax() is now [page:WebGLRenderer.extensions.get]( 'EXT_blend_minmax' ).<br /><br />
-
-			WebGLRenderer.supportsVertexTextures() is now [page:WebGLRenderer.capabilities.vertexTextures].<br /><br />
-
-			WebGLRenderer.supportsInstancedArrays() is now [page:WebGLRenderer.extensions.get]( 'ANGLE_instanced_arrays' ).<br /><br />
-
-			WebGLRenderer.enableScissorTest() is now [page:WebGLRenderer.setScissorTest]().<br /><br />
-
-			WebGLRenderer.initMaterial() has been removed.<br /><br />
-
-			WebGLRenderer.addPrePlugin() has been removed.<br /><br />
-
-			WebGLRenderer.addPostPlugin() has been removed.<br /><br />
-
-			WebGLRenderer.updateShadowMap() has been removed.<br /><br />
-
-			WebGLRenderer.setFaceCulling() has been removed.<br /><br />
-
-			WebGLRenderer.setTexture is deprecated, use [page:WebGLRenderer.setTexture2D]() instead.<br /><br />
-
-			WebGLRenderer.shadowMapEnabled is now [page:WebGLRenderer.shadowMap.enabled].<br /><br />
-
-			WebGLRenderer.shadowMapType is now [page:WebGLRenderer.shadowMap.type].<br /><br />
-
-			WebGLRenderer.shadowMapCullFace has been removed. Set [page:Material.shadowSide] instead.<br /><br />
-
-			WebGLRenderer.shadowMap.cullFace has been removed. Set [page:Material.shadowSide] instead.<br /><br />
-
-			WebGLRenderer.shadowMap.renderReverseSided has been removed. Set [page:Material.shadowSide] instead.<br /><br />
-
-			WebGLRenderer.shadowMap.renderSingleSided has been removed. Set [page:Material.shadowSide] instead.
-
-		</p>
-
-		<h3>[page:WebGLRenderTarget]</h3>
-		<p>
-			WebGLRenderTarget.wrapS is now [page:WebGLRenderTarget.texture.wrapS].<br /><br />
-
-			WebGLRenderTarget.wrapT is now [page:WebGLRenderTarget.texture.wrapT].<br /><br />
-
-			WebGLRenderTarget.magFilter is now [page:WebGLRenderTarget.texture.magFilter].<br /><br />
-
-			WebGLRenderTarget.minFilter is now [page:WebGLRenderTarget.texture.minFilter].<br /><br />
-
-			WebGLRenderTarget.anisotropy is now [page:WebGLRenderTarget.texture.anisotropy].<br /><br />
-
-			WebGLRenderTarget.offset is now [page:WebGLRenderTarget.texture.offset].<br /><br />
-
-			WebGLRenderTarget.repeat is now [page:WebGLRenderTarget.texture.repeat].<br /><br />
-
-			WebGLRenderTarget.format is now [page:WebGLRenderTarget.texture.format].<br /><br />
-
-			WebGLRenderTarget.type is now [page:WebGLRenderTarget.texture.type].<br /><br />
-
-			WebGLRenderTarget.generateMipmaps is now [page:WebGLRenderTarget.texture.generateMipmaps].
-		</p>
-
-
-		<h2>Textures</h2>
-
-		<h3>[page:ImageUtils]</h3>
-		<p>
-			ImageUtils.loadTexture has been deprecated. Use [page:TextureLoader] instead.<br /><br />
-
-			ImageUtils.loadTextureCube has been deprecated. Use [page:CubeTextureLoader] instead.<br /><br />
-
-			ImageUtils.loadCompressedTexture has been removed. Use [page:DDSLoader] instead.<br /><br />
-
-			ImageUtils.loadCompressedTextureCube has been removed. Use [page:DDSLoader] instead.
-		</p>
-
-
-		<h2>Source</h2>
-
-		[link:https://github.com/mrdoob/three.js/blob/master/src/Three.Legacy.js src/Three.Legacy.js]
-
-
-		</body>
-</html>

+ 7 - 4
docs/api/en/extras/Earcut.html

@@ -18,14 +18,17 @@
 
 		<h3>[method:Array triangulate]( data, holeIndices, dim )</h3>
 		<p>
-		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 />
+		data -- A flat array of vertex coordinates.<br />
+		holeIndices -- An array of hole indices if any.<br />
+		dim -- The number of coordinates per vertex in the input array.<br /><br />
 
+		Triangulates the given shape definition by returning an array of triangles. A triangle is defined by three consecutive integers representing vertex indices. 
 		</p>
 
 		<h2>Source</h2>
 
-		[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+		<p>
+			[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+		</p>
 	</body>
 </html>

+ 32 - 0
docs/api/en/extras/ImageUtils.html

@@ -0,0 +1,32 @@
+<!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>
+
+		<p class="desc">
+		A class containing utility functions for images.
+		</p>
+
+		<h2>Methods</h2>
+
+		<h3>[method:String getDataURL]( [param:HTMLCanvasElement image] | [param:HTMLImageElement image] | [param:ImageBitmap image] )</h3>
+		<p>
+		image -- The image object.<br /><br />
+
+		Returns a data URI containing a representation of the given image.
+		</p>
+
+		<h2>Source</h2>
+
+		<p>
+			[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+		</p>
+	</body>
+</html>

+ 80 - 0
docs/api/en/extras/PMREMGenerator.html

@@ -0,0 +1,80 @@
+<!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>
+
+		<p class="desc">
+			This class generates a Prefiltered, Mipmapped Radiance Environment Map (PMREM) from a cubeMap environment texture.
+			This allows different levels of blur to be quickly accessed based on material roughness. It is packed into a special
+			CubeUV format that allows us to perform custom interpolation so that we can support nonlinear formats such as RGBE.
+			Unlike a traditional mipmap chain, it only goes down to the LOD_MIN level (above), and then creates extra even more
+			filtered 'mips' at the same LOD_MIN resolution, associated with higher roughness levels. In this way we maintain
+			resolution to smoothly interpolate diffuse lighting while limiting sampling computation.
+		</p>
+
+		<h2>Constructor</h2>
+
+		<h3>[name]( [param:WebGLRenderer renderer] )</h3>
+		<p>
+		This constructor creates a new [name].
+		</p>
+
+		<h2>Methods</h2>
+
+		<h3>[method:WebGLRenderTarget fromScene]( [param:Scene scene], [param:Number sigma], [param:Number near], [param:Number far] )</h3>
+		<p>
+			[page:Scene scene] - The given scene.<br>
+			[page:Number sigma] - (optional) Specifies a blur radius in radians to be applied to the scene before PMREM generation. Default is *0*.<br>
+			[page:Number near] - (optional) The near plane value. Default is *0.1*.<br>
+			[page:Number far] - (optional) The far plane value. Default is *100*.<br /><br />
+
+			Generates a PMREM from a supplied Scene, which can be faster than using an image if networking bandwidth is low.
+			Optional near and far planes ensure the scene is rendered in its entirety (the cubeCamera is placed at the origin).
+		</p>
+
+		<h3>[method:WebGLRenderTarget fromEquirectangular]( [param:Texture equirectangular] )</h3>
+		<p>
+			[page:Texture equirectangular] - The equirectangular texture.<br /><br />
+
+			Generates a PMREM from an equirectangular texture, which can be either LDR (RGBFormat) or HDR (RGBEFormat).
+			The ideal input image size is 1k (1024 x 512), as this matches best with the 256 x 256 cubemap output.
+		</p>
+
+		<h3>[method:WebGLRenderTarget fromCubemap]( [param:CubeTexture cubemap] )</h3>
+		<p>
+			[page:CubeTexture cubemap] - The cubemap texture.<br /><br />
+
+			Generates a PMREM from an cubemap texture, which can be either LDR (RGBFormat) or HDR (RGBEFormat).
+			The ideal input cube size is 256 x 256, as this matches best with the 256 x 256 cubemap output.
+		</p>
+
+		<h3>[method:void compileCubemapShader]()</h3>
+		<p>
+			Pre-compiles the cubemap shader. You can get faster start-up by invoking this method during your texture's network fetch for increased concurrency.
+		</p>
+
+		<h3>[method:void compileEquirectangularShader]()</h3>
+		<p>
+			Pre-compiles the equirectangular shader. You can get faster start-up by invoking this method during your texture's network fetch for increased concurrency.
+		</p>
+
+		<h3>[method:void dispose]()</h3>
+		<p>
+			Disposes of the PMREMGenerator's internal memory. Note that PMREMGenerator is a static class, so you should not need more than one
+			PMREMGenerator object. If you do, calling dispose() on one of them will cause any others to also become unusable.
+		</p>
+
+		<h2>Source</h2>
+
+		<p>
+			[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+		</p>
+	</body>
+</html>

+ 5 - 4
docs/api/en/extras/ShapeUtils.html

@@ -24,11 +24,10 @@
 		<p>
 		contour -- 2D polygon. An array of THREE.Vector2()<br /><br />
 
-		Calculate area of a ( 2D ) contour polygon.<br /><br />
-
+		Calculate area of a ( 2D ) contour polygon.
 		</p>
 
-		<h3>[method:Boolean isClockwise]( pts )</h3>
+		<h3>[method:Boolean isClockWise]( pts )</h3>
 		<p>
 		pts -- points defining a 2D polygon<br /><br />
 
@@ -49,6 +48,8 @@
 
 		<h2>Source</h2>
 
-		[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+		<p>
+			[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+		</p>
 	</body>
 </html>

+ 13 - 3
docs/api/en/extras/core/Curve.html

@@ -79,15 +79,23 @@
 			using [page:.getPoint].
 		 </p>
 
-		<h3>[method:Vector getTangent]( [param:Float t] )</h3>
+		<h3>[method:Vector getTangent]( [param:Float t, [param:Vector optionalTarget] ] )</h3>
 		<p>
+			[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 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.
 		</p>
 
-		<h3>[method:Vector getTangentAt]( [param:Float u] )</h3>
+		<h3>[method:Vector getTangentAt]( [param:Float u, [param:Vector optionalTarget] ] )</h3>
 		<p>
+			[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 tangent at a point which is equidistant to the ends of the curve from the
 			point given in [page:.getTangent].
 		</p>
@@ -111,6 +119,8 @@
 
 		<h2>Source</h2>
 
-		[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+		<p>
+			[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+		</p>
 	</body>
 </html>

+ 23 - 1
docs/api/en/extras/core/CurvePath.html

@@ -52,9 +52,31 @@
 		<h3>[method:Float getCurveLengths]()</h3>
 		<p>Adds together the lengths of the curves in the [page:.curves] array.</p>
 
+		<h3>[method:Vector getPoint]( [param:Float t] )</h3>
+		<p>
+			[page:Float t] - A position on the curve. Must be in the range [ 0, 1 ]. <br><br />
+
+			Returns a vector for a given position on the curve path.
+		</p>
+
+		<h3>[method:Array getPoints]( [param:Integer divisions] )</h3>
+		<p>
+			divisions -- number of pieces to divide the curve into. Default is *12*.<br /><br />
+
+			Returns a set of divisions + 1 points using getPoint( t ).
+		</p>
+
+		<h3>[method:Array getSpacedPoints]( [param:Integer divisions] )</h3>
+		<p>
+			divisions -- number of pieces to divide the curve into. Default is *40*.<br /><br />
+
+			Returns a set of divisions + 1 equi-spaced points using getPointAt( u ).
+		</p>
 
 		<h2>Source</h2>
 
-		[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+		<p>
+			[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+		</p>
 	</body>
 </html>

+ 3 - 8
docs/api/en/extras/core/Font.html

@@ -37,13 +37,6 @@
 		<h3>[property:array data]</h3>
 		<p>The JSON data passed in the constructor.</p>
 
-		<h3>[property:Boolean isFont]</h3>
-		<p>
-			Used to check whether this or derived classes are fonts. Default is *true*.<br /><br />
-
-			You should not change this, as it used internally by the renderer for optimisation.
-		</p>
-
 		<h2>Methods</h2>
 
 		<h3>[method:null generateShapes]( [param:String text], [param:Float size] )</h3>
@@ -56,6 +49,8 @@
 
 		<h2>Source</h2>
 
-		[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+		<p>
+			[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+		</p>
 	</body>
 </html>

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

@@ -11,7 +11,7 @@
 		<h1>[name]</h1>
 
 		<p class="desc">
-		TODO
+			[name] contains spline and Bézier functions internally used by concrete curve classes.
 		</p>
 
 		<h2>Methods</h2>
@@ -42,6 +42,8 @@
 
 		<h2>Source</h2>
 
-		[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+		<p>
+			[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+		</p>
 	</body>
 </html>

+ 23 - 21
docs/api/en/extras/core/Path.html

@@ -16,22 +16,22 @@
 		A 2D path representation. The class provides methods for creating paths and contours of 2D shapes similar to the 2D Canvas API.
 		</p>
 
-		<h2>Example</h2>
+		<h2>Code Example</h2>
 
 		<code>
-			var path = new THREE.Path();
+		var path = new THREE.Path();
 
-			path.lineTo( 0, 0.8 );
-			path.quadraticCurveTo( 0, 1, 0.2, 1 );
-			path.lineTo( 1, 1 );
+		path.lineTo( 0, 0.8 );
+		path.quadraticCurveTo( 0, 1, 0.2, 1 );
+		path.lineTo( 1, 1 );
 
-			var points = path.getPoints();
+		var points = path.getPoints();
 
-			var geometry = new THREE.BufferGeometry().setFromPoints( points );
-			var material = new THREE.LineBasicMaterial( { color: 0xffffff } );
+		var geometry = new THREE.BufferGeometry().setFromPoints( points );
+		var material = new THREE.LineBasicMaterial( { color: 0xffffff } );
 
-			var line = new THREE.Line( geometry, material );
-			scene.add( line );
+		var line = new THREE.Line( geometry, material );
+		scene.add( line );
 		</code>
 
 
@@ -60,7 +60,7 @@
 		<h2>Methods</h2>
 		<p>See the base [page:CurvePath] class for common methods.</p>
 
-		<h3>[method:null absarc]( [param:Float x], [param:Float y], [param:Float radius], [param:Float startAngle], [param:Float endAngle], [param:Float clockwise] )</h3>
+		<h3>[method:this absarc]( [param:Float x], [param:Float y], [param:Float radius], [param:Float startAngle], [param:Float endAngle], [param:Boolean clockwise] )</h3>
 		<p>
 			x, y -- The absolute center of the arc.<br />
 			radius -- The radius of the arc.<br />
@@ -71,7 +71,7 @@
 			Adds an absolutely positioned [page:EllipseCurve EllipseCurve] to the path.
 		</p>
 
-		<h3>[method:null absellipse]( [param:Float x], [param:Float y], [param:Float xRadius], [param:Float yRadius], [param:Float startAngle], [param:Float endAngle], [param:Float clockwise], [param:Float rotation] )</h3>
+		<h3>[method:this absellipse]( [param:Float x], [param:Float y], [param:Float xRadius], [param:Float yRadius], [param:Float startAngle], [param:Float endAngle], [param:Boolean clockwise], [param:Float rotation] )</h3>
 		<p>
 			x, y -- The absolute center of the ellipse.<br />
 			xRadius -- The radius of the ellipse in the x axis.<br />
@@ -84,7 +84,7 @@
 			Adds an absolutely positioned [page:EllipseCurve EllipseCurve] to the path.
 		</p>
 
-		<h3>[method:null arc]( [param:Float x], [param:Float y], [param:Float radius], [param:Float startAngle], [param:Float endAngle], [param:Float clockwise] )</h3>
+		<h3>[method:this arc]( [param:Float x], [param:Float y], [param:Float radius], [param:Float startAngle], [param:Float endAngle], [param:Boolean clockwise] )</h3>
 		<p>
 		x, y -- The center of the arc offset from the last call.<br />
 		radius -- The radius of the arc.<br />
@@ -96,10 +96,10 @@
 		</p>
 
 
-		<h3>[method:null bezierCurveTo]( [param:Float cp1X], [param:Float cp1Y], [param:Float cp2X], [param:Float cp2Y], [param:Float x], [param:Float y] )</h3>
+		<h3>[method:this bezierCurveTo]( [param:Float cp1X], [param:Float cp1Y], [param:Float cp2X], [param:Float cp2Y], [param:Float x], [param:Float y] )</h3>
 		<p>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.</p>
 
-		<h3>[method:null ellipse]( [param:Float x], [param:Float y], [param:Float xRadius], [param:Float yRadius], [param:Float startAngle], [param:Float endAngle], [param:Float clockwise], [param:Float rotation] )</h3>
+		<h3>[method:this ellipse]( [param:Float x], [param:Float y], [param:Float xRadius], [param:Float yRadius], [param:Float startAngle], [param:Float endAngle], [param:Boolean clockwise], [param:Float rotation] )</h3>
 		<p>
 			x, y -- The center of the ellipse offset from the last call.<br />
 			xRadius -- The radius of the ellipse in the x axis.<br />
@@ -112,18 +112,18 @@
 			Adds an [page:EllipseCurve EllipseCurve] to the path, positioned relative to [page:.currentPoint].
 		</p>
 
-		<h3>[method:null lineTo]( [param:Float x], [param:Float y] )</h3>
+		<h3>[method:this lineTo]( [param:Float x], [param:Float y] )</h3>
 		<p>Connects a [page:LineCurve] from [page:.currentPoint] to x, y onto the path.</p>
 
 
-		<h3>[method:null moveTo]( [param:Float x], [param:Float y] )</h3>
+		<h3>[method:this moveTo]( [param:Float x], [param:Float y] )</h3>
 		<p>Move the [page:.currentPoint] to x, y.</p>
 
 
-		<h3>[method:null quadraticCurveTo]( [param:Float cpX], [param:Float cpY], [param:Float x], [param:Float y] )</h3>
+		<h3>[method:this quadraticCurveTo]( [param:Float cpX], [param:Float cpY], [param:Float x], [param:Float y] )</h3>
 		<p>Creates a quadratic curve from [page:.currentPoint] with cpX and cpY as control point and updates [page:.currentPoint] to x and y.</p>
 
-		<h3>[method:null setFromPoints]( [param:Array vector2s] )</h3>
+		<h3>[method:this setFromPoints]( [param:Array vector2s] )</h3>
 		<p>
 			points --  array of [page:Vector2 Vector2s].<br /><br />
 
@@ -131,7 +131,7 @@
 			array as [page:LineCurve LineCurves].
 		</p>
 
-		<h3>[method:null splineThru] ( [param:Array points] ) </h3>
+		<h3>[method:this splineThru] ( [param:Array points] ) </h3>
 		<p>
 			points - An array of [page:Vector2 Vector2s]<br /><br />
 
@@ -140,6 +140,8 @@
 
 		<h2>Source</h2>
 
-		[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+		<p>
+			[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+		</p>
 	</body>
 </html>

+ 6 - 2
docs/api/en/extras/core/Shape.html

@@ -17,6 +17,8 @@
 		[page:ShapeGeometry], to get points, or to get triangulated faces.
 		</p>
 
+		<h2>Code Example</h2>
+
 		<code>
 		var heartShape = new THREE.Shape();
 
@@ -30,7 +32,7 @@
 
 		var extrudeSettings = { amount: 8, bevelEnabled: true, bevelSegments: 2, steps: 2, bevelSize: 1, bevelThickness: 1 };
 
-		var geometry = new THREE.ExtrudeGeometry( heartShape, extrudeSettings );
+		var geometry = new THREE.ExtrudeBufferGeometry( heartShape, extrudeSettings );
 
 		var mesh = new THREE.Mesh( geometry, new THREE.MeshPhongMaterial() );
 		</code>
@@ -96,6 +98,8 @@
 
 		<h2>Source</h2>
 
-		[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+		<p>
+			[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+		</p>
 	</body>
 </html>

+ 12 - 11
docs/api/en/extras/core/ShapePath.html

@@ -8,8 +8,6 @@
 		<link type="text/css" rel="stylesheet" href="page.css" />
 	</head>
 	<body>
-		[page:Curve] &rarr; [page:CurvePath] &rarr;
-
 		<h1>[name]</h1>
 
 		<p class="desc">
@@ -18,9 +16,10 @@
 		series of paths.
 		</p>
 
-		<h2>Example</h2>
-
-		[example:webgl_geometry_extrude_shapes2 geometry / extrude / shapes2]
+		<h2>Examples</h2>
+		<p>
+			[example:webgl_geometry_extrude_shapes2 geometry / extrude / shapes2]
+		</p>
 
 		<h2>Constructor</h2>
 
@@ -49,27 +48,27 @@
 
 		<h2>Methods</h2>
 
-		<h3>[method:null moveTo]( [param:Float x], [param:Float y] )</h3>
+		<h3>[method:this moveTo]( [param:Float x], [param:Float y] )</h3>
 		<p>
 		Starts a new [page:Path] and calls [page:Path.moveTo]( x, y ) on that [page:Path].
 		Also points [page:ShapePath.currentPath currentPath] to that [page:Path].
 		</p>
 
-		<h3>[method:null lineTo]( [param:Float x], [param:Float y] )</h3>
+		<h3>[method:this lineTo]( [param:Float x], [param:Float y] )</h3>
 		<p>This creates a line from the [page:ShapePath.currentPath currentPath]'s
 			offset to X and Y and updates the offset to X and Y.</p>
 
-		<h3>[method:null quadraticCurveTo]( [param:Float cpX], [param:Float cpY], [param:Float x], [param:Float y] )</h3>
+		<h3>[method:this quadraticCurveTo]( [param:Float cpX], [param:Float cpY], [param:Float x], [param:Float y] )</h3>
 		<p>This creates a quadratic curve from the [page:ShapePath.currentPath currentPath]'s
 			offset to x and y with cpX and cpY as control point and updates the [page:ShapePath.currentPath currentPath]'s
 			offset to x and y.</p>
 
-		<h3>[method:null bezierCurveTo]( [param:Float cp1X], [param:Float cp1Y], [param:Float cp2X], [param:Float cp2Y], [param:Float x], [param:Float y] )</h3>
+		<h3>[method:this bezierCurveTo]( [param:Float cp1X], [param:Float cp1Y], [param:Float cp2X], [param:Float cp2Y], [param:Float x], [param:Float y] )</h3>
 		<p>This creates a bezier curve from the [page:ShapePath.currentPath currentPath]'s
 			 offset to x and y with cp1X, cp1Y and cp1X, cp1Y as control points and updates the
 			 [page:ShapePath.currentPath currentPath]'s offset to x and y.</p>
 
-		<h3>[method:null splineThru] ( [param:Array points] ) </h3>
+		<h3>[method:this splineThru] ( [param:Array points] ) </h3>
 		<p>points - An array of [page:Vector2]s</p>
 		<p>Connects a new [page:SplineCurve] onto the [page:ShapePath.currentPath currentPath].</p>
 
@@ -89,6 +88,8 @@
 
 		<h2>Source</h2>
 
-		[link:https://github.com/mrdoob/three.js/blob/master/src/extras/core/ShapePath.js src/extras/core/ShapePath.js]
+		<p>
+			[link:https://github.com/mrdoob/three.js/blob/master/src/extras/core/ShapePath.js src/extras/core/ShapePath.js]
+		</p>
 	</body>
 </html>

+ 4 - 9
docs/api/en/extras/curves/ArcCurve.html

@@ -12,21 +12,16 @@
 
 		<h1>[name]</h1>
 
-		<p class="desc">Alias for [page:EllipseCurve]</p>
+		<p class="desc">Alias for [page:EllipseCurve].</p>
 
 		<h2>Properties</h2>
 		<p>See the [page:EllipseCurve] class for common properties.</p>
 
-		<h3>[property:Boolean isArcCurve]</h3>
-		<p>
-			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.
-		</p>
-
 
 		<h2>Source</h2>
 
-		[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+		<p>
+			[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+		</p>
 	</body>
 </html>

+ 23 - 25
docs/api/en/extras/curves/CatmullRomCurve3.html

@@ -15,29 +15,32 @@
 		<p class="desc">Create a smooth 3d spline curve from a series of points using the
 			[link:https://en.wikipedia.org/wiki/Centripetal_Catmull-Rom_spline Catmull-Rom] algorithm.</p>
 
-		<h2>Example</h2>
+		<h2>Code Example</h2>
 
-<code>
-//Create a closed wavey loop
-var curve = new THREE.CatmullRomCurve3( [
-	new THREE.Vector3( -10, 0, 10 ),
-	new THREE.Vector3( -5, 5, 5 ),
-	new THREE.Vector3( 0, 0, 0 ),
-	new THREE.Vector3( 5, -5, 5 ),
-	new THREE.Vector3( 10, 0, 10 )
-] );
+		<code>
+		//Create a closed wavey loop
+		var curve = new THREE.CatmullRomCurve3( [
+			new THREE.Vector3( -10, 0, 10 ),
+			new THREE.Vector3( -5, 5, 5 ),
+			new THREE.Vector3( 0, 0, 0 ),
+			new THREE.Vector3( 5, -5, 5 ),
+			new THREE.Vector3( 10, 0, 10 )
+		] );
 
-var points = curve.getPoints( 50 );
-var geometry = new THREE.BufferGeometry().setFromPoints( points );
+		var points = curve.getPoints( 50 );
+		var geometry = new THREE.BufferGeometry().setFromPoints( points );
 
-var material = new THREE.LineBasicMaterial( { color : 0xff0000 } );
+		var material = new THREE.LineBasicMaterial( { color : 0xff0000 } );
 
-// Create the final object to add to the scene
-var curveObject = new THREE.Line( geometry, material );
-</code>
+		// Create the final object to add to the scene
+		var curveObject = new THREE.Line( geometry, material );
+		</code>
 
-		<h3>[example:webgl_geometry_extrude_splines geometry / extrude / splines]</h3>
+		<h2>Examples</h2>
 
+		<p>
+			[example:webgl_geometry_extrude_splines WebGL / geometry / extrude / splines]
+		</p>
 
 		<h2>Constructor</h2>
 
@@ -53,13 +56,6 @@ var curveObject = new THREE.Line( geometry, material );
 		<h2>Properties</h2>
 		<p>See the base [page:Curve] class for common properties.</p>
 
-		<h3>[property:Boolean isCatmullRomCurve3]</h3>
-		<p>
-			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.
-		</p>
-
 		<h3>[property:Array points]</h3>
 		<p>The array of [page:Vector3] points that define the curve. It needs at least two entries.</p>
 
@@ -76,6 +72,8 @@ var curveObject = new THREE.Line( geometry, material );
 		<h2>Methods</h2>
 		<p>See the base [page:Curve] class for common methods.</p>
 
-		[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+		<p>
+			[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+		</p>
 	</body>
 </html>

+ 17 - 22
docs/api/en/extras/curves/CubicBezierCurve.html

@@ -18,24 +18,24 @@
 			defined by a start point, endpoint and two control points.
 		</p>
 
-		<h2>Example</h2>
+		<h2>Code Example</h2>
 
-<code>
-var curve = new THREE.CubicBezierCurve(
-	new THREE.Vector2( -10, 0 ),
-	new THREE.Vector2( -5, 15 ),
-	new THREE.Vector2( 20, 15 ),
-	new THREE.Vector2( 10, 0 )
-);
+		<code>
+		var curve = new THREE.CubicBezierCurve(
+			new THREE.Vector2( -10, 0 ),
+			new THREE.Vector2( -5, 15 ),
+			new THREE.Vector2( 20, 15 ),
+			new THREE.Vector2( 10, 0 )
+		);
 
-var points = curve.getPoints( 50 );
-var geometry = new THREE.BufferGeometry().setFromPoints( points );
+		var points = curve.getPoints( 50 );
+		var geometry = new THREE.BufferGeometry().setFromPoints( points );
 
-var material = new THREE.LineBasicMaterial( { color : 0xff0000 } );
+		var material = new THREE.LineBasicMaterial( { color : 0xff0000 } );
 
-// Create the final object to add to the scene
-var curveObject = new THREE.Line( geometry, material );
-</code>
+		// Create the final object to add to the scene
+		var curveObject = new THREE.Line( geometry, material );
+		</code>
 
 		<h2>Constructor</h2>
 
@@ -51,13 +51,6 @@ var curveObject = new THREE.Line( geometry, material );
 		<h2>Properties</h2>
 		<p>See the base [page:Curve] class for common properties.</p>
 
-		<h3>[property:Boolean isCubicBezierCurve]</h3>
-		<p>
-			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.
-		</p>
-
 		<h3>[property:Vector2 v0]</h3>
 		<p>The starting point.</p>
 
@@ -76,6 +69,8 @@ var curveObject = new THREE.Line( geometry, material );
 
 		<h2>Source</h2>
 
-		[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+		<p>
+			[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+		</p>
 	</body>
 </html>

+ 17 - 22
docs/api/en/extras/curves/CubicBezierCurve3.html

@@ -18,25 +18,25 @@
 			defined by a start point, endpoint and two control points.
 		</p>
 
-		<h2>Example</h2>
+		<h2>Code Example</h2>
 
-<code>
-var curve = new THREE.CubicBezierCurve3(
-	new THREE.Vector3( -10, 0, 0 ),
-	new THREE.Vector3( -5, 15, 0 ),
-	new THREE.Vector3( 20, 15, 0 ),
-	new THREE.Vector3( 10, 0, 0 )
-);
+		<code>
+		var curve = new THREE.CubicBezierCurve3(
+			new THREE.Vector3( -10, 0, 0 ),
+			new THREE.Vector3( -5, 15, 0 ),
+			new THREE.Vector3( 20, 15, 0 ),
+			new THREE.Vector3( 10, 0, 0 )
+		);
 
-var points = curve.getPoints( 50 );
-var geometry = new THREE.BufferGeometry().setFromPoints( points );
+		var points = curve.getPoints( 50 );
+		var geometry = new THREE.BufferGeometry().setFromPoints( points );
 
-var material = new THREE.LineBasicMaterial( { color : 0xff0000 } );
+		var material = new THREE.LineBasicMaterial( { color : 0xff0000 } );
 
-// Create the final object to add to the scene
-var curveObject = new THREE.Line( geometry, material );
+		// Create the final object to add to the scene
+		var curveObject = new THREE.Line( geometry, material );
 
-</code>
+		</code>
 
 		<h2>Constructor</h2>
 
@@ -52,13 +52,6 @@ var curveObject = new THREE.Line( geometry, material );
 		<h2>Properties</h2>
 		<p>See the base [page:Curve] class for common properties.</p>
 
-		<h3>[property:Boolean isCubicBezierCurve3]</h3>
-		<p>
-			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.
-		</p>
-
 		<h3>[property:Vector2 v0]</h3>
 		<p>The starting point.</p>
 
@@ -77,6 +70,8 @@ var curveObject = new THREE.Line( geometry, material );
 
 		<h2>Source</h2>
 
-		[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+		<p>
+			[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+		</p>
 	</body>
 </html>

+ 20 - 27
docs/api/en/extras/curves/EllipseCurve.html

@@ -17,25 +17,25 @@
 			[page:Number xRadius] equal to the [page:Number yRadius] will result in a circle.
 		</p>
 
-		<h2>Example</h2>
+		<h2>Code Example</h2>
 
-<code>
-var curve = new THREE.EllipseCurve(
-	0,  0,            // ax, aY
-	10, 10,           // xRadius, yRadius
-	0,  2 * Math.PI,  // aStartAngle, aEndAngle
-	false,            // aClockwise
-	0                 // aRotation
-);
+		<code>
+		var curve = new THREE.EllipseCurve(
+			0,  0,            // ax, aY
+			10, 10,           // xRadius, yRadius
+			0,  2 * Math.PI,  // aStartAngle, aEndAngle
+			false,            // aClockwise
+			0                 // aRotation
+		);
 
-var points = curve.getPoints( 50 );
-var geometry = new THREE.BufferGeometry().setFromPoints( points );
+		var points = curve.getPoints( 50 );
+		var geometry = new THREE.BufferGeometry().setFromPoints( points );
 
-var material = new THREE.LineBasicMaterial( { color : 0xff0000 } );
+		var material = new THREE.LineBasicMaterial( { color : 0xff0000 } );
 
-// Create the final object to add to the scene
-var ellipse = new THREE.Line( geometry, material );
-</code>
+		// Create the final object to add to the scene
+		var ellipse = new THREE.Line( geometry, material );
+		</code>
 
 		<h2>Constructor</h2>
 
@@ -46,24 +46,15 @@ var ellipse = new THREE.Line( geometry, material );
 			[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:Radians aStartAngle] – The start angle of the curve in radians starting from the positive X axis.  Default is *0*.<br/>
+			[page:Radians aEndAngle] – The end angle of the curve in radians starting from the positive X axis. 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.
 		</p>
 
 		<h2>Properties</h2>
 		<p>See the base [page:Curve] class for common properties.</p>
 
-		<h3>[property:Boolean isEllipseCurve]</h3>
-		<p>
-			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.
-		</p>
-
 		<h3>[property:Float aX]</h3>
 		<p>The X center of the ellipse.</p>
 
@@ -94,6 +85,8 @@ var ellipse = new THREE.Line( geometry, material );
 
 		<h2>Source</h2>
 
-		[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+		<p>
+			[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+		</p>
 	</body>
 </html>

+ 3 - 8
docs/api/en/extras/curves/LineCurve.html

@@ -27,13 +27,6 @@
 		<h2>Properties</h2>
 		<p>See the base [page:Curve] class for common properties.</p>
 
-		<h3>[property:Boolean isLineCurve]</h3>
-		<p>
-			Used to check whether this or derived classes are LineCurves. Default is *true*.<br /><br />
-
-			You should not change this, as it used internally for optimisation.
-		</p>
-
 		<h3>[property:Vector2 v1]</h3>
 		<p>The start point.</p>
 
@@ -46,6 +39,8 @@
 
 		<h2>Source</h2>
 
-		[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+		<p>
+			[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+		</p>
 	</body>
 </html>

+ 3 - 8
docs/api/en/extras/curves/LineCurve3.html

@@ -27,13 +27,6 @@
 		<h2>Properties</h2>
 		<p>See the base [page:Curve] class for common properties.</p>
 
-		<h3>[property:Boolean isLineCurve3]</h3>
-		<p>
-			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.
-		</p>
-
 		<h3>[property:Vector3 v1]</h3>
 		<p>The start point.</p>
 
@@ -45,6 +38,8 @@
 
 		<h2>Source</h2>
 
-		[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+		<p>
+			[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+		</p>
 	</body>
 </html>

+ 16 - 22
docs/api/en/extras/curves/QuadraticBezierCurve.html

@@ -18,23 +18,23 @@
 			defined by a startpoint, endpoint and a single control point.
 		</p>
 
-		<h2>Example</h2>
+		<h2>Code Example</h2>
 
-<code>
-var curve = new THREE.QuadraticBezierCurve(
-	new THREE.Vector2( -10, 0 ),
-	new THREE.Vector2( 20, 15 ),
-	new THREE.Vector2( 10, 0 )
-);
+		<code>
+		var curve = new THREE.QuadraticBezierCurve(
+			new THREE.Vector2( -10, 0 ),
+			new THREE.Vector2( 20, 15 ),
+			new THREE.Vector2( 10, 0 )
+		);
 
-var points = curve.getPoints( 50 );
-var geometry = new THREE.BufferGeometry().setFromPoints( points );
+		var points = curve.getPoints( 50 );
+		var geometry = new THREE.BufferGeometry().setFromPoints( points );
 
-var material = new THREE.LineBasicMaterial( { color : 0xff0000 } );
+		var material = new THREE.LineBasicMaterial( { color : 0xff0000 } );
 
-//Create the final object to add to the scene
-var curveObject = new THREE.Line( geometry, material );
-</code>
+		//Create the final object to add to the scene
+		var curveObject = new THREE.Line( geometry, material );
+		</code>
 
 		<h2>Constructor</h2>
 
@@ -50,14 +50,6 @@ var curveObject = new THREE.Line( geometry, material );
 		<h2>Properties</h2>
 		<p>See the base [page:Curve] class for common properties.</p>
 
-		<h3>[property:Boolean isQuadraticBezierCurve]</h3>
-		<p>
-			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.
-		</p>
-
-
 		<h3>[property:Vector2 v0]</h3>
 		<p>The startpoint.</p>
 
@@ -72,6 +64,8 @@ var curveObject = new THREE.Line( geometry, material );
 
 		<h2>Source</h2>
 
-		[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+		<p>
+			[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+		</p>
 	</body>
 </html>

+ 16 - 21
docs/api/en/extras/curves/QuadraticBezierCurve3.html

@@ -18,23 +18,23 @@
 			defined by a startpoint, endpoint and a single control point.
 		</p>
 
-		<h2>Example</h2>
+		<h2>Code Example</h2>
 
-<code>
-var curve = new THREE.QuadraticBezierCurve3(
-	new THREE.Vector3( -10, 0, 0 ),
-	new THREE.Vector3( 20, 15, 0 ),
-	new THREE.Vector3( 10, 0, 0 )
-);
+		<code>
+		var curve = new THREE.QuadraticBezierCurve3(
+			new THREE.Vector3( -10, 0, 0 ),
+			new THREE.Vector3( 20, 15, 0 ),
+			new THREE.Vector3( 10, 0, 0 )
+		);
 
-var points = curve.getPoints( 50 );
-var geometry = new THREE.BufferGeometry().setFromPoints( points );
+		var points = curve.getPoints( 50 );
+		var geometry = new THREE.BufferGeometry().setFromPoints( points );
 
-var material = new THREE.LineBasicMaterial( { color : 0xff0000 } );
+		var material = new THREE.LineBasicMaterial( { color : 0xff0000 } );
 
-// Create the final object to add to the scene
-var curveObject = new THREE.Line( geometry, material );
-</code>
+		// Create the final object to add to the scene
+		var curveObject = new THREE.Line( geometry, material );
+		</code>
 
 		<h2>Constructor</h2>
 
@@ -51,13 +51,6 @@ var curveObject = new THREE.Line( geometry, material );
 		<h2>Properties</h2>
 		<p>See the base [page:Curve] class for common properties.</p>
 
-		<h3>[property:Boolean isQuadraticBezierCurve3]</h3>
-		<p>
-			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.
-		</p>
-
 		<h3>[property:Vector3 v0]</h3>
 		<p>The startpoint.</p>
 
@@ -72,6 +65,8 @@ var curveObject = new THREE.Line( geometry, material );
 
 		<h2>Source</h2>
 
-		[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+		<p>
+			[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+		</p>
 	</body>
 </html>

+ 19 - 24
docs/api/en/extras/curves/SplineCurve.html

@@ -17,26 +17,26 @@
 		[page:Interpolations.CatmullRom] to create the curve.
 		</p>
 
-		<h2>Example</h2>
+		<h2>Code 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 )
-] );
+		<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 points = curve.getPoints( 50 );
+		var geometry = new THREE.BufferGeometry().setFromPoints( points );
 
-var material = new THREE.LineBasicMaterial( { color : 0xff0000 } );
+		var material = new THREE.LineBasicMaterial( { color : 0xff0000 } );
 
-// Create the final object to add to the scene
-var splineObject = new THREE.Line( geometry, material );
-</code>
+		// Create the final object to add to the scene
+		var splineObject = new THREE.Line( geometry, material );
+		</code>
 
 		<h2>Constructor</h2>
 
@@ -48,13 +48,6 @@ var splineObject = new THREE.Line( geometry, material );
 		<h2>Properties</h2>
 		<p>See the base [page:Curve] class for common properties.</p>
 
-		<h3>[property:Boolean isSplineCurve]</h3>
-		<p>
-			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.
-		</p>
-
 		<h3>[property:Array points]</h3>
 		<p>The array of [page:Vector2] points that define the curve.</p>
 
@@ -67,6 +60,8 @@ var splineObject = new THREE.Line( geometry, material );
 
 		<h2>Source</h2>
 
-		[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+		<p>
+			[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+		</p>
 	</body>
 </html>

+ 3 - 1
docs/api/en/extras/objects/ImmediateRenderObject.html

@@ -37,6 +37,8 @@
 
 		<h2>Source</h2>
 
-		[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+		<p>
+			[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+		</p>
 	</body>
 </html>

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

@@ -32,7 +32,7 @@
 
 		</script>
 
-		<h2>Example</h2>
+		<h2>Code Example</h2>
 
 		<code>var geometry = new THREE.BoxBufferGeometry( 1, 1, 1 );
 		var material = new THREE.MeshBasicMaterial( {color: 0x00ff00} );
@@ -74,6 +74,8 @@
 
 		<h2>Source</h2>
 
-		[link:https://github.com/mrdoob/three.js/blob/master/src/geometries/BoxGeometry.js src/geometries/BoxGeometry.js]
+		<p>
+			[link:https://github.com/mrdoob/three.js/blob/master/src/geometries/BoxGeometry.js src/geometries/BoxGeometry.js]
+		</p>
 	</body>
 </html>

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

@@ -32,7 +32,7 @@
 
 		</script>
 
-		<h2>Example</h2>
+		<h2>Code Example</h2>
 
 		<code>var geometry = new THREE.BoxGeometry( 1, 1, 1 );
 		var material = new THREE.MeshBasicMaterial( {color: 0x00ff00} );
@@ -74,6 +74,8 @@
 
 		<h2>Source</h2>
 
-		[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+		<p>
+			[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+		</p>
 	</body>
 </html>

+ 4 - 2
docs/api/en/geometries/CircleBufferGeometry.html

@@ -32,7 +32,7 @@
 
 		</script>
 
-		<h2>Example</h2>
+		<h2>Code Example</h2>
 
 		<code>
 		var geometry = new THREE.CircleBufferGeometry( 5, 32 );
@@ -64,6 +64,8 @@
 
 		<h2>Source</h2>
 
-		[link:https://github.com/mrdoob/three.js/blob/master/src/geometries/CircleGeometry.js src/geometries/CircleGeometry.js]
+		<p>
+			[link:https://github.com/mrdoob/three.js/blob/master/src/geometries/CircleGeometry.js src/geometries/CircleGeometry.js]
+		</p>
 	</body>
 </html>

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

@@ -33,7 +33,7 @@
 
 		</script>
 
-		<h2>Example</h2>
+		<h2>Code Example</h2>
 
 		<code>
 		var geometry = new THREE.CircleGeometry( 5, 32 );
@@ -65,6 +65,8 @@
 
 		<h2>Source</h2>
 
-		[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+		<p>
+			[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+		</p>
 	</body>
 </html>

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

@@ -32,7 +32,7 @@
 
 		</script>
 
-		<h2>Example</h2>
+		<h2>Code Example</h2>
 
 		<code>var geometry = new THREE.ConeBufferGeometry( 5, 20, 32 );
 		var material = new THREE.MeshBasicMaterial( {color: 0xffff00} );
@@ -66,6 +66,8 @@
 
 		<h2>Source</h2>
 
-		[link:https://github.com/mrdoob/three.js/blob/master/src/geometries/ConeGeometry.js src/geometries/ConeGeometry.js]
+		<p>
+			[link:https://github.com/mrdoob/three.js/blob/master/src/geometries/ConeGeometry.js src/geometries/ConeGeometry.js]
+		</p>	
 	</body>
 </html>

+ 4 - 2
docs/api/en/geometries/ConeGeometry.html

@@ -32,7 +32,7 @@
 
 		</script>
 
-		<h2>Example</h2>
+		<h2>Code Example</h2>
 
 		<code>var geometry = new THREE.ConeGeometry( 5, 20, 32 );
 		var material = new THREE.MeshBasicMaterial( {color: 0xffff00} );
@@ -66,6 +66,8 @@
 
 		<h2>Source</h2>
 
-		[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+		<p>
+			[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+		</p>
 	</body>
 </html>

+ 4 - 2
docs/api/en/geometries/CylinderBufferGeometry.html

@@ -32,7 +32,7 @@
 
 		</script>
 
-		<h2>Example</h2>
+		<h2>Code Example</h2>
 
 		<code>var geometry = new THREE.CylinderBufferGeometry( 5, 5, 20, 32 );
 		var material = new THREE.MeshBasicMaterial( {color: 0xffff00} );
@@ -67,6 +67,8 @@
 
 		<h2>Source</h2>
 
-		[link:https://github.com/mrdoob/three.js/blob/master/src/geometries/CylinderGeometry.js src/geometries/CylinderGeometry.js]
+		<p>
+			[link:https://github.com/mrdoob/three.js/blob/master/src/geometries/CylinderGeometry.js src/geometries/CylinderGeometry.js]
+		</p>
 	</body>
 </html>

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

@@ -32,7 +32,7 @@
 
 		</script>
 
-		<h2>Example</h2>
+		<h2>Code Example</h2>
 
 		<code>var geometry = new THREE.CylinderGeometry( 5, 5, 20, 32 );
 		var material = new THREE.MeshBasicMaterial( {color: 0xffff00} );
@@ -67,6 +67,8 @@
 
 		<h2>Source</h2>
 
-		[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+		<p>
+			[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+		</p>
 	</body>
 </html>

+ 3 - 1
docs/api/en/geometries/DodecahedronBufferGeometry.html

@@ -53,6 +53,8 @@
 
 		<h2>Source</h2>
 
-		[link:https://github.com/mrdoob/three.js/blob/master/src/geometries/DodecahedronGeometry.js src/geometries/DodecahedronGeometry.js]
+		<p>
+			[link:https://github.com/mrdoob/three.js/blob/master/src/geometries/DodecahedronGeometry.js src/geometries/DodecahedronGeometry.js]
+		</p>
 	</body>
 </html>

+ 3 - 1
docs/api/en/geometries/DodecahedronGeometry.html

@@ -53,6 +53,8 @@
 
 		<h2>Source</h2>
 
-		[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+		<p>
+			[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+		</p>
 	</body>
 </html>

+ 9 - 4
docs/api/en/geometries/EdgesGeometry.html

@@ -14,9 +14,7 @@
 
 		<p class="desc">This can be used as a helper object to view the edges of a [page:Geometry Geometry] object.</p>
 
-		<h2>Example</h2>
-
-		[example:webgl_helpers helpers]
+		<h2>Code Example</h2>
 
 		<code>
 var geometry = new THREE.BoxBufferGeometry( 100, 100, 100 );
@@ -25,6 +23,11 @@ var line = new THREE.LineSegments( edges, new THREE.LineBasicMaterial( { color:
 scene.add( line );
 		</code>
 
+		<h2>Examples</h2>
+		<p>
+			[example:webgl_helpers helpers]
+		</p>
+
 		<h2>Constructor</h2>
 
 		<h3>[name]( [param:Geometry geometry], [param:Integer thresholdAngle] )</h3>
@@ -46,6 +49,8 @@ scene.add( line );
 
 		<h2>Source</h2>
 
-		[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+		<p>
+			[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+		</p>
 	</body>
 </html>

+ 4 - 2
docs/api/en/geometries/ExtrudeBufferGeometry.html

@@ -32,7 +32,7 @@
 
 		</script>
 
-		<h2>Example</h2>
+		<h2>Code Example</h2>
 
 
 		<code>
@@ -107,6 +107,8 @@
 
 		<h2>Source</h2>
 
-		[link:https://github.com/mrdoob/three.js/blob/master/src/geometries/ExtrudeGeometry.js src/geometries/ExtrudeGeometry.js]
+		<p>
+			[link:https://github.com/mrdoob/three.js/blob/master/src/geometries/ExtrudeGeometry.js src/geometries/ExtrudeGeometry.js]
+		</p>
 	</body>
 </html>

+ 4 - 2
docs/api/en/geometries/ExtrudeGeometry.html

@@ -32,7 +32,7 @@
 
 		</script>
 
-		<h2>Example</h2>
+		<h2>Code Example</h2>
 
 
 		<code>
@@ -107,6 +107,8 @@
 
 		<h2>Source</h2>
 
-		[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+		<p>
+			[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+		</p>
 	</body>
 </html>

+ 3 - 1
docs/api/en/geometries/IcosahedronBufferGeometry.html

@@ -52,6 +52,8 @@
 
 		<h2>Source</h2>
 
-		[link:https://github.com/mrdoob/three.js/blob/master/src/geometries/IcosahedronGeometry.js src/geometries/IcosahedronGeometry.js]
+		<p>
+			[link:https://github.com/mrdoob/three.js/blob/master/src/geometries/IcosahedronGeometry.js src/geometries/IcosahedronGeometry.js]
+		</p>
 	</body>
 </html>

+ 3 - 1
docs/api/en/geometries/IcosahedronGeometry.html

@@ -53,6 +53,8 @@
 
 		<h2>Source</h2>
 
-		[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+		<p>
+			[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+		</p>
 	</body>
 </html>

+ 4 - 2
docs/api/en/geometries/LatheBufferGeometry.html

@@ -32,7 +32,7 @@
 
 		</script>
 
-		<h2>Example</h2>
+		<h2>Code Example</h2>
 
 		<code>
 		var points = [];
@@ -71,6 +71,8 @@
 
 		<h2>Source</h2>
 
-		[link:https://github.com/mrdoob/three.js/blob/master/src/geometries/LatheGeometry.js src/geometries/LatheGeometry.js]
+		<p>
+			[link:https://github.com/mrdoob/three.js/blob/master/src/geometries/LatheGeometry.js src/geometries/LatheGeometry.js]
+		</p>
 	</body>
 </html>

+ 4 - 2
docs/api/en/geometries/LatheGeometry.html

@@ -32,7 +32,7 @@
 
 		</script>
 
-		<h2>Example</h2>
+		<h2>Code Example</h2>
 
 		<code>
 		var points = [];
@@ -71,6 +71,8 @@
 
 		<h2>Source</h2>
 
-		[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+		<p>
+			[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+		</p>
 	</body>
 </html>

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