2
0
Эх сурвалжийг харах

Merge remote-tracking branch 'upstream/dev' into dev32

Mugen87 5 жил өмнө
parent
commit
41604abe45
100 өөрчлөгдсөн 2039 нэмэгдсэн , 2104 устгасан
  1. 3 2
      .github/CONTRIBUTING.md
  2. 1 1
      .github/ISSUE_TEMPLATE.md
  3. 89 0
      .github/workflows/ci.yml
  4. 2 2
      .gitignore
  5. 0 5
      .travis.yml
  6. 18 13
      README.md
  7. 304 192
      build/three.js
  8. 581 582
      build/three.min.js
  9. 317 205
      build/three.module.js
  10. 1 1
      docs/api/en/animation/KeyframeTrack.html
  11. 7 7
      docs/api/en/audio/Audio.html
  12. 7 7
      docs/api/en/audio/AudioAnalyser.html
  13. 1 1
      docs/api/en/audio/AudioContext.html
  14. 8 8
      docs/api/en/audio/AudioListener.html
  15. 9 9
      docs/api/en/audio/PositionalAudio.html
  16. 1 1
      docs/api/en/cameras/ArrayCamera.html
  17. 19 19
      docs/api/en/cameras/CubeCamera.html
  18. 17 13
      docs/api/en/cameras/OrthographicCamera.html
  19. 13 9
      docs/api/en/cameras/PerspectiveCamera.html
  20. 4 12
      docs/api/en/cameras/StereoCamera.html
  21. 5 5
      docs/api/en/constants/CustomBlendingEquations.html
  22. 0 14
      docs/api/en/constants/Materials.html
  23. 1 4
      docs/api/en/constants/Renderer.html
  24. 40 1
      docs/api/en/constants/Textures.html
  25. 3 1
      docs/api/en/core/BufferGeometry.html
  26. 15 15
      docs/api/en/core/EventDispatcher.html
  27. 27 26
      docs/api/en/core/Face3.html
  28. 17 13
      docs/api/en/core/Geometry.html
  29. 4 10
      docs/api/en/core/InstancedBufferGeometry.html
  30. 1 1
      docs/api/en/core/InterleavedBuffer.html
  31. 2 1
      docs/api/en/core/Object3D.html
  32. 20 14
      docs/api/en/core/Raycaster.html
  33. 62 6
      docs/api/en/core/Uniform.html
  34. 9 3
      docs/api/en/core/bufferAttributeTypes/BufferAttributeTypes.html
  35. 0 619
      docs/api/en/deprecated/DeprecatedList.html
  36. 4 3
      docs/api/en/extras/Earcut.html
  37. 1 2
      docs/api/en/extras/ShapeUtils.html
  38. 11 3
      docs/api/en/extras/core/Curve.html
  39. 20 0
      docs/api/en/extras/core/CurvePath.html
  40. 1 1
      docs/api/en/extras/core/Interpolations.html
  41. 10 10
      docs/api/en/extras/core/Path.html
  42. 3 1
      docs/api/en/extras/core/Shape.html
  43. 7 4
      docs/api/en/extras/core/ShapePath.html
  44. 1 1
      docs/api/en/extras/curves/ArcCurve.html
  45. 23 19
      docs/api/en/extras/curves/CatmullRomCurve3.html
  46. 14 14
      docs/api/en/extras/curves/CubicBezierCurve.html
  47. 14 14
      docs/api/en/extras/curves/CubicBezierCurve3.html
  48. 15 15
      docs/api/en/extras/curves/EllipseCurve.html
  49. 13 13
      docs/api/en/extras/curves/QuadraticBezierCurve.html
  50. 13 13
      docs/api/en/extras/curves/QuadraticBezierCurve3.html
  51. 20 20
      docs/api/en/extras/curves/SplineCurve.html
  52. 81 5
      docs/api/en/extras/objects/ImmediateRenderObject.html
  53. 4 2
      docs/api/en/geometries/BoxBufferGeometry.html
  54. 1 1
      docs/api/en/geometries/BoxGeometry.html
  55. 4 2
      docs/api/en/geometries/CircleBufferGeometry.html
  56. 1 1
      docs/api/en/geometries/CircleGeometry.html
  57. 4 2
      docs/api/en/geometries/ConeBufferGeometry.html
  58. 1 1
      docs/api/en/geometries/ConeGeometry.html
  59. 4 2
      docs/api/en/geometries/CylinderBufferGeometry.html
  60. 1 1
      docs/api/en/geometries/CylinderGeometry.html
  61. 3 1
      docs/api/en/geometries/DodecahedronBufferGeometry.html
  62. 6 3
      docs/api/en/geometries/EdgesGeometry.html
  63. 4 2
      docs/api/en/geometries/ExtrudeBufferGeometry.html
  64. 1 1
      docs/api/en/geometries/ExtrudeGeometry.html
  65. 3 1
      docs/api/en/geometries/IcosahedronBufferGeometry.html
  66. 4 2
      docs/api/en/geometries/LatheBufferGeometry.html
  67. 1 1
      docs/api/en/geometries/LatheGeometry.html
  68. 3 1
      docs/api/en/geometries/OctahedronBufferGeometry.html
  69. 4 2
      docs/api/en/geometries/ParametricBufferGeometry.html
  70. 1 1
      docs/api/en/geometries/ParametricGeometry.html
  71. 4 2
      docs/api/en/geometries/PlaneBufferGeometry.html
  72. 1 1
      docs/api/en/geometries/PlaneGeometry.html
  73. 4 2
      docs/api/en/geometries/PolyhedronBufferGeometry.html
  74. 1 1
      docs/api/en/geometries/PolyhedronGeometry.html
  75. 4 2
      docs/api/en/geometries/RingBufferGeometry.html
  76. 1 1
      docs/api/en/geometries/RingGeometry.html
  77. 4 2
      docs/api/en/geometries/ShapeBufferGeometry.html
  78. 1 1
      docs/api/en/geometries/ShapeGeometry.html
  79. 4 2
      docs/api/en/geometries/SphereBufferGeometry.html
  80. 1 1
      docs/api/en/geometries/SphereGeometry.html
  81. 3 1
      docs/api/en/geometries/TetrahedronBufferGeometry.html
  82. 10 6
      docs/api/en/geometries/TextBufferGeometry.html
  83. 7 5
      docs/api/en/geometries/TextGeometry.html
  84. 4 2
      docs/api/en/geometries/TorusBufferGeometry.html
  85. 1 1
      docs/api/en/geometries/TorusGeometry.html
  86. 4 2
      docs/api/en/geometries/TorusKnotBufferGeometry.html
  87. 1 1
      docs/api/en/geometries/TorusKnotGeometry.html
  88. 5 3
      docs/api/en/geometries/TubeBufferGeometry.html
  89. 2 2
      docs/api/en/geometries/TubeGeometry.html
  90. 14 28
      docs/api/en/geometries/WireframeGeometry.html
  91. 9 7
      docs/api/en/helpers/ArrowHelper.html
  92. 10 7
      docs/api/en/helpers/AxesHelper.html
  93. 1 1
      docs/api/en/helpers/Box3Helper.html
  94. 10 9
      docs/api/en/helpers/BoxHelper.html
  95. 6 6
      docs/api/en/helpers/CameraHelper.html
  96. 1 4
      docs/api/en/helpers/DirectionalLightHelper.html
  97. 7 5
      docs/api/en/helpers/GridHelper.html
  98. 4 4
      docs/api/en/helpers/HemisphereLightHelper.html
  99. 1 1
      docs/api/en/helpers/PlaneHelper.html
  100. 5 7
      docs/api/en/helpers/PointLightHelper.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.

