@babylonjs/core 7.12.0 → 7.13.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (526) hide show
  1. package/Animations/animation.js +1 -2
  2. package/Animations/animation.js.map +1 -1
  3. package/Animations/animationGroupMask.d.ts +1 -1
  4. package/Animations/animationGroupMask.js +2 -2
  5. package/Animations/animationGroupMask.js.map +1 -1
  6. package/Animations/animationKey.d.ts +1 -1
  7. package/Animations/animationKey.js.map +1 -1
  8. package/Behaviors/Meshes/handConstraintBehavior.d.ts +3 -3
  9. package/Behaviors/Meshes/handConstraintBehavior.js +16 -17
  10. package/Behaviors/Meshes/handConstraintBehavior.js.map +1 -1
  11. package/Behaviors/Meshes/sixDofDragBehavior.js +2 -3
  12. package/Behaviors/Meshes/sixDofDragBehavior.js.map +1 -1
  13. package/Bones/bone.js +31 -32
  14. package/Bones/bone.js.map +1 -1
  15. package/Bones/boneIKController.js +5 -6
  16. package/Bones/boneIKController.js.map +1 -1
  17. package/Bones/boneLookController.js +13 -13
  18. package/Bones/boneLookController.js.map +1 -1
  19. package/Buffers/bufferUtils.d.ts +13 -0
  20. package/Buffers/bufferUtils.js +42 -0
  21. package/Buffers/bufferUtils.js.map +1 -0
  22. package/Buffers/index.d.ts +1 -0
  23. package/Buffers/index.js +1 -0
  24. package/Buffers/index.js.map +1 -1
  25. package/Cameras/Inputs/freeCameraMouseWheelInput.js +5 -6
  26. package/Cameras/Inputs/freeCameraMouseWheelInput.js.map +1 -1
  27. package/Cameras/Inputs/freeCameraVirtualJoystickInput.js +5 -5
  28. package/Cameras/Inputs/freeCameraVirtualJoystickInput.js.map +1 -1
  29. package/Cameras/VR/vrExperienceHelper.js +8 -10
  30. package/Cameras/VR/vrExperienceHelper.js.map +1 -1
  31. package/Compute/computeEffect.js +2 -3
  32. package/Compute/computeEffect.js.map +1 -1
  33. package/Compute/computeShader.js +19 -20
  34. package/Compute/computeShader.js.map +1 -1
  35. package/Culling/Helper/IBoundingInfoHelperPlatform.d.ts +4 -0
  36. package/Culling/Helper/IBoundingInfoHelperPlatform.js.map +1 -1
  37. package/Culling/Helper/boundingInfoHelper.d.ts +26 -4
  38. package/Culling/Helper/boundingInfoHelper.js +41 -10
  39. package/Culling/Helper/boundingInfoHelper.js.map +1 -1
  40. package/Culling/Helper/computeShaderBoundingHelper.d.ts +12 -3
  41. package/Culling/Helper/computeShaderBoundingHelper.js +164 -76
  42. package/Culling/Helper/computeShaderBoundingHelper.js.map +1 -1
  43. package/Culling/Helper/transformFeedbackBoundingHelper.d.ts +11 -0
  44. package/Culling/Helper/transformFeedbackBoundingHelper.js +46 -14
  45. package/Culling/Helper/transformFeedbackBoundingHelper.js.map +1 -1
  46. package/Debug/debugLayer.d.ts +1 -1
  47. package/Debug/debugLayer.js.map +1 -1
  48. package/Decorators/nodeDecorator.d.ts +1 -1
  49. package/Decorators/nodeDecorator.js +1 -1
  50. package/Decorators/nodeDecorator.js.map +1 -1
  51. package/DeviceInput/InputDevices/deviceEnums.d.ts +5 -5
  52. package/DeviceInput/InputDevices/deviceEnums.js.map +1 -1
  53. package/DeviceInput/eventFactory.js +3 -3
  54. package/DeviceInput/eventFactory.js.map +1 -1
  55. package/Engines/AbstractEngine/abstractEngine.cubeTexture.js +2 -2
  56. package/Engines/AbstractEngine/abstractEngine.cubeTexture.js.map +1 -1
  57. package/Engines/Extensions/engine.computeShader.d.ts +1 -1
  58. package/Engines/Extensions/engine.computeShader.js.map +1 -1
  59. package/Engines/Extensions/engine.cubeTexture.js +2 -2
  60. package/Engines/Extensions/engine.cubeTexture.js.map +1 -1
  61. package/Engines/Extensions/engine.dynamicTexture.js +2 -2
  62. package/Engines/Extensions/engine.dynamicTexture.js.map +1 -1
  63. package/Engines/Extensions/engine.multiRender.js +3 -3
  64. package/Engines/Extensions/engine.multiRender.js.map +1 -1
  65. package/Engines/Extensions/engine.multiview.js +2 -2
  66. package/Engines/Extensions/engine.multiview.js.map +1 -1
  67. package/Engines/Extensions/engine.prefilteredCubeTexture.js +3 -3
  68. package/Engines/Extensions/engine.prefilteredCubeTexture.js.map +1 -1
  69. package/Engines/Extensions/engine.rawTexture.js +4 -4
  70. package/Engines/Extensions/engine.rawTexture.js.map +1 -1
  71. package/Engines/Extensions/engine.renderTarget.js +3 -3
  72. package/Engines/Extensions/engine.renderTarget.js.map +1 -1
  73. package/Engines/Extensions/engine.renderTargetCube.js +2 -2
  74. package/Engines/Extensions/engine.renderTargetCube.js.map +1 -1
  75. package/Engines/Native/nativeShaderProcessors.js +1 -2
  76. package/Engines/Native/nativeShaderProcessors.js.map +1 -1
  77. package/Engines/Processors/shaderProcessor.js +2 -3
  78. package/Engines/Processors/shaderProcessor.js.map +1 -1
  79. package/Engines/WebGL/webGL2ShaderProcessors.js +1 -2
  80. package/Engines/WebGL/webGL2ShaderProcessors.js.map +1 -1
  81. package/Engines/WebGL/webGLShaderProcessors.js +1 -2
  82. package/Engines/WebGL/webGLShaderProcessors.js.map +1 -1
  83. package/Engines/WebGPU/Extensions/engine.computeShader.js +1 -2
  84. package/Engines/WebGPU/Extensions/engine.computeShader.js.map +1 -1
  85. package/Engines/WebGPU/Extensions/engine.cubeTexture.js +2 -2
  86. package/Engines/WebGPU/Extensions/engine.cubeTexture.js.map +1 -1
  87. package/Engines/WebGPU/Extensions/engine.dynamicTexture.js +2 -2
  88. package/Engines/WebGPU/Extensions/engine.dynamicTexture.js.map +1 -1
  89. package/Engines/WebGPU/Extensions/engine.multiRender.js +2 -2
  90. package/Engines/WebGPU/Extensions/engine.multiRender.js.map +1 -1
  91. package/Engines/WebGPU/Extensions/engine.rawTexture.js +5 -5
  92. package/Engines/WebGPU/Extensions/engine.rawTexture.js.map +1 -1
  93. package/Engines/WebGPU/Extensions/engine.renderTarget.js +3 -3
  94. package/Engines/WebGPU/Extensions/engine.renderTarget.js.map +1 -1
  95. package/Engines/WebGPU/Extensions/engine.renderTargetCube.js +2 -2
  96. package/Engines/WebGPU/Extensions/engine.renderTargetCube.js.map +1 -1
  97. package/Engines/WebGPU/webgpuBufferManager.js +1 -1
  98. package/Engines/WebGPU/webgpuBufferManager.js.map +1 -1
  99. package/Engines/WebGPU/webgpuCacheRenderPipeline.js +81 -82
  100. package/Engines/WebGPU/webgpuCacheRenderPipeline.js.map +1 -1
  101. package/Engines/WebGPU/webgpuCacheSampler.js +60 -64
  102. package/Engines/WebGPU/webgpuCacheSampler.js.map +1 -1
  103. package/Engines/WebGPU/webgpuClearQuad.js +1 -2
  104. package/Engines/WebGPU/webgpuClearQuad.js.map +1 -1
  105. package/Engines/WebGPU/webgpuComputeContext.js +13 -15
  106. package/Engines/WebGPU/webgpuComputeContext.js.map +1 -1
  107. package/Engines/WebGPU/webgpuConstants.d.ts +39 -39
  108. package/Engines/WebGPU/webgpuConstants.js.map +1 -1
  109. package/Engines/WebGPU/webgpuHardwareTexture.js +6 -8
  110. package/Engines/WebGPU/webgpuHardwareTexture.js.map +1 -1
  111. package/Engines/WebGPU/webgpuOcclusionQuery.js +1 -2
  112. package/Engines/WebGPU/webgpuOcclusionQuery.js.map +1 -1
  113. package/Engines/WebGPU/webgpuQuerySet.js +3 -3
  114. package/Engines/WebGPU/webgpuQuerySet.js.map +1 -1
  115. package/Engines/WebGPU/webgpuShaderProcessor.js +15 -19
  116. package/Engines/WebGPU/webgpuShaderProcessor.js.map +1 -1
  117. package/Engines/WebGPU/webgpuShaderProcessorsGLSL.js +8 -10
  118. package/Engines/WebGPU/webgpuShaderProcessorsGLSL.js.map +1 -1
  119. package/Engines/WebGPU/webgpuShaderProcessorsWGSL.js +26 -28
  120. package/Engines/WebGPU/webgpuShaderProcessorsWGSL.js.map +1 -1
  121. package/Engines/WebGPU/webgpuTextureHelper.js +413 -416
  122. package/Engines/WebGPU/webgpuTextureHelper.js.map +1 -1
  123. package/Engines/WebGPU/webgpuTextureManager.js +50 -51
  124. package/Engines/WebGPU/webgpuTextureManager.js.map +1 -1
  125. package/Engines/WebGPU/webgpuTimestampQuery.js +1 -2
  126. package/Engines/WebGPU/webgpuTimestampQuery.js.map +1 -1
  127. package/Engines/abstractEngine.js +4 -4
  128. package/Engines/abstractEngine.js.map +1 -1
  129. package/Engines/engine.js +2 -2
  130. package/Engines/engine.js.map +1 -1
  131. package/Engines/nativeEngine.js +9 -9
  132. package/Engines/nativeEngine.js.map +1 -1
  133. package/Engines/nullEngine.js +5 -5
  134. package/Engines/nullEngine.js.map +1 -1
  135. package/Engines/renderTargetWrapper.js +1 -2
  136. package/Engines/renderTargetWrapper.js.map +1 -1
  137. package/Engines/shaderStore.js +6 -7
  138. package/Engines/shaderStore.js.map +1 -1
  139. package/Engines/thinEngine.js +4 -5
  140. package/Engines/thinEngine.js.map +1 -1
  141. package/Engines/webgpuEngine.d.ts +11 -0
  142. package/Engines/webgpuEngine.js +91 -72
  143. package/Engines/webgpuEngine.js.map +1 -1
  144. package/Events/deviceInputEvents.d.ts +1 -1
  145. package/Events/deviceInputEvents.js.map +1 -1
  146. package/FlowGraph/flowGraph.d.ts +1 -1
  147. package/FlowGraph/flowGraph.js +5 -5
  148. package/FlowGraph/flowGraph.js.map +1 -1
  149. package/FlowGraph/flowGraphBlock.js +2 -3
  150. package/FlowGraph/flowGraphBlock.js.map +1 -1
  151. package/FlowGraph/flowGraphConnection.d.ts +1 -1
  152. package/FlowGraph/flowGraphConnection.js.map +1 -1
  153. package/FlowGraph/flowGraphDataConnection.js +3 -3
  154. package/FlowGraph/flowGraphDataConnection.js.map +1 -1
  155. package/FlowGraph/flowGraphExecutionBlock.js +2 -3
  156. package/FlowGraph/flowGraphExecutionBlock.js.map +1 -1
  157. package/FlowGraph/flowGraphSignalConnection.js +3 -3
  158. package/FlowGraph/flowGraphSignalConnection.js.map +1 -1
  159. package/Gamepads/dualShockGamepad.d.ts +2 -2
  160. package/Gamepads/dualShockGamepad.js +14 -14
  161. package/Gamepads/dualShockGamepad.js.map +1 -1
  162. package/Gamepads/xboxGamepad.d.ts +2 -2
  163. package/Gamepads/xboxGamepad.js +14 -14
  164. package/Gamepads/xboxGamepad.js.map +1 -1
  165. package/Gizmos/gizmo.d.ts +2 -2
  166. package/Gizmos/gizmo.js +4 -4
  167. package/Gizmos/gizmo.js.map +1 -1
  168. package/Gizmos/gizmoManager.js +2 -2
  169. package/Gizmos/gizmoManager.js.map +1 -1
  170. package/Gizmos/scaleGizmo.js +3 -3
  171. package/Gizmos/scaleGizmo.js.map +1 -1
  172. package/Loading/sceneLoader.d.ts +1 -1
  173. package/Loading/sceneLoader.js +6 -6
  174. package/Loading/sceneLoader.js.map +1 -1
  175. package/Materials/GreasedLine/greasedLineMaterialInterfaces.d.ts +3 -3
  176. package/Materials/GreasedLine/greasedLineMaterialInterfaces.js.map +1 -1
  177. package/Materials/GreasedLine/greasedLinePluginMaterial.js +10 -11
  178. package/Materials/GreasedLine/greasedLinePluginMaterial.js.map +1 -1
  179. package/Materials/GreasedLine/greasedLineSimpleMaterial.js +8 -9
  180. package/Materials/GreasedLine/greasedLineSimpleMaterial.js.map +1 -1
  181. package/Materials/Node/Blocks/Dual/currentScreenBlock.js +3 -4
  182. package/Materials/Node/Blocks/Dual/currentScreenBlock.js.map +1 -1
  183. package/Materials/Node/Blocks/Dual/fogBlock.js +2 -3
  184. package/Materials/Node/Blocks/Dual/fogBlock.js.map +1 -1
  185. package/Materials/Node/Blocks/Dual/imageSourceBlock.js +1 -2
  186. package/Materials/Node/Blocks/Dual/imageSourceBlock.js.map +1 -1
  187. package/Materials/Node/Blocks/Dual/lightBlock.js +5 -6
  188. package/Materials/Node/Blocks/Dual/lightBlock.js.map +1 -1
  189. package/Materials/Node/Blocks/Dual/reflectionTextureBaseBlock.js +4 -5
  190. package/Materials/Node/Blocks/Dual/reflectionTextureBaseBlock.js.map +1 -1
  191. package/Materials/Node/Blocks/Dual/sceneDepthBlock.js +7 -8
  192. package/Materials/Node/Blocks/Dual/sceneDepthBlock.js.map +1 -1
  193. package/Materials/Node/Blocks/Dual/textureBlock.js +4 -6
  194. package/Materials/Node/Blocks/Dual/textureBlock.js.map +1 -1
  195. package/Materials/Node/Blocks/Fragment/TBNBlock.js +2 -4
  196. package/Materials/Node/Blocks/Fragment/TBNBlock.js.map +1 -1
  197. package/Materials/Node/Blocks/Fragment/derivativeBlock.js +1 -2
  198. package/Materials/Node/Blocks/Fragment/derivativeBlock.js.map +1 -1
  199. package/Materials/Node/Blocks/Fragment/fragCoordBlock.js +1 -2
  200. package/Materials/Node/Blocks/Fragment/fragCoordBlock.js.map +1 -1
  201. package/Materials/Node/Blocks/Fragment/fragDepthBlock.js +1 -2
  202. package/Materials/Node/Blocks/Fragment/fragDepthBlock.js.map +1 -1
  203. package/Materials/Node/Blocks/Fragment/fragmentOutputBlock.js +5 -6
  204. package/Materials/Node/Blocks/Fragment/fragmentOutputBlock.js.map +1 -1
  205. package/Materials/Node/Blocks/Fragment/frontFacingBlock.js +1 -2
  206. package/Materials/Node/Blocks/Fragment/frontFacingBlock.js.map +1 -1
  207. package/Materials/Node/Blocks/Fragment/heightToNormalBlock.js +5 -6
  208. package/Materials/Node/Blocks/Fragment/heightToNormalBlock.js.map +1 -1
  209. package/Materials/Node/Blocks/Fragment/imageProcessingBlock.js +3 -4
  210. package/Materials/Node/Blocks/Fragment/imageProcessingBlock.js.map +1 -1
  211. package/Materials/Node/Blocks/Fragment/perturbNormalBlock.js +7 -9
  212. package/Materials/Node/Blocks/Fragment/perturbNormalBlock.js.map +1 -1
  213. package/Materials/Node/Blocks/Fragment/screenSizeBlock.js +1 -2
  214. package/Materials/Node/Blocks/Fragment/screenSizeBlock.js.map +1 -1
  215. package/Materials/Node/Blocks/Input/inputBlock.js +19 -21
  216. package/Materials/Node/Blocks/Input/inputBlock.js.map +1 -1
  217. package/Materials/Node/Blocks/Input/prePassTextureBlock.js +3 -4
  218. package/Materials/Node/Blocks/Input/prePassTextureBlock.js.map +1 -1
  219. package/Materials/Node/Blocks/PBR/anisotropyBlock.js +2 -3
  220. package/Materials/Node/Blocks/PBR/anisotropyBlock.js.map +1 -1
  221. package/Materials/Node/Blocks/PBR/clearCoatBlock.js +4 -5
  222. package/Materials/Node/Blocks/PBR/clearCoatBlock.js.map +1 -1
  223. package/Materials/Node/Blocks/PBR/iridescenceBlock.js +1 -2
  224. package/Materials/Node/Blocks/PBR/iridescenceBlock.js.map +1 -1
  225. package/Materials/Node/Blocks/PBR/pbrMetallicRoughnessBlock.js +28 -29
  226. package/Materials/Node/Blocks/PBR/pbrMetallicRoughnessBlock.js.map +1 -1
  227. package/Materials/Node/Blocks/PBR/reflectionBlock.js +4 -5
  228. package/Materials/Node/Blocks/PBR/reflectionBlock.js.map +1 -1
  229. package/Materials/Node/Blocks/PBR/refractionBlock.js +5 -6
  230. package/Materials/Node/Blocks/PBR/refractionBlock.js.map +1 -1
  231. package/Materials/Node/Blocks/PBR/sheenBlock.js +4 -5
  232. package/Materials/Node/Blocks/PBR/sheenBlock.js.map +1 -1
  233. package/Materials/Node/Blocks/PBR/subSurfaceBlock.js +2 -3
  234. package/Materials/Node/Blocks/PBR/subSurfaceBlock.js.map +1 -1
  235. package/Materials/Node/Blocks/Vertex/instancesBlock.js +1 -2
  236. package/Materials/Node/Blocks/Vertex/instancesBlock.js.map +1 -1
  237. package/Materials/Node/Blocks/Vertex/lightInformationBlock.js +1 -2
  238. package/Materials/Node/Blocks/Vertex/lightInformationBlock.js.map +1 -1
  239. package/Materials/Node/Blocks/Vertex/morphTargetsBlock.js +1 -2
  240. package/Materials/Node/Blocks/Vertex/morphTargetsBlock.js.map +1 -1
  241. package/Materials/Node/Blocks/Vertex/vertexOutputBlock.js +1 -2
  242. package/Materials/Node/Blocks/Vertex/vertexOutputBlock.js.map +1 -1
  243. package/Materials/Node/Blocks/arcTan2Block.js +1 -2
  244. package/Materials/Node/Blocks/arcTan2Block.js.map +1 -1
  245. package/Materials/Node/Blocks/biPlanarBlock.js +3 -4
  246. package/Materials/Node/Blocks/biPlanarBlock.js.map +1 -1
  247. package/Materials/Node/Blocks/clampBlock.js +4 -5
  248. package/Materials/Node/Blocks/clampBlock.js.map +1 -1
  249. package/Materials/Node/Blocks/cloudBlock.js +3 -4
  250. package/Materials/Node/Blocks/cloudBlock.js.map +1 -1
  251. package/Materials/Node/Blocks/curveBlock.js +1 -2
  252. package/Materials/Node/Blocks/curveBlock.js.map +1 -1
  253. package/Materials/Node/Blocks/customBlock.js +1 -2
  254. package/Materials/Node/Blocks/customBlock.js.map +1 -1
  255. package/Materials/Node/Blocks/matrixBuilderBlock.js +1 -2
  256. package/Materials/Node/Blocks/matrixBuilderBlock.js.map +1 -1
  257. package/Materials/Node/Blocks/meshAttributeExistsBlock.d.ts +1 -1
  258. package/Materials/Node/Blocks/meshAttributeExistsBlock.js +35 -35
  259. package/Materials/Node/Blocks/meshAttributeExistsBlock.js.map +1 -1
  260. package/Materials/Node/Blocks/modBlock.js +1 -2
  261. package/Materials/Node/Blocks/modBlock.js.map +1 -1
  262. package/Materials/Node/Blocks/remapBlock.js +3 -3
  263. package/Materials/Node/Blocks/remapBlock.js.map +1 -1
  264. package/Materials/Node/Blocks/simplexPerlin3DBlock.js +1 -2
  265. package/Materials/Node/Blocks/simplexPerlin3DBlock.js.map +1 -1
  266. package/Materials/Node/Blocks/transformBlock.js +1 -2
  267. package/Materials/Node/Blocks/transformBlock.js.map +1 -1
  268. package/Materials/Node/Blocks/triPlanarBlock.js +10 -12
  269. package/Materials/Node/Blocks/triPlanarBlock.js.map +1 -1
  270. package/Materials/Node/Blocks/voronoiNoiseBlock.js +3 -4
  271. package/Materials/Node/Blocks/voronoiNoiseBlock.js.map +1 -1
  272. package/Materials/Node/Blocks/waveBlock.d.ts +1 -1
  273. package/Materials/Node/Blocks/waveBlock.js +4 -4
  274. package/Materials/Node/Blocks/waveBlock.js.map +1 -1
  275. package/Materials/Node/Blocks/worleyNoise3DBlock.js +3 -4
  276. package/Materials/Node/Blocks/worleyNoise3DBlock.js.map +1 -1
  277. package/Materials/Node/Enums/nodeMaterialBlockConnectionPointMode.d.ts +1 -1
  278. package/Materials/Node/Enums/nodeMaterialBlockConnectionPointMode.js.map +1 -1
  279. package/Materials/Node/nodeMaterial.js +3 -4
  280. package/Materials/Node/nodeMaterial.js.map +1 -1
  281. package/Materials/Node/nodeMaterialBlock.js +5 -6
  282. package/Materials/Node/nodeMaterialBlock.js.map +1 -1
  283. package/Materials/Node/nodeMaterialBlockConnectionPoint.d.ts +2 -2
  284. package/Materials/Node/nodeMaterialBlockConnectionPoint.js +10 -10
  285. package/Materials/Node/nodeMaterialBlockConnectionPoint.js.map +1 -1
  286. package/Materials/Node/nodeMaterialBuildState.js +18 -19
  287. package/Materials/Node/nodeMaterialBuildState.js.map +1 -1
  288. package/Materials/Node/nodeMaterialConnectionPointCustomObject.js +3 -3
  289. package/Materials/Node/nodeMaterialConnectionPointCustomObject.js.map +1 -1
  290. package/Materials/PBR/pbrBaseMaterial.js +3 -4
  291. package/Materials/PBR/pbrBaseMaterial.js.map +1 -1
  292. package/Materials/Textures/internalTexture.d.ts +1 -1
  293. package/Materials/Textures/internalTexture.js +13 -13
  294. package/Materials/Textures/internalTexture.js.map +1 -1
  295. package/Materials/Textures/ktx2decoderTypes.d.ts +1 -1
  296. package/Materials/Textures/ktx2decoderTypes.js.map +1 -1
  297. package/Materials/Textures/rawCubeTexture.js +1 -2
  298. package/Materials/Textures/rawCubeTexture.js.map +1 -1
  299. package/Materials/effect.functions.js +2 -3
  300. package/Materials/effect.functions.js.map +1 -1
  301. package/Materials/effect.js +3 -4
  302. package/Materials/effect.js.map +1 -1
  303. package/Materials/effect.webgl.functions.js +1 -2
  304. package/Materials/effect.webgl.functions.js.map +1 -1
  305. package/Materials/material.js +7 -9
  306. package/Materials/material.js.map +1 -1
  307. package/Materials/materialPluginEvent.d.ts +1 -1
  308. package/Materials/materialPluginEvent.js.map +1 -1
  309. package/Materials/materialPluginManager.js +9 -11
  310. package/Materials/materialPluginManager.js.map +1 -1
  311. package/Materials/meshDebugPluginMaterial.d.ts +1 -1
  312. package/Materials/meshDebugPluginMaterial.js +2 -2
  313. package/Materials/meshDebugPluginMaterial.js.map +1 -1
  314. package/Materials/shaderLanguage.d.ts +1 -1
  315. package/Materials/shaderLanguage.js.map +1 -1
  316. package/Materials/shadowDepthWrapper.js +1 -2
  317. package/Materials/shadowDepthWrapper.js.map +1 -1
  318. package/Materials/standardMaterial.js +2 -3
  319. package/Materials/standardMaterial.js.map +1 -1
  320. package/Maths/math.axis.d.ts +2 -2
  321. package/Maths/math.axis.js.map +1 -1
  322. package/Maths/math.path.d.ts +1 -1
  323. package/Maths/math.path.js +3 -3
  324. package/Maths/math.path.js.map +1 -1
  325. package/Maths/math.vector.js +32 -6
  326. package/Maths/math.vector.js.map +1 -1
  327. package/Meshes/Builders/greasedLineBuilder.d.ts +2 -2
  328. package/Meshes/Builders/greasedLineBuilder.js +21 -23
  329. package/Meshes/Builders/greasedLineBuilder.js.map +1 -1
  330. package/Meshes/GreasedLine/greasedLineBaseMesh.d.ts +3 -3
  331. package/Meshes/GreasedLine/greasedLineBaseMesh.js.map +1 -1
  332. package/Meshes/GreasedLine/greasedLineRibbonMesh.js +14 -14
  333. package/Meshes/GreasedLine/greasedLineRibbonMesh.js.map +1 -1
  334. package/Meshes/Node/Blocks/Instances/instantiateBaseBlock.js +2 -2
  335. package/Meshes/Node/Blocks/Instances/instantiateBaseBlock.js.map +1 -1
  336. package/Meshes/Node/Blocks/Instances/instantiateOnFacesBlock.js +2 -2
  337. package/Meshes/Node/Blocks/Instances/instantiateOnFacesBlock.js.map +1 -1
  338. package/Meshes/Node/Blocks/Instances/instantiateOnVerticesBlock.js +3 -3
  339. package/Meshes/Node/Blocks/Instances/instantiateOnVerticesBlock.js.map +1 -1
  340. package/Meshes/Node/Blocks/Instances/instantiateOnVolumeBlock.js +3 -3
  341. package/Meshes/Node/Blocks/Instances/instantiateOnVolumeBlock.js.map +1 -1
  342. package/Meshes/Node/Blocks/Set/setColorsBlock.js +2 -2
  343. package/Meshes/Node/Blocks/Set/setColorsBlock.js.map +1 -1
  344. package/Meshes/Node/Blocks/Set/setMaterialIDBlock.js +2 -2
  345. package/Meshes/Node/Blocks/Set/setMaterialIDBlock.js.map +1 -1
  346. package/Meshes/Node/Blocks/Set/setNormalsBlock.js +2 -2
  347. package/Meshes/Node/Blocks/Set/setNormalsBlock.js.map +1 -1
  348. package/Meshes/Node/Blocks/Set/setPositionsBlock.js +2 -2
  349. package/Meshes/Node/Blocks/Set/setPositionsBlock.js.map +1 -1
  350. package/Meshes/Node/Blocks/Set/setTangentsBlock.js +2 -2
  351. package/Meshes/Node/Blocks/Set/setTangentsBlock.js.map +1 -1
  352. package/Meshes/Node/Blocks/Set/setUVsBlock.js +3 -3
  353. package/Meshes/Node/Blocks/Set/setUVsBlock.js.map +1 -1
  354. package/Meshes/Node/Blocks/Sources/boxBlock.js +2 -2
  355. package/Meshes/Node/Blocks/Sources/boxBlock.js.map +1 -1
  356. package/Meshes/Node/Blocks/Sources/capsuleBlock.js +2 -2
  357. package/Meshes/Node/Blocks/Sources/capsuleBlock.js.map +1 -1
  358. package/Meshes/Node/Blocks/Sources/cylinderBlock.js +2 -2
  359. package/Meshes/Node/Blocks/Sources/cylinderBlock.js.map +1 -1
  360. package/Meshes/Node/Blocks/Sources/discBlock.js +2 -2
  361. package/Meshes/Node/Blocks/Sources/discBlock.js.map +1 -1
  362. package/Meshes/Node/Blocks/Sources/gridBlock.js +2 -2
  363. package/Meshes/Node/Blocks/Sources/gridBlock.js.map +1 -1
  364. package/Meshes/Node/Blocks/Sources/icoSphereBlock.js +2 -2
  365. package/Meshes/Node/Blocks/Sources/icoSphereBlock.js.map +1 -1
  366. package/Meshes/Node/Blocks/Sources/meshBlock.js +2 -2
  367. package/Meshes/Node/Blocks/Sources/meshBlock.js.map +1 -1
  368. package/Meshes/Node/Blocks/Sources/planeBlock.js +2 -2
  369. package/Meshes/Node/Blocks/Sources/planeBlock.js.map +1 -1
  370. package/Meshes/Node/Blocks/Sources/sphereBlock.js +2 -2
  371. package/Meshes/Node/Blocks/Sources/sphereBlock.js.map +1 -1
  372. package/Meshes/Node/Blocks/Sources/torusBlock.js +2 -2
  373. package/Meshes/Node/Blocks/Sources/torusBlock.js.map +1 -1
  374. package/Meshes/Node/Blocks/Textures/geometryTextureBlock.js +2 -2
  375. package/Meshes/Node/Blocks/Textures/geometryTextureBlock.js.map +1 -1
  376. package/Meshes/Node/Blocks/Textures/geometryTextureFetchBlock.js +2 -2
  377. package/Meshes/Node/Blocks/Textures/geometryTextureFetchBlock.js.map +1 -1
  378. package/Meshes/Node/Blocks/booleanGeometryBlock.js +3 -3
  379. package/Meshes/Node/Blocks/booleanGeometryBlock.js.map +1 -1
  380. package/Meshes/Node/Blocks/conditionBlock.js +2 -2
  381. package/Meshes/Node/Blocks/conditionBlock.js.map +1 -1
  382. package/Meshes/Node/Blocks/geometryClampBlock.js +3 -3
  383. package/Meshes/Node/Blocks/geometryClampBlock.js.map +1 -1
  384. package/Meshes/Node/Blocks/geometryCollectionBlock.js +2 -2
  385. package/Meshes/Node/Blocks/geometryCollectionBlock.js.map +1 -1
  386. package/Meshes/Node/Blocks/geometryCurveBlock.js +2 -2
  387. package/Meshes/Node/Blocks/geometryCurveBlock.js.map +1 -1
  388. package/Meshes/Node/Blocks/geometryOptimizeBlock.js +3 -3
  389. package/Meshes/Node/Blocks/geometryOptimizeBlock.js.map +1 -1
  390. package/Meshes/Node/Blocks/geometryTransformBlock.js +2 -2
  391. package/Meshes/Node/Blocks/geometryTransformBlock.js.map +1 -1
  392. package/Meshes/Node/Blocks/geometryTrigonometryBlock.js +2 -2
  393. package/Meshes/Node/Blocks/geometryTrigonometryBlock.js.map +1 -1
  394. package/Meshes/Node/Blocks/mappingBlock.js +2 -2
  395. package/Meshes/Node/Blocks/mappingBlock.js.map +1 -1
  396. package/Meshes/Node/Blocks/mathBlock.js +2 -2
  397. package/Meshes/Node/Blocks/mathBlock.js.map +1 -1
  398. package/Meshes/Node/Blocks/mergeGeometryBlock.js +2 -2
  399. package/Meshes/Node/Blocks/mergeGeometryBlock.js.map +1 -1
  400. package/Meshes/Node/Blocks/randomBlock.js +2 -2
  401. package/Meshes/Node/Blocks/randomBlock.js.map +1 -1
  402. package/Meshes/Node/nodeGeometryBlock.js +3 -3
  403. package/Meshes/Node/nodeGeometryBlock.js.map +1 -1
  404. package/Meshes/Node/nodeGeometryBlockConnectionPoint.d.ts +2 -2
  405. package/Meshes/Node/nodeGeometryBlockConnectionPoint.js +7 -7
  406. package/Meshes/Node/nodeGeometryBlockConnectionPoint.js.map +1 -1
  407. package/Meshes/abstractMesh.d.ts +49 -17
  408. package/Meshes/abstractMesh.js +128 -133
  409. package/Meshes/abstractMesh.js.map +1 -1
  410. package/Meshes/geometry.d.ts +8 -0
  411. package/Meshes/geometry.js +17 -0
  412. package/Meshes/geometry.js.map +1 -1
  413. package/Meshes/instancedMesh.d.ts +5 -8
  414. package/Meshes/instancedMesh.js +15 -9
  415. package/Meshes/instancedMesh.js.map +1 -1
  416. package/Meshes/mesh.d.ts +7 -3
  417. package/Meshes/mesh.js +21 -13
  418. package/Meshes/mesh.js.map +1 -1
  419. package/Meshes/meshSimplification.d.ts +1 -1
  420. package/Meshes/meshSimplification.js +1 -1
  421. package/Meshes/meshSimplification.js.map +1 -1
  422. package/Meshes/meshSimplificationSceneComponent.js +2 -2
  423. package/Meshes/meshSimplificationSceneComponent.js.map +1 -1
  424. package/Meshes/transformNode.js +7 -8
  425. package/Meshes/transformNode.js.map +1 -1
  426. package/Misc/assetsManager.d.ts +1 -1
  427. package/Misc/assetsManager.js +9 -9
  428. package/Misc/assetsManager.js.map +1 -1
  429. package/Misc/basis.js +2 -2
  430. package/Misc/basis.js.map +1 -1
  431. package/Misc/copyTextureToTexture.d.ts +1 -1
  432. package/Misc/copyTextureToTexture.js +1 -1
  433. package/Misc/copyTextureToTexture.js.map +1 -1
  434. package/Misc/environmentTextureTools.js +3 -3
  435. package/Misc/environmentTextureTools.js.map +1 -1
  436. package/Misc/iInspectable.d.ts +1 -1
  437. package/Misc/iInspectable.js.map +1 -1
  438. package/Misc/khronosTextureContainer2.js +2 -2
  439. package/Misc/khronosTextureContainer2.js.map +1 -1
  440. package/Misc/timer.d.ts +1 -1
  441. package/Misc/timer.js +5 -5
  442. package/Misc/timer.js.map +1 -1
  443. package/Misc/virtualJoystick.d.ts +1 -1
  444. package/Misc/virtualJoystick.js +16 -16
  445. package/Misc/virtualJoystick.js.map +1 -1
  446. package/Particles/particleSystem.js +3 -3
  447. package/Particles/particleSystem.js.map +1 -1
  448. package/Particles/particleSystemComponent.js +1 -2
  449. package/Particles/particleSystemComponent.js.map +1 -1
  450. package/Particles/pointsCloudSystem.d.ts +1 -1
  451. package/Particles/pointsCloudSystem.js +14 -14
  452. package/Particles/pointsCloudSystem.js.map +1 -1
  453. package/Particles/subEmitter.d.ts +1 -1
  454. package/Particles/subEmitter.js +1 -1
  455. package/Particles/subEmitter.js.map +1 -1
  456. package/Physics/physicsHelper.d.ts +2 -2
  457. package/Physics/physicsHelper.js +6 -7
  458. package/Physics/physicsHelper.js.map +1 -1
  459. package/Physics/v1/physicsImpostor.js +4 -5
  460. package/Physics/v1/physicsImpostor.js.map +1 -1
  461. package/Physics/v2/IPhysicsEnginePlugin.d.ts +16 -8
  462. package/Physics/v2/IPhysicsEnginePlugin.js +9 -0
  463. package/Physics/v2/IPhysicsEnginePlugin.js.map +1 -1
  464. package/Physics/v2/Plugins/havokPlugin.js +96 -79
  465. package/Physics/v2/Plugins/havokPlugin.js.map +1 -1
  466. package/Physics/v2/physicsAggregate.js +8 -9
  467. package/Physics/v2/physicsAggregate.js.map +1 -1
  468. package/Physics/v2/physicsBody.d.ts +14 -2
  469. package/Physics/v2/physicsBody.js +30 -11
  470. package/Physics/v2/physicsBody.js.map +1 -1
  471. package/Physics/v2/physicsConstraint.js +8 -9
  472. package/Physics/v2/physicsConstraint.js.map +1 -1
  473. package/Physics/v2/physicsMaterial.d.ts +1 -1
  474. package/Physics/v2/physicsMaterial.js.map +1 -1
  475. package/Physics/v2/physicsShape.js +9 -10
  476. package/Physics/v2/physicsShape.js.map +1 -1
  477. package/Physics/v2/ragdoll.js +11 -12
  478. package/Physics/v2/ragdoll.js.map +1 -1
  479. package/PostProcesses/RenderPipeline/Pipelines/defaultRenderingPipeline.js +2 -2
  480. package/PostProcesses/RenderPipeline/Pipelines/defaultRenderingPipeline.js.map +1 -1
  481. package/PostProcesses/depthOfFieldEffect.d.ts +1 -1
  482. package/PostProcesses/depthOfFieldEffect.js +3 -3
  483. package/PostProcesses/depthOfFieldEffect.js.map +1 -1
  484. package/PostProcesses/postProcess.js +2 -3
  485. package/PostProcesses/postProcess.js.map +1 -1
  486. package/PostProcesses/tonemapPostProcess.d.ts +1 -1
  487. package/PostProcesses/tonemapPostProcess.js +4 -4
  488. package/PostProcesses/tonemapPostProcess.js.map +1 -1
  489. package/Rendering/fluidRenderer/fluidRenderingTargetRenderer.d.ts +1 -1
  490. package/Rendering/fluidRenderer/fluidRenderingTargetRenderer.js +10 -10
  491. package/Rendering/fluidRenderer/fluidRenderingTargetRenderer.js.map +1 -1
  492. package/Shaders/spriteMap.fragment.js +3 -2
  493. package/Shaders/spriteMap.fragment.js.map +1 -1
  494. package/ShadersWGSL/boundingInfo.compute.js +8 -8
  495. package/ShadersWGSL/boundingInfo.compute.js.map +1 -1
  496. package/XR/features/WebXRDepthSensing.js +2 -2
  497. package/XR/features/WebXRDepthSensing.js.map +1 -1
  498. package/XR/features/WebXRHandTracking.d.ts +2 -2
  499. package/XR/features/WebXRHandTracking.js +76 -76
  500. package/XR/features/WebXRHandTracking.js.map +1 -1
  501. package/XR/features/WebXRLightEstimation.js +2 -2
  502. package/XR/features/WebXRLightEstimation.js.map +1 -1
  503. package/XR/features/WebXRNearInteraction.d.ts +1 -1
  504. package/XR/features/WebXRNearInteraction.js +5 -5
  505. package/XR/features/WebXRNearInteraction.js.map +1 -1
  506. package/XR/features/WebXRRawCameraAccess.js +2 -2
  507. package/XR/features/WebXRRawCameraAccess.js.map +1 -1
  508. package/XR/motionController/webXRProfiledMotionController.js +2 -2
  509. package/XR/motionController/webXRProfiledMotionController.js.map +1 -1
  510. package/XR/webXRCamera.js +3 -4
  511. package/XR/webXRCamera.js.map +1 -1
  512. package/XR/webXREnterExitUI.js +3 -4
  513. package/XR/webXREnterExitUI.js.map +1 -1
  514. package/XR/webXRExperienceHelper.js +12 -13
  515. package/XR/webXRExperienceHelper.js.map +1 -1
  516. package/XR/webXRManagedOutputCanvas.d.ts +1 -1
  517. package/XR/webXRManagedOutputCanvas.js +15 -6
  518. package/XR/webXRManagedOutputCanvas.js.map +1 -1
  519. package/XR/webXRRenderTargetTextureProvider.js +2 -2
  520. package/XR/webXRRenderTargetTextureProvider.js.map +1 -1
  521. package/XR/webXRTypes.d.ts +2 -2
  522. package/XR/webXRTypes.js.map +1 -1
  523. package/package.json +1 -1
  524. package/scene.d.ts +1 -1
  525. package/scene.js +4 -4
  526. package/scene.js.map +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"freeCameraMouseWheelInput.js","sourceRoot":"","sources":["../../../../../dev/core/src/Cameras/Inputs/freeCameraMouseWheelInput.ts"],"names":[],"mappings":"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","sourcesContent":["import type { Nullable } from \"../../types\";\r\nimport { serialize } from \"../../Misc/decorators\";\r\nimport type { FreeCamera } from \"../../Cameras/freeCamera\";\r\nimport { CameraInputTypes } from \"../../Cameras/cameraInputsManager\";\r\nimport { BaseCameraMouseWheelInput } from \"../../Cameras/Inputs/BaseCameraMouseWheelInput\";\r\nimport { Matrix, Vector3 } from \"../../Maths/math.vector\";\r\nimport { Coordinate } from \"../../Maths/math.axis\";\r\n\r\n// eslint-disable-next-line @typescript-eslint/naming-convention\r\nenum _CameraProperty {\r\n MoveRelative,\r\n RotateRelative,\r\n MoveScene,\r\n}\r\n\r\n/**\r\n * Manage the mouse wheel inputs to control a free camera.\r\n * @see https://doc.babylonjs.com/features/featuresDeepDive/cameras/customizingCameraInputs\r\n */\r\nexport class FreeCameraMouseWheelInput extends BaseCameraMouseWheelInput {\r\n /**\r\n * Defines the camera the input is attached to.\r\n */\r\n public camera: FreeCamera;\r\n\r\n /**\r\n * Gets the class name of the current input.\r\n * @returns the class name\r\n */\r\n public override getClassName(): string {\r\n return \"FreeCameraMouseWheelInput\";\r\n }\r\n\r\n /**\r\n * Set which movement axis (relative to camera's orientation) the mouse\r\n * wheel's X axis controls.\r\n * @param axis The axis to be moved. Set null to clear.\r\n */\r\n @serialize()\r\n public set wheelXMoveRelative(axis: Nullable<Coordinate>) {\r\n if (axis === null && this._wheelXAction !== _CameraProperty.MoveRelative) {\r\n // Attempting to clear different _wheelXAction.\r\n return;\r\n }\r\n this._wheelXAction = _CameraProperty.MoveRelative;\r\n this._wheelXActionCoordinate = axis;\r\n }\r\n\r\n /**\r\n * Get the configured movement axis (relative to camera's orientation) the\r\n * mouse wheel's X axis controls.\r\n * @returns The configured axis or null if none.\r\n */\r\n public get wheelXMoveRelative(): Nullable<Coordinate> {\r\n if (this._wheelXAction !== _CameraProperty.MoveRelative) {\r\n return null;\r\n }\r\n return this._wheelXActionCoordinate;\r\n }\r\n\r\n /**\r\n * Set which movement axis (relative to camera's orientation) the mouse\r\n * wheel's Y axis controls.\r\n * @param axis The axis to be moved. Set null to clear.\r\n */\r\n @serialize()\r\n public set wheelYMoveRelative(axis: Nullable<Coordinate>) {\r\n if (axis === null && this._wheelYAction !== _CameraProperty.MoveRelative) {\r\n // Attempting to clear different _wheelYAction.\r\n return;\r\n }\r\n this._wheelYAction = _CameraProperty.MoveRelative;\r\n this._wheelYActionCoordinate = axis;\r\n }\r\n\r\n /**\r\n * Get the configured movement axis (relative to camera's orientation) the\r\n * mouse wheel's Y axis controls.\r\n * @returns The configured axis or null if none.\r\n */\r\n public get wheelYMoveRelative(): Nullable<Coordinate> {\r\n if (this._wheelYAction !== _CameraProperty.MoveRelative) {\r\n return null;\r\n }\r\n return this._wheelYActionCoordinate;\r\n }\r\n\r\n /**\r\n * Set which movement axis (relative to camera's orientation) the mouse\r\n * wheel's Z axis controls.\r\n * @param axis The axis to be moved. Set null to clear.\r\n */\r\n @serialize()\r\n public set wheelZMoveRelative(axis: Nullable<Coordinate>) {\r\n if (axis === null && this._wheelZAction !== _CameraProperty.MoveRelative) {\r\n // Attempting to clear different _wheelZAction.\r\n return;\r\n }\r\n this._wheelZAction = _CameraProperty.MoveRelative;\r\n this._wheelZActionCoordinate = axis;\r\n }\r\n\r\n /**\r\n * Get the configured movement axis (relative to camera's orientation) the\r\n * mouse wheel's Z axis controls.\r\n * @returns The configured axis or null if none.\r\n */\r\n public get wheelZMoveRelative(): Nullable<Coordinate> {\r\n if (this._wheelZAction !== _CameraProperty.MoveRelative) {\r\n return null;\r\n }\r\n return this._wheelZActionCoordinate;\r\n }\r\n\r\n /**\r\n * Set which rotation axis (relative to camera's orientation) the mouse\r\n * wheel's X axis controls.\r\n * @param axis The axis to be moved. Set null to clear.\r\n */\r\n @serialize()\r\n public set wheelXRotateRelative(axis: Nullable<Coordinate>) {\r\n if (axis === null && this._wheelXAction !== _CameraProperty.RotateRelative) {\r\n // Attempting to clear different _wheelXAction.\r\n return;\r\n }\r\n this._wheelXAction = _CameraProperty.RotateRelative;\r\n this._wheelXActionCoordinate = axis;\r\n }\r\n\r\n /**\r\n * Get the configured rotation axis (relative to camera's orientation) the\r\n * mouse wheel's X axis controls.\r\n * @returns The configured axis or null if none.\r\n */\r\n public get wheelXRotateRelative(): Nullable<Coordinate> {\r\n if (this._wheelXAction !== _CameraProperty.RotateRelative) {\r\n return null;\r\n }\r\n return this._wheelXActionCoordinate;\r\n }\r\n\r\n /**\r\n * Set which rotation axis (relative to camera's orientation) the mouse\r\n * wheel's Y axis controls.\r\n * @param axis The axis to be moved. Set null to clear.\r\n */\r\n @serialize()\r\n public set wheelYRotateRelative(axis: Nullable<Coordinate>) {\r\n if (axis === null && this._wheelYAction !== _CameraProperty.RotateRelative) {\r\n // Attempting to clear different _wheelYAction.\r\n return;\r\n }\r\n this._wheelYAction = _CameraProperty.RotateRelative;\r\n this._wheelYActionCoordinate = axis;\r\n }\r\n\r\n /**\r\n * Get the configured rotation axis (relative to camera's orientation) the\r\n * mouse wheel's Y axis controls.\r\n * @returns The configured axis or null if none.\r\n */\r\n public get wheelYRotateRelative(): Nullable<Coordinate> {\r\n if (this._wheelYAction !== _CameraProperty.RotateRelative) {\r\n return null;\r\n }\r\n return this._wheelYActionCoordinate;\r\n }\r\n\r\n /**\r\n * Set which rotation axis (relative to camera's orientation) the mouse\r\n * wheel's Z axis controls.\r\n * @param axis The axis to be moved. Set null to clear.\r\n */\r\n @serialize()\r\n public set wheelZRotateRelative(axis: Nullable<Coordinate>) {\r\n if (axis === null && this._wheelZAction !== _CameraProperty.RotateRelative) {\r\n // Attempting to clear different _wheelZAction.\r\n return;\r\n }\r\n this._wheelZAction = _CameraProperty.RotateRelative;\r\n this._wheelZActionCoordinate = axis;\r\n }\r\n\r\n /**\r\n * Get the configured rotation axis (relative to camera's orientation) the\r\n * mouse wheel's Z axis controls.\r\n * @returns The configured axis or null if none.\r\n */\r\n public get wheelZRotateRelative(): Nullable<Coordinate> {\r\n if (this._wheelZAction !== _CameraProperty.RotateRelative) {\r\n return null;\r\n }\r\n return this._wheelZActionCoordinate;\r\n }\r\n\r\n /**\r\n * Set which movement axis (relative to the scene) the mouse wheel's X axis\r\n * controls.\r\n * @param axis The axis to be moved. Set null to clear.\r\n */\r\n @serialize()\r\n public set wheelXMoveScene(axis: Nullable<Coordinate>) {\r\n if (axis === null && this._wheelXAction !== _CameraProperty.MoveScene) {\r\n // Attempting to clear different _wheelXAction.\r\n return;\r\n }\r\n this._wheelXAction = _CameraProperty.MoveScene;\r\n this._wheelXActionCoordinate = axis;\r\n }\r\n\r\n /**\r\n * Get the configured movement axis (relative to the scene) the mouse wheel's\r\n * X axis controls.\r\n * @returns The configured axis or null if none.\r\n */\r\n public get wheelXMoveScene(): Nullable<Coordinate> {\r\n if (this._wheelXAction !== _CameraProperty.MoveScene) {\r\n return null;\r\n }\r\n return this._wheelXActionCoordinate;\r\n }\r\n\r\n /**\r\n * Set which movement axis (relative to the scene) the mouse wheel's Y axis\r\n * controls.\r\n * @param axis The axis to be moved. Set null to clear.\r\n */\r\n @serialize()\r\n public set wheelYMoveScene(axis: Nullable<Coordinate>) {\r\n if (axis === null && this._wheelYAction !== _CameraProperty.MoveScene) {\r\n // Attempting to clear different _wheelYAction.\r\n return;\r\n }\r\n this._wheelYAction = _CameraProperty.MoveScene;\r\n this._wheelYActionCoordinate = axis;\r\n }\r\n\r\n /**\r\n * Get the configured movement axis (relative to the scene) the mouse wheel's\r\n * Y axis controls.\r\n * @returns The configured axis or null if none.\r\n */\r\n public get wheelYMoveScene(): Nullable<Coordinate> {\r\n if (this._wheelYAction !== _CameraProperty.MoveScene) {\r\n return null;\r\n }\r\n return this._wheelYActionCoordinate;\r\n }\r\n\r\n /**\r\n * Set which movement axis (relative to the scene) the mouse wheel's Z axis\r\n * controls.\r\n * @param axis The axis to be moved. Set null to clear.\r\n */\r\n @serialize()\r\n public set wheelZMoveScene(axis: Nullable<Coordinate>) {\r\n if (axis === null && this._wheelZAction !== _CameraProperty.MoveScene) {\r\n // Attempting to clear different _wheelZAction.\r\n return;\r\n }\r\n this._wheelZAction = _CameraProperty.MoveScene;\r\n this._wheelZActionCoordinate = axis;\r\n }\r\n\r\n /**\r\n * Get the configured movement axis (relative to the scene) the mouse wheel's\r\n * Z axis controls.\r\n * @returns The configured axis or null if none.\r\n */\r\n public get wheelZMoveScene(): Nullable<Coordinate> {\r\n if (this._wheelZAction !== _CameraProperty.MoveScene) {\r\n return null;\r\n }\r\n return this._wheelZActionCoordinate;\r\n }\r\n\r\n /**\r\n * Called for each rendered frame.\r\n */\r\n public override checkInputs(): void {\r\n if (this._wheelDeltaX === 0 && this._wheelDeltaY === 0 && this._wheelDeltaZ == 0) {\r\n return;\r\n }\r\n\r\n // Clear the camera properties that we might be updating.\r\n this._moveRelative.setAll(0);\r\n this._rotateRelative.setAll(0);\r\n this._moveScene.setAll(0);\r\n\r\n // Set the camera properties that are to be updated.\r\n this._updateCamera();\r\n\r\n if (this.camera.getScene().useRightHandedSystem) {\r\n // TODO: Does this need done for worldUpdate too?\r\n this._moveRelative.z *= -1;\r\n }\r\n\r\n // Convert updates relative to camera to world position update.\r\n const cameraTransformMatrix = Matrix.Zero();\r\n this.camera.getViewMatrix().invertToRef(cameraTransformMatrix);\r\n\r\n const transformedDirection = Vector3.Zero();\r\n Vector3.TransformNormalToRef(this._moveRelative, cameraTransformMatrix, transformedDirection);\r\n\r\n // Apply updates to camera position.\r\n this.camera.cameraRotation.x += this._rotateRelative.x / 200;\r\n this.camera.cameraRotation.y += this._rotateRelative.y / 200;\r\n this.camera.cameraDirection.addInPlace(transformedDirection);\r\n this.camera.cameraDirection.addInPlace(this._moveScene);\r\n\r\n // Call the base class implementation to handle observers and do cleanup.\r\n super.checkInputs();\r\n }\r\n\r\n private _moveRelative = Vector3.Zero();\r\n private _rotateRelative = Vector3.Zero();\r\n private _moveScene = Vector3.Zero();\r\n\r\n /**\r\n * These are set to the desired default behaviour.\r\n */\r\n private _wheelXAction: Nullable<_CameraProperty> = _CameraProperty.MoveRelative;\r\n private _wheelXActionCoordinate: Nullable<Coordinate> = Coordinate.X;\r\n private _wheelYAction: Nullable<_CameraProperty> = _CameraProperty.MoveRelative;\r\n private _wheelYActionCoordinate: Nullable<Coordinate> = Coordinate.Z;\r\n private _wheelZAction: Nullable<_CameraProperty> = null;\r\n private _wheelZActionCoordinate: Nullable<Coordinate> = null;\r\n\r\n /**\r\n * Update the camera according to any configured properties for the 3\r\n * mouse-wheel axis.\r\n */\r\n private _updateCamera(): void {\r\n // Do the camera updates for each of the 3 touch-wheel axis.\r\n this._updateCameraProperty(this._wheelDeltaX, this._wheelXAction, this._wheelXActionCoordinate);\r\n this._updateCameraProperty(this._wheelDeltaY, this._wheelYAction, this._wheelYActionCoordinate);\r\n this._updateCameraProperty(this._wheelDeltaZ, this._wheelZAction, this._wheelZActionCoordinate);\r\n }\r\n\r\n /**\r\n * Update one property of the camera.\r\n * @param value\r\n * @param cameraProperty\r\n * @param coordinate\r\n */\r\n private _updateCameraProperty(\r\n /* Mouse-wheel delta. */\r\n value: number,\r\n /* Camera property to be changed. */\r\n cameraProperty: Nullable<_CameraProperty>,\r\n /* Axis of Camera property to be changed. */\r\n coordinate: Nullable<Coordinate>\r\n ): void {\r\n if (value === 0) {\r\n // Mouse wheel has not moved.\r\n return;\r\n }\r\n if (cameraProperty === null || coordinate === null) {\r\n // Mouse wheel axis not configured.\r\n return;\r\n }\r\n\r\n let action = null;\r\n switch (cameraProperty) {\r\n case _CameraProperty.MoveRelative:\r\n action = this._moveRelative;\r\n break;\r\n case _CameraProperty.RotateRelative:\r\n action = this._rotateRelative;\r\n break;\r\n case _CameraProperty.MoveScene:\r\n action = this._moveScene;\r\n break;\r\n }\r\n\r\n switch (coordinate) {\r\n case Coordinate.X:\r\n action.set(value, 0, 0);\r\n break;\r\n case Coordinate.Y:\r\n action.set(0, value, 0);\r\n break;\r\n case Coordinate.Z:\r\n action.set(0, 0, value);\r\n break;\r\n }\r\n }\r\n}\r\n\r\n(<any>CameraInputTypes)[\"FreeCameraMouseWheelInput\"] = FreeCameraMouseWheelInput;\r\n"]}
