@babylonjs/core 5.0.0-beta.3 → 5.0.0-beta.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (675) hide show
  1. package/Actions/actionManager.d.ts +1 -1
  2. package/Actions/actionManager.js +5 -1
  3. package/Actions/actionManager.js.map +1 -1
  4. package/Audio/analyser.d.ts +2 -1
  5. package/Audio/analyser.js +5 -0
  6. package/Audio/analyser.js.map +1 -1
  7. package/Audio/audioSceneComponent.d.ts +1 -1
  8. package/Audio/audioSceneComponent.js +5 -0
  9. package/Audio/audioSceneComponent.js.map +1 -1
  10. package/Audio/sound.d.ts +1 -1
  11. package/Audio/sound.js +8 -1
  12. package/Audio/sound.js.map +1 -1
  13. package/Audio/soundTrack.d.ts +2 -1
  14. package/Audio/soundTrack.js +5 -0
  15. package/Audio/soundTrack.js.map +1 -1
  16. package/BakedVertexAnimation/bakedVertexAnimationManager.d.ts +1 -1
  17. package/BakedVertexAnimation/bakedVertexAnimationManager.js +5 -0
  18. package/BakedVertexAnimation/bakedVertexAnimationManager.js.map +1 -1
  19. package/Behaviors/Meshes/baseSixDofDragBehavior.js +29 -26
  20. package/Behaviors/Meshes/baseSixDofDragBehavior.js.map +1 -1
  21. package/Behaviors/Meshes/pointerDragBehavior.js +2 -0
  22. package/Behaviors/Meshes/pointerDragBehavior.js.map +1 -1
  23. package/Bones/bone.d.ts +2 -1
  24. package/Bones/bone.js +28 -18
  25. package/Bones/bone.js.map +1 -1
  26. package/Bones/skeleton.js +3 -3
  27. package/Bones/skeleton.js.map +1 -1
  28. package/Buffers/buffer.d.ts +4 -0
  29. package/Buffers/buffer.js +13 -3
  30. package/Buffers/buffer.js.map +1 -1
  31. package/Cameras/Inputs/freeCameraMouseInput.d.ts +1 -0
  32. package/Cameras/Inputs/freeCameraMouseInput.js +6 -3
  33. package/Cameras/Inputs/freeCameraMouseInput.js.map +1 -1
  34. package/Cameras/Inputs/freeCameraTouchInput.js +2 -4
  35. package/Cameras/Inputs/freeCameraTouchInput.js.map +1 -1
  36. package/Cameras/Stereoscopic/anaglyphArcRotateCamera.d.ts +1 -1
  37. package/Cameras/Stereoscopic/anaglyphArcRotateCamera.js.map +1 -1
  38. package/Cameras/Stereoscopic/anaglyphFreeCamera.d.ts +1 -1
  39. package/Cameras/Stereoscopic/anaglyphFreeCamera.js.map +1 -1
  40. package/Cameras/Stereoscopic/anaglyphGamepadCamera.d.ts +1 -1
  41. package/Cameras/Stereoscopic/anaglyphGamepadCamera.js.map +1 -1
  42. package/Cameras/Stereoscopic/anaglyphUniversalCamera.d.ts +1 -1
  43. package/Cameras/Stereoscopic/anaglyphUniversalCamera.js.map +1 -1
  44. package/Cameras/Stereoscopic/stereoscopicArcRotateCamera.d.ts +1 -1
  45. package/Cameras/Stereoscopic/stereoscopicArcRotateCamera.js.map +1 -1
  46. package/Cameras/Stereoscopic/stereoscopicFreeCamera.d.ts +1 -1
  47. package/Cameras/Stereoscopic/stereoscopicFreeCamera.js.map +1 -1
  48. package/Cameras/Stereoscopic/stereoscopicGamepadCamera.d.ts +1 -1
  49. package/Cameras/Stereoscopic/stereoscopicGamepadCamera.js.map +1 -1
  50. package/Cameras/Stereoscopic/stereoscopicScreenUniversalCamera.d.ts +1 -1
  51. package/Cameras/Stereoscopic/stereoscopicScreenUniversalCamera.js.map +1 -1
  52. package/Cameras/Stereoscopic/stereoscopicUniversalCamera.d.ts +1 -1
  53. package/Cameras/Stereoscopic/stereoscopicUniversalCamera.js.map +1 -1
  54. package/Cameras/VR/vrDeviceOrientationArcRotateCamera.d.ts +1 -1
  55. package/Cameras/VR/vrDeviceOrientationArcRotateCamera.js.map +1 -1
  56. package/Cameras/VR/vrDeviceOrientationFreeCamera.d.ts +1 -1
  57. package/Cameras/VR/vrDeviceOrientationFreeCamera.js.map +1 -1
  58. package/Cameras/VR/vrDeviceOrientationGamepadCamera.d.ts +1 -1
  59. package/Cameras/VR/vrDeviceOrientationGamepadCamera.js.map +1 -1
  60. package/Cameras/VR/vrExperienceHelper.d.ts +1 -0
  61. package/Cameras/VR/vrExperienceHelper.js +1 -0
  62. package/Cameras/VR/vrExperienceHelper.js.map +1 -1
  63. package/Cameras/VR/webVRCamera.d.ts +2 -1
  64. package/Cameras/VR/webVRCamera.js +3 -2
  65. package/Cameras/VR/webVRCamera.js.map +1 -1
  66. package/Cameras/arcRotateCamera.d.ts +1 -1
  67. package/Cameras/arcRotateCamera.js.map +1 -1
  68. package/Cameras/camera.d.ts +1 -1
  69. package/Cameras/camera.js +1 -1
  70. package/Cameras/camera.js.map +1 -1
  71. package/Cameras/deviceOrientationCamera.d.ts +1 -1
  72. package/Cameras/deviceOrientationCamera.js.map +1 -1
  73. package/Cameras/flyCamera.d.ts +1 -1
  74. package/Cameras/flyCamera.js.map +1 -1
  75. package/Cameras/followCamera.d.ts +1 -1
  76. package/Cameras/followCamera.js.map +1 -1
  77. package/Cameras/freeCamera.d.ts +1 -1
  78. package/Cameras/freeCamera.js.map +1 -1
  79. package/Cameras/gamepadCamera.d.ts +1 -1
  80. package/Cameras/gamepadCamera.js.map +1 -1
  81. package/Cameras/targetCamera.d.ts +1 -1
  82. package/Cameras/targetCamera.js.map +1 -1
  83. package/Cameras/touchCamera.d.ts +1 -1
  84. package/Cameras/touchCamera.js.map +1 -1
  85. package/Cameras/universalCamera.d.ts +1 -1
  86. package/Cameras/universalCamera.js.map +1 -1
  87. package/Cameras/virtualJoysticksCamera.d.ts +1 -1
  88. package/Cameras/virtualJoysticksCamera.js.map +1 -1
  89. package/Collisions/collider.d.ts +1 -1
  90. package/Collisions/collider.js +48 -2
  91. package/Collisions/collider.js.map +1 -1
  92. package/Compute/computeEffect.js +2 -2
  93. package/Compute/computeEffect.js.map +1 -1
  94. package/Culling/Octrees/octreeSceneComponent.d.ts +1 -1
  95. package/Culling/Octrees/octreeSceneComponent.js +5 -0
  96. package/Culling/Octrees/octreeSceneComponent.js.map +1 -1
  97. package/Culling/ray.d.ts +6 -4
  98. package/Culling/ray.js +31 -10
  99. package/Culling/ray.js.map +1 -1
  100. package/Debug/axesViewer.d.ts +1 -1
  101. package/Debug/axesViewer.js +5 -0
  102. package/Debug/axesViewer.js.map +1 -1
  103. package/Debug/debugLayer.d.ts +1 -1
  104. package/Debug/debugLayer.js +6 -2
  105. package/Debug/debugLayer.js.map +1 -1
  106. package/Debug/physicsViewer.d.ts +1 -1
  107. package/Debug/physicsViewer.js +3 -0
  108. package/Debug/physicsViewer.js.map +1 -1
  109. package/DeviceInput/Helpers/eventFactory.d.ts +1 -1
  110. package/DeviceInput/Helpers/eventFactory.js +2 -5
  111. package/DeviceInput/Helpers/eventFactory.js.map +1 -1
  112. package/DeviceInput/InputDevices/deviceEnums.d.ts +55 -2
  113. package/DeviceInput/InputDevices/deviceEnums.js +54 -0
  114. package/DeviceInput/InputDevices/deviceEnums.js.map +1 -1
  115. package/DeviceInput/InputDevices/deviceSource.d.ts +35 -0
  116. package/DeviceInput/InputDevices/deviceSource.js +38 -0
  117. package/DeviceInput/InputDevices/deviceSource.js.map +1 -0
  118. package/DeviceInput/InputDevices/deviceSourceManager.d.ts +14 -72
  119. package/DeviceInput/InputDevices/deviceSourceManager.js +10 -180
  120. package/DeviceInput/InputDevices/deviceSourceManager.js.map +1 -1
  121. package/DeviceInput/InputDevices/deviceTypes.d.ts +2 -2
  122. package/DeviceInput/InputDevices/deviceTypes.js.map +1 -1
  123. package/DeviceInput/{Interfaces → InputDevices}/inputInterfaces.d.ts +1 -5
  124. package/DeviceInput/{Interfaces → InputDevices}/inputInterfaces.js +0 -0
  125. package/DeviceInput/InputDevices/inputInterfaces.js.map +1 -0
  126. package/DeviceInput/InputDevices/internalDeviceSourceManager.d.ts +46 -0
  127. package/DeviceInput/InputDevices/internalDeviceSourceManager.js +144 -0
  128. package/DeviceInput/InputDevices/internalDeviceSourceManager.js.map +1 -0
  129. package/DeviceInput/{Implementations → InputDevices}/nativeDeviceInputSystem.d.ts +3 -7
  130. package/DeviceInput/{Implementations → InputDevices}/nativeDeviceInputSystem.js +11 -16
  131. package/DeviceInput/InputDevices/nativeDeviceInputSystem.js.map +1 -0
  132. package/DeviceInput/{Implementations → InputDevices}/webDeviceInputSystem.d.ts +11 -15
  133. package/DeviceInput/{Implementations → InputDevices}/webDeviceInputSystem.js +121 -146
  134. package/DeviceInput/InputDevices/webDeviceInputSystem.js.map +1 -0
  135. package/DeviceInput/index.d.ts +1 -5
  136. package/DeviceInput/index.js +1 -5
  137. package/DeviceInput/index.js.map +1 -1
  138. package/Engines/Extensions/engine.cubeTexture.d.ts +1 -1
  139. package/Engines/Extensions/engine.cubeTexture.js +6 -2
  140. package/Engines/Extensions/engine.cubeTexture.js.map +1 -1
  141. package/Engines/Extensions/engine.multiview.d.ts +5 -0
  142. package/Engines/Extensions/engine.multiview.js +4 -1
  143. package/Engines/Extensions/engine.multiview.js.map +1 -1
  144. package/Engines/Native/nativeInterfaces.d.ts +3 -2
  145. package/Engines/Native/nativeInterfaces.js.map +1 -1
  146. package/Engines/Processors/Expressions/shaderDefineExpression.js +1 -1
  147. package/Engines/Processors/Expressions/shaderDefineExpression.js.map +1 -1
  148. package/Engines/Processors/shaderCodeInliner.js +13 -13
  149. package/Engines/Processors/shaderCodeInliner.js.map +1 -1
  150. package/Engines/WebGPU/Extensions/engine.cubeTexture.js +4 -1
  151. package/Engines/WebGPU/Extensions/engine.cubeTexture.js.map +1 -1
  152. package/Engines/WebGPU/webgpuCacheBindGroups.js +9 -9
  153. package/Engines/WebGPU/webgpuCacheBindGroups.js.map +1 -1
  154. package/Engines/WebGPU/webgpuCacheRenderPipeline.js +1 -1
  155. package/Engines/WebGPU/webgpuCacheRenderPipeline.js.map +1 -1
  156. package/Engines/WebGPU/webgpuComputeContext.js +1 -1
  157. package/Engines/WebGPU/webgpuComputeContext.js.map +1 -1
  158. package/Engines/WebGPU/webgpuShaderProcessorsGLSL.js +13 -13
  159. package/Engines/WebGPU/webgpuShaderProcessorsGLSL.js.map +1 -1
  160. package/Engines/WebGPU/webgpuShaderProcessorsWGSL.js +30 -30
  161. package/Engines/WebGPU/webgpuShaderProcessorsWGSL.js.map +1 -1
  162. package/Engines/WebGPU/webgpuTextureHelper.js +13 -6
  163. package/Engines/WebGPU/webgpuTextureHelper.js.map +1 -1
  164. package/Engines/engine.d.ts +2 -6
  165. package/Engines/engine.js +1 -5
  166. package/Engines/engine.js.map +1 -1
  167. package/Engines/engineCapabilities.d.ts +4 -0
  168. package/Engines/engineCapabilities.js.map +1 -1
  169. package/Engines/nativeEngine.d.ts +1 -0
  170. package/Engines/nativeEngine.js +39 -12
  171. package/Engines/nativeEngine.js.map +1 -1
  172. package/Engines/nullEngine.js +3 -1
  173. package/Engines/nullEngine.js.map +1 -1
  174. package/Engines/renderTargetWrapper.d.ts +8 -0
  175. package/Engines/renderTargetWrapper.js +20 -0
  176. package/Engines/renderTargetWrapper.js.map +1 -1
  177. package/Engines/thinEngine.d.ts +17 -1
  178. package/Engines/thinEngine.js +50 -20
  179. package/Engines/thinEngine.js.map +1 -1
  180. package/Engines/webgpuEngine.d.ts +0 -4
  181. package/Engines/webgpuEngine.js +7 -14
  182. package/Engines/webgpuEngine.js.map +1 -1
  183. package/Gamepads/Controllers/daydreamController.js +1 -1
  184. package/Gamepads/Controllers/daydreamController.js.map +1 -1
  185. package/Gamepads/Controllers/oculusTouchController.js +2 -2
  186. package/Gamepads/Controllers/oculusTouchController.js.map +1 -1
  187. package/Gamepads/Controllers/webVRController.d.ts +1 -0
  188. package/Gamepads/Controllers/webVRController.js +1 -0
  189. package/Gamepads/Controllers/webVRController.js.map +1 -1
  190. package/Gamepads/gamepadManager.js +1 -1
  191. package/Gamepads/gamepadManager.js.map +1 -1
  192. package/Gizmos/gizmoManager.d.ts +2 -0
  193. package/Gizmos/gizmoManager.js +28 -24
  194. package/Gizmos/gizmoManager.js.map +1 -1
  195. package/Helpers/sceneHelpers.d.ts +1 -0
  196. package/Helpers/sceneHelpers.js.map +1 -1
  197. package/Inputs/scene.inputManager.d.ts +2 -2
  198. package/Inputs/scene.inputManager.js +11 -13
  199. package/Inputs/scene.inputManager.js.map +1 -1
  200. package/Instrumentation/sceneInstrumentation.js +2 -2
  201. package/Instrumentation/sceneInstrumentation.js.map +1 -1
  202. package/Layers/effectLayer.d.ts +1 -1
  203. package/Layers/effectLayer.js +1 -1
  204. package/Layers/effectLayer.js.map +1 -1
  205. package/Layers/effectLayerSceneComponent.d.ts +1 -1
  206. package/Layers/effectLayerSceneComponent.js +7 -3
  207. package/Layers/effectLayerSceneComponent.js.map +1 -1
  208. package/Layers/glowLayer.d.ts +1 -1
  209. package/Layers/glowLayer.js.map +1 -1
  210. package/Layers/highlightLayer.d.ts +1 -1
  211. package/Layers/highlightLayer.js +2 -1
  212. package/Layers/highlightLayer.js.map +1 -1
  213. package/Layers/layer.d.ts +2 -2
  214. package/Layers/layer.js.map +1 -1
  215. package/Layers/layerSceneComponent.d.ts +1 -1
  216. package/Layers/layerSceneComponent.js +7 -3
  217. package/Layers/layerSceneComponent.js.map +1 -1
  218. package/Lights/Shadows/cascadedShadowGenerator.js +2 -2
  219. package/Lights/Shadows/cascadedShadowGenerator.js.map +1 -1
  220. package/Lights/Shadows/shadowGenerator.js +2 -2
  221. package/Lights/Shadows/shadowGenerator.js.map +1 -1
  222. package/Loading/Plugins/babylonFileLoader.js +115 -29
  223. package/Loading/Plugins/babylonFileLoader.js.map +1 -1
  224. package/Loading/loadingScreen.js +8 -8
  225. package/Loading/loadingScreen.js.map +1 -1
  226. package/Loading/sceneLoader.js +3 -3
  227. package/Loading/sceneLoader.js.map +1 -1
  228. package/Materials/Background/backgroundMaterial.d.ts +1 -1
  229. package/Materials/Background/backgroundMaterial.js.map +1 -1
  230. package/Materials/Node/Blocks/Dual/clipPlanesBlock.d.ts +37 -0
  231. package/Materials/Node/Blocks/Dual/clipPlanesBlock.js +117 -0
  232. package/Materials/Node/Blocks/Dual/clipPlanesBlock.js.map +1 -0
  233. package/Materials/Node/Blocks/Dual/currentScreenBlock.js +12 -12
  234. package/Materials/Node/Blocks/Dual/currentScreenBlock.js.map +1 -1
  235. package/Materials/Node/Blocks/Dual/fogBlock.js +5 -5
  236. package/Materials/Node/Blocks/Dual/fogBlock.js.map +1 -1
  237. package/Materials/Node/Blocks/Dual/imageSourceBlock.js +13 -13
  238. package/Materials/Node/Blocks/Dual/imageSourceBlock.js.map +1 -1
  239. package/Materials/Node/Blocks/Dual/index.d.ts +1 -0
  240. package/Materials/Node/Blocks/Dual/index.js +1 -0
  241. package/Materials/Node/Blocks/Dual/index.js.map +1 -1
  242. package/Materials/Node/Blocks/Dual/lightBlock.js +10 -10
  243. package/Materials/Node/Blocks/Dual/lightBlock.js.map +1 -1
  244. package/Materials/Node/Blocks/Dual/reflectionTextureBaseBlock.js +28 -28
  245. package/Materials/Node/Blocks/Dual/reflectionTextureBaseBlock.js.map +1 -1
  246. package/Materials/Node/Blocks/Dual/reflectionTextureBlock.js +1 -1
  247. package/Materials/Node/Blocks/Dual/reflectionTextureBlock.js.map +1 -1
  248. package/Materials/Node/Blocks/Dual/sceneDepthBlock.js +7 -7
  249. package/Materials/Node/Blocks/Dual/sceneDepthBlock.js.map +1 -1
  250. package/Materials/Node/Blocks/Dual/textureBlock.js +32 -32
  251. package/Materials/Node/Blocks/Dual/textureBlock.js.map +1 -1
  252. package/Materials/Node/Blocks/Fragment/derivativeBlock.js +2 -2
  253. package/Materials/Node/Blocks/Fragment/derivativeBlock.js.map +1 -1
  254. package/Materials/Node/Blocks/Fragment/discardBlock.js +1 -1
  255. package/Materials/Node/Blocks/Fragment/discardBlock.js.map +1 -1
  256. package/Materials/Node/Blocks/Fragment/fragCoordBlock.js +1 -1
  257. package/Materials/Node/Blocks/Fragment/fragCoordBlock.js.map +1 -1
  258. package/Materials/Node/Blocks/Fragment/fragmentOutputBlock.js +10 -10
  259. package/Materials/Node/Blocks/Fragment/fragmentOutputBlock.js.map +1 -1
  260. package/Materials/Node/Blocks/Fragment/imageProcessingBlock.js +7 -7
  261. package/Materials/Node/Blocks/Fragment/imageProcessingBlock.js.map +1 -1
  262. package/Materials/Node/Blocks/Fragment/perturbNormalBlock.js +12 -12
  263. package/Materials/Node/Blocks/Fragment/perturbNormalBlock.js.map +1 -1
  264. package/Materials/Node/Blocks/Fragment/screenSizeBlock.js +1 -1
  265. package/Materials/Node/Blocks/Fragment/screenSizeBlock.js.map +1 -1
  266. package/Materials/Node/Blocks/Fragment/screenSpaceBlock.js +7 -7
  267. package/Materials/Node/Blocks/Fragment/screenSpaceBlock.js.map +1 -1
  268. package/Materials/Node/Blocks/Fragment/twirlBlock.js +4 -4
  269. package/Materials/Node/Blocks/Fragment/twirlBlock.js.map +1 -1
  270. package/Materials/Node/Blocks/Input/inputBlock.d.ts +2 -1
  271. package/Materials/Node/Blocks/Input/inputBlock.js +29 -24
  272. package/Materials/Node/Blocks/Input/inputBlock.js.map +1 -1
  273. package/Materials/Node/Blocks/PBR/anisotropyBlock.js +5 -5
  274. package/Materials/Node/Blocks/PBR/anisotropyBlock.js.map +1 -1
  275. package/Materials/Node/Blocks/PBR/clearCoatBlock.js +5 -5
  276. package/Materials/Node/Blocks/PBR/clearCoatBlock.js.map +1 -1
  277. package/Materials/Node/Blocks/PBR/pbrMetallicRoughnessBlock.js +33 -33
  278. package/Materials/Node/Blocks/PBR/pbrMetallicRoughnessBlock.js.map +1 -1
  279. package/Materials/Node/Blocks/PBR/reflectionBlock.js +11 -11
  280. package/Materials/Node/Blocks/PBR/reflectionBlock.js.map +1 -1
  281. package/Materials/Node/Blocks/PBR/refractionBlock.js +11 -11
  282. package/Materials/Node/Blocks/PBR/refractionBlock.js.map +1 -1
  283. package/Materials/Node/Blocks/PBR/sheenBlock.js +3 -3
  284. package/Materials/Node/Blocks/PBR/sheenBlock.js.map +1 -1
  285. package/Materials/Node/Blocks/PBR/subSurfaceBlock.js +1 -1
  286. package/Materials/Node/Blocks/PBR/subSurfaceBlock.js.map +1 -1
  287. package/Materials/Node/Blocks/Particle/particleBlendMultiplyBlock.js +1 -1
  288. package/Materials/Node/Blocks/Particle/particleBlendMultiplyBlock.js.map +1 -1
  289. package/Materials/Node/Blocks/Particle/particleRampGradientBlock.js +1 -1
  290. package/Materials/Node/Blocks/Particle/particleRampGradientBlock.js.map +1 -1
  291. package/Materials/Node/Blocks/Particle/particleTextureBlock.js +7 -7
  292. package/Materials/Node/Blocks/Particle/particleTextureBlock.js.map +1 -1
  293. package/Materials/Node/Blocks/Vertex/bonesBlock.js +3 -3
  294. package/Materials/Node/Blocks/Vertex/bonesBlock.js.map +1 -1
  295. package/Materials/Node/Blocks/Vertex/instancesBlock.js +3 -3
  296. package/Materials/Node/Blocks/Vertex/instancesBlock.js.map +1 -1
  297. package/Materials/Node/Blocks/Vertex/lightInformationBlock.js +5 -5
  298. package/Materials/Node/Blocks/Vertex/lightInformationBlock.js.map +1 -1
  299. package/Materials/Node/Blocks/Vertex/morphTargetsBlock.js +16 -16
  300. package/Materials/Node/Blocks/Vertex/morphTargetsBlock.js.map +1 -1
  301. package/Materials/Node/Blocks/Vertex/vertexOutputBlock.js +1 -1
  302. package/Materials/Node/Blocks/Vertex/vertexOutputBlock.js.map +1 -1
  303. package/Materials/Node/Blocks/addBlock.js +1 -1
  304. package/Materials/Node/Blocks/addBlock.js.map +1 -1
  305. package/Materials/Node/Blocks/arcTan2Block.js +1 -1
  306. package/Materials/Node/Blocks/arcTan2Block.js.map +1 -1
  307. package/Materials/Node/Blocks/clampBlock.js +3 -3
  308. package/Materials/Node/Blocks/clampBlock.js.map +1 -1
  309. package/Materials/Node/Blocks/cloudBlock.js +7 -7
  310. package/Materials/Node/Blocks/cloudBlock.js.map +1 -1
  311. package/Materials/Node/Blocks/colorMergerBlock.js +8 -8
  312. package/Materials/Node/Blocks/colorMergerBlock.js.map +1 -1
  313. package/Materials/Node/Blocks/colorSplitterBlock.js +5 -5
  314. package/Materials/Node/Blocks/colorSplitterBlock.js.map +1 -1
  315. package/Materials/Node/Blocks/conditionalBlock.js +10 -10
  316. package/Materials/Node/Blocks/conditionalBlock.js.map +1 -1
  317. package/Materials/Node/Blocks/crossBlock.js +1 -1
  318. package/Materials/Node/Blocks/crossBlock.js.map +1 -1
  319. package/Materials/Node/Blocks/customBlock.js +1 -1
  320. package/Materials/Node/Blocks/customBlock.js.map +1 -1
  321. package/Materials/Node/Blocks/desaturateBlock.js +4 -4
  322. package/Materials/Node/Blocks/desaturateBlock.js.map +1 -1
  323. package/Materials/Node/Blocks/distanceBlock.js +1 -1
  324. package/Materials/Node/Blocks/distanceBlock.js.map +1 -1
  325. package/Materials/Node/Blocks/divideBlock.js +1 -1
  326. package/Materials/Node/Blocks/divideBlock.js.map +1 -1
  327. package/Materials/Node/Blocks/dotBlock.js +1 -1
  328. package/Materials/Node/Blocks/dotBlock.js.map +1 -1
  329. package/Materials/Node/Blocks/elbowBlock.d.ts +27 -0
  330. package/Materials/Node/Blocks/elbowBlock.js +60 -0
  331. package/Materials/Node/Blocks/elbowBlock.js.map +1 -0
  332. package/Materials/Node/Blocks/fresnelBlock.js +2 -2
  333. package/Materials/Node/Blocks/fresnelBlock.js.map +1 -1
  334. package/Materials/Node/Blocks/gradientBlock.js +8 -8
  335. package/Materials/Node/Blocks/gradientBlock.js.map +1 -1
  336. package/Materials/Node/Blocks/index.d.ts +1 -0
  337. package/Materials/Node/Blocks/index.js +1 -0
  338. package/Materials/Node/Blocks/index.js.map +1 -1
  339. package/Materials/Node/Blocks/lengthBlock.js +1 -1
  340. package/Materials/Node/Blocks/lengthBlock.js.map +1 -1
  341. package/Materials/Node/Blocks/lerpBlock.js +1 -1
  342. package/Materials/Node/Blocks/lerpBlock.js.map +1 -1
  343. package/Materials/Node/Blocks/matrixBuilderBlock.js +1 -1
  344. package/Materials/Node/Blocks/matrixBuilderBlock.js.map +1 -1
  345. package/Materials/Node/Blocks/maxBlock.js +1 -1
  346. package/Materials/Node/Blocks/maxBlock.js.map +1 -1
  347. package/Materials/Node/Blocks/minBlock.js +1 -1
  348. package/Materials/Node/Blocks/minBlock.js.map +1 -1
  349. package/Materials/Node/Blocks/modBlock.js +1 -1
  350. package/Materials/Node/Blocks/modBlock.js.map +1 -1
  351. package/Materials/Node/Blocks/multiplyBlock.js +1 -1
  352. package/Materials/Node/Blocks/multiplyBlock.js.map +1 -1
  353. package/Materials/Node/Blocks/nLerpBlock.js +1 -1
  354. package/Materials/Node/Blocks/nLerpBlock.js.map +1 -1
  355. package/Materials/Node/Blocks/negateBlock.js +1 -1
  356. package/Materials/Node/Blocks/negateBlock.js.map +1 -1
  357. package/Materials/Node/Blocks/normalBlendBlock.js +5 -5
  358. package/Materials/Node/Blocks/normalBlendBlock.js.map +1 -1
  359. package/Materials/Node/Blocks/normalizeBlock.js +1 -1
  360. package/Materials/Node/Blocks/normalizeBlock.js.map +1 -1
  361. package/Materials/Node/Blocks/oneMinusBlock.js +1 -1
  362. package/Materials/Node/Blocks/oneMinusBlock.js.map +1 -1
  363. package/Materials/Node/Blocks/posterizeBlock.js +1 -1
  364. package/Materials/Node/Blocks/posterizeBlock.js.map +1 -1
  365. package/Materials/Node/Blocks/powBlock.js +1 -1
  366. package/Materials/Node/Blocks/powBlock.js.map +1 -1
  367. package/Materials/Node/Blocks/randomNumberBlock.js +2 -2
  368. package/Materials/Node/Blocks/randomNumberBlock.js.map +1 -1
  369. package/Materials/Node/Blocks/reciprocalBlock.js +1 -1
  370. package/Materials/Node/Blocks/reciprocalBlock.js.map +1 -1
  371. package/Materials/Node/Blocks/reflectBlock.js +1 -1
  372. package/Materials/Node/Blocks/reflectBlock.js.map +1 -1
  373. package/Materials/Node/Blocks/refractBlock.js +1 -1
  374. package/Materials/Node/Blocks/refractBlock.js.map +1 -1
  375. package/Materials/Node/Blocks/remapBlock.js +3 -3
  376. package/Materials/Node/Blocks/remapBlock.js.map +1 -1
  377. package/Materials/Node/Blocks/replaceColorBlock.js +3 -3
  378. package/Materials/Node/Blocks/replaceColorBlock.js.map +1 -1
  379. package/Materials/Node/Blocks/rotate2dBlock.js +1 -1
  380. package/Materials/Node/Blocks/rotate2dBlock.js.map +1 -1
  381. package/Materials/Node/Blocks/scaleBlock.js +1 -1
  382. package/Materials/Node/Blocks/scaleBlock.js.map +1 -1
  383. package/Materials/Node/Blocks/simplexPerlin3DBlock.js +1 -1
  384. package/Materials/Node/Blocks/simplexPerlin3DBlock.js.map +1 -1
  385. package/Materials/Node/Blocks/smoothStepBlock.js +1 -1
  386. package/Materials/Node/Blocks/smoothStepBlock.js.map +1 -1
  387. package/Materials/Node/Blocks/stepBlock.js +1 -1
  388. package/Materials/Node/Blocks/stepBlock.js.map +1 -1
  389. package/Materials/Node/Blocks/subtractBlock.js +1 -1
  390. package/Materials/Node/Blocks/subtractBlock.js.map +1 -1
  391. package/Materials/Node/Blocks/transformBlock.js +13 -13
  392. package/Materials/Node/Blocks/transformBlock.js.map +1 -1
  393. package/Materials/Node/Blocks/trigonometryBlock.js +2 -2
  394. package/Materials/Node/Blocks/trigonometryBlock.js.map +1 -1
  395. package/Materials/Node/Blocks/vectorMergerBlock.js +22 -22
  396. package/Materials/Node/Blocks/vectorMergerBlock.js.map +1 -1
  397. package/Materials/Node/Blocks/vectorSplitterBlock.js +8 -8
  398. package/Materials/Node/Blocks/vectorSplitterBlock.js.map +1 -1
  399. package/Materials/Node/Blocks/viewDirectionBlock.js +1 -1
  400. package/Materials/Node/Blocks/viewDirectionBlock.js.map +1 -1
  401. package/Materials/Node/Blocks/voronoiNoiseBlock.js +5 -5
  402. package/Materials/Node/Blocks/voronoiNoiseBlock.js.map +1 -1
  403. package/Materials/Node/Blocks/waveBlock.js +3 -3
  404. package/Materials/Node/Blocks/waveBlock.js.map +1 -1
  405. package/Materials/Node/Blocks/worleyNoise3DBlock.js +5 -5
  406. package/Materials/Node/Blocks/worleyNoise3DBlock.js.map +1 -1
  407. package/Materials/Node/Enums/nodeMaterialSystemValues.d.ts +3 -1
  408. package/Materials/Node/Enums/nodeMaterialSystemValues.js +2 -0
  409. package/Materials/Node/Enums/nodeMaterialSystemValues.js.map +1 -1
  410. package/Materials/Node/nodeMaterial.d.ts +4 -0
  411. package/Materials/Node/nodeMaterial.js +22 -11
  412. package/Materials/Node/nodeMaterial.js.map +1 -1
  413. package/Materials/Node/nodeMaterialBlock.js +12 -12
  414. package/Materials/Node/nodeMaterialBlock.js.map +1 -1
  415. package/Materials/Node/nodeMaterialBuildState.js +24 -24
  416. package/Materials/Node/nodeMaterialBuildState.js.map +1 -1
  417. package/Materials/Node/nodeMaterialBuildStateSharedData.js +1 -1
  418. package/Materials/Node/nodeMaterialBuildStateSharedData.js.map +1 -1
  419. package/Materials/PBR/pbrBaseMaterial.d.ts +2 -1
  420. package/Materials/PBR/pbrBaseMaterial.js +4 -3
  421. package/Materials/PBR/pbrBaseMaterial.js.map +1 -1
  422. package/Materials/PBR/pbrBaseSimpleMaterial.d.ts +1 -1
  423. package/Materials/PBR/pbrBaseSimpleMaterial.js.map +1 -1
  424. package/Materials/PBR/pbrMaterial.d.ts +1 -1
  425. package/Materials/PBR/pbrMaterial.js +2 -3
  426. package/Materials/PBR/pbrMaterial.js.map +1 -1
  427. package/Materials/PBR/pbrMetallicRoughnessMaterial.d.ts +1 -1
  428. package/Materials/PBR/pbrMetallicRoughnessMaterial.js.map +1 -1
  429. package/Materials/PBR/pbrSpecularGlossinessMaterial.d.ts +1 -1
  430. package/Materials/PBR/pbrSpecularGlossinessMaterial.js.map +1 -1
  431. package/Materials/Textures/Loaders/ddsTextureLoader.js +8 -1
  432. package/Materials/Textures/Loaders/ddsTextureLoader.js.map +1 -1
  433. package/Materials/Textures/Loaders/ktxTextureLoader.js +2 -2
  434. package/Materials/Textures/Loaders/ktxTextureLoader.js.map +1 -1
  435. package/Materials/Textures/MultiviewRenderTarget.d.ts +2 -1
  436. package/Materials/Textures/MultiviewRenderTarget.js +10 -2
  437. package/Materials/Textures/MultiviewRenderTarget.js.map +1 -1
  438. package/Materials/Textures/Procedurals/proceduralTexture.js +1 -1
  439. package/Materials/Textures/Procedurals/proceduralTexture.js.map +1 -1
  440. package/Materials/Textures/baseTexture.d.ts +1 -1
  441. package/Materials/Textures/baseTexture.js.map +1 -1
  442. package/Materials/Textures/equiRectangularCubeTexture.js +1 -1
  443. package/Materials/Textures/equiRectangularCubeTexture.js.map +1 -1
  444. package/Materials/Textures/internalTexture.d.ts +2 -0
  445. package/Materials/Textures/internalTexture.js +2 -0
  446. package/Materials/Textures/internalTexture.js.map +1 -1
  447. package/Materials/Textures/mirrorTexture.d.ts +2 -2
  448. package/Materials/Textures/mirrorTexture.js +7 -3
  449. package/Materials/Textures/mirrorTexture.js.map +1 -1
  450. package/Materials/Textures/multiRenderTarget.d.ts +1 -1
  451. package/Materials/Textures/multiRenderTarget.js.map +1 -1
  452. package/Materials/Textures/prePassRenderTarget.d.ts +1 -1
  453. package/Materials/Textures/prePassRenderTarget.js.map +1 -1
  454. package/Materials/Textures/refractionTexture.d.ts +1 -1
  455. package/Materials/Textures/refractionTexture.js +2 -2
  456. package/Materials/Textures/refractionTexture.js.map +1 -1
  457. package/Materials/Textures/renderTargetTexture.d.ts +1 -1
  458. package/Materials/Textures/renderTargetTexture.js +2 -2
  459. package/Materials/Textures/renderTargetTexture.js.map +1 -1
  460. package/Materials/Textures/texture.d.ts +1 -1
  461. package/Materials/Textures/texture.js.map +1 -1
  462. package/Materials/Textures/videoTexture.js +1 -0
  463. package/Materials/Textures/videoTexture.js.map +1 -1
  464. package/Materials/effect.js +3 -3
  465. package/Materials/effect.js.map +1 -1
  466. package/Materials/material.d.ts +3 -1
  467. package/Materials/material.js +11 -3
  468. package/Materials/material.js.map +1 -1
  469. package/Materials/materialHelper.js +9 -1
  470. package/Materials/materialHelper.js.map +1 -1
  471. package/Materials/materialPluginManager.js +3 -3
  472. package/Materials/materialPluginManager.js.map +1 -1
  473. package/Materials/multiMaterial.d.ts +3 -1
  474. package/Materials/multiMaterial.js +13 -11
  475. package/Materials/multiMaterial.js.map +1 -1
  476. package/Materials/pushMaterial.d.ts +1 -1
  477. package/Materials/pushMaterial.js.map +1 -1
  478. package/Materials/shaderMaterial.js +8 -4
  479. package/Materials/shaderMaterial.js.map +1 -1
  480. package/Materials/shadowDepthWrapper.d.ts +1 -1
  481. package/Materials/shadowDepthWrapper.js +3 -3
  482. package/Materials/shadowDepthWrapper.js.map +1 -1
  483. package/Materials/standardMaterial.d.ts +2 -6
  484. package/Materials/standardMaterial.js +5 -10
  485. package/Materials/standardMaterial.js.map +1 -1
  486. package/Maths/math.size.js +1 -1
  487. package/Maths/math.size.js.map +1 -1
  488. package/Maths/math.vector.d.ts +4 -2
  489. package/Maths/math.vector.js +34 -32
  490. package/Maths/math.vector.js.map +1 -1
  491. package/Meshes/Builders/cylinderBuilder.d.ts +1 -1
  492. package/Meshes/Builders/cylinderBuilder.js +1 -1
  493. package/Meshes/Builders/cylinderBuilder.js.map +1 -1
  494. package/Meshes/Builders/linesBuilder.js.map +1 -1
  495. package/Meshes/Compression/dracoCompression.d.ts +3 -0
  496. package/Meshes/Compression/dracoCompression.js +23 -7
  497. package/Meshes/Compression/dracoCompression.js.map +1 -1
  498. package/Meshes/abstractMesh.d.ts +6 -0
  499. package/Meshes/abstractMesh.js +18 -2
  500. package/Meshes/abstractMesh.js.map +1 -1
  501. package/Meshes/geometry.d.ts +1 -1
  502. package/Meshes/geometry.js +7 -3
  503. package/Meshes/geometry.js.map +1 -1
  504. package/Meshes/groundMesh.d.ts +1 -1
  505. package/Meshes/groundMesh.js.map +1 -1
  506. package/Meshes/mesh.js +21 -6
  507. package/Meshes/mesh.js.map +1 -1
  508. package/Meshes/mesh.lts.d.ts +1 -1
  509. package/Meshes/mesh.lts.js.map +1 -1
  510. package/Meshes/mesh.vertexData.d.ts +1 -1
  511. package/Meshes/mesh.vertexData.js +2 -2
  512. package/Meshes/mesh.vertexData.js.map +1 -1
  513. package/Meshes/polygonMesh.js +2 -2
  514. package/Meshes/polygonMesh.js.map +1 -1
  515. package/Meshes/subMesh.js +1 -2
  516. package/Meshes/subMesh.js.map +1 -1
  517. package/Meshes/subMesh.project.js +1 -2
  518. package/Meshes/subMesh.project.js.map +1 -1
  519. package/Meshes/thinInstanceMesh.js +5 -0
  520. package/Meshes/thinInstanceMesh.js.map +1 -1
  521. package/Meshes/trailMesh.d.ts +1 -1
  522. package/Meshes/trailMesh.js.map +1 -1
  523. package/Meshes/transformNode.js +40 -13
  524. package/Meshes/transformNode.js.map +1 -1
  525. package/Misc/HighDynamicRange/cubemapToSphericalPolynomial.d.ts +5 -0
  526. package/Misc/HighDynamicRange/cubemapToSphericalPolynomial.js +13 -2
  527. package/Misc/HighDynamicRange/cubemapToSphericalPolynomial.js.map +1 -1
  528. package/Misc/PerformanceViewer/performanceViewerCollectionStrategies.js +6 -12
  529. package/Misc/PerformanceViewer/performanceViewerCollectionStrategies.js.map +1 -1
  530. package/Misc/PerformanceViewer/performanceViewerCollector.js +6 -6
  531. package/Misc/PerformanceViewer/performanceViewerCollector.js.map +1 -1
  532. package/Misc/assetsManager.d.ts +2 -1
  533. package/Misc/assetsManager.js +15 -1
  534. package/Misc/assetsManager.js.map +1 -1
  535. package/Misc/basis.js +1 -1
  536. package/Misc/basis.js.map +1 -1
  537. package/Misc/brdfTextureTools.js +4 -1
  538. package/Misc/brdfTextureTools.js.map +1 -1
  539. package/Misc/dds.js +7 -0
  540. package/Misc/dds.js.map +1 -1
  541. package/Misc/devTools.js +1 -1
  542. package/Misc/devTools.js.map +1 -1
  543. package/Misc/environmentTextureTools.js +2 -2
  544. package/Misc/environmentTextureTools.js.map +1 -1
  545. package/Misc/fileTools.js +4 -4
  546. package/Misc/fileTools.js.map +1 -1
  547. package/Misc/index.d.ts +1 -0
  548. package/Misc/index.js +1 -0
  549. package/Misc/index.js.map +1 -1
  550. package/Misc/khronosTextureContainer2.js +4 -3
  551. package/Misc/khronosTextureContainer2.js.map +1 -1
  552. package/Misc/reflector.js +6 -6
  553. package/Misc/reflector.js.map +1 -1
  554. package/Misc/tools.js +15 -13
  555. package/Misc/tools.js.map +1 -1
  556. package/Misc/uniqueIdGenerator.js +1 -1
  557. package/Misc/uniqueIdGenerator.js.map +1 -1
  558. package/Offline/database.js +1 -1
  559. package/Offline/database.js.map +1 -1
  560. package/Particles/baseParticleSystem.d.ts +4 -1
  561. package/Particles/baseParticleSystem.js +20 -5
  562. package/Particles/baseParticleSystem.js.map +1 -1
  563. package/Particles/gpuParticleSystem.js +2 -1
  564. package/Particles/gpuParticleSystem.js.map +1 -1
  565. package/Particles/particleHelper.js +2 -2
  566. package/Particles/particleHelper.js.map +1 -1
  567. package/Physics/Plugins/ammoJSPlugin.d.ts +5 -1
  568. package/Physics/Plugins/ammoJSPlugin.js +16 -11
  569. package/Physics/Plugins/ammoJSPlugin.js.map +1 -1
  570. package/Physics/physicsEngine.d.ts +1 -0
  571. package/Physics/physicsEngine.js +3 -1
  572. package/Physics/physicsEngine.js.map +1 -1
  573. package/Physics/physicsImpostor.d.ts +2 -2
  574. package/Physics/physicsImpostor.js.map +1 -1
  575. package/PostProcesses/blurPostProcess.js +5 -5
  576. package/PostProcesses/blurPostProcess.js.map +1 -1
  577. package/PostProcesses/imageProcessingPostProcess.js +1 -1
  578. package/PostProcesses/imageProcessingPostProcess.js.map +1 -1
  579. package/PostProcesses/postProcess.js +1 -1
  580. package/PostProcesses/postProcess.js.map +1 -1
  581. package/PostProcesses/postProcessManager.js +2 -2
  582. package/PostProcesses/postProcessManager.js.map +1 -1
  583. package/Probes/reflectionProbe.js +2 -2
  584. package/Probes/reflectionProbe.js.map +1 -1
  585. package/Rendering/depthPeelingRenderer.js +3 -3
  586. package/Rendering/depthPeelingRenderer.js.map +1 -1
  587. package/Rendering/geometryBufferRenderer.js +8 -8
  588. package/Rendering/geometryBufferRenderer.js.map +1 -1
  589. package/Rendering/outlineRenderer.js +1 -1
  590. package/Rendering/outlineRenderer.js.map +1 -1
  591. package/Rendering/utilityLayerRenderer.js +4 -0
  592. package/Rendering/utilityLayerRenderer.js.map +1 -1
  593. package/Shaders/ShadersInclude/instancesDeclaration.js +1 -1
  594. package/Shaders/ShadersInclude/instancesDeclaration.js.map +1 -1
  595. package/Shaders/ShadersInclude/pbrBlockAlbedoOpacity.js +1 -1
  596. package/Shaders/ShadersInclude/pbrBlockAlbedoOpacity.js.map +1 -1
  597. package/Shaders/ShadersInclude/pbrFragmentExtraDeclaration.js +1 -1
  598. package/Shaders/ShadersInclude/pbrFragmentExtraDeclaration.js.map +1 -1
  599. package/Shaders/ShadersInclude/prePassVertex.js +1 -1
  600. package/Shaders/ShadersInclude/prePassVertex.js.map +1 -1
  601. package/Shaders/color.fragment.js +1 -1
  602. package/Shaders/color.fragment.js.map +1 -1
  603. package/Shaders/color.vertex.js +1 -1
  604. package/Shaders/color.vertex.js.map +1 -1
  605. package/Shaders/default.fragment.js +1 -1
  606. package/Shaders/default.fragment.js.map +1 -1
  607. package/Shaders/default.vertex.js +1 -1
  608. package/Shaders/default.vertex.js.map +1 -1
  609. package/Shaders/geometry.vertex.js +1 -1
  610. package/Shaders/geometry.vertex.js.map +1 -1
  611. package/Shaders/pbr.vertex.js +1 -1
  612. package/Shaders/pbr.vertex.js.map +1 -1
  613. package/ShadersWGSL/ShadersInclude/instancesDeclaration.js +1 -1
  614. package/ShadersWGSL/ShadersInclude/instancesDeclaration.js.map +1 -1
  615. package/ShadersWGSL/gpuUpdateParticles.compute.js +1 -1
  616. package/ShadersWGSL/gpuUpdateParticles.compute.js.map +1 -1
  617. package/Sprites/spriteManager.js +9 -10
  618. package/Sprites/spriteManager.js.map +1 -1
  619. package/Sprites/spriteMap.js +2 -2
  620. package/Sprites/spriteMap.js.map +1 -1
  621. package/Sprites/spriteRenderer.js +1 -1
  622. package/Sprites/spriteRenderer.js.map +1 -1
  623. package/XR/features/WebXRControllerPointerSelection.js +15 -9
  624. package/XR/features/WebXRControllerPointerSelection.js.map +1 -1
  625. package/XR/features/WebXRDOMOverlay.js +1 -1
  626. package/XR/features/WebXRDOMOverlay.js.map +1 -1
  627. package/XR/features/WebXRHandTracking.js +30 -30
  628. package/XR/features/WebXRHandTracking.js.map +1 -1
  629. package/XR/features/WebXRImageTracking.js +2 -2
  630. package/XR/features/WebXRImageTracking.js.map +1 -1
  631. package/XR/features/WebXRLayers.d.ts +28 -5
  632. package/XR/features/WebXRLayers.js +54 -20
  633. package/XR/features/WebXRLayers.js.map +1 -1
  634. package/XR/features/WebXRNearInteraction.d.ts +35 -3
  635. package/XR/features/WebXRNearInteraction.js +201 -40
  636. package/XR/features/WebXRNearInteraction.js.map +1 -1
  637. package/XR/motionController/webXRAbstractMotionController.js +1 -1
  638. package/XR/motionController/webXRAbstractMotionController.js.map +1 -1
  639. package/XR/motionController/webXRMotionControllerManager.js +2 -2
  640. package/XR/motionController/webXRMotionControllerManager.js.map +1 -1
  641. package/XR/motionController/webXRProfiledMotionController.js +1 -1
  642. package/XR/motionController/webXRProfiledMotionController.js.map +1 -1
  643. package/XR/webXRCamera.js +17 -4
  644. package/XR/webXRCamera.js.map +1 -1
  645. package/XR/webXRDefaultExperience.js +3 -0
  646. package/XR/webXRDefaultExperience.js.map +1 -1
  647. package/XR/webXREnterExitUI.js +2 -2
  648. package/XR/webXREnterExitUI.js.map +1 -1
  649. package/XR/webXRExperienceHelper.js +3 -2
  650. package/XR/webXRExperienceHelper.js.map +1 -1
  651. package/XR/webXRFeaturesManager.js +6 -6
  652. package/XR/webXRFeaturesManager.js.map +1 -1
  653. package/XR/webXRInputSource.js +3 -3
  654. package/XR/webXRInputSource.js.map +1 -1
  655. package/XR/webXRRenderTargetTextureProvider.d.ts +3 -2
  656. package/XR/webXRRenderTargetTextureProvider.js +37 -18
  657. package/XR/webXRRenderTargetTextureProvider.js.map +1 -1
  658. package/XR/webXRSessionManager.d.ts +1 -0
  659. package/XR/webXRSessionManager.js +6 -1
  660. package/XR/webXRSessionManager.js.map +1 -1
  661. package/assetContainer.d.ts +1 -1
  662. package/assetContainer.js +4 -0
  663. package/assetContainer.js.map +1 -1
  664. package/node.d.ts +1 -1
  665. package/node.js.map +1 -1
  666. package/package.json +22 -13
  667. package/scene.d.ts +5 -2
  668. package/scene.js +31 -5
  669. package/scene.js.map +1 -1
  670. package/DeviceInput/Implementations/nativeDeviceInputSystem.js.map +0 -1
  671. package/DeviceInput/Implementations/webDeviceInputSystem.js.map +0 -1
  672. package/DeviceInput/Interfaces/inputInterfaces.js.map +0 -1
  673. package/DeviceInput/deviceInputSystem.d.ts +0 -60
  674. package/DeviceInput/deviceInputSystem.js +0 -84
  675. package/DeviceInput/deviceInputSystem.js.map +0 -1
