@babylonjs/core 5.45.2 → 5.47.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (563) hide show
  1. package/Actions/actionManager.js +6 -1
  2. package/Actions/actionManager.js.map +1 -1
  3. package/Actions/condition.js +23 -23
  4. package/Actions/condition.js.map +1 -1
  5. package/Animations/animatable.js +48 -48
  6. package/Animations/animatable.js.map +1 -1
  7. package/Animations/animation.js +53 -53
  8. package/Animations/animation.js.map +1 -1
  9. package/Animations/animationGroup.js +53 -53
  10. package/Animations/animationGroup.js.map +1 -1
  11. package/Animations/runtimeAnimation.js +36 -36
  12. package/Animations/runtimeAnimation.js.map +1 -1
  13. package/Audio/audioEngine.js +14 -14
  14. package/Audio/audioEngine.js.map +1 -1
  15. package/Audio/audioSceneComponent.js +14 -14
  16. package/Audio/audioSceneComponent.js.map +1 -1
  17. package/Audio/sound.js +47 -47
  18. package/Audio/sound.js.map +1 -1
  19. package/Behaviors/Meshes/baseSixDofDragBehavior.d.ts +1 -1
  20. package/Behaviors/Meshes/fadeInOutBehavior.js +11 -11
  21. package/Behaviors/Meshes/fadeInOutBehavior.js.map +1 -1
  22. package/Behaviors/Meshes/pointerDragBehavior.js +34 -34
  23. package/Behaviors/Meshes/pointerDragBehavior.js.map +1 -1
  24. package/Bones/bone.js +15 -15
  25. package/Bones/bone.js.map +1 -1
  26. package/Bones/boneIKController.js +9 -9
  27. package/Bones/boneIKController.js.map +1 -1
  28. package/Bones/boneLookController.js +50 -50
  29. package/Bones/boneLookController.js.map +1 -1
  30. package/Bones/skeleton.js +35 -35
  31. package/Bones/skeleton.js.map +1 -1
  32. package/Buffers/buffer.js +14 -14
  33. package/Buffers/buffer.js.map +1 -1
  34. package/Buffers/dataBuffer.js +6 -6
  35. package/Buffers/dataBuffer.js.map +1 -1
  36. package/Cameras/Inputs/freeCameraDeviceOrientationInput.js +42 -42
  37. package/Cameras/Inputs/freeCameraDeviceOrientationInput.js.map +1 -1
  38. package/Cameras/Stereoscopic/stereoscopicScreenUniversalCamera.js +18 -18
  39. package/Cameras/Stereoscopic/stereoscopicScreenUniversalCamera.js.map +1 -1
  40. package/Cameras/VR/vrExperienceHelper.js +178 -178
  41. package/Cameras/VR/vrExperienceHelper.js.map +1 -1
  42. package/Cameras/arcRotateCamera.js +176 -176
  43. package/Cameras/arcRotateCamera.js.map +1 -1
  44. package/Cameras/camera.js +90 -90
  45. package/Cameras/camera.js.map +1 -1
  46. package/Cameras/flyCamera.js +82 -82
  47. package/Cameras/flyCamera.js.map +1 -1
  48. package/Cameras/freeCamera.js +54 -54
  49. package/Cameras/freeCamera.js.map +1 -1
  50. package/Compute/computeShader.js +12 -12
  51. package/Compute/computeShader.js.map +1 -1
  52. package/Culling/ray.d.ts +1 -1
  53. package/Debug/axesViewer.js +12 -12
  54. package/Debug/axesViewer.js.map +1 -1
  55. package/Debug/debugLayer.js +21 -21
  56. package/Debug/debugLayer.js.map +1 -1
  57. package/Debug/directionalLightFrustumViewer.js +20 -20
  58. package/Debug/directionalLightFrustumViewer.js.map +1 -1
  59. package/Debug/physicsViewer.js +3 -3
  60. package/Debug/physicsViewer.js.map +1 -1
  61. package/Debug/rayHelper.js +10 -10
  62. package/Debug/rayHelper.js.map +1 -1
  63. package/Debug/skeletonViewer.js +81 -81
  64. package/Debug/skeletonViewer.js.map +1 -1
  65. package/DeviceInput/InputDevices/deviceSource.d.ts +1 -1
  66. package/DeviceInput/InputDevices/deviceSourceManager.js +31 -31
  67. package/DeviceInput/InputDevices/deviceSourceManager.js.map +1 -1
  68. package/DeviceInput/InputDevices/deviceTypes.d.ts +1 -1
  69. package/DeviceInput/eventFactory.d.ts +1 -1
  70. package/DeviceInput/eventFactory.js +4 -4
  71. package/DeviceInput/eventFactory.js.map +1 -1
  72. package/DeviceInput/internalDeviceSourceManager.d.ts +2 -2
  73. package/DeviceInput/webDeviceInputSystem.js +2 -2
  74. package/DeviceInput/webDeviceInputSystem.js.map +1 -1
  75. package/Engines/Extensions/engine.computeShader.d.ts +3 -3
  76. package/Engines/Extensions/engine.multiRender.js +1 -1
  77. package/Engines/Extensions/engine.multiRender.js.map +1 -1
  78. package/Engines/Extensions/engine.query.d.ts +1 -1
  79. package/Engines/Extensions/engine.renderTarget.d.ts +1 -1
  80. package/Engines/Extensions/engine.renderTarget.js +1 -1
  81. package/Engines/Extensions/engine.renderTarget.js.map +1 -1
  82. package/Engines/Native/nativeDataStream.d.ts +1 -1
  83. package/Engines/Native/nativeHardwareTexture.js +3 -3
  84. package/Engines/Native/nativeHardwareTexture.js.map +1 -1
  85. package/Engines/Native/nativeInterfaces.d.ts +5 -5
  86. package/Engines/Native/nativePipelineContext.js +7 -7
  87. package/Engines/Native/nativePipelineContext.js.map +1 -1
  88. package/Engines/Native/nativeRenderTargetWrapper.js +6 -6
  89. package/Engines/Native/nativeRenderTargetWrapper.js.map +1 -1
  90. package/Engines/Processors/shaderCodeInliner.js +4 -4
  91. package/Engines/Processors/shaderCodeInliner.js.map +1 -1
  92. package/Engines/Processors/shaderProcessingOptions.d.ts +1 -1
  93. package/Engines/WebGL/webGLHardwareTexture.js +3 -3
  94. package/Engines/WebGL/webGLHardwareTexture.js.map +1 -1
  95. package/Engines/WebGPU/webgpuBufferManager.js +3 -3
  96. package/Engines/WebGPU/webgpuBufferManager.js.map +1 -1
  97. package/Engines/WebGPU/webgpuCacheBindGroups.js +6 -6
  98. package/Engines/WebGPU/webgpuCacheBindGroups.js.map +1 -1
  99. package/Engines/WebGPU/webgpuCacheRenderPipelineTree.js +5 -5
  100. package/Engines/WebGPU/webgpuCacheRenderPipelineTree.js.map +1 -1
  101. package/Engines/WebGPU/webgpuClearQuad.js +11 -11
  102. package/Engines/WebGPU/webgpuClearQuad.js.map +1 -1
  103. package/Engines/WebGPU/webgpuComputeContext.js +7 -7
  104. package/Engines/WebGPU/webgpuComputeContext.js.map +1 -1
  105. package/Engines/WebGPU/webgpuComputePipelineContext.js +4 -4
  106. package/Engines/WebGPU/webgpuComputePipelineContext.js.map +1 -1
  107. package/Engines/WebGPU/webgpuDrawContext.js +7 -7
  108. package/Engines/WebGPU/webgpuDrawContext.js.map +1 -1
  109. package/Engines/WebGPU/webgpuHardwareTexture.js +9 -9
  110. package/Engines/WebGPU/webgpuHardwareTexture.js.map +1 -1
  111. package/Engines/WebGPU/webgpuMaterialContext.js +5 -5
  112. package/Engines/WebGPU/webgpuMaterialContext.js.map +1 -1
  113. package/Engines/WebGPU/webgpuOcclusionQuery.js +10 -10
  114. package/Engines/WebGPU/webgpuOcclusionQuery.js.map +1 -1
  115. package/Engines/WebGPU/webgpuPipelineContext.js +6 -6
  116. package/Engines/WebGPU/webgpuPipelineContext.js.map +1 -1
  117. package/Engines/WebGPU/webgpuQuerySet.js +3 -3
  118. package/Engines/WebGPU/webgpuQuerySet.js.map +1 -1
  119. package/Engines/WebGPU/webgpuShaderProcessingContext.js +3 -3
  120. package/Engines/WebGPU/webgpuShaderProcessingContext.js.map +1 -1
  121. package/Engines/WebGPU/webgpuTextureHelper.js +3 -3
  122. package/Engines/WebGPU/webgpuTextureHelper.js.map +1 -1
  123. package/Engines/WebGPU/webgpuTimestampQuery.js +3 -3
  124. package/Engines/WebGPU/webgpuTimestampQuery.js.map +1 -1
  125. package/Engines/engine.js +134 -134
  126. package/Engines/engine.js.map +1 -1
  127. package/Engines/nativeEngine.js +6 -6
  128. package/Engines/nativeEngine.js.map +1 -1
  129. package/Engines/nullEngine.js +25 -25
  130. package/Engines/nullEngine.js.map +1 -1
  131. package/Engines/renderTargetWrapper.js +25 -25
  132. package/Engines/renderTargetWrapper.js.map +1 -1
  133. package/Engines/thinEngine.js +243 -243
  134. package/Engines/thinEngine.js.map +1 -1
  135. package/Engines/webgpuEngine.js +132 -132
  136. package/Engines/webgpuEngine.js.map +1 -1
  137. package/Events/keyboardEvents.js +10 -10
  138. package/Events/keyboardEvents.js.map +1 -1
  139. package/Events/pointerEvents.js +10 -10
  140. package/Events/pointerEvents.js.map +1 -1
  141. package/Gamepads/Controllers/poseEnabledController.js +9 -9
  142. package/Gamepads/Controllers/poseEnabledController.js.map +1 -1
  143. package/Gamepads/Controllers/webVRController.js +13 -13
  144. package/Gamepads/Controllers/webVRController.js.map +1 -1
  145. package/Gamepads/gamepad.js +20 -20
  146. package/Gamepads/gamepad.js.map +1 -1
  147. package/Gizmos/axisDragGizmo.js +45 -45
  148. package/Gizmos/axisDragGizmo.js.map +1 -1
  149. package/Gizmos/axisScaleGizmo.js +12 -12
  150. package/Gizmos/axisScaleGizmo.js.map +1 -1
  151. package/Gizmos/boundingBoxGizmo.js +74 -74
  152. package/Gizmos/boundingBoxGizmo.js.map +1 -1
  153. package/Gizmos/gizmo.js +34 -34
  154. package/Gizmos/gizmo.js.map +1 -1
  155. package/Gizmos/gizmoManager.js +40 -40
  156. package/Gizmos/gizmoManager.js.map +1 -1
  157. package/Gizmos/planeDragGizmo.js +23 -23
  158. package/Gizmos/planeDragGizmo.js.map +1 -1
  159. package/Gizmos/planeRotationGizmo.js +12 -12
  160. package/Gizmos/planeRotationGizmo.js.map +1 -1
  161. package/Gizmos/positionGizmo.js +40 -40
  162. package/Gizmos/positionGizmo.js.map +1 -1
  163. package/Gizmos/rotationGizmo.js +47 -47
  164. package/Gizmos/rotationGizmo.js.map +1 -1
  165. package/Gizmos/scaleGizmo.js +41 -41
  166. package/Gizmos/scaleGizmo.js.map +1 -1
  167. package/Helpers/environmentHelper.js +18 -18
  168. package/Helpers/environmentHelper.js.map +1 -1
  169. package/Helpers/textureDome.js +96 -96
  170. package/Helpers/textureDome.js.map +1 -1
  171. package/IAccessibilityTag.d.ts +2 -2
  172. package/Inputs/scene.inputManager.d.ts +4 -3
  173. package/Inputs/scene.inputManager.js +12 -11
  174. package/Inputs/scene.inputManager.js.map +1 -1
  175. package/Instrumentation/engineInstrumentation.js +21 -21
  176. package/Instrumentation/engineInstrumentation.js.map +1 -1
  177. package/Instrumentation/sceneInstrumentation.js +90 -90
  178. package/Instrumentation/sceneInstrumentation.js.map +1 -1
  179. package/Layers/effectLayer.js +48 -48
  180. package/Layers/effectLayer.js.map +1 -1
  181. package/Layers/glowLayer.js +32 -32
  182. package/Layers/glowLayer.js.map +1 -1
  183. package/Layers/highlightLayer.js +26 -26
  184. package/Layers/highlightLayer.js.map +1 -1
  185. package/Layers/layer.js +40 -40
  186. package/Layers/layer.js.map +1 -1
  187. package/LensFlares/lensFlare.js +15 -15
  188. package/LensFlares/lensFlare.js.map +1 -1
  189. package/LensFlares/lensFlareSystem.js +4 -4
  190. package/LensFlares/lensFlareSystem.js.map +1 -1
  191. package/Lights/Shadows/cascadedShadowGenerator.js +18 -18
  192. package/Lights/Shadows/cascadedShadowGenerator.js.map +1 -1
  193. package/Lights/Shadows/shadowGenerator.js +115 -115
  194. package/Lights/Shadows/shadowGenerator.js.map +1 -1
  195. package/Lights/directionalLight.js +31 -31
  196. package/Lights/directionalLight.js.map +1 -1
  197. package/Lights/light.js +72 -72
  198. package/Lights/light.js.map +1 -1
  199. package/Lights/pointLight.js +18 -18
  200. package/Lights/pointLight.js.map +1 -1
  201. package/Lights/spotLight.js +30 -30
  202. package/Lights/spotLight.js.map +1 -1
  203. package/Loading/sceneLoader.d.ts +1 -1
  204. package/Materials/Background/backgroundMaterial.js +124 -124
  205. package/Materials/Background/backgroundMaterial.js.map +1 -1
  206. package/Materials/Node/Blocks/Dual/imageSourceBlock.js +8 -8
  207. package/Materials/Node/Blocks/Dual/imageSourceBlock.js.map +1 -1
  208. package/Materials/Node/Blocks/Dual/lightBlock.js +14 -14
  209. package/Materials/Node/Blocks/Dual/lightBlock.js.map +1 -1
  210. package/Materials/Node/Blocks/Dual/reflectionTextureBaseBlock.js +9 -9
  211. package/Materials/Node/Blocks/Dual/reflectionTextureBaseBlock.js.map +1 -1
  212. package/Materials/Node/Blocks/Dual/textureBlock.js +26 -26
  213. package/Materials/Node/Blocks/Dual/textureBlock.js.map +1 -1
  214. package/Materials/Node/Blocks/Input/inputBlock.js +34 -34
  215. package/Materials/Node/Blocks/Input/inputBlock.js.map +1 -1
  216. package/Materials/Node/Blocks/PBR/pbrMetallicRoughnessBlock.js +14 -14
  217. package/Materials/Node/Blocks/PBR/pbrMetallicRoughnessBlock.js.map +1 -1
  218. package/Materials/Node/Blocks/PBR/reflectionBlock.js +16 -16
  219. package/Materials/Node/Blocks/PBR/reflectionBlock.js.map +1 -1
  220. package/Materials/Node/Blocks/customBlock.js +7 -7
  221. package/Materials/Node/Blocks/customBlock.js.map +1 -1
  222. package/Materials/Node/Blocks/gradientBlock.js +13 -13
  223. package/Materials/Node/Blocks/gradientBlock.js.map +1 -1
  224. package/Materials/Node/Blocks/triPlanarBlock.js +30 -30
  225. package/Materials/Node/Blocks/triPlanarBlock.js.map +1 -1
  226. package/Materials/Node/nodeMaterial.d.ts +1 -1
  227. package/Materials/Node/nodeMaterial.js +60 -60
  228. package/Materials/Node/nodeMaterial.js.map +1 -1
  229. package/Materials/Node/nodeMaterialBlock.js +35 -35
  230. package/Materials/Node/nodeMaterialBlock.js.map +1 -1
  231. package/Materials/Node/nodeMaterialBlockConnectionPoint.js +50 -50
  232. package/Materials/Node/nodeMaterialBlockConnectionPoint.js.map +1 -1
  233. package/Materials/PBR/pbrAnisotropicConfiguration.js +5 -5
  234. package/Materials/PBR/pbrAnisotropicConfiguration.js.map +1 -1
  235. package/Materials/PBR/pbrBRDFConfiguration.js +4 -4
  236. package/Materials/PBR/pbrBRDFConfiguration.js.map +1 -1
  237. package/Materials/PBR/pbrBaseMaterial.js +53 -55
  238. package/Materials/PBR/pbrBaseMaterial.js.map +1 -1
  239. package/Materials/PBR/pbrBaseSimpleMaterial.js +17 -17
  240. package/Materials/PBR/pbrBaseSimpleMaterial.js.map +1 -1
  241. package/Materials/PBR/pbrClearCoatConfiguration.js +5 -5
  242. package/Materials/PBR/pbrClearCoatConfiguration.js.map +1 -1
  243. package/Materials/PBR/pbrIridescenceConfiguration.js +5 -5
  244. package/Materials/PBR/pbrIridescenceConfiguration.js.map +1 -1
  245. package/Materials/PBR/pbrMaterial.js +209 -209
  246. package/Materials/PBR/pbrMaterial.js.map +1 -1
  247. package/Materials/PBR/pbrSheenConfiguration.js +5 -5
  248. package/Materials/PBR/pbrSheenConfiguration.js.map +1 -1
  249. package/Materials/PBR/pbrSpecularGlossinessMaterial.js +6 -6
  250. package/Materials/PBR/pbrSpecularGlossinessMaterial.js.map +1 -1
  251. package/Materials/PBR/pbrSubSurfaceConfiguration.js +51 -51
  252. package/Materials/PBR/pbrSubSurfaceConfiguration.js.map +1 -1
  253. package/Materials/Textures/baseTexture.js +99 -99
  254. package/Materials/Textures/baseTexture.js.map +1 -1
  255. package/Materials/Textures/cubeTexture.js +61 -61
  256. package/Materials/Textures/cubeTexture.js.map +1 -1
  257. package/Materials/Textures/externalTexture.js +16 -16
  258. package/Materials/Textures/externalTexture.js.map +1 -1
  259. package/Materials/Textures/hdrCubeTexture.js +44 -44
  260. package/Materials/Textures/hdrCubeTexture.js.map +1 -1
  261. package/Materials/Textures/internalTexture.js +31 -31
  262. package/Materials/Textures/internalTexture.js.map +1 -1
  263. package/Materials/Textures/mirrorTexture.js +73 -73
  264. package/Materials/Textures/mirrorTexture.js.map +1 -1
  265. package/Materials/Textures/multiRenderTarget.js +47 -47
  266. package/Materials/Textures/multiRenderTarget.js.map +1 -1
  267. package/Materials/Textures/rawTexture2DArray.js +6 -6
  268. package/Materials/Textures/rawTexture2DArray.js.map +1 -1
  269. package/Materials/Textures/renderTargetTexture.js +142 -142
  270. package/Materials/Textures/renderTargetTexture.js.map +1 -1
  271. package/Materials/Textures/texture.d.ts +1 -1
  272. package/Materials/Textures/texture.js +26 -26
  273. package/Materials/Textures/texture.js.map +1 -1
  274. package/Materials/Textures/textureCreationOptions.d.ts +1 -1
  275. package/Materials/Textures/textureSampler.js +20 -20
  276. package/Materials/Textures/textureSampler.js.map +1 -1
  277. package/Materials/Textures/thinRenderTargetTexture.js +6 -6
  278. package/Materials/Textures/thinRenderTargetTexture.js.map +1 -1
  279. package/Materials/Textures/thinTexture.js +39 -39
  280. package/Materials/Textures/thinTexture.js.map +1 -1
  281. package/Materials/Textures/videoTexture.js +41 -41
  282. package/Materials/Textures/videoTexture.js.map +1 -1
  283. package/Materials/drawWrapper.js +6 -6
  284. package/Materials/drawWrapper.js.map +1 -1
  285. package/Materials/effect.js +18 -18
  286. package/Materials/effect.js.map +1 -1
  287. package/Materials/effectRenderer.js +9 -9
  288. package/Materials/effectRenderer.js.map +1 -1
  289. package/Materials/fresnelParameters.d.ts +2 -2
  290. package/Materials/fresnelParameters.js +13 -13
  291. package/Materials/fresnelParameters.js.map +1 -1
  292. package/Materials/material.detailMapConfiguration.js +5 -5
  293. package/Materials/material.detailMapConfiguration.js.map +1 -1
  294. package/Materials/material.js +223 -223
  295. package/Materials/material.js.map +1 -1
  296. package/Materials/materialPluginBase.js +5 -5
  297. package/Materials/materialPluginBase.js.map +1 -1
  298. package/Materials/materialPluginEvent.d.ts +14 -14
  299. package/Materials/materialPluginManager.d.ts +1 -1
  300. package/Materials/multiMaterial.js +16 -16
  301. package/Materials/multiMaterial.js.map +1 -1
  302. package/Materials/shadowDepthWrapper.js +14 -14
  303. package/Materials/shadowDepthWrapper.js.map +1 -1
  304. package/Materials/standardMaterial.js +100 -100
  305. package/Materials/standardMaterial.js.map +1 -1
  306. package/Materials/uniformBufferEffectCommonAccessor.js +3 -3
  307. package/Materials/uniformBufferEffectCommonAccessor.js.map +1 -1
  308. package/Maths/math.functions.js +2 -0
  309. package/Maths/math.functions.js.map +1 -1
  310. package/Maths/math.path.js +11 -11
  311. package/Maths/math.path.js.map +1 -1
  312. package/Maths/math.vector.d.ts +27 -7
  313. package/Maths/math.vector.js +75 -48
  314. package/Maths/math.vector.js.map +1 -1
  315. package/Meshes/Builders/goldbergBuilder.d.ts +2 -2
  316. package/Meshes/Compression/dracoCompression.js +23 -23
  317. package/Meshes/Compression/dracoCompression.js.map +1 -1
  318. package/Meshes/Compression/meshoptCompression.js +9 -9
  319. package/Meshes/Compression/meshoptCompression.js.map +1 -1
  320. package/Meshes/abstractMesh.js +179 -179
  321. package/Meshes/abstractMesh.js.map +1 -1
  322. package/Meshes/geometry.js +32 -32
  323. package/Meshes/geometry.js.map +1 -1
  324. package/Meshes/goldbergMesh.d.ts +1 -1
  325. package/Meshes/linesMesh.js +3 -3
  326. package/Meshes/linesMesh.js.map +1 -1
  327. package/Meshes/mesh.js +166 -166
  328. package/Meshes/mesh.js.map +1 -1
  329. package/Meshes/mesh.vertexData.js.map +1 -1
  330. package/Meshes/polygonMesh.js +5 -5
  331. package/Meshes/polygonMesh.js.map +1 -1
  332. package/Meshes/subMesh.js +59 -59
  333. package/Meshes/subMesh.js.map +1 -1
  334. package/Meshes/transformNode.js +52 -52
  335. package/Meshes/transformNode.js.map +1 -1
  336. package/Misc/PerformanceViewer/performanceViewerCollectionStrategies.d.ts +1 -1
  337. package/Misc/PerformanceViewer/performanceViewerCollector.js +12 -12
  338. package/Misc/PerformanceViewer/performanceViewerCollector.js.map +1 -1
  339. package/Misc/arrayTools.d.ts +1 -1
  340. package/Misc/copyTextureToTexture.js +3 -3
  341. package/Misc/copyTextureToTexture.js.map +1 -1
  342. package/Misc/coroutine.d.ts +5 -5
  343. package/Misc/deferred.js +9 -9
  344. package/Misc/deferred.js.map +1 -1
  345. package/Misc/depthReducer.js +7 -7
  346. package/Misc/depthReducer.js.map +1 -1
  347. package/Misc/environmentTextureTools.d.ts +1 -1
  348. package/Misc/error.d.ts +1 -1
  349. package/Misc/fileTools.d.ts +5 -5
  350. package/Misc/filesInput.js +6 -6
  351. package/Misc/filesInput.js.map +1 -1
  352. package/Misc/khronosTextureContainer2.js +9 -9
  353. package/Misc/khronosTextureContainer2.js.map +1 -1
  354. package/Misc/observable.js +12 -12
  355. package/Misc/observable.js.map +1 -1
  356. package/Misc/perfCounter.js +16 -16
  357. package/Misc/perfCounter.js.map +1 -1
  358. package/Misc/sceneOptimizer.js +76 -76
  359. package/Misc/sceneOptimizer.js.map +1 -1
  360. package/Misc/stringDictionary.d.ts +1 -1
  361. package/Misc/trajectoryClassifier.js +67 -67
  362. package/Misc/trajectoryClassifier.js.map +1 -1
  363. package/Misc/videoRecorder.js +15 -15
  364. package/Misc/videoRecorder.js.map +1 -1
  365. package/Misc/virtualJoystick.js +12 -12
  366. package/Misc/virtualJoystick.js.map +1 -1
  367. package/Morph/morphTarget.js +28 -28
  368. package/Morph/morphTarget.js.map +1 -1
  369. package/Morph/morphTargetManager.js +18 -18
  370. package/Morph/morphTargetManager.js.map +1 -1
  371. package/Offline/database.js +12 -12
  372. package/Offline/database.js.map +1 -1
  373. package/Particles/EmitterTypes/coneParticleEmitter.js +25 -25
  374. package/Particles/EmitterTypes/coneParticleEmitter.js.map +1 -1
  375. package/Particles/EmitterTypes/meshParticleEmitter.js +20 -20
  376. package/Particles/EmitterTypes/meshParticleEmitter.js.map +1 -1
  377. package/Particles/baseParticleSystem.js +232 -232
  378. package/Particles/baseParticleSystem.js.map +1 -1
  379. package/Particles/cloudPoint.js +9 -9
  380. package/Particles/cloudPoint.js.map +1 -1
  381. package/Particles/gpuParticleSystem.js +123 -123
  382. package/Particles/gpuParticleSystem.js.map +1 -1
  383. package/Particles/particleSystem.js +102 -102
  384. package/Particles/particleSystem.js.map +1 -1
  385. package/Particles/particleSystemComponent.js +5 -0
  386. package/Particles/particleSystemComponent.js.map +1 -1
  387. package/Particles/pointsCloudSystem.js +18 -18
  388. package/Particles/pointsCloudSystem.js.map +1 -1
  389. package/Particles/solidParticle.js +23 -23
  390. package/Particles/solidParticle.js.map +1 -1
  391. package/Physics/index.d.ts +1 -0
  392. package/Physics/index.js +1 -0
  393. package/Physics/index.js.map +1 -1
  394. package/Physics/v1/physicsEngine.js +14 -14
  395. package/Physics/v1/physicsEngine.js.map +1 -1
  396. package/Physics/v1/physicsImpostor.js +149 -149
  397. package/Physics/v1/physicsImpostor.js.map +1 -1
  398. package/Physics/v2/IPhysicsEnginePlugin.d.ts +6 -8
  399. package/Physics/v2/IPhysicsEnginePlugin.js +1 -0
  400. package/Physics/v2/IPhysicsEnginePlugin.js.map +1 -1
  401. package/Physics/v2/physicsBody.d.ts +10 -1
  402. package/Physics/v2/physicsBody.js +13 -1
  403. package/Physics/v2/physicsBody.js.map +1 -1
  404. package/Physics/v2/physicsConstraint.d.ts +139 -66
  405. package/Physics/v2/physicsConstraint.js +145 -78
  406. package/Physics/v2/physicsConstraint.js.map +1 -1
  407. package/Physics/v2/physicsEngine.js +14 -14
  408. package/Physics/v2/physicsEngine.js.map +1 -1
  409. package/PostProcesses/RenderPipeline/Pipelines/defaultRenderingPipeline.js +137 -129
  410. package/PostProcesses/RenderPipeline/Pipelines/defaultRenderingPipeline.js.map +1 -1
  411. package/PostProcesses/RenderPipeline/Pipelines/ssao2RenderingPipeline.js +68 -68
  412. package/PostProcesses/RenderPipeline/Pipelines/ssao2RenderingPipeline.js.map +1 -1
  413. package/PostProcesses/RenderPipeline/Pipelines/ssaoRenderingPipeline.js +6 -6
  414. package/PostProcesses/RenderPipeline/Pipelines/ssaoRenderingPipeline.js.map +1 -1
  415. package/PostProcesses/RenderPipeline/Pipelines/standardRenderingPipeline.js +226 -225
  416. package/PostProcesses/RenderPipeline/Pipelines/standardRenderingPipeline.js.map +1 -1
  417. package/PostProcesses/RenderPipeline/postProcessRenderPipeline.js +10 -10
  418. package/PostProcesses/RenderPipeline/postProcessRenderPipeline.js.map +1 -1
  419. package/PostProcesses/anaglyphPostProcess.js +7 -7
  420. package/PostProcesses/anaglyphPostProcess.js.map +1 -1
  421. package/PostProcesses/blackAndWhitePostProcess.js +7 -7
  422. package/PostProcesses/blackAndWhitePostProcess.js.map +1 -1
  423. package/PostProcesses/bloomEffect.js +28 -28
  424. package/PostProcesses/bloomEffect.js.map +1 -1
  425. package/PostProcesses/bloomMergePostProcess.js +7 -7
  426. package/PostProcesses/bloomMergePostProcess.js.map +1 -1
  427. package/PostProcesses/blurPostProcess.js +32 -32
  428. package/PostProcesses/blurPostProcess.js.map +1 -1
  429. package/PostProcesses/chromaticAberrationPostProcess.js +7 -7
  430. package/PostProcesses/chromaticAberrationPostProcess.js.map +1 -1
  431. package/PostProcesses/circleOfConfusionPostProcess.js +7 -7
  432. package/PostProcesses/circleOfConfusionPostProcess.js.map +1 -1
  433. package/PostProcesses/colorCorrectionPostProcess.js +7 -7
  434. package/PostProcesses/colorCorrectionPostProcess.js.map +1 -1
  435. package/PostProcesses/convolutionPostProcess.js +7 -7
  436. package/PostProcesses/convolutionPostProcess.js.map +1 -1
  437. package/PostProcesses/depthOfFieldBlurPostProcess.js +7 -7
  438. package/PostProcesses/depthOfFieldBlurPostProcess.js.map +1 -1
  439. package/PostProcesses/depthOfFieldEffect.js +36 -36
  440. package/PostProcesses/depthOfFieldEffect.js.map +1 -1
  441. package/PostProcesses/depthOfFieldMergePostProcess.js +7 -7
  442. package/PostProcesses/depthOfFieldMergePostProcess.js.map +1 -1
  443. package/PostProcesses/extractHighlightsPostProcess.js +7 -7
  444. package/PostProcesses/extractHighlightsPostProcess.js.map +1 -1
  445. package/PostProcesses/filterPostProcess.js +7 -7
  446. package/PostProcesses/filterPostProcess.js.map +1 -1
  447. package/PostProcesses/grainPostProcess.js +7 -7
  448. package/PostProcesses/grainPostProcess.js.map +1 -1
  449. package/PostProcesses/imageProcessingPostProcess.js +42 -42
  450. package/PostProcesses/imageProcessingPostProcess.js.map +1 -1
  451. package/PostProcesses/motionBlurPostProcess.js +41 -41
  452. package/PostProcesses/motionBlurPostProcess.js.map +1 -1
  453. package/PostProcesses/passPostProcess.js +15 -15
  454. package/PostProcesses/passPostProcess.js.map +1 -1
  455. package/PostProcesses/postProcess.d.ts +2 -2
  456. package/PostProcesses/postProcess.js +123 -123
  457. package/PostProcesses/postProcess.js.map +1 -1
  458. package/PostProcesses/refractionPostProcess.js +21 -21
  459. package/PostProcesses/refractionPostProcess.js.map +1 -1
  460. package/PostProcesses/screenSpaceCurvaturePostProcess.js +7 -7
  461. package/PostProcesses/screenSpaceCurvaturePostProcess.js.map +1 -1
  462. package/PostProcesses/screenSpaceReflectionPostProcess.js +19 -19
  463. package/PostProcesses/screenSpaceReflectionPostProcess.js.map +1 -1
  464. package/PostProcesses/sharpenPostProcess.js +7 -7
  465. package/PostProcesses/sharpenPostProcess.js.map +1 -1
  466. package/PostProcesses/stereoscopicInterlacePostProcess.js +14 -14
  467. package/PostProcesses/stereoscopicInterlacePostProcess.js.map +1 -1
  468. package/PostProcesses/tonemapPostProcess.js +7 -7
  469. package/PostProcesses/tonemapPostProcess.js.map +1 -1
  470. package/PostProcesses/volumetricLightScatteringPostProcess.js +11 -11
  471. package/PostProcesses/volumetricLightScatteringPostProcess.js.map +1 -1
  472. package/PostProcesses/vrDistortionCorrectionPostProcess.js +7 -7
  473. package/PostProcesses/vrDistortionCorrectionPostProcess.js.map +1 -1
  474. package/Rendering/depthPeelingRenderer.js +36 -36
  475. package/Rendering/depthPeelingRenderer.js.map +1 -1
  476. package/Rendering/depthRenderer.js +8 -8
  477. package/Rendering/depthRenderer.js.map +1 -1
  478. package/Rendering/edgesRenderer.js +34 -34
  479. package/Rendering/edgesRenderer.js.map +1 -1
  480. package/Rendering/fluidRenderer/fluidRenderer.js +8 -8
  481. package/Rendering/fluidRenderer/fluidRenderer.js.map +1 -1
  482. package/Rendering/fluidRenderer/fluidRenderingDepthTextureCopy.js +3 -3
  483. package/Rendering/fluidRenderer/fluidRenderingDepthTextureCopy.js.map +1 -1
  484. package/Rendering/fluidRenderer/fluidRenderingObject.js +22 -19
  485. package/Rendering/fluidRenderer/fluidRenderingObject.js.map +1 -1
  486. package/Rendering/fluidRenderer/fluidRenderingObjectCustomParticles.js +12 -12
  487. package/Rendering/fluidRenderer/fluidRenderingObjectCustomParticles.js.map +1 -1
  488. package/Rendering/fluidRenderer/fluidRenderingObjectParticleSystem.js +18 -18
  489. package/Rendering/fluidRenderer/fluidRenderingObjectParticleSystem.js.map +1 -1
  490. package/Rendering/fluidRenderer/fluidRenderingTargetRenderer.js +71 -68
  491. package/Rendering/fluidRenderer/fluidRenderingTargetRenderer.js.map +1 -1
  492. package/Rendering/fluidRenderer/fluidRenderingTextures.js +29 -29
  493. package/Rendering/fluidRenderer/fluidRenderingTextures.js.map +1 -1
  494. package/Rendering/geometryBufferRenderer.js +173 -168
  495. package/Rendering/geometryBufferRenderer.js.map +1 -1
  496. package/Rendering/prePassRenderer.js +51 -51
  497. package/Rendering/prePassRenderer.js.map +1 -1
  498. package/Rendering/renderingGroup.js +25 -25
  499. package/Rendering/renderingGroup.js.map +1 -1
  500. package/Rendering/renderingManager.js +21 -21
  501. package/Rendering/renderingManager.js.map +1 -1
  502. package/Rendering/subSurfaceConfiguration.js +18 -18
  503. package/Rendering/subSurfaceConfiguration.js.map +1 -1
  504. package/Rendering/utilityLayerRenderer.js +76 -76
  505. package/Rendering/utilityLayerRenderer.js.map +1 -1
  506. package/Shaders/ShadersInclude/pbrBlockSubSurface.js +1 -1
  507. package/Shaders/ShadersInclude/pbrBlockSubSurface.js.map +1 -1
  508. package/Shaders/fluidRenderingParticleDepth.fragment.js +5 -1
  509. package/Shaders/fluidRenderingParticleDepth.fragment.js.map +1 -1
  510. package/Shaders/fluidRenderingRender.fragment.js +7 -2
  511. package/Shaders/fluidRenderingRender.fragment.js.map +1 -1
  512. package/Shaders/geometry.fragment.d.ts +2 -0
  513. package/Shaders/geometry.fragment.js +5 -1
  514. package/Shaders/geometry.fragment.js.map +1 -1
  515. package/Shaders/geometry.vertex.d.ts +2 -0
  516. package/Shaders/geometry.vertex.js +8 -4
  517. package/Shaders/geometry.vertex.js.map +1 -1
  518. package/Sprites/sprite.js +16 -16
  519. package/Sprites/sprite.js.map +1 -1
  520. package/Sprites/spriteManager.js +81 -81
  521. package/Sprites/spriteManager.js.map +1 -1
  522. package/Sprites/spriteMap.js +32 -32
  523. package/Sprites/spriteMap.js.map +1 -1
  524. package/Sprites/spriteRenderer.js +6 -6
  525. package/Sprites/spriteRenderer.js.map +1 -1
  526. package/Sprites/thinSprite.js +22 -22
  527. package/Sprites/thinSprite.js.map +1 -1
  528. package/States/stencilStateComposer.js +10 -10
  529. package/States/stencilStateComposer.js.map +1 -1
  530. package/XR/features/WebXRAnchorSystem.js +7 -7
  531. package/XR/features/WebXRAnchorSystem.js.map +1 -1
  532. package/XR/features/WebXRControllerMovement.d.ts +3 -3
  533. package/XR/features/WebXRControllerMovement.js +97 -97
  534. package/XR/features/WebXRControllerMovement.js.map +1 -1
  535. package/XR/features/WebXRControllerPhysics.js +24 -24
  536. package/XR/features/WebXRControllerPhysics.js.map +1 -1
  537. package/XR/features/WebXRControllerTeleportation.js +26 -26
  538. package/XR/features/WebXRControllerTeleportation.js.map +1 -1
  539. package/XR/features/WebXRDOMOverlay.d.ts +1 -1
  540. package/XR/features/WebXRFeaturePointSystem.js +6 -6
  541. package/XR/features/WebXRFeaturePointSystem.js.map +1 -1
  542. package/XR/features/WebXRHandTracking.d.ts +1 -1
  543. package/XR/features/WebXRHandTracking.js +95 -95
  544. package/XR/features/WebXRHandTracking.js.map +1 -1
  545. package/XR/features/WebXRWalkingLocomotion.js +21 -21
  546. package/XR/features/WebXRWalkingLocomotion.js.map +1 -1
  547. package/XR/motionController/webXRAbstractMotionController.d.ts +3 -3
  548. package/XR/motionController/webXRMotionControllerManager.d.ts +1 -1
  549. package/XR/native/nativeXRFrame.js +3 -3
  550. package/XR/native/nativeXRFrame.js.map +1 -1
  551. package/XR/webXRFeaturesManager.d.ts +1 -1
  552. package/XR/webXRLayerWrapper.d.ts +2 -2
  553. package/XR/webXRLayerWrapper.js +17 -17
  554. package/XR/webXRLayerWrapper.js.map +1 -1
  555. package/abstractScene.d.ts +2 -2
  556. package/node.d.ts +1 -1
  557. package/node.js +71 -71
  558. package/node.js.map +1 -1
  559. package/package.json +1 -1
  560. package/scene.js +777 -777
  561. package/scene.js.map +1 -1
  562. package/sceneComponent.d.ts +12 -12
  563. package/types.d.ts +11 -11
