@types/three 0.157.2 → 0.158.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 (82) hide show
  1. three/README.md +1 -1
  2. three/examples/jsm/Addons.d.ts +290 -0
  3. three/examples/jsm/controls/OrbitControls.d.ts +18 -0
  4. three/examples/jsm/libs/lil-gui.module.min.d.ts +5 -5
  5. three/examples/jsm/lights/IESSpotLight.d.ts +5 -0
  6. three/examples/jsm/loaders/IESLoader.d.ts +5 -0
  7. three/examples/jsm/loaders/KTX2Loader.d.ts +2 -1
  8. three/examples/jsm/loaders/LogLuvLoader.d.ts +1 -1
  9. three/examples/jsm/loaders/PCDLoader.d.ts +3 -3
  10. three/examples/jsm/math/Capsule.d.ts +0 -1
  11. three/examples/jsm/misc/MD2CharacterComplex.d.ts +9 -1
  12. three/examples/jsm/objects/BatchedMesh.d.ts +57 -0
  13. three/examples/jsm/objects/ReflectorForSSRPass.d.ts +1 -0
  14. three/examples/jsm/objects/Refractor.d.ts +2 -1
  15. three/examples/jsm/physics/AmmoPhysics.d.ts +2 -1
  16. three/examples/jsm/physics/RapierPhysics.d.ts +2 -1
  17. three/examples/jsm/renderers/SVGRenderer.d.ts +2 -1
  18. three/examples/jsm/renderers/common/Backend.d.ts +15 -0
  19. three/examples/jsm/renderers/common/Info.d.ts +15 -0
  20. three/examples/jsm/renderers/common/Renderer.d.ts +42 -0
  21. three/examples/jsm/renderers/webgpu/WebGPURenderer.d.ts +9 -0
  22. three/examples/jsm/shaders/ACESFilmicToneMappingShader.d.ts +1 -0
  23. three/examples/jsm/shaders/AfterimageShader.d.ts +1 -0
  24. three/examples/jsm/shaders/BasicShader.d.ts +1 -0
  25. three/examples/jsm/shaders/BlendShader.d.ts +1 -0
  26. three/examples/jsm/shaders/BokehShader.d.ts +1 -0
  27. three/examples/jsm/shaders/BokehShader2.d.ts +2 -0
  28. three/examples/jsm/shaders/BrightnessContrastShader.d.ts +1 -0
  29. three/examples/jsm/shaders/ColorCorrectionShader.d.ts +1 -0
  30. three/examples/jsm/shaders/DOFMipMapShader.d.ts +1 -0
  31. three/examples/jsm/shaders/DepthLimitedBlurShader.d.ts +1 -0
  32. three/examples/jsm/shaders/ExposureShader.d.ts +11 -0
  33. three/examples/jsm/shaders/FXAAShader.d.ts +1 -0
  34. three/examples/jsm/shaders/FocusShader.d.ts +1 -0
  35. three/examples/jsm/shaders/FreiChenShader.d.ts +1 -0
  36. three/examples/jsm/shaders/GodRaysShader.d.ts +4 -0
  37. three/examples/jsm/shaders/HalftoneShader.d.ts +1 -0
  38. three/examples/jsm/shaders/HorizontalTiltShiftShader.d.ts +1 -0
  39. three/examples/jsm/shaders/HueSaturationShader.d.ts +1 -0
  40. three/examples/jsm/shaders/KaleidoShader.d.ts +1 -0
  41. three/examples/jsm/shaders/LuminosityHighPassShader.d.ts +1 -0
  42. three/examples/jsm/shaders/LuminosityShader.d.ts +1 -0
  43. three/examples/jsm/shaders/MMDToonShader.d.ts +15 -0
  44. three/examples/jsm/shaders/MirrorShader.d.ts +1 -0
  45. three/examples/jsm/shaders/NormalMapShader.d.ts +1 -0
  46. three/examples/jsm/shaders/OutputShader.d.ts +1 -0
  47. three/examples/jsm/shaders/SAOShader.d.ts +1 -0
  48. three/examples/jsm/shaders/SMAAShader.d.ts +3 -0
  49. three/examples/jsm/shaders/SSAOShader.d.ts +3 -0
  50. three/examples/jsm/shaders/SSRShader.d.ts +3 -0
  51. three/examples/jsm/shaders/SobelOperatorShader.d.ts +1 -0
  52. three/examples/jsm/shaders/SubsurfaceScatteringShader.d.ts +1 -0
  53. three/examples/jsm/shaders/TechnicolorShader.d.ts +1 -0
  54. three/examples/jsm/shaders/TriangleBlurShader.d.ts +1 -0
  55. three/examples/jsm/shaders/UnpackDepthRGBAShader.d.ts +1 -0
  56. three/examples/jsm/shaders/VelocityShader.d.ts +1 -0
  57. three/examples/jsm/shaders/VerticalTiltShiftShader.d.ts +1 -0
  58. three/examples/jsm/shaders/WaterRefractionShader.d.ts +1 -0
  59. three/examples/jsm/utils/GPUStatsPanel.d.ts +12 -0
  60. three/examples/jsm/utils/TextureUtils.d.ts +3 -0
  61. three/examples/jsm/utils/WorkerPool.d.ts +26 -0
  62. three/examples/jsm/webxr/XRButton.d.ts +1 -1
  63. three/examples/jsm/webxr/XREstimatedLight.d.ts +32 -0
  64. three/package.json +3 -2
  65. three/src/cameras/CubeCamera.d.ts +1 -2
  66. three/src/constants.d.ts +21 -10
  67. three/src/core/Object3D.d.ts +4 -4
  68. three/src/core/Raycaster.d.ts +1 -0
  69. three/src/extras/core/Curve.d.ts +1 -1
  70. three/src/geometries/CapsuleGeometry.d.ts +1 -1
  71. three/src/helpers/AxesHelper.d.ts +2 -2
  72. three/src/helpers/Box3Helper.d.ts +2 -2
  73. three/src/lights/Light.d.ts +1 -2
  74. three/src/materials/Material.d.ts +20 -2
  75. three/src/materials/MeshPhysicalMaterial.d.ts +8 -6
  76. three/src/math/ColorManagement.d.ts +1 -1
  77. three/src/math/Matrix4.d.ts +2 -1
  78. three/src/objects/SkinnedMesh.d.ts +9 -8
  79. three/src/renderers/WebGLRenderer.d.ts +12 -2
  80. three/src/scenes/Scene.d.ts +2 -2
  81. three/src/textures/DepthTexture.d.ts +3 -3
  82. three/src/textures/Texture.d.ts +2 -2
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: Wed, 18 Oct 2023 18:04:04 GMT
11
+ * Last updated: Mon, 30 Oct 2023 19:18:00 GMT
12
12
  * Dependencies: [@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
@@ -0,0 +1,290 @@
1
+ export * from './animation/AnimationClipCreator.js';
2
+ export * from './animation/CCDIKSolver.js';
3
+ export * from './animation/MMDAnimationHelper.js';
4
+ export * from './animation/MMDPhysics.js';
5
+
6
+ export * from './cameras/CinematicCamera.js';
7
+
8
+ export { default as WebGL } from './capabilities/WebGL.js';
9
+
10
+ export * from './controls/ArcballControls.js';
11
+ export * from './controls/DragControls.js';
12
+ export * from './controls/FirstPersonControls.js';
13
+ export * from './controls/FlyControls.js';
14
+ export * from './controls/MapControls.js';
15
+ export * from './controls/OrbitControls.js';
16
+ export * from './controls/PointerLockControls.js';
17
+ export * from './controls/TrackballControls.js';
18
+ export * from './controls/TransformControls.js';
19
+
20
+ export * from './csm/CSM.js';
21
+ export * from './csm/CSMFrustum.js';
22
+ export * from './csm/CSMHelper.js';
23
+ export * from './csm/CSMShader.js';
24
+
25
+ export * as Curves from './curves/CurveExtras.js';
26
+ export * from './curves/NURBSCurve.js';
27
+ export * from './curves/NURBSSurface.js';
28
+ export * as NURBSUtils from './curves/NURBSUtils.js';
29
+
30
+ export * from './effects/AnaglyphEffect.js';
31
+ export * from './effects/AsciiEffect.js';
32
+ export * from './effects/OutlineEffect.js';
33
+ export * from './effects/ParallaxBarrierEffect.js';
34
+ export * from './effects/PeppersGhostEffect.js';
35
+ export * from './effects/StereoEffect.js';
36
+
37
+ export * from './environments/DebugEnvironment.js';
38
+ export * from './environments/RoomEnvironment.js';
39
+
40
+ export * from './exporters/DRACOExporter.js';
41
+ export * from './exporters/EXRExporter.js';
42
+ export * from './exporters/GLTFExporter.js';
43
+ export * from './exporters/KTX2Exporter.js';
44
+ export * from './exporters/MMDExporter.js';
45
+ export * from './exporters/OBJExporter.js';
46
+ export * from './exporters/PLYExporter.js';
47
+ export * from './exporters/STLExporter.js';
48
+ export * from './exporters/USDZExporter.js';
49
+
50
+ export * from './geometries/BoxLineGeometry.js';
51
+ export * from './geometries/ConvexGeometry.js';
52
+ export * from './geometries/DecalGeometry.js';
53
+ export * from './geometries/ParametricGeometries.js';
54
+ export * from './geometries/ParametricGeometry.js';
55
+ export * from './geometries/RoundedBoxGeometry.js';
56
+ export * from './geometries/TeapotGeometry.js';
57
+ export * from './geometries/TextGeometry.js';
58
+
59
+ export * from './helpers/LightProbeHelper.js';
60
+ export * from './helpers/OctreeHelper.js';
61
+ export * from './helpers/PositionalAudioHelper.js';
62
+ export * from './helpers/RectAreaLightHelper.js';
63
+ export * from './helpers/VertexNormalsHelper.js';
64
+ export * from './helpers/VertexTangentsHelper.js';
65
+ export * from './helpers/ViewHelper.js';
66
+
67
+ export * from './interactive/HTMLMesh.js';
68
+ export * from './interactive/InteractiveGroup.js';
69
+ export * from './interactive/SelectionBox.js';
70
+ export * from './interactive/SelectionHelper.js';
71
+
72
+ export { default as IESSpotLight } from './lights/IESSpotLight.js';
73
+ export * from './lights/LightProbeGenerator.js';
74
+ export * from './lights/RectAreaLightUniformsLib.js';
75
+
76
+ export * from './lines/Line2.js';
77
+ export * from './lines/LineGeometry.js';
78
+ export * from './lines/LineMaterial.js';
79
+ export * from './lines/LineSegments2.js';
80
+ export * from './lines/LineSegmentsGeometry.js';
81
+ export * from './lines/Wireframe.js';
82
+ export * from './lines/WireframeGeometry2.js';
83
+
84
+ export * from './loaders/3DMLoader.js';
85
+ export * from './loaders/3MFLoader.js';
86
+ export * from './loaders/AMFLoader.js';
87
+ export * from './loaders/BVHLoader.js';
88
+ export * from './loaders/ColladaLoader.js';
89
+ export * from './loaders/DDSLoader.js';
90
+ export * from './loaders/DRACOLoader.js';
91
+ export * from './loaders/EXRLoader.js';
92
+ export * from './loaders/FBXLoader.js';
93
+ export * from './loaders/FontLoader.js';
94
+ export * from './loaders/GCodeLoader.js';
95
+ export * from './loaders/GLTFLoader.js';
96
+ export * from './loaders/HDRCubeTextureLoader.js';
97
+ export * from './loaders/IESLoader.js';
98
+ export * from './loaders/KMZLoader.js';
99
+ export * from './loaders/KTX2Loader.js';
100
+ export * from './loaders/KTXLoader.js';
101
+ export * from './loaders/LDrawLoader.js';
102
+ export * from './loaders/LUT3dlLoader.js';
103
+ export * from './loaders/LUTCubeLoader.js';
104
+ export * from './loaders/LWOLoader.js';
105
+ export * from './loaders/LogLuvLoader.js';
106
+ export * from './loaders/LottieLoader.js';
107
+ export * from './loaders/MD2Loader.js';
108
+ export * from './loaders/MDDLoader.js';
109
+ export * from './loaders/MMDLoader.js';
110
+ export * from './loaders/MTLLoader.js';
111
+ export * from './loaders/NRRDLoader.js';
112
+ export * from './loaders/OBJLoader.js';
113
+ export * from './loaders/PCDLoader.js';
114
+ export * from './loaders/PDBLoader.js';
115
+ export * from './loaders/PLYLoader.js';
116
+ export * from './loaders/PVRLoader.js';
117
+ export * from './loaders/RGBELoader.js';
118
+ export * from './loaders/RGBMLoader.js';
119
+ export * from './loaders/STLLoader.js';
120
+ export * from './loaders/SVGLoader.js';
121
+ export * from './loaders/TDSLoader.js';
122
+ export * from './loaders/TGALoader.js';
123
+ export * from './loaders/TIFFLoader.js';
124
+ export * from './loaders/TTFLoader.js';
125
+ export * from './loaders/TiltLoader.js';
126
+ export * from './loaders/USDZLoader.js';
127
+ export * from './loaders/VOXLoader.js';
128
+ export * from './loaders/VRMLLoader.js';
129
+ export * from './loaders/VTKLoader.js';
130
+ export * from './loaders/XYZLoader.js';
131
+
132
+ export * from './materials/MeshGouraudMaterial.js';
133
+
134
+ export * from './math/Capsule.js';
135
+ export * from './math/ColorConverter.js';
136
+ export * from './math/ConvexHull.js';
137
+ export * from './math/ImprovedNoise.js';
138
+ export * from './math/Lut.js';
139
+ export * from './math/MeshSurfaceSampler.js';
140
+ export * from './math/OBB.js';
141
+ export * from './math/Octree.js';
142
+ export * from './math/SimplexNoise.js';
143
+
144
+ export * from './misc/ConvexObjectBreaker.js';
145
+ export * from './misc/GPUComputationRenderer.js';
146
+ export * from './misc/Gyroscope.js';
147
+ export * from './misc/MD2Character.js';
148
+ export * from './misc/MD2CharacterComplex.js';
149
+ export * from './misc/MorphAnimMesh.js';
150
+ export * from './misc/MorphBlendMesh.js';
151
+ export * from './misc/ProgressiveLightMap.js';
152
+ export * from './misc/RollerCoaster.js';
153
+ export * from './misc/TubePainter.js';
154
+ export * from './misc/Volume.js';
155
+ export * from './misc/VolumeSlice.js';
156
+
157
+ export * from './modifiers/CurveModifier.js';
158
+ export * from './modifiers/EdgeSplitModifier.js';
159
+ export * from './modifiers/SimplifyModifier.js';
160
+ export * from './modifiers/TessellateModifier.js';
161
+
162
+ export * from './objects/BatchedMesh.js';
163
+ export * from './objects/GroundProjectedSkybox.js';
164
+ export * from './objects/Lensflare.js';
165
+ export * from './objects/MarchingCubes.js';
166
+ export * from './objects/Reflector.js';
167
+ export * from './objects/ReflectorForSSRPass.js';
168
+ export * from './objects/Refractor.js';
169
+ export * from './objects/ShadowMesh.js';
170
+ export * from './objects/Sky.js';
171
+ export * from './objects/Water.js';
172
+ export { Water as Water2 } from './objects/Water2.js';
173
+
174
+ export * from './physics/AmmoPhysics.js';
175
+ export * from './physics/RapierPhysics.js';
176
+
177
+ export * from './postprocessing/AfterimagePass.js';
178
+ export * from './postprocessing/BloomPass.js';
179
+ export * from './postprocessing/BokehPass.js';
180
+ export * from './postprocessing/ClearPass.js';
181
+ export * from './postprocessing/CubeTexturePass.js';
182
+ export * from './postprocessing/DotScreenPass.js';
183
+ export * from './postprocessing/EffectComposer.js';
184
+ export * from './postprocessing/FilmPass.js';
185
+ export * from './postprocessing/GlitchPass.js';
186
+ export * from './postprocessing/HalftonePass.js';
187
+ export * from './postprocessing/LUTPass.js';
188
+ export * from './postprocessing/MaskPass.js';
189
+ export * from './postprocessing/OutlinePass.js';
190
+ export * from './postprocessing/OutputPass.js';
191
+ export * from './postprocessing/Pass.js';
192
+ export * from './postprocessing/RenderPass.js';
193
+ export * from './postprocessing/RenderPixelatedPass.js';
194
+ export * from './postprocessing/SAOPass.js';
195
+ export * from './postprocessing/SMAAPass.js';
196
+ export * from './postprocessing/SSAARenderPass.js';
197
+ export * from './postprocessing/SSAOPass.js';
198
+ export * from './postprocessing/SSRPass.js';
199
+ export * from './postprocessing/SavePass.js';
200
+ export * from './postprocessing/ShaderPass.js';
201
+ export * from './postprocessing/TAARenderPass.js';
202
+ export * from './postprocessing/TexturePass.js';
203
+ export * from './postprocessing/UnrealBloomPass.js';
204
+
205
+ export * from './renderers/CSS2DRenderer.js';
206
+ export * from './renderers/CSS3DRenderer.js';
207
+ export * from './renderers/Projector.js';
208
+ export * from './renderers/SVGRenderer.js';
209
+
210
+ export * from './shaders/ACESFilmicToneMappingShader.js';
211
+ export * from './shaders/AfterimageShader.js';
212
+ export * from './shaders/BasicShader.js';
213
+ export * from './shaders/BleachBypassShader.js';
214
+ export * from './shaders/BlendShader.js';
215
+ export * from './shaders/BokehShader.js';
216
+ export { BokehShader as BokehShader2 } from './shaders/BokehShader2.js';
217
+ export * from './shaders/BrightnessContrastShader.js';
218
+ export * from './shaders/ColorCorrectionShader.js';
219
+ export * from './shaders/ColorifyShader.js';
220
+ export * from './shaders/ConvolutionShader.js';
221
+ export * from './shaders/CopyShader.js';
222
+ export * from './shaders/DOFMipMapShader.js';
223
+ export * from './shaders/DepthLimitedBlurShader.js';
224
+ export * from './shaders/DigitalGlitch.js';
225
+ export * from './shaders/DotScreenShader.js';
226
+ export * from './shaders/ExposureShader.js';
227
+ export * from './shaders/FXAAShader.js';
228
+ export * from './shaders/FilmShader.js';
229
+ export * from './shaders/FocusShader.js';
230
+ export * from './shaders/FreiChenShader.js';
231
+ export * from './shaders/GammaCorrectionShader.js';
232
+ export * from './shaders/GodRaysShader.js';
233
+ export * from './shaders/HalftoneShader.js';
234
+ export * from './shaders/HorizontalBlurShader.js';
235
+ export * from './shaders/HorizontalTiltShiftShader.js';
236
+ export * from './shaders/HueSaturationShader.js';
237
+ export * from './shaders/KaleidoShader.js';
238
+ export * from './shaders/LuminosityHighPassShader.js';
239
+ export * from './shaders/LuminosityShader.js';
240
+ export * from './shaders/MMDToonShader.js';
241
+ export * from './shaders/MirrorShader.js';
242
+ export * from './shaders/NormalMapShader.js';
243
+ export * from './shaders/OutputShader.js';
244
+ export * from './shaders/RGBShiftShader.js';
245
+ export * from './shaders/SAOShader.js';
246
+ export * from './shaders/SMAAShader.js';
247
+ export * from './shaders/SSAOShader.js';
248
+ export * from './shaders/SSRShader.js';
249
+ export * from './shaders/SepiaShader.js';
250
+ export * from './shaders/SobelOperatorShader.js';
251
+ export * from './shaders/SubsurfaceScatteringShader.js';
252
+ export * from './shaders/TechnicolorShader.js';
253
+ export * from './shaders/ToonShader.js';
254
+ export * from './shaders/TriangleBlurShader.js';
255
+ export * from './shaders/UnpackDepthRGBAShader.js';
256
+ export * from './shaders/VelocityShader.js';
257
+ export * from './shaders/VerticalBlurShader.js';
258
+ export * from './shaders/VerticalTiltShiftShader.js';
259
+ export * from './shaders/VignetteShader.js';
260
+ export * from './shaders/VolumeShader.js';
261
+ export * from './shaders/WaterRefractionShader.js';
262
+
263
+ export * from './textures/FlakesTexture.js';
264
+
265
+ export * as BufferGeometryUtils from './utils/BufferGeometryUtils.js';
266
+ export * as CameraUtils from './utils/CameraUtils.js';
267
+ export * from './utils/GPUStatsPanel.js';
268
+ export * as GeometryCompressionUtils from './utils/GeometryCompressionUtils.js';
269
+ export * as GeometryUtils from './utils/GeometryUtils.js';
270
+ export * from './utils/LDrawUtils.js';
271
+ export * from './utils/PackedPhongMaterial.js';
272
+ export * as SceneUtils from './utils/SceneUtils.js';
273
+ export * from './utils/ShadowMapViewer.js';
274
+ export * as SkeletonUtils from './utils/SkeletonUtils.js';
275
+ export * from './utils/TextureUtils.js';
276
+ export * from './utils/UVsDebug.js';
277
+ export * from './utils/WorkerPool.js';
278
+
279
+ export * from './webxr/ARButton.js';
280
+ export * from './webxr/OculusHandModel.js';
281
+ export * from './webxr/OculusHandPointerModel.js';
282
+ export * from './webxr/Text2D.js';
283
+ export * from './webxr/VRButton.js';
284
+ export * from './webxr/XRButton.js';
285
+ export * from './webxr/XRControllerModelFactory.js';
286
+ export * from './webxr/XREstimatedLight.js';
287
+ export * from './webxr/XRHandMeshModel.js';
288
+ export * from './webxr/XRHandModelFactory.js';
289
+ export * from './webxr/XRHandPrimitiveModel.js';
290
+ export * from './webxr/XRPlanes.js';
@@ -44,6 +44,12 @@ export class OrbitControls extends EventDispatcher<OrbitControlsEventMap> {
44
44
  /** @deprecated */
45
45
  center: Vector3;
46
46
 
47
+ /**
48
+ * The focus point of the {@link .minTargetRadius} and {@link .maxTargetRadius} limits. It can be updated manually
49
+ * at any point to change the center of interest for the {@link .target}.
50
+ */
51
+ cursor: Vector3;
52
+
47
53
  /**
48
54
  * How far you can dolly in ( PerspectiveCamera only ).
49
55
  * @default 0
@@ -68,6 +74,18 @@ export class OrbitControls extends EventDispatcher<OrbitControlsEventMap> {
68
74
  */
69
75
  maxZoom: number;
70
76
 
77
+ /**
78
+ * How close you can get the target to the 3D {@link .cursor}.
79
+ * @default 0
80
+ */
81
+ minTargetRadius: number;
82
+
83
+ /**
84
+ * How far you can move the target from the 3D {@link .cursor}.
85
+ * @default Infinity
86
+ */
87
+ maxTargetRadius: number;
88
+
71
89
  /**
72
90
  * How far you can orbit vertically, lower limit.
73
91
  * Range is 0 to Math.PI radians.
@@ -340,7 +340,7 @@ export class Controller<T = Record<string, unknown>, K extends keyof T = keyof T
340
340
  /**
341
341
  * The object this controller will modify.
342
342
  */
343
- object: object;
343
+ object: T;
344
344
  /**
345
345
  * The name of the property to control.
346
346
  */
@@ -398,12 +398,12 @@ export class Controller<T = Record<string, unknown>, K extends keyof T = keyof T
398
398
  * console.assert( this === controller );
399
399
  * } );
