Skip to content

Commit bd60c38

Browse files
authored
TSL changes (#429)
* TSL: Different params order if method chaining is used. * TSL: ScriptableNode * Fixes
1 parent b4d3064 commit bd60c38

File tree

13 files changed

+175
-259
lines changed

13 files changed

+175
-259
lines changed
Lines changed: 130 additions & 226 deletions
Original file line numberDiff line numberDiff line change
@@ -1,245 +1,149 @@
1+
// constants
2+
export * from './core/constants';
3+
14
// core
2-
import ArrayUniformNode from './core/ArrayUniformNode';
3-
import AttributeNode from './core/AttributeNode';
4-
import BypassNode from './core/BypassNode';
5-
import CacheNode from './core/CacheNode';
6-
import CodeNode, { CodeNodeInclude } from './core/CodeNode';
7-
import ConstNode from './core/ConstNode';
8-
import ContextNode from './core/ContextNode';
9-
import ExpressionNode from './core/ExpressionNode';
10-
import FunctionCallNode from './core/FunctionCallNode';
11-
import FunctionNode, { FunctionNodeArguments } from './core/FunctionNode';
12-
import InstanceIndexNode from './core/InstanceIndexNode';
13-
import Node from './core/Node';
14-
import NodeAttribute from './core/NodeAttribute';
15-
import NodeBuilder from './core/NodeBuilder';
16-
import NodeCache from './core/NodeCache';
17-
import NodeCode from './core/NodeCode';
18-
import NodeFrame from './core/NodeFrame';
19-
import NodeFunctionInput from './core/NodeFunctionInput';
20-
import NodeKeywords from './core/NodeKeywords';
21-
import NodeUniform from './core/NodeUniform';
22-
import NodeVar from './core/NodeVar';
23-
import NodeVarying from './core/NodeVarying';
24-
import PropertyNode from './core/PropertyNode';
25-
import StackNode from './core/StackNode';
26-
import TempNode from './core/TempNode';
27-
import UniformNode from './core/UniformNode';
28-
import VarNode from './core/VarNode';
29-
import VaryNode from './core/VaryNode';
5+
export { default as ArrayUniformNode } from './core/ArrayUniformNode';
6+
export { default as AttributeNode } from './core/AttributeNode';
7+
export { default as BypassNode } from './core/BypassNode';
8+
export { default as CacheNode } from './core/CacheNode';
9+
export { default as ConstNode } from './core/ConstNode';
10+
export { default as ContextNode } from './core/ContextNode';
11+
export { default as InstanceIndexNode } from './core/InstanceIndexNode';
12+
export { default as Node } from './core/Node';
13+
export { default as NodeAttribute } from './core/NodeAttribute';
14+
export { default as NodeBuilder } from './core/NodeBuilder';
15+
export { default as NodeCache } from './core/NodeCache';
16+
export { default as NodeCode } from './core/NodeCode';
17+
export { default as NodeFrame } from './core/NodeFrame';
18+
export { default as NodeFunctionInput } from './core/NodeFunctionInput';
19+
export { default as NodeKeywords } from './core/NodeKeywords';
20+
export { default as NodeUniform } from './core/NodeUniform';
21+
export { default as NodeVar } from './core/NodeVar';
22+
export { default as NodeVarying } from './core/NodeVarying';
23+
export { default as PropertyNode } from './core/PropertyNode';
24+
export { default as StackNode } from './core/StackNode';
25+
export { default as TempNode } from './core/TempNode';
26+
export { default as UniformNode } from './core/UniformNode';
27+
export { default as VarNode } from './core/VarNode';
28+
export { default as VaryingNode } from './core/VaryingNode';
3029

31-
// accessors
32-
import BitangentNode, { BitangentNodeScope } from './accessors/BitangentNode';
33-
import BufferNode from './accessors/BufferNode';
34-
import CameraNode, { CameraNodeScope } from './accessors/CameraNode';
35-
import CubeTextureNode from './accessors/CubeTextureNode';
36-
import InstanceNode from './accessors/InstanceNode';
37-
import MaterialNode, { MaterialNodeScope } from './accessors/MaterialNode';
38-
import MaterialReferenceNode from './accessors/MaterialReferenceNode';
39-
import ModelNode from './accessors/ModelNode';
40-
import ModelViewProjectionNode from './accessors/ModelViewProjectionNode';
41-
import NormalNode, { NormalNodeScope } from './accessors/NormalNode';
42-
import Object3DNode, { Object3DNodeScope } from './accessors/Object3DNode';
43-
import PointUVNode from './accessors/PointUVNode';
44-
import PositionNode, { PositionNodeScope } from './accessors/PositionNode';
45-
import ReferenceNode from './accessors/ReferenceNode';
46-
import ReflectVectorNode from './accessors/ReflectVectorNode';
47-
import SkinningNode from './accessors/SkinningNode';
48-
import TangentNode, { TangentNodeScope } from './accessors/TangentNode';
49-
import TextureNode from './accessors/TextureNode';
50-
import UVNode from './accessors/UVNode';
51-
import UserDataNode from './accessors/UserDataNode';
30+
export * as NodeUtils from './core/NodeUtils.js';
5231

53-
// geometry
54-
import RangeNode, { RangeModeBound } from './geometry/RangeNode';
32+
// math
33+
export {
34+
default as MathNode,
35+
MathNodeMethod1,
36+
MathNodeMethod2,
37+
MathNodeMethod3,
38+
MathNodeMethod,
39+
} from './math/MathNode';
40+
export { default as OperatorNode, OperatorNodeOp } from './math/OperatorNode';
41+
export { default as CondNode } from './math/CondNode';
5542

56-
// gpgpu
57-
import ComputeNode from './gpgpu/ComputeNode';
43+
// utils
44+
export { default as ArrayElementNode } from './utils/ArrayElementNode';
45+
export { default as ConvertNode } from './utils/ConvertNode';
46+
export { default as EquirectUVNode } from './utils/EquirectUVNode';
47+
export { default as JoinNode } from './utils/JoinNode';
48+
export { default as MatcapUVNode } from './utils/MatcapUVNode';
49+
export { default as MaxMipLevelNode } from './utils/MaxMipLevelNode';
50+
export { default as OscNode, OscNodeMethod } from './utils/OscNode';
51+
export { default as RemapNode } from './utils/RemapNode';
52+
export { default as RotateUVNode } from './utils/RotateUVNode';
53+
export { default as SpecularMIPLevelNode } from './utils/SpecularMIPLevelNode';
54+
export { default as SplitNode } from './utils/SplitNode';
55+
export { default as SpriteSheetUVNode } from './utils/SpriteSheetUVNode';
56+
export { default as TimerNode, TimerNodeScope } from './utils/TimerNode';
57+
export { default as TriplanarTexturesNode } from './utils/TriplanarTexturesNode';
58+
59+
// shader node
60+
export * from './shadernode/ShaderNodeElements';
61+
62+
// accessors
63+
export { default as BitangentNode, BitangentNodeScope } from './accessors/BitangentNode';
64+
export { default as BufferNode } from './accessors/BufferNode';
65+
export { default as CameraNode, CameraNodeScope } from './accessors/CameraNode';
66+
export { default as CubeTextureNode } from './accessors/CubeTextureNode';
67+
export { default as InstanceNode } from './accessors/InstanceNode';
68+
export { default as MaterialNode, MaterialNodeScope } from './accessors/MaterialNode';
69+
export { default as MaterialReferenceNode } from './accessors/MaterialReferenceNode';
70+
export { default as ModelNode } from './accessors/ModelNode';
71+
export { default as ModelViewProjectionNode } from './accessors/ModelViewProjectionNode';
72+
export { default as NormalNode, NormalNodeScope } from './accessors/NormalNode';
73+
export { default as Object3DNode, Object3DNodeScope as OObject3DNodeScope } from './accessors/Object3DNode';
74+
export { default as PointUVNode } from './accessors/PointUVNode';
75+
export { default as PositionNode, PositionNodeScope } from './accessors/PositionNode';
76+
export { default as ReferenceNode } from './accessors/ReferenceNode';
77+
export { default as ReflectVectorNode } from './accessors/ReflectVectorNode';
78+
export { default as SkinningNode } from './accessors/SkinningNode';
79+
export { default as TangentNode, TangentNodeScope } from './accessors/TangentNode';
80+
export { default as TextureNode } from './accessors/TextureNode';
81+
export { default as UVNode } from './accessors/UVNode';
82+
export { default as UserDataNode } from './accessors/UserDataNode';
5883

5984
// display
60-
import BlendModeNode, { BlendMode } from './display/BlendModeNode';
61-
import ColorAdjustmentNode, { ColorAdjustmentMethod } from './display/ColorAdjustmentNode';
62-
import ColorSpaceNode, { ColorSpaceNodeMethod } from './display/ColorSpaceNode';
63-
import FrontFacingNode from './display/FrontFacingNode';
64-
import NormalMapNode from './display/NormalMapNode';
65-
import PosterizeNode from './display/PosterizeNode';
66-
import ToneMappingNode from './display/ToneMappingNode';
67-
import ViewportNode from './display/ViewportNode';
85+
export { default as BlendModeNode, BlendMode } from './display/BlendModeNode';
86+
export { default as ColorAdjustmentNode, ColorAdjustmentMethod } from './display/ColorAdjustmentNode';
87+
export { default as ColorSpaceNode, ColorSpaceNodeMethod } from './display/ColorSpaceNode';
88+
export { default as FrontFacingNode } from './display/FrontFacingNode';
89+
export { default as NormalMapNode } from './display/NormalMapNode';
90+
export { default as PosterizeNode } from './display/PosterizeNode';
91+
export { default as ToneMappingNode } from './display/ToneMappingNode';
92+
export { default as ViewportNode } from './display/ViewportNode';
6893

69-
// math
70-
import MathNode, { MathNodeMethod1, MathNodeMethod2, MathNodeMethod3, MathNodeMethod } from './math/MathNode';
71-
import OperatorNode, { OperatorNodeOp } from './math/OperatorNode';
72-
import CondNode from './math/CondNode';
94+
// code
95+
export { default as ExpressionNode } from './code/ExpressionNode';
96+
export { default as CodeNode, CodeNodeInclude } from './code/CodeNode';
97+
export { default as FunctionCallNode } from './code/FunctionCallNode';
98+
export { default as FunctionNode, FunctionNodeArguments } from './code/FunctionNode';
7399

74-
// lighting
75-
import PunctualLightNode from './lighting/PunctualLightNode';
76-
import LightsNode from './lighting/LightsNode';
77-
import LightingNode from './lighting/LightingNode';
78-
import LightingContextNode, { LightingModelNode } from './lighting/LightingContextNode';
79-
import HemisphereLightNode from './lighting/HemisphereLightNode';
80-
import EnvironmentNode from './lighting/EnvironmentNode';
81-
import AONode from './lighting/AONode';
82-
import AnalyticLightNode from './lighting/AnalyticLightNode';
100+
// fog
101+
export { default as FogNode } from './fog/FogNode';
102+
export { default as FogRangeNode } from './fog/FogRangeNode';
103+
export { default as FogExp2Node } from './fog/FogExp2Node';
83104

84-
// utils
105+
// geometry
106+
export { default as RangeNode, RangeModeBound } from './geometry/RangeNode';
85107

86-
import ArrayElementNode from './utils/ArrayElementNode';
87-
import ConvertNode from './utils/ConvertNode';
88-
import EquirectUVNode from './utils/EquirectUVNode';
89-
import JoinNode from './utils/JoinNode';
90-
import MatcapUVNode from './utils/MatcapUVNode';
91-
import MaxMipLevelNode from './utils/MaxMipLevelNode';
92-
import OscNode, { OscNodeMethod } from './utils/OscNode';
93-
import RemapNode from './utils/RemapNode';
94-
import RotateUVNode from './utils/RotateUVNode';
95-
import SpecularMIPLevelNode from './utils/SpecularMIPLevelNode';
96-
import SplitNode from './utils/SplitNode';
97-
import SpriteSheetUVNode from './utils/SpriteSheetUVNode';
98-
import TimerNode, { TimerNodeScope } from './utils/TimerNode';
99-
import TriplanarTexturesNode from './utils/TriplanarTexturesNode';
108+
// gpgpu
109+
export { default as ComputeNode } from './gpgpu/ComputeNode';
100110

101-
// loaders
102-
import NodeLoader from './loaders/NodeLoader';
103-
import NodeObjectLoader from './loaders/NodeObjectLoader';
104-
import NodeMaterialLoader from './loaders/NodeMaterialLoader';
111+
// lighting
112+
export { default as PointLightNode } from './lighting/PointLightNode';
113+
export { default as SpotLightNode } from './lighting/SpotLightNode';
114+
export { default as LightsNode } from './lighting/LightsNode';
115+
export { default as LightingNode } from './lighting/LightingNode';
116+
export { default as LightingContextNode, LightingModelNode } from './lighting/LightingContextNode';
117+
export { default as HemisphereLightNode } from './lighting/HemisphereLightNode';
118+
export { default as EnvironmentNode } from './lighting/EnvironmentNode';
119+
export { default as AONode } from './lighting/AONode';
120+
export { default as AnalyticLightNode } from './lighting/AnalyticLightNode';
105121

106122
// procedural
107-
import CheckerNode from './procedural/CheckerNode';
108-
// fog
109-
import FogNode from './fog/FogNode';
110-
import FogRangeNode from './fog/FogRangeNode';
111-
import FogExp2Node from './fog/FogExp2Node';
123+
export { default as CheckerNode } from './procedural/CheckerNode';
112124

113-
// core
114-
export * from './core/constants';
125+
// loaders
126+
export { default as NodeLoader } from './loaders/NodeLoader';
127+
export { default as NodeObjectLoader } from './loaders/NodeObjectLoader';
128+
export { default as NodeMaterialLoader } from './loaders/NodeMaterialLoader';
115129

116130
// materials
117131
export * from './materials/Materials';
118132

119-
// shader node
120-
export * from './shadernode/ShaderNodeElements';
133+
// materialX
134+
export * from './materialx/MaterialXNodes';
121135

122-
export {
123-
// core
124-
ArrayUniformNode,
125-
AttributeNode,
126-
BypassNode,
127-
CacheNode,
128-
CodeNode,
129-
CodeNodeInclude,
130-
ContextNode,
131-
ConstNode,
132-
ExpressionNode,
133-
FunctionCallNode,
134-
FunctionNode,
135-
FunctionNodeArguments,
136-
InstanceIndexNode,
137-
Node,
138-
NodeAttribute,
139-
NodeBuilder,
140-
NodeCache,
141-
NodeCode,
142-
NodeFrame,
143-
NodeFunctionInput,
144-
NodeKeywords,
145-
NodeUniform,
146-
NodeVar,
147-
NodeVarying,
148-
PropertyNode,
149-
StackNode,
150-
TempNode,
151-
UniformNode,
152-
VarNode,
153-
VaryNode,
154-
// geometry
155-
RangeNode,
156-
RangeModeBound,
157-
// gpgpu
158-
ComputeNode,
159-
// accessors
160-
BitangentNode,
161-
BitangentNodeScope,
162-
BufferNode,
163-
CameraNode,
164-
CameraNodeScope,
165-
CubeTextureNode,
166-
InstanceNode,
167-
MaterialNode,
168-
MaterialNodeScope,
169-
MaterialReferenceNode,
170-
ModelNode,
171-
ModelViewProjectionNode,
172-
NormalNode,
173-
NormalNodeScope,
174-
Object3DNode,
175-
Object3DNodeScope as OObject3DNodeScope,
176-
PointUVNode,
177-
PositionNode,
178-
PositionNodeScope,
179-
ReferenceNode,
180-
ReflectVectorNode,
181-
SkinningNode,
182-
TangentNode,
183-
TangentNodeScope,
184-
TextureNode,
185-
UVNode,
186-
UserDataNode,
187-
// display
188-
BlendModeNode,
189-
BlendMode,
190-
ColorAdjustmentNode,
191-
ColorAdjustmentMethod,
192-
ColorSpaceNode,
193-
ColorSpaceNodeMethod,
194-
FrontFacingNode,
195-
NormalMapNode,
196-
PosterizeNode,
197-
ToneMappingNode,
198-
ViewportNode,
199-
// math
200-
MathNode,
201-
MathNodeMethod1,
202-
MathNodeMethod2,
203-
MathNodeMethod3,
204-
MathNodeMethod,
205-
OperatorNode,
206-
OperatorNodeOp,
207-
CondNode,
208-
// lighting
209-
PunctualLightNode,
210-
LightsNode,
211-
LightingNode,
212-
LightingContextNode,
213-
LightingModelNode,
214-
HemisphereLightNode,
215-
EnvironmentNode,
216-
AONode,
217-
AnalyticLightNode,
218-
// utils
219-
ArrayElementNode,
220-
ConvertNode,
221-
EquirectUVNode,
222-
JoinNode,
223-
MatcapUVNode,
224-
MaxMipLevelNode,
225-
OscNode,
226-
OscNodeMethod,
227-
RemapNode,
228-
RotateUVNode,
229-
SpecularMIPLevelNode,
230-
SplitNode,
231-
SpriteSheetUVNode,
232-
TimerNode,
233-
TimerNodeScope,
234-
TriplanarTexturesNode,
235-
// procedural
236-
CheckerNode,
237-
// fog
238-
FogNode,
239-
FogRangeNode,
240-
FogExp2Node,
241-
// loaders
242-
NodeLoader,
243-
NodeObjectLoader,
244-
NodeMaterialLoader,
245-
};
136+
// functions
137+
export { default as BRDF_GGX } from './functions/BSDF/BRDF_GGX';
138+
export { default as BRDF_Lambert } from './functions/BSDF/BRDF_Lambert';
139+
export { default as D_GGX } from './functions/BSDF/D_GGX';
140+
export { default as DFGApprox } from './functions/BSDF/DFGApprox';
141+
export { default as F_Schlick } from './functions/BSDF/F_Schlick';
142+
export { default as V_GGX_SmithCorrelated } from './functions/BSDF/V_GGX_SmithCorrelated';
143+
144+
export { default as getDistanceAttenuation } from './functions/light/getDistanceAttenuation';
145+
146+
export { default as getGeometryRoughness } from './functions/material/getGeometryRoughness';
147+
export { default as getRoughness } from './functions/material/getRoughness';
148+
149+
export { default as physicalLightingModel } from './functions/PhysicalLightingModel';

types/three/examples/jsm/nodes/core/CodeNode.d.ts renamed to types/three/examples/jsm/nodes/code/CodeNode.d.ts

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
1-
import { NodeTypeOption } from './constants';
2-
import Node from './Node';
3-
import NodeBuilder from './NodeBuilder';
1+
import Node from '../core/Node';
2+
import NodeBuilder from '../core/NodeBuilder';
43

54
export interface CodeNodeInclude {
65
build(builder: NodeBuilder): void;

types/three/examples/jsm/nodes/core/ExpressionNode.d.ts renamed to types/three/examples/jsm/nodes/code/ExpressionNode.d.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
1-
import { NodeTypeOption } from './constants';
2-
import TempNode from './TempNode';
1+
import { NodeTypeOption } from '../core/constants';
2+
import TempNode from '../core/TempNode';
33

44
export default class ExpressionNode extends TempNode {
55
snipped: string; /* sic */

0 commit comments

Comments
 (0)