@babylonjs/viewer 7.25.1-alpha → 7.25.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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 +192 -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 +350 -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 +199 -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 +27 -17
- package/readme.md +21 -35
- 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 +21 -0
- package/templating/plugins/hdButtonPlugin.js.map +1 -0
- package/templating/plugins/printButton.d.ts +9 -0
- package/templating/plugins/printButton.js +40 -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 +675 -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/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_image_based-DVT9d5PE.esm.min.js +0 -2
- package/dist/chunks/EXT_lights_image_based-DVT9d5PE.esm.min.js.map +0 -1
- package/dist/chunks/EXT_lights_image_based-XqDzs68T.esm.js +0 -170
- package/dist/chunks/EXT_lights_image_based-XqDzs68T.esm.js.map +0 -1
- package/dist/chunks/EXT_mesh_gpu_instancing-BDdwYyny.esm.min.js +0 -2
- package/dist/chunks/EXT_mesh_gpu_instancing-BDdwYyny.esm.min.js.map +0 -1
- package/dist/chunks/EXT_mesh_gpu_instancing-DhR2UOBn.esm.js +0 -86
- package/dist/chunks/EXT_mesh_gpu_instancing-DhR2UOBn.esm.js.map +0 -1
- package/dist/chunks/EXT_meshopt_compression-BqFzh0gY.esm.js +0 -134
- package/dist/chunks/EXT_meshopt_compression-BqFzh0gY.esm.js.map +0 -1
- package/dist/chunks/EXT_meshopt_compression-SfXDvdUM.esm.min.js +0 -2
- package/dist/chunks/EXT_meshopt_compression-SfXDvdUM.esm.min.js.map +0 -1
- package/dist/chunks/EXT_texture_avif-JBIGyeRc.esm.js +0 -44
- package/dist/chunks/EXT_texture_avif-JBIGyeRc.esm.js.map +0 -1
- package/dist/chunks/EXT_texture_avif-q1TkH_G9.esm.min.js +0 -2
- package/dist/chunks/EXT_texture_avif-q1TkH_G9.esm.min.js.map +0 -1
- package/dist/chunks/EXT_texture_webp-B1s3FiRS.esm.js +0 -43
- package/dist/chunks/EXT_texture_webp-B1s3FiRS.esm.js.map +0 -1
- package/dist/chunks/EXT_texture_webp-BCI9KAUl.esm.min.js +0 -2
- package/dist/chunks/EXT_texture_webp-BCI9KAUl.esm.min.js.map +0 -1
- package/dist/chunks/ExtrasAsMetadata-BOD2FG8I.esm.min.js +0 -2
- package/dist/chunks/ExtrasAsMetadata-BOD2FG8I.esm.min.js.map +0 -1
- package/dist/chunks/ExtrasAsMetadata-ByiJUaSt.esm.js +0 -64
- package/dist/chunks/ExtrasAsMetadata-ByiJUaSt.esm.js.map +0 -1
- package/dist/chunks/KHR_animation_pointer-CNYMXY_w.esm.js +0 -343
- package/dist/chunks/KHR_animation_pointer-CNYMXY_w.esm.js.map +0 -1
- package/dist/chunks/KHR_animation_pointer-CnLRV_yl.esm.min.js +0 -2
- package/dist/chunks/KHR_animation_pointer-CnLRV_yl.esm.min.js.map +0 -1
- package/dist/chunks/KHR_draco_mesh_compression-AZ2o_aLj.esm.min.js +0 -2
- package/dist/chunks/KHR_draco_mesh_compression-AZ2o_aLj.esm.min.js.map +0 -1
- package/dist/chunks/KHR_draco_mesh_compression-DFY2Ctvm.esm.js +0 -610
- package/dist/chunks/KHR_draco_mesh_compression-DFY2Ctvm.esm.js.map +0 -1
- package/dist/chunks/KHR_interactivity-3PDcMKr_.esm.js +0 -4033
- package/dist/chunks/KHR_interactivity-3PDcMKr_.esm.js.map +0 -1
- package/dist/chunks/KHR_interactivity-C-cfOaao.esm.min.js +0 -2
- package/dist/chunks/KHR_interactivity-C-cfOaao.esm.min.js.map +0 -1
- package/dist/chunks/KHR_lights_punctual-DdpvJMDV.esm.js +0 -1253
- package/dist/chunks/KHR_lights_punctual-DdpvJMDV.esm.js.map +0 -1
- package/dist/chunks/KHR_lights_punctual-fnDFOclN.esm.min.js +0 -2
- package/dist/chunks/KHR_lights_punctual-fnDFOclN.esm.min.js.map +0 -1
- package/dist/chunks/KHR_materials_anisotropy-Cb6X0k3m.esm.min.js +0 -2
- package/dist/chunks/KHR_materials_anisotropy-Cb6X0k3m.esm.min.js.map +0 -1
- package/dist/chunks/KHR_materials_anisotropy-gNrsYmJY.esm.js +0 -64
- package/dist/chunks/KHR_materials_anisotropy-gNrsYmJY.esm.js.map +0 -1
- package/dist/chunks/KHR_materials_clearcoat-U2HUz3WB.esm.js +0 -96
- package/dist/chunks/KHR_materials_clearcoat-U2HUz3WB.esm.js.map +0 -1
- package/dist/chunks/KHR_materials_clearcoat-joUz7tSd.esm.min.js +0 -2
- package/dist/chunks/KHR_materials_clearcoat-joUz7tSd.esm.min.js.map +0 -1
- package/dist/chunks/KHR_materials_diffuse_transmission-Cm1IFxmL.esm.min.js +0 -2
- package/dist/chunks/KHR_materials_diffuse_transmission-Cm1IFxmL.esm.min.js.map +0 -1
- package/dist/chunks/KHR_materials_diffuse_transmission-Cn5gk-q_.esm.js +0 -97
- package/dist/chunks/KHR_materials_diffuse_transmission-Cn5gk-q_.esm.js.map +0 -1
- package/dist/chunks/KHR_materials_dispersion-Cpc2ME1B.esm.js +0 -62
- package/dist/chunks/KHR_materials_dispersion-Cpc2ME1B.esm.js.map +0 -1
- package/dist/chunks/KHR_materials_dispersion-Cv7zIL7j.esm.min.js +0 -2
- package/dist/chunks/KHR_materials_dispersion-Cv7zIL7j.esm.min.js.map +0 -1
- package/dist/chunks/KHR_materials_emissive_strength-BYxJ1Qaz.esm.js +0 -55
- package/dist/chunks/KHR_materials_emissive_strength-BYxJ1Qaz.esm.js.map +0 -1
- package/dist/chunks/KHR_materials_emissive_strength-DBEC-Pfr.esm.min.js +0 -2
- package/dist/chunks/KHR_materials_emissive_strength-DBEC-Pfr.esm.min.js.map +0 -1
- package/dist/chunks/KHR_materials_ior-B4HgptNe.esm.min.js +0 -2
- package/dist/chunks/KHR_materials_ior-B4HgptNe.esm.min.js.map +0 -1
- package/dist/chunks/KHR_materials_ior-CDtowU9f.esm.js +0 -64
- package/dist/chunks/KHR_materials_ior-CDtowU9f.esm.js.map +0 -1
- package/dist/chunks/KHR_materials_iridescence-CgkruUTk.esm.min.js +0 -2
- package/dist/chunks/KHR_materials_iridescence-CgkruUTk.esm.min.js.map +0 -1
- package/dist/chunks/KHR_materials_iridescence-CqmvyPW8.esm.js +0 -72
- package/dist/chunks/KHR_materials_iridescence-CqmvyPW8.esm.js.map +0 -1
- package/dist/chunks/KHR_materials_pbrSpecularGlossiness-BQV0asO5.esm.js +0 -81
- package/dist/chunks/KHR_materials_pbrSpecularGlossiness-BQV0asO5.esm.js.map +0 -1
- package/dist/chunks/KHR_materials_pbrSpecularGlossiness-Bv4SCrwb.esm.min.js +0 -2
- package/dist/chunks/KHR_materials_pbrSpecularGlossiness-Bv4SCrwb.esm.min.js.map +0 -1
- package/dist/chunks/KHR_materials_sheen-BQM2Rjmq.esm.js +0 -85
- package/dist/chunks/KHR_materials_sheen-BQM2Rjmq.esm.js.map +0 -1
- package/dist/chunks/KHR_materials_sheen-DV5CnbK2.esm.min.js +0 -2
- package/dist/chunks/KHR_materials_sheen-DV5CnbK2.esm.min.js.map +0 -1
- package/dist/chunks/KHR_materials_specular-4xCkE2rV.esm.js +0 -75
- package/dist/chunks/KHR_materials_specular-4xCkE2rV.esm.js.map +0 -1
- package/dist/chunks/KHR_materials_specular-CoAFRAcm.esm.min.js +0 -2
- package/dist/chunks/KHR_materials_specular-CoAFRAcm.esm.min.js.map +0 -1
- package/dist/chunks/KHR_materials_transmission-DUGtSvRL.esm.js +0 -307
- package/dist/chunks/KHR_materials_transmission-DUGtSvRL.esm.js.map +0 -1
- package/dist/chunks/KHR_materials_transmission-dc1ndoxL.esm.min.js +0 -2
- package/dist/chunks/KHR_materials_transmission-dc1ndoxL.esm.min.js.map +0 -1
- package/dist/chunks/KHR_materials_unlit-BNXbHdvw.esm.js +0 -74
- package/dist/chunks/KHR_materials_unlit-BNXbHdvw.esm.js.map +0 -1
- package/dist/chunks/KHR_materials_unlit-D9MVjMTN.esm.min.js +0 -2
- package/dist/chunks/KHR_materials_unlit-D9MVjMTN.esm.min.js.map +0 -1
- package/dist/chunks/KHR_materials_variants-CBW9J72v.esm.min.js +0 -2
- package/dist/chunks/KHR_materials_variants-CBW9J72v.esm.min.js.map +0 -1
- package/dist/chunks/KHR_materials_variants-Dkur-XMA.esm.js +0 -238
- package/dist/chunks/KHR_materials_variants-Dkur-XMA.esm.js.map +0 -1
- package/dist/chunks/KHR_materials_volume-BSWwp0PI.esm.js +0 -87
- package/dist/chunks/KHR_materials_volume-BSWwp0PI.esm.js.map +0 -1
- package/dist/chunks/KHR_materials_volume-uEEN0xx9.esm.min.js +0 -2
- package/dist/chunks/KHR_materials_volume-uEEN0xx9.esm.min.js.map +0 -1
- package/dist/chunks/KHR_mesh_quantization--7YAD1i9.esm.js +0 -26
- package/dist/chunks/KHR_mesh_quantization--7YAD1i9.esm.js.map +0 -1
- package/dist/chunks/KHR_mesh_quantization-D48i0ooq.esm.min.js +0 -2
- package/dist/chunks/KHR_mesh_quantization-D48i0ooq.esm.min.js.map +0 -1
- package/dist/chunks/KHR_texture_basisu-CJHQOtEz.esm.min.js +0 -2
- package/dist/chunks/KHR_texture_basisu-CJHQOtEz.esm.min.js.map +0 -1
- package/dist/chunks/KHR_texture_basisu-CZJ-szw2.esm.js +0 -43
- package/dist/chunks/KHR_texture_basisu-CZJ-szw2.esm.js.map +0 -1
- package/dist/chunks/KHR_texture_transform-CCGZOtJG.esm.js +0 -63
- package/dist/chunks/KHR_texture_transform-CCGZOtJG.esm.js.map +0 -1
- package/dist/chunks/KHR_texture_transform-Cz_tYWj9.esm.min.js +0 -2
- package/dist/chunks/KHR_texture_transform-Cz_tYWj9.esm.min.js.map +0 -1
- package/dist/chunks/KHR_xmp_json_ld-BWhXh4yX.esm.min.js +0 -2
- package/dist/chunks/KHR_xmp_json_ld-BWhXh4yX.esm.min.js.map +0 -1
- package/dist/chunks/KHR_xmp_json_ld-D8vGUblu.esm.js +0 -51
- package/dist/chunks/KHR_xmp_json_ld-D8vGUblu.esm.js.map +0 -1
- package/dist/chunks/MSFT_audio_emitter-CABqee9Z.esm.min.js +0 -2
- package/dist/chunks/MSFT_audio_emitter-CABqee9Z.esm.min.js.map +0 -1
- package/dist/chunks/MSFT_audio_emitter-CupxtNMJ.esm.js +0 -2236
- package/dist/chunks/MSFT_audio_emitter-CupxtNMJ.esm.js.map +0 -1
- package/dist/chunks/MSFT_lod-BZ6xhN71.esm.min.js +0 -2
- package/dist/chunks/MSFT_lod-BZ6xhN71.esm.min.js.map +0 -1
- package/dist/chunks/MSFT_lod-D6-TVSnT.esm.js +0 -337
- package/dist/chunks/MSFT_lod-D6-TVSnT.esm.js.map +0 -1
- package/dist/chunks/MSFT_minecraftMesh-DXKcYd7c.esm.js +0 -46
- package/dist/chunks/MSFT_minecraftMesh-DXKcYd7c.esm.js.map +0 -1
- package/dist/chunks/MSFT_minecraftMesh-jQGuk0z2.esm.min.js +0 -2
- package/dist/chunks/MSFT_minecraftMesh-jQGuk0z2.esm.min.js.map +0 -1
- package/dist/chunks/MSFT_sRGBFactors-CMIEJuDa.esm.min.js +0 -2
- package/dist/chunks/MSFT_sRGBFactors-CMIEJuDa.esm.min.js.map +0 -1
- package/dist/chunks/MSFT_sRGBFactors-D1di9DYd.esm.js +0 -47
- package/dist/chunks/MSFT_sRGBFactors-D1di9DYd.esm.js.map +0 -1
- package/dist/chunks/assetContainer-B4RZAzKO.esm.min.js +0 -2
- package/dist/chunks/assetContainer-B4RZAzKO.esm.min.js.map +0 -1
- package/dist/chunks/assetContainer-B_DdybqS.esm.js +0 -1598
- package/dist/chunks/assetContainer-B_DdybqS.esm.js.map +0 -1
- package/dist/chunks/audioEngine-BNEDnVbO.esm.min.js +0 -2
- package/dist/chunks/audioEngine-BNEDnVbO.esm.min.js.map +0 -1
- package/dist/chunks/audioEngine-CICNJdfP.esm.js +0 -305
- package/dist/chunks/audioEngine-CICNJdfP.esm.js.map +0 -1
- package/dist/chunks/basisTextureLoader-B_8qIBcv.esm.js +0 -600
- package/dist/chunks/basisTextureLoader-B_8qIBcv.esm.js.map +0 -1
- package/dist/chunks/basisTextureLoader-qwPrmlI1.esm.min.js +0 -2
- package/dist/chunks/basisTextureLoader-qwPrmlI1.esm.min.js.map +0 -1
- package/dist/chunks/ddsTextureLoader-Caj9Cn2g.esm.min.js +0 -2
- package/dist/chunks/ddsTextureLoader-Caj9Cn2g.esm.min.js.map +0 -1
- package/dist/chunks/ddsTextureLoader-Dtde5Y_E.esm.js +0 -87
- package/dist/chunks/ddsTextureLoader-Dtde5Y_E.esm.js.map +0 -1
- package/dist/chunks/default.fragment-3-A6Ds5q.esm.js +0 -456
- package/dist/chunks/default.fragment-3-A6Ds5q.esm.js.map +0 -1
- package/dist/chunks/default.fragment-CK_5aPIO.esm.js +0 -515
- package/dist/chunks/default.fragment-CK_5aPIO.esm.js.map +0 -1
- package/dist/chunks/default.fragment-CW6M2CvG.esm.min.js +0 -2
- package/dist/chunks/default.fragment-CW6M2CvG.esm.min.js.map +0 -1
- package/dist/chunks/default.fragment-D8IeeUuR.esm.min.js +0 -2
- package/dist/chunks/default.fragment-D8IeeUuR.esm.min.js.map +0 -1
- package/dist/chunks/default.vertex-BnmEG9Z3.esm.js +0 -178
- package/dist/chunks/default.vertex-BnmEG9Z3.esm.js.map +0 -1
- package/dist/chunks/default.vertex-CByxmCU_.esm.min.js +0 -2
- package/dist/chunks/default.vertex-CByxmCU_.esm.min.js.map +0 -1
- package/dist/chunks/default.vertex-CKXtUMTv.esm.min.js +0 -2
- package/dist/chunks/default.vertex-CKXtUMTv.esm.min.js.map +0 -1
- package/dist/chunks/default.vertex-D5kQBg6V.esm.js +0 -199
- package/dist/chunks/default.vertex-D5kQBg6V.esm.js.map +0 -1
- package/dist/chunks/defaultUboDeclaration-AgU83OaK.esm.min.js +0 -2
- package/dist/chunks/defaultUboDeclaration-AgU83OaK.esm.min.js.map +0 -1
- package/dist/chunks/defaultUboDeclaration-BTsCVlsd.esm.min.js +0 -2
- package/dist/chunks/defaultUboDeclaration-BTsCVlsd.esm.min.js.map +0 -1
- package/dist/chunks/defaultUboDeclaration-bGo0gkae.esm.js +0 -15
- package/dist/chunks/defaultUboDeclaration-bGo0gkae.esm.js.map +0 -1
- package/dist/chunks/defaultUboDeclaration-pi1Tffi-.esm.js +0 -13
- package/dist/chunks/defaultUboDeclaration-pi1Tffi-.esm.js.map +0 -1
- package/dist/chunks/engine-DDK673Fr.esm.js +0 -1613
- package/dist/chunks/engine-DDK673Fr.esm.js.map +0 -1
- package/dist/chunks/engine-DdeN2F9N.esm.min.js +0 -2
- package/dist/chunks/engine-DdeN2F9N.esm.min.js.map +0 -1
- package/dist/chunks/envTextureLoader-B_We3UAe.esm.min.js +0 -2
- package/dist/chunks/envTextureLoader-B_We3UAe.esm.min.js.map +0 -1
- package/dist/chunks/envTextureLoader-DeYk_D-u.esm.js +0 -63
- package/dist/chunks/envTextureLoader-DeYk_D-u.esm.js.map +0 -1
- package/dist/chunks/environmentTextureTools-DT_BQR6L.esm.min.js +0 -2
- package/dist/chunks/environmentTextureTools-DT_BQR6L.esm.min.js.map +0 -1
- package/dist/chunks/environmentTextureTools-DZ4GOzAY.esm.js +0 -381
- package/dist/chunks/environmentTextureTools-DZ4GOzAY.esm.js.map +0 -1
- package/dist/chunks/exrTextureLoader-BPFaquLu.esm.min.js +0 -2
- package/dist/chunks/exrTextureLoader-BPFaquLu.esm.min.js.map +0 -1
- package/dist/chunks/exrTextureLoader-DFfYDSvx.esm.js +0 -1682
- package/dist/chunks/exrTextureLoader-DFfYDSvx.esm.js.map +0 -1
- package/dist/chunks/fogFragment-ChBeVMbL.esm.min.js +0 -2
- package/dist/chunks/fogFragment-ChBeVMbL.esm.min.js.map +0 -1
- package/dist/chunks/fogFragment-CnlQ05Rn.esm.js +0 -102
- package/dist/chunks/fogFragment-CnlQ05Rn.esm.js.map +0 -1
- package/dist/chunks/glTFLoader-CfuuZdCb.esm.js +0 -7552
- package/dist/chunks/glTFLoader-CfuuZdCb.esm.js.map +0 -1
- package/dist/chunks/glTFLoader-DOyVt9PU.esm.min.js +0 -2
- package/dist/chunks/glTFLoader-DOyVt9PU.esm.min.js.map +0 -1
- package/dist/chunks/glTFLoaderAnimation-28_L-pzh.esm.js +0 -77
- package/dist/chunks/glTFLoaderAnimation-28_L-pzh.esm.js.map +0 -1
- package/dist/chunks/glTFLoaderAnimation-Cueukaay.esm.min.js +0 -2
- package/dist/chunks/glTFLoaderAnimation-Cueukaay.esm.min.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-5m2TqpP7.esm.js +0 -34
- package/dist/chunks/harmonicsFunctions-5m2TqpP7.esm.js.map +0 -1
- package/dist/chunks/harmonicsFunctions-CZvW5nS2.esm.min.js +0 -2
- package/dist/chunks/harmonicsFunctions-CZvW5nS2.esm.min.js.map +0 -1
- package/dist/chunks/harmonicsFunctions-FoyoVJjx.esm.js +0 -35
- package/dist/chunks/harmonicsFunctions-FoyoVJjx.esm.js.map +0 -1
- package/dist/chunks/harmonicsFunctions-LPFcAay5.esm.min.js +0 -2
- package/dist/chunks/harmonicsFunctions-LPFcAay5.esm.min.js.map +0 -1
- package/dist/chunks/hdrTextureLoader-BF58jeD4.esm.min.js +0 -2
- package/dist/chunks/hdrTextureLoader-BF58jeD4.esm.min.js.map +0 -1
- package/dist/chunks/hdrTextureLoader-CnAlxQ46.esm.js +0 -252
- package/dist/chunks/hdrTextureLoader-CnAlxQ46.esm.js.map +0 -1
- package/dist/chunks/helperFunctions-BHi3ZDnH.esm.js +0 -80
- package/dist/chunks/helperFunctions-BHi3ZDnH.esm.js.map +0 -1
- package/dist/chunks/helperFunctions-D9QX7d8q.esm.min.js +0 -2
- package/dist/chunks/helperFunctions-D9QX7d8q.esm.min.js.map +0 -1
- package/dist/chunks/helperFunctions-bapbKVVS.esm.js +0 -108
- package/dist/chunks/helperFunctions-bapbKVVS.esm.js.map +0 -1
- package/dist/chunks/helperFunctions-hh2B4qDl.esm.min.js +0 -2
- package/dist/chunks/helperFunctions-hh2B4qDl.esm.min.js.map +0 -1
- package/dist/chunks/index-4QQveomY.esm.js +0 -79813
- package/dist/chunks/index-4QQveomY.esm.js.map +0 -1
- package/dist/chunks/index-D5606AHu.esm.min.js +0 -57
- package/dist/chunks/index-D5606AHu.esm.min.js.map +0 -1
- package/dist/chunks/ktxTextureLoader-CxAMFjnh.esm.js +0 -814
- package/dist/chunks/ktxTextureLoader-CxAMFjnh.esm.js.map +0 -1
- package/dist/chunks/ktxTextureLoader-s0dUXnt8.esm.min.js +0 -2
- package/dist/chunks/ktxTextureLoader-s0dUXnt8.esm.min.js.map +0 -1
- package/dist/chunks/logDepthDeclaration-BcnqcXJe.esm.js +0 -35
- package/dist/chunks/logDepthDeclaration-BcnqcXJe.esm.js.map +0 -1
- package/dist/chunks/logDepthDeclaration-CvXtMvcM.esm.js +0 -42
- package/dist/chunks/logDepthDeclaration-CvXtMvcM.esm.js.map +0 -1
- package/dist/chunks/logDepthDeclaration-cPWsL3PG.esm.min.js +0 -2
- package/dist/chunks/logDepthDeclaration-cPWsL3PG.esm.min.js.map +0 -1
- package/dist/chunks/logDepthDeclaration-unowpoZK.esm.min.js +0 -2
- package/dist/chunks/logDepthDeclaration-unowpoZK.esm.min.js.map +0 -1
- package/dist/chunks/logDepthVertex-BrvDYbCP.esm.min.js +0 -2
- package/dist/chunks/logDepthVertex-BrvDYbCP.esm.min.js.map +0 -1
- package/dist/chunks/logDepthVertex-CUUB4BTI.esm.js +0 -605
- package/dist/chunks/logDepthVertex-CUUB4BTI.esm.js.map +0 -1
- package/dist/chunks/logDepthVertex-DaNvEIGn.esm.min.js +0 -2
- package/dist/chunks/logDepthVertex-DaNvEIGn.esm.min.js.map +0 -1
- package/dist/chunks/logDepthVertex-foN2jGvJ.esm.js +0 -77
- package/dist/chunks/logDepthVertex-foN2jGvJ.esm.js.map +0 -1
- package/dist/chunks/mainUVVaryingDeclaration-DHTqc_aH.esm.js +0 -11
- package/dist/chunks/mainUVVaryingDeclaration-DHTqc_aH.esm.js.map +0 -1
- package/dist/chunks/mainUVVaryingDeclaration-PFUWfv7o.esm.min.js +0 -2
- package/dist/chunks/mainUVVaryingDeclaration-PFUWfv7o.esm.min.js.map +0 -1
- package/dist/chunks/objFileLoader-B-uLP26U.esm.min.js +0 -2
- package/dist/chunks/objFileLoader-B-uLP26U.esm.min.js.map +0 -1
- package/dist/chunks/objFileLoader-Bl2Pzv0o.esm.js +0 -1280
- package/dist/chunks/objFileLoader-Bl2Pzv0o.esm.js.map +0 -1
- package/dist/chunks/oitFragment-CZShr04f.esm.min.js +0 -2
- package/dist/chunks/oitFragment-CZShr04f.esm.min.js.map +0 -1
- package/dist/chunks/oitFragment-D3c3Lp9a.esm.js +0 -1210
- package/dist/chunks/oitFragment-D3c3Lp9a.esm.js.map +0 -1
- package/dist/chunks/oitFragment-D6uOdl_0.esm.min.js +0 -2
- package/dist/chunks/oitFragment-D6uOdl_0.esm.min.js.map +0 -1
- package/dist/chunks/oitFragment-E27tpA6b.esm.js +0 -1166
- package/dist/chunks/oitFragment-E27tpA6b.esm.js.map +0 -1
- package/dist/chunks/pass.fragment-CGX8gTNY.esm.js +0 -15
- package/dist/chunks/pass.fragment-CGX8gTNY.esm.js.map +0 -1
- package/dist/chunks/pass.fragment-DKqeYsmS.esm.min.js +0 -2
- package/dist/chunks/pass.fragment-DKqeYsmS.esm.min.js.map +0 -1
- package/dist/chunks/pbr.fragment-5XRl6pKm.esm.min.js +0 -2
- package/dist/chunks/pbr.fragment-5XRl6pKm.esm.min.js.map +0 -1
- package/dist/chunks/pbr.fragment-Cfsv9tFG.esm.js +0 -3172
- package/dist/chunks/pbr.fragment-Cfsv9tFG.esm.js.map +0 -1
- package/dist/chunks/pbr.fragment-DGBodARG.esm.min.js +0 -2
- package/dist/chunks/pbr.fragment-DGBodARG.esm.min.js.map +0 -1
- package/dist/chunks/pbr.fragment-IMDXwBnG.esm.js +0 -3228
- package/dist/chunks/pbr.fragment-IMDXwBnG.esm.js.map +0 -1
- package/dist/chunks/pbr.vertex-B3JKAxfl.esm.min.js +0 -2
- package/dist/chunks/pbr.vertex-B3JKAxfl.esm.min.js.map +0 -1
- package/dist/chunks/pbr.vertex-CZIasM0q.esm.js +0 -335
- package/dist/chunks/pbr.vertex-CZIasM0q.esm.js.map +0 -1
- package/dist/chunks/pbr.vertex-CjU0MUM9.esm.min.js +0 -2
- package/dist/chunks/pbr.vertex-CjU0MUM9.esm.min.js.map +0 -1
- package/dist/chunks/pbr.vertex-h6JyEpaS.esm.js +0 -208
- package/dist/chunks/pbr.vertex-h6JyEpaS.esm.js.map +0 -1
- package/dist/chunks/postprocess.vertex-B0ei94Dw.esm.min.js +0 -2
- package/dist/chunks/postprocess.vertex-B0ei94Dw.esm.min.js.map +0 -1
- package/dist/chunks/postprocess.vertex-r5NscKzh.esm.js +0 -20
- package/dist/chunks/postprocess.vertex-r5NscKzh.esm.js.map +0 -1
- package/dist/chunks/rawTexture-Bmw0auoS.esm.min.js +0 -2
- package/dist/chunks/rawTexture-Bmw0auoS.esm.min.js.map +0 -1
- package/dist/chunks/rawTexture-CpYqstLv.esm.js +0 -562
- package/dist/chunks/rawTexture-CpYqstLv.esm.js.map +0 -1
- package/dist/chunks/rgbdDecode.fragment-BBOPxYJO.esm.min.js +0 -2
- package/dist/chunks/rgbdDecode.fragment-BBOPxYJO.esm.min.js.map +0 -1
- package/dist/chunks/rgbdDecode.fragment-C1mQs3ed.esm.js +0 -17
- package/dist/chunks/rgbdDecode.fragment-C1mQs3ed.esm.js.map +0 -1
- package/dist/chunks/rgbdDecode.fragment-CaqsSeIW.esm.min.js +0 -2
- package/dist/chunks/rgbdDecode.fragment-CaqsSeIW.esm.min.js.map +0 -1
- package/dist/chunks/rgbdDecode.fragment-MPQ7knvL.esm.js +0 -17
- package/dist/chunks/rgbdDecode.fragment-MPQ7knvL.esm.js.map +0 -1
- package/dist/chunks/rgbdEncode.fragment-6EdQiINi.esm.min.js +0 -2
- package/dist/chunks/rgbdEncode.fragment-6EdQiINi.esm.min.js.map +0 -1
- package/dist/chunks/rgbdEncode.fragment-C-msuzIz.esm.min.js +0 -2
- package/dist/chunks/rgbdEncode.fragment-C-msuzIz.esm.min.js.map +0 -1
- package/dist/chunks/rgbdEncode.fragment-Wd9cTDxy.esm.js +0 -17
- package/dist/chunks/rgbdEncode.fragment-Wd9cTDxy.esm.js.map +0 -1
- package/dist/chunks/rgbdEncode.fragment-X-RqQAkc.esm.js +0 -17
- package/dist/chunks/rgbdEncode.fragment-X-RqQAkc.esm.js.map +0 -1
- package/dist/chunks/splatFileLoader-DQ9jOQE9.esm.min.js +0 -2
- package/dist/chunks/splatFileLoader-DQ9jOQE9.esm.min.js.map +0 -1
- package/dist/chunks/splatFileLoader-hdSfXVdE.esm.js +0 -3154
- package/dist/chunks/splatFileLoader-hdSfXVdE.esm.js.map +0 -1
- package/dist/chunks/standardMaterial-Cq-J9fif.esm.min.js +0 -2
- package/dist/chunks/standardMaterial-Cq-J9fif.esm.min.js.map +0 -1
- package/dist/chunks/standardMaterial-GIGkmsd2.esm.js +0 -1809
- package/dist/chunks/standardMaterial-GIGkmsd2.esm.js.map +0 -1
- package/dist/chunks/stlFileLoader--AN8pgtb.esm.min.js +0 -2
- package/dist/chunks/stlFileLoader--AN8pgtb.esm.min.js.map +0 -1
- package/dist/chunks/stlFileLoader-BjJ0Yz5v.esm.js +0 -237
- package/dist/chunks/stlFileLoader-BjJ0Yz5v.esm.js.map +0 -1
- package/dist/chunks/tgaTextureLoader-B3gQ-Dwh.esm.min.js +0 -2
- package/dist/chunks/tgaTextureLoader-B3gQ-Dwh.esm.min.js.map +0 -1
- package/dist/chunks/tgaTextureLoader-BmEYbSF8.esm.js +0 -349
- package/dist/chunks/tgaTextureLoader-BmEYbSF8.esm.js.map +0 -1
- package/dist/chunks/thinInstanceMesh-DLE1cPa9.esm.js +0 -314
- package/dist/chunks/thinInstanceMesh-DLE1cPa9.esm.js.map +0 -1
- package/dist/chunks/thinInstanceMesh-DgJgeFTD.esm.min.js +0 -2
- package/dist/chunks/thinInstanceMesh-DgJgeFTD.esm.min.js.map +0 -1
- package/dist/chunks/vertexColorMixing-Dn7oXj03.esm.js +0 -528
- package/dist/chunks/vertexColorMixing-Dn7oXj03.esm.js.map +0 -1
- package/dist/chunks/vertexColorMixing-cD_XcjBD.esm.min.js +0 -2
- package/dist/chunks/vertexColorMixing-cD_XcjBD.esm.min.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 -275
- package/lib/index.js +0 -942
- package/lib/index.js.map +0 -1
|
@@ -1,305 +0,0 @@
|
|
|
1
|
-
import { A as AbstractEngine, az as Observable, I as IsWindowObjectExist, L as Logger } from './index-4QQveomY.esm.js';
|
|
2
|
-
|
|
3
|
-
// Sets the default audio engine to Babylon.js
|
|
4
|
-
AbstractEngine.AudioEngineFactory = (hostElement, audioContext, audioDestination) => {
|
|
5
|
-
return new AudioEngine(hostElement, audioContext, audioDestination);
|
|
6
|
-
};
|
|
7
|
-
/**
|
|
8
|
-
* This represents the default audio engine used in babylon.
|
|
9
|
-
* It is responsible to play, synchronize and analyse sounds throughout the application.
|
|
10
|
-
* @see https://doc.babylonjs.com/features/featuresDeepDive/audio/playingSoundsMusic
|
|
11
|
-
*/
|
|
12
|
-
class AudioEngine {
|
|
13
|
-
/**
|
|
14
|
-
* Gets the current AudioContext if available.
|
|
15
|
-
*/
|
|
16
|
-
get audioContext() {
|
|
17
|
-
if (!this._audioContextInitialized) {
|
|
18
|
-
this._initializeAudioContext();
|
|
19
|
-
}
|
|
20
|
-
return this._audioContext;
|
|
21
|
-
}
|
|
22
|
-
/**
|
|
23
|
-
* Instantiates a new audio engine.
|
|
24
|
-
*
|
|
25
|
-
* There should be only one per page as some browsers restrict the number
|
|
26
|
-
* of audio contexts you can create.
|
|
27
|
-
* @param hostElement defines the host element where to display the mute icon if necessary
|
|
28
|
-
* @param audioContext defines the audio context to be used by the audio engine
|
|
29
|
-
* @param audioDestination defines the audio destination node to be used by audio engine
|
|
30
|
-
*/
|
|
31
|
-
constructor(hostElement = null, audioContext = null, audioDestination = null) {
|
|
32
|
-
this._audioContext = null;
|
|
33
|
-
this._audioContextInitialized = false;
|
|
34
|
-
this._muteButton = null;
|
|
35
|
-
this._audioDestination = null;
|
|
36
|
-
/**
|
|
37
|
-
* Gets whether the current host supports Web Audio and thus could create AudioContexts.
|
|
38
|
-
*/
|
|
39
|
-
this.canUseWebAudio = false;
|
|
40
|
-
/**
|
|
41
|
-
* Defines if Babylon should emit a warning if WebAudio is not supported.
|
|
42
|
-
* @ignoreNaming
|
|
43
|
-
*/
|
|
44
|
-
// eslint-disable-next-line @typescript-eslint/naming-convention
|
|
45
|
-
this.WarnedWebAudioUnsupported = false;
|
|
46
|
-
/**
|
|
47
|
-
* Gets whether or not mp3 are supported by your browser.
|
|
48
|
-
*/
|
|
49
|
-
this.isMP3supported = false;
|
|
50
|
-
/**
|
|
51
|
-
* Gets whether or not ogg are supported by your browser.
|
|
52
|
-
*/
|
|
53
|
-
this.isOGGsupported = false;
|
|
54
|
-
/**
|
|
55
|
-
* Gets whether audio has been unlocked on the device.
|
|
56
|
-
* Some Browsers have strong restrictions about Audio and won't autoplay unless
|
|
57
|
-
* a user interaction has happened.
|
|
58
|
-
*/
|
|
59
|
-
this.unlocked = false;
|
|
60
|
-
/**
|
|
61
|
-
* Defines if the audio engine relies on a custom unlocked button.
|
|
62
|
-
* In this case, the embedded button will not be displayed.
|
|
63
|
-
*/
|
|
64
|
-
this.useCustomUnlockedButton = false;
|
|
65
|
-
/**
|
|
66
|
-
* Event raised when audio has been unlocked on the browser.
|
|
67
|
-
*/
|
|
68
|
-
this.onAudioUnlockedObservable = new Observable();
|
|
69
|
-
/**
|
|
70
|
-
* Event raised when audio has been locked on the browser.
|
|
71
|
-
*/
|
|
72
|
-
this.onAudioLockedObservable = new Observable();
|
|
73
|
-
this._tryToRun = false;
|
|
74
|
-
this._onResize = () => {
|
|
75
|
-
this._moveButtonToTopLeft();
|
|
76
|
-
};
|
|
77
|
-
if (!IsWindowObjectExist()) {
|
|
78
|
-
return;
|
|
79
|
-
}
|
|
80
|
-
if (typeof window.AudioContext !== "undefined") {
|
|
81
|
-
this.canUseWebAudio = true;
|
|
82
|
-
}
|
|
83
|
-
const audioElem = document.createElement("audio");
|
|
84
|
-
this._hostElement = hostElement;
|
|
85
|
-
this._audioContext = audioContext;
|
|
86
|
-
this._audioDestination = audioDestination;
|
|
87
|
-
try {
|
|
88
|
-
if (audioElem &&
|
|
89
|
-
!!audioElem.canPlayType &&
|
|
90
|
-
(audioElem.canPlayType('audio/mpeg; codecs="mp3"').replace(/^no$/, "") || audioElem.canPlayType("audio/mp3").replace(/^no$/, ""))) {
|
|
91
|
-
this.isMP3supported = true;
|
|
92
|
-
}
|
|
93
|
-
}
|
|
94
|
-
catch (e) {
|
|
95
|
-
// protect error during capability check.
|
|
96
|
-
}
|
|
97
|
-
try {
|
|
98
|
-
if (audioElem && !!audioElem.canPlayType && audioElem.canPlayType('audio/ogg; codecs="vorbis"').replace(/^no$/, "")) {
|
|
99
|
-
this.isOGGsupported = true;
|
|
100
|
-
}
|
|
101
|
-
}
|
|
102
|
-
catch (e) {
|
|
103
|
-
// protect error during capability check.
|
|
104
|
-
}
|
|
105
|
-
}
|
|
106
|
-
/**
|
|
107
|
-
* Flags the audio engine in Locked state.
|
|
108
|
-
* This happens due to new browser policies preventing audio to autoplay.
|
|
109
|
-
*/
|
|
110
|
-
lock() {
|
|
111
|
-
this._triggerSuspendedState();
|
|
112
|
-
}
|
|
113
|
-
/**
|
|
114
|
-
* Unlocks the audio engine once a user action has been done on the dom.
|
|
115
|
-
* This is helpful to resume play once browser policies have been satisfied.
|
|
116
|
-
*/
|
|
117
|
-
unlock() {
|
|
118
|
-
if (this._audioContext?.state === "running") {
|
|
119
|
-
this._hideMuteButton();
|
|
120
|
-
if (!this.unlocked) {
|
|
121
|
-
// Notify users that the audio stack is unlocked/unmuted
|
|
122
|
-
this.unlocked = true;
|
|
123
|
-
this.onAudioUnlockedObservable.notifyObservers(this);
|
|
124
|
-
}
|
|
125
|
-
return;
|
|
126
|
-
}
|
|
127
|
-
// On iOS, if the audio context resume request was sent from an event other than a `click` event, then
|
|
128
|
-
// the resume promise will never resolve and the only way to get the audio context unstuck is to
|
|
129
|
-
// suspend it and make another resume request.
|
|
130
|
-
if (this._tryToRun) {
|
|
131
|
-
this._audioContext?.suspend().then(() => {
|
|
132
|
-
this._tryToRun = false;
|
|
133
|
-
this._triggerRunningState();
|
|
134
|
-
});
|
|
135
|
-
}
|
|
136
|
-
else {
|
|
137
|
-
this._triggerRunningState();
|
|
138
|
-
}
|
|
139
|
-
}
|
|
140
|
-
/** @internal */
|
|
141
|
-
_resumeAudioContextOnStateChange() {
|
|
142
|
-
this._audioContext?.addEventListener("statechange", () => {
|
|
143
|
-
if (this.unlocked && this._audioContext?.state !== "running") {
|
|
144
|
-
this._resumeAudioContext();
|
|
145
|
-
}
|
|
146
|
-
}, {
|
|
147
|
-
once: true,
|
|
148
|
-
passive: true,
|
|
149
|
-
signal: AbortSignal.timeout(3000),
|
|
150
|
-
});
|
|
151
|
-
}
|
|
152
|
-
_resumeAudioContext() {
|
|
153
|
-
if (this._audioContext?.resume) {
|
|
154
|
-
return this._audioContext.resume();
|
|
155
|
-
}
|
|
156
|
-
return Promise.resolve();
|
|
157
|
-
}
|
|
158
|
-
_initializeAudioContext() {
|
|
159
|
-
try {
|
|
160
|
-
if (this.canUseWebAudio) {
|
|
161
|
-
if (!this._audioContext) {
|
|
162
|
-
this._audioContext = new AudioContext();
|
|
163
|
-
}
|
|
164
|
-
// create a global volume gain node
|
|
165
|
-
this.masterGain = this._audioContext.createGain();
|
|
166
|
-
this.masterGain.gain.value = 1;
|
|
167
|
-
if (!this._audioDestination) {
|
|
168
|
-
this._audioDestination = this._audioContext.destination;
|
|
169
|
-
}
|
|
170
|
-
this.masterGain.connect(this._audioDestination);
|
|
171
|
-
this._audioContextInitialized = true;
|
|
172
|
-
if (this._audioContext.state === "running") {
|
|
173
|
-
// Do not wait for the promise to unlock.
|
|
174
|
-
this._triggerRunningState();
|
|
175
|
-
}
|
|
176
|
-
}
|
|
177
|
-
}
|
|
178
|
-
catch (e) {
|
|
179
|
-
this.canUseWebAudio = false;
|
|
180
|
-
Logger.Error("Web Audio: " + e.message);
|
|
181
|
-
}
|
|
182
|
-
}
|
|
183
|
-
_triggerRunningState() {
|
|
184
|
-
if (this._tryToRun) {
|
|
185
|
-
return;
|
|
186
|
-
}
|
|
187
|
-
this._tryToRun = true;
|
|
188
|
-
this._resumeAudioContext()
|
|
189
|
-
.then(() => {
|
|
190
|
-
this._tryToRun = false;
|
|
191
|
-
if (this._muteButton) {
|
|
192
|
-
this._hideMuteButton();
|
|
193
|
-
}
|
|
194
|
-
// Notify users that the audio stack is unlocked/unmuted
|
|
195
|
-
this.unlocked = true;
|
|
196
|
-
this.onAudioUnlockedObservable.notifyObservers(this);
|
|
197
|
-
})
|
|
198
|
-
.catch(() => {
|
|
199
|
-
this._tryToRun = false;
|
|
200
|
-
this.unlocked = false;
|
|
201
|
-
});
|
|
202
|
-
}
|
|
203
|
-
_triggerSuspendedState() {
|
|
204
|
-
this.unlocked = false;
|
|
205
|
-
this.onAudioLockedObservable.notifyObservers(this);
|
|
206
|
-
this._displayMuteButton();
|
|
207
|
-
}
|
|
208
|
-
_displayMuteButton() {
|
|
209
|
-
if (this.useCustomUnlockedButton || this._muteButton) {
|
|
210
|
-
return;
|
|
211
|
-
}
|
|
212
|
-
this._muteButton = document.createElement("BUTTON");
|
|
213
|
-
this._muteButton.className = "babylonUnmuteIcon";
|
|
214
|
-
this._muteButton.id = "babylonUnmuteIconBtn";
|
|
215
|
-
this._muteButton.title = "Unmute";
|
|
216
|
-
const imageUrl = !window.SVGSVGElement
|
|
217
|
-
? "https://cdn.babylonjs.com/Assets/audio.png"
|
|
218
|
-
: "data:image/svg+xml;charset=UTF-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2239%22%20height%3D%2232%22%20viewBox%3D%220%200%2039%2032%22%3E%3Cpath%20fill%3D%22white%22%20d%3D%22M9.625%2018.938l-0.031%200.016h-4.953q-0.016%200-0.031-0.016v-12.453q0-0.016%200.031-0.016h4.953q0.031%200%200.031%200.016v12.453zM12.125%207.688l8.719-8.703v27.453l-8.719-8.719-0.016-0.047v-9.938zM23.359%207.875l1.406-1.406%204.219%204.203%204.203-4.203%201.422%201.406-4.219%204.219%204.219%204.203-1.484%201.359-4.141-4.156-4.219%204.219-1.406-1.422%204.219-4.203z%22%3E%3C%2Fpath%3E%3C%2Fsvg%3E";
|
|
219
|
-
const css = ".babylonUnmuteIcon { position: absolute; left: 20px; top: 20px; height: 40px; width: 60px; background-color: rgba(51,51,51,0.7); background-image: url(" +
|
|
220
|
-
imageUrl +
|
|
221
|
-
"); background-size: 80%; background-repeat:no-repeat; background-position: center; background-position-y: 4px; border: none; outline: none; transition: transform 0.125s ease-out; cursor: pointer; z-index: 9999; } .babylonUnmuteIcon:hover { transform: scale(1.05) } .babylonUnmuteIcon:active { background-color: rgba(51,51,51,1) }";
|
|
222
|
-
const style = document.createElement("style");
|
|
223
|
-
style.appendChild(document.createTextNode(css));
|
|
224
|
-
document.getElementsByTagName("head")[0].appendChild(style);
|
|
225
|
-
document.body.appendChild(this._muteButton);
|
|
226
|
-
this._moveButtonToTopLeft();
|
|
227
|
-
this._muteButton.addEventListener("touchend", () => {
|
|
228
|
-
this._triggerRunningState();
|
|
229
|
-
}, true);
|
|
230
|
-
this._muteButton.addEventListener("click", () => {
|
|
231
|
-
this.unlock();
|
|
232
|
-
}, true);
|
|
233
|
-
window.addEventListener("resize", this._onResize);
|
|
234
|
-
}
|
|
235
|
-
_moveButtonToTopLeft() {
|
|
236
|
-
if (this._hostElement && this._muteButton) {
|
|
237
|
-
this._muteButton.style.top = this._hostElement.offsetTop + 20 + "px";
|
|
238
|
-
this._muteButton.style.left = this._hostElement.offsetLeft + 20 + "px";
|
|
239
|
-
}
|
|
240
|
-
}
|
|
241
|
-
_hideMuteButton() {
|
|
242
|
-
if (this._muteButton) {
|
|
243
|
-
document.body.removeChild(this._muteButton);
|
|
244
|
-
this._muteButton = null;
|
|
245
|
-
}
|
|
246
|
-
}
|
|
247
|
-
/**
|
|
248
|
-
* Destroy and release the resources associated with the audio context.
|
|
249
|
-
*/
|
|
250
|
-
dispose() {
|
|
251
|
-
if (this.canUseWebAudio && this._audioContextInitialized) {
|
|
252
|
-
if (this._connectedAnalyser && this._audioContext) {
|
|
253
|
-
this._connectedAnalyser.stopDebugCanvas();
|
|
254
|
-
this._connectedAnalyser.dispose();
|
|
255
|
-
this.masterGain.disconnect();
|
|
256
|
-
this.masterGain.connect(this._audioContext.destination);
|
|
257
|
-
this._connectedAnalyser = null;
|
|
258
|
-
}
|
|
259
|
-
this.masterGain.gain.value = 1;
|
|
260
|
-
}
|
|
261
|
-
this.WarnedWebAudioUnsupported = false;
|
|
262
|
-
this._hideMuteButton();
|
|
263
|
-
window.removeEventListener("resize", this._onResize);
|
|
264
|
-
this.onAudioUnlockedObservable.clear();
|
|
265
|
-
this.onAudioLockedObservable.clear();
|
|
266
|
-
}
|
|
267
|
-
/**
|
|
268
|
-
* Gets the global volume sets on the master gain.
|
|
269
|
-
* @returns the global volume if set or -1 otherwise
|
|
270
|
-
*/
|
|
271
|
-
getGlobalVolume() {
|
|
272
|
-
if (this.canUseWebAudio && this._audioContextInitialized) {
|
|
273
|
-
return this.masterGain.gain.value;
|
|
274
|
-
}
|
|
275
|
-
else {
|
|
276
|
-
return -1;
|
|
277
|
-
}
|
|
278
|
-
}
|
|
279
|
-
/**
|
|
280
|
-
* Sets the global volume of your experience (sets on the master gain).
|
|
281
|
-
* @param newVolume Defines the new global volume of the application
|
|
282
|
-
*/
|
|
283
|
-
setGlobalVolume(newVolume) {
|
|
284
|
-
if (this.canUseWebAudio && this._audioContextInitialized) {
|
|
285
|
-
this.masterGain.gain.value = newVolume;
|
|
286
|
-
}
|
|
287
|
-
}
|
|
288
|
-
/**
|
|
289
|
-
* Connect the audio engine to an audio analyser allowing some amazing
|
|
290
|
-
* synchronization between the sounds/music and your visualization (VuMeter for instance).
|
|
291
|
-
* @see https://doc.babylonjs.com/features/featuresDeepDive/audio/playingSoundsMusic#using-the-analyser
|
|
292
|
-
* @param analyser The analyser to connect to the engine
|
|
293
|
-
*/
|
|
294
|
-
connectToAnalyser(analyser) {
|
|
295
|
-
if (this._connectedAnalyser) {
|
|
296
|
-
this._connectedAnalyser.stopDebugCanvas();
|
|
297
|
-
}
|
|
298
|
-
if (this.canUseWebAudio && this._audioContextInitialized && this._audioContext) {
|
|
299
|
-
this._connectedAnalyser = analyser;
|
|
300
|
-
this.masterGain.disconnect();
|
|
301
|
-
this._connectedAnalyser.connectAudioNodes(this.masterGain, this._audioContext.destination);
|
|
302
|
-
}
|
|
303
|
-
}
|
|
304
|
-
}
|
|
305
|
-
//# sourceMappingURL=audioEngine-CICNJdfP.esm.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"audioEngine-CICNJdfP.esm.js","sources":["../../../../../dev/core/dist/Audio/audioEngine.js"],"sourcesContent":["import { Observable } from \"../Misc/observable\";\nimport { Logger } from \"../Misc/logger\";\nimport { AbstractEngine } from \"../Engines/abstractEngine\";\nimport { IsWindowObjectExist } from \"../Misc/domManagement\";\n// Sets the default audio engine to Babylon.js\nAbstractEngine.AudioEngineFactory = (hostElement, audioContext, audioDestination) => {\n return new AudioEngine(hostElement, audioContext, audioDestination);\n};\n/**\n * This represents the default audio engine used in babylon.\n * It is responsible to play, synchronize and analyse sounds throughout the application.\n * @see https://doc.babylonjs.com/features/featuresDeepDive/audio/playingSoundsMusic\n */\nexport class AudioEngine {\n /**\n * Gets the current AudioContext if available.\n */\n get audioContext() {\n if (!this._audioContextInitialized) {\n this._initializeAudioContext();\n }\n return this._audioContext;\n }\n /**\n * Instantiates a new audio engine.\n *\n * There should be only one per page as some browsers restrict the number\n * of audio contexts you can create.\n * @param hostElement defines the host element where to display the mute icon if necessary\n * @param audioContext defines the audio context to be used by the audio engine\n * @param audioDestination defines the audio destination node to be used by audio engine\n */\n constructor(hostElement = null, audioContext = null, audioDestination = null) {\n this._audioContext = null;\n this._audioContextInitialized = false;\n this._muteButton = null;\n this._audioDestination = null;\n /**\n * Gets whether the current host supports Web Audio and thus could create AudioContexts.\n */\n this.canUseWebAudio = false;\n /**\n * Defines if Babylon should emit a warning if WebAudio is not supported.\n * @ignoreNaming\n */\n // eslint-disable-next-line @typescript-eslint/naming-convention\n this.WarnedWebAudioUnsupported = false;\n /**\n * Gets whether or not mp3 are supported by your browser.\n */\n this.isMP3supported = false;\n /**\n * Gets whether or not ogg are supported by your browser.\n */\n this.isOGGsupported = false;\n /**\n * Gets whether audio has been unlocked on the device.\n * Some Browsers have strong restrictions about Audio and won't autoplay unless\n * a user interaction has happened.\n */\n this.unlocked = false;\n /**\n * Defines if the audio engine relies on a custom unlocked button.\n * In this case, the embedded button will not be displayed.\n */\n this.useCustomUnlockedButton = false;\n /**\n * Event raised when audio has been unlocked on the browser.\n */\n this.onAudioUnlockedObservable = new Observable();\n /**\n * Event raised when audio has been locked on the browser.\n */\n this.onAudioLockedObservable = new Observable();\n this._tryToRun = false;\n this._onResize = () => {\n this._moveButtonToTopLeft();\n };\n if (!IsWindowObjectExist()) {\n return;\n }\n if (typeof window.AudioContext !== \"undefined\") {\n this.canUseWebAudio = true;\n }\n const audioElem = document.createElement(\"audio\");\n this._hostElement = hostElement;\n this._audioContext = audioContext;\n this._audioDestination = audioDestination;\n try {\n if (audioElem &&\n !!audioElem.canPlayType &&\n (audioElem.canPlayType('audio/mpeg; codecs=\"mp3\"').replace(/^no$/, \"\") || audioElem.canPlayType(\"audio/mp3\").replace(/^no$/, \"\"))) {\n this.isMP3supported = true;\n }\n }\n catch (e) {\n // protect error during capability check.\n }\n try {\n if (audioElem && !!audioElem.canPlayType && audioElem.canPlayType('audio/ogg; codecs=\"vorbis\"').replace(/^no$/, \"\")) {\n this.isOGGsupported = true;\n }\n }\n catch (e) {\n // protect error during capability check.\n }\n }\n /**\n * Flags the audio engine in Locked state.\n * This happens due to new browser policies preventing audio to autoplay.\n */\n lock() {\n this._triggerSuspendedState();\n }\n /**\n * Unlocks the audio engine once a user action has been done on the dom.\n * This is helpful to resume play once browser policies have been satisfied.\n */\n unlock() {\n if (this._audioContext?.state === \"running\") {\n this._hideMuteButton();\n if (!this.unlocked) {\n // Notify users that the audio stack is unlocked/unmuted\n this.unlocked = true;\n this.onAudioUnlockedObservable.notifyObservers(this);\n }\n return;\n }\n // On iOS, if the audio context resume request was sent from an event other than a `click` event, then\n // the resume promise will never resolve and the only way to get the audio context unstuck is to\n // suspend it and make another resume request.\n if (this._tryToRun) {\n this._audioContext?.suspend().then(() => {\n this._tryToRun = false;\n this._triggerRunningState();\n });\n }\n else {\n this._triggerRunningState();\n }\n }\n /** @internal */\n _resumeAudioContextOnStateChange() {\n this._audioContext?.addEventListener(\"statechange\", () => {\n if (this.unlocked && this._audioContext?.state !== \"running\") {\n this._resumeAudioContext();\n }\n }, {\n once: true,\n passive: true,\n signal: AbortSignal.timeout(3000),\n });\n }\n _resumeAudioContext() {\n if (this._audioContext?.resume) {\n return this._audioContext.resume();\n }\n return Promise.resolve();\n }\n _initializeAudioContext() {\n try {\n if (this.canUseWebAudio) {\n if (!this._audioContext) {\n this._audioContext = new AudioContext();\n }\n // create a global volume gain node\n this.masterGain = this._audioContext.createGain();\n this.masterGain.gain.value = 1;\n if (!this._audioDestination) {\n this._audioDestination = this._audioContext.destination;\n }\n this.masterGain.connect(this._audioDestination);\n this._audioContextInitialized = true;\n if (this._audioContext.state === \"running\") {\n // Do not wait for the promise to unlock.\n this._triggerRunningState();\n }\n }\n }\n catch (e) {\n this.canUseWebAudio = false;\n Logger.Error(\"Web Audio: \" + e.message);\n }\n }\n _triggerRunningState() {\n if (this._tryToRun) {\n return;\n }\n this._tryToRun = true;\n this._resumeAudioContext()\n .then(() => {\n this._tryToRun = false;\n if (this._muteButton) {\n this._hideMuteButton();\n }\n // Notify users that the audio stack is unlocked/unmuted\n this.unlocked = true;\n this.onAudioUnlockedObservable.notifyObservers(this);\n })\n .catch(() => {\n this._tryToRun = false;\n this.unlocked = false;\n });\n }\n _triggerSuspendedState() {\n this.unlocked = false;\n this.onAudioLockedObservable.notifyObservers(this);\n this._displayMuteButton();\n }\n _displayMuteButton() {\n if (this.useCustomUnlockedButton || this._muteButton) {\n return;\n }\n this._muteButton = document.createElement(\"BUTTON\");\n this._muteButton.className = \"babylonUnmuteIcon\";\n this._muteButton.id = \"babylonUnmuteIconBtn\";\n this._muteButton.title = \"Unmute\";\n const imageUrl = !window.SVGSVGElement\n ? \"https://cdn.babylonjs.com/Assets/audio.png\"\n : \"data:image/svg+xml;charset=UTF-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2239%22%20height%3D%2232%22%20viewBox%3D%220%200%2039%2032%22%3E%3Cpath%20fill%3D%22white%22%20d%3D%22M9.625%2018.938l-0.031%200.016h-4.953q-0.016%200-0.031-0.016v-12.453q0-0.016%200.031-0.016h4.953q0.031%200%200.031%200.016v12.453zM12.125%207.688l8.719-8.703v27.453l-8.719-8.719-0.016-0.047v-9.938zM23.359%207.875l1.406-1.406%204.219%204.203%204.203-4.203%201.422%201.406-4.219%204.219%204.219%204.203-1.484%201.359-4.141-4.156-4.219%204.219-1.406-1.422%204.219-4.203z%22%3E%3C%2Fpath%3E%3C%2Fsvg%3E\";\n const css = \".babylonUnmuteIcon { position: absolute; left: 20px; top: 20px; height: 40px; width: 60px; background-color: rgba(51,51,51,0.7); background-image: url(\" +\n imageUrl +\n \"); background-size: 80%; background-repeat:no-repeat; background-position: center; background-position-y: 4px; border: none; outline: none; transition: transform 0.125s ease-out; cursor: pointer; z-index: 9999; } .babylonUnmuteIcon:hover { transform: scale(1.05) } .babylonUnmuteIcon:active { background-color: rgba(51,51,51,1) }\";\n const style = document.createElement(\"style\");\n style.appendChild(document.createTextNode(css));\n document.getElementsByTagName(\"head\")[0].appendChild(style);\n document.body.appendChild(this._muteButton);\n this._moveButtonToTopLeft();\n this._muteButton.addEventListener(\"touchend\", () => {\n this._triggerRunningState();\n }, true);\n this._muteButton.addEventListener(\"click\", () => {\n this.unlock();\n }, true);\n window.addEventListener(\"resize\", this._onResize);\n }\n _moveButtonToTopLeft() {\n if (this._hostElement && this._muteButton) {\n this._muteButton.style.top = this._hostElement.offsetTop + 20 + \"px\";\n this._muteButton.style.left = this._hostElement.offsetLeft + 20 + \"px\";\n }\n }\n _hideMuteButton() {\n if (this._muteButton) {\n document.body.removeChild(this._muteButton);\n this._muteButton = null;\n }\n }\n /**\n * Destroy and release the resources associated with the audio context.\n */\n dispose() {\n if (this.canUseWebAudio && this._audioContextInitialized) {\n if (this._connectedAnalyser && this._audioContext) {\n this._connectedAnalyser.stopDebugCanvas();\n this._connectedAnalyser.dispose();\n this.masterGain.disconnect();\n this.masterGain.connect(this._audioContext.destination);\n this._connectedAnalyser = null;\n }\n this.masterGain.gain.value = 1;\n }\n this.WarnedWebAudioUnsupported = false;\n this._hideMuteButton();\n window.removeEventListener(\"resize\", this._onResize);\n this.onAudioUnlockedObservable.clear();\n this.onAudioLockedObservable.clear();\n }\n /**\n * Gets the global volume sets on the master gain.\n * @returns the global volume if set or -1 otherwise\n */\n getGlobalVolume() {\n if (this.canUseWebAudio && this._audioContextInitialized) {\n return this.masterGain.gain.value;\n }\n else {\n return -1;\n }\n }\n /**\n * Sets the global volume of your experience (sets on the master gain).\n * @param newVolume Defines the new global volume of the application\n */\n setGlobalVolume(newVolume) {\n if (this.canUseWebAudio && this._audioContextInitialized) {\n this.masterGain.gain.value = newVolume;\n }\n }\n /**\n * Connect the audio engine to an audio analyser allowing some amazing\n * synchronization between the sounds/music and your visualization (VuMeter for instance).\n * @see https://doc.babylonjs.com/features/featuresDeepDive/audio/playingSoundsMusic#using-the-analyser\n * @param analyser The analyser to connect to the engine\n */\n connectToAnalyser(analyser) {\n if (this._connectedAnalyser) {\n this._connectedAnalyser.stopDebugCanvas();\n }\n if (this.canUseWebAudio && this._audioContextInitialized && this._audioContext) {\n this._connectedAnalyser = analyser;\n this.masterGain.disconnect();\n this._connectedAnalyser.connectAudioNodes(this.masterGain, this._audioContext.destination);\n }\n }\n}\n//# sourceMappingURL=audioEngine.js.map"],"names":[],"mappings":"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"}
|