123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051 |
- 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( frame ) {
- this.reference = this.material !== null ? this.material : frame.material;
- return this.reference;
- }
- setup( builder ) {
- const material = this.material !== null ? this.material : builder.material;
- this.node.value = material[ this.property ];
- return super.setup( builder );
- }
- }
- export default MaterialReferenceNode;
- export const materialReference = ( name, type, material ) => nodeObject( new MaterialReferenceNode( name, type, material ) );
- addNodeClass( 'MaterialReferenceNode', MaterialReferenceNode );
|