400
400
  */
401
- onChange(callback: (value: T[K]) => void): this;
401
+ onChange(callback: (this: this, value: T[K]) => void): this;
402
402
  /**
403
403
  * Used to access the function bound to `onChange` events. Don't modify this value directly.
404
404
  * Use the `controller.onChange( callback )` method instead.
405
405
  */
406
- _onChange: (value: T[K]) => void;
406
+ _onChange: (this: this, value: T[K]) => void;
407
407
  /**
408
408
  * Calls the onChange methods of this controller and its parent GUI.
409
409
  */
@@ -420,12 +420,12 @@ export class Controller<T = Record<string, unknown>, K extends keyof T = keyof T
420
420
  * console.assert( this === controller );
421
421
  * } );
422
422
  */
423
- onFinishChange(callback: (value: T[K]) => void): this;
423
+ onFinishChange(callback: (this: this, value: T[K]) => void): this;
424
424
  /**
425
425
  * Used to access the function bound to `onFinishChange` events. Don't modify this value
426
426
  * directly. Use the `controller.onFinishChange( callback )` method instead.
427
427
  */
428
- _onFinishChange: (value: T[K]) => void;
428
+ _onFinishChange: (this: this, value: T[K]) => void;
429
429
  /**
430
430
  * Should be called by Controller when its widgets lose focus.
431
431
  */
