@onerjs/core 8.53.5 → 8.53.7

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 (841) hide show
  1. package/Animations/animationGroup.d.ts +0 -1
  2. package/Animations/animationGroup.js +0 -1
  3. package/Animations/animationGroup.js.map +1 -1
  4. package/Animations/animationGroup.pure.js +2 -0
  5. package/Animations/animationGroup.pure.js.map +1 -1
  6. package/Animations/runtimeAnimation.js +11 -0
  7. package/Animations/runtimeAnimation.js.map +1 -1
  8. package/Audio/audioSceneComponent.pure.js +1 -1
  9. package/AudioV2/abstractAudio/abstractSound.d.ts +2 -1
  10. package/AudioV2/abstractAudio/abstractSound.js +7 -2
  11. package/AudioV2/abstractAudio/abstractSound.js.map +1 -1
  12. package/AudioV2/abstractAudio/abstractSoundInstance.d.ts +3 -1
  13. package/AudioV2/abstractAudio/abstractSoundInstance.js.map +1 -1
  14. package/AudioV2/abstractAudio/staticSound.d.ts +6 -0
  15. package/AudioV2/abstractAudio/staticSound.js +17 -1
  16. package/AudioV2/abstractAudio/staticSound.js.map +1 -1
  17. package/AudioV2/abstractAudio/staticSoundInstance.d.ts +4 -2
  18. package/AudioV2/abstractAudio/staticSoundInstance.js.map +1 -1
  19. package/AudioV2/abstractAudio/streamingSound.d.ts +6 -0
  20. package/AudioV2/abstractAudio/streamingSound.js +9 -1
  21. package/AudioV2/abstractAudio/streamingSound.js.map +1 -1
  22. package/AudioV2/webAudio/webAudioStaticSound.d.ts +7 -1
  23. package/AudioV2/webAudio/webAudioStaticSound.js +56 -8
  24. package/AudioV2/webAudio/webAudioStaticSound.js.map +1 -1
  25. package/AudioV2/webAudio/webAudioStreamingSound.d.ts +3 -1
  26. package/AudioV2/webAudio/webAudioStreamingSound.js +16 -4
  27. package/AudioV2/webAudio/webAudioStreamingSound.js.map +1 -1
  28. package/BakedVertexAnimation/bakedVertexAnimationManager.d.ts +2 -2
  29. package/BakedVertexAnimation/bakedVertexAnimationManager.js +151 -121
  30. package/BakedVertexAnimation/bakedVertexAnimationManager.js.map +1 -1
  31. package/Behaviors/Cameras/interpolatingBehavior.d.ts +17 -2
  32. package/Behaviors/Cameras/interpolatingBehavior.js +53 -23
  33. package/Behaviors/Cameras/interpolatingBehavior.js.map +1 -1
  34. package/Bones/bone.pure.js +3 -3
  35. package/Buffers/buffer.pure.js +0 -12
  36. package/Buffers/buffer.pure.js.map +1 -1
  37. package/Cameras/Inputs/BaseCameraMouseWheelInput.js +141 -126
  38. package/Cameras/Inputs/BaseCameraMouseWheelInput.js.map +1 -1
  39. package/Cameras/Inputs/BaseCameraPointersInput.d.ts +2 -1
  40. package/Cameras/Inputs/BaseCameraPointersInput.js +290 -277
  41. package/Cameras/Inputs/BaseCameraPointersInput.js.map +1 -1
  42. package/Cameras/Inputs/arcRotateCameraGamepadInput.js +115 -102
  43. package/Cameras/Inputs/arcRotateCameraGamepadInput.js.map +1 -1
  44. package/Cameras/Inputs/arcRotateCameraKeyboardMoveInput.d.ts +3 -0
  45. package/Cameras/Inputs/arcRotateCameraKeyboardMoveInput.js +334 -273
  46. package/Cameras/Inputs/arcRotateCameraKeyboardMoveInput.js.map +1 -1
  47. package/Cameras/Inputs/arcRotateCameraMouseWheelInput.js +273 -258
  48. package/Cameras/Inputs/arcRotateCameraMouseWheelInput.js.map +1 -1
  49. package/Cameras/Inputs/arcRotateCameraPointersInput.js +237 -213
  50. package/Cameras/Inputs/arcRotateCameraPointersInput.js.map +1 -1
  51. package/Cameras/Inputs/flyCameraKeyboardInput.js +199 -168
  52. package/Cameras/Inputs/flyCameraKeyboardInput.js.map +1 -1
  53. package/Cameras/Inputs/flyCameraMouseInput.js +243 -229
  54. package/Cameras/Inputs/flyCameraMouseInput.js.map +1 -1
  55. package/Cameras/Inputs/followCameraKeyboardMoveInput.js +311 -266
  56. package/Cameras/Inputs/followCameraKeyboardMoveInput.js.map +1 -1
  57. package/Cameras/Inputs/followCameraMouseWheelInput.js +139 -119
  58. package/Cameras/Inputs/followCameraMouseWheelInput.js.map +1 -1
  59. package/Cameras/Inputs/followCameraPointersInput.js +239 -203
  60. package/Cameras/Inputs/followCameraPointersInput.js.map +1 -1
  61. package/Cameras/Inputs/freeCameraGamepadInput.js +127 -114
  62. package/Cameras/Inputs/freeCameraGamepadInput.js.map +1 -1
  63. package/Cameras/Inputs/freeCameraKeyboardMoveInput.js +278 -244
  64. package/Cameras/Inputs/freeCameraKeyboardMoveInput.js.map +1 -1
  65. package/Cameras/Inputs/freeCameraMouseInput.js +216 -202
  66. package/Cameras/Inputs/freeCameraMouseInput.js.map +1 -1
  67. package/Cameras/Inputs/freeCameraMouseWheelInput.js +368 -353
  68. package/Cameras/Inputs/freeCameraMouseWheelInput.js.map +1 -1
  69. package/Cameras/Inputs/freeCameraTouchInput.js +185 -172
  70. package/Cameras/Inputs/freeCameraTouchInput.js.map +1 -1
  71. package/Cameras/Inputs/geospatialCameraKeyboardInput.d.ts +2 -0
  72. package/Cameras/Inputs/geospatialCameraKeyboardInput.js +291 -246
  73. package/Cameras/Inputs/geospatialCameraKeyboardInput.js.map +1 -1
  74. package/Cameras/Inputs/geospatialCameraPointersInput.d.ts +11 -1
  75. package/Cameras/Inputs/geospatialCameraPointersInput.js +18 -2
  76. package/Cameras/Inputs/geospatialCameraPointersInput.js.map +1 -1
  77. package/Cameras/Inputs/orbitCameraPointersInput.js +112 -96
  78. package/Cameras/Inputs/orbitCameraPointersInput.js.map +1 -1
  79. package/Cameras/VR/vrExperienceHelper.d.ts +0 -2
  80. package/Cameras/VR/vrExperienceHelper.js +0 -2
  81. package/Cameras/VR/vrExperienceHelper.js.map +1 -1
  82. package/Cameras/VR/vrExperienceHelper.pure.js +5 -0
  83. package/Cameras/VR/vrExperienceHelper.pure.js.map +1 -1
  84. package/Cameras/arcRotateCamera.pure.js +1559 -1479
  85. package/Cameras/arcRotateCamera.pure.js.map +1 -1
  86. package/Cameras/camera.pure.js +1225 -1178
  87. package/Cameras/camera.pure.js.map +1 -1
  88. package/Cameras/flyCamera.pure.js +369 -351
  89. package/Cameras/flyCamera.pure.js.map +1 -1
  90. package/Cameras/followCamera.pure.js +229 -192
  91. package/Cameras/followCamera.pure.js.map +1 -1
  92. package/Cameras/freeCamera.pure.js +373 -351
  93. package/Cameras/freeCamera.pure.js.map +1 -1
  94. package/Cameras/geospatialCamera.pure.d.ts +30 -7
  95. package/Cameras/geospatialCamera.pure.js +502 -457
  96. package/Cameras/geospatialCamera.pure.js.map +1 -1
  97. package/Cameras/geospatialCameraMovement.js +2 -2
  98. package/Cameras/geospatialCameraMovement.js.map +1 -1
  99. package/Cameras/targetCamera.pure.d.ts +7 -0
  100. package/Cameras/targetCamera.pure.js +550 -509
  101. package/Cameras/targetCamera.pure.js.map +1 -1
  102. package/Cameras/universalCamera.pure.js +98 -85
  103. package/Cameras/universalCamera.pure.js.map +1 -1
  104. package/Collisions/gpuPicker.d.ts +111 -4
  105. package/Collisions/gpuPicker.js +696 -119
  106. package/Collisions/gpuPicker.js.map +1 -1
  107. package/Compute/computeShader.pure.js +372 -355
  108. package/Compute/computeShader.pure.js.map +1 -1
  109. package/Culling/Helper/transformFeedbackBoundingHelper.pure.js +2 -2
  110. package/Decorators/nodeDecorator.d.ts +11 -1
  111. package/Decorators/nodeDecorator.js +43 -6
  112. package/Decorators/nodeDecorator.js.map +1 -1
  113. package/Engines/AbstractEngine/abstractEngine.loadFile.pure.js +8 -0
  114. package/Engines/AbstractEngine/abstractEngine.loadFile.pure.js.map +1 -1
  115. package/Engines/Native/nativeHelpers.js +15 -0
  116. package/Engines/Native/nativeHelpers.js.map +1 -1
  117. package/Engines/Native/nativeInterfaces.d.ts +7 -2
  118. package/Engines/Native/nativeInterfaces.js.map +1 -1
  119. package/Engines/Native/nativeRenderTargetWrapper.d.ts +5 -0
  120. package/Engines/Native/nativeRenderTargetWrapper.js +35 -1
  121. package/Engines/Native/nativeRenderTargetWrapper.js.map +1 -1
  122. package/Engines/Processors/shaderProcessor.js +5 -3
  123. package/Engines/Processors/shaderProcessor.js.map +1 -1
  124. package/Engines/WebGPU/Extensions/engine.videoTexture.pure.js +16 -3
  125. package/Engines/WebGPU/Extensions/engine.videoTexture.pure.js.map +1 -1
  126. package/Engines/WebGPU/webgpuClearQuad.pure.js +7 -1
  127. package/Engines/WebGPU/webgpuClearQuad.pure.js.map +1 -1
  128. package/Engines/abstractEngine.functions.d.ts +8 -2
  129. package/Engines/abstractEngine.functions.js +12 -4
  130. package/Engines/abstractEngine.functions.js.map +1 -1
  131. package/Engines/abstractEngine.pure.d.ts +20 -1
  132. package/Engines/abstractEngine.pure.js +21 -134
  133. package/Engines/abstractEngine.pure.js.map +1 -1
  134. package/Engines/engine.d.ts +208 -0
  135. package/Engines/engine.pure.js +0 -15
  136. package/Engines/engine.pure.js.map +1 -1
  137. package/Engines/nullEngine.pure.d.ts +66 -0
  138. package/Engines/nullEngine.pure.js +97 -0
  139. package/Engines/nullEngine.pure.js.map +1 -1
  140. package/Engines/thinEngine.pure.d.ts +0 -13
  141. package/Engines/thinEngine.pure.js +4 -23
  142. package/Engines/thinEngine.pure.js.map +1 -1
  143. package/Engines/thinNativeEngine.d.ts +0 -1
  144. package/Engines/thinNativeEngine.js +0 -1
  145. package/Engines/thinNativeEngine.js.map +1 -1
  146. package/Engines/thinNativeEngine.pure.d.ts +27 -0
  147. package/Engines/thinNativeEngine.pure.js +383 -17
  148. package/Engines/thinNativeEngine.pure.js.map +1 -1
  149. package/Engines/webgpuEngine.d.ts +1 -0
  150. package/Engines/webgpuEngine.js +1 -0
  151. package/Engines/webgpuEngine.js.map +1 -1
  152. package/Engines/webgpuEngine.pure.d.ts +9 -0
  153. package/Engines/webgpuEngine.pure.js +7 -0
  154. package/Engines/webgpuEngine.pure.js.map +1 -1
  155. package/FlowGraph/flowGraph.js +9 -0
  156. package/FlowGraph/flowGraph.js.map +1 -1
  157. package/FlowGraph/flowGraphContext.js +597 -584
  158. package/FlowGraph/flowGraphContext.js.map +1 -1
  159. package/FlowGraph/flowGraphDataConnection.pure.d.ts +14 -0
  160. package/FlowGraph/flowGraphDataConnection.pure.js +38 -1
  161. package/FlowGraph/flowGraphDataConnection.pure.js.map +1 -1
  162. package/FlowGraph/serialization.d.ts +11 -0
  163. package/FlowGraph/serialization.js +11 -1
  164. package/FlowGraph/serialization.js.map +1 -1
  165. package/FrameGraph/Node/Blocks/Layers/glowLayerBlock.pure.js +182 -170
  166. package/FrameGraph/Node/Blocks/Layers/glowLayerBlock.pure.js.map +1 -1
  167. package/FrameGraph/Node/Blocks/Layers/highlightLayerBlock.pure.js +196 -184
  168. package/FrameGraph/Node/Blocks/Layers/highlightLayerBlock.pure.js.map +1 -1
  169. package/FrameGraph/Node/Blocks/Layers/selectionOutlineLayerBlock.pure.js +222 -210
  170. package/FrameGraph/Node/Blocks/Layers/selectionOutlineLayerBlock.pure.js.map +1 -1
  171. package/FrameGraph/Node/Blocks/PostProcesses/basePostProcessBlock.js +123 -111
  172. package/FrameGraph/Node/Blocks/PostProcesses/basePostProcessBlock.js.map +1 -1
  173. package/FrameGraph/Node/Blocks/PostProcesses/baseWithPropertiesPostProcessBlock.js +158 -146
  174. package/FrameGraph/Node/Blocks/PostProcesses/baseWithPropertiesPostProcessBlock.js.map +1 -1
  175. package/FrameGraph/Node/Blocks/PostProcesses/blackAndWhitePostProcessBlock.pure.js +63 -51
  176. package/FrameGraph/Node/Blocks/PostProcesses/blackAndWhitePostProcessBlock.pure.js.map +1 -1
  177. package/FrameGraph/Node/Blocks/PostProcesses/bloomPostProcessBlock.pure.js +122 -110
  178. package/FrameGraph/Node/Blocks/PostProcesses/bloomPostProcessBlock.pure.js.map +1 -1
  179. package/FrameGraph/Node/Blocks/PostProcesses/blurPostProcessBlock.pure.js +76 -64
  180. package/FrameGraph/Node/Blocks/PostProcesses/blurPostProcessBlock.pure.js.map +1 -1
  181. package/FrameGraph/Node/Blocks/PostProcesses/chromaticAberrationPostProcessBlock.pure.js +89 -77
  182. package/FrameGraph/Node/Blocks/PostProcesses/chromaticAberrationPostProcessBlock.pure.js.map +1 -1
  183. package/FrameGraph/Node/Blocks/PostProcesses/circleOfConfusionPostProcessBlock.pure.js +134 -122
  184. package/FrameGraph/Node/Blocks/PostProcesses/circleOfConfusionPostProcessBlock.pure.js.map +1 -1
  185. package/FrameGraph/Node/Blocks/PostProcesses/colorCorrectionPostProcessBlock.pure.js +58 -46
  186. package/FrameGraph/Node/Blocks/PostProcesses/colorCorrectionPostProcessBlock.pure.js.map +1 -1
  187. package/FrameGraph/Node/Blocks/PostProcesses/convolutionPostProcessBlock.pure.js +107 -95
  188. package/FrameGraph/Node/Blocks/PostProcesses/convolutionPostProcessBlock.pure.js.map +1 -1
  189. package/FrameGraph/Node/Blocks/PostProcesses/depthOfFieldPostProcessBlock.pure.js +181 -169
  190. package/FrameGraph/Node/Blocks/PostProcesses/depthOfFieldPostProcessBlock.pure.js.map +1 -1
  191. package/FrameGraph/Node/Blocks/PostProcesses/extractHighlightsPostProcessBlock.pure.js +63 -51
  192. package/FrameGraph/Node/Blocks/PostProcesses/extractHighlightsPostProcessBlock.pure.js.map +1 -1
  193. package/FrameGraph/Node/Blocks/PostProcesses/filterPostProcessBlock.pure.js +63 -51
  194. package/FrameGraph/Node/Blocks/PostProcesses/filterPostProcessBlock.pure.js.map +1 -1
  195. package/FrameGraph/Node/Blocks/PostProcesses/grainPostProcessBlock.pure.js +76 -64
  196. package/FrameGraph/Node/Blocks/PostProcesses/grainPostProcessBlock.pure.js.map +1 -1
  197. package/FrameGraph/Node/Blocks/PostProcesses/imageProcessingPostProcessBlock.pure.js +246 -234
  198. package/FrameGraph/Node/Blocks/PostProcesses/imageProcessingPostProcessBlock.pure.js.map +1 -1
  199. package/FrameGraph/Node/Blocks/PostProcesses/motionBlurPostProcessBlock.pure.js +108 -96
  200. package/FrameGraph/Node/Blocks/PostProcesses/motionBlurPostProcessBlock.pure.js.map +1 -1
  201. package/FrameGraph/Node/Blocks/PostProcesses/screenSpaceCurvaturePostProcessBlock.pure.js +87 -75
  202. package/FrameGraph/Node/Blocks/PostProcesses/screenSpaceCurvaturePostProcessBlock.pure.js.map +1 -1
  203. package/FrameGraph/Node/Blocks/PostProcesses/sharpenPostProcessBlock.pure.js +76 -64
  204. package/FrameGraph/Node/Blocks/PostProcesses/sharpenPostProcessBlock.pure.js.map +1 -1
  205. package/FrameGraph/Node/Blocks/PostProcesses/ssao2PostProcessBlock.pure.js +313 -301
  206. package/FrameGraph/Node/Blocks/PostProcesses/ssao2PostProcessBlock.pure.js.map +1 -1
  207. package/FrameGraph/Node/Blocks/PostProcesses/ssrPostProcessBlock.pure.js +502 -490
  208. package/FrameGraph/Node/Blocks/PostProcesses/ssrPostProcessBlock.pure.js.map +1 -1
  209. package/FrameGraph/Node/Blocks/PostProcesses/taaPostProcessBlock.pure.js +147 -135
  210. package/FrameGraph/Node/Blocks/PostProcesses/taaPostProcessBlock.pure.js.map +1 -1
  211. package/FrameGraph/Node/Blocks/PostProcesses/tonemapPostProcessBlock.pure.js +90 -78
  212. package/FrameGraph/Node/Blocks/PostProcesses/tonemapPostProcessBlock.pure.js.map +1 -1
  213. package/FrameGraph/Node/Blocks/PostProcesses/volumetricLightingBlock.pure.js +179 -167
  214. package/FrameGraph/Node/Blocks/PostProcesses/volumetricLightingBlock.pure.js.map +1 -1
  215. package/FrameGraph/Node/Blocks/Rendering/baseObjectRendererBlock.js +462 -451
  216. package/FrameGraph/Node/Blocks/Rendering/baseObjectRendererBlock.js.map +1 -1
  217. package/FrameGraph/Node/Blocks/Rendering/baseShadowGeneratorBlock.js +265 -253
  218. package/FrameGraph/Node/Blocks/Rendering/baseShadowGeneratorBlock.js.map +1 -1
  219. package/FrameGraph/Node/Blocks/Rendering/csmShadowGeneratorBlock.pure.js +204 -192
  220. package/FrameGraph/Node/Blocks/Rendering/csmShadowGeneratorBlock.pure.js.map +1 -1
  221. package/FrameGraph/Node/Blocks/Rendering/geometryRendererBlock.pure.js +611 -550
  222. package/FrameGraph/Node/Blocks/Rendering/geometryRendererBlock.pure.js.map +1 -1
  223. package/FrameGraph/Node/Blocks/Rendering/iblShadowsRendererBlock.pure.js +320 -308
  224. package/FrameGraph/Node/Blocks/Rendering/iblShadowsRendererBlock.pure.js.map +1 -1
  225. package/FrameGraph/Node/Blocks/Rendering/utilityLayerRendererBlock.pure.js +87 -75
  226. package/FrameGraph/Node/Blocks/Rendering/utilityLayerRendererBlock.pure.js.map +1 -1
  227. package/FrameGraph/Node/Blocks/Textures/clearBlock.pure.js +154 -142
  228. package/FrameGraph/Node/Blocks/Textures/clearBlock.pure.js.map +1 -1
  229. package/FrameGraph/Node/Blocks/Textures/copyTextureBlock.pure.js +150 -138
  230. package/FrameGraph/Node/Blocks/Textures/copyTextureBlock.pure.js.map +1 -1
  231. package/FrameGraph/Node/Blocks/inputBlock.pure.js +270 -256
  232. package/FrameGraph/Node/Blocks/inputBlock.pure.js.map +1 -1
  233. package/FrameGraph/Node/Blocks/lightingVolumeBlock.pure.js +95 -83
  234. package/FrameGraph/Node/Blocks/lightingVolumeBlock.pure.js.map +1 -1
  235. package/FrameGraph/Node/nodeRenderGraph.js +715 -693
  236. package/FrameGraph/Node/nodeRenderGraph.js.map +1 -1
  237. package/FrameGraph/Node/nodeRenderGraphBlock.js +548 -533
  238. package/FrameGraph/Node/nodeRenderGraphBlock.js.map +1 -1
  239. package/FrameGraph/Tasks/Rendering/iblShadows/iblShadowsAccumulationTask.d.ts +2 -2
  240. package/FrameGraph/Tasks/Rendering/iblShadows/iblShadowsAccumulationTask.js +43 -51
  241. package/FrameGraph/Tasks/Rendering/iblShadows/iblShadowsAccumulationTask.js.map +1 -1
  242. package/FrameGraph/Tasks/Rendering/iblShadowsRendererTask.d.ts +0 -1
  243. package/FrameGraph/Tasks/Rendering/iblShadowsRendererTask.js +0 -1
  244. package/FrameGraph/Tasks/Rendering/iblShadowsRendererTask.js.map +1 -1
  245. package/FrameGraph/Tasks/Rendering/iblShadowsRendererTask.pure.d.ts +0 -1
  246. package/FrameGraph/Tasks/Rendering/iblShadowsRendererTask.pure.js +66 -35
  247. package/FrameGraph/Tasks/Rendering/iblShadowsRendererTask.pure.js.map +1 -1
  248. package/Helpers/environmentHelper.js +2 -2
  249. package/Helpers/environmentHelper.js.map +1 -1
  250. package/Layers/effectLayer.js +529 -519
  251. package/Layers/effectLayer.js.map +1 -1
  252. package/Layers/glowLayer.pure.js +428 -413
  253. package/Layers/glowLayer.pure.js.map +1 -1
  254. package/Layers/highlightLayer.pure.js +473 -458
  255. package/Layers/highlightLayer.pure.js.map +1 -1
  256. package/Layers/selectionOutlineLayer.pure.js +360 -345
  257. package/Layers/selectionOutlineLayer.pure.js.map +1 -1
  258. package/Lights/Clustered/clusteredLightContainer.pure.d.ts +1 -1
  259. package/Lights/Clustered/clusteredLightContainer.pure.js +583 -558
  260. package/Lights/Clustered/clusteredLightContainer.pure.js.map +1 -1
  261. package/Lights/Shadows/shadowGenerator.js +6 -1
  262. package/Lights/Shadows/shadowGenerator.js.map +1 -1
  263. package/Lights/areaLight.pure.js +61 -39
  264. package/Lights/areaLight.pure.js.map +1 -1
  265. package/Lights/directionalLight.pure.js +308 -284
  266. package/Lights/directionalLight.pure.js.map +1 -1
  267. package/Lights/hemisphericLight.pure.js +123 -104
  268. package/Lights/hemisphericLight.pure.js.map +1 -1
  269. package/Lights/light.d.ts +5 -3
  270. package/Lights/light.js +869 -827
  271. package/Lights/light.js.map +1 -1
  272. package/Lights/pointLight.pure.js +185 -174
  273. package/Lights/pointLight.pure.js.map +1 -1
  274. package/Lights/rectAreaLight.pure.d.ts +17 -0
  275. package/Lights/rectAreaLight.pure.js +238 -159
  276. package/Lights/rectAreaLight.pure.js.map +1 -1
  277. package/Lights/shadowLight.js +280 -268
  278. package/Lights/shadowLight.js.map +1 -1
  279. package/Lights/spotLight.pure.js +460 -427
  280. package/Lights/spotLight.pure.js.map +1 -1
  281. package/Loading/Plugins/babylonFileLoader.pure.js +17 -5
  282. package/Loading/Plugins/babylonFileLoader.pure.js.map +1 -1
  283. package/Loading/sceneLoader.d.ts +5 -1
  284. package/Loading/sceneLoader.js +299 -402
  285. package/Loading/sceneLoader.js.map +1 -1
  286. package/Materials/Background/backgroundMaterial.pure.d.ts +18 -18
  287. package/Materials/Background/backgroundMaterial.pure.js +949 -794
  288. package/Materials/Background/backgroundMaterial.pure.js.map +1 -1
  289. package/Materials/GaussianSplatting/gaussianSplattingGpuPickingMaterialPlugin.pure.d.ts +15 -0
  290. package/Materials/GaussianSplatting/gaussianSplattingGpuPickingMaterialPlugin.pure.js +34 -1
  291. package/Materials/GaussianSplatting/gaussianSplattingGpuPickingMaterialPlugin.pure.js.map +1 -1
  292. package/Materials/GaussianSplatting/gaussianSplattingMaterial.pure.d.ts +9 -0
  293. package/Materials/GaussianSplatting/gaussianSplattingMaterial.pure.js +26 -2
  294. package/Materials/GaussianSplatting/gaussianSplattingMaterial.pure.js.map +1 -1
  295. package/Materials/GaussianSplatting/gaussianSplattingSolidColorMaterialPlugin.pure.d.ts +2 -1
  296. package/Materials/GaussianSplatting/gaussianSplattingSolidColorMaterialPlugin.pure.js +169 -149
  297. package/Materials/GaussianSplatting/gaussianSplattingSolidColorMaterialPlugin.pure.js.map +1 -1
  298. package/Materials/Node/Blocks/Dual/imageSourceBlock.pure.js +1 -1
  299. package/Materials/Node/Blocks/Dual/lightBlock.pure.js +442 -429
  300. package/Materials/Node/Blocks/Dual/lightBlock.pure.js.map +1 -1
  301. package/Materials/Node/Blocks/Dual/reflectionTextureBaseBlock.pure.js +396 -383
  302. package/Materials/Node/Blocks/Dual/reflectionTextureBaseBlock.pure.js.map +1 -1
  303. package/Materials/Node/Blocks/Dual/sceneDepthBlock.pure.js +237 -220
  304. package/Materials/Node/Blocks/Dual/sceneDepthBlock.pure.js.map +1 -1
  305. package/Materials/Node/Blocks/Dual/textureBlock.pure.js +1 -1
  306. package/Materials/Node/Blocks/Fragment/ambientOcclusionBlock.pure.js +150 -133
  307. package/Materials/Node/Blocks/Fragment/ambientOcclusionBlock.pure.js.map +1 -1
  308. package/Materials/Node/Blocks/Fragment/fragmentOutputBlock.pure.js +265 -250
  309. package/Materials/Node/Blocks/Fragment/fragmentOutputBlock.pure.js.map +1 -1
  310. package/Materials/Node/Blocks/Fragment/heightToNormalBlock.pure.js +159 -142
  311. package/Materials/Node/Blocks/Fragment/heightToNormalBlock.pure.js.map +1 -1
  312. package/Materials/Node/Blocks/Fragment/imageProcessingBlock.pure.js +214 -201
  313. package/Materials/Node/Blocks/Fragment/imageProcessingBlock.pure.js.map +1 -1
  314. package/Materials/Node/Blocks/Fragment/perturbNormalBlock.pure.js +419 -400
  315. package/Materials/Node/Blocks/Fragment/perturbNormalBlock.pure.js.map +1 -1
  316. package/Materials/Node/Blocks/GaussianSplatting/gaussianSplattingBlock.pure.js +3 -1
  317. package/Materials/Node/Blocks/GaussianSplatting/gaussianSplattingBlock.pure.js.map +1 -1
  318. package/Materials/Node/Blocks/PBR/clearCoatBlock.pure.js +302 -289
  319. package/Materials/Node/Blocks/PBR/clearCoatBlock.pure.js.map +1 -1
  320. package/Materials/Node/Blocks/PBR/pbrMetallicRoughnessBlock.pure.js +1327 -1272
  321. package/Materials/Node/Blocks/PBR/pbrMetallicRoughnessBlock.pure.js.map +1 -1
  322. package/Materials/Node/Blocks/PBR/reflectionBlock.pure.js +352 -337
  323. package/Materials/Node/Blocks/PBR/reflectionBlock.pure.js.map +1 -1
  324. package/Materials/Node/Blocks/PBR/refractionBlock.pure.js +297 -277
  325. package/Materials/Node/Blocks/PBR/refractionBlock.pure.js.map +1 -1
  326. package/Materials/Node/Blocks/PBR/sheenBlock.pure.js +146 -131
  327. package/Materials/Node/Blocks/PBR/sheenBlock.pure.js.map +1 -1
  328. package/Materials/Node/Blocks/PBR/subSurfaceBlock.pure.js +158 -145
  329. package/Materials/Node/Blocks/PBR/subSurfaceBlock.pure.js.map +1 -1
  330. package/Materials/Node/Blocks/clampBlock.pure.js +92 -77
  331. package/Materials/Node/Blocks/clampBlock.pure.js.map +1 -1
  332. package/Materials/Node/Blocks/cloudBlock.pure.js +145 -132
  333. package/Materials/Node/Blocks/cloudBlock.pure.js.map +1 -1
  334. package/Materials/Node/Blocks/conditionalBlock.pure.js +182 -169
  335. package/Materials/Node/Blocks/conditionalBlock.pure.js.map +1 -1
  336. package/Materials/Node/Blocks/curveBlock.pure.js +259 -246
  337. package/Materials/Node/Blocks/curveBlock.pure.js.map +1 -1
  338. package/Materials/Node/Blocks/debugBlock.pure.js +119 -106
  339. package/Materials/Node/Blocks/debugBlock.pure.js.map +1 -1
  340. package/Materials/Node/Blocks/loopBlock.pure.js +123 -110
  341. package/Materials/Node/Blocks/loopBlock.pure.js.map +1 -1
  342. package/Materials/Node/Blocks/meshAttributeExistsBlock.pure.js +185 -172
  343. package/Materials/Node/Blocks/meshAttributeExistsBlock.pure.js.map +1 -1
  344. package/Materials/Node/Blocks/remapBlock.pure.js +127 -112
  345. package/Materials/Node/Blocks/remapBlock.pure.js.map +1 -1
  346. package/Materials/Node/Blocks/transformBlock.pure.js +196 -185
  347. package/Materials/Node/Blocks/transformBlock.pure.js.map +1 -1
  348. package/Materials/Node/Blocks/triPlanarBlock.pure.js +451 -438
  349. package/Materials/Node/Blocks/triPlanarBlock.pure.js.map +1 -1
  350. package/Materials/Node/Blocks/trigonometryBlock.pure.js +184 -171
  351. package/Materials/Node/Blocks/trigonometryBlock.pure.js.map +1 -1
  352. package/Materials/Node/Blocks/waveBlock.pure.js +97 -84
  353. package/Materials/Node/Blocks/waveBlock.pure.js.map +1 -1
  354. package/Materials/Node/Blocks/worleyNoise3DBlock.pure.js +276 -263
  355. package/Materials/Node/Blocks/worleyNoise3DBlock.pure.js.map +1 -1
  356. package/Materials/Node/nodeMaterial.pure.js +1765 -1737
  357. package/Materials/Node/nodeMaterial.pure.js.map +1 -1
  358. package/Materials/Node/nodeMaterialBuildState.d.ts +3 -3
  359. package/Materials/PBR/openpbrMaterial.pure.d.ts +102 -102
  360. package/Materials/PBR/openpbrMaterial.pure.js +3115 -2243
  361. package/Materials/PBR/openpbrMaterial.pure.js.map +1 -1
  362. package/Materials/PBR/pbrAnisotropicConfiguration.d.ts +3 -3
  363. package/Materials/PBR/pbrAnisotropicConfiguration.js +255 -227
  364. package/Materials/PBR/pbrAnisotropicConfiguration.js.map +1 -1
  365. package/Materials/PBR/pbrBRDFConfiguration.d.ts +9 -9
  366. package/Materials/PBR/pbrBRDFConfiguration.js +203 -155
  367. package/Materials/PBR/pbrBRDFConfiguration.js.map +1 -1
  368. package/Materials/PBR/pbrBaseMaterial.pure.d.ts +1 -1
  369. package/Materials/PBR/pbrBaseMaterial.pure.js +1751 -1736
  370. package/Materials/PBR/pbrBaseMaterial.pure.js.map +1 -1
  371. package/Materials/PBR/pbrBaseSimpleMaterial.d.ts +13 -13
  372. package/Materials/PBR/pbrBaseSimpleMaterial.js +205 -117
  373. package/Materials/PBR/pbrBaseSimpleMaterial.js.map +1 -1
  374. package/Materials/PBR/pbrClearCoatConfiguration.d.ts +9 -9
  375. package/Materials/PBR/pbrClearCoatConfiguration.js +464 -406
  376. package/Materials/PBR/pbrClearCoatConfiguration.js.map +1 -1
  377. package/Materials/PBR/pbrIridescenceConfiguration.d.ts +3 -3
  378. package/Materials/PBR/pbrIridescenceConfiguration.js +271 -239
  379. package/Materials/PBR/pbrIridescenceConfiguration.js.map +1 -1
  380. package/Materials/PBR/pbrMaterial.pure.d.ts +66 -66
  381. package/Materials/PBR/pbrMaterial.pure.js +1041 -685
  382. package/Materials/PBR/pbrMaterial.pure.js.map +1 -1
  383. package/Materials/PBR/pbrMetallicRoughnessMaterial.pure.d.ts +5 -5
  384. package/Materials/PBR/pbrMetallicRoughnessMaterial.pure.js +176 -115
  385. package/Materials/PBR/pbrMetallicRoughnessMaterial.pure.js.map +1 -1
  386. package/Materials/PBR/pbrSheenConfiguration.d.ts +7 -7
  387. package/Materials/PBR/pbrSheenConfiguration.js +314 -270
  388. package/Materials/PBR/pbrSheenConfiguration.js.map +1 -1
  389. package/Materials/PBR/pbrSpecularGlossinessMaterial.pure.d.ts +5 -5
  390. package/Materials/PBR/pbrSpecularGlossinessMaterial.pure.js +172 -117
  391. package/Materials/PBR/pbrSpecularGlossinessMaterial.pure.js.map +1 -1
  392. package/Materials/PBR/pbrSubSurfaceConfiguration.d.ts +16 -16
  393. package/Materials/PBR/pbrSubSurfaceConfiguration.js +864 -764
  394. package/Materials/PBR/pbrSubSurfaceConfiguration.js.map +1 -1
  395. package/Materials/Textures/HTML/htmlInCanvasPolyfill.d.ts +43 -0
  396. package/Materials/Textures/HTML/htmlInCanvasPolyfill.js +64 -0
  397. package/Materials/Textures/HTML/htmlInCanvasPolyfill.js.map +1 -0
  398. package/Materials/Textures/HTML/htmlInteractionManager.d.ts +69 -0
  399. package/Materials/Textures/HTML/htmlInteractionManager.js +130 -0
  400. package/Materials/Textures/HTML/htmlInteractionManager.js.map +1 -0
  401. package/Materials/Textures/HTML/htmlRaycastInteractionManager.d.ts +84 -0
  402. package/Materials/Textures/HTML/htmlRaycastInteractionManager.js +246 -0
  403. package/Materials/Textures/HTML/htmlRaycastInteractionManager.js.map +1 -0
  404. package/Materials/Textures/HTML/htmlTexture.d.ts +148 -0
  405. package/Materials/Textures/HTML/htmlTexture.js +455 -0
  406. package/Materials/Textures/HTML/htmlTexture.js.map +1 -0
  407. package/Materials/Textures/HTML/index.d.ts +4 -0
  408. package/Materials/Textures/HTML/index.js +5 -0
  409. package/Materials/Textures/HTML/index.js.map +1 -0
  410. package/Materials/Textures/HTML/pure.d.ts +5 -0
  411. package/Materials/Textures/HTML/pure.js +6 -0
  412. package/Materials/Textures/HTML/pure.js.map +1 -0
  413. package/Materials/Textures/Procedurals/proceduralTexture.pure.js +671 -643
  414. package/Materials/Textures/Procedurals/proceduralTexture.pure.js.map +1 -1
  415. package/Materials/Textures/baseTexture.pure.js +880 -825
  416. package/Materials/Textures/baseTexture.pure.js.map +1 -1
  417. package/Materials/Textures/cubeTexture.d.ts +0 -1
  418. package/Materials/Textures/cubeTexture.js +0 -1
  419. package/Materials/Textures/cubeTexture.js.map +1 -1
  420. package/Materials/Textures/cubeTexture.pure.js +368 -333
  421. package/Materials/Textures/cubeTexture.pure.js.map +1 -1
  422. package/Materials/Textures/dynamicTexture.d.ts +0 -1
  423. package/Materials/Textures/dynamicTexture.js +0 -1
  424. package/Materials/Textures/dynamicTexture.js.map +1 -1
  425. package/Materials/Textures/dynamicTexture.pure.js +2 -0
  426. package/Materials/Textures/dynamicTexture.pure.js.map +1 -1
  427. package/Materials/Textures/htmlElementTexture.d.ts +0 -2
  428. package/Materials/Textures/htmlElementTexture.js +0 -2
  429. package/Materials/Textures/htmlElementTexture.js.map +1 -1
  430. package/Materials/Textures/htmlElementTexture.pure.js +4 -0
  431. package/Materials/Textures/htmlElementTexture.pure.js.map +1 -1
  432. package/Materials/Textures/index.d.ts +1 -0
  433. package/Materials/Textures/index.js +1 -1
  434. package/Materials/Textures/index.js.map +1 -1
  435. package/Materials/Textures/multiRenderTarget.d.ts +0 -1
  436. package/Materials/Textures/multiRenderTarget.js +0 -1
  437. package/Materials/Textures/multiRenderTarget.js.map +1 -1
  438. package/Materials/Textures/multiRenderTarget.pure.js +2 -0
  439. package/Materials/Textures/multiRenderTarget.pure.js.map +1 -1
  440. package/Materials/Textures/pure.d.ts +1 -0
  441. package/Materials/Textures/pure.js +1 -0
  442. package/Materials/Textures/pure.js.map +1 -1
  443. package/Materials/Textures/texture.pure.js +961 -923
  444. package/Materials/Textures/texture.pure.js.map +1 -1
  445. package/Materials/Textures/videoTexture.pure.d.ts +3 -0
  446. package/Materials/Textures/videoTexture.pure.js +450 -401
  447. package/Materials/Textures/videoTexture.pure.js.map +1 -1
  448. package/Materials/colorCurves.pure.js +510 -477
  449. package/Materials/colorCurves.pure.js.map +1 -1
  450. package/Materials/effect.pure.js +0 -7
  451. package/Materials/effect.pure.js.map +1 -1
  452. package/Materials/imageProcessing.js +12 -4
  453. package/Materials/imageProcessing.js.map +1 -1
  454. package/Materials/imageProcessingConfiguration.pure.js +647 -587
  455. package/Materials/imageProcessingConfiguration.pure.js.map +1 -1
  456. package/Materials/material.decalMapConfiguration.pure.d.ts +2 -2
  457. package/Materials/material.decalMapConfiguration.pure.js +149 -130
  458. package/Materials/material.decalMapConfiguration.pure.js.map +1 -1
  459. package/Materials/material.detailMapConfiguration.d.ts +3 -3
  460. package/Materials/material.detailMapConfiguration.js +213 -175
  461. package/Materials/material.detailMapConfiguration.js.map +1 -1
  462. package/Materials/material.pure.js +1815 -1721
  463. package/Materials/material.pure.js.map +1 -1
  464. package/Materials/materialPluginBase.pure.js +270 -249
  465. package/Materials/materialPluginBase.pure.js.map +1 -1
  466. package/Materials/materialPluginManager.pure.js +18 -8
  467. package/Materials/materialPluginManager.pure.js.map +1 -1
  468. package/Materials/materialStencilState.js +211 -200
  469. package/Materials/materialStencilState.js.map +1 -1
  470. package/Materials/meshDebugPluginMaterial.pure.d.ts +2 -2
  471. package/Materials/meshDebugPluginMaterial.pure.js +397 -275
  472. package/Materials/meshDebugPluginMaterial.pure.js.map +1 -1
  473. package/Materials/standardMaterial.pure.d.ts +32 -32
  474. package/Materials/standardMaterial.pure.js +1804 -1394
  475. package/Materials/standardMaterial.pure.js.map +1 -1
  476. package/Maths/math.color.pure.js +5 -5
  477. package/Maths/math.functions.js +38 -30
  478. package/Maths/math.functions.js.map +1 -1
  479. package/Maths/math.vector.pure.js +25 -25
  480. package/Meshes/GaussianSplatting/gaussianSplattingMesh.pure.js +18 -8
  481. package/Meshes/GaussianSplatting/gaussianSplattingMesh.pure.js.map +1 -1
  482. package/Meshes/GaussianSplatting/gaussianSplattingMeshBase.pure.d.ts +86 -1
  483. package/Meshes/GaussianSplatting/gaussianSplattingMeshBase.pure.js +255 -104
  484. package/Meshes/GaussianSplatting/gaussianSplattingMeshBase.pure.js.map +1 -1
  485. package/Meshes/GaussianSplatting/gaussianSplattingSortWorker.d.ts +39 -0
  486. package/Meshes/GaussianSplatting/gaussianSplattingSortWorker.js +322 -0
  487. package/Meshes/GaussianSplatting/gaussianSplattingSortWorker.js.map +1 -0
  488. package/Meshes/GreasedLine/greasedLineMesh.pure.js +4 -4
  489. package/Meshes/GreasedLine/greasedLineRibbonMesh.pure.js +3 -3
  490. package/Meshes/Node/Blocks/Instances/instantiateBaseBlock.js +107 -94
  491. package/Meshes/Node/Blocks/Instances/instantiateBaseBlock.js.map +1 -1
  492. package/Meshes/Node/Blocks/Instances/instantiateOnFacesBlock.pure.js +276 -263
  493. package/Meshes/Node/Blocks/Instances/instantiateOnFacesBlock.pure.js.map +1 -1
  494. package/Meshes/Node/Blocks/Instances/instantiateOnVerticesBlock.pure.js +247 -232
  495. package/Meshes/Node/Blocks/Instances/instantiateOnVerticesBlock.pure.js.map +1 -1
  496. package/Meshes/Node/Blocks/Instances/instantiateOnVolumeBlock.pure.js +299 -284
  497. package/Meshes/Node/Blocks/Instances/instantiateOnVolumeBlock.pure.js.map +1 -1
  498. package/Meshes/Node/Blocks/Set/aggregatorBlock.pure.js +196 -181
  499. package/Meshes/Node/Blocks/Set/aggregatorBlock.pure.js.map +1 -1
  500. package/Meshes/Node/Blocks/Set/latticeBlock.pure.js +198 -179
  501. package/Meshes/Node/Blocks/Set/latticeBlock.pure.js.map +1 -1
  502. package/Meshes/Node/Blocks/Set/setColorsBlock.pure.js +151 -138
  503. package/Meshes/Node/Blocks/Set/setColorsBlock.pure.js.map +1 -1
  504. package/Meshes/Node/Blocks/Set/setMaterialIDBlock.pure.js +107 -94
  505. package/Meshes/Node/Blocks/Set/setMaterialIDBlock.pure.js.map +1 -1
  506. package/Meshes/Node/Blocks/Set/setNormalsBlock.pure.js +138 -125
  507. package/Meshes/Node/Blocks/Set/setNormalsBlock.pure.js.map +1 -1
  508. package/Meshes/Node/Blocks/Set/setPositionsBlock.pure.js +213 -200
  509. package/Meshes/Node/Blocks/Set/setPositionsBlock.pure.js.map +1 -1
  510. package/Meshes/Node/Blocks/Set/setTangentsBlock.pure.js +138 -125
  511. package/Meshes/Node/Blocks/Set/setTangentsBlock.pure.js.map +1 -1
  512. package/Meshes/Node/Blocks/Set/setUVsBlock.pure.js +179 -164
  513. package/Meshes/Node/Blocks/Set/setUVsBlock.pure.js.map +1 -1
  514. package/Meshes/Node/Blocks/Sources/boxBlock.pure.js +183 -170
  515. package/Meshes/Node/Blocks/Sources/boxBlock.pure.js.map +1 -1
  516. package/Meshes/Node/Blocks/Sources/capsuleBlock.pure.js +125 -112
  517. package/Meshes/Node/Blocks/Sources/capsuleBlock.pure.js.map +1 -1
  518. package/Meshes/Node/Blocks/Sources/cylinderBlock.pure.js +153 -140
  519. package/Meshes/Node/Blocks/Sources/cylinderBlock.pure.js.map +1 -1
  520. package/Meshes/Node/Blocks/Sources/discBlock.pure.js +112 -99
  521. package/Meshes/Node/Blocks/Sources/discBlock.pure.js.map +1 -1
  522. package/Meshes/Node/Blocks/Sources/gridBlock.pure.js +133 -120
  523. package/Meshes/Node/Blocks/Sources/gridBlock.pure.js.map +1 -1
  524. package/Meshes/Node/Blocks/Sources/icoSphereBlock.pure.js +128 -115
  525. package/Meshes/Node/Blocks/Sources/icoSphereBlock.pure.js.map +1 -1
  526. package/Meshes/Node/Blocks/Sources/meshBlock.pure.js +116 -103
  527. package/Meshes/Node/Blocks/Sources/meshBlock.pure.js.map +1 -1
  528. package/Meshes/Node/Blocks/Sources/planeBlock.pure.js +160 -147
  529. package/Meshes/Node/Blocks/Sources/planeBlock.pure.js.map +1 -1
  530. package/Meshes/Node/Blocks/Sources/sphereBlock.pure.js +144 -131
  531. package/Meshes/Node/Blocks/Sources/sphereBlock.pure.js.map +1 -1
  532. package/Meshes/Node/Blocks/Sources/torusBlock.pure.js +112 -99
  533. package/Meshes/Node/Blocks/Sources/torusBlock.pure.js.map +1 -1
  534. package/Meshes/Node/Blocks/Textures/geometryTextureFetchBlock.pure.js +200 -185
  535. package/Meshes/Node/Blocks/Textures/geometryTextureFetchBlock.pure.js.map +1 -1
  536. package/Meshes/Node/Blocks/bevelBlock.pure.js +111 -98
  537. package/Meshes/Node/Blocks/bevelBlock.pure.js.map +1 -1
  538. package/Meshes/Node/Blocks/booleanGeometryBlock.pure.js +182 -165
  539. package/Meshes/Node/Blocks/booleanGeometryBlock.pure.js.map +1 -1
  540. package/Meshes/Node/Blocks/cleanGeometryBlock.pure.js +89 -76
  541. package/Meshes/Node/Blocks/cleanGeometryBlock.pure.js.map +1 -1
  542. package/Meshes/Node/Blocks/conditionBlock.pure.js +184 -169
  543. package/Meshes/Node/Blocks/conditionBlock.pure.js.map +1 -1
  544. package/Meshes/Node/Blocks/extrudeGeometryBlock.pure.js +270 -255
  545. package/Meshes/Node/Blocks/extrudeGeometryBlock.pure.js.map +1 -1
  546. package/Meshes/Node/Blocks/geometryCollectionBlock.pure.js +172 -159
  547. package/Meshes/Node/Blocks/geometryCollectionBlock.pure.js.map +1 -1
  548. package/Meshes/Node/Blocks/geometryCurveBlock.pure.js +230 -217
  549. package/Meshes/Node/Blocks/geometryCurveBlock.pure.js.map +1 -1
  550. package/Meshes/Node/Blocks/geometryEaseBlock.pure.js +256 -245
  551. package/Meshes/Node/Blocks/geometryEaseBlock.pure.js.map +1 -1
  552. package/Meshes/Node/Blocks/geometryOptimizeBlock.pure.js +206 -189
  553. package/Meshes/Node/Blocks/geometryOptimizeBlock.pure.js.map +1 -1
  554. package/Meshes/Node/Blocks/geometryTransformBlock.pure.js +166 -153
  555. package/Meshes/Node/Blocks/geometryTransformBlock.pure.js.map +1 -1
  556. package/Meshes/Node/Blocks/geometryTrigonometryBlock.pure.js +221 -208
  557. package/Meshes/Node/Blocks/geometryTrigonometryBlock.pure.js.map +1 -1
  558. package/Meshes/Node/Blocks/mappingBlock.pure.js +150 -137
  559. package/Meshes/Node/Blocks/mappingBlock.pure.js.map +1 -1
  560. package/Meshes/Node/Blocks/mathBlock.pure.js +269 -256
  561. package/Meshes/Node/Blocks/mathBlock.pure.js.map +1 -1
  562. package/Meshes/Node/Blocks/mergeGeometryBlock.pure.js +141 -128
  563. package/Meshes/Node/Blocks/mergeGeometryBlock.pure.js.map +1 -1
  564. package/Meshes/Node/Blocks/randomBlock.pure.js +161 -148
  565. package/Meshes/Node/Blocks/randomBlock.pure.js.map +1 -1
  566. package/Meshes/Node/Blocks/subdivideBlock.pure.js +102 -87
  567. package/Meshes/Node/Blocks/subdivideBlock.pure.js.map +1 -1
  568. package/Meshes/Node/nodeGeometry.js +560 -538
  569. package/Meshes/Node/nodeGeometry.js.map +1 -1
  570. package/Meshes/Node/nodeGeometryBlock.js +473 -458
  571. package/Meshes/Node/nodeGeometryBlock.js.map +1 -1
  572. package/Meshes/abstractMesh.pure.js +2218 -2207
  573. package/Meshes/abstractMesh.pure.js.map +1 -1
  574. package/Meshes/geometry.js +30 -15
  575. package/Meshes/geometry.js.map +1 -1
  576. package/Meshes/mesh.pure.js +26 -14
  577. package/Meshes/mesh.pure.js.map +1 -1
  578. package/Meshes/mesh.vertexData.js +1665 -1655
  579. package/Meshes/mesh.vertexData.js.map +1 -1
  580. package/Meshes/transformNode.pure.js +1400 -1372
  581. package/Meshes/transformNode.pure.js.map +1 -1
  582. package/Misc/decorators.d.ts +34 -19
  583. package/Misc/decorators.functions.d.ts +33 -2
  584. package/Misc/decorators.functions.js +114 -35
  585. package/Misc/decorators.functions.js.map +1 -1
  586. package/Misc/decorators.js +96 -68
  587. package/Misc/decorators.js.map +1 -1
  588. package/Misc/decorators.serialization.js +47 -40
  589. package/Misc/decorators.serialization.js.map +1 -1
  590. package/Misc/decorators.serializationUtilities.d.ts +24 -0
  591. package/Misc/decorators.serializationUtilities.js +20 -0
  592. package/Misc/decorators.serializationUtilities.js.map +1 -0
  593. package/Misc/dumpTools.pure.js +43 -33
  594. package/Misc/dumpTools.pure.js.map +1 -1
  595. package/Misc/fileTools.pure.js +8 -0
  596. package/Misc/fileTools.pure.js.map +1 -1
  597. package/Misc/observable.pure.js +0 -7
  598. package/Misc/observable.pure.js.map +1 -1
  599. package/Misc/snapshotRenderingHelper.d.ts +4 -1
  600. package/Misc/snapshotRenderingHelper.js.map +1 -1
  601. package/Misc/symbolMetadataPolyfill.d.ts +11 -0
  602. package/Misc/symbolMetadataPolyfill.js +22 -0
  603. package/Misc/symbolMetadataPolyfill.js.map +1 -0
  604. package/Misc/tools.pure.js +2 -2
  605. package/Misc/tools.pure.js.map +1 -1
  606. package/Morph/morphTarget.js +382 -365
  607. package/Morph/morphTarget.js.map +1 -1
  608. package/Particles/Node/Blocks/Conditions/particleConditionBlock.pure.js +160 -145
  609. package/Particles/Node/Blocks/Conditions/particleConditionBlock.pure.js.map +1 -1
  610. package/Particles/Node/Blocks/Emitters/coneShapeBlock.pure.js +187 -174
  611. package/Particles/Node/Blocks/Emitters/coneShapeBlock.pure.js.map +1 -1
  612. package/Particles/Node/Blocks/Emitters/meshShapeBlock.pure.js +238 -219
  613. package/Particles/Node/Blocks/Emitters/meshShapeBlock.pure.js.map +1 -1
  614. package/Particles/Node/Blocks/Emitters/setupSpriteSheetBlock.pure.js +140 -115
  615. package/Particles/Node/Blocks/Emitters/setupSpriteSheetBlock.pure.js.map +1 -1
  616. package/Particles/Node/Blocks/Emitters/sphereShapeBlock.pure.js +157 -144
  617. package/Particles/Node/Blocks/Emitters/sphereShapeBlock.pure.js.map +1 -1
  618. package/Particles/Node/Blocks/Triggers/particleTriggerBlock.pure.js +133 -119
  619. package/Particles/Node/Blocks/Triggers/particleTriggerBlock.pure.js.map +1 -1
  620. package/Particles/Node/Blocks/Update/alignAngleBlock.pure.js +93 -80
  621. package/Particles/Node/Blocks/Update/alignAngleBlock.pure.js.map +1 -1
  622. package/Particles/Node/Blocks/particleDebugBlock.pure.js +117 -105
  623. package/Particles/Node/Blocks/particleDebugBlock.pure.js.map +1 -1
  624. package/Particles/Node/Blocks/particleFloatToIntBlock.pure.js +105 -92
  625. package/Particles/Node/Blocks/particleFloatToIntBlock.pure.js.map +1 -1
  626. package/Particles/Node/Blocks/particleGradientValueBlock.pure.js +82 -69
  627. package/Particles/Node/Blocks/particleGradientValueBlock.pure.js.map +1 -1
  628. package/Particles/Node/Blocks/particleLocalVariableBlock.pure.js +113 -101
  629. package/Particles/Node/Blocks/particleLocalVariableBlock.pure.js.map +1 -1
  630. package/Particles/Node/Blocks/particleMathBlock.pure.js +278 -265
  631. package/Particles/Node/Blocks/particleMathBlock.pure.js.map +1 -1
  632. package/Particles/Node/Blocks/particleNumberMathBlock.pure.js +155 -142
  633. package/Particles/Node/Blocks/particleNumberMathBlock.pure.js.map +1 -1
  634. package/Particles/Node/Blocks/particleRandomBlock.pure.js +156 -143
  635. package/Particles/Node/Blocks/particleRandomBlock.pure.js.map +1 -1
  636. package/Particles/Node/Blocks/particleTrigonometryBlock.pure.js +217 -204
  637. package/Particles/Node/Blocks/particleTrigonometryBlock.pure.js.map +1 -1
  638. package/Particles/Node/Blocks/particleVectorMathBlock.pure.js +106 -93
  639. package/Particles/Node/Blocks/particleVectorMathBlock.pure.js.map +1 -1
  640. package/Particles/Node/Blocks/systemBlock.pure.js +366 -330
  641. package/Particles/Node/Blocks/systemBlock.pure.js.map +1 -1
  642. package/Particles/Node/nodeParticleBlock.js +339 -324
  643. package/Particles/Node/nodeParticleBlock.js.map +1 -1
  644. package/Particles/Node/nodeParticleSystemSet.js +494 -473
  645. package/Particles/Node/nodeParticleSystemSet.js.map +1 -1
  646. package/Particles/gpuParticleSystem.d.ts +0 -1
  647. package/Particles/gpuParticleSystem.js +0 -1
  648. package/Particles/gpuParticleSystem.js.map +1 -1
  649. package/Particles/gpuParticleSystem.pure.d.ts +4 -3
  650. package/Particles/gpuParticleSystem.pure.js +27 -16
  651. package/Particles/gpuParticleSystem.pure.js.map +1 -1
  652. package/Particles/particleSystem.pure.js +57 -2
  653. package/Particles/particleSystem.pure.js.map +1 -1
  654. package/Particles/thinParticleSystem.d.ts +0 -1
  655. package/Particles/thinParticleSystem.js +0 -1
  656. package/Particles/thinParticleSystem.js.map +1 -1
  657. package/Particles/thinParticleSystem.pure.js +2 -0
  658. package/Particles/thinParticleSystem.pure.js.map +1 -1
  659. package/Particles/webgl2ParticleSystem.pure.js +2 -0
  660. package/Particles/webgl2ParticleSystem.pure.js.map +1 -1
  661. package/Physics/v1/physicsImpostor.pure.js +4 -4
  662. package/PostProcesses/RenderPipeline/Pipelines/defaultRenderingPipeline.pure.js +675 -656
  663. package/PostProcesses/RenderPipeline/Pipelines/defaultRenderingPipeline.pure.js.map +1 -1
  664. package/PostProcesses/RenderPipeline/Pipelines/lensRenderingPipeline.d.ts +0 -1
  665. package/PostProcesses/RenderPipeline/Pipelines/lensRenderingPipeline.js +0 -1
  666. package/PostProcesses/RenderPipeline/Pipelines/lensRenderingPipeline.js.map +1 -1
  667. package/PostProcesses/RenderPipeline/Pipelines/ssao2RenderingPipeline.pure.js +521 -486
  668. package/PostProcesses/RenderPipeline/Pipelines/ssao2RenderingPipeline.pure.js.map +1 -1
  669. package/PostProcesses/RenderPipeline/Pipelines/ssaoRenderingPipeline.d.ts +0 -1
  670. package/PostProcesses/RenderPipeline/Pipelines/ssaoRenderingPipeline.js +0 -1
  671. package/PostProcesses/RenderPipeline/Pipelines/ssaoRenderingPipeline.js.map +1 -1
  672. package/PostProcesses/RenderPipeline/Pipelines/ssaoRenderingPipeline.pure.js +241 -220
  673. package/PostProcesses/RenderPipeline/Pipelines/ssaoRenderingPipeline.pure.js.map +1 -1
  674. package/PostProcesses/RenderPipeline/Pipelines/ssrRenderingPipeline.pure.js +852 -835
  675. package/PostProcesses/RenderPipeline/Pipelines/ssrRenderingPipeline.pure.js.map +1 -1
  676. package/PostProcesses/RenderPipeline/Pipelines/standardRenderingPipeline.pure.js +1135 -1073
  677. package/PostProcesses/RenderPipeline/Pipelines/standardRenderingPipeline.pure.js.map +1 -1
  678. package/PostProcesses/RenderPipeline/Pipelines/taaRenderingPipeline.pure.js +319 -303
  679. package/PostProcesses/RenderPipeline/Pipelines/taaRenderingPipeline.pure.js.map +1 -1
  680. package/PostProcesses/RenderPipeline/postProcessRenderPipeline.js +212 -199
  681. package/PostProcesses/RenderPipeline/postProcessRenderPipeline.js.map +1 -1
  682. package/PostProcesses/blackAndWhitePostProcess.pure.js +67 -55
  683. package/PostProcesses/blackAndWhitePostProcess.pure.js.map +1 -1
  684. package/PostProcesses/bloomMergePostProcess.pure.js +74 -62
  685. package/PostProcesses/bloomMergePostProcess.pure.js.map +1 -1
  686. package/PostProcesses/blurPostProcess.pure.js +127 -115
  687. package/PostProcesses/blurPostProcess.pure.js.map +1 -1
  688. package/PostProcesses/chromaticAberrationPostProcess.pure.js +130 -118
  689. package/PostProcesses/chromaticAberrationPostProcess.pure.js.map +1 -1
  690. package/PostProcesses/circleOfConfusionPostProcess.pure.js +115 -104
  691. package/PostProcesses/circleOfConfusionPostProcess.pure.js.map +1 -1
  692. package/PostProcesses/colorCorrectionPostProcess.pure.js +55 -43
  693. package/PostProcesses/colorCorrectionPostProcess.pure.js.map +1 -1
  694. package/PostProcesses/convolutionPostProcess.pure.js +96 -84
  695. package/PostProcesses/convolutionPostProcess.pure.js.map +1 -1
  696. package/PostProcesses/extractHighlightsPostProcess.pure.js +68 -57
  697. package/PostProcesses/extractHighlightsPostProcess.pure.js.map +1 -1
  698. package/PostProcesses/filterPostProcess.pure.js +66 -54
  699. package/PostProcesses/filterPostProcess.pure.js.map +1 -1
  700. package/PostProcesses/fxaaPostProcess.pure.js.map +1 -1
  701. package/PostProcesses/grainPostProcess.pure.js +82 -70
  702. package/PostProcesses/grainPostProcess.pure.js.map +1 -1
  703. package/PostProcesses/imageProcessingPostProcess.js +334 -322
  704. package/PostProcesses/imageProcessingPostProcess.js.map +1 -1
  705. package/PostProcesses/motionBlurPostProcess.pure.js +246 -235
  706. package/PostProcesses/motionBlurPostProcess.pure.js.map +1 -1
  707. package/PostProcesses/passPostProcess.pure.js +75 -63
  708. package/PostProcesses/passPostProcess.pure.js.map +1 -1
  709. package/PostProcesses/postProcess.pure.js +899 -835
  710. package/PostProcesses/postProcess.pure.js.map +1 -1
  711. package/PostProcesses/refractionPostProcess.pure.js +114 -87
  712. package/PostProcesses/refractionPostProcess.pure.js.map +1 -1
  713. package/PostProcesses/screenSpaceCurvaturePostProcess.pure.js +108 -96
  714. package/PostProcesses/screenSpaceCurvaturePostProcess.pure.js.map +1 -1
  715. package/PostProcesses/screenSpaceReflectionPostProcess.pure.js +241 -220
  716. package/PostProcesses/screenSpaceReflectionPostProcess.pure.js.map +1 -1
  717. package/PostProcesses/sharpenPostProcess.pure.js +86 -74
  718. package/PostProcesses/sharpenPostProcess.pure.js.map +1 -1
  719. package/PostProcesses/tonemapPostProcess.pure.js +82 -70
  720. package/PostProcesses/tonemapPostProcess.pure.js.map +1 -1
  721. package/PostProcesses/volumetricLightScatteringPostProcess.pure.js +500 -465
  722. package/PostProcesses/volumetricLightScatteringPostProcess.pure.js.map +1 -1
  723. package/PostProcesses/vrMultiviewToSingleviewPostProcess.d.ts +0 -1
  724. package/PostProcesses/vrMultiviewToSingleviewPostProcess.js +0 -1
  725. package/PostProcesses/vrMultiviewToSingleviewPostProcess.js.map +1 -1
  726. package/PostProcesses/vrMultiviewToSingleviewPostProcess.pure.js +2 -0
  727. package/PostProcesses/vrMultiviewToSingleviewPostProcess.pure.js.map +1 -1
  728. package/Probes/reflectionProbe.pure.js +238 -224
  729. package/Probes/reflectionProbe.pure.js.map +1 -1
  730. package/Rendering/GlobalIllumination/giRSMManager.pure.d.ts +1 -1
  731. package/Rendering/GlobalIllumination/giRSMManager.pure.js +138 -105
  732. package/Rendering/GlobalIllumination/giRSMManager.pure.js.map +1 -1
  733. package/Rendering/IBLShadows/iblShadowsPluginMaterial.pure.d.ts +1 -1
  734. package/Rendering/IBLShadows/iblShadowsPluginMaterial.pure.js +155 -138
  735. package/Rendering/IBLShadows/iblShadowsPluginMaterial.pure.js.map +1 -1
  736. package/Rendering/IBLShadows/iblShadowsRenderPipeline.d.ts +0 -2
  737. package/Rendering/IBLShadows/iblShadowsRenderPipeline.js +0 -2
  738. package/Rendering/IBLShadows/iblShadowsRenderPipeline.js.map +1 -1
  739. package/Rendering/IBLShadows/iblShadowsRenderPipeline.pure.js +5 -0
  740. package/Rendering/IBLShadows/iblShadowsRenderPipeline.pure.js.map +1 -1
  741. package/Rendering/IBLShadows/iblShadowsVoxelRenderer.d.ts +0 -1
  742. package/Rendering/IBLShadows/iblShadowsVoxelRenderer.js +0 -1
  743. package/Rendering/IBLShadows/iblShadowsVoxelRenderer.js.map +1 -1
  744. package/Rendering/IBLShadows/iblShadowsVoxelRenderer.pure.d.ts +1 -0
  745. package/Rendering/IBLShadows/iblShadowsVoxelRenderer.pure.js +34 -0
  746. package/Rendering/IBLShadows/iblShadowsVoxelRenderer.pure.js.map +1 -1
  747. package/Rendering/edgesRenderer.pure.js.map +1 -1
  748. package/Rendering/prePassRenderer.d.ts +0 -2
  749. package/Rendering/prePassRenderer.js +0 -2
  750. package/Rendering/prePassRenderer.js.map +1 -1
  751. package/Rendering/prePassRenderer.pure.js +2 -0
  752. package/Rendering/prePassRenderer.pure.js.map +1 -1
  753. package/Rendering/reflectiveShadowMap.pure.d.ts +1 -1
  754. package/Rendering/reflectiveShadowMap.pure.js +151 -130
  755. package/Rendering/reflectiveShadowMap.pure.js.map +1 -1
  756. package/Rendering/thinDepthPeelingRenderer.d.ts +0 -1
  757. package/Rendering/thinDepthPeelingRenderer.js +0 -1
  758. package/Rendering/thinDepthPeelingRenderer.js.map +1 -1
  759. package/Shaders/ShadersInclude/gaussianSplatting.js +1 -0
  760. package/Shaders/ShadersInclude/gaussianSplatting.js.map +1 -1
  761. package/Shaders/ShadersInclude/openpbrEnvironmentLighting.js +35 -5
  762. package/Shaders/ShadersInclude/openpbrEnvironmentLighting.js.map +1 -1
  763. package/Shaders/gaussianSplatting.fragment.js +17 -1
  764. package/Shaders/gaussianSplatting.fragment.js.map +1 -1
  765. package/Shaders/gaussianSplatting.vertex.js +1 -1
  766. package/Shaders/gaussianSplatting.vertex.js.map +1 -1
  767. package/Shaders/gaussianSplattingDepth.vertex.js +1 -1
  768. package/Shaders/gaussianSplattingDepth.vertex.js.map +1 -1
  769. package/Shaders/picking.fragment.js +39 -3
  770. package/Shaders/picking.fragment.js.map +1 -1
  771. package/ShadersWGSL/ShadersInclude/gaussianSplatting.js +3 -1
  772. package/ShadersWGSL/ShadersInclude/gaussianSplatting.js.map +1 -1
  773. package/ShadersWGSL/ShadersInclude/helperFunctions.js +2 -2
  774. package/ShadersWGSL/ShadersInclude/helperFunctions.js.map +1 -1
  775. package/ShadersWGSL/ShadersInclude/openpbrEnvironmentLighting.js +39 -7
  776. package/ShadersWGSL/ShadersInclude/openpbrEnvironmentLighting.js.map +1 -1
  777. package/ShadersWGSL/ShadersInclude/openpbrIblFunctions.js +4 -3
  778. package/ShadersWGSL/ShadersInclude/openpbrIblFunctions.js.map +1 -1
  779. package/ShadersWGSL/gaussianSplatting.fragment.js +14 -1
  780. package/ShadersWGSL/gaussianSplatting.fragment.js.map +1 -1
  781. package/ShadersWGSL/gaussianSplatting.vertex.js +2 -2
  782. package/ShadersWGSL/gaussianSplatting.vertex.js.map +1 -1
  783. package/ShadersWGSL/gaussianSplattingDepth.vertex.js +2 -2
  784. package/ShadersWGSL/gaussianSplattingDepth.vertex.js.map +1 -1
  785. package/ShadersWGSL/lightingVolume.compute.js +2 -2
  786. package/ShadersWGSL/lightingVolume.compute.js.map +1 -1
  787. package/ShadersWGSL/picking.fragment.js +22 -1
  788. package/ShadersWGSL/picking.fragment.js.map +1 -1
  789. package/XR/features/Layers/WebXRCompositionLayer.d.ts +3 -2
  790. package/XR/features/Layers/WebXRCompositionLayer.js +2 -2
  791. package/XR/features/Layers/WebXRCompositionLayer.js.map +1 -1
  792. package/XR/features/Layers/WebXRWebGPUCompositionLayer.d.ts +59 -0
  793. package/XR/features/Layers/WebXRWebGPUCompositionLayer.js +120 -0
  794. package/XR/features/Layers/WebXRWebGPUCompositionLayer.js.map +1 -0
  795. package/XR/features/Layers/WebXRWebGPUProjectionLayer.d.ts +25 -0
  796. package/XR/features/Layers/WebXRWebGPUProjectionLayer.js +69 -0
  797. package/XR/features/Layers/WebXRWebGPUProjectionLayer.js.map +1 -0
  798. package/XR/features/WebXRLayers.pure.d.ts +8 -0
  799. package/XR/features/WebXRLayers.pure.js +43 -6
  800. package/XR/features/WebXRLayers.pure.js.map +1 -1
  801. package/XR/native/nativeXRRenderTarget.d.ts +2 -2
  802. package/XR/native/nativeXRRenderTarget.js +2 -2
  803. package/XR/native/nativeXRRenderTarget.js.map +1 -1
  804. package/XR/webXRExperienceHelper.js +10 -1
  805. package/XR/webXRExperienceHelper.js.map +1 -1
  806. package/XR/webXRGraphicsBinding.d.ts +90 -0
  807. package/XR/webXRGraphicsBinding.js +85 -0
  808. package/XR/webXRGraphicsBinding.js.map +1 -0
  809. package/XR/webXRLayerRenderTargetTexture.d.ts +24 -0
  810. package/XR/webXRLayerRenderTargetTexture.js +30 -0
  811. package/XR/webXRLayerRenderTargetTexture.js.map +1 -0
  812. package/XR/webXRManagedOutputCanvas.d.ts +14 -0
  813. package/XR/webXRManagedOutputCanvas.js +24 -5
  814. package/XR/webXRManagedOutputCanvas.js.map +1 -1
  815. package/XR/webXRRenderTargetTextureProvider.d.ts +25 -4
  816. package/XR/webXRRenderTargetTextureProvider.js +33 -35
  817. package/XR/webXRRenderTargetTextureProvider.js.map +1 -1
  818. package/XR/webXRSessionManager.d.ts +11 -0
  819. package/XR/webXRSessionManager.js +37 -0
  820. package/XR/webXRSessionManager.js.map +1 -1
  821. package/XR/webXRTypes.d.ts +9 -6
  822. package/XR/webXRTypes.js.map +1 -1
  823. package/XR/webXRWebGLLayer.d.ts +2 -2
  824. package/XR/webXRWebGLLayer.js +2 -2
  825. package/XR/webXRWebGLLayer.js.map +1 -1
  826. package/XR/webXRWebGLRenderTargetTextureProvider.d.ts +12 -0
  827. package/XR/webXRWebGLRenderTargetTextureProvider.js +58 -0
  828. package/XR/webXRWebGLRenderTargetTextureProvider.js.map +1 -0
  829. package/XR/webXRWebGPURenderTargetTextureProvider.d.ts +69 -0
  830. package/XR/webXRWebGPURenderTargetTextureProvider.js +148 -0
  831. package/XR/webXRWebGPURenderTargetTextureProvider.js.map +1 -0
  832. package/index.d.ts +1 -0
  833. package/index.js +1 -0
  834. package/index.js.map +1 -1
  835. package/node.js +878 -845
  836. package/node.js.map +1 -1
  837. package/package.json +8 -14
  838. package/scene.pure.d.ts +12 -0
  839. package/scene.pure.js +36 -0
  840. package/scene.pure.js.map +1 -1
  841. package/tslib.es6.js +304 -150
