@nativescript/canvas-three 2.0.0-webgpu.27 → 2.0.0-webgpu.29

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 (487) hide show
  1. package/package.json +1 -1
  2. package/three/src/Three.Legacy.d.ts +13 -13
  3. package/three/src/Three.WebGPU.d.ts +172 -187
  4. package/three/src/Three.d.ts +189 -213
  5. package/three/src/animation/AnimationAction.d.ts +70 -70
  6. package/three/src/animation/AnimationClip.d.ts +41 -50
  7. package/three/src/animation/AnimationMixer.d.ts +26 -30
  8. package/three/src/animation/AnimationObjectGroup.d.ts +13 -13
  9. package/three/src/animation/AnimationUtils.d.ts +11 -31
  10. package/three/src/animation/KeyframeTrack.d.ts +49 -49
  11. package/three/src/animation/PropertyBinding.d.ts +27 -27
  12. package/three/src/animation/PropertyMixer.d.ts +13 -13
  13. package/three/src/animation/tracks/BooleanKeyframeTrack.d.ts +6 -6
  14. package/three/src/animation/tracks/ColorKeyframeTrack.d.ts +7 -7
  15. package/three/src/animation/tracks/NumberKeyframeTrack.d.ts +7 -7
  16. package/three/src/animation/tracks/QuaternionKeyframeTrack.d.ts +7 -7
  17. package/three/src/animation/tracks/StringKeyframeTrack.d.ts +6 -6
  18. package/three/src/animation/tracks/VectorKeyframeTrack.d.ts +7 -7
  19. package/three/src/audio/Audio.d.ts +241 -241
  20. package/three/src/audio/AudioAnalyser.d.ts +23 -23
  21. package/three/src/audio/AudioContext.d.ts +9 -9
  22. package/three/src/audio/AudioListener.d.ts +56 -56
  23. package/three/src/audio/PositionalAudio.d.ts +58 -58
  24. package/three/src/cameras/ArrayCamera.d.ts +17 -17
  25. package/three/src/cameras/Camera.d.ts +55 -55
  26. package/three/src/cameras/CubeCamera.d.ts +29 -29
  27. package/three/src/cameras/OrthographicCamera.d.ts +137 -144
  28. package/three/src/cameras/PerspectiveCamera.d.ts +227 -227
  29. package/three/src/cameras/StereoCamera.d.ts +31 -31
  30. package/three/src/constants.d.ts +134 -258
  31. package/three/src/core/BufferAttribute.d.ts +481 -526
  32. package/three/src/core/BufferGeometry.d.ts +342 -347
  33. package/three/src/core/Clock.d.ts +53 -53
  34. package/three/src/core/EventDispatcher.d.ts +34 -45
  35. package/three/src/core/GLBufferAttribute.d.ts +94 -94
  36. package/three/src/core/InstancedBufferAttribute.d.ts +22 -22
  37. package/three/src/core/InstancedBufferGeometry.d.ts +25 -25
  38. package/three/src/core/InstancedInterleavedBuffer.d.ts +13 -13
  39. package/three/src/core/InterleavedBuffer.d.ts +152 -152
  40. package/three/src/core/InterleavedBufferAttribute.d.ts +194 -194
  41. package/three/src/core/Layers.d.ts +48 -48
  42. package/three/src/core/Object3D.d.ts +616 -644
  43. package/three/src/core/Raycaster.d.ts +136 -144
  44. package/three/src/core/RenderTarget.d.ts +72 -79
  45. package/three/src/core/Uniform.d.ts +16 -16
  46. package/three/src/core/UniformsGroup.d.ts +15 -15
  47. package/three/src/extras/DataUtils.d.ts +2 -2
  48. package/three/src/extras/Earcut.d.ts +6 -6
  49. package/three/src/extras/ImageUtils.d.ts +19 -21
  50. package/three/src/extras/PMREMGenerator.d.ts +49 -49
  51. package/three/src/extras/ShapeUtils.d.ts +14 -14
  52. package/three/src/extras/TextureUtils.d.ts +7 -12
  53. package/three/src/extras/core/Curve.d.ts +132 -132
  54. package/three/src/extras/core/CurvePath.d.ts +55 -55
  55. package/three/src/extras/core/Path.d.ts +108 -126
  56. package/three/src/extras/core/Shape.d.ts +43 -43
  57. package/three/src/extras/core/ShapePath.d.ts +79 -79
  58. package/three/src/extras/curves/ArcCurve.d.ts +24 -31
  59. package/three/src/extras/curves/CatmullRomCurve3.d.ts +44 -44
  60. package/three/src/extras/curves/CubicBezierCurve.d.ts +42 -42
  61. package/three/src/extras/curves/CubicBezierCurve3.d.ts +42 -42
  62. package/three/src/extras/curves/Curves.d.ts +10 -10
  63. package/three/src/extras/curves/EllipseCurve.d.ts +71 -80
  64. package/three/src/extras/curves/LineCurve.d.ts +30 -30
  65. package/three/src/extras/curves/LineCurve3.d.ts +30 -30
  66. package/three/src/extras/curves/QuadraticBezierCurve.d.ts +36 -36
  67. package/three/src/extras/curves/QuadraticBezierCurve3.d.ts +36 -36
  68. package/three/src/extras/curves/SplineCurve.d.ts +24 -24
  69. package/three/src/geometries/BoxGeometry.d.ts +31 -38
  70. package/three/src/geometries/CapsuleGeometry.d.ts +27 -27
  71. package/three/src/geometries/CircleGeometry.d.ts +27 -27
  72. package/three/src/geometries/ConeGeometry.d.ts +36 -44
  73. package/three/src/geometries/CylinderGeometry.d.ts +35 -44
  74. package/three/src/geometries/DodecahedronGeometry.d.ts +15 -15
  75. package/three/src/geometries/EdgesGeometry.d.ts +21 -21
  76. package/three/src/geometries/ExtrudeGeometry.d.ts +97 -110
  77. package/three/src/geometries/Geometries.d.ts +21 -21
  78. package/three/src/geometries/IcosahedronGeometry.d.ts +16 -16
  79. package/three/src/geometries/LatheGeometry.d.ts +29 -29
  80. package/three/src/geometries/OctahedronGeometry.d.ts +15 -15
  81. package/three/src/geometries/PlaneGeometry.d.ts +27 -27
  82. package/three/src/geometries/PolyhedronGeometry.d.ts +27 -27
  83. package/three/src/geometries/RingGeometry.d.ts +31 -38
  84. package/three/src/geometries/ShapeGeometry.d.ts +24 -24
  85. package/three/src/geometries/SphereGeometry.d.ts +39 -47
  86. package/three/src/geometries/TetrahedronGeometry.d.ts +15 -15
  87. package/three/src/geometries/TorusGeometry.d.ts +29 -29
  88. package/three/src/geometries/TorusKnotGeometry.d.ts +31 -38
  89. package/three/src/geometries/TubeGeometry.d.ts +44 -50
  90. package/three/src/geometries/WireframeGeometry.d.ts +19 -19
  91. package/three/src/helpers/ArrowHelper.d.ts +58 -65
  92. package/three/src/helpers/AxesHelper.d.ts +27 -27
  93. package/three/src/helpers/Box3Helper.d.ts +26 -26
  94. package/three/src/helpers/BoxHelper.d.ts +38 -38
  95. package/three/src/helpers/CameraHelper.d.ts +53 -53
  96. package/three/src/helpers/DirectionalLightHelper.d.ts +54 -54
  97. package/three/src/helpers/GridHelper.d.ts +27 -27
  98. package/three/src/helpers/HemisphereLightHelper.d.ts +50 -50
  99. package/three/src/helpers/PlaneHelper.d.ts +32 -32
  100. package/three/src/helpers/PointLightHelper.d.ts +48 -48
  101. package/three/src/helpers/PolarGridHelper.d.ts +26 -33
  102. package/three/src/helpers/SkeletonHelper.d.ts +52 -52
  103. package/three/src/helpers/SpotLightHelper.d.ts +52 -52
  104. package/three/src/lights/AmbientLight.d.ts +20 -20
  105. package/three/src/lights/DirectionalLight.d.ts +68 -68
  106. package/three/src/lights/DirectionalLightShadow.d.ts +22 -22
  107. package/three/src/lights/HemisphereLight.d.ts +37 -37
  108. package/three/src/lights/Light.d.ts +61 -61
  109. package/three/src/lights/LightProbe.d.ts +21 -21
  110. package/three/src/lights/LightShadow.d.ts +157 -157
  111. package/three/src/lights/PointLight.d.ts +74 -74
  112. package/three/src/lights/PointLightShadow.d.ts +14 -14
  113. package/three/src/lights/RectAreaLight.d.ts +49 -49
  114. package/three/src/lights/SpotLight.d.ts +120 -127
  115. package/three/src/lights/SpotLightShadow.d.ts +25 -25
  116. package/three/src/lights/webgpu/IESSpotLight.d.ts +3 -3
  117. package/three/src/loaders/AnimationLoader.d.ts +5 -5
  118. package/three/src/loaders/AudioLoader.d.ts +3 -3
  119. package/three/src/loaders/BufferGeometryLoader.d.ts +6 -6
  120. package/three/src/loaders/Cache.d.ts +12 -12
  121. package/three/src/loaders/CompressedTextureLoader.d.ts +5 -10
  122. package/three/src/loaders/CubeTextureLoader.d.ts +5 -10
  123. package/three/src/loaders/DataTextureLoader.d.ts +5 -10
  124. package/three/src/loaders/FileLoader.d.ts +8 -13
  125. package/three/src/loaders/ImageBitmapLoader.d.ts +10 -15
  126. package/three/src/loaders/ImageLoader.d.ts +4 -9
  127. package/three/src/loaders/Loader.d.ts +39 -44
  128. package/three/src/loaders/LoaderUtils.d.ts +6 -6
  129. package/three/src/loaders/LoadingManager.d.ts +48 -52
  130. package/three/src/loaders/MaterialLoader.d.ts +12 -12
  131. package/three/src/loaders/ObjectLoader.d.ts +20 -30
  132. package/three/src/loaders/TextureLoader.d.ts +5 -10
  133. package/three/src/materials/LineBasicMaterial.d.ts +54 -54
  134. package/three/src/materials/LineDashedMaterial.d.ts +34 -34
  135. package/three/src/materials/Material.d.ts +585 -604
  136. package/three/src/materials/Materials.d.ts +18 -18
  137. package/three/src/materials/MeshBasicMaterial.d.ts +130 -130
  138. package/three/src/materials/MeshDepthMaterial.d.ts +59 -59
  139. package/three/src/materials/MeshDistanceMaterial.d.ts +56 -56
  140. package/three/src/materials/MeshLambertMaterial.d.ts +198 -198
  141. package/three/src/materials/MeshMatcapMaterial.d.ts +111 -111
  142. package/three/src/materials/MeshNormalMaterial.d.ts +87 -87
  143. package/three/src/materials/MeshPhongMaterial.d.ts +222 -222
  144. package/three/src/materials/MeshPhysicalMaterial.d.ts +230 -230
  145. package/three/src/materials/MeshStandardMaterial.d.ts +212 -212
  146. package/three/src/materials/MeshToonMaterial.d.ts +172 -172
  147. package/three/src/materials/PointsMaterial.d.ts +55 -55
  148. package/three/src/materials/RawShaderMaterial.d.ts +9 -9
  149. package/three/src/materials/ShaderMaterial.d.ts +161 -153
  150. package/three/src/materials/ShadowMaterial.d.ts +28 -28
  151. package/three/src/materials/SpriteMaterial.d.ts +51 -51
  152. package/three/src/math/Box2.d.ts +40 -40
  153. package/three/src/math/Box3.d.ts +60 -60
  154. package/three/src/math/Color.d.ts +334 -334
  155. package/three/src/math/ColorManagement.d.ts +19 -31
  156. package/three/src/math/Cylindrical.d.ts +19 -19
  157. package/three/src/math/Euler.d.ts +44 -44
  158. package/three/src/math/Frustum.d.ts +22 -22
  159. package/three/src/math/Interpolant.d.ts +6 -6
  160. package/three/src/math/Line3.d.ts +23 -23
  161. package/three/src/math/MathUtils.d.ts +27 -33
  162. package/three/src/math/Matrix2.d.ts +33 -38
  163. package/three/src/math/Matrix3.d.ts +149 -179
  164. package/three/src/math/Matrix4.d.ts +196 -263
  165. package/three/src/math/Plane.d.ts +39 -39
  166. package/three/src/math/Quaternion.d.ts +156 -171
  167. package/three/src/math/Ray.d.ts +46 -51
  168. package/three/src/math/Sphere.d.ts +39 -39
  169. package/three/src/math/Spherical.d.ts +20 -20
  170. package/three/src/math/SphericalHarmonics3.d.ts +47 -47
  171. package/three/src/math/Triangle.d.ts +45 -77
  172. package/three/src/math/Vector2.d.ts +310 -310
  173. package/three/src/math/Vector3.d.ts +229 -229
  174. package/three/src/math/Vector4.d.ts +228 -228
  175. package/three/src/math/interpolants/CubicInterpolant.d.ts +3 -3
  176. package/three/src/math/interpolants/DiscreteInterpolant.d.ts +3 -3
  177. package/three/src/math/interpolants/LinearInterpolant.d.ts +3 -3
  178. package/three/src/math/interpolants/QuaternionLinearInterpolant.d.ts +3 -3
  179. package/three/src/nodes/Nodes.d.ts +188 -378
  180. package/three/src/nodes/accessors/AccessorsUtils.d.ts +2 -2
  181. package/three/src/nodes/accessors/BatchNode.d.ts +7 -7
  182. package/three/src/nodes/accessors/BitangentNode.d.ts +2 -2
  183. package/three/src/nodes/accessors/BufferAttributeNode.d.ts +25 -50
  184. package/three/src/nodes/accessors/BufferNode.d.ts +7 -11
  185. package/three/src/nodes/accessors/CameraNode.d.ts +5 -5
  186. package/three/src/nodes/accessors/ClippingNode.d.ts +6 -6
  187. package/three/src/nodes/accessors/CubeTextureNode.d.ts +14 -24
  188. package/three/src/nodes/accessors/InstanceNode.d.ts +7 -7
  189. package/three/src/nodes/accessors/MaterialNode.d.ts +82 -82
  190. package/three/src/nodes/accessors/MaterialReferenceNode.d.ts +5 -9
  191. package/three/src/nodes/accessors/ModelNode.d.ts +5 -5
  192. package/three/src/nodes/accessors/ModelViewProjectionNode.d.ts +3 -3
  193. package/three/src/nodes/accessors/NormalNode.d.ts +4 -4
  194. package/three/src/nodes/accessors/Object3DNode.d.ts +13 -13
  195. package/three/src/nodes/accessors/PointUVNode.d.ts +4 -4
  196. package/three/src/nodes/accessors/PositionNode.d.ts +2 -2
  197. package/three/src/nodes/accessors/ReferenceNode.d.ts +12 -17
  198. package/three/src/nodes/accessors/ReflectVectorNode.d.ts +3 -3
  199. package/three/src/nodes/accessors/RendererReferenceNode.d.ts +6 -10
  200. package/three/src/nodes/accessors/SkinningNode.d.ts +11 -11
  201. package/three/src/nodes/accessors/StorageBufferNode.d.ts +16 -28
  202. package/three/src/nodes/accessors/StorageTextureNode.d.ts +17 -29
  203. package/three/src/nodes/accessors/TangentNode.d.ts +5 -5
  204. package/three/src/nodes/accessors/Texture3DNode.d.ts +8 -12
  205. package/three/src/nodes/accessors/TextureBicubicNode.d.ts +10 -10
  206. package/three/src/nodes/accessors/TextureNode.d.ts +23 -33
  207. package/three/src/nodes/accessors/UVNode.d.ts +2 -2
  208. package/three/src/nodes/accessors/UniformsNode.d.ts +11 -11
  209. package/three/src/nodes/accessors/UserDataNode.d.ts +5 -9
  210. package/three/src/nodes/accessors/VertexColorNode.d.ts +5 -5
  211. package/three/src/nodes/code/CodeNode.d.ts +10 -10
  212. package/three/src/nodes/code/ExpressionNode.d.ts +4 -4
  213. package/three/src/nodes/code/FunctionCallNode.d.ts +14 -17
  214. package/three/src/nodes/code/FunctionNode.d.ts +23 -24
  215. package/three/src/nodes/core/AssignNode.d.ts +10 -10
  216. package/three/src/nodes/core/AttributeNode.d.ts +8 -12
  217. package/three/src/nodes/core/BypassNode.d.ts +10 -10
  218. package/three/src/nodes/core/CacheNode.d.ts +11 -11
  219. package/three/src/nodes/core/ConstNode.d.ts +5 -5
  220. package/three/src/nodes/core/ContextNode.d.ts +12 -12
  221. package/three/src/nodes/core/IndexNode.d.ts +8 -8
  222. package/three/src/nodes/core/InputNode.d.ts +9 -9
  223. package/three/src/nodes/core/LightingModel.d.ts +31 -31
  224. package/three/src/nodes/core/MRTNode.d.ts +8 -8
  225. package/three/src/nodes/core/Node.d.ts +100 -97
  226. package/three/src/nodes/core/NodeAttribute.d.ts +6 -6
  227. package/three/src/nodes/core/NodeBuilder.d.ts +122 -132
  228. package/three/src/nodes/core/NodeCache.d.ts +40 -43
  229. package/three/src/nodes/core/NodeCode.d.ts +2 -2
  230. package/three/src/nodes/core/NodeFrame.d.ts +24 -24
  231. package/three/src/nodes/core/NodeFunction.d.ts +8 -8
  232. package/three/src/nodes/core/NodeFunctionInput.d.ts +5 -5
  233. package/three/src/nodes/core/NodeKeywords.d.ts +14 -14
  234. package/three/src/nodes/core/NodeParser.d.ts +2 -2
  235. package/three/src/nodes/core/NodeUniform.d.ts +11 -11
  236. package/three/src/nodes/core/NodeUtils.d.ts +11 -14
  237. package/three/src/nodes/core/NodeVar.d.ts +4 -4
  238. package/three/src/nodes/core/NodeVarying.d.ts +4 -4
  239. package/three/src/nodes/core/OutputStructNode.d.ts +5 -5
  240. package/three/src/nodes/core/PropertyNode.d.ts +6 -6
  241. package/three/src/nodes/core/StackNode.d.ts +9 -9
  242. package/three/src/nodes/core/StructTypeNode.d.ts +5 -5
  243. package/three/src/nodes/core/TempNode.d.ts +5 -5
  244. package/three/src/nodes/core/UniformGroup.d.ts +3 -3
  245. package/three/src/nodes/core/UniformGroupNode.d.ts +7 -7
  246. package/three/src/nodes/core/UniformNode.d.ts +17 -20
  247. package/three/src/nodes/core/VarNode.d.ts +18 -18
  248. package/three/src/nodes/core/VaryingNode.d.ts +12 -12
  249. package/three/src/nodes/core/constants.d.ts +17 -17
  250. package/three/src/nodes/display/AfterImageNode.d.ts +15 -15
  251. package/three/src/nodes/display/AnamorphicNode.d.ts +17 -22
  252. package/three/src/nodes/display/BlendModeNode.d.ts +21 -25
  253. package/three/src/nodes/display/BloomNode.d.ts +19 -24
  254. package/three/src/nodes/display/ColorAdjustmentNode.d.ts +21 -33
  255. package/three/src/nodes/display/ColorSpaceNode.d.ts +18 -21
  256. package/three/src/nodes/display/DenoiseNode.d.ts +22 -28
  257. package/three/src/nodes/display/DepthOfFieldNode.d.ts +16 -22
  258. package/three/src/nodes/display/DotScreenNode.d.ts +15 -20
  259. package/three/src/nodes/display/FXAANode.d.ts +9 -9
  260. package/three/src/nodes/display/FilmNode.d.ts +12 -16
  261. package/three/src/nodes/display/FrontFacingNode.d.ts +4 -4
  262. package/three/src/nodes/display/GTAONode.d.ts +28 -32
  263. package/three/src/nodes/display/GaussianBlurNode.d.ts +17 -21
  264. package/three/src/nodes/display/Lut3DNode.d.ts +16 -21
  265. package/three/src/nodes/display/NormalMapNode.d.ts +12 -12
  266. package/three/src/nodes/display/PassNode.d.ts +30 -30
  267. package/three/src/nodes/display/PixelationPassNode.d.ts +25 -51
  268. package/three/src/nodes/display/PosterizeNode.d.ts +10 -13
  269. package/three/src/nodes/display/RGBShiftNode.d.ts +14 -14
  270. package/three/src/nodes/display/RenderOutputNode.d.ts +14 -18
  271. package/three/src/nodes/display/SobelOperatorNode.d.ts +9 -9
  272. package/three/src/nodes/display/ToneMappingNode.d.ts +14 -22
  273. package/three/src/nodes/display/TransitionNode.d.ts +17 -31
  274. package/three/src/nodes/display/ViewportDepthNode.d.ts +9 -11
  275. package/three/src/nodes/display/ViewportDepthTextureNode.d.ts +5 -8
  276. package/three/src/nodes/display/ViewportNode.d.ts +12 -18
  277. package/three/src/nodes/display/ViewportSharedTextureNode.d.ts +9 -12
  278. package/three/src/nodes/display/ViewportTextureNode.d.ts +16 -24
  279. package/three/src/nodes/fog/FogExp2Node.d.ts +10 -10
  280. package/three/src/nodes/fog/FogNode.d.ts +13 -16
  281. package/three/src/nodes/fog/FogRangeNode.d.ts +12 -16
  282. package/three/src/nodes/functions/BSDF/BRDF_GGX.d.ts +4 -12
  283. package/three/src/nodes/functions/BSDF/BRDF_Lambert.d.ts +3 -3
  284. package/three/src/nodes/functions/BSDF/BRDF_Sheen.d.ts +3 -3
  285. package/three/src/nodes/functions/BSDF/DFGApprox.d.ts +3 -3
  286. package/three/src/nodes/functions/BSDF/D_GGX.d.ts +3 -3
  287. package/three/src/nodes/functions/BSDF/D_GGX_Anisotropic.d.ts +4 -6
  288. package/three/src/nodes/functions/BSDF/F_Schlick.d.ts +3 -3
  289. package/three/src/nodes/functions/BSDF/LTC.d.ts +2 -4
  290. package/three/src/nodes/functions/BSDF/V_GGX_SmithCorrelated.d.ts +4 -8
  291. package/three/src/nodes/functions/BSDF/V_GGX_SmithCorrelated_Anisotropic.d.ts +4 -13
  292. package/three/src/nodes/functions/BasicLightingModel.d.ts +2 -2
  293. package/three/src/nodes/functions/PhongLightingModel.d.ts +3 -3
  294. package/three/src/nodes/functions/PhysicalLightingModel.d.ts +17 -24
  295. package/three/src/nodes/functions/ShadowMaskModel.d.ts +5 -5
  296. package/three/src/nodes/functions/ToonLightingModel.d.ts +2 -3
  297. package/three/src/nodes/functions/material/getGeometryRoughness.d.ts +2 -2
  298. package/three/src/nodes/functions/material/getRoughness.d.ts +3 -3
  299. package/three/src/nodes/geometry/RangeNode.d.ts +11 -11
  300. package/three/src/nodes/gpgpu/ComputeNode.d.ts +12 -16
  301. package/three/src/nodes/lighting/AONode.d.ts +4 -4
  302. package/three/src/nodes/lighting/AnalyticLightNode.d.ts +4 -4
  303. package/three/src/nodes/lighting/BasicEnvironmentNode.d.ts +4 -4
  304. package/three/src/nodes/lighting/BasicLightMapNode.d.ts +3 -3
  305. package/three/src/nodes/lighting/EnvironmentNode.d.ts +4 -4
  306. package/three/src/nodes/lighting/HemisphereLightNode.d.ts +8 -8
  307. package/three/src/nodes/lighting/IrradianceNode.d.ts +4 -4
  308. package/three/src/nodes/lighting/LightUtils.d.ts +4 -8
  309. package/three/src/nodes/lighting/LightingContextNode.d.ts +13 -18
  310. package/three/src/nodes/lighting/LightingNode.d.ts +3 -3
  311. package/three/src/nodes/lighting/LightsNode.d.ts +10 -13
  312. package/three/src/nodes/lighting/PointLightNode.d.ts +6 -6
  313. package/three/src/nodes/lighting/RectAreaLightNode.d.ts +12 -12
  314. package/three/src/nodes/lighting/SpotLightNode.d.ts +9 -9
  315. package/three/src/nodes/loaders/NodeLoader.d.ts +9 -9
  316. package/three/src/nodes/loaders/NodeMaterialLoader.d.ts +4 -4
  317. package/three/src/nodes/loaders/NodeObjectLoader.d.ts +6 -6
  318. package/three/src/nodes/materials/Line2NodeMaterial.d.ts +37 -37
  319. package/three/src/nodes/materials/LineBasicNodeMaterial.d.ts +15 -16
  320. package/three/src/nodes/materials/Materials.d.ts +15 -15
  321. package/three/src/nodes/materials/MeshBasicNodeMaterial.d.ts +29 -30
  322. package/three/src/nodes/materials/MeshMatcapNodeMaterial.d.ts +25 -26
  323. package/three/src/nodes/materials/MeshNormalNodeMaterial.d.ts +21 -22
  324. package/three/src/nodes/materials/MeshPhongNodeMaterial.d.ts +48 -49
  325. package/three/src/nodes/materials/MeshPhysicalNodeMaterial.d.ts +73 -76
  326. package/three/src/nodes/materials/MeshSSSNodeMaterial.d.ts +11 -11
  327. package/three/src/nodes/materials/MeshStandardNodeMaterial.d.ts +47 -48
  328. package/three/src/nodes/materials/MeshToonNodeMaterial.d.ts +35 -36
  329. package/three/src/nodes/materials/NodeMaterial.d.ts +108 -108
  330. package/three/src/nodes/materials/PointsNodeMaterial.d.ts +15 -16
  331. package/three/src/nodes/materials/ShadowNodeMaterial.d.ts +10 -11
  332. package/three/src/nodes/materials/SpriteNodeMaterial.d.ts +18 -19
  333. package/three/src/nodes/materials/VolumeNodeMaterial.d.ts +6 -6
  334. package/three/src/nodes/materialx/MaterialXNodes.d.ts +21 -92
  335. package/three/src/nodes/materialx/lib/mx_hsv.d.ts +2 -2
  336. package/three/src/nodes/materialx/lib/mx_noise.d.ts +76 -296
  337. package/three/src/nodes/materialx/lib/mx_transform_color.d.ts +2 -2
  338. package/three/src/nodes/math/CondNode.d.ts +11 -15
  339. package/three/src/nodes/math/HashNode.d.ts +8 -8
  340. package/three/src/nodes/math/MathNode.d.ts +168 -188
  341. package/three/src/nodes/math/MathUtils.d.ts +8 -8
  342. package/three/src/nodes/math/OperatorNode.d.ts +32 -54
  343. package/three/src/nodes/math/TriNoise3D.d.ts +3 -7
  344. package/three/src/nodes/pmrem/PMREMNode.d.ts +10 -14
  345. package/three/src/nodes/procedural/CheckerNode.d.ts +8 -8
  346. package/three/src/nodes/shadernode/ShaderNode.d.ts +94 -141
  347. package/three/src/nodes/utils/ArrayElementNode.d.ts +5 -5
  348. package/three/src/nodes/utils/ConvertNode.d.ts +4 -4
  349. package/three/src/nodes/utils/DiscardNode.d.ts +8 -8
  350. package/three/src/nodes/utils/EquirectUVNode.d.ts +3 -3
  351. package/three/src/nodes/utils/JoinNode.d.ts +4 -4
  352. package/three/src/nodes/utils/MatcapUVNode.d.ts +3 -3
  353. package/three/src/nodes/utils/MaxMipLevelNode.d.ts +7 -7
  354. package/three/src/nodes/utils/OscNode.d.ts +10 -14
  355. package/three/src/nodes/utils/PackingNode.d.ts +11 -11
  356. package/three/src/nodes/utils/RTTNode.d.ts +23 -28
  357. package/three/src/nodes/utils/ReflectorNode.d.ts +19 -19
  358. package/three/src/nodes/utils/RemapNode.d.ts +16 -28
  359. package/three/src/nodes/utils/RotateNode.d.ts +11 -14
  360. package/three/src/nodes/utils/RotateUVNode.d.ts +11 -11
  361. package/three/src/nodes/utils/SplitNode.d.ts +10 -10
  362. package/three/src/nodes/utils/SpriteSheetUVNode.d.ts +7 -11
  363. package/three/src/nodes/utils/StoargeArrayElementNode.d.ts +13 -16
  364. package/three/src/nodes/utils/TimerNode.d.ts +10 -14
  365. package/three/src/nodes/utils/TriplanarTexturesNode.d.ts +16 -33
  366. package/three/src/objects/BatchedMesh.d.ts +151 -155
  367. package/three/src/objects/Bone.d.ts +16 -16
  368. package/three/src/objects/Group.d.ts +16 -16
  369. package/three/src/objects/InstancedMesh.d.ts +151 -155
  370. package/three/src/objects/LOD.d.ts +66 -66
  371. package/three/src/objects/Line.d.ts +51 -55
  372. package/three/src/objects/LineLoop.d.ts +22 -26
  373. package/three/src/objects/LineSegments.d.ts +24 -28
  374. package/three/src/objects/Mesh.d.ts +57 -61
  375. package/three/src/objects/Points.d.ts +53 -57
  376. package/three/src/objects/Skeleton.d.ts +90 -90
  377. package/three/src/objects/SkinnedMesh.d.ts +111 -115
  378. package/three/src/objects/Sprite.d.ts +41 -41
  379. package/three/src/renderers/WebGL3DRenderTarget.d.ts +20 -20
  380. package/three/src/renderers/WebGLArrayRenderTarget.d.ts +20 -20
  381. package/three/src/renderers/WebGLCubeRenderTarget.d.ts +11 -11
  382. package/three/src/renderers/WebGLRenderTarget.d.ts +4 -4
  383. package/three/src/renderers/WebGLRenderer.d.ts +497 -543
  384. package/three/src/renderers/common/Animation.d.ts +10 -10
  385. package/three/src/renderers/common/Attributes.d.ts +16 -16
  386. package/three/src/renderers/common/Backend.d.ts +9 -9
  387. package/three/src/renderers/common/Background.d.ts +17 -17
  388. package/three/src/renderers/common/BindGroup.d.ts +6 -6
  389. package/three/src/renderers/common/Binding.d.ts +5 -5
  390. package/three/src/renderers/common/Bindings.d.ts +29 -36
  391. package/three/src/renderers/common/Buffer.d.ts +8 -8
  392. package/three/src/renderers/common/ChainMap.d.ts +5 -5
  393. package/three/src/renderers/common/ClippingContext.d.ts +20 -20
  394. package/three/src/renderers/common/Color4.d.ts +7 -7
  395. package/three/src/renderers/common/ComputePipeline.d.ts +5 -5
  396. package/three/src/renderers/common/Constants.d.ts +3 -3
  397. package/three/src/renderers/common/CubeRenderTarget.d.ts +7 -7
  398. package/three/src/renderers/common/DataMap.d.ts +26 -16
  399. package/three/src/renderers/common/Geometries.d.ts +25 -25
  400. package/three/src/renderers/common/Info.d.ts +31 -31
  401. package/three/src/renderers/common/Pipeline.d.ts +3 -3
  402. package/three/src/renderers/common/Pipelines.d.ts +45 -60
  403. package/three/src/renderers/common/PostProcessing.d.ts +10 -10
  404. package/three/src/renderers/common/ProgrammableStage.d.ts +7 -12
  405. package/three/src/renderers/common/QuadMesh.d.ts +8 -8
  406. package/three/src/renderers/common/RenderBundle.d.ts +6 -6
  407. package/three/src/renderers/common/RenderBundles.d.ts +8 -8
  408. package/three/src/renderers/common/RenderContext.d.ts +38 -38
  409. package/three/src/renderers/common/RenderContexts.d.ts +12 -12
  410. package/three/src/renderers/common/RenderList.d.ts +35 -59
  411. package/three/src/renderers/common/RenderLists.d.ts +8 -8
  412. package/three/src/renderers/common/RenderObject.d.ts +59 -74
  413. package/three/src/renderers/common/RenderObjects.d.ts +28 -59
  414. package/three/src/renderers/common/RenderPipeline.d.ts +5 -5
  415. package/three/src/renderers/common/Renderer.d.ts +178 -272
  416. package/three/src/renderers/common/SampledTexture.d.ts +13 -13
  417. package/three/src/renderers/common/Sampler.d.ts +6 -6
  418. package/three/src/renderers/common/StorageBufferAttribute.d.ts +3 -3
  419. package/three/src/renderers/common/StorageInstancedBufferAttribute.d.ts +4 -4
  420. package/three/src/renderers/common/StorageTexture.d.ts +2 -2
  421. package/three/src/renderers/common/Textures.d.ts +53 -53
  422. package/three/src/renderers/common/Uniform.d.ts +28 -28
  423. package/three/src/renderers/common/UniformBuffer.d.ts +3 -3
  424. package/three/src/renderers/common/UniformsGroup.d.ts +20 -29
  425. package/three/src/renderers/common/extras/PMREMGenerator.d.ts +5 -5
  426. package/three/src/renderers/common/nodes/NodeBuilderState.d.ts +16 -27
  427. package/three/src/renderers/common/nodes/NodeSampledTexture.d.ts +12 -17
  428. package/three/src/renderers/common/nodes/NodeSampler.d.ts +7 -7
  429. package/three/src/renderers/common/nodes/NodeUniform.d.ts +31 -54
  430. package/three/src/renderers/common/nodes/NodeUniformsGroup.d.ts +7 -7
  431. package/three/src/renderers/common/nodes/Nodes.d.ts +86 -96
  432. package/three/src/renderers/shaders/ShaderChunk.d.ts +139 -139
  433. package/three/src/renderers/shaders/ShaderLib.d.ts +21 -21
  434. package/three/src/renderers/shaders/UniformsLib.d.ts +182 -182
  435. package/three/src/renderers/shaders/UniformsUtils.d.ts +4 -4
  436. package/three/src/renderers/webgl/WebGLAttributes.d.ts +15 -15
  437. package/three/src/renderers/webgl/WebGLBindingStates.d.ts +16 -22
  438. package/three/src/renderers/webgl/WebGLBufferRenderer.d.ts +8 -17
  439. package/three/src/renderers/webgl/WebGLCapabilities.d.ts +21 -21
  440. package/three/src/renderers/webgl/WebGLClipping.d.ts +19 -19
  441. package/three/src/renderers/webgl/WebGLCubeMaps.d.ts +4 -4
  442. package/three/src/renderers/webgl/WebGLCubeUVMaps.d.ts +5 -5
  443. package/three/src/renderers/webgl/WebGLExtensions.d.ts +4 -4
  444. package/three/src/renderers/webgl/WebGLGeometries.d.ts +9 -9
  445. package/three/src/renderers/webgl/WebGLIndexedBufferRenderer.d.ts +7 -12
  446. package/three/src/renderers/webgl/WebGLInfo.d.ts +29 -29
  447. package/three/src/renderers/webgl/WebGLLights.d.ts +41 -41
  448. package/three/src/renderers/webgl/WebGLObjects.d.ts +3 -3
  449. package/three/src/renderers/webgl/WebGLProgram.d.ts +24 -24
  450. package/three/src/renderers/webgl/WebGLPrograms.d.ts +156 -177
  451. package/three/src/renderers/webgl/WebGLProperties.d.ts +5 -5
  452. package/three/src/renderers/webgl/WebGLRenderLists.d.ts +42 -56
  453. package/three/src/renderers/webgl/WebGLShadowMap.d.ts +29 -29
  454. package/three/src/renderers/webgl/WebGLState.d.ts +54 -99
  455. package/three/src/renderers/webgl/WebGLTextures.d.ts +18 -26
  456. package/three/src/renderers/webgl/WebGLUniforms.d.ts +7 -7
  457. package/three/src/renderers/webgl/WebGLUniformsGroups.d.ts +12 -12
  458. package/three/src/renderers/webgl/WebGLUtils.d.ts +4 -7
  459. package/three/src/renderers/webgl-fallback/WebGLBackend.d.ts +6 -6
  460. package/three/src/renderers/webgpu/WebGPUBackend.d.ts +11 -11
  461. package/three/src/renderers/webgpu/WebGPURenderer.d.ts +4 -4
  462. package/three/src/renderers/webgpu/nodes/WGSLNodeBuilder.d.ts +57 -107
  463. package/three/src/renderers/webgpu/nodes/WGSLNodeFunction.d.ts +3 -3
  464. package/three/src/renderers/webgpu/nodes/WGSLNodeParser.d.ts +3 -3
  465. package/three/src/renderers/webgpu/utils/WebGPUConstants.d.ts +257 -257
  466. package/three/src/renderers/webxr/WebXRController.d.ts +36 -36
  467. package/three/src/renderers/webxr/WebXRDepthSensing.d.ts +13 -13
  468. package/three/src/renderers/webxr/WebXRManager.d.ts +50 -50
  469. package/three/src/scenes/Fog.d.ts +54 -54
  470. package/three/src/scenes/FogExp2.d.ts +43 -43
  471. package/three/src/scenes/Scene.d.ts +98 -98
  472. package/three/src/textures/CanvasTexture.d.ts +21 -38
  473. package/three/src/textures/CompressedArrayTexture.d.ts +45 -52
  474. package/three/src/textures/CompressedCubeTexture.d.ts +5 -9
  475. package/three/src/textures/CompressedTexture.d.ts +56 -77
  476. package/three/src/textures/CubeTexture.d.ts +55 -63
  477. package/three/src/textures/Data3DTexture.d.ts +53 -53
  478. package/three/src/textures/DataArrayTexture.d.ts +76 -76
  479. package/three/src/textures/DataTexture.d.ts +55 -76
  480. package/three/src/textures/DepthTexture.d.ts +67 -86
  481. package/three/src/textures/FramebufferTexture.d.ts +29 -29
  482. package/three/src/textures/Source.d.ts +55 -55
  483. package/three/src/textures/Texture.d.ts +407 -439
  484. package/three/src/textures/VideoTexture.d.ts +45 -62
  485. package/three/src/textures/types.d.ts +4 -4
  486. package/three/three.webgpu.d.ts +1 -1
  487. package/three.webgpu.d.ts +1 -1
