ExpressionNode.js 655 B

12345678910111213141516171819202122232425262728293031323334353637
  1. import Node, { addNodeClass } from '../core/Node.js';
  2. import { nodeProxy } from '../shadernode/ShaderNode.js';
  3. class ExpressionNode extends Node {
  4. constructor( snippet = '', nodeType = 'void' ) {
  5. super( nodeType );
  6. this.snippet = snippet;
  7. }
  8. generate( builder, output ) {
  9. const type = this.getNodeType( builder );
  10. const snippet = this.snippet;
  11. if ( type === 'void' ) {
  12. builder.addLineFlowCode( snippet );
  13. } else {
  14. return builder.format( `( ${ snippet } )`, type, output );
  15. }
  16. }
  17. }
  18. export default ExpressionNode;
  19. export const expression = nodeProxy( ExpressionNode );
  20. addNodeClass( 'ExpressionNode', ExpressionNode );