@babylonjs/core 5.0.0-beta.5 → 5.0.0-beta.9

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 (394) hide show
  1. package/Actions/actionManager.d.ts +1 -1
  2. package/Actions/actionManager.js +5 -1
  3. package/Actions/actionManager.js.map +1 -1
  4. package/Animations/animation.d.ts +2 -2
  5. package/Animations/animation.js +5 -1
  6. package/Animations/animation.js.map +1 -1
  7. package/Audio/analyser.d.ts +2 -1
  8. package/Audio/analyser.js +5 -0
  9. package/Audio/analyser.js.map +1 -1
  10. package/Audio/audioSceneComponent.d.ts +1 -1
  11. package/Audio/audioSceneComponent.js +5 -0
  12. package/Audio/audioSceneComponent.js.map +1 -1
  13. package/Audio/sound.d.ts +1 -1
  14. package/Audio/sound.js +5 -0
  15. package/Audio/sound.js.map +1 -1
  16. package/Audio/soundTrack.d.ts +2 -1
  17. package/Audio/soundTrack.js +5 -0
  18. package/Audio/soundTrack.js.map +1 -1
  19. package/BakedVertexAnimation/bakedVertexAnimationManager.d.ts +1 -1
  20. package/BakedVertexAnimation/bakedVertexAnimationManager.js +5 -0
  21. package/BakedVertexAnimation/bakedVertexAnimationManager.js.map +1 -1
  22. package/Bones/skeleton.d.ts +0 -6
  23. package/Bones/skeleton.js +2 -14
  24. package/Bones/skeleton.js.map +1 -1
  25. package/Buffers/buffer.d.ts +4 -0
  26. package/Buffers/buffer.js +11 -1
  27. package/Buffers/buffer.js.map +1 -1
  28. package/Cameras/Inputs/freeCameraMouseInput.d.ts +1 -0
  29. package/Cameras/Inputs/freeCameraMouseInput.js +6 -3
  30. package/Cameras/Inputs/freeCameraMouseInput.js.map +1 -1
  31. package/Cameras/Stereoscopic/anaglyphArcRotateCamera.d.ts +1 -1
  32. package/Cameras/Stereoscopic/anaglyphArcRotateCamera.js.map +1 -1
  33. package/Cameras/Stereoscopic/anaglyphFreeCamera.d.ts +1 -1
  34. package/Cameras/Stereoscopic/anaglyphFreeCamera.js.map +1 -1
  35. package/Cameras/Stereoscopic/anaglyphGamepadCamera.d.ts +1 -1
  36. package/Cameras/Stereoscopic/anaglyphGamepadCamera.js.map +1 -1
  37. package/Cameras/Stereoscopic/anaglyphUniversalCamera.d.ts +1 -1
  38. package/Cameras/Stereoscopic/anaglyphUniversalCamera.js.map +1 -1
  39. package/Cameras/Stereoscopic/stereoscopicArcRotateCamera.d.ts +1 -1
  40. package/Cameras/Stereoscopic/stereoscopicArcRotateCamera.js.map +1 -1
  41. package/Cameras/Stereoscopic/stereoscopicFreeCamera.d.ts +1 -1
  42. package/Cameras/Stereoscopic/stereoscopicFreeCamera.js.map +1 -1
  43. package/Cameras/Stereoscopic/stereoscopicGamepadCamera.d.ts +1 -1
  44. package/Cameras/Stereoscopic/stereoscopicGamepadCamera.js.map +1 -1
  45. package/Cameras/Stereoscopic/stereoscopicScreenUniversalCamera.d.ts +1 -1
  46. package/Cameras/Stereoscopic/stereoscopicScreenUniversalCamera.js.map +1 -1
  47. package/Cameras/Stereoscopic/stereoscopicUniversalCamera.d.ts +1 -1
  48. package/Cameras/Stereoscopic/stereoscopicUniversalCamera.js.map +1 -1
  49. package/Cameras/VR/vrDeviceOrientationArcRotateCamera.d.ts +1 -1
  50. package/Cameras/VR/vrDeviceOrientationArcRotateCamera.js.map +1 -1
  51. package/Cameras/VR/vrDeviceOrientationFreeCamera.d.ts +1 -1
  52. package/Cameras/VR/vrDeviceOrientationFreeCamera.js.map +1 -1
  53. package/Cameras/VR/vrDeviceOrientationGamepadCamera.d.ts +1 -1
  54. package/Cameras/VR/vrDeviceOrientationGamepadCamera.js.map +1 -1
  55. package/Cameras/VR/vrExperienceHelper.d.ts +1 -0
  56. package/Cameras/VR/vrExperienceHelper.js +1 -0
  57. package/Cameras/VR/vrExperienceHelper.js.map +1 -1
  58. package/Cameras/VR/webVRCamera.d.ts +2 -1
  59. package/Cameras/VR/webVRCamera.js +3 -2
  60. package/Cameras/VR/webVRCamera.js.map +1 -1
  61. package/Cameras/arcRotateCamera.d.ts +1 -1
  62. package/Cameras/arcRotateCamera.js.map +1 -1
  63. package/Cameras/camera.d.ts +1 -1
  64. package/Cameras/camera.js.map +1 -1
  65. package/Cameras/deviceOrientationCamera.d.ts +1 -1
  66. package/Cameras/deviceOrientationCamera.js.map +1 -1
  67. package/Cameras/flyCamera.d.ts +1 -1
  68. package/Cameras/flyCamera.js.map +1 -1
  69. package/Cameras/followCamera.d.ts +1 -1
  70. package/Cameras/followCamera.js.map +1 -1
  71. package/Cameras/freeCamera.d.ts +1 -1
  72. package/Cameras/freeCamera.js.map +1 -1
  73. package/Cameras/gamepadCamera.d.ts +1 -1
  74. package/Cameras/gamepadCamera.js.map +1 -1
  75. package/Cameras/targetCamera.d.ts +1 -1
  76. package/Cameras/targetCamera.js.map +1 -1
  77. package/Cameras/touchCamera.d.ts +1 -1
  78. package/Cameras/touchCamera.js.map +1 -1
  79. package/Cameras/universalCamera.d.ts +1 -1
  80. package/Cameras/universalCamera.js.map +1 -1
  81. package/Cameras/virtualJoysticksCamera.d.ts +1 -1
  82. package/Cameras/virtualJoysticksCamera.js.map +1 -1
  83. package/Collisions/collider.d.ts +1 -1
  84. package/Collisions/collider.js +48 -2
  85. package/Collisions/collider.js.map +1 -1
  86. package/Compat/compatibilityOptions.d.ts +9 -0
  87. package/Compat/compatibilityOptions.js +14 -0
  88. package/Compat/compatibilityOptions.js.map +1 -0
  89. package/Compat/index.d.ts +1 -0
  90. package/Compat/index.js +2 -0
  91. package/Compat/index.js.map +1 -0
  92. package/Culling/Octrees/octreeSceneComponent.d.ts +1 -1
  93. package/Culling/Octrees/octreeSceneComponent.js +5 -0
  94. package/Culling/Octrees/octreeSceneComponent.js.map +1 -1
  95. package/Culling/ray.js +2 -2
  96. package/Culling/ray.js.map +1 -1
  97. package/Debug/axesViewer.d.ts +1 -1
  98. package/Debug/axesViewer.js +5 -0
  99. package/Debug/axesViewer.js.map +1 -1
  100. package/Debug/debugLayer.d.ts +1 -1
  101. package/Debug/debugLayer.js +5 -1
  102. package/Debug/debugLayer.js.map +1 -1
  103. package/Debug/physicsViewer.d.ts +1 -1
  104. package/Debug/physicsViewer.js +3 -0
  105. package/Debug/physicsViewer.js.map +1 -1
  106. package/Debug/skeletonViewer.js +3 -4
  107. package/Debug/skeletonViewer.js.map +1 -1
  108. package/DeviceInput/Helpers/eventFactory.js +1 -4
  109. package/DeviceInput/Helpers/eventFactory.js.map +1 -1
  110. package/DeviceInput/InputDevices/deviceEnums.d.ts +4 -2
  111. package/DeviceInput/InputDevices/deviceEnums.js +3 -1
  112. package/DeviceInput/InputDevices/deviceEnums.js.map +1 -1
  113. package/DeviceInput/InputDevices/deviceSourceManager.d.ts +20 -5
  114. package/DeviceInput/InputDevices/deviceSourceManager.js +68 -7
  115. package/DeviceInput/InputDevices/deviceSourceManager.js.map +1 -1
  116. package/DeviceInput/InputDevices/internalDeviceSourceManager.d.ts +15 -10
  117. package/DeviceInput/InputDevices/internalDeviceSourceManager.js +25 -31
  118. package/DeviceInput/InputDevices/internalDeviceSourceManager.js.map +1 -1
  119. package/DeviceInput/InputDevices/nativeDeviceInputSystem.js +3 -2
  120. package/DeviceInput/InputDevices/nativeDeviceInputSystem.js.map +1 -1
  121. package/DeviceInput/InputDevices/webDeviceInputSystem.d.ts +7 -6
  122. package/DeviceInput/InputDevices/webDeviceInputSystem.js +71 -90
  123. package/DeviceInput/InputDevices/webDeviceInputSystem.js.map +1 -1
  124. package/Engines/Extensions/engine.cubeTexture.d.ts +1 -1
  125. package/Engines/Extensions/engine.cubeTexture.js +5 -1
  126. package/Engines/Extensions/engine.cubeTexture.js.map +1 -1
  127. package/Engines/Extensions/engine.multiview.js +0 -1
  128. package/Engines/Extensions/engine.multiview.js.map +1 -1
  129. package/Engines/Extensions/engine.views.d.ts +7 -0
  130. package/Engines/Extensions/engine.views.js +12 -0
  131. package/Engines/Extensions/engine.views.js.map +1 -1
  132. package/Engines/Native/nativeInterfaces.d.ts +1 -1
  133. package/Engines/Native/nativeInterfaces.js.map +1 -1
  134. package/Engines/WebGPU/Extensions/engine.computeShader.js +1 -1
  135. package/Engines/WebGPU/Extensions/engine.computeShader.js.map +1 -1
  136. package/Engines/WebGPU/Extensions/engine.cubeTexture.js +4 -1
  137. package/Engines/WebGPU/Extensions/engine.cubeTexture.js.map +1 -1
  138. package/Engines/WebGPU/webgpuConstants.d.ts +2 -1
  139. package/Engines/WebGPU/webgpuConstants.js +1 -0
  140. package/Engines/WebGPU/webgpuConstants.js.map +1 -1
  141. package/Engines/WebGPU/webgpuTextureHelper.js +14 -7
  142. package/Engines/WebGPU/webgpuTextureHelper.js.map +1 -1
  143. package/Engines/engine.d.ts +46 -26
  144. package/Engines/engineCapabilities.d.ts +2 -0
  145. package/Engines/engineCapabilities.js.map +1 -1
  146. package/Engines/nativeEngine.js +5 -3
  147. package/Engines/nativeEngine.js.map +1 -1
  148. package/Engines/nullEngine.js +2 -1
  149. package/Engines/nullEngine.js.map +1 -1
  150. package/Engines/renderTargetWrapper.d.ts +8 -0
  151. package/Engines/renderTargetWrapper.js +20 -0
  152. package/Engines/renderTargetWrapper.js.map +1 -1
  153. package/Engines/thinEngine.d.ts +7 -0
  154. package/Engines/thinEngine.js +21 -3
  155. package/Engines/thinEngine.js.map +1 -1
  156. package/Engines/webgpuEngine.js +33 -21
  157. package/Engines/webgpuEngine.js.map +1 -1
  158. package/Events/keyboardEvents.d.ts +7 -1
  159. package/Events/keyboardEvents.js +11 -1
  160. package/Events/keyboardEvents.js.map +1 -1
  161. package/Gamepads/Controllers/oculusTouchController.js +2 -2
  162. package/Gamepads/Controllers/oculusTouchController.js.map +1 -1
  163. package/Gamepads/Controllers/webVRController.d.ts +1 -0
  164. package/Gamepads/Controllers/webVRController.js +1 -0
  165. package/Gamepads/Controllers/webVRController.js.map +1 -1
  166. package/Gizmos/boundingBoxGizmo.js +0 -10
  167. package/Gizmos/boundingBoxGizmo.js.map +1 -1
  168. package/Gizmos/gizmo.js +1 -1
  169. package/Gizmos/gizmo.js.map +1 -1
  170. package/Helpers/sceneHelpers.d.ts +1 -0
  171. package/Helpers/sceneHelpers.js.map +1 -1
  172. package/Inputs/scene.inputManager.d.ts +1 -2
  173. package/Inputs/scene.inputManager.js +13 -12
  174. package/Inputs/scene.inputManager.js.map +1 -1
  175. package/Layers/effectLayer.d.ts +1 -1
  176. package/Layers/effectLayer.js +1 -1
  177. package/Layers/effectLayer.js.map +1 -1
  178. package/Layers/effectLayerSceneComponent.d.ts +1 -1
  179. package/Layers/effectLayerSceneComponent.js +7 -3
  180. package/Layers/effectLayerSceneComponent.js.map +1 -1
  181. package/Layers/glowLayer.d.ts +1 -1
  182. package/Layers/glowLayer.js.map +1 -1
  183. package/Layers/highlightLayer.d.ts +1 -1
  184. package/Layers/highlightLayer.js +2 -1
  185. package/Layers/highlightLayer.js.map +1 -1
  186. package/Layers/layerSceneComponent.d.ts +1 -1
  187. package/Layers/layerSceneComponent.js +7 -3
  188. package/Layers/layerSceneComponent.js.map +1 -1
  189. package/Lights/Shadows/shadowGenerator.js +5 -5
  190. package/Lights/Shadows/shadowGenerator.js.map +1 -1
  191. package/Loading/Plugins/babylonFileLoader.js +1 -9
  192. package/Loading/Plugins/babylonFileLoader.js.map +1 -1
  193. package/Loading/sceneLoader.js +4 -3
  194. package/Loading/sceneLoader.js.map +1 -1
  195. package/Materials/Background/backgroundMaterial.d.ts +1 -1
  196. package/Materials/Background/backgroundMaterial.js.map +1 -1
  197. package/Materials/Node/Blocks/Dual/imageSourceBlock.js +2 -2
  198. package/Materials/Node/Blocks/Dual/imageSourceBlock.js.map +1 -1
  199. package/Materials/Node/Blocks/Dual/reflectionTextureBaseBlock.js +2 -2
  200. package/Materials/Node/Blocks/Dual/reflectionTextureBaseBlock.js.map +1 -1
  201. package/Materials/Node/Blocks/Dual/textureBlock.js +2 -2
  202. package/Materials/Node/Blocks/Dual/textureBlock.js.map +1 -1
  203. package/Materials/Node/nodeMaterial.js +2 -1
  204. package/Materials/Node/nodeMaterial.js.map +1 -1
  205. package/Materials/PBR/pbrBaseMaterial.d.ts +2 -1
  206. package/Materials/PBR/pbrBaseMaterial.js +2 -1
  207. package/Materials/PBR/pbrBaseMaterial.js.map +1 -1
  208. package/Materials/PBR/pbrBaseSimpleMaterial.d.ts +1 -1
  209. package/Materials/PBR/pbrBaseSimpleMaterial.js.map +1 -1
  210. package/Materials/PBR/pbrMaterial.d.ts +1 -1
  211. package/Materials/PBR/pbrMaterial.js +1 -1
  212. package/Materials/PBR/pbrMaterial.js.map +1 -1
  213. package/Materials/PBR/pbrMetallicRoughnessMaterial.d.ts +1 -1
  214. package/Materials/PBR/pbrMetallicRoughnessMaterial.js.map +1 -1
  215. package/Materials/PBR/pbrSpecularGlossinessMaterial.d.ts +1 -1
  216. package/Materials/PBR/pbrSpecularGlossinessMaterial.js.map +1 -1
  217. package/Materials/Textures/Loaders/ddsTextureLoader.js +8 -1
  218. package/Materials/Textures/Loaders/ddsTextureLoader.js.map +1 -1
  219. package/Materials/Textures/Loaders/ktxTextureLoader.js +1 -1
  220. package/Materials/Textures/Loaders/ktxTextureLoader.js.map +1 -1
  221. package/Materials/Textures/MultiviewRenderTarget.d.ts +1 -1
  222. package/Materials/Textures/MultiviewRenderTarget.js +1 -1
  223. package/Materials/Textures/MultiviewRenderTarget.js.map +1 -1
  224. package/Materials/Textures/baseTexture.d.ts +1 -1
  225. package/Materials/Textures/baseTexture.js.map +1 -1
  226. package/Materials/Textures/internalTexture.d.ts +2 -0
  227. package/Materials/Textures/internalTexture.js +2 -0
  228. package/Materials/Textures/internalTexture.js.map +1 -1
  229. package/Materials/Textures/mirrorTexture.d.ts +2 -2
  230. package/Materials/Textures/mirrorTexture.js +5 -1
  231. package/Materials/Textures/mirrorTexture.js.map +1 -1
  232. package/Materials/Textures/multiRenderTarget.d.ts +1 -1
  233. package/Materials/Textures/multiRenderTarget.js.map +1 -1
  234. package/Materials/Textures/prePassRenderTarget.d.ts +1 -1
  235. package/Materials/Textures/prePassRenderTarget.js.map +1 -1
  236. package/Materials/Textures/refractionTexture.d.ts +1 -1
  237. package/Materials/Textures/refractionTexture.js +2 -2
  238. package/Materials/Textures/refractionTexture.js.map +1 -1
  239. package/Materials/Textures/renderTargetTexture.d.ts +1 -1
  240. package/Materials/Textures/renderTargetTexture.js.map +1 -1
  241. package/Materials/Textures/texture.d.ts +1 -1
  242. package/Materials/Textures/texture.js +5 -5
  243. package/Materials/Textures/texture.js.map +1 -1
  244. package/Materials/material.d.ts +1 -1
  245. package/Materials/material.js +7 -2
  246. package/Materials/material.js.map +1 -1
  247. package/Materials/materialHelper.js +8 -0
  248. package/Materials/materialHelper.js.map +1 -1
  249. package/Materials/multiMaterial.d.ts +1 -1
  250. package/Materials/multiMaterial.js +1 -1
  251. package/Materials/multiMaterial.js.map +1 -1
  252. package/Materials/pushMaterial.d.ts +1 -1
  253. package/Materials/pushMaterial.js.map +1 -1
  254. package/Materials/shaderMaterial.js +7 -3
  255. package/Materials/shaderMaterial.js.map +1 -1
  256. package/Materials/shadowDepthWrapper.d.ts +1 -1
  257. package/Materials/shadowDepthWrapper.js +2 -2
  258. package/Materials/shadowDepthWrapper.js.map +1 -1
  259. package/Materials/standardMaterial.d.ts +2 -1
  260. package/Materials/standardMaterial.js +4 -0
  261. package/Materials/standardMaterial.js.map +1 -1
  262. package/Maths/math.vector.d.ts +4 -2
  263. package/Maths/math.vector.js +30 -28
  264. package/Maths/math.vector.js.map +1 -1
  265. package/Meshes/Builders/boxBuilder.js +5 -4
  266. package/Meshes/Builders/boxBuilder.js.map +1 -1
  267. package/Meshes/Builders/capsuleBuilder.js +4 -3
  268. package/Meshes/Builders/capsuleBuilder.js.map +1 -1
  269. package/Meshes/Builders/cylinderBuilder.js +10 -7
  270. package/Meshes/Builders/cylinderBuilder.js.map +1 -1
  271. package/Meshes/Builders/decalBuilder.js +5 -2
  272. package/Meshes/Builders/decalBuilder.js.map +1 -1
  273. package/Meshes/Builders/discBuilder.js +3 -2
  274. package/Meshes/Builders/discBuilder.js.map +1 -1
  275. package/Meshes/Builders/goldbergBuilder.js +10 -1
  276. package/Meshes/Builders/goldbergBuilder.js.map +1 -1
  277. package/Meshes/Builders/groundBuilder.js +2 -1
  278. package/Meshes/Builders/groundBuilder.js.map +1 -1
  279. package/Meshes/Builders/icoSphereBuilder.js +2 -1
  280. package/Meshes/Builders/icoSphereBuilder.js.map +1 -1
  281. package/Meshes/Builders/planeBuilder.js +5 -4
  282. package/Meshes/Builders/planeBuilder.js.map +1 -1
  283. package/Meshes/Builders/polygonBuilder.js +6 -2
  284. package/Meshes/Builders/polygonBuilder.js.map +1 -1
  285. package/Meshes/Builders/polyhedronBuilder.js +3 -2
  286. package/Meshes/Builders/polyhedronBuilder.js.map +1 -1
  287. package/Meshes/Builders/ribbonBuilder.js +4 -3
  288. package/Meshes/Builders/ribbonBuilder.js.map +1 -1
  289. package/Meshes/Builders/sphereBuilder.js +2 -1
  290. package/Meshes/Builders/sphereBuilder.js.map +1 -1
  291. package/Meshes/Builders/tiledBoxBuilder.js +4 -0
  292. package/Meshes/Builders/tiledBoxBuilder.js.map +1 -1
  293. package/Meshes/Builders/torusBuilder.js +2 -1
  294. package/Meshes/Builders/torusBuilder.js.map +1 -1
  295. package/Meshes/Builders/torusKnotBuilder.js +2 -1
  296. package/Meshes/Builders/torusKnotBuilder.js.map +1 -1
  297. package/Meshes/abstractMesh.d.ts +8 -2
  298. package/Meshes/abstractMesh.js +37 -33
  299. package/Meshes/abstractMesh.js.map +1 -1
  300. package/Meshes/geometry.d.ts +1 -1
  301. package/Meshes/geometry.js +38 -3
  302. package/Meshes/geometry.js.map +1 -1
  303. package/Meshes/groundMesh.d.ts +1 -1
  304. package/Meshes/groundMesh.js.map +1 -1
  305. package/Meshes/instancedMesh.js +5 -6
  306. package/Meshes/instancedMesh.js.map +1 -1
  307. package/Meshes/mesh.d.ts +1 -1
  308. package/Meshes/mesh.js +31 -29
  309. package/Meshes/mesh.js.map +1 -1
  310. package/Meshes/mesh.vertexData.d.ts +1 -1
  311. package/Meshes/mesh.vertexData.js +2 -1
  312. package/Meshes/mesh.vertexData.js.map +1 -1
  313. package/Meshes/polygonMesh.js +2 -2
  314. package/Meshes/polygonMesh.js.map +1 -1
  315. package/Meshes/subMesh.js +1 -2
  316. package/Meshes/subMesh.js.map +1 -1
  317. package/Meshes/subMesh.project.js +1 -2
  318. package/Meshes/subMesh.project.js.map +1 -1
  319. package/Meshes/thinInstanceMesh.js +5 -0
  320. package/Meshes/thinInstanceMesh.js.map +1 -1
  321. package/Meshes/trailMesh.d.ts +1 -1
  322. package/Meshes/trailMesh.js.map +1 -1
  323. package/Meshes/transformNode.js +40 -13
  324. package/Meshes/transformNode.js.map +1 -1
  325. package/Misc/HighDynamicRange/cubemapToSphericalPolynomial.d.ts +5 -0
  326. package/Misc/HighDynamicRange/cubemapToSphericalPolynomial.js +13 -2
  327. package/Misc/HighDynamicRange/cubemapToSphericalPolynomial.js.map +1 -1
  328. package/Misc/PerformanceViewer/performanceViewerCollectionStrategies.js +6 -12
  329. package/Misc/PerformanceViewer/performanceViewerCollectionStrategies.js.map +1 -1
  330. package/Misc/assetsManager.d.ts +1 -1
  331. package/Misc/assetsManager.js +2 -1
  332. package/Misc/assetsManager.js.map +1 -1
  333. package/Misc/brdfTextureTools.js +4 -1
  334. package/Misc/brdfTextureTools.js.map +1 -1
  335. package/Misc/dds.js +7 -0
  336. package/Misc/dds.js.map +1 -1
  337. package/Misc/decorators.js +7 -0
  338. package/Misc/decorators.js.map +1 -1
  339. package/Misc/deepCopier.js +3 -3
  340. package/Misc/deepCopier.js.map +1 -1
  341. package/Misc/error.d.ts +51 -0
  342. package/Misc/error.js +66 -0
  343. package/Misc/error.js.map +1 -0
  344. package/Misc/fileTools.d.ts +4 -4
  345. package/Misc/fileTools.js +7 -7
  346. package/Misc/fileTools.js.map +1 -1
  347. package/Misc/index.d.ts +1 -0
  348. package/Misc/index.js +1 -0
  349. package/Misc/index.js.map +1 -1
  350. package/Particles/particleSystem.js +7 -1
  351. package/Particles/particleSystem.js.map +1 -1
  352. package/Shaders/ShadersInclude/instancesDeclaration.js +1 -1
  353. package/Shaders/ShadersInclude/instancesDeclaration.js.map +1 -1
  354. package/Shaders/ShadersInclude/pbrBlockAlbedoOpacity.js +1 -1
  355. package/Shaders/ShadersInclude/pbrBlockAlbedoOpacity.js.map +1 -1
  356. package/Shaders/ShadersInclude/pbrFragmentExtraDeclaration.js +1 -1
  357. package/Shaders/ShadersInclude/pbrFragmentExtraDeclaration.js.map +1 -1
  358. package/Shaders/color.fragment.js +1 -1
  359. package/Shaders/color.fragment.js.map +1 -1
  360. package/Shaders/color.vertex.js +1 -1
  361. package/Shaders/color.vertex.js.map +1 -1
  362. package/Shaders/default.fragment.js +1 -1
  363. package/Shaders/default.fragment.js.map +1 -1
  364. package/Shaders/default.vertex.js +1 -1
  365. package/Shaders/default.vertex.js.map +1 -1
  366. package/Shaders/geometry.vertex.js +1 -1
  367. package/Shaders/geometry.vertex.js.map +1 -1
  368. package/Shaders/pbr.vertex.js +1 -1
  369. package/Shaders/pbr.vertex.js.map +1 -1
  370. package/ShadersWGSL/ShadersInclude/instancesDeclaration.js +1 -1
  371. package/ShadersWGSL/ShadersInclude/instancesDeclaration.js.map +1 -1
  372. package/Sprites/spriteManager.js +4 -4
  373. package/Sprites/spriteManager.js.map +1 -1
  374. package/XR/features/WebXRHandTracking.js +3 -3
  375. package/XR/features/WebXRHandTracking.js.map +1 -1
  376. package/XR/webXRDefaultExperience.js +3 -0
  377. package/XR/webXRDefaultExperience.js.map +1 -1
  378. package/XR/webXRExperienceHelper.js +3 -2
  379. package/XR/webXRExperienceHelper.js.map +1 -1
  380. package/XR/webXRSessionManager.d.ts +1 -0
  381. package/XR/webXRSessionManager.js +6 -1
  382. package/XR/webXRSessionManager.js.map +1 -1
  383. package/assetContainer.d.ts +1 -1
  384. package/assetContainer.js +5 -4
  385. package/assetContainer.js.map +1 -1
  386. package/index.d.ts +1 -0
  387. package/index.js +1 -0
  388. package/index.js.map +1 -1
  389. package/package.json +10 -4
  390. package/scene.js +11 -10
  391. package/scene.js.map +1 -1
  392. package/Misc/baseError.d.ts +0 -7
  393. package/Misc/baseError.js +0 -18
  394. package/Misc/baseError.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"assetContainer.js","sourceRoot":"","sources":["../../sourceES6/core/assetContainer.ts"],"names":[],"mappings":"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","sourcesContent":["import { AbstractScene } from \"./abstractScene\";\r\nimport { Scene } from \"./scene\";\r\nimport { Mesh } from \"./Meshes/mesh\";\r\nimport { TransformNode } from './Meshes/transformNode';\r\nimport { Skeleton } from './Bones/skeleton';\r\nimport { AnimationGroup } from './Animations/animationGroup';\r\nimport { Animatable } from './Animations/animatable';\r\nimport { AbstractMesh } from './Meshes/abstractMesh';\r\nimport { MultiMaterial } from './Materials/multiMaterial';\r\nimport { Material } from './Materials/material';\r\nimport { Logger } from './Misc/logger';\r\nimport { EngineStore } from './Engines/engineStore';\r\nimport { Nullable } from './types';\r\nimport { Node } from './node';\r\nimport { Observer } from \"./Misc/observable\";\r\nimport { ThinEngine } from \"./Engines/thinEngine\";\r\n\r\n/**\r\n * Set of assets to keep when moving a scene into an asset container.\r\n */\r\nexport class KeepAssets extends AbstractScene { }\r\n\r\n/**\r\n * Class used to store the output of the AssetContainer.instantiateAllMeshesToScene function\r\n */\r\nexport class InstantiatedEntries {\r\n /**\r\n * List of new root nodes (eg. nodes with no parent)\r\n */\r\n public rootNodes: TransformNode[] = [];\r\n\r\n /**\r\n * List of new skeletons\r\n */\r\n public skeletons: Skeleton[] = [];\r\n\r\n /**\r\n * List of new animation groups\r\n */\r\n public animationGroups: AnimationGroup[] = [];\r\n}\r\n\r\n/**\r\n * Container with a set of assets that can be added or removed from a scene.\r\n */\r\nexport class AssetContainer extends AbstractScene {\r\n private _wasAddedToScene = false;\r\n private _onContextRestoredObserver: Nullable<Observer<ThinEngine>>;\r\n\r\n /**\r\n * The scene the AssetContainer belongs to.\r\n */\r\n public scene: Scene;\r\n\r\n /**\r\n * Instantiates an AssetContainer.\r\n * @param scene The scene the AssetContainer belongs to.\r\n */\r\n constructor(scene: Scene) {\r\n super();\r\n this.scene = scene;\r\n this[\"sounds\"] = [];\r\n this[\"effectLayers\"] = [];\r\n this[\"layers\"] = [];\r\n this[\"lensFlareSystems\"] = [];\r\n this[\"proceduralTextures\"] = [];\r\n this[\"reflectionProbes\"] = [];\r\n\r\n scene.onDisposeObservable.add(() => {\r\n if (!this._wasAddedToScene) {\r\n this.dispose();\r\n }\r\n });\r\n\r\n this._onContextRestoredObserver = scene.getEngine().onContextRestoredObservable.add(() => {\r\n for (const geometry of this.geometries) {\r\n geometry._rebuild();\r\n }\r\n\r\n for (const mesh of this.meshes) {\r\n mesh._rebuild();\r\n }\r\n\r\n for (const system of this.particleSystems) {\r\n system.rebuild();\r\n }\r\n\r\n for (const texture of this.textures) {\r\n texture._rebuild();\r\n }\r\n });\r\n }\r\n\r\n /**\r\n * Instantiate or clone all meshes and add the new ones to the scene.\r\n * Skeletons and animation groups will all be cloned\r\n * @param nameFunction defines an optional function used to get new names for clones\r\n * @param cloneMaterials defines an optional boolean that defines if materials must be cloned as well (false by default)\r\n * @param options defines an optional list of options to control how to instanciate / clone models\r\n * @returns a list of rootNodes, skeletons and aniamtion groups that were duplicated\r\n */\r\n public instantiateModelsToScene(nameFunction?: (sourceName: string) => string, cloneMaterials = false, options?: { doNotInstantiate: boolean }): InstantiatedEntries {\r\n let convertionMap: { [key: number]: number } = {};\r\n let storeMap: { [key: number]: any } = {};\r\n let result = new InstantiatedEntries();\r\n let alreadySwappedSkeletons: Skeleton[] = [];\r\n let alreadySwappedMaterials: Material[] = [];\r\n\r\n if (!options) {\r\n options = {\r\n doNotInstantiate: true\r\n };\r\n }\r\n\r\n let onClone = (source: TransformNode, clone: TransformNode) => {\r\n convertionMap[source.uniqueId] = clone.uniqueId;\r\n storeMap[clone.uniqueId] = clone;\r\n\r\n if (nameFunction) {\r\n clone.name = nameFunction(source.name);\r\n }\r\n\r\n if (clone instanceof Mesh) {\r\n let clonedMesh = clone as Mesh;\r\n\r\n if (clonedMesh.morphTargetManager) {\r\n let oldMorphTargetManager = (source as Mesh).morphTargetManager!;\r\n clonedMesh.morphTargetManager = oldMorphTargetManager.clone();\r\n\r\n for (var index = 0; index < oldMorphTargetManager.numTargets; index++) {\r\n let oldTarget = oldMorphTargetManager.getTarget(index);\r\n let newTarget = clonedMesh.morphTargetManager.getTarget(index);\r\n\r\n convertionMap[oldTarget.uniqueId] = newTarget.uniqueId;\r\n storeMap[newTarget.uniqueId] = newTarget;\r\n }\r\n }\r\n }\r\n };\r\n\r\n this.transformNodes.forEach((o) => {\r\n if (!o.parent) {\r\n let newOne = o.instantiateHierarchy(null, options, (source, clone) => {\r\n onClone(source, clone);\r\n });\r\n\r\n if (newOne) {\r\n result.rootNodes.push(newOne);\r\n }\r\n }\r\n });\r\n\r\n this.meshes.forEach((o) => {\r\n if (!o.parent) {\r\n let newOne = o.instantiateHierarchy(null, options, (source, clone) => {\r\n onClone(source, clone);\r\n\r\n if ((clone as any).material) {\r\n let mesh = clone as AbstractMesh;\r\n\r\n if (mesh.material) {\r\n if (cloneMaterials) {\r\n let sourceMaterial = (source as AbstractMesh).material!;\r\n\r\n if (alreadySwappedMaterials.indexOf(sourceMaterial) === -1) {\r\n let swap = sourceMaterial.clone(nameFunction ? nameFunction(sourceMaterial.name) : \"Clone of \" + sourceMaterial.name)!;\r\n alreadySwappedMaterials.push(sourceMaterial);\r\n convertionMap[sourceMaterial.uniqueId] = swap.uniqueId;\r\n storeMap[swap.uniqueId] = swap;\r\n\r\n if (sourceMaterial.getClassName() === \"MultiMaterial\") {\r\n let multi = sourceMaterial as MultiMaterial;\r\n\r\n for (var material of multi.subMaterials) {\r\n if (!material) {\r\n continue;\r\n }\r\n swap = material.clone(nameFunction ? nameFunction(material.name) : \"Clone of \" + material.name)!;\r\n alreadySwappedMaterials.push(material);\r\n convertionMap[material.uniqueId] = swap.uniqueId;\r\n storeMap[swap.uniqueId] = swap;\r\n }\r\n\r\n multi.subMaterials = multi.subMaterials.map((m) => m && storeMap[convertionMap[m.uniqueId]]);\r\n }\r\n }\r\n\r\n if (mesh.getClassName() !== \"InstancedMesh\") {\r\n mesh.material = storeMap[convertionMap[sourceMaterial.uniqueId]];\r\n }\r\n } else {\r\n if (mesh.material.getClassName() === \"MultiMaterial\") {\r\n if (this.scene.multiMaterials.indexOf(mesh.material as MultiMaterial) === -1) {\r\n this.scene.addMultiMaterial(mesh.material as MultiMaterial);\r\n }\r\n } else {\r\n if (this.scene.materials.indexOf(mesh.material) === -1) {\r\n this.scene.addMaterial(mesh.material);\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n });\r\n\r\n if (newOne) {\r\n result.rootNodes.push(newOne);\r\n }\r\n }\r\n });\r\n\r\n this.skeletons.forEach((s) => {\r\n let clone = s.clone(nameFunction ? nameFunction(s.name) : \"Clone of \" + s.name);\r\n\r\n if (s.overrideMesh) {\r\n clone.overrideMesh = storeMap[convertionMap[s.overrideMesh.uniqueId]];\r\n }\r\n\r\n for (var m of this.meshes) {\r\n if (m.skeleton === s && !m.isAnInstance) {\r\n let copy = storeMap[convertionMap[m.uniqueId]] as Mesh;\r\n if (copy.isAnInstance) {\r\n continue;\r\n }\r\n copy.skeleton = clone;\r\n\r\n if (alreadySwappedSkeletons.indexOf(clone) !== -1) {\r\n continue;\r\n }\r\n\r\n alreadySwappedSkeletons.push(clone);\r\n\r\n // Check if bones are mesh linked\r\n for (var bone of clone.bones) {\r\n if (bone._linkedTransformNode) {\r\n bone._linkedTransformNode = storeMap[convertionMap[bone._linkedTransformNode.uniqueId]];\r\n }\r\n }\r\n }\r\n }\r\n\r\n result.skeletons.push(clone);\r\n });\r\n\r\n this.animationGroups.forEach((o) => {\r\n let clone = o.clone(o.name, (oldTarget) => {\r\n let newTarget = storeMap[convertionMap[oldTarget.uniqueId]];\r\n\r\n return newTarget || oldTarget;\r\n });\r\n\r\n result.animationGroups.push(clone);\r\n });\r\n\r\n return result;\r\n }\r\n\r\n /**\r\n * Adds all the assets from the container to the scene.\r\n */\r\n public addAllToScene() {\r\n if (this._wasAddedToScene) {\r\n return;\r\n }\r\n\r\n this._wasAddedToScene = true;\r\n\r\n this.cameras.forEach((o) => {\r\n this.scene.addCamera(o);\r\n });\r\n this.lights.forEach((o) => {\r\n this.scene.addLight(o);\r\n });\r\n this.meshes.forEach((o) => {\r\n this.scene.addMesh(o);\r\n });\r\n this.skeletons.forEach((o) => {\r\n this.scene.addSkeleton(o);\r\n });\r\n this.animations.forEach((o) => {\r\n this.scene.addAnimation(o);\r\n });\r\n this.animationGroups.forEach((o) => {\r\n this.scene.addAnimationGroup(o);\r\n });\r\n this.multiMaterials.forEach((o) => {\r\n this.scene.addMultiMaterial(o);\r\n });\r\n this.materials.forEach((o) => {\r\n this.scene.addMaterial(o);\r\n });\r\n this.morphTargetManagers.forEach((o) => {\r\n this.scene.addMorphTargetManager(o);\r\n });\r\n this.geometries.forEach((o) => {\r\n this.scene.addGeometry(o);\r\n });\r\n this.transformNodes.forEach((o) => {\r\n this.scene.addTransformNode(o);\r\n });\r\n this.actionManagers.forEach((o) => {\r\n this.scene.addActionManager(o);\r\n });\r\n this.textures.forEach((o) => {\r\n this.scene.addTexture(o);\r\n });\r\n this.reflectionProbes.forEach((o) => {\r\n this.scene.addReflectionProbe(o);\r\n });\r\n\r\n if (this.environmentTexture) {\r\n this.scene.environmentTexture = this.environmentTexture;\r\n }\r\n\r\n for (let component of this.scene._serializableComponents) {\r\n component.addFromContainer(this);\r\n }\r\n\r\n this.scene.getEngine().onContextRestoredObservable.remove(this._onContextRestoredObserver);\r\n this._onContextRestoredObserver = null;\r\n }\r\n\r\n /**\r\n * Removes all the assets in the container from the scene\r\n */\r\n public removeAllFromScene() {\r\n this._wasAddedToScene = false;\r\n\r\n this.cameras.forEach((o) => {\r\n this.scene.removeCamera(o);\r\n });\r\n this.lights.forEach((o) => {\r\n this.scene.removeLight(o);\r\n });\r\n this.meshes.forEach((o) => {\r\n this.scene.removeMesh(o);\r\n });\r\n this.skeletons.forEach((o) => {\r\n this.scene.removeSkeleton(o);\r\n });\r\n this.animations.forEach((o) => {\r\n this.scene.removeAnimation(o);\r\n });\r\n this.animationGroups.forEach((o) => {\r\n this.scene.removeAnimationGroup(o);\r\n });\r\n this.multiMaterials.forEach((o) => {\r\n this.scene.removeMultiMaterial(o);\r\n });\r\n this.materials.forEach((o) => {\r\n this.scene.removeMaterial(o);\r\n });\r\n this.morphTargetManagers.forEach((o) => {\r\n this.scene.removeMorphTargetManager(o);\r\n });\r\n this.geometries.forEach((o) => {\r\n this.scene.removeGeometry(o);\r\n });\r\n this.transformNodes.forEach((o) => {\r\n this.scene.removeTransformNode(o);\r\n });\r\n this.actionManagers.forEach((o) => {\r\n this.scene.removeActionManager(o);\r\n });\r\n this.textures.forEach((o) => {\r\n this.scene.removeTexture(o);\r\n });\r\n this.reflectionProbes.forEach((o) => {\r\n this.scene.removeReflectionProbe(o);\r\n });\r\n\r\n if (this.environmentTexture === this.scene.environmentTexture) {\r\n this.scene.environmentTexture = null;\r\n }\r\n\r\n for (let component of this.scene._serializableComponents) {\r\n component.removeFromContainer(this);\r\n }\r\n }\r\n\r\n /**\r\n * Disposes all the assets in the container\r\n */\r\n public dispose() {\r\n this.cameras.slice(0).forEach((o) => {\r\n o.dispose();\r\n });\r\n this.cameras = [];\r\n\r\n this.lights.slice(0).forEach((o) => {\r\n o.dispose();\r\n });\r\n this.lights = [];\r\n\r\n this.meshes.slice(0).forEach((o) => {\r\n o.dispose();\r\n });\r\n this.meshes = [];\r\n\r\n this.skeletons.slice(0).forEach((o) => {\r\n o.dispose();\r\n });\r\n this.skeletons = [];\r\n\r\n this.animationGroups.slice(0).forEach((o) => {\r\n o.dispose();\r\n });\r\n this.animationGroups = [];\r\n\r\n this.multiMaterials.slice(0).forEach((o) => {\r\n o.dispose();\r\n });\r\n this.multiMaterials = [];\r\n\r\n this.materials.slice(0).forEach((o) => {\r\n o.dispose();\r\n });\r\n this.materials = [];\r\n\r\n this.geometries.slice(0).forEach((o) => {\r\n o.dispose();\r\n });\r\n this.geometries = [];\r\n\r\n this.transformNodes.slice(0).forEach((o) => {\r\n o.dispose();\r\n });\r\n this.transformNodes = [];\r\n\r\n this.actionManagers.slice(0).forEach((o) => {\r\n o.dispose();\r\n });\r\n this.actionManagers = [];\r\n\r\n this.textures.slice(0).forEach((o) => {\r\n o.dispose();\r\n });\r\n this.textures = [];\r\n\r\n this.reflectionProbes.slice(0).forEach((o) => {\r\n o.dispose();\r\n });\r\n this.reflectionProbes = [];\r\n\r\n if (this.environmentTexture) {\r\n this.environmentTexture.dispose();\r\n this.environmentTexture = null;\r\n }\r\n\r\n for (let component of this.scene._serializableComponents) {\r\n component.removeFromContainer(this, true);\r\n }\r\n\r\n if (this._onContextRestoredObserver) {\r\n this.scene.getEngine().onContextRestoredObservable.remove(this._onContextRestoredObserver);\r\n this._onContextRestoredObserver = null;\r\n }\r\n }\r\n\r\n private _moveAssets<T>(sourceAssets: T[], targetAssets: T[], keepAssets: T[]): void {\r\n if (!sourceAssets) {\r\n return;\r\n }\r\n\r\n for (let asset of sourceAssets) {\r\n let move = true;\r\n if (keepAssets) {\r\n for (let keepAsset of keepAssets) {\r\n if (asset === keepAsset) {\r\n move = false;\r\n break;\r\n }\r\n }\r\n }\r\n\r\n if (move) {\r\n targetAssets.push(asset);\r\n (asset as any)._parentContainer = this;\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * Removes all the assets contained in the scene and adds them to the container.\r\n * @param keepAssets Set of assets to keep in the scene. (default: empty)\r\n */\r\n public moveAllFromScene(keepAssets?: KeepAssets): void {\r\n this._wasAddedToScene = false;\r\n\r\n if (keepAssets === undefined) {\r\n keepAssets = new KeepAssets();\r\n }\r\n\r\n for (let key in this) {\r\n if (this.hasOwnProperty(key)) {\r\n (<any>this)[key] = (<any>this)[key] || (key === \"environmentTexture\" ? null : []);\r\n this._moveAssets((<any>this.scene)[key], (<any>this)[key], (<any>keepAssets)[key]);\r\n }\r\n }\r\n\r\n this.environmentTexture = this.scene.environmentTexture;\r\n\r\n this.removeAllFromScene();\r\n }\r\n\r\n /**\r\n * Adds all meshes in the asset container to a root mesh that can be used to position all the contained meshes. The root mesh is then added to the front of the meshes in the assetContainer.\r\n * @returns the root mesh\r\n */\r\n public createRootMesh() {\r\n var rootMesh = new Mesh(\"assetContainerRootMesh\", this.scene);\r\n this.meshes.forEach((m) => {\r\n if (!m.parent) {\r\n rootMesh.addChild(m);\r\n }\r\n });\r\n this.meshes.unshift(rootMesh);\r\n return rootMesh;\r\n }\r\n\r\n /**\r\n * Merge animations (direct and animation groups) from this asset container into a scene\r\n * @param scene is the instance of BABYLON.Scene to append to (default: last created scene)\r\n * @param animatables set of animatables to retarget to a node from the scene\r\n * @param targetConverter defines a function used to convert animation targets from the asset container to the scene (default: search node by name)\r\n * @returns an array of the new AnimationGroup added to the scene (empty array if none)\r\n */\r\n public mergeAnimationsTo(scene: Nullable<Scene> = EngineStore.LastCreatedScene, animatables: Animatable[], targetConverter: Nullable<(target: any) => Nullable<Node>> = null): AnimationGroup[] {\r\n if (!scene) {\r\n Logger.Error(\"No scene available to merge animations to\");\r\n return [];\r\n }\r\n\r\n let _targetConverter = targetConverter ? targetConverter : (target: any) => {\r\n let node = null;\r\n\r\n const targetProperty = target.animations.length ? target.animations[0].targetProperty : \"\";\r\n /*\r\n BabylonJS adds special naming to targets that are children of nodes.\r\n This name attempts to remove that special naming to get the parent nodes name in case the target\r\n can't be found in the node tree\r\n\r\n Ex: Torso_primitive0 likely points to a Mesh primitive. We take away primitive0 and are left with \"Torso\" which is the name\r\n of the primitive's parent.\r\n */\r\n const name = target.name.split(\".\").join(\"\").split(\"_primitive\")[0];\r\n\r\n switch (targetProperty) {\r\n case \"position\":\r\n case \"rotationQuaternion\":\r\n node = scene.getTransformNodeByName(target.name) || scene.getTransformNodeByName(name);\r\n break;\r\n case \"influence\":\r\n node = scene.getMorphTargetByName(target.name) || scene.getMorphTargetByName(name);\r\n break;\r\n default:\r\n node = scene.getNodeByName(target.name) || scene.getNodeByName(name);\r\n }\r\n\r\n return node;\r\n };\r\n\r\n // Copy new node animations\r\n let nodesInAC = this.getNodes();\r\n nodesInAC.forEach((nodeInAC) => {\r\n let nodeInScene = _targetConverter(nodeInAC);\r\n if (nodeInScene !== null) {\r\n // Remove old animations with same target property as a new one\r\n for (let animationInAC of nodeInAC.animations) {\r\n // Doing treatment on an array for safety measure\r\n let animationsWithSameProperty = nodeInScene.animations.filter((animationInScene) => {\r\n return animationInScene.targetProperty === animationInAC.targetProperty;\r\n });\r\n for (let animationWithSameProperty of animationsWithSameProperty) {\r\n const index = nodeInScene.animations.indexOf(animationWithSameProperty, 0);\r\n if (index > -1) {\r\n nodeInScene.animations.splice(index, 1);\r\n }\r\n }\r\n }\r\n\r\n // Append new animations\r\n nodeInScene.animations = nodeInScene.animations.concat(nodeInAC.animations);\r\n }\r\n });\r\n\r\n let newAnimationGroups = new Array<AnimationGroup>();\r\n\r\n // Copy new animation groups\r\n this.animationGroups.slice().forEach((animationGroupInAC) => {\r\n // Clone the animation group and all its animatables\r\n newAnimationGroups.push(animationGroupInAC.clone(animationGroupInAC.name, _targetConverter));\r\n\r\n // Remove animatables related to the asset container\r\n animationGroupInAC.animatables.forEach((animatable) => {\r\n animatable.stop();\r\n });\r\n });\r\n\r\n // Retarget animatables\r\n animatables.forEach((animatable) => {\r\n let target = _targetConverter(animatable.target);\r\n\r\n if (target) {\r\n // Clone the animatable and retarget it\r\n scene.beginAnimation(target, animatable.fromFrame, animatable.toFrame, animatable.loopAnimation, animatable.speedRatio, animatable.onAnimationEnd ? animatable.onAnimationEnd : undefined, undefined, true, undefined, animatable.onAnimationLoop ? animatable.onAnimationLoop : undefined);\r\n\r\n // Stop animation for the target in the asset container\r\n scene.stopAnimation(animatable.target);\r\n }\r\n });\r\n\r\n return newAnimationGroups;\r\n }\r\n}\r\n"]}
