@types/three 0.182.0 → 0.183.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (313) hide show
  1. three/README.md +1 -1
  2. three/examples/jsm/Addons.d.ts +0 -3
  3. three/examples/jsm/controls/OrbitControls.d.ts +39 -0
  4. three/examples/jsm/effects/AnaglyphEffect.d.ts +4 -0
  5. three/examples/jsm/environments/ColorEnvironment.d.ts +9 -0
  6. three/examples/jsm/gpgpu/BitonicSort.d.ts +5 -5
  7. three/examples/jsm/helpers/AnimationPathHelper.d.ts +38 -0
  8. three/examples/jsm/helpers/ViewHelper.d.ts +4 -1
  9. three/examples/jsm/inspector/tabs/Parameters.d.ts +3 -0
  10. three/examples/jsm/inspector/ui/Item.d.ts +5 -0
  11. three/examples/jsm/libs/meshopt_decoder.module.d.ts +1 -1
  12. three/examples/jsm/lights/LightProbeGenerator.d.ts +11 -5
  13. three/examples/jsm/loaders/ColladaLoader.d.ts +27 -4
  14. three/examples/jsm/objects/SkyMesh.d.ts +11 -6
  15. three/examples/jsm/objects/Water2Mesh.d.ts +7 -7
  16. three/examples/jsm/objects/WaterMesh.d.ts +6 -6
  17. three/examples/jsm/postprocessing/EffectComposer.d.ts +9 -10
  18. three/examples/jsm/postprocessing/UnrealBloomPass.d.ts +4 -9
  19. three/examples/jsm/tsl/display/AnaglyphPassNode.d.ts +30 -0
  20. three/examples/jsm/tsl/display/AnamorphicNode.d.ts +1 -1
  21. three/examples/jsm/tsl/display/BilateralBlurNode.d.ts +27 -0
  22. three/examples/jsm/tsl/display/BloomNode.d.ts +5 -5
  23. three/examples/jsm/tsl/display/CRT.d.ts +22 -0
  24. three/examples/jsm/tsl/display/DenoiseNode.d.ts +5 -5
  25. three/examples/jsm/tsl/display/DotScreenNode.d.ts +4 -6
  26. three/examples/jsm/tsl/display/GTAONode.d.ts +8 -8
  27. three/examples/jsm/tsl/display/GaussianBlurNode.d.ts +4 -2
  28. three/examples/jsm/tsl/display/GodraysNode.d.ts +20 -0
  29. three/examples/jsm/tsl/display/LensflareNode.d.ts +6 -6
  30. three/examples/jsm/tsl/display/Lut3DNode.d.ts +5 -5
  31. three/examples/jsm/tsl/display/MotionBlur.d.ts +1 -1
  32. three/examples/jsm/tsl/display/OutlineNode.d.ts +6 -6
  33. three/examples/jsm/tsl/display/PixelationPassNode.d.ts +10 -10
  34. three/examples/jsm/tsl/display/RGBShiftNode.d.ts +2 -2
  35. three/examples/jsm/tsl/display/RetroPassNode.d.ts +17 -0
  36. three/examples/jsm/tsl/display/SSAAPassNode.d.ts +1 -1
  37. three/examples/jsm/tsl/display/SSGINode.d.ts +11 -11
  38. three/examples/jsm/tsl/display/SSRNode.d.ts +6 -6
  39. three/examples/jsm/tsl/display/SSSNode.d.ts +5 -5
  40. three/examples/jsm/tsl/display/Shape.d.ts +3 -0
  41. three/examples/jsm/tsl/display/TransitionNode.d.ts +3 -3
  42. three/examples/jsm/tsl/display/boxBlur.d.ts +1 -1
  43. three/examples/jsm/tsl/display/depthAwareBlend.d.ts +15 -0
  44. three/examples/jsm/tsl/display/hashBlur.d.ts +1 -1
  45. three/examples/jsm/tsl/math/Bayer.d.ts +2 -0
  46. three/examples/jsm/tsl/utils/Raymarching.d.ts +2 -2
  47. three/package.json +3 -3
  48. three/src/Three.Core.d.ts +1 -1
  49. three/src/Three.TSL.d.ts +6 -11
  50. three/src/Three.WebGPU.Nodes.d.ts +2 -0
  51. three/src/Three.WebGPU.d.ts +3 -0
  52. three/src/Three.d.ts +2 -2
  53. three/src/animation/AnimationClip.d.ts +1 -1
  54. three/src/animation/KeyframeTrack.d.ts +19 -5
  55. three/src/animation/PropertyMixer.d.ts +5 -4
  56. three/src/audio/Audio.d.ts +224 -157
  57. three/src/audio/AudioAnalyser.d.ts +32 -27
  58. three/src/audio/AudioContext.d.ts +12 -12
  59. three/src/audio/AudioListener.d.ts +44 -65
  60. three/src/audio/PositionalAudio.d.ts +69 -62
  61. three/src/cameras/ArrayCamera.d.ts +21 -24
  62. three/src/cameras/Camera.d.ts +14 -53
  63. three/src/cameras/CubeCamera.d.ts +32 -28
  64. three/src/cameras/OrthographicCamera.d.ts +70 -100
  65. three/src/cameras/PerspectiveCamera.d.ts +133 -146
  66. three/src/cameras/StereoCamera.d.ts +24 -30
  67. three/src/constants.d.ts +14 -2
  68. three/src/core/Clock.d.ts +3 -0
  69. three/src/core/Object3D.d.ts +31 -7
  70. three/src/geometries/TorusGeometry.d.ts +22 -3
  71. three/src/helpers/ArrowHelper.d.ts +34 -50
  72. three/src/helpers/AxesHelper.d.ts +22 -36
  73. three/src/helpers/Box3Helper.d.ts +14 -25
  74. three/src/helpers/BoxHelper.d.ts +28 -39
  75. three/src/helpers/CameraHelper.d.ts +31 -52
  76. three/src/helpers/DirectionalLightHelper.d.ts +32 -53
  77. three/src/helpers/GridHelper.d.ts +15 -29
  78. three/src/helpers/HemisphereLightHelper.d.ts +26 -49
  79. three/src/helpers/PlaneHelper.d.ts +21 -33
  80. three/src/helpers/PointLightHelper.d.ts +25 -50
  81. three/src/helpers/PolarGridHelper.d.ts +19 -32
  82. three/src/helpers/SkeletonHelper.d.ts +26 -50
  83. three/src/helpers/SpotLightHelper.d.ts +28 -55
  84. three/src/lights/AmbientLight.d.ts +15 -23
  85. three/src/lights/DirectionalLight.d.ts +40 -82
  86. three/src/lights/DirectionalLightShadow.d.ts +6 -61
  87. three/src/lights/HemisphereLight.d.ts +20 -47
  88. three/src/lights/Light.d.ts +18 -48
  89. three/src/lights/LightProbe.d.ts +24 -29
  90. three/src/lights/LightShadow.d.ts +107 -91
  91. three/src/lights/PointLight.d.ts +36 -77
  92. three/src/lights/PointLightShadow.d.ts +9 -6
  93. three/src/lights/RectAreaLight.d.ts +39 -59
  94. three/src/lights/SpotLight.d.ts +62 -116
  95. three/src/lights/SpotLightShadow.d.ts +17 -59
  96. three/src/lights/webgpu/IESSpotLight.d.ts +13 -1
  97. three/src/lights/webgpu/ProjectorLight.d.ts +9 -10
  98. three/src/materials/MeshLambertMaterial.d.ts +6 -0
  99. three/src/materials/MeshPhongMaterial.d.ts +6 -0
  100. three/src/materials/nodes/Line2NodeMaterial.d.ts +0 -6
  101. three/src/materials/nodes/LineBasicNodeMaterial.d.ts +0 -4
  102. three/src/materials/nodes/MeshBasicNodeMaterial.d.ts +1 -2
  103. three/src/materials/nodes/MeshLambertNodeMaterial.d.ts +0 -2
  104. three/src/materials/nodes/MeshNormalNodeMaterial.d.ts +0 -2
  105. three/src/materials/nodes/MeshSSSNodeMaterial.d.ts +5 -8
  106. three/src/materials/nodes/MeshToonNodeMaterial.d.ts +0 -4
  107. three/src/materials/nodes/NodeMaterial.d.ts +9 -3
  108. three/src/materials/nodes/SpriteNodeMaterial.d.ts +0 -3
  109. three/src/materials/nodes/VolumeNodeMaterial.d.ts +0 -2
  110. three/src/materials/nodes/manager/NodeMaterialObserver.d.ts +39 -93
  111. three/src/math/Color.d.ts +1 -0
  112. three/src/math/Vector3.d.ts +2 -2
  113. three/src/math/interpolants/BezierInterpolant.d.ts +7 -0
  114. three/src/nodes/Nodes.d.ts +55 -35
  115. three/src/nodes/TSL.d.ts +2 -5
  116. three/src/nodes/accessors/Arrays.d.ts +19 -10
  117. three/src/nodes/accessors/BufferAttributeNode.d.ts +99 -33
  118. three/src/nodes/accessors/BufferNode.d.ts +21 -7
  119. three/src/nodes/accessors/Camera.d.ts +10 -10
  120. three/src/nodes/accessors/CubeTextureNode.d.ts +1 -1
  121. three/src/nodes/accessors/InstanceNode.d.ts +6 -0
  122. three/src/nodes/accessors/Lights.d.ts +9 -6
  123. three/src/nodes/accessors/MaterialNode.d.ts +1 -3
  124. three/src/nodes/accessors/MaterialProperties.d.ts +4 -4
  125. three/src/nodes/accessors/MaterialReferenceNode.d.ts +1 -1
  126. three/src/nodes/accessors/ModelNode.d.ts +34 -17
  127. three/src/nodes/accessors/MorphNode.d.ts +1 -1
  128. three/src/nodes/accessors/Normal.d.ts +13 -15
  129. three/src/nodes/accessors/Object3DNode.d.ts +35 -16
  130. three/src/nodes/accessors/Position.d.ts +9 -7
  131. three/src/nodes/accessors/ReferenceNode.d.ts +16 -7
  132. three/src/nodes/accessors/ReflectVector.d.ts +4 -5
  133. three/src/nodes/accessors/RendererReferenceNode.d.ts +1 -1
  134. three/src/nodes/accessors/SceneProperties.d.ts +5 -0
  135. three/src/nodes/accessors/SkinningNode.d.ts +5 -3
  136. three/src/nodes/accessors/StorageBufferNode.d.ts +49 -22
  137. three/src/nodes/accessors/StorageTextureNode.d.ts +1 -1
  138. three/src/nodes/accessors/Tangent.d.ts +5 -7
  139. three/src/nodes/accessors/Texture3DNode.d.ts +1 -1
  140. three/src/nodes/accessors/TextureBicubic.d.ts +3 -2
  141. three/src/nodes/accessors/TextureNode.d.ts +19 -18
  142. three/src/nodes/accessors/UV.d.ts +1 -1
  143. three/src/nodes/accessors/UniformArrayNode.d.ts +10 -8
  144. three/src/nodes/accessors/UserDataNode.d.ts +1 -1
  145. three/src/nodes/accessors/VelocityNode.d.ts +3 -3
  146. three/src/nodes/accessors/VertexColorNode.d.ts +1 -1
  147. three/src/nodes/code/FunctionCallNode.d.ts +0 -1
  148. three/src/nodes/code/FunctionNode.d.ts +7 -3
  149. three/src/nodes/core/ArrayNode.d.ts +2 -3
  150. three/src/nodes/core/AttributeNode.d.ts +12 -6
  151. three/src/nodes/core/BypassNode.d.ts +2 -3
  152. three/src/nodes/core/ConstNode.d.ts +10 -3
  153. three/src/nodes/core/ContextNode.d.ts +23 -28
  154. three/src/nodes/core/IndexNode.d.ts +1 -1
  155. three/src/nodes/core/InputNode.d.ts +12 -4
  156. three/src/nodes/core/InspectorNode.d.ts +2 -3
  157. three/src/nodes/core/IsolateNode.d.ts +2 -7
  158. three/src/nodes/core/MRTNode.d.ts +7 -0
  159. three/src/nodes/core/Node.d.ts +258 -39
  160. three/src/nodes/core/NodeAttribute.d.ts +30 -5
  161. three/src/nodes/core/NodeBuilder.d.ts +5 -3
  162. three/src/nodes/core/NodeCache.d.ts +24 -48
  163. three/src/nodes/core/NodeError.d.ts +9 -0
  164. three/src/nodes/core/NodeParser.d.ts +2 -0
  165. three/src/nodes/core/NodeUniform.d.ts +33 -9
  166. three/src/nodes/core/NodeVar.d.ts +33 -5
  167. three/src/nodes/core/NodeVarying.d.ts +32 -4
  168. three/src/nodes/core/ParameterNode.d.ts +11 -4
  169. three/src/nodes/core/PropertyNode.d.ts +45 -35
  170. three/src/nodes/core/StackTrace.d.ts +9 -0
  171. three/src/nodes/core/StructType.d.ts +3 -1
  172. three/src/nodes/core/StructTypeNode.d.ts +19 -5
  173. three/src/nodes/core/TempNode.d.ts +9 -3
  174. three/src/nodes/core/UniformNode.d.ts +53 -15
  175. three/src/nodes/core/VarNode.d.ts +15 -14
  176. three/src/nodes/core/VaryingNode.d.ts +14 -19
  177. three/src/nodes/core/constants.d.ts +9 -4
  178. three/src/nodes/display/BlendModes.d.ts +7 -27
  179. three/src/nodes/display/ColorAdjustment.d.ts +8 -9
  180. three/src/nodes/display/ColorSpaceNode.d.ts +2 -8
  181. three/src/nodes/display/FrontFacingNode.d.ts +1 -1
  182. three/src/nodes/display/PassNode.d.ts +9 -5
  183. three/src/nodes/display/RenderOutputNode.d.ts +3 -7
  184. three/src/nodes/display/ScreenNode.d.ts +25 -17
  185. three/src/nodes/display/ToneMappingNode.d.ts +3 -7
  186. three/src/nodes/display/ViewportDepthNode.d.ts +11 -7
  187. three/src/nodes/display/ViewportTextureNode.d.ts +2 -0
  188. three/src/nodes/fog/Fog.d.ts +5 -3
  189. three/src/nodes/geometry/RangeNode.d.ts +51 -9
  190. three/src/nodes/gpgpu/AtomicFunctionNode.d.ts +2 -0
  191. three/src/nodes/gpgpu/BarrierNode.d.ts +2 -0
  192. three/src/nodes/gpgpu/ComputeNode.d.ts +2 -7
  193. three/src/nodes/lighting/AnalyticLightNode.d.ts +1 -1
  194. three/src/nodes/lighting/HemisphereLightNode.d.ts +3 -2
  195. three/src/nodes/lighting/LightProbeNode.d.ts +1 -1
  196. three/src/nodes/lighting/LightUtils.d.ts +1 -1
  197. three/src/nodes/lighting/LightingContextNode.d.ts +1 -1
  198. three/src/nodes/lighting/SpotLightNode.d.ts +0 -6
  199. three/src/nodes/materialx/MaterialXNodes.d.ts +11 -11
  200. three/src/nodes/math/BitcountNode.d.ts +2 -0
  201. three/src/nodes/math/ConditionalNode.d.ts +43 -22
  202. three/src/nodes/math/Hash.d.ts +1 -1
  203. three/src/nodes/math/MathNode.d.ts +603 -267
  204. three/src/nodes/math/MathUtils.d.ts +9 -5
  205. three/src/nodes/math/OperatorNode.d.ts +490 -227
  206. three/src/nodes/math/TriNoise3D.d.ts +3 -3
  207. three/src/nodes/pmrem/PMREMNode.d.ts +1 -1
  208. three/src/nodes/procedural/Checker.d.ts +1 -1
  209. three/src/nodes/tsl/TSLCore.d.ts +1683 -224
  210. three/src/nodes/utils/ArrayElementNode.d.ts +9 -4
  211. three/src/nodes/utils/DebugNode.d.ts +2 -5
  212. three/src/nodes/utils/Discard.d.ts +2 -3
  213. three/src/nodes/utils/FlipNode.d.ts +11 -0
  214. three/src/nodes/utils/LoopNode.d.ts +17 -13
  215. three/src/nodes/utils/MaxMipLevelNode.d.ts +1 -1
  216. three/src/nodes/utils/Oscillators.d.ts +4 -4
  217. three/src/nodes/utils/Packing.d.ts +3 -3
  218. three/src/nodes/utils/PostProcessingUtils.d.ts +5 -5
  219. three/src/nodes/utils/RemapNode.d.ts +33 -39
  220. three/src/nodes/utils/RotateNode.d.ts +17 -8
  221. three/src/nodes/utils/SplitNode.d.ts +1 -2
  222. three/src/nodes/utils/SpriteSheetUV.d.ts +7 -0
  223. three/src/nodes/utils/StorageArrayElementNode.d.ts +18 -9
  224. three/src/nodes/utils/Timer.d.ts +4 -4
  225. three/src/nodes/utils/TriplanarTextures.d.ts +2 -2
  226. three/src/nodes/utils/UVUtils.d.ts +6 -4
  227. three/src/objects/BatchedMesh.d.ts +6 -4
  228. three/src/objects/InstancedMesh.d.ts +32 -24
  229. three/src/renderers/WebGLRenderer.d.ts +4 -93
  230. three/src/renderers/common/Animation.d.ts +46 -9
  231. three/src/renderers/common/Attributes.d.ts +11 -13
  232. three/src/renderers/common/Backend.d.ts +0 -2
  233. three/src/renderers/common/Background.d.ts +17 -15
  234. three/src/renderers/common/BindGroup.d.ts +27 -13
  235. three/src/renderers/common/Binding.d.ts +15 -3
  236. three/src/renderers/common/Bindings.d.ts +41 -17
  237. three/src/renderers/common/BlendMode.d.ts +22 -0
  238. three/src/renderers/common/Buffer.d.ts +35 -11
  239. three/src/renderers/common/BufferUtils.d.ts +3 -4
  240. three/src/renderers/common/BundleGroup.d.ts +16 -6
  241. three/src/renderers/common/CanvasTarget.d.ts +76 -13
  242. three/src/renderers/common/ChainMap.d.ts +12 -9
  243. three/src/renderers/common/ClippingContext.d.ts +61 -10
  244. three/src/renderers/common/Color4.d.ts +10 -5
  245. three/src/renderers/common/ComputePipeline.d.ts +16 -2
  246. three/src/renderers/common/Constants.d.ts +5 -3
  247. three/src/renderers/common/CubeRenderTarget.d.ts +24 -7
  248. three/src/renderers/common/DataMap.d.ts +10 -18
  249. three/src/renderers/common/Geometries.d.ts +39 -20
  250. three/src/renderers/common/Info.d.ts +62 -9
  251. three/src/renderers/common/InspectorBase.d.ts +19 -7
  252. three/src/renderers/common/Lighting.d.ts +2 -6
  253. three/src/renderers/common/Pipeline.d.ts +14 -2
  254. three/src/renderers/common/Pipelines.d.ts +58 -60
  255. three/src/renderers/common/PostProcessing.d.ts +14 -17
  256. three/src/renderers/common/ProgrammableStage.d.ts +48 -8
  257. three/src/renderers/common/RenderBundle.d.ts +4 -2
  258. three/src/renderers/common/RenderBundles.d.ts +6 -3
  259. three/src/renderers/common/RenderContext.d.ts +175 -7
  260. three/src/renderers/common/RenderContexts.d.ts +20 -25
  261. three/src/renderers/common/RenderList.d.ts +77 -11
  262. three/src/renderers/common/RenderLists.d.ts +16 -4
  263. three/src/renderers/common/RenderObject.d.ts +223 -47
  264. three/src/renderers/common/RenderObjectPipeline.d.ts +33 -0
  265. three/src/renderers/common/RenderObjects.d.ts +55 -22
  266. three/src/renderers/common/RenderPipeline.d.ts +20 -17
  267. three/src/renderers/common/Renderer.d.ts +625 -207
  268. three/src/renderers/common/Textures.d.ts +24 -46
  269. three/src/renderers/common/TimestampQueryPool.d.ts +62 -8
  270. three/src/renderers/common/Uniform.d.ts +143 -58
  271. three/src/renderers/common/UniformBuffer.d.ts +7 -5
  272. three/src/renderers/common/UniformsGroup.d.ts +50 -35
  273. three/src/renderers/common/XRManager.d.ts +321 -83
  274. three/src/renderers/common/XRRenderTarget.d.ts +49 -6
  275. three/src/renderers/common/nodes/NodeBuilderState.d.ts +75 -15
  276. three/src/renderers/common/nodes/NodeLibrary.d.ts +25 -5
  277. three/src/renderers/common/nodes/{Nodes.d.ts → NodeManager.d.ts} +54 -73
  278. three/src/renderers/common/nodes/NodeUniform.d.ts +60 -70
  279. three/src/renderers/common/nodes/NodeUniformsGroup.d.ts +23 -4
  280. three/src/renderers/shaders/UniformsLib.d.ts +0 -3
  281. three/src/renderers/webgl/WebGLAttributes.d.ts +9 -7
  282. three/src/renderers/webgl/WebGLEnvironments.d.ts +8 -0
  283. three/src/renderers/webgl/WebGLExtensions.d.ts +1 -1
  284. three/src/renderers/webgl/WebGLIndexedBufferRenderer.d.ts +9 -5
  285. three/src/renderers/webgl/WebGLLights.d.ts +19 -18
  286. three/src/renderers/webgl/WebGLObjects.d.ts +15 -2
  287. three/src/renderers/webgl/WebGLProgram.d.ts +2 -10
  288. three/src/renderers/webgl/WebGLPrograms.d.ts +2 -2
  289. three/src/renderers/webgl/WebGLRenderLists.d.ts +1 -3
  290. three/src/renderers/webgl/WebGLShadowMap.d.ts +0 -5
  291. three/src/renderers/webgl/WebGLState.d.ts +305 -28
  292. three/src/renderers/webgl/WebGLTextures.d.ts +10 -9
  293. three/src/renderers/webgl/WebGLUniforms.d.ts +0 -7
  294. three/src/renderers/webgpu/WebGPUBackend.d.ts +0 -1
  295. three/src/renderers/webgpu/nodes/BasicNodeLibrary.d.ts +2 -4
  296. three/src/renderers/webgpu/nodes/StandardNodeLibrary.d.ts +15 -4
  297. three/src/renderers/webgpu/nodes/WGSLNodeBuilder.d.ts +1 -1
  298. three/src/scenes/Fog.d.ts +31 -37
  299. three/src/scenes/FogExp2.d.ts +26 -31
  300. three/src/scenes/Scene.d.ts +51 -65
  301. three/src/textures/CompressedArrayTexture.d.ts +1 -1
  302. three/src/textures/DataArrayTexture.d.ts +1 -1
  303. three/src/utils.d.ts +5 -0
  304. three/examples/jsm/materials/MeshGouraudMaterial.d.ts +0 -18
  305. three/examples/jsm/materials/MeshPostProcessingMaterial.d.ts +0 -13
  306. three/examples/jsm/shaders/GodRaysShader.d.ts +0 -44
  307. three/src/nodes/accessors/SceneNode.d.ts +0 -21
  308. three/src/nodes/code/ScriptableNode.d.ts +0 -21
  309. three/src/nodes/code/ScriptableValueNode.d.ts +0 -9
  310. three/src/nodes/display/PosterizeNode.d.ts +0 -13
  311. three/src/nodes/utils/SpriteSheetUVNode.d.ts +0 -15
  312. three/src/renderers/webgl/WebGLCubeMaps.d.ts +0 -8
  313. three/src/renderers/webgl/WebGLCubeUVMaps.d.ts +0 -9
