EventDispatcherNodeInputNodeUniformNodeBufferNode

UniformArrayNode

Similar to BufferNode this module represents array-like data as uniform buffers. Unlike BufferNode, it can handle more common data types in the array (e.g three.js primitives) and automatically manage buffer padding. It should be the first choice when working with uniforms buffers.

Code Example

const tintColors = uniformArray( [
	new Color( 1, 0, 0 ),
	new Color( 0, 1, 0 ),
	new Color( 0, 0, 1 )
], 'color' );
const redColor = tintColors.element( 0 );

Constructor

new UniformArrayNode( value : Array.<any>, elementType : string )

Constructs a new uniform array node.

value

Array holding the buffer data.

elementType

The data type of a buffer element.

Default is null.

Properties

.array : Array.<any>

Array holding the buffer data. Unlike BufferNode, the array can hold number primitives as well as three.js objects like vectors, matrices or colors.

.elementType : string

The data type of an array element.

.isArrayBufferNode : boolean (readonly)

This flag can be used for type testing.

Default is true.

.paddedType : string

The padded type. Uniform buffers must conform to a certain buffer layout so a separate type is computed to ensure correct buffer size.

.updateType : string

Overwritten since uniform array nodes are updated per render.

Default is 'render'.

Overrides: BufferNode#updateType

Methods

.element( indexNode : IndexNode ) : UniformArrayElementNode

Overwrites the default element() method to provide element access based on UniformArrayNode.

indexNode

The index node.

.getElementType( builder : NodeBuilder ) : string

The data type of the array elements.

builder

The current node builder.

Overrides: BufferNode#getElementType
Returns: The element type.

.getNodeType( builder : NodeBuilder ) : string

This method is overwritten since the node type is inferred from the UniformArrayNode#paddedType.

builder

The current node builder.

Overrides: BufferNode#getNodeType
Returns: The node type.

.getPaddedType() : string

Returns the padded type based on the element type.

Returns: The padded type.

.setup( builder : NodeBuilder ) : null

Implement the value buffer creation based on the array data.

builder

A reference to the current node builder.

Overrides: BufferNode#setup

.update( frame : NodeFrame )

The update makes sure to correctly transfer the data from the (complex) objects in the array to the internal, correctly padded value buffer.

frame

A reference to the current node frame.

Overrides: BufferNode#update

Source

src/nodes/accessors/UniformArrayNode.js