@@ -1 +1 @@
1
- {"version":3,"file":"textureDome.js","sourceRoot":"","sources":["../../../../lts/core/generated/Helpers/textureDome.ts"],"names":[],"mappings":"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","sourcesContent":["import type { Scene } from \"../scene\";\r\nimport { TransformNode } from \"../Meshes/transformNode\";\r\nimport { Mesh } from \"../Meshes/mesh\";\r\nimport { Texture } from \"../Materials/Textures/texture\";\r\nimport { BackgroundMaterial } from \"../Materials/Background/backgroundMaterial\";\r\nimport { CreateSphere } from \"../Meshes/Builders/sphereBuilder\";\r\nimport type { Nullable } from \"../types\";\r\nimport type { Observer } from \"../Misc/observable\";\r\nimport { Observable } from \"../Misc/observable\";\r\nimport { Vector3 } from \"../Maths/math.vector\";\r\nimport { Axis } from \"../Maths/math\";\r\n\r\ndeclare type Camera = import(\"../Cameras/camera\").Camera;\r\n\r\n/**\r\n * Display a 360/180 degree texture on an approximately spherical surface, useful for VR applications or skyboxes.\r\n * As a subclass of TransformNode, this allow parenting to the camera or multiple textures with different locations in the scene.\r\n * This class achieves its effect with a Texture and a correctly configured BackgroundMaterial on an inverted sphere.\r\n * Potential additions to this helper include zoom and and non-infinite distance rendering effects.\r\n */\r\nexport abstract class TextureDome<T extends Texture> extends TransformNode {\r\n /**\r\n * Define the source as a Monoscopic panoramic 360/180.\r\n */\r\n public static readonly MODE_MONOSCOPIC = 0;\r\n /**\r\n * Define the source as a Stereoscopic TopBottom/OverUnder panoramic 360/180.\r\n */\r\n public static readonly MODE_TOPBOTTOM = 1;\r\n /**\r\n * Define the source as a Stereoscopic Side by Side panoramic 360/180.\r\n */\r\n public static readonly MODE_SIDEBYSIDE = 2;\r\n\r\n private _halfDome: boolean = false;\r\n private _crossEye: boolean = false;\r\n\r\n protected _useDirectMapping = false;\r\n\r\n /**\r\n * The texture being displayed on the sphere\r\n */\r\n protected _texture: T;\r\n\r\n /**\r\n * Gets the texture being displayed on the sphere\r\n */\r\n public get texture(): T {\r\n return this._texture;\r\n }\r\n\r\n /**\r\n * Sets the texture being displayed on the sphere\r\n */\r\n public set texture(newTexture: T) {\r\n if (this._texture === newTexture) {\r\n return;\r\n }\r\n this._texture = newTexture;\r\n if (this._useDirectMapping) {\r\n this._texture.wrapU = Texture.CLAMP_ADDRESSMODE;\r\n this._texture.wrapV = Texture.CLAMP_ADDRESSMODE;\r\n this._material.diffuseTexture = this._texture;\r\n } else {\r\n this._texture.coordinatesMode = Texture.FIXED_EQUIRECTANGULAR_MIRRORED_MODE; // matches orientation\r\n this._texture.wrapV = Texture.CLAMP_ADDRESSMODE;\r\n this._material.reflectionTexture = this._texture;\r\n }\r\n this._changeTextureMode(this._textureMode);\r\n }\r\n\r\n /**\r\n * The skybox material\r\n */\r\n protected _material: BackgroundMaterial;\r\n\r\n /**\r\n * The surface used for the dome\r\n */\r\n protected _mesh: Mesh;\r\n /**\r\n * Gets the mesh used for the dome.\r\n */\r\n public get mesh(): Mesh {\r\n return this._mesh;\r\n }\r\n\r\n /**\r\n * A mesh that will be used to mask the back of the dome in case it is a 180 degree movie.\r\n */\r\n private _halfDomeMask: Mesh;\r\n\r\n /**\r\n * The current fov(field of view) multiplier, 0.0 - 2.0. Defaults to 1.0. Lower values \"zoom in\" and higher values \"zoom out\".\r\n * Also see the options.resolution property.\r\n */\r\n public get fovMultiplier(): number {\r\n return this._material.fovMultiplier;\r\n }\r\n public set fovMultiplier(value: number) {\r\n this._material.fovMultiplier = value;\r\n }\r\n\r\n protected _textureMode = TextureDome.MODE_MONOSCOPIC;\r\n /**\r\n * Gets or set the current texture mode for the texture. It can be:\r\n * * TextureDome.MODE_MONOSCOPIC : Define the texture source as a Monoscopic panoramic 360.\r\n * * TextureDome.MODE_TOPBOTTOM : Define the texture source as a Stereoscopic TopBottom/OverUnder panoramic 360.\r\n * * TextureDome.MODE_SIDEBYSIDE : Define the texture source as a Stereoscopic Side by Side panoramic 360.\r\n */\r\n public get textureMode(): number {\r\n return this._textureMode;\r\n }\r\n /**\r\n * Sets the current texture mode for the texture. It can be:\r\n * * TextureDome.MODE_MONOSCOPIC : Define the texture source as a Monoscopic panoramic 360.\r\n * * TextureDome.MODE_TOPBOTTOM : Define the texture source as a Stereoscopic TopBottom/OverUnder panoramic 360.\r\n * * TextureDome.MODE_SIDEBYSIDE : Define the texture source as a Stereoscopic Side by Side panoramic 360.\r\n */\r\n public set textureMode(value: number) {\r\n if (this._textureMode === value) {\r\n return;\r\n }\r\n\r\n this._changeTextureMode(value);\r\n }\r\n\r\n /**\r\n * Is it a 180 degrees dome (half dome) or 360 texture (full dome)\r\n */\r\n public get halfDome(): boolean {\r\n return this._halfDome;\r\n }\r\n\r\n /**\r\n * Set the halfDome mode. If set, only the front (180 degrees) will be displayed and the back will be blacked out.\r\n */\r\n public set halfDome(enabled: boolean) {\r\n this._halfDome = enabled;\r\n this._halfDomeMask.setEnabled(enabled);\r\n this._changeTextureMode(this._textureMode);\r\n }\r\n\r\n /**\r\n * Set the cross-eye mode. If set, images that can be seen when crossing eyes will render correctly\r\n */\r\n public set crossEye(enabled: boolean) {\r\n this._crossEye = enabled;\r\n this._changeTextureMode(this._textureMode);\r\n }\r\n\r\n /**\r\n * Is it a cross-eye texture?\r\n */\r\n public get crossEye(): boolean {\r\n return this._crossEye;\r\n }\r\n\r\n /**\r\n * The background material of this dome.\r\n */\r\n public get material(): BackgroundMaterial {\r\n return this._material;\r\n }\r\n\r\n /**\r\n * Oberserver used in Stereoscopic VR Mode.\r\n */\r\n private _onBeforeCameraRenderObserver: Nullable<Observer<Camera>> = null;\r\n /**\r\n * Observable raised when an error occurred while loading the texture\r\n */\r\n public onLoadErrorObservable = new Observable<string>();\r\n /**\r\n * Observable raised when the texture finished loading\r\n */\r\n public onLoadObservable = new Observable<void>();\r\n\r\n /**\r\n * Create an instance of this class and pass through the parameters to the relevant classes- Texture, StandardMaterial, and Mesh.\r\n * @param name Element's name, child elements will append suffixes for their own names.\r\n * @param textureUrlOrElement defines the url(s) or the (video) HTML element to use\r\n * @param options An object containing optional or exposed sub element properties\r\n * @param options.resolution\r\n * @param options.clickToPlay\r\n * @param options.autoPlay\r\n * @param options.loop\r\n * @param options.size\r\n * @param options.poster\r\n * @param options.faceForward\r\n * @param options.useDirectMapping\r\n * @param options.halfDomeMode\r\n * @param options.crossEyeMode\r\n * @param options.generateMipMaps\r\n * @param options.mesh\r\n * @param scene\r\n * @param onError\r\n */\r\n constructor(\r\n name: string,\r\n textureUrlOrElement: string | string[] | HTMLVideoElement,\r\n options: {\r\n resolution?: number;\r\n clickToPlay?: boolean;\r\n autoPlay?: boolean;\r\n loop?: boolean;\r\n size?: number;\r\n poster?: string;\r\n faceForward?: boolean;\r\n useDirectMapping?: boolean;\r\n halfDomeMode?: boolean;\r\n crossEyeMode?: boolean;\r\n generateMipMaps?: boolean;\r\n mesh?: Mesh;\r\n },\r\n scene: Scene,\r\n // eslint-disable-next-line @typescript-eslint/naming-convention\r\n protected onError: Nullable<(message?: string, exception?: any) => void> = null\r\n ) {\r\n super(name, scene);\r\n\r\n scene = this.getScene();\r\n\r\n // set defaults and manage values\r\n name = name || \"textureDome\";\r\n options.resolution = Math.abs(options.resolution as any) | 0 || 32;\r\n options.clickToPlay = Boolean(options.clickToPlay);\r\n options.autoPlay = options.autoPlay === undefined ? true : Boolean(options.autoPlay);\r\n options.loop = options.loop === undefined ? true : Boolean(options.loop);\r\n options.size = Math.abs(options.size as any) || (scene.activeCamera ? scene.activeCamera.maxZ * 0.48 : 1000);\r\n\r\n if (options.useDirectMapping === undefined) {\r\n this._useDirectMapping = true;\r\n } else {\r\n this._useDirectMapping = options.useDirectMapping;\r\n }\r\n\r\n if (options.faceForward === undefined) {\r\n options.faceForward = true;\r\n }\r\n\r\n this._setReady(false);\r\n if (!options.mesh) {\r\n this._mesh = CreateSphere(name + \"_mesh\", { segments: options.resolution, diameter: options.size, updatable: false, sideOrientation: Mesh.BACKSIDE }, scene);\r\n } else {\r\n this._mesh = options.mesh;\r\n }\r\n // configure material\r\n const material = (this._material = new BackgroundMaterial(name + \"_material\", scene));\r\n material.useEquirectangularFOV = true;\r\n material.fovMultiplier = 1.0;\r\n material.opacityFresnel = false;\r\n\r\n const texture = this._initTexture(textureUrlOrElement, scene, options);\r\n this.texture = texture;\r\n\r\n // configure mesh\r\n this._mesh.material = material;\r\n this._mesh.parent = this;\r\n\r\n // create a (disabled until needed) mask to cover unneeded segments of 180 texture.\r\n this._halfDomeMask = CreateSphere(\"\", { slice: 0.5, diameter: options.size * 0.98, segments: options.resolution * 2, sideOrientation: Mesh.BACKSIDE }, scene);\r\n this._halfDomeMask.rotate(Axis.X, -Math.PI / 2);\r\n // set the parent, so it will always be positioned correctly AND will be disposed when the main sphere is disposed\r\n this._halfDomeMask.parent = this._mesh;\r\n this._halfDome = !!options.halfDomeMode;\r\n // enable or disable according to the settings\r\n this._halfDomeMask.setEnabled(this._halfDome);\r\n this._crossEye = !!options.crossEyeMode;\r\n\r\n // create\r\n this._texture.anisotropicFilteringLevel = 1;\r\n this._texture.onLoadObservable.addOnce(() => {\r\n this._setReady(true);\r\n });\r\n\r\n // Initial rotation\r\n if (options.faceForward && scene.activeCamera) {\r\n const camera = scene.activeCamera;\r\n\r\n const forward = Vector3.Forward();\r\n const direction = Vector3.TransformNormal(forward, camera.getViewMatrix());\r\n direction.normalize();\r\n\r\n this.rotation.y = Math.acos(Vector3.Dot(forward, direction));\r\n }\r\n\r\n this._changeTextureMode(this._textureMode);\r\n }\r\n\r\n protected abstract _initTexture(urlsOrElement: string | string[] | HTMLElement, scene: Scene, options: any): T;\r\n\r\n protected _changeTextureMode(value: number): void {\r\n this._scene.onBeforeCameraRenderObservable.remove(this._onBeforeCameraRenderObserver);\r\n this._textureMode = value;\r\n\r\n // Default Setup and Reset.\r\n this._texture.uScale = 1;\r\n this._texture.vScale = 1;\r\n this._texture.uOffset = 0;\r\n this._texture.vOffset = 0;\r\n this._texture.vAng = 0;\r\n\r\n switch (value) {\r\n case TextureDome.MODE_MONOSCOPIC:\r\n if (this._halfDome) {\r\n this._texture.uScale = 2;\r\n this._texture.uOffset = -1;\r\n }\r\n break;\r\n case TextureDome.MODE_SIDEBYSIDE: {\r\n // in half-dome mode the uScale should be double of 360 texture\r\n // Use 0.99999 to boost perf by not switching program\r\n this._texture.uScale = this._halfDome ? 0.99999 : 0.5;\r\n const rightOffset = this._halfDome ? 0.0 : 0.5;\r\n const leftOffset = this._halfDome ? -0.5 : 0.0;\r\n this._onBeforeCameraRenderObserver = this._scene.onBeforeCameraRenderObservable.add((camera) => {\r\n let isRightCamera = camera.isRightCamera;\r\n if (this._crossEye) {\r\n isRightCamera = !isRightCamera;\r\n }\r\n if (isRightCamera) {\r\n this._texture.uOffset = rightOffset;\r\n } else {\r\n this._texture.uOffset = leftOffset;\r\n }\r\n });\r\n break;\r\n }\r\n case TextureDome.MODE_TOPBOTTOM:\r\n // in half-dome mode the vScale should be double of 360 texture\r\n // Use 0.99999 to boost perf by not switching program\r\n this._texture.vScale = this._halfDome ? 0.99999 : 0.5;\r\n this._onBeforeCameraRenderObserver = this._scene.onBeforeCameraRenderObservable.add((camera) => {\r\n let isRightCamera = camera.isRightCamera;\r\n // allow \"cross-eye\" if left and right were switched in this mode\r\n if (this._crossEye) {\r\n isRightCamera = !isRightCamera;\r\n }\r\n this._texture.vOffset = isRightCamera ? 0.5 : 0.0;\r\n });\r\n break;\r\n }\r\n }\r\n\r\n /**\r\n * Releases resources associated with this node.\r\n * @param doNotRecurse Set to true to not recurse into each children (recurse into each children by default)\r\n * @param disposeMaterialAndTextures Set to true to also dispose referenced materials and textures (false by default)\r\n */\r\n public dispose(doNotRecurse?: boolean, disposeMaterialAndTextures = false): void {\r\n this._texture.dispose();\r\n this._mesh.dispose();\r\n this._material.dispose();\r\n\r\n this._scene.onBeforeCameraRenderObservable.remove(this._onBeforeCameraRenderObserver);\r\n this.onLoadErrorObservable.clear();\r\n this.onLoadObservable.clear();\r\n\r\n super.dispose(doNotRecurse, disposeMaterialAndTextures);\r\n }\r\n}\r\n"]}
1
+ {"version":3,"file":"textureDome.js","sourceRoot":"","sources":["../../../../lts/core/generated/Helpers/textureDome.ts"],"names":[],"mappings":"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","sourcesContent":["import type { Scene } from \"../scene\";\r\nimport { TransformNode } from \"../Meshes/transformNode\";\r\nimport { Mesh } from \"../Meshes/mesh\";\r\nimport { Texture } from \"../Materials/Textures/texture\";\r\nimport { BackgroundMaterial } from \"../Materials/Background/backgroundMaterial\";\r\nimport { CreateSphere } from \"../Meshes/Builders/sphereBuilder\";\r\nimport type { Nullable } from \"../types\";\r\nimport type { Observer } from \"../Misc/observable\";\r\nimport { Observable } from \"../Misc/observable\";\r\nimport { Vector3 } from \"../Maths/math.vector\";\r\nimport { Axis } from \"../Maths/math\";\r\n\r\ndeclare type Camera = import(\"../Cameras/camera\").Camera;\r\n\r\n/**\r\n * Display a 360/180 degree texture on an approximately spherical surface, useful for VR applications or skyboxes.\r\n * As a subclass of TransformNode, this allow parenting to the camera or multiple textures with different locations in the scene.\r\n * This class achieves its effect with a Texture and a correctly configured BackgroundMaterial on an inverted sphere.\r\n * Potential additions to this helper include zoom and and non-infinite distance rendering effects.\r\n */\r\nexport abstract class TextureDome<T extends Texture> extends TransformNode {\r\n /**\r\n * Define the source as a Monoscopic panoramic 360/180.\r\n */\r\n public static readonly MODE_MONOSCOPIC = 0;\r\n /**\r\n * Define the source as a Stereoscopic TopBottom/OverUnder panoramic 360/180.\r\n */\r\n public static readonly MODE_TOPBOTTOM = 1;\r\n /**\r\n * Define the source as a Stereoscopic Side by Side panoramic 360/180.\r\n */\r\n public static readonly MODE_SIDEBYSIDE = 2;\r\n\r\n private _halfDome: boolean = false;\r\n private _crossEye: boolean = false;\r\n\r\n protected _useDirectMapping = false;\r\n\r\n /**\r\n * The texture being displayed on the sphere\r\n */\r\n protected _texture: T;\r\n\r\n /**\r\n * Gets the texture being displayed on the sphere\r\n */\r\n public get texture(): T {\r\n return this._texture;\r\n }\r\n\r\n /**\r\n * Sets the texture being displayed on the sphere\r\n */\r\n public set texture(newTexture: T) {\r\n if (this._texture === newTexture) {\r\n return;\r\n }\r\n this._texture = newTexture;\r\n if (this._useDirectMapping) {\r\n this._texture.wrapU = Texture.CLAMP_ADDRESSMODE;\r\n this._texture.wrapV = Texture.CLAMP_ADDRESSMODE;\r\n this._material.diffuseTexture = this._texture;\r\n } else {\r\n this._texture.coordinatesMode = Texture.FIXED_EQUIRECTANGULAR_MIRRORED_MODE; // matches orientation\r\n this._texture.wrapV = Texture.CLAMP_ADDRESSMODE;\r\n this._material.reflectionTexture = this._texture;\r\n }\r\n this._changeTextureMode(this._textureMode);\r\n }\r\n\r\n /**\r\n * The skybox material\r\n */\r\n protected _material: BackgroundMaterial;\r\n\r\n /**\r\n * The surface used for the dome\r\n */\r\n protected _mesh: Mesh;\r\n /**\r\n * Gets the mesh used for the dome.\r\n */\r\n public get mesh(): Mesh {\r\n return this._mesh;\r\n }\r\n\r\n /**\r\n * A mesh that will be used to mask the back of the dome in case it is a 180 degree movie.\r\n */\r\n private _halfDomeMask: Mesh;\r\n\r\n /**\r\n * The current fov(field of view) multiplier, 0.0 - 2.0. Defaults to 1.0. Lower values \"zoom in\" and higher values \"zoom out\".\r\n * Also see the options.resolution property.\r\n */\r\n public get fovMultiplier(): number {\r\n return this._material.fovMultiplier;\r\n }\r\n public set fovMultiplier(value: number) {\r\n this._material.fovMultiplier = value;\r\n }\r\n\r\n protected _textureMode = TextureDome.MODE_MONOSCOPIC;\r\n /**\r\n * Gets or set the current texture mode for the texture. It can be:\r\n * * TextureDome.MODE_MONOSCOPIC : Define the texture source as a Monoscopic panoramic 360.\r\n * * TextureDome.MODE_TOPBOTTOM : Define the texture source as a Stereoscopic TopBottom/OverUnder panoramic 360.\r\n * * TextureDome.MODE_SIDEBYSIDE : Define the texture source as a Stereoscopic Side by Side panoramic 360.\r\n */\r\n public get textureMode(): number {\r\n return this._textureMode;\r\n }\r\n /**\r\n * Sets the current texture mode for the texture. It can be:\r\n * * TextureDome.MODE_MONOSCOPIC : Define the texture source as a Monoscopic panoramic 360.\r\n * * TextureDome.MODE_TOPBOTTOM : Define the texture source as a Stereoscopic TopBottom/OverUnder panoramic 360.\r\n * * TextureDome.MODE_SIDEBYSIDE : Define the texture source as a Stereoscopic Side by Side panoramic 360.\r\n */\r\n public set textureMode(value: number) {\r\n if (this._textureMode === value) {\r\n return;\r\n }\r\n\r\n this._changeTextureMode(value);\r\n }\r\n\r\n /**\r\n * Is it a 180 degrees dome (half dome) or 360 texture (full dome)\r\n */\r\n public get halfDome(): boolean {\r\n return this._halfDome;\r\n }\r\n\r\n /**\r\n * Set the halfDome mode. If set, only the front (180 degrees) will be displayed and the back will be blacked out.\r\n */\r\n public set halfDome(enabled: boolean) {\r\n this._halfDome = enabled;\r\n this._halfDomeMask.setEnabled(enabled);\r\n this._changeTextureMode(this._textureMode);\r\n }\r\n\r\n /**\r\n * Set the cross-eye mode. If set, images that can be seen when crossing eyes will render correctly\r\n */\r\n public set crossEye(enabled: boolean) {\r\n this._crossEye = enabled;\r\n this._changeTextureMode(this._textureMode);\r\n }\r\n\r\n /**\r\n * Is it a cross-eye texture?\r\n */\r\n public get crossEye(): boolean {\r\n return this._crossEye;\r\n }\r\n\r\n /**\r\n * The background material of this dome.\r\n */\r\n public get material(): BackgroundMaterial {\r\n return this._material;\r\n }\r\n\r\n /**\r\n * Oberserver used in Stereoscopic VR Mode.\r\n */\r\n private _onBeforeCameraRenderObserver: Nullable<Observer<Camera>> = null;\r\n /**\r\n * Observable raised when an error occurred while loading the texture\r\n */\r\n public onLoadErrorObservable = new Observable<string>();\r\n /**\r\n * Observable raised when the texture finished loading\r\n */\r\n public onLoadObservable = new Observable<void>();\r\n\r\n /**\r\n * Create an instance of this class and pass through the parameters to the relevant classes- Texture, StandardMaterial, and Mesh.\r\n * @param name Element's name, child elements will append suffixes for their own names.\r\n * @param textureUrlOrElement defines the url(s) or the (video) HTML element to use\r\n * @param options An object containing optional or exposed sub element properties\r\n * @param options.resolution\r\n * @param options.clickToPlay\r\n * @param options.autoPlay\r\n * @param options.loop\r\n * @param options.size\r\n * @param options.poster\r\n * @param options.faceForward\r\n * @param options.useDirectMapping\r\n * @param options.halfDomeMode\r\n * @param options.crossEyeMode\r\n * @param options.generateMipMaps\r\n * @param options.mesh\r\n * @param scene\r\n * @param onError\r\n */\r\n constructor(\r\n name: string,\r\n textureUrlOrElement: string | string[] | HTMLVideoElement,\r\n options: {\r\n resolution?: number;\r\n clickToPlay?: boolean;\r\n autoPlay?: boolean;\r\n loop?: boolean;\r\n size?: number;\r\n poster?: string;\r\n faceForward?: boolean;\r\n useDirectMapping?: boolean;\r\n halfDomeMode?: boolean;\r\n crossEyeMode?: boolean;\r\n generateMipMaps?: boolean;\r\n mesh?: Mesh;\r\n },\r\n scene: Scene,\r\n // eslint-disable-next-line @typescript-eslint/naming-convention\r\n protected onError: Nullable<(message?: string, exception?: any) => void> = null\r\n ) {\r\n super(name, scene);\r\n\r\n scene = this.getScene();\r\n\r\n // set defaults and manage values\r\n name = name || \"textureDome\";\r\n options.resolution = Math.abs(options.resolution as any) | 0 || 32;\r\n options.clickToPlay = Boolean(options.clickToPlay);\r\n options.autoPlay = options.autoPlay === undefined ? true : Boolean(options.autoPlay);\r\n options.loop = options.loop === undefined ? true : Boolean(options.loop);\r\n options.size = Math.abs(options.size as any) || (scene.activeCamera ? scene.activeCamera.maxZ * 0.48 : 1000);\r\n\r\n if (options.useDirectMapping === undefined) {\r\n this._useDirectMapping = true;\r\n } else {\r\n this._useDirectMapping = options.useDirectMapping;\r\n }\r\n\r\n if (options.faceForward === undefined) {\r\n options.faceForward = true;\r\n }\r\n\r\n this._setReady(false);\r\n if (!options.mesh) {\r\n this._mesh = CreateSphere(name + \"_mesh\", { segments: options.resolution, diameter: options.size, updatable: false, sideOrientation: Mesh.BACKSIDE }, scene);\r\n } else {\r\n this._mesh = options.mesh;\r\n }\r\n // configure material\r\n const material = (this._material = new BackgroundMaterial(name + \"_material\", scene));\r\n material.useEquirectangularFOV = true;\r\n material.fovMultiplier = 1.0;\r\n material.opacityFresnel = false;\r\n\r\n const texture = this._initTexture(textureUrlOrElement, scene, options);\r\n this.texture = texture;\r\n\r\n // configure mesh\r\n this._mesh.material = material;\r\n this._mesh.parent = this;\r\n\r\n // create a (disabled until needed) mask to cover unneeded segments of 180 texture.\r\n this._halfDomeMask = CreateSphere(\"\", { slice: 0.5, diameter: options.size * 0.98, segments: options.resolution * 2, sideOrientation: Mesh.BACKSIDE }, scene);\r\n this._halfDomeMask.rotate(Axis.X, -Math.PI / 2);\r\n // set the parent, so it will always be positioned correctly AND will be disposed when the main sphere is disposed\r\n this._halfDomeMask.parent = this._mesh;\r\n this._halfDome = !!options.halfDomeMode;\r\n // enable or disable according to the settings\r\n this._halfDomeMask.setEnabled(this._halfDome);\r\n this._crossEye = !!options.crossEyeMode;\r\n\r\n // create\r\n this._texture.anisotropicFilteringLevel = 1;\r\n this._texture.onLoadObservable.addOnce(() => {\r\n this._setReady(true);\r\n });\r\n\r\n // Initial rotation\r\n if (options.faceForward && scene.activeCamera) {\r\n const camera = scene.activeCamera;\r\n\r\n const forward = Vector3.Forward();\r\n const direction = Vector3.TransformNormal(forward, camera.getViewMatrix());\r\n direction.normalize();\r\n\r\n this.rotation.y = Math.acos(Vector3.Dot(forward, direction));\r\n }\r\n\r\n this._changeTextureMode(this._textureMode);\r\n }\r\n\r\n protected abstract _initTexture(urlsOrElement: string | string[] | HTMLElement, scene: Scene, options: any): T;\r\n\r\n protected _changeTextureMode(value: number): void {\r\n this._scene.onBeforeCameraRenderObservable.remove(this._onBeforeCameraRenderObserver);\r\n this._textureMode = value;\r\n\r\n // Default Setup and Reset.\r\n this._texture.uScale = 1;\r\n this._texture.vScale = 1;\r\n this._texture.uOffset = 0;\r\n this._texture.vOffset = 0;\r\n this._texture.vAng = 0;\r\n\r\n switch (value) {\r\n case TextureDome.MODE_MONOSCOPIC:\r\n if (this._halfDome) {\r\n this._texture.uScale = 2;\r\n this._texture.uOffset = -1;\r\n }\r\n break;\r\n case TextureDome.MODE_SIDEBYSIDE: {\r\n // in half-dome mode the uScale should be double of 360 texture\r\n // Use 0.99999 to boost perf by not switching program\r\n this._texture.uScale = this._halfDome ? 0.99999 : 0.5;\r\n const rightOffset = this._halfDome ? 0.0 : 0.5;\r\n const leftOffset = this._halfDome ? -0.5 : 0.0;\r\n this._onBeforeCameraRenderObserver = this._scene.onBeforeCameraRenderObservable.add((camera) => {\r\n let isRightCamera = camera.isRightCamera;\r\n if (this._crossEye) {\r\n isRightCamera = !isRightCamera;\r\n }\r\n if (isRightCamera) {\r\n this._texture.uOffset = rightOffset;\r\n } else {\r\n this._texture.uOffset = leftOffset;\r\n }\r\n });\r\n break;\r\n }\r\n case TextureDome.MODE_TOPBOTTOM:\r\n // in half-dome mode the vScale should be double of 360 texture\r\n // Use 0.99999 to boost perf by not switching program\r\n this._texture.vScale = this._halfDome ? 0.99999 : 0.5;\r\n this._onBeforeCameraRenderObserver = this._scene.onBeforeCameraRenderObservable.add((camera) => {\r\n let isRightCamera = camera.isRightCamera;\r\n // allow \"cross-eye\" if left and right were switched in this mode\r\n if (this._crossEye) {\r\n isRightCamera = !isRightCamera;\r\n }\r\n this._texture.vOffset = isRightCamera ? 0.5 : 0.0;\r\n });\r\n break;\r\n }\r\n }\r\n\r\n /**\r\n * Releases resources associated with this node.\r\n * @param doNotRecurse Set to true to not recurse into each children (recurse into each children by default)\r\n * @param disposeMaterialAndTextures Set to true to also dispose referenced materials and textures (false by default)\r\n */\r\n public dispose(doNotRecurse?: boolean, disposeMaterialAndTextures = false): void {\r\n this._texture.dispose();\r\n this._mesh.dispose();\r\n this._material.dispose();\r\n\r\n this._scene.onBeforeCameraRenderObservable.remove(this._onBeforeCameraRenderObserver);\r\n this.onLoadErrorObservable.clear();\r\n this.onLoadObservable.clear();\r\n\r\n super.dispose(doNotRecurse, disposeMaterialAndTextures);\r\n }\r\n}\r\n"]}
@@ -24,6 +24,6 @@ export interface IAccessibilityTag {
24
24
  [key in AcceptedARIA]: any;
25
25
  };