@@ -8,7 +8,9 @@ import {
8
8
  Vector3NodeUniform,
9
9
  Vector4NodeUniform,
10
10
  } from "./nodes/NodeUniform.js";
11
+ import { Uniform } from "./Uniform.js";
11
12
  import UniformBuffer from "./UniformBuffer.js";
13
+
12
14
  /**
13
15
  * This class represents a uniform buffer binding but with
14
16
  * an API that allows to maintain individual uniform objects.
@@ -17,15 +19,49 @@ import UniformBuffer from "./UniformBuffer.js";
17
19
  * @augments UniformBuffer
18
20
  */
19
21
  declare class UniformsGroup extends UniformBuffer {
20
- readonly isUniformsGroup: true;
21
- _values: number[] | null;
22
- uniforms: NodeUniformGPU[];
23
22
  /**
24
23
  * Constructs a new uniforms group.
25
24
  *
26
25
  * @param {string} name - The group's name.
27
26
  */
28
- constructor(name?: string);
27
+ constructor(name: string);
28
+ /**
29
+ * This flag can be used for type testing.
30
+ *
31
+ * @type {boolean}
32
+ * @readonly
33
+ * @default true
34
+ */
35
+ readonly isUniformsGroup: boolean;
36
+ /**
37
+ * An array with the raw uniform values.
38
+ *
39
+ * @private
40
+ * @type {?Array<number>}
41
+ * @default null
42
+ */
43
+ private _values;
44
+ /**
45
+ * An array of uniform objects.
46
+ *
47
+ * The order of uniforms in this array must match the order of uniforms in the shader.
48
+ *
49
+ * @type {Array<Uniform>}
50
+ */
51
+ uniforms: NodeUniformGPU[];
52
+ /**
53
+ * A cache for the uniform update ranges.
54
+ *
55
+ * @private
56
+ * @type {Map<number, {start: number, count: number}>}
57
+ */
58
+ private _updateRangeCache;
59
+ /**
60
+ * Adds a uniform's update range to this buffer.
61
+ *
62
+ * @param {Uniform} uniform - The uniform.
63
+ */
64
+ addUniformUpdateRange(uniform: Uniform<unknown>): void;
29
65
  /**
30
66
  * Adds a uniform to this group.
31
67
  *
@@ -46,28 +82,6 @@ declare class UniformsGroup extends UniformBuffer {
46
82
  * @type {Array<number>}
47
83
  */
48
84
  get values(): number[];
49
- /**
50
- * A Float32 array buffer with the uniform values.
51
- *
52
- * @type {Float32Array}
53
- */
54
- get buffer(): Float32Array;
55
- /**
56
- * The byte length of the buffer with correct buffer alignment.
57
- *
58
- * @type {number}
59
- */
60
- get byteLength(): number;
61
- /**
62
- * Updates this group by updating each uniform object of
63
- * the internal uniform list. The uniform objects check if their
64
- * values has actually changed so this method only returns
65
- * `true` if there is a real value change.
66
- *
67
- * @return {boolean} Whether the uniforms have been updated and
68
- * must be uploaded to the GPU.
69
- */
70
- update(): boolean;
71
85
  /**
72
86
  * Updates a given uniform by calling an update method matching
73
87
  * the uniforms type.
@@ -75,56 +89,56 @@ declare class UniformsGroup extends UniformBuffer {
75
89
  * @param {Uniform} uniform - The uniform to update.
76
90
  * @return {boolean} Whether the uniform has been updated or not.
77
91
  */
78
- updateByType(uniform: NodeUniformGPU): boolean | undefined;
92
+ updateByType(uniform: NodeUniformGPU): boolean;
79
93
  /**
80
94
  * Updates a given Number uniform.
81
95
  *
82
96
  * @param {NumberUniform} uniform - The Number uniform.
83
97
  * @return {boolean} Whether the uniform has been updated or not.
84
98
  */
85
- updateNumber(uniform: NumberNodeUniform): boolean;
99
+ updateNumber(uniform: NumberNodeUniform<unknown>): boolean;
86
100
  /**
87
101
  * Updates a given Vector2 uniform.
88
102
  *
89
103
  * @param {Vector2Uniform} uniform - The Vector2 uniform.
90
104
  * @return {boolean} Whether the uniform has been updated or not.
91
105
  */
92
- updateVector2(uniform: Vector2NodeUniform): boolean;
106
+ updateVector2(uniform: Vector2NodeUniform<unknown>): boolean;
93
107
  /**
94
108
  * Updates a given Vector3 uniform.
95
109
  *
96
110
  * @param {Vector3Uniform} uniform - The Vector3 uniform.
97
111
  * @return {boolean} Whether the uniform has been updated or not.
98
112
  */
99
- updateVector3(uniform: Vector3NodeUniform): boolean;
113
+ updateVector3(uniform: Vector3NodeUniform<unknown>): boolean;
100
114
  /**
101
115
  * Updates a given Vector4 uniform.
102
116
  *
103
117
  * @param {Vector4Uniform} uniform - The Vector4 uniform.
104
118
  * @return {boolean} Whether the uniform has been updated or not.
105
119
  */
106
- updateVector4(uniform: Vector4NodeUniform): boolean;
120
+ updateVector4(uniform: Vector4NodeUniform<unknown>): boolean;
107
121
  /**
108
122
  * Updates a given Color uniform.
109
123
  *
110
124
  * @param {ColorUniform} uniform - The Color uniform.
111
125
  * @return {boolean} Whether the uniform has been updated or not.
112
126
  */
113
- updateColor(uniform: ColorNodeUniform): boolean;
127
+ updateColor(uniform: ColorNodeUniform<unknown>): boolean;
114
128
  /**
115
129
  * Updates a given Matrix3 uniform.
116
130
  *
117
131
  * @param {Matrix3Uniform} uniform - The Matrix3 uniform.
118
132
  * @return {boolean} Whether the uniform has been updated or not.
119
133
  */
120
- updateMatrix3(uniform: Matrix3NodeUniform): boolean;
134
+ updateMatrix3(uniform: Matrix3NodeUniform<unknown>): boolean;
121
135
  /**
122
136
  * Updates a given Matrix4 uniform.
123
137
  *
124
138
  * @param {Matrix4Uniform} uniform - The Matrix4 uniform.
125
139
  * @return {boolean} Whether the uniform has been updated or not.
126
140
  */
127
- updateMatrix4(uniform: Matrix4NodeUniform): boolean;
141
+ updateMatrix4(uniform: Matrix4NodeUniform<unknown>): boolean;
128
142
  /**
129
143
  * Returns a typed array that matches the given data type.
130
144
  *
@@ -132,6 +146,7 @@ declare class UniformsGroup extends UniformBuffer {
132
146
  * @param {string} type - The data type.
133
147
  * @return {TypedArray} The typed array.
134
148
  */
135
- _getBufferForType(type: string | null): Int32Array | Uint32Array | Float32Array;
149
+ private _getBufferForType;
136
150
  }
