Skip to main content

ScenegraphNode

ScenegraphNode is the base class for engine scenegraph objects. It stores an id, transform state, a model matrix, and utility methods for updating that transform.

Usage

import {ScenegraphNode} from '@luma.gl/engine';

const node = new ScenegraphNode({position: [0, 1, 2]});
node.updateMatrix();

Types

ScenegraphNodeProps

export type ScenegraphNodeProps = {
id?: string;
display?: boolean;
matrix?: NumericArray;
position?: NumericArray;
rotation?: NumericArray;
scale?: NumericArray;
update?: boolean;
};

Properties

id

Application-provided or auto-generated identifier.

matrix

Current model matrix.

display

Display flag stored on the node.

position, rotation, scale

Transform components.

userData

Application-owned metadata.

Methods

constructor(props?: ScenegraphNodeProps)

Creates a scenegraph node and initializes its transform state.

getBounds(): [number[], number[]] | null

Base implementation returns null.

destroy(): void

Base implementation is a no-op.

delete(): void

Deprecated alias for destroy().

setProps(props: ScenegraphNodeProps): this

Applies node properties and updates the matrix.

setPosition(position): this

Updates position.

setRotation(rotation): this

Updates Euler or quaternion rotation.

setScale(scale): this

Updates scale.

setMatrix(matrix, copyMatrix = true): void

Replaces the model matrix directly.

setMatrixComponents({position, rotation, scale, update?}): this

Updates transform components in one call.

updateMatrix(): this

Recomputes the matrix from position, rotation, and scale.

update({position, rotation, scale} = {}): this

Updates individual components and recomputes the matrix.

getCoordinateUniforms(viewMatrix, modelMatrix?): {...}

Returns derived matrices useful for shaders.