@babylonjs/core 7.2.2 → 7.2.3

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 (376) hide show
  1. package/Animations/runtimeAnimation.d.ts +1 -0
  2. package/Animations/runtimeAnimation.js +12 -3
  3. package/Animations/runtimeAnimation.js.map +1 -1
  4. package/Audio/audioEngine.js +2 -2
  5. package/Audio/audioEngine.js.map +1 -1
  6. package/Bones/boneLookController.js +3 -0
  7. package/Bones/boneLookController.js.map +1 -1
  8. package/Buffers/buffer.d.ts +5 -5
  9. package/Buffers/buffer.js.map +1 -1
  10. package/Buffers/storageBuffer.d.ts +2 -2
  11. package/Buffers/storageBuffer.js.map +1 -1
  12. package/Cameras/Inputs/arcRotateCameraKeyboardMoveInput.js.map +1 -1
  13. package/Cameras/Inputs/flyCameraKeyboardInput.js.map +1 -1
  14. package/Cameras/Inputs/followCameraKeyboardMoveInput.js.map +1 -1
  15. package/Cameras/Inputs/freeCameraKeyboardMoveInput.js.map +1 -1
  16. package/Compute/computeEffect.d.ts +3 -3
  17. package/Compute/computeEffect.js.map +1 -1
  18. package/Compute/computeShader.d.ts +10 -2
  19. package/Compute/computeShader.js +53 -35
  20. package/Compute/computeShader.js.map +1 -1
  21. package/DeviceInput/InputDevices/deviceSourceManager.d.ts +2 -2
  22. package/DeviceInput/InputDevices/deviceSourceManager.js.map +1 -1
  23. package/DeviceInput/internalDeviceSourceManager.d.ts +4 -4
  24. package/DeviceInput/internalDeviceSourceManager.js.map +1 -1
  25. package/DeviceInput/webDeviceInputSystem.d.ts +2 -2
  26. package/DeviceInput/webDeviceInputSystem.js.map +1 -1
  27. package/Engines/AbstractEngine/abstractEngine.alpha.d.ts +10 -0
  28. package/Engines/AbstractEngine/abstractEngine.alpha.js +29 -0
  29. package/Engines/AbstractEngine/abstractEngine.alpha.js.map +1 -0
  30. package/Engines/AbstractEngine/abstractEngine.cubeTexture.d.ts +17 -0
  31. package/Engines/AbstractEngine/abstractEngine.cubeTexture.js +138 -0
  32. package/Engines/AbstractEngine/abstractEngine.cubeTexture.js.map +1 -0
  33. package/Engines/AbstractEngine/abstractEngine.dom.d.ts +61 -0
  34. package/Engines/AbstractEngine/abstractEngine.dom.js +27 -0
  35. package/Engines/AbstractEngine/abstractEngine.dom.js.map +1 -0
  36. package/Engines/AbstractEngine/abstractEngine.loadingScreen.d.ts +30 -0
  37. package/Engines/AbstractEngine/abstractEngine.loadingScreen.js +48 -0
  38. package/Engines/AbstractEngine/abstractEngine.loadingScreen.js.map +1 -0
  39. package/Engines/AbstractEngine/abstractEngine.query.d.ts +122 -0
  40. package/Engines/AbstractEngine/abstractEngine.query.js +175 -0
  41. package/Engines/AbstractEngine/abstractEngine.query.js.map +1 -0
  42. package/Engines/AbstractEngine/abstractEngine.renderPass.d.ts +26 -0
  43. package/Engines/AbstractEngine/abstractEngine.renderPass.js +29 -0
  44. package/Engines/AbstractEngine/abstractEngine.renderPass.js.map +1 -0
  45. package/Engines/AbstractEngine/abstractEngine.states.d.ts +162 -0
  46. package/Engines/AbstractEngine/abstractEngine.states.js +105 -0
  47. package/Engines/AbstractEngine/abstractEngine.states.js.map +1 -0
  48. package/Engines/AbstractEngine/abstractEngine.texture.d.ts +16 -0
  49. package/Engines/AbstractEngine/abstractEngine.texture.js +11 -0
  50. package/Engines/AbstractEngine/abstractEngine.texture.js.map +1 -0
  51. package/Engines/AbstractEngine/index.d.ts +8 -0
  52. package/Engines/AbstractEngine/index.js +10 -0
  53. package/Engines/AbstractEngine/index.js.map +1 -0
  54. package/Engines/Extensions/engine.alpha.d.ts +0 -24
  55. package/Engines/Extensions/engine.alpha.js +0 -35
  56. package/Engines/Extensions/engine.alpha.js.map +1 -1
  57. package/Engines/Extensions/engine.computeShader.d.ts +15 -2
  58. package/Engines/Extensions/engine.computeShader.js +5 -1
  59. package/Engines/Extensions/engine.computeShader.js.map +1 -1
  60. package/Engines/Extensions/engine.cubeTexture.d.ts +0 -8
  61. package/Engines/Extensions/engine.cubeTexture.js +2 -135
  62. package/Engines/Extensions/engine.cubeTexture.js.map +1 -1
  63. package/Engines/Extensions/engine.debugging.d.ts +2 -2
  64. package/Engines/Extensions/engine.debugging.js +5 -5
  65. package/Engines/Extensions/engine.debugging.js.map +1 -1
  66. package/Engines/Extensions/engine.dynamicTexture.js +3 -2
  67. package/Engines/Extensions/engine.dynamicTexture.js.map +1 -1
  68. package/Engines/Extensions/engine.multiview.js.map +1 -1
  69. package/Engines/Extensions/engine.query.d.ts +5 -120
  70. package/Engines/Extensions/engine.query.js +14 -150
  71. package/Engines/Extensions/engine.query.js.map +1 -1
  72. package/Engines/Extensions/engine.renderTarget.js +0 -9
  73. package/Engines/Extensions/engine.renderTarget.js.map +1 -1
  74. package/Engines/Extensions/engine.views.d.ts +3 -2
  75. package/Engines/Extensions/engine.views.js.map +1 -1
  76. package/Engines/Processors/iShaderProcessor.d.ts +2 -2
  77. package/Engines/Processors/iShaderProcessor.js.map +1 -1
  78. package/Engines/Processors/shaderProcessor.d.ts +3 -3
  79. package/Engines/Processors/shaderProcessor.js.map +1 -1
  80. package/Engines/WebGL/webGLRenderTargetWrapper.js +12 -9
  81. package/Engines/WebGL/webGLRenderTargetWrapper.js.map +1 -1
  82. package/Engines/WebGL/webGLShaderProcessors.d.ts +2 -2
  83. package/Engines/WebGL/webGLShaderProcessors.js.map +1 -1
  84. package/Engines/WebGPU/Extensions/engine.alpha.d.ts +35 -0
  85. package/Engines/WebGPU/Extensions/engine.alpha.js +4 -4
  86. package/Engines/WebGPU/Extensions/engine.alpha.js.map +1 -1
  87. package/Engines/WebGPU/Extensions/engine.computeShader.d.ts +9 -0
  88. package/Engines/WebGPU/Extensions/engine.computeShader.js +13 -2
  89. package/Engines/WebGPU/Extensions/engine.computeShader.js.map +1 -1
  90. package/Engines/WebGPU/Extensions/engine.cubeTexture.d.ts +78 -1
  91. package/Engines/WebGPU/Extensions/engine.cubeTexture.js.map +1 -1
  92. package/Engines/WebGPU/Extensions/engine.dynamicTexture.d.ts +27 -1
  93. package/Engines/WebGPU/Extensions/engine.dynamicTexture.js +3 -3
  94. package/Engines/WebGPU/Extensions/engine.dynamicTexture.js.map +1 -1
  95. package/Engines/WebGPU/Extensions/engine.externalTexture.d.ts +16 -0
  96. package/Engines/WebGPU/Extensions/engine.externalTexture.js.map +1 -1
  97. package/Engines/WebGPU/Extensions/engine.multiRender.d.ts +55 -1
  98. package/Engines/WebGPU/Extensions/engine.multiRender.js.map +1 -1
  99. package/Engines/WebGPU/Extensions/engine.query.d.ts +1 -1
  100. package/Engines/WebGPU/Extensions/engine.query.js +1 -0
  101. package/Engines/WebGPU/Extensions/engine.query.js.map +1 -1
  102. package/Engines/WebGPU/Extensions/engine.rawTexture.d.ts +185 -1
  103. package/Engines/WebGPU/Extensions/engine.rawTexture.js.map +1 -1
  104. package/Engines/WebGPU/Extensions/engine.readTexture.d.ts +10 -1
  105. package/Engines/WebGPU/Extensions/engine.readTexture.js.map +1 -1
  106. package/Engines/WebGPU/Extensions/engine.renderTarget.d.ts +38 -1
  107. package/Engines/WebGPU/Extensions/engine.renderTarget.js.map +1 -1
  108. package/Engines/WebGPU/Extensions/engine.renderTargetCube.d.ts +13 -1
  109. package/Engines/WebGPU/Extensions/engine.renderTargetCube.js.map +1 -1
  110. package/Engines/WebGPU/Extensions/engine.storageBuffer.d.ts +38 -1
  111. package/Engines/WebGPU/Extensions/engine.storageBuffer.js.map +1 -1
  112. package/Engines/WebGPU/Extensions/engine.textureSampler.d.ts +10 -0
  113. package/Engines/WebGPU/Extensions/engine.textureSampler.js.map +1 -1
  114. package/Engines/WebGPU/Extensions/engine.videoTexture.d.ts +14 -1
  115. package/Engines/WebGPU/Extensions/engine.videoTexture.js.map +1 -1
  116. package/Engines/WebGPU/webgpuShaderProcessorsGLSL.d.ts +2 -2
  117. package/Engines/WebGPU/webgpuShaderProcessorsGLSL.js.map +1 -1
  118. package/Engines/abstractEngine.d.ts +1688 -0
  119. package/Engines/abstractEngine.js +1354 -0
  120. package/Engines/abstractEngine.js.map +1 -0
  121. package/Engines/engine.common.d.ts +39 -0
  122. package/Engines/engine.common.js +226 -0
  123. package/Engines/engine.common.js.map +1 -0
  124. package/Engines/engine.d.ts +40 -447
  125. package/Engines/engine.js +64 -810
  126. package/Engines/engine.js.map +1 -1
  127. package/Engines/engineFactory.d.ts +2 -2
  128. package/Engines/engineFactory.js.map +1 -1
  129. package/Engines/engineStore.d.ts +4 -4
  130. package/Engines/engineStore.js.map +1 -1
  131. package/Engines/index.d.ts +3 -0
  132. package/Engines/index.js +3 -0
  133. package/Engines/index.js.map +1 -1
  134. package/Engines/nativeEngine.d.ts +1 -1
  135. package/Engines/nativeEngine.js +2 -1
  136. package/Engines/nativeEngine.js.map +1 -1
  137. package/Engines/nullEngine.d.ts +2 -2
  138. package/Engines/nullEngine.js +2 -3
  139. package/Engines/nullEngine.js.map +1 -1
  140. package/Engines/renderTargetWrapper.d.ts +3 -3
  141. package/Engines/renderTargetWrapper.js.map +1 -1
  142. package/Engines/thinEngine.d.ts +35 -591
  143. package/Engines/thinEngine.js +84 -1134
  144. package/Engines/thinEngine.js.map +1 -1
  145. package/Engines/webgpuEngine.d.ts +149 -109
  146. package/Engines/webgpuEngine.js +249 -161
  147. package/Engines/webgpuEngine.js.map +1 -1
  148. package/Instrumentation/engineInstrumentation.d.ts +5 -4
  149. package/Instrumentation/engineInstrumentation.js.map +1 -1
  150. package/Layers/effectLayer.d.ts +2 -2
  151. package/Layers/effectLayer.js +3 -3
  152. package/Layers/effectLayer.js.map +1 -1
  153. package/Layers/effectLayerSceneComponent.js.map +1 -1
  154. package/Layers/glowLayer.js +3 -3
  155. package/Layers/glowLayer.js.map +1 -1
  156. package/Layers/highlightLayer.js +3 -3
  157. package/Layers/highlightLayer.js.map +1 -1
  158. package/Layers/layerSceneComponent.js.map +1 -1
  159. package/Loading/loadingScreen.js +2 -2
  160. package/Loading/loadingScreen.js.map +1 -1
  161. package/Loading/sceneLoader.d.ts +3 -3
  162. package/Loading/sceneLoader.js +1 -1
  163. package/Loading/sceneLoader.js.map +1 -1
  164. package/Materials/GreasedLine/greasedLinePluginMaterial.js.map +1 -1
  165. package/Materials/Textures/Filtering/hdrFiltering.d.ts +2 -2
  166. package/Materials/Textures/Filtering/hdrFiltering.js.map +1 -1
  167. package/Materials/Textures/Loaders/basisTextureLoader.js +2 -2
  168. package/Materials/Textures/Loaders/basisTextureLoader.js.map +1 -1
  169. package/Materials/Textures/MultiviewRenderTarget.d.ts +1 -0
  170. package/Materials/Textures/MultiviewRenderTarget.js +1 -0
  171. package/Materials/Textures/MultiviewRenderTarget.js.map +1 -1
  172. package/Materials/Textures/Procedurals/proceduralTexture.js +1 -1
  173. package/Materials/Textures/Procedurals/proceduralTexture.js.map +1 -1
  174. package/Materials/Textures/baseTexture.d.ts +3 -3
  175. package/Materials/Textures/baseTexture.js.map +1 -1
  176. package/Materials/Textures/colorGradingTexture.d.ts +2 -2
  177. package/Materials/Textures/colorGradingTexture.js.map +1 -1
  178. package/Materials/Textures/cubeTexture.d.ts +3 -2
  179. package/Materials/Textures/cubeTexture.js +1 -0
  180. package/Materials/Textures/cubeTexture.js.map +1 -1
  181. package/Materials/Textures/hdrCubeTexture.d.ts +2 -2
  182. package/Materials/Textures/hdrCubeTexture.js.map +1 -1
  183. package/Materials/Textures/htmlElementTexture.d.ts +2 -2
  184. package/Materials/Textures/htmlElementTexture.js.map +1 -1
  185. package/Materials/Textures/internalTexture.d.ts +3 -3
  186. package/Materials/Textures/internalTexture.js.map +1 -1
  187. package/Materials/Textures/rawTexture.d.ts +10 -10
  188. package/Materials/Textures/rawTexture.js.map +1 -1
  189. package/Materials/Textures/renderTargetTexture.d.ts +4 -4
  190. package/Materials/Textures/renderTargetTexture.js +4 -4
  191. package/Materials/Textures/renderTargetTexture.js.map +1 -1
  192. package/Materials/Textures/texture.d.ts +2 -2
  193. package/Materials/Textures/texture.js.map +1 -1
  194. package/Materials/Textures/thinTexture.d.ts +3 -3
  195. package/Materials/Textures/thinTexture.js +1 -1
  196. package/Materials/Textures/thinTexture.js.map +1 -1
  197. package/Materials/drawWrapper.d.ts +2 -3
  198. package/Materials/drawWrapper.functions.d.ts +8 -0
  199. package/Materials/drawWrapper.functions.js +9 -0
  200. package/Materials/drawWrapper.functions.js.map +1 -0
  201. package/Materials/drawWrapper.js +0 -3
  202. package/Materials/drawWrapper.js.map +1 -1
  203. package/Materials/effect.d.ts +4 -5
  204. package/Materials/effect.js.map +1 -1
  205. package/Materials/effectRenderer.d.ts +4 -4
  206. package/Materials/effectRenderer.js.map +1 -1
  207. package/Materials/index.d.ts +1 -0
  208. package/Materials/index.js +1 -0
  209. package/Materials/index.js.map +1 -1
  210. package/Materials/materialHelper.functions.d.ts +2 -2
  211. package/Materials/materialHelper.functions.js.map +1 -1
  212. package/Materials/materialPluginBase.d.ts +4 -4
  213. package/Materials/materialPluginBase.js.map +1 -1
  214. package/Materials/materialPluginManager.d.ts +2 -2
  215. package/Materials/materialPluginManager.js.map +1 -1
  216. package/Materials/meshDebugPluginMaterial.js +1 -1
  217. package/Materials/meshDebugPluginMaterial.js.map +1 -1
  218. package/Materials/uniformBuffer.d.ts +2 -2
  219. package/Materials/uniformBuffer.js.map +1 -1
  220. package/Meshes/Builders/greasedLineBuilder.d.ts +6 -0
  221. package/Meshes/Builders/greasedLineBuilder.js +15 -8
  222. package/Meshes/Builders/greasedLineBuilder.js.map +1 -1
  223. package/Meshes/GaussianSplatting/gaussianSplattingMesh.js +1 -1
  224. package/Meshes/GaussianSplatting/gaussianSplattingMesh.js.map +1 -1
  225. package/Meshes/GreasedLine/greasedLineBaseMesh.d.ts +2 -2
  226. package/Meshes/GreasedLine/greasedLineBaseMesh.js.map +1 -1
  227. package/Meshes/GreasedLine/greasedLineMesh.js +1 -1
  228. package/Meshes/GreasedLine/greasedLineMesh.js.map +1 -1
  229. package/Meshes/geometry.d.ts +2 -2
  230. package/Meshes/geometry.js +3 -2
  231. package/Meshes/geometry.js.map +1 -1
  232. package/Meshes/instancedMesh.js.map +1 -1
  233. package/Meshes/mesh.d.ts +3 -3
  234. package/Meshes/mesh.js.map +1 -1
  235. package/Meshes/subMesh.d.ts +2 -2
  236. package/Meshes/subMesh.js.map +1 -1
  237. package/Misc/PerformanceViewer/performanceViewerCollectionStrategies.js.map +1 -1
  238. package/Misc/copyTextureToTexture.d.ts +2 -2
  239. package/Misc/copyTextureToTexture.js.map +1 -1
  240. package/Misc/dds.d.ts +3 -2
  241. package/Misc/dds.js +2 -1
  242. package/Misc/dds.js.map +1 -1
  243. package/Misc/dumpTools.d.ts +2 -2
  244. package/Misc/dumpTools.js.map +1 -1
  245. package/Misc/fileTools.js +3 -3
  246. package/Misc/fileTools.js.map +1 -1
  247. package/Misc/khronosTextureContainer2.d.ts +8 -2
  248. package/Misc/khronosTextureContainer2.js +3 -2
  249. package/Misc/khronosTextureContainer2.js.map +1 -1
  250. package/Misc/minMaxReducer.d.ts +2 -2
  251. package/Misc/minMaxReducer.js.map +1 -1
  252. package/Misc/textureTools.js.map +1 -1
  253. package/Misc/tools.d.ts +7 -7
  254. package/Misc/tools.functions.d.ts +26 -0
  255. package/Misc/tools.functions.js +62 -0
  256. package/Misc/tools.functions.js.map +1 -1
  257. package/Misc/tools.js.map +1 -1
  258. package/Misc/videoRecorder.d.ts +3 -3
  259. package/Misc/videoRecorder.js.map +1 -1
  260. package/Particles/baseParticleSystem.d.ts +2 -2
  261. package/Particles/baseParticleSystem.js.map +1 -1
  262. package/Particles/computeShaderParticleSystem.d.ts +2 -2
  263. package/Particles/computeShaderParticleSystem.js.map +1 -1
  264. package/Particles/gpuParticleSystem.d.ts +3 -3
  265. package/Particles/gpuParticleSystem.js +2 -2
  266. package/Particles/gpuParticleSystem.js.map +1 -1
  267. package/Particles/particle.js +1 -1
  268. package/Particles/particle.js.map +1 -1
  269. package/Particles/particleSystem.d.ts +3 -3
  270. package/Particles/particleSystem.js +3 -3
  271. package/Particles/particleSystem.js.map +1 -1
  272. package/Particles/particleSystemComponent.d.ts +2 -2
  273. package/Particles/particleSystemComponent.js +2 -2
  274. package/Particles/particleSystemComponent.js.map +1 -1
  275. package/Particles/subEmitter.d.ts +3 -3
  276. package/Particles/subEmitter.js.map +1 -1
  277. package/Particles/thinParticleSystem.d.ts +2 -2
  278. package/Particles/thinParticleSystem.js.map +1 -1
  279. package/Physics/v2/physicsBody.js +3 -3
  280. package/Physics/v2/physicsBody.js.map +1 -1
  281. package/PostProcesses/RenderPipeline/Pipelines/defaultRenderingPipeline.js.map +1 -1
  282. package/PostProcesses/RenderPipeline/postProcessRenderEffect.d.ts +2 -2
  283. package/PostProcesses/RenderPipeline/postProcessRenderEffect.js.map +1 -1
  284. package/PostProcesses/RenderPipeline/postProcessRenderPipeline.d.ts +2 -2
  285. package/PostProcesses/RenderPipeline/postProcessRenderPipeline.js.map +1 -1
  286. package/PostProcesses/blackAndWhitePostProcess.d.ts +2 -2
  287. package/PostProcesses/blackAndWhitePostProcess.js.map +1 -1
  288. package/PostProcesses/bloomMergePostProcess.d.ts +2 -2
  289. package/PostProcesses/bloomMergePostProcess.js.map +1 -1
  290. package/PostProcesses/blurPostProcess.d.ts +2 -2
  291. package/PostProcesses/blurPostProcess.js.map +1 -1
  292. package/PostProcesses/chromaticAberrationPostProcess.d.ts +2 -2
  293. package/PostProcesses/chromaticAberrationPostProcess.js.map +1 -1
  294. package/PostProcesses/circleOfConfusionPostProcess.d.ts +2 -2
  295. package/PostProcesses/circleOfConfusionPostProcess.js.map +1 -1
  296. package/PostProcesses/colorCorrectionPostProcess.d.ts +2 -2
  297. package/PostProcesses/colorCorrectionPostProcess.js.map +1 -1
  298. package/PostProcesses/convolutionPostProcess.d.ts +2 -2
  299. package/PostProcesses/convolutionPostProcess.js.map +1 -1
  300. package/PostProcesses/depthOfFieldBlurPostProcess.d.ts +2 -2
  301. package/PostProcesses/depthOfFieldBlurPostProcess.js.map +1 -1
  302. package/PostProcesses/depthOfFieldEffect.js +1 -1
  303. package/PostProcesses/depthOfFieldEffect.js.map +1 -1
  304. package/PostProcesses/depthOfFieldMergePostProcess.d.ts +2 -2
  305. package/PostProcesses/depthOfFieldMergePostProcess.js.map +1 -1
  306. package/PostProcesses/displayPassPostProcess.d.ts +2 -2
  307. package/PostProcesses/displayPassPostProcess.js.map +1 -1
  308. package/PostProcesses/extractHighlightsPostProcess.d.ts +2 -2
  309. package/PostProcesses/extractHighlightsPostProcess.js.map +1 -1
  310. package/PostProcesses/filterPostProcess.d.ts +2 -2
  311. package/PostProcesses/filterPostProcess.js.map +1 -1
  312. package/PostProcesses/fxaaPostProcess.d.ts +2 -2
  313. package/PostProcesses/fxaaPostProcess.js +2 -2
  314. package/PostProcesses/fxaaPostProcess.js.map +1 -1
  315. package/PostProcesses/grainPostProcess.d.ts +2 -2
  316. package/PostProcesses/grainPostProcess.js.map +1 -1
  317. package/PostProcesses/imageProcessingPostProcess.d.ts +2 -2
  318. package/PostProcesses/imageProcessingPostProcess.js.map +1 -1
  319. package/PostProcesses/motionBlurPostProcess.d.ts +2 -2
  320. package/PostProcesses/motionBlurPostProcess.js.map +1 -1
  321. package/PostProcesses/passPostProcess.d.ts +3 -3
  322. package/PostProcesses/passPostProcess.js +2 -2
  323. package/PostProcesses/passPostProcess.js.map +1 -1
  324. package/PostProcesses/postProcess.d.ts +4 -4
  325. package/PostProcesses/postProcess.js +3 -3
  326. package/PostProcesses/postProcess.js.map +1 -1
  327. package/PostProcesses/refractionPostProcess.d.ts +2 -2
  328. package/PostProcesses/refractionPostProcess.js.map +1 -1
  329. package/PostProcesses/screenSpaceCurvaturePostProcess.d.ts +2 -2
  330. package/PostProcesses/screenSpaceCurvaturePostProcess.js.map +1 -1
  331. package/PostProcesses/screenSpaceReflectionPostProcess.d.ts +2 -2
  332. package/PostProcesses/screenSpaceReflectionPostProcess.js.map +1 -1
  333. package/PostProcesses/sharpenPostProcess.d.ts +2 -2
  334. package/PostProcesses/sharpenPostProcess.js.map +1 -1
  335. package/PostProcesses/subSurfaceScatteringPostProcess.d.ts +2 -2
  336. package/PostProcesses/subSurfaceScatteringPostProcess.js.map +1 -1
  337. package/PostProcesses/volumetricLightScatteringPostProcess.d.ts +2 -2
  338. package/PostProcesses/volumetricLightScatteringPostProcess.js.map +1 -1
  339. package/Rendering/GlobalIllumination/giRSMManager.js.map +1 -1
  340. package/Rendering/depthPeelingRenderer.js.map +1 -1
  341. package/Rendering/fluidRenderer/fluidRenderer.js.map +1 -1
  342. package/Rendering/fluidRenderer/fluidRenderingDepthTextureCopy.d.ts +2 -2
  343. package/Rendering/fluidRenderer/fluidRenderingDepthTextureCopy.js.map +1 -1
  344. package/Rendering/fluidRenderer/fluidRenderingObject.d.ts +2 -2
  345. package/Rendering/fluidRenderer/fluidRenderingObject.js.map +1 -1
  346. package/Rendering/fluidRenderer/fluidRenderingTargetRenderer.d.ts +2 -2
  347. package/Rendering/fluidRenderer/fluidRenderingTargetRenderer.js.map +1 -1
  348. package/Rendering/fluidRenderer/fluidRenderingTextures.d.ts +2 -2
  349. package/Rendering/fluidRenderer/fluidRenderingTextures.js.map +1 -1
  350. package/Rendering/geometryBufferRenderer.js +24 -18
  351. package/Rendering/geometryBufferRenderer.js.map +1 -1
  352. package/Rendering/outlineRenderer.js.map +1 -1
  353. package/Rendering/prePassRenderer.js.map +1 -1
  354. package/Sprites/spriteRenderer.d.ts +2 -2
  355. package/Sprites/spriteRenderer.js.map +1 -1
  356. package/XR/features/WebXRDepthSensing.js.map +1 -1
  357. package/XR/features/WebXRImageTracking.js.map +1 -1
  358. package/XR/features/WebXRLayers.d.ts +2 -2
  359. package/XR/features/WebXRLayers.js.map +1 -1
  360. package/XR/features/WebXRLightEstimation.js.map +1 -1
  361. package/XR/features/WebXRRawCameraAccess.d.ts +1 -1
  362. package/XR/features/WebXRRawCameraAccess.js.map +1 -1
  363. package/XR/features/WebXRSpaceWarp.js +1 -3
  364. package/XR/features/WebXRSpaceWarp.js.map +1 -1
  365. package/XR/features/WebXRWalkingLocomotion.js.map +1 -1
  366. package/XR/webXRExperienceHelper.js.map +1 -1
  367. package/XR/webXRManagedOutputCanvas.d.ts +2 -2
  368. package/XR/webXRManagedOutputCanvas.js.map +1 -1
  369. package/XR/webXRRenderTargetTextureProvider.js.map +1 -1
  370. package/XR/webXRSessionManager.js.map +1 -1
  371. package/assetContainer.js.map +1 -1
  372. package/node.d.ts +2 -2
  373. package/node.js.map +1 -1
  374. package/package.json +1 -1
  375. package/scene.d.ts +3 -3
  376. package/scene.js.map +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"particleSystemComponent.js","sourceRoot":"","sources":["../../../../dev/core/src/Particles/particleSystemComponent.ts"],"names":[],"mappings":"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","sourcesContent":["import { Mesh } from \"../Meshes/mesh\";\r\nimport type { IParticleSystem } from \"./IParticleSystem\";\r\nimport { GPUParticleSystem } from \"./gpuParticleSystem\";\r\nimport { AbstractScene } from \"../abstractScene\";\r\nimport type { Effect } from \"../Materials/effect\";\r\nimport { Engine } from \"../Engines/engine\";\r\nimport { ParticleSystem } from \"./particleSystem\";\r\nimport type { Scene } from \"../scene\";\r\nimport { SceneComponentConstants } from \"../sceneComponent\";\r\nimport type { AssetContainer } from \"../assetContainer\";\r\n\r\nimport \"../Shaders/particles.vertex\";\r\nimport type { EffectFallbacks } from \"../Materials/effectFallbacks\";\r\n\r\n// Adds the parsers to the scene parsers.\r\nAbstractScene.AddParser(SceneComponentConstants.NAME_PARTICLESYSTEM, (parsedData: any, scene: Scene, container: AssetContainer, rootUrl: string) => {\r\n const individualParser = AbstractScene.GetIndividualParser(SceneComponentConstants.NAME_PARTICLESYSTEM);\r\n\r\n if (!individualParser) {\r\n return;\r\n }\r\n\r\n // Particles Systems\r\n if (parsedData.particleSystems !== undefined && parsedData.particleSystems !== null) {\r\n for (let index = 0, cache = parsedData.particleSystems.length; index < cache; index++) {\r\n const parsedParticleSystem = parsedData.particleSystems[index];\r\n container.particleSystems.push(individualParser(parsedParticleSystem, scene, rootUrl));\r\n }\r\n }\r\n});\r\n\r\nAbstractScene.AddIndividualParser(SceneComponentConstants.NAME_PARTICLESYSTEM, (parsedParticleSystem: any, scene: Scene, rootUrl: string) => {\r\n if (parsedParticleSystem.activeParticleCount) {\r\n const ps = GPUParticleSystem.Parse(parsedParticleSystem, scene, rootUrl);\r\n return ps;\r\n } else {\r\n const ps = ParticleSystem.Parse(parsedParticleSystem, scene, rootUrl);\r\n return ps;\r\n }\r\n});\r\n\r\ndeclare module \"../Engines/engine\" {\r\n export interface Engine {\r\n /**\r\n * Create an effect to use with particle systems.\r\n * Please note that some parameters like animation sheets or not being billboard are not supported in this configuration, except if you pass\r\n * the particle system for which you want to create a custom effect in the last parameter\r\n * @param fragmentName defines the base name of the effect (The name of file without .fragment.fx)\r\n * @param uniformsNames defines a list of attribute names\r\n * @param samplers defines an array of string used to represent textures\r\n * @param defines defines the string containing the defines to use to compile the shaders\r\n * @param fallbacks defines the list of potential fallbacks to use if shader compilation fails\r\n * @param onCompiled defines a function to call when the effect creation is successful\r\n * @param onError defines a function to call when the effect creation has failed\r\n * @param particleSystem the particle system you want to create the effect for\r\n * @returns the new Effect\r\n */\r\n createEffectForParticles(\r\n fragmentName: string,\r\n uniformsNames: string[],\r\n samplers: string[],\r\n defines: string,\r\n fallbacks?: EffectFallbacks,\r\n onCompiled?: (effect: Effect) => void,\r\n onError?: (effect: Effect, errors: string) => void,\r\n particleSystem?: IParticleSystem\r\n ): Effect;\r\n }\r\n}\r\n\r\nEngine.prototype.createEffectForParticles = function (\r\n fragmentName: string,\r\n uniformsNames: string[] = [],\r\n samplers: string[] = [],\r\n defines = \"\",\r\n fallbacks?: EffectFallbacks,\r\n onCompiled?: (effect: Effect) => void,\r\n onError?: (effect: Effect, errors: string) => void,\r\n particleSystem?: IParticleSystem\r\n): Effect {\r\n let attributesNamesOrOptions: Array<string> = [];\r\n let effectCreationOption: Array<string> = [];\r\n const allSamplers: Array<string> = [];\r\n\r\n if (particleSystem) {\r\n particleSystem.fillUniformsAttributesAndSamplerNames(effectCreationOption, attributesNamesOrOptions, allSamplers);\r\n } else {\r\n attributesNamesOrOptions = ParticleSystem._GetAttributeNamesOrOptions();\r\n effectCreationOption = ParticleSystem._GetEffectCreationOptions();\r\n }\r\n\r\n if (defines.indexOf(\" BILLBOARD\") === -1) {\r\n defines += \"\\n#define BILLBOARD\\n\";\r\n }\r\n\r\n if (particleSystem?.isAnimationSheetEnabled) {\r\n if (defines.indexOf(\" ANIMATESHEET\") === -1) {\r\n defines += \"\\n#define ANIMATESHEET\\n\";\r\n }\r\n }\r\n\r\n if (samplers.indexOf(\"diffuseSampler\") === -1) {\r\n samplers.push(\"diffuseSampler\");\r\n }\r\n\r\n return this.createEffect(\r\n {\r\n vertex: particleSystem?.vertexShaderName ?? \"particles\",\r\n fragmentElement: fragmentName,\r\n },\r\n attributesNamesOrOptions,\r\n effectCreationOption.concat(uniformsNames),\r\n allSamplers.concat(samplers),\r\n defines,\r\n fallbacks,\r\n onCompiled,\r\n onError\r\n );\r\n};\r\n\r\ndeclare module \"../Meshes/mesh\" {\r\n export interface Mesh {\r\n /**\r\n * Returns an array populated with IParticleSystem objects whose the mesh is the emitter\r\n * @returns an array of IParticleSystem\r\n */\r\n getEmittedParticleSystems(): IParticleSystem[];\r\n\r\n /**\r\n * Returns an array populated with IParticleSystem objects whose the mesh or its children are the emitter\r\n * @returns an array of IParticleSystem\r\n */\r\n getHierarchyEmittedParticleSystems(): IParticleSystem[];\r\n }\r\n}\r\n\r\nMesh.prototype.getEmittedParticleSystems = function (): IParticleSystem[] {\r\n const results: IParticleSystem[] = [];\r\n for (let index = 0; index < this.getScene().particleSystems.length; index++) {\r\n const particleSystem = this.getScene().particleSystems[index];\r\n if (particleSystem.emitter === this) {\r\n results.push(particleSystem);\r\n }\r\n }\r\n return results;\r\n};\r\n\r\nMesh.prototype.getHierarchyEmittedParticleSystems = function (): IParticleSystem[] {\r\n const results: IParticleSystem[] = [];\r\n const descendants = this.getDescendants();\r\n descendants.push(this);\r\n\r\n for (let index = 0; index < this.getScene().particleSystems.length; index++) {\r\n const particleSystem = this.getScene().particleSystems[index];\r\n const emitter: any = particleSystem.emitter;\r\n\r\n if (emitter.position && descendants.indexOf(emitter) !== -1) {\r\n results.push(particleSystem);\r\n }\r\n }\r\n\r\n return results;\r\n};\r\n"]}
