@types/three 0.164.1 → 0.165.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 (132) hide show
  1. three/README.md +1 -1
  2. three/examples/jsm/controls/TransformControls.d.ts +8 -6
  3. three/examples/jsm/exporters/USDZExporter.d.ts +4 -2
  4. three/examples/jsm/loaders/FontLoader.d.ts +1 -1
  5. three/examples/jsm/loaders/GLTFLoader.d.ts +9 -6
  6. three/examples/jsm/loaders/LDrawLoader.d.ts +1 -1
  7. three/examples/jsm/modifiers/EdgeSplitModifier.d.ts +17 -10
  8. three/examples/jsm/nodes/Nodes.d.ts +11 -54
  9. three/examples/jsm/nodes/accessors/BitangentNode.d.ts +4 -22
  10. three/examples/jsm/nodes/accessors/BufferAttributeNode.d.ts +49 -0
  11. three/examples/jsm/nodes/accessors/BufferNode.d.ts +3 -4
  12. three/examples/jsm/nodes/accessors/CameraNode.d.ts +11 -20
  13. three/examples/jsm/nodes/accessors/CubeTextureNode.d.ts +1 -1
  14. three/examples/jsm/nodes/accessors/MaterialNode.d.ts +4 -1
  15. three/examples/jsm/nodes/accessors/ModelNode.d.ts +3 -0
  16. three/examples/jsm/nodes/accessors/ModelViewProjectionNode.d.ts +1 -2
  17. three/examples/jsm/nodes/accessors/NormalNode.d.ts +9 -17
  18. three/examples/jsm/nodes/accessors/PositionNode.d.ts +6 -26
  19. three/examples/jsm/nodes/accessors/ReferenceNode.d.ts +3 -4
  20. three/examples/jsm/nodes/accessors/ReflectVectorNode.d.ts +3 -8
  21. three/examples/jsm/nodes/accessors/RendererReferenceNode.d.ts +2 -3
  22. three/examples/jsm/nodes/accessors/StorageBufferNode.d.ts +9 -4
  23. three/examples/jsm/nodes/accessors/TangentNode.d.ts +8 -23
  24. three/examples/jsm/nodes/accessors/Texture3DNode.d.ts +16 -0
  25. three/examples/jsm/nodes/accessors/TextureNode.d.ts +1 -1
  26. three/examples/jsm/nodes/accessors/UVNode.d.ts +1 -8
  27. three/examples/jsm/nodes/accessors/UniformsNode.d.ts +0 -2
  28. three/examples/jsm/nodes/accessors/UserDataNode.d.ts +4 -3
  29. three/examples/jsm/nodes/code/CodeNode.d.ts +0 -1
  30. three/examples/jsm/nodes/code/ExpressionNode.d.ts +2 -3
  31. three/examples/jsm/nodes/core/AttributeNode.d.ts +11 -4
  32. three/examples/jsm/nodes/core/ConstNode.d.ts +1 -2
  33. three/examples/jsm/nodes/core/InputNode.d.ts +1 -2
  34. three/examples/jsm/nodes/core/Node.d.ts +99 -42
  35. three/examples/jsm/nodes/core/NodeAttribute.d.ts +7 -4
  36. three/examples/jsm/nodes/core/NodeBuilder.d.ts +24 -24
  37. three/examples/jsm/nodes/core/NodeCache.d.ts +38 -4
  38. three/examples/jsm/nodes/core/NodeKeywords.d.ts +10 -7
  39. three/examples/jsm/nodes/core/NodeParser.d.ts +4 -4
  40. three/examples/jsm/nodes/core/NodeUniform.d.ts +8 -11
  41. three/examples/jsm/nodes/core/NodeVar.d.ts +5 -4
  42. three/examples/jsm/nodes/core/NodeVarying.d.ts +5 -6
  43. three/examples/jsm/nodes/core/PropertyNode.d.ts +4 -4
  44. three/examples/jsm/nodes/core/StackNode.d.ts +7 -1
  45. three/examples/jsm/nodes/core/StructTypeNode.d.ts +8 -0
  46. three/examples/jsm/nodes/core/TempNode.d.ts +1 -2
  47. three/examples/jsm/nodes/core/UniformGroup.d.ts +7 -0
  48. three/examples/jsm/nodes/core/UniformGroupNode.d.ts +21 -0
  49. three/examples/jsm/nodes/core/UniformNode.d.ts +14 -11
  50. three/examples/jsm/nodes/core/VaryingNode.d.ts +4 -0
  51. three/examples/jsm/nodes/core/constants.d.ts +27 -79
  52. three/examples/jsm/nodes/functions/PhysicalLightingModel.d.ts +2 -0
  53. three/examples/jsm/nodes/functions/ToonLightingModel.d.ts +4 -0
  54. three/examples/jsm/nodes/loaders/NodeLoader.d.ts +3 -3
  55. three/examples/jsm/nodes/loaders/NodeObjectLoader.d.ts +2 -3
  56. three/examples/jsm/nodes/materials/LineBasicNodeMaterial.d.ts +2 -0
  57. three/examples/jsm/nodes/materials/Materials.d.ts +3 -0
  58. three/examples/jsm/nodes/materials/MeshBasicNodeMaterial.d.ts +5 -1
  59. three/examples/jsm/nodes/materials/MeshMatcapNodeMaterial.d.ts +28 -0
  60. three/examples/jsm/nodes/materials/MeshNormalNodeMaterial.d.ts +2 -0
  61. three/examples/jsm/nodes/materials/MeshPhongNodeMaterial.d.ts +5 -1
  62. three/examples/jsm/nodes/materials/MeshPhysicalNodeMaterial.d.ts +8 -0
  63. three/examples/jsm/nodes/materials/MeshStandardNodeMaterial.d.ts +5 -1
  64. three/examples/jsm/nodes/materials/MeshToonNodeMaterial.d.ts +38 -0
  65. three/examples/jsm/nodes/materials/NodeMaterial.d.ts +9 -4
  66. three/examples/jsm/nodes/materials/PointsNodeMaterial.d.ts +1 -0
  67. three/examples/jsm/nodes/materials/ShadowNodeMaterial.d.ts +1 -0
  68. three/examples/jsm/nodes/materials/SpriteNodeMaterial.d.ts +1 -0
  69. three/examples/jsm/nodes/materials/VolumeNodeMaterial.d.ts +10 -0
  70. three/examples/jsm/nodes/shadernode/ShaderNode.d.ts +58 -36
  71. three/examples/jsm/nodes/utils/ConvertNode.d.ts +2 -3
  72. three/examples/jsm/nodes/utils/EquirectUVNode.d.ts +2 -2
  73. three/examples/jsm/nodes/utils/SplitNode.d.ts +1 -1
  74. three/examples/jsm/nodes/utils/TriplanarTexturesNode.d.ts +4 -5
  75. three/examples/jsm/objects/Sky.d.ts +18 -0
  76. three/examples/jsm/renderers/common/Animation.d.ts +14 -0
  77. three/examples/jsm/renderers/common/Attributes.d.ts +20 -0
  78. three/examples/jsm/renderers/common/Background.d.ts +22 -0
  79. three/examples/jsm/renderers/common/Binding.d.ts +8 -0
  80. three/examples/jsm/renderers/common/Bindings.d.ts +45 -0
  81. three/examples/jsm/renderers/common/Buffer.d.ts +11 -0
  82. three/examples/jsm/renderers/common/BufferUtils.d.ts +4 -0
  83. three/examples/jsm/renderers/common/ChainMap.d.ts +9 -0
  84. three/examples/jsm/renderers/common/ClippingContext.d.ts +18 -0
  85. three/examples/jsm/renderers/common/Color4.d.ts +6 -5
  86. three/examples/jsm/renderers/common/ComputePipeline.d.ts +8 -0
  87. three/examples/jsm/renderers/common/Constants.d.ts +9 -0
  88. three/examples/jsm/renderers/common/CubeRenderTarget.d.ts +7 -0
  89. three/examples/jsm/renderers/common/DataMap.d.ts +20 -0
  90. three/examples/jsm/renderers/common/Geometries.d.ts +28 -0
  91. three/examples/jsm/renderers/common/Info.d.ts +20 -13
  92. three/examples/jsm/renderers/common/Pipeline.d.ts +6 -0
  93. three/examples/jsm/renderers/common/Pipelines.d.ts +68 -0
  94. three/examples/jsm/renderers/common/ProgrammableStage.d.ts +15 -0
  95. three/examples/jsm/renderers/common/RenderBundle.d.ts +8 -0
  96. three/examples/jsm/renderers/common/RenderBundles.d.ts +10 -0
  97. three/examples/jsm/renderers/common/RenderContext.d.ts +38 -0
  98. three/examples/jsm/renderers/common/RenderContexts.d.ts +13 -0
  99. three/examples/jsm/renderers/common/RenderList.d.ts +62 -0
  100. three/examples/jsm/renderers/common/RenderLists.d.ts +10 -0
  101. three/examples/jsm/renderers/common/RenderObject.d.ts +73 -0
  102. three/examples/jsm/renderers/common/RenderObjects.d.ts +59 -0
  103. three/examples/jsm/renderers/common/RenderPipeline.d.ts +8 -0
  104. three/examples/jsm/renderers/common/Renderer.d.ts +175 -208
  105. three/examples/jsm/renderers/common/StorageBufferAttribute.d.ts +7 -0
  106. three/examples/jsm/renderers/common/StorageInstancedBufferAttribute.d.ts +7 -0
  107. three/examples/jsm/renderers/common/Textures.d.ts +64 -0
  108. three/examples/jsm/renderers/common/Uniform.d.ts +40 -0
  109. three/examples/jsm/renderers/common/UniformBuffer.d.ts +6 -0
  110. three/examples/jsm/renderers/common/UniformsGroup.d.ts +30 -0
  111. three/examples/jsm/renderers/common/nodes/NodeBuilderState.d.ts +26 -0
  112. three/examples/jsm/renderers/common/nodes/NodeUniform.d.ts +63 -0
  113. three/examples/jsm/renderers/common/nodes/NodeUniformsGroup.d.ts +12 -0
  114. three/examples/jsm/renderers/common/nodes/Nodes.d.ts +94 -0
  115. three/examples/jsm/utils/SceneUtils.d.ts +9 -3
  116. three/package.json +2 -2
  117. three/src/animation/tracks/StringKeyframeTrack.d.ts +1 -2
  118. three/src/core/BufferGeometry.d.ts +19 -17
  119. three/src/core/InterleavedBuffer.d.ts +2 -0
  120. three/src/loaders/LoaderUtils.d.ts +9 -6
  121. three/src/math/Color.d.ts +1 -1
  122. three/src/math/Matrix3.d.ts +2 -0
  123. three/src/math/Matrix4.d.ts +2 -0
  124. three/src/objects/BatchedMesh.d.ts +15 -0
  125. three/src/objects/InstancedMesh.d.ts +3 -3
  126. three/src/renderers/WebGLRenderer.d.ts +41 -19
  127. three/src/renderers/webgl/WebGLPrograms.d.ts +1 -1
  128. three/src/renderers/webxr/WebXRDepthSensing.d.ts +1 -1
  129. three/src/textures/CompressedArrayTexture.d.ts +32 -15
  130. three/src/textures/DataArrayTexture.d.ts +37 -20
  131. three/src/textures/FramebufferTexture.d.ts +1 -1
  132. three/src/utils.d.ts +2 -0
