@babylonjs/core 7.19.1 → 7.20.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (273) hide show
  1. package/Bones/bone.js +3 -3
  2. package/Bones/bone.js.map +1 -1
  3. package/Bones/boneLookController.js +3 -3
  4. package/Bones/boneLookController.js.map +1 -1
  5. package/Buffers/buffer.nonFloatVertexBuffers.js +1 -1
  6. package/Buffers/buffer.nonFloatVertexBuffers.js.map +1 -1
  7. package/Collisions/gpuPicker.d.ts +8 -2
  8. package/Collisions/gpuPicker.js +41 -20
  9. package/Collisions/gpuPicker.js.map +1 -1
  10. package/Compat/compatibilityOptions.d.ts +13 -6
  11. package/Compat/compatibilityOptions.js +20 -4
  12. package/Compat/compatibilityOptions.js.map +1 -1
  13. package/Compat/index.d.ts +1 -1
  14. package/Compat/index.js +1 -1
  15. package/Compat/index.js.map +1 -1
  16. package/Culling/boundingBox.js +5 -5
  17. package/Culling/boundingBox.js.map +1 -1
  18. package/Culling/boundingInfo.js +2 -2
  19. package/Culling/boundingInfo.js.map +1 -1
  20. package/Culling/boundingSphere.js +2 -2
  21. package/Culling/boundingSphere.js.map +1 -1
  22. package/Culling/ray.js +2 -2
  23. package/Culling/ray.js.map +1 -1
  24. package/Debug/debugLayer.d.ts +3 -0
  25. package/Debug/debugLayer.js +15 -0
  26. package/Debug/debugLayer.js.map +1 -1
  27. package/Engines/Processors/shaderProcessor.d.ts +1 -0
  28. package/Engines/Processors/shaderProcessor.js +1 -0
  29. package/Engines/Processors/shaderProcessor.js.map +1 -1
  30. package/Engines/WebGPU/Extensions/engine.rawTexture.js +1 -0
  31. package/Engines/WebGPU/Extensions/engine.rawTexture.js.map +1 -1
  32. package/Engines/WebGPU/webgpuShaderProcessingContext.d.ts +1 -1
  33. package/Engines/WebGPU/webgpuShaderProcessingContext.js +4 -2
  34. package/Engines/WebGPU/webgpuShaderProcessingContext.js.map +1 -1
  35. package/Engines/WebGPU/webgpuShaderProcessorsWGSL.d.ts +2 -1
  36. package/Engines/WebGPU/webgpuShaderProcessorsWGSL.js +12 -5
  37. package/Engines/WebGPU/webgpuShaderProcessorsWGSL.js.map +1 -1
  38. package/Engines/WebGPU/webgpuTextureManager.d.ts +1 -4
  39. package/Engines/WebGPU/webgpuTextureManager.js +90 -75
  40. package/Engines/WebGPU/webgpuTextureManager.js.map +1 -1
  41. package/Engines/abstractEngine.d.ts +2 -2
  42. package/Engines/abstractEngine.js +2 -2
  43. package/Engines/abstractEngine.js.map +1 -1
  44. package/Engines/engine.js +11 -2
  45. package/Engines/engine.js.map +1 -1
  46. package/Engines/nativeEngine.d.ts +1 -1
  47. package/Engines/nativeEngine.js +2 -1
  48. package/Engines/nativeEngine.js.map +1 -1
  49. package/Engines/thinEngine.d.ts +1 -1
  50. package/Engines/thinEngine.functions.d.ts +1 -1
  51. package/Engines/thinEngine.functions.js +2 -1
  52. package/Engines/thinEngine.functions.js.map +1 -1
  53. package/Engines/thinEngine.js +2 -2
  54. package/Engines/thinEngine.js.map +1 -1
  55. package/Engines/webgpuEngine.d.ts +9 -5
  56. package/Engines/webgpuEngine.js +35 -22
  57. package/Engines/webgpuEngine.js.map +1 -1
  58. package/FlowGraph/Blocks/Execution/ControlFlow/flowGraphDoNBlock.d.ts +2 -2
  59. package/FlowGraph/Blocks/Execution/ControlFlow/flowGraphDoNBlock.js +1 -1
  60. package/FlowGraph/Blocks/Execution/ControlFlow/flowGraphDoNBlock.js.map +1 -1
  61. package/Layers/effectLayer.d.ts +16 -1
  62. package/Layers/effectLayer.js +32 -2
  63. package/Layers/effectLayer.js.map +1 -1
  64. package/Layers/glowLayer.d.ts +1 -2
  65. package/Layers/glowLayer.js +16 -3
  66. package/Layers/glowLayer.js.map +1 -1
  67. package/Layers/highlightLayer.d.ts +5 -4
  68. package/Layers/highlightLayer.js +35 -11
  69. package/Layers/highlightLayer.js.map +1 -1
  70. package/Layers/index.d.ts +10 -0
  71. package/Layers/index.js +12 -0
  72. package/Layers/index.js.map +1 -1
  73. package/Lights/Shadows/index.d.ts +8 -0
  74. package/Lights/Shadows/index.js +9 -0
  75. package/Lights/Shadows/index.js.map +1 -1
  76. package/Lights/Shadows/shadowGenerator.d.ts +18 -5
  77. package/Lights/Shadows/shadowGenerator.js +44 -5
  78. package/Lights/Shadows/shadowGenerator.js.map +1 -1
  79. package/Loading/sceneLoader.d.ts +155 -16
  80. package/Loading/sceneLoader.js +197 -99
  81. package/Loading/sceneLoader.js.map +1 -1
  82. package/Materials/Node/nodeMaterial.js +8 -1
  83. package/Materials/Node/nodeMaterial.js.map +1 -1
  84. package/Materials/Node/nodeMaterialBuildState.js +1 -1
  85. package/Materials/Node/nodeMaterialBuildState.js.map +1 -1
  86. package/Materials/Textures/Loaders/hdrTextureLoader.js +3 -3
  87. package/Materials/Textures/Loaders/hdrTextureLoader.js.map +1 -1
  88. package/Materials/Textures/hdrCubeTexture.js +2 -2
  89. package/Materials/Textures/hdrCubeTexture.js.map +1 -1
  90. package/Materials/Textures/renderTargetTexture.js +2 -2
  91. package/Materials/Textures/renderTargetTexture.js.map +1 -1
  92. package/Materials/Textures/texture.js +3 -3
  93. package/Materials/Textures/texture.js.map +1 -1
  94. package/Materials/effect.functions.d.ts +1 -1
  95. package/Materials/effect.functions.js +6 -3
  96. package/Materials/effect.functions.js.map +1 -1
  97. package/Materials/effect.js +1 -1
  98. package/Materials/effect.js.map +1 -1
  99. package/Materials/standardMaterial.d.ts +1 -1
  100. package/Materials/standardMaterial.js +1 -1
  101. package/Materials/standardMaterial.js.map +1 -1
  102. package/Maths/math.color.js +3 -3
  103. package/Maths/math.color.js.map +1 -1
  104. package/Maths/math.constants.d.ts +1 -2
  105. package/Maths/math.constants.js +1 -2
  106. package/Maths/math.constants.js.map +1 -1
  107. package/Maths/math.like.d.ts +9 -0
  108. package/Maths/math.like.js.map +1 -1
  109. package/Maths/math.vector.d.ts +23 -23
  110. package/Maths/math.vector.js +56 -25
  111. package/Maths/math.vector.js.map +1 -1
  112. package/Meshes/Builders/boxBuilder.js +5 -5
  113. package/Meshes/Builders/boxBuilder.js.map +1 -1
  114. package/Meshes/Builders/capsuleBuilder.js +4 -4
  115. package/Meshes/Builders/capsuleBuilder.js.map +1 -1
  116. package/Meshes/Builders/cylinderBuilder.js +8 -8
  117. package/Meshes/Builders/cylinderBuilder.js.map +1 -1
  118. package/Meshes/Builders/decalBuilder.js +3 -3
  119. package/Meshes/Builders/decalBuilder.js.map +1 -1
  120. package/Meshes/Builders/discBuilder.js +3 -3
  121. package/Meshes/Builders/discBuilder.js.map +1 -1
  122. package/Meshes/Builders/goldbergBuilder.js +2 -2
  123. package/Meshes/Builders/goldbergBuilder.js.map +1 -1
  124. package/Meshes/Builders/groundBuilder.js +2 -2
  125. package/Meshes/Builders/groundBuilder.js.map +1 -1
  126. package/Meshes/Builders/icoSphereBuilder.js +2 -2
  127. package/Meshes/Builders/icoSphereBuilder.js.map +1 -1
  128. package/Meshes/Builders/planeBuilder.js +5 -5
  129. package/Meshes/Builders/planeBuilder.js.map +1 -1
  130. package/Meshes/Builders/polygonBuilder.js +4 -4
  131. package/Meshes/Builders/polygonBuilder.js.map +1 -1
  132. package/Meshes/Builders/polyhedronBuilder.js +3 -3
  133. package/Meshes/Builders/polyhedronBuilder.js.map +1 -1
  134. package/Meshes/Builders/ribbonBuilder.js +4 -4
  135. package/Meshes/Builders/ribbonBuilder.js.map +1 -1
  136. package/Meshes/Builders/sphereBuilder.js +2 -2
  137. package/Meshes/Builders/sphereBuilder.js.map +1 -1
  138. package/Meshes/Builders/tiledBoxBuilder.js +2 -2
  139. package/Meshes/Builders/tiledBoxBuilder.js.map +1 -1
  140. package/Meshes/Builders/torusBuilder.js +2 -2
  141. package/Meshes/Builders/torusBuilder.js.map +1 -1
  142. package/Meshes/Builders/torusKnotBuilder.js +2 -2
  143. package/Meshes/Builders/torusKnotBuilder.js.map +1 -1
  144. package/Meshes/geometry.js +7 -7
  145. package/Meshes/geometry.js.map +1 -1
  146. package/Misc/HighDynamicRange/hdr.d.ts +40 -42
  147. package/Misc/HighDynamicRange/hdr.js +209 -202
  148. package/Misc/HighDynamicRange/hdr.js.map +1 -1
  149. package/Misc/HighDynamicRange/index.d.ts +1 -1
  150. package/Misc/HighDynamicRange/index.js +1 -1
  151. package/Misc/HighDynamicRange/index.js.map +1 -1
  152. package/Misc/arrayTools.d.ts +12 -17
  153. package/Misc/arrayTools.js +18 -23
  154. package/Misc/arrayTools.js.map +1 -1
  155. package/Misc/dumpTools.d.ts +50 -47
  156. package/Misc/dumpTools.js +153 -143
  157. package/Misc/dumpTools.js.map +1 -1
  158. package/Misc/environmentTextureTools.js +2 -2
  159. package/Misc/environmentTextureTools.js.map +1 -1
  160. package/Misc/equirectangularCapture.js +2 -2
  161. package/Misc/equirectangularCapture.js.map +1 -1
  162. package/Misc/index.d.ts +6 -1
  163. package/Misc/index.js +7 -1
  164. package/Misc/index.js.map +1 -1
  165. package/Misc/rgbdTextureTools.d.ts +1 -0
  166. package/Misc/rgbdTextureTools.js +16 -2
  167. package/Misc/rgbdTextureTools.js.map +1 -1
  168. package/Misc/screenshotTools.js +3 -3
  169. package/Misc/screenshotTools.js.map +1 -1
  170. package/Physics/v1/physicsImpostor.js +2 -2
  171. package/Physics/v1/physicsImpostor.js.map +1 -1
  172. package/Physics/v2/Plugins/havokPlugin.js +2 -2
  173. package/Physics/v2/Plugins/havokPlugin.js.map +1 -1
  174. package/PostProcesses/blurPostProcess.d.ts +6 -0
  175. package/PostProcesses/blurPostProcess.js +20 -2
  176. package/PostProcesses/blurPostProcess.js.map +1 -1
  177. package/PostProcesses/index.d.ts +8 -0
  178. package/PostProcesses/index.js +10 -0
  179. package/PostProcesses/index.js.map +1 -1
  180. package/PostProcesses/passPostProcess.d.ts +2 -0
  181. package/PostProcesses/passPostProcess.js +24 -2
  182. package/PostProcesses/passPostProcess.js.map +1 -1
  183. package/PostProcesses/postProcess.d.ts +17 -2
  184. package/PostProcesses/postProcess.js +38 -1
  185. package/PostProcesses/postProcess.js.map +1 -1
  186. package/Shaders/ShadersInclude/pbrDebug.js +1 -1
  187. package/Shaders/ShadersInclude/pbrDebug.js.map +1 -1
  188. package/ShadersWGSL/ShadersInclude/bayerDitherFunctions.d.ts +5 -0
  189. package/ShadersWGSL/ShadersInclude/bayerDitherFunctions.js +17 -0
  190. package/ShadersWGSL/ShadersInclude/bayerDitherFunctions.js.map +1 -0
  191. package/ShadersWGSL/ShadersInclude/imageProcessingFunctions.js +1 -1
  192. package/ShadersWGSL/ShadersInclude/imageProcessingFunctions.js.map +1 -1
  193. package/ShadersWGSL/ShadersInclude/kernelBlurFragment.d.ts +5 -0
  194. package/ShadersWGSL/ShadersInclude/kernelBlurFragment.js +20 -0
  195. package/ShadersWGSL/ShadersInclude/kernelBlurFragment.js.map +1 -0
  196. package/ShadersWGSL/ShadersInclude/kernelBlurFragment2.d.ts +5 -0
  197. package/ShadersWGSL/ShadersInclude/kernelBlurFragment2.js +19 -0
  198. package/ShadersWGSL/ShadersInclude/kernelBlurFragment2.js.map +1 -0
  199. package/ShadersWGSL/ShadersInclude/kernelBlurVaryingDeclaration.d.ts +5 -0
  200. package/ShadersWGSL/ShadersInclude/kernelBlurVaryingDeclaration.js +9 -0
  201. package/ShadersWGSL/ShadersInclude/kernelBlurVaryingDeclaration.js.map +1 -0
  202. package/ShadersWGSL/ShadersInclude/kernelBlurVertex.d.ts +5 -0
  203. package/ShadersWGSL/ShadersInclude/kernelBlurVertex.js +9 -0
  204. package/ShadersWGSL/ShadersInclude/kernelBlurVertex.js.map +1 -0
  205. package/ShadersWGSL/ShadersInclude/morphTargetsVertex.js +4 -4
  206. package/ShadersWGSL/ShadersInclude/morphTargetsVertex.js.map +1 -1
  207. package/ShadersWGSL/ShadersInclude/pbrBRDFFunctions.js +1 -1
  208. package/ShadersWGSL/ShadersInclude/pbrBRDFFunctions.js.map +1 -1
  209. package/ShadersWGSL/ShadersInclude/pbrDebug.js +1 -1
  210. package/ShadersWGSL/ShadersInclude/pbrDebug.js.map +1 -1
  211. package/ShadersWGSL/ShadersInclude/shadowMapFragment.js +5 -5
  212. package/ShadersWGSL/ShadersInclude/shadowMapFragment.js.map +1 -1
  213. package/ShadersWGSL/ShadersInclude/shadowMapFragmentExtraDeclaration.d.ts +7 -0
  214. package/ShadersWGSL/ShadersInclude/shadowMapFragmentExtraDeclaration.js +26 -0
  215. package/ShadersWGSL/ShadersInclude/shadowMapFragmentExtraDeclaration.js.map +1 -0
  216. package/ShadersWGSL/ShadersInclude/shadowMapFragmentSoftTransparentShadow.d.ts +5 -0
  217. package/ShadersWGSL/ShadersInclude/shadowMapFragmentSoftTransparentShadow.js +12 -0
  218. package/ShadersWGSL/ShadersInclude/shadowMapFragmentSoftTransparentShadow.js.map +1 -0
  219. package/ShadersWGSL/ShadersInclude/shadowMapVertexExtraDeclaration.d.ts +5 -0
  220. package/ShadersWGSL/ShadersInclude/shadowMapVertexExtraDeclaration.js +19 -0
  221. package/ShadersWGSL/ShadersInclude/shadowMapVertexExtraDeclaration.js.map +1 -0
  222. package/ShadersWGSL/ShadersInclude/shadowMapVertexMetric.js +4 -4
  223. package/ShadersWGSL/ShadersInclude/shadowMapVertexMetric.js.map +1 -1
  224. package/ShadersWGSL/ShadersInclude/shadowMapVertexNormalBias.d.ts +5 -0
  225. package/ShadersWGSL/ShadersInclude/shadowMapVertexNormalBias.js +17 -0
  226. package/ShadersWGSL/ShadersInclude/shadowMapVertexNormalBias.js.map +1 -0
  227. package/ShadersWGSL/background.fragment.js +1 -1
  228. package/ShadersWGSL/background.fragment.js.map +1 -1
  229. package/ShadersWGSL/default.fragment.js +2 -2
  230. package/ShadersWGSL/default.fragment.js.map +1 -1
  231. package/ShadersWGSL/depthBoxBlur.fragment.d.ts +5 -0
  232. package/ShadersWGSL/depthBoxBlur.fragment.js +14 -0
  233. package/ShadersWGSL/depthBoxBlur.fragment.js.map +1 -0
  234. package/ShadersWGSL/glowBlurPostProcess.fragment.d.ts +5 -0
  235. package/ShadersWGSL/glowBlurPostProcess.fragment.js +15 -0
  236. package/ShadersWGSL/glowBlurPostProcess.fragment.js.map +1 -0
  237. package/ShadersWGSL/glowMapGeneration.fragment.d.ts +8 -0
  238. package/ShadersWGSL/glowMapGeneration.fragment.js +74 -0
  239. package/ShadersWGSL/glowMapGeneration.fragment.js.map +1 -0
  240. package/ShadersWGSL/glowMapGeneration.vertex.d.ts +17 -0
  241. package/ShadersWGSL/glowMapGeneration.vertex.js +92 -0
  242. package/ShadersWGSL/glowMapGeneration.vertex.js.map +1 -0
  243. package/ShadersWGSL/glowMapMerge.fragment.d.ts +5 -0
  244. package/ShadersWGSL/glowMapMerge.fragment.js +32 -0
  245. package/ShadersWGSL/glowMapMerge.fragment.js.map +1 -0
  246. package/ShadersWGSL/glowMapMerge.vertex.d.ts +5 -0
  247. package/ShadersWGSL/glowMapMerge.vertex.js +16 -0
  248. package/ShadersWGSL/glowMapMerge.vertex.js.map +1 -0
  249. package/ShadersWGSL/kernelBlur.fragment.d.ts +9 -0
  250. package/ShadersWGSL/kernelBlur.fragment.js +48 -0
  251. package/ShadersWGSL/kernelBlur.fragment.js.map +1 -0
  252. package/ShadersWGSL/kernelBlur.vertex.d.ts +7 -0
  253. package/ShadersWGSL/kernelBlur.vertex.js +21 -0
  254. package/ShadersWGSL/kernelBlur.vertex.js.map +1 -0
  255. package/ShadersWGSL/pass.fragment.d.ts +5 -0
  256. package/ShadersWGSL/pass.fragment.js +12 -0
  257. package/ShadersWGSL/pass.fragment.js.map +1 -0
  258. package/ShadersWGSL/passCube.fragment.d.ts +5 -0
  259. package/ShadersWGSL/passCube.fragment.js +31 -0
  260. package/ShadersWGSL/passCube.fragment.js.map +1 -0
  261. package/ShadersWGSL/rgbdDecode.fragment.d.ts +6 -0
  262. package/ShadersWGSL/rgbdDecode.fragment.js +14 -0
  263. package/ShadersWGSL/rgbdDecode.fragment.js.map +1 -0
  264. package/ShadersWGSL/rgbdEncode.fragment.d.ts +6 -0
  265. package/ShadersWGSL/rgbdEncode.fragment.js +14 -0
  266. package/ShadersWGSL/rgbdEncode.fragment.js.map +1 -0
  267. package/ShadersWGSL/shadowMap.fragment.d.ts +9 -0
  268. package/ShadersWGSL/shadowMap.fragment.js +39 -0
  269. package/ShadersWGSL/shadowMap.fragment.js.map +1 -0
  270. package/ShadersWGSL/shadowMap.vertex.d.ts +22 -0
  271. package/ShadersWGSL/shadowMap.vertex.js +89 -0
  272. package/ShadersWGSL/shadowMap.vertex.js.map +1 -0
  273. package/package.json +1 -1