1
+ {"version":3,"file":"particleSystemComponent.js","sourceRoot":"","sources":["../../../../dev/core/src/Particles/particleSystemComponent.ts"],"names":[],"mappings":"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","sourcesContent":["import { Mesh } from \"../Meshes/mesh\";\r\nimport type { IParticleSystem } from \"./IParticleSystem\";\r\nimport { GPUParticleSystem } from \"./gpuParticleSystem\";\r\nimport { AbstractScene } from \"../abstractScene\";\r\nimport type { Effect } from \"../Materials/effect\";\r\nimport { ParticleSystem } from \"./particleSystem\";\r\nimport type { Scene } from \"../scene\";\r\nimport { SceneComponentConstants } from \"../sceneComponent\";\r\nimport type { AssetContainer } from \"../assetContainer\";\r\nimport \"../Shaders/particles.vertex\";\r\nimport type { EffectFallbacks } from \"../Materials/effectFallbacks\";\r\nimport { AbstractEngine } from \"../Engines/abstractEngine\";\r\n\r\n// Adds the parsers to the scene parsers.\r\nAbstractScene.AddParser(SceneComponentConstants.NAME_PARTICLESYSTEM, (parsedData: any, scene: Scene, container: AssetContainer, rootUrl: string) => {\r\n const individualParser = AbstractScene.GetIndividualParser(SceneComponentConstants.NAME_PARTICLESYSTEM);\r\n\r\n if (!individualParser) {\r\n return;\r\n }\r\n\r\n // Particles Systems\r\n if (parsedData.particleSystems !== undefined && parsedData.particleSystems !== null) {\r\n for (let index = 0, cache = parsedData.particleSystems.length; index < cache; index++) {\r\n const parsedParticleSystem = parsedData.particleSystems[index];\r\n container.particleSystems.push(individualParser(parsedParticleSystem, scene, rootUrl));\r\n }\r\n }\r\n});\r\n\r\nAbstractScene.AddIndividualParser(SceneComponentConstants.NAME_PARTICLESYSTEM, (parsedParticleSystem: any, scene: Scene, rootUrl: string) => {\r\n if (parsedParticleSystem.activeParticleCount) {\r\n const ps = GPUParticleSystem.Parse(parsedParticleSystem, scene, rootUrl);\r\n return ps;\r\n } else {\r\n const ps = ParticleSystem.Parse(parsedParticleSystem, scene, rootUrl);\r\n return ps;\r\n }\r\n});\r\n\r\ndeclare module \"../Engines/abstractEngine\" {\r\n export interface AbstractEngine {\r\n /**\r\n * Create an effect to use with particle systems.\r\n * Please note that some parameters like animation sheets or not being billboard are not supported in this configuration, except if you pass\r\n * the particle system for which you want to create a custom effect in the last parameter\r\n * @param fragmentName defines the base name of the effect (The name of file without .fragment.fx)\r\n * @param uniformsNames defines a list of attribute names\r\n * @param samplers defines an array of string used to represent textures\r\n * @param defines defines the string containing the defines to use to compile the shaders\r\n * @param fallbacks defines the list of potential fallbacks to use if shader compilation fails\r\n * @param onCompiled defines a function to call when the effect creation is successful\r\n * @param onError defines a function to call when the effect creation has failed\r\n * @param particleSystem the particle system you want to create the effect for\r\n * @returns the new Effect\r\n */\r\n createEffectForParticles(\r\n fragmentName: string,\r\n uniformsNames: string[],\r\n samplers: string[],\r\n defines: string,\r\n fallbacks?: EffectFallbacks,\r\n onCompiled?: (effect: Effect) => void,\r\n onError?: (effect: Effect, errors: string) => void,\r\n particleSystem?: IParticleSystem\r\n ): Effect;\r\n }\r\n}\r\n\r\nAbstractEngine.prototype.createEffectForParticles = function (\r\n fragmentName: string,\r\n uniformsNames: string[] = [],\r\n samplers: string[] = [],\r\n defines = \"\",\r\n fallbacks?: EffectFallbacks,\r\n onCompiled?: (effect: Effect) => void,\r\n onError?: (effect: Effect, errors: string) => void,\r\n particleSystem?: IParticleSystem\r\n): Effect {\r\n let attributesNamesOrOptions: Array<string> = [];\r\n let effectCreationOption: Array<string> = [];\r\n const allSamplers: Array<string> = [];\r\n\r\n if (particleSystem) {\r\n particleSystem.fillUniformsAttributesAndSamplerNames(effectCreationOption, attributesNamesOrOptions, allSamplers);\r\n } else {\r\n attributesNamesOrOptions = ParticleSystem._GetAttributeNamesOrOptions();\r\n effectCreationOption = ParticleSystem._GetEffectCreationOptions();\r\n }\r\n\r\n if (defines.indexOf(\" BILLBOARD\") === -1) {\r\n defines += \"\\n#define BILLBOARD\\n\";\r\n }\r\n\r\n if (particleSystem?.isAnimationSheetEnabled) {\r\n if (defines.indexOf(\" ANIMATESHEET\") === -1) {\r\n defines += \"\\n#define ANIMATESHEET\\n\";\r\n }\r\n }\r\n\r\n if (samplers.indexOf(\"diffuseSampler\") === -1) {\r\n samplers.push(\"diffuseSampler\");\r\n }\r\n\r\n return this.createEffect(\r\n {\r\n vertex: particleSystem?.vertexShaderName ?? \"particles\",\r\n fragmentElement: fragmentName,\r\n },\r\n attributesNamesOrOptions,\r\n effectCreationOption.concat(uniformsNames),\r\n allSamplers.concat(samplers),\r\n defines,\r\n fallbacks,\r\n onCompiled,\r\n onError\r\n );\r\n};\r\n\r\ndeclare module \"../Meshes/mesh\" {\r\n export interface Mesh {\r\n /**\r\n * Returns an array populated with IParticleSystem objects whose the mesh is the emitter\r\n * @returns an array of IParticleSystem\r\n */\r\n getEmittedParticleSystems(): IParticleSystem[];\r\n\r\n /**\r\n * Returns an array populated with IParticleSystem objects whose the mesh or its children are the emitter\r\n * @returns an array of IParticleSystem\r\n */\r\n getHierarchyEmittedParticleSystems(): IParticleSystem[];\r\n }\r\n}\r\n\r\nMesh.prototype.getEmittedParticleSystems = function (): IParticleSystem[] {\r\n const results: IParticleSystem[] = [];\r\n for (let index = 0; index < this.getScene().particleSystems.length; index++) {\r\n const particleSystem = this.getScene().particleSystems[index];\r\n if (particleSystem.emitter === this) {\r\n results.push(particleSystem);\r\n }\r\n }\r\n return results;\r\n};\r\n\r\nMesh.prototype.getHierarchyEmittedParticleSystems = function (): IParticleSystem[] {\r\n const results: IParticleSystem[] = [];\r\n const descendants = this.getDescendants();\r\n descendants.push(this);\r\n\r\n for (let index = 0; index < this.getScene().particleSystems.length; index++) {\r\n const particleSystem = this.getScene().particleSystems[index];\r\n const emitter: any = particleSystem.emitter;\r\n\r\n if (emitter.position && descendants.indexOf(emitter) !== -1) {\r\n results.push(particleSystem);\r\n }\r\n }\r\n\r\n return results;\r\n};\r\n"]}
@@ -1,4 +1,4 @@
1
- import type { ThinEngine } from "../Engines/thinEngine";
1
+ import type { AbstractEngine } from "../Engines/abstractEngine";
2
2
  import type { Scene } from "../scene";
