Documentation / scene / FunctionOutputNode
Class: FunctionOutputNode
Defined in: libs/scene/src/utility/blueprint/material/func.ts:411
Function output value node
Remarks
Represents an output value in a material function blueprint. These nodes define what data the function returns to its caller.
Each FunctionOutputNode:
- Has a name (output value name)
- Has one input that must be connected to compute the output value
- Automatically determines its type from the connected input
- Has no outputs (it provides its value to the calling context)
When a FunctionCallNode is created, it scans for all FunctionOutputNodes and creates corresponding output slots on the call node.
A function can have multiple outputs to return different related values (e.g., a noise function might return both noise value and derivative).
Example
// In a function blueprint:
const resultOutput = new FunctionOutputNode();
resultOutput.name = 'result';
resultOutput.connectInput(1, computeNode, 1);
const normalOutput = new FunctionOutputNode();
normalOutput.name = 'normal';
normalOutput.connectInput(1, normalNode, 1);
// When called, the FunctionCallNode will have two outputs:
// - Output 1: result (type determined by computeNode)
// - Output 2: normal (type determined by normalNode)Extends
Constructors
Constructor
new FunctionOutputNode():
FunctionOutputNode
Defined in: libs/scene/src/utility/blueprint/material/func.ts:423
Creates a new function output node
Returns
FunctionOutputNode
Remarks
Initializes with:
- Auto-generated name: out_N (where N is an incrementing counter)
- One input slot that accepts any standard shader type
- Type is inferred from the connected input node
Overrides
Properties
outId
staticoutId:number=1
Defined in: libs/scene/src/utility/blueprint/material/func.ts:413
Static counter for auto-generating unique output names
_inputs
protected_inputs:GraphNodeInput[]
Defined in: libs/scene/src/utility/blueprint/node.ts:336
Internal storage for input slot definitions
Inherited from
_outputs
protected_outputs:GraphNodeOutput[]
Defined in: libs/scene/src/utility/blueprint/node.ts:338
Internal storage for output slot definitions
Inherited from
_error
protected_error:string
Defined in: libs/scene/src/utility/blueprint/node.ts:340
Internal storage for error message
Inherited from
Accessors
name
Get Signature
get name():
string
Defined in: libs/scene/src/utility/blueprint/material/func.ts:438
Gets the output value name
Returns
string
The output name used in function calls
Set Signature
set name(
val):void
Defined in: libs/scene/src/utility/blueprint/material/func.ts:441
Parameters
val
string
Returns
void
type
Get Signature
get type():
string
Defined in: libs/scene/src/utility/blueprint/material/func.ts:454
Gets the output value type
Remarks
This is a convenience accessor that calls getType().
Returns
string
The data type inferred from the connected input
isUniform
Get Signature
get isUniform():
boolean
Defined in: libs/scene/src/utility/blueprint/node.ts:357
Whether this node contains uniform value/texture
Returns
boolean
Whether this node has uniform value
Inherited from
paramName
Get Signature
get paramName():
string
Defined in: libs/scene/src/utility/blueprint/node.ts:363
Uniform parameter name
Returns
string
Uniform parameter name
Inherited from
inputs
Get Signature
get inputs():
GraphNodeInput[]
Defined in: libs/scene/src/utility/blueprint/node.ts:380
Gets the input slot definitions array
Returns
Array of input slot definitions
Inherited from
outputs
Get Signature
get outputs():
GraphNodeOutput[]
Defined in: libs/scene/src/utility/blueprint/node.ts:384
Gets the output slot definitions array
Returns
Array of output slot definitions
Inherited from
error
Get Signature
get error():
string
Defined in: libs/scene/src/utility/blueprint/node.ts:388
Gets the current error message
Returns
string
Set Signature
set error(
str):void
Defined in: libs/scene/src/utility/blueprint/node.ts:391
Current error message, empty string if no error
Parameters
str
string
Returns
void
Current error message, empty string if no error
Inherited from
Methods
on()
on<
K>(type,listener,context?):void
Defined in: libs/base/dist/index.d.ts:594
IEventTarget.on
Type Parameters
K
K extends "changed"
Parameters
type
K
listener
EventListener<{ changed: []; }, K>
context?
unknown
Returns
void
Inherited from
once()
once<
K>(type,listener,context?):void
Defined in: libs/base/dist/index.d.ts:598
IEventTarget.once
Type Parameters
K
K extends "changed"
Parameters
type
K
listener
EventListener<{ changed: []; }, K>
context?
unknown
Returns
void
Inherited from
off()
off<
K>(type,listener?,context?):void
Defined in: libs/base/dist/index.d.ts:602
IEventTarget.off
Type Parameters
K
K extends "changed"
Parameters
type
K
listener?
EventListener<{ changed: []; }>
context?
unknown
Returns
void
Inherited from
dispatchEvent()
dispatchEvent<
K>(type, ...args):void
Defined in: libs/base/dist/index.d.ts:606
IEventTarget.dispatchEvent
Type Parameters
K
K extends "changed"
Parameters
type
K
args
...object[K]
Returns
void
Inherited from
getSerializationCls()
staticgetSerializationCls():object
Defined in: libs/scene/src/utility/blueprint/material/func.ts:466
Gets the serialization descriptor for this node type
Returns
object
Serialization class descriptor
ctor
ctor: typeof
FunctionOutputNode=FunctionOutputNode
name
name:
string='FunctionOutputNode'
getProps()
getProps():
PropertyAccessor<object,"">[]
Returns
PropertyAccessor<object, "">[]
Remarks
Only serializes the output name. The type is inferred at runtime from the connected input node.
toString()
toString():
string
Defined in: libs/scene/src/utility/blueprint/material/func.ts:492
Generates a string representation of this node
Returns
string
'FunctionOutput'
Overrides
validate()
protectedvalidate():""|"Missing result"|"Cannot determin result type"
Defined in: libs/scene/src/utility/blueprint/material/func.ts:505
Validates the node state
Returns
"" | "Missing result" | "Cannot determin result type"
Error message if invalid, empty string if valid
Remarks
Ensures:
- The input is connected (function must return a value)
- The input type can be determined
Overrides
getType()
protectedgetType():string
Defined in: libs/scene/src/utility/blueprint/material/func.ts:525
Gets the output type based on the connected input
Returns
string
The type from the connected input node, or empty string if not connected
Remarks
The output type is dynamically determined by tracing back through the connected input to find its source type. This allows functions to work with multiple types without explicit type declarations.
Overrides
getOutputType()
getOutputType(
id):string
Defined in: libs/scene/src/utility/blueprint/node.ts:376
Gets the output type for a specific output slot
Parameters
id
number
The output slot ID
Returns
string
The type name of the output
Remarks
Default implementation delegates to the abstract getType() method. Can be overridden for more complex type logic.
Inherited from
check()
check():
void
Defined in: libs/scene/src/utility/blueprint/node.ts:413
Validates the node and updates error state
Returns
void
Remarks
Calls the validate() method and stores the result in _error. Emits a 'changed' event if the error state changes.
Inherited from
reset()
reset():
void
Defined in: libs/scene/src/utility/blueprint/node.ts:422
Clears the error state
Returns
void
Remarks
Sets _error to an empty string.
Inherited from
setInput()
setInput(
id,node,inputId):void
Defined in: libs/scene/src/utility/blueprint/node.ts:443
Connects an input slot to another node's output
Parameters
id
number
The input slot ID to connect
node
The source node to connect from
inputId
number
The output slot ID of the source node
Returns
void
Throws
Error if the input slot with the given ID doesn't exist
Example
const addNode = new AddNode();
const constantNode = new ConstantNode(5.0);
// Connect constantNode's output 0 to addNode's input 0
addNode.setInput(0, constantNode, 0);