From be8b0f0312ff23d0dea3532e9544e3983b9ce946 Mon Sep 17 00:00:00 2001 From: sunag Date: Tue, 13 Aug 2024 22:52:01 -0300 Subject: [PATCH] remove keywords --- examples/webgpu_materials.html | 3 +- src/nodes/Nodes.js | 1 - src/nodes/code/FunctionNode.js | 20 +-------- src/nodes/core/NodeBuilder.js | 3 -- src/nodes/core/NodeKeywords.js | 80 ---------------------------------- 5 files changed, 2 insertions(+), 105 deletions(-) delete mode 100644 src/nodes/core/NodeKeywords.js diff --git a/examples/webgpu_materials.html b/examples/webgpu_materials.html index fea6bad8aeb9b8..39fec77dd1ed42 100644 --- a/examples/webgpu_materials.html +++ b/examples/webgpu_materials.html @@ -183,7 +183,7 @@ material.colorNode = someWGSLFn( { color: texture( uvTexture ) } ); materials.push( material ); - // Custom WGSL ( get texture from keywords ) + // Custom WGSL const getWGSLTextureSample = wgslFn( ` fn getWGSLTextureSample( tex: texture_2d, tex_sampler: sampler, uv:vec2 ) -> vec4 { @@ -194,7 +194,6 @@ ` ); const textureNode = texture( uvTexture ); - //getWGSLTextureSample.keywords = { tex: textureNode, tex_sampler: sampler( textureNode ) }; material = new THREE.MeshBasicNodeMaterial(); material.colorNode = getWGSLTextureSample( { tex: textureNode, tex_sampler: textureNode, uv: uv() } ); diff --git a/src/nodes/Nodes.js b/src/nodes/Nodes.js index 2584c47e505a43..6b53d480e64a2f 100644 --- a/src/nodes/Nodes.js +++ b/src/nodes/Nodes.js @@ -21,7 +21,6 @@ export { default as NodeCache } from './core/NodeCache.js'; export { default as NodeCode } from './core/NodeCode.js'; export { default as NodeFrame } from './core/NodeFrame.js'; export { default as NodeFunctionInput } from './core/NodeFunctionInput.js'; -export { default as NodeKeywords } from './core/NodeKeywords.js'; export { default as NodeUniform } from './core/NodeUniform.js'; export { default as NodeVar } from './core/NodeVar.js'; export { default as NodeVarying } from './core/NodeVarying.js'; diff --git a/src/nodes/code/FunctionNode.js b/src/nodes/code/FunctionNode.js index 335ad12c78cd9b..30bbc0948b0539 100644 --- a/src/nodes/code/FunctionNode.js +++ b/src/nodes/code/FunctionNode.js @@ -8,8 +8,6 @@ class FunctionNode extends CodeNode { super( code, includes, language ); - this.keywords = {}; - } getNodeType( builder ) { @@ -63,23 +61,7 @@ class FunctionNode extends CodeNode { const propertyName = builder.getPropertyName( nodeCode ); - let code = this.getNodeFunction( builder ).getCode( propertyName ); - - const keywords = this.keywords; - const keywordsProperties = Object.keys( keywords ); - - if ( keywordsProperties.length > 0 ) { - - for ( const property of keywordsProperties ) { - - const propertyRegExp = new RegExp( `\\b${property}\\b`, 'g' ); - const nodeProperty = keywords[ property ].build( builder, 'property' ); - - code = code.replace( propertyRegExp, nodeProperty ); - - } - - } + const code = this.getNodeFunction( builder ).getCode( propertyName ); nodeCode.code = code + '\n'; diff --git a/src/nodes/core/NodeBuilder.js b/src/nodes/core/NodeBuilder.js index fe0e688551797b..697bd8158e8ef2 100644 --- a/src/nodes/core/NodeBuilder.js +++ b/src/nodes/core/NodeBuilder.js @@ -3,7 +3,6 @@ import NodeAttribute from './NodeAttribute.js'; import NodeVarying from './NodeVarying.js'; import NodeVar from './NodeVar.js'; import NodeCode from './NodeCode.js'; -import NodeKeywords from './NodeKeywords.js'; import NodeCache from './NodeCache.js'; import ParameterNode from './ParameterNode.js'; import FunctionNode from '../code/FunctionNode.js'; @@ -113,7 +112,6 @@ class NodeBuilder { this.currentFunctionNode = null; this.context = { - keywords: new NodeKeywords(), material: this.material }; @@ -402,7 +400,6 @@ class NodeBuilder { const context = { ...this.context }; - delete context.keywords; delete context.material; return this.context; diff --git a/src/nodes/core/NodeKeywords.js b/src/nodes/core/NodeKeywords.js deleted file mode 100644 index 6b756c23dd5315..00000000000000 --- a/src/nodes/core/NodeKeywords.js +++ /dev/null @@ -1,80 +0,0 @@ -class NodeKeywords { - - constructor() { - - this.keywords = []; - this.nodes = {}; - this.keywordsCallback = {}; - - } - - getNode( name ) { - - let node = this.nodes[ name ]; - - if ( node === undefined && this.keywordsCallback[ name ] !== undefined ) { - - node = this.keywordsCallback[ name ]( name ); - - this.nodes[ name ] = node; - - } - - return node; - - } - - addKeyword( name, callback ) { - - this.keywords.push( name ); - this.keywordsCallback[ name ] = callback; - - return this; - - } - - parse( code ) { - - const keywordNames = this.keywords; - - const regExp = new RegExp( `\\b${keywordNames.join( '\\b|\\b' )}\\b`, 'g' ); - - const codeKeywords = code.match( regExp ); - - const keywordNodes = []; - - if ( codeKeywords !== null ) { - - for ( const keyword of codeKeywords ) { - - const node = this.getNode( keyword ); - - if ( node !== undefined && keywordNodes.indexOf( node ) === - 1 ) { - - keywordNodes.push( node ); - - } - - } - - } - - return keywordNodes; - - } - - include( builder, code ) { - - const keywordNodes = this.parse( code ); - - for ( const keywordNode of keywordNodes ) { - - keywordNode.build( builder ); - - } - - } - -} - -export default NodeKeywords;