+ 1 - 1
.github/ISSUE_TEMPLATE.md

@@ -17,7 +17,7 @@ Please also include a live example if possible. You can start from these templat
 ##### Three.js version
 
 - [ ] Dev
-- [ ] r113
+- [ ] r116
 - [ ] ...
 
 ##### Browser

+ 89 - 0
.github/workflows/ci.yml

@@ -0,0 +1,89 @@
+name: CI
+
+on:
+  pull_request:
+    paths-ignore:
+      - 'build/**'
+      - 'docs/**'
+      - 'files/**'
+  push:
+    paths-ignore:
+      - 'build/**'
+      - 'docs/**'
+      - 'files/**'
+
+jobs:
+
+  lint:
+    name: "Linting"
+    runs-on: ubuntu-latest
+    steps:
+      - name: Git checkout
+        uses: actions/checkout@v2
+      - name: Install node
+        uses: actions/setup-node@v1
+        with:
+          node-version: 10
+      - name: Install packages
+        run: npm ci
+
+      - name: === Linting ===
+        run: npm run test-lint
+
+  unit:
+    name: "Unit testing"
+    runs-on: ubuntu-latest
+    steps:
+      - name: Git checkout
+        uses: actions/checkout@v2
+      - name: Install node
+        uses: actions/setup-node@v1
+        with:
+          node-version: 10
+      - name: Install packages
+        run: npm ci && npm ci --prefix test
+      - name: Build
+        run: npm run build
+
+      - name: === Unit testing ===
+        run: npm run test-unit
+
+  e2e:
+    name: "E2E testing"
+    runs-on: ubuntu-latest
+    strategy:
+      matrix:
+        CI: [ 0, 1, 2, 3 ]
+    env:
+      CI: ${{ matrix.CI }}
+      FORCE_COLOR: 1
+    steps:
+      - name: Git checkout
+        uses: actions/checkout@v2
+      - name: Install node
+        uses: actions/setup-node@v1
+        with:
+          node-version: 10
+      - name: Install packages
+        run: npm ci && npm ci --prefix test && sudo apt-get install xvfb
+      - name: Build
+        run: npm run build
+
+      - name: === E2E testing ===
+        run: xvfb-run --auto-servernum npm run test-e2e
+
+  e2e-cov:
+    name: "Ready for release"
+    runs-on: ubuntu-latest
+    steps:
+      - name: Git checkout
+        uses: actions/checkout@v2
+      - name: Install node
+        uses: actions/setup-node@v1
+        with:
+          node-version: 10
+      - name: Install packages
+        run: npm ci
+
+      - name: === Ready for release ===
+        run: npm run test-e2e-cov

+ 2 - 2
.gitignore

@@ -1,10 +1,10 @@
 .DS_Store
 *.swp
 .project
-node_modules
 .idea/
 .vscode/
 npm-debug.log
 .jshintrc
 .vs/
-test/unit/three.*.unit.js
+**/node_modules
+test/unit/build

+ 0 - 5
.travis.yml

@@ -1,5 +0,0 @@
-language: node_js
-node_js:
-  - node
-script:
-  - npm run travis

+ 18 - 13
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,8 +17,8 @@ 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 ###
 
@@ -65,22 +64,28 @@ 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/).
+
+### Cloning this repository ###
+
+Cloning the repo with all its history results in a ~2GB download. If you don't need the whole history you can use the `depth` parameter to significantly reduce download size.
+
+```sh
+git clone --depth=1 https://github.com/mrdoob/three.js.git
+```
 
 ### 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/

Файлын зөрүү хэтэрхий том тул дарагдсан байна
+ 304 - 192
build/three.js


