@types/three 0.164.1 → 0.166.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (181) hide show
  1. three/README.md +1 -1
  2. three/examples/jsm/controls/TransformControls.d.ts +8 -6
  3. three/examples/jsm/exporters/GLTFExporter.d.ts +6 -0
  4. three/examples/jsm/exporters/USDZExporter.d.ts +4 -2
  5. three/examples/jsm/geometries/TeapotGeometry.d.ts +24 -0
  6. three/examples/jsm/helpers/ViewHelper.d.ts +8 -6
  7. three/examples/jsm/lines/LineMaterial.d.ts +2 -4
  8. three/examples/jsm/loaders/DDSLoader.d.ts +8 -2
  9. three/examples/jsm/loaders/FontLoader.d.ts +1 -1
  10. three/examples/jsm/loaders/GLTFLoader.d.ts +12 -7
  11. three/examples/jsm/loaders/KTXLoader.d.ts +8 -2
  12. three/examples/jsm/loaders/LDrawLoader.d.ts +1 -1
  13. three/examples/jsm/loaders/PVRLoader.d.ts +2 -2
  14. three/examples/jsm/modifiers/EdgeSplitModifier.d.ts +17 -10
  15. three/examples/jsm/nodes/Nodes.d.ts +21 -57
  16. three/examples/jsm/nodes/accessors/BitangentNode.d.ts +4 -22
  17. three/examples/jsm/nodes/accessors/BufferAttributeNode.d.ts +50 -0
  18. three/examples/jsm/nodes/accessors/BufferNode.d.ts +3 -4
  19. three/examples/jsm/nodes/accessors/CameraNode.d.ts +11 -20
  20. three/examples/jsm/nodes/accessors/CubeTextureNode.d.ts +1 -1
  21. three/examples/jsm/nodes/accessors/MaterialNode.d.ts +4 -1
  22. three/examples/jsm/nodes/accessors/ModelNode.d.ts +3 -0
  23. three/examples/jsm/nodes/accessors/ModelViewProjectionNode.d.ts +1 -2
  24. three/examples/jsm/nodes/accessors/NormalNode.d.ts +9 -17
  25. three/examples/jsm/nodes/accessors/PositionNode.d.ts +6 -26
  26. three/examples/jsm/nodes/accessors/ReferenceNode.d.ts +3 -4
  27. three/examples/jsm/nodes/accessors/ReflectVectorNode.d.ts +3 -8
  28. three/examples/jsm/nodes/accessors/RendererReferenceNode.d.ts +2 -3
  29. three/examples/jsm/nodes/accessors/StorageBufferNode.d.ts +16 -4
  30. three/examples/jsm/nodes/accessors/StorageTextureNode.d.ts +40 -0
  31. three/examples/jsm/nodes/accessors/TangentNode.d.ts +8 -23
  32. three/examples/jsm/nodes/accessors/Texture3DNode.d.ts +16 -0
  33. three/examples/jsm/nodes/accessors/TextureNode.d.ts +1 -1
  34. three/examples/jsm/nodes/accessors/UVNode.d.ts +1 -8
  35. three/examples/jsm/nodes/accessors/UniformsNode.d.ts +0 -2
  36. three/examples/jsm/nodes/accessors/UserDataNode.d.ts +4 -3
  37. three/examples/jsm/nodes/code/CodeNode.d.ts +0 -1
  38. three/examples/jsm/nodes/code/ExpressionNode.d.ts +2 -3
  39. three/examples/jsm/nodes/core/AttributeNode.d.ts +11 -4
  40. three/examples/jsm/nodes/core/CacheNode.d.ts +4 -5
  41. three/examples/jsm/nodes/core/ConstNode.d.ts +1 -2
  42. three/examples/jsm/nodes/core/InputNode.d.ts +1 -2
  43. three/examples/jsm/nodes/core/LightingModel.d.ts +11 -0
  44. three/examples/jsm/nodes/core/Node.d.ts +102 -42
  45. three/examples/jsm/nodes/core/NodeAttribute.d.ts +7 -4
  46. three/examples/jsm/nodes/core/NodeBuilder.d.ts +30 -26
  47. three/examples/jsm/nodes/core/NodeCache.d.ts +48 -6
  48. three/examples/jsm/nodes/core/NodeFunction.d.ts +2 -2
  49. three/examples/jsm/nodes/core/NodeKeywords.d.ts +10 -7
  50. three/examples/jsm/nodes/core/NodeParser.d.ts +4 -4
  51. three/examples/jsm/nodes/core/NodeUniform.d.ts +8 -11
  52. three/examples/jsm/nodes/core/NodeVar.d.ts +5 -4
  53. three/examples/jsm/nodes/core/NodeVarying.d.ts +5 -6
  54. three/examples/jsm/nodes/core/PropertyNode.d.ts +4 -4
  55. three/examples/jsm/nodes/core/StackNode.d.ts +7 -1
  56. three/examples/jsm/nodes/core/StructTypeNode.d.ts +8 -0
  57. three/examples/jsm/nodes/core/TempNode.d.ts +1 -2
  58. three/examples/jsm/nodes/core/UniformGroup.d.ts +7 -0
  59. three/examples/jsm/nodes/core/UniformGroupNode.d.ts +21 -0
  60. three/examples/jsm/nodes/core/UniformNode.d.ts +16 -11
  61. three/examples/jsm/nodes/core/VarNode.d.ts +2 -0
  62. three/examples/jsm/nodes/core/VaryingNode.d.ts +4 -0
  63. three/examples/jsm/nodes/core/constants.d.ts +27 -79
  64. three/examples/jsm/nodes/display/DepthOfFieldNode.d.ts +30 -0
  65. three/examples/jsm/nodes/display/DotScreenNode.d.ts +32 -0
  66. three/examples/jsm/nodes/display/PassNode.d.ts +1 -1
  67. three/examples/jsm/nodes/display/RGBShiftNode.d.ts +24 -0
  68. three/examples/jsm/nodes/display/SobelOperatorNode.d.ts +17 -0
  69. three/examples/jsm/nodes/display/ViewportDepthNode.d.ts +4 -6
  70. three/examples/jsm/nodes/functions/BSDF/LTC.d.ts +9 -0
  71. three/examples/jsm/nodes/functions/PhysicalLightingModel.d.ts +2 -0
  72. three/examples/jsm/nodes/functions/ToonLightingModel.d.ts +4 -0
  73. three/examples/jsm/nodes/lighting/RectAreaLightNode.d.ts +10 -0
  74. three/examples/jsm/nodes/loaders/NodeLoader.d.ts +3 -3
  75. three/examples/jsm/nodes/loaders/NodeObjectLoader.d.ts +2 -3
  76. three/examples/jsm/nodes/materials/LineBasicNodeMaterial.d.ts +2 -0
  77. three/examples/jsm/nodes/materials/Materials.d.ts +3 -0
  78. three/examples/jsm/nodes/materials/MeshBasicNodeMaterial.d.ts +5 -1
  79. three/examples/jsm/nodes/materials/MeshMatcapNodeMaterial.d.ts +28 -0
  80. three/examples/jsm/nodes/materials/MeshNormalNodeMaterial.d.ts +2 -0
  81. three/examples/jsm/nodes/materials/MeshPhongNodeMaterial.d.ts +7 -4
  82. three/examples/jsm/nodes/materials/MeshPhysicalNodeMaterial.d.ts +24 -17
  83. three/examples/jsm/nodes/materials/MeshSSSNodeMaterial.d.ts +6 -7
  84. three/examples/jsm/nodes/materials/MeshStandardNodeMaterial.d.ts +8 -5
  85. three/examples/jsm/nodes/materials/MeshToonNodeMaterial.d.ts +38 -0
  86. three/examples/jsm/nodes/materials/NodeMaterial.d.ts +41 -37
  87. three/examples/jsm/nodes/materials/PointsNodeMaterial.d.ts +1 -0
  88. three/examples/jsm/nodes/materials/ShadowNodeMaterial.d.ts +1 -0
  89. three/examples/jsm/nodes/materials/SpriteNodeMaterial.d.ts +3 -3
  90. three/examples/jsm/nodes/materials/VolumeNodeMaterial.d.ts +10 -0
  91. three/examples/jsm/nodes/materialx/lib/mx_hsv.d.ts +1 -0
  92. three/examples/jsm/nodes/materialx/lib/mx_noise.d.ts +230 -0
  93. three/examples/jsm/nodes/math/MathNode.d.ts +5 -1
  94. three/examples/jsm/nodes/shadernode/ShaderNode.d.ts +58 -36
  95. three/examples/jsm/nodes/utils/ConvertNode.d.ts +2 -3
  96. three/examples/jsm/nodes/utils/DiscardNode.d.ts +1 -0
  97. three/examples/jsm/nodes/utils/EquirectUVNode.d.ts +2 -2
  98. three/examples/jsm/nodes/utils/SplitNode.d.ts +1 -1
  99. three/examples/jsm/nodes/utils/TriplanarTexturesNode.d.ts +4 -5
  100. three/examples/jsm/objects/Sky.d.ts +18 -0
  101. three/examples/jsm/renderers/common/Animation.d.ts +14 -0
  102. three/examples/jsm/renderers/common/Attributes.d.ts +20 -0
  103. three/examples/jsm/renderers/common/Background.d.ts +22 -0
  104. three/examples/jsm/renderers/common/BindGroup.d.ts +9 -0
  105. three/examples/jsm/renderers/common/Binding.d.ts +8 -0
  106. three/examples/jsm/renderers/common/Bindings.d.ts +42 -0
  107. three/examples/jsm/renderers/common/Buffer.d.ts +11 -0
  108. three/examples/jsm/renderers/common/BufferUtils.d.ts +4 -0
  109. three/examples/jsm/renderers/common/ChainMap.d.ts +9 -0
  110. three/examples/jsm/renderers/common/ClippingContext.d.ts +18 -0
  111. three/examples/jsm/renderers/common/Color4.d.ts +6 -5
  112. three/examples/jsm/renderers/common/ComputePipeline.d.ts +8 -0
  113. three/examples/jsm/renderers/common/Constants.d.ts +9 -0
  114. three/examples/jsm/renderers/common/CubeRenderTarget.d.ts +7 -0
  115. three/examples/jsm/renderers/common/DataMap.d.ts +20 -0
  116. three/examples/jsm/renderers/common/Geometries.d.ts +28 -0
  117. three/examples/jsm/renderers/common/Info.d.ts +25 -13
  118. three/examples/jsm/renderers/common/Pipeline.d.ts +6 -0
  119. three/examples/jsm/renderers/common/Pipelines.d.ts +68 -0
  120. three/examples/jsm/renderers/common/PostProcessing.d.ts +2 -0
  121. three/examples/jsm/renderers/common/ProgrammableStage.d.ts +15 -0
  122. three/examples/jsm/renderers/common/RenderBundle.d.ts +8 -0
  123. three/examples/jsm/renderers/common/RenderBundles.d.ts +10 -0
  124. three/examples/jsm/renderers/common/RenderContext.d.ts +38 -0
  125. three/examples/jsm/renderers/common/RenderContexts.d.ts +13 -0
  126. three/examples/jsm/renderers/common/RenderList.d.ts +62 -0
  127. three/examples/jsm/renderers/common/RenderLists.d.ts +10 -0
  128. three/examples/jsm/renderers/common/RenderObject.d.ts +73 -0
  129. three/examples/jsm/renderers/common/RenderObjects.d.ts +59 -0
  130. three/examples/jsm/renderers/common/RenderPipeline.d.ts +8 -0
  131. three/examples/jsm/renderers/common/Renderer.d.ts +186 -208
  132. three/examples/jsm/renderers/common/SampledTexture.d.ts +27 -0
  133. three/examples/jsm/renderers/common/Sampler.d.ts +11 -0
  134. three/examples/jsm/renderers/common/StorageBufferAttribute.d.ts +7 -0
  135. three/examples/jsm/renderers/common/StorageInstancedBufferAttribute.d.ts +7 -0
  136. three/examples/jsm/renderers/common/Textures.d.ts +64 -0
  137. three/examples/jsm/renderers/common/Uniform.d.ts +40 -0
  138. three/examples/jsm/renderers/common/UniformBuffer.d.ts +6 -0
  139. three/examples/jsm/renderers/common/UniformsGroup.d.ts +32 -0
  140. three/examples/jsm/renderers/common/nodes/NodeBuilderState.d.ts +30 -0
  141. three/examples/jsm/renderers/common/nodes/NodeSampledTexture.d.ts +29 -0
  142. three/examples/jsm/renderers/common/nodes/NodeSampler.d.ts +12 -0
  143. three/examples/jsm/renderers/common/nodes/NodeUniform.d.ts +63 -0
  144. three/examples/jsm/renderers/common/nodes/NodeUniformsGroup.d.ts +11 -0
  145. three/examples/jsm/renderers/common/nodes/Nodes.d.ts +95 -0
  146. three/examples/jsm/renderers/webgpu/nodes/WGSLNodeBuilder.d.ts +123 -0
  147. three/examples/jsm/renderers/webgpu/nodes/WGSLNodeFunction.d.ts +6 -0
  148. three/examples/jsm/renderers/webgpu/nodes/WGSLNodeParser.d.ts +6 -0
  149. three/examples/jsm/renderers/webgpu/utils/WebGPUConstants.d.ts +328 -0
  150. three/examples/jsm/utils/SceneUtils.d.ts +9 -3
  151. three/package.json +4 -4
  152. three/src/Three.d.ts +1 -0
  153. three/src/animation/tracks/StringKeyframeTrack.d.ts +1 -2
  154. three/src/constants.d.ts +6 -0
  155. three/src/core/BufferGeometry.d.ts +19 -17
  156. three/src/core/InterleavedBuffer.d.ts +2 -0
  157. three/src/extras/ShapeUtils.d.ts +5 -8
  158. three/src/extras/TextureUtils.d.ts +42 -0
  159. three/src/lights/LightShadow.d.ts +5 -0
  160. three/src/loaders/LoaderUtils.d.ts +9 -6
  161. three/src/materials/Material.d.ts +21 -12
  162. three/src/math/Color.d.ts +1 -1
  163. three/src/math/Matrix3.d.ts +2 -0
  164. three/src/math/Matrix4.d.ts +2 -0
  165. three/src/math/Vector4.d.ts +6 -0
  166. three/src/objects/BatchedMesh.d.ts +66 -47
  167. three/src/objects/InstancedMesh.d.ts +3 -3
  168. three/src/renderers/WebGLRenderer.d.ts +41 -19
  169. three/src/renderers/shaders/UniformsLib.d.ts +3 -0
  170. three/src/renderers/webgl/WebGLPrograms.d.ts +1 -1
  171. three/src/renderers/webxr/WebXRDepthSensing.d.ts +3 -1
  172. three/src/renderers/webxr/WebXRManager.d.ts +33 -23
  173. three/src/textures/CompressedArrayTexture.d.ts +36 -19
  174. three/src/textures/CompressedTexture.d.ts +16 -8
  175. three/src/textures/DataArrayTexture.d.ts +37 -20
  176. three/src/textures/FramebufferTexture.d.ts +1 -1
  177. three/src/textures/Texture.d.ts +3 -1
  178. three/src/utils.d.ts +2 -0
  179. three/examples/jsm/renderers/webgl/nodes/SlotNode.d.ts +0 -17
  180. three/examples/jsm/renderers/webgl/nodes/WebGLNodeBuilder.d.ts +0 -37
  181. three/examples/jsm/renderers/webgl/nodes/WebGLNodes.d.ts +0 -3
