BypassNode.js 743 B

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. import Node, { addNodeClass } from './Node.js';
  2. import { addNodeElement, nodeProxy } from '../shadernode/ShaderNode.js';
  3. class BypassNode extends Node {
  4. constructor( returnNode, callNode ) {
  5. super();
  6. this.isBypassNode = true;
  7. this.outputNode = returnNode;
  8. this.callNode = callNode;
  9. }
  10. getNodeType( builder ) {
  11. return this.outputNode.getNodeType( builder );
  12. }
  13. generate( builder ) {
  14. const snippet = this.callNode.build( builder, 'void' );
  15. if ( snippet !== '' ) {
  16. builder.addLineFlowCode( snippet );
  17. }
  18. return this.outputNode.build( builder );
  19. }
  20. }
  21. export default BypassNode;
  22. export const bypass = nodeProxy( BypassNode );
  23. addNodeElement( 'bypass', bypass );
  24. addNodeClass( 'BypassNode', BypassNode );