@babylonjs/core 5.32.1 → 5.33.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (680) hide show
  1. package/Actions/abstractActionManager.d.ts +1 -1
  2. package/Actions/abstractActionManager.js +1 -1
  3. package/Actions/abstractActionManager.js.map +1 -1
  4. package/Actions/action.d.ts +1 -1
  5. package/Actions/action.js +1 -1
  6. package/Actions/action.js.map +1 -1
  7. package/Actions/actionManager.d.ts +18 -18
  8. package/Actions/actionManager.js +18 -18
  9. package/Actions/actionManager.js.map +1 -1
  10. package/Actions/directActions.d.ts +10 -10
  11. package/Actions/directActions.js +10 -10
  12. package/Actions/directActions.js.map +1 -1
  13. package/Actions/interpolateValueAction.d.ts +1 -1
  14. package/Actions/interpolateValueAction.js +1 -1
  15. package/Actions/interpolateValueAction.js.map +1 -1
  16. package/Animations/animatable.d.ts +2 -2
  17. package/Animations/animatable.js +2 -2
  18. package/Animations/animatable.js.map +1 -1
  19. package/Animations/animationGroup.d.ts +3 -3
  20. package/Animations/animationGroup.js +3 -3
  21. package/Animations/animationGroup.js.map +1 -1
  22. package/Animations/easing.d.ts +14 -14
  23. package/Animations/easing.js +13 -13
  24. package/Animations/easing.js.map +1 -1
  25. package/Audio/Interfaces/IAudioEngine.d.ts +2 -2
  26. package/Audio/Interfaces/IAudioEngine.js.map +1 -1
  27. package/Audio/Interfaces/ISoundOptions.d.ts +3 -3
  28. package/Audio/Interfaces/ISoundOptions.js.map +1 -1
  29. package/Audio/analyser.d.ts +1 -1
  30. package/Audio/analyser.js +1 -1
  31. package/Audio/analyser.js.map +1 -1
  32. package/Audio/audioEngine.d.ts +2 -2
  33. package/Audio/audioEngine.js +2 -2
  34. package/Audio/audioEngine.js.map +1 -1
  35. package/Audio/audioSceneComponent.d.ts +4 -4
  36. package/Audio/audioSceneComponent.js.map +1 -1
  37. package/Audio/sound.d.ts +13 -13
  38. package/Audio/sound.js +13 -13
  39. package/Audio/sound.js.map +1 -1
  40. package/Audio/soundTrack.d.ts +5 -5
  41. package/Audio/soundTrack.js +5 -5
  42. package/Audio/soundTrack.js.map +1 -1
  43. package/BakedVertexAnimation/bakedVertexAnimationManager.d.ts +1 -1
  44. package/BakedVertexAnimation/bakedVertexAnimationManager.js +1 -1
  45. package/BakedVertexAnimation/bakedVertexAnimationManager.js.map +1 -1
  46. package/Behaviors/Cameras/autoRotationBehavior.d.ts +1 -1
  47. package/Behaviors/Cameras/autoRotationBehavior.js +1 -1
  48. package/Behaviors/Cameras/autoRotationBehavior.js.map +1 -1
  49. package/Behaviors/Cameras/bouncingBehavior.d.ts +1 -1
  50. package/Behaviors/Cameras/bouncingBehavior.js +1 -1
  51. package/Behaviors/Cameras/bouncingBehavior.js.map +1 -1
  52. package/Behaviors/Cameras/framingBehavior.d.ts +1 -1
  53. package/Behaviors/Cameras/framingBehavior.js +1 -1
  54. package/Behaviors/Cameras/framingBehavior.js.map +1 -1
  55. package/Behaviors/Meshes/pointerDragBehavior.d.ts +8 -0
  56. package/Behaviors/Meshes/pointerDragBehavior.js +9 -3
  57. package/Behaviors/Meshes/pointerDragBehavior.js.map +1 -1
  58. package/Bones/bone.d.ts +1 -1
  59. package/Bones/bone.js +1 -1
  60. package/Bones/bone.js.map +1 -1
  61. package/Bones/boneIKController.d.ts +3 -2
  62. package/Bones/boneIKController.js +28 -11
  63. package/Bones/boneIKController.js.map +1 -1
  64. package/Bones/boneLookController.d.ts +1 -1
  65. package/Bones/boneLookController.js +1 -1
  66. package/Bones/boneLookController.js.map +1 -1
  67. package/Bones/skeleton.d.ts +3 -3
  68. package/Bones/skeleton.js +2 -2
  69. package/Bones/skeleton.js.map +1 -1
  70. package/Cameras/Inputs/BaseCameraMouseWheelInput.js +2 -2
  71. package/Cameras/Inputs/BaseCameraMouseWheelInput.js.map +1 -1
  72. package/Cameras/Inputs/BaseCameraPointersInput.js +2 -2
  73. package/Cameras/Inputs/BaseCameraPointersInput.js.map +1 -1
  74. package/Cameras/Inputs/arcRotateCameraGamepadInput.d.ts +1 -1
  75. package/Cameras/Inputs/arcRotateCameraGamepadInput.js +1 -1
  76. package/Cameras/Inputs/arcRotateCameraGamepadInput.js.map +1 -1
  77. package/Cameras/Inputs/arcRotateCameraKeyboardMoveInput.d.ts +1 -1
  78. package/Cameras/Inputs/arcRotateCameraKeyboardMoveInput.js +1 -1
  79. package/Cameras/Inputs/arcRotateCameraKeyboardMoveInput.js.map +1 -1
  80. package/Cameras/Inputs/arcRotateCameraMouseWheelInput.d.ts +1 -1
  81. package/Cameras/Inputs/arcRotateCameraMouseWheelInput.js +3 -3
  82. package/Cameras/Inputs/arcRotateCameraMouseWheelInput.js.map +1 -1
  83. package/Cameras/Inputs/arcRotateCameraPointersInput.d.ts +1 -1
  84. package/Cameras/Inputs/arcRotateCameraPointersInput.js +1 -1
  85. package/Cameras/Inputs/arcRotateCameraPointersInput.js.map +1 -1
  86. package/Cameras/Inputs/arcRotateCameraVRDeviceOrientationInput.d.ts +1 -1
  87. package/Cameras/Inputs/arcRotateCameraVRDeviceOrientationInput.js +1 -1
  88. package/Cameras/Inputs/arcRotateCameraVRDeviceOrientationInput.js.map +1 -1
  89. package/Cameras/Inputs/flyCameraKeyboardInput.d.ts +1 -1
  90. package/Cameras/Inputs/flyCameraKeyboardInput.js +1 -1
  91. package/Cameras/Inputs/flyCameraKeyboardInput.js.map +1 -1
  92. package/Cameras/Inputs/flyCameraMouseInput.d.ts +2 -2
  93. package/Cameras/Inputs/flyCameraMouseInput.js +4 -4
  94. package/Cameras/Inputs/flyCameraMouseInput.js.map +1 -1
  95. package/Cameras/Inputs/followCameraKeyboardMoveInput.d.ts +1 -1
  96. package/Cameras/Inputs/followCameraKeyboardMoveInput.js +1 -1
  97. package/Cameras/Inputs/followCameraKeyboardMoveInput.js.map +1 -1
  98. package/Cameras/Inputs/followCameraMouseWheelInput.d.ts +1 -1
  99. package/Cameras/Inputs/followCameraMouseWheelInput.js +3 -3
  100. package/Cameras/Inputs/followCameraMouseWheelInput.js.map +1 -1
  101. package/Cameras/Inputs/followCameraPointersInput.d.ts +1 -1
  102. package/Cameras/Inputs/followCameraPointersInput.js +1 -1
  103. package/Cameras/Inputs/followCameraPointersInput.js.map +1 -1
  104. package/Cameras/Inputs/freeCameraDeviceOrientationInput.d.ts +2 -2
  105. package/Cameras/Inputs/freeCameraDeviceOrientationInput.js +2 -2
  106. package/Cameras/Inputs/freeCameraDeviceOrientationInput.js.map +1 -1
  107. package/Cameras/Inputs/freeCameraGamepadInput.d.ts +1 -1
  108. package/Cameras/Inputs/freeCameraGamepadInput.js +1 -1
  109. package/Cameras/Inputs/freeCameraGamepadInput.js.map +1 -1
  110. package/Cameras/Inputs/freeCameraKeyboardMoveInput.d.ts +1 -1
  111. package/Cameras/Inputs/freeCameraKeyboardMoveInput.js +1 -1
  112. package/Cameras/Inputs/freeCameraKeyboardMoveInput.js.map +1 -1
  113. package/Cameras/Inputs/freeCameraMouseInput.d.ts +3 -2
  114. package/Cameras/Inputs/freeCameraMouseInput.js +18 -7
  115. package/Cameras/Inputs/freeCameraMouseInput.js.map +1 -1
  116. package/Cameras/Inputs/freeCameraMouseWheelInput.d.ts +1 -1
  117. package/Cameras/Inputs/freeCameraMouseWheelInput.js +1 -1
  118. package/Cameras/Inputs/freeCameraMouseWheelInput.js.map +1 -1
  119. package/Cameras/Inputs/freeCameraTouchInput.d.ts +2 -2
  120. package/Cameras/Inputs/freeCameraTouchInput.js +4 -4
  121. package/Cameras/Inputs/freeCameraTouchInput.js.map +1 -1
  122. package/Cameras/Inputs/freeCameraVirtualJoystickInput.d.ts +1 -1
  123. package/Cameras/Inputs/freeCameraVirtualJoystickInput.js +1 -1
  124. package/Cameras/Inputs/freeCameraVirtualJoystickInput.js.map +1 -1
  125. package/Cameras/Stereoscopic/anaglyphArcRotateCamera.d.ts +1 -1
  126. package/Cameras/Stereoscopic/anaglyphArcRotateCamera.js +1 -1
  127. package/Cameras/Stereoscopic/anaglyphArcRotateCamera.js.map +1 -1
  128. package/Cameras/Stereoscopic/anaglyphFreeCamera.d.ts +1 -1
  129. package/Cameras/Stereoscopic/anaglyphFreeCamera.js +1 -1
  130. package/Cameras/Stereoscopic/anaglyphFreeCamera.js.map +1 -1
  131. package/Cameras/Stereoscopic/anaglyphGamepadCamera.d.ts +1 -1
  132. package/Cameras/Stereoscopic/anaglyphGamepadCamera.js +1 -1
  133. package/Cameras/Stereoscopic/anaglyphGamepadCamera.js.map +1 -1
  134. package/Cameras/Stereoscopic/anaglyphUniversalCamera.d.ts +1 -1
  135. package/Cameras/Stereoscopic/anaglyphUniversalCamera.js +1 -1
  136. package/Cameras/Stereoscopic/anaglyphUniversalCamera.js.map +1 -1
  137. package/Cameras/Stereoscopic/stereoscopicArcRotateCamera.d.ts +1 -1
  138. package/Cameras/Stereoscopic/stereoscopicArcRotateCamera.js +1 -1
  139. package/Cameras/Stereoscopic/stereoscopicArcRotateCamera.js.map +1 -1
  140. package/Cameras/Stereoscopic/stereoscopicFreeCamera.d.ts +1 -1
  141. package/Cameras/Stereoscopic/stereoscopicFreeCamera.js +1 -1
  142. package/Cameras/Stereoscopic/stereoscopicFreeCamera.js.map +1 -1
  143. package/Cameras/Stereoscopic/stereoscopicGamepadCamera.d.ts +1 -1
  144. package/Cameras/Stereoscopic/stereoscopicGamepadCamera.js +1 -1
  145. package/Cameras/Stereoscopic/stereoscopicGamepadCamera.js.map +1 -1
  146. package/Cameras/Stereoscopic/stereoscopicScreenUniversalCamera.d.ts +1 -1
  147. package/Cameras/Stereoscopic/stereoscopicScreenUniversalCamera.js +1 -1
  148. package/Cameras/Stereoscopic/stereoscopicScreenUniversalCamera.js.map +1 -1
  149. package/Cameras/Stereoscopic/stereoscopicUniversalCamera.d.ts +1 -1
  150. package/Cameras/Stereoscopic/stereoscopicUniversalCamera.js +1 -1
  151. package/Cameras/Stereoscopic/stereoscopicUniversalCamera.js.map +1 -1
  152. package/Cameras/VR/vrCameraMetrics.d.ts +1 -1
  153. package/Cameras/VR/vrCameraMetrics.js +1 -1
  154. package/Cameras/VR/vrCameraMetrics.js.map +1 -1
  155. package/Cameras/VR/vrDeviceOrientationArcRotateCamera.d.ts +1 -1
  156. package/Cameras/VR/vrDeviceOrientationArcRotateCamera.js +1 -1
  157. package/Cameras/VR/vrDeviceOrientationArcRotateCamera.js.map +1 -1
  158. package/Cameras/VR/vrDeviceOrientationFreeCamera.d.ts +1 -1
  159. package/Cameras/VR/vrDeviceOrientationFreeCamera.js +1 -1
  160. package/Cameras/VR/vrDeviceOrientationFreeCamera.js.map +1 -1
  161. package/Cameras/VR/vrDeviceOrientationGamepadCamera.d.ts +1 -1
  162. package/Cameras/VR/vrDeviceOrientationGamepadCamera.js +1 -1
  163. package/Cameras/VR/vrDeviceOrientationGamepadCamera.js.map +1 -1
  164. package/Cameras/VR/vrExperienceHelper.d.ts +2 -2
  165. package/Cameras/VR/vrExperienceHelper.js +2 -2
  166. package/Cameras/VR/vrExperienceHelper.js.map +1 -1
  167. package/Cameras/VR/webVRCamera.d.ts +2 -2
  168. package/Cameras/VR/webVRCamera.js +2 -2
  169. package/Cameras/VR/webVRCamera.js.map +1 -1
  170. package/Cameras/arcRotateCamera.d.ts +9 -9
  171. package/Cameras/arcRotateCamera.js +9 -9
  172. package/Cameras/arcRotateCamera.js.map +1 -1
  173. package/Cameras/arcRotateCameraInputsManager.d.ts +1 -1
  174. package/Cameras/arcRotateCameraInputsManager.js +1 -1
  175. package/Cameras/arcRotateCameraInputsManager.js.map +1 -1
  176. package/Cameras/camera.d.ts +4 -4
  177. package/Cameras/camera.js +4 -4
  178. package/Cameras/camera.js.map +1 -1
  179. package/Cameras/cameraInputsManager.d.ts +1 -1
  180. package/Cameras/cameraInputsManager.js +1 -1
  181. package/Cameras/cameraInputsManager.js.map +1 -1
  182. package/Cameras/flyCamera.d.ts +1 -1
  183. package/Cameras/flyCamera.js +1 -1
  184. package/Cameras/flyCamera.js.map +1 -1
  185. package/Cameras/flyCameraInputsManager.d.ts +1 -1
  186. package/Cameras/flyCameraInputsManager.js +1 -1
  187. package/Cameras/flyCameraInputsManager.js.map +1 -1
  188. package/Cameras/followCamera.d.ts +4 -4
  189. package/Cameras/followCamera.js +4 -4
  190. package/Cameras/followCamera.js.map +1 -1
  191. package/Cameras/followCameraInputsManager.d.ts +1 -1
  192. package/Cameras/followCameraInputsManager.js +1 -1
  193. package/Cameras/followCameraInputsManager.js.map +1 -1
  194. package/Cameras/freeCamera.d.ts +3 -3
  195. package/Cameras/freeCamera.js +3 -3
  196. package/Cameras/freeCamera.js.map +1 -1
  197. package/Cameras/freeCameraInputsManager.d.ts +1 -1
  198. package/Cameras/freeCameraInputsManager.js +1 -1
  199. package/Cameras/freeCameraInputsManager.js.map +1 -1
  200. package/Cameras/gamepadCamera.d.ts +2 -2
  201. package/Cameras/gamepadCamera.js +2 -2
  202. package/Cameras/gamepadCamera.js.map +1 -1
  203. package/Cameras/targetCamera.d.ts +2 -2
  204. package/Cameras/targetCamera.js +2 -2
  205. package/Cameras/targetCamera.js.map +1 -1
  206. package/Cameras/touchCamera.d.ts +2 -2
  207. package/Cameras/touchCamera.js +2 -2
  208. package/Cameras/touchCamera.js.map +1 -1
  209. package/Cameras/universalCamera.d.ts +2 -2
  210. package/Cameras/universalCamera.js +2 -2
  211. package/Cameras/universalCamera.js.map +1 -1
  212. package/Cameras/virtualJoysticksCamera.d.ts +2 -2
  213. package/Cameras/virtualJoysticksCamera.js +2 -2
  214. package/Cameras/virtualJoysticksCamera.js.map +1 -1
  215. package/Collisions/pickingInfo.d.ts +1 -1
  216. package/Collisions/pickingInfo.js +1 -1
  217. package/Collisions/pickingInfo.js.map +1 -1
  218. package/Culling/Octrees/octree.d.ts +2 -2
  219. package/Culling/Octrees/octree.js +2 -2
  220. package/Culling/Octrees/octree.js.map +1 -1
  221. package/Culling/Octrees/octreeBlock.d.ts +1 -1
  222. package/Culling/Octrees/octreeBlock.js +1 -1
  223. package/Culling/Octrees/octreeBlock.js.map +1 -1
  224. package/Culling/Octrees/octreeSceneComponent.d.ts +3 -3
  225. package/Culling/Octrees/octreeSceneComponent.js +1 -1
  226. package/Culling/Octrees/octreeSceneComponent.js.map +1 -1
  227. package/Culling/boundingInfo.d.ts +8 -3
  228. package/Culling/boundingInfo.js +7 -2
  229. package/Culling/boundingInfo.js.map +1 -1
  230. package/Debug/debugLayer.d.ts +1 -1
  231. package/Debug/debugLayer.js.map +1 -1
  232. package/Debug/rayHelper.d.ts +2 -2
  233. package/Debug/rayHelper.js +2 -2
  234. package/Debug/rayHelper.js.map +1 -1
  235. package/Engines/Extensions/engine.alpha.d.ts +2 -2
  236. package/Engines/Extensions/engine.alpha.js.map +1 -1
  237. package/Engines/Extensions/engine.multiRender.d.ts +2 -2
  238. package/Engines/Extensions/engine.multiRender.js.map +1 -1
  239. package/Engines/Extensions/engine.query.d.ts +8 -8
  240. package/Engines/Extensions/engine.query.js.map +1 -1
  241. package/Engines/Extensions/engine.renderTarget.d.ts +1 -1
  242. package/Engines/Extensions/engine.renderTarget.js.map +1 -1
  243. package/Engines/Extensions/engine.uniformBuffer.d.ts +3 -3
  244. package/Engines/Extensions/engine.uniformBuffer.js.map +1 -1
  245. package/Engines/Extensions/engine.videoTexture.d.ts +2 -1
  246. package/Engines/Extensions/engine.videoTexture.js.map +1 -1
  247. package/Engines/Extensions/engine.views.d.ts +2 -2
  248. package/Engines/Extensions/engine.views.js +1 -1
  249. package/Engines/Extensions/engine.views.js.map +1 -1
  250. package/Engines/Extensions/engine.webVR.d.ts +1 -1
  251. package/Engines/Extensions/engine.webVR.js.map +1 -1
  252. package/Engines/Processors/shaderProcessor.d.ts +2 -2
  253. package/Engines/Processors/shaderProcessor.js +2 -2
  254. package/Engines/Processors/shaderProcessor.js.map +1 -1
  255. package/Engines/WebGPU/Extensions/engine.videoTexture.js +21 -9
  256. package/Engines/WebGPU/Extensions/engine.videoTexture.js.map +1 -1
  257. package/Engines/WebGPU/webgpuShaderProcessor.js +11 -9
  258. package/Engines/WebGPU/webgpuShaderProcessor.js.map +1 -1
  259. package/Engines/WebGPU/webgpuTextureHelper.d.ts +6 -0
  260. package/Engines/WebGPU/webgpuTextureHelper.js +157 -0
  261. package/Engines/WebGPU/webgpuTextureHelper.js.map +1 -1
  262. package/Engines/constants.d.ts +17 -17
  263. package/Engines/constants.js +17 -17
  264. package/Engines/constants.js.map +1 -1
  265. package/Engines/engine.d.ts +12 -12
  266. package/Engines/engine.js +11 -11
  267. package/Engines/engine.js.map +1 -1
  268. package/Engines/nativeEngine.d.ts +2 -2
  269. package/Engines/nativeEngine.js +23 -2
  270. package/Engines/nativeEngine.js.map +1 -1
  271. package/Engines/nullEngine.d.ts +5 -5
  272. package/Engines/nullEngine.js +5 -5
  273. package/Engines/nullEngine.js.map +1 -1
  274. package/Engines/thinEngine.d.ts +8 -8
  275. package/Engines/thinEngine.js +6 -6
  276. package/Engines/thinEngine.js.map +1 -1
  277. package/Engines/webgpuEngine.d.ts +4 -4
  278. package/Engines/webgpuEngine.js +1 -1
  279. package/Engines/webgpuEngine.js.map +1 -1
  280. package/Gamepads/gamepadSceneComponent.d.ts +1 -1
  281. package/Gamepads/gamepadSceneComponent.js.map +1 -1
  282. package/Gizmos/gizmo.d.ts +6 -7
  283. package/Gizmos/gizmo.js +43 -36
  284. package/Gizmos/gizmo.js.map +1 -1
  285. package/Gizmos/planeRotationGizmo.js +17 -7
  286. package/Gizmos/planeRotationGizmo.js.map +1 -1
  287. package/Gizmos/positionGizmo.d.ts +4 -0
  288. package/Gizmos/positionGizmo.js +21 -0
  289. package/Gizmos/positionGizmo.js.map +1 -1
  290. package/Gizmos/rotationGizmo.d.ts +4 -0
  291. package/Gizmos/rotationGizmo.js +20 -0
  292. package/Gizmos/rotationGizmo.js.map +1 -1
  293. package/Gizmos/scaleGizmo.d.ts +2 -0
  294. package/Gizmos/scaleGizmo.js +10 -0
  295. package/Gizmos/scaleGizmo.js.map +1 -1
  296. package/Helpers/sceneHelpers.d.ts +7 -7
  297. package/Helpers/sceneHelpers.js.map +1 -1
  298. package/Inputs/scene.inputManager.js +34 -25
  299. package/Inputs/scene.inputManager.js.map +1 -1
  300. package/Instrumentation/engineInstrumentation.d.ts +2 -2
  301. package/Instrumentation/engineInstrumentation.js +2 -2
  302. package/Instrumentation/engineInstrumentation.js.map +1 -1
  303. package/Instrumentation/sceneInstrumentation.d.ts +2 -2
  304. package/Instrumentation/sceneInstrumentation.js +2 -2
  305. package/Instrumentation/sceneInstrumentation.js.map +1 -1
  306. package/Layers/effectLayer.js +7 -28
  307. package/Layers/effectLayer.js.map +1 -1
  308. package/Layers/effectLayerSceneComponent.d.ts +2 -2
  309. package/Layers/effectLayerSceneComponent.js.map +1 -1
  310. package/Layers/glowLayer.d.ts +1 -1
  311. package/Layers/glowLayer.js +1 -1
  312. package/Layers/glowLayer.js.map +1 -1
  313. package/LensFlares/lensFlare.d.ts +3 -3
  314. package/LensFlares/lensFlare.js +3 -3
  315. package/LensFlares/lensFlare.js.map +1 -1
  316. package/LensFlares/lensFlareSystem.d.ts +2 -2
  317. package/LensFlares/lensFlareSystem.js +2 -2
  318. package/LensFlares/lensFlareSystem.js.map +1 -1
  319. package/LensFlares/lensFlareSystemSceneComponent.d.ts +1 -1
  320. package/LensFlares/lensFlareSystemSceneComponent.js.map +1 -1
  321. package/Lights/Shadows/shadowGenerator.d.ts +2 -2
  322. package/Lights/Shadows/shadowGenerator.js +11 -30
  323. package/Lights/Shadows/shadowGenerator.js.map +1 -1
  324. package/Lights/directionalLight.d.ts +2 -2
  325. package/Lights/directionalLight.js +2 -2
  326. package/Lights/directionalLight.js.map +1 -1
  327. package/Lights/hemisphericLight.d.ts +1 -1
  328. package/Lights/hemisphericLight.js +1 -1
  329. package/Lights/hemisphericLight.js.map +1 -1
  330. package/Lights/light.d.ts +1 -1
  331. package/Lights/light.js +1 -1
  332. package/Lights/light.js.map +1 -1
  333. package/Lights/pointLight.d.ts +2 -2
  334. package/Lights/pointLight.js +2 -2
  335. package/Lights/pointLight.js.map +1 -1
  336. package/Lights/spotLight.d.ts +2 -2
  337. package/Lights/spotLight.js +2 -2
  338. package/Lights/spotLight.js.map +1 -1
  339. package/Loading/loadingScreen.d.ts +2 -2
  340. package/Loading/loadingScreen.js +1 -1
  341. package/Loading/loadingScreen.js.map +1 -1
  342. package/Materials/Background/backgroundMaterial.js +4 -8
  343. package/Materials/Background/backgroundMaterial.js.map +1 -1
  344. package/Materials/Node/Blocks/Dual/clipPlanesBlock.js +9 -8
  345. package/Materials/Node/Blocks/Dual/clipPlanesBlock.js.map +1 -1
  346. package/Materials/Node/Blocks/Vertex/instancesBlock.d.ts +1 -1
  347. package/Materials/Node/Blocks/Vertex/instancesBlock.js +1 -1
  348. package/Materials/Node/Blocks/Vertex/instancesBlock.js.map +1 -1
  349. package/Materials/Node/Blocks/reciprocalBlock.js +6 -2
  350. package/Materials/Node/Blocks/reciprocalBlock.js.map +1 -1
  351. package/Materials/PBR/pbrBaseMaterial.d.ts +1 -1
  352. package/Materials/PBR/pbrBaseMaterial.js +5 -9
  353. package/Materials/PBR/pbrBaseMaterial.js.map +1 -1
  354. package/Materials/PBR/pbrMaterial.d.ts +1 -1
  355. package/Materials/PBR/pbrMaterial.js +1 -1
  356. package/Materials/PBR/pbrMaterial.js.map +1 -1
  357. package/Materials/Textures/Packer/packer.d.ts +1 -1
  358. package/Materials/Textures/Packer/packer.js +1 -1
  359. package/Materials/Textures/Packer/packer.js.map +1 -1
  360. package/Materials/Textures/Procedurals/customProceduralTexture.d.ts +2 -2
  361. package/Materials/Textures/Procedurals/customProceduralTexture.js +2 -2
  362. package/Materials/Textures/Procedurals/customProceduralTexture.js.map +1 -1
  363. package/Materials/Textures/Procedurals/proceduralTexture.d.ts +2 -2
  364. package/Materials/Textures/Procedurals/proceduralTexture.js +2 -2
  365. package/Materials/Textures/Procedurals/proceduralTexture.js.map +1 -1
  366. package/Materials/Textures/Procedurals/proceduralTextureSceneComponent.d.ts +1 -1
  367. package/Materials/Textures/Procedurals/proceduralTextureSceneComponent.js.map +1 -1
  368. package/Materials/Textures/cubeTexture.d.ts +2 -2
  369. package/Materials/Textures/cubeTexture.js +2 -2
  370. package/Materials/Textures/cubeTexture.js.map +1 -1
  371. package/Materials/Textures/dynamicTexture.d.ts +1 -1
  372. package/Materials/Textures/dynamicTexture.js +1 -1
  373. package/Materials/Textures/dynamicTexture.js.map +1 -1
  374. package/Materials/Textures/htmlElementTexture.d.ts +1 -0
  375. package/Materials/Textures/htmlElementTexture.js +3 -1
  376. package/Materials/Textures/htmlElementTexture.js.map +1 -1
  377. package/Materials/Textures/mirrorTexture.d.ts +3 -3
  378. package/Materials/Textures/mirrorTexture.js +3 -3
  379. package/Materials/Textures/mirrorTexture.js.map +1 -1
  380. package/Materials/Textures/refractionTexture.d.ts +3 -3
  381. package/Materials/Textures/refractionTexture.js +3 -3
  382. package/Materials/Textures/refractionTexture.js.map +1 -1
  383. package/Materials/Textures/renderTargetTexture.js +2 -2
  384. package/Materials/Textures/renderTargetTexture.js.map +1 -1
  385. package/Materials/Textures/texture.d.ts +10 -10
  386. package/Materials/Textures/texture.js +10 -10
  387. package/Materials/Textures/texture.js.map +1 -1
  388. package/Materials/Textures/videoTexture.d.ts +3 -2
  389. package/Materials/Textures/videoTexture.js +7 -3
  390. package/Materials/Textures/videoTexture.js.map +1 -1
  391. package/Materials/clipPlaneMaterialHelper.d.ts +8 -0
  392. package/Materials/clipPlaneMaterialHelper.js +78 -0
  393. package/Materials/clipPlaneMaterialHelper.js.map +1 -0
  394. package/Materials/effect.d.ts +20 -2
  395. package/Materials/effect.js +28 -4
  396. package/Materials/effect.js.map +1 -1
  397. package/Materials/fresnelParameters.d.ts +1 -1
  398. package/Materials/fresnelParameters.js +1 -1
  399. package/Materials/fresnelParameters.js.map +1 -1
  400. package/Materials/index.d.ts +1 -1
  401. package/Materials/index.js +1 -1
  402. package/Materials/index.js.map +1 -1
  403. package/Materials/material.d.ts +28 -2
  404. package/Materials/material.js.map +1 -1
  405. package/Materials/materialHelper.d.ts +3 -7
  406. package/Materials/materialHelper.js +5 -45
  407. package/Materials/materialHelper.js.map +1 -1
  408. package/Materials/multiMaterial.d.ts +2 -2
  409. package/Materials/multiMaterial.js +2 -2
  410. package/Materials/multiMaterial.js.map +1 -1
  411. package/Materials/shaderMaterial.d.ts +2 -2
  412. package/Materials/shaderMaterial.js +7 -38
  413. package/Materials/shaderMaterial.js.map +1 -1
  414. package/Materials/shadowDepthWrapper.d.ts +1 -1
  415. package/Materials/shadowDepthWrapper.js +2 -2
  416. package/Materials/shadowDepthWrapper.js.map +1 -1
  417. package/Materials/standardMaterial.d.ts +18 -18
  418. package/Materials/standardMaterial.js +10 -14
  419. package/Materials/standardMaterial.js.map +1 -1
  420. package/Maths/math.path.d.ts +7 -7
  421. package/Maths/math.path.js +7 -7
  422. package/Maths/math.path.js.map +1 -1
  423. package/Maths/math.vector.d.ts +4 -4
  424. package/Maths/math.vector.js +4 -4
  425. package/Maths/math.vector.js.map +1 -1
  426. package/Meshes/Builders/boxBuilder.d.ts +3 -3
  427. package/Meshes/Builders/boxBuilder.js +3 -3
  428. package/Meshes/Builders/boxBuilder.js.map +1 -1
  429. package/Meshes/Builders/capsuleBuilder.d.ts +1 -1
  430. package/Meshes/Builders/capsuleBuilder.js +1 -1
  431. package/Meshes/Builders/capsuleBuilder.js.map +1 -1
  432. package/Meshes/Builders/cylinderBuilder.d.ts +2 -2
  433. package/Meshes/Builders/cylinderBuilder.js +2 -2
  434. package/Meshes/Builders/cylinderBuilder.js.map +1 -1
  435. package/Meshes/Builders/decalBuilder.d.ts +1 -1
  436. package/Meshes/Builders/decalBuilder.js +1 -1
  437. package/Meshes/Builders/decalBuilder.js.map +1 -1
  438. package/Meshes/Builders/discBuilder.d.ts +2 -2
  439. package/Meshes/Builders/discBuilder.js +2 -2
  440. package/Meshes/Builders/discBuilder.js.map +1 -1
  441. package/Meshes/Builders/geodesicBuilder.d.ts +1 -1
  442. package/Meshes/Builders/geodesicBuilder.js +1 -1
  443. package/Meshes/Builders/geodesicBuilder.js.map +1 -1
  444. package/Meshes/Builders/goldbergBuilder.d.ts +1 -1
  445. package/Meshes/Builders/goldbergBuilder.js +1 -1
  446. package/Meshes/Builders/goldbergBuilder.js.map +1 -1
  447. package/Meshes/Builders/groundBuilder.d.ts +4 -4
  448. package/Meshes/Builders/groundBuilder.js +4 -4
  449. package/Meshes/Builders/groundBuilder.js.map +1 -1
  450. package/Meshes/Builders/icoSphereBuilder.d.ts +2 -2
  451. package/Meshes/Builders/icoSphereBuilder.js +2 -2
  452. package/Meshes/Builders/icoSphereBuilder.js.map +1 -1
  453. package/Meshes/Builders/latheBuilder.d.ts +2 -2
  454. package/Meshes/Builders/latheBuilder.js +2 -2
  455. package/Meshes/Builders/latheBuilder.js.map +1 -1
  456. package/Meshes/Builders/linesBuilder.d.ts +6 -6
  457. package/Meshes/Builders/linesBuilder.js +6 -6
  458. package/Meshes/Builders/linesBuilder.js.map +1 -1
  459. package/Meshes/Builders/planeBuilder.d.ts +2 -2
  460. package/Meshes/Builders/planeBuilder.js +2 -2
  461. package/Meshes/Builders/planeBuilder.js.map +1 -1
  462. package/Meshes/Builders/polygonBuilder.d.ts +1 -1
  463. package/Meshes/Builders/polygonBuilder.js +1 -1
  464. package/Meshes/Builders/polygonBuilder.js.map +1 -1
  465. package/Meshes/Builders/polyhedronBuilder.d.ts +3 -3
  466. package/Meshes/Builders/polyhedronBuilder.js +3 -3
  467. package/Meshes/Builders/polyhedronBuilder.js.map +1 -1
  468. package/Meshes/Builders/ribbonBuilder.d.ts +4 -4
  469. package/Meshes/Builders/ribbonBuilder.js +4 -4
  470. package/Meshes/Builders/ribbonBuilder.js.map +1 -1
  471. package/Meshes/Builders/shapeBuilder.d.ts +9 -9
  472. package/Meshes/Builders/shapeBuilder.js +9 -9
  473. package/Meshes/Builders/shapeBuilder.js.map +1 -1
  474. package/Meshes/Builders/sphereBuilder.d.ts +2 -2
  475. package/Meshes/Builders/sphereBuilder.js +2 -2
  476. package/Meshes/Builders/sphereBuilder.js.map +1 -1
  477. package/Meshes/Builders/tiledBoxBuilder.d.ts +2 -2
  478. package/Meshes/Builders/tiledBoxBuilder.js +2 -2
  479. package/Meshes/Builders/tiledBoxBuilder.js.map +1 -1
  480. package/Meshes/Builders/tiledPlaneBuilder.d.ts +2 -2
  481. package/Meshes/Builders/tiledPlaneBuilder.js +2 -2
  482. package/Meshes/Builders/tiledPlaneBuilder.js.map +1 -1
  483. package/Meshes/Builders/torusBuilder.d.ts +2 -2
  484. package/Meshes/Builders/torusBuilder.js +2 -2
  485. package/Meshes/Builders/torusBuilder.js.map +1 -1
  486. package/Meshes/Builders/torusKnotBuilder.d.ts +2 -2
  487. package/Meshes/Builders/torusKnotBuilder.js +2 -2
  488. package/Meshes/Builders/torusKnotBuilder.js.map +1 -1
  489. package/Meshes/Builders/tubeBuilder.d.ts +4 -4
  490. package/Meshes/Builders/tubeBuilder.js +4 -4
  491. package/Meshes/Builders/tubeBuilder.js.map +1 -1
  492. package/Meshes/abstractMesh.d.ts +35 -35
  493. package/Meshes/abstractMesh.js +34 -34
  494. package/Meshes/abstractMesh.js.map +1 -1
  495. package/Meshes/instancedMesh.d.ts +3 -3
  496. package/Meshes/instancedMesh.js +1 -1
  497. package/Meshes/instancedMesh.js.map +1 -1
  498. package/Meshes/linesMesh.d.ts +2 -2
  499. package/Meshes/linesMesh.js +3 -3
  500. package/Meshes/linesMesh.js.map +1 -1
  501. package/Meshes/mesh.d.ts +36 -36
  502. package/Meshes/mesh.js +9 -17
  503. package/Meshes/mesh.js.map +1 -1
  504. package/Meshes/meshLODLevel.d.ts +1 -1
  505. package/Meshes/meshLODLevel.js +1 -1
  506. package/Meshes/meshLODLevel.js.map +1 -1
  507. package/Meshes/meshSimplification.d.ts +6 -6
  508. package/Meshes/meshSimplification.js +4 -4
  509. package/Meshes/meshSimplification.js.map +1 -1
  510. package/Meshes/meshSimplificationSceneComponent.d.ts +1 -1
  511. package/Meshes/meshSimplificationSceneComponent.js.map +1 -1
  512. package/Meshes/polygonMesh.d.ts +2 -2
  513. package/Meshes/polygonMesh.js +2 -2
  514. package/Meshes/polygonMesh.js.map +1 -1
  515. package/Meshes/transformNode.d.ts +1 -1
  516. package/Meshes/transformNode.js +1 -1
  517. package/Meshes/transformNode.js.map +1 -1
  518. package/Misc/assetsManager.d.ts +2 -2
  519. package/Misc/assetsManager.js +2 -2
  520. package/Misc/assetsManager.js.map +1 -1
  521. package/Misc/dumpTools.d.ts +49 -0
  522. package/Misc/dumpTools.js +145 -0
  523. package/Misc/dumpTools.js.map +1 -0
  524. package/Misc/environmentTextureTools.js +2 -1
  525. package/Misc/environmentTextureTools.js.map +1 -1
  526. package/Misc/iInspectable.d.ts +1 -1
  527. package/Misc/iInspectable.js.map +1 -1
  528. package/Misc/index.d.ts +1 -0
  529. package/Misc/index.js +1 -0
  530. package/Misc/index.js.map +1 -1
  531. package/Misc/sceneOptimizer.d.ts +12 -12
  532. package/Misc/sceneOptimizer.js +12 -12
  533. package/Misc/sceneOptimizer.js.map +1 -1
  534. package/Misc/screenshotTools.d.ts +10 -10
  535. package/Misc/screenshotTools.js +27 -23
  536. package/Misc/screenshotTools.js.map +1 -1
  537. package/Misc/tools.d.ts +6 -10
  538. package/Misc/tools.js +11 -68
  539. package/Misc/tools.js.map +1 -1
  540. package/Misc/videoRecorder.d.ts +1 -1
  541. package/Misc/videoRecorder.js +1 -1
  542. package/Misc/videoRecorder.js.map +1 -1
  543. package/Morph/morphTarget.d.ts +1 -1
  544. package/Morph/morphTarget.js +1 -1
  545. package/Morph/morphTarget.js.map +1 -1
  546. package/Morph/morphTargetManager.d.ts +1 -1
  547. package/Morph/morphTargetManager.js +1 -1
  548. package/Morph/morphTargetManager.js.map +1 -1
  549. package/Offline/IOfflineProvider.d.ts +1 -1
  550. package/Offline/IOfflineProvider.js.map +1 -1
  551. package/Offline/database.d.ts +1 -1
  552. package/Offline/database.js +1 -1
  553. package/Offline/database.js.map +1 -1
  554. package/Particles/IParticleSystem.d.ts +1 -1
  555. package/Particles/IParticleSystem.js.map +1 -1
  556. package/Particles/baseParticleSystem.d.ts +32 -7
  557. package/Particles/baseParticleSystem.js +1 -1
  558. package/Particles/baseParticleSystem.js.map +1 -1
  559. package/Particles/gpuParticleSystem.d.ts +1 -1
  560. package/Particles/gpuParticleSystem.js +6 -38
  561. package/Particles/gpuParticleSystem.js.map +1 -1
  562. package/Particles/particleSystem.d.ts +2 -2
  563. package/Particles/particleSystem.js +7 -38
  564. package/Particles/particleSystem.js.map +1 -1
  565. package/Particles/solidParticleSystem.d.ts +15 -15
  566. package/Particles/solidParticleSystem.js +13 -13
  567. package/Particles/solidParticleSystem.js.map +1 -1
  568. package/Physics/IPhysicsEngine.d.ts +1 -1
  569. package/Physics/IPhysicsEngine.js.map +1 -1
  570. package/Physics/Plugins/ammoJSPlugin.d.ts +1 -1
  571. package/Physics/Plugins/ammoJSPlugin.js +1 -1
  572. package/Physics/Plugins/ammoJSPlugin.js.map +1 -1
  573. package/Physics/physicsEngine.d.ts +1 -1
  574. package/Physics/physicsEngine.js +1 -1
  575. package/Physics/physicsEngine.js.map +1 -1
  576. package/Physics/physicsEngineComponent.d.ts +3 -3
  577. package/Physics/physicsEngineComponent.js +2 -2
  578. package/Physics/physicsEngineComponent.js.map +1 -1
  579. package/Physics/physicsHelper.d.ts +12 -12
  580. package/Physics/physicsHelper.js +6 -6
  581. package/Physics/physicsHelper.js.map +1 -1
  582. package/Physics/physicsImpostor.d.ts +3 -3
  583. package/Physics/physicsImpostor.js +1 -1
  584. package/Physics/physicsImpostor.js.map +1 -1
  585. package/Physics/physicsJoint.d.ts +9 -9
  586. package/Physics/physicsJoint.js +5 -5
  587. package/Physics/physicsJoint.js.map +1 -1
  588. package/Physics/physicsRaycastResult.d.ts +1 -1
  589. package/Physics/physicsRaycastResult.js +1 -1
  590. package/Physics/physicsRaycastResult.js.map +1 -1
  591. package/PostProcesses/RenderPipeline/Pipelines/defaultRenderingPipeline.d.ts +1 -1
  592. package/PostProcesses/RenderPipeline/Pipelines/defaultRenderingPipeline.js +1 -1
  593. package/PostProcesses/RenderPipeline/Pipelines/defaultRenderingPipeline.js.map +1 -1
  594. package/PostProcesses/RenderPipeline/Pipelines/standardRenderingPipeline.d.ts +1 -1
  595. package/PostProcesses/RenderPipeline/Pipelines/standardRenderingPipeline.js +1 -1
  596. package/PostProcesses/RenderPipeline/Pipelines/standardRenderingPipeline.js.map +1 -1
  597. package/PostProcesses/RenderPipeline/postProcessRenderEffect.d.ts +1 -1
  598. package/PostProcesses/RenderPipeline/postProcessRenderEffect.js +1 -1
  599. package/PostProcesses/RenderPipeline/postProcessRenderEffect.js.map +1 -1
  600. package/PostProcesses/RenderPipeline/postProcessRenderPipeline.d.ts +2 -2
  601. package/PostProcesses/RenderPipeline/postProcessRenderPipeline.js +1 -1
  602. package/PostProcesses/RenderPipeline/postProcessRenderPipeline.js.map +1 -1
  603. package/PostProcesses/RenderPipeline/postProcessRenderPipelineManager.d.ts +2 -2
  604. package/PostProcesses/RenderPipeline/postProcessRenderPipelineManager.js +2 -2
  605. package/PostProcesses/RenderPipeline/postProcessRenderPipelineManager.js.map +1 -1
  606. package/PostProcesses/RenderPipeline/postProcessRenderPipelineManagerSceneComponent.d.ts +2 -2
  607. package/PostProcesses/RenderPipeline/postProcessRenderPipelineManagerSceneComponent.js.map +1 -1
  608. package/PostProcesses/blackAndWhitePostProcess.d.ts +1 -1
  609. package/PostProcesses/blackAndWhitePostProcess.js +1 -1
  610. package/PostProcesses/blackAndWhitePostProcess.js.map +1 -1
  611. package/PostProcesses/fxaaPostProcess.d.ts +1 -1
  612. package/PostProcesses/fxaaPostProcess.js +1 -1
  613. package/PostProcesses/fxaaPostProcess.js.map +1 -1
  614. package/PostProcesses/highlightsPostProcess.d.ts +2 -2
  615. package/PostProcesses/highlightsPostProcess.js +2 -2
  616. package/PostProcesses/highlightsPostProcess.js.map +1 -1
  617. package/PostProcesses/imageProcessingPostProcess.d.ts +1 -1
  618. package/PostProcesses/imageProcessingPostProcess.js +1 -1
  619. package/PostProcesses/imageProcessingPostProcess.js.map +1 -1
  620. package/PostProcesses/postProcess.d.ts +32 -2
  621. package/PostProcesses/postProcess.js +49 -3
  622. package/PostProcesses/postProcess.js.map +1 -1
  623. package/PostProcesses/postProcessManager.d.ts +1 -1
  624. package/PostProcesses/postProcessManager.js +1 -1
  625. package/PostProcesses/postProcessManager.js.map +1 -1
  626. package/PostProcesses/refractionPostProcess.d.ts +2 -2
  627. package/PostProcesses/refractionPostProcess.js +2 -2
  628. package/PostProcesses/refractionPostProcess.js.map +1 -1
  629. package/Probes/reflectionProbe.d.ts +2 -2
  630. package/Probes/reflectionProbe.js +1 -1
  631. package/Probes/reflectionProbe.js.map +1 -1
  632. package/Rendering/depthRenderer.js +10 -28
  633. package/Rendering/depthRenderer.js.map +1 -1
  634. package/Rendering/geometryBufferRenderer.js +2 -2
  635. package/Rendering/geometryBufferRenderer.js.map +1 -1
  636. package/Rendering/outlineRenderer.js +26 -45
  637. package/Rendering/outlineRenderer.js.map +1 -1
  638. package/Shaders/ShadersInclude/imageProcessingFunctions.js +4 -1
  639. package/Shaders/ShadersInclude/imageProcessingFunctions.js.map +1 -1
  640. package/Shaders/circleOfConfusion.fragment.js +3 -1
  641. package/Shaders/circleOfConfusion.fragment.js.map +1 -1
  642. package/Sprites/sprite.d.ts +1 -1
  643. package/Sprites/sprite.js +1 -1
  644. package/Sprites/sprite.js.map +1 -1
  645. package/Sprites/spriteManager.d.ts +2 -2
  646. package/Sprites/spriteManager.js +1 -1
  647. package/Sprites/spriteManager.js.map +1 -1
  648. package/Sprites/spritePackedManager.d.ts +1 -1
  649. package/Sprites/spritePackedManager.js +1 -1
  650. package/Sprites/spritePackedManager.js.map +1 -1
  651. package/Sprites/spriteSceneComponent.d.ts +1 -1
  652. package/Sprites/spriteSceneComponent.js.map +1 -1
  653. package/Sprites/thinSprite.d.ts +1 -1
  654. package/Sprites/thinSprite.js +1 -1
  655. package/Sprites/thinSprite.js.map +1 -1
  656. package/XR/webXRCamera.d.ts +1 -1
  657. package/XR/webXRCamera.js +1 -1
  658. package/XR/webXRCamera.js.map +1 -1
  659. package/XR/webXRExperienceHelper.d.ts +1 -1
  660. package/XR/webXRExperienceHelper.js +1 -1
  661. package/XR/webXRExperienceHelper.js.map +1 -1
  662. package/XR/webXRInputSource.d.ts +1 -1
  663. package/XR/webXRInputSource.js +1 -1
  664. package/XR/webXRInputSource.js.map +1 -1
  665. package/XR/webXRSessionManager.d.ts +1 -1
  666. package/XR/webXRSessionManager.js +1 -1
  667. package/XR/webXRSessionManager.js.map +1 -1
  668. package/abstractScene.d.ts +9 -9
  669. package/abstractScene.js +9 -9
  670. package/abstractScene.js.map +1 -1
  671. package/node.d.ts +6 -6
  672. package/node.js +5 -5
  673. package/node.js.map +1 -1
  674. package/package.json +1 -1
  675. package/scene.d.ts +29 -24
  676. package/scene.js +24 -18
  677. package/scene.js.map +1 -1
  678. package/Materials/thinMaterialHelper.d.ts +0 -17
  679. package/Materials/thinMaterialHelper.js +0 -41
  680. package/Materials/thinMaterialHelper.js.map +0 -1