3
3
  import type { ParticleSystem } from "../Particles/particleSystem";
4
4
  /**
@@ -58,7 +58,7 @@ export declare class SubEmitter {
58
58
  /**
59
59
  * @internal
60
60
  */
61
- static _ParseParticleSystem(system: any, sceneOrEngine: Scene | ThinEngine, rootUrl: string, doNotStart?: boolean): ParticleSystem;
61
+ static _ParseParticleSystem(system: any, sceneOrEngine: Scene | AbstractEngine, rootUrl: string, doNotStart?: boolean): ParticleSystem;
62
62
  /**
63
63
  * Creates a new SubEmitter from a serialized JSON version
64
64
  * @param serializationObject defines the JSON object to read from
@@ -66,7 +66,7 @@ export declare class SubEmitter {
66
66
  * @param rootUrl defines the rootUrl for data loading
67
67
  * @returns a new SubEmitter
68
68
  */
69
- static Parse(serializationObject: any, sceneOrEngine: Scene | ThinEngine, rootUrl: string): SubEmitter;
69
+ static Parse(serializationObject: any, sceneOrEngine: Scene | AbstractEngine, rootUrl: string): SubEmitter;
70
70
  /** Release associated resources */
71
71
  dispose(): void;
72
72
  }
@@ -1 +1 @@
1
- {"version":3,"file":"subEmitter.js","sourceRoot":"","sources":["../../../../dev/core/src/Particles/subEmitter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAC/C,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAE/C,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAM7C;;GAEG;AACH,MAAM,CAAN,IAAY,cASX;AATD,WAAY,cAAc;IACtB;;OAEG;IACH,2DAAQ,CAAA;IACR;;OAEG;IACH,iDAAG,CAAA;AACP,CAAC,EATW,cAAc,KAAd,cAAc,QASzB;AAED;;GAEG;AACH,MAAM,OAAO,UAAU;IAenB;;;OAGG;IACH;IACI;;OAEG;IACI,cAA8B;QAA9B,mBAAc,GAAd,cAAc,CAAgB;QAtBzC;;WAEG;QACI,SAAI,GAAG,cAAc,CAAC,GAAG,CAAC;QACjC;;;WAGG;QACI,qBAAgB,GAAG,KAAK,CAAC;QAChC;;WAEG;QACI,4BAAuB,GAAG,CAAC,CAAC;QAY/B,6CAA6C;QAC7C,IAAI,CAAC,cAAc,CAAC,OAAO,IAAI,CAAgB,cAAc,CAAC,OAAQ,CAAC,OAAO,EAAE;YAC5E,MAAM,aAAa,GAAG,QAAQ,CAAC,sBAAsB,CAAC,CAAC;YACvD,cAAc,CAAC,OAAO,GAAG,IAAI,aAAa,CAAC,yBAAyB,EAAE,cAAc,CAAC,QAAQ,EAAE,CAAC,CAAC;YACjG,cAAc,CAAC,wBAAwB,GAAG,IAAI,CAAC;SAClD;IACL,CAAC;IACD;;;OAGG;IACI,KAAK;QACR,wBAAwB;QACxB,IAAI,OAAO,GAAG,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC;QAC1C,IAAI,CAAC,OAAO,EAAE;YACV,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;SAC3B;aAAM,IAAI,OAAO,YAAY,OAAO,EAAE;YACnC,OAAO,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC;SAC7B;aAAM,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE;YACtD,MAAM,aAAa,GAAG,QAAQ,CAAC,cAAc,CAAC,CAAC;YAC/C,OAAO,GAAG,IAAI,aAAa,CAAC,EAAE,EAAE,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;YACnD,OAAgB,CAAC,SAAS,GAAG,KAAK,CAAC;SACvC;QACD,MAAM,KAAK,GAAG,IAAI,UAAU,CAAC,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC;QAE3F,mBAAmB;QACnB,KAAK,CAAC,cAAc,CAAC,IAAI,IAAI,OAAO,CAAC;QACrC,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;QACvB,KAAK,CAAC,gBAAgB,GAAG,IAAI,CAAC,gBAAgB,CAAC;QAC/C,KAAK,CAAC,uBAAuB,GAAG,IAAI,CAAC,uBAAuB,CAAC;QAE7D,KAAK,CAAC,cAAc,CAAC,wBAAwB,GAAG,IAAI,CAAC;QACrD,KAAK,CAAC,cAAc,CAAC,aAAa,GAAG,IAAI,CAAC;QAC1C,OAAO,KAAK,CAAC;IACjB,CAAC;IAED;;;;OAIG;IACI,SAAS,CAAC,mBAA4B,KAAK;QAC9C,MAAM,mBAAmB,GAAQ,EAAE,CAAC;QAEpC,mBAAmB,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;QACrC,mBAAmB,CAAC,gBAAgB,GAAG,IAAI,CAAC,gBAAgB,CAAC;QAC7D,mBAAmB,CAAC,uBAAuB,GAAG,IAAI,CAAC,uBAAuB,CAAC;QAC3E,mBAAmB,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,gBAAgB,CAAC,CAAC;QAErF,OAAO,mBAAmB,CAAC;IAC/B,CAAC;IAED;;OAEG;IACH,6DAA6D;IACtD,MAAM,CAAC,oBAAoB,CAAC,MAAW,EAAE,aAAiC,EAAE,OAAe,EAAE,UAAU,GAAG,KAAK;QAClH,MAAM,WAAW,CAAC,eAAe,CAAC,CAAC;IACvC,CAAC;IAED;;;;;;OAMG;IACI,MAAM,CAAC,KAAK,CAAC,mBAAwB,EAAE,aAAiC,EAAE,OAAe;QAC5F,MAAM,MAAM,GAAG,mBAAmB,CAAC,cAAc,CAAC;QAClD,MAAM,UAAU,GAAG,IAAI,UAAU,CAAC,UAAU,CAAC,oBAAoB,CAAC,MAAM,EAAE,aAAa,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC;QACzG,UAAU,CAAC,IAAI,GAAG,mBAAmB,CAAC,IAAI,CAAC;QAC3C,UAAU,CAAC,gBAAgB,GAAG,mBAAmB,CAAC,gBAAgB,CAAC;QACnE,UAAU,CAAC,uBAAuB,GAAG,mBAAmB,CAAC,uBAAuB,CAAC;QACjF,UAAU,CAAC,cAAc,CAAC,aAAa,GAAG,IAAI,CAAC;QAE/C,OAAO,UAAU,CAAC;IACtB,CAAC;IAED,mCAAmC;IAC5B,OAAO;QACV,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,CAAC;IAClC,CAAC;CACJ","sourcesContent":["import { Vector3 } from \"../Maths/math.vector\";\r\nimport { _WarnImport } from \"../Misc/devTools\";\r\nimport type { ThinEngine } from \"../Engines/thinEngine\";\r\nimport { GetClass } from \"../Misc/typeStore\";\r\n\r\nimport type { Scene } from \"../scene\";\r\nimport type { AbstractMesh } from \"../Meshes/abstractMesh\";\r\nimport type { ParticleSystem } from \"../Particles/particleSystem\";\r\n\r\n/**\r\n * Type of sub emitter\r\n */\r\nexport enum SubEmitterType {\r\n /**\r\n * Attached to the particle over it's lifetime\r\n */\r\n ATTACHED,\r\n /**\r\n * Created when the particle dies\r\n */\r\n END,\r\n}\r\n\r\n/**\r\n * Sub emitter class used to emit particles from an existing particle\r\n */\r\nexport class SubEmitter {\r\n /**\r\n * Type of the submitter (Default: END)\r\n */\r\n public type = SubEmitterType.END;\r\n /**\r\n * If the particle should inherit the direction from the particle it's attached to. (+Y will face the direction the particle is moving) (Default: false)\r\n * Note: This only is supported when using an emitter of type Mesh\r\n */\r\n public inheritDirection = false;\r\n /**\r\n * How much of the attached particles speed should be added to the sub emitted particle (default: 0)\r\n */\r\n public inheritedVelocityAmount = 0;\r\n\r\n /**\r\n * Creates a sub emitter\r\n * @param particleSystem the particle system to be used by the sub emitter\r\n */\r\n constructor(\r\n /**\r\n * the particle system to be used by the sub emitter\r\n */\r\n public particleSystem: ParticleSystem\r\n ) {\r\n // Create mesh as emitter to support rotation\r\n if (!particleSystem.emitter || !(<AbstractMesh>particleSystem.emitter).dispose) {\r\n const internalClass = GetClass(\"BABYLON.AbstractMesh\");\r\n particleSystem.emitter = new internalClass(\"SubemitterSystemEmitter\", particleSystem.getScene());\r\n particleSystem._disposeEmitterOnDispose = true;\r\n }\r\n }\r\n /**\r\n * Clones the sub emitter\r\n * @returns the cloned sub emitter\r\n */\r\n public clone(): SubEmitter {\r\n // Clone particle system\r\n let emitter = this.particleSystem.emitter;\r\n if (!emitter) {\r\n emitter = new Vector3();\r\n } else if (emitter instanceof Vector3) {\r\n emitter = emitter.clone();\r\n } else if (emitter.getClassName().indexOf(\"Mesh\") !== -1) {\r\n const internalClass = GetClass(\"BABYLON.Mesh\");\r\n emitter = new internalClass(\"\", emitter.getScene());\r\n (emitter! as any).isVisible = false;\r\n }\r\n const clone = new SubEmitter(this.particleSystem.clone(this.particleSystem.name, emitter));\r\n\r\n // Clone properties\r\n clone.particleSystem.name += \"Clone\";\r\n clone.type = this.type;\r\n clone.inheritDirection = this.inheritDirection;\r\n clone.inheritedVelocityAmount = this.inheritedVelocityAmount;\r\n\r\n clone.particleSystem._disposeEmitterOnDispose = true;\r\n clone.particleSystem.disposeOnStop = true;\r\n return clone;\r\n }\r\n\r\n /**\r\n * Serialize current object to a JSON object\r\n * @param serializeTexture defines if the texture must be serialized as well\r\n * @returns the serialized object\r\n */\r\n public serialize(serializeTexture: boolean = false): any {\r\n const serializationObject: any = {};\r\n\r\n serializationObject.type = this.type;\r\n serializationObject.inheritDirection = this.inheritDirection;\r\n serializationObject.inheritedVelocityAmount = this.inheritedVelocityAmount;\r\n serializationObject.particleSystem = this.particleSystem.serialize(serializeTexture);\r\n\r\n return serializationObject;\r\n }\r\n\r\n /**\r\n * @internal\r\n */\r\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\r\n public static _ParseParticleSystem(system: any, sceneOrEngine: Scene | ThinEngine, rootUrl: string, doNotStart = false): ParticleSystem {\r\n throw _WarnImport(\"ParseParticle\");\r\n }\r\n\r\n /**\r\n * Creates a new SubEmitter from a serialized JSON version\r\n * @param serializationObject defines the JSON object to read from\r\n * @param sceneOrEngine defines the hosting scene or the hosting engine\r\n * @param rootUrl defines the rootUrl for data loading\r\n * @returns a new SubEmitter\r\n */\r\n public static Parse(serializationObject: any, sceneOrEngine: Scene | ThinEngine, rootUrl: string): SubEmitter {\r\n const system = serializationObject.particleSystem;\r\n const subEmitter = new SubEmitter(SubEmitter._ParseParticleSystem(system, sceneOrEngine, rootUrl, true));\r\n subEmitter.type = serializationObject.type;\r\n subEmitter.inheritDirection = serializationObject.inheritDirection;\r\n subEmitter.inheritedVelocityAmount = serializationObject.inheritedVelocityAmount;\r\n subEmitter.particleSystem._isSubEmitter = true;\r\n\r\n return subEmitter;\r\n }\r\n\r\n /** Release associated resources */\r\n public dispose() {\r\n this.particleSystem.dispose();\r\n }\r\n}\r\n"]}
1
+ {"version":3,"file":"subEmitter.js","sourceRoot":"","sources":["../../../../dev/core/src/Particles/subEmitter.ts"],"names":[],"mappings":"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","sourcesContent":["import { Vector3 } from \"../Maths/math.vector\";\r\nimport { _WarnImport } from \"../Misc/devTools\";\r\nimport type { AbstractEngine } from \"../Engines/abstractEngine\";\r\nimport { GetClass } from \"../Misc/typeStore\";\r\n\r\nimport type { Scene } from \"../scene\";\r\nimport type { AbstractMesh } from \"../Meshes/abstractMesh\";\r\nimport type { ParticleSystem } from \"../Particles/particleSystem\";\r\n\r\n/**\r\n * Type of sub emitter\r\n */\r\nexport enum SubEmitterType {\r\n /**\r\n * Attached to the particle over it's lifetime\r\n */\r\n ATTACHED,\r\n /**\r\n * Created when the particle dies\r\n */\r\n END,\r\n}\r\n\r\n/**\r\n * Sub emitter class used to emit particles from an existing particle\r\n */\r\nexport class SubEmitter {\r\n /**\r\n * Type of the submitter (Default: END)\r\n */\r\n public type = SubEmitterType.END;\r\n /**\r\n * If the particle should inherit the direction from the particle it's attached to. (+Y will face the direction the particle is moving) (Default: false)\r\n * Note: This only is supported when using an emitter of type Mesh\r\n */\r\n public inheritDirection = false;\r\n /**\r\n * How much of the attached particles speed should be added to the sub emitted particle (default: 0)\r\n */\r\n public inheritedVelocityAmount = 0;\r\n\r\n /**\r\n * Creates a sub emitter\r\n * @param particleSystem the particle system to be used by the sub emitter\r\n */\r\n constructor(\r\n /**\r\n * the particle system to be used by the sub emitter\r\n */\r\n public particleSystem: ParticleSystem\r\n ) {\r\n // Create mesh as emitter to support rotation\r\n if (!particleSystem.emitter || !(<AbstractMesh>particleSystem.emitter).dispose) {\r\n const internalClass = GetClass(\"BABYLON.AbstractMesh\");\r\n particleSystem.emitter = new internalClass(\"SubemitterSystemEmitter\", particleSystem.getScene());\r\n particleSystem._disposeEmitterOnDispose = true;\r\n }\r\n }\r\n /**\r\n * Clones the sub emitter\r\n * @returns the cloned sub emitter\r\n */\r\n public clone(): SubEmitter {\r\n // Clone particle system\r\n let emitter = this.particleSystem.emitter;\r\n if (!emitter) {\r\n emitter = new Vector3();\r\n } else if (emitter instanceof Vector3) {\r\n emitter = emitter.clone();\r\n } else if (emitter.getClassName().indexOf(\"Mesh\") !== -1) {\r\n const internalClass = GetClass(\"BABYLON.Mesh\");\r\n emitter = new internalClass(\"\", emitter.getScene());\r\n (emitter! as any).isVisible = false;\r\n }\r\n const clone = new SubEmitter(this.particleSystem.clone(this.particleSystem.name, emitter));\r\n\r\n // Clone properties\r\n clone.particleSystem.name += \"Clone\";\r\n clone.type = this.type;\r\n clone.inheritDirection = this.inheritDirection;\r\n clone.inheritedVelocityAmount = this.inheritedVelocityAmount;\r\n\r\n clone.particleSystem._disposeEmitterOnDispose = true;\r\n clone.particleSystem.disposeOnStop = true;\r\n return clone;\r\n }\r\n\r\n /**\r\n * Serialize current object to a JSON object\r\n * @param serializeTexture defines if the texture must be serialized as well\r\n * @returns the serialized object\r\n */\r\n public serialize(serializeTexture: boolean = false): any {\r\n const serializationObject: any = {};\r\n\r\n serializationObject.type = this.type;\r\n serializationObject.inheritDirection = this.inheritDirection;\r\n serializationObject.inheritedVelocityAmount = this.inheritedVelocityAmount;\r\n serializationObject.particleSystem = this.particleSystem.serialize(serializeTexture);\r\n\r\n return serializationObject;\r\n }\r\n\r\n /**\r\n * @internal\r\n */\r\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\r\n public static _ParseParticleSystem(system: any, sceneOrEngine: Scene | AbstractEngine, rootUrl: string, doNotStart = false): ParticleSystem {\r\n throw _WarnImport(\"ParseParticle\");\r\n }\r\n\r\n /**\r\n * Creates a new SubEmitter from a serialized JSON version\r\n * @param serializationObject defines the JSON object to read from\r\n * @param sceneOrEngine defines the hosting scene or the hosting engine\r\n * @param rootUrl defines the rootUrl for data loading\r\n * @returns a new SubEmitter\r\n */\r\n public static Parse(serializationObject: any, sceneOrEngine: Scene | AbstractEngine, rootUrl: string): SubEmitter {\r\n const system = serializationObject.particleSystem;\r\n const subEmitter = new SubEmitter(SubEmitter._ParseParticleSystem(system, sceneOrEngine, rootUrl, true));\r\n subEmitter.type = serializationObject.type;\r\n subEmitter.inheritDirection = serializationObject.inheritDirection;\r\n subEmitter.inheritedVelocityAmount = serializationObject.inheritedVelocityAmount;\r\n subEmitter.particleSystem._isSubEmitter = true;\r\n\r\n return subEmitter;\r\n }\r\n\r\n /** Release associated resources */\r\n public dispose() {\r\n this.particleSystem.dispose();\r\n }\r\n}\r\n"]}
@@ -14,7 +14,7 @@ import "../Shaders/particles.fragment";
14
14
  import "../Shaders/particles.vertex";
15
15
  import type { DataBuffer } from "../Buffers/dataBuffer";
16
16
  import { Color4, Color3 } from "../Maths/math.color";
17
- import type { ThinEngine } from "../Engines/thinEngine";
17
+ import type { AbstractEngine } from "../Engines/abstractEngine";
18
18
  import "../Engines/Extensions/engine.alpha";
19
19
  /**
20
20
  * This represents a thin particle system in Babylon.
@@ -183,7 +183,7 @@ export declare class ThinParticleSystem extends BaseParticleSystem implements ID
183
183
  * @param isAnimationSheetEnabled Must be true if using a spritesheet to animate the particles texture
184
184
  * @param epsilon Offset used to render the particles
185
185
  */
186
- constructor(name: string, capacity: number, sceneOrEngine: Scene | ThinEngine, customEffect?: Nullable<Effect>, isAnimationSheetEnabled?: boolean, epsilon?: number);
186
+ constructor(name: string, capacity: number, sceneOrEngine: Scene | AbstractEngine, customEffect?: Nullable<Effect>, isAnimationSheetEnabled?: boolean, epsilon?: number);
187
187
  /** @internal */
188
188
  _emitFromParticle: (particle: Particle) => void;
189
189
  serialize(serializeTexture: boolean): void;