151
+
137
152
  export default UniformsGroup;
@@ -4,17 +4,15 @@ import { EventDispatcher } from "../../core/EventDispatcher.js";
4
4
  import { RenderTarget } from "../../core/RenderTarget.js";
5
5
  import { CylinderGeometry } from "../../geometries/CylinderGeometry.js";
6
6
  import { PlaneGeometry } from "../../geometries/PlaneGeometry.js";
7
- import { Material } from "../../materials/Material.js";
8
7
  import { MeshBasicMaterial } from "../../materials/MeshBasicMaterial.js";
9
8
  import { Quaternion } from "../../math/Quaternion.js";
10
- import { Vector2 } from "../../math/Vector2.js";
11
9
  import { Vector3 } from "../../math/Vector3.js";
12
10
  import { Mesh } from "../../objects/Mesh.js";
13
- import { WebXRController } from "../webxr/WebXRController.js";
14
- import { AnimationContext } from "./Animation.js";
11
+ import { XRGripSpace, XRHandSpace, XRTargetRaySpace } from "../webxr/WebXRController.js";
15
12
  import QuadMesh from "./QuadMesh.js";
16
13
  import Renderer from "./Renderer.js";
17
14
  import { XRRenderTarget } from "./XRRenderTarget.js";
15
+
18
16
  export interface XRManagerEventMap {
19
17
  sessionstart: {};
20
18
  sessionend: {};
@@ -22,39 +20,11 @@ export interface XRManagerEventMap {
22
20
  data: XRFrame;
23
21
  };
24
22
  }
