MaterialReferenceNode.js 1.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. import { registerNode } from '../core/Node.js';
  2. import ReferenceNode from './ReferenceNode.js';
  3. //import { renderGroup } from '../core/UniformGroupNode.js';
  4. //import { NodeUpdateType } from '../core/constants.js';
  5. import { nodeObject } from '../tsl/TSLBase.js';
  6. class MaterialReferenceNode extends ReferenceNode {
  7. constructor( property, inputType, material = null ) {
  8. super( property, inputType, material );
  9. this.material = material;
  10. //this.updateType = NodeUpdateType.RENDER;
  11. this.isMaterialReferenceNode = true;
  12. }
  13. /*setNodeType( node ) {
  14. super.setNodeType( node );
  15. this.node.groupNode = renderGroup;
  16. }*/
  17. updateReference( state ) {
  18. this.reference = this.material !== null ? this.material : state.material;
  19. return this.reference;
  20. }
  21. }
  22. export default MaterialReferenceNode;
  23. MaterialReferenceNode.type = /*@__PURE__*/ registerNode( 'MaterialReference', MaterialReferenceNode );
  24. export const materialReference = ( name, type, material ) => nodeObject( new MaterialReferenceNode( name, type, material ) );
粤ICP备19079148号