@types/three 0.159.0 → 0.161.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 (211) hide show
  1. three/README.md +1 -1
  2. three/examples/jsm/Addons.d.ts +5 -1
  3. three/examples/jsm/capabilities/WebGPU.d.ts +2 -0
  4. three/examples/jsm/curves/NURBSUtils.d.ts +136 -10
  5. three/examples/jsm/curves/NURBSVolume.d.ts +23 -0
  6. three/examples/jsm/exporters/USDZExporter.d.ts +1 -0
  7. three/examples/jsm/loaders/GLTFLoader.d.ts +1 -0
  8. three/examples/jsm/loaders/KTX2Loader.d.ts +45 -11
  9. three/examples/jsm/loaders/LUT3dlLoader.d.ts +29 -2
  10. three/examples/jsm/loaders/LUTCubeLoader.d.ts +37 -2
  11. three/examples/jsm/loaders/MaterialXLoader.d.ts +6 -0
  12. three/examples/jsm/materials/MeshPostProcessingMaterial.d.ts +13 -0
  13. three/examples/jsm/misc/Timer.d.ts +80 -0
  14. three/examples/jsm/nodes/Nodes.d.ts +304 -61
  15. three/examples/jsm/nodes/accessors/BitangentNode.d.ts +9 -0
  16. three/examples/jsm/nodes/accessors/BufferNode.d.ts +4 -1
  17. three/examples/jsm/nodes/accessors/CameraNode.d.ts +24 -6
  18. three/examples/jsm/nodes/accessors/CubeTextureNode.d.ts +17 -4
  19. three/examples/jsm/nodes/accessors/InstanceNode.d.ts +3 -0
  20. three/examples/jsm/nodes/accessors/MaterialNode.d.ts +12 -0
  21. three/examples/jsm/nodes/accessors/MaterialReferenceNode.d.ts +7 -0
  22. three/examples/jsm/nodes/accessors/ModelNode.d.ts +9 -1
  23. three/examples/jsm/nodes/accessors/ModelViewProjectionNode.d.ts +3 -0
  24. three/examples/jsm/nodes/accessors/NormalNode.d.ts +8 -0
  25. three/examples/jsm/nodes/accessors/Object3DNode.d.ts +10 -6
  26. three/examples/jsm/nodes/accessors/PointUVNode.d.ts +3 -0
  27. three/examples/jsm/nodes/accessors/PositionNode.d.ts +8 -0
  28. three/examples/jsm/nodes/accessors/ReferenceNode.d.ts +4 -1
  29. three/examples/jsm/nodes/accessors/ReflectVectorNode.d.ts +3 -0
  30. three/examples/jsm/nodes/accessors/SkinningNode.d.ts +3 -0
  31. three/examples/jsm/nodes/accessors/StorageBufferNode.d.ts +8 -1
  32. three/examples/jsm/nodes/accessors/TangentNode.d.ts +9 -0
  33. three/examples/jsm/nodes/accessors/TextureBicubicNode.d.ts +18 -0
  34. three/examples/jsm/nodes/accessors/TextureNode.d.ts +21 -5
  35. three/examples/jsm/nodes/accessors/UVNode.d.ts +3 -0
  36. three/examples/jsm/nodes/accessors/UserDataNode.d.ts +7 -0
  37. three/examples/jsm/nodes/accessors/VertexColorNode.d.ts +12 -0
  38. three/examples/jsm/nodes/code/CodeNode.d.ts +4 -0
  39. three/examples/jsm/nodes/code/ExpressionNode.d.ts +3 -0
  40. three/examples/jsm/nodes/code/FunctionCallNode.d.ts +13 -1
  41. three/examples/jsm/nodes/code/FunctionNode.d.ts +17 -0
  42. three/examples/jsm/nodes/core/ArrayUniformNode.d.ts +1 -1
  43. three/examples/jsm/nodes/core/AssignNode.d.ts +17 -0
  44. three/examples/jsm/nodes/core/AttributeNode.d.ts +3 -0
  45. three/examples/jsm/nodes/core/BypassNode.d.ts +9 -0
  46. three/examples/jsm/nodes/core/CacheNode.d.ts +11 -0
  47. three/examples/jsm/nodes/core/ConstNode.d.ts +3 -3
  48. three/examples/jsm/nodes/core/ContextNode.d.ts +11 -0
  49. three/examples/jsm/nodes/core/IndexNode.d.ts +18 -0
  50. three/examples/jsm/nodes/core/InputNode.d.ts +4 -4
  51. three/examples/jsm/nodes/core/LightingModel.d.ts +36 -0
  52. three/examples/jsm/nodes/core/Node.d.ts +32 -8
  53. three/examples/jsm/nodes/core/NodeBuilder.d.ts +27 -23
  54. three/examples/jsm/nodes/core/NodeFrame.d.ts +18 -6
  55. three/examples/jsm/nodes/core/NodeUniform.d.ts +12 -8
  56. three/examples/jsm/nodes/core/NodeUtils.d.ts +6 -3
  57. three/examples/jsm/nodes/core/PropertyNode.d.ts +27 -1
  58. three/examples/jsm/nodes/core/UniformNode.d.ts +12 -4
  59. three/examples/jsm/nodes/core/VarNode.d.ts +10 -0
  60. three/examples/jsm/nodes/core/VaryingNode.d.ts +9 -0
  61. three/examples/jsm/nodes/core/constants.d.ts +31 -28
  62. three/examples/jsm/nodes/display/AfterImageNode.d.ts +25 -0
  63. three/examples/jsm/nodes/display/AnamorphicNode.d.ts +32 -0
  64. three/examples/jsm/nodes/display/BlendModeNode.d.ts +21 -6
  65. three/examples/jsm/nodes/display/ColorAdjustmentNode.d.ts +29 -1
  66. three/examples/jsm/nodes/display/ColorSpaceNode.d.ts +17 -0
  67. three/examples/jsm/nodes/display/FrontFacingNode.d.ts +4 -0
  68. three/examples/jsm/nodes/display/GaussianBlurNode.d.ts +28 -0
  69. three/examples/jsm/nodes/display/NormalMapNode.d.ts +13 -1
  70. three/examples/jsm/nodes/display/PassNode.d.ts +44 -0
  71. three/examples/jsm/nodes/display/PosterizeNode.d.ts +12 -0
  72. three/examples/jsm/nodes/display/ToneMappingNode.d.ts +8 -1
  73. three/examples/jsm/nodes/display/ViewportDepthNode.d.ts +32 -0
  74. three/examples/jsm/nodes/display/ViewportNode.d.ts +8 -0
  75. three/examples/jsm/nodes/display/ViewportSharedTextureNode.d.ts +18 -0
  76. three/examples/jsm/nodes/display/ViewportTextureNode.d.ts +33 -0
  77. three/examples/jsm/nodes/fog/FogExp2Node.d.ts +9 -0
  78. three/examples/jsm/nodes/fog/FogNode.d.ts +9 -0
  79. three/examples/jsm/nodes/fog/FogRangeNode.d.ts +9 -0
  80. three/examples/jsm/nodes/functions/BSDF/BRDF_GGX.d.ts +9 -2
  81. three/examples/jsm/nodes/functions/BSDF/BRDF_Lambert.d.ts +3 -2
  82. three/examples/jsm/nodes/functions/BSDF/BRDF_Sheen.d.ts +7 -0
  83. three/examples/jsm/nodes/functions/BSDF/DFGApprox.d.ts +3 -2
  84. three/examples/jsm/nodes/functions/BSDF/D_GGX.d.ts +3 -2
  85. three/examples/jsm/nodes/functions/BSDF/F_Schlick.d.ts +3 -2
  86. three/examples/jsm/nodes/functions/BSDF/V_GGX_SmithCorrelated.d.ts +1 -1
  87. three/examples/jsm/nodes/functions/PhongLightingModel.d.ts +7 -0
  88. three/examples/jsm/nodes/functions/PhysicalLightingModel.d.ts +17 -8
  89. three/examples/jsm/nodes/functions/material/getGeometryRoughness.d.ts +1 -1
  90. three/examples/jsm/nodes/functions/material/getRoughness.d.ts +1 -1
  91. three/examples/jsm/nodes/geometry/RangeNode.d.ts +3 -0
  92. three/examples/jsm/nodes/gpgpu/ComputeNode.d.ts +13 -0
  93. three/examples/jsm/nodes/lighting/LightingContextNode.d.ts +20 -8
  94. three/examples/jsm/nodes/lighting/LightsNode.d.ts +3 -0
  95. three/examples/jsm/nodes/materials/LineBasicNodeMaterial.d.ts +1 -2
  96. three/examples/jsm/nodes/materials/Materials.d.ts +9 -17
  97. three/examples/jsm/nodes/materials/MeshBasicNodeMaterial.d.ts +2 -4
  98. three/examples/jsm/nodes/materials/MeshPhongNodeMaterial.d.ts +12 -0
  99. three/examples/jsm/nodes/materials/MeshPhysicalNodeMaterial.d.ts +16 -7
  100. three/examples/jsm/nodes/materials/MeshSSSNodeMaterial.d.ts +17 -0
  101. three/examples/jsm/nodes/materials/MeshStandardNodeMaterial.d.ts +1 -5
  102. three/examples/jsm/nodes/materials/NodeMaterial.d.ts +55 -16
  103. three/examples/jsm/nodes/materials/PointsNodeMaterial.d.ts +2 -8
  104. three/examples/jsm/nodes/materials/SpriteNodeMaterial.d.ts +0 -10
  105. three/examples/jsm/nodes/materialx/MaterialXNodes.d.ts +43 -34
  106. three/examples/jsm/nodes/materialx/lib/mx_hsv.d.ts +5 -3
  107. three/examples/jsm/nodes/materialx/lib/mx_noise.d.ts +7 -5
  108. three/examples/jsm/nodes/math/CondNode.d.ts +13 -0
  109. three/examples/jsm/nodes/math/HashNode.d.ts +16 -0
  110. three/examples/jsm/nodes/math/MathNode.d.ts +140 -1
  111. three/examples/jsm/nodes/math/MathUtils.d.ts +16 -0
  112. three/examples/jsm/nodes/math/OperatorNode.d.ts +53 -1
  113. three/examples/jsm/nodes/math/TriNoise3D.d.ts +12 -0
  114. three/examples/jsm/nodes/procedural/CheckerNode.d.ts +9 -0
  115. three/examples/jsm/nodes/shadernode/ShaderNode.d.ts +124 -31
  116. three/examples/jsm/nodes/utils/DiscardNode.d.ts +16 -0
  117. three/examples/jsm/nodes/utils/EquirectUVNode.d.ts +4 -2
  118. three/examples/jsm/nodes/utils/MatcapUVNode.d.ts +3 -0
  119. three/examples/jsm/nodes/utils/MaxMipLevelNode.d.ts +6 -3
  120. three/examples/jsm/nodes/utils/OscNode.d.ts +6 -0
  121. three/examples/jsm/nodes/utils/ReflectorNode.d.ts +30 -0
  122. three/examples/jsm/nodes/utils/RemapNode.d.ts +24 -1
  123. three/examples/jsm/nodes/utils/RotateNode.d.ts +21 -0
  124. three/examples/jsm/nodes/utils/RotateUVNode.d.ts +9 -0
  125. three/examples/jsm/nodes/utils/SpecularMIPLevelNode.d.ts +5 -1
  126. three/examples/jsm/nodes/utils/SpriteSheetUVNode.d.ts +7 -0
  127. three/examples/jsm/nodes/utils/TimerNode.d.ts +7 -1
  128. three/examples/jsm/nodes/utils/TriplanarTexturesNode.d.ts +28 -7
  129. three/examples/jsm/objects/GroundedSkybox.d.ts +5 -0
  130. three/examples/jsm/objects/QuadMesh.d.ts +15 -0
  131. three/examples/jsm/postprocessing/{HBAOPass.d.ts → GTAOPass.d.ts} +25 -10
  132. three/examples/jsm/postprocessing/SSAOPass.d.ts +1 -1
  133. three/examples/jsm/renderers/common/Backend.d.ts +6 -2
  134. three/examples/jsm/renderers/common/Color4.d.ts +9 -0
  135. three/examples/jsm/renderers/common/Info.d.ts +7 -1
  136. three/examples/jsm/renderers/common/PostProcessing.d.ts +11 -0
  137. three/examples/jsm/renderers/common/Renderer.d.ts +243 -4
  138. three/examples/jsm/renderers/common/StorageTexture.d.ts +5 -0
  139. three/examples/jsm/renderers/webgl/WebGLBackend.d.ts +4 -2
  140. three/examples/jsm/renderers/webgl/nodes/WebGLNodeBuilder.d.ts +2 -2
  141. three/examples/jsm/renderers/webgl-legacy/nodes/WebGLNodes.d.ts +3 -0
  142. three/examples/jsm/renderers/webgpu/WebGPUBackend.d.ts +15 -6
  143. three/examples/jsm/renderers/webgpu/WebGPURenderer.d.ts +7 -7
  144. three/examples/jsm/shaders/{HBAOShader.d.ts → GTAOShader.d.ts} +23 -8
  145. three/examples/jsm/shaders/PoissonDenoiseShader.d.ts +1 -1
  146. three/examples/jsm/utils/BufferGeometryUtils.d.ts +0 -10
  147. three/examples/jsm/webxr/XRControllerModelFactory.d.ts +6 -5
  148. three/examples/jsm/webxr/XRHandMeshModel.d.ts +10 -2
  149. three/package.json +2 -2
  150. three/src/Three.d.ts +1 -0
  151. three/src/cameras/PerspectiveCamera.d.ts +13 -0
  152. three/src/constants.d.ts +4 -3
  153. three/src/core/InterleavedBufferAttribute.d.ts +12 -2
  154. three/src/core/Object3D.d.ts +13 -13
  155. three/src/core/UniformsGroup.d.ts +3 -3
  156. three/src/extras/core/Curve.d.ts +9 -9
  157. three/src/extras/core/CurvePath.d.ts +8 -7
  158. three/src/geometries/RingGeometry.d.ts +1 -1
  159. three/src/lights/PointLight.d.ts +7 -0
  160. three/src/loaders/MaterialLoader.d.ts +6 -3
  161. three/src/materials/LineBasicMaterial.d.ts +7 -0
  162. three/src/materials/LineDashedMaterial.d.ts +7 -1
  163. three/src/materials/Material.d.ts +17 -15
  164. three/src/materials/MeshBasicMaterial.d.ts +7 -0
  165. three/src/materials/MeshDepthMaterial.d.ts +6 -0
  166. three/src/materials/MeshDistanceMaterial.d.ts +7 -0
  167. three/src/materials/MeshLambertMaterial.d.ts +7 -0
  168. three/src/materials/MeshMatcapMaterial.d.ts +7 -0
  169. three/src/materials/MeshNormalMaterial.d.ts +7 -0
  170. three/src/materials/MeshPhongMaterial.d.ts +7 -0
  171. three/src/materials/MeshPhysicalMaterial.d.ts +6 -1
  172. three/src/materials/MeshStandardMaterial.d.ts +7 -2
  173. three/src/materials/MeshToonMaterial.d.ts +7 -0
  174. three/src/materials/PointsMaterial.d.ts +7 -0
  175. three/src/materials/RawShaderMaterial.d.ts +9 -0
  176. three/src/materials/ShaderMaterial.d.ts +17 -3
  177. three/src/materials/ShadowMaterial.d.ts +7 -0
  178. three/src/materials/SpriteMaterial.d.ts +7 -2
  179. three/src/math/Color.d.ts +1 -1
  180. three/src/math/Matrix4.d.ts +30 -30
  181. three/src/math/Quaternion.d.ts +27 -30
  182. three/src/math/Sphere.d.ts +5 -0
  183. three/src/math/Triangle.d.ts +8 -25
  184. three/src/math/Vector2.d.ts +24 -159
  185. three/src/math/Vector3.d.ts +46 -54
  186. three/src/math/Vector4.d.ts +25 -20
  187. three/src/objects/BatchedMesh.d.ts +2 -2
  188. three/src/objects/Bone.d.ts +2 -2
  189. three/src/objects/InstancedMesh.d.ts +2 -1
  190. three/src/objects/LOD.d.ts +2 -2
  191. three/src/objects/Line.d.ts +3 -2
  192. three/src/objects/LineLoop.d.ts +3 -1
  193. three/src/objects/LineSegments.d.ts +3 -1
  194. three/src/objects/Points.d.ts +3 -2
  195. three/src/objects/SkinnedMesh.d.ts +4 -8
  196. three/src/objects/Sprite.d.ts +2 -2
  197. three/src/renderers/shaders/ShaderLib.d.ts +18 -18
  198. three/src/renderers/shaders/UniformsUtils.d.ts +3 -2
  199. three/src/renderers/webgl/WebGLLights.d.ts +39 -37
  200. three/src/renderers/webgl/WebGLProgram.d.ts +0 -1
  201. three/src/renderers/webgl/WebGLPrograms.d.ts +226 -9
  202. three/src/renderers/webxr/WebXRDepthSensing.d.ts +27 -0
  203. three/src/renderers/webxr/WebXRManager.d.ts +2 -1
  204. three/src/textures/CompressedCubeTexture.d.ts +13 -0
  205. three/src/textures/DataArrayTexture.d.ts +1 -1
  206. three/src/textures/Source.d.ts +11 -1
  207. three/build/three.d.ts +0 -2
  208. three/build/three.min.d.ts +0 -2
  209. three/examples/jsm/nodes/shadernode/ShaderNodeBaseElements.d.ts +0 -310
  210. three/examples/jsm/nodes/shadernode/ShaderNodeElements.d.ts +0 -166
  211. three/examples/jsm/objects/GroundProjectedSkybox.d.ts +0 -13
