Mr.doob 9 years ago
parent
commit
4fc4a9cde7
100 changed files with 2829 additions and 2062 deletions
  1. 390 251
      build/three.js
  2. 188 180
      build/three.min.js
  3. 48 9
      docs/api/cameras/PerspectiveCamera.html
  4. 8 3
      docs/api/core/BufferAttribute.html
  5. 9 19
      docs/api/core/BufferGeometry.html
  6. 10 9
      docs/api/core/Geometry.html
  7. 2 2
      docs/api/examples/cameras/CombinedCamera.html
  8. 0 60
      docs/api/extras/GeometryUtils.html
  9. 0 40
      docs/api/extras/core/Gyroscope.html
  10. 125 125
      docs/api/extras/core/Shape.html
  11. 4 9
      docs/api/extras/geometries/CircleGeometry.html
  12. 98 98
      docs/api/extras/geometries/ExtrudeGeometry.html
  13. 6 5
      docs/api/extras/geometries/LatheGeometry.html
  14. 50 50
      docs/api/extras/geometries/PlaneGeometry.html
  15. 9 8
      docs/api/extras/geometries/TorusKnotGeometry.html
  16. 1 1
      docs/api/extras/geometries/TubeGeometry.html
  17. 64 59
      docs/api/extras/helpers/SpotLightHelper.html
  18. 12 17
      docs/api/lights/AmbientLight.html
  19. 11 92
      docs/api/lights/DirectionalLight.html
  20. 33 0
      docs/api/lights/DirectionalLightShadow.html
  21. 13 19
      docs/api/lights/HemisphereLight.html
  22. 26 10
      docs/api/lights/Light.html
  23. 75 0
      docs/api/lights/LightShadow.html
  24. 23 19
      docs/api/lights/PointLight.html
  25. 36 85
      docs/api/lights/SpotLight.html
  26. 38 0
      docs/api/lights/SpotLightShadow.html
  27. 90 0
      docs/api/loaders/AudioLoader.html
  28. 2 2
      docs/api/loaders/ImageLoader.html
  29. 0 88
      docs/api/loaders/OBJMTLLoader.html
  30. 2 2
      docs/api/loaders/TextureLoader.html
  31. 2 1
      docs/api/materials/LineBasicMaterial.html
  32. 5 6
      docs/api/materials/LineDashedMaterial.html
  33. 11 0
      docs/api/materials/Material.html
  34. 20 16
      docs/api/materials/MeshBasicMaterial.html
  35. 8 8
      docs/api/materials/MeshDepthMaterial.html
  36. 24 10
      docs/api/materials/MeshLambertMaterial.html
  37. 1 1
      docs/api/materials/MeshNormalMaterial.html
  38. 45 25
      docs/api/materials/MeshPhongMaterial.html
  39. 9 8
      docs/api/materials/PointsMaterial.html
  40. 119 26
      docs/api/materials/ShaderMaterial.html
  41. 3 3
      docs/api/materials/SpriteMaterial.html
  42. 22 22
      docs/api/math/Box2.html
  43. 25 25
      docs/api/math/Box3.html
  44. 22 12
      docs/api/math/Color.html
  45. 8 0
      docs/api/math/Frustum.html
  46. 50 34
      docs/api/math/Matrix3.html
  47. 32 15
      docs/api/math/Matrix4.html
  48. 2 1
      docs/api/math/Plane.html
  49. 60 45
      docs/api/math/Quaternion.html
  50. 9 0
      docs/api/math/Triangle.html
  51. 62 51
      docs/api/math/Vector2.html
  52. 77 66
      docs/api/math/Vector3.html
  53. 67 66
      docs/api/math/Vector4.html
  54. 14 7
      docs/api/objects/LOD.html
  55. 81 80
      docs/api/objects/LensFlare.html
  56. 4 4
      docs/api/objects/LineSegments.html
  57. 63 63
      docs/api/objects/Sprite.html
  58. 0 5
      docs/api/renderers/WebGLRenderTarget.html
  59. 17 3
      docs/api/renderers/WebGLRenderer.html
  60. 5 0
      docs/api/textures/Texture.html
  61. 1 1
      docs/index.html
  62. 15 4
      docs/list.js
  63. 7 12
      docs/manual/introduction/Creating-a-scene.html
  64. 1 0
      docs/page.css
  65. 10 10
      docs/scenes/bones-browser.html
  66. 21 19
      docs/scenes/geometry-browser.html
  67. 357 10
      docs/scenes/js/geometry.js
  68. 43 0
      docs/scenes/js/material.js
  69. 12 12
      docs/scenes/material-browser.html
  70. 6 1
      editor/css/dark.css
  71. 5 1
      editor/css/light.css
  72. 54 34
      editor/examples/pong.app.json
  73. 5 9
      editor/js/Sidebar.Object.js
  74. 8 1
      editor/js/libs/ui.three.js
  75. 2 4
      examples/canvas_ascii_effect.html
  76. 2 4
      examples/canvas_camera_orthographic.html
  77. 2 4
      examples/canvas_camera_orthographic2.html
  78. 2 6
      examples/canvas_geometry_birds.html
  79. 2 4
      examples/canvas_geometry_cube.html
  80. 2 4
      examples/canvas_geometry_earth.html
  81. 2 5
      examples/canvas_geometry_hierarchy.html
  82. 2 4
      examples/canvas_geometry_nurbs.html
  83. 1 1
      examples/canvas_geometry_panorama.html
  84. 1 1
      examples/canvas_geometry_panorama_fisheye.html
  85. 2 4
      examples/canvas_geometry_shapes.html
  86. 2 4
      examples/canvas_geometry_terrain.html
  87. 2 4
      examples/canvas_geometry_text.html
  88. 2 4
      examples/canvas_interactive_cubes.html
  89. 2 4
      examples/canvas_interactive_cubes_tween.html
  90. 2 4
      examples/canvas_interactive_particles.html
  91. 1 1
      examples/canvas_interactive_voxelpainter.html
  92. 1 1
      examples/canvas_lights_pointlights.html
  93. 1 1
      examples/canvas_lines.html
  94. 2 4
      examples/canvas_lines_colors.html
  95. 2 4
      examples/canvas_lines_colors_2d.html
  96. 2 4
      examples/canvas_lines_dashed.html
  97. 1 1
      examples/canvas_lines_sphere.html
  98. 2 4
      examples/canvas_materials.html
  99. 1 1
      examples/canvas_materials_normal.html
  100. 1 1
      examples/canvas_materials_reflection.html

File diff suppressed because it is too large
+ 390 - 251
build/three.js


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


+ 48 - 9
docs/api/cameras/PerspectiveCamera.html

@@ -42,14 +42,11 @@ scene.add( camera );</code>
 
 
 		<h2>Properties</h2>
 		<h2>Properties</h2>
 
 
-		<h3>[property:number zoom]</h3>
-		<div>Gets or sets the zoom factor of the camera. </div>
-
 		<h3>[property:Float fov]</h3>
 		<h3>[property:Float fov]</h3>
 		<div>Camera frustum vertical field of view, from bottom to top of view, in degrees.</div>
 		<div>Camera frustum vertical field of view, from bottom to top of view, in degrees.</div>
 
 
-		<h3>[property:Float aspect]</h3>
-		<div>Camera frustum aspect ratio, window width divided by window height.</div>
+		<h3>[property:number zoom]</h3>
+		<div>Gets or sets the zoom factor of the camera. </div>
 
 
 		<h3>[property:Float near]</h3>
 		<h3>[property:Float near]</h3>
 		<div>Camera frustum near plane.</div>
 		<div>Camera frustum near plane.</div>
@@ -57,18 +54,60 @@ scene.add( camera );</code>
 		<h3>[property:Float far]</h3>
 		<h3>[property:Float far]</h3>
 		<div>Camera frustum far plane.</div>
 		<div>Camera frustum far plane.</div>
 
 
+		<h3>[property:Float focus]</h3>
+		<div>Object distance used for stereoscopy and depth-of-field effects. This parameter does not influence the projection matrix unless a StereoCamera is being used.</div>
+
+		<h3>[property:Float aspect]</h3>
+		<div>Camera frustum aspect ratio, window width divided by window height.</div>
+
+		<h3>[property:Object view]</h3>
+		<div>Frustum window specification or null.</div>
+
+		<h3>[property:Float filmGauge]</h3>
+		<div>Film size used for the larger axis. Default is 35 (millimeters). This parameter does not influence the projection matrix unless .filmOffset is set to a nonzero value.</div>
+
+		<h3>[property:Float filmOffset]</h3>
+		<div>Horizontal off-center offset in the same unit as .filmGauge.</div>
 
 
 		<h2>Methods</h2>
 		<h2>Methods</h2>
 
 
-		<h3>[method:null setLens]( [page:Float focalLength], [page:Float frameSize] )</h3>
+		<h3>[method:Float getEffectiveFOV]()</h3>
+		<div>
+		Returns the current vertical field of view angle in degrees considering .zoom.
+		</div>
+
+		<h3>[method:Float getFocalLength]()</h3>
+		<div>
+		Returns the focal length of the current .fov in respect to .filmGauge.
+		</div>
+
+		<h3>[method:Float getFilmWidth]()</h3>
+		<div>
+		Returns the width of the image on the film. If .aspect is greater than or equal to one (landscape format), the result equals .filmGauge.
+		</div>
+
+		<h3>[method:Float getFilmHeight]()</h3>
+		<div>
+		Returns the height of the image on the film. If .aspect is less than or equal to one (portrait format), the result equals .fimlGauge.
+		</div>
+
+		<h3>[method:null setFocalLength]( [page:Float focalLength] )</h3>
+		<div>
+		Sets the FOV by focal length in respect to the current .filmGauge.
+		</div>
+		<div>
+		By default, the focal length is specified for a 35mm (full frame) camera.
+		</div>
+
+		<h3>[method:null setLens]( [page:Float focalLength], [page:Float filmGauge] )</h3>
 		<div>
 		<div>
 		focalLength — focal length<br />
 		focalLength — focal length<br />
-		frameSize — frame size
+		frameGauge — film gauge
 		</div>
 		</div>
 
 
 		<div>
 		<div>
-		Uses focal length (in mm) to estimate and set FOV 35mm (fullframe) camera is used if frame size is not specified.<br />
-		Formula based on [link:http://www.bobatkins.com/photography/technical/field_of_view.html]
+		Sets .fov by focal length. Optionally also sets .filmGauge.
+		This method is deprecated, please use .setFocalLength instead.
 		</div>
 		</div>
 
 
 		<h3>[method:null setViewOffset]( [page:Float fullWidth], [page:Float fullHeight], [page:Float x], [page:Float y], [page:Float width], [page:Float height] )</h3>
 		<h3>[method:null setViewOffset]( [page:Float fullWidth], [page:Float fullHeight], [page:Float x], [page:Float y], [page:Float width], [page:Float height] )</h3>

+ 8 - 3
docs/api/core/BufferAttribute.html

@@ -15,17 +15,17 @@
 		</div>
 		</div>
 
 
 		<h2>Constructor</h2>
 		<h2>Constructor</h2>
-		<h3>[name]([page:TypedArray array], [page:Integer itemSize])</h3>
+		<h3>[name]([page:TypedArray array], [page:Integer itemSize], [page:Boolean normalized])</h3>
 		<div>
 		<div>
 		Instantiates this attribute with data from the associated buffer.
 		Instantiates this attribute with data from the associated buffer.
-		itemSize gives the number of values of the array that should be associated with a particular vertex.
+		itemSize gives the number of values of the array that should be associated with a particular vertex. normalized indicates how the underlying data in the buffer maps to the values in the GLSL shader code. 
 		</div>
 		</div>
 
 
 		<h2>Properties</h2>
 		<h2>Properties</h2>
 
 
 		<h3>[property:TypedArray array]</h3>
 		<h3>[property:TypedArray array]</h3>
 		<div>
 		<div>
-		Stores the data associated with this attribute. This element should have <code>itemSize * numVertices</code> elements, where numVertices is the number of vertices in the associated [page:BufferGeometry geometry].
+		Stores the data associated with this attribute. This element should have <code>itemSize * numVertices</code> elements, where numVertices is the number of vertices in the associated [page:BufferGeometry geometry].  [page:TypedArray array] can be an instance of UInt8Array, Int8Array, UInt16Array, Int16Array, or Float32Array.
 		</div>
 		</div>
 
 
 		<h3>[property:Integer itemSize]</h3>
 		<h3>[property:Integer itemSize]</h3>
@@ -44,6 +44,11 @@
 		Flag to indicate that this attribute has changed and should be re-send to the GPU. Set this to true when you modify the value of the array.
 		Flag to indicate that this attribute has changed and should be re-send to the GPU. Set this to true when you modify the value of the array.
 		</div>
 		</div>
 
 
+		<h3>[property:Boolean normalized]</h3>
+		<div>
+		Indicates how the underlying data in the buffer maps to the values in the GLSL code. For instance, if [page:TypedArray array] is an instance of UInt16Array, and [page:Boolean normalized] is true, the values 0 - +65535 in the array data will be mapped to 0.0f - +1.0f in the GLSL attribute. An Int16Array (signed) would map from -32767 - +32767  to -1.0f - +1.0f. If [page:Boolean normalized] is false, the values will be converted to floats which contain the exact value, i.e. 32767 becomes 32767.0f.
+		</div>
+
 		<h3>[property:Integer version]</h3>
 		<h3>[property:Integer version]</h3>
 		<div>
 		<div>
 		A version number, incremented every time the needsUpdate property is set to true.
 		A version number, incremented every time the needsUpdate property is set to true.

+ 9 - 19
docs/api/core/BufferGeometry.html

@@ -27,25 +27,15 @@
 		var geometry = new THREE.BufferGeometry();
 		var geometry = new THREE.BufferGeometry();
 		// create a simple square shape. We duplicate the top left and bottom right
 		// create a simple square shape. We duplicate the top left and bottom right
 		// vertices because each vertex needs to appear once per triangle.
 		// vertices because each vertex needs to appear once per triangle.
-		var vertexPositions = [
-			[-1.0, -1.0,  1.0],
-			[ 1.0, -1.0,  1.0],
-			[ 1.0,  1.0,  1.0],
-
-			[ 1.0,  1.0,  1.0],
-			[-1.0,  1.0,  1.0],
-			[-1.0, -1.0,  1.0]
-		];
-		var vertices = new Float32Array( vertexPositions.length * 3 ); // three components per vertex
-
-		// components of the position vector for each vertex are stored
-		// contiguously in the buffer.
-		for ( var i = 0; i < vertexPositions.length; i++ )
-		{
-			vertices[ i*3 + 0 ] = vertexPositions[i][0];
-			vertices[ i*3 + 1 ] = vertexPositions[i][1];
-			vertices[ i*3 + 2 ] = vertexPositions[i][2];
-		}
+		var vertices = new Float32Array( [
+			-1.0, -1.0,  1.0,
+			 1.0, -1.0,  1.0,
+			 1.0,  1.0,  1.0,
+
+			 1.0,  1.0,  1.0,
+			-1.0,  1.0,  1.0,
+			-1.0, -1.0,  1.0
+		] );
 
 
 		// itemSize = 3 because there are 3 values (components) per vertex
 		// itemSize = 3 because there are 3 values (components) per vertex
 		geometry.addAttribute( 'position', new THREE.BufferAttribute( vertices, 3 ) );
 		geometry.addAttribute( 'position', new THREE.BufferAttribute( vertices, 3 ) );

+ 10 - 9
docs/api/core/Geometry.html

@@ -150,13 +150,6 @@
 		<code>{ radius: float }</code>
 		<code>{ radius: float }</code>
 		</div>
 		</div>
 
 
-		<h3>[property:Boolean dynamic]</h3>
-		<div>
-		Set to *true* if attribute buffers will need to change in runtime (using "dirty" flags).<br/>
-		Unless set to true internal typed arrays corresponding to buffers will be deleted once sent to GPU.<br/>
-		Defaults to true.
-		</div>
-
 		<h3>[property:Boolean verticesNeedUpdate]</h3>
 		<h3>[property:Boolean verticesNeedUpdate]</h3>
 		<div>
 		<div>
 		Set to *true* if the vertices array has been updated.
 		Set to *true* if the vertices array has been updated.
@@ -179,7 +172,12 @@
 
 
 		<h3>[property:Boolean colorsNeedUpdate]</h3>
 		<h3>[property:Boolean colorsNeedUpdate]</h3>
 		<div>
 		<div>
-		Set to *true* if the colors array has been updated.
+		Set to *true* if the colors array or a face3 color has been updated.
+		</div>
+
+		<h3>[property:Boolean groupdsNeedUpdate]</h3>
+		<div>
+		Set to *true* if a face3 materialIndex has been updated.
 		</div>
 		</div>
 
 
 		<h3>[property:Boolean lineDistancesNeedUpdate]</h3>
 		<h3>[property:Boolean lineDistancesNeedUpdate]</h3>
@@ -252,7 +250,10 @@
 		Computes face normals.
 		Computes face normals.
 		</div>
 		</div>
 
 
-		<h3>[method:null computeVertexNormals]()</h3>
+		<h3>[method:null computeVertexNormals]( [page:Boolean areaWeighted] )</h3>
+		<div>
+		areaWeighted - If true the contributution of each face normal to the vertex normal is weighted by the area of the face. Default is true.
+		</div>
 		<div>
 		<div>
 		Computes vertex normals by averaging face normals.<br />
 		Computes vertex normals by averaging face normals.<br />
 		Face normals must be existing / computed beforehand.
 		Face normals must be existing / computed beforehand.

+ 2 - 2
docs/api/examples/cameras/CombinedCamera.html

@@ -130,10 +130,10 @@
 		Sets the zoomfactor.
 		Sets the zoomfactor.
 		</div>
 		</div>
 
 
-		<h3>[method:null setLens]([page:number focalLength], [page:Number frameHeight])</h3>
+		<h3>[method:null setLens]([page:number focalLength], [page:Number filmGauge])</h3>
 		<div>
 		<div>
 		focalLength -- The focal length of a lens is defined as the distance from the optical center of a lens (or, the secondary principal point for a complex lens like a camera lens) to the focal point (sensor) when the lens is focused on an object at infinity. <br />
 		focalLength -- The focal length of a lens is defined as the distance from the optical center of a lens (or, the secondary principal point for a complex lens like a camera lens) to the focal point (sensor) when the lens is focused on an object at infinity. <br />
-		frameHeight -- the size of the frame in mm. (default is *35*)
+		filmGauge -- the size of the frame in mm. (default is *35*)
 		</div>
 		</div>
 		<div>
 		<div>
 		Sets the fov based on lens data.
 		Sets the fov based on lens data.

+ 0 - 60
docs/api/extras/GeometryUtils.html

@@ -1,60 +0,0 @@
-<!DOCTYPE html>
-<html lang="en">
-	<head>
-		<meta charset="utf-8" />
-		<base href="../../" />
-		<script src="list.js"></script>
-		<script src="page.js"></script>
-		<link type="text/css" rel="stylesheet" href="page.css" />
-	</head>
-	<body>
-		<h1>[name]</h1>
-
-		<div class="desc">Contains handy functions geometry manipulations.</div>
-
-
-		<h2>Methods</h2>
-
-		<h3> .merge( [page:Geometry geometry1] , [page:Geometry geometry2], [page:Integer materialIndexOffset] )</h3>
-		<div>
-		geometry1 — Parent geometry element <br />
-		geometry2 — Geometry that need to be added in parent <br />
-		materialIndexOffset — Offset applied to the materialIndex of all the new faces in the merged geometry. Default : 0 <br />
-		</div>
-
-		<h3> .randomPointInTriangle( [page:Vector VectorA] , [page:Vector VectorB]  , [page:Vector VectorC])</h3>
-		<div>
-		VectorA — Vector  <br />
-		VectorB — Vector  <br />
-		VectorC — Vector  <br />
-
-		 returns [page:Int Point]
-
-		</div>
-
-		
-		<h3> .center ( [page:Vector VectorA] , [page:Vector VectorB]  , [page:Vector VectorC]) </h3>
-
-		<div>
-		VectorA — Vector  <br />
-		VectorB — Vector  <br />
-		VectorC — Vector  <br />
-
-		returns [page:Int Area]
-
-		</div>
-
-		<h3> .center ( [page:Geometry geometry] ) </h3>
-
-		<div>
-
-		Geometry — Geometry to Center position
-
-		</div>
-
-
-		<h2>Source</h2>
-
-		[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
-	</body>
-</html>

+ 0 - 40
docs/api/extras/core/Gyroscope.html

@@ -1,40 +0,0 @@
-<!DOCTYPE html>
-<html lang="en">
-	<head>
-		<meta charset="utf-8" />
-		<base href="../../../" />
-		<script src="list.js"></script>
-		<script src="page.js"></script>
-		<link type="text/css" rel="stylesheet" href="page.css" />
-	</head>
-	<body>
-		[page:Object3D] &rarr;
-
-		<h1>[name]</h1>
-
-		<div class="desc">An Object3d that rotates independently of its parent objects, but keeps the position and scale.</div>
-
-		<code>
-		var root = new THREE.Group();
-		var gyro = new THREE.Gyroscope();
-		var cube = new THREE.Mesh( geometry, material );
-
-		root.add( gyro )
-		gyro.add( cube )
-
-		cube.position.x = 10;
-		root.rotation.y = Math.PI;
-
-		// The cube will have changed its position but maintained its orientation
-		</code>
-
-		<h2>Constructor</h2>
-
-
-		<h3>[name]()</h3>
-
-		<h2>Source</h2>
-
-		[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
-	</body>
-</html>

+ 125 - 125
docs/api/extras/core/Shape.html

@@ -1,126 +1,126 @@
-<!DOCTYPE html>
-<html lang="en">
-	<head>
+<!DOCTYPE html>
+<html lang="en">
+	<head>
 		<meta charset="utf-8" />
 		<meta charset="utf-8" />
-		<base href="../../../" />
-		<script src="list.js"></script>
-		<script src="page.js"></script>
-		<link type="text/css" rel="stylesheet" href="page.css" />
-	</head>
-	<body>
-		[page:Path] &rarr;
-
-		<h1>[name]</h1>
-
-		<div class="desc">
-		Defines an arbitrary 2d shape plane using paths with optional holes. It can be used with [page:ExtrudeGeometry],
-		[page:ShapeGeometry], to get points, or to get triangulated faces.
-		</div>
-
-		<code>
-		var heartShape = new THREE.Shape();
-
-		heartShape.moveTo( 25, 25 );
-		heartShape.bezierCurveTo( 25, 25, 20, 0, 0, 0 );
-		heartShape.bezierCurveTo( 30, 0, 30, 35,30,35 );
-		heartShape.bezierCurveTo( 30, 55, 10, 77, 25, 95 );
-		heartShape.bezierCurveTo( 60, 77, 80, 55, 80, 35 );
-		heartShape.bezierCurveTo( 80, 35, 80, 0, 50, 0 );
-		heartShape.bezierCurveTo( 35, 0, 25, 25, 25, 25 );
-
-		var extrudeSettings = { amount: 8, bevelEnabled: true, bevelSegments: 2, steps: 2, bevelSize: 1, bevelThickness: 1 };
-
-		var geometry = new THREE.ExtrudeGeometry( shape, extrudeSettings );
-
-		var mesh = new THREE.Mesh( geometry, new THREE.MeshPhongMaterial() );
-		</code>
-
-		<h2>Examples</h2>
-
-		<div>
-		[example:webgl_geometry_shapes geometry / shapes ]<br/>
-		[example:webgl_geometry_extrude_shapes geometry / extrude / shapes ]<br/>
-		[example:webgl_geometry_extrude_shapes2 geometry / extrude / shapes2 ]<br/>
-		[example:webgl_particles_shapes particles / shapes ]
-		</div>
-
-
-		<h2>Constructor</h2>
-
-
-		<h3>[name]()</h3>
-
-
-		<h2>Properties</h2>
-
-
-		<h3>[property:array holes]</h3>
-		<div>
-		An array of [page:Path paths] that define the holes in the shape.
-		</div>
-
-		<h2>Methods</h2>
-
-
-		<h3>[method:ShapeGeometry makeGeometry]([page:Object options])</h3>
-		<div>
-		options -- This is passed as the second argument to [page:ShapeGeometry ShapeGeometry]
-		</div>
-		<div>
-		Convenience method to return ShapeGeometry
-		</div>
-
-		<h3>[method:Array extractAllPoints]([page:Integer divisions])</h3>
-		<div>
-		divisions -- The number of divisions to create on the shape
-		</div>
-		<div>
-		Get points of shape and holes (keypoints based on segments parameter)
-		</div>
-
-		<h3>[method:ExtrudeGeometry extrude]([page:Object options])</h3>
-		<div>
-		options -- This is passed as the second argument to [page:ExtrudeGeometry ExtrudeGeometry]
-		</div>
-		<div>
-		Convenience method to return ExtrudeGeometry
-		</div>
-
-		<h3>[method:Object extractPoints]([page:Integer divisions])</h3>
-		<div>
-		divisions -- The number of divisions to create on the shape
-		</div>
-		<div>
-		Returns an object with a *shape* and *holes* property that each reference an array of [page:Vector2 Vector2s].
-		</div>
-
-		<h3>[method:Object extractAllSpacedPoints]([page:Integer divisions])</h3>
-		<div>
-		divisions -- The number of divisions to create on the shape
-		</div>
-		<div>
-		Returns an object with a *shape* and *holes* property that each reference an array of [page:Vector2 Vector2s]. The
-		points will all be equally spaced along the shape.
-		</div>
-
-		<h3>[method:Array getPointsHoles]([page:Integer divisions])</h3>
-		<div>
-		divisions -- The number of divisions to create on the shape
-		</div>
-		<div>
-		Get an array of [page Vector2 Vector2s] that represent the holes in the shape.
-		</div>
-
-		<h3>[method:Array getSpacedPointsHoles]([page:Integer divisions])</h3>
-		<div>
-		divisions -- The number of divisions to create on the shape
-		</div>
-		<div>
-		Get an array of equally spaced [page Vector2 Vector2s] that represent the holes in the shape.
-		</div>
-
-		<h2>Source</h2>
-
-		[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
-	</body>
-</html>
+		<base href="../../../" />
+		<script src="list.js"></script>
+		<script src="page.js"></script>
+		<link type="text/css" rel="stylesheet" href="page.css" />
+	</head>
+	<body>
+		[page:Path] &rarr;
+
+		<h1>[name]</h1>
+
+		<div class="desc">
+		Defines an arbitrary 2d shape plane using paths with optional holes. It can be used with [page:ExtrudeGeometry],
+		[page:ShapeGeometry], to get points, or to get triangulated faces.
+		</div>
+
+		<code>
+		var heartShape = new THREE.Shape();
+
+		heartShape.moveTo( 25, 25 );
+		heartShape.bezierCurveTo( 25, 25, 20, 0, 0, 0 );
+		heartShape.bezierCurveTo( 30, 0, 30, 35,30,35 );
+		heartShape.bezierCurveTo( 30, 55, 10, 77, 25, 95 );
+		heartShape.bezierCurveTo( 60, 77, 80, 55, 80, 35 );
+		heartShape.bezierCurveTo( 80, 35, 80, 0, 50, 0 );
+		heartShape.bezierCurveTo( 35, 0, 25, 25, 25, 25 );
+
+		var extrudeSettings = { amount: 8, bevelEnabled: true, bevelSegments: 2, steps: 2, bevelSize: 1, bevelThickness: 1 };
+
+		var geometry = new THREE.ExtrudeGeometry( heartShape, extrudeSettings );
+
+		var mesh = new THREE.Mesh( geometry, new THREE.MeshPhongMaterial() );
+		</code>
+
+		<h2>Examples</h2>
+
+		<div>
+		[example:webgl_geometry_shapes geometry / shapes ]<br/>
+		[example:webgl_geometry_extrude_shapes geometry / extrude / shapes ]<br/>
+		[example:webgl_geometry_extrude_shapes2 geometry / extrude / shapes2 ]<br/>
+		[example:webgl_particles_shapes particles / shapes ]
+		</div>
+
+
+		<h2>Constructor</h2>
+
+
+		<h3>[name]()</h3>
+
+
+		<h2>Properties</h2>
+
+
+		<h3>[property:array holes]</h3>
+		<div>
+		An array of [page:Path paths] that define the holes in the shape.
+		</div>
+
+		<h2>Methods</h2>
+
+
+		<h3>[method:ShapeGeometry makeGeometry]([page:Object options])</h3>
+		<div>
+		options -- This is passed as the second argument to [page:ShapeGeometry ShapeGeometry]
+		</div>
+		<div>
+		Convenience method to return ShapeGeometry
+		</div>
+
+		<h3>[method:Array extractAllPoints]([page:Integer divisions])</h3>
+		<div>
+		divisions -- The number of divisions to create on the shape
+		</div>
+		<div>
+		Get points of shape and holes (keypoints based on segments parameter)
+		</div>
+
+		<h3>[method:ExtrudeGeometry extrude]([page:Object options])</h3>
+		<div>
+		options -- This is passed as the second argument to [page:ExtrudeGeometry ExtrudeGeometry]
+		</div>
+		<div>
+		Convenience method to return ExtrudeGeometry
+		</div>
+
+		<h3>[method:Object extractPoints]([page:Integer divisions])</h3>
+		<div>
+		divisions -- The number of divisions to create on the shape
+		</div>
+		<div>
+		Returns an object with a *shape* and *holes* property that each reference an array of [page:Vector2 Vector2s].
+		</div>
+
+		<h3>[method:Object extractAllSpacedPoints]([page:Integer divisions])</h3>
+		<div>
+		divisions -- The number of divisions to create on the shape
+		</div>
+		<div>
+		Returns an object with a *shape* and *holes* property that each reference an array of [page:Vector2 Vector2s]. The
+		points will all be equally spaced along the shape.
+		</div>
+
+		<h3>[method:Array getPointsHoles]([page:Integer divisions])</h3>
+		<div>
+		divisions -- The number of divisions to create on the shape
+		</div>
+		<div>
+		Get an array of [page Vector2 Vector2s] that represent the holes in the shape.
+		</div>
+
+		<h3>[method:Array getSpacedPointsHoles]([page:Integer divisions])</h3>
+		<div>
+		divisions -- The number of divisions to create on the shape
+		</div>
+		<div>
+		Get an array of equally spaced [page Vector2 Vector2s] that represent the holes in the shape.
+		</div>
+
+		<h2>Source</h2>
+
+		[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+	</body>
+</html>

+ 4 - 9
docs/api/extras/geometries/CircleGeometry.html

@@ -19,15 +19,10 @@
 
 
 		<iframe src='scenes/geometry-browser.html#CircleGeometry'></iframe>
 		<iframe src='scenes/geometry-browser.html#CircleGeometry'></iframe>
 
 
-		<code>var material = new THREE.MeshBasicMaterial({
-			color: 0x0000ff
-		});
-
-		var radius = 5;
-		var segments = 32;
-
-		var circleGeometry = new THREE.CircleGeometry( radius, segments );
-		var circle = new THREE.Mesh( circleGeometry, material );
+		<code>
+		var geometry = new THREE.CircleGeometry( 5, 32 );
+		var material = new THREE.MeshBasicMaterial( { color: 0xffff00 } );
+		var circle = new THREE.Mesh( geometry, material );
 		scene.add( circle );
 		scene.add( circle );
 		</code>
 		</code>
 
 

+ 98 - 98
docs/api/extras/geometries/ExtrudeGeometry.html

@@ -1,99 +1,99 @@
-<!DOCTYPE html>
-<html lang="en">
-	<head>
+<!DOCTYPE html>
+<html lang="en">
+	<head>
 		<meta charset="utf-8" />
 		<meta charset="utf-8" />
-		<base href="../../../" />
-		<script src="list.js"></script>
-		<script src="page.js"></script>
-		<link type="text/css" rel="stylesheet" href="page.css" />
-	</head>
-	<body>
-		[page:Geometry] &rarr;
-
-		<h1>[name]</h1>
-
-		<div class="desc">Creates extruded geometry from a path shape</div>
-
-
-		<h2>Constructor</h2>
-
-
-		<h3>[name]([page:Array shapes], [page:Object options])</h3>
-		<div>
-		shapes — Shape or an array of shapes. <br />
-		options — Object that can contain the following parameters.
-
-	<ul>
-<li>curveSegments —  int. number of points on the curves</li>
-<li>steps —  int. number of points used for subdividing segements of extrude spline</li>
-<li>amount —  int. Depth to extrude the shape</li>
-<li>bevelEnabled —  bool. turn on bevel</li>
-<li>bevelThickness —  float. how deep into the original shape bevel goes</li>
-<li>bevelSize —  float. how far from shape outline is bevel</li>
-<li>bevelSegments —  int. number of bevel layers</li>
-<li>extrudePath —  THREE.CurvePath. 3d spline path to extrude shape along. (creates Frames if (frames aren't defined)</li>
-<li>frames —  THREE.TubeGeometry.FrenetFrames.  containing arrays of tangents, normals, binormals</li>
-<li>material —  int. material index for front and back faces</li>
-<li>extrudeMaterial —  int. material index for extrusion and beveled faces</li>
-<li>uvGenerator —  Object. object that provides UV generator functions</li>
-	</ul>
-
-		</div>
-		<div>
-		This object extrudes an 2D shape to an 3D geometry.
-		</div>
-
-
-		<h2>Properties</h2>
-
-
-		<h2>Methods</h2>
-
-		<h3>[method:null addShapeList]([page:Array shapes], [page:Object options])</h3>
-		<div>
-			shapes — An Array of shapes to add. <br />
-			options — Object that can contain the following parameters.
-	<ul>
-<li>curveSegments —  int. number of points on the curves</li>
-<li>steps —  int. number of points used for subdividing segements of extrude spline</li>
-<li>amount —  int. Depth to extrude the shape</li>
-<li>bevelEnabled —  bool. turn on bevel</li>
-<li>bevelThickness —  float. how deep into the original shape bevel goes</li>
-<li>bevelSize —  float. how far from shape outline is bevel</li>
-<li>bevelSegments —  int. number of bevel layers</li>
-<li>extrudePath —  THREE.CurvePath. 3d spline path to extrude shape along. (creates Frames if (frames aren't defined)</li>
-<li>frames —  THREE.TubeGeometry.FrenetFrames.  containing arrays of tangents, normals, binormals</li>
-<li>material —  int. material index for front and back faces</li>
-<li>extrudeMaterial —  int. material index for extrusion and beveled faces</li>
-<li>uvGenerator —  Object. object that provides UV generator functions</li>
-	</ul>
-	</div>
-		<div>Adds the shapes to the list to extrude.</div>
-
-		<h3>[method:null addShape]([page:Shape shape], [page:Object options])</h3>
-		<div>
-			shape — A shape to add. <br />
-			options — Object that can contain the following parameters.
-	<ul>
-<li>curveSegments —  int. number of points on the curves</li>
-<li>steps —  int. number of points used for subdividing segements of extrude spline</li>
-<li>amount —  int. Depth to extrude the shape</li>
-<li>bevelEnabled —  bool. turn on bevel</li>
-<li>bevelThickness —  float. how deep into the original shape bevel goes</li>
-<li>bevelSize —  float. how far from shape outline is bevel</li>
-<li>bevelSegments —  int. number of bevel layers</li>
-<li>extrudePath —  THREE.CurvePath. 3d spline path to extrude shape along. (creates Frames if (frames aren't defined)</li>
-<li>frames —  THREE.TubeGeometry.FrenetFrames.  containing arrays of tangents, normals, binormals</li>
-<li>material —  int. material index for front and back faces</li>
-<li>extrudeMaterial —  int. material index for extrusion and beveled faces</li>
-<li>uvGenerator —  Object. object that provides UV generator functions</li>
-	</ul>
-	</div>
-		<div>Add the shape to the list to extrude.</div>
-
-
-		<h2>Source</h2>
-
-		[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
-	</body>
-</html>
+		<base href="../../../" />
+		<script src="list.js"></script>
+		<script src="page.js"></script>
+		<link type="text/css" rel="stylesheet" href="page.css" />
+	</head>
+	<body>
+		[page:Geometry] &rarr;
+
+		<h1>[name]</h1>
+
+		<div class="desc">Creates extruded geometry from a path shape</div>
+
+
+		<h2>Constructor</h2>
+
+
+		<h3>[name]([page:Array shapes], [page:Object options])</h3>
+		<div>
+		shapes — Shape or an array of shapes. <br />
+		options — Object that can contain the following parameters.
+
+	<ul>
+<li>curveSegments —  int. number of points on the curves</li>
+<li>steps —  int. number of points used for subdividing segements of extrude spline</li>
+<li>amount —  int. Depth to extrude the shape</li>
+<li>bevelEnabled —  bool. turn on bevel</li>
+<li>bevelThickness —  float. how deep into the original shape bevel goes</li>
+<li>bevelSize —  float. how far from shape outline is bevel</li>
+<li>bevelSegments —  int. number of bevel layers</li>
+<li>extrudePath —  THREE.CurvePath. 3d spline path to extrude shape along. (creates Frames if (frames aren't defined)</li>
+<li>frames —  THREE.TubeGeometry.FrenetFrames.  containing arrays of tangents, normals, binormals</li>
+<li>material —  int. material index for front and back faces</li>
+<li>extrudeMaterial —  int. material index for extrusion and beveled faces</li>
+<li>UVGenerator —  Object. object that provides UV generator functions</li>
+	</ul>
+
+		</div>
+		<div>
+		This object extrudes an 2D shape to an 3D geometry.
+		</div>
+
+
+		<h2>Properties</h2>
+
+
+		<h2>Methods</h2>
+
+		<h3>[method:null addShapeList]([page:Array shapes], [page:Object options])</h3>
+		<div>
+			shapes — An Array of shapes to add. <br />
+			options — Object that can contain the following parameters.
+	<ul>
+<li>curveSegments —  int. number of points on the curves</li>
+<li>steps —  int. number of points used for subdividing segements of extrude spline</li>
+<li>amount —  int. Depth to extrude the shape</li>
+<li>bevelEnabled —  bool. turn on bevel</li>
+<li>bevelThickness —  float. how deep into the original shape bevel goes</li>
+<li>bevelSize —  float. how far from shape outline is bevel</li>
+<li>bevelSegments —  int. number of bevel layers</li>
+<li>extrudePath —  THREE.CurvePath. 3d spline path to extrude shape along. (creates Frames if (frames aren't defined)</li>
+<li>frames —  THREE.TubeGeometry.FrenetFrames.  containing arrays of tangents, normals, binormals</li>
+<li>material —  int. material index for front and back faces</li>
+<li>extrudeMaterial —  int. material index for extrusion and beveled faces</li>
+<li>UVGenerator —  Object. object that provides UV generator functions</li>
+	</ul>
+	</div>
+		<div>Adds the shapes to the list to extrude.</div>
+
+		<h3>[method:null addShape]([page:Shape shape], [page:Object options])</h3>
+		<div>
+			shape — A shape to add. <br />
+			options — Object that can contain the following parameters.
+	<ul>
+<li>curveSegments —  int. number of points on the curves</li>
+<li>steps —  int. number of points used for subdividing segements of extrude spline</li>
+<li>amount —  int. Depth to extrude the shape</li>
+<li>bevelEnabled —  bool. turn on bevel</li>
+<li>bevelThickness —  float. how deep into the original shape bevel goes</li>
+<li>bevelSize —  float. how far from shape outline is bevel</li>
+<li>bevelSegments —  int. number of bevel layers</li>
+<li>extrudePath —  THREE.CurvePath. 3d spline path to extrude shape along. (creates Frames if (frames aren't defined)</li>
+<li>frames —  THREE.TubeGeometry.FrenetFrames.  containing arrays of tangents, normals, binormals</li>
+<li>material —  int. material index for front and back faces</li>
+<li>extrudeMaterial —  int. material index for extrusion and beveled faces</li>
+<li>UVGenerator —  Object. object that provides UV generator functions</li>
+	</ul>
+	</div>
+		<div>Add the shape to the list to extrude.</div>
+
+
+		<h2>Source</h2>
+
+		[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+	</body>
+</html>

+ 6 - 5
docs/api/extras/geometries/LatheGeometry.html

@@ -17,11 +17,12 @@
 
 
 		<h2>Example</h2>
 		<h2>Example</h2>
 
 
+		<iframe src='scenes/geometry-browser.html#LatheGeometry'></iframe>
+
 		<code>
 		<code>
 		var points = [];
 		var points = [];
 		for ( var i = 0; i < 10; i ++ ) {
 		for ( var i = 0; i < 10; i ++ ) {
-			points.push( new THREE.Vector2( Math.sin( i * 0.2 ) * 15 + 50, ( i - 5 ) * 2 ) );
-
+			points.push( new THREE.Vector2( Math.sin( i * 0.2 ) * 10 + 5, ( i - 5 ) * 2 ) );
 		}
 		}
 		var geometry = new THREE.LatheGeometry( points );
 		var geometry = new THREE.LatheGeometry( points );
 		var material = new THREE.MeshBasicMaterial( { color: 0xffff00 } );
 		var material = new THREE.MeshBasicMaterial( { color: 0xffff00 } );
@@ -34,13 +35,13 @@
 
 
 		<h3>[name]([page:Array points], [page:Integer segments], [page:Float phiStart], [page:Float phiLength])</h3>
 		<h3>[name]([page:Array points], [page:Integer segments], [page:Float phiStart], [page:Float phiLength])</h3>
 		<div>
 		<div>
-		points — Array of Vector2s.<br />
+		points — Array of Vector2s. The x-coordinate of each point must be greater than zero.<br />
 		segments — the number of circumference segments to generate. Default is 12.<br />
 		segments — the number of circumference segments to generate. Default is 12.<br />
 		phiStart — the starting angle in radians. Default is 0.<br />
 		phiStart — the starting angle in radians. Default is 0.<br />
-		phiLength — the radian (0 to 2*PI) range of the lathed section 2*PI is a closed lathe, less than 2PI is a portion. Default is 2*PI
+		phiLength — the radian (0 to 2PI) range of the lathed section 2PI is a closed lathe, less than 2PI is a portion. Default is 2PI.
 		</div>
 		</div>
 		<div>
 		<div>
-		This creates a LatheGeometry based on the parameters.
+		This creates a LatheBufferGeometry based on the parameters.
 		</div>
 		</div>
 
 
 
 

+ 50 - 50
docs/api/extras/geometries/PlaneGeometry.html

@@ -1,51 +1,51 @@
-<!DOCTYPE html>
-<html lang="en">
-	<head>
+<!DOCTYPE html>
+<html lang="en">
+	<head>
 		<meta charset="utf-8" />
 		<meta charset="utf-8" />
-		<base href="../../../" />
-		<script src="list.js"></script>
-		<script src="page.js"></script>
-		<link type="text/css" rel="stylesheet" href="page.css" />
-	</head>
-	<body>
-		[page:Geometry] &rarr;
-
-		<h1>[name]</h1>
-
-		<div class="desc">A class for generating plane geometries</div>
-
-
-		<h2>Example</h2>
-
-		<iframe src='scenes/geometry-browser.html#PlaneGeometry'></iframe>
-
-		<code>var geometry = new THREE.PlaneGeometry( 5, 20, 32 );
-		var material = new THREE.MeshBasicMaterial( {color: 0xffff00, side: THREE.DoubleSide} );
-		var plane = new THREE.Mesh( geometry, material );
-		scene.add( plane );
-		</code>
-
-
-		<h2>Constructor</h2>
-
-
-		<h3>[name]([page:Float width], [page:Float height], [page:Integer widthSegments], [page:Integer heightSegments])</h3>
-		<div>
-		width — Width along the X axis.<br />
-		height — Height along the Y axis.<br />
-		widthSegments — Optional. Default is 1. <br />
-		heightSegments — Optional. Default is 1.
-		</div>
-
-
-		<h2>Properties</h2>
-
-		<div>
-		Each of the contructor parameters is accessible as a property of the same name. Any modification of these properties after instantiation does not change the geometry.
-		</div>
-
-		<h2>Source</h2>
-
-		[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
-	</body>
-</html>
+		<base href="../../../" />
+		<script src="list.js"></script>
+		<script src="page.js"></script>
+		<link type="text/css" rel="stylesheet" href="page.css" />
+	</head>
+	<body>
+		[page:Geometry] &rarr;
+
+		<h1>[name]</h1>
+
+		<div class="desc">A class for generating plane geometries</div>
+
+
+		<h2>Example</h2>
+
+		<iframe src='scenes/geometry-browser.html#PlaneGeometry'></iframe>
+
+		<code>var geometry = new THREE.PlaneGeometry( 5, 20, 32 );
+		var material = new THREE.MeshBasicMaterial( {color: 0xffff00, side: THREE.DoubleSide} );
+		var plane = new THREE.Mesh( geometry, material );
+		scene.add( plane );
+		</code>
+
+
+		<h2>Constructor</h2>
+
+
+		<h3>[name]([page:Float width], [page:Float height], [page:Integer widthSegments], [page:Integer heightSegments])</h3>
+		<div>
+		width — Width along the X axis.<br />
+		height — Height along the Y axis.<br />
+		widthSegments — Optional. Default is 1. <br />
+		heightSegments — Optional. Default is 1.
+		</div>
+
+
+		<h2>Properties</h2>
+
+		<div>
+		Each of the contructor parameters is accessible in the parameters property of the object. Any modification of these properties after instantiation does not change the geometry.
+		</div>
+
+		<h2>Source</h2>
+
+		[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+	</body>
+</html>

+ 9 - 8
docs/api/extras/geometries/TorusKnotGeometry.html

@@ -29,15 +29,16 @@
 		<h2>Constructor</h2>
 		<h2>Constructor</h2>
 
 
 
 
-		<h3>[name]([page:Float radius], [page:Float tube], [page:Integer radialSegments], [page:Integer tubularSegments], [page:Integer p], [page:Integer q], [page:Float heightScale])</h3>
+		<h3>[name]([page:Float radius], [page:Float tube], [page:Integer tubularSegments], [page:Integer radialSegments], [page:Integer p], [page:Integer q])</h3>
 		<div>
 		<div>
-		radius — Default is 100. <br />
-		tube — Default is 40. <br />
-		radialSegments — Default is 64. <br />
-		tubularSegments — Default is 8. <br />
-		p — Default is 2. <br />
-		q — Default is 3. <br />
-		heightScale — Default is 1.
+			<ul>
+				<li>radius — Default is 100.</li>
+				<li>tube — Diameter of the tube. Default is 40.</li>
+				<li>tubularSegments — Default is 64.</li>
+				<li>radialSegments — Default is 8.</li>
+				<li>p — This value determines, how many times the geometry winds around its axis of rotational symmetry. Default is 2.</li>
+				<li>q — This value determines, how many times the geometry winds around a circle in the interior of the torus. Default is 3.</li>
+			</ul>
 		</div>
 		</div>
 
 
 
 

+ 1 - 1
docs/api/extras/geometries/TubeGeometry.html

@@ -51,7 +51,7 @@ var geometry = new THREE.TubeGeometry(
 		segments — [page:Integer] - The number of segments that make up the tube, default is 64<br />
 		segments — [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 />
 		radius — [page:Float] - The radius of the tube, default is 1<br />
 		radiusSegments — [page:Integer] - The number of segments that make up the cross-section, default is 8 <br />
 		radiusSegments — [page:Integer] - The number of segments that make up the cross-section, default is 8 <br />
-		closed — [page:Float] Is the tube open or closed, default is false <br />
+		closed — [page:Boolean] Is the tube open or closed, default is false <br />
 		</div>
 		</div>
 
 
 
 

+ 64 - 59
docs/api/extras/helpers/SpotLightHelper.html

@@ -1,60 +1,65 @@
-<!DOCTYPE html>
-<html lang="en">
-	<head>
+<!DOCTYPE html>
+<html lang="en">
+	<head>
 		<meta charset="utf-8" />
 		<meta charset="utf-8" />
-		<base href="../../../" />
-		<script src="list.js"></script>
-		<script src="page.js"></script>
-		<link type="text/css" rel="stylesheet" href="page.css" />
-	</head>
-	<body>
-		[page:Object3D] &rarr;
-
-		<h1>[name]</h1>
-
-		<div class="desc">This displays a cylinder helper object for a [page:SpotLight] </div>
-
-
-		<h2>Example</h2>
-
-		<code>
-		var spotLight = new THREE.SpotLight( 0xffffff );
-		spotLight.position.set( 10, 10, 10 );
-		scene.add( spotLight );
-
-		var spotLightHelper = new THREE.SpotLightHelper( spotLight );
-		scene.add( spotLightHelper );
-		</code>
-
-
-		<h2>Constructor</h2>
-
-
-		<h3>[name]([page:SpotLight light])</h3>
-		<div>
-		light -- The [page:SpotLight] to display
-		</div>
-
-
-		<h2>Properties</h2>
-
-
-		<h3>[property:SpotLight light]</h3>
-		<div>
-		The [page:SpotLight]
-		</div>
-
-
-		<h2>Methods</h2>
-
-
-		<h3>[method:null update]()</h3>
-		<div>
-		Updates the light helper.
-		</div>
-
-		<h2>Source</h2>
-
-		[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
-	</body>
-</html>
+		<base href="../../../" />
+		<script src="list.js"></script>
+		<script src="page.js"></script>
+		<link type="text/css" rel="stylesheet" href="page.css" />
+	</head>
+	<body>
+		[page:Object3D] &rarr;
+
+		<h1>[name]</h1>
+
+		<div class="desc">This displays a cylinder helper object for a [page:SpotLight] </div>
+
+		<h2>Example</h2>
+		<iframe src='../examples/webgl_lights_spotlight.html'></iframe>
+		<a target="THREE_Examples" href="../examples/#webgl_lights_spotlight">View in Examples</a><br />
+		<h2>Other Examples</h2>
+
+		<div>[example:webgl_lights_spotlights lights / spotlights ]</div>
+
+		<h2>Code Example</h2>
+		<code>
+		var spotLight = new THREE.SpotLight( 0xffffff );
+		spotLight.position.set( 10, 10, 10 );
+		scene.add( spotLight );
+
+		var spotLightHelper = new THREE.SpotLightHelper( spotLight );
+		scene.add( spotLightHelper );
+		</code>
+
+
+		<h2>Constructor</h2>
+
+
+		<h3>[name]([page:SpotLight light])</h3>
+		<div>
+		light -- The [page:SpotLight] to display
+		</div>
+
+
+		<h2>Properties</h2>
+
+
+		<h3>[property:SpotLight light]</h3>
+		<div>
+		The [page:SpotLight]
+		</div>
+
+
+		<h2>Methods</h2>
+
+
+		<h3>[method:null update]()</h3>
+		<div>
+		Updates the light helper.
+		</div>
+
+		<h2>Source</h2>
+
+		[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+	</body>
+</html>

+ 12 - 17
docs/api/lights/AmbientLight.html

@@ -24,34 +24,29 @@
 		<div>[example:canvas_sandbox sandbox ]</div>
 		<div>[example:canvas_sandbox sandbox ]</div>
 		<div>[example:webgl_animation_cloth animation / cloth ]</div>
 		<div>[example:webgl_animation_cloth animation / cloth ]</div>
 		<div>[example:webgl_animation_skinning_blending animation / skinning / blending ]</div>
 		<div>[example:webgl_animation_skinning_blending animation / skinning / blending ]</div>
-		
+
 <code>var light = new THREE.AmbientLight( 0x404040 ); // soft white light
 <code>var light = new THREE.AmbientLight( 0x404040 ); // soft white light
 scene.add( light );</code>
 scene.add( light );</code>
 
 
 		<h2>Constructor</h2>
 		<h2>Constructor</h2>
 
 
-
-		<h3>[name]( [page:Integer hex] )</h3>
+		<h3>[name]( [page:Integer color], [page:Float intensity] )</h3>
 		<div>
 		<div>
-		[page:Integer hex] — Numeric value of the RGB component of the color.
+		[page:Integer color] — Numeric value of the RGB component of the color. <br />
+		[page:Float intensity] -- Numeric value of the light's strength/intensity.
 		</div>
 		</div>
 		<div>
 		<div>
-		This creates an Ambientlight with a color.
+		This creates an Ambientlight with a color and intensity.
 		</div>
 		</div>
 
 
+		<h2>Properties</h2>
+
+		See the base [page:Light Light] class for common properties.
+
 		<h2>Methods</h2>
 		<h2>Methods</h2>
-		
-		<h3>[method:AmbientLight clone]()</h3>
-		<div>
-		<br />
-		It returns a clone of Ambientlight.
-		</div>
-		
-		<h3>[method:JSON toJSON]()</h3>
-		<div>
-		Return Ambientlight data in JSON format.
-		</div>
-		
+
+		See the base [page:Light Light] class for common methods.
+
 		<h2>Source</h2>
 		<h2>Source</h2>
 
 
 		[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
 		[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]

+ 11 - 92
docs/api/lights/DirectionalLight.html

@@ -37,8 +37,7 @@ scene.add( directionalLight );</code>
 
 
 		<h2>Constructor</h2>
 		<h2>Constructor</h2>
 
 
-
-		<h3>[name]([page:Integer hex], [page:Float intensity])</h3>
+		<h3>[name]( [page:Integer hex], [page:Float intensity] )</h3>
 		<div>
 		<div>
 		[page:Integer hex] -- Numeric value of the RGB component of the color. <br />
 		[page:Integer hex] -- Numeric value of the RGB component of the color. <br />
 		[page:Float intensity] -- Numeric value of the light's strength/intensity.
 		[page:Float intensity] -- Numeric value of the light's strength/intensity.
@@ -52,112 +51,32 @@ scene.add( directionalLight );</code>
 
 
 		<h2>Properties</h2>
 		<h2>Properties</h2>
 
 
+		See the base [page:Light Light] class for common properties.
+
 		<h3>[property:Object3D target]</h3>
 		<h3>[property:Object3D target]</h3>
 		<div>
 		<div>
 			Target used for shadow camera orientation.
 			Target used for shadow camera orientation.
 		</div>
 		</div>
 
 
-		<h3>[property:Float intensity]</h3>
+		<h3>[property:DirectionalLightShadow shadow]</h3>
 		<div>
 		<div>
-			Light's intensity.<br />
-			Default — *1.0*.
+			This property stores all relevant information for rendering the shadow of the light.<br />
 		</div>
 		</div>
 
 
 		<h3>[property:Boolean castShadow]</h3>
 		<h3>[property:Boolean castShadow]</h3>
 		<div>
 		<div>
-			If set to true light will cast dynamic shadows. Warning: This is expensive and requires tweaking to get shadows looking right.<br />
-			Default — *false*.
-		</div>
-
-		<h3>[property:Float shadowCameraNear]</h3>
-		<div>
-			Orthographic shadow camera frustum parameter.<br />
-			Default — *50*.
-		</div>
-
-		<h3>[property:Float shadowCameraFar]</h3>
-		<div>
-			Orthographic shadow camera frustum parameter.<br />
-			Default — *5000*.
-		</div>
-
-		<h3>[property:Float shadowCameraLeft]</h3>
-		<div>
-			Orthographic shadow camera frustum parameter.<br />
-			Default — *-500*.
-		</div>
-
-		<h3>[property:Float shadowCameraRight]</h3>
-		<div>
-			Orthographic shadow camera frustum parameter.<br />
-			Default — *500*.
-		</div>
-
-		<h3>[property:Float shadowCameraTop]</h3>
-		<div>
-			Orthographic shadow camera frustum parameter.<br />
-			Default — *500*.
-		</div>
-
-		<h3>[property:Float shadowCameraBottom]</h3>
-		<div>
-			Orthographic shadow camera frustum parameter.<br />
-			Default — *-500*.
-		</div>
-
-		<h3>[property:Boolean shadowCameraVisible]</h3>
-		<div>
-			Show debug shadow camera frustum.<br />
+			If set to *true* light will cast dynamic shadows. *Warning*: This is expensive and requires tweaking to get shadows looking right.<br />
 			Default — *false*.
 			Default — *false*.
 		</div>
 		</div>
 
 
-		<h3>[property:Float shadowBias]</h3>
-		<div>
-			Shadow map bias, how much to add or subtract from the normalized depth when deciding whether a surface is in shadow.<br />
-			Default — *0*.
-		</div>
-
-		<h3>[property:Integer shadowMapWidth]</h3>
-		<div>
-			Shadow map texture width in pixels.<br />
-			Default — *512*.
-		</div>
-
-		<h3>[property:Integer shadowMapHeight]</h3>
-		<div>
-			Shadow map texture height in pixels.<br />
-			Default — *512*.
-		</div>
-
-		<h3>[property:Vector2 shadowMapSize]</h3>
-		<div>
-			The shadowMapWidth and shadowMapHeight stored in a [page:Vector2 THREE.Vector2]. Set internally during rendering.
-		</div>
-
-		<h3>[property:OrthographicCamera shadowCamera]</h3>
-		<div>
-			The shadow's view of the world. Computed internally during rendering from the shadowCamera* settings.
-		</div>
-
-		<h3>[property:Matrix4 shadowMatrix]</h3>
-		<div>
-			Model to shadow camera space, to compute location and depth in shadow map. Computed internally during rendering.
-		</div>
-
-		<h3>[property:WebGLRenderTarget shadowMap]</h3>
-		<div>
-		    The depth map generated using the shadowCamera; a location beyond a pixel's depth is in shadow. Computed internally during rendering.
-		</div>
-
 		<h2>Methods</h2>
 		<h2>Methods</h2>
-		<h3>[method:DirectionalLight clone]()</h3>
-		<div>
-		It returns a clone of DirectionalLight.
-		</div>
 
 
-		<h3>[method:JSON toJSON]()</h3>
+		See the base [page:Light Light] class for common methods.
+
+		<h3>[method:DirectionalLight copy]( [page:DirectionalLight source] )</h3>
 		<div>
 		<div>
-		Return DirectionalLight data in JSON format.
+		<br />
+		Copies value of *source* to this DirectionalLight object.
 		</div>
 		</div>
 
 
 		<h2>Source</h2>
 		<h2>Source</h2>

+ 33 - 0
docs/api/lights/DirectionalLightShadow.html

@@ -0,0 +1,33 @@
+<!DOCTYPE html>
+<html lang="en">
+	<head>
+		<meta charset="utf-8" />
+		<base href="../../" />
+		<script src="list.js"></script>
+		<script src="page.js"></script>
+		<link type="text/css" rel="stylesheet" href="page.css" />
+	</head>
+	<body>
+		[page:LightShadow] &rarr;
+
+		<h1>[name]</h1>
+
+		<div class="desc">TODO</div>
+
+		<h2>Constructor</h2>
+
+		The constructor creates an [page:OrthographicCamera OrthographicCamera] to manage the shadow's view of the world.
+
+		<h2>Properties</h2>
+
+		See the base [page:LightShadow LightShadow] class for common properties.
+
+		<h2>Methods</h2>
+
+		See the base [page:LightShadow LightShadow] class for common methods.
+
+		<h2>Source</h2>
+
+		[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+	</body>
+</html>

+ 13 - 19
docs/api/lights/HemisphereLight.html

@@ -13,54 +13,48 @@
 		<h1>[name]</h1>
 		<h1>[name]</h1>
 
 
 		<div class="desc">A light source positioned directly above the scene.</div>
 		<div class="desc">A light source positioned directly above the scene.</div>
-		
+
 		<h2>Example</h2>
 		<h2>Example</h2>
-		
+
 		<div>[example:webgl_lights_hemisphere lights / hemisphere ]</div>
 		<div>[example:webgl_lights_hemisphere lights / hemisphere ]</div>
 		<div>[example:misc_controls_pointerlock controls / pointerlock ]</div>
 		<div>[example:misc_controls_pointerlock controls / pointerlock ]</div>
 		<div>[example:webgl_decals decals ]</div>
 		<div>[example:webgl_decals decals ]</div>
 		<div>[example:webgl_loader_collada_kinematics loader / collada / kinematics ]</div>
 		<div>[example:webgl_loader_collada_kinematics loader / collada / kinematics ]</div>
 		<div>[example:webgl_materials_lightmap materials / lightmap ]</div>
 		<div>[example:webgl_materials_lightmap materials / lightmap ]</div>
 		<div>[example:webgl_shaders_ocean shaders / ocean ]</div>
 		<div>[example:webgl_shaders_ocean shaders / ocean ]</div>
-		
+
 <code>var light = new THREE.HemisphereLight( 0xffffbb, 0x080820, 1 );
 <code>var light = new THREE.HemisphereLight( 0xffffbb, 0x080820, 1 );
 scene.add( light );</code>
 scene.add( light );</code>
 
 
 		<h2>Constructor</h2>
 		<h2>Constructor</h2>
 
 
 
 
-		<h3>[name]([page:Integer skyColorHex], [page:Integer groundColorHex], [page:Float intensity])</h3>
+		<h3>[name]( [page:Integer skyColor], [page:Integer groundColor], [page:Float intensity] )</h3>
         <div>
         <div>
-		[page:Integer skyColorHex] — Numeric value of the RGB sky color.<br />
-		[page:Integer groundColorHex] — Numeric value of the RGB ground color.<br />
+		[page:Integer skyColor] — Numeric value of the RGB sky color.<br />
+		[page:Integer groundColor] — Numeric value of the RGB ground color.<br />
 		[page:Float intensity] — Numeric value of the light's strength/intensity.
 		[page:Float intensity] — Numeric value of the light's strength/intensity.
 		</div>
 		</div>
 
 
 		<h2>Properties</h2>
 		<h2>Properties</h2>
 
 
+		See the base [page:Light Light] class for common properties.
+
 		<h3>[property:Float groundColor]</h3>
 		<h3>[property:Float groundColor]</h3>
 
 
 		<div>
 		<div>
 			Light's ground color.<br />
 			Light's ground color.<br />
 		</div>
 		</div>
 
 
-		<h3>[property:Float intensity]</h3>
-		<div>
-			Light's intensity.<br />
-			Default — *1.0*.
-		</div>
 
 
 		<h2>Methods</h2>
 		<h2>Methods</h2>
-		
-		<h3>[method:HemisphereLight clone]()</h3>
+
+		See the base [page:Light Light] class for common methods.
+
+		<h3>[method:HemisphereLight copy]( [page:HemisphereLight source] )</h3>
 		<div>
 		<div>
 		<br />
 		<br />
-		It returns a clone of HemisphereLight.
-		</div>
-		
-		<h3>[method:JSON toJSON]()</h3>
-		<div>
-		Return HemisphereLight data in JSON format.
+		Copies value of *source* to this HemisphereLight object.
 		</div>
 		</div>
 
 
 		<h2>Source</h2>
 		<h2>Source</h2>

+ 26 - 10
docs/api/lights/Light.html

@@ -18,30 +18,46 @@
 		<h2>Constructor</h2>
 		<h2>Constructor</h2>
 
 
 
 
-		<h3>[name]( [page:Integer hex] )</h3>
+		<h3>[name]( [page:Integer color], [page:float intensity] )</h3>
 		<div>
 		<div>
-		[page:Integer hex] — Numeric value of the RGB component of the color.
+		[page:Integer color] — Numeric value of the RGB component of the color.<br />
+		[page:Float intensity] — Numeric value of the light's strength/intensity.
 		</div>
 		</div>
 		<div>
 		<div>
-		This creates a light with color.<br />
+		This creates a light with color and intensity.<br />
 		</div>
 		</div>
 
 
-
 		<h2>Properties</h2>
 		<h2>Properties</h2>
 
 
+		See the base [page:Object3D Object3D] class for common properties.
+
 		<h3>[property:Color color]</h3>
 		<h3>[property:Color color]</h3>
 		<div>
 		<div>
-		Color of the light.<br />
+			Color of the light.<br />
+		</div>
+
+		<h3>[property:Float intensity]</h3>
+		<div>
+			Light's intensity.<br />
+			In "physically correct" mode, the product of color * intensity is interpreted as luminous intensity measured in candela.<br/>
+			Default — *1.0*.
 		</div>
 		</div>
-		
+
 		<h2>Methods</h2>
 		<h2>Methods</h2>
-		
-		<h3>[method:Light clone]()</h3>
+
+		See the base [page:Object3D Object3D] class for common methods.
+
+		<h3>[method:Light copy]( [page:Light source] )</h3>
 		<div>
 		<div>
 		<br />
 		<br />
-		It returns a clone of Light.
+		Copies value of *source* to this Light object.
+		</div>
+
+		<h3>[method:JSON toJSON]( [page:String meta] )</h3>
+		<div>
+		Return Light data in JSON format.
 		</div>
 		</div>
-		
+
 		<h2>Source</h2>
 		<h2>Source</h2>
 
 
 		[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
 		[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]

+ 75 - 0
docs/api/lights/LightShadow.html

@@ -0,0 +1,75 @@
+<!DOCTYPE html>
+<html lang="en">
+	<head>
+		<meta charset="utf-8" />
+		<base href="../../" />
+		<script src="list.js"></script>
+		<script src="page.js"></script>
+		<link type="text/css" rel="stylesheet" href="page.css" />
+	</head>
+	<body>
+
+		<h1>[name]</h1>
+
+		<div class="desc">TODO</div>
+
+		<h2>Constructor</h2>
+
+
+		<h3>[name]( [page:Camera camera] )</h3>
+		<div>
+		[page:Camera camera] — The shadow's view of the world.
+		</div>
+
+		<h2>Properties</h2>
+
+		<h3>[property:Camera camera]</h3>
+		<div>
+			The shadow's view of the world.
+		</div>
+
+		<h3>[property:Float bias]</h3>
+		<div>
+			Shadow map bias, how much to add or subtract from the normalized depth when deciding whether a surface is in shadow.<br />
+			Default — *0*.
+		</div>
+
+		<h3>[property:Float radius]</h3>
+		<div>
+			TODO<br />
+			Default - *0*.
+		</div>
+
+		<h3>[property:Vector2 mapSize]</h3>
+		<div>
+			The width and height of the shadow map stored in a [page:Vector2 Vector2].<br />
+			Default — *( 512, 512 )*.
+		</div>
+
+		<h3>[property:WebGLRenderTarget map]</h3>
+		<div>
+			The depth map generated using the internal camera; a location beyond a pixel's depth is in shadow. Computed internally during rendering.
+		</div>
+
+		<h3>[property:Matrix4 matrix]</h3>
+		<div>
+			Model to shadow camera space, to compute location and depth in shadow map. Stored in a [page:Matrix4 Matrix4]. Computed internally during rendering.
+		</div>
+
+
+		<h2>Methods</h2>
+		<h3>[method:LightShadow copy]( [page:LightShadow source] )</h3>
+		<div>
+		Copies value of *source* to this LightShadow object.
+		</div>
+
+		<h3>[method:LightShadow clone]()</h3>
+		<div>
+		It returns a clone of LightShadow.
+		</div>
+
+		<h2>Source</h2>
+
+		[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+	</body>
+</html>

+ 23 - 19
docs/api/lights/PointLight.html

@@ -28,7 +28,7 @@
 		<div>[example:webgl_geometry_large_mesh geometry / large / mesh ]</div>
 		<div>[example:webgl_geometry_large_mesh geometry / large / mesh ]</div>
 		<div>[example:webgl_geometry_text geometry / text ]</div>
 		<div>[example:webgl_geometry_text geometry / text ]</div>
 		<div>[example:webgl_lensflares lensflares ]</div>
 		<div>[example:webgl_lensflares lensflares ]</div>
-		
+
 		<code>var light = new THREE.PointLight( 0xff0000, 1, 100 );
 		<code>var light = new THREE.PointLight( 0xff0000, 1, 100 );
 light.position.set( 50, 50, 50 );
 light.position.set( 50, 50, 50 );
 scene.add( light );</code>
 scene.add( light );</code>
@@ -37,25 +37,27 @@ scene.add( light );</code>
 		<h2>Constructor</h2>
 		<h2>Constructor</h2>
 
 
 
 
-		<h3>[name]([page:Integer hex], [page:Float intensity], [page:Number distance], [page:Float decay])</h3>
+		<h3>[name]( [page:Integer color], [page:Float intensity], [page:Number distance], [page:Float decay] )</h3>
 		<div>
 		<div>
-		[page:Integer hex] — Numeric value of the RGB component of the color. <br />
+		[page:Integer color] — Numeric value of the RGB component of the color. <br />
 		[page:Float intensity] — Numeric value of the light's strength/intensity. <br />
 		[page:Float intensity] — Numeric value of the light's strength/intensity. <br />
 		[page:Number distance] -- The distance of the light where the intensity is 0. When distance is 0, then the distance is endless. <br />
 		[page:Number distance] -- The distance of the light where the intensity is 0. When distance is 0, then the distance is endless. <br />
 		[page:Float decay] -- The amount the light dims along the distance of the light.
 		[page:Float decay] -- The amount the light dims along the distance of the light.
 		</div>
 		</div>
 		<div>
 		<div>
 		Creates a light at a specific position in the scene.  The light shines in all directions (roughly similar to a light bulb.)
 		Creates a light at a specific position in the scene.  The light shines in all directions (roughly similar to a light bulb.)
-	
-		</div>
 
 
+		</div>
 
 
 		<h2>Properties</h2>
 		<h2>Properties</h2>
 
 
-		<h3>[property:Float intensity]</h3>
+		See the base [page:Light Light] class for common properties.
+
+		<h3>[property:Float power]</h3>
 		<div>
 		<div>
-			Light's intensity.<br />
-			Default - *1.0*.
+			Light's power.<br />
+			In "physically correct" mode, the luminous power of the light measured in lumens.<br/>
+			Default - *4PI*.
 		</div>
 		</div>
 
 
 		<h3>[property:Float distance]</h3>
 		<h3>[property:Float distance]</h3>
@@ -63,27 +65,29 @@ scene.add( light );</code>
 			If non-zero, light will attenuate linearly from maximum intensity at light *position* down to zero at *distance*.<br />
 			If non-zero, light will attenuate linearly from maximum intensity at light *position* down to zero at *distance*.<br />
 			Default — *0.0*.
 			Default — *0.0*.
 		</div>
 		</div>
-		
+
 		<h3>[property:Float decay]</h3>
 		<h3>[property:Float decay]</h3>
 		<div>
 		<div>
 			The amount the light dims along the distance of the light<br />
 			The amount the light dims along the distance of the light<br />
+			In "physically correct" mode, decay = 2 leads to physically realistic light falloff.<br/>
 			Default — *1*.
 			Default — *1*.
 		</div>
 		</div>
-		
-		<h2>Methods</h2>
-		
-		<h3>[method:PointLight clone]()</h3>
+
+		<h3>[property:LightShadow shadow]</h3>
 		<div>
 		<div>
-		<br />
-		It returns a clone of PointLight.
+			This property stores all relevant information for rendering the shadow of the light.<br />
 		</div>
 		</div>
-		
-		<h3>[method:JSON toJSON]()</h3>
+
+		<h2>Methods</h2>
+
+		See the base [page:Light Light] class for common methods.
+
+		<h3>[method:PointLight copy]( [page:PointLight source] )</h3>
 		<div>
 		<div>
-		Return PointLight data in JSON format.
+		<br />
+		Copies value of *source* to this PointLight object.
 		</div>
 		</div>
 
 
-
 		<h2>Source</h2>
 		<h2>Source</h2>
 
 
 		[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
 		[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]

+ 36 - 85
docs/api/lights/SpotLight.html

@@ -1,4 +1,4 @@
-<!DOCTYPE html>
+	<!DOCTYPE html>
 <html lang="en">
 <html lang="en">
 	<head>
 	<head>
 		<meta charset="utf-8" />
 		<meta charset="utf-8" />
@@ -12,12 +12,18 @@
 
 
 		<h1>[name]</h1>
 		<h1>[name]</h1>
 
 
-		<div class="desc">A point light that can cast shadow in one direction.</div>
+		<div class="desc">A point light that can cast a shadow in one direction within a falloff cone.</div>
 
 
 		<div class="desc">Affects objects using [page:MeshLambertMaterial] or [page:MeshPhongMaterial].</div>
 		<div class="desc">Affects objects using [page:MeshLambertMaterial] or [page:MeshPhongMaterial].</div>
 
 
 
 
 		<h2>Example</h2>
 		<h2>Example</h2>
+
+		<iframe src='../examples/webgl_lights_spotlight.html'></iframe>
+		<a target="THREE_Examples" href="../examples/#webgl_lights_spotlight">View in Examples</a><br />
+		<h2>Other Examples</h2>
+
+		<div>[example:webgl_lights_spotlights lights / spotlights ]</div>
 		<div>[example:webgl_interactive_cubes_gpu interactive / cubes / gpu ]</div>
 		<div>[example:webgl_interactive_cubes_gpu interactive / cubes / gpu ]</div>
 		<div>[example:webgl_interactive_draggablecubes interactive / draggablecubes ]</div>
 		<div>[example:webgl_interactive_draggablecubes interactive / draggablecubes ]</div>
 		<div>[example:webgl_materials_bumpmap_skin materials / bumpmap / skin ]</div>
 		<div>[example:webgl_materials_bumpmap_skin materials / bumpmap / skin ]</div>
@@ -25,6 +31,7 @@
 		<div>[example:webgl_morphtargets_md2 morphtargets / md2 ]</div>
 		<div>[example:webgl_morphtargets_md2 morphtargets / md2 ]</div>
 		<div>[example:webgl_shading_physical shading / physical ]</div>
 		<div>[example:webgl_shading_physical shading / physical ]</div>
 
 
+		<h2>Code Example</h2>
 		<code>
 		<code>
 		// white spotlight shining from the side, casting shadow
 		// white spotlight shining from the side, casting shadow
 
 
@@ -33,16 +40,17 @@
 
 
 		spotLight.castShadow = true;
 		spotLight.castShadow = true;
 
 
-		spotLight.shadowMapWidth = 1024;
-		spotLight.shadowMapHeight = 1024;
+		spotLight.shadow.mapSize.width = 1024;
+		spotLight.shadow.mapSize.height = 1024;
 
 
-		spotLight.shadowCameraNear = 500;
-		spotLight.shadowCameraFar = 4000;
-		spotLight.shadowCameraFov = 30;
+		spotLight.shadow.camera.near = 500;
+		spotLight.shadow.camera.far = 4000;
+		spotLight.shadow.camera.fov = 30;
 
 
 		scene.add( spotLight );
 		scene.add( spotLight );
 		</code>
 		</code>
 
 
+		<h2>Extra Examples</h2>
 		<div>
 		<div>
 		[example:webgl_materials_bumpmap materials / bumpmap]<br/>
 		[example:webgl_materials_bumpmap materials / bumpmap]<br/>
 		[example:webgl_shading_physical shading / physical]<br/>
 		[example:webgl_shading_physical shading / physical]<br/>
@@ -55,18 +63,20 @@
 		<h2>Constructor</h2>
 		<h2>Constructor</h2>
 
 
 
 
-		<h3>[name]([page:Integer hex], [page:Float intensity], [page:Float distance], [page:Radians angle], [page:Float exponent], [page:Float decay])</h3>
+		<h3>[name]( [page:Integer color], [page:Float intensity], [page:Float distance], [page:Radians angle], [page:Float penumbra], [page:Float decay] )</h3>
 		<div>
 		<div>
-		[page:Integer hex] — Numeric value of the RGB component of the color. <br />
+		[page:Integer color] — Numeric value of the RGB component of the color. <br />
 		[page:Float intensity] — Numeric value of the light's strength/intensity. <br />
 		[page:Float intensity] — Numeric value of the light's strength/intensity. <br />
 		[page:Float distance] -- Maximum distance from origin where light will shine whose intensity is attenuated linearly based on distance from origin. <br />
 		[page:Float distance] -- Maximum distance from origin where light will shine whose intensity is attenuated linearly based on distance from origin. <br />
 		[page:Radians angle] -- Maximum angle of light dispersion from its direction whose upper bound is Math.PI/2.<br />
 		[page:Radians angle] -- Maximum angle of light dispersion from its direction whose upper bound is Math.PI/2.<br />
-		[page:Float exponent] -- Rapidity of the falloff of light from its target direction.<br />
+		[page:Float penumbra] -- Percent of the spotlight cone that is attenuated due to penumbra. Takes values between zero and 1. Default is zero.<br />
 		[page:Float decay] -- The amount the light dims along the distance of the light.
 		[page:Float decay] -- The amount the light dims along the distance of the light.
 		</div>
 		</div>
 
 
 		<h2>Properties</h2>
 		<h2>Properties</h2>
 
 
+		See the base [page:Light Light] class for common properties.
+
 		<h3>[property:Object3D target]</h3>
 		<h3>[property:Object3D target]</h3>
 		<div>
 		<div>
 			Spotlight focus points at target.position.<br />
 			Spotlight focus points at target.position.<br />
@@ -74,10 +84,11 @@
 			*Note*: Currently for target property to work properly, it must be part of the [page:Scene scene], e.g. this will help: <code>scene.add( light.target )</code>
 			*Note*: Currently for target property to work properly, it must be part of the [page:Scene scene], e.g. this will help: <code>scene.add( light.target )</code>
 		</div>
 		</div>
 
 
-		<h3>[property:Float intensity]</h3>
+		<h3>[property:Float power]</h3>
 		<div>
 		<div>
-			Light's intensity.<br />
-			Default — *1.0*.
+			Light's power.<br />
+			In "physically correct" mode, the luminous power of the light measured in lumens.<br/>
+			Default - *4PI*.
 		</div>
 		</div>
 
 
 		<h3>[property:Float distance]</h3>
 		<h3>[property:Float distance]</h3>
@@ -92,99 +103,39 @@
 			Default — *Math.PI/3*.
 			Default — *Math.PI/3*.
 		</div>
 		</div>
 
 
-		<h3>[property:Float exponent]</h3>
+		<h3>[property:Float penumbra]</h3>
 		<div>
 		<div>
-			Rapidity of the falloff of light from its target direction. A lower value spreads out the light, while a higher
-			focuses it towards the center.<br />
-			Default — *10.0*.
+			Percent of the spotlight cone that is attenuated due to penumbra. Takes values between zero and 1.<br />
+			Default — *0.0*.
 		</div>
 		</div>
 
 
 		<h3>[property:Float decay]</h3>
 		<h3>[property:Float decay]</h3>
 		<div>
 		<div>
 			The amount the light dims along the distance of the light<br />
 			The amount the light dims along the distance of the light<br />
+			In "physically correct" mode, decay = 2 leads to physically realistic light falloff.<br/>
 			Default — *1*.
 			Default — *1*.
 		</div>
 		</div>
 
 
-		<h3>[property:Boolean castShadow]</h3>
+		<h3>[property:SpotLightShadow shadow]</h3>
 		<div>
 		<div>
-			If set to *true* light will cast dynamic shadows. *Warning*: This is expensive and requires tweaking to get shadows looking right.<br />
-			Default — *false*.
+			This property stores all relevant information for rendering the shadow of the light.<br />
 		</div>
 		</div>
 
 
-		<h3>[property:Float shadowCameraNear]</h3>
-		<div>
-			Perspective shadow camera frustum <em>near</em> parameter.<br />
-			Default — *50*.
-		</div>
-
-		<h3>[property:Float shadowCameraFar]</h3>
-		<div>
-			Perspective shadow camera frustum <em>far</em> parameter.<br />
-			Default — *5000*.
-		</div>
-
-		<h3>[property:Float shadowCameraFov]</h3>
-		<div>
-			Perspective shadow camera frustum <em>field of view</em> parameter.<br />
-			Default — *50*.
-		</div>
-
-		<h3>[property:Boolean shadowCameraVisible]</h3>
+		<h3>[property:Boolean castShadow]</h3>
 		<div>
 		<div>
-			Show debug shadow camera frustum.<br />
+			If set to *true* light will cast dynamic shadows. *Warning*: This is expensive and requires tweaking to get shadows looking right.<br />
 			Default — *false*.
 			Default — *false*.
 		</div>
 		</div>
 
 
-		<h3>[property:Float shadowBias]</h3>
-		<div>
-			Shadow map bias, how much to add or subtract from the normalized depth when deciding whether a surface is in shadow.<br />
-			Default — *0*.
-		</div>
-
-		<h3>[property:Integer shadowMapWidth]</h3>
-		<div>
-			Shadow map texture width in pixels.<br />
-			Default — *512*.
-		</div>
-
-		<h3>[property:Integer shadowMapHeight]</h3>
-		<div>
-			Shadow map texture height in pixels.<br />
-			Default — *512*.
-		</div>
-
-		<h3>[property:Vector2 shadowMapSize]</h3>
-		<div>
-			The shadowMapWidth and shadowMapHeight stored in a [page:Vector2 THREE.Vector2]. Set internally during rendering.
-		</div>
-
-		<h3>[property:PerspectiveCamera shadowCamera]</h3>
-		<div>
-			The shadow's view of the world. Computed internally during rendering from the shadowCamera* settings.
-		</div>
-
-		<h3>[property:Matrix4 shadowMatrix]</h3>
-		<div>
-			Model to shadow camera space, to compute location and depth in shadow map. Computed internally during rendering.
-		</div>
+		<h2>Methods</h2>
 
 
-		<h3>[property:WebGLRenderTarget shadowMap]</h3>
-		<div>
-		    The depth map generated using the shadowCamera; a location beyond a pixel's depth is in shadow. Computed internally during rendering.
-		</div>
+		See the base [page:Light Light] class for common methods.
 
 
-		<h2>Methods</h2>
-		<h3>[method:SpotLight clone]()</h3>
+		<h3>[method:SpotLight copy]( [page:SpotLight source] )</h3>
 		<div>
 		<div>
 		<br />
 		<br />
-		It returns a clone of SpotLight.
-		</div>
-
-		<h3>[method:JSON toJSON]()</h3>
-		<div>
-		Return SpotLight data in JSON format.
+		Copies value of *source* to this SpotLight object.
 		</div>
 		</div>
-		<h2>Source</h2>
 
 
 		[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
 		[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
 	</body>
 	</body>

+ 38 - 0
docs/api/lights/SpotLightShadow.html

@@ -0,0 +1,38 @@
+<!DOCTYPE html>
+<html lang="en">
+	<head>
+		<meta charset="utf-8" />
+		<base href="../../" />
+		<script src="list.js"></script>
+		<script src="page.js"></script>
+		<link type="text/css" rel="stylesheet" href="page.css" />
+	</head>
+	<body>
+		[page:LightShadow] &rarr;
+
+		<h1>[name]</h1>
+
+		<div class="desc">TODO</div>
+
+		<h2>Constructor</h2>
+
+		The constructor creates a [page:PerspectiveCamera PerspectiveCamera] to manage the shadow's view of the world.
+
+		<h2>Properties</h2>
+
+		See the base [page:LightShadow LightShadow] class for common properties.
+
+		<h2>Methods</h2>
+
+		See the base [page:LightShadow LightShadow] class for common methods.
+
+		<h3>[method:SpotLightShadow update]( [page:SpotLight light] )</h3>
+		<div>
+		Updates the internal perspective camera.
+		</div>
+
+		<h2>Source</h2>
+
+		[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+	</body>
+</html>

+ 90 - 0
docs/api/loaders/AudioLoader.html

@@ -0,0 +1,90 @@
+<!DOCTYPE html>
+<html lang="en">
+	<head>
+		<meta charset="utf-8" />
+		<base href="../../" />
+		<script src="list.js"></script>
+		<script src="page.js"></script>
+		<link type="text/css" rel="stylesheet" href="page.css" />
+	</head>
+	<body>
+		<h1>[name]</h1>
+
+		<div class="desc">Class for loading an [page:String AudioBuffer].</div>
+
+
+		<h2>Constructor</h2>
+
+		<h3>[name]( [page:String context], [page:LoadingManager manager] )</h3>
+		<div>
+		[page:String context] — The [page:String AudioContext] for the loader to use. Default is [page:String window.AudioContext].<br />
+		[page:LoadingManager manager] — The [page:LoadingManager loadingManager] for the loader to use. Default is [page:LoadingManager THREE.DefaultLoadingManager].
+		</div>
+		<div>
+		Creates a new [name].
+		</div>
+
+
+		<h2>Methods</h2>
+
+		<h3>[method:null load]( [page:String url], [page:Function onLoad], [page:Function onProgress], [page:Function onError] )</h3>
+		<div>
+		[page:String url] — required<br />
+		[page:Function onLoad] — Will be called when load completes. The argument will be the loaded text response.<br />
+		[page:Function onProgress] — Will be called while load progresses. The argument will be the XmlHttpRequest instance, that contain .[page:Integer total] and .[page:Integer loaded] bytes.<br />
+		[page:Function onError] — Will be called when load errors.<br />
+		</div>
+		<div>
+		Begin loading from url and pass the loaded [page:String AudioBuffer] to onLoad.
+		</div>
+
+
+
+		<h2>Example</h2>
+
+		<code>
+		// instantiate a listener
+		var audioListener = new THREE.AudioListener();
+
+		// add the listener to the camera
+		camera.add( audioListener );
+
+		// instantiate audio object
+		var oceanAmbientSound = new THREE.Audio( audioListener );
+
+		// add the audio object to the scene
+		scene.add( oceanAmbientSound );
+
+		// instantiate a loader
+		var loader = new THREE.AudioLoader();
+
+		// load a resource
+		loader.load(
+			// resource URL
+			'audio/ambient_ocean.ogg',
+			// Function when resource is loaded
+			function ( audioBuffer ) {
+				// set the audio object buffer to the loaded object
+				oceanAmbientSound.setBuffer( audioBuffer );
+
+				// play the audio
+				oceanAmbientSound.play();
+			},
+			// Function called when download progresses
+			function ( xhr ) {
+				console.log( (xhr.loaded / xhr.total * 100) + '% loaded' );
+			},
+			// Function called when download errors
+			function ( xhr ) {
+				console.log( 'An error happened' );
+			}
+		);
+		</code>
+
+
+
+		<h2>Source</h2>
+
+		[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+	</body>
+</html>

+ 2 - 2
docs/api/loaders/ImageLoader.html

@@ -1,7 +1,7 @@
 <!DOCTYPE html>
 <!DOCTYPE html>
 <html lang="en">
 <html lang="en">
 	<head>
 	<head>
-		<meta charset="utf-8" />
+		<meta charset="utf-8" />
 		<base href="../../" />
 		<base href="../../" />
 		<script src="list.js"></script>
 		<script src="list.js"></script>
 		<script src="page.js"></script>
 		<script src="page.js"></script>
@@ -35,7 +35,7 @@
 		<h3>[method:null load]( [page:String url], [page:Function onLoad], [page:Function onProgress], [page:Function onError] )</h3>
 		<h3>[method:null load]( [page:String url], [page:Function onLoad], [page:Function onProgress], [page:Function onError] )</h3>
 		<div>
 		<div>
 		[page:String url] — required<br />
 		[page:String url] — required<br />
-		[page:Function onLoad] — Will be called when load completes. The argument will be the loaded Imageloader.<br />
+		[page:Function onLoad] — Will be called when load completes. The argument will be the loaded [page:Image image].<br />
 		[page:Function onProgress] — Will be called while load progresses. The argument will be the progress event.<br />
 		[page:Function onProgress] — Will be called while load progresses. The argument will be the progress event.<br />
 		[page:Function onError] — Will be called when load errors.<br />
 		[page:Function onError] — Will be called when load errors.<br />
 		</div>
 		</div>

+ 0 - 88
docs/api/loaders/OBJMTLLoader.html

@@ -1,88 +0,0 @@
-<!DOCTYPE html>
-<html lang="en">
-	<head>
-		<meta charset="utf-8" />
-		<base href="../../" />
-		<script src="list.js"></script>
-		<script src="page.js"></script>
-		<link type="text/css" rel="stylesheet" href="page.css" />
-	</head>
-	<body>
-
-		<h1>[name]</h1>
-
-		<div class="desc">A loader for loading a <em>.obj</em> and its <em>.mtl</em> together.</div>
-
-
-		<h2>Constructor</h2>
-
-		<h3>[name]( [page:LoadingManager manager] )</h3>
-		<div>
-		[page:LoadingManager manager] — The [page:LoadingManager loadingManager] for the loader to use. Default is [page:LoadingManager THREE.DefaultLoadingManager].
-		</div>
-		<div>
-		Creates a new [name].
-		</div>
-
-		<h2>Properties</h2>
-
-
-		<h2>Methods</h2>
-
-		<h3>[method:null load]( [page:String objUrl], [page:String mtlUrl], [page:Function onLoad], [page:Function onProgress], [page:Function onError] )</h3>
-		<div>
-		[page:String objUrl] — required. URL to the <em>.obj</em> resource<br />
-		[page:String mtlUrl] — required. URL to the <em>.mtl</em> resource<br />
-		[page:Function onLoad] — Will be called when both resources load complete. The argument will be the loaded [page:Object3D].<br />
-		[page:Function onProgress] — Will be called while both load progress. The argument will be the XmlHttpRequest instance, that contain .[page:Integer total] and .[page:Integer loaded] bytes.<br />
-		[page:Function onError] — Will be called when load errors.<br />
-		</div>
-		<div>
-		Begin loading from urls and call onLoad with the parsed response content.
-		</div>
-
-		<h3>[method:Object3D parse]( [page:String text], [page:Function mtllibCallback] )</h3>
-		<div>
-		[page:String text] — required. The textual <em>obj</em> structure to parse.<br/>
-		[page:Function mtllibCallback] — optional. Callback to handle <em>mtllib</em> declaration.<br/>
-		</div>
-		<div>
-		Parse an <em>obj</em> text structure and return an [page:Object3D].<br />
-		Found objects are converted to a [page:Mesh] and materials are converted to [page:MeshLambertMaterial].
-		</div>
-
-		<h2>Example</h2>
-
-		<code>
-		// instantiate a loader
-		var loader = new THREE.OBJMTLLoader();
-
-		// load an obj / mtl resource pair
-		loader.load(
-			// OBJ resource URL
-			'obj/male02/male02.obj',
-			// MTL resource URL
-			'obj/male02/male02_dds.mtl',
-			// Function when both resources are loaded
-			function ( object ) {
-				scene.add( object );
-			},
-			// Function called when downloads progress
-			function ( xhr ) {
-				console.log( (xhr.loaded / xhr.total * 100) + '% loaded' );
-			},
-			// Function called when downloads error
-			function ( xhr ) {
-				console.log( 'An error happened' );
-			}
-		);
-		</code>
-
-		[example:webgl_loader_obj_mtl]
-
-
-		<h2>Source</h2>
-
-		[link:https://github.com/mrdoob/three.js/blob/master/examples/js/loaders/OBJMTLLoader.js examples/js/loaders/OBJMTLLoader.js]
-	</body>
-</html>

+ 2 - 2
docs/api/loaders/TextureLoader.html

@@ -1,7 +1,7 @@
 <!DOCTYPE html>
 <!DOCTYPE html>
 <html lang="en">
 <html lang="en">
 	<head>
 	<head>
-		<meta charset="utf-8" />
+		<meta charset="utf-8" />
 		<base href="../../" />
 		<base href="../../" />
 		<script src="list.js"></script>
 		<script src="list.js"></script>
 		<script src="page.js"></script>
 		<script src="page.js"></script>
@@ -38,7 +38,7 @@
 		<h3>[method:null load]( [page:String url], [page:Function onLoad], [page:Function onProgress], [page:Function onError] )</h3>
 		<h3>[method:null load]( [page:String url], [page:Function onLoad], [page:Function onProgress], [page:Function onError] )</h3>
 		<div>
 		<div>
 		[page:String url] — required<br />
 		[page:String url] — required<br />
-		[page:Function onLoad] — Will be called when load completes. The argument will be the loaded text response.<br />
+		[page:Function onLoad] — Will be called when load completes. The argument will be the loaded [page:Texture texture].<br />
 		[page:Function onProgress] — Will be called while load progresses. The argument will be the XmlHttpRequest instance, that contain .[page:Integer total] and .[page:Integer loaded] bytes.<br />
 		[page:Function onProgress] — Will be called while load progresses. The argument will be the XmlHttpRequest instance, that contain .[page:Integer total] and .[page:Integer loaded] bytes.<br />
 		[page:Function onError] — Will be called when load errors.<br />
 		[page:Function onError] — Will be called when load errors.<br />
 		</div>
 		</div>

+ 2 - 1
docs/api/materials/LineBasicMaterial.html

@@ -31,6 +31,7 @@
 		</div>
 		</div>
 
 
 		<h2>Properties</h2>
 		<h2>Properties</h2>
+		<div>See the base [page:Material] class for common properties.</div>
 
 
 		<h3>[property:Integer color]</h3>
 		<h3>[property:Integer color]</h3>
 		<div>Sets the color of the line. Default is 0xffffff.</div>
 		<div>Sets the color of the line. Default is 0xffffff.</div>
@@ -55,7 +56,7 @@
 		<div>Define whether the material color is affected by global fog settings.</div>
 		<div>Define whether the material color is affected by global fog settings.</div>
 		<div>This setting might not have any effect when used with certain renderers. For example, it is ignored with the [page:CanvasRenderer Canvas] renderer, but does work with the [page:WebGLRenderer WebGL] renderer.</div>
 		<div>This setting might not have any effect when used with certain renderers. For example, it is ignored with the [page:CanvasRenderer Canvas] renderer, but does work with the [page:WebGLRenderer WebGL] renderer.</div>
 
 
-		
+
 		<h2>Source</h2>
 		<h2>Source</h2>
 
 
 		[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
 		[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]

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

@@ -32,13 +32,12 @@
 
 
 
 
 		<h2>Properties</h2>
 		<h2>Properties</h2>
-
-
+		<div>See the base [page:Material] class for common properties.</div>
 
 
 		<h3>[property:Color color]</h3>
 		<h3>[property:Color color]</h3>
 		<div>
 		<div>
 		Sets the color of the line. Default is 0xffffff.
 		Sets the color of the line. Default is 0xffffff.
-		</div> 
+		</div>
 
 
 		<h3>[property:number linewidth]</h3>
 		<h3>[property:number linewidth]</h3>
 		<div>Controls line thickness. Default is 1.</div>
 		<div>Controls line thickness. Default is 1.</div>
@@ -47,17 +46,17 @@
 		<h3>[property:number scale]</h3>
 		<h3>[property:number scale]</h3>
 		<div>
 		<div>
 		The scale of the dashed part of a line.
 		The scale of the dashed part of a line.
-		</div> 
+		</div>
 
 
 		<h3>[property:number dashSize]</h3>
 		<h3>[property:number dashSize]</h3>
 		<div>
 		<div>
 		The size of the dash. This is both the gap with the stroke. Default is 3.
 		The size of the dash. This is both the gap with the stroke. Default is 3.
-		</div> 
+		</div>
 
 
 		<h3>[property:number gapSize]</h3>
 		<h3>[property:number gapSize]</h3>
 		<div>
 		<div>
 		The size of the gap. Default is 1.
 		The size of the gap. Default is 1.
-		</div> 
+		</div>
 
 
 		<h3>[property:boolean vertexColors]</h3>
 		<h3>[property:boolean vertexColors]</h3>
 		<div>Define how the vertices gets colored. Possible values are THREE.NoColors, THREE.FaceColors and THREE.VertexColors. Default is THREE.NoColors.</div>
 		<div>Define how the vertices gets colored. Possible values are THREE.NoColors, THREE.FaceColors and THREE.VertexColors. Default is THREE.NoColors.</div>

+ 11 - 0
docs/api/materials/Material.html

@@ -108,6 +108,17 @@
 		Sets the alpha value to be used when running an alpha test. Default is *0*.
 		Sets the alpha value to be used when running an alpha test. Default is *0*.
 		</div>
 		</div>
 
 
+		<h3>[property:Array clippingPlanes]</h3>
+
+		<div>
+		User-defined clipping planes specified as THREE.Plane objects in world space. These planes apply to the objects this material is attached to. Points in space whose dot product with the plane is negative are cut away. Default is [].
+		</div>
+
+		<h3>[property:Boolean clipShadows]</h3>
+		<div>
+		Defines whether to clip shadows according to the clipping planes specified on this material. Default is false.
+		</div>
+
 		<h3>[property:Float overdraw]</h3>
 		<h3>[property:Float overdraw]</h3>
 		<div>
 		<div>
 		Amount of triangle expansion at draw time. This is a workaround for cases when gaps appear between triangles when using [page:CanvasRenderer]. *0.5* tends to give good results across browsers. Default is *0*.
 		Amount of triangle expansion at draw time. This is a workaround for cases when gaps appear between triangles when using [page:CanvasRenderer]. *0.5* tends to give good results across browsers. Default is *0*.

+ 20 - 16
docs/api/materials/MeshBasicMaterial.html

@@ -26,10 +26,14 @@
 		<div>
 		<div>
 		color — geometry color in hexadecimal. Default is 0xffffff.<br />
 		color — geometry color in hexadecimal. Default is 0xffffff.<br />
 		map — Set texture map. Default is null <br />
 		map — Set texture map. Default is null <br />
-		aoMap — Set ambient occlusion map. Default is null <br />
+		aoMap — Set ao map. Default is null.<br />
+		aoMapIntensity — Set ao map intensity. Default is 1.<br />
 		specularMap — Set specular map. Default is null.<br />
 		specularMap — Set specular map. Default is null.<br />
 		alphaMap — Set alpha map. Default is null.<br />
 		alphaMap — Set alpha map. Default is null.<br />
 		envMap — Set env map. Default is null.<br />
 		envMap — Set env map. Default is null.<br />
+		combine — Set combine operation. Default is THREE.MultiplyOperation.<br />
+		reflectivity — Set reflectivity. Default is 1.<br />
+		refractionRatio — Set refraction ratio. Default is 0.98.<br />
 		fog — Define whether the material color is affected by global fog settings. Default is true.<br />
 		fog — Define whether the material color is affected by global fog settings. Default is true.<br />
 		shading — Define shading type. Default is THREE.SmoothShading.<br />
 		shading — Define shading type. Default is THREE.SmoothShading.<br />
 		wireframe — render geometry as wireframe. Default is false.<br />
 		wireframe — render geometry as wireframe. Default is false.<br />
@@ -42,6 +46,7 @@
 		</div>
 		</div>
 
 
 		<h2>Properties</h2>
 		<h2>Properties</h2>
+		<div>See the base [page:Material] class for common properties.</div>
 
 
 		<h3>[property:Integer color]</h3>
 		<h3>[property:Integer color]</h3>
 		<div>Sets the color of the geometry. Default is 0xffffff.</div>
 		<div>Sets the color of the geometry. Default is 0xffffff.</div>
@@ -54,6 +59,9 @@
 		<h3>[property:Texture aoMap]</h3>
 		<h3>[property:Texture aoMap]</h3>
 		<div>Set ambient occlusion map. Default is null.</div>
 		<div>Set ambient occlusion map. Default is null.</div>
 
 
+		<h3>[property:Float aoMapIntensity]</h3>
+		<div>TODO</div>
+
 		<h3>[property:Texture specularMap]</h3>
 		<h3>[property:Texture specularMap]</h3>
 		<div>Set specular map. Default is null.</div>
 		<div>Set specular map. Default is null.</div>
 
 
@@ -64,6 +72,17 @@
 		<h3>[property:TextureCube envMap]</h3>
 		<h3>[property:TextureCube envMap]</h3>
 		<div>Set env map. Default is null.</div>
 		<div>Set env map. Default is null.</div>
 
 
+		<h3>[property:Integer combine]</h3>
+		<div>How to combine the result of the surface's color with the environment map, if any.</div>
+
+		<div>Options are [page:Textures THREE.Multiply] (default), [page:Textures THREE.MixOperation], [page:Textures THREE.AddOperation]. If mix is chosen, the reflectivity is used to blend between the two colors.</div>
+
+		<h3>[property:Float reflectivity]</h3>
+		<div>How much the environment map affects the surface; also see "combine".</div>
+
+		<h3>[property:Float refractionRatio]</h3>
+		<div>The index of refraction for an environment map using [page:Textures THREE.CubeRefractionMapping]. Default is *0.98*.</div>
+
 		<h3>[property:Boolean fog]</h3>
 		<h3>[property:Boolean fog]</h3>
 		<div>Define whether the material color is affected by global fog settings.</div>
 		<div>Define whether the material color is affected by global fog settings.</div>
 		<div>This setting might not have any effect when used with certain renderers. For example, it is ignored with the [page:CanvasRenderer Canvas] renderer, but does work with the [page:WebGLRenderer WebGL] renderer.</div>
 		<div>This setting might not have any effect when used with certain renderers. For example, it is ignored with the [page:CanvasRenderer Canvas] renderer, but does work with the [page:WebGLRenderer WebGL] renderer.</div>
@@ -96,21 +115,6 @@
 		<h3>[property:Boolean morphTargets]</h3>
 		<h3>[property:Boolean morphTargets]</h3>
 		<div>Define whether the material uses morphTargets. Default is false.</div>
 		<div>Define whether the material uses morphTargets. Default is false.</div>
 
 
-		<h3>[property:number combine]</h3>
-		<div>
-		How to combine the result of the surface's color with the environment map, if any.
-		</div>
-
-		<h3>[property:number reflectivity]</h3>
-		<div>
-		How much the environment map affects the surface; also see "combine".
-		</div>
-
-		<h3>[property:number refractionRatio]</h3>
-		<div>
-		The index of refraction for an environment map using [page:Textures THREE.CubeRefractionMapping]. Default is *0.98*.
-		</div>
-
 		<h2>Methods</h2>
 		<h2>Methods</h2>
 
 
 		<h2>Source</h2>
 		<h2>Source</h2>

+ 8 - 8
docs/api/materials/MeshDepthMaterial.html

@@ -13,7 +13,7 @@
 		<h1>[name]</h1>
 		<h1>[name]</h1>
 
 
 		<div class="desc">A material for drawing geometry by depth. Depth is based off of the camera near and far plane. White is nearest, black is farthest.</div>
 		<div class="desc">A material for drawing geometry by depth. Depth is based off of the camera near and far plane. White is nearest, black is farthest.</div>
-		
+
 		<iframe src='scenes/material-browser.html#MeshDepthMaterial'></iframe>
 		<iframe src='scenes/material-browser.html#MeshDepthMaterial'></iframe>
 
 
 		<h2>Constructor</h2>
 		<h2>Constructor</h2>
@@ -21,7 +21,7 @@
 
 
 		<h3>[name]([page:Object parameters])</h3>
 		<h3>[name]([page:Object parameters])</h3>
 		<div>
 		<div>
-		parameters is an object with one or more properties defining the material's appearance. 
+		parameters is an object with one or more properties defining the material's appearance.
 		</div>
 		</div>
 		<div>
 		<div>
 		morphTargets -- Define whether the material uses morphTargets. Default is false.<br/>
 		morphTargets -- Define whether the material uses morphTargets. Default is false.<br/>
@@ -31,20 +31,20 @@
 
 
 
 
 		<h2>Properties</h2>
 		<h2>Properties</h2>
-
+		<div>See the base [page:Material] class for common properties.</div>
 
 
 		<h3>[property:boolean morphTargets]</h3>
 		<h3>[property:boolean morphTargets]</h3>
-		<div>Define whether the material uses morphTargets. Default is false.</div> 
+		<div>Define whether the material uses morphTargets. Default is false.</div>
 
 
 		<h3>[property:boolean wireframe]</h3>
 		<h3>[property:boolean wireframe]</h3>
-		<div>Render geometry as wireframe. Default is false (i.e. render as smooth shaded).</div> 
-		
+		<div>Render geometry as wireframe. Default is false (i.e. render as smooth shaded).</div>
+
 		<h3>[property:number wireframeLinewidth]</h3>
 		<h3>[property:number wireframeLinewidth]</h3>
 		<div>
 		<div>
 			Controls wireframe thickness. Default is 1.<br/><br/>
 			Controls wireframe thickness. Default is 1.<br/><br/>
 			Due to limitations in the ANGLE layer, on Windows platforms linewidth will always be 1 regardless of the set value.
 			Due to limitations in the ANGLE layer, on Windows platforms linewidth will always be 1 regardless of the set value.
-		</div> 
-		
+		</div>
+
 		<h2>Methods</h2>
 		<h2>Methods</h2>
 
 
 
 

+ 24 - 10
docs/api/materials/MeshLambertMaterial.html

@@ -27,11 +27,18 @@
 		color — Line color in hexadecimal. Default is 0xffffff.<br />
 		color — Line color in hexadecimal. Default is 0xffffff.<br />
 		map — Sets the texture map. Default is null <br />
 		map — Sets the texture map. Default is null <br />
 		lightMap — Set light map. Default is null.<br />
 		lightMap — Set light map. Default is null.<br />
+		lightMapIntensity — Set light map intensity. Default is 1.<br />
 		aoMap — Set ao map. Default is null.<br />
 		aoMap — Set ao map. Default is null.<br />
+		aoMapIntensity — Set ao map intensity. Default is 1.<br />
+		emissive - Set emissive color. Default is 0x000000.<br />
 		emissiveMap — Set emissive map. Default is null.<br />
 		emissiveMap — Set emissive map. Default is null.<br />
+		emissiveIntensity — Set emissive map intensity. Default is 1.<br />
 		specularMap — Set specular map. Default is null.<br />
 		specularMap — Set specular map. Default is null.<br />
 		alphaMap — Set alpha map. Default is null.<br />
 		alphaMap — Set alpha map. Default is null.<br />
 		envMap — Set env map. Default is null.<br />
 		envMap — Set env map. Default is null.<br />
+		combine — Set combine operation. Default is THREE.MultiplyOperation.<br />
+		reflectivity — Set reflectivity. Default is 1.<br />
+		refractionRatio — Set refraction ratio. Default is 0.98.<br />
 		fog — Define whether the material color is affected by global fog settings. Default is false.<br />
 		fog — Define whether the material color is affected by global fog settings. Default is false.<br />
 		wireframe — Render geometry as wireframe. Default is false (i.e. render as smooth shaded).<br/>
 		wireframe — Render geometry as wireframe. Default is false (i.e. render as smooth shaded).<br/>
 		wireframeLinewidth — Controls wireframe thickness. Default is 1.<br/>
 		wireframeLinewidth — Controls wireframe thickness. Default is 1.<br/>
@@ -39,38 +46,45 @@
 		wireframeLinejoin — Define appearance of line joints. Default is 'round'.<br />
 		wireframeLinejoin — Define appearance of line joints. Default is 'round'.<br />
 		vertexColors — Define how the vertices gets colored. Default is THREE.NoColors.<br />
 		vertexColors — Define how the vertices gets colored. Default is THREE.NoColors.<br />
 		skinning — Define whether the material uses skinning. Default is false.<br />
 		skinning — Define whether the material uses skinning. Default is false.<br />
-		morphTargets — Define whether the material uses morphTargets. Default is false.<br/>
+		morphTargets — Define whether the material uses morphTargets. Default is false.<br />
+		morphNormals — Define whether the material uses morphNormals. Default is false.
 		</div>
 		</div>
 
 
 
 
 		<h2>Properties</h2>
 		<h2>Properties</h2>
-		<div>See the base [page:Material] class for common parameters.</div>
+		<div>See the base [page:Material] class for common properties.</div>
 
 
 		<h3>[property:Color color]</h3>
 		<h3>[property:Color color]</h3>
 		<div>
 		<div>
 		Diffuse color of the material. Default is white.<br />
 		Diffuse color of the material. Default is white.<br />
 		</div>
 		</div>
 
 
-		<h3>[property:Color emissive]</h3>
-		<div>
-		Emissive (light) color of the material, essentially a solid color unaffected by other lighting. Default is black.<br />
-		</div>
-
-		<h3>[property:Float emissiveIntensity]</h3>
-		<div>Intensity of the emissive light. Modulates the emissive color. Default is 1.</div>
-
 		<h3>[property:Texture map]</h3>
 		<h3>[property:Texture map]</h3>
 		<div>Set color texture map. Default is null.</div>
 		<div>Set color texture map. Default is null.</div>
 
 
 		<h3>[property:Texture lightMap]</h3>
 		<h3>[property:Texture lightMap]</h3>
 		<div>Set light map. Default is null. The lightMap requires a second set of UVs.</div>
 		<div>Set light map. Default is null. The lightMap requires a second set of UVs.</div>
 
 
+		<h3>[property:Float lightMapIntensity]</h3>
+		<div>TODO</div>
+
 		<h3>[property:Texture aoMap]</h3>
 		<h3>[property:Texture aoMap]</h3>
 		<div>Set ambient occlusion map. Default is null. The aoMap requires a second set of UVs.</div>
 		<div>Set ambient occlusion map. Default is null. The aoMap requires a second set of UVs.</div>
 
 
+		<h3>[property:Float aoMapIntensity]</h3>
+		<div>TODO</div>
+
+		<h3>[property:Color emissive]</h3>
+		<div>
+		Emissive (light) color of the material, essentially a solid color unaffected by other lighting. Default is black.<br />
+		</div>
+
 		<h3>[property:Texture emissiveMap]</h3>
 		<h3>[property:Texture emissiveMap]</h3>
 		<div>Set emisssive (glow) map. Default is null. The emissive map color is modulated by the emissive color and the emissive intensity. If you have an emissive map, be sure to set the emissive color to something other than black.</div>
 		<div>Set emisssive (glow) map. Default is null. The emissive map color is modulated by the emissive color and the emissive intensity. If you have an emissive map, be sure to set the emissive color to something other than black.</div>
 
 
+		<h3>[property:Float emissiveIntensity]</h3>
+		<div>Intensity of the emissive light. Modulates the emissive color. Default is 1.</div>
+
 		<h3>[property:Texture specularMap]</h3>
 		<h3>[property:Texture specularMap]</h3>
 		<div>Since this material does not have a specular component, the specular value affects only how much of the environment map affects the surface. Default is null.</div>
 		<div>Since this material does not have a specular component, the specular value affects only how much of the environment map affects the surface. Default is null.</div>
 
 

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

@@ -32,7 +32,7 @@
 
 
 
 
 		<h2>Properties</h2>
 		<h2>Properties</h2>
-
+		<div>See the base [page:Material] class for common properties.</div>
 
 
 		<h3>[property:boolean wireframe]</h3>
 		<h3>[property:boolean wireframe]</h3>
 		<div>
 		<div>

+ 45 - 25
docs/api/materials/MeshPhongMaterial.html

@@ -21,20 +21,33 @@
 
 
 		<h3>[name]([page:Object parameters])</h3>
 		<h3>[name]([page:Object parameters])</h3>
 		<div>
 		<div>
-		parameters -- an object with one or more of the material's properties defining the its appearance.
+		parameters -- an object with one or more of the material's properties defining the material's appearance.
 		</div>
 		</div>
 		<div>
 		<div>
 		color — geometry color in hexadecimal. Default is 0xffffff.<br />
 		color — geometry color in hexadecimal. Default is 0xffffff.<br />
-		map — Set texture map. Default is null <br />
+		specular — Set specular color. Default is 0x111111 .<br />
+		shininess — Set shininess Default is 30.<br />
+		map — Set texture map. Default is null.<br />
 		lightMap — Set light map. Default is null.<br />
 		lightMap — Set light map. Default is null.<br />
+		lightMapIntensity — Set light map intensity. Default is 1.<br />
 		aoMap — Set ao map. Default is null.<br />
 		aoMap — Set ao map. Default is null.<br />
+		aoMapIntensity — Set ao map intensity. Default is 1.<br />
+		emissive - Set emissive color. Default is 0x000000.<br />
 		emissiveMap — Set emissive map. Default is null.<br />
 		emissiveMap — Set emissive map. Default is null.<br />
-		specularMap — Set specular map. Default is null.<br />
-		alphaMap — Set alpha map. Default is null.<br />
+		emissiveIntensity — Set emissive map intensity. Default is 1.<br />
+		bumpMap — Set bump map. Default is null.<br />
+		bumpMapScale — Set bump map scale. Default is 1.<br />
+		normalMap — Set normal map. Default is null.<br />
+		normalMapScale — Set normal map scale. Default is (1, 1).<br />
 		displacementMap — Set displacement map. Default is null.<br />
 		displacementMap — Set displacement map. Default is null.<br />
 		displacementScale — Set displacement scale. Default is 1.<br />
 		displacementScale — Set displacement scale. Default is 1.<br />
 		displacementBias — Set displacement offset. Default is 0.<br />
 		displacementBias — Set displacement offset. Default is 0.<br />
+		specularMap — Set specular map. Default is null.<br />
+		alphaMap — Set alpha map. Default is null.<br />
 		envMap — Set env map. Default is null.<br />
 		envMap — Set env map. Default is null.<br />
+		combine — Set combine operation. Default is THREE.MultiplyOperation.<br />
+		reflectivity — Set reflectivity. Default is 1.<br />
+		refractionRatio — Set refraction ratio. Default is 0.98.<br />
 		fog — Define whether the material color is affected by global fog settings. Default is true.<br />
 		fog — Define whether the material color is affected by global fog settings. Default is true.<br />
 		shading — Define shading type. Default is THREE.SmoothShading.<br />
 		shading — Define shading type. Default is THREE.SmoothShading.<br />
 		wireframe — render geometry as wireframe. Default is false.<br />
 		wireframe — render geometry as wireframe. Default is false.<br />
@@ -43,7 +56,8 @@
 		wireframeLinejoin — Define appearance of line joints. Default is 'round'.<br />
 		wireframeLinejoin — Define appearance of line joints. Default is 'round'.<br />
 		vertexColors — Define how the vertices gets colored. Default is THREE.NoColors.<br />
 		vertexColors — Define how the vertices gets colored. Default is THREE.NoColors.<br />
 		skinning — Define whether the material uses skinning. Default is false.<br />
 		skinning — Define whether the material uses skinning. Default is false.<br />
-		morphTargets — Define whether the material uses morphTargets. Default is false.
+		morphTargets — Define whether the material uses morphTargets. Default is false.<br />
+		morphNormals — Define whether the material uses morphNormals. Default is false.
 		</div>
 		</div>
 		<div>
 		<div>
 		Example:<br>
 		Example:<br>
@@ -53,21 +67,13 @@
 
 
 
 
 		<h2>Properties</h2>
 		<h2>Properties</h2>
-		<div>See the base [page:Material] class for common parameters.</div>
+		<div>See the base [page:Material] class for common properties.</div>
 
 
 		<h3>[property:Color color]</h3>
 		<h3>[property:Color color]</h3>
 		<div>
 		<div>
 		Diffuse color of the material. Default is white.<br />
 		Diffuse color of the material. Default is white.<br />
 		</div>
 		</div>
 
 
-		<h3>[property:Color emissive]</h3>
-		<div>
-		Emissive (light) color of the material, essentially a solid color unaffected by other lighting. Default is black.<br />
-		</div>
-
-		<h3>[property:Float emissiveIntensity]</h3>
-		<div>Intensity of the emissive light. Modulates the emissive color. Default is 1.</div>
-
 		<h3>[property:Color specular]</h3>
 		<h3>[property:Color specular]</h3>
 		<div>
 		<div>
 		Specular color of the material, i.e., how shiny the material is and the color of its shine. Setting this the same color as the diffuse value (times some intensity) makes the material more metallic-looking; setting this to some gray makes the material look more plastic. Default is dark gray.<br />
 		Specular color of the material, i.e., how shiny the material is and the color of its shine. Setting this the same color as the diffuse value (times some intensity) makes the material more metallic-looking; setting this to some gray makes the material look more plastic. Default is dark gray.<br />
@@ -82,12 +88,26 @@
 		<h3>[property:Texture lightMap]</h3>
 		<h3>[property:Texture lightMap]</h3>
 		<div>Set light map. Default is null. The lightMap requires a second set of UVs.</div>
 		<div>Set light map. Default is null. The lightMap requires a second set of UVs.</div>
 
 
+		<h3>[property:Float lightMapIntensity]</h3>
+		<div>TODO</div>
+
 		<h3>[property:Texture aoMap]</h3>
 		<h3>[property:Texture aoMap]</h3>
 		<div>Set ambient occlusion map. Default is null. The aoMap requires a second set of UVs.</div>
 		<div>Set ambient occlusion map. Default is null. The aoMap requires a second set of UVs.</div>
 
 
+		<h3>[property:Float aoMapIntensity]</h3>
+		<div>TODO</div>
+
+		<h3>[property:Color emissive]</h3>
+		<div>
+		Emissive (light) color of the material, essentially a solid color unaffected by other lighting. Default is black.<br />
+		</div>
+
 		<h3>[property:Texture emissiveMap]</h3>
 		<h3>[property:Texture emissiveMap]</h3>
 		<div>Set emisssive (glow) map. Default is null. The emissive map color is modulated by the emissive color and the emissive intensity. If you have an emissive map, be sure to set the emissive color to something other than black.</div>
 		<div>Set emisssive (glow) map. Default is null. The emissive map color is modulated by the emissive color and the emissive intensity. If you have an emissive map, be sure to set the emissive color to something other than black.</div>
 
 
+		<h3>[property:Float emissiveIntensity]</h3>
+		<div>Intensity of the emissive light. Modulates the emissive color. Default is 1.</div>
+
 		<h3>[property:Texture bumpMap]</h3>
 		<h3>[property:Texture bumpMap]</h3>
 		<div>
 		<div>
 			The texture to create a bump map. The black and white values map to the perceived depth in relation to the lights.
 			The texture to create a bump map. The black and white values map to the perceived depth in relation to the lights.
@@ -111,29 +131,29 @@
 			How much the normal map affects the material. Typical ranges are 0-1. Default is (1,1).
 			How much the normal map affects the material. Typical ranges are 0-1. Default is (1,1).
 		</div>
 		</div>
 
 
-		<h3>[property:Texture specularMap]</h3>
-		<div>The specular map value affects both how much the specular surface highlight contributes and how much of the environment map affects the surface. Default is null.</div>
-
-		<h3>[property:Texture alphaMap]</h3>
-		<div>The alpha map is a grayscale texture that controls the opacity across the surface (black: fully transparent; white: fully opaque). Default is null.</div>
-		<div>Only the color of the texture is used, ignoring the alpha channel if one exists. For RGB and RGBA textures, the [page:WebGLRenderer WebGL] renderer will use the green channel when sampling this texture due to the extra bit of precision provided for green in DXT-compressed and uncompressed RGB 565 formats. Luminance-only and luminance/alpha textures will also still work as expected.</div>
-
 		<h3>[property:Texture displacementMap]</h3>
 		<h3>[property:Texture displacementMap]</h3>
 		<div>
 		<div>
-			The displacement map affects the position of the mesh's vertices. Unlike other maps which only affect the light and shade of the material the displaced vertices can cast shadows, block other objects, and otherwise act as real geometry. 
+			The displacement map affects the position of the mesh's vertices. Unlike other maps which only affect the light and shade of the material the displaced vertices can cast shadows, block other objects, and otherwise act as real geometry.
 			The displacement texture is an image where the value of each pixel (white being the highest) is mapped against, and repositions, the vertices of the mesh.
 			The displacement texture is an image where the value of each pixel (white being the highest) is mapped against, and repositions, the vertices of the mesh.
 		</div>
 		</div>
-		
+
 		<h3>[property:Float displacementScale]</h3>
 		<h3>[property:Float displacementScale]</h3>
 		<div>
 		<div>
 			How much the displacement map affects the mesh (where black is no displacement, and white is maximum displacement). Without a displacement map set, this value is not applied. Default is 1.
 			How much the displacement map affects the mesh (where black is no displacement, and white is maximum displacement). Without a displacement map set, this value is not applied. Default is 1.
 		</div>
 		</div>
-		
+
 		<h3>[property:Float displacementBias]</h3>
 		<h3>[property:Float displacementBias]</h3>
 		<div>
 		<div>
 			The offset of the displacement map's values on the mesh's vertices. Without a displacement map set, this value is not applied. Default is 0.
 			The offset of the displacement map's values on the mesh's vertices. Without a displacement map set, this value is not applied. Default is 0.
 		</div>
 		</div>
-		
+
+		<h3>[property:Texture specularMap]</h3>
+		<div>The specular map value affects both how much the specular surface highlight contributes and how much of the environment map affects the surface. Default is null.</div>
+
+		<h3>[property:Texture alphaMap]</h3>
+		<div>The alpha map is a grayscale texture that controls the opacity across the surface (black: fully transparent; white: fully opaque). Default is null.</div>
+		<div>Only the color of the texture is used, ignoring the alpha channel if one exists. For RGB and RGBA textures, the [page:WebGLRenderer WebGL] renderer will use the green channel when sampling this texture due to the extra bit of precision provided for green in DXT-compressed and uncompressed RGB 565 formats. Luminance-only and luminance/alpha textures will also still work as expected.</div>
+
 		<h3>[property:TextureCube envMap]</h3>
 		<h3>[property:TextureCube envMap]</h3>
 		<div>Set env map. Default is null.</div>
 		<div>Set env map. Default is null.</div>
 
 

+ 9 - 8
docs/api/materials/PointsMaterial.html

@@ -20,7 +20,7 @@
 		<h3>[name]( [page:Object parameters] )</h3>
 		<h3>[name]( [page:Object parameters] )</h3>
 
 
 		<div>parameters is an object with one or more properties defining the material's appearance.</div>
 		<div>parameters is an object with one or more properties defining the material's appearance.</div>
-		
+
 		<div>
 		<div>
 		color — Particle color in hexadecimal. Default is 0xffffff.<br />
 		color — Particle color in hexadecimal. Default is 0xffffff.<br />
 		map — a [page:Texture texture].If defined, then a point has the data from texture as colors. Default is null.<br />
 		map — a [page:Texture texture].If defined, then a point has the data from texture as colors. Default is null.<br />
@@ -31,27 +31,28 @@
 		</div>
 		</div>
 
 
 		<h2>Properties</h2>
 		<h2>Properties</h2>
+		<div>See the base [page:Material] class for common properties.</div>
 
 
 		<h3>[property:Number color]</h3>
 		<h3>[property:Number color]</h3>
-		
+
 		<div>Sets the color of the particles. Default is 0xffffff.</div>
 		<div>Sets the color of the particles. Default is 0xffffff.</div>
-		
+
 		<h3>[property:Texture map]</h3>
 		<h3>[property:Texture map]</h3>
-		
+
 		<div>Sets the color of the particles using data from a texture.</div>
 		<div>Sets the color of the particles using data from a texture.</div>
-		
+
 		<h3>[property:Number size]</h3>
 		<h3>[property:Number size]</h3>
-		
+
 		<div>Sets the size of the particles. Default is 1.0.</div>
 		<div>Sets the size of the particles. Default is 1.0.</div>
 
 
 		<h3>[property:Boolean sizeAttenuation]</h3>
 		<h3>[property:Boolean sizeAttenuation]</h3>
-		
+
 		<div>Specify whether particles' size will get smaller with the distance. Default is true.</div>
 		<div>Specify whether particles' size will get smaller with the distance. Default is true.</div>
 
 
 		<h3>[property:Boolean vertexColors]</h3>
 		<h3>[property:Boolean vertexColors]</h3>
 		<div>Define how the vertices gets colored. Possible values are THREE.NoColors, THREE.FaceColors and THREE.VertexColors. Default is THREE.NoColors.</div>
 		<div>Define how the vertices gets colored. Possible values are THREE.NoColors, THREE.FaceColors and THREE.VertexColors. Default is THREE.NoColors.</div>
 		<div>This setting might not have any effect when used with certain renderers. For example, it is ignored with the [page:CanvasRenderer Canvas] renderer, but does work with the [page:WebGLRenderer WebGL] renderer.</div>
 		<div>This setting might not have any effect when used with certain renderers. For example, it is ignored with the [page:CanvasRenderer Canvas] renderer, but does work with the [page:WebGLRenderer WebGL] renderer.</div>
-		
+
 		<h3>[property:Boolean fog]</h3>
 		<h3>[property:Boolean fog]</h3>
 		<div>Define whether the material color is affected by global fog settings.</div>
 		<div>Define whether the material color is affected by global fog settings.</div>
 		<div>This setting might not have any effect when used with certain renderers. For example, it is ignored with the [page:CanvasRenderer Canvas] renderer, but does work with the [page:WebGLRenderer WebGL] renderer.</div>
 		<div>This setting might not have any effect when used with certain renderers. For example, it is ignored with the [page:CanvasRenderer Canvas] renderer, but does work with the [page:WebGLRenderer WebGL] renderer.</div>

+ 119 - 26
docs/api/materials/ShaderMaterial.html

@@ -31,11 +31,11 @@
 		var material = new THREE.ShaderMaterial( {
 		var material = new THREE.ShaderMaterial( {
 
 
 			uniforms: {
 			uniforms: {
-				time: { type: "f", value: 1.0 },
-				resolution: { type: "v2", value: new THREE.Vector2() }
+				time: { value: 1.0 },
+				resolution: { value: new THREE.Vector2() }
 			},
 			},
 			attributes: {
 			attributes: {
-				vertexOpacity: { type: 'f', value: [] }
+				vertexOpacity: { value: [] }
 			},
 			},
 			vertexShader: document.getElementById( 'vertexShader' ).textContent,
 			vertexShader: document.getElementById( 'vertexShader' ).textContent,
 			fragmentShader: document.getElementById( 'fragmentShader' ).textContent
 			fragmentShader: document.getElementById( 'fragmentShader' ).textContent
@@ -122,81 +122,168 @@
 		To declare a custom uniform, use the *uniforms* property:
 		To declare a custom uniform, use the *uniforms* property:
 		<code>
 		<code>
 		uniforms: {
 		uniforms: {
-			time: { type: "f", value: 1.0 },
-			resolution: { type: "v2", value: new THREE.Vector2() }
+			time: { value: 1.0 },
+			resolution: { value: new THREE.Vector2() }
 		}
 		}
 		</code>
 		</code>
-		Each uniform must have a <a href="#uniform-types">*type*</a> and a *value*:
+		Each uniform must have a *value* property. The type of the value must correspond to the type of the uniform variable in the GLSL code as specified for the primitive GLSL types in the table below. Uniform structures and arrays are also supported. GLSL arrays of primitive type must either be specified as an array of the corresponding THREE objects or as a flat array containing the data of all the objects. In other words; GLSL primitives in arrays must not be represented by arrays. This rule does not apply transitively.  An array of *vec2* arrays, each with a length of five vectors, must be an array of arrays, of either five *THREE.Vector2* objects or ten *number*s.
 		<table>
 		<table>
 			<caption><a id="uniform-types">Uniform types</a></caption>
 			<caption><a id="uniform-types">Uniform types</a></caption>
 			<thead>
 			<thead>
 				<tr>
 				<tr>
-					<th>Uniform *type* string</th>
 					<th>GLSL type</th>
 					<th>GLSL type</th>
 					<th>JavaScript type</th>
 					<th>JavaScript type</th>
 				</tr>
 				</tr>
 			</thead>
 			</thead>
 			<tbody>
 			<tbody>
+
 				<tr>
 				<tr>
-					<td><code>'i', '1i'</code></td>
 					<td>int</td>
 					<td>int</td>
 					<td>[page:Number]</td>
 					<td>[page:Number]</td>
 				</tr>
 				</tr>
 				<tr>
 				<tr>
-					<td><code>'f', '1f'</code></td>
 					<td>float</td>
 					<td>float</td>
 					<td>[page:Number]</td>
 					<td>[page:Number]</td>
 				</tr>
 				</tr>
 				<tr>
 				<tr>
-					<td><code>'v2'</code></td>
+					<td>bool</td>
+					<td>[page:Boolean]</td>
+				</tr>
+				<tr>
+					<td>bool</td>
+					<td>[page:Number]</td>
+				</tr>
+
+				<tr>
 					<td>vec2</td>
 					<td>vec2</td>
 					<td>[page:Vector2 THREE.Vector2]</td>
 					<td>[page:Vector2 THREE.Vector2]</td>
 				</tr>
 				</tr>
 				<tr>
 				<tr>
-					<td><code>'v3'</code></td>
+					<td>vec2</td>
+					<td>[page:Float32Array Float32Array] (*)</td>
+				</tr>
+				<tr>
+					<td>vec2</td>
+					<td>[page:Array Array] (*)</td>
+				</tr>
+				<tr>
 					<td>vec3</td>
 					<td>vec3</td>
 					<td>[page:Vector3 THREE.Vector3]</td>
 					<td>[page:Vector3 THREE.Vector3]</td>
 				</tr>
 				</tr>
 				<tr>
 				<tr>
-					<td><code>'c'</code></td>
 					<td>vec3</td>
 					<td>vec3</td>
 					<td>[page:Color THREE.Color]</td>
 					<td>[page:Color THREE.Color]</td>
 				</tr>
 				</tr>
-
 				<tr>
 				<tr>
-					<td><code>'v4'</code></td>
+					<td>vec3</td>
+					<td>[page:Float32Array Float32Array] (*)</td>
+				</tr>
+				<tr>
+					<td>vec3</td>
+					<td>[page:Array Array] (*)</td>
+				</tr>
+				<tr>
 					<td>vec4</td>
 					<td>vec4</td>
 					<td>[page:Vector4 THREE.Vector4]</td>
 					<td>[page:Vector4 THREE.Vector4]</td>
 				</tr>
 				</tr>
+				<tr>
+					<td>vec4</td>
+					<td>[page:Quaternion THREE.Quaternion]</td>
+				</tr>
+				<tr>
+					<td>vec4</td>
+					<td>[page:Float32Array Float32Array] (*)</td>
+				</tr>
+				<tr>
+					<td>vec4</td>
+					<td>[page:Array Array] (*)</td>
+				</tr>
 
 
 				<tr>
 				<tr>
-					<td><code>'m3'</code></td>
+					<td>mat2</td>
+					<td>[page:Float32Array Float32Array] (*)</td>
+				</td>
+				<tr>
+					<td>mat2</td>
+					<td>[page:Array Array] (*)</td>
+				</td>
+				<tr>
 					<td>mat3</td>
 					<td>mat3</td>
 					<td>[page:Matrix3 THREE.Matrix3]</td>
 					<td>[page:Matrix3 THREE.Matrix3]</td>
 				</tr>
 				</tr>
-
 				<tr>
 				<tr>
-					<td><code>'m4'</code></td>
+					<td>mat3</td>
+					<td>[page:Float32Array Float32Array] (*)</td>
+				</tr>
+				<tr>
+					<td>mat3</td>
+					<td>[page:Array Array] (*)</td>
+				</tr>
+				<tr>
+					<td>mat4</td>
+					<td>[page:Matrix3 THREE.Matrix4]</td>
+				</tr>
+				<tr>
+					<td>mat4</td>
+					<td>[page:Float32Array Float32Array] (*)</td>
+				</tr>
+				<tr>
 					<td>mat4</td>
 					<td>mat4</td>
-					<td>[page:Matrix4 THREE.Matrix4]</td>
+					<td>[page:Array Array] (*)</td>
+				</tr>
+
+				<tr>
+					<td>ivec2, bvec2</td>
+					<td>[page:Float32Array Float32Array] (*)</td>
+				</tr>
+				<tr>
+					<td>ivec2, bvec2</td>
+					<td>[page:Array Array] (*)</td>
+				</tr>
+				<tr>
+					<td>ivec3, bvec3</td>
+					<td>[page:Int32Array Int32Array] (*)</td>
+				</tr>
+				<tr>
+					<td>ivec3, bvec3</td>
+					<td>[page:Array Array] (*)</td>
 				</tr>
 				</tr>
 				<tr>
 				<tr>
-					<td><code>'t'</code></td>
+					<td>ivec4, bvec4</td>
+					<td>[page:Int32Array Int32Array] (*)</td>
+				</tr>
+				<tr>
+					<td>ivec4, bvec4</td>
+					<td>[page:Array Array] (*)</td>
+				</tr>
+
+				<tr>
 					<td>sampler2D</td>
 					<td>sampler2D</td>
 					<td>[page:Texture THREE.Texture]</td>
 					<td>[page:Texture THREE.Texture]</td>
 				</tr>
 				</tr>
 				<tr>
 				<tr>
-					<td><code>'t'</code></td>
+					<td>sampler2D</td>
+					<td>[page:WebGLRenderTarget THREE.WebGLRenderTarget]</td>
+				</tr>
+				<tr>
 					<td>samplerCube</td>
 					<td>samplerCube</td>
-					<td>[page:Texture THREE.CubeTexture]</td>
+					<td>[page:CubeTexture THREE.CubeTexture]</tr>
 				</tr>
 				</tr>
+				<tr>
+					<td>samplerCube</td>
+					<td>[page:WebGLRenderTargetCube THREE.WebGLRenderTargetCube]</td>
+				</tr>
+
 			</tbody>
 			</tbody>
 		</table>
 		</table>
 		</p>
 		</p>
+		<p>
+		(*) Same for an (innermost) array (dimension) of the same GLSL type, containing the components of all vectors or matrices in the array.
+		</p>
 
 
 		<h2>Constructor</h2>
 		<h2>Constructor</h2>
 
 
-		<h3>[name]([page:Object parameters])</h3>
+		<h3>[name]( [page:Object parameters] )</h3>
 		<div>
 		<div>
 		parameters -- An object containing various parameters setting up shaders and their uniforms.
 		parameters -- An object containing various parameters setting up shaders and their uniforms.
 		</div>
 		</div>
@@ -211,14 +298,15 @@
 		</div>
 		</div>
 
 
 		<h2>Properties</h2>
 		<h2>Properties</h2>
+		<div>See the base [page:Material] class for common properties.</div>
 
 
 		<h3>[property:Object uniforms]</h3>
 		<h3>[property:Object uniforms]</h3>
 		<div>
 		<div>
 		Object specifying the uniforms to be passed to the shader code; keys are uniform names, values are definitions of the form
 		Object specifying the uniforms to be passed to the shader code; keys are uniform names, values are definitions of the form
 		<code>
 		<code>
-		{ type: 'f', value: 1.0 }
+		{ value: 1.0 }
 		</code>
 		</code>
-		where *type* is a <a href="#uniform-types">uniform type string</a>, and *value* is the value of the uniform. Names must match the name of the uniform, as defined in the GLSL code. Note that uniforms are refreshed on every frame, so updating the value of the uniform will immediately update the value available to the GLSL code.
+		where *value* is the value of the uniform. Names must match the name of the uniform, as defined in the GLSL code. Note that uniforms are refreshed on every frame, so updating the value of the uniform will immediately update the value available to the GLSL code.
 		</div>
 		</div>
 
 
 		<h3>[property:Object defines]</h3>
 		<h3>[property:Object defines]</h3>
@@ -271,7 +359,12 @@
 
 
 		<h3>[property:Boolean lights]</h3>
 		<h3>[property:Boolean lights]</h3>
 		<div>
 		<div>
-		Defines whether this material uses lighting; true to pass uniform data related to lighting to this shader
+		Defines whether this material uses lighting; true to pass uniform data related to lighting to this shader. Default is false.
+		</div>
+
+		<h3>[property:Boolean clipping]</h3>
+		<div>
+		Defines whether this material supports clipping; true to let the renderer pass the clippingPlanes uniform. Default is false.
 		</div>
 		</div>
 
 
 		<h3>[property:Number vertexColors]</h3>
 		<h3>[property:Number vertexColors]</h3>
@@ -302,7 +395,7 @@
 
 
 		<h2>Methods</h2>
 		<h2>Methods</h2>
 
 
-		<h3>[method:ShaderMaterial clone]()</h3>
+		<h3>[method:ShaderMaterial clone]() [page:ShaderMaterial this]</h3>
 		<div>
 		<div>
 		Generates a shallow copy of this material. Note that the vertexShader and fragmentShader are copied <emph>by reference</emph>, as are the definitions of the *attributes*; this means that clones of the material will share the same compiled [page:WebGLProgram]. However, the *uniforms* are copied <emph>by value</emph>, which allows you to have different sets of uniforms for different copies of the material.
 		Generates a shallow copy of this material. Note that the vertexShader and fragmentShader are copied <emph>by reference</emph>, as are the definitions of the *attributes*; this means that clones of the material will share the same compiled [page:WebGLProgram]. However, the *uniforms* are copied <emph>by value</emph>, which allows you to have different sets of uniforms for different copies of the material.
 		</div>
 		</div>

+ 3 - 3
docs/api/materials/SpriteMaterial.html

@@ -31,13 +31,13 @@
 
 
 
 
 		<h2>Properties</h2>
 		<h2>Properties</h2>
-
+		<div>See the base [page:Material] class for common properties.</div>
 
 
 		<h3>[property:Color color]</h3>
 		<h3>[property:Color color]</h3>
-		<div>The texture is multiplied by this color. The default is 0xffffff</div> 
+		<div>The texture is multiplied by this color. The default is 0xffffff</div>
 
 
 		<h3>[property:Texture map]</h3>
 		<h3>[property:Texture map]</h3>
-		<div>The texture map. Default is null.</div> 
+		<div>The texture map. Default is null.</div>
 
 
 		<h3>[property:Radians rotation]</h3>
 		<h3>[property:Radians rotation]</h3>
 		<div>The rotation of the sprite in radians. Default is 0.</div>
 		<div>The rotation of the sprite in radians. Default is 0.</div>

+ 22 - 22
docs/api/math/Box2.html

@@ -16,7 +16,7 @@
 		<h2>Constructor</h2>
 		<h2>Constructor</h2>
 
 
 
 
-		<h3>[name]([page:Vector2 min], [page:Vector2 max])</h3>
+		<h3>[name]( [page:Vector2 min], [page:Vector2 max] )</h3>
 		<div>
 		<div>
 		min -- Lower (x, y) boundary of the box.<br />
 		min -- Lower (x, y) boundary of the box.<br />
 		max -- Upper (x, y) boundary of the box.
 		max -- Upper (x, y) boundary of the box.
@@ -44,7 +44,7 @@
 
 
 
 
 
 
-		<h3>[method:Box2 set]([page:Vector2 min], [page:Vector2 max]) [page:Box2 this]</h3>
+		<h3>[method:Box2 set]( [page:Vector2 min], [page:Vector2 max] ) [page:Box2 this]</h3>
 		<div>
 		<div>
 		min -- Lower (x, y) boundary of the box. <br />
 		min -- Lower (x, y) boundary of the box. <br />
 		max -- Upper (x, y) boundary of the box.
 		max -- Upper (x, y) boundary of the box.
@@ -53,7 +53,7 @@
 		Sets the lower and upper (x, y) boundaries of this box.
 		Sets the lower and upper (x, y) boundaries of this box.
 		</div>
 		</div>
 
 
-		<h3>[method:Box2 expandByPoint]([page:Vector2 point]) [page:Box2 this]</h3>
+		<h3>[method:Box2 expandByPoint]( [page:Vector2 point] ) [page:Box2 this]</h3>
 		<div>
 		<div>
 		point -- Point that should be included in the box.
 		point -- Point that should be included in the box.
 		</div>
 		</div>
@@ -61,7 +61,7 @@
 		Expands the boundaries of this box to include *point*.
 		Expands the boundaries of this box to include *point*.
 		</div>
 		</div>
 
 
-		<h3>[method:Vector2 clampPoint]([page:Vector2 point], [page:Vector2 optionalTarget])</h3>
+		<h3>[method:Vector2 clampPoint]( [page:Vector2 point], [page:Vector2 optionalTarget] ) [page:Box2 this]</h3>
 		<div>
 		<div>
 		point -- Position to clamp. <br />
 		point -- Position to clamp. <br />
 		optionalTarget -- If specified, the clamped result will be copied here.
 		optionalTarget -- If specified, the clamped result will be copied here.
@@ -70,7 +70,7 @@
 		Clamps *point* within the bounds of this box.
 		Clamps *point* within the bounds of this box.
 		</div>
 		</div>
 
 
-		<h3>[method:Boolean intersectsBox]([page:Box2 box])</h3>
+		<h3>[method:Boolean intersectsBox]( [page:Box2 box] ) [page:Box2 this]</h3>
 		<div>
 		<div>
 		box -- Box to check for intersection against.
 		box -- Box to check for intersection against.
 		</div>
 		</div>
@@ -78,7 +78,7 @@
 		Determines whether or not this box intersects *box*.
 		Determines whether or not this box intersects *box*.
 		</div>
 		</div>
 
 
-		<h3>[method:Box2 setFromPoints]([page:Array points]) [page:Box2 this]</h3>
+		<h3>[method:Box2 setFromPoints]( [page:Array points] ) [page:Box2 this]</h3>
 		<div>
 		<div>
 		points -- Set of points that the resulting box will envelop.
 		points -- Set of points that the resulting box will envelop.
 		</div>
 		</div>
@@ -86,7 +86,7 @@
 		Sets the upper and lower bounds of this box to include all of the points in *points*.
 		Sets the upper and lower bounds of this box to include all of the points in *points*.
 		</div>
 		</div>
 
 
-		<h3>[method:Vector2 size]([page:Vector2 optionalTarget])</h3>
+		<h3>[method:Vector2 size]( [page:Vector2 optionalTarget] ) [page:Box2 this]</h3>
 		<div>
 		<div>
 		optionalTarget -- If specified, the result will be copied here.
 		optionalTarget -- If specified, the result will be copied here.
 		</div>
 		</div>
@@ -94,7 +94,7 @@
 		Returns the width and height of this box.
 		Returns the width and height of this box.
 		</div>
 		</div>
 
 
-		<h3>[method:Box2 union]([page:Box2 box]) [page:Box2 this]</h3>
+		<h3>[method:Box2 union]( [page:Box2 box] ) [page:Box2 this]</h3>
 		<div>
 		<div>
 		box -- Box that will be unioned with this box.
 		box -- Box that will be unioned with this box.
 		</div>
 		</div>
@@ -104,7 +104,7 @@
 		lower bounds.
 		lower bounds.
 		</div>
 		</div>
 
 
-		<h3>[method:Vector2 getParameter]([page:Vector2 point], [page:Vector2 optionalTarget])</h3>
+		<h3>[method:Vector2 getParameter]( [page:Vector2 point], [page:Vector2 optionalTarget] ) [page:Box2 this]</h3>
 		<div>
 		<div>
 		point -- [page:Vector2]<br/>
 		point -- [page:Vector2]<br/>
 		optionalTarget -- [page:Vector2]<br/>
 		optionalTarget -- [page:Vector2]<br/>
@@ -114,7 +114,7 @@
 		Returns a point as a proportion of this box's width and height.
 		Returns a point as a proportion of this box's width and height.
 		</div>
 		</div>
 
 
-		<h3>[method:Box2 expandByScalar]([page:float scalar]) [page:Box2 this]</h3>
+		<h3>[method:Box2 expandByScalar]( [page:float scalar] ) [page:Box2 this]</h3>
 		<div>
 		<div>
 		scalar -- Distance to expand.
 		scalar -- Distance to expand.
 		</div>
 		</div>
@@ -123,7 +123,7 @@
 		will be contracted.
 		will be contracted.
 		</div>
 		</div>
 
 
-		<h3>[method:Box2 intersect]([page:Box2 box]) [page:Box2 this]</h3>
+		<h3>[method:Box2 intersect]( [page:Box2 box] ) [page:Box2 this]</h3>
 		<div>
 		<div>
 		box -- Box to intersect with.
 		box -- Box to intersect with.
 		</div>
 		</div>
@@ -133,7 +133,7 @@
 		lower bounds.
 		lower bounds.
 		</div>
 		</div>
 
 
-		<h3>[method:Boolean containsBox]([page:Box2 box])</h3>
+		<h3>[method:Boolean containsBox]( [page:Box2 box] ) [page:Box2 this]</h3>
 		<div>
 		<div>
 		box -- Box to test for inclusion.
 		box -- Box to test for inclusion.
 		</div>
 		</div>
@@ -142,7 +142,7 @@
 		this function also returns true.
 		this function also returns true.
 		</div>
 		</div>
 
 
-		<h3>[method:Box2 translate]([page:Vector2 offset]) [page:Box2 this]</h3>
+		<h3>[method:Box2 translate]( [page:Vector2 offset] ) [page:Box2 this]</h3>
 		<div>
 		<div>
 		offset -- Direction and distance of offset.
 		offset -- Direction and distance of offset.
 		</div>
 		</div>
@@ -151,19 +151,19 @@
 		*offset* units in 2D space.
 		*offset* units in 2D space.
 		</div>
 		</div>
 
 
-		<h3>[method:Boolean empty]()</h3>
+		<h3>[method:Boolean isEmpty]() [page:Box2 this]</h3>
 		<div>
 		<div>
 		Returns true if this box includes zero points within its bounds.</br>
 		Returns true if this box includes zero points within its bounds.</br>
 		Note that a box with equal lower and upper bounds still includes one point, the
 		Note that a box with equal lower and upper bounds still includes one point, the
 		one both bounds share.
 		one both bounds share.
 		</div>
 		</div>
 
 
-		<h3>[method:Box2 clone]()</h3>
+		<h3>[method:Box2 clone]() [page:Box2 this]</h3>
 		<div>
 		<div>
 		Returns a copy of this box.
 		Returns a copy of this box.
 		</div>
 		</div>
 
 
-		<h3>[method:Boolean equals]([page:Box2 box])</h3>
+		<h3>[method:Boolean equals]( [page:Box2 box] ) [page:Box2 this]</h3>
 		<div>
 		<div>
 		box -- Box to compare.
 		box -- Box to compare.
 		</div>
 		</div>
@@ -171,7 +171,7 @@
 		Returns true if this box and *box* share the same lower and upper bounds.
 		Returns true if this box and *box* share the same lower and upper bounds.
 		</div>
 		</div>
 
 
-		<h3>[method:Box2 expandByVector]([page:Vector2 vector]) [page:Box2 this]</h3>
+		<h3>[method:Box2 expandByVector]( [page:Vector2 vector] ) [page:Box2 this]</h3>
 		<div>
 		<div>
 		vector -- Amount to expand this box in each dimension.
 		vector -- Amount to expand this box in each dimension.
 		</div>
 		</div>
@@ -181,7 +181,7 @@
 		this box will be expanded by the y component of *vector* in both directions.
 		this box will be expanded by the y component of *vector* in both directions.
 		</div>
 		</div>
 
 
-		<h3>[method:Box2 copy]([page:Box2 box]) [page:Box2 this]</h3>
+		<h3>[method:Box2 copy]( [page:Box2 box] ) [page:Box2 this]</h3>
 		<div>
 		<div>
 		box -- Box to copy.
 		box -- Box to copy.
 		</div>
 		</div>
@@ -194,7 +194,7 @@
 		Makes this box empty.
 		Makes this box empty.
 		</div>
 		</div>
 
 
-		<h3>[method:Vector2 center]([page:Vector2 optionalTarget])</h3>
+		<h3>[method:Vector2 center]( [page:Vector2 optionalTarget] ) [page:Box2 this]</h3>
 		<div>
 		<div>
 		optionalTarget -- If specified, the result will be copied here.
 		optionalTarget -- If specified, the result will be copied here.
 		</div>
 		</div>
@@ -202,7 +202,7 @@
 		Returns the center point of this box.
 		Returns the center point of this box.
 		</div>
 		</div>
 
 
-		<h3>[method:Float distanceToPoint]([page:Vector2 point])</h3>
+		<h3>[method:Float distanceToPoint]( [page:Vector2 point] ) [page:Box2 this]</h3>
 		<div>
 		<div>
 		point -- Point to measure distance to.
 		point -- Point to measure distance to.
 		</div>
 		</div>
@@ -211,7 +211,7 @@
 		If the point lies inside of this box, the distance will be 0.
 		If the point lies inside of this box, the distance will be 0.
 		</div>
 		</div>
 
 
-		<h3>[method:Boolean containsPoint]([page:Vector2 point])</h3>
+		<h3>[method:Boolean containsPoint]( [page:Vector2 point] ) [page:Box2 this]</h3>
 		<div>
 		<div>
 		point -- [page:Vector2] to check for inclusion.
 		point -- [page:Vector2] to check for inclusion.
 		</div>
 		</div>
@@ -219,7 +219,7 @@
 		Returns true if the specified point lies within the boundaries of this box.
 		Returns true if the specified point lies within the boundaries of this box.
 		</div>
 		</div>
 
 
-		<h3>[method:Box2 setFromCenterAndSize]([page:Vector2 center], [page:Vector2 size]) [page:Box2 this]</h3>
+		<h3>[method:Box2 setFromCenterAndSize]( [page:Vector2 center], [page:Vector2 size] ) [page:Box2 this]</h3>
 		<div>
 		<div>
 		center -- Desired center position of the box. <br />
 		center -- Desired center position of the box. <br />
 		size -- Desired x and y dimensions of the box.
 		size -- Desired x and y dimensions of the box.

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

@@ -16,7 +16,7 @@
 		<h2>Constructor</h2>
 		<h2>Constructor</h2>
 
 
 
 
-		<h3>[name]([page:Vector3 min], [page:Vector3 max])</h3>
+		<h3>[name]( [page:Vector3 min], [page:Vector3 max] )</h3>
 		<div>
 		<div>
 		min -- Lower (x, y, z) boundary of the box.<br />
 		min -- Lower (x, y, z) boundary of the box.<br />
 		max -- Upper (x, y, z) boundary of the box.
 		max -- Upper (x, y, z) boundary of the box.
@@ -43,7 +43,7 @@
 
 
 
 
 
 
-		<h3>[method:Box3 set]([page:Vector3 min], [page:Vector3 max]) [page:Box3 this]</h3>
+		<h3>[method:Box3 set]( [page:Vector3 min], [page:Vector3 max] ) [page:Box3 this]</h3>
 		<div>
 		<div>
 		min -- Lower (x, y, z) boundary of the box. <br />
 		min -- Lower (x, y, z) boundary of the box. <br />
 		max -- Upper (x, y, z) boundary of the box.
 		max -- Upper (x, y, z) boundary of the box.
@@ -52,7 +52,7 @@
 		Sets the lower and upper (x, y, z) boundaries of this box.
 		Sets the lower and upper (x, y, z) boundaries of this box.
 		</div>
 		</div>
 
 
-		<h3>[method:Box3 applyMatrix4]([page:Matrix4 matrix]) [page:Box3 this]</h3>
+		<h3>[method:Box3 applyMatrix4]( [page:Matrix4 matrix] ) [page:Box3 this]</h3>
 		<div>
 		<div>
 		matrix -- The [page:Matrix4] to apply
 		matrix -- The [page:Matrix4] to apply
 		</div>
 		</div>
@@ -60,7 +60,7 @@
 		Transforms this Box3 with the supplied matrix.
 		Transforms this Box3 with the supplied matrix.
 		</div>
 		</div>
 
 
-		<h3>[method:Vector3 clampPoint]([page:Vector3 point], [page:Vector3 optionalTarget])</h3>
+		<h3>[method:Vector3 clampPoint]( [page:Vector3 point], [page:Vector3 optionalTarget] ) [page:Box3 this]</h3>
 		<div>
 		<div>
 		point -- Position to clamp. <br />
 		point -- Position to clamp. <br />
 		optionalTarget -- If specified, the clamped result will be copied here.
 		optionalTarget -- If specified, the clamped result will be copied here.
@@ -69,7 +69,7 @@
 		Clamps *point* within the bounds of this box.
 		Clamps *point* within the bounds of this box.
 		</div>
 		</div>
 
 
-		<h3>[method:Boolean intersectsBox]([page:Box3 box])</h3>
+		<h3>[method:Boolean intersectsBox]( [page:Box3 box] ) [page:Box3 this]</h3>
 		<div>
 		<div>
 		box -- Box to check for intersection against.
 		box -- Box to check for intersection against.
 		</div>
 		</div>
@@ -77,7 +77,7 @@
 		Determines whether or not this box intersects *box*.
 		Determines whether or not this box intersects *box*.
 		</div>
 		</div>
 
 
-		<h3>[method:Box3 setFromPoints]([page:Array points]) [page:Box3 this]</h3>
+		<h3>[method:Box3 setFromPoints]( [page:Array points] ) [page:Box3 this]</h3>
 		<div>
 		<div>
 		points -- Set of points that the resulting box will envelop.
 		points -- Set of points that the resulting box will envelop.
 		</div>
 		</div>
@@ -85,7 +85,7 @@
 		Sets the upper and lower bounds of this box to include all of the points in *points*.
 		Sets the upper and lower bounds of this box to include all of the points in *points*.
 		</div>
 		</div>
 
 
-		<h3>[method:Box3 setFromObject]([page:Object3D object]) [page:Box3 this]</h3>
+		<h3>[method:Box3 setFromObject]( [page:Object3D object] ) [page:Box3 this]</h3>
 		<div>
 		<div>
 		object -- [page:Object3D] to compute the bounding box for.
 		object -- [page:Object3D] to compute the bounding box for.
 		</div>
 		</div>
@@ -96,7 +96,7 @@
 
 
 
 
 
 
-		<h3>[method:Vector3 size]([page:Vector3 optionalTarget])</h3>
+		<h3>[method:Vector3 size]( [page:Vector3 optionalTarget] ) [page:Box3 this]</h3>
 		<div>
 		<div>
 		optionalTarget -- If specified, the result will be copied here.
 		optionalTarget -- If specified, the result will be copied here.
 		</div>
 		</div>
@@ -104,7 +104,7 @@
 		Returns the width, height, and depth of this box.
 		Returns the width, height, and depth of this box.
 		</div>
 		</div>
 
 
-		<h3>[method:Box3 union]([page:Box3 box])</h3>
+		<h3>[method:Box3 union]( [page:Box3 box] ) [page:Box3 this]</h3>
 		<div>
 		<div>
 		box -- Box that will be unioned with this box.
 		box -- Box that will be unioned with this box.
 		</div>
 		</div>
@@ -114,7 +114,7 @@
 		lower bounds.
 		lower bounds.
 		</div>
 		</div>
 
 
-		<h3>[method:Vector3 getParameter]([page:Vector3 point], [page:Vector3 optionalTarget])</h3>
+		<h3>[method:Vector3 getParameter]( [page:Vector3 point], [page:Vector3 optionalTarget] ) [page:Box3 this]</h3>
 		<div>
 		<div>
 		point -- Point to parametrize.
 		point -- Point to parametrize.
 		optionalTarget -- If specified, the result will be copied here.
 		optionalTarget -- If specified, the result will be copied here.
@@ -123,7 +123,7 @@
 		Returns point as a proportion of this box's width and height.
 		Returns point as a proportion of this box's width and height.
 		</div>
 		</div>
 
 
-		<h3>[method:Box3 intersect]([page:Box3 box]) [page:Box3 this]</h3>
+		<h3>[method:Box3 intersect]( [page:Box3 box] ) [page:Box3 this]</h3>
 		<div>
 		<div>
 		box -- Box to intersect with.
 		box -- Box to intersect with.
 		</div>
 		</div>
@@ -133,7 +133,7 @@
 		lower bounds.
 		lower bounds.
 		</div>
 		</div>
 
 
-		<h3>[method:Boolean containsBox]([page:Box3 box])</h3>
+		<h3>[method:Boolean containsBox]( [page:Box3 box] ) [page:Box3 this]</h3>
 		<div>
 		<div>
 		box -- Box to test for inclusion.
 		box -- Box to test for inclusion.
 		</div>
 		</div>
@@ -142,7 +142,7 @@
 		this function also returns true.
 		this function also returns true.
 		</div>
 		</div>
 
 
-		<h3>[method:Boolean containsPoint]([page:Vector3 point])</h3>
+		<h3>[method:Boolean containsPoint]( [page:Vector3 point] ) [page:Box3 this]</h3>
 		<div>
 		<div>
 		point -- [page:Vector3] to check for inclusion.
 		point -- [page:Vector3] to check for inclusion.
 		</div>
 		</div>
@@ -150,7 +150,7 @@
 		Returns true if the specified point lies within the boundaries of this box.
 		Returns true if the specified point lies within the boundaries of this box.
 		</div>
 		</div>
 
 
-		<h3>[method:Box3 translate]([page:Vector3 offset]) [page:Box3 this]</h3>
+		<h3>[method:Box3 translate]( [page:Vector3 offset] ) [page:Box3 this]</h3>
 		<div>
 		<div>
 		offset -- Direction and distance of offset.
 		offset -- Direction and distance of offset.
 		</div>
 		</div>
@@ -159,19 +159,19 @@
 		*offset* units in 3D space.
 		*offset* units in 3D space.
 		</div>
 		</div>
 
 
-		<h3>[method:Boolean empty]()</h3>
+		<h3>[method:Boolean isEmpty]() [page:Box3 this]</h3>
 		<div>
 		<div>
 		Returns true if this box includes zero points within its bounds.</br>
 		Returns true if this box includes zero points within its bounds.</br>
 		Note that a box with equal lower and upper bounds still includes one point, the
 		Note that a box with equal lower and upper bounds still includes one point, the
 		one both bounds share.
 		one both bounds share.
 		</div>
 		</div>
 
 
-		<h3>[method:Box3 clone]()</h3>
+		<h3>[method:Box3 clone]() [page:Box3 this]</h3>
 		<div>
 		<div>
 		Returns a copy of this box.
 		Returns a copy of this box.
 		</div>
 		</div>
 
 
-		<h3>[method:Boolean equals]([page:Box3 box])</h3>
+		<h3>[method:Boolean equals]( [page:Box3 box] ) [page:Box3 this]</h3>
 		<div>
 		<div>
 		box -- Box to compare.
 		box -- Box to compare.
 		</div>
 		</div>
@@ -179,7 +179,7 @@
 		Returns true if this box and *box* share the same lower and upper bounds.
 		Returns true if this box and *box* share the same lower and upper bounds.
 		</div>
 		</div>
 
 
-		<h3>[method:Box3 expandByPoint]([page:Vector3 point]) [page:Box3 this]</h3>
+		<h3>[method:Box3 expandByPoint]( [page:Vector3 point] ) [page:Box3 this]</h3>
 		<div>
 		<div>
 		point -- Point that should be included in the box.
 		point -- Point that should be included in the box.
 		</div>
 		</div>
@@ -187,7 +187,7 @@
 		Expands the boundaries of this box to include *point*.
 		Expands the boundaries of this box to include *point*.
 		</div>
 		</div>
 
 
-		<h3>[method:Box3 expandByScalar]([page:float scalar]) [page:Box3 this]</h3>
+		<h3>[method:Box3 expandByScalar]( [page:float scalar] ) [page:Box3 this]</h3>
 		<div>
 		<div>
 		scalar -- Distance to expand.
 		scalar -- Distance to expand.
 		</div>
 		</div>
@@ -196,7 +196,7 @@
 		will be contracted.
 		will be contracted.
 		</div>
 		</div>
 
 
-		<h3>[method:Box3 expandByVector]([page:Vector3 vector]) [page:Box3 this]</h3>
+		<h3>[method:Box3 expandByVector]( [page:Vector3 vector] ) [page:Box3 this]</h3>
 		<div>
 		<div>
 		vector -- Amount to expand this box in each dimension.
 		vector -- Amount to expand this box in each dimension.
 		</div>
 		</div>
@@ -208,7 +208,7 @@
 		both directions.
 		both directions.
 		</div>
 		</div>
 
 
-		<h3>[method:Box3 copy]([page:Box3 box]) [page:Box3 this]</h3>
+		<h3>[method:Box3 copy]( [page:Box3 box] ) [page:Box3 this]</h3>
 		<div>
 		<div>
 		box -- Box to copy.
 		box -- Box to copy.
 		</div>
 		</div>
@@ -221,7 +221,7 @@
 		Makes this box empty.
 		Makes this box empty.
 		</div>
 		</div>
 
 
-		<h3>[method:Vector3 center]([page:Vector3 optionalTarget])</h3>
+		<h3>[method:Vector3 center]( [page:Vector3 optionalTarget] ) [page:Box3 this]</h3>
 		<div>
 		<div>
 		optionalTarget -- If specified, the result will be copied here.
 		optionalTarget -- If specified, the result will be copied here.
 		</div>
 		</div>
@@ -229,7 +229,7 @@
 		Returns the center point of this box.
 		Returns the center point of this box.
 		</div>
 		</div>
 
 
-		<h3>[method:Sphere getBoundingSphere]([page:Sphere optionalTarget])</h3>
+		<h3>[method:Sphere getBoundingSphere]( [page:Sphere optionalTarget] ) [page:Box3 this]</h3>
 		<div>
 		<div>
 		optionalTarget -- [page:Sphere] to optionally set the result to.
 		optionalTarget -- [page:Sphere] to optionally set the result to.
 		</div>
 		</div>
@@ -237,7 +237,7 @@
 		Gets a sphere that bounds the box.
 		Gets a sphere that bounds the box.
 		</div>
 		</div>
 
 
-		<h3>[method:Float distanceToPoint]([page:Vector3 point])</h3>
+		<h3>[method:Float distanceToPoint]( [page:Vector3 point] ) [page:Box3 this]</h3>
 		<div>
 		<div>
 		point -- Point to measure distance to.
 		point -- Point to measure distance to.
 		</div>
 		</div>
@@ -246,7 +246,7 @@
 		If the point lies inside of this box, the distance will be 0.
 		If the point lies inside of this box, the distance will be 0.
 		</div>
 		</div>
 
 
-		<h3>[method:Box3 setFromCenterAndSize]([page:Vector3 center], [page:Vector3 size]) [page:Box3 this]</h3>
+		<h3>[method:Box3 setFromCenterAndSize]( [page:Vector3 center], [page:Vector3 size] ) [page:Box3 this]</h3>
 		<div>
 		<div>
 		center -- Desired center position of the box. <br />
 		center -- Desired center position of the box. <br />
 		size -- Desired x and y dimensions of the box.
 		size -- Desired x and y dimensions of the box.

+ 22 - 12
docs/api/math/Color.html

@@ -51,6 +51,14 @@
 
 
 		<h2>Methods</h2>
 		<h2>Methods</h2>
 
 
+		<h3>[method:Color set]( value ) [page:Color this]</h3>
+		<div>
+		value -- either an instance of [page:Color], a [page:Integer hexadecimal] value, or a css style [page:String string]
+		</div>
+		<div>
+		Delegates to .copy, .setStyle, or .setHex depending on input type.
+		</div>
+
 		<h3>[method:Color copy]( [page:Color color] ) [page:Color this]</h3>
 		<h3>[method:Color copy]( [page:Color color] ) [page:Color this]</h3>
 		<div>
 		<div>
 		color — Color to copy.
 		color — Color to copy.
@@ -59,6 +67,15 @@
 		Copies given color.
 		Copies given color.
 		</div>
 		</div>
 
 
+		<h3>[method:Color fromArray]([page:Array array], [page:Integer offset]) [page:Color this]</h3>
+		<div>
+		array -- [page:Array] [r, g, b] <br />
+		offset -- [page:Integer] An optional offset into the array.
+		</div>
+		<div>
+		Sets this color's components based on an array formatted like [r, g, b]
+		</div>
+
 		<h3>[method:Color copyGammaToLinear]( [page:Color color] ) [page:Color this]</h3>
 		<h3>[method:Color copyGammaToLinear]( [page:Color color] ) [page:Color this]</h3>
 		<div>
 		<div>
 		color — Color to copy.
 		color — Color to copy.
@@ -179,30 +196,23 @@
 		Linear interpolation of this colors rgb values and the rgb values of the first argument. The alpha argument can be thought of as the percent between the two colors, where 0 is this color and 1 is the first argument.
 		Linear interpolation of this colors rgb values and the rgb values of the first argument. The alpha argument can be thought of as the percent between the two colors, where 0 is this color and 1 is the first argument.
 		</div>
 		</div>
 
 
-		<h3>[method:Array toArray]( [page:Array array] )</h3>
-		<div>
-		array -- Optional array to store the color.
-		</div>
-		<div>
-		Returns an array [r,g,b]
-		</div>
-
 		<h3>[method:Color equals]( [page:Color c] ) [page:Color this]</h3>
 		<h3>[method:Color equals]( [page:Color c] ) [page:Color this]</h3>
 		<div>
 		<div>
 		Compares this color and c and returns true if they are the same, false otherwise.
 		Compares this color and c and returns true if they are the same, false otherwise.
 		</div>
 		</div>
 
 
-		<h3>[method:Color clone]()</h3>
+		<h3>[method:Color clone]() [page:Color this]</h3>
 		<div>
 		<div>
 		Clones this color.
 		Clones this color.
 		</div>
 		</div>
 
 
-		<h3>[method:Color set]( value ) [page:Color this]</h3>
+		<h3>[method:Array toArray]([page:Array array], [page:Integer offset]) [page:Color this]</h3>
 		<div>
 		<div>
-		value -- either an instance of [page:Color], a [page:Integer hexadecimal] value, or a css style [page:String string]
+		array -- An optional array to store the color to. <br />
+		offset -- An optional offset into the array.
 		</div>
 		</div>
 		<div>
 		<div>
-		Delegates to .copy, .setStyle, or .setHex depending on input type.
+		Returns an array [r,g,b]
 		</div>
 		</div>
 
 
 		<h2>Source</h2>
 		<h2>Source</h2>

+ 8 - 0
docs/api/math/Frustum.html

@@ -81,6 +81,14 @@
 		Checks to see if the frustum contains the point.
 		Checks to see if the frustum contains the point.
 		</div>
 		</div>
 
 
+		<h3>[method:Boolean intersectsBox]([page:Box3 box])</h3>
+		<div>
+		box -- [page:Box3]
+		</div>
+		<div>
+		Check to see if the box intersects with the frustum.
+		</div>
+
 		<h3>[method:Boolean intersectsSphere]([page:Sphere sphere])</h3>
 		<h3>[method:Boolean intersectsSphere]([page:Sphere sphere])</h3>
 		<div>
 		<div>
 		sphere -- [page:Sphere]
 		sphere -- [page:Sphere]

+ 50 - 34
docs/api/math/Matrix3.html

@@ -33,42 +33,57 @@
 
 
 		<h2>Methods</h2>
 		<h2>Methods</h2>
 
 
-		<h3>[method:Matrix3 transpose]()</h3>
+		<h3>[method:Matrix3 set]( [page:Float n11], [page:Float n12], [page:Float n13], [page:Float n21], [page:Float n22], [page:Float n23], [page:Float n31], [page:Float n32], [page:Float n33] ) [page:Matrix3 this]</h3>
 		<div>
 		<div>
-		Transposes this matrix in place.
+		n11 -- [page:Float] <br />
+		n12 -- [page:Float] <br />
+		n13 -- [page:Float] <br />
+		n21 -- [page:Float] <br />
+		n22 -- [page:Float] <br />
+		n23 -- [page:Float] <br />
+		n31 -- [page:Float] <br />
+		n32 -- [page:Float] <br />
+		n33 -- [page:Float]
+		</div>
+		<div>
+		Sets the 3x3 matrix values to the given row-major sequence of values.
 		</div>
 		</div>
 
 
-		<h3>[method:Matrix3 transposeIntoArray]( [page:Array array] )</h3>
+		<h3>[method:Matrix3 copy]( [page:Matrix3 m] ) [page:Matrix3 this]</h3>
 		<div>
 		<div>
-		array -- [page:Array] <br />
+		m -- [page:Matrix4]
 		</div>
 		</div>
 		<div>
 		<div>
-		Transposes this matrix into the supplied array, and returns itself unchanged.
+		Copies the values of matrix *m* into this matrix.
 		</div>
 		</div>
 
 
+		<h3>[method:Matrix3 fromArray]( [page:Array array] ) [page:Matrix3 this]</h3>
+		<div>
+		array -- [page:Array] The array to read the elements from.
+		</div>
+		<div>
+		Sets the elements of this matrix based on an array in column-major format.
+		</div>
 
 
-		<h3>[method:Float determinant]()</h3>
+		<h3>[method:Matrix3 transpose]() [page:Matrix3 this]</h3>
 		<div>
 		<div>
-		Computes and returns the determinant of this matrix.
+		Transposes this matrix in place.
 		</div>
 		</div>
 
 
-		<h3>[method:Matrix3 set]([page:Float n11], [page:Float n12], [page:Float n13], [page:Float n21], [page:Float n22], [page:Float n23], [page:Float n31], [page:Float n32], [page:Float n33]) [page:Matrix3 this]</h3>
+		<h3>[method:Matrix3 transposeIntoArray]( [page:Array array] ) [page:Matrix3 this]</h3>
 		<div>
 		<div>
-		n11 -- [page:Float] <br />
-		n12 -- [page:Float] <br />
-		n13 -- [page:Float] <br />
-		n21 -- [page:Float] <br />
-		n22 -- [page:Float] <br />
-		n23 -- [page:Float] <br />
-		n31 -- [page:Float] <br />
-		n32 -- [page:Float] <br />
-		n33 -- [page:Float]
+		array -- [page:Array] <br />
 		</div>
 		</div>
 		<div>
 		<div>
-		Sets the 3x3 matrix values to the given row-major sequence of values.
+		Transposes this matrix into the supplied array, and returns itself unchanged.
+		</div>
+
+		<h3>[method:Float determinant]() [page:Matrix3 this]</h3>
+		<div>
+		Computes and returns the determinant of this matrix.
 		</div>
 		</div>
 
 
-		<h3>[method:Matrix3 multiplyScalar]([page:Float s]) [page:Matrix3 this]</h3>
+		<h3>[method:Matrix3 multiplyScalar]( [page:Float s] ) [page:Matrix3 this]</h3>
 		<div>
 		<div>
 		scalar -- [page:Float]
 		scalar -- [page:Float]
 		</div>
 		</div>
@@ -76,7 +91,7 @@
 		Multiplies every component of the matrix by the scalar value *s*.
 		Multiplies every component of the matrix by the scalar value *s*.
 		</div>
 		</div>
 
 
-		<h3>[method:Array applyToVector3Array]([page:Array array])</h3>
+		<h3>[method:Array applyToVector3Array]( [page:Array array] ) [page:Matrix3 this]</h3>
 		<div>
 		<div>
 		array -- An array in the form [vector1x, vector1y, vector1z, vector2x, vector2y, vector2z, ...]
 		array -- An array in the form [vector1x, vector1y, vector1z, vector2x, vector2y, vector2z, ...]
 		</div>
 		</div>
@@ -84,7 +99,7 @@
 		Multiplies (applies) this matrix to every vector3 in the array.
 		Multiplies (applies) this matrix to every vector3 in the array.
 		</div>
 		</div>
 
 
-		<h3>[method:Matrix3 getNormalMatrix]([page:Matrix4 m]) [page:Matrix3 this]</h3>
+		<h3>[method:Matrix3 getNormalMatrix]( [page:Matrix4 m] ) [page:Matrix3 this]</h3>
 		<div>
 		<div>
 		m -- [page:Matrix4]
 		m -- [page:Matrix4]
 		</div>
 		</div>
@@ -92,7 +107,7 @@
 		Sets this matrix as the normal matrix (upper left 3x3)of the passed [page:Matrix4 matrix4]. The normal matrix is the inverse transpose of the matrix *m*.
 		Sets this matrix as the normal matrix (upper left 3x3)of the passed [page:Matrix4 matrix4]. The normal matrix is the inverse transpose of the matrix *m*.
 		</div>
 		</div>
 
 
-		<h3>[method:Matrix3 getInverse]([page:Matrix4 m], [page:Boolean throwOnDegenerate]) [page:Matrix3 this]</h3>
+		<h3>[method:Matrix3 getInverse]( [page:Matrix4 m], [page:Boolean throwOnDegenerate] ) [page:Matrix3 this]</h3>
 		<div>
 		<div>
 		m -- [page:Matrix4]<br />
 		m -- [page:Matrix4]<br />
 		throwOnDegenerate -- [Page:Boolean] If true, throw an error if the matrix is degenerate (not invertible).
 		throwOnDegenerate -- [Page:Boolean] If true, throw an error if the matrix is degenerate (not invertible).
@@ -101,26 +116,27 @@
 		Set this matrix to the inverse of the passed matrix.
 		Set this matrix to the inverse of the passed matrix.
 		</div>
 		</div>
 
 
-		<h3>[method:Matrix3 copy]([page:Matrix3 m]) [page:Matrix3 this]</h3>
-		<div>
-		m -- [page:Matrix4]
-		</div>
+		<h3>[method:Matrix3 identity]() [page:Matrix3 this]</h3>
 		<div>
 		<div>
-		Copies the values of matrix *m* into this matrix.
+		Resets this matrix to identity.<br/><br/>
+
+		1, 0, 0<br/>
+		0, 1, 0<br/>
+		0, 0, 1<br/>
 		</div>
 		</div>
 
 
-		<h3>[method:Matrix3 clone]()</h3>
+		<h3>[method:Matrix3 clone]() [page:Matrix3 this]</h3>
 		<div>
 		<div>
 		Creates a copy of this matrix.
 		Creates a copy of this matrix.
 		</div>
 		</div>
 
 
-		<h3>[method:Matrix3 identity]() [page:Matrix3 this]</h3>
+		<h3>[method:Array toArray]( [page:Array array], [page:Integer offset] ) [page:Matrix3 this]</h3>
 		<div>
 		<div>
-		Resets this matrix to identity.<br/><br/>
-
-		1, 0, 0<br/>
-		0, 1, 0<br/>
-		0, 0, 1<br/>
+		array -- [page:Array] optional array to store the vector <br />
+		offset -- [page:Integer] optional offset into the array
+		</div>
+		<div>
+		Writes the elements of this matrix to an array in column-major format.
 		</div>
 		</div>
 
 
 		<h2>Source</h2>
 		<h2>Source</h2>

+ 32 - 15
docs/api/math/Matrix4.html

@@ -67,6 +67,14 @@
 		Copies the values of matrix *m* into this matrix.
 		Copies the values of matrix *m* into this matrix.
 		</div>
 		</div>
 
 
+		<h3>[method:Matrix4 fromArray]( [page:Array array] ) [page:Matrix4 this]</h3>
+		<div>
+		array -- [page:Array] The array to read the elements from.
+		</div>
+		<div>
+		Sets the elements of this matrix based on an array in column-major format.
+		</div>
+
 		<h3>[method:Matrix4 copyPosition]( [page:Matrix4 m] ) [page:Matrix4 this]</h3>
 		<h3>[method:Matrix4 copyPosition]( [page:Matrix4 m] ) [page:Matrix4 this]</h3>
 		<div>
 		<div>
 		Copies the translation component of the supplied matrix *m* into this matrix translation component.
 		Copies the translation component of the supplied matrix *m* into this matrix translation component.
@@ -94,7 +102,12 @@
 
 
 		<h3>[method:Matrix4 multiply]( [page:Matrix4 m] ) [page:Matrix4 this]</h3>
 		<h3>[method:Matrix4 multiply]( [page:Matrix4 m] ) [page:Matrix4 this]</h3>
 		<div>
 		<div>
-		Multiplies this matrix by *m*.
+		Post-multiplies this matrix by *m*.
+		</div>
+
+		<h3>[method:Matrix4 premultiply]( [page:Matrix4 m] ) [page:Matrix4 this]</h3>
+		<div>
+		Pre-multiplies this matrix by *m*.
 		</div>
 		</div>
 
 
 		<h3>[method:Matrix4 multiplyMatrices]( [page:Matrix4 a], [page:Matrix4 b] ) [page:Matrix4 this]</h3>
 		<h3>[method:Matrix4 multiplyMatrices]( [page:Matrix4 a], [page:Matrix4 b] ) [page:Matrix4 this]</h3>
@@ -113,7 +126,7 @@
 		Multiplies every component of the matrix by a scalar value *s*.
 		Multiplies every component of the matrix by a scalar value *s*.
 		</div>
 		</div>
 
 
-		<h3>[method:Float determinant]()</h3>
+		<h3>[method:Float determinant]() [page:Matrix4 this]</h3>
 		<div>
 		<div>
 		Computes and returns the determinant of this matrix.<br />
 		Computes and returns the determinant of this matrix.<br />
 		Based on [link:http://www.euclideanspace.com/maths/algebra/matrix/functions/inverse/fourD/index.htm]
 		Based on [link:http://www.euclideanspace.com/maths/algebra/matrix/functions/inverse/fourD/index.htm]
@@ -124,11 +137,6 @@
 		Transposes this matrix.
 		Transposes this matrix.
 		</div>
 		</div>
 
 
-		<h3>[method:Array flattenToArrayOffset]( [page:Array flat], [page:Integer offset] )</h3>
-		<div>
-		Flattens this matrix into supplied *flat* array starting from *offset* position in the array.
-		</div>
-
 		<h3>[method:Matrix4 setPosition]( [page:Vector3 v] ) [page:Matrix4 this]</h3>
 		<h3>[method:Matrix4 setPosition]( [page:Vector3 v] ) [page:Matrix4 this]</h3>
 		<div>
 		<div>
 		Sets the position component for this matrix from vector *v*.
 		Sets the position component for this matrix from vector *v*.
@@ -164,7 +172,7 @@
 		Sets this matrix to the transformation composed of *translation*, *quaternion* and *scale*.
 		Sets this matrix to the transformation composed of *translation*, *quaternion* and *scale*.
 		</div>
 		</div>
 
 
-		<h3>[method:Array decompose]( [page:Vector3 translation], [page:Quaternion quaternion], [page:Vector3 scale] )</h3>
+		<h3>[method:Array decompose]( [page:Vector3 translation], [page:Quaternion quaternion], [page:Vector3 scale] ) [page:Matrix4 this]</h3>
 		<div>
 		<div>
 		Decomposes this matrix into the *translation*, *quaternion* and *scale* components.
 		Decomposes this matrix into the *translation*, *quaternion* and *scale* components.
 		</div>
 		</div>
@@ -228,12 +236,7 @@
 		Creates an orthographic projection matrix.
 		Creates an orthographic projection matrix.
 		</div>
 		</div>
 
 
-		<h3>[method:Matrix4 clone]()</h3>
-		<div>
-		Creates a copy of this matrix.
-		</div>
-
-		<h3>[method:Array applyToVector3Array]([page:Array a])</h3>
+		<h3>[method:Array applyToVector3Array]( [page:Array a] ) [page:Matrix4 this]</h3>
 		<div>
 		<div>
 		array -- An array in the form [vector1x, vector1y, vector1z, vector2x, vector2y, vector2z, ...]
 		array -- An array in the form [vector1x, vector1y, vector1z, vector2x, vector2y, vector2z, ...]
 		</div>
 		</div>
@@ -241,11 +244,25 @@
 		Multiplies (applies) this matrix to every vector3 in the array.
 		Multiplies (applies) this matrix to every vector3 in the array.
 		</div>
 		</div>
 
 
-		<h3>[method:Float getMaxScaleOnAxis]()</h3>
+		<h3>[method:Float getMaxScaleOnAxis]() [page:Matrix4 this]</h3>
 		<div>
 		<div>
 		Gets the maximum scale value of the 3 axes.
 		Gets the maximum scale value of the 3 axes.
 		</div>
 		</div>
 
 
+		<h3>[method:Matrix4 clone]() [page:Matrix4 this]</h3>
+		<div>
+		Creates a copy of this matrix.
+		</div>
+
+		<h3>[method:Array toArray]( [page:Array array], [page:Integer offset] ) [page:Matrix4 this]</h3>
+		<div>
+		array -- [page:Array] optional array to store the vector <br />
+		offset -- [page:Integer] optional offset into the array
+		</div>
+		<div>
+		Writes the elements of this matrix to an array in column-major format.
+		</div>
+
 		<h2>Source</h2>
 		<h2>Source</h2>
 
 
 		[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
 		[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]

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

@@ -61,7 +61,8 @@
 		optionalNormalMatrix -- (optional) pre-computed normal [Page:Matrix3] of the Matrix4 to apply
 		optionalNormalMatrix -- (optional) pre-computed normal [Page:Matrix3] of the Matrix4 to apply
 		</div>
 		</div>
 		<div>
 		<div>
-		Apply a Matrix4 to the plane. The second parameter is optional.
+		Apply a Matrix4 to the plane. The matrix must be an affine, homogeneous transform.
+		The second parameter is optional.
 
 
 		<code>
 		<code>
 		var optionalNormalMatrix = new THREE.Matrix3().getNormalMatrix( matrix )
 		var optionalNormalMatrix = new THREE.Matrix3().getNormalMatrix( matrix )

+ 60 - 45
docs/api/math/Quaternion.html

@@ -48,115 +48,94 @@
 
 
 		<h2>Methods</h2>
 		<h2>Methods</h2>
 
 
-		<h3>[method:Quaternion set]( [page:Float x], [page:Float y], [page:Float z], [page:Float w] )</h3>
+		<h3>[method:Quaternion set]( [page:Float x], [page:Float y], [page:Float z], [page:Float w] ) [page:Quaternion this]</h3>
 		<div>
 		<div>
 		Sets values of this quaternion.
 		Sets values of this quaternion.
 		</div>
 		</div>
 
 
-		<h3>[method:Quaternion copy]( [page:Quaternion q] )</h3>
+		<h3>[method:Quaternion copy]( [page:Quaternion q] ) [page:Quaternion this]</h3>
 		<div>
 		<div>
 		Copies values of *q* to this quaternion.
 		Copies values of *q* to this quaternion.
 		</div>
 		</div>
 
 
-		<h3>[method:Quaternion setFromEuler]( [page:Euler euler] )</h3>
+		<h3>[method:Quaternion fromArray]( [page:Array array], [page:Integer offset] ) [page:Quaternion this]</h3>
+		<div>
+		array -- Array of format (x, y, z, w) used to construct the quaternion.<br />
+		offset -- An optional offset into the array.
+		</div>
+		<div>
+		Sets this quaternion's component values from an array.
+		</div>
+
+		<h3>[method:Quaternion setFromEuler]( [page:Euler euler] ) [page:Quaternion this]</h3>
 		<div>
 		<div>
 		Sets this quaternion from rotation specified by Euler angle.
 		Sets this quaternion from rotation specified by Euler angle.
 		</div>
 		</div>
 
 
-		<h3>[method:Quaternion setFromAxisAngle]( [page:Vector3 axis], [page:Float angle] )</h3>
+		<h3>[method:Quaternion setFromAxisAngle]( [page:Vector3 axis], [page:Float angle] ) [page:Quaternion this]</h3>
 		<div>
 		<div>
 		Sets this quaternion from rotation specified by axis and angle.<br />
 		Sets this quaternion from rotation specified by axis and angle.<br />
 		Adapted from [link:http://www.euclideanspace.com/maths/geometry/rotations/conversions/angleToQuaternion/index.htm].<br />
 		Adapted from [link:http://www.euclideanspace.com/maths/geometry/rotations/conversions/angleToQuaternion/index.htm].<br />
 		*Axis* is asumed to be normalized, *angle* is in radians.
 		*Axis* is asumed to be normalized, *angle* is in radians.
 		</div>
 		</div>
 
 
-		<h3>[method:Quaternion setFromRotationMatrix]( [page:Matrix4 m] )</h3>
+		<h3>[method:Quaternion setFromRotationMatrix]( [page:Matrix4 m] ) [page:Quaternion this]</h3>
 		<div>
 		<div>
 		Sets this quaternion from rotation component of *m*.<br />
 		Sets this quaternion from rotation component of *m*.<br />
 		Adapted from [link:http://www.euclideanspace.com/maths/geometry/rotations/conversions/matrixToQuaternion/index.htm].
 		Adapted from [link:http://www.euclideanspace.com/maths/geometry/rotations/conversions/matrixToQuaternion/index.htm].
 		</div>
 		</div>
 
 
-		<h3>[method:Quaternion setFromUnitVectors]( [page:Vector3 vFrom], [page:Vector3 vTo] )</h3>
+		<h3>[method:Quaternion setFromUnitVectors]( [page:Vector3 vFrom], [page:Vector3 vTo] ) [page:Quaternion this]</h3>
 		<div>
 		<div>
 		Sets this quaternion to the rotation required to rotate direction vector *vFrom* to direction vector *vTo*.<br />
 		Sets this quaternion to the rotation required to rotate direction vector *vFrom* to direction vector *vTo*.<br />
 		Adapted from [link:http://lolengine.net/blog/2013/09/18/beautiful-maths-quaternion-from-vectors].<br />
 		Adapted from [link:http://lolengine.net/blog/2013/09/18/beautiful-maths-quaternion-from-vectors].<br />
 		*vFrom* and *vTo* are assumed to be normalized.
 		*vFrom* and *vTo* are assumed to be normalized.
 		</div>
 		</div>
 
 
-		<h3>[method:Quaternion inverse]()</h3>
+		<h3>[method:Quaternion inverse]() [page:Quaternion this]</h3>
 		<div>
 		<div>
 		Inverts this quaternion.
 		Inverts this quaternion.
 		</div>
 		</div>
 
 
-		<h3>[method:Float length]()</h3>
+		<h3>[method:Float length]() [page:Quaternion this]</h3>
 		<div>
 		<div>
 		Computes length of this quaternion.
 		Computes length of this quaternion.
 		</div>
 		</div>
 
 
-		<h3>[method:Quaternion normalize]()</h3>
+		<h3>[method:Quaternion normalize]() [page:Quaternion this]</h3>
 		<div>
 		<div>
 		Normalizes this quaternion.
 		Normalizes this quaternion.
 		</div>
 		</div>
 
 
-		<h3>[method:Quaternion multiply]( [page:Quaternion b] )</h3>
+		<h3>[method:Quaternion multiply]( [page:Quaternion b] ) [page:Quaternion this]</h3>
 		<div>
 		<div>
 		Multiplies this quaternion by *b*.
 		Multiplies this quaternion by *b*.
 		</div>
 		</div>
 
 
-		<h3>[method:Quaternion multiplyQuaternions]( [page:Quaternion a], [page:Quaternion b] )</h3>
+		<h3>[method:Quaternion multiplyQuaternions]( [page:Quaternion a], [page:Quaternion b] ) [page:Quaternion this]</h3>
 		<div>
 		<div>
 		Sets this quaternion to *a x b*<br />
 		Sets this quaternion to *a x b*<br />
 		Adapted from [link:http://www.euclideanspace.com/maths/algebra/realNormedAlgebra/quaternions/code/index.htm].
 		Adapted from [link:http://www.euclideanspace.com/maths/algebra/realNormedAlgebra/quaternions/code/index.htm].
 		</div>
 		</div>
 
 
-		<h3>[method:Quaternion multiplyVector3]( [page:Vector3 vector], [page:Vector3 dest] )</h3>
+		<h3>[method:Quaternion multiplyVector3]( [page:Vector3 vector], [page:Vector3 dest] ) [page:Quaternion this]</h3>
 		<div>
 		<div>
 		Rotates *vector* by this quaternion into *dest*.<br />
 		Rotates *vector* by this quaternion into *dest*.<br />
 		If *dest* is not specified, result goes to *vec*.
 		If *dest* is not specified, result goes to *vec*.
 		</div>
 		</div>
 
 
-		<h3>[method:Quaternion clone]()</h3>
-		<div>
-		Clones this quaternion.
-		</div>
-
-		<h3>[method:Array toArray]( [page:Array array] )</h3>
-		<div>
-		array -- Array to store the quaternion.
-		</div>
-		<div>
-		Returns the numerical elements of this quaternion in an array of format (x, y, z, w).
-		</div>
-
-		<h3>[method:Boolean equals]([page:Quaternion v])</h3>
-		<div>
-		v -- Quaternion that this quaternion will be compared to.
-		</div>
-		<div>
-		Compares each component of *v* to each component of this quaternion to determine if they
-		represent the same rotation.
-		</div>
-
-		<h3>[method:Float lengthSq]()</h3>
+		<h3>[method:Float lengthSq]() [page:Quaternion this]</h3>
 		<div>
 		<div>
 		Calculates the squared length of the quaternion.
 		Calculates the squared length of the quaternion.
 		</div>
 		</div>
 
 
-		<h3>[method:Quaternion fromArray]([page:Array array])</h3>
-		<div>
-		array -- Array of format (x, y, z, w) used to construct the quaternion.
-		</div>
-		<div>
-		Sets this quaternion's component values from an array.
-		</div>
-
-		<h3>[method:Quaternion conjugate]()</h3>
+		<h3>[method:Quaternion conjugate]() [page:Quaternion this]</h3>
 		<div>
 		<div>
 		Returns the rotational conjugate of this quaternion. The conjugate of a quaternion
 		Returns the rotational conjugate of this quaternion. The conjugate of a quaternion
 		represents the same rotation in the opposite direction about the rotational axis.
 		represents the same rotation in the opposite direction about the rotational axis.
 		</div>
 		</div>
 
 
-		<h3>[method:Quaternion slerp]([page:Quaternion quaternionB], [page:float t])</h3>
+		<h3>[method:Quaternion slerp]( [page:Quaternion quaternionB], [page:float t] ) [page:Quaternion this]</h3>
 		<div>
 		<div>
 		quaternionB -- The other quaternion rotation<br />
 		quaternionB -- The other quaternion rotation<br />
 		t -- Normalized 0 to 1 interpolation factor
 		t -- Normalized 0 to 1 interpolation factor
@@ -171,6 +150,28 @@
 		mesh.quaternion.slerp( endQuaternion, 0.01 );
 		mesh.quaternion.slerp( endQuaternion, 0.01 );
 		</code>
 		</code>
 
 
+		<h3>[method:Boolean equals]( [page:Quaternion v] ) [page:Quaternion this]</h3>
+		<div>
+		v -- Quaternion that this quaternion will be compared to.
+		</div>
+		<div>
+		Compares each component of *v* to each component of this quaternion to determine if they
+		represent the same rotation.
+		</div>
+
+		<h3>[method:Quaternion clone]() [page:Quaternion this]</h3>
+		<div>
+		Clones this quaternion.
+		</div>
+
+		<h3>[method:Array toArray]( [page:Array array], [page:Integer offset] ) [page:Quaternion this]</h3>
+		<div>
+		array -- An optional array to store the quaternion.<br/>
+		offset -- An optional offset into the output array.
+		</div>
+		<div>
+		Returns the numerical elements of this quaternion in an array of format (x, y, z, w).
+		</div>
 
 
 		<h2>Static Methods</h2>
 		<h2>Static Methods</h2>
 
 
@@ -196,6 +197,20 @@
 		THREE.Quaternion.slerp( startQuaternion, endQuaternion, mesh.quaternion, t );
 		THREE.Quaternion.slerp( startQuaternion, endQuaternion, mesh.quaternion, t );
 		</code>
 		</code>
 
 
+		<h3>[method:Quaternion slerpFlat]( [page:Array dst], [page:Integer dstOffset], [page:Array src0], [page:Integer srcOffset0], [page:Array src1], [page:Integer srcOffset1], [page:Float t] )</h3>
+		<div>
+		dst -- The output array.<br />
+		dstOffset -- An offset into the output array.<br />
+		src0 -- The source array of the starting quaternion.<br />
+		srcOffset0 -- An offset into the array *src0*.<br />
+		src1 -- The source array of the target quatnerion.<br />
+		srcOffset1 -- An offset into the array *src1*.<br />
+		t -- Interpolation factor 0 at start, 1 at end.
+		</div>
+		<div>
+		Like the static *slerp* method above, but operates directly on flat arrays of numbers.
+		</div>
+
 		<!-- Note: Do not add non-static methods to the bottom of this page. Put them above the <h2>Static Methods</h2> -->
 		<!-- Note: Do not add non-static methods to the bottom of this page. Put them above the <h2>Static Methods</h2> -->
 
 
 		<h2>Source</h2>
 		<h2>Source</h2>

+ 9 - 0
docs/api/math/Triangle.html

@@ -131,6 +131,15 @@
 		Checks to see if the passed vector is within the triangle.
 		Checks to see if the passed vector is within the triangle.
 		</div>
 		</div>
 
 
+		<h3>[method:Vector3 closestPointToPoint]([page:Vector3 point], [page:Vector3 optionalTarget])</h3>
+		<div>
+		point -- [page:Vector3] <br />
+		optionalTarget -- Optional [page:Vector3] target to set the result.
+		</div>
+		<div>
+		Returns the closest point on the triangle.
+		</div>
+
 		<h3>[method:Triangle copy]([page:Triangle triangle])</h3>
 		<h3>[method:Triangle copy]([page:Triangle triangle])</h3>
 		<div>
 		<div>
 		triangle -- [page:Triangle]
 		triangle -- [page:Triangle]

+ 62 - 51
docs/api/math/Vector2.html

@@ -48,11 +48,36 @@
 		Sets value of this vector.
 		Sets value of this vector.
 		</div>
 		</div>
 
 
+		<h3>[method:Vector2 setX]( [page:Float x] ) [page:Vector2 this]</h3>
+		<div>
+		x -- [page:Float]
+		</div>
+		<div>
+		replace this vector's x value with x.
+		</div>
+
+		<h3>[method:Vector2 setY]( [page:Float y] ) [page:Vector2 this]</h3>
+		<div>
+		y -- [page:Float]
+		</div>
+		<div>
+		replace this vector's y value with y.
+		</div>
+
 		<h3>[method:Vector2 copy]( [page:Vector2 v] ) [page:Vector2 this]</h3>
 		<h3>[method:Vector2 copy]( [page:Vector2 v] ) [page:Vector2 this]</h3>
 		<div>
 		<div>
 		Copies value of *v* to this vector.
 		Copies value of *v* to this vector.
 		</div>
 		</div>
 
 
+		<h3>[method:Vector2 fromArray]( [page:Array array], [page:Integer offset] ) [page:Vector2 this]</h3>
+		<div>
+		array -- The source array of length 2 <br />
+		offset -- An optional offset into the array.
+		</div>
+		<div>
+		Sets this vector's x value to be array[0] and y value to be array[1].
+		</div>
+
 		<h3>[method:Vector2 add]( [page:Vector2 v] ) [page:Vector2 this]</h3>
 		<h3>[method:Vector2 add]( [page:Vector2 v] ) [page:Vector2 this]</h3>
 		<div>
 		<div>
 		Adds *v* to this vector.
 		Adds *v* to this vector.
@@ -94,22 +119,22 @@
 		Inverts this vector.
 		Inverts this vector.
 		</div>
 		</div>
 
 
-		<h3>[method:Float dot]( [page:Vector2 v] )</h3>
+		<h3>[method:Float dot]( [page:Vector2 v] ) [page:Vector2 this]</h3>
 		<div>
 		<div>
 		Computes dot product of this vector and *v*.
 		Computes dot product of this vector and *v*.
 		</div>
 		</div>
 
 
-		<h3>[method:Float lengthSq]()</h3>
+		<h3>[method:Float lengthSq]() [page:Vector2 this]</h3>
 		<div>
 		<div>
 		Computes squared length of this vector.
 		Computes squared length of this vector.
 		</div>
 		</div>
 
 
-		<h3>[method:Float length]()</h3>
+		<h3>[method:Float length]() [page:Vector2 this]</h3>
 		<div>
 		<div>
 		Computes length of this vector.
 		Computes length of this vector.
 		</div>
 		</div>
 
 
-		<h3>[method:Float lengthManhattan]()</h3>
+		<h3>[method:Float lengthManhattan]() [page:Vector2 this]</h3>
 		<div>
 		<div>
 		Computes Manhattan length of this vector.<br />
 		Computes Manhattan length of this vector.<br />
 		[link:http://en.wikipedia.org/wiki/Taxicab_geometry]
 		[link:http://en.wikipedia.org/wiki/Taxicab_geometry]
@@ -120,7 +145,7 @@
 		Normalizes this vector.
 		Normalizes this vector.
 		</div>
 		</div>
 
 
-		<h3>[method:Float angle]()</h3>
+		<h3>[method:Float angle]() [page:Vector2 this]</h3>
 		<div>
 		<div>
 		Computes the angle in radians of this vector with respect to the positive x-axis.
 		Computes the angle in radians of this vector with respect to the positive x-axis.
 		</div>
 		</div>
@@ -140,18 +165,7 @@
 		Normalizes this vector and multiplies it by *l*.
 		Normalizes this vector and multiplies it by *l*.
 		</div>
 		</div>
 
 
-		<h3>[method:Boolean equals]( [page:Vector2 v] )</h3>
-		<div>
-		Checks for strict equality of this vector and *v*.
-		</div>
-
-		<h3>[method:Vector2 clone]()</h3>
-		<div>
-		Clones this vector.
-		</div>
-
-
-		<h3>[method:Vector2 clamp]([page:Vector2 min], [page:Vector2 max]) [page:Vector2 this]</h3>
+		<h3>[method:Vector2 clamp]( [page:Vector2 min], [page:Vector2 max] ) [page:Vector2 this]</h3>
 		<div>
 		<div>
 		min -- [page:Vector2] containing the min x and y values in the desired range <br />
 		min -- [page:Vector2] containing the min x and y values in the desired range <br />
 		max -- [page:Vector2] containing the max x and y values in the desired range
 		max -- [page:Vector2] containing the max x and y values in the desired range
@@ -161,7 +175,7 @@
 		If this vector's x or y value is less than the min vector's x or y value, it is replaced by the corresponding value.
 		If this vector's x or y value is less than the min vector's x or y value, it is replaced by the corresponding value.
 		</div>
 		</div>
 
 
-		<h3>[method:Vector2 clampScalar]([page:Float min], [page:Float max]) [page:Vector2 this]</h3>
+		<h3>[method:Vector2 clampScalar]( [page:Float min], [page:Float max] ) [page:Vector2 this]</h3>
 		<div>
 		<div>
 		min -- [page:Float] the minimum value the components will be clamped to <br />
 		min -- [page:Float] the minimum value the components will be clamped to <br />
 		max -- [page:Float] the maximum value the components will be clamped to
 		max -- [page:Float] the maximum value the components will be clamped to
@@ -171,27 +185,37 @@
 		If this vector's x or y values are less than the min value, they are replaced by the min value.
 		If this vector's x or y values are less than the min value, they are replaced by the min value.
 		</div>
 		</div>
 
 
-		<h3>[method:Vector2 floor]()</h3>
+		<h3>[method:Vector2 clampLength]( [page:Float min], [page:Float max] ) [page:Vector2 this]</h3>
+		<div>
+		min -- [page:Float] the minimum value the length will be clamped to <br />
+		max -- [page:Float] the maximum value the length will be clamped to
+		</div>
+		<div>
+		If this vector's length is greater than the max value, it is replaced by the max value. <br /><br />
+		If this vector's length is less than the min value, it is replaced by the min value.
+		</div>
+
+		<h3>[method:Vector2 floor]() [page:Vector2 this]</h3>
 		<div>
 		<div>
 		The components of the vector are rounded downwards (towards negative infinity) to an integer value.
 		The components of the vector are rounded downwards (towards negative infinity) to an integer value.
 		</div>
 		</div>
 
 
-		<h3>[method:Vector2 ceil]()</h3>
+		<h3>[method:Vector2 ceil]() [page:Vector2 this]</h3>
 		<div>
 		<div>
 		The components of the vector are rounded upwards (towards positive infinity) to an integer value.
 		The components of the vector are rounded upwards (towards positive infinity) to an integer value.
 		</div>
 		</div>
 
 
-		<h3>[method:Vector2 round]()</h3>
+		<h3>[method:Vector2 round]() [page:Vector2 this]</h3>
 		<div>
 		<div>
 		The components of the vector are rounded towards the nearest integer value.
 		The components of the vector are rounded towards the nearest integer value.
 		</div>
 		</div>
 
 
-		<h3>[method:Vector2 roundToZero]()</h3>
+		<h3>[method:Vector2 roundToZero]() [page:Vector2 this]</h3>
 		<div>
 		<div>
 		The components of the vector are rounded towards zero (up if negative, down if positive) to an integer value.
 		The components of the vector are rounded towards zero (up if negative, down if positive) to an integer value.
 		</div>
 		</div>
 
 
-		<h3>[method:Vector2 lerp]([page:Vector2 v], [page:Float alpha]) [page:Vector2 this]</h3>
+		<h3>[method:Vector2 lerp]( [page:Vector2 v], [page:Float alpha] ) [page:Vector2 this]</h3>
 		<div>
 		<div>
 		v -- [page:Vector2] <br />
 		v -- [page:Vector2] <br />
 		alpha -- [page:Float] between 0 and 1;
 		alpha -- [page:Float] between 0 and 1;
@@ -200,7 +224,7 @@
 		Linear interpolation between this vector and v, where alpha is the percent along the line.
 		Linear interpolation between this vector and v, where alpha is the percent along the line.
 		</div>
 		</div>
 
 
-		<h3>[method:Vector2 lerpVectors]([page:Vector2 v1], [page:Vector2 v2], [page:Float alpha]) [page:Vector2 this]</h3>
+		<h3>[method:Vector2 lerpVectors]( [page:Vector2 v1], [page:Vector2 v2], [page:Float alpha] ) [page:Vector2 this]</h3>
 		<div>
 		<div>
 		v1 -- [page:Vector2] <br />
 		v1 -- [page:Vector2] <br />
 		v2 -- [page:Vector2] <br />
 		v2 -- [page:Vector2] <br />
@@ -210,7 +234,7 @@
 		Sets this vector to be the vector linearly interpolated between *v1* and *v2* with *alpha* factor.
 		Sets this vector to be the vector linearly interpolated between *v1* and *v2* with *alpha* factor.
 		</div>
 		</div>
 
 
-		<h3>[method:undefined setComponent]([page:Integer index], [page:Float value])</h3>
+		<h3>[method:undefined setComponent]( [page:Integer index], [page:Float value] ) [page:Vector2 this]</h3>
 		<div>
 		<div>
 		index -- 0 or 1 <br />
 		index -- 0 or 1 <br />
 		value -- [page:Float]
 		value -- [page:Float]
@@ -220,7 +244,7 @@
 		if index equals 1 method replaces this.y with value.
 		if index equals 1 method replaces this.y with value.
 		</div>
 		</div>
 
 
-		<h3>[method:Vector2 addScalar]([page:Float s]) [page:Vector2 this]</h3>
+		<h3>[method:Vector2 addScalar]( [page:Float s] ) [page:Vector2 this]</h3>
 		<div>
 		<div>
 		s -- [page:Float]
 		s -- [page:Float]
 		</div>
 		</div>
@@ -228,7 +252,7 @@
 		Add the scalar value s to this vector's x and y values.
 		Add the scalar value s to this vector's x and y values.
 		</div>
 		</div>
 
 
-		<h3>[method:Float getComponent]([page:Integer index])</h3>
+		<h3>[method:Float getComponent]( [page:Integer index] ) [page:Vector2 this]</h3>
 		<div>
 		<div>
 		index -- 0 or 1
 		index -- 0 or 1
 		</div>
 		</div>
@@ -237,23 +261,7 @@
 		if index equals 1 returns the y value.
 		if index equals 1 returns the y value.
 		</div>
 		</div>
 
 
-		<h3>[method:Vector2 fromArray]([page:Array array]) [page:Vector2 this]</h3>
-		<div>
-		array -- [page:Array] of length 2
-		</div>
-		<div>
-		Sets this vector's x value to be array[0] and y value to be array[1].
-		</div>
-
-		<h3>[method:Array toArray]( [page:Array array] )</h3>
-		<div>
-		array -- Optional array to store the vector.
-		</div>
-		<div>
-		Returns an array [x, y].
-		</div>
-
-		<h3>[method:Vector2 min]([page:Vector2 v]) [page:Vector2 this]</h3>
+		<h3>[method:Vector2 min]( [page:Vector2 v] ) [page:Vector2 this]</h3>
 		<div>
 		<div>
 		v -- [page:Vector2]
 		v -- [page:Vector2]
 		</div>
 		</div>
@@ -261,7 +269,7 @@
 		If this vector's x or y value is greater than v's x or y value, replace that value with the corresponding min value.
 		If this vector's x or y value is greater than v's x or y value, replace that value with the corresponding min value.
 		</div>
 		</div>
 
 
-		<h3>[method:Vector2 max]([page:Vector2 v]) [page:Vector2 this]</h3>
+		<h3>[method:Vector2 max]( [page:Vector2 v] ) [page:Vector2 this]</h3>
 		<div>
 		<div>
 		v -- [page:Vector2]
 		v -- [page:Vector2]
 		</div>
 		</div>
@@ -269,20 +277,23 @@
 		If this vector's x or y value is less than v's x or y value, replace that value with the corresponding max value.
 		If this vector's x or y value is less than v's x or y value, replace that value with the corresponding max value.
 		</div>
 		</div>
 
 
-		<h3>[method:Vector2 setX]([page:Float x]) [page:Vector2 this]</h3>
+		<h3>[method:Boolean equals]( [page:Vector2 v] ) [page:Vector2 this]</h3>
 		<div>
 		<div>
-		x -- [page:Float]
+		Checks for strict equality of this vector and *v*.
 		</div>
 		</div>
+
+		<h3>[method:Vector2 clone]() [page:Vector2 this]</h3>
 		<div>
 		<div>
-		replace this vector's x value with x.
+		Clones this vector.
 		</div>
 		</div>
 
 
-		<h3>[method:Vector2 setY]([page:Float y]) [page:Vector2 this]</h3>
+		<h3>[method:Array toArray]( [page:Array array], [page:Integer offset] ) [page:Vector2 this]</h3>
 		<div>
 		<div>
-		y -- [page:Float]
+		array -- An optional array to store the vector to. <br />
+		offset -- An optional offset into the array.
 		</div>
 		</div>
 		<div>
 		<div>
-		replace this vector's y value with y.
+		Returns an array [x, y].
 		</div>
 		</div>
 
 
 		<h2>Source</h2>
 		<h2>Source</h2>

+ 77 - 66
docs/api/math/Vector3.html

@@ -73,6 +73,15 @@
 		Copies value of *v* to this vector.
 		Copies value of *v* to this vector.
 		</div>
 		</div>
 
 
+		<h3>[method:Vector3 fromArray]( [page:Array array], [page:Integer offset] ) [page:Vector3 this]</h3>
+		<div>
+		array -- The source array in the form [x, y, z].<br />
+		offset -- An optional offset into the array.
+		</div>
+		<div>
+		Sets the vector's components based on an array formatted like [x, y, z]
+		</div>
+
 		<h3>[method:Vector3 add]( [page:Vector3 v] ) [page:Vector3 this]</h3>
 		<h3>[method:Vector3 add]( [page:Vector3 v] ) [page:Vector3 this]</h3>
 		<div>
 		<div>
 		Adds *v* to this vector.
 		Adds *v* to this vector.
@@ -114,22 +123,22 @@
 		Inverts this vector.
 		Inverts this vector.
 		</div>
 		</div>
 
 
-		<h3>[method:Float dot]( [page:Vector3 v] )</h3>
+		<h3>[method:Float dot]( [page:Vector3 v] ) [page:Vector3 this]</h3>
 		<div>
 		<div>
 		Computes dot product of this vector and *v*.
 		Computes dot product of this vector and *v*.
 		</div>
 		</div>
 
 
-		<h3>[method:Float lengthSq]()</h3>
+		<h3>[method:Float lengthSq]() [page:Vector3 this]</h3>
 		<div>
 		<div>
 		Computes squared length of this vector.
 		Computes squared length of this vector.
 		</div>
 		</div>
 
 
-		<h3>[method:Float length]()</h3>
+		<h3>[method:Float length]() [page:Vector3 this]</h3>
 		<div>
 		<div>
 		Computes length of this vector.
 		Computes length of this vector.
 		</div>
 		</div>
 
 
-		<h3>[method:Float lengthManhattan]()</h3>
+		<h3>[method:Float lengthManhattan]() [page:Vector3 this]</h3>
 		<div>
 		<div>
 		Computes Manhattan length of this vector.<br />
 		Computes Manhattan length of this vector.<br />
 		[link:http://en.wikipedia.org/wiki/Taxicab_geometry]
 		[link:http://en.wikipedia.org/wiki/Taxicab_geometry]
@@ -140,12 +149,12 @@
 		Normalizes this vector. Transforms this Vector into a Unit vector by dividing the vector by it's length.
 		Normalizes this vector. Transforms this Vector into a Unit vector by dividing the vector by it's length.
 		</div>
 		</div>
 
 
-		<h3>[method:Float distanceTo]( [page:Vector3 v] )</h3>
+		<h3>[method:Float distanceTo]( [page:Vector3 v] ) [page:Vector3 this]</h3>
 		<div>
 		<div>
 		Computes distance of this vector to *v*.
 		Computes distance of this vector to *v*.
 		</div>
 		</div>
 
 
-		<h3>[method:Float distanceToSquared]( [page:Vector3 v] )</h3>
+		<h3>[method:Float distanceToSquared]( [page:Vector3 v] ) [page:Vector3 this]</h3>
 		<div>
 		<div>
 		Computes squared distance of this vector to *v*.
 		Computes squared distance of this vector to *v*.
 		</div>
 		</div>
@@ -175,18 +184,7 @@
 		Sets this vector extracting scale from matrix transform.
 		Sets this vector extracting scale from matrix transform.
 		</div>
 		</div>
 
 
-		<h3>[method:Boolean equals]( [page:Vector3 v] )</h3>
-		<div>
-		Checks for strict equality of this vector and *v*.
-		</div>
-
-		<h3>[method:Vector3 clone]()</h3>
-		<div>
-		Clones this vector.
-		</div>
-
-
-		<h3>[method:Vector3 clamp]([page:Vector3 min], [page:Vector3 max]) [page:Vector3 this]</h3>
+		<h3>[method:Vector3 clamp]( [page:Vector3 min], [page:Vector3 max] ) [page:Vector3 this]</h3>
 		<div>
 		<div>
 		min -- [page:Vector3] <br />
 		min -- [page:Vector3] <br />
 		max -- [page:Vector3]
 		max -- [page:Vector3]
@@ -196,7 +194,7 @@
 		If this vector's x, y or z value is less than the min vector's x, y or z value, it is replaced by the corresponding value.
 		If this vector's x, y or z value is less than the min vector's x, y or z value, it is replaced by the corresponding value.
 		</div>
 		</div>
 
 
-		<h3>[method:Vector3 clampScalar]([page:Float min], [page:Float max]) [page:Vector3 this]</h3>
+		<h3>[method:Vector3 clampScalar]( [page:Float min], [page:Float max] ) [page:Vector3 this]</h3>
 		<div>
 		<div>
 		min -- [page:Float] the minimum value the components will be clamped to <br />
 		min -- [page:Float] the minimum value the components will be clamped to <br />
 		max -- [page:Float] the maximum value the components will be clamped to
 		max -- [page:Float] the maximum value the components will be clamped to
@@ -206,27 +204,37 @@
 		If this vector's x, y or z values are less than the min value, they are replaced by the min value.
 		If this vector's x, y or z values are less than the min value, they are replaced by the min value.
 		</div>
 		</div>
 
 
-		<h3>[method:Vector3 floor]()</h3>
+		<h3>[method:Vector3 clampLength]( [page:Float min], [page:Float max] ) [page:Vector3 this]</h3>
+		<div>
+		min -- [page:Float] the minimum value the length will be clamped to <br />
+		max -- [page:Float] the maximum value the length will be clamped to
+		</div>
+		<div>
+		If this vector's length is greater than the max value, it is replaced by the max value. <br /><br />
+		If this vector's length is less than the min value, it is replaced by the min value.
+		</div>
+
+		<h3>[method:Vector3 floor]() [page:Vector3 this]</h3>
 		<div>
 		<div>
 		The components of the vector are rounded downwards (towards negative infinity) to an integer value.
 		The components of the vector are rounded downwards (towards negative infinity) to an integer value.
 		</div>
 		</div>
 
 
-		<h3>[method:Vector3 ceil]()</h3>
+		<h3>[method:Vector3 ceil]() [page:Vector3 this]</h3>
 		<div>
 		<div>
 		The components of the vector are rounded upwards (towards positive infinity) to an integer value.
 		The components of the vector are rounded upwards (towards positive infinity) to an integer value.
 		</div>
 		</div>
 
 
-		<h3>[method:Vector3 round]()</h3>
+		<h3>[method:Vector3 round]() [page:Vector3 this]</h3>
 		<div>
 		<div>
 		The components of the vector are rounded towards the nearest integer value.
 		The components of the vector are rounded towards the nearest integer value.
 		</div>
 		</div>
 
 
-		<h3>[method:Vector3 roundToZero]()</h3>
+		<h3>[method:Vector3 roundToZero]() [page:Vector3 this]</h3>
 		<div>
 		<div>
 		The components of the vector are rounded towards zero (up if negative, down if positive) to an integer value.
 		The components of the vector are rounded towards zero (up if negative, down if positive) to an integer value.
 		</div>
 		</div>
 
 
-		<h3>[method:Vector3 applyMatrix3]([page:Matrix3 m]) [page:Vector3 this]</h3>
+		<h3>[method:Vector3 applyMatrix3]( [page:Matrix3 m] ) [page:Vector3 this]</h3>
 		<div>
 		<div>
 		m -- [page:Matrix3]
 		m -- [page:Matrix3]
 		</div>
 		</div>
@@ -234,7 +242,7 @@
 		Multiplies this vector times a 3 x 3 matrix.
 		Multiplies this vector times a 3 x 3 matrix.
 		</div>
 		</div>
 
 
-		<h3>[method:Vector3 applyMatrix4]([page:Matrix3 m]) [page:Vector3 this]</h3>
+		<h3>[method:Vector3 applyMatrix4]( [page:Matrix3 m] ) [page:Vector3 this]</h3>
 		<div>
 		<div>
 		m -- [page:Matrix4]
 		m -- [page:Matrix4]
 		</div>
 		</div>
@@ -242,7 +250,7 @@
 		Multiplies this vector by 4 x 3 subset of a Matrix4.
 		Multiplies this vector by 4 x 3 subset of a Matrix4.
 		</div>
 		</div>
 
 
-		<h3>[method:Vector3 projectOnPlane]([page:Vector3 planeNormal]) [page:Vector3 this]</h3>
+		<h3>[method:Vector3 projectOnPlane]( [page:Vector3 planeNormal] ) [page:Vector3 this]</h3>
 		<div>
 		<div>
 		planeNormal -- [page:Vector3 planeNormal] A vector representing a plane normal.
 		planeNormal -- [page:Vector3 planeNormal] A vector representing a plane normal.
 		</div>
 		</div>
@@ -250,7 +258,7 @@
 		Projects this vector onto a plane by subtracting this vector projected onto the plane's normal from this vector.
 		Projects this vector onto a plane by subtracting this vector projected onto the plane's normal from this vector.
 		</div>
 		</div>
 
 
-		<h3>[method:Vector3 projectOnVector]([page:Vector3]) [page:Vector3 this]</h3>
+		<h3>[method:Vector3 projectOnVector]( [page:Vector3] ) [page:Vector3 this]</h3>
 		<div>
 		<div>
 		vector -- [page:Vector3]
 		vector -- [page:Vector3]
 		</div>
 		</div>
@@ -258,7 +266,7 @@
 		Projects this vector onto another vector.
 		Projects this vector onto another vector.
 		</div>
 		</div>
 
 
-		<h3>[method:Vector3 addScalar]([page:Float]) [page:Vector3 this]</h3>
+		<h3>[method:Vector3 addScalar]( [page:Float] ) [page:Vector3 this]</h3>
 		<div>
 		<div>
 		s -- [page:Float]
 		s -- [page:Float]
 		</div>
 		</div>
@@ -266,7 +274,7 @@
 		Adds a s to this vector.
 		Adds a s to this vector.
 		</div>
 		</div>
 
 
-		<h3>[method:Vector3 divide]([page:Vector3 v]) [page:Vector3 this]</h3>
+		<h3>[method:Vector3 divide]( [page:Vector3 v] ) [page:Vector3 this]</h3>
 		<div>
 		<div>
 		v -- [page:Vector3]
 		v -- [page:Vector3]
 		</div>
 		</div>
@@ -274,7 +282,7 @@
 		Divides this vector by vector v.
 		Divides this vector by vector v.
 		</div>
 		</div>
 
 
-		<h3>[method:Vector3 min]([page:Vector3 v]) [page:Vector3 this]</h3>
+		<h3>[method:Vector3 min]( [page:Vector3 v] ) [page:Vector3 this]</h3>
 		<div>
 		<div>
 		v -- [page:Vector3]
 		v -- [page:Vector3]
 		</div>
 		</div>
@@ -282,7 +290,7 @@
 		If this vector's x, y, or z value is greater than vector v's x, y, or z value, that value is replaced by the corresponding vector v value.
 		If this vector's x, y, or z value is greater than vector v's x, y, or z value, that value is replaced by the corresponding vector v value.
 		</div>
 		</div>
 
 
-		<h3>[method:Vector3 max]([page:Vector3 v]) [page:Vector3 this]</h3>
+		<h3>[method:Vector3 max]( [page:Vector3 v] ) [page:Vector3 this]</h3>
 		<div>
 		<div>
 		v -- [page:Vector3]
 		v -- [page:Vector3]
 		</div>
 		</div>
@@ -290,7 +298,7 @@
 		If this vector's x, y, or z value is less than vector v's x, y, or z value, that value is replaced by the corresponding vector v value.
 		If this vector's x, y, or z value is less than vector v's x, y, or z value, that value is replaced by the corresponding vector v value.
 		</div>
 		</div>
 
 
-		<h3>[method:Vector3 setComponent]([page:Integer index], [page:Float value]) [page:Vector3 this]</h3>
+		<h3>[method:Vector3 setComponent]( [page:Integer index], [page:Float value] ) [page:Vector3 this]</h3>
 		<div>
 		<div>
 		index -- 0, 1, or 2 <br />
 		index -- 0, 1, or 2 <br />
 		value -- [page:Float]
 		value -- [page:Float]
@@ -301,7 +309,7 @@
 		If index equals 2 the method sets this vector's z value to value
 		If index equals 2 the method sets this vector's z value to value
 		</div>
 		</div>
 
 
-		<h3>[method:Vector3 transformDirection]([page:Matrix4 m]) [page:Vector3 this]</h3>
+		<h3>[method:Vector3 transformDirection]( [page:Matrix4 m] ) [page:Vector3 this]</h3>
 		<div>
 		<div>
 		m -- [page:Matrix4]
 		m -- [page:Matrix4]
 		</div>
 		</div>
@@ -309,7 +317,7 @@
 		Transforms the direction of this vector by a matrix (a 3 x 3 subset of a Matrix4) and then normalizes the result.
 		Transforms the direction of this vector by a matrix (a 3 x 3 subset of a Matrix4) and then normalizes the result.
 		</div>
 		</div>
 
 
-		<h3>[method:Vector3 multiplyVectors]([page:Vector3 a], [page:Vector3 b]) [page:Vector3 this]</h3>
+		<h3>[method:Vector3 multiplyVectors]( [page:Vector3 a], [page:Vector3 b] ) [page:Vector3 this]</h3>
 		<div>
 		<div>
 		a -- [page:Vector3] <br />
 		a -- [page:Vector3] <br />
 		b -- [page:Vector3]
 		b -- [page:Vector3]
@@ -318,7 +326,7 @@
 		Sets this vector equal to the result of multiplying vector a by vector b.
 		Sets this vector equal to the result of multiplying vector a by vector b.
 		</div>
 		</div>
 
 
-		<h3>[method:Float getComponent]([page:Integer index])</h3>
+		<h3>[method:Float getComponent]( [page:Integer index] ) [page:Vector3 this]</h3>
 		<div>
 		<div>
 		index -- [page:Integer] 0, 1, or 2
 		index -- [page:Integer] 0, 1, or 2
 		</div>
 		</div>
@@ -331,7 +339,7 @@
 		Index 2: z <br />
 		Index 2: z <br />
 		</div>
 		</div>
 
 
-		<h3>[method:Vector3 applyAxisAngle]([page:Vector3 axis], [page:Float angle]) [page:Vector3 this]</h3>
+		<h3>[method:Vector3 applyAxisAngle]( [page:Vector3 axis], [page:Float angle] ) [page:Vector3 this]</h3>
 		<div>
 		<div>
 		axis -- A normalized [page:Vector3] <br />
 		axis -- A normalized [page:Vector3] <br />
 		angle -- An angle in radians
 		angle -- An angle in radians
@@ -340,7 +348,7 @@
 		Applies a rotation specified by an axis and an angle to this vector.
 		Applies a rotation specified by an axis and an angle to this vector.
 		</div>
 		</div>
 
 
-		<h3>[method:Vector3 lerp]([page:Vector3 v], [page:Float alpha]) [page:Vector3 this]</h3>
+		<h3>[method:Vector3 lerp]( [page:Vector3 v], [page:Float alpha] ) [page:Vector3 this]</h3>
 		<div>
 		<div>
 		v -- [page:Vector3] <br />
 		v -- [page:Vector3] <br />
 		alpha -- [page:Float] between 0 and 1.
 		alpha -- [page:Float] between 0 and 1.
@@ -349,7 +357,7 @@
 		Linear Interpolation between this vector and vector v, where alpha is the percent along the line.
 		Linear Interpolation between this vector and vector v, where alpha is the percent along the line.
 		</div>
 		</div>
 
 
-		<h3>[method:Vector3 lerpVectors]([page:Vector3 v1], [page:Vector3 v2], [page:Float alpha]) [page:Vector3 this]</h3>
+		<h3>[method:Vector3 lerpVectors]( [page:Vector3 v1], [page:Vector3 v2], [page:Float alpha] ) [page:Vector3 this]</h3>
 		<div>
 		<div>
 		v1 -- [page:Vector3] <br />
 		v1 -- [page:Vector3] <br />
 		v2 -- [page:Vector3] <br />
 		v2 -- [page:Vector3] <br />
@@ -359,7 +367,7 @@
 		Sets this vector to be the vector linearly interpolated between *v1* and *v2* with *alpha* factor.
 		Sets this vector to be the vector linearly interpolated between *v1* and *v2* with *alpha* factor.
 		</div>
 		</div>
 
 
-		<h3>[method:Float angleTo]([page:Vector3 v])</h3>
+		<h3>[method:Float angleTo]( [page:Vector3 v] ) [page:Vector3 this]</h3>
 		<div>
 		<div>
 		v -- [page:Vector3]
 		v -- [page:Vector3]
 		</div>
 		</div>
@@ -367,7 +375,7 @@
 		Returns the angle between this vector and vector v in radians.
 		Returns the angle between this vector and vector v in radians.
 		</div>
 		</div>
 
 
-		<h3>[method:Vector3 setFromMatrixColumn]([page:Integer index], [page:Matrix4 matrix]) [page:Vector3 this]</h3>
+		<h3>[method:Vector3 setFromMatrixColumn]( [page:Integer index], [page:Matrix4 matrix] ) [page:Vector3 this]</h3>
 		<div>
 		<div>
 		index -- 0, 1, 2, or 3 <br />
 		index -- 0, 1, 2, or 3 <br />
 		matrix -- [page:Matrix4]
 		matrix -- [page:Matrix4]
@@ -376,7 +384,7 @@
 		Sets this vector's x, y, and z equal to the column of the matrix specified by the index.
 		Sets this vector's x, y, and z equal to the column of the matrix specified by the index.
 		</div>
 		</div>
 
 
-		<h3>[method:Vector3 reflect]([page:Vector3 normal]) [page:Vector3 this]</h3>
+		<h3>[method:Vector3 reflect]( [page:Vector3 normal] ) [page:Vector3 this]</h3>
 		<div>
 		<div>
 		normal -- [page:Vector3] the normal to the reflecting plane
 		normal -- [page:Vector3] the normal to the reflecting plane
 		</div>
 		</div>
@@ -384,15 +392,7 @@
 		Reflect incident vector off of plane orthogonal to normal. normal is assumed to have unit length.
 		Reflect incident vector off of plane orthogonal to normal. normal is assumed to have unit length.
 		</div>
 		</div>
 
 
-		<h3>[method:Vector3 fromArray]([page:Array array]) [page:Vector3 this]</h3>
-		<div>
-		array -- [page:Array] [x, y, z]
-		</div>
-		<div>
-		Sets the vector's components based on an array formatted like [x, y, z]
-		</div>
-
-		<h3>[method:Vector3 multiply]([page:Vector3 v]) [page:Vector3 this]</h3>
+		<h3>[method:Vector3 multiply]( [page:Vector3 v] ) [page:Vector3 this]</h3>
 		<div>
 		<div>
 		v -- [page:Vector3] <br />
 		v -- [page:Vector3] <br />
 		</div>
 		</div>
@@ -400,7 +400,7 @@
 		Multipies this vector by vector v.
 		Multipies this vector by vector v.
 		</div>
 		</div>
 
 
-		<h3>[method:Vector3 applyProjection]([page:Matrix4 m]) [page:Vector3 this]</h3>
+		<h3>[method:Vector3 applyProjection]( [page:Matrix4 m] ) [page:Vector3 this]</h3>
 		<div>
 		<div>
 		m -- [page:Matrix4] projection matrix.
 		m -- [page:Matrix4] projection matrix.
 		</div>
 		</div>
@@ -408,18 +408,7 @@
 		Multiplies this vector and m, and divides by perspective.
 		Multiplies this vector and m, and divides by perspective.
 		</div>
 		</div>
 
 
-		<h3>[method:Array toArray]( [page:Array array] )</h3>
-		<div>
-		array -- Optional array to store the vector.
-		</div>
-		<div>
-		Assigns this vector's x value to array[0]. <br />
-		Assigns this vector's y value to array[1]. <br />
-		Assigns this vector's z value to array[2]. <br />
-		Returns the created array.
-		</div>
-
-		<h3>[method:Vector3 applyEuler]([page:Euler euler]) [page:Vector3 this]</h3>
+		<h3>[method:Vector3 applyEuler]( [page:Euler euler] ) [page:Vector3 this]</h3>
 		<div>
 		<div>
 		euler -- [page:Euler]
 		euler -- [page:Euler]
 		</div>
 		</div>
@@ -427,7 +416,7 @@
 		Applies euler transform to this vector by converting the [page:Euler] obect to a [page:Quaternion] and applying.
 		Applies euler transform to this vector by converting the [page:Euler] obect to a [page:Quaternion] and applying.
 		</div>
 		</div>
 
 
-		<h3>[method:Vector3 applyQuaternion]([page:Quaternion quaternion]) [page:Vector3 this]</h3>
+		<h3>[method:Vector3 applyQuaternion]( [page:Quaternion quaternion] ) [page:Vector3 this]</h3>
 		<div>
 		<div>
 		quaternion -- [page:Quaternion]
 		quaternion -- [page:Quaternion]
 		</div>
 		</div>
@@ -435,7 +424,7 @@
 		Applies a [page:Quaternion] transform to this vector.
 		Applies a [page:Quaternion] transform to this vector.
 		</div>
 		</div>
 
 
-		<h3>[method:Vector3 project]( [page:Camera camera] )</h3>
+		<h3>[method:Vector3 project]( [page:Camera camera] ) [page:Vector3 this]</h3>
 		<div>
 		<div>
 		[page:Camera camera] — camera to use in the projection.<br />
 		[page:Camera camera] — camera to use in the projection.<br />
 		</div>
 		</div>
@@ -443,7 +432,7 @@
 		Projects the vector with the camera.
 		Projects the vector with the camera.
 		</div>
 		</div>
 
 
-		<h3>[method:Vector3 unproject]( [page:Camera camera] )</h3>
+		<h3>[method:Vector3 unproject]( [page:Camera camera] ) [page:Vector3 this]</h3>
 		<div>
 		<div>
 		[page:Camera camera] — camera to use in the projection.<br />
 		[page:Camera camera] — camera to use in the projection.<br />
 		</div>
 		</div>
@@ -451,6 +440,28 @@
 		Unprojects the vector with the camera.
 		Unprojects the vector with the camera.
 		</div>
 		</div>
 
 
+		<h3>[method:Boolean equals]( [page:Vector3 v] ) [page:Vector3 this]</h3>
+		<div>
+		Checks for strict equality of this vector and *v*.
+		</div>
+
+		<h3>[method:Vector3 clone]() [page:Vector3 this]</h3>
+		<div>
+		Clones this vector.
+		</div>
+
+		<h3>[method:Array toArray]( [page:Array array], [page:Integer offset] ) [page:Vector3 this]</h3>
+		<div>
+		array -- An optional array to store the vector to. <br />
+		offset -- An optional offset into the array.
+		</div>
+		<div>
+		Assigns this vector's x value to array[0]. <br />
+		Assigns this vector's y value to array[1]. <br />
+		Assigns this vector's z value to array[2]. <br />
+		Returns the created array.
+		</div>
+
 		<h2>Source</h2>
 		<h2>Source</h2>
 
 
 		[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
 		[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]

+ 67 - 66
docs/api/math/Vector4.html

@@ -43,11 +43,52 @@
 		Sets value of this vector.
 		Sets value of this vector.
 		</div>
 		</div>
 
 
+		<h3>[method:Vector4 setX]( [page:Float x] ) [page:Vector4 this]</h3>
+		<div>
+		x -- [page:Float]
+		</div>
+		<div>
+		Sets the x component of the vector.
+		</div>
+
+		<h3>[method:Vector4 setY]( [page:Float y] ) [page:Vector4 this]</h3>
+		<div>
+		y -- [page:Float]
+		</div>
+		<div>
+		Sets the y component of the vector.
+		</div>
+
+		<h3>[method:Vector4 setZ]( [page:Float z] ) [page:Vector4 this]</h3>
+		<div>
+		z -- [page:Float]
+		</div>
+		<div>
+		Sets the z component of the vector.
+		</div>
+
+		<h3>[method:Vector4 setW]( [page:Float w] ) [page:Vector4 this]</h3>
+		<div>
+		w -- [page:Float]
+		</div>
+		<div>
+		Sets the w component of the vector.
+		</div>
+
 		<h3>[method:Vector4 copy]( [page:Vector4 v] ) [page:Vector4 this]</h3>
 		<h3>[method:Vector4 copy]( [page:Vector4 v] ) [page:Vector4 this]</h3>
 		<div>
 		<div>
 		Copies value of *v* to this vector.
 		Copies value of *v* to this vector.
 		</div>
 		</div>
 
 
+		<h3>[method:Vector4 fromArray]( [page:Array array] ) [page:Vector4 this]</h3>
+		<div>
+		array -- The source array in the form [x, y, z, w]. <br />
+		offset -- An optional offset into the array.
+		</div>
+		<div>
+		Sets the vector's components based on an array formatted like [x, y, z, w]
+		</div>
+
 		<h3>[method:Vector4 add]( [page:Vector4 v] ) [page:Vector4 this]</h3>
 		<h3>[method:Vector4 add]( [page:Vector4 v] ) [page:Vector4 this]</h3>
 		<div>
 		<div>
 		Adds *v* to this vector.
 		Adds *v* to this vector.
@@ -63,7 +104,7 @@
 		Adds the multiple of v and s to this vector.
 		Adds the multiple of v and s to this vector.
 		</div>
 		</div>
 
 
-		<h3>[method:Vector4 sub]( [page:Vector4 v] )</h3>
+		<h3>[method:Vector4 sub]( [page:Vector4 v] ) [page:Vector4 this]</h3>
 		<div>
 		<div>
 		Subtracts *v* from this vector.
 		Subtracts *v* from this vector.
 		</div>
 		</div>
@@ -89,17 +130,17 @@
 		Inverts this vector.
 		Inverts this vector.
 		</div>
 		</div>
 
 
-		<h3>[method:Float dot]( [page:Vector4 v] )</h3>
+		<h3>[method:Float dot]( [page:Vector4 v] ) [page:Vector4 this]</h3>
 		<div>
 		<div>
 		Computes dot product of this vector and *v*.
 		Computes dot product of this vector and *v*.
 		</div>
 		</div>
 
 
-		<h3>[method:Float lengthSq]()</h3>
+		<h3>[method:Float lengthSq]() [page:Vector4 this]</h3>
 		<div>
 		<div>
 		Computes squared length of this vector.
 		Computes squared length of this vector.
 		</div>
 		</div>
 
 
-		<h3>[method:Float length]()</h3>
+		<h3>[method:Float length]() [page:Vector4 this]</h3>
 		<div>
 		<div>
 		Computes length of this vector.
 		Computes length of this vector.
 		</div>
 		</div>
@@ -124,13 +165,8 @@
 		Sets this vector to be the vector linearly interpolated between *v1* and *v2* with *alpha* factor.
 		Sets this vector to be the vector linearly interpolated between *v1* and *v2* with *alpha* factor.
 		</div>
 		</div>
 
 
-		<h3>[method:Vector4 clone]()</h3>
-		<div>
-		Clones this vector.
-		</div>
 
 
-
-		<h3>[method:Vector4 clamp]([page:Vector4 min], [page:Vector4 max]) [page:Vector4 this]</h3>
+		<h3>[method:Vector4 clamp]( [page:Vector4 min], [page:Vector4 max] ) [page:Vector4 this]</h3>
 		<div>
 		<div>
 		min -- [page:Vector4] <br />
 		min -- [page:Vector4] <br />
 		max -- [page:Vector4]
 		max -- [page:Vector4]
@@ -140,7 +176,7 @@
 		If this vector's x, y, z, or w value is less than the min vector's x, y, z, or w value, it is replaced by the corresponding value.
 		If this vector's x, y, z, or w value is less than the min vector's x, y, z, or w value, it is replaced by the corresponding value.
 		</div>
 		</div>
 
 
-		<h3>[method:Vector4 clampScalar]([page:Float min], [page:Float max]) [page:Vector4 this]</h3>
+		<h3>[method:Vector4 clampScalar]( [page:Float min], [page:Float max] ) [page:Vector4 this]</h3>
 		<div>
 		<div>
 		min -- [page:Float] the minimum value the components will be clamped to <br />
 		min -- [page:Float] the minimum value the components will be clamped to <br />
 		max -- [page:Float] the maximum value the components will be clamped to
 		max -- [page:Float] the maximum value the components will be clamped to
@@ -150,27 +186,27 @@
 		If this vector's x, y, z or w values are less than the min value, they are replaced by the min value.
 		If this vector's x, y, z or w values are less than the min value, they are replaced by the min value.
 		</div>
 		</div>
 
 
-		<h3>[method:Vector4 floor]()</h3>
+		<h3>[method:Vector4 floor]() [page:Vector4 this]</h3>
 		<div>
 		<div>
 		The components of the vector are rounded downwards (towards negative infinity) to an integer value.
 		The components of the vector are rounded downwards (towards negative infinity) to an integer value.
 		</div>
 		</div>
 
 
-		<h3>[method:Vector4 ceil]()</h3>
+		<h3>[method:Vector4 ceil]() [page:Vector4 this]</h3>
 		<div>
 		<div>
 		The components of the vector are rounded upwards (towards positive infinity) to an integer value.
 		The components of the vector are rounded upwards (towards positive infinity) to an integer value.
 		</div>
 		</div>
 
 
-		<h3>[method:Vector4 round]()</h3>
+		<h3>[method:Vector4 round]() [page:Vector4 this]</h3>
 		<div>
 		<div>
 		The components of the vector are rounded towards the nearest integer value.
 		The components of the vector are rounded towards the nearest integer value.
 		</div>
 		</div>
 
 
-		<h3>[method:Vector4 roundToZero]()</h3>
+		<h3>[method:Vector4 roundToZero]() [page:Vector4 this]</h3>
 		<div>
 		<div>
 		The components of the vector are rounded towards zero (up if negative, down if positive) to an integer value.
 		The components of the vector are rounded towards zero (up if negative, down if positive) to an integer value.
 		</div>
 		</div>
 
 
-		<h3>[method:Vector4 applyMatrix4]([page:Matrix4 m]) [page:Vector4 this]</h3>
+		<h3>[method:Vector4 applyMatrix4]( [page:Matrix4 m] ) [page:Vector4 this]</h3>
 		<div>
 		<div>
 		m -- [page:Matrix4]
 		m -- [page:Matrix4]
 		</div>
 		</div>
@@ -178,7 +214,7 @@
 		Transforms the vector by the matrix.
 		Transforms the vector by the matrix.
 		</div>
 		</div>
 
 
-		<h3>[method:Vector4 min]([page:Vector4 v]) [page:Vector4 this]</h3>
+		<h3>[method:Vector4 min]( [page:Vector4 v] ) [page:Vector4 this]</h3>
 		<div>
 		<div>
 		v -- [page:Vector4]
 		v -- [page:Vector4]
 		</div>
 		</div>
@@ -186,7 +222,7 @@
 		If this vector's x, y, z, or w value is greater than vector v's x, y, z, or w value, that value is replaced by the corresponding vector v value.
 		If this vector's x, y, z, or w value is greater than vector v's x, y, z, or w value, that value is replaced by the corresponding vector v value.
 		</div>
 		</div>
 
 
-		<h3>[method:Vector4 max]([page:Vector4 v]) [page:Vector4 this]</h3>
+		<h3>[method:Vector4 max]( [page:Vector4 v] ) [page:Vector4 this]</h3>
 		<div>
 		<div>
 		v -- [page:Vector4]
 		v -- [page:Vector4]
 		</div>
 		</div>
@@ -194,7 +230,7 @@
 		If this vector's x, y, z, or w value is less than vector v's x, y, z, or w value, that value is replaced by the corresponding vector v value.
 		If this vector's x, y, z, or w value is less than vector v's x, y, z, or w value, that value is replaced by the corresponding vector v value.
 		</div>
 		</div>
 
 
-		<h3>[method:Vector4 addScalar]([page:Float s]) [page:Vector4 this]</h3>
+		<h3>[method:Vector4 addScalar]( [page:Float s] ) [page:Vector4 this]</h3>
 		<div>
 		<div>
 		s -- [page:Float]
 		s -- [page:Float]
 		</div>
 		</div>
@@ -202,7 +238,7 @@
 		Adds a scalar value to all of the vector's components.
 		Adds a scalar value to all of the vector's components.
 		</div>
 		</div>
 
 
-		<h3>[method:Boolean equals]([page:Vector4 v])</h3>
+		<h3>[method:Boolean equals]( [page:Vector4 v] ) [page:Vector4 this]</h3>
 		<div>
 		<div>
 		v -- [page:Vector4]
 		v -- [page:Vector4]
 		</div>
 		</div>
@@ -210,7 +246,7 @@
 		Checks to see if this vector matches vector v.
 		Checks to see if this vector matches vector v.
 		</div>
 		</div>
 
 
-		<h3>[method:Vector4 setAxisAngleFromRotationMatrix]([page:Matrix4 m]) [page:Vector4 this]</h3>
+		<h3>[method:Vector4 setAxisAngleFromRotationMatrix]( [page:Matrix4 m] ) [page:Vector4 this]</h3>
 		<div>
 		<div>
 		m -- [page:Matrix4]
 		m -- [page:Matrix4]
 		</div>
 		</div>
@@ -220,7 +256,7 @@
 		The axis is stored in components (x, y, z) of the vector, and the rotation in radians is stored in component w
 		The axis is stored in components (x, y, z) of the vector, and the rotation in radians is stored in component w
 		</div>
 		</div>
 
 
-		<h3>[method:Vector4 setAxisAngleFromQuaternion]([page:Quaternion q]) [page:Vector4 this]</h3>
+		<h3>[method:Vector4 setAxisAngleFromQuaternion]( [page:Quaternion q] ) [page:Vector4 this]</h3>
 		<div>
 		<div>
 		q -- [page:Quaternion]
 		q -- [page:Quaternion]
 		</div>
 		</div>
@@ -230,7 +266,7 @@
 		The axis is stored in components (x, y, z) of the vector, and the rotation in radians is stored in component w
 		The axis is stored in components (x, y, z) of the vector, and the rotation in radians is stored in component w
 		</div>
 		</div>
 
 
-		<h3>[method:Float getComponent]([page:Integer index])</h3>
+		<h3>[method:Float getComponent]( [page:Integer index] ) [page:Vector4 this]</h3>
 		<div>
 		<div>
 		index -- [page:Integer] 0, 1, 2, or 3
 		index -- [page:Integer] 0, 1, 2, or 3
 		</div>
 		</div>
@@ -244,7 +280,7 @@
 
 
 		</div>
 		</div>
 
 
-		<h3>[method:null setComponent]([page:Integer index], [page:Float value])</h3>
+		<h3>[method:null setComponent]( [page:Integer index], [page:Float value] ) [page:Vector4 this]</h3>
 		<div>
 		<div>
 		index -- [page:Integer] 0 - 3 <br />
 		index -- [page:Integer] 0 - 3 <br />
 		value -- [page:Float]
 		value -- [page:Float]
@@ -258,60 +294,25 @@
 		Index 3: w<br/>
 		Index 3: w<br/>
 		</div>
 		</div>
 
 
-		<h3>[method:Vector4 fromArray]([page:Array array]) [page:Vector4 this]</h3>
-		<div>
-		array -- [page:Array] An array formatted [x, y, z, w]
-		</div>
-		<div>
-		Sets the vector's components based on an array formatted like [x, y, z, w]
-		</div>
-
-		<h3>[method:Array toArray]( [page:Array array] )</h3>
-		<div>
-		array -- Optional array to store the vector.
-		</div>
-		<div>
-		Returns an array in the format [x, y, z, w]
-		</div>
-
-		<h3>[method:Float lengthManhattan]()</h3>
+		<h3>[method:Float lengthManhattan]() [page:Vector4 this]</h3>
 		<div>
 		<div>
 		Computes Manhattan length of this vector.<br />
 		Computes Manhattan length of this vector.<br />
 		[link:http://en.wikipedia.org/wiki/Taxicab_geometry]
 		[link:http://en.wikipedia.org/wiki/Taxicab_geometry]
 		</div>
 		</div>
 
 
-
-		<h3>[method:Vector4 setX]([page:Float x]) [page:Vector4 this]</h3>
-		<div>
-		x -- [page:Float]
-		</div>
-		<div>
-		Sets the x component of the vector.
-		</div>
-
-		<h3>[method:Vector4 setY]([page:Float y]) [page:Vector4 this]</h3>
+		<h3>[method:Vector4 clone]() [page:Vector4 this]</h3>
 		<div>
 		<div>
-		y -- [page:Float]
-		</div>
-		<div>
-		Sets the y component of the vector.
+		Clones this vector.
 		</div>
 		</div>
 
 
-		<h3>[method:Vector4 setZ]([page:Float z]) [page:Vector4 this]</h3>
+		<h3>[method:Array toArray]( [page:Array array], [page:Integer offset] ) [page:Vector4 this]</h3>
 		<div>
 		<div>
-		z -- [page:Float]
+		array -- An optional array to store the vector.
+		offset -- An optional offset into the array.
 		</div>
 		</div>
 		<div>
 		<div>
-		Sets the z component of the vector.
-		</div>
+		Returns an array in the format [x, y, z, w]
 
 
-		<h3>[method:Vector4 setW]([page:Float w]) [page:Vector4 this]</h3>
-		<div>
-		w -- [page:Float]
-		</div>
-		<div>
-		Sets the w component of the vector.
-		</div>
 
 
 		<h2>Source</h2>
 		<h2>Source</h2>
 
 

+ 14 - 7
docs/api/objects/LOD.html

@@ -1,7 +1,7 @@
 <!DOCTYPE html>
 <!DOCTYPE html>
 <html lang="en">
 <html lang="en">
 	<head>
 	<head>
-		<meta charset="utf-8" />
+		<meta charset="utf-8" />
 		<base href="../../" />
 		<base href="../../" />
 		<script src="list.js"></script>
 		<script src="list.js"></script>
 		<script src="page.js"></script>
 		<script src="page.js"></script>
@@ -45,16 +45,23 @@
 
 
 
 
 
 
-		<h3>[property:array objects]</h3>
+		<h3>[property:array levels]</h3>
 		<div>
 		<div>
-		An array of [page:Object3D Object3Ds]
+		An array of [page:object level] objects
+		</div>
+		<div>
+		level is an object with two properties.
+		</div>
+		<div>
+		distance -- The distance at which to display this level of detail<br />
+		object -- The Object3D which will be displayed
 		</div>
 		</div>
 
 
 		<h2>Methods</h2>
 		<h2>Methods</h2>
 
 
 
 
 
 
-		<h3>[method:null addLevel]([page:Object3D mesh], [page:Float distance])</h3>
+		<h3>[method:null addLevel]( [page:Object3D mesh], [page:Float distance] )</h3>
 		<div>
 		<div>
 		mesh -- The Object3D to display <br />
 		mesh -- The Object3D to display <br />
 		distance -- The distance at which to display this level of detail
 		distance -- The distance at which to display this level of detail
@@ -64,12 +71,12 @@
 		the lower the detail on the mesh.
 		the lower the detail on the mesh.
 		</div>
 		</div>
 
 
-		<h3>[method:Object3D getObjectForDistance]([page:Float distance])</h3>
+		<h3>[method:Object3D getObjectForDistance]( [page:Float distance] )</h3>
 		<div>
 		<div>
 		Get a reference to the first [page:Object3D] (mesh) that is greater than supplied distance.
 		Get a reference to the first [page:Object3D] (mesh) that is greater than supplied distance.
 		</div>
 		</div>
 
 
-		<h3>[method:null update]([page:Camera camera])</h3>
+		<h3>[method:null update]( [page:Camera camera] )</h3>
 		<div>
 		<div>
 		camera -- The current camera
 		camera -- The current camera
 		</div>
 		</div>
@@ -77,7 +84,7 @@
 		Update the visiblility of the level of detail based on the distance from the camera.
 		Update the visiblility of the level of detail based on the distance from the camera.
 		</div>
 		</div>
 		
 		
-		<h3>[method:Object3D clone]([page:Object3D object])</h3>
+		<h3>[method:Object3D clone]( [page:Object3D object] )</h3>
 		<div>
 		<div>
 		object -- (optional) Object3D which needs to be cloned. If undefined, clone method will create a new cloned LOD Object.
 		object -- (optional) Object3D which needs to be cloned. If undefined, clone method will create a new cloned LOD Object.
 		</div>
 		</div>

+ 81 - 80
docs/api/objects/LensFlare.html

@@ -1,81 +1,82 @@
-<!DOCTYPE html>
-<html lang="en">
-	<head>
+<!DOCTYPE html>
+<html lang="en">
+	<head>
 		<meta charset="utf-8" />
 		<meta charset="utf-8" />
-		<base href="../../" />
-		<script src="list.js"></script>
-		<script src="page.js"></script>
-		<link type="text/css" rel="stylesheet" href="page.css" />
-	</head>
-	<body>
-		[page:Object3D] &rarr;
-		
-		<h1>[name]</h1>
-
-		<div class="desc">Creates a simulated lens flare that tracks a light</div>
-
-		<h2>Example</h2>
-		
-		<div>[example:webgl_lensflares lensflares]</div>
-
-		<h2>Constructor</h2>
-
-
-		<h3>[name]([page:Texture texture], [page:Float size], [page:Float distance], [page:Materials blending], [page:Color color])</h3>
-		<div>
-		texture -- THREE.Texture (optional) <br />
-		size -- size in pixels (-1 = use texture.width) <br />
-		distance -- (0-1) from light source (0 = at light source) <br />
-		blending -- [page:Materials Blending Mode] - Defaults to THREE.NormalBlending <br />
-		color -- The color of the lens flare
-		</div>
-		<div>
-		Automatically adds a lens flare to the lensFlares array if a texture is set.
-		</div>
-
-		<h2>Properties</h2>
-
-
-
-		<h3>[property:array lensFlares]</h3>
-		<div>
-		The array of flares as set by [page:LensFlare.add]
-		</div> 
-
-		<h3>[property:Vector3 positionScreen]</h3>
-		<div>
-		The position of the lens flare on the screen.
-		</div> 
-
-		<h3>[property:Function customUpdateCallback]</h3>
-		<div>
-		A custom update callback
-		</div> 
-
-		<h2>Methods</h2>
-
-
-		<h3>[method:null add]([page:Texture texture], [page:Float size], [page:Float distance], [page:Materials blending], [page:Color color])</h3>
-		<div>
-		Adds a lens flare. See the constructor for details on the parameters.
-		</div>
-
-
-		<h3>[method:null updateLensFlares]()</h3>
-		<div>
-		Updates the lens flare based on the [page:LensFlare.positionScreen positionScreen] property.
-		</div>
-
-		<h3>[method:Object3D clone]([page:Object3D object])</h3>
-		<div>
-		object -- (optional) Object3D which needs to be cloned. If undefined, clone method will create a new cloned LensFlare Object.
-		</div>
-		<div>
-		Clone a LensFlare Object.
-		</div>
-
-		<h2>Source</h2>
-
-		[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
-	</body>
-</html>
+		<base href="../../" />
+		<script src="list.js"></script>
+		<script src="page.js"></script>
+		<link type="text/css" rel="stylesheet" href="page.css" />
+	</head>
+	<body>
+		[page:Object3D] &rarr;
+
+		<h1>[name]</h1>
+
+		<div class="desc">Creates a simulated lens flare that tracks a light.<br /><br />
+		Note: [page:WebGLRenderer] must have *alpha* set to *true* for LensFlare to work.</div>
+
+		<h2>Example</h2>
+
+		<div>[example:webgl_lensflares lensflares]</div>
+
+		<h2>Constructor</h2>
+
+
+		<h3>[name]([page:Texture texture], [page:Float size], [page:Float distance], [page:Materials blending], [page:Color color])</h3>
+		<div>
+		texture -- THREE.Texture (optional) <br />
+		size -- size in pixels (-1 = use texture.width) <br />
+		distance -- (0-1) from light source (0 = at light source) <br />
+		blending -- [page:Materials Blending Mode] - Defaults to THREE.NormalBlending <br />
+		color -- The color of the lens flare
+		</div>
+		<div>
+		Automatically adds a lens flare to the lensFlares array if a texture is set.
+		</div>
+
+		<h2>Properties</h2>
+
+
+
+		<h3>[property:array lensFlares]</h3>
+		<div>
+		The array of flares as set by [page:LensFlare.add]
+		</div>
+
+		<h3>[property:Vector3 positionScreen]</h3>
+		<div>
+		The position of the lens flare on the screen.
+		</div>
+
+		<h3>[property:Function customUpdateCallback]</h3>
+		<div>
+		A custom update callback
+		</div>
+
+		<h2>Methods</h2>
+
+
+		<h3>[method:null add]([page:Texture texture], [page:Float size], [page:Float distance], [page:Materials blending], [page:Color color])</h3>
+		<div>
+		Adds a lens flare. See the constructor for details on the parameters.
+		</div>
+
+
+		<h3>[method:null updateLensFlares]()</h3>
+		<div>
+		Updates the lens flare based on the [page:LensFlare.positionScreen positionScreen] property.
+		</div>
+
+		<h3>[method:Object3D clone]([page:Object3D object])</h3>
+		<div>
+		object -- (optional) Object3D which needs to be cloned. If undefined, clone method will create a new cloned LensFlare Object.
+		</div>
+		<div>
+		Clone a LensFlare Object.
+		</div>
+
+		<h2>Source</h2>
+
+		[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+	</body>
+</html>

+ 4 - 4
docs/api/objects/LineSegments.html

@@ -1,7 +1,7 @@
 <!DOCTYPE html>
 <!DOCTYPE html>
 <html lang="en">
 <html lang="en">
 	<head>
 	<head>
-		<meta charset="utf-8" />
+		<meta charset="utf-8" />
 		<base href="../../" />
 		<base href="../../" />
 		<script src="list.js"></script>
 		<script src="list.js"></script>
 		<script src="page.js"></script>
 		<script src="page.js"></script>
@@ -12,7 +12,7 @@
 
 
 		<h1>[name]</h1>
 		<h1>[name]</h1>
 
 
-		<div class="desc">A series of lines.</div>
+		<div class="desc">A series of lines drawn between pairs of vertices.</div>
 
 
 
 
 		<h2>Constructor</h2>
 		<h2>Constructor</h2>
@@ -20,7 +20,7 @@
 		<h3>[name]( [page:Geometry geometry], [page:Material material] )</h3>
 		<h3>[name]( [page:Geometry geometry], [page:Material material] )</h3>
 
 
 		<div>
 		<div>
-		geometry — Vertices representing the line segment(s).<br />
+		geometry — Pair(s) of vertices representing each line segment(s).<br />
 		material — Material for the line. Default is [page:LineBasicMaterial LineBasicMaterial].
 		material — Material for the line. Default is [page:LineBasicMaterial LineBasicMaterial].
 		</div>
 		</div>
 
 
@@ -31,7 +31,7 @@
 
 
 		<h3>[property:Geometry geometry]</h3>
 		<h3>[property:Geometry geometry]</h3>
 		<div>
 		<div>
-		Vertices representing the line segment(s).
+		Pair(s) of vertices representing the line segment(s).
 		</div>
 		</div>
 
 
 		<h3>[property:Material material]</h3>
 		<h3>[property:Material material]</h3>

+ 63 - 63
docs/api/objects/Sprite.html

@@ -1,64 +1,64 @@
-<!DOCTYPE html>
-<html lang="en">
-	<head>
+<!DOCTYPE html>
+<html lang="en">
+	<head>
 		<meta charset="utf-8" />
 		<meta charset="utf-8" />
-		<base href="../../" />
-		<script src="list.js"></script>
-		<script src="page.js"></script>
-		<link type="text/css" rel="stylesheet" href="page.css" />
-	</head>
-	<body>
-		[page:Object3D] &rarr;
-
-		<h1>[name]</h1>
-
-		<div class="desc">A sprite is a plane in an 3d scene which faces always towards the camera. </div>
-
-                <h2>Example</h2>
-
-                <code>
-                var map = new THREE.TextureLoader().load( "sprite.png" );
-                var material = new THREE.SpriteMaterial( { map: map, color: 0xffffff, fog: true } );
-                var sprite = new THREE.Sprite( material );
-                scene.add( sprite );
-                </code>
-
-
-		<h2>Constructor</h2>
-
-		<h3>[name]([page:Material material])</h3>
-		<div>
-                material — An instance of [page:Material] (optional).
-		</div>
-		<div>
-		This creates a new sprite with an specific material.
-		</div>
-
-
-		<h2>Properties</h2>
-
-		<h3>[property:SpriteMaterial material]</h3>
-		<div>
-		An instance of [page:Material], defining the object's appearance. Default is a [page:SpriteMaterial] which is a white plane.
-		</div>
--
-           	<h2>Methods</h2>
-
-                <h3>[method:Sprite clone]()</h3>
-                <div>
-                This creates a new clone of the sprite.
-                </div>
-
-		<h3>[method:Object3D clone]([page:Object3D object])</h3>
-		<div>
-		object -- (optional) Object3D which needs to be cloned. If undefined, clone method will create a new cloned Sprite Object.
-		</div>
-		<div>
-		Clone a Sprite Object.
-		</div>
-
-		<h2>Source</h2>
-
-		[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
-	</body>
-</html>
+		<base href="../../" />
+		<script src="list.js"></script>
+		<script src="page.js"></script>
+		<link type="text/css" rel="stylesheet" href="page.css" />
+	</head>
+	<body>
+		[page:Object3D] &rarr;
+
+		<h1>[name]</h1>
+
+		<div class="desc">A sprite is a plane in an 3d scene which faces always towards the camera.<br /><br />Sprites do not cast shadows, setting <code>castShadow = true</code> will have no effect.</div>
+		
+                <h2>Example</h2>
+
+                <code>
+                var map = new THREE.TextureLoader().load( "sprite.png" );
+                var material = new THREE.SpriteMaterial( { map: map, color: 0xffffff, fog: true } );
+                var sprite = new THREE.Sprite( material );
+                scene.add( sprite );
+                </code>
+
+
+		<h2>Constructor</h2>
+
+		<h3>[name]([page:Material material])</h3>
+		<div>
+                material — An instance of [page:Material] (optional).
+		</div>
+		<div>
+		This creates a new sprite with an specific material.
+		</div>
+
+
+		<h2>Properties</h2>
+
+		<h3>[property:SpriteMaterial material]</h3>
+		<div>
+		An instance of [page:Material], defining the object's appearance. Default is a [page:SpriteMaterial] which is a white plane.
+		</div>
+-
+           	<h2>Methods</h2>
+
+                <h3>[method:Sprite clone]()</h3>
+                <div>
+                This creates a new clone of the sprite.
+                </div>
+
+		<h3>[method:Object3D clone]([page:Object3D object])</h3>
+		<div>
+		object -- (optional) Object3D which needs to be cloned. If undefined, clone method will create a new cloned Sprite Object.
+		</div>
+		<div>
+		Clone a Sprite Object.
+		</div>
+
+		<h2>Source</h2>
+
+		[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
+	</body>
+</html>

+ 0 - 5
docs/api/renderers/WebGLRenderTarget.html

@@ -88,11 +88,6 @@
 		Whether to generate mipmaps (if possible) for a texture. True by default.
 		Whether to generate mipmaps (if possible) for a texture. True by default.
 		</div>
 		</div>
 
 
-		<h3>[property:WebGLRenderTarget shareDepthFrom]</h3>
-		<div>
-		Shares the depth from another WebGLRenderTarget. Default is null.
-		</div>
-
 		
 		
 		<h2>Methods</h2>
 		<h2>Methods</h2>
 		
 		

+ 17 - 3
docs/api/renderers/WebGLRenderer.html

@@ -72,6 +72,16 @@
 		<div>Note: Sorting is used to attempt to properly render objects that have some degree of transparency.  By definition, sorting objects may not work in all cases.  Depending on the needs of application, it may be neccessary to turn off sorting and use other methods to deal with transparency rendering e.g. manually determining the object rendering order.</div>
 		<div>Note: Sorting is used to attempt to properly render objects that have some degree of transparency.  By definition, sorting objects may not work in all cases.  Depending on the needs of application, it may be neccessary to turn off sorting and use other methods to deal with transparency rendering e.g. manually determining the object rendering order.</div>
 
 
 
 
+		<h3>[property:Array clippingPlanes]</h3>
+
+		<div>User-defined clipping planes specified as THREE.Plane objects in world space. These planes apply globally. Points in space whose dot product with the plane is negative are cut away. Default is [].</div>
+
+		<h3>[property:Boolean localClippingEnabled]</h3>
+
+		<div>Defines whether the renderer respects object-level clipping planes. Default is false.</div>
+
+
+
 		<h3>[property:Boolean gammaInput]</h3>
 		<h3>[property:Boolean gammaInput]</h3>
 
 
 		<div>Default is false. If set, then it expects that all textures and colors are premultiplied gamma.</div>
 		<div>Default is false. If set, then it expects that all textures and colors are premultiplied gamma.</div>
@@ -125,7 +135,6 @@
 		<ul>
 		<ul>
 			<li>memory:
 			<li>memory:
 				<ul>
 				<ul>
-					<li>programs</li>
 					<li>geometries</li>
 					<li>geometries</li>
 					<li>textures</li>
 					<li>textures</li>
 				</ul>
 				</ul>
@@ -138,12 +147,14 @@
 					<li>points</li>
 					<li>points</li>
 				</ul>
 				</ul>
 			</li>
 			</li>
+			<li>programs
+			</li>
 		</ul>
 		</ul>
 		</div>
 		</div>
 
 
-		<h3>[property:ShadowMapPlugin shadowMapPlugin]</h3>
+		<h3>[property:WebGLShadowMap shadowMap]</h3>
 		<div>
 		<div>
-		This contains the reference to the shadowMapPlugin.
+		This contains the reference to the component implementing shadow mapping.
 		</div>
 		</div>
 
 
 
 
@@ -164,6 +175,9 @@
 		Return a [page:Boolean] true if the context supports vertex textures.
 		Return a [page:Boolean] true if the context supports vertex textures.
 		</div>
 		</div>
 
 
+		<h3>[method:Object getSize]()</h3>
+		<div>Returns an object containing the width and height of the renderer's output canvas, in pixels.</div>
+
 		<h3>[method:null setSize]( [page:Integer width], [page:Integer height], [page:Boolean updateStyle] )</h3>
 		<h3>[method:null setSize]( [page:Integer width], [page:Integer height], [page:Boolean updateStyle] )</h3>
 		<div>Resizes the output canvas to (width, height), and also sets the viewport to fit that size, starting in (0, 0). Setting updateStyle to true adds explicit pixel units to the output canvas style.</div>
 		<div>Resizes the output canvas to (width, height), and also sets the viewport to fit that size, starting in (0, 0). Setting updateStyle to true adds explicit pixel units to the output canvas style.</div>
 
 

+ 5 - 0
docs/api/textures/Texture.html

@@ -128,6 +128,11 @@
 		False by default, which is the norm for PNG images. Set to true if the RGB values have been stored premultiplied by alpha.
 		False by default, which is the norm for PNG images. Set to true if the RGB values have been stored premultiplied by alpha.
 		</div>
 		</div>
 
 
+		<h3>[property:number encoding]</h3>
+		<div>
+		Set to THREE.LinearEncoding by default, but supports sRGB, RGBE, RGBM, RGBD, LogLuv and Gamma corrected encodings.  IMPORTANT: If this value is changed on a texture after the material has been used, it is necessary to trigger a Material.needsUpdate for this value to be realized in the shader.
+		</div>
+
 		<h3>[property:object onUpdate]</h3>
 		<h3>[property:object onUpdate]</h3>
 		<div>
 		<div>
 		A callback function, called when the texture is updated (e.g., when needsUpdate has been set to true and then the texture is used).
 		A callback function, called when the texture is updated (e.g., when needsUpdate has been set to true and then the texture is used).

+ 1 - 1
docs/index.html

@@ -1,4 +1,4 @@
-<!doctype html>
+<!DOCTYPE html>
 <html lang="en">
 <html lang="en">
 	<head>
 	<head>
 		<meta charset="utf-8">
 		<meta charset="utf-8">

+ 15 - 4
docs/list.js

@@ -37,14 +37,18 @@ var list = {
 		"Lights": [
 		"Lights": [
 			[ "AmbientLight", "api/lights/AmbientLight" ],
 			[ "AmbientLight", "api/lights/AmbientLight" ],
 			[ "DirectionalLight", "api/lights/DirectionalLight" ],
 			[ "DirectionalLight", "api/lights/DirectionalLight" ],
+			[ "DirectionalLightShadow", "api/lights/DirectionalLightShadow" ],
 			[ "HemisphereLight", "api/lights/HemisphereLight" ],
 			[ "HemisphereLight", "api/lights/HemisphereLight" ],
 			[ "Light", "api/lights/Light" ],
 			[ "Light", "api/lights/Light" ],
+			[ "LightShadow", "api/lights/LightShadow" ],
 			[ "PointLight", "api/lights/PointLight" ],
 			[ "PointLight", "api/lights/PointLight" ],
-			[ "SpotLight", "api/lights/SpotLight" ]
+			[ "SpotLight", "api/lights/SpotLight" ],
+			[ "SpotLightShadow", "api/lights/SpotLightShadow" ]
 		],
 		],
 
 
 
 
 		"Loaders": [
 		"Loaders": [
+			[ "AudioLoader", "api/loaders/AudioLoader" ],
 			[ "BabylonLoader", "api/loaders/BabylonLoader" ],
 			[ "BabylonLoader", "api/loaders/BabylonLoader" ],
 			[ "BufferGeometryLoader", "api/loaders/BufferGeometryLoader" ],
 			[ "BufferGeometryLoader", "api/loaders/BufferGeometryLoader" ],
 			[ "Cache", "api/loaders/Cache" ],
 			[ "Cache", "api/loaders/Cache" ],
@@ -57,7 +61,6 @@ var list = {
 			[ "MaterialLoader", "api/loaders/MaterialLoader" ],
 			[ "MaterialLoader", "api/loaders/MaterialLoader" ],
 			[ "MTLLoader", "api/loaders/MTLLoader" ],
 			[ "MTLLoader", "api/loaders/MTLLoader" ],
 			[ "OBJLoader", "api/loaders/OBJLoader" ],
 			[ "OBJLoader", "api/loaders/OBJLoader" ],
-			[ "OBJMTLLoader", "api/loaders/OBJMTLLoader" ],
 			[ "ObjectLoader", "api/loaders/ObjectLoader" ],
 			[ "ObjectLoader", "api/loaders/ObjectLoader" ],
 			[ "PDBLoader", "api/loaders/PDBLoader" ],
 			[ "PDBLoader", "api/loaders/PDBLoader" ],
 			[ "SVGLoader", "api/loaders/SVGLoader" ],
 			[ "SVGLoader", "api/loaders/SVGLoader" ],
@@ -76,6 +79,7 @@ var list = {
 			[ "MeshLambertMaterial", "api/materials/MeshLambertMaterial" ],
 			[ "MeshLambertMaterial", "api/materials/MeshLambertMaterial" ],
 			[ "MeshNormalMaterial", "api/materials/MeshNormalMaterial" ],
 			[ "MeshNormalMaterial", "api/materials/MeshNormalMaterial" ],
 			[ "MeshPhongMaterial", "api/materials/MeshPhongMaterial" ],
 			[ "MeshPhongMaterial", "api/materials/MeshPhongMaterial" ],
+			[ "MeshStandardMaterial", "api/materials/MeshStandardMaterial" ],
 			[ "PointsMaterial", "api/materials/PointsMaterial" ],
 			[ "PointsMaterial", "api/materials/PointsMaterial" ],
 			[ "RawShaderMaterial", "api/materials/RawShaderMaterial" ],
 			[ "RawShaderMaterial", "api/materials/RawShaderMaterial" ],
 			[ "ShaderMaterial", "api/materials/ShaderMaterial" ],
 			[ "ShaderMaterial", "api/materials/ShaderMaterial" ],
@@ -157,7 +161,6 @@ var list = {
 		],
 		],
 
 
 		"Extras": [
 		"Extras": [
-			[ "GeometryUtils", "api/extras/GeometryUtils" ],
 			[ "SceneUtils", "api/extras/SceneUtils" ]
 			[ "SceneUtils", "api/extras/SceneUtils" ]
 		],
 		],
 
 
@@ -170,7 +173,6 @@ var list = {
 		"Extras / Core": [
 		"Extras / Core": [
 			[ "Curve", "api/extras/core/Curve" ],
 			[ "Curve", "api/extras/core/Curve" ],
 			[ "CurvePath", "api/extras/core/CurvePath" ],
 			[ "CurvePath", "api/extras/core/CurvePath" ],
-			[ "Gyroscope", "api/extras/core/Gyroscope" ],
 			[ "Path", "api/extras/core/Path" ],
 			[ "Path", "api/extras/core/Path" ],
 			[ "Shape", "api/extras/core/Shape" ]
 			[ "Shape", "api/extras/core/Shape" ]
 		],
 		],
@@ -191,23 +193,32 @@ var list = {
 		],
 		],
 
 
 		"Extras / Geometries": [
 		"Extras / Geometries": [
+			[ "BoxBufferGeometry", "api/extras/geometries/BoxBufferGeometry" ],
 			[ "BoxGeometry", "api/extras/geometries/BoxGeometry" ],
 			[ "BoxGeometry", "api/extras/geometries/BoxGeometry" ],
+			[ "CircleBufferGeometry", "api/extras/geometries/CircleBufferGeometry" ],
 			[ "CircleGeometry", "api/extras/geometries/CircleGeometry" ],
 			[ "CircleGeometry", "api/extras/geometries/CircleGeometry" ],
+			[ "CylinderBufferGeometry", "api/extras/geometries/CylinderBufferGeometry" ],
 			[ "CylinderGeometry", "api/extras/geometries/CylinderGeometry" ],
 			[ "CylinderGeometry", "api/extras/geometries/CylinderGeometry" ],
 			[ "DodecahedronGeometry", "api/extras/geometries/DodecahedronGeometry" ],
 			[ "DodecahedronGeometry", "api/extras/geometries/DodecahedronGeometry" ],
 			[ "ExtrudeGeometry", "api/extras/geometries/ExtrudeGeometry" ],
 			[ "ExtrudeGeometry", "api/extras/geometries/ExtrudeGeometry" ],
 			[ "IcosahedronGeometry", "api/extras/geometries/IcosahedronGeometry" ],
 			[ "IcosahedronGeometry", "api/extras/geometries/IcosahedronGeometry" ],
+			[ "LatheBufferGeometry", "api/extras/geometries/LatheBufferGeometry" ],
 			[ "LatheGeometry", "api/extras/geometries/LatheGeometry" ],
 			[ "LatheGeometry", "api/extras/geometries/LatheGeometry" ],
 			[ "OctahedronGeometry", "api/extras/geometries/OctahedronGeometry" ],
 			[ "OctahedronGeometry", "api/extras/geometries/OctahedronGeometry" ],
 			[ "ParametricGeometry", "api/extras/geometries/ParametricGeometry" ],
 			[ "ParametricGeometry", "api/extras/geometries/ParametricGeometry" ],
+			[ "PlaneBufferGeometry", "api/extras/geometries/PlaneBufferGeometry" ],
 			[ "PlaneGeometry", "api/extras/geometries/PlaneGeometry" ],
 			[ "PlaneGeometry", "api/extras/geometries/PlaneGeometry" ],
 			[ "PolyhedronGeometry", "api/extras/geometries/PolyhedronGeometry" ],
 			[ "PolyhedronGeometry", "api/extras/geometries/PolyhedronGeometry" ],
+			[ "RingBufferGeometry", "api/extras/geometries/RingBufferGeometry" ],
 			[ "RingGeometry", "api/extras/geometries/RingGeometry" ],
 			[ "RingGeometry", "api/extras/geometries/RingGeometry" ],
 			[ "ShapeGeometry", "api/extras/geometries/ShapeGeometry" ],
 			[ "ShapeGeometry", "api/extras/geometries/ShapeGeometry" ],
+			[ "SphereBufferGeometry", "api/extras/geometries/SphereBufferGeometry" ],
 			[ "SphereGeometry", "api/extras/geometries/SphereGeometry" ],
 			[ "SphereGeometry", "api/extras/geometries/SphereGeometry" ],
 			[ "TetrahedronGeometry", "api/extras/geometries/TetrahedronGeometry" ],
 			[ "TetrahedronGeometry", "api/extras/geometries/TetrahedronGeometry" ],
 			[ "TextGeometry", "api/extras/geometries/TextGeometry" ],
 			[ "TextGeometry", "api/extras/geometries/TextGeometry" ],
+			[ "TorusBufferGeometry", "api/extras/geometries/TorusBufferGeometry" ],
 			[ "TorusGeometry", "api/extras/geometries/TorusGeometry" ],
 			[ "TorusGeometry", "api/extras/geometries/TorusGeometry" ],
+			[ "TorusKnotBufferGeometry", "api/extras/geometries/TorusKnotBufferGeometry" ],
 			[ "TorusKnotGeometry", "api/extras/geometries/TorusKnotGeometry" ],
 			[ "TorusKnotGeometry", "api/extras/geometries/TorusKnotGeometry" ],
 			[ "TubeGeometry", "api/extras/geometries/TubeGeometry" ]
 			[ "TubeGeometry", "api/extras/geometries/TubeGeometry" ]
 		],
 		],

+ 7 - 12
docs/manual/introduction/Creating-a-scene.html

@@ -8,18 +8,13 @@
 		<link type="text/css" rel="stylesheet" href="page.css" />
 		<link type="text/css" rel="stylesheet" href="page.css" />
 	</head>
 	</head>
 	<body>
 	<body>
-		<h1>[name]</h1>
+		<h1>[name]</h1><br />
 
 
 		<div>The goal of this section is to give a brief introduction to Three.js. We will start by setting up a scene, with a spinning cube. A working example is provided at the bottom of the page in case you get stuck and need help.</div>
 		<div>The goal of this section is to give a brief introduction to Three.js. We will start by setting up a scene, with a spinning cube. A working example is provided at the bottom of the page in case you get stuck and need help.</div>
 
 
-		<h2>What is Three.js?</h2>
-
-		<div>Let's try to describe it briefly:</div>
-
-		<div>Three.js is a library that makes WebGL - 3D in the browser - easy to use. While a simple cube in raw WebGL would turn out hundreds of lines of Javascript and shader code, a Three.js equivalent is only a fraction of that.</div>
-
 		<h2>Before we start</h2>
 		<h2>Before we start</h2>
-		<div>Before you can use Three.js, you need somewhere to display it. Save the following HTML to a file on your computer, along with a copy of <a href="http://threejs.org/build/three.min.js">three.min.js</a> in the js/ directory, and open it in your browser.</div>
+
+		<div>Before you can use Three.js, you need somewhere to display it. Save the following HTML to a file on your computer, along with a copy of <a href="http://threejs.org/build/three.js">three.js</a> in the js/ directory, and open it in your browser.</div>
 
 
 		<code>
 		<code>
 		&lt;!DOCTYPE html&gt;
 		&lt;!DOCTYPE html&gt;
@@ -33,7 +28,7 @@
 				&lt;/style&gt;
 				&lt;/style&gt;
 			&lt;/head&gt;
 			&lt;/head&gt;
 			&lt;body&gt;
 			&lt;body&gt;
-				&lt;script src="js/three.min.js"&gt;&lt;/script&gt;
+				&lt;script src="js/three.js"&gt;&lt;/script&gt;
 				&lt;script&gt;
 				&lt;script&gt;
 					// Our Javascript will go here.
 					// Our Javascript will go here.
 				&lt;/script&gt;
 				&lt;/script&gt;
@@ -65,9 +60,9 @@
 		<div>Next up is the renderer. This is where the magic happens. In addition to the WebGLRenderer we use here, Three.js comes with a few others, often used as fallbacks for users with older browsers or for those who don't have WebGL support for some reason.</div>
 		<div>Next up is the renderer. This is where the magic happens. In addition to the WebGLRenderer we use here, Three.js comes with a few others, often used as fallbacks for users with older browsers or for those who don't have WebGL support for some reason.</div>
 
 
 		<div>In addition to creating the renderer instance, we also need to set the size at which we want it to render our app. It's a good idea to use the width and height of the area we want to fill with our app - in this case, the width and height of the browser window. For performance intensive apps, you can also give <strong>setSize</strong> smaller values, like <strong>window.innerWidth/2</strong> and <strong>window.innerHeight/2</strong>, which will make the app render at half size.</div>
 		<div>In addition to creating the renderer instance, we also need to set the size at which we want it to render our app. It's a good idea to use the width and height of the area we want to fill with our app - in this case, the width and height of the browser window. For performance intensive apps, you can also give <strong>setSize</strong> smaller values, like <strong>window.innerWidth/2</strong> and <strong>window.innerHeight/2</strong>, which will make the app render at half size.</div>
-		
+
 		<div>If you wish to keep the size of your app but render it at a lower resolution, you can do so by calling <strong>setSize</strong> with false as <strong>updateStyle</strong>. For example, <strong>setSize(window.innerWidth/2, window.innerHeight/2, false)</strong> will render your app at half resolution, given that your &lt;canvas&gt; has 100% width and height.</div>
 		<div>If you wish to keep the size of your app but render it at a lower resolution, you can do so by calling <strong>setSize</strong> with false as <strong>updateStyle</strong>. For example, <strong>setSize(window.innerWidth/2, window.innerHeight/2, false)</strong> will render your app at half resolution, given that your &lt;canvas&gt; has 100% width and height.</div>
-		
+
 		<div>Last but not least, we add the <strong>renderer</strong> element to our HTML document. This is a &lt;canvas&gt; element the renderer uses to display the scene to us.</div>
 		<div>Last but not least, we add the <strong>renderer</strong> element to our HTML document. This is a &lt;canvas&gt; element the renderer uses to display the scene to us.</div>
 
 
 		<div><em>"That's all good, but where's that cube you promised?"</em> Let's add it now.</div>
 		<div><em>"That's all good, but where's that cube you promised?"</em> Let's add it now.</div>
@@ -132,7 +127,7 @@
 				&lt;/style&gt;
 				&lt;/style&gt;
 			&lt;/head&gt;
 			&lt;/head&gt;
 			&lt;body&gt;
 			&lt;body&gt;
-				&lt;script src="js/three.min.js"&gt;&lt;/script&gt;
+				&lt;script src="js/three.js"&gt;&lt;/script&gt;
 				&lt;script&gt;
 				&lt;script&gt;
 					var scene = new THREE.Scene();
 					var scene = new THREE.Scene();
 					var camera = new THREE.PerspectiveCamera( 75, window.innerWidth/window.innerHeight, 0.1, 1000 );
 					var camera = new THREE.PerspectiveCamera( 75, window.innerWidth/window.innerHeight, 0.1, 1000 );

+ 1 - 0
docs/page.css

@@ -11,6 +11,7 @@ body {
 	font-family: 'inconsolata';
 	font-family: 'inconsolata';
 	font-size: 15px;
 	font-size: 15px;
 	line-height: 18px;
 	line-height: 18px;
+	tab-size: 4;
 	overflow: auto;
 	overflow: auto;
 }
 }
 
 

+ 10 - 10
docs/scenes/bones-browser.html

@@ -1,4 +1,4 @@
-<!doctype html>
+<!DOCTYPE html>
 <html lang="en">
 <html lang="en">
 	<head>
 	<head>
 		<meta charset="utf-8">
 		<meta charset="utf-8">
@@ -57,7 +57,7 @@
 				camera.position.y = 30;
 				camera.position.y = 30;
 
 
 				renderer = new THREE.WebGLRenderer( { antialias: true } );
 				renderer = new THREE.WebGLRenderer( { antialias: true } );
-				renderer.setPixelRatio( window.devicePixelRatio );				
+				renderer.setPixelRatio( window.devicePixelRatio );
 				renderer.setSize( window.innerWidth, window.innerHeight );
 				renderer.setSize( window.innerWidth, window.innerHeight );
 				document.body.appendChild( renderer.domElement );
 				document.body.appendChild( renderer.domElement );
 
 
@@ -74,7 +74,7 @@
 
 
 				lights[ 0 ].position.set( 0, 200, 0 );
 				lights[ 0 ].position.set( 0, 200, 0 );
 				lights[ 1 ].position.set( 100, 200, 100 );
 				lights[ 1 ].position.set( 100, 200, 100 );
-				lights[ 2 ].position.set( -100, -200, -100 );
+				lights[ 2 ].position.set( - 100, - 200, - 100 );
 
 
 				scene.add( lights[ 0 ] );
 				scene.add( lights[ 0 ] );
 				scene.add( lights[ 1 ] );
 				scene.add( lights[ 1 ] );
@@ -128,7 +128,7 @@
 
 
 				var prevBone = new THREE.Bone();
 				var prevBone = new THREE.Bone();
 				bones.push( prevBone );
 				bones.push( prevBone );
-				prevBone.position.y = -sizing.halfHeight;
+				prevBone.position.y = - sizing.halfHeight;
 
 
 				for ( var i = 0; i < sizing.segmentCount; i ++ ) {
 				for ( var i = 0; i < sizing.segmentCount; i ++ ) {
 
 
@@ -187,13 +187,13 @@
 
 
 					folder = gui.addFolder( "Bone " + i );
 					folder = gui.addFolder( "Bone " + i );
 
 
-					folder.add( bone.position, 'x', -10 + bone.position.x, 10 + bone.position.x );
-					folder.add( bone.position, 'y', -10 + bone.position.y, 10 + bone.position.y );
-					folder.add( bone.position, 'z', -10 + bone.position.z, 10 + bone.position.z );
+					folder.add( bone.position, 'x', - 10 + bone.position.x, 10 + bone.position.x );
+					folder.add( bone.position, 'y', - 10 + bone.position.y, 10 + bone.position.y );
+					folder.add( bone.position, 'z', - 10 + bone.position.z, 10 + bone.position.z );
 
 
-					folder.add( bone.rotation, 'x', -Math.PI * 0.5, Math.PI * 0.5 );
-					folder.add( bone.rotation, 'y', -Math.PI * 0.5, Math.PI * 0.5 );
-					folder.add( bone.rotation, 'z', -Math.PI * 0.5, Math.PI * 0.5 );
+					folder.add( bone.rotation, 'x', - Math.PI * 0.5, Math.PI * 0.5 );
+					folder.add( bone.rotation, 'y', - Math.PI * 0.5, Math.PI * 0.5 );
+					folder.add( bone.rotation, 'z', - Math.PI * 0.5, Math.PI * 0.5 );
 
 
 					folder.add( bone.scale, 'x', 0, 2 );
 					folder.add( bone.scale, 'x', 0, 2 );
 					folder.add( bone.scale, 'y', 0, 2 );
 					folder.add( bone.scale, 'y', 0, 2 );

+ 21 - 19
docs/scenes/geometry-browser.html

@@ -1,4 +1,4 @@
-<!doctype html>
+<!DOCTYPE html>
 <html lang="en">
 <html lang="en">
 	<head>
 	<head>
 		<meta charset="utf-8">
 		<meta charset="utf-8">
@@ -42,11 +42,11 @@
 
 
 		<script>
 		<script>
 
 
-			document.getElementById('newWindow').href += window.location.hash;
+			document.getElementById( 'newWindow' ).href += window.location.hash;
 
 
 			var gui = new dat.GUI();
 			var gui = new dat.GUI();
 			var scene = new THREE.Scene();
 			var scene = new THREE.Scene();
-			var camera = new THREE.PerspectiveCamera( 75, window.innerWidth/window.innerHeight, 0.1, 50 );
+			var camera = new THREE.PerspectiveCamera( 75, window.innerWidth / window.innerHeight, 0.1, 50 );
 			camera.position.z = 30;
 			camera.position.z = 30;
 
 
 			var renderer = new THREE.WebGLRenderer( { antialias: true } );
 			var renderer = new THREE.WebGLRenderer( { antialias: true } );
@@ -61,17 +61,17 @@
 			scene.add( ambientLight );
 			scene.add( ambientLight );
 
 
 			var lights = [];
 			var lights = [];
-			lights[0] = new THREE.PointLight( 0xffffff, 1, 0 );
-			lights[1] = new THREE.PointLight( 0xffffff, 1, 0 );
-			lights[2] = new THREE.PointLight( 0xffffff, 1, 0 );
+			lights[ 0 ] = new THREE.PointLight( 0xffffff, 1, 0 );
+			lights[ 1 ] = new THREE.PointLight( 0xffffff, 1, 0 );
+			lights[ 2 ] = new THREE.PointLight( 0xffffff, 1, 0 );
 
 
-			lights[0].position.set( 0, 200, 0 );
-			lights[1].position.set( 100, 200, 100 );
-			lights[2].position.set( -100, -200, -100 );
+			lights[ 0 ].position.set( 0, 200, 0 );
+			lights[ 1 ].position.set( 100, 200, 100 );
+			lights[ 2 ].position.set( - 100, - 200, - 100 );
 
 
-			scene.add( lights[0] );
-			scene.add( lights[1] );
-			scene.add( lights[2] );
+			scene.add( lights[ 0 ] );
+			scene.add( lights[ 1 ] );
+			scene.add( lights[ 2 ] );
 
 
 			var mesh = new THREE.Object3D()
 			var mesh = new THREE.Object3D()
 
 
@@ -79,26 +79,26 @@
 
 
 				new THREE.Geometry(),
 				new THREE.Geometry(),
 
 
-				new THREE.LineBasicMaterial({
+				new THREE.LineBasicMaterial( {
 					color: 0xffffff,
 					color: 0xffffff,
 					transparent: true,
 					transparent: true,
 					opacity: 0.5
 					opacity: 0.5
-				})
+				} )
 
 
-			));
+			) );
 
 
 			mesh.add( new THREE.Mesh(
 			mesh.add( new THREE.Mesh(
 
 
 				new THREE.Geometry(),
 				new THREE.Geometry(),
 
 
-				new THREE.MeshPhongMaterial({
+				new THREE.MeshPhongMaterial( {
 					color: 0x156289,
 					color: 0x156289,
 					emissive: 0x072534,
 					emissive: 0x072534,
 					side: THREE.DoubleSide,
 					side: THREE.DoubleSide,
 					shading: THREE.FlatShading
 					shading: THREE.FlatShading
-				})
+				} )
 
 
-			));
+			) );
 
 
 			var options = chooseFromHash( mesh );
 			var options = chooseFromHash( mesh );
 
 
@@ -112,9 +112,11 @@
 
 
 				var time = Date.now() * 0.001;
 				var time = Date.now() * 0.001;
 
 
-				if( !options.fixed ) {
+				if ( ! options.fixed ) {
+
 					mesh.rotation.x += 0.005;
 					mesh.rotation.x += 0.005;
 					mesh.rotation.y += 0.005;
 					mesh.rotation.y += 0.005;
+
 				}
 				}
 
 
 				renderer.render( scene, camera );
 				renderer.render( scene, camera );

+ 357 - 10
docs/scenes/js/geometry.js

@@ -93,6 +93,40 @@ function updateGroupGeometry( mesh, geometry ) {
 
 
 var guis = {
 var guis = {
 
 
+	BoxBufferGeometry : function( mesh ) {
+
+		var data = {
+			width : 15,
+			height : 15,
+			depth : 15,
+			widthSegments : 1,
+			heightSegments : 1,
+			depthSegments : 1
+		};
+
+		function generateGeometry() {
+
+			updateGroupGeometry( mesh,
+				new THREE.BoxBufferGeometry(
+					data.width, data.height, data.depth, data.widthSegments, data.heightSegments, data.depthSegments
+				)
+			);
+
+		}
+
+		var folder = gui.addFolder( 'THREE.BoxBufferGeometry' );
+
+		folder.add( data, 'width', 1, 30 ).onChange( generateGeometry );
+		folder.add( data, 'height', 1, 30 ).onChange( generateGeometry );
+		folder.add( data, 'depth', 1, 30 ).onChange( generateGeometry );
+		folder.add( data, 'widthSegments', 1, 10 ).step( 1 ).onChange( generateGeometry );
+		folder.add( data, 'heightSegments', 1, 10 ).step( 1 ).onChange( generateGeometry );
+		folder.add( data, 'depthSegments', 1, 10 ).step( 1 ).onChange( generateGeometry );
+
+		generateGeometry();
+
+	},
+
 	BoxGeometry : function( mesh ) {
 	BoxGeometry : function( mesh ) {
 
 
 		var data = {
 		var data = {
@@ -127,6 +161,52 @@ var guis = {
 
 
 	},
 	},
 
 
+	CylinderBufferGeometry : function( mesh ) {
+
+		var data = {
+			radiusTop : 5,
+			radiusBottom : 5,
+			height : 10,
+			radiusSegments : 8,
+			heightSegments : 1,
+			openEnded : false,
+			thetaStart : 0,
+			thetaLength : twoPi,
+		};
+
+		function generateGeometry() {
+
+			updateGroupGeometry( mesh,
+				new THREE.CylinderBufferGeometry(
+					data.radiusTop,
+					data.radiusBottom,
+					data.height,
+					data.radiusSegments,
+					data.heightSegments,
+					data.openEnded,
+					data.thetaStart,
+					data.thetaLength
+				)
+			);
+
+		}
+
+		var folder = gui.addFolder( 'THREE.CylinderBufferGeometry' );
+
+		folder.add( data, 'radiusTop', 1, 30 ).onChange( generateGeometry );
+		folder.add( data, 'radiusBottom', 1, 30 ).onChange( generateGeometry );
+		folder.add( data, 'height', 1, 50 ).onChange( generateGeometry );
+		folder.add( data, 'radiusSegments', 3, 64 ).step( 1 ).onChange( generateGeometry );
+		folder.add( data, 'heightSegments', 1, 64 ).step( 1 ).onChange( generateGeometry );
+		folder.add( data, 'openEnded' ).onChange( generateGeometry );
+		folder.add( data, 'thetaStart', 0, twoPi ).onChange( generateGeometry );
+		folder.add( data, 'thetaLength', 0, twoPi ).onChange( generateGeometry );
+
+
+		generateGeometry();
+
+	},
+
 	CylinderGeometry : function( mesh ) {
 	CylinderGeometry : function( mesh ) {
 
 
 		var data = {
 		var data = {
@@ -173,6 +253,36 @@ var guis = {
 
 
 	},
 	},
 
 
+	CircleBufferGeometry : function( mesh ) {
+
+		var data = {
+			radius : 10,
+			segments : 32,
+			thetaStart : 0,
+			thetaLength : twoPi,
+		};
+
+		function generateGeometry() {
+
+			updateGroupGeometry( mesh,
+				new THREE.CircleBufferGeometry(
+					data.radius, data.segments, data.thetaStart, data.thetaLength
+				)
+			);
+
+		}
+
+		var folder = gui.addFolder( 'THREE.CircleBufferGeometry' );
+
+		folder.add( data, 'radius', 1, 20 ).onChange( generateGeometry );
+		folder.add( data, 'segments', 0, 128 ).step( 1 ).onChange( generateGeometry );
+		folder.add( data, 'thetaStart', 0, twoPi ).onChange( generateGeometry );
+		folder.add( data, 'thetaLength', 0, twoPi ).onChange( generateGeometry );
+
+		generateGeometry();
+
+	},
+
 	CircleGeometry : function( mesh ) {
 	CircleGeometry : function( mesh ) {
 
 
 		var data = {
 		var data = {
@@ -255,6 +365,78 @@ var guis = {
 
 
 	},
 	},
 
 
+	LatheBufferGeometry : function() {
+
+		var points = [];
+
+		for ( var i = 0; i < 10; i ++ ) {
+
+			points.push( new THREE.Vector2( Math.sin( i * 0.2 ) * 10 + 5, ( i - 5 ) * 2 ) );
+
+		}
+
+		var data = {
+			segments : 12,
+			phiStart : 0,
+			phiLength : twoPi,
+		};
+
+		function generateGeometry() {
+
+			var geometry = new THREE.LatheBufferGeometry(
+				points, data.segments, data.phiStart, data.phiLength
+			);
+
+			updateGroupGeometry( mesh, geometry );
+
+		}
+
+		var folder = gui.addFolder( 'THREE.LatheBufferGeometry' );
+
+		folder.add( data, 'segments', 1, 30 ).step( 1 ).onChange( generateGeometry );
+		folder.add( data, 'phiStart', 0, twoPi ).onChange( generateGeometry );
+		folder.add( data, 'phiLength', 0, twoPi ).onChange( generateGeometry );
+
+		generateGeometry();
+
+	},
+
+	LatheGeometry : function() {
+
+		var points = [];
+
+		for ( var i = 0; i < 10; i ++ ) {
+
+			points.push( new THREE.Vector2( Math.sin( i * 0.2 ) * 10 + 5, ( i - 5 ) * 2 ) );
+
+		}
+
+		var data = {
+			segments : 12,
+			phiStart : 0,
+			phiLength : twoPi,
+		};
+
+		function generateGeometry() {
+
+			var geometry = new THREE.LatheGeometry(
+				points, data.segments, data.phiStart, data.phiLength
+			);
+
+			updateGroupGeometry( mesh, geometry );
+
+		}
+
+		var folder = gui.addFolder( 'THREE.LatheGeometry' );
+
+		folder.add( data, 'segments', 1, 30 ).step( 1 ).onChange( generateGeometry );
+		folder.add( data, 'phiStart', 0, twoPi ).onChange( generateGeometry );
+		folder.add( data, 'phiLength', 0, twoPi ).onChange( generateGeometry );
+
+		generateGeometry();
+
+	},
+
 	OctahedronGeometry : function() {
 	OctahedronGeometry : function() {
 
 
 		var data = {
 		var data = {
@@ -281,6 +463,36 @@ var guis = {
 
 
 	},
 	},
 
 
+	PlaneBufferGeometry : function( mesh ) {
+
+		var data = {
+			width : 10,
+			height : 10,
+			widthSegments : 1,
+			heightSegments : 1
+		};
+
+		function generateGeometry() {
+
+			updateGroupGeometry( mesh,
+				new THREE.PlaneBufferGeometry(
+					data.width, data.height, data.widthSegments, data.heightSegments
+				)
+			);
+
+		}
+
+		var folder = gui.addFolder( 'THREE.PlaneBufferGeometry' );
+
+		folder.add( data, 'width', 1, 30 ).onChange( generateGeometry );
+		folder.add( data, 'height', 1, 30 ).onChange( generateGeometry );
+		folder.add( data, 'widthSegments', 1, 30 ).step( 1 ).onChange( generateGeometry );
+		folder.add( data, 'heightSegments', 1, 30 ).step( 1 ).onChange( generateGeometry );
+
+		generateGeometry();
+
+	},
+
 	PlaneGeometry : function( mesh ) {
 	PlaneGeometry : function( mesh ) {
 
 
 		var data = {
 		var data = {
@@ -311,6 +523,40 @@ var guis = {
 
 
 	},
 	},
 
 
+	RingBufferGeometry : function( mesh ) {
+
+		var data = {
+			innerRadius : 5,
+			outerRadius : 10,
+			thetaSegments : 8,
+			phiSegments : 8,
+			thetaStart : 0,
+			thetaLength : twoPi,
+		};
+
+		function generateGeometry() {
+
+			updateGroupGeometry( mesh,
+				new THREE.RingBufferGeometry(
+					data.innerRadius, data.outerRadius, data.thetaSegments, data.phiSegments, data.thetaStart, data.thetaLength
+				)
+			);
+
+		}
+
+		var folder = gui.addFolder( 'THREE.RingBufferGeometry' );
+
+		folder.add( data, 'innerRadius', 0, 30 ).onChange( generateGeometry );
+		folder.add( data, 'outerRadius', 1, 30 ).onChange( generateGeometry );
+		folder.add( data, 'thetaSegments', 1, 30 ).step( 1 ).onChange( generateGeometry );
+		folder.add( data, 'phiSegments', 1, 30 ).step( 1 ).onChange( generateGeometry );
+		folder.add( data, 'thetaStart', 0, twoPi ).onChange( generateGeometry );
+		folder.add( data, 'thetaLength', 0, twoPi ).onChange( generateGeometry );
+
+		generateGeometry();
+
+	},
+
 	RingGeometry : function( mesh ) {
 	RingGeometry : function( mesh ) {
 
 
 		var data = {
 		var data = {
@@ -345,6 +591,42 @@ var guis = {
 
 
 	},
 	},
 
 
+	SphereBufferGeometry : function( mesh ) {
+
+		var data = {
+			radius : 15,
+			widthSegments : 8,
+			heightSegments : 6,
+			phiStart : 0,
+			phiLength : twoPi,
+			thetaStart : 0,
+			thetaLength : Math.PI,
+		};
+
+		function generateGeometry() {
+
+			updateGroupGeometry( mesh,
+				new THREE.SphereBufferGeometry(
+					data.radius, data.widthSegments, data.heightSegments, data.phiStart, data.phiLength, data.thetaStart, data.thetaLength
+				)
+			);
+
+		}
+
+		var folder = gui.addFolder( 'THREE.SphereBufferGeometry' );
+
+		folder.add( data, 'radius', 1, 30 ).onChange( generateGeometry );
+		folder.add( data, 'widthSegments', 3, 32 ).step( 1 ).onChange( generateGeometry );
+		folder.add( data, 'heightSegments', 2, 32 ).step( 1 ).onChange( generateGeometry );
+		folder.add( data, 'phiStart', 0, twoPi ).onChange( generateGeometry );
+		folder.add( data, 'phiLength', 0, twoPi ).onChange( generateGeometry );
+		folder.add( data, 'thetaStart', 0, twoPi ).onChange( generateGeometry );
+		folder.add( data, 'thetaLength', 0, twoPi ).onChange( generateGeometry );
+
+		generateGeometry();
+
+	},
+
 	SphereGeometry : function( mesh ) {
 	SphereGeometry : function( mesh ) {
 
 
 		var data = {
 		var data = {
@@ -473,6 +755,38 @@ var guis = {
 
 
 	},
 	},
 
 
+	TorusBufferGeometry : function( mesh ) {
+
+		var data = {
+			radius : 10,
+			tube : 3,
+			radialSegments : 16,
+			tubularSegments : 100,
+			arc : twoPi
+		};
+
+		function generateGeometry() {
+
+			updateGroupGeometry( mesh,
+				new THREE.TorusBufferGeometry(
+					data.radius, data.tube, data.radialSegments, data.tubularSegments, data.arc
+				)
+			);
+
+		}
+
+		var folder = gui.addFolder( 'THREE.TorusBufferGeometry' );
+
+		folder.add( data, 'radius', 1, 20 ).onChange( generateGeometry );
+		folder.add( data, 'tube', 0.1, 10 ).onChange( generateGeometry );
+		folder.add( data, 'radialSegments', 2, 30 ).step( 1 ).onChange( generateGeometry );
+		folder.add( data, 'tubularSegments', 3, 200 ).step( 1 ).onChange( generateGeometry );
+		folder.add( data, 'arc', 0.1, twoPi ).onChange( generateGeometry );
+
+		generateGeometry();
+
+	},
+
 	TorusGeometry : function( mesh ) {
 	TorusGeometry : function( mesh ) {
 
 
 		var data = {
 		var data = {
@@ -505,38 +819,71 @@ var guis = {
 
 
 	},
 	},
 
 
+	TorusKnotBufferGeometry : function( mesh ) {
+
+		var data = {
+			radius : 10,
+			tube : 3,
+			tubularSegments : 64,
+			radialSegments : 8,
+			p : 2,
+			q : 3
+		};
+
+		function generateGeometry() {
+
+			updateGroupGeometry( mesh,
+				new THREE.TorusKnotBufferGeometry(
+					data.radius, data.tube, data.tubularSegments, data.radialSegments,
+					data.p, data.q
+				)
+			);
+
+		}
+
+		var folder = gui.addFolder( 'THREE.TorusKnotBufferGeometry' );
+
+		folder.add( data, 'radius', 1, 20 ).onChange( generateGeometry );
+		folder.add( data, 'tube', 0.1, 10 ).onChange( generateGeometry );
+		folder.add( data, 'tubularSegments', 3, 300 ).step( 1 ).onChange( generateGeometry );
+		folder.add( data, 'radialSegments', 3, 20 ).step( 1 ).onChange( generateGeometry );
+		folder.add( data, 'p', 1, 20 ).step( 1 ).onChange( generateGeometry );
+		folder.add( data, 'q', 1, 20 ).step( 1 ).onChange( generateGeometry );
+
+		generateGeometry();
+
+	},
+
 	TorusKnotGeometry : function( mesh ) {
 	TorusKnotGeometry : function( mesh ) {
 
 
 		var data = {
 		var data = {
 			radius : 10,
 			radius : 10,
 			tube : 3,
 			tube : 3,
-			radialSegments : 64,
-			tubularSegments : 8,
+			tubularSegments : 64,
+			radialSegments : 8,
 			p : 2,
 			p : 2,
-			q : 3,
-			heightScale : 1
+			q : 3
 		};
 		};
 
 
 		function generateGeometry() {
 		function generateGeometry() {
 
 
 			updateGroupGeometry( mesh,
 			updateGroupGeometry( mesh,
 				new THREE.TorusKnotGeometry(
 				new THREE.TorusKnotGeometry(
-					data.radius, data.tube, data.radialSegments, data.tubularSegments,
-					data.p, data.q, data.heightScale
+					data.radius, data.tube, data.tubularSegments, data.radialSegments,
+					data.p, data.q
 				)
 				)
 			);
 			);
 
 
 		}
 		}
 
 
-		var folder = gui.addFolder( 'THREE.TorusGeometry' );
+		var folder = gui.addFolder( 'THREE.TorusKnotGeometry' );
 
 
 		folder.add( data, 'radius', 1, 20 ).onChange( generateGeometry );
 		folder.add( data, 'radius', 1, 20 ).onChange( generateGeometry );
 		folder.add( data, 'tube', 0.1, 10 ).onChange( generateGeometry );
 		folder.add( data, 'tube', 0.1, 10 ).onChange( generateGeometry );
-		folder.add( data, 'radialSegments', 3, 300 ).step( 1 ).onChange( generateGeometry );
-		folder.add( data, 'tubularSegments', 3, 20 ).step( 1 ).onChange( generateGeometry );
+		folder.add( data, 'tubularSegments', 3, 300 ).step( 1 ).onChange( generateGeometry );
+		folder.add( data, 'radialSegments', 3, 20 ).step( 1 ).onChange( generateGeometry );
 		folder.add( data, 'p', 1, 20 ).step( 1 ).onChange( generateGeometry );
 		folder.add( data, 'p', 1, 20 ).step( 1 ).onChange( generateGeometry );
 		folder.add( data, 'q', 1, 20 ).step( 1 ).onChange( generateGeometry );
 		folder.add( data, 'q', 1, 20 ).step( 1 ).onChange( generateGeometry );
-		folder.add( data, 'heightScale', 1, 20 ).onChange( generateGeometry );
 
 
 		generateGeometry();
 		generateGeometry();
 
 

+ 43 - 0
docs/scenes/js/material.js

@@ -453,6 +453,39 @@ function guiMeshPhongMaterial ( gui, mesh, material, geometry ) {
 
 
 }
 }
 
 
+function guiMeshStandardMaterial ( gui, mesh, material, geometry ) {
+
+	var data = {
+		color : material.color.getHex(),
+		emissive : material.emissive.getHex(),
+		envMaps : envMapKeys,
+		map : textureMapKeys,
+		lightMap : textureMapKeys,
+		specularMap : textureMapKeys,
+		alphaMap : textureMapKeys
+	};
+
+	var folder = gui.addFolder('THREE.MeshStandardMaterial');
+
+	folder.addColor( data, 'color' ).onChange( handleColorChange( material.color ) );
+	folder.addColor( data, 'emissive' ).onChange( handleColorChange( material.emissive ) );
+
+	folder.add( material, 'roughness', 0, 1 );
+	folder.add( material, 'metalness', 0, 1 );
+	folder.add( material, 'shading', constants.shading).onChange( needsUpdate( material, geometry ) );
+	folder.add( material, 'wireframe' );
+	folder.add( material, 'wireframeLinewidth', 0, 10 );
+	folder.add( material, 'vertexColors', constants.colors);
+	folder.add( material, 'fog' );
+	folder.add( data, 'envMaps', envMapKeys ).onChange( updateTexture( material, 'envMap', envMaps ) );
+	folder.add( data, 'map', textureMapKeys ).onChange( updateTexture( material, 'map', textureMaps ) );
+	folder.add( data, 'lightMap', textureMapKeys ).onChange( updateTexture( material, 'lightMap', textureMaps ) );
+	folder.add( data, 'alphaMap', textureMapKeys ).onChange( updateTexture( material, 'alphaMap', textureMaps ) );
+
+	// TODO roughnessMap and metalnessMap
+
+}
+
 function chooseFromHash ( gui, mesh, geometry ) {
 function chooseFromHash ( gui, mesh, geometry ) {
 
 
 	var selectedMaterial = window.location.hash.substring(1) || "MeshBasicMaterial";
 	var selectedMaterial = window.location.hash.substring(1) || "MeshBasicMaterial";
@@ -490,6 +523,16 @@ function chooseFromHash ( gui, mesh, geometry ) {
 
 
 		break;
 		break;
 
 
+	case "MeshStandardMaterial" :
+
+		material = new THREE.MeshStandardMaterial({color: 0x2194CE});
+		guiMaterial( gui, mesh, material, geometry );
+		guiMeshStandardMaterial( gui, mesh, material, geometry );
+
+		return material;
+
+		break;
+
 	case "MeshDepthMaterial" :
 	case "MeshDepthMaterial" :
 
 
 		material = new THREE.MeshDepthMaterial({color: 0x2194CE});
 		material = new THREE.MeshDepthMaterial({color: 0x2194CE});

+ 12 - 12
docs/scenes/material-browser.html

@@ -1,4 +1,4 @@
-<!doctype html>
+<!DOCTYPE html>
 <html lang="en">
 <html lang="en">
 	<head>
 	<head>
 		<meta charset="utf-8">
 		<meta charset="utf-8">
@@ -40,11 +40,11 @@
 
 
 		<script>
 		<script>
 
 
-			document.getElementById('newWindow').href += window.location.hash;
+			document.getElementById( 'newWindow' ).href += window.location.hash;
 
 
 			var gui = new dat.GUI();
 			var gui = new dat.GUI();
 			var scene = new THREE.Scene();
 			var scene = new THREE.Scene();
-			var camera = new THREE.PerspectiveCamera( 75, window.innerWidth/window.innerHeight, 0.1, 50 );
+			var camera = new THREE.PerspectiveCamera( 75, window.innerWidth / window.innerHeight, 0.1, 50 );
 			camera.position.z = 30;
 			camera.position.z = 30;
 
 
 			var renderer = new THREE.WebGLRenderer( { antialias: true } );
 			var renderer = new THREE.WebGLRenderer( { antialias: true } );
@@ -56,17 +56,17 @@
 			scene.add( ambientLight );
 			scene.add( ambientLight );
 
 
 			var lights = [];
 			var lights = [];
-			lights[0] = new THREE.PointLight( 0xffffff, 1, 0 );
-			lights[1] = new THREE.PointLight( 0xffffff, 1, 0 );
-			lights[2] = new THREE.PointLight( 0xffffff, 1, 0 );
+			lights[ 0 ] = new THREE.PointLight( 0xffffff, 1, 0 );
+			lights[ 1 ] = new THREE.PointLight( 0xffffff, 1, 0 );
+			lights[ 2 ] = new THREE.PointLight( 0xffffff, 1, 0 );
 
 
-			lights[0].position.set( 0, 200, 0 );
-			lights[1].position.set( 100, 200, 100 );
-			lights[2].position.set( -100, -200, -100 );
+			lights[ 0 ].position.set( 0, 200, 0 );
+			lights[ 1 ].position.set( 100, 200, 100 );
+			lights[ 2 ].position.set( - 100, - 200, - 100 );
 
 
-			scene.add( lights[0] );
-			scene.add( lights[1] );
-			scene.add( lights[2] );
+			scene.add( lights[ 0 ] );
+			scene.add( lights[ 1 ] );
+			scene.add( lights[ 2 ] );
 
 
 			guiScene( gui, scene, camera );
 			guiScene( gui, scene, camera );
 
 

+ 6 - 1
editor/css/dark.css

@@ -15,8 +15,13 @@
 		white-space: nowrap;
 		white-space: nowrap;
 	}
 	}
 
 
+	.Outliner .option:hover {
+		background-color: rgba(21,60,94,0.5);
+	}
+
+
 	.Outliner .option.active {
 	.Outliner .option.active {
-		background-color: #153C5E;
+		background-color: rgba(21,60,94,1);
 	}
 	}
 
 
 .Panel.Collapsible.collapsed .Static .Button {
 .Panel.Collapsible.collapsed .Static .Button {

+ 5 - 1
editor/css/light.css

@@ -16,10 +16,14 @@
 		white-space: nowrap;
 		white-space: nowrap;
 	}
 	}
 
 
-	.Outliner .option.active {
+	.Outliner .option:hover {
 		background-color: rgba(0,0,0,0.02);
 		background-color: rgba(0,0,0,0.02);
 	}
 	}
 
 
+	.Outliner .option.active {
+		background-color: rgba(0,0,0,0.04);
+	}
+
 input.Number {
 input.Number {
 	color: #0080f0!important;
 	color: #0080f0!important;
 	font-size: 12px;
 	font-size: 12px;

+ 54 - 34
editor/examples/pong.app.json

@@ -1,52 +1,72 @@
 {
 {
+	"metadata": {
+		"type": "App"
+	},
+	"project": {
+		"shadows": false,
+		"editable": false,
+		"vr": false
+	},
 	"camera": {
 	"camera": {
 		"metadata": {
 		"metadata": {
-			"version": 4.3,
+			"version": 4.4,
 			"type": "Object",
 			"type": "Object",
-			"generator": "ObjectExporter"
+			"generator": "Object3D.toJSON"
 		},
 		},
 		"object": {
 		"object": {
-			"uuid": "8EFB9C06-6312-4975-B04A-C9E4549BE348",
+			"uuid": "B901700E-2B1B-4D74-9201-164193F8304E",
 			"type": "PerspectiveCamera",
 			"type": "PerspectiveCamera",
 			"name": "Camera",
 			"name": "Camera",
+			"matrix": [0.9522120356559753,4.608077919243669e-9,-0.3054378032684326,0,-0.17742955684661865,0.8139732480049133,-0.553142249584198,0,0.24861818552017212,0.5809023976325989,0.7750750780105591,0,18.645999908447266,43.56800079345703,58.13100051879883,1],
+			"focalLength": 10,
+			"zoom": 1,
 			"fov": 50,
 			"fov": 50,
-			"aspect": 1.3291139240506329,
+			"aspect": 1.3217270194986073,
 			"near": 0.1,
 			"near": 0.1,
-			"far": 100000,
-			"matrix": [0.9522120356559753,4.209433246415983e-9,-0.3054378032684326,0,-0.17742955684661865,0.8139731884002686,-0.553142249584198,0,0.24861818552017212,0.5809023976325989,0.7750750780105591,0,186.46363830566406,435.67681884765625,581.3063354492188,1]
+			"far": 100000
 		}
 		}
 	},
 	},
 	"scene": {
 	"scene": {
 		"metadata": {
 		"metadata": {
-			"version": 4.3,
+			"version": 4.4,
 			"type": "Object",
 			"type": "Object",
-			"generator": "ObjectExporter"
+			"generator": "Object3D.toJSON"
 		},
 		},
 		"geometries": [
 		"geometries": [
 			{
 			{
-				"uuid": "77B20ED1-2871-4B14-A652-8F823B2A817E",
+				"uuid": "713F75F5-5D04-4069-89CB-2035F5619AC3",
 				"type": "PlaneGeometry",
 				"type": "PlaneGeometry",
-				"width": 600,
-				"height": 400,
+				"width": 60,
+				"height": 40,
 				"widthSegments": 1,
 				"widthSegments": 1,
 				"heightSegments": 1
 				"heightSegments": 1
 			},
 			},
 			{
 			{
-				"uuid": "7ADE0D01-A56A-4D33-869A-6C360E096EF7",
+				"uuid": "4537EA66-3CD6-43A1-97A9-EB59F3258BF9",
 				"type": "BoxGeometry",
 				"type": "BoxGeometry",
-				"width": 10,
-				"height": 10,
+				"width": 1,
+				"height": 1,
+				"depth": 1,
+				"widthSegments": 1,
+				"heightSegments": 1,
+				"depthSegments": 1
+			},
+			{
+				"uuid": "3C546CA4-FF0F-4BA1-9406-0CD0D560A396",
+				"type": "BoxGeometry",
+				"width": 2,
+				"height": 2,
 				"depth": 10,
 				"depth": 10,
 				"widthSegments": 1,
 				"widthSegments": 1,
 				"heightSegments": 1,
 				"heightSegments": 1,
 				"depthSegments": 1
 				"depthSegments": 1
 			},
 			},
 			{
 			{
-				"uuid": "E8C064B6-3454-4739-9E02-3B07B8E70B4C",
+				"uuid": "4628F4A7-D572-45C2-9A67-807D71FF19EC",
 				"type": "BoxGeometry",
 				"type": "BoxGeometry",
-				"width": 20,
-				"height": 20,
-				"depth": 100,
+				"width": 2,
+				"height": 2,
+				"depth": 10,
 				"widthSegments": 1,
 				"widthSegments": 1,
 				"heightSegments": 1,
 				"heightSegments": 1,
 				"depthSegments": 1
 				"depthSegments": 1
@@ -86,41 +106,41 @@
 					"uuid": "B47D0BFC-D63A-4CBB-985E-9C4DBDF086E4",
 					"uuid": "B47D0BFC-D63A-4CBB-985E-9C4DBDF086E4",
 					"type": "Mesh",
 					"type": "Mesh",
 					"name": "Ground",
 					"name": "Ground",
-					"geometry": "77B20ED1-2871-4B14-A652-8F823B2A817E",
-					"material": "7EDF7C08-6325-418A-BBAB-89341C694730",
-					"matrix": [1,0,0,0,0,0.0007960614748299122,-0.9999997019767761,0,0,0.9999997019767761,0.0007960614748299122,0,0,-10,0,1]
+					"matrix": [1,0,0,0,0,0.0007960238144733012,-0.9999997019767761,0,0,0.9999997019767761,0.0007960238144733012,0,0,-1,0,1],
+					"geometry": "713F75F5-5D04-4069-89CB-2035F5619AC3",
+					"material": "7EDF7C08-6325-418A-BBAB-89341C694730"
 				},
 				},
 				{
 				{
 					"uuid": "CE13E58A-4E8B-4F72-9E2E-7DE57C58F989",
 					"uuid": "CE13E58A-4E8B-4F72-9E2E-7DE57C58F989",
 					"type": "Mesh",
 					"type": "Mesh",
 					"name": "Ball",
 					"name": "Ball",
-					"geometry": "7ADE0D01-A56A-4D33-869A-6C360E096EF7",
-					"material": "B1CAF098-FE36-45E1-BEBE-8D6AC04821CC",
-					"matrix": [1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1]
+					"matrix": [1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1],
+					"geometry": "4537EA66-3CD6-43A1-97A9-EB59F3258BF9",
+					"material": "B1CAF098-FE36-45E1-BEBE-8D6AC04821CC"
 				},
 				},
 				{
 				{
 					"uuid": "2AAEA3AA-EC45-492B-B450-10473D1EC6C5",
 					"uuid": "2AAEA3AA-EC45-492B-B450-10473D1EC6C5",
 					"type": "Mesh",
 					"type": "Mesh",
 					"name": "Pad 1",
 					"name": "Pad 1",
-					"geometry": "E8C064B6-3454-4739-9E02-3B07B8E70B4C",
-					"material": "FBDBE66D-B613-4741-802D-5AE1DE07DE46",
-					"matrix": [1,0,0,0,0,1,0,0,0,0,1,0,-240,0,0,1]
+					"matrix": [1,0,0,0,0,1,0,0,0,0,1,0,-24,0,0,1],
+					"geometry": "3C546CA4-FF0F-4BA1-9406-0CD0D560A396",
+					"material": "FBDBE66D-B613-4741-802D-5AE1DE07DE46"
 				},
 				},
 				{
 				{
 					"uuid": "F1DD46A7-6584-4A37-BC76-852C3911077E",
 					"uuid": "F1DD46A7-6584-4A37-BC76-852C3911077E",
 					"type": "Mesh",
 					"type": "Mesh",
 					"name": "Pad 2",
 					"name": "Pad 2",
-					"geometry": "E8C064B6-3454-4739-9E02-3B07B8E70B4C",
-					"material": "FBDBE66D-B613-4741-802D-5AE1DE07DE46",
-					"matrix": [1,0,0,0,0,1,0,0,0,0,1,0,240,0,0,1]
+					"matrix": [1,0,0,0,0,1,0,0,0,0,1,0,24,0,0,1],
+					"geometry": "4628F4A7-D572-45C2-9A67-807D71FF19EC",
+					"material": "FBDBE66D-B613-4741-802D-5AE1DE07DE46"
 				},
 				},
 				{
 				{
 					"uuid": "C62AAE9F-9E51-46A5-BD2B-71BA804FC0B3",
 					"uuid": "C62AAE9F-9E51-46A5-BD2B-71BA804FC0B3",
 					"type": "DirectionalLight",
 					"type": "DirectionalLight",
 					"name": "DirectionalLight 3",
 					"name": "DirectionalLight 3",
+					"matrix": [1,0,0,0,0,1,0,0,0,0,1,0,10,20,15,1],
 					"color": 16777215,
 					"color": 16777215,
-					"intensity": 1,
-					"matrix": [1,0,0,0,0,1,0,0,0,0,1,0,100,200,150,1]
+					"intensity": 1
 				}]
 				}]
 		}
 		}
 	},
 	},
@@ -128,7 +148,7 @@
 		"31517222-A9A7-4EAF-B5F6-60751C0BABA3": [
 		"31517222-A9A7-4EAF-B5F6-60751C0BABA3": [
 			{
 			{
 				"name": "Game logic",
 				"name": "Game logic",
-				"source": "var ball = this.getObjectByName( 'Ball' );\n\nvar position = ball.position;\n\nvar velocity = new THREE.Vector3();\n\nvar direction = new THREE.Vector3();\ndirection.x = Math.random() - 0.5;\ndirection.z = Math.random() - 0.5;\ndirection.normalize();\n\nvar pad1 = this.getObjectByName( 'Pad 1' );\nvar pad2 = this.getObjectByName( 'Pad 2' );\n\nvar raycaster = new THREE.Raycaster();\nvar objects = [ pad1, pad2 ];\n\n//\n\nfunction mousemove( event ) {\n\n\tpad1.position.z = ( event.clientX / player.width ) * 300 - 150;\n\tpad2.position.z = - pad1.position.z;\n\n}\n\nfunction update( event ) {\n\t\n\tif ( position.x < -300 || position.x > 300 ) direction.x = - direction.x;\n\tif ( position.z < -200 || position.z > 200 ) direction.z = - direction.z;\n\t\n\tposition.x = Math.max( - 300, Math.min( 300, position.x ) );\n\tposition.z = Math.max( - 200, Math.min( 200, position.z ) );\n\t\n\traycaster.set( position, direction );\n\t\n\tvar intersections = raycaster.intersectObjects( objects );\n\t\n\tif ( intersections.length > 0 ) {\n\n\t\tvar intersection = intersections[ 0 ];\n\t\t\n\t\tif ( intersection.distance < 10 ) {\n\t\t\t\n\t\t\tdirection.reflect( intersection.face.normal );\n\t\t\t\n\t\t}\n\t\t\n\t}\n\n\tposition.add( velocity.copy( direction ).multiplyScalar( event.delta / 2 ) );\n\n}"
+				"source": "var ball = this.getObjectByName( 'Ball' );\n\nvar position = ball.position;\n\nvar velocity = new THREE.Vector3();\n\nvar direction = new THREE.Vector3();\ndirection.x = Math.random() - 0.5;\ndirection.z = Math.random() - 0.5;\ndirection.normalize();\n\nvar pad1 = this.getObjectByName( 'Pad 1' );\nvar pad2 = this.getObjectByName( 'Pad 2' );\n\nvar raycaster = new THREE.Raycaster();\nvar objects = [ pad1, pad2 ];\n\n//\n\nfunction mousemove( event ) {\n\n\tpad1.position.z = ( event.clientX / player.width ) * 30 - 15;\n\tpad2.position.z = - pad1.position.z;\n\n}\n\nfunction update( event ) {\n\t\n\tif ( position.x < -30 || position.x > 30 ) direction.x = - direction.x;\n\tif ( position.z < -20 || position.z > 20 ) direction.z = - direction.z;\n\t\n\tposition.x = Math.max( - 30, Math.min( 30, position.x ) );\n\tposition.z = Math.max( - 20, Math.min( 20, position.z ) );\n\t\n\traycaster.set( position, direction );\n\t\n\tvar intersections = raycaster.intersectObjects( objects );\n\t\n\tif ( intersections.length > 0 ) {\n\n\t\tvar intersection = intersections[ 0 ];\n\t\t\n\t\tif ( intersection.distance < 1 ) {\n\t\t\t\n\t\t\tdirection.reflect( intersection.face.normal );\n\t\t\t\n\t\t}\n\t\t\n\t}\n\n\tposition.add( velocity.copy( direction ).multiplyScalar( event.delta / 20 ) );\n\n}"
 			}]
 			}]
 	}
 	}
-}
+}

+ 5 - 9
editor/js/Sidebar.Object.js

@@ -224,7 +224,7 @@ Sidebar.Object = function ( editor ) {
 
 
 	container.add( objectAngleRow );
 	container.add( objectAngleRow );
 
 
-	// penumrba
+	// penumbra
 
 
 	var objectPenumbraRow = new UI.Row();
 	var objectPenumbraRow = new UI.Row();
 	var objectPenumbra = new UI.Number().setRange( 0, 1 ).onChange( update );
 	var objectPenumbra = new UI.Number().setRange( 0, 1 ).onChange( update );
@@ -462,20 +462,16 @@ Sidebar.Object = function ( editor ) {
 
 
 			}
 			}
 
 
-			if ( object.castShadow !== objectCastShadow.getValue() ) {
+			if ( object.castShadow !== undefined && object.castShadow !== objectCastShadow.getValue() ) {
 
 
 				editor.execute( new SetValueCommand( object, 'castShadow', objectCastShadow.getValue() ) );
 				editor.execute( new SetValueCommand( object, 'castShadow', objectCastShadow.getValue() ) );
 
 
 			}
 			}
 
 
-			if ( object.receiveShadow !== undefined ) {
+			if ( object.receiveShadow !== undefined && object.receiveShadow !== objectReceiveShadow.getValue() ) {
 
 
-				if ( object.receiveShadow !== objectReceiveShadow.getValue() ) {
-
-					editor.execute( new SetValueCommand( object, 'receiveShadow', objectReceiveShadow.getValue() ) );
-					object.material.needsUpdate = true;
-
-				}
+				editor.execute( new SetValueCommand( object, 'receiveShadow', objectReceiveShadow.getValue() ) );
+				object.material.needsUpdate = true;
 
 
 			}
 			}
 
 

+ 8 - 1
editor/js/libs/ui.three.js

@@ -118,7 +118,14 @@ UI.Texture.prototype.setValue = function ( texture ) {
 	} else {
 	} else {
 
 
 		name.value = '';
 		name.value = '';
-		context.clearRect( 0, 0, canvas.width, canvas.height );
+
+		if ( context !== null ) {
+
+			// Seems like context can be null if the canvas is not visible
+
+			context.clearRect( 0, 0, canvas.width, canvas.height );
+
+		}
 
 
 	}
 	}
 
 

+ 2 - 4
examples/canvas_ascii_effect.html

@@ -15,7 +15,7 @@
 	</head>
 	</head>
 	<body>
 	<body>
 
 
-		<script src="../build/three.min.js"></script>
+		<script src="../build/three.js"></script>
 
 
 		<script src="js/controls/TrackballControls.js"></script>
 		<script src="js/controls/TrackballControls.js"></script>
 		<script src="js/effects/AsciiEffect.js"></script>
 		<script src="js/effects/AsciiEffect.js"></script>
@@ -90,9 +90,7 @@
 				container.appendChild( effect.domElement );
 				container.appendChild( effect.domElement );
 
 
 				stats = new Stats();
 				stats = new Stats();
-				stats.domElement.style.position = 'absolute';
-				stats.domElement.style.top = '0px';
-				container.appendChild( stats.domElement );
+				container.appendChild( stats.dom );
 
 
 				//
 				//
 
 

+ 2 - 4
examples/canvas_camera_orthographic.html

@@ -15,7 +15,7 @@
 	</head>
 	</head>
 	<body>
 	<body>
 
 
-		<script src="../build/three.min.js"></script>
+		<script src="../build/three.js"></script>
 
 
 		<script src="js/renderers/Projector.js"></script>
 		<script src="js/renderers/Projector.js"></script>
 		<script src="js/renderers/CanvasRenderer.js"></script>
 		<script src="js/renderers/CanvasRenderer.js"></script>
@@ -116,9 +116,7 @@
 				container.appendChild( renderer.domElement );
 				container.appendChild( renderer.domElement );
 
 
 				stats = new Stats();
 				stats = new Stats();
-				stats.domElement.style.position = 'absolute';
-				stats.domElement.style.top = '0px';
-				container.appendChild( stats.domElement );
+				container.appendChild( stats.dom );
 
 
 				//
 				//
 
 

+ 2 - 4
examples/canvas_camera_orthographic2.html

@@ -20,7 +20,7 @@
 	</head>
 	</head>
 	<body>
 	<body>
 
 
-		<script src="../build/three.min.js"></script>
+		<script src="../build/three.js"></script>
 
 
 		<script src="js/cameras/CombinedCamera.js"></script>
 		<script src="js/cameras/CombinedCamera.js"></script>
 
 
@@ -185,9 +185,7 @@
 				container.appendChild( renderer.domElement );
 				container.appendChild( renderer.domElement );
 
 
 				stats = new Stats();
 				stats = new Stats();
-				stats.domElement.style.position = 'absolute';
-				stats.domElement.style.top = '0px';
-				container.appendChild( stats.domElement );
+				container.appendChild( stats.dom );
 
 
 				window.addEventListener( 'resize', onWindowResize, false );
 				window.addEventListener( 'resize', onWindowResize, false );
 
 

+ 2 - 6
examples/canvas_geometry_birds.html

@@ -28,7 +28,7 @@
 		<div id="container"></div>
 		<div id="container"></div>
 		<div id="info"><a href="http://threejs.org" target="_blank">three.js</a> - birds demo</div>
 		<div id="info"><a href="http://threejs.org" target="_blank">three.js</a> - birds demo</div>
 
 
-		<script src="../build/three.min.js"></script>
+		<script src="../build/three.js"></script>
 
 
 		<script src="js/renderers/Projector.js"></script>
 		<script src="js/renderers/Projector.js"></script>
 		<script src="js/renderers/CanvasRenderer.js"></script>
 		<script src="js/renderers/CanvasRenderer.js"></script>
@@ -377,11 +377,7 @@
 				document.body.appendChild( renderer.domElement );
 				document.body.appendChild( renderer.domElement );
 
 
 				stats = new Stats();
 				stats = new Stats();
-				stats.domElement.style.position = 'absolute';
-				stats.domElement.style.left = '0px';
-				stats.domElement.style.top = '0px';
-
-				document.getElementById( 'container' ).appendChild(stats.domElement);
+				document.getElementById( 'container' ).appendChild(stats.dom);
 
 
 				//
 				//
 
 

+ 2 - 4
examples/canvas_geometry_cube.html

@@ -15,7 +15,7 @@
 	</head>
 	</head>
 	<body>
 	<body>
 
 
-		<script src="../build/three.min.js"></script>
+		<script src="../build/three.js"></script>
 
 
 		<script src="js/renderers/Projector.js"></script>
 		<script src="js/renderers/Projector.js"></script>
 		<script src="js/renderers/CanvasRenderer.js"></script>
 		<script src="js/renderers/CanvasRenderer.js"></script>
@@ -96,9 +96,7 @@
 				container.appendChild( renderer.domElement );
 				container.appendChild( renderer.domElement );
 
 
 				stats = new Stats();
 				stats = new Stats();
-				stats.domElement.style.position = 'absolute';
-				stats.domElement.style.top = '0px';
-				container.appendChild( stats.domElement );
+				container.appendChild( stats.dom );
 
 
 				document.addEventListener( 'mousedown', onDocumentMouseDown, false );
 				document.addEventListener( 'mousedown', onDocumentMouseDown, false );
 				document.addEventListener( 'touchstart', onDocumentTouchStart, false );
 				document.addEventListener( 'touchstart', onDocumentTouchStart, false );

+ 2 - 4
examples/canvas_geometry_earth.html

@@ -34,7 +34,7 @@
 		<div id="container"></div>
 		<div id="container"></div>
 		<div id="info"><a href="http://threejs.org" target="_blank">three.js</a> - earth demo</div>
 		<div id="info"><a href="http://threejs.org" target="_blank">three.js</a> - earth demo</div>
 
 
-		<script src="../build/three.min.js"></script>
+		<script src="../build/three.js"></script>
 
 
 		<script src="js/renderers/Projector.js"></script>
 		<script src="js/renderers/Projector.js"></script>
 		<script src="js/renderers/CanvasRenderer.js"></script>
 		<script src="js/renderers/CanvasRenderer.js"></script>
@@ -117,9 +117,7 @@
 				container.appendChild( renderer.domElement );
 				container.appendChild( renderer.domElement );
 
 
 				stats = new Stats();
 				stats = new Stats();
-				stats.domElement.style.position = 'absolute';
-				stats.domElement.style.top = '0px';
-				container.appendChild( stats.domElement );
+				container.appendChild( stats.dom );
 
 
 				document.addEventListener( 'mousemove', onDocumentMouseMove, false );
 				document.addEventListener( 'mousemove', onDocumentMouseMove, false );
 
 

+ 2 - 5
examples/canvas_geometry_hierarchy.html

@@ -16,7 +16,7 @@
 	</head>
 	</head>
 	<body>
 	<body>
 
 
-		<script src="../build/three.min.js"></script>
+		<script src="../build/three.js"></script>
 
 
 		<script src="js/renderers/Projector.js"></script>
 		<script src="js/renderers/Projector.js"></script>
 		<script src="js/renderers/CanvasRenderer.js"></script>
 		<script src="js/renderers/CanvasRenderer.js"></script>
@@ -79,10 +79,7 @@
 				container.appendChild( renderer.domElement );
 				container.appendChild( renderer.domElement );
 
 
 				stats = new Stats();
 				stats = new Stats();
-				stats.domElement.style.position = 'absolute';
-				stats.domElement.style.top = '0px';
-				stats.domElement.style.zIndex = 100;
-				container.appendChild( stats.domElement );
+				container.appendChild( stats.dom );
 
 
 				//
 				//
 
 

+ 2 - 4
examples/canvas_geometry_nurbs.html

@@ -25,7 +25,7 @@
 
 
 		<div id="info"><a href="http://threejs.org" target="_blank">three.js</a> - NURBS curve example</div>
 		<div id="info"><a href="http://threejs.org" target="_blank">three.js</a> - NURBS curve example</div>
 
 
-		<script src="../build/three.min.js"></script>
+		<script src="../build/three.js"></script>
 
 
 		<script src="js/curves/NURBSCurve.js"></script>
 		<script src="js/curves/NURBSCurve.js"></script>
 		<script src="js/curves/NURBSUtils.js"></script>
 		<script src="js/curves/NURBSUtils.js"></script>
@@ -133,9 +133,7 @@
 				container.appendChild( renderer.domElement );
 				container.appendChild( renderer.domElement );
 
 
 				stats = new Stats();
 				stats = new Stats();
-				stats.domElement.style.position = 'absolute';
-				stats.domElement.style.top = '0px';
-				container.appendChild( stats.domElement );
+				container.appendChild( stats.dom );
 
 
 				document.addEventListener( 'mousedown', onDocumentMouseDown, false );
 				document.addEventListener( 'mousedown', onDocumentMouseDown, false );
 				document.addEventListener( 'touchstart', onDocumentTouchStart, false );
 				document.addEventListener( 'touchstart', onDocumentTouchStart, false );

+ 1 - 1
examples/canvas_geometry_panorama.html

@@ -32,7 +32,7 @@
 		<div id="container"></div>
 		<div id="container"></div>
 		<div id="info"><a href="http://threejs.org" target="_blank">three.js</a> - panorama demo. cubemap by <a href="http://www.zfight.com/" target="_blank">Jochum Skoglund</a>.</div>
 		<div id="info"><a href="http://threejs.org" target="_blank">three.js</a> - panorama demo. cubemap by <a href="http://www.zfight.com/" target="_blank">Jochum Skoglund</a>.</div>
 
 
-		<script src="../build/three.min.js"></script>
+		<script src="../build/three.js"></script>
 
 
 		<script src="js/renderers/Projector.js"></script>
 		<script src="js/renderers/Projector.js"></script>
 		<script src="js/renderers/CanvasRenderer.js"></script>
 		<script src="js/renderers/CanvasRenderer.js"></script>

+ 1 - 1
examples/canvas_geometry_panorama_fisheye.html

@@ -32,7 +32,7 @@
 		<div id="container"></div>
 		<div id="container"></div>
 		<div id="info"><a href="http://threejs.org" target="_blank">three.js</a> - panorama fisheye demo. cubemap by <a href="http://www.zfight.com/" target="_blank">Jochum Skoglund</a>. (mousewheel: change fov)</div>
 		<div id="info"><a href="http://threejs.org" target="_blank">three.js</a> - panorama fisheye demo. cubemap by <a href="http://www.zfight.com/" target="_blank">Jochum Skoglund</a>. (mousewheel: change fov)</div>
 
 
-		<script src="../build/three.min.js"></script>
+		<script src="../build/three.js"></script>
 
 
 		<script src="js/renderers/Projector.js"></script>
 		<script src="js/renderers/Projector.js"></script>
 		<script src="js/renderers/CanvasRenderer.js"></script>
 		<script src="js/renderers/CanvasRenderer.js"></script>

+ 2 - 4
examples/canvas_geometry_shapes.html

@@ -25,7 +25,7 @@
 
 
 		<div id="info"><a href="http://threejs.org" target="_blank">three.js</a> - shape geometry</div>
 		<div id="info"><a href="http://threejs.org" target="_blank">three.js</a> - shape geometry</div>
 
 
-		<script src="../build/three.min.js"></script>
+		<script src="../build/three.js"></script>
 
 
 		<script src="js/renderers/Projector.js"></script>
 		<script src="js/renderers/Projector.js"></script>
 		<script src="js/renderers/CanvasRenderer.js"></script>
 		<script src="js/renderers/CanvasRenderer.js"></script>
@@ -298,9 +298,7 @@
 				container.appendChild( renderer.domElement );
 				container.appendChild( renderer.domElement );
 
 
 				stats = new Stats();
 				stats = new Stats();
-				stats.domElement.style.position = 'absolute';
-				stats.domElement.style.top = '0px';
-				container.appendChild( stats.domElement );
+				container.appendChild( stats.dom );
 
 
 				document.addEventListener( 'mousedown', onDocumentMouseDown, false );
 				document.addEventListener( 'mousedown', onDocumentMouseDown, false );
 				document.addEventListener( 'touchstart', onDocumentTouchStart, false );
 				document.addEventListener( 'touchstart', onDocumentTouchStart, false );

+ 2 - 4
examples/canvas_geometry_terrain.html

@@ -34,7 +34,7 @@
 		<div id="container"><br /><br /><br /><br /><br />Generating...</div>
 		<div id="container"><br /><br /><br /><br /><br />Generating...</div>
 		<div id="info"><a href="http://threejs.org" target="_blank">three.js</a> - terrain demo. <a href="canvas_geometry_terrain.html">generate another</a></div>
 		<div id="info"><a href="http://threejs.org" target="_blank">three.js</a> - terrain demo. <a href="canvas_geometry_terrain.html">generate another</a></div>
 
 
-		<script src="../build/three.min.js"></script>
+		<script src="../build/three.js"></script>
 
 
 		<script src="js/renderers/Projector.js"></script>
 		<script src="js/renderers/Projector.js"></script>
 		<script src="js/renderers/CanvasRenderer.js"></script>
 		<script src="js/renderers/CanvasRenderer.js"></script>
@@ -97,9 +97,7 @@
 				container.appendChild( renderer.domElement );
 				container.appendChild( renderer.domElement );
 
 
 				stats = new Stats();
 				stats = new Stats();
-				stats.domElement.style.position = 'absolute';
-				stats.domElement.style.top = '0px';
-				container.appendChild( stats.domElement );
+				container.appendChild( stats.dom );
 
 
 				document.addEventListener( 'mousemove', onDocumentMouseMove, false );
 				document.addEventListener( 'mousemove', onDocumentMouseMove, false );
 
 

+ 2 - 4
examples/canvas_geometry_text.html

@@ -16,7 +16,7 @@
 	<body>
 	<body>
 
 
 
 
-		<script src="../build/three.min.js"></script>
+		<script src="../build/three.js"></script>
 
 
 		<script src="js/renderers/Projector.js"></script>
 		<script src="js/renderers/Projector.js"></script>
 		<script src="js/renderers/CanvasRenderer.js"></script>
 		<script src="js/renderers/CanvasRenderer.js"></script>
@@ -118,9 +118,7 @@
 				container.appendChild( renderer.domElement );
 				container.appendChild( renderer.domElement );
 
 
 				stats = new Stats();
 				stats = new Stats();
-				stats.domElement.style.position = 'absolute';
-				stats.domElement.style.top = '0px';
-				container.appendChild( stats.domElement );
+				container.appendChild( stats.dom );
 
 
 				document.addEventListener( 'mousedown', onDocumentMouseDown, false );
 				document.addEventListener( 'mousedown', onDocumentMouseDown, false );
 				document.addEventListener( 'touchstart', onDocumentTouchStart, false );
 				document.addEventListener( 'touchstart', onDocumentTouchStart, false );

+ 2 - 4
examples/canvas_interactive_cubes.html

@@ -15,7 +15,7 @@
 	</head>
 	</head>
 	<body>
 	<body>
 
 
-		<script src="../build/three.min.js"></script>
+		<script src="../build/three.js"></script>
 
 
 		<script src="js/renderers/Projector.js"></script>
 		<script src="js/renderers/Projector.js"></script>
 		<script src="js/renderers/CanvasRenderer.js"></script>
 		<script src="js/renderers/CanvasRenderer.js"></script>
@@ -103,9 +103,7 @@
 				container.appendChild( renderer.domElement );
 				container.appendChild( renderer.domElement );
 
 
 				stats = new Stats();
 				stats = new Stats();
-				stats.domElement.style.position = 'absolute';
-				stats.domElement.style.top = '0px';
-				container.appendChild( stats.domElement );
+				container.appendChild( stats.dom );
 
 
 				document.addEventListener( 'mousedown', onDocumentMouseDown, false );
 				document.addEventListener( 'mousedown', onDocumentMouseDown, false );
 				document.addEventListener( 'touchstart', onDocumentTouchStart, false );
 				document.addEventListener( 'touchstart', onDocumentTouchStart, false );

+ 2 - 4
examples/canvas_interactive_cubes_tween.html

@@ -15,7 +15,7 @@
 	</head>
 	</head>
 	<body>
 	<body>
 
 
-		<script src="../build/three.min.js"></script>
+		<script src="../build/three.js"></script>
 
 
 		<script src="js/renderers/Projector.js"></script>
 		<script src="js/renderers/Projector.js"></script>
 		<script src="js/renderers/CanvasRenderer.js"></script>
 		<script src="js/renderers/CanvasRenderer.js"></script>
@@ -83,9 +83,7 @@
 				container.appendChild(renderer.domElement);
 				container.appendChild(renderer.domElement);
 
 
 				stats = new Stats();
 				stats = new Stats();
-				stats.domElement.style.position = 'absolute';
-				stats.domElement.style.top = '0px';
-				container.appendChild( stats.domElement );
+				container.appendChild( stats.dom );
 
 
 				document.addEventListener( 'mousedown', onDocumentMouseDown, false );
 				document.addEventListener( 'mousedown', onDocumentMouseDown, false );
 				document.addEventListener( 'touchstart', onDocumentTouchStart, false );
 				document.addEventListener( 'touchstart', onDocumentTouchStart, false );

+ 2 - 4
examples/canvas_interactive_particles.html

@@ -15,7 +15,7 @@
 	</head>
 	</head>
 	<body>
 	<body>
 
 
-		<script src="../build/three.min.js"></script>
+		<script src="../build/three.js"></script>
 
 
 		<script src="js/renderers/Projector.js"></script>
 		<script src="js/renderers/Projector.js"></script>
 		<script src="js/renderers/CanvasRenderer.js"></script>
 		<script src="js/renderers/CanvasRenderer.js"></script>
@@ -95,9 +95,7 @@
 				container.appendChild( renderer.domElement );
 				container.appendChild( renderer.domElement );
 
 
 				stats = new Stats();
 				stats = new Stats();
-				stats.domElement.style.position = 'absolute';
-				stats.domElement.style.top = '0px';
-				container.appendChild( stats.domElement );
+				container.appendChild( stats.dom );
 
 
 				document.addEventListener( 'mousemove', onDocumentMouseMove, false );
 				document.addEventListener( 'mousemove', onDocumentMouseMove, false );
 
 

+ 1 - 1
examples/canvas_interactive_voxelpainter.html

@@ -15,7 +15,7 @@
 	</head>
 	</head>
 	<body>
 	<body>
 
 
-		<script src="../build/three.min.js"></script>
+		<script src="../build/three.js"></script>
 
 
 		<script src="js/renderers/Projector.js"></script>
 		<script src="js/renderers/Projector.js"></script>
 		<script src="js/renderers/CanvasRenderer.js"></script>
 		<script src="js/renderers/CanvasRenderer.js"></script>

+ 1 - 1
examples/canvas_lights_pointlights.html

@@ -39,7 +39,7 @@
 			Walt Disney head by <a href="http://davidoreilly.com/post/18087489343/disneyhead" target="_blank">David OReilly</a>
 			Walt Disney head by <a href="http://davidoreilly.com/post/18087489343/disneyhead" target="_blank">David OReilly</a>
 		</div>
 		</div>
 
 
-		<script src="../build/three.min.js"></script>
+		<script src="../build/three.js"></script>
 
 
 		<script src="js/renderers/Projector.js"></script>
 		<script src="js/renderers/Projector.js"></script>
 		<script src="js/renderers/CanvasRenderer.js"></script>
 		<script src="js/renderers/CanvasRenderer.js"></script>

+ 1 - 1
examples/canvas_lines.html

@@ -18,7 +18,7 @@
 	</head>
 	</head>
 	<body>
 	<body>
 
 
-		<script src="../build/three.min.js"></script>
+		<script src="../build/three.js"></script>
 
 
 		<script src="js/renderers/Projector.js"></script>
 		<script src="js/renderers/Projector.js"></script>
 		<script src="js/renderers/CanvasRenderer.js"></script>
 		<script src="js/renderers/CanvasRenderer.js"></script>

+ 2 - 4
examples/canvas_lines_colors.html

@@ -44,7 +44,7 @@
 			[<a href="http://en.wikipedia.org/wiki/Hilbert_curve">Hilbert curve</a> thanks to <a href="http://www.openprocessing.org/visuals/?visualID=15599">Thomas Diewald</a>]
 			[<a href="http://en.wikipedia.org/wiki/Hilbert_curve">Hilbert curve</a> thanks to <a href="http://www.openprocessing.org/visuals/?visualID=15599">Thomas Diewald</a>]
 		</div>
 		</div>
 
 
-		<script src="../build/three.min.js"></script>
+		<script src="../build/three.js"></script>
 
 
 		<script src="js/renderers/Projector.js"></script>
 		<script src="js/renderers/Projector.js"></script>
 		<script src="js/renderers/CanvasRenderer.js"></script>
 		<script src="js/renderers/CanvasRenderer.js"></script>
@@ -116,9 +116,7 @@
 				//
 				//
 
 
 				stats = new Stats();
 				stats = new Stats();
-				stats.domElement.style.position = 'absolute';
-				stats.domElement.style.top = '0px';
-				//container.appendChild( stats.domElement );
+				//container.appendChild( stats.dom );
 
 
 				//
 				//
 
 

+ 2 - 4
examples/canvas_lines_colors_2d.html

@@ -44,7 +44,7 @@
 			[<a href="http://en.wikipedia.org/wiki/Hilbert_curve">Hilbert curve</a> thanks to <a href="http://www.openprocessing.org/visuals/?visualID=15599">Thomas Diewald</a>]
 			[<a href="http://en.wikipedia.org/wiki/Hilbert_curve">Hilbert curve</a> thanks to <a href="http://www.openprocessing.org/visuals/?visualID=15599">Thomas Diewald</a>]
 		</div>
 		</div>
 
 
-		<script src="../build/three.min.js"></script>
+		<script src="../build/three.js"></script>
 
 
 		<script src="js/renderers/Projector.js"></script>
 		<script src="js/renderers/Projector.js"></script>
 		<script src="js/renderers/CanvasRenderer.js"></script>
 		<script src="js/renderers/CanvasRenderer.js"></script>
@@ -116,9 +116,7 @@
 				//
 				//
 
 
 				stats = new Stats();
 				stats = new Stats();
-				stats.domElement.style.position = 'absolute';
-				stats.domElement.style.top = '0px';
-				//container.appendChild( stats.domElement );
+				//container.appendChild( stats.dom );
 
 
 				//
 				//
 
 

+ 2 - 4
examples/canvas_lines_dashed.html

@@ -31,7 +31,7 @@
 		<div id="info"><a href="http://threejs.org" target="_blank">three.js</a> - dashed lines example</div>
 		<div id="info"><a href="http://threejs.org" target="_blank">three.js</a> - dashed lines example</div>
 		<div id="container"></div>
 		<div id="container"></div>
 
 
-		<script src="../build/three.min.js"></script>
+		<script src="../build/three.js"></script>
 
 
 		<script src="js/renderers/Projector.js"></script>
 		<script src="js/renderers/Projector.js"></script>
 		<script src="js/renderers/CanvasRenderer.js"></script>
 		<script src="js/renderers/CanvasRenderer.js"></script>
@@ -107,9 +107,7 @@
 				container.appendChild( renderer.domElement );
 				container.appendChild( renderer.domElement );
 
 
 				stats = new Stats();
 				stats = new Stats();
-				stats.domElement.style.position = 'absolute';
-				stats.domElement.style.top = '0px';
-				container.appendChild( stats.domElement );
+				container.appendChild( stats.dom );
 
 
 				//
 				//
 
 

+ 1 - 1
examples/canvas_lines_sphere.html

@@ -18,7 +18,7 @@
 	</head>
 	</head>
 	<body>
 	<body>
 
 
-		<script src="../build/three.min.js"></script>
+		<script src="../build/three.js"></script>
 
 
 		<script src="js/renderers/Projector.js"></script>
 		<script src="js/renderers/Projector.js"></script>
 		<script src="js/renderers/CanvasRenderer.js"></script>
 		<script src="js/renderers/CanvasRenderer.js"></script>

+ 2 - 4
examples/canvas_materials.html

@@ -15,7 +15,7 @@
 	</head>
 	</head>
 	<body>
 	<body>
 
 
-		<script src="../build/three.min.js"></script>
+		<script src="../build/three.js"></script>
 
 
 		<script src="js/renderers/Projector.js"></script>
 		<script src="js/renderers/Projector.js"></script>
 		<script src="js/renderers/CanvasRenderer.js"></script>
 		<script src="js/renderers/CanvasRenderer.js"></script>
@@ -160,9 +160,7 @@
 				debugContext.strokeStyle = '#000000';
 				debugContext.strokeStyle = '#000000';
 
 
 				stats = new Stats();
 				stats = new Stats();
-				stats.domElement.style.position = 'absolute';
-				stats.domElement.style.top = '0px';
-				container.appendChild(stats.domElement);
+				container.appendChild(stats.dom);
 
 
 				//
 				//
 
 

+ 1 - 1
examples/canvas_materials_normal.html

@@ -39,7 +39,7 @@
 			Walt Disney head by <a href="http://davidoreilly.com/post/18087489343/disneyhead" target="_blank">David OReilly</a>
 			Walt Disney head by <a href="http://davidoreilly.com/post/18087489343/disneyhead" target="_blank">David OReilly</a>
 		</div>
 		</div>
 
 
-		<script src="../build/three.min.js"></script>
+		<script src="../build/three.js"></script>
 
 
 		<script src="js/renderers/Projector.js"></script>
 		<script src="js/renderers/Projector.js"></script>
 		<script src="js/renderers/CanvasRenderer.js"></script>
 		<script src="js/renderers/CanvasRenderer.js"></script>

+ 1 - 1
examples/canvas_materials_reflection.html

@@ -38,7 +38,7 @@
 			Walt Disney head by <a href="http://davidoreilly.com/post/18087489343/disneyhead" target="_blank">David OReilly</a>. Reflection texture by <a href="http://kewlers.scene.org/" target="_blank">Kewlers</a>.
 			Walt Disney head by <a href="http://davidoreilly.com/post/18087489343/disneyhead" target="_blank">David OReilly</a>. Reflection texture by <a href="http://kewlers.scene.org/" target="_blank">Kewlers</a>.
 		</div>
 		</div>
 
 
-		<script src="../build/three.min.js"></script>
+		<script src="../build/three.js"></script>
 
 
 		<script src="js/renderers/Projector.js"></script>
 		<script src="js/renderers/Projector.js"></script>
 		<script src="js/renderers/CanvasRenderer.js"></script>
 		<script src="js/renderers/CanvasRenderer.js"></script>

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