Файлын зөрүү хэтэрхий том тул дарагдсан байна
+ 581 - 582
build/three.min.js


Файлын зөрүү хэтэрхий том тул дарагдсан байна
+ 317 - 205
build/three.module.js


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

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

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

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

@@ -29,7 +29,7 @@
 		otherwise set it to a new [link:https://developer.mozilla.org/en-US/docs/Web/API/AudioContext AudioContext].
 		</p>
 
-		<h3>[method:AudioContext setContext]( [param:AudioConetxt value] )</h3>
+		<h3>[method:AudioContext setContext]( [param:AudioContext value] )</h3>
 		<p>
 		 Set the variable *context* in the outer scope to *value*.
 		</p>

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

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

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

+ 19 - 19
docs/api/en/cameras/CubeCamera.html

@@ -14,17 +14,18 @@
 
 		<p class="desc">Creates 6 cameras that render to a [page:WebGLCubeRenderTarget].</p>
 
-		<h2>Examples</h2>
+		<h2>Code Example</h2>
 
-		<p>[example:webgl_materials_cubemap_dynamic materials / cubemap / dynamic ]</p>
-		<p>[example:webgl_shading_physical shading / physical ]</p>
+		<code>
+		// Create cube render target
+		var cubeRenderTarget = new THREE.WebGLCubeRenderTarget( 128, { format: THREE.RGBFormat, generateMipmaps: true, minFilter: THREE.LinearMipmapLinearFilter } );
 
-		<code>// Create cube camera
-		var cubeCamera = new THREE.CubeCamera( 1, 100000, 128 );
+		// Create cube camera
+		var cubeCamera = new THREE.CubeCamera( 1, 100000, cubeRenderTarget );
 		scene.add( cubeCamera );
 
 		// Create car
-		var chromeMaterial = new THREE.MeshLambertMaterial( { color: 0xffffff, envMap: cubeCamera.renderTarget.texture } );
+		var chromeMaterial = new THREE.MeshLambertMaterial( { color: 0xffffff, envMap: cubeRenderTarget.texture } );
 		var car = new Mesh( carGeometry, chromeMaterial );
 		scene.add( car );
 
@@ -38,40 +39,39 @@
 		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>
 
 
-		<h3>[name]( [param:Number near], [param:Number far], [param:Number cubeResolution], [param:Object options] )</h3>
+		<h3>[name]( [param:Number near], [param:Number far], [param:WebGLCubeRenderTarget renderTarget] )</h3>
 		<p>
 		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 WebGLCubeRenderTarget.
-		If not specified, the options default to:
-		<code>
-		{ format: RGBFormat, magFilter: LinearFilter, minFilter: LinearFilter }
-		</code>
-
+		far -- The far clipping distance. <br />
+		renderTarget -- The destination cube render target.
 		</p>
+
 		<p>
 		Constructs a CubeCamera that contains 6 [page:PerspectiveCamera PerspectiveCameras] that
 		render to a [page:WebGLCubeRenderTarget].
 		</p>
 
-
 		<h2>Properties</h2>
 		<p>See the base [page:Object3D] class for common properties.</p>
 
 		<h3>[property:WebGLCubeRenderTarget renderTarget]</h3>
 		<p>
-		The cube texture that gets generated.
+		The destination cube render target.
 		</p>
 
 		<h2>Methods</h2>
 		<p>See the base [page:Object3D] class for common methods.</p>
 
-
 		<h3>[method:null update]( [param:WebGLRenderer renderer], [param:Scene scene] )</h3>
 		<p>
 		renderer -- The current WebGL renderer <br />
@@ -83,7 +83,7 @@
 
 		<h3>[method:null clear]( [param:WebGLRenderer renderer], [param:Boolean color], [param:Boolean depth], [param:Boolean stencil] )</h3>
 		<p>
-		Call this to clear the [page:CubeCamera.renderTarget renderTarget] color, depth, and/or stencil buffers.
+		Call this to clear the renderTarget's color, depth, and/or stencil buffers.
 		The color buffer is set to the renderer's current clear color. Arguments default to *true*.
 		</p>
 

+ 17 - 13
docs/api/en/cameras/OrthographicCamera.html

@@ -21,22 +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>
-
-		<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>
 

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

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

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

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

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

@@ -46,7 +46,7 @@
 
 		[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.<br />
+		[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>
 
@@ -64,9 +64,6 @@
 		This is used to approximate the appearance of high dynamic range (HDR) on the
 		low dynamic range medium of a standard computer monitor or mobile device's screen.<br /><br />
 
-		[page:constant NoToneMapping] disables tone mapping.<br />
-		[page:constant LinearToneMapping] is the default.<br /><br />
-
 		See the [example:webgl_tonemapping WebGL / tonemapping] example.
 
 		</p>

+ 40 - 1
docs/api/en/constants/Textures.html

@@ -262,11 +262,50 @@
 		<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>

+ 3 - 1
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
@@ -42,6 +42,8 @@
 		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 />

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

+ 27 - 26
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, 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 );
+		//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>
 
 

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

+ 4 - 10
docs/api/en/core/InstancedBufferGeometry.html

@@ -22,21 +22,15 @@
 		</p>
 
 		<h2>Properties</h2>
-		See [page:BufferGeometry] for inherited properties.
+		<p>See [page:BufferGeometry] for inherited properties.</p>
 
-		<h3>[property:Number maxInstancedCount]</h3>
+		<h3>[property:Number instanceCount]</h3>
 		<p>
-			Default is *undefined*.
+			Default is *Infinity*.
 		</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>
 

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

+ 2 - 1
docs/api/en/core/Object3D.html

@@ -61,7 +61,8 @@
 		<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>

+ 20 - 14
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,8 +54,11 @@
 		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 />
@@ -64,13 +67,8 @@
 			[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>
@@ -93,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.
@@ -112,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:
@@ -119,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>

+ 62 - 6
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
@@ -186,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>
@@ -206,8 +263,7 @@
 		<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>

+ 9 - 3
docs/api/en/core/bufferAttributeTypes/BufferAttributeTypes.html

@@ -46,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 - 619
docs/api/en/deprecated/DeprecatedList.html

@@ -1,619 +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.setUsage]( THREE.DynamicDrawUsage ) 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>
-
-
-
-
-
-
-
-		<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 />
-
-			BufferGeometry.applyMatrix() has been renamed to [page:BufferGeometry.applyMatrix4]().
-		</p>
-
-
-
-
-		<h3>[page:CubeGeometry]</h3>
-		<p>CubeGeometry has been renamed to [page:BoxGeometry].</p>
-
-
-
-		<h3>[page:Geometry]</h3>
-		<p>
-			Geometry.computeTangents() has been removed.<br /><br />
-
-			Geometry.computeLineDistances() has been removed. Use [page:Line.computeLineDistances] instead.<br /><br />
-
-			Geometry.applyMatrix() has been renamed to [page:Geometry.applyMatrix4]().
-		</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>Math</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:Frustum]</h3>
-		<p>Frustum.setFromMatrix() has been renamed to [page:Frustum.setFromProjectionMatrix]().</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.applyToBufferAttribute() has been removed. Use [page:BufferAttribute.applyMatrix3]( matrix ) 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.applyToBufferAttribute() has been removed. Use [page:BufferAttribute.applyMatrix4]( matrix ) 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.<br /><br />
-
-			Object3D.applyMatrix() has been renamed to [page:Object3D.applyMatrix4]().
-
-		</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>
-
-		<p>
-			[link:https://github.com/mrdoob/three.js/blob/master/src/Three.Legacy.js src/Three.Legacy.js]
-		</p>
-
-		</body>
-</html>

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

@@ -18,10 +18,11 @@
 
 		<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>

+ 1 - 2
docs/api/en/extras/ShapeUtils.html

@@ -24,8 +24,7 @@
 		<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>

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

@@ -79,22 +79,30 @@
 			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>
 
 		<h3>[method:Object computeFrenetFrames]( [param:Integer segments], [param:Boolean closed] )</h3>
 		<p>
-		Generates the Frenet Frames. Used in geometries like [page:TubeGeometry] or [page:ExtrudeGeometry].
+		Generates the Frenet Frames. Requires a curve definition in 3D space. Used in geometries like [page:TubeGeometry] or [page:ExtrudeGeometry].
 		</p>
 
 		<h3>[method:Curve clone]()</h3>

+ 20 - 0
docs/api/en/extras/core/CurvePath.html

@@ -52,6 +52,26 @@
 		<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>
 

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

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

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

+ 7 - 4
docs/api/en/extras/core/ShapePath.html

@@ -16,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>
 
@@ -87,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>

+ 1 - 1
docs/api/en/extras/curves/ArcCurve.html

@@ -12,7 +12,7 @@
 
 		<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>

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

@@ -15,30 +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>
 
-		<p>
-			[example:webgl_geometry_extrude_splines WebGL / geometry / extrude / splines]
-		</p>
+		<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 );
 
-<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 material = new THREE.LineBasicMaterial( { color : 0xff0000 } );
 
-var points = curve.getPoints( 50 );
-var geometry = new THREE.BufferGeometry().setFromPoints( points );
+		// Create the final object to add to the scene
+		var curveObject = new THREE.Line( geometry, material );
+		</code>
 
-var material = new THREE.LineBasicMaterial( { color : 0xff0000 } );
+		<h2>Examples</h2>
 
-// Create the final object to add to the scene
-var curveObject = new THREE.Line( geometry, material );
-</code>
+		<p>
+			[example:webgl_geometry_extrude_splines WebGL / geometry / extrude / splines]
+		</p>
 
 		<h2>Constructor</h2>
 
@@ -70,6 +72,8 @@ var curveObject = new THREE.Line( geometry, material );
 		<h2>Methods</h2>
 		<p>See the base [page:Curve] class for common methods.</p>
 
+		<h2>Source</h2>
+
 		<p>
 			[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
 		</p>

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

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

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

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

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

+ 20 - 20
docs/api/en/extras/curves/SplineCurve.html

@@ -17,26 +17,26 @@
 		[page:Interpolations.CatmullRom] to create the curve.
 		</p>
 
-		<h2>Example</h2>
-
-<code>
-// Create a sine-like wave
-var curve = new THREE.SplineCurve( [
-	new THREE.Vector2( -10, 0 ),
-	new THREE.Vector2( -5, 5 ),
-	new THREE.Vector2( 0, 0 ),
-	new THREE.Vector2( 5, -5 ),
-	new THREE.Vector2( 10, 0 )
-] );
-
-var points = curve.getPoints( 50 );
-var geometry = new THREE.BufferGeometry().setFromPoints( points );
-
-var material = new THREE.LineBasicMaterial( { color : 0xff0000 } );
-
-// Create the final object to add to the scene
-var splineObject = new THREE.Line( geometry, material );
-</code>
+		<h2>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 )
+		] );
+
+		var points = curve.getPoints( 50 );
+		var geometry = new THREE.BufferGeometry().setFromPoints( points );
+
+		var material = new THREE.LineBasicMaterial( { color : 0xff0000 } );
+
+		// Create the final object to add to the scene
+		var splineObject = new THREE.Line( geometry, material );
+		</code>
 
 		<h2>Constructor</h2>
 

