diff --git a/examples/jsm/nodes/ShaderNode.js b/examples/jsm/nodes/ShaderNode.js index 40dbc85394f9b7..e5246fe47c4d27 100644 --- a/examples/jsm/nodes/ShaderNode.js +++ b/examples/jsm/nodes/ShaderNode.js @@ -198,6 +198,34 @@ export const nodeObject = ( val ) => { }; +export const label = ( node, name = null, nodeType = null ) => { + + if ( node.isVarNode === true ) { + + // node is already a VarNode + + if ( ( node.name !== name ) && ( name !== null ) ) { + + node.name = name; + + } + + if ( ( node.nodeType !== nodeType ) && ( nodeType !== null ) ) { + + node.nodeType = nodeType; + + } + + return nodeObject( node ); + + } + + return nodeObject( new VarNode( nodeObject( node ), name, nodeType ) ); + +}; + +export const temp = ( node, nodeType = null ) => label( node, null, nodeType ); + export const float = ( val ) => { if ( val?.isNode === true ) { @@ -226,7 +254,7 @@ export const color = ( ...params ) => { if ( params[ 0 ]?.isNode === true ) { - return nodeObject( new ConvertNode( params[0], 'color' ) ); + return nodeObject( new ConvertNode( params[ 0 ], 'color' ) ); } diff --git a/examples/jsm/nodes/core/VarNode.js b/examples/jsm/nodes/core/VarNode.js index 70a8fed7ee37ca..822444f569ec6e 100644 --- a/examples/jsm/nodes/core/VarNode.js +++ b/examples/jsm/nodes/core/VarNode.js @@ -48,4 +48,6 @@ class VarNode extends Node { } +VarNode.prototype.isVarNode = true; + export default VarNode;