import Node from './Node.js'; import VaryNode from './VaryNode.js'; class AttributeNode extends Node { constructor( attributeName, nodeType ) { super( nodeType ); this._attributeName = attributeName; } getHash( builder ) { return this.getAttributeName( builder ); } setAttributeName( attributeName ) { this._attributeName = attributeName; return this; } getAttributeName( /*builder*/ ) { return this._attributeName; } generate( builder ) { const attribute = builder.getAttribute( this.getAttributeName( builder ), this.getNodeType( builder ) ); if ( builder.isShaderStage( 'vertex' ) ) { return attribute.name; } else { const nodeVary = new VaryNode( this ); return nodeVary.build( builder, attribute.type ); } } } export default AttributeNode;