@@ -0,0 +1,5 @@
1
+ import { SpotLight, Texture } from 'three';
2
+
3
+ export default class IESSpotLight extends SpotLight {
4
+ iesMap: Texture | null;
5
+ }
@@ -0,0 +1,5 @@
1
+ import { DataTexture, Loader } from 'three';
2
+
3
+ export class IESLoader extends Loader<DataTexture> {
4
+ parse(text: string): DataTexture;
5
+ }
@@ -1,11 +1,12 @@
1
1
  import { LoadingManager, CompressedTextureLoader, CompressedTexture, WebGLRenderer } from '../../../src/Three.js';
2
+ import WebGPURenderer from '../renderers/webgpu/WebGPURenderer.js';
2
3
 
3
4
  export class KTX2Loader extends CompressedTextureLoader {
4
5
  constructor(manager?: LoadingManager);
5
6
 
6
7
  setTranscoderPath(path: string): KTX2Loader;
7
8
  setWorkerLimit(limit: number): KTX2Loader;
8
- detectSupport(renderer: WebGLRenderer): KTX2Loader;
9
+ detectSupport(renderer: WebGLRenderer | WebGPURenderer): KTX2Loader;
9
10
  dispose(): KTX2Loader;
10
11
 
11
12
  parse(
@@ -11,7 +11,7 @@ export interface LogLuv {
11
11
 
12
12
  export class LogLuvLoader extends DataTextureLoader {
13
13
  type: TextureDataType;
14
- constructor(manager: LoadingManager);
14
+ constructor(manager?: LoadingManager);
15
15
 
16
16
  parse(buffer: Iterable<number>): LogLuv;
17
17
 
@@ -1,8 +1,8 @@
1
- import { Points, Loader, LoadingManager } from '../../../src/Three.js';
1
+ import { BufferGeometry, Loader, LoadingManager, Points, PointsMaterial } from '../../../src/Three.js';
2
2
 
3
- export class PCDLoader extends Loader<Points> {
3
+ export class PCDLoader extends Loader<Points<BufferGeometry, PointsMaterial>> {
4
4
  constructor(manager?: LoadingManager);
5
5
  littleEndian: boolean;
6
6
 
7
- parse(data: ArrayBuffer | string): Points;
7
+ parse(data: ArrayBuffer | string): Points<BufferGeometry, PointsMaterial>;
8
8
  }
@@ -23,5 +23,4 @@ export class Capsule {
23
23
  radius: number,
24
24
  ): boolean;
25
25
  intersectsBox(box: Box3): boolean;
26
- lineLineMinimumPoints(line1: Line3, line2: Line3): Vector3[];
27
26
  }
@@ -14,7 +14,15 @@ export class MD2CharacterComplex {
14
14
  root: Object3D;
15
15
  meshBody: Mesh | null;
16
16
  meshWeapon: Mesh | null;
17
- controls: null;
17
+ controls: {
18
+ crouch?: boolean | undefined;
19
+ jump?: boolean | undefined;
20
+ attack?: boolean | undefined;
21
+ moveForward?: boolean | undefined;
22
+ moveBackward?: boolean | undefined;
23
+ moveLeft?: boolean | undefined;
24
+ moveRight?: boolean | undefined;
25
+ } | null;
18
26
  skinsBody: Texture[];
19
27
  skinsWeapon: Texture[];
20
28
  weapons: Mesh[];
@@ -0,0 +1,57 @@
1
+ import { Matrix4, Mesh, BufferGeometry, Material, DataTexture, IUniform } from '../../../src/Three.js';
2
+
3
+ declare class BatchedMesh extends Mesh<BufferGeometry, Material> {
4
+ _vertexStarts: number[];
5
+ _vertexCounts: number[];
6
+ _indexStarts: number[];
7
+ _indexCounts: number[];
8
+
9
+ _visible: boolean[];
10
+ _active: boolean[];
11
+
12
+ _maxGeometryCount: number;
13
+ _maxVertexCount: number;
14
+ _maxIndexCount: number;
15
+
16
+ _geometryInitialized: boolean;
17
+ _geometryCount: number;
18
+ _vertexCount: number;
19
+ _indexCount: number;
20
+
21
+ _matrices: Matrix4[];
22
+ _matricesTexture: DataTexture | null;
23
+
24
+ _customUniforms: Record<string, IUniform>;
25
+
26
+ constructor(maxGeometryCount: number, maxVertexCount: number, maxIndexCount?: number, material?: Material);
27
+
28
+ _initMatricesTexture(): void;
29
+
30
+ _initShader(): void;
31
+
32
+ _initializeGeometry(reference: BufferGeometry): void;
33
+
34
+ getGeometryCount(): number;
35
+
36
+ getVertexCount(): number;
37
+
38
+ getIndexCount(): number;
39
+
40
+ applyGeometry(geometry: BufferGeometry): number;
41
+
42
+ deleteGeometry(geometryId: number): this;
43
+
44
+ optimize(): never;
45
+
46
+ setMatrixAt(geometryId: number, matrix: Matrix4): this;
47
+
48
+ getMatrixAt(geometryId: number, matrix: Matrix4): Matrix4;
49
+
50
+ setVisibleAt(geometryId: number, value: boolean): this;
51
+
52
+ getVisibleAt(geometryId: number): boolean;
53
+
54
+ dispose(): this;
55
+ }
56
+
57
+ export { BatchedMesh };
@@ -12,6 +12,7 @@ import {
12
12
  } from '../../../src/Three.js';
13
13
 
14
14
  export interface ReflectorShader {
15
+ name: string;
15
16
  defines: {
16
17
  DISTANCE_ATTENUATION: boolean;
17
18
  FRESNEL: boolean;
@@ -5,6 +5,7 @@ import {
5
5
  TextureEncoding,
6
6
  WebGLRenderTarget,
7
7
  PerspectiveCamera,
8
+ ShaderMaterial,
8
9
  } from '../../../src/Three.js';
9
10
 
10
11
  export interface RefractorOptions {
@@ -17,7 +18,7 @@ export interface RefractorOptions {
17
18
  multisample?: number;
18
19
  }
19
20
 
20
- export class Refractor extends Mesh {
21
+ export class Refractor extends Mesh<BufferGeometry, ShaderMaterial> {
21
22
  type: 'Refractor';
22
23
  camera: PerspectiveCamera;
23
24
 
@@ -1,6 +1,7 @@
1
- import { Mesh, Vector3 } from '../../../src/Three.js';
1
+ import { Mesh, Object3D, Vector3 } from '../../../src/Three.js';
2
2
 
3
3
  export interface AmmoPhysicsObject {
4
+ addScene: (scene: Object3D) => void;
4
5
  addMesh: (mesh: Mesh, mass?: number) => void;
5
6
  setMeshPosition: (mesh: Mesh, position: Vector3, index?: number) => void;
6
7
  }
@@ -1,8 +1,9 @@
1
- import { Mesh } from '../../../src/Three.js';
1
+ import { Mesh, Object3D } from '../../../src/Three.js';
2
2
 
3
3
  type Vector = { x: number; y: number; z: number };
4
4
 
5
5
  export interface RapierPhysicsObject {
6
+ addScene: (scene: Object3D) => void;
6
7
  addMesh: (mesh: Mesh, mass?: number, restitution?: number) => void;
7
8
  setMeshPosition: (mesh: Mesh, position: Vector, index?: number) => void;
8
9
  setMeshVelocity: (mesh: Mesh, velocity: Vector, index?: number) => void;
@@ -1,4 +1,4 @@
1
- import { Object3D, Color, Scene, Camera } from '../../../src/Three.js';
1
+ import { Object3D, Color, Scene, Camera, ColorSpace } from '../../../src/Three.js';
2
2
 
3
3
  export class SVGObject extends Object3D {
4
4
  constructor(node: SVGElement);
@@ -12,6 +12,7 @@ export class SVGRenderer {
12
12
  sortObjects: boolean;
13
13
  sortElements: boolean;
14
14
  overdraw: number;
15
+ outputColorSpace: ColorSpace;
15
16
  info: { render: { vertices: number; faces: number } };
16
17
 
17
18
  getSize(): { width: number; height: number };
@@ -0,0 +1,15 @@
1
+ import { CoordinateSystem } from '../../../../src/Three.js';
2
+ import Renderer from './Renderer.js';
3
+
4
+ export default abstract class Backend {
5
+ renderer: Renderer | null;
6
+ domElement: HTMLCanvasElement | null;
7
+
8
+ constructor(parameters?: { canvas?: HTMLCanvasElement | undefined });
9
+
10
+ init(renderer: Renderer): Promise<void>;
11
+
12
+ abstract get coordinateSystem(): CoordinateSystem;
13
+
14
+ getDomElement(): HTMLCanvasElement;
15
+ }
@@ -0,0 +1,15 @@
1
+ import { Object3D } from '../../../../src/Three.js';
2
+
3
+ export default class Info {
4
+ autoRest: boolean;
5
+
6
+ render: { frame: number; drawCalls: number; triangles: number; points: number; lines: number };
7
+
8
+ memory: { geometries: number; textures: number };
9
+
10
+ update(object: Object3D, count: number, instanceCount: number): void;
11
+
12
+ reset(): void;
13
+
14
+ dispose(): void;
15
+ }
@@ -0,0 +1,42 @@
1
+ import { Camera, ColorSpace, CoordinateSystem, Scene, ToneMapping } from '../../../../src/Three.js';
2
+ import Backend from './Backend.js';
3
+ import Info from './Info.js';
4
+
5
+ export default class Renderer {
6
+ isRenderer: true;
7
+
8
+ domElement: HTMLCanvasElement;
9
+
10
+ backend: Backend;
11
+
12
+ autoClear: boolean;
13
+ autoClearColor: boolean;
14
+ autoClearDepth: boolean;
15
+ autoClearStencil: boolean;
16
+
17
+ outputColorSpace: ColorSpace;
18
+
19
+ toneMapping: ToneMapping;
20
+ toneMappingExposure: number;
21
+
22
+ sortObjects: boolean;
23
+
24
+ depth: boolean;
25
+ stencil: boolean;
26
+
27
+ info: Info;
28
+
29
+ constructor(backend: Backend);
30
+
31
+ init(): Promise<void>;
32
+
33
+ get coordinateSystem(): CoordinateSystem;
34
+
35
+ render(scene: Scene, camera: Camera): Promise<void>;
36
+
37
+ setAnimationLoop(callback: ((time: DOMHighResTimeStamp) => void) | null): void;
38
+
39
+ setPixelRatio(value?: number): void;
40
+
41
+ setSize(width: number, height: number, updateStyle?: boolean): void;
42
+ }
@@ -0,0 +1,9 @@
1
+ import Renderer from '../common/Renderer.js';
2
+
3
+ export default class WebGPURenderer extends Renderer {
4
+ constructor(parameters?: {
5
+ canvas?: HTMLCanvasElement | undefined;
6
+ antialias?: boolean | undefined;
7
+ sampleCount?: number | undefined;
8
+ });
9
+ }
@@ -1,6 +1,7 @@
1
1
  import { IUniform, Texture } from '../../../src/Three.js';
2
2
 
3
3
  export const ACESFilmicToneMappingShader: {
4
+ name: string;
4
5
  uniforms: {
5
6
  tDiffuse: IUniform<Texture>;
6
7
  exposure: IUniform<number>;