+ 81 - 5
docs/api/en/extras/objects/ImmediateRenderObject.html

@@ -12,27 +12,103 @@
 
 		<h1>[name]</h1>
 
-		<p class="desc">base class for immediate rendering objects.</p>
+		<p class="desc">
+			This experimental class provides a fast code path for rendering meshes with frequently updated
+			geometry data. When the renderer encounters an instance of [name], it only takes care about
+			the most primitive rendering operations (e.g. binding vertex attributes, determining correct shader
+			program or perfoming the actual draw call). Features like view frustum culling, wireframe rendering
+			or using multiple materials are not supported. Besides [name] can only be used to render triangles.
+		</p>
+
+		<p class="desc">
+			[name] does not work with instances of [page:BufferGeometry] or [page:Geometry]. The
+			raw geometry data have to be maintained as properties of the [name].
+		</p>
+
+		<p class="desc">
+			Using [name] makes only sense if you are updating your geometry data per frame. You can then
+			benefit of a faster code path compared to the default mesh redering logic.
+		</p>
 
+		<h2>Examples</h2>
+		<p>
+			[example:webgl_marchingcubes Marching Cubes]
+		</p>
 
 		<h2>Constructor</h2>
 
 
-		<h3>[name]()</h3>
+		<h3>[name]( [param:Material material] )</h3>
 		<p>
