@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
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, 28 Jun 2024 21:35:38 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
 
@@ -82,6 +82,12 @@ export class GLTFExporter {
82
82
  options?: GLTFExporterOptions,
83
83
  ): void;
84
84
 
85
+ /**
86
+ * Generates a .gltf (JSON) or .glb (binary) output from the input (Scenes or Objects).
87
+ *
88
+ * This is just like the {@link parse}() method, but instead of accepting callbacks it returns a promise that
89
+ * resolves with the result, and otherwise accepts the same options.
90
+ */
85
91
  parseAsync(
86
92
  input: Object3D | Object3D[],
87
93
  options?: GLTFExporterOptions,
@@ -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,6 +1,30 @@
1
1
  import { BufferGeometry } from "three";
2
2
 
3
+ /**
4
+ * {@link TeapotGeometry} tesselates the famous Utah teapot database by Martin Newell.
5
+ *
6
+ * {@link TeapotGeometry} is an add-on, and must be imported explicitly. See
7
+ * [Installation / Addons]{@link https://threejs.org/docs/#manual/en/introduction/Installation}.
8
+ *
9
+ * @example
10
+ * import { TeapotGeometry } from 'three/addons/geometries/TeapotGeometry.js';
11
+ *
12
+ * const geometry = new TeapotGeometry( 50, 18 );
13
+ * const material = new THREE.MeshBasicMaterial( { color: 0x00ff00 } );
14
+ * const teapot = new THREE.Mesh( geometry, material );
15
+ * scene.add( teapot );
16
+ */
3
17
  export class TeapotGeometry extends BufferGeometry {
18
+ /**
19
+ * @param size Relative scale of the teapot. Optional; Defaults to `50`.
20
+ * @param segments Number of line segments to subdivide each patch edge. Optional; Defaults to `10`.
21
+ * @param bottom Whether the bottom of the teapot is generated or not. Optional; Defaults to `true`.
22
+ * @param lid Whether the lid is generated or not. Optional; Defaults to `true`.
23
+ * @param body Whether the body is generated or not. Optional; Defaults to `true`.
24
+ * @param fitLid Whether the lid is slightly stretched to prevent gaps between the body and lid or not. Optional;
25
+ * Defaults to `true`.
26
+ * @param blinn Whether the teapot is scaled vertically for better aesthetics or not. Optional; Defaults to `true`.
27
+ */
4
28
  constructor(
5
29
  size?: number,
6
30
  segments?: number,
@@ -1,15 +1,17 @@
1
1
  import { Camera, Object3D, Vector3, WebGLRenderer } from "three";
2
2
 
3
3
  export class ViewHelper extends Object3D {
4
+ readonly isViewHelper: true;
5
+
4
6
  animating: boolean;
5
7
  center: Vector3;
6
8
 
7
- readonly isViewHelper: true;
9
+ render: (renderer: WebGLRenderer) => void;
10
+ handleClick: (event: MouseEvent) => boolean;
11
+ setLabels: (labelX?: string, labelY?: string, labelZ?: string) => void;
12
+ setLabelStyle: (font?: string, color?: string, radius?: number) => void;
13
+ update: (delta: number) => void;
14
+ dispose: () => void;
8
15
 
9
16
  constructor(camera: Camera, domElement: HTMLElement);
10
-
11
- render(renderer: WebGLRenderer): void;
12
- handleClick(event: MouseEvent): boolean;
13
- update(delta: number): void;
14
- dispose(): void;
15
17
  }
@@ -1,6 +1,6 @@
1
- import { Color, ColorRepresentation, MaterialParameters, ShaderMaterial, Vector2 } from "three";
1
+ import { Color, ColorRepresentation, ShaderMaterial, ShaderMaterialParameters, Vector2 } from "three";
2
2
 
3
- export interface LineMaterialParameters extends MaterialParameters {
3
+ export interface LineMaterialParameters extends ShaderMaterialParameters {
4
4
  alphaToCoverage?: boolean | undefined;
5
5
  color?: ColorRepresentation | undefined;
6
6
  dashed?: boolean | undefined;
@@ -8,9 +8,7 @@ export interface LineMaterialParameters extends MaterialParameters {
8
8
  dashSize?: number | undefined;
9
9
  dashOffset?: number | undefined;
10
10
  gapSize?: number | undefined;
11
- linewidth?: number | undefined;
12
11
  resolution?: Vector2 | undefined;
13
- wireframe?: boolean | undefined;
14
12
  worldUnits?: boolean | undefined;
15
13
  }
16
14
 
@@ -1,7 +1,13 @@
1
- import { CompressedPixelFormat, CompressedTextureLoader, LoadingManager, PixelFormat } from "three";
1
+ import {
2
+ CompressedPixelFormat,
3
+ CompressedTextureLoader,
4
+ CompressedTextureMipmap,
5
+ LoadingManager,
6
+ PixelFormat,
7
+ } from "three";
2
8
 
3
9
  export interface DDS {
4
- mipmaps: object[];
10
+ mipmaps: CompressedTextureMipmap[];
5
11
  width: number;
6
12
  height: number;
7
13
  format: PixelFormat | CompressedPixelFormat;
@@ -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;
@@ -3,6 +3,7 @@ import {
3
3
  BufferAttribute,
4
4
  BufferGeometry,
5
5
  Camera,
6
+ ColorSpace,
6
7
  FileLoader,
7
8
  Group,
8
9
  ImageBitmapLoader,
@@ -19,6 +20,7 @@ import {
19
20
  TextureLoader,
20
21
  } from "three";
21
22
 
23
+ import { MeshoptDecoder } from "../libs/meshopt_decoder.module.js";
22
24
  import { DRACOLoader } from "./DRACOLoader.js";
23
25
  import { KTX2Loader } from "./KTX2Loader.js";
24
26
 
@@ -40,16 +42,18 @@ export interface GLTF {
40
42
  }
41
43
 
42
44
  export class GLTFLoader extends Loader<GLTF> {
43
- constructor(manager?: LoadingManager);
44
45
  dracoLoader: DRACOLoader | null;
46
+ ktx2Loader: KTX2Loader | null;
47
+ meshoptDecoder: typeof MeshoptDecoder | null;
45
48
 
46
- setDRACOLoader(dracoLoader: DRACOLoader): GLTFLoader;
49
+ constructor(manager?: LoadingManager);
47
50
 
48
- register(callback: (parser: GLTFParser) => GLTFLoaderPlugin): GLTFLoader;
49
- unregister(callback: (parser: GLTFParser) => GLTFLoaderPlugin): GLTFLoader;
51
+ setDRACOLoader(dracoLoader: DRACOLoader): this;
52
+ setKTX2Loader(ktx2Loader: KTX2Loader | null): this;
53
+ setMeshoptDecoder(meshoptDecoder: typeof MeshoptDecoder | null): this;
50
54
 
51
- setKTX2Loader(ktx2Loader: KTX2Loader): GLTFLoader;
52
- setMeshoptDecoder(meshoptDecoder: /* MeshoptDecoder */ any): GLTFLoader;
55
+ register(callback: (parser: GLTFParser) => GLTFLoaderPlugin): this;
56
+ unregister(callback: (parser: GLTFParser) => GLTFLoaderPlugin): this;
53
57
 
54
58
  parse(
55
59
  data: ArrayBuffer | string,
@@ -109,7 +113,8 @@ export class GLTFParser {
109
113
  texCoord?: number | undefined;
110
114
  extensions?: any;
111
115
  },
112
- ) => Promise<void>;
116
+ colorSpace?: ColorSpace | undefined,
117
+ ) => Promise<Texture | null>;
113
118
  assignFinalMaterial: (object: Mesh) => void;
114
119
  getMaterialType: () => typeof MeshStandardMaterial;
115
120
  loadMaterial: (materialIndex: number) => Promise<Material>;
@@ -1,7 +1,13 @@
1
- import { CompressedPixelFormat, CompressedTextureLoader, LoadingManager, PixelFormat } from "three";
1
+ import {
2
+ CompressedPixelFormat,
3
+ CompressedTextureLoader,
4
+ CompressedTextureMipmap,
5
+ LoadingManager,
6
+ PixelFormat,
7
+ } from "three";
2
8
 
3
9
  export interface KTX {
4
- mipmaps: object[];
10
+ mipmaps: CompressedTextureMipmap[];
5
11
  width: number;
6
12
  height: number;
7
13
  format: PixelFormat | CompressedPixelFormat;
@@ -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,7 +1,7 @@
1
- import { CompressedPixelFormat, CompressedTextureLoader, LoadingManager } from "three";
1
+ import { CompressedPixelFormat, CompressedTextureLoader, CompressedTextureMipmap, LoadingManager } from "three";
2
2
 
3
3
  export interface PVR {
4
- mipmaps: object[];
4
+ mipmaps: CompressedTextureMipmap[];
5
5
  width: number;
6
6
  height: number;
7
7
  format: CompressedPixelFormat;
@@ -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
  }
@@ -127,6 +127,7 @@ export {
127
127
  step,
128
128
  tan,
129
129
  transformDirection,
130
+ transpose,
130
131
  trunc,
131
132
  } from "./math/MathNode.js";
132
133
 
@@ -164,7 +165,7 @@ export { triNoise3D } from "./math/TriNoise3D.js";
164
165
  // utils
165
166
  export { default as ArrayElementNode } from "./utils/ArrayElementNode.js";
166
167
  export { default as ConvertNode } from "./utils/ConvertNode.js";
167
- export { default as DiscardNode, discard } from "./utils/DiscardNode.js";
168
+ export { default as DiscardNode, discard, Return } from "./utils/DiscardNode.js";
168
169
  export { default as EquirectUVNode, equirectUV } from "./utils/EquirectUVNode.js";
169
170
  export { default as JoinNode } from "./utils/JoinNode.js";
170
171
  export { default as MatcapUVNode, matcapUV } from "./utils/MatcapUVNode.js";
@@ -197,29 +198,9 @@ export * from "./shadernode/ShaderNode.js";
197
198
  // accessors
198
199
  export { parallaxDirection, parallaxUV, TBNViewMatrix, transformedBentNormalView } from "./accessors/AccessorsUtils.js";
199
200
  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";
201
+ export * from "./accessors/BitangentNode.js";
210
202
  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";
203
+ export * from "./accessors/CameraNode.js";
223
204
  export { cubeTexture, default as CubeTextureNode } from "./accessors/CubeTextureNode.js";
224
205
  export { default as InstanceNode, instance } from "./accessors/InstanceNode.js";
225
206
  export {
@@ -231,6 +212,7 @@ export {
231
212
  materialClearcoatNormal,
232
213
  materialClearcoatRoughness,
233
214
  materialColor,
215
+ materialDispersion,
234
216
  materialEmissive,
235
217
  materialIridescence,
236
218
  materialIridescenceIOR,
@@ -264,17 +246,10 @@ export {
264
246
  modelViewMatrix,
265
247
  modelViewPosition,
266
248
  modelWorldMatrix,
249
+ modelWorldMatrixInverse,
267
250
  } from "./accessors/ModelNode.js";
268
251
  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";
252
+ export * from "./accessors/NormalNode.js";
278
253
  export {
279
254
  default as Object3DNode,
280
255
  objectDirection,
@@ -286,36 +261,20 @@ export {
286
261
  objectWorldMatrix,
287
262
  } from "./accessors/Object3DNode.js";
288
263
  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";
264
+ export * from "./accessors/PositionNode.js";
299
265
  export { default as ReferenceNode, reference, referenceBuffer } from "./accessors/ReferenceNode.js";
300
- export { default as ReflectVectorNode, reflectVector } from "./accessors/ReflectVectorNode.js";
266
+ export * from "./accessors/ReflectVectorNode.js";
301
267
  export { default as RendererReferenceNode, rendererReference } from "./accessors/RendererReferenceNode.js";
302
268
  export { default as SkinningNode, skinning } from "./accessors/SkinningNode.js";
303
269
  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";
270
+ export { default as StorageTextureNode, storageTexture, textureStore } from "./accessors/StorageTextureNode.js";
271
+ export * from "./accessors/TangentNode.js";
272
+ export { default as Texture3DNode, texture3D } from "./accessors/Texture3DNode.js";
314
273
  export { default as TextureBicubicNode, textureBicubic } from "./accessors/TextureBicubicNode.js";
315
274
  export { default as TextureNode, sampler, texture } from "./accessors/TextureNode.js";
316
275
  export { default as UniformsNode, uniforms } from "./accessors/UniformsNode.js";
317
276
  export { default as UserDataNode, userData } from "./accessors/UserDataNode.js";
318
- export { default as UVNode, uv } from "./accessors/UVNode.js";
277
+ export * from "./accessors/UVNode.js";
319
278
  export { default as VertexColorNode, vertexColor } from "./accessors/VertexColorNode.js";
320
279
 
321
280
  // display
@@ -340,19 +299,23 @@ export {
340
299
  linearTosRGB,
341
300
  sRGBToLinear,
342
301
  } from "./display/ColorSpaceNode.js";
302
+ export { default as DepthOfFieldNode, dof } from "./display/DepthOfFieldNode.js";
303
+ export { default as DotScreenNode, dotScreen } from "./display/DotScreenNode.js";
343
304
  export { default as FrontFacingNode, faceDirection, frontFacing } from "./display/FrontFacingNode.js";
344
305
  export { default as GaussianBlurNode, gaussianBlur } from "./display/GaussianBlurNode.js";
345
306
  export { default as NormalMapNode, normalMap } from "./display/NormalMapNode.js";
346
307
  export { default as PosterizeNode, posterize } from "./display/PosterizeNode.js";
308
+ export { default as RGBShiftNode, rgbShift } from "./display/RGBShiftNode.js";
309
+ export { default as SobelOperatorNode, sobel } from "./display/SobelOperatorNode.js";
347
310
  export { default as ToneMappingNode, toneMapping } from "./display/ToneMappingNode.js";
348
311
  export {
349
312
  default as ViewportDepthNode,
350
313
  depth,
351
- depthPixel,
352
- depthTexture,
314
+ linearDepth,
353
315
  orthographicDepthToViewZ,
354
316
  perspectiveDepthToViewZ,
355
317
  ViewportDepthNodeScope,
318
+ viewportLinearDepth,
356
319
  viewZToOrthographicDepth,
357
320
  viewZToPerspectiveDepth,
358
321
  } from "./display/ViewportDepthNode.js";
@@ -369,7 +332,7 @@ export {
369
332
  export { default as ViewportSharedTextureNode, viewportSharedTexture } from "./display/ViewportSharedTextureNode.js";
370
333
  export { default as ViewportTextureNode, viewportMipTexture, viewportTexture } from "./display/ViewportTextureNode.js";
371
334
 
372
- export { default as PassNode, depthPass, pass, PassNodeScope } from "./display/PassNode.js";
335
+ export { default as PassNode, depthPass, pass, PassNodeScope, texturePass } from "./display/PassNode.js";
373
336
 
374
337
  // code
375
338
  export { code, CodeNodeInclude, default as CodeNode, glsl, js, wgsl } from "./code/CodeNode.js";
@@ -398,6 +361,7 @@ export { default as LightingContextNode, lightingContext } from "./lighting/Ligh
398
361
  export { default as LightingNode } from "./lighting/LightingNode.js";
399
362
  export { default as LightsNode, lights } from "./lighting/LightsNode.js";
400
363
  export { default as PointLightNode } from "./lighting/PointLightNode.js";
364
+ export { default as RectAreaLightNode } from "./lighting/RectAreaLightNode.js";
401
365
  export { default as SpotLightNode } from "./lighting/SpotLightNode.js";
402
366
 
403
367
  // pmrem
@@ -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,50 @@
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
+ getHash(builder: NodeBuilder): string;
19
+ getNodeType(builder: NodeBuilder): string | null;
20
+ setup(builder: NodeBuilder): void;
21
+ generate(builder: NodeBuilder): string | null | undefined;
22
+ getInputType(): string;
23
+ setUsage(value: Usage): this;
24
+ setInstanced(value: boolean): this;
25
+ }
26
+ export default BufferAttributeNode;
27
+ export declare const bufferAttribute: (
28
+ array: TypedArray | InterleavedBuffer | BufferAttribute,
29
+ type?: string | null,
30
+ stride?: number,
31
+ offset?: number,
32
+ ) => import("../shadernode/ShaderNode.js").ShaderNodeObject<BufferAttributeNode>;
33
+ export declare const dynamicBufferAttribute: (
34
+ array: TypedArray | InterleavedBuffer | BufferAttribute,
35
+ type?: string | null,
36
+ stride?: number,
37
+ offset?: number,
38
+ ) => import("../shadernode/ShaderNode.js").ShaderNodeObject<BufferAttributeNode>;
39
+ export declare const instancedBufferAttribute: (
40
+ array: TypedArray | InterleavedBuffer | BufferAttribute,
41
+ type?: string | null,
42
+ stride?: number,
43
+ offset?: number,
44
+ ) => import("../shadernode/ShaderNode.js").ShaderNodeObject<BufferAttributeNode>;
45
+ export declare const instancedDynamicBufferAttribute: (
46
+ array: TypedArray | InterleavedBuffer | BufferAttribute,
47
+ type?: string | null,
48
+ stride?: number,
49
+ offset?: number,
50
+ ) => 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>>;