26
26
  }
27
- declare type AcceptedRole = "toolbar" | "tooltip" | "feed" | "math" | "presentation" | "none" | "note" | "application" | "article" | "cell" | "columnheader" | "definition" | "directory" | "document" | "figure" | "group" | "heading" | "img" | "list" | "listitem" | "meter" | "row" | "rowgroup" | "rowheader" | "separator" | "table" | "term" | "scrollbar" | "searchbox" | "separator" | "slider" | "spinbutton" | "switch" | "tab" | "tabpanel" | "treeitem" | "combobox" | "menu" | "menubar" | "tablist" | "tree" | "treegrid" | "banner" | "complementary" | "contentinfo" | "form" | "main" | "navigation" | "region" | "search" | "alert" | "log" | "marquee" | "status" | "timer" | "alertdialog" | "dialog";
28
- declare type AcceptedARIA = "aria-autocomplete" | "aria-checked" | "aria-disabled" | "aria-errormessage" | "aria-expanded" | "aria-haspopup" | "aria-hidden" | "aria-invalid" | "aria-label" | "aria-level" | "aria-modal" | "aria-multiline" | "aria-multiselectable" | "aria-orientation" | "aria-placeholder" | "aria-pressed" | "aria-readonly" | "aria-required" | "aria-selected" | "aria-sort" | "aria-valuemax" | "aria-valuemin" | "aria-valuenow" | "aria-valuetext" | "aria-busy" | "aria-live" | "aria-relevant" | "aria-atomic" | "aria-dropeffect" | "aria-grabbed" | "aria-activedescendant" | "aria-colcount" | "aria-colindex" | "aria-colspan" | "aria-controls" | "aria-describedby" | "aria-description" | "aria-details" | "aria-errormessage" | "aria-flowto" | "aria-labelledby" | "aria-owns" | "aria-posinset" | "aria-rowcount" | "aria-rowindex" | "aria-rowspan" | "aria-setsize";
27
+ type AcceptedRole = "toolbar" | "tooltip" | "feed" | "math" | "presentation" | "none" | "note" | "application" | "article" | "cell" | "columnheader" | "definition" | "directory" | "document" | "figure" | "group" | "heading" | "img" | "list" | "listitem" | "meter" | "row" | "rowgroup" | "rowheader" | "separator" | "table" | "term" | "scrollbar" | "searchbox" | "separator" | "slider" | "spinbutton" | "switch" | "tab" | "tabpanel" | "treeitem" | "combobox" | "menu" | "menubar" | "tablist" | "tree" | "treegrid" | "banner" | "complementary" | "contentinfo" | "form" | "main" | "navigation" | "region" | "search" | "alert" | "log" | "marquee" | "status" | "timer" | "alertdialog" | "dialog";
28
+ type AcceptedARIA = "aria-autocomplete" | "aria-checked" | "aria-disabled" | "aria-errormessage" | "aria-expanded" | "aria-haspopup" | "aria-hidden" | "aria-invalid" | "aria-label" | "aria-level" | "aria-modal" | "aria-multiline" | "aria-multiselectable" | "aria-orientation" | "aria-placeholder" | "aria-pressed" | "aria-readonly" | "aria-required" | "aria-selected" | "aria-sort" | "aria-valuemax" | "aria-valuemin" | "aria-valuenow" | "aria-valuetext" | "aria-busy" | "aria-live" | "aria-relevant" | "aria-atomic" | "aria-dropeffect" | "aria-grabbed" | "aria-activedescendant" | "aria-colcount" | "aria-colindex" | "aria-colspan" | "aria-controls" | "aria-describedby" | "aria-description" | "aria-details" | "aria-errormessage" | "aria-flowto" | "aria-labelledby" | "aria-owns" | "aria-posinset" | "aria-rowcount" | "aria-rowindex" | "aria-rowspan" | "aria-setsize";
29
29
  export {};
