@onerjs/core 8.52.8 → 8.53.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 (1063) hide show
  1. package/Actions/actionManager.d.ts +1 -1
  2. package/Actions/actionManager.js +8 -5
  3. package/Actions/actionManager.js.map +1 -1
  4. package/Animations/animatable.core.d.ts +1 -1
  5. package/Animations/animatable.core.js +2 -2
  6. package/Animations/animatable.core.js.map +1 -1
  7. package/Animations/animationPropertiesOverride.js +1 -1
  8. package/Animations/animationPropertiesOverride.js.map +1 -1
  9. package/Animations/animatorAvatar.d.ts +2 -2
  10. package/Animations/animatorAvatar.js +3 -3
  11. package/Animations/animatorAvatar.js.map +1 -1
  12. package/Animations/pathCursor.d.ts +1 -1
  13. package/Animations/pathCursor.js +1 -1
  14. package/Animations/pathCursor.js.map +1 -1
  15. package/Animations/runtimeAnimation.d.ts +1 -1
  16. package/Animations/runtimeAnimation.js +2 -2
  17. package/Animations/runtimeAnimation.js.map +1 -1
  18. package/Audio/analyser.js +1 -1
  19. package/Audio/analyser.js.map +1 -1
  20. package/AudioV2/abstractAudio/components/spatialAudioAttacherComponent.js +1 -1
  21. package/AudioV2/abstractAudio/components/spatialAudioAttacherComponent.js.map +1 -1
  22. package/AudioV2/abstractAudio/subNodes/audioAnalyzerSubNode.d.ts +2 -0
  23. package/AudioV2/abstractAudio/subNodes/audioAnalyzerSubNode.js.map +1 -1
  24. package/AudioV2/abstractAudio/subProperties/abstractAudioAnalyzer.d.ts +13 -3
  25. package/AudioV2/abstractAudio/subProperties/abstractAudioAnalyzer.js +16 -0
  26. package/AudioV2/abstractAudio/subProperties/abstractAudioAnalyzer.js.map +1 -1
  27. package/AudioV2/abstractAudio/subProperties/abstractSpatialAudio.d.ts +1 -1
  28. package/AudioV2/abstractAudio/subProperties/abstractSpatialAudio.js +1 -1
  29. package/AudioV2/abstractAudio/subProperties/abstractSpatialAudio.js.map +1 -1
  30. package/AudioV2/abstractAudio/subProperties/abstractSpatialAudioListener.d.ts +1 -1
  31. package/AudioV2/abstractAudio/subProperties/abstractSpatialAudioListener.js +1 -1
  32. package/AudioV2/abstractAudio/subProperties/abstractSpatialAudioListener.js.map +1 -1
  33. package/AudioV2/abstractAudio/subProperties/audioAnalyzer.d.ts +4 -0
  34. package/AudioV2/abstractAudio/subProperties/audioAnalyzer.js +22 -0
  35. package/AudioV2/abstractAudio/subProperties/audioAnalyzer.js.map +1 -1
  36. package/AudioV2/webAudio/subNodes/spatialWebAudioSubNode.d.ts +1 -1
  37. package/AudioV2/webAudio/subNodes/spatialWebAudioSubNode.js +1 -1
  38. package/AudioV2/webAudio/subNodes/spatialWebAudioSubNode.js.map +1 -1
  39. package/AudioV2/webAudio/subNodes/webAudioAnalyzerSubNode.d.ts +6 -0
  40. package/AudioV2/webAudio/subNodes/webAudioAnalyzerSubNode.js +22 -5
  41. package/AudioV2/webAudio/subNodes/webAudioAnalyzerSubNode.js.map +1 -1
  42. package/AudioV2/webAudio/subProperties/spatialWebAudioListener.js +1 -1
  43. package/AudioV2/webAudio/subProperties/spatialWebAudioListener.js.map +1 -1
  44. package/AudioV2/webAudio/webAudioStreamingSound.js +1 -1
  45. package/AudioV2/webAudio/webAudioStreamingSound.js.map +1 -1
  46. package/BakedVertexAnimation/bakedVertexAnimationManager.d.ts +1 -1
  47. package/BakedVertexAnimation/bakedVertexAnimationManager.js +1 -1
  48. package/BakedVertexAnimation/bakedVertexAnimationManager.js.map +1 -1
  49. package/BakedVertexAnimation/vertexAnimationBaker.js +1 -1
  50. package/BakedVertexAnimation/vertexAnimationBaker.js.map +1 -1
  51. package/Behaviors/Cameras/bouncingBehavior.js +1 -1
  52. package/Behaviors/Cameras/bouncingBehavior.js.map +1 -1
  53. package/Behaviors/Cameras/framingBehavior.d.ts +1 -1
  54. package/Behaviors/Cameras/framingBehavior.js +2 -2
  55. package/Behaviors/Cameras/framingBehavior.js.map +1 -1
  56. package/Behaviors/Cameras/interpolatingBehavior.d.ts +13 -1
  57. package/Behaviors/Cameras/interpolatingBehavior.js +13 -1
  58. package/Behaviors/Cameras/interpolatingBehavior.js.map +1 -1
  59. package/Behaviors/Meshes/attachToBoxBehavior.js +1 -1
  60. package/Behaviors/Meshes/attachToBoxBehavior.js.map +1 -1
  61. package/Behaviors/Meshes/baseSixDofDragBehavior.d.ts +3 -3
  62. package/Behaviors/Meshes/baseSixDofDragBehavior.js +4 -4
  63. package/Behaviors/Meshes/baseSixDofDragBehavior.js.map +1 -1
  64. package/Behaviors/Meshes/followBehavior.js +1 -1
  65. package/Behaviors/Meshes/followBehavior.js.map +1 -1
  66. package/Behaviors/Meshes/handConstraintBehavior.js +2 -2
  67. package/Behaviors/Meshes/handConstraintBehavior.js.map +1 -1
  68. package/Behaviors/Meshes/multiPointerScaleBehavior.js +1 -1
  69. package/Behaviors/Meshes/multiPointerScaleBehavior.js.map +1 -1
  70. package/Behaviors/Meshes/pointerDragBehavior.d.ts +3 -3
  71. package/Behaviors/Meshes/pointerDragBehavior.js +5 -5
  72. package/Behaviors/Meshes/pointerDragBehavior.js.map +1 -1
  73. package/Behaviors/Meshes/sixDofDragBehavior.d.ts +1 -1
  74. package/Behaviors/Meshes/sixDofDragBehavior.js +2 -2
  75. package/Behaviors/Meshes/sixDofDragBehavior.js.map +1 -1
  76. package/Behaviors/Meshes/surfaceMagnetismBehavior.js +1 -1
  77. package/Behaviors/Meshes/surfaceMagnetismBehavior.js.map +1 -1
  78. package/Bones/boneIKController.d.ts +1 -1
  79. package/Bones/boneIKController.js +1 -1
  80. package/Bones/boneIKController.js.map +1 -1
  81. package/Bones/boneLookController.d.ts +1 -1
  82. package/Bones/boneLookController.js +1 -1
  83. package/Bones/boneLookController.js.map +1 -1
  84. package/Bones/skeleton.d.ts +2 -2
  85. package/Bones/skeleton.functions.d.ts +1 -1
  86. package/Bones/skeleton.functions.js +3 -3
  87. package/Bones/skeleton.functions.js.map +1 -1
  88. package/Bones/skeleton.js +3 -4
  89. package/Bones/skeleton.js.map +1 -1
  90. package/Buffers/buffer.align.pure.js +6 -0
  91. package/Buffers/buffer.align.pure.js.map +1 -1
  92. package/Buffers/buffer.nonFloatVertexBuffers.js +2 -1
  93. package/Buffers/buffer.nonFloatVertexBuffers.js.map +1 -1
  94. package/Buffers/buffer.pure.d.ts +8 -0
  95. package/Buffers/buffer.pure.js +31 -2
  96. package/Buffers/buffer.pure.js.map +1 -1
  97. package/Buffers/bufferUtils.js +17 -5
  98. package/Buffers/bufferUtils.js.map +1 -1
  99. package/Cameras/Inputs/BaseCameraMouseWheelInput.js +1 -1
  100. package/Cameras/Inputs/BaseCameraMouseWheelInput.js.map +1 -1
  101. package/Cameras/Inputs/BaseCameraPointersInput.js +1 -1
  102. package/Cameras/Inputs/BaseCameraPointersInput.js.map +1 -1
  103. package/Cameras/Inputs/arcRotateCameraKeyboardMoveInput.js +1 -1
  104. package/Cameras/Inputs/arcRotateCameraKeyboardMoveInput.js.map +1 -1
  105. package/Cameras/Inputs/arcRotateCameraMouseWheelInput.js +2 -2
  106. package/Cameras/Inputs/arcRotateCameraMouseWheelInput.js.map +1 -1
  107. package/Cameras/Inputs/flyCameraKeyboardInput.js +2 -2
  108. package/Cameras/Inputs/flyCameraKeyboardInput.js.map +1 -1
  109. package/Cameras/Inputs/flyCameraMouseInput.js +2 -2
  110. package/Cameras/Inputs/flyCameraMouseInput.js.map +1 -1
  111. package/Cameras/Inputs/followCameraKeyboardMoveInput.js +1 -1
  112. package/Cameras/Inputs/followCameraKeyboardMoveInput.js.map +1 -1
  113. package/Cameras/Inputs/followCameraMouseWheelInput.js +1 -1
  114. package/Cameras/Inputs/followCameraMouseWheelInput.js.map +1 -1
  115. package/Cameras/Inputs/freeCameraGamepadInput.js +1 -1
  116. package/Cameras/Inputs/freeCameraGamepadInput.js.map +1 -1
  117. package/Cameras/Inputs/freeCameraKeyboardMoveInput.js +2 -2
  118. package/Cameras/Inputs/freeCameraKeyboardMoveInput.js.map +1 -1
  119. package/Cameras/Inputs/freeCameraMouseInput.js +1 -1
  120. package/Cameras/Inputs/freeCameraMouseInput.js.map +1 -1
  121. package/Cameras/Inputs/freeCameraMouseWheelInput.js +1 -1
  122. package/Cameras/Inputs/freeCameraMouseWheelInput.js.map +1 -1
  123. package/Cameras/Inputs/freeCameraTouchInput.js +2 -2
  124. package/Cameras/Inputs/freeCameraTouchInput.js.map +1 -1
  125. package/Cameras/Inputs/geospatialCameraKeyboardInput.js +1 -1
  126. package/Cameras/Inputs/geospatialCameraKeyboardInput.js.map +1 -1
  127. package/Cameras/Limits/geospatialLimits.d.ts +1 -1
  128. package/Cameras/Limits/geospatialLimits.js +1 -1
  129. package/Cameras/Limits/geospatialLimits.js.map +1 -1
  130. package/Cameras/RigModes/stereoscopicAnaglyphRigMode.js +2 -2
  131. package/Cameras/RigModes/stereoscopicAnaglyphRigMode.js.map +1 -1
  132. package/Cameras/RigModes/stereoscopicRigMode.d.ts +1 -1
  133. package/Cameras/RigModes/stereoscopicRigMode.js +3 -3
  134. package/Cameras/RigModes/stereoscopicRigMode.js.map +1 -1
  135. package/Cameras/RigModes/vrRigMode.js +2 -2
  136. package/Cameras/RigModes/vrRigMode.js.map +1 -1
  137. package/Cameras/Stereoscopic/stereoscopicScreenUniversalCamera.d.ts +3 -3
  138. package/Cameras/Stereoscopic/stereoscopicScreenUniversalCamera.js +5 -5
  139. package/Cameras/Stereoscopic/stereoscopicScreenUniversalCamera.js.map +1 -1
  140. package/Cameras/VR/vrCameraMetrics.d.ts +1 -1
  141. package/Cameras/VR/vrCameraMetrics.js +1 -1
  142. package/Cameras/VR/vrCameraMetrics.js.map +1 -1
  143. package/Cameras/cameraInputsManager.d.ts +1 -1
  144. package/Cameras/cameraInputsManager.js +1 -1
  145. package/Cameras/cameraInputsManager.js.map +1 -1
  146. package/Collisions/collider.d.ts +1 -1
  147. package/Collisions/collider.js +1 -1
  148. package/Collisions/collider.js.map +1 -1
  149. package/Collisions/gpuPicker.d.ts +1 -1
  150. package/Collisions/gpuPicker.js +5 -5
  151. package/Collisions/gpuPicker.js.map +1 -1
  152. package/Collisions/meshCollisionData.d.ts +1 -1
  153. package/Collisions/meshCollisionData.js +1 -1
  154. package/Collisions/meshCollisionData.js.map +1 -1
  155. package/Collisions/pickingInfo.d.ts +1 -1
  156. package/Collisions/pickingInfo.js +2 -2
  157. package/Collisions/pickingInfo.js.map +1 -1
  158. package/Compute/computeEffect.d.ts +6 -0
  159. package/Compute/computeEffect.js +3 -0
  160. package/Compute/computeEffect.js.map +1 -1
  161. package/Compute/computeShader.pure.d.ts +4 -0
  162. package/Compute/computeShader.pure.js +1 -0
  163. package/Compute/computeShader.pure.js.map +1 -1
  164. package/Culling/Octrees/octreeBlock.d.ts +1 -1
  165. package/Culling/Octrees/octreeBlock.js +1 -1
  166. package/Culling/Octrees/octreeBlock.js.map +1 -1
  167. package/Culling/boundingBox.d.ts +1 -1
  168. package/Culling/boundingBox.js +1 -1
  169. package/Culling/boundingBox.js.map +1 -1
  170. package/Culling/boundingInfo.d.ts +1 -1
  171. package/Culling/boundingInfo.js +1 -1
  172. package/Culling/boundingInfo.js.map +1 -1
  173. package/Culling/boundingSphere.d.ts +1 -1
  174. package/Culling/boundingSphere.js +1 -1
  175. package/Culling/boundingSphere.js.map +1 -1
  176. package/Culling/ray.core.d.ts +1 -1
  177. package/Culling/ray.core.js +1 -1
  178. package/Culling/ray.core.js.map +1 -1
  179. package/Debug/axesViewer.d.ts +1 -1
  180. package/Debug/axesViewer.js +3 -3
  181. package/Debug/axesViewer.js.map +1 -1
  182. package/Debug/boneAxesViewer.d.ts +1 -1
  183. package/Debug/boneAxesViewer.js +1 -1
  184. package/Debug/boneAxesViewer.js.map +1 -1
  185. package/Debug/directionalLightFrustumViewer.d.ts +1 -1
  186. package/Debug/directionalLightFrustumViewer.js +6 -6
  187. package/Debug/directionalLightFrustumViewer.js.map +1 -1
  188. package/Debug/rayHelper.d.ts +1 -1
  189. package/Debug/rayHelper.js +2 -2
  190. package/Debug/rayHelper.js.map +1 -1
  191. package/Debug/skeletonViewer.d.ts +2 -2
  192. package/Debug/skeletonViewer.js +10 -10
  193. package/Debug/skeletonViewer.js.map +1 -1
  194. package/DeviceInput/internalDeviceSourceManager.d.ts +1 -1
  195. package/DeviceInput/internalDeviceSourceManager.js +0 -1
  196. package/DeviceInput/internalDeviceSourceManager.js.map +1 -1
  197. package/DeviceInput/webDeviceInputSystem.js +1 -1
  198. package/DeviceInput/webDeviceInputSystem.js.map +1 -1
  199. package/Engines/Extensions/engine.views.d.ts +1 -1
  200. package/Engines/Extensions/engine.views.js +1 -1
  201. package/Engines/Extensions/engine.views.js.map +1 -1
  202. package/Engines/Native/nativeHelpers.js +4 -1
  203. package/Engines/Native/nativeHelpers.js.map +1 -1
  204. package/Engines/WebGPU/Extensions/engine.computeShader.pure.js +154 -2
  205. package/Engines/WebGPU/Extensions/engine.computeShader.pure.js.map +1 -1
  206. package/Engines/WebGPU/webgpuCacheRenderPipeline.d.ts +1 -1
  207. package/Engines/WebGPU/webgpuCacheRenderPipeline.js +11 -1
  208. package/Engines/WebGPU/webgpuCacheRenderPipeline.js.map +1 -1
  209. package/Engines/WebGPU/webgpuComputeContext.d.ts +1 -1
  210. package/Engines/WebGPU/webgpuComputeContext.js.map +1 -1
  211. package/Engines/WebGPU/webgpuTintWASM.js +1 -1
  212. package/Engines/WebGPU/webgpuTintWASM.js.map +1 -1
  213. package/Engines/abstractEngine.pure.d.ts +7 -1
  214. package/Engines/abstractEngine.pure.js +34 -4
  215. package/Engines/abstractEngine.pure.js.map +1 -1
  216. package/Engines/constants.d.ts +4 -0
  217. package/Engines/constants.js +4 -0
  218. package/Engines/constants.js.map +1 -1
  219. package/Engines/engine.pure.d.ts +0 -7
  220. package/Engines/engine.pure.js +0 -34
  221. package/Engines/engine.pure.js.map +1 -1
  222. package/Engines/engineFactory.d.ts +2 -2
  223. package/Engines/engineFactory.js +3 -3
  224. package/Engines/engineFactory.js.map +1 -1
  225. package/Engines/thinNativeEngine.pure.js +2 -2
  226. package/Engines/thinNativeEngine.pure.js.map +1 -1
  227. package/Events/pointerEvents.d.ts +1 -1
  228. package/Events/pointerEvents.js +1 -1
  229. package/Events/pointerEvents.js.map +1 -1
  230. package/FlowGraph/Blocks/Data/Utils/flowGraphCodeExecutionBlock.js +1 -1
  231. package/FlowGraph/Blocks/Data/Utils/flowGraphCodeExecutionBlock.js.map +1 -1
  232. package/FlowGraph/Blocks/Data/flowGraphCachedOperationBlock.d.ts +1 -1
  233. package/FlowGraph/Blocks/Data/flowGraphCachedOperationBlock.js +1 -1
  234. package/FlowGraph/Blocks/Data/flowGraphCachedOperationBlock.js.map +1 -1
  235. package/FlowGraph/Blocks/Event/flowGraphKeyboardEventBlock.js +1 -1
  236. package/FlowGraph/Blocks/Event/flowGraphKeyboardEventBlock.js.map +1 -1
  237. package/FlowGraph/Blocks/Execution/Animation/flowGraphInterpolationBlock.pure.d.ts +1 -1
  238. package/FlowGraph/Blocks/Execution/Animation/flowGraphInterpolationBlock.pure.js +3 -3
  239. package/FlowGraph/Blocks/Execution/Animation/flowGraphInterpolationBlock.pure.js.map +1 -1
  240. package/FlowGraph/Blocks/Execution/ControlFlow/flowGraphCancelDelayBlock.pure.js +1 -1
  241. package/FlowGraph/Blocks/Execution/ControlFlow/flowGraphCancelDelayBlock.pure.js.map +1 -1
  242. package/FlowGraph/CustomTypes/flowGraphMatrix.d.ts +1 -1
  243. package/FlowGraph/CustomTypes/flowGraphMatrix.js +1 -1
  244. package/FlowGraph/CustomTypes/flowGraphMatrix.js.map +1 -1
  245. package/FlowGraph/flowGraphBlock.d.ts +1 -1
  246. package/FlowGraph/flowGraphBlock.js +1 -1
  247. package/FlowGraph/flowGraphBlock.js.map +1 -1
  248. package/FlowGraph/flowGraphExecutionBlock.d.ts +1 -1
  249. package/FlowGraph/flowGraphExecutionBlock.js +1 -1
  250. package/FlowGraph/flowGraphExecutionBlock.js.map +1 -1
  251. package/FlowGraph/flowGraphMath.d.ts +1 -1
  252. package/FlowGraph/flowGraphMath.js +1 -1
  253. package/FlowGraph/flowGraphMath.js.map +1 -1
  254. package/FlowGraph/flowGraphParser.js +1 -1
  255. package/FlowGraph/flowGraphParser.js.map +1 -1
  256. package/FlowGraph/flowGraphPathConverterComponent.d.ts +1 -1
  257. package/FlowGraph/flowGraphPathConverterComponent.js +2 -2
  258. package/FlowGraph/flowGraphPathConverterComponent.js.map +1 -1
  259. package/FlowGraph/flowGraphValidator.js.map +1 -1
  260. package/FlowGraph/serialization.js +4 -4
  261. package/FlowGraph/serialization.js.map +1 -1
  262. package/FlowGraph/utils.js.map +1 -1
  263. package/FrameGraph/Node/nodeRenderGraph.d.ts +2 -2
  264. package/FrameGraph/Node/nodeRenderGraph.js +7 -7
  265. package/FrameGraph/Node/nodeRenderGraph.js.map +1 -1
  266. package/FrameGraph/Tasks/Layers/baseLayerTask.d.ts +30 -0
  267. package/FrameGraph/Tasks/Layers/baseLayerTask.js +28 -1
  268. package/FrameGraph/Tasks/Layers/baseLayerTask.js.map +1 -1
  269. package/FrameGraph/Tasks/Misc/computeShaderTask.d.ts +2 -2
  270. package/FrameGraph/Tasks/Misc/computeShaderTask.js +2 -2
  271. package/FrameGraph/Tasks/Misc/computeShaderTask.js.map +1 -1
  272. package/FrameGraph/Tasks/Misc/lightingVolumeTask.d.ts +1 -1
  273. package/FrameGraph/Tasks/Misc/lightingVolumeTask.js +2 -2
  274. package/FrameGraph/Tasks/Misc/lightingVolumeTask.js.map +1 -1
  275. package/FrameGraph/Tasks/PostProcesses/blurTask.d.ts +7 -0
  276. package/FrameGraph/Tasks/PostProcesses/blurTask.js +8 -1
  277. package/FrameGraph/Tasks/PostProcesses/blurTask.js.map +1 -1
  278. package/FrameGraph/Tasks/PostProcesses/depthOfFieldBlurTask.js +1 -1
  279. package/FrameGraph/Tasks/PostProcesses/depthOfFieldBlurTask.js.map +1 -1
  280. package/FrameGraph/Tasks/PostProcesses/ssrBlurTask.js +1 -1
  281. package/FrameGraph/Tasks/PostProcesses/ssrBlurTask.js.map +1 -1
  282. package/FrameGraph/Tasks/PostProcesses/volumetricLightingBlendVolumeTask.d.ts +1 -1
  283. package/FrameGraph/Tasks/PostProcesses/volumetricLightingBlendVolumeTask.js +1 -1
  284. package/FrameGraph/Tasks/PostProcesses/volumetricLightingBlendVolumeTask.js.map +1 -1
  285. package/FrameGraph/Tasks/PostProcesses/volumetricLightingTask.d.ts +2 -2
  286. package/FrameGraph/Tasks/PostProcesses/volumetricLightingTask.js +3 -3
  287. package/FrameGraph/Tasks/PostProcesses/volumetricLightingTask.js.map +1 -1
  288. package/FrameGraph/Tasks/Rendering/csmShadowGeneratorTask.d.ts +1 -1
  289. package/FrameGraph/Tasks/Rendering/csmShadowGeneratorTask.js +2 -2
  290. package/FrameGraph/Tasks/Rendering/csmShadowGeneratorTask.js.map +1 -1
  291. package/FrameGraph/Tasks/Rendering/geometryRendererTask.d.ts +6 -0
  292. package/FrameGraph/Tasks/Rendering/geometryRendererTask.js +14 -5
  293. package/FrameGraph/Tasks/Rendering/geometryRendererTask.js.map +1 -1
  294. package/FrameGraph/Tasks/Rendering/iblShadows/iblShadowsAccumulationTask.d.ts +1 -1
  295. package/FrameGraph/Tasks/Rendering/iblShadows/iblShadowsAccumulationTask.js +1 -1
  296. package/FrameGraph/Tasks/Rendering/iblShadows/iblShadowsAccumulationTask.js.map +1 -1
  297. package/FrameGraph/Tasks/Rendering/iblShadows/iblShadowsSpatialBlurTask.d.ts +1 -1
  298. package/FrameGraph/Tasks/Rendering/iblShadows/iblShadowsSpatialBlurTask.js +1 -1
  299. package/FrameGraph/Tasks/Rendering/iblShadows/iblShadowsSpatialBlurTask.js.map +1 -1
  300. package/FrameGraph/Tasks/Rendering/iblShadows/iblShadowsTracingTask.d.ts +1 -1
  301. package/FrameGraph/Tasks/Rendering/iblShadows/iblShadowsTracingTask.js +2 -2
  302. package/FrameGraph/Tasks/Rendering/iblShadows/iblShadowsTracingTask.js.map +1 -1
  303. package/FrameGraph/Tasks/Rendering/iblShadows/iblShadowsVoxelizationTask.d.ts +1 -1
  304. package/FrameGraph/Tasks/Rendering/iblShadows/iblShadowsVoxelizationTask.js +2 -2
  305. package/FrameGraph/Tasks/Rendering/iblShadows/iblShadowsVoxelizationTask.js.map +1 -1
  306. package/FrameGraph/Tasks/Rendering/objectRendererTask.d.ts +7 -1
  307. package/FrameGraph/Tasks/Rendering/objectRendererTask.js +7 -1
  308. package/FrameGraph/Tasks/Rendering/objectRendererTask.js.map +1 -1
  309. package/FrameGraph/Tasks/Texture/clearTextureTask.d.ts +1 -1
  310. package/FrameGraph/Tasks/Texture/clearTextureTask.js +1 -1
  311. package/FrameGraph/Tasks/Texture/clearTextureTask.js.map +1 -1
  312. package/FrameGraph/frameGraphRenderContext.js +1 -1
  313. package/FrameGraph/frameGraphRenderContext.js.map +1 -1
  314. package/FrameGraph/frameGraphTextureManager.d.ts +1 -1
  315. package/FrameGraph/frameGraphTextureManager.js +1 -1
  316. package/FrameGraph/frameGraphTextureManager.js.map +1 -1
  317. package/Gamepads/gamepadManager.js +1 -1
  318. package/Gamepads/gamepadManager.js.map +1 -1
  319. package/Gizmos/axisDragGizmo.d.ts +5 -5
  320. package/Gizmos/axisDragGizmo.js +6 -6
  321. package/Gizmos/axisDragGizmo.js.map +1 -1
  322. package/Gizmos/axisScaleGizmo.d.ts +4 -4
  323. package/Gizmos/axisScaleGizmo.js +6 -6
  324. package/Gizmos/axisScaleGizmo.js.map +1 -1
  325. package/Gizmos/boundingBoxGizmo.d.ts +5 -5
  326. package/Gizmos/boundingBoxGizmo.js +7 -7
  327. package/Gizmos/boundingBoxGizmo.js.map +1 -1
  328. package/Gizmos/cameraGizmo.d.ts +3 -3
  329. package/Gizmos/cameraGizmo.js +7 -7
  330. package/Gizmos/cameraGizmo.js.map +1 -1
  331. package/Gizmos/gizmo.d.ts +2 -2
  332. package/Gizmos/gizmo.js +3 -3
  333. package/Gizmos/gizmo.js.map +1 -1
  334. package/Gizmos/gizmoManager.d.ts +2 -2
  335. package/Gizmos/gizmoManager.js +2 -2
  336. package/Gizmos/gizmoManager.js.map +1 -1
  337. package/Gizmos/lightGizmo.d.ts +4 -4
  338. package/Gizmos/lightGizmo.js +11 -11
  339. package/Gizmos/lightGizmo.js.map +1 -1
  340. package/Gizmos/planeDragGizmo.d.ts +4 -4
  341. package/Gizmos/planeDragGizmo.js +5 -5
  342. package/Gizmos/planeDragGizmo.js.map +1 -1
  343. package/Gizmos/positionGizmo.d.ts +1 -1
  344. package/Gizmos/positionGizmo.js +2 -2
  345. package/Gizmos/positionGizmo.js.map +1 -1
  346. package/Gizmos/rotationGizmo.d.ts +3 -3
  347. package/Gizmos/rotationGizmo.js +3 -3
  348. package/Gizmos/rotationGizmo.js.map +1 -1
  349. package/Gizmos/scaleGizmo.d.ts +2 -2
  350. package/Gizmos/scaleGizmo.js +4 -4
  351. package/Gizmos/scaleGizmo.js.map +1 -1
  352. package/Gizmos/spatialAudioGizmo.d.ts +2 -2
  353. package/Gizmos/spatialAudioGizmo.js +6 -6
  354. package/Gizmos/spatialAudioGizmo.js.map +1 -1
  355. package/Helpers/environmentHelper.d.ts +6 -6
  356. package/Helpers/environmentHelper.js +12 -12
  357. package/Helpers/environmentHelper.js.map +1 -1
  358. package/Helpers/materialConversionHelper.d.ts +1 -1
  359. package/Helpers/materialConversionHelper.js +1 -1
  360. package/Helpers/materialConversionHelper.js.map +1 -1
  361. package/Helpers/photoDome.d.ts +1 -1
  362. package/Helpers/photoDome.js +1 -1
  363. package/Helpers/photoDome.js.map +1 -1
  364. package/Helpers/textureDome.d.ts +4 -4
  365. package/Helpers/textureDome.js +6 -6
  366. package/Helpers/textureDome.js.map +1 -1
  367. package/Helpers/videoDome.d.ts +1 -1
  368. package/Helpers/videoDome.js +2 -2
  369. package/Helpers/videoDome.js.map +1 -1
  370. package/Inputs/scene.inputManager.d.ts +1 -1
  371. package/Inputs/scene.inputManager.js +1 -1
  372. package/Inputs/scene.inputManager.js.map +1 -1
  373. package/Instrumentation/sceneInstrumentation.js +1 -1
  374. package/Instrumentation/sceneInstrumentation.js.map +1 -1
  375. package/Layers/effectLayer.d.ts +1 -1
  376. package/Layers/effectLayer.js +3 -3
  377. package/Layers/effectLayer.js.map +1 -1
  378. package/Layers/layer.d.ts +2 -2
  379. package/Layers/layer.js +4 -4
  380. package/Layers/layer.js.map +1 -1
  381. package/Layers/thinEffectLayer.d.ts +2 -2
  382. package/Layers/thinEffectLayer.js +3 -3
  383. package/Layers/thinEffectLayer.js.map +1 -1
  384. package/Layers/thinGlowLayer.d.ts +1 -1
  385. package/Layers/thinGlowLayer.js +3 -3
  386. package/Layers/thinGlowLayer.js.map +1 -1
  387. package/Layers/thinHighlightLayer.d.ts +1 -1
  388. package/Layers/thinHighlightLayer.js +3 -3
  389. package/Layers/thinHighlightLayer.js.map +1 -1
  390. package/Layers/thinSelectionOutlineLayer.d.ts +1 -1
  391. package/Layers/thinSelectionOutlineLayer.js +3 -3
  392. package/Layers/thinSelectionOutlineLayer.js.map +1 -1
  393. package/Legacy/legacy.js +12 -1
  394. package/Legacy/legacy.js.map +1 -1
  395. package/LensFlares/lensFlare.d.ts +2 -2
  396. package/LensFlares/lensFlare.js +3 -3
  397. package/LensFlares/lensFlare.js.map +1 -1
  398. package/LensFlares/lensFlareSystem.d.ts +1 -1
  399. package/LensFlares/lensFlareSystem.js +6 -6
  400. package/LensFlares/lensFlareSystem.js.map +1 -1
  401. package/Lights/LTC/ltcTextureTool.js +1 -1
  402. package/Lights/LTC/ltcTextureTool.js.map +1 -1
  403. package/Lights/Shadows/cascadedShadowGenerator.d.ts +1 -285
  404. package/Lights/Shadows/cascadedShadowGenerator.js +3 -857
  405. package/Lights/Shadows/cascadedShadowGenerator.js.map +1 -1
  406. package/Lights/Shadows/cascadedShadowGenerator.pure.d.ts +290 -0
  407. package/Lights/Shadows/cascadedShadowGenerator.pure.js +868 -0
  408. package/Lights/Shadows/cascadedShadowGenerator.pure.js.map +1 -0
  409. package/Lights/Shadows/pure.d.ts +1 -0
  410. package/Lights/Shadows/pure.js +1 -0
  411. package/Lights/Shadows/pure.js.map +1 -1
  412. package/Lights/Shadows/shadowGenerator.d.ts +3 -3
  413. package/Lights/Shadows/shadowGenerator.js +7 -7
  414. package/Lights/Shadows/shadowGenerator.js.map +1 -1
  415. package/Lights/areaLight.d.ts +1 -1
  416. package/Lights/areaLight.js +0 -1
  417. package/Lights/areaLight.js.map +1 -1
  418. package/Lights/light.d.ts +2 -2
  419. package/Lights/light.js +2 -2
  420. package/Lights/light.js.map +1 -1
  421. package/Lights/shadowLight.d.ts +1 -1
  422. package/Lights/shadowLight.js +1 -1
  423. package/Lights/shadowLight.js.map +1 -1
  424. package/Loading/sceneLoader.d.ts +2 -2
  425. package/Loading/sceneLoader.js +3 -3
  426. package/Loading/sceneLoader.js.map +1 -1
  427. package/Materials/GreasedLine/greasedLineMaterialDefaults.d.ts +1 -1
  428. package/Materials/GreasedLine/greasedLineMaterialDefaults.js +1 -1
  429. package/Materials/GreasedLine/greasedLineMaterialDefaults.js.map +1 -1
  430. package/Materials/GreasedLine/greasedLineSimpleMaterial.d.ts +3 -3
  431. package/Materials/GreasedLine/greasedLineSimpleMaterial.js +3 -3
  432. package/Materials/GreasedLine/greasedLineSimpleMaterial.js.map +1 -1
  433. package/Materials/Node/Blocks/Fragment/prePassOutputBlock.pure.js +6 -6
  434. package/Materials/Node/Blocks/Fragment/prePassOutputBlock.pure.js.map +1 -1
  435. package/Materials/Node/nodeMaterial.pure.d.ts +12 -0
  436. package/Materials/Node/nodeMaterial.pure.js +68 -13
  437. package/Materials/Node/nodeMaterial.pure.js.map +1 -1
  438. package/Materials/Node/nodeMaterialDefault.js +14 -14
  439. package/Materials/Node/nodeMaterialDefault.js.map +1 -1
  440. package/Materials/PBR/openpbrMaterial.pure.js +19 -4
  441. package/Materials/PBR/openpbrMaterial.pure.js.map +1 -1
  442. package/Materials/PBR/pbrAnisotropicConfiguration.d.ts +40 -2
  443. package/Materials/PBR/pbrAnisotropicConfiguration.js +41 -3
  444. package/Materials/PBR/pbrAnisotropicConfiguration.js.map +1 -1
  445. package/Materials/PBR/pbrBRDFConfiguration.d.ts +5 -1
  446. package/Materials/PBR/pbrBRDFConfiguration.js +5 -1
  447. package/Materials/PBR/pbrBRDFConfiguration.js.map +1 -1
  448. package/Materials/PBR/pbrBaseSimpleMaterial.d.ts +2 -2
  449. package/Materials/PBR/pbrBaseSimpleMaterial.js +2 -2
  450. package/Materials/PBR/pbrBaseSimpleMaterial.js.map +1 -1
  451. package/Materials/PBR/pbrClearCoatConfiguration.d.ts +42 -2
  452. package/Materials/PBR/pbrClearCoatConfiguration.js +42 -2
  453. package/Materials/PBR/pbrClearCoatConfiguration.js.map +1 -1
  454. package/Materials/PBR/pbrIridescenceConfiguration.d.ts +38 -1
  455. package/Materials/PBR/pbrIridescenceConfiguration.js +38 -1
  456. package/Materials/PBR/pbrIridescenceConfiguration.js.map +1 -1
  457. package/Materials/PBR/pbrMaterial.pure.d.ts +6 -0
  458. package/Materials/PBR/pbrMaterial.pure.js +8 -0
  459. package/Materials/PBR/pbrMaterial.pure.js.map +1 -1
  460. package/Materials/PBR/pbrSheenConfiguration.d.ts +41 -2
  461. package/Materials/PBR/pbrSheenConfiguration.js +41 -2
  462. package/Materials/PBR/pbrSheenConfiguration.js.map +1 -1
  463. package/Materials/PBR/pbrSubSurfaceConfiguration.d.ts +41 -2
  464. package/Materials/PBR/pbrSubSurfaceConfiguration.js +42 -3
  465. package/Materials/PBR/pbrSubSurfaceConfiguration.js.map +1 -1
  466. package/Materials/Textures/Filtering/hdrFiltering.js +1 -1
  467. package/Materials/Textures/Filtering/hdrFiltering.js.map +1 -1
  468. package/Materials/Textures/Filtering/hdrIrradianceFiltering.d.ts +1 -1
  469. package/Materials/Textures/Filtering/hdrIrradianceFiltering.js +2 -2
  470. package/Materials/Textures/Filtering/hdrIrradianceFiltering.js.map +1 -1
  471. package/Materials/Textures/Loaders/EXR/exrLoader.core.d.ts +1 -1
  472. package/Materials/Textures/Loaders/EXR/exrLoader.core.js +5 -109
  473. package/Materials/Textures/Loaders/EXR/exrLoader.core.js.map +1 -1
  474. package/Materials/Textures/Loaders/EXR/exrLoader.decoder.js +1 -1
  475. package/Materials/Textures/Loaders/EXR/exrLoader.decoder.js.map +1 -1
  476. package/Materials/Textures/Loaders/basisTextureLoader.js +2 -2
  477. package/Materials/Textures/Loaders/basisTextureLoader.js.map +1 -1
  478. package/Materials/Textures/Loaders/ddsTextureLoader.js +1 -1
  479. package/Materials/Textures/Loaders/ddsTextureLoader.js.map +1 -1
  480. package/Materials/Textures/Loaders/envTextureLoader.js +3 -1
  481. package/Materials/Textures/Loaders/envTextureLoader.js.map +1 -1
  482. package/Materials/Textures/Loaders/ktxTextureLoader.js +11 -2
  483. package/Materials/Textures/Loaders/ktxTextureLoader.js.map +1 -1
  484. package/Materials/Textures/MultiviewRenderTarget.d.ts +1 -1
  485. package/Materials/Textures/MultiviewRenderTarget.js +1 -1
  486. package/Materials/Textures/MultiviewRenderTarget.js.map +1 -1
  487. package/Materials/Textures/Packer/packer.d.ts +1 -1
  488. package/Materials/Textures/Packer/packer.js +6 -6
  489. package/Materials/Textures/Packer/packer.js.map +1 -1
  490. package/Materials/Textures/Procedurals/customProceduralTexture.d.ts +2 -2
  491. package/Materials/Textures/Procedurals/customProceduralTexture.js +4 -4
  492. package/Materials/Textures/Procedurals/customProceduralTexture.js.map +1 -1
  493. package/Materials/Textures/Procedurals/noiseProceduralTexture.pure.js +17 -5
  494. package/Materials/Textures/Procedurals/noiseProceduralTexture.pure.js.map +1 -1
  495. package/Materials/Textures/Procedurals/proceduralTexture.pure.js +4 -1
  496. package/Materials/Textures/Procedurals/proceduralTexture.pure.js.map +1 -1
  497. package/Materials/Textures/Procedurals/proceduralTextureSceneComponent.js +1 -1
  498. package/Materials/Textures/Procedurals/proceduralTextureSceneComponent.js.map +1 -1
  499. package/Materials/Textures/prePassRenderTarget.d.ts +1 -1
  500. package/Materials/Textures/prePassRenderTarget.js +1 -1
  501. package/Materials/Textures/prePassRenderTarget.js.map +1 -1
  502. package/Materials/Textures/rawCubeTexture.d.ts +1 -1
  503. package/Materials/Textures/rawCubeTexture.js +2 -2
  504. package/Materials/Textures/rawCubeTexture.js.map +1 -1
  505. package/Materials/Textures/rawTexture.d.ts +1 -1
  506. package/Materials/Textures/rawTexture.js +1 -1
  507. package/Materials/Textures/rawTexture.js.map +1 -1
  508. package/Materials/Textures/rawTexture2DArray.d.ts +1 -1
  509. package/Materials/Textures/rawTexture2DArray.js +1 -1
  510. package/Materials/Textures/rawTexture2DArray.js.map +1 -1
  511. package/Materials/Textures/rawTexture3D.d.ts +1 -1
  512. package/Materials/Textures/rawTexture3D.js +1 -1
  513. package/Materials/Textures/rawTexture3D.js.map +1 -1
  514. package/Materials/Textures/refractionTexture.d.ts +1 -1
  515. package/Materials/Textures/refractionTexture.js +1 -1
  516. package/Materials/Textures/refractionTexture.js.map +1 -1
  517. package/Materials/Textures/textureMerger.d.ts +1 -1
  518. package/Materials/Textures/textureMerger.js +1 -1
  519. package/Materials/Textures/textureMerger.js.map +1 -1
  520. package/Materials/Textures/textureProcessor.d.ts +1 -1
  521. package/Materials/Textures/textureProcessor.js +2 -2
  522. package/Materials/Textures/textureProcessor.js.map +1 -1
  523. package/Materials/Textures/thinRenderTargetTexture.d.ts +4 -4
  524. package/Materials/Textures/thinRenderTargetTexture.js +2 -2
  525. package/Materials/Textures/thinRenderTargetTexture.js.map +1 -1
  526. package/Materials/clipPlaneMaterialHelper.js +1 -1
  527. package/Materials/clipPlaneMaterialHelper.js.map +1 -1
  528. package/Materials/effect.pure.d.ts +2 -2
  529. package/Materials/effect.pure.js +12 -6
  530. package/Materials/effect.pure.js.map +1 -1
  531. package/Materials/effectRenderer.pure.js +4 -2
  532. package/Materials/effectRenderer.pure.js.map +1 -1
  533. package/Materials/floatingOriginMatrixOverrides.d.ts +1 -1
  534. package/Materials/floatingOriginMatrixOverrides.js +1 -1
  535. package/Materials/floatingOriginMatrixOverrides.js.map +1 -1
  536. package/Materials/material.detailMapConfiguration.d.ts +39 -1
  537. package/Materials/material.detailMapConfiguration.js +39 -1
  538. package/Materials/material.detailMapConfiguration.js.map +1 -1
  539. package/Materials/materialHelper.functions.js +45 -1
  540. package/Materials/materialHelper.functions.js.map +1 -1
  541. package/Materials/materialHelper.geometryrendering.d.ts +1 -1
  542. package/Materials/materialHelper.geometryrendering.js +1 -1
  543. package/Materials/materialHelper.geometryrendering.js.map +1 -1
  544. package/Materials/materialPluginFactoryExport.js +2 -2
  545. package/Materials/materialPluginFactoryExport.js.map +1 -1
  546. package/Materials/meshDebugPluginMaterial.pure.js +15 -13
  547. package/Materials/meshDebugPluginMaterial.pure.js.map +1 -1
  548. package/Materials/pushMaterial.d.ts +7 -1
  549. package/Materials/pushMaterial.js +7 -1
  550. package/Materials/pushMaterial.js.map +1 -1
  551. package/Materials/uniformBuffer.js +1 -1
  552. package/Materials/uniformBuffer.js.map +1 -1
  553. package/Maths/math.axis.d.ts +1 -1
  554. package/Maths/math.axis.js +1 -1
  555. package/Maths/math.axis.js.map +1 -1
  556. package/Maths/math.d.ts +2 -2
  557. package/Maths/math.functions.d.ts +1 -1
  558. package/Maths/math.functions.js +1 -1
  559. package/Maths/math.functions.js.map +1 -1
  560. package/Maths/math.isovector.d.ts +1 -1
  561. package/Maths/math.isovector.js +1 -1
  562. package/Maths/math.isovector.js.map +1 -1
  563. package/Maths/math.js +2 -2
  564. package/Maths/math.js.map +1 -1
  565. package/Maths/math.path.d.ts +1 -1
  566. package/Maths/math.path.js +1 -1
  567. package/Maths/math.path.js.map +1 -1
  568. package/Maths/math.plane.d.ts +1 -1
  569. package/Maths/math.plane.js +1 -1
  570. package/Maths/math.plane.js.map +1 -1
  571. package/Maths/math.polar.d.ts +1 -1
  572. package/Maths/math.polar.js +1 -1
  573. package/Maths/math.polar.js.map +1 -1
  574. package/Maths/math.vertexFormat.d.ts +1 -1
  575. package/Maths/math.vertexFormat.js +1 -1
  576. package/Maths/math.vertexFormat.js.map +1 -1
  577. package/Maths/pure.d.ts +1 -0
  578. package/Maths/pure.js +1 -0
  579. package/Maths/pure.js.map +1 -1
  580. package/Meshes/Builders/geodesicBuilder.js +1 -1
  581. package/Meshes/Builders/geodesicBuilder.js.map +1 -1
  582. package/Meshes/Builders/goldbergBuilder.d.ts +1 -1
  583. package/Meshes/Builders/goldbergBuilder.js +4 -4
  584. package/Meshes/Builders/goldbergBuilder.js.map +1 -1
  585. package/Meshes/Builders/greasedLineBuilder.d.ts +4 -4
  586. package/Meshes/Builders/greasedLineBuilder.js +5 -5
  587. package/Meshes/Builders/greasedLineBuilder.js.map +1 -1
  588. package/Meshes/Builders/textBuilder.d.ts +2 -2
  589. package/Meshes/Builders/textBuilder.js +4 -4
  590. package/Meshes/Builders/textBuilder.js.map +1 -1
  591. package/Meshes/Builders/tiledBoxBuilder.d.ts +3 -3
  592. package/Meshes/Builders/tiledBoxBuilder.js +3 -3
  593. package/Meshes/Builders/tiledBoxBuilder.js.map +1 -1
  594. package/Meshes/Builders/tiledPlaneBuilder.d.ts +1 -1
  595. package/Meshes/Builders/tiledPlaneBuilder.js +1 -1
  596. package/Meshes/Builders/tiledPlaneBuilder.js.map +1 -1
  597. package/Meshes/Compression/dracoCodec.js +1 -1
  598. package/Meshes/Compression/dracoCodec.js.map +1 -1
  599. package/Meshes/Compression/dracoDecoder.js +1 -1
  600. package/Meshes/Compression/dracoDecoder.js.map +1 -1
  601. package/Meshes/Compression/dracoEncoder.d.ts +1 -1
  602. package/Meshes/Compression/dracoEncoder.js +2 -2
  603. package/Meshes/Compression/dracoEncoder.js.map +1 -1
  604. package/Meshes/Compression/meshoptCompression.js +1 -1
  605. package/Meshes/Compression/meshoptCompression.js.map +1 -1
  606. package/Meshes/GaussianSplatting/gaussianSplattingMeshBase.pure.js +64 -3
  607. package/Meshes/GaussianSplatting/gaussianSplattingMeshBase.pure.js.map +1 -1
  608. package/Meshes/GreasedLine/greasedLineBaseMesh.d.ts +2 -2
  609. package/Meshes/GreasedLine/greasedLineBaseMesh.js +3 -3
  610. package/Meshes/GreasedLine/greasedLineBaseMesh.js.map +1 -1
  611. package/Meshes/Node/nodeGeometry.d.ts +2 -2
  612. package/Meshes/Node/nodeGeometry.js +4 -4
  613. package/Meshes/Node/nodeGeometry.js.map +1 -1
  614. package/Meshes/Node/nodeGeometryBuildState.d.ts +1 -1
  615. package/Meshes/Node/nodeGeometryBuildState.js +1 -1
  616. package/Meshes/Node/nodeGeometryBuildState.js.map +1 -1
  617. package/Meshes/abstractMesh.hotSpot.d.ts +1 -1
  618. package/Meshes/abstractMesh.hotSpot.js +2 -2
  619. package/Meshes/abstractMesh.hotSpot.js.map +1 -1
  620. package/Meshes/abstractMesh.pure.js +2 -13
  621. package/Meshes/abstractMesh.pure.js.map +1 -1
  622. package/Meshes/buffer.d.ts +1 -1
  623. package/Meshes/buffer.js +1 -1
  624. package/Meshes/buffer.js.map +1 -1
  625. package/Meshes/csg.d.ts +3 -3
  626. package/Meshes/csg.js +4 -4
  627. package/Meshes/csg.js.map +1 -1
  628. package/Meshes/csg2.d.ts +1 -1
  629. package/Meshes/csg2.js +38 -11
  630. package/Meshes/csg2.js.map +1 -1
  631. package/Meshes/geodesicMesh.d.ts +1 -1
  632. package/Meshes/geodesicMesh.js +1 -1
  633. package/Meshes/geodesicMesh.js.map +1 -1
  634. package/Meshes/geometry.d.ts +2 -2
  635. package/Meshes/geometry.js +4 -4
  636. package/Meshes/geometry.js.map +1 -1
  637. package/Meshes/lattice.d.ts +1 -1
  638. package/Meshes/lattice.js +1 -1
  639. package/Meshes/lattice.js.map +1 -1
  640. package/Meshes/lattice.material.d.ts +1 -1
  641. package/Meshes/lattice.material.js +1 -1
  642. package/Meshes/lattice.material.js.map +1 -1
  643. package/Meshes/mesh.vertexData.d.ts +2 -2
  644. package/Meshes/mesh.vertexData.js +3 -4
  645. package/Meshes/mesh.vertexData.js.map +1 -1
  646. package/Meshes/mesh.vertexData.subdivide.js +1 -1
  647. package/Meshes/mesh.vertexData.subdivide.js.map +1 -1
  648. package/Meshes/meshBuilder.d.ts +18 -18
  649. package/Meshes/meshBuilder.js +18 -18
  650. package/Meshes/meshBuilder.js.map +1 -1
  651. package/Meshes/meshSimplification.d.ts +1 -1
  652. package/Meshes/meshSimplification.js +4 -4
  653. package/Meshes/meshSimplification.js.map +1 -1
  654. package/Meshes/meshUVSpaceRenderer.d.ts +1 -1
  655. package/Meshes/meshUVSpaceRenderer.js +0 -1
  656. package/Meshes/meshUVSpaceRenderer.js.map +1 -1
  657. package/Meshes/meshUtils.d.ts +1 -1
  658. package/Meshes/meshUtils.js +2 -2
  659. package/Meshes/meshUtils.js.map +1 -1
  660. package/Meshes/polygonMesh.d.ts +2 -2
  661. package/Meshes/polygonMesh.js +3 -3
  662. package/Meshes/polygonMesh.js.map +1 -1
  663. package/Misc/HighDynamicRange/cubemapToSphericalPolynomial.js +2 -2
  664. package/Misc/HighDynamicRange/cubemapToSphericalPolynomial.js.map +1 -1
  665. package/Misc/HighDynamicRange/panoramaToCubemap.js +1 -1
  666. package/Misc/HighDynamicRange/panoramaToCubemap.js.map +1 -1
  667. package/Misc/PerformanceViewer/performanceViewerCollector.js +1 -1
  668. package/Misc/PerformanceViewer/performanceViewerCollector.js.map +1 -1
  669. package/Misc/areaLightsTextureTools.d.ts +1 -1
  670. package/Misc/areaLightsTextureTools.js +3 -3
  671. package/Misc/areaLightsTextureTools.js.map +1 -1
  672. package/Misc/assetsManager.d.ts +4 -4
  673. package/Misc/assetsManager.js +5 -5
  674. package/Misc/assetsManager.js.map +1 -1
  675. package/Misc/basisWorker.js +1 -1
  676. package/Misc/basisWorker.js.map +1 -1
  677. package/Misc/brdfTextureTools.js +1 -1
  678. package/Misc/brdfTextureTools.js.map +1 -1
  679. package/Misc/copyTextureToTexture.d.ts +1 -1
  680. package/Misc/copyTextureToTexture.js +1 -1
  681. package/Misc/copyTextureToTexture.js.map +1 -1
  682. package/Misc/decorators.serialization.js +2 -2
  683. package/Misc/decorators.serialization.js.map +1 -1
  684. package/Misc/depthReducer.d.ts +2 -2
  685. package/Misc/depthReducer.js +2 -2
  686. package/Misc/depthReducer.js.map +1 -1
  687. package/Misc/gradients.d.ts +1 -1
  688. package/Misc/gradients.js +1 -1
  689. package/Misc/gradients.js.map +1 -1
  690. package/Misc/greasedLineTools.d.ts +1 -1
  691. package/Misc/greasedLineTools.js +3 -3
  692. package/Misc/greasedLineTools.js.map +1 -1
  693. package/Misc/halfFloat.d.ts +17 -0
  694. package/Misc/halfFloat.js +131 -0
  695. package/Misc/halfFloat.js.map +1 -0
  696. package/Misc/khronosTextureContainer2.js +1 -1
  697. package/Misc/khronosTextureContainer2.js.map +1 -1
  698. package/Misc/meshExploder.js +1 -1
  699. package/Misc/meshExploder.js.map +1 -1
  700. package/Misc/pivotTools.js +1 -1
  701. package/Misc/pivotTools.js.map +1 -1
  702. package/Misc/rgbdTextureTools.js +1 -1
  703. package/Misc/rgbdTextureTools.js.map +1 -1
  704. package/Misc/sceneOptimizer.js +1 -1
  705. package/Misc/sceneOptimizer.js.map +1 -1
  706. package/Misc/sceneRecorder.js +7 -7
  707. package/Misc/sceneRecorder.js.map +1 -1
  708. package/Misc/sceneSerializer.js +3 -3
  709. package/Misc/sceneSerializer.js.map +1 -1
  710. package/Misc/snapshotRenderingHelper.js +1 -1
  711. package/Misc/snapshotRenderingHelper.js.map +1 -1
  712. package/Misc/textureTools.d.ts +3 -13
  713. package/Misc/textureTools.js +6 -64
  714. package/Misc/textureTools.js.map +1 -1
  715. package/Misc/thinMinMaxReducer.d.ts +1 -1
  716. package/Misc/thinMinMaxReducer.js +1 -1
  717. package/Misc/thinMinMaxReducer.js.map +1 -1
  718. package/Misc/tools.internals.js +1 -1
  719. package/Misc/tools.internals.js.map +1 -1
  720. package/Misc/tools.pure.js +11 -4
  721. package/Misc/tools.pure.js.map +1 -1
  722. package/Misc/trajectoryClassifier.d.ts +1 -1
  723. package/Misc/trajectoryClassifier.js +1 -1
  724. package/Misc/trajectoryClassifier.js.map +1 -1
  725. package/Misc/videoRecorder.js +1 -1
  726. package/Misc/videoRecorder.js.map +1 -1
  727. package/Misc/virtualJoystick.d.ts +1 -1
  728. package/Misc/virtualJoystick.js +1 -1
  729. package/Misc/virtualJoystick.js.map +1 -1
  730. package/Morph/morphTarget.js +1 -1
  731. package/Morph/morphTarget.js.map +1 -1
  732. package/Navigation/Plugins/recastJSPlugin.d.ts +1 -1
  733. package/Navigation/Plugins/recastJSPlugin.js +2 -2
  734. package/Navigation/Plugins/recastJSPlugin.js.map +1 -1
  735. package/Particles/EmitterTypes/boxParticleEmitter.d.ts +1 -1
  736. package/Particles/EmitterTypes/boxParticleEmitter.js +1 -1
  737. package/Particles/EmitterTypes/boxParticleEmitter.js.map +1 -1
  738. package/Particles/EmitterTypes/coneParticleEmitter.d.ts +1 -1
  739. package/Particles/EmitterTypes/coneParticleEmitter.js +1 -1
  740. package/Particles/EmitterTypes/coneParticleEmitter.js.map +1 -1
  741. package/Particles/EmitterTypes/customParticleEmitter.d.ts +1 -1
  742. package/Particles/EmitterTypes/customParticleEmitter.js +1 -1
  743. package/Particles/EmitterTypes/customParticleEmitter.js.map +1 -1
  744. package/Particles/EmitterTypes/cylinderParticleEmitter.d.ts +1 -1
  745. package/Particles/EmitterTypes/cylinderParticleEmitter.js +1 -1
  746. package/Particles/EmitterTypes/cylinderParticleEmitter.js.map +1 -1
  747. package/Particles/EmitterTypes/hemisphericParticleEmitter.d.ts +1 -1
  748. package/Particles/EmitterTypes/hemisphericParticleEmitter.js +1 -1
  749. package/Particles/EmitterTypes/hemisphericParticleEmitter.js.map +1 -1
  750. package/Particles/EmitterTypes/meshParticleEmitter.d.ts +1 -1
  751. package/Particles/EmitterTypes/meshParticleEmitter.js +2 -2
  752. package/Particles/EmitterTypes/meshParticleEmitter.js.map +1 -1
  753. package/Particles/EmitterTypes/pointParticleEmitter.d.ts +1 -1
  754. package/Particles/EmitterTypes/pointParticleEmitter.js +1 -1
  755. package/Particles/EmitterTypes/pointParticleEmitter.js.map +1 -1
  756. package/Particles/EmitterTypes/sphereParticleEmitter.d.ts +1 -1
  757. package/Particles/EmitterTypes/sphereParticleEmitter.js +1 -1
  758. package/Particles/EmitterTypes/sphereParticleEmitter.js.map +1 -1
  759. package/Particles/Node/nodeParticleBuildState.d.ts +4 -4
  760. package/Particles/Node/nodeParticleBuildState.js +2 -2
  761. package/Particles/Node/nodeParticleBuildState.js.map +1 -1
  762. package/Particles/Node/nodeParticleSystemSet.d.ts +2 -2
  763. package/Particles/Node/nodeParticleSystemSet.helper.js +31 -31
  764. package/Particles/Node/nodeParticleSystemSet.helper.js.map +1 -1
  765. package/Particles/Node/nodeParticleSystemSet.js +8 -8
  766. package/Particles/Node/nodeParticleSystemSet.js.map +1 -1
  767. package/Particles/attractor.d.ts +1 -1
  768. package/Particles/attractor.js +1 -1
  769. package/Particles/attractor.js.map +1 -1
  770. package/Particles/computeShaderParticleSystem.pure.js +5 -1
  771. package/Particles/computeShaderParticleSystem.pure.js.map +1 -1
  772. package/Particles/flowMap.d.ts +7 -1
  773. package/Particles/flowMap.js +7 -1
  774. package/Particles/flowMap.js.map +1 -1
  775. package/Particles/gpuParticleSystem.pure.d.ts +1 -0
  776. package/Particles/gpuParticleSystem.pure.js +17 -1
  777. package/Particles/gpuParticleSystem.pure.js.map +1 -1
  778. package/Particles/particle.d.ts +2 -2
  779. package/Particles/particle.js +2 -2
  780. package/Particles/particle.js.map +1 -1
  781. package/Particles/particleHelper.js +5 -5
  782. package/Particles/particleHelper.js.map +1 -1
  783. package/Particles/particleSystem.functions.d.ts +1 -1
  784. package/Particles/particleSystem.functions.js +1 -1
  785. package/Particles/particleSystem.functions.js.map +1 -1
  786. package/Particles/particleSystemSet.d.ts +1 -1
  787. package/Particles/particleSystemSet.js +5 -5
  788. package/Particles/particleSystemSet.js.map +1 -1
  789. package/Particles/pointsCloudSystem.d.ts +1 -1
  790. package/Particles/pointsCloudSystem.js +6 -6
  791. package/Particles/pointsCloudSystem.js.map +1 -1
  792. package/Particles/solidParticle.d.ts +2 -2
  793. package/Particles/solidParticle.js +3 -3
  794. package/Particles/solidParticle.js.map +1 -1
  795. package/Particles/solidParticleSystem.d.ts +4 -4
  796. package/Particles/solidParticleSystem.js +7 -7
  797. package/Particles/solidParticleSystem.js.map +1 -1
  798. package/Particles/subEmitter.js +1 -1
  799. package/Particles/subEmitter.js.map +1 -1
  800. package/Particles/thinParticleSystem.function.js +2 -2
  801. package/Particles/thinParticleSystem.function.js.map +1 -1
  802. package/Physics/Plugins/cannonJSPlugin.d.ts +1 -1
  803. package/Physics/Plugins/cannonJSPlugin.js +1 -1
  804. package/Physics/Plugins/cannonJSPlugin.js.map +1 -1
  805. package/Physics/castingResult.d.ts +1 -1
  806. package/Physics/castingResult.js +1 -1
  807. package/Physics/castingResult.js.map +1 -1
  808. package/Physics/physicsHelper.d.ts +1 -1
  809. package/Physics/physicsHelper.js +4 -4
  810. package/Physics/physicsHelper.js.map +1 -1
  811. package/Physics/physicsImpostor.d.ts +1 -1
  812. package/Physics/physicsImpostor.js +1 -1
  813. package/Physics/physicsImpostor.js.map +1 -1
  814. package/Physics/physicsRaycastResult.d.ts +1 -1
  815. package/Physics/physicsRaycastResult.js +1 -1
  816. package/Physics/physicsRaycastResult.js.map +1 -1
  817. package/Physics/v1/Plugins/ammoJSPlugin.d.ts +2 -2
  818. package/Physics/v1/Plugins/ammoJSPlugin.js +5 -5
  819. package/Physics/v1/Plugins/ammoJSPlugin.js.map +1 -1
  820. package/Physics/v1/Plugins/oimoJSPlugin.d.ts +2 -2
  821. package/Physics/v1/Plugins/oimoJSPlugin.js +2 -2
  822. package/Physics/v1/Plugins/oimoJSPlugin.js.map +1 -1
  823. package/Physics/v1/physicsEngine.d.ts +1 -1
  824. package/Physics/v1/physicsEngine.js +1 -1
  825. package/Physics/v1/physicsEngine.js.map +1 -1
  826. package/Physics/v2/Plugins/havokPlugin.d.ts +14 -2
  827. package/Physics/v2/Plugins/havokPlugin.js +45 -7
  828. package/Physics/v2/Plugins/havokPlugin.js.map +1 -1
  829. package/Physics/v2/characterController.d.ts +2 -2
  830. package/Physics/v2/characterController.js +2 -2
  831. package/Physics/v2/characterController.js.map +1 -1
  832. package/Physics/v2/physicsAggregate.d.ts +1 -1
  833. package/Physics/v2/physicsAggregate.js +6 -1
  834. package/Physics/v2/physicsAggregate.js.map +1 -1
  835. package/Physics/v2/physicsBody.d.ts +1 -1
  836. package/Physics/v2/physicsBody.js +1 -1
  837. package/Physics/v2/physicsBody.js.map +1 -1
  838. package/Physics/v2/physicsEngine.d.ts +1 -1
  839. package/Physics/v2/physicsEngine.js +1 -1
  840. package/Physics/v2/physicsEngine.js.map +1 -1
  841. package/Physics/v2/physicsShape.d.ts +1 -1
  842. package/Physics/v2/physicsShape.js +1 -1
  843. package/Physics/v2/physicsShape.js.map +1 -1
  844. package/Physics/v2/ragdoll.d.ts +2 -2
  845. package/Physics/v2/ragdoll.js +2 -2
  846. package/Physics/v2/ragdoll.js.map +1 -1
  847. package/PostProcesses/RenderPipeline/Pipelines/ssao2RenderingPipeline.pure.d.ts +1 -0
  848. package/PostProcesses/RenderPipeline/Pipelines/ssao2RenderingPipeline.pure.js +8 -6
  849. package/PostProcesses/RenderPipeline/Pipelines/ssao2RenderingPipeline.pure.js.map +1 -1
  850. package/PostProcesses/RenderPipeline/Pipelines/thinSSRRenderingPipeline.js +1 -1
  851. package/PostProcesses/RenderPipeline/Pipelines/thinSSRRenderingPipeline.js.map +1 -1
  852. package/PostProcesses/RenderPipeline/postProcessRenderEffect.js +1 -1
  853. package/PostProcesses/RenderPipeline/postProcessRenderEffect.js.map +1 -1
  854. package/PostProcesses/RenderPipeline/postProcessRenderPipeline.js +3 -2
  855. package/PostProcesses/RenderPipeline/postProcessRenderPipeline.js.map +1 -1
  856. package/PostProcesses/bloomEffect.d.ts +1 -1
  857. package/PostProcesses/bloomEffect.js +4 -4
  858. package/PostProcesses/bloomEffect.js.map +1 -1
  859. package/PostProcesses/depthOfFieldEffect.d.ts +1 -1
  860. package/PostProcesses/depthOfFieldEffect.js +3 -3
  861. package/PostProcesses/depthOfFieldEffect.js.map +1 -1
  862. package/PostProcesses/depthOfFieldMergePostProcess.d.ts +1 -1
  863. package/PostProcesses/depthOfFieldMergePostProcess.js +1 -1
  864. package/PostProcesses/depthOfFieldMergePostProcess.js.map +1 -1
  865. package/PostProcesses/highlightsPostProcess.d.ts +1 -1
  866. package/PostProcesses/highlightsPostProcess.js +1 -1
  867. package/PostProcesses/highlightsPostProcess.js.map +1 -1
  868. package/PostProcesses/imageProcessingPostProcess.d.ts +1 -1
  869. package/PostProcesses/imageProcessingPostProcess.js +1 -1
  870. package/PostProcesses/imageProcessingPostProcess.js.map +1 -1
  871. package/PostProcesses/postProcessManager.d.ts +3 -0
  872. package/PostProcesses/postProcessManager.js +4 -1
  873. package/PostProcesses/postProcessManager.js.map +1 -1
  874. package/PostProcesses/subSurfaceScatteringPostProcess.pure.d.ts +1 -0
  875. package/PostProcesses/subSurfaceScatteringPostProcess.pure.js +10 -0
  876. package/PostProcesses/subSurfaceScatteringPostProcess.pure.js.map +1 -1
  877. package/PostProcesses/thinAnaglyphPostProcess.d.ts +1 -1
  878. package/PostProcesses/thinAnaglyphPostProcess.js +1 -1
  879. package/PostProcesses/thinAnaglyphPostProcess.js.map +1 -1
  880. package/PostProcesses/thinBlackAndWhitePostProcess.d.ts +1 -1
  881. package/PostProcesses/thinBlackAndWhitePostProcess.js +1 -1
  882. package/PostProcesses/thinBlackAndWhitePostProcess.js.map +1 -1
  883. package/PostProcesses/thinBloomEffect.js +1 -1
  884. package/PostProcesses/thinBloomEffect.js.map +1 -1
  885. package/PostProcesses/thinBloomMergePostProcess.d.ts +1 -1
  886. package/PostProcesses/thinBloomMergePostProcess.js +1 -1
  887. package/PostProcesses/thinBloomMergePostProcess.js.map +1 -1
  888. package/PostProcesses/thinBlurPostProcess.d.ts +1 -1
  889. package/PostProcesses/thinBlurPostProcess.js +1 -1
  890. package/PostProcesses/thinBlurPostProcess.js.map +1 -1
  891. package/PostProcesses/thinChromaticAberrationPostProcess.d.ts +2 -2
  892. package/PostProcesses/thinChromaticAberrationPostProcess.js +2 -2
  893. package/PostProcesses/thinChromaticAberrationPostProcess.js.map +1 -1
  894. package/PostProcesses/thinCircleOfConfusionPostProcess.d.ts +1 -1
  895. package/PostProcesses/thinCircleOfConfusionPostProcess.js +1 -1
  896. package/PostProcesses/thinCircleOfConfusionPostProcess.js.map +1 -1
  897. package/PostProcesses/thinColorCorrectionPostProcess.d.ts +1 -1
  898. package/PostProcesses/thinColorCorrectionPostProcess.js +2 -2
  899. package/PostProcesses/thinColorCorrectionPostProcess.js.map +1 -1
  900. package/PostProcesses/thinConvolutionPostProcess.d.ts +1 -1
  901. package/PostProcesses/thinConvolutionPostProcess.js +1 -1
  902. package/PostProcesses/thinConvolutionPostProcess.js.map +1 -1
  903. package/PostProcesses/thinCustomPostProcess.d.ts +1 -1
  904. package/PostProcesses/thinCustomPostProcess.js +1 -1
  905. package/PostProcesses/thinCustomPostProcess.js.map +1 -1
  906. package/PostProcesses/thinDepthOfFieldEffect.d.ts +3 -0
  907. package/PostProcesses/thinDepthOfFieldEffect.js +4 -1
  908. package/PostProcesses/thinDepthOfFieldEffect.js.map +1 -1
  909. package/PostProcesses/thinDepthOfFieldMergePostProcess.d.ts +1 -1
  910. package/PostProcesses/thinDepthOfFieldMergePostProcess.js +1 -1
  911. package/PostProcesses/thinDepthOfFieldMergePostProcess.js.map +1 -1
  912. package/PostProcesses/thinExtractHighlightsPostProcess.d.ts +1 -1
  913. package/PostProcesses/thinExtractHighlightsPostProcess.js +1 -1
  914. package/PostProcesses/thinExtractHighlightsPostProcess.js.map +1 -1
  915. package/PostProcesses/thinFXAAPostProcess.d.ts +2 -2
  916. package/PostProcesses/thinFXAAPostProcess.js +2 -2
  917. package/PostProcesses/thinFXAAPostProcess.js.map +1 -1
  918. package/PostProcesses/thinFilterPostProcess.d.ts +2 -2
  919. package/PostProcesses/thinFilterPostProcess.js +2 -2
  920. package/PostProcesses/thinFilterPostProcess.js.map +1 -1
  921. package/PostProcesses/thinGrainPostProcess.d.ts +1 -1
  922. package/PostProcesses/thinGrainPostProcess.js +1 -1
  923. package/PostProcesses/thinGrainPostProcess.js.map +1 -1
  924. package/PostProcesses/thinImageProcessingPostProcess.d.ts +2 -2
  925. package/PostProcesses/thinImageProcessingPostProcess.js +2 -2
  926. package/PostProcesses/thinImageProcessingPostProcess.js.map +1 -1
  927. package/PostProcesses/thinMotionBlurPostProcess.d.ts +1 -1
  928. package/PostProcesses/thinMotionBlurPostProcess.js +2 -2
  929. package/PostProcesses/thinMotionBlurPostProcess.js.map +1 -1
  930. package/PostProcesses/thinPassPostProcess.d.ts +1 -1
  931. package/PostProcesses/thinPassPostProcess.js +1 -1
  932. package/PostProcesses/thinPassPostProcess.js.map +1 -1
  933. package/PostProcesses/thinSSAO2BlurPostProcess.d.ts +1 -1
  934. package/PostProcesses/thinSSAO2BlurPostProcess.js +1 -1
  935. package/PostProcesses/thinSSAO2BlurPostProcess.js.map +1 -1
  936. package/PostProcesses/thinSSAO2CombinePostProcess.d.ts +1 -1
  937. package/PostProcesses/thinSSAO2CombinePostProcess.js +2 -2
  938. package/PostProcesses/thinSSAO2CombinePostProcess.js.map +1 -1
  939. package/PostProcesses/thinSSAO2PostProcess.d.ts +7 -2
  940. package/PostProcesses/thinSSAO2PostProcess.js +36 -4
  941. package/PostProcesses/thinSSAO2PostProcess.js.map +1 -1
  942. package/PostProcesses/thinSSRBlurCombinerPostProcess.d.ts +1 -1
  943. package/PostProcesses/thinSSRBlurCombinerPostProcess.js +2 -2
  944. package/PostProcesses/thinSSRBlurCombinerPostProcess.js.map +1 -1
  945. package/PostProcesses/thinSSRBlurPostProcess.d.ts +2 -2
  946. package/PostProcesses/thinSSRBlurPostProcess.js +2 -2
  947. package/PostProcesses/thinSSRBlurPostProcess.js.map +1 -1
  948. package/PostProcesses/thinSSRPostProcess.d.ts +1 -1
  949. package/PostProcesses/thinSSRPostProcess.js +2 -2
  950. package/PostProcesses/thinSSRPostProcess.js.map +1 -1
  951. package/PostProcesses/thinScreenSpaceCurvaturePostProcess.d.ts +1 -1
  952. package/PostProcesses/thinScreenSpaceCurvaturePostProcess.js +1 -1
  953. package/PostProcesses/thinScreenSpaceCurvaturePostProcess.js.map +1 -1
  954. package/PostProcesses/thinSharpenPostProcess.d.ts +1 -1
  955. package/PostProcesses/thinSharpenPostProcess.js +1 -1
  956. package/PostProcesses/thinSharpenPostProcess.js.map +1 -1
  957. package/PostProcesses/thinTAAPostProcess.d.ts +3 -3
  958. package/PostProcesses/thinTAAPostProcess.js +4 -4
  959. package/PostProcesses/thinTAAPostProcess.js.map +1 -1
  960. package/PostProcesses/thinTonemapPostProcess.d.ts +1 -1
  961. package/PostProcesses/thinTonemapPostProcess.js +1 -1
  962. package/PostProcesses/thinTonemapPostProcess.js.map +1 -1
  963. package/PostProcesses/vrDistortionCorrectionPostProcess.d.ts +1 -1
  964. package/PostProcesses/vrDistortionCorrectionPostProcess.js +3 -3
  965. package/PostProcesses/vrDistortionCorrectionPostProcess.js.map +1 -1
  966. package/Rendering/IBLShadows/iblShadowsAccumulationPass.d.ts +2 -2
  967. package/Rendering/IBLShadows/iblShadowsAccumulationPass.js +4 -4
  968. package/Rendering/IBLShadows/iblShadowsAccumulationPass.js.map +1 -1
  969. package/Rendering/IBLShadows/iblShadowsSpatialBlurPass.d.ts +2 -2
  970. package/Rendering/IBLShadows/iblShadowsSpatialBlurPass.js +4 -4
  971. package/Rendering/IBLShadows/iblShadowsSpatialBlurPass.js.map +1 -1
  972. package/Rendering/IBLShadows/iblShadowsVoxelTracingPass.d.ts +3 -3
  973. package/Rendering/IBLShadows/iblShadowsVoxelTracingPass.js +4 -4
  974. package/Rendering/IBLShadows/iblShadowsVoxelTracingPass.js.map +1 -1
  975. package/Rendering/depthPeelingRenderer.d.ts +1 -1
  976. package/Rendering/depthPeelingRenderer.js +2 -2
  977. package/Rendering/depthPeelingRenderer.js.map +1 -1
  978. package/Rendering/fluidRenderer/fluidRenderingObject.d.ts +1 -1
  979. package/Rendering/fluidRenderer/fluidRenderingObject.js +1 -1
  980. package/Rendering/fluidRenderer/fluidRenderingObject.js.map +1 -1
  981. package/Rendering/fluidRenderer/fluidRenderingObjectCustomParticles.d.ts +1 -1
  982. package/Rendering/fluidRenderer/fluidRenderingObjectCustomParticles.js +2 -2
  983. package/Rendering/fluidRenderer/fluidRenderingObjectCustomParticles.js.map +1 -1
  984. package/Rendering/fluidRenderer/fluidRenderingTargetRenderer.d.ts +3 -3
  985. package/Rendering/fluidRenderer/fluidRenderingTargetRenderer.js +3 -3
  986. package/Rendering/fluidRenderer/fluidRenderingTargetRenderer.js.map +1 -1
  987. package/Rendering/fluidRenderer/fluidRenderingTextures.d.ts +2 -2
  988. package/Rendering/fluidRenderer/fluidRenderingTextures.js +3 -3
  989. package/Rendering/fluidRenderer/fluidRenderingTextures.js.map +1 -1
  990. package/Rendering/iblCdfGenerator.d.ts +3 -3
  991. package/Rendering/iblCdfGenerator.js +5 -5
  992. package/Rendering/iblCdfGenerator.js.map +1 -1
  993. package/Rendering/renderingGroup.js +1 -1
  994. package/Rendering/renderingGroup.js.map +1 -1
  995. package/Rendering/subSurfaceConfiguration.d.ts +2 -2
  996. package/Rendering/subSurfaceConfiguration.js +2 -2
  997. package/Rendering/subSurfaceConfiguration.js.map +1 -1
  998. package/Rendering/utilityLayerRenderer.d.ts +2 -2
  999. package/Rendering/utilityLayerRenderer.js +4 -4
  1000. package/Rendering/utilityLayerRenderer.js.map +1 -1
  1001. package/Shaders/ssao2.fragment.js +10 -2
  1002. package/Shaders/ssao2.fragment.js.map +1 -1
  1003. package/ShadersWGSL/gpuRenderParticles.fragment.d.ts +5 -0
  1004. package/ShadersWGSL/gpuRenderParticles.fragment.js +50 -0
  1005. package/ShadersWGSL/gpuRenderParticles.fragment.js.map +1 -0
  1006. package/ShadersWGSL/gpuRenderParticles.vertex.d.ts +5 -0
  1007. package/ShadersWGSL/gpuRenderParticles.vertex.js +120 -0
  1008. package/ShadersWGSL/gpuRenderParticles.vertex.js.map +1 -0
  1009. package/ShadersWGSL/noise.fragment.d.ts +5 -0
  1010. package/ShadersWGSL/noise.fragment.js +18 -0
  1011. package/ShadersWGSL/noise.fragment.js.map +1 -0
  1012. package/ShadersWGSL/ssao2.fragment.js +10 -2
  1013. package/ShadersWGSL/ssao2.fragment.js.map +1 -1
  1014. package/SmartAssets/smartAssetSerializer.js +1 -1
  1015. package/SmartAssets/smartAssetSerializer.js.map +1 -1
  1016. package/Sprites/sprite.d.ts +2 -2
  1017. package/Sprites/sprite.js +2 -2
  1018. package/Sprites/sprite.js.map +1 -1
  1019. package/Sprites/spriteManager.d.ts +2 -2
  1020. package/Sprites/spriteManager.js +4 -5
  1021. package/Sprites/spriteManager.js.map +1 -1
  1022. package/Sprites/spritePackedManager.js +1 -1
  1023. package/Sprites/spritePackedManager.js.map +1 -1
  1024. package/Sprites/spriteRenderer.js +2 -2
  1025. package/Sprites/spriteRenderer.js.map +1 -1
  1026. package/XR/features/WebXRHitTestLegacy.d.ts +1 -1
  1027. package/XR/features/WebXRHitTestLegacy.js +2 -2
  1028. package/XR/features/WebXRHitTestLegacy.js.map +1 -1
  1029. package/XR/motionController/webXRAbstractMotionController.js +2 -2
  1030. package/XR/motionController/webXRAbstractMotionController.js.map +1 -1
  1031. package/XR/motionController/webXRGenericMotionController.js +2 -2
  1032. package/XR/motionController/webXRGenericMotionController.js.map +1 -1
  1033. package/XR/motionController/webXRProfiledMotionController.js +4 -4
  1034. package/XR/motionController/webXRProfiledMotionController.js.map +1 -1
  1035. package/XR/webXRCamera.d.ts +3 -3
  1036. package/XR/webXRCamera.js +4 -4
  1037. package/XR/webXRCamera.js.map +1 -1
  1038. package/XR/webXRDefaultExperience.d.ts +4 -4
  1039. package/XR/webXRDefaultExperience.js +4 -4
  1040. package/XR/webXRDefaultExperience.js.map +1 -1
  1041. package/XR/webXREnterExitUI.js +1 -1
  1042. package/XR/webXREnterExitUI.js.map +1 -1
  1043. package/XR/webXRExperienceHelper.js +2 -2
  1044. package/XR/webXRExperienceHelper.js.map +1 -1
  1045. package/XR/webXRFeaturesManager.d.ts +47 -0
  1046. package/XR/webXRFeaturesManager.js +1 -1
  1047. package/XR/webXRFeaturesManager.js.map +1 -1
  1048. package/XR/webXRInput.js +1 -1
  1049. package/XR/webXRInput.js.map +1 -1
  1050. package/XR/webXRInputSource.js +4 -4
  1051. package/XR/webXRInputSource.js.map +1 -1
  1052. package/XR/webXRManagedOutputCanvas.js +1 -1
  1053. package/XR/webXRManagedOutputCanvas.js.map +1 -1
  1054. package/XR/webXRRenderTargetTextureProvider.d.ts +1 -1
  1055. package/XR/webXRRenderTargetTextureProvider.js +1 -1
  1056. package/XR/webXRRenderTargetTextureProvider.js.map +1 -1
  1057. package/assetContainer.d.ts +4 -4
  1058. package/assetContainer.js +6 -6
  1059. package/assetContainer.js.map +1 -1
  1060. package/node.d.ts +1 -1
  1061. package/node.js +6 -2
  1062. package/node.js.map +1 -1
  1063. package/package.json +684 -3
