1234567891011121314151617181920212223242526272829303132333435363738394041 |
- import Node, { addNodeClass } from '../core/Node.js';
- class ArrayElementNode extends Node { // @TODO: If extending from TempNode it breaks webgpu_compute
- constructor( node, indexNode ) {
- super();
- this.node = node;
- this.indexNode = indexNode;
- this.isArrayElementNode = true;
- }
- getNodeType( builder ) {
- return this.node.getNodeType( builder );
- }
- generate( builder ) {
- const nodeSnippet = this.node.build( builder );
- const indexSnippet = this.indexNode.build( builder, 'uint' );
- if ( this.node.isStorageBufferNode && ! builder.isAvailable( 'storageBuffer' ) ) {
- return nodeSnippet;
- }
- return `${nodeSnippet}[ ${indexSnippet} ]`;
- }
- }
- export default ArrayElementNode;
- addNodeClass( 'ArrayElementNode', ArrayElementNode );
|