1
+ {"version":3,"file":"assetContainer.js","sourceRoot":"","sources":["../../sourceES6/core/assetContainer.ts"],"names":[],"mappings":"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","sourcesContent":["import { AbstractScene } from \"./abstractScene\";\r\nimport { Scene } from \"./scene\";\r\nimport { Mesh } from \"./Meshes/mesh\";\r\nimport { TransformNode } from './Meshes/transformNode';\r\nimport { Skeleton } from './Bones/skeleton';\r\nimport { AnimationGroup } from './Animations/animationGroup';\r\nimport { Animatable } from './Animations/animatable';\r\nimport { AbstractMesh } from './Meshes/abstractMesh';\r\nimport { MultiMaterial } from './Materials/multiMaterial';\r\nimport { Material } from './Materials/material';\r\nimport { Logger } from './Misc/logger';\r\nimport { EngineStore } from './Engines/engineStore';\r\nimport { Nullable } from './types';\r\nimport { Node } from './node';\r\nimport { Observer } from \"./Misc/observable\";\r\nimport { ThinEngine } from \"./Engines/thinEngine\";\r\n\r\n/**\r\n * Set of assets to keep when moving a scene into an asset container.\r\n */\r\nexport class KeepAssets extends AbstractScene { }\r\n\r\n/**\r\n * Class used to store the output of the AssetContainer.instantiateAllMeshesToScene function\r\n */\r\nexport class InstantiatedEntries {\r\n /**\r\n * List of new root nodes (eg. nodes with no parent)\r\n */\r\n public rootNodes: TransformNode[] = [];\r\n\r\n /**\r\n * List of new skeletons\r\n */\r\n public skeletons: Skeleton[] = [];\r\n\r\n /**\r\n * List of new animation groups\r\n */\r\n public animationGroups: AnimationGroup[] = [];\r\n}\r\n\r\n/**\r\n * Container with a set of assets that can be added or removed from a scene.\r\n */\r\nexport class AssetContainer extends AbstractScene {\r\n private _wasAddedToScene = false;\r\n private _onContextRestoredObserver: Nullable<Observer<ThinEngine>>;\r\n\r\n /**\r\n * The scene the AssetContainer belongs to.\r\n */\r\n public scene: Scene;\r\n\r\n /**\r\n * Instantiates an AssetContainer.\r\n * @param scene The scene the AssetContainer belongs to.\r\n */\r\n constructor(scene?: Nullable<Scene>) {\r\n super();\r\n scene = scene || EngineStore.LastCreatedScene;\r\n if (!scene) {\r\n return;\r\n }\r\n this.scene = scene;\r\n this[\"sounds\"] = [];\r\n this[\"effectLayers\"] = [];\r\n this[\"layers\"] = [];\r\n this[\"lensFlareSystems\"] = [];\r\n this[\"proceduralTextures\"] = [];\r\n this[\"reflectionProbes\"] = [];\r\n\r\n scene.onDisposeObservable.add(() => {\r\n if (!this._wasAddedToScene) {\r\n this.dispose();\r\n }\r\n });\r\n\r\n this._onContextRestoredObserver = scene.getEngine().onContextRestoredObservable.add(() => {\r\n for (const geometry of this.geometries) {\r\n geometry._rebuild();\r\n }\r\n\r\n for (const mesh of this.meshes) {\r\n mesh._rebuild();\r\n }\r\n\r\n for (const system of this.particleSystems) {\r\n system.rebuild();\r\n }\r\n\r\n for (const texture of this.textures) {\r\n texture._rebuild();\r\n }\r\n });\r\n }\r\n\r\n /**\r\n * Instantiate or clone all meshes and add the new ones to the scene.\r\n * Skeletons and animation groups will all be cloned\r\n * @param nameFunction defines an optional function used to get new names for clones\r\n * @param cloneMaterials defines an optional boolean that defines if materials must be cloned as well (false by default)\r\n * @param options defines an optional list of options to control how to instanciate / clone models\r\n * @returns a list of rootNodes, skeletons and aniamtion groups that were duplicated\r\n */\r\n public instantiateModelsToScene(nameFunction?: (sourceName: string) => string, cloneMaterials = false, options?: { doNotInstantiate: boolean }): InstantiatedEntries {\r\n let convertionMap: { [key: number]: number } = {};\r\n let storeMap: { [key: number]: any } = {};\r\n let result = new InstantiatedEntries();\r\n let alreadySwappedSkeletons: Skeleton[] = [];\r\n let alreadySwappedMaterials: Material[] = [];\r\n\r\n if (!options) {\r\n options = {\r\n doNotInstantiate: true\r\n };\r\n }\r\n\r\n let onClone = (source: TransformNode, clone: TransformNode) => {\r\n convertionMap[source.uniqueId] = clone.uniqueId;\r\n storeMap[clone.uniqueId] = clone;\r\n\r\n if (nameFunction) {\r\n clone.name = nameFunction(source.name);\r\n }\r\n\r\n if (clone instanceof Mesh) {\r\n let clonedMesh = clone as Mesh;\r\n\r\n if (clonedMesh.morphTargetManager) {\r\n let oldMorphTargetManager = (source as Mesh).morphTargetManager!;\r\n clonedMesh.morphTargetManager = oldMorphTargetManager.clone();\r\n\r\n for (var index = 0; index < oldMorphTargetManager.numTargets; index++) {\r\n let oldTarget = oldMorphTargetManager.getTarget(index);\r\n let newTarget = clonedMesh.morphTargetManager.getTarget(index);\r\n\r\n convertionMap[oldTarget.uniqueId] = newTarget.uniqueId;\r\n storeMap[newTarget.uniqueId] = newTarget;\r\n }\r\n }\r\n }\r\n };\r\n\r\n this.transformNodes.forEach((o) => {\r\n if (!o.parent) {\r\n let newOne = o.instantiateHierarchy(null, options, (source, clone) => {\r\n onClone(source, clone);\r\n });\r\n\r\n if (newOne) {\r\n result.rootNodes.push(newOne);\r\n }\r\n }\r\n });\r\n\r\n this.meshes.forEach((o) => {\r\n if (!o.parent) {\r\n let newOne = o.instantiateHierarchy(null, options, (source, clone) => {\r\n onClone(source, clone);\r\n\r\n if ((clone as any).material) {\r\n let mesh = clone as AbstractMesh;\r\n\r\n if (mesh.material) {\r\n if (cloneMaterials) {\r\n let sourceMaterial = (source as AbstractMesh).material!;\r\n\r\n if (alreadySwappedMaterials.indexOf(sourceMaterial) === -1) {\r\n let swap = sourceMaterial.clone(nameFunction ? nameFunction(sourceMaterial.name) : \"Clone of \" + sourceMaterial.name)!;\r\n alreadySwappedMaterials.push(sourceMaterial);\r\n convertionMap[sourceMaterial.uniqueId] = swap.uniqueId;\r\n storeMap[swap.uniqueId] = swap;\r\n\r\n if (sourceMaterial.getClassName() === \"MultiMaterial\") {\r\n let multi = sourceMaterial as MultiMaterial;\r\n\r\n for (var material of multi.subMaterials) {\r\n if (!material) {\r\n continue;\r\n }\r\n swap = material.clone(nameFunction ? nameFunction(material.name) : \"Clone of \" + material.name)!;\r\n alreadySwappedMaterials.push(material);\r\n convertionMap[material.uniqueId] = swap.uniqueId;\r\n storeMap[swap.uniqueId] = swap;\r\n }\r\n\r\n multi.subMaterials = multi.subMaterials.map((m) => m && storeMap[convertionMap[m.uniqueId]]);\r\n }\r\n }\r\n\r\n if (mesh.getClassName() !== \"InstancedMesh\") {\r\n mesh.material = storeMap[convertionMap[sourceMaterial.uniqueId]];\r\n }\r\n } else {\r\n if (mesh.material.getClassName() === \"MultiMaterial\") {\r\n if (this.scene.multiMaterials.indexOf(mesh.material as MultiMaterial) === -1) {\r\n this.scene.addMultiMaterial(mesh.material as MultiMaterial);\r\n }\r\n } else {\r\n if (this.scene.materials.indexOf(mesh.material) === -1) {\r\n this.scene.addMaterial(mesh.material);\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n });\r\n\r\n if (newOne) {\r\n result.rootNodes.push(newOne);\r\n }\r\n }\r\n });\r\n\r\n this.skeletons.forEach((s) => {\r\n let clone = s.clone(nameFunction ? nameFunction(s.name) : \"Clone of \" + s.name);\r\n\r\n for (var m of this.meshes) {\r\n if (m.skeleton === s && !m.isAnInstance) {\r\n let copy = storeMap[convertionMap[m.uniqueId]] as Mesh;\r\n if (copy.isAnInstance) {\r\n continue;\r\n }\r\n copy.skeleton = clone;\r\n\r\n if (alreadySwappedSkeletons.indexOf(clone) !== -1) {\r\n continue;\r\n }\r\n\r\n alreadySwappedSkeletons.push(clone);\r\n\r\n // Check if bones are mesh linked\r\n for (var bone of clone.bones) {\r\n if (bone._linkedTransformNode) {\r\n bone._linkedTransformNode = storeMap[convertionMap[bone._linkedTransformNode.uniqueId]];\r\n }\r\n }\r\n }\r\n }\r\n\r\n result.skeletons.push(clone);\r\n });\r\n\r\n this.animationGroups.forEach((o) => {\r\n let clone = o.clone(nameFunction ? nameFunction(o.name) : \"Clone of \" + o.name, (oldTarget) => {\r\n let newTarget = storeMap[convertionMap[oldTarget.uniqueId]];\r\n\r\n return newTarget || oldTarget;\r\n });\r\n\r\n result.animationGroups.push(clone);\r\n });\r\n\r\n return result;\r\n }\r\n\r\n /**\r\n * Adds all the assets from the container to the scene.\r\n */\r\n public addAllToScene() {\r\n if (this._wasAddedToScene) {\r\n return;\r\n }\r\n\r\n this._wasAddedToScene = true;\r\n\r\n this.cameras.forEach((o) => {\r\n this.scene.addCamera(o);\r\n });\r\n this.lights.forEach((o) => {\r\n this.scene.addLight(o);\r\n });\r\n this.meshes.forEach((o) => {\r\n this.scene.addMesh(o);\r\n });\r\n this.skeletons.forEach((o) => {\r\n this.scene.addSkeleton(o);\r\n });\r\n this.animations.forEach((o) => {\r\n this.scene.addAnimation(o);\r\n });\r\n this.animationGroups.forEach((o) => {\r\n this.scene.addAnimationGroup(o);\r\n });\r\n this.multiMaterials.forEach((o) => {\r\n this.scene.addMultiMaterial(o);\r\n });\r\n this.materials.forEach((o) => {\r\n this.scene.addMaterial(o);\r\n });\r\n this.morphTargetManagers.forEach((o) => {\r\n this.scene.addMorphTargetManager(o);\r\n });\r\n this.geometries.forEach((o) => {\r\n this.scene.addGeometry(o);\r\n });\r\n this.transformNodes.forEach((o) => {\r\n this.scene.addTransformNode(o);\r\n });\r\n this.actionManagers.forEach((o) => {\r\n this.scene.addActionManager(o);\r\n });\r\n this.textures.forEach((o) => {\r\n this.scene.addTexture(o);\r\n });\r\n this.reflectionProbes.forEach((o) => {\r\n this.scene.addReflectionProbe(o);\r\n });\r\n\r\n if (this.environmentTexture) {\r\n this.scene.environmentTexture = this.environmentTexture;\r\n }\r\n\r\n for (let component of this.scene._serializableComponents) {\r\n component.addFromContainer(this);\r\n }\r\n\r\n this.scene.getEngine().onContextRestoredObservable.remove(this._onContextRestoredObserver);\r\n this._onContextRestoredObserver = null;\r\n }\r\n\r\n /**\r\n * Removes all the assets in the container from the scene\r\n */\r\n public removeAllFromScene() {\r\n this._wasAddedToScene = false;\r\n\r\n this.cameras.forEach((o) => {\r\n this.scene.removeCamera(o);\r\n });\r\n this.lights.forEach((o) => {\r\n this.scene.removeLight(o);\r\n });\r\n this.meshes.forEach((o) => {\r\n this.scene.removeMesh(o);\r\n });\r\n this.skeletons.forEach((o) => {\r\n this.scene.removeSkeleton(o);\r\n });\r\n this.animations.forEach((o) => {\r\n this.scene.removeAnimation(o);\r\n });\r\n this.animationGroups.forEach((o) => {\r\n this.scene.removeAnimationGroup(o);\r\n });\r\n this.multiMaterials.forEach((o) => {\r\n this.scene.removeMultiMaterial(o);\r\n });\r\n this.materials.forEach((o) => {\r\n this.scene.removeMaterial(o);\r\n });\r\n this.morphTargetManagers.forEach((o) => {\r\n this.scene.removeMorphTargetManager(o);\r\n });\r\n this.geometries.forEach((o) => {\r\n this.scene.removeGeometry(o);\r\n });\r\n this.transformNodes.forEach((o) => {\r\n this.scene.removeTransformNode(o);\r\n });\r\n this.actionManagers.forEach((o) => {\r\n this.scene.removeActionManager(o);\r\n });\r\n this.textures.forEach((o) => {\r\n this.scene.removeTexture(o);\r\n });\r\n this.reflectionProbes.forEach((o) => {\r\n this.scene.removeReflectionProbe(o);\r\n });\r\n\r\n if (this.environmentTexture === this.scene.environmentTexture) {\r\n this.scene.environmentTexture = null;\r\n }\r\n\r\n for (let component of this.scene._serializableComponents) {\r\n component.removeFromContainer(this);\r\n }\r\n }\r\n\r\n /**\r\n * Disposes all the assets in the container\r\n */\r\n public dispose() {\r\n this.cameras.slice(0).forEach((o) => {\r\n o.dispose();\r\n });\r\n this.cameras = [];\r\n\r\n this.lights.slice(0).forEach((o) => {\r\n o.dispose();\r\n });\r\n this.lights = [];\r\n\r\n this.meshes.slice(0).forEach((o) => {\r\n o.dispose();\r\n });\r\n this.meshes = [];\r\n\r\n this.skeletons.slice(0).forEach((o) => {\r\n o.dispose();\r\n });\r\n this.skeletons = [];\r\n\r\n this.animationGroups.slice(0).forEach((o) => {\r\n o.dispose();\r\n });\r\n this.animationGroups = [];\r\n\r\n this.multiMaterials.slice(0).forEach((o) => {\r\n o.dispose();\r\n });\r\n this.multiMaterials = [];\r\n\r\n this.materials.slice(0).forEach((o) => {\r\n o.dispose();\r\n });\r\n this.materials = [];\r\n\r\n this.geometries.slice(0).forEach((o) => {\r\n o.dispose();\r\n });\r\n this.geometries = [];\r\n\r\n this.transformNodes.slice(0).forEach((o) => {\r\n o.dispose();\r\n });\r\n this.transformNodes = [];\r\n\r\n this.actionManagers.slice(0).forEach((o) => {\r\n o.dispose();\r\n });\r\n this.actionManagers = [];\r\n\r\n this.textures.slice(0).forEach((o) => {\r\n o.dispose();\r\n });\r\n this.textures = [];\r\n\r\n this.reflectionProbes.slice(0).forEach((o) => {\r\n o.dispose();\r\n });\r\n this.reflectionProbes = [];\r\n\r\n if (this.environmentTexture) {\r\n this.environmentTexture.dispose();\r\n this.environmentTexture = null;\r\n }\r\n\r\n for (let component of this.scene._serializableComponents) {\r\n component.removeFromContainer(this, true);\r\n }\r\n\r\n if (this._onContextRestoredObserver) {\r\n this.scene.getEngine().onContextRestoredObservable.remove(this._onContextRestoredObserver);\r\n this._onContextRestoredObserver = null;\r\n }\r\n }\r\n\r\n private _moveAssets<T>(sourceAssets: T[], targetAssets: T[], keepAssets: T[]): void {\r\n if (!sourceAssets) {\r\n return;\r\n }\r\n\r\n for (let asset of sourceAssets) {\r\n let move = true;\r\n if (keepAssets) {\r\n for (let keepAsset of keepAssets) {\r\n if (asset === keepAsset) {\r\n move = false;\r\n break;\r\n }\r\n }\r\n }\r\n\r\n if (move) {\r\n targetAssets.push(asset);\r\n (asset as any)._parentContainer = this;\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * Removes all the assets contained in the scene and adds them to the container.\r\n * @param keepAssets Set of assets to keep in the scene. (default: empty)\r\n */\r\n public moveAllFromScene(keepAssets?: KeepAssets): void {\r\n this._wasAddedToScene = false;\r\n\r\n if (keepAssets === undefined) {\r\n keepAssets = new KeepAssets();\r\n }\r\n\r\n for (let key in this) {\r\n if (this.hasOwnProperty(key)) {\r\n (<any>this)[key] = (<any>this)[key] || (key === \"environmentTexture\" ? null : []);\r\n this._moveAssets((<any>this.scene)[key], (<any>this)[key], (<any>keepAssets)[key]);\r\n }\r\n }\r\n\r\n this.environmentTexture = this.scene.environmentTexture;\r\n\r\n this.removeAllFromScene();\r\n }\r\n\r\n /**\r\n * Adds all meshes in the asset container to a root mesh that can be used to position all the contained meshes. The root mesh is then added to the front of the meshes in the assetContainer.\r\n * @returns the root mesh\r\n */\r\n public createRootMesh() {\r\n var rootMesh = new Mesh(\"assetContainerRootMesh\", this.scene);\r\n this.meshes.forEach((m) => {\r\n if (!m.parent) {\r\n rootMesh.addChild(m);\r\n }\r\n });\r\n this.meshes.unshift(rootMesh);\r\n return rootMesh;\r\n }\r\n\r\n /**\r\n * Merge animations (direct and animation groups) from this asset container into a scene\r\n * @param scene is the instance of BABYLON.Scene to append to (default: last created scene)\r\n * @param animatables set of animatables to retarget to a node from the scene\r\n * @param targetConverter defines a function used to convert animation targets from the asset container to the scene (default: search node by name)\r\n * @returns an array of the new AnimationGroup added to the scene (empty array if none)\r\n */\r\n public mergeAnimationsTo(scene: Nullable<Scene> = EngineStore.LastCreatedScene, animatables: Animatable[], targetConverter: Nullable<(target: any) => Nullable<Node>> = null): AnimationGroup[] {\r\n if (!scene) {\r\n Logger.Error(\"No scene available to merge animations to\");\r\n return [];\r\n }\r\n\r\n let _targetConverter = targetConverter ? targetConverter : (target: any) => {\r\n let node = null;\r\n\r\n const targetProperty = target.animations.length ? target.animations[0].targetProperty : \"\";\r\n /*\r\n BabylonJS adds special naming to targets that are children of nodes.\r\n This name attempts to remove that special naming to get the parent nodes name in case the target\r\n can't be found in the node tree\r\n\r\n Ex: Torso_primitive0 likely points to a Mesh primitive. We take away primitive0 and are left with \"Torso\" which is the name\r\n of the primitive's parent.\r\n */\r\n const name = target.name.split(\".\").join(\"\").split(\"_primitive\")[0];\r\n\r\n switch (targetProperty) {\r\n case \"position\":\r\n case \"rotationQuaternion\":\r\n node = scene.getTransformNodeByName(target.name) || scene.getTransformNodeByName(name);\r\n break;\r\n case \"influence\":\r\n node = scene.getMorphTargetByName(target.name) || scene.getMorphTargetByName(name);\r\n break;\r\n default:\r\n node = scene.getNodeByName(target.name) || scene.getNodeByName(name);\r\n }\r\n\r\n return node;\r\n };\r\n\r\n // Copy new node animations\r\n let nodesInAC = this.getNodes();\r\n nodesInAC.forEach((nodeInAC) => {\r\n let nodeInScene = _targetConverter(nodeInAC);\r\n if (nodeInScene !== null) {\r\n // Remove old animations with same target property as a new one\r\n for (let animationInAC of nodeInAC.animations) {\r\n // Doing treatment on an array for safety measure\r\n let animationsWithSameProperty = nodeInScene.animations.filter((animationInScene) => {\r\n return animationInScene.targetProperty === animationInAC.targetProperty;\r\n });\r\n for (let animationWithSameProperty of animationsWithSameProperty) {\r\n const index = nodeInScene.animations.indexOf(animationWithSameProperty, 0);\r\n if (index > -1) {\r\n nodeInScene.animations.splice(index, 1);\r\n }\r\n }\r\n }\r\n\r\n // Append new animations\r\n nodeInScene.animations = nodeInScene.animations.concat(nodeInAC.animations);\r\n }\r\n });\r\n\r\n let newAnimationGroups = new Array<AnimationGroup>();\r\n\r\n // Copy new animation groups\r\n this.animationGroups.slice().forEach((animationGroupInAC) => {\r\n // Clone the animation group and all its animatables\r\n newAnimationGroups.push(animationGroupInAC.clone(animationGroupInAC.name, _targetConverter));\r\n\r\n // Remove animatables related to the asset container\r\n animationGroupInAC.animatables.forEach((animatable) => {\r\n animatable.stop();\r\n });\r\n });\r\n\r\n // Retarget animatables\r\n animatables.forEach((animatable) => {\r\n let target = _targetConverter(animatable.target);\r\n\r\n if (target) {\r\n // Clone the animatable and retarget it\r\n scene.beginAnimation(target, animatable.fromFrame, animatable.toFrame, animatable.loopAnimation, animatable.speedRatio, animatable.onAnimationEnd ? animatable.onAnimationEnd : undefined, undefined, true, undefined, animatable.onAnimationLoop ? animatable.onAnimationLoop : undefined);\r\n\r\n // Stop animation for the target in the asset container\r\n scene.stopAnimation(animatable.target);\r\n }\r\n });\r\n\r\n return newAnimationGroups;\r\n }\r\n}\r\n"]}
package/index.d.ts CHANGED
@@ -43,3 +43,4 @@ export * from "./States/index";
43
43
  export * from "./Misc/index";
