@babylonjs/core 6.39.0 → 6.40.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (609) hide show
  1. package/Actions/action.js +3 -1
  2. package/Actions/action.js.map +1 -1
  3. package/Actions/condition.js +1 -0
  4. package/Actions/condition.js.map +1 -1
  5. package/Actions/directActions.d.ts +2 -2
  6. package/Actions/directActions.js +2 -2
  7. package/Actions/directActions.js.map +1 -1
  8. package/Animations/pathCursor.js +1 -0
  9. package/Animations/pathCursor.js.map +1 -1
  10. package/Animations/runtimeAnimation.js +1 -1
  11. package/Animations/runtimeAnimation.js.map +1 -1
  12. package/Audio/audioEngine.js +5 -0
  13. package/Audio/audioEngine.js.map +1 -1
  14. package/Behaviors/Cameras/autoRotationBehavior.d.ts +3 -0
  15. package/Behaviors/Cameras/autoRotationBehavior.js +3 -0
  16. package/Behaviors/Cameras/autoRotationBehavior.js.map +1 -1
  17. package/Behaviors/Meshes/pointerDragBehavior.d.ts +1 -0
  18. package/Behaviors/Meshes/pointerDragBehavior.js +2 -0
  19. package/Behaviors/Meshes/pointerDragBehavior.js.map +1 -1
  20. package/Bones/bone.d.ts +2 -0
  21. package/Bones/bone.js +2 -0
  22. package/Bones/bone.js.map +1 -1
  23. package/Cameras/Inputs/BaseCameraPointersInput.d.ts +2 -2
  24. package/Cameras/Inputs/BaseCameraPointersInput.js +2 -2
  25. package/Cameras/Inputs/BaseCameraPointersInput.js.map +1 -1
  26. package/Cameras/Inputs/arcRotateCameraPointersInput.d.ts +9 -9
  27. package/Cameras/Inputs/arcRotateCameraPointersInput.js +9 -9
  28. package/Cameras/Inputs/arcRotateCameraPointersInput.js.map +1 -1
  29. package/Cameras/Inputs/followCameraKeyboardMoveInput.d.ts +3 -0
  30. package/Cameras/Inputs/followCameraKeyboardMoveInput.js +3 -0
  31. package/Cameras/Inputs/followCameraKeyboardMoveInput.js.map +1 -1
  32. package/Cameras/arcRotateCamera.d.ts +2 -0
  33. package/Cameras/arcRotateCamera.js +2 -0
  34. package/Cameras/arcRotateCamera.js.map +1 -1
  35. package/Cameras/camera.d.ts +2 -0
  36. package/Cameras/camera.js +4 -0
  37. package/Cameras/camera.js.map +1 -1
  38. package/Cameras/followCamera.d.ts +1 -0
  39. package/Cameras/followCamera.js +1 -0
  40. package/Cameras/followCamera.js.map +1 -1
  41. package/Debug/debugLayer.d.ts +4 -1
  42. package/Debug/debugLayer.js +4 -1
  43. package/Debug/debugLayer.js.map +1 -1
  44. package/Debug/physicsViewer.d.ts +1 -0
  45. package/Debug/physicsViewer.js +1 -0
  46. package/Debug/physicsViewer.js.map +1 -1
  47. package/Decorators/nodeDecorator.d.ts +5 -4
  48. package/Decorators/nodeDecorator.js +5 -4
  49. package/Decorators/nodeDecorator.js.map +1 -1
  50. package/DeviceInput/eventFactory.d.ts +2 -0
  51. package/DeviceInput/eventFactory.js +3 -0
  52. package/DeviceInput/eventFactory.js.map +1 -1
  53. package/DeviceInput/webDeviceInputSystem.js +3 -0
  54. package/DeviceInput/webDeviceInputSystem.js.map +1 -1
  55. package/Engines/Extensions/engine.multiview.js +2 -0
  56. package/Engines/Extensions/engine.multiview.js.map +1 -1
  57. package/Engines/Native/nativeDataStream.d.ts +32 -0
  58. package/Engines/Native/nativeDataStream.js +32 -0
  59. package/Engines/Native/nativeDataStream.js.map +1 -1
  60. package/Engines/Native/nativePipelineContext.d.ts +0 -3
  61. package/Engines/Native/nativePipelineContext.js +0 -3
  62. package/Engines/Native/nativePipelineContext.js.map +1 -1
  63. package/Engines/WebGL/webGLPipelineContext.d.ts +0 -3
  64. package/Engines/WebGL/webGLPipelineContext.js +0 -3
  65. package/Engines/WebGL/webGLPipelineContext.js.map +1 -1
  66. package/Engines/WebGPU/Extensions/engine.readTexture.js +1 -0
  67. package/Engines/WebGPU/Extensions/engine.readTexture.js.map +1 -1
  68. package/Engines/WebGPU/webgpuCacheBindGroups.d.ts +1 -0
  69. package/Engines/WebGPU/webgpuCacheBindGroups.js +1 -0
  70. package/Engines/WebGPU/webgpuCacheBindGroups.js.map +1 -1
  71. package/Engines/WebGPU/webgpuCacheRenderPipeline.js +3 -0
  72. package/Engines/WebGPU/webgpuCacheRenderPipeline.js.map +1 -1
  73. package/Engines/WebGPU/webgpuPipelineContext.d.ts +0 -3
  74. package/Engines/WebGPU/webgpuPipelineContext.js +0 -3
  75. package/Engines/WebGPU/webgpuPipelineContext.js.map +1 -1
  76. package/Engines/WebGPU/webgpuShaderProcessingContext.js +1 -0
  77. package/Engines/WebGPU/webgpuShaderProcessingContext.js.map +1 -1
  78. package/Engines/WebGPU/webgpuShaderProcessorsWGSL.d.ts +1 -1
  79. package/Engines/WebGPU/webgpuShaderProcessorsWGSL.js +11 -2
  80. package/Engines/WebGPU/webgpuShaderProcessorsWGSL.js.map +1 -1
  81. package/Engines/WebGPU/webgpuTextureHelper.js +22 -0
  82. package/Engines/WebGPU/webgpuTextureHelper.js.map +1 -1
  83. package/Engines/WebGPU/webgpuTextureManager.js +2 -1
  84. package/Engines/WebGPU/webgpuTextureManager.js.map +1 -1
  85. package/Engines/engine.js +1 -0
  86. package/Engines/engine.js.map +1 -1
  87. package/Engines/nativeEngine.d.ts +4 -0
  88. package/Engines/nativeEngine.js +5 -0
  89. package/Engines/nativeEngine.js.map +1 -1
  90. package/Engines/thinEngine.js +7 -2
  91. package/Engines/thinEngine.js.map +1 -1
  92. package/Engines/webgpuEngine.d.ts +1 -1
  93. package/Engines/webgpuEngine.js +17 -1
  94. package/Engines/webgpuEngine.js.map +1 -1
  95. package/FlowGraph/Blocks/Data/Math/flowGraphMathBlocks.d.ts +207 -2
  96. package/FlowGraph/Blocks/Data/Math/flowGraphMathBlocks.js +207 -6
  97. package/FlowGraph/Blocks/Data/Math/flowGraphMathBlocks.js.map +1 -1
  98. package/FlowGraph/Blocks/Data/flowGraphBinaryOperationBlock.d.ts +15 -0
  99. package/FlowGraph/Blocks/Data/flowGraphBinaryOperationBlock.js +9 -0
  100. package/FlowGraph/Blocks/Data/flowGraphBinaryOperationBlock.js.map +1 -1
  101. package/FlowGraph/Blocks/Data/flowGraphConditionalDataBlock.d.ts +4 -0
  102. package/FlowGraph/Blocks/Data/flowGraphConditionalDataBlock.js +4 -0
  103. package/FlowGraph/Blocks/Data/flowGraphConditionalDataBlock.js.map +1 -1
  104. package/FlowGraph/Blocks/Data/flowGraphConstantBlock.d.ts +17 -1
  105. package/FlowGraph/Blocks/Data/flowGraphConstantBlock.js +14 -1
  106. package/FlowGraph/Blocks/Data/flowGraphConstantBlock.js.map +1 -1
  107. package/FlowGraph/Blocks/Data/flowGraphConstantOperationBlock.d.ts +9 -0
  108. package/FlowGraph/Blocks/Data/flowGraphConstantOperationBlock.js +9 -0
  109. package/FlowGraph/Blocks/Data/flowGraphConstantOperationBlock.js.map +1 -1
  110. package/FlowGraph/Blocks/Data/flowGraphCoordinateTransformBlock.d.ts +5 -0
  111. package/FlowGraph/Blocks/Data/flowGraphCoordinateTransformBlock.js +5 -0
  112. package/FlowGraph/Blocks/Data/flowGraphCoordinateTransformBlock.js.map +1 -1
  113. package/FlowGraph/Blocks/Data/flowGraphGetPropertyBlock.d.ts +16 -1
  114. package/FlowGraph/Blocks/Data/flowGraphGetPropertyBlock.js +13 -1
  115. package/FlowGraph/Blocks/Data/flowGraphGetPropertyBlock.js.map +1 -1
  116. package/FlowGraph/Blocks/Data/flowGraphGetVariableBlock.d.ts +12 -1
  117. package/FlowGraph/Blocks/Data/flowGraphGetVariableBlock.js +12 -1
  118. package/FlowGraph/Blocks/Data/flowGraphGetVariableBlock.js.map +1 -1
  119. package/FlowGraph/Blocks/Data/flowGraphTernaryOperationBlock.d.ts +18 -0
  120. package/FlowGraph/Blocks/Data/flowGraphTernaryOperationBlock.js +9 -0
  121. package/FlowGraph/Blocks/Data/flowGraphTernaryOperationBlock.js.map +1 -1
  122. package/FlowGraph/Blocks/Data/flowGraphUnaryOperationBlock.d.ts +12 -0
  123. package/FlowGraph/Blocks/Data/flowGraphUnaryOperationBlock.js +9 -0
  124. package/FlowGraph/Blocks/Data/flowGraphUnaryOperationBlock.js.map +1 -1
  125. package/FlowGraph/Blocks/Event/flowGraphMeshPickEventBlock.d.ts +15 -1
  126. package/FlowGraph/Blocks/Event/flowGraphMeshPickEventBlock.js +12 -1
  127. package/FlowGraph/Blocks/Event/flowGraphMeshPickEventBlock.js.map +1 -1
  128. package/FlowGraph/Blocks/Event/flowGraphReceiveCustomEventBlock.d.ts +18 -2
  129. package/FlowGraph/Blocks/Event/flowGraphReceiveCustomEventBlock.js +15 -4
  130. package/FlowGraph/Blocks/Event/flowGraphReceiveCustomEventBlock.js.map +1 -1
  131. package/FlowGraph/Blocks/Event/flowGraphSceneReadyEventBlock.d.ts +6 -0
  132. package/FlowGraph/Blocks/Event/flowGraphSceneReadyEventBlock.js +6 -0
  133. package/FlowGraph/Blocks/Event/flowGraphSceneReadyEventBlock.js.map +1 -1
  134. package/FlowGraph/Blocks/Event/flowGraphSceneTickEventBlock.d.ts +6 -0
  135. package/FlowGraph/Blocks/Event/flowGraphSceneTickEventBlock.js +6 -0
  136. package/FlowGraph/Blocks/Event/flowGraphSceneTickEventBlock.js.map +1 -1
  137. package/FlowGraph/Blocks/Execution/Animation/flowGraphPauseAnimationBlock.d.ts +5 -2
  138. package/FlowGraph/Blocks/Execution/Animation/flowGraphPauseAnimationBlock.js +4 -1
  139. package/FlowGraph/Blocks/Execution/Animation/flowGraphPauseAnimationBlock.js.map +1 -1
  140. package/FlowGraph/Blocks/Execution/Animation/flowGraphPlayAnimationBlock.d.ts +15 -1
  141. package/FlowGraph/Blocks/Execution/Animation/flowGraphPlayAnimationBlock.js +12 -1
  142. package/FlowGraph/Blocks/Execution/Animation/flowGraphPlayAnimationBlock.js.map +1 -1
  143. package/FlowGraph/Blocks/Execution/Animation/flowGraphStopAnimationBlock.d.ts +4 -1
  144. package/FlowGraph/Blocks/Execution/Animation/flowGraphStopAnimationBlock.js +3 -0
  145. package/FlowGraph/Blocks/Execution/Animation/flowGraphStopAnimationBlock.js.map +1 -1
  146. package/FlowGraph/Blocks/Execution/ControlFlow/flowGraphBranchBlock.d.ts +3 -0
  147. package/FlowGraph/Blocks/Execution/ControlFlow/flowGraphBranchBlock.js +3 -0
  148. package/FlowGraph/Blocks/Execution/ControlFlow/flowGraphBranchBlock.js.map +1 -1
  149. package/FlowGraph/Blocks/Execution/ControlFlow/flowGraphCounterBlock.d.ts +3 -0
  150. package/FlowGraph/Blocks/Execution/ControlFlow/flowGraphCounterBlock.js +3 -0
  151. package/FlowGraph/Blocks/Execution/ControlFlow/flowGraphCounterBlock.js.map +1 -1
  152. package/FlowGraph/Blocks/Execution/ControlFlow/flowGraphDebounceBlock.d.ts +3 -0
  153. package/FlowGraph/Blocks/Execution/ControlFlow/flowGraphDebounceBlock.js +3 -0
  154. package/FlowGraph/Blocks/Execution/ControlFlow/flowGraphDebounceBlock.js.map +1 -1
  155. package/FlowGraph/Blocks/Execution/ControlFlow/flowGraphDoNBlock.d.ts +14 -1
  156. package/FlowGraph/Blocks/Execution/ControlFlow/flowGraphDoNBlock.js +11 -1
  157. package/FlowGraph/Blocks/Execution/ControlFlow/flowGraphDoNBlock.js.map +1 -1
  158. package/FlowGraph/Blocks/Execution/ControlFlow/flowGraphFlipFlopBlock.d.ts +3 -0
  159. package/FlowGraph/Blocks/Execution/ControlFlow/flowGraphFlipFlopBlock.js +3 -0
  160. package/FlowGraph/Blocks/Execution/ControlFlow/flowGraphFlipFlopBlock.js.map +1 -1
  161. package/FlowGraph/Blocks/Execution/ControlFlow/flowGraphForLoopBlock.d.ts +3 -0
  162. package/FlowGraph/Blocks/Execution/ControlFlow/flowGraphForLoopBlock.js +3 -0
  163. package/FlowGraph/Blocks/Execution/ControlFlow/flowGraphForLoopBlock.js.map +1 -1
  164. package/FlowGraph/Blocks/Execution/ControlFlow/flowGraphMultiGateBlock.d.ts +15 -2
  165. package/FlowGraph/Blocks/Execution/ControlFlow/flowGraphMultiGateBlock.js +12 -4
  166. package/FlowGraph/Blocks/Execution/ControlFlow/flowGraphMultiGateBlock.js.map +1 -1
  167. package/FlowGraph/Blocks/Execution/ControlFlow/flowGraphSequenceBlock.d.ts +14 -2
  168. package/FlowGraph/Blocks/Execution/ControlFlow/flowGraphSequenceBlock.js +11 -4
  169. package/FlowGraph/Blocks/Execution/ControlFlow/flowGraphSequenceBlock.js.map +1 -1
  170. package/FlowGraph/Blocks/Execution/ControlFlow/flowGraphSwitchBlock.d.ts +15 -2
  171. package/FlowGraph/Blocks/Execution/ControlFlow/flowGraphSwitchBlock.js +12 -4
  172. package/FlowGraph/Blocks/Execution/ControlFlow/flowGraphSwitchBlock.js.map +1 -1
  173. package/FlowGraph/Blocks/Execution/ControlFlow/flowGraphThrottleBlock.d.ts +3 -0
  174. package/FlowGraph/Blocks/Execution/ControlFlow/flowGraphThrottleBlock.js +3 -0
  175. package/FlowGraph/Blocks/Execution/ControlFlow/flowGraphThrottleBlock.js.map +1 -1
  176. package/FlowGraph/Blocks/Execution/ControlFlow/flowGraphTimerBlock.d.ts +6 -0
  177. package/FlowGraph/Blocks/Execution/ControlFlow/flowGraphTimerBlock.js +6 -0
  178. package/FlowGraph/Blocks/Execution/ControlFlow/flowGraphTimerBlock.js.map +1 -1
  179. package/FlowGraph/Blocks/Execution/ControlFlow/flowGraphWaitAllBlock.d.ts +15 -2
  180. package/FlowGraph/Blocks/Execution/ControlFlow/flowGraphWaitAllBlock.js +12 -3
  181. package/FlowGraph/Blocks/Execution/ControlFlow/flowGraphWaitAllBlock.js.map +1 -1
  182. package/FlowGraph/Blocks/Execution/ControlFlow/flowGraphWhileLoopBlock.d.ts +18 -1
  183. package/FlowGraph/Blocks/Execution/ControlFlow/flowGraphWhileLoopBlock.js +15 -1
  184. package/FlowGraph/Blocks/Execution/ControlFlow/flowGraphWhileLoopBlock.js.map +1 -1
  185. package/FlowGraph/Blocks/Execution/flowGraphConsoleLogBlock.d.ts +6 -0
  186. package/FlowGraph/Blocks/Execution/flowGraphConsoleLogBlock.js +6 -0
  187. package/FlowGraph/Blocks/Execution/flowGraphConsoleLogBlock.js.map +1 -1
  188. package/FlowGraph/Blocks/Execution/flowGraphSendCustomEventBlock.d.ts +14 -2
  189. package/FlowGraph/Blocks/Execution/flowGraphSendCustomEventBlock.js +11 -4
  190. package/FlowGraph/Blocks/Execution/flowGraphSendCustomEventBlock.js.map +1 -1
  191. package/FlowGraph/Blocks/Execution/flowGraphSetPropertyBlock.d.ts +15 -1
  192. package/FlowGraph/Blocks/Execution/flowGraphSetPropertyBlock.js +12 -1
  193. package/FlowGraph/Blocks/Execution/flowGraphSetPropertyBlock.js.map +1 -1
  194. package/FlowGraph/Blocks/Execution/flowGraphSetVariableBlock.d.ts +14 -1
  195. package/FlowGraph/Blocks/Execution/flowGraphSetVariableBlock.js +11 -1
  196. package/FlowGraph/Blocks/Execution/flowGraphSetVariableBlock.js.map +1 -1
  197. package/FlowGraph/flowGraph.d.ts +16 -8
  198. package/FlowGraph/flowGraph.js +13 -8
  199. package/FlowGraph/flowGraph.js.map +1 -1
  200. package/FlowGraph/flowGraphBlock.d.ts +54 -5
  201. package/FlowGraph/flowGraphBlock.js +50 -11
  202. package/FlowGraph/flowGraphBlock.js.map +1 -1
  203. package/FlowGraph/flowGraphConnection.d.ts +10 -6
  204. package/FlowGraph/flowGraphConnection.js +10 -6
  205. package/FlowGraph/flowGraphConnection.js.map +1 -1
  206. package/FlowGraph/flowGraphContext.d.ts +10 -8
  207. package/FlowGraph/flowGraphContext.js +10 -8
  208. package/FlowGraph/flowGraphContext.js.map +1 -1
  209. package/FlowGraph/flowGraphCoordinator.d.ts +27 -1
  210. package/FlowGraph/flowGraphCoordinator.js +18 -2
  211. package/FlowGraph/flowGraphCoordinator.js.map +1 -1
  212. package/FlowGraph/flowGraphDataConnection.d.ts +26 -1
  213. package/FlowGraph/flowGraphDataConnection.js +23 -1
  214. package/FlowGraph/flowGraphDataConnection.js.map +1 -1
  215. package/FlowGraph/flowGraphExecutionBlock.d.ts +27 -1
  216. package/FlowGraph/flowGraphExecutionBlock.js +22 -4
  217. package/FlowGraph/flowGraphExecutionBlock.js.map +1 -1
  218. package/FlowGraph/flowGraphRichTypes.d.ts +24 -1
  219. package/FlowGraph/flowGraphRichTypes.js +18 -1
  220. package/FlowGraph/flowGraphRichTypes.js.map +1 -1
  221. package/FlowGraph/flowGraphSignalConnection.d.ts +2 -0
  222. package/FlowGraph/flowGraphSignalConnection.js +2 -0
  223. package/FlowGraph/flowGraphSignalConnection.js.map +1 -1
  224. package/Gamepads/gamepad.d.ts +2 -2
  225. package/Gamepads/gamepad.js +2 -2
  226. package/Gamepads/gamepad.js.map +1 -1
  227. package/Gamepads/gamepadSceneComponent.js +2 -0
  228. package/Gamepads/gamepadSceneComponent.js.map +1 -1
  229. package/Gizmos/axisScaleGizmo.d.ts +2 -0
  230. package/Gizmos/axisScaleGizmo.js +2 -0
  231. package/Gizmos/axisScaleGizmo.js.map +1 -1
  232. package/Gizmos/boundingBoxGizmo.d.ts +19 -0
  233. package/Gizmos/boundingBoxGizmo.js +36 -15
  234. package/Gizmos/boundingBoxGizmo.js.map +1 -1
  235. package/Gizmos/cameraGizmo.js +1 -0
  236. package/Gizmos/cameraGizmo.js.map +1 -1
  237. package/Gizmos/gizmo.js +1 -0
  238. package/Gizmos/gizmo.js.map +1 -1
  239. package/Gizmos/gizmoManager.d.ts +18 -0
  240. package/Gizmos/gizmoManager.js +34 -0
  241. package/Gizmos/gizmoManager.js.map +1 -1
  242. package/Gizmos/lightGizmo.d.ts +1 -0
  243. package/Gizmos/lightGizmo.js +1 -0
  244. package/Gizmos/lightGizmo.js.map +1 -1
  245. package/Gizmos/planeRotationGizmo.d.ts +2 -0
  246. package/Gizmos/planeRotationGizmo.js +2 -0
  247. package/Gizmos/planeRotationGizmo.js.map +1 -1
  248. package/Gizmos/positionGizmo.d.ts +11 -0
  249. package/Gizmos/positionGizmo.js +19 -0
  250. package/Gizmos/positionGizmo.js.map +1 -1
  251. package/Gizmos/rotationGizmo.d.ts +14 -0
  252. package/Gizmos/rotationGizmo.js +14 -0
  253. package/Gizmos/rotationGizmo.js.map +1 -1
  254. package/Gizmos/scaleGizmo.d.ts +18 -1
  255. package/Gizmos/scaleGizmo.js +19 -1
  256. package/Gizmos/scaleGizmo.js.map +1 -1
  257. package/Helpers/environmentHelper.d.ts +4 -2
  258. package/Helpers/environmentHelper.js +4 -2
  259. package/Helpers/environmentHelper.js.map +1 -1
  260. package/Layers/effectLayer.d.ts +1 -0
  261. package/Layers/effectLayer.js +1 -0
  262. package/Layers/effectLayer.js.map +1 -1
  263. package/Layers/glowLayer.d.ts +3 -1
  264. package/Layers/glowLayer.js +3 -1
  265. package/Layers/glowLayer.js.map +1 -1
  266. package/Layers/highlightLayer.d.ts +3 -2
  267. package/Layers/highlightLayer.js +3 -2
  268. package/Layers/highlightLayer.js.map +1 -1
  269. package/Lights/light.d.ts +1 -1
  270. package/Lights/light.js +1 -1
  271. package/Lights/light.js.map +1 -1
  272. package/Loading/sceneLoader.js +4 -0
  273. package/Loading/sceneLoader.js.map +1 -1
  274. package/Materials/Background/backgroundMaterial.d.ts +2 -2
  275. package/Materials/Background/backgroundMaterial.js +2 -2
  276. package/Materials/Background/backgroundMaterial.js.map +1 -1
  277. package/Materials/GaussianSplatting/gaussianSplattingMaterial.d.ts +72 -0
  278. package/Materials/GaussianSplatting/gaussianSplattingMaterial.js +230 -0
  279. package/Materials/GaussianSplatting/gaussianSplattingMaterial.js.map +1 -0
  280. package/Materials/GreasedLine/greasedLinePluginMaterial.d.ts +0 -1
  281. package/Materials/GreasedLine/greasedLinePluginMaterial.js +0 -1
  282. package/Materials/GreasedLine/greasedLinePluginMaterial.js.map +1 -1
  283. package/Materials/GreasedLine/greasedLineSimpleMaterial.d.ts +0 -1
  284. package/Materials/GreasedLine/greasedLineSimpleMaterial.js +0 -1
  285. package/Materials/GreasedLine/greasedLineSimpleMaterial.js.map +1 -1
  286. package/Materials/Node/Blocks/Dual/reflectionTextureBaseBlock.d.ts +2 -1
  287. package/Materials/Node/Blocks/Dual/reflectionTextureBaseBlock.js +1 -1
  288. package/Materials/Node/Blocks/Dual/reflectionTextureBaseBlock.js.map +1 -1
  289. package/Materials/Node/Blocks/Fragment/fragCoordBlock.js +1 -0
  290. package/Materials/Node/Blocks/Fragment/fragCoordBlock.js.map +1 -1
  291. package/Materials/Node/Blocks/Fragment/frontFacingBlock.js +1 -0
  292. package/Materials/Node/Blocks/Fragment/frontFacingBlock.js.map +1 -1
  293. package/Materials/Node/Blocks/Fragment/screenSizeBlock.js +1 -0
  294. package/Materials/Node/Blocks/Fragment/screenSizeBlock.js.map +1 -1
  295. package/Materials/Node/Blocks/Teleport/teleportInBlock.d.ts +3 -1
  296. package/Materials/Node/Blocks/Teleport/teleportInBlock.js +3 -1
  297. package/Materials/Node/Blocks/Teleport/teleportInBlock.js.map +1 -1
  298. package/Materials/Node/Blocks/triPlanarBlock.d.ts +1 -0
  299. package/Materials/Node/Blocks/triPlanarBlock.js +1 -0
  300. package/Materials/Node/Blocks/triPlanarBlock.js.map +1 -1
  301. package/Materials/Node/Blocks/worleyNoise3DBlock.d.ts +2 -0
  302. package/Materials/Node/Blocks/worleyNoise3DBlock.js +2 -0
  303. package/Materials/Node/Blocks/worleyNoise3DBlock.js.map +1 -1
  304. package/Materials/Node/nodeMaterial.d.ts +10 -3
  305. package/Materials/Node/nodeMaterial.js +14 -3
  306. package/Materials/Node/nodeMaterial.js.map +1 -1
  307. package/Materials/Node/nodeMaterialBlock.d.ts +3 -1
  308. package/Materials/Node/nodeMaterialBlock.js +4 -1
  309. package/Materials/Node/nodeMaterialBlock.js.map +1 -1
  310. package/Materials/Node/nodeMaterialBlockConnectionPoint.js +1 -0
  311. package/Materials/Node/nodeMaterialBlockConnectionPoint.js.map +1 -1
  312. package/Materials/Node/nodeMaterialBuildStateSharedData.js +1 -0
  313. package/Materials/Node/nodeMaterialBuildStateSharedData.js.map +1 -1
  314. package/Materials/PBR/pbrBaseMaterial.d.ts +7 -6
  315. package/Materials/PBR/pbrBaseMaterial.js +7 -6
  316. package/Materials/PBR/pbrBaseMaterial.js.map +1 -1
  317. package/Materials/PBR/pbrMaterial.d.ts +2 -1
  318. package/Materials/PBR/pbrMaterial.js +2 -1
  319. package/Materials/PBR/pbrMaterial.js.map +1 -1
  320. package/Materials/PBR/pbrMetallicRoughnessMaterial.d.ts +4 -1
  321. package/Materials/PBR/pbrMetallicRoughnessMaterial.js +4 -1
  322. package/Materials/PBR/pbrMetallicRoughnessMaterial.js.map +1 -1
  323. package/Materials/PBR/pbrSpecularGlossinessMaterial.d.ts +4 -1
  324. package/Materials/PBR/pbrSpecularGlossinessMaterial.js +4 -1
  325. package/Materials/PBR/pbrSpecularGlossinessMaterial.js.map +1 -1
  326. package/Materials/Textures/Loaders/envTextureLoader.js +1 -0
  327. package/Materials/Textures/Loaders/envTextureLoader.js.map +1 -1
  328. package/Materials/Textures/Loaders/hdrTextureLoader.js +1 -0
  329. package/Materials/Textures/Loaders/hdrTextureLoader.js.map +1 -1
  330. package/Materials/Textures/Loaders/tgaTextureLoader.js +1 -0
  331. package/Materials/Textures/Loaders/tgaTextureLoader.js.map +1 -1
  332. package/Materials/Textures/Packer/packer.d.ts +0 -1
  333. package/Materials/Textures/Packer/packer.js +0 -1
  334. package/Materials/Textures/Packer/packer.js.map +1 -1
  335. package/Materials/Textures/colorGradingTexture.d.ts +4 -1
  336. package/Materials/Textures/colorGradingTexture.js +4 -1
  337. package/Materials/Textures/colorGradingTexture.js.map +1 -1
  338. package/Materials/Textures/equiRectangularCubeTexture.d.ts +1 -0
  339. package/Materials/Textures/equiRectangularCubeTexture.js +1 -0
  340. package/Materials/Textures/equiRectangularCubeTexture.js.map +1 -1
  341. package/Materials/Textures/hdrCubeTexture.d.ts +3 -2
  342. package/Materials/Textures/hdrCubeTexture.js +3 -2
  343. package/Materials/Textures/hdrCubeTexture.js.map +1 -1
  344. package/Materials/Textures/htmlElementTexture.d.ts +1 -1
  345. package/Materials/Textures/htmlElementTexture.js +1 -1
  346. package/Materials/Textures/htmlElementTexture.js.map +1 -1
  347. package/Materials/index.d.ts +1 -0
  348. package/Materials/index.js +1 -0
  349. package/Materials/index.js.map +1 -1
  350. package/Materials/material.d.ts +1 -0
  351. package/Materials/material.decalMapConfiguration.d.ts +0 -5
  352. package/Materials/material.decalMapConfiguration.js +5 -5
  353. package/Materials/material.decalMapConfiguration.js.map +1 -1
  354. package/Materials/material.js +1 -0
  355. package/Materials/material.js.map +1 -1
  356. package/Materials/materialHelper.d.ts +1 -1
  357. package/Materials/materialHelper.js +4 -3
  358. package/Materials/materialHelper.js.map +1 -1
  359. package/Materials/materialPluginManager.js +1 -0
  360. package/Materials/materialPluginManager.js.map +1 -1
  361. package/Materials/standardMaterial.d.ts +2 -2
  362. package/Materials/standardMaterial.js +2 -2
  363. package/Materials/standardMaterial.js.map +1 -1
  364. package/Materials/uniformBuffer.js +2 -1
  365. package/Materials/uniformBuffer.js.map +1 -1
  366. package/Maths/math.path.d.ts +2 -1
  367. package/Maths/math.path.js +2 -1
  368. package/Maths/math.path.js.map +1 -1
  369. package/Maths/math.vector.d.ts +11 -4
  370. package/Maths/math.vector.js +11 -4
  371. package/Maths/math.vector.js.map +1 -1
  372. package/Meshes/Builders/hemisphereBuilder.js +1 -0
  373. package/Meshes/Builders/hemisphereBuilder.js.map +1 -1
  374. package/Meshes/Builders/textBuilder.d.ts +26 -5
  375. package/Meshes/Builders/textBuilder.js +26 -5
  376. package/Meshes/Builders/textBuilder.js.map +1 -1
  377. package/Meshes/GaussianSplatting/gaussianSplattingMesh.d.ts +84 -0
  378. package/Meshes/GaussianSplatting/gaussianSplattingMesh.js +288 -0
  379. package/Meshes/GaussianSplatting/gaussianSplattingMesh.js.map +1 -0
  380. package/Meshes/GreasedLine/greasedLineRibbonMesh.js +7 -0
  381. package/Meshes/GreasedLine/greasedLineRibbonMesh.js.map +1 -1
  382. package/Meshes/Node/Blocks/geometryCurveBlock.d.ts +92 -0
  383. package/Meshes/Node/Blocks/geometryCurveBlock.js +292 -0
  384. package/Meshes/Node/Blocks/geometryCurveBlock.js.map +1 -0
  385. package/Meshes/Node/Blocks/noiseBlock.d.ts +5 -3
  386. package/Meshes/Node/Blocks/noiseBlock.js +5 -3
  387. package/Meshes/Node/Blocks/noiseBlock.js.map +1 -1
  388. package/Meshes/Node/index.d.ts +1 -0
  389. package/Meshes/Node/index.js +1 -0
  390. package/Meshes/Node/index.js.map +1 -1
  391. package/Meshes/Node/nodeGeometry.d.ts +6 -2
  392. package/Meshes/Node/nodeGeometry.js +7 -2
  393. package/Meshes/Node/nodeGeometry.js.map +1 -1
  394. package/Meshes/Node/nodeGeometryBlockConnectionPoint.js +1 -0
  395. package/Meshes/Node/nodeGeometryBlockConnectionPoint.js.map +1 -1
  396. package/Meshes/Node/nodeGeometryBuildState.js +1 -0
  397. package/Meshes/Node/nodeGeometryBuildState.js.map +1 -1
  398. package/Meshes/abstractMesh.d.ts +1 -0
  399. package/Meshes/abstractMesh.js +3 -0
  400. package/Meshes/abstractMesh.js.map +1 -1
  401. package/Meshes/csg.d.ts +7 -1
  402. package/Meshes/csg.js +9 -1
  403. package/Meshes/csg.js.map +1 -1
  404. package/Meshes/index.d.ts +1 -0
  405. package/Meshes/index.js +1 -0
  406. package/Meshes/index.js.map +1 -1
  407. package/Meshes/instancedMesh.d.ts +7 -3
  408. package/Meshes/instancedMesh.js +7 -3
  409. package/Meshes/instancedMesh.js.map +1 -1
  410. package/Meshes/linesMesh.d.ts +3 -2
  411. package/Meshes/linesMesh.js +3 -2
  412. package/Meshes/linesMesh.js.map +1 -1
  413. package/Meshes/mesh.d.ts +1 -0
  414. package/Meshes/mesh.js +1 -0
  415. package/Meshes/mesh.js.map +1 -1
  416. package/Meshes/mesh.vertexData.d.ts +0 -145
  417. package/Meshes/mesh.vertexData.js +0 -145
  418. package/Meshes/mesh.vertexData.js.map +1 -1
  419. package/Meshes/transformNode.d.ts +1 -1
  420. package/Meshes/transformNode.js +1 -1
  421. package/Meshes/transformNode.js.map +1 -1
  422. package/Misc/HighDynamicRange/cubemapToSphericalPolynomial.d.ts +1 -0
  423. package/Misc/HighDynamicRange/cubemapToSphericalPolynomial.js +1 -0
  424. package/Misc/HighDynamicRange/cubemapToSphericalPolynomial.js.map +1 -1
  425. package/Misc/HighDynamicRange/hdr.js +7 -0
  426. package/Misc/HighDynamicRange/hdr.js.map +1 -1
  427. package/Misc/HighDynamicRange/panoramaToCubemap.js +2 -0
  428. package/Misc/HighDynamicRange/panoramaToCubemap.js.map +1 -1
  429. package/Misc/assetsManager.d.ts +3 -0
  430. package/Misc/assetsManager.js +3 -0
  431. package/Misc/assetsManager.js.map +1 -1
  432. package/Misc/basis.js +1 -0
  433. package/Misc/basis.js.map +1 -1
  434. package/Misc/decorators.d.ts +1 -0
  435. package/Misc/decorators.js +2 -1
  436. package/Misc/decorators.js.map +1 -1
  437. package/Misc/fileTools.js +2 -0
  438. package/Misc/fileTools.js.map +1 -1
  439. package/Misc/filesInput.d.ts +7 -2
  440. package/Misc/filesInput.js +7 -2
  441. package/Misc/filesInput.js.map +1 -1
  442. package/Misc/greasedLineTools.d.ts +1 -0
  443. package/Misc/greasedLineTools.js +1 -0
  444. package/Misc/greasedLineTools.js.map +1 -1
  445. package/Misc/textureTools.d.ts +2 -0
  446. package/Misc/textureTools.js +2 -0
  447. package/Misc/textureTools.js.map +1 -1
  448. package/Misc/timer.d.ts +2 -1
  449. package/Misc/timer.js +1 -0
  450. package/Misc/timer.js.map +1 -1
  451. package/Misc/tools.d.ts +2 -2
  452. package/Misc/tools.js +6 -2
  453. package/Misc/tools.js.map +1 -1
  454. package/Misc/videoRecorder.js +4 -0
  455. package/Misc/videoRecorder.js.map +1 -1
  456. package/Misc/webRequest.js +1 -1
  457. package/Misc/webRequest.js.map +1 -1
  458. package/Morph/morphTargetManager.d.ts +11 -0
  459. package/Morph/morphTargetManager.js +22 -2
  460. package/Morph/morphTargetManager.js.map +1 -1
  461. package/Particles/EmitterTypes/customParticleEmitter.js +10 -2
  462. package/Particles/EmitterTypes/customParticleEmitter.js.map +1 -1
  463. package/Particles/EmitterTypes/cylinderParticleEmitter.d.ts +3 -1
  464. package/Particles/EmitterTypes/cylinderParticleEmitter.js +7 -1
  465. package/Particles/EmitterTypes/cylinderParticleEmitter.js.map +1 -1
  466. package/Particles/IParticleSystem.d.ts +2 -2
  467. package/Particles/IParticleSystem.js.map +1 -1
  468. package/Particles/gpuParticleSystem.js +1 -0
  469. package/Particles/gpuParticleSystem.js.map +1 -1
  470. package/Particles/particleSystem.d.ts +1 -2
  471. package/Particles/particleSystem.js +5 -1
  472. package/Particles/particleSystem.js.map +1 -1
  473. package/Particles/solidParticleSystem.d.ts +1 -1
  474. package/Particles/solidParticleSystem.js +1 -1
  475. package/Particles/solidParticleSystem.js.map +1 -1
  476. package/Physics/physicsHelper.d.ts +1 -0
  477. package/Physics/physicsHelper.js +1 -0
  478. package/Physics/physicsHelper.js.map +1 -1
  479. package/Physics/v1/Plugins/ammoJSPlugin.d.ts +5 -0
  480. package/Physics/v1/Plugins/ammoJSPlugin.js +6 -0
  481. package/Physics/v1/Plugins/ammoJSPlugin.js.map +1 -1
  482. package/Physics/v1/physicsEngine.d.ts +2 -0
  483. package/Physics/v1/physicsEngine.js +2 -0
  484. package/Physics/v1/physicsEngine.js.map +1 -1
  485. package/Physics/v1/physicsImpostor.d.ts +0 -1
  486. package/Physics/v1/physicsImpostor.js +0 -1
  487. package/Physics/v1/physicsImpostor.js.map +1 -1
  488. package/Physics/v2/IPhysicsEnginePlugin.d.ts +1 -0
  489. package/Physics/v2/IPhysicsEnginePlugin.js.map +1 -1
  490. package/Physics/v2/Plugins/havokPlugin.d.ts +12 -6
  491. package/Physics/v2/Plugins/havokPlugin.js +38 -6
  492. package/Physics/v2/Plugins/havokPlugin.js.map +1 -1
  493. package/Physics/v2/physicsBody.d.ts +8 -0
  494. package/Physics/v2/physicsBody.js +18 -4
  495. package/Physics/v2/physicsBody.js.map +1 -1
  496. package/Physics/v2/physicsConstraint.d.ts +0 -2
  497. package/Physics/v2/physicsConstraint.js +0 -2
  498. package/Physics/v2/physicsConstraint.js.map +1 -1
  499. package/Physics/v2/physicsEngine.d.ts +1 -2
  500. package/Physics/v2/physicsEngine.js +2 -2
  501. package/Physics/v2/physicsEngine.js.map +1 -1
  502. package/Physics/v2/physicsShape.d.ts +2 -0
  503. package/Physics/v2/physicsShape.js +5 -0
  504. package/Physics/v2/physicsShape.js.map +1 -1
  505. package/PostProcesses/motionBlurPostProcess.d.ts +1 -0
  506. package/PostProcesses/motionBlurPostProcess.js +1 -0
  507. package/PostProcesses/motionBlurPostProcess.js.map +1 -1
  508. package/PostProcesses/postProcess.d.ts +0 -1
  509. package/PostProcesses/postProcess.js +0 -1
  510. package/PostProcesses/postProcess.js.map +1 -1
  511. package/Rendering/depthRendererSceneComponent.js +1 -0
  512. package/Rendering/depthRendererSceneComponent.js.map +1 -1
  513. package/Rendering/fluidRenderer/fluidRenderingObject.d.ts +1 -1
  514. package/Rendering/fluidRenderer/fluidRenderingObject.js +1 -1
  515. package/Rendering/fluidRenderer/fluidRenderingObject.js.map +1 -1
  516. package/Rendering/fluidRenderer/fluidRenderingObjectCustomParticles.d.ts +1 -1
  517. package/Rendering/fluidRenderer/fluidRenderingObjectCustomParticles.js +1 -1
  518. package/Rendering/fluidRenderer/fluidRenderingObjectCustomParticles.js.map +1 -1
  519. package/Rendering/fluidRenderer/fluidRenderingObjectParticleSystem.d.ts +1 -1
  520. package/Rendering/fluidRenderer/fluidRenderingObjectParticleSystem.js +1 -1
  521. package/Rendering/fluidRenderer/fluidRenderingObjectParticleSystem.js.map +1 -1
  522. package/Rendering/geometryBufferRenderer.d.ts +2 -2
  523. package/Rendering/geometryBufferRenderer.js +2 -2
  524. package/Rendering/geometryBufferRenderer.js.map +1 -1
  525. package/Rendering/index.d.ts +0 -1
  526. package/Rendering/index.js +0 -1
  527. package/Rendering/index.js.map +1 -1
  528. package/Rendering/renderingGroup.d.ts +0 -1
  529. package/Rendering/renderingGroup.js +3 -4
  530. package/Rendering/renderingGroup.js.map +1 -1
  531. package/Rendering/renderingManager.d.ts +1 -1
  532. package/Rendering/renderingManager.js +1 -1
  533. package/Rendering/renderingManager.js.map +1 -1
  534. package/Rendering/subSurfaceConfiguration.d.ts +1 -0
  535. package/Rendering/subSurfaceConfiguration.js +1 -0
  536. package/Rendering/subSurfaceConfiguration.js.map +1 -1
  537. package/Shaders/ShadersInclude/gaussianSplattingUboDeclaration.d.ts +7 -0
  538. package/Shaders/ShadersInclude/gaussianSplattingUboDeclaration.js +13 -0
  539. package/Shaders/ShadersInclude/gaussianSplattingUboDeclaration.js.map +1 -0
  540. package/Shaders/ShadersInclude/gaussianSplattingVertexDeclaration.d.ts +5 -0
  541. package/Shaders/ShadersInclude/gaussianSplattingVertexDeclaration.js +10 -0
  542. package/Shaders/ShadersInclude/gaussianSplattingVertexDeclaration.js.map +1 -0
  543. package/Shaders/ShadersInclude/morphTargetsVertex.js +8 -5
  544. package/Shaders/ShadersInclude/morphTargetsVertex.js.map +1 -1
  545. package/Shaders/ShadersInclude/morphTargetsVertexDeclaration.js +2 -0
  546. package/Shaders/ShadersInclude/morphTargetsVertexDeclaration.js.map +1 -1
  547. package/Shaders/gaussianSplatting.fragment.d.ts +11 -0
  548. package/Shaders/gaussianSplatting.fragment.js +27 -0
  549. package/Shaders/gaussianSplatting.fragment.js.map +1 -0
  550. package/Shaders/gaussianSplatting.vertex.d.ts +13 -0
  551. package/Shaders/gaussianSplatting.vertex.js +49 -0
  552. package/Shaders/gaussianSplatting.vertex.js.map +1 -0
  553. package/ShadersWGSL/ShadersInclude/morphTargetsVertex.js +5 -1
  554. package/ShadersWGSL/ShadersInclude/morphTargetsVertex.js.map +1 -1
  555. package/ShadersWGSL/ShadersInclude/morphTargetsVertexDeclaration.js +2 -0
  556. package/ShadersWGSL/ShadersInclude/morphTargetsVertexDeclaration.js.map +1 -1
  557. package/XR/features/WebXRAbstractFeature.d.ts +3 -1
  558. package/XR/features/WebXRAbstractFeature.js +20 -4
  559. package/XR/features/WebXRAbstractFeature.js.map +1 -1
  560. package/XR/features/WebXRAnchorSystem.d.ts +1 -0
  561. package/XR/features/WebXRAnchorSystem.js +1 -0
  562. package/XR/features/WebXRAnchorSystem.js.map +1 -1
  563. package/XR/features/WebXRControllerTeleportation.js +9 -2
  564. package/XR/features/WebXRControllerTeleportation.js.map +1 -1
  565. package/XR/features/WebXREyeTracking.js +1 -1
  566. package/XR/features/WebXREyeTracking.js.map +1 -1
  567. package/XR/features/WebXRHandTracking.d.ts +4 -1
  568. package/XR/features/WebXRHandTracking.js +18 -4
  569. package/XR/features/WebXRHandTracking.js.map +1 -1
  570. package/XR/features/WebXRHitTest.js +1 -1
  571. package/XR/features/WebXRHitTest.js.map +1 -1
  572. package/XR/features/WebXRNearInteraction.d.ts +6 -3
  573. package/XR/features/WebXRNearInteraction.js +9 -4
  574. package/XR/features/WebXRNearInteraction.js.map +1 -1
  575. package/XR/features/WebXRPlaneDetector.d.ts +2 -0
  576. package/XR/features/WebXRPlaneDetector.js +2 -0
  577. package/XR/features/WebXRPlaneDetector.js.map +1 -1
  578. package/XR/features/WebXRRawCameraAccess.d.ts +2 -0
  579. package/XR/features/WebXRRawCameraAccess.js +2 -0
  580. package/XR/features/WebXRRawCameraAccess.js.map +1 -1
  581. package/XR/motionController/webXROculusTouchMotionController.d.ts +1 -0
  582. package/XR/motionController/webXROculusTouchMotionController.js +1 -0
  583. package/XR/motionController/webXROculusTouchMotionController.js.map +1 -1
  584. package/XR/webXRCamera.d.ts +2 -0
  585. package/XR/webXRCamera.js +8 -6
  586. package/XR/webXRCamera.js.map +1 -1
  587. package/XR/webXRExperienceHelper.js +1 -0
  588. package/XR/webXRExperienceHelper.js.map +1 -1
  589. package/XR/webXRInput.js +1 -1
  590. package/XR/webXRInput.js.map +1 -1
  591. package/XR/webXRInputSource.d.ts +3 -1
  592. package/XR/webXRInputSource.js +6 -3
  593. package/XR/webXRInputSource.js.map +1 -1
  594. package/XR/webXRSessionManager.d.ts +13 -0
  595. package/XR/webXRSessionManager.js +21 -1
  596. package/XR/webXRSessionManager.js.map +1 -1
  597. package/assetContainer.d.ts +4 -1
  598. package/assetContainer.js +4 -1
  599. package/assetContainer.js.map +1 -1
  600. package/package.json +1 -1
  601. package/scene.d.ts +1 -0
  602. package/scene.js +11 -0
  603. package/scene.js.map +1 -1
  604. package/Rendering/GaussianSplatting/gaussianSplatting.d.ts +0 -81
  605. package/Rendering/GaussianSplatting/gaussianSplatting.js +0 -400
  606. package/Rendering/GaussianSplatting/gaussianSplatting.js.map +0 -1
  607. package/Rendering/GaussianSplatting/index.d.ts +0 -1
  608. package/Rendering/GaussianSplatting/index.js +0 -2
  609. package/Rendering/GaussianSplatting/index.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"arcRotateCameraPointersInput.js","sourceRoot":"","sources":["../../../../../dev/core/src/Cameras/Inputs/arcRotateCameraPointersInput.ts"],"names":[],"mappings":"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","sourcesContent":["import type { Nullable } from \"../../types\";\r\nimport { serialize } from \"../../Misc/decorators\";\r\nimport type { ArcRotateCamera } from \"../../Cameras/arcRotateCamera\";\r\nimport { CameraInputTypes } from \"../../Cameras/cameraInputsManager\";\r\nimport { BaseCameraPointersInput } from \"../../Cameras/Inputs/BaseCameraPointersInput\";\r\nimport type { PointerTouch } from \"../../Events/pointerEvents\";\r\nimport type { IPointerEvent } from \"../../Events/deviceInputEvents\";\r\n\r\n/**\r\n * Manage the pointers inputs to control an arc rotate camera.\r\n * @see https://doc.babylonjs.com/features/featuresDeepDive/cameras/customizingCameraInputs\r\n */\r\nexport class ArcRotateCameraPointersInput extends BaseCameraPointersInput {\r\n /**\r\n * Defines the camera the input is attached to.\r\n */\r\n public camera: ArcRotateCamera;\r\n\r\n /**\r\n * The minimum radius used for pinch, to avoid radius lock at 0\r\n */\r\n public static MinimumRadiusForPinch: number = 0.001;\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 \"ArcRotateCameraPointersInput\";\r\n }\r\n\r\n /**\r\n * Defines the buttons associated with the input to handle camera move.\r\n */\r\n @serialize()\r\n public buttons = [0, 1, 2];\r\n\r\n /**\r\n * Defines the pointer angular sensibility along the X axis or how fast is\r\n * the camera rotating.\r\n */\r\n @serialize()\r\n public angularSensibilityX = 1000.0;\r\n\r\n /**\r\n * Defines the pointer angular sensibility along the Y axis or how fast is\r\n * the camera rotating.\r\n */\r\n @serialize()\r\n public angularSensibilityY = 1000.0;\r\n\r\n /**\r\n * Defines the pointer pinch precision or how fast is the camera zooming.\r\n */\r\n @serialize()\r\n public pinchPrecision = 12.0;\r\n\r\n /**\r\n * pinchDeltaPercentage will be used instead of pinchPrecision if different\r\n * from 0.\r\n * It defines the percentage of current camera.radius to use as delta when\r\n * pinch zoom is used.\r\n */\r\n @serialize()\r\n public pinchDeltaPercentage = 0;\r\n\r\n /**\r\n * When useNaturalPinchZoom is true, multi touch zoom will zoom in such\r\n * that any object in the plane at the camera's target point will scale\r\n * perfectly with finger motion.\r\n * Overrides pinchDeltaPercentage and pinchPrecision.\r\n */\r\n @serialize()\r\n public useNaturalPinchZoom: boolean = false;\r\n\r\n /**\r\n * Defines whether zoom (2 fingers pinch) is enabled through multitouch\r\n */\r\n @serialize()\r\n public pinchZoom: boolean = true;\r\n\r\n /**\r\n * Defines the pointer panning sensibility or how fast is the camera moving.\r\n */\r\n @serialize()\r\n public panningSensibility: number = 1000.0;\r\n\r\n /**\r\n * Defines whether panning (2 fingers swipe) is enabled through multitouch.\r\n */\r\n @serialize()\r\n public multiTouchPanning: boolean = true;\r\n\r\n /**\r\n * Defines whether panning is enabled for both pan (2 fingers swipe) and\r\n * zoom (pinch) through multitouch.\r\n */\r\n @serialize()\r\n public multiTouchPanAndZoom: boolean = true;\r\n\r\n /**\r\n * Revers pinch action direction.\r\n */\r\n public pinchInwards = true;\r\n\r\n private _isPanClick: boolean = false;\r\n private _twoFingerActivityCount: number = 0;\r\n private _isPinching: boolean = false;\r\n\r\n /**\r\n * Move camera from multi touch panning positions.\r\n * @param previousMultiTouchPanPosition\r\n * @param multiTouchPanPosition\r\n */\r\n private _computeMultiTouchPanning(previousMultiTouchPanPosition: Nullable<PointerTouch>, multiTouchPanPosition: Nullable<PointerTouch>): void {\r\n if (this.panningSensibility !== 0 && previousMultiTouchPanPosition && multiTouchPanPosition) {\r\n const moveDeltaX = multiTouchPanPosition.x - previousMultiTouchPanPosition.x;\r\n const moveDeltaY = multiTouchPanPosition.y - previousMultiTouchPanPosition.y;\r\n this.camera.inertialPanningX += -moveDeltaX / this.panningSensibility;\r\n this.camera.inertialPanningY += moveDeltaY / this.panningSensibility;\r\n }\r\n }\r\n\r\n /**\r\n * Move camera from pinch zoom distances.\r\n * @param previousPinchSquaredDistance\r\n * @param pinchSquaredDistance\r\n */\r\n private _computePinchZoom(previousPinchSquaredDistance: number, pinchSquaredDistance: number): void {\r\n const radius = this.camera.radius || ArcRotateCameraPointersInput.MinimumRadiusForPinch;\r\n if (this.useNaturalPinchZoom) {\r\n this.camera.radius = (radius * Math.sqrt(previousPinchSquaredDistance)) / Math.sqrt(pinchSquaredDistance);\r\n } else if (this.pinchDeltaPercentage) {\r\n this.camera.inertialRadiusOffset += (pinchSquaredDistance - previousPinchSquaredDistance) * 0.001 * radius * this.pinchDeltaPercentage;\r\n } else {\r\n this.camera.inertialRadiusOffset +=\r\n (pinchSquaredDistance - previousPinchSquaredDistance) /\r\n ((this.pinchPrecision * (this.pinchInwards ? 1 : -1) * (this.angularSensibilityX + this.angularSensibilityY)) / 2);\r\n }\r\n }\r\n\r\n /**\r\n * Called on pointer POINTERMOVE event if only a single touch is active.\r\n * @param point\r\n * @param offsetX\r\n * @param offsetY\r\n */\r\n public onTouch(point: Nullable<PointerTouch>, offsetX: number, offsetY: number): void {\r\n if (this.panningSensibility !== 0 && ((this._ctrlKey && this.camera._useCtrlForPanning) || this._isPanClick)) {\r\n this.camera.inertialPanningX += -offsetX / this.panningSensibility;\r\n this.camera.inertialPanningY += offsetY / this.panningSensibility;\r\n } else {\r\n this.camera.inertialAlphaOffset -= offsetX / this.angularSensibilityX;\r\n this.camera.inertialBetaOffset -= offsetY / this.angularSensibilityY;\r\n }\r\n }\r\n\r\n /**\r\n * Called on pointer POINTERDOUBLETAP event.\r\n */\r\n public onDoubleTap() {\r\n if (this.camera.useInputToRestoreState) {\r\n this.camera.restoreState();\r\n }\r\n }\r\n\r\n /**\r\n * Called on pointer POINTERMOVE event if multiple touches are active.\r\n * @param pointA\r\n * @param pointB\r\n * @param previousPinchSquaredDistance\r\n * @param pinchSquaredDistance\r\n * @param previousMultiTouchPanPosition\r\n * @param multiTouchPanPosition\r\n */\r\n public onMultiTouch(\r\n pointA: Nullable<PointerTouch>,\r\n pointB: Nullable<PointerTouch>,\r\n previousPinchSquaredDistance: number,\r\n pinchSquaredDistance: number,\r\n previousMultiTouchPanPosition: Nullable<PointerTouch>,\r\n multiTouchPanPosition: Nullable<PointerTouch>\r\n ): void {\r\n if (previousPinchSquaredDistance === 0 && previousMultiTouchPanPosition === null) {\r\n // First time this method is called for new pinch.\r\n // Next time this is called there will be a\r\n // previousPinchSquaredDistance and pinchSquaredDistance to compare.\r\n return;\r\n }\r\n if (pinchSquaredDistance === 0 && multiTouchPanPosition === null) {\r\n // Last time this method is called at the end of a pinch.\r\n return;\r\n }\r\n\r\n // Zoom and panning enabled together\r\n if (this.multiTouchPanAndZoom) {\r\n this._computePinchZoom(previousPinchSquaredDistance, pinchSquaredDistance);\r\n this._computeMultiTouchPanning(previousMultiTouchPanPosition, multiTouchPanPosition);\r\n\r\n // Zoom and panning enabled but only one at a time\r\n } else if (this.multiTouchPanning && this.pinchZoom) {\r\n this._twoFingerActivityCount++;\r\n\r\n if (\r\n this._isPinching ||\r\n (this._twoFingerActivityCount < 20 && Math.abs(Math.sqrt(pinchSquaredDistance) - Math.sqrt(previousPinchSquaredDistance)) > this.camera.pinchToPanMaxDistance)\r\n ) {\r\n // Since pinch has not been active long, assume we intend to zoom.\r\n this._computePinchZoom(previousPinchSquaredDistance, pinchSquaredDistance);\r\n\r\n // Since we are pinching, remain pinching on next iteration.\r\n this._isPinching = true;\r\n } else {\r\n // Pause between pinch starting and moving implies not a zoom event. Pan instead.\r\n this._computeMultiTouchPanning(previousMultiTouchPanPosition, multiTouchPanPosition);\r\n }\r\n\r\n // Panning enabled, zoom disabled\r\n } else if (this.multiTouchPanning) {\r\n this._computeMultiTouchPanning(previousMultiTouchPanPosition, multiTouchPanPosition);\r\n\r\n // Zoom enabled, panning disabled\r\n } else if (this.pinchZoom) {\r\n this._computePinchZoom(previousPinchSquaredDistance, pinchSquaredDistance);\r\n }\r\n }\r\n\r\n /**\r\n * Called each time a new POINTERDOWN event occurs. Ie, for each button\r\n * press.\r\n * @param evt Defines the event to track\r\n */\r\n public onButtonDown(evt: IPointerEvent): void {\r\n this._isPanClick = evt.button === this.camera._panningMouseButton;\r\n }\r\n\r\n /**\r\n * Called each time a new POINTERUP event occurs. Ie, for each button\r\n * release.\r\n * @param _evt Defines the event to track\r\n */\r\n public onButtonUp(_evt: IPointerEvent): void {\r\n this._twoFingerActivityCount = 0;\r\n this._isPinching = false;\r\n }\r\n\r\n /**\r\n * Called when window becomes inactive.\r\n */\r\n public onLostFocus(): void {\r\n this._isPanClick = false;\r\n this._twoFingerActivityCount = 0;\r\n this._isPinching = false;\r\n }\r\n}\r\n(<any>CameraInputTypes)[\"ArcRotateCameraPointersInput\"] = ArcRotateCameraPointersInput;\r\n"]}
