@types/three 0.183.1 → 0.184.1

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 (121) hide show
  1. three/README.md +2 -2
  2. three/examples/jsm/Addons.d.ts +11 -0
  3. three/examples/jsm/controls/FirstPersonControls.d.ts +5 -10
  4. three/examples/jsm/controls/TransformControls.d.ts +24 -0
  5. three/examples/jsm/geometries/TextGeometry.d.ts +43 -71
  6. three/examples/jsm/helpers/LightProbeGridHelper.d.ts +12 -0
  7. three/examples/jsm/inspector/Extension.d.ts +9 -0
  8. three/examples/jsm/inspector/Inspector.d.ts +21 -2
  9. three/examples/jsm/inspector/RendererInspector.d.ts +7 -2
  10. three/examples/jsm/inspector/extensions/tsl-graph/TSLGraphEditor.d.ts +20 -0
  11. three/examples/jsm/inspector/extensions/tsl-graph/TSLGraphLoader.d.ts +11 -0
  12. three/examples/jsm/inspector/tabs/Parameters.d.ts +22 -1
  13. three/examples/jsm/inspector/ui/Tab.d.ts +5 -1
  14. three/examples/jsm/inspector/ui/Values.d.ts +23 -3
  15. three/examples/jsm/interaction/InteractionManager.d.ts +18 -0
  16. three/examples/jsm/lighting/DynamicLighting.d.ts +16 -0
  17. three/examples/jsm/lighting/LightProbeGrid.d.ts +34 -0
  18. three/examples/jsm/loaders/ColladaLoader.d.ts +1 -0
  19. three/examples/jsm/loaders/EXRLoader.d.ts +2 -0
  20. three/examples/jsm/loaders/LDrawLoader.d.ts +1 -1
  21. three/examples/jsm/loaders/VTKLoader.d.ts +6 -0
  22. three/examples/jsm/objects/Reflector.d.ts +1 -2
  23. three/examples/jsm/objects/SkyMesh.d.ts +1 -0
  24. three/examples/jsm/tsl/WebGLNodesHandler.d.ts +14 -0
  25. three/examples/jsm/tsl/display/FSR1Node.d.ts +17 -0
  26. three/examples/jsm/tsl/display/SharpenNode.d.ts +22 -0
  27. three/examples/jsm/tsl/display/TAAUNode.d.ts +31 -0
  28. three/examples/jsm/tsl/lighting/DynamicLightsNode.d.ts +21 -0
  29. three/examples/jsm/tsl/lighting/TiledLightsNode.d.ts +1 -1
  30. three/examples/jsm/tsl/lighting/data/AmbientLightDataNode.d.ts +9 -0
  31. three/examples/jsm/tsl/lighting/data/DirectionalLightDataNode.d.ts +9 -0
  32. three/examples/jsm/tsl/lighting/data/HemisphereLightDataNode.d.ts +9 -0
  33. three/examples/jsm/tsl/lighting/data/PointLightDataNode.d.ts +9 -0
  34. three/examples/jsm/tsl/lighting/data/SpotLightDataNode.d.ts +9 -0
  35. three/examples/jsm/utils/ColorUtils.d.ts +5 -0
  36. three/examples/jsm/utils/SceneOptimizer.d.ts +18 -0
  37. three/examples/jsm/webxr/XRHandMeshModel.d.ts +1 -0
  38. three/package.json +4 -5
  39. three/src/Three.Core.d.ts +13 -1
  40. three/src/Three.TSL.d.ts +7 -1
  41. three/src/Three.WebGPU.Nodes.d.ts +8 -4
  42. three/src/Three.WebGPU.d.ts +11 -4
  43. three/src/Three.d.ts +0 -11
  44. three/src/animation/AnimationMixer.d.ts +3 -1
  45. three/src/audio/AudioContext.d.ts +2 -2
  46. three/src/core/BufferAttribute.d.ts +13 -1
  47. three/src/core/RenderTarget.d.ts +8 -1
  48. three/src/core/UniformsGroup.d.ts +7 -1
  49. three/src/extras/Controls.d.ts +5 -1
  50. three/src/geometries/ExtrudeGeometry.d.ts +39 -53
  51. three/src/loaders/FileLoader.d.ts +2 -2
  52. three/src/materials/Material.d.ts +5 -1
  53. three/src/materials/MeshToonMaterial.d.ts +1 -1
  54. three/src/materials/nodes/Line2NodeMaterial.d.ts +7 -0
  55. three/src/materials/nodes/VolumeNodeMaterial.d.ts +1 -1
  56. three/src/materials/nodes/manager/NodeMaterialObserver.d.ts +11 -1
  57. three/src/math/ColorManagement.d.ts +1 -1
  58. three/src/math/Plane.d.ts +1 -1
  59. three/src/nodes/Nodes.d.ts +0 -1
  60. three/src/nodes/TSL.d.ts +1 -1
  61. three/src/nodes/accessors/BufferAttributeNode.d.ts +1 -1
  62. three/src/nodes/core/Node.d.ts +37 -9
  63. three/src/nodes/core/StackNode.d.ts +1 -1
  64. three/src/nodes/core/StructTypeNode.d.ts +0 -4
  65. three/src/nodes/core/UniformGroupNode.d.ts +4 -3
  66. three/src/nodes/core/UniformNode.d.ts +3 -0
  67. three/src/nodes/core/VarNode.d.ts +16 -10
  68. three/src/nodes/display/ViewportDepthTextureNode.d.ts +1 -3
  69. three/src/nodes/display/ViewportTextureNode.d.ts +5 -5
  70. three/src/nodes/functions/ShadowMaskModel.d.ts +2 -2
  71. three/src/nodes/gpgpu/BarrierNode.d.ts +2 -0
  72. three/src/nodes/gpgpu/ComputeBuiltinNode.d.ts +16 -7
  73. three/src/nodes/gpgpu/ComputeNode.d.ts +6 -2
  74. three/src/nodes/materialx/lib/mx_noise.d.ts +4 -5
  75. three/src/nodes/math/MathNode.d.ts +64 -6
  76. three/src/nodes/tsl/TSLBase.d.ts +1 -1
  77. three/src/nodes/tsl/TSLCore.d.ts +568 -160
  78. three/src/nodes/utils/ConvertNode.d.ts +9 -2
  79. three/src/nodes/utils/EventNode.d.ts +6 -0
  80. three/src/nodes/utils/JoinNode.d.ts +9 -5
  81. three/src/nodes/utils/LoopNode.d.ts +1 -2
  82. three/src/nodes/utils/{RemapNode.d.ts → Remap.d.ts} +6 -22
  83. three/src/objects/BatchedMesh.d.ts +2 -0
  84. three/src/objects/InstancedMesh.d.ts +6 -6
  85. three/src/objects/SkinnedMesh.d.ts +3 -0
  86. three/src/renderers/WebGLRenderer.d.ts +10 -1
  87. three/src/renderers/common/Animation.d.ts +2 -2
  88. three/src/renderers/common/Attributes.d.ts +9 -1
  89. three/src/renderers/common/Backend.d.ts +4 -0
  90. three/src/renderers/common/Background.d.ts +2 -2
  91. three/src/renderers/common/BindGroup.d.ts +0 -6
  92. three/src/renderers/common/Bindings.d.ts +2 -2
  93. three/src/renderers/common/CanvasTarget.d.ts +3 -1
  94. three/src/renderers/common/ComputePipeline.d.ts +1 -1
  95. three/src/renderers/common/Info.d.ts +132 -1
  96. three/src/renderers/common/InspectorBase.d.ts +7 -1
  97. three/src/renderers/common/Pipelines.d.ts +19 -3
  98. three/src/renderers/common/ReadbackBuffer.d.ts +63 -0
  99. three/src/renderers/common/RenderBundle.d.ts +4 -1
  100. three/src/renderers/common/RenderBundles.d.ts +3 -1
  101. three/src/renderers/common/RenderObject.d.ts +2 -2
  102. three/src/renderers/common/RenderObjects.d.ts +3 -3
  103. three/src/renderers/common/Renderer.d.ts +29 -16
  104. three/src/renderers/common/XRManager.d.ts +1 -7
  105. three/src/renderers/common/nodes/NodeManager.d.ts +51 -11
  106. three/src/renderers/shaders/ShaderChunk.d.ts +1 -0
  107. three/src/renderers/shaders/UniformsLib.d.ts +5 -1
  108. three/src/renderers/webgl/WebGLBufferRenderer.d.ts +0 -6
  109. three/src/renderers/webgl/WebGLIndexedBufferRenderer.d.ts +0 -6
  110. three/src/renderers/webgl/WebGLPrograms.d.ts +5 -0
  111. three/src/renderers/webgl-fallback/WebGLBackend.d.ts +2 -0
  112. three/src/renderers/webgl-fallback/nodes/GLSLNodeBuilder.d.ts +19 -0
  113. three/src/renderers/webgl-fallback/utils/WebGLCapabilities.d.ts +51 -0
  114. three/src/renderers/webgpu/WebGPUBackend.d.ts +9 -4
  115. three/src/renderers/webgpu/utils/WebGPUConstants.d.ts +6 -0
  116. three/src/renderers/webxr/WebXRController.d.ts +5 -1
  117. three/src/renderers/webxr/WebXRManager.d.ts +3 -1
  118. three/src/scenes/Scene.d.ts +2 -2
  119. three/src/textures/ExternalTexture.d.ts +3 -2
  120. three/src/textures/HTMLTexture.d.ts +27 -0
  121. three/src/textures/Texture.d.ts +16 -1