@@ -1,59 +1,56 @@
1
- import { Box3 } from "../math/Box3.js";
2
- import { Matrix4 } from "../math/Matrix4.js";
3
- import { Quaternion } from "../math/Quaternion.js";
4
- import { Sphere } from "../math/Sphere.js";
5
- import { Vector2 } from "../math/Vector2.js";
6
- import { Vector3, Vector3Tuple } from "../math/Vector3.js";
7
- import { BufferAttribute, BufferAttributeJSON } from "./BufferAttribute.js";
8
- import { EventDispatcher } from "./EventDispatcher.js";
9
- import { GLBufferAttribute } from "./GLBufferAttribute.js";
10
- import { InterleavedBufferAttribute } from "./InterleavedBufferAttribute.js";
1
+ import { Box3 } from '../math/Box3.js';
2
+ import { Matrix4 } from '../math/Matrix4.js';
3
+ import { Quaternion } from '../math/Quaternion.js';
4
+ import { Sphere } from '../math/Sphere.js';
5
+ import { Vector2 } from '../math/Vector2.js';
6
+ import { Vector3, Vector3Tuple } from '../math/Vector3.js';
7
+ import { BufferAttribute, BufferAttributeJSON } from './BufferAttribute.js';
8
+ import { EventDispatcher } from './EventDispatcher.js';
9
+ import { GLBufferAttribute } from './GLBufferAttribute.js';
10
+ import { InterleavedBufferAttribute } from './InterleavedBufferAttribute.js';
11
11
 