@@ -42,7 +42,7 @@ export class Object3D<TEventMap extends Object3DEventMap = Object3DEventMap> ext
42
42
  /**
43
43
  * Unique number for this {@link Object3D} instance.
44
44
  * @remarks Note that ids are assigned in chronological order: 1, 2, 3, ..., incrementing by one for each new object.
45
- * @remarks Expects a `Integer`
45
+ * Expects a `Integer`
46
46
  */
47
47
  readonly id: number;
48
48
 
@@ -62,7 +62,7 @@ export class Object3D<TEventMap extends Object3DEventMap = Object3DEventMap> ext
62
62
  /**
63
63
  * A Read-only _string_ to check `this` object type.
64
64
  * @remarks This can be used to find a specific type of Object3D in a scene.
65
- * @remarks Sub-classes will update this value.
65
+ * Sub-classes will update this value.
66
66
  * @defaultValue `Object3D`
67
67
  */
68
68
  readonly type: string | 'Object3D';
@@ -158,7 +158,7 @@ export class Object3D<TEventMap extends Object3DEventMap = Object3DEventMap> ext
158
158
  /**
159
159
  * The layer membership of the object.
160
160
  * @remarks The object is only visible if it has at least one layer in common with the {@link THREE.Object3DCamera | Camera} in use.
161
- * @remarks This property can also be used to filter out unwanted objects in ray-intersection tests when using {@link THREE.Raycaster | Raycaster}.
161
+ * This property can also be used to filter out unwanted objects in ray-intersection tests when using {@link THREE.Raycaster | Raycaster}.
162
162
  * @defaultValue `new THREE.Layers()`
163
163
  */