@@ -4,7 +4,7 @@ import type { Nullable } from "../types";
4
4
  import { PickingInfo } from "../Collisions/pickingInfo";
5
5
  import { Vector2 } from "../Maths/math.vector";
6
6
  import type { AbstractMesh } from "../Meshes/abstractMesh";
7
- import type { IMouseEvent } from "../Events/deviceInputEvents";
7
+ import type { IMouseEvent, IPointerEvent } from "../Events/deviceInputEvents";
8
8
  declare type Scene = import("../scene").Scene;
9
9
  /**
10
10
  * Class used to manage all inputs for the scene.
@@ -102,7 +102,7 @@ export declare class InputManager {
102
102
  private _checkForPicking;
103
103
  private _checkPrePointerObservable;
104
104
  /** @internal */
105
- _pickMove(pointerId: number): PickingInfo;
105
+ _pickMove(evt: IPointerEvent): PickingInfo;
106
106
  private _setCursorAndPointerOverMesh;
107
107
  /**
108
108
  * Use this method to simulate a pointer move on a mesh
@@ -156,8 +156,9 @@ export declare class InputManager {
156
156
  * @param mesh - defines the mesh to use
157
157
  * @param pointerId - optional pointer id when using more than one pointer. Defaults to 0
158
158
  * @param pickResult - optional pickingInfo data used to find mesh
159
+ * @param evt - optional pointer event
159
160
  */