12
12
  export type NormalBufferAttributes = Record<string, BufferAttribute | InterleavedBufferAttribute>;
13
- export type NormalOrGLBufferAttributes = Record<
14
- string,
15
- BufferAttribute | InterleavedBufferAttribute | GLBufferAttribute
16
- >;
13
+ export type NormalOrGLBufferAttributes = Record<string, BufferAttribute | InterleavedBufferAttribute | GLBufferAttribute>;
17
14
 
18
15
  export interface BufferGeometryJSON {
19
- metadata?: { version: number; type: string; generator: string };
16
+ metadata?: { version: number; type: string; generator: string };
20
17
 
21
- uuid: string;
22
- type: string;
18
+ uuid: string;
19
+ type: string;
23
20
 
24
- name?: string;
25
- userData?: Record<string, unknown>;
21
+ name?: string;
22
+ userData?: Record<string, unknown>;
26
23
 
27
- data?: {
28
- attributes: Record<string, BufferAttributeJSON>;
24
+ data?: {
25
+ attributes: Record<string, BufferAttributeJSON>;
29
26
 
30
- index?: { type: string; array: number[] };
27
+ index?: { type: string; array: number[] };
31
28
 
32
- morphAttributes?: Record<string, BufferAttributeJSON[]>;
33
- morphTargetsRelative?: boolean;
29
+ morphAttributes?: Record<string, BufferAttributeJSON[]>;
30
+ morphTargetsRelative?: boolean;
34
31
 
35
- groups?: GeometryGroup[];
32
+ groups?: GeometryGroup[];
36
33
 
37
- boundingSphere?: { center: Vector3Tuple; radius: number };
38
- };
34
+ boundingSphere?: { center: Vector3Tuple; radius: number };
35
+ };
39
36
  }
