42 lines
		
	
	
		
			973 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			42 lines
		
	
	
		
			973 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| import ReferenceNode from './ReferenceNode.js';
 | |
| //import { renderGroup } from '../core/UniformGroupNode.js';
 | |
| //import { NodeUpdateType } from '../core/constants.js';
 | |
| import { addNodeClass } from '../core/Node.js';
 | |
| import { nodeObject } from '../shadernode/ShaderNode.js';
 | |
| 
 | |
| class MaterialReferenceNode extends ReferenceNode {
 | |
| 
 | |
| 	constructor( property, inputType, material = null ) {
 | |
| 
 | |
| 		super( property, inputType, material );
 | |
| 
 | |
| 		this.material = material;
 | |
| 
 | |
| 		//this.updateType = NodeUpdateType.RENDER;
 | |
| 
 | |
| 	}
 | |
| 
 | |
| 	/*setNodeType( node ) {
 | |
| 
 | |
| 		super.setNodeType( node );
 | |
| 
 | |
| 		this.node.groupNode = renderGroup;
 | |
| 
 | |
| 	}*/
 | |
| 
 | |
| 	updateReference( state ) {
 | |
| 
 | |
| 		this.reference = this.material !== null ? this.material : state.material;
 | |
| 
 | |
| 		return this.reference;
 | |
| 
 | |
| 	}
 | |
| 
 | |
| }
 | |
| 
 | |
| export default MaterialReferenceNode;
 | |
| 
 | |
| export const materialReference = ( name, type, material ) => nodeObject( new MaterialReferenceNode( name, type, material ) );
 | |
| 
 | |
| addNodeClass( 'MaterialReferenceNode', MaterialReferenceNode );
 |