@@ -1,9 +1,12 @@
1
+ import { DomManagement } from "../../Misc/domManagement.js";
1
2
  import { Tools } from "../../Misc/tools.js";
2
3
  import { DeviceEventFactory } from "../Helpers/eventFactory.js";
3
- import { DeviceType, PointerInput } from "../InputDevices/deviceEnums.js";
4
+ import { DeviceType, PointerInput } from "./deviceEnums.js";
5
+ var MAX_KEYCODES = 255;
6
+ var MAX_POINTER_INPUTS = Object.keys(PointerInput).length / 2;
4
7
  /** @hidden */
5
- var WebDeviceInputSystemImpl = /** @class */ (function () {
6
- function WebDeviceInputSystemImpl(engine) {
8
+ var WebDeviceInputSystem = /** @class */ (function () {
9
+ function WebDeviceInputSystem(engine) {
7
10
  // Private Members
8
11
  this._inputs = [];
9
12
  this._keyboardActive = false;
@@ -18,10 +21,8 @@ var WebDeviceInputSystemImpl = /** @class */ (function () {
18
21
  this._pointerWheelEvent = function (evt) { };
19
22
  this._pointerBlurEvent = function (evt) { };
20
23
  this._mouseId = -1;
21
- this._isUsingFirefox = navigator && navigator.userAgent && navigator.userAgent.indexOf("Firefox") !== -1;
22
- // Array to store active Pointer ID values; prevents issues with negative pointerIds
23
- this._activeTouchIds = [];
24
- this._rollingTouchId = 0; // Rolling ID number to assign; emulates Chrome assignment
24
+ this._isUsingFirefox = DomManagement.IsNavigatorAvailable() && navigator.userAgent && navigator.userAgent.indexOf("Firefox") !== -1;
25
+ this._maxTouchPoints = 0;
25
26
  this._pointerInputClearObserver = null;
26
27
  this._gamepadConnectedEvent = function (evt) { };
27
28
  this._gamepadDisconnectedEvent = function (evt) { };
@@ -30,9 +31,9 @@ var WebDeviceInputSystemImpl = /** @class */ (function () {
30
31
  this.onDeviceConnected = function (deviceType, deviceSlot) { };
31
32
  this.onDeviceDisconnected = function (deviceType, deviceSlot) { };
32
33
  this.onInputChanged = function (deviceEvent) { };
33
- this.configureEvents();
34
+ this._configureEvents();
34
35
  }
35
- Object.defineProperty(WebDeviceInputSystemImpl.prototype, "onDeviceConnected", {
36
+ Object.defineProperty(WebDeviceInputSystem.prototype, "onDeviceConnected", {
36
37
  get: function () {
37
38
  return this._onDeviceConnected;
38
39
  },
@@ -55,26 +56,6 @@ var WebDeviceInputSystemImpl = /** @class */ (function () {
55
56
  enumerable: false,
56
57
  configurable: true
57
58
  });
58
- /**
59
- * Configures events to work with an engine's active element
60
- */
61
- WebDeviceInputSystemImpl.prototype.configureEvents = function () {
62
- var inputElement = this._engine.getInputElement();
63
- if (inputElement && this._elementToAttachTo !== inputElement) {
64
- // If the engine's input element has changed, unregister events from previous element
65
- if (this._elementToAttachTo) {
66
- this._removeEvents();
67
- }
68
- this._elementToAttachTo = inputElement;
69
- // Set tab index for the inputElement to the engine's canvasTabIndex, if and only if the element's tab index is -1
70
- this._elementToAttachTo.tabIndex = (this._elementToAttachTo.tabIndex !== -1) ? this._elementToAttachTo.tabIndex : this._engine.canvasTabIndex;
71
- this._handleKeyActions();
72
- this._handlePointerActions();
73
- this._handleGamepadActions();
74
- // Check for devices that are already connected but aren't registered. Currently, only checks for gamepads and mouse
75
- this._checkForConnectedDevices();
76
- }
77
- };
78
59
  // Public functions
79
60
  /**
80
61
  * Checks for current device input value, given an id and input index. Throws exception if requested device not initialized.
@@ -83,17 +64,17 @@ var WebDeviceInputSystemImpl = /** @class */ (function () {
83
64
  * @param inputIndex Id of input to be checked
84
65
  * @returns Current value of input
85
66
  */
86
- WebDeviceInputSystemImpl.prototype.pollInput = function (deviceType, deviceSlot, inputIndex) {
67
+ WebDeviceInputSystem.prototype.pollInput = function (deviceType, deviceSlot, inputIndex) {
87
68
  var device = this._inputs[deviceType][deviceSlot];
88
69
  if (!device) {
89
- throw "Unable to find device " + DeviceType[deviceType];
70
+ throw "Unable to find device ".concat(DeviceType[deviceType]);
90
71
  }
91
- if (deviceType >= DeviceType.Xbox && deviceType <= DeviceType.Switch && navigator.getGamepads) {
72
+ if (deviceType >= DeviceType.DualShock && deviceType <= DeviceType.DualSense && navigator.getGamepads) {
92
73
  this._updateDevice(deviceType, deviceSlot, inputIndex);
93
74
  }
94
75
  var currentValue = device[inputIndex];
95
76
  if (currentValue === undefined) {
96
- throw "Unable to find input " + inputIndex + " for device " + DeviceType[deviceType] + " in slot " + deviceSlot;
77
+ throw "Unable to find input ".concat(inputIndex, " for device ").concat(DeviceType[deviceType], " in slot ").concat(deviceSlot);
97
78
  }
98
79
  return currentValue;
99
80
  };
@@ -102,13 +83,13 @@ var WebDeviceInputSystemImpl = /** @class */ (function () {
102
83
  * @param deviceType Type of device to check for
103
84
  * @returns bool with status of device's existence
104
85
  */
105
- WebDeviceInputSystemImpl.prototype.isDeviceAvailable = function (deviceType) {
86
+ WebDeviceInputSystem.prototype.isDeviceAvailable = function (deviceType) {
106
87
  return (this._inputs[deviceType] !== undefined);
107
88
  };
108
89
  /**
109
90
  * Dispose of all the eventlisteners
110
91
  */
111
- WebDeviceInputSystemImpl.prototype.dispose = function () {
92
+ WebDeviceInputSystem.prototype.dispose = function () {
112
93
  // Observables
113
94
  this.onDeviceConnected = function () { };
114
95
  this.onDeviceDisconnected = function () { };
@@ -120,11 +101,31 @@ var WebDeviceInputSystemImpl = /** @class */ (function () {
120
101
  window.removeEventListener("gamepaddisconnected", this._gamepadDisconnectedEvent);
121
102
  }
122
103
  };
104
+ /**
105
+ * Configures events to work with an engine's active element
106
+ */
107
+ WebDeviceInputSystem.prototype._configureEvents = function () {
108
+ var inputElement = this._engine.getInputElement();
109
+ if (inputElement && this._elementToAttachTo !== inputElement) {
110
+ // If the engine's input element has changed, unregister events from previous element
111
+ if (this._elementToAttachTo) {
112
+ this._removeEvents();
113
+ }
114
+ this._elementToAttachTo = inputElement;
115
+ // Set tab index for the inputElement to the engine's canvasTabIndex, if and only if the element's tab index is -1
116
+ this._elementToAttachTo.tabIndex = (this._elementToAttachTo.tabIndex !== -1) ? this._elementToAttachTo.tabIndex : this._engine.canvasTabIndex;
117
+ this._handleKeyActions();
118
+ this._handlePointerActions();
119
+ this._handleGamepadActions();
120
+ // Check for devices that are already connected but aren't registered. Currently, only checks for gamepads and mouse
121
+ this._checkForConnectedDevices();
122
+ }
123
+ };
123
124
  /**
124
125
  * Checks for existing connections to devices and register them, if necessary
125
126
  * Currently handles gamepads and mouse
126
127
  */
127
- WebDeviceInputSystemImpl.prototype._checkForConnectedDevices = function () {
128
+ WebDeviceInputSystem.prototype._checkForConnectedDevices = function () {
128
129
  if (navigator.getGamepads) {
129
130
  var gamepads = navigator.getGamepads();
130
131
  for (var _i = 0, gamepads_1 = gamepads; _i < gamepads_1.length; _i++) {
@@ -146,11 +147,11 @@ var WebDeviceInputSystemImpl = /** @class */ (function () {
146
147
  * Add a gamepad to the DeviceInputSystem
147
148
  * @param gamepad A single DOM Gamepad object
148
149
  */
149
- WebDeviceInputSystemImpl.prototype._addGamePad = function (gamepad) {
150
+ WebDeviceInputSystem.prototype._addGamePad = function (gamepad) {
150
151
  var deviceType = this._getGamepadDeviceType(gamepad.id);
151
152
  var deviceSlot = gamepad.index;
152
- this._registerDevice(deviceType, deviceSlot, gamepad.buttons.length + gamepad.axes.length);
153
153
  this._gamepads = this._gamepads || new Array(gamepad.index + 1);
154
+ this._registerDevice(deviceType, deviceSlot, gamepad.buttons.length + gamepad.axes.length);
154
155
  this._gamepads[deviceSlot] = deviceType;
155
156
  };
156
157
  /**
@@ -160,9 +161,11 @@ var WebDeviceInputSystemImpl = /** @class */ (function () {
160
161
  * @param currentX Current X at point of adding
161
162
  * @param currentY Current Y at point of adding
162
163
  */
163
- WebDeviceInputSystemImpl.prototype._addPointerDevice = function (deviceType, deviceSlot, currentX, currentY) {
164
- this._pointerActive = true;
165
- this._registerDevice(deviceType, deviceSlot, WebDeviceInputSystemImpl.MAX_POINTER_INPUTS);
164
+ WebDeviceInputSystem.prototype._addPointerDevice = function (deviceType, deviceSlot, currentX, currentY) {
165
+ if (!this._pointerActive) {
166
+ this._pointerActive = true;
167
+ }
168
+ this._registerDevice(deviceType, deviceSlot, MAX_POINTER_INPUTS);
166
169
  var pointer = this._inputs[deviceType][deviceSlot]; /* initialize our pointer position immediately after registration */
167
170
  pointer[0] = currentX;
168
171
  pointer[1] = currentY;
@@ -173,9 +176,9 @@ var WebDeviceInputSystemImpl = /** @class */ (function () {
173
176
  * @param deviceSlot "Slot" or index that device is referenced in
174
177
  * @param numberOfInputs Number of input entries to create for given device
175
178
  */
176
- WebDeviceInputSystemImpl.prototype._registerDevice = function (deviceType, deviceSlot, numberOfInputs) {
179
+ WebDeviceInputSystem.prototype._registerDevice = function (deviceType, deviceSlot, numberOfInputs) {
177
180
  if (deviceSlot === undefined) {
178
- throw "Unable to register device " + DeviceType[deviceType] + " to undefined slot.";
181
+ throw "Unable to register device ".concat(DeviceType[deviceType], " to undefined slot.");
179
182
  }
180
183
  if (!this._inputs[deviceType]) {
181
184
  this._inputs[deviceType] = {};
@@ -194,7 +197,7 @@ var WebDeviceInputSystemImpl = /** @class */ (function () {
194
197
  * @param deviceType Enum specifiying device type
195
198
  * @param deviceSlot "Slot" or index that device is referenced in
196
199
  */
197
- WebDeviceInputSystemImpl.prototype._unregisterDevice = function (deviceType, deviceSlot) {
200
+ WebDeviceInputSystem.prototype._unregisterDevice = function (deviceType, deviceSlot) {
198
201
  if (this._inputs[deviceType][deviceSlot]) {
199
202
  delete this._inputs[deviceType][deviceSlot];
200
203
  this.onDeviceDisconnected(deviceType, deviceSlot);
@@ -203,12 +206,12 @@ var WebDeviceInputSystemImpl = /** @class */ (function () {
203
206
  /**
204
207
  * Handle all actions that come from keyboard interaction
205
208
  */
206
- WebDeviceInputSystemImpl.prototype._handleKeyActions = function () {
209
+ WebDeviceInputSystem.prototype._handleKeyActions = function () {
207
210
  var _this = this;
208
211
  this._keyboardDownEvent = (function (evt) {
209
212
  if (!_this._keyboardActive) {
210
213
  _this._keyboardActive = true;
211
- _this._registerDevice(DeviceType.Keyboard, 0, WebDeviceInputSystemImpl.MAX_KEYCODES);
214
+ _this._registerDevice(DeviceType.Keyboard, 0, MAX_KEYCODES);
212
215
  }
213
216
  var kbKey = _this._inputs[DeviceType.Keyboard][0];
214
217
  if (kbKey) {
@@ -225,7 +228,7 @@ var WebDeviceInputSystemImpl = /** @class */ (function () {
225
228
  this._keyboardUpEvent = (function (evt) {
226
229
  if (!_this._keyboardActive) {
227
230
  _this._keyboardActive = true;
228
- _this._registerDevice(DeviceType.Keyboard, 0, WebDeviceInputSystemImpl.MAX_KEYCODES);
231
+ _this._registerDevice(DeviceType.Keyboard, 0, MAX_KEYCODES);
229
232
  }
230
233
  var kbKey = _this._inputs[DeviceType.Keyboard][0];
231
234
  if (kbKey) {
@@ -264,8 +267,15 @@ var WebDeviceInputSystemImpl = /** @class */ (function () {
264
267
  /**
265
268
  * Handle all actions that come from pointer interaction
266
269
  */
267
- WebDeviceInputSystemImpl.prototype._handlePointerActions = function () {
270
+ WebDeviceInputSystem.prototype._handlePointerActions = function () {
268
271
  var _this = this;
272
+ this._maxTouchPoints = (DomManagement.IsNavigatorAvailable() && navigator.maxTouchPoints) || 0;
273
+ if (!this._activeTouchIds) {
274
+ this._activeTouchIds = new Array(this._maxTouchPoints);
275
+ }
276
+ for (var i = 0; i < this._maxTouchPoints; i++) {
277
+ this._activeTouchIds[i] = -1;
278
+ }
269
279
  this._pointerMoveEvent = (function (evt) {
270
280
  var deviceType = _this._getPointerType(evt);
271
281
  var deviceSlot = (deviceType === DeviceType.Mouse) ? 0 : _this._activeTouchIds.indexOf(evt.pointerId);
@@ -277,11 +287,6 @@ var WebDeviceInputSystemImpl = /** @class */ (function () {
277
287
  }
278
288
  var pointer = _this._inputs[deviceType][deviceSlot];
279
289
  if (pointer) {
280
- // Store previous values for event
281
- var previousHorizontal = pointer[PointerInput.Horizontal];
282
- var previousVertical = pointer[PointerInput.Vertical];
283
- var previousDeltaHorizontal = pointer[PointerInput.DeltaHorizontal];
284
- var previousDeltaVertical = pointer[PointerInput.DeltaVertical];
285
290
  pointer[PointerInput.Horizontal] = evt.clientX;
286
291
  pointer[PointerInput.Vertical] = evt.clientY;
287
292
  pointer[PointerInput.DeltaHorizontal] = evt.movementX;
@@ -289,33 +294,8 @@ var WebDeviceInputSystemImpl = /** @class */ (function () {
289
294
  var deviceEvent = evt;
290
295
  deviceEvent.deviceType = deviceType;
291
296
  deviceEvent.deviceSlot = deviceSlot;
292
- // The browser might use a move event in case
293
- // of simultaneous mouse buttons click for instance. So
294
- // in this case we stil need to propagate it.
295
- if (previousHorizontal !== evt.clientX) {
296
- deviceEvent.inputIndex = PointerInput.Horizontal;
297
- deviceEvent.previousState = previousHorizontal;
298
- deviceEvent.currentState = pointer[PointerInput.Horizontal];
299
- _this.onInputChanged(deviceEvent);
300
- }
301
- if (previousVertical !== evt.clientY) {
302
- deviceEvent.inputIndex = PointerInput.Vertical;
303
- deviceEvent.previousState = previousVertical;
304
- deviceEvent.currentState = pointer[PointerInput.Vertical];
305
- _this.onInputChanged(deviceEvent);
306
- }
307
- if (pointer[PointerInput.DeltaHorizontal] !== 0) {
308
- deviceEvent.inputIndex = PointerInput.DeltaHorizontal;
309
- deviceEvent.previousState = previousDeltaHorizontal;
310
- deviceEvent.currentState = pointer[PointerInput.DeltaHorizontal];
311
- _this.onInputChanged(deviceEvent);
312
- }
313
- if (pointer[PointerInput.DeltaVertical] !== 0) {
314
- deviceEvent.inputIndex = PointerInput.DeltaVertical;
315
- deviceEvent.previousState = previousDeltaVertical;
316
- deviceEvent.currentState = pointer[PointerInput.DeltaVertical];
317
- _this.onInputChanged(deviceEvent);
318
- }
297
+ deviceEvent.inputIndex = PointerInput.Move;
298
+ _this.onInputChanged(deviceEvent);
319
299
  // Lets Propagate the event for move with same position.
320
300
  if (!_this._usingSafari && evt.button !== -1) {
321
301
  deviceEvent.inputIndex = evt.button + 2;
@@ -330,8 +310,16 @@ var WebDeviceInputSystemImpl = /** @class */ (function () {
330
310
  var deviceType = _this._getPointerType(evt);
331
311
  var deviceSlot = (deviceType === DeviceType.Mouse) ? 0 : evt.pointerId;
332
312
  if (deviceType === DeviceType.Touch) {
333
- deviceSlot = _this._rollingTouchId++;
334
- _this._activeTouchIds[deviceSlot] = evt.pointerId;
313
+ var idx = _this._activeTouchIds.indexOf(-1);
314
+ if (idx >= 0) {
315
+ deviceSlot = idx;
316
+ _this._activeTouchIds[idx] = evt.pointerId;
317
+ }
318
+ else {
319
+ // We can't find an open slot to store new pointer so just return (can only support max number of touches)
320
+ Tools.Warn("Max number of touches exceeded. Ignoring touches in excess of ".concat(_this._maxTouchPoints));
321
+ return;
322
+ }
335
323
  }
336
324
  if (!_this._inputs[deviceType]) {
337
325
  _this._inputs[deviceType] = {};
@@ -339,6 +327,9 @@ var WebDeviceInputSystemImpl = /** @class */ (function () {
339
327
  if (!_this._inputs[deviceType][deviceSlot]) {
340
328
  _this._addPointerDevice(deviceType, deviceSlot, evt.clientX, evt.clientY);
341
329
  }
330
+ else if (deviceType === DeviceType.Touch) {
331
+ _this.onDeviceConnected(deviceType, deviceSlot);
332
+ }
342
333
  var pointer = _this._inputs[deviceType][deviceSlot];
343
334
  if (pointer) {
344
335
  var previousHorizontal = pointer[PointerInput.Horizontal];
@@ -378,28 +369,31 @@ var WebDeviceInputSystemImpl = /** @class */ (function () {
378
369
  var deviceEvent = evt;
379
370
  deviceEvent.deviceType = deviceType;
380
371
  deviceEvent.deviceSlot = deviceSlot;
381
- if (previousHorizontal !== evt.clientX) {
382
- deviceEvent.inputIndex = PointerInput.Horizontal;
383
- deviceEvent.previousState = previousHorizontal;
384
- deviceEvent.currentState = pointer[PointerInput.Horizontal];
385
- _this.onInputChanged(deviceEvent);
386
- }
387
- if (previousVertical !== evt.clientY) {
388
- deviceEvent.inputIndex = PointerInput.Vertical;
389
- deviceEvent.previousState = previousVertical;
390
- deviceEvent.currentState = pointer[PointerInput.Vertical];
391
- _this.onInputChanged(deviceEvent);
392
- }
372
+ // NOTE: The +2 used here to is because PointerInput has the same value progression for its mouse buttons as PointerEvent.button
373
+ // However, we have our X and Y values front-loaded to group together the touch inputs but not break this progression
374
+ // EG. ([X, Y, Left-click], Middle-click, etc...)
393
375
  deviceEvent.inputIndex = evt.button + 2;
394
376
  deviceEvent.previousState = previousButton;
395
- deviceEvent.currentState = pointer[evt.button + 2];
377
+ deviceEvent.currentState = pointer[deviceEvent.inputIndex];
396
378
  _this.onInputChanged(deviceEvent);
379
+ if (previousHorizontal !== evt.clientX || previousVertical !== evt.clientY) {
380
+ deviceEvent.inputIndex = PointerInput.Move;
381
+ _this.onInputChanged(deviceEvent);
382
+ }
397
383
  }
398
384
  });
399
385
  this._pointerUpEvent = (function (evt) {
400
386
  var _a, _b, _c, _d, _e;
401
387
  var deviceType = _this._getPointerType(evt);
402
388
  var deviceSlot = (deviceType === DeviceType.Mouse) ? 0 : _this._activeTouchIds.indexOf(evt.pointerId);
389
+ if (deviceType === DeviceType.Touch) {
390
+ if (deviceSlot === -1) {
391
+ return;
392
+ }
393
+ else {
394
+ _this._activeTouchIds[deviceSlot] = -1;
395
+ }
396
+ }
403
397
  var pointer = (_a = _this._inputs[deviceType]) === null || _a === void 0 ? void 0 : _a[deviceSlot];
404
398
  if (pointer && pointer[evt.button + 2] !== 0) {
405
399
  var previousHorizontal = pointer[PointerInput.Horizontal];
@@ -411,21 +405,16 @@ var WebDeviceInputSystemImpl = /** @class */ (function () {
411
405
  var deviceEvent = evt;
412
406
  deviceEvent.deviceType = deviceType;
413
407
  deviceEvent.deviceSlot = deviceSlot;
414
- if (previousHorizontal !== evt.clientX) {
415
- deviceEvent.inputIndex = PointerInput.Horizontal;
416
- deviceEvent.previousState = previousHorizontal;
417
- deviceEvent.currentState = pointer[PointerInput.Horizontal];
418
- _this.onInputChanged(deviceEvent);
419
- }
420
- if (previousVertical !== evt.clientY) {
421
- deviceEvent.inputIndex = PointerInput.Vertical;
422
- deviceEvent.previousState = previousVertical;
423
- deviceEvent.currentState = pointer[PointerInput.Vertical];
408
+ if (previousHorizontal !== evt.clientX || previousVertical !== evt.clientY) {
409
+ deviceEvent.inputIndex = PointerInput.Move;
424
410
  _this.onInputChanged(deviceEvent);
425
411
  }
412
+ // NOTE: The +2 used here to is because PointerInput has the same value progression for its mouse buttons as PointerEvent.button
413
+ // However, we have our X and Y values front-loaded to group together the touch inputs but not break this progression
414
+ // EG. ([X, Y, Left-click], Middle-click, etc...)
426
415
  deviceEvent.inputIndex = evt.button + 2;
427
416
  deviceEvent.previousState = previousButton;
428
- deviceEvent.currentState = pointer[evt.button + 2];
417
+ deviceEvent.currentState = pointer[deviceEvent.inputIndex];
429
418
  if (deviceType === DeviceType.Mouse && _this._mouseId >= 0 && ((_c = (_b = _this._elementToAttachTo).hasPointerCapture) === null || _c === void 0 ? void 0 : _c.call(_b, _this._mouseId))) {
430
419
  _this._elementToAttachTo.releasePointerCapture(_this._mouseId);
431
420
  }
@@ -433,11 +422,8 @@ var WebDeviceInputSystemImpl = /** @class */ (function () {
433
422
  _this._elementToAttachTo.releasePointerCapture(evt.pointerId);
434
423
  }
435
424
  _this.onInputChanged(deviceEvent);
436
- // We don't want to unregister the mouse because we may miss input data when a mouse is moving after a click
437
- if (deviceType !== DeviceType.Mouse) {
438
- var idToRemove = _this._activeTouchIds.indexOf(evt.pointerId);
439
- delete _this._activeTouchIds[idToRemove];
440
- _this._unregisterDevice(deviceType, deviceSlot);
425
+ if (deviceType === DeviceType.Touch) {
426
+ _this.onDeviceDisconnected(deviceType, deviceSlot);
441
427
  }
442
428
  }
443
429
  });
@@ -490,28 +476,25 @@ var WebDeviceInputSystemImpl = /** @class */ (function () {
490
476
  // Handle Active Touches
491
477
  if (_this.isDeviceAvailable(DeviceType.Touch)) {
492
478
  var pointer = _this._inputs[DeviceType.Touch];
493
- // Get list of active touch ids and clear each one in the inputs array
494
- for (var deviceSlotKey in Object.keys(_this._activeTouchIds)) {
495
- var deviceSlot = +deviceSlotKey;
479
+ for (var deviceSlot = 0; deviceSlot < _this._activeTouchIds.length; deviceSlot++) {
496
480
  var pointerId = _this._activeTouchIds[deviceSlot];
497
481
  if ((_d = (_c = _this._elementToAttachTo).hasPointerCapture) === null || _d === void 0 ? void 0 : _d.call(_c, pointerId)) {
498
482
  _this._elementToAttachTo.releasePointerCapture(pointerId);
499
483
  }
500
- if (((_e = pointer[deviceSlot]) === null || _e === void 0 ? void 0 : _e[PointerInput.LeftClick]) === 1) {
484
+ if (pointerId !== -1 && ((_e = pointer[deviceSlot]) === null || _e === void 0 ? void 0 : _e[PointerInput.LeftClick]) === 1) {
501
485
  pointer[deviceSlot][PointerInput.LeftClick] = 0;
502
- var evt_3 = DeviceEventFactory.CreateDeviceEvent(DeviceType.Touch, pointerId, PointerInput.LeftClick, 1, _this, _this._elementToAttachTo);
486
+ var evt_3 = DeviceEventFactory.CreateDeviceEvent(DeviceType.Touch, deviceSlot, PointerInput.LeftClick, 1, _this, _this._elementToAttachTo);
503
487
  var deviceEvent = evt_3;
504
- deviceEvent.deviceType = DeviceType.Mouse;
488
+ deviceEvent.deviceType = DeviceType.Touch;
505
489
  deviceEvent.deviceSlot = deviceSlot;
506
490
  deviceEvent.inputIndex = PointerInput.LeftClick;
507
491
  deviceEvent.currentState = pointer[deviceSlot][PointerInput.LeftClick];
508
492
  deviceEvent.previousState = 1;
509
493
  _this.onInputChanged(deviceEvent);
510
- _this._unregisterDevice(DeviceType.Touch, deviceSlot);
494
+ _this._activeTouchIds[deviceSlot] = -1;
495
+ _this.onDeviceDisconnected(DeviceType.Touch, deviceSlot);
511
496
  }
512
497
  }
513
- // Clear all active touches
514
- while (_this._activeTouchIds.pop() !== undefined) { }
515
498
  }
516
499
  });
517
500
  this._pointerWheelEvent = (function (evt) {
@@ -522,7 +505,7 @@ var WebDeviceInputSystemImpl = /** @class */ (function () {
522
505
  }
523
506
  if (!_this._inputs[deviceType][deviceSlot]) {
524
507
  _this._pointerActive = true;
525
- _this._registerDevice(deviceType, deviceSlot, WebDeviceInputSystemImpl.MAX_POINTER_INPUTS);
508
+ _this._registerDevice(deviceType, deviceSlot, MAX_POINTER_INPUTS);
526
509
  }
527
510
  var pointer = _this._inputs[deviceType][deviceSlot];
528
511
  if (pointer) {
@@ -576,7 +559,7 @@ var WebDeviceInputSystemImpl = /** @class */ (function () {
576
559
  /**
577
560
  * Handle all actions that come from gamepad interaction
578
561
  */
579
- WebDeviceInputSystemImpl.prototype._handleGamepadActions = function () {
562
+ WebDeviceInputSystem.prototype._handleGamepadActions = function () {
580
563
  var _this = this;
581
564
  this._gamepadConnectedEvent = (function (evt) {
582
565
  _this._addGamePad(evt.gamepad);
@@ -598,7 +581,7 @@ var WebDeviceInputSystemImpl = /** @class */ (function () {
598
581
  * @param deviceSlot "Slot" or index that device is referenced in
599
582
  * @param inputIndex Id of input to be checked
600
583
  */
601
- WebDeviceInputSystemImpl.prototype._updateDevice = function (deviceType, deviceSlot, inputIndex) {
584
+ WebDeviceInputSystem.prototype._updateDevice = function (deviceType, deviceSlot, inputIndex) {
602
585
  // Gamepads
603
586
  var gp = navigator.getGamepads()[deviceSlot];
604
587
  if (gp && deviceType === this._gamepads[deviceSlot]) {
@@ -616,9 +599,9 @@ var WebDeviceInputSystemImpl = /** @class */ (function () {
616
599
  * @param deviceName Name of Device from DeviceInputSystem
617
600
  * @returns DeviceType enum value
618
601
  */
619
- WebDeviceInputSystemImpl.prototype._getGamepadDeviceType = function (deviceName) {
620
- if (deviceName.indexOf("054c") !== -1 && deviceName.indexOf("0ce6") === -1) { // DualShock 4 Gamepad
621
- return DeviceType.DualShock;
602
+ WebDeviceInputSystem.prototype._getGamepadDeviceType = function (deviceName) {
603
+ if (deviceName.indexOf("054c") !== -1) { // DualShock 4 Gamepad
604
+ return (deviceName.indexOf("0ce6") !== -1 ? DeviceType.DualSense : DeviceType.DualShock);
622
605
  }
623
606
  else if (deviceName.indexOf("Xbox One") !== -1 || deviceName.search("Xbox 360") !== -1 || deviceName.search("xinput") !== -1) { // Xbox Gamepad
624
607
  return DeviceType.Xbox;
@@ -633,7 +616,7 @@ var WebDeviceInputSystemImpl = /** @class */ (function () {
633
616
  * @param evt PointerEvent to evaluate
634
617
  * @returns DeviceType interpreted from event
635
618
  */
636
- WebDeviceInputSystemImpl.prototype._getPointerType = function (evt) {
619
+ WebDeviceInputSystem.prototype._getPointerType = function (evt) {
637
620
  var deviceType = DeviceType.Mouse;
638
621
  if (evt.pointerType === "touch" || evt.pointerType === "pen" || evt.touches) {
639
622
  deviceType = DeviceType.Touch;
@@ -643,31 +626,23 @@ var WebDeviceInputSystemImpl = /** @class */ (function () {
643
626
  /**
644
627
  * Remove events from active input element
645
628
  */
646
- WebDeviceInputSystemImpl.prototype._removeEvents = function () {
629
+ WebDeviceInputSystem.prototype._removeEvents = function () {
647
630
  // Blur Events
648
631
  this._elementToAttachTo.removeEventListener("blur", this._keyboardBlurEvent);
649
632
  this._elementToAttachTo.removeEventListener("blur", this._pointerBlurEvent);
650
633
  // Keyboard Events
651
- if (this._keyboardActive) {
652
- this._elementToAttachTo.removeEventListener("keydown", this._keyboardDownEvent);
653
- this._elementToAttachTo.removeEventListener("keyup", this._keyboardUpEvent);
654
- }
634
+ this._elementToAttachTo.removeEventListener("keydown", this._keyboardDownEvent);
635
+ this._elementToAttachTo.removeEventListener("keyup", this._keyboardUpEvent);
655
636
  // Pointer Events
656
- if (this._pointerActive) {
657
- this._elementToAttachTo.removeEventListener(this._eventPrefix + "move", this._pointerMoveEvent);
658
- this._elementToAttachTo.removeEventListener(this._eventPrefix + "down", this._pointerDownEvent);
659
- this._elementToAttachTo.removeEventListener(this._eventPrefix + "up", this._pointerUpEvent);
660
- this._elementToAttachTo.removeEventListener(this._wheelEventName, this._pointerWheelEvent);
661
- if (this._pointerInputClearObserver) {
662
- this._engine.onEndFrameObservable.remove(this._pointerInputClearObserver);
663
- }
637
+ this._elementToAttachTo.removeEventListener(this._eventPrefix + "move", this._pointerMoveEvent);
638
+ this._elementToAttachTo.removeEventListener(this._eventPrefix + "down", this._pointerDownEvent);
639
+ this._elementToAttachTo.removeEventListener(this._eventPrefix + "up", this._pointerUpEvent);
640
+ this._elementToAttachTo.removeEventListener(this._wheelEventName, this._pointerWheelEvent);
641
+ if (this._pointerInputClearObserver) {
642
+ this._engine.onEndFrameObservable.remove(this._pointerInputClearObserver);
664
643
  }
665
644
  };
666
- /** Max number of keycodes */
667
- WebDeviceInputSystemImpl.MAX_KEYCODES = 255;
668
- /** Max number of pointer inputs */
669
- WebDeviceInputSystemImpl.MAX_POINTER_INPUTS = Object.keys(PointerInput).length / 2;
670
- return WebDeviceInputSystemImpl;
645
+ return WebDeviceInputSystem;
671
646
  }());
672
- export { WebDeviceInputSystemImpl };
647
+ export { WebDeviceInputSystem };
673
648
  //# sourceMappingURL=webDeviceInputSystem.js.map