@@ -1,5 +1,5 @@
1
1
  /** This file must only contain pure code and pure imports */
2
- import { __decorate } from "../tslib.es6.js";
2
+ import { __esDecorate, __runInitializers } from "../tslib.es6.js";
3
3
  import { GeospatialCameraInputsManager } from "./geospatialCameraInputsManager.js";
4
4
  import { Vector3, Matrix, TmpVectors } from "../Maths/math.vector.pure.js";
5
5
  import { Epsilon } from "../Maths/math.constants.js";
@@ -14,468 +14,513 @@ import { RegisterClass } from "../Misc/typeStore.js";
14
14
  /**
15
15
  * Camera equipped to orbit a spherical planet centered at world origin
16
16
  */
17
- export class GeospatialCamera extends Camera {
18
- constructor(name, scene, options) {
19
- super(name, new Vector3(), scene);
20
- // Temp vars
21
- this._tempPosition = new Vector3();
22
- this._tempCenter = new Vector3();
23
- this._viewMatrix = new Matrix();
24
- this._lookAtVector = new Vector3();
25
- this._flyToTargets = new Map();
26
- this._collisionVelocity = new Vector3();
27
- /** Public option to customize the collision offset applied each frame - vs the one calculated using internal CollisionCoordinator */
28
- this.perFrameCollisionOffset = new Vector3();
29
- /** Enable or disable collision checking for this camera. Default is false. */
30
- this.checkCollisions = false;
31
- this._center = new Vector3();
32
- this._yaw = 0;
33
- this._pitch = 0;
34
- this._radius = 0;
35
- this._tempVect = new Vector3();
36
- this._tempEast = new Vector3();
37
- this._tempNorth = new Vector3();
38
- this._tempUp = new Vector3();
39
- this._wasCenterMovingLastFrame = false;
40
- this._limits = new GeospatialLimits(options.planetRadius);
41
- this._flyingBehavior = new InterpolatingBehavior();
42
- this.addBehavior(this._flyingBehavior);
43
- this.movement = new GeospatialCameraMovement(scene, this._limits, this.position, this.center, this._lookAtVector, options.pickPredicate, this._flyingBehavior);
44
- this._resetToDefault(this._limits);
45
- this.inputs = new GeospatialCameraInputsManager(this);
46
- this.inputs.addMouse().addMouseWheel().addKeyboard();
47
- }
48
- /** The point on the globe that we are anchoring around. If no alternate rotation point is supplied, this will represent the center of screen*/
49
- get center() {
50
- return this._center;
51
- }
52
- /**
53
- * Sets the camera position to orbit around a new center point
54
- * @param center The world position (ECEF) to orbit around
55
- */
56
- set center(center) {
57
- this._center.copyFromFloats(center.x, center.y, center.z);
58
- this._setOrientation(this._yaw, this._pitch, this._radius, this._center);
59
- }
60
- /**
61
- * Gets the camera's yaw (rotation around the geocentric normal) in radians
62
- */
63
- get yaw() {
64
- return this._yaw;
65
- }
66
- /**
67
- * Sets the camera's yaw (rotation around the geocentric normal). Will wrap value to [-π, π)
68
- * @param yaw The desired yaw angle in radians (0 = north, π/2 = east)
69
- */
70
- set yaw(yaw) {
71
- yaw !== this._yaw && this._setOrientation(yaw, this.pitch, this.radius, this.center);
72
- }
73
- /**
74
- * Gets the camera's pitch (angle from looking straight at globe)
75
- * Pitch is measured from looking straight down at planet center:
76
- * - zero pitch = looking straight at planet center (down)
77
- * - positive pitch = tilting up away from planet
78
- * - π/2 pitch = looking at horizon (perpendicular to geocentric normal)
79
- */
80
- get pitch() {
81
- return this._pitch;
82
- }
83
- /**
84
- * Sets the camera's pitch (angle from looking straight at globe). Will wrap value to [-π, π)
85
- * @param pitch The desired pitch angle in radians (0 = looking at planet center, π/2 = looking at horizon)
86
- */
87
- set pitch(pitch) {
88
- pitch !== this._pitch && this._setOrientation(this.yaw, pitch, this.radius, this.center);
89
- }
90
- /**
91
- * Gets the camera's distance from the current center point. This is distinct from planetRadius supplied at construction.
92
- */
93
- get radius() {
94
- return this._radius;
95
- }
96
- /**
97
- * Sets the camera's distance from the current center point
98
- * @param radius The desired radius
99
- */
100
- set radius(radius) {
101
- radius !== this._radius && this._setOrientation(this.yaw, this.pitch, radius, this.center);
102
- }
103
- _checkLimits() {
104
- const limits = this.limits;
105
- this._yaw = Clamp(this._yaw, limits.yawMin, limits.yawMax);
106
- const effectivePitchMax = limits.getEffectivePitchMax(this._radius);
107
- this._pitch = Clamp(this._pitch, limits.pitchMin, effectivePitchMax);
108
- this._radius = Clamp(this._radius, limits.radiusMin, limits.radiusMax);
109
- ClampCenterFromPolesInPlace(this._center);
110
- }
111
- _setOrientation(yaw, pitch, radius, center) {
112
- // Wrap yaw and pitch to [-π, π)
113
- this._yaw = NormalizeRadians(yaw);
114
- this._pitch = NormalizeRadians(pitch);
115
- this._radius = radius;
116
- Vector3CopyToRef(center, this._center);
117
- // Clamp to limits
118
- this._checkLimits();
119
- // Refresh local basis at center (treat these as read-only for the whole call)
120
- ComputeLocalBasisToRefs(this._center, this._tempEast, this._tempNorth, this._tempUp, this._scene.useRightHandedSystem, this.movement.calculateUpVectorFromPointToRef);
121
- // Compute lookAt from yaw/pitch
122
- ComputeLookAtFromYawPitchToRef(this._yaw, this._pitch, this._center, this._scene.useRightHandedSystem, this._lookAtVector, this.movement.calculateUpVectorFromPointToRef);
123
- // Build an orthonormal up aligned with geocentric Up
124
- // When looking straight down (pitch ≈ 0), lookAt is parallel to Up, so use the horizontal direction as the camera's up.
125
- const right = TmpVectors.Vector3[10];
126
- Vector3.CrossToRef(this._tempUp, this._lookAtVector, right);
127
- if (right.lengthSquared() < Epsilon) {
128
- // horiz = north * cos(yaw) + east * sin(yaw)
129
- // Using tempEast directly ensures handedness is taken into account
130
- const horiz = TmpVectors.Vector3[11];
131
- const t1 = TmpVectors.Vector3[12];
132
- horiz
133
- .copyFrom(this._tempNorth)
134
- .scaleInPlace(Math.cos(this._yaw))
135
- .addInPlace(t1.copyFrom(this._tempEast).scaleInPlace(Math.sin(this._yaw)));
136
- // right = cross(horiz, lookAt)
137
- Vector3.CrossToRef(horiz, this._lookAtVector, right);
138
- }
139
- right.normalize();
140
- // up = normalize(cross(look, right))
141
- Vector3.CrossToRef(this._lookAtVector, right, this.upVector);
142
- this.upVector.normalize();
143
- // Position = center - look * radius (preserve unit look)
144
- this._tempVect.copyFrom(this._lookAtVector).scaleInPlace(-this._radius);
145
- this._tempPosition.copyFrom(this._center).addInPlace(this._tempVect);
146
- // Recalculate collisionOffset to be applied later when viewMatrix is calculated (allowing camera users to modify the value in afterCheckInputsObservable)
147
- if (this.checkCollisions) {
148
- this.perFrameCollisionOffset = this._getCollisionOffset(this._tempPosition);
149
- }
150
- this._position.copyFrom(this._tempPosition);
151
- this._isViewMatrixDirty = true;
152
- }
153
- /**
154
- * If camera is actively in flight, will update the target properties and use up the remaining duration from original flyTo call
155
- *
156
- * To start a new flyTo curve entirely, call into flyToAsync again (it will stop the inflight animation)
157
- * @param targetYaw - Target yaw in radians, or undefined to keep the current yaw.
158
- * @param targetPitch - Target pitch in radians, or undefined to keep the current pitch.
159
- * @param targetRadius - Target radius (distance from the look-at center), or undefined to keep the current radius.
160
- * @param targetCenter - Target look-at center in scene coordinates, or undefined to keep the current center.
161
- */
162
- updateFlyToDestination(targetYaw, targetPitch, targetRadius, targetCenter) {
163
- this._flyToTargets.clear();
164
- // For yaw, use shortest path to target.
165
- const deltaYaw = targetYaw !== undefined ? NormalizeRadians(NormalizeRadians(targetYaw) - this._yaw) : 0;
166
- this._flyToTargets.set("yaw", deltaYaw === 0 ? undefined : this._yaw + deltaYaw);
167
- this._flyToTargets.set("pitch", targetPitch != undefined ? NormalizeRadians(targetPitch) : undefined);
168
- this._flyToTargets.set("radius", targetRadius);
169
- this._flyToTargets.set("center", targetCenter?.clone());
170
- this._flyingBehavior.updateProperties(this._flyToTargets);
171
- }
172
- /**
173
- * Animate camera towards passed in property values. If undefined, will use current value
174
- * @param targetYaw - Target yaw in radians, or undefined to keep the current yaw.
175
- * @param targetPitch - Target pitch in radians, or undefined to keep the current pitch.
176
- * @param targetRadius - Target radius (distance from the look-at center), or undefined to keep the current radius.
177
- * @param targetCenter - Target look-at center in scene coordinates, or undefined to keep the current center.
178
- * @param flightDurationMs - Total duration of the animation in milliseconds. Defaults to 1000ms.
179
- * @param easingFunction - Optional easing function applied to the animation curve.
180
- * @param centerHopScale If supplied, will define the parabolic hop height scale for center animation to create a "bounce" effect
181
- * @returns Promise that will return when the animation is complete (or interuppted by pointer input)
182
- */
183
- async flyToAsync(targetYaw, targetPitch, targetRadius, targetCenter, flightDurationMs = 1000, easingFunction, centerHopScale) {
184
- this._flyToTargets.clear();
185
- // For yaw, use shortest path to target.
186
- const deltaYaw = targetYaw !== undefined ? NormalizeRadians(NormalizeRadians(targetYaw) - this._yaw) : 0;
187
- this._flyToTargets.set("yaw", deltaYaw === 0 ? undefined : this._yaw + deltaYaw);
188
- this._flyToTargets.set("pitch", targetPitch !== undefined ? NormalizeRadians(targetPitch) : undefined);
189
- this._flyToTargets.set("radius", targetRadius);
190
- this._flyToTargets.set("center", targetCenter?.clone());
191
- let overrideAnimationFunction;
192
- if (targetCenter !== undefined && !targetCenter.equals(this.center)) {
193
- // Animate center directly with custom interpolation
194
- overrideAnimationFunction = (key, animation) => {
195
- if (key === "center") {
196
- // Override the Vector3 interpolation to use SLERP + hop
197
- animation.vector3InterpolateFunction = (startValue, endValue, gradient) => {
198
- // gradient is the eased value (0 to 1) after easing function is applied
199
- // Slerp between start and end
200
- const newCenter = Vector3.SlerpToRef(startValue, endValue, gradient, this._tempCenter);
201
- // Apply parabolic hop if requested
202
- if (centerHopScale && centerHopScale > 0) {
203
- // Parabolic formula: peaks at t=0.5, returns to 0 at gradient=0 and gradient=1
204
- // if hopPeakT = .5 the denominator would be hopPeakT * hopPeakT - hopPeakT, which = -.25
205
- const hopPeakOffset = centerHopScale * Vector3Distance(startValue, endValue);
206
- const hopOffset = hopPeakOffset * Clamp((gradient * gradient - gradient) / -0.25);
207
- // Scale the center outward (away from origin)
208
- newCenter.scaleInPlace(1 + hopOffset / newCenter.length());
17
+ let GeospatialCamera = (() => {
18
+ var _a;
19
+ let _classSuper = Camera;
20
+ let _checkCollisions_decorators;
21
+ let _checkCollisions_initializers = [];
22
+ let _checkCollisions_extraInitializers = [];
23
+ let __center_decorators;
24
+ let __center_initializers = [];
25
+ let __center_extraInitializers = [];
26
+ let __yaw_decorators;
27
+ let __yaw_initializers = [];
28
+ let __yaw_extraInitializers = [];
29
+ let __pitch_decorators;
30
+ let __pitch_initializers = [];
31
+ let __pitch_extraInitializers = [];
32
+ let __radius_decorators;
33
+ let __radius_initializers = [];
34
+ let __radius_extraInitializers = [];
35
+ return _a = class GeospatialCamera extends _classSuper {
36
+ constructor(name, scene, options) {
37
+ super(name, new Vector3(), scene);
38
+ // Temp vars
39
+ this._tempPosition = new Vector3();
40
+ this._tempCenter = new Vector3();
41
+ this._viewMatrix = new Matrix();
42
+ this._lookAtVector = new Vector3();
43
+ this._flyToTargets = new Map();
44
+ this._collisionVelocity = new Vector3();
45
+ /** Public option to customize the collision offset applied each frame - vs the one calculated using internal CollisionCoordinator */
46
+ this.perFrameCollisionOffset = new Vector3();
47
+ /** Enable or disable collision checking for this camera. Default is false. */
48
+ this.checkCollisions = __runInitializers(this, _checkCollisions_initializers, false);
49
+ this._center = (__runInitializers(this, _checkCollisions_extraInitializers), __runInitializers(this, __center_initializers, new Vector3()));
50
+ this._yaw = (__runInitializers(this, __center_extraInitializers), __runInitializers(this, __yaw_initializers, 0));
51
+ this._pitch = (__runInitializers(this, __yaw_extraInitializers), __runInitializers(this, __pitch_initializers, 0));
52
+ this._radius = (__runInitializers(this, __pitch_extraInitializers), __runInitializers(this, __radius_initializers, 0));
53
+ this._tempVect = (__runInitializers(this, __radius_extraInitializers), new Vector3());
54
+ this._tempEast = new Vector3();
55
+ this._tempNorth = new Vector3();
56
+ this._tempUp = new Vector3();
57
+ this._wasCenterMovingLastFrame = false;
58
+ this._limits = new GeospatialLimits(options.planetRadius);
59
+ this._flyingBehavior = new InterpolatingBehavior();
60
+ this.addBehavior(this._flyingBehavior);
61
+ this.movement = new GeospatialCameraMovement(scene, this._limits, this.position, this.center, this._lookAtVector, options.pickPredicate, this._flyingBehavior);
62
+ this._resetToDefault(this._limits);
63
+ this.inputs = new GeospatialCameraInputsManager(this);
64
+ this.inputs.addMouse().addMouseWheel().addKeyboard();
65
+ }
66
+ /** The point on the globe that we are anchoring around. If no alternate rotation point is supplied, this will represent the center of screen*/
67
+ get center() {
68
+ return this._center;
69
+ }
70
+ /**
71
+ * Sets the camera position to orbit around a new center point
72
+ * @param center The world position (ECEF) to orbit around
73
+ */
74
+ set center(center) {
75
+ this._center.copyFromFloats(center.x, center.y, center.z);
76
+ this._setOrientation(this._yaw, this._pitch, this._radius, this._center);
77
+ }
78
+ /**
79
+ * Gets the camera's yaw (rotation around the geocentric normal) in radians
80
+ */
81
+ get yaw() {
82
+ return this._yaw;
83
+ }
84
+ /**
85
+ * Sets the camera's yaw (rotation around the geocentric normal). Will wrap value to [-π, π)
86
+ * @param yaw The desired yaw angle in radians (0 = north, π/2 = east)
87
+ */
88
+ set yaw(yaw) {
89
+ yaw !== this._yaw && this._setOrientation(yaw, this.pitch, this.radius, this.center);
90
+ }
91
+ /**
92
+ * Gets the camera's pitch (angle from looking straight at globe)
93
+ * Pitch is measured from looking straight down at planet center:
94
+ * - zero pitch = looking straight at planet center (down)
95
+ * - positive pitch = tilting up away from planet
96
+ * - π/2 pitch = looking at horizon (perpendicular to geocentric normal)
97
+ */
98
+ get pitch() {
99
+ return this._pitch;
100
+ }
101
+ /**
102
+ * Sets the camera's pitch (angle from looking straight at globe). Will wrap value to [-π, π)
103
+ * @param pitch The desired pitch angle in radians (0 = looking at planet center, π/2 = looking at horizon)
104
+ */
105
+ set pitch(pitch) {
106
+ pitch !== this._pitch && this._setOrientation(this.yaw, pitch, this.radius, this.center);
107
+ }
108
+ /**
109
+ * Gets the camera's distance from the current center point. This is distinct from planetRadius supplied at construction.
110
+ */
111
+ get radius() {
112
+ return this._radius;
113
+ }
114
+ /**
115
+ * Sets the camera's distance from the current center point
116
+ * @param radius The desired radius
117
+ */
118
+ set radius(radius) {
119
+ radius !== this._radius && this._setOrientation(this.yaw, this.pitch, radius, this.center);
120
+ }
121
+ _checkLimits() {
122
+ const limits = this.limits;
123
+ this._yaw = Clamp(this._yaw, limits.yawMin, limits.yawMax);
124
+ const effectivePitchMax = limits.getEffectivePitchMax(this._radius);
125
+ this._pitch = Clamp(this._pitch, limits.pitchMin, effectivePitchMax);
126
+ this._radius = Clamp(this._radius, limits.radiusMin, limits.radiusMax);
127
+ ClampCenterFromPolesInPlace(this._center);
128
+ }
129
+ _setOrientation(yaw, pitch, radius, center) {
130
+ // Wrap yaw and pitch to [-π, π)
131
+ this._yaw = NormalizeRadians(yaw);
132
+ this._pitch = NormalizeRadians(pitch);
133
+ this._radius = radius;
134
+ Vector3CopyToRef(center, this._center);
135
+ // Clamp to limits
136
+ this._checkLimits();
137
+ // Refresh local basis at center (treat these as read-only for the whole call)
138
+ ComputeLocalBasisToRefs(this._center, this._tempEast, this._tempNorth, this._tempUp, this._scene.useRightHandedSystem, this.movement.calculateUpVectorFromPointToRef);
139
+ // Compute lookAt from yaw/pitch
140
+ ComputeLookAtFromYawPitchToRef(this._yaw, this._pitch, this._center, this._scene.useRightHandedSystem, this._lookAtVector, this.movement.calculateUpVectorFromPointToRef);
141
+ // Build an orthonormal up aligned with geocentric Up
142
+ // When looking straight down (pitch ≈ 0), lookAt is parallel to Up, so use the horizontal direction as the camera's up.
143
+ const right = TmpVectors.Vector3[10];
144
+ Vector3.CrossToRef(this._tempUp, this._lookAtVector, right);
145
+ if (right.lengthSquared() < Epsilon) {
146
+ // horiz = north * cos(yaw) + east * sin(yaw)
147
+ // Using tempEast directly ensures handedness is taken into account
148
+ const horiz = TmpVectors.Vector3[11];
149
+ const t1 = TmpVectors.Vector3[12];
150
+ horiz
151
+ .copyFrom(this._tempNorth)
152
+ .scaleInPlace(Math.cos(this._yaw))
153
+ .addInPlace(t1.copyFrom(this._tempEast).scaleInPlace(Math.sin(this._yaw)));
154
+ // right = cross(horiz, lookAt)
155
+ Vector3.CrossToRef(horiz, this._lookAtVector, right);
156
+ }
157
+ right.normalize();
158
+ // up = normalize(cross(look, right))
159
+ Vector3.CrossToRef(this._lookAtVector, right, this.upVector);
160
+ this.upVector.normalize();
161
+ // Position = center - look * radius (preserve unit look)
162
+ this._tempVect.copyFrom(this._lookAtVector).scaleInPlace(-this._radius);
163
+ this._tempPosition.copyFrom(this._center).addInPlace(this._tempVect);
164
+ // Recalculate collisionOffset to be applied later when viewMatrix is calculated (allowing camera users to modify the value in afterCheckInputsObservable)
165
+ if (this.checkCollisions) {
166
+ this.perFrameCollisionOffset = this._getCollisionOffset(this._tempPosition);
167
+ }
168
+ this._position.copyFrom(this._tempPosition);
169
+ this._isViewMatrixDirty = true;
170
+ }
171
+ /**
172
+ * If the camera is actively in flight, redirects it toward a new destination, using up the remaining
173
+ * duration from the original flyToAsync call. The redirect starts from the camera's current pose, so it
174
+ * stays smooth (no snap). If the camera is not currently in flight this is a no-op; start a new flight
175
+ * with flyToAsync instead.
176
+ *
177
+ * Note: redirecting interrupts the in-flight animation, so the promise returned by the original
178
+ * flyToAsync call resolves early. Await the promise returned here to be notified when the redirected
179
+ * flight actually completes.
180
+ *
181
+ * Any property left undefined is frozen at its current value (matching flyToAsync), it does not continue
182
+ * toward the original flight's destination for that property.
183
+ * @param targetYaw - Target yaw in radians, or undefined to freeze yaw at its current value.
184
+ * @param targetPitch - Target pitch in radians, or undefined to freeze pitch at its current value.
185
+ * @param targetRadius - Target radius (distance from the look-at center), or undefined to freeze radius at its current value.
186
+ * @param targetCenter - Target look-at center in scene coordinates, or undefined to freeze the center at its current value.
187
+ * @returns Promise that resolves when the redirected flight completes (or is interrupted), or undefined if the camera was not in flight.
188
+ */
189
+ updateFlyToDestination(targetYaw, targetPitch, targetRadius, targetCenter) {
190
+ if (!this._flyingBehavior.isInterpolating) {
191
+ // Nothing in flight to redirect. Callers should use flyToAsync to start a new flight.
192
+ return undefined;
193
+ }
194
+ // Redirecting is just a fresh flight that starts from the camera's current pose and uses up the
195
+ // time left in the original flight. flyToAsync already eases from the current values, so this stays
196
+ // smooth (no snap).
197
+ return this._flyToAsync(targetYaw, targetPitch, targetRadius, targetCenter, this._flyingBehavior.remainingDurationMs);
198
+ }
199
+ /**
200
+ * Animate camera towards passed in property values. If undefined, will use current value
201
+ * @param targetYaw - Target yaw in radians, or undefined to keep the current yaw.
202
+ * @param targetPitch - Target pitch in radians, or undefined to keep the current pitch.
203
+ * @param targetRadius - Target radius (distance from the look-at center), or undefined to keep the current radius.
204
+ * @param targetCenter - Target look-at center in scene coordinates, or undefined to keep the current center.
205
+ * @param flightDurationMs - Total duration of the animation in milliseconds. Defaults to 1000ms.
206
+ * @param easingFunction - Optional easing function applied to the animation curve.
207
+ * @param centerHopScale If supplied, will define the parabolic hop height scale for center animation to create a "bounce" effect
208
+ * @returns Promise that will return when the animation is complete (or interuppted by pointer input)
209
+ */
210
+ async flyToAsync(targetYaw, targetPitch, targetRadius, targetCenter, flightDurationMs = 1000, easingFunction, centerHopScale) {
211
+ return await this._flyToAsync(targetYaw, targetPitch, targetRadius, targetCenter, flightDurationMs, easingFunction, centerHopScale);
212
+ }
213
+ /**
214
+ * Shared flight implementation used by both flyToAsync (new flight) and updateFlyToDestination (redirect).
215
+ * Builds the target property map (and the center SLERP/hop interpolation) and animates from the camera's
216
+ * current pose over the given duration.
217
+ * @param targetYaw - Target yaw in radians, or undefined to keep the current yaw.
218
+ * @param targetPitch - Target pitch in radians, or undefined to keep the current pitch.
219
+ * @param targetRadius - Target radius (distance from the look-at center), or undefined to keep the current radius.
220
+ * @param targetCenter - Target look-at center in scene coordinates, or undefined to keep the current center.
221
+ * @param flightDurationMs - Total duration of the animation in milliseconds. Defaults to 1000ms.
222
+ * @param easingFunction - Optional easing function applied to the animation curve.
223
+ * @param centerHopScale - If supplied, defines the parabolic hop height scale for the center animation to create a "bounce" effect.
224
+ * @returns Promise that resolves when the animation is complete (or interrupted).
225
+ */
226
+ async _flyToAsync(targetYaw, targetPitch, targetRadius, targetCenter, flightDurationMs = 1000, easingFunction, centerHopScale) {
227
+ this._flyToTargets.clear();
228
+ // For yaw, use shortest path to target.
229
+ const deltaYaw = targetYaw !== undefined ? NormalizeRadians(NormalizeRadians(targetYaw) - this._yaw) : 0;
230
+ this._flyToTargets.set("yaw", deltaYaw === 0 ? undefined : this._yaw + deltaYaw);
231
+ this._flyToTargets.set("pitch", targetPitch !== undefined ? NormalizeRadians(targetPitch) : undefined);
232
+ this._flyToTargets.set("radius", targetRadius);
233
+ this._flyToTargets.set("center", targetCenter?.clone());
234
+ let overrideAnimationFunction;
235
+ if (targetCenter !== undefined && !targetCenter.equals(this.center)) {
236
+ // Animate center directly with custom interpolation
237
+ overrideAnimationFunction = (key, animation) => {
238
+ if (key === "center") {
239
+ // Override the Vector3 interpolation to use SLERP + hop
240
+ animation.vector3InterpolateFunction = (startValue, endValue, gradient) => {
241
+ // gradient is the eased value (0 to 1) after easing function is applied
242
+ // Slerp between start and end
243
+ const newCenter = Vector3.SlerpToRef(startValue, endValue, gradient, this._tempCenter);
244
+ // Apply parabolic hop if requested
245
+ if (centerHopScale && centerHopScale > 0) {
246
+ // Parabolic formula: peaks at t=0.5, returns to 0 at gradient=0 and gradient=1
247
+ // if hopPeakT = .5 the denominator would be hopPeakT * hopPeakT - hopPeakT, which = -.25
248
+ const hopPeakOffset = centerHopScale * Vector3Distance(startValue, endValue);
249
+ const hopOffset = hopPeakOffset * Clamp((gradient * gradient - gradient) / -0.25);
250
+ // Scale the center outward (away from origin)
251
+ newCenter.scaleInPlace(1 + hopOffset / newCenter.length());
252
+ }
253
+ return newCenter;
254
+ };
209
255
  }
210
- return newCenter;
211
256
  };
212
257
  }
213
- };
214
- }
215
- return await this._flyingBehavior.animatePropertiesAsync(this._flyToTargets, flightDurationMs, easingFunction, overrideAnimationFunction);
216
- }
217
- /**
218
- * Helper function to move camera towards a given point by `distanceScale` of the current camera-to-destination distance (by default 50%).
219
- * @param destination point to move towards
220
- * @param distanceScale value between 0 and 1, % of distance to move
221
- * @param durationMs duration of flight, default 1s
222
- * @param easingFn optional easing function for flight interpolation of properties
223
- * @param centerHopScale If supplied, will define the parabolic hop height scale for center animation to create a "bounce" effect
224
- */
225
- async flyToPointAsync(destination, distanceScale = 0.5, durationMs = 1000, easingFn, centerHopScale) {
226
- // Move by a fraction of the camera-to-destination distance
227
- const zoomDistance = Vector3Distance(this.position, destination) * distanceScale;
228
- const newRadius = this._getCenterAndRadiusFromZoomToPoint(destination, zoomDistance, this._tempCenter);
229
- await this.flyToAsync(undefined, undefined, newRadius, this._tempCenter, durationMs, easingFn, centerHopScale);
230
- !this.isDisposed() && this._recalculateCenter(false, true /** force */);
231
- }
232
- /**
233
- * Gets the limits for this camera
234
- */
235
- get limits() {
236
- return this._limits;
237
- }
238
- _resetToDefault(limits) {
239
- // Camera configuration vars
240
- const restingAltitude = limits.radiusMax !== Infinity ? limits.radiusMax : limits.planetRadius * 4;
241
- this.position.copyFromFloats(restingAltitude, 0, 0);
242
- this._center.copyFromFloats(limits.planetRadius, 0, 0);
243
- this._radius = Vector3.Distance(this.position, this.center);
244
- // Temp vars
245
- this._tempPosition = new Vector3();
246
- // View matrix calculation vars
247
- this._viewMatrix = Matrix.Identity();
248
- this._center.subtractToRef(this._position, this._lookAtVector).normalize(); // Lookat vector of the camera
249
- this.upVector = Vector3.Up(); // Up vector of the camera (does work for -X look at)
250
- this._isViewMatrixDirty = true;
251
- this._setOrientation(this._yaw, this._pitch, this._radius, this._center);
252
- }
253
- /** @internal */
254
- _getViewMatrix() {
255
- if (!this._isViewMatrixDirty) {
256
- return this._viewMatrix;
257
- }
258
- this._isViewMatrixDirty = false;
259
- // Ensure vectors are normalized
260
- this.upVector.normalize();
261
- this._lookAtVector.normalize();
262
- // Apply the same offset to both position and center to preserve orbital relationship
263
- // This keeps yaw/pitch/radius intact - just lifts the whole "rig"
264
- this._position.addInPlace(this.perFrameCollisionOffset);
265
- this._center.addInPlace(this.perFrameCollisionOffset);
266
- // Calculate view matrix with camera position and center
267
- if (this.getScene().useRightHandedSystem) {
268
- Matrix.LookAtRHToRef(this.position, this._center, this.upVector, this._viewMatrix);
269
- }
270
- else {
271
- Matrix.LookAtLHToRef(this.position, this._center, this.upVector, this._viewMatrix);
272
- }
273
- return this._viewMatrix;
274
- }
275
- /** @internal */
276
- _isSynchronizedViewMatrix() {
277
- if (!super._isSynchronizedViewMatrix() || this._isViewMatrixDirty) {
278
- return false;
279
- }
280
- return true;
281
- }
282
- _applyGeocentricTranslation() {
283
- // Store pending position (without any corrections applied)
284
- this.center.addToRef(this.movement.panDeltaCurrentFrame, this._tempPosition);
285
- if (!this.movement.isInterpolating) {
286
- // Calculate the position correction to keep camera at the same radius when applying translation
287
- this._tempPosition.normalize().scaleInPlace(this.center.length());
288
- }
289
- // Set center which will call _setOrientation
290
- this.center = this._tempPosition;
291
- }
292
- /**
293
- * This rotation keeps the camera oriented towards the globe as it orbits around it. This is different from cameraCentricRotation which is when the camera rotates around its own axis
294
- */
295
- _applyGeocentricRotation() {
296
- const rotationDeltaCurrentFrame = this.movement.rotationDeltaCurrentFrame;
297
- if (rotationDeltaCurrentFrame.x !== 0 || rotationDeltaCurrentFrame.y !== 0) {
298
- const pitch = rotationDeltaCurrentFrame.x !== 0 ? Clamp(this._pitch + rotationDeltaCurrentFrame.x, 0, 0.5 * Math.PI - Epsilon) : this._pitch;
299
- const yaw = rotationDeltaCurrentFrame.y !== 0 ? this._yaw + rotationDeltaCurrentFrame.y : this._yaw;
300
- this._setOrientation(yaw, pitch, this._radius, this._center);
301
- }
302
- }
303
- _getCenterAndRadiusFromZoomToPoint(targetPoint, distance, newCenterResult) {
304
- const directionToTarget = Vector3SubtractToRef(targetPoint, this._position, TmpVectors.Vector3[0]);
305
- const distanceToTarget = directionToTarget.length();
306
- // Don't zoom past the min radius limit.
307
- if (distanceToTarget < this.limits.radiusMin) {
308
- newCenterResult.copyFrom(this._center);
309
- const requestedRadius = this._radius - distance;
310
- const newRadius = Clamp(requestedRadius, this.limits.radiusMin, this.limits.radiusMax);
311
- return newRadius;
312
- }
313
- // Move the camera position towards targetPoint by distanceToTarget
314
- directionToTarget.scaleInPlace(distance / distanceToTarget);
315
- const newPosition = this._position.addToRef(directionToTarget, TmpVectors.Vector3[1]);
316
- // Project the movement onto the look vector to derive the new center/radius.
317
- const projectedDistance = Vector3Dot(directionToTarget, this._lookAtVector);
318
- const newRadius = this._radius - projectedDistance;
319
- const newRadiusClamped = Clamp(newRadius, this.limits.radiusMin, this.limits.radiusMax);
320
- newCenterResult.copyFrom(newPosition).addInPlace(this._lookAtVector.scale(newRadiusClamped));
321
- return newRadiusClamped;
322
- }
323
- /**
324
- * Apply zoom by moving the camera toward/away from a target point.
325
- */
326
- _applyZoom() {
327
- let zoomDelta = this.movement.zoomDeltaCurrentFrame;
328
- const pickedPoint = this.movement.computedPerFrameZoomPickPoint;
329
- // Clamp zoom delta to limits before applying
330
- zoomDelta = this._clampZoomDelta(zoomDelta, pickedPoint);
331
- if (Math.abs(zoomDelta) < Epsilon) {
332
- return;
333
- }
334
- if (pickedPoint) {
335
- // Zoom toward the picked point under cursor
336
- this.zoomToPoint(pickedPoint, zoomDelta);
337
- }
338
- else {
339
- // Zoom along lookAt vector (fallback when no surface under cursor)
340
- this.zoomAlongLookAt(zoomDelta);
341
- }
342
- }
343
- _clampZoomDelta(zoomDelta, pickedPoint) {
344
- if (Math.abs(zoomDelta) < Epsilon) {
345
- return 0;
346
- }
347
- const distanceToTarget = pickedPoint ? Vector3Distance(this._position, pickedPoint) : undefined;
348
- return this.limits.clampZoomDistance(zoomDelta, this._radius, distanceToTarget);
349
- }
350
- /**
351
- * Zoom towards a specific point on the globe
352
- * @param targetPoint The point to zoom towards
353
- * @param distance The distance to move
354
- */
355
- zoomToPoint(targetPoint, distance) {
356
- const newRadius = this._getCenterAndRadiusFromZoomToPoint(targetPoint, distance, this._tempCenter);
357
- // Apply the new orientation
358
- this._setOrientation(this._yaw, this._pitch, newRadius, this._tempCenter);
359
- }
360
- /**
361
- * Zoom along the camera's lookAt direction
362
- * @param distance The distance to zoom
363
- */
364
- zoomAlongLookAt(distance) {
365
- // Clamp radius to limits
366
- const requestedRadius = this._radius - distance;
367
- const newRadius = Clamp(requestedRadius, this.limits.radiusMin, this.limits.radiusMax);
368
- // Simply change radius without moving center
369
- this._setOrientation(this._yaw, this._pitch, newRadius, this._center);
370
- }
371
- /** @internal */
372
- _checkInputs() {
373
- this.inputs.checkInputs();
374
- this.perFrameCollisionOffset.setAll(0);
375
- // Let movement class handle all per-frame logic
376
- this.movement.computeCurrentFrameDeltas();
377
- let isCenterMoving = false;
378
- if (this.movement.panDeltaCurrentFrame.lengthSquared() > 0) {
379
- this._applyGeocentricTranslation();
380
- // After a drag, recalculate the center point to ensure it's still on the surface.
381
- isCenterMoving = true;
382
- }
383
- if (this.movement.rotationDeltaCurrentFrame.lengthSquared() > 0) {
384
- this._applyGeocentricRotation();
385
- }
386
- if (Math.abs(this.movement.zoomDeltaCurrentFrame) > Epsilon) {
387
- this._applyZoom();
388
- isCenterMoving = true;
389
- }
390
- // After a movement impacting center or radius, recalculate the center point to ensure it's still on the surface.
391
- this._recalculateCenter(isCenterMoving);
392
- super._checkInputs();
393
- }
394
- _recalculateCenter(isCenterMoving, forceRecalculate = false) {
395
- const shouldRecalculateCenterAfterMove = this._wasCenterMovingLastFrame && !isCenterMoving;
396
- this._wasCenterMovingLastFrame = isCenterMoving;
397
- // Wait until movement impacting center is complete to avoid wasted raycasting
398
- if (shouldRecalculateCenterAfterMove || forceRecalculate) {
399
- const newCenter = this.movement.pickAlongVector(this._lookAtVector);
400
- if (newCenter?.pickedPoint) {
401
- // Direction from new center to origin
402
- const centerToOrigin = TmpVectors.Vector3[4];
403
- centerToOrigin.copyFrom(newCenter.pickedPoint).negateInPlace().normalize();
404
- // Check if this direction aligns with camera's lookAt vector
405
- const dotProduct = Vector3Dot(this._lookAtVector, centerToOrigin);
406
- // Only update if the center is looking toward the origin (dot product > 0) to avoid a center on the opposite side of globe
407
- if (dotProduct > 0) {
408
- // Compute the new radius as distance from camera position to new center
409
- const newRadius = Vector3Distance(this._position, newCenter.pickedPoint);
410
- // Only update if the new center is in front of the camera
411
- if (newRadius > Epsilon) {
412
- // Compute yaw/pitch that correspond to current lookAt at new center
413
- const yawPitch = TmpVectors.Vector2[0];
414
- ComputeYawPitchFromLookAtToRef(this._lookAtVector, newCenter.pickedPoint, this._scene.useRightHandedSystem, this._yaw, yawPitch, this.movement.calculateUpVectorFromPointToRef);
415
- // Call _setOrientation with the computed yaw/pitch and new center
416
- this._setOrientation(yawPitch.x, yawPitch.y, newRadius, newCenter.pickedPoint);
258
+ return await this._flyingBehavior.animatePropertiesAsync(this._flyToTargets, flightDurationMs, easingFunction, overrideAnimationFunction);
259
+ }
260
+ /**
261
+ * Helper function to move camera towards a given point by `distanceScale` of the current camera-to-destination distance (by default 50%).
262
+ * @param destination point to move towards
263
+ * @param distanceScale value between 0 and 1, % of distance to move
264
+ * @param durationMs duration of flight, default 1s
265
+ * @param easingFn optional easing function for flight interpolation of properties
266
+ * @param centerHopScale If supplied, will define the parabolic hop height scale for center animation to create a "bounce" effect
267
+ */
268
+ async flyToPointAsync(destination, distanceScale = 0.5, durationMs = 1000, easingFn, centerHopScale) {
269
+ // Move by a fraction of the camera-to-destination distance
270
+ const zoomDistance = Vector3Distance(this.position, destination) * distanceScale;
271
+ const newRadius = this._getCenterAndRadiusFromZoomToPoint(destination, zoomDistance, this._tempCenter);
272
+ await this.flyToAsync(undefined, undefined, newRadius, this._tempCenter, durationMs, easingFn, centerHopScale);
273
+ !this.isDisposed() && this._recalculateCenter(false, true /** force */);
274
+ }
275
+ /**
276
+ * Gets the limits for this camera
277
+ */
278
+ get limits() {
279
+ return this._limits;
280
+ }
281
+ _resetToDefault(limits) {
282
+ // Camera configuration vars
283
+ const restingAltitude = limits.radiusMax !== Infinity ? limits.radiusMax : limits.planetRadius * 4;
284
+ this.position.copyFromFloats(restingAltitude, 0, 0);
285
+ this._center.copyFromFloats(limits.planetRadius, 0, 0);
286
+ this._radius = Vector3.Distance(this.position, this.center);
287
+ // Temp vars
288
+ this._tempPosition = new Vector3();
289
+ // View matrix calculation vars
290
+ this._viewMatrix = Matrix.Identity();
291
+ this._center.subtractToRef(this._position, this._lookAtVector).normalize(); // Lookat vector of the camera
292
+ this.upVector = Vector3.Up(); // Up vector of the camera (does work for -X look at)
293
+ this._isViewMatrixDirty = true;
294
+ this._setOrientation(this._yaw, this._pitch, this._radius, this._center);
295
+ }
296
+ /** @internal */
297
+ _getViewMatrix() {
298
+ if (!this._isViewMatrixDirty) {
299
+ return this._viewMatrix;
300
+ }
301
+ this._isViewMatrixDirty = false;
302
+ // Ensure vectors are normalized
303
+ this.upVector.normalize();
304
+ this._lookAtVector.normalize();
305
+ // Apply the same offset to both position and center to preserve orbital relationship
306
+ // This keeps yaw/pitch/radius intact - just lifts the whole "rig"
307
+ this._position.addInPlace(this.perFrameCollisionOffset);
308
+ this._center.addInPlace(this.perFrameCollisionOffset);
309
+ // Calculate view matrix with camera position and center
310
+ if (this.getScene().useRightHandedSystem) {
311
+ Matrix.LookAtRHToRef(this.position, this._center, this.upVector, this._viewMatrix);
312
+ }
313
+ else {
314
+ Matrix.LookAtLHToRef(this.position, this._center, this.upVector, this._viewMatrix);
315
+ }
316
+ return this._viewMatrix;
317
+ }
318
+ /** @internal */
319
+ _isSynchronizedViewMatrix() {
320
+ if (!super._isSynchronizedViewMatrix() || this._isViewMatrixDirty) {
321
+ return false;
322
+ }
323
+ return true;
324
+ }
325
+ _applyGeocentricTranslation() {
326
+ // Store pending position (without any corrections applied)
327
+ this.center.addToRef(this.movement.panDeltaCurrentFrame, this._tempPosition);
328
+ if (!this.movement.isInterpolating) {
329
+ // Calculate the position correction to keep camera at the same radius when applying translation
330
+ this._tempPosition.normalize().scaleInPlace(this.center.length());
331
+ }
332
+ // Set center which will call _setOrientation
333
+ this.center = this._tempPosition;
334
+ }
335
+ /**
336
+ * This rotation keeps the camera oriented towards the globe as it orbits around it. This is different from cameraCentricRotation which is when the camera rotates around its own axis
337
+ */
338
+ _applyGeocentricRotation() {
339
+ const rotationDeltaCurrentFrame = this.movement.rotationDeltaCurrentFrame;
340
+ if (rotationDeltaCurrentFrame.x !== 0 || rotationDeltaCurrentFrame.y !== 0) {
341
+ const pitch = rotationDeltaCurrentFrame.x !== 0 ? Clamp(this._pitch + rotationDeltaCurrentFrame.x, 0, 0.5 * Math.PI - Epsilon) : this._pitch;
342
+ const yaw = rotationDeltaCurrentFrame.y !== 0 ? this._yaw + rotationDeltaCurrentFrame.y : this._yaw;
343
+ this._setOrientation(yaw, pitch, this._radius, this._center);
344
+ }
345
+ }
346
+ _getCenterAndRadiusFromZoomToPoint(targetPoint, distance, newCenterResult) {
347
+ const directionToTarget = Vector3SubtractToRef(targetPoint, this._position, TmpVectors.Vector3[0]);
348
+ const distanceToTarget = directionToTarget.length();
349
+ // Don't zoom past the min radius limit.
350
+ if (distanceToTarget < this.limits.radiusMin) {
351
+ newCenterResult.copyFrom(this._center);
352
+ const requestedRadius = this._radius - distance;
353
+ const newRadius = Clamp(requestedRadius, this.limits.radiusMin, this.limits.radiusMax);
354
+ return newRadius;
355
+ }
356
+ // Move the camera position towards targetPoint by distanceToTarget
357
+ directionToTarget.scaleInPlace(distance / distanceToTarget);
358
+ const newPosition = this._position.addToRef(directionToTarget, TmpVectors.Vector3[1]);
359
+ // Project the movement onto the look vector to derive the new center/radius.
360
+ const projectedDistance = Vector3Dot(directionToTarget, this._lookAtVector);
361
+ const newRadius = this._radius - projectedDistance;
362
+ const newRadiusClamped = Clamp(newRadius, this.limits.radiusMin, this.limits.radiusMax);
363
+ newCenterResult.copyFrom(newPosition).addInPlace(this._lookAtVector.scale(newRadiusClamped));
364
+ return newRadiusClamped;
365
+ }
366
+ /**
367
+ * Apply zoom by moving the camera toward/away from a target point.
368
+ */
369
+ _applyZoom() {
370
+ let zoomDelta = this.movement.zoomDeltaCurrentFrame;
371
+ const pickedPoint = this.movement.computedPerFrameZoomPickPoint;
372
+ // Clamp zoom delta to limits before applying
373
+ zoomDelta = this._clampZoomDelta(zoomDelta, pickedPoint);
374
+ if (Math.abs(zoomDelta) < Epsilon) {
375
+ return;
376
+ }
377
+ if (pickedPoint) {
378
+ // Zoom toward the picked point under cursor
379
+ this.zoomToPoint(pickedPoint, zoomDelta);
380
+ }
381
+ else {
382
+ // Zoom along lookAt vector (fallback when no surface under cursor)
383
+ this.zoomAlongLookAt(zoomDelta);
384
+ }
385
+ }
386
+ _clampZoomDelta(zoomDelta, pickedPoint) {
387
+ if (Math.abs(zoomDelta) < Epsilon) {
388
+ return 0;
389
+ }
390
+ const distanceToTarget = pickedPoint ? Vector3Distance(this._position, pickedPoint) : undefined;
391
+ return this.limits.clampZoomDistance(zoomDelta, this._radius, distanceToTarget);
392
+ }
393
+ /**
394
+ * Zoom towards a specific point on the globe
395
+ * @param targetPoint The point to zoom towards
396
+ * @param distance The distance to move
397
+ */
398
+ zoomToPoint(targetPoint, distance) {
399
+ const newRadius = this._getCenterAndRadiusFromZoomToPoint(targetPoint, distance, this._tempCenter);
400
+ // Apply the new orientation
401
+ this._setOrientation(this._yaw, this._pitch, newRadius, this._tempCenter);
402
+ }
403
+ /**
404
+ * Zoom along the camera's lookAt direction
405
+ * @param distance The distance to zoom
406
+ */
407
+ zoomAlongLookAt(distance) {
408
+ // Clamp radius to limits
409
+ const requestedRadius = this._radius - distance;
410
+ const newRadius = Clamp(requestedRadius, this.limits.radiusMin, this.limits.radiusMax);
411
+ // Simply change radius without moving center
412
+ this._setOrientation(this._yaw, this._pitch, newRadius, this._center);
413
+ }
414
+ /** @internal */
415
+ _checkInputs() {
416
+ this.inputs.checkInputs();
417
+ this.perFrameCollisionOffset.setAll(0);
418
+ // Let movement class handle all per-frame logic
419
+ this.movement.computeCurrentFrameDeltas();
420
+ let isCenterMoving = false;
421
+ if (this.movement.panDeltaCurrentFrame.lengthSquared() > 0) {
422
+ this._applyGeocentricTranslation();
423
+ // After a drag, recalculate the center point to ensure it's still on the surface.
424
+ isCenterMoving = true;
425
+ }
426
+ if (this.movement.rotationDeltaCurrentFrame.lengthSquared() > 0) {
427
+ this._applyGeocentricRotation();
428
+ }
429
+ if (Math.abs(this.movement.zoomDeltaCurrentFrame) > Epsilon) {
430
+ this._applyZoom();
431
+ isCenterMoving = true;
432
+ }
433
+ // After a movement impacting center or radius, recalculate the center point to ensure it's still on the surface.
434
+ this._recalculateCenter(isCenterMoving);
435
+ super._checkInputs();
436
+ }
437
+ _recalculateCenter(isCenterMoving, forceRecalculate = false) {
438
+ const shouldRecalculateCenterAfterMove = this._wasCenterMovingLastFrame && !isCenterMoving;
439
+ this._wasCenterMovingLastFrame = isCenterMoving;
440
+ // Wait until movement impacting center is complete to avoid wasted raycasting
441
+ if (shouldRecalculateCenterAfterMove || forceRecalculate) {
442
+ const newCenter = this.movement.pickAlongVector(this._lookAtVector);
443
+ if (newCenter?.pickedPoint) {
444
+ // Direction from new center to origin
445
+ const centerToOrigin = TmpVectors.Vector3[4];
446
+ centerToOrigin.copyFrom(newCenter.pickedPoint).negateInPlace().normalize();
447
+ // Check if this direction aligns with camera's lookAt vector
448
+ const dotProduct = Vector3Dot(this._lookAtVector, centerToOrigin);
449
+ // Only update if the center is looking toward the origin (dot product > 0) to avoid a center on the opposite side of globe
450
+ if (dotProduct > 0) {
451
+ // Compute the new radius as distance from camera position to new center
452
+ const newRadius = Vector3Distance(this._position, newCenter.pickedPoint);
453
+ // Only update if the new center is in front of the camera
454
+ if (newRadius > Epsilon) {
455
+ // Compute yaw/pitch that correspond to current lookAt at new center
456
+ const yawPitch = TmpVectors.Vector2[0];
457
+ ComputeYawPitchFromLookAtToRef(this._lookAtVector, newCenter.pickedPoint, this._scene.useRightHandedSystem, this._yaw, yawPitch, this.movement.calculateUpVectorFromPointToRef);
458
+ // Call _setOrientation with the computed yaw/pitch and new center
459
+ this._setOrientation(yawPitch.x, yawPitch.y, newRadius, newCenter.pickedPoint);
460
+ }
461
+ }
417
462
  }
418
463
  }
419
464
  }
420
- }
421
- }
422
- /**
423
- * Allows extended classes to override how collision offset is calculated
424
- * @param newPosition
425
- * @returns
426
- */
427
- _getCollisionOffset(newPosition) {
428
- const collisionOffset = TmpVectors.Vector3[6].setAll(0);
429
- if (!this.checkCollisions || !this._scene.collisionsEnabled) {
430
- return collisionOffset;
431
- }
432
- const coordinator = this.getScene().collisionCoordinator;
433
- if (!coordinator) {
434
- return collisionOffset;
435
- }
436
- if (!this._collider) {
437
- this._collider = coordinator.createCollider();
438
- }
439
- this._collider._radius.setAll(this.limits.radiusMin);
440
- // Calculate velocity from old position to new position
441
- newPosition.subtractToRef(this._position, this._collisionVelocity);
442
- // Get the collision-adjusted position
443
- const adjustedPosition = coordinator.getNewPosition(this._position, this._collisionVelocity, this._collider, 3, null, () => { }, this.uniqueId);
444
- // Calculate the collision offset (how much the position was pushed)
445
- adjustedPosition.subtractToRef(newPosition, collisionOffset);
446
- return collisionOffset;
447
- }
448
- /** @internal */
449
- attachControl(noPreventDefault) {
450
- this.inputs.attachElement(noPreventDefault);
451
- }
452
- /** @internal */
453
- detachControl() {
454
- this.inputs.detachElement();
455
- }
456
- /**
457
- * Gets the class name of the camera.
458
- * @returns the class name
459
- */
460
- getClassName() {
461
- return "GeospatialCamera";
462
- }
463
- }
464
- __decorate([
465
- serialize()
466
- ], GeospatialCamera.prototype, "checkCollisions", void 0);
467
- __decorate([
468
- serializeAsVector3()
469
- ], GeospatialCamera.prototype, "_center", void 0);
470
- __decorate([
471
- serialize()
472
- ], GeospatialCamera.prototype, "_yaw", void 0);
473
- __decorate([
474
- serialize()
475
- ], GeospatialCamera.prototype, "_pitch", void 0);
476
- __decorate([
477
- serialize()
478
- ], GeospatialCamera.prototype, "_radius", void 0);
465
+ /**
466
+ * Allows extended classes to override how collision offset is calculated
467
+ * @param newPosition
468
+ * @returns
469
+ */
470
+ _getCollisionOffset(newPosition) {
471
+ const collisionOffset = TmpVectors.Vector3[6].setAll(0);
472
+ if (!this.checkCollisions || !this._scene.collisionsEnabled) {
473
+ return collisionOffset;
474
+ }
475
+ const coordinator = this.getScene().collisionCoordinator;
476
+ if (!coordinator) {
477
+ return collisionOffset;
478
+ }
479
+ if (!this._collider) {
480
+ this._collider = coordinator.createCollider();
481
+ }
482
+ this._collider._radius.setAll(this.limits.radiusMin);
483
+ // Calculate velocity from old position to new position
484
+ newPosition.subtractToRef(this._position, this._collisionVelocity);
485
+ // Get the collision-adjusted position
486
+ const adjustedPosition = coordinator.getNewPosition(this._position, this._collisionVelocity, this._collider, 3, null, () => { }, this.uniqueId);
487
+ // Calculate the collision offset (how much the position was pushed)
488
+ adjustedPosition.subtractToRef(newPosition, collisionOffset);
489
+ return collisionOffset;
490
+ }
491
+ /** @internal */
492
+ attachControl(noPreventDefault) {
493
+ this.inputs.attachElement(noPreventDefault);
494
+ }
495
+ /** @internal */
496
+ detachControl() {
497
+ this.inputs.detachElement();
498
+ }
499
+ /**
500
+ * Gets the class name of the camera.
501
+ * @returns the class name
502
+ */
503
+ getClassName() {
504
+ return "GeospatialCamera";
505
+ }
506
+ },
507
+ (() => {
508
+ const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
509
+ _checkCollisions_decorators = [serialize()];
510
+ __center_decorators = [serializeAsVector3()];
511
+ __yaw_decorators = [serialize()];
512
+ __pitch_decorators = [serialize()];
513
+ __radius_decorators = [serialize()];
514
+ __esDecorate(null, null, _checkCollisions_decorators, { kind: "field", name: "checkCollisions", static: false, private: false, access: { has: obj => "checkCollisions" in obj, get: obj => obj.checkCollisions, set: (obj, value) => { obj.checkCollisions = value; } }, metadata: _metadata }, _checkCollisions_initializers, _checkCollisions_extraInitializers);
515
+ __esDecorate(null, null, __center_decorators, { kind: "field", name: "_center", static: false, private: false, access: { has: obj => "_center" in obj, get: obj => obj._center, set: (obj, value) => { obj._center = value; } }, metadata: _metadata }, __center_initializers, __center_extraInitializers);
516
+ __esDecorate(null, null, __yaw_decorators, { kind: "field", name: "_yaw", static: false, private: false, access: { has: obj => "_yaw" in obj, get: obj => obj._yaw, set: (obj, value) => { obj._yaw = value; } }, metadata: _metadata }, __yaw_initializers, __yaw_extraInitializers);
517
+ __esDecorate(null, null, __pitch_decorators, { kind: "field", name: "_pitch", static: false, private: false, access: { has: obj => "_pitch" in obj, get: obj => obj._pitch, set: (obj, value) => { obj._pitch = value; } }, metadata: _metadata }, __pitch_initializers, __pitch_extraInitializers);
518
+ __esDecorate(null, null, __radius_decorators, { kind: "field", name: "_radius", static: false, private: false, access: { has: obj => "_radius" in obj, get: obj => obj._radius, set: (obj, value) => { obj._radius = value; } }, metadata: _metadata }, __radius_initializers, __radius_extraInitializers);
519
+ if (_metadata) Object.defineProperty(_a, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
520
+ })(),
521
+ _a;
522
+ })();
523
+ export { GeospatialCamera };
479
524
  // Register Class Name
480
525
  /**
481
526
  * Compute the lookAt direction vector from yaw and pitch angles at a given center point.