@@ -13,7 +13,7 @@ import type { TransformNode } from "../Meshes/transformNode";
13
13
  import type { Geometry } from "../Meshes/geometry";
14
14
  import type { Light } from "../Lights/light";
15
15
  import type { ISpriteManager } from "../Sprites/spriteManager";
16
- import type { AbstractEngine } from "../Engines/abstractEngine";
16
+ import { AbstractEngine } from "../Engines/abstractEngine";
17
17
  /**
18
18
  * Type used for the success callback of ImportMesh
19
19
  */
@@ -79,7 +79,7 @@ export interface ISceneLoaderPluginExtensions {
79
79
  /**
80
80
  * Defines the list of supported extensions
81
81
  */
82
- [extension: string]: {
82
+ readonly [extension: string]: {
83
83
  isBinary: boolean;
84
84
  };
85
85
  }
@@ -90,12 +90,13 @@ export interface ISceneLoaderPluginFactory {
90
90
  /**
91
91
  * Defines the name of the factory
92
92
  */
93
- name: string;
93
+ readonly name: string;
94
94
  /**
95
95
  * Function called to create a new plugin
96
+ * @param options plugin options that were passed to the SceneLoader operation
96
97
  * @returns the new plugin
97
98
  */
98
- createPlugin(): ISceneLoaderPlugin | ISceneLoaderPluginAsync;
99
+ createPlugin(options: SceneLoaderPluginOptions): ISceneLoaderPlugin | ISceneLoaderPluginAsync;
99
100
  /**
100
101
  * The callback that returns true if the data can be directly loaded.
101
102
  * @param data string containing the file data
@@ -110,11 +111,11 @@ export interface ISceneLoaderPluginBase {
110
111
  /**
111
112
  * The friendly name of this plugin.
112
113
  */
113
- name: string;
114
+ readonly name: string;
114
115
  /**
115
116
  * The file extensions supported by this plugin.
116
117
  */
117
- extensions: string | ISceneLoaderPluginExtensions;
118
+ readonly extensions: string | ISceneLoaderPluginExtensions;
118
119
  /**
119
120
  * The callback called when loading from a url.
120
121
  * @param scene scene loading this url
@@ -264,6 +265,91 @@ interface IRegisteredPlugin {
264
265
  */
265
266
  isBinary: boolean;
266
267
  }
268
+ /**
269
+ * Defines options for SceneLoader plugins. This interface is extended by specific plugins.
270
+ */
271
+ export interface SceneLoaderPluginOptions extends Record<string, Record<string, unknown> | undefined> {
272
+ }
273
+ /**
274
+ * Adds default/implicit options to plugin specific options.
275
+ */
276
+ type DefaultPluginOptions<BasePluginOptions> = {
277
+ /**
278
+ * Defines if the plugin is enabled
279
+ */
280
+ enabled?: boolean;
281
+ } & BasePluginOptions;
282
+ type SceneSource = string | File | ArrayBufferView;
283
+ /**
284
+ * Defines common options for loading operations performed by SceneLoader.
285
+ */
286
+ interface SceneLoaderOptions {
287
+ /**
288
+ * A string that defines the root url for the scene and resources or the concatenation of rootURL and filename (e.g. http://example.com/test.glb)
289
+ */
290
+ rootUrl?: string;
291
+ /**
292
+ * A callback with a progress event for each file being loaded
293
+ */
294
+ onProgress?: (event: ISceneLoaderProgressEvent) => void;
295
+ /**
296
+ * The extension used to determine the plugin
297
+ */
298
+ pluginExtension?: string;
299
+ /**
300
+ * Defines the filename, if the data is binary
301
+ */
302
+ name?: string;
303
+ /**
304
+ * Defines options for the registered plugins
305
+ */
306
+ pluginOptions?: {
307
+ [Plugin in keyof SceneLoaderPluginOptions]: {
308
+ [Option in keyof DefaultPluginOptions<SceneLoaderPluginOptions[Plugin]>]: DefaultPluginOptions<SceneLoaderPluginOptions[Plugin]>[Option];
309
+ };
310
+ };
311
+ }
312
+ /**
313
+ * Defines options for ImportMeshAsync.
314
+ */
315
+ export interface ImportMeshOptions extends SceneLoaderOptions {
316
+ /**
317
+ * An array of mesh names, a single mesh name, or empty string for all meshes that filter what meshes are imported
318
+ */
319
+ meshNames?: string | readonly string[] | null | undefined;
320
+ }
321
+ /**
322
+ * Defines options for LoadAsync.
323
+ */
324
+ export interface LoadOptions extends SceneLoaderOptions {
325
+ }
326
+ /**
327
+ * Defines options for AppendAsync.
328
+ */
329
+ export interface AppendOptions extends SceneLoaderOptions {
330
+ }
331
+ /**
332
+ * Defines options for LoadAssetContainerAsync.
333
+ */
334
+ export interface LoadAssetContainerOptions extends SceneLoaderOptions {
335
+ }
336
+ /**
337
+ * Defines options for ImportAnimationsAsync.
338
+ */
339
+ export interface ImportAnimationsOptions extends SceneLoaderOptions {
340
+ /**
341
+ * When true, animations are cleaned before importing new ones. Animations are appended otherwise
342
+ */
343
+ overwriteAnimations?: boolean;
344
+ /**
345
+ * Defines how to handle old animations groups before importing new ones
346
+ */
347
+ animationGroupLoadingMode?: SceneLoaderAnimationGroupLoadingMode;
348
+ /**
349
+ * defines a function used to convert animation targets from loaded scene to current scene (default: search node by name)
350
+ */
351
+ targetConverter?: Nullable<(target: unknown) => unknown>;
352
+ }
267
353
  /**
268
354
  * Class used to load scene from various file formats using registered plugins
269
355
  * @see https://doc.babylonjs.com/features/featuresDeepDive/importers/loadingFileTypes
@@ -354,7 +440,17 @@ export declare class SceneLoader {
354
440
  * @param name defines the name of the file, if the data is binary
355
441
  * @returns The loaded plugin
356
442
  */
357
- static ImportMesh(meshNames: string | readonly string[] | null | undefined, rootUrl: string, sceneFilename?: string | File | ArrayBufferView, scene?: Nullable<Scene>, onSuccess?: Nullable<SceneLoaderSuccessCallback>, onProgress?: Nullable<(event: ISceneLoaderProgressEvent) => void>, onError?: Nullable<(scene: Scene, message: string, exception?: any) => void>, pluginExtension?: Nullable<string>, name?: string): Nullable<ISceneLoaderPlugin | ISceneLoaderPluginAsync>;
443
+ static ImportMesh(meshNames: string | readonly string[] | null | undefined, rootUrl: string, sceneFilename?: SceneSource, scene?: Nullable<Scene>, onSuccess?: Nullable<SceneLoaderSuccessCallback>, onProgress?: Nullable<(event: ISceneLoaderProgressEvent) => void>, onError?: Nullable<(scene: Scene, message: string, exception?: any) => void>, pluginExtension?: Nullable<string>, name?: string): Nullable<ISceneLoaderPlugin | ISceneLoaderPluginAsync>;
444
+ private static _ImportMesh;
445
+ /**
446
+ * Import meshes into a scene
447
+ * @experimental
448
+ * @param source a string that defines the name of the scene file, or starts with "data:" following by the stringified version of the scene, or a File object, or an ArrayBufferView
449
+ * @param scene the instance of BABYLON.Scene to append to
450
+ * @param options an object that configures aspects of how the scene is loaded
451
+ * @returns The loaded list of imported meshes, particle systems, skeletons, and animation groups
452
+ */
453
+ static ImportMeshAsync(source: SceneSource, scene: Scene, options?: ImportMeshOptions): Promise<ISceneLoaderAsyncResult>;
358
454
  /**
359
455
  * Import meshes into a scene
360
456
  * @param meshNames an array of mesh names, a single mesh name, or empty string for all meshes that filter what meshes are imported
@@ -366,7 +462,7 @@ export declare class SceneLoader {
366
462
  * @param name defines the name of the file
367
463
  * @returns The loaded list of imported meshes, particle systems, skeletons, and animation groups
368
464
  */
369
- static ImportMeshAsync(meshNames: string | readonly string[] | null | undefined, rootUrl: string, sceneFilename?: string | File | ArrayBufferView, scene?: Nullable<Scene>, onProgress?: Nullable<(event: ISceneLoaderProgressEvent) => void>, pluginExtension?: Nullable<string>, name?: string): Promise<ISceneLoaderAsyncResult>;
465
+ static ImportMeshAsync(meshNames: string | readonly string[] | null | undefined, rootUrl: string, sceneFilename?: SceneSource, scene?: Nullable<Scene>, onProgress?: Nullable<(event: ISceneLoaderProgressEvent) => void>, pluginExtension?: Nullable<string>, name?: string): Promise<ISceneLoaderAsyncResult>;
370
466
  /**
371
467
  * Load a scene
372
468
  * @param rootUrl a string that defines the root url for the scene and resources or the concatenation of rootURL and filename (e.g. http://example.com/test.glb)
@@ -379,7 +475,17 @@ export declare class SceneLoader {
379
475
  * @param name defines the filename, if the data is binary
380
476
  * @returns The loaded plugin
381
477
  */
382
- static Load(rootUrl: string, sceneFilename?: string | File | ArrayBufferView, engine?: Nullable<AbstractEngine>, onSuccess?: Nullable<(scene: Scene) => void>, onProgress?: Nullable<(event: ISceneLoaderProgressEvent) => void>, onError?: Nullable<(scene: Scene, message: string, exception?: any) => void>, pluginExtension?: Nullable<string>, name?: string): Nullable<ISceneLoaderPlugin | ISceneLoaderPluginAsync>;
478
+ static Load(rootUrl: string, sceneFilename?: SceneSource, engine?: Nullable<AbstractEngine>, onSuccess?: Nullable<(scene: Scene) => void>, onProgress?: Nullable<(event: ISceneLoaderProgressEvent) => void>, onError?: Nullable<(scene: Scene, message: string, exception?: any) => void>, pluginExtension?: Nullable<string>, name?: string): Nullable<ISceneLoaderPlugin | ISceneLoaderPluginAsync>;
479
+ private static _Load;
480
+ /**
481
+ * Load a scene
482
+ * @experimental
483
+ * @param source a string that defines the name of the scene file, or starts with "data:" following by the stringified version of the scene, or a File object, or an ArrayBufferView
484
+ * @param engine is the instance of BABYLON.Engine to use to create the scene
485
+ * @param options an object that configures aspects of how the scene is loaded
486
+ * @returns The loaded scene
487
+ */
488
+ static LoadAsync(source: SceneSource, engine: AbstractEngine, options?: LoadOptions): Promise<Scene>;
383
489
  /**
384
490
  * Load a scene
385
491
  * @param rootUrl a string that defines the root url for the scene and resources or the concatenation of rootURL and filename (e.g. http://example.com/test.glb)
@@ -390,7 +496,7 @@ export declare class SceneLoader {
390
496
  * @param name defines the filename, if the data is binary
391
497
  * @returns The loaded scene
392
498
  */
393
- static LoadAsync(rootUrl: string, sceneFilename?: string | File | ArrayBufferView, engine?: Nullable<AbstractEngine>, onProgress?: Nullable<(event: ISceneLoaderProgressEvent) => void>, pluginExtension?: Nullable<string>, name?: string): Promise<Scene>;
499
+ static LoadAsync(rootUrl: string, sceneFilename?: SceneSource, engine?: Nullable<AbstractEngine>, onProgress?: Nullable<(event: ISceneLoaderProgressEvent) => void>, pluginExtension?: Nullable<string>, name?: string): Promise<Scene>;
394
500
  /**
395
501
  * Append a scene
396
502
  * @param rootUrl a string that defines the root url for the scene and resources or the concatenation of rootURL and filename (e.g. http://example.com/test.glb)
@@ -403,7 +509,17 @@ export declare class SceneLoader {
403
509
  * @param name defines the name of the file, if the data is binary
404
510
  * @returns The loaded plugin
405
511
  */
406
- static Append(rootUrl: string, sceneFilename?: string | File | ArrayBufferView, scene?: Nullable<Scene>, onSuccess?: Nullable<(scene: Scene) => void>, onProgress?: Nullable<(event: ISceneLoaderProgressEvent) => void>, onError?: Nullable<(scene: Scene, message: string, exception?: any) => void>, pluginExtension?: Nullable<string>, name?: string): Nullable<ISceneLoaderPlugin | ISceneLoaderPluginAsync>;
512
+ static Append(rootUrl: string, sceneFilename?: SceneSource, scene?: Nullable<Scene>, onSuccess?: Nullable<(scene: Scene) => void>, onProgress?: Nullable<(event: ISceneLoaderProgressEvent) => void>, onError?: Nullable<(scene: Scene, message: string, exception?: any) => void>, pluginExtension?: Nullable<string>, name?: string): Nullable<ISceneLoaderPlugin | ISceneLoaderPluginAsync>;
513
+ private static _Append;
514
+ /**
515
+ * Append a scene
516
+ * @experimental
517
+ * @param source a string that defines the name of the scene file, or starts with "data:" following by the stringified version of the scene, or a File object, or an ArrayBufferView
518
+ * @param scene is the instance of BABYLON.Scene to append to
519
+ * @param options an object that configures aspects of how the scene is loaded
520
+ * @returns The given scene
521
+ */
522
+ static AppendAsync(source: SceneSource, scene: Scene, options?: LoadAssetContainerOptions): Promise<Scene>;
407
523
  /**
408
524
  * Append a scene
409
525
  * @param rootUrl a string that defines the root url for the scene and resources or the concatenation of rootURL and filename (e.g. http://example.com/test.glb)
@@ -414,7 +530,7 @@ export declare class SceneLoader {
414
530
  * @param name defines the name of the file, if the data is binary
415
531
  * @returns The given scene
416
532
  */
417
- static AppendAsync(rootUrl: string, sceneFilename?: string | File | ArrayBufferView, scene?: Nullable<Scene>, onProgress?: Nullable<(event: ISceneLoaderProgressEvent) => void>, pluginExtension?: Nullable<string>, name?: string): Promise<Scene>;
533
+ static AppendAsync(rootUrl: string, sceneFilename?: SceneSource, scene?: Nullable<Scene>, onProgress?: Nullable<(event: ISceneLoaderProgressEvent) => void>, pluginExtension?: Nullable<string>, name?: string): Promise<Scene>;
418
534
  /**
419
535
  * Load a scene into an asset container
420
536
  * @param rootUrl a string that defines the root url for the scene and resources or the concatenation of rootURL and filename (e.g. http://example.com/test.glb)
@@ -427,7 +543,17 @@ export declare class SceneLoader {
427
543
  * @param name defines the filename, if the data is binary
428
544
  * @returns The loaded plugin
429
545
  */
430
- static LoadAssetContainer(rootUrl: string, sceneFilename?: string | File | ArrayBufferView, scene?: Nullable<Scene>, onSuccess?: Nullable<(assets: AssetContainer) => void>, onProgress?: Nullable<(event: ISceneLoaderProgressEvent) => void>, onError?: Nullable<(scene: Scene, message: string, exception?: any) => void>, pluginExtension?: Nullable<string>, name?: string): Nullable<ISceneLoaderPlugin | ISceneLoaderPluginAsync>;
546
+ static LoadAssetContainer(rootUrl: string, sceneFilename?: SceneSource, scene?: Nullable<Scene>, onSuccess?: Nullable<(assets: AssetContainer) => void>, onProgress?: Nullable<(event: ISceneLoaderProgressEvent) => void>, onError?: Nullable<(scene: Scene, message: string, exception?: any) => void>, pluginExtension?: Nullable<string>, name?: string): Nullable<ISceneLoaderPlugin | ISceneLoaderPluginAsync>;
547
+ private static _LoadAssetContainer;
548
+ /**
549
+ * Load a scene into an asset container
550
+ * @experimental
551
+ * @param source a string that defines the name of the scene file, or starts with "data:" following by the stringified version of the scene, or a File object, or an ArrayBufferView
552
+ * @param scene is the instance of Scene to append to
553
+ * @param options an object that configures aspects of how the scene is loaded
554
+ * @returns The loaded asset container
555
+ */
556
+ static LoadAssetContainerAsync(source: SceneSource, scene: Scene, options?: LoadAssetContainerOptions): Promise<AssetContainer>;
431
557
  /**
432
558
  * Load a scene into an asset container
433
559
  * @param rootUrl a string that defines the root url for the scene and resources or the concatenation of rootURL and filename (e.g. http://example.com/test.glb)
@@ -435,9 +561,10 @@ export declare class SceneLoader {
435
561
  * @param scene is the instance of Scene to append to
436
562
  * @param onProgress a callback with a progress event for each file being loaded
437
563
  * @param pluginExtension the extension used to determine the plugin
564
+ * @param name defines the filename, if the data is binary
438
565
  * @returns The loaded asset container
439
566
  */
440
- static LoadAssetContainerAsync(rootUrl: string, sceneFilename?: string | File, scene?: Nullable<Scene>, onProgress?: Nullable<(event: ISceneLoaderProgressEvent) => void>, pluginExtension?: Nullable<string>): Promise<AssetContainer>;
567
+ static LoadAssetContainerAsync(rootUrl: string, sceneFilename?: SceneSource, scene?: Nullable<Scene>, onProgress?: Nullable<(event: ISceneLoaderProgressEvent) => void>, pluginExtension?: Nullable<string>, name?: string): Promise<AssetContainer>;
441
568
  /**
442
569
  * Import animations from a file into a scene
443
570
  * @param rootUrl a string that defines the root url for the scene and resources or the concatenation of rootURL and filename (e.g. http://example.com/test.glb)
@@ -450,8 +577,19 @@ export declare class SceneLoader {
450
577
  * @param onProgress a callback with a progress event for each file being loaded
451
578
  * @param onError a callback with the scene, a message, and possibly an exception when import fails
452
579
  * @param pluginExtension the extension used to determine the plugin
580
+ * @param name defines the filename, if the data is binary
453
581
  */
454
- static ImportAnimations(rootUrl: string, sceneFilename?: string | File, scene?: Nullable<Scene>, overwriteAnimations?: boolean, animationGroupLoadingMode?: SceneLoaderAnimationGroupLoadingMode, targetConverter?: Nullable<(target: any) => any>, onSuccess?: Nullable<(scene: Scene) => void>, onProgress?: Nullable<(event: ISceneLoaderProgressEvent) => void>, onError?: Nullable<(scene: Scene, message: string, exception?: any) => void>, pluginExtension?: Nullable<string>): void;
582
+ static ImportAnimations(rootUrl: string, sceneFilename?: SceneSource, scene?: Nullable<Scene>, overwriteAnimations?: boolean, animationGroupLoadingMode?: SceneLoaderAnimationGroupLoadingMode, targetConverter?: Nullable<(target: any) => any>, onSuccess?: Nullable<(scene: Scene) => void>, onProgress?: Nullable<(event: ISceneLoaderProgressEvent) => void>, onError?: Nullable<(scene: Scene, message: string, exception?: any) => void>, pluginExtension?: Nullable<string>, name?: string): void;
583
+ private static _ImportAnimations;
584
+ /**
585
+ * Import animations from a file into a scene
586
+ * @experimental
587
+ * @param source a string that defines the name of the scene file, or starts with "data:" following by the stringified version of the scene, or a File object, or an ArrayBufferView
588
+ * @param scene is the instance of BABYLON.Scene to append to (default: last created scene)
589
+ * @param options an object that configures aspects of how the scene is loaded
590
+ * @returns The loaded asset container
591
+ */
592
+ static ImportAnimationsAsync(source: SceneSource, scene: Scene, options?: ImportAnimationsOptions): Promise<Scene>;
455
593
  /**
456
594
  * Import animations from a file into a scene
457
595
  * @param rootUrl a string that defines the root url for the scene and resources or the concatenation of rootURL and filename (e.g. http://example.com/test.glb)
@@ -464,8 +602,9 @@ export declare class SceneLoader {
464
602
  * @param onProgress a callback with a progress event for each file being loaded
465
603
  * @param onError a callback with the scene, a message, and possibly an exception when import fails
466
604
  * @param pluginExtension the extension used to determine the plugin
605
+ * @param name defines the filename, if the data is binary
467
606
  * @returns the updated scene with imported animations
468
607
  */
469
- static ImportAnimationsAsync(rootUrl: string, sceneFilename?: string | File, scene?: Nullable<Scene>, overwriteAnimations?: boolean, animationGroupLoadingMode?: SceneLoaderAnimationGroupLoadingMode, targetConverter?: Nullable<(target: any) => any>, onSuccess?: Nullable<(scene: Scene) => void>, onProgress?: Nullable<(event: ISceneLoaderProgressEvent) => void>, onError?: Nullable<(scene: Scene, message: string, exception?: any) => void>, pluginExtension?: Nullable<string>): Promise<Scene>;
608
+ static ImportAnimationsAsync(rootUrl: string, sceneFilename?: SceneSource, scene?: Nullable<Scene>, overwriteAnimations?: boolean, animationGroupLoadingMode?: SceneLoaderAnimationGroupLoadingMode, targetConverter?: Nullable<(target: any) => any>, onSuccess?: Nullable<(scene: Scene) => void>, onProgress?: Nullable<(event: ISceneLoaderProgressEvent) => void>, onError?: Nullable<(scene: Scene, message: string, exception?: any) => void>, pluginExtension?: Nullable<string>, name?: string): Promise<Scene>;
470
609
  }
471
610
  export {};