@@ -1 +1 @@
1
- {"version":3,"file":"virtualJoystick.js","sourceRoot":"","sources":["../../../../dev/core/src/Misc/virtualJoystick.ts"],"names":[],"mappings":"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","sourcesContent":["import { type Nullable } from \"../types\";\r\nimport { Vector3, Vector2 } from \"../Maths/math.vector\";\r\nimport { StringDictionary } from \"./stringDictionary\";\r\n\r\n// Mainly based on these 2 articles :\r\n// Creating an universal virtual touch joystick working for all Touch models thanks to Hand.JS : http://blogs.msdn.com/b/davrous/archive/2013/02/22/creating-an-universal-virtual-touch-joystick-working-for-all-touch-models-thanks-to-hand-js.aspx\r\n// & on Seb Lee-Delisle original work: http://seb.ly/2011/04/multi-touch-game-controller-in-javascripthtml5-for-ipad/\r\n\r\n/**\r\n * Defines the potential axis of a Joystick\r\n */\r\nexport const enum JoystickAxis {\r\n /** X axis */\r\n X,\r\n /** Y axis */\r\n Y,\r\n /** Z axis */\r\n Z,\r\n}\r\n\r\n/**\r\n * Represents the different customization options available\r\n * for VirtualJoystick\r\n */\r\ninterface IVirtualJoystickCustomizations {\r\n /**\r\n * Size of the joystick's puck\r\n */\r\n puckSize: number;\r\n /**\r\n * Size of the joystick's container\r\n */\r\n containerSize: number;\r\n /**\r\n * Color of the joystick && puck\r\n */\r\n color: string;\r\n /**\r\n * Image URL for the joystick's puck\r\n */\r\n puckImage?: string;\r\n /**\r\n * Image URL for the joystick's container\r\n */\r\n containerImage?: string;\r\n /**\r\n * Defines the unmoving position of the joystick container\r\n */\r\n position?: { x: number; y: number };\r\n /**\r\n * Defines whether or not the joystick container is always visible\r\n */\r\n alwaysVisible: boolean;\r\n /**\r\n * Defines whether or not to limit the movement of the puck to the joystick's container\r\n */\r\n limitToContainer: boolean;\r\n}\r\n\r\n/**\r\n * Class used to define virtual joystick (used in touch mode)\r\n */\r\nexport class VirtualJoystick {\r\n /**\r\n * Gets or sets a boolean indicating that left and right values must be inverted\r\n */\r\n public reverseLeftRight: boolean;\r\n /**\r\n * Gets or sets a boolean indicating that up and down values must be inverted\r\n */\r\n public reverseUpDown: boolean;\r\n /**\r\n * Gets the offset value for the position (ie. the change of the position value)\r\n */\r\n public deltaPosition: Vector3;\r\n /**\r\n * Gets a boolean indicating if the virtual joystick was pressed\r\n */\r\n public pressed: boolean;\r\n /**\r\n * Canvas the virtual joystick will render onto, default z-index of this is 5\r\n */\r\n public static Canvas: Nullable<HTMLCanvasElement>;\r\n\r\n /**\r\n * boolean indicating whether or not the joystick's puck's movement should be limited to the joystick's container area\r\n */\r\n public limitToContainer: boolean;\r\n\r\n // Used to draw the virtual joystick inside a 2D canvas on top of the WebGL rendering canvas\r\n private static _GlobalJoystickIndex: number = 0;\r\n private static _AlwaysVisibleSticks: number = 0;\r\n private static _VjCanvasContext: CanvasRenderingContext2D;\r\n private static _VjCanvasWidth: number;\r\n private static _VjCanvasHeight: number;\r\n private static _HalfWidth: number;\r\n private static _GetDefaultOptions(): IVirtualJoystickCustomizations {\r\n return {\r\n puckSize: 40,\r\n containerSize: 60,\r\n color: \"cyan\",\r\n puckImage: undefined,\r\n containerImage: undefined,\r\n position: undefined,\r\n alwaysVisible: false,\r\n limitToContainer: false,\r\n };\r\n }\r\n\r\n private _action: () => any;\r\n private _axisTargetedByLeftAndRight: JoystickAxis;\r\n private _axisTargetedByUpAndDown: JoystickAxis;\r\n private _joystickSensibility: number;\r\n private _inversedSensibility: number;\r\n private _joystickPointerId: number;\r\n private _joystickColor: string;\r\n private _joystickPointerPos: Vector2;\r\n private _joystickPreviousPointerPos: Vector2;\r\n private _joystickPointerStartPos: Vector2;\r\n private _deltaJoystickVector: Vector2;\r\n private _leftJoystick: boolean;\r\n private _touches: StringDictionary<{ x: number; y: number; prevX: number; prevY: number } | PointerEvent>;\r\n private _joystickPosition: Nullable<Vector2>;\r\n private _alwaysVisible: boolean;\r\n private _puckImage: HTMLImageElement;\r\n private _containerImage: HTMLImageElement;\r\n private _released = false;\r\n\r\n // size properties\r\n private _joystickPuckSize: number;\r\n private _joystickContainerSize: number;\r\n private _clearPuckSize: number;\r\n private _clearContainerSize: number;\r\n private _clearPuckSizeOffset: number;\r\n private _clearContainerSizeOffset: number;\r\n\r\n private _onPointerDownHandlerRef: (e: PointerEvent) => any;\r\n private _onPointerMoveHandlerRef: (e: PointerEvent) => any;\r\n private _onPointerUpHandlerRef: (e: PointerEvent) => any;\r\n private _onResize: (e: any) => any;\r\n\r\n /**\r\n * Creates a new virtual joystick\r\n * @param leftJoystick defines that the joystick is for left hand (false by default)\r\n * @param customizations Defines the options we want to customize the VirtualJoystick\r\n */\r\n constructor(leftJoystick?: boolean, customizations?: Partial<IVirtualJoystickCustomizations>) {\r\n const options = {\r\n ...VirtualJoystick._GetDefaultOptions(),\r\n ...customizations,\r\n };\r\n\r\n if (leftJoystick) {\r\n this._leftJoystick = true;\r\n } else {\r\n this._leftJoystick = false;\r\n }\r\n\r\n VirtualJoystick._GlobalJoystickIndex++;\r\n\r\n // By default left & right arrow keys are moving the X\r\n // and up & down keys are moving the Y\r\n this._axisTargetedByLeftAndRight = JoystickAxis.X;\r\n this._axisTargetedByUpAndDown = JoystickAxis.Y;\r\n\r\n this.reverseLeftRight = false;\r\n this.reverseUpDown = false;\r\n\r\n // collections of pointers\r\n this._touches = new StringDictionary<{ x: number; y: number; prevX: number; prevY: number } | PointerEvent>();\r\n this.deltaPosition = Vector3.Zero();\r\n\r\n this._joystickSensibility = 25;\r\n this._inversedSensibility = 1 / (this._joystickSensibility / 1000);\r\n\r\n this._onResize = () => {\r\n VirtualJoystick._VjCanvasWidth = window.innerWidth;\r\n VirtualJoystick._VjCanvasHeight = window.innerHeight;\r\n if (VirtualJoystick.Canvas) {\r\n VirtualJoystick.Canvas.width = VirtualJoystick._VjCanvasWidth;\r\n VirtualJoystick.Canvas.height = VirtualJoystick._VjCanvasHeight;\r\n }\r\n VirtualJoystick._HalfWidth = VirtualJoystick._VjCanvasWidth / 2;\r\n };\r\n\r\n // injecting a canvas element on top of the canvas 3D game\r\n if (!VirtualJoystick.Canvas) {\r\n window.addEventListener(\"resize\", this._onResize, false);\r\n VirtualJoystick.Canvas = document.createElement(\"canvas\");\r\n VirtualJoystick._VjCanvasWidth = window.innerWidth;\r\n VirtualJoystick._VjCanvasHeight = window.innerHeight;\r\n VirtualJoystick.Canvas.width = window.innerWidth;\r\n VirtualJoystick.Canvas.height = window.innerHeight;\r\n VirtualJoystick.Canvas.style.width = \"100%\";\r\n VirtualJoystick.Canvas.style.height = \"100%\";\r\n VirtualJoystick.Canvas.style.position = \"absolute\";\r\n VirtualJoystick.Canvas.style.backgroundColor = \"transparent\";\r\n VirtualJoystick.Canvas.style.top = \"0px\";\r\n VirtualJoystick.Canvas.style.left = \"0px\";\r\n VirtualJoystick.Canvas.style.zIndex = \"5\";\r\n VirtualJoystick.Canvas.style.touchAction = \"none\"; // fix https://forum.babylonjs.com/t/virtualjoystick-needs-to-set-style-touch-action-none-explicitly/9562\r\n // Support for jQuery PEP polyfill\r\n VirtualJoystick.Canvas.setAttribute(\"touch-action\", \"none\");\r\n const context = VirtualJoystick.Canvas.getContext(\"2d\");\r\n\r\n if (!context) {\r\n throw new Error(\"Unable to create canvas for virtual joystick\");\r\n }\r\n\r\n VirtualJoystick._VjCanvasContext = context;\r\n VirtualJoystick._VjCanvasContext.strokeStyle = \"#ffffff\";\r\n VirtualJoystick._VjCanvasContext.lineWidth = 2;\r\n document.body.appendChild(VirtualJoystick.Canvas);\r\n }\r\n VirtualJoystick._HalfWidth = VirtualJoystick.Canvas.width / 2;\r\n this.pressed = false;\r\n this.limitToContainer = options.limitToContainer;\r\n\r\n // default joystick color\r\n this._joystickColor = options.color;\r\n\r\n // default joystick size\r\n this.containerSize = options.containerSize;\r\n this.puckSize = options.puckSize;\r\n\r\n if (options.position) {\r\n this.setPosition(options.position.x, options.position.y);\r\n }\r\n if (options.puckImage) {\r\n this.setPuckImage(options.puckImage);\r\n }\r\n if (options.containerImage) {\r\n this.setContainerImage(options.containerImage);\r\n }\r\n if (options.alwaysVisible) {\r\n VirtualJoystick._AlwaysVisibleSticks++;\r\n }\r\n\r\n // must come after position potentially set\r\n this.alwaysVisible = options.alwaysVisible;\r\n\r\n this._joystickPointerId = -1;\r\n // current joystick position\r\n this._joystickPointerPos = new Vector2(0, 0);\r\n this._joystickPreviousPointerPos = new Vector2(0, 0);\r\n // origin joystick position\r\n this._joystickPointerStartPos = new Vector2(0, 0);\r\n this._deltaJoystickVector = new Vector2(0, 0);\r\n\r\n this._onPointerDownHandlerRef = (evt) => {\r\n this._onPointerDown(evt);\r\n };\r\n this._onPointerMoveHandlerRef = (evt) => {\r\n this._onPointerMove(evt);\r\n };\r\n this._onPointerUpHandlerRef = (evt) => {\r\n this._onPointerUp(evt);\r\n };\r\n\r\n VirtualJoystick.Canvas.addEventListener(\"pointerdown\", this._onPointerDownHandlerRef, false);\r\n VirtualJoystick.Canvas.addEventListener(\"pointermove\", this._onPointerMoveHandlerRef, false);\r\n VirtualJoystick.Canvas.addEventListener(\"pointerup\", this._onPointerUpHandlerRef, false);\r\n VirtualJoystick.Canvas.addEventListener(\"pointerout\", this._onPointerUpHandlerRef, false);\r\n VirtualJoystick.Canvas.addEventListener(\"pointercancel\", this._onPointerUpHandlerRef, false);\r\n VirtualJoystick.Canvas.addEventListener(\r\n \"contextmenu\",\r\n (evt) => {\r\n evt.preventDefault(); // Disables system menu\r\n },\r\n false\r\n );\r\n requestAnimationFrame(() => {\r\n this._drawVirtualJoystick();\r\n });\r\n }\r\n\r\n /**\r\n * Defines joystick sensibility (ie. the ratio between a physical move and virtual joystick position change)\r\n * @param newJoystickSensibility defines the new sensibility\r\n */\r\n public setJoystickSensibility(newJoystickSensibility: number) {\r\n this._joystickSensibility = newJoystickSensibility;\r\n this._inversedSensibility = 1 / (this._joystickSensibility / 1000);\r\n }\r\n\r\n private _onPointerDown(e: PointerEvent) {\r\n let positionOnScreenCondition: boolean;\r\n\r\n e.preventDefault();\r\n\r\n if (this._leftJoystick === true) {\r\n positionOnScreenCondition = e.clientX < VirtualJoystick._HalfWidth;\r\n } else {\r\n positionOnScreenCondition = e.clientX > VirtualJoystick._HalfWidth;\r\n }\r\n\r\n if (positionOnScreenCondition && this._joystickPointerId < 0) {\r\n // First contact will be dedicated to the virtual joystick\r\n this._joystickPointerId = e.pointerId;\r\n\r\n if (this._joystickPosition) {\r\n this._joystickPointerStartPos = this._joystickPosition.clone();\r\n this._joystickPointerPos = this._joystickPosition.clone();\r\n this._joystickPreviousPointerPos = this._joystickPosition.clone();\r\n\r\n // in case the user only clicks down && doesn't move:\r\n // this ensures the delta is properly set\r\n this._onPointerMove(e);\r\n } else {\r\n this._joystickPointerStartPos.x = e.clientX;\r\n this._joystickPointerStartPos.y = e.clientY;\r\n this._joystickPointerPos = this._joystickPointerStartPos.clone();\r\n this._joystickPreviousPointerPos = this._joystickPointerStartPos.clone();\r\n }\r\n\r\n this._deltaJoystickVector.x = 0;\r\n this._deltaJoystickVector.y = 0;\r\n this.pressed = true;\r\n this._touches.add(e.pointerId.toString(), e);\r\n } else {\r\n // You can only trigger the action buttons with a joystick declared\r\n if (VirtualJoystick._GlobalJoystickIndex < 2 && this._action) {\r\n this._action();\r\n this._touches.add(e.pointerId.toString(), { x: e.clientX, y: e.clientY, prevX: e.clientX, prevY: e.clientY });\r\n }\r\n }\r\n }\r\n\r\n private _onPointerMove(e: PointerEvent) {\r\n // If the current pointer is the one associated to the joystick (first touch contact)\r\n if (this._joystickPointerId == e.pointerId) {\r\n // limit to container if need be\r\n if (this.limitToContainer) {\r\n const vector = new Vector2(e.clientX - this._joystickPointerStartPos.x, e.clientY - this._joystickPointerStartPos.y);\r\n const distance = vector.length();\r\n\r\n if (distance > this.containerSize) {\r\n vector.scaleInPlace(this.containerSize / distance);\r\n }\r\n\r\n this._joystickPointerPos.x = this._joystickPointerStartPos.x + vector.x;\r\n this._joystickPointerPos.y = this._joystickPointerStartPos.y + vector.y;\r\n } else {\r\n this._joystickPointerPos.x = e.clientX;\r\n this._joystickPointerPos.y = e.clientY;\r\n }\r\n\r\n // create delta vector\r\n this._deltaJoystickVector = this._joystickPointerPos.clone();\r\n this._deltaJoystickVector = this._deltaJoystickVector.subtract(this._joystickPointerStartPos);\r\n\r\n // if a joystick is always visible, there will be clipping issues if\r\n // you drag the puck from one over the container of the other\r\n if (0 < VirtualJoystick._AlwaysVisibleSticks) {\r\n if (this._leftJoystick) {\r\n this._joystickPointerPos.x = Math.min(VirtualJoystick._HalfWidth, this._joystickPointerPos.x);\r\n } else {\r\n this._joystickPointerPos.x = Math.max(VirtualJoystick._HalfWidth, this._joystickPointerPos.x);\r\n }\r\n }\r\n\r\n const directionLeftRight = this.reverseLeftRight ? -1 : 1;\r\n const deltaJoystickX = (directionLeftRight * this._deltaJoystickVector.x) / this._inversedSensibility;\r\n switch (this._axisTargetedByLeftAndRight) {\r\n case JoystickAxis.X:\r\n this.deltaPosition.x = Math.min(1, Math.max(-1, deltaJoystickX));\r\n break;\r\n case JoystickAxis.Y:\r\n this.deltaPosition.y = Math.min(1, Math.max(-1, deltaJoystickX));\r\n break;\r\n case JoystickAxis.Z:\r\n this.deltaPosition.z = Math.min(1, Math.max(-1, deltaJoystickX));\r\n break;\r\n }\r\n const directionUpDown = this.reverseUpDown ? 1 : -1;\r\n const deltaJoystickY = (directionUpDown * this._deltaJoystickVector.y) / this._inversedSensibility;\r\n switch (this._axisTargetedByUpAndDown) {\r\n case JoystickAxis.X:\r\n this.deltaPosition.x = Math.min(1, Math.max(-1, deltaJoystickY));\r\n break;\r\n case JoystickAxis.Y:\r\n this.deltaPosition.y = Math.min(1, Math.max(-1, deltaJoystickY));\r\n break;\r\n case JoystickAxis.Z:\r\n this.deltaPosition.z = Math.min(1, Math.max(-1, deltaJoystickY));\r\n break;\r\n }\r\n } else {\r\n const data = this._touches.get(e.pointerId.toString());\r\n if (data) {\r\n (data as any).x = e.clientX;\r\n (data as any).y = e.clientY;\r\n }\r\n }\r\n }\r\n\r\n private _onPointerUp(e: PointerEvent) {\r\n if (this._joystickPointerId == e.pointerId) {\r\n this._clearPreviousDraw();\r\n\r\n this._joystickPointerId = -1;\r\n this.pressed = false;\r\n } else {\r\n const touch = <{ x: number; y: number; prevX: number; prevY: number }>this._touches.get(e.pointerId.toString());\r\n if (touch) {\r\n VirtualJoystick._VjCanvasContext.clearRect(touch.prevX - 44, touch.prevY - 44, 88, 88);\r\n }\r\n }\r\n this._deltaJoystickVector.x = 0;\r\n this._deltaJoystickVector.y = 0;\r\n\r\n this._touches.remove(e.pointerId.toString());\r\n }\r\n\r\n /**\r\n * Change the color of the virtual joystick\r\n * @param newColor a string that must be a CSS color value (like \"red\") or the hexa value (like \"#FF0000\")\r\n */\r\n public setJoystickColor(newColor: string) {\r\n this._joystickColor = newColor;\r\n }\r\n\r\n /**\r\n * Size of the joystick's container\r\n */\r\n public set containerSize(newSize: number) {\r\n this._joystickContainerSize = newSize;\r\n this._clearContainerSize = ~~(this._joystickContainerSize * 2.1);\r\n this._clearContainerSizeOffset = ~~(this._clearContainerSize / 2);\r\n }\r\n public get containerSize() {\r\n return this._joystickContainerSize;\r\n }\r\n\r\n /**\r\n * Size of the joystick's puck\r\n */\r\n public set puckSize(newSize: number) {\r\n this._joystickPuckSize = newSize;\r\n this._clearPuckSize = ~~(this._joystickPuckSize * 2.1);\r\n this._clearPuckSizeOffset = ~~(this._clearPuckSize / 2);\r\n }\r\n public get puckSize() {\r\n return this._joystickPuckSize;\r\n }\r\n\r\n /**\r\n * Clears the set position of the joystick\r\n */\r\n public clearPosition() {\r\n this.alwaysVisible = false;\r\n\r\n this._joystickPosition = null;\r\n }\r\n\r\n /**\r\n * Defines whether or not the joystick container is always visible\r\n */\r\n public set alwaysVisible(value: boolean) {\r\n if (this._alwaysVisible === value) {\r\n return;\r\n }\r\n\r\n if (value && this._joystickPosition) {\r\n VirtualJoystick._AlwaysVisibleSticks++;\r\n\r\n this._alwaysVisible = true;\r\n } else {\r\n VirtualJoystick._AlwaysVisibleSticks--;\r\n\r\n this._alwaysVisible = false;\r\n }\r\n }\r\n public get alwaysVisible() {\r\n return this._alwaysVisible;\r\n }\r\n\r\n /**\r\n * Sets the constant position of the Joystick container\r\n * @param x X axis coordinate\r\n * @param y Y axis coordinate\r\n */\r\n public setPosition(x: number, y: number) {\r\n // just in case position is moved while the container is visible\r\n if (this._joystickPointerStartPos) {\r\n this._clearPreviousDraw();\r\n }\r\n\r\n this._joystickPosition = new Vector2(x, y);\r\n }\r\n\r\n /**\r\n * Defines a callback to call when the joystick is touched\r\n * @param action defines the callback\r\n */\r\n public setActionOnTouch(action: () => any) {\r\n this._action = action;\r\n }\r\n\r\n /**\r\n * Defines which axis you'd like to control for left & right\r\n * @param axis defines the axis to use\r\n */\r\n public setAxisForLeftRight(axis: JoystickAxis) {\r\n switch (axis) {\r\n case JoystickAxis.X:\r\n case JoystickAxis.Y:\r\n case JoystickAxis.Z:\r\n this._axisTargetedByLeftAndRight = axis;\r\n break;\r\n default:\r\n this._axisTargetedByLeftAndRight = JoystickAxis.X;\r\n break;\r\n }\r\n }\r\n\r\n /**\r\n * Defines which axis you'd like to control for up & down\r\n * @param axis defines the axis to use\r\n */\r\n public setAxisForUpDown(axis: JoystickAxis) {\r\n switch (axis) {\r\n case JoystickAxis.X:\r\n case JoystickAxis.Y:\r\n case JoystickAxis.Z:\r\n this._axisTargetedByUpAndDown = axis;\r\n break;\r\n default:\r\n this._axisTargetedByUpAndDown = JoystickAxis.Y;\r\n break;\r\n }\r\n }\r\n\r\n /**\r\n * Clears the canvas from the previous puck / container draw\r\n */\r\n private _clearPreviousDraw() {\r\n const jp = this._joystickPosition || this._joystickPointerStartPos;\r\n\r\n // clear container pixels\r\n VirtualJoystick._VjCanvasContext.clearRect(\r\n jp.x - this._clearContainerSizeOffset,\r\n jp.y - this._clearContainerSizeOffset,\r\n this._clearContainerSize,\r\n this._clearContainerSize\r\n );\r\n\r\n // clear puck pixels + 1 pixel for the change made before it moved\r\n VirtualJoystick._VjCanvasContext.clearRect(\r\n this._joystickPreviousPointerPos.x - this._clearPuckSizeOffset - 1,\r\n this._joystickPreviousPointerPos.y - this._clearPuckSizeOffset - 1,\r\n this._clearPuckSize + 2,\r\n this._clearPuckSize + 2\r\n );\r\n }\r\n\r\n /**\r\n * Loads `urlPath` to be used for the container's image\r\n * @param urlPath defines the urlPath of an image to use\r\n */\r\n public setContainerImage(urlPath: string) {\r\n const image = new Image();\r\n image.src = urlPath;\r\n\r\n image.onload = () => (this._containerImage = image);\r\n }\r\n\r\n /**\r\n * Loads `urlPath` to be used for the puck's image\r\n * @param urlPath defines the urlPath of an image to use\r\n */\r\n public setPuckImage(urlPath: string) {\r\n const image = new Image();\r\n image.src = urlPath;\r\n\r\n image.onload = () => (this._puckImage = image);\r\n }\r\n\r\n /**\r\n * Draws the Virtual Joystick's container\r\n */\r\n private _drawContainer() {\r\n const jp = this._joystickPosition || this._joystickPointerStartPos;\r\n\r\n this._clearPreviousDraw();\r\n\r\n if (this._containerImage) {\r\n VirtualJoystick._VjCanvasContext.drawImage(this._containerImage, jp.x - this.containerSize, jp.y - this.containerSize, this.containerSize * 2, this.containerSize * 2);\r\n } else {\r\n // outer container\r\n VirtualJoystick._VjCanvasContext.beginPath();\r\n VirtualJoystick._VjCanvasContext.strokeStyle = this._joystickColor;\r\n VirtualJoystick._VjCanvasContext.lineWidth = 2;\r\n VirtualJoystick._VjCanvasContext.arc(jp.x, jp.y, this.containerSize, 0, Math.PI * 2, true);\r\n VirtualJoystick._VjCanvasContext.stroke();\r\n VirtualJoystick._VjCanvasContext.closePath();\r\n\r\n // inner container\r\n VirtualJoystick._VjCanvasContext.beginPath();\r\n VirtualJoystick._VjCanvasContext.lineWidth = 6;\r\n VirtualJoystick._VjCanvasContext.strokeStyle = this._joystickColor;\r\n VirtualJoystick._VjCanvasContext.arc(jp.x, jp.y, this.puckSize, 0, Math.PI * 2, true);\r\n VirtualJoystick._VjCanvasContext.stroke();\r\n VirtualJoystick._VjCanvasContext.closePath();\r\n }\r\n }\r\n\r\n /**\r\n * Draws the Virtual Joystick's puck\r\n */\r\n private _drawPuck() {\r\n if (this._puckImage) {\r\n VirtualJoystick._VjCanvasContext.drawImage(\r\n this._puckImage,\r\n this._joystickPointerPos.x - this.puckSize,\r\n this._joystickPointerPos.y - this.puckSize,\r\n this.puckSize * 2,\r\n this.puckSize * 2\r\n );\r\n } else {\r\n VirtualJoystick._VjCanvasContext.beginPath();\r\n VirtualJoystick._VjCanvasContext.strokeStyle = this._joystickColor;\r\n VirtualJoystick._VjCanvasContext.lineWidth = 2;\r\n VirtualJoystick._VjCanvasContext.arc(this._joystickPointerPos.x, this._joystickPointerPos.y, this.puckSize, 0, Math.PI * 2, true);\r\n VirtualJoystick._VjCanvasContext.stroke();\r\n VirtualJoystick._VjCanvasContext.closePath();\r\n }\r\n }\r\n\r\n private _drawVirtualJoystick() {\r\n // canvas released? don't continue iterating\r\n if (this._released) {\r\n return;\r\n }\r\n if (this.alwaysVisible) {\r\n this._drawContainer();\r\n }\r\n\r\n if (this.pressed) {\r\n this._touches.forEach((key, touch) => {\r\n if ((<PointerEvent>touch).pointerId === this._joystickPointerId) {\r\n if (!this.alwaysVisible) {\r\n this._drawContainer();\r\n }\r\n\r\n this._drawPuck();\r\n\r\n // store current pointer for next clear\r\n this._joystickPreviousPointerPos = this._joystickPointerPos.clone();\r\n } else {\r\n VirtualJoystick._VjCanvasContext.clearRect((<any>touch).prevX - 44, (<any>touch).prevY - 44, 88, 88);\r\n VirtualJoystick._VjCanvasContext.beginPath();\r\n VirtualJoystick._VjCanvasContext.fillStyle = \"white\";\r\n VirtualJoystick._VjCanvasContext.beginPath();\r\n VirtualJoystick._VjCanvasContext.strokeStyle = \"red\";\r\n VirtualJoystick._VjCanvasContext.lineWidth = 6;\r\n VirtualJoystick._VjCanvasContext.arc(touch.x, touch.y, 40, 0, Math.PI * 2, true);\r\n VirtualJoystick._VjCanvasContext.stroke();\r\n VirtualJoystick._VjCanvasContext.closePath();\r\n (<any>touch).prevX = touch.x;\r\n (<any>touch).prevY = touch.y;\r\n }\r\n });\r\n }\r\n requestAnimationFrame(() => {\r\n this._drawVirtualJoystick();\r\n });\r\n }\r\n\r\n /**\r\n * Release internal HTML canvas\r\n */\r\n public releaseCanvas() {\r\n if (VirtualJoystick.Canvas) {\r\n VirtualJoystick.Canvas.removeEventListener(\"pointerdown\", this._onPointerDownHandlerRef);\r\n VirtualJoystick.Canvas.removeEventListener(\"pointermove\", this._onPointerMoveHandlerRef);\r\n VirtualJoystick.Canvas.removeEventListener(\"pointerup\", this._onPointerUpHandlerRef);\r\n VirtualJoystick.Canvas.removeEventListener(\"pointerout\", this._onPointerUpHandlerRef);\r\n VirtualJoystick.Canvas.removeEventListener(\"pointercancel\", this._onPointerUpHandlerRef);\r\n window.removeEventListener(\"resize\", this._onResize);\r\n document.body.removeChild(VirtualJoystick.Canvas);\r\n VirtualJoystick.Canvas = null;\r\n }\r\n this._released = true;\r\n }\r\n}\r\n"]}
1
+ {"version":3,"file":"virtualJoystick.js","sourceRoot":"","sources":["../../../../dev/core/src/Misc/virtualJoystick.ts"],"names":[],"mappings":"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","sourcesContent":["import { type Nullable } from \"../types\";\r\nimport { Vector3, Vector2 } from \"../Maths/math.vector.pure\";\r\nimport { StringDictionary } from \"./stringDictionary\";\r\n\r\n// Mainly based on these 2 articles :\r\n// Creating an universal virtual touch joystick working for all Touch models thanks to Hand.JS : http://blogs.msdn.com/b/davrous/archive/2013/02/22/creating-an-universal-virtual-touch-joystick-working-for-all-touch-models-thanks-to-hand-js.aspx\r\n// & on Seb Lee-Delisle original work: http://seb.ly/2011/04/multi-touch-game-controller-in-javascripthtml5-for-ipad/\r\n\r\n/**\r\n * Defines the potential axis of a Joystick\r\n */\r\nexport const enum JoystickAxis {\r\n /** X axis */\r\n X,\r\n /** Y axis */\r\n Y,\r\n /** Z axis */\r\n Z,\r\n}\r\n\r\n/**\r\n * Represents the different customization options available\r\n * for VirtualJoystick\r\n */\r\ninterface IVirtualJoystickCustomizations {\r\n /**\r\n * Size of the joystick's puck\r\n */\r\n puckSize: number;\r\n /**\r\n * Size of the joystick's container\r\n */\r\n containerSize: number;\r\n /**\r\n * Color of the joystick && puck\r\n */\r\n color: string;\r\n /**\r\n * Image URL for the joystick's puck\r\n */\r\n puckImage?: string;\r\n /**\r\n * Image URL for the joystick's container\r\n */\r\n containerImage?: string;\r\n /**\r\n * Defines the unmoving position of the joystick container\r\n */\r\n position?: { x: number; y: number };\r\n /**\r\n * Defines whether or not the joystick container is always visible\r\n */\r\n alwaysVisible: boolean;\r\n /**\r\n * Defines whether or not to limit the movement of the puck to the joystick's container\r\n */\r\n limitToContainer: boolean;\r\n}\r\n\r\n/**\r\n * Class used to define virtual joystick (used in touch mode)\r\n */\r\nexport class VirtualJoystick {\r\n /**\r\n * Gets or sets a boolean indicating that left and right values must be inverted\r\n */\r\n public reverseLeftRight: boolean;\r\n /**\r\n * Gets or sets a boolean indicating that up and down values must be inverted\r\n */\r\n public reverseUpDown: boolean;\r\n /**\r\n * Gets the offset value for the position (ie. the change of the position value)\r\n */\r\n public deltaPosition: Vector3;\r\n /**\r\n * Gets a boolean indicating if the virtual joystick was pressed\r\n */\r\n public pressed: boolean;\r\n /**\r\n * Canvas the virtual joystick will render onto, default z-index of this is 5\r\n */\r\n public static Canvas: Nullable<HTMLCanvasElement>;\r\n\r\n /**\r\n * boolean indicating whether or not the joystick's puck's movement should be limited to the joystick's container area\r\n */\r\n public limitToContainer: boolean;\r\n\r\n // Used to draw the virtual joystick inside a 2D canvas on top of the WebGL rendering canvas\r\n private static _GlobalJoystickIndex: number = 0;\r\n private static _AlwaysVisibleSticks: number = 0;\r\n private static _VjCanvasContext: CanvasRenderingContext2D;\r\n private static _VjCanvasWidth: number;\r\n private static _VjCanvasHeight: number;\r\n private static _HalfWidth: number;\r\n private static _GetDefaultOptions(): IVirtualJoystickCustomizations {\r\n return {\r\n puckSize: 40,\r\n containerSize: 60,\r\n color: \"cyan\",\r\n puckImage: undefined,\r\n containerImage: undefined,\r\n position: undefined,\r\n alwaysVisible: false,\r\n limitToContainer: false,\r\n };\r\n }\r\n\r\n private _action: () => any;\r\n private _axisTargetedByLeftAndRight: JoystickAxis;\r\n private _axisTargetedByUpAndDown: JoystickAxis;\r\n private _joystickSensibility: number;\r\n private _inversedSensibility: number;\r\n private _joystickPointerId: number;\r\n private _joystickColor: string;\r\n private _joystickPointerPos: Vector2;\r\n private _joystickPreviousPointerPos: Vector2;\r\n private _joystickPointerStartPos: Vector2;\r\n private _deltaJoystickVector: Vector2;\r\n private _leftJoystick: boolean;\r\n private _touches: StringDictionary<{ x: number; y: number; prevX: number; prevY: number } | PointerEvent>;\r\n private _joystickPosition: Nullable<Vector2>;\r\n private _alwaysVisible: boolean;\r\n private _puckImage: HTMLImageElement;\r\n private _containerImage: HTMLImageElement;\r\n private _released = false;\r\n\r\n // size properties\r\n private _joystickPuckSize: number;\r\n private _joystickContainerSize: number;\r\n private _clearPuckSize: number;\r\n private _clearContainerSize: number;\r\n private _clearPuckSizeOffset: number;\r\n private _clearContainerSizeOffset: number;\r\n\r\n private _onPointerDownHandlerRef: (e: PointerEvent) => any;\r\n private _onPointerMoveHandlerRef: (e: PointerEvent) => any;\r\n private _onPointerUpHandlerRef: (e: PointerEvent) => any;\r\n private _onResize: (e: any) => any;\r\n\r\n /**\r\n * Creates a new virtual joystick\r\n * @param leftJoystick defines that the joystick is for left hand (false by default)\r\n * @param customizations Defines the options we want to customize the VirtualJoystick\r\n */\r\n constructor(leftJoystick?: boolean, customizations?: Partial<IVirtualJoystickCustomizations>) {\r\n const options = {\r\n ...VirtualJoystick._GetDefaultOptions(),\r\n ...customizations,\r\n };\r\n\r\n if (leftJoystick) {\r\n this._leftJoystick = true;\r\n } else {\r\n this._leftJoystick = false;\r\n }\r\n\r\n VirtualJoystick._GlobalJoystickIndex++;\r\n\r\n // By default left & right arrow keys are moving the X\r\n // and up & down keys are moving the Y\r\n this._axisTargetedByLeftAndRight = JoystickAxis.X;\r\n this._axisTargetedByUpAndDown = JoystickAxis.Y;\r\n\r\n this.reverseLeftRight = false;\r\n this.reverseUpDown = false;\r\n\r\n // collections of pointers\r\n this._touches = new StringDictionary<{ x: number; y: number; prevX: number; prevY: number } | PointerEvent>();\r\n this.deltaPosition = Vector3.Zero();\r\n\r\n this._joystickSensibility = 25;\r\n this._inversedSensibility = 1 / (this._joystickSensibility / 1000);\r\n\r\n this._onResize = () => {\r\n VirtualJoystick._VjCanvasWidth = window.innerWidth;\r\n VirtualJoystick._VjCanvasHeight = window.innerHeight;\r\n if (VirtualJoystick.Canvas) {\r\n VirtualJoystick.Canvas.width = VirtualJoystick._VjCanvasWidth;\r\n VirtualJoystick.Canvas.height = VirtualJoystick._VjCanvasHeight;\r\n }\r\n VirtualJoystick._HalfWidth = VirtualJoystick._VjCanvasWidth / 2;\r\n };\r\n\r\n // injecting a canvas element on top of the canvas 3D game\r\n if (!VirtualJoystick.Canvas) {\r\n window.addEventListener(\"resize\", this._onResize, false);\r\n VirtualJoystick.Canvas = document.createElement(\"canvas\");\r\n VirtualJoystick._VjCanvasWidth = window.innerWidth;\r\n VirtualJoystick._VjCanvasHeight = window.innerHeight;\r\n VirtualJoystick.Canvas.width = window.innerWidth;\r\n VirtualJoystick.Canvas.height = window.innerHeight;\r\n VirtualJoystick.Canvas.style.width = \"100%\";\r\n VirtualJoystick.Canvas.style.height = \"100%\";\r\n VirtualJoystick.Canvas.style.position = \"absolute\";\r\n VirtualJoystick.Canvas.style.backgroundColor = \"transparent\";\r\n VirtualJoystick.Canvas.style.top = \"0px\";\r\n VirtualJoystick.Canvas.style.left = \"0px\";\r\n VirtualJoystick.Canvas.style.zIndex = \"5\";\r\n VirtualJoystick.Canvas.style.touchAction = \"none\"; // fix https://forum.babylonjs.com/t/virtualjoystick-needs-to-set-style-touch-action-none-explicitly/9562\r\n // Support for jQuery PEP polyfill\r\n VirtualJoystick.Canvas.setAttribute(\"touch-action\", \"none\");\r\n const context = VirtualJoystick.Canvas.getContext(\"2d\");\r\n\r\n if (!context) {\r\n throw new Error(\"Unable to create canvas for virtual joystick\");\r\n }\r\n\r\n VirtualJoystick._VjCanvasContext = context;\r\n VirtualJoystick._VjCanvasContext.strokeStyle = \"#ffffff\";\r\n VirtualJoystick._VjCanvasContext.lineWidth = 2;\r\n document.body.appendChild(VirtualJoystick.Canvas);\r\n }\r\n VirtualJoystick._HalfWidth = VirtualJoystick.Canvas.width / 2;\r\n this.pressed = false;\r\n this.limitToContainer = options.limitToContainer;\r\n\r\n // default joystick color\r\n this._joystickColor = options.color;\r\n\r\n // default joystick size\r\n this.containerSize = options.containerSize;\r\n this.puckSize = options.puckSize;\r\n\r\n if (options.position) {\r\n this.setPosition(options.position.x, options.position.y);\r\n }\r\n if (options.puckImage) {\r\n this.setPuckImage(options.puckImage);\r\n }\r\n if (options.containerImage) {\r\n this.setContainerImage(options.containerImage);\r\n }\r\n if (options.alwaysVisible) {\r\n VirtualJoystick._AlwaysVisibleSticks++;\r\n }\r\n\r\n // must come after position potentially set\r\n this.alwaysVisible = options.alwaysVisible;\r\n\r\n this._joystickPointerId = -1;\r\n // current joystick position\r\n this._joystickPointerPos = new Vector2(0, 0);\r\n this._joystickPreviousPointerPos = new Vector2(0, 0);\r\n // origin joystick position\r\n this._joystickPointerStartPos = new Vector2(0, 0);\r\n this._deltaJoystickVector = new Vector2(0, 0);\r\n\r\n this._onPointerDownHandlerRef = (evt) => {\r\n this._onPointerDown(evt);\r\n };\r\n this._onPointerMoveHandlerRef = (evt) => {\r\n this._onPointerMove(evt);\r\n };\r\n this._onPointerUpHandlerRef = (evt) => {\r\n this._onPointerUp(evt);\r\n };\r\n\r\n VirtualJoystick.Canvas.addEventListener(\"pointerdown\", this._onPointerDownHandlerRef, false);\r\n VirtualJoystick.Canvas.addEventListener(\"pointermove\", this._onPointerMoveHandlerRef, false);\r\n VirtualJoystick.Canvas.addEventListener(\"pointerup\", this._onPointerUpHandlerRef, false);\r\n VirtualJoystick.Canvas.addEventListener(\"pointerout\", this._onPointerUpHandlerRef, false);\r\n VirtualJoystick.Canvas.addEventListener(\"pointercancel\", this._onPointerUpHandlerRef, false);\r\n VirtualJoystick.Canvas.addEventListener(\r\n \"contextmenu\",\r\n (evt) => {\r\n evt.preventDefault(); // Disables system menu\r\n },\r\n false\r\n );\r\n requestAnimationFrame(() => {\r\n this._drawVirtualJoystick();\r\n });\r\n }\r\n\r\n /**\r\n * Defines joystick sensibility (ie. the ratio between a physical move and virtual joystick position change)\r\n * @param newJoystickSensibility defines the new sensibility\r\n */\r\n public setJoystickSensibility(newJoystickSensibility: number) {\r\n this._joystickSensibility = newJoystickSensibility;\r\n this._inversedSensibility = 1 / (this._joystickSensibility / 1000);\r\n }\r\n\r\n private _onPointerDown(e: PointerEvent) {\r\n let positionOnScreenCondition: boolean;\r\n\r\n e.preventDefault();\r\n\r\n if (this._leftJoystick === true) {\r\n positionOnScreenCondition = e.clientX < VirtualJoystick._HalfWidth;\r\n } else {\r\n positionOnScreenCondition = e.clientX > VirtualJoystick._HalfWidth;\r\n }\r\n\r\n if (positionOnScreenCondition && this._joystickPointerId < 0) {\r\n // First contact will be dedicated to the virtual joystick\r\n this._joystickPointerId = e.pointerId;\r\n\r\n if (this._joystickPosition) {\r\n this._joystickPointerStartPos = this._joystickPosition.clone();\r\n this._joystickPointerPos = this._joystickPosition.clone();\r\n this._joystickPreviousPointerPos = this._joystickPosition.clone();\r\n\r\n // in case the user only clicks down && doesn't move:\r\n // this ensures the delta is properly set\r\n this._onPointerMove(e);\r\n } else {\r\n this._joystickPointerStartPos.x = e.clientX;\r\n this._joystickPointerStartPos.y = e.clientY;\r\n this._joystickPointerPos = this._joystickPointerStartPos.clone();\r\n this._joystickPreviousPointerPos = this._joystickPointerStartPos.clone();\r\n }\r\n\r\n this._deltaJoystickVector.x = 0;\r\n this._deltaJoystickVector.y = 0;\r\n this.pressed = true;\r\n this._touches.add(e.pointerId.toString(), e);\r\n } else {\r\n // You can only trigger the action buttons with a joystick declared\r\n if (VirtualJoystick._GlobalJoystickIndex < 2 && this._action) {\r\n this._action();\r\n this._touches.add(e.pointerId.toString(), { x: e.clientX, y: e.clientY, prevX: e.clientX, prevY: e.clientY });\r\n }\r\n }\r\n }\r\n\r\n private _onPointerMove(e: PointerEvent) {\r\n // If the current pointer is the one associated to the joystick (first touch contact)\r\n if (this._joystickPointerId == e.pointerId) {\r\n // limit to container if need be\r\n if (this.limitToContainer) {\r\n const vector = new Vector2(e.clientX - this._joystickPointerStartPos.x, e.clientY - this._joystickPointerStartPos.y);\r\n const distance = vector.length();\r\n\r\n if (distance > this.containerSize) {\r\n vector.scaleInPlace(this.containerSize / distance);\r\n }\r\n\r\n this._joystickPointerPos.x = this._joystickPointerStartPos.x + vector.x;\r\n this._joystickPointerPos.y = this._joystickPointerStartPos.y + vector.y;\r\n } else {\r\n this._joystickPointerPos.x = e.clientX;\r\n this._joystickPointerPos.y = e.clientY;\r\n }\r\n\r\n // create delta vector\r\n this._deltaJoystickVector = this._joystickPointerPos.clone();\r\n this._deltaJoystickVector = this._deltaJoystickVector.subtract(this._joystickPointerStartPos);\r\n\r\n // if a joystick is always visible, there will be clipping issues if\r\n // you drag the puck from one over the container of the other\r\n if (0 < VirtualJoystick._AlwaysVisibleSticks) {\r\n if (this._leftJoystick) {\r\n this._joystickPointerPos.x = Math.min(VirtualJoystick._HalfWidth, this._joystickPointerPos.x);\r\n } else {\r\n this._joystickPointerPos.x = Math.max(VirtualJoystick._HalfWidth, this._joystickPointerPos.x);\r\n }\r\n }\r\n\r\n const directionLeftRight = this.reverseLeftRight ? -1 : 1;\r\n const deltaJoystickX = (directionLeftRight * this._deltaJoystickVector.x) / this._inversedSensibility;\r\n switch (this._axisTargetedByLeftAndRight) {\r\n case JoystickAxis.X:\r\n this.deltaPosition.x = Math.min(1, Math.max(-1, deltaJoystickX));\r\n break;\r\n case JoystickAxis.Y:\r\n this.deltaPosition.y = Math.min(1, Math.max(-1, deltaJoystickX));\r\n break;\r\n case JoystickAxis.Z:\r\n this.deltaPosition.z = Math.min(1, Math.max(-1, deltaJoystickX));\r\n break;\r\n }\r\n const directionUpDown = this.reverseUpDown ? 1 : -1;\r\n const deltaJoystickY = (directionUpDown * this._deltaJoystickVector.y) / this._inversedSensibility;\r\n switch (this._axisTargetedByUpAndDown) {\r\n case JoystickAxis.X:\r\n this.deltaPosition.x = Math.min(1, Math.max(-1, deltaJoystickY));\r\n break;\r\n case JoystickAxis.Y:\r\n this.deltaPosition.y = Math.min(1, Math.max(-1, deltaJoystickY));\r\n break;\r\n case JoystickAxis.Z:\r\n this.deltaPosition.z = Math.min(1, Math.max(-1, deltaJoystickY));\r\n break;\r\n }\r\n } else {\r\n const data = this._touches.get(e.pointerId.toString());\r\n if (data) {\r\n (data as any).x = e.clientX;\r\n (data as any).y = e.clientY;\r\n }\r\n }\r\n }\r\n\r\n private _onPointerUp(e: PointerEvent) {\r\n if (this._joystickPointerId == e.pointerId) {\r\n this._clearPreviousDraw();\r\n\r\n this._joystickPointerId = -1;\r\n this.pressed = false;\r\n } else {\r\n const touch = <{ x: number; y: number; prevX: number; prevY: number }>this._touches.get(e.pointerId.toString());\r\n if (touch) {\r\n VirtualJoystick._VjCanvasContext.clearRect(touch.prevX - 44, touch.prevY - 44, 88, 88);\r\n }\r\n }\r\n this._deltaJoystickVector.x = 0;\r\n this._deltaJoystickVector.y = 0;\r\n\r\n this._touches.remove(e.pointerId.toString());\r\n }\r\n\r\n /**\r\n * Change the color of the virtual joystick\r\n * @param newColor a string that must be a CSS color value (like \"red\") or the hexa value (like \"#FF0000\")\r\n */\r\n public setJoystickColor(newColor: string) {\r\n this._joystickColor = newColor;\r\n }\r\n\r\n /**\r\n * Size of the joystick's container\r\n */\r\n public set containerSize(newSize: number) {\r\n this._joystickContainerSize = newSize;\r\n this._clearContainerSize = ~~(this._joystickContainerSize * 2.1);\r\n this._clearContainerSizeOffset = ~~(this._clearContainerSize / 2);\r\n }\r\n public get containerSize() {\r\n return this._joystickContainerSize;\r\n }\r\n\r\n /**\r\n * Size of the joystick's puck\r\n */\r\n public set puckSize(newSize: number) {\r\n this._joystickPuckSize = newSize;\r\n this._clearPuckSize = ~~(this._joystickPuckSize * 2.1);\r\n this._clearPuckSizeOffset = ~~(this._clearPuckSize / 2);\r\n }\r\n public get puckSize() {\r\n return this._joystickPuckSize;\r\n }\r\n\r\n /**\r\n * Clears the set position of the joystick\r\n */\r\n public clearPosition() {\r\n this.alwaysVisible = false;\r\n\r\n this._joystickPosition = null;\r\n }\r\n\r\n /**\r\n * Defines whether or not the joystick container is always visible\r\n */\r\n public set alwaysVisible(value: boolean) {\r\n if (this._alwaysVisible === value) {\r\n return;\r\n }\r\n\r\n if (value && this._joystickPosition) {\r\n VirtualJoystick._AlwaysVisibleSticks++;\r\n\r\n this._alwaysVisible = true;\r\n } else {\r\n VirtualJoystick._AlwaysVisibleSticks--;\r\n\r\n this._alwaysVisible = false;\r\n }\r\n }\r\n public get alwaysVisible() {\r\n return this._alwaysVisible;\r\n }\r\n\r\n /**\r\n * Sets the constant position of the Joystick container\r\n * @param x X axis coordinate\r\n * @param y Y axis coordinate\r\n */\r\n public setPosition(x: number, y: number) {\r\n // just in case position is moved while the container is visible\r\n if (this._joystickPointerStartPos) {\r\n this._clearPreviousDraw();\r\n }\r\n\r\n this._joystickPosition = new Vector2(x, y);\r\n }\r\n\r\n /**\r\n * Defines a callback to call when the joystick is touched\r\n * @param action defines the callback\r\n */\r\n public setActionOnTouch(action: () => any) {\r\n this._action = action;\r\n }\r\n\r\n /**\r\n * Defines which axis you'd like to control for left & right\r\n * @param axis defines the axis to use\r\n */\r\n public setAxisForLeftRight(axis: JoystickAxis) {\r\n switch (axis) {\r\n case JoystickAxis.X:\r\n case JoystickAxis.Y:\r\n case JoystickAxis.Z:\r\n this._axisTargetedByLeftAndRight = axis;\r\n break;\r\n default:\r\n this._axisTargetedByLeftAndRight = JoystickAxis.X;\r\n break;\r\n }\r\n }\r\n\r\n /**\r\n * Defines which axis you'd like to control for up & down\r\n * @param axis defines the axis to use\r\n */\r\n public setAxisForUpDown(axis: JoystickAxis) {\r\n switch (axis) {\r\n case JoystickAxis.X:\r\n case JoystickAxis.Y:\r\n case JoystickAxis.Z:\r\n this._axisTargetedByUpAndDown = axis;\r\n break;\r\n default:\r\n this._axisTargetedByUpAndDown = JoystickAxis.Y;\r\n break;\r\n }\r\n }\r\n\r\n /**\r\n * Clears the canvas from the previous puck / container draw\r\n */\r\n private _clearPreviousDraw() {\r\n const jp = this._joystickPosition || this._joystickPointerStartPos;\r\n\r\n // clear container pixels\r\n VirtualJoystick._VjCanvasContext.clearRect(\r\n jp.x - this._clearContainerSizeOffset,\r\n jp.y - this._clearContainerSizeOffset,\r\n this._clearContainerSize,\r\n this._clearContainerSize\r\n );\r\n\r\n // clear puck pixels + 1 pixel for the change made before it moved\r\n VirtualJoystick._VjCanvasContext.clearRect(\r\n this._joystickPreviousPointerPos.x - this._clearPuckSizeOffset - 1,\r\n this._joystickPreviousPointerPos.y - this._clearPuckSizeOffset - 1,\r\n this._clearPuckSize + 2,\r\n this._clearPuckSize + 2\r\n );\r\n }\r\n\r\n /**\r\n * Loads `urlPath` to be used for the container's image\r\n * @param urlPath defines the urlPath of an image to use\r\n */\r\n public setContainerImage(urlPath: string) {\r\n const image = new Image();\r\n image.src = urlPath;\r\n\r\n image.onload = () => (this._containerImage = image);\r\n }\r\n\r\n /**\r\n * Loads `urlPath` to be used for the puck's image\r\n * @param urlPath defines the urlPath of an image to use\r\n */\r\n public setPuckImage(urlPath: string) {\r\n const image = new Image();\r\n image.src = urlPath;\r\n\r\n image.onload = () => (this._puckImage = image);\r\n }\r\n\r\n /**\r\n * Draws the Virtual Joystick's container\r\n */\r\n private _drawContainer() {\r\n const jp = this._joystickPosition || this._joystickPointerStartPos;\r\n\r\n this._clearPreviousDraw();\r\n\r\n if (this._containerImage) {\r\n VirtualJoystick._VjCanvasContext.drawImage(this._containerImage, jp.x - this.containerSize, jp.y - this.containerSize, this.containerSize * 2, this.containerSize * 2);\r\n } else {\r\n // outer container\r\n VirtualJoystick._VjCanvasContext.beginPath();\r\n VirtualJoystick._VjCanvasContext.strokeStyle = this._joystickColor;\r\n VirtualJoystick._VjCanvasContext.lineWidth = 2;\r\n VirtualJoystick._VjCanvasContext.arc(jp.x, jp.y, this.containerSize, 0, Math.PI * 2, true);\r\n VirtualJoystick._VjCanvasContext.stroke();\r\n VirtualJoystick._VjCanvasContext.closePath();\r\n\r\n // inner container\r\n VirtualJoystick._VjCanvasContext.beginPath();\r\n VirtualJoystick._VjCanvasContext.lineWidth = 6;\r\n VirtualJoystick._VjCanvasContext.strokeStyle = this._joystickColor;\r\n VirtualJoystick._VjCanvasContext.arc(jp.x, jp.y, this.puckSize, 0, Math.PI * 2, true);\r\n VirtualJoystick._VjCanvasContext.stroke();\r\n VirtualJoystick._VjCanvasContext.closePath();\r\n }\r\n }\r\n\r\n /**\r\n * Draws the Virtual Joystick's puck\r\n */\r\n private _drawPuck() {\r\n if (this._puckImage) {\r\n VirtualJoystick._VjCanvasContext.drawImage(\r\n this._puckImage,\r\n this._joystickPointerPos.x - this.puckSize,\r\n this._joystickPointerPos.y - this.puckSize,\r\n this.puckSize * 2,\r\n this.puckSize * 2\r\n );\r\n } else {\r\n VirtualJoystick._VjCanvasContext.beginPath();\r\n VirtualJoystick._VjCanvasContext.strokeStyle = this._joystickColor;\r\n VirtualJoystick._VjCanvasContext.lineWidth = 2;\r\n VirtualJoystick._VjCanvasContext.arc(this._joystickPointerPos.x, this._joystickPointerPos.y, this.puckSize, 0, Math.PI * 2, true);\r\n VirtualJoystick._VjCanvasContext.stroke();\r\n VirtualJoystick._VjCanvasContext.closePath();\r\n }\r\n }\r\n\r\n private _drawVirtualJoystick() {\r\n // canvas released? don't continue iterating\r\n if (this._released) {\r\n return;\r\n }\r\n if (this.alwaysVisible) {\r\n this._drawContainer();\r\n }\r\n\r\n if (this.pressed) {\r\n this._touches.forEach((key, touch) => {\r\n if ((<PointerEvent>touch).pointerId === this._joystickPointerId) {\r\n if (!this.alwaysVisible) {\r\n this._drawContainer();\r\n }\r\n\r\n this._drawPuck();\r\n\r\n // store current pointer for next clear\r\n this._joystickPreviousPointerPos = this._joystickPointerPos.clone();\r\n } else {\r\n VirtualJoystick._VjCanvasContext.clearRect((<any>touch).prevX - 44, (<any>touch).prevY - 44, 88, 88);\r\n VirtualJoystick._VjCanvasContext.beginPath();\r\n VirtualJoystick._VjCanvasContext.fillStyle = \"white\";\r\n VirtualJoystick._VjCanvasContext.beginPath();\r\n VirtualJoystick._VjCanvasContext.strokeStyle = \"red\";\r\n VirtualJoystick._VjCanvasContext.lineWidth = 6;\r\n VirtualJoystick._VjCanvasContext.arc(touch.x, touch.y, 40, 0, Math.PI * 2, true);\r\n VirtualJoystick._VjCanvasContext.stroke();\r\n VirtualJoystick._VjCanvasContext.closePath();\r\n (<any>touch).prevX = touch.x;\r\n (<any>touch).prevY = touch.y;\r\n }\r\n });\r\n }\r\n requestAnimationFrame(() => {\r\n this._drawVirtualJoystick();\r\n });\r\n }\r\n\r\n /**\r\n * Release internal HTML canvas\r\n */\r\n public releaseCanvas() {\r\n if (VirtualJoystick.Canvas) {\r\n VirtualJoystick.Canvas.removeEventListener(\"pointerdown\", this._onPointerDownHandlerRef);\r\n VirtualJoystick.Canvas.removeEventListener(\"pointermove\", this._onPointerMoveHandlerRef);\r\n VirtualJoystick.Canvas.removeEventListener(\"pointerup\", this._onPointerUpHandlerRef);\r\n VirtualJoystick.Canvas.removeEventListener(\"pointerout\", this._onPointerUpHandlerRef);\r\n VirtualJoystick.Canvas.removeEventListener(\"pointercancel\", this._onPointerUpHandlerRef);\r\n window.removeEventListener(\"resize\", this._onResize);\r\n document.body.removeChild(VirtualJoystick.Canvas);\r\n VirtualJoystick.Canvas = null;\r\n }\r\n this._released = true;\r\n }\r\n}\r\n"]}
@@ -1,7 +1,7 @@
1
1
  import { __decorate } from "../tslib.es6.js";
