From 7d96dcaaa0d93bda8410fd4c0e53492f2bacc168 Mon Sep 17 00:00:00 2001 From: sunag Date: Tue, 9 Dec 2025 00:52:51 -0300 Subject: [PATCH 1/4] remove `nodeObject` for Node classes --- src/loaders/nodes/NodeLoader.js | 2 +- src/nodes/accessors/BufferNode.js | 2 +- src/nodes/accessors/ClippingNode.js | 6 +++--- src/nodes/accessors/MaterialReferenceNode.js | 2 +- src/nodes/accessors/ReferenceBaseNode.js | 6 +++--- src/nodes/accessors/ReferenceNode.js | 6 +++--- src/nodes/accessors/RendererReferenceNode.js | 2 +- src/nodes/accessors/SkinningNode.js | 2 +- src/nodes/accessors/StorageBufferNode.js | 2 +- src/nodes/accessors/UniformArrayNode.js | 4 ++-- src/nodes/accessors/UserDataNode.js | 2 +- src/nodes/accessors/VertexColorNode.js | 2 +- src/nodes/code/FunctionNode.js | 2 +- src/nodes/core/AttributeNode.js | 2 +- src/nodes/core/ParameterNode.js | 2 +- src/nodes/core/PropertyNode.js | 4 ++-- src/nodes/core/StructNode.js | 2 +- src/nodes/core/UniformNode.js | 2 +- src/nodes/display/PassNode.js | 10 +++++----- src/nodes/gpgpu/ComputeBuiltinNode.js | 2 +- src/nodes/gpgpu/WorkgroupInfoNode.js | 4 ++-- src/nodes/lighting/LightsNode.js | 4 ++-- src/nodes/lighting/PointShadowNode.js | 2 +- src/nodes/lighting/ShadowNode.js | 2 +- src/nodes/tsl/TSLCore.js | 8 ++++---- src/nodes/utils/EventNode.js | 2 +- src/nodes/utils/ReflectorNode.js | 2 +- src/nodes/utils/SampleNode.js | 2 +- 28 files changed, 45 insertions(+), 45 deletions(-) diff --git a/src/loaders/nodes/NodeLoader.js b/src/loaders/nodes/NodeLoader.js index 246427c01755ab..221b58bec9d180 100644 --- a/src/loaders/nodes/NodeLoader.js +++ b/src/loaders/nodes/NodeLoader.js @@ -185,7 +185,7 @@ class NodeLoader extends Loader { } - return nodeObject( new this.nodes[ type ]() ); + return new this.nodes[ type ](); } diff --git a/src/nodes/accessors/BufferNode.js b/src/nodes/accessors/BufferNode.js index 8c20013546fb64..523fb31c8b5d1a 100644 --- a/src/nodes/accessors/BufferNode.js +++ b/src/nodes/accessors/BufferNode.js @@ -126,4 +126,4 @@ export default BufferNode; * @param {number} count - The count of buffer elements. * @returns {BufferNode} */ -export const buffer = ( value, type, count ) => nodeObject( new BufferNode( value, type, count ) ); +export const buffer = ( value, type, count ) => new BufferNode( value, type, count ); diff --git a/src/nodes/accessors/ClippingNode.js b/src/nodes/accessors/ClippingNode.js index 5793b6cc0d673d..7b76e819733373 100644 --- a/src/nodes/accessors/ClippingNode.js +++ b/src/nodes/accessors/ClippingNode.js @@ -234,7 +234,7 @@ export default ClippingNode; * @function * @returns {ClippingNode} */ -export const clipping = () => nodeObject( new ClippingNode() ); +export const clipping = () => new ClippingNode(); /** * TSL function for setting up alpha to coverage. @@ -243,7 +243,7 @@ export const clipping = () => nodeObject( new ClippingNode() ); * @function * @returns {ClippingNode} */ -export const clippingAlpha = () => nodeObject( new ClippingNode( ClippingNode.ALPHA_TO_COVERAGE ) ); +export const clippingAlpha = () => new ClippingNode( ClippingNode.ALPHA_TO_COVERAGE ); /** * TSL function for setting up hardware-based clipping. @@ -252,4 +252,4 @@ export const clippingAlpha = () => nodeObject( new ClippingNode( ClippingNode.AL * @function * @returns {ClippingNode} */ -export const hardwareClipping = () => nodeObject( new ClippingNode( ClippingNode.HARDWARE ) ); +export const hardwareClipping = () => new ClippingNode( ClippingNode.HARDWARE ); diff --git a/src/nodes/accessors/MaterialReferenceNode.js b/src/nodes/accessors/MaterialReferenceNode.js index f4e20ec62c9ac6..9bdf49798758f5 100644 --- a/src/nodes/accessors/MaterialReferenceNode.js +++ b/src/nodes/accessors/MaterialReferenceNode.js @@ -82,4 +82,4 @@ export default MaterialReferenceNode; * When no material is set, the node refers to the material of the current rendered object. * @returns {MaterialReferenceNode} */ -export const materialReference = ( name, type, material = null ) => nodeObject( new MaterialReferenceNode( name, type, material ) ); +export const materialReference = ( name, type, material = null ) => new MaterialReferenceNode( name, type, material ); diff --git a/src/nodes/accessors/ReferenceBaseNode.js b/src/nodes/accessors/ReferenceBaseNode.js index 33b5efb64ed607..08bae8b1277015 100644 --- a/src/nodes/accessors/ReferenceBaseNode.js +++ b/src/nodes/accessors/ReferenceBaseNode.js @@ -199,7 +199,7 @@ class ReferenceBaseNode extends Node { */ element( indexNode ) { - return nodeObject( new ReferenceElementNode( this, nodeObject( indexNode ) ) ); + return new ReferenceElementNode( this, nodeObject( indexNode ) ); } @@ -340,7 +340,7 @@ export default ReferenceBaseNode; * @param {Object} object - The object the property belongs to. * @returns {ReferenceBaseNode} */ -export const reference = ( name, type, object ) => nodeObject( new ReferenceBaseNode( name, type, object ) ); +export const reference = ( name, type, object ) => new ReferenceBaseNode( name, type, object ); /** * TSL function for creating a reference base node. Use this function if you want need a reference @@ -354,4 +354,4 @@ export const reference = ( name, type, object ) => nodeObject( new ReferenceBase * @param {Object} [object] - An array-like object the property belongs to. * @returns {ReferenceBaseNode} */ -export const referenceBuffer = ( name, type, count, object ) => nodeObject( new ReferenceBaseNode( name, type, object, count ) ); +export const referenceBuffer = ( name, type, count, object ) => new ReferenceBaseNode( name, type, object, count ); diff --git a/src/nodes/accessors/ReferenceNode.js b/src/nodes/accessors/ReferenceNode.js index 5607c64e0336ca..4ca30be59ab737 100644 --- a/src/nodes/accessors/ReferenceNode.js +++ b/src/nodes/accessors/ReferenceNode.js @@ -198,7 +198,7 @@ class ReferenceNode extends Node { */ element( indexNode ) { - return nodeObject( new ReferenceElementNode( this, nodeObject( indexNode ) ) ); + return new ReferenceElementNode( this, nodeObject( indexNode ) ); } @@ -407,7 +407,7 @@ export default ReferenceNode; * @param {?Object} [object] - The object the property belongs to. * @returns {ReferenceNode} */ -export const reference = ( name, type, object ) => nodeObject( new ReferenceNode( name, type, object ) ); +export const reference = ( name, type, object ) => new ReferenceNode( name, type, object ); /** * TSL function for creating a reference node. Use this function if you want need a reference @@ -421,4 +421,4 @@ export const reference = ( name, type, object ) => nodeObject( new ReferenceNode * @param {Object} object - An array-like object the property belongs to. * @returns {ReferenceNode} */ -export const referenceBuffer = ( name, type, count, object ) => nodeObject( new ReferenceNode( name, type, object, count ) ); +export const referenceBuffer = ( name, type, count, object ) => new ReferenceNode( name, type, object, count ); diff --git a/src/nodes/accessors/RendererReferenceNode.js b/src/nodes/accessors/RendererReferenceNode.js index e9be0e5151469d..1ee0e2c6e906cc 100644 --- a/src/nodes/accessors/RendererReferenceNode.js +++ b/src/nodes/accessors/RendererReferenceNode.js @@ -76,4 +76,4 @@ export default RendererReferenceNode; * the node refers to the renderer of the current state. * @returns {RendererReferenceNode} */ -export const rendererReference = ( name, type, renderer = null ) => nodeObject( new RendererReferenceNode( name, type, renderer ) ); +export const rendererReference = ( name, type, renderer = null ) => new RendererReferenceNode( name, type, renderer ); diff --git a/src/nodes/accessors/SkinningNode.js b/src/nodes/accessors/SkinningNode.js index 42ff7f54e7a2dd..53d55d8e1253b9 100644 --- a/src/nodes/accessors/SkinningNode.js +++ b/src/nodes/accessors/SkinningNode.js @@ -313,7 +313,7 @@ export default SkinningNode; * @param {SkinnedMesh} skinnedMesh - The skinned mesh. * @returns {SkinningNode} */ -export const skinning = ( skinnedMesh ) => nodeObject( new SkinningNode( skinnedMesh ) ); +export const skinning = ( skinnedMesh ) => new SkinningNode( skinnedMesh ); /** * TSL function for computing skinning. diff --git a/src/nodes/accessors/StorageBufferNode.js b/src/nodes/accessors/StorageBufferNode.js index 6ebad4a219d74d..2226968e9ddf99 100644 --- a/src/nodes/accessors/StorageBufferNode.js +++ b/src/nodes/accessors/StorageBufferNode.js @@ -397,7 +397,7 @@ export default StorageBufferNode; * @param {number} [count=0] - The buffer count. * @returns {StorageBufferNode} */ -export const storage = ( value, type = null, count = 0 ) => nodeObject( new StorageBufferNode( value, type, count ) ); +export const storage = ( value, type = null, count = 0 ) => new StorageBufferNode( value, type, count ); /** * @tsl diff --git a/src/nodes/accessors/UniformArrayNode.js b/src/nodes/accessors/UniformArrayNode.js index 7a72c3a518d340..c21fa795fb812d 100644 --- a/src/nodes/accessors/UniformArrayNode.js +++ b/src/nodes/accessors/UniformArrayNode.js @@ -328,7 +328,7 @@ class UniformArrayNode extends BufferNode { */ element( indexNode ) { - return nodeObject( new UniformArrayElementNode( this, nodeObject( indexNode ) ) ); + return new UniformArrayElementNode( this, nodeObject( indexNode ) ); } @@ -345,4 +345,4 @@ export default UniformArrayNode; * @param {?string} [nodeType] - The data type of the array elements. * @returns {UniformArrayNode} */ -export const uniformArray = ( values, nodeType ) => nodeObject( new UniformArrayNode( values, nodeType ) ); +export const uniformArray = ( values, nodeType ) => new UniformArrayNode( values, nodeType ); diff --git a/src/nodes/accessors/UserDataNode.js b/src/nodes/accessors/UserDataNode.js index fd622ecdcbc883..8315a8af8a342e 100644 --- a/src/nodes/accessors/UserDataNode.js +++ b/src/nodes/accessors/UserDataNode.js @@ -74,4 +74,4 @@ export default UserDataNode; * @param {?Object} userData - A reference to the `userData` object. If not provided, the `userData` property of the 3D object that uses the node material is evaluated. * @returns {UserDataNode} */ -export const userData = ( name, inputType, userData ) => nodeObject( new UserDataNode( name, inputType, userData ) ); +export const userData = ( name, inputType, userData ) => new UserDataNode( name, inputType, userData ); diff --git a/src/nodes/accessors/VertexColorNode.js b/src/nodes/accessors/VertexColorNode.js index 867c4df719b72e..de1106ef4a82c9 100644 --- a/src/nodes/accessors/VertexColorNode.js +++ b/src/nodes/accessors/VertexColorNode.js @@ -107,4 +107,4 @@ export default VertexColorNode; * @param {number} [index=0] - The attribute index. * @returns {VertexColorNode} */ -export const vertexColor = ( index = 0 ) => nodeObject( new VertexColorNode( index ) ); +export const vertexColor = ( index = 0 ) => new VertexColorNode( index ); diff --git a/src/nodes/code/FunctionNode.js b/src/nodes/code/FunctionNode.js index d54602064aae0c..6510ea2618bb00 100644 --- a/src/nodes/code/FunctionNode.js +++ b/src/nodes/code/FunctionNode.js @@ -170,7 +170,7 @@ const nativeFn = ( code, includes = [], language = '' ) => { } - const functionNode = nodeObject( new FunctionNode( code, includes, language ) ); + const functionNode = new FunctionNode( code, includes, language ); const fn = ( ...params ) => functionNode.call( ...params ); fn.functionNode = functionNode; diff --git a/src/nodes/core/AttributeNode.js b/src/nodes/core/AttributeNode.js index de354f05c14636..9389560b64aab9 100644 --- a/src/nodes/core/AttributeNode.js +++ b/src/nodes/core/AttributeNode.js @@ -165,4 +165,4 @@ export default AttributeNode; * @param {?string} [nodeType=null] - The node type. * @returns {AttributeNode} */ -export const attribute = ( name, nodeType = null ) => nodeObject( new AttributeNode( name, nodeType ) ); +export const attribute = ( name, nodeType = null ) => new AttributeNode( name, nodeType ); diff --git a/src/nodes/core/ParameterNode.js b/src/nodes/core/ParameterNode.js index 546faf76a6d852..d6b0452914212c 100644 --- a/src/nodes/core/ParameterNode.js +++ b/src/nodes/core/ParameterNode.js @@ -91,4 +91,4 @@ export default ParameterNode; * @param {?string} name - The name of the parameter in the shader. * @returns {ParameterNode} */ -export const parameter = ( type, name ) => nodeObject( new ParameterNode( type, name ) ); +export const parameter = ( type, name ) => new ParameterNode( type, name ); diff --git a/src/nodes/core/PropertyNode.js b/src/nodes/core/PropertyNode.js index cfc0d09c8db93a..8d5d1fb0519d6a 100644 --- a/src/nodes/core/PropertyNode.js +++ b/src/nodes/core/PropertyNode.js @@ -113,7 +113,7 @@ export default PropertyNode; * @param {?string} [name=null] - The name of the property in the shader. * @returns {PropertyNode} */ -export const property = ( type, name ) => nodeObject( new PropertyNode( type, name ) ); +export const property = ( type, name ) => new PropertyNode( type, name ); /** * TSL function for creating a varying property node. @@ -124,7 +124,7 @@ export const property = ( type, name ) => nodeObject( new PropertyNode( type, na * @param {?string} [name=null] - The name of the varying in the shader. * @returns {PropertyNode} */ -export const varyingProperty = ( type, name ) => nodeObject( new PropertyNode( type, name, true ) ); +export const varyingProperty = ( type, name ) => new PropertyNode( type, name, true ); /** * TSL object that represents the shader variable `DiffuseColor`. diff --git a/src/nodes/core/StructNode.js b/src/nodes/core/StructNode.js index 13411c6c79889f..d4f7de41e6f765 100644 --- a/src/nodes/core/StructNode.js +++ b/src/nodes/core/StructNode.js @@ -108,7 +108,7 @@ export const struct = ( membersLayout, name = null ) => { } - return nodeObject( new StructNode( structLayout, values ) ); + return new StructNode( structLayout, values ); }; diff --git a/src/nodes/core/UniformNode.js b/src/nodes/core/UniformNode.js index 8b070ab837c675..0fa2bd33655e64 100644 --- a/src/nodes/core/UniformNode.js +++ b/src/nodes/core/UniformNode.js @@ -253,6 +253,6 @@ export const uniform = ( value, type ) => { } - return nodeObject( new UniformNode( value, nodeType ) ); + return new UniformNode( value, nodeType ); }; diff --git a/src/nodes/display/PassNode.js b/src/nodes/display/PassNode.js index af65c3eac03ed7..b38088e7473735 100644 --- a/src/nodes/display/PassNode.js +++ b/src/nodes/display/PassNode.js @@ -623,7 +623,7 @@ class PassNode extends TempNode { if ( textureNode === undefined ) { - textureNode = nodeObject( new PassMultipleTextureNode( this, name ) ); + textureNode = new PassMultipleTextureNode( this, name ); textureNode.updateTexture(); this._textureNodes[ name ] = textureNode; @@ -647,7 +647,7 @@ class PassNode extends TempNode { if ( this._textureNodes[ name ] === undefined ) this.getTextureNode( name ); - textureNode = nodeObject( new PassMultipleTextureNode( this, name, true ) ); + textureNode = new PassMultipleTextureNode( this, name, true ); textureNode.updateTexture(); this._previousTextureNodes[ name ] = textureNode; @@ -990,7 +990,7 @@ export default PassNode; * @param {Object} options - Options for the internal render target. * @returns {PassNode} */ -export const pass = ( scene, camera, options ) => nodeObject( new PassNode( PassNode.COLOR, scene, camera, options ) ); +export const pass = ( scene, camera, options ) => new PassNode( PassNode.COLOR, scene, camera, options ); /** * TSL function for creating a pass texture node. @@ -1001,7 +1001,7 @@ export const pass = ( scene, camera, options ) => nodeObject( new PassNode( Pass * @param {Texture} texture - The output texture. * @returns {PassTextureNode} */ -export const passTexture = ( pass, texture ) => nodeObject( new PassTextureNode( pass, texture ) ); +export const passTexture = ( pass, texture ) => new PassTextureNode( pass, texture ); /** * TSL function for creating a depth pass node. @@ -1013,4 +1013,4 @@ export const passTexture = ( pass, texture ) => nodeObject( new PassTextureNode( * @param {Object} options - Options for the internal render target. * @returns {PassNode} */ -export const depthPass = ( scene, camera, options ) => nodeObject( new PassNode( PassNode.DEPTH, scene, camera, options ) ); +export const depthPass = ( scene, camera, options ) => new PassNode( PassNode.DEPTH, scene, camera, options ); diff --git a/src/nodes/gpgpu/ComputeBuiltinNode.js b/src/nodes/gpgpu/ComputeBuiltinNode.js index 733370b8afd97a..93bb16f594d833 100644 --- a/src/nodes/gpgpu/ComputeBuiltinNode.js +++ b/src/nodes/gpgpu/ComputeBuiltinNode.js @@ -149,7 +149,7 @@ export default ComputeBuiltinNode; * @param {string} nodeType - The node type. * @returns {ComputeBuiltinNode} */ -const computeBuiltin = ( name, nodeType ) => nodeObject( new ComputeBuiltinNode( name, nodeType ) ); +const computeBuiltin = ( name, nodeType ) => new ComputeBuiltinNode( name, nodeType ); /** * Represents the number of workgroups dispatched by the compute shader. diff --git a/src/nodes/gpgpu/WorkgroupInfoNode.js b/src/nodes/gpgpu/WorkgroupInfoNode.js index 7b214673f2d4e7..fefbbaa4e11a86 100644 --- a/src/nodes/gpgpu/WorkgroupInfoNode.js +++ b/src/nodes/gpgpu/WorkgroupInfoNode.js @@ -203,7 +203,7 @@ class WorkgroupInfoNode extends Node { */ element( indexNode ) { - return nodeObject( new WorkgroupInfoElementNode( this, indexNode ) ); + return new WorkgroupInfoElementNode( this, indexNode ); } @@ -229,6 +229,6 @@ export default WorkgroupInfoNode; * @param {number} [count=0] - The number of elements in the buffer. * @returns {WorkgroupInfoNode} */ -export const workgroupArray = ( type, count ) => nodeObject( new WorkgroupInfoNode( 'Workgroup', type, count ) ); +export const workgroupArray = ( type, count ) => new WorkgroupInfoNode( 'Workgroup', type, count ); diff --git a/src/nodes/lighting/LightsNode.js b/src/nodes/lighting/LightsNode.js index 4863e82cf91766..1d7f1a8a25fdcc 100644 --- a/src/nodes/lighting/LightsNode.js +++ b/src/nodes/lighting/LightsNode.js @@ -234,7 +234,7 @@ class LightsNode extends Node { if ( ! _lightsNodeRef.has( light ) ) { - lightNode = nodeObject( new lightNodeClass( light ) ); + lightNode = new lightNodeClass( light ); _lightsNodeRef.set( light, lightNode ); } else { @@ -450,4 +450,4 @@ export default LightsNode; * @param {Array} lights - An array of lights. * @return {LightsNode} The created lights node. */ -export const lights = ( lights = [] ) => nodeObject( new LightsNode() ).setLights( lights ); +export const lights = ( lights = [] ) => new LightsNode().setLights( lights ); diff --git a/src/nodes/lighting/PointShadowNode.js b/src/nodes/lighting/PointShadowNode.js index 38d50fd0f2b7c8..4e295ebc4a2613 100644 --- a/src/nodes/lighting/PointShadowNode.js +++ b/src/nodes/lighting/PointShadowNode.js @@ -310,4 +310,4 @@ export default PointShadowNode; * @param {?PointLightShadow} [shadow=null] - An optional point light shadow. * @return {PointShadowNode} The created point shadow node. */ -export const pointShadow = ( light, shadow ) => nodeObject( new PointShadowNode( light, shadow ) ); +export const pointShadow = ( light, shadow ) => new PointShadowNode( light, shadow ); diff --git a/src/nodes/lighting/ShadowNode.js b/src/nodes/lighting/ShadowNode.js index 3ff442311ef53f..b633a7b9443193 100644 --- a/src/nodes/lighting/ShadowNode.js +++ b/src/nodes/lighting/ShadowNode.js @@ -842,4 +842,4 @@ export default ShadowNode; * @param {?LightShadow} [shadow] - The light shadow. * @return {ShadowNode} The created shadow node. */ -export const shadow = ( light, shadow ) => nodeObject( new ShadowNode( light, shadow ) ); +export const shadow = ( light, shadow ) => new ShadowNode( light, shadow ); diff --git a/src/nodes/tsl/TSLCore.js b/src/nodes/tsl/TSLCore.js index 1fa26f38810891..739f5d159ed2c5 100644 --- a/src/nodes/tsl/TSLCore.js +++ b/src/nodes/tsl/TSLCore.js @@ -441,7 +441,7 @@ const ShaderNodeProxy = function ( NodeClass, scope = null, factor = null, setti const ShaderNodeImmutable = function ( NodeClass, ...params ) { - return nodeObject( new NodeClass( ...nodeArray( params ) ) ); + return new NodeClass( ...nodeArray( params ) ); }; @@ -873,7 +873,7 @@ const ConvertType = function ( type, cacheMap = null ) { error( `TSL: Invalid parameter for the type "${ type }".` ); - return nodeObject( new ConstNode( 0, type ) ); + return new ConstNode( 0, type ); } @@ -1171,8 +1171,8 @@ export const mat2 = new ConvertType( 'mat2' ); export const mat3 = new ConvertType( 'mat3' ); export const mat4 = new ConvertType( 'mat4' ); -export const string = ( value = '' ) => nodeObject( new ConstNode( value, 'string' ) ); -export const arrayBuffer = ( value ) => nodeObject( new ConstNode( value, 'ArrayBuffer' ) ); +export const string = ( value = '' ) => new ConstNode( value, 'string' ); +export const arrayBuffer = ( value ) => new ConstNode( value, 'ArrayBuffer' ); addMethodChaining( 'toColor', color ); addMethodChaining( 'toFloat', float ); diff --git a/src/nodes/utils/EventNode.js b/src/nodes/utils/EventNode.js index 80f93581f6a864..253ef3badfa64c 100644 --- a/src/nodes/utils/EventNode.js +++ b/src/nodes/utils/EventNode.js @@ -76,7 +76,7 @@ export default EventNode; * @param {Function} callback - The callback function. * @returns {EventNode} */ -const createEvent = ( type, callback ) => nodeObject( new EventNode( type, callback ) ).toStack(); +const createEvent = ( type, callback ) => new EventNode( type, callback ).toStack(); /** * Creates an event that triggers a function every time an object (Mesh|Sprite) is rendered. diff --git a/src/nodes/utils/ReflectorNode.js b/src/nodes/utils/ReflectorNode.js index ad6a8d654848da..f7635142dbc0f0 100644 --- a/src/nodes/utils/ReflectorNode.js +++ b/src/nodes/utils/ReflectorNode.js @@ -625,6 +625,6 @@ class ReflectorBaseNode extends Node { * @param {ReflectorBaseNode} [parameters.reflector] - The reflector base node. * @returns {ReflectorNode} */ -export const reflector = ( parameters ) => nodeObject( new ReflectorNode( parameters ) ); +export const reflector = ( parameters ) => new ReflectorNode( parameters ); export default ReflectorNode; diff --git a/src/nodes/utils/SampleNode.js b/src/nodes/utils/SampleNode.js index 992f71ba456aa8..2f40ea72f2f039 100644 --- a/src/nodes/utils/SampleNode.js +++ b/src/nodes/utils/SampleNode.js @@ -88,4 +88,4 @@ export default SampleNode; * @param {?Node} [uv=null] - The UV node to be used in the texture sampling. * @returns {SampleNode} The created SampleNode instance wrapped as a node object. */ -export const sample = ( callback, uv = null ) => nodeObject( new SampleNode( callback, nodeObject( uv ) ) ); +export const sample = ( callback, uv = null ) => new SampleNode( callback, nodeObject( uv ) ); From 73c32e37598d7b789027b0f0c59d10d4f2b9fc0d Mon Sep 17 00:00:00 2001 From: sunag Date: Tue, 9 Dec 2025 01:11:18 -0300 Subject: [PATCH 2/4] revision --- src/loaders/nodes/NodeLoader.js | 2 +- src/nodes/accessors/BufferNode.js | 1 - src/nodes/accessors/ClippingNode.js | 2 +- src/nodes/accessors/MaterialReferenceNode.js | 1 - src/nodes/accessors/RendererReferenceNode.js | 1 - src/nodes/accessors/StorageBufferNode.js | 2 +- src/nodes/accessors/UserDataNode.js | 1 - src/nodes/accessors/VertexColorNode.js | 1 - src/nodes/code/FunctionNode.js | 1 - src/nodes/core/AttributeNode.js | 2 +- src/nodes/core/ParameterNode.js | 1 - src/nodes/core/StructNode.js | 1 - src/nodes/core/UniformNode.js | 2 +- src/nodes/display/PassNode.js | 2 +- src/nodes/gpgpu/ComputeBuiltinNode.js | 1 - src/nodes/gpgpu/WorkgroupInfoNode.js | 1 - src/nodes/lighting/PointShadowNode.js | 2 +- src/nodes/lighting/ShadowNode.js | 2 +- src/nodes/utils/EventNode.js | 1 - 19 files changed, 8 insertions(+), 19 deletions(-) diff --git a/src/loaders/nodes/NodeLoader.js b/src/loaders/nodes/NodeLoader.js index 221b58bec9d180..e06393df5c8d32 100644 --- a/src/loaders/nodes/NodeLoader.js +++ b/src/loaders/nodes/NodeLoader.js @@ -1,4 +1,4 @@ -import { nodeObject, float } from '../../nodes/tsl/TSLBase.js'; +import { float } from '../../nodes/tsl/TSLBase.js'; import { Loader } from '../Loader.js'; import { FileLoader } from '../../loaders/FileLoader.js'; diff --git a/src/nodes/accessors/BufferNode.js b/src/nodes/accessors/BufferNode.js index 523fb31c8b5d1a..fcf89459774d72 100644 --- a/src/nodes/accessors/BufferNode.js +++ b/src/nodes/accessors/BufferNode.js @@ -1,5 +1,4 @@ import UniformNode from '../core/UniformNode.js'; -import { nodeObject } from '../tsl/TSLBase.js'; /** * A special type of uniform node which represents array-like data diff --git a/src/nodes/accessors/ClippingNode.js b/src/nodes/accessors/ClippingNode.js index 7b76e819733373..3c14e70508120b 100644 --- a/src/nodes/accessors/ClippingNode.js +++ b/src/nodes/accessors/ClippingNode.js @@ -1,6 +1,6 @@ import Node from '../core/Node.js'; -import { nodeObject, Fn, bool, float } from '../tsl/TSLBase.js'; +import { Fn, bool, float } from '../tsl/TSLBase.js'; import { positionView } from './Position.js'; import { diffuseColor } from '../core/PropertyNode.js'; import { Loop } from '../utils/LoopNode.js'; diff --git a/src/nodes/accessors/MaterialReferenceNode.js b/src/nodes/accessors/MaterialReferenceNode.js index 9bdf49798758f5..3d1e521b988fed 100644 --- a/src/nodes/accessors/MaterialReferenceNode.js +++ b/src/nodes/accessors/MaterialReferenceNode.js @@ -1,5 +1,4 @@ import ReferenceNode from './ReferenceNode.js'; -import { nodeObject } from '../tsl/TSLBase.js'; /** * This node is a special type of reference node which is intended diff --git a/src/nodes/accessors/RendererReferenceNode.js b/src/nodes/accessors/RendererReferenceNode.js index 1ee0e2c6e906cc..7cce3901218a43 100644 --- a/src/nodes/accessors/RendererReferenceNode.js +++ b/src/nodes/accessors/RendererReferenceNode.js @@ -1,5 +1,4 @@ import ReferenceBaseNode from './ReferenceBaseNode.js'; -import { nodeObject } from '../tsl/TSLCore.js'; import { renderGroup } from '../core/UniformGroupNode.js'; /** diff --git a/src/nodes/accessors/StorageBufferNode.js b/src/nodes/accessors/StorageBufferNode.js index 2226968e9ddf99..6c3d9b56e0fe34 100644 --- a/src/nodes/accessors/StorageBufferNode.js +++ b/src/nodes/accessors/StorageBufferNode.js @@ -1,6 +1,6 @@ import BufferNode from './BufferNode.js'; import { bufferAttribute } from './BufferAttributeNode.js'; -import { nodeObject, varying } from '../tsl/TSLBase.js'; +import { varying } from '../tsl/TSLBase.js'; import { storageElement } from '../utils/StorageArrayElementNode.js'; import { NodeAccess } from '../core/constants.js'; import { getTypeFromLength } from '../core/NodeUtils.js'; diff --git a/src/nodes/accessors/UserDataNode.js b/src/nodes/accessors/UserDataNode.js index 8315a8af8a342e..e3668034406348 100644 --- a/src/nodes/accessors/UserDataNode.js +++ b/src/nodes/accessors/UserDataNode.js @@ -1,5 +1,4 @@ import ReferenceNode from './ReferenceNode.js'; -import { nodeObject } from '../tsl/TSLBase.js'; /** * A special type of reference node that allows to link values in diff --git a/src/nodes/accessors/VertexColorNode.js b/src/nodes/accessors/VertexColorNode.js index de1106ef4a82c9..d8af68d34c5479 100644 --- a/src/nodes/accessors/VertexColorNode.js +++ b/src/nodes/accessors/VertexColorNode.js @@ -1,5 +1,4 @@ import AttributeNode from '../core/AttributeNode.js'; -import { nodeObject } from '../tsl/TSLBase.js'; import { Vector4 } from '../../math/Vector4.js'; /** diff --git a/src/nodes/code/FunctionNode.js b/src/nodes/code/FunctionNode.js index 6510ea2618bb00..190e120b0ffc32 100644 --- a/src/nodes/code/FunctionNode.js +++ b/src/nodes/code/FunctionNode.js @@ -1,5 +1,4 @@ import CodeNode from './CodeNode.js'; -import { nodeObject } from '../tsl/TSLBase.js'; /** * This class represents a native shader function. It can be used to implement diff --git a/src/nodes/core/AttributeNode.js b/src/nodes/core/AttributeNode.js index 9389560b64aab9..e1a2f0b600ee2d 100644 --- a/src/nodes/core/AttributeNode.js +++ b/src/nodes/core/AttributeNode.js @@ -1,5 +1,5 @@ import Node from './Node.js'; -import { nodeObject, varying } from '../tsl/TSLBase.js'; +import { varying } from '../tsl/TSLBase.js'; import { warn } from '../../utils.js'; /** diff --git a/src/nodes/core/ParameterNode.js b/src/nodes/core/ParameterNode.js index d6b0452914212c..59ad2396e4ea18 100644 --- a/src/nodes/core/ParameterNode.js +++ b/src/nodes/core/ParameterNode.js @@ -1,4 +1,3 @@ -import { nodeObject } from '../tsl/TSLBase.js'; import { error } from '../../utils.js'; import PropertyNode from './PropertyNode.js'; diff --git a/src/nodes/core/StructNode.js b/src/nodes/core/StructNode.js index d4f7de41e6f765..fa939289f2b0ad 100644 --- a/src/nodes/core/StructNode.js +++ b/src/nodes/core/StructNode.js @@ -1,6 +1,5 @@ import Node from './Node.js'; import StructTypeNode from './StructTypeNode.js'; -import { nodeObject } from '../tsl/TSLCore.js'; /** * StructNode allows to create custom structures with multiple members. diff --git a/src/nodes/core/UniformNode.js b/src/nodes/core/UniformNode.js index 0fa2bd33655e64..8be3fd38be5051 100644 --- a/src/nodes/core/UniformNode.js +++ b/src/nodes/core/UniformNode.js @@ -1,6 +1,6 @@ import InputNode from './InputNode.js'; import { objectGroup } from './UniformGroupNode.js'; -import { nodeObject, getConstNodeType } from '../tsl/TSLCore.js'; +import { getConstNodeType } from '../tsl/TSLCore.js'; import { getValueFromType } from './NodeUtils.js'; import { warn } from '../../utils.js'; diff --git a/src/nodes/display/PassNode.js b/src/nodes/display/PassNode.js index b38088e7473735..c213e605063d9a 100644 --- a/src/nodes/display/PassNode.js +++ b/src/nodes/display/PassNode.js @@ -1,7 +1,7 @@ import TempNode from '../core/TempNode.js'; import { default as TextureNode/*, texture*/ } from '../accessors/TextureNode.js'; import { NodeUpdateType } from '../core/constants.js'; -import { nodeObject, context } from '../tsl/TSLBase.js'; +import { context } from '../tsl/TSLBase.js'; import { uniform } from '../core/UniformNode.js'; import { viewZToOrthographicDepth, perspectiveDepthToViewZ } from './ViewportDepthNode.js'; diff --git a/src/nodes/gpgpu/ComputeBuiltinNode.js b/src/nodes/gpgpu/ComputeBuiltinNode.js index 93bb16f594d833..fed5c7301585c2 100644 --- a/src/nodes/gpgpu/ComputeBuiltinNode.js +++ b/src/nodes/gpgpu/ComputeBuiltinNode.js @@ -1,5 +1,4 @@ import Node from '../core/Node.js'; -import { nodeObject } from '../tsl/TSLBase.js'; import { warn } from '../../utils.js'; /** diff --git a/src/nodes/gpgpu/WorkgroupInfoNode.js b/src/nodes/gpgpu/WorkgroupInfoNode.js index fefbbaa4e11a86..e63d36965e6e47 100644 --- a/src/nodes/gpgpu/WorkgroupInfoNode.js +++ b/src/nodes/gpgpu/WorkgroupInfoNode.js @@ -1,5 +1,4 @@ import ArrayElementNode from '../utils/ArrayElementNode.js'; -import { nodeObject } from '../tsl/TSLCore.js'; import Node from '../core/Node.js'; import { warn } from '../../utils.js'; diff --git a/src/nodes/lighting/PointShadowNode.js b/src/nodes/lighting/PointShadowNode.js index 4e295ebc4a2613..45334a7a93a036 100644 --- a/src/nodes/lighting/PointShadowNode.js +++ b/src/nodes/lighting/PointShadowNode.js @@ -1,6 +1,6 @@ import ShadowNode from './ShadowNode.js'; import { uniform } from '../core/UniformNode.js'; -import { float, vec3, If, Fn, nodeObject } from '../tsl/TSLBase.js'; +import { float, vec3, If, Fn } from '../tsl/TSLBase.js'; import { reference } from '../accessors/ReferenceNode.js'; import { cubeTexture } from '../accessors/CubeTextureNode.js'; import { renderGroup } from '../core/UniformGroupNode.js'; diff --git a/src/nodes/lighting/ShadowNode.js b/src/nodes/lighting/ShadowNode.js index b633a7b9443193..57ced0e75b3fc1 100644 --- a/src/nodes/lighting/ShadowNode.js +++ b/src/nodes/lighting/ShadowNode.js @@ -1,5 +1,5 @@ import ShadowBaseNode, { shadowPositionWorld } from './ShadowBaseNode.js'; -import { float, vec2, vec3, int, Fn, nodeObject } from '../tsl/TSLBase.js'; +import { float, vec2, vec3, int, Fn } from '../tsl/TSLBase.js'; import { reference } from '../accessors/ReferenceNode.js'; import { texture, textureLoad } from '../accessors/TextureNode.js'; import { cubeTexture } from '../accessors/CubeTextureNode.js'; diff --git a/src/nodes/utils/EventNode.js b/src/nodes/utils/EventNode.js index 253ef3badfa64c..4bec13758561a5 100644 --- a/src/nodes/utils/EventNode.js +++ b/src/nodes/utils/EventNode.js @@ -1,6 +1,5 @@ import Node from '../core/Node.js'; import { NodeUpdateType } from '../core/constants.js'; -import { nodeObject } from '../tsl/TSLCore.js'; /** * EventNode is a node that executes a callback during specific update phases. From 96e3352bc571c84a9250a89bffa68db9d8d28390 Mon Sep 17 00:00:00 2001 From: sunag Date: Tue, 9 Dec 2025 01:11:52 -0300 Subject: [PATCH 3/4] Update webgpu_instance_uniform.html --- examples/webgpu_instance_uniform.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/examples/webgpu_instance_uniform.html b/examples/webgpu_instance_uniform.html index bb30f60e1cb3c3..f10021f6dbc020 100644 --- a/examples/webgpu_instance_uniform.html +++ b/examples/webgpu_instance_uniform.html @@ -109,7 +109,7 @@ // Materials - const instanceUniform = nodeObject( new InstanceUniformNode() ); + const instanceUniform = new InstanceUniformNode(); const cubeTextureNode = cubeTexture( cTexture ); const material = new THREE.MeshBasicNodeMaterial(); From ca738026d2359ccc36c680b6b898d907418002a9 Mon Sep 17 00:00:00 2001 From: sunag Date: Tue, 9 Dec 2025 01:22:05 -0300 Subject: [PATCH 4/4] Update PropertyNode.js --- src/nodes/core/PropertyNode.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/nodes/core/PropertyNode.js b/src/nodes/core/PropertyNode.js index 8d5d1fb0519d6a..f42708ab47c332 100644 --- a/src/nodes/core/PropertyNode.js +++ b/src/nodes/core/PropertyNode.js @@ -1,5 +1,5 @@ import Node from './Node.js'; -import { nodeImmutable, nodeObject } from '../tsl/TSLCore.js'; +import { nodeImmutable } from '../tsl/TSLCore.js'; import { hashString } from './NodeUtils.js'; /**