160
- setPointerOverMesh(mesh: Nullable<AbstractMesh>, pointerId?: number, pickResult?: Nullable<PickingInfo>): void;
161
+ setPointerOverMesh(mesh: Nullable<AbstractMesh>, pointerId?: number, pickResult?: Nullable<PickingInfo>, evt?: IPointerEvent): void;
161
162
  /**
162
163
  * Gets the mesh under the pointer
163
164
  * @returns a Mesh or null if no mesh is under the pointer
@@ -148,7 +148,7 @@ export class InputManager {
148
148
  canvas.style.cursor = scene.defaultCursor;
149
149
  }
150
150
  }
151
- this._setCursorAndPointerOverMesh(pickResult, evt.pointerId, scene);
151
+ this._setCursorAndPointerOverMesh(pickResult, evt, scene);
152
152
  for (const step of scene._pointerMoveStage) {
153
153
  const isMeshPicked = (pickResult === null || pickResult === void 0 ? void 0 : pickResult.pickedMesh) ? true : false;
154
154
  pickResult = step.action(this._unTranslatedPointerX, this._unTranslatedPointerY, pickResult, isMeshPicked, canvas);
@@ -156,7 +156,7 @@ export class InputManager {
156
156
  const type = evt.inputIndex >= PointerInput.MouseWheelX && evt.inputIndex <= PointerInput.MouseWheelZ ? PointerEventTypes.POINTERWHEEL : PointerEventTypes.POINTERMOVE;
157
157
  if (scene.onPointerMove) {
158
158
  // Because of lazy picking, we need to force a pick to update the pickResult
159
- pickResult = pickResult || this._pickMove(evt.pointerId);
159
+ pickResult = pickResult || this._pickMove(evt);
160
160
  scene.onPointerMove(evt, pickResult, type);
161
161
  }
162
162
  let pointerInfo;
@@ -214,17 +214,17 @@ export class InputManager {
214
214
  }
215
215
  }
216
216
  /** @internal */