1
+ {"version":3,"file":"arcRotateCameraPointersInput.js","sourceRoot":"","sources":["../../../../../dev/core/src/Cameras/Inputs/arcRotateCameraPointersInput.ts"],"names":[],"mappings":"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","sourcesContent":["import type { Nullable } from \"../../types\";\r\nimport { serialize } from \"../../Misc/decorators\";\r\nimport type { ArcRotateCamera } from \"../../Cameras/arcRotateCamera\";\r\nimport { CameraInputTypes } from \"../../Cameras/cameraInputsManager\";\r\nimport { BaseCameraPointersInput } from \"../../Cameras/Inputs/BaseCameraPointersInput\";\r\nimport type { PointerTouch } from \"../../Events/pointerEvents\";\r\nimport type { IPointerEvent } from \"../../Events/deviceInputEvents\";\r\n\r\n/**\r\n * Manage the pointers inputs to control an arc rotate camera.\r\n * @see https://doc.babylonjs.com/features/featuresDeepDive/cameras/customizingCameraInputs\r\n */\r\nexport class ArcRotateCameraPointersInput extends BaseCameraPointersInput {\r\n /**\r\n * Defines the camera the input is attached to.\r\n */\r\n public camera: ArcRotateCamera;\r\n\r\n /**\r\n * The minimum radius used for pinch, to avoid radius lock at 0\r\n */\r\n public static MinimumRadiusForPinch: number = 0.001;\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 \"ArcRotateCameraPointersInput\";\r\n }\r\n\r\n /**\r\n * Defines the buttons associated with the input to handle camera move.\r\n */\r\n @serialize()\r\n public buttons = [0, 1, 2];\r\n\r\n /**\r\n * Defines the pointer angular sensibility along the X axis or how fast is\r\n * the camera rotating.\r\n */\r\n @serialize()\r\n public angularSensibilityX = 1000.0;\r\n\r\n /**\r\n * Defines the pointer angular sensibility along the Y axis or how fast is\r\n * the camera rotating.\r\n */\r\n @serialize()\r\n public angularSensibilityY = 1000.0;\r\n\r\n /**\r\n * Defines the pointer pinch precision or how fast is the camera zooming.\r\n */\r\n @serialize()\r\n public pinchPrecision = 12.0;\r\n\r\n /**\r\n * pinchDeltaPercentage will be used instead of pinchPrecision if different\r\n * from 0.\r\n * It defines the percentage of current camera.radius to use as delta when\r\n * pinch zoom is used.\r\n */\r\n @serialize()\r\n public pinchDeltaPercentage = 0;\r\n\r\n /**\r\n * When useNaturalPinchZoom is true, multi touch zoom will zoom in such\r\n * that any object in the plane at the camera's target point will scale\r\n * perfectly with finger motion.\r\n * Overrides pinchDeltaPercentage and pinchPrecision.\r\n */\r\n @serialize()\r\n public useNaturalPinchZoom: boolean = false;\r\n\r\n /**\r\n * Defines whether zoom (2 fingers pinch) is enabled through multitouch\r\n */\r\n @serialize()\r\n public pinchZoom: boolean = true;\r\n\r\n /**\r\n * Defines the pointer panning sensibility or how fast is the camera moving.\r\n */\r\n @serialize()\r\n public panningSensibility: number = 1000.0;\r\n\r\n /**\r\n * Defines whether panning (2 fingers swipe) is enabled through multitouch.\r\n */\r\n @serialize()\r\n public multiTouchPanning: boolean = true;\r\n\r\n /**\r\n * Defines whether panning is enabled for both pan (2 fingers swipe) and\r\n * zoom (pinch) through multitouch.\r\n */\r\n @serialize()\r\n public multiTouchPanAndZoom: boolean = true;\r\n\r\n /**\r\n * Revers pinch action direction.\r\n */\r\n public pinchInwards = true;\r\n\r\n private _isPanClick: boolean = false;\r\n private _twoFingerActivityCount: number = 0;\r\n private _isPinching: boolean = false;\r\n\r\n /**\r\n * Move camera from multi touch panning positions.\r\n * @param previousMultiTouchPanPosition\r\n * @param multiTouchPanPosition\r\n */\r\n private _computeMultiTouchPanning(previousMultiTouchPanPosition: Nullable<PointerTouch>, multiTouchPanPosition: Nullable<PointerTouch>): void {\r\n if (this.panningSensibility !== 0 && previousMultiTouchPanPosition && multiTouchPanPosition) {\r\n const moveDeltaX = multiTouchPanPosition.x - previousMultiTouchPanPosition.x;\r\n const moveDeltaY = multiTouchPanPosition.y - previousMultiTouchPanPosition.y;\r\n this.camera.inertialPanningX += -moveDeltaX / this.panningSensibility;\r\n this.camera.inertialPanningY += moveDeltaY / this.panningSensibility;\r\n }\r\n }\r\n\r\n /**\r\n * Move camera from pinch zoom distances.\r\n * @param previousPinchSquaredDistance\r\n * @param pinchSquaredDistance\r\n */\r\n private _computePinchZoom(previousPinchSquaredDistance: number, pinchSquaredDistance: number): void {\r\n const radius = this.camera.radius || ArcRotateCameraPointersInput.MinimumRadiusForPinch;\r\n if (this.useNaturalPinchZoom) {\r\n this.camera.radius = (radius * Math.sqrt(previousPinchSquaredDistance)) / Math.sqrt(pinchSquaredDistance);\r\n } else if (this.pinchDeltaPercentage) {\r\n this.camera.inertialRadiusOffset += (pinchSquaredDistance - previousPinchSquaredDistance) * 0.001 * radius * this.pinchDeltaPercentage;\r\n } else {\r\n this.camera.inertialRadiusOffset +=\r\n (pinchSquaredDistance - previousPinchSquaredDistance) /\r\n ((this.pinchPrecision * (this.pinchInwards ? 1 : -1) * (this.angularSensibilityX + this.angularSensibilityY)) / 2);\r\n }\r\n }\r\n\r\n /**\r\n * Called on pointer POINTERMOVE event if only a single touch is active.\r\n * @param point current touch point\r\n * @param offsetX offset on X\r\n * @param offsetY offset on Y\r\n */\r\n public onTouch(point: Nullable<PointerTouch>, offsetX: number, offsetY: number): void {\r\n if (this.panningSensibility !== 0 && ((this._ctrlKey && this.camera._useCtrlForPanning) || this._isPanClick)) {\r\n this.camera.inertialPanningX += -offsetX / this.panningSensibility;\r\n this.camera.inertialPanningY += offsetY / this.panningSensibility;\r\n } else {\r\n this.camera.inertialAlphaOffset -= offsetX / this.angularSensibilityX;\r\n this.camera.inertialBetaOffset -= offsetY / this.angularSensibilityY;\r\n }\r\n }\r\n\r\n /**\r\n * Called on pointer POINTERDOUBLETAP event.\r\n */\r\n public onDoubleTap() {\r\n if (this.camera.useInputToRestoreState) {\r\n this.camera.restoreState();\r\n }\r\n }\r\n\r\n /**\r\n * Called on pointer POINTERMOVE event if multiple touches are active.\r\n * @param pointA point A\r\n * @param pointB point B\r\n * @param previousPinchSquaredDistance distance between points in previous pinch\r\n * @param pinchSquaredDistance distance between points in current pinch\r\n * @param previousMultiTouchPanPosition multi-touch position in previous step\r\n * @param multiTouchPanPosition multi-touch position in current step\r\n */\r\n public onMultiTouch(\r\n pointA: Nullable<PointerTouch>,\r\n pointB: Nullable<PointerTouch>,\r\n previousPinchSquaredDistance: number,\r\n pinchSquaredDistance: number,\r\n previousMultiTouchPanPosition: Nullable<PointerTouch>,\r\n multiTouchPanPosition: Nullable<PointerTouch>\r\n ): void {\r\n if (previousPinchSquaredDistance === 0 && previousMultiTouchPanPosition === null) {\r\n // First time this method is called for new pinch.\r\n // Next time this is called there will be a\r\n // previousPinchSquaredDistance and pinchSquaredDistance to compare.\r\n return;\r\n }\r\n if (pinchSquaredDistance === 0 && multiTouchPanPosition === null) {\r\n // Last time this method is called at the end of a pinch.\r\n return;\r\n }\r\n\r\n // Zoom and panning enabled together\r\n if (this.multiTouchPanAndZoom) {\r\n this._computePinchZoom(previousPinchSquaredDistance, pinchSquaredDistance);\r\n this._computeMultiTouchPanning(previousMultiTouchPanPosition, multiTouchPanPosition);\r\n\r\n // Zoom and panning enabled but only one at a time\r\n } else if (this.multiTouchPanning && this.pinchZoom) {\r\n this._twoFingerActivityCount++;\r\n\r\n if (\r\n this._isPinching ||\r\n (this._twoFingerActivityCount < 20 && Math.abs(Math.sqrt(pinchSquaredDistance) - Math.sqrt(previousPinchSquaredDistance)) > this.camera.pinchToPanMaxDistance)\r\n ) {\r\n // Since pinch has not been active long, assume we intend to zoom.\r\n this._computePinchZoom(previousPinchSquaredDistance, pinchSquaredDistance);\r\n\r\n // Since we are pinching, remain pinching on next iteration.\r\n this._isPinching = true;\r\n } else {\r\n // Pause between pinch starting and moving implies not a zoom event. Pan instead.\r\n this._computeMultiTouchPanning(previousMultiTouchPanPosition, multiTouchPanPosition);\r\n }\r\n\r\n // Panning enabled, zoom disabled\r\n } else if (this.multiTouchPanning) {\r\n this._computeMultiTouchPanning(previousMultiTouchPanPosition, multiTouchPanPosition);\r\n\r\n // Zoom enabled, panning disabled\r\n } else if (this.pinchZoom) {\r\n this._computePinchZoom(previousPinchSquaredDistance, pinchSquaredDistance);\r\n }\r\n }\r\n\r\n /**\r\n * Called each time a new POINTERDOWN event occurs. Ie, for each button\r\n * press.\r\n * @param evt Defines the event to track\r\n */\r\n public onButtonDown(evt: IPointerEvent): void {\r\n this._isPanClick = evt.button === this.camera._panningMouseButton;\r\n }\r\n\r\n /**\r\n * Called each time a new POINTERUP event occurs. Ie, for each button\r\n * release.\r\n * @param _evt Defines the event to track\r\n */\r\n public onButtonUp(_evt: IPointerEvent): void {\r\n this._twoFingerActivityCount = 0;\r\n this._isPinching = false;\r\n }\r\n\r\n /**\r\n * Called when window becomes inactive.\r\n */\r\n public onLostFocus(): void {\r\n this._isPanClick = false;\r\n this._twoFingerActivityCount = 0;\r\n this._isPinching = false;\r\n }\r\n}\r\n(<any>CameraInputTypes)[\"ArcRotateCameraPointersInput\"] = ArcRotateCameraPointersInput;\r\n"]}
@@ -116,16 +116,19 @@ export declare class FollowCameraKeyboardMoveInput implements ICameraInput<Follo
116
116
  /**
117
117
  * Check if the pressed modifier keys (Alt/Ctrl/Shift) match those configured to
118
118
  * allow modification of the heightOffset value.
119
+ * @returns true if modifier keys match
119
120
  */