44
44
  export * from "./XR/index";
45
45
  export * from "./types";
46
+ export * from "./Compat/index";
package/index.js CHANGED
@@ -43,4 +43,5 @@ export * from "./States/index.js";
43
43
  export * from "./Misc/index.js";
44
44
  export * from "./XR/index.js";
45
45
  export * from "./types.js";
46
+ export * from "./Compat/index.js";
46
47
  //# sourceMappingURL=index.js.map
package/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../sourceES6/core/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC;AAChC,cAAc,iBAAiB,CAAC;AAChC,cAAc,oBAAoB,CAAC;AACnC,cAAc,kBAAkB,CAAC;AACjC,cAAc,eAAe,CAAC;AAC9B,cAAc,8BAA8B,CAAC;AAC7C,cAAc,mBAAmB,CAAC;AAClC,cAAc,eAAe,CAAC;AAC9B,cAAc,iBAAiB,CAAC;AAChC,cAAc,iBAAiB,CAAC;AAChC,cAAc,oBAAoB,CAAC;AACnC,cAAc,iBAAiB,CAAC;AAChC,cAAc,iBAAiB,CAAC;AAChC,cAAc,eAAe,CAAC;AAC9B,cAAc,qBAAqB,CAAC;AACpC,cAAc,iBAAiB,CAAC;AAChC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,kBAAkB,CAAC;AACjC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,iBAAiB,CAAC;AAChC,cAAc,yBAAyB,CAAC;AACxC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,oBAAoB,CAAC;AACnC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,iBAAiB,CAAC;AAChC,cAAc,mBAAmB,CAAC;AAClC,cAAc,eAAe,CAAC;AAC9B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,eAAe,CAAC;AAC9B,cAAc,oBAAoB,CAAC;AACnC,cAAc,QAAQ,CAAC;AACvB,cAAc,iBAAiB,CAAC;AAChC,cAAc,mBAAmB,CAAC;AAClC,cAAc,iBAAiB,CAAC;AAChC,cAAc,uBAAuB,CAAC;AACtC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,mBAAmB,CAAC;AAClC,cAAc,SAAS,CAAC;AACxB,cAAc,aAAa,CAAC;AAC5B,cAAc,kBAAkB,CAAC;AACjC,cAAc,iBAAiB,CAAC;AAChC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC;AAC3B,cAAc,SAAS,CAAC","sourcesContent":["export * from \"./abstractScene\";\r\nexport * from \"./Actions/index\";\r\nexport * from \"./Animations/index\";\r\nexport * from \"./assetContainer\";\r\nexport * from \"./Audio/index\";\r\nexport * from \"./BakedVertexAnimation/index\";\r\nexport * from \"./Behaviors/index\";\r\nexport * from \"./Bones/index\";\r\nexport * from \"./Buffers/index\";\r\nexport * from \"./Cameras/index\";\r\nexport * from \"./Collisions/index\";\r\nexport * from \"./Compute/index\";\r\nexport * from \"./Culling/index\";\r\nexport * from \"./Debug/index\";\r\nexport * from \"./DeviceInput/index\";\r\nexport * from \"./Engines/index\";\r\nexport * from \"./Events/index\";\r\nexport * from \"./Gamepads/index\";\r\nexport * from \"./Gizmos/index\";\r\nexport * from \"./Helpers/index\";\r\nexport * from \"./Instrumentation/index\";\r\nexport * from \"./Layers/index\";\r\nexport * from \"./LensFlares/index\";\r\nexport * from \"./Lights/index\";\r\nexport * from \"./Loading/index\";\r\nexport * from \"./Materials/index\";\r\nexport * from \"./Maths/index\";\r\nexport * from \"./Meshes/index\";\r\nexport * from \"./Morph/index\";\r\nexport * from \"./Navigation/index\";\r\nexport * from \"./node\";\r\nexport * from \"./Offline/index\";\r\nexport * from \"./Particles/index\";\r\nexport * from \"./Physics/index\";\r\nexport * from \"./PostProcesses/index\";\r\nexport * from \"./Probes/index\";\r\nexport * from \"./Rendering/index\";\r\nexport * from \"./scene\";\r\nexport * from \"./scene.lts\";\r\nexport * from \"./sceneComponent\";\r\nexport * from \"./Sprites/index\";\r\nexport * from \"./States/index\";\r\nexport * from \"./Misc/index\";\r\nexport * from \"./XR/index\";\r\nexport * from \"./types\";"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../sourceES6/core/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC;AAChC,cAAc,iBAAiB,CAAC;AAChC,cAAc,oBAAoB,CAAC;AACnC,cAAc,kBAAkB,CAAC;AACjC,cAAc,eAAe,CAAC;AAC9B,cAAc,8BAA8B,CAAC;AAC7C,cAAc,mBAAmB,CAAC;AAClC,cAAc,eAAe,CAAC;AAC9B,cAAc,iBAAiB,CAAC;AAChC,cAAc,iBAAiB,CAAC;AAChC,cAAc,oBAAoB,CAAC;AACnC,cAAc,iBAAiB,CAAC;AAChC,cAAc,iBAAiB,CAAC;AAChC,cAAc,eAAe,CAAC;AAC9B,cAAc,qBAAqB,CAAC;AACpC,cAAc,iBAAiB,CAAC;AAChC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,kBAAkB,CAAC;AACjC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,iBAAiB,CAAC;AAChC,cAAc,yBAAyB,CAAC;AACxC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,oBAAoB,CAAC;AACnC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,iBAAiB,CAAC;AAChC,cAAc,mBAAmB,CAAC;AAClC,cAAc,eAAe,CAAC;AAC9B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,eAAe,CAAC;AAC9B,cAAc,oBAAoB,CAAC;AACnC,cAAc,QAAQ,CAAC;AACvB,cAAc,iBAAiB,CAAC;AAChC,cAAc,mBAAmB,CAAC;AAClC,cAAc,iBAAiB,CAAC;AAChC,cAAc,uBAAuB,CAAC;AACtC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,mBAAmB,CAAC;AAClC,cAAc,SAAS,CAAC;AACxB,cAAc,aAAa,CAAC;AAC5B,cAAc,kBAAkB,CAAC;AACjC,cAAc,iBAAiB,CAAC;AAChC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC;AAC3B,cAAc,SAAS,CAAC;AACxB,cAAc,gBAAgB,CAAC","sourcesContent":["export * from \"./abstractScene\";\r\nexport * from \"./Actions/index\";\r\nexport * from \"./Animations/index\";\r\nexport * from \"./assetContainer\";\r\nexport * from \"./Audio/index\";\r\nexport * from \"./BakedVertexAnimation/index\";\r\nexport * from \"./Behaviors/index\";\r\nexport * from \"./Bones/index\";\r\nexport * from \"./Buffers/index\";\r\nexport * from \"./Cameras/index\";\r\nexport * from \"./Collisions/index\";\r\nexport * from \"./Compute/index\";\r\nexport * from \"./Culling/index\";\r\nexport * from \"./Debug/index\";\r\nexport * from \"./DeviceInput/index\";\r\nexport * from \"./Engines/index\";\r\nexport * from \"./Events/index\";\r\nexport * from \"./Gamepads/index\";\r\nexport * from \"./Gizmos/index\";\r\nexport * from \"./Helpers/index\";\r\nexport * from \"./Instrumentation/index\";\r\nexport * from \"./Layers/index\";\r\nexport * from \"./LensFlares/index\";\r\nexport * from \"./Lights/index\";\r\nexport * from \"./Loading/index\";\r\nexport * from \"./Materials/index\";\r\nexport * from \"./Maths/index\";\r\nexport * from \"./Meshes/index\";\r\nexport * from \"./Morph/index\";\r\nexport * from \"./Navigation/index\";\r\nexport * from \"./node\";\r\nexport * from \"./Offline/index\";\r\nexport * from \"./Particles/index\";\r\nexport * from \"./Physics/index\";\r\nexport * from \"./PostProcesses/index\";\r\nexport * from \"./Probes/index\";\r\nexport * from \"./Rendering/index\";\r\nexport * from \"./scene\";\r\nexport * from \"./scene.lts\";\r\nexport * from \"./sceneComponent\";\r\nexport * from \"./Sprites/index\";\r\nexport * from \"./States/index\";\r\nexport * from \"./Misc/index\";\r\nexport * from \"./XR/index\";\r\nexport * from \"./types\";\r\nexport * from \"./Compat/index\";"]}
package/package.json CHANGED
@@ -7,7 +7,7 @@
7
7
  ],