25
- export interface XRQuadLayerObject {
26
- type: "quad";
27
- width: number;
28
- height: number;
29
- translation: Vector3;
30
- quaternion: Quaternion;
31
- pixelwidth: number;
32
- pixelheight: number;
33
- plane: Mesh;
34
- material: Material;
35
- rendercall: () => void;
36
- renderTarget: XRRenderTarget;
37
- xrlayer?: XRLayer;
38
- }
39
- export interface XRCylinderLayerObject {
40
- type: "cylinder";
41
- radius: number;
42
- centralAngle: number;
43
- aspectratio: number;
44
- translation: Vector3;
45
- quaternion: Quaternion;
46
- pixelwidth: number;
47
- pixelheight: number;
48
- plane: Mesh;
49
- material: Material;
50
- rendercall: () => void;
51
- renderTarget: XRRenderTarget;
52
- xrlayer?: XRLayer;
53
- }
54
- export type XRLayerObject = XRQuadLayerObject | XRCylinderLayerObject;
23
+
55
24
  export interface LayerAttributes {
56
25
  stencil?: boolean | undefined;
57
26
  }
27
+
58
28
  /**
59
29
  * The XR manager is built on top of the WebXR Device API to
60
30
  * manage XR sessions with `WebGPURenderer`.
@@ -64,59 +34,326 @@ export interface LayerAttributes {
64
34
  * @augments EventDispatcher
65
35
  */