217
- _pickMove(pointerId) {
217
+ _pickMove(evt) {
218
218
  const scene = this._scene;
219
219
  const pickResult = scene.pick(this._unTranslatedPointerX, this._unTranslatedPointerY, scene.pointerMovePredicate, false, scene.cameraToUseForPointers, scene.pointerMoveTrianglePredicate);
220
- this._setCursorAndPointerOverMesh(pickResult, pointerId, scene);
220
+ this._setCursorAndPointerOverMesh(pickResult, evt, scene);
221
221
  return pickResult;
222
222
  }
223
- _setCursorAndPointerOverMesh(pickResult, pointerId, scene) {
223
+ _setCursorAndPointerOverMesh(pickResult, evt, scene) {
224
224
  const engine = scene.getEngine();
225
225
  const canvas = engine.getInputElement();
226
226
  if (pickResult === null || pickResult === void 0 ? void 0 : pickResult.pickedMesh) {
227
- this.setPointerOverMesh(pickResult.pickedMesh, pointerId, pickResult);
227
+ this.setPointerOverMesh(pickResult.pickedMesh, evt.pointerId, pickResult, evt);
228
228
  if (!scene.doNotHandleCursors && canvas && this._pointerOverMesh) {
229
229
  const actionManager = this._pointerOverMesh._getActionManagerForTrigger();
230
230
  if (actionManager && actionManager.hasPointerTriggers) {
@@ -233,7 +233,7 @@ export class InputManager {
233
233
  }
234
234
  }
235
235
  else {
236
- this.setPointerOverMesh(null, pointerId, pickResult);
236
+ this.setPointerOverMesh(null, evt.pointerId, pickResult, evt);
237
237
  }
238
238
  }
239
239
  /**
@@ -601,7 +601,7 @@ export class InputManager {
601
601
  (mesh.enablePointerMoveEvents || scene.constantlyUpdateMeshUnderPointer || mesh._getActionManagerForTrigger() !== null) &&
602
602
  (!scene.cameraToUseForPointers || (scene.cameraToUseForPointers.layerMask & mesh.layerMask) !== 0);
603
603
  }
604
- const pickResult = scene._registeredActions > 0 ? this._pickMove(evt.pointerId) : null;
604
+ const pickResult = scene._registeredActions > 0 ? this._pickMove(evt) : null;
605
605
  this._processPointerMove(pickResult, evt);
606
606
  };
607
607
  this._onPointerDown = (evt) => {
@@ -850,8 +850,9 @@ export class InputManager {
850
850
  * @param mesh - defines the mesh to use
851
851
  * @param pointerId - optional pointer id when using more than one pointer. Defaults to 0
852
852
  * @param pickResult - optional pickingInfo data used to find mesh
853
+ * @param evt - optional pointer event
853
854
  */
854
- setPointerOverMesh(mesh, pointerId = 0, pickResult) {
855
+ setPointerOverMesh(mesh, pointerId = 0, pickResult, evt) {
855
856
  if (this._meshUnderPointerId[pointerId] === mesh && (!mesh || !mesh._internalAbstractMeshDataInfo._pointerOverDisableMeshTesting)) {
856
857
  return;
857
858
  }
@@ -860,7 +861,7 @@ export class InputManager {
860
861
  if (underPointerMesh) {
861
862
  actionManager = underPointerMesh._getActionManagerForTrigger(10);
862
863
  if (actionManager) {
863
- actionManager.processTrigger(10, ActionEvent.CreateNew(underPointerMesh, undefined, { pointerId }));
864
+ actionManager.processTrigger(10, ActionEvent.CreateNew(underPointerMesh, evt, { pointerId }));
864
865
  }
865
866
  }
866
867
  if (mesh) {
@@ -868,7 +869,7 @@ export class InputManager {
868
869
  this._pointerOverMesh = mesh;
869
870
  actionManager = mesh._getActionManagerForTrigger(9);
870
871
  if (actionManager) {
871
- actionManager.processTrigger(9, ActionEvent.CreateNew(mesh, undefined, { pointerId, pickResult }));
872
+ actionManager.processTrigger(9, ActionEvent.CreateNew(mesh, evt, { pointerId, pickResult }));
872
873
  }
873
874
  }
874
875
  else {