164
164
  layers: Layers;
@@ -192,7 +192,7 @@ export class Object3D<TEventMap extends Object3DEventMap = Object3DEventMap> ext
192
192
  * This value allows the default rendering order of {@link https://en.wikipedia.org/wiki/Scene_graph | scene graph}
193
193
  * objects to be overridden although opaque and transparent objects remain sorted independently.
194
194
  * @remarks When this property is set for an instance of {@link Group | Group}, all descendants objects will be sorted and rendered together.
195
- * @remarks Sorting is from lowest to highest renderOrder.
195
+ * Sorting is from lowest to highest renderOrder.
196
196
  * @defaultValue `0`
197
197
  */
198
198
  renderOrder: number;
@@ -213,7 +213,7 @@ export class Object3D<TEventMap extends Object3DEventMap = Object3DEventMap> ext
213
213
  /**
214
214
  * Custom depth material to be used when rendering to the depth map.
215
215
  * @remarks Can only be used in context of meshes.
216
- * @remarks When shadow-casting with a {@link THREE.DirectionalLight | DirectionalLight} or {@link THREE.SpotLight | SpotLight},
216
+ * When shadow-casting with a {@link THREE.DirectionalLight | DirectionalLight} or {@link THREE.SpotLight | SpotLight},
217
217
  * if you are modifying vertex positions in the vertex shader you must specify a customDepthMaterial for proper shadows.
218
218
  * @defaultValue `undefined`
219
219
  */
@@ -229,7 +229,7 @@ export class Object3D<TEventMap extends Object3DEventMap = Object3DEventMap> ext
229
229
  * An optional callback that is executed immediately before a 3D object is rendered to a shadow map.
230
230
  * @remarks This function is called with the following parameters: renderer, scene, camera, shadowCamera, geometry,
231
231
  * depthMaterial, group.
232
- * @remarks Please notice that this callback is only executed for `renderable` 3D objects. Meaning 3D objects which
232
+ * Please notice that this callback is only executed for `renderable` 3D objects. Meaning 3D objects which
233
233
  * define their visual appearance with geometries and materials like instances of {@link Mesh}, {@link Line},
234
234
  * {@link Points} or {@link Sprite}. Instances of {@link Object3D}, {@link Group} or {@link Bone} are not renderable
235
235
  * and thus this callback is not executed for such objects.
@@ -247,7 +247,7 @@ export class Object3D<TEventMap extends Object3DEventMap = Object3DEventMap> ext
247
247
  * An optional callback that is executed immediately after a 3D object is rendered to a shadow map.
248
248
  * @remarks This function is called with the following parameters: renderer, scene, camera, shadowCamera, geometry,
249
249
  * depthMaterial, group.
250
- * @remarks Please notice that this callback is only executed for `renderable` 3D objects. Meaning 3D objects which
250
+ * Please notice that this callback is only executed for `renderable` 3D objects. Meaning 3D objects which
251
251
  * define their visual appearance with geometries and materials like instances of {@link Mesh}, {@link Line},
252
252
  * {@link Points} or {@link Sprite}. Instances of {@link Object3D}, {@link Group} or {@link Bone} are not renderable
253
253
  * and thus this callback is not executed for such objects.
@@ -264,7 +264,7 @@ export class Object3D<TEventMap extends Object3DEventMap = Object3DEventMap> ext
264
264
  /**
265
265
  * An optional callback that is executed immediately before a 3D object is rendered.
266
266
  * @remarks This function is called with the following parameters: renderer, scene, camera, geometry, material, group.
267
- * @remarks Please notice that this callback is only executed for `renderable` 3D objects. Meaning 3D objects which
267
+ * Please notice that this callback is only executed for `renderable` 3D objects. Meaning 3D objects which
268
268
  * define their visual appearance with geometries and materials like instances of {@link Mesh}, {@link Line},
269
269
  * {@link Points} or {@link Sprite}. Instances of {@link Object3D}, {@link Group} or {@link Bone} are not renderable
270
270
  * and thus this callback is not executed for such objects.
@@ -281,7 +281,7 @@ export class Object3D<TEventMap extends Object3DEventMap = Object3DEventMap> ext
281
281
  /**
282
282
  * An optional callback that is executed immediately after a 3D object is rendered.
283
283
  * @remarks This function is called with the following parameters: renderer, scene, camera, geometry, material, group.
284
- * @remarks Please notice that this callback is only executed for `renderable` 3D objects. Meaning 3D objects which
284
+ * Please notice that this callback is only executed for `renderable` 3D objects. Meaning 3D objects which
285
285
  * define their visual appearance with geometries and materials like instances of {@link Mesh}, {@link Line},
286
286
  * {@link Points} or {@link Sprite}. Instances of {@link Object3D}, {@link Group} or {@link Bone} are not renderable
287
287
  * and thus this callback is not executed for such objects.
@@ -363,7 +363,7 @@ export class Object3D<TEventMap extends Object3DEventMap = Object3DEventMap> ext
363
363
  /**
364
364
  * Rotate an object along an axis in world space.
365
365
  * @remarks The axis is assumed to be normalized
366
- * @remarks Method Assumes no rotated parent.
366
+ * Method Assumes no rotated parent.
367
367
  * @param axis A normalized vector in world space.
368
368
  * @param angle The angle in radians. Expects a `Float`
369
369
  */
@@ -443,7 +443,7 @@ export class Object3D<TEventMap extends Object3DEventMap = Object3DEventMap> ext
443
443
  /**
444
444
  * Adds another {@link Object3D} as child of this {@link Object3D}.
445
445
  * @remarks An arbitrary number of objects may be added
446
- * @remarks Any current parent on an {@link object} passed in here will be removed, since an {@link Object3D} can have at most one parent.
446
+ * Any current parent on an {@link object} passed in here will be removed, since an {@link Object3D} can have at most one parent.
447
447
  * @see {@link attach}
448
448
  * @see {@link THREE.Group | Group} for info on manually grouping objects.
449
449
  * @param object
@@ -487,7 +487,7 @@ export class Object3D<TEventMap extends Object3DEventMap = Object3DEventMap> ext
487
487
  /**
488
488
  * Searches through an object and its children, starting with the object itself, and returns the first with a matching name.
489
489
  * @remarks Note that for most objects the name is an empty string by default
490
- * @remarks You will have to set it manually to make use of this method.
490
+ * You will have to set it manually to make use of this method.
491
491
  * @param name String to match to the children's Object3D.name property.
492
492
  */
493
493
  getObjectByName(name: string): Object3D | undefined;
@@ -555,7 +555,7 @@ export class Object3D<TEventMap extends Object3DEventMap = Object3DEventMap> ext
555
555
  /**
556
556
  * Like traverse, but the callback will only be executed for visible objects
557
557
  * @remarks Descendants of invisible objects are not traversed.
558
- * @remarks Note: Modifying the scene graph inside the callback is discouraged.
558
+ * Note: Modifying the scene graph inside the callback is discouraged.
559
559
  * @param callback A function with as first argument an {@link Object3D} object.
560
560
  */
561
561
  traverseVisible(callback: (object: Object3D) => any): void;
@@ -15,11 +15,11 @@ export class UniformsGroup extends EventDispatcher<{ dispose: {} }> {
15
15
 
16
16
  usage: Usage;
17
17
 
18
- uniforms: Uniform[];
18
+ uniforms: Array<Uniform | Uniform[]>;
19
19
 
20
- add(uniform: Uniform): this;
20
+ add(uniform: Uniform | Uniform[]): this;
21
21
 
22
- remove(uniform: Uniform): this;
22
+ remove(uniform: Uniform | Uniform[]): this;
23
23
 
24
24
  setName(name: string): this;
25
25
 
@@ -1,4 +1,4 @@
1
- import { Vector } from '../../math/Vector2.js';
1
+ import { Vector2 } from '../../math/Vector2.js';
2
2
  import { Vector3 } from '../../math/Vector3.js';
3
3
 
4
4
  /**
@@ -25,7 +25,7 @@ import { Vector3 } from '../../math/Vector3.js';
25
25
  * @see {@link https://threejs.org/docs/index.html#api/en/extras/core/Curve | Official Documentation}
26
26
  * @see {@link https://github.com/mrdoob/three.js/blob/master/src/extras/core/Curve.js | Source}
27
27
  */
28
- export abstract class Curve<T extends Vector> {
28
+ export abstract class Curve<TVector extends Vector2 | Vector3> {
29
29
  protected constructor();
30
30
 
31
31
  /**
@@ -49,26 +49,26 @@ export abstract class Curve<T extends Vector> {
49
49
  * @param t A position on the curve. Must be in the range `[ 0, 1 ]`. Expects a `Float`
50
50
  * @param optionalTarget If specified, the result will be copied into this Vector, otherwise a new Vector will be created. Default `new T`.
51
51
  */
52
- getPoint(t: number, optionalTarget?: T): T;
52
+ getPoint(t: number, optionalTarget?: TVector): TVector;
53
53
 
54
54
  /**
55
55
  * Returns a vector for a given position on the {@link Curve} according to the arc length.
56
56
  * @param u A position on the {@link Curve} according to the arc length. Must be in the range `[ 0, 1 ]`. Expects a `Float`
57
57
  * @param optionalTarget If specified, the result will be copied into this Vector, otherwise a new Vector will be created. Default `new T`.
58
58
  */
59
- getPointAt(u: number, optionalTarget?: T): T;
59
+ getPointAt(u: number, optionalTarget?: TVector): TVector;
60
60
 
61
61
  /**
62
62
  * Returns a set of divisions `+1` points using {@link .getPoint | getPoint(t)}.
63
63
  * @param divisions Number of pieces to divide the {@link Curve} into. Expects a `Integer`. Default `5`
64
64
  */
65
- getPoints(divisions?: number): T[];
65
+ getPoints(divisions?: number): TVector[];
66
66
 
67
67
  /**
68
68
  * Returns a set of divisions `+1` equi-spaced points using {@link .getPointAt | getPointAt(u)}.
69
69
  * @param divisions Number of pieces to divide the {@link Curve} into. Expects a `Integer`. Default `5`
70
70
  */
71
- getSpacedPoints(divisions?: number): T[];
71
+ getSpacedPoints(divisions?: number): TVector[];
72
72
 
73
73
  /**
74
74
  * Get total {@link Curve} arc length.
@@ -107,14 +107,14 @@ export abstract class Curve<T extends Vector> {
107
107
  * @param t A position on the curve. Must be in the range `[ 0, 1 ]`. Expects a `Float`
108
108
  * @param optionalTarget If specified, the result will be copied into this Vector, otherwise a new Vector will be created.
109
109
  */
110
- getTangent(t: number, optionalTarget?: T): T;
110
+ getTangent(t: number, optionalTarget?: TVector): TVector;
111
111
 
112
112
  /**
113
113
  * Returns tangent at a point which is equidistant to the ends of the {@link Curve} from the point given in {@link .getTangent}.
114
114
  * @param u A position on the {@link Curve} according to the arc length. Must be in the range `[ 0, 1 ]`. Expects a `Float`
115
115
  * @param optionalTarget If specified, the result will be copied into this Vector, otherwise a new Vector will be created.
116
116
  */
117
- getTangentAt(u: number, optionalTarget?: T): T;
117
+ getTangentAt(u: number, optionalTarget?: TVector): TVector;
118
118
 
119
119
  /**
120
120
  * Generates the Frenet Frames
@@ -141,7 +141,7 @@ export abstract class Curve<T extends Vector> {
141
141
  * Copies another {@link Curve} object to this instance.
142
142
  * @param source
143
143
  */
144
- copy(source: Curve<T>): this;
144
+ copy(source: Curve<TVector>): this;
145
145
 
146
146
  /**
147
147
  * Returns a JSON object representation of this instance.
@@ -1,5 +1,6 @@
1
1
  import { Curve } from './Curve.js';
2
- import { Vector } from '../../math/Vector2.js';
2
+ import { Vector2 } from '../../math/Vector2.js';
3
+ import { Vector3 } from '../../math/Vector3.js';
3
4
 
4
5
  /**
5
6
  * Curved Path - a curve path is simply a array of connected curves, but retains the api of a curve.
@@ -8,7 +9,7 @@ import { Vector } from '../../math/Vector2.js';
8
9
  * @see {@link https://threejs.org/docs/index.html#api/en/extras/core/CurvePath | Official Documentation}
9
10
  * @see {@link https://github.com/mrdoob/three.js/blob/master/src/extras/core/CurvePath.js | Source}
10
11
  */
11
- export class CurvePath<T extends Vector> extends Curve<T> {
12
+ export class CurvePath<TVector extends Vector2 | Vector3> extends Curve<TVector> {
12
13
  /**
13
14
  * The constructor take no parameters.
14
15
  */
@@ -25,7 +26,7 @@ export class CurvePath<T extends Vector> extends Curve<T> {
25
26
  * The array of {@link Curve | Curves}.
26
27
  * @defaultValue `[]`
27
28
  */
28
- curves: Array<Curve<T>>;
29
+ curves: Array<Curve<TVector>>;
29
30
 
30
31
  /**
31
32
  * Whether or not to automatically close the path.
@@ -37,13 +38,13 @@ export class CurvePath<T extends Vector> extends Curve<T> {
37
38
  * Add a curve to the {@link .curves} array.
38
39
  * @param curve
39
40
  */
40
- add(curve: Curve<T>): void;
41
+ add(curve: Curve<TVector>): void;
41
42
  /**
42
43
  * Adds a {@link LineCurve | lineCurve} to close the path.
43
44
  */
44
45
  closePath(): this;
45
46
 
46
- getPoint(t: number, optionalTarget?: T): T;
47
+ getPoint(t: number, optionalTarget?: TVector): TVector;
47
48
 
48
49
  /**
49
50
  * Get list of cumulative curve lengths of the curves in the {@link .curves} array.
@@ -58,11 +59,11 @@ export class CurvePath<T extends Vector> extends Curve<T> {
58
59
  * For example, for a {@link THREE.LineCurve | LineCurve}, the returned number of points is always just 2.
59
60
  * @param divisions Number of pieces to divide the curve into. Expects a `Integer`. Default `12`
60
61
  */
61
- override getPoints(divisions?: number): T[];
62
+ override getPoints(divisions?: number): TVector[];
62
63
 
63
64
  /**
64
65
  * Returns a set of divisions `+1` equi-spaced points using {@link .getPointAt | getPointAt(u)}.
65
66
  * @param divisions Number of pieces to divide the curve into. Expects a `Integer`. Default `40`
66
67
  */
67
- override getSpacedPoints(divisions?: number): T[];
68
+ override getSpacedPoints(divisions?: number): TVector[];
68
69
  }
@@ -21,7 +21,7 @@ export class RingGeometry extends BufferGeometry {
21
21
  * @param innerRadius Expects a `Float`. Default `0.5`.
22
22
  * @param outerRadius Expects a `Float`. Default `1`.
23
23
  * @param thetaSegments Number of segments. A higher number means the ring will be more round. Minimum is 3. Expects a `Integer`. Default `32`.
24
- * @param phiSegments Minimum is 1. Expects a `Integer`. Default `1`.
24
+ * @param phiSegments Number of segments per ring segment. Minimum is `1`. Expects a `Integer`. Default `1`.
25
25
  * @param thetaStart Starting angle. Expects a `Float`. Default `0`.
26
26
  * @param thetaLength Central angle. Expects a `Float`. Default `Math.PI * 2`.
27
27
  */
@@ -29,6 +29,13 @@ export class PointLight extends Light<PointLightShadow> {
29
29
  */
30
30
  constructor(color?: ColorRepresentation, intensity?: number, distance?: number, decay?: number);
31
31
 
32
+ /**
33
+ * Read-only flag to check if a given object is of type {@link PointLight}.
34
+ * @remarks This is a _constant_ value
35
+ * @defaultValue `true`
36
+ */
37
+ readonly isPointLight: true;
38
+
32
39
  /**
33
40
  * @default 'PointLight'
34
41
  */
@@ -4,13 +4,16 @@ import { Texture } from '../textures/Texture.js';
4
4
  import { Material } from '../materials/Material.js';
5
5
 
6
6
  export class MaterialLoader extends Loader<Material> {
7
- constructor(manager?: LoadingManager);
8
-
9
7
  /**
10
8
  * @default {}
11
9
  */
12
10
  textures: { [key: string]: Texture };
13
11
 
14
- setTextures(textures: { [key: string]: Texture }): this;
12
+ constructor(manager?: LoadingManager);
13
+
15
14
  parse(json: unknown): Material;
15
+
16
+ setTextures(textures: { [key: string]: Texture }): this;
17
+
18
+ static createMaterialFromType(type: string): Material;
16
19
  }
@@ -13,6 +13,13 @@ export interface LineBasicMaterialParameters extends MaterialParameters {
13
13
  export class LineBasicMaterial extends Material {
14
14
  constructor(parameters?: LineBasicMaterialParameters);
15
15
 
16
+ /**
17
+ * Read-only flag to check if a given object is of type {@link LineBasicMaterial}.
18
+ * @remarks This is a _constant_ value
19
+ * @defaultValue `true`
20
+ */
21
+ readonly isLineBasicMaterial: true;
22
+
16
23
  /**
17
24
  * @default 'LineBasicMaterial'
18
25
  */
@@ -9,6 +9,13 @@ export interface LineDashedMaterialParameters extends LineBasicMaterialParameter
9
9
  export class LineDashedMaterial extends LineBasicMaterial {
10
10
  constructor(parameters?: LineDashedMaterialParameters);
11
11
 
12
+ /**
13
+ * Read-only flag to check if a given object is of type {@link LineDashedMaterial}.
14
+ * @remarks This is a _constant_ value
15
+ * @defaultValue `true`
16
+ */
17
+ readonly isLineDashedMaterial: true;
18
+
12
19
  /**
13
20
  * @default 'LineDashedMaterial'
14
21
  */
@@ -28,7 +35,6 @@ export class LineDashedMaterial extends LineBasicMaterial {
28
35
  * @default 1
29
36
  */
30
37
  gapSize: number;
31
- readonly isLineDashedMaterial: true;
32
38
 
33
39
  setValues(parameters: LineDashedMaterialParameters): void;
34
40
  }
@@ -1,7 +1,7 @@
1
1
  import { Plane } from '../math/Plane.js';
2
2
  import { EventDispatcher } from '../core/EventDispatcher.js';
3
+ import { WebGLProgramParametersWithUniforms } from '../renderers/webgl/WebGLPrograms.js';
3
4
  import { WebGLRenderer } from '../renderers/WebGLRenderer.js';
4
- import { Shader } from '../renderers/shaders/ShaderLib.js';
5
5
  import {
6
6
  BlendingDstFactor,
7
7
  BlendingEquation,
@@ -69,6 +69,13 @@ export interface MaterialParameters {
69
69
  export class Material extends EventDispatcher<{ dispose: {} }> {
70
70
  constructor();
71
71
 
72
+ /**
73
+ * Read-only flag to check if a given object is of type {@link Material}.
74
+ * @remarks This is a _constant_ value
75
+ * @defaultValue `true`
76
+ */
77
+ readonly isMaterial: true;
78
+
72
79
  /**
73
80
  * Enables alpha hashed transparency, an alternative to {@link .transparent} or {@link .alphaTest}. The material
74
81
  * will not be rendered if opacity is lower than a random threshold. Randomization introduces some grain or noise,
@@ -84,7 +91,9 @@ export class Material extends EventDispatcher<{ dispose: {} }> {
84
91
  alphaTest: number;
85
92
 
86
93
  /**
87
- * Enables alpha to coverage. Can only be used with MSAA-enabled rendering contexts.
94
+ * Enables alpha to coverage. Can only be used with MSAA-enabled rendering contexts (meaning when the renderer was
95
+ * created with *antialias* parameter set to `true`). Enabling this will smooth aliasing on clip plane edges and
96
+ * alphaTest-clipped edges.
88
97
  * @default false
89
98
  */
90
99
  alphaToCoverage: boolean;
@@ -256,12 +265,6 @@ export class Material extends EventDispatcher<{ dispose: {} }> {
256
265
  */
257
266
  stencilZPass: StencilOp;
258
267
 
259
- /**
260
- * Used to check whether this or derived classes are materials. Default is true.
261
- * You should not change this, as it used internally for optimisation.
262
- */
263
- readonly isMaterial: true;
264
-
265
268
  /**
266
269
  * Material name. Default is an empty string.
267
270
  * @default ''
@@ -338,8 +341,8 @@ export class Material extends EventDispatcher<{ dispose: {} }> {
338
341
  shadowSide: Side | null;
339
342
 
340
343
  /**
341
- * Defines whether this material is tone mapped according to the renderer's toneMapping setting.
342
- * Default is true.
344
+ * Defines whether this material is tone mapped according to the renderer's
345
+ * {@link WebGLRenderer.toneMapping toneMapping} setting. It is ignored when rendering to a render target.
343
346
  * @default true
344
347
  */
345
348
  toneMapped: boolean;
@@ -347,7 +350,6 @@ export class Material extends EventDispatcher<{ dispose: {} }> {
347
350
  /**
348
351
  * Defines whether this material is transparent. This has an effect on rendering as transparent objects need special treatment and are rendered after non-transparent objects.
349
352
  * When set to true, the extent to which the material is transparent is controlled by setting it's .opacity property.
350
- * Default is false.
351
353
  * @default false
352
354
  */
353
355
  transparent: boolean;
@@ -405,12 +407,12 @@ export class Material extends EventDispatcher<{ dispose: {} }> {
405
407
 
406
408
  /**
407
409
  * An optional callback that is executed immediately before the shader program is compiled.
408
- * This function is called with the shader source code as a parameter.
410
+ * This function is called with the associated WebGL program parameters and renderer.
409
411
  * Useful for the modification of built-in materials.
410
- * @param shader Source code of the shader
411
- * @param renderer WebGLRenderer Context that is initializing the material
412
+ * @param parameters WebGL program parameters
413
+ * @param renderer WebGLRenderer context that is initializing the material
412
414
  */
413
- onBeforeCompile(shader: Shader, renderer: WebGLRenderer): void;
415
+ onBeforeCompile(parameters: WebGLProgramParametersWithUniforms, renderer: WebGLRenderer): void;
414
416
 
415
417
  /**
416
418
  * In case onBeforeCompile is used, this callback can be used to identify values of settings used in onBeforeCompile, so three.js can reuse a cached shader or recompile the shader as needed.
@@ -29,6 +29,13 @@ export interface MeshBasicMaterialParameters extends MaterialParameters {
29
29
  export class MeshBasicMaterial extends Material {
30
30
  constructor(parameters?: MeshBasicMaterialParameters);
31
31
 
32
+ /**
33
+ * Read-only flag to check if a given object is of type {@link MeshBasicMaterial}.
34
+ * @remarks This is a _constant_ value
35
+ * @defaultValue `true`
36
+ */
37
+ readonly isMeshBasicMaterial: true;
38
+
32
39
  /**
33
40
  * @default 'MeshBasicMaterial'
34
41
  */
@@ -15,6 +15,12 @@ export interface MeshDepthMaterialParameters extends MaterialParameters {
15
15
 
16
16
  export class MeshDepthMaterial extends Material {
17
17
  constructor(parameters?: MeshDepthMaterialParameters);
18
+ /**
19
+ * Read-only flag to check if a given object is of type {@link MeshDepthMaterial}.
20
+ * @remarks This is a _constant_ value
21
+ * @defaultValue `true`
22
+ */
23
+ readonly isMeshDepthMaterial: true;
18
24
 
19
25
  /**
20
26
  * @default 'MeshDepthMaterial'
@@ -16,6 +16,13 @@ export interface MeshDistanceMaterialParameters extends MaterialParameters {
16
16
  export class MeshDistanceMaterial extends Material {
17
17
  constructor(parameters?: MeshDistanceMaterialParameters);
18
18
 
19
+ /**
20
+ * Read-only flag to check if a given object is of type {@link MeshDistanceMaterial}.
21
+ * @remarks This is a _constant_ value
22
+ * @defaultValue `true`
23
+ */
24
+ readonly isMeshDistanceMaterial: true;
25
+
19
26
  /**
20
27
  * @default 'MeshDistanceMaterial'
21
28
  */
@@ -38,6 +38,13 @@ export interface MeshLambertMaterialParameters extends MaterialParameters {
38
38
  export class MeshLambertMaterial extends Material {
39
39
  constructor(parameters?: MeshLambertMaterialParameters);
40
40
 
41
+ /**
42
+ * Read-only flag to check if a given object is of type {@link MeshLambertMaterial}.
43
+ * @remarks This is a _constant_ value
44
+ * @defaultValue `true`
45
+ */
46
+ readonly isMeshLambertMaterial: true;
47
+
41
48
  /**
42
49
  * @default 'MeshLambertMaterial'
43
50
  */
@@ -24,6 +24,13 @@ export interface MeshMatcapMaterialParameters extends MaterialParameters {
24
24
  export class MeshMatcapMaterial extends Material {
25
25
  constructor(parameters?: MeshMatcapMaterialParameters);
26
26
 
27
+ /**
28
+ * Read-only flag to check if a given object is of type {@link MeshMatcapMaterial}.
29
+ * @remarks This is a _constant_ value
30
+ * @defaultValue `true`
31
+ */
32
+ readonly isMeshMatcapMaterial: true;
33
+
27
34
  /**
28
35
  * @default 'MeshMatcapMaterial'
29
36
  */
@@ -21,6 +21,13 @@ export interface MeshNormalMaterialParameters extends MaterialParameters {
21
21
  export class MeshNormalMaterial extends Material {
22
22
  constructor(parameters?: MeshNormalMaterialParameters);
23
23
 
24
+ /**
25
+ * Read-only flag to check if a given object is of type {@link MeshNormalMaterial}.
26
+ * @remarks This is a _constant_ value
27
+ * @defaultValue `true`
28
+ */
29
+ readonly isMeshNormalMaterial: true;
30
+
24
31
  /**
25
32
  * @default 'MeshNormalMaterial'
26
33
  */
@@ -43,6 +43,13 @@ export interface MeshPhongMaterialParameters extends MaterialParameters {
43
43
  export class MeshPhongMaterial extends Material {
44
44
  constructor(parameters?: MeshPhongMaterialParameters);
45
45
 
46
+ /**
47
+ * Read-only flag to check if a given object is of type {@link MeshPhongMaterial}.
48
+ * @remarks This is a _constant_ value
49
+ * @defaultValue `true`
50
+ */
51
+ readonly isMeshPhongMaterial: true;
52
+
46
53
  /**
47
54
  * @default 'MeshNormalMaterial'
48
55
  */
@@ -48,7 +48,12 @@ export interface MeshPhysicalMaterialParameters extends MeshStandardMaterialPara
48
48
  export class MeshPhysicalMaterial extends MeshStandardMaterial {
49
49
  constructor(parameters?: MeshPhysicalMaterialParameters);
50
50
 
51
- isMeshPhysicalMaterial: boolean;
51
+ /**
52
+ * Read-only flag to check if a given object is of type {@link MeshPhysicalMaterial}.
53
+ * @remarks This is a _constant_ value
54
+ * @defaultValue `true`
55
+ */
56
+ readonly isMeshPhysicalMaterial: true;
52
57
 
53
58
  /**
54
59
  * @default 'MeshPhysicalMaterial'
@@ -38,6 +38,13 @@ export interface MeshStandardMaterialParameters extends MaterialParameters {
38
38
  export class MeshStandardMaterial extends Material {
39
39
  constructor(parameters?: MeshStandardMaterialParameters);
40
40
 
41
+ /**
42
+ * Read-only flag to check if a given object is of type {@link MeshStandardMaterial}.
43
+ * @remarks This is a _constant_ value
44
+ * @defaultValue `true`
45
+ */
46
+ readonly isMeshStandardMaterial: true;
47
+
41
48
  /**
42
49
  * @default 'MeshStandardMaterial'
43
50
  */
@@ -200,7 +207,5 @@ export class MeshStandardMaterial extends Material {
200
207
  */
201
208
  fog: boolean;
202
209
 
203
- isMeshStandardMaterial: boolean;
204
-
205
210
  setValues(parameters: MeshStandardMaterialParameters): void;
206
211
  }
@@ -36,6 +36,13 @@ export interface MeshToonMaterialParameters extends MaterialParameters {
36
36
  export class MeshToonMaterial extends Material {
37
37
  constructor(parameters?: MeshToonMaterialParameters);
38
38
 
39
+ /**
40
+ * Read-only flag to check if a given object is of type {@link MeshToonMaterial}.
41
+ * @remarks This is a _constant_ value
42
+ * @defaultValue `true`
43
+ */
44
+ readonly isMeshToonMaterial: true;
45
+
39
46
  /**
40
47
  * @default 'MeshToonMaterial'
41
48
  */
@@ -14,6 +14,13 @@ export interface PointsMaterialParameters extends MaterialParameters {
14
14
  export class PointsMaterial extends Material {
15
15
  constructor(parameters?: PointsMaterialParameters);
16
16
 
17
+ /**
18
+ * Read-only flag to check if a given object is of type {@link PointsMaterial}.
19
+ * @remarks This is a _constant_ value
20
+ * @defaultValue `true`
21
+ */
22
+ readonly isPointsMaterial: true;
23
+
17
24
  /**
18
25
  * @default 'PointsMaterial'
19
26
  */
@@ -2,4 +2,13 @@ import { ShaderMaterialParameters, ShaderMaterial } from './ShaderMaterial.js';
2
2
 
3
3
  export class RawShaderMaterial extends ShaderMaterial {
4
4
  constructor(parameters?: ShaderMaterialParameters);
5
+
6
+ /**
7
+ * Read-only flag to check if a given object is of type {@link RawShaderMaterial}.
8
+ * @remarks This is a _constant_ value
9
+ * @defaultValue `true`
10
+ */
11
+ readonly isRawShaderMaterial: true;
12
+
13
+ override readonly type: 'RawShaderMaterial';
5
14
  }
@@ -28,6 +28,13 @@ export interface ShaderMaterialParameters extends MaterialParameters {
28
28
  export class ShaderMaterial extends Material {
29
29
  constructor(parameters?: ShaderMaterialParameters);
30
30
 
31
+ /**
32
+ * Read-only flag to check if a given object is of type {@link ShaderMaterial}.
33
+ * @remarks This is a _constant_ value
34
+ * @defaultValue `true`
35
+ */
36
+ readonly isShaderMaterial: true;
37
+
31
38
  /**
32
39
  * @default 'ShaderMaterial'
33
40
  */
@@ -85,13 +92,22 @@ export class ShaderMaterial extends Material {
85
92
  derivatives: any;
86
93
 
87
94
  /**
88
- * @default { derivatives: false, fragDepth: false, drawBuffers: false, shaderTextureLOD: false }
95
+ * @default {
96
+ * derivatives: false,
97
+ * fragDepth: false,
98
+ * drawBuffers: false,
99
+ * shaderTextureLOD: false,
100
+ * clipCullDistance: false,
101
+ * multiDraw: false
102
+ * }
89
103
  */
90
104
  extensions: {
91
105
  derivatives: boolean;
92
106
  fragDepth: boolean;
93
107
  drawBuffers: boolean;
94
108
  shaderTextureLOD: boolean;
109
+ clipCullDistance: boolean;
110
+ multiDraw: boolean;
95
111
  };
96
112
 
97
113
  /**
@@ -114,8 +130,6 @@ export class ShaderMaterial extends Material {
114
130
  */
115
131
  glslVersion: GLSLVersion | null;
116
132
 
117
- isShaderMaterial: boolean;
118
-
119
133
  setValues(parameters: ShaderMaterialParameters): void;
120
134
  toJSON(meta: any): any;
121
135
  }