package/node.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"node.js","sourceRoot":"","sources":["../../../../lts/core/generated/node.ts"],"names":[],"mappings":";AAGA,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAGtD,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAE9C,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAiB9C,gBAAgB;AAChB,MAAM,qBAAqB;IAA3B;QACW,oBAAe,GAAG,KAAK,CAAC;QACxB,gBAAW,GAAG,KAAK,CAAC;QACpB,yBAAoB,GAAG,CAAC,CAAC,CAAC;QAC1B,eAAU,GAAG,IAAI,CAAC;QAClB,qBAAgB,GAAG,IAAI,CAAC;QACxB,aAAQ,GAAG,IAAI,CAAC;QAChB,qCAAgC,GAAG,IAAI,UAAU,EAAW,CAAC;QAC7D,wBAAmB,GAAG,IAAI,UAAU,EAAQ,CAAC;IACxD,CAAC;CAAA;AAED;;GAEG;AACH,MAAM,OAAO,IAAI;IA0Sb;;;;OAIG;IACH,YAAY,IAAY,EAAE,QAAyB,IAAI;QA9S7C,aAAQ,GAAG,KAAK,CAAC;QAsCnB,qBAAgB,GAAG,IAAI,qBAAqB,EAAE,CAAC;QAoBvD;;WAEG;QAEI,UAAK,GAAG,EAAE,CAAC;QAElB;;WAEG;QAEI,aAAQ,GAAQ,IAAI,CAAC;QAE5B;;WAEG;QACI,sBAAiB,GAAQ,IAAI,CAAC;QAoB3B,sBAAiB,GAAgC,IAAI,CAAC;QAEzD,wCAAmC,GAAG,IAAI,UAAU,EAA+B,CAAC;QAqB3F,gBAAgB;QACT,qBAAgB,GAA4B,IAAI,CAAC;QAExD;;WAEG;QACI,eAAU,GAAG,IAAI,KAAK,EAAa,CAAC;QACjC,YAAO,GAAiD,EAAE,CAAC;QAErE;;WAEG;QACI,YAAO,GAAmC,IAAI,CAAC;QAEtD,gBAAgB;QACT,qBAAgB,GAAG,CAAC,CAAC,CAAC;QACrB,oBAAe,GAAG,CAAC,CAAC,CAAC;QAC7B,gBAAgB;QACT,mBAAc,GAAG,CAAC,CAAC,CAAC;QAE3B,gBAAgB;QACT,qBAAgB,GAAqB,IAAI,CAAC;QACjD,gBAAgB;QACT,gCAA2B,GAAqB,IAAI,CAAC;QAC5D,gBAAgB;QACT,2BAAsB,GAAqB,IAAI,CAAC;QAGvD,gBAAgB;QACT,WAAM,GAAQ,EAAE,CAAC;QAEd,gBAAW,GAAmB,IAAI,CAAC;QAE7C,gBAAgB;QACN,cAAS,GAAqB,IAAI,CAAC;QAE7C,gBAAgB;QACT,iBAAY,GAAG,MAAM,CAAC,QAAQ,EAAE,CAAC;QACxC,gBAAgB;QACT,4BAAuB,GAAG,CAAC,CAAC;QACnC,gBAAgB;QACT,mCAA8B,GAAG,IAAI,CAAC;QAmFrC,iCAA4B,GAA0C,IAAI,CAAC;QAwBnF,gBAAgB;QACA,YAAO,GAAG,IAAI,CAAC;QAE/B;;WAEG;QACI,wBAAmB,GAAG,IAAI,UAAU,EAAQ,CAAC;QAE5C,uBAAkB,GAA6B,IAAI,CAAC;QAsD5D,YAAY;QACJ,eAAU,GAAG,IAAI,KAAK,EAAkB,CAAC;QAxB7C,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC;QACf,IAAI,CAAC,MAAM,GAAU,CAAC,KAAK,IAAI,WAAW,CAAC,gBAAgB,CAAC,CAAC;QAC7D,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC;QAC1C,IAAI,CAAC,UAAU,EAAE,CAAC;IACtB,CAAC;IAzSD;;;;OAIG;IACI,MAAM,CAAC,kBAAkB,CAAC,IAAY,EAAE,eAAgC;QAC3E,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,GAAG,eAAe,CAAC;IACnD,CAAC;IAED;;;;;;;OAOG;IACI,MAAM,CAAC,SAAS,CAAC,IAAY,EAAE,IAAY,EAAE,KAAY,EAAE,OAAa;QAC3E,MAAM,eAAe,GAAG,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;QAErD,IAAI,CAAC,eAAe,EAAE;YAClB,OAAO,IAAI,CAAC;SACf;QAED,OAAO,eAAe,CAAC,IAAI,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;IACjD,CAAC;IA6CD;;OAEG;IACH,IAAW,gBAAgB,CAAC,KAAkC;QAC1D,IAAI,CAAC,iBAAiB,GAAG,KAAK,CAAC;QAC/B,IAAI,CAAC,mCAAmC,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;IACpE,CAAC;IAED,IAAW,gBAAgB;QACvB,OAAO,IAAI,CAAC,iBAAiB,CAAC;IAClC,CAAC;IAMD;;OAEG;IACH,IAAW,cAAc;QACrB,IAAI,IAAI,CAAC,gBAAgB,CAAC,eAAe,EAAE;YACvC,OAAO,IAAI,CAAC;SACf;QAED,IAAI,IAAI,CAAC,WAAW,EAAE;YAClB,OAAO,IAAI,CAAC,WAAW,CAAC,cAAc,CAAC;SAC1C;QAED,OAAO,KAAK,CAAC;IACjB,CAAC;IAED,IAAW,cAAc,CAAC,KAAc;QACpC,IAAI,CAAC,gBAAgB,CAAC,eAAe,GAAG,KAAK,CAAC;IAClD,CAAC;IA6CD;;;OAGG;IACI,UAAU;QACb,OAAO,IAAI,CAAC,gBAAgB,CAAC,WAAW,CAAC;IAC7C,CAAC;IAED;;;OAGG;IACH,IAAW,MAAM,CAAC,MAAsB;QACpC,IAAI,IAAI,CAAC,WAAW,KAAK,MAAM,EAAE;YAC7B,OAAO;SACV;QAED,MAAM,kBAAkB,GAAG,IAAI,CAAC,WAAW,CAAC;QAE5C,8CAA8C;QAC9C,IAAI,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,WAAW,CAAC,SAAS,KAAK,SAAS,IAAI,IAAI,CAAC,WAAW,CAAC,SAAS,KAAK,IAAI,EAAE;YACrG,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YACvD,IAAI,KAAK,KAAK,CAAC,CAAC,EAAE;gBACd,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;aAC/C;YAED,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,WAAW,EAAE;gBAC/C,IAAI,CAAC,oBAAoB,EAAE,CAAC;aAC/B;SACJ;QAED,mBAAmB;QACnB,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC;QAE1B,6BAA6B;QAC7B,IAAI,IAAI,CAAC,WAAW,EAAE;YAClB,IAAI,IAAI,CAAC,WAAW,CAAC,SAAS,KAAK,SAAS,IAAI,IAAI,CAAC,WAAW,CAAC,SAAS,KAAK,IAAI,EAAE;gBACjF,IAAI,CAAC,WAAW,CAAC,SAAS,GAAG,IAAI,KAAK,EAAQ,CAAC;aAClD;YACD,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAEtC,IAAI,CAAC,kBAAkB,EAAE;gBACrB,IAAI,CAAC,yBAAyB,EAAE,CAAC;aACpC;SACJ;QAED,gBAAgB;QAChB,IAAI,CAAC,uBAAuB,EAAE,CAAC;IACnC,CAAC;IAED,IAAW,MAAM;QACb,OAAO,IAAI,CAAC,WAAW,CAAC;IAC5B,CAAC;IAED;;OAEG;IACI,kBAAkB,CAAC,mBAAwB;QAC9C,mBAAmB,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;IACjD,CAAC;IAED,gBAAgB;IACT,oBAAoB;QACvB,IAAI,IAAI,CAAC,gBAAgB,CAAC,oBAAoB,KAAK,CAAC,CAAC,EAAE;YACnD,IAAI,CAAC,gBAAgB,CAAC,oBAAoB,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC;YAC1E,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;SACpC;IACL,CAAC;IAED,gBAAgB;IACT,yBAAyB;QAC5B,IAAI,IAAI,CAAC,gBAAgB,CAAC,oBAAoB,KAAK,CAAC,CAAC,EAAE;YACnD,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC;YACxC,MAAM,OAAO,GAAG,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC;YACrC,SAAS,CAAC,IAAI,CAAC,gBAAgB,CAAC,oBAAoB,CAAC,GAAG,SAAS,CAAC,OAAO,CAAC,CAAC;YAC3E,SAAS,CAAC,IAAI,CAAC,gBAAgB,CAAC,oBAAoB,CAAC,CAAC,gBAAgB,CAAC,oBAAoB,GAAG,IAAI,CAAC,gBAAgB,CAAC,oBAAoB,CAAC;YACzI,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC;YAC5B,IAAI,CAAC,gBAAgB,CAAC,oBAAoB,GAAG,CAAC,CAAC,CAAC;SACnD;IACL,CAAC;IAID;;OAEG;IACH,IAAW,2BAA2B;QAClC,IAAI,CAAC,IAAI,CAAC,4BAA4B,EAAE;YACpC,OAAO,IAAI,CAAC,MAAM,CAAC,2BAA2B,CAAC;SAClD;QACD,OAAO,IAAI,CAAC,4BAA4B,CAAC;IAC7C,CAAC;IAED,IAAW,2BAA2B,CAAC,KAA4C;QAC/E,IAAI,CAAC,4BAA4B,GAAG,KAAK,CAAC;IAC9C,CAAC;IAED;;;OAGG;IACI,YAAY;QACf,OAAO,MAAM,CAAC;IAClB,CAAC;IAWD;;OAEG;IACH,IAAW,SAAS,CAAC,QAAoB;QACrC,IAAI,IAAI,CAAC,kBAAkB,EAAE;YACzB,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;SAC5D;QACD,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IACrE,CAAC;IAED;;OAEG;IACH,IAAW,+BAA+B;QACtC,OAAO,IAAI,CAAC,gBAAgB,CAAC,gCAAgC,CAAC;IAClE,CAAC;IAED;;OAEG;IACH,IAAW,kBAAkB;QACzB,OAAO,IAAI,CAAC,gBAAgB,CAAC,mBAAmB,CAAC;IACrD,CAAC;IAeD;;;OAGG;IACI,QAAQ;QACX,OAAO,IAAI,CAAC,MAAM,CAAC;IACvB,CAAC;IAED;;;OAGG;IACI,SAAS;QACZ,OAAO,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC;IACnC,CAAC;IAKD;;;;;;OAMG;IACI,WAAW,CAAC,QAAwB,EAAE,iBAAiB,GAAG,KAAK;QAClE,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QAEhD,IAAI,KAAK,KAAK,CAAC,CAAC,EAAE;YACd,OAAO,IAAI,CAAC;SACf;QAED,QAAQ,CAAC,IAAI,EAAE,CAAC;QAChB,IAAI,IAAI,CAAC,MAAM,CAAC,SAAS,IAAI,CAAC,iBAAiB,EAAE;YAC7C,oDAAoD;YACpD,IAAI,CAAC,MAAM,CAAC,sBAAsB,CAAC,OAAO,CAAC,GAAG,EAAE;gBAC5C,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YAC1B,CAAC,CAAC,CAAC;SACN;aAAM;YACH,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;SACzB;QACD,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAE/B,OAAO,IAAI,CAAC;IAChB,CAAC;IAED;;;;;OAKG;IACI,cAAc,CAAC,QAAwB;QAC1C,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QAEhD,IAAI,KAAK,KAAK,CAAC,CAAC,EAAE;YACd,OAAO,IAAI,CAAC;SACf;QAED,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,MAAM,EAAE,CAAC;QAChC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;QAEjC,OAAO,IAAI,CAAC;IAChB,CAAC;IAED;;;OAGG;IACH,IAAW,SAAS;QAChB,OAAO,IAAI,CAAC,UAAU,CAAC;IAC3B,CAAC;IAED;;;;;OAKG;IACI,iBAAiB,CAAC,IAAY;QACjC,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,UAAU,EAAE;YACpC,IAAI,QAAQ,CAAC,IAAI,KAAK,IAAI,EAAE;gBACxB,OAAO,QAAQ,CAAC;aACnB;SACJ;QAED,OAAO,IAAI,CAAC;IAChB,CAAC;IAED;;;OAGG;IACI,cAAc;QACjB,IAAI,IAAI,CAAC,gBAAgB,KAAK,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,EAAE;YACrD,IAAI,CAAC,kBAAkB,EAAE,CAAC;SAC7B;QACD,OAAO,IAAI,CAAC,YAAY,CAAC;IAC7B,CAAC;IAED,gBAAgB;IACT,0BAA0B;QAC7B,IAAI,IAAI,CAAC,8BAA8B,EAAE;YACrC,IAAI,CAAC,8BAA8B,GAAG,KAAK,CAAC;YAC5C,IAAI,CAAC,uBAAuB,GAAG,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE,CAAC;SAClE;QACD,OAAO,IAAI,CAAC,uBAAuB,CAAC;IACxC,CAAC;IAED;;;OAGG;IACH,IAAW,oBAAoB;QAC3B,OAAO,IAAI,CAAC,YAAY,CAAC;IAC7B,CAAC;IAED,qEAAqE;IACrE,mCAAmC;IACnC,gBAAgB;IACT,UAAU;QACb,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;QACjB,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,SAAS,CAAC;IACnC,CAAC;IAED;;OAEG;IACI,WAAW,CAAC,KAAe;QAC9B,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,cAAc,EAAE,EAAE;YACjC,OAAO;SACV;QAED,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QAEjC,IAAI,CAAC,YAAY,EAAE,CAAC;IACxB,CAAC;IAED;;OAEG;IACI,2BAA2B,CAAC,OAAgB,EAAE,YAAY,GAAG,IAAI;QACpE,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;YACd,OAAO,IAAI,CAAC;SACf;QAED,OAAO,IAAI,CAAC,MAAM,CAAC,2BAA2B,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;IACnE,CAAC;IAED,qEAAqE;IACrE,yDAAyD;IACzD;;OAEG;IACI,YAAY,CAAC,kBAA4B,IAAS,CAAC;IAE1D,qEAAqE;IACrE,gBAAgB;IACT,eAAe;QAClB,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,gBAAgB;IACT,qBAAqB;QACxB,IAAI,IAAI,CAAC,WAAW,EAAE;YAClB,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,WAAW,CAAC,cAAc,CAAC;SAC1D;IACL,CAAC;IAED,gBAAgB;IACT,wBAAwB;QAC3B,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE;YACnB,OAAO,IAAI,CAAC;SACf;QAED,IAAI,IAAI,CAAC,WAAW,CAAC,QAAQ,IAAI,IAAI,CAAC,eAAe,KAAK,IAAI,CAAC,WAAW,CAAC,cAAc,EAAE;YACvF,OAAO,KAAK,CAAC;SAChB;QAED,OAAO,IAAI,CAAC,WAAW,CAAC,cAAc,EAAE,CAAC;IAC7C,CAAC;IAED,gBAAgB;IACT,cAAc;QACjB,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,KAAK,IAAI,CAAC,WAAW,EAAE;YACzC,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC;YACtC,OAAO,KAAK,CAAC;SAChB;QAED,IAAI,IAAI,CAAC,WAAW,IAAI,CAAC,IAAI,CAAC,wBAAwB,EAAE,EAAE;YACtD,OAAO,KAAK,CAAC;SAChB;QAED,OAAO,IAAI,CAAC,eAAe,EAAE,CAAC;IAClC,CAAC;IAED;;;;OAIG;IACI,OAAO,CAAC,cAAc,GAAG,KAAK;QACjC,OAAO,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC;IAC1C,CAAC;IAED;;;;OAIG;IACI,WAAW,CAAC,SAAkB;QACjC,IAAI,CAAC,gBAAgB,GAAG,MAAM,CAAC,SAAS,CAAC;QACzC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QACrB,OAAO,IAAI,CAAC;IAChB,CAAC;IAED;;;;;OAKG;IACI,SAAS,CAAC,iBAA0B,IAAI;QAC3C,IAAI,cAAc,KAAK,KAAK,EAAE;YAC1B,OAAO,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC;SAC3C;QAED,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,UAAU,EAAE;YACnC,OAAO,KAAK,CAAC;SAChB;QAED,OAAO,IAAI,CAAC,gBAAgB,CAAC,gBAAgB,CAAC;IAClD,CAAC;IAED,gBAAgB;IACN,uBAAuB;QAC7B,IAAI,CAAC,gBAAgB,CAAC,gBAAgB,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;QAEhG,IAAI,IAAI,CAAC,SAAS,EAAE;YAChB,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;gBACzB,CAAC,CAAC,uBAAuB,EAAE,CAAC,CAAC,uCAAuC;YACxE,CAAC,CAAC,CAAC;SACN;IACL,CAAC;IAED;;;OAGG;IACI,UAAU,CAAC,KAAc;QAC5B,IAAI,IAAI,CAAC,gBAAgB,CAAC,UAAU,KAAK,KAAK,EAAE;YAC5C,OAAO;SACV;QACD,IAAI,CAAC,gBAAgB,CAAC,UAAU,GAAG,KAAK,CAAC;QACzC,IAAI,CAAC,uBAAuB,EAAE,CAAC;QAC/B,IAAI,CAAC,gBAAgB,CAAC,gCAAgC,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;IAClF,CAAC;IAED;;;;;OAKG;IACI,cAAc,CAAC,QAAc;QAChC,IAAI,IAAI,CAAC,MAAM,EAAE;YACb,IAAI,IAAI,CAAC,MAAM,KAAK,QAAQ,EAAE;gBAC1B,OAAO,IAAI,CAAC;aACf;YAED,OAAO,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;SAC/C;QACD,OAAO,KAAK,CAAC;IACjB,CAAC;IAED;;OAEG;IACI,eAAe,CAAC,OAAe,EAAE,wBAAiC,KAAK,EAAE,SAAmC;QAC/G,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;YACjB,OAAO;SACV;QAED,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE;YACxD,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;YAEnC,IAAI,CAAC,SAAS,IAAI,SAAS,CAAC,IAAI,CAAC,EAAE;gBAC/B,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;aACtB;YAED,IAAI,CAAC,qBAAqB,EAAE;gBACxB,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC;aACnD;SACJ;IACL,CAAC;IAkBD;;;;;OAKG;IACI,cAAc,CAAC,qBAA+B,EAAE,SAAmC;QACtF,MAAM,OAAO,GAAG,IAAI,KAAK,EAAQ,CAAC;QAElC,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,qBAAqB,EAAE,SAAS,CAAC,CAAC;QAEhE,OAAO,OAAO,CAAC;IACnB,CAAC;IAkBD;;;;;OAKG;IACI,cAAc,CAAC,qBAA+B,EAAE,SAAmC;QACtF,MAAM,OAAO,GAAwB,EAAE,CAAC;QACxC,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,qBAAqB,EAAE,CAAC,IAAU,EAAE,EAAE;YAChE,OAAO,CAAC,CAAC,SAAS,IAAI,SAAS,CAAC,IAAI,CAAC,CAAC,IAAmB,IAAK,CAAC,eAAe,KAAK,SAAS,CAAC;QACjG,CAAC,CAAC,CAAC;QACH,OAAO,OAAO,CAAC;IACnB,CAAC;IAkBD;;;;;OAKG;IACI,WAAW,CAAC,SAAmC,EAAE,qBAAqB,GAAG,IAAI;QAChF,OAAO,IAAI,CAAC,cAAc,CAAC,qBAAqB,EAAE,SAAS,CAAC,CAAC;IACjE,CAAC;IAED;;OAEG;IACI,SAAS,CAAC,KAAc;QAC3B,IAAI,KAAK,KAAK,IAAI,CAAC,gBAAgB,CAAC,QAAQ,EAAE;YAC1C,OAAO;SACV;QAED,IAAI,CAAC,KAAK,EAAE;YACR,IAAI,CAAC,gBAAgB,CAAC,QAAQ,GAAG,KAAK,CAAC;YACvC,OAAO;SACV;QAED,IAAI,IAAI,CAAC,OAAO,EAAE;YACd,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;SACtB;QACD,IAAI,CAAC,gBAAgB,CAAC,QAAQ,GAAG,IAAI,CAAC;IAC1C,CAAC;IAED;;;;OAIG;IACI,kBAAkB,CAAC,IAAY;QAClC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YAC7C,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;YAErC,IAAI,SAAS,CAAC,IAAI,KAAK,IAAI,EAAE;gBACzB,OAAO,SAAS,CAAC;aACpB;SACJ;QAED,OAAO,IAAI,CAAC;IAChB,CAAC;IAED;;;;;OAKG;IACI,oBAAoB,CAAC,IAAY,EAAE,IAAY,EAAE,EAAU;QAC9D,gCAAgC;QAChC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;YACrB,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,sBAAsB,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC;YACjE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,WAAW,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC,GAAG,WAAW,EAAE,CAAC,EAAE,EAAE;gBACxE,IAAI,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE;oBACpB,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC;iBAClD;aACJ;SACJ;IACL,CAAC;IAED;;;;OAIG;IACI,oBAAoB,CAAC,IAAY,EAAE,YAAY,GAAG,IAAI;QACzD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,WAAW,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC,GAAG,WAAW,EAAE,CAAC,EAAE,EAAE;YACxE,IAAI,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE;gBACpB,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;aACtD;SACJ;QACD,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC,mDAAmD;IAClF,CAAC;IAED;;;;OAIG;IACI,iBAAiB,CAAC,IAAY;QACjC,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC;IACtC,CAAC;IAED;;;OAGG;IACI,kBAAkB;QACrB,MAAM,eAAe,GAA+B,EAAE,CAAC;QACvD,IAAI,IAAY,CAAC;QACjB,KAAK,IAAI,IAAI,IAAI,CAAC,OAAO,EAAE;YACvB,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;SAC5C;QACD,OAAO,eAAe,CAAC;IAC3B,CAAC;IAED;;;;;;;OAOG;IACI,cAAc,CAAC,IAAY,EAAE,IAAc,EAAE,UAAmB,EAAE,cAA2B;QAChG,MAAM,KAAK,GAAG,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;QAE3C,IAAI,CAAC,KAAK,EAAE;YACR,OAAO,IAAI,CAAC;SACf;QAED,OAAO,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,cAAc,CAAC,CAAC;IACpG,CAAC;IAED;;;OAGG;IACI,wBAAwB;QAC3B,MAAM,mBAAmB,GAAG,EAAE,CAAC;QAC/B,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,OAAO,EAAE;YAC7B,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YACtC,IAAI,CAAC,UAAU,EAAE;gBACb,SAAS;aACZ;YACD,MAAM,KAAK,GAAQ,EAAE,CAAC;YACtB,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC;YAClB,KAAK,CAAC,IAAI,GAAG,UAAU,CAAC,IAAI,CAAC;YAC7B,KAAK,CAAC,EAAE,GAAG,UAAU,CAAC,EAAE,CAAC;YACzB,mBAAmB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;SACnC;QACD,OAAO,mBAAmB,CAAC;IAC/B,CAAC;IAED;;;;OAIG;IACI,kBAAkB,CAAC,MAAgB;QACtC,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE;YACpB,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC,QAAQ,EAAE,CAAC;SACzC;QACD,OAAO,IAAI,CAAC,YAAY,CAAC;IAC7B,CAAC;IAED;;;;OAIG;IACI,OAAO,CAAC,YAAsB,EAAE,0BAA0B,GAAG,KAAK;QACrE,IAAI,CAAC,gBAAgB,CAAC,WAAW,GAAG,IAAI,CAAC;QAEzC,IAAI,CAAC,YAAY,EAAE;YACf,MAAM,KAAK,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;YACxC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE;gBACtB,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,0BAA0B,CAAC,CAAC;aAC1D;SACJ;QAED,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;YACd,IAAI,CAAC,yBAAyB,EAAE,CAAC;SACpC;aAAM;YACH,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;SACtB;QAED,WAAW;QACX,IAAI,CAAC,mBAAmB,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;QAC/C,IAAI,CAAC,mBAAmB,CAAC,KAAK,EAAE,CAAC;QAEjC,IAAI,CAAC,+BAA+B,CAAC,KAAK,EAAE,CAAC;QAC7C,IAAI,CAAC,kBAAkB,CAAC,KAAK,EAAE,CAAC;QAEhC,YAAY;QACZ,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,UAAU,EAAE;YACpC,QAAQ,CAAC,MAAM,EAAE,CAAC;SACrB;QAED,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC;QAE3B,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;IACzB,CAAC;IAED;;;;;OAKG;IACI,MAAM,CAAC,oBAAoB,CAAC,IAAU,EAAE,UAAe,EAAE,MAAa;QACzE,IAAI,UAAU,CAAC,MAAM,EAAE;YACnB,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,UAAU,CAAC,MAAM,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE;gBAC3D,MAAM,IAAI,GAAG,UAAU,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;gBACtC,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;aAC5D;SACJ;IACL,CAAC;IACD;;;;;OAKG;IACI,2BAA2B,CAAC,kBAAkB,GAAG,IAAI,EAAE,YAA+D,IAAI;QAC7H,oDAAoD;QACpD,IAAI,CAAC,QAAQ,EAAE,CAAC,iBAAiB,EAAE,CAAC;QAEpC,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC;QAE9B,IAAI,GAAY,CAAC;QACjB,IAAI,GAAY,CAAC;QAEjB,MAAM,gBAAgB,GAAG,IAA4B,CAAC;QACtD,IAAI,gBAAgB,CAAC,eAAe,IAAI,gBAAgB,CAAC,SAAS,EAAE;YAChE,oDAAoD;YACpD,MAAM,YAAY,GAAG,gBAAgB,CAAC,eAAe,EAAE,CAAC;YACxD,GAAG,GAAG,YAAY,CAAC,WAAW,CAAC,YAAY,CAAC,KAAK,EAAE,CAAC;YACpD,GAAG,GAAG,YAAY,CAAC,WAAW,CAAC,YAAY,CAAC,KAAK,EAAE,CAAC;SACvD;aAAM;YACH,GAAG,GAAG,IAAI,OAAO,CAAC,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC;YACxE,GAAG,GAAG,IAAI,OAAO,CAAC,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;SAC9E;QAED,IAAI,kBAAkB,EAAE;YACpB,MAAM,WAAW,GAAG,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;YAE/C,KAAK,MAAM,UAAU,IAAI,WAAW,EAAE;gBAClC,MAAM,SAAS,GAAiB,UAAU,CAAC;gBAC3C,SAAS,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC;gBAEnC,qDAAqD;gBACrD,IAAI,SAAS,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,EAAE;oBACpC,SAAS;iBACZ;gBAED,wDAAwD;gBACxD,IAAI,CAAC,SAAS,CAAC,eAAe,IAAI,SAAS,CAAC,gBAAgB,EAAE,KAAK,CAAC,EAAE;oBAClE,SAAS;iBACZ;gBAED,MAAM,iBAAiB,GAAG,SAAS,CAAC,eAAe,EAAE,CAAC;gBACtD,MAAM,WAAW,GAAG,iBAAiB,CAAC,WAAW,CAAC;gBAElD,MAAM,MAAM,GAAG,WAAW,CAAC,YAAY,CAAC;gBACxC,MAAM,MAAM,GAAG,WAAW,CAAC,YAAY,CAAC;gBAExC,OAAO,CAAC,YAAY,CAAC,MAAM,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;gBACvC,OAAO,CAAC,YAAY,CAAC,MAAM,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;aAC1C;SACJ;QAED,OAAO;YACH,GAAG,EAAE,GAAG;YACR,GAAG,EAAE,GAAG;SACX,CAAC;IACN,CAAC;;AA76BD;;GAEG;AACW,2BAAsB,GAAG,CAAC,KAAa,EAAE,KAAa,EAAE,GAAW,EAAkB,EAAE;IACjG,MAAM,WAAW,CAAC,gBAAgB,CAAC,CAAC;AACxC,CAAC,CAAC;AAEa,sBAAiB,GAA2B,EAAE,CAAC;AAmC9D;IADC,SAAS,EAAE;kCACQ;AAMpB;IADC,SAAS,EAAE;gCACM;AAMlB;IADC,SAAS,EAAE;sCACY;AAMxB;IADC,SAAS,EAAE;mCACM;AAMlB;IADC,SAAS,EAAE;sCACgB","sourcesContent":["/* eslint-disable @typescript-eslint/no-unused-vars */\r\nimport type { Scene } from \"./scene\";\r\nimport type { Nullable } from \"./types\";\r\nimport { Matrix, Vector3 } from \"./Maths/math.vector\";\r\nimport type { Engine } from \"./Engines/engine\";\r\nimport type { IBehaviorAware, Behavior } from \"./Behaviors/behavior\";\r\nimport { serialize } from \"./Misc/decorators\";\r\nimport type { Observer } from \"./Misc/observable\";\r\nimport { Observable } from \"./Misc/observable\";\r\nimport { EngineStore } from \"./Engines/engineStore\";\r\nimport { _WarnImport } from \"./Misc/devTools\";\r\nimport type { AbstractActionManager } from \"./Actions/abstractActionManager\";\r\nimport type { IInspectable } from \"./Misc/iInspectable\";\r\nimport type { AbstractScene } from \"./abstractScene\";\r\nimport type { IAccessibilityTag } from \"./IAccessibilityTag\";\r\n\r\ndeclare type Animatable = import(\"./Animations/animatable\").Animatable;\r\ndeclare type AnimationPropertiesOverride = import(\"./Animations/animationPropertiesOverride\").AnimationPropertiesOverride;\r\ndeclare type Animation = import(\"./Animations/animation\").Animation;\r\ndeclare type AnimationRange = import(\"./Animations/animationRange\").AnimationRange;\r\ndeclare type AbstractMesh = import(\"./Meshes/abstractMesh\").AbstractMesh;\r\n\r\n/**\r\n * Defines how a node can be built from a string name.\r\n */\r\nexport type NodeConstructor = (name: string, scene: Scene, options?: any) => () => Node;\r\n\r\n/** @internal */\r\nclass _InternalNodeDataInfo {\r\n public _doNotSerialize = false;\r\n public _isDisposed = false;\r\n public _sceneRootNodesIndex = -1;\r\n public _isEnabled = true;\r\n public _isParentEnabled = true;\r\n public _isReady = true;\r\n public _onEnabledStateChangedObservable = new Observable<boolean>();\r\n public _onClonedObservable = new Observable<Node>();\r\n}\r\n\r\n/**\r\n * Node is the basic class for all scene objects (Mesh, Light, Camera.)\r\n */\r\nexport class Node implements IBehaviorAware<Node> {\r\n protected _isDirty = false;\r\n\r\n /**\r\n * @internal\r\n */\r\n public static _AnimationRangeFactory = (_name: string, _from: number, _to: number): AnimationRange => {\r\n throw _WarnImport(\"AnimationRange\");\r\n };\r\n\r\n private static _NodeConstructors: { [key: string]: any } = {};\r\n\r\n /**\r\n * Add a new node constructor\r\n * @param type defines the type name of the node to construct\r\n * @param constructorFunc defines the constructor function\r\n */\r\n public static AddNodeConstructor(type: string, constructorFunc: NodeConstructor) {\r\n this._NodeConstructors[type] = constructorFunc;\r\n }\r\n\r\n /**\r\n * Returns a node constructor based on type name\r\n * @param type defines the type name\r\n * @param name defines the new node name\r\n * @param scene defines the hosting scene\r\n * @param options defines optional options to transmit to constructors\r\n * @returns the new constructor or null\r\n */\r\n public static Construct(type: string, name: string, scene: Scene, options?: any): Nullable<() => Node> {\r\n const constructorFunc = this._NodeConstructors[type];\r\n\r\n if (!constructorFunc) {\r\n return null;\r\n }\r\n\r\n return constructorFunc(name, scene, options);\r\n }\r\n\r\n private _nodeDataStorage = new _InternalNodeDataInfo();\r\n\r\n /**\r\n * Gets or sets the name of the node\r\n */\r\n @serialize()\r\n public name: string;\r\n\r\n /**\r\n * Gets or sets the id of the node\r\n */\r\n @serialize()\r\n public id: string;\r\n\r\n /**\r\n * Gets or sets the unique id of the node\r\n */\r\n @serialize()\r\n public uniqueId: number;\r\n\r\n /**\r\n * Gets or sets a string used to store user defined state for the node\r\n */\r\n @serialize()\r\n public state = \"\";\r\n\r\n /**\r\n * Gets or sets an object used to store user defined information for the node\r\n */\r\n @serialize()\r\n public metadata: any = null;\r\n\r\n /**\r\n * For internal use only. Please do not use.\r\n */\r\n public reservedDataStore: any = null;\r\n\r\n /**\r\n * List of inspectable custom properties (used by the Inspector)\r\n * @see https://doc.babylonjs.com/how_to/debug_layer#extensibility\r\n */\r\n public inspectableCustomProperties: IInspectable[];\r\n\r\n /**\r\n * Gets or sets the accessibility tag to describe the node for accessibility purpose.\r\n */\r\n public set accessibilityTag(value: Nullable<IAccessibilityTag>) {\r\n this._accessibilityTag = value;\r\n this.onAccessibilityTagChangedObservable.notifyObservers(value);\r\n }\r\n\r\n public get accessibilityTag() {\r\n return this._accessibilityTag;\r\n }\r\n\r\n protected _accessibilityTag: Nullable<IAccessibilityTag> = null;\r\n\r\n public onAccessibilityTagChangedObservable = new Observable<Nullable<IAccessibilityTag>>();\r\n\r\n /**\r\n * Gets or sets a boolean used to define if the node must be serialized\r\n */\r\n public get doNotSerialize() {\r\n if (this._nodeDataStorage._doNotSerialize) {\r\n return true;\r\n }\r\n\r\n if (this._parentNode) {\r\n return this._parentNode.doNotSerialize;\r\n }\r\n\r\n return false;\r\n }\r\n\r\n public set doNotSerialize(value: boolean) {\r\n this._nodeDataStorage._doNotSerialize = value;\r\n }\r\n\r\n /** @internal */\r\n public _parentContainer: Nullable<AbstractScene> = null;\r\n\r\n /**\r\n * Gets a list of Animations associated with the node\r\n */\r\n public animations = new Array<Animation>();\r\n protected _ranges: { [name: string]: Nullable<AnimationRange> } = {};\r\n\r\n /**\r\n * Callback raised when the node is ready to be used\r\n */\r\n public onReady: Nullable<(node: Node) => void> = null;\r\n\r\n /** @internal */\r\n public _currentRenderId = -1;\r\n private _parentUpdateId = -1;\r\n /** @internal */\r\n public _childUpdateId = -1;\r\n\r\n /** @internal */\r\n public _waitingParentId: Nullable<string> = null;\r\n /** @internal */\r\n public _waitingParentInstanceIndex: Nullable<string> = null;\r\n /** @internal */\r\n public _waitingParsedUniqueId: Nullable<number> = null;\r\n /** @internal */\r\n public _scene: Scene;\r\n /** @internal */\r\n public _cache: any = {};\r\n\r\n protected _parentNode: Nullable<Node> = null;\r\n\r\n /** @internal */\r\n protected _children: Nullable<Node[]> = null;\r\n\r\n /** @internal */\r\n public _worldMatrix = Matrix.Identity();\r\n /** @internal */\r\n public _worldMatrixDeterminant = 0;\r\n /** @internal */\r\n public _worldMatrixDeterminantIsDirty = true;\r\n\r\n /**\r\n * Gets a boolean indicating if the node has been disposed\r\n * @returns true if the node was disposed\r\n */\r\n public isDisposed(): boolean {\r\n return this._nodeDataStorage._isDisposed;\r\n }\r\n\r\n /**\r\n * Gets or sets the parent of the node (without keeping the current position in the scene)\r\n * @see https://doc.babylonjs.com/how_to/parenting\r\n */\r\n public set parent(parent: Nullable<Node>) {\r\n if (this._parentNode === parent) {\r\n return;\r\n }\r\n\r\n const previousParentNode = this._parentNode;\r\n\r\n // Remove self from list of children of parent\r\n if (this._parentNode && this._parentNode._children !== undefined && this._parentNode._children !== null) {\r\n const index = this._parentNode._children.indexOf(this);\r\n if (index !== -1) {\r\n this._parentNode._children.splice(index, 1);\r\n }\r\n\r\n if (!parent && !this._nodeDataStorage._isDisposed) {\r\n this._addToSceneRootNodes();\r\n }\r\n }\r\n\r\n // Store new parent\r\n this._parentNode = parent;\r\n\r\n // Add as child to new parent\r\n if (this._parentNode) {\r\n if (this._parentNode._children === undefined || this._parentNode._children === null) {\r\n this._parentNode._children = new Array<Node>();\r\n }\r\n this._parentNode._children.push(this);\r\n\r\n if (!previousParentNode) {\r\n this._removeFromSceneRootNodes();\r\n }\r\n }\r\n\r\n // Enabled state\r\n this._syncParentEnabledState();\r\n }\r\n\r\n public get parent(): Nullable<Node> {\r\n return this._parentNode;\r\n }\r\n\r\n /**\r\n * @internal\r\n */\r\n public _serializeAsParent(serializationObject: any): void {\r\n serializationObject.parentId = this.uniqueId;\r\n }\r\n\r\n /** @internal */\r\n public _addToSceneRootNodes() {\r\n if (this._nodeDataStorage._sceneRootNodesIndex === -1) {\r\n this._nodeDataStorage._sceneRootNodesIndex = this._scene.rootNodes.length;\r\n this._scene.rootNodes.push(this);\r\n }\r\n }\r\n\r\n /** @internal */\r\n public _removeFromSceneRootNodes() {\r\n if (this._nodeDataStorage._sceneRootNodesIndex !== -1) {\r\n const rootNodes = this._scene.rootNodes;\r\n const lastIdx = rootNodes.length - 1;\r\n rootNodes[this._nodeDataStorage._sceneRootNodesIndex] = rootNodes[lastIdx];\r\n rootNodes[this._nodeDataStorage._sceneRootNodesIndex]._nodeDataStorage._sceneRootNodesIndex = this._nodeDataStorage._sceneRootNodesIndex;\r\n this._scene.rootNodes.pop();\r\n this._nodeDataStorage._sceneRootNodesIndex = -1;\r\n }\r\n }\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) {\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 * Gets a string identifying the name of the class\r\n * @returns \"Node\" string\r\n */\r\n public getClassName(): string {\r\n return \"Node\";\r\n }\r\n\r\n /** @internal */\r\n public readonly _isNode = true;\r\n\r\n /**\r\n * An event triggered when the mesh is disposed\r\n */\r\n public onDisposeObservable = new Observable<Node>();\r\n\r\n private _onDisposeObserver: Nullable<Observer<Node>> = null;\r\n /**\r\n * Sets a callback that will be raised when the node will be disposed\r\n */\r\n public set onDispose(callback: () => void) {\r\n if (this._onDisposeObserver) {\r\n this.onDisposeObservable.remove(this._onDisposeObserver);\r\n }\r\n this._onDisposeObserver = this.onDisposeObservable.add(callback);\r\n }\r\n\r\n /**\r\n * An event triggered when the enabled state of the node changes\r\n */\r\n public get onEnabledStateChangedObservable(): Observable<boolean> {\r\n return this._nodeDataStorage._onEnabledStateChangedObservable;\r\n }\r\n\r\n /**\r\n * An event triggered when the node is cloned\r\n */\r\n public get onClonedObservable(): Observable<Node> {\r\n return this._nodeDataStorage._onClonedObservable;\r\n }\r\n\r\n /**\r\n * Creates a new Node\r\n * @param name the name and id to be given to this node\r\n * @param scene the scene this node will be added to\r\n */\r\n constructor(name: string, scene: Nullable<Scene> = null) {\r\n this.name = name;\r\n this.id = name;\r\n this._scene = <Scene>(scene || EngineStore.LastCreatedScene);\r\n this.uniqueId = this._scene.getUniqueId();\r\n this._initCache();\r\n }\r\n\r\n /**\r\n * Gets the scene of the node\r\n * @returns a scene\r\n */\r\n public getScene(): Scene {\r\n return this._scene;\r\n }\r\n\r\n /**\r\n * Gets the engine of the node\r\n * @returns a Engine\r\n */\r\n public getEngine(): Engine {\r\n return this._scene.getEngine();\r\n }\r\n\r\n // Behaviors\r\n private _behaviors = new Array<Behavior<Node>>();\r\n\r\n /**\r\n * Attach a behavior to the node\r\n * @see https://doc.babylonjs.com/features/behaviour\r\n * @param behavior defines the behavior to attach\r\n * @param attachImmediately defines that the behavior must be attached even if the scene is still loading\r\n * @returns the current Node\r\n */\r\n public addBehavior(behavior: Behavior<Node>, attachImmediately = false): Node {\r\n const index = this._behaviors.indexOf(behavior);\r\n\r\n if (index !== -1) {\r\n return this;\r\n }\r\n\r\n behavior.init();\r\n if (this._scene.isLoading && !attachImmediately) {\r\n // We defer the attach when the scene will be loaded\r\n this._scene.onDataLoadedObservable.addOnce(() => {\r\n behavior.attach(this);\r\n });\r\n } else {\r\n behavior.attach(this);\r\n }\r\n this._behaviors.push(behavior);\r\n\r\n return this;\r\n }\r\n\r\n /**\r\n * Remove an attached behavior\r\n * @see https://doc.babylonjs.com/features/behaviour\r\n * @param behavior defines the behavior to attach\r\n * @returns the current Node\r\n */\r\n public removeBehavior(behavior: Behavior<Node>): Node {\r\n const index = this._behaviors.indexOf(behavior);\r\n\r\n if (index === -1) {\r\n return this;\r\n }\r\n\r\n this._behaviors[index].detach();\r\n this._behaviors.splice(index, 1);\r\n\r\n return this;\r\n }\r\n\r\n /**\r\n * Gets the list of attached behaviors\r\n * @see https://doc.babylonjs.com/features/behaviour\r\n */\r\n public get behaviors(): Behavior<Node>[] {\r\n return this._behaviors;\r\n }\r\n\r\n /**\r\n * Gets an attached behavior by name\r\n * @param name defines the name of the behavior to look for\r\n * @see https://doc.babylonjs.com/features/behaviour\r\n * @returns null if behavior was not found else the requested behavior\r\n */\r\n public getBehaviorByName(name: string): Nullable<Behavior<Node>> {\r\n for (const behavior of this._behaviors) {\r\n if (behavior.name === name) {\r\n return behavior;\r\n }\r\n }\r\n\r\n return null;\r\n }\r\n\r\n /**\r\n * Returns the latest update of the World matrix\r\n * @returns a Matrix\r\n */\r\n public getWorldMatrix(): Matrix {\r\n if (this._currentRenderId !== this._scene.getRenderId()) {\r\n this.computeWorldMatrix();\r\n }\r\n return this._worldMatrix;\r\n }\r\n\r\n /** @internal */\r\n public _getWorldMatrixDeterminant(): number {\r\n if (this._worldMatrixDeterminantIsDirty) {\r\n this._worldMatrixDeterminantIsDirty = false;\r\n this._worldMatrixDeterminant = this._worldMatrix.determinant();\r\n }\r\n return this._worldMatrixDeterminant;\r\n }\r\n\r\n /**\r\n * Returns directly the latest state of the mesh World matrix.\r\n * A Matrix is returned.\r\n */\r\n public get worldMatrixFromCache(): Matrix {\r\n return this._worldMatrix;\r\n }\r\n\r\n // override it in derived class if you add new variables to the cache\r\n // and call the parent class method\r\n /** @internal */\r\n public _initCache() {\r\n this._cache = {};\r\n this._cache.parent = undefined;\r\n }\r\n\r\n /**\r\n * @internal\r\n */\r\n public updateCache(force?: boolean): void {\r\n if (!force && this.isSynchronized()) {\r\n return;\r\n }\r\n\r\n this._cache.parent = this.parent;\r\n\r\n this._updateCache();\r\n }\r\n\r\n /**\r\n * @internal\r\n */\r\n public _getActionManagerForTrigger(trigger?: number, _initialCall = true): Nullable<AbstractActionManager> {\r\n if (!this.parent) {\r\n return null;\r\n }\r\n\r\n return this.parent._getActionManagerForTrigger(trigger, false);\r\n }\r\n\r\n // override it in derived class if you add new variables to the cache\r\n // and call the parent class method if !ignoreParentClass\r\n /**\r\n * @internal\r\n */\r\n public _updateCache(_ignoreParentClass?: boolean): void {}\r\n\r\n // override it in derived class if you add new variables to the cache\r\n /** @internal */\r\n public _isSynchronized(): boolean {\r\n return true;\r\n }\r\n\r\n /** @internal */\r\n public _markSyncedWithParent() {\r\n if (this._parentNode) {\r\n this._parentUpdateId = this._parentNode._childUpdateId;\r\n }\r\n }\r\n\r\n /** @internal */\r\n public isSynchronizedWithParent(): boolean {\r\n if (!this._parentNode) {\r\n return true;\r\n }\r\n\r\n if (this._parentNode._isDirty || this._parentUpdateId !== this._parentNode._childUpdateId) {\r\n return false;\r\n }\r\n\r\n return this._parentNode.isSynchronized();\r\n }\r\n\r\n /** @internal */\r\n public isSynchronized(): boolean {\r\n if (this._cache.parent !== this._parentNode) {\r\n this._cache.parent = this._parentNode;\r\n return false;\r\n }\r\n\r\n if (this._parentNode && !this.isSynchronizedWithParent()) {\r\n return false;\r\n }\r\n\r\n return this._isSynchronized();\r\n }\r\n\r\n /**\r\n * Is this node ready to be used/rendered\r\n * @param _completeCheck defines if a complete check (including materials and lights) has to be done (false by default)\r\n * @returns true if the node is ready\r\n */\r\n public isReady(_completeCheck = false): boolean {\r\n return this._nodeDataStorage._isReady;\r\n }\r\n\r\n /**\r\n * Flag the node as dirty (Forcing it to update everything)\r\n * @param _property helps children apply precise \"dirtyfication\"\r\n * @returns this node\r\n */\r\n public markAsDirty(_property?: string): Node {\r\n this._currentRenderId = Number.MAX_VALUE;\r\n this._isDirty = true;\r\n return this;\r\n }\r\n\r\n /**\r\n * Is this node enabled?\r\n * If the node has a parent, all ancestors will be checked and false will be returned if any are false (not enabled), otherwise will return true\r\n * @param checkAncestors indicates if this method should check the ancestors. The default is to check the ancestors. If set to false, the method will return the value of this node without checking ancestors\r\n * @returns whether this node (and its parent) is enabled\r\n */\r\n public isEnabled(checkAncestors: boolean = true): boolean {\r\n if (checkAncestors === false) {\r\n return this._nodeDataStorage._isEnabled;\r\n }\r\n\r\n if (!this._nodeDataStorage._isEnabled) {\r\n return false;\r\n }\r\n\r\n return this._nodeDataStorage._isParentEnabled;\r\n }\r\n\r\n /** @internal */\r\n protected _syncParentEnabledState() {\r\n this._nodeDataStorage._isParentEnabled = this._parentNode ? this._parentNode.isEnabled() : true;\r\n\r\n if (this._children) {\r\n this._children.forEach((c) => {\r\n c._syncParentEnabledState(); // Force children to update accordingly\r\n });\r\n }\r\n }\r\n\r\n /**\r\n * Set the enabled state of this node\r\n * @param value defines the new enabled state\r\n */\r\n public setEnabled(value: boolean): void {\r\n if (this._nodeDataStorage._isEnabled === value) {\r\n return;\r\n }\r\n this._nodeDataStorage._isEnabled = value;\r\n this._syncParentEnabledState();\r\n this._nodeDataStorage._onEnabledStateChangedObservable.notifyObservers(value);\r\n }\r\n\r\n /**\r\n * Is this node a descendant of the given node?\r\n * The function will iterate up the hierarchy until the ancestor was found or no more parents defined\r\n * @param ancestor defines the parent node to inspect\r\n * @returns a boolean indicating if this node is a descendant of the given node\r\n */\r\n public isDescendantOf(ancestor: Node): boolean {\r\n if (this.parent) {\r\n if (this.parent === ancestor) {\r\n return true;\r\n }\r\n\r\n return this.parent.isDescendantOf(ancestor);\r\n }\r\n return false;\r\n }\r\n\r\n /**\r\n * @internal\r\n */\r\n public _getDescendants(results: Node[], directDescendantsOnly: boolean = false, predicate?: (node: Node) => boolean): void {\r\n if (!this._children) {\r\n return;\r\n }\r\n\r\n for (let index = 0; index < this._children.length; index++) {\r\n const item = this._children[index];\r\n\r\n if (!predicate || predicate(item)) {\r\n results.push(item);\r\n }\r\n\r\n if (!directDescendantsOnly) {\r\n item._getDescendants(results, false, predicate);\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * Will return all nodes that have this node as ascendant\r\n * @param directDescendantsOnly defines if true only direct descendants of 'this' will be considered, if false direct and also indirect (children of children, an so on in a recursive manner) descendants of 'this' will be considered\r\n * @param predicate defines an optional predicate that will be called on every evaluated child, the predicate must return true for a given child to be part of the result, otherwise it will be ignored\r\n * @returns all children nodes of all types\r\n */\r\n public getDescendants<T extends Node>(directDescendantsOnly?: boolean, predicate?: (node: Node) => node is T): T[];\r\n\r\n /**\r\n * Will return all nodes that have this node as ascendant\r\n * @param directDescendantsOnly defines if true only direct descendants of 'this' will be considered, if false direct and also indirect (children of children, an so on in a recursive manner) descendants of 'this' will be considered\r\n * @param predicate defines an optional predicate that will be called on every evaluated child, the predicate must return true for a given child to be part of the result, otherwise it will be ignored\r\n * @returns all children nodes of all types\r\n */\r\n public getDescendants(directDescendantsOnly?: boolean, predicate?: (node: Node) => boolean): Node[];\r\n\r\n /**\r\n * Will return all nodes that have this node as ascendant\r\n * @param directDescendantsOnly defines if true only direct descendants of 'this' will be considered, if false direct and also indirect (children of children, an so on in a recursive manner) descendants of 'this' will be considered\r\n * @param predicate defines an optional predicate that will be called on every evaluated child, the predicate must return true for a given child to be part of the result, otherwise it will be ignored\r\n * @returns all children nodes of all types\r\n */\r\n public getDescendants(directDescendantsOnly?: boolean, predicate?: (node: Node) => boolean): Node[] {\r\n const results = new Array<Node>();\r\n\r\n this._getDescendants(results, directDescendantsOnly, predicate);\r\n\r\n return results;\r\n }\r\n\r\n /**\r\n * Get all child-meshes of this node\r\n * @param directDescendantsOnly defines if true only direct descendants of 'this' will be considered, if false direct and also indirect (children of children, an so on in a recursive manner) descendants of 'this' will be considered (Default: false)\r\n * @param predicate defines an optional predicate that will be called on every evaluated child, the predicate must return true for a given child to be part of the result, otherwise it will be ignored\r\n * @returns an array of AbstractMesh\r\n */\r\n public getChildMeshes<T extends AbstractMesh>(directDescendantsOnly?: boolean, predicate?: (node: Node) => node is T): T[];\r\n\r\n /**\r\n * Get all child-meshes of this node\r\n * @param directDescendantsOnly defines if true only direct descendants of 'this' will be considered, if false direct and also indirect (children of children, an so on in a recursive manner) descendants of 'this' will be considered (Default: false)\r\n * @param predicate defines an optional predicate that will be called on every evaluated child, the predicate must return true for a given child to be part of the result, otherwise it will be ignored\r\n * @returns an array of AbstractMesh\r\n */\r\n public getChildMeshes(directDescendantsOnly?: boolean, predicate?: (node: Node) => boolean): AbstractMesh[];\r\n\r\n /**\r\n * Get all child-meshes of this node\r\n * @param directDescendantsOnly defines if true only direct descendants of 'this' will be considered, if false direct and also indirect (children of children, an so on in a recursive manner) descendants of 'this' will be considered (Default: false)\r\n * @param predicate defines an optional predicate that will be called on every evaluated child, the predicate must return true for a given child to be part of the result, otherwise it will be ignored\r\n * @returns an array of AbstractMesh\r\n */\r\n public getChildMeshes(directDescendantsOnly?: boolean, predicate?: (node: Node) => boolean): AbstractMesh[] {\r\n const results: Array<AbstractMesh> = [];\r\n this._getDescendants(results, directDescendantsOnly, (node: Node) => {\r\n return (!predicate || predicate(node)) && (<AbstractMesh>node).cullingStrategy !== undefined;\r\n });\r\n return results;\r\n }\r\n\r\n /**\r\n * Get all direct children of this node\r\n * @param predicate defines an optional predicate that will be called on every evaluated child, the predicate must return true for a given child to be part of the result, otherwise it will be ignored\r\n * @param directDescendantsOnly defines if true only direct descendants of 'this' will be considered, if false direct and also indirect (children of children, an so on in a recursive manner) descendants of 'this' will be considered (Default: true)\r\n * @returns an array of Node\r\n */\r\n public getChildren<T extends Node>(predicate?: (node: Node) => node is T, directDescendantsOnly?: boolean): T[];\r\n\r\n /**\r\n * Get all direct children of this node\r\n * @param predicate defines an optional predicate that will be called on every evaluated child, the predicate must return true for a given child to be part of the result, otherwise it will be ignored\r\n * @param directDescendantsOnly defines if true only direct descendants of 'this' will be considered, if false direct and also indirect (children of children, an so on in a recursive manner) descendants of 'this' will be considered (Default: true)\r\n * @returns an array of Node\r\n */\r\n public getChildren(predicate?: (node: Node) => boolean, directDescendantsOnly?: boolean): Node[];\r\n\r\n /**\r\n * Get all direct children of this node\r\n * @param predicate defines an optional predicate that will be called on every evaluated child, the predicate must return true for a given child to be part of the result, otherwise it will be ignored\r\n * @param directDescendantsOnly defines if true only direct descendants of 'this' will be considered, if false direct and also indirect (children of children, an so on in a recursive manner) descendants of 'this' will be considered (Default: true)\r\n * @returns an array of Node\r\n */\r\n public getChildren(predicate?: (node: Node) => boolean, directDescendantsOnly = true): Node[] {\r\n return this.getDescendants(directDescendantsOnly, predicate);\r\n }\r\n\r\n /**\r\n * @internal\r\n */\r\n public _setReady(state: boolean): void {\r\n if (state === this._nodeDataStorage._isReady) {\r\n return;\r\n }\r\n\r\n if (!state) {\r\n this._nodeDataStorage._isReady = false;\r\n return;\r\n }\r\n\r\n if (this.onReady) {\r\n this.onReady(this);\r\n }\r\n this._nodeDataStorage._isReady = true;\r\n }\r\n\r\n /**\r\n * Get an animation by name\r\n * @param name defines the name of the animation to look for\r\n * @returns null if not found else the requested animation\r\n */\r\n public getAnimationByName(name: string): Nullable<Animation> {\r\n for (let i = 0; i < this.animations.length; i++) {\r\n const animation = this.animations[i];\r\n\r\n if (animation.name === name) {\r\n return animation;\r\n }\r\n }\r\n\r\n return null;\r\n }\r\n\r\n /**\r\n * Creates an animation range for this node\r\n * @param name defines the name of the range\r\n * @param from defines the starting key\r\n * @param to defines the end key\r\n */\r\n public createAnimationRange(name: string, from: number, to: number): void {\r\n // check name not already in use\r\n if (!this._ranges[name]) {\r\n this._ranges[name] = Node._AnimationRangeFactory(name, from, to);\r\n for (let i = 0, nAnimations = this.animations.length; i < nAnimations; i++) {\r\n if (this.animations[i]) {\r\n this.animations[i].createRange(name, from, to);\r\n }\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * Delete a specific animation range\r\n * @param name defines the name of the range to delete\r\n * @param deleteFrames defines if animation frames from the range must be deleted as well\r\n */\r\n public deleteAnimationRange(name: string, deleteFrames = true): void {\r\n for (let i = 0, nAnimations = this.animations.length; i < nAnimations; i++) {\r\n if (this.animations[i]) {\r\n this.animations[i].deleteRange(name, deleteFrames);\r\n }\r\n }\r\n this._ranges[name] = null; // said much faster than 'delete this._range[name]'\r\n }\r\n\r\n /**\r\n * Get an animation range by name\r\n * @param name defines the name of the animation range to look for\r\n * @returns null if not found else the requested animation range\r\n */\r\n public getAnimationRange(name: string): Nullable<AnimationRange> {\r\n return this._ranges[name] || null;\r\n }\r\n\r\n /**\r\n * Gets the list of all animation ranges defined on this node\r\n * @returns an array\r\n */\r\n public getAnimationRanges(): Nullable<AnimationRange>[] {\r\n const animationRanges: Nullable<AnimationRange>[] = [];\r\n let name: string;\r\n for (name in this._ranges) {\r\n animationRanges.push(this._ranges[name]);\r\n }\r\n return animationRanges;\r\n }\r\n\r\n /**\r\n * Will start the animation sequence\r\n * @param name defines the range frames for animation sequence\r\n * @param loop defines if the animation should loop (false by default)\r\n * @param speedRatio defines the speed factor in which to run the animation (1 by default)\r\n * @param onAnimationEnd defines a function to be executed when the animation ended (undefined by default)\r\n * @returns the object created for this animation. If range does not exist, it will return null\r\n */\r\n public beginAnimation(name: string, loop?: boolean, speedRatio?: number, onAnimationEnd?: () => void): Nullable<Animatable> {\r\n const range = this.getAnimationRange(name);\r\n\r\n if (!range) {\r\n return null;\r\n }\r\n\r\n return this._scene.beginAnimation(this, range.from, range.to, loop, speedRatio, onAnimationEnd);\r\n }\r\n\r\n /**\r\n * Serialize animation ranges into a JSON compatible object\r\n * @returns serialization object\r\n */\r\n public serializeAnimationRanges(): any {\r\n const serializationRanges = [];\r\n for (const name in this._ranges) {\r\n const localRange = this._ranges[name];\r\n if (!localRange) {\r\n continue;\r\n }\r\n const range: any = {};\r\n range.name = name;\r\n range.from = localRange.from;\r\n range.to = localRange.to;\r\n serializationRanges.push(range);\r\n }\r\n return serializationRanges;\r\n }\r\n\r\n /**\r\n * Computes the world matrix of the node\r\n * @param _force defines if the cache version should be invalidated forcing the world matrix to be created from scratch\r\n * @returns the world matrix\r\n */\r\n public computeWorldMatrix(_force?: boolean): Matrix {\r\n if (!this._worldMatrix) {\r\n this._worldMatrix = Matrix.Identity();\r\n }\r\n return this._worldMatrix;\r\n }\r\n\r\n /**\r\n * Releases resources associated with this node.\r\n * @param doNotRecurse Set to true to not recurse into each children (recurse into each children by default)\r\n * @param disposeMaterialAndTextures Set to true to also dispose referenced materials and textures (false by default)\r\n */\r\n public dispose(doNotRecurse?: boolean, disposeMaterialAndTextures = false): void {\r\n this._nodeDataStorage._isDisposed = true;\r\n\r\n if (!doNotRecurse) {\r\n const nodes = this.getDescendants(true);\r\n for (const node of nodes) {\r\n node.dispose(doNotRecurse, disposeMaterialAndTextures);\r\n }\r\n }\r\n\r\n if (!this.parent) {\r\n this._removeFromSceneRootNodes();\r\n } else {\r\n this.parent = null;\r\n }\r\n\r\n // Callback\r\n this.onDisposeObservable.notifyObservers(this);\r\n this.onDisposeObservable.clear();\r\n\r\n this.onEnabledStateChangedObservable.clear();\r\n this.onClonedObservable.clear();\r\n\r\n // Behaviors\r\n for (const behavior of this._behaviors) {\r\n behavior.detach();\r\n }\r\n\r\n this._behaviors.length = 0;\r\n\r\n this.metadata = null;\r\n }\r\n\r\n /**\r\n * Parse animation range data from a serialization object and store them into a given node\r\n * @param node defines where to store the animation ranges\r\n * @param parsedNode defines the serialization object to read data from\r\n * @param _scene defines the hosting scene\r\n */\r\n public static ParseAnimationRanges(node: Node, parsedNode: any, _scene: Scene): void {\r\n if (parsedNode.ranges) {\r\n for (let index = 0; index < parsedNode.ranges.length; index++) {\r\n const data = parsedNode.ranges[index];\r\n node.createAnimationRange(data.name, data.from, data.to);\r\n }\r\n }\r\n }\r\n /**\r\n * Return the minimum and maximum world vectors of the entire hierarchy under current node\r\n * @param includeDescendants Include bounding info from descendants as well (true by default)\r\n * @param predicate defines a callback function that can be customize to filter what meshes should be included in the list used to compute the bounding vectors\r\n * @returns the new bounding vectors\r\n */\r\n public getHierarchyBoundingVectors(includeDescendants = true, predicate: Nullable<(abstractMesh: AbstractMesh) => boolean> = null): { min: Vector3; max: Vector3 } {\r\n // Ensures that all world matrix will be recomputed.\r\n this.getScene().incrementRenderId();\r\n\r\n this.computeWorldMatrix(true);\r\n\r\n let min: Vector3;\r\n let max: Vector3;\r\n\r\n const thisAbstractMesh = this as Node as AbstractMesh;\r\n if (thisAbstractMesh.getBoundingInfo && thisAbstractMesh.subMeshes) {\r\n // If this is an abstract mesh get its bounding info\r\n const boundingInfo = thisAbstractMesh.getBoundingInfo();\r\n min = boundingInfo.boundingBox.minimumWorld.clone();\r\n max = boundingInfo.boundingBox.maximumWorld.clone();\r\n } else {\r\n min = new Vector3(Number.MAX_VALUE, Number.MAX_VALUE, Number.MAX_VALUE);\r\n max = new Vector3(-Number.MAX_VALUE, -Number.MAX_VALUE, -Number.MAX_VALUE);\r\n }\r\n\r\n if (includeDescendants) {\r\n const descendants = this.getDescendants(false);\r\n\r\n for (const descendant of descendants) {\r\n const childMesh = <AbstractMesh>descendant;\r\n childMesh.computeWorldMatrix(true);\r\n\r\n // Filters meshes based on custom predicate function.\r\n if (predicate && !predicate(childMesh)) {\r\n continue;\r\n }\r\n\r\n //make sure we have the needed params to get mix and max\r\n if (!childMesh.getBoundingInfo || childMesh.getTotalVertices() === 0) {\r\n continue;\r\n }\r\n\r\n const childBoundingInfo = childMesh.getBoundingInfo();\r\n const boundingBox = childBoundingInfo.boundingBox;\r\n\r\n const minBox = boundingBox.minimumWorld;\r\n const maxBox = boundingBox.maximumWorld;\r\n\r\n Vector3.CheckExtends(minBox, min, max);\r\n Vector3.CheckExtends(maxBox, min, max);\r\n }\r\n }\r\n\r\n return {\r\n min: min,\r\n max: max,\r\n };\r\n }\r\n}\r\n"]}
1
+ {"version":3,"file":"node.js","sourceRoot":"","sources":["../../../../lts/core/generated/node.ts"],"names":[],"mappings":"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","sourcesContent":["/* eslint-disable @typescript-eslint/no-unused-vars */\r\nimport type { Scene } from \"./scene\";\r\nimport type { Nullable } from \"./types\";\r\nimport { Matrix, Vector3 } from \"./Maths/math.vector\";\r\nimport type { Engine } from \"./Engines/engine\";\r\nimport type { IBehaviorAware, Behavior } from \"./Behaviors/behavior\";\r\nimport { serialize } from \"./Misc/decorators\";\r\nimport type { Observer } from \"./Misc/observable\";\r\nimport { Observable } from \"./Misc/observable\";\r\nimport { EngineStore } from \"./Engines/engineStore\";\r\nimport { _WarnImport } from \"./Misc/devTools\";\r\nimport type { AbstractActionManager } from \"./Actions/abstractActionManager\";\r\nimport type { IInspectable } from \"./Misc/iInspectable\";\r\nimport type { AbstractScene } from \"./abstractScene\";\r\nimport type { IAccessibilityTag } from \"./IAccessibilityTag\";\r\n\r\ndeclare type Animatable = import(\"./Animations/animatable\").Animatable;\r\ndeclare type AnimationPropertiesOverride = import(\"./Animations/animationPropertiesOverride\").AnimationPropertiesOverride;\r\ndeclare type Animation = import(\"./Animations/animation\").Animation;\r\ndeclare type AnimationRange = import(\"./Animations/animationRange\").AnimationRange;\r\ndeclare type AbstractMesh = import(\"./Meshes/abstractMesh\").AbstractMesh;\r\n\r\n/**\r\n * Defines how a node can be built from a string name.\r\n */\r\nexport type NodeConstructor = (name: string, scene: Scene, options?: any) => () => Node;\r\n\r\n/** @internal */\r\nclass _InternalNodeDataInfo {\r\n public _doNotSerialize = false;\r\n public _isDisposed = false;\r\n public _sceneRootNodesIndex = -1;\r\n public _isEnabled = true;\r\n public _isParentEnabled = true;\r\n public _isReady = true;\r\n public _onEnabledStateChangedObservable = new Observable<boolean>();\r\n public _onClonedObservable = new Observable<Node>();\r\n}\r\n\r\n/**\r\n * Node is the basic class for all scene objects (Mesh, Light, Camera.)\r\n */\r\nexport class Node implements IBehaviorAware<Node> {\r\n protected _isDirty = false;\r\n\r\n /**\r\n * @internal\r\n */\r\n public static _AnimationRangeFactory = (_name: string, _from: number, _to: number): AnimationRange => {\r\n throw _WarnImport(\"AnimationRange\");\r\n };\r\n\r\n private static _NodeConstructors: { [key: string]: any } = {};\r\n\r\n /**\r\n * Add a new node constructor\r\n * @param type defines the type name of the node to construct\r\n * @param constructorFunc defines the constructor function\r\n */\r\n public static AddNodeConstructor(type: string, constructorFunc: NodeConstructor) {\r\n this._NodeConstructors[type] = constructorFunc;\r\n }\r\n\r\n /**\r\n * Returns a node constructor based on type name\r\n * @param type defines the type name\r\n * @param name defines the new node name\r\n * @param scene defines the hosting scene\r\n * @param options defines optional options to transmit to constructors\r\n * @returns the new constructor or null\r\n */\r\n public static Construct(type: string, name: string, scene: Scene, options?: any): Nullable<() => Node> {\r\n const constructorFunc = this._NodeConstructors[type];\r\n\r\n if (!constructorFunc) {\r\n return null;\r\n }\r\n\r\n return constructorFunc(name, scene, options);\r\n }\r\n\r\n private _nodeDataStorage = new _InternalNodeDataInfo();\r\n\r\n /**\r\n * Gets or sets the name of the node\r\n */\r\n @serialize()\r\n public name: string;\r\n\r\n /**\r\n * Gets or sets the id of the node\r\n */\r\n @serialize()\r\n public id: string;\r\n\r\n /**\r\n * Gets or sets the unique id of the node\r\n */\r\n @serialize()\r\n public uniqueId: number;\r\n\r\n /**\r\n * Gets or sets a string used to store user defined state for the node\r\n */\r\n @serialize()\r\n public state = \"\";\r\n\r\n /**\r\n * Gets or sets an object used to store user defined information for the node\r\n */\r\n @serialize()\r\n public metadata: any = null;\r\n\r\n /**\r\n * For internal use only. Please do not use.\r\n */\r\n public reservedDataStore: any = null;\r\n\r\n /**\r\n * List of inspectable custom properties (used by the Inspector)\r\n * @see https://doc.babylonjs.com/toolsAndResources/inspector#extensibility\r\n */\r\n public inspectableCustomProperties: IInspectable[];\r\n\r\n /**\r\n * Gets or sets the accessibility tag to describe the node for accessibility purpose.\r\n */\r\n public set accessibilityTag(value: Nullable<IAccessibilityTag>) {\r\n this._accessibilityTag = value;\r\n this.onAccessibilityTagChangedObservable.notifyObservers(value);\r\n }\r\n\r\n public get accessibilityTag() {\r\n return this._accessibilityTag;\r\n }\r\n\r\n protected _accessibilityTag: Nullable<IAccessibilityTag> = null;\r\n\r\n public onAccessibilityTagChangedObservable = new Observable<Nullable<IAccessibilityTag>>();\r\n\r\n /**\r\n * Gets or sets a boolean used to define if the node must be serialized\r\n */\r\n public get doNotSerialize() {\r\n if (this._nodeDataStorage._doNotSerialize) {\r\n return true;\r\n }\r\n\r\n if (this._parentNode) {\r\n return this._parentNode.doNotSerialize;\r\n }\r\n\r\n return false;\r\n }\r\n\r\n public set doNotSerialize(value: boolean) {\r\n this._nodeDataStorage._doNotSerialize = value;\r\n }\r\n\r\n /** @internal */\r\n public _parentContainer: Nullable<AbstractScene> = null;\r\n\r\n /**\r\n * Gets a list of Animations associated with the node\r\n */\r\n public animations = new Array<Animation>();\r\n protected _ranges: { [name: string]: Nullable<AnimationRange> } = {};\r\n\r\n /**\r\n * Callback raised when the node is ready to be used\r\n */\r\n public onReady: Nullable<(node: Node) => void> = null;\r\n\r\n /** @internal */\r\n public _currentRenderId = -1;\r\n private _parentUpdateId = -1;\r\n /** @internal */\r\n public _childUpdateId = -1;\r\n\r\n /** @internal */\r\n public _waitingParentId: Nullable<string> = null;\r\n /** @internal */\r\n public _waitingParentInstanceIndex: Nullable<string> = null;\r\n /** @internal */\r\n public _waitingParsedUniqueId: Nullable<number> = null;\r\n /** @internal */\r\n public _scene: Scene;\r\n /** @internal */\r\n public _cache: any = {};\r\n\r\n protected _parentNode: Nullable<Node> = null;\r\n\r\n /** @internal */\r\n protected _children: Nullable<Node[]> = null;\r\n\r\n /** @internal */\r\n public _worldMatrix = Matrix.Identity();\r\n /** @internal */\r\n public _worldMatrixDeterminant = 0;\r\n /** @internal */\r\n public _worldMatrixDeterminantIsDirty = true;\r\n\r\n /**\r\n * Gets a boolean indicating if the node has been disposed\r\n * @returns true if the node was disposed\r\n */\r\n public isDisposed(): boolean {\r\n return this._nodeDataStorage._isDisposed;\r\n }\r\n\r\n /**\r\n * Gets or sets the parent of the node (without keeping the current position in the scene)\r\n * @see https://doc.babylonjs.com/features/featuresDeepDive/mesh/transforms/parent_pivot/parent\r\n */\r\n public set parent(parent: Nullable<Node>) {\r\n if (this._parentNode === parent) {\r\n return;\r\n }\r\n\r\n const previousParentNode = this._parentNode;\r\n\r\n // Remove self from list of children of parent\r\n if (this._parentNode && this._parentNode._children !== undefined && this._parentNode._children !== null) {\r\n const index = this._parentNode._children.indexOf(this);\r\n if (index !== -1) {\r\n this._parentNode._children.splice(index, 1);\r\n }\r\n\r\n if (!parent && !this._nodeDataStorage._isDisposed) {\r\n this._addToSceneRootNodes();\r\n }\r\n }\r\n\r\n // Store new parent\r\n this._parentNode = parent;\r\n\r\n // Add as child to new parent\r\n if (this._parentNode) {\r\n if (this._parentNode._children === undefined || this._parentNode._children === null) {\r\n this._parentNode._children = new Array<Node>();\r\n }\r\n this._parentNode._children.push(this);\r\n\r\n if (!previousParentNode) {\r\n this._removeFromSceneRootNodes();\r\n }\r\n }\r\n\r\n // Enabled state\r\n this._syncParentEnabledState();\r\n }\r\n\r\n public get parent(): Nullable<Node> {\r\n return this._parentNode;\r\n }\r\n\r\n /**\r\n * @internal\r\n */\r\n public _serializeAsParent(serializationObject: any): void {\r\n serializationObject.parentId = this.uniqueId;\r\n }\r\n\r\n /** @internal */\r\n public _addToSceneRootNodes() {\r\n if (this._nodeDataStorage._sceneRootNodesIndex === -1) {\r\n this._nodeDataStorage._sceneRootNodesIndex = this._scene.rootNodes.length;\r\n this._scene.rootNodes.push(this);\r\n }\r\n }\r\n\r\n /** @internal */\r\n public _removeFromSceneRootNodes() {\r\n if (this._nodeDataStorage._sceneRootNodesIndex !== -1) {\r\n const rootNodes = this._scene.rootNodes;\r\n const lastIdx = rootNodes.length - 1;\r\n rootNodes[this._nodeDataStorage._sceneRootNodesIndex] = rootNodes[lastIdx];\r\n rootNodes[this._nodeDataStorage._sceneRootNodesIndex]._nodeDataStorage._sceneRootNodesIndex = this._nodeDataStorage._sceneRootNodesIndex;\r\n this._scene.rootNodes.pop();\r\n this._nodeDataStorage._sceneRootNodesIndex = -1;\r\n }\r\n }\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) {\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 * Gets a string identifying the name of the class\r\n * @returns \"Node\" string\r\n */\r\n public getClassName(): string {\r\n return \"Node\";\r\n }\r\n\r\n /** @internal */\r\n public readonly _isNode = true;\r\n\r\n /**\r\n * An event triggered when the mesh is disposed\r\n */\r\n public onDisposeObservable = new Observable<Node>();\r\n\r\n private _onDisposeObserver: Nullable<Observer<Node>> = null;\r\n /**\r\n * Sets a callback that will be raised when the node will be disposed\r\n */\r\n public set onDispose(callback: () => void) {\r\n if (this._onDisposeObserver) {\r\n this.onDisposeObservable.remove(this._onDisposeObserver);\r\n }\r\n this._onDisposeObserver = this.onDisposeObservable.add(callback);\r\n }\r\n\r\n /**\r\n * An event triggered when the enabled state of the node changes\r\n */\r\n public get onEnabledStateChangedObservable(): Observable<boolean> {\r\n return this._nodeDataStorage._onEnabledStateChangedObservable;\r\n }\r\n\r\n /**\r\n * An event triggered when the node is cloned\r\n */\r\n public get onClonedObservable(): Observable<Node> {\r\n return this._nodeDataStorage._onClonedObservable;\r\n }\r\n\r\n /**\r\n * Creates a new Node\r\n * @param name the name and id to be given to this node\r\n * @param scene the scene this node will be added to\r\n */\r\n constructor(name: string, scene: Nullable<Scene> = null) {\r\n this.name = name;\r\n this.id = name;\r\n this._scene = <Scene>(scene || EngineStore.LastCreatedScene);\r\n this.uniqueId = this._scene.getUniqueId();\r\n this._initCache();\r\n }\r\n\r\n /**\r\n * Gets the scene of the node\r\n * @returns a scene\r\n */\r\n public getScene(): Scene {\r\n return this._scene;\r\n }\r\n\r\n /**\r\n * Gets the engine of the node\r\n * @returns a Engine\r\n */\r\n public getEngine(): Engine {\r\n return this._scene.getEngine();\r\n }\r\n\r\n // Behaviors\r\n private _behaviors = new Array<Behavior<Node>>();\r\n\r\n /**\r\n * Attach a behavior to the node\r\n * @see https://doc.babylonjs.com/features/featuresDeepDive/behaviors\r\n * @param behavior defines the behavior to attach\r\n * @param attachImmediately defines that the behavior must be attached even if the scene is still loading\r\n * @returns the current Node\r\n */\r\n public addBehavior(behavior: Behavior<Node>, attachImmediately = false): Node {\r\n const index = this._behaviors.indexOf(behavior);\r\n\r\n if (index !== -1) {\r\n return this;\r\n }\r\n\r\n behavior.init();\r\n if (this._scene.isLoading && !attachImmediately) {\r\n // We defer the attach when the scene will be loaded\r\n this._scene.onDataLoadedObservable.addOnce(() => {\r\n behavior.attach(this);\r\n });\r\n } else {\r\n behavior.attach(this);\r\n }\r\n this._behaviors.push(behavior);\r\n\r\n return this;\r\n }\r\n\r\n /**\r\n * Remove an attached behavior\r\n * @see https://doc.babylonjs.com/features/featuresDeepDive/behaviors\r\n * @param behavior defines the behavior to attach\r\n * @returns the current Node\r\n */\r\n public removeBehavior(behavior: Behavior<Node>): Node {\r\n const index = this._behaviors.indexOf(behavior);\r\n\r\n if (index === -1) {\r\n return this;\r\n }\r\n\r\n this._behaviors[index].detach();\r\n this._behaviors.splice(index, 1);\r\n\r\n return this;\r\n }\r\n\r\n /**\r\n * Gets the list of attached behaviors\r\n * @see https://doc.babylonjs.com/features/featuresDeepDive/behaviors\r\n */\r\n public get behaviors(): Behavior<Node>[] {\r\n return this._behaviors;\r\n }\r\n\r\n /**\r\n * Gets an attached behavior by name\r\n * @param name defines the name of the behavior to look for\r\n * @see https://doc.babylonjs.com/features/featuresDeepDive/behaviors\r\n * @returns null if behavior was not found else the requested behavior\r\n */\r\n public getBehaviorByName(name: string): Nullable<Behavior<Node>> {\r\n for (const behavior of this._behaviors) {\r\n if (behavior.name === name) {\r\n return behavior;\r\n }\r\n }\r\n\r\n return null;\r\n }\r\n\r\n /**\r\n * Returns the latest update of the World matrix\r\n * @returns a Matrix\r\n */\r\n public getWorldMatrix(): Matrix {\r\n if (this._currentRenderId !== this._scene.getRenderId()) {\r\n this.computeWorldMatrix();\r\n }\r\n return this._worldMatrix;\r\n }\r\n\r\n /** @internal */\r\n public _getWorldMatrixDeterminant(): number {\r\n if (this._worldMatrixDeterminantIsDirty) {\r\n this._worldMatrixDeterminantIsDirty = false;\r\n this._worldMatrixDeterminant = this._worldMatrix.determinant();\r\n }\r\n return this._worldMatrixDeterminant;\r\n }\r\n\r\n /**\r\n * Returns directly the latest state of the mesh World matrix.\r\n * A Matrix is returned.\r\n */\r\n public get worldMatrixFromCache(): Matrix {\r\n return this._worldMatrix;\r\n }\r\n\r\n // override it in derived class if you add new variables to the cache\r\n // and call the parent class method\r\n /** @internal */\r\n public _initCache() {\r\n this._cache = {};\r\n this._cache.parent = undefined;\r\n }\r\n\r\n /**\r\n * @internal\r\n */\r\n public updateCache(force?: boolean): void {\r\n if (!force && this.isSynchronized()) {\r\n return;\r\n }\r\n\r\n this._cache.parent = this.parent;\r\n\r\n this._updateCache();\r\n }\r\n\r\n /**\r\n * @internal\r\n */\r\n public _getActionManagerForTrigger(trigger?: number, _initialCall = true): Nullable<AbstractActionManager> {\r\n if (!this.parent) {\r\n return null;\r\n }\r\n\r\n return this.parent._getActionManagerForTrigger(trigger, false);\r\n }\r\n\r\n // override it in derived class if you add new variables to the cache\r\n // and call the parent class method if !ignoreParentClass\r\n /**\r\n * @internal\r\n */\r\n public _updateCache(_ignoreParentClass?: boolean): void {}\r\n\r\n // override it in derived class if you add new variables to the cache\r\n /** @internal */\r\n public _isSynchronized(): boolean {\r\n return true;\r\n }\r\n\r\n /** @internal */\r\n public _markSyncedWithParent() {\r\n if (this._parentNode) {\r\n this._parentUpdateId = this._parentNode._childUpdateId;\r\n }\r\n }\r\n\r\n /** @internal */\r\n public isSynchronizedWithParent(): boolean {\r\n if (!this._parentNode) {\r\n return true;\r\n }\r\n\r\n if (this._parentNode._isDirty || this._parentUpdateId !== this._parentNode._childUpdateId) {\r\n return false;\r\n }\r\n\r\n return this._parentNode.isSynchronized();\r\n }\r\n\r\n /** @internal */\r\n public isSynchronized(): boolean {\r\n if (this._cache.parent !== this._parentNode) {\r\n this._cache.parent = this._parentNode;\r\n return false;\r\n }\r\n\r\n if (this._parentNode && !this.isSynchronizedWithParent()) {\r\n return false;\r\n }\r\n\r\n return this._isSynchronized();\r\n }\r\n\r\n /**\r\n * Is this node ready to be used/rendered\r\n * @param _completeCheck defines if a complete check (including materials and lights) has to be done (false by default)\r\n * @returns true if the node is ready\r\n */\r\n public isReady(_completeCheck = false): boolean {\r\n return this._nodeDataStorage._isReady;\r\n }\r\n\r\n /**\r\n * Flag the node as dirty (Forcing it to update everything)\r\n * @param _property helps children apply precise \"dirtyfication\"\r\n * @returns this node\r\n */\r\n public markAsDirty(_property?: string): Node {\r\n this._currentRenderId = Number.MAX_VALUE;\r\n this._isDirty = true;\r\n return this;\r\n }\r\n\r\n /**\r\n * Is this node enabled?\r\n * If the node has a parent, all ancestors will be checked and false will be returned if any are false (not enabled), otherwise will return true\r\n * @param checkAncestors indicates if this method should check the ancestors. The default is to check the ancestors. If set to false, the method will return the value of this node without checking ancestors\r\n * @returns whether this node (and its parent) is enabled\r\n */\r\n public isEnabled(checkAncestors: boolean = true): boolean {\r\n if (checkAncestors === false) {\r\n return this._nodeDataStorage._isEnabled;\r\n }\r\n\r\n if (!this._nodeDataStorage._isEnabled) {\r\n return false;\r\n }\r\n\r\n return this._nodeDataStorage._isParentEnabled;\r\n }\r\n\r\n /** @internal */\r\n protected _syncParentEnabledState() {\r\n this._nodeDataStorage._isParentEnabled = this._parentNode ? this._parentNode.isEnabled() : true;\r\n\r\n if (this._children) {\r\n this._children.forEach((c) => {\r\n c._syncParentEnabledState(); // Force children to update accordingly\r\n });\r\n }\r\n }\r\n\r\n /**\r\n * Set the enabled state of this node\r\n * @param value defines the new enabled state\r\n */\r\n public setEnabled(value: boolean): void {\r\n if (this._nodeDataStorage._isEnabled === value) {\r\n return;\r\n }\r\n this._nodeDataStorage._isEnabled = value;\r\n this._syncParentEnabledState();\r\n this._nodeDataStorage._onEnabledStateChangedObservable.notifyObservers(value);\r\n }\r\n\r\n /**\r\n * Is this node a descendant of the given node?\r\n * The function will iterate up the hierarchy until the ancestor was found or no more parents defined\r\n * @param ancestor defines the parent node to inspect\r\n * @returns a boolean indicating if this node is a descendant of the given node\r\n */\r\n public isDescendantOf(ancestor: Node): boolean {\r\n if (this.parent) {\r\n if (this.parent === ancestor) {\r\n return true;\r\n }\r\n\r\n return this.parent.isDescendantOf(ancestor);\r\n }\r\n return false;\r\n }\r\n\r\n /**\r\n * @internal\r\n */\r\n public _getDescendants(results: Node[], directDescendantsOnly: boolean = false, predicate?: (node: Node) => boolean): void {\r\n if (!this._children) {\r\n return;\r\n }\r\n\r\n for (let index = 0; index < this._children.length; index++) {\r\n const item = this._children[index];\r\n\r\n if (!predicate || predicate(item)) {\r\n results.push(item);\r\n }\r\n\r\n if (!directDescendantsOnly) {\r\n item._getDescendants(results, false, predicate);\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * Will return all nodes that have this node as ascendant\r\n * @param directDescendantsOnly defines if true only direct descendants of 'this' will be considered, if false direct and also indirect (children of children, an so on in a recursive manner) descendants of 'this' will be considered\r\n * @param predicate defines an optional predicate that will be called on every evaluated child, the predicate must return true for a given child to be part of the result, otherwise it will be ignored\r\n * @returns all children nodes of all types\r\n */\r\n public getDescendants<T extends Node>(directDescendantsOnly?: boolean, predicate?: (node: Node) => node is T): T[];\r\n\r\n /**\r\n * Will return all nodes that have this node as ascendant\r\n * @param directDescendantsOnly defines if true only direct descendants of 'this' will be considered, if false direct and also indirect (children of children, an so on in a recursive manner) descendants of 'this' will be considered\r\n * @param predicate defines an optional predicate that will be called on every evaluated child, the predicate must return true for a given child to be part of the result, otherwise it will be ignored\r\n * @returns all children nodes of all types\r\n */\r\n public getDescendants(directDescendantsOnly?: boolean, predicate?: (node: Node) => boolean): Node[];\r\n\r\n /**\r\n * Will return all nodes that have this node as ascendant\r\n * @param directDescendantsOnly defines if true only direct descendants of 'this' will be considered, if false direct and also indirect (children of children, an so on in a recursive manner) descendants of 'this' will be considered\r\n * @param predicate defines an optional predicate that will be called on every evaluated child, the predicate must return true for a given child to be part of the result, otherwise it will be ignored\r\n * @returns all children nodes of all types\r\n */\r\n public getDescendants(directDescendantsOnly?: boolean, predicate?: (node: Node) => boolean): Node[] {\r\n const results = new Array<Node>();\r\n\r\n this._getDescendants(results, directDescendantsOnly, predicate);\r\n\r\n return results;\r\n }\r\n\r\n /**\r\n * Get all child-meshes of this node\r\n * @param directDescendantsOnly defines if true only direct descendants of 'this' will be considered, if false direct and also indirect (children of children, an so on in a recursive manner) descendants of 'this' will be considered (Default: false)\r\n * @param predicate defines an optional predicate that will be called on every evaluated child, the predicate must return true for a given child to be part of the result, otherwise it will be ignored\r\n * @returns an array of AbstractMesh\r\n */\r\n public getChildMeshes<T extends AbstractMesh>(directDescendantsOnly?: boolean, predicate?: (node: Node) => node is T): T[];\r\n\r\n /**\r\n * Get all child-meshes of this node\r\n * @param directDescendantsOnly defines if true only direct descendants of 'this' will be considered, if false direct and also indirect (children of children, an so on in a recursive manner) descendants of 'this' will be considered (Default: false)\r\n * @param predicate defines an optional predicate that will be called on every evaluated child, the predicate must return true for a given child to be part of the result, otherwise it will be ignored\r\n * @returns an array of AbstractMesh\r\n */\r\n public getChildMeshes(directDescendantsOnly?: boolean, predicate?: (node: Node) => boolean): AbstractMesh[];\r\n\r\n /**\r\n * Get all child-meshes of this node\r\n * @param directDescendantsOnly defines if true only direct descendants of 'this' will be considered, if false direct and also indirect (children of children, an so on in a recursive manner) descendants of 'this' will be considered (Default: false)\r\n * @param predicate defines an optional predicate that will be called on every evaluated child, the predicate must return true for a given child to be part of the result, otherwise it will be ignored\r\n * @returns an array of AbstractMesh\r\n */\r\n public getChildMeshes(directDescendantsOnly?: boolean, predicate?: (node: Node) => boolean): AbstractMesh[] {\r\n const results: Array<AbstractMesh> = [];\r\n this._getDescendants(results, directDescendantsOnly, (node: Node) => {\r\n return (!predicate || predicate(node)) && (<AbstractMesh>node).cullingStrategy !== undefined;\r\n });\r\n return results;\r\n }\r\n\r\n /**\r\n * Get all direct children of this node\r\n * @param predicate defines an optional predicate that will be called on every evaluated child, the predicate must return true for a given child to be part of the result, otherwise it will be ignored\r\n * @param directDescendantsOnly defines if true only direct descendants of 'this' will be considered, if false direct and also indirect (children of children, an so on in a recursive manner) descendants of 'this' will be considered (Default: true)\r\n * @returns an array of Node\r\n */\r\n public getChildren<T extends Node>(predicate?: (node: Node) => node is T, directDescendantsOnly?: boolean): T[];\r\n\r\n /**\r\n * Get all direct children of this node\r\n * @param predicate defines an optional predicate that will be called on every evaluated child, the predicate must return true for a given child to be part of the result, otherwise it will be ignored\r\n * @param directDescendantsOnly defines if true only direct descendants of 'this' will be considered, if false direct and also indirect (children of children, an so on in a recursive manner) descendants of 'this' will be considered (Default: true)\r\n * @returns an array of Node\r\n */\r\n public getChildren(predicate?: (node: Node) => boolean, directDescendantsOnly?: boolean): Node[];\r\n\r\n /**\r\n * Get all direct children of this node\r\n * @param predicate defines an optional predicate that will be called on every evaluated child, the predicate must return true for a given child to be part of the result, otherwise it will be ignored\r\n * @param directDescendantsOnly defines if true only direct descendants of 'this' will be considered, if false direct and also indirect (children of children, an so on in a recursive manner) descendants of 'this' will be considered (Default: true)\r\n * @returns an array of Node\r\n */\r\n public getChildren(predicate?: (node: Node) => boolean, directDescendantsOnly = true): Node[] {\r\n return this.getDescendants(directDescendantsOnly, predicate);\r\n }\r\n\r\n /**\r\n * @internal\r\n */\r\n public _setReady(state: boolean): void {\r\n if (state === this._nodeDataStorage._isReady) {\r\n return;\r\n }\r\n\r\n if (!state) {\r\n this._nodeDataStorage._isReady = false;\r\n return;\r\n }\r\n\r\n if (this.onReady) {\r\n this.onReady(this);\r\n }\r\n this._nodeDataStorage._isReady = true;\r\n }\r\n\r\n /**\r\n * Get an animation by name\r\n * @param name defines the name of the animation to look for\r\n * @returns null if not found else the requested animation\r\n */\r\n public getAnimationByName(name: string): Nullable<Animation> {\r\n for (let i = 0; i < this.animations.length; i++) {\r\n const animation = this.animations[i];\r\n\r\n if (animation.name === name) {\r\n return animation;\r\n }\r\n }\r\n\r\n return null;\r\n }\r\n\r\n /**\r\n * Creates an animation range for this node\r\n * @param name defines the name of the range\r\n * @param from defines the starting key\r\n * @param to defines the end key\r\n */\r\n public createAnimationRange(name: string, from: number, to: number): void {\r\n // check name not already in use\r\n if (!this._ranges[name]) {\r\n this._ranges[name] = Node._AnimationRangeFactory(name, from, to);\r\n for (let i = 0, nAnimations = this.animations.length; i < nAnimations; i++) {\r\n if (this.animations[i]) {\r\n this.animations[i].createRange(name, from, to);\r\n }\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * Delete a specific animation range\r\n * @param name defines the name of the range to delete\r\n * @param deleteFrames defines if animation frames from the range must be deleted as well\r\n */\r\n public deleteAnimationRange(name: string, deleteFrames = true): void {\r\n for (let i = 0, nAnimations = this.animations.length; i < nAnimations; i++) {\r\n if (this.animations[i]) {\r\n this.animations[i].deleteRange(name, deleteFrames);\r\n }\r\n }\r\n this._ranges[name] = null; // said much faster than 'delete this._range[name]'\r\n }\r\n\r\n /**\r\n * Get an animation range by name\r\n * @param name defines the name of the animation range to look for\r\n * @returns null if not found else the requested animation range\r\n */\r\n public getAnimationRange(name: string): Nullable<AnimationRange> {\r\n return this._ranges[name] || null;\r\n }\r\n\r\n /**\r\n * Gets the list of all animation ranges defined on this node\r\n * @returns an array\r\n */\r\n public getAnimationRanges(): Nullable<AnimationRange>[] {\r\n const animationRanges: Nullable<AnimationRange>[] = [];\r\n let name: string;\r\n for (name in this._ranges) {\r\n animationRanges.push(this._ranges[name]);\r\n }\r\n return animationRanges;\r\n }\r\n\r\n /**\r\n * Will start the animation sequence\r\n * @param name defines the range frames for animation sequence\r\n * @param loop defines if the animation should loop (false by default)\r\n * @param speedRatio defines the speed factor in which to run the animation (1 by default)\r\n * @param onAnimationEnd defines a function to be executed when the animation ended (undefined by default)\r\n * @returns the object created for this animation. If range does not exist, it will return null\r\n */\r\n public beginAnimation(name: string, loop?: boolean, speedRatio?: number, onAnimationEnd?: () => void): Nullable<Animatable> {\r\n const range = this.getAnimationRange(name);\r\n\r\n if (!range) {\r\n return null;\r\n }\r\n\r\n return this._scene.beginAnimation(this, range.from, range.to, loop, speedRatio, onAnimationEnd);\r\n }\r\n\r\n /**\r\n * Serialize animation ranges into a JSON compatible object\r\n * @returns serialization object\r\n */\r\n public serializeAnimationRanges(): any {\r\n const serializationRanges = [];\r\n for (const name in this._ranges) {\r\n const localRange = this._ranges[name];\r\n if (!localRange) {\r\n continue;\r\n }\r\n const range: any = {};\r\n range.name = name;\r\n range.from = localRange.from;\r\n range.to = localRange.to;\r\n serializationRanges.push(range);\r\n }\r\n return serializationRanges;\r\n }\r\n\r\n /**\r\n * Computes the world matrix of the node\r\n * @param _force defines if the cache version should be invalidated forcing the world matrix to be created from scratch\r\n * @returns the world matrix\r\n */\r\n public computeWorldMatrix(_force?: boolean): Matrix {\r\n if (!this._worldMatrix) {\r\n this._worldMatrix = Matrix.Identity();\r\n }\r\n return this._worldMatrix;\r\n }\r\n\r\n /**\r\n * Releases resources associated with this node.\r\n * @param doNotRecurse Set to true to not recurse into each children (recurse into each children by default)\r\n * @param disposeMaterialAndTextures Set to true to also dispose referenced materials and textures (false by default)\r\n */\r\n public dispose(doNotRecurse?: boolean, disposeMaterialAndTextures = false): void {\r\n this._nodeDataStorage._isDisposed = true;\r\n\r\n if (!doNotRecurse) {\r\n const nodes = this.getDescendants(true);\r\n for (const node of nodes) {\r\n node.dispose(doNotRecurse, disposeMaterialAndTextures);\r\n }\r\n }\r\n\r\n if (!this.parent) {\r\n this._removeFromSceneRootNodes();\r\n } else {\r\n this.parent = null;\r\n }\r\n\r\n // Callback\r\n this.onDisposeObservable.notifyObservers(this);\r\n this.onDisposeObservable.clear();\r\n\r\n this.onEnabledStateChangedObservable.clear();\r\n this.onClonedObservable.clear();\r\n\r\n // Behaviors\r\n for (const behavior of this._behaviors) {\r\n behavior.detach();\r\n }\r\n\r\n this._behaviors.length = 0;\r\n\r\n this.metadata = null;\r\n }\r\n\r\n /**\r\n * Parse animation range data from a serialization object and store them into a given node\r\n * @param node defines where to store the animation ranges\r\n * @param parsedNode defines the serialization object to read data from\r\n * @param _scene defines the hosting scene\r\n */\r\n public static ParseAnimationRanges(node: Node, parsedNode: any, _scene: Scene): void {\r\n if (parsedNode.ranges) {\r\n for (let index = 0; index < parsedNode.ranges.length; index++) {\r\n const data = parsedNode.ranges[index];\r\n node.createAnimationRange(data.name, data.from, data.to);\r\n }\r\n }\r\n }\r\n /**\r\n * Return the minimum and maximum world vectors of the entire hierarchy under current node\r\n * @param includeDescendants Include bounding info from descendants as well (true by default)\r\n * @param predicate defines a callback function that can be customize to filter what meshes should be included in the list used to compute the bounding vectors\r\n * @returns the new bounding vectors\r\n */\r\n public getHierarchyBoundingVectors(includeDescendants = true, predicate: Nullable<(abstractMesh: AbstractMesh) => boolean> = null): { min: Vector3; max: Vector3 } {\r\n // Ensures that all world matrix will be recomputed.\r\n this.getScene().incrementRenderId();\r\n\r\n this.computeWorldMatrix(true);\r\n\r\n let min: Vector3;\r\n let max: Vector3;\r\n\r\n const thisAbstractMesh = this as Node as AbstractMesh;\r\n if (thisAbstractMesh.getBoundingInfo && thisAbstractMesh.subMeshes) {\r\n // If this is an abstract mesh get its bounding info\r\n const boundingInfo = thisAbstractMesh.getBoundingInfo();\r\n min = boundingInfo.boundingBox.minimumWorld.clone();\r\n max = boundingInfo.boundingBox.maximumWorld.clone();\r\n } else {\r\n min = new Vector3(Number.MAX_VALUE, Number.MAX_VALUE, Number.MAX_VALUE);\r\n max = new Vector3(-Number.MAX_VALUE, -Number.MAX_VALUE, -Number.MAX_VALUE);\r\n }\r\n\r\n if (includeDescendants) {\r\n const descendants = this.getDescendants(false);\r\n\r\n for (const descendant of descendants) {\r\n const childMesh = <AbstractMesh>descendant;\r\n childMesh.computeWorldMatrix(true);\r\n\r\n // Filters meshes based on custom predicate function.\r\n if (predicate && !predicate(childMesh)) {\r\n continue;\r\n }\r\n\r\n //make sure we have the needed params to get mix and max\r\n if (!childMesh.getBoundingInfo || childMesh.getTotalVertices() === 0) {\r\n continue;\r\n }\r\n\r\n const childBoundingInfo = childMesh.getBoundingInfo();\r\n const boundingBox = childBoundingInfo.boundingBox;\r\n\r\n const minBox = boundingBox.minimumWorld;\r\n const maxBox = boundingBox.maximumWorld;\r\n\r\n Vector3.CheckExtends(minBox, min, max);\r\n Vector3.CheckExtends(maxBox, min, max);\r\n }\r\n }\r\n\r\n return {\r\n min: min,\r\n max: max,\r\n };\r\n }\r\n}\r\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@babylonjs/core",
3
- "version": "5.32.1",
3
+ "version": "5.33.0",
4
4
  "main": "index.js",
5
5
  "module": "index.js",
6
6
  "types": "index.d.ts",
package/scene.d.ts CHANGED
@@ -97,7 +97,7 @@ export declare enum ScenePerformancePriority {
97
97
  }
98
98
  /**
99
99
  * Represents a scene to be rendered by the engine.
100
- * @see https://doc.babylonjs.com/features/scene
100
+ * @see https://doc.babylonjs.com/features/featuresDeepDive/scene
101
101
  */
102
102
  export declare class Scene extends AbstractScene implements IAnimatable, IClipPlanesHolder {
103
103
  /** The fog is deactivated */
@@ -110,12 +110,12 @@ export declare class Scene extends AbstractScene implements IAnimatable, IClipPl
110
110
  static readonly FOGMODE_LINEAR = 3;
111
111
  /**
112
112
  * Gets or sets the minimum deltatime when deterministic lock step is enabled
113
- * @see https://doc.babylonjs.com/babylon101/animations#deterministic-lockstep
113
+ * @see https://doc.babylonjs.com/features/featuresDeepDive/animation/advanced_animations#deterministic-lockstep
114
114
  */
115
115
  static MinDeltaTime: number;
116
116
  /**
117
117
  * Gets or sets the maximum deltatime when deterministic lock step is enabled
118
- * @see https://doc.babylonjs.com/babylon101/animations#deterministic-lockstep
118
+ * @see https://doc.babylonjs.com/features/featuresDeepDive/animation/advanced_animations#deterministic-lockstep
119
119
  */
120
120
  static MaxDeltaTime: number;
121
121
  /**
@@ -531,13 +531,13 @@ export declare class Scene extends AbstractScene implements IAnimatable, IClipPl
531
531
  */
532
532
  skipPointerUpPicking: boolean;
533
533
  /** Callback called when a pointer move is detected */
534
- onPointerMove: (evt: IPointerEvent, pickInfo: PickingInfo, type: PointerEventTypes) => void;
534
+ onPointerMove?: (evt: IPointerEvent, pickInfo: PickingInfo, type: PointerEventTypes) => void;
535
535
  /** Callback called when a pointer down is detected */
536
- onPointerDown: (evt: IPointerEvent, pickInfo: PickingInfo, type: PointerEventTypes) => void;
536
+ onPointerDown?: (evt: IPointerEvent, pickInfo: PickingInfo, type: PointerEventTypes) => void;
537
537
  /** Callback called when a pointer up is detected */
538
- onPointerUp: (evt: IPointerEvent, pickInfo: Nullable<PickingInfo>, type: PointerEventTypes) => void;
538
+ onPointerUp?: (evt: IPointerEvent, pickInfo: Nullable<PickingInfo>, type: PointerEventTypes) => void;
539
539
  /** Callback called when a pointer pick is detected */
540
- onPointerPick: (evt: IPointerEvent, pickInfo: PickingInfo) => void;
540
+ onPointerPick?: (evt: IPointerEvent, pickInfo: PickingInfo) => void;
541
541
  /**
542
542
  * Gets or sets a predicate used to select candidate faces for a pointer move event
543
543
  */
@@ -551,6 +551,11 @@ export declare class Scene extends AbstractScene implements IAnimatable, IClipPl
551
551
  * Observable event triggered each time an input event is received from the rendering canvas
552
552
  */
553
553
  onPointerObservable: Observable<PointerInfo>;
554
+ /**
555
+ * Observable to handle camera pointer inputs
556
+ * @internal
557
+ */
558
+ _onCameraInputObservable: Observable<PointerInfo>;
554
559
  /**
555
560
  * Gets the pointer coordinates without any translation (ie. straight out of the pointer event)
556
561
  */
@@ -608,26 +613,26 @@ export declare class Scene extends AbstractScene implements IAnimatable, IClipPl
608
613
  private _currentInternalStep;
609
614
  /**
610
615
  * Sets the step Id used by deterministic lock step
611
- * @see https://doc.babylonjs.com/babylon101/animations#deterministic-lockstep
616
+ * @see https://doc.babylonjs.com/features/featuresDeepDive/animation/advanced_animations#deterministic-lockstep
612
617
  * @param newStepId defines the step Id
613
618
  */
614
619
  setStepId(newStepId: number): void;
615
620
  /**
616
621
  * Gets the step Id used by deterministic lock step
617
- * @see https://doc.babylonjs.com/babylon101/animations#deterministic-lockstep
622
+ * @see https://doc.babylonjs.com/features/featuresDeepDive/animation/advanced_animations#deterministic-lockstep
618
623
  * @returns the step Id
619
624
  */
620
625
  getStepId(): number;
621
626
  /**
622
627
  * Gets the internal step used by deterministic lock step
623
- * @see https://doc.babylonjs.com/babylon101/animations#deterministic-lockstep
628
+ * @see https://doc.babylonjs.com/features/featuresDeepDive/animation/advanced_animations#deterministic-lockstep
624
629
  * @returns the internal step
625
630
  */
626
631
  getInternalStep(): number;
627
632
  private _fogEnabled;
628
633
  /**
629
634
  * Gets or sets a boolean indicating if fog is enabled on this scene
630
- * @see https://doc.babylonjs.com/babylon101/environment#fog
635
+ * @see https://doc.babylonjs.com/features/featuresDeepDive/environment/environment_introduction#fog
631
636
  * (Default is true)
632
637
  */
633
638
  set fogEnabled(value: boolean);
@@ -635,7 +640,7 @@ export declare class Scene extends AbstractScene implements IAnimatable, IClipPl
635
640
  private _fogMode;
636
641
  /**
637
642
  * Gets or sets the fog mode to use
638
- * @see https://doc.babylonjs.com/babylon101/environment#fog
643
+ * @see https://doc.babylonjs.com/features/featuresDeepDive/environment/environment_introduction#fog
639
644
  * | mode | value |
640
645
  * | --- | --- |
641
646
  * | FOGMODE_NONE | 0 |
@@ -647,25 +652,25 @@ export declare class Scene extends AbstractScene implements IAnimatable, IClipPl
647
652
  get fogMode(): number;
648
653
  /**
649
654
  * Gets or sets the fog color to use
650
- * @see https://doc.babylonjs.com/babylon101/environment#fog
655
+ * @see https://doc.babylonjs.com/features/featuresDeepDive/environment/environment_introduction#fog
651
656
  * (Default is Color3(0.2, 0.2, 0.3))
652
657
  */
653
658
  fogColor: Color3;
654
659
  /**
655
660
  * Gets or sets the fog density to use
656
- * @see https://doc.babylonjs.com/babylon101/environment#fog
661
+ * @see https://doc.babylonjs.com/features/featuresDeepDive/environment/environment_introduction#fog
657
662
  * (Default is 0.1)
658
663
  */
659
664
  fogDensity: number;
660
665
  /**
661
666
  * Gets or sets the fog start distance to use
662
- * @see https://doc.babylonjs.com/babylon101/environment#fog
667
+ * @see https://doc.babylonjs.com/features/featuresDeepDive/environment/environment_introduction#fog
663
668
  * (Default is 0)
664
669
  */
665
670
  fogStart: number;
666
671
  /**
667
672
  * Gets or sets the fog end distance to use
668
- * @see https://doc.babylonjs.com/babylon101/environment#fog
673
+ * @see https://doc.babylonjs.com/features/featuresDeepDive/environment/environment_introduction#fog
669
674
  * (Default is 1000)
670
675
  */
671
676
  fogEnd: number;
@@ -734,7 +739,7 @@ export declare class Scene extends AbstractScene implements IAnimatable, IClipPl
734
739
  lensFlaresEnabled: boolean;
735
740
  /**
736
741
  * Gets or sets a boolean indicating if collisions are enabled on this scene
737
- * @see https://doc.babylonjs.com/babylon101/cameras,_mesh_collisions_and_gravity
742
+ * @see https://doc.babylonjs.com/features/featuresDeepDive/cameras/camera_collisions
738
743
  */
739
744
  collisionsEnabled: boolean;
740
745
  private _collisionCoordinator;
@@ -742,7 +747,7 @@ export declare class Scene extends AbstractScene implements IAnimatable, IClipPl
742
747
  get collisionCoordinator(): ICollisionCoordinator;
743
748
  /**
744
749
  * Defines the gravity applied to this scene (used only for collisions)
745
- * @see https://doc.babylonjs.com/babylon101/cameras,_mesh_collisions_and_gravity
750
+ * @see https://doc.babylonjs.com/features/featuresDeepDive/cameras/camera_collisions
746
751
  */
747
752
  gravity: Vector3;
748
753
  /**
@@ -781,12 +786,12 @@ export declare class Scene extends AbstractScene implements IAnimatable, IClipPl
781
786
  probesEnabled: boolean;
782
787
  /**
783
788
  * Gets or sets the current offline provider to use to store scene data
784
- * @see https://doc.babylonjs.com/how_to/caching_resources_in_indexeddb
789
+ * @see https://doc.babylonjs.com/features/featuresDeepDive/scene/optimizeCached
785
790
  */
786
791
  offlineProvider: IOfflineProvider;
787
792
  /**
788
793
  * Gets or sets the action manager associated with the scene
789
- * @see https://doc.babylonjs.com/how_to/how_to_use_actions
794
+ * @see https://doc.babylonjs.com/features/featuresDeepDive/events/actions
790
795
  */
791
796
  actionManager: AbstractActionManager;
792
797
  private _meshesForIntersections;
@@ -1108,7 +1113,7 @@ export declare class Scene extends AbstractScene implements IAnimatable, IClipPl
1108
1113
  getTotalVertices(): number;
1109
1114
  /**
1110
1115
  * Gets the performance counter for total vertices
1111
- * @see https://doc.babylonjs.com/how_to/optimizing_your_scene#instrumentation
1116
+ * @see https://doc.babylonjs.com/features/featuresDeepDive/scene/optimize_your_scene#instrumentation
1112
1117
  */
1113
1118
  get totalVerticesPerfCounter(): PerfCounter;
1114
1119
  /**
@@ -1118,7 +1123,7 @@ export declare class Scene extends AbstractScene implements IAnimatable, IClipPl
1118
1123
  getActiveIndices(): number;
1119
1124
  /**
1120
1125
  * Gets the performance counter for active indices
1121
- * @see https://doc.babylonjs.com/how_to/optimizing_your_scene#instrumentation
1126
+ * @see https://doc.babylonjs.com/features/featuresDeepDive/scene/optimize_your_scene#instrumentation
1122
1127
  */
1123
1128
  get totalActiveIndicesPerfCounter(): PerfCounter;
1124
1129
  /**
@@ -1128,7 +1133,7 @@ export declare class Scene extends AbstractScene implements IAnimatable, IClipPl
1128
1133
  getActiveParticles(): number;
1129
1134
  /**
1130
1135
  * Gets the performance counter for active particles
1131
- * @see https://doc.babylonjs.com/how_to/optimizing_your_scene#instrumentation
1136
+ * @see https://doc.babylonjs.com/features/featuresDeepDive/scene/optimize_your_scene#instrumentation
1132
1137
  */
1133
1138
  get activeParticlesPerfCounter(): PerfCounter;
1134
1139
  /**
@@ -1138,7 +1143,7 @@ export declare class Scene extends AbstractScene implements IAnimatable, IClipPl
1138
1143
  getActiveBones(): number;
1139
1144
  /**
1140
1145
  * Gets the performance counter for active bones
1141
- * @see https://doc.babylonjs.com/how_to/optimizing_your_scene#instrumentation
1146
+ * @see https://doc.babylonjs.com/features/featuresDeepDive/scene/optimize_your_scene#instrumentation
1142
1147
  */
1143
1148
  get activeBonesPerfCounter(): PerfCounter;
1144
1149
  /**