45 lines
		
	
	
		
			821 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			45 lines
		
	
	
		
			821 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| class NodeBuilderState {
 | |
| 
 | |
| 	constructor( vertexShader, fragmentShader, computeShader, nodeAttributes, bindings, updateNodes, updateBeforeNodes, transforms = [] ) {
 | |
| 
 | |
| 		this.vertexShader = vertexShader;
 | |
| 		this.fragmentShader = fragmentShader;
 | |
| 		this.computeShader = computeShader;
 | |
| 		this.transforms = transforms;
 | |
| 
 | |
| 		this.nodeAttributes = nodeAttributes;
 | |
| 		this.bindings = bindings;
 | |
| 
 | |
| 		this.updateNodes = updateNodes;
 | |
| 		this.updateBeforeNodes = updateBeforeNodes;
 | |
| 
 | |
| 		this.usedTimes = 0;
 | |
| 
 | |
| 	}
 | |
| 
 | |
| 	createBindings() {
 | |
| 
 | |
| 		const bindingsArray = [];
 | |
| 
 | |
| 		for ( const instanceBinding of this.bindings ) {
 | |
| 
 | |
| 			let binding = instanceBinding;
 | |
| 
 | |
| 			if ( instanceBinding.shared !== true ) {
 | |
| 
 | |
| 				binding = instanceBinding.clone();
 | |
| 
 | |
| 			}
 | |
| 
 | |
| 			bindingsArray.push( binding );
 | |
| 
 | |
| 		}
 | |
| 
 | |
| 		return bindingsArray;
 | |
| 
 | |
| 	}
 | |
| 
 | |
| }
 | |
| 
 | |
| export default NodeBuilderState;
 |