40
37
 
41
38
  export interface GeometryGroup {
42
- /**
43
- * Specifies the first element in this draw call – the first vertex for non-indexed geometry, otherwise the first triangle index.
44
- * @remarks Expects a `Integer`
45
- */
46
- start: number;
47
- /**
48
- * Specifies how many vertices (or indices) are included.
49
- * @remarks Expects a `Integer`
50
- */
51
- count: number;
52
- /**
53
- * Specifies the material array index to use.
54
- * @remarks Expects a `Integer`
55
- */
56
- materialIndex?: number | undefined;
39
+ /**
40
+ * Specifies the first element in this draw call – the first vertex for non-indexed geometry, otherwise the first triangle index.
41
+ * @remarks Expects a `Integer`
42
+ */
43
+ start: number;
44
+ /**
45
+ * Specifies how many vertices (or indices) are included.
46
+ * @remarks Expects a `Integer`
47
+ */
48
+ count: number;
49
+ /**
50
+ * Specifies the material array index to use.
51
+ * @remarks Expects a `Integer`
52
+ */
53
+ materialIndex?: number | undefined;
57
54
  }
58
55
 
59
56
  /**
@@ -114,309 +111,307 @@ export interface GeometryGroup {
114
111
  * @see {@link https://threejs.org/docs/index.html#api/en/core/BufferGeometry | Official Documentation}
115
112
  * @see {@link https://github.com/mrdoob/three.js/blob/master/src/core/BufferGeometry.js | Source}
116
113
  */
