UNPKG

three

Version:

JavaScript 3D library

54 lines (27 loc) 775 B
import Node from './Node.js'; class ContextNode extends Node { constructor( node, parameters = {} ) { super(); this.node = node; this.parameters = parameters; Object.defineProperty( this, 'isContextNode', { value: true } ); } setParameter( name, value ) { this.parameters[ name ] = value; return this; } getParameter( name ) { return this.parameters[ name ]; } getType( builder ) { return this.node.getType( builder ); } generate( builder, output ) { const previousContext = builder.getContext(); builder.setContext( Object.assign( {}, builder.context, this.parameters ) ); const snippet = this.node.build( builder, output ); builder.setContext( previousContext ); return snippet; } } export default ContextNode;