@onerjs/core 8.53.5 → 8.53.6

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 { serialize, serializeAsVector3, serializeAsMeshReference } from "../Misc/decorators.js";
4
4
  import { Camera } from "./camera.pure.js";
5
5
  import { Quaternion, Matrix, Vector3, Vector2, TmpVectors } from "../Maths/math.vector.pure.js";
@@ -15,537 +15,578 @@ const TmpQuaternion = /*#__PURE__*/ Quaternion.Identity();
15
15
  * This is the base of the follow, arc rotate cameras and Free camera
16
16
  * @see https://doc.babylonjs.com/features/featuresDeepDive/cameras
17
17
  */
18
- export class TargetCamera extends Camera {
19
- /**
20
- * Defines the inertia (decay coefficient applied per reference frame at 60fps) of the camera.
21
- * This helps giving a smooth feeling to the camera movement.
22
- *
23
- * Override of {@link Camera.inertia} that writes through to the {@link movement} system so the
24
- * framerate-independent pan/rotation glide stays in sync. Setting this updates the movement
25
- * system immediately (matching the accessor convergence used by {@link ArcRotateCamera}).
26
- */
27
- get inertia() {
28
- return super.inertia;
29
- }
30
- set inertia(value) {
31
- super.inertia = value;
32
- // `movement` is constructed in this class' constructor; guard for the base-constructor
33
- // assignment that runs before it exists.
34
- if (this.movement) {
35
- this.movement.panInertia = value;
36
- this.movement.rotationInertia = value;
37
- }
38
- }
39
- /**
40
- * Instantiates a target camera that takes a mesh or position as a target and continues to look at it while it moves.
41
- * This is the base of the follow, arc rotate cameras and Free camera
42
- * @see https://doc.babylonjs.com/features/featuresDeepDive/cameras
43
- * @param name Defines the name of the camera in the scene
44
- * @param position Defines the start position of the camera in the scene
45
- * @param scene Defines the scene the camera belongs to
46
- * @param setActiveOnSceneIfNoneActive Defines whether the camera should be marked as active if not other active cameras have been defined
47
- */
48
- constructor(name, position, scene, setActiveOnSceneIfNoneActive = true) {
49
- super(name, position, scene, setActiveOnSceneIfNoneActive);
50
- /**
51
- * Define the current direction the camera is moving to
52
- */
53
- this.cameraDirection = new Vector3(0, 0, 0);
54
- /**
55
- * Define the current rotation the camera is rotating to
56
- */
57
- this.cameraRotation = new Vector2(0, 0);
58
- /**
59
- * When set, the up vector of the camera will be updated by the rotation of the camera
60
- */
61
- this.updateUpVectorFromRotation = false;
62
- /**
63
- * Define the current speed of the camera
64
- */
65
- this.speed = 2.0;
66
- /**
67
- * Add constraint to the camera to prevent it to move freely in all directions and
68
- * around all axis.
69
- */
70
- this.noRotationConstraint = false;
71
- /**
72
- * Reverses mouselook direction to 'natural' panning as opposed to traditional direct
73
- * panning
74
- */
75
- this.invertRotation = false;
76
- /**
77
- * Speed multiplier for inverse camera panning
78
- */
79
- this.inverseRotationSpeed = 0.2;
80
- /**
81
- * @internal
82
- * @experimental
83
- * Can be used to change clamping behavior for inertia. Hook into onBeforeRenderObservable to change the value per-frame
84
- */
85
- this._panningEpsilon = Epsilon;
86
- /**
87
- * @internal
88
- * @experimental
89
- * Can be used to change clamping behavior for inertia. Hook into onBeforeRenderObservable to change the value per-frame
90
- */
91
- this._rotationEpsilon = Epsilon;
92
- /**
93
- * Define the current target of the camera as an object or a position.
94
- * Please note that locking a target will disable panning.
95
- */
96
- this.lockedTarget = null;
97
- this._currentTarget = Vector3.Zero();
98
- this._initialFocalDistance = 1;
99
- this._viewMatrix = Matrix.Zero();
100
- /** @internal */
101
- this._cameraTransformMatrix = Matrix.Zero();
102
- /** @internal */
103
- this._cameraRotationMatrix = Matrix.Zero();
104
- this._transformedReferencePoint = Vector3.Zero();
105
- this._deferredPositionUpdate = new Vector3();
106
- this._deferredRotationQuaternionUpdate = new Quaternion();
107
- this._deferredRotationUpdate = new Vector3();
108
- this._deferredUpdated = false;
109
- this._deferOnly = false;
110
- this._cachedRotationZ = 0;
111
- this._cachedQuaternionRotationZ = 0;
112
- this._referencePoint = Vector3.Forward(this.getScene().useRightHandedSystem);
113
- // Set the y component of the rotation to Math.PI in right-handed system for backwards compatibility.
114
- this.rotation = new Vector3(0, this.getScene().useRightHandedSystem ? Math.PI : 0, 0);
115
- this.movement = new TargetCameraMovement(this.getScene(), this.position);
116
- // Seed movement-system inertia from the value set during base/subclass construction.
117
- // After this point, the `inertia` setter on this class pushes directly to movement.
118
- this.movement.panInertia = this.inertia;
119
- this.movement.rotationInertia = this.inertia;
120
- }
121
- /**
122
- * Gets the position in front of the camera at a given distance.
123
- * @param distance The distance from the camera we want the position to be
124
- * @returns the position
125
- */
126
- getFrontPosition(distance) {
127
- this.getWorldMatrix();
128
- const worldForward = TmpVectors.Vector3[0];
129
- const localForward = TmpVectors.Vector3[1];
130
- localForward.set(0, 0, this._scene.useRightHandedSystem ? -1.0 : 1.0);
131
- this.getDirectionToRef(localForward, worldForward);
132
- worldForward.scaleInPlace(distance);
133
- return this.globalPosition.add(worldForward);
134
- }
135
- /** @internal */
136
- _getLockedTargetPosition() {
137
- if (!this.lockedTarget) {
138
- return null;
139
- }
140
- if (this.lockedTarget.absolutePosition) {
141
- const lockedTarget = this.lockedTarget;
142
- const m = lockedTarget.computeWorldMatrix();
143
- // in some cases the absolute position resets externally, but doesn't update since the matrix is cached.
144
- m.getTranslationToRef(lockedTarget.absolutePosition);
145
- }
146
- return this.lockedTarget.absolutePosition || this.lockedTarget;
147
- }
148
- /**
149
- * Store current camera state of the camera (fov, position, rotation, etc..)
150
- * @returns the camera
151
- */
152
- storeState() {
153
- this._storedPosition = this.position.clone();
154
- this._storedRotation = this.rotation.clone();
155
- if (this.rotationQuaternion) {
156
- this._storedRotationQuaternion = this.rotationQuaternion.clone();
157
- }
158
- return super.storeState();
159
- }
160
- /**
161
- * Restored camera state. You must call storeState() first
162
- * @returns whether it was successful or not
163
- * @internal
164
- */
165
- _restoreStateValues() {
166
- if (!super._restoreStateValues()) {
167
- return false;
168
- }
169
- this.position = this._storedPosition.clone();
170
- this.rotation = this._storedRotation.clone();
171
- if (this.rotationQuaternion && this._storedRotationQuaternion) {
172
- this.rotationQuaternion = this._storedRotationQuaternion.clone();
173
- }
174
- this.cameraDirection.copyFromFloats(0, 0, 0);
175
- this.cameraRotation.copyFromFloats(0, 0);
176
- return true;
177
- }
178
- /** @internal */
179
- _initCache() {
180
- super._initCache();
181
- this._cache.lockedTarget = new Vector3(Number.MAX_VALUE, Number.MAX_VALUE, Number.MAX_VALUE);
182
- this._cache.rotation = new Vector3(Number.MAX_VALUE, Number.MAX_VALUE, Number.MAX_VALUE);
183
- this._cache.rotationQuaternion = new Quaternion(Number.MAX_VALUE, Number.MAX_VALUE, Number.MAX_VALUE, Number.MAX_VALUE);
184
- }
185
- /**
186
- * @internal
187
- */
188
- _updateCache(ignoreParentClass) {
189
- if (!ignoreParentClass) {
190
- super._updateCache();
191
- }
192
- const lockedTargetPosition = this._getLockedTargetPosition();
193
- if (!lockedTargetPosition) {
194
- this._cache.lockedTarget = null;
195
- }
196
- else {
197
- if (!this._cache.lockedTarget) {
198
- this._cache.lockedTarget = lockedTargetPosition.clone();
18
+ let TargetCamera = (() => {
19
+ var _a;
20
+ let _classSuper = Camera;
21
+ let _updateUpVectorFromRotation_decorators;
22
+ let _updateUpVectorFromRotation_initializers = [];
23
+ let _updateUpVectorFromRotation_extraInitializers = [];
24
+ let _rotation_decorators;
25
+ let _rotation_initializers = [];
26
+ let _rotation_extraInitializers = [];
27
+ let _speed_decorators;
28
+ let _speed_initializers = [];
29
+ let _speed_extraInitializers = [];
30
+ let _lockedTarget_decorators;
31
+ let _lockedTarget_initializers = [];
32
+ let _lockedTarget_extraInitializers = [];
33
+ return _a = class TargetCamera extends _classSuper {
34
+ /**
35
+ * Defines the inertia (decay coefficient applied per reference frame at 60fps) of the camera.
36
+ * This helps giving a smooth feeling to the camera movement.
37
+ *
38
+ * Override of {@link Camera.inertia} that writes through to the {@link movement} system so the
39
+ * framerate-independent pan/rotation glide stays in sync. Setting this updates the movement
40
+ * system immediately (matching the accessor convergence used by {@link ArcRotateCamera}).
41
+ *
42
+ * Backed by a local field rather than `super.inertia`: the shipped UMD bundle is compiled with
43
+ * TypeScript at `target: ES5`, and ES5 downleveling of `super` access inside a decorated accessor
44
+ * (the base {@link Camera.inertia} carries `@serialize()`) mis-compiles to `undefined`. That would
45
+ * feed `NaN` into the movement decay and freeze the camera. It only breaks in the ES5 UMD bundle;
46
+ * native-ESM dev keeps real `super`. See the `babylonjs/no-super-in-accessor` lint rule.
47
+ */
48
+ get inertia() {
49
+ return this._targetInertia;
199
50
  }
200
- else {
201
- this._cache.lockedTarget.copyFrom(lockedTargetPosition);
51
+ set inertia(value) {
52
+ this._targetInertia = value;
53
+ // `movement` is constructed in this class' constructor; guard for the base-constructor
54
+ // assignment that runs before it exists.
55
+ if (this.movement) {
56
+ this.movement.panInertia = value;
57
+ this.movement.rotationInertia = value;
58
+ }
202
59
  }
203
- }
204
- this._cache.rotation.copyFrom(this.rotation);
205
- if (this.rotationQuaternion) {
206
- this._cache.rotationQuaternion.copyFrom(this.rotationQuaternion);
207
- }
208
- }
209
- // Synchronized
210
- /** @internal */
211
- _isSynchronizedViewMatrix() {
212
- if (!super._isSynchronizedViewMatrix()) {
213
- return false;
214
- }
215
- const lockedTargetPosition = this._getLockedTargetPosition();
216
- return ((this._cache.lockedTarget ? this._cache.lockedTarget.equals(lockedTargetPosition) : !lockedTargetPosition) &&
217
- (this.rotationQuaternion ? this.rotationQuaternion.equals(this._cache.rotationQuaternion) : this._cache.rotation.equals(this.rotation)));
218
- }
219
- // Methods
220
- /** @internal */
221
- _computeLocalCameraSpeed() {
222
- const engine = this.getEngine();
223
- return this.speed * Math.sqrt(engine.getDeltaTime() / (engine.getFps() * 100.0));
224
- }
225
- // Target
226
- /**
227
- * Defines the target the camera should look at.
228
- * @param target Defines the new target as a Vector
229
- */
230
- setTarget(target) {
231
- this.upVector.normalize();
232
- this._initialFocalDistance = target.subtract(this.position).length();
233
- if (this.position.z === target.z) {
234
- this.position.z += Epsilon;
235
- }
236
- if (this._initialFocalDistance < Epsilon) {
237
- this._initialFocalDistance = 1;
238
- }
239
- this._referencePoint.normalize().scaleInPlace(this._initialFocalDistance);
240
- if (this.getScene().useRightHandedSystem) {
241
- Matrix.LookAtRHToRef(this.position, target, Vector3.UpReadOnly, TmpMatrix);
242
- }
243
- else {
244
- Matrix.LookAtLHToRef(this.position, target, Vector3.UpReadOnly, TmpMatrix);
245
- }
246
- TmpMatrix.invert();
247
- const rotationQuaternion = this.rotationQuaternion || TmpQuaternion;
248
- Quaternion.FromRotationMatrixToRef(TmpMatrix, rotationQuaternion);
249
- rotationQuaternion.toEulerAnglesToRef(this.rotation);
250
- // Explicitly set z to 0 to match previous behavior.
251
- this.rotation.z = 0;
252
- }
253
- /**
254
- * Defines the target point of the camera.
255
- * The camera looks towards it form the radius distance.
256
- */
257
- get target() {
258
- return this.getTarget();
259
- }
260
- set target(value) {
261
- this.setTarget(value);
262
- }
263
- /**
264
- * Return the current target position of the camera. This value is expressed in local space.
265
- * @returns the target position
266
- */
267
- getTarget() {
268
- return this._currentTarget;
269
- }
270
- /** @internal */
271
- _decideIfNeedsToMove() {
272
- return Math.abs(this.cameraDirection.x) > 0 || Math.abs(this.cameraDirection.y) > 0 || Math.abs(this.cameraDirection.z) > 0;
273
- }
274
- /** @internal */
275
- _updatePosition() {
276
- if (this.parent) {
277
- this.parent.getWorldMatrix().invertToRef(TmpVectors.Matrix[0]);
278
- Vector3.TransformNormalToRef(this.cameraDirection, TmpVectors.Matrix[0], TmpVectors.Vector3[0]);
279
- this._deferredPositionUpdate.addInPlace(TmpVectors.Vector3[0]);
280
- if (!this._deferOnly) {
281
- this.position.copyFrom(this._deferredPositionUpdate);
60
+ /**
61
+ * Instantiates a target camera that takes a mesh or position as a target and continues to look at it while it moves.
62
+ * This is the base of the follow, arc rotate cameras and Free camera
63
+ * @see https://doc.babylonjs.com/features/featuresDeepDive/cameras
64
+ * @param name Defines the name of the camera in the scene
65
+ * @param position Defines the start position of the camera in the scene
66
+ * @param scene Defines the scene the camera belongs to
67
+ * @param setActiveOnSceneIfNoneActive Defines whether the camera should be marked as active if not other active cameras have been defined
68
+ */
69
+ constructor(name, position, scene, setActiveOnSceneIfNoneActive = true) {
70
+ super(name, position, scene, setActiveOnSceneIfNoneActive);
71
+ /**
72
+ * Define the current direction the camera is moving to
73
+ */
74
+ this.cameraDirection = new Vector3(0, 0, 0);
75
+ /**
76
+ * Define the current rotation the camera is rotating to
77
+ */
78
+ this.cameraRotation = new Vector2(0, 0);
79
+ this._targetInertia = 0.9;
80
+ /**
81
+ * When set, the up vector of the camera will be updated by the rotation of the camera
82
+ */
83
+ this.updateUpVectorFromRotation = __runInitializers(this, _updateUpVectorFromRotation_initializers, false);
84
+ /**
85
+ * Define the current rotation of the camera
86
+ */
87
+ this.rotation = (__runInitializers(this, _updateUpVectorFromRotation_extraInitializers), __runInitializers(this, _rotation_initializers, void 0));
88
+ /**
89
+ * Define the current rotation of the camera as a quaternion to prevent Gimbal lock
90
+ */
91
+ this.rotationQuaternion = __runInitializers(this, _rotation_extraInitializers);
92
+ /**
93
+ * Define the current speed of the camera
94
+ */
95
+ this.speed = __runInitializers(this, _speed_initializers, 2.0);
96
+ /**
97
+ * Add constraint to the camera to prevent it to move freely in all directions and
98
+ * around all axis.
99
+ */
100
+ this.noRotationConstraint = (__runInitializers(this, _speed_extraInitializers), false);
101
+ /**
102
+ * Reverses mouselook direction to 'natural' panning as opposed to traditional direct
103
+ * panning
104
+ */
105
+ this.invertRotation = false;
106
+ /**
107
+ * Speed multiplier for inverse camera panning
108
+ */
109
+ this.inverseRotationSpeed = 0.2;
110
+ /**
111
+ * @internal
112
+ * @experimental
113
+ * Can be used to change clamping behavior for inertia. Hook into onBeforeRenderObservable to change the value per-frame
114
+ */
115
+ this._panningEpsilon = Epsilon;
116
+ /**
117
+ * @internal
118
+ * @experimental
119
+ * Can be used to change clamping behavior for inertia. Hook into onBeforeRenderObservable to change the value per-frame
120
+ */
121
+ this._rotationEpsilon = Epsilon;
122
+ /**
123
+ * Define the current target of the camera as an object or a position.
124
+ * Please note that locking a target will disable panning.
125
+ */
126
+ this.lockedTarget = __runInitializers(this, _lockedTarget_initializers, null);
127
+ this._currentTarget = (__runInitializers(this, _lockedTarget_extraInitializers), Vector3.Zero());
128
+ this._initialFocalDistance = 1;
129
+ this._viewMatrix = Matrix.Zero();
130
+ /** @internal */
131
+ this._cameraTransformMatrix = Matrix.Zero();
132
+ /** @internal */
133
+ this._cameraRotationMatrix = Matrix.Zero();
134
+ this._transformedReferencePoint = Vector3.Zero();
135
+ this._deferredPositionUpdate = new Vector3();
136
+ this._deferredRotationQuaternionUpdate = new Quaternion();
137
+ this._deferredRotationUpdate = new Vector3();
138
+ this._deferredUpdated = false;
139
+ this._deferOnly = false;
140
+ this._cachedRotationZ = 0;
141
+ this._cachedQuaternionRotationZ = 0;
142
+ this._referencePoint = Vector3.Forward(this.getScene().useRightHandedSystem);
143
+ // Set the y component of the rotation to Math.PI in right-handed system for backwards compatibility.
144
+ this.rotation = new Vector3(0, this.getScene().useRightHandedSystem ? Math.PI : 0, 0);
145
+ this.movement = new TargetCameraMovement(this.getScene(), this.position);
146
+ // Seed movement-system inertia from the value set during base/subclass construction.
147
+ // After this point, the `inertia` setter on this class pushes directly to movement.
148
+ this.movement.panInertia = this.inertia;
149
+ this.movement.rotationInertia = this.inertia;
282
150
  }
283
- else {
284
- this._deferredUpdated = true;
151
+ /**
152
+ * Gets the position in front of the camera at a given distance.
153
+ * @param distance The distance from the camera we want the position to be
154
+ * @returns the position
155
+ */
156
+ getFrontPosition(distance) {
157
+ this.getWorldMatrix();
158
+ const worldForward = TmpVectors.Vector3[0];
159
+ const localForward = TmpVectors.Vector3[1];
160
+ localForward.set(0, 0, this._scene.useRightHandedSystem ? -1.0 : 1.0);
161
+ this.getDirectionToRef(localForward, worldForward);
162
+ worldForward.scaleInPlace(distance);
163
+ return this.globalPosition.add(worldForward);
285
164
  }
286
- return;
287
- }
288
- this._deferredPositionUpdate.addInPlace(this.cameraDirection);
289
- if (!this._deferOnly) {
290
- this.position.copyFrom(this._deferredPositionUpdate);
291
- }
292
- else {
293
- this._deferredUpdated = true;
294
- }
295
- }
296
- /** @internal */
297
- _checkInputs() {
298
- // Fold this frame's raw input — written to `cameraDirection`/`cameraRotation` by the input
299
- // classes (and honored from direct external writes) — into the movement system, then let it
300
- // produce framerate-independent per-frame deltas (input plus inertial glide). The applied
301
- // delta is written back into `cameraDirection`/`cameraRotation` purely as a within-frame
302
- // hand-off so the collision, gravity, and rotation-constraint logic below reads it unchanged.
303
- // Both fields are reset to 0 at the end of this method (the inertial glide now lives in the
304
- // movement system's velocity, not in these fields), so external code polling them *after*
305
- // `_checkInputs()` reads 0 rather than the legacy residual glide value.
306
- const movement = this.movement;
307
- movement.panAccumulatedPixels.addInPlace(this.cameraDirection);
308
- movement.rotationAccumulatedPixels.x += this.cameraRotation.x;
309
- movement.rotationAccumulatedPixels.y += this.cameraRotation.y;
310
- movement.computeCurrentFrameDeltas();
311
- this.cameraDirection.copyFrom(movement.panDeltaCurrentFrame);
312
- this.cameraRotation.set(movement.rotationDeltaCurrentFrame.x, movement.rotationDeltaCurrentFrame.y);
313
- // Backward-compat glide cutoff: honor the legacy `_panningEpsilon` / `_rotationEpsilon` knobs.
314
- // Legacy `_checkInputs` snapped `cameraDirection`/`cameraRotation` to 0 once a component fell
315
- // below `speed * _panningEpsilon` / `speed * _rotationEpsilon`, ending inertial glide at that
316
- // threshold. The framerate-independent port moved glide into the movement system's velocity, so
317
- // we mirror that cutoff here: when this frame's emitted glide delta is below the legacy limit,
318
- // zero the delta AND reset the movement velocity so glide terminates at the same point (and the
319
- // public knobs stay meaningful). Active drags produce deltas well above the limit, so this only
320
- // triggers on the decaying tail.
321
- const inertialPanningLimit = this.speed * this._panningEpsilon;
322
- if (Math.abs(this.cameraDirection.x) < inertialPanningLimit &&
323
- Math.abs(this.cameraDirection.y) < inertialPanningLimit &&
324
- Math.abs(this.cameraDirection.z) < inertialPanningLimit) {
325
- this.cameraDirection.setAll(0);
326
- movement.resetPanVelocity();
327
- }
328
- const inertialRotationLimit = this.speed * this._rotationEpsilon;
329
- if (Math.abs(this.cameraRotation.x) < inertialRotationLimit && Math.abs(this.cameraRotation.y) < inertialRotationLimit) {
330
- this.cameraRotation.set(0, 0);
331
- movement.resetRotationVelocity();
332
- }
333
- const directionMultiplier = this.invertRotation ? -this.inverseRotationSpeed : 1.0;
334
- const needToMove = this._decideIfNeedsToMove();
335
- const needToRotate = !!(this.cameraRotation.x || this.cameraRotation.y);
336
- this._deferredUpdated = false;
337
- this._deferredRotationUpdate.copyFrom(this.rotation);
338
- this._deferredPositionUpdate.copyFrom(this.position);
339
- if (this.rotationQuaternion) {
340
- this._deferredRotationQuaternionUpdate.copyFrom(this.rotationQuaternion);
341
- }
342
- // Move
343
- if (needToMove) {
344
- this._updatePosition();
345
- }
346
- // Rotate
347
- if (needToRotate) {
348
- //rotate, if quaternion is set and rotation was used
349
- if (this.rotationQuaternion) {
350
- this.rotationQuaternion.toEulerAnglesToRef(this._deferredRotationUpdate);
165
+ /** @internal */
166
+ _getLockedTargetPosition() {
167
+ if (!this.lockedTarget) {
168
+ return null;
169
+ }
170
+ if (this.lockedTarget.absolutePosition) {
171
+ const lockedTarget = this.lockedTarget;
172
+ const m = lockedTarget.computeWorldMatrix();
173
+ // in some cases the absolute position resets externally, but doesn't update since the matrix is cached.
174
+ m.getTranslationToRef(lockedTarget.absolutePosition);
175
+ }
176
+ return this.lockedTarget.absolutePosition || this.lockedTarget;
351
177
  }
352
- this._deferredRotationUpdate.x += this.cameraRotation.x * directionMultiplier;
353
- this._deferredRotationUpdate.y += this.cameraRotation.y * directionMultiplier;
354
- // Apply constraints
355
- if (!this.noRotationConstraint) {
356
- const limit = 1.570796;
357
- if (this._deferredRotationUpdate.x > limit) {
358
- this._deferredRotationUpdate.x = limit;
178
+ /**
179
+ * Store current camera state of the camera (fov, position, rotation, etc..)
180
+ * @returns the camera
181
+ */
182
+ storeState() {
183
+ this._storedPosition = this.position.clone();
184
+ this._storedRotation = this.rotation.clone();
185
+ if (this.rotationQuaternion) {
186
+ this._storedRotationQuaternion = this.rotationQuaternion.clone();
359
187
  }
360
- if (this._deferredRotationUpdate.x < -limit) {
361
- this._deferredRotationUpdate.x = -limit;
188
+ return super.storeState();
189
+ }
190
+ /**
191
+ * Restored camera state. You must call storeState() first
192
+ * @returns whether it was successful or not
193
+ * @internal
194
+ */
195
+ _restoreStateValues() {
196
+ if (!super._restoreStateValues()) {
197
+ return false;
362
198
  }
199
+ this.position = this._storedPosition.clone();
200
+ this.rotation = this._storedRotation.clone();
201
+ if (this.rotationQuaternion && this._storedRotationQuaternion) {
202
+ this.rotationQuaternion = this._storedRotationQuaternion.clone();
203
+ }
204
+ this.cameraDirection.copyFromFloats(0, 0, 0);
205
+ this.cameraRotation.copyFromFloats(0, 0);
206
+ return true;
363
207
  }
364
- if (!this._deferOnly) {
365
- this.rotation.copyFrom(this._deferredRotationUpdate);
208
+ /** @internal */
209
+ _initCache() {
210
+ super._initCache();
211
+ this._cache.lockedTarget = new Vector3(Number.MAX_VALUE, Number.MAX_VALUE, Number.MAX_VALUE);
212
+ this._cache.rotation = new Vector3(Number.MAX_VALUE, Number.MAX_VALUE, Number.MAX_VALUE);
213
+ this._cache.rotationQuaternion = new Quaternion(Number.MAX_VALUE, Number.MAX_VALUE, Number.MAX_VALUE, Number.MAX_VALUE);
366
214
  }
367
- else {
368
- this._deferredUpdated = true;
215
+ /**
216
+ * @internal
217
+ */
218
+ _updateCache(ignoreParentClass) {
219
+ if (!ignoreParentClass) {
220
+ super._updateCache();
221
+ }
222
+ const lockedTargetPosition = this._getLockedTargetPosition();
223
+ if (!lockedTargetPosition) {
224
+ this._cache.lockedTarget = null;
225
+ }
226
+ else {
227
+ if (!this._cache.lockedTarget) {
228
+ this._cache.lockedTarget = lockedTargetPosition.clone();
229
+ }
230
+ else {
231
+ this._cache.lockedTarget.copyFrom(lockedTargetPosition);
232
+ }
233
+ }
234
+ this._cache.rotation.copyFrom(this.rotation);
235
+ if (this.rotationQuaternion) {
236
+ this._cache.rotationQuaternion.copyFrom(this.rotationQuaternion);
237
+ }
238
+ }
239
+ // Synchronized
240
+ /** @internal */
241
+ _isSynchronizedViewMatrix() {
242
+ if (!super._isSynchronizedViewMatrix()) {
243
+ return false;
244
+ }
245
+ const lockedTargetPosition = this._getLockedTargetPosition();
246
+ return ((this._cache.lockedTarget ? this._cache.lockedTarget.equals(lockedTargetPosition) : !lockedTargetPosition) &&
247
+ (this.rotationQuaternion ? this.rotationQuaternion.equals(this._cache.rotationQuaternion) : this._cache.rotation.equals(this.rotation)));
248
+ }
249
+ // Methods
250
+ /** @internal */
251
+ _computeLocalCameraSpeed() {
252
+ const engine = this.getEngine();
253
+ return this.speed * Math.sqrt(engine.getDeltaTime() / (engine.getFps() * 100.0));
254
+ }
255
+ // Target
256
+ /**
257
+ * Defines the target the camera should look at.
258
+ * @param target Defines the new target as a Vector
259
+ */
260
+ setTarget(target) {
261
+ this.upVector.normalize();
262
+ this._initialFocalDistance = target.subtract(this.position).length();
263
+ if (this.position.z === target.z) {
264
+ this.position.z += Epsilon;
265
+ }
266
+ if (this._initialFocalDistance < Epsilon) {
267
+ this._initialFocalDistance = 1;
268
+ }
269
+ this._referencePoint.normalize().scaleInPlace(this._initialFocalDistance);
270
+ if (this.getScene().useRightHandedSystem) {
271
+ Matrix.LookAtRHToRef(this.position, target, Vector3.UpReadOnly, TmpMatrix);
272
+ }
273
+ else {
274
+ Matrix.LookAtLHToRef(this.position, target, Vector3.UpReadOnly, TmpMatrix);
275
+ }
276
+ TmpMatrix.invert();
277
+ const rotationQuaternion = this.rotationQuaternion || TmpQuaternion;
278
+ Quaternion.FromRotationMatrixToRef(TmpMatrix, rotationQuaternion);
279
+ rotationQuaternion.toEulerAnglesToRef(this.rotation);
280
+ // Explicitly set z to 0 to match previous behavior.
281
+ this.rotation.z = 0;
282
+ }
283
+ /**
284
+ * Defines the target point of the camera.
285
+ * The camera looks towards it form the radius distance.
286
+ */
287
+ get target() {
288
+ return this.getTarget();
369
289
  }
370
- //rotate, if quaternion is set and rotation was used
371
- if (this.rotationQuaternion) {
372
- const len = this._deferredRotationUpdate.lengthSquared();
373
- if (len) {
374
- Quaternion.RotationYawPitchRollToRef(this._deferredRotationUpdate.y, this._deferredRotationUpdate.x, this._deferredRotationUpdate.z, this._deferredRotationQuaternionUpdate);
290
+ set target(value) {
291
+ this.setTarget(value);
292
+ }
293
+ /**
294
+ * Return the current target position of the camera. This value is expressed in local space.
295
+ * @returns the target position
296
+ */
297
+ getTarget() {
298
+ return this._currentTarget;
299
+ }
300
+ /** @internal */
301
+ _decideIfNeedsToMove() {
302
+ return Math.abs(this.cameraDirection.x) > 0 || Math.abs(this.cameraDirection.y) > 0 || Math.abs(this.cameraDirection.z) > 0;
303
+ }
304
+ /** @internal */
305
+ _updatePosition() {
306
+ if (this.parent) {
307
+ this.parent.getWorldMatrix().invertToRef(TmpVectors.Matrix[0]);
308
+ Vector3.TransformNormalToRef(this.cameraDirection, TmpVectors.Matrix[0], TmpVectors.Vector3[0]);
309
+ this._deferredPositionUpdate.addInPlace(TmpVectors.Vector3[0]);
375
310
  if (!this._deferOnly) {
376
- this.rotationQuaternion.copyFrom(this._deferredRotationQuaternionUpdate);
311
+ this.position.copyFrom(this._deferredPositionUpdate);
377
312
  }
378
313
  else {
379
314
  this._deferredUpdated = true;
380
315
  }
316
+ return;
317
+ }
318
+ this._deferredPositionUpdate.addInPlace(this.cameraDirection);
319
+ if (!this._deferOnly) {
320
+ this.position.copyFrom(this._deferredPositionUpdate);
321
+ }
322
+ else {
323
+ this._deferredUpdated = true;
381
324
  }
382
325
  }
383
- }
384
- // The movement system now owns inertial decay (framerate-independent), so reset the
385
- // per-frame delta surfaces. Glide persists inside the movement velocity and is re-emitted
386
- // next frame via `computeCurrentFrameDeltas`; zeroing here prevents the just-applied delta
387
- // from being re-folded into the accumulators on the next frame.
388
- this.cameraDirection.setAll(0);
389
- this.cameraRotation.set(0, 0);
390
- super._checkInputs();
391
- }
392
- _updateCameraRotationMatrix() {
393
- if (this.rotationQuaternion) {
394
- this.rotationQuaternion.toRotationMatrix(this._cameraRotationMatrix);
395
- }
396
- else {
397
- Matrix.RotationYawPitchRollToRef(this.rotation.y, this.rotation.x, this.rotation.z, this._cameraRotationMatrix);
398
- }
399
- }
400
- /**
401
- * Update the up vector to apply the rotation of the camera (So if you changed the camera rotation.z this will let you update the up vector as well)
402
- * @returns the current camera
403
- */
404
- _rotateUpVectorWithCameraRotationMatrix() {
405
- Vector3.TransformNormalToRef(Vector3.UpReadOnly, this._cameraRotationMatrix, this.upVector);
406
- return this;
407
- }
408
- /** @internal */
409
- _getViewMatrix() {
410
- if (this.lockedTarget) {
411
- this.setTarget(this._getLockedTargetPosition());
412
- }
413
- // Compute
414
- this._updateCameraRotationMatrix();
415
- // Apply the changed rotation to the upVector
416
- if (this.rotationQuaternion && this._cachedQuaternionRotationZ != this.rotationQuaternion.z) {
417
- this._rotateUpVectorWithCameraRotationMatrix();
418
- this._cachedQuaternionRotationZ = this.rotationQuaternion.z;
419
- }
420
- else if (this._cachedRotationZ !== this.rotation.z) {
421
- this._rotateUpVectorWithCameraRotationMatrix();
422
- this._cachedRotationZ = this.rotation.z;
423
- }
424
- Vector3.TransformCoordinatesToRef(this._referencePoint, this._cameraRotationMatrix, this._transformedReferencePoint);
425
- // Computing target and final matrix
426
- this.position.addToRef(this._transformedReferencePoint, this._currentTarget);
427
- if (this.updateUpVectorFromRotation) {
428
- if (this.rotationQuaternion) {
429
- Axis.Y.rotateByQuaternionToRef(this.rotationQuaternion, this.upVector);
326
+ /** @internal */
327
+ _checkInputs() {
328
+ // Fold this frame's raw input — written to `cameraDirection`/`cameraRotation` by the input
329
+ // classes (and honored from direct external writes) — into the movement system, then let it
330
+ // produce framerate-independent per-frame deltas (input plus inertial glide). The applied
331
+ // delta is written back into `cameraDirection`/`cameraRotation` purely as a within-frame
332
+ // hand-off so the collision, gravity, and rotation-constraint logic below reads it unchanged.
333
+ // Both fields are reset to 0 at the end of this method (the inertial glide now lives in the
334
+ // movement system's velocity, not in these fields), so external code polling them *after*
335
+ // `_checkInputs()` reads 0 rather than the legacy residual glide value.
336
+ const movement = this.movement;
337
+ // Capture whether there is raw input on the pan channel THIS frame, before it is folded into the
338
+ // movement system. This gates the legacy panning cutoff below so it only ends a decaying inertial
339
+ // tail and never discards a small but legitimate active-input delta.
340
+ const hasPanInput = this.cameraDirection.x !== 0 || this.cameraDirection.y !== 0 || this.cameraDirection.z !== 0;
341
+ movement.panAccumulatedPixels.addInPlace(this.cameraDirection);
342
+ movement.rotationAccumulatedPixels.x += this.cameraRotation.x;
343
+ movement.rotationAccumulatedPixels.y += this.cameraRotation.y;
344
+ movement.computeCurrentFrameDeltas();
345
+ this.cameraDirection.copyFrom(movement.panDeltaCurrentFrame);
346
+ this.cameraRotation.set(movement.rotationDeltaCurrentFrame.x, movement.rotationDeltaCurrentFrame.y);
347
+ // Backward-compat glide cutoff: honor the legacy `_panningEpsilon` knob for translation.
348
+ // Legacy `_checkInputs` snapped `cameraDirection` to 0 once the glide fell below the threshold,
349
+ // ending the inertial glide at that point. The framerate-independent port moved glide into the
350
+ // movement system's velocity, so we mirror that cutoff here and reset the velocity so the glide
351
+ // terminates at the same point (and the public knob stays meaningful). This is gated on
352
+ // `!hasPanInput` so it only fires on the decaying tail: on an active-input frame the emitted
353
+ // delta is always applied, even when it is below the limit. Translation magnitude scales with
354
+ // `this.speed` (inputs use `_computeLocalCameraSpeed`), so the panning cutoff is scaled by
355
+ // `speed` too, keeping the glide *duration* independent of speed.
356
+ const inertialPanningLimit = this.speed * this._panningEpsilon;
357
+ if (!hasPanInput &&
358
+ Math.abs(this.cameraDirection.x) < inertialPanningLimit &&
359
+ Math.abs(this.cameraDirection.y) < inertialPanningLimit &&
360
+ Math.abs(this.cameraDirection.z) < inertialPanningLimit) {
361
+ this.cameraDirection.setAll(0);
362
+ movement.resetPanVelocity();
363
+ }
364
+ // Rotation has no legacy per-frame-delta cutoff: the movement system already terminates the
365
+ // glide via its own framerate-independent velocity epsilon, so `cameraRotation` is naturally 0
366
+ // once the rotation velocity decays. Applying a coarse `_rotationEpsilon` snap on top truncated
367
+ // the inertia tail and reintroduced framerate dependence (the snap tests a per-frame delta, which
368
+ // shrinks at high refresh rates), producing a visible "cut" in the glide that was worst at high
369
+ // speeds and high frame rates (forum 61001). Deferring entirely to the velocity epsilon gives the
370
+ // same smooth ease-out at every `speed` and refresh rate.
371
+ const directionMultiplier = this.invertRotation ? -this.inverseRotationSpeed : 1.0;
372
+ const needToMove = this._decideIfNeedsToMove();
373
+ const needToRotate = !!(this.cameraRotation.x || this.cameraRotation.y);
374
+ this._deferredUpdated = false;
375
+ this._deferredRotationUpdate.copyFrom(this.rotation);
376
+ this._deferredPositionUpdate.copyFrom(this.position);
377
+ if (this.rotationQuaternion) {
378
+ this._deferredRotationQuaternionUpdate.copyFrom(this.rotationQuaternion);
379
+ }
380
+ // Move
381
+ if (needToMove) {
382
+ this._updatePosition();
383
+ }
384
+ // Rotate
385
+ if (needToRotate) {
386
+ //rotate, if quaternion is set and rotation was used
387
+ if (this.rotationQuaternion) {
388
+ this.rotationQuaternion.toEulerAnglesToRef(this._deferredRotationUpdate);
389
+ }
390
+ this._deferredRotationUpdate.x += this.cameraRotation.x * directionMultiplier;
391
+ this._deferredRotationUpdate.y += this.cameraRotation.y * directionMultiplier;
392
+ // Apply constraints
393
+ if (!this.noRotationConstraint) {
394
+ const limit = 1.570796;
395
+ if (this._deferredRotationUpdate.x > limit) {
396
+ this._deferredRotationUpdate.x = limit;
397
+ }
398
+ if (this._deferredRotationUpdate.x < -limit) {
399
+ this._deferredRotationUpdate.x = -limit;
400
+ }
401
+ }
402
+ if (!this._deferOnly) {
403
+ this.rotation.copyFrom(this._deferredRotationUpdate);
404
+ }
405
+ else {
406
+ this._deferredUpdated = true;
407
+ }
408
+ //rotate, if quaternion is set and rotation was used
409
+ if (this.rotationQuaternion) {
410
+ const len = this._deferredRotationUpdate.lengthSquared();
411
+ if (len) {
412
+ Quaternion.RotationYawPitchRollToRef(this._deferredRotationUpdate.y, this._deferredRotationUpdate.x, this._deferredRotationUpdate.z, this._deferredRotationQuaternionUpdate);
413
+ if (!this._deferOnly) {
414
+ this.rotationQuaternion.copyFrom(this._deferredRotationQuaternionUpdate);
415
+ }
416
+ else {
417
+ this._deferredUpdated = true;
418
+ }
419
+ }
420
+ }
421
+ }
422
+ // The movement system now owns inertial decay (framerate-independent), so reset the
423
+ // per-frame delta surfaces. Glide persists inside the movement velocity and is re-emitted
424
+ // next frame via `computeCurrentFrameDeltas`; zeroing here prevents the just-applied delta
425
+ // from being re-folded into the accumulators on the next frame.
426
+ this.cameraDirection.setAll(0);
427
+ this.cameraRotation.set(0, 0);
428
+ super._checkInputs();
430
429
  }
431
- else {
432
- Quaternion.FromEulerVectorToRef(this.rotation, TmpQuaternion);
433
- Axis.Y.rotateByQuaternionToRef(TmpQuaternion, this.upVector);
430
+ _updateCameraRotationMatrix() {
431
+ if (this.rotationQuaternion) {
432
+ this.rotationQuaternion.toRotationMatrix(this._cameraRotationMatrix);
433
+ }
434
+ else {
435
+ Matrix.RotationYawPitchRollToRef(this.rotation.y, this.rotation.x, this.rotation.z, this._cameraRotationMatrix);
436
+ }
434
437
  }
435
- }
436
- this._computeViewMatrix(this.position, this._currentTarget, this.upVector);
437
- return this._viewMatrix;
438
- }
439
- _computeViewMatrix(position, target, up) {
440
- if (this.getScene().useRightHandedSystem) {
441
- Matrix.LookAtRHToRef(position, target, up, this._viewMatrix);
442
- }
443
- else {
444
- Matrix.LookAtLHToRef(position, target, up, this._viewMatrix);
445
- }
446
- if (this.parent) {
447
- const parentWorldMatrix = this.parent.getWorldMatrix();
448
- this._viewMatrix.invert();
449
- this._viewMatrix.multiplyToRef(parentWorldMatrix, this._viewMatrix);
450
- this._viewMatrix.invert();
451
- this._markSyncedWithParent();
452
- }
453
- }
454
- /**
455
- * @internal
456
- */
457
- // eslint-disable-next-line @typescript-eslint/no-unused-vars
458
- createRigCamera(name, cameraIndex) {
459
- if (this.cameraRigMode !== Camera.RIG_MODE_NONE) {
460
- const rigCamera = new TargetCamera(name, this.position.clone(), this.getScene());
461
- rigCamera.isRigCamera = true;
462
- rigCamera.rigParent = this;
463
- if (this.cameraRigMode === Camera.RIG_MODE_VR) {
464
- if (!this.rotationQuaternion) {
465
- this.rotationQuaternion = new Quaternion();
466
- }
467
- rigCamera._cameraRigParams = {};
468
- rigCamera.rotationQuaternion = new Quaternion();
438
+ /**
439
+ * Update the up vector to apply the rotation of the camera (So if you changed the camera rotation.z this will let you update the up vector as well)
440
+ * @returns the current camera
441
+ */
442
+ _rotateUpVectorWithCameraRotationMatrix() {
443
+ Vector3.TransformNormalToRef(Vector3.UpReadOnly, this._cameraRotationMatrix, this.upVector);
444
+ return this;
469
445
  }
470
- rigCamera.mode = this.mode;
471
- rigCamera.orthoLeft = this.orthoLeft;
472
- rigCamera.orthoRight = this.orthoRight;
473
- rigCamera.orthoTop = this.orthoTop;
474
- rigCamera.orthoBottom = this.orthoBottom;
475
- return rigCamera;
476
- }
477
- return null;
478
- }
479
- /**
480
- * @internal
481
- */
482
- _updateRigCameras() {
483
- const camLeft = this._rigCameras[0];
484
- const camRight = this._rigCameras[1];
485
- this.computeWorldMatrix();
486
- switch (this.cameraRigMode) {
487
- case Camera.RIG_MODE_STEREOSCOPIC_ANAGLYPH:
488
- case Camera.RIG_MODE_STEREOSCOPIC_SIDEBYSIDE_PARALLEL:
489
- case Camera.RIG_MODE_STEREOSCOPIC_SIDEBYSIDE_CROSSEYED:
490
- case Camera.RIG_MODE_STEREOSCOPIC_OVERUNDER:
491
- case Camera.RIG_MODE_STEREOSCOPIC_INTERLACED: {
492
- //provisionnaly using _cameraRigParams.stereoHalfAngle instead of calculations based on _cameraRigParams.interaxialDistance:
493
- const leftSign = this.cameraRigMode === Camera.RIG_MODE_STEREOSCOPIC_SIDEBYSIDE_CROSSEYED ? 1 : -1;
494
- const rightSign = this.cameraRigMode === Camera.RIG_MODE_STEREOSCOPIC_SIDEBYSIDE_CROSSEYED ? -1 : 1;
495
- this._getRigCamPositionAndTarget(this._cameraRigParams.stereoHalfAngle * leftSign, camLeft);
496
- this._getRigCamPositionAndTarget(this._cameraRigParams.stereoHalfAngle * rightSign, camRight);
497
- break;
446
+ /** @internal */
447
+ _getViewMatrix() {
448
+ if (this.lockedTarget) {
449
+ this.setTarget(this._getLockedTargetPosition());
450
+ }
451
+ // Compute
452
+ this._updateCameraRotationMatrix();
453
+ // Apply the changed rotation to the upVector
454
+ if (this.rotationQuaternion && this._cachedQuaternionRotationZ != this.rotationQuaternion.z) {
455
+ this._rotateUpVectorWithCameraRotationMatrix();
456
+ this._cachedQuaternionRotationZ = this.rotationQuaternion.z;
457
+ }
458
+ else if (this._cachedRotationZ !== this.rotation.z) {
459
+ this._rotateUpVectorWithCameraRotationMatrix();
460
+ this._cachedRotationZ = this.rotation.z;
461
+ }
462
+ Vector3.TransformCoordinatesToRef(this._referencePoint, this._cameraRotationMatrix, this._transformedReferencePoint);
463
+ // Computing target and final matrix
464
+ this.position.addToRef(this._transformedReferencePoint, this._currentTarget);
465
+ if (this.updateUpVectorFromRotation) {
466
+ if (this.rotationQuaternion) {
467
+ Axis.Y.rotateByQuaternionToRef(this.rotationQuaternion, this.upVector);
468
+ }
469
+ else {
470
+ Quaternion.FromEulerVectorToRef(this.rotation, TmpQuaternion);
471
+ Axis.Y.rotateByQuaternionToRef(TmpQuaternion, this.upVector);
472
+ }
473
+ }
474
+ this._computeViewMatrix(this.position, this._currentTarget, this.upVector);
475
+ return this._viewMatrix;
498
476
  }
499
- case Camera.RIG_MODE_VR:
500
- if (camLeft.rotationQuaternion && camRight.rotationQuaternion && this.rotationQuaternion) {
501
- camLeft.rotationQuaternion.copyFrom(this.rotationQuaternion);
502
- camRight.rotationQuaternion.copyFrom(this.rotationQuaternion);
477
+ _computeViewMatrix(position, target, up) {
478
+ if (this.getScene().useRightHandedSystem) {
479
+ Matrix.LookAtRHToRef(position, target, up, this._viewMatrix);
503
480
  }
504
481
  else {
505
- camLeft.rotation.copyFrom(this.rotation);
506
- camRight.rotation.copyFrom(this.rotation);
507
- }
508
- camLeft.position.copyFrom(this.position);
509
- camRight.position.copyFrom(this.position);
510
- break;
511
- }
512
- super._updateRigCameras();
513
- }
514
- _getRigCamPositionAndTarget(halfSpace, rigCamera) {
515
- const target = this.getTarget();
516
- target.subtractToRef(this.position, TargetCamera._TargetFocalPoint);
517
- TargetCamera._TargetFocalPoint.normalize().scaleInPlace(this._initialFocalDistance);
518
- const newFocalTarget = TargetCamera._TargetFocalPoint.addInPlace(this.position);
519
- Matrix.TranslationToRef(-newFocalTarget.x, -newFocalTarget.y, -newFocalTarget.z, TargetCamera._TargetTransformMatrix);
520
- TargetCamera._TargetTransformMatrix.multiplyToRef(Matrix.RotationAxis(rigCamera.upVector, halfSpace), TargetCamera._RigCamTransformMatrix);
521
- Matrix.TranslationToRef(newFocalTarget.x, newFocalTarget.y, newFocalTarget.z, TargetCamera._TargetTransformMatrix);
522
- TargetCamera._RigCamTransformMatrix.multiplyToRef(TargetCamera._TargetTransformMatrix, TargetCamera._RigCamTransformMatrix);
523
- Vector3.TransformCoordinatesToRef(this.position, TargetCamera._RigCamTransformMatrix, rigCamera.position);
524
- rigCamera.setTarget(newFocalTarget);
525
- }
526
- /**
527
- * Gets the current object class name.
528
- * @returns the class name
529
- */
530
- getClassName() {
531
- return "TargetCamera";
532
- }
533
- }
534
- TargetCamera._RigCamTransformMatrix = new Matrix();
535
- TargetCamera._TargetTransformMatrix = new Matrix();
536
- TargetCamera._TargetFocalPoint = new Vector3();
537
- __decorate([
538
- serialize()
539
- ], TargetCamera.prototype, "updateUpVectorFromRotation", void 0);
540
- __decorate([
541
- serializeAsVector3()
542
- ], TargetCamera.prototype, "rotation", void 0);
543
- __decorate([
544
- serialize()
545
- ], TargetCamera.prototype, "speed", void 0);
546
- __decorate([
547
- serializeAsMeshReference("lockedTargetId")
548
- ], TargetCamera.prototype, "lockedTarget", void 0);
482
+ Matrix.LookAtLHToRef(position, target, up, this._viewMatrix);
483
+ }
484
+ if (this.parent) {
485
+ const parentWorldMatrix = this.parent.getWorldMatrix();
486
+ this._viewMatrix.invert();
487
+ this._viewMatrix.multiplyToRef(parentWorldMatrix, this._viewMatrix);
488
+ this._viewMatrix.invert();
489
+ this._markSyncedWithParent();
490
+ }
491
+ }
492
+ /**
493
+ * @internal
494
+ */
495
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
496
+ createRigCamera(name, cameraIndex) {
497
+ if (this.cameraRigMode !== Camera.RIG_MODE_NONE) {
498
+ const rigCamera = new _a(name, this.position.clone(), this.getScene());
499
+ rigCamera.isRigCamera = true;
500
+ rigCamera.rigParent = this;
501
+ if (this.cameraRigMode === Camera.RIG_MODE_VR) {
502
+ if (!this.rotationQuaternion) {
503
+ this.rotationQuaternion = new Quaternion();
504
+ }
505
+ rigCamera._cameraRigParams = {};
506
+ rigCamera.rotationQuaternion = new Quaternion();
507
+ }
508
+ rigCamera.mode = this.mode;
509
+ rigCamera.orthoLeft = this.orthoLeft;
510
+ rigCamera.orthoRight = this.orthoRight;
511
+ rigCamera.orthoTop = this.orthoTop;
512
+ rigCamera.orthoBottom = this.orthoBottom;
513
+ return rigCamera;
514
+ }
515
+ return null;
516
+ }
517
+ /**
518
+ * @internal
519
+ */
520
+ _updateRigCameras() {
521
+ const camLeft = this._rigCameras[0];
522
+ const camRight = this._rigCameras[1];
523
+ this.computeWorldMatrix();
524
+ switch (this.cameraRigMode) {
525
+ case Camera.RIG_MODE_STEREOSCOPIC_ANAGLYPH:
526
+ case Camera.RIG_MODE_STEREOSCOPIC_SIDEBYSIDE_PARALLEL:
527
+ case Camera.RIG_MODE_STEREOSCOPIC_SIDEBYSIDE_CROSSEYED:
528
+ case Camera.RIG_MODE_STEREOSCOPIC_OVERUNDER:
529
+ case Camera.RIG_MODE_STEREOSCOPIC_INTERLACED: {
530
+ //provisionnaly using _cameraRigParams.stereoHalfAngle instead of calculations based on _cameraRigParams.interaxialDistance:
531
+ const leftSign = this.cameraRigMode === Camera.RIG_MODE_STEREOSCOPIC_SIDEBYSIDE_CROSSEYED ? 1 : -1;
532
+ const rightSign = this.cameraRigMode === Camera.RIG_MODE_STEREOSCOPIC_SIDEBYSIDE_CROSSEYED ? -1 : 1;
533
+ this._getRigCamPositionAndTarget(this._cameraRigParams.stereoHalfAngle * leftSign, camLeft);
534
+ this._getRigCamPositionAndTarget(this._cameraRigParams.stereoHalfAngle * rightSign, camRight);
535
+ break;
536
+ }
537
+ case Camera.RIG_MODE_VR:
538
+ if (camLeft.rotationQuaternion && camRight.rotationQuaternion && this.rotationQuaternion) {
539
+ camLeft.rotationQuaternion.copyFrom(this.rotationQuaternion);
540
+ camRight.rotationQuaternion.copyFrom(this.rotationQuaternion);
541
+ }
542
+ else {
543
+ camLeft.rotation.copyFrom(this.rotation);
544
+ camRight.rotation.copyFrom(this.rotation);
545
+ }
546
+ camLeft.position.copyFrom(this.position);
547
+ camRight.position.copyFrom(this.position);
548
+ break;
549
+ }
550
+ super._updateRigCameras();
551
+ }
552
+ _getRigCamPositionAndTarget(halfSpace, rigCamera) {
553
+ const target = this.getTarget();
554
+ target.subtractToRef(this.position, _a._TargetFocalPoint);
555
+ _a._TargetFocalPoint.normalize().scaleInPlace(this._initialFocalDistance);
556
+ const newFocalTarget = _a._TargetFocalPoint.addInPlace(this.position);
557
+ Matrix.TranslationToRef(-newFocalTarget.x, -newFocalTarget.y, -newFocalTarget.z, _a._TargetTransformMatrix);
558
+ _a._TargetTransformMatrix.multiplyToRef(Matrix.RotationAxis(rigCamera.upVector, halfSpace), _a._RigCamTransformMatrix);
559
+ Matrix.TranslationToRef(newFocalTarget.x, newFocalTarget.y, newFocalTarget.z, _a._TargetTransformMatrix);
560
+ _a._RigCamTransformMatrix.multiplyToRef(_a._TargetTransformMatrix, _a._RigCamTransformMatrix);
561
+ Vector3.TransformCoordinatesToRef(this.position, _a._RigCamTransformMatrix, rigCamera.position);
562
+ rigCamera.setTarget(newFocalTarget);
563
+ }
564
+ /**
565
+ * Gets the current object class name.
566
+ * @returns the class name
567
+ */
568
+ getClassName() {
569
+ return "TargetCamera";
570
+ }
571
+ },
572
+ (() => {
573
+ const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
574
+ _updateUpVectorFromRotation_decorators = [serialize()];
575
+ _rotation_decorators = [serializeAsVector3()];
576
+ _speed_decorators = [serialize()];
577
+ _lockedTarget_decorators = [serializeAsMeshReference("lockedTargetId")];
578
+ __esDecorate(null, null, _updateUpVectorFromRotation_decorators, { kind: "field", name: "updateUpVectorFromRotation", static: false, private: false, access: { has: obj => "updateUpVectorFromRotation" in obj, get: obj => obj.updateUpVectorFromRotation, set: (obj, value) => { obj.updateUpVectorFromRotation = value; } }, metadata: _metadata }, _updateUpVectorFromRotation_initializers, _updateUpVectorFromRotation_extraInitializers);
579
+ __esDecorate(null, null, _rotation_decorators, { kind: "field", name: "rotation", static: false, private: false, access: { has: obj => "rotation" in obj, get: obj => obj.rotation, set: (obj, value) => { obj.rotation = value; } }, metadata: _metadata }, _rotation_initializers, _rotation_extraInitializers);
580
+ __esDecorate(null, null, _speed_decorators, { kind: "field", name: "speed", static: false, private: false, access: { has: obj => "speed" in obj, get: obj => obj.speed, set: (obj, value) => { obj.speed = value; } }, metadata: _metadata }, _speed_initializers, _speed_extraInitializers);
581
+ __esDecorate(null, null, _lockedTarget_decorators, { kind: "field", name: "lockedTarget", static: false, private: false, access: { has: obj => "lockedTarget" in obj, get: obj => obj.lockedTarget, set: (obj, value) => { obj.lockedTarget = value; } }, metadata: _metadata }, _lockedTarget_initializers, _lockedTarget_extraInitializers);
582
+ if (_metadata) Object.defineProperty(_a, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
583
+ })(),
584
+ _a._RigCamTransformMatrix = new Matrix(),
585
+ _a._TargetTransformMatrix = new Matrix(),
586
+ _a._TargetFocalPoint = new Vector3(),
587
+ _a;
588
+ })();
589
+ export { TargetCamera };
549
590
  let _Registered = false;
550
591
  /**
551
592
  * Register side effects for targetCamera.