1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859 |
- import Node, { addNodeClass } from './Node.js';
- import { addNodeElement, nodeProxy } from '../shadernode/ShaderNode.js';
- class ContextNode extends Node {
- constructor( node, context = {} ) {
- super();
- this.isContextNode = true;
- this.node = node;
- this.context = context;
- }
- getNodeType( builder ) {
- return this.node.getNodeType( builder );
- }
- construct( builder ) {
- const previousContext = builder.getContext();
- builder.setContext( { ...builder.context, ...this.context } );
- const node = this.node.build( builder );
- builder.setContext( previousContext );
- return node;
- }
- generate( builder, output ) {
- const previousContext = builder.getContext();
- builder.setContext( { ...builder.context, ...this.context } );
- const snippet = this.node.build( builder, output );
- builder.setContext( previousContext );
- return snippet;
- }
- }
- export default ContextNode;
- export const context = nodeProxy( ContextNode );
- addNodeElement( 'context', context );
- addNodeClass( ContextNode );
|