InterleavedBuffer

"Interleaved" means that multiple attributes, possibly of different types, (e.g., position, normal, uv, color) are packed into a single array buffer.

An introduction into interleaved arrays can be found here: Interleaved array basics

Constructor

new InterleavedBuffer( array : TypedArray, stride : number )

Constructs a new interleaved buffer.

array

A typed array with a shared buffer storing attribute data.

stride

The number of typed-array elements per vertex.

Properties

.array : TypedArray

A typed array with a shared buffer storing attribute data.

.count : number (readonly)

The total number of elements in the array

.isInterleavedBuffer : boolean (readonly)

This flag can be used for type testing.

Default is true.

.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.

.stride : number

The number of typed-array elements per vertex.

.updateRanges : Array.<Object>

This can be used to only update some components of stored vectors (for example, just the component related to color). Use the addUpdateRange() function to add ranges to this array.

.usage : StaticDrawUsage | DynamicDrawUsage | StreamDrawUsage | StaticReadUsage | DynamicReadUsage | StreamReadUsage | StaticCopyUsage | DynamicCopyUsage | StreamCopyUsage

Defines the intended usage pattern of the data store for optimization purposes.

Note: After the initial use of a buffer, its usage cannot be changed. Instead, instantiate a new one and set the desired usage before the next render.

Default is StaticDrawUsage.

.uuid : string (readonly)

The UUID of the interleaved buffer.

.version : number

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

Methods

.addUpdateRange( start : number, count : number )

Adds a range of data in the data array to be updated on the GPU.

start

Position at which to start update.

count

The number of components to update.

.clearUpdateRanges()

Clears the update ranges.

.clone( data : Object ) : InterleavedBuffer

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

data

An object with shared array buffers that allows to retain shared structures.

Returns: A clone of this instance.

.copy( source : InterleavedBuffer ) : InterleavedBuffer

Copies the values of the given interleaved buffer to this instance.

source

The interleaved buffer to copy.

Returns: A reference to this instance.

.copyAt( index1 : number, interleavedBuffer : InterleavedBuffer, index2 : number ) : InterleavedBuffer

Copies a vector from the given interleaved buffer to this one. The start and destination position in the attribute buffers are represented by the given indices.

index1

The destination index into this interleaved buffer.

interleavedBuffer

The interleaved buffer to copy from.

index2

The source index into the given interleaved buffer.

Returns: A reference to this instance.

.onUpload( callback : function ) : InterleavedBuffer

Sets the given callback function that is executed after the Renderer has transferred the array data to the GPU. Can be used to perform clean-up operations after the upload when data are not needed anymore on the CPU side.

callback

The onUpload() callback.

Returns: A reference to this instance.

.onUploadCallback()

A callback function that is executed after the renderer has transferred the attribute array data to the GPU.

.set( value : TypedArray | Array, offset : number ) : InterleavedBuffer

Sets the given array data in the interleaved buffer.

value

The array data to set.

offset

The offset in this interleaved buffer's array.

Default is 0.

Returns: A reference to this instance.

.setUsage( value : StaticDrawUsage | DynamicDrawUsage | StreamDrawUsage | StaticReadUsage | DynamicReadUsage | StreamReadUsage | StaticCopyUsage | DynamicCopyUsage | StreamCopyUsage ) : InterleavedBuffer

Sets the usage of this interleaved buffer.

value

The usage to set.

Returns: A reference to this interleaved buffer.

.toJSON( data : Object ) : Object

Serializes the interleaved buffer into JSON.

data

An optional value holding meta information about the serialization.

Returns: A JSON object representing the serialized interleaved buffer.

Source

src/core/InterleavedBuffer.js