@@ -1,7 +1,7 @@
1
- import { BufferGeometry, Material, Object3D, Renderer } from "three";
1
+ import { BufferGeometry, Material, Object3D, Renderer, Texture } from "three";
2
2
  import FogNode from "../fog/FogNode.js";
3
3
  import LightsNode from "../lighting/LightsNode.js";
4
- import { AnyObject, NodeShaderStage, NodeTypeOption } from "./constants.js";
4
+ import { NodeShaderStage } from "./constants.js";
5
5
  import Node from "./Node.js";
6
6
  import NodeAttribute from "./NodeAttribute.js";
7
7
  import NodeCache from "./NodeCache.js";
@@ -18,12 +18,12 @@ export interface FlowData {
18
18
  }
19
19
 
20
20
  export interface NodeData {
21
- vertex: AnyObject;
22
- fragment: AnyObject;
23
- compute: AnyObject;
21
+ vertex: { [key: string]: unknown };
22
+ fragment: { [key: string]: unknown };
23
+ compute: { [key: string]: unknown };
24
24
  }
25
25
 
26
- export type NodeBuilderContext = AnyObject;
26
+ export type NodeBuilderContext = { [key: string]: unknown };
27
27
 
28
28
  export default abstract class NodeBuilder {
29
29
  object: Object3D;
@@ -58,6 +58,7 @@ export default abstract class NodeBuilder {
58
58
  setHashNode(node: Node, hash: string): void;
59
59
  addNode(node: Node): void;
60
60
  get currentNode(): Node;
61
+ isFilteredTexture(texture: Texture): boolean;
61
62
  getMethod(method: string): string;
62
63
  getNodeFromHash(hash: string): Node;
63
64
 
@@ -65,6 +66,9 @@ export default abstract class NodeBuilder {
65
66
 
66
67
  setContext(context: NodeBuilderContext): void;
67
68
  getContext(): NodeBuilderContext;
69
+ setCache(cache: NodeCache): void;
70
+ getCache(): NodeCache;
71
+ getCacheFromNode(node: Node, parent?: boolean): NodeCache;
68
72
  isAvailable(name: string): boolean;
69
73
 
70
74
  abstract getInstanceIndex(): string;
@@ -76,35 +80,35 @@ export default abstract class NodeBuilder {
76
80
  isFlipY(): boolean;
77
81
 
78
82
  // @TODO: rename to .generateConst()
79
- getConst(type: NodeTypeOption, value?: unknown): Node;
80
- getType(type: NodeTypeOption): NodeTypeOption;
83
+ getConst(type: string, value?: unknown): Node;
84
+ getType(type: string): string;
81
85
 
82
86
  generateMethod(method: string): string;
83
87
 
84
- getAttribute(name: string, type: NodeTypeOption): NodeAttribute;
88
+ getAttribute(name: string, type: string): NodeAttribute;
85
89
 
86
- getPropertyName(node: Node, shaderStage: NodeShaderStage): string;
87
- isVector(type: NodeTypeOption): boolean;
90
+ getPropertyName<TValue>(node: NodeVar | NodeUniform<TValue>, shaderStage: NodeShaderStage): string;
91
+ isVector(type: string): boolean;
88
92
 
89
- isMatrix(type: NodeTypeOption): boolean;
90
- isReference(type: NodeTypeOption): boolean;
91
- isShaderStage(shaderStage: NodeShaderStage): boolean;
92
- getComponentType(type: NodeTypeOption): NodeTypeOption;
93
- getVectorType(type: NodeTypeOption): NodeTypeOption;
94
- getTypeFromLength(length: number): NodeTypeOption;
95
- getTypeLength(type: NodeTypeOption): number;
96
- getVectorFromMatrix(type: NodeTypeOption): NodeTypeOption;
93
+ isMatrix(type: string): boolean;
94
+ isReference(type: string): boolean;
95
+ getElementType(type: string): string | null;
96
+ getComponentType(type: string): string | null;
97
+ getVectorType(type: string): string;
98
+ getTypeFromLength(length: number): string;
99
+ getTypeLength(type: string): number;
100
+ getVectorFromMatrix(type: string): string;
97
101
  getDataFromNode(node: Node, shaderStage?: NodeShaderStage): NodeData;
98
- getNodeProperties(node: Node, shaderStage?: NodeShaderStage): AnyObject;
102
+ getNodeProperties(node: Node, shaderStage?: NodeShaderStage): { [key: string]: unknown };
99
103
  getUniformFromNode(
100
104
  node: Node,
101
- type: NodeTypeOption,
105
+ type: string,
102
106
  shaderStage?: NodeShaderStage,
103
107
  name?: string | null,
104
108
  ): NodeUniform<string>;
105
- getVarFromNode(node: Node, type: NodeTypeOption, shaderStage?: NodeShaderStage): NodeVar;
106
- getVaryFromNode(node: Node, type: NodeTypeOption): NodeVarying;
107
- getCodeFromNode(node: Node, type: NodeTypeOption, shaderStage?: NodeShaderStage): string;
109
+ getVarFromNode(node: Node, type: string, shaderStage?: NodeShaderStage): NodeVar;
110
+ getVaryFromNode(node: Node, type: string): NodeVarying;
111
+ getCodeFromNode(node: Node, type: string, shaderStage?: NodeShaderStage): string;
108
112
  addFlowCode(code: string): void;
109
113
  getFlowData(node: Node, shaderStage: NodeShaderStage): FlowData;
110
114
  flowNode(node: Node): FlowData;
@@ -117,7 +121,7 @@ export default abstract class NodeBuilder {
117
121
  ): FlowData;
118
122
  hasGeometryAttribute(name: string): boolean;
119
123
  abstract getAttributes(shaderStage: NodeShaderStage): string;
120
- abstract getVarys(shaderStage: NodeShaderStage): string;
124
+ abstract getVaryings(shaderStage: NodeShaderStage): string;
121
125
  getVars(shaderStage: NodeShaderStage): string;
122
126
  abstract getUniforms(stage: NodeShaderStage): string;
123
127
  getCodes(shaderStage: NodeShaderStage): string;
@@ -128,6 +132,6 @@ export default abstract class NodeBuilder {
128
132
  getBuildStage(): BuildStageOption;
129
133
  abstract buildCode(): void;
130
134
  build(): this;
131
- format(snippet: string, fromType: NodeTypeOption, toType: NodeTypeOption): string;
135
+ format(snippet: string, fromType: string, toType: string): string;
132
136
  getSignature(): string;
133
137
  }
@@ -1,9 +1,51 @@
1
+ import { BufferAttribute, InterleavedBuffer, TypedArray } from "three";
2
+ import BufferAttributeNode from "../accessors/BufferAttributeNode.js";
1
3
  import Node from "./Node.js";
2
- import { NodeData } from "./NodeBuilder.js";
3
-
4
- export default class NodeCache {
4
+ import NodeAttribute from "./NodeAttribute.js";
5
+ import NodeCode from "./NodeCode.js";
6
+ import NodeUniform from "./NodeUniform.js";
7
+ import NodeVar from "./NodeVar.js";
8
+ import NodeVarying from "./NodeVarying.js";
9
+ export interface ShaderStageNodeData {
10
+ properties?:
11
+ | (
12
+ & {
13
+ outputNode: Node | null;
14
+ initialized?: boolean | undefined;
15
+ }
16
+ & {
17
+ [K in `node${string}`]?: Node | undefined;
18
+ }
19
+ )
20
+ | undefined;
21
+ bufferAttribute?: NodeAttribute | undefined;
22
+ structType?: Node | undefined;
23
+ uniform?: NodeUniform<unknown> | undefined;
24
+ variable?: NodeVar | undefined;
25
+ varying?: NodeVarying | undefined;
26
+ code?: NodeCode | undefined;
27
+ usageCount?: number | undefined;
28
+ snippet?: string | undefined;
29
+ propertyName?: string | undefined;
30
+ propertySizeName?: string | undefined;
31
+ }
32
+ interface NodeData {
33
+ vertex?: ShaderStageNodeData | undefined;
34
+ fragment?: ShaderStageNodeData | undefined;
35
+ compute?: ShaderStageNodeData | undefined;
36
+ any?: ShaderStageNodeData | undefined;
37
+ }
38
+ interface BufferAttributeData {
39
+ node: BufferAttributeNode;
40
+ }
41
+ declare class NodeCache {
5
42
  id: number;
6
- nodesData: WeakMap<Node, NodeData>;
7
-
8
- constructor();
43
+ nodesData: WeakMap<Node | TypedArray | InterleavedBuffer | BufferAttribute, NodeData | BufferAttributeData>;
44
+ parent: NodeCache | null;
45
+ constructor(parent?: NodeCache | null);
46
+ getData(node: Node): NodeData | undefined;
47
+ getData(node: TypedArray | InterleavedBuffer | BufferAttribute): BufferAttributeData | undefined;
48
+ setData(node: Node, data: NodeData): void;
49
+ setData(node: TypedArray | InterleavedBuffer | BufferAttribute, data: BufferAttributeData): void;
9
50
  }
51
+ export default NodeCache;
@@ -5,9 +5,9 @@ export default abstract class NodeFunction {
5
5
  type: string;
6
6
  inputs: NodeFunctionInput[];
7
7
  name: string;
8
- presicion: string;
8
+ precision: string;
9
9
 
10
- constructor(type: string, inputs: NodeFunctionInput[], name?: string, presicion?: string);
10
+ constructor(type: string, inputs: NodeFunctionInput[], name?: string, precision?: string);
11
11
 
12
12
  abstract getCode(name?: string): string;
13
13
  }
@@ -1,14 +1,17 @@
1
1
  import Node from "./Node.js";
2
2
  import NodeBuilder from "./NodeBuilder.js";
3
-
4
- export default class NodeKeywords {
3
+ declare class NodeKeywords {
5
4
  keywords: string[];
6
- nodes: Node[];
7
- keywordsCallback: { [name: string]: (name: string) => Node };
8
-
5
+ nodes: {
6
+ [name: string]: Node;
7
+ };
8
+ keywordsCallback: {
9
+ [name: string]: (name: string) => Node;
10
+ };
11
+ constructor();
9
12
  getNode(name: string): Node;
10
- addKeyword(name: string, callback: (name: string) => Node): void;
11
-
13
+ addKeyword(name: string, callback: (name: string) => Node): this;
12
14
  parse(code: string): Node[];
13
15
  include(builder: NodeBuilder, code: string): void;
14
16
  }
17
+ export default NodeKeywords;
@@ -1,5 +1,5 @@
1
- import Node from "./Node.js";
2
-
3
- export default abstract class NodeParser {
4
- abstract parseFunction(source: string): Node;
1
+ import NodeFunction from "./NodeFunction.js";
2
+ declare abstract class NodeParser {
3
+ abstract parseFunction(source: string): NodeFunction;
5
4
  }
5
+ export default NodeParser;
@@ -1,17 +1,14 @@
1
1
  import UniformNode from "./UniformNode.js";
2
-
3
- export default class NodeUniform<Value> {
2
+ declare class NodeUniform<TValue> {
4
3
  readonly isNodeUniform: true;
5
-
6
4
  name: string;
7
- type: string;
8
- node: UniformNode<Value>;
5
+ type: string | null;
6
+ node: UniformNode<TValue>;
9
7
  needsUpdate: boolean | undefined;
10
-
11
- constructor(name: string, type: string, node: UniformNode<Value>, needsUpdate?: boolean);
12
-
13
- get(): Value;
14
- set value(val: Value);
15
-
8
+ constructor(name: string, type: string | null, node: UniformNode<TValue>);
9
+ get value(): TValue;
10
+ set value(val: TValue);
16
11
  get id(): number;
12
+ get groupNode(): import("./UniformGroupNode.js").default;
17
13
  }
14
+ export default NodeUniform;
@@ -1,6 +1,7 @@
1
- export default class NodeVar {
2
- isNodeVar: true;
1
+ declare class NodeVar {
2
+ readonly isNodeVar: true;
3
3
  name: string;
4
- type: string;
5
- constructor(name: string, type: string);
4
+ type: string | null;
5
+ constructor(name: string, type: string | null);
6
6
  }
7
+ export default NodeVar;
@@ -1,8 +1,7 @@
1
1
  import NodeVar from "./NodeVar.js";
2
-
3
- export default class NodeVarying extends NodeVar {
4
- needsInterpolation: false;
5
- isNodeVarying: true;
6
-
7
- constructor(name: string, type: string);
2
+ declare class NodeVarying extends NodeVar {
3
+ needsInterpolation: boolean;
4
+ readonly isNodeVarying: true;
5
+ constructor(name: string, type: string | null);
8
6
  }
7
+ export default NodeVarying;
@@ -1,5 +1,4 @@
1
1
  import { ShaderNodeObject } from "../shadernode/ShaderNode.js";
2
- import { NodeTypeOption } from "./constants.js";
3
2
  import Node from "./Node.js";
4
3
 
5
4
  export default class PropertyNode extends Node {
@@ -8,11 +7,11 @@ export default class PropertyNode extends Node {
8
7
 
9
8
  readonly isPropertyNode: true;
10
9
 
11
- constructor(nodeType?: NodeTypeOption | null, name?: string | null, varying?: boolean);
10
+ constructor(nodeType?: string | null, name?: string | null, varying?: boolean);
12
11
  }
13
12
 
14
- export const property: (type?: NodeTypeOption | null, name?: string | null) => ShaderNodeObject<PropertyNode>;
15
- export const varyingProperty: (type?: NodeTypeOption | null, name?: string | null) => ShaderNodeObject<PropertyNode>;
13
+ export const property: (type?: string | null, name?: string | null) => ShaderNodeObject<PropertyNode>;
14
+ export const varyingProperty: (type?: string | null, name?: string | null) => ShaderNodeObject<PropertyNode>;
16
15
 
17
16
  export const diffuseColor: ShaderNodeObject<PropertyNode>;
18
17
  export const roughness: ShaderNodeObject<PropertyNode>;
@@ -40,3 +39,4 @@ export const transmission: ShaderNodeObject<PropertyNode>;
40
39
  export const thickness: ShaderNodeObject<PropertyNode>;
41
40
  export const attenuationDistance: ShaderNodeObject<PropertyNode>;
42
41
  export const attenuationColor: ShaderNodeObject<PropertyNode>;
42
+ export const dispersion: ShaderNodeObject<PropertyNode>;
@@ -7,5 +7,11 @@ export default class StackNode extends Node {
7
7
 
8
8
  constructor();
9
9
 
10
- assign(targetNode: Node, sourceValue: Node): this;
10
+ add(node: Node): this;
11
+
12
+ if(boolNode: Node, method: () => void): this;
13
+
14
+ elseIf(node: Node, method: () => void): this;
15
+
16
+ else(node: Node, method: () => void): this;
11
17
  }
@@ -0,0 +1,8 @@
1
+ import Node from "./Node.js";
2
+ declare class StructTypeNode extends Node {
3
+ types: string[];
4
+ readonly isStructTypeNode: true;
5
+ constructor(types: string[]);
6
+ getMemberTypes(): string[];
7
+ }
8
+ export default StructTypeNode;
@@ -1,11 +1,10 @@
1
- import { NodeTypeOption } from "./constants.js";
2
1
  import Node from "./Node.js";
3
2
  import NodeBuilder from "./NodeBuilder.js";
4
3
 
5
4
  export default class TempNode extends Node {
6
5
  isTempNode: true;
7
6
 
8
- constructor(type: NodeTypeOption | null);
7
+ constructor(type: string | null);
9
8
 
10
9
  hasDependencies(builder: NodeBuilder): boolean;
11
10
  }
@@ -0,0 +1,7 @@
1
+ export default class UniformGroup {
2
+ name: string;
3
+
4
+ readonly isUniformGroup: true;
5
+
6
+ constructor(name: string);
7
+ }
@@ -0,0 +1,21 @@
1
+ import Node from "./Node.js";
2
+
3
+ export default class UniformGroupNode extends Node {
4
+ name: string;
5
+ version: number;
6
+
7
+ shared: boolean;
8
+
9
+ readonly isUniformGroup: true;
10
+
11
+ constructor(name: string, shared?: boolean);
12
+
13
+ set needsUpdate(value: boolean);
14
+ }
15
+
16
+ export const uniformGroup: (name: string) => UniformGroupNode;
17
+ export const sharedUniformGroup: (name: string) => UniformGroupNode;
18
+
19
+ export const frameGroup: UniformGroupNode;
20
+ export const renderGroup: UniformGroupNode;
21
+ export const objectGroup: UniformGroupNode;
@@ -1,18 +1,23 @@
1
- import { ShaderNodeObject } from "../shadernode/ShaderNode.js";
2
- import { NodeTypeOption } from "./constants.js";
1
+ import { NodeUpdateType } from "./constants.js";
3
2
  import InputNode from "./InputNode.js";
4
3
  import Node from "./Node.js";
5
4
  import NodeBuilder from "./NodeBuilder.js";
6
-
7
- export default class UniformNode<Value> extends InputNode<Value> {
5
+ import NodeFrame from "./NodeFrame.js";
6
+ import UniformGroupNode from "./UniformGroupNode.js";
7
+ declare class UniformNode<TValue> extends InputNode<TValue> {
8
8
  readonly isUniformNode: true;
9
-
10
- constructor(value: Value, nodeType?: NodeTypeOption | null);
11
-
9
+ name: string;
10
+ groupNode: UniformGroupNode;
11
+ constructor(value: TValue, nodeType?: string | null);
12
+ label(name: string): this;
13
+ setGroup(group: UniformGroupNode): this;
14
+ getGroup(): UniformGroupNode;
12
15
  getUniformHash(builder: NodeBuilder): string;
16
+ onUpdate(callback: (frame: NodeFrame, self: this) => TValue | undefined, updateType: NodeUpdateType): this;
17
+ generate(builder: NodeBuilder, output: string | null): string;
13
18
  }
14
-
15
- export const uniform: <Value>(
16
- arg1: InputNode<Value> | Value,
19
+ export default UniformNode;
20
+ export declare const uniform: <TValue>(
21
+ arg1: InputNode<TValue> | TValue,
17
22
  arg2?: Node | string,
18
- ) => ShaderNodeObject<UniformNode<Value>>;
23
+ ) => import("../shadernode/ShaderNode.js").ShaderNodeObject<UniformNode<TValue>>;
@@ -6,6 +6,8 @@ export default class VarNode extends Node {
6
6
  node: Node;
7
7
  name: string | null;
8
8
 
9
+ readonly isVarNode: true;
10
+
9
11
  constructor(node: Node, name?: string | null);
10
12
 
11
13
  op(op: OperatorNodeOp, ...params: Node[]): this;
@@ -1,11 +1,15 @@
1
1
  import { NodeRepresentation, ShaderNodeObject } from "../shadernode/ShaderNode.js";
2
2
  import Node from "./Node.js";
3
+ import NodeBuilder from "./NodeBuilder.js";
4
+ import NodeVarying from "./NodeVarying.js";
3
5
 
4
6
  export default class VaryingNode extends Node {
5
7
  node: Node;
6
8
  name: string | null;
7
9
 
8
10
  constructor(node: Node, name?: string | null);
11
+
12
+ setupVarying(builder: NodeBuilder): NodeVarying;
9
13
  }
10
14
 
11
15
  export const varying: (node: NodeRepresentation, name?: string) => ShaderNodeObject<VaryingNode>;
@@ -1,79 +1,27 @@
1
- export enum NodeShaderStage {
2
- VERTEX = "vertex",
3
- FRAGMENT = "fragment",
4
- }
5
-
6
- export enum NodeUpdateType {
7
- NONE = "none",
8
- FRAME = "frame",
9
- RENDER = "render",
10
- OBJECT = "object",
11
- }
12
-
13
- export enum NodeType {
14
- BOOLEAN = "bool",
15
- INTEGER = "int",
16
- FLOAT = "float",
17
- VECTOR2 = "vec2",
18
- VECTOR3 = "vec3",
19
- VECTOR4 = "vec4",
20
- MATRIX2 = "mat2",
21
- MATRIX3 = "mat3",
22
- MATRIX4 = "mat4",
23
- }
24
-
25
- export type NodeTypeOption =
26
- | "bool"
27
- | "int"
28
- | "float"
29
- | "vec2"
30
- | "vec3"
31
- | "vec4"
32
- | "mat2"
33
- | "mat3"
34
- | "mat4"
35
- | "code" /* CodeNode */
36
- | "color" /* NodeUtis.getValueType */
37
- | "uint"
38
- | "int" /* NodeBuilder.getComponentType */
39
- | "void"
40
- | "property"
41
- | "sampler"
42
- | "texture"
43
- | "cubeTexture" /* NodeBuilder.isReference */
44
- | "ivec2"
45
- | "uvec2"
46
- | "bvec2" /* ShaderNodeBaseElements */
47
- | "ivec3"
48
- | "uvec3"
49
- | "bvec3"
50
- | "ivec4"
51
- | "uvec4"
52
- | "bvec4"
53
- | "imat3"
54
- | "umat3"
55
- | "bmat3"
56
- | "imat4"
57
- | "umat4"
58
- | "bmat4";
59
-
60
- export type SwizzleCharacter = "x" | "y" | "z" | "w" | "r" | "g" | "b" | "a" | "s" | "t" | "p" | "q";
61
-
62
- export type SwizzleOption = Exclude<
63
- | `${SwizzleCharacter}`
64
- | `${SwizzleCharacter}${SwizzleCharacter}`
65
- | `${SwizzleCharacter}${SwizzleCharacter}${SwizzleCharacter}`
66
- | `${SwizzleCharacter}${SwizzleCharacter}${SwizzleCharacter}${SwizzleCharacter}`,
67
- "abs" | "sqrt"
68
- >;
69
-
70
- /** Should be the same type as Object3D.userData */
71
- export type NodeUserData = Record<string, any>;
72
-
73
- /** generic key value type,curretly used by nodes */
74
- export interface AnyObject {
75
- [key: string]: any;
76
- }
77
-
78
- /** a generic JSON type, used by nodes only */
79
- export type AnyJson = any;
1
+ export declare const NodeShaderStage: {
2
+ readonly VERTEX: "vertex";
3
+ readonly FRAGMENT: "fragment";
4
+ };
5
+ export declare const NodeUpdateType: {
6
+ readonly NONE: "none";
7
+ readonly FRAME: "frame";
8
+ readonly RENDER: "render";
9
+ readonly OBJECT: "object";
10
+ };
11
+ export declare const NodeType: {
12
+ readonly BOOLEAN: "bool";
13
+ readonly INTEGER: "int";
14
+ readonly FLOAT: "float";
15
+ readonly VECTOR2: "vec2";
16
+ readonly VECTOR3: "vec3";
17
+ readonly VECTOR4: "vec4";
18
+ readonly MATRIX2: "mat2";
19
+ readonly MATRIX3: "mat3";
20
+ readonly MATRIX4: "mat4";
21
+ };
22
+ export type NodeShaderStage = "vertex" | "fragment" | "compute";
23
+ export type NodeUpdateType = "none" | "frame" | "render" | "object";
24
+ export declare const defaultShaderStages: NodeShaderStage[];
25
+ export declare const defaultBuildStages: string[];
26
+ export declare const shaderStages: NodeShaderStage[];
27
+ export declare const vectorComponents: string[];
@@ -0,0 +1,30 @@
1
+ import TextureNode from "../accessors/TextureNode.js";
2
+ import Node from "../core/Node.js";
3
+ import TempNode from "../core/TempNode.js";
4
+ import UniformNode from "../core/UniformNode.js";
5
+ import { NodeRepresentation, ShaderNodeObject } from "../shadernode/ShaderNode.js";
6
+
7
+ export default class DepthOfFieldNode extends TempNode {
8
+ textureNode: TextureNode;
9
+ viewZNode: Node;
10
+
11
+ focus: UniformNode<number>;
12
+ aperture: UniformNode<number>;
13
+ maxblur: UniformNode<number>;
14
+
15
+ constructor(textureNode: TextureNode, viewZNode: Node, focus?: number, aperture?: number, maxblur?: number);
16
+ }
17
+
18
+ export const dof: (
19
+ node: NodeRepresentation,
20
+ viewZNode: NodeRepresentation,
21
+ focus?: number,
22
+ aperture?: number,
23
+ maxblur?: number,
24
+ ) => ShaderNodeObject<DepthOfFieldNode>;
25
+
26
+ declare module "../shadernode/ShaderNode.js" {
27
+ interface NodeElements {
28
+ dof: typeof dof;
29
+ }
30
+ }
@@ -0,0 +1,32 @@
1
+ import { Vector2 } from "three";
2
+ import TextureNode from "../accessors/TextureNode.js";
3
+ import Node from "../core/Node.js";
4
+ import TempNode from "../core/TempNode.js";
5
+ import UniformNode from "../core/UniformNode.js";
6
+ import { NodeRepresentation, ShaderNodeObject } from "../shadernode/ShaderNode.js";
7
+
8
+ export default class DotScreenNode extends TempNode {
9
+ colorNode: Node;
10
+ center: UniformNode<Vector2>;
11
+ angle: UniformNode<number>;
12
+ scale: UniformNode<number>;
13
+
14
+ constructor(colorNode: Node, center?: Vector2, angle?: number, scale?: number);
15
+
16
+ getTextureNode(): ShaderNodeObject<TextureNode>;
17
+
18
+ setSize(width: number, height: number): void;
19
+ }
20
+
21
+ export const dotScreen: (
22
+ node: NodeRepresentation,
23
+ center?: Vector2,
24
+ angle?: number,
25
+ scale?: number,
26
+ ) => ShaderNodeObject<DotScreenNode>;
27
+
28
+ declare module "../shadernode/ShaderNode.js" {
29
+ interface NodeElements {
30
+ dotScreen: typeof dotScreen;
31
+ }
32
+ }
@@ -27,7 +27,7 @@ export default class PassNode extends TempNode {
27
27
 
28
28
  getViewZNode(): ShaderNodeObject<Node>;
29
29
 
30
- getDepthNode(): ShaderNodeObject<Node>;
30
+ getLinearDepthNode(): ShaderNodeObject<Node>;
31
31
 
32
32
  setSize(width: number, height: number): void;
33
33
 
@@ -0,0 +1,24 @@
1
+ import TextureNode from "../accessors/TextureNode.js";
2
+ import TempNode from "../core/TempNode.js";
3
+ import UniformNode from "../core/UniformNode.js";
4
+ import { NodeRepresentation, ShaderNodeObject } from "../shadernode/ShaderNode.js";
5
+
6
+ export default class RGBShiftNode extends TempNode {
7
+ textureNode: TextureNode;
8
+ amount: UniformNode<number>;
9
+ angle: UniformNode<number>;
10
+
11
+ constructor(textureNode: TextureNode, amount?: number, angle?: number);
12
+
13
+ getTextureNode(): TextureNode;
14
+
15
+ setSize(width: number, height: number): void;
16
+ }
17
+
18
+ export const rgbShift: (node: NodeRepresentation, amount?: number, angle?: number) => ShaderNodeObject<RGBShiftNode>;
19
+
20
+ declare module "../shadernode/ShaderNode.js" {
21
+ interface NodeElements {
22
+ rgbShift: typeof rgbShift;
23
+ }
24
+ }
@@ -0,0 +1,17 @@
1
+ import TextureNode from "../accessors/TextureNode.js";
2
+ import TempNode from "../core/TempNode.js";
3
+ import { NodeRepresentation, ShaderNodeObject } from "../shadernode/ShaderNode.js";
4
+
5
+ export default class SobelOperatorNode extends TempNode {
6
+ textureNode: TextureNode;
7
+
8
+ constructor(textureNode: TextureNode);
9
+ }
10
+
11
+ export const sobel: (node: NodeRepresentation) => ShaderNodeObject<SobelOperatorNode>;
12
+
13
+ declare module "../shadernode/ShaderNode.js" {
14
+ interface NodeElements {
15
+ sobel: typeof sobel;
16
+ }
17
+ }