Skip to content

Documentation / scene / IGraphNode

Interface: IGraphNode ​

Defined in: libs/scene/src/utility/blueprint/node.ts:228

Interface for a graph node in the material blueprint system

Remarks ​

Defines the contract that all graph nodes must implement, including:

  • Input and output slot management
  • Type information retrieval
  • Error state tracking
  • Validation logic
  • Change notification through events

Example ​

typescript
class AddNode implements IGraphNode {
  readonly inputs = [
    { id: 0, name: 'a', type: ['float'] },
    { id: 1, name: 'b', type: ['float'] }
  ];
  readonly outputs = [
    { id: 0, name: 'result' }
  ];
  // ... implement other methods
}

Extends ​

  • IEventTarget<{ changed: []; }>

Properties ​

[EventMapType]? ​

readonly optional [EventMapType]?: object

Defined in: libs/base/dist/index.d.ts:585

Type-only event map marker.

changed ​

changed: []

Inherited from ​

IEventTarget.[EventMapType]


inputs ​

readonly inputs: GraphNodeInput[]

Defined in: libs/scene/src/utility/blueprint/node.ts:230

Array of input slot definitions


outputs ​

readonly outputs: GraphNodeOutput[]

Defined in: libs/scene/src/utility/blueprint/node.ts:232

Array of output slot definitions


isUniform ​

isUniform: boolean

Defined in: libs/scene/src/utility/blueprint/node.ts:234

Whether this node has uniform value


paramName ​

paramName: string

Defined in: libs/scene/src/utility/blueprint/node.ts:236

Uniform parameter name


error ​

error: string

Defined in: libs/scene/src/utility/blueprint/node.ts:238

Current error message, empty string if no error

Methods ​

on() ​

on<K>(type, listener, context?): void

Defined in: libs/base/dist/index.d.ts:592

Sets up a function that will be called whenever the specified event is delivered to the target

Type Parameters ​

K ​

K extends "changed"

Parameters ​

type ​

K

The event type to listen for

listener ​

EventListener<{ changed: []; }, K>

The callback function

context? ​

unknown

Context object of the listener function

Returns ​

void

Inherited from ​

IEventTarget.on


once() ​

once<K>(type, listener, context?): void

Defined in: libs/base/dist/index.d.ts:599

Sets up a function that will be called only once when the specified event is delivered to the target

Type Parameters ​

K ​

K extends "changed"

Parameters ​

type ​

K

The event type to listen for

listener ​

EventListener<{ changed: []; }, K>

The callback function

context? ​

unknown

Context object of the listener function

Returns ​

void

Inherited from ​

IEventTarget.once


off() ​

off<K>(type, listener?, context?): void

Defined in: libs/base/dist/index.d.ts:605

Removes an event listener function previously registered.

Type Parameters ​

K ​

K extends "changed"

Parameters ​

type ​

K

The event type for which to remove an event listener

listener? ​

EventListener<{ changed: []; }>

The callback function to be removed

context? ​

unknown

Returns ​

void

Inherited from ​

IEventTarget.off


dispatchEvent() ​

dispatchEvent<K>(type, ...args): void

Defined in: libs/base/dist/index.d.ts:611

Synchronously invoke the affected event listeners with an event object

Type Parameters ​

K ​

K extends "changed"

Parameters ​

type ​

K

args ​

...object[K]

Returns ​

void

false if the event was canceled, otherwise true

Inherited from ​

IEventTarget.dispatchEvent


getOutputType() ​

getOutputType(id): string

Defined in: libs/scene/src/utility/blueprint/node.ts:250

Gets the output type for a specific output slot

Parameters ​

id ​

number

The output slot ID

Returns ​

string

The type name of the output (e.g., 'float', 'vec3', 'mat4')

Example ​

typescript
const outputType = node.getOutputType(0);  // 'vec3'

toString() ​

toString(): string

Defined in: libs/scene/src/utility/blueprint/node.ts:265

Generates a string representation of the node

Returns ​

string

String representation of the node's operation

Remarks ​

Typically used for code generation or debugging purposes. Should return valid shader code or a meaningful description.

Example ​

typescript
node.toString();  // Returns: "float result = a + b;"

check() ​

check(): void

Defined in: libs/scene/src/utility/blueprint/node.ts:282

Validates the node's current state

Returns ​

void

Remarks ​

Checks if all required inputs are connected and if type constraints are satisfied. Sets the error property if validation fails. Should be called after any connection changes.

Example ​

typescript
node.check();
if (node.error) {
  console.error('Validation failed:', node.error);
}

reset() ​

reset(): void

Defined in: libs/scene/src/utility/blueprint/node.ts:289

Resets the node's error state

Returns ​

void

Remarks ​

Clears any error messages. Typically called before revalidation.

Released under the MIT License.