ThreeJS InterleavedBuffer

The term "interleaved" refers to the packing of multiple attributes, possibly of different types (e.g., position, normal, uv, colour) into a single array buffer.

Constructor

InterleavedBuffer( array : TypedArray, stride : Integer )

array -- A typed array with a shared buffer. Stores the geometry data.

stride -- The number of typed-array elements per vertex.

Properties

.array : Array

A typed array with a shared buffer. Stores the geometry data.

.stride : Integer

The number of typed-array elements per vertex.

.count : Integer

Gives the total number of elements in the array.

.updateRange : Object

Object containing offset and count.

.updateRange.offset : Number

Default is 0.

.updateRange.count : Number

Default is -1.

.uuid : String

UUID of this instance. This gets automatically assigned, so this shouldn't be edited.

.version : Integer

A version number, incremented every time the needsUpdate property is set to true.

.needsUpdate : Boolean

Default is false. Setting this to true increments version.

.usage : Usage

Defines the intended usage pattern of the data store for optimization purposes. Corresponds to the usage parameter of WebGLRenderingContext.bufferData().

Methods

.copy ( source : InterleavedBuffer ) : this

Copies another InterleavedBuffer to this InterleavedBuffer.

.copyAt ( index1 : Integer, attribute : InterleavedBuffer, index2 : Integer ) : this

Copies data from attribute[index2] to array[index1].

.set ( value : TypedArray, offset : Integer ) : this

value - The source (typed) array.

offset - The offset into the target array at which to begin writing values from the source array. Default is 0.

Stores multiple values in the buffer, reading input values from a specified array.

.clone ( data : Object ) : InterleavedBuffer

data - This object holds shared array buffers required for properly cloning geometries with interleaved attributes.

Creates a clone of this InterleavedBuffer.

.setUsage ( value : Usage ) : this

Set usage to value.

.toJSON ( data : Object ) : Object

data - This object holds shared array buffers required for properly serializing geometries with interleaved attributes.

InterleavedBufferAttribute

Constructor

InterleavedBufferAttribute( interleavedBuffer : InterleavedBuffer, itemSize : Integer, offset : Integer, normalized : Boolean )

Properties

.data : InterleavedBuffer

The InterleavedBuffer instance passed in the constructor.

.array : TypedArray

The value of data.array.

.count : Integer

The value of data.count. If the buffer is storing a 3-component item (such as a position, normal, or color), then this will count the number of such items stored.

.itemSize : Integer

How many values make up each item.

.name : String

Optional name for this attribute instance. Default is an empty string.

.needsUpdate : Boolean

Default is false. Setting this to true will send the entire interleaved buffer (not just the specific attribute data) to the GPU again.

.normalized : Boolean

Default is false.

.offset : Integer

The offset in the underlying array buffer where an item starts.

Methods

.applyMatrix4 ( m : Matrix4 ) : this

Applies matrix m to every Vector3 element of this InterleavedBufferAttribute.

.applyNormalMatrix ( m : Matrix3 ) : this

Applies normal matrix m to every Vector3 element of this InterleavedBufferAttribute.

.transformDirection ( m : Matrix4 ) : this

Applies matrix m to every Vector3 element of this InterleavedBufferAttribute, interpreting the elements as a direction vectors.

.getX ( index : Integer ) : Number

Returns the x component of the item at the given index.

.getY ( index : Integer ) : Number

Returns the y component of the item at the given index.

.getZ ( index : Integer ) : Number

Returns the z component of the item at the given index.

.getW ( index : Integer ) : Number

Returns the w component of the item at the given index.

.setX ( index : Integer, x : Float ) : this

Sets the x component of the item at the given index.

.setY ( index : Integer, y : Float ) : this

Sets the y component of the item at the given index.

.setZ ( index : Integer, z : Float ) : this

Sets the z component of the item at the given index.

.setW ( index : Integer, w : Float ) : this

Sets the w component of the item at the given index.

.setXY ( index : Integer, x : Float, y : Float ) : this

Sets the x and y components of the item at the given index.

.setXYZ ( index : Integer, x : Float, y : Float, z : Float ) : this

Sets the x, y and z components of the item at the given index.

.setXYZW ( index : Integer, x : Float, y : Float, z : Float, w : Float ) : this

Sets the x, y, z and w components of the item at the given index.