117
- export class BufferGeometry<
118
- Attributes extends NormalOrGLBufferAttributes = NormalBufferAttributes,
119
- > extends EventDispatcher<{ dispose: {} }> {
120
- /**
121
- * This creates a new {@link THREE.BufferGeometry | BufferGeometry} object.
122
- */
123
- constructor();
124
-
125
- /**
126
- * Unique number for this {@link THREE.BufferGeometry | BufferGeometry} instance.
127
- * @remarks Expects a `Integer`
128
- */
129
- id: number;
130
-
131
- /**
132
- * {@link http://en.wikipedia.org/wiki/Universally_unique_identifier | UUID} of this object instance.
133
- * @remarks This gets automatically assigned and shouldn't be edited.
134
- */
135
- uuid: string;
136
-
137
- /**
138
- * Optional name for this {@link THREE.BufferGeometry | BufferGeometry} instance.
139
- * @defaultValue `''`
140
- */
141
- name: string;
142
-
143
- /**
144
- * A Read-only _string_ to check if `this` object type.
145
- * @remarks Sub-classes will update this value.
146
- * @defaultValue `BufferGeometry`
147
- */
148
- readonly type: string | "BufferGeometry";
149
-
150
- /**
151
- * Allows for vertices to be re-used across multiple triangles; this is called using "indexed triangles".
152
- * Each triangle is associated with the indices of three vertices. This attribute therefore stores the index of each vertex for each triangular face.
153
- * If this attribute is not set, the {@link THREE.WebGLRenderer | renderer} assumes that each three contiguous positions represent a single triangle.
154
- * @defaultValue `null`
155
- */
156
- index: BufferAttribute | null;
157
-
158
- /**
159
- * This hashmap has as id the name of the attribute to be set and as value the {@link THREE.BufferAttribute | buffer} to set it to. Rather than accessing this property directly,
160
- * use {@link setAttribute | .setAttribute} and {@link getAttribute | .getAttribute} to access attributes of this geometry.
161
- * @defaultValue `{}`
162
- */
163
- attributes: Attributes;
164
-
165
- /**
166
- * Hashmap of {@link THREE.BufferAttribute | BufferAttributes} holding details of the geometry's morph targets.
167
- * @remarks
168
- * Once the geometry has been rendered, the morph attribute data cannot be changed.
169
- * You will have to call {@link dispose | .dispose}(), and create a new instance of {@link THREE.BufferGeometry | BufferGeometry}.
170
- * @defaultValue `{}`
171
- */
172
- morphAttributes: {
173
- [name: string]: Array<BufferAttribute | InterleavedBufferAttribute>; // TODO Replace for 'Record<>'
174
- };
175
-
176
- /**
177
- * Used to control the morph target behavior; when set to true, the morph target data is treated as relative offsets, rather than as absolute positions/normals.
178
- * @defaultValue `false`
179
- */
180
- morphTargetsRelative: boolean;
181
-
182
- /**
183
- * Split the geometry into groups, each of which will be rendered in a separate WebGL draw call. This allows an array of materials to be used with the geometry.
184
- * @remarks Every vertex and index must belong to exactly one group — groups must not share vertices or indices, and must not leave vertices or indices unused.
185
- * @remarks Use {@link addGroup | .addGroup} to add groups, rather than modifying this array directly.
186
- * @defaultValue `[]`
187
- */
188
- groups: GeometryGroup[];
189
-
190
- /**
191
- * Bounding box for the {@link THREE.BufferGeometry | BufferGeometry}, which can be calculated with {@link computeBoundingBox | .computeBoundingBox()}.
192
- * @remarks Bounding boxes aren't computed by default. They need to be explicitly computed, otherwise they are `null`.
193
- * @defaultValue `null`
194
- */
195
- boundingBox: Box3 | null;
196
-
197
- /**
198
- * Bounding sphere for the {@link THREE.BufferGeometry | BufferGeometry}, which can be calculated with {@link computeBoundingSphere | .computeBoundingSphere()}.
199
- * @remarks bounding spheres aren't computed by default. They need to be explicitly computed, otherwise they are `null`.
200
- * @defaultValue `null`
201
- */
202
- boundingSphere: Sphere | null;
203
-
204
- /**
205
- * Determines the part of the geometry to render. This should not be set directly, instead use {@link setDrawRange | .setDrawRange(...)}.
206
- * @remarks For non-indexed {@link THREE.BufferGeometry | BufferGeometry}, count is the number of vertices to render.
207
- * @remarks For indexed {@link THREE.BufferGeometry | BufferGeometry}, count is the number of indices to render.
208
- * @defaultValue `{ start: 0, count: Infinity }`
209
- */
210
- drawRange: { start: number; count: number };
211
-
212
- /**
213
- * An object that can be used to store custom data about the BufferGeometry. It should not hold references to functions as these will not be cloned.
214
- * @defaultValue `{}`
215
- */
216
- userData: Record<string, any>;
217
-
218
- /**
219
- * Read-only flag to check if a given object is of type {@link BufferGeometry}.
220
- * @remarks This is a _constant_ value
221
- * @defaultValue `true`
222
- */
223
- readonly isBufferGeometry: true;
224
-
225
- /**
226
- * Return the {@link index | .index} buffer.
227
- */
228
- getIndex(): BufferAttribute | null;
229
-
230
- /**
231
- * Set the {@link THREE.BufferGeometry.index | .index} buffer.
232
- * @param index
233
- */
234
- setIndex(index: BufferAttribute | number[] | null): this;
235
-
236
- /**
237
- * Sets an {@link attributes | attribute} to this geometry with the specified name.
238
- * @remarks
239
- * Use this rather than the attributes property, because an internal hashmap of {@link attributes | .attributes} is maintained to speed up iterating over attributes.
240
- * @param name
241
- * @param attribute
242
- */
243
- setAttribute<K extends keyof Attributes>(name: K, attribute: Attributes[K]): this;
244
-
245
- /**
246
- * Returns the {@link attributes | attribute} with the specified name.
247
- * @param name
248
- */
249
- getAttribute<K extends keyof Attributes>(name: K): Attributes[K];
250
-
251
- /**
252
- * Deletes the {@link attributes | attribute} with the specified name.
253
- * @param name
254
- */
255
- deleteAttribute(name: keyof Attributes): this;
256
-
257
- /**
258
- * Returns true if the {@link attributes | attribute} with the specified name exists.
259
- * @param name
260
- */
261
- hasAttribute(name: keyof Attributes): boolean;
262
-
263
- /**
264
- * Adds a group to this geometry
265
- * @see the {@link BufferGeometry.groups | groups} property for details.
266
- * @param start
267
- * @param count
268
- * @param materialIndex
269
- */
270
- addGroup(start: number, count: number, materialIndex?: number): void;
271
-
272
- /**
273
- * Clears all groups.
274
- */
275
- clearGroups(): void;
276
-
277
- /**
278
- * Set the {@link drawRange | .drawRange} property
279
- * @remarks For non-indexed BufferGeometry, count is the number of vertices to render
280
- * @remarks For indexed BufferGeometry, count is the number of indices to render.
281
- * @param start
282
- * @param count is the number of vertices or indices to render. Expects a `Integer`
283
- */
284
- setDrawRange(start: number, count: number): void;
285
-
286
- /**
287
- * Applies the matrix transform to the geometry.
288
- * @param matrix
289
- */
290
- applyMatrix4(matrix: Matrix4): this;
291
-
292
- /**
293
- * Applies the rotation represented by the quaternion to the geometry.
294
- * @param quaternion
295
- */
296
- applyQuaternion(quaternion: Quaternion): this;
297
-
298
- /**
299
- * Rotate the geometry about the X axis. This is typically done as a one time operation, and not during a loop.
300
- * @remarks Use {@link THREE.Object3D.rotation | Object3D.rotation} for typical real-time mesh rotation.
301
- * @param angle radians. Expects a `Float`
302
- */
303
- rotateX(angle: number): this;
304
-
305
- /**
306
- * Rotate the geometry about the Y axis.
307
- * @remarks This is typically done as a one time operation, and not during a loop.
308
- * @remarks Use {@link THREE.Object3D.rotation | Object3D.rotation} for typical real-time mesh rotation.
309
- * @param angle radians. Expects a `Float`
310
- */
311
- rotateY(angle: number): this;
312
-
313
- /**
314
- * Rotate the geometry about the Z axis.
315
- * @remarks This is typically done as a one time operation, and not during a loop.
316
- * @remarks Use {@link THREE.Object3D.rotation | Object3D.rotation} for typical real-time mesh rotation.
317
- * @param angle radians. Expects a `Float`
318
- */
319
- rotateZ(angle: number): this;
320
-
321
- /**
322
- * Translate the geometry.
323
- * @remarks This is typically done as a one time operation, and not during a loop.
324
- * @remarks Use {@link THREE.Object3D.position | Object3D.position} for typical real-time mesh rotation.
325
- * @param x Expects a `Float`
326
- * @param y Expects a `Float`
327
- * @param z Expects a `Float`
328
- */
329
- translate(x: number, y: number, z: number): this;
330
-
331
- /**
332
- * Scale the geometry data.
333
- * @remarks This is typically done as a one time operation, and not during a loop.
334
- * @remarks Use {@link THREE.Object3D.scale | Object3D.scale} for typical real-time mesh scaling.
335
- * @param x Expects a `Float`
336
- * @param y Expects a `Float`
337
- * @param z Expects a `Float`
338
- */
339
- scale(x: number, y: number, z: number): this;
340
-
341
- /**
342
- * Rotates the geometry to face a point in space.
343
- * @remarks This is typically done as a one time operation, and not during a loop.
344
- * @remarks Use {@link THREE.Object3D.lookAt | Object3D.lookAt} for typical real-time mesh usage.
345
- * @param vector A world vector to look at.
346
- */
347
- lookAt(vector: Vector3): this;
348
-
349
- /**
350
- * Center the geometry based on the bounding box.
351
- */
352
- center(): this;
353
-
354
- /**
355
- * Sets the attributes for this BufferGeometry from an array of points.
356
- * @param points
357
- */
358
- setFromPoints(points: Vector3[] | Vector2[]): this;
359
-
360
- /**
361
- * Computes the bounding box of the geometry, and updates the {@link .boundingBox} attribute. The bounding box is
362
- * not computed by the engine; it must be computed by your app. You may need to recompute the bounding box if the
363
- * geometry vertices are modified.
364
- */
365
- computeBoundingBox(): void;
366
-
367
- /**
368
- * Computes the bounding sphere of the geometry, and updates the {@link .boundingSphere} attribute. The engine
369
- * automatically computes the bounding sphere when it is needed, e.g., for ray casting or view frustum culling. You
370
- * may need to recompute the bounding sphere if the geometry vertices are modified.
371
- */
372
- computeBoundingSphere(): void;
373
-
374
- /**
375
- * Calculates and adds a tangent attribute to this geometry.
376
- * The computation is only supported for indexed geometries and if position, normal, and uv attributes are defined
377
- * @remarks
378
- * When using a tangent space normal map, prefer the MikkTSpace algorithm provided by
379
- * {@link BufferGeometryUtils.computeMikkTSpaceTangents} instead.
380
- */
381
- computeTangents(): void;
382
-
383
- /**
384
- * Computes vertex normals for the given vertex data. For indexed geometries, the method sets each vertex normal to
385
- * be the average of the face normals of the faces that share that vertex. For non-indexed geometries, vertices are
386
- * not shared, and the method sets each vertex normal to be the same as the face normal.
387
- */
388
- computeVertexNormals(): void;
389
-
390
- /**
391
- * Every normal vector in a geometry will have a magnitude of 1
392
- * @remarks This will correct lighting on the geometry surfaces.
393
- */
394
- normalizeNormals(): void;
395
-
396
- /**
397
- * Return a non-index version of an indexed BufferGeometry.
398
- */
399
- toNonIndexed(): BufferGeometry;
400
-
401
- /**
402
- * Convert the buffer geometry to three.js {@link https://github.com/mrdoob/three.js/wiki/JSON-Object-Scene-format-4 | JSON Object/Scene format}.
403
- */
404
- toJSON(): BufferGeometryJSON;
405
-
406
- /**
407
- * Creates a clone of this BufferGeometry
408
- */
409
- clone(): this;
410
-
411
- /**
412
- * Copies another BufferGeometry to this BufferGeometry.
413
- * @param source
414
- */
415
- copy(source: BufferGeometry): this;
416
-
417
- /**
418
- * Frees the GPU-related resources allocated by this instance.
419
- * @remarks Call this method whenever this instance is no longer used in your app.
420
- */
421
- dispose(): void;
114
+ export class BufferGeometry<Attributes extends NormalOrGLBufferAttributes = NormalBufferAttributes> extends EventDispatcher<{ dispose: {} }> {
115
+ /**
116
+ * This creates a new {@link THREE.BufferGeometry | BufferGeometry} object.
117
+ */
118
+ constructor();
119
+
120
+ /**
121
+ * Unique number for this {@link THREE.BufferGeometry | BufferGeometry} instance.
122
+ * @remarks Expects a `Integer`
123
+ */
124
+ id: number;
125
+
126
+ /**
127
+ * {@link http://en.wikipedia.org/wiki/Universally_unique_identifier | UUID} of this object instance.
128
+ * @remarks This gets automatically assigned and shouldn't be edited.
129
+ */
130
+ uuid: string;
131
+
132
+ /**
133
+ * Optional name for this {@link THREE.BufferGeometry | BufferGeometry} instance.
134
+ * @defaultValue `''`
135
+ */
136
+ name: string;
137
+
138
+ /**
139
+ * A Read-only _string_ to check if `this` object type.
140
+ * @remarks Sub-classes will update this value.
141
+ * @defaultValue `BufferGeometry`
142
+ */
143
+ readonly type: string | 'BufferGeometry';
144
+
145
+ /**
146
+ * Allows for vertices to be re-used across multiple triangles; this is called using "indexed triangles".
147
+ * Each triangle is associated with the indices of three vertices. This attribute therefore stores the index of each vertex for each triangular face.
148
+ * If this attribute is not set, the {@link THREE.WebGLRenderer | renderer} assumes that each three contiguous positions represent a single triangle.
149
+ * @defaultValue `null`
150
+ */
151
+ index: BufferAttribute | null;
152
+
153
+ /**
154
+ * This hashmap has as id the name of the attribute to be set and as value the {@link THREE.BufferAttribute | buffer} to set it to. Rather than accessing this property directly,
155
+ * use {@link setAttribute | .setAttribute} and {@link getAttribute | .getAttribute} to access attributes of this geometry.
156
+ * @defaultValue `{}`
157
+ */
158
+ attributes: Attributes;
159
+
160
+ /**
161
+ * Hashmap of {@link THREE.BufferAttribute | BufferAttributes} holding details of the geometry's morph targets.
162
+ * @remarks
163
+ * Once the geometry has been rendered, the morph attribute data cannot be changed.
164
+ * You will have to call {@link dispose | .dispose}(), and create a new instance of {@link THREE.BufferGeometry | BufferGeometry}.
165
+ * @defaultValue `{}`
166
+ */
167
+ morphAttributes: {
168
+ [name: string]: Array<BufferAttribute | InterleavedBufferAttribute>; // TODO Replace for 'Record<>'
169
+ };
170
+
171
+ /**
172
+ * Used to control the morph target behavior; when set to true, the morph target data is treated as relative offsets, rather than as absolute positions/normals.
173
+ * @defaultValue `false`
174
+ */
175
+ morphTargetsRelative: boolean;
176
+
177
+ /**
178
+ * Split the geometry into groups, each of which will be rendered in a separate WebGL draw call. This allows an array of materials to be used with the geometry.
179
+ * @remarks Every vertex and index must belong to exactly one group — groups must not share vertices or indices, and must not leave vertices or indices unused.
180
+ * @remarks Use {@link addGroup | .addGroup} to add groups, rather than modifying this array directly.
181
+ * @defaultValue `[]`
182
+ */
183
+ groups: GeometryGroup[];
184
+
185
+ /**
186
+ * Bounding box for the {@link THREE.BufferGeometry | BufferGeometry}, which can be calculated with {@link computeBoundingBox | .computeBoundingBox()}.
187
+ * @remarks Bounding boxes aren't computed by default. They need to be explicitly computed, otherwise they are `null`.
188
+ * @defaultValue `null`
189
+ */
190
+ boundingBox: Box3 | null;
191
+
192
+ /**
193
+ * Bounding sphere for the {@link THREE.BufferGeometry | BufferGeometry}, which can be calculated with {@link computeBoundingSphere | .computeBoundingSphere()}.
194
+ * @remarks bounding spheres aren't computed by default. They need to be explicitly computed, otherwise they are `null`.
195
+ * @defaultValue `null`
196
+ */
197
+ boundingSphere: Sphere | null;
198
+
199
+ /**
200
+ * Determines the part of the geometry to render. This should not be set directly, instead use {@link setDrawRange | .setDrawRange(...)}.
201
+ * @remarks For non-indexed {@link THREE.BufferGeometry | BufferGeometry}, count is the number of vertices to render.
202
+ * @remarks For indexed {@link THREE.BufferGeometry | BufferGeometry}, count is the number of indices to render.
203
+ * @defaultValue `{ start: 0, count: Infinity }`
204
+ */
205
+ drawRange: { start: number; count: number };
206
+
207
+ /**
208
+ * An object that can be used to store custom data about the BufferGeometry. It should not hold references to functions as these will not be cloned.
209
+ * @defaultValue `{}`
210
+ */
211
+ userData: Record<string, any>;
212
+
213
+ /**
214
+ * Read-only flag to check if a given object is of type {@link BufferGeometry}.
215
+ * @remarks This is a _constant_ value
216
+ * @defaultValue `true`
217
+ */
218
+ readonly isBufferGeometry: true;
219
+
220
+ /**
221
+ * Return the {@link index | .index} buffer.
222
+ */
223
+ getIndex(): BufferAttribute | null;
224
+
225
+ /**
226
+ * Set the {@link THREE.BufferGeometry.index | .index} buffer.
227
+ * @param index
228
+ */
229
+ setIndex(index: BufferAttribute | number[] | null): this;
230
+
231
+ /**
232
+ * Sets an {@link attributes | attribute} to this geometry with the specified name.
233
+ * @remarks
234
+ * Use this rather than the attributes property, because an internal hashmap of {@link attributes | .attributes} is maintained to speed up iterating over attributes.
235
+ * @param name
236
+ * @param attribute
237
+ */
238
+ setAttribute<K extends keyof Attributes>(name: K, attribute: Attributes[K]): this;
239
+
240
+ /**
241
+ * Returns the {@link attributes | attribute} with the specified name.
242
+ * @param name
243
+ */
244
+ getAttribute<K extends keyof Attributes>(name: K): Attributes[K];
245
+
246
+ /**
247
+ * Deletes the {@link attributes | attribute} with the specified name.
248
+ * @param name
249
+ */
250
+ deleteAttribute(name: keyof Attributes): this;
251
+
252
+ /**
253
+ * Returns true if the {@link attributes | attribute} with the specified name exists.
254
+ * @param name
255
+ */
256
+ hasAttribute(name: keyof Attributes): boolean;
257
+
258
+ /**
259
+ * Adds a group to this geometry
260
+ * @see the {@link BufferGeometry.groups | groups} property for details.
261
+ * @param start
262
+ * @param count
263
+ * @param materialIndex
264
+ */
265
+ addGroup(start: number, count: number, materialIndex?: number): void;
266
+
267
+ /**
268
+ * Clears all groups.
269
+ */
270
+ clearGroups(): void;
271
+
272
+ /**
273
+ * Set the {@link drawRange | .drawRange} property
274
+ * @remarks For non-indexed BufferGeometry, count is the number of vertices to render
275
+ * @remarks For indexed BufferGeometry, count is the number of indices to render.
276
+ * @param start
277
+ * @param count is the number of vertices or indices to render. Expects a `Integer`
278
+ */
279
+ setDrawRange(start: number, count: number): void;
280
+
281
+ /**
282
+ * Applies the matrix transform to the geometry.
283
+ * @param matrix
284
+ */
285
+ applyMatrix4(matrix: Matrix4): this;
286
+
287
+ /**
288
+ * Applies the rotation represented by the quaternion to the geometry.
289
+ * @param quaternion
290
+ */
291
+ applyQuaternion(quaternion: Quaternion): this;
292
+
293
+ /**
294
+ * Rotate the geometry about the X axis. This is typically done as a one time operation, and not during a loop.
295
+ * @remarks Use {@link THREE.Object3D.rotation | Object3D.rotation} for typical real-time mesh rotation.
296
+ * @param angle radians. Expects a `Float`
297
+ */
298
+ rotateX(angle: number): this;
299
+
300
+ /**
301
+ * Rotate the geometry about the Y axis.
302
+ * @remarks This is typically done as a one time operation, and not during a loop.
303
+ * @remarks Use {@link THREE.Object3D.rotation | Object3D.rotation} for typical real-time mesh rotation.
304
+ * @param angle radians. Expects a `Float`
305
+ */
306
+ rotateY(angle: number): this;
307
+
308
+ /**
309
+ * Rotate the geometry about the Z axis.
310
+ * @remarks This is typically done as a one time operation, and not during a loop.
311
+ * @remarks Use {@link THREE.Object3D.rotation | Object3D.rotation} for typical real-time mesh rotation.
312
+ * @param angle radians. Expects a `Float`
313
+ */
314
+ rotateZ(angle: number): this;
315
+
316
+ /**
317
+ * Translate the geometry.
318
+ * @remarks This is typically done as a one time operation, and not during a loop.
319
+ * @remarks Use {@link THREE.Object3D.position | Object3D.position} for typical real-time mesh rotation.
320
+ * @param x Expects a `Float`
321
+ * @param y Expects a `Float`
322
+ * @param z Expects a `Float`
323
+ */
324
+ translate(x: number, y: number, z: number): this;
325
+
326
+ /**
327
+ * Scale the geometry data.
328
+ * @remarks This is typically done as a one time operation, and not during a loop.
329
+ * @remarks Use {@link THREE.Object3D.scale | Object3D.scale} for typical real-time mesh scaling.
330
+ * @param x Expects a `Float`
331
+ * @param y Expects a `Float`
332
+ * @param z Expects a `Float`
333
+ */
334
+ scale(x: number, y: number, z: number): this;
335
+
336
+ /**
337
+ * Rotates the geometry to face a point in space.
338
+ * @remarks This is typically done as a one time operation, and not during a loop.
339
+ * @remarks Use {@link THREE.Object3D.lookAt | Object3D.lookAt} for typical real-time mesh usage.
340
+ * @param vector A world vector to look at.
341
+ */
342
+ lookAt(vector: Vector3): this;
343
+
344
+ /**
345
+ * Center the geometry based on the bounding box.
346
+ */
347
+ center(): this;
348
+
349
+ /**
350
+ * Sets the attributes for this BufferGeometry from an array of points.
351
+ * @param points
352
+ */
353
+ setFromPoints(points: Vector3[] | Vector2[]): this;
354
+
355
+ /**
356
+ * Computes the bounding box of the geometry, and updates the {@link .boundingBox} attribute. The bounding box is
357
+ * not computed by the engine; it must be computed by your app. You may need to recompute the bounding box if the
358
+ * geometry vertices are modified.
359
+ */
360
+ computeBoundingBox(): void;
361
+
362
+ /**
363
+ * Computes the bounding sphere of the geometry, and updates the {@link .boundingSphere} attribute. The engine
364
+ * automatically computes the bounding sphere when it is needed, e.g., for ray casting or view frustum culling. You
365
+ * may need to recompute the bounding sphere if the geometry vertices are modified.
366
+ */
367
+ computeBoundingSphere(): void;
368
+
369
+ /**
370
+ * Calculates and adds a tangent attribute to this geometry.
371
+ * The computation is only supported for indexed geometries and if position, normal, and uv attributes are defined
372
+ * @remarks
373
+ * When using a tangent space normal map, prefer the MikkTSpace algorithm provided by
374
+ * {@link BufferGeometryUtils.computeMikkTSpaceTangents} instead.
375
+ */
376
+ computeTangents(): void;
377
+
378
+ /**
379
+ * Computes vertex normals for the given vertex data. For indexed geometries, the method sets each vertex normal to
380
+ * be the average of the face normals of the faces that share that vertex. For non-indexed geometries, vertices are
381
+ * not shared, and the method sets each vertex normal to be the same as the face normal.
382
+ */
383
+ computeVertexNormals(): void;
384
+
385
+ /**
386
+ * Every normal vector in a geometry will have a magnitude of 1
387
+ * @remarks This will correct lighting on the geometry surfaces.
388
+ */
389
+ normalizeNormals(): void;
390
+
391
+ /**
392
+ * Return a non-index version of an indexed BufferGeometry.
393
+ */
394
+ toNonIndexed(): BufferGeometry;
395
+
396
+ /**
397
+ * Convert the buffer geometry to three.js {@link https://github.com/mrdoob/three.js/wiki/JSON-Object-Scene-format-4 | JSON Object/Scene format}.
398
+ */
399
+ toJSON(): BufferGeometryJSON;
400
+
401
+ /**
402
+ * Creates a clone of this BufferGeometry
403
+ */
404
+ clone(): this;
405
+
406
+ /**
407
+ * Copies another BufferGeometry to this BufferGeometry.
408
+ * @param source
409
+ */
410
+ copy(source: BufferGeometry): this;
411
+
412
+ /**
413
+ * Frees the GPU-related resources allocated by this instance.
414
+ * @remarks Call this method whenever this instance is no longer used in your app.
415
+ */
416
+ dispose(): void;
422
417
  }