12345678910111213141516171819202122232425262728293031323334353637383940414243444546 |
- import Node, { addNodeClass } from './Node.js';
- import NodeCache from './NodeCache.js';
- import { addNodeElement, nodeProxy } from '../shadernode/ShaderNode.js';
- class CacheNode extends Node {
- constructor( node, cache = new NodeCache() ) {
- super();
- this.isCacheNode = true;
- this.node = node;
- this.cache = cache;
- }
- getNodeType( builder ) {
- return this.node.getNodeType( builder );
- }
- build( builder, ...params ) {
- const previousCache = builder.getCache();
- builder.setCache( this.cache );
- const data = this.node.build( builder, ...params );
- builder.setCache( previousCache );
- return data;
- }
- }
- export default CacheNode;
- export const cache = nodeProxy( CacheNode );
- addNodeElement( 'cache', cache );
- addNodeClass( CacheNode );
|