@spiffcommerce/preview 3.6.2-rc.3 → 3.6.2-rc.5

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 (489) hide show
  1. package/dist/lib/assetCache.esm.js +21 -0
  2. package/dist/lib/configuration.esm.js +98 -0
  3. package/dist/lib/core.esm.js +417 -0
  4. package/dist/lib/dynamicTexture.esm.js +51 -0
  5. package/dist/lib/glbLoaderExtensions.esm.js +137 -0
  6. package/dist/lib/glowLayerManager.esm.js +19 -0
  7. package/dist/lib/guid.esm.js +7 -0
  8. package/dist/lib/material.esm.js +50 -0
  9. package/dist/lib/modelContainer.esm.js +351 -0
  10. package/dist/lib/productAnimations.esm.js +123 -0
  11. package/dist/lib/productCamera.esm.js +113 -0
  12. package/dist/lib/renderConstants.esm.js +103 -0
  13. package/dist/lib/renderingPipeline.esm.js +99 -0
  14. package/dist/lib/types.esm.js +5 -0
  15. package/dist/lib/variants.esm.js +112 -0
  16. package/dist/node_modules/@babylonjs/core/Actions/abstractActionManager.esm.js +41 -0
  17. package/dist/node_modules/@babylonjs/core/Actions/action.esm.js +122 -0
  18. package/dist/node_modules/@babylonjs/core/Actions/actionEvent.esm.js +59 -0
  19. package/dist/node_modules/@babylonjs/core/Actions/actionManager.esm.js +335 -0
  20. package/dist/node_modules/@babylonjs/core/Actions/condition.esm.js +193 -0
  21. package/dist/node_modules/@babylonjs/core/Actions/directActions.esm.js +354 -0
  22. package/dist/node_modules/@babylonjs/core/Animations/animatable.esm.js +478 -0
  23. package/dist/node_modules/@babylonjs/core/Animations/animation.esm.js +866 -0
  24. package/dist/node_modules/@babylonjs/core/Animations/animationEvent.esm.js +18 -0
  25. package/dist/node_modules/@babylonjs/core/Animations/animationGroup.esm.js +470 -0
  26. package/dist/node_modules/@babylonjs/core/Animations/animationKey.esm.js +7 -0
  27. package/dist/node_modules/@babylonjs/core/Animations/animationRange.esm.js +21 -0
  28. package/dist/node_modules/@babylonjs/core/Animations/easing.esm.js +93 -0
  29. package/dist/node_modules/@babylonjs/core/Animations/runtimeAnimation.esm.js +281 -0
  30. package/dist/node_modules/@babylonjs/core/Audio/sound.esm.js +568 -0
  31. package/dist/node_modules/@babylonjs/core/Audio/weightedsound.esm.js +117 -0
  32. package/dist/node_modules/@babylonjs/core/Behaviors/Cameras/autoRotationBehavior.esm.js +145 -0
  33. package/dist/node_modules/@babylonjs/core/Behaviors/Cameras/bouncingBehavior.esm.js +93 -0
  34. package/dist/node_modules/@babylonjs/core/Behaviors/Cameras/framingBehavior.esm.js +295 -0
  35. package/dist/node_modules/@babylonjs/core/Bones/bone.esm.js +701 -0
  36. package/dist/node_modules/@babylonjs/core/Bones/skeleton.esm.js +478 -0
  37. package/dist/node_modules/@babylonjs/core/Buffers/buffer.esm.js +433 -0
  38. package/dist/node_modules/@babylonjs/core/Buffers/dataBuffer.esm.js +18 -0
  39. package/dist/node_modules/@babylonjs/core/Cameras/Inputs/BaseCameraMouseWheelInput.esm.js +67 -0
  40. package/dist/node_modules/@babylonjs/core/Cameras/Inputs/BaseCameraPointersInput.esm.js +191 -0
  41. package/dist/node_modules/@babylonjs/core/Cameras/Inputs/arcRotateCameraKeyboardMoveInput.esm.js +93 -0
  42. package/dist/node_modules/@babylonjs/core/Cameras/Inputs/arcRotateCameraMouseWheelInput.esm.js +119 -0
  43. package/dist/node_modules/@babylonjs/core/Cameras/Inputs/arcRotateCameraPointersInput.esm.js +119 -0
  44. package/dist/node_modules/@babylonjs/core/Cameras/Inputs/freeCameraKeyboardMoveInput.esm.js +108 -0
  45. package/dist/node_modules/@babylonjs/core/Cameras/Inputs/freeCameraMouseInput.esm.js +114 -0
  46. package/dist/node_modules/@babylonjs/core/Cameras/Inputs/freeCameraMouseWheelInput.esm.js +249 -0
  47. package/dist/node_modules/@babylonjs/core/Cameras/Inputs/freeCameraTouchInput.esm.js +103 -0
  48. package/dist/node_modules/@babylonjs/core/Cameras/arcRotateCamera.esm.js +589 -0
  49. package/dist/node_modules/@babylonjs/core/Cameras/arcRotateCameraInputsManager.esm.js +37 -0
  50. package/dist/node_modules/@babylonjs/core/Cameras/camera.esm.js +686 -0
  51. package/dist/node_modules/@babylonjs/core/Cameras/cameraInputsManager.esm.js +147 -0
  52. package/dist/node_modules/@babylonjs/core/Cameras/freeCamera.esm.js +236 -0
  53. package/dist/node_modules/@babylonjs/core/Cameras/freeCameraInputsManager.esm.js +66 -0
  54. package/dist/node_modules/@babylonjs/core/Cameras/targetCamera.esm.js +214 -0
  55. package/dist/node_modules/@babylonjs/core/Collisions/intersectionInfo.esm.js +8 -0
  56. package/dist/node_modules/@babylonjs/core/Collisions/meshCollisionData.esm.js +9 -0
  57. package/dist/node_modules/@babylonjs/core/Collisions/pickingInfo.esm.js +59 -0
  58. package/dist/node_modules/@babylonjs/core/Compat/compatibilityOptions.esm.js +6 -0
  59. package/dist/node_modules/@babylonjs/core/Culling/boundingBox.esm.js +174 -0
  60. package/dist/node_modules/@babylonjs/core/Culling/boundingInfo.esm.js +159 -0
  61. package/dist/node_modules/@babylonjs/core/Culling/boundingSphere.esm.js +114 -0
  62. package/dist/node_modules/@babylonjs/core/DeviceInput/InputDevices/deviceEnums.esm.js +37 -0
  63. package/dist/node_modules/@babylonjs/core/DeviceInput/InputDevices/deviceSource.esm.js +23 -0
  64. package/dist/node_modules/@babylonjs/core/DeviceInput/InputDevices/deviceSourceManager.esm.js +106 -0
  65. package/dist/node_modules/@babylonjs/core/DeviceInput/eventFactory.esm.js +118 -0
  66. package/dist/node_modules/@babylonjs/core/DeviceInput/internalDeviceSourceManager.esm.js +46 -0
  67. package/dist/node_modules/@babylonjs/core/DeviceInput/nativeDeviceInputSystem.esm.js +50 -0
  68. package/dist/node_modules/@babylonjs/core/DeviceInput/webDeviceInputSystem.esm.js +354 -0
  69. package/dist/node_modules/@babylonjs/core/Engines/Extensions/engine.alpha.esm.js +101 -0
  70. package/dist/node_modules/@babylonjs/core/Engines/Extensions/engine.cubeTexture.esm.js +103 -0
  71. package/dist/node_modules/@babylonjs/core/Engines/Extensions/engine.dynamicBuffer.esm.js +11 -0
  72. package/dist/node_modules/@babylonjs/core/Engines/Extensions/engine.dynamicTexture.esm.js +14 -0
  73. package/dist/node_modules/@babylonjs/core/Engines/Extensions/engine.multiRender.esm.js +111 -0
  74. package/dist/node_modules/@babylonjs/core/Engines/Extensions/engine.rawTexture.esm.js +109 -0
  75. package/dist/node_modules/@babylonjs/core/Engines/Extensions/engine.readTexture.esm.js +76 -0
  76. package/dist/node_modules/@babylonjs/core/Engines/Extensions/engine.renderTarget.esm.js +69 -0
  77. package/dist/node_modules/@babylonjs/core/Engines/Extensions/engine.renderTargetCube.esm.js +15 -0
  78. package/dist/node_modules/@babylonjs/core/Engines/Extensions/engine.uniformBuffer.esm.js +29 -0
  79. package/dist/node_modules/@babylonjs/core/Engines/Extensions/engine.views.esm.js +85 -0
  80. package/dist/node_modules/@babylonjs/core/Engines/Processors/Expressions/Operators/shaderDefineAndOperator.esm.js +9 -0
  81. package/dist/node_modules/@babylonjs/core/Engines/Processors/Expressions/Operators/shaderDefineArithmeticOperator.esm.js +36 -0
  82. package/dist/node_modules/@babylonjs/core/Engines/Processors/Expressions/Operators/shaderDefineIsDefinedOperator.esm.js +13 -0
  83. package/dist/node_modules/@babylonjs/core/Engines/Processors/Expressions/Operators/shaderDefineOrOperator.esm.js +9 -0
  84. package/dist/node_modules/@babylonjs/core/Engines/Processors/Expressions/shaderDefineExpression.esm.js +88 -0
  85. package/dist/node_modules/@babylonjs/core/Engines/Processors/shaderCodeConditionNode.esm.js +14 -0
  86. package/dist/node_modules/@babylonjs/core/Engines/Processors/shaderCodeCursor.esm.js +44 -0
  87. package/dist/node_modules/@babylonjs/core/Engines/Processors/shaderCodeNode.esm.js +31 -0
  88. package/dist/node_modules/@babylonjs/core/Engines/Processors/shaderCodeTestNode.esm.js +9 -0
  89. package/dist/node_modules/@babylonjs/core/Engines/Processors/shaderProcessor.esm.js +230 -0
  90. package/dist/node_modules/@babylonjs/core/Engines/WebGL/webGL2ShaderProcessors.esm.js +30 -0
  91. package/dist/node_modules/@babylonjs/core/Engines/WebGL/webGLHardwareTexture.esm.js +34 -0
  92. package/dist/node_modules/@babylonjs/core/Engines/WebGL/webGLPipelineContext.esm.js +388 -0
  93. package/dist/node_modules/@babylonjs/core/Engines/WebGL/webGLRenderTargetWrapper.esm.js +87 -0
  94. package/dist/node_modules/@babylonjs/core/Engines/WebGL/webGLShaderProcessors.esm.js +16 -0
  95. package/dist/node_modules/@babylonjs/core/Engines/constants.esm.js +254 -0
  96. package/dist/node_modules/@babylonjs/core/Engines/engine.esm.js +1120 -0
  97. package/dist/node_modules/@babylonjs/core/Engines/engineStore.esm.js +23 -0
  98. package/dist/node_modules/@babylonjs/core/Engines/nullEngine.esm.js +697 -0
  99. package/dist/node_modules/@babylonjs/core/Engines/performanceConfigurator.esm.js +22 -0
  100. package/dist/node_modules/@babylonjs/core/Engines/renderTargetWrapper.esm.js +273 -0
  101. package/dist/node_modules/@babylonjs/core/Engines/shaderStore.esm.js +36 -0
  102. package/dist/node_modules/@babylonjs/core/Engines/thinEngine.esm.js +2921 -0
  103. package/dist/node_modules/@babylonjs/core/Events/deviceInputEvents.esm.js +13 -0
  104. package/dist/node_modules/@babylonjs/core/Events/keyboardEvents.esm.js +41 -0
  105. package/dist/node_modules/@babylonjs/core/Events/pointerEvents.esm.js +63 -0
  106. package/dist/node_modules/@babylonjs/core/Inputs/pointerPickingConfiguration.esm.js +8 -0
  107. package/dist/node_modules/@babylonjs/core/Inputs/scene.inputManager.esm.js +418 -0
  108. package/dist/node_modules/@babylonjs/core/Layers/effectLayer.esm.js +437 -0
  109. package/dist/node_modules/@babylonjs/core/Layers/effectLayerSceneComponent.esm.js +141 -0
  110. package/dist/node_modules/@babylonjs/core/Layers/glowLayer.esm.js +343 -0
  111. package/dist/node_modules/@babylonjs/core/Layers/highlightLayer.esm.js +396 -0
  112. package/dist/node_modules/@babylonjs/core/Lights/directionalLight.esm.js +224 -0
  113. package/dist/node_modules/@babylonjs/core/Lights/hemisphericLight.esm.js +92 -0
  114. package/dist/node_modules/@babylonjs/core/Lights/light.esm.js +476 -0
  115. package/dist/node_modules/@babylonjs/core/Lights/lightConstants.esm.js +30 -0
  116. package/dist/node_modules/@babylonjs/core/Lights/pointLight.esm.js +153 -0
  117. package/dist/node_modules/@babylonjs/core/Lights/shadowLight.esm.js +196 -0
  118. package/dist/node_modules/@babylonjs/core/Lights/spotLight.esm.js +287 -0
  119. package/dist/node_modules/@babylonjs/core/Loading/sceneLoader.esm.js +551 -0
  120. package/dist/node_modules/@babylonjs/core/Loading/sceneLoaderFlags.esm.js +48 -0
  121. package/dist/node_modules/@babylonjs/core/Materials/PBR/pbrAnisotropicConfiguration.esm.js +112 -0
  122. package/dist/node_modules/@babylonjs/core/Materials/PBR/pbrBRDFConfiguration.esm.js +48 -0
  123. package/dist/node_modules/@babylonjs/core/Materials/PBR/pbrBaseMaterial.esm.js +568 -0
  124. package/dist/node_modules/@babylonjs/core/Materials/PBR/pbrClearCoatConfiguration.esm.js +139 -0
  125. package/dist/node_modules/@babylonjs/core/Materials/PBR/pbrIridescenceConfiguration.esm.js +97 -0
  126. package/dist/node_modules/@babylonjs/core/Materials/PBR/pbrMaterial.esm.js +496 -0
  127. package/dist/node_modules/@babylonjs/core/Materials/PBR/pbrSheenConfiguration.esm.js +106 -0
  128. package/dist/node_modules/@babylonjs/core/Materials/PBR/pbrSubSurfaceConfiguration.esm.js +270 -0
  129. package/dist/node_modules/@babylonjs/core/Materials/Textures/Filtering/hdrFiltering.esm.js +103 -0
  130. package/dist/node_modules/@babylonjs/core/Materials/Textures/Loaders/ddsTextureLoader.esm.js +53 -0
  131. package/dist/node_modules/@babylonjs/core/Materials/Textures/Loaders/envTextureLoader.esm.js +51 -0
  132. package/dist/node_modules/@babylonjs/core/Materials/Textures/Loaders/ktxTextureLoader.esm.js +81 -0
  133. package/dist/node_modules/@babylonjs/core/Materials/Textures/baseTexture.esm.js +542 -0
  134. package/dist/node_modules/@babylonjs/core/Materials/Textures/baseTexture.polynomial.esm.js +23 -0
  135. package/dist/node_modules/@babylonjs/core/Materials/Textures/cubeTexture.esm.js +244 -0
  136. package/dist/node_modules/@babylonjs/core/Materials/Textures/dynamicTexture.esm.js +134 -0
  137. package/dist/node_modules/@babylonjs/core/Materials/Textures/equiRectangularCubeTexture.esm.js +89 -0
  138. package/dist/node_modules/@babylonjs/core/Materials/Textures/hdrCubeTexture.esm.js +175 -0
  139. package/dist/node_modules/@babylonjs/core/Materials/Textures/internalTexture.esm.js +150 -0
  140. package/dist/node_modules/@babylonjs/core/Materials/Textures/ktx2decoderTypes.esm.js +17 -0
  141. package/dist/node_modules/@babylonjs/core/Materials/Textures/mirrorTexture.esm.js +138 -0
  142. package/dist/node_modules/@babylonjs/core/Materials/Textures/multiRenderTarget.esm.js +223 -0
  143. package/dist/node_modules/@babylonjs/core/Materials/Textures/rawCubeTexture.esm.js +58 -0
  144. package/dist/node_modules/@babylonjs/core/Materials/Textures/rawTexture.esm.js +156 -0
  145. package/dist/node_modules/@babylonjs/core/Materials/Textures/rawTexture2DArray.esm.js +53 -0
  146. package/dist/node_modules/@babylonjs/core/Materials/Textures/renderTargetTexture.esm.js +605 -0
  147. package/dist/node_modules/@babylonjs/core/Materials/Textures/texture.esm.js +421 -0
  148. package/dist/node_modules/@babylonjs/core/Materials/Textures/textureSampler.esm.js +101 -0
  149. package/dist/node_modules/@babylonjs/core/Materials/Textures/thinTexture.esm.js +170 -0
  150. package/dist/node_modules/@babylonjs/core/Materials/clipPlaneMaterialHelper.esm.js +28 -0
  151. package/dist/node_modules/@babylonjs/core/Materials/colorCurves.esm.js +397 -0
  152. package/dist/node_modules/@babylonjs/core/Materials/drawWrapper.esm.js +22 -0
  153. package/dist/node_modules/@babylonjs/core/Materials/effect.esm.js +890 -0
  154. package/dist/node_modules/@babylonjs/core/Materials/effectFallbacks.esm.js +73 -0
  155. package/dist/node_modules/@babylonjs/core/Materials/effectRenderer.esm.js +132 -0
  156. package/dist/node_modules/@babylonjs/core/Materials/imageProcessingConfiguration.esm.js +428 -0
  157. package/dist/node_modules/@babylonjs/core/Materials/material.detailMapConfiguration.esm.js +90 -0
  158. package/dist/node_modules/@babylonjs/core/Materials/material.esm.js +906 -0
  159. package/dist/node_modules/@babylonjs/core/Materials/materialDefines.esm.js +161 -0
  160. package/dist/node_modules/@babylonjs/core/Materials/materialFlags.esm.js +226 -0
  161. package/dist/node_modules/@babylonjs/core/Materials/materialHelper.esm.js +501 -0
  162. package/dist/node_modules/@babylonjs/core/Materials/materialPluginBase.esm.js +226 -0
  163. package/dist/node_modules/@babylonjs/core/Materials/materialPluginEvent.esm.js +7 -0
  164. package/dist/node_modules/@babylonjs/core/Materials/materialPluginManager.esm.js +212 -0
  165. package/dist/node_modules/@babylonjs/core/Materials/materialStencilState.esm.js +145 -0
  166. package/dist/node_modules/@babylonjs/core/Materials/multiMaterial.esm.js +164 -0
  167. package/dist/node_modules/@babylonjs/core/Materials/prePassConfiguration.esm.js +38 -0
  168. package/dist/node_modules/@babylonjs/core/Materials/pushMaterial.esm.js +48 -0
  169. package/dist/node_modules/@babylonjs/core/Materials/shaderLanguage.esm.js +7 -0
  170. package/dist/node_modules/@babylonjs/core/Materials/shaderMaterial.esm.js +838 -0
  171. package/dist/node_modules/@babylonjs/core/Materials/standardMaterial.esm.js +934 -0
  172. package/dist/node_modules/@babylonjs/core/Materials/uniformBuffer.esm.js +541 -0
  173. package/dist/node_modules/@babylonjs/core/Maths/math.axis.esm.js +19 -0
  174. package/dist/node_modules/@babylonjs/core/Maths/math.color.esm.js +903 -0
  175. package/dist/node_modules/@babylonjs/core/Maths/math.constants.esm.js +6 -0
  176. package/dist/node_modules/@babylonjs/core/Maths/math.frustum.esm.js +91 -0
  177. package/dist/node_modules/@babylonjs/core/Maths/math.functions.esm.js +43 -0
  178. package/dist/node_modules/@babylonjs/core/Maths/math.path.esm.js +9 -0
  179. package/dist/node_modules/@babylonjs/core/Maths/math.plane.esm.js +145 -0
  180. package/dist/node_modules/@babylonjs/core/Maths/math.scalar.esm.js +284 -0
  181. package/dist/node_modules/@babylonjs/core/Maths/math.size.esm.js +124 -0
  182. package/dist/node_modules/@babylonjs/core/Maths/math.vector.esm.js +4915 -0
  183. package/dist/node_modules/@babylonjs/core/Maths/math.viewport.esm.js +41 -0
  184. package/dist/node_modules/@babylonjs/core/Maths/sphericalPolynomial.esm.js +177 -0
  185. package/dist/node_modules/@babylonjs/core/Meshes/Builders/boxBuilder.esm.js +260 -0
  186. package/dist/node_modules/@babylonjs/core/Meshes/Compression/dracoCompression.esm.js +233 -0
  187. package/dist/node_modules/@babylonjs/core/Meshes/Compression/meshoptCompression.esm.js +47 -0
  188. package/dist/node_modules/@babylonjs/core/Meshes/WebGL/webGLDataBuffer.esm.js +12 -0
  189. package/dist/node_modules/@babylonjs/core/Meshes/abstractMesh.esm.js +1448 -0
  190. package/dist/node_modules/@babylonjs/core/Meshes/geometry.esm.js +729 -0
  191. package/dist/node_modules/@babylonjs/core/Meshes/instancedMesh.esm.js +455 -0
  192. package/dist/node_modules/@babylonjs/core/Meshes/mesh.esm.js +2526 -0
  193. package/dist/node_modules/@babylonjs/core/Meshes/mesh.vertexData.esm.js +865 -0
  194. package/dist/node_modules/@babylonjs/core/Meshes/meshLODLevel.esm.js +13 -0
  195. package/dist/node_modules/@babylonjs/core/Meshes/subMesh.esm.js +422 -0
  196. package/dist/node_modules/@babylonjs/core/Meshes/thinInstanceMesh.esm.js +129 -0
  197. package/dist/node_modules/@babylonjs/core/Meshes/transformNode.esm.js +796 -0
  198. package/dist/node_modules/@babylonjs/core/Misc/HighDynamicRange/cubemapToSphericalPolynomial.esm.js +111 -0
  199. package/dist/node_modules/@babylonjs/core/Misc/HighDynamicRange/hdr.esm.js +122 -0
  200. package/dist/node_modules/@babylonjs/core/Misc/HighDynamicRange/panoramaToCubemap.esm.js +78 -0
  201. package/dist/node_modules/@babylonjs/core/Misc/andOrNotEvaluator.esm.js +41 -0
  202. package/dist/node_modules/@babylonjs/core/Misc/arrayTools.esm.js +52 -0
  203. package/dist/node_modules/@babylonjs/core/Misc/assetsManager.esm.js +561 -0
  204. package/dist/node_modules/@babylonjs/core/Misc/brdfTextureTools.esm.js +31 -0
  205. package/dist/node_modules/@babylonjs/core/Misc/copyTools.esm.js +44 -0
  206. package/dist/node_modules/@babylonjs/core/Misc/coroutine.esm.js +53 -0
  207. package/dist/node_modules/@babylonjs/core/Misc/dataReader.esm.js +55 -0
  208. package/dist/node_modules/@babylonjs/core/Misc/dds.esm.js +329 -0
  209. package/dist/node_modules/@babylonjs/core/Misc/decorators.esm.js +332 -0
  210. package/dist/node_modules/@babylonjs/core/Misc/deepCopier.esm.js +52 -0
  211. package/dist/node_modules/@babylonjs/core/Misc/deferred.esm.js +25 -0
  212. package/dist/node_modules/@babylonjs/core/Misc/devTools.esm.js +6 -0
  213. package/dist/node_modules/@babylonjs/core/Misc/domManagement.esm.js +21 -0
  214. package/dist/node_modules/@babylonjs/core/Misc/dumpTools.esm.js +117 -0
  215. package/dist/node_modules/@babylonjs/core/Misc/environmentTextureTools.esm.js +187 -0
  216. package/dist/node_modules/@babylonjs/core/Misc/error.esm.js +40 -0
  217. package/dist/node_modules/@babylonjs/core/Misc/fileTools.esm.js +339 -0
  218. package/dist/node_modules/@babylonjs/core/Misc/filesInputStore.esm.js +6 -0
  219. package/dist/node_modules/@babylonjs/core/Misc/guid.esm.js +9 -0
  220. package/dist/node_modules/@babylonjs/core/Misc/instantiationTools.esm.js +26 -0
  221. package/dist/node_modules/@babylonjs/core/Misc/khronosTextureContainer.esm.js +79 -0
  222. package/dist/node_modules/@babylonjs/core/Misc/khronosTextureContainer2.esm.js +281 -0
  223. package/dist/node_modules/@babylonjs/core/Misc/logger.esm.js +77 -0
  224. package/dist/node_modules/@babylonjs/core/Misc/observable.esm.js +231 -0
  225. package/dist/node_modules/@babylonjs/core/Misc/perfCounter.esm.js +99 -0
  226. package/dist/node_modules/@babylonjs/core/Misc/performanceMonitor.esm.js +144 -0
  227. package/dist/node_modules/@babylonjs/core/Misc/precisionDate.esm.js +12 -0
  228. package/dist/node_modules/@babylonjs/core/Misc/retryStrategy.esm.js +14 -0
  229. package/dist/node_modules/@babylonjs/core/Misc/rgbdTextureTools.esm.js +51 -0
  230. package/dist/node_modules/@babylonjs/core/Misc/screenshotTools.esm.js +92 -0
  231. package/dist/node_modules/@babylonjs/core/Misc/smartArray.esm.js +118 -0
  232. package/dist/node_modules/@babylonjs/core/Misc/stringDictionary.esm.js +129 -0
  233. package/dist/node_modules/@babylonjs/core/Misc/stringTools.esm.js +26 -0
  234. package/dist/node_modules/@babylonjs/core/Misc/tags.esm.js +97 -0
  235. package/dist/node_modules/@babylonjs/core/Misc/textureTools.esm.js +41 -0
  236. package/dist/node_modules/@babylonjs/core/Misc/timingTools.esm.js +13 -0
  237. package/dist/node_modules/@babylonjs/core/Misc/tools.esm.js +929 -0
  238. package/dist/node_modules/@babylonjs/core/Misc/typeStore.esm.js +11 -0
  239. package/dist/node_modules/@babylonjs/core/Misc/uniqueIdGenerator.esm.js +13 -0
  240. package/dist/node_modules/@babylonjs/core/Misc/webRequest.esm.js +135 -0
  241. package/dist/node_modules/@babylonjs/core/Misc/workerPool.esm.js +80 -0
  242. package/dist/node_modules/@babylonjs/core/Morph/morphTarget.esm.js +187 -0
  243. package/dist/node_modules/@babylonjs/core/Morph/morphTargetManager.esm.js +249 -0
  244. package/dist/node_modules/@babylonjs/core/PostProcesses/RenderPipeline/Pipelines/defaultRenderingPipeline.esm.js +349 -0
  245. package/dist/node_modules/@babylonjs/core/PostProcesses/RenderPipeline/Pipelines/ssao2RenderingPipeline.esm.js +306 -0
  246. package/dist/node_modules/@babylonjs/core/PostProcesses/RenderPipeline/Pipelines/ssaoRenderingPipeline.esm.js +161 -0
  247. package/dist/node_modules/@babylonjs/core/PostProcesses/RenderPipeline/Pipelines/ssrRenderingPipeline.esm.js +589 -0
  248. package/dist/node_modules/@babylonjs/core/PostProcesses/RenderPipeline/Pipelines/standardRenderingPipeline.esm.js +512 -0
  249. package/dist/node_modules/@babylonjs/core/PostProcesses/RenderPipeline/postProcessRenderEffect.esm.js +114 -0
  250. package/dist/node_modules/@babylonjs/core/PostProcesses/RenderPipeline/postProcessRenderPipeline.esm.js +139 -0
  251. package/dist/node_modules/@babylonjs/core/PostProcesses/RenderPipeline/postProcessRenderPipelineManager.esm.js +99 -0
  252. package/dist/node_modules/@babylonjs/core/PostProcesses/RenderPipeline/postProcessRenderPipelineManagerSceneComponent.esm.js +48 -0
  253. package/dist/node_modules/@babylonjs/core/PostProcesses/bloomEffect.esm.js +76 -0
  254. package/dist/node_modules/@babylonjs/core/PostProcesses/bloomMergePostProcess.esm.js +40 -0
  255. package/dist/node_modules/@babylonjs/core/PostProcesses/blurPostProcess.esm.js +165 -0
  256. package/dist/node_modules/@babylonjs/core/PostProcesses/chromaticAberrationPostProcess.esm.js +61 -0
  257. package/dist/node_modules/@babylonjs/core/PostProcesses/circleOfConfusionPostProcess.esm.js +62 -0
  258. package/dist/node_modules/@babylonjs/core/PostProcesses/depthOfFieldBlurPostProcess.esm.js +58 -0
  259. package/dist/node_modules/@babylonjs/core/PostProcesses/depthOfFieldEffect.esm.js +131 -0
  260. package/dist/node_modules/@babylonjs/core/PostProcesses/depthOfFieldMergePostProcess.esm.js +48 -0
  261. package/dist/node_modules/@babylonjs/core/PostProcesses/extractHighlightsPostProcess.esm.js +27 -0
  262. package/dist/node_modules/@babylonjs/core/PostProcesses/fxaaPostProcess.esm.js +41 -0
  263. package/dist/node_modules/@babylonjs/core/PostProcesses/grainPostProcess.esm.js +46 -0
  264. package/dist/node_modules/@babylonjs/core/PostProcesses/imageProcessingPostProcess.esm.js +359 -0
  265. package/dist/node_modules/@babylonjs/core/PostProcesses/motionBlurPostProcess.esm.js +178 -0
  266. package/dist/node_modules/@babylonjs/core/PostProcesses/passPostProcess.esm.js +40 -0
  267. package/dist/node_modules/@babylonjs/core/PostProcesses/postProcess.esm.js +457 -0
  268. package/dist/node_modules/@babylonjs/core/PostProcesses/postProcessManager.esm.js +94 -0
  269. package/dist/node_modules/@babylonjs/core/PostProcesses/screenSpaceReflectionPostProcess.esm.js +147 -0
  270. package/dist/node_modules/@babylonjs/core/PostProcesses/sharpenPostProcess.esm.js +46 -0
  271. package/dist/node_modules/@babylonjs/core/Probes/reflectionProbe.esm.js +184 -0
  272. package/dist/node_modules/@babylonjs/core/Rendering/boundingBoxRenderer.esm.js +170 -0
  273. package/dist/node_modules/@babylonjs/core/Rendering/depthRenderer.esm.js +185 -0
  274. package/dist/node_modules/@babylonjs/core/Rendering/depthRendererSceneComponent.esm.js +65 -0
  275. package/dist/node_modules/@babylonjs/core/Rendering/geometryBufferRenderer.esm.js +353 -0
  276. package/dist/node_modules/@babylonjs/core/Rendering/geometryBufferRendererSceneComponent.esm.js +55 -0
  277. package/dist/node_modules/@babylonjs/core/Rendering/motionBlurConfiguration.esm.js +8 -0
  278. package/dist/node_modules/@babylonjs/core/Rendering/renderingGroup.esm.js +223 -0
  279. package/dist/node_modules/@babylonjs/core/Rendering/renderingManager.esm.js +185 -0
  280. package/dist/node_modules/@babylonjs/core/Rendering/screenSpaceReflections2Configuration.esm.js +8 -0
  281. package/dist/node_modules/@babylonjs/core/Rendering/screenSpaceReflectionsConfiguration.esm.js +8 -0
  282. package/dist/node_modules/@babylonjs/core/Rendering/ssao2Configuration.esm.js +8 -0
  283. package/dist/node_modules/@babylonjs/core/Shaders/ShadersInclude/bakedVertexAnimation.esm.js +48 -0
  284. package/dist/node_modules/@babylonjs/core/Shaders/ShadersInclude/bakedVertexAnimationDeclaration.esm.js +24 -0
  285. package/dist/node_modules/@babylonjs/core/Shaders/ShadersInclude/bonesDeclaration.esm.js +35 -0
  286. package/dist/node_modules/@babylonjs/core/Shaders/ShadersInclude/bonesVertex.esm.js +56 -0
  287. package/dist/node_modules/@babylonjs/core/Shaders/ShadersInclude/boundingBoxRendererFragmentDeclaration.esm.js +4 -0
  288. package/dist/node_modules/@babylonjs/core/Shaders/ShadersInclude/boundingBoxRendererUboDeclaration.esm.js +19 -0
  289. package/dist/node_modules/@babylonjs/core/Shaders/ShadersInclude/boundingBoxRendererVertexDeclaration.esm.js +8 -0
  290. package/dist/node_modules/@babylonjs/core/Shaders/ShadersInclude/bumpFragment.esm.js +67 -0
  291. package/dist/node_modules/@babylonjs/core/Shaders/ShadersInclude/bumpFragmentFunctions.esm.js +58 -0
  292. package/dist/node_modules/@babylonjs/core/Shaders/ShadersInclude/bumpFragmentMainFunctions.esm.js +93 -0
  293. package/dist/node_modules/@babylonjs/core/Shaders/ShadersInclude/bumpVertex.esm.js +11 -0
  294. package/dist/node_modules/@babylonjs/core/Shaders/ShadersInclude/bumpVertexDeclaration.esm.js +8 -0
  295. package/dist/node_modules/@babylonjs/core/Shaders/ShadersInclude/clipPlaneFragment.esm.js +42 -0
  296. package/dist/node_modules/@babylonjs/core/Shaders/ShadersInclude/clipPlaneFragmentDeclaration.esm.js +21 -0
  297. package/dist/node_modules/@babylonjs/core/Shaders/ShadersInclude/clipPlaneVertex.esm.js +21 -0
  298. package/dist/node_modules/@babylonjs/core/Shaders/ShadersInclude/clipPlaneVertexDeclaration.esm.js +27 -0
  299. package/dist/node_modules/@babylonjs/core/Shaders/ShadersInclude/decalFragment.esm.js +12 -0
  300. package/dist/node_modules/@babylonjs/core/Shaders/ShadersInclude/decalFragmentDeclaration.esm.js +6 -0
  301. package/dist/node_modules/@babylonjs/core/Shaders/ShadersInclude/decalVertexDeclaration.esm.js +7 -0
  302. package/dist/node_modules/@babylonjs/core/Shaders/ShadersInclude/defaultFragmentDeclaration.esm.js +86 -0
  303. package/dist/node_modules/@babylonjs/core/Shaders/ShadersInclude/defaultUboDeclaration.esm.js +50 -0
  304. package/dist/node_modules/@babylonjs/core/Shaders/ShadersInclude/defaultVertexDeclaration.esm.js +46 -0
  305. package/dist/node_modules/@babylonjs/core/Shaders/ShadersInclude/depthPrePass.esm.js +7 -0
  306. package/dist/node_modules/@babylonjs/core/Shaders/ShadersInclude/fogFragment.esm.js +10 -0
  307. package/dist/node_modules/@babylonjs/core/Shaders/ShadersInclude/fogFragmentDeclaration.esm.js +34 -0
  308. package/dist/node_modules/@babylonjs/core/Shaders/ShadersInclude/fogVertex.esm.js +6 -0
  309. package/dist/node_modules/@babylonjs/core/Shaders/ShadersInclude/fogVertexDeclaration.esm.js +6 -0
  310. package/dist/node_modules/@babylonjs/core/Shaders/ShadersInclude/fresnelFunction.esm.js +10 -0
  311. package/dist/node_modules/@babylonjs/core/Shaders/ShadersInclude/geometryUboDeclaration.esm.js +5 -0
  312. package/dist/node_modules/@babylonjs/core/Shaders/ShadersInclude/geometryVertexDeclaration.esm.js +4 -0
  313. package/dist/node_modules/@babylonjs/core/Shaders/ShadersInclude/harmonicsFunctions.esm.js +42 -0
  314. package/dist/node_modules/@babylonjs/core/Shaders/ShadersInclude/hdrFilteringFunctions.esm.js +139 -0
  315. package/dist/node_modules/@babylonjs/core/Shaders/ShadersInclude/helperFunctions.esm.js +166 -0
  316. package/dist/node_modules/@babylonjs/core/Shaders/ShadersInclude/imageProcessingDeclaration.esm.js +32 -0
  317. package/dist/node_modules/@babylonjs/core/Shaders/ShadersInclude/imageProcessingFunctions.esm.js +129 -0
  318. package/dist/node_modules/@babylonjs/core/Shaders/ShadersInclude/importanceSampling.esm.js +22 -0
  319. package/dist/node_modules/@babylonjs/core/Shaders/ShadersInclude/instancesDeclaration.esm.js +31 -0
  320. package/dist/node_modules/@babylonjs/core/Shaders/ShadersInclude/instancesVertex.esm.js +20 -0
  321. package/dist/node_modules/@babylonjs/core/Shaders/ShadersInclude/kernelBlurFragment.esm.js +15 -0
  322. package/dist/node_modules/@babylonjs/core/Shaders/ShadersInclude/kernelBlurFragment2.esm.js +15 -0
  323. package/dist/node_modules/@babylonjs/core/Shaders/ShadersInclude/kernelBlurVaryingDeclaration.esm.js +3 -0
  324. package/dist/node_modules/@babylonjs/core/Shaders/ShadersInclude/kernelBlurVertex.esm.js +3 -0
  325. package/dist/node_modules/@babylonjs/core/Shaders/ShadersInclude/lightFragment.esm.js +278 -0
  326. package/dist/node_modules/@babylonjs/core/Shaders/ShadersInclude/lightFragmentDeclaration.esm.js +82 -0
  327. package/dist/node_modules/@babylonjs/core/Shaders/ShadersInclude/lightUboDeclaration.esm.js +81 -0
  328. package/dist/node_modules/@babylonjs/core/Shaders/ShadersInclude/lightVxFragmentDeclaration.esm.js +35 -0
  329. package/dist/node_modules/@babylonjs/core/Shaders/ShadersInclude/lightVxUboDeclaration.esm.js +34 -0
  330. package/dist/node_modules/@babylonjs/core/Shaders/ShadersInclude/lightsFragmentFunctions.esm.js +93 -0
  331. package/dist/node_modules/@babylonjs/core/Shaders/ShadersInclude/logDepthDeclaration.esm.js +7 -0
  332. package/dist/node_modules/@babylonjs/core/Shaders/ShadersInclude/logDepthFragment.esm.js +6 -0
  333. package/dist/node_modules/@babylonjs/core/Shaders/ShadersInclude/logDepthVertex.esm.js +7 -0
  334. package/dist/node_modules/@babylonjs/core/Shaders/ShadersInclude/mainUVVaryingDeclaration.esm.js +6 -0
  335. package/dist/node_modules/@babylonjs/core/Shaders/ShadersInclude/meshUboDeclaration.esm.js +15 -0
  336. package/dist/node_modules/@babylonjs/core/Shaders/ShadersInclude/morphTargetsVertex.esm.js +32 -0
  337. package/dist/node_modules/@babylonjs/core/Shaders/ShadersInclude/morphTargetsVertexDeclaration.esm.js +17 -0
  338. package/dist/node_modules/@babylonjs/core/Shaders/ShadersInclude/morphTargetsVertexGlobal.esm.js +8 -0
  339. package/dist/node_modules/@babylonjs/core/Shaders/ShadersInclude/morphTargetsVertexGlobalDeclaration.esm.js +19 -0
  340. package/dist/node_modules/@babylonjs/core/Shaders/ShadersInclude/mrtFragmentDeclaration.esm.js +6 -0
  341. package/dist/node_modules/@babylonjs/core/Shaders/ShadersInclude/oitDeclaration.esm.js +13 -0
  342. package/dist/node_modules/@babylonjs/core/Shaders/ShadersInclude/oitFragment.esm.js +40 -0
  343. package/dist/node_modules/@babylonjs/core/Shaders/ShadersInclude/packingFunctions.esm.js +15 -0
  344. package/dist/node_modules/@babylonjs/core/Shaders/ShadersInclude/pbrBRDFFunctions.esm.js +268 -0
  345. package/dist/node_modules/@babylonjs/core/Shaders/ShadersInclude/pbrBlockAlbedoOpacity.esm.js +83 -0
  346. package/dist/node_modules/@babylonjs/core/Shaders/ShadersInclude/pbrBlockAlphaFresnel.esm.js +37 -0
  347. package/dist/node_modules/@babylonjs/core/Shaders/ShadersInclude/pbrBlockAmbientOcclusion.esm.js +32 -0
  348. package/dist/node_modules/@babylonjs/core/Shaders/ShadersInclude/pbrBlockAnisotropic.esm.js +50 -0
  349. package/dist/node_modules/@babylonjs/core/Shaders/ShadersInclude/pbrBlockClearcoat.esm.js +276 -0
  350. package/dist/node_modules/@babylonjs/core/Shaders/ShadersInclude/pbrBlockDirectLighting.esm.js +19 -0
  351. package/dist/node_modules/@babylonjs/core/Shaders/ShadersInclude/pbrBlockFinalColorComposition.esm.js +45 -0
  352. package/dist/node_modules/@babylonjs/core/Shaders/ShadersInclude/pbrBlockFinalLitComponents.esm.js +100 -0
  353. package/dist/node_modules/@babylonjs/core/Shaders/ShadersInclude/pbrBlockFinalUnlitComponents.esm.js +27 -0
  354. package/dist/node_modules/@babylonjs/core/Shaders/ShadersInclude/pbrBlockGeometryInfo.esm.js +30 -0
  355. package/dist/node_modules/@babylonjs/core/Shaders/ShadersInclude/pbrBlockImageProcessing.esm.js +14 -0
  356. package/dist/node_modules/@babylonjs/core/Shaders/ShadersInclude/pbrBlockIridescence.esm.js +63 -0
  357. package/dist/node_modules/@babylonjs/core/Shaders/ShadersInclude/pbrBlockLightmapInit.esm.js +13 -0
  358. package/dist/node_modules/@babylonjs/core/Shaders/ShadersInclude/pbrBlockNormalFinal.esm.js +13 -0
  359. package/dist/node_modules/@babylonjs/core/Shaders/ShadersInclude/pbrBlockNormalGeometric.esm.js +13 -0
  360. package/dist/node_modules/@babylonjs/core/Shaders/ShadersInclude/pbrBlockReflectance.esm.js +24 -0
  361. package/dist/node_modules/@babylonjs/core/Shaders/ShadersInclude/pbrBlockReflectance0.esm.js +14 -0
  362. package/dist/node_modules/@babylonjs/core/Shaders/ShadersInclude/pbrBlockReflection.esm.js +270 -0
  363. package/dist/node_modules/@babylonjs/core/Shaders/ShadersInclude/pbrBlockReflectivity.esm.js +131 -0
  364. package/dist/node_modules/@babylonjs/core/Shaders/ShadersInclude/pbrBlockSheen.esm.js +197 -0
  365. package/dist/node_modules/@babylonjs/core/Shaders/ShadersInclude/pbrBlockSubSurface.esm.js +337 -0
  366. package/dist/node_modules/@babylonjs/core/Shaders/ShadersInclude/pbrDebug.esm.js +176 -0
  367. package/dist/node_modules/@babylonjs/core/Shaders/ShadersInclude/pbrDirectLightingFalloffFunctions.esm.js +64 -0
  368. package/dist/node_modules/@babylonjs/core/Shaders/ShadersInclude/pbrDirectLightingFunctions.esm.js +130 -0
  369. package/dist/node_modules/@babylonjs/core/Shaders/ShadersInclude/pbrDirectLightingSetupFunctions.esm.js +53 -0
  370. package/dist/node_modules/@babylonjs/core/Shaders/ShadersInclude/pbrFragmentDeclaration.esm.js +179 -0
  371. package/dist/node_modules/@babylonjs/core/Shaders/ShadersInclude/pbrFragmentExtraDeclaration.esm.js +18 -0
  372. package/dist/node_modules/@babylonjs/core/Shaders/ShadersInclude/pbrFragmentSamplersDeclaration.esm.js +101 -0
  373. package/dist/node_modules/@babylonjs/core/Shaders/ShadersInclude/pbrHelperFunctions.esm.js +83 -0
  374. package/dist/node_modules/@babylonjs/core/Shaders/ShadersInclude/pbrIBLFunctions.esm.js +35 -0
  375. package/dist/node_modules/@babylonjs/core/Shaders/ShadersInclude/pbrUboDeclaration.esm.js +65 -0
  376. package/dist/node_modules/@babylonjs/core/Shaders/ShadersInclude/pbrVertexDeclaration.esm.js +151 -0
  377. package/dist/node_modules/@babylonjs/core/Shaders/ShadersInclude/pointCloudVertex.esm.js +6 -0
  378. package/dist/node_modules/@babylonjs/core/Shaders/ShadersInclude/prePassDeclaration.esm.js +13 -0
  379. package/dist/node_modules/@babylonjs/core/Shaders/ShadersInclude/prePassVertex.esm.js +37 -0
  380. package/dist/node_modules/@babylonjs/core/Shaders/ShadersInclude/prePassVertexDeclaration.esm.js +13 -0
  381. package/dist/node_modules/@babylonjs/core/Shaders/ShadersInclude/reflectionFunction.esm.js +116 -0
  382. package/dist/node_modules/@babylonjs/core/Shaders/ShadersInclude/samplerFragmentAlternateDeclaration.esm.js +20 -0
  383. package/dist/node_modules/@babylonjs/core/Shaders/ShadersInclude/samplerFragmentDeclaration.esm.js +21 -0
  384. package/dist/node_modules/@babylonjs/core/Shaders/ShadersInclude/samplerVertexDeclaration.esm.js +6 -0
  385. package/dist/node_modules/@babylonjs/core/Shaders/ShadersInclude/samplerVertexImplementation.esm.js +39 -0
  386. package/dist/node_modules/@babylonjs/core/Shaders/ShadersInclude/sceneUboDeclaration.esm.js +13 -0
  387. package/dist/node_modules/@babylonjs/core/Shaders/ShadersInclude/screenSpaceRayTrace.esm.js +208 -0
  388. package/dist/node_modules/@babylonjs/core/Shaders/ShadersInclude/shadowsFragmentFunctions.esm.js +614 -0
  389. package/dist/node_modules/@babylonjs/core/Shaders/ShadersInclude/shadowsVertex.esm.js +23 -0
  390. package/dist/node_modules/@babylonjs/core/Shaders/ShadersInclude/subSurfaceScatteringFunctions.esm.js +6 -0
  391. package/dist/node_modules/@babylonjs/core/Shaders/ShadersInclude/uvAttributeDeclaration.esm.js +6 -0
  392. package/dist/node_modules/@babylonjs/core/Shaders/ShadersInclude/uvVariableDeclaration.esm.js +9 -0
  393. package/dist/node_modules/@babylonjs/core/Shaders/ShadersInclude/vertexColorMixing.esm.js +16 -0
  394. package/dist/node_modules/@babylonjs/core/Shaders/bloomMerge.fragment.esm.js +14 -0
  395. package/dist/node_modules/@babylonjs/core/Shaders/boundingBoxRenderer.fragment.esm.js +11 -0
  396. package/dist/node_modules/@babylonjs/core/Shaders/boundingBoxRenderer.vertex.esm.js +22 -0
  397. package/dist/node_modules/@babylonjs/core/Shaders/chromaticAberration.fragment.esm.js +34 -0
  398. package/dist/node_modules/@babylonjs/core/Shaders/circleOfConfusion.fragment.esm.js +19 -0
  399. package/dist/node_modules/@babylonjs/core/Shaders/default.fragment.esm.js +387 -0
  400. package/dist/node_modules/@babylonjs/core/Shaders/default.vertex.esm.js +171 -0
  401. package/dist/node_modules/@babylonjs/core/Shaders/depth.fragment.esm.js +47 -0
  402. package/dist/node_modules/@babylonjs/core/Shaders/depth.vertex.esm.js +72 -0
  403. package/dist/node_modules/@babylonjs/core/Shaders/depthOfField.fragment.esm.js +137 -0
  404. package/dist/node_modules/@babylonjs/core/Shaders/depthOfFieldMerge.fragment.esm.js +54 -0
  405. package/dist/node_modules/@babylonjs/core/Shaders/extractHighlights.fragment.esm.js +15 -0
  406. package/dist/node_modules/@babylonjs/core/Shaders/fxaa.fragment.esm.js +211 -0
  407. package/dist/node_modules/@babylonjs/core/Shaders/fxaa.vertex.esm.js +29 -0
  408. package/dist/node_modules/@babylonjs/core/Shaders/geometry.fragment.esm.js +147 -0
  409. package/dist/node_modules/@babylonjs/core/Shaders/geometry.vertex.esm.js +164 -0
  410. package/dist/node_modules/@babylonjs/core/Shaders/glowBlurPostProcess.fragment.esm.js +39 -0
  411. package/dist/node_modules/@babylonjs/core/Shaders/glowMapGeneration.fragment.esm.js +73 -0
  412. package/dist/node_modules/@babylonjs/core/Shaders/glowMapGeneration.vertex.esm.js +94 -0
  413. package/dist/node_modules/@babylonjs/core/Shaders/glowMapMerge.fragment.esm.js +29 -0
  414. package/dist/node_modules/@babylonjs/core/Shaders/glowMapMerge.vertex.esm.js +12 -0
  415. package/dist/node_modules/@babylonjs/core/Shaders/grain.fragment.esm.js +19 -0
  416. package/dist/node_modules/@babylonjs/core/Shaders/hdrFiltering.fragment.esm.js +19 -0
  417. package/dist/node_modules/@babylonjs/core/Shaders/hdrFiltering.vertex.esm.js +15 -0
  418. package/dist/node_modules/@babylonjs/core/Shaders/imageProcessing.fragment.esm.js +26 -0
  419. package/dist/node_modules/@babylonjs/core/Shaders/kernelBlur.fragment.esm.js +49 -0
  420. package/dist/node_modules/@babylonjs/core/Shaders/kernelBlur.vertex.esm.js +17 -0
  421. package/dist/node_modules/@babylonjs/core/Shaders/lensHighlights.fragment.esm.js +115 -0
  422. package/dist/node_modules/@babylonjs/core/Shaders/motionBlur.fragment.esm.js +74 -0
  423. package/dist/node_modules/@babylonjs/core/Shaders/pass.fragment.esm.js +13 -0
  424. package/dist/node_modules/@babylonjs/core/Shaders/passCube.fragment.esm.js +27 -0
  425. package/dist/node_modules/@babylonjs/core/Shaders/pbr.fragment.esm.js +648 -0
  426. package/dist/node_modules/@babylonjs/core/Shaders/pbr.vertex.esm.js +236 -0
  427. package/dist/node_modules/@babylonjs/core/Shaders/postprocess.vertex.esm.js +13 -0
  428. package/dist/node_modules/@babylonjs/core/Shaders/rgbdDecode.fragment.esm.js +11 -0
  429. package/dist/node_modules/@babylonjs/core/Shaders/rgbdEncode.fragment.esm.js +11 -0
  430. package/dist/node_modules/@babylonjs/core/Shaders/screenSpaceReflection.fragment.esm.js +136 -0
  431. package/dist/node_modules/@babylonjs/core/Shaders/screenSpaceReflection2.fragment.esm.js +215 -0
  432. package/dist/node_modules/@babylonjs/core/Shaders/screenSpaceReflection2Blur.fragment.esm.js +52 -0
  433. package/dist/node_modules/@babylonjs/core/Shaders/screenSpaceReflection2BlurCombiner.fragment.esm.js +59 -0
  434. package/dist/node_modules/@babylonjs/core/Shaders/sharpen.fragment.esm.js +18 -0
  435. package/dist/node_modules/@babylonjs/core/Shaders/ssao.fragment.esm.js +55 -0
  436. package/dist/node_modules/@babylonjs/core/Shaders/ssao2.fragment.esm.js +165 -0
  437. package/dist/node_modules/@babylonjs/core/Shaders/ssaoCombine.fragment.esm.js +15 -0
  438. package/dist/node_modules/@babylonjs/core/Shaders/standard.fragment.esm.js +339 -0
  439. package/dist/node_modules/@babylonjs/core/States/alphaCullingState.esm.js +35 -0
  440. package/dist/node_modules/@babylonjs/core/States/depthCullingState.esm.js +69 -0
  441. package/dist/node_modules/@babylonjs/core/States/stencilState.esm.js +62 -0
  442. package/dist/node_modules/@babylonjs/core/States/stencilStateComposer.esm.js +70 -0
  443. package/dist/node_modules/@babylonjs/core/abstractScene.esm.js +71 -0
  444. package/dist/node_modules/@babylonjs/core/assetContainer.esm.js +425 -0
  445. package/dist/node_modules/@babylonjs/core/node.esm.js +536 -0
  446. package/dist/node_modules/@babylonjs/core/scene.esm.js +2809 -0
  447. package/dist/node_modules/@babylonjs/core/sceneComponent.esm.js +102 -0
  448. package/dist/node_modules/@babylonjs/core/tslib.es6.esm.js +12 -0
  449. package/dist/node_modules/@babylonjs/loaders/glTF/1.0/glTFBinaryExtension.esm.js +37 -0
  450. package/dist/node_modules/@babylonjs/loaders/glTF/1.0/glTFLoader.esm.js +902 -0
  451. package/dist/node_modules/@babylonjs/loaders/glTF/1.0/glTFLoaderInterfaces.esm.js +42 -0
  452. package/dist/node_modules/@babylonjs/loaders/glTF/1.0/glTFLoaderUtils.esm.js +195 -0
  453. package/dist/node_modules/@babylonjs/loaders/glTF/1.0/glTFMaterialsCommonExtension.esm.js +75 -0
  454. package/dist/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/EXT_lights_image_based.esm.js +77 -0
  455. package/dist/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/EXT_mesh_gpu_instancing.esm.js +53 -0
  456. package/dist/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/EXT_meshopt_compression.esm.js +31 -0
  457. package/dist/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/EXT_texture_webp.esm.js +29 -0
  458. package/dist/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/ExtrasAsMetadata.esm.js +47 -0
  459. package/dist/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_animation_pointer.data.esm.js +173 -0
  460. package/dist/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_animation_pointer.esm.js +82 -0
  461. package/dist/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_draco_mesh_compression.esm.js +68 -0
  462. package/dist/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_lights_punctual.esm.js +60 -0
  463. package/dist/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_materials_anisotropy.esm.js +39 -0
  464. package/dist/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_materials_clearcoat.esm.js +42 -0
  465. package/dist/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_materials_emissive_strength.esm.js +32 -0
  466. package/dist/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_materials_ior.esm.js +35 -0
  467. package/dist/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_materials_iridescence.esm.js +41 -0
  468. package/dist/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_materials_pbrSpecularGlossiness.esm.js +41 -0
  469. package/dist/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_materials_sheen.esm.js +41 -0
  470. package/dist/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_materials_specular.esm.js +41 -0
  471. package/dist/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_materials_translucency.esm.js +41 -0
  472. package/dist/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_materials_transmission.esm.js +136 -0
  473. package/dist/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_materials_unlit.esm.js +37 -0
  474. package/dist/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_materials_variants.esm.js +178 -0
  475. package/dist/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_materials_volume.esm.js +40 -0
  476. package/dist/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_mesh_quantization.esm.js +17 -0
  477. package/dist/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_texture_basisu.esm.js +29 -0
  478. package/dist/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_texture_transform.esm.js +29 -0
  479. package/dist/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_xmp_json_ld.esm.js +31 -0
  480. package/dist/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/MSFT_audio_emitter.esm.js +149 -0
  481. package/dist/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/MSFT_lod.esm.js +170 -0
  482. package/dist/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/MSFT_minecraftMesh.esm.js +29 -0
  483. package/dist/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/MSFT_sRGBFactors.esm.js +29 -0
  484. package/dist/node_modules/@babylonjs/loaders/glTF/2.0/glTFLoader.esm.js +1562 -0
  485. package/dist/node_modules/@babylonjs/loaders/glTF/2.0/glTFLoaderAnimation.esm.js +66 -0
  486. package/dist/node_modules/@babylonjs/loaders/glTF/glTFFileLoader.esm.js +462 -0
  487. package/dist/node_modules/@babylonjs/loaders/glTF/glTFValidation.esm.js +81 -0
  488. package/package.json +6 -4
  489. /package/dist/{src/index.esm.js → index.esm.js} +0 -0