2
2
  import { Observable } from "../Misc/observable.js";
3
3
  import { EngineStore } from "../Engines/engineStore.js";
4
- import { VertexBuffer } from "../Buffers/buffer.js";
4
+ import { VertexBuffer } from "../Buffers/buffer.pure.js";
5
5
  import { serialize } from "../Misc/decorators.js";
6
6
  import { SerializationHelper } from "../Misc/decorators.serialization.js";
7
7
  import { GetClass } from "../Misc/typeStore.js";
@@ -1 +1 @@
1
- {"version":3,"file":"morphTarget.js","sourceRoot":"","sources":["../../../../dev/core/src/Morph/morphTarget.ts"],"names":[],"mappings":"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","sourcesContent":["import { type IAnimatable } from \"../Animations/animatable.interface\";\r\nimport { Observable } from \"../Misc/observable\";\r\nimport { type Nullable, type FloatArray } from \"../types\";\r\nimport { type Scene } from \"../scene\";\r\nimport { EngineStore } from \"../Engines/engineStore\";\r\nimport { type AbstractMesh } from \"../Meshes/abstractMesh\";\r\nimport { VertexBuffer } from \"../Buffers/buffer\";\r\nimport { type AnimationPropertiesOverride } from \"../Animations/animationPropertiesOverride\";\r\nimport { serialize } from \"../Misc/decorators\";\r\nimport { SerializationHelper } from \"../Misc/decorators.serialization\";\r\nimport { GetClass } from \"../Misc/typeStore\";\r\nimport { type Animation } from \"../Animations/animation\";\r\nimport { type MorphTargetManager } from \"./morphTargetManager\";\r\n\r\n/**\r\n * Defines a target to use with MorphTargetManager\r\n * @see https://doc.babylonjs.com/features/featuresDeepDive/mesh/morphTargets\r\n */\r\nexport class MorphTarget implements IAnimatable {\r\n /**\r\n * Gets or sets the list of animations\r\n */\r\n public animations: Animation[] = [];\r\n\r\n private _scene: Nullable<Scene>;\r\n private _positions: Nullable<FloatArray> = null;\r\n private _normals: Nullable<FloatArray> = null;\r\n private _tangents: Nullable<FloatArray> = null;\r\n private _uvs: Nullable<FloatArray> = null;\r\n private _uv2s: Nullable<FloatArray> = null;\r\n private _colors: Nullable<FloatArray> = null;\r\n private _influence: number;\r\n private _uniqueId = 0;\r\n\r\n /**\r\n * Observable raised when the influence changes\r\n */\r\n public onInfluenceChanged = new Observable<boolean>();\r\n\r\n /** @internal */\r\n public _onDataLayoutChanged = new Observable<void>();\r\n\r\n /**\r\n * Gets or sets the influence of this target (ie. its weight in the overall morphing)\r\n */\r\n public get influence(): number {\r\n return this._influence;\r\n }\r\n\r\n public set influence(influence: number) {\r\n if (this._influence === influence) {\r\n return;\r\n }\r\n\r\n const previous = this._influence;\r\n this._influence = influence;\r\n\r\n if (this.onInfluenceChanged.hasObservers()) {\r\n this.onInfluenceChanged.notifyObservers(previous === 0 || influence === 0);\r\n }\r\n }\r\n\r\n /**\r\n * Gets or sets the id of the morph Target\r\n */\r\n @serialize()\r\n public id: string;\r\n\r\n /**\r\n * Gets or sets the morph target manager this morph target is associated with\r\n */\r\n @serialize()\r\n public morphTargetManager: Nullable<MorphTargetManager> = null;\r\n\r\n private _animationPropertiesOverride: Nullable<AnimationPropertiesOverride> = null;\r\n\r\n /**\r\n * Gets or sets the animation properties override\r\n */\r\n public get animationPropertiesOverride(): Nullable<AnimationPropertiesOverride> {\r\n if (!this._animationPropertiesOverride && this._scene) {\r\n return this._scene.animationPropertiesOverride;\r\n }\r\n return this._animationPropertiesOverride;\r\n }\r\n\r\n public set animationPropertiesOverride(value: Nullable<AnimationPropertiesOverride>) {\r\n this._animationPropertiesOverride = value;\r\n }\r\n\r\n /**\r\n * Creates a new MorphTarget\r\n * @param name defines the name of the target\r\n * @param influence defines the influence to use\r\n * @param scene defines the scene the morphtarget belongs to\r\n * @param morphTargetManager morph target manager this morph target is associated with\r\n */\r\n public constructor(\r\n public name: string,\r\n influence = 0,\r\n scene: Nullable<Scene> = null,\r\n morphTargetManager: Nullable<MorphTargetManager> = null\r\n ) {\r\n this.id = name;\r\n this.morphTargetManager = morphTargetManager;\r\n this._scene = scene || EngineStore.LastCreatedScene;\r\n this.influence = influence;\r\n\r\n if (this._scene) {\r\n this._uniqueId = this._scene.getUniqueId();\r\n }\r\n }\r\n\r\n /**\r\n * Gets the unique ID of this manager\r\n */\r\n public get uniqueId(): number {\r\n return this._uniqueId;\r\n }\r\n\r\n /**\r\n * Gets a boolean defining if the target contains position data\r\n */\r\n public get hasPositions(): boolean {\r\n return !!this._positions;\r\n }\r\n\r\n /**\r\n * Gets a boolean defining if the target contains normal data\r\n */\r\n public get hasNormals(): boolean {\r\n return !!this._normals;\r\n }\r\n\r\n /**\r\n * Gets a boolean defining if the target contains tangent data\r\n */\r\n public get hasTangents(): boolean {\r\n return !!this._tangents;\r\n }\r\n\r\n /**\r\n * Gets a boolean defining if the target contains texture coordinates data\r\n */\r\n public get hasUVs(): boolean {\r\n return !!this._uvs;\r\n }\r\n\r\n /**\r\n * Gets a boolean defining if the target contains texture coordinates 2 data\r\n */\r\n public get hasUV2s(): boolean {\r\n return !!this._uv2s;\r\n }\r\n\r\n public get hasColors(): boolean {\r\n return !!this._colors;\r\n }\r\n\r\n /**\r\n * Gets the number of vertices stored in this target\r\n */\r\n public get vertexCount(): number {\r\n return this._positions\r\n ? this._positions.length / 3\r\n : this._normals\r\n ? this._normals.length / 3\r\n : this._tangents\r\n ? this._tangents.length / 3\r\n : this._uvs\r\n ? this._uvs.length / 2\r\n : this._uv2s\r\n ? this._uv2s.length / 2\r\n : this._colors\r\n ? this._colors.length / 4\r\n : 0;\r\n }\r\n\r\n /**\r\n * Affects position data to this target\r\n * @param data defines the position data to use\r\n */\r\n public setPositions(data: Nullable<FloatArray>) {\r\n const hadPositions = this.hasPositions;\r\n\r\n this._positions = data;\r\n\r\n if (hadPositions !== this.hasPositions) {\r\n this._onDataLayoutChanged.notifyObservers(undefined);\r\n }\r\n }\r\n\r\n /**\r\n * Gets the position data stored in this target\r\n * @returns a FloatArray containing the position data (or null if not present)\r\n */\r\n public getPositions(): Nullable<FloatArray> {\r\n return this._positions;\r\n }\r\n\r\n /**\r\n * Affects normal data to this target\r\n * @param data defines the normal data to use\r\n */\r\n public setNormals(data: Nullable<FloatArray>) {\r\n const hadNormals = this.hasNormals;\r\n\r\n this._normals = data;\r\n\r\n if (hadNormals !== this.hasNormals) {\r\n this._onDataLayoutChanged.notifyObservers(undefined);\r\n }\r\n }\r\n\r\n /**\r\n * Gets the normal data stored in this target\r\n * @returns a FloatArray containing the normal data (or null if not present)\r\n */\r\n public getNormals(): Nullable<FloatArray> {\r\n return this._normals;\r\n }\r\n\r\n /**\r\n * Affects tangent data to this target\r\n * @param data defines the tangent data to use\r\n */\r\n public setTangents(data: Nullable<FloatArray>) {\r\n const hadTangents = this.hasTangents;\r\n\r\n this._tangents = data;\r\n\r\n if (hadTangents !== this.hasTangents) {\r\n this._onDataLayoutChanged.notifyObservers(undefined);\r\n }\r\n }\r\n\r\n /**\r\n * Gets the tangent data stored in this target\r\n * @returns a FloatArray containing the tangent data (or null if not present)\r\n */\r\n public getTangents(): Nullable<FloatArray> {\r\n return this._tangents;\r\n }\r\n\r\n /**\r\n * Affects texture coordinates data to this target\r\n * @param data defines the texture coordinates data to use\r\n */\r\n public setUVs(data: Nullable<FloatArray>) {\r\n const hadUVs = this.hasUVs;\r\n\r\n this._uvs = data;\r\n\r\n if (hadUVs !== this.hasUVs) {\r\n this._onDataLayoutChanged.notifyObservers(undefined);\r\n }\r\n }\r\n\r\n /**\r\n * Gets the texture coordinates data stored in this target\r\n * @returns a FloatArray containing the texture coordinates data (or null if not present)\r\n */\r\n public getUVs(): Nullable<FloatArray> {\r\n return this._uvs;\r\n }\r\n\r\n /**\r\n * Affects texture coordinates 2 data to this target\r\n * @param data defines the texture coordinates 2 data to use\r\n */\r\n public setUV2s(data: Nullable<FloatArray>) {\r\n const hadUV2s = this.hasUV2s;\r\n\r\n this._uv2s = data;\r\n\r\n if (hadUV2s !== this.hasUV2s) {\r\n this._onDataLayoutChanged.notifyObservers(undefined);\r\n }\r\n }\r\n\r\n /**\r\n * Gets the texture coordinates 2 data stored in this target\r\n * @returns a FloatArray containing the texture coordinates 2 data (or null if not present)\r\n */\r\n public getUV2s(): Nullable<FloatArray> {\r\n return this._uv2s;\r\n }\r\n\r\n /**\r\n * Affects color data to this target\r\n * @param data defines the color data to use\r\n */\r\n public setColors(data: Nullable<FloatArray>) {\r\n const hadColors = this.hasColors;\r\n\r\n this._colors = data;\r\n\r\n if (hadColors !== this.hasColors) {\r\n this._onDataLayoutChanged.notifyObservers(undefined);\r\n }\r\n }\r\n\r\n /**\r\n * Gets the color data stored in this target\r\n * @returns a FloatArray containing the color data (or null if not present)\r\n */\r\n public getColors(): Nullable<FloatArray> {\r\n return this._colors;\r\n }\r\n\r\n /**\r\n * Clone the current target\r\n * @returns a new MorphTarget\r\n */\r\n public clone(): MorphTarget {\r\n const newOne = SerializationHelper.Clone(() => new MorphTarget(this.name, this.influence, this._scene, this.morphTargetManager), this);\r\n\r\n newOne._positions = this._positions;\r\n newOne._normals = this._normals;\r\n newOne._tangents = this._tangents;\r\n newOne._uvs = this._uvs;\r\n newOne._uv2s = this._uv2s;\r\n newOne._colors = this._colors;\r\n\r\n return newOne;\r\n }\r\n\r\n /**\r\n * Serializes the current target into a Serialization object\r\n * @returns the serialized object\r\n */\r\n public serialize(): any {\r\n const serializationObject: any = {};\r\n\r\n serializationObject.name = this.name;\r\n serializationObject.influence = this.influence;\r\n\r\n if (this.id != null) {\r\n serializationObject.id = this.id;\r\n }\r\n serializationObject.uniqueId = this.uniqueId;\r\n\r\n serializationObject.positions = Array.prototype.slice.call(this.getPositions());\r\n if (this.hasNormals) {\r\n serializationObject.normals = Array.prototype.slice.call(this.getNormals());\r\n }\r\n if (this.hasTangents) {\r\n serializationObject.tangents = Array.prototype.slice.call(this.getTangents());\r\n }\r\n if (this.hasUVs) {\r\n serializationObject.uvs = Array.prototype.slice.call(this.getUVs());\r\n }\r\n if (this.hasUV2s) {\r\n serializationObject.uv2s = Array.prototype.slice.call(this.getUV2s());\r\n }\r\n if (this.hasColors) {\r\n serializationObject.colors = Array.prototype.slice.call(this.getColors());\r\n }\r\n\r\n // Animations\r\n SerializationHelper.AppendSerializedAnimations(this, serializationObject);\r\n\r\n return serializationObject;\r\n }\r\n\r\n /**\r\n * Returns the string \"MorphTarget\"\r\n * @returns \"MorphTarget\"\r\n */\r\n public getClassName(): string {\r\n return \"MorphTarget\";\r\n }\r\n\r\n // Statics\r\n\r\n /**\r\n * Creates a new target from serialized data\r\n * @param serializationObject defines the serialized data to use\r\n * @param scene defines the hosting scene\r\n * @param morphTargetManager morph target manager this morph target is associated with\r\n * @returns a new MorphTarget\r\n */\r\n public static Parse(serializationObject: any, scene?: Scene, morphTargetManager: Nullable<MorphTargetManager> = null): MorphTarget {\r\n const result = new MorphTarget(serializationObject.name, serializationObject.influence, scene, morphTargetManager);\r\n\r\n result.setPositions(serializationObject.positions);\r\n\r\n if (serializationObject.id != null) {\r\n result.id = serializationObject.id;\r\n }\r\n if (serializationObject.normals) {\r\n result.setNormals(serializationObject.normals);\r\n }\r\n if (serializationObject.tangents) {\r\n result.setTangents(serializationObject.tangents);\r\n }\r\n if (serializationObject.uvs) {\r\n result.setUVs(serializationObject.uvs);\r\n }\r\n if (serializationObject.uv2s) {\r\n result.setUV2s(serializationObject.uv2s);\r\n }\r\n if (serializationObject.colors) {\r\n result.setColors(serializationObject.colors);\r\n }\r\n\r\n // Animations\r\n if (serializationObject.animations) {\r\n for (let animationIndex = 0; animationIndex < serializationObject.animations.length; animationIndex++) {\r\n const parsedAnimation = serializationObject.animations[animationIndex];\r\n const internalClass = GetClass(\"BABYLON.Animation\");\r\n if (internalClass) {\r\n result.animations.push(internalClass.Parse(parsedAnimation));\r\n }\r\n }\r\n\r\n if (serializationObject.autoAnimate && scene) {\r\n scene.beginAnimation(\r\n result,\r\n serializationObject.autoAnimateFrom,\r\n serializationObject.autoAnimateTo,\r\n serializationObject.autoAnimateLoop,\r\n serializationObject.autoAnimateSpeed || 1.0\r\n );\r\n }\r\n }\r\n\r\n return result;\r\n }\r\n\r\n /**\r\n * Creates a MorphTarget from mesh data\r\n * @param mesh defines the source mesh\r\n * @param name defines the name to use for the new target\r\n * @param influence defines the influence to attach to the target\r\n * @returns a new MorphTarget\r\n */\r\n public static FromMesh(mesh: AbstractMesh, name?: string, influence?: number): MorphTarget {\r\n if (!name) {\r\n name = mesh.name;\r\n }\r\n\r\n const result = new MorphTarget(name, influence, mesh.getScene(), mesh.morphTargetManager);\r\n\r\n result.setPositions(<FloatArray>mesh.getVerticesData(VertexBuffer.PositionKind));\r\n\r\n if (mesh.isVerticesDataPresent(VertexBuffer.NormalKind)) {\r\n result.setNormals(<FloatArray>mesh.getVerticesData(VertexBuffer.NormalKind));\r\n }\r\n if (mesh.isVerticesDataPresent(VertexBuffer.TangentKind)) {\r\n result.setTangents(<FloatArray>mesh.getVerticesData(VertexBuffer.TangentKind));\r\n }\r\n if (mesh.isVerticesDataPresent(VertexBuffer.UVKind)) {\r\n result.setUVs(<FloatArray>mesh.getVerticesData(VertexBuffer.UVKind));\r\n }\r\n if (mesh.isVerticesDataPresent(VertexBuffer.UV2Kind)) {\r\n result.setUV2s(<FloatArray>mesh.getVerticesData(VertexBuffer.UV2Kind));\r\n }\r\n if (mesh.isVerticesDataPresent(VertexBuffer.ColorKind)) {\r\n result.setColors(<FloatArray>mesh.getVerticesData(VertexBuffer.ColorKind));\r\n }\r\n\r\n return result;\r\n }\r\n}\r\n"]}
1
+ {"version":3,"file":"morphTarget.js","sourceRoot":"","sources":["../../../../dev/core/src/Morph/morphTarget.ts"],"names":[],"mappings":"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","sourcesContent":["import { type IAnimatable } from \"../Animations/animatable.interface\";\r\nimport { Observable } from \"../Misc/observable\";\r\nimport { type Nullable, type FloatArray } from \"../types\";\r\nimport { type Scene } from \"../scene\";\r\nimport { EngineStore } from \"../Engines/engineStore\";\r\nimport { type AbstractMesh } from \"../Meshes/abstractMesh\";\r\nimport { VertexBuffer } from \"../Buffers/buffer.pure\";\r\nimport { type AnimationPropertiesOverride } from \"../Animations/animationPropertiesOverride\";\r\nimport { serialize } from \"../Misc/decorators\";\r\nimport { SerializationHelper } from \"../Misc/decorators.serialization\";\r\nimport { GetClass } from \"../Misc/typeStore\";\r\nimport { type Animation } from \"../Animations/animation\";\r\nimport { type MorphTargetManager } from \"./morphTargetManager\";\r\n\r\n/**\r\n * Defines a target to use with MorphTargetManager\r\n * @see https://doc.babylonjs.com/features/featuresDeepDive/mesh/morphTargets\r\n */\r\nexport class MorphTarget implements IAnimatable {\r\n /**\r\n * Gets or sets the list of animations\r\n */\r\n public animations: Animation[] = [];\r\n\r\n private _scene: Nullable<Scene>;\r\n private _positions: Nullable<FloatArray> = null;\r\n private _normals: Nullable<FloatArray> = null;\r\n private _tangents: Nullable<FloatArray> = null;\r\n private _uvs: Nullable<FloatArray> = null;\r\n private _uv2s: Nullable<FloatArray> = null;\r\n private _colors: Nullable<FloatArray> = null;\r\n private _influence: number;\r\n private _uniqueId = 0;\r\n\r\n /**\r\n * Observable raised when the influence changes\r\n */\r\n public onInfluenceChanged = new Observable<boolean>();\r\n\r\n /** @internal */\r\n public _onDataLayoutChanged = new Observable<void>();\r\n\r\n /**\r\n * Gets or sets the influence of this target (ie. its weight in the overall morphing)\r\n */\r\n public get influence(): number {\r\n return this._influence;\r\n }\r\n\r\n public set influence(influence: number) {\r\n if (this._influence === influence) {\r\n return;\r\n }\r\n\r\n const previous = this._influence;\r\n this._influence = influence;\r\n\r\n if (this.onInfluenceChanged.hasObservers()) {\r\n this.onInfluenceChanged.notifyObservers(previous === 0 || influence === 0);\r\n }\r\n }\r\n\r\n /**\r\n * Gets or sets the id of the morph Target\r\n */\r\n @serialize()\r\n public id: string;\r\n\r\n /**\r\n * Gets or sets the morph target manager this morph target is associated with\r\n */\r\n @serialize()\r\n public morphTargetManager: Nullable<MorphTargetManager> = null;\r\n\r\n private _animationPropertiesOverride: Nullable<AnimationPropertiesOverride> = null;\r\n\r\n /**\r\n * Gets or sets the animation properties override\r\n */\r\n public get animationPropertiesOverride(): Nullable<AnimationPropertiesOverride> {\r\n if (!this._animationPropertiesOverride && this._scene) {\r\n return this._scene.animationPropertiesOverride;\r\n }\r\n return this._animationPropertiesOverride;\r\n }\r\n\r\n public set animationPropertiesOverride(value: Nullable<AnimationPropertiesOverride>) {\r\n this._animationPropertiesOverride = value;\r\n }\r\n\r\n /**\r\n * Creates a new MorphTarget\r\n * @param name defines the name of the target\r\n * @param influence defines the influence to use\r\n * @param scene defines the scene the morphtarget belongs to\r\n * @param morphTargetManager morph target manager this morph target is associated with\r\n */\r\n public constructor(\r\n public name: string,\r\n influence = 0,\r\n scene: Nullable<Scene> = null,\r\n morphTargetManager: Nullable<MorphTargetManager> = null\r\n ) {\r\n this.id = name;\r\n this.morphTargetManager = morphTargetManager;\r\n this._scene = scene || EngineStore.LastCreatedScene;\r\n this.influence = influence;\r\n\r\n if (this._scene) {\r\n this._uniqueId = this._scene.getUniqueId();\r\n }\r\n }\r\n\r\n /**\r\n * Gets the unique ID of this manager\r\n */\r\n public get uniqueId(): number {\r\n return this._uniqueId;\r\n }\r\n\r\n /**\r\n * Gets a boolean defining if the target contains position data\r\n */\r\n public get hasPositions(): boolean {\r\n return !!this._positions;\r\n }\r\n\r\n /**\r\n * Gets a boolean defining if the target contains normal data\r\n */\r\n public get hasNormals(): boolean {\r\n return !!this._normals;\r\n }\r\n\r\n /**\r\n * Gets a boolean defining if the target contains tangent data\r\n */\r\n public get hasTangents(): boolean {\r\n return !!this._tangents;\r\n }\r\n\r\n /**\r\n * Gets a boolean defining if the target contains texture coordinates data\r\n */\r\n public get hasUVs(): boolean {\r\n return !!this._uvs;\r\n }\r\n\r\n /**\r\n * Gets a boolean defining if the target contains texture coordinates 2 data\r\n */\r\n public get hasUV2s(): boolean {\r\n return !!this._uv2s;\r\n }\r\n\r\n public get hasColors(): boolean {\r\n return !!this._colors;\r\n }\r\n\r\n /**\r\n * Gets the number of vertices stored in this target\r\n */\r\n public get vertexCount(): number {\r\n return this._positions\r\n ? this._positions.length / 3\r\n : this._normals\r\n ? this._normals.length / 3\r\n : this._tangents\r\n ? this._tangents.length / 3\r\n : this._uvs\r\n ? this._uvs.length / 2\r\n : this._uv2s\r\n ? this._uv2s.length / 2\r\n : this._colors\r\n ? this._colors.length / 4\r\n : 0;\r\n }\r\n\r\n /**\r\n * Affects position data to this target\r\n * @param data defines the position data to use\r\n */\r\n public setPositions(data: Nullable<FloatArray>) {\r\n const hadPositions = this.hasPositions;\r\n\r\n this._positions = data;\r\n\r\n if (hadPositions !== this.hasPositions) {\r\n this._onDataLayoutChanged.notifyObservers(undefined);\r\n }\r\n }\r\n\r\n /**\r\n * Gets the position data stored in this target\r\n * @returns a FloatArray containing the position data (or null if not present)\r\n */\r\n public getPositions(): Nullable<FloatArray> {\r\n return this._positions;\r\n }\r\n\r\n /**\r\n * Affects normal data to this target\r\n * @param data defines the normal data to use\r\n */\r\n public setNormals(data: Nullable<FloatArray>) {\r\n const hadNormals = this.hasNormals;\r\n\r\n this._normals = data;\r\n\r\n if (hadNormals !== this.hasNormals) {\r\n this._onDataLayoutChanged.notifyObservers(undefined);\r\n }\r\n }\r\n\r\n /**\r\n * Gets the normal data stored in this target\r\n * @returns a FloatArray containing the normal data (or null if not present)\r\n */\r\n public getNormals(): Nullable<FloatArray> {\r\n return this._normals;\r\n }\r\n\r\n /**\r\n * Affects tangent data to this target\r\n * @param data defines the tangent data to use\r\n */\r\n public setTangents(data: Nullable<FloatArray>) {\r\n const hadTangents = this.hasTangents;\r\n\r\n this._tangents = data;\r\n\r\n if (hadTangents !== this.hasTangents) {\r\n this._onDataLayoutChanged.notifyObservers(undefined);\r\n }\r\n }\r\n\r\n /**\r\n * Gets the tangent data stored in this target\r\n * @returns a FloatArray containing the tangent data (or null if not present)\r\n */\r\n public getTangents(): Nullable<FloatArray> {\r\n return this._tangents;\r\n }\r\n\r\n /**\r\n * Affects texture coordinates data to this target\r\n * @param data defines the texture coordinates data to use\r\n */\r\n public setUVs(data: Nullable<FloatArray>) {\r\n const hadUVs = this.hasUVs;\r\n\r\n this._uvs = data;\r\n\r\n if (hadUVs !== this.hasUVs) {\r\n this._onDataLayoutChanged.notifyObservers(undefined);\r\n }\r\n }\r\n\r\n /**\r\n * Gets the texture coordinates data stored in this target\r\n * @returns a FloatArray containing the texture coordinates data (or null if not present)\r\n */\r\n public getUVs(): Nullable<FloatArray> {\r\n return this._uvs;\r\n }\r\n\r\n /**\r\n * Affects texture coordinates 2 data to this target\r\n * @param data defines the texture coordinates 2 data to use\r\n */\r\n public setUV2s(data: Nullable<FloatArray>) {\r\n const hadUV2s = this.hasUV2s;\r\n\r\n this._uv2s = data;\r\n\r\n if (hadUV2s !== this.hasUV2s) {\r\n this._onDataLayoutChanged.notifyObservers(undefined);\r\n }\r\n }\r\n\r\n /**\r\n * Gets the texture coordinates 2 data stored in this target\r\n * @returns a FloatArray containing the texture coordinates 2 data (or null if not present)\r\n */\r\n public getUV2s(): Nullable<FloatArray> {\r\n return this._uv2s;\r\n }\r\n\r\n /**\r\n * Affects color data to this target\r\n * @param data defines the color data to use\r\n */\r\n public setColors(data: Nullable<FloatArray>) {\r\n const hadColors = this.hasColors;\r\n\r\n this._colors = data;\r\n\r\n if (hadColors !== this.hasColors) {\r\n this._onDataLayoutChanged.notifyObservers(undefined);\r\n }\r\n }\r\n\r\n /**\r\n * Gets the color data stored in this target\r\n * @returns a FloatArray containing the color data (or null if not present)\r\n */\r\n public getColors(): Nullable<FloatArray> {\r\n return this._colors;\r\n }\r\n\r\n /**\r\n * Clone the current target\r\n * @returns a new MorphTarget\r\n */\r\n public clone(): MorphTarget {\r\n const newOne = SerializationHelper.Clone(() => new MorphTarget(this.name, this.influence, this._scene, this.morphTargetManager), this);\r\n\r\n newOne._positions = this._positions;\r\n newOne._normals = this._normals;\r\n newOne._tangents = this._tangents;\r\n newOne._uvs = this._uvs;\r\n newOne._uv2s = this._uv2s;\r\n newOne._colors = this._colors;\r\n\r\n return newOne;\r\n }\r\n\r\n /**\r\n * Serializes the current target into a Serialization object\r\n * @returns the serialized object\r\n */\r\n public serialize(): any {\r\n const serializationObject: any = {};\r\n\r\n serializationObject.name = this.name;\r\n serializationObject.influence = this.influence;\r\n\r\n if (this.id != null) {\r\n serializationObject.id = this.id;\r\n }\r\n serializationObject.uniqueId = this.uniqueId;\r\n\r\n serializationObject.positions = Array.prototype.slice.call(this.getPositions());\r\n if (this.hasNormals) {\r\n serializationObject.normals = Array.prototype.slice.call(this.getNormals());\r\n }\r\n if (this.hasTangents) {\r\n serializationObject.tangents = Array.prototype.slice.call(this.getTangents());\r\n }\r\n if (this.hasUVs) {\r\n serializationObject.uvs = Array.prototype.slice.call(this.getUVs());\r\n }\r\n if (this.hasUV2s) {\r\n serializationObject.uv2s = Array.prototype.slice.call(this.getUV2s());\r\n }\r\n if (this.hasColors) {\r\n serializationObject.colors = Array.prototype.slice.call(this.getColors());\r\n }\r\n\r\n // Animations\r\n SerializationHelper.AppendSerializedAnimations(this, serializationObject);\r\n\r\n return serializationObject;\r\n }\r\n\r\n /**\r\n * Returns the string \"MorphTarget\"\r\n * @returns \"MorphTarget\"\r\n */\r\n public getClassName(): string {\r\n return \"MorphTarget\";\r\n }\r\n\r\n // Statics\r\n\r\n /**\r\n * Creates a new target from serialized data\r\n * @param serializationObject defines the serialized data to use\r\n * @param scene defines the hosting scene\r\n * @param morphTargetManager morph target manager this morph target is associated with\r\n * @returns a new MorphTarget\r\n */\r\n public static Parse(serializationObject: any, scene?: Scene, morphTargetManager: Nullable<MorphTargetManager> = null): MorphTarget {\r\n const result = new MorphTarget(serializationObject.name, serializationObject.influence, scene, morphTargetManager);\r\n\r\n result.setPositions(serializationObject.positions);\r\n\r\n if (serializationObject.id != null) {\r\n result.id = serializationObject.id;\r\n }\r\n if (serializationObject.normals) {\r\n result.setNormals(serializationObject.normals);\r\n }\r\n if (serializationObject.tangents) {\r\n result.setTangents(serializationObject.tangents);\r\n }\r\n if (serializationObject.uvs) {\r\n result.setUVs(serializationObject.uvs);\r\n }\r\n if (serializationObject.uv2s) {\r\n result.setUV2s(serializationObject.uv2s);\r\n }\r\n if (serializationObject.colors) {\r\n result.setColors(serializationObject.colors);\r\n }\r\n\r\n // Animations\r\n if (serializationObject.animations) {\r\n for (let animationIndex = 0; animationIndex < serializationObject.animations.length; animationIndex++) {\r\n const parsedAnimation = serializationObject.animations[animationIndex];\r\n const internalClass = GetClass(\"BABYLON.Animation\");\r\n if (internalClass) {\r\n result.animations.push(internalClass.Parse(parsedAnimation));\r\n }\r\n }\r\n\r\n if (serializationObject.autoAnimate && scene) {\r\n scene.beginAnimation(\r\n result,\r\n serializationObject.autoAnimateFrom,\r\n serializationObject.autoAnimateTo,\r\n serializationObject.autoAnimateLoop,\r\n serializationObject.autoAnimateSpeed || 1.0\r\n );\r\n }\r\n }\r\n\r\n return result;\r\n }\r\n\r\n /**\r\n * Creates a MorphTarget from mesh data\r\n * @param mesh defines the source mesh\r\n * @param name defines the name to use for the new target\r\n * @param influence defines the influence to attach to the target\r\n * @returns a new MorphTarget\r\n */\r\n public static FromMesh(mesh: AbstractMesh, name?: string, influence?: number): MorphTarget {\r\n if (!name) {\r\n name = mesh.name;\r\n }\r\n\r\n const result = new MorphTarget(name, influence, mesh.getScene(), mesh.morphTargetManager);\r\n\r\n result.setPositions(<FloatArray>mesh.getVerticesData(VertexBuffer.PositionKind));\r\n\r\n if (mesh.isVerticesDataPresent(VertexBuffer.NormalKind)) {\r\n result.setNormals(<FloatArray>mesh.getVerticesData(VertexBuffer.NormalKind));\r\n }\r\n if (mesh.isVerticesDataPresent(VertexBuffer.TangentKind)) {\r\n result.setTangents(<FloatArray>mesh.getVerticesData(VertexBuffer.TangentKind));\r\n }\r\n if (mesh.isVerticesDataPresent(VertexBuffer.UVKind)) {\r\n result.setUVs(<FloatArray>mesh.getVerticesData(VertexBuffer.UVKind));\r\n }\r\n if (mesh.isVerticesDataPresent(VertexBuffer.UV2Kind)) {\r\n result.setUV2s(<FloatArray>mesh.getVerticesData(VertexBuffer.UV2Kind));\r\n }\r\n if (mesh.isVerticesDataPresent(VertexBuffer.ColorKind)) {\r\n result.setColors(<FloatArray>mesh.getVerticesData(VertexBuffer.ColorKind));\r\n }\r\n\r\n return result;\r\n }\r\n}\r\n"]}
@@ -1,5 +1,5 @@
1
1
  import { type INavigationEnginePlugin, type ICrowd, type IAgentParameters, type INavMeshParameters, type IObstacle } from "../../Navigation/INavigationEngine.js";
2
- import { Mesh } from "../../Meshes/mesh.js";
2
+ import { Mesh } from "../../Meshes/mesh.pure.js";
3
3
  import { type Scene } from "../../scene.js";
4
4
  import { Vector3 } from "../../Maths/math.js";
5
5
  import { type TransformNode } from "../../Meshes/transformNode.js";
@@ -1,9 +1,9 @@
1
1
  import { Logger } from "../../Misc/logger.js";
2
2
  import { VertexData } from "../../Meshes/mesh.vertexData.js";
3
- import { Mesh } from "../../Meshes/mesh.js";
3
+ import { Mesh } from "../../Meshes/mesh.pure.js";
4
4
  import { Epsilon, Vector3, Matrix } from "../../Maths/math.js";
5
5
  import { Observable } from "../../Misc/observable.js";
6
- import { VertexBuffer } from "../../Buffers/buffer.js";
6
+ import { VertexBuffer } from "../../Buffers/buffer.pure.js";
7
7
  /**
8
8
  * RecastJS navigation plugin
9
9
  */