120
121
  private _modifierHeightOffset;
121
122
  /**
122
123
  * Check if the pressed modifier keys (Alt/Ctrl/Shift) match those configured to
123
124
  * allow modification of the rotationOffset value.
125
+ * @returns true if modifier keys match
124
126
  */
125
127
  private _modifierRotationOffset;
126
128
  /**
127
129
  * Check if the pressed modifier keys (Alt/Ctrl/Shift) match those configured to
128
130
  * allow modification of the radius value.
131
+ * @returns true if modifier keys match
129
132
  */
130
133
  private _modifierRadius;
131
134
  }
@@ -206,6 +206,7 @@ export class FollowCameraKeyboardMoveInput {
206
206
  /**
207
207
  * Check if the pressed modifier keys (Alt/Ctrl/Shift) match those configured to
208
208
  * allow modification of the heightOffset value.
209
+ * @returns true if modifier keys match
209
210
  */
210
211
  _modifierHeightOffset() {
211
212
  return (this.keysHeightOffsetModifierAlt === this._altPressed &&
@@ -215,6 +216,7 @@ export class FollowCameraKeyboardMoveInput {
215
216
  /**
216
217
  * Check if the pressed modifier keys (Alt/Ctrl/Shift) match those configured to
217
218
  * allow modification of the rotationOffset value.
219
+ * @returns true if modifier keys match
218
220
  */
219
221
  _modifierRotationOffset() {
220
222
  return (this.keysRotationOffsetModifierAlt === this._altPressed &&
@@ -224,6 +226,7 @@ export class FollowCameraKeyboardMoveInput {
224
226
  /**
225
227
  * Check if the pressed modifier keys (Alt/Ctrl/Shift) match those configured to
226
228
  * allow modification of the radius value.
229
+ * @returns true if modifier keys match
227
230
  */
228
231
  _modifierRadius() {
229
232
  return this.keysRadiusModifierAlt === this._altPressed && this.keysRadiusModifierCtrl === this._ctrlPressed && this.keysRadiusModifierShift === this._shiftPressed;
@@ -1 +1 @@
1
- {"version":3,"file":"followCameraKeyboardMoveInput.js","sourceRoot":"","sources":["../../../../../dev/core/src/Cameras/Inputs/followCameraKeyboardMoveInput.ts"],"names":[],"mappings":"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","sourcesContent":["import type { ICameraInput } from \"../../Cameras/cameraInputsManager\";\r\nimport { CameraInputTypes } from \"../../Cameras/cameraInputsManager\";\r\nimport type { FollowCamera } from \"../../Cameras/followCamera\";\r\nimport { serialize } from \"../../Misc/decorators\";\r\nimport type { Nullable } from \"../../types\";\r\nimport type { Observer } from \"../../Misc/observable\";\r\nimport type { Engine } from \"../../Engines/engine\";\r\nimport type { KeyboardInfo } from \"../../Events/keyboardEvents\";\r\nimport { KeyboardEventTypes } from \"../../Events/keyboardEvents\";\r\nimport type { Scene } from \"../../scene\";\r\nimport { Tools } from \"../../Misc/tools\";\r\n\r\n/**\r\n * Manage the keyboard inputs to control the movement of a follow camera.\r\n * @see https://doc.babylonjs.com/features/featuresDeepDive/cameras/customizingCameraInputs\r\n */\r\nexport class FollowCameraKeyboardMoveInput implements ICameraInput<FollowCamera> {\r\n /**\r\n * Defines the camera the input is attached to.\r\n */\r\n public camera: FollowCamera;\r\n\r\n /**\r\n * Defines the list of key codes associated with the up action (increase heightOffset)\r\n */\r\n @serialize()\r\n public keysHeightOffsetIncr = [38];\r\n\r\n /**\r\n * Defines the list of key codes associated with the down action (decrease heightOffset)\r\n */\r\n @serialize()\r\n public keysHeightOffsetDecr = [40];\r\n\r\n /**\r\n * Defines whether the Alt modifier key is required to move up/down (alter heightOffset)\r\n */\r\n @serialize()\r\n public keysHeightOffsetModifierAlt: boolean = false;\r\n\r\n /**\r\n * Defines whether the Ctrl modifier key is required to move up/down (alter heightOffset)\r\n */\r\n @serialize()\r\n public keysHeightOffsetModifierCtrl: boolean = false;\r\n\r\n /**\r\n * Defines whether the Shift modifier key is required to move up/down (alter heightOffset)\r\n */\r\n @serialize()\r\n public keysHeightOffsetModifierShift: boolean = false;\r\n\r\n /**\r\n * Defines the list of key codes associated with the left action (increase rotationOffset)\r\n */\r\n @serialize()\r\n public keysRotationOffsetIncr = [37];\r\n\r\n /**\r\n * Defines the list of key codes associated with the right action (decrease rotationOffset)\r\n */\r\n @serialize()\r\n public keysRotationOffsetDecr = [39];\r\n\r\n /**\r\n * Defines whether the Alt modifier key is required to move left/right (alter rotationOffset)\r\n */\r\n @serialize()\r\n public keysRotationOffsetModifierAlt: boolean = false;\r\n\r\n /**\r\n * Defines whether the Ctrl modifier key is required to move left/right (alter rotationOffset)\r\n */\r\n @serialize()\r\n public keysRotationOffsetModifierCtrl: boolean = false;\r\n\r\n /**\r\n * Defines whether the Shift modifier key is required to move left/right (alter rotationOffset)\r\n */\r\n @serialize()\r\n public keysRotationOffsetModifierShift: boolean = false;\r\n\r\n /**\r\n * Defines the list of key codes associated with the zoom-in action (decrease radius)\r\n */\r\n @serialize()\r\n public keysRadiusIncr = [40];\r\n\r\n /**\r\n * Defines the list of key codes associated with the zoom-out action (increase radius)\r\n */\r\n @serialize()\r\n public keysRadiusDecr = [38];\r\n\r\n /**\r\n * Defines whether the Alt modifier key is required to zoom in/out (alter radius value)\r\n */\r\n @serialize()\r\n public keysRadiusModifierAlt: boolean = true;\r\n\r\n /**\r\n * Defines whether the Ctrl modifier key is required to zoom in/out (alter radius value)\r\n */\r\n @serialize()\r\n public keysRadiusModifierCtrl: boolean = false;\r\n\r\n /**\r\n * Defines whether the Shift modifier key is required to zoom in/out (alter radius value)\r\n */\r\n @serialize()\r\n public keysRadiusModifierShift: boolean = false;\r\n\r\n /**\r\n * Defines the rate of change of heightOffset.\r\n */\r\n @serialize()\r\n public heightSensibility: number = 1;\r\n\r\n /**\r\n * Defines the rate of change of rotationOffset.\r\n */\r\n @serialize()\r\n public rotationSensibility: number = 1;\r\n\r\n /**\r\n * Defines the rate of change of radius.\r\n */\r\n @serialize()\r\n public radiusSensibility: number = 1;\r\n\r\n private _keys = new Array<number>();\r\n private _ctrlPressed: boolean;\r\n private _altPressed: boolean;\r\n private _shiftPressed: boolean;\r\n private _onCanvasBlurObserver: Nullable<Observer<Engine>>;\r\n private _onKeyboardObserver: Nullable<Observer<KeyboardInfo>>;\r\n private _engine: Engine;\r\n private _scene: Scene;\r\n\r\n /**\r\n * Attach the input controls to a specific dom element to get the input from.\r\n * @param noPreventDefault Defines whether event caught by the controls should call preventdefault() (https://developer.mozilla.org/en-US/docs/Web/API/Event/preventDefault)\r\n */\r\n public attachControl(noPreventDefault?: boolean): void {\r\n // eslint-disable-next-line prefer-rest-params\r\n noPreventDefault = Tools.BackCompatCameraNoPreventDefault(arguments);\r\n if (this._onCanvasBlurObserver) {\r\n return;\r\n }\r\n\r\n this._scene = this.camera.getScene();\r\n this._engine = this._scene.getEngine();\r\n\r\n this._onCanvasBlurObserver = this._engine.onCanvasBlurObservable.add(() => {\r\n this._keys.length = 0;\r\n });\r\n\r\n this._onKeyboardObserver = this._scene.onKeyboardObservable.add((info) => {\r\n const evt = info.event;\r\n if (!evt.metaKey) {\r\n if (info.type === KeyboardEventTypes.KEYDOWN) {\r\n this._ctrlPressed = evt.ctrlKey;\r\n this._altPressed = evt.altKey;\r\n this._shiftPressed = evt.shiftKey;\r\n\r\n if (\r\n this.keysHeightOffsetIncr.indexOf(evt.keyCode) !== -1 ||\r\n this.keysHeightOffsetDecr.indexOf(evt.keyCode) !== -1 ||\r\n this.keysRotationOffsetIncr.indexOf(evt.keyCode) !== -1 ||\r\n this.keysRotationOffsetDecr.indexOf(evt.keyCode) !== -1 ||\r\n this.keysRadiusIncr.indexOf(evt.keyCode) !== -1 ||\r\n this.keysRadiusDecr.indexOf(evt.keyCode) !== -1\r\n ) {\r\n const index = this._keys.indexOf(evt.keyCode);\r\n\r\n if (index === -1) {\r\n this._keys.push(evt.keyCode);\r\n }\r\n\r\n if (evt.preventDefault) {\r\n if (!noPreventDefault) {\r\n evt.preventDefault();\r\n }\r\n }\r\n }\r\n } else {\r\n if (\r\n this.keysHeightOffsetIncr.indexOf(evt.keyCode) !== -1 ||\r\n this.keysHeightOffsetDecr.indexOf(evt.keyCode) !== -1 ||\r\n this.keysRotationOffsetIncr.indexOf(evt.keyCode) !== -1 ||\r\n this.keysRotationOffsetDecr.indexOf(evt.keyCode) !== -1 ||\r\n this.keysRadiusIncr.indexOf(evt.keyCode) !== -1 ||\r\n this.keysRadiusDecr.indexOf(evt.keyCode) !== -1\r\n ) {\r\n const index = this._keys.indexOf(evt.keyCode);\r\n\r\n if (index >= 0) {\r\n this._keys.splice(index, 1);\r\n }\r\n\r\n if (evt.preventDefault) {\r\n if (!noPreventDefault) {\r\n evt.preventDefault();\r\n }\r\n }\r\n }\r\n }\r\n }\r\n });\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 if (this._scene) {\r\n if (this._onKeyboardObserver) {\r\n this._scene.onKeyboardObservable.remove(this._onKeyboardObserver);\r\n }\r\n if (this._onCanvasBlurObserver) {\r\n this._engine.onCanvasBlurObservable.remove(this._onCanvasBlurObserver);\r\n }\r\n this._onKeyboardObserver = null;\r\n this._onCanvasBlurObserver = null;\r\n }\r\n\r\n this._keys.length = 0;\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(): void {\r\n if (this._onKeyboardObserver) {\r\n this._keys.forEach((keyCode) => {\r\n if (this.keysHeightOffsetIncr.indexOf(keyCode) !== -1 && this._modifierHeightOffset()) {\r\n this.camera.heightOffset += this.heightSensibility;\r\n } else if (this.keysHeightOffsetDecr.indexOf(keyCode) !== -1 && this._modifierHeightOffset()) {\r\n this.camera.heightOffset -= this.heightSensibility;\r\n } else if (this.keysRotationOffsetIncr.indexOf(keyCode) !== -1 && this._modifierRotationOffset()) {\r\n this.camera.rotationOffset += this.rotationSensibility;\r\n this.camera.rotationOffset %= 360;\r\n } else if (this.keysRotationOffsetDecr.indexOf(keyCode) !== -1 && this._modifierRotationOffset()) {\r\n this.camera.rotationOffset -= this.rotationSensibility;\r\n this.camera.rotationOffset %= 360;\r\n } else if (this.keysRadiusIncr.indexOf(keyCode) !== -1 && this._modifierRadius()) {\r\n this.camera.radius += this.radiusSensibility;\r\n } else if (this.keysRadiusDecr.indexOf(keyCode) !== -1 && this._modifierRadius()) {\r\n this.camera.radius -= this.radiusSensibility;\r\n }\r\n });\r\n }\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 \"FollowCameraKeyboardMoveInput\";\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 \"keyboard\";\r\n }\r\n\r\n /**\r\n * Check if the pressed modifier keys (Alt/Ctrl/Shift) match those configured to\r\n * allow modification of the heightOffset value.\r\n */\r\n private _modifierHeightOffset(): boolean {\r\n return (\r\n this.keysHeightOffsetModifierAlt === this._altPressed &&\r\n this.keysHeightOffsetModifierCtrl === this._ctrlPressed &&\r\n this.keysHeightOffsetModifierShift === this._shiftPressed\r\n );\r\n }\r\n\r\n /**\r\n * Check if the pressed modifier keys (Alt/Ctrl/Shift) match those configured to\r\n * allow modification of the rotationOffset value.\r\n */\r\n private _modifierRotationOffset(): boolean {\r\n return (\r\n this.keysRotationOffsetModifierAlt === this._altPressed &&\r\n this.keysRotationOffsetModifierCtrl === this._ctrlPressed &&\r\n this.keysRotationOffsetModifierShift === this._shiftPressed\r\n );\r\n }\r\n\r\n /**\r\n * Check if the pressed modifier keys (Alt/Ctrl/Shift) match those configured to\r\n * allow modification of the radius value.\r\n */\r\n private _modifierRadius(): boolean {\r\n return this.keysRadiusModifierAlt === this._altPressed && this.keysRadiusModifierCtrl === this._ctrlPressed && this.keysRadiusModifierShift === this._shiftPressed;\r\n }\r\n}\r\n\r\n(<any>CameraInputTypes)[\"FollowCameraKeyboardMoveInput\"] = FollowCameraKeyboardMoveInput;\r\n"]}
1
+ {"version":3,"file":"followCameraKeyboardMoveInput.js","sourceRoot":"","sources":["../../../../../dev/core/src/Cameras/Inputs/followCameraKeyboardMoveInput.ts"],"names":[],"mappings":"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","sourcesContent":["import type { ICameraInput } from \"../../Cameras/cameraInputsManager\";\r\nimport { CameraInputTypes } from \"../../Cameras/cameraInputsManager\";\r\nimport type { FollowCamera } from \"../../Cameras/followCamera\";\r\nimport { serialize } from \"../../Misc/decorators\";\r\nimport type { Nullable } from \"../../types\";\r\nimport type { Observer } from \"../../Misc/observable\";\r\nimport type { Engine } from \"../../Engines/engine\";\r\nimport type { KeyboardInfo } from \"../../Events/keyboardEvents\";\r\nimport { KeyboardEventTypes } from \"../../Events/keyboardEvents\";\r\nimport type { Scene } from \"../../scene\";\r\nimport { Tools } from \"../../Misc/tools\";\r\n\r\n/**\r\n * Manage the keyboard inputs to control the movement of a follow camera.\r\n * @see https://doc.babylonjs.com/features/featuresDeepDive/cameras/customizingCameraInputs\r\n */\r\nexport class FollowCameraKeyboardMoveInput implements ICameraInput<FollowCamera> {\r\n /**\r\n * Defines the camera the input is attached to.\r\n */\r\n public camera: FollowCamera;\r\n\r\n /**\r\n * Defines the list of key codes associated with the up action (increase heightOffset)\r\n */\r\n @serialize()\r\n public keysHeightOffsetIncr = [38];\r\n\r\n /**\r\n * Defines the list of key codes associated with the down action (decrease heightOffset)\r\n */\r\n @serialize()\r\n public keysHeightOffsetDecr = [40];\r\n\r\n /**\r\n * Defines whether the Alt modifier key is required to move up/down (alter heightOffset)\r\n */\r\n @serialize()\r\n public keysHeightOffsetModifierAlt: boolean = false;\r\n\r\n /**\r\n * Defines whether the Ctrl modifier key is required to move up/down (alter heightOffset)\r\n */\r\n @serialize()\r\n public keysHeightOffsetModifierCtrl: boolean = false;\r\n\r\n /**\r\n * Defines whether the Shift modifier key is required to move up/down (alter heightOffset)\r\n */\r\n @serialize()\r\n public keysHeightOffsetModifierShift: boolean = false;\r\n\r\n /**\r\n * Defines the list of key codes associated with the left action (increase rotationOffset)\r\n */\r\n @serialize()\r\n public keysRotationOffsetIncr = [37];\r\n\r\n /**\r\n * Defines the list of key codes associated with the right action (decrease rotationOffset)\r\n */\r\n @serialize()\r\n public keysRotationOffsetDecr = [39];\r\n\r\n /**\r\n * Defines whether the Alt modifier key is required to move left/right (alter rotationOffset)\r\n */\r\n @serialize()\r\n public keysRotationOffsetModifierAlt: boolean = false;\r\n\r\n /**\r\n * Defines whether the Ctrl modifier key is required to move left/right (alter rotationOffset)\r\n */\r\n @serialize()\r\n public keysRotationOffsetModifierCtrl: boolean = false;\r\n\r\n /**\r\n * Defines whether the Shift modifier key is required to move left/right (alter rotationOffset)\r\n */\r\n @serialize()\r\n public keysRotationOffsetModifierShift: boolean = false;\r\n\r\n /**\r\n * Defines the list of key codes associated with the zoom-in action (decrease radius)\r\n */\r\n @serialize()\r\n public keysRadiusIncr = [40];\r\n\r\n /**\r\n * Defines the list of key codes associated with the zoom-out action (increase radius)\r\n */\r\n @serialize()\r\n public keysRadiusDecr = [38];\r\n\r\n /**\r\n * Defines whether the Alt modifier key is required to zoom in/out (alter radius value)\r\n */\r\n @serialize()\r\n public keysRadiusModifierAlt: boolean = true;\r\n\r\n /**\r\n * Defines whether the Ctrl modifier key is required to zoom in/out (alter radius value)\r\n */\r\n @serialize()\r\n public keysRadiusModifierCtrl: boolean = false;\r\n\r\n /**\r\n * Defines whether the Shift modifier key is required to zoom in/out (alter radius value)\r\n */\r\n @serialize()\r\n public keysRadiusModifierShift: boolean = false;\r\n\r\n /**\r\n * Defines the rate of change of heightOffset.\r\n */\r\n @serialize()\r\n public heightSensibility: number = 1;\r\n\r\n /**\r\n * Defines the rate of change of rotationOffset.\r\n */\r\n @serialize()\r\n public rotationSensibility: number = 1;\r\n\r\n /**\r\n * Defines the rate of change of radius.\r\n */\r\n @serialize()\r\n public radiusSensibility: number = 1;\r\n\r\n private _keys = new Array<number>();\r\n private _ctrlPressed: boolean;\r\n private _altPressed: boolean;\r\n private _shiftPressed: boolean;\r\n private _onCanvasBlurObserver: Nullable<Observer<Engine>>;\r\n private _onKeyboardObserver: Nullable<Observer<KeyboardInfo>>;\r\n private _engine: Engine;\r\n private _scene: Scene;\r\n\r\n /**\r\n * Attach the input controls to a specific dom element to get the input from.\r\n * @param noPreventDefault Defines whether event caught by the controls should call preventdefault() (https://developer.mozilla.org/en-US/docs/Web/API/Event/preventDefault)\r\n */\r\n public attachControl(noPreventDefault?: boolean): void {\r\n // eslint-disable-next-line prefer-rest-params\r\n noPreventDefault = Tools.BackCompatCameraNoPreventDefault(arguments);\r\n if (this._onCanvasBlurObserver) {\r\n return;\r\n }\r\n\r\n this._scene = this.camera.getScene();\r\n this._engine = this._scene.getEngine();\r\n\r\n this._onCanvasBlurObserver = this._engine.onCanvasBlurObservable.add(() => {\r\n this._keys.length = 0;\r\n });\r\n\r\n this._onKeyboardObserver = this._scene.onKeyboardObservable.add((info) => {\r\n const evt = info.event;\r\n if (!evt.metaKey) {\r\n if (info.type === KeyboardEventTypes.KEYDOWN) {\r\n this._ctrlPressed = evt.ctrlKey;\r\n this._altPressed = evt.altKey;\r\n this._shiftPressed = evt.shiftKey;\r\n\r\n if (\r\n this.keysHeightOffsetIncr.indexOf(evt.keyCode) !== -1 ||\r\n this.keysHeightOffsetDecr.indexOf(evt.keyCode) !== -1 ||\r\n this.keysRotationOffsetIncr.indexOf(evt.keyCode) !== -1 ||\r\n this.keysRotationOffsetDecr.indexOf(evt.keyCode) !== -1 ||\r\n this.keysRadiusIncr.indexOf(evt.keyCode) !== -1 ||\r\n this.keysRadiusDecr.indexOf(evt.keyCode) !== -1\r\n ) {\r\n const index = this._keys.indexOf(evt.keyCode);\r\n\r\n if (index === -1) {\r\n this._keys.push(evt.keyCode);\r\n }\r\n\r\n if (evt.preventDefault) {\r\n if (!noPreventDefault) {\r\n evt.preventDefault();\r\n }\r\n }\r\n }\r\n } else {\r\n if (\r\n this.keysHeightOffsetIncr.indexOf(evt.keyCode) !== -1 ||\r\n this.keysHeightOffsetDecr.indexOf(evt.keyCode) !== -1 ||\r\n this.keysRotationOffsetIncr.indexOf(evt.keyCode) !== -1 ||\r\n this.keysRotationOffsetDecr.indexOf(evt.keyCode) !== -1 ||\r\n this.keysRadiusIncr.indexOf(evt.keyCode) !== -1 ||\r\n this.keysRadiusDecr.indexOf(evt.keyCode) !== -1\r\n ) {\r\n const index = this._keys.indexOf(evt.keyCode);\r\n\r\n if (index >= 0) {\r\n this._keys.splice(index, 1);\r\n }\r\n\r\n if (evt.preventDefault) {\r\n if (!noPreventDefault) {\r\n evt.preventDefault();\r\n }\r\n }\r\n }\r\n }\r\n }\r\n });\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 if (this._scene) {\r\n if (this._onKeyboardObserver) {\r\n this._scene.onKeyboardObservable.remove(this._onKeyboardObserver);\r\n }\r\n if (this._onCanvasBlurObserver) {\r\n this._engine.onCanvasBlurObservable.remove(this._onCanvasBlurObserver);\r\n }\r\n this._onKeyboardObserver = null;\r\n this._onCanvasBlurObserver = null;\r\n }\r\n\r\n this._keys.length = 0;\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(): void {\r\n if (this._onKeyboardObserver) {\r\n this._keys.forEach((keyCode) => {\r\n if (this.keysHeightOffsetIncr.indexOf(keyCode) !== -1 && this._modifierHeightOffset()) {\r\n this.camera.heightOffset += this.heightSensibility;\r\n } else if (this.keysHeightOffsetDecr.indexOf(keyCode) !== -1 && this._modifierHeightOffset()) {\r\n this.camera.heightOffset -= this.heightSensibility;\r\n } else if (this.keysRotationOffsetIncr.indexOf(keyCode) !== -1 && this._modifierRotationOffset()) {\r\n this.camera.rotationOffset += this.rotationSensibility;\r\n this.camera.rotationOffset %= 360;\r\n } else if (this.keysRotationOffsetDecr.indexOf(keyCode) !== -1 && this._modifierRotationOffset()) {\r\n this.camera.rotationOffset -= this.rotationSensibility;\r\n this.camera.rotationOffset %= 360;\r\n } else if (this.keysRadiusIncr.indexOf(keyCode) !== -1 && this._modifierRadius()) {\r\n this.camera.radius += this.radiusSensibility;\r\n } else if (this.keysRadiusDecr.indexOf(keyCode) !== -1 && this._modifierRadius()) {\r\n this.camera.radius -= this.radiusSensibility;\r\n }\r\n });\r\n }\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 \"FollowCameraKeyboardMoveInput\";\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 \"keyboard\";\r\n }\r\n\r\n /**\r\n * Check if the pressed modifier keys (Alt/Ctrl/Shift) match those configured to\r\n * allow modification of the heightOffset value.\r\n * @returns true if modifier keys match\r\n */\r\n private _modifierHeightOffset(): boolean {\r\n return (\r\n this.keysHeightOffsetModifierAlt === this._altPressed &&\r\n this.keysHeightOffsetModifierCtrl === this._ctrlPressed &&\r\n this.keysHeightOffsetModifierShift === this._shiftPressed\r\n );\r\n }\r\n\r\n /**\r\n * Check if the pressed modifier keys (Alt/Ctrl/Shift) match those configured to\r\n * allow modification of the rotationOffset value.\r\n * @returns true if modifier keys match\r\n */\r\n private _modifierRotationOffset(): boolean {\r\n return (\r\n this.keysRotationOffsetModifierAlt === this._altPressed &&\r\n this.keysRotationOffsetModifierCtrl === this._ctrlPressed &&\r\n this.keysRotationOffsetModifierShift === this._shiftPressed\r\n );\r\n }\r\n\r\n /**\r\n * Check if the pressed modifier keys (Alt/Ctrl/Shift) match those configured to\r\n * allow modification of the radius value.\r\n * @returns true if modifier keys match\r\n */\r\n private _modifierRadius(): boolean {\r\n return this.keysRadiusModifierAlt === this._altPressed && this.keysRadiusModifierCtrl === this._ctrlPressed && this.keysRadiusModifierShift === this._shiftPressed;\r\n }\r\n}\r\n\r\n(<any>CameraInputTypes)[\"FollowCameraKeyboardMoveInput\"] = FollowCameraKeyboardMoveInput;\r\n"]}
@@ -439,6 +439,8 @@ export declare class ArcRotateCamera extends TargetCamera {
439
439
  /**
440
440
  * @override
441
441
  * Override Camera.createRigCamera
442
+ * @param name the name of the camera
443
+ * @param cameraIndex the index of the camera in the rig cameras array
442
444
  */
443
445
  createRigCamera(name: string, cameraIndex: number): Camera;
444
446
  /**
@@ -963,6 +963,8 @@ export class ArcRotateCamera extends TargetCamera {
963
963
  /**
964
964
  * @override
965
965
  * Override Camera.createRigCamera
966
+ * @param name the name of the camera
967
+ * @param cameraIndex the index of the camera in the rig cameras array
966
968
  */
967
969
  createRigCamera(name, cameraIndex) {
968
970
  let alphaShift = 0;