提交 9a1bd006 编写于 作者: M Mr.doob

Refactored documentation system. No more XMLHttpRequest.

Now you can browse the docs from the local system too. 
上级 b99c3b9e
[page:Object3D] →
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<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>
<h1>[name]</h1>
<div class="desc">Abstract base class for cameras.</div>
<div class="desc">Abstract base class for cameras.</div>
<h2>Constructor</h2>
<h2>Constructor</h2>
<h3>[name]()</h3>
<h3>[name]()</h3>
<h2>Properties</h2>
<h2>Properties</h2>
<h3>.[page:Matrix4 matrixWorldInverse]</h3>
<h3>.[page:Matrix4 matrixWorldInverse]</h3>
<h3>.[page:Matrix4 projectionMatrix]</h3>
<h3>.[page:Matrix4 projectionMatrix]</h3>
<h3>.[page:Matrix4 projectionMatrixInverse]</h3>
<h3>.[page:Matrix4 projectionMatrixInverse]</h3>
<h2>Methods</h2>
<h2>Methods</h2>
<h3>.lookAt( [page:Vector3 vector] )</h3>
<div>
vector — point to look at<br />
</div>
<h3>.lookAt( [page:Vector3 vector] )</h3>
<div>
vector — point to look at<br />
</div>
<h2>Source</h2>
<h2>Source</h2>
[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
\ No newline at end of file
[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
</body>
</html>
[page:Object3D] &rarr; [page:Camera] &rarr;
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<script src="../../list.js"></script>
<script src="../../page.js"></script>
<link type="text/css" rel="stylesheet" href="../../page.css" />
</head>
<body>
[page:Object3D] &rarr; [page:Camera] &rarr;
<h1>[name]</h1>
<h1>[name]</h1>
<div class="desc">Camera with orthographic projection</div>
<div class="desc">Camera with orthographic projection</div>
<h2>Example</h2>
<h2>Example</h2>
<code>var camera = new THREE.OrthographicCamera( width / - 2, width / 2, height / 2, height / - 2, 1, 1000 );
scene.add( camera );
</code>
<code>var camera = new THREE.OrthographicCamera( width / - 2, width / 2, height / 2, height / - 2, 1, 1000 );
scene.add( camera );</code>
<h2>Constructor</h2>
<h2>Constructor</h2>
<h3>[name]( [page:Float left], [page:Float right], [page:Float top], [page:Float bottom], [page:Float near], [page:Float far] )</h3>
<div>
left — Camera frustum left plane.<br />
right — Camera frustum right plane.<br />
top — Camera frustum top plane.<br />
bottom — Camera frustum bottom plane.<br />
near — Camera frustum near plane.<br />
far — Camera frustum far plane.
</div>
<h3>[name]( [page:Float left], [page:Float right], [page:Float top], [page:Float bottom], [page:Float near], [page:Float far] )</h3>
<div>
left — Camera frustum left plane.<br />
right — Camera frustum right plane.<br />
top — Camera frustum top plane.<br />
bottom — Camera frustum bottom plane.<br />
near — Camera frustum near plane.<br />
far — Camera frustum far plane.
</div>
<h2>Properties</h2>
<h2>Properties</h2>
<h3>.[page:Float left]</h3>
<div>Camera frustum left plane.</div>
<h3>.[page:Float left]</h3>
<div>Camera frustum left plane.</div>
<h3>.[page:Float right]</h3>
<div>Camera frustum right plane.</div>
<h3>.[page:Float right]</h3>
<div>Camera frustum right plane.</div>
<h3>.[page:Float top]</h3>
<div>Camera frustum top plane.</div>
<h3>.[page:Float top]</h3>
<div>Camera frustum top plane.</div>
<h3>.[page:Float bottom]</h3>
<div>Camera frustum bottom plane.</div>
<h3>.[page:Float bottom]</h3>
<div>Camera frustum bottom plane.</div>
<h3>.[page:Float near]</h3>
<div>Camera frustum near plane.</div>
<h3>.[page:Float near]</h3>
<div>Camera frustum near plane.</div>
<h3>.[page:Float far]</h3>
<div>Camera frustum far plane.</div>
<h3>.[page:Float far]</h3>
<div>Camera frustum far plane.</div>
<h2>Methods</h2>
<h2>Methods</h2>
<h3>.updateProjectionMatrix()</h3>
<div>
Updates the camera projection matrix. Must be called after change of parameters.
</div>
<h3>.updateProjectionMatrix()</h3>
<div>
Updates the camera projection matrix. Must be called after change of parameters.
</div>
<h2>Source</h2>
<h2>Source</h2>
[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
\ No newline at end of file
[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
</body>
</html>
[page:Object3D] &rarr; [page:Camera] &rarr;
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<script src="../../list.js"></script>
<script src="../../page.js"></script>
<link type="text/css" rel="stylesheet" href="../../page.css" />
</head>
<body>
[page:Object3D] &rarr; [page:Camera] &rarr;
<h1>[name]</h1>
<h1>[name]</h1>
<div class="desc">Camera with perspective projection.</div>
<div class="desc">Camera with perspective projection.</div>
<h2>Example</h2>
<h2>Example</h2>
<code>var camera = new THREE.PerspectiveCamera( 45, width / height, 1, 1000 );
scene.add( camera );
</code>
<code>var camera = new THREE.PerspectiveCamera( 45, width / height, 1, 1000 );
scene.add( camera );</code>
<h2>Constructor</h2>
<h2>Constructor</h2>
<h3>[name]( [page:Float fov], [page:Float aspect], [page:Float near], [page:Float far] )</h3>
<div>
fov — Camera frustum vertical field of view.<br />
aspect — Camera frustum aspect ratio.<br />
near — Camera frustum near plane.<br />
far — Camera frustum far plane.
</div>
<h3>[name]( [page:Float fov], [page:Float aspect], [page:Float near], [page:Float far] )</h3>
<div>
fov — Camera frustum vertical field of view.<br />
aspect — Camera frustum aspect ratio.<br />
near — Camera frustum near plane.<br />
far — Camera frustum far plane.
</div>
<h2>Properties</h2>
<h2>Properties</h2>
<h3>.[page:Float fov]</h3>
<div>Camera frustum vertical field of view.</div>
<h3>.[page:Float fov]</h3>
<div>Camera frustum vertical field of view.</div>
<h3>.[page:Float aspect]</h3>
<div>Camera frustum aspect ratio.</div>
<h3>.[page:Float aspect]</h3>
<div>Camera frustum aspect ratio.</div>
<h3>.[page:Float near]</h3>
<div>Camera frustum near plane.</div>
<h3>.[page:Float near]</h3>
<div>Camera frustum near plane.</div>
<h3>.[page:Float far]</h3>
<div>Camera frustum far plane.</div>
<h3>.[page:Float far]</h3>
<div>Camera frustum far plane.</div>
<h2>Methods</h2>
<h2>Methods</h2>
<h3>.setLens( [page:Float focalLength], [page:Float frameSize] )</h3>
<div>
focalLength — focal length<br />
frameSize — frame size
</div>
<h3>.setLens( [page:Float focalLength], [page:Float frameSize] )</h3>
<div>
focalLength — focal length<br />
frameSize — frame size
</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]
</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]
</div>
<h3>.setViewOffset( [page:Float fullWidth], [page:Float fullHeight], [page:Float x], [page:Float y], [page:Float width], [page:Float height] )</h3>
<div>
fullWidth — full width of multiview setup<br />
fullHeight — full height of multiview setup<br />
x — horizontal offset of subcamera<br />
y — vertical offset of subcamera<br />
width — width of subcamera<br />
height — height of subcamera
</div>
<h3>.setViewOffset( [page:Float fullWidth], [page:Float fullHeight], [page:Float x], [page:Float y], [page:Float width], [page:Float height] )</h3>
<div>
fullWidth — full width of multiview setup<br />
fullHeight — full height of multiview setup<br />
x — horizontal offset of subcamera<br />
y — vertical offset of subcamera<br />
width — width of subcamera<br />
height — height of subcamera
</div>
<div>
Sets an offset in a larger frustum. This is useful for multi-window or multi-monitor/multi-machine setups.
</div>
<div>
Sets an offset in a larger frustum. This is useful for multi-window or multi-monitor/multi-machine setups.
</div>
<div>
For example, if you have 3x2 monitors and each monitor is 1920x1080 and the monitors are in grid like this:<br />
<div>
For example, if you have 3x2 monitors and each monitor is 1920x1080 and the monitors are in grid like this:<br />
<pre>+---+---+---+
<pre>+---+---+---+
| A | B | C |
+---+---+---+
| D | E | F |
+---+---+---+
</pre>
+---+---+---+</pre>
then for each monitor you would call it like this:<br />
then for each monitor you would call it like this:<br />
<code>var w = 1920;
<code>var w = 1920;
var h = 1080;
var fullWidth = w * 3;
var fullHeight = h * 2;
......@@ -96,15 +103,17 @@ camera.setViewOffset( fullWidth, fullHeight, w * 1, h * 1, w, h );
camera.setViewOffset( fullWidth, fullHeight, w * 2, h * 1, w, h );
</code>
Note there is no reason monitors have to be the same size or in a grid.
</div>
Note there is no reason monitors have to be the same size or in a grid.
</div>
<h3>.updateProjectionMatrix()</h3>
<div>
Updates the camera projection matrix. Must be called after change of parameters.
</div>
<h3>.updateProjectionMatrix()</h3>
<div>
Updates the camera projection matrix. Must be called after change of parameters.
</div>
<h2>Source</h2>
<h2>Source</h2>
[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
\ No newline at end of file
[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
</body>
</html>
<h1>[name]</h1>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<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">Object for keeping track of time.</div>
<div class="desc">Object for keeping track of time.</div>
<h2>Constructor</h2>
<h2>Constructor</h2>
<h3>[name]( [page:Boolean autoStart] )</h3>
<div>
autoStart — Automatically start the clock.
</div>
<h3>[name]( [page:Boolean autoStart] )</h3>
<div>
autoStart — Automatically start the clock.
</div>
<h2>Properties</h2>
<h2>Properties</h2>
<h3>.[page:Boolean autoStart]</h3>
<h3>.[page:Boolean autoStart]</h3>
<h3>.[page:Float startTime]</h3>
<h3>.[page:Float startTime]</h3>
<h3>.[page:Float oldTime]</h3>
<h3>.[page:Float oldTime]</h3>
<h3>.[page:Float elapsedTime]</h3>
<h3>.[page:Float elapsedTime]</h3>
<h3>.[page:Boolean running]</h3>
<h3>.[page:Boolean running]</h3>
<h2>Methods</h2>
<h2>Methods</h2>
<h3>.start()</h3>
<div>
Start clock.
</div>
<h3>.start()</h3>
<div>
Start clock.
</div>
<h3>.stop()</h3>
<div>
Stop clock.
</div>
<h3>.stop()</h3>
<div>
Stop clock.
</div>
<h3>.getElapsedTime() [page:Float]</h3>
<div>
Get milliseconds passed since the clock started.
</div>
<h3>.getElapsedTime() [page:Float]</h3>
<div>
Get milliseconds passed since the clock started.
</div>
<h3>.getDelta() [page:Float]</h3>
<div>
Get the milliseconds passed since the last call to this method.
</div>
<h3>.getDelta() [page:Float]</h3>
<div>
Get the milliseconds passed since the last call to this method.
</div>
<h2>Source</h2>
<h2>Source</h2>
[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
\ No newline at end of file
[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
</body>
</html>
<h1>[name]</h1>
<div class="desc">
Represents a color. See also [page:ColorUtils].
</div>
<h2>Example</h2>
<code>var color = new THREE.Color( 0xff0000 );</code>
<h2>Constructor</h2>
<h3>[name]( [page:Integer hex])</h3>
<div>
hex — initial color in hexadecimal<br />
</div>
<h2>Properties</h2>
<h3>.[page:Float r]</h3>
<div>
Red channel value between 0 and 1. Default is 1.
</div>
<h3>.[page:Float g]</h3>
<div>
Green channel value between 0 and 1. Default is 1.
</div>
<h3>.[page:Float b]</h3>
<div>
Blue channel value between 0 and 1. Default is 1.
</div>
<h2>Methods</h2>
<h3>.copy( [page:Color color] ) [page:this]</h3>
<div>
color — Color to copy.
</div>
<div>
Copies given color.
</div>
<h3>.copyGammaToLinear( [page:Color color] ) [page:this]</h3>
<div>
color — Color to copy.
</div>
<div>
Copies given color making conversion from gamma to linear space.
</div>
<h3>.copyLinearToGamma( [page:Color color] ) [page:this]</h3>
<div>
color — Color to copy.
</div>
<div>
Copies given color making conversion from linear to gamma space.
</div>
<h3>.convertGammaToLinear() [page:this]</h3>
<div>
Converts this color from gamma to linear space.
</div>
<h3>.convertLinearToGamma() [page:this]</h3>
<div>
Converts this color from linear to gamma space.
</div>
<h3>.setRGB( [page:Float r], [page:Float g], [page:Float b] ) [page:this]</h3>
<div>
r — Red channel value between 0 and 1.<br />
g — Green channel value between 0 and 1.<br />
b — Blue channel value between 0 and 1.
</div>
<div>
Sets this color from RGB values.
</div>
<h3>.setHSV( [page:Float h], [page:Float s], [page:Float v] ) [page:this]</h3>
<div>
h — Hue channel value between 0 and 1.<br />
s — Saturation value channel between 0 and 1.<br />
v — Value channel value between 0 and 1.
</div>
<div>
Sets this color from HSV values.<br />
Based on MochiKit implementation by Bob Ippolito.
</div>
<h3>.setHex( [page:Integer hex] ) [page:this]</h3>
<div>
hex — Color in hexadecimal.<br />
</div>
<div>
Sets this color from a hexadecimal value.
</div>
<h3>.getHex() [page:Integer]</h3>
<div>
Returns the value of this color in hexadecimal.
</div>
<h3>.getContextStyle() [page:String]</h3>
<div>
Returns the value of this color in CSS context style.<br />
Example: rgb(r, g, b)
</div>
<h3>.clone() [page:Color]</h3>
<div>
Clones this color.
</div>
<h2>Source</h2>
[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
\ No newline at end of file
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<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">
Represents a color. See also [page:ColorUtils].
</div>
<h2>Example</h2>
<code>var color = new THREE.Color( 0xff0000 );</code>
<h2>Constructor</h2>
<h3>[name]( [page:Integer hex])</h3>
<div>
hex — initial color in hexadecimal<br />
</div>
<h2>Properties</h2>
<h3>.[page:Float r]</h3>
<div>
Red channel value between 0 and 1. Default is 1.
</div>
<h3>.[page:Float g]</h3>
<div>
Green channel value between 0 and 1. Default is 1.
</div>
<h3>.[page:Float b]</h3>
<div>
Blue channel value between 0 and 1. Default is 1.
</div>
<h2>Methods</h2>
<h3>.copy( [page:Color color] ) [page:this]</h3>
<div>
color — Color to copy.
</div>
<div>
Copies given color.
</div>
<h3>.copyGammaToLinear( [page:Color color] ) [page:this]</h3>
<div>
color — Color to copy.
</div>
<div>
Copies given color making conversion from gamma to linear space.
</div>
<h3>.copyLinearToGamma( [page:Color color] ) [page:this]</h3>
<div>
color — Color to copy.
</div>
<div>
Copies given color making conversion from linear to gamma space.
</div>
<h3>.convertGammaToLinear() [page:this]</h3>
<div>
Converts this color from gamma to linear space.
</div>
<h3>.convertLinearToGamma() [page:this]</h3>
<div>
Converts this color from linear to gamma space.
</div>
<h3>.setRGB( [page:Float r], [page:Float g], [page:Float b] ) [page:this]</h3>
<div>
r — Red channel value between 0 and 1.<br />
g — Green channel value between 0 and 1.<br />
b — Blue channel value between 0 and 1.
</div>
<div>
Sets this color from RGB values.
</div>
<h3>.setHSV( [page:Float h], [page:Float s], [page:Float v] ) [page:this]</h3>
<div>
h — Hue channel value between 0 and 1.<br />
s — Saturation value channel between 0 and 1.<br />
v — Value channel value between 0 and 1.
</div>
<div>
Sets this color from HSV values.<br />
Based on MochiKit implementation by Bob Ippolito.
</div>
<h3>.setHex( [page:Integer hex] ) [page:this]</h3>
<div>
hex — Color in hexadecimal.<br />
</div>
<div>
Sets this color from a hexadecimal value.
</div>
<h3>.getHex() [page:Integer]</h3>
<div>
Returns the value of this color in hexadecimal.
</div>
<h3>.getContextStyle() [page:String]</h3>
<div>
Returns the value of this color in CSS context style.<br />
Example: rgb(r, g, b)
</div>
<h3>.clone() [page:Color]</h3>
<div>
Clones this color.
</div>
<h2>Source</h2>
[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
</body>
</html>
<h1>[name]</h1>
<div class="desc">
Triangle face.
</div>
<h2>Example</h2>
<code>var face = new THREE.Face3( 0, 1, 2, new THREE.Vector3( 0, 1, 0 ), new THREE.Color( 0xffaa00 ), 0 );</code>
<h2>Constructor</h2>
<h3>[name]( [page:Integer a], [page:Integer b], [page:Integer c], [page:Vector3 normal], [page:Color color], [page:Integer materialIndex] )</h3>
<div>
a — Vertex A index.<br />
b — Vertex B index.<br />
c — Vertex C index.<br />
normal — Face normal or array of vertex normals.<br />
color — Face color or array of vertex colors.<br />
materialIndex — Material index.
</div>
<h2>Properties</h2>
<h3>.[page:Integer a]</h3>
<div>
Vertex A index.
</div>
<h3>.[page:Integer b]</h3>
<div>
Vertex B index.
</div>
<h3>.[page:Integer c]</h3>
<div>
Vertex C index.
</div>
<h3>.[page:Vector3 normal]</h3>
<div>
Face normal.
</div>
<h3>.[page:Color color]</h3>
<div>
Face color.
</div>
<h3>.[page:Array vertexNormals]</h3>
<div>
Array of 3 vertex normals.
</div>
<h3>.[page:Array vertexColors]</h3>
<div>
Array of 3 vertex colors.
</div>
<h3>.[page:Array vertexTangets]</h3>
<div>
Array of 3 vertex tangets.
</div>
<h3>.[page:Integer materialIndex]</h3>
<div>
Material index (points to [page:Geometry Geometry.materials]).
</div>
<h3>.[page:Vector3 centroid]</h3>
<div>
Face centroid.
</div>
<h2>Source</h2>
[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
\ No newline at end of file
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<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">
Triangle face.
</div>
<h2>Example</h2>
<code>var face = new THREE.Face3( 0, 1, 2, new THREE.Vector3( 0, 1, 0 ), new THREE.Color( 0xffaa00 ), 0 );</code>
<h2>Constructor</h2>
<h3>[name]( [page:Integer a], [page:Integer b], [page:Integer c], [page:Vector3 normal], [page:Color color], [page:Integer materialIndex] )</h3>
<div>
a — Vertex A index.<br />
b — Vertex B index.<br />
c — Vertex C index.<br />
normal — Face normal or array of vertex normals.<br />
color — Face color or array of vertex colors.<br />
materialIndex — Material index.
</div>
<h2>Properties</h2>
<h3>.[page:Integer a]</h3>
<div>
Vertex A index.
</div>
<h3>.[page:Integer b]</h3>
<div>
Vertex B index.
</div>
<h3>.[page:Integer c]</h3>
<div>
Vertex C index.
</div>
<h3>.[page:Vector3 normal]</h3>
<div>
Face normal.
</div>
<h3>.[page:Color color]</h3>
<div>
Face color.
</div>
<h3>.[page:Array vertexNormals]</h3>
<div>
Array of 3 vertex normals.
</div>
<h3>.[page:Array vertexColors]</h3>
<div>
Array of 3 vertex colors.
</div>
<h3>.[page:Array vertexTangets]</h3>
<div>
Array of 3 vertex tangets.
</div>
<h3>.[page:Integer materialIndex]</h3>
<div>
Material index (points to [page:Geometry Geometry.materials]).
</div>
<h3>.[page:Vector3 centroid]</h3>
<div>
Face centroid.
</div>
<h2>Source</h2>
[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
</body>
</html>
<h1>[name]</h1>
<div class="desc">
Quad face.
</div>
<h2>Example</h2>
<code>var face = new THREE.Face4( 0, 1, 2, 3, new THREE.Vector3( 0, 1, 0 ), new THREE.Color( 0xffaa00 ), 0 );</code>
<h2>Constructor</h2>
<h3>[name]( [page:Integer a], [page:Integer b], [page:Integer c], [page:Integer d], [page:Vector3 normal], [page:Color color], [page:Integer materialIndex] )</h3>
<div>
a — Vertex A index.<br />
b — Vertex B index.<br />
c — Vertex C index.<br />
d — Vertex D index.<br />
normal — Face normal or array of vertex normals.<br />
color — Face color or array of vertex colors.<br />
materialIndex — Material index.
</div>
<h2>Properties</h2>
<h3>.[page:Integer a]</h3>
<div>
Vertex A index.
</div>
<h3>.[page:Integer b]</h3>
<div>
Vertex B index.
</div>
<h3>.[page:Integer c]</h3>
<div>
Vertex C index.
</div>
<h3>.[page:Integer d]</h3>
<div>
Vertex D index.
</div>
<h3>.[page:Vector3 normal]</h3>
<div>
Face normal.
</div>
<h3>.[page:Color color]</h3>
<div>
Face color.
</div>
<h3>.[page:Array vertexNormals]</h3>
<div>
Array of 4 vertex normals.
</div>
<h3>.[page:Array vertexColors]</h3>
<div>
Array of 4 vertex colors.
</div>
<h3>.[page:Array vertexTangets]</h3>
<div>
Array of 4 vertex tangets.
</div>
<h3>.[page:Integer materialIndex]</h3>
<div>
Material index (points to [page:Geometry Geometry.materials]).
</div>
<h3>.[page:Vector3 centroid]</h3>
<div>
Face centroid.
</div>
<h2>Source</h2>
[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
\ No newline at end of file
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<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">
Quad face.
</div>
<h2>Example</h2>
<code>var face = new THREE.Face4( 0, 1, 2, 3, new THREE.Vector3( 0, 1, 0 ), new THREE.Color( 0xffaa00 ), 0 );</code>
<h2>Constructor</h2>
<h3>[name]( [page:Integer a], [page:Integer b], [page:Integer c], [page:Integer d], [page:Vector3 normal], [page:Color color], [page:Integer materialIndex] )</h3>
<div>
a — Vertex A index.<br />
b — Vertex B index.<br />
c — Vertex C index.<br />
d — Vertex D index.<br />
normal — Face normal or array of vertex normals.<br />
color — Face color or array of vertex colors.<br />
materialIndex — Material index.
</div>
<h2>Properties</h2>
<h3>.[page:Integer a]</h3>
<div>
Vertex A index.
</div>
<h3>.[page:Integer b]</h3>
<div>
Vertex B index.
</div>
<h3>.[page:Integer c]</h3>
<div>
Vertex C index.
</div>
<h3>.[page:Integer d]</h3>
<div>
Vertex D index.
</div>
<h3>.[page:Vector3 normal]</h3>
<div>
Face normal.
</div>
<h3>.[page:Color color]</h3>
<div>
Face color.
</div>
<h3>.[page:Array vertexNormals]</h3>
<div>
Array of 4 vertex normals.
</div>
<h3>.[page:Array vertexColors]</h3>
<div>
Array of 4 vertex colors.
</div>
<h3>.[page:Array vertexTangets]</h3>
<div>
Array of 4 vertex tangets.
</div>
<h3>.[page:Integer materialIndex]</h3>
<div>
Material index (points to [page:Geometry Geometry.materials]).
</div>
<h3>.[page:Vector3 centroid]</h3>
<div>
Face centroid.
</div>
<h2>Source</h2>
[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
</body>
</html>
<h1>[name]</h1>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<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"></div>
<div class="desc"></div>
<h2>Constructor</h2>
<h2>Constructor</h2>
<h3>[name]()</h3>
<h3>[name]()</h3>
<h2>Properties</h2>
<h2>Properties</h2>
<h3>.[page:Array planes]</h3>
<div>
Array of 6 [page:Vector4 vectors].
</div>
<h3>.[page:Array planes]</h3>
<div>
Array of 6 [page:Vector4 vectors].
</div>
<h2>Methods</h2>
<h2>Methods</h2>
<h3>.setFromMatrix( [page:Matrix4 matrix] )</h3>
<h3>.setFromMatrix( [page:Matrix4 matrix] )</h3>
<h3>.contains( [page:Object3D object] ) [page:Boolean]</h3>
<div>
Checks whether the object is inside the Frustum.
</div>
<h3>.contains( [page:Object3D object] ) [page:Boolean]</h3>
<div>
Checks whether the object is inside the Frustum.
</div>
<h2>Source</h2>
<h2>Source</h2>
[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
\ No newline at end of file
[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
</body>
</html>
<h1>[name]</h1>
<div class="desc">Base class for geometries</div>
<h2>Example</h2>
<code>var geometry = new THREE.Geometry()
geometry.vertices.push( new THREE.Vector3( -10, 10, 0 ) );
geometry.vertices.push( new THREE.Vector3( -10, -10, 0 ) );
geometry.vertices.push( new THREE.Vector3( 10, -10, 0 ) );
geometry.faces.push( new THREE.Face3( 0, 1, 2 ) );
geometry.computeBoundingSphere();
</code>
<h2>Constructor</h2>
<h3>[name]()</h3>
<h2>Properties</h2>
<h3>.[page:Integer id]</h3>
<div>
Unique number of this geometry instance
</div>
<h3>.[page:Array vertices]</h3>
<div>
Array of [page:Vector3 vertices].
</div>
<h3>.[page:Array colors]</h3>
<div>
Array of vertex [page:Color colors], matching number and order of vertices.<br />
Used in [page:ParticleSystem], [page:Line] and [page:Ribbon].<br />
[page:Mesh Meshes] use per-face-use-of-vertex colors embedded directly in faces.
</div>
<h3>.[page:Array materials]</h3>
<div>
Array of [page:Material materials].
</div>
<h3>.[page:Array faces]</h3>
<div>
Array of [page:Face3 triangles] or/and [page:Face4 quads].
</div>
<h3>.[page:Array faceUvs]</h3>
<div>
Array of face [page:UV] layers.<br />
Each UV layer is an array of [page:UV] matching order and number of faces.
</div>
<h3>.[page:Array faceVertexUvs]</h3>
<div>
Array of face [page:UV] layers.<br />
Each UV layer is an array of [page:UV] matching order and number of vertices in faces.
</div>
<h3>.[page:Array morphTargets]</h3>
<div>
Array of morph targets. Each morph target is JS object:
<code>{ name: "targetName", vertices: [ new THREE.Vertex(), ... ] }</code>
Morph vertices match number and order of primary vertices.
</div>
<h3>.[page:Array morphColors]</h3>
<div>
Array of morph colors. Morph colors have similar structure as morph targets, each color set is JS object:
<code>morphColor = { name: "colorName", colors: [ new THREE.Color(), ... ] }</code>
Morph colors can match either number and order of faces (face colors) or number of vertices (vertex colors).
</div>
<h3>.[page:Array skinWeights]</h3>
<div>
Array of skinning weights, matching number and order of vertices.
</div>
<h3>.[page:Array skinIndices]</h3>
<div>
Array of skinning indices, matching number and order of vertices.
</div>
<h3>.[page:Object boundingBox]</h3>
<div>
Bounding box.
<code>{ min: new THREE.Vector3(), max: new THREE.Vector3() }</code>
</div>
<h3>.[page:Object boundingSphere]</h3>
<div>
Bounding sphere.
<code>{ radius: float }</code>
</div>
<h3>.[page:Boolean hasTangents]</h3>
<div>
True if geometry has tangents. Set in [page:Geometry Geometry.computeTangents].
</div>
<h3>.[page: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.
</div>
<h2>Methods</h2>
<h3>.applyMatrix( [page:Matrix4 matrix] )</h3>
<div>
Bakes matrix transform directly into vertex coordinates.
</div>
<h3>.computeCentroids()</h3>
<div>
Computes centroids for all faces.
</div>
<h3>.computeFaceNormals()</h3>
<div>
Computes face normals.
</div>
<h3>.computeVertexNormals()</h3>
<div>
Computes vertex normals by averaging face normals.<br />
Face normals must be existing / computed beforehand.
</div>
<h3>.computeTangents()</h3>
<div>
Computes vertex tangents.<br />
Based on [link:http://www.terathon.com/code/tangent.html]<br />
Geometry must have vertex [page:UV UVs] (layer 0 will be used).
</div>
<h3>.computeBoundingBox()</h3>
<div>
Computes bounding box of the geometry, updating [page:Geometry Geometry.boundingBox] attribute.
</div>
<h3>.computeBoundingSphere()</h3>
<div>
Computes bounding sphere of the geometry, updating [page:Geometry Geometry.boundingSphere] attribute.
</div>
<h3>.mergeVertices()</h3>
<div>
Checks for duplicate vertices using hashmap.<br />
Duplicated vertices are removed and faces' vertices are updated.
</div>
<h2>Source</h2>
[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<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">Base class for geometries</div>
<h2>Example</h2>
<code>var geometry = new THREE.Geometry()
geometry.vertices.push( new THREE.Vector3( -10, 10, 0 ) );
geometry.vertices.push( new THREE.Vector3( -10, -10, 0 ) );
geometry.vertices.push( new THREE.Vector3( 10, -10, 0 ) );
geometry.faces.push( new THREE.Face3( 0, 1, 2 ) );
geometry.computeBoundingSphere();
</code>
<h2>Constructor</h2>
<h3>[name]()</h3>
<h2>Properties</h2>
<h3>.[page:Integer id]</h3>
<div>
Unique number of this geometry instance
</div>
<h3>.[page:Array vertices]</h3>
<div>
Array of [page:Vector3 vertices].
</div>
<h3>.[page:Array colors]</h3>
<div>
Array of vertex [page:Color colors], matching number and order of vertices.<br />
Used in [page:ParticleSystem], [page:Line] and [page:Ribbon].<br />
[page:Mesh Meshes] use per-face-use-of-vertex colors embedded directly in faces.
</div>
<h3>.[page:Array materials]</h3>
<div>
Array of [page:Material materials].
</div>
<h3>.[page:Array faces]</h3>
<div>
Array of [page:Face3 triangles] or/and [page:Face4 quads].
</div>
<h3>.[page:Array faceUvs]</h3>
<div>
Array of face [page:UV] layers.<br />
Each UV layer is an array of [page:UV] matching order and number of faces.
</div>
<h3>.[page:Array faceVertexUvs]</h3>
<div>
Array of face [page:UV] layers.<br />
Each UV layer is an array of [page:UV] matching order and number of vertices in faces.
</div>
<h3>.[page:Array morphTargets]</h3>
<div>
Array of morph targets. Each morph target is JS object:
<code>{ name: "targetName", vertices: [ new THREE.Vertex(), ... ] }</code>
Morph vertices match number and order of primary vertices.
</div>
<h3>.[page:Array morphColors]</h3>
<div>
Array of morph colors. Morph colors have similar structure as morph targets, each color set is JS object:
<code>morphColor = { name: "colorName", colors: [ new THREE.Color(), ... ] }</code>
Morph colors can match either number and order of faces (face colors) or number of vertices (vertex colors).
</div>
<h3>.[page:Array skinWeights]</h3>
<div>
Array of skinning weights, matching number and order of vertices.
</div>
<h3>.[page:Array skinIndices]</h3>
<div>
Array of skinning indices, matching number and order of vertices.
</div>
<h3>.[page:Object boundingBox]</h3>
<div>
Bounding box.
<code>{ min: new THREE.Vector3(), max: new THREE.Vector3() }</code>
</div>
<h3>.[page:Object boundingSphere]</h3>
<div>
Bounding sphere.
<code>{ radius: float }</code>
</div>
<h3>.[page:Boolean hasTangents]</h3>
<div>
True if geometry has tangents. Set in [page:Geometry Geometry.computeTangents].
</div>
<h3>.[page: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.
</div>
<h2>Methods</h2>
<h3>.applyMatrix( [page:Matrix4 matrix] )</h3>
<div>
Bakes matrix transform directly into vertex coordinates.
</div>
<h3>.computeCentroids()</h3>
<div>
Computes centroids for all faces.
</div>
<h3>.computeFaceNormals()</h3>
<div>
Computes face normals.
</div>
<h3>.computeVertexNormals()</h3>
<div>
Computes vertex normals by averaging face normals.<br />
Face normals must be existing / computed beforehand.
</div>
<h3>.computeTangents()</h3>
<div>
Computes vertex tangents.<br />
Based on [link:http://www.terathon.com/code/tangent.html]<br />
Geometry must have vertex [page:UV UVs] (layer 0 will be used).
</div>
<h3>.computeBoundingBox()</h3>
<div>
Computes bounding box of the geometry, updating [page:Geometry Geometry.boundingBox] attribute.
</div>
<h3>.computeBoundingSphere()</h3>
<div>
Computes bounding sphere of the geometry, updating [page:Geometry Geometry.boundingSphere] attribute.
</div>
<h3>.mergeVertices()</h3>
<div>
Checks for duplicate vertices using hashmap.<br />
Duplicated vertices are removed and faces' vertices are updated.
</div>
<h2>Source</h2>
[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
</body>
</html>
<h1>[name]</h1>
<div class="desc">Math utility functions</div>
<h2>Methods</h2>
<h3>.clamp( [page:Float x], [page:Float a], [page:Float b] ) [page:Float]</h3>
<div>
x — Value to be clamped.<br />
a — Minimum value<br />
b — Maximum value.
</div>
<div>
Clamps the *x* to be between *a* and *b*.
</div>
<h3>.clampBottom( [page:Float x], [page:Float a] ) [page:Float]</h3>
<div>
x — Value to be clamped.<br />
a — Minimum value
</div>
<div>
Clamps the *x* to be larger than *a*.
</div>
<h3>.mapLinear( [page:Float x], [page:Float a] ) [page:Float]</h3>
<div>
x — Value to be mapped.<br />
a1 — Minimum value for range A.<br />
a2 — Maximum value for range A.<br />
b1 — Minimum value for range B.<br />
b2 — Maximum value for range B.
</div>
<div>
Linear mapping of *x* from range [*a1*, *a2*] to range [*b1*, *b2*].
</div>
<h3>.random16() [page:Float]</h3>
<div>
Random float from 0 to 1 with 16 bits of randomness.<br />
Standard Math.random() creates repetitive patterns when applied over larger space.
</div>
<h3>.randInt( [page:Integer low], [page:Integer high] ) [page:Integer]</h3>
<div>
Random integer from *low* to *high* interval.
</div>
<h3>.randFloat( [page:Float low], [page:Float high] ) [page:Float]</h3>
<div>
Random float from *low* to *high* interval.
</div>
<h3>.randFloatSpread( [page:Float range] ) [page:Float]</h3>
<div>
Random float from *- range / 2* to *range / 2* interval.
</div>
<h2>Source</h2>
[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
\ No newline at end of file
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<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">Math utility functions</div>
<h2>Methods</h2>
<h3>.clamp( [page:Float x], [page:Float a], [page:Float b] ) [page:Float]</h3>
<div>
x — Value to be clamped.<br />
a — Minimum value<br />
b — Maximum value.
</div>
<div>
Clamps the *x* to be between *a* and *b*.
</div>
<h3>.clampBottom( [page:Float x], [page:Float a] ) [page:Float]</h3>
<div>
x — Value to be clamped.<br />
a — Minimum value
</div>
<div>
Clamps the *x* to be larger than *a*.
</div>
<h3>.mapLinear( [page:Float x], [page:Float a] ) [page:Float]</h3>
<div>
x — Value to be mapped.<br />
a1 — Minimum value for range A.<br />
a2 — Maximum value for range A.<br />
b1 — Minimum value for range B.<br />
b2 — Maximum value for range B.
</div>
<div>
Linear mapping of *x* from range [*a1*, *a2*] to range [*b1*, *b2*].
</div>
<h3>.random16() [page:Float]</h3>
<div>
Random float from 0 to 1 with 16 bits of randomness.<br />
Standard Math.random() creates repetitive patterns when applied over larger space.
</div>
<h3>.randInt( [page:Integer low], [page:Integer high] ) [page:Integer]</h3>
<div>
Random integer from *low* to *high* interval.
</div>
<h3>.randFloat( [page:Float low], [page:Float high] ) [page:Float]</h3>
<div>
Random float from *low* to *high* interval.
</div>
<h3>.randFloatSpread( [page:Float range] ) [page:Float]</h3>
<div>
Random float from *- range / 2* to *range / 2* interval.
</div>
<h2>Source</h2>
[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
</body>
</html>
<h1>[name]</h1>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<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 3x3 matrix.</div>
<div class="desc">A 3x3 matrix.</div>
<h2>Constructor</h2>
<h2>Constructor</h2>
<h3>[name]()</h3>
<h3>[name]()</h3>
<h2>Properties</h2>
<h2>Properties</h2>
<h3>.[page:Array m]</h3>
<div>
Array with matrix values.
</div>
<h3>.[page:Array m]</h3>
<div>
Array with matrix values.
</div>
<h2>Methods</h2>
<h2>Methods</h2>
<h3>.transpose() [page:Matrix3]</h3>
<div>
Transposes this matrix in place.
</div>
<h3>.transpose() [page:Matrix3]</h3>
<div>
Transposes this matrix in place.
</div>
<h3>.transposeIntoArray( [page:Array r] ) [page:Array]</h3>
<div>
Transposes this matrix into supplied array.
</div>
<h3>.transposeIntoArray( [page:Array r] ) [page:Array]</h3>
<div>
Transposes this matrix into supplied array.
</div>
<h2>Source</h2>
<h2>Source</h2>
[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
\ No newline at end of file
[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
</body>
</html>
<h1>[name]</h1>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<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 4x4 Matrix.</div>
<div class="desc">A 4x4 Matrix.</div>
<h2>Example</h2>
<h2>Example</h2>
<code>// Simple rig for rotating around 3 axes
<code>// Simple rig for rotating around 3 axes
var m = new THREE.Matrix4();
var m = new THREE.Matrix4();
var m1 = new THREE.Matrix4();
var m2 = new THREE.Matrix4();
var m3 = new THREE.Matrix4();
var m1 = new THREE.Matrix4();
var m2 = new THREE.Matrix4();
var m3 = new THREE.Matrix4();
var alpha = 0;
var beta = Math.PI;
var gamma = Math.PI/2;
var alpha = 0;
var beta = Math.PI;
var gamma = Math.PI/2;
m1.setRotationX( alpha );
m2.setRotationY( beta );
m3.setRotationZ( gamma );
m1.setRotationX( alpha );
m2.setRotationY( beta );
m3.setRotationZ( gamma );
m.multiply( m1, m2 );
m.multiplySelf( m3 );
</code>
m.multiply( m1, m2 );
m.multiplySelf( m3 );
</code>
<h2>Constructor</h2>
<h2>Constructor</h2>
<h3>[name]( [page:Float n11], [page:Float n12], [page:Float n13], [page:Float n14], [page:Float n21], [page:Float n22], [page:Float n23], [page:Float n24], [page:Float n31], [page:Float n32], [page:Float n33], [page:Float n34], [page:Float n41], [page:Float n42], [page:Float n43], [page:Float n44] )</h3>
<h3>[name]( [page:Float n11], [page:Float n12], [page:Float n13], [page:Float n14], [page:Float n21], [page:Float n22], [page:Float n23], [page:Float n24], [page:Float n31], [page:Float n32], [page:Float n33], [page:Float n34], [page:Float n41], [page:Float n42], [page:Float n43], [page:Float n44] )</h3>
<h2>Properties</h2>
<h2>Properties</h2>
<h3>.[page:Float32Array elements]</h3>
<h3>.[page:Float32Array elements]</h3>
<h2>Methods</h2>
<h2>Methods</h2>
<h3>.set( [page:Float n11], [page:Float n12], [page:Float n13], [page:Float n14], [page:Float n21], [page:Float n22], [page:Float n23], [page:Float n24], [page:Float n31], [page:Float n32], [page:Float n33], [page:Float n34], [page:Float n41], [page:Float n42], [page:Float n43], [page:Float n44] ) [page:Matrix4]</h3>
<div>
Sets all fields of this matrix.
</div>
<h3>.set( [page:Float n11], [page:Float n12], [page:Float n13], [page:Float n14], [page:Float n21], [page:Float n22], [page:Float n23], [page:Float n24], [page:Float n31], [page:Float n32], [page:Float n33], [page:Float n34], [page:Float n41], [page:Float n42], [page:Float n43], [page:Float n44] ) [page:Matrix4]</h3>
<div>
Sets all fields of this matrix.
</div>
<h3>.identity() [page:Matrix4]</h3>
<div>
Resets this matrix to identity.
</div>
<h3>.identity() [page:Matrix4]</h3>
<div>
Resets this matrix to identity.
</div>
<h3>.copy( [page:Matrix4 m] ) [page:Matrix4]</h3>
<div>
Copies a matrix *m* into this matrix.
</div>
<h3>.lookAt( [page:Vector3 eye], [page:Vector3 center], [page:Vector3 up], ) [page:Matrix4]</h3>
<div>
Constructs a rotation matrix, looking from *eye* towards *center* with defined *up* vector.
</div>
<h3>.multiply( [page:Matrix4 a], [page:Matrix4 b] ) [page:Matrix4]</h3>
<div>
Sets this matrix to *a x b*.
</div>
<h3>.multiplySelf( [page:Matrix4 m] ) [page:Matrix4]</h3>
<div>
Multiplies this matrix by *m*.
</div>
<h3>.multiplyToArray( [page:Matrix4 a], [page:Matrix4 b], [page:Array r] ) [page:Matrix4]</h3>
<div>
Sets this matrix to *a x b* and sets result into flat array *r*.<br />
Destination array can be regular Array or TypedArray.
</div>
<h3>.multiplyScalar( [page:Float s] ) [page:Matrix4]</h3>
<div>
Multiplies this matrix by *s*.
</div>
<h3>.multiplyVector3( [page:Vector3 v] ) [page:Vector3]</h3>
<div>
Applies this matrix to *v*.
</div>
<h3>.multiplyVector4( [page:Vector4 v] ) [page:Vector4]</h3>
<div>
Applies this matrix to *v*.
</div>
<h3>.rotateAxis( [page:Vector3 v] ) [page:Vector3]</h3>
<div>
Applies rotation submatrix of this matrix to vector *v* and then normalizes it.
</div>
<h3>.crossVector( [page:Vector4 a] ) [page:Vector4]</h3>
<h3>.determinant() [page:Float]</h3>
<div>
Computes determinant of this matrix.<br />
Based on [link:http://www.euclideanspace.com/maths/algebra/matrix/functions/inverse/fourD/index.htm]
</div>
<h3>.transpose() [page:Matrix4]</h3>
<div>
Transposes this matrix.
</div>
<h3>.flatten() [page:Array]</h3>
<div>
Flattens this matrix into internal [page:Matrix4 Matrix4.flat] array.
</div>
<h3>.flattenToArray( [page:Array flat] ) [page:Array]</h3>
<div>
Flattens this matrix into supplied *flat* array.
</div>
<h3>.flattenToArrayOffset( [page:Array flat], [page:Integer offset] ) [page:Array]</h3>
<div>
Flattens this matrix into supplied *flat* array starting from *offset* position in the array.
</div>
<h3>.setTranslation( [page:Float x], [page:Float y], [page:Float z] ) [page:Matrix4]</h3>
<div>
Sets this matrix as translation transform.
</div>
<h3>.setScale( [page:Float x], [page:Float y], [page:Float z] ) [page:Matrix4]</h3>
<div>
Sets this matrix as scale transform.
</div>
<h3>.makeRotationX( [page:Float theta] ) [page:Matrix4]</h3>
<div>
theta — Rotation angle in radians.
</div>
<div>
Sets this matrix as rotation transform around x axis by *theta* radians.
</div>
<h3>.makeRotationY( [page:Float theta] ) [page:Matrix4]</h3>
<div>
theta — Rotation angle in radians.
</div>
<div>
Sets this matrix as rotation transform around y axis by *theta* radians.
</div>
<h3>.makeRotationZ( [page:Float theta] ) [page:Matrix4]</h3>
<div>
theta — Rotation angle in radians.
</div>
<div>
Sets this matrix as rotation transform around z axis by *theta* radians.
</div>
<h3>.makeRotationAxis( [page:Vector3 axis], [page:Float theta] ) [page:Matrix4]</h3>
<div>
axis — Rotation axis.
theta — Rotation angle in radians.
</div>
<div>
Sets this matrix as rotation transform around *axis* by *angle* radians.<br />
Based on [link:http://www.gamedev.net/reference/articles/article1199.asp].
</div>
<h3>.setPosition( [page:Vector3 v] ) [page:Matrix4]</h3>
<div>
Sets the position component for this matrix from vector *v*.
</div>
<h3>.getPosition() [page:Vector3]</h3>
<div>
Returns position component from this matrix.<br />
Note: this method returns a reference to internal class vector, make copy or clone if you don't use it right away.
</div>
<h3>.getColumnX() [page:Vector3]</h3>
<div>
Returns x column component from this matrix.<br />
Note: this method returns a reference to internal class vector, make copy or clone if you don't use it right away.
</div>
<h3>.getColumnY() [page:Vector3]</h3>
<div>
Returns y column component from this matrix.<br />
Note: this method returns a reference to internal class vector, make copy or clone if you don't use it right away.
</div>
<h3>.getColumnZ() [page:Vector3]</h3>
<div>
Returns z column component from this matrix.<br />
Note: this method returns a reference to internal class vector, make copy or clone if you don't use it right away.
</div>
<h3>.getInverse( [page:Matrix4 m] ) [page:Matrix4]</h3>
<div>
Sets this matrix to inverse of matrix *m*.<br />
Based on [link:http://www.euclideanspace.com/maths/algebra/matrix/functions/inverse/fourD/index.htm].
</div>
<h3>.setRotationFromEuler( [page:Vector3 v], [page:String order] ) [page:Matrix4]</h3>
<div>
v — Rotation vector.
order — The order of rotations. Eg. "XYZ".
</div>
<div>
Sets rotation submatrix of this matrix to rotation specified by Euler angles.<br />
Default order "XYZ".
</div>
<h3>.setRotationFromQuaternion( [page:Quaternion q] ) [page:Matrix4]</h3>
<div>
Sets rotation submatrix of this matrix to rotation specified by *q*.
</div>
<h3>.scale( [page:Vector3 v] ) [page:Matrix4]</h3>
<div>
Multiplies columns of this matrix by vector *v*.
</div>
<h3>.compose( [page:Vector3 translation], [page:Quaternion rotation], [page:Vector3 scale] ) [page:Matrix4]</h3>
<div>
Sets this matrix to transform composed of *translation*, *rotation* and *scale*.
</div>
<h3>.decompose( [page:Vector3 translation], [page:Quaternion rotation], [page:Vector3 scale] ) [page:Array]</h3>
<div>
Decomposes this matrix into *translation*, *rotation* and *scale* components.<br />
If parameters are not supplied, new instances will be created.
</div>
<h3>.extractPosition( [page:Matrix4 m] ) [page:Matrix4]</h3>
<div>
Copies translation component of supplied matrix *m* into this matrix translation.
</div>
<h3>.extractRotation( [page:Matrix4 m] ) [page:Matrix4]</h3>
<div>
Copies rotation component of supplied matrix *m* into this matrix rotation.
</div>
<h3>.rotateByAxis( [page:Vector3 axis], [page:Float angle] ) [page:Matrix4]</h3>
<div>
Rotates this matrix around supplied *axis* by *angle*.
</div>
<h3>.rotateX( [page:Float angle] ) [page:Matrix4]</h3>
<div>
Rotates this matrix around x axis by *angle*.
</div>
<h3>.rotateY( [page:Float angle] ) [page:Matrix4]</h3>
<div>
Rotates this matrix around y axis by *angle*.
</div>
<h3>.rotateZ( [page:Float angle] ) [page:Matrix4]</h3>
<div>
Rotates this matrix around z axis by *angle*.
</div>
<h3>.translate( [page:Vector3 v] ) [page:Matrix4]</h3>
<div>
Translates this matrix by vector *v*.
</div>
<h3>.clone() [page:Matrix4]</h3>
<div>
Clones this matrix.
</div>
<h2>Static methods</h2>
<h3>.makeInvert3x3( [page:Matrix4 m] ) [page:Matrix3]</h3>
<div>
Inverts just rotation submatrix of matrix *m*.<br />
Note: this method returns a reference to internal 3x3 matrix, make copy or clone if you don't use it right away.<br />
Based on [link:http://code.google.com/p/webgl-mjs/].
</div>
<h3>.makeFrustum( [page:Float left], [page:Float right], [page:Float bottom], [page:Float top], [page:Float near], [page:Float far] ) [page:Matrix4]</h3>
<div>
Creates frustum matrix.
</div>
<h3>.makePerspective( [page:Float fov], [page:Float aspect], [page:Float near], [page:Float far] ) [page:Matrix4]</h3>
<div>
Creates perspective projection matrix.
</div>
<h3>.makeOrtho( [page:Float left], [page:Float right], [page:Float bottom], [page:Float top], [page:Float near], [page:Float far] ) [page:Matrix4]</h3>
<div>
Creates orthographic projection matrix.
</div>
<h2>Source</h2>
[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
<h3>.copy( [page:Matrix4 m] ) [page:Matrix4]</h3>
<div>
Copies a matrix *m* into this matrix.
</div>
<h3>.lookAt( [page:Vector3 eye], [page:Vector3 center], [page:Vector3 up], ) [page:Matrix4]</h3>
<div>
Constructs a rotation matrix, looking from *eye* towards *center* with defined *up* vector.
</div>
<h3>.multiply( [page:Matrix4 a], [page:Matrix4 b] ) [page:Matrix4]</h3>
<div>
Sets this matrix to *a x b*.
</div>
<h3>.multiplySelf( [page:Matrix4 m] ) [page:Matrix4]</h3>
<div>
Multiplies this matrix by *m*.
</div>
<h3>.multiplyToArray( [page:Matrix4 a], [page:Matrix4 b], [page:Array r] ) [page:Matrix4]</h3>
<div>
Sets this matrix to *a x b* and sets result into flat array *r*.<br />
Destination array can be regular Array or TypedArray.
</div>
<h3>.multiplyScalar( [page:Float s] ) [page:Matrix4]</h3>
<div>
Multiplies this matrix by *s*.
</div>
<h3>.multiplyVector3( [page:Vector3 v] ) [page:Vector3]</h3>
<div>
Applies this matrix to *v*.
</div>
<h3>.multiplyVector4( [page:Vector4 v] ) [page:Vector4]</h3>
<div>
Applies this matrix to *v*.
</div>
<h3>.rotateAxis( [page:Vector3 v] ) [page:Vector3]</h3>
<div>
Applies rotation submatrix of this matrix to vector *v* and then normalizes it.
</div>
<h3>.crossVector( [page:Vector4 a] ) [page:Vector4]</h3>
<h3>.determinant() [page:Float]</h3>
<div>
Computes determinant of this matrix.<br />
Based on [link:http://www.euclideanspace.com/maths/algebra/matrix/functions/inverse/fourD/index.htm]
</div>
<h3>.transpose() [page:Matrix4]</h3>
<div>
Transposes this matrix.
</div>
<h3>.flatten() [page:Array]</h3>
<div>
Flattens this matrix into internal [page:Matrix4 Matrix4.flat] array.
</div>
<h3>.flattenToArray( [page:Array flat] ) [page:Array]</h3>
<div>
Flattens this matrix into supplied *flat* array.
</div>
<h3>.flattenToArrayOffset( [page:Array flat], [page:Integer offset] ) [page:Array]</h3>
<div>
Flattens this matrix into supplied *flat* array starting from *offset* position in the array.
</div>
<h3>.setTranslation( [page:Float x], [page:Float y], [page:Float z] ) [page:Matrix4]</h3>
<div>
Sets this matrix as translation transform.
</div>
<h3>.setScale( [page:Float x], [page:Float y], [page:Float z] ) [page:Matrix4]</h3>
<div>
Sets this matrix as scale transform.
</div>
<h3>.makeRotationX( [page:Float theta] ) [page:Matrix4]</h3>
<div>
theta — Rotation angle in radians.
</div>
<div>
Sets this matrix as rotation transform around x axis by *theta* radians.
</div>
<h3>.makeRotationY( [page:Float theta] ) [page:Matrix4]</h3>
<div>
theta — Rotation angle in radians.
</div>
<div>
Sets this matrix as rotation transform around y axis by *theta* radians.
</div>
<h3>.makeRotationZ( [page:Float theta] ) [page:Matrix4]</h3>
<div>
theta — Rotation angle in radians.
</div>
<div>
Sets this matrix as rotation transform around z axis by *theta* radians.
</div>
<h3>.makeRotationAxis( [page:Vector3 axis], [page:Float theta] ) [page:Matrix4]</h3>
<div>
axis — Rotation axis.
theta — Rotation angle in radians.
</div>
<div>
Sets this matrix as rotation transform around *axis* by *angle* radians.<br />
Based on [link:http://www.gamedev.net/reference/articles/article1199.asp].
</div>
<h3>.setPosition( [page:Vector3 v] ) [page:Matrix4]</h3>
<div>
Sets the position component for this matrix from vector *v*.
</div>
<h3>.getPosition() [page:Vector3]</h3>
<div>
Returns position component from this matrix.<br />
Note: this method returns a reference to internal class vector, make copy or clone if you don't use it right away.
</div>
<h3>.getColumnX() [page:Vector3]</h3>
<div>
Returns x column component from this matrix.<br />
Note: this method returns a reference to internal class vector, make copy or clone if you don't use it right away.
</div>
<h3>.getColumnY() [page:Vector3]</h3>
<div>
Returns y column component from this matrix.<br />
Note: this method returns a reference to internal class vector, make copy or clone if you don't use it right away.
</div>
<h3>.getColumnZ() [page:Vector3]</h3>
<div>
Returns z column component from this matrix.<br />
Note: this method returns a reference to internal class vector, make copy or clone if you don't use it right away.
</div>
<h3>.getInverse( [page:Matrix4 m] ) [page:Matrix4]</h3>
<div>
Sets this matrix to inverse of matrix *m*.<br />
Based on [link:http://www.euclideanspace.com/maths/algebra/matrix/functions/inverse/fourD/index.htm].
</div>
<h3>.setRotationFromEuler( [page:Vector3 v], [page:String order] ) [page:Matrix4]</h3>
<div>
v — Rotation vector.
order — The order of rotations. Eg. "XYZ".
</div>
<div>
Sets rotation submatrix of this matrix to rotation specified by Euler angles.<br />
Default order "XYZ".
</div>
<h3>.setRotationFromQuaternion( [page:Quaternion q] ) [page:Matrix4]</h3>
<div>
Sets rotation submatrix of this matrix to rotation specified by *q*.
</div>
<h3>.scale( [page:Vector3 v] ) [page:Matrix4]</h3>
<div>
Multiplies columns of this matrix by vector *v*.
</div>
<h3>.compose( [page:Vector3 translation], [page:Quaternion rotation], [page:Vector3 scale] ) [page:Matrix4]</h3>
<div>
Sets this matrix to transform composed of *translation*, *rotation* and *scale*.
</div>
<h3>.decompose( [page:Vector3 translation], [page:Quaternion rotation], [page:Vector3 scale] ) [page:Array]</h3>
<div>
Decomposes this matrix into *translation*, *rotation* and *scale* components.<br />
If parameters are not supplied, new instances will be created.
</div>
<h3>.extractPosition( [page:Matrix4 m] ) [page:Matrix4]</h3>
<div>
Copies translation component of supplied matrix *m* into this matrix translation.
</div>
<h3>.extractRotation( [page:Matrix4 m] ) [page:Matrix4]</h3>
<div>
Copies rotation component of supplied matrix *m* into this matrix rotation.
</div>
<h3>.rotateByAxis( [page:Vector3 axis], [page:Float angle] ) [page:Matrix4]</h3>
<div>
Rotates this matrix around supplied *axis* by *angle*.
</div>
<h3>.rotateX( [page:Float angle] ) [page:Matrix4]</h3>
<div>
Rotates this matrix around x axis by *angle*.
</div>
<h3>.rotateY( [page:Float angle] ) [page:Matrix4]</h3>
<div>
Rotates this matrix around y axis by *angle*.
</div>
<h3>.rotateZ( [page:Float angle] ) [page:Matrix4]</h3>
<div>
Rotates this matrix around z axis by *angle*.
</div>
<h3>.translate( [page:Vector3 v] ) [page:Matrix4]</h3>
<div>
Translates this matrix by vector *v*.
</div>
<h3>.clone() [page:Matrix4]</h3>
<div>
Clones this matrix.
</div>
<h2>Static methods</h2>
<h3>.makeInvert3x3( [page:Matrix4 m] ) [page:Matrix3]</h3>
<div>
Inverts just rotation submatrix of matrix *m*.<br />
Note: this method returns a reference to internal 3x3 matrix, make copy or clone if you don't use it right away.<br />
Based on [link:http://code.google.com/p/webgl-mjs/].
</div>
<h3>.makeFrustum( [page:Float left], [page:Float right], [page:Float bottom], [page:Float top], [page:Float near], [page:Float far] ) [page:Matrix4]</h3>
<div>
Creates frustum matrix.
</div>
<h3>.makePerspective( [page:Float fov], [page:Float aspect], [page:Float near], [page:Float far] ) [page:Matrix4]</h3>
<div>
Creates perspective projection matrix.
</div>
<h3>.makeOrtho( [page:Float left], [page:Float right], [page:Float bottom], [page:Float top], [page:Float near], [page:Float far] ) [page:Matrix4]</h3>
<div>
Creates orthographic projection matrix.
</div>
<h2>Source</h2>
[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
</body>
</html>
<h1>[name]</h1>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<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">Base class for scene graph objects</div>
<h2>Constructor</h2>
<h3>[name]()</h3>
<h2>Properties</h2>
<h3>.[page:Integer id]</h3>
<div>
Unique number of this object instance.
</div>
<h3>.[page:String name]</h3>
<div>
Optional name of the object (doesn't have to be unique).
</div>
<div class="desc">Base class for scene graph objects</div>
<h3>.[page:Object3D parent]</h3>
<div>
Object's parent in scene graph.
</div>
<h2>Constructor</h2>
<h3>[name]()</h3>
<h2>Properties</h2>
<h3>.[page:Integer id]</h3>
<div>
Unique number of this object instance.
</div>
<h3>.[page:String name]</h3>
<div>
Optional name of the object (doesn't have to be unique).
</div>
<h3>.[page:Object3D parent]</h3>
<div>
Object's parent in scene graph.
</div>
<h3>.[page:Object3D children]</h3>
<div>
Array with object's children.
</div>
<h3>.[page:Vector3 position]</h3>
<div>
Object's local position.
</div>
<h3>.[page:Vector3 rotation]</h3>
<div>
Object's local rotation (Euler angles).
</div>
<h3>.[page:String eulerOrder]</h3>
<div>
Order of axis for Euler angles.
</div>
<h3>.[page:Vector3 scale]</h3>
<div>
Object's local scale.
</div>
<h3>.[page:Vector3 up]</h3>
<div>
Up direction.
</div>
<h3>.[page:Vector3 matrix]</h3>
<div>
Local transform.
</div>
<h3>.[page:Vector3 matrixRotationWorld]</h3>
<div>
Global rotation.
</div>
<h3>.[page:Quaternion quaternion]</h3>
<div>
Global rotation.
</div>
<h3>.[page:Boolean useQuaternion]</h3>
<div>
Use quaternion instead of Euler angles for specifying local rotation.
</div>
<h3>.[page:Float boundRadius]</h3>
<h3>.[page:Float boundRadiusScale]</h3>
<div>
Maximum scale from x, y, z scale components.
</div>
<h3>.[page:Float renderDepth]</h3>
<div>
Override depth-sorting order if non *null*.
</div>
<h3>.[page:Boolean visible]</h3>
<div>
Object gets rendered if *true*.
</div>
<h3>.[page:Boolean doubleSided]</h3>
<div>
Both sides of faces visible if *true*.
</div>
<h3>.[page:Boolean flipSided]</h3>
<div>
Backside of face visible if *true*.
</div>
<h3>.[page:Boolean castShadow]</h3>
<div>
Gets rendered into shadow map.
</div>
<h3>.[page:Boolean receiveShadow]</h3>
<div>
Material gets baked in shadow receiving.
</div>
<h3>.[page:Boolean frustumCulled]</h3>
<h3>.[page:Boolean matrixAutoUpdate]</h3>
<h3>.[page:Boolean matrixWorldNeedsUpdate]</h3>
<h3>.[page:Boolean rotationAutoUpdate]</h3>
<h2>Methods</h2>
<h3>.translate( [page:Float distance], [page:Vector3 axis] )</h3>
<div>
distance - Distance.<br />
axis - Translation direction.
</div>
<div>
Translates object along arbitrary *axis* by *distance*.
</div>
<h3>.translateX( [page:Float distance] )</h3>
<div>
Translates object along x axis by distance.
</div>
<h3>.translateY( [page:Float distance] )</h3>
<div>
Translates object along y axis by distance.
</div>
<h3>.translateZ( [page:Float distance] )</h3>
<div>
Translates object along z axis by distance.
</div>
<h3>.lookAt( [page:Vector3 vector] )</h3>
<div>
Rotates object to face point in space.
</div>
<h3>.add( [page:Object3D object] )</h3>
<div>
Adds *object* as child of this object.
</div>
<h3>.remove( [page:Object3D object] )</h3>
<div>
Removes *object* as child of this object.
</div>
<h3>.getChildByName( [page:String name], [page:Boolean recursive] )</h3>
<div>
name - Object name.<br />
recursive - Whether check in the objects's children.
</div>
<div>
Gets first child with name matching the argument. Searches whole subgraph recursively if *recursive* is true.
</div>
<h3>.updateMatrix()</h3>
<div>
Updates local transform.
</div>
<h3>.updateMatrixWorld( [page:Boolean force] )</h3>
<div>
Updates global transform of the object and its children.
</div>
<h2>Source</h2>
[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
\ No newline at end of file
<h3>.[page:Object3D children]</h3>
<div>
Array with object's children.
</div>
<h3>.[page:Vector3 position]</h3>
<div>
Object's local position.
</div>
<h3>.[page:Vector3 rotation]</h3>
<div>
Object's local rotation (Euler angles).
</div>
<h3>.[page:String eulerOrder]</h3>
<div>
Order of axis for Euler angles.
</div>
<h3>.[page:Vector3 scale]</h3>
<div>
Object's local scale.
</div>
<h3>.[page:Vector3 up]</h3>
<div>
Up direction.
</div>
<h3>.[page:Vector3 matrix]</h3>
<div>
Local transform.
</div>
<h3>.[page:Vector3 matrixRotationWorld]</h3>
<div>
Global rotation.
</div>
<h3>.[page:Quaternion quaternion]</h3>
<div>
Global rotation.
</div>
<h3>.[page:Boolean useQuaternion]</h3>
<div>
Use quaternion instead of Euler angles for specifying local rotation.
</div>
<h3>.[page:Float boundRadius]</h3>
<h3>.[page:Float boundRadiusScale]</h3>
<div>
Maximum scale from x, y, z scale components.
</div>
<h3>.[page:Float renderDepth]</h3>
<div>
Override depth-sorting order if non *null*.
</div>
<h3>.[page:Boolean visible]</h3>
<div>
Object gets rendered if *true*.
</div>
<h3>.[page:Boolean doubleSided]</h3>
<div>
Both sides of faces visible if *true*.
</div>
<h3>.[page:Boolean flipSided]</h3>
<div>
Backside of face visible if *true*.
</div>
<h3>.[page:Boolean castShadow]</h3>
<div>
Gets rendered into shadow map.
</div>
<h3>.[page:Boolean receiveShadow]</h3>
<div>
Material gets baked in shadow receiving.
</div>
<h3>.[page:Boolean frustumCulled]</h3>
<h3>.[page:Boolean matrixAutoUpdate]</h3>
<h3>.[page:Boolean matrixWorldNeedsUpdate]</h3>
<h3>.[page:Boolean rotationAutoUpdate]</h3>
<h2>Methods</h2>
<h3>.translate( [page:Float distance], [page:Vector3 axis] )</h3>
<div>
distance - Distance.<br />
axis - Translation direction.
</div>
<div>
Translates object along arbitrary *axis* by *distance*.
</div>
<h3>.translateX( [page:Float distance] )</h3>
<div>
Translates object along x axis by distance.
</div>
<h3>.translateY( [page:Float distance] )</h3>
<div>
Translates object along y axis by distance.
</div>
<h3>.translateZ( [page:Float distance] )</h3>
<div>
Translates object along z axis by distance.
</div>
<h3>.lookAt( [page:Vector3 vector] )</h3>
<div>
Rotates object to face point in space.
</div>
<h3>.add( [page:Object3D object] )</h3>
<div>
Adds *object* as child of this object.
</div>
<h3>.remove( [page:Object3D object] )</h3>
<div>
Removes *object* as child of this object.
</div>
<h3>.getChildByName( [page:String name], [page:Boolean recursive] )</h3>
<div>
name - Object name.<br />
recursive - Whether check in the objects's children.
</div>
<div>
Gets first child with name matching the argument. Searches whole subgraph recursively if *recursive* is true.
</div>
<h3>.updateMatrix()</h3>
<div>
Updates local transform.
</div>
<h3>.updateMatrixWorld( [page:Boolean force] )</h3>
<div>
Updates global transform of the object and its children.
</div>
<h2>Source</h2>
[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
</body>
</html>
<h1>[name]</h1>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<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">Projects points between spaces.</div>
<div class="desc">Projects points between spaces.</div>
<h2>Constructor</h2>
<h2>Constructor</h2>
<h3>[name]()</h3>
<h3>[name]()</h3>
<h2>Methods</h2>
<h2>Methods</h2>
<h3>.projectVector( [page:Vector3 vector], [page:Camera camera] ) [page:Vector3]</h3>
<h3>.projectVector( [page:Vector3 vector], [page:Camera camera] ) [page:Vector3]</h3>
<h3>.unprojectVector( [page:Vector3 vector], [page:Camera camera] ) [page:Vector3]</h3>
<h3>.unprojectVector( [page:Vector3 vector], [page:Camera camera] ) [page:Vector3]</h3>
<h3>.pickingRay( [page:Vector3 vector], [page:Camera camera] ) [page:Ray]</h3>
<div>
Translates a 2D point from NDC to a [page:Ray] that can be used for picking.
</div>
<h3>.pickingRay( [page:Vector3 vector], [page:Camera camera] ) [page:Ray]</h3>
<div>
Translates a 2D point from NDC to a [page:Ray] that can be used for picking.
</div>
<h3>.projectGraph( [page:Object3D root], [page:Boolean sort] ) [page:Object]</h3>
<h3>.projectGraph( [page:Object3D root], [page:Boolean sort] ) [page:Object]</h3>
<h3>.projectScene( [page:Scene scene], [page:Camera camera], [page:Boolean sort] ) [page:Object]</h3>
<h3>.projectScene( [page:Scene scene], [page:Camera camera], [page:Boolean sort] ) [page:Object]</h3>
<h2>Source</h2>
<h2>Source</h2>
[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
\ No newline at end of file
[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
</body>
</html>
<h1>[name]</h1>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<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">Implementation of a quaternion</div>
<div class="desc">Implementation of a quaternion</div>
<h2>Example</h2>
<h2>Example</h2>
<code>var q = new THREE.Quaternion();
q.setFromAxisAngle( new THREE.Vector3( 0, 1, 0 ), Math.PI / 2 );
<code>var q = new THREE.Quaternion();
q.setFromAxisAngle( new THREE.Vector3( 0, 1, 0 ), Math.PI / 2 );
var v = new THREE.Vector3( 1, 0, 0 );
q.multiplyVector3( v );
</code>
var v = new THREE.Vector3( 1, 0, 0 );
q.multiplyVector3( v );
</code>
<h2>Constructor</h2>
<h2>Constructor</h2>
<h3>[name]( [page:Float x], [page:Float y], [page:Float z], [page:Float w] )</h3>
<div>
x - x coordinate<br />
y - y coordinate<br />
z - z coordinate<br />
w - w coordinate
</div>
<h3>[name]( [page:Float x], [page:Float y], [page:Float z], [page:Float w] )</h3>
<div>
x - x coordinate<br />
y - y coordinate<br />
z - z coordinate<br />
w - w coordinate
</div>
<h2>Properties</h2>
<h2>Properties</h2>
<h3>.[page:Float x]</h3>
<h3>.[page:Float x]</h3>
<h3>.[page:Float y]</h3>
<h3>.[page:Float y]</h3>
<h3>.[page:Float z]</h3>
<h3>.[page:Float z]</h3>
<h3>.[page:Float w]</h3>
<h3>.[page:Float w]</h3>
<h2>Methods</h2>
<h2>Methods</h2>
<h3>.set( [page:Float x], [page:Float y], [page:Float z], [page:Float w] ) [page:Quaternion]</h3>
<div>
Sets values of this quaternion.
</div>
<h3>.set( [page:Float x], [page:Float y], [page:Float z], [page:Float w] ) [page:Quaternion]</h3>
<div>
Sets values of this quaternion.
</div>
<h3>.copy( [page:Quaternion q] ) [page:Quaternion]</h3>
<div>
Copies values of *q* to this quaternion.
</div>
<h3>.copy( [page:Quaternion q] ) [page:Quaternion]</h3>
<div>
Copies values of *q* to this quaternion.
</div>
<h3>.setFromEuler( [page:Vector3 vector] ) [page:Quaternion]</h3>
<div>
Sets this quaternion from rotation specified by Euler angles.
</div>
<h3>.setFromEuler( [page:Vector3 vector] ) [page:Quaternion]</h3>
<div>
Sets this quaternion from rotation specified by Euler angles.
</div>
<h3>.setFromAxisAngle( [page:Vector3 axis], [page:Float angle] ) [page:Quaternion]</h3>
<div>
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 />
*Axis* have to be normalized, *angle* is in radians.
</div>
<h3>.setFromAxisAngle( [page:Vector3 axis], [page:Float angle] ) [page:Quaternion]</h3>
<div>
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 />
*Axis* have to be normalized, *angle* is in radians.
</div>
<h3>.setFromRotationMatrix( [page:Matrix4 m] ) [page:Quaternion]</h3>
<div>
Sets this quaternion from rotation component of *m*.
Adapted from [link:http://www.euclideanspace.com/maths/geometry/rotations/conversions/matrixToQuaternion/index.htm].
</div>
<h3>.setFromRotationMatrix( [page:Matrix4 m] ) [page:Quaternion]</h3>
<div>
Sets this quaternion from rotation component of *m*.
Adapted from [link:http://www.euclideanspace.com/maths/geometry/rotations/conversions/matrixToQuaternion/index.htm].
</div>
<h3>.calculateW() [page:Quaternion]</h3>
<div>
Calculates *w* component of this quaternion.
</div>
<h3>.calculateW() [page:Quaternion]</h3>
<div>
Calculates *w* component of this quaternion.
</div>
<h3>.inverse() [page:Quaternion]</h3>
<div>
Inverts this quaternion.
</div>
<h3>.inverse() [page:Quaternion]</h3>
<div>
Inverts this quaternion.
</div>
<h3>.length() [page:Float]</h3>
<div>
Computes length of this quaternion.
</div>
<h3>.length() [page:Float]</h3>
<div>
Computes length of this quaternion.
</div>
<h3>.normalize() [page:Quaternion]</h3>
<div>
Normalizes this quaternion.
</div>
<h3>.normalize() [page:Quaternion]</h3>
<div>
Normalizes this quaternion.
</div>
<h3>.multiply( [page:Quaternion a], [page:Quaternion b] ) [page:Quaternion]</h3>
<div>
Sets this quaternion to *a x b*<br />
Adapted from [link:http://www.euclideanspace.com/maths/algebra/realNormedAlgebra/quaternions/code/index.htm].
</div>
<h3>.multiply( [page:Quaternion a], [page:Quaternion b] ) [page:Quaternion]</h3>
<div>
Sets this quaternion to *a x b*<br />
Adapted from [link:http://www.euclideanspace.com/maths/algebra/realNormedAlgebra/quaternions/code/index.htm].
</div>
<h3>.multiplySelf( [page:Quaternion b] ) [page:Quaternion]</h3>
<div>
Multiplies this quaternion by *b*.
</div>
<h3>.multiplySelf( [page:Quaternion b] ) [page:Quaternion]</h3>
<div>
Multiplies this quaternion by *b*.
</div>
<h3>.multiplyVector3( [page:Vector3 vector], [page:Vector3 dest] ) [page:Quaternion]</h3>
<div>
Rotates *vector* by this quaternion into *dest*.<br />
If *dest* is not specified, result goes to *vec*.
</div>
<h3>.multiplyVector3( [page:Vector3 vector], [page:Vector3 dest] ) [page:Quaternion]</h3>
<div>
Rotates *vector* by this quaternion into *dest*.<br />
If *dest* is not specified, result goes to *vec*.
</div>
<h3>.clone() [page:Quaternion]</h3>
<div>
Clones this quaternion.
</div>
<h3>.clone() [page:Quaternion]</h3>
<div>
Clones this quaternion.
</div>
<h2>Static methods</h2>
<h2>Static methods</h2>
<h3>.slerp( [page:Quaternion qa], [page:Quaternion qb], [page:Quaternion qm], [page:Float t] ) [page:Quaternion]</h3>
<div>
Adapted from [link:http://www.euclideanspace.com/maths/algebra/realNormedAlgebra/quaternions/slerp/].
</div>
<h3>.slerp( [page:Quaternion qa], [page:Quaternion qb], [page:Quaternion qm], [page:Float t] ) [page:Quaternion]</h3>
<div>
Adapted from [link:http://www.euclideanspace.com/maths/algebra/realNormedAlgebra/quaternions/slerp/].
</div>
<h2>Source</h2>
<h2>Source</h2>
[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
\ No newline at end of file
[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
</body>
</html>
<h1>[name]</h1>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<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">Representation of a ray in space.</div>
<div class="desc">Representation of a ray in space.</div>
<h2>Constructor</h2>
<h2>Constructor</h2>
<h3>[name]()</h3>
<h3>[name]()</h3>
<h2>Properties</h2>
<h2>Properties</h2>
<h3>.[page:Vector3 origin]</h3>
<h3>.[page:Vector3 origin]</h3>
<h3>.[page:Vector3 direction]</h3>
<h3>.[page:Vector3 direction]</h3>
<h2>Methods</h2>
<h2>Methods</h2>
<h3>.setPrecision( [page:Float value] )</h3>
<h3>.setPrecision( [page:Float value] )</h3>
<h3>.intersectObject( [page:Object3D object] ) [page:Object]</h3>
<h3>.intersectObject( [page:Object3D object] ) [page:Object]</h3>
<h3>.intersectObjects( [page:Array objects] ) [page:Array]</h3>
<h3>.intersectObjects( [page:Array objects] ) [page:Array]</h3>
<h2>Source</h2>
<h2>Source</h2>
[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
\ No newline at end of file
[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
</body>
</html>
<h1>[name]</h1>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<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">
Mainly used internaly by [page:CanvasRenderer] for 2D clipping.
</div>
<div class="desc">
Mainly used internaly by [page:CanvasRenderer] for 2D clipping.
</div>
<h2>Constructor</h2>
<h2>Constructor</h2>
<h3>[name]()</h3>
<h3>[name]()</h3>
<h2>Methods</h2>
<h2>Methods</h2>
<h3>.getX() [page:Float]</h3>
<h3>.getX() [page:Float]</h3>
<h3>.getY() [page:Float]</h3>
<h3>.getY() [page:Float]</h3>
<h3>.getWidth() [page:Float]</h3>
<h3>.getWidth() [page:Float]</h3>
<h3>.getHeight() [page:Float]</h3>
<h3>.getHeight() [page:Float]</h3>
<h3>.getLeft() [page:Float]</h3>
<h3>.getLeft() [page:Float]</h3>
<h3>.getTop() [page:Float]</h3>
<h3>.getTop() [page:Float]</h3>
<h3>.getRight() [page:Float]</h3>
<h3>.getRight() [page:Float]</h3>
<h3>.getBottom() [page:Float]</h3>
<h3>.getBottom() [page:Float]</h3>
<h3>.set( [page:Float left], [page:Float top], [page:Float right], [page:Float bottom] )</h3>
<h3>.set( [page:Float left], [page:Float top], [page:Float right], [page:Float bottom] )</h3>
<h3>.addPoint( [page:Float x], [page:Float y] )</h3>
<h3>.addPoint( [page:Float x], [page:Float y] )</h3>
<h3>.add3Points( [page:Float x1], [page:Float y1], [page:Float x2], [page:Float y2], [page:Float x3], [page:Float y3] )</h3>
<h3>.add3Points( [page:Float x1], [page:Float y1], [page:Float x2], [page:Float y2], [page:Float x3], [page:Float y3] )</h3>
<h3>.addRectangle( [page:Rectangle r] )</h3>
<h3>.addRectangle( [page:Rectangle r] )</h3>
<h3>.inflate( [page:Float v] )</h3>
<h3>.inflate( [page:Float v] )</h3>
<h3>.minSelf( [page:Rectangle r] )</h3>
<h3>.minSelf( [page:Rectangle r] )</h3>
<h3>.intersects( [page:Rectangle r] ) [page:Boolean]</h3>
<div>
Adapted from [link:http://gamemath.com/2011/09/detecting-whether-two-boxes-overlap/].
</div>
<h3>.intersects( [page:Rectangle r] ) [page:Boolean]</h3>
<div>
Adapted from [link:http://gamemath.com/2011/09/detecting-whether-two-boxes-overlap/].
</div>
<h3>.empty()</h3>
<h3>.empty()</h3>
<h3>.isEmpty() [page:Boolean]</h3>
<h3>.isEmpty() [page:Boolean]</h3>
<h2>Source</h2>
<h2>Source</h2>
[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
\ No newline at end of file
[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
</body>
</html>
<h1>[name]</h1>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<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">Represents a spline.</div>
<div class="desc">Represents a spline.</div>
<h2>Constructor</h2>
<h2>Constructor</h2>
<h3>[name]()</h3>
<h3>[name]()</h3>
<h2>Properties</h2>
<h2>Properties</h2>
<h3>.[page:Vector3 todo]</h3>
<h3>.[page:Vector3 todo]</h3>
<h2>Methods</h2>
<h2>Methods</h2>
<h3>.todo( [page:Vector3 todo] )</h3>
<div>
todo — todo<br />
</div>
<h3>.todo( [page:Vector3 todo] )</h3>
<div>
todo — todo<br />
</div>
<h2>Source</h2>
<h2>Source</h2>
[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
\ No newline at end of file
[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
</body>
</html>
<h1>[name]</h1>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<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 texture coordinate.</div>
<div class="desc">A texture coordinate.</div>
<h2>Example</h2>
<h2>Example</h2>
<code>var uv = new THREE.UV( 0, 1 );</code>
<code>var uv = new THREE.UV( 0, 1 );</code>
<h2>Constructor</h2>
<h2>Constructor</h2>
<h3>[name]( [page:Float u], [page:Float v] )</h3>
<div>
u — Horizontal coordinate.<br />
v — Vertical coordinate.<br />
</div>
<h3>[name]( [page:Float u], [page:Float v] )</h3>
<div>
u — Horizontal coordinate.<br />
v — Vertical coordinate.<br />
</div>
<h2>Properties</h2>
<h2>Properties</h2>
<h3>.[page:Float u]</h3>
<div>
Horizontal coordinate.<br />
</div>
<h3>.[page:Float u]</h3>
<div>
Horizontal coordinate.<br />
</div>
<h3>.[page:Float v]</h3>
<div>
Vertical coordinate.<br />
</div>
<h3>.[page:Float v]</h3>
<div>
Vertical coordinate.<br />
</div>
<h2>Methods</h2>
<h2>Methods</h2>
<h3>.set( [page:Float u], [page:Float v] )</h3>
<h3>.set( [page:Float u], [page:Float v] )</h3>
<h3>.copy( [page:UV uv] )</h3>
<h3>.copy( [page:UV uv] )</h3>
<h3>.clone() [page:UV]</h3>
<h3>.clone() [page:UV]</h3>
<h2>Source</h2>
<h2>Source</h2>
[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
\ No newline at end of file
[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
</body>
</html>
<h1>[name]</h1>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<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">2D Vector.</div>
<div class="desc">2D Vector.</div>
<h2>Example</h2>
<h2>Example</h2>
<code>var a = new THREE.Vector2( 0, 1 );
var b = new THREE.Vector2( 1, 0 );
<code>var a = new THREE.Vector2( 0, 1 );
var b = new THREE.Vector2( 1, 0 );
var d = a.distanceTo( b );
</code>
var d = a.distanceTo( b );
</code>
<h2>Constructor</h2>
<h2>Constructor</h2>
<h3>[name]( [page:Float x], [page:Float y] )</h3>
<h3>[name]( [page:Float x], [page:Float y] )</h3>
<h2>Properties</h2>
<h2>Properties</h2>
<h3>.[page:Float x]</h3>
<h3>.[page:Float x]</h3>
<h3>.[page:Float y]</h3>
<h3>.[page:Float y]</h3>
<h2>Methods</h2>
<h2>Methods</h2>
<h3>.set( [page:Float x], [page:Float y] ) [page:Vector2]</h3>
<div>
Sets value of this vector.
</div>
<h3>.set( [page:Float x], [page:Float y] ) [page:Vector2]</h3>
<div>
Sets value of this vector.
</div>
<h3>.copy( [page:Vector2 v] ) [page:Vector2]</h3>
<div>
Copies value of *v* to this vector.
</div>
<h3>.copy( [page:Vector2 v] ) [page:Vector2]</h3>
<div>
Copies value of *v* to this vector.
</div>
<h3>.add( [page:Vector2 a], [page:Vector2 b] ) [page:Vector2]</h3>
<div>
Sets this vector to *a + b*.
</div>
<h3>.add( [page:Vector2 a], [page:Vector2 b] ) [page:Vector2]</h3>
<div>
Sets this vector to *a + b*.
</div>
<h3>.addSelf( [page:Vector2 v] ) [page:Vector2]</h3>
<div>
Adds *v* to this vector.
</div>
<h3>.addSelf( [page:Vector2 v] ) [page:Vector2]</h3>
<div>
Adds *v* to this vector.
</div>
<h3>.sub( [page:Vector2 a], [page:Vector2 b] ) [page:Vector2]</h3>
<div>
Sets this vector to *a - b*.
</div>
<h3>.sub( [page:Vector2 a], [page:Vector2 b] ) [page:Vector2]</h3>
<div>
Sets this vector to *a - b*.
</div>
<h3>.subSelf( [page:Vector2 v] ) [page:Vector2]</h3>
<div>
Subtracts *v* from this vector.
</div>
<h3>.subSelf( [page:Vector2 v] ) [page:Vector2]</h3>
<div>
Subtracts *v* from this vector.
</div>
<h3>.multiplyScalar( [page:Float s] ) [page:Vector2]</h3>
<div>
Multiplies this vector by scalar *s*.
</div>
<h3>.multiplyScalar( [page:Float s] ) [page:Vector2]</h3>
<div>
Multiplies this vector by scalar *s*.
</div>
<h3>.divideScalar( [page:Float s] ) [page:Vector2]</h3>
<div>
Divides this vector by scalar *s*.<br />
Set vector to *( 0, 0 )* if *s == 0*.
</div>
<h3>.divideScalar( [page:Float s] ) [page:Vector2]</h3>
<div>
Divides this vector by scalar *s*.<br />
Set vector to *( 0, 0 )* if *s == 0*.
</div>
<h3>.negate() [page:Vector2]</h3>
<div>
Inverts this vector.
</div>
<h3>.negate() [page:Vector2]</h3>
<div>
Inverts this vector.
</div>
<h3>.dot( [page:Vector2 v] ) [page:Float]</h3>
<div>
Computes dot product of this vector and *v*.
</div>
<h3>.dot( [page:Vector2 v] ) [page:Float]</h3>
<div>
Computes dot product of this vector and *v*.
</div>
<h3>.lengthSq() [page:Float]</h3>
<div>
Computes squared length of this vector.
</div>
<h3>.lengthSq() [page:Float]</h3>
<div>
Computes squared length of this vector.
</div>
<h3>.length() [page:Float]</h3>
<div>
Computes length of this vector.
</div>
<h3>.length() [page:Float]</h3>
<div>
Computes length of this vector.
</div>
<h3>.normalize() [page:Vector2]</h3>
<div>
Normalizes this vector.
</div>
<h3>.normalize() [page:Vector2]</h3>
<div>
Normalizes this vector.
</div>
<h3>.distanceTo( [page:Vector2 v] ) [page:Float]</h3>
<div>
Computes distance of this vector to *v*.
</div>
<h3>.distanceTo( [page:Vector2 v] ) [page:Float]</h3>
<div>
Computes distance of this vector to *v*.
</div>
<h3>.distanceToSquared( [page:Vector2 v] ) [page:Float]</h3>
<div>
Computes squared distance of this vector to *v*.
</div>
<h3>.distanceToSquared( [page:Vector2 v] ) [page:Float]</h3>
<div>
Computes squared distance of this vector to *v*.
</div>
<h3>.setLength( [page:Float l] ) [page:Vector2]</h3>
<div>
Normalizes this vector and multiplies it by *l*.
</div>
<h3>.setLength( [page:Float l] ) [page:Vector2]</h3>
<div>
Normalizes this vector and multiplies it by *l*.
</div>
<h3>.equals( [page:Vector2 v] ) [page:Vector2]</h3>
<div>
Checks for strict equality of this vector and *v*.
</div>
<h3>.equals( [page:Vector2 v] ) [page:Vector2]</h3>
<div>
Checks for strict equality of this vector and *v*.
</div>
<h3>.isZero() [page:Boolean]</h3>
<div>
Checks if length of this vector is within small epsilon (*0.0001*).
</div>
<h3>.clone() [page:Vector2]</h3>
<div>
Clones this vector.
</div>
<h2>Source</h2>
[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
\ No newline at end of file
<h3>.isZero() [page:Boolean]</h3>
<div>
Checks if length of this vector is within small epsilon (*0.0001*).
</div>
<h3>.clone() [page:Vector2]</h3>
<div>
Clones this vector.
</div>
<h2>Source</h2>
[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
</body>
</html>
<h1>[name]</h1>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<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">3D vector.</div>
<div class="desc">3D vector.</div>
<h2>Example</h2>
<h2>Example</h2>
<code>var a = new THREE.Vector3( 1, 0, 0 );
var b = new THREE.Vector3( 0, 1, 0 );
<code>var a = new THREE.Vector3( 1, 0, 0 );
var b = new THREE.Vector3( 0, 1, 0 );
var c = new THREE.Vector3();
c.cross( a, b );
</code>
var c = new THREE.Vector3();
c.cross( a, b );
</code>
<h2>Constructor</h2>
<h2>Constructor</h2>
<h3>[name]( [page:Float x], [page:Float y], [page:Float z] )</h3>
<h3>[name]( [page:Float x], [page:Float y], [page:Float z] )</h3>
<h2>Properties</h2>
<h2>Properties</h2>
<h3>.[page:Float x]</h3>
<h3>.[page:Float x]</h3>
<h3>.[page:Float y]</h3>
<h3>.[page:Float y]</h3>
<h3>.[page:Float z]</h3>
<h3>.[page:Float z]</h3>
<h2>Methods</h2>
<h2>Methods</h2>
<h3>.set( [page:Float x], [page:Float y], [page:Float z] ) [page:Vector3]</h3>
<div>
Sets value of this vector.
</div>
<h3>.set( [page:Float x], [page:Float y], [page:Float z] ) [page:Vector3]</h3>
<div>
Sets value of this vector.
</div>
<h3>.setX( [page:Float x] ) [page:Vector3]</h3>
<div>
Sets x value of this vector.
</div>
<h3>.setX( [page:Float x] ) [page:Vector3]</h3>
<div>
Sets x value of this vector.
</div>
<h3>.setY( [page:Float y] ) [page:Vector3]</h3>
<div>
Sets y value of this vector.
</div>
<h3>.setY( [page:Float y] ) [page:Vector3]</h3>
<div>
Sets y value of this vector.
</div>
<h3>.setZ( [page:Float z] ) [page:Vector3]</h3>
<div>
Sets z value of this vector.
</div>
<h3>.setZ( [page:Float z] ) [page:Vector3]</h3>
<div>
Sets z value of this vector.
</div>
<h3>.copy( [page:Vector3 v] ) [page:Vector3]</h3>
<div>
Copies value of *v* to this vector.
</div>
<h3>.add( [page:Vector3 a], [page:Vector3 b] ) [page:Vector3]</h3>
<div>
Sets this vector to *a + b*.
</div>
<h3>.addSelf( [page:Vector3 v] ) [page:Vector3]</h3>
<div>
Adds *v* to this vector.
</div>
<h3>.sub( [page:Vector3 a], [page:Vector3 b] ) [page:Vector3]</h3>
<div>
Sets this vector to *a - b*.
</div>
<h3>.subSelf( [page:Vector3 v] ) [page:Vector3]</h3>
<div>
Subtracts *v* from this vector.
</div>
<h3>.multiplyScalar( [page:Float s] ) [page:Vector3]</h3>
<div>
Multiplies this vector by scalar *s*.
</div>
<h3>.copy( [page:Vector3 v] ) [page:Vector3]</h3>
<div>
Copies value of *v* to this vector.
</div>
<h3>.divideScalar( [page:Float s] ) [page:Vector3]</h3>
<div>
Divides this vector by scalar *s*.<br />
Set vector to *( 0, 0, 0 )* if *s == 0*.
</div>
<h3>.negate() [page:Vector3]</h3>
<div>
Inverts this vector.
</div>
<h3>.dot( [page:Vector3 v] ) [page:Float]</h3>
<div>
Computes dot product of this vector and *v*.
</div>
<h3>.add( [page:Vector3 a], [page:Vector3 b] ) [page:Vector3]</h3>
<div>
Sets this vector to *a + b*.
</div>
<h3>.lengthSq() [page:Float]</h3>
<div>
Computes squared length of this vector.
</div>
<h3>.addSelf( [page:Vector3 v] ) [page:Vector3]</h3>
<div>
Adds *v* to this vector.
</div>
<h3>.length() [page:Float]</h3>
<div>
Computes length of this vector.
</div>
<h3>.sub( [page:Vector3 a], [page:Vector3 b] ) [page:Vector3]</h3>
<div>
Sets this vector to *a - b*.
</div>
<h3>.subSelf( [page:Vector3 v] ) [page:Vector3]</h3>
<div>
Subtracts *v* from this vector.
</div>
<h3>.multiplyScalar( [page:Float s] ) [page:Vector3]</h3>
<div>
Multiplies this vector by scalar *s*.
</div>
<h3>.divideScalar( [page:Float s] ) [page:Vector3]</h3>
<div>
Divides this vector by scalar *s*.<br />
Set vector to *( 0, 0, 0 )* if *s == 0*.
</div>
<h3>.negate() [page:Vector3]</h3>
<div>
Inverts this vector.
</div>
<h3>.dot( [page:Vector3 v] ) [page:Float]</h3>
<div>
Computes dot product of this vector and *v*.
</div>
<h3>.lengthSq() [page:Float]</h3>
<div>
Computes squared length of this vector.
</div>
<h3>.length() [page:Float]</h3>
<div>
Computes length of this vector.
</div>
<h3>.lengthManhattan() [page:Float]</h3>
<div>
Computes Manhattan length of this vector.<br />
[link:http://en.wikipedia.org/wiki/Taxicab_geometry]
</div>
<h3>.normalize() [page:Vector3]</h3>
<div>
Normalizes this vector.
</div>
<h3>.distanceTo( [page:Vector3 v] ) [page:Vector3]</h3>
<div>
Computes distance of this vector to *v*.
</div>
<h3>.distanceToSquared( [page:Vector3 v] ) [page:Vector3]</h3>
<div>
Computes squared distance of this vector to *v*.
</div>
<h3>.normalize() [page:Vector3]</h3>
<div>
Normalizes this vector.
</div>
<h3>.setLength( [page:Float l] ) [page:Vector3]</h3>
<div>
Normalizes this vector and multiplies it by *l*.
</div>
<h3>.cross( [page:Vector3 a], [page:Vector3 b] ) [page:Vector3]</h3>
<div>
Sets this vector to cross product of *a* and *b*.
</div>
<h3>.crossSelf( [page:Vector3 v] ) [page:Vector3]</h3>
<div>
Sets this vector to cross product of itself and *v*.
</div>
<h3>.getPositionFromMatrix( [page:Matrix4 m] ) [page:Vector3]</h3>
<div>
Sets this vector extracting position from matrix transform.
</div>
<h3>.getRotationFromMatrix( [page:Matrix4 m] ) [page:Vector3]</h3>
<div>
Sets this vector extracting Euler angles rotation from matrix transform.
</div>
<h3>.getScaleFromMatrix( [page:Matrix4 m] ) [page:Vector3]</h3>
<div>
Sets this vector extracting scale from matrix transform.
</div>
<h3>.equals( [page:Vector3 v] ) [page:Vector3]</h3>
<div>
Checks for strict equality of this vector and *v*.
</div>
<h3>.isZero() [page:Boolean]</h3>
<div>
Checks if length of this vector is within small epsilon (*0.0001*).
</div>
<h3>.clone() [page:Vector3]</h3>
<div>
Clones this vector.
</div>
<h2>Source</h2>
[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
\ No newline at end of file
<h3>.lengthManhattan() [page:Float]</h3>
<div>
Computes Manhattan length of this vector.<br />
[link:http://en.wikipedia.org/wiki/Taxicab_geometry]
</div>
<h3>.normalize() [page:Vector3]</h3>
<div>
Normalizes this vector.
</div>
<h3>.distanceTo( [page:Vector3 v] ) [page:Vector3]</h3>
<div>
Computes distance of this vector to *v*.
</div>
<h3>.distanceToSquared( [page:Vector3 v] ) [page:Vector3]</h3>
<div>
Computes squared distance of this vector to *v*.
</div>
<h3>.normalize() [page:Vector3]</h3>
<div>
Normalizes this vector.
</div>
<h3>.setLength( [page:Float l] ) [page:Vector3]</h3>
<div>
Normalizes this vector and multiplies it by *l*.
</div>
<h3>.cross( [page:Vector3 a], [page:Vector3 b] ) [page:Vector3]</h3>
<div>
Sets this vector to cross product of *a* and *b*.
</div>
<h3>.crossSelf( [page:Vector3 v] ) [page:Vector3]</h3>
<div>
Sets this vector to cross product of itself and *v*.
</div>
<h3>.getPositionFromMatrix( [page:Matrix4 m] ) [page:Vector3]</h3>
<div>
Sets this vector extracting position from matrix transform.
</div>
<h3>.getRotationFromMatrix( [page:Matrix4 m] ) [page:Vector3]</h3>
<div>
Sets this vector extracting Euler angles rotation from matrix transform.
</div>
<h3>.getScaleFromMatrix( [page:Matrix4 m] ) [page:Vector3]</h3>
<div>
Sets this vector extracting scale from matrix transform.
</div>
<h3>.equals( [page:Vector3 v] ) [page:Vector3]</h3>
<div>
Checks for strict equality of this vector and *v*.
</div>
<h3>.isZero() [page:Boolean]</h3>
<div>
Checks if length of this vector is within small epsilon (*0.0001*).
</div>
<h3>.clone() [page:Vector3]</h3>
<div>
Clones this vector.
</div>
<h2>Source</h2>
[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
</body>
</html>
<h1>[name]</h1>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<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">4D vector.</div>
<div class="desc">4D vector.</div>
<h2>Constructor</h2>
<h2>Constructor</h2>
<h3>[name]( [page:Float x], [page:Float y], [page:Float z], [page:Float w] )</h3>
<h3>[name]( [page:Float x], [page:Float y], [page:Float z], [page:Float w] )</h3>
<h2>Properties</h2>
<h2>Properties</h2>
<h3>.[page:Float x]</h3>
<h3>.[page:Float x]</h3>
<h3>.[page:Float y]</h3>
<h3>.[page:Float y]</h3>
<h3>.[page:Float z]</h3>
<h3>.[page:Float z]</h3>
<h3>.[page:Float w]</h3>
<h3>.[page:Float w]</h3>
<h2>Methods</h2>
<h2>Methods</h2>
<h3>.set( [page:Float x], [page:Float y], [page:Float z], [page:Float w] ) [page:Vector4]</h3>
<div>
Sets value of this vector.
</div>
<h3>.set( [page:Float x], [page:Float y], [page:Float z], [page:Float w] ) [page:Vector4]</h3>
<div>
Sets value of this vector.
</div>
<h3>.copy( [page:Vector4 v] ) [page:Vector4]</h3>
<div>
Copies value of *v* to this vector.
</div>
<h3>.copy( [page:Vector4 v] ) [page:Vector4]</h3>
<div>
Copies value of *v* to this vector.
</div>
<h3>.add( [page:Vector4 a], [page:Vector4 b] ) [page:Vector4]</h3>
<div>
Sets this vector to *a + b*.
</div>
<h3>.add( [page:Vector4 a], [page:Vector4 b] ) [page:Vector4]</h3>
<div>
Sets this vector to *a + b*.
</div>
<h3>.addSelf( [page:Vector4 v] ) [page:Vector4]</h3>
<div>
Adds *v* to this vector.
</div>
<h3>.addSelf( [page:Vector4 v] ) [page:Vector4]</h3>
<div>
Adds *v* to this vector.
</div>
<h3>.sub( [page:Vector4 a], [page:Vector4 b] ) [page:Vector4]</h3>
<div>
Sets this vector to *a - b*.
</div>
<h3>.sub( [page:Vector4 a], [page:Vector4 b] ) [page:Vector4]</h3>
<div>
Sets this vector to *a - b*.
</div>
<h3>.subSelf( [page:Vector4 v] ) [page:Vector4]</h3>
<div>
Subtracts *v* from this vector.
</div>
<h3>.subSelf( [page:Vector4 v] ) [page:Vector4]</h3>
<div>
Subtracts *v* from this vector.
</div>
<h3>.multiplyScalar( [page:Float s] ) [page:Vector4]</h3>
<div>
Multiplies this vector by scalar *s*.
</div>
<h3>.multiplyScalar( [page:Float s] ) [page:Vector4]</h3>
<div>
Multiplies this vector by scalar *s*.
</div>
<h3>.divideScalar( [page:Float s] ) [page:Vector4]</h3>
<div>
Divides this vector by scalar *s*.<br />
Set vector to *( 0, 0, 0 )* if *s == 0*.
</div>
<h3>.divideScalar( [page:Float s] ) [page:Vector4]</h3>
<div>
Divides this vector by scalar *s*.<br />
Set vector to *( 0, 0, 0 )* if *s == 0*.
</div>
<h3>.negate() [page:Vector4]</h3>
<div>
Inverts this vector.
</div>
<h3>.negate() [page:Vector4]</h3>
<div>
Inverts this vector.
</div>
<h3>.dot( [page:Vector4 v] ) [page:Float]</h3>
<div>
Computes dot product of this vector and *v*.
</div>
<h3>.dot( [page:Vector4 v] ) [page:Float]</h3>
<div>
Computes dot product of this vector and *v*.
</div>
<h3>.lengthSq() [page:Float]</h3>
<div>
Computes squared length of this vector.
</div>
<h3>.lengthSq() [page:Float]</h3>
<div>
Computes squared length of this vector.
</div>
<h3>.length() [page:Float]</h3>
<div>
Computes length of this vector.
</div>
<h3>.length() [page:Float]</h3>
<div>
Computes length of this vector.
</div>
<h3>.normalize() [page:Vector4]</h3>
<div>
Normalizes this vector.
</div>
<h3>.normalize() [page:Vector4]</h3>
<div>
Normalizes this vector.
</div>
<h3>.setLength( [page:Float l] ) [page:Vector4]</h3>
<div>
Normalizes this vector and multiplies it by *l*.
</div>
<h3>.setLength( [page:Float l] ) [page:Vector4]</h3>
<div>
Normalizes this vector and multiplies it by *l*.
</div>
<h3>.lerpSelf( [page:Vector4 v], [page:Float alpha] ) [page:Vector4]</h3>
<div>
Linearly interpolate between this vector and *v* with *alpha* factor.
</div>
<h3>.lerpSelf( [page:Vector4 v], [page:Float alpha] ) [page:Vector4]</h3>
<div>
Linearly interpolate between this vector and *v* with *alpha* factor.
</div>
<h3>.clone() [page:Vector4]</h3>
<div>
Clones this vector.
</div>
<h3>.clone() [page:Vector4]</h3>
<div>
Clones this vector.
</div>
<h2>Source</h2>
<h2>Source</h2>
[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
\ No newline at end of file
[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
</body>
</html>
<h1>[name]</h1>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<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>
<div class="desc">todo</div>
<h2>Constructor</h2>
<h2>Constructor</h2>
<h3>[name]()</h3>
<h3>[name]()</h3>
<h2>Properties</h2>
<h2>Properties</h2>
<h3>.[page:Vector3 todo]</h3>
<h3>.[page:Vector3 todo]</h3>
<h2>Methods</h2>
<h2>Methods</h2>
<h3>.todo( [page:Vector3 todo] )</h3>
<div>
todo — todo<br />
</div>
<h3>.todo( [page:Vector3 todo] )</h3>
<div>
todo — todo<br />
</div>
<h2>Source</h2>
<h2>Source</h2>
[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
\ No newline at end of file
[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
</body>
</html>
<h1>[name]</h1>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<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>
<div class="desc">todo</div>
<h2>Constructor</h2>
<h2>Constructor</h2>
<h3>[name]()</h3>
<h3>[name]()</h3>
<h2>Properties</h2>
<h2>Properties</h2>
<h3>.[page:Vector3 todo]</h3>
<h3>.[page:Vector3 todo]</h3>
<h2>Methods</h2>
<h2>Methods</h2>
<h3>.todo( [page:Vector3 todo] )</h3>
<div>
todo — todo<br />
</div>
<h3>.todo( [page:Vector3 todo] )</h3>
<div>
todo — todo<br />
</div>
<h2>Source</h2>
<h2>Source</h2>
[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
\ No newline at end of file
[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
</body>
</html>
<h1>[name]</h1>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<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>
<div class="desc">todo</div>
<h2>Constructor</h2>
<h2>Constructor</h2>
<h3>[name]()</h3>
<h3>[name]()</h3>
<h2>Properties</h2>
<h2>Properties</h2>
<h3>.[page:Vector3 todo]</h3>
<h3>.[page:Vector3 todo]</h3>
<h2>Methods</h2>
<h2>Methods</h2>
<h3>.todo( [page:Vector3 todo] )</h3>
<div>
todo — todo<br />
</div>
<h3>.todo( [page:Vector3 todo] )</h3>
<div>
todo — todo<br />
</div>
<h2>Source</h2>
<h2>Source</h2>
[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
\ No newline at end of file
[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
</body>
</html>
<h1>[name]</h1>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<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>
<div class="desc">todo</div>
<h2>Constructor</h2>
<h2>Constructor</h2>
<h3>[name]()</h3>
<h3>[name]()</h3>
<h2>Properties</h2>
<h2>Properties</h2>
<h3>.[page:Vector3 todo]</h3>
<h3>.[page:Vector3 todo]</h3>
<h2>Methods</h2>
<h2>Methods</h2>
<h3>.todo( [page:Vector3 todo] )</h3>
<div>
todo — todo<br />
</div>
<h3>.todo( [page:Vector3 todo] )</h3>
<div>
todo — todo<br />
</div>
<h2>Source</h2>
<h2>Source</h2>
[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
\ No newline at end of file
[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
</body>
</html>
<h1>[name]</h1>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<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>
<div class="desc">todo</div>
<h2>Constructor</h2>
<h2>Constructor</h2>
<h3>[name]()</h3>
<h3>[name]()</h3>
<h2>Properties</h2>
<h2>Properties</h2>
<h3>.[page:Vector3 todo]</h3>
<h3>.[page:Vector3 todo]</h3>
<h2>Methods</h2>
<h2>Methods</h2>
<h3>.todo( [page:Vector3 todo] )</h3>
<div>
todo — todo<br />
</div>
<h3>.todo( [page:Vector3 todo] )</h3>
<div>
todo — todo<br />
</div>
<h2>Source</h2>
<h2>Source</h2>
[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
\ No newline at end of file
[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
</body>
</html>
<h1>[name]</h1>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<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>
<div class="desc">todo</div>
<h2>Constructor</h2>
<h2>Constructor</h2>
<h3>[name]()</h3>
<h3>[name]()</h3>
<h2>Properties</h2>
<h2>Properties</h2>
<h3>.[page:Vector3 todo]</h3>
<h3>.[page:Vector3 todo]</h3>
<h2>Methods</h2>
<h2>Methods</h2>
<h3>.todo( [page:Vector3 todo] )</h3>
<div>
todo — todo<br />
</div>
<h3>.todo( [page:Vector3 todo] )</h3>
<div>
todo — todo<br />
</div>
<h2>Source</h2>
<h2>Source</h2>
[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
\ No newline at end of file
[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
</body>
</html>
<h1>[name]</h1>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<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>
<div class="desc">todo</div>
<h2>Constructor</h2>
<h2>Constructor</h2>
<h3>[name]()</h3>
<h3>[name]()</h3>
<h2>Properties</h2>
<h2>Properties</h2>
<h3>.[page:Vector3 todo]</h3>
<h3>.[page:Vector3 todo]</h3>
<h2>Methods</h2>
<h2>Methods</h2>
<h3>.todo( [page:Vector3 todo] )</h3>
<div>
todo — todo<br />
</div>
<h3>.todo( [page:Vector3 todo] )</h3>
<div>
todo — todo<br />
</div>
<h2>Source</h2>
<h2>Source</h2>
[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
\ No newline at end of file
[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
</body>
</html>
<h1>[name]</h1>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<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>
<div class="desc">todo</div>
<h2>Constructor</h2>
<h2>Constructor</h2>
<h3>[name]()</h3>
<h3>[name]()</h3>
<h2>Properties</h2>
<h2>Properties</h2>
<h3>.[page:Vector3 todo]</h3>
<h3>.[page:Vector3 todo]</h3>
<h2>Methods</h2>
<h2>Methods</h2>
<h3>.todo( [page:Vector3 todo] )</h3>
<div>
todo — todo<br />
</div>
<h3>.todo( [page:Vector3 todo] )</h3>
<div>
todo — todo<br />
</div>
<h2>Source</h2>
<h2>Source</h2>
[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
\ No newline at end of file
[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
</body>
</html>
<h1>[name]</h1>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<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>
<div class="desc">todo</div>
<h2>Constructor</h2>
<h2>Constructor</h2>
<h3>[name]()</h3>
<h3>[name]()</h3>
<h2>Properties</h2>
<h2>Properties</h2>
<h3>.[page:Vector3 todo]</h3>
<h3>.[page:Vector3 todo]</h3>
<h2>Methods</h2>
<h2>Methods</h2>
<h3>.todo( [page:Vector3 todo] )</h3>
<div>
todo — todo<br />
</div>
<h3>.todo( [page:Vector3 todo] )</h3>
<div>
todo — todo<br />
</div>
<h2>Source</h2>
<h2>Source</h2>
[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
\ No newline at end of file
[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
</body>
</html>
<h1>[name]</h1>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<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>
<div class="desc">todo</div>
<h2>Constructor</h2>
<h2>Constructor</h2>
<h3>[name]()</h3>
<h3>[name]()</h3>
<h2>Properties</h2>
<h2>Properties</h2>
<h3>.[page:Vector3 todo]</h3>
<h3>.[page:Vector3 todo]</h3>
<h2>Methods</h2>
<h2>Methods</h2>
<h3>.todo( [page:Vector3 todo] )</h3>
<div>
todo — todo<br />
</div>
<h3>.todo( [page:Vector3 todo] )</h3>
<div>
todo — todo<br />
</div>
<h2>Source</h2>
<h2>Source</h2>
[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
\ No newline at end of file
[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
</body>
</html>
<h1>[name]</h1>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<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>
<div class="desc">todo</div>
<h2>Constructor</h2>
<h2>Constructor</h2>
<h3>[name]()</h3>
<h3>[name]()</h3>
<h2>Properties</h2>
<h2>Properties</h2>
<h3>.[page:Vector3 todo]</h3>
<h3>.[page:Vector3 todo]</h3>
<h2>Methods</h2>
<h2>Methods</h2>
<h3>.todo( [page:Vector3 todo] )</h3>
<div>
todo — todo<br />
</div>
<h3>.todo( [page:Vector3 todo] )</h3>
<div>
todo — todo<br />
</div>
<h2>Source</h2>
<h2>Source</h2>
[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
\ No newline at end of file
[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
</body>
</html>
<h1>[name]</h1>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<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>
<div class="desc">An extra add-on for creating and using mouse and keyboard controls akin to those found in <a href="http://en.wikipedia.org/wiki/First-person_shooter">First-Person Shooters</a> (hence the class name).</div>
<div class="desc">Once attached to a camera object, the position of the camera and its lookAt target can be controlled using the mouse and certain keys (depending on the chosen configuration).</div>
<h2>Constructor</h2>
<div class="desc">The default behaviour is to "pan around" when moving the mouse, and translate forwards or backwards with the left and right buttons pressed. Additionally, the following keys are also enabled:<br /><br />
W — moves forward (equivalent to pressing the left button)<br />
A — moves leftwards<br />
S — moves backwards (equivalent to pressing the right button)<br />
D — moves rightwards<br />
R — moves up<br />
F — moves down<br />
Q — toggle freezing (when "frozen", no changes in the camera position or target will happen)<br />
</div>
<h3>[name]()</h3>
<div class="desc">The camera 'target' is always 100 units ahead of the camera.</div>
<h2>Constructor</h2>
<h2>Properties</h2>
<h3>[name]( [page:Object object], [page:Element domElement] )</h3>
<h3>.[page:Vector3 todo]</h3>
<div>
object — A camera or another object with similar behaviour (has a <em>position</em> property and a <em>lookAt</em> method).<br />
domElement — the element that contains the canvas or WebGL renderer holding the camera we'll control (optional, will use document if nothing is specified)<br />
</div>
<h2>Properties</h2>
<h2>Methods</h2>
<h3>.[page:Object object]</h3>
<div>
The camera or object whose <em>position</em> properties will be modified.
</div>
<h3>.todo( [page:Vector3 todo] )</h3>
<div>
todo — todo<br />
</div>
<h3>.[page:Element domElement]</h3>
<div>
Used for determining the viewport dimensions. If nothing is specified, the current HTML document will be used. Else, the specified element dimensions (offsetWidth and offsetHeight) will be used. Additionally, allowing the element to get focused via tabbing is disabled.
</div>
<h3>.[page:Float movementSpeed]</h3>
<h2>Source</h2>
<div>Configure how fast will the camera translations be. Default is 1.0.</div>
[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
\ No newline at end of file
<h3>.[page:Float lookSpeed]</h3>
<div>Configure how fast will the camera move to 'look around'. Default is 0.005.</div>
<h3>.[page:Boolean lookVertical]</h3>
<div>
Allows the camera to change its vertical angle, thus modifying the camera pitch.
If disabled, the mouse movements will only change the yaw.
</div>
<div>
Default is true.
</div>
<h3>.[page:Boolean autoForward]</h3>
<div>
Toggle between automatically moving forward without user intervention (i.e. without pressing the left button or the W key) or not. If in <em>autoForward</em> mode, pressing the right button or the S key will still go backwards (temporarily stopping the forward motion).
</div>
<div>
Default is false.
</div>
<h3>.[page:Boolean activeLook]</h3>
<div>
If true, left clicking moves forward and right clicking moves backwards, and moving the mouse around changes the point of view.<br />
If false, nothing happens on mouse events.
</div>
<div>Default is true.</div>
<h3>.[page:Boolean heightSpeed]</h3>
<div>??? TODO</div>
<div>
Default is false.
</div>
<h3>.[page:Float heightCoef]</h3>
<div>??? TODO</div>
<div>
Default is 1.0.
</div>
<h3>.[page:Float heightMin]</h3>
<div>??? TODO</div>
<div>
Default is 0.0.
</div>
<h3>.[page:Boolean constrainVertical]</h3>
<div>Limit camera's pitch range. If true, the pitch angle can only be in the [verticalMin, verticalMax] range.</div>
<div>
Default is false.
</div>
<h3>.[page:Float verticalMin]</h3>
<div>See <em>constrainVertical</em> property.</div>
<div>
Default is 0.0.
</div>
<h3>.[page:Float verticalMax]</h3>
<div>See <em>constrainVertical</em> property.</div>
<div>
Default is Math.PI.
</div>
<h2>Methods</h2>
<h3>.update( [page:Float delta] )</h3>
<div>
Update values using delta as time difference<br />
<br />
delta — time elapsed since the last time update was called.<br />
</div>
<h3>.handleResize( )</h3>
<div>
Recalculate viewport dimensions.
</div>
<h2>Source</h2>
[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
</body>
</html>
<h1>[name]</h1>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<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>
<div class="desc">todo</div>
<h2>Constructor</h2>
<h2>Constructor</h2>
<h3>[name]()</h3>
<h3>[name]()</h3>
<h2>Properties</h2>
<h2>Properties</h2>
<h3>.[page:Vector3 todo]</h3>
<h3>.[page:Vector3 todo]</h3>
<h2>Methods</h2>
<h2>Methods</h2>
<h3>.todo( [page:Vector3 todo] )</h3>
<div>
todo — todo<br />
</div>
<h3>.todo( [page:Vector3 todo] )</h3>
<div>
todo — todo<br />
</div>
<h2>Source</h2>
<h2>Source</h2>
[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
\ No newline at end of file
[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
</body>
</html>
<h1>[name]</h1>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<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>
<div class="desc">todo</div>
<h2>Constructor</h2>
<h2>Constructor</h2>
<h3>[name]()</h3>
<h3>[name]()</h3>
<h2>Properties</h2>
<h2>Properties</h2>
<h3>.[page:Vector3 todo]</h3>
<h3>.[page:Vector3 todo]</h3>
<h2>Methods</h2>
<h2>Methods</h2>
<h3>.todo( [page:Vector3 todo] )</h3>
<div>
todo — todo<br />
</div>
<h3>.todo( [page:Vector3 todo] )</h3>
<div>
todo — todo<br />
</div>
<h2>Source</h2>
<h2>Source</h2>
[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
\ No newline at end of file
[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
</body>
</html>
<h1>[name]</h1>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<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>
<div class="desc">todo</div>
<h2>Constructor</h2>
<h2>Constructor</h2>
<h3>[name]()</h3>
<h3>[name]()</h3>
<h2>Properties</h2>
<h2>Properties</h2>
<h3>.[page:Vector3 todo]</h3>
<h3>.[page:Vector3 todo]</h3>
<h2>Methods</h2>
<h2>Methods</h2>
<h3>.todo( [page:Vector3 todo] )</h3>
<div>
todo — todo<br />
</div>
<h3>.todo( [page:Vector3 todo] )</h3>
<div>
todo — todo<br />
</div>
<h2>Source</h2>
<h2>Source</h2>
[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
\ No newline at end of file
[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
</body>
</html>
<h1>[name]</h1>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<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>
<div class="desc">todo</div>
<h2>Constructor</h2>
<h2>Constructor</h2>
<h3>[name]()</h3>
<h3>[name]()</h3>
<h2>Properties</h2>
<h2>Properties</h2>
<h3>.[page:Vector3 todo]</h3>
<h3>.[page:Vector3 todo]</h3>
<h2>Methods</h2>
<h2>Methods</h2>
<h3>.todo( [page:Vector3 todo] )</h3>
<div>
todo — todo<br />
</div>
<h3>.todo( [page:Vector3 todo] )</h3>
<div>
todo — todo<br />
</div>
<h2>Source</h2>
<h2>Source</h2>
[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
\ No newline at end of file
[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
</body>
</html>
<h1>[name]</h1>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<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>
<div class="desc">todo</div>
<h2>Constructor</h2>
<h2>Constructor</h2>
<h3>[name]()</h3>
<h3>[name]()</h3>
<h2>Properties</h2>
<h2>Properties</h2>
<h3>.[page:Vector3 todo]</h3>
<h3>.[page:Vector3 todo]</h3>
<h2>Methods</h2>
<h2>Methods</h2>
<h3>.todo( [page:Vector3 todo] )</h3>
<div>
todo — todo<br />
</div>
<h3>.todo( [page:Vector3 todo] )</h3>
<div>
todo — todo<br />
</div>
<h2>Source</h2>
<h2>Source</h2>
[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
\ No newline at end of file
[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
</body>
</html>
<h1>[name]</h1>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<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>
<div class="desc">todo</div>
<h2>Constructor</h2>
<h2>Constructor</h2>
<h3>[name]()</h3>
<h3>[name]()</h3>
<h2>Properties</h2>
<h2>Properties</h2>
<h3>.[page:Vector3 todo]</h3>
<h3>.[page:Vector3 todo]</h3>
<h2>Methods</h2>
<h2>Methods</h2>
<h3>.todo( [page:Vector3 todo] )</h3>
<div>
todo — todo<br />
</div>
<h3>.todo( [page:Vector3 todo] )</h3>
<div>
todo — todo<br />
</div>
<h2>Source</h2>
<h2>Source</h2>
[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
\ No newline at end of file
[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
</body>
</html>
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册