66
36
  declare class XRManager extends EventDispatcher<XRManagerEventMap> {
37
+ /**
38
+ * Constructs a new XR manager.
39
+ *
40
+ * @param {Renderer} renderer - The renderer.
41
+ * @param {boolean} [multiview=false] - Enables multiview if the device supports it.
42
+ */
43
+ constructor(renderer: Renderer, multiview?: boolean);
44
+ /**
45
+ * This flag globally enables XR rendering.
46
+ *
47
+ * @type {boolean}
48
+ * @default false
49
+ */
67
50
  enabled: boolean;
68
- isPresenting: boolean;
51
+ /**
52
+ * Whether the XR device is currently presenting or not.
53
+ *
54
+ * @type {boolean}
55
+ * @default false
56
+ * @readonly
57
+ */
58
+ readonly isPresenting: boolean;
59
+ /**
60
+ * Whether the XR camera should automatically be updated or not.
61
+ *
62
+ * @type {boolean}
63
+ * @default true
64
+ */
69
65
  cameraAutoUpdate: boolean;
70
- _renderer: Renderer;
71
- _cameraL: PerspectiveCamera;
72
- _cameraR: PerspectiveCamera;
73
- _cameras: PerspectiveCamera[];
74
- _cameraXR: ArrayCamera;
75
- _currentDepthNear: number | null;
76
- _currentDepthFar: number | null;
77
- _controllers: WebXRController[];
78
- _controllerInputSources: (XRInputSource | null)[];
79
- _xrRenderTarget: XRRenderTarget | null;
80
- _layers: XRLayerObject[];
81
- _sessionUsesLayers: boolean;
82
- _supportsLayers: boolean;
83
- _supportsGlBinding: boolean;
66
+ /**
67
+ * The renderer.
68
+ *
69
+ * @private
70
+ * @type {Renderer}
71
+ */
72
+ private _renderer;
73
+ /**
74
+ * Represents the camera for the left eye.
75
+ *
76
+ * @private
77
+ * @type {PerspectiveCamera}
78
+ */
79
+ private _cameraL;
80
+ /**
81
+ * Represents the camera for the right eye.
82
+ *
83
+ * @private
84
+ * @type {PerspectiveCamera}
85
+ */
86
+ private _cameraR;
87
+ /**
88
+ * A list of cameras used for rendering the XR views.
89
+ *
90
+ * @private
91
+ * @type {Array<Camera>}
92
+ */
93
+ private _cameras;
94
+ /**
95
+ * The main XR camera.
96
+ *
97
+ * @private
98
+ * @type {ArrayCamera}
99
+ */
100
+ private _cameraXR;
101
+ /**
102
+ * The current near value of the XR camera.
103
+ *
104
+ * @private
105
+ * @type {?number}
106
+ * @default null
107
+ */
108
+ private _currentDepthNear;
109
+ /**
110
+ * The current far value of the XR camera.
111
+ *
112
+ * @private
113
+ * @type {?number}
114
+ * @default null
115
+ */
116
+ private _currentDepthFar;
117
+ /**
118
+ * A list of WebXR controllers requested by the application.
119
+ *
120
+ * @private
121
+ * @type {Array<WebXRController>}
122
+ */
123
+ private _controllers;
124
+ /**
125
+ * A list of XR input source. Each input source belongs to
126
+ * an instance of WebXRController.
127
+ *
128
+ * @private
129
+ * @type {Array<XRInputSource?>}
130
+ */
131
+ private _controllerInputSources;
132
+ /**
133
+ * The XR render target that represents the rendering destination
134
+ * during an active XR session.
135
+ *
136
+ * @private
137
+ * @type {?RenderTarget}
138
+ * @default null
139
+ */
140
+ private _xrRenderTarget;
141
+ /**
142
+ * An array holding all the non-projection layers
143
+ *
144
+ * @private
145
+ * @type {Array<Object>}
146
+ * @default []
147
+ */
148
+ private _layers;
149
+ /**
150
+ * Whether the XR session uses layers.
151
+ *
152
+ * @private
153
+ * @type {boolean}
154
+ * @default false
155
+ */
156
+ private _sessionUsesLayers;
157
+ /**
158
+ * Whether the device supports binding gl objects.
159
+ *
160
+ * @private
161
+ * @type {boolean}
162
+ * @readonly
163
+ */
164
+ private readonly _supportsGlBinding;
84
165
  _frameBufferTargets:
85
166
  | WeakMap<XRRenderTarget, {
86
167
  frameBufferTarget: RenderTarget | null;
87
168
  quad: QuadMesh;
88
169
  }>
89
170
  | null;
90
- _createXRLayer: (layer: XRLayerObject) => XRLayer;
91
- _gl: WebGL2RenderingContext | null;
92
- _currentAnimationContext: AnimationContext | null;
93
- _currentAnimationLoop: ((time: DOMHighResTimeStamp, frame?: XRFrame) => void) | null;
94
- _currentPixelRatio: number | null;
95
- _currentSize: Vector2;
96
- _onSessionEvent: (event: XRInputSourceEvent) => void;
97
- _onSessionEnd: () => void;
98
- _onInputSourcesChange: (event: XRInputSourcesChangeEvent) => void;
99
- _onAnimationFrame: (time: DOMHighResTimeStamp, frame?: XRFrame) => void;
100
- _referenceSpace: XRReferenceSpace | null;
101
- _referenceSpaceType: XRReferenceSpaceType;
102
- _customReferenceSpace: XRReferenceSpace | null;
103
- _framebufferScaleFactor: number;
104
- _foveation: number;
105
- _session: XRSession | null;
106
- _glBaseLayer: XRWebGLLayer | null;
107
- _glBinding: XRWebGLBinding | null;
108
- _glProjLayer: XRProjectionLayer | null;
109
- _xrFrame: XRFrame | null;
110
- _useLayers: boolean;
111
- _useMultiviewIfPossible: boolean;
112
- _useMultiview: boolean;
113
171
  /**
114
- * Constructs a new XR manager.
172
+ * Helper function to create native WebXR Layer.
115
173
  *
116
- * @param {Renderer} renderer - The renderer.
117
- * @param {boolean} [multiview=false] - Enables multiview if the device supports it.
174
+ * @private
175
+ * @type {Function}
118
176
  */
119
- constructor(renderer: Renderer, multiview?: boolean);
177
+ private _createXRLayer;
178
+ /**
179
+ * The current WebGL context.
180
+ *
181
+ * @private
182
+ * @type {?WebGL2RenderingContext}
183
+ * @default null
184
+ */
185
+ private _gl;
186
+ /**
187
+ * The current animation context.
188
+ *
189
+ * @private
190
+ * @type {?Window}
191
+ * @default null
192
+ */
193
+ private _currentAnimationContext;
194
+ /**
195
+ * The current animation loop.
196
+ *
197
+ * @private
198
+ * @type {?Function}
199
+ * @default null
200
+ */
201
+ private _currentAnimationLoop;
202
+ /**
203
+ * The current pixel ratio.
204
+ *
205
+ * @private
206
+ * @type {?number}
207
+ * @default null
208
+ */
209
+ private _currentPixelRatio;
210
+ /**
211
+ * The current size of the renderer's canvas
212
+ * in logical pixel unit.
213
+ *
214
+ * @private
215
+ * @type {Vector2}
216
+ */
217
+ private _currentSize;
218
+ /**
219
+ * The default event listener for handling events inside a XR session.
220
+ *
221
+ * @private
222
+ * @type {Function}
223
+ */
224
+ private _onSessionEvent;
225
+ /**
226
+ * The event listener for handling the end of a XR session.
227
+ *
228
+ * @private
229
+ * @type {Function}
230
+ */
231
+ private _onSessionEnd;
232
+ /**
233
+ * The event listener for handling the `inputsourceschange` event.
234
+ *
235
+ * @private
236
+ * @type {Function}
237
+ */
238
+ private _onInputSourcesChange;
239
+ /**
240
+ * The animation loop which is used as a replacement for the default
241
+ * animation loop of the application. It is only used when a XR session
242
+ * is active.
243
+ *
244
+ * @private
245
+ * @type {Function}
246
+ */
247
+ private _onAnimationFrame;
248
+ /**
249
+ * The current XR reference space.
250
+ *
251
+ * @private
252
+ * @type {?XRReferenceSpace}
253
+ * @default null
254
+ */
255
+ private _referenceSpace;
256
+ /**
257
+ * The current XR reference space type.
258
+ *
259
+ * @private
260
+ * @type {XRReferenceSpaceType}
261
+ * @default 'local-floor'
262
+ */
263
+ private _referenceSpaceType;
264
+ /**
265
+ * A custom reference space defined by the application.
266
+ *
267
+ * @private
268
+ * @type {?XRReferenceSpace}
269
+ * @default null
270
+ */
271
+ private _customReferenceSpace;
272
+ /**
273
+ * The framebuffer scale factor.
274
+ *
275
+ * @private
276
+ * @type {number}
277
+ * @default 1
278
+ */
279
+ private _framebufferScaleFactor;
280
+ /**
281
+ * The foveation factor.
282
+ *
283
+ * @private
284
+ * @type {number}
285
+ * @default 1
286
+ */
287
+ private _foveation;
288
+ /**
289
+ * A reference to the current XR session.
290
+ *
291
+ * @private
292
+ * @type {?XRSession}
293
+ * @default null
294
+ */
295
+ private _session;
296
+ /**
297
+ * A reference to the current XR base layer.
298
+ *
299
+ * @private
300
+ * @type {?XRWebGLLayer}
301
+ * @default null
302
+ */
303
+ private _glBaseLayer;
304
+ /**
305
+ * A reference to the current XR binding.
306
+ *
307
+ * @private
308
+ * @type {?XRWebGLBinding}
309
+ * @default null
310
+ */
311
+ private _glBinding;
312
+ /**
313
+ * A reference to the current XR projection layer.
314
+ *
315
+ * @private
316
+ * @type {?XRProjectionLayer}
317
+ * @default null
318
+ */
319
+ private _glProjLayer;
320
+ /**
321
+ * A reference to the current XR frame.
322
+ *
323
+ * @private
324
+ * @type {?XRFrame}
325
+ * @default null
326
+ */
327
+ private _xrFrame;
328
+ /**
329
+ * Whether the browser supports the APIs necessary to use XRProjectionLayers.
330
+ *
331
+ * Note: this does not represent XRSession explicitly requesting
332
+ * `'layers'` as a feature - see `_sessionUsesLayers` and #30112
333
+ *
334
+ * @private
335
+ * @type {boolean}
336
+ * @readonly
337
+ */
338
+ private readonly _supportsLayers;
339
+ /**
340
+ * Whether the usage of multiview has been requested by the application or not.
341
+ *
342
+ * @private
343
+ * @type {boolean}
344
+ * @default false
345
+ * @readonly
346
+ */
347
+ private readonly _useMultiviewIfPossible;
348
+ /**
349
+ * Whether the usage of multiview is actually enabled. This flag only evaluates to `true`
350
+ * if multiview has been requested by the application and the `OVR_multiview2` is available.
351
+ *
352
+ * @private
353
+ * @type {boolean}
354
+ * @readonly
355
+ */
356
+ private readonly _useMultiview;
120
357
  /**
121
358
  * Returns an instance of `THREE.Group` that represents the transformation
122
359
  * of a XR controller in target ray space. The requested controller is defined
@@ -125,7 +362,7 @@ declare class XRManager extends EventDispatcher<XRManagerEventMap> {
125
362
  * @param {number} index - The index of the XR controller.
126
363
  * @return {Group} A group that represents the controller's transformation.
127
364
  */
128
- getController(index: number): import("../webxr/WebXRController.js").XRTargetRaySpace;
365
+ getController(index: number): XRTargetRaySpace;
129
366
  /**
130
367
  * Returns an instance of `THREE.Group` that represents the transformation
131
368
  * of a XR controller in grip space. The requested controller is defined
@@ -134,7 +371,7 @@ declare class XRManager extends EventDispatcher<XRManagerEventMap> {
134
371
  * @param {number} index - The index of the XR controller.
135
372
  * @return {Group} A group that represents the controller's transformation.
136
373
  */
137
- getControllerGrip(index: number): import("../webxr/WebXRController.js").XRGripSpace;
374
+ getControllerGrip(index: number): XRGripSpace;
138
375
  /**
139
376
  * Returns an instance of `THREE.Group` that represents the transformation
140
377
  * of a XR controller in hand space. The requested controller is defined
@@ -143,7 +380,7 @@ declare class XRManager extends EventDispatcher<XRManagerEventMap> {
143
380
  * @param {number} index - The index of the XR controller.
144
381
  * @return {Group} A group that represents the controller's transformation.
145
382
  */
146
- getHand(index: number): import("../webxr/WebXRController.js").XRHandSpace;
383
+ getHand(index: number): XRHandSpace;
147
384
  /**
148
385
  * Returns the foveation value.
149
386
  *
@@ -190,7 +427,7 @@ declare class XRManager extends EventDispatcher<XRManagerEventMap> {
190
427
  *
191
428
  * @return {XRReferenceSpace} The XR reference space.
192
429
  */
193
- getReferenceSpace(): XRReferenceSpace | null;
430
+ getReferenceSpace(): XRReferenceSpace;
194
431
  /**
195
432
  * Sets a custom XR reference space.
196
433
  *
@@ -254,7 +491,7 @@ declare class XRManager extends EventDispatcher<XRManagerEventMap> {
254
491
  pixelheight: number,
255
492
  rendercall: () => void,
256
493
  attributes?: LayerAttributes,
257
- ): Mesh<PlaneGeometry, MeshBasicMaterial, import("../../core/Object3D.js").Object3DEventMap>;
494
+ ): Mesh<PlaneGeometry, MeshBasicMaterial>;
258
495
  /**
259
496
  * This method can be used in XR applications to create a cylindrical layer that presents a separate
260
497
  * rendered scene.
@@ -281,7 +518,7 @@ declare class XRManager extends EventDispatcher<XRManagerEventMap> {
281
518
  pixelheight: number,
282
519
  rendercall: () => void,
283
520
  attributes?: LayerAttributes,
284
- ): Mesh<CylinderGeometry, MeshBasicMaterial, import("../../core/Object3D.js").Object3DEventMap>;
521
+ ): Mesh<CylinderGeometry, MeshBasicMaterial>;
285
522
  /**
286
523
  * Renders the XR layers that have been previously added to the scene.
287
524
  *
@@ -320,6 +557,7 @@ declare class XRManager extends EventDispatcher<XRManagerEventMap> {
320
557
  * @param {number} index - The controller index.
321
558
  * @return {WebXRController} The XR controller.
322
559
  */
323
- _getController(index: number): WebXRController;
560
+ private _getController;
324
561
  }
562
+
325
563
  export default XRManager;