8
8
  "name": "@babylonjs/core",
9
9
  "description": "Babylon.js is a JavaScript 3D engine based on webgl.",
10
- "version": "5.0.0-beta.5",
10
+ "version": "5.0.0-beta.9",
11
11
  "repository": {
12
12
  "type": "git",
13
13
  "url": "https://github.com/BabylonJS/Babylon.js.git"
@@ -392,6 +392,12 @@
392
392
  "Collisions/pickingInfo.d.ts",
393
393
  "Collisions/pickingInfo.js",
394
394
  "Collisions/pickingInfo.js.map",
395
+ "Compat/compatibilityOptions.d.ts",
396
+ "Compat/compatibilityOptions.js",
397
+ "Compat/compatibilityOptions.js.map",
398
+ "Compat/index.d.ts",
399
+ "Compat/index.js",
400
+ "Compat/index.js.map",
395
401
  "Compute/computeEffect.d.ts",
396
402
  "Compute/computeEffect.js",
397
403
  "Compute/computeEffect.js.map",
@@ -1872,9 +1878,6 @@
1872
1878
  "Misc/assetsManager.d.ts",
1873
1879
  "Misc/assetsManager.js",
1874
1880
  "Misc/assetsManager.js.map",
1875
- "Misc/baseError.d.ts",
1876
- "Misc/baseError.js",
1877
- "Misc/baseError.js.map",
1878
1881
  "Misc/basis.d.ts",
1879
1882
  "Misc/basis.js",
1880
1883
  "Misc/basis.js.map",
@@ -1926,6 +1929,9 @@
1926
1929
  "Misc/environmentTextureTools.d.ts",
1927
1930
  "Misc/environmentTextureTools.js",
1928
1931
  "Misc/environmentTextureTools.js.map",
1932
+ "Misc/error.d.ts",
1933
+ "Misc/error.js",
1934
+ "Misc/error.js.map",
1929
1935
  "Misc/fileRequest.d.ts",
1930
1936
  "Misc/fileRequest.js",
1931
1937
  "Misc/fileRequest.js.map",
package/scene.js CHANGED
@@ -3149,7 +3149,7 @@ var Scene = /** @class */ (function (_super) {
3149
3149
  return;
3150
3150
  }
3151
3151
  if (!_this._frustumPlanes) {
3152
- _this.setTransformMatrix(_this.activeCamera.getViewMatrix(), _this.activeCamera.getProjectionMatrix());
3152
+ _this.updateTransformMatrix();
3153
3153
  }
3154
3154
  _this._evaluateActiveMeshes();
3155
3155
  _this._activeMeshesFrozen = true;
@@ -3335,7 +3335,14 @@ var Scene = /** @class */ (function (_super) {
3335
3335
  if (!this.activeCamera) {
3336
3336
  return;
3337
3337
  }
3338
- this.setTransformMatrix(this.activeCamera.getViewMatrix(), this.activeCamera.getProjectionMatrix(force));
3338
+ if (this.activeCamera._renderingMultiview) {
3339
+ var leftCamera = this.activeCamera._rigCameras[0];
3340
+ var rightCamera = this.activeCamera._rigCameras[1];
3341
+ this.setTransformMatrix(leftCamera.getViewMatrix(), leftCamera.getProjectionMatrix(force), rightCamera.getViewMatrix(), rightCamera.getProjectionMatrix(force));
3342
+ }
3343
+ else {
3344
+ this.setTransformMatrix(this.activeCamera.getViewMatrix(), this.activeCamera.getProjectionMatrix(force));
3345
+ }
3339
3346
  };
3340
3347
  Scene.prototype._bindFrameBuffer = function (camera, clear) {
3341
3348
  if (clear === void 0) { clear = true; }
@@ -3400,13 +3407,7 @@ var Scene = /** @class */ (function (_super) {
3400
3407
  if (!this.prePass && bindFrameBuffer) {
3401
3408
  this._bindFrameBuffer(this._activeCamera);
3402
3409
  }
3403
- var useMultiview = camera._renderingMultiview;
3404
- if (useMultiview) {
3405
- this.setTransformMatrix(camera._rigCameras[0].getViewMatrix(), camera._rigCameras[0].getProjectionMatrix(), camera._rigCameras[1].getViewMatrix(), camera._rigCameras[1].getProjectionMatrix());
3406
- }
3407
- else {
3408
- this.updateTransformMatrix();
3409
- }
3410
+ this.updateTransformMatrix();
3410
3411
  this.onBeforeCameraRenderObservable.notifyObservers(this.activeCamera);
3411
3412
  // Meshes
3412
3413
  this._evaluateActiveMeshes();
@@ -3513,7 +3514,7 @@ var Scene = /** @class */ (function (_super) {
3513
3514
  }
3514
3515
  // Use _activeCamera instead of activeCamera to avoid onActiveCameraChanged
3515
3516
  this._activeCamera = camera;
3516
- this.setTransformMatrix(this._activeCamera.getViewMatrix(), this._activeCamera.getProjectionMatrix());
3517
+ this.updateTransformMatrix();
3517
3518
  this.onAfterRenderCameraObservable.notifyObservers(camera);
3518
3519
  };
3519
3520
  Scene.prototype._checkIntersections = function () {