CodeNode.js 808 B

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. import Node, { addNodeClass } from './Node.js';
  2. import { nodeProxy } from '../shadernode/ShaderNode.js';
  3. class CodeNode extends Node {
  4. constructor( code = '', includes = [] ) {
  5. super( 'code' );
  6. this.isCodeNode = true;
  7. this.code = code;
  8. this._includes = includes;
  9. }
  10. setIncludes( includes ) {
  11. this._includes = includes;
  12. return this;
  13. }
  14. getIncludes( /*builder*/ ) {
  15. return this._includes;
  16. }
  17. generate( builder ) {
  18. const includes = this.getIncludes( builder );
  19. for ( const include of includes ) {
  20. include.build( builder );
  21. }
  22. const nodeCode = builder.getCodeFromNode( this, this.getNodeType( builder ) );
  23. nodeCode.code = this.code;
  24. return nodeCode.code;
  25. }
  26. }
  27. export default CodeNode;
  28. export const code = nodeProxy( CodeNode );
  29. addNodeClass( CodeNode );