1
+ {"version":3,"file":"freeCameraMouseWheelInput.js","sourceRoot":"","sources":["../../../../../dev/core/src/Cameras/Inputs/freeCameraMouseWheelInput.ts"],"names":[],"mappings":"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","sourcesContent":["import type { Nullable } from \"../../types\";\r\nimport { serialize } from \"../../Misc/decorators\";\r\nimport type { FreeCamera } from \"../../Cameras/freeCamera\";\r\nimport { CameraInputTypes } from \"../../Cameras/cameraInputsManager\";\r\nimport { BaseCameraMouseWheelInput } from \"../../Cameras/Inputs/BaseCameraMouseWheelInput\";\r\nimport { Matrix, Vector3 } from \"../../Maths/math.vector\";\r\nimport { Coordinate } from \"../../Maths/math.axis\";\r\n\r\n// eslint-disable-next-line @typescript-eslint/naming-convention\r\nenum _CameraProperty {\r\n MoveRelative,\r\n RotateRelative,\r\n MoveScene,\r\n}\r\n\r\n/**\r\n * Manage the mouse wheel inputs to control a free camera.\r\n * @see https://doc.babylonjs.com/features/featuresDeepDive/cameras/customizingCameraInputs\r\n */\r\nexport class FreeCameraMouseWheelInput extends BaseCameraMouseWheelInput {\r\n /**\r\n * Defines the camera the input is attached to.\r\n */\r\n public camera: FreeCamera;\r\n\r\n /**\r\n * Gets the class name of the current input.\r\n * @returns the class name\r\n */\r\n public override getClassName(): string {\r\n return \"FreeCameraMouseWheelInput\";\r\n }\r\n\r\n /**\r\n * Set which movement axis (relative to camera's orientation) the mouse\r\n * wheel's X axis controls.\r\n * @param axis The axis to be moved. Set null to clear.\r\n */\r\n @serialize()\r\n public set wheelXMoveRelative(axis: Nullable<Coordinate>) {\r\n if (axis === null && this._wheelXAction !== _CameraProperty.MoveRelative) {\r\n // Attempting to clear different _wheelXAction.\r\n return;\r\n }\r\n this._wheelXAction = _CameraProperty.MoveRelative;\r\n this._wheelXActionCoordinate = axis;\r\n }\r\n\r\n /**\r\n * Get the configured movement axis (relative to camera's orientation) the\r\n * mouse wheel's X axis controls.\r\n * @returns The configured axis or null if none.\r\n */\r\n public get wheelXMoveRelative(): Nullable<Coordinate> {\r\n if (this._wheelXAction !== _CameraProperty.MoveRelative) {\r\n return null;\r\n }\r\n return this._wheelXActionCoordinate;\r\n }\r\n\r\n /**\r\n * Set which movement axis (relative to camera's orientation) the mouse\r\n * wheel's Y axis controls.\r\n * @param axis The axis to be moved. Set null to clear.\r\n */\r\n @serialize()\r\n public set wheelYMoveRelative(axis: Nullable<Coordinate>) {\r\n if (axis === null && this._wheelYAction !== _CameraProperty.MoveRelative) {\r\n // Attempting to clear different _wheelYAction.\r\n return;\r\n }\r\n this._wheelYAction = _CameraProperty.MoveRelative;\r\n this._wheelYActionCoordinate = axis;\r\n }\r\n\r\n /**\r\n * Get the configured movement axis (relative to camera's orientation) the\r\n * mouse wheel's Y axis controls.\r\n * @returns The configured axis or null if none.\r\n */\r\n public get wheelYMoveRelative(): Nullable<Coordinate> {\r\n if (this._wheelYAction !== _CameraProperty.MoveRelative) {\r\n return null;\r\n }\r\n return this._wheelYActionCoordinate;\r\n }\r\n\r\n /**\r\n * Set which movement axis (relative to camera's orientation) the mouse\r\n * wheel's Z axis controls.\r\n * @param axis The axis to be moved. Set null to clear.\r\n */\r\n @serialize()\r\n public set wheelZMoveRelative(axis: Nullable<Coordinate>) {\r\n if (axis === null && this._wheelZAction !== _CameraProperty.MoveRelative) {\r\n // Attempting to clear different _wheelZAction.\r\n return;\r\n }\r\n this._wheelZAction = _CameraProperty.MoveRelative;\r\n this._wheelZActionCoordinate = axis;\r\n }\r\n\r\n /**\r\n * Get the configured movement axis (relative to camera's orientation) the\r\n * mouse wheel's Z axis controls.\r\n * @returns The configured axis or null if none.\r\n */\r\n public get wheelZMoveRelative(): Nullable<Coordinate> {\r\n if (this._wheelZAction !== _CameraProperty.MoveRelative) {\r\n return null;\r\n }\r\n return this._wheelZActionCoordinate;\r\n }\r\n\r\n /**\r\n * Set which rotation axis (relative to camera's orientation) the mouse\r\n * wheel's X axis controls.\r\n * @param axis The axis to be moved. Set null to clear.\r\n */\r\n @serialize()\r\n public set wheelXRotateRelative(axis: Nullable<Coordinate>) {\r\n if (axis === null && this._wheelXAction !== _CameraProperty.RotateRelative) {\r\n // Attempting to clear different _wheelXAction.\r\n return;\r\n }\r\n this._wheelXAction = _CameraProperty.RotateRelative;\r\n this._wheelXActionCoordinate = axis;\r\n }\r\n\r\n /**\r\n * Get the configured rotation axis (relative to camera's orientation) the\r\n * mouse wheel's X axis controls.\r\n * @returns The configured axis or null if none.\r\n */\r\n public get wheelXRotateRelative(): Nullable<Coordinate> {\r\n if (this._wheelXAction !== _CameraProperty.RotateRelative) {\r\n return null;\r\n }\r\n return this._wheelXActionCoordinate;\r\n }\r\n\r\n /**\r\n * Set which rotation axis (relative to camera's orientation) the mouse\r\n * wheel's Y axis controls.\r\n * @param axis The axis to be moved. Set null to clear.\r\n */\r\n @serialize()\r\n public set wheelYRotateRelative(axis: Nullable<Coordinate>) {\r\n if (axis === null && this._wheelYAction !== _CameraProperty.RotateRelative) {\r\n // Attempting to clear different _wheelYAction.\r\n return;\r\n }\r\n this._wheelYAction = _CameraProperty.RotateRelative;\r\n this._wheelYActionCoordinate = axis;\r\n }\r\n\r\n /**\r\n * Get the configured rotation axis (relative to camera's orientation) the\r\n * mouse wheel's Y axis controls.\r\n * @returns The configured axis or null if none.\r\n */\r\n public get wheelYRotateRelative(): Nullable<Coordinate> {\r\n if (this._wheelYAction !== _CameraProperty.RotateRelative) {\r\n return null;\r\n }\r\n return this._wheelYActionCoordinate;\r\n }\r\n\r\n /**\r\n * Set which rotation axis (relative to camera's orientation) the mouse\r\n * wheel's Z axis controls.\r\n * @param axis The axis to be moved. Set null to clear.\r\n */\r\n @serialize()\r\n public set wheelZRotateRelative(axis: Nullable<Coordinate>) {\r\n if (axis === null && this._wheelZAction !== _CameraProperty.RotateRelative) {\r\n // Attempting to clear different _wheelZAction.\r\n return;\r\n }\r\n this._wheelZAction = _CameraProperty.RotateRelative;\r\n this._wheelZActionCoordinate = axis;\r\n }\r\n\r\n /**\r\n * Get the configured rotation axis (relative to camera's orientation) the\r\n * mouse wheel's Z axis controls.\r\n * @returns The configured axis or null if none.\r\n */\r\n public get wheelZRotateRelative(): Nullable<Coordinate> {\r\n if (this._wheelZAction !== _CameraProperty.RotateRelative) {\r\n return null;\r\n }\r\n return this._wheelZActionCoordinate;\r\n }\r\n\r\n /**\r\n * Set which movement axis (relative to the scene) the mouse wheel's X axis\r\n * controls.\r\n * @param axis The axis to be moved. Set null to clear.\r\n */\r\n @serialize()\r\n public set wheelXMoveScene(axis: Nullable<Coordinate>) {\r\n if (axis === null && this._wheelXAction !== _CameraProperty.MoveScene) {\r\n // Attempting to clear different _wheelXAction.\r\n return;\r\n }\r\n this._wheelXAction = _CameraProperty.MoveScene;\r\n this._wheelXActionCoordinate = axis;\r\n }\r\n\r\n /**\r\n * Get the configured movement axis (relative to the scene) the mouse wheel's\r\n * X axis controls.\r\n * @returns The configured axis or null if none.\r\n */\r\n public get wheelXMoveScene(): Nullable<Coordinate> {\r\n if (this._wheelXAction !== _CameraProperty.MoveScene) {\r\n return null;\r\n }\r\n return this._wheelXActionCoordinate;\r\n }\r\n\r\n /**\r\n * Set which movement axis (relative to the scene) the mouse wheel's Y axis\r\n * controls.\r\n * @param axis The axis to be moved. Set null to clear.\r\n */\r\n @serialize()\r\n public set wheelYMoveScene(axis: Nullable<Coordinate>) {\r\n if (axis === null && this._wheelYAction !== _CameraProperty.MoveScene) {\r\n // Attempting to clear different _wheelYAction.\r\n return;\r\n }\r\n this._wheelYAction = _CameraProperty.MoveScene;\r\n this._wheelYActionCoordinate = axis;\r\n }\r\n\r\n /**\r\n * Get the configured movement axis (relative to the scene) the mouse wheel's\r\n * Y axis controls.\r\n * @returns The configured axis or null if none.\r\n */\r\n public get wheelYMoveScene(): Nullable<Coordinate> {\r\n if (this._wheelYAction !== _CameraProperty.MoveScene) {\r\n return null;\r\n }\r\n return this._wheelYActionCoordinate;\r\n }\r\n\r\n /**\r\n * Set which movement axis (relative to the scene) the mouse wheel's Z axis\r\n * controls.\r\n * @param axis The axis to be moved. Set null to clear.\r\n */\r\n @serialize()\r\n public set wheelZMoveScene(axis: Nullable<Coordinate>) {\r\n if (axis === null && this._wheelZAction !== _CameraProperty.MoveScene) {\r\n // Attempting to clear different _wheelZAction.\r\n return;\r\n }\r\n this._wheelZAction = _CameraProperty.MoveScene;\r\n this._wheelZActionCoordinate = axis;\r\n }\r\n\r\n /**\r\n * Get the configured movement axis (relative to the scene) the mouse wheel's\r\n * Z axis controls.\r\n * @returns The configured axis or null if none.\r\n */\r\n public get wheelZMoveScene(): Nullable<Coordinate> {\r\n if (this._wheelZAction !== _CameraProperty.MoveScene) {\r\n return null;\r\n }\r\n return this._wheelZActionCoordinate;\r\n }\r\n\r\n /**\r\n * Called for each rendered frame.\r\n */\r\n public override checkInputs(): void {\r\n if (this._wheelDeltaX === 0 && this._wheelDeltaY === 0 && this._wheelDeltaZ == 0) {\r\n return;\r\n }\r\n\r\n // Clear the camera properties that we might be updating.\r\n this._moveRelative.setAll(0);\r\n this._rotateRelative.setAll(0);\r\n this._moveScene.setAll(0);\r\n\r\n // Set the camera properties that are to be updated.\r\n this._updateCamera();\r\n\r\n if (this.camera.getScene().useRightHandedSystem) {\r\n // TODO: Does this need done for worldUpdate too?\r\n this._moveRelative.z *= -1;\r\n }\r\n\r\n // Convert updates relative to camera to world position update.\r\n const cameraTransformMatrix = Matrix.Zero();\r\n this.camera.getViewMatrix().invertToRef(cameraTransformMatrix);\r\n\r\n const transformedDirection = Vector3.Zero();\r\n Vector3.TransformNormalToRef(this._moveRelative, cameraTransformMatrix, transformedDirection);\r\n\r\n // Apply updates to camera position.\r\n this.camera.cameraRotation.x += this._rotateRelative.x / 200;\r\n this.camera.cameraRotation.y += this._rotateRelative.y / 200;\r\n this.camera.cameraDirection.addInPlace(transformedDirection);\r\n this.camera.cameraDirection.addInPlace(this._moveScene);\r\n\r\n // Call the base class implementation to handle observers and do cleanup.\r\n super.checkInputs();\r\n }\r\n\r\n private _moveRelative = Vector3.Zero();\r\n private _rotateRelative = Vector3.Zero();\r\n private _moveScene = Vector3.Zero();\r\n\r\n /**\r\n * These are set to the desired default behaviour.\r\n */\r\n private _wheelXAction: Nullable<_CameraProperty> = _CameraProperty.MoveRelative;\r\n private _wheelXActionCoordinate: Nullable<Coordinate> = Coordinate.X;\r\n private _wheelYAction: Nullable<_CameraProperty> = _CameraProperty.MoveRelative;\r\n private _wheelYActionCoordinate: Nullable<Coordinate> = Coordinate.Z;\r\n private _wheelZAction: Nullable<_CameraProperty> = null;\r\n private _wheelZActionCoordinate: Nullable<Coordinate> = null;\r\n\r\n /**\r\n * Update the camera according to any configured properties for the 3\r\n * mouse-wheel axis.\r\n */\r\n private _updateCamera(): void {\r\n // Do the camera updates for each of the 3 touch-wheel axis.\r\n this._updateCameraProperty(this._wheelDeltaX, this._wheelXAction, this._wheelXActionCoordinate);\r\n this._updateCameraProperty(this._wheelDeltaY, this._wheelYAction, this._wheelYActionCoordinate);\r\n this._updateCameraProperty(this._wheelDeltaZ, this._wheelZAction, this._wheelZActionCoordinate);\r\n }\r\n\r\n /**\r\n * Update one property of the camera.\r\n * @param value\r\n * @param cameraProperty\r\n * @param coordinate\r\n */\r\n private _updateCameraProperty(\r\n /* Mouse-wheel delta. */\r\n value: number,\r\n /* Camera property to be changed. */\r\n cameraProperty: Nullable<_CameraProperty>,\r\n /* Axis of Camera property to be changed. */\r\n coordinate: Nullable<Coordinate>\r\n ): void {\r\n if (value === 0) {\r\n // Mouse wheel has not moved.\r\n return;\r\n }\r\n if (cameraProperty === null || coordinate === null) {\r\n // Mouse wheel axis not configured.\r\n return;\r\n }\r\n\r\n let action = null;\r\n switch (cameraProperty) {\r\n case _CameraProperty.MoveRelative:\r\n action = this._moveRelative;\r\n break;\r\n case _CameraProperty.RotateRelative:\r\n action = this._rotateRelative;\r\n break;\r\n case _CameraProperty.MoveScene:\r\n action = this._moveScene;\r\n break;\r\n }\r\n\r\n switch (coordinate) {\r\n case Coordinate.X:\r\n action.set(value, 0, 0);\r\n break;\r\n case Coordinate.Y:\r\n action.set(0, value, 0);\r\n break;\r\n case Coordinate.Z:\r\n action.set(0, 0, value);\r\n break;\r\n }\r\n }\r\n}\r\n\r\n(<any>CameraInputTypes)[\"FreeCameraMouseWheelInput\"] = FreeCameraMouseWheelInput;\r\n"]}
@@ -1,4 +1,4 @@
1
- import { VirtualJoystick, JoystickAxis } from "../../Misc/virtualJoystick.js";
1
+ import { VirtualJoystick } from "../../Misc/virtualJoystick.js";
2
2
  import { CameraInputTypes } from "../../Cameras/cameraInputsManager.js";
