<div>Whether to start playback automatically. Default is *false*.</div>
<p>Whether to start playback automatically. Default is *false*.</p>
<h3>[property:AudioContext context]</h3>
<div>The [link:https://developer.mozilla.org/en-US/docs/Web/API/AudioContext AudioContext] of the [page:AudioListener listener] given in the constructor.</div>
<p>The [link:https://developer.mozilla.org/en-US/docs/Web/API/AudioContext AudioContext] of the [page:AudioListener listener] given in the constructor.</p>
<h3>[property:Array filters]</h3>
<div>Represents an array of [link:https://developer.mozilla.org/en-US/docs/Web/API/BiquadFilterNode BiquadFilterNodes]. Can be used to apply a variety of low-order filters to create more complex sound effects. Filters are set via [page:Audio.setFilter] or [page:Audio.setFilters].</div>
<p>Represents an array of [link:https://developer.mozilla.org/en-US/docs/Web/API/BiquadFilterNode BiquadFilterNodes]. Can be used to apply a variety of low-order filters to create more complex sound effects. Filters are set via [page:Audio.setFilter] or [page:Audio.setFilters].</p>
<h3>[property:GainNode gain]</h3>
<div>A [link:https://developer.mozilla.org/en-US/docs/Web/API/GainNode GainNode] created
using [link:https://developer.mozilla.org/en-US/docs/Web/API/AudioContext/createGain AudioContext.createGain]().</div>
<p>A [link:https://developer.mozilla.org/en-US/docs/Web/API/GainNode GainNode] created
using [link:https://developer.mozilla.org/en-US/docs/Web/API/AudioContext/createGain AudioContext.createGain]().</p>
<h3>[property:Boolean hasPlaybackControl]</h3>
<div>Whether playback can be controlled using the [page:Audio.play play](),
[page:Audio.pause pause]() etc. methods. Default is *true*.</div>
<p>Whether playback can be controlled using the [page:Audio.play play](),
[page:Audio.pause pause]() etc. methods. Default is *true*.</p>
<h3>[property:Number playbackRate]</h3>
<div>Speed of playback. Default is *1*.</div>
<p>Speed of playback. Default is *1*.</p>
<h3>[property:Boolean isPlaying]</h3>
<div>Whether the audio is currently playing.</div>
<p>Whether the audio is currently playing.</p>
<h3>[property:Number startTime]</h3>
<div>The time at which the sound should begin to play. Same as the *when* paramter of [link:https://developer.mozilla.org/en-US/docs/Web/API/AudioBufferSourceNode/start AudioBufferSourceNode.start](). Default is *0*.</div>
<p>The time at which the sound should begin to play. Same as the *when* paramter of [link:https://developer.mozilla.org/en-US/docs/Web/API/AudioBufferSourceNode/start AudioBufferSourceNode.start](). Default is *0*.</p>
<h3>[property:Number offset]</h3>
<div>An offset to the time within the audio buffer that playback should begin. Same as the *offset* paramter of [link:https://developer.mozilla.org/en-US/docs/Web/API/AudioBufferSourceNode/start AudioBufferSourceNode.start](). Default is *0*.</div>
<p>An offset to the time within the audio buffer that playback should begin. Same as the *offset* paramter of [link:https://developer.mozilla.org/en-US/docs/Web/API/AudioBufferSourceNode/start AudioBufferSourceNode.start](). Default is *0*.</p>
<h3>[property:String source]</h3>
<div>An [link:https://developer.mozilla.org/en-US/docs/Web/API/AudioBufferSourceNode AudioBufferSourceNode] created
using [link:https://developer.mozilla.org/en-US/docs/Web/API/AudioContext/createBufferSource AudioContext.createBufferSource]().</div>
<p>An [link:https://developer.mozilla.org/en-US/docs/Web/API/AudioBufferSourceNode AudioBufferSourceNode] created
using [link:https://developer.mozilla.org/en-US/docs/Web/API/AudioContext/createBufferSource AudioContext.createBufferSource]().</p>
<h3>[property:String sourceType]</h3>
<div>Type of the audio source. Default is string 'empty'.</div>
<p>Type of the audio source. Default is string 'empty'.</p>
<h3>[property:String type]</h3>
<div>String denoting the type, set to 'Audio'.</div>
<p>String denoting the type, set to 'Audio'.</p>
<h2>Methods</h2>
<h3>[method:null connect]()</h3>
<div>
<p>
Connect to the [page:Audio.source]. This is used internally on initialisation and when
setting / removing filters.
</div>
</p>
<h3>[method:null disconnect]()</h3>
<div>
<p>
Disconnect from the [page:Audio.source]. This is used internally when
setting / removing filters.
</div>
</p>
<h3>[method:Array getFilter]()</h3>
<div>
<p>
Returns the first element of the [page:Audio.filters filters] array.
</div>
</p>
<h3>[method:null getFilters]()</h3>
<div>
<p>
Returns the [page:Audio.filters filters] array.
</div>
</p>
<h3>[method:Boolean getLoop]()</h3>
<div>
<p>
Return the value of [link:https://developer.mozilla.org/en-US/docs/Web/API/AudioBufferSourceNode/loop source.loop]
(whether playback should loop).
</div>
</p>
<h3>[method:GainNode getOutput]()</h3>
<div>
<p>
Return the [page:Audio.gain gainNode].
</div>
</p>
<h3>[method:Number getPlaybackRate]()</h3>
<div>
<p>
Return the value of [page:Audio.playbackRate playbackRate].
</div>
</p>
<h3>[method:Number getVolume]( value )</h3>
<div>
<p>
Return the current volume.
</div>
</p>
<h3>[method:null play]()</h3>
<div>
<p>
If [page:Audio.hasPlaybackControl hasPlaybackControl] is true, starts playback.
</div>
</p>
<h3>[method:null pause]()</h3>
<div>
<p>
If [page:Audio.hasPlaybackControl hasPlaybackControl] is true, pauses playback.
</div>
</p>
<h3>[method:null onEnded]()</h3>
<div>
<p>
Called automatically when playback finished. Sets If [page:Audio.isPlaying isPlaying] to false.
</div>
</p>
<h3>[method:Audio setBuffer]( audioBuffer )</h3>
<div>
<p>
Setup the [page:Audio.source source] to the audioBuffer, and sets [page:Audio.sourceType sourceType] to 'buffer'.<br/>
If [page:Audio.autoplay autoplay], also starts playback.
</div>
</p>
<h3>[method:null setFilter]( filter )</h3>
<div>
<p>
Applies a single [link:https://developer.mozilla.org/en-US/docs/Web/API/BiquadFilterNode BiquadFilterNode] to the audio.
The [name] represents a virtual [link:https://developer.mozilla.org/de/docs/Web/API/AudioListener listener] of the all positional and non-positional audio effects in the scene.</br>
A three.js application usually creates a single instance of [name]. It is a mandatory construtor parameter for audios entities like [page:Audio Audio] and [page:PositionalAudio PositionalAudio].</br>
In most cases, the listener object is a child of the camera. So the 3D transformation of the camera represents the 3D transformation of the listener.
// create an AudioListener and add it to the camera
...
...
@@ -50,56 +50,56 @@
<h3>[name]( )</h3>
<div>
<p>
Create a new AudioListener.
</div>
</p>
<h2>Properties</h2>
<h3>[property:AudioContext context]</h3>
<div>The [link:https://developer.mozilla.org/en-US/docs/Web/API/AudioContext AudioContext] of the [page:AudioListener listener] given in the constructor.</div>
<p>The [link:https://developer.mozilla.org/en-US/docs/Web/API/AudioContext AudioContext] of the [page:AudioListener listener] given in the constructor.</p>
<h3>[property:GainNode gain]</h3>
<div>A [link:https://developer.mozilla.org/en-US/docs/Web/API/GainNode GainNode] created
using [link:https://developer.mozilla.org/en-US/docs/Web/API/AudioContext/createGain AudioContext.createGain]().</div>
<p>A [link:https://developer.mozilla.org/en-US/docs/Web/API/GainNode GainNode] created
using [link:https://developer.mozilla.org/en-US/docs/Web/API/AudioContext/createGain AudioContext.createGain]().</p>
<h3>[property:AudioNode filter]</h3>
<div>Default is *null*.</div>
<p>Default is *null*.</p>
<h2>Methods</h2>
<h3>[method:GainNode getInput]()</h3>
<div>
<p>
Return the [page:AudioListener.gain gainNode].
</div>
</p>
<h3>[method:null removeFilter]()</h3>
<div>
<p>
Set the [page:AudioListener.filter filter] property to *null*.
</div>
</p>
<h3>[method:AudioNode getFilter]()</h3>
<div>
<p>
Returns the value of the [page:AudioListener.filter filter] property.
[name] can be used in order to efficiently render a scene with a predefined set of cameras. This is an important performance aspect for rendering VR scenes.<br/>
An instance of [name] always has an array of sub cameras. It's mandatory to define for each sub camera the *bounds* property which determines the part of the viewport that is rendered with this camera.
</div>
</p>
<h2>Example</h2>
<div>[example:webgl_camera_array camera / array ]</div>
<p>[example:webgl_camera_array camera / array ]</p>
<h2>Constructor</h2>
<h3>[name]( [param:Array array] )</h3>
<div>
<p>
An array of cameras.
</div>
</p>
<h2>Properties</h2>
<div>See the base [page:PerspectiveCamera] class for common properties.</div>
<p>See the base [page:PerspectiveCamera] class for common properties.</p>
<h3>[property:Array cameras]</h3>
<div>
<p>
An array of cameras.
</div>
</p>
<h2>Methods</h2>
<div>See the base [page:PerspectiveCamera] class for common methods.</div>
<p>See the base [page:PerspectiveCamera] class for common methods.</p>
Together these define the camera's [link:https://en.wikipedia.org/wiki/Viewing_frustum viewing frustum].
</div>
</p>
<h2>Properties</h2>
<div>
<p>
See the base [page:Camera] class for common properties.<br>
Note that after making changes to most of these poperties you will have to call
[page:PerspectiveCamera.updateProjectionMatrix .updateProjectionMatrix] for the changes to take effect.
</div>
</p>
<h3>[property:Float aspect]</h3>
<div>Camera frustum aspect ratio, usually the canvas width / canvas height. Default is *1* (square canvas).</div>
<p>Camera frustum aspect ratio, usually the canvas width / canvas height. Default is *1* (square canvas).</p>
<h3>[property:Float far]</h3>
<div>
<p>
Camera frustum far plane. Default is *2000*.<br/><br/>
The valid range is between the current value of the [page:.near near] plane and infinity.
</div>
</p>
<h3>[property:Float filmGauge]</h3>
<div>Film size used for the larger axis. Default is 35 (millimeters). This parameter does not influence the projection matrix unless .filmOffset is set to a nonzero value.</div>
<p>Film size used for the larger axis. Default is 35 (millimeters). This parameter does not influence the projection matrix unless .filmOffset is set to a nonzero value.</p>
<h3>[property:Float filmOffset]</h3>
<div>Horizontal off-center offset in the same unit as .filmGauge. Default is *0*.</div>
<p>Horizontal off-center offset in the same unit as .filmGauge. Default is *0*.</p>
<h3>[property:Float focus]</h3>
<div>Object distance used for stereoscopy and depth-of-field effects.
<p>Object distance used for stereoscopy and depth-of-field effects.
This parameter does not influence the projection matrix unless a [page:StereoCamera] is being used.
Default is *10*.
</div>
</p>
<h3>[property:Float fov]</h3>
<div>Camera frustum vertical field of view, from bottom to top of view, in degrees. Default is *50*.</div>
<p>Camera frustum vertical field of view, from bottom to top of view, in degrees. Default is *50*.</p>
<h3>[property:Boolean isPerspectiveCamera]</h3>
<div>
<p>
Used to test whether this or derived classes are PerspectiveCameras. Default is *true*.<br/><br/>
This should not be changed as it is used internally by the renderer for optimisation.
</div>
</p>
<h3>[property:Float near]</h3>
<div>
<p>
Camera frustum near plane. Default is *0.1*.<br/><br/>
The valid range is greater than 0 and less than the current value of the [page:.far far] plane.
Note that, unlike for the [page:OrthographicCamera], *0* is <em>not</em> a valid value
for a PerspectiveCamera's near plane.
</div>
</p>
<h3>[property:Object view]</h3>
<div>
<p>
Frustum window specification or null.
This is set using the [page:PerspectiveCamera.setViewOffset .setViewOffset] method
and cleared using [page:PerspectiveCamera.clearViewOffset .clearViewOffset].
</div>
</p>
<h3>[property:number zoom]</h3>
<div>Gets or sets the zoom factor of the camera. Default is *1*.</div>
<p>Gets or sets the zoom factor of the camera. Default is *1*.</p>
<h2>Methods</h2>
<div>See the base [page:Camera] class for common methods.</div>
<p>See the base [page:Camera] class for common methods.</p>
<h3>[method:null clearViewOffset]()</h3>
<div>Removes any offset set by the [page:PerspectiveCamera.setViewOffset .setViewOffset] method.</div>
<p>Removes any offset set by the [page:PerspectiveCamera.setViewOffset .setViewOffset] method.</p>
<h3>[method:Float getEffectiveFOV]()</h3>
<div>Returns the current vertical field of view angle in degrees considering .zoom.</div>
<p>Returns the current vertical field of view angle in degrees considering .zoom.</p>
<h3>[method:Float getFilmHeight]()</h3>
<div>
<p>
Returns the height of the image on the film. If .aspect is less than or equal to one
(portrait format), the result equals .filmGauge.
</div>
</p>
<h3>[method:Float getFilmWidth]()</h3>
<div>
<p>
Returns the width of the image on the film. If .aspect is greater than or equal to one
(landscape format), the result equals .filmGauge.
</div>
</p>
<h3>[method:Float getFocalLength]()</h3>
<div>Returns the focal length of the current .fov in respect to .filmGauge.</div>
<p>Returns the focal length of the current .fov in respect to .filmGauge.</p>
These work with all material types. First set the material's blending mode to THREE.CustomBlending, then set the desired Blending Equation, Source Factor and Destination Factor.
<p>
These work with all material types. First set the material's blending mode to THREE.CustomBlending, then set the desired Blending Equation, Source Factor and Destination Factor.
</p>
<code>
var material = new THREE.MeshBasicMaterial( {color: 0x00ff00} );
...
...
@@ -50,9 +52,9 @@
</code>
<h2>Destination Factors</h2>
<div>
<p>
All of the Source Factors are valid as Destination Factors, except for <code>THREE.SrcAlphaSaturateFactor</code>
These constants define properties common to all material types,
with the exception of Texture Combine Operations which only apply to [page:MeshBasicMaterial.combine MeshBasicMaterial], [page:MeshLambertMaterial.combine MeshLambertMaterial] and [page:MeshPhongMaterial.combine MeshPhongMaterial].<br/>
</div>
</p>
<h2>Side</h2>
...
...
@@ -22,10 +22,10 @@
THREE.BackSide
THREE.DoubleSide
</code>
<div>
<p>
Defines which side of faces will be rendered - front, back or both.
Default is [page:Constant FrontSide].
</div>
</p>
<h2>Colors</h2>
...
...
@@ -34,12 +34,12 @@
THREE.FaceColors
THREE.VertexColors
</code>
<div>
<p>
[page:Constant NoColors] is the default and applies the material's color to all faces.<br/>
[page:Constant FaceColors] colors faces according to each [page:Face3 Face3][property:Color color] value.<br/>
[page:Constant VertexColors] colors faces according to each [page:Face3 Face3][property:Array vertexColors] value. This is an array of three [page:Color Color]s, one for each vertex in the face.<br/>
[page:Constant FaceColors] colors faces according to each [page:Face3 Face3] [page:Color Color] value.<br/>
[page:Constant VertexColors] colors faces according to each [page:Face3 Face3] vertexColors value. This is an array of three [page:Color Color]s, one for each vertex in the face.<br/>
See the [example:webgl_geometry_colors geometry / colors] example.
</div>
</p>
<h2>Blending Mode</h2>
<code>
...
...
@@ -52,12 +52,12 @@
</code>
<div>
<p>
These control the source and destination blending equations for the material's RGB and Alpha sent to the WebGLRenderer for use by WebGL.<br/>
[page:Constant NormalBlending] is the default.<br/>
Note that [page:Constant CustomBlending] must be set to use [page:CustomBlendingEquation Custom Blending Equations].<br/>
See the [example:webgl_materials_blending materials / blending] example.<br/>
</div>
</p>
<h2>Depth Mode</h2>
<code>
...
...
@@ -69,7 +69,7 @@
THREE.GreaterDepth
THREE.NotEqualDepth
</code>
<div>
<p>
Which depth function the material uses to compare incoming pixels Z-depth against the current Z-depth buffer value. If the result of the comparison is true, the pixel will be drawn.<br/>
[page:Materials NeverDepth] will never return true.<br/>
[page:Materials AlwaysDepth] will always return true.<br/>
...
...
@@ -78,7 +78,7 @@
[page:Materials GreaterEqualDepth] will return true if the incoming pixel Z-depth is greater than or equal to the current buffer Z-depth.<br/>
[page:Materials GreaterDepth] will return true if the incoming pixel Z-depth is greater than the current buffer Z-depth.<br/>
[page:Materials NotEqualDepth] will return true if the incoming pixel Z-depth is not equal to the current buffer Z-depth.<br/>
</div>
</p>
<h2>Texture Combine Operations</h2>
<code>
...
...
@@ -86,10 +86,12 @@
THREE.MixOperation
THREE.AddOperation
</code>
<p>
These define how the result of the surface's color is combined with the environment map (if present), for [page:MeshBasicMaterial.combine MeshBasicMaterial], [page:MeshLambertMaterial.combine MeshLambertMaterial] and [page:MeshPhongMaterial.combine MeshPhongMaterial]. <br/>
[page:Constant MultiplyOperation] is the default and multiplies the environment map color with the surface color.<br/>
[page:Constant MixOperation] uses reflectivity to blend between the two colors.<br/>
[page:constant RGBA_S3TC_DXT1_Format]: A DXT1-compressed image in an RGB image format with a simple on/off alpha value.<br/>
[page:constant RGBA_S3TC_DXT3_Format]: A DXT3-compressed image in an RGBA image format. Compared to a 32-bit RGBA texture, it offers 4:1 compression.<br/>
[page:constant RGBA_S3TC_DXT5_Format]: A DXT5-compressed image in an RGBA image format. It also provides a 4:1 compression, but differs to the DXT3 compression in how the alpha compression is done.<br/>
</div>
</p>
<h2>PVRTC Compressed Texture Formats</h2>
<code>
...
...
@@ -215,7 +215,7 @@
THREE.RGBA_PVRTC_4BPPV1_Format
THREE.RGBA_PVRTC_2BPPV1_Format
</code>
<div>
<p>
For use with a [page:CompressedTexture CompressedTexture]'s [page:Texture.format format] property,
these require support for the [link:https://www.khronos.org/registry/webgl/extensions/WEBGL_compressed_texture_pvrtc/ WEBGL_compressed_texture_pvrtc]
extension. <br/>
...
...
@@ -226,17 +226,17 @@
[page:constant RGB_PVRTC_2BPPV1_Format]: RGB compression in 2-bit mode. One block for each 8×4 pixels.<br/>
[page:constant RGBA_PVRTC_4BPPV1_Format]: RGBA compression in 4-bit mode. One block for each 4×4 pixels.<br/>
[page:constant RGBA_PVRTC_2BPPV1_Format]: RGBA compression in 2-bit mode. One block for each 8×4 pixels.<br/>
</div>
</p>
<h2>ETC Compressed Texture Format</h2>
<code>
THREE.RGB_ETC1_Format
</code>
<div>
<p>
For use with a [page:CompressedTexture CompressedTexture]'s [page:Texture.format format] property,
these require support for the [link:https://www.khronos.org/registry/webgl/extensions/WEBGL_compressed_texture_etc1/ WEBGL_compressed_texture_etc1]
extension. <br/><br/>
</div>
</p>
<h2>Encoding</h2>
<code>
...
...
@@ -251,7 +251,7 @@
THREE.BasicDepthPacking
THREE.RGBADepthPacking
</code>
<div>
<p>
For use with a Texture's [page:Texture.encoding encoding] property.<br/><br/>
If the encoding type is changed after the texture has already been used by a material,
...
...
@@ -259,7 +259,7 @@
[page:constant LinearEncoding] is the default.
Values other than this are only valid for a material's map, envMap and emissiveMap.
Stores the red, green, and blue channels of vertex color of each vertex in this geometry.
Set by [page:.fromGeometry]().
</div>
</p>
<p>
In addition to the the built-in attributes, you can set your own custom attributes using the addAttribute method. With [page:Geometry], these attributes are set and stored on the [page:Material]. In BufferGeometry, the attributes are stored with the geometry itself. Note that you still need to set the attributes information on the material as well, but the value of each attribute is stored in the BufferGeometry.
...
...
@@ -101,35 +100,35 @@
<h2>Properties</h2>
<h3>[property:Object attributes]</h3>
<div>
<p>
This hashmap has as id the name of the attribute to be set and as value the [page:BufferAttribute buffer] to set it to.
Rather than accessing this property directly, use [page:.addAttribute] and [page:.getAttribute] to access attributes of this geometry.
</div>
</p>
<h3>[property:Box3 boundingBox]</h3>
<div>
<p>
Bounding box for the bufferGeometry, which can be calculated with
[page:.computeBoundingBox](). Default is *null*.
</div>
</p>
<h3>[property:Sphere boundingSphere]</h3>
<div>
<p>
Bounding sphere for the bufferGeometry, which can be calculated with
[page:.computeBoundingSphere](). Default is *null*.
</div>
</p>
<h3>[property:Object drawRange]</h3>
<div>
<p>
Used to determine what part of the geometry should be rendered. This should not
be set directly, instead use [page:.setDrawRange].<br/>
Default is
<code>
{ start: 0, count: Infinity }
</code>
</div>
</p>
<h3>[property:Array groups]</h3>
<div>
<p>
Split the geometry into groups, each of which will be rendered in a separate WebGL draw call.
This allows an array of materials to be used with the bufferGeometry.<br/><br/>
...
...
@@ -140,25 +139,25 @@
materialIndex specifies the material array index to use.<br/><br/>
Use [page:.addGroup] to add groups, rather than modifying this array directly.
</div>
</p>
<!-- Note: groups used to be called drawCalls
<h3>[property:Array drawcalls]</h3>
<div>
<p>
For geometries that use indexed triangles, this Array can be used to split the object
into multiple WebGL draw calls. Each draw call will draw some subset of the vertices
in this geometry using the configured [page:Material shader]. This may be necessary if,
for instance, you have more than 65535 vertices in your object.
</div> -->
</p> -->
<h3>[property:Integer id]</h3>
<div>Unique number for this bufferGeometry instance.</div>
<p>Unique number for this bufferGeometry instance.</p>
<h3>[property:BufferAttribute index]</h3>
<div>
<p>
Allows for vertices to be re-used across multiple triangles; this is called using "indexed triangles" and
works much the same as it does in [page:Geometry]: each triangle is associated with the indices of three vertices.
This attribute therefore stores the index of each vertex for each triangular face.
...
...
@@ -167,169 +166,169 @@
positions represent a single triangle.
Default is *null*.
</div>
</p>
<h3>[property:Boolean isBufferGeometry]</h3>
<div>
<p>
Used to check whether this or derived classes are BufferGeometries. Default is *true*.<br/><br/>
You should not change this, as it used internally for optimisation.
</div>
</p>
<h3>[property:Object morphAttributes]</h3>
<div>
<p>
Hashmap of [page:BufferAttribute]s holding details of the geometry's [page:Geometry.morphTargets morphTargets].
</div>
</p>
<h3>[property:String name]</h3>
<div>
<p>
Optional name for this bufferGeometry instance. Default is an empty string.
</div>
</p>
<h3>[property:String uuid]</h3>
<div>
<p>
[link:http://en.wikipedia.org/wiki/Universally_unique_identifier UUID] of this object instance.
This gets automatically assigned and shouldn't be edited.
</div>
</p>
<h2>Methods</h2>
<h3>[page:EventDispatcher EventDispatcher] methods are available on this class.</h3>
Object for keeping track of time. This uses <ahref="https://developer.mozilla.org/en-US/docs/Web/API/Performance/now">performance.now()</a>
if it is available, otherwise it reverts to the less accurate <ahref="https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/Date/now">Date.now()</a>.
</div>
</p>
<h2>Constructor</h2>
<h3>[name]( [param:Boolean autoStart] )</h3>
<div>
<p>
autoStart — (optional) whether to automatically start the clock. Default is true.
</div>
</p>
<h2>Properties</h2>
<h3>[property:Boolean autoStart]</h3>
<div>
<p>
If set, starts the clock automatically when the first update is called. Default is true.
</div>
</p>
<h3>[property:Float startTime]</h3>
<div>
<p>
Holds the time at which the clock's [page:Clock.start start] method was last called.
</div>
</p>
<h3>[property:Float oldTime]</h3>
<div>
<p>
Holds the time at which the clock's [page:Clock.start start], [page:Clock.getElapsedTime getElapsedTime] or [page:Clock.getDelta getDelta]
methods were last called.
</div>
</p>
<h3>[property:Float elapsedTime]</h3>
<div>
<p>
Keeps track of the total time that the clock has been running.
</div>
</p>
<h3>[property:Boolean running]</h3>
<div>
<p>
Whether the clock is running or not.
</div>
</p>
<h2>Methods</h2>
<h3>[method:null start]()</h3>
<div>
<p>
Starts clock. Also sets the [page:Clock.startTime startTime] and [page:Clock.oldTime oldTime]
to the current time, sets [page:Clock.elapsedTime elapsedTime] to *0* and [page:Clock.running running] to *true*.
</div>
</p>
<h3>[method:null stop]()</h3>
<div>
<p>
Stops clock and sets [page:Clock.oldTime oldTime] to the current time.
</div>
</p>
<h3>[method:Float getElapsedTime]()</h3>
<div>
<p>
Get the seconds passed since the clock started and sets [page:Clock.oldTime oldTime] to the current time.<br/>
If [page:Clock.autoStart autoStart] is *true* and the clock is not running, also starts the clock.
</div>
</p>
<h3>[method:Float getDelta]()</h3>
<div>
<p>
Get the seconds passed since the time [page:Clock.oldTime oldTime] was set and sets [page:Clock.oldTime oldTime] to the current time.<br/>
If [page:Clock.autoStart autoStart] is *true* and the clock is not running, also starts the clock.
<div>Bakes matrix transform directly into vertex coordinates.</div>
<p>Bakes matrix transform directly into vertex coordinates.</p>
<h3>[method:Geometry center] ()</h3>
<div>Center the geometry based on the bounding box.</div>
<p>Center the geometry based on the bounding box.</p>
<h3>[method:Geometry clone]()</h3>
<div>
<p>
Creates a new clone of the Geometry.<br/><br/>
This method copies only vertices, faces and uvs. It does not copy any other properties of the geometry.
</div>
</p>
<h3>[method:null computeBoundingBox]()</h3>
<div>Computes bounding box of the geometry, updating [page:Geometry Geometry.boundingBox] attribute.</div>
<p>Computes bounding box of the geometry, updating [page:Geometry Geometry.boundingBox] attribute.</p>
<h3>[method:null computeBoundingSphere]()</h3>
<div>Computes bounding sphere of the geometry, updating [page:Geometry Geometry.boundingSphere] attribute.</div>
<p>Computes bounding sphere of the geometry, updating [page:Geometry Geometry.boundingSphere] attribute.</p>
<div>
<p>
Neither bounding boxes or bounding spheres are computed by default. They need to be explicitly computed,
otherwise they are *null*.
</div>
</p>
<h3>[method:null computeFaceNormals]()</h3>
<div>Computes [page:Face3.normal face normals].</div>
<p>Computes [page:Face3.normal face normals].</p>
<h3>[method:null computeFlatVertexNormals]()</h3>
<div>Computes flat [page:Face3.vertexNormals vertex normals]. Sets the vertex normal of each vertex of each face to be the same as the face's normal.</div>
<p>Computes flat [page:Face3.vertexNormals vertex normals]. Sets the vertex normal of each vertex of each face to be the same as the face's normal.</p>
"Interleaved" means that multiple attributes, possibly of different types, (e.g., position, normal, uv, color) are packed into a single array buffer.
<br/><br/>
An introduction into interleaved arrays can be found here: [link:https://blog.tojicode.com/2011/05/interleaved-array-basics.html Interleaved array basics]