@@ -0,0 +1,1562 @@
1
+ import { Deferred as U } from "../../../core/Misc/deferred.esm.js";
2
+ import { Vector3 as T, Quaternion as I, Matrix as P, TmpVectors as O } from "../../../core/Maths/math.vector.esm.js";
3
+ import { Color3 as R } from "../../../core/Maths/math.color.esm.js";
4
+ import { Tools as L } from "../../../core/Misc/tools.esm.js";
5
+ import { Camera as W } from "../../../core/Cameras/camera.esm.js";
6
+ import { FreeCamera as K } from "../../../core/Cameras/freeCamera.esm.js";
7
+ import { AnimationKeyInterpolation as z } from "../../../core/Animations/animationKey.esm.js";
8
+ import { AnimationGroup as H } from "../../../core/Animations/animationGroup.esm.js";
9
+ import { Bone as X } from "../../../core/Bones/bone.esm.js";
10
+ import { Skeleton as Z } from "../../../core/Bones/skeleton.esm.js";
11
+ import { Material as C } from "../../../core/Materials/material.esm.js";
12
+ import { PBRMaterial as M } from "../../../core/Materials/PBR/pbrMaterial.esm.js";
13
+ import { Texture as A } from "../../../core/Materials/Textures/texture.esm.js";
14
+ import { TransformNode as k } from "../../../core/Meshes/transformNode.esm.js";
15
+ import { VertexBuffer as p, Buffer as Q } from "../../../core/Buffers/buffer.esm.js";
16
+ import { Geometry as J } from "../../../core/Meshes/geometry.esm.js";
17
+ import { Mesh as V } from "../../../core/Meshes/mesh.esm.js";
18
+ import { MorphTarget as Y } from "../../../core/Morph/morphTarget.esm.js";
19
+ import { MorphTargetManager as j } from "../../../core/Morph/morphTargetManager.esm.js";
20
+ import { GLTFFileLoader as q, GLTFLoaderState as x, GLTFLoaderCoordinateSystemMode as D, GLTFLoaderAnimationStartMode as B } from "../glTFFileLoader.esm.js";
21
+ import { IsBase64DataUrl as ee, DecodeBase64UrlToBinary as te, LoadFileError as ne } from "../../../core/Misc/fileTools.esm.js";
22
+ import { Logger as $ } from "../../../core/Misc/logger.esm.js";
23
+ import { BoundingInfo as se } from "../../../core/Culling/boundingInfo.esm.js";
24
+ import { nodeAnimationData as N } from "./glTFLoaderAnimation.esm.js";
25
+ function F(...v) {
26
+ const t = (e) => e && typeof e == "object";
27
+ return v.reduce((e, n) => (Object.keys(n).forEach((s) => {
28
+ const r = e[s], o = n[s];
29
+ Array.isArray(r) && Array.isArray(o) ? e[s] = r.concat(...o) : t(r) && t(o) ? e[s] = F(r, o) : e[s] = o;
30
+ }), e), {});
31
+ }
32
+ class c {
33
+ /**
34
+ * Gets an item from the given array.
35
+ * @param context The context when loading the asset
36
+ * @param array The array to get the item from
37
+ * @param index The index to the array
38
+ * @returns The array item
39
+ */
40
+ static Get(t, e, n) {
41
+ if (!e || n == null || !e[n])
42
+ throw new Error(`${t}: Failed to find index (${n})`);
43
+ return e[n];
44
+ }
45
+ /**
46
+ * Assign an `index` field to each item of the given array.
47
+ * @param array The array of items
48
+ */
49
+ static Assign(t) {
50
+ if (t)
51
+ for (let e = 0; e < t.length; e++)
52
+ t[e].index = e;
53
+ }
54
+ }
55
+ class u {
56
+ /**
57
+ * Registers a loader extension.
58
+ * @param name The name of the loader extension.
59
+ * @param factory The factory function that creates the loader extension.
60
+ */
61
+ static RegisterExtension(t, e) {
62
+ u.UnregisterExtension(t) && $.Warn(`Extension with the name '${t}' already exists`), u._RegisteredExtensions[t] = {
63
+ factory: e
64
+ };
65
+ }
66
+ /**
67
+ * Unregisters a loader extension.
68
+ * @param name The name of the loader extension.
69
+ * @returns A boolean indicating whether the extension has been unregistered
70
+ */
71
+ static UnregisterExtension(t) {
72
+ return u._RegisteredExtensions[t] ? (delete u._RegisteredExtensions[t], !0) : !1;
73
+ }
74
+ /**
75
+ * The object that represents the glTF JSON.
76
+ */
77
+ get gltf() {
78
+ if (!this._gltf)
79
+ throw new Error("glTF JSON is not available");
80
+ return this._gltf;
81
+ }
82
+ /**
83
+ * The BIN chunk of a binary glTF.
84
+ */
85
+ get bin() {
86
+ return this._bin;
87
+ }
88
+ /**
89
+ * The parent file loader.
90
+ */
91
+ get parent() {
92
+ return this._parent;
93
+ }
94
+ /**
95
+ * The Babylon scene when loading the asset.
96
+ */
97
+ get babylonScene() {
98
+ if (!this._babylonScene)
99
+ throw new Error("Scene is not available");
100
+ return this._babylonScene;
101
+ }
102
+ /**
103
+ * The root Babylon mesh when loading the asset.
104
+ */
105
+ get rootBabylonMesh() {
106
+ return this._rootBabylonMesh;
107
+ }
108
+ /**
109
+ * @internal
110
+ */
111
+ constructor(t) {
112
+ this._completePromises = new Array(), this._assetContainer = null, this._babylonLights = [], this._disableInstancedMesh = 0, this._extensions = new Array(), this._disposed = !1, this._rootUrl = null, this._fileName = null, this._uniqueRootUrl = null, this._bin = null, this._rootBabylonMesh = null, this._defaultBabylonMaterialData = {}, this._postSceneLoadActions = new Array(), this._parent = t;
113
+ }
114
+ /** @internal */
115
+ dispose() {
116
+ this._disposed || (this._disposed = !0, this._completePromises.length = 0, this._extensions.forEach((t) => t.dispose && t.dispose()), this._extensions.length = 0, this._gltf = null, this._bin = null, this._babylonScene = null, this._rootBabylonMesh = null, this._defaultBabylonMaterialData = {}, this._postSceneLoadActions.length = 0, this._parent.dispose());
117
+ }
118
+ /**
119
+ * @internal
120
+ */
121
+ importMeshAsync(t, e, n, s, r, o, i = "") {
122
+ return Promise.resolve().then(() => {
123
+ this._babylonScene = e, this._assetContainer = n, this._loadData(s);
124
+ let a = null;
125
+ if (t) {
126
+ const l = {};
127
+ if (this._gltf.nodes)
128
+ for (const f of this._gltf.nodes)
129
+ f.name && (l[f.name] = f.index);
130
+ a = (t instanceof Array ? t : [t]).map((f) => {
131
+ const d = l[f];
132
+ if (d === void 0)
133
+ throw new Error(`Failed to find node '${f}'`);
134
+ return d;
135
+ });
136
+ }
137
+ return this._loadAsync(r, i, a, () => ({
138
+ meshes: this._getMeshes(),
139
+ particleSystems: [],
140
+ skeletons: this._getSkeletons(),
141
+ animationGroups: this._getAnimationGroups(),
142
+ lights: this._babylonLights,
143
+ transformNodes: this._getTransformNodes(),
144
+ geometries: this._getGeometries()
145
+ }));
146
+ });
147
+ }
148
+ /**
149
+ * @internal
150
+ */
151
+ loadAsync(t, e, n, s, r = "") {
152
+ return Promise.resolve().then(() => (this._babylonScene = t, this._loadData(e), this._loadAsync(n, r, null, () => {
153
+ })));
154
+ }
155
+ _loadAsync(t, e, n, s) {
156
+ return Promise.resolve().then(() => {
157
+ this._rootUrl = t, this._uniqueRootUrl = !t.startsWith("file:") && e ? t : `${t}${Date.now()}/`, this._fileName = e, this._loadExtensions(), this._checkExtensions();
158
+ const r = `${x[x.LOADING]} => ${x[x.READY]}`, o = `${x[x.LOADING]} => ${x[x.COMPLETE]}`;
159
+ this._parent._startPerformanceCounter(r), this._parent._startPerformanceCounter(o), this._parent._setState(x.LOADING), this._extensionsOnLoading();
160
+ const i = new Array(), a = this._babylonScene.blockMaterialDirtyMechanism;
161
+ if (this._babylonScene.blockMaterialDirtyMechanism = !0, !this.parent.loadOnlyMaterials) {
162
+ if (n)
163
+ i.push(this.loadSceneAsync("/nodes", { nodes: n, index: -1 }));
164
+ else if (this._gltf.scene != null || this._gltf.scenes && this._gltf.scenes[0]) {
165
+ const h = c.Get("/scene", this._gltf.scenes, this._gltf.scene || 0);
166
+ i.push(this.loadSceneAsync(`/scenes/${h.index}`, h));
167
+ }
168
+ }
169
+ if (!this.parent.skipMaterials && this.parent.loadAllMaterials && this._gltf.materials)
170
+ for (let h = 0; h < this._gltf.materials.length; ++h) {
171
+ const f = this._gltf.materials[h], d = "/materials/" + h, m = C.TriangleFillMode;
172
+ i.push(this._loadMaterialAsync(d, f, null, m, () => {
173
+ }));
174
+ }
175
+ return this._babylonScene.blockMaterialDirtyMechanism = a, this._parent.compileMaterials && i.push(this._compileMaterialsAsync()), this._parent.compileShadowGenerators && i.push(this._compileShadowGeneratorsAsync()), Promise.all(i).then(() => (this._rootBabylonMesh && this._rootBabylonMesh.setEnabled(!0), this._extensionsOnReady(), this._parent._setState(x.READY), this._startAnimations(), s())).then((h) => (this._parent._endPerformanceCounter(r), L.SetImmediate(() => {
176
+ this._disposed || Promise.all(this._completePromises).then(() => {
177
+ this._parent._endPerformanceCounter(o), this._parent._setState(x.COMPLETE), this._parent.onCompleteObservable.notifyObservers(void 0), this._parent.onCompleteObservable.clear(), this.dispose();
178
+ }, (f) => {
179
+ this._parent.onErrorObservable.notifyObservers(f), this._parent.onErrorObservable.clear(), this.dispose();
180
+ });
181
+ }), h));
182
+ }).catch((r) => {
183
+ throw this._disposed || (this._parent.onErrorObservable.notifyObservers(r), this._parent.onErrorObservable.clear(), this.dispose()), r;
184
+ });
185
+ }
186
+ _loadData(t) {
187
+ if (this._gltf = t.json, this._setupData(), t.bin) {
188
+ const e = this._gltf.buffers;
189
+ if (e && e[0] && !e[0].uri) {
190
+ const n = e[0];
191
+ (n.byteLength < t.bin.byteLength - 3 || n.byteLength > t.bin.byteLength) && $.Warn(`Binary buffer length (${n.byteLength}) from JSON does not match chunk length (${t.bin.byteLength})`), this._bin = t.bin;
192
+ } else
193
+ $.Warn("Unexpected BIN chunk");
194
+ }
195
+ }
196
+ _setupData() {
197
+ if (c.Assign(this._gltf.accessors), c.Assign(this._gltf.animations), c.Assign(this._gltf.buffers), c.Assign(this._gltf.bufferViews), c.Assign(this._gltf.cameras), c.Assign(this._gltf.images), c.Assign(this._gltf.materials), c.Assign(this._gltf.meshes), c.Assign(this._gltf.nodes), c.Assign(this._gltf.samplers), c.Assign(this._gltf.scenes), c.Assign(this._gltf.skins), c.Assign(this._gltf.textures), this._gltf.nodes) {
198
+ const t = {};
199
+ for (const n of this._gltf.nodes)
200
+ if (n.children)
201
+ for (const s of n.children)
202
+ t[s] = n.index;
203
+ const e = this._createRootNode();
204
+ for (const n of this._gltf.nodes) {
205
+ const s = t[n.index];
206
+ n.parent = s === void 0 ? e : this._gltf.nodes[s];
207
+ }
208
+ }
209
+ }
210
+ _loadExtensions() {
211
+ for (const t in u._RegisteredExtensions) {
212
+ const e = u._RegisteredExtensions[t].factory(this);
213
+ e.name !== t && $.Warn(`The name of the glTF loader extension instance does not match the registered name: ${e.name} !== ${t}`), this._extensions.push(e), this._parent.onExtensionLoadedObservable.notifyObservers(e);
214
+ }
215
+ this._extensions.sort((t, e) => (t.order || Number.MAX_VALUE) - (e.order || Number.MAX_VALUE)), this._parent.onExtensionLoadedObservable.clear();
216
+ }
217
+ _checkExtensions() {
218
+ if (this._gltf.extensionsRequired) {
219
+ for (const t of this._gltf.extensionsRequired)
220
+ if (!this._extensions.some((n) => n.name === t && n.enabled))
221
+ throw new Error(`Require extension ${t} is not available`);
222
+ }
223
+ }
224
+ _createRootNode() {
225
+ this._babylonScene._blockEntityCollection = !!this._assetContainer, this._rootBabylonMesh = new V("__root__", this._babylonScene), this._rootBabylonMesh._parentContainer = this._assetContainer, this._babylonScene._blockEntityCollection = !1, this._rootBabylonMesh.setEnabled(!1);
226
+ const t = {
227
+ _babylonTransformNode: this._rootBabylonMesh,
228
+ index: -1
229
+ };
230
+ switch (this._parent.coordinateSystemMode) {
231
+ case D.AUTO: {
232
+ this._babylonScene.useRightHandedSystem || (t.rotation = [0, 1, 0, 0], t.scale = [1, 1, -1], u._LoadTransform(t, this._rootBabylonMesh));
233
+ break;
234
+ }
235
+ case D.FORCE_RIGHT_HANDED: {
236
+ this._babylonScene.useRightHandedSystem = !0;
237
+ break;
238
+ }
239
+ default:
240
+ throw new Error(`Invalid coordinate system mode (${this._parent.coordinateSystemMode})`);
241
+ }
242
+ return this._parent.onMeshLoadedObservable.notifyObservers(this._rootBabylonMesh), t;
243
+ }
244
+ /**
245
+ * Loads a glTF scene.
246
+ * @param context The context when loading the asset
247
+ * @param scene The glTF scene property
248
+ * @returns A promise that resolves when the load is complete
249
+ */
250
+ loadSceneAsync(t, e) {
251
+ const n = this._extensionsLoadSceneAsync(t, e);
252
+ if (n)
253
+ return n;
254
+ const s = new Array();
255
+ if (this.logOpen(`${t} ${e.name || ""}`), e.nodes)
256
+ for (const r of e.nodes) {
257
+ const o = c.Get(`${t}/nodes/${r}`, this._gltf.nodes, r);
258
+ s.push(this.loadNodeAsync(`/nodes/${o.index}`, o, (i) => {
259
+ i.parent = this._rootBabylonMesh;
260
+ }));
261
+ }
262
+ for (const r of this._postSceneLoadActions)
263
+ r();
264
+ return s.push(this._loadAnimationsAsync()), this.logClose(), Promise.all(s).then(() => {
265
+ });
266
+ }
267
+ _forEachPrimitive(t, e) {
268
+ if (t._primitiveBabylonMeshes)
269
+ for (const n of t._primitiveBabylonMeshes)
270
+ e(n);
271
+ }
272
+ _getGeometries() {
273
+ const t = new Array(), e = this._gltf.nodes;
274
+ if (e)
275
+ for (const n of e)
276
+ this._forEachPrimitive(n, (s) => {
277
+ const r = s.geometry;
278
+ r && t.indexOf(r) === -1 && t.push(r);
279
+ });
280
+ return t;
281
+ }
282
+ _getMeshes() {
283
+ const t = new Array();
284
+ this._rootBabylonMesh && t.push(this._rootBabylonMesh);
285
+ const e = this._gltf.nodes;
286
+ if (e)
287
+ for (const n of e)
288
+ this._forEachPrimitive(n, (s) => {
289
+ t.push(s);
290
+ });
291
+ return t;
292
+ }
293
+ _getTransformNodes() {
294
+ const t = new Array(), e = this._gltf.nodes;
295
+ if (e)
296
+ for (const n of e)
297
+ n._babylonTransformNode && n._babylonTransformNode.getClassName() === "TransformNode" && t.push(n._babylonTransformNode), n._babylonTransformNodeForSkin && t.push(n._babylonTransformNodeForSkin);
298
+ return t;
299
+ }
300
+ _getSkeletons() {
301
+ const t = new Array(), e = this._gltf.skins;
302
+ if (e)
303
+ for (const n of e)
304
+ n._data && t.push(n._data.babylonSkeleton);
305
+ return t;
306
+ }
307
+ _getAnimationGroups() {
308
+ const t = new Array(), e = this._gltf.animations;
309
+ if (e)
310
+ for (const n of e)
311
+ n._babylonAnimationGroup && t.push(n._babylonAnimationGroup);
312
+ return t;
313
+ }
314
+ _startAnimations() {
315
+ switch (this._parent.animationStartMode) {
316
+ case B.NONE:
317
+ break;
318
+ case B.FIRST: {
319
+ const t = this._getAnimationGroups();
320
+ t.length !== 0 && t[0].start(!0);
321
+ break;
322
+ }
323
+ case B.ALL: {
324
+ const t = this._getAnimationGroups();
325
+ for (const e of t)
326
+ e.start(!0);
327
+ break;
328
+ }
329
+ default: {
330
+ $.Error(`Invalid animation start mode (${this._parent.animationStartMode})`);
331
+ return;
332
+ }
333
+ }
334
+ }
335
+ /**
336
+ * Loads a glTF node.
337
+ * @param context The context when loading the asset
338
+ * @param node The glTF node property
339
+ * @param assign A function called synchronously after parsing the glTF properties
340
+ * @returns A promise that resolves with the loaded Babylon mesh when the load is complete
341
+ */
342
+ loadNodeAsync(t, e, n = () => {
343
+ }) {
344
+ const s = this._extensionsLoadNodeAsync(t, e, n);
345
+ if (s)
346
+ return s;
347
+ if (e._babylonTransformNode)
348
+ throw new Error(`${t}: Invalid recursive node hierarchy`);
349
+ const r = new Array();
350
+ this.logOpen(`${t} ${e.name || ""}`);
351
+ const o = (i) => {
352
+ if (u.AddPointerMetadata(i, t), u._LoadTransform(e, i), e.camera != null) {
353
+ const a = c.Get(`${t}/camera`, this._gltf.cameras, e.camera);
354
+ r.push(this.loadCameraAsync(`/cameras/${a.index}`, a, (l) => {
355
+ l.parent = i;
356
+ }));
357
+ }
358
+ if (e.children)
359
+ for (const a of e.children) {
360
+ const l = c.Get(`${t}/children/${a}`, this._gltf.nodes, a);
361
+ r.push(this.loadNodeAsync(`/nodes/${l.index}`, l, (h) => {
362
+ h.parent = i;
363
+ }));
364
+ }
365
+ n(i);
366
+ };
367
+ if (e.mesh == null || e.skin != null) {
368
+ const i = e.name || `node${e.index}`;
369
+ this._babylonScene._blockEntityCollection = !!this._assetContainer;
370
+ const a = new k(i, this._babylonScene);
371
+ a._parentContainer = this._assetContainer, this._babylonScene._blockEntityCollection = !1, e.mesh == null ? e._babylonTransformNode = a : e._babylonTransformNodeForSkin = a, o(a);
372
+ }
373
+ if (e.mesh != null)
374
+ if (e.skin == null) {
375
+ const i = c.Get(`${t}/mesh`, this._gltf.meshes, e.mesh);
376
+ r.push(this._loadMeshAsync(`/meshes/${i.index}`, e, i, o));
377
+ } else {
378
+ const i = c.Get(`${t}/mesh`, this._gltf.meshes, e.mesh);
379
+ r.push(this._loadMeshAsync(`/meshes/${i.index}`, e, i, (a) => {
380
+ const l = e._babylonTransformNodeForSkin;
381
+ a.metadata = F(l.metadata, a.metadata || {});
382
+ const h = c.Get(`${t}/skin`, this._gltf.skins, e.skin);
383
+ r.push(this._loadSkinAsync(`/skins/${h.index}`, e, h, (f) => {
384
+ this._forEachPrimitive(e, (d) => {
385
+ d.skeleton = f;
386
+ }), this._postSceneLoadActions.push(() => {
387
+ if (h.skeleton != null) {
388
+ const d = c.Get(`/skins/${h.index}/skeleton`, this._gltf.nodes, h.skeleton).parent;
389
+ e.index === d.index ? a.parent = l.parent : a.parent = d._babylonTransformNode;
390
+ } else
391
+ a.parent = this._rootBabylonMesh;
392
+ this._parent.onSkinLoadedObservable.notifyObservers({ node: l, skinnedNode: a });
393
+ });
394
+ }));
395
+ }));
396
+ }
397
+ return this.logClose(), Promise.all(r).then(() => (this._forEachPrimitive(e, (i) => {
398
+ i.geometry && i.geometry.useBoundingInfoFromGeometry ? i._updateBoundingInfo() : i.refreshBoundingInfo(!0);
399
+ }), e._babylonTransformNode));
400
+ }
401
+ _loadMeshAsync(t, e, n, s) {
402
+ const r = n.primitives;
403
+ if (!r || !r.length)
404
+ throw new Error(`${t}: Primitives are missing`);
405
+ r[0].index == null && c.Assign(r);
406
+ const o = new Array();
407
+ this.logOpen(`${t} ${n.name || ""}`);
408
+ const i = e.name || `node${e.index}`;
409
+ if (r.length === 1) {
410
+ const a = n.primitives[0];
411
+ o.push(this._loadMeshPrimitiveAsync(`${t}/primitives/${a.index}`, i, e, n, a, (l) => {
412
+ e._babylonTransformNode = l, e._primitiveBabylonMeshes = [l];
413
+ }));
414
+ } else {
415
+ this._babylonScene._blockEntityCollection = !!this._assetContainer, e._babylonTransformNode = new k(i, this._babylonScene), e._babylonTransformNode._parentContainer = this._assetContainer, this._babylonScene._blockEntityCollection = !1, e._primitiveBabylonMeshes = [];
416
+ for (const a of r)
417
+ o.push(this._loadMeshPrimitiveAsync(`${t}/primitives/${a.index}`, `${i}_primitive${a.index}`, e, n, a, (l) => {
418
+ l.parent = e._babylonTransformNode, e._primitiveBabylonMeshes.push(l);
419
+ }));
420
+ }
421
+ return s(e._babylonTransformNode), this.logClose(), Promise.all(o).then(() => e._babylonTransformNode);
422
+ }
423
+ /**
424
+ * @internal Define this method to modify the default behavior when loading data for mesh primitives.
425
+ * @param context The context when loading the asset
426
+ * @param name The mesh name when loading the asset
427
+ * @param node The glTF node when loading the asset
428
+ * @param mesh The glTF mesh when loading the asset
429
+ * @param primitive The glTF mesh primitive property
430
+ * @param assign A function called synchronously after parsing the glTF properties
431
+ * @returns A promise that resolves with the loaded mesh when the load is complete or null if not handled
432
+ */
433
+ _loadMeshPrimitiveAsync(t, e, n, s, r, o) {
434
+ const i = this._extensionsLoadMeshPrimitiveAsync(t, e, n, s, r, o);
435
+ if (i)
436
+ return i;
437
+ this.logOpen(`${t}`);
438
+ const a = this._disableInstancedMesh === 0 && this._parent.createInstances && n.skin == null && !s.primitives[0].targets;
439
+ let l, h;
440
+ if (a && r._instanceData)
441
+ this._babylonScene._blockEntityCollection = !!this._assetContainer, l = r._instanceData.babylonSourceMesh.createInstance(e), l._parentContainer = this._assetContainer, this._babylonScene._blockEntityCollection = !1, h = r._instanceData.promise;
442
+ else {
443
+ const f = new Array();
444
+ this._babylonScene._blockEntityCollection = !!this._assetContainer;
445
+ const d = new V(e, this._babylonScene);
446
+ d._parentContainer = this._assetContainer, this._babylonScene._blockEntityCollection = !1, d.overrideMaterialSideOrientation = this._babylonScene.useRightHandedSystem ? C.CounterClockWiseSideOrientation : C.ClockWiseSideOrientation, this._createMorphTargets(t, n, s, r, d), f.push(this._loadVertexDataAsync(t, r, d).then((_) => this._loadMorphTargetsAsync(t, r, d, _).then(() => {
447
+ this._disposed || (this._babylonScene._blockEntityCollection = !!this._assetContainer, _.applyToMesh(d), _._parentContainer = this._assetContainer, this._babylonScene._blockEntityCollection = !1);
448
+ })));
449
+ const m = u._GetDrawMode(t, r.mode);
450
+ if (r.material == null) {
451
+ let _ = this._defaultBabylonMaterialData[m];
452
+ _ || (_ = this._createDefaultMaterial("__GLTFLoader._default", m), this._parent.onMaterialLoadedObservable.notifyObservers(_), this._defaultBabylonMaterialData[m] = _), d.material = _;
453
+ } else if (!this.parent.skipMaterials) {
454
+ const _ = c.Get(`${t}/material`, this._gltf.materials, r.material);
455
+ f.push(this._loadMaterialAsync(`/materials/${_.index}`, _, d, m, (E) => {
456
+ d.material = E;
457
+ }));
458
+ }
459
+ h = Promise.all(f), a && (r._instanceData = {
460
+ babylonSourceMesh: d,
461
+ promise: h
462
+ }), l = d;
463
+ }
464
+ return u.AddPointerMetadata(l, t), this._parent.onMeshLoadedObservable.notifyObservers(l), o(l), this.logClose(), h.then(() => l);
465
+ }
466
+ _loadVertexDataAsync(t, e, n) {
467
+ const s = this._extensionsLoadVertexDataAsync(t, e, n);
468
+ if (s)
469
+ return s;
470
+ const r = e.attributes;
471
+ if (!r)
472
+ throw new Error(`${t}: Attributes are missing`);
473
+ const o = new Array(), i = new J(n.name, this._babylonScene);
474
+ if (e.indices == null)
475
+ n.isUnIndexed = !0;
476
+ else {
477
+ const l = c.Get(`${t}/indices`, this._gltf.accessors, e.indices);
478
+ o.push(this._loadIndicesAccessorAsync(`/accessors/${l.index}`, l).then((h) => {
479
+ i.setIndices(h);
480
+ }));
481
+ }
482
+ const a = (l, h, f) => {
483
+ if (r[l] == null)
484
+ return;
485
+ n._delayInfo = n._delayInfo || [], n._delayInfo.indexOf(h) === -1 && n._delayInfo.push(h);
486
+ const d = c.Get(`${t}/attributes/${l}`, this._gltf.accessors, r[l]);
487
+ o.push(this._loadVertexAccessorAsync(`/accessors/${d.index}`, d, h).then((m) => {
488
+ if (m.getKind() === p.PositionKind && !this.parent.alwaysComputeBoundingBox && !n.skeleton && d.min && d.max) {
489
+ const _ = O.Vector3[0].copyFromFloats(...d.min), E = O.Vector3[1].copyFromFloats(...d.max);
490
+ if (d.normalized && d.componentType !== 5126) {
491
+ let g = 1;
492
+ switch (d.componentType) {
493
+ case 5120:
494
+ g = 127;
495
+ break;
496
+ case 5121:
497
+ g = 255;
498
+ break;
499
+ case 5122:
500
+ g = 32767;
501
+ break;
502
+ case 5123:
503
+ g = 65535;
504
+ break;
505
+ }
506
+ const b = 1 / g;
507
+ _.scaleInPlace(b), E.scaleInPlace(b);
508
+ }
509
+ i._boundingInfo = new se(_, E), i.useBoundingInfoFromGeometry = !0;
510
+ }
511
+ i.setVerticesBuffer(m, d.count);
512
+ })), h == p.MatricesIndicesExtraKind && (n.numBoneInfluencers = 8), f && f(d);
513
+ };
514
+ return a("POSITION", p.PositionKind), a("NORMAL", p.NormalKind), a("TANGENT", p.TangentKind), a("TEXCOORD_0", p.UVKind), a("TEXCOORD_1", p.UV2Kind), a("TEXCOORD_2", p.UV3Kind), a("TEXCOORD_3", p.UV4Kind), a("TEXCOORD_4", p.UV5Kind), a("TEXCOORD_5", p.UV6Kind), a("JOINTS_0", p.MatricesIndicesKind), a("WEIGHTS_0", p.MatricesWeightsKind), a("JOINTS_1", p.MatricesIndicesExtraKind), a("WEIGHTS_1", p.MatricesWeightsExtraKind), a("COLOR_0", p.ColorKind, (l) => {
515
+ l.type === "VEC4" && (n.hasVertexAlpha = !0);
516
+ }), Promise.all(o).then(() => i);
517
+ }
518
+ _createMorphTargets(t, e, n, s, r) {
519
+ if (!s.targets)
520
+ return;
521
+ if (e._numMorphTargets == null)
522
+ e._numMorphTargets = s.targets.length;
523
+ else if (s.targets.length !== e._numMorphTargets)
524
+ throw new Error(`${t}: Primitives do not have the same number of targets`);
525
+ const o = n.extras ? n.extras.targetNames : null;
526
+ this._babylonScene._blockEntityCollection = !!this._assetContainer, r.morphTargetManager = new j(this._babylonScene), r.morphTargetManager._parentContainer = this._assetContainer, this._babylonScene._blockEntityCollection = !1, r.morphTargetManager.areUpdatesFrozen = !0;
527
+ for (let i = 0; i < s.targets.length; i++) {
528
+ const a = e.weights ? e.weights[i] : n.weights ? n.weights[i] : 0, l = o ? o[i] : `morphTarget${i}`;
529
+ r.morphTargetManager.addTarget(new Y(l, a, r.getScene()));
530
+ }
531
+ }
532
+ _loadMorphTargetsAsync(t, e, n, s) {
533
+ if (!e.targets)
534
+ return Promise.resolve();
535
+ const r = new Array(), o = n.morphTargetManager;
536
+ for (let i = 0; i < o.numTargets; i++) {
537
+ const a = o.getTarget(i);
538
+ r.push(this._loadMorphTargetVertexDataAsync(`${t}/targets/${i}`, s, e.targets[i], a));
539
+ }
540
+ return Promise.all(r).then(() => {
541
+ o.areUpdatesFrozen = !1;
542
+ });
543
+ }
544
+ _loadMorphTargetVertexDataAsync(t, e, n, s) {
545
+ const r = new Array(), o = (i, a, l) => {
546
+ if (n[i] == null)
547
+ return;
548
+ const h = e.getVertexBuffer(a);
549
+ if (!h)
550
+ return;
551
+ const f = c.Get(`${t}/${i}`, this._gltf.accessors, n[i]);
552
+ r.push(this._loadFloatAccessorAsync(`/accessors/${f.index}`, f).then((d) => {
553
+ l(h, d);
554
+ }));
555
+ };
556
+ return o("POSITION", p.PositionKind, (i, a) => {
557
+ const l = new Float32Array(a.length);
558
+ i.forEach(a.length, (h, f) => {
559
+ l[f] = a[f] + h;
560
+ }), s.setPositions(l);
561
+ }), o("NORMAL", p.NormalKind, (i, a) => {
562
+ const l = new Float32Array(a.length);
563
+ i.forEach(l.length, (h, f) => {
564
+ l[f] = a[f] + h;
565
+ }), s.setNormals(l);
566
+ }), o("TANGENT", p.TangentKind, (i, a) => {
567
+ const l = new Float32Array(a.length / 3 * 4);
568
+ let h = 0;
569
+ i.forEach(a.length / 3 * 4, (f, d) => {
570
+ (d + 1) % 4 !== 0 && (l[h] = a[h] + f, h++);
571
+ }), s.setTangents(l);
572
+ }), Promise.all(r).then(() => {
573
+ });
574
+ }
575
+ static _LoadTransform(t, e) {
576
+ if (t.skin != null)
577
+ return;
578
+ let n = T.Zero(), s = I.Identity(), r = T.One();
579
+ t.matrix ? P.FromArray(t.matrix).decompose(r, s, n) : (t.translation && (n = T.FromArray(t.translation)), t.rotation && (s = I.FromArray(t.rotation)), t.scale && (r = T.FromArray(t.scale))), e.position = n, e.rotationQuaternion = s, e.scaling = r;
580
+ }
581
+ _loadSkinAsync(t, e, n, s) {
582
+ const r = this._extensionsLoadSkinAsync(t, e, n);
583
+ if (r)
584
+ return r;
585
+ if (n._data)
586
+ return s(n._data.babylonSkeleton), n._data.promise;
587
+ const o = `skeleton${n.index}`;
588
+ this._babylonScene._blockEntityCollection = !!this._assetContainer;
589
+ const i = new Z(n.name || o, o, this._babylonScene);
590
+ i._parentContainer = this._assetContainer, this._babylonScene._blockEntityCollection = !1, this._loadBones(t, n, i);
591
+ const a = this._loadSkinInverseBindMatricesDataAsync(t, n).then((l) => {
592
+ this._updateBoneMatrices(i, l);
593
+ });
594
+ return n._data = {
595
+ babylonSkeleton: i,
596
+ promise: a
597
+ }, s(i), a;
598
+ }
599
+ _loadBones(t, e, n) {
600
+ if (e.skeleton == null || this._parent.alwaysComputeSkeletonRootNode) {
601
+ const r = this._findSkeletonRootNode(`${t}/joints`, e.joints);
602
+ if (r)
603
+ if (e.skeleton === void 0)
604
+ e.skeleton = r.index;
605
+ else {
606
+ const o = (a, l) => {
607
+ for (; l.parent; l = l.parent)
608
+ if (l.parent === a)
609
+ return !0;
610
+ return !1;
611
+ }, i = c.Get(`${t}/skeleton`, this._gltf.nodes, e.skeleton);
612
+ i !== r && !o(i, r) && ($.Warn(`${t}/skeleton: Overriding with nearest common ancestor as skeleton node is not a common root`), e.skeleton = r.index);
613
+ }
614
+ else
615
+ $.Warn(`${t}: Failed to find common root`);
616
+ }
617
+ const s = {};
618
+ for (const r of e.joints) {
619
+ const o = c.Get(`${t}/joints/${r}`, this._gltf.nodes, r);
620
+ this._loadBone(o, e, n, s);
621
+ }
622
+ }
623
+ _findSkeletonRootNode(t, e) {
624
+ if (e.length === 0)
625
+ return null;
626
+ const n = {};
627
+ for (const r of e) {
628
+ const o = new Array();
629
+ let i = c.Get(`${t}/${r}`, this._gltf.nodes, r);
630
+ for (; i.index !== -1; )
631
+ o.unshift(i), i = i.parent;
632
+ n[r] = o;
633
+ }
634
+ let s = null;
635
+ for (let r = 0; ; ++r) {
636
+ let o = n[e[0]];
637
+ if (r >= o.length)
638
+ return s;
639
+ const i = o[r];
640
+ for (let a = 1; a < e.length; ++a)
641
+ if (o = n[e[a]], r >= o.length || i !== o[r])
642
+ return s;
643
+ s = i;
644
+ }
645
+ }
646
+ _loadBone(t, e, n, s) {
647
+ let r = s[t.index];
648
+ if (r)
649
+ return r;
650
+ let o = null;
651
+ t.index !== e.skeleton && (t.parent && t.parent.index !== -1 ? o = this._loadBone(t.parent, e, n, s) : e.skeleton !== void 0 && $.Warn(`/skins/${e.index}/skeleton: Skeleton node is not a common root`));
652
+ const i = e.joints.indexOf(t.index);
653
+ return r = new X(t.name || `joint${t.index}`, n, o, this._getNodeMatrix(t), null, null, i), s[t.index] = r, this._postSceneLoadActions.push(() => {
654
+ r.linkTransformNode(t._babylonTransformNode);
655
+ }), r;
656
+ }
657
+ _loadSkinInverseBindMatricesDataAsync(t, e) {
658
+ if (e.inverseBindMatrices == null)
659
+ return Promise.resolve(null);
660
+ const n = c.Get(`${t}/inverseBindMatrices`, this._gltf.accessors, e.inverseBindMatrices);
661
+ return this._loadFloatAccessorAsync(`/accessors/${n.index}`, n);
662
+ }
663
+ _updateBoneMatrices(t, e) {
664
+ for (const n of t.bones) {
665
+ const s = P.Identity(), r = n._index;
666
+ e && r !== -1 && (P.FromArrayToRef(e, r * 16, s), s.invertToRef(s));
667
+ const o = n.getParent();
668
+ o && s.multiplyToRef(o.getAbsoluteInverseBindMatrix(), s), n.updateMatrix(s, !1, !1), n._updateAbsoluteBindMatrices(void 0, !1);
669
+ }
670
+ }
671
+ _getNodeMatrix(t) {
672
+ return t.matrix ? P.FromArray(t.matrix) : P.Compose(t.scale ? T.FromArray(t.scale) : T.One(), t.rotation ? I.FromArray(t.rotation) : I.Identity(), t.translation ? T.FromArray(t.translation) : T.Zero());
673
+ }
674
+ /**
675
+ * Loads a glTF camera.
676
+ * @param context The context when loading the asset
677
+ * @param camera The glTF camera property
678
+ * @param assign A function called synchronously after parsing the glTF properties
679
+ * @returns A promise that resolves with the loaded Babylon camera when the load is complete
680
+ */
681
+ loadCameraAsync(t, e, n = () => {
682
+ }) {
683
+ const s = this._extensionsLoadCameraAsync(t, e, n);
684
+ if (s)
685
+ return s;
686
+ const r = new Array();
687
+ this.logOpen(`${t} ${e.name || ""}`), this._babylonScene._blockEntityCollection = !!this._assetContainer;
688
+ const o = new K(e.name || `camera${e.index}`, T.Zero(), this._babylonScene, !1);
689
+ switch (o._parentContainer = this._assetContainer, this._babylonScene._blockEntityCollection = !1, o.ignoreParentScaling = !0, e._babylonCamera = o, o.rotation = new T(0, Math.PI, 0), e.type) {
690
+ case "perspective": {
691
+ const i = e.perspective;
692
+ if (!i)
693
+ throw new Error(`${t}: Camera perspective properties are missing`);
694
+ o.fov = i.yfov, o.minZ = i.znear, o.maxZ = i.zfar || 0;
695
+ break;
696
+ }
697
+ case "orthographic": {
698
+ if (!e.orthographic)
699
+ throw new Error(`${t}: Camera orthographic properties are missing`);
700
+ o.mode = W.ORTHOGRAPHIC_CAMERA, o.orthoLeft = -e.orthographic.xmag, o.orthoRight = e.orthographic.xmag, o.orthoBottom = -e.orthographic.ymag, o.orthoTop = e.orthographic.ymag, o.minZ = e.orthographic.znear, o.maxZ = e.orthographic.zfar;
701
+ break;
702
+ }
703
+ default:
704
+ throw new Error(`${t}: Invalid camera type (${e.type})`);
705
+ }
706
+ return u.AddPointerMetadata(o, t), this._parent.onCameraLoadedObservable.notifyObservers(o), n(o), this.logClose(), Promise.all(r).then(() => o);
707
+ }
708
+ _loadAnimationsAsync() {
709
+ const t = this._gltf.animations;
710
+ if (!t)
711
+ return Promise.resolve();
712
+ const e = new Array();
713
+ for (let n = 0; n < t.length; n++) {
714
+ const s = t[n];
715
+ e.push(this.loadAnimationAsync(`/animations/${s.index}`, s).then((r) => {
716
+ r.targetedAnimations.length === 0 && r.dispose();
717
+ }));
718
+ }
719
+ return Promise.all(e).then(() => {
720
+ });
721
+ }
722
+ /**
723
+ * Loads a glTF animation.
724
+ * @param context The context when loading the asset
725
+ * @param animation The glTF animation property
726
+ * @returns A promise that resolves with the loaded Babylon animation group when the load is complete
727
+ */
728
+ loadAnimationAsync(t, e) {
729
+ const n = this._extensionsLoadAnimationAsync(t, e);
730
+ if (n)
731
+ return n;
732
+ this._babylonScene._blockEntityCollection = !!this._assetContainer;
733
+ const s = new H(e.name || `animation${e.index}`, this._babylonScene);
734
+ s._parentContainer = this._assetContainer, this._babylonScene._blockEntityCollection = !1, e._babylonAnimationGroup = s;
735
+ const r = new Array();
736
+ c.Assign(e.channels), c.Assign(e.samplers);
737
+ for (const o of e.channels)
738
+ r.push(this._loadAnimationChannelAsync(`${t}/channels/${o.index}`, t, e, o, (i, a) => {
739
+ i.animations = i.animations || [], i.animations.push(a), s.addTargetedAnimation(a, i);
740
+ }));
741
+ return Promise.all(r).then(() => (s.normalize(0), s));
742
+ }
743
+ /**
744
+ * @hidden
745
+ * Loads a glTF animation channel.
746
+ * @param context The context when loading the asset
747
+ * @param animationContext The context of the animation when loading the asset
748
+ * @param animation The glTF animation property
749
+ * @param channel The glTF animation channel property
750
+ * @param onLoad Called for each animation loaded
751
+ * @returns A void promise that resolves when the load is complete
752
+ */
753
+ _loadAnimationChannelAsync(t, e, n, s, r) {
754
+ const o = this._extensionsLoadAnimationChannelAsync(t, e, n, s, r);
755
+ if (o)
756
+ return o;
757
+ if (s.target.node == null)
758
+ return Promise.resolve();
759
+ const i = c.Get(`${t}/target/node`, this._gltf.nodes, s.target.node);
760
+ if (s.target.path === "weights" && !i._numMorphTargets || s.target.path !== "weights" && !i._babylonTransformNode)
761
+ return Promise.resolve();
762
+ let a;
763
+ switch (s.target.path) {
764
+ case "translation": {
765
+ a = N.translation;
766
+ break;
767
+ }
768
+ case "rotation": {
769
+ a = N.rotation;
770
+ break;
771
+ }
772
+ case "scale": {
773
+ a = N.scale;
774
+ break;
775
+ }
776
+ case "weights": {
777
+ a = N.weights;
778
+ break;
779
+ }
780
+ default:
781
+ throw new Error(`${t}/target/path: Invalid value (${s.target.path})`);
782
+ }
783
+ const l = {
784
+ target: i,
785
+ properties: a
786
+ };
787
+ return this._loadAnimationChannelFromTargetInfoAsync(t, e, n, s, l, r);
788
+ }
789
+ /**
790
+ * @hidden
791
+ * Loads a glTF animation channel.
792
+ * @param context The context when loading the asset
793
+ * @param animationContext The context of the animation when loading the asset
794
+ * @param animation The glTF animation property
795
+ * @param channel The glTF animation channel property
796
+ * @param targetInfo The glTF target and properties
797
+ * @param onLoad Called for each animation loaded
798
+ * @returns A void promise that resolves when the load is complete
799
+ */
800
+ _loadAnimationChannelFromTargetInfoAsync(t, e, n, s, r, o) {
801
+ const i = this.parent.targetFps, a = 1 / i, l = c.Get(`${t}/sampler`, n.samplers, s.sampler);
802
+ return this._loadAnimationSamplerAsync(`${e}/samplers/${s.sampler}`, l).then((h) => {
803
+ let f = 0;
804
+ for (const d of r.properties) {
805
+ const m = d.getStride(r.target), _ = h.input, E = h.output, g = new Array(_.length);
806
+ let b = 0;
807
+ switch (h.interpolation) {
808
+ case "STEP": {
809
+ for (let y = 0; y < _.length; y++) {
810
+ const w = d.getValue(r.target, E, b, 1);
811
+ b += m, g[y] = {
812
+ frame: _[y] * i,
813
+ value: w,
814
+ interpolation: z.STEP
815
+ };
816
+ }
817
+ break;
818
+ }
819
+ case "CUBICSPLINE": {
820
+ for (let y = 0; y < _.length; y++) {
821
+ const w = d.getValue(r.target, E, b, a);
822
+ b += m;
823
+ const S = d.getValue(r.target, E, b, 1);
824
+ b += m;
825
+ const G = d.getValue(r.target, E, b, a);
826
+ b += m, g[y] = {
827
+ frame: _[y] * i,
828
+ inTangent: w,
829
+ value: S,
830
+ outTangent: G
831
+ };
832
+ }
833
+ break;
834
+ }
835
+ case "LINEAR": {
836
+ for (let y = 0; y < _.length; y++) {
837
+ const w = d.getValue(r.target, E, b, 1);
838
+ b += m, g[y] = {
839
+ frame: _[y] * i,
840
+ value: w
841
+ };
842
+ }
843
+ break;
844
+ }
845
+ }
846
+ if (b > 0) {
847
+ const y = `${n.name || `animation${n.index}`}_channel${s.index}_${f}`;
848
+ d.buildAnimations(r.target, y, i, g, (w, S) => {
849
+ ++f, o(w, S);
850
+ });
851
+ }
852
+ }
853
+ });
854
+ }
855
+ _loadAnimationSamplerAsync(t, e) {
856
+ if (e._data)
857
+ return e._data;
858
+ const n = e.interpolation || "LINEAR";
859
+ switch (n) {
860
+ case "STEP":
861
+ case "LINEAR":
862
+ case "CUBICSPLINE":
863
+ break;
864
+ default:
865
+ throw new Error(`${t}/interpolation: Invalid value (${e.interpolation})`);
866
+ }
867
+ const s = c.Get(`${t}/input`, this._gltf.accessors, e.input), r = c.Get(`${t}/output`, this._gltf.accessors, e.output);
868
+ return e._data = Promise.all([
869
+ this._loadFloatAccessorAsync(`/accessors/${s.index}`, s),
870
+ this._loadFloatAccessorAsync(`/accessors/${r.index}`, r)
871
+ ]).then(([o, i]) => ({
872
+ input: o,
873
+ interpolation: n,
874
+ output: i
875
+ })), e._data;
876
+ }
877
+ /**
878
+ * Loads a glTF buffer.
879
+ * @param context The context when loading the asset
880
+ * @param buffer The glTF buffer property
881
+ * @param byteOffset The byte offset to use
882
+ * @param byteLength The byte length to use
883
+ * @returns A promise that resolves with the loaded data when the load is complete
884
+ */
885
+ loadBufferAsync(t, e, n, s) {
886
+ const r = this._extensionsLoadBufferAsync(t, e, n, s);
887
+ if (r)
888
+ return r;
889
+ if (!e._data)
890
+ if (e.uri)
891
+ e._data = this.loadUriAsync(`${t}/uri`, e, e.uri);
892
+ else {
893
+ if (!this._bin)
894
+ throw new Error(`${t}: Uri is missing or the binary glTF is missing its binary chunk`);
895
+ e._data = this._bin.readAsync(0, e.byteLength);
896
+ }
897
+ return e._data.then((o) => {
898
+ try {
899
+ return new Uint8Array(o.buffer, o.byteOffset + n, s);
900
+ } catch (i) {
901
+ throw new Error(`${t}: ${i.message}`);
902
+ }
903
+ });
904
+ }
905
+ /**
906
+ * Loads a glTF buffer view.
907
+ * @param context The context when loading the asset
908
+ * @param bufferView The glTF buffer view property
909
+ * @returns A promise that resolves with the loaded data when the load is complete
910
+ */
911
+ loadBufferViewAsync(t, e) {
912
+ const n = this._extensionsLoadBufferViewAsync(t, e);
913
+ if (n)
914
+ return n;
915
+ if (e._data)
916
+ return e._data;
917
+ const s = c.Get(`${t}/buffer`, this._gltf.buffers, e.buffer);
918
+ return e._data = this.loadBufferAsync(`/buffers/${s.index}`, s, e.byteOffset || 0, e.byteLength), e._data;
919
+ }
920
+ _loadAccessorAsync(t, e, n) {
921
+ if (e._data)
922
+ return e._data;
923
+ const s = u._GetNumComponents(t, e.type), r = s * p.GetTypeByteLength(e.componentType), o = s * e.count;
924
+ if (e.bufferView == null)
925
+ e._data = Promise.resolve(new n(o));
926
+ else {
927
+ const i = c.Get(`${t}/bufferView`, this._gltf.bufferViews, e.bufferView);
928
+ e._data = this.loadBufferViewAsync(`/bufferViews/${i.index}`, i).then((a) => {
929
+ if (e.componentType === 5126 && !e.normalized && (!i.byteStride || i.byteStride === r))
930
+ return u._GetTypedArray(t, e.componentType, a, e.byteOffset, o);
931
+ {
932
+ const l = new n(o);
933
+ return p.ForEach(a, e.byteOffset || 0, i.byteStride || r, s, e.componentType, l.length, e.normalized || !1, (h, f) => {
934
+ l[f] = h;
935
+ }), l;
936
+ }
937
+ });
938
+ }
939
+ if (e.sparse) {
940
+ const i = e.sparse;
941
+ e._data = e._data.then((a) => {
942
+ const l = a, h = c.Get(`${t}/sparse/indices/bufferView`, this._gltf.bufferViews, i.indices.bufferView), f = c.Get(`${t}/sparse/values/bufferView`, this._gltf.bufferViews, i.values.bufferView);
943
+ return Promise.all([
944
+ this.loadBufferViewAsync(`/bufferViews/${h.index}`, h),
945
+ this.loadBufferViewAsync(`/bufferViews/${f.index}`, f)
946
+ ]).then(([d, m]) => {
947
+ const _ = u._GetTypedArray(`${t}/sparse/indices`, i.indices.componentType, d, i.indices.byteOffset, i.count), E = s * i.count;
948
+ let g;
949
+ if (e.componentType === 5126 && !e.normalized)
950
+ g = u._GetTypedArray(`${t}/sparse/values`, e.componentType, m, i.values.byteOffset, E);
951
+ else {
952
+ const y = u._GetTypedArray(`${t}/sparse/values`, e.componentType, m, i.values.byteOffset, E);
953
+ g = new n(E), p.ForEach(y, 0, r, s, e.componentType, g.length, e.normalized || !1, (w, S) => {
954
+ g[S] = w;
955
+ });
956
+ }
957
+ let b = 0;
958
+ for (let y = 0; y < _.length; y++) {
959
+ let w = _[y] * s;
960
+ for (let S = 0; S < s; S++)
961
+ l[w++] = g[b++];
962
+ }
963
+ return l;
964
+ });
965
+ });
966
+ }
967
+ return e._data;
968
+ }
969
+ /**
970
+ * @internal
971
+ */
972
+ _loadFloatAccessorAsync(t, e) {
973
+ return this._loadAccessorAsync(t, e, Float32Array);
974
+ }
975
+ /**
976
+ * @internal
977
+ */
978
+ _loadIndicesAccessorAsync(t, e) {
979
+ if (e.type !== "SCALAR")
980
+ throw new Error(`${t}/type: Invalid value ${e.type}`);
981
+ if (e.componentType !== 5121 && e.componentType !== 5123 && e.componentType !== 5125)
982
+ throw new Error(`${t}/componentType: Invalid value ${e.componentType}`);
983
+ if (e._data)
984
+ return e._data;
985
+ if (e.sparse) {
986
+ const n = u._GetTypedArrayConstructor(`${t}/componentType`, e.componentType);
987
+ e._data = this._loadAccessorAsync(t, e, n);
988
+ } else {
989
+ const n = c.Get(`${t}/bufferView`, this._gltf.bufferViews, e.bufferView);
990
+ e._data = this.loadBufferViewAsync(`/bufferViews/${n.index}`, n).then((s) => u._GetTypedArray(t, e.componentType, s, e.byteOffset, e.count));
991
+ }
992
+ return e._data;
993
+ }
994
+ /**
995
+ * @internal
996
+ */
997
+ _loadVertexBufferViewAsync(t) {
998
+ if (t._babylonBuffer)
999
+ return t._babylonBuffer;
1000
+ const e = this._babylonScene.getEngine();
1001
+ return t._babylonBuffer = this.loadBufferViewAsync(`/bufferViews/${t.index}`, t).then((n) => new Q(e, n, !1)), t._babylonBuffer;
1002
+ }
1003
+ /**
1004
+ * @internal
1005
+ */
1006
+ _loadVertexAccessorAsync(t, e, n) {
1007
+ var s;
1008
+ if (!((s = e._babylonVertexBuffer) === null || s === void 0) && s[n])
1009
+ return e._babylonVertexBuffer[n];
1010
+ e._babylonVertexBuffer || (e._babylonVertexBuffer = {});
1011
+ const r = this._babylonScene.getEngine();
1012
+ if (e.sparse)
1013
+ e._babylonVertexBuffer[n] = this._loadFloatAccessorAsync(t, e).then((o) => new p(r, o, n, !1));
1014
+ else if (n === p.MatricesIndicesKind || n === p.MatricesIndicesExtraKind)
1015
+ e._babylonVertexBuffer[n] = this._loadFloatAccessorAsync(t, e).then((o) => new p(r, o, n, !1));
1016
+ else {
1017
+ const o = c.Get(`${t}/bufferView`, this._gltf.bufferViews, e.bufferView);
1018
+ e._babylonVertexBuffer[n] = this._loadVertexBufferViewAsync(o).then((i) => {
1019
+ const a = u._GetNumComponents(t, e.type);
1020
+ return new p(r, i, n, !1, !1, o.byteStride, !1, e.byteOffset, a, e.componentType, e.normalized, !0, 1, !0);
1021
+ });
1022
+ }
1023
+ return e._babylonVertexBuffer[n];
1024
+ }
1025
+ _loadMaterialMetallicRoughnessPropertiesAsync(t, e, n) {
1026
+ if (!(n instanceof M))
1027
+ throw new Error(`${t}: Material type not supported`);
1028
+ const s = new Array();
1029
+ return e && (e.baseColorFactor ? (n.albedoColor = R.FromArray(e.baseColorFactor), n.alpha = e.baseColorFactor[3]) : n.albedoColor = R.White(), n.metallic = e.metallicFactor == null ? 1 : e.metallicFactor, n.roughness = e.roughnessFactor == null ? 1 : e.roughnessFactor, e.baseColorTexture && s.push(this.loadTextureInfoAsync(`${t}/baseColorTexture`, e.baseColorTexture, (r) => {
1030
+ r.name = `${n.name} (Base Color)`, n.albedoTexture = r;
1031
+ })), e.metallicRoughnessTexture && (e.metallicRoughnessTexture.nonColorData = !0, s.push(this.loadTextureInfoAsync(`${t}/metallicRoughnessTexture`, e.metallicRoughnessTexture, (r) => {
1032
+ r.name = `${n.name} (Metallic Roughness)`, n.metallicTexture = r;
1033
+ })), n.useMetallnessFromMetallicTextureBlue = !0, n.useRoughnessFromMetallicTextureGreen = !0, n.useRoughnessFromMetallicTextureAlpha = !1)), Promise.all(s).then(() => {
1034
+ });
1035
+ }
1036
+ /**
1037
+ * @internal
1038
+ */
1039
+ _loadMaterialAsync(t, e, n, s, r = () => {
1040
+ }) {
1041
+ const o = this._extensionsLoadMaterialAsync(t, e, n, s, r);
1042
+ if (o)
1043
+ return o;
1044
+ e._data = e._data || {};
1045
+ let i = e._data[s];
1046
+ if (!i) {
1047
+ this.logOpen(`${t} ${e.name || ""}`);
1048
+ const a = this.createMaterial(t, e, s);
1049
+ i = {
1050
+ babylonMaterial: a,
1051
+ babylonMeshes: [],
1052
+ promise: this.loadMaterialPropertiesAsync(t, e, a)
1053
+ }, e._data[s] = i, u.AddPointerMetadata(a, t), this._parent.onMaterialLoadedObservable.notifyObservers(a), this.logClose();
1054
+ }
1055
+ return n && (i.babylonMeshes.push(n), n.onDisposeObservable.addOnce(() => {
1056
+ const a = i.babylonMeshes.indexOf(n);
1057
+ a !== -1 && i.babylonMeshes.splice(a, 1);
1058
+ })), r(i.babylonMaterial), i.promise.then(() => i.babylonMaterial);
1059
+ }
1060
+ _createDefaultMaterial(t, e) {
1061
+ this._babylonScene._blockEntityCollection = !!this._assetContainer;
1062
+ const n = new M(t, this._babylonScene);
1063
+ return n._parentContainer = this._assetContainer, this._babylonScene._blockEntityCollection = !1, n.fillMode = e, n.enableSpecularAntiAliasing = !0, n.useRadianceOverAlpha = !this._parent.transparencyAsCoverage, n.useSpecularOverAlpha = !this._parent.transparencyAsCoverage, n.transparencyMode = M.PBRMATERIAL_OPAQUE, n.metallic = 1, n.roughness = 1, n;
1064
+ }
1065
+ /**
1066
+ * Creates a Babylon material from a glTF material.
1067
+ * @param context The context when loading the asset
1068
+ * @param material The glTF material property
1069
+ * @param babylonDrawMode The draw mode for the Babylon material
1070
+ * @returns The Babylon material
1071
+ */
1072
+ createMaterial(t, e, n) {
1073
+ const s = this._extensionsCreateMaterial(t, e, n);
1074
+ if (s)
1075
+ return s;
1076
+ const r = e.name || `material${e.index}`;
1077
+ return this._createDefaultMaterial(r, n);
1078
+ }
1079
+ /**
1080
+ * Loads properties from a glTF material into a Babylon material.
1081
+ * @param context The context when loading the asset
1082
+ * @param material The glTF material property
1083
+ * @param babylonMaterial The Babylon material
1084
+ * @returns A promise that resolves when the load is complete
1085
+ */
1086
+ loadMaterialPropertiesAsync(t, e, n) {
1087
+ const s = this._extensionsLoadMaterialPropertiesAsync(t, e, n);
1088
+ if (s)
1089
+ return s;
1090
+ const r = new Array();
1091
+ return r.push(this.loadMaterialBasePropertiesAsync(t, e, n)), e.pbrMetallicRoughness && r.push(this._loadMaterialMetallicRoughnessPropertiesAsync(`${t}/pbrMetallicRoughness`, e.pbrMetallicRoughness, n)), this.loadMaterialAlphaProperties(t, e, n), Promise.all(r).then(() => {
1092
+ });
1093
+ }
1094
+ /**
1095
+ * Loads the normal, occlusion, and emissive properties from a glTF material into a Babylon material.
1096
+ * @param context The context when loading the asset
1097
+ * @param material The glTF material property
1098
+ * @param babylonMaterial The Babylon material
1099
+ * @returns A promise that resolves when the load is complete
1100
+ */
1101
+ loadMaterialBasePropertiesAsync(t, e, n) {
1102
+ if (!(n instanceof M))
1103
+ throw new Error(`${t}: Material type not supported`);
1104
+ const s = new Array();
1105
+ return n.emissiveColor = e.emissiveFactor ? R.FromArray(e.emissiveFactor) : new R(0, 0, 0), e.doubleSided && (n.backFaceCulling = !1, n.twoSidedLighting = !0), e.normalTexture && (e.normalTexture.nonColorData = !0, s.push(this.loadTextureInfoAsync(`${t}/normalTexture`, e.normalTexture, (r) => {
1106
+ r.name = `${n.name} (Normal)`, n.bumpTexture = r;
1107
+ })), n.invertNormalMapX = !this._babylonScene.useRightHandedSystem, n.invertNormalMapY = this._babylonScene.useRightHandedSystem, e.normalTexture.scale != null && n.bumpTexture && (n.bumpTexture.level = e.normalTexture.scale), n.forceIrradianceInFragment = !0), e.occlusionTexture && (e.occlusionTexture.nonColorData = !0, s.push(this.loadTextureInfoAsync(`${t}/occlusionTexture`, e.occlusionTexture, (r) => {
1108
+ r.name = `${n.name} (Occlusion)`, n.ambientTexture = r;
1109
+ })), n.useAmbientInGrayScale = !0, e.occlusionTexture.strength != null && (n.ambientTextureStrength = e.occlusionTexture.strength)), e.emissiveTexture && s.push(this.loadTextureInfoAsync(`${t}/emissiveTexture`, e.emissiveTexture, (r) => {
1110
+ r.name = `${n.name} (Emissive)`, n.emissiveTexture = r;
1111
+ })), Promise.all(s).then(() => {
1112
+ });
1113
+ }
1114
+ /**
1115
+ * Loads the alpha properties from a glTF material into a Babylon material.
1116
+ * Must be called after the setting the albedo texture of the Babylon material when the material has an albedo texture.
1117
+ * @param context The context when loading the asset
1118
+ * @param material The glTF material property
1119
+ * @param babylonMaterial The Babylon material
1120
+ */
1121
+ loadMaterialAlphaProperties(t, e, n) {
1122
+ if (!(n instanceof M))
1123
+ throw new Error(`${t}: Material type not supported`);
1124
+ switch (e.alphaMode || "OPAQUE") {
1125
+ case "OPAQUE": {
1126
+ n.transparencyMode = M.PBRMATERIAL_OPAQUE;
1127
+ break;
1128
+ }
1129
+ case "MASK": {
1130
+ n.transparencyMode = M.PBRMATERIAL_ALPHATEST, n.alphaCutOff = e.alphaCutoff == null ? 0.5 : e.alphaCutoff, n.albedoTexture && (n.albedoTexture.hasAlpha = !0);
1131
+ break;
1132
+ }
1133
+ case "BLEND": {
1134
+ n.transparencyMode = M.PBRMATERIAL_ALPHABLEND, n.albedoTexture && (n.albedoTexture.hasAlpha = !0, n.useAlphaFromAlbedoTexture = !0);
1135
+ break;
1136
+ }
1137
+ default:
1138
+ throw new Error(`${t}/alphaMode: Invalid value (${e.alphaMode})`);
1139
+ }
1140
+ }
1141
+ /**
1142
+ * Loads a glTF texture info.
1143
+ * @param context The context when loading the asset
1144
+ * @param textureInfo The glTF texture info property
1145
+ * @param assign A function called synchronously after parsing the glTF properties
1146
+ * @returns A promise that resolves with the loaded Babylon texture when the load is complete
1147
+ */
1148
+ loadTextureInfoAsync(t, e, n = () => {
1149
+ }) {
1150
+ const s = this._extensionsLoadTextureInfoAsync(t, e, n);
1151
+ if (s)
1152
+ return s;
1153
+ if (this.logOpen(`${t}`), e.texCoord >= 6)
1154
+ throw new Error(`${t}/texCoord: Invalid value (${e.texCoord})`);
1155
+ const r = c.Get(`${t}/index`, this._gltf.textures, e.index);
1156
+ r._textureInfo = e;
1157
+ const o = this._loadTextureAsync(`/textures/${e.index}`, r, (i) => {
1158
+ i.coordinatesIndex = e.texCoord || 0, u.AddPointerMetadata(i, t), this._parent.onTextureLoadedObservable.notifyObservers(i), n(i);
1159
+ });
1160
+ return this.logClose(), o;
1161
+ }
1162
+ /**
1163
+ * @internal
1164
+ */
1165
+ _loadTextureAsync(t, e, n = () => {
1166
+ }) {
1167
+ const s = this._extensionsLoadTextureAsync(t, e, n);
1168
+ if (s)
1169
+ return s;
1170
+ this.logOpen(`${t} ${e.name || ""}`);
1171
+ const r = e.sampler == null ? u.DefaultSampler : c.Get(`${t}/sampler`, this._gltf.samplers, e.sampler), o = c.Get(`${t}/source`, this._gltf.images, e.source), i = this._createTextureAsync(t, r, o, n, void 0, !e._textureInfo.nonColorData);
1172
+ return this.logClose(), i;
1173
+ }
1174
+ /**
1175
+ * @internal
1176
+ */
1177
+ _createTextureAsync(t, e, n, s = () => {
1178
+ }, r, o) {
1179
+ const i = this._loadSampler(`/samplers/${e.index}`, e), a = new Array(), l = new U();
1180
+ this._babylonScene._blockEntityCollection = !!this._assetContainer;
1181
+ const h = {
1182
+ noMipmap: i.noMipMaps,
1183
+ invertY: !1,
1184
+ samplingMode: i.samplingMode,
1185
+ onLoad: () => {
1186
+ this._disposed || l.resolve();
1187
+ },
1188
+ onError: (d, m) => {
1189
+ this._disposed || l.reject(new Error(`${t}: ${m && m.message ? m.message : d || "Failed to load texture"}`));
1190
+ },
1191
+ mimeType: n.mimeType,
1192
+ loaderOptions: r,
1193
+ useSRGBBuffer: !!o && this._parent.useSRGBBuffers
1194
+ }, f = new A(null, this._babylonScene, h);
1195
+ return f._parentContainer = this._assetContainer, this._babylonScene._blockEntityCollection = !1, a.push(l.promise), a.push(this.loadImageAsync(`/images/${n.index}`, n).then((d) => {
1196
+ const m = n.uri || `${this._fileName}#image${n.index}`, _ = `data:${this._uniqueRootUrl}${m}`;
1197
+ f.updateURL(_, d);
1198
+ })), f.wrapU = i.wrapU, f.wrapV = i.wrapV, s(f), Promise.all(a).then(() => f);
1199
+ }
1200
+ _loadSampler(t, e) {
1201
+ return e._data || (e._data = {
1202
+ noMipMaps: e.minFilter === 9728 || e.minFilter === 9729,
1203
+ samplingMode: u._GetTextureSamplingMode(t, e),
1204
+ wrapU: u._GetTextureWrapMode(`${t}/wrapS`, e.wrapS),
1205
+ wrapV: u._GetTextureWrapMode(`${t}/wrapT`, e.wrapT)
1206
+ }), e._data;
1207
+ }
1208
+ /**
1209
+ * Loads a glTF image.
1210
+ * @param context The context when loading the asset
1211
+ * @param image The glTF image property
1212
+ * @returns A promise that resolves with the loaded data when the load is complete
1213
+ */
1214
+ loadImageAsync(t, e) {
1215
+ if (!e._data) {
1216
+ if (this.logOpen(`${t} ${e.name || ""}`), e.uri)
1217
+ e._data = this.loadUriAsync(`${t}/uri`, e, e.uri);
1218
+ else {
1219
+ const n = c.Get(`${t}/bufferView`, this._gltf.bufferViews, e.bufferView);
1220
+ e._data = this.loadBufferViewAsync(`/bufferViews/${n.index}`, n);
1221
+ }
1222
+ this.logClose();
1223
+ }
1224
+ return e._data;
1225
+ }
1226
+ /**
1227
+ * Loads a glTF uri.
1228
+ * @param context The context when loading the asset
1229
+ * @param property The glTF property associated with the uri
1230
+ * @param uri The base64 or relative uri
1231
+ * @returns A promise that resolves with the loaded data when the load is complete
1232
+ */
1233
+ loadUriAsync(t, e, n) {
1234
+ const s = this._extensionsLoadUriAsync(t, e, n);
1235
+ if (s)
1236
+ return s;
1237
+ if (!u._ValidateUri(n))
1238
+ throw new Error(`${t}: '${n}' is invalid`);
1239
+ if (ee(n)) {
1240
+ const r = new Uint8Array(te(n));
1241
+ return this.log(`${t}: Decoded ${n.substr(0, 64)}... (${r.length} bytes)`), Promise.resolve(r);
1242
+ }
1243
+ return this.log(`${t}: Loading ${n}`), this._parent.preprocessUrlAsync(this._rootUrl + n).then((r) => new Promise((o, i) => {
1244
+ this._parent._loadFile(this._babylonScene, r, (a) => {
1245
+ this._disposed || (this.log(`${t}: Loaded ${n} (${a.byteLength} bytes)`), o(new Uint8Array(a)));
1246
+ }, !0, (a) => {
1247
+ i(new ne(`${t}: Failed to load '${n}'${a ? ": " + a.status + " " + a.statusText : ""}`, a));
1248
+ });
1249
+ }));
1250
+ }
1251
+ /**
1252
+ * Adds a JSON pointer to the _internalMetadata of the Babylon object at `<object>._internalMetadata.gltf.pointers`.
1253
+ * @param babylonObject the Babylon object with _internalMetadata
1254
+ * @param pointer the JSON pointer
1255
+ */
1256
+ static AddPointerMetadata(t, e) {
1257
+ t.metadata = t.metadata || {};
1258
+ const n = t._internalMetadata = t._internalMetadata || {}, s = n.gltf = n.gltf || {};
1259
+ (s.pointers = s.pointers || []).push(e);
1260
+ }
1261
+ static _GetTextureWrapMode(t, e) {
1262
+ switch (e = e ?? 10497, e) {
1263
+ case 33071:
1264
+ return A.CLAMP_ADDRESSMODE;
1265
+ case 33648:
1266
+ return A.MIRROR_ADDRESSMODE;
1267
+ case 10497:
1268
+ return A.WRAP_ADDRESSMODE;
1269
+ default:
1270
+ return $.Warn(`${t}: Invalid value (${e})`), A.WRAP_ADDRESSMODE;
1271
+ }
1272
+ }
1273
+ static _GetTextureSamplingMode(t, e) {
1274
+ const n = e.magFilter == null ? 9729 : e.magFilter, s = e.minFilter == null ? 9987 : e.minFilter;
1275
+ if (n === 9729)
1276
+ switch (s) {
1277
+ case 9728:
1278
+ return A.LINEAR_NEAREST;
1279
+ case 9729:
1280
+ return A.LINEAR_LINEAR;
1281
+ case 9984:
1282
+ return A.LINEAR_NEAREST_MIPNEAREST;
1283
+ case 9985:
1284
+ return A.LINEAR_LINEAR_MIPNEAREST;
1285
+ case 9986:
1286
+ return A.LINEAR_NEAREST_MIPLINEAR;
1287
+ case 9987:
1288
+ return A.LINEAR_LINEAR_MIPLINEAR;
1289
+ default:
1290
+ return $.Warn(`${t}/minFilter: Invalid value (${s})`), A.LINEAR_LINEAR_MIPLINEAR;
1291
+ }
1292
+ else
1293
+ switch (n !== 9728 && $.Warn(`${t}/magFilter: Invalid value (${n})`), s) {
1294
+ case 9728:
1295
+ return A.NEAREST_NEAREST;
1296
+ case 9729:
1297
+ return A.NEAREST_LINEAR;
1298
+ case 9984:
1299
+ return A.NEAREST_NEAREST_MIPNEAREST;
1300
+ case 9985:
1301
+ return A.NEAREST_LINEAR_MIPNEAREST;
1302
+ case 9986:
1303
+ return A.NEAREST_NEAREST_MIPLINEAR;
1304
+ case 9987:
1305
+ return A.NEAREST_LINEAR_MIPLINEAR;
1306
+ default:
1307
+ return $.Warn(`${t}/minFilter: Invalid value (${s})`), A.NEAREST_NEAREST_MIPNEAREST;
1308
+ }
1309
+ }
1310
+ static _GetTypedArrayConstructor(t, e) {
1311
+ switch (e) {
1312
+ case 5120:
1313
+ return Int8Array;
1314
+ case 5121:
1315
+ return Uint8Array;
1316
+ case 5122:
1317
+ return Int16Array;
1318
+ case 5123:
1319
+ return Uint16Array;
1320
+ case 5125:
1321
+ return Uint32Array;
1322
+ case 5126:
1323
+ return Float32Array;
1324
+ default:
1325
+ throw new Error(`${t}: Invalid component type ${e}`);
1326
+ }
1327
+ }
1328
+ static _GetTypedArray(t, e, n, s, r) {
1329
+ const o = n.buffer;
1330
+ s = n.byteOffset + (s || 0);
1331
+ const i = u._GetTypedArrayConstructor(`${t}/componentType`, e), a = p.GetTypeByteLength(e);
1332
+ return s % a !== 0 ? ($.Warn(`${t}: Copying buffer as byte offset (${s}) is not a multiple of component type byte length (${a})`), new i(o.slice(s, s + r * a), 0)) : new i(o, s, r);
1333
+ }
1334
+ static _GetNumComponents(t, e) {
1335
+ switch (e) {
1336
+ case "SCALAR":
1337
+ return 1;
1338
+ case "VEC2":
1339
+ return 2;
1340
+ case "VEC3":
1341
+ return 3;
1342
+ case "VEC4":
1343
+ return 4;
1344
+ case "MAT2":
1345
+ return 4;
1346
+ case "MAT3":
1347
+ return 9;
1348
+ case "MAT4":
1349
+ return 16;
1350
+ }
1351
+ throw new Error(`${t}: Invalid type (${e})`);
1352
+ }
1353
+ static _ValidateUri(t) {
1354
+ return L.IsBase64(t) || t.indexOf("..") === -1;
1355
+ }
1356
+ /**
1357
+ * @internal
1358
+ */
1359
+ static _GetDrawMode(t, e) {
1360
+ switch (e == null && (e = 4), e) {
1361
+ case 0:
1362
+ return C.PointListDrawMode;
1363
+ case 1:
1364
+ return C.LineListDrawMode;
1365
+ case 2:
1366
+ return C.LineLoopDrawMode;
1367
+ case 3:
1368
+ return C.LineStripDrawMode;
1369
+ case 4:
1370
+ return C.TriangleFillMode;
1371
+ case 5:
1372
+ return C.TriangleStripDrawMode;
1373
+ case 6:
1374
+ return C.TriangleFanDrawMode;
1375
+ }
1376
+ throw new Error(`${t}: Invalid mesh primitive mode (${e})`);
1377
+ }
1378
+ _compileMaterialsAsync() {
1379
+ this._parent._startPerformanceCounter("Compile materials");
1380
+ const t = new Array();
1381
+ if (this._gltf.materials) {
1382
+ for (const e of this._gltf.materials)
1383
+ if (e._data)
1384
+ for (const n in e._data) {
1385
+ const s = e._data[n];
1386
+ for (const r of s.babylonMeshes) {
1387
+ r.computeWorldMatrix(!0);
1388
+ const o = s.babylonMaterial;
1389
+ t.push(o.forceCompilationAsync(r)), t.push(o.forceCompilationAsync(r, { useInstances: !0 })), this._parent.useClipPlane && (t.push(o.forceCompilationAsync(r, { clipPlane: !0 })), t.push(o.forceCompilationAsync(r, { clipPlane: !0, useInstances: !0 })));
1390
+ }
1391
+ }
1392
+ }
1393
+ return Promise.all(t).then(() => {
1394
+ this._parent._endPerformanceCounter("Compile materials");
1395
+ });
1396
+ }
1397
+ _compileShadowGeneratorsAsync() {
1398
+ this._parent._startPerformanceCounter("Compile shadow generators");
1399
+ const t = new Array(), e = this._babylonScene.lights;
1400
+ for (const n of e) {
1401
+ const s = n.getShadowGenerator();
1402
+ s && t.push(s.forceCompilationAsync());
1403
+ }
1404
+ return Promise.all(t).then(() => {
1405
+ this._parent._endPerformanceCounter("Compile shadow generators");
1406
+ });
1407
+ }
1408
+ _forEachExtensions(t) {
1409
+ for (const e of this._extensions)
1410
+ e.enabled && t(e);
1411
+ }
1412
+ _applyExtensions(t, e, n) {
1413
+ for (const s of this._extensions)
1414
+ if (s.enabled) {
1415
+ const r = `${s.name}.${e}`, o = t;
1416
+ o._activeLoaderExtensionFunctions = o._activeLoaderExtensionFunctions || {};
1417
+ const i = o._activeLoaderExtensionFunctions;
1418
+ if (!i[r]) {
1419
+ i[r] = !0;
1420
+ try {
1421
+ const a = n(s);
1422
+ if (a)
1423
+ return a;
1424
+ } finally {
1425
+ delete i[r];
1426
+ }
1427
+ }
1428
+ }
1429
+ return null;
1430
+ }
1431
+ _extensionsOnLoading() {
1432
+ this._forEachExtensions((t) => t.onLoading && t.onLoading());
1433
+ }
1434
+ _extensionsOnReady() {
1435
+ this._forEachExtensions((t) => t.onReady && t.onReady());
1436
+ }
1437
+ _extensionsLoadSceneAsync(t, e) {
1438
+ return this._applyExtensions(e, "loadScene", (n) => n.loadSceneAsync && n.loadSceneAsync(t, e));
1439
+ }
1440
+ _extensionsLoadNodeAsync(t, e, n) {
1441
+ return this._applyExtensions(e, "loadNode", (s) => s.loadNodeAsync && s.loadNodeAsync(t, e, n));
1442
+ }
1443
+ _extensionsLoadCameraAsync(t, e, n) {
1444
+ return this._applyExtensions(e, "loadCamera", (s) => s.loadCameraAsync && s.loadCameraAsync(t, e, n));
1445
+ }
1446
+ _extensionsLoadVertexDataAsync(t, e, n) {
1447
+ return this._applyExtensions(e, "loadVertexData", (s) => s._loadVertexDataAsync && s._loadVertexDataAsync(t, e, n));
1448
+ }
1449
+ _extensionsLoadMeshPrimitiveAsync(t, e, n, s, r, o) {
1450
+ return this._applyExtensions(r, "loadMeshPrimitive", (i) => i._loadMeshPrimitiveAsync && i._loadMeshPrimitiveAsync(t, e, n, s, r, o));
1451
+ }
1452
+ _extensionsLoadMaterialAsync(t, e, n, s, r) {
1453
+ return this._applyExtensions(e, "loadMaterial", (o) => o._loadMaterialAsync && o._loadMaterialAsync(t, e, n, s, r));
1454
+ }
1455
+ _extensionsCreateMaterial(t, e, n) {
1456
+ return this._applyExtensions(e, "createMaterial", (s) => s.createMaterial && s.createMaterial(t, e, n));
1457
+ }
1458
+ _extensionsLoadMaterialPropertiesAsync(t, e, n) {
1459
+ return this._applyExtensions(e, "loadMaterialProperties", (s) => s.loadMaterialPropertiesAsync && s.loadMaterialPropertiesAsync(t, e, n));
1460
+ }
1461
+ _extensionsLoadTextureInfoAsync(t, e, n) {
1462
+ return this._applyExtensions(e, "loadTextureInfo", (s) => s.loadTextureInfoAsync && s.loadTextureInfoAsync(t, e, n));
1463
+ }
1464
+ _extensionsLoadTextureAsync(t, e, n) {
1465
+ return this._applyExtensions(e, "loadTexture", (s) => s._loadTextureAsync && s._loadTextureAsync(t, e, n));
1466
+ }
1467
+ _extensionsLoadAnimationAsync(t, e) {
1468
+ return this._applyExtensions(e, "loadAnimation", (n) => n.loadAnimationAsync && n.loadAnimationAsync(t, e));
1469
+ }
1470
+ _extensionsLoadAnimationChannelAsync(t, e, n, s, r) {
1471
+ return this._applyExtensions(n, "loadAnimationChannel", (o) => o._loadAnimationChannelAsync && o._loadAnimationChannelAsync(t, e, n, s, r));
1472
+ }
1473
+ _extensionsLoadSkinAsync(t, e, n) {
1474
+ return this._applyExtensions(n, "loadSkin", (s) => s._loadSkinAsync && s._loadSkinAsync(t, e, n));
1475
+ }
1476
+ _extensionsLoadUriAsync(t, e, n) {
1477
+ return this._applyExtensions(e, "loadUri", (s) => s._loadUriAsync && s._loadUriAsync(t, e, n));
1478
+ }
1479
+ _extensionsLoadBufferViewAsync(t, e) {
1480
+ return this._applyExtensions(e, "loadBufferView", (n) => n.loadBufferViewAsync && n.loadBufferViewAsync(t, e));
1481
+ }
1482
+ _extensionsLoadBufferAsync(t, e, n, s) {
1483
+ return this._applyExtensions(e, "loadBuffer", (r) => r.loadBufferAsync && r.loadBufferAsync(t, e, n, s));
1484
+ }
1485
+ /**
1486
+ * Helper method called by a loader extension to load an glTF extension.
1487
+ * @param context The context when loading the asset
1488
+ * @param property The glTF property to load the extension from
1489
+ * @param extensionName The name of the extension to load
1490
+ * @param actionAsync The action to run
1491
+ * @returns The promise returned by actionAsync or null if the extension does not exist
1492
+ */
1493
+ static LoadExtensionAsync(t, e, n, s) {
1494
+ if (!e.extensions)
1495
+ return null;
1496
+ const o = e.extensions[n];
1497
+ return o ? s(`${t}/extensions/${n}`, o) : null;
1498
+ }
1499
+ /**
1500
+ * Helper method called by a loader extension to load a glTF extra.
1501
+ * @param context The context when loading the asset
1502
+ * @param property The glTF property to load the extra from
1503
+ * @param extensionName The name of the extension to load
1504
+ * @param actionAsync The action to run
1505
+ * @returns The promise returned by actionAsync or null if the extra does not exist
1506
+ */
1507
+ static LoadExtraAsync(t, e, n, s) {
1508
+ if (!e.extras)
1509
+ return null;
1510
+ const o = e.extras[n];
1511
+ return o ? s(`${t}/extras/${n}`, o) : null;
1512
+ }
1513
+ /**
1514
+ * Checks for presence of an extension.
1515
+ * @param name The name of the extension to check
1516
+ * @returns A boolean indicating the presence of the given extension name in `extensionsUsed`
1517
+ */
1518
+ isExtensionUsed(t) {
1519
+ return !!this._gltf.extensionsUsed && this._gltf.extensionsUsed.indexOf(t) !== -1;
1520
+ }
1521
+ /**
1522
+ * Increments the indentation level and logs a message.
1523
+ * @param message The message to log
1524
+ */
1525
+ logOpen(t) {
1526
+ this._parent._logOpen(t);
1527
+ }
1528
+ /**
1529
+ * Decrements the indentation level.
1530
+ */
1531
+ logClose() {
1532
+ this._parent._logClose();
1533
+ }
1534
+ /**
1535
+ * Logs a message
1536
+ * @param message The message to log
1537
+ */
1538
+ log(t) {
1539
+ this._parent._log(t);
1540
+ }
1541
+ /**
1542
+ * Starts a performance counter.
1543
+ * @param counterName The name of the performance counter
1544
+ */
1545
+ startPerformanceCounter(t) {
1546
+ this._parent._startPerformanceCounter(t);
1547
+ }
1548
+ /**
1549
+ * Ends a performance counter.
1550
+ * @param counterName The name of the performance counter
1551
+ */
1552
+ endPerformanceCounter(t) {
1553
+ this._parent._endPerformanceCounter(t);
1554
+ }
1555
+ }
1556
+ u._RegisteredExtensions = {};
1557
+ u.DefaultSampler = { index: -1 };
1558
+ q._CreateGLTF2Loader = (v) => new u(v);
1559
+ export {
1560
+ c as ArrayItem,
1561
+ u as GLTFLoader
1562
+ };