-		This creates a new [name].
+		[page:Material material] — The material of the [name].
 		</p>
 
+		<h2>Properties</h2>
+		<p>See the base [page:Object3D] class for common properties.</p>
+
+		<h3>[property:Boolean material]</h3>
+		<p>
+			The material of the [name]. Assigning multiple materials is not supported.
+		</p>
+
+		<h3>[property:Boolean hasPositions]</h3>
+		<p>
+			Whether position data are defined or not. Default is *false*.
+		</p>
+
+		<h3>[property:Boolean hasNormals]</h3>
+		<p>
+			Whether normal data are defined or not. Default is *false*.
+		</p>
+
+		<h3>[property:Boolean hasColors]</h3>
+		<p>
+			Whether color data are defined or not. Default is *false*.
+		</p>
+
+		<h3>[property:Boolean hasUvs]</h3>
+		<p>
+			Whether texture coordinates are defined or not. Default is *false*.
+		</p>
+
+		<h3>[property:Float32Array positionArray]</h3>
+		<p>
+			The buffer holding position data. Default is *null*.
+		</p>
+
+		<h3>[property:Float32Array normalArray]</h3>
+		<p>
+			The buffer holding normal data. Default is *null*.
+		</p>
+
+		<h3>[property:Float32Array colorArray]</h3>
+		<p>
+			The buffer holding color data. Default is *null*.
+		</p>
+
+		<h3>[property:Float32Array uvArray]</h3>
+		<p>
+			The buffer holding texture coordinates. Default is *null*.
+		</p>
+
+		<h3>[property:Integer count]</h3>
+		<p>
+			The number of primitives to be rendered. Default is *0*.
+			This property will be set to *0* after each rendering so you usually
+			set it in the implementatio of [page:.render]().
+		</p>
 
 		<h2>Methods</h2>
 
+		<p>See the base [page:Object3D] class for common methods.</p>
 
 		<h3>[method:null render]([param:Function renderCallback])</h3>
 		<p>
-		renderCallback -- A function to render the generated object.
+		renderCallback -- A function to render the generated geometry data.
 		</p>
 		<p>
-		This function needs to be overridden to start the creation of the object and should call renderCallback when finished.
+		This method needs to be implemented by the deriving class of [name]. You normally want to implement the
+		vertex buffer update logic and execute *renderCallback* at the end of your implementation.
 		</p>
 
 		<h2>Source</h2>

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

+ 1 - 1
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} );

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

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

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

+ 1 - 1
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} );

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

+ 1 - 1
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} );

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

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

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

+ 1 - 1
docs/api/en/geometries/ExtrudeGeometry.html

@@ -32,7 +32,7 @@
 
 		</script>
 
-		<h2>Example</h2>
+		<h2>Code Example</h2>
 
 
 		<code>

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

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

+ 1 - 1
docs/api/en/geometries/LatheGeometry.html

@@ -32,7 +32,7 @@
 
 		</script>
 
-		<h2>Example</h2>
+		<h2>Code Example</h2>
 
 		<code>
 		var points = [];

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

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

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

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

+ 1 - 1
docs/api/en/geometries/ParametricGeometry.html

@@ -32,7 +32,7 @@
 
 		</script>
 
-		<h2>Example</h2>
+		<h2>Code Example</h2>
 
 		<code>
 		var geometry = new THREE.ParametricGeometry( THREE.ParametricGeometries.klein, 25, 25 );

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

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

+ 1 - 1
docs/api/en/geometries/PlaneGeometry.html

@@ -32,7 +32,7 @@
 
 		</script>
 
-		<h2>Example</h2>
+		<h2>Code Example</h2>
 
 		<code>var geometry = new THREE.PlaneGeometry( 5, 20, 32 );
 		var material = new THREE.MeshBasicMaterial( {color: 0xffff00, side: THREE.DoubleSide} );

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

@@ -19,7 +19,7 @@
 			and [page:TetrahedronBufferGeometry] to generate their respective geometries.
 		</p>
 
