@babylonjs/viewer 7.41.1-alpha → 7.42.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/configuration/configuration.d.ts +107 -0
- package/configuration/configuration.js +16 -0
- package/configuration/configuration.js.map +1 -0
- package/configuration/configurationCompatibility.d.ts +8 -0
- package/configuration/configurationCompatibility.js +66 -0
- package/configuration/configurationCompatibility.js.map +1 -0
- package/configuration/configurationContainer.d.ts +10 -0
- package/configuration/configurationContainer.js +10 -0
- package/configuration/configurationContainer.js.map +1 -0
- package/configuration/globals.d.ts +6 -0
- package/configuration/globals.js +18 -0
- package/configuration/globals.js.map +1 -0
- package/configuration/index.d.ts +2 -0
- package/configuration/index.js +4 -0
- package/configuration/index.js.map +1 -0
- package/configuration/interfaces/cameraConfiguration.d.ts +31 -0
- package/configuration/interfaces/cameraConfiguration.js +2 -0
- package/configuration/interfaces/cameraConfiguration.js.map +1 -0
- package/configuration/interfaces/colorGradingConfiguration.d.ts +81 -0
- package/configuration/interfaces/colorGradingConfiguration.js +2 -0
- package/configuration/interfaces/colorGradingConfiguration.js.map +1 -0
- package/configuration/interfaces/defaultRenderingPipelineConfiguration.d.ts +20 -0
- package/configuration/interfaces/defaultRenderingPipelineConfiguration.js +2 -0
- package/configuration/interfaces/defaultRenderingPipelineConfiguration.js.map +1 -0
- package/configuration/interfaces/environmentMapConfiguration.d.ts +22 -0
- package/configuration/interfaces/environmentMapConfiguration.js +2 -0
- package/configuration/interfaces/environmentMapConfiguration.js.map +1 -0
- package/configuration/interfaces/groundConfiguration.d.ts +24 -0
- package/configuration/interfaces/groundConfiguration.js +2 -0
- package/configuration/interfaces/groundConfiguration.js.map +1 -0
- package/configuration/interfaces/imageProcessingConfiguration.d.ts +45 -0
- package/configuration/interfaces/imageProcessingConfiguration.js +2 -0
- package/configuration/interfaces/imageProcessingConfiguration.js.map +1 -0
- package/configuration/interfaces/index.d.ts +15 -0
- package/configuration/interfaces/index.js +16 -0
- package/configuration/interfaces/index.js.map +1 -0
- package/configuration/interfaces/lightConfiguration.d.ts +60 -0
- package/configuration/interfaces/lightConfiguration.js +2 -0
- package/configuration/interfaces/lightConfiguration.js.map +1 -0
- package/configuration/interfaces/modelAnimationConfiguration.d.ts +26 -0
- package/configuration/interfaces/modelAnimationConfiguration.js +2 -0
- package/configuration/interfaces/modelAnimationConfiguration.js.map +1 -0
- package/configuration/interfaces/modelConfiguration.d.ts +65 -0
- package/configuration/interfaces/modelConfiguration.js +2 -0
- package/configuration/interfaces/modelConfiguration.js.map +1 -0
- package/configuration/interfaces/observersConfiguration.d.ts +5 -0
- package/configuration/interfaces/observersConfiguration.js +2 -0
- package/configuration/interfaces/observersConfiguration.js.map +1 -0
- package/configuration/interfaces/sceneConfiguration.d.ts +48 -0
- package/configuration/interfaces/sceneConfiguration.js +2 -0
- package/configuration/interfaces/sceneConfiguration.js.map +1 -0
- package/configuration/interfaces/sceneOptimizerConfiguration.d.ts +23 -0
- package/configuration/interfaces/sceneOptimizerConfiguration.js +2 -0
- package/configuration/interfaces/sceneOptimizerConfiguration.js.map +1 -0
- package/configuration/interfaces/skyboxConfiguration.d.ts +21 -0
- package/configuration/interfaces/skyboxConfiguration.js +2 -0
- package/configuration/interfaces/skyboxConfiguration.js.map +1 -0
- package/configuration/interfaces/templateConfiguration.d.ts +67 -0
- package/configuration/interfaces/templateConfiguration.js +2 -0
- package/configuration/interfaces/templateConfiguration.js.map +1 -0
- package/configuration/interfaces/vrConfiguration.d.ts +16 -0
- package/configuration/interfaces/vrConfiguration.js +2 -0
- package/configuration/interfaces/vrConfiguration.js.map +1 -0
- package/configuration/loader.d.ts +4 -0
- package/configuration/loader.js +17 -0
- package/configuration/loader.js.map +1 -0
- package/configuration/mappers.d.ts +43 -0
- package/configuration/mappers.js +193 -0
- package/configuration/mappers.js.map +1 -0
- package/configuration/renderOnlyLoader.d.ts +33 -0
- package/configuration/renderOnlyLoader.js +162 -0
- package/configuration/renderOnlyLoader.js.map +1 -0
- package/configuration/types/default.d.ts +6 -0
- package/configuration/types/default.js +121 -0
- package/configuration/types/default.js.map +1 -0
- package/configuration/types/environmentMap.d.ts +5 -0
- package/configuration/types/environmentMap.js +14 -0
- package/configuration/types/environmentMap.js.map +1 -0
- package/configuration/types/extended.d.ts +6 -0
- package/configuration/types/extended.js +317 -0
- package/configuration/types/extended.js.map +1 -0
- package/configuration/types/index.d.ts +14 -0
- package/configuration/types/index.js +51 -0
- package/configuration/types/index.js.map +1 -0
- package/configuration/types/minimal.d.ts +6 -0
- package/configuration/types/minimal.js +43 -0
- package/configuration/types/minimal.js.map +1 -0
- package/configuration/types/renderOnlyDefault.d.ts +30 -0
- package/configuration/types/renderOnlyDefault.js +31 -0
- package/configuration/types/renderOnlyDefault.js.map +1 -0
- package/configuration/types/shadowLight.d.ts +9 -0
- package/configuration/types/shadowLight.js +64 -0
- package/configuration/types/shadowLight.js.map +1 -0
- package/helper/index.d.ts +29 -0
- package/helper/index.js +66 -0
- package/helper/index.js.map +1 -0
- package/index.d.ts +30 -0
- package/index.js +46 -0
- package/index.js.map +1 -0
- package/initializer.d.ts +11 -0
- package/initializer.js +35 -0
- package/initializer.js.map +1 -0
- package/interfaces.d.ts +5 -0
- package/interfaces.js +7 -0
- package/interfaces.js.map +1 -0
- package/labs/environmentSerializer.d.ts +126 -0
- package/labs/environmentSerializer.js +191 -0
- package/labs/environmentSerializer.js.map +1 -0
- package/labs/texture.d.ts +183 -0
- package/labs/texture.js +351 -0
- package/labs/texture.js.map +1 -0
- package/labs/viewerLabs.d.ts +51 -0
- package/labs/viewerLabs.js +134 -0
- package/labs/viewerLabs.js.map +1 -0
- package/loader/modelLoader.d.ts +56 -0
- package/loader/modelLoader.js +202 -0
- package/loader/modelLoader.js.map +1 -0
- package/loader/plugins/applyMaterialConfig.d.ts +12 -0
- package/loader/plugins/applyMaterialConfig.js +16 -0
- package/loader/plugins/applyMaterialConfig.js.map +1 -0
- package/loader/plugins/extendedMaterialLoaderPlugin.d.ts +9 -0
- package/loader/plugins/extendedMaterialLoaderPlugin.js +16 -0
- package/loader/plugins/extendedMaterialLoaderPlugin.js.map +1 -0
- package/loader/plugins/index.d.ts +19 -0
- package/loader/plugins/index.js +44 -0
- package/loader/plugins/index.js.map +1 -0
- package/loader/plugins/loaderPlugin.d.ts +24 -0
- package/loader/plugins/loaderPlugin.js +2 -0
- package/loader/plugins/loaderPlugin.js.map +1 -0
- package/loader/plugins/msftLodLoaderPlugin.d.ts +12 -0
- package/loader/plugins/msftLodLoaderPlugin.js +21 -0
- package/loader/plugins/msftLodLoaderPlugin.js.map +1 -0
- package/loader/plugins/telemetryLoaderPlugin.d.ts +12 -0
- package/loader/plugins/telemetryLoaderPlugin.js +36 -0
- package/loader/plugins/telemetryLoaderPlugin.js.map +1 -0
- package/managers/observablesManager.d.ts +66 -0
- package/managers/observablesManager.js +35 -0
- package/managers/observablesManager.js.map +1 -0
- package/managers/sceneManager.d.ts +245 -0
- package/managers/sceneManager.js +1375 -0
- package/managers/sceneManager.js.map +1 -0
- package/managers/telemetryManager.d.ts +78 -0
- package/managers/telemetryManager.js +117 -0
- package/managers/telemetryManager.js.map +1 -0
- package/model/modelAnimation.d.ts +215 -0
- package/model/modelAnimation.js +237 -0
- package/model/modelAnimation.js.map +1 -0
- package/model/viewerModel.d.ts +233 -0
- package/model/viewerModel.js +673 -0
- package/model/viewerModel.js.map +1 -0
- package/optimizer/custom/extended.d.ts +13 -0
- package/optimizer/custom/extended.js +101 -0
- package/optimizer/custom/extended.js.map +1 -0
- package/optimizer/custom/index.d.ts +9 -0
- package/optimizer/custom/index.js +26 -0
- package/optimizer/custom/index.js.map +1 -0
- package/package.json +28 -19
- package/readme.md +28 -28
- package/renderOnlyIndex.d.ts +11 -0
- package/renderOnlyIndex.js +18 -0
- package/renderOnlyIndex.js.map +1 -0
- package/templating/eventManager.d.ts +35 -0
- package/templating/eventManager.js +66 -0
- package/templating/eventManager.js.map +1 -0
- package/templating/plugins/hdButtonPlugin.d.ts +9 -0
- package/templating/plugins/hdButtonPlugin.js +22 -0
- package/templating/plugins/hdButtonPlugin.js.map +1 -0
- package/templating/plugins/printButton.d.ts +9 -0
- package/templating/plugins/printButton.js +41 -0
- package/templating/plugins/printButton.js.map +1 -0
- package/templating/templateManager.d.ts +197 -0
- package/templating/templateManager.js +561 -0
- package/templating/templateManager.js.map +1 -0
- package/templating/viewerTemplatePlugin.d.ts +21 -0
- package/templating/viewerTemplatePlugin.js +69 -0
- package/templating/viewerTemplatePlugin.js.map +1 -0
- package/viewer/defaultViewer.d.ts +130 -0
- package/viewer/defaultViewer.js +672 -0
- package/viewer/defaultViewer.js.map +1 -0
- package/viewer/renderOnlyViewer.d.ts +9 -0
- package/viewer/renderOnlyViewer.js +46 -0
- package/viewer/renderOnlyViewer.js.map +1 -0
- package/viewer/viewer.d.ts +258 -0
- package/viewer/viewer.js +783 -0
- package/viewer/viewer.js.map +1 -0
- package/viewer/viewerManager.d.ts +58 -0
- package/viewer/viewerManager.js +91 -0
- package/viewer/viewerManager.js.map +1 -0
- package/viewer/viewerWithTemplate.d.ts +9 -0
- package/viewer/viewerWithTemplate.js +20 -0
- package/viewer/viewerWithTemplate.js.map +1 -0
- package/assets/photoStudio.env +0 -0
- package/dist/babylon-viewer.esm.js +0 -2
- package/dist/babylon-viewer.esm.js.map +0 -1
- package/dist/babylon-viewer.esm.min.js +0 -2
- package/dist/babylon-viewer.esm.min.js.map +0 -1
- package/dist/chunks/EXT_lights_ies-BS2USlck.esm.min.js +0 -2
- package/dist/chunks/EXT_lights_ies-BS2USlck.esm.min.js.map +0 -1
- package/dist/chunks/EXT_lights_ies-C-joQ5O4.esm.js +0 -84
- package/dist/chunks/EXT_lights_ies-C-joQ5O4.esm.js.map +0 -1
- package/dist/chunks/EXT_lights_image_based-C3wbbb5Z.esm.js +0 -171
- package/dist/chunks/EXT_lights_image_based-C3wbbb5Z.esm.js.map +0 -1
- package/dist/chunks/EXT_lights_image_based-DDdRDnM2.esm.min.js +0 -2
- package/dist/chunks/EXT_lights_image_based-DDdRDnM2.esm.min.js.map +0 -1
- package/dist/chunks/EXT_mesh_gpu_instancing-AXAnRQN7.esm.js +0 -86
- package/dist/chunks/EXT_mesh_gpu_instancing-AXAnRQN7.esm.js.map +0 -1
- package/dist/chunks/EXT_mesh_gpu_instancing-BcjPo6uC.esm.min.js +0 -2
- package/dist/chunks/EXT_mesh_gpu_instancing-BcjPo6uC.esm.min.js.map +0 -1
- package/dist/chunks/EXT_meshopt_compression-DlUkQB2P.esm.js +0 -134
- package/dist/chunks/EXT_meshopt_compression-DlUkQB2P.esm.js.map +0 -1
- package/dist/chunks/EXT_meshopt_compression-yJ4OpORd.esm.min.js +0 -2
- package/dist/chunks/EXT_meshopt_compression-yJ4OpORd.esm.min.js.map +0 -1
- package/dist/chunks/EXT_texture_avif-BQWbvJfK.esm.min.js +0 -2
- package/dist/chunks/EXT_texture_avif-BQWbvJfK.esm.min.js.map +0 -1
- package/dist/chunks/EXT_texture_avif-C0pGpnGv.esm.js +0 -44
- package/dist/chunks/EXT_texture_avif-C0pGpnGv.esm.js.map +0 -1
- package/dist/chunks/EXT_texture_webp-Dd7Uqtmh.esm.min.js +0 -2
- package/dist/chunks/EXT_texture_webp-Dd7Uqtmh.esm.min.js.map +0 -1
- package/dist/chunks/EXT_texture_webp-DehlrnW-.esm.js +0 -43
- package/dist/chunks/EXT_texture_webp-DehlrnW-.esm.js.map +0 -1
- package/dist/chunks/ExtrasAsMetadata-C5NMuDj4.esm.js +0 -64
- package/dist/chunks/ExtrasAsMetadata-C5NMuDj4.esm.js.map +0 -1
- package/dist/chunks/ExtrasAsMetadata-Cp3LHdoG.esm.min.js +0 -2
- package/dist/chunks/ExtrasAsMetadata-Cp3LHdoG.esm.min.js.map +0 -1
- package/dist/chunks/KHR_animation_pointer-DEBOwDXh.esm.min.js +0 -2
- package/dist/chunks/KHR_animation_pointer-DEBOwDXh.esm.min.js.map +0 -1
- package/dist/chunks/KHR_animation_pointer-Dx1OeG2b.esm.js +0 -352
- package/dist/chunks/KHR_animation_pointer-Dx1OeG2b.esm.js.map +0 -1
- package/dist/chunks/KHR_draco_mesh_compression-Ch0QOlBL.esm.min.js +0 -2
- package/dist/chunks/KHR_draco_mesh_compression-Ch0QOlBL.esm.min.js.map +0 -1
- package/dist/chunks/KHR_draco_mesh_compression-D59SFLyo.esm.js +0 -610
- package/dist/chunks/KHR_draco_mesh_compression-D59SFLyo.esm.js.map +0 -1
- package/dist/chunks/KHR_interactivity-Blj_9jts.esm.min.js +0 -2
- package/dist/chunks/KHR_interactivity-Blj_9jts.esm.min.js.map +0 -1
- package/dist/chunks/KHR_interactivity-CR0LYUa7.esm.js +0 -4033
- package/dist/chunks/KHR_interactivity-CR0LYUa7.esm.js.map +0 -1
- package/dist/chunks/KHR_lights_punctual--w0a62AP.esm.js +0 -581
- package/dist/chunks/KHR_lights_punctual--w0a62AP.esm.js.map +0 -1
- package/dist/chunks/KHR_lights_punctual-BojffBbG.esm.min.js +0 -2
- package/dist/chunks/KHR_lights_punctual-BojffBbG.esm.min.js.map +0 -1
- package/dist/chunks/KHR_materials_anisotropy-BPtHWkOQ.esm.js +0 -65
- package/dist/chunks/KHR_materials_anisotropy-BPtHWkOQ.esm.js.map +0 -1
- package/dist/chunks/KHR_materials_anisotropy-DU5_bnCL.esm.min.js +0 -2
- package/dist/chunks/KHR_materials_anisotropy-DU5_bnCL.esm.min.js.map +0 -1
- package/dist/chunks/KHR_materials_clearcoat-BBuRlPhc.esm.min.js +0 -2
- package/dist/chunks/KHR_materials_clearcoat-BBuRlPhc.esm.min.js.map +0 -1
- package/dist/chunks/KHR_materials_clearcoat-Eg0xbuWN.esm.js +0 -96
- package/dist/chunks/KHR_materials_clearcoat-Eg0xbuWN.esm.js.map +0 -1
- package/dist/chunks/KHR_materials_diffuse_transmission-Bkzk60Y5.esm.min.js +0 -2
- package/dist/chunks/KHR_materials_diffuse_transmission-Bkzk60Y5.esm.min.js.map +0 -1
- package/dist/chunks/KHR_materials_diffuse_transmission-C3DaLgRY.esm.js +0 -97
- package/dist/chunks/KHR_materials_diffuse_transmission-C3DaLgRY.esm.js.map +0 -1
- package/dist/chunks/KHR_materials_dispersion-DL_XFhxj.esm.js +0 -62
- package/dist/chunks/KHR_materials_dispersion-DL_XFhxj.esm.js.map +0 -1
- package/dist/chunks/KHR_materials_dispersion-DbMQPBgM.esm.min.js +0 -2
- package/dist/chunks/KHR_materials_dispersion-DbMQPBgM.esm.min.js.map +0 -1
- package/dist/chunks/KHR_materials_emissive_strength-BuHyjtBD.esm.js +0 -55
- package/dist/chunks/KHR_materials_emissive_strength-BuHyjtBD.esm.js.map +0 -1
- package/dist/chunks/KHR_materials_emissive_strength-Djlr_ul3.esm.min.js +0 -2
- package/dist/chunks/KHR_materials_emissive_strength-Djlr_ul3.esm.min.js.map +0 -1
- package/dist/chunks/KHR_materials_ior-BIe6qBOo.esm.js +0 -64
- package/dist/chunks/KHR_materials_ior-BIe6qBOo.esm.js.map +0 -1
- package/dist/chunks/KHR_materials_ior-DOfaAmNY.esm.min.js +0 -2
- package/dist/chunks/KHR_materials_ior-DOfaAmNY.esm.min.js.map +0 -1
- package/dist/chunks/KHR_materials_iridescence-BgElZgUu.esm.js +0 -72
- package/dist/chunks/KHR_materials_iridescence-BgElZgUu.esm.js.map +0 -1
- package/dist/chunks/KHR_materials_iridescence-lUeo07SZ.esm.min.js +0 -2
- package/dist/chunks/KHR_materials_iridescence-lUeo07SZ.esm.min.js.map +0 -1
- package/dist/chunks/KHR_materials_pbrSpecularGlossiness-9ShQyhJ6.esm.min.js +0 -2
- package/dist/chunks/KHR_materials_pbrSpecularGlossiness-9ShQyhJ6.esm.min.js.map +0 -1
- package/dist/chunks/KHR_materials_pbrSpecularGlossiness-DE5LjLg6.esm.js +0 -81
- package/dist/chunks/KHR_materials_pbrSpecularGlossiness-DE5LjLg6.esm.js.map +0 -1
- package/dist/chunks/KHR_materials_sheen-BfZe6ZFu.esm.js +0 -85
- package/dist/chunks/KHR_materials_sheen-BfZe6ZFu.esm.js.map +0 -1
- package/dist/chunks/KHR_materials_sheen-OWjuK2V4.esm.min.js +0 -2
- package/dist/chunks/KHR_materials_sheen-OWjuK2V4.esm.min.js.map +0 -1
- package/dist/chunks/KHR_materials_specular-dowPxbW3.esm.js +0 -75
- package/dist/chunks/KHR_materials_specular-dowPxbW3.esm.js.map +0 -1
- package/dist/chunks/KHR_materials_specular-nWeBZu0R.esm.min.js +0 -2
- package/dist/chunks/KHR_materials_specular-nWeBZu0R.esm.min.js.map +0 -1
- package/dist/chunks/KHR_materials_transmission-BPNQkK0O.esm.min.js +0 -2
- package/dist/chunks/KHR_materials_transmission-BPNQkK0O.esm.min.js.map +0 -1
- package/dist/chunks/KHR_materials_transmission-CHr_yLLX.esm.js +0 -307
- package/dist/chunks/KHR_materials_transmission-CHr_yLLX.esm.js.map +0 -1
- package/dist/chunks/KHR_materials_unlit-BYXpcsdj.esm.min.js +0 -2
- package/dist/chunks/KHR_materials_unlit-BYXpcsdj.esm.min.js.map +0 -1
- package/dist/chunks/KHR_materials_unlit-Cr7YsDHT.esm.js +0 -74
- package/dist/chunks/KHR_materials_unlit-Cr7YsDHT.esm.js.map +0 -1
- package/dist/chunks/KHR_materials_variants-BCVX3sJa.esm.js +0 -262
- package/dist/chunks/KHR_materials_variants-BCVX3sJa.esm.js.map +0 -1
- package/dist/chunks/KHR_materials_variants-BXzl6KpJ.esm.min.js +0 -2
- package/dist/chunks/KHR_materials_variants-BXzl6KpJ.esm.min.js.map +0 -1
- package/dist/chunks/KHR_materials_volume-BD9KEaJz.esm.min.js +0 -2
- package/dist/chunks/KHR_materials_volume-BD9KEaJz.esm.min.js.map +0 -1
- package/dist/chunks/KHR_materials_volume-DrqGUGW6.esm.js +0 -87
- package/dist/chunks/KHR_materials_volume-DrqGUGW6.esm.js.map +0 -1
- package/dist/chunks/KHR_mesh_quantization-Dg22auJA.esm.min.js +0 -2
- package/dist/chunks/KHR_mesh_quantization-Dg22auJA.esm.min.js.map +0 -1
- package/dist/chunks/KHR_mesh_quantization-hvxpvTbe.esm.js +0 -26
- package/dist/chunks/KHR_mesh_quantization-hvxpvTbe.esm.js.map +0 -1
- package/dist/chunks/KHR_node_hoverability-BDiqFmBB.esm.js +0 -39
- package/dist/chunks/KHR_node_hoverability-BDiqFmBB.esm.js.map +0 -1
- package/dist/chunks/KHR_node_hoverability-CumkOtZM.esm.min.js +0 -2
- package/dist/chunks/KHR_node_hoverability-CumkOtZM.esm.min.js.map +0 -1
- package/dist/chunks/KHR_node_visibility-BKEa-Yfj.esm.min.js +0 -2
- package/dist/chunks/KHR_node_visibility-BKEa-Yfj.esm.min.js.map +0 -1
- package/dist/chunks/KHR_node_visibility-K0fsD4Vv.esm.js +0 -46
- package/dist/chunks/KHR_node_visibility-K0fsD4Vv.esm.js.map +0 -1
- package/dist/chunks/KHR_texture_basisu-8YVY1pKo.esm.js +0 -43
- package/dist/chunks/KHR_texture_basisu-8YVY1pKo.esm.js.map +0 -1
- package/dist/chunks/KHR_texture_basisu-BM__NeSW.esm.min.js +0 -2
- package/dist/chunks/KHR_texture_basisu-BM__NeSW.esm.min.js.map +0 -1
- package/dist/chunks/KHR_texture_transform--qxpdvRw.esm.js +0 -63
- package/dist/chunks/KHR_texture_transform--qxpdvRw.esm.js.map +0 -1
- package/dist/chunks/KHR_texture_transform-C0MO-oJp.esm.min.js +0 -2
- package/dist/chunks/KHR_texture_transform-C0MO-oJp.esm.min.js.map +0 -1
- package/dist/chunks/KHR_xmp_json_ld-D9FpHvJo.esm.js +0 -51
- package/dist/chunks/KHR_xmp_json_ld-D9FpHvJo.esm.js.map +0 -1
- package/dist/chunks/KHR_xmp_json_ld-DeXPWWQE.esm.min.js +0 -2
- package/dist/chunks/KHR_xmp_json_ld-DeXPWWQE.esm.min.js.map +0 -1
- package/dist/chunks/MSFT_audio_emitter-BbICSwFH.esm.min.js +0 -2
- package/dist/chunks/MSFT_audio_emitter-BbICSwFH.esm.min.js.map +0 -1
- package/dist/chunks/MSFT_audio_emitter-Dd5lbfUc.esm.js +0 -2201
- package/dist/chunks/MSFT_audio_emitter-Dd5lbfUc.esm.js.map +0 -1
- package/dist/chunks/MSFT_lod-B0zrRF3s.esm.js +0 -337
- package/dist/chunks/MSFT_lod-B0zrRF3s.esm.js.map +0 -1
- package/dist/chunks/MSFT_lod-Bd4znUfD.esm.min.js +0 -2
- package/dist/chunks/MSFT_lod-Bd4znUfD.esm.min.js.map +0 -1
- package/dist/chunks/MSFT_minecraftMesh-CdIpMgsb.esm.min.js +0 -2
- package/dist/chunks/MSFT_minecraftMesh-CdIpMgsb.esm.min.js.map +0 -1
- package/dist/chunks/MSFT_minecraftMesh-WFc8m_Ka.esm.js +0 -46
- package/dist/chunks/MSFT_minecraftMesh-WFc8m_Ka.esm.js.map +0 -1
- package/dist/chunks/MSFT_sRGBFactors-CTbtGna8.esm.js +0 -47
- package/dist/chunks/MSFT_sRGBFactors-CTbtGna8.esm.js.map +0 -1
- package/dist/chunks/MSFT_sRGBFactors-yTSoBQJx.esm.min.js +0 -2
- package/dist/chunks/MSFT_sRGBFactors-yTSoBQJx.esm.min.js.map +0 -1
- package/dist/chunks/animationGroup-8TJDgymS.esm.js +0 -2482
- package/dist/chunks/animationGroup-8TJDgymS.esm.js.map +0 -1
- package/dist/chunks/animationGroup-toXtd3a1.esm.min.js +0 -2
- package/dist/chunks/animationGroup-toXtd3a1.esm.min.js.map +0 -1
- package/dist/chunks/assetContainer-7pMDUaac.esm.min.js +0 -2
- package/dist/chunks/assetContainer-7pMDUaac.esm.min.js.map +0 -1
- package/dist/chunks/assetContainer-DYzO0AbX.esm.js +0 -1720
- package/dist/chunks/assetContainer-DYzO0AbX.esm.js.map +0 -1
- package/dist/chunks/audioEngine-Kz4HSEXd.esm.min.js +0 -2
- package/dist/chunks/audioEngine-Kz4HSEXd.esm.min.js.map +0 -1
- package/dist/chunks/audioEngine-peiGqjr6.esm.js +0 -305
- package/dist/chunks/audioEngine-peiGqjr6.esm.js.map +0 -1
- package/dist/chunks/bakedVertexAnimation-BZvcL01J.esm.min.js +0 -2
- package/dist/chunks/bakedVertexAnimation-BZvcL01J.esm.min.js.map +0 -1
- package/dist/chunks/bakedVertexAnimation-CPflSjER.esm.js +0 -114
- package/dist/chunks/bakedVertexAnimation-CPflSjER.esm.js.map +0 -1
- package/dist/chunks/basisTextureLoader-CR0XhSAg.esm.js +0 -600
- package/dist/chunks/basisTextureLoader-CR0XhSAg.esm.js.map +0 -1
- package/dist/chunks/basisTextureLoader-DVJdcB62.esm.min.js +0 -2
- package/dist/chunks/basisTextureLoader-DVJdcB62.esm.min.js.map +0 -1
- package/dist/chunks/dds-6EdM5O6M.esm.js +0 -540
- package/dist/chunks/dds-6EdM5O6M.esm.js.map +0 -1
- package/dist/chunks/dds-DVX_K9B3.esm.min.js +0 -2
- package/dist/chunks/dds-DVX_K9B3.esm.min.js.map +0 -1
- package/dist/chunks/ddsTextureLoader-BAK7Ib2Z.esm.min.js +0 -2
- package/dist/chunks/ddsTextureLoader-BAK7Ib2Z.esm.min.js.map +0 -1
- package/dist/chunks/ddsTextureLoader-_nktVxwZ.esm.js +0 -88
- package/dist/chunks/ddsTextureLoader-_nktVxwZ.esm.js.map +0 -1
- package/dist/chunks/decalFragment-C_Cews3-.esm.js +0 -18
- package/dist/chunks/decalFragment-C_Cews3-.esm.js.map +0 -1
- package/dist/chunks/decalFragment-Dmj88EX9.esm.min.js +0 -2
- package/dist/chunks/decalFragment-Dmj88EX9.esm.min.js.map +0 -1
- package/dist/chunks/default.fragment-Bv_nR7po.esm.min.js +0 -2
- package/dist/chunks/default.fragment-Bv_nR7po.esm.min.js.map +0 -1
- package/dist/chunks/default.fragment-CkZQyJVM.esm.min.js +0 -2
- package/dist/chunks/default.fragment-CkZQyJVM.esm.min.js.map +0 -1
- package/dist/chunks/default.fragment-CyFHDykY.esm.js +0 -446
- package/dist/chunks/default.fragment-CyFHDykY.esm.js.map +0 -1
- package/dist/chunks/default.fragment-ej-2z5tS.esm.js +0 -515
- package/dist/chunks/default.fragment-ej-2z5tS.esm.js.map +0 -1
- package/dist/chunks/default.vertex-16mVOFgT.esm.js +0 -211
- package/dist/chunks/default.vertex-16mVOFgT.esm.js.map +0 -1
- package/dist/chunks/default.vertex-D--q2At3.esm.min.js +0 -2
- package/dist/chunks/default.vertex-D--q2At3.esm.min.js.map +0 -1
- package/dist/chunks/default.vertex-DDlgZTrR.esm.js +0 -190
- package/dist/chunks/default.vertex-DDlgZTrR.esm.js.map +0 -1
- package/dist/chunks/default.vertex-_jqs3KiZ.esm.min.js +0 -2
- package/dist/chunks/default.vertex-_jqs3KiZ.esm.min.js.map +0 -1
- package/dist/chunks/defaultUboDeclaration-8YG0iNg8.esm.js +0 -15
- package/dist/chunks/defaultUboDeclaration-8YG0iNg8.esm.js.map +0 -1
- package/dist/chunks/defaultUboDeclaration-BoBSRTbi.esm.js +0 -13
- package/dist/chunks/defaultUboDeclaration-BoBSRTbi.esm.js.map +0 -1
- package/dist/chunks/defaultUboDeclaration-Dt_5vo1d.esm.min.js +0 -2
- package/dist/chunks/defaultUboDeclaration-Dt_5vo1d.esm.min.js.map +0 -1
- package/dist/chunks/defaultUboDeclaration-R6gGjkAM.esm.min.js +0 -2
- package/dist/chunks/defaultUboDeclaration-R6gGjkAM.esm.min.js.map +0 -1
- package/dist/chunks/drawWrapper.functions-CKg3_9x4.esm.js +0 -11
- package/dist/chunks/drawWrapper.functions-CKg3_9x4.esm.js.map +0 -1
- package/dist/chunks/drawWrapper.functions-ng7lvueZ.esm.min.js +0 -2
- package/dist/chunks/drawWrapper.functions-ng7lvueZ.esm.min.js.map +0 -1
- package/dist/chunks/dumpTools-Bhux0wvM.esm.js +0 -200
- package/dist/chunks/dumpTools-Bhux0wvM.esm.js.map +0 -1
- package/dist/chunks/dumpTools-CHCb2UkY.esm.min.js +0 -2
- package/dist/chunks/dumpTools-CHCb2UkY.esm.min.js.map +0 -1
- package/dist/chunks/engine-DF_zE4qj.esm.js +0 -2213
- package/dist/chunks/engine-DF_zE4qj.esm.js.map +0 -1
- package/dist/chunks/engine-DVmdDcyP.esm.min.js +0 -2
- package/dist/chunks/engine-DVmdDcyP.esm.min.js.map +0 -1
- package/dist/chunks/engine.common-CvOmoKru.esm.js +0 -1162
- package/dist/chunks/engine.common-CvOmoKru.esm.js.map +0 -1
- package/dist/chunks/engine.common-DpTzktQJ.esm.min.js +0 -2
- package/dist/chunks/engine.common-DpTzktQJ.esm.min.js.map +0 -1
- package/dist/chunks/envTextureLoader-4YxGm-Px.esm.js +0 -64
- package/dist/chunks/envTextureLoader-4YxGm-Px.esm.js.map +0 -1
- package/dist/chunks/envTextureLoader-DMQui088.esm.min.js +0 -2
- package/dist/chunks/envTextureLoader-DMQui088.esm.min.js.map +0 -1
- package/dist/chunks/environmentTextureTools-BPGrTBPI.esm.min.js +0 -2
- package/dist/chunks/environmentTextureTools-BPGrTBPI.esm.min.js.map +0 -1
- package/dist/chunks/environmentTextureTools-DvkpsqkN.esm.js +0 -382
- package/dist/chunks/environmentTextureTools-DvkpsqkN.esm.js.map +0 -1
- package/dist/chunks/exrTextureLoader-BRkB54sO.esm.js +0 -1683
- package/dist/chunks/exrTextureLoader-BRkB54sO.esm.js.map +0 -1
- package/dist/chunks/exrTextureLoader-BtN7_zst.esm.min.js +0 -2
- package/dist/chunks/exrTextureLoader-BtN7_zst.esm.min.js.map +0 -1
- package/dist/chunks/fogFragment-BrGGFaiu.esm.js +0 -101
- package/dist/chunks/fogFragment-BrGGFaiu.esm.js.map +0 -1
- package/dist/chunks/fogFragment-ByOwwQur.esm.min.js +0 -2
- package/dist/chunks/fogFragment-ByOwwQur.esm.min.js.map +0 -1
- package/dist/chunks/fogFragment-Chod24nu.esm.min.js +0 -2
- package/dist/chunks/fogFragment-Chod24nu.esm.min.js.map +0 -1
- package/dist/chunks/fogFragment-gZfybCpt.esm.js +0 -102
- package/dist/chunks/fogFragment-gZfybCpt.esm.js.map +0 -1
- package/dist/chunks/fresnelFunction-BdEia8ob.esm.min.js +0 -2
- package/dist/chunks/fresnelFunction-BdEia8ob.esm.min.js.map +0 -1
- package/dist/chunks/fresnelFunction-DBlxfmri.esm.js +0 -12
- package/dist/chunks/fresnelFunction-DBlxfmri.esm.js.map +0 -1
- package/dist/chunks/glTFLoader-D4C1IGb3.esm.min.js +0 -2
- package/dist/chunks/glTFLoader-D4C1IGb3.esm.min.js.map +0 -1
- package/dist/chunks/glTFLoader-fUFiWvYb.esm.js +0 -7693
- package/dist/chunks/glTFLoader-fUFiWvYb.esm.js.map +0 -1
- package/dist/chunks/glTFLoaderAnimation-BB_Vw079.esm.min.js +0 -2
- package/dist/chunks/glTFLoaderAnimation-BB_Vw079.esm.min.js.map +0 -1
- package/dist/chunks/glTFLoaderAnimation-CttmY50U.esm.js +0 -77
- package/dist/chunks/glTFLoaderAnimation-CttmY50U.esm.js.map +0 -1
- package/dist/chunks/gltfPathToObjectConverter-Dyt_Y9jE.esm.min.js +0 -2
- package/dist/chunks/gltfPathToObjectConverter-Dyt_Y9jE.esm.min.js.map +0 -1
- package/dist/chunks/gltfPathToObjectConverter-GcUmfOyo.esm.js +0 -67
- package/dist/chunks/gltfPathToObjectConverter-GcUmfOyo.esm.js.map +0 -1
- package/dist/chunks/harmonicsFunctions-B0Rp1hEo.esm.min.js +0 -2
- package/dist/chunks/harmonicsFunctions-B0Rp1hEo.esm.min.js.map +0 -1
- package/dist/chunks/harmonicsFunctions-Cca_z552.esm.js +0 -34
- package/dist/chunks/harmonicsFunctions-Cca_z552.esm.js.map +0 -1
- package/dist/chunks/harmonicsFunctions-D4ID83NC.esm.min.js +0 -2
- package/dist/chunks/harmonicsFunctions-D4ID83NC.esm.min.js.map +0 -1
- package/dist/chunks/harmonicsFunctions-HJ5dbl0w.esm.js +0 -35
- package/dist/chunks/harmonicsFunctions-HJ5dbl0w.esm.js.map +0 -1
- package/dist/chunks/hdrTextureLoader-C3kqy6YV.esm.js +0 -253
- package/dist/chunks/hdrTextureLoader-C3kqy6YV.esm.js.map +0 -1
- package/dist/chunks/hdrTextureLoader-Dhlluz4z.esm.min.js +0 -2
- package/dist/chunks/hdrTextureLoader-Dhlluz4z.esm.min.js.map +0 -1
- package/dist/chunks/helperFunctions-BJotVqUd.esm.min.js +0 -2
- package/dist/chunks/helperFunctions-BJotVqUd.esm.min.js.map +0 -1
- package/dist/chunks/helperFunctions-C66wRWtu.esm.js +0 -110
- package/dist/chunks/helperFunctions-C66wRWtu.esm.js.map +0 -1
- package/dist/chunks/helperFunctions-DwEZ9rqh.esm.min.js +0 -2
- package/dist/chunks/helperFunctions-DwEZ9rqh.esm.min.js.map +0 -1
- package/dist/chunks/helperFunctions-gnki_9Kj.esm.js +0 -83
- package/dist/chunks/helperFunctions-gnki_9Kj.esm.js.map +0 -1
- package/dist/chunks/iesTextureLoader-QDs2Cwy5.esm.js +0 -189
- package/dist/chunks/iesTextureLoader-QDs2Cwy5.esm.js.map +0 -1
- package/dist/chunks/iesTextureLoader-pwA6Q4HK.esm.min.js +0 -2
- package/dist/chunks/iesTextureLoader-pwA6Q4HK.esm.min.js.map +0 -1
- package/dist/chunks/index-C6hXZyZb.esm.js +0 -74889
- package/dist/chunks/index-C6hXZyZb.esm.js.map +0 -1
- package/dist/chunks/index-rZVkfTE6.esm.min.js +0 -57
- package/dist/chunks/index-rZVkfTE6.esm.min.js.map +0 -1
- package/dist/chunks/ktxTextureLoader-jVu-Sj-0.esm.js +0 -814
- package/dist/chunks/ktxTextureLoader-jVu-Sj-0.esm.js.map +0 -1
- package/dist/chunks/ktxTextureLoader-zG9azrZF.esm.min.js +0 -2
- package/dist/chunks/ktxTextureLoader-zG9azrZF.esm.min.js.map +0 -1
- package/dist/chunks/logDepthDeclaration-0cA1pTvQ.esm.min.js +0 -2
- package/dist/chunks/logDepthDeclaration-0cA1pTvQ.esm.min.js.map +0 -1
- package/dist/chunks/logDepthDeclaration-CYxYhXIS.esm.js +0 -11
- package/dist/chunks/logDepthDeclaration-CYxYhXIS.esm.js.map +0 -1
- package/dist/chunks/logDepthDeclaration-D4KGxdX-.esm.min.js +0 -2
- package/dist/chunks/logDepthDeclaration-D4KGxdX-.esm.min.js.map +0 -1
- package/dist/chunks/logDepthDeclaration-DJlt2-H5.esm.js +0 -35
- package/dist/chunks/logDepthDeclaration-DJlt2-H5.esm.js.map +0 -1
- package/dist/chunks/logDepthVertex-BS2JEtXA.esm.min.js +0 -2
- package/dist/chunks/logDepthVertex-BS2JEtXA.esm.min.js.map +0 -1
- package/dist/chunks/logDepthVertex-DKPfA10X.esm.js +0 -81
- package/dist/chunks/logDepthVertex-DKPfA10X.esm.js.map +0 -1
- package/dist/chunks/logDepthVertex-ojTShW5I.esm.js +0 -77
- package/dist/chunks/logDepthVertex-ojTShW5I.esm.js.map +0 -1
- package/dist/chunks/logDepthVertex-v-0pHNc-.esm.min.js +0 -2
- package/dist/chunks/logDepthVertex-v-0pHNc-.esm.min.js.map +0 -1
- package/dist/chunks/mainUVVaryingDeclaration-BAzmbS0W.esm.min.js +0 -2
- package/dist/chunks/mainUVVaryingDeclaration-BAzmbS0W.esm.min.js.map +0 -1
- package/dist/chunks/mainUVVaryingDeclaration-Cnux1jkK.esm.js +0 -11
- package/dist/chunks/mainUVVaryingDeclaration-Cnux1jkK.esm.js.map +0 -1
- package/dist/chunks/mainUVVaryingDeclaration-CwS0hUUZ.esm.min.js +0 -2
- package/dist/chunks/mainUVVaryingDeclaration-CwS0hUUZ.esm.min.js.map +0 -1
- package/dist/chunks/mainUVVaryingDeclaration-DCawby1A.esm.js +0 -11
- package/dist/chunks/mainUVVaryingDeclaration-DCawby1A.esm.js.map +0 -1
- package/dist/chunks/mesh.vertexData.functions-B_pMCAzZ.esm.js +0 -119
- package/dist/chunks/mesh.vertexData.functions-B_pMCAzZ.esm.js.map +0 -1
- package/dist/chunks/mesh.vertexData.functions-Bo7e6Of9.esm.min.js +0 -2
- package/dist/chunks/mesh.vertexData.functions-Bo7e6Of9.esm.min.js.map +0 -1
- package/dist/chunks/meshUboDeclaration-QvH0RgeZ.esm.js +0 -26
- package/dist/chunks/meshUboDeclaration-QvH0RgeZ.esm.js.map +0 -1
- package/dist/chunks/meshUboDeclaration-g2s_cYI1.esm.min.js +0 -2
- package/dist/chunks/meshUboDeclaration-g2s_cYI1.esm.min.js.map +0 -1
- package/dist/chunks/objFileLoader-BOutXdVR.esm.min.js +0 -2
- package/dist/chunks/objFileLoader-BOutXdVR.esm.min.js.map +0 -1
- package/dist/chunks/objFileLoader-BPwrX8RK.esm.js +0 -1338
- package/dist/chunks/objFileLoader-BPwrX8RK.esm.js.map +0 -1
- package/dist/chunks/oitFragment-CmcWUhsZ.esm.js +0 -1240
- package/dist/chunks/oitFragment-CmcWUhsZ.esm.js.map +0 -1
- package/dist/chunks/oitFragment-D8XBQ6Wa.esm.js +0 -1078
- package/dist/chunks/oitFragment-D8XBQ6Wa.esm.js.map +0 -1
- package/dist/chunks/oitFragment-DgAlmoHs.esm.min.js +0 -2
- package/dist/chunks/oitFragment-DgAlmoHs.esm.min.js.map +0 -1
- package/dist/chunks/oitFragment-DpJ5xGhy.esm.min.js +0 -2
- package/dist/chunks/oitFragment-DpJ5xGhy.esm.min.js.map +0 -1
- package/dist/chunks/pass.fragment--XRaXRhU.esm.js +0 -15
- package/dist/chunks/pass.fragment--XRaXRhU.esm.js.map +0 -1
- package/dist/chunks/pass.fragment-5Q3qXxDe.esm.min.js +0 -2
- package/dist/chunks/pass.fragment-5Q3qXxDe.esm.min.js.map +0 -1
- package/dist/chunks/pass.fragment-BBLiyU_i.esm.min.js +0 -2
- package/dist/chunks/pass.fragment-BBLiyU_i.esm.min.js.map +0 -1
- package/dist/chunks/pass.fragment-DI4ZYZJe.esm.js +0 -15
- package/dist/chunks/pass.fragment-DI4ZYZJe.esm.js.map +0 -1
- package/dist/chunks/pbr.fragment-C7xQS4ZJ.esm.js +0 -3269
- package/dist/chunks/pbr.fragment-C7xQS4ZJ.esm.js.map +0 -1
- package/dist/chunks/pbr.fragment-Ddxaik8T.esm.min.js +0 -2
- package/dist/chunks/pbr.fragment-Ddxaik8T.esm.min.js.map +0 -1
- package/dist/chunks/pbr.fragment-fky04gH_.esm.js +0 -3222
- package/dist/chunks/pbr.fragment-fky04gH_.esm.js.map +0 -1
- package/dist/chunks/pbr.fragment-ya1zai4w.esm.min.js +0 -2
- package/dist/chunks/pbr.fragment-ya1zai4w.esm.min.js.map +0 -1
- package/dist/chunks/pbr.vertex-BPEYHoRM.esm.js +0 -223
- package/dist/chunks/pbr.vertex-BPEYHoRM.esm.js.map +0 -1
- package/dist/chunks/pbr.vertex-BXcMYADF.esm.js +0 -348
- package/dist/chunks/pbr.vertex-BXcMYADF.esm.js.map +0 -1
- package/dist/chunks/pbr.vertex-BjA08auU.esm.min.js +0 -2
- package/dist/chunks/pbr.vertex-BjA08auU.esm.min.js.map +0 -1
- package/dist/chunks/pbr.vertex-Cx2V3lNf.esm.min.js +0 -2
- package/dist/chunks/pbr.vertex-Cx2V3lNf.esm.min.js.map +0 -1
- package/dist/chunks/postprocess.vertex-BHpQrNSx.esm.min.js +0 -2
- package/dist/chunks/postprocess.vertex-BHpQrNSx.esm.min.js.map +0 -1
- package/dist/chunks/postprocess.vertex-DnDbk0tq.esm.js +0 -20
- package/dist/chunks/postprocess.vertex-DnDbk0tq.esm.js.map +0 -1
- package/dist/chunks/rawTexture-CWiRIto8.esm.js +0 -191
- package/dist/chunks/rawTexture-CWiRIto8.esm.js.map +0 -1
- package/dist/chunks/rawTexture-DX8V9PEj.esm.min.js +0 -2
- package/dist/chunks/rawTexture-DX8V9PEj.esm.min.js.map +0 -1
- package/dist/chunks/ray-ix7SqYNQ.esm.min.js +0 -2
- package/dist/chunks/ray-ix7SqYNQ.esm.min.js.map +0 -1
- package/dist/chunks/ray-nTZBkOil.esm.js +0 -946
- package/dist/chunks/ray-nTZBkOil.esm.js.map +0 -1
- package/dist/chunks/rgbdDecode.fragment-Be3ofvlt.esm.min.js +0 -2
- package/dist/chunks/rgbdDecode.fragment-Be3ofvlt.esm.min.js.map +0 -1
- package/dist/chunks/rgbdDecode.fragment-C05QJpT2.esm.js +0 -13
- package/dist/chunks/rgbdDecode.fragment-C05QJpT2.esm.js.map +0 -1
- package/dist/chunks/rgbdDecode.fragment-D3SYBclQ.esm.min.js +0 -2
- package/dist/chunks/rgbdDecode.fragment-D3SYBclQ.esm.min.js.map +0 -1
- package/dist/chunks/rgbdDecode.fragment-DBG6KfKF.esm.js +0 -13
- package/dist/chunks/rgbdDecode.fragment-DBG6KfKF.esm.js.map +0 -1
- package/dist/chunks/rgbdEncode.fragment-BlhtohrO.esm.js +0 -13
- package/dist/chunks/rgbdEncode.fragment-BlhtohrO.esm.js.map +0 -1
- package/dist/chunks/rgbdEncode.fragment-BmJKYw6A.esm.min.js +0 -2
- package/dist/chunks/rgbdEncode.fragment-BmJKYw6A.esm.min.js.map +0 -1
- package/dist/chunks/rgbdEncode.fragment-dr2kGjSO.esm.js +0 -13
- package/dist/chunks/rgbdEncode.fragment-dr2kGjSO.esm.js.map +0 -1
- package/dist/chunks/rgbdEncode.fragment-hXPzg1p5.esm.min.js +0 -2
- package/dist/chunks/rgbdEncode.fragment-hXPzg1p5.esm.min.js.map +0 -1
- package/dist/chunks/splatFileLoader-Bs42LtsP.esm.min.js +0 -2
- package/dist/chunks/splatFileLoader-Bs42LtsP.esm.min.js.map +0 -1
- package/dist/chunks/splatFileLoader-Dp33YOem.esm.js +0 -3379
- package/dist/chunks/splatFileLoader-Dp33YOem.esm.js.map +0 -1
- package/dist/chunks/spotLight-C0NmKeem.esm.js +0 -701
- package/dist/chunks/spotLight-C0NmKeem.esm.js.map +0 -1
- package/dist/chunks/spotLight-CcuCNdES.esm.min.js +0 -2
- package/dist/chunks/spotLight-CcuCNdES.esm.min.js.map +0 -1
- package/dist/chunks/standardMaterial-C1E5n_4w.esm.min.js +0 -2
- package/dist/chunks/standardMaterial-C1E5n_4w.esm.min.js.map +0 -1
- package/dist/chunks/standardMaterial-v_D8QA4q.esm.js +0 -1807
- package/dist/chunks/standardMaterial-v_D8QA4q.esm.js.map +0 -1
- package/dist/chunks/stlFileLoader-DC2IRQDj.esm.min.js +0 -2
- package/dist/chunks/stlFileLoader-DC2IRQDj.esm.min.js.map +0 -1
- package/dist/chunks/stlFileLoader-LRHEIFfU.esm.js +0 -238
- package/dist/chunks/stlFileLoader-LRHEIFfU.esm.js.map +0 -1
- package/dist/chunks/tgaTextureLoader-2ekJC0En.esm.js +0 -349
- package/dist/chunks/tgaTextureLoader-2ekJC0En.esm.js.map +0 -1
- package/dist/chunks/tgaTextureLoader-Clj6zUK-.esm.min.js +0 -2
- package/dist/chunks/tgaTextureLoader-Clj6zUK-.esm.min.js.map +0 -1
- package/dist/chunks/thinEngine-DksimP2U.esm.js +0 -3848
- package/dist/chunks/thinEngine-DksimP2U.esm.js.map +0 -1
- package/dist/chunks/thinEngine-tsALaFYH.esm.min.js +0 -2
- package/dist/chunks/thinEngine-tsALaFYH.esm.min.js.map +0 -1
- package/dist/chunks/thinInstanceMesh-B8AW0Oa2.esm.js +0 -314
- package/dist/chunks/thinInstanceMesh-B8AW0Oa2.esm.js.map +0 -1
- package/dist/chunks/thinInstanceMesh-kCGEJ0-e.esm.min.js +0 -2
- package/dist/chunks/thinInstanceMesh-kCGEJ0-e.esm.min.js.map +0 -1
- package/dist/chunks/vertexColorMixing-Bjijk3lU.esm.min.js +0 -2
- package/dist/chunks/vertexColorMixing-Bjijk3lU.esm.min.js.map +0 -1
- package/dist/chunks/vertexColorMixing-D9917nJN.esm.js +0 -428
- package/dist/chunks/vertexColorMixing-D9917nJN.esm.js.map +0 -1
- package/dist/chunks/vertexColorMixing-DgthWrKf.esm.min.js +0 -2
- package/dist/chunks/vertexColorMixing-DgthWrKf.esm.min.js.map +0 -1
- package/dist/chunks/vertexColorMixing-U1SA6UK3.esm.js +0 -538
- package/dist/chunks/vertexColorMixing-U1SA6UK3.esm.js.map +0 -1
- package/dist/chunks/webgpuEngine-BOGR1D8F.esm.min.js +0 -2
- package/dist/chunks/webgpuEngine-BOGR1D8F.esm.min.js.map +0 -1
- package/dist/chunks/webgpuEngine-BrzOpZ-2.esm.js +0 -11533
- package/dist/chunks/webgpuEngine-BrzOpZ-2.esm.js.map +0 -1
- package/dist/chunks/workerPool-BUOov2K1.esm.js +0 -122
- package/dist/chunks/workerPool-BUOov2K1.esm.js.map +0 -1
- package/dist/chunks/workerPool-BWHiDmEZ.esm.min.js +0 -2
- package/dist/chunks/workerPool-BWHiDmEZ.esm.min.js.map +0 -1
- package/lib/index.d.ts +0 -591
- package/lib/index.js +0 -2165
- package/lib/index.js.map +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"KHR_draco_mesh_compression-D59SFLyo.esm.js","sources":["../../../../../dev/core/dist/Meshes/Compression/dracoCompressionWorker.js","../../../../../dev/core/dist/Meshes/Compression/dracoCodec.js","../../../../../dev/core/dist/Meshes/Compression/dracoDecoder.js","../../../../../dev/loaders/dist/glTF/2.0/Extensions/KHR_draco_mesh_compression.js"],"sourcesContent":["/**\n * @internal\n */\nexport function decodeMesh(decoderModule /*DecoderModule*/, data, attributes, onIndicesData, onAttributeData) {\n let decoder = null;\n let buffer = null;\n let geometry = null;\n try {\n decoder = new decoderModule.Decoder();\n buffer = new decoderModule.DecoderBuffer();\n buffer.Init(data, data.byteLength);\n let status;\n const type = decoder.GetEncodedGeometryType(buffer);\n switch (type) {\n case decoderModule.TRIANGULAR_MESH: {\n const mesh = new decoderModule.Mesh();\n status = decoder.DecodeBufferToMesh(buffer, mesh);\n if (!status.ok() || mesh.ptr === 0) {\n throw new Error(status.error_msg());\n }\n const numFaces = mesh.num_faces();\n const numIndices = numFaces * 3;\n const byteLength = numIndices * 4;\n const ptr = decoderModule._malloc(byteLength);\n try {\n decoder.GetTrianglesUInt32Array(mesh, byteLength, ptr);\n const indices = new Uint32Array(numIndices);\n indices.set(new Uint32Array(decoderModule.HEAPF32.buffer, ptr, numIndices));\n onIndicesData(indices);\n }\n finally {\n decoderModule._free(ptr);\n }\n geometry = mesh;\n break;\n }\n case decoderModule.POINT_CLOUD: {\n const pointCloud = new decoderModule.PointCloud();\n status = decoder.DecodeBufferToPointCloud(buffer, pointCloud);\n if (!status.ok() || !pointCloud.ptr) {\n throw new Error(status.error_msg());\n }\n geometry = pointCloud;\n break;\n }\n default: {\n throw new Error(`Invalid geometry type ${type}`);\n }\n }\n const numPoints = geometry.num_points();\n const processAttribute = (decoder, geometry, kind, attribute) => {\n const dataType = attribute.data_type();\n const numComponents = attribute.num_components();\n const normalized = attribute.normalized();\n const byteStride = attribute.byte_stride();\n const byteOffset = attribute.byte_offset();\n const dataTypeInfo = {\n [decoderModule.DT_FLOAT32]: { typedArrayConstructor: Float32Array, heap: decoderModule.HEAPF32 },\n [decoderModule.DT_INT8]: { typedArrayConstructor: Int8Array, heap: decoderModule.HEAP8 },\n [decoderModule.DT_INT16]: { typedArrayConstructor: Int16Array, heap: decoderModule.HEAP16 },\n [decoderModule.DT_INT32]: { typedArrayConstructor: Int32Array, heap: decoderModule.HEAP32 },\n [decoderModule.DT_UINT8]: { typedArrayConstructor: Uint8Array, heap: decoderModule.HEAPU8 },\n [decoderModule.DT_UINT16]: { typedArrayConstructor: Uint16Array, heap: decoderModule.HEAPU16 },\n [decoderModule.DT_UINT32]: { typedArrayConstructor: Uint32Array, heap: decoderModule.HEAPU32 },\n };\n const info = dataTypeInfo[dataType];\n if (!info) {\n throw new Error(`Invalid data type ${dataType}`);\n }\n const numValues = numPoints * numComponents;\n const byteLength = numValues * info.typedArrayConstructor.BYTES_PER_ELEMENT;\n const ptr = decoderModule._malloc(byteLength);\n try {\n decoder.GetAttributeDataArrayForAllPoints(geometry, attribute, dataType, byteLength, ptr);\n const data = new info.typedArrayConstructor(info.heap.buffer, ptr, numValues);\n onAttributeData(kind, data.slice(), numComponents, byteOffset, byteStride, normalized);\n }\n finally {\n decoderModule._free(ptr);\n }\n };\n if (attributes) {\n for (const kind in attributes) {\n const id = attributes[kind];\n const attribute = decoder.GetAttributeByUniqueId(geometry, id);\n processAttribute(decoder, geometry, kind, attribute);\n }\n }\n else {\n const dracoAttributeTypes = {\n position: decoderModule.POSITION,\n normal: decoderModule.NORMAL,\n color: decoderModule.COLOR,\n uv: decoderModule.TEX_COORD,\n };\n for (const kind in dracoAttributeTypes) {\n const id = decoder.GetAttributeId(geometry, dracoAttributeTypes[kind]);\n if (id !== -1) {\n const attribute = decoder.GetAttribute(geometry, id);\n processAttribute(decoder, geometry, kind, attribute);\n }\n }\n }\n return numPoints;\n }\n finally {\n if (geometry) {\n decoderModule.destroy(geometry);\n }\n if (buffer) {\n decoderModule.destroy(buffer);\n }\n if (decoder) {\n decoderModule.destroy(decoder);\n }\n }\n}\n/**\n * The worker function that gets converted to a blob url to pass into a worker.\n * To be used if a developer wants to create their own worker instance and inject it instead of using the default worker.\n */\nexport function workerFunction() {\n let decoderPromise;\n onmessage = (event) => {\n const message = event.data;\n switch (message.id) {\n case \"init\": {\n const decoder = message.decoder;\n // if URL is provided then load the script. Otherwise expect the script to be loaded already\n if (decoder.url) {\n importScripts(decoder.url);\n }\n const initDecoderObject = decoder.wasmBinary ? { wasmBinary: decoder.wasmBinary } : {};\n decoderPromise = DracoDecoderModule(initDecoderObject);\n postMessage({ id: \"initDone\" });\n break;\n }\n case \"decodeMesh\": {\n if (!decoderPromise) {\n throw new Error(\"Draco decoder module is not available\");\n }\n decoderPromise.then((decoder) => {\n const numPoints = decodeMesh(decoder, message.dataView, message.attributes, (indices) => {\n postMessage({ id: \"indices\", data: indices }, [indices.buffer]);\n }, (kind, data, size, offset, stride, normalized) => {\n postMessage({ id: \"attribute\", kind, data, size, byteOffset: offset, byteStride: stride, normalized }, [data.buffer]);\n });\n postMessage({ id: \"decodeMeshDone\", totalVertices: numPoints });\n });\n break;\n }\n }\n };\n}\n/**\n * Initializes a worker that was created for the draco agent pool\n * @param worker The worker to initialize\n * @param decoderWasmBinary The wasm binary to load into the worker\n * @param moduleUrl The url to the draco decoder module (optional)\n * @returns A promise that resolves when the worker is initialized\n */\nexport function initializeWebWorker(worker, decoderWasmBinary, moduleUrl) {\n return new Promise((resolve, reject) => {\n const onError = (error) => {\n worker.removeEventListener(\"error\", onError);\n worker.removeEventListener(\"message\", onMessage);\n reject(error);\n };\n const onMessage = (event) => {\n if (event.data.id === \"initDone\") {\n worker.removeEventListener(\"error\", onError);\n worker.removeEventListener(\"message\", onMessage);\n resolve(worker);\n }\n };\n worker.addEventListener(\"error\", onError);\n worker.addEventListener(\"message\", onMessage);\n if (!decoderWasmBinary) {\n worker.postMessage({\n id: \"init\",\n decoder: {\n url: moduleUrl,\n },\n });\n }\n else {\n // clone the array buffer to make it transferable\n const clone = decoderWasmBinary.slice(0);\n worker.postMessage({\n id: \"init\",\n decoder: {\n url: moduleUrl,\n wasmBinary: clone,\n },\n }, [clone]);\n }\n // note: no transfer list as the ArrayBuffer is shared across main thread and pool workers\n });\n}\n//# sourceMappingURL=dracoCompressionWorker.js.map","import { Tools } from \"../../Misc/tools\";\nimport { AutoReleaseWorkerPool } from \"../../Misc/workerPool\";\nimport { initializeWebWorker } from \"./dracoCompressionWorker\";\n/**\n * @internal\n */\nexport function _GetDefaultNumWorkers() {\n if (typeof navigator !== \"object\" || !navigator.hardwareConcurrency) {\n return 1;\n }\n // Use 50% of the available logical processors but capped at 4.\n return Math.min(Math.floor(navigator.hardwareConcurrency * 0.5), 4);\n}\n/**\n * @internal\n */\nexport function _IsConfigurationAvailable(config) {\n return !!((config.wasmUrl && (config.wasmBinary || config.wasmBinaryUrl) && typeof WebAssembly === \"object\") || config.fallbackUrl);\n // TODO: Account for jsModule\n}\n/**\n * Base class for a Draco codec.\n * @internal\n */\nexport class DracoCodec {\n /**\n * Constructor\n * @param configuration The configuration for the DracoCodec instance.\n */\n constructor(configuration) {\n // check if the codec binary and worker pool was injected\n // Note - it is expected that the developer checked if WebWorker, WebAssembly and the URL object are available\n if (configuration.workerPool) {\n // Set the promise accordingly\n this._workerPoolPromise = Promise.resolve(configuration.workerPool);\n return;\n }\n // to avoid making big changes to the code here, if wasmBinary is provided use it in the wasmBinaryPromise\n const wasmBinaryProvided = configuration.wasmBinary;\n const numberOfWorkers = configuration.numWorkers ?? _GetDefaultNumWorkers();\n const useWorkers = numberOfWorkers && typeof Worker === \"function\" && typeof URL === \"function\";\n const urlNeeded = useWorkers || !configuration.jsModule;\n // code maintained here for back-compat with no changes\n const codecInfo = configuration.wasmUrl && configuration.wasmBinaryUrl && typeof WebAssembly === \"object\"\n ? {\n url: urlNeeded ? Tools.GetBabylonScriptURL(configuration.wasmUrl, true) : \"\",\n wasmBinaryPromise: wasmBinaryProvided\n ? Promise.resolve(wasmBinaryProvided)\n : Tools.LoadFileAsync(Tools.GetBabylonScriptURL(configuration.wasmBinaryUrl, true)),\n }\n : {\n url: urlNeeded ? Tools.GetBabylonScriptURL(configuration.fallbackUrl) : \"\",\n wasmBinaryPromise: Promise.resolve(undefined),\n };\n // If using workers, initialize a worker pool with either the wasm or url?\n if (useWorkers) {\n this._workerPoolPromise = codecInfo.wasmBinaryPromise.then((wasmBinary) => {\n const workerContent = this._getWorkerContent();\n const workerBlobUrl = URL.createObjectURL(new Blob([workerContent], { type: \"application/javascript\" }));\n return new AutoReleaseWorkerPool(numberOfWorkers, () => {\n const worker = new Worker(workerBlobUrl);\n return initializeWebWorker(worker, wasmBinary, codecInfo.url);\n });\n });\n }\n else {\n this._modulePromise = codecInfo.wasmBinaryPromise.then(async (wasmBinary) => {\n if (!this._isModuleAvailable()) {\n if (!configuration.jsModule) {\n if (!codecInfo.url) {\n throw new Error(\"Draco codec module is not available\");\n }\n await Tools.LoadBabylonScriptAsync(codecInfo.url);\n }\n }\n return this._createModuleAsync(wasmBinary, configuration.jsModule);\n });\n }\n }\n /**\n * Returns a promise that resolves when ready. Call this manually to ensure the draco codec is ready before use.\n * @returns a promise that resolves when ready\n */\n async whenReadyAsync() {\n if (this._workerPoolPromise) {\n await this._workerPoolPromise;\n return;\n }\n if (this._modulePromise) {\n await this._modulePromise;\n return;\n }\n }\n /**\n * Stop all async operations and release resources.\n */\n dispose() {\n if (this._workerPoolPromise) {\n this._workerPoolPromise.then((workerPool) => {\n workerPool.dispose();\n });\n }\n delete this._workerPoolPromise;\n delete this._modulePromise;\n }\n}\n//# sourceMappingURL=dracoCodec.js.map","import { _IsConfigurationAvailable, DracoCodec } from \"./dracoCodec\";\nimport { Tools } from \"../../Misc/tools\";\nimport { Geometry } from \"../geometry\";\nimport { VertexBuffer } from \"../buffer\";\nimport { Logger } from \"../../Misc/logger\";\nimport { decodeMesh, workerFunction } from \"./dracoCompressionWorker\";\n/**\n * @experimental This class is an experimental version of `DracoCompression` and is subject to change.\n *\n * Draco Decoder (https://google.github.io/draco/)\n *\n * This class wraps the Draco decoder module.\n *\n * By default, the configuration points to a copy of the Draco decoder files for glTF from the Babylon.js preview cdn https://preview.babylonjs.com/draco_wasm_wrapper_gltf.js.\n *\n * To update the configuration, use the following code:\n * ```javascript\n * DracoDecoder.DefaultConfiguration = {\n * wasmUrl: \"<url to the WebAssembly library>\",\n * wasmBinaryUrl: \"<url to the WebAssembly binary>\",\n * fallbackUrl: \"<url to the fallback JavaScript library>\",\n * };\n * ```\n *\n * Draco has two versions, one for WebAssembly and one for JavaScript. The decoder configuration can be set to only support WebAssembly or only support the JavaScript version.\n * Decoding will automatically fallback to the JavaScript version if WebAssembly version is not configured or if WebAssembly is not supported by the browser.\n * Use `DracoDecoder.DefaultAvailable` to determine if the decoder configuration is available for the current context.\n *\n * To decode Draco compressed data, get the default DracoDecoder object and call decodeMeshToGeometryAsync:\n * ```javascript\n * var geometry = await DracoDecoder.Default.decodeMeshToGeometryAsync(data);\n * ```\n */\nexport class DracoDecoder extends DracoCodec {\n /**\n * Returns true if the decoder's `DefaultConfiguration` is available.\n */\n static get DefaultAvailable() {\n return _IsConfigurationAvailable(DracoDecoder.DefaultConfiguration);\n }\n /**\n * Default instance for the DracoDecoder.\n */\n static get Default() {\n DracoDecoder._Default ??= new DracoDecoder();\n return DracoDecoder._Default;\n }\n /**\n * Reset the default DracoDecoder object to null and disposing the removed default instance.\n * Note that if the workerPool is a member of the static DefaultConfiguration object it is recommended not to run dispose,\n * unless the static worker pool is no longer needed.\n * @param skipDispose set to true to not dispose the removed default instance\n */\n static ResetDefault(skipDispose) {\n if (DracoDecoder._Default) {\n if (!skipDispose) {\n DracoDecoder._Default.dispose();\n }\n DracoDecoder._Default = null;\n }\n }\n _isModuleAvailable() {\n return typeof DracoDecoderModule !== \"undefined\";\n }\n async _createModuleAsync(wasmBinary, jsModule) {\n const module = await (jsModule || DracoDecoderModule)({ wasmBinary });\n return { module };\n }\n _getWorkerContent() {\n return `${decodeMesh}(${workerFunction})()`;\n }\n /**\n * Creates a new Draco decoder.\n * @param configuration Optional override of the configuration for the DracoDecoder. If not provided, defaults to {@link DracoDecoder.DefaultConfiguration}.\n */\n constructor(configuration = DracoDecoder.DefaultConfiguration) {\n super(configuration);\n }\n /**\n * Decode Draco compressed mesh data to mesh data.\n * @param data The ArrayBuffer or ArrayBufferView of the compressed Draco data\n * @param attributes A map of attributes from vertex buffer kinds to Draco unique ids\n * @param gltfNormalizedOverride A map of attributes from vertex buffer kinds to normalized flags to override the Draco normalization\n * @returns A promise that resolves with the decoded mesh data\n */\n decodeMeshToMeshDataAsync(data, attributes, gltfNormalizedOverride) {\n const dataView = data instanceof ArrayBuffer ? new Int8Array(data) : new Int8Array(data.buffer, data.byteOffset, data.byteLength);\n const applyGltfNormalizedOverride = (kind, normalized) => {\n if (gltfNormalizedOverride && gltfNormalizedOverride[kind] !== undefined) {\n if (normalized !== gltfNormalizedOverride[kind]) {\n Logger.Warn(`Normalized flag from Draco data (${normalized}) does not match normalized flag from glTF accessor (${gltfNormalizedOverride[kind]}). Using flag from glTF accessor.`);\n }\n return gltfNormalizedOverride[kind];\n }\n else {\n return normalized;\n }\n };\n if (this._workerPoolPromise) {\n return this._workerPoolPromise.then((workerPool) => {\n return new Promise((resolve, reject) => {\n workerPool.push((worker, onComplete) => {\n let resultIndices = null;\n const resultAttributes = [];\n const onError = (error) => {\n worker.removeEventListener(\"error\", onError);\n worker.removeEventListener(\"message\", onMessage);\n reject(error);\n onComplete();\n };\n const onMessage = (event) => {\n const message = event.data;\n switch (message.id) {\n case \"indices\": {\n resultIndices = message.data;\n break;\n }\n case \"attribute\": {\n resultAttributes.push({\n kind: message.kind,\n data: message.data,\n size: message.size,\n byteOffset: message.byteOffset,\n byteStride: message.byteStride,\n normalized: applyGltfNormalizedOverride(message.kind, message.normalized),\n });\n break;\n }\n case \"decodeMeshDone\": {\n worker.removeEventListener(\"error\", onError);\n worker.removeEventListener(\"message\", onMessage);\n resolve({ indices: resultIndices, attributes: resultAttributes, totalVertices: message.totalVertices });\n onComplete();\n break;\n }\n }\n };\n worker.addEventListener(\"error\", onError);\n worker.addEventListener(\"message\", onMessage);\n const dataViewCopy = dataView.slice();\n worker.postMessage({ id: \"decodeMesh\", dataView: dataViewCopy, attributes: attributes }, [dataViewCopy.buffer]);\n });\n });\n });\n }\n if (this._modulePromise) {\n return this._modulePromise.then((decoder) => {\n let resultIndices = null;\n const resultAttributes = [];\n const numPoints = decodeMesh(decoder.module, dataView, attributes, (indices) => {\n resultIndices = indices;\n }, (kind, data, size, byteOffset, byteStride, normalized) => {\n resultAttributes.push({\n kind,\n data,\n size,\n byteOffset,\n byteStride,\n normalized,\n });\n });\n return { indices: resultIndices, attributes: resultAttributes, totalVertices: numPoints };\n });\n }\n throw new Error(\"Draco decoder module is not available\");\n }\n /**\n * Decode Draco compressed mesh data to Babylon geometry.\n * @param name The name to use when creating the geometry\n * @param scene The scene to use when creating the geometry\n * @param data The ArrayBuffer or ArrayBufferView of the Draco compressed data\n * @param attributes A map of attributes from vertex buffer kinds to Draco unique ids\n * @returns A promise that resolves with the decoded geometry\n */\n async decodeMeshToGeometryAsync(name, scene, data, attributes) {\n const meshData = await this.decodeMeshToMeshDataAsync(data, attributes);\n const geometry = new Geometry(name, scene);\n if (meshData.indices) {\n geometry.setIndices(meshData.indices);\n }\n for (const attribute of meshData.attributes) {\n geometry.setVerticesBuffer(new VertexBuffer(scene.getEngine(), attribute.data, attribute.kind, false, undefined, attribute.byteStride, undefined, attribute.byteOffset, attribute.size, undefined, attribute.normalized, true), meshData.totalVertices);\n }\n return geometry;\n }\n /** @internal */\n async _decodeMeshToGeometryForGltfAsync(name, scene, data, attributes, gltfNormalizedOverride, boundingInfo) {\n const meshData = await this.decodeMeshToMeshDataAsync(data, attributes, gltfNormalizedOverride);\n const geometry = new Geometry(name, scene);\n if (boundingInfo) {\n geometry._boundingInfo = boundingInfo;\n geometry.useBoundingInfoFromGeometry = true;\n }\n if (meshData.indices) {\n geometry.setIndices(meshData.indices);\n }\n for (const attribute of meshData.attributes) {\n geometry.setVerticesBuffer(new VertexBuffer(scene.getEngine(), attribute.data, attribute.kind, false, undefined, attribute.byteStride, undefined, attribute.byteOffset, attribute.size, undefined, attribute.normalized, true), meshData.totalVertices);\n }\n return geometry;\n }\n}\n/**\n * Default configuration for the DracoDecoder. Defaults to the following:\n * - numWorkers: 50% of the available logical processors, capped to 4. If no logical processors are available, defaults to 1.\n * - wasmUrl: `\"https://cdn.babylonjs.com/draco_wasm_wrapper_gltf.js\"`\n * - wasmBinaryUrl: `\"https://cdn.babylonjs.com/draco_decoder_gltf.wasm\"`\n * - fallbackUrl: `\"https://cdn.babylonjs.com/draco_decoder_gltf.js\"`\n */\nDracoDecoder.DefaultConfiguration = {\n wasmUrl: `${Tools._DefaultCdnUrl}/draco_wasm_wrapper_gltf.js`,\n wasmBinaryUrl: `${Tools._DefaultCdnUrl}/draco_decoder_gltf.wasm`,\n fallbackUrl: `${Tools._DefaultCdnUrl}/draco_decoder_gltf.js`,\n};\nDracoDecoder._Default = null;\n//# sourceMappingURL=dracoDecoder.js.map","import { DracoDecoder } from \"core/Meshes/Compression/dracoDecoder\";\nimport { VertexBuffer } from \"core/Buffers/buffer\";\nimport { GLTFLoader, ArrayItem, LoadBoundingInfoFromPositionAccessor } from \"../glTFLoader\";\nimport { registerGLTFExtension, unregisterGLTFExtension } from \"../glTFLoaderExtensionRegistry\";\nconst NAME = \"KHR_draco_mesh_compression\";\n/**\n * [Specification](https://github.com/KhronosGroup/glTF/blob/main/extensions/2.0/Khronos/KHR_draco_mesh_compression/README.md)\n */\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport class KHR_draco_mesh_compression {\n /**\n * @internal\n */\n constructor(loader) {\n /**\n * The name of this extension.\n */\n this.name = NAME;\n /**\n * Defines whether to use the normalized flag from the glTF accessor instead of the Draco data. Defaults to true.\n */\n this.useNormalizedFlagFromAccessor = true;\n this._loader = loader;\n this.enabled = DracoDecoder.DefaultAvailable && this._loader.isExtensionUsed(NAME);\n }\n /** @internal */\n dispose() {\n delete this.dracoDecoder;\n this._loader = null;\n }\n /**\n * @internal\n */\n _loadVertexDataAsync(context, primitive, babylonMesh) {\n return GLTFLoader.LoadExtensionAsync(context, primitive, this.name, (extensionContext, extension) => {\n if (primitive.mode != undefined) {\n if (primitive.mode !== 4 /* MeshPrimitiveMode.TRIANGLES */ && primitive.mode !== 5 /* MeshPrimitiveMode.TRIANGLE_STRIP */) {\n throw new Error(`${context}: Unsupported mode ${primitive.mode}`);\n }\n }\n const attributes = {};\n const normalized = {};\n const loadAttribute = (name, kind) => {\n const uniqueId = extension.attributes[name];\n if (uniqueId == undefined) {\n return;\n }\n babylonMesh._delayInfo = babylonMesh._delayInfo || [];\n if (babylonMesh._delayInfo.indexOf(kind) === -1) {\n babylonMesh._delayInfo.push(kind);\n }\n attributes[kind] = uniqueId;\n if (this.useNormalizedFlagFromAccessor) {\n const accessor = ArrayItem.TryGet(this._loader.gltf.accessors, primitive.attributes[name]);\n if (accessor) {\n normalized[kind] = accessor.normalized || false;\n }\n }\n };\n loadAttribute(\"POSITION\", VertexBuffer.PositionKind);\n loadAttribute(\"NORMAL\", VertexBuffer.NormalKind);\n loadAttribute(\"TANGENT\", VertexBuffer.TangentKind);\n loadAttribute(\"TEXCOORD_0\", VertexBuffer.UVKind);\n loadAttribute(\"TEXCOORD_1\", VertexBuffer.UV2Kind);\n loadAttribute(\"TEXCOORD_2\", VertexBuffer.UV3Kind);\n loadAttribute(\"TEXCOORD_3\", VertexBuffer.UV4Kind);\n loadAttribute(\"TEXCOORD_4\", VertexBuffer.UV5Kind);\n loadAttribute(\"TEXCOORD_5\", VertexBuffer.UV6Kind);\n loadAttribute(\"JOINTS_0\", VertexBuffer.MatricesIndicesKind);\n loadAttribute(\"WEIGHTS_0\", VertexBuffer.MatricesWeightsKind);\n loadAttribute(\"COLOR_0\", VertexBuffer.ColorKind);\n const bufferView = ArrayItem.Get(extensionContext, this._loader.gltf.bufferViews, extension.bufferView);\n if (!bufferView._dracoBabylonGeometry) {\n bufferView._dracoBabylonGeometry = this._loader.loadBufferViewAsync(`/bufferViews/${bufferView.index}`, bufferView).then((data) => {\n const dracoDecoder = this.dracoDecoder || DracoDecoder.Default;\n const positionAccessor = ArrayItem.TryGet(this._loader.gltf.accessors, primitive.attributes[\"POSITION\"]);\n const babylonBoundingInfo = !this._loader.parent.alwaysComputeBoundingBox && !babylonMesh.skeleton && positionAccessor ? LoadBoundingInfoFromPositionAccessor(positionAccessor) : null;\n return dracoDecoder\n ._decodeMeshToGeometryForGltfAsync(babylonMesh.name, this._loader.babylonScene, data, attributes, normalized, babylonBoundingInfo)\n .catch((error) => {\n throw new Error(`${context}: ${error.message}`);\n });\n });\n }\n return bufferView._dracoBabylonGeometry;\n });\n }\n}\nunregisterGLTFExtension(NAME);\nregisterGLTFExtension(NAME, true, (loader) => new KHR_draco_mesh_compression(loader));\n//# sourceMappingURL=KHR_draco_mesh_compression.js.map"],"names":[],"mappings":"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"}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{aU as e,T as s,R as t,u as a,v as n,ad as o,a5 as r,s as i,ac as c,m as l,an as u,ar as h,aV as m,l as p,aW as d,L as C,aQ as _,aR as N}from"./index-rZVkfTE6.esm.min.js";import{G as g}from"./gltfPathToObjectConverter-Dyt_Y9jE.esm.min.js";var f;!function(e){e[e.Input=0]="Input",e[e.Output=1]="Output"}(f||(f={}));class v{constructor(s,t,a){this._ownerBlock=a,this._connectedPoint=[],this.uniqueId=e(),this.connectedPointIds=[],this.name=s,this._connectionType=t}get connectionType(){return this._connectionType}_isSingularConnection(){return!0}isConnected(){return this._connectedPoint.length>0}connectTo(e){if(this._connectionType===e._connectionType)throw new Error(`Cannot connect two points of type ${this.connectionType}`);if(this._isSingularConnection()&&this._connectedPoint.length>0||e._isSingularConnection()&&e._connectedPoint.length>0)throw new Error("Max number of connections for point reached");this._connectedPoint.push(e),e._connectedPoint.push(this)}serialize(e={}){e.uniqueId=this.uniqueId,e.name=this.name,e._connectionType=this._connectionType,e.connectedPointIds=[],e.className=this.getClassName();for(const s of this._connectedPoint)e.connectedPointIds.push(s.uniqueId)}getClassName(){return"FGConnection"}deserialize(e){this.uniqueId=e.uniqueId,this.name=e.name,this._connectionType=e._connectionType,this.connectedPointIds=e.connectedPointIds}static Parse(e={},t){const a=new(s.Instantiate(e.className))(e.name,e._connectionType,t);return a.deserialize(e),a}}class x{constructor(e){this.value=this._toInt(e)}_toInt(e){return 0|e}add(e){return new x(this.value+e.value)}subtract(e){return new x(this.value-e.value)}multiply(e){return new x(Math.imul(this.value,e.value))}divide(e){return new x(this.value/e.value)}getClassName(){return x.ClassName}equals(e){return this.value===e.value}static Parse(e){return new x(e.value)}}x.ClassName="FlowGraphInteger",t("FlowGraphInteger",x);class b{constructor(e,s){this.typeName=e,this.defaultValue=s}serialize(e){e.typeName=this.typeName,e.defaultValue=this.defaultValue}static Parse(e){return new b(e.typeName,e.defaultValue)}}const y=new b("any",void 0),w=new b("number",0),k=new b("boolean",!1),I=new b("Vector2",a.Zero()),B=new b("Vector3",n.Zero());new b("Vector4",o.Zero());const V=new b("Matrix",r.Identity());new b("Color3",i.Black()),new b("Quaternion",c.Identity());const O=new b("FlowGraphInteger",new x(0));class G extends v{constructor(e,s,t,a){super(e,s,t),this.richType=a}_isSingularConnection(){return 0===this.connectionType}setValue(e,s){s._setConnectionValue(this,e)}connectTo(e){super.connectTo(e)}_getValueOrDefault(e){return e._hasConnectionValue(this)?e._getConnectionValue(this):this.richType.defaultValue}getValue(e){return 1===this.connectionType?(e._notifyExecuteNode(this._ownerBlock),this._ownerBlock._updateOutputs(e),this._getValueOrDefault(e)):this.isConnected()?this._connectedPoint[0].getValue(e):this._getValueOrDefault(e)}getClassName(){return"FGDataConnection"}serialize(e={}){super.serialize(e),e.richType={},this.richType.serialize(e.richType)}static Parse(e,s){const t=v.Parse(e,s);return t.richType=b.Parse(e.richType),t}}function F(e){return"Mesh"===e||"AbstractMesh"===e||"GroundMesh"===e||"InstanceMesh"===e||"LinesMesh"===e||"GoldbergMesh"===e||"GreasedLineMesh"===e||"TrailMesh"===e}function E(e){return"Vector2"===e||"Vector3"===e||"Vector4"===e||"Quaternion"===e||"Color3"===e||"Color4"===e}function T(e,s,t){const a=s?.getClassName?.()??"";F(a)?t[e]={name:s.name,className:a}:E(a)?t[e]={value:s.asArray(),className:a}:t[e]=s}function P(e,s,t){const u=s[e];let h;const m=u?.className;return h=F(m)?t.getMeshByName(u.name):E(m)?function(e,s){if("Vector2"===e)return a.FromArray(s);if("Vector3"===e)return n.FromArray(s);if("Vector4"===e)return o.FromArray(s);if("Quaternion"===e)return c.FromArray(s);if("Color3"===e)return new i(s[0],s[1],s[2]);if("Color4"===e)return new l(s[0],s[1],s[2],s[3]);throw new Error(`Unknown vector class name ${e}`)}(m,u.value):"Matrix"===m?r.FromArray(u.value):m===x.ClassName?x.Parse(u):u&&void 0!==u.value?u.value:u,h}t("FGDataConnection",G);class M{constructor(s){this.config=s,this.uniqueId=e(),this.name=this.config?.name??this.getClassName(),this.dataInputs=[],this.dataOutputs=[]}_updateOutputs(e){}registerDataInput(e,s){const t=new G(e,0,this,s);return this.dataInputs.push(t),t}registerDataOutput(e,s){const t=new G(e,1,this,s);return this.dataOutputs.push(t),t}getDataInput(e){return this.dataInputs.find((s=>s.name===e))}getDataOutput(e){return this.dataOutputs.find((s=>s.name===e))}serialize(e={},s=T){e.uniqueId=this.uniqueId,e.config={},this.config&&(e.config.name=this.config.name),e.dataInputs=[],e.dataOutputs=[],e.className=this.getClassName();for(const s of this.dataInputs){const t={};s.serialize(t),e.dataInputs.push(t)}for(const s of this.dataOutputs){const t={};s.serialize(t),e.dataOutputs.push(t)}}getClassName(){return"FGBlock"}static Parse(e,t){const a=s.Instantiate(e.className),n={},o=t.valueParseFunction??P;if(e.config)for(const s in e.config)n[s]=o(s,e.config,t.scene);var r;("FGSetPropertyBlock"===(r=e.className)||"FGGetPropertyBlock"===r||"FGPlayAnimationBlock"===r||"FGMeshPickEventBlock"===r)&&(n.pathConverter=t.pathConverter);const i=new a(n);i.uniqueId=e.uniqueId;for(let s=0;s<e.dataInputs.length;s++){const t=i.getDataInput(e.dataInputs[s].name);if(!t)throw new Error("Could not find data input with name "+e.dataInputs[s].name+" in block "+e.className);t.deserialize(e.dataInputs[s])}for(let s=0;s<e.dataOutputs.length;s++){const t=i.getDataOutput(e.dataOutputs[s].name);if(!t)throw new Error("Could not find data output with name "+e.dataOutputs[s].name+" in block "+e.className);t.deserialize(e.dataOutputs[s])}return i.metadata=e.metadata,i.deserialize&&i.deserialize(e),i}}class S extends v{_isSingularConnection(){return 1===this.connectionType}_activateSignal(e){0===this.connectionType?(e._notifyExecuteNode(this._ownerBlock),this._ownerBlock._execute(e,this),e._increaseExecutionId()):this._connectedPoint[0]?._activateSignal(e)}}t("FlowGraphSignalConnection",S);class D extends M{constructor(e){super(e),this.signalInputs=[],this.signalOutputs=[],this.in=this._registerSignalInput("in")}_registerSignalInput(e){const s=new S(e,0,this);return this.signalInputs.push(s),s}_registerSignalOutput(e){const s=new S(e,1,this);return this.signalOutputs.push(s),s}getSignalInput(e){return this.signalInputs.find((s=>s.name===e))}getSignalOutput(e){return this.signalOutputs.find((s=>s.name===e))}serialize(e={}){super.serialize(e),e.signalInputs=[],e.signalOutputs=[];for(const s of this.signalInputs){const t={};s.serialize(t),e.signalInputs.push(t)}for(const s of this.signalOutputs){const t={};s.serialize(t),e.signalOutputs.push(t)}}deserialize(e){for(let s=0;s<e.signalInputs.length;s++){const t=this.getSignalInput(e.signalInputs[s].name);if(!t)throw new Error("Could not find signal input with name "+e.signalInputs[s].name+" in block "+e.className);t.deserialize(e.signalInputs[s])}for(let s=0;s<e.signalOutputs.length;s++){const t=this.getSignalOutput(e.signalOutputs[s].name);if(!t)throw new Error("Could not find signal output with name "+e.signalOutputs[s].name+" in block "+e.className);t.deserialize(e.signalOutputs[s])}}getClassName(){return"FGExecutionBlock"}}class q extends D{constructor(e){super(e),this.out=this._registerSignalOutput("out"),this.done=this._registerSignalOutput("done")}_startPendingTasks(e){this._preparePendingTasks(e),e._addPendingBlock(this)}}class z extends q{_execute(e){e._notifyExecuteNode(this),this.out._activateSignal(e)}}class R{constructor(s){this.uniqueId=e(),this._userVariables={},this._executionVariables={},this._connectionValues={},this._pendingBlocks=[],this._executionId=0,this.onNodeExecutedObservable=new m,this._configuration=s}hasVariable(e){return e in this._userVariables}setVariable(e,s){this._userVariables[e]=s}getVariable(e){return this._userVariables[e]}get userVariables(){return this._userVariables}_getUniqueIdPrefixedName(e,s){return`${e.uniqueId}_${s}`}_setExecutionVariable(e,s,t){this._executionVariables[this._getUniqueIdPrefixedName(e,s)]=t}_getExecutionVariable(e,s,t){return this._hasExecutionVariable(e,s)?this._executionVariables[this._getUniqueIdPrefixedName(e,s)]:t}_deleteExecutionVariable(e,s){delete this._executionVariables[this._getUniqueIdPrefixedName(e,s)]}_hasExecutionVariable(e,s){return this._getUniqueIdPrefixedName(e,s)in this._executionVariables}_hasConnectionValue(e){return e.uniqueId in this._connectionValues}_setConnectionValue(e,s){this._connectionValues[e.uniqueId]=s}_getConnectionValue(e){return this._connectionValues[e.uniqueId]}get configuration(){return this._configuration}_addPendingBlock(e){this._pendingBlocks.push(e)}_removePendingBlock(e){const s=this._pendingBlocks.indexOf(e);-1!==s&&this._pendingBlocks.splice(s,1)}_clearPendingBlocks(){for(const e of this._pendingBlocks)e._cancelPendingTasks(this);this._pendingBlocks.length=0}_notifyExecuteNode(e){this.onNodeExecutedObservable.notifyObservers(e)}_increaseExecutionId(){this._executionId++}get executionId(){return this._executionId}serialize(e={},s=T){e.uniqueId=this.uniqueId,e._userVariables={};for(const t in this._userVariables)s(t,this._userVariables[t],e._userVariables);e._connectionValues={};for(const t in this._connectionValues)s(t,this._connectionValues[t],e._connectionValues)}getClassName(){return"FGContext"}static Parse(e,s){const t=s.graph.createContext(),a=s.valueParseFunction??P;t.uniqueId=e.uniqueId;for(const s in e._userVariables){const n=a(s,e._userVariables,t._configuration.scene);t._userVariables[s]=n}for(const s in e._connectionValues){const n=a(s,e._connectionValues,t._configuration.scene);t._connectionValues[s]=n}return t}}function A(e,s){return!(!e.parent||e.parent!==s&&!A(e.parent,s))}u([h()],R.prototype,"uniqueId",void 0);class $ extends z{constructor(e){super(e),this.config=e}_getReferencedMesh(){const e=this.config.pathConverter.convert(this.config.path),s=e.info.getObject(e.object);if(!(s&&s instanceof p))throw new Error("Mesh pick event block requires a valid mesh");return s}_preparePendingTasks(e){let s=e._getExecutionVariable(this,"meshPickObserver");if(!s){const t=this._getReferencedMesh();e._setExecutionVariable(this,"mesh",t),s=t.getScene().onPointerObservable.add((s=>{s.type===d.POINTERPICK&&s.pickInfo?.pickedMesh&&(s.pickInfo?.pickedMesh===t||A(s.pickInfo?.pickedMesh,t))&&this._execute(e)}));const a=t.onDisposeObservable.add((()=>this._onDispose));e._setExecutionVariable(this,"meshPickObserver",s),e._setExecutionVariable(this,"meshDisposeObserver",a)}}_onDispose(e){this._cancelPendingTasks(e),e._removePendingBlock(this)}_cancelPendingTasks(e){const s=e._getExecutionVariable(this,"mesh"),t=e._getExecutionVariable(this,"meshPickObserver"),a=e._getExecutionVariable(this,"meshDisposeObserver");s.getScene().onPointerObservable.remove(t),s.onDisposeObservable.remove(a),e._deleteExecutionVariable(this,"mesh"),e._deleteExecutionVariable(this,"meshPickObserver"),e._deleteExecutionVariable(this,"meshDisposeObserver")}getClassName(){return $.ClassName}serialize(e){super.serialize(e),e.config.path=this.config.path}}var L,U;$.ClassName="FGMeshPickEventBlock",t($.ClassName,$),function(e){e[e.Stopped=0]="Stopped",e[e.Started=1]="Started"}(L||(L={}));class K{constructor(e){this._eventBlocks=[],this._executionContexts=[],this.state=0,this._scene=e.scene,this._coordinator=e.coordinator,this._sceneDisposeObserver=this._scene.onDisposeObservable.add((()=>this.dispose()))}createContext(){const e=new R({scene:this._scene,coordinator:this._coordinator});return this._executionContexts.push(e),e}getContext(e){return this._executionContexts[e]}addEventBlock(e){this._eventBlocks.push(e)}start(){if(1!==this.state){this.state=1,0===this._executionContexts.length&&this.createContext();for(const e of this._executionContexts){const s=this._getContextualOrder();for(const t of s)t._startPendingTasks(e)}}}_getContextualOrder(){const e=[];for(const s of this._eventBlocks)if(s.getClassName()===$.ClassName){const t=s._getReferencedMesh();let a=0;for(;a<e.length;a++){const s=e[a]._getReferencedMesh();if(t&&s&&A(t,s))break}e.splice(a,0,s)}else e.push(s);return e}dispose(){if(0!==this.state){this.state=0;for(const e of this._executionContexts)e._clearPendingBlocks();this._executionContexts.length=0,this._eventBlocks.length=0,this._scene.onDisposeObservable.remove(this._sceneDisposeObserver),this._sceneDisposeObserver=null}}visitAllBlocks(e){const s=[],t=new Set;for(const e of this._eventBlocks)s.push(e),t.add(e.uniqueId);for(;s.length>0;){const a=s.pop();e(a);for(const e of a.dataInputs)for(const a of e._connectedPoint)t.has(a._ownerBlock.uniqueId)||(s.push(a._ownerBlock),t.add(a._ownerBlock.uniqueId));if(a instanceof D)for(const e of a.signalOutputs)for(const a of e._connectedPoint)t.has(a._ownerBlock.uniqueId)||(s.push(a._ownerBlock),t.add(a._ownerBlock.uniqueId))}}serialize(e={},s){e.allBlocks=[],this.visitAllBlocks((s=>{const t={};s.serialize(t),e.allBlocks.push(t)})),e.executionContexts=[];for(const t of this._executionContexts){const a={};t.serialize(a,s),e.executionContexts.push(a)}}static GetDataOutConnectionByUniqueId(e,s){for(const t of e)for(const e of t.dataOutputs)if(e.uniqueId===s)return e;throw new Error("Could not find data out connection with unique id "+s)}static GetSignalInConnectionByUniqueId(e,s){for(const t of e)if(t instanceof D)for(const e of t.signalInputs)if(e.uniqueId===s)return e;throw new Error("Could not find signal in connection with unique id "+s)}static Parse(e,s){const t=s.coordinator.createGraph(),a=[],n=s.valueParseFunction??P;for(const o of e.allBlocks){const e=M.Parse(o,{scene:s.coordinator.config.scene,pathConverter:s.pathConverter,valueParseFunction:n});a.push(e),e instanceof z&&t.addEventBlock(e)}for(const e of a){for(const s of e.dataInputs)for(const e of s.connectedPointIds){const t=K.GetDataOutConnectionByUniqueId(a,e);s.connectTo(t)}if(e instanceof D)for(const s of e.signalOutputs)for(const e of s.connectedPointIds){const t=K.GetSignalInConnectionByUniqueId(a,e);s.connectTo(t)}}for(const s of e.executionContexts)R.Parse(s,{graph:t,valueParseFunction:n});return t}}class H{constructor(e){this.config=e,this._flowGraphs=[],this._customEventsMap=new Map,this.config.scene.onDisposeObservable.add((()=>{this.dispose()}));(H.SceneCoordinators.get(this.config.scene)??[]).push(this)}createGraph(){const e=new K({scene:this.config.scene,coordinator:this});return this._flowGraphs.push(e),e}removeGraph(e){const s=this._flowGraphs.indexOf(e);-1!==s&&(e.dispose(),this._flowGraphs.splice(s,1))}start(){this._flowGraphs.forEach((e=>e.start()))}dispose(){this._flowGraphs.forEach((e=>e.dispose())),this._flowGraphs.length=0;const e=H.SceneCoordinators.get(this.config.scene)??[],s=e.indexOf(this);-1!==s&&e.splice(s,1)}serialize(e,s){e._flowGraphs=[],this._flowGraphs.forEach((t=>{const a={};t.serialize(a,s),e._flowGraphs.push(a)}))}static Parse(e,s){const t=s.valueParseFunction??P,a=new H({scene:s.scene});return e._flowGraphs?.forEach((e=>{K.Parse(e,{coordinator:a,valueParseFunction:t,pathConverter:s.pathConverter})})),a}get flowGraphs(){return this._flowGraphs}getCustomEventObservable(e){let s=this._customEventsMap.get(e);return s||(s=new m,this._customEventsMap.set(e,s)),s}notifyCustomEvent(e,s){const t=this._customEventsMap.get(e);t&&t.notifyObservers(s)}}H.SceneCoordinators=new Map;class j extends z{_preparePendingTasks(e){if(!e._getExecutionVariable(this,"sceneReadyObserver")){const s=e.configuration.scene.onReadyObservable.add((()=>{this._execute(e)}));e._setExecutionVariable(this,"sceneReadyObserver",s)}}_cancelPendingTasks(e){const s=e._getExecutionVariable(this,"sceneReadyObserver");e.configuration.scene.onReadyObservable.remove(s),e._deleteExecutionVariable(this,"sceneReadyObserver")}getClassName(){return j.ClassName}}j.ClassName="FGSceneReadyEventBlock",t("FGSceneReadyEventBlock",j);class Z extends z{_preparePendingTasks(e){if(!e._getExecutionVariable(this,"sceneBeforeRender")){const s=e.configuration.scene.onBeforeRenderObservable.add((()=>{this._execute(e)}));e._setExecutionVariable(this,"sceneBeforeRender",s)}}_cancelPendingTasks(e){const s=e._getExecutionVariable(this,"sceneBeforeRender");e.configuration.scene.onBeforeRenderObservable.remove(s),e._deleteExecutionVariable(this,"sceneBeforeRender")}getClassName(){return Z.ClassName}}Z.ClassName="FGSceneTickEventBlock",t(Z.ClassName,Z);class Q extends D{constructor(e){super(e),this.out=this._registerSignalOutput("out")}}class W extends Q{constructor(e){super(e),this.message=this.registerDataInput("message",y)}_execute(e){const s=this.message.getValue(e);C.Log(s),this.out._activateSignal(e)}getClassName(){return W.ClassName}}W.ClassName="FGConsoleLogBlock",t(W.ClassName,W),function(e){e[e.INIT=0]="INIT",e[e.STARTED=1]="STARTED",e[e.ENDED=2]="ENDED"}(U||(U={}));class X{constructor(e){this.onEachCountObservable=new m,this.onTimerAbortedObservable=new m,this.onTimerEndedObservable=new m,this.onStateChangedObservable=new m,this._observer=null,this._breakOnNextTick=!1,this._tick=e=>{const s=Date.now();this._timer=s-this._startTime;const t={startTime:this._startTime,currentTime:s,deltaTime:this._timer,completeRate:this._timer/this._timeToEnd,payload:e},a=this._breakOnNextTick||this._breakCondition(t);a||this._timer>=this._timeToEnd?this._stop(t,a):this.onEachCountObservable.notifyObservers(t)},this._setState(0),this._contextObservable=e.contextObservable,this._observableParameters=e.observableParameters??{},this._breakCondition=e.breakCondition??(()=>!1),this._timeToEnd=e.timeout,e.onEnded&&this.onTimerEndedObservable.add(e.onEnded),e.onTick&&this.onEachCountObservable.add(e.onTick),e.onAborted&&this.onTimerAbortedObservable.add(e.onAborted)}set breakCondition(e){this._breakCondition=e}clearObservables(){this.onEachCountObservable.clear(),this.onTimerAbortedObservable.clear(),this.onTimerEndedObservable.clear(),this.onStateChangedObservable.clear()}start(e=this._timeToEnd){if(1===this._state)throw new Error("Timer already started. Please stop it before starting again");this._timeToEnd=e,this._startTime=Date.now(),this._timer=0,this._observer=this._contextObservable.add(this._tick,this._observableParameters.mask,this._observableParameters.insertFirst,this._observableParameters.scope),this._setState(1)}stop(){1===this._state&&(this._breakOnNextTick=!0)}dispose(){this._observer&&this._contextObservable.remove(this._observer),this.clearObservables()}_setState(e){this._state=e,this.onStateChangedObservable.notifyObservers(this._state)}_stop(e,s=!1){this._contextObservable.remove(this._observer),this._setState(2),s?this.onTimerAbortedObservable.notifyObservers(e):this.onTimerEndedObservable.notifyObservers(e)}}class Y extends q{constructor(e){super(e),this.timeout=this.registerDataInput("timeout",w)}_preparePendingTasks(e){const s=this.timeout.getValue(e);if(void 0!==s&&s>=0){const t=e._getExecutionVariable(this,"runningTimers")||[],a=e.configuration.scene,n=new X({timeout:s,contextObservable:a.onBeforeRenderObservable,onEnded:()=>this._onEnded(n,e)});n.start(),t.push(n),e._setExecutionVariable(this,"runningTimers",t)}}_execute(e){this._startPendingTasks(e),this.out._activateSignal(e)}_onEnded(e,t){const a=t._getExecutionVariable(this,"runningTimers")||[],n=a.indexOf(e);-1!==n?a.splice(n,1):s.Warn("FlowGraphTimerBlock: Timer ended but was not found in the running timers list"),t._removePendingBlock(this),this.done._activateSignal(t)}_cancelPendingTasks(e){const s=e._getExecutionVariable(this,"runningTimers")||[];for(const e of s)e.dispose();e._deleteExecutionVariable(this,"runningTimers")}getClassName(){return Y.ClassName}}Y.ClassName="FGTimerBlock",t("FGTimerBlock",Y);class J extends Q{constructor(e){super(e),this.config=e;for(let e=0;e<this.config.eventData.length;e++){const s=this.config.eventData[e];this.registerDataInput(s,y)}}_execute(e){const s=this.config.eventId,t=this.dataInputs.map((s=>s.getValue(e)));e.configuration.coordinator.notifyCustomEvent(s,t),this.out._activateSignal(e)}getClassName(){return J.ClassName}}J.ClassName="FGSendCustomEventBlock",t("FGSendCustomEventBlock",J);class ee extends z{constructor(e){super(e),this.config=e;for(let e=0;e<this.config.eventData.length;e++){const s=this.config.eventData[e];this.registerDataOutput(s,y)}}_preparePendingTasks(e){const s=e.configuration.coordinator.getCustomEventObservable(this.config.eventId);this._eventObserver=s.add((s=>{for(let t=0;t<s.length;t++)this.dataOutputs[t].setValue(s[t],e);this._execute(e)}))}_cancelPendingTasks(e){const t=e.configuration.coordinator.getCustomEventObservable(this.config.eventId);t?t.remove(this._eventObserver):s.Warn(`FlowGraphReceiveCustomEventBlock: Missing observable for event ${this.config.eventId}`)}getClassName(){return ee.ClassName}serialize(e){super.serialize(e),e.eventId=this.config.eventId,e.eventData=this.config.eventData}}ee.ClassName="FGReceiveCustomEventBlock",t(ee.ClassName,ee);class se extends D{constructor(e){super(e),this.config=e,this.outFlows=[];for(let e=0;e<this.config.numberOutputFlows;e++)this.outFlows.push(this._registerSignalOutput(`${e}`))}_execute(e){for(let s=0;s<this.config.numberOutputFlows;s++)this.outFlows[s]._activateSignal(e)}getClassName(){return se.ClassName}}se.ClassName="FGSequenceBlock",t(se.ClassName,se);const te=new RegExp(/\{(\w+)\}/g);class ae{constructor(e,s){this.path=e,this.ownerBlock=s,this.templatedInputs=[];let t=te.exec(e);for(;t;){const[,a]=t;this.templatedInputs.push(s.registerDataInput(a,O)),t=te.exec(e)}}getAccessor(e,s){let t=this.path;for(const e of this.templatedInputs){const a=e.getValue(s).value;t=t.replace(`{${e.name}}`,a.toString())}return e.convert(t)}}class ne extends M{constructor(e){super(e),this.config=e,this.value=this.registerDataOutput("value",y),this.templateComponent=new ae(e.path,this)}_updateOutputs(e){const s=this.templateComponent.getAccessor(this.config.pathConverter,e),t=s.info.get(s.object);this.value.setValue(t,e)}getClassName(){return ne.ClassName}serialize(e={}){super.serialize(e),e.config.path=this.config.path}}ne.ClassName="FGGetPropertyBlock",t(ne.ClassName,ne);class oe extends Q{constructor(e){super(e),this.config=e,this.a=this.registerDataInput("a",y),this.templateComponent=new ae(e.path,this)}_execute(e){const s=this.a.getValue(e),t=this.templateComponent.getAccessor(this.config.pathConverter,e);t.info.set(s,t.object),this.out._activateSignal(e)}serialize(e={}){super.serialize(e),e.config.path=this.config.path}getClassName(){return oe.ClassName}}oe.ClassName="FGSetPropertyBlock",t("FGSetPropertyBlock",oe);const re="cachedOperationValue",ie="cachedExecutionId";class ce extends M{constructor(e,s){super(s),this.value=this.registerDataOutput("value",e)}_updateOutputs(e){const s=e._getExecutionVariable(this,ie),t=e._getExecutionVariable(this,re);if(void 0!==t&&s===e.executionId)this.value.setValue(t,e);else{const s=this._doOperation(e);e._setExecutionVariable(this,re,s),e._setExecutionVariable(this,ie,e.executionId),this.value.setValue(s,e)}}}class le extends ce{constructor(e,s,t,a,n,o){super(t,o),this._operation=a,this._className=n,this.a=this.registerDataInput("a",e),this.b=this.registerDataInput("b",s)}_doOperation(e){return this._operation(this.a.getValue(e),this.b.getValue(e))}getClassName(){return this._className}}class ue extends ce{constructor(e,s,t,a){super(e,a),this._operation=s,this._className=t}_doOperation(e){return this._operation()}getClassName(){return this._className}}class he extends ce{constructor(e,s,t,a,n){super(s,n),this._operation=t,this._className=a,this.a=this.registerDataInput("a",e)}_doOperation(e){return this._operation(this.a.getValue(e))}getClassName(){return this._className}}class me extends ce{constructor(e,s,t,a,n,o,r){super(a,r),this._operation=n,this._className=o,this.a=this.registerDataInput("a",e),this.b=this.registerDataInput("b",s),this.c=this.registerDataInput("c",t)}_doOperation(e){return this._operation(this.a.getValue(e),this.b.getValue(e),this.c.getValue(e))}getClassName(){return this._className}}function pe(e){return e.getClassName?e.getClassName():""}function de(e,s){return"Vector2"===e&&"Vector2"===s||"Vector3"===e&&"Vector3"===s||"Vector4"===e&&"Vector4"===s}function Ce(e,s){return"Matrix"===e&&"Matrix"===s}function _e(e,s){return"FlowGraphInteger"===e&&"FlowGraphInteger"===s}class Ne extends le{constructor(e){super(y,y,y,((e,s)=>this._polymorphicAdd(e,s)),Ne.ClassName,e)}_polymorphicAdd(e,s){const t=pe(e),a=pe(s);return de(t,a)||Ce(t,a)||_e(t,a)?e.add(s):e+s}}Ne.ClassName="FGAddBlock",t(Ne.ClassName,Ne);class ge extends le{constructor(e){super(y,y,y,((e,s)=>this._polymorphicAdd(e,s)),ge.ClassName,e)}_polymorphicAdd(e,s){const t=pe(e),a=pe(s);return de(t,a)||_e(t,a)?e.subtract(s):Ce(t,a)?e.add(s.scale(-1)):e-s}}ge.ClassName="FGSubBlock",t(ge.ClassName,ge);class fe extends le{constructor(e){super(y,y,y,((e,s)=>this._polymorphicMultiply(e,s)),fe.ClassName,e)}_polymorphicMultiply(e,s){const t=pe(e),a=pe(s);return de(t,a)||_e(t,a)?e.multiply(s):Ce(t,a)?r.FromValues(e.m[0]*s.m[0],e.m[4]*s.m[4],e.m[8]*s.m[8],e.m[12]*s.m[12],e.m[1]*s.m[1],e.m[5]*s.m[5],e.m[9]*s.m[9],e.m[13]*s.m[13],e.m[2]*s.m[2],e.m[6]*s.m[6],e.m[10]*s.m[10],e.m[14]*s.m[14],e.m[3]*s.m[3],e.m[7]*s.m[7],e.m[11]*s.m[11],e.m[15]*s.m[15]):e*s}}fe.ClassName="FGMultiplyBlock",t(fe.ClassName,fe);class ve extends le{constructor(e){super(y,y,y,((e,s)=>this._polymorphicDivide(e,s)),ve.ClassName,e)}_polymorphicDivide(e,s){const t=pe(e),a=pe(s);return de(t,a)||_e(t,a)?e.divide(s):Ce(t,a)?r.FromValues(e.m[0]/s.m[0],e.m[4]/s.m[4],e.m[8]/s.m[8],e.m[12]/s.m[12],e.m[1]/s.m[1],e.m[5]/s.m[5],e.m[9]/s.m[9],e.m[13]/s.m[13],e.m[2]/s.m[2],e.m[6]/s.m[6],e.m[10]/s.m[10],e.m[14]/s.m[14],e.m[3]/s.m[3],e.m[7]/s.m[7],e.m[11]/s.m[11],e.m[15]/s.m[15]):e/s}}ve.ClassName="FGDivideBlock",t(ve.ClassName,ve);class xe extends ue{constructor(e){super(w,(()=>Math.random()),xe.ClassName,e)}}xe.ClassName="FGRandomBlock",t(xe.ClassName,xe);class be extends le{constructor(e){super(y,y,w,((e,s)=>this._polymorphicDot(e,s)),be.ClassName,e)}_polymorphicDot(e,s){switch(pe(e)){case"Vector2":return a.Dot(e,s);case"Vector3":return n.Dot(e,s);case"Vector4":return o.Dot(e,s);default:throw new Error(`Cannot get dot product of ${e} and ${s}`)}}}be.ClassName="FGDotBlock",t(be.ClassName,be);class ye extends ue{constructor(e){super(w,(()=>Math.E),ye.ClassName,e)}}ye.ClassName="FGEBlock",t(ye.ClassName,ye);class we extends ue{constructor(e){super(w,(()=>Math.PI),we.ClassName,e)}}we.ClassName="FGPIBlock",t(we.ClassName,we);class ke extends ue{constructor(e){super(w,(()=>Number.POSITIVE_INFINITY),ke.ClassName,e)}}ke.ClassName="FGInfBlock",t(ke.ClassName,ke);class Ie extends ue{constructor(e){super(w,(()=>Number.NaN),Ie.ClassName,e)}}function Be(e,s){switch(pe(e)){case"FlowGraphInteger":return new x(s(e.value));case"Vector2":return new a(s(e.x),s(e.y));case"Vector3":return new n(s(e.x),s(e.y),s(e.z));case"Vector4":return new o(s(e.x),s(e.y),s(e.z),s(e.w));case"Matrix":return r.FromValues(s(e.m[0]),s(e.m[4]),s(e.m[8]),s(e.m[12]),s(e.m[1]),s(e.m[5]),s(e.m[9]),s(e.m[13]),s(e.m[2]),s(e.m[6]),s(e.m[10]),s(e.m[14]),s(e.m[3]),s(e.m[7]),s(e.m[11]),s(e.m[15]));default:return s(e)}}Ie.ClassName="FGNaNBlock",t(Ie.ClassName,Ie);class Ve extends he{constructor(e){super(y,y,(e=>this._polymorphicAbs(e)),Ve.ClassName,e)}_polymorphicAbs(e){return Be(e,Math.abs)}}Ve.ClassName="FGAbsBlock",t(Ve.ClassName,Ve);class Oe extends he{constructor(e){super(y,y,(e=>this._polymorphicSign(e)),Oe.ClassName,e)}_polymorphicSign(e){return Be(e,Math.sign)}}Oe.ClassName="FGSignBlock",t(Oe.ClassName,Oe);class Ge extends he{constructor(e){super(y,y,(e=>this._polymorphicTrunc(e)),Ge.ClassName,e)}_polymorphicTrunc(e){return Be(e,Math.trunc)}}Ge.ClassName="FGTruncBlock",t(Ge.ClassName,Ge);class Fe extends he{constructor(e){super(y,y,(e=>this._polymorphicFloor(e)),Fe.ClassName,e)}_polymorphicFloor(e){return Be(e,Math.floor)}}Fe.ClassName="FGFloorBlock",t(Fe.ClassName,Fe);class Ee extends he{constructor(e){super(y,y,(e=>this._polymorphicCeiling(e)),Ee.ClassName,e)}_polymorphicCeiling(e){return Be(e,Math.ceil)}}Ee.ClassName="FGCeilBlock",t(Ee.ClassName,Ee);class Te extends he{constructor(e){super(y,y,(e=>this._polymorphicFract(e)),Te.ClassName,e)}_polymorphicFract(e){return Be(e,(e=>e-Math.floor(e)))}}Te.ClassName="FGFractBlock",t(Te.ClassName,Te);class Pe extends he{constructor(e){super(y,y,(e=>this._polymorphicNeg(e)),Pe.ClassName,e)}_polymorphicNeg(e){return Be(e,(e=>-e))}}function Me(e,s,t){switch(pe(e)){case"FlowGraphInteger":return new x(t(e.value,s.value));case"Vector2":return new a(t(e.x,s.x),t(e.y,s.y));case"Vector3":return new n(t(e.x,s.x),t(e.y,s.y),t(e.z,s.z));case"Vector4":return new o(t(e.x,s.x),t(e.y,s.y),t(e.z,s.z),t(e.w,s.w));case"Matrix":return r.FromValues(t(e.m[0],s.m[0]),t(e.m[4],s.m[4]),t(e.m[8],s.m[8]),t(e.m[12],s.m[12]),t(e.m[1],s.m[1]),t(e.m[5],s.m[5]),t(e.m[9],s.m[9]),t(e.m[13],s.m[13]),t(e.m[2],s.m[2]),t(e.m[6],s.m[6]),t(e.m[10],s.m[10]),t(e.m[14],s.m[14]),t(e.m[3],s.m[3]),t(e.m[7],s.m[7]),t(e.m[11],s.m[11]),t(e.m[15],s.m[15]));default:return t(e,s)}}Pe.ClassName="FGNegBlock",t(Pe.ClassName,Pe);class Se extends le{constructor(e){super(y,y,y,((e,s)=>this._polymorphicRemainder(e,s)),Se.ClassName,e)}_polymorphicRemainder(e,s){return Me(e,s,((e,s)=>e%s))}}Se.ClassName="FGRemainderBlock",t(Se.ClassName,Se);class De extends le{constructor(e){super(y,y,y,((e,s)=>this._polymorphicMin(e,s)),De.ClassName,e)}_polymorphicMin(e,s){return Me(e,s,Math.min)}}De.ClassName="FGMinBlock",t(De.ClassName,De);class qe extends le{constructor(e){super(y,y,y,((e,s)=>this._polymorphicMax(e,s)),qe.ClassName,e)}_polymorphicMax(e,s){return Me(e,s,Math.max)}}function ze(e,s,t){return Math.min(Math.max(e,Math.min(s,t)),Math.max(s,t))}function Re(e,s,t,i){switch(pe(e)){case"FlowGraphInteger":return new x(i(e.value,s.value,t.value));case"Vector2":return new a(i(e.x,s.x,t.x),i(e.y,s.y,t.y));case"Vector3":return new n(i(e.x,s.x,t.x),i(e.y,s.y,t.y),i(e.z,s.z,t.z));case"Vector4":return new o(i(e.x,s.x,t.x),i(e.y,s.y,t.y),i(e.z,s.z,t.z),i(e.w,s.w,t.w));case"Matrix":return r.FromValues(i(e.m[0],s.m[0],t.m[0]),i(e.m[4],s.m[4],t.m[4]),i(e.m[8],s.m[8],t.m[8]),i(e.m[12],s.m[12],t.m[12]),i(e.m[1],s.m[1],t.m[1]),i(e.m[5],s.m[5],t.m[5]),i(e.m[9],s.m[9],t.m[9]),i(e.m[13],s.m[13],t.m[13]),i(e.m[2],s.m[2],t.m[2]),i(e.m[6],s.m[6],t.m[6]),i(e.m[10],s.m[10],t.m[10]),i(e.m[14],s.m[14],t.m[14]),i(e.m[3],s.m[3],t.m[3]),i(e.m[7],s.m[7],t.m[7]),i(e.m[11],s.m[11],t.m[11]),i(e.m[15],s.m[15],t.m[15]));default:return i(e,s,t)}}qe.ClassName="FGMaxBlock",t(qe.ClassName,qe);class Ae extends me{constructor(e){super(y,y,y,y,((e,s,t)=>this._polymorphicClamp(e,s,t)),Ae.ClassName,e)}_polymorphicClamp(e,s,t){return Re(e,s,t,ze)}}function $e(e){return Math.min(Math.max(e,0),1)}Ae.ClassName="FGClampBlock",t(Ae.ClassName,Ae);class Le extends he{constructor(e){super(y,y,(e=>this._polymorphicSaturate(e)),Le.ClassName,e)}_polymorphicSaturate(e){return Be(e,$e)}}Le.ClassName="FGSaturateBlock",t(Le.ClassName,Le);class Ue extends me{constructor(e){super(y,y,y,y,((e,s,t)=>this._polymorphicInterpolate(e,s,t)),Ue.ClassName,e)}_interpolate(e,s,t){return(1-t)*e+t*s}_polymorphicInterpolate(e,s,t){return Re(e,s,t,this._interpolate)}}Ue.ClassName="FGInterpolateBlock",t(Ue.ClassName,Ue);class Ke extends le{constructor(e){super(y,y,k,((e,s)=>this._polymorphicEq(e,s)),Ke.ClassName,e)}_polymorphicEq(e,s){const t=pe(e),a=pe(s);return de(t,a)||Ce(t,a)||_e(t,a)?e.equals(s):e===s}}function He(e,s,t){const a=pe(e);if(a===pe(s)){if(""===a)return t(e,s);if("FlowGraphInteger"===a)return t(e.value,s.value);throw new Error(`Cannot compare ${e} and ${s}`)}throw new Error(`${e} and ${s} are of different types.`)}Ke.ClassName="FGEqBlock",t(Ke.ClassName,Ke);class je extends le{constructor(e){super(y,y,k,((e,s)=>this._polymorphicLessThan(e,s)),je.ClassName,e)}_polymorphicLessThan(e,s){return He(e,s,((e,s)=>e<s))}}je.ClassName="FGLessThanBlock",t(je.ClassName,je);class Ze extends le{constructor(e){super(y,y,k,((e,s)=>this._polymorphicLessThanOrEqual(e,s)),Ze.ClassName,e)}_polymorphicLessThanOrEqual(e,s){return He(e,s,((e,s)=>e<=s))}}Ze.ClassName="FGLessThanOrEqualBlock";class Qe extends le{constructor(e){super(y,y,k,((e,s)=>this._polymorphicGreaterThan(e,s)),Qe.ClassName,e)}_polymorphicGreaterThan(e,s){return He(e,s,((e,s)=>e>s))}}Qe.ClassName="FGGreaterThanBlock",t(Qe.ClassName,Qe);class We extends le{constructor(e){super(y,y,k,((e,s)=>this._polymorphicGreaterThanOrEqual(e,s)),We.ClassName,e)}_polymorphicGreaterThanOrEqual(e,s){return He(e,s,((e,s)=>e>=s))}}We.ClassName="FGGreaterThanOrEqualBlock",t(We.ClassName,We);class Xe extends he{constructor(e){super(y,k,(e=>this._polymorphicIsNan(e)),Xe.ClassName,e)}_polymorphicIsNan(e){const s=pe(e);if(""===s)return isNaN(e);if("FlowGraphInteger"===s)return isNaN(e.value);throw new Error(`Cannot get NaN of ${e}`)}}Xe.ClassName="FGIsNanBlock",t(Xe.ClassName,Xe);class Ye extends he{constructor(e){super(y,k,(e=>this._polymorphicIsInf(e)),Ye.ClassName,e)}_polymorphicIsInf(e){const s=pe(e);if(""===s)return!isFinite(e);if("FlowGraphInteger"===s)return!isFinite(e.value);throw new Error(`Cannot get isInf of ${e}`)}}Ye.ClassName="FGIsInfBlock";class Je extends he{constructor(e){super(y,y,(e=>this._polymorphicDegToRad(e)),Je.ClassName,e)}_degToRad(e){return e*Math.PI/180}_polymorphicDegToRad(e){return Be(e,this._degToRad)}}Je.ClassName="FGDegToRadBlock",t(Je.ClassName,Je);class es extends he{constructor(e){super(y,y,(e=>this._polymorphicRadToDeg(e)),es.ClassName,e)}_radToDeg(e){return 180*e/Math.PI}_polymorphicRadToDeg(e){return Be(e,this._radToDeg)}}es.ClassName="FGRadToDegBlock",t(es.ClassName,es);class ss extends he{constructor(e){super(y,y,(e=>this._polymorphicSin(e)),ss.ClassName,e)}_polymorphicSin(e){return Be(e,Math.sin)}}ss.ClassName="FGSinBlock",t(ss.ClassName,ss);class ts extends he{constructor(e){super(y,y,(e=>this._polymorphicCos(e)),ts.ClassName,e)}_polymorphicCos(e){return Be(e,Math.cos)}}ts.ClassName="FGCosBlock",t(ts.ClassName,ts);class as extends he{constructor(e){super(y,y,(e=>this._polymorphicTan(e)),as.ClassName,e)}_polymorphicTan(e){return Be(e,Math.tan)}}as.ClassName="FGTanBlock",t(as.ClassName,as);class ns extends he{constructor(e){super(y,y,(e=>this._polymorphicAsin(e)),ns.ClassName,e)}_polymorphicAsin(e){return Be(e,Math.asin)}}ns.ClassName="FGAsinBlock",t(ns.ClassName,ns);class os extends he{constructor(e){super(y,y,(e=>this._polymorphicAcos(e)),os.ClassName,e)}_polymorphicAcos(e){return Be(e,Math.acos)}}os.ClassName="FGAcosBlock",t(os.ClassName,os);class rs extends he{constructor(e){super(y,y,(e=>this._polymorphicAtan(e)),rs.ClassName,e)}_polymorphicAtan(e){return Be(e,Math.atan)}}rs.ClassName="FGAtanBlock",t(rs.ClassName,rs);class is extends le{constructor(e){super(y,y,y,((e,s)=>this._polymorphicAtan2(e,s)),is.ClassName,e)}_polymorphicAtan2(e,s){return Me(e,s,Math.atan2)}}is.ClassName="FGAtan2Block",t(is.ClassName,is);class cs extends he{constructor(e){super(y,y,(e=>this._polymorphicSinh(e)),cs.ClassName,e)}_polymorphicSinh(e){return Be(e,Math.sinh)}}cs.ClassName="FGSinhBlock",t(cs.ClassName,cs);class ls extends he{constructor(e){super(y,y,(e=>this._polymorphicCosh(e)),ls.ClassName,e)}_polymorphicCosh(e){return Be(e,Math.cosh)}}ls.ClassName="FGCoshBlock",t(ls.ClassName,ls);class us extends he{constructor(e){super(y,y,(e=>this._polymorphicTanh(e)),us.ClassName,e)}_polymorphicTanh(e){return Be(e,Math.tanh)}}us.ClassName="FGTanhBlock",t(us.ClassName,us);class hs extends he{constructor(e){super(y,w,(e=>this._polymorphicAsinh(e)),hs.ClassName,e)}_polymorphicAsinh(e){return Be(e,Math.asinh)}}hs.ClassName="FGAsinhBlock",t(hs.ClassName,hs);class ms extends he{constructor(e){super(y,w,(e=>this._polymorphicAcosh(e)),ms.ClassName,e)}_polymorphicAcosh(e){return Be(e,Math.acosh)}}ms.ClassName="FGAcoshBlock",t(ms.ClassName,ms);class ps extends he{constructor(e){super(y,w,(e=>this._polymorphicAtanh(e)),ps.ClassName,e)}_polymorphicAtanh(e){return Be(e,Math.atanh)}}ps.ClassName="FGAtanhBlock",t(ps.ClassName,ps);class ds extends he{constructor(e){super(y,w,(e=>this._polymorphicExp(e)),ds.ClassName,e)}_polymorphicExp(e){return Be(e,Math.exp)}}ds.ClassName="FGExpBlock",t(ds.ClassName,ds);class Cs extends he{constructor(e){super(y,w,(e=>this._polymorphicLog(e)),Cs.ClassName,e)}_polymorphicLog(e){return Be(e,Math.log)}}Cs.ClassName="FGLogBlock",t(Cs.ClassName,Cs);class _s extends he{constructor(e){super(y,w,(e=>this._polymorphicLog2(e)),_s.ClassName,e)}_polymorphicLog2(e){return Be(e,Math.log2)}}_s.ClassName="FGLog2Block",t(_s.ClassName,_s);class Ns extends he{constructor(e){super(y,w,(e=>this._polymorphicLog10(e)),Ns.ClassName,e)}_polymorphicLog10(e){return Be(e,Math.log10)}}Ns.ClassName="FGLog10Block",t(Ns.ClassName,Ns);class gs extends he{constructor(e){super(y,w,(e=>this._polymorphicSqrt(e)),gs.ClassName,e)}_polymorphicSqrt(e){return Be(e,Math.sqrt)}}gs.ClassName="FGSqrtBlock",t(gs.ClassName,gs);class fs extends he{constructor(e){super(y,w,(e=>this._polymorphicCubeRoot(e)),fs.ClassName,e)}_polymorphicCubeRoot(e){return Be(e,Math.cbrt)}}fs.ClassName="FGCubeRootBlock",t(fs.ClassName,fs);class vs extends le{constructor(e){super(y,w,w,((e,s)=>this._polymorphicPow(e,s)),vs.ClassName,e)}_polymorphicPow(e,s){return Me(e,s,Math.pow)}}vs.ClassName="FGPowBlock",t(vs.ClassName,vs);class xs extends he{constructor(e){super(y,w,(e=>this._polymorphicLength(e)),xs.ClassName,e)}_polymorphicLength(e){switch(pe(e)){case"Vector2":case"Vector3":case"Vector4":return e.length();default:throw new Error(`Cannot compute length of value ${e}`)}}}xs.ClassName="FGLengthBlock",t(xs.ClassName,xs);class bs extends he{constructor(e){super(y,y,(e=>this._polymorphicNormalize(e)),bs.ClassName,e)}_polymorphicNormalize(e){switch(pe(e)){case"Vector2":case"Vector3":case"Vector4":return e.normalize();default:throw new Error(`Cannot normalize value ${e}`)}}}bs.ClassName="FGNormalizeBlock",t(bs.ClassName,bs);class ys extends le{constructor(e){super(B,B,B,((e,s)=>n.Cross(e,s)),ys.ClassName,e)}}ys.ClassName="FGCrossBlock",t(ys.ClassName,ys);class ws extends le{constructor(e){super(I,w,I,((e,s)=>a.Transform(e,r.RotationZ(s))),ws.ClassName,e)}}ws.ClassName="FGRotate2DBlock",t(ws.ClassName,ws);class ks extends me{constructor(e){super(B,B,w,B,((e,s,t)=>n.TransformCoordinates(e,r.RotationAxis(s,t))),ks.ClassName,e)}}ks.ClassName="FGRotate3DBlock",t(ks.ClassName,ks);class Is extends he{constructor(e){super(V,V,(e=>r.Transpose(e)),Is.ClassName,e)}}Is.ClassName="FGTransposeBlock",t(Is.ClassName,Is);class Bs extends he{constructor(e){super(V,w,(e=>e.determinant()),Bs.ClassName,e)}}Bs.ClassName="FGDeterminantBlock",t(Bs.ClassName,Bs);class Vs extends he{constructor(e){super(V,V,(e=>r.Invert(e)),Vs.ClassName,e)}}Vs.ClassName="FGInvertMatrixBlock",t(Vs.ClassName,Vs);class Os extends le{constructor(e){super(V,V,V,((e,s)=>s.multiply(e)),Os.ClassName,e)}}Os.ClassName="FGMatMulBlock",t(Os.ClassName,Os);class Gs extends he{constructor(e){super(O,O,(e=>new x(~e.value)),Gs.ClassName,e)}}Gs.ClassName="FGBitwiseNotBlock",t(Gs.ClassName,Gs);class Fs extends le{constructor(e){super(O,O,O,((e,s)=>new x(e.value&s.value)),Fs.ClassName,e)}}Fs.ClassName="FGBitwiseAndBlock",t(Fs.ClassName,Fs);class Es extends le{constructor(e){super(O,O,O,((e,s)=>new x(e.value|s.value)),Es.ClassName,e)}}Es.ClassName="FGBitwiseOrBlock",t(Es.ClassName,Es);class Ts extends le{constructor(e){super(O,O,O,((e,s)=>new x(e.value^s.value)),Ts.ClassName,e)}}Ts.ClassName="FGBitwiseXorBlock",t(Ts.ClassName,Ts);class Ps extends le{constructor(e){super(O,O,O,((e,s)=>new x(e.value<<s.value)),Ps.ClassName,e)}}Ps.ClassName="FGBitwiseLeftShiftBlock",t(Ps.ClassName,Ps);class Ms extends le{constructor(e){super(O,O,O,((e,s)=>new x(e.value>>s.value)),Ms.ClassName,e)}}Ms.ClassName="FGBitwiseRightShiftBlock",t(Ms.ClassName,Ms);class Ss extends he{constructor(e){super(O,O,(e=>new x(Math.clz32(e.value))),Ss.ClassName,e)}}Ss.ClassName="FGCountLeadingZerosBlock",t(Ss.ClassName,Ss);class Ds extends he{constructor(e){super(O,O,(e=>new x(e.value?31-Math.clz32(e.value&-e.value):32)),Ds.ClassName,e)}}Ds.ClassName="FGCountTrailingZerosBlock",t(Ds.ClassName,Ds);class qs extends he{constructor(e){super(O,O,(e=>new x(function(e){let s=0;for(;e;)s+=1&e,e>>=1;return s}(e.value))),qs.ClassName,e)}}qs.ClassName="FGCountOneBitsBlock",t(qs.ClassName,qs);class zs extends Q{constructor(e={startIndex:new x(0)}){super(e),this.config=e,this.reset=this._registerSignalInput("reset"),this.n=this.registerDataInput("n",O),this.value=this.registerDataOutput("value",O)}_execute(e,s){if(s===this.reset)this.value.setValue(this.config.startIndex,e);else{const s=this.value.getValue(e);s.value<this.n.getValue(e).value&&(this.value.setValue(new x(s.value+1),e),this.out._activateSignal(e))}}getClassName(){return zs.ClassName}}zs.ClassName="FGDoNBlock",t(zs.ClassName,zs);class Rs extends M{constructor(e){super(e),this.config=e,this.output=this.registerDataOutput(e.variableName,y)}_updateOutputs(e){const s=this.config.variableName;e.hasVariable(s)&&this.output.setValue(e.getVariable(s),e)}getClassName(){return Rs.ClassName}serialize(e){super.serialize(e),e.config.variableName=this.config.variableName}}Rs.ClassName="FGGetVariableBlock",t(Rs.ClassName,Rs);class As extends Q{constructor(e){super(e),this.config=e,this.input=this.registerDataInput(e.variableName,y)}_execute(e){const s=this.config.variableName,t=this.input.getValue(e);e.setVariable(s,t),this.out._activateSignal(e)}getClassName(){return As.ClassName}}As.ClassName="FGSetVariableBlock",t(As.ClassName,As);class $s extends Q{constructor(e){super(e),this.config=e,this.condition=this.registerDataInput("condition",k),this.loopBody=this._registerSignalOutput("loopBody")}_execute(e,s){let t=this.condition.getValue(e);for(this.config?.isDo&&!t&&this.loopBody._activateSignal(e);t;)this.loopBody._activateSignal(e),t=this.condition.getValue(e);this.out._activateSignal(e)}getClassName(){return $s.ClassName}serialize(e){super.serialize(e),e.isDo=this.config?.isDo}}$s.ClassName="FGWhileLoopBlock",t($s.ClassName,$s);const Ls={"lifecycle/onStart":j.ClassName,"lifecycle/onTick":Z.ClassName,log:W.ClassName,"flow/delay":Y.ClassName,"customEvent/send":J.ClassName,"customEvent/receive":ee.ClassName,"flow/sequence":se.ClassName,"world/get":ne.ClassName,"world/set":oe.ClassName,"flow/doN":zs.ClassName,"variable/get":Rs.ClassName,"variable/set":As.ClassName,"flow/whileLoop":$s.ClassName,"math/random":xe.ClassName,"math/e":ye.ClassName,"math/pi":we.ClassName,"math/inf":ke.ClassName,"math/nan":Ie.ClassName,"math/abs":Ve.ClassName,"math/sign":Oe.ClassName,"math/trunc":Ge.ClassName,"math/floor":Fe.ClassName,"math/ceil":Ee.ClassName,"math/fract":Te.ClassName,"math/neg":Pe.ClassName,"math/add":Ne.ClassName,"math/sub":ge.ClassName,"math/mul":fe.ClassName,"math/div":ve.ClassName,"math/rem":Se.ClassName,"math/min":De.ClassName,"math/max":qe.ClassName,"math/clamp":Ae.ClassName,"math/saturate":Le.ClassName,"math/mix":Ue.ClassName,"math/eq":Ke.ClassName,"math/lt":je.ClassName,"math/le":Ze.ClassName,"math/gt":Qe.ClassName,"math/ge":We.ClassName,"math/isnan":Xe.ClassName,"math/isinf":Ye.ClassName,"math/rad":Je.ClassName,"math/deg":es.ClassName,"math/sin":ss.ClassName,"math/cos":ts.ClassName,"math/tan":as.ClassName,"math/asin":ns.ClassName,"math/acos":os.ClassName,"math/atan":rs.ClassName,"math/atan2":is.ClassName,"math/sinh":cs.ClassName,"math/cosh":ls.ClassName,"math/tanh":us.ClassName,"math/asinh":hs.ClassName,"math/acosh":ms.ClassName,"math/atanh":ps.ClassName,"math/exp":ds.ClassName,"math/log":Cs.ClassName,"math/log2":_s.ClassName,"math/log10":Ns.ClassName,"math/sqrt":gs.ClassName,"math/cbrt":fs.ClassName,"math/pow":vs.ClassName,"math/length":xs.ClassName,"math/normalize":bs.ClassName,"math/dot":be.ClassName,"math/cross":ys.ClassName,"math/rotate2d":ws.ClassName,"math/rotate3d":ks.ClassName,"math/transpose":Is.ClassName,"math/determinant":Bs.ClassName,"math/inverse":Vs.ClassName,"math/matmul":Os.ClassName,"math/not":Gs.ClassName,"math/and":Fs.ClassName,"math/or":Es.ClassName,"math/xor":Ts.ClassName,"math/asr":Ms.ClassName,"math/lsl":Ps.ClassName,"math/clz":Ss.ClassName,"math/ctz":Ds.ClassName,"math/popcnt":qs.ClassName},Us={float2:"Vector2",float3:"Vector3",float4:"Vector4",float4x4:"Matrix",int:"FlowGraphInteger"};function Ks(e,s,t){if(void 0!==e.type){const a=s.types&&s.types[e.type];if(!a)throw new Error(`${t}: Unknown type: ${e.type}`);const n=a.signature;if(!n)throw new Error(`${t}: Type ${e.type} has no signature`);const o=Us[n];return{value:e.value,className:o}}return e.value}function Hs(e,s,t){const a=Ls[s.type];if(!a)throw new Error(`/extensions/KHR_interactivity/nodes/${e}: Unknown block type: ${s.type}`);const n=e.toString(),o=function(e,s,t){const a={},n=e.configuration??[];for(const e of n)if("customEvent"===e.id){const n=s.customEvents&&s.customEvents[e.value];if(!n)throw new Error(`/extensions/KHR_interactivity/nodes/${t}: Unknown custom event: ${e.value}`);a.eventId=n.id,a.eventData=n.values.map((e=>e.id))}else if("variable"===e.id){const n=s.variables&&s.variables[e.value];if(!n)throw new Error(`/extensions/KHR_interactivity/nodes/${t}: Unknown variable: ${e.value}`);a.variableName=n.id}else if("path"===e.id){const s=e.value;a.path=s}else a[e.id]=Ks(e,s,`/extensions/KHR_interactivity/nodes/${t}`);return a}(s,t,n);return{className:a,config:o,uniqueId:n,metadata:s.metadata,dataInputs:[],dataOutputs:[],signalInputs:[],signalOutputs:[]}}class js extends g{constructor(e){super(e,Zs)}}const Zs={nodes:{__array__:{__target__:!0,translation:{type:"Vector3",get:e=>e._babylonTransformNode.position,set:(e,s)=>{s._babylonTransformNode.position=e},getObject:e=>e._babylonTransformNode}}}},Qs="KHR_interactivity";class Ws{constructor(e){this._loader=e,this.name=Qs,this.enabled=this._loader.isExtensionUsed(Qs),this._pathConverter=new js(this._loader.gltf)}dispose(){this._loader=null,delete this._pathConverter}onReady(){if(!this._loader.babylonScene||!this._pathConverter)return;const s=this._loader.babylonScene,t=this._loader.gltf.extensions?.KHR_interactivity,a=function(s){const t={uniqueId:e(),_userVariables:{},_connectionValues:{}},a=[t],n=[];for(let e=0;e<s.nodes.length;e++){const t=Hs(e,s.nodes[e],s);n.push(t)}for(let a=0;a<s.nodes.length;a++){const o=s.nodes[a],r=n[a],i=o.flows??[];for(const s of i){const t=s.id,o={uniqueId:e(),name:t,_connectionType:1,connectedPointIds:[]};r.signalOutputs.push(o);const i=s.node,c=s.socket,l=n[i];if(!l)throw new Error(`/extensions/KHR_interactivity/nodes/${a}: Could not find node with id ${i} that connects its input with with node ${a}'s output ${t}`);let u=l.signalInputs.find((e=>e.name===c));u||(u={uniqueId:e(),name:c,_connectionType:0,connectedPointIds:[]},l.signalInputs.push(u)),u.connectedPointIds.push(o.uniqueId),o.connectedPointIds.push(u.uniqueId)}const c=o.values??[];for(const o of c){const i=o.id,c={uniqueId:e(),name:i,_connectionType:0,connectedPointIds:[]};if(r.dataInputs.push(c),void 0!==o.value){const e=Ks(o,s,`/extensions/KHR_interactivity/nodes/${a}`);t._connectionValues[c.uniqueId]=e}else{if(void 0===o.node||void 0===o.socket)throw new Error(`/extensions/KHR_interactivity/nodes/${a}: Invalid socket ${i} in node ${a}`);{const s=o.node,t=o.socket,r=n[s];if(!r)throw new Error(`/extensions/KHR_interactivity/nodes/${a}: Could not find node with id ${s} that connects its output with node${a}'s input ${i}`);let l=r.dataOutputs.find((e=>e.name===t));l||(l={uniqueId:e(),name:t,_connectionType:1,connectedPointIds:[]},r.dataOutputs.push(l)),c.connectedPointIds.push(l.uniqueId),l.connectedPointIds.push(c.uniqueId)}}}}const o=s.variables??[];for(let e=0;e<o.length;e++){const a=o[e],n=a.id;t._userVariables[n]=Ks(a,s,`/extensions/KHR_interactivity/variables/${e}`)}return{allBlocks:n,executionContexts:a}}(t),n=new H({scene:s});K.Parse(a,{coordinator:n,pathConverter:this._pathConverter}),n.start()}}_(Qs),N(Qs,!0,(e=>new Ws(e)));export{Ws as KHR_interactivity};
|
|
2
|
-
//# sourceMappingURL=KHR_interactivity-Blj_9jts.esm.min.js.map
|