three/README.md CHANGED
@@ -8,8 +8,8 @@ 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: Fri, 20 Feb 2026 17:44:37 GMT
12
- * Dependencies: [@dimforge/rapier3d-compat](https://npmjs.com/package/@dimforge/rapier3d-compat), [@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), [@webgpu/types](https://npmjs.com/package/@webgpu/types), [fflate](https://npmjs.com/package/fflate), [meshoptimizer](https://npmjs.com/package/meshoptimizer)
11
+ * Last updated: Wed, 06 May 2026 23:46:00 GMT
12
+ * Dependencies: [@dimforge/rapier3d-compat](https://npmjs.com/package/@dimforge/rapier3d-compat), [@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
15
15
  These definitions were written by [Josh Ellis](https://github.com/joshuaellis), and [Nathan Bierema](https://github.com/Methuselah96).
@@ -30,6 +30,7 @@ export * from "./effects/OutlineEffect.js";
30
30
  export * from "./effects/ParallaxBarrierEffect.js";
31
31
  export * from "./effects/StereoEffect.js";
32
32
 
33
+ export * from "./environments/ColorEnvironment.js";
33
34
  export * from "./environments/DebugEnvironment.js";
34
35
  export * from "./environments/RoomEnvironment.js";
35
36
 
@@ -51,9 +52,11 @@ export * from "./geometries/RoundedBoxGeometry.js";
51
52
  export * from "./geometries/TeapotGeometry.js";
52
53
  export * from "./geometries/TextGeometry.js";
53
54
 
55
+ export * from "./helpers/AnimationPathHelper.js";
54
56
  export * from "./helpers/LightProbeHelper.js";
55
57
  export * from "./helpers/OctreeHelper.js";
56
58
  export * from "./helpers/PositionalAudioHelper.js";
59
+ export * from "./helpers/RapierHelper.js";
57
60
  export * from "./helpers/RectAreaLightHelper.js";
58
61
  export * from "./helpers/TextureHelper.js";
59
62
  export * from "./helpers/VertexNormalsHelper.js";
@@ -98,6 +101,7 @@ export * from "./loaders/LDrawLoader.js";
98
101
  export * from "./loaders/LottieLoader.js";
99
102
  export * from "./loaders/LUT3dlLoader.js";
100
103
  export * from "./loaders/LUTCubeLoader.js";
104
+ export * from "./loaders/LUTImageLoader.js";
101
105
  export * from "./loaders/LWOLoader.js";
102
106
  export * from "./loaders/MD2Loader.js";
103
107
  export * from "./loaders/MDDLoader.js";
@@ -126,6 +130,7 @@ export * from "./materials/LDrawConditionalLineMaterial.js";
126
130
 
127
131
  export * from "./math/Capsule.js";
128
132
  export * from "./math/ColorConverter.js";
133
+ export * as ColorSpaces from "./math/ColorSpaces.js";
129
134
  export * from "./math/ConvexHull.js";
130
135
  export * from "./math/ImprovedNoise.js";
131
136
  export * from "./math/Lut.js";
@@ -165,6 +170,7 @@ export { Water as Water2 } from "./objects/Water2.js";
165
170
  export type { WaterOptions as Water2Options } from "./objects/Water2.js";
166
171
 
167
172
  export * from "./physics/AmmoPhysics.js";
173
+ export * from "./physics/JoltPhysics.js";
168
174
  export * from "./physics/RapierPhysics.js";
169
175
 
170
176
  export * from "./postprocessing/AfterimagePass.js";
@@ -175,6 +181,7 @@ export * from "./postprocessing/CubeTexturePass.js";
175
181
  export * from "./postprocessing/DotScreenPass.js";
176
182
  export * from "./postprocessing/EffectComposer.js";
177
183
  export * from "./postprocessing/FilmPass.js";
184
+ export * from "./postprocessing/FXAAPass.js";
178
185
  export * from "./postprocessing/GlitchPass.js";
179
186
  export * from "./postprocessing/GTAOPass.js";
180
187
  export * from "./postprocessing/HalftonePass.js";
@@ -185,6 +192,7 @@ export * from "./postprocessing/OutputPass.js";
185
192
  export * from "./postprocessing/Pass.js";
186
193
  export * from "./postprocessing/RenderPass.js";
187
194
  export * from "./postprocessing/RenderPixelatedPass.js";
195
+ export * from "./postprocessing/RenderTransitionPass.js";
188
196
  export * from "./postprocessing/SAOPass.js";
189
197
  export * from "./postprocessing/SavePass.js";
190
198
  export * from "./postprocessing/ShaderPass.js";
@@ -234,6 +242,7 @@ export * from "./shaders/LuminosityShader.js";
234
242
  export * from "./shaders/MirrorShader.js";
235
243
  export * from "./shaders/NormalMapShader.js";
236
244
  export * from "./shaders/OutputShader.js";
245
+ export * from "./shaders/PoissonDenoiseShader.js";
237
246
  export * from "./shaders/RGBShiftShader.js";
238
247
  export * from "./shaders/SAOShader.js";
239
248
  export * from "./shaders/SepiaShader.js";
@@ -257,9 +266,11 @@ export * from "./textures/FlakesTexture.js";
257
266
 
258
267
  export * as BufferGeometryUtils from "./utils/BufferGeometryUtils.js";
259
268
  export * as CameraUtils from "./utils/CameraUtils.js";
269
+ export * as ColorUtils from "./utils/ColorUtils.js";
260
270
  export * as GeometryCompressionUtils from "./utils/GeometryCompressionUtils.js";
261
271
  export * as GeometryUtils from "./utils/GeometryUtils.js";
262
272
  export * from "./utils/LDrawUtils.js";
273
+ export * from "./utils/SceneOptimizer.js";
263
274
  export * as SceneUtils from "./utils/SceneUtils.js";
264
275
  export * from "./utils/ShadowMapViewer.js";
265
276
  export * as SkeletonUtils from "./utils/SkeletonUtils.js";
@@ -24,11 +24,6 @@ declare class FirstPersonControls extends Controls<{}> {
24
24
  */
25
25
  autoForward: boolean;
26
26
 
27
- /**
28
- * Whether or not it's possible to look around. Default is `true`.
29
- */
30
- activeLook: boolean;
31
-
32
27
  /**
33
28
  * Whether or not the camera's height influences the forward movement speed. Default is `false`.
34
29
  * Use the properties {@link .heightCoef}, {@link .heightMin} and {@link .heightMax} for configuration
@@ -78,11 +73,6 @@ declare class FirstPersonControls extends Controls<{}> {
78
73
  */
79
74
  constructor(object: Camera, domElement?: HTMLElement | SVGElement);
80
75
 
81
- /**
82
- * Should be called if the application window is resized.
83
- */
84
- handleResize(): void;
85
-
86
76
  /**
87
77
  * Ensures the controls orient the camera towards the defined target position.
88
78
  * @param vector A vector representing the target position.
@@ -96,6 +86,11 @@ declare class FirstPersonControls extends Controls<{}> {
96
86
  * @param z The z component of the world space position.
97
87
  */
98
88
  lookAt(x: number, y: number, z: number): this;
89
+
90
+ /**
91
+ * @deprecated The controls now handle resize internally.
92
+ */
93
+ handleResize(): void;
99
94
  }
100
95
 
101
96
  export { FirstPersonControls };
@@ -38,6 +38,9 @@ export interface TransformControlsEventMap {
38
38
  "showX-changed": { value: unknown };
39
39
  "showY-changed": { value: unknown };
40
40
  "showZ-changed": { value: unknown };
41
+ "showXY-changed": { value: unknown };
42
+ "showYZ-changed": { value: unknown };
43
+ "showXZ-changed": { value: unknown };
41
44
  "minX-changed": { value: unknown };
42
45
  "maxX-changed": { value: unknown };
43
46
  "minY-changed": { value: unknown };
@@ -128,6 +131,27 @@ declare class TransformControls extends Controls<TransformControlsEventMap> {
128
131
  */
129
132
  showZ: boolean;
130
133
 
134
+ /**
135
+ * Whether the xy-plane helper should be visible or not.
136
+ *
137
+ * @default true
138
+ */
139
+ showXY: boolean;
140
+
141
+ /**
142
+ * Whether the xy-plane helper should be visible or not.
143
+ *
144
+ * @default true
145
+ */
146
+ showYZ: boolean;
147
+
148
+ /**
149
+ * Whether the xy-plane helper should be visible or not.
150
+ *
151
+ * @default true
152
+ */
153
+ showXZ: boolean;
154
+
131
155
  /**
132
156
  * The minimum allowed X position during translation. Default is `-Infinity`.
133
157
  */
@@ -3,110 +3,82 @@ import { ExtrudeGeometry, ExtrudeGeometryOptions, Shape } from "three";
3
3
  import { Font } from "../loaders/FontLoader.js";
4
4
 
5
5
  export interface TextGeometryParameters extends ExtrudeGeometryOptions {
6
+ /**
7
+ * The font.
8
+ */
6
9
  font: Font;
7
10
 
8
11
  /**
9
- * Size of the text
10
- * Expects a `Float`.
11
- * @defaultValue `100`
12
+ * The text size.
13
+ * @default 100
12
14
  */
13
15
  size?: number | undefined;
14
16
 
15
17
  /**
16
- * Thickness to extrude text.
17
- * Expects a `Float`.
18
- * @defaultValue `50`
18
+ * Depth to extrude the shape.
19
+ * @default 50
19
20
  */
20
21
  depth?: number | undefined;
21
22
 
22
23
  /**
23
- * @override
24
- * @defaultValue `12`
25
- */
26
- curveSegments?: number | undefined;
27
-
28
- /**
29
- * @defaultValue `false`
24
+ * Whether to beveling to the shape or not.
25
+ * @default false
30
26
  */
31
27
  bevelEnabled?: boolean | undefined;
32
28
 
33
29
  /**
34
- * How deep into text bevel goes.
35
- * Expects a `Float`.
36
- * @override
37
- * @defaultValue `10`
30
+ * How deep into the original shape the bevel goes.
31
+ * @default 10
38
32
  */
39
33
  bevelThickness?: number | undefined;
40
34
 
41
35
  /**
42
- * How far from text outline is bevel.
43
- * Expects a `Float`.
44
- * @override
45
- * @defaultValue `8`
36
+ * Distance from the shape outline that the bevel extends.
37
+ * @default 8
46
38
  */
47
39
  bevelSize?: number | undefined;
48
40
 
49
- /**
50
- * How far from text outline bevel starts.
51
- * Expects a `Float`.
52
- * @override
53
- * @defaultValue `0`
54
- */
55
- bevelOffset?: number | undefined;
56
-
57
- /**
58
- * @override
59
- * @defaultValue `3`
60
- */
61
- bevelSegments?: number | undefined;
62
-
63
41
  direction?: "ltr" | "rtl" | "tb" | undefined;
64
42
  }
65
43
 
66
44
  /**
67
- * A class for generating text as a single geometry
68
- * @remarks
69
- * It is constructed by providing a string of text, and a set of parameters consisting of a loaded font and settings for the geometry's parent {@link THREE.ExtrudeGeometry | ExtrudeGeometry}
70
- * See the {@link THREE.FontLoader | FontLoader} page for additional details.
71
- * @example
72
- * ```typescript
45
+ * A class for generating text as a single geometry. It is constructed by providing a string of text, and a set of
46
+ * parameters consisting of a loaded font and extrude settings.
47
+ *
48
+ * See the {@link FontLoader} page for additional details.
49
+ *
50
+ * `TextGeometry` uses [typeface.json](http://gero3.github.io/facetype.js/) generated fonts.
51
+ * Some existing fonts can be found located in `/examples/fonts`.
52
+ *
53
+ * ```js
73
54
  * const loader = new FontLoader();
74
- * loader.load('fonts/helvetiker_regular.typeface.json', function (font) {
75
- * const geometry = new TextGeometry('Hello three.js!', {
76
- * font: font,
77
- * size: 80,
78
- * height: 5,
79
- * curveSegments: 12,
80
- * bevelEnabled: true,
81
- * bevelThickness: 10,
82
- * bevelSize: 8,
83
- * bevelOffset: 0,
84
- * bevelSegments: 5
85
- * });
86
- * });
55
+ * const font = await loader.loadAsync( 'fonts/helvetiker_regular.typeface.json' );
56
+ * const geometry = new TextGeometry( 'Hello three.js!', {
57
+ * font: font,
58
+ * size: 80,
59
+ * depth: 5,
60
+ * curveSegments: 12
61
+ * } );
87
62
  * ```
88
- * @see Example: {@link https://threejs.org/examples/#webgl_geometry_text | geometry / text }
89
- * @see {@link https://threejs.org/docs/index.html#api/en/C:/rafaelsc/Source/threejs/three.js/docs/examples/en/geometries/TextGeometry | Official Documentation}
90
- * @see {@link https://github.com/mrdoob/three.js/blob/master/examples/jsm/geometries/TextGeometry.js | Source}
63
+ *
64
+ * @augments ExtrudeGeometry
65
+ * @three_import import { TextGeometry } from 'three/addons/geometries/TextGeometry.js';
91
66
  */
92
- export class TextGeometry extends ExtrudeGeometry {
67
+ declare class TextGeometry extends ExtrudeGeometry {
93
68
  /**
94
- * Create a new instance of {@link TextGeometry}
95
- * @param text The text that needs to be shown.
96
- * @param parameters Object that can contain the following parameters. @see {@link TextGeometryParameters} for defaults.
69
+ * Constructs a new text geometry.
70
+ *
71
+ * @param {string} text - The text that should be transformed into a geometry.
72
+ * @param {TextGeometry~Options} [parameters] - The text settings.
97
73
  */
98
74
  constructor(text: string, parameters?: TextGeometryParameters);
99
75
 
100
76
  /**
101
- * A Read-only _string_ to check if `this` object type.
102
- * @remarks Sub-classes will update this value.
103
- * @defaultValue `TextGeometry`
104
- */
105
- override readonly type: string | "TextGeometry";
106
-
107
- /**
108
- * An object with a property for each of the constructor parameters.
109
- * @remarks Any modification after instantiation does not change the geometry.
77
+ * Holds the constructor parameters that have been
78
+ * used to generate the geometry. Any modification
79
+ * after instantiation does not change the geometry.
80
+ *
81
+ * @type {Object}
110
82
  */
111
83
  readonly parameters: {
112
84
  readonly shapes: Shape | Shape[];
@@ -114,4 +86,4 @@ export class TextGeometry extends ExtrudeGeometry {
114
86
  };
115
87
  }
116
88
 
117
- export { TextGeometry as TextBufferGeometry };
89
+ export { TextGeometry };
@@ -0,0 +1,12 @@
1
+ import { InstancedMesh, ShaderMaterial, SphereGeometry } from "three";
2
+ import { LightProbeGrid } from "../lighting/LightProbeGrid.js";
3
+
4
+ declare class LightProbeGridHelper extends InstancedMesh<SphereGeometry, ShaderMaterial> {
5
+ probes: LightProbeGrid;
6
+
7
+ constructor(probes: LightProbeGrid, sphereSize?: number);
8
+
9
+ update(): void;
10
+ }
11
+
12
+ export { LightProbeGridHelper };
@@ -0,0 +1,9 @@
1
+ import { Tab, TabEventMap } from "./ui/Tab.js";
2
+
3
+ export interface ExtensionEventMap extends TabEventMap {}
4
+
5
+ export class Extension<TEventMap extends ExtensionEventMap = ExtensionEventMap> extends Tab<TEventMap> {
6
+ readonly isExtension: boolean;
7
+
8
+ constructor(name: string);
9
+ }
@@ -1,10 +1,29 @@
1
- import { RendererInspector } from "./RendererInspector.js";
1
+ import { TSLGraphEditor } from "./extensions/tsl-graph/TSLGraphEditor.js";
2
+ import { RendererInspector, RendererInspectorEventMap } from "./RendererInspector.js";
2
3
  import { ParametersGroup } from "./tabs/Parameters.js";
4
+ import { Tab } from "./ui/Tab.js";
3
5
 
4
- declare class Inspector extends RendererInspector {
6
+ export interface InspectorEventMap extends RendererInspectorEventMap {
7
+ resize: {};
8
+ }
9
+
10
+ declare class Inspector extends RendererInspector<InspectorEventMap> {
5
11
  createParameters(name: string): ParametersGroup;
6
12
 
7
13
  get domElement(): HTMLDivElement;
14
+
15
+ onExtension(name: "TSL Graph", callback: (extension: TSLGraphEditor) => void): this;
16
+
17
+ hide(): void;
18
+ show(): void;
19
+
20
+ getSize(): { width: number; height: number };
21
+
22
+ setActiveTab(tab: Tab): this;
23
+ addTab(tab: Tab): this;
24
+ removeTab(tab: Tab): this;
25
+
26
+ setActiveExtension(name: "TSL Graph", value: boolean): this;
8
27
  }
9
28
 
10
29
  export { Inspector };
@@ -1,4 +1,9 @@
1
- import { InspectorBase } from "three/webgpu";
1
+ import { InspectorBase, InspectorBaseEventMap } from "three/webgpu";
2
2
 
3
- export class RendererInspector extends InspectorBase {
3
+ export interface RendererInspectorEventMap extends InspectorBaseEventMap {
4
+ }
5
+
6
+ export class RendererInspector<TEventMap extends RendererInspectorEventMap = RendererInspectorEventMap>
7
+ extends InspectorBase<TEventMap>
8
+ {
4
9
  }
@@ -0,0 +1,20 @@
1
+ import { Material } from "../../../../../src/materials/Material.js";
2
+ import { Scene } from "../../../../../src/scenes/Scene.js";
3
+ import { Extension, ExtensionEventMap } from "../../Extension.js";
4
+
5
+ interface TSLGraphEditorEventMap extends ExtensionEventMap {
6
+ change: { material: Material };
7
+ remove: { graphId: string };
8
+ }
9
+
10
+ export class TSLGraphEditor extends Extension<TSLGraphEditorEventMap> {
11
+ constructor();
12
+
13
+ get hasGraphs(): boolean;
14
+
15
+ apply(scene: Scene): this;
16
+
17
+ restoreMaterial(material: Material): void;
18
+
19
+ setMaterial(material: Material): Promise<void>;
20
+ }
@@ -0,0 +1,11 @@
1
+ import { FileLoader, LoadingManager, Scene } from "three";
2
+
3
+ declare class TSLGraphLoaderApplier {
4
+ constructor(tslGraphFns: never);
5
+
6
+ apply(scene: Scene): void;
7
+ }
8
+
9
+ export class TSLGraphLoader extends FileLoader<TSLGraphLoaderApplier> {
10
+ constructor(manager?: LoadingManager);
11
+ }
@@ -1,6 +1,14 @@
1
1
  import { Item } from "../ui/Item.js";
2
2
  import { Tab } from "../ui/Tab.js";
3
- import { ValueButton, ValueCheckbox, ValueColor, ValueNumber, ValueSelect, ValueSlider } from "../ui/Values.js";
3
+ import {
4
+ ValueButton,
5
+ ValueCheckbox,
6
+ ValueColor,
7
+ ValueNumber,
8
+ ValueSelect,
9
+ ValueSlider,
10
+ ValueString,
11
+ } from "../ui/Values.js";
4
12
 
5
13
  type KeyToValueOfType<T, V> = { [K in keyof T]: T[K] extends V ? K : never }[keyof T];
6
14
 
@@ -35,6 +43,14 @@ interface ValueCheckboxWithParameters<
35
43
  listen: () => this;
36
44
  }
37
45
 
46
+ interface ValueStringWithParameters<
47
+ T = Record<string, unknown>,
48
+ K extends KeyToValueOfType<T, string> = KeyToValueOfType<T, string>,
49
+ > extends ValueString<T, K> {
50
+ name: (name: string) => this;
51
+ listen: () => this;
52
+ }
53
+
38
54
  interface ValueButtonWithParameters<
39
55
  T = Record<string, unknown>,
40
56
  K extends KeyToValueOfType<T, (this: T) => void> = KeyToValueOfType<T, (this: T) => void>,
@@ -79,6 +95,11 @@ declare class ParametersGroup {
79
95
  property: K,
80
96
  options?: never,
81
97
  ): ValueCheckboxWithParameters<T, K>;
98
+ add<T, K extends KeyToValueOfType<T, string>>(
99
+ object: T,
100
+ property: K,
101
+ options?: never,
102
+ ): ValueStringWithParameters<T, K>;
82
103
  add<T, K extends KeyToValueOfType<T, (this: T) => void>>(
83
104
  object: T,
84
105
  property: K,
@@ -1,3 +1,7 @@
1
- export class Tab {
1
+ import { EventDispatcher } from "../../../../src/core/EventDispatcher.js";
2
+
3
+ export interface TabEventMap {}
4
+
5
+ export class Tab<TEventMap extends TabEventMap = TabEventMap> extends EventDispatcher<TEventMap> {
2
6
  constructor(title: string);
3
7
  }
@@ -2,7 +2,13 @@ import { ColorRepresentation, EventDispatcher } from "three";
2
2
 
3
3
  type KeyToValueOfType<T, V> = { [K in keyof T]: T[K] extends V ? K : never }[keyof T];
4
4
 
5
- declare class Value<T = Record<string, unknown>, K extends keyof T = keyof T> extends EventDispatcher {
5
+ export interface ValueEventMap {}
6
+
7
+ declare class Value<
8
+ T = Record<string, unknown>,
9
+ K extends keyof T = keyof T,
10
+ TEventMap extends ValueEventMap = ValueEventMap,
11
+ > extends EventDispatcher<TEventMap> {
6
12
  onChange(callback: (value: T[K]) => void): this;
7
13
  }
8
14
 
@@ -74,7 +80,21 @@ declare class ValueButton<
74
80
  T = Record<string, unknown>,
75
81
  K extends KeyToValueOfType<T, (this: T) => void> = KeyToValueOfType<T, (this: T) => void>,
76
82
  > extends Value<T, K> {
77
- constructor(params: ValueColorParams);
83
+ constructor(params: ValueButtonParams);
84
+ }
85
+
86
+ export interface ValueStringParams {
87
+ value?: string;
88
+ }
89
+
90
+ declare class ValueString<
91
+ T = Record<string, unknown>,
92
+ K extends KeyToValueOfType<T, string> = KeyToValueOfType<T, string>,
93
+ > extends Value<T, K> {
94
+ constructor(params: ValueStringParams);
95
+
96
+ setValue(val: string): this;
97
+ getValue(): string;
78
98
  }
79
99
 
80
- export { Value, ValueButton, ValueCheckbox, ValueColor, ValueNumber, ValueSelect, ValueSlider };
100
+ export { Value, ValueButton, ValueCheckbox, ValueColor, ValueNumber, ValueSelect, ValueSlider, ValueString };
@@ -0,0 +1,18 @@
1
+ import { Camera, Object3D, WebGLRenderer } from "three";
2
+ import { WebGPURenderer } from "three/webgpu";
3
+
4
+ declare class InteractionManager {
5
+ objects: Object3D[];
6
+ element: HTMLCanvasElement | null;
7
+ camera: Camera | null;
8
+
9
+ constructor();
10
+
11
+ add(...objects: Object3D[]): this;
12
+ remove(...objects: Object3D[]): this;
13
+ connect(renderer: WebGPURenderer | WebGLRenderer, camera: Camera): this;
14
+ update(): void;
15
+ disconnect(): void;
16
+ }
17
+
18
+ export { InteractionManager };
@@ -0,0 +1,16 @@
1
+ import { Lighting } from "three/webgpu";
2
+
3
+ export interface DynamicLightingOptions {
4
+ maxDirectionalLights?: number | undefined;
5
+ maxPointLights?: number | undefined;
6
+ maxSpotLights?: number | undefined;
7
+ maxHemisphereLights?: number | undefined;
8
+ }
9
+
10
+ export class DynamicLighting extends Lighting {
11
+ options: DynamicLightingOptions;
12
+
13
+ constructor(options?: DynamicLightingOptions);
14
+ }
15
+
16
+ export default DynamicLighting;
@@ -0,0 +1,34 @@
1
+ import { Box3, Data3DTexture, Object3D, Scene, Vector3, WebGLRenderer } from "three";
2
+
3
+ export interface LightProbeGridBakeOptions {
4
+ cubemapSize?: number | undefined;
5
+ near?: number | undefined;
6
+ far?: number | undefined;
7
+ }
8
+
9
+ declare class LightProbeGrid extends Object3D {
10
+ readonly isLightProbeGrid: boolean;
11
+
12
+ width: number;
13
+ height: number;
14
+ depth: number;
15
+ resolution: Vector3;
16
+ boundingBox: Box3;
17
+ texture: Data3DTexture | null;
18
+
19
+ constructor(
20
+ width?: number,
21
+ height?: number,
22
+ depth?: number,
23
+ widthProbes?: number,
24
+ heightProbes?: number,
25
+ depthProbes?: number,
26
+ );
27
+
28
+ getProbePosition(ix: number, iy: number, iz: number, target: Vector3): Vector3;
29
+ updateBoundingBox(): void;
30
+ bake(renderer: WebGLRenderer, scene: Scene, options?: LightProbeGridBakeOptions): void;
31
+ dispose(): void;
32
+ }
33
+
34
+ export { LightProbeGrid };
@@ -21,6 +21,7 @@ export interface ColladaLibrary {
21
21
  kinematicsModels: Record<string, unknown>;
22
22
  physicsModels: Record<string, unknown>;
23
23
  kinematicsScenes: Record<string, unknown>;
24
+ joints: Record<string, unknown>;
24
25
  }
25
26
 
26
27
  export interface Collada {
@@ -23,10 +23,12 @@ export interface EXR {
23
23
  declare class EXRLoader extends DataTextureLoader {
24
24
  type: TextureDataType;
25
25
  outputFormat: typeof RGBAFormat | typeof RGFormat | typeof RedFormat;
26
+ part: number;
26
27
 
27
28
  constructor(manager?: LoadingManager);
28
29
 
29
30
  parse(buffer: ArrayBuffer): EXR;
30
31
  setDataType(type: typeof HalfFloatType | typeof FloatType): this;
31
32
  setOutputFormat(value: typeof RGBAFormat | typeof RGFormat | typeof RedFormat): this;
33
+ setPart(value: number): this;
32
34
  }
@@ -4,7 +4,7 @@ import { LDrawConditionalLineMaterial as LDrawConditionalLineNodeMaterial } from
4
4
 
5
5
  export class LDrawLoader extends Loader<Group> {
6
6
  materials: Material[];
7
- materialsLibrary: Record<string, Material>;
7
+ materialLibrary: Record<string, Material>;
8
8
 
9
9
  fileMap: Record<string, string>;
10
10
 
@@ -1,6 +1,12 @@
1
1
  import { BufferGeometry, Loader, LoadingManager } from "three";
2
2
 
3
+ /**
4
+ * @deprecated The loader has been deprecated and will be removed with r194. Export your VTK files to glTF before using them on the web.
5
+ */
3
6
  export class VTKLoader extends Loader<BufferGeometry> {
7
+ /**
8
+ * @deprecated The loader has been deprecated and will be removed with r194. Export your VTK files to glTF before using them on the web.
9
+ */
4
10
  constructor(manager?: LoadingManager);
5
11
 
6
12
  parse(data: ArrayBuffer | string, path: string): BufferGeometry;
@@ -1,4 +1,4 @@
1
- import { BufferGeometry, ColorRepresentation, Mesh, PerspectiveCamera, WebGLRenderTarget } from "three";
1
+ import { BufferGeometry, ColorRepresentation, Mesh, WebGLRenderTarget } from "three";
2
2
 
3
3
  export interface ReflectorOptions {
4
4
  color?: ColorRepresentation | undefined;
@@ -12,7 +12,6 @@ export interface ReflectorOptions {
12
12
  export class Reflector extends Mesh {
13
13
  type: "Reflector";
14
14
  forceUpdate: boolean;
15
- camera: PerspectiveCamera;
16
15
 
17
16
  constructor(geometry?: BufferGeometry, options?: ReflectorOptions);
18
17
 
@@ -12,6 +12,7 @@ declare class SkyMesh extends Mesh<BoxGeometry, NodeMaterial> {
12
12
  cloudCoverage: UniformNode<"float", number>;
13
13
  cloudDensity: UniformNode<"float", number>;
14
14
  cloudElevation: UniformNode<"float", number>;
15
+ showSunDisc: UniformNode<"float", number>;
15
16
 
16
17
  /**
17
18
  * @deprecated