-		<h2>Example</h2>
+		<h2>Code Example</h2>
 <code>
 var verticesOfCube = [
     -1,-1,-1,    1,-1,-1,    1, 1,-1,    -1, 1,-1,
@@ -62,6 +62,8 @@ var geometry = new THREE.PolyhedronBufferGeometry( verticesOfCube, indicesOfFace
 
 		<h2>Source</h2>
 
-		[link:https://github.com/mrdoob/three.js/blob/master/src/geometries/PolyhedronGeometry.js src/geometries/PolyhedronGeometry.js]
+		<p>
+			[link:https://github.com/mrdoob/three.js/blob/master/src/geometries/PolyhedronGeometry.js src/geometries/PolyhedronGeometry.js]
+		</p>
 	</body>
 </html>

+ 1 - 1
docs/api/en/geometries/PolyhedronGeometry.html

@@ -17,7 +17,7 @@
 			project them onto a sphere, and then divide them up to the desired level of detail.
 		</p>
 
-		<h2>Example</h2>
+		<h2>Code Example</h2>
 <code>
 var verticesOfCube = [
     -1,-1,-1,    1,-1,-1,    1, 1,-1,    -1, 1,-1,

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

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

+ 1 - 1
docs/api/en/geometries/RingGeometry.html

@@ -32,7 +32,7 @@
 
 		</script>
 
-		<h2>Example</h2>
+		<h2>Code Example</h2>
 
 		<code>var geometry = new THREE.RingGeometry( 1, 5, 32 );
 		var material = new THREE.MeshBasicMaterial( { color: 0xffff00, side: THREE.DoubleSide } );

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

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

+ 1 - 1
docs/api/en/geometries/ShapeGeometry.html

@@ -33,7 +33,7 @@
 		</script>
 
 
-		<h2>Example</h2>
+		<h2>Code Example</h2>
 
 
 		<code>

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

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

+ 1 - 1
docs/api/en/geometries/SphereGeometry.html

@@ -32,7 +32,7 @@
 
 		</script>
 
-		<h2>Example</h2>
+		<h2>Code Example</h2>
 
 		<code>var geometry = new THREE.SphereGeometry( 5, 32, 32 );
 		var material = new THREE.MeshBasicMaterial( {color: 0xffff00} );

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

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

+ 10 - 6
docs/api/en/geometries/TextBufferGeometry.html

@@ -36,11 +36,7 @@
 
 		</script>
 
-		<h2>Examples</h2>
-
-		<p>
-		[example:webgl_geometry_text geometry / text ]
-		</p>
+		<h2>Code Example</h2>
 
 		<code>
 		var loader = new THREE.FontLoader();
@@ -61,6 +57,12 @@
 		} );
 		</code>
 
+		<h2>Examples</h2>
+
+		<p>
+		[example:webgl_geometry_text geometry / text ]
+		</p>
+
 		<h2>Constructor</h2>
 
 		<h3>[name]([param:String text], [param:Object parameters])</h3>
@@ -168,6 +170,8 @@
 
 		<h2>Source</h2>
 
-		[link:https://github.com/mrdoob/three.js/blob/master/src/geometries/TextGeometry.js src/geometries/TextGeometry.js]
+		<p>
+			[link:https://github.com/mrdoob/three.js/blob/master/src/geometries/TextGeometry.js src/geometries/TextGeometry.js]
+		</p>
 	</body>
 </html>

+ 7 - 5
docs/api/en/geometries/TextGeometry.html

@@ -36,11 +36,7 @@
 
 		</script>
 
-		<h2>Examples</h2>
-
-		<p>
-		[example:webgl_geometry_text geometry / text ]
-		</p>
+		<h2>Code Example</h2>
 
 		<code>
 		var loader = new THREE.FontLoader();
@@ -61,6 +57,12 @@
 		} );
 		</code>
 
+		<h2>Examples</h2>
+
+		<p>
+		[example:webgl_geometry_text geometry / text ]
+		</p>
+
 		<h2>Constructor</h2>
 
 		<h3>[name]([param:String text], [param:Object parameters])</h3>

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

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

+ 1 - 1
docs/api/en/geometries/TorusGeometry.html

@@ -32,7 +32,7 @@
 
 		</script>
 
-		<h2>Example</h2>
+		<h2>Code Example</h2>
 
 		<code>var geometry = new THREE.TorusGeometry( 10, 3, 16, 100 );
 		var material = new THREE.MeshBasicMaterial( { color: 0xffff00 } );

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

@@ -32,7 +32,7 @@
 
 		</script>
 
-		<h2>Example</h2>
+		<h2>Code Example</h2>
 
 		<code>var geometry = new THREE.TorusKnotBufferGeometry( 10, 3, 100, 16 );
 		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/TorusKnotGeometry.js src/geometries/TorusKnotGeometry.js]
+		<p>
+			[link:https://github.com/mrdoob/three.js/blob/master/src/geometries/TorusKnotGeometry.js src/geometries/TorusKnotGeometry.js]
+		</p>
 	</body>
 </html>

+ 1 - 1
docs/api/en/geometries/TorusKnotGeometry.html

@@ -32,7 +32,7 @@
 
 		</script>
 
-		<h2>Example</h2>
+		<h2>Code Example</h2>
 
 		<code>var geometry = new THREE.TorusKnotGeometry( 10, 3, 100, 16 );
 		var material = new THREE.MeshBasicMaterial( { color: 0xffff00 } );

+ 5 - 3
docs/api/en/geometries/TubeBufferGeometry.html

@@ -32,7 +32,7 @@
 
 		</script>
 
-		<h2>Example</h2>
+		<h2>Code Example</h2>
 
 		<code>
 		function CustomSinCurve( scale ) {
@@ -68,7 +68,7 @@
 
 		<h3>[name]([param:Curve path], [param:Integer tubularSegments], [param:Float radius], [param:Integer radialSegments], [param:Boolean closed])</h3>
 		<p>
-		path — [page:Curve] - A path that inherits from the [page:Curve] base class<br />
+		path — [page:Curve] - A 3D path that inherits from the [page:Curve] base class<br />
 		tubularSegments — [page:Integer] - The number of segments that make up the tube, default is 64<br />
 		radius — [page:Float] - The radius of the tube, default is 1<br />
 		radialSegments — [page:Integer] - The number of segments that make up the cross-section, default is 8 <br />
@@ -104,6 +104,8 @@
 
 		<h2>Source</h2>
 
-		[link:https://github.com/mrdoob/three.js/blob/master/src/geometries/TubeGeometry.js src/geometries/TubeGeometry.js]
+		<p>
+			[link:https://github.com/mrdoob/three.js/blob/master/src/geometries/TubeGeometry.js src/geometries/TubeGeometry.js]
+		</p>
 	</body>
 </html>

+ 2 - 2
docs/api/en/geometries/TubeGeometry.html

@@ -32,7 +32,7 @@
 
 		</script>
 
-		<h2>Example</h2>
+		<h2>Code Example</h2>
 
 		<code>
 		function CustomSinCurve( scale ) {
@@ -68,7 +68,7 @@
 
 		<h3>[name]([param:Curve path], [param:Integer tubularSegments], [param:Float radius], [param:Integer radialSegments], [param:Boolean closed])</h3>
 		<p>
-		path — [page:Curve] - A path that inherits from the [page:Curve] base class<br />
+		path — [page:Curve] - A 3D path that inherits from the [page:Curve] base class<br />
 		tubularSegments — [page:Integer] - The number of segments that make up the tube, default is 64<br />
 		radius — [page:Float] - The radius of the tube, default is 1<br />
 		radialSegments — [page:Integer] - The number of segments that make up the cross-section, default is 8 <br />

+ 14 - 28
docs/api/en/geometries/WireframeGeometry.html

@@ -14,41 +14,27 @@
 
 		<p class="desc">This can be used as a helper object to view a [page:Geometry Geometry] object as a wireframe.</p>
 
-		<!-- <iframe id="scene" src="scenes/geometry-browser.html#EdgeGeometry"></iframe>
-
-		<script>
-
-		// iOS iframe auto-resize workaround
-
-		if ( /(iPad|iPhone|iPod)/g.test( navigator.userAgent ) ) {
-
-			var scene = document.getElementById( 'scene' );
-
-			scene.style.width = getComputedStyle( scene ).width;
-			scene.style.height = getComputedStyle( scene ).height;
-			scene.setAttribute( 'scrolling', 'no' );
-
-		}
-
-		</script> -->
-
-		<h2>Example</h2>
-
-		[example:webgl_helpers helpers]
+		<h2>Code Example</h2>
 
 		<code>
-var geometry = new THREE.SphereBufferGeometry( 100, 100, 100 );
+		var geometry = new THREE.SphereBufferGeometry( 100, 100, 100 );
 
-var wireframe = new THREE.WireframeGeometry( geometry );
+		var wireframe = new THREE.WireframeGeometry( geometry );
 
-var line = new THREE.LineSegments( wireframe );
-line.material.depthTest = false;
-line.material.opacity = 0.25;
-line.material.transparent = true;
+		var line = new THREE.LineSegments( wireframe );
+		line.material.depthTest = false;
+		line.material.opacity = 0.25;
+		line.material.transparent = true;
 
-scene.add( line );
+		scene.add( line );
 		</code>
 
+		<h2>Examples</h2>
+
+		<p>
+			[example:webgl_helpers helpers]
+		</p>
+
 		<h2>Constructor</h2>
 
 		<h3>[name]( [param:Geometry geometry] )</h3>

+ 9 - 7
docs/api/en/helpers/ArrowHelper.html

@@ -14,13 +14,7 @@
 
 		<p class="desc">An 3D arrow object for visualizing directions.</p>
 
-		<h2>Example</h2>
-
-		<p>
-			[example:webgl_geometries WebGL / geometries]<br/>
-			[example:webgl_geometry_normals WebGL / geometry / normals]<br/>
-			[example:webgl_shadowmesh WebGL / shadowmesh]
-		</p>
+		<h2>Code Example</h2>
 
 		<code>
 		var dir = new THREE.Vector3( 1, 2, 0 );
@@ -36,6 +30,14 @@
 		scene.add( arrowHelper );
 		</code>
 
+		<h2>Examples</h2>
+
+		<p>
+			[example:webgl_geometries WebGL / geometries]<br/>
+			[example:webgl_geometry_normals WebGL / geometry / normals]<br/>
+			[example:webgl_shadowmesh WebGL / shadowmesh]
+		</p>
+
 		<h2>Constructor</h2>
 
 		<h3>[name]([param:Vector3 dir], [param:Vector3 origin], [param:Number length], [param:Number hex], [param:Number headLength], [param:Number headWidth] )</h3>

+ 10 - 7
docs/api/en/helpers/AxesHelper.html

@@ -13,9 +13,17 @@
 		<h1>[name]</h1>
 
 		<p class="desc">An axis object to visualize the 3 axes in a simple way. <br />
-			The X axis is red. The Y axis is green. The Z axis is blue.</p>
+			The X axis is red. The Y axis is green. The Z axis is blue.
+		</p>
+
+		<h2>Code Example</h2>
+
+		<code>
+var axesHelper = new THREE.AxesHelper( 5 );
+scene.add( axesHelper );
+		</code>
 
-		<h2>Example</h2>
+		<h2>Examples</h2>
 
 		<p>
 			[example:webgl_geometries WebGL / geometries]<br/>
@@ -23,11 +31,6 @@
 			[example:webgl_geometry_spline_editor WebGL / geometry / spline / editor]
 		</p>
 
-		<code>
-var axesHelper = new THREE.AxesHelper( 5 );
-scene.add( axesHelper );
-    </code>
-
 		<h2>Constructor</h2>
 
 

+ 1 - 1
docs/api/en/helpers/Box3Helper.html

@@ -17,7 +17,7 @@
 		</p>
 
 
-		<h2>Example</h2>
+		<h2>Code Example</h2>
 
 		<code>
 		var box = new THREE.Box3();

+ 10 - 9
docs/api/en/helpers/BoxHelper.html

@@ -19,7 +19,16 @@
 			so it won't work with [page:Sprite Sprites].
 		</p>
 
-		<h2>Example</h2>
+		<h2>Code Example</h2>
+
+		<code>
+		var sphere = new THREE.SphereBufferGeometry();
+		var object = new THREE.Mesh( sphere, new THREE.MeshBasicMaterial( 0xff0000 ) );
+		var box = new THREE.BoxHelper( object, 0xffff00 );
+		scene.add( box );
+		</code>
+
+		<h2>Examples</h2>
 
 		<p>
 			[example:webgl_helpers WebGL / helpers]<br/>
@@ -27,14 +36,6 @@
 			[example:webgl_buffergeometry_drawrange WebGL / buffergeometry / drawrange]
 		</p>
 
-		<code>
-			var sphere = new THREE.SphereGeometry();
-			var object = new THREE.Mesh( sphere, new THREE.MeshBasicMaterial( 0xff0000 ) );
-			var box = new THREE.BoxHelper( object, 0xffff00 );
-			scene.add( box );
-		</code>
-
-
 		<h2>Constructor</h2>
 
 

+ 6 - 6
docs/api/en/helpers/CameraHelper.html

@@ -17,18 +17,18 @@
 		It visualizes the frustum of a camera using a [page:LineSegments].
 		</p>
 
-		<h2>Example</h2>
-		<p>
-			[example:webgl_camera WebGL / camera]<br/>
-			[example:webgl_geometry_extrude_splines WebGL / extrude / splines]
-		</p>
-
+		<h2>Code Example</h2>
 		<code>
 var camera = new THREE.PerspectiveCamera( 75, window.innerWidth / window.innerHeight, 0.1, 1000 );
 var helper = new THREE.CameraHelper( camera );
 scene.add( helper );
 		</code>
 
+		<h2>Examples</h2>
+		<p>
+			[example:webgl_camera WebGL / camera]<br/>
+			[example:webgl_geometry_extrude_splines WebGL / extrude / splines]
+		</p>
 
 		<h2>Constructor</h2>
 

+ 1 - 4
docs/api/en/helpers/DirectionalLightHelper.html

@@ -18,17 +18,14 @@
 			This consists of plane and a line representing the light's position and direction.
 		</p>
 
-		<h2>Example</h2>
+		<h2>Code Example</h2>
 
 		<code>
 		var light = new THREE.DirectionalLight( 0xFFFFFF );
-
 		var helper = new THREE.DirectionalLightHelper( light, 5 );
-
 		scene.add( helper );
 		</code>
 
-
 		<h2>Constructor</h2>
 
 

+ 7 - 5
docs/api/en/helpers/GridHelper.html

@@ -14,11 +14,7 @@
 
 		<p class="desc">The GridHelper is an object to define grids. Grids are two-dimensional arrays of lines.</p>
 
-		<h2>Example</h2>
-
-		<p>
-			[example:webgl_helpers WebGL / helpers]
-		</p>
+		<h2>Code Example</h2>
 
 		<code>var size = 10;
 		var divisions = 10;
@@ -27,6 +23,12 @@
 		scene.add( gridHelper );
 		</code>
 
+		<h2>Examples</h2>
+
+		<p>
+			[example:webgl_helpers WebGL / helpers]
+		</p>
+
 		<h2>Constructor</h2>
 
 		<h3>[name]( [param:number size], [param:Number divisions], [param:Color colorCenterLine], [param:Color colorGrid] )</h3>

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

@@ -16,12 +16,12 @@
 			Creates a visual aid consisting of a spherical [page:Mesh] for a [page:HemisphereLight HemisphereLight].
 		</p>
 
-		<h2>Example</h2>
+		<h2>Code Example</h2>
 
 		<code>
-var light = new THREE.HemisphereLight( 0xffffbb, 0x080820, 1 );
-var helper = new THREE.HemisphereLightHelper( light, 5 );
-scene.add( helper );
+		var light = new THREE.HemisphereLight( 0xffffbb, 0x080820, 1 );
+		var helper = new THREE.HemisphereLightHelper( light, 5 );
+		scene.add( helper );
 		</code>
 
 

+ 1 - 1
docs/api/en/helpers/PlaneHelper.html

@@ -17,7 +17,7 @@
 		</p>
 
 
-		<h2>Example</h2>
+		<h2>Code Example</h2>
 
 		<code>
 		var plane = new THREE.Plane( new THREE.Vector3( 1, 1, 0.2 ), 3 );

+ 5 - 7
docs/api/en/helpers/PointLightHelper.html

@@ -17,12 +17,7 @@
 			 a [page:PointLight].
 		 </p>
 
-
-		<h2>Example</h2>
-
-		<p>
-			[example:webgl_helpers WebGL /  helpers]
-		</p>
+		 <h2>Code Example</h2>
 
 		<code>
 		var pointLight = new THREE.PointLight( 0xff0000, 1, 100 );
@@ -34,8 +29,11 @@
 		scene.add( pointLightHelper );
 		</code>
 
+		<h2>Examples</h2>
 
-
+		<p>
+			[example:webgl_helpers WebGL /  helpers]
+		</p>
 
 		<h2>Constructor</h2>
 

Энэ ялгаанд хэт олон файл өөрчлөгдсөн тул зарим файлыг харуулаагүй болно