three/README.md CHANGED
@@ -8,7 +8,7 @@ This package contains type definitions for three (https://threejs.org/).
8
8
  Files were exported from https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/three.
9
9
 
10
10
  ### Additional Details
11
- * Last updated: Tue, 21 May 2024 21:07:11 GMT
11
+ * Last updated: Fri, 31 May 2024 15:07:05 GMT
12
12
  * Dependencies: [@tweenjs/tween.js](https://npmjs.com/package/@tweenjs/tween.js), [@types/stats.js](https://npmjs.com/package/@types/stats.js), [@types/webxr](https://npmjs.com/package/@types/webxr), [fflate](https://npmjs.com/package/fflate), [meshoptimizer](https://npmjs.com/package/meshoptimizer)
13
13
 
14
14
  # Credits
@@ -1,9 +1,11 @@
1
1
  import { Camera, Mesh, MOUSE, Object3D, Object3DEventMap, Quaternion, Raycaster, Vector3 } from "three";
2
2
 
3
+ type TransformControlsMode = "translate" | "rotate" | "scale";
4
+
3
5
  export interface TransformControlsEventMap extends Object3DEventMap {
4
6
  change: {};
5
- mouseDown: {};
6
- mouseUp: {};
7
+ mouseDown: { mode: TransformControlsMode };
8
+ mouseUp: { mode: TransformControlsMode };
7
9
  objectChange: {};
8
10
  "camera-changed": { value: unknown };
9
11
  "object-changed": { value: unknown };
@@ -43,7 +45,7 @@ export class TransformControls extends Object3D<TransformControlsEventMap> {
43
45
  object: Object3D | undefined;
44
46
  enabled: boolean;
45
47
  axis: "X" | "Y" | "Z" | "E" | "XY" | "YZ" | "XZ" | "XYZ" | "XYZE" | null;
46
- mode: "translate" | "rotate" | "scale";
48
+ mode: TransformControlsMode;
47
49
  translationSnap: number | null;
48
50
  rotationSnap: number | null;
49
51
  space: "world" | "local";
@@ -67,9 +69,9 @@ export class TransformControls extends Object3D<TransformControlsEventMap> {
67
69
 
68
70
  attach(object: Object3D): this;
69
71
  detach(): this;
70
- getMode(): "translate" | "rotate" | "scale";
72
+ getMode(): TransformControlsMode;
71
73
  getRaycaster(): Raycaster;
72
- setMode(mode: "translate" | "rotate" | "scale"): void;
74
+ setMode(mode: TransformControlsMode): void;
73
75
  setTranslationSnap(translationSnap: number | null): void;
74
76
  setRotationSnap(rotationSnap: number | null): void;
75
77
  setScaleSnap(scaleSnap: number | null): void;
@@ -108,7 +110,7 @@ export class TransformControlsPlane extends Mesh {
108
110
 
109
111
  constructor();
110
112
 
111
- mode: "translate" | "scale" | "rotate";
113
+ mode: TransformControlsMode;
112
114
 
113
115
  axis: "X" | "Y" | "Z" | "XY" | "YZ" | "XZ" | "XYZ" | "E";
114
116
 
@@ -1,8 +1,10 @@
1
1
  import { Object3D } from "three";
2
2
 
3
3
  export interface USDZExporterOptions {
4
- quickLookCompatible?: boolean;
5
- maxTextureSize?: number;
4
+ ar?: { anchoring: { type: "plane" }; planeAnchoring: { alignment: "horizontal" | "vertical" | "any" } } | undefined;
5
+ includeAnchoringProperties?: boolean | undefined;
6
+ quickLookCompatible?: boolean | undefined;
7
+ maxTextureSize?: number | undefined;
6
8
  }
7
9
 
8
10
  export class USDZExporter {
@@ -1,7 +1,7 @@
1
1
  import { Loader, LoadingManager, Shape } from "three";
2
2
 
3
3
  export interface FontData {
4
- glyphs: Record<string, { ha: number; x_min: number; x_max: number; o: string }>;
4
+ glyphs: Record<string, { ha: number; x_min: number; x_max: number; o?: string | undefined }>;
5
5
  familyName: string;
6
6
  ascender: number;
7
7
  descender: number;
@@ -19,6 +19,7 @@ import {
19
19
  TextureLoader,
20
20
  } from "three";
21
21
 
22
+ import { MeshoptDecoder } from "../libs/meshopt_decoder.module.js";
22
23
  import { DRACOLoader } from "./DRACOLoader.js";
23
24
  import { KTX2Loader } from "./KTX2Loader.js";
24
25
 
@@ -40,16 +41,18 @@ export interface GLTF {
40
41
  }
41
42
 
42
43
  export class GLTFLoader extends Loader<GLTF> {
43
- constructor(manager?: LoadingManager);
44
44
  dracoLoader: DRACOLoader | null;
45
+ ktx2Loader: KTX2Loader | null;
46
+ meshoptDecoder: typeof MeshoptDecoder | null;
45
47
 
46
- setDRACOLoader(dracoLoader: DRACOLoader): GLTFLoader;
48
+ constructor(manager?: LoadingManager);
47
49
 
48
- register(callback: (parser: GLTFParser) => GLTFLoaderPlugin): GLTFLoader;
49
- unregister(callback: (parser: GLTFParser) => GLTFLoaderPlugin): GLTFLoader;
50
+ setDRACOLoader(dracoLoader: DRACOLoader): this;
51
+ setKTX2Loader(ktx2Loader: KTX2Loader | null): this;
52
+ setMeshoptDecoder(meshoptDecoder: typeof MeshoptDecoder | null): this;
50
53
 
51
- setKTX2Loader(ktx2Loader: KTX2Loader): GLTFLoader;
52
- setMeshoptDecoder(meshoptDecoder: /* MeshoptDecoder */ any): GLTFLoader;
54
+ register(callback: (parser: GLTFParser) => GLTFLoaderPlugin): this;
55
+ unregister(callback: (parser: GLTFParser) => GLTFLoaderPlugin): this;
53
56
 
54
57
  parse(
55
58
  data: ArrayBuffer | string,
@@ -12,7 +12,7 @@ export class LDrawLoader extends Loader<Group> {
12
12
  setFileMap(fileMap: Record<string, string>): void;
13
13
  setMaterials(materials: Material[]): void;
14
14
 
15
- parse(text: string, path: string, onLoad: (data: Group) => void): void;
15
+ parse(text: string, path: string, onLoad: (data: Group) => void, onError?: (error: unknown) => void): void;
16
16
 
17
17
  addMaterial(material: Material): void;
18
18
  getMaterial(colourCode: string): Material | null;
@@ -1,19 +1,26 @@
1
1
  import { BufferGeometry } from "three";
2
2
 
3
+ /**
4
+ * {@link EdgeSplitModifier} is intended to modify the geometry "dissolving" the edges to give a smoother look.
5
+ *
6
+ * @example
7
+ * const geometry = new THREE.IcosahedronGeometry( 10, 3 );
8
+ * const modifier = new EdgeSplitModifier();
9
+ * const cutOffAngle = 0.5;
10
+ * const tryKeepNormals = false;
11
+ *
12
+ * modifier.modify( geometry, cutOffAngle, tryKeepNormals );
13
+ */
3
14
  export class EdgeSplitModifier {
15
+ /**
16
+ * Create a new {@link EdgeSplitModifier} object.
17
+ */
4
18
  constructor();
5
19
 
6
20
  /**
7
- * @param geometry The geometry to modify by splitting edges.
8
- * This geometry can be any of any type: Geometry or BufferGeometry, indexed or
9
- * not...
10
- *
11
- * @param cutOffPoint The cutoff angle in radians. If the angle between two face normals is higher
12
- * than this value, a split will be made.
13
- *
14
- * @param [tryKeepNormals = true] Set to true to keep the normal values for vertices that won't be split.
15
- * To use this feature, you also need to pass an indexed geometry with a 'normal'
16
- * BufferAttribute.
21
+ * Using interpolated vertex normals, the mesh faces will blur at the edges and appear smooth.
22
+ * You can control the smoothness by setting the `cutOffAngle`.
23
+ * To try to keep the original normals, set `tryKeepNormals` to `true`.
17
24
  */
18
25
  modify(geometry: BufferGeometry, cutOffPoint: number, tryKeepNormals: boolean): BufferGeometry;
19
26
  }
@@ -197,29 +197,9 @@ export * from "./shadernode/ShaderNode.js";
197
197
  // accessors
198
198
  export { parallaxDirection, parallaxUV, TBNViewMatrix, transformedBentNormalView } from "./accessors/AccessorsUtils.js";
199
199
  export { batch, default as BatchNode } from "./accessors/BatchNode.js";
200
- export {
201
- bitangentGeometry,
202
- bitangentLocal,
203
- BitangentNodeScope,
204
- bitangentView,
205
- bitangentWorld,
206
- default as BitangentNode,
207
- transformedBitangentView,
208
- transformedBitangentWorld,
209
- } from "./accessors/BitangentNode.js";
200
+ export * from "./accessors/BitangentNode.js";
210
201
  export { buffer, default as BufferNode } from "./accessors/BufferNode.js";
211
- export {
212
- cameraFar,
213
- cameraLogDepth,
214
- cameraNear,
215
- cameraNormalMatrix,
216
- cameraPosition,
217
- cameraProjectionMatrix,
218
- cameraProjectionMatrixInverse,
219
- cameraViewMatrix,
220
- cameraWorldMatrix,
221
- default as CameraNode,
222
- } from "./accessors/CameraNode.js";
202
+ export * from "./accessors/CameraNode.js";
223
203
  export { cubeTexture, default as CubeTextureNode } from "./accessors/CubeTextureNode.js";
224
204
  export { default as InstanceNode, instance } from "./accessors/InstanceNode.js";
225
205
  export {
@@ -231,6 +211,7 @@ export {
231
211
  materialClearcoatNormal,
232
212
  materialClearcoatRoughness,
233
213
  materialColor,
214
+ materialDispersion,
234
215
  materialEmissive,
235
216
  materialIridescence,
236
217
  materialIridescenceIOR,
@@ -264,17 +245,10 @@ export {
264
245
  modelViewMatrix,
265
246
  modelViewPosition,
266
247
  modelWorldMatrix,
248
+ modelWorldMatrixInverse,
267
249
  } from "./accessors/ModelNode.js";
268
250
  export { default as ModelViewProjectionNode, modelViewProjection } from "./accessors/ModelViewProjectionNode.js";
269
- export {
270
- default as NormalNode,
271
- normalGeometry,
272
- normalLocal,
273
- NormalNodeScope,
274
- normalView,
275
- normalWorld,
276
- transformedNormalView,
277
- } from "./accessors/NormalNode.js";
251
+ export * from "./accessors/NormalNode.js";
278
252
  export {
279
253
  default as Object3DNode,
280
254
  objectDirection,
@@ -286,36 +260,19 @@ export {
286
260
  objectWorldMatrix,
287
261
  } from "./accessors/Object3DNode.js";
288
262
  export { default as PointUVNode, pointUV } from "./accessors/PointUVNode.js";
289
- export {
290
- default as PositionNode,
291
- positionGeometry,
292
- positionLocal,
293
- PositionNodeScope,
294
- positionView,
295
- positionViewDirection,
296
- positionWorld,
297
- positionWorldDirection,
298
- } from "./accessors/PositionNode.js";
263
+ export * from "./accessors/PositionNode.js";
299
264
  export { default as ReferenceNode, reference, referenceBuffer } from "./accessors/ReferenceNode.js";
300
- export { default as ReflectVectorNode, reflectVector } from "./accessors/ReflectVectorNode.js";
265
+ export * from "./accessors/ReflectVectorNode.js";
301
266
  export { default as RendererReferenceNode, rendererReference } from "./accessors/RendererReferenceNode.js";
302
267
  export { default as SkinningNode, skinning } from "./accessors/SkinningNode.js";
303
268
  export { default as StorageBufferNode, storage, storageObject } from "./accessors/StorageBufferNode.js";
304
- export {
305
- default as TangentNode,
306
- tangentGeometry,
307
- tangentLocal,
308
- TangentNodeScope,
309
- tangentView,
310
- tangentWorld,
311
- transformedTangentView,
312
- transformedTangentWorld,
313
- } from "./accessors/TangentNode.js";
269
+ export * from "./accessors/TangentNode.js";
270
+ export { default as Texture3DNode, texture3D } from "./accessors/Texture3DNode.js";
314
271
  export { default as TextureBicubicNode, textureBicubic } from "./accessors/TextureBicubicNode.js";
315
272
  export { default as TextureNode, sampler, texture } from "./accessors/TextureNode.js";
316
273
  export { default as UniformsNode, uniforms } from "./accessors/UniformsNode.js";
317
274
  export { default as UserDataNode, userData } from "./accessors/UserDataNode.js";
318
- export { default as UVNode, uv } from "./accessors/UVNode.js";
275
+ export * from "./accessors/UVNode.js";
319
276
  export { default as VertexColorNode, vertexColor } from "./accessors/VertexColorNode.js";
320
277
 
321
278
  // display
@@ -369,7 +326,7 @@ export {
369
326
  export { default as ViewportSharedTextureNode, viewportSharedTexture } from "./display/ViewportSharedTextureNode.js";
370
327
  export { default as ViewportTextureNode, viewportMipTexture, viewportTexture } from "./display/ViewportTextureNode.js";
371
328
 
372
- export { default as PassNode, depthPass, pass, PassNodeScope } from "./display/PassNode.js";
329
+ export { default as PassNode, depthPass, pass, PassNodeScope, texturePass } from "./display/PassNode.js";
373
330
 
374
331
  // code
375
332
  export { code, CodeNodeInclude, default as CodeNode, glsl, js, wgsl } from "./code/CodeNode.js";
@@ -1,27 +1,9 @@
1
- import Node from "../core/Node.js";
2
1
  import MathNode from "../math/MathNode.js";
3
2
  import { ShaderNodeObject } from "../shadernode/ShaderNode.js";
4
3
 
5
- export type BitangentNodeScope =
6
- | typeof BitangentNode.LOCAL
7
- | typeof BitangentNode.VIEW
8
- | typeof BitangentNode.WORLD
9
- | typeof BitangentNode.GEOMETRY;
10
-
11
- export default class BitangentNode extends Node {
12
- static GEOMETRY: "geometry";
13
- static LOCAL: "local";
14
- static VIEW: "view";
15
- static WORLD: "world";
16
-
17
- scope: BitangentNodeScope;
18
-
19
- constructor(scope?: BitangentNodeScope);
20
- }
21
-
22
- export const bitangentGeometry: ShaderNodeObject<BitangentNode>;
23
- export const bitangentLocal: ShaderNodeObject<BitangentNode>;
24
- export const bitangentView: ShaderNodeObject<BitangentNode>;
25
- export const bitangentWorld: ShaderNodeObject<BitangentNode>;
4
+ export const bitangentGeometry: ShaderNodeObject<MathNode>;
5
+ export const bitangentLocal: ShaderNodeObject<MathNode>;
6
+ export const bitangentView: ShaderNodeObject<MathNode>;
7
+ export const bitangentWorld: ShaderNodeObject<MathNode>;
26
8
  export const transformedBitangentView: ShaderNodeObject<MathNode>;
27
9
  export const transformedBitangentWorld: ShaderNodeObject<MathNode>;
@@ -0,0 +1,49 @@
1
+ import { BufferAttribute, InterleavedBuffer, InterleavedBufferAttribute, TypedArray, Usage } from "three";
2
+ import InputNode from "../core/InputNode.js";
3
+ import NodeBuilder from "../core/NodeBuilder.js";
4
+ declare class BufferAttributeNode extends InputNode<TypedArray | InterleavedBuffer | BufferAttribute> {
5
+ readonly isBufferNode: true;
6
+ bufferType: string | null;
7
+ bufferStride: number;
8
+ bufferOffset: number;
9
+ usage: Usage;
10
+ instanced: boolean;
11
+ attribute: BufferAttribute | InterleavedBufferAttribute | null;
12
+ constructor(
13
+ value: TypedArray | InterleavedBuffer | BufferAttribute,
14
+ bufferType?: string | null,
15
+ bufferStride?: number,
16
+ bufferOffset?: number,
17
+ );
18
+ getNodeType(builder: NodeBuilder): string | null;
19
+ setup(builder: NodeBuilder): void;
20
+ generate(builder: NodeBuilder): string | null | undefined;
21
+ getInputType(): string;
22
+ setUsage(value: Usage): this;
23
+ setInstanced(value: boolean): this;
24
+ }
25
+ export default BufferAttributeNode;
26
+ export declare const bufferAttribute: (
27
+ array: TypedArray | InterleavedBuffer | BufferAttribute,
28
+ type?: string | null,
29
+ stride?: number,
30
+ offset?: number,
31
+ ) => import("../shadernode/ShaderNode.js").ShaderNodeObject<BufferAttributeNode>;
32
+ export declare const dynamicBufferAttribute: (
33
+ array: TypedArray | InterleavedBuffer | BufferAttribute,
34
+ type?: string | null,
35
+ stride?: number,
36
+ offset?: number,
37
+ ) => import("../shadernode/ShaderNode.js").ShaderNodeObject<BufferAttributeNode>;
38
+ export declare const instancedBufferAttribute: (
39
+ array: TypedArray | InterleavedBuffer | BufferAttribute,
40
+ type?: string | null,
41
+ stride?: number,
42
+ offset?: number,
43
+ ) => import("../shadernode/ShaderNode.js").ShaderNodeObject<BufferAttributeNode>;
44
+ export declare const instancedDynamicBufferAttribute: (
45
+ array: TypedArray | InterleavedBuffer | BufferAttribute,
46
+ type?: string | null,
47
+ stride?: number,
48
+ offset?: number,
49
+ ) => import("../shadernode/ShaderNode.js").ShaderNodeObject<BufferAttributeNode>;
@@ -1,18 +1,17 @@
1
- import { NodeTypeOption } from "../core/constants.js";
2
1
  import UniformNode from "../core/UniformNode.js";
3
2
  import { NodeOrType, ShaderNodeObject } from "../shadernode/ShaderNode.js";
4
3
 
5
- export default class BufferNode extends UniformNode<ArrayLike<number> | null> {
4
+ export default class BufferNode extends UniformNode<unknown> {
6
5
  isBufferNode: true;
7
6
 
8
7
  bufferType: string;
9
8
  bufferCount: number;
10
9
 
11
- constructor(value: ArrayLike<number> | null, bufferType: NodeTypeOption, bufferCount?: number);
10
+ constructor(value: unknown, bufferType: string, bufferCount?: number);
12
11
  }
13
12
 
14
13
  export const buffer: (
15
- value: ArrayLike<number> | null,
14
+ value: unknown,
16
15
  nodeOrType: NodeOrType,
17
16
  count: number,
18
17
  ) => ShaderNodeObject<BufferNode>;
@@ -1,22 +1,13 @@
1
+ import { Matrix3, Matrix4, Vector3 } from "three";
2
+ import UniformNode from "../core/UniformNode.js";
1
3
  import { ShaderNodeObject } from "../shadernode/ShaderNode.js";
2
- import Object3DNode from "./Object3DNode.js";
3
4
 
4
- export default class CameraNode extends Object3DNode {
5
- constructor(scope?: string);
6
-
7
- static PROJECTION_MATRIX: "projectionMatrix";
8
- static PROJECTION_MATRIX_INVERSE: "projectionMatrixInverse";
9
- static NEAR: "near";
10
- static FAR: "far";
11
- static LOG_DEPTH: "logDepth";
12
- }
13
-
14
- export const cameraProjectionMatrix: ShaderNodeObject<CameraNode>;
15
- export const cameraProjectionMatrixInverse: ShaderNodeObject<CameraNode>;
16
- export const cameraNear: ShaderNodeObject<CameraNode>;
17
- export const cameraFar: ShaderNodeObject<CameraNode>;
18
- export const cameraLogDepth: ShaderNodeObject<CameraNode>;
19
- export const cameraViewMatrix: ShaderNodeObject<CameraNode>;
20
- export const cameraNormalMatrix: ShaderNodeObject<CameraNode>;
21
- export const cameraWorldMatrix: ShaderNodeObject<CameraNode>;
22
- export const cameraPosition: ShaderNodeObject<CameraNode>;
5
+ export const cameraNear: ShaderNodeObject<UniformNode<number>>;
6
+ export const cameraFar: ShaderNodeObject<UniformNode<number>>;
7
+ export const cameraLogDepth: ShaderNodeObject<UniformNode<number>>;
8
+ export const cameraProjectionMatrix: ShaderNodeObject<UniformNode<Matrix4>>;
9
+ export const cameraProjectionMatrixInverse: ShaderNodeObject<UniformNode<Matrix4>>;
10
+ export const cameraViewMatrix: ShaderNodeObject<UniformNode<Matrix4>>;
11
+ export const cameraWorldMatrix: ShaderNodeObject<UniformNode<Matrix4>>;
12
+ export const cameraNormalMatrix: ShaderNodeObject<UniformNode<Matrix3>>;
13
+ export const cameraPosition: ShaderNodeObject<UniformNode<Vector3>>;
@@ -8,7 +8,7 @@ export default class CubeTextureNode extends TextureNode {
8
8
  uvNode: ShaderNodeObject<Node> | null;
9
9
  levelNode: ShaderNodeObject<Node> | null;
10
10
 
11
- constructor(value: CubeTexture, uvNode?: Node | null, levelNode?: Node | null);
11
+ constructor(value: CubeTexture, uvNode?: ShaderNodeObject<Node> | null, levelNode?: ShaderNodeObject<Node> | null);
12
12
 
13
13
  getDefaultUV(): Node;
14
14
  }
@@ -37,7 +37,8 @@ export type MaterialNodeScope =
37
37
  | typeof MaterialNode.LINE_GAP_SIZE
38
38
  | typeof MaterialNode.LINE_WIDTH
39
39
  | typeof MaterialNode.LINE_DASH_OFFSET
40
- | typeof MaterialNode.POINT_WIDTH;
40
+ | typeof MaterialNode.POINT_WIDTH
41
+ | typeof MaterialNode.DISPERSION;
41
42
 
42
43
  export default class MaterialNode extends Node {
43
44
  static ALPHA_TEST: "alphaTest";
@@ -74,6 +75,7 @@ export default class MaterialNode extends Node {
74
75
  static LINE_WIDTH: "linewidth";
75
76
  static LINE_DASH_OFFSET: "dashOffset";
76
77
  static POINT_WIDTH: "pointWidth";
78
+ static DISPERSION: "dispersion";
77
79
 
78
80
  scope: MaterialNodeScope;
79
81
  constructor(scope?: MaterialNodeScope);
@@ -115,4 +117,5 @@ export const materialLineGapSize: ShaderNodeObject<MaterialNode>;
115
117
  export const materialLineWidth: ShaderNodeObject<MaterialNode>;
116
118
  export const materialLineDashOffset: ShaderNodeObject<MaterialNode>;
117
119
  export const materialPointWidth: ShaderNodeObject<MaterialNode>;
120
+ export const materialDispersion: ShaderNodeObject<MaterialNode>;
118
121
  export const materialAnisotropyVector: ShaderNodeObject<UniformNode<Vector2>>;
@@ -1,3 +1,5 @@
1
+ import { Matrix4 } from "three/src/Three.js";
2
+ import { UniformNode } from "../Nodes.js";
1
3
  import { ShaderNodeObject } from "../shadernode/ShaderNode.js";
2
4
  import Object3DNode from "./Object3DNode.js";
3
5
 
@@ -15,3 +17,4 @@ export const modelWorldMatrix: ShaderNodeObject<ModelNode>;
15
17
  export const modelPosition: ShaderNodeObject<ModelNode>;
16
18
  export const modelScale: ShaderNodeObject<ModelNode>;
17
19
  export const modelViewPosition: ShaderNodeObject<ModelNode>;
20
+ export const modelWorldMatrixInverse: ShaderNodeObject<UniformNode<Matrix4>>;
@@ -1,9 +1,8 @@
1
1
  import Node from "../core/Node.js";
2
2
  import { NodeRepresentation, ShaderNodeObject } from "../shadernode/ShaderNode.js";
3
- import PositionNode from "./PositionNode.js";
4
3
 
5
4
  export default class ModelViewProjectionNode extends Node {
6
- constructor(positionNode?: PositionNode);
5
+ constructor(positionNode?: Node);
7
6
  }
8
7
 
9
8
  export const modelViewProjection: (position?: NodeRepresentation) => ShaderNodeObject<ModelViewProjectionNode>;
@@ -1,20 +1,12 @@
1
- import Node from "../core/Node.js";
1
+ import AttributeNode from "../core/AttributeNode.js";
2
+ import PropertyNode from "../core/PropertyNode.js";
2
3
  import VarNode from "../core/VarNode.js";
4
+ import MathNode from "../math/MathNode.js";
3
5
  import { ShaderNodeObject } from "../shadernode/ShaderNode.js";
4
6
 
5
- export type NormalNodeScope = typeof NormalNode.GEOMETRY | typeof NormalNode.LOCAL | typeof NormalNode.VIEW;
6
-
7
- export default class NormalNode extends Node {
8
- static GEOMETRY: "geometry";
9
- static LOCAL: "local";
10
- static VIEW: "view";
11
- scope: NormalNodeScope;
12
-
13
- constructor(scope?: NormalNodeScope);
14
- }
15
-
16
- export const normalGeometry: ShaderNodeObject<NormalNode>;
17
- export const normalLocal: ShaderNodeObject<NormalNode>;
18
- export const normalView: ShaderNodeObject<NormalNode>;
19
- export const normalWorld: ShaderNodeObject<NormalNode>;
20
- export const transformedNormalView: ShaderNodeObject<VarNode>;
7
+ export const normalGeometry: ShaderNodeObject<AttributeNode>;
8
+ export const normalLocal: ShaderNodeObject<VarNode>;
9
+ export const normalView: ShaderNodeObject<MathNode>;
10
+ export const normalWorld: ShaderNodeObject<MathNode>;
11
+ export const transformedNormalView: ShaderNodeObject<PropertyNode>;
12
+ export const transformedClearcoatNormalView: ShaderNodeObject<PropertyNode>;
@@ -1,29 +1,9 @@
1
1
  import Node from "../core/Node.js";
2
2
  import { ShaderNodeObject } from "../shadernode/ShaderNode.js";
3
3
 
4
- export type PositionNodeScope =
5
- | typeof PositionNode.GEOMETRY
6
- | typeof PositionNode.LOCAL
7
- | typeof PositionNode.WORLD
8
- | typeof PositionNode.WORLD_DIRECTION
9
- | typeof PositionNode.VIEW
10
- | typeof PositionNode.VIEW_DIRECTION;
11
-
12
- export default class PositionNode extends Node {
13
- static GEOMETRY: "geometry";
14
- static LOCAL: "local";
15
- static WORLD: "world";
16
- static WORLD_DIRECTION: "worldDirection";
17
- static VIEW: "view";
18
- static VIEW_DIRECTION: "viewDirection";
19
- scope: PositionNodeScope;
20
-
21
- constructor(scope?: PositionNodeScope);
22
- }
23
-
24
- export const positionGeometry: ShaderNodeObject<PositionNode>;
25
- export const positionLocal: ShaderNodeObject<PositionNode>;
26
- export const positionWorld: ShaderNodeObject<PositionNode>;
27
- export const positionWorldDirection: ShaderNodeObject<PositionNode>;
28
- export const positionView: ShaderNodeObject<PositionNode>;
29
- export const positionViewDirection: ShaderNodeObject<PositionNode>;
4
+ export const positionGeometry: ShaderNodeObject<Node>;
5
+ export const positionLocal: ShaderNodeObject<Node>;
6
+ export const positionWorld: ShaderNodeObject<Node>;
7
+ export const positionWorldDirection: ShaderNodeObject<Node>;
8
+ export const positionView: ShaderNodeObject<Node>;
9
+ export const positionViewDirection: ShaderNodeObject<Node>;
@@ -1,11 +1,10 @@
1
- import { NodeTypeOption } from "../core/constants.js";
2
1
  import Node from "../core/Node.js";
3
2
  import { NodeOrType, NodeRepresentation, ShaderNodeObject } from "../shadernode/ShaderNode.js";
4
3
 
5
4
  export default class ReferenceNode<T> extends Node {
6
5
  property: string;
7
6
 
8
- uniformType: NodeTypeOption;
7
+ uniformType: string;
9
8
 
10
9
  object: T;
11
10
  count: number | null;
@@ -14,9 +13,9 @@ export default class ReferenceNode<T> extends Node {
14
13
  reference: T | null;
15
14
  node: Node | null;
16
15
 
17
- constructor(property: string, uniformType: NodeTypeOption, object?: T | null, count?: number | null);
16
+ constructor(property: string, uniformType: string, object?: T | null, count?: number | null);
18
17
 
19
- setNodeType(uniformType: NodeTypeOption): void;
18
+ setNodeType(uniformType: string): void;
20
19
  }
21
20
 
22
21
  export const reference: <T>(name: string, nodeOrType: NodeOrType, object: T) => ShaderNodeObject<ReferenceNode<T>>;
@@ -1,11 +1,6 @@
1
1
  import Node from "../core/Node.js";
2
+ import VarNode from "../core/VarNode.js";
2
3
  import { ShaderNodeObject } from "../shadernode/ShaderNode.js";
3
4
 
4
- export default class ReflectVectorNode extends Node {
5
- constructor();
6
-
7
- getHash(): "reflectVector";
8
- setup(): Node;
9
- }
10
-
11
- export const reflectVector: ShaderNodeObject<ReflectVectorNode>;
5
+ export const reflectView: ShaderNodeObject<Node>;
6
+ export const reflectVector: ShaderNodeObject<VarNode>;
@@ -1,16 +1,15 @@
1
1
  import Renderer from "../../renderers/common/Renderer.js";
2
- import { NodeTypeOption } from "../core/constants.js";
3
2
  import { ShaderNodeObject } from "../shadernode/ShaderNode.js";
4
3
  import ReferenceNode from "./ReferenceNode.js";
5
4
 
6
5
  export default class RendererReferenceNode extends ReferenceNode<Renderer> {
7
6
  renderer: Renderer | null;
8
7
 
9
- constructor(property: string, inputType: NodeTypeOption, renderer?: Renderer | null);
8
+ constructor(property: string, inputType: string, renderer?: Renderer | null);
10
9
  }
11
10
 
12
11
  export const rendererReference: (
13
12
  name: string,
14
- type: NodeTypeOption,
13
+ type: string,
15
14
  renderer?: Renderer | null,
16
15
  ) => ShaderNodeObject<RendererReferenceNode>;
@@ -1,4 +1,5 @@
1
- import { NodeTypeOption } from "../core/constants.js";
1
+ import StorageBufferAttribute from "../../renderers/common/StorageBufferAttribute.js";
2
+ import StorageInstancedBufferAttribute from "../../renderers/common/StorageInstancedBufferAttribute.js";
2
3
  import { NodeOrType, NodeRepresentation, ShaderNodeObject } from "../shadernode/ShaderNode.js";
3
4
  import StorageArrayElementNode from "../utils/StoargeArrayElementNode.js";
4
5
  import BufferNode from "./BufferNode.js";
@@ -7,7 +8,11 @@ export default class StorageBufferNode extends BufferNode {
7
8
  readonly isStorageBufferNode: true;
8
9
  bufferObject: boolean;
9
10
 
10
- constructor(value: ArrayLike<number>, bufferType: NodeTypeOption, bufferCount?: number);
11
+ constructor(
12
+ value: StorageBufferAttribute | StorageInstancedBufferAttribute,
13
+ bufferType: string,
14
+ bufferCount?: number,
15
+ );
11
16
 
12
17
  element(indexNode: NodeRepresentation): ShaderNodeObject<StorageArrayElementNode>;
13
18
 
@@ -15,12 +20,12 @@ export default class StorageBufferNode extends BufferNode {
15
20
  }
16
21
 
17
22
  export const storage: (
18
- value: ArrayLike<number>,
23
+ value: StorageBufferAttribute | StorageInstancedBufferAttribute,
19
24
  nodeOrType: NodeOrType,
20
25
  count: number,
21
26
  ) => ShaderNodeObject<StorageBufferNode>;
22
27
  export const storageObject: (
23
- value: ArrayLike<number>,
28
+ value: StorageBufferAttribute | StorageInstancedBufferAttribute,
24
29
  nodeOrType: NodeOrType,
25
30
  count: number,
26
31
  ) => ShaderNodeObject<StorageBufferNode>;