3
3
  import { Matrix, Vector3 } from "../../Maths/math.vector.js";
4
4
  import { FreeCameraInputsManager } from "../../Cameras/freeCameraInputsManager.js";
@@ -54,12 +54,12 @@ export class FreeCameraVirtualJoystickInput {
54
54
  */
55
55
  attachControl() {
56
56
  this._leftjoystick = new VirtualJoystick(true);
57
- this._leftjoystick.setAxisForUpDown(JoystickAxis.Z);
58
- this._leftjoystick.setAxisForLeftRight(JoystickAxis.X);
57
+ this._leftjoystick.setAxisForUpDown(2 /* JoystickAxis.Z */);
58
+ this._leftjoystick.setAxisForLeftRight(0 /* JoystickAxis.X */);
59
59
  this._leftjoystick.setJoystickSensibility(0.15);
60
60
  this._rightjoystick = new VirtualJoystick(false);
61
- this._rightjoystick.setAxisForUpDown(JoystickAxis.X);
62
- this._rightjoystick.setAxisForLeftRight(JoystickAxis.Y);
61
+ this._rightjoystick.setAxisForUpDown(0 /* JoystickAxis.X */);
62
+ this._rightjoystick.setAxisForLeftRight(1 /* JoystickAxis.Y */);
63
63
  this._rightjoystick.reverseUpDown = true;
64
64
  this._rightjoystick.setJoystickSensibility(0.05);
65
65
  this._rightjoystick.setJoystickColor("yellow");
@@ -1 +1 @@
1
- {"version":3,"file":"freeCameraVirtualJoystickInput.js","sourceRoot":"","sources":["../../../../../dev/core/src/Cameras/Inputs/freeCameraVirtualJoystickInput.ts"],"names":[],"mappings":"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","sourcesContent":["import { VirtualJoystick, JoystickAxis } from \"../../Misc/virtualJoystick\";\r\nimport type { ICameraInput } from \"../../Cameras/cameraInputsManager\";\r\nimport { CameraInputTypes } from \"../../Cameras/cameraInputsManager\";\r\nimport type { FreeCamera } from \"../../Cameras/freeCamera\";\r\nimport { Matrix, Vector3 } from \"../../Maths/math.vector\";\r\nimport { FreeCameraInputsManager } from \"../../Cameras/freeCameraInputsManager\";\r\n\r\n// Module augmentation to abstract virtual joystick from camera.\r\ndeclare module \"../../Cameras/freeCameraInputsManager\" {\r\n export interface FreeCameraInputsManager {\r\n /**\r\n * Add virtual joystick input support to the input manager.\r\n * @returns the current input manager\r\n */\r\n addVirtualJoystick(): FreeCameraInputsManager;\r\n }\r\n}\r\n\r\n/**\r\n * Add virtual joystick input support to the input manager.\r\n * @returns the current input manager\r\n */\r\nFreeCameraInputsManager.prototype.addVirtualJoystick = function (): FreeCameraInputsManager {\r\n this.add(new FreeCameraVirtualJoystickInput());\r\n return this;\r\n};\r\n\r\n/**\r\n * Manage the Virtual Joystick inputs to control the movement of a free camera.\r\n * @see https://doc.babylonjs.com/features/featuresDeepDive/cameras/customizingCameraInputs\r\n */\r\nexport class FreeCameraVirtualJoystickInput implements ICameraInput<FreeCamera> {\r\n /**\r\n * Defines the camera the input is attached to.\r\n */\r\n public camera: FreeCamera;\r\n\r\n private _leftjoystick: VirtualJoystick;\r\n private _rightjoystick: VirtualJoystick;\r\n\r\n /**\r\n * Gets the left stick of the virtual joystick.\r\n * @returns The virtual Joystick\r\n */\r\n public getLeftJoystick(): VirtualJoystick {\r\n return this._leftjoystick;\r\n }\r\n\r\n /**\r\n * Gets the right stick of the virtual joystick.\r\n * @returns The virtual Joystick\r\n */\r\n public getRightJoystick(): VirtualJoystick {\r\n return this._rightjoystick;\r\n }\r\n\r\n /**\r\n * Update the current camera state depending on the inputs that have been used this frame.\r\n * This is a dynamically created lambda to avoid the performance penalty of looping for inputs in the render loop.\r\n */\r\n public checkInputs() {\r\n if (this._leftjoystick) {\r\n const camera = this.camera;\r\n const speed = camera._computeLocalCameraSpeed() * 50;\r\n const cameraTransform = Matrix.RotationYawPitchRoll(camera.rotation.y, camera.rotation.x, 0);\r\n const deltaTransform = Vector3.TransformCoordinates(\r\n new Vector3(this._leftjoystick.deltaPosition.x * speed, this._leftjoystick.deltaPosition.y * speed, this._leftjoystick.deltaPosition.z * speed),\r\n cameraTransform\r\n );\r\n camera.cameraDirection = camera.cameraDirection.add(deltaTransform);\r\n camera.cameraRotation = camera.cameraRotation.addVector3(this._rightjoystick.deltaPosition);\r\n\r\n if (!this._leftjoystick.pressed) {\r\n this._leftjoystick.deltaPosition = this._leftjoystick.deltaPosition.scale(0.9);\r\n }\r\n if (!this._rightjoystick.pressed) {\r\n this._rightjoystick.deltaPosition = this._rightjoystick.deltaPosition.scale(0.9);\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * Attach the input controls to a specific dom element to get the input from.\r\n */\r\n public attachControl(): void {\r\n this._leftjoystick = new VirtualJoystick(true);\r\n this._leftjoystick.setAxisForUpDown(JoystickAxis.Z);\r\n this._leftjoystick.setAxisForLeftRight(JoystickAxis.X);\r\n this._leftjoystick.setJoystickSensibility(0.15);\r\n this._rightjoystick = new VirtualJoystick(false);\r\n this._rightjoystick.setAxisForUpDown(JoystickAxis.X);\r\n this._rightjoystick.setAxisForLeftRight(JoystickAxis.Y);\r\n this._rightjoystick.reverseUpDown = true;\r\n this._rightjoystick.setJoystickSensibility(0.05);\r\n this._rightjoystick.setJoystickColor(\"yellow\");\r\n }\r\n\r\n /**\r\n * Detach the current controls from the specified dom element.\r\n */\r\n public detachControl(): void {\r\n this._leftjoystick.releaseCanvas();\r\n this._rightjoystick.releaseCanvas();\r\n }\r\n\r\n /**\r\n * Gets the class name of the current input.\r\n * @returns the class name\r\n */\r\n public getClassName(): string {\r\n return \"FreeCameraVirtualJoystickInput\";\r\n }\r\n\r\n /**\r\n * Get the friendly name associated with the input class.\r\n * @returns the input friendly name\r\n */\r\n public getSimpleName(): string {\r\n return \"virtualJoystick\";\r\n }\r\n}\r\n\r\n(<any>CameraInputTypes)[\"FreeCameraVirtualJoystickInput\"] = FreeCameraVirtualJoystickInput;\r\n"]}
1
+ {"version":3,"file":"freeCameraVirtualJoystickInput.js","sourceRoot":"","sources":["../../../../../dev/core/src/Cameras/Inputs/freeCameraVirtualJoystickInput.ts"],"names":[],"mappings":"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","sourcesContent":["import { VirtualJoystick, JoystickAxis } from \"../../Misc/virtualJoystick\";\r\nimport type { ICameraInput } from \"../../Cameras/cameraInputsManager\";\r\nimport { CameraInputTypes } from \"../../Cameras/cameraInputsManager\";\r\nimport type { FreeCamera } from \"../../Cameras/freeCamera\";\r\nimport { Matrix, Vector3 } from \"../../Maths/math.vector\";\r\nimport { FreeCameraInputsManager } from \"../../Cameras/freeCameraInputsManager\";\r\n\r\n// Module augmentation to abstract virtual joystick from camera.\r\ndeclare module \"../../Cameras/freeCameraInputsManager\" {\r\n export interface FreeCameraInputsManager {\r\n /**\r\n * Add virtual joystick input support to the input manager.\r\n * @returns the current input manager\r\n */\r\n addVirtualJoystick(): FreeCameraInputsManager;\r\n }\r\n}\r\n\r\n/**\r\n * Add virtual joystick input support to the input manager.\r\n * @returns the current input manager\r\n */\r\nFreeCameraInputsManager.prototype.addVirtualJoystick = function (): FreeCameraInputsManager {\r\n this.add(new FreeCameraVirtualJoystickInput());\r\n return this;\r\n};\r\n\r\n/**\r\n * Manage the Virtual Joystick inputs to control the movement of a free camera.\r\n * @see https://doc.babylonjs.com/features/featuresDeepDive/cameras/customizingCameraInputs\r\n */\r\nexport class FreeCameraVirtualJoystickInput implements ICameraInput<FreeCamera> {\r\n /**\r\n * Defines the camera the input is attached to.\r\n */\r\n public camera: FreeCamera;\r\n\r\n private _leftjoystick: VirtualJoystick;\r\n private _rightjoystick: VirtualJoystick;\r\n\r\n /**\r\n * Gets the left stick of the virtual joystick.\r\n * @returns The virtual Joystick\r\n */\r\n public getLeftJoystick(): VirtualJoystick {\r\n return this._leftjoystick;\r\n }\r\n\r\n /**\r\n * Gets the right stick of the virtual joystick.\r\n * @returns The virtual Joystick\r\n */\r\n public getRightJoystick(): VirtualJoystick {\r\n return this._rightjoystick;\r\n }\r\n\r\n /**\r\n * Update the current camera state depending on the inputs that have been used this frame.\r\n * This is a dynamically created lambda to avoid the performance penalty of looping for inputs in the render loop.\r\n */\r\n public checkInputs() {\r\n if (this._leftjoystick) {\r\n const camera = this.camera;\r\n const speed = camera._computeLocalCameraSpeed() * 50;\r\n const cameraTransform = Matrix.RotationYawPitchRoll(camera.rotation.y, camera.rotation.x, 0);\r\n const deltaTransform = Vector3.TransformCoordinates(\r\n new Vector3(this._leftjoystick.deltaPosition.x * speed, this._leftjoystick.deltaPosition.y * speed, this._leftjoystick.deltaPosition.z * speed),\r\n cameraTransform\r\n );\r\n camera.cameraDirection = camera.cameraDirection.add(deltaTransform);\r\n camera.cameraRotation = camera.cameraRotation.addVector3(this._rightjoystick.deltaPosition);\r\n\r\n if (!this._leftjoystick.pressed) {\r\n this._leftjoystick.deltaPosition = this._leftjoystick.deltaPosition.scale(0.9);\r\n }\r\n if (!this._rightjoystick.pressed) {\r\n this._rightjoystick.deltaPosition = this._rightjoystick.deltaPosition.scale(0.9);\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * Attach the input controls to a specific dom element to get the input from.\r\n */\r\n public attachControl(): void {\r\n this._leftjoystick = new VirtualJoystick(true);\r\n this._leftjoystick.setAxisForUpDown(JoystickAxis.Z);\r\n this._leftjoystick.setAxisForLeftRight(JoystickAxis.X);\r\n this._leftjoystick.setJoystickSensibility(0.15);\r\n this._rightjoystick = new VirtualJoystick(false);\r\n this._rightjoystick.setAxisForUpDown(JoystickAxis.X);\r\n this._rightjoystick.setAxisForLeftRight(JoystickAxis.Y);\r\n this._rightjoystick.reverseUpDown = true;\r\n this._rightjoystick.setJoystickSensibility(0.05);\r\n this._rightjoystick.setJoystickColor(\"yellow\");\r\n }\r\n\r\n /**\r\n * Detach the current controls from the specified dom element.\r\n */\r\n public detachControl(): void {\r\n this._leftjoystick.releaseCanvas();\r\n this._rightjoystick.releaseCanvas();\r\n }\r\n\r\n /**\r\n * Gets the class name of the current input.\r\n * @returns the class name\r\n */\r\n public getClassName(): string {\r\n return \"FreeCameraVirtualJoystickInput\";\r\n }\r\n\r\n /**\r\n * Get the friendly name associated with the input class.\r\n * @returns the input friendly name\r\n */\r\n public getSimpleName(): string {\r\n return \"virtualJoystick\";\r\n }\r\n}\r\n\r\n(<any>CameraInputTypes)[\"FreeCameraVirtualJoystickInput\"] = FreeCameraVirtualJoystickInput;\r\n"]}
@@ -8,7 +8,6 @@ import { PointerEventTypes } from "../../Events/pointerEvents.js";
8
8
  import { Quaternion, Matrix, Vector3 } from "../../Maths/math.vector.js";
9
9
  import { Color3, Color4 } from "../../Maths/math.color.js";
10
10
  import { Gamepad } from "../../Gamepads/gamepad.js";
11
- import { Xbox360Button } from "../../Gamepads/xboxGamepad.js";
12
11
  import { Ray } from "../../Culling/ray.js";
13
12
  import { ImageProcessingConfiguration } from "../../Materials/imageProcessingConfiguration.js";
14
13
  import { StandardMaterial } from "../../Materials/standardMaterial.js";
@@ -18,7 +17,6 @@ import { Animation } from "../../Animations/animation.js";
18
17
  import "../../Gamepads/gamepadSceneComponent.js";
19
18
  import "../../Animations/animatable.js";
20
19
  import { WebXRSessionManager } from "../../XR/webXRSessionManager.js";
21
- import { WebXRState } from "../../XR/webXRTypes.js";
22
20
  import { CreateGround } from "../../Meshes/Builders/groundBuilder.js";
23
21
  import { CreateTorus } from "../../Meshes/Builders/torusBuilder.js";
24
22
  class VRExperienceHelperGazer {
@@ -377,12 +375,12 @@ export class VRExperienceHelper {
377
375
  }
378
376
  if (gamepad.type === Gamepad.XBOX) {
379
377
  gamepad.onbuttondown((buttonPressed) => {
380
- if (this._interactionsEnabled && buttonPressed === Xbox360Button.A) {
378
+ if (this._interactionsEnabled && buttonPressed === 0 /* Xbox360Button.A */) {
381
379
  this._cameraGazer._selectionPointerDown();
382
380
  }
383
381
  });
384
382
  gamepad.onbuttonup((buttonPressed) => {
385
- if (this._interactionsEnabled && buttonPressed === Xbox360Button.A) {
383
+ if (this._interactionsEnabled && buttonPressed === 0 /* Xbox360Button.A */) {
386
384
  this._cameraGazer._selectionPointerUp();
387
385
  }
388
386
  });
@@ -466,22 +464,22 @@ export class VRExperienceHelper {
466
464
  this.xr.baseExperience.onStateChangedObservable.add((state) => {
467
465
  // support for entering / exiting
468
466
  switch (state) {
469
- case WebXRState.ENTERING_XR:
467
+ case 0 /* WebXRState.ENTERING_XR */:
470
468
  this.onEnteringVRObservable.notifyObservers(this);
471
469
  if (!this._interactionsEnabled) {
472
470
  this.xr.pointerSelection.detach();
473
471
  }
474
472
  this.xr.pointerSelection.displayLaserPointer = this._displayLaserPointer;
475
473
  break;
476
- case WebXRState.EXITING_XR:
474
+ case 1 /* WebXRState.EXITING_XR */:
477
475
  this.onExitingVRObservable.notifyObservers(this);
478
476
  // resize to update width and height when exiting vr exits fullscreen
479
477
  this._scene.getEngine().resize();
480
478
  break;
481
- case WebXRState.IN_XR:
479
+ case 2 /* WebXRState.IN_XR */:
482
480
  this._hasEnteredVR = true;
483
481
  break;
484
- case WebXRState.NOT_IN_XR:
482
+ case 3 /* WebXRState.NOT_IN_XR */:
485
483
  this._hasEnteredVR = false;
486
484
  break;
487
485
  }
@@ -595,7 +593,7 @@ export class VRExperienceHelper {
595
593
  * Gets a value indicating if we are currently in VR mode.
596
594
  */
597
595
  get isInVRMode() {
598
- return (this.xr && this.webVROptions.useXR && this.xr.baseExperience.state === WebXRState.IN_XR) || this._fullscreenVRpresenting;
596
+ return (this.xr && this.webVROptions.useXR && this.xr.baseExperience.state === 2 /* WebXRState.IN_XR */) || this._fullscreenVRpresenting;
599
597
  }
600
598
  _moveButtonToBottomRight() {
601
599
  if (this._inputElement && !this._useCustomVRButton && this._btnVR) {
@@ -771,7 +769,7 @@ export class VRExperienceHelper {
771
769
  if (!this._interactionsEnabled) {
772
770
  // in XR it is enabled by default, but just to make sure, re-attach
773
771
  if (this.xr) {
774
- if (this.xr.baseExperience.state === WebXRState.IN_XR) {
772
+ if (this.xr.baseExperience.state === 2 /* WebXRState.IN_XR */) {
775
773
  this.xr.pointerSelection.attach();
776
774
  }
777
775
  return;