node-ejs-renderer/node_modules/three/examples/jsm/nodes/code/ExpressionNode.js
2024-06-09 13:55:01 -04:00

38 lines
655 B
JavaScript

import Node, { addNodeClass } from '../core/Node.js';
import { nodeProxy } from '../shadernode/ShaderNode.js';
class ExpressionNode extends Node {
constructor( snippet = '', nodeType = 'void' ) {
super( nodeType );
this.snippet = snippet;
}
generate( builder, output ) {
const type = this.getNodeType( builder );
const snippet = this.snippet;
if ( type === 'void' ) {
builder.addLineFlowCode( snippet );
} else {
return builder.format( `( ${ snippet } )`, type, output );
}
}
}
export default ExpressionNode;
export const expression = nodeProxy( ExpressionNode );
addNodeClass( 'ExpressionNode', ExpressionNode );