InterleavedBufferAttribute

An alternative version of a buffer attribute with interleaved data. Interleaved attributes share a common interleaved data storage (InterleavedBuffer) and refer with different offsets into the buffer.

Constructor

new InterleavedBufferAttribute( interleavedBuffer : InterleavedBuffer, itemSize : number, offset : number, normalized : boolean )

Constructs a new interleaved buffer attribute.

interleavedBuffer

The buffer holding the interleaved data.

itemSize

The item size.

offset

The attribute offset into the buffer.

normalized

Whether the data are normalized or not.

Default is false.

Properties

.array : TypedArray

The array holding the interleaved buffer attribute data.

.count : number (readonly)

The item count of this buffer attribute.

.data : InterleavedBuffer

The buffer holding the interleaved data.

.isInterleavedBufferAttribute : boolean (readonly)

This flag can be used for type testing.

Default is true.

.itemSize : number

The item size, see BufferAttribute#itemSize.

.name : string

The name of the buffer attribute.

.needsUpdate : number

Flag to indicate that this attribute has changed and should be re-sent to the GPU. Set this to true when you modify the value of the array.

Default is false.

.normalized : InterleavedBuffer

Whether the data are normalized or not, see BufferAttribute#normalized

.offset : number

The attribute offset into the buffer.

Methods

.applyMatrix4( m : Matrix4 ) : InterleavedBufferAttribute

Applies the given 4x4 matrix to the given attribute. Only works with item size 3.

m

The matrix to apply.

Returns: A reference to this instance.

.applyNormalMatrix( m : Matrix3 ) : InterleavedBufferAttribute

Applies the given 3x3 normal matrix to the given attribute. Only works with item size 3.

m

The normal matrix to apply.

Returns: A reference to this instance.

.clone( data : Object ) : BufferAttribute | InterleavedBufferAttribute

Returns a new buffer attribute with copied values from this instance.

If no parameter is provided, cloning an interleaved buffer attribute will de-interleave buffer data.

data

An object with interleaved buffers that allows to retain the interleaved property.

Returns: A clone of this instance.

.getComponent( index : number, component : number ) : number

Returns the given component of the vector at the given index.

index

The index into the buffer attribute.

component

The component index.

Returns: The returned value.

.getW( index : number ) : number

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

index

The index into the buffer attribute.

Returns: The w component.

.getX( index : number ) : number

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

index

The index into the buffer attribute.

Returns: The x component.

.getY( index : number ) : number

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

index

The index into the buffer attribute.

Returns: The y component.

.getZ( index : number ) : number

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

index

The index into the buffer attribute.

Returns: The z component.

.setComponent( index : number, component : number, value : number ) : InterleavedBufferAttribute

Sets the given value to the given component of the vector at the given index.

index

The index into the buffer attribute.

component

The component index.

value

The value to set.

Returns: A reference to this instance.

.setW( index : number, w : number ) : InterleavedBufferAttribute

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

index

The index into the buffer attribute.

w

The value to set.

Returns: A reference to this instance.

.setX( index : number, x : number ) : InterleavedBufferAttribute

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

index

The index into the buffer attribute.

x

The value to set.

Returns: A reference to this instance.

.setXY( index : number, x : number, y : number ) : InterleavedBufferAttribute

Sets the x and y component of the vector at the given index.

index

The index into the buffer attribute.

x

The value for the x component to set.

y

The value for the y component to set.

Returns: A reference to this instance.

.setXYZ( index : number, x : number, y : number, z : number ) : InterleavedBufferAttribute

Sets the x, y and z component of the vector at the given index.

index

The index into the buffer attribute.

x

The value for the x component to set.

y

The value for the y component to set.

z

The value for the z component to set.

Returns: A reference to this instance.

.setXYZW( index : number, x : number, y : number, z : number, w : number ) : InterleavedBufferAttribute

Sets the x, y, z and w component of the vector at the given index.

index

The index into the buffer attribute.

x

The value for the x component to set.

y

The value for the y component to set.

z

The value for the z component to set.

w

The value for the w component to set.

Returns: A reference to this instance.

.setY( index : number, y : number ) : InterleavedBufferAttribute

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

index

The index into the buffer attribute.

y

The value to set.

Returns: A reference to this instance.

.setZ( index : number, z : number ) : InterleavedBufferAttribute

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

index

The index into the buffer attribute.

z

The value to set.

Returns: A reference to this instance.

.toJSON( data : Object ) : Object

Serializes the buffer attribute into JSON.

If no parameter is provided, cloning an interleaved buffer attribute will de-interleave buffer data.

data

An optional value holding meta information about the serialization.

Returns: A JSON object representing the serialized buffer attribute.

.transformDirection( m : Matrix4 ) : InterleavedBufferAttribute

Applies the given 4x4 matrix to the given attribute. Only works with item size 3 and with direction vectors.

m

The matrix to apply.

Returns: A reference to this instance.

Source

src/core/InterleavedBufferAttribute.js