@babylonjs/viewer 7.40.1-alpha → 7.40.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 +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-gxFyrTPG.esm.min.js +0 -2
- package/dist/chunks/EXT_lights_ies-gxFyrTPG.esm.min.js.map +0 -1
- package/dist/chunks/EXT_lights_ies-pE68tmBj.esm.js +0 -84
- package/dist/chunks/EXT_lights_ies-pE68tmBj.esm.js.map +0 -1
- package/dist/chunks/EXT_lights_image_based-B8Oal0Ur.esm.min.js +0 -2
- package/dist/chunks/EXT_lights_image_based-B8Oal0Ur.esm.min.js.map +0 -1
- package/dist/chunks/EXT_lights_image_based-CmP_ZGlF.esm.js +0 -171
- package/dist/chunks/EXT_lights_image_based-CmP_ZGlF.esm.js.map +0 -1
- package/dist/chunks/EXT_mesh_gpu_instancing-DSFpOud_.esm.min.js +0 -2
- package/dist/chunks/EXT_mesh_gpu_instancing-DSFpOud_.esm.min.js.map +0 -1
- package/dist/chunks/EXT_mesh_gpu_instancing-DksAVeyV.esm.js +0 -86
- package/dist/chunks/EXT_mesh_gpu_instancing-DksAVeyV.esm.js.map +0 -1
- package/dist/chunks/EXT_meshopt_compression-CNUItnkN.esm.min.js +0 -2
- package/dist/chunks/EXT_meshopt_compression-CNUItnkN.esm.min.js.map +0 -1
- package/dist/chunks/EXT_meshopt_compression-CeM-AELC.esm.js +0 -134
- package/dist/chunks/EXT_meshopt_compression-CeM-AELC.esm.js.map +0 -1
- package/dist/chunks/EXT_texture_avif-BWOJV_Yf.esm.js +0 -44
- package/dist/chunks/EXT_texture_avif-BWOJV_Yf.esm.js.map +0 -1
- package/dist/chunks/EXT_texture_avif-CSTfqZHT.esm.min.js +0 -2
- package/dist/chunks/EXT_texture_avif-CSTfqZHT.esm.min.js.map +0 -1
- package/dist/chunks/EXT_texture_webp-4Pxv5jC9.esm.min.js +0 -2
- package/dist/chunks/EXT_texture_webp-4Pxv5jC9.esm.min.js.map +0 -1
- package/dist/chunks/EXT_texture_webp-C9og1YZL.esm.js +0 -43
- package/dist/chunks/EXT_texture_webp-C9og1YZL.esm.js.map +0 -1
- package/dist/chunks/ExtrasAsMetadata-BmFy6ZgN.esm.js +0 -64
- package/dist/chunks/ExtrasAsMetadata-BmFy6ZgN.esm.js.map +0 -1
- package/dist/chunks/ExtrasAsMetadata-BwYwFtj7.esm.min.js +0 -2
- package/dist/chunks/ExtrasAsMetadata-BwYwFtj7.esm.min.js.map +0 -1
- package/dist/chunks/KHR_animation_pointer-BM2iOlKg.esm.js +0 -352
- package/dist/chunks/KHR_animation_pointer-BM2iOlKg.esm.js.map +0 -1
- package/dist/chunks/KHR_animation_pointer-C7FvhqL3.esm.min.js +0 -2
- package/dist/chunks/KHR_animation_pointer-C7FvhqL3.esm.min.js.map +0 -1
- package/dist/chunks/KHR_draco_mesh_compression-BocaEHGh.esm.js +0 -617
- package/dist/chunks/KHR_draco_mesh_compression-BocaEHGh.esm.js.map +0 -1
- package/dist/chunks/KHR_draco_mesh_compression-CjRCmIUz.esm.min.js +0 -2
- package/dist/chunks/KHR_draco_mesh_compression-CjRCmIUz.esm.min.js.map +0 -1
- package/dist/chunks/KHR_interactivity-C_ndoQHo.esm.min.js +0 -2
- package/dist/chunks/KHR_interactivity-C_ndoQHo.esm.min.js.map +0 -1
- package/dist/chunks/KHR_interactivity-ClHXW_8S.esm.js +0 -4033
- package/dist/chunks/KHR_interactivity-ClHXW_8S.esm.js.map +0 -1
- package/dist/chunks/KHR_lights_punctual-D0u7ZFj4.esm.js +0 -581
- package/dist/chunks/KHR_lights_punctual-D0u7ZFj4.esm.js.map +0 -1
- package/dist/chunks/KHR_lights_punctual-Z509RdIo.esm.min.js +0 -2
- package/dist/chunks/KHR_lights_punctual-Z509RdIo.esm.min.js.map +0 -1
- package/dist/chunks/KHR_materials_anisotropy-Dz4vBqG3.esm.min.js +0 -2
- package/dist/chunks/KHR_materials_anisotropy-Dz4vBqG3.esm.min.js.map +0 -1
- package/dist/chunks/KHR_materials_anisotropy-VuLS4v3P.esm.js +0 -65
- package/dist/chunks/KHR_materials_anisotropy-VuLS4v3P.esm.js.map +0 -1
- package/dist/chunks/KHR_materials_clearcoat-DM7vCrC3.esm.min.js +0 -2
- package/dist/chunks/KHR_materials_clearcoat-DM7vCrC3.esm.min.js.map +0 -1
- package/dist/chunks/KHR_materials_clearcoat-Dt0nQ5Ky.esm.js +0 -96
- package/dist/chunks/KHR_materials_clearcoat-Dt0nQ5Ky.esm.js.map +0 -1
- package/dist/chunks/KHR_materials_diffuse_transmission-1Pa4ScwD.esm.min.js +0 -2
- package/dist/chunks/KHR_materials_diffuse_transmission-1Pa4ScwD.esm.min.js.map +0 -1
- package/dist/chunks/KHR_materials_diffuse_transmission-DIUHVeOQ.esm.js +0 -97
- package/dist/chunks/KHR_materials_diffuse_transmission-DIUHVeOQ.esm.js.map +0 -1
- package/dist/chunks/KHR_materials_dispersion-CMpGZsUw.esm.min.js +0 -2
- package/dist/chunks/KHR_materials_dispersion-CMpGZsUw.esm.min.js.map +0 -1
- package/dist/chunks/KHR_materials_dispersion-CeSj8nUI.esm.js +0 -62
- package/dist/chunks/KHR_materials_dispersion-CeSj8nUI.esm.js.map +0 -1
- package/dist/chunks/KHR_materials_emissive_strength-CQQX31qK.esm.js +0 -55
- package/dist/chunks/KHR_materials_emissive_strength-CQQX31qK.esm.js.map +0 -1
- package/dist/chunks/KHR_materials_emissive_strength-DH4A4kIp.esm.min.js +0 -2
- package/dist/chunks/KHR_materials_emissive_strength-DH4A4kIp.esm.min.js.map +0 -1
- package/dist/chunks/KHR_materials_ior-BTU1gw-j.esm.js +0 -64
- package/dist/chunks/KHR_materials_ior-BTU1gw-j.esm.js.map +0 -1
- package/dist/chunks/KHR_materials_ior-DyzPdK6b.esm.min.js +0 -2
- package/dist/chunks/KHR_materials_ior-DyzPdK6b.esm.min.js.map +0 -1
- package/dist/chunks/KHR_materials_iridescence-8ZgbULX5.esm.min.js +0 -2
- package/dist/chunks/KHR_materials_iridescence-8ZgbULX5.esm.min.js.map +0 -1
- package/dist/chunks/KHR_materials_iridescence-D2HCEadq.esm.js +0 -72
- package/dist/chunks/KHR_materials_iridescence-D2HCEadq.esm.js.map +0 -1
- package/dist/chunks/KHR_materials_pbrSpecularGlossiness-C4K79VpA.esm.min.js +0 -2
- package/dist/chunks/KHR_materials_pbrSpecularGlossiness-C4K79VpA.esm.min.js.map +0 -1
- package/dist/chunks/KHR_materials_pbrSpecularGlossiness-DtJVJ-gl.esm.js +0 -81
- package/dist/chunks/KHR_materials_pbrSpecularGlossiness-DtJVJ-gl.esm.js.map +0 -1
- package/dist/chunks/KHR_materials_sheen-CT4KjW_v.esm.js +0 -85
- package/dist/chunks/KHR_materials_sheen-CT4KjW_v.esm.js.map +0 -1
- package/dist/chunks/KHR_materials_sheen-DQt5abo-.esm.min.js +0 -2
- package/dist/chunks/KHR_materials_sheen-DQt5abo-.esm.min.js.map +0 -1
- package/dist/chunks/KHR_materials_specular-CCvL1awH.esm.min.js +0 -2
- package/dist/chunks/KHR_materials_specular-CCvL1awH.esm.min.js.map +0 -1
- package/dist/chunks/KHR_materials_specular-CgLKBQCa.esm.js +0 -75
- package/dist/chunks/KHR_materials_specular-CgLKBQCa.esm.js.map +0 -1
- package/dist/chunks/KHR_materials_transmission-B64oDwox.esm.js +0 -307
- package/dist/chunks/KHR_materials_transmission-B64oDwox.esm.js.map +0 -1
- package/dist/chunks/KHR_materials_transmission-C6yPYKde.esm.min.js +0 -2
- package/dist/chunks/KHR_materials_transmission-C6yPYKde.esm.min.js.map +0 -1
- package/dist/chunks/KHR_materials_unlit-BGPDq328.esm.js +0 -74
- package/dist/chunks/KHR_materials_unlit-BGPDq328.esm.js.map +0 -1
- package/dist/chunks/KHR_materials_unlit-Sz3qCEGr.esm.min.js +0 -2
- package/dist/chunks/KHR_materials_unlit-Sz3qCEGr.esm.min.js.map +0 -1
- package/dist/chunks/KHR_materials_variants-Cqw7xft3.esm.min.js +0 -2
- package/dist/chunks/KHR_materials_variants-Cqw7xft3.esm.min.js.map +0 -1
- package/dist/chunks/KHR_materials_variants-D7rYTNoB.esm.js +0 -262
- package/dist/chunks/KHR_materials_variants-D7rYTNoB.esm.js.map +0 -1
- package/dist/chunks/KHR_materials_volume-BBsNt0LM.esm.js +0 -87
- package/dist/chunks/KHR_materials_volume-BBsNt0LM.esm.js.map +0 -1
- package/dist/chunks/KHR_materials_volume-DfWO7kG_.esm.min.js +0 -2
- package/dist/chunks/KHR_materials_volume-DfWO7kG_.esm.min.js.map +0 -1
- package/dist/chunks/KHR_mesh_quantization-BiDGkiGh.esm.min.js +0 -2
- package/dist/chunks/KHR_mesh_quantization-BiDGkiGh.esm.min.js.map +0 -1
- package/dist/chunks/KHR_mesh_quantization-fE1qitjF.esm.js +0 -26
- package/dist/chunks/KHR_mesh_quantization-fE1qitjF.esm.js.map +0 -1
- package/dist/chunks/KHR_node_hoverability-DaOK-Y48.esm.min.js +0 -2
- package/dist/chunks/KHR_node_hoverability-DaOK-Y48.esm.min.js.map +0 -1
- package/dist/chunks/KHR_node_hoverability-glogCdHq.esm.js +0 -39
- package/dist/chunks/KHR_node_hoverability-glogCdHq.esm.js.map +0 -1
- package/dist/chunks/KHR_node_visibility-BCVXn2la.esm.min.js +0 -2
- package/dist/chunks/KHR_node_visibility-BCVXn2la.esm.min.js.map +0 -1
- package/dist/chunks/KHR_node_visibility-CCfVtnan.esm.js +0 -46
- package/dist/chunks/KHR_node_visibility-CCfVtnan.esm.js.map +0 -1
- package/dist/chunks/KHR_texture_basisu-_cpZJuOo.esm.min.js +0 -2
- package/dist/chunks/KHR_texture_basisu-_cpZJuOo.esm.min.js.map +0 -1
- package/dist/chunks/KHR_texture_basisu-nhRrTq0b.esm.js +0 -43
- package/dist/chunks/KHR_texture_basisu-nhRrTq0b.esm.js.map +0 -1
- package/dist/chunks/KHR_texture_transform-AgI_J0Ru.esm.js +0 -63
- package/dist/chunks/KHR_texture_transform-AgI_J0Ru.esm.js.map +0 -1
- package/dist/chunks/KHR_texture_transform-CgcA7bhJ.esm.min.js +0 -2
- package/dist/chunks/KHR_texture_transform-CgcA7bhJ.esm.min.js.map +0 -1
- package/dist/chunks/KHR_xmp_json_ld-C37VZwlU.esm.min.js +0 -2
- package/dist/chunks/KHR_xmp_json_ld-C37VZwlU.esm.min.js.map +0 -1
- package/dist/chunks/KHR_xmp_json_ld-Cm4z6qFH.esm.js +0 -51
- package/dist/chunks/KHR_xmp_json_ld-Cm4z6qFH.esm.js.map +0 -1
- package/dist/chunks/MSFT_audio_emitter-4EFTMS8D.esm.js +0 -2207
- package/dist/chunks/MSFT_audio_emitter-4EFTMS8D.esm.js.map +0 -1
- package/dist/chunks/MSFT_audio_emitter-Czn1DAbD.esm.min.js +0 -2
- package/dist/chunks/MSFT_audio_emitter-Czn1DAbD.esm.min.js.map +0 -1
- package/dist/chunks/MSFT_lod-Bn4FnO5A.esm.js +0 -337
- package/dist/chunks/MSFT_lod-Bn4FnO5A.esm.js.map +0 -1
- package/dist/chunks/MSFT_lod-DDB-SKXR.esm.min.js +0 -2
- package/dist/chunks/MSFT_lod-DDB-SKXR.esm.min.js.map +0 -1
- package/dist/chunks/MSFT_minecraftMesh-APRwcxWb.esm.min.js +0 -2
- package/dist/chunks/MSFT_minecraftMesh-APRwcxWb.esm.min.js.map +0 -1
- package/dist/chunks/MSFT_minecraftMesh-DPvby_FZ.esm.js +0 -46
- package/dist/chunks/MSFT_minecraftMesh-DPvby_FZ.esm.js.map +0 -1
- package/dist/chunks/MSFT_sRGBFactors-D33sXFGi.esm.js +0 -47
- package/dist/chunks/MSFT_sRGBFactors-D33sXFGi.esm.js.map +0 -1
- package/dist/chunks/MSFT_sRGBFactors-OsUqZSue.esm.min.js +0 -2
- package/dist/chunks/MSFT_sRGBFactors-OsUqZSue.esm.min.js.map +0 -1
- package/dist/chunks/animationGroup-BR3zskS8.esm.js +0 -2482
- package/dist/chunks/animationGroup-BR3zskS8.esm.js.map +0 -1
- package/dist/chunks/animationGroup-ChIp5GuO.esm.min.js +0 -2
- package/dist/chunks/animationGroup-ChIp5GuO.esm.min.js.map +0 -1
- package/dist/chunks/assetContainer-DLSDgjTx.esm.min.js +0 -2
- package/dist/chunks/assetContainer-DLSDgjTx.esm.min.js.map +0 -1
- package/dist/chunks/assetContainer-cm8rvay3.esm.js +0 -1720
- package/dist/chunks/assetContainer-cm8rvay3.esm.js.map +0 -1
- package/dist/chunks/audioEngine-Cx5dB73O.esm.js +0 -305
- package/dist/chunks/audioEngine-Cx5dB73O.esm.js.map +0 -1
- package/dist/chunks/audioEngine-hKZ2m0jY.esm.min.js +0 -2
- package/dist/chunks/audioEngine-hKZ2m0jY.esm.min.js.map +0 -1
- package/dist/chunks/bakedVertexAnimation-BCUFE4CP.esm.min.js +0 -2
- package/dist/chunks/bakedVertexAnimation-BCUFE4CP.esm.min.js.map +0 -1
- package/dist/chunks/bakedVertexAnimation-ByPKjjzz.esm.js +0 -114
- package/dist/chunks/bakedVertexAnimation-ByPKjjzz.esm.js.map +0 -1
- package/dist/chunks/basisTextureLoader-BIqCbGFg.esm.min.js +0 -2
- package/dist/chunks/basisTextureLoader-BIqCbGFg.esm.min.js.map +0 -1
- package/dist/chunks/basisTextureLoader-CT8X4ynA.esm.js +0 -600
- package/dist/chunks/basisTextureLoader-CT8X4ynA.esm.js.map +0 -1
- package/dist/chunks/dds-BDOPTCsA.esm.min.js +0 -2
- package/dist/chunks/dds-BDOPTCsA.esm.min.js.map +0 -1
- package/dist/chunks/dds-BYrGO6eI.esm.js +0 -540
- package/dist/chunks/dds-BYrGO6eI.esm.js.map +0 -1
- package/dist/chunks/ddsTextureLoader-BbrffKmM.esm.min.js +0 -2
- package/dist/chunks/ddsTextureLoader-BbrffKmM.esm.min.js.map +0 -1
- package/dist/chunks/ddsTextureLoader-C36kkIBH.esm.js +0 -88
- package/dist/chunks/ddsTextureLoader-C36kkIBH.esm.js.map +0 -1
- package/dist/chunks/decalFragment-07cq9QvS.esm.min.js +0 -2
- package/dist/chunks/decalFragment-07cq9QvS.esm.min.js.map +0 -1
- package/dist/chunks/decalFragment-B16Nfnl3.esm.js +0 -18
- package/dist/chunks/decalFragment-B16Nfnl3.esm.js.map +0 -1
- package/dist/chunks/default.fragment-BkjbMxBE.esm.min.js +0 -2
- package/dist/chunks/default.fragment-BkjbMxBE.esm.min.js.map +0 -1
- package/dist/chunks/default.fragment-C-8jVS2k.esm.min.js +0 -2
- package/dist/chunks/default.fragment-C-8jVS2k.esm.min.js.map +0 -1
- package/dist/chunks/default.fragment-C3Pectqi.esm.js +0 -515
- package/dist/chunks/default.fragment-C3Pectqi.esm.js.map +0 -1
- package/dist/chunks/default.fragment-D3LhG5le.esm.js +0 -446
- package/dist/chunks/default.fragment-D3LhG5le.esm.js.map +0 -1
- package/dist/chunks/default.vertex-CPx_2Z0S.esm.js +0 -181
- package/dist/chunks/default.vertex-CPx_2Z0S.esm.js.map +0 -1
- package/dist/chunks/default.vertex-CVMUuXku.esm.js +0 -202
- package/dist/chunks/default.vertex-CVMUuXku.esm.js.map +0 -1
- package/dist/chunks/default.vertex-CbVQZVXB.esm.min.js +0 -2
- package/dist/chunks/default.vertex-CbVQZVXB.esm.min.js.map +0 -1
- package/dist/chunks/default.vertex-S3Wv9p0Q.esm.min.js +0 -2
- package/dist/chunks/default.vertex-S3Wv9p0Q.esm.min.js.map +0 -1
- package/dist/chunks/defaultUboDeclaration-BdxOUPT0.esm.min.js +0 -2
- package/dist/chunks/defaultUboDeclaration-BdxOUPT0.esm.min.js.map +0 -1
- package/dist/chunks/defaultUboDeclaration-CUaZKOKG.esm.min.js +0 -2
- package/dist/chunks/defaultUboDeclaration-CUaZKOKG.esm.min.js.map +0 -1
- package/dist/chunks/defaultUboDeclaration-DdcmVbYg.esm.js +0 -15
- package/dist/chunks/defaultUboDeclaration-DdcmVbYg.esm.js.map +0 -1
- package/dist/chunks/defaultUboDeclaration-rLhenj1H.esm.js +0 -13
- package/dist/chunks/defaultUboDeclaration-rLhenj1H.esm.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-CPmY0U7D.esm.js +0 -200
- package/dist/chunks/dumpTools-CPmY0U7D.esm.js.map +0 -1
- package/dist/chunks/dumpTools-DVDwJ2sz.esm.min.js +0 -2
- package/dist/chunks/dumpTools-DVDwJ2sz.esm.min.js.map +0 -1
- package/dist/chunks/engine-BqSrdURz.esm.min.js +0 -2
- package/dist/chunks/engine-BqSrdURz.esm.min.js.map +0 -1
- package/dist/chunks/engine-D_GgT2Nf.esm.js +0 -2216
- package/dist/chunks/engine-D_GgT2Nf.esm.js.map +0 -1
- package/dist/chunks/engine.common-CN1Lug5p.esm.js +0 -1162
- package/dist/chunks/engine.common-CN1Lug5p.esm.js.map +0 -1
- package/dist/chunks/engine.common-DgiXKhLy.esm.min.js +0 -2
- package/dist/chunks/engine.common-DgiXKhLy.esm.min.js.map +0 -1
- package/dist/chunks/envTextureLoader-BORNR9vu.esm.min.js +0 -2
- package/dist/chunks/envTextureLoader-BORNR9vu.esm.min.js.map +0 -1
- package/dist/chunks/envTextureLoader-DHwsXTfw.esm.js +0 -64
- package/dist/chunks/envTextureLoader-DHwsXTfw.esm.js.map +0 -1
- package/dist/chunks/environmentTextureTools-B2vnsFq-.esm.js +0 -382
- package/dist/chunks/environmentTextureTools-B2vnsFq-.esm.js.map +0 -1
- package/dist/chunks/environmentTextureTools-BYQHZH-c.esm.min.js +0 -2
- package/dist/chunks/environmentTextureTools-BYQHZH-c.esm.min.js.map +0 -1
- package/dist/chunks/exrTextureLoader-B8FQohBr.esm.js +0 -1683
- package/dist/chunks/exrTextureLoader-B8FQohBr.esm.js.map +0 -1
- package/dist/chunks/exrTextureLoader-D8xP0GLQ.esm.min.js +0 -2
- package/dist/chunks/exrTextureLoader-D8xP0GLQ.esm.min.js.map +0 -1
- package/dist/chunks/fogFragment-5YT33bDn.esm.js +0 -102
- package/dist/chunks/fogFragment-5YT33bDn.esm.js.map +0 -1
- package/dist/chunks/fogFragment-BOBZ2KwN.esm.min.js +0 -2
- package/dist/chunks/fogFragment-BOBZ2KwN.esm.min.js.map +0 -1
- package/dist/chunks/fogFragment-CLENZGuB.esm.js +0 -101
- package/dist/chunks/fogFragment-CLENZGuB.esm.js.map +0 -1
- package/dist/chunks/fogFragment-D9dudohA.esm.min.js +0 -2
- package/dist/chunks/fogFragment-D9dudohA.esm.min.js.map +0 -1
- package/dist/chunks/fresnelFunction-BkO99b6C.esm.js +0 -12
- package/dist/chunks/fresnelFunction-BkO99b6C.esm.js.map +0 -1
- package/dist/chunks/fresnelFunction-CqiLsMCu.esm.min.js +0 -2
- package/dist/chunks/fresnelFunction-CqiLsMCu.esm.min.js.map +0 -1
- package/dist/chunks/glTFLoader-CkL-dxBD.esm.min.js +0 -2
- package/dist/chunks/glTFLoader-CkL-dxBD.esm.min.js.map +0 -1
- package/dist/chunks/glTFLoader-IEHRfiUn.esm.js +0 -7586
- package/dist/chunks/glTFLoader-IEHRfiUn.esm.js.map +0 -1
- package/dist/chunks/glTFLoaderAnimation-CV32Nmqb.esm.js +0 -77
- package/dist/chunks/glTFLoaderAnimation-CV32Nmqb.esm.js.map +0 -1
- package/dist/chunks/glTFLoaderAnimation-Cq2ziV9o.esm.min.js +0 -2
- package/dist/chunks/glTFLoaderAnimation-Cq2ziV9o.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-B5QCEZvF.esm.js +0 -34
- package/dist/chunks/harmonicsFunctions-B5QCEZvF.esm.js.map +0 -1
- package/dist/chunks/harmonicsFunctions-BxLCgoIQ.esm.min.js +0 -2
- package/dist/chunks/harmonicsFunctions-BxLCgoIQ.esm.min.js.map +0 -1
- package/dist/chunks/harmonicsFunctions-Daxnf8NE.esm.min.js +0 -2
- package/dist/chunks/harmonicsFunctions-Daxnf8NE.esm.min.js.map +0 -1
- package/dist/chunks/harmonicsFunctions-UzG0C-sm.esm.js +0 -35
- package/dist/chunks/harmonicsFunctions-UzG0C-sm.esm.js.map +0 -1
- package/dist/chunks/hdrTextureLoader-BpVjKGyb.esm.min.js +0 -2
- package/dist/chunks/hdrTextureLoader-BpVjKGyb.esm.min.js.map +0 -1
- package/dist/chunks/hdrTextureLoader-DgW8CxRF.esm.js +0 -253
- package/dist/chunks/hdrTextureLoader-DgW8CxRF.esm.js.map +0 -1
- package/dist/chunks/helperFunctions-BFgvMG5S.esm.min.js +0 -2
- package/dist/chunks/helperFunctions-BFgvMG5S.esm.min.js.map +0 -1
- package/dist/chunks/helperFunctions-BatAhE6u.esm.js +0 -108
- package/dist/chunks/helperFunctions-BatAhE6u.esm.js.map +0 -1
- package/dist/chunks/helperFunctions-qECwmiwu.esm.min.js +0 -2
- package/dist/chunks/helperFunctions-qECwmiwu.esm.min.js.map +0 -1
- package/dist/chunks/helperFunctions-vbA-oTJx.esm.js +0 -80
- package/dist/chunks/helperFunctions-vbA-oTJx.esm.js.map +0 -1
- package/dist/chunks/iesTextureLoader-Ccd5pvbh.esm.min.js +0 -2
- package/dist/chunks/iesTextureLoader-Ccd5pvbh.esm.min.js.map +0 -1
- package/dist/chunks/iesTextureLoader-nMYnOfhm.esm.js +0 -189
- package/dist/chunks/iesTextureLoader-nMYnOfhm.esm.js.map +0 -1
- package/dist/chunks/index-BHIM4QBr.esm.min.js +0 -57
- package/dist/chunks/index-BHIM4QBr.esm.min.js.map +0 -1
- package/dist/chunks/index-CtkZLm9J.esm.js +0 -74717
- package/dist/chunks/index-CtkZLm9J.esm.js.map +0 -1
- package/dist/chunks/ktxTextureLoader-CkkvHzY3.esm.js +0 -814
- package/dist/chunks/ktxTextureLoader-CkkvHzY3.esm.js.map +0 -1
- package/dist/chunks/ktxTextureLoader-CwGlHia2.esm.min.js +0 -2
- package/dist/chunks/ktxTextureLoader-CwGlHia2.esm.min.js.map +0 -1
- package/dist/chunks/logDepthDeclaration-BiUSPlzz.esm.js +0 -35
- package/dist/chunks/logDepthDeclaration-BiUSPlzz.esm.js.map +0 -1
- package/dist/chunks/logDepthDeclaration-Bq2fzMbS.esm.js +0 -11
- package/dist/chunks/logDepthDeclaration-Bq2fzMbS.esm.js.map +0 -1
- package/dist/chunks/logDepthDeclaration-C8DJP16D.esm.min.js +0 -2
- package/dist/chunks/logDepthDeclaration-C8DJP16D.esm.min.js.map +0 -1
- package/dist/chunks/logDepthDeclaration-DJpvEdPG.esm.min.js +0 -2
- package/dist/chunks/logDepthDeclaration-DJpvEdPG.esm.min.js.map +0 -1
- package/dist/chunks/logDepthVertex-C00_obGd.esm.min.js +0 -2
- package/dist/chunks/logDepthVertex-C00_obGd.esm.min.js.map +0 -1
- package/dist/chunks/logDepthVertex-CYIGBMYd.esm.js +0 -77
- package/dist/chunks/logDepthVertex-CYIGBMYd.esm.js.map +0 -1
- package/dist/chunks/logDepthVertex-CxT8FVOf.esm.js +0 -81
- package/dist/chunks/logDepthVertex-CxT8FVOf.esm.js.map +0 -1
- package/dist/chunks/logDepthVertex-SyM_Fu5K.esm.min.js +0 -2
- package/dist/chunks/logDepthVertex-SyM_Fu5K.esm.min.js.map +0 -1
- package/dist/chunks/mainUVVaryingDeclaration-BaIG4IFB.esm.js +0 -11
- package/dist/chunks/mainUVVaryingDeclaration-BaIG4IFB.esm.js.map +0 -1
- package/dist/chunks/mainUVVaryingDeclaration-CQzOmEIM.esm.min.js +0 -2
- package/dist/chunks/mainUVVaryingDeclaration-CQzOmEIM.esm.min.js.map +0 -1
- package/dist/chunks/mainUVVaryingDeclaration-D100Qvmm.esm.min.js +0 -2
- package/dist/chunks/mainUVVaryingDeclaration-D100Qvmm.esm.min.js.map +0 -1
- package/dist/chunks/mainUVVaryingDeclaration-OSD7irdC.esm.js +0 -11
- package/dist/chunks/mainUVVaryingDeclaration-OSD7irdC.esm.js.map +0 -1
- package/dist/chunks/meshUboDeclaration--wzKOTOT.esm.min.js +0 -2
- package/dist/chunks/meshUboDeclaration--wzKOTOT.esm.min.js.map +0 -1
- package/dist/chunks/meshUboDeclaration-DIi9ZPDc.esm.js +0 -26
- package/dist/chunks/meshUboDeclaration-DIi9ZPDc.esm.js.map +0 -1
- package/dist/chunks/objFileLoader-Cda8pwUd.esm.js +0 -1338
- package/dist/chunks/objFileLoader-Cda8pwUd.esm.js.map +0 -1
- package/dist/chunks/objFileLoader-kzI-pZ8o.esm.min.js +0 -2
- package/dist/chunks/objFileLoader-kzI-pZ8o.esm.min.js.map +0 -1
- package/dist/chunks/oitFragment-4cP4dKVP.esm.min.js +0 -2
- package/dist/chunks/oitFragment-4cP4dKVP.esm.min.js.map +0 -1
- package/dist/chunks/oitFragment-Bz1w36ia.esm.js +0 -1078
- package/dist/chunks/oitFragment-Bz1w36ia.esm.js.map +0 -1
- package/dist/chunks/oitFragment-DUkW-kmb.esm.min.js +0 -2
- package/dist/chunks/oitFragment-DUkW-kmb.esm.min.js.map +0 -1
- package/dist/chunks/oitFragment-DiuTTpNa.esm.js +0 -1240
- package/dist/chunks/oitFragment-DiuTTpNa.esm.js.map +0 -1
- package/dist/chunks/pass.fragment-B8l5NRgR.esm.min.js +0 -2
- package/dist/chunks/pass.fragment-B8l5NRgR.esm.min.js.map +0 -1
- package/dist/chunks/pass.fragment-BF4UEoT8.esm.min.js +0 -2
- package/dist/chunks/pass.fragment-BF4UEoT8.esm.min.js.map +0 -1
- package/dist/chunks/pass.fragment-CD3_26yo.esm.js +0 -15
- package/dist/chunks/pass.fragment-CD3_26yo.esm.js.map +0 -1
- package/dist/chunks/pass.fragment-DfeELUEn.esm.js +0 -15
- package/dist/chunks/pass.fragment-DfeELUEn.esm.js.map +0 -1
- package/dist/chunks/pbr.fragment-BDylAp64.esm.min.js +0 -2
- package/dist/chunks/pbr.fragment-BDylAp64.esm.min.js.map +0 -1
- package/dist/chunks/pbr.fragment-C1qko419.esm.min.js +0 -2
- package/dist/chunks/pbr.fragment-C1qko419.esm.min.js.map +0 -1
- package/dist/chunks/pbr.fragment-EBVxSAEQ.esm.js +0 -3232
- package/dist/chunks/pbr.fragment-EBVxSAEQ.esm.js.map +0 -1
- package/dist/chunks/pbr.fragment-lt62m8b7.esm.js +0 -3273
- package/dist/chunks/pbr.fragment-lt62m8b7.esm.js.map +0 -1
- package/dist/chunks/pbr.vertex-CGRL_eY2.esm.js +0 -339
- package/dist/chunks/pbr.vertex-CGRL_eY2.esm.js.map +0 -1
- package/dist/chunks/pbr.vertex-CHv4zeYj.esm.min.js +0 -2
- package/dist/chunks/pbr.vertex-CHv4zeYj.esm.min.js.map +0 -1
- package/dist/chunks/pbr.vertex-Dk4h9ywZ.esm.min.js +0 -2
- package/dist/chunks/pbr.vertex-Dk4h9ywZ.esm.min.js.map +0 -1
- package/dist/chunks/pbr.vertex-DopP5mYu.esm.js +0 -214
- package/dist/chunks/pbr.vertex-DopP5mYu.esm.js.map +0 -1
- package/dist/chunks/postprocess.vertex-Bt30-Flh.esm.min.js +0 -2
- package/dist/chunks/postprocess.vertex-Bt30-Flh.esm.min.js.map +0 -1
- package/dist/chunks/postprocess.vertex-pLUOpXIY.esm.js +0 -20
- package/dist/chunks/postprocess.vertex-pLUOpXIY.esm.js.map +0 -1
- package/dist/chunks/rawTexture-78KJgWfq.esm.js +0 -191
- package/dist/chunks/rawTexture-78KJgWfq.esm.js.map +0 -1
- package/dist/chunks/rawTexture-CCCnj14W.esm.min.js +0 -2
- package/dist/chunks/rawTexture-CCCnj14W.esm.min.js.map +0 -1
- package/dist/chunks/ray-CfhmGTmj.esm.js +0 -946
- package/dist/chunks/ray-CfhmGTmj.esm.js.map +0 -1
- package/dist/chunks/ray-Du89cGmz.esm.min.js +0 -2
- package/dist/chunks/ray-Du89cGmz.esm.min.js.map +0 -1
- package/dist/chunks/rgbdDecode.fragment-BHAQKD_5.esm.js +0 -13
- package/dist/chunks/rgbdDecode.fragment-BHAQKD_5.esm.js.map +0 -1
- package/dist/chunks/rgbdDecode.fragment-CV6q4aIi.esm.js +0 -13
- package/dist/chunks/rgbdDecode.fragment-CV6q4aIi.esm.js.map +0 -1
- package/dist/chunks/rgbdDecode.fragment-DEu4F_6T.esm.min.js +0 -2
- package/dist/chunks/rgbdDecode.fragment-DEu4F_6T.esm.min.js.map +0 -1
- package/dist/chunks/rgbdDecode.fragment-DiJfgZKv.esm.min.js +0 -2
- package/dist/chunks/rgbdDecode.fragment-DiJfgZKv.esm.min.js.map +0 -1
- package/dist/chunks/rgbdEncode.fragment-CR30N0Mr.esm.js +0 -13
- package/dist/chunks/rgbdEncode.fragment-CR30N0Mr.esm.js.map +0 -1
- package/dist/chunks/rgbdEncode.fragment-CUE3DGC8.esm.min.js +0 -2
- package/dist/chunks/rgbdEncode.fragment-CUE3DGC8.esm.min.js.map +0 -1
- package/dist/chunks/rgbdEncode.fragment-DdFs5QJM.esm.js +0 -13
- package/dist/chunks/rgbdEncode.fragment-DdFs5QJM.esm.js.map +0 -1
- package/dist/chunks/rgbdEncode.fragment-omm81hdD.esm.min.js +0 -2
- package/dist/chunks/rgbdEncode.fragment-omm81hdD.esm.min.js.map +0 -1
- package/dist/chunks/splatFileLoader-BnaOhITn.esm.js +0 -3379
- package/dist/chunks/splatFileLoader-BnaOhITn.esm.js.map +0 -1
- package/dist/chunks/splatFileLoader-CuMIDOsR.esm.min.js +0 -2
- package/dist/chunks/splatFileLoader-CuMIDOsR.esm.min.js.map +0 -1
- package/dist/chunks/spotLight-Ca0-j1Op.esm.js +0 -701
- package/dist/chunks/spotLight-Ca0-j1Op.esm.js.map +0 -1
- package/dist/chunks/spotLight-DXuSbTaJ.esm.min.js +0 -2
- package/dist/chunks/spotLight-DXuSbTaJ.esm.min.js.map +0 -1
- package/dist/chunks/standardMaterial-DKyaZtcm.esm.js +0 -1805
- package/dist/chunks/standardMaterial-DKyaZtcm.esm.js.map +0 -1
- package/dist/chunks/standardMaterial-h3ccobBt.esm.min.js +0 -2
- package/dist/chunks/standardMaterial-h3ccobBt.esm.min.js.map +0 -1
- package/dist/chunks/stlFileLoader-CDv97liE.esm.js +0 -238
- package/dist/chunks/stlFileLoader-CDv97liE.esm.js.map +0 -1
- package/dist/chunks/stlFileLoader-e2ImyWaM.esm.min.js +0 -2
- package/dist/chunks/stlFileLoader-e2ImyWaM.esm.min.js.map +0 -1
- package/dist/chunks/tgaTextureLoader-DJaEph-Q.esm.js +0 -349
- package/dist/chunks/tgaTextureLoader-DJaEph-Q.esm.js.map +0 -1
- package/dist/chunks/tgaTextureLoader-slv-QvZW.esm.min.js +0 -2
- package/dist/chunks/tgaTextureLoader-slv-QvZW.esm.min.js.map +0 -1
- package/dist/chunks/thinEngine-Ue9ZAvRK.esm.js +0 -3848
- package/dist/chunks/thinEngine-Ue9ZAvRK.esm.js.map +0 -1
- package/dist/chunks/thinEngine-pihAbdON.esm.min.js +0 -2
- package/dist/chunks/thinEngine-pihAbdON.esm.min.js.map +0 -1
- package/dist/chunks/thinInstanceMesh-BgfKoejL.esm.min.js +0 -2
- package/dist/chunks/thinInstanceMesh-BgfKoejL.esm.min.js.map +0 -1
- package/dist/chunks/thinInstanceMesh-V41szD4h.esm.js +0 -314
- package/dist/chunks/thinInstanceMesh-V41szD4h.esm.js.map +0 -1
- package/dist/chunks/vertexColorMixing-CZsK7mYP.esm.min.js +0 -2
- package/dist/chunks/vertexColorMixing-CZsK7mYP.esm.min.js.map +0 -1
- package/dist/chunks/vertexColorMixing-DKVusFas.esm.js +0 -522
- package/dist/chunks/vertexColorMixing-DKVusFas.esm.js.map +0 -1
- package/dist/chunks/vertexColorMixing-DeZKI8QK.esm.js +0 -412
- package/dist/chunks/vertexColorMixing-DeZKI8QK.esm.js.map +0 -1
- package/dist/chunks/vertexColorMixing-axGN1U7X.esm.min.js +0 -2
- package/dist/chunks/vertexColorMixing-axGN1U7X.esm.min.js.map +0 -1
- package/dist/chunks/webgpuEngine-COis70hT.esm.js +0 -11533
- package/dist/chunks/webgpuEngine-COis70hT.esm.js.map +0 -1
- package/dist/chunks/webgpuEngine-Cx_GlShD.esm.min.js +0 -2
- package/dist/chunks/webgpuEngine-Cx_GlShD.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 -559
- package/lib/index.js +0 -2083
- package/lib/index.js.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"viewer.js","sourceRoot":"","sources":["../../../../tools/viewer/src/viewer/viewer.ts"],"names":[],"mappings":"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","sourcesContent":["import { Engine } from \"core/Engines/engine\";\r\nimport type { ISceneLoaderPlugin, ISceneLoaderPluginAsync, ISceneLoaderProgressEvent } from \"core/Loading/sceneLoader\";\r\nimport { SceneLoader } from \"core/Loading/sceneLoader\";\r\nimport type { Observable } from \"core/Misc/observable\";\r\nimport type { Scene } from \"core/scene\";\r\nimport { RenderingManager } from \"core/Rendering/renderingManager\";\r\nimport type { TargetCamera } from \"core/Cameras/targetCamera\";\r\nimport { Tools } from \"core/Misc/tools\";\r\nimport { Effect } from \"core/Materials/effect\";\r\nimport { processConfigurationCompatibility } from \"../configuration/configurationCompatibility\";\r\nimport { ConfigurationContainer } from \"../configuration/configurationContainer\";\r\nimport { viewerGlobals } from \"../configuration/globals\";\r\nimport { RenderOnlyConfigurationLoader } from \"../configuration/renderOnlyLoader\";\r\n// eslint-disable-next-line import/no-internal-modules\r\nimport { deepmerge } from \"../helper/index\";\r\nimport { ModelLoader } from \"../loader/modelLoader\";\r\nimport { ObservablesManager } from \"../managers/observablesManager\";\r\nimport { SceneManager } from \"../managers/sceneManager\";\r\nimport { telemetryManager } from \"../managers/telemetryManager\";\r\nimport type { ViewerModel } from \"../model/viewerModel\";\r\nimport { viewerManager } from \"./viewerManager\";\r\nimport type { ViewerConfiguration } from \"../configuration/configuration\";\r\nimport type { IObserversConfiguration } from \"../configuration/interfaces/observersConfiguration\";\r\nimport type { IModelConfiguration } from \"../configuration/interfaces/modelConfiguration\";\r\nimport type { GLTFFileLoader } from \"loaders/glTF/glTFFileLoader\";\r\nimport \"core/Misc/observable.extensions\";\r\nimport { Logger } from \"core/Misc/logger\";\r\n\r\n/**\r\n * The AbstractViewer is the center of Babylon's viewer.\r\n * It is the basic implementation of the default viewer and is responsible of loading and showing the model and the templates\r\n */\r\nexport abstract class AbstractViewer {\r\n /**\r\n * Babylon Engine corresponding with this viewer\r\n */\r\n public engine: Engine;\r\n /**\r\n * The ID of this viewer. it will be generated randomly or use the HTML Element's ID.\r\n */\r\n public readonly baseId: string;\r\n\r\n /**\r\n * The last loader used to load a model.\r\n * @deprecated\r\n */\r\n public lastUsedLoader: ISceneLoaderPlugin | ISceneLoaderPluginAsync;\r\n /**\r\n * The ModelLoader instance connected with this viewer.\r\n */\r\n public modelLoader: ModelLoader;\r\n\r\n /**\r\n * A flag that controls whether or not the render loop should be executed\r\n */\r\n public runRenderLoop: boolean = true;\r\n\r\n /**\r\n * The scene manager connected with this viewer instance\r\n */\r\n public sceneManager: SceneManager;\r\n\r\n // observables\r\n /**\r\n * Will notify when the scene was initialized\r\n */\r\n public get onSceneInitObservable(): Observable<Scene> {\r\n return this.observablesManager.onSceneInitObservable;\r\n }\r\n /**\r\n * will notify when the engine was initialized\r\n */\r\n public get onEngineInitObservable(): Observable<Engine> {\r\n return this.observablesManager.onEngineInitObservable;\r\n }\r\n\r\n /**\r\n * Will notify when a new model was added to the scene.\r\n * Note that added does not necessarily mean loaded!\r\n */\r\n public get onModelAddedObservable(): Observable<ViewerModel> {\r\n return this.observablesManager.onModelAddedObservable;\r\n }\r\n /**\r\n * will notify after every model load\r\n */\r\n public get onModelLoadedObservable(): Observable<ViewerModel> {\r\n return this.observablesManager.onModelLoadedObservable;\r\n }\r\n /**\r\n * will notify when any model notify of progress\r\n */\r\n public get onModelLoadProgressObservable(): Observable<ISceneLoaderProgressEvent> {\r\n return this.observablesManager.onModelLoadProgressObservable;\r\n }\r\n /**\r\n * will notify when any model load failed.\r\n */\r\n public get onModelLoadErrorObservable(): Observable<{ message: string; exception: any }> {\r\n return this.observablesManager.onModelLoadErrorObservable;\r\n }\r\n /**\r\n * Will notify when a model was removed from the scene;\r\n */\r\n public get onModelRemovedObservable(): Observable<ViewerModel> {\r\n return this.observablesManager.onModelRemovedObservable;\r\n }\r\n /**\r\n * will notify when a new loader was initialized.\r\n * Used mainly to know when a model starts loading.\r\n */\r\n public get onLoaderInitObservable(): Observable<ISceneLoaderPlugin | ISceneLoaderPluginAsync> {\r\n return this.observablesManager.onLoaderInitObservable;\r\n }\r\n /**\r\n * Observers registered here will be executed when the entire load process has finished.\r\n */\r\n public get onInitDoneObservable(): Observable<AbstractViewer> {\r\n return this.observablesManager.onViewerInitDoneObservable;\r\n }\r\n\r\n /**\r\n * Functions added to this observable will be executed on each frame rendered.\r\n */\r\n public get onFrameRenderedObservable(): Observable<AbstractViewer> {\r\n return this.observablesManager.onFrameRenderedObservable;\r\n }\r\n\r\n /**\r\n * Observers registered here will be executed when VR more is entered.\r\n */\r\n public get onEnteringVRObservable(): Observable<AbstractViewer> {\r\n return this.observablesManager.onEnteringVRObservable;\r\n }\r\n /**\r\n * Observers registered here will be executed when VR mode is exited.\r\n */\r\n public get onExitingVRObservable(): Observable<AbstractViewer> {\r\n return this.observablesManager.onExitingVRObservable;\r\n }\r\n\r\n public observablesManager: ObservablesManager;\r\n\r\n /**\r\n * The canvas associated with this viewer\r\n */\r\n protected _canvas: HTMLCanvasElement;\r\n\r\n /**\r\n * The (single) canvas of this viewer\r\n */\r\n public get canvas(): HTMLCanvasElement {\r\n return this._canvas;\r\n }\r\n\r\n /**\r\n * is this viewer disposed?\r\n */\r\n protected _isDisposed: boolean = false;\r\n\r\n /**\r\n * registered onBeforeRender functions.\r\n * This functions are also registered at the native scene. The reference can be used to unregister them.\r\n */\r\n protected _registeredOnBeforeRenderFunctions: Array<() => void>;\r\n /**\r\n * The configuration loader of this viewer\r\n */\r\n protected _configurationLoader: RenderOnlyConfigurationLoader;\r\n\r\n /**\r\n * Is the viewer already initialized. for internal use.\r\n */\r\n protected _isInit: boolean;\r\n\r\n protected _configurationContainer: ConfigurationContainer;\r\n\r\n public get configurationContainer() {\r\n return this._configurationContainer;\r\n }\r\n\r\n // eslint-disable-next-line @typescript-eslint/naming-convention\r\n protected getConfigurationLoader() {\r\n return new RenderOnlyConfigurationLoader();\r\n }\r\n\r\n constructor(\r\n public containerElement: Element,\r\n initialConfiguration: ViewerConfiguration = {}\r\n ) {\r\n // if exists, use the container id. otherwise, generate a random string.\r\n if (containerElement.id) {\r\n this.baseId = containerElement.id;\r\n } else {\r\n this.baseId = containerElement.id = \"bjs\" + Math.random().toString(32).substring(2, 10);\r\n }\r\n\r\n this._registeredOnBeforeRenderFunctions = [];\r\n\r\n this._configurationContainer = new ConfigurationContainer();\r\n\r\n this.observablesManager = new ObservablesManager();\r\n\r\n this.modelLoader = new ModelLoader(this.observablesManager, this._configurationContainer);\r\n\r\n RenderingManager.AUTOCLEAR = false;\r\n\r\n // extend the configuration\r\n this._configurationLoader = this.getConfigurationLoader();\r\n this._configurationLoader.loadConfiguration(initialConfiguration, (configuration) => {\r\n this._onConfigurationLoaded(configuration);\r\n });\r\n\r\n this.onSceneInitObservable.add(() => {\r\n this.updateConfiguration();\r\n });\r\n\r\n this.onInitDoneObservable.add(() => {\r\n this._isInit = true;\r\n this.engine.runRenderLoop(this._render);\r\n });\r\n\r\n this._prepareContainerElement();\r\n\r\n // add this viewer to the viewer manager\r\n viewerManager.addViewer(this);\r\n }\r\n\r\n /**\r\n * get the baseId of this viewer\r\n * @returns the baseId of this viewer\r\n */\r\n public getBaseId(): string {\r\n return this.baseId;\r\n }\r\n\r\n /**\r\n * Do we have a canvas to render on, and is it a part of the scene\r\n * @returns true if the canvas is in the DOM\r\n */\r\n public isCanvasInDOM(): boolean {\r\n return !!this._canvas && !!this._canvas.parentElement;\r\n }\r\n\r\n /**\r\n * Is the engine currently set to render even when the page is in background\r\n */\r\n public get renderInBackground() {\r\n return this.engine && this.engine.renderEvenInBackground;\r\n }\r\n\r\n /**\r\n * Set the viewer's background rendering flag.\r\n */\r\n public set renderInBackground(value: boolean) {\r\n if (this.engine) {\r\n this.engine.renderEvenInBackground = value;\r\n }\r\n }\r\n\r\n /**\r\n * Get the configuration object. This is a reference only.\r\n * The configuration can ONLY be updated using the updateConfiguration function.\r\n * changing this object will have no direct effect on the scene.\r\n */\r\n public get configuration(): ViewerConfiguration {\r\n return this._configurationContainer.configuration;\r\n }\r\n\r\n /**\r\n * force resizing the engine.\r\n */\r\n public forceResize() {\r\n this._resize();\r\n }\r\n\r\n protected _hdToggled: boolean = false;\r\n\r\n public toggleHD() {\r\n this._hdToggled = !this._hdToggled;\r\n\r\n const scale = this._hdToggled ? Math.max(0.5, 1 / (window.devicePixelRatio || 2)) : 1;\r\n\r\n this.engine.setHardwareScalingLevel(scale);\r\n }\r\n\r\n protected _vrToggled: boolean = false;\r\n private _vrModelRepositioning: number = 0;\r\n protected _vrScale: number = 1;\r\n\r\n protected _vrInit: boolean = false;\r\n\r\n public toggleVR() {\r\n if (!this._vrInit) {\r\n this._initVR();\r\n }\r\n\r\n if (this.sceneManager.vrHelper && !this.sceneManager.vrHelper.isInVRMode) {\r\n // make sure the floor is set\r\n if (this.sceneManager.environmentHelper && this.sceneManager.environmentHelper.ground) {\r\n this.sceneManager.vrHelper.addFloorMesh(this.sceneManager.environmentHelper.ground);\r\n }\r\n\r\n this._vrToggled = true;\r\n this.sceneManager.vrHelper.enterVR();\r\n\r\n // position the vr camera to be in front of the object or wherever the user has configured it to be\r\n if (this.sceneManager.vrHelper.currentVRCamera && this.sceneManager.vrHelper.currentVRCamera !== this.sceneManager.camera) {\r\n if (this.configuration.vr && this.configuration.vr.cameraPosition !== undefined) {\r\n this.sceneManager.vrHelper.currentVRCamera.position.copyFromFloats(\r\n this.configuration.vr.cameraPosition.x,\r\n this.configuration.vr.cameraPosition.y,\r\n this.configuration.vr.cameraPosition.z\r\n );\r\n } else {\r\n this.sceneManager.vrHelper.currentVRCamera.position.copyFromFloats(0, this.sceneManager.vrHelper.currentVRCamera.position.y, -1);\r\n }\r\n (<TargetCamera>this.sceneManager.vrHelper.currentVRCamera).rotationQuaternion &&\r\n (<TargetCamera>this.sceneManager.vrHelper.currentVRCamera).rotationQuaternion.copyFromFloats(0, 0, 0, 1);\r\n // set the height of the model to be what the user has configured, or floating by default\r\n if (this.configuration.vr && this.configuration.vr.modelHeightCorrection !== undefined) {\r\n if (typeof this.configuration.vr.modelHeightCorrection === \"number\") {\r\n this._vrModelRepositioning = this.configuration.vr.modelHeightCorrection;\r\n } else if (this.configuration.vr.modelHeightCorrection) {\r\n this._vrModelRepositioning = this.sceneManager.vrHelper.currentVRCamera.position.y / 2;\r\n } else {\r\n this._vrModelRepositioning = 0;\r\n }\r\n }\r\n\r\n // scale the model\r\n if (this.sceneManager.models.length) {\r\n const boundingVectors = this.sceneManager.models[0].rootMesh.getHierarchyBoundingVectors();\r\n const sizeVec = boundingVectors.max.subtract(boundingVectors.min);\r\n const maxDimension = Math.max(sizeVec.x, sizeVec.y, sizeVec.z);\r\n this._vrScale = 1 / maxDimension;\r\n if (this.configuration.vr && this.configuration.vr.objectScaleFactor) {\r\n this._vrScale *= this.configuration.vr.objectScaleFactor;\r\n }\r\n\r\n this.sceneManager.models[0].rootMesh.scaling.scaleInPlace(this._vrScale);\r\n\r\n // reposition the object to \"float\" in front of the user\r\n this.sceneManager.models[0].rootMesh.position.y += this._vrModelRepositioning;\r\n this.sceneManager.models[0].rootMesh.rotationQuaternion = null;\r\n }\r\n\r\n // scale the environment to match the model\r\n if (this.sceneManager.environmentHelper) {\r\n this.sceneManager.environmentHelper.ground && this.sceneManager.environmentHelper.ground.scaling.scaleInPlace(this._vrScale);\r\n this.sceneManager.environmentHelper.skybox && this.sceneManager.environmentHelper.skybox.scaling.scaleInPlace(this._vrScale);\r\n }\r\n\r\n // post processing\r\n if (this.sceneManager.defaultRenderingPipelineEnabled && this.sceneManager.defaultRenderingPipeline) {\r\n this.sceneManager.defaultRenderingPipeline.imageProcessingEnabled = false;\r\n this.sceneManager.defaultRenderingPipeline.prepare();\r\n }\r\n } else {\r\n this._vrModelRepositioning = 0;\r\n }\r\n } else {\r\n if (this.sceneManager.vrHelper) {\r\n this.sceneManager.vrHelper.exitVR();\r\n }\r\n }\r\n }\r\n\r\n protected _initVR() {\r\n if (this.sceneManager.vrHelper) {\r\n this.observablesManager.onExitingVRObservable.add(() => {\r\n if (this._vrToggled) {\r\n this._vrToggled = false;\r\n\r\n // undo the scaling of the model\r\n if (this.sceneManager.models.length) {\r\n this.sceneManager.models[0].rootMesh.scaling.scaleInPlace(1 / this._vrScale);\r\n this.sceneManager.models[0].rootMesh.position.y -= this._vrModelRepositioning;\r\n }\r\n\r\n // undo the scaling of the environment\r\n if (this.sceneManager.environmentHelper) {\r\n this.sceneManager.environmentHelper.ground && this.sceneManager.environmentHelper.ground.scaling.scaleInPlace(1 / this._vrScale);\r\n this.sceneManager.environmentHelper.skybox && this.sceneManager.environmentHelper.skybox.scaling.scaleInPlace(1 / this._vrScale);\r\n }\r\n\r\n // post processing\r\n if (this.sceneManager.defaultRenderingPipelineEnabled && this.sceneManager.defaultRenderingPipeline) {\r\n this.sceneManager.defaultRenderingPipeline.imageProcessingEnabled = true;\r\n this.sceneManager.defaultRenderingPipeline.prepare();\r\n }\r\n\r\n // clear set height and width\r\n this.canvas.removeAttribute(\"height\");\r\n this.canvas.removeAttribute(\"width\");\r\n this.engine.resize();\r\n }\r\n });\r\n }\r\n\r\n this._vrInit = true;\r\n }\r\n\r\n /**\r\n * The resize function that will be registered with the window object\r\n */\r\n protected _resize = (): void => {\r\n // Only resize if Canvas is in the DOM\r\n if (!this.isCanvasInDOM()) {\r\n return;\r\n }\r\n\r\n if (this.canvas.clientWidth <= 0 || this.canvas.clientHeight <= 0) {\r\n return;\r\n }\r\n\r\n if (this.configuration.engine && this.configuration.engine.disableResize) {\r\n return;\r\n }\r\n\r\n this.engine.resize();\r\n };\r\n\r\n protected _onConfigurationLoaded(configuration: ViewerConfiguration) {\r\n this._configurationContainer.configuration = deepmerge(this.configuration || {}, configuration);\r\n if (this.configuration.observers) {\r\n this._configureObservers(this.configuration.observers);\r\n }\r\n // TODO remove this after testing, as this is done in the updateConfiguration as well.\r\n if (this.configuration.loaderPlugins) {\r\n Object.keys(this.configuration.loaderPlugins).forEach((name) => {\r\n if (this.configuration.loaderPlugins && this.configuration.loaderPlugins[name]) {\r\n this.modelLoader.addPlugin(name);\r\n }\r\n });\r\n }\r\n\r\n this.observablesManager.onViewerInitStartedObservable.notifyObservers(this);\r\n }\r\n\r\n /**\r\n * Force a single render loop execution.\r\n */\r\n public forceRender() {\r\n this._render(true);\r\n }\r\n\r\n /**\r\n * render loop that will be executed by the engine\r\n * @param force\r\n */\r\n protected _render = (force: boolean = false): void => {\r\n if (force || (this.sceneManager.scene && this.sceneManager.scene.activeCamera)) {\r\n if (this.runRenderLoop || force) {\r\n this.engine.performanceMonitor.enable();\r\n this.sceneManager.scene.render();\r\n this.onFrameRenderedObservable.notifyObservers(this);\r\n } else {\r\n this.engine.performanceMonitor.disable();\r\n\r\n // update camera instead of rendering\r\n this.sceneManager.scene.activeCamera && this.sceneManager.scene.activeCamera.update();\r\n }\r\n }\r\n };\r\n\r\n /**\r\n * Takes a screenshot of the scene and returns it as a base64 encoded png.\r\n * @param callback optional callback that will be triggered when screenshot is done.\r\n * @param width Optional screenshot width (default to 512).\r\n * @param height Optional screenshot height (default to 512).\r\n * @returns a promise with the screenshot data\r\n */\r\n public takeScreenshot(callback?: (data: string) => void, width = 0, height = 0): Promise<string> {\r\n width = width || this.canvas.clientWidth;\r\n height = height || this.canvas.clientHeight;\r\n\r\n // Create the screenshot\r\n return new Promise<string>((resolve, reject) => {\r\n try {\r\n Tools.CreateScreenshot(this.engine, this.sceneManager.camera, { width, height }, (data) => {\r\n if (callback) {\r\n callback(data);\r\n }\r\n resolve(data);\r\n });\r\n } catch (e) {\r\n reject(e);\r\n }\r\n });\r\n }\r\n\r\n /**\r\n * Update the current viewer configuration with new values.\r\n * Only provided information will be updated, old configuration values will be kept.\r\n * If this.configuration was manually changed, you can trigger this function with no parameters,\r\n * and the entire configuration will be updated.\r\n * @param newConfiguration the partial configuration to update or a URL to a JSON holding the updated configuration\r\n *\r\n */\r\n public updateConfiguration(newConfiguration: Partial<ViewerConfiguration> | string = this.configuration) {\r\n if (typeof newConfiguration === \"string\") {\r\n Tools.LoadFile(\r\n newConfiguration,\r\n (data) => {\r\n try {\r\n const newData = JSON.parse(data.toString()) as ViewerConfiguration;\r\n return this.updateConfiguration(newData);\r\n } catch (e) {\r\n Logger.Log(\"Error parsing file \" + newConfiguration);\r\n }\r\n },\r\n undefined,\r\n undefined,\r\n undefined,\r\n (error) => {\r\n Logger.Log([\"Error parsing file \" + newConfiguration, error]);\r\n }\r\n );\r\n } else {\r\n //backcompat\r\n processConfigurationCompatibility(newConfiguration);\r\n // update this.configuration with the new data\r\n this._configurationContainer.configuration = deepmerge(this.configuration || {}, newConfiguration);\r\n\r\n this.sceneManager.updateConfiguration(newConfiguration);\r\n\r\n // observers in configuration\r\n if (newConfiguration.observers) {\r\n this._configureObservers(newConfiguration.observers);\r\n }\r\n\r\n if (newConfiguration.loaderPlugins) {\r\n Object.keys(newConfiguration.loaderPlugins).forEach((name) => {\r\n if (newConfiguration.loaderPlugins && newConfiguration.loaderPlugins[name]) {\r\n this.modelLoader.addPlugin(name);\r\n }\r\n });\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * this is used to register native functions using the configuration object.\r\n * This will configure the observers.\r\n * @param observersConfiguration observers configuration\r\n */\r\n protected _configureObservers(observersConfiguration: IObserversConfiguration) {\r\n if (observersConfiguration.onEngineInit) {\r\n this.onEngineInitObservable.add((window as any)[observersConfiguration.onEngineInit]);\r\n } else {\r\n if (observersConfiguration.onEngineInit === \"\" && this.configuration.observers && this.configuration.observers!.onEngineInit) {\r\n this.onEngineInitObservable.removeCallback((window as any)[this.configuration.observers!.onEngineInit!]);\r\n }\r\n }\r\n if (observersConfiguration.onSceneInit) {\r\n this.onSceneInitObservable.add((window as any)[observersConfiguration.onSceneInit]);\r\n } else {\r\n if (observersConfiguration.onSceneInit === \"\" && this.configuration.observers && this.configuration.observers!.onSceneInit) {\r\n this.onSceneInitObservable.removeCallback((window as any)[this.configuration.observers!.onSceneInit!]);\r\n }\r\n }\r\n if (observersConfiguration.onModelLoaded) {\r\n this.onModelLoadedObservable.add((window as any)[observersConfiguration.onModelLoaded]);\r\n } else {\r\n if (observersConfiguration.onModelLoaded === \"\" && this.configuration.observers && this.configuration.observers!.onModelLoaded) {\r\n this.onModelLoadedObservable.removeCallback((window as any)[this.configuration.observers!.onModelLoaded!]);\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * Dispose the entire viewer including the scene and the engine\r\n */\r\n public dispose() {\r\n if (this._isDisposed) {\r\n return;\r\n }\r\n window.removeEventListener(\"resize\", this._resize);\r\n\r\n if (this.sceneManager) {\r\n if (this.sceneManager.scene && this.sceneManager.scene.activeCamera) {\r\n this.sceneManager.scene.activeCamera.detachControl();\r\n }\r\n this.sceneManager.dispose();\r\n }\r\n\r\n this._fpsTimeoutInterval && clearInterval(this._fpsTimeoutInterval);\r\n\r\n this.observablesManager.dispose();\r\n\r\n this.modelLoader.dispose();\r\n\r\n if (this.engine) {\r\n this.engine.dispose();\r\n }\r\n\r\n viewerManager.removeViewer(this);\r\n this._isDisposed = true;\r\n }\r\n\r\n /**\r\n * This will prepare the container element for the viewer\r\n */\r\n protected abstract _prepareContainerElement(): void;\r\n\r\n /**\r\n * This function will execute when the HTML templates finished initializing.\r\n * It should initialize the engine and continue execution.\r\n *\r\n * @returns The viewer object will be returned after the object was loaded.\r\n */\r\n protected _onTemplatesLoaded(): Promise<AbstractViewer> {\r\n return Promise.resolve(this);\r\n }\r\n\r\n /**\r\n * This will force the creation of an engine and a scene.\r\n * It will also load a model if preconfigured.\r\n * But first - it will load the extendible onTemplateLoaded()!\r\n * @returns A promise that will resolve when the template was loaded\r\n */\r\n protected _onTemplateLoaded(): Promise<AbstractViewer> {\r\n // check if viewer was disposed right after created\r\n if (this._isDisposed) {\r\n return Promise.reject(\"viewer was disposed\");\r\n }\r\n return this._onTemplatesLoaded().then(() => {\r\n const autoLoad = typeof this.configuration.model === \"string\" || (this.configuration.model && this.configuration.model.url);\r\n return this._initEngine()\r\n .then((engine) => {\r\n return this.onEngineInitObservable.notifyObserversWithPromise(engine);\r\n })\r\n .then(() => {\r\n this._initTelemetryEvents();\r\n if (autoLoad) {\r\n return this.loadModel(this.configuration.model!)\r\n .catch(() => {})\r\n .then(() => {\r\n return this.sceneManager.scene;\r\n });\r\n } else {\r\n return this.sceneManager.scene || this.sceneManager.initScene(this.configuration.scene);\r\n }\r\n })\r\n .then(() => {\r\n return this.onInitDoneObservable.notifyObserversWithPromise(this);\r\n })\r\n .catch((e) => {\r\n Tools.Warn(e.toString());\r\n return this;\r\n });\r\n });\r\n }\r\n\r\n /**\r\n * Initialize the engine. Returns a promise in case async calls are needed.\r\n *\r\n * @protected\r\n * @returns {Promise<Engine>}\r\n * @memberof Viewer\r\n */\r\n protected _initEngine(): Promise<Engine> {\r\n // init custom shaders\r\n this._injectCustomShaders();\r\n\r\n //let canvasElement = this.templateManager.getCanvas();\r\n if (!this.canvas) {\r\n return Promise.reject(\"Canvas element not found!\");\r\n }\r\n const config = this.configuration.engine || {};\r\n // TDO enable further configuration\r\n\r\n // check for webgl2 support, force-disable if needed.\r\n if (viewerGlobals.disableWebGL2Support) {\r\n config.engineOptions = config.engineOptions || {};\r\n config.engineOptions.disableWebGL2Support = true;\r\n }\r\n\r\n if (this.configuration[\"3dCommerceCertified\"]) {\r\n config.engineOptions = config.engineOptions || {};\r\n config.engineOptions.forceSRGBBufferSupportState = true;\r\n const loader = SceneLoader.GetPluginForExtension(\".gltf\");\r\n if (loader) {\r\n (loader as GLTFFileLoader).transparencyAsCoverage = true;\r\n }\r\n SceneLoader.OnPluginActivatedObservable.add((plugin) => {\r\n if (plugin.name === \"gltf\") {\r\n const loader = plugin as GLTFFileLoader;\r\n loader.transparencyAsCoverage = true;\r\n }\r\n });\r\n }\r\n\r\n this.engine = new Engine(this.canvas, !!config.antialiasing, config.engineOptions);\r\n\r\n if (!config.disableResize) {\r\n window.addEventListener(\"resize\", this._resize);\r\n }\r\n\r\n if (this.configuration.engine) {\r\n if (this.configuration.engine.adaptiveQuality) {\r\n const scale = Math.max(0.5, 1 / (window.devicePixelRatio || 2));\r\n this.engine.setHardwareScalingLevel(scale);\r\n }\r\n if (this.configuration.engine.hdEnabled) {\r\n this.toggleHD();\r\n }\r\n }\r\n\r\n // create a new template manager for this viewer\r\n this.sceneManager = new SceneManager(this.engine, this._configurationContainer, this.observablesManager);\r\n\r\n return Promise.resolve(this.engine);\r\n }\r\n\r\n private _isLoading: boolean;\r\n\r\n /**\r\n * Initialize a model loading. The returned object (a ViewerModel object) will be loaded in the background.\r\n * The difference between this and loadModel is that loadModel will fulfill the promise when the model finished loading.\r\n *\r\n * @param modelConfig model configuration to use when loading the model.\r\n * @param clearScene should the scene be cleared before loading this model\r\n * @returns a ViewerModel object that is not yet fully loaded.\r\n */\r\n public initModel(modelConfig: string | File | IModelConfiguration, clearScene: boolean = true): ViewerModel {\r\n let configuration: IModelConfiguration;\r\n if (typeof modelConfig === \"string\") {\r\n configuration = {\r\n url: modelConfig,\r\n };\r\n } else if (modelConfig instanceof File) {\r\n configuration = {\r\n file: modelConfig,\r\n root: \"file:\",\r\n };\r\n } else {\r\n configuration = modelConfig;\r\n }\r\n\r\n if (!configuration.url && !configuration.file) {\r\n throw new Error(\"no model provided\");\r\n }\r\n\r\n if (clearScene) {\r\n this.sceneManager.clearScene(true, false);\r\n }\r\n\r\n //merge the configuration for future models:\r\n if (this.configuration.model && typeof this.configuration.model === \"object\") {\r\n const globalConfig = deepmerge({}, this.configuration.model);\r\n configuration = deepmerge(globalConfig, configuration);\r\n if (modelConfig instanceof File) {\r\n configuration.file = modelConfig;\r\n }\r\n } else {\r\n this.configuration.model = configuration;\r\n }\r\n\r\n this._isLoading = true;\r\n\r\n const model = this.modelLoader.load(configuration);\r\n\r\n this.lastUsedLoader = model.loader;\r\n model.onLoadErrorObservable.add((errorObject) => {\r\n this.onModelLoadErrorObservable.notifyObserversWithPromise(errorObject);\r\n });\r\n model.onLoadProgressObservable.add((progressEvent) => {\r\n this.onModelLoadProgressObservable.notifyObserversWithPromise(progressEvent);\r\n });\r\n this.onLoaderInitObservable.notifyObserversWithPromise(this.lastUsedLoader);\r\n\r\n model.onLoadedObservable.add(() => {\r\n this._isLoading = false;\r\n });\r\n\r\n return model;\r\n }\r\n\r\n /**\r\n * load a model using the provided configuration.\r\n * This function, as opposed to initModel, will return a promise that resolves when the model is loaded, and rejects with error.\r\n * If you want to attach to the observables of the model, use initModel instead.\r\n *\r\n * @param modelConfig the model configuration or URL to load.\r\n * @param clearScene Should the scene be cleared before loading the model\r\n * @returns a Promise the fulfills when the model finished loading successfully.\r\n */\r\n public loadModel(modelConfig: string | File | IModelConfiguration, clearScene: boolean = true): Promise<ViewerModel> {\r\n if (this._isLoading) {\r\n // We can decide here whether or not to cancel the lst load, but the developer can do that.\r\n return Promise.reject(\"another model is curently being loaded.\");\r\n }\r\n\r\n return Promise.resolve(this.sceneManager.scene)\r\n .then((scene) => {\r\n if (!scene) {\r\n return this.sceneManager.initScene(this.configuration.scene);\r\n }\r\n return scene;\r\n })\r\n .then(() => {\r\n const model = this.initModel(modelConfig, clearScene);\r\n return new Promise<ViewerModel>((resolve, reject) => {\r\n // at this point, configuration.model is an object, not a string\r\n model.onLoadedObservable.add(() => {\r\n resolve(model);\r\n });\r\n model.onLoadErrorObservable.add((error) => {\r\n reject(error);\r\n });\r\n });\r\n });\r\n }\r\n\r\n private _fpsTimeoutInterval: number;\r\n\r\n protected _initTelemetryEvents() {\r\n telemetryManager.broadcast(\"Engine Capabilities\", this.baseId, this.engine.getCaps());\r\n telemetryManager.broadcast(\"Platform Details\", this.baseId, {\r\n userAgent: navigator.userAgent,\r\n platform: navigator.platform,\r\n });\r\n\r\n telemetryManager.flushWebGLErrors(this.engine, this.baseId);\r\n\r\n const trackFPS: Function = () => {\r\n telemetryManager.broadcast(\"Current FPS\", this.baseId, { fps: this.engine.getFps() });\r\n };\r\n\r\n trackFPS();\r\n // Track the FPS again after 60 seconds\r\n this._fpsTimeoutInterval = window.setInterval(trackFPS, 60 * 1000);\r\n }\r\n\r\n /**\r\n * Injects all the spectre shader in the babylon shader store\r\n */\r\n protected _injectCustomShaders(): void {\r\n const customShaders = this.configuration.customShaders;\r\n // Inject all the spectre shader in the babylon shader store.\r\n if (!customShaders) {\r\n return;\r\n }\r\n if (customShaders.shaders) {\r\n Object.keys(customShaders.shaders).forEach((key) => {\r\n // typescript considers a callback \"unsafe\", so... '!'\r\n Effect.ShadersStore[key] = customShaders!.shaders![key];\r\n });\r\n }\r\n if (customShaders.includes) {\r\n Object.keys(customShaders.includes).forEach((key) => {\r\n // typescript considers a callback \"unsafe\", so... '!'\r\n Effect.IncludesShadersStore[key] = customShaders!.includes![key];\r\n });\r\n }\r\n }\r\n}\r\n"]}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import { Observable } from "@babylonjs/core/Misc/observable.js";
|
|
2
|
+
import type { AbstractViewer } from "./viewer";
|
|
3
|
+
/**
|
|
4
|
+
* The viewer manager is the container for all viewers currently registered on this page.
|
|
5
|
+
* It is possible to have more than one viewer on a single page.
|
|
6
|
+
*/
|
|
7
|
+
export declare class ViewerManager {
|
|
8
|
+
private _viewers;
|
|
9
|
+
/**
|
|
10
|
+
* A callback that will be triggered when a new viewer was added
|
|
11
|
+
*/
|
|
12
|
+
onViewerAdded: (viewer: AbstractViewer) => void;
|
|
13
|
+
/**
|
|
14
|
+
* Will notify when a new viewer was added
|
|
15
|
+
*/
|
|
16
|
+
onViewerAddedObservable: Observable<AbstractViewer>;
|
|
17
|
+
/**
|
|
18
|
+
* Will notify when a viewer was removed (disposed)
|
|
19
|
+
*/
|
|
20
|
+
onViewerRemovedObservable: Observable<string>;
|
|
21
|
+
constructor();
|
|
22
|
+
/**
|
|
23
|
+
* Adding a new viewer to the viewer manager and start tracking it.
|
|
24
|
+
* @param viewer the viewer to add
|
|
25
|
+
*/
|
|
26
|
+
addViewer(viewer: AbstractViewer): void;
|
|
27
|
+
/**
|
|
28
|
+
* remove a viewer from the viewer manager
|
|
29
|
+
* @param viewer the viewer to remove
|
|
30
|
+
*/
|
|
31
|
+
removeViewer(viewer: AbstractViewer): void;
|
|
32
|
+
/**
|
|
33
|
+
* Get a viewer by its baseId (if the container element has an ID, it is the this is. if not, a random id was assigned)
|
|
34
|
+
* @param id the id of the HTMl element (or the viewer's, if none provided)
|
|
35
|
+
* @returns the viewer associated with the given id (if found)
|
|
36
|
+
*/
|
|
37
|
+
getViewerById(id: string): AbstractViewer;
|
|
38
|
+
/**
|
|
39
|
+
* Get a viewer using a container element
|
|
40
|
+
* @param element the HTML element to search viewers associated with
|
|
41
|
+
* @returns the viewer associated with the given element (if found)
|
|
42
|
+
*/
|
|
43
|
+
getViewerByHTMLElement(element: HTMLElement): AbstractViewer | null;
|
|
44
|
+
/**
|
|
45
|
+
* Get a promise that will fulfill when this viewer was initialized.
|
|
46
|
+
* Since viewer initialization and template injection is asynchronous, using the promise will guaranty that
|
|
47
|
+
* you will get the viewer after everything was already configured.
|
|
48
|
+
* @param id the viewer id to find
|
|
49
|
+
* @returns a promise that will resolve to the viewer
|
|
50
|
+
*/
|
|
51
|
+
getViewerPromiseById(id: string): Promise<AbstractViewer>;
|
|
52
|
+
private _onViewerAdded;
|
|
53
|
+
/**
|
|
54
|
+
* dispose the manager and all of its associated viewers
|
|
55
|
+
*/
|
|
56
|
+
dispose(): void;
|
|
57
|
+
}
|
|
58
|
+
export declare const viewerManager: ViewerManager;
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
import { Observable } from "@babylonjs/core/Misc/observable.js";
|
|
2
|
+
/**
|
|
3
|
+
* The viewer manager is the container for all viewers currently registered on this page.
|
|
4
|
+
* It is possible to have more than one viewer on a single page.
|
|
5
|
+
*/
|
|
6
|
+
var ViewerManager = /** @class */ (function () {
|
|
7
|
+
function ViewerManager() {
|
|
8
|
+
this._viewers = {};
|
|
9
|
+
this.onViewerAddedObservable = new Observable();
|
|
10
|
+
this.onViewerRemovedObservable = new Observable();
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Adding a new viewer to the viewer manager and start tracking it.
|
|
14
|
+
* @param viewer the viewer to add
|
|
15
|
+
*/
|
|
16
|
+
ViewerManager.prototype.addViewer = function (viewer) {
|
|
17
|
+
this._viewers[viewer.getBaseId()] = viewer;
|
|
18
|
+
this._onViewerAdded(viewer);
|
|
19
|
+
};
|
|
20
|
+
/**
|
|
21
|
+
* remove a viewer from the viewer manager
|
|
22
|
+
* @param viewer the viewer to remove
|
|
23
|
+
*/
|
|
24
|
+
ViewerManager.prototype.removeViewer = function (viewer) {
|
|
25
|
+
var id = viewer.getBaseId();
|
|
26
|
+
delete this._viewers[id];
|
|
27
|
+
this.onViewerRemovedObservable.notifyObservers(id);
|
|
28
|
+
};
|
|
29
|
+
/**
|
|
30
|
+
* Get a viewer by its baseId (if the container element has an ID, it is the this is. if not, a random id was assigned)
|
|
31
|
+
* @param id the id of the HTMl element (or the viewer's, if none provided)
|
|
32
|
+
* @returns the viewer associated with the given id (if found)
|
|
33
|
+
*/
|
|
34
|
+
ViewerManager.prototype.getViewerById = function (id) {
|
|
35
|
+
return this._viewers[id];
|
|
36
|
+
};
|
|
37
|
+
/**
|
|
38
|
+
* Get a viewer using a container element
|
|
39
|
+
* @param element the HTML element to search viewers associated with
|
|
40
|
+
* @returns the viewer associated with the given element (if found)
|
|
41
|
+
*/
|
|
42
|
+
ViewerManager.prototype.getViewerByHTMLElement = function (element) {
|
|
43
|
+
for (var id in this._viewers) {
|
|
44
|
+
if (this._viewers[id].containerElement === element) {
|
|
45
|
+
return this.getViewerById(id);
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
return null;
|
|
49
|
+
};
|
|
50
|
+
/**
|
|
51
|
+
* Get a promise that will fulfill when this viewer was initialized.
|
|
52
|
+
* Since viewer initialization and template injection is asynchronous, using the promise will guaranty that
|
|
53
|
+
* you will get the viewer after everything was already configured.
|
|
54
|
+
* @param id the viewer id to find
|
|
55
|
+
* @returns a promise that will resolve to the viewer
|
|
56
|
+
*/
|
|
57
|
+
ViewerManager.prototype.getViewerPromiseById = function (id) {
|
|
58
|
+
var _this = this;
|
|
59
|
+
return new Promise(function (resolve) {
|
|
60
|
+
var localViewer = _this.getViewerById(id);
|
|
61
|
+
if (localViewer) {
|
|
62
|
+
return resolve(localViewer);
|
|
63
|
+
}
|
|
64
|
+
var viewerFunction = function (viewer) {
|
|
65
|
+
if (viewer.getBaseId() === id) {
|
|
66
|
+
resolve(viewer);
|
|
67
|
+
_this.onViewerAddedObservable.removeCallback(viewerFunction);
|
|
68
|
+
}
|
|
69
|
+
};
|
|
70
|
+
_this.onViewerAddedObservable.add(viewerFunction);
|
|
71
|
+
});
|
|
72
|
+
};
|
|
73
|
+
ViewerManager.prototype._onViewerAdded = function (viewer) {
|
|
74
|
+
this.onViewerAdded && this.onViewerAdded(viewer);
|
|
75
|
+
this.onViewerAddedObservable.notifyObservers(viewer);
|
|
76
|
+
};
|
|
77
|
+
/**
|
|
78
|
+
* dispose the manager and all of its associated viewers
|
|
79
|
+
*/
|
|
80
|
+
ViewerManager.prototype.dispose = function () {
|
|
81
|
+
for (var id in this._viewers) {
|
|
82
|
+
this._viewers[id].dispose();
|
|
83
|
+
}
|
|
84
|
+
this.onViewerAddedObservable.clear();
|
|
85
|
+
this.onViewerRemovedObservable.clear();
|
|
86
|
+
};
|
|
87
|
+
return ViewerManager;
|
|
88
|
+
}());
|
|
89
|
+
export { ViewerManager };
|
|
90
|
+
export var viewerManager = new ViewerManager();
|
|
91
|
+
//# sourceMappingURL=viewerManager.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"viewerManager.js","sourceRoot":"","sources":["../../../../tools/viewer/src/viewer/viewerManager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,2CAA6B;AAGlD;;;GAGG;AACH;IAgBI;QACI,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;QACnB,IAAI,CAAC,uBAAuB,GAAG,IAAI,UAAU,EAAE,CAAC;QAChD,IAAI,CAAC,yBAAyB,GAAG,IAAI,UAAU,EAAE,CAAC;IACtD,CAAC;IAED;;;OAGG;IACI,iCAAS,GAAhB,UAAiB,MAAsB;QACnC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC,GAAG,MAAM,CAAC;QAC3C,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;IAChC,CAAC;IAED;;;OAGG;IACI,oCAAY,GAAnB,UAAoB,MAAsB;QACtC,IAAM,EAAE,GAAG,MAAM,CAAC,SAAS,EAAE,CAAC;QAC9B,OAAO,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;QACzB,IAAI,CAAC,yBAAyB,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC;IACvD,CAAC;IAED;;;;OAIG;IACI,qCAAa,GAApB,UAAqB,EAAU;QAC3B,OAAO,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;IAC7B,CAAC;IAED;;;;OAIG;IACI,8CAAsB,GAA7B,UAA8B,OAAoB;QAC9C,KAAK,IAAM,EAAE,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAC7B,IAAI,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,gBAAgB,KAAK,OAAO,EAAE,CAAC;gBACjD,OAAO,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;YAClC,CAAC;QACL,CAAC;QAED,OAAO,IAAI,CAAC;IAChB,CAAC;IAED;;;;;;OAMG;IACI,4CAAoB,GAA3B,UAA4B,EAAU;QAAtC,iBAcC;QAbG,OAAO,IAAI,OAAO,CAAC,UAAC,OAAO;YACvB,IAAM,WAAW,GAAG,KAAI,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;YAC3C,IAAI,WAAW,EAAE,CAAC;gBACd,OAAO,OAAO,CAAC,WAAW,CAAC,CAAC;YAChC,CAAC;YACD,IAAM,cAAc,GAAG,UAAC,MAAsB;gBAC1C,IAAI,MAAM,CAAC,SAAS,EAAE,KAAK,EAAE,EAAE,CAAC;oBAC5B,OAAO,CAAC,MAAM,CAAC,CAAC;oBAChB,KAAI,CAAC,uBAAuB,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC;gBAChE,CAAC;YACL,CAAC,CAAC;YACF,KAAI,CAAC,uBAAuB,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;QACrD,CAAC,CAAC,CAAC;IACP,CAAC;IAEO,sCAAc,GAAtB,UAAuB,MAAsB;QACzC,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;QACjD,IAAI,CAAC,uBAAuB,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;IACzD,CAAC;IAED;;OAEG;IACI,+BAAO,GAAd;QACI,KAAK,IAAM,EAAE,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAC7B,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC;QAChC,CAAC;QAED,IAAI,CAAC,uBAAuB,CAAC,KAAK,EAAE,CAAC;QACrC,IAAI,CAAC,yBAAyB,CAAC,KAAK,EAAE,CAAC;IAC3C,CAAC;IACL,oBAAC;AAAD,CAAC,AAxGD,IAwGC;;AAED,MAAM,CAAC,IAAM,aAAa,GAAG,IAAI,aAAa,EAAE,CAAC","sourcesContent":["import { Observable } from \"core/Misc/observable\";\r\nimport type { AbstractViewer } from \"./viewer\";\r\n\r\n/**\r\n * The viewer manager is the container for all viewers currently registered on this page.\r\n * It is possible to have more than one viewer on a single page.\r\n */\r\nexport class ViewerManager {\r\n private _viewers: { [key: string]: AbstractViewer };\r\n\r\n /**\r\n * A callback that will be triggered when a new viewer was added\r\n */\r\n public onViewerAdded: (viewer: AbstractViewer) => void;\r\n /**\r\n * Will notify when a new viewer was added\r\n */\r\n public onViewerAddedObservable: Observable<AbstractViewer>;\r\n /**\r\n * Will notify when a viewer was removed (disposed)\r\n */\r\n public onViewerRemovedObservable: Observable<string>;\r\n\r\n constructor() {\r\n this._viewers = {};\r\n this.onViewerAddedObservable = new Observable();\r\n this.onViewerRemovedObservable = new Observable();\r\n }\r\n\r\n /**\r\n * Adding a new viewer to the viewer manager and start tracking it.\r\n * @param viewer the viewer to add\r\n */\r\n public addViewer(viewer: AbstractViewer) {\r\n this._viewers[viewer.getBaseId()] = viewer;\r\n this._onViewerAdded(viewer);\r\n }\r\n\r\n /**\r\n * remove a viewer from the viewer manager\r\n * @param viewer the viewer to remove\r\n */\r\n public removeViewer(viewer: AbstractViewer) {\r\n const id = viewer.getBaseId();\r\n delete this._viewers[id];\r\n this.onViewerRemovedObservable.notifyObservers(id);\r\n }\r\n\r\n /**\r\n * Get a viewer by its baseId (if the container element has an ID, it is the this is. if not, a random id was assigned)\r\n * @param id the id of the HTMl element (or the viewer's, if none provided)\r\n * @returns the viewer associated with the given id (if found)\r\n */\r\n public getViewerById(id: string): AbstractViewer {\r\n return this._viewers[id];\r\n }\r\n\r\n /**\r\n * Get a viewer using a container element\r\n * @param element the HTML element to search viewers associated with\r\n * @returns the viewer associated with the given element (if found)\r\n */\r\n public getViewerByHTMLElement(element: HTMLElement) {\r\n for (const id in this._viewers) {\r\n if (this._viewers[id].containerElement === element) {\r\n return this.getViewerById(id);\r\n }\r\n }\r\n\r\n return null;\r\n }\r\n\r\n /**\r\n * Get a promise that will fulfill when this viewer was initialized.\r\n * Since viewer initialization and template injection is asynchronous, using the promise will guaranty that\r\n * you will get the viewer after everything was already configured.\r\n * @param id the viewer id to find\r\n * @returns a promise that will resolve to the viewer\r\n */\r\n public getViewerPromiseById(id: string): Promise<AbstractViewer> {\r\n return new Promise((resolve) => {\r\n const localViewer = this.getViewerById(id);\r\n if (localViewer) {\r\n return resolve(localViewer);\r\n }\r\n const viewerFunction = (viewer: AbstractViewer) => {\r\n if (viewer.getBaseId() === id) {\r\n resolve(viewer);\r\n this.onViewerAddedObservable.removeCallback(viewerFunction);\r\n }\r\n };\r\n this.onViewerAddedObservable.add(viewerFunction);\r\n });\r\n }\r\n\r\n private _onViewerAdded(viewer: AbstractViewer) {\r\n this.onViewerAdded && this.onViewerAdded(viewer);\r\n this.onViewerAddedObservable.notifyObservers(viewer);\r\n }\r\n\r\n /**\r\n * dispose the manager and all of its associated viewers\r\n */\r\n public dispose() {\r\n for (const id in this._viewers) {\r\n this._viewers[id].dispose();\r\n }\r\n\r\n this.onViewerAddedObservable.clear();\r\n this.onViewerRemovedObservable.clear();\r\n }\r\n}\r\n\r\nexport const viewerManager = new ViewerManager();\r\n"]}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { AbstractViewer } from "./viewer";
|
|
2
|
+
import { ConfigurationLoader } from "../configuration/loader";
|
|
3
|
+
/**
|
|
4
|
+
* The AbstractViewer is the center of Babylon's viewer.
|
|
5
|
+
* It is the basic implementation of the default viewer and is responsible of loading and showing the model and the templates
|
|
6
|
+
*/
|
|
7
|
+
export declare abstract class AbstractViewerWithTemplate extends AbstractViewer {
|
|
8
|
+
protected getConfigurationLoader(): ConfigurationLoader;
|
|
9
|
+
}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { __extends } from "@babylonjs/core/tslib.es6.js";
|
|
2
|
+
import { AbstractViewer } from "./viewer.js";
|
|
3
|
+
import { ConfigurationLoader } from "../configuration/loader.js";
|
|
4
|
+
/**
|
|
5
|
+
* The AbstractViewer is the center of Babylon's viewer.
|
|
6
|
+
* It is the basic implementation of the default viewer and is responsible of loading and showing the model and the templates
|
|
7
|
+
*/
|
|
8
|
+
var AbstractViewerWithTemplate = /** @class */ (function (_super) {
|
|
9
|
+
__extends(AbstractViewerWithTemplate, _super);
|
|
10
|
+
function AbstractViewerWithTemplate() {
|
|
11
|
+
return _super !== null && _super.apply(this, arguments) || this;
|
|
12
|
+
}
|
|
13
|
+
// eslint-disable-next-line @typescript-eslint/naming-convention
|
|
14
|
+
AbstractViewerWithTemplate.prototype.getConfigurationLoader = function () {
|
|
15
|
+
return new ConfigurationLoader();
|
|
16
|
+
};
|
|
17
|
+
return AbstractViewerWithTemplate;
|
|
18
|
+
}(AbstractViewer));
|
|
19
|
+
export { AbstractViewerWithTemplate };
|
|
20
|
+
//# sourceMappingURL=viewerWithTemplate.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"viewerWithTemplate.js","sourceRoot":"","sources":["../../../../tools/viewer/src/viewer/viewerWithTemplate.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAC1C,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAE9D;;;GAGG;AACH;IAAyD,8CAAc;IAAvE;;IAKA,CAAC;IAJG,gEAAgE;IAC7C,2DAAsB,GAAzC;QACI,OAAO,IAAI,mBAAmB,EAAE,CAAC;IACrC,CAAC;IACL,iCAAC;AAAD,CAAC,AALD,CAAyD,cAAc,GAKtE","sourcesContent":["import { AbstractViewer } from \"./viewer\";\r\nimport { ConfigurationLoader } from \"../configuration/loader\";\r\n\r\n/**\r\n * The AbstractViewer is the center of Babylon's viewer.\r\n * It is the basic implementation of the default viewer and is responsible of loading and showing the model and the templates\r\n */\r\nexport abstract class AbstractViewerWithTemplate extends AbstractViewer {\r\n // eslint-disable-next-line @typescript-eslint/naming-convention\r\n protected override getConfigurationLoader() {\r\n return new ConfigurationLoader();\r\n }\r\n}\r\n"]}
|
package/assets/photoStudio.env
DELETED
|
Binary file
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"babylon-viewer.esm.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"babylon-viewer.esm.min.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{v as e,aX as i,s,t,aP as a,aQ as o}from"./index-BHIM4QBr.esm.min.js";import{a as n}from"./spotLight-DXuSbTaJ.esm.min.js";import{A as l,G as r}from"./glTFLoader-CkL-dxBD.esm.min.js";import"./rawTexture-CCCnj14W.esm.min.js";import"./assetContainer-DLSDgjTx.esm.min.js";import"./glTFLoaderAnimation-Cq2ziV9o.esm.min.js";const d="EXT_lights_ies";class h{constructor(e){this.name=d,this._loader=e,this.enabled=this._loader.isExtensionUsed(d)}dispose(){this._loader=null,delete this._lights}onLoading(){const e=this._loader.gltf.extensions;if(e&&e[this.name]){const i=e[this.name];this._lights=i.lights,l.Assign(this._lights)}}loadNodeAsync(a,o,d){return r.LoadExtensionAsync(a,o,this.name,(async(h,_)=>{let m,c;this._loader._allMaterialsDirtyRequired=!0;const f=await this._loader.loadNodeAsync(a,o,(t=>{c=l.Get(h,this._lights,_.light);const a=c.name||t.name;this._loader.babylonScene._blockEntityCollection=!!this._loader._assetContainer,m=new n(a,e.Zero(),e.Backward(),0,1,this._loader.babylonScene),m.angle=Math.PI/2,m.innerAngle=0,m._parentContainer=this._loader._assetContainer,this._loader.babylonScene._blockEntityCollection=!1,c._babylonLight=m,m.falloffType=i.FALLOFF_GLTF,m.diffuse=_.color?s.FromArray(_.color):s.White(),m.intensity=_.multiplier||1,m.range=Number.MAX_VALUE,m.parent=t,this._loader._babylonLights.push(m),r.AddPointerMetadata(m,h),d(t)}));let b;if(c.uri)b=await this._loader.loadUriAsync(a,c,c.uri);else{const e=l.Get(`${a}/bufferView`,this._loader.gltf.bufferViews,c.bufferView);b=await this._loader.loadBufferViewAsync(`/bufferViews/${e.index}`,e)}return m.iesProfileTexture=new t(name+"_iesProfile",this._loader.babylonScene,!0,!1,void 0,null,null,b,!0,void 0,void 0,void 0,void 0,".ies"),f}))}}a(d),o(d,!0,(e=>new h(e)));export{h as EXT_lights_ies};
|
|
2
|
-
//# sourceMappingURL=EXT_lights_ies-gxFyrTPG.esm.min.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"EXT_lights_ies-gxFyrTPG.esm.min.js","sources":["../../../../../dev/loaders/dist/glTF/2.0/Extensions/EXT_lights_ies.js"],"sourcesContent":["import { Vector3 } from \"core/Maths/math.vector\";\nimport { Color3 } from \"core/Maths/math.color\";\nimport { SpotLight } from \"core/Lights/spotLight\";\nimport { Light } from \"core/Lights/light\";\nimport { GLTFLoader, ArrayItem } from \"../glTFLoader\";\nimport { registerGLTFExtension, unregisterGLTFExtension } from \"../glTFLoaderExtensionRegistry\";\nimport { Texture } from \"core/Materials/Textures/texture\";\nconst NAME = \"EXT_lights_ies\";\n/**\n * [Specification](https://github.com/KhronosGroup/glTF/tree/main/extensions/2.0/Vendor/EXT_lights_ies)\n */\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport class EXT_lights_ies {\n /**\n * @internal\n */\n constructor(loader) {\n /**\n * The name of this extension.\n */\n this.name = NAME;\n this._loader = loader;\n this.enabled = this._loader.isExtensionUsed(NAME);\n }\n /** @internal */\n dispose() {\n this._loader = null;\n delete this._lights;\n }\n /** @internal */\n onLoading() {\n const extensions = this._loader.gltf.extensions;\n if (extensions && extensions[this.name]) {\n const extension = extensions[this.name];\n this._lights = extension.lights;\n ArrayItem.Assign(this._lights);\n }\n }\n /**\n * @internal\n */\n loadNodeAsync(context, node, assign) {\n return GLTFLoader.LoadExtensionAsync(context, node, this.name, async (extensionContext, extension) => {\n this._loader._allMaterialsDirtyRequired = true;\n let babylonSpotLight;\n let light;\n const transformNode = await this._loader.loadNodeAsync(context, node, (babylonMesh) => {\n light = ArrayItem.Get(extensionContext, this._lights, extension.light);\n const name = light.name || babylonMesh.name;\n this._loader.babylonScene._blockEntityCollection = !!this._loader._assetContainer;\n babylonSpotLight = new SpotLight(name, Vector3.Zero(), Vector3.Backward(), 0, 1, this._loader.babylonScene);\n babylonSpotLight.angle = Math.PI / 2;\n babylonSpotLight.innerAngle = 0;\n babylonSpotLight._parentContainer = this._loader._assetContainer;\n this._loader.babylonScene._blockEntityCollection = false;\n light._babylonLight = babylonSpotLight;\n babylonSpotLight.falloffType = Light.FALLOFF_GLTF;\n babylonSpotLight.diffuse = extension.color ? Color3.FromArray(extension.color) : Color3.White();\n babylonSpotLight.intensity = extension.multiplier || 1;\n babylonSpotLight.range = Number.MAX_VALUE;\n babylonSpotLight.parent = babylonMesh;\n this._loader._babylonLights.push(babylonSpotLight);\n GLTFLoader.AddPointerMetadata(babylonSpotLight, extensionContext);\n assign(babylonMesh);\n });\n // Load the profile\n let bufferData;\n if (light.uri) {\n bufferData = await this._loader.loadUriAsync(context, light, light.uri);\n }\n else {\n const bufferView = ArrayItem.Get(`${context}/bufferView`, this._loader.gltf.bufferViews, light.bufferView);\n bufferData = await this._loader.loadBufferViewAsync(`/bufferViews/${bufferView.index}`, bufferView);\n }\n babylonSpotLight.iesProfileTexture = new Texture(name + \"_iesProfile\", this._loader.babylonScene, true, false, undefined, null, null, bufferData, true, undefined, undefined, undefined, undefined, \".ies\");\n return transformNode;\n });\n }\n}\nunregisterGLTFExtension(NAME);\nregisterGLTFExtension(NAME, true, (loader) => new EXT_lights_ies(loader));\n//# sourceMappingURL=EXT_lights_ies.js.map"],"names":["NAME","EXT_lights_ies","constructor","loader","this","name","_loader","enabled","isExtensionUsed","dispose","_lights","onLoading","extensions","gltf","extension","lights","ArrayItem","Assign","loadNodeAsync","context","node","assign","GLTFLoader","LoadExtensionAsync","async","extensionContext","babylonSpotLight","light","_allMaterialsDirtyRequired","transformNode","babylonMesh","Get","babylonScene","_blockEntityCollection","_assetContainer","SpotLight","Vector3","Zero","Backward","angle","Math","PI","innerAngle","_parentContainer","_babylonLight","falloffType","Light","FALLOFF_GLTF","diffuse","color","Color3","FromArray","White","intensity","multiplier","range","Number","MAX_VALUE","parent","_babylonLights","push","AddPointerMetadata","bufferData","uri","loadUriAsync","bufferView","bufferViews","loadBufferViewAsync","index","iesProfileTexture","Texture","undefined","unregisterGLTFExtension","registerGLTFExtension"],"mappings":"oUAOA,MAAMA,EAAO,iBAKN,MAAMC,EAIT,WAAAC,CAAYC,GAIRC,KAAKC,KAAOL,EACZI,KAAKE,QAAUH,EACfC,KAAKG,QAAUH,KAAKE,QAAQE,gBAAgBR,EACpD,CAEI,OAAAS,GACIL,KAAKE,QAAU,YACRF,KAAKM,OACpB,CAEI,SAAAC,GACI,MAAMC,EAAaR,KAAKE,QAAQO,KAAKD,WACrC,GAAIA,GAAcA,EAAWR,KAAKC,MAAO,CACrC,MAAMS,EAAYF,EAAWR,KAAKC,MAClCD,KAAKM,QAAUI,EAAUC,OACzBC,EAAUC,OAAOb,KAAKM,QAClC,CACA,CAII,aAAAQ,CAAcC,EAASC,EAAMC,GACzB,OAAOC,EAAWC,mBAAmBJ,EAASC,EAAMhB,KAAKC,MAAMmB,MAAOC,EAAkBX,KAEpF,IAAIY,EACAC,EAFJvB,KAAKE,QAAQsB,4BAA6B,EAG1C,MAAMC,QAAsBzB,KAAKE,QAAQY,cAAcC,EAASC,GAAOU,IACnEH,EAAQX,EAAUe,IAAIN,EAAkBrB,KAAKM,QAASI,EAAUa,OAChE,MAAMtB,EAAOsB,EAAMtB,MAAQyB,EAAYzB,KACvCD,KAAKE,QAAQ0B,aAAaC,yBAA2B7B,KAAKE,QAAQ4B,gBAClER,EAAmB,IAAIS,EAAU9B,EAAM+B,EAAQC,OAAQD,EAAQE,WAAY,EAAG,EAAGlC,KAAKE,QAAQ0B,cAC9FN,EAAiBa,MAAQC,KAAKC,GAAK,EACnCf,EAAiBgB,WAAa,EAC9BhB,EAAiBiB,iBAAmBvC,KAAKE,QAAQ4B,gBACjD9B,KAAKE,QAAQ0B,aAAaC,wBAAyB,EACnDN,EAAMiB,cAAgBlB,EACtBA,EAAiBmB,YAAcC,EAAMC,aACrCrB,EAAiBsB,QAAUlC,EAAUmC,MAAQC,EAAOC,UAAUrC,EAAUmC,OAASC,EAAOE,QACxF1B,EAAiB2B,UAAYvC,EAAUwC,YAAc,EACrD5B,EAAiB6B,MAAQC,OAAOC,UAChC/B,EAAiBgC,OAAS5B,EAC1B1B,KAAKE,QAAQqD,eAAeC,KAAKlC,GACjCJ,EAAWuC,mBAAmBnC,EAAkBD,GAChDJ,EAAOS,EAAY,IAGvB,IAAIgC,EACJ,GAAInC,EAAMoC,IACND,QAAmB1D,KAAKE,QAAQ0D,aAAa7C,EAASQ,EAAOA,EAAMoC,SAElE,CACD,MAAME,EAAajD,EAAUe,IAAI,GAAGZ,eAAsBf,KAAKE,QAAQO,KAAKqD,YAAavC,EAAMsC,YAC/FH,QAAmB1D,KAAKE,QAAQ6D,oBAAoB,gBAAgBF,EAAWG,QAASH,EACxG,CAEY,OADAvC,EAAiB2C,kBAAoB,IAAIC,EAAQjE,KAAO,cAAeD,KAAKE,QAAQ0B,cAAc,GAAM,OAAOuC,EAAW,KAAM,KAAMT,GAAY,OAAMS,OAAWA,OAAWA,OAAWA,EAAW,QAC7L1C,CAAa,GAEhC,EAEA2C,EAAwBxE,GACxByE,EAAsBzE,GAAM,GAAOG,GAAW,IAAIF,EAAeE"}
|
|
@@ -1,84 +0,0 @@
|
|
|
1
|
-
import { v as Vector3, aX as Light, s as Color3, t as Texture, aP as unregisterGLTFExtension, aQ as registerGLTFExtension } from './index-CtkZLm9J.esm.js';
|
|
2
|
-
import { a as SpotLight } from './spotLight-Ca0-j1Op.esm.js';
|
|
3
|
-
import { A as ArrayItem, G as GLTFLoader } from './glTFLoader-IEHRfiUn.esm.js';
|
|
4
|
-
import './rawTexture-78KJgWfq.esm.js';
|
|
5
|
-
import './assetContainer-cm8rvay3.esm.js';
|
|
6
|
-
import './glTFLoaderAnimation-CV32Nmqb.esm.js';
|
|
7
|
-
|
|
8
|
-
const NAME = "EXT_lights_ies";
|
|
9
|
-
/**
|
|
10
|
-
* [Specification](https://github.com/KhronosGroup/glTF/tree/main/extensions/2.0/Vendor/EXT_lights_ies)
|
|
11
|
-
*/
|
|
12
|
-
// eslint-disable-next-line @typescript-eslint/naming-convention
|
|
13
|
-
class EXT_lights_ies {
|
|
14
|
-
/**
|
|
15
|
-
* @internal
|
|
16
|
-
*/
|
|
17
|
-
constructor(loader) {
|
|
18
|
-
/**
|
|
19
|
-
* The name of this extension.
|
|
20
|
-
*/
|
|
21
|
-
this.name = NAME;
|
|
22
|
-
this._loader = loader;
|
|
23
|
-
this.enabled = this._loader.isExtensionUsed(NAME);
|
|
24
|
-
}
|
|
25
|
-
/** @internal */
|
|
26
|
-
dispose() {
|
|
27
|
-
this._loader = null;
|
|
28
|
-
delete this._lights;
|
|
29
|
-
}
|
|
30
|
-
/** @internal */
|
|
31
|
-
onLoading() {
|
|
32
|
-
const extensions = this._loader.gltf.extensions;
|
|
33
|
-
if (extensions && extensions[this.name]) {
|
|
34
|
-
const extension = extensions[this.name];
|
|
35
|
-
this._lights = extension.lights;
|
|
36
|
-
ArrayItem.Assign(this._lights);
|
|
37
|
-
}
|
|
38
|
-
}
|
|
39
|
-
/**
|
|
40
|
-
* @internal
|
|
41
|
-
*/
|
|
42
|
-
loadNodeAsync(context, node, assign) {
|
|
43
|
-
return GLTFLoader.LoadExtensionAsync(context, node, this.name, async (extensionContext, extension) => {
|
|
44
|
-
this._loader._allMaterialsDirtyRequired = true;
|
|
45
|
-
let babylonSpotLight;
|
|
46
|
-
let light;
|
|
47
|
-
const transformNode = await this._loader.loadNodeAsync(context, node, (babylonMesh) => {
|
|
48
|
-
light = ArrayItem.Get(extensionContext, this._lights, extension.light);
|
|
49
|
-
const name = light.name || babylonMesh.name;
|
|
50
|
-
this._loader.babylonScene._blockEntityCollection = !!this._loader._assetContainer;
|
|
51
|
-
babylonSpotLight = new SpotLight(name, Vector3.Zero(), Vector3.Backward(), 0, 1, this._loader.babylonScene);
|
|
52
|
-
babylonSpotLight.angle = Math.PI / 2;
|
|
53
|
-
babylonSpotLight.innerAngle = 0;
|
|
54
|
-
babylonSpotLight._parentContainer = this._loader._assetContainer;
|
|
55
|
-
this._loader.babylonScene._blockEntityCollection = false;
|
|
56
|
-
light._babylonLight = babylonSpotLight;
|
|
57
|
-
babylonSpotLight.falloffType = Light.FALLOFF_GLTF;
|
|
58
|
-
babylonSpotLight.diffuse = extension.color ? Color3.FromArray(extension.color) : Color3.White();
|
|
59
|
-
babylonSpotLight.intensity = extension.multiplier || 1;
|
|
60
|
-
babylonSpotLight.range = Number.MAX_VALUE;
|
|
61
|
-
babylonSpotLight.parent = babylonMesh;
|
|
62
|
-
this._loader._babylonLights.push(babylonSpotLight);
|
|
63
|
-
GLTFLoader.AddPointerMetadata(babylonSpotLight, extensionContext);
|
|
64
|
-
assign(babylonMesh);
|
|
65
|
-
});
|
|
66
|
-
// Load the profile
|
|
67
|
-
let bufferData;
|
|
68
|
-
if (light.uri) {
|
|
69
|
-
bufferData = await this._loader.loadUriAsync(context, light, light.uri);
|
|
70
|
-
}
|
|
71
|
-
else {
|
|
72
|
-
const bufferView = ArrayItem.Get(`${context}/bufferView`, this._loader.gltf.bufferViews, light.bufferView);
|
|
73
|
-
bufferData = await this._loader.loadBufferViewAsync(`/bufferViews/${bufferView.index}`, bufferView);
|
|
74
|
-
}
|
|
75
|
-
babylonSpotLight.iesProfileTexture = new Texture(name + "_iesProfile", this._loader.babylonScene, true, false, undefined, null, null, bufferData, true, undefined, undefined, undefined, undefined, ".ies");
|
|
76
|
-
return transformNode;
|
|
77
|
-
});
|
|
78
|
-
}
|
|
79
|
-
}
|
|
80
|
-
unregisterGLTFExtension(NAME);
|
|
81
|
-
registerGLTFExtension(NAME, true, (loader) => new EXT_lights_ies(loader));
|
|
82
|
-
|
|
83
|
-
export { EXT_lights_ies };
|
|
84
|
-
//# sourceMappingURL=EXT_lights_ies-pE68tmBj.esm.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"EXT_lights_ies-pE68tmBj.esm.js","sources":["../../../../../dev/loaders/dist/glTF/2.0/Extensions/EXT_lights_ies.js"],"sourcesContent":["import { Vector3 } from \"core/Maths/math.vector\";\nimport { Color3 } from \"core/Maths/math.color\";\nimport { SpotLight } from \"core/Lights/spotLight\";\nimport { Light } from \"core/Lights/light\";\nimport { GLTFLoader, ArrayItem } from \"../glTFLoader\";\nimport { registerGLTFExtension, unregisterGLTFExtension } from \"../glTFLoaderExtensionRegistry\";\nimport { Texture } from \"core/Materials/Textures/texture\";\nconst NAME = \"EXT_lights_ies\";\n/**\n * [Specification](https://github.com/KhronosGroup/glTF/tree/main/extensions/2.0/Vendor/EXT_lights_ies)\n */\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport class EXT_lights_ies {\n /**\n * @internal\n */\n constructor(loader) {\n /**\n * The name of this extension.\n */\n this.name = NAME;\n this._loader = loader;\n this.enabled = this._loader.isExtensionUsed(NAME);\n }\n /** @internal */\n dispose() {\n this._loader = null;\n delete this._lights;\n }\n /** @internal */\n onLoading() {\n const extensions = this._loader.gltf.extensions;\n if (extensions && extensions[this.name]) {\n const extension = extensions[this.name];\n this._lights = extension.lights;\n ArrayItem.Assign(this._lights);\n }\n }\n /**\n * @internal\n */\n loadNodeAsync(context, node, assign) {\n return GLTFLoader.LoadExtensionAsync(context, node, this.name, async (extensionContext, extension) => {\n this._loader._allMaterialsDirtyRequired = true;\n let babylonSpotLight;\n let light;\n const transformNode = await this._loader.loadNodeAsync(context, node, (babylonMesh) => {\n light = ArrayItem.Get(extensionContext, this._lights, extension.light);\n const name = light.name || babylonMesh.name;\n this._loader.babylonScene._blockEntityCollection = !!this._loader._assetContainer;\n babylonSpotLight = new SpotLight(name, Vector3.Zero(), Vector3.Backward(), 0, 1, this._loader.babylonScene);\n babylonSpotLight.angle = Math.PI / 2;\n babylonSpotLight.innerAngle = 0;\n babylonSpotLight._parentContainer = this._loader._assetContainer;\n this._loader.babylonScene._blockEntityCollection = false;\n light._babylonLight = babylonSpotLight;\n babylonSpotLight.falloffType = Light.FALLOFF_GLTF;\n babylonSpotLight.diffuse = extension.color ? Color3.FromArray(extension.color) : Color3.White();\n babylonSpotLight.intensity = extension.multiplier || 1;\n babylonSpotLight.range = Number.MAX_VALUE;\n babylonSpotLight.parent = babylonMesh;\n this._loader._babylonLights.push(babylonSpotLight);\n GLTFLoader.AddPointerMetadata(babylonSpotLight, extensionContext);\n assign(babylonMesh);\n });\n // Load the profile\n let bufferData;\n if (light.uri) {\n bufferData = await this._loader.loadUriAsync(context, light, light.uri);\n }\n else {\n const bufferView = ArrayItem.Get(`${context}/bufferView`, this._loader.gltf.bufferViews, light.bufferView);\n bufferData = await this._loader.loadBufferViewAsync(`/bufferViews/${bufferView.index}`, bufferView);\n }\n babylonSpotLight.iesProfileTexture = new Texture(name + \"_iesProfile\", this._loader.babylonScene, true, false, undefined, null, null, bufferData, true, undefined, undefined, undefined, undefined, \".ies\");\n return transformNode;\n });\n }\n}\nunregisterGLTFExtension(NAME);\nregisterGLTFExtension(NAME, true, (loader) => new EXT_lights_ies(loader));\n//# sourceMappingURL=EXT_lights_ies.js.map"],"names":[],"mappings":"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"}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{aN as e,C as t,a0 as s,ab as n,a4 as a,aO as r,S as i,aP as o,aQ as l}from"./index-BHIM4QBr.esm.min.js";import{_ as h}from"./environmentTextureTools-BYQHZH-c.esm.min.js";import{G as c,A as m}from"./glTFLoader-CkL-dxBD.esm.min.js";import"./dumpTools-DVDwJ2sz.esm.min.js";import"./rawTexture-CCCnj14W.esm.min.js";import"./assetContainer-DLSDgjTx.esm.min.js";import"./glTFLoaderAnimation-Cq2ziV9o.esm.min.js";class d extends e{constructor(e,s,n,a=t.TEXTUREFORMAT_RGBA,r=t.TEXTURETYPE_UNSIGNED_BYTE,i=!1,o=!1,l=t.TEXTURE_TRILINEAR_SAMPLINGMODE,h=null){super("",e),this._texture=e.getEngine().createRawCubeTexture(s,n,a,r,i,o,l,h)}update(e,t,s,n,a=null){this._texture.getEngine().updateRawCubeTexture(this._texture,e,t,s,n,a)}updateRGBDAsync(e,t=null,s=.8,n=0){return h(this._texture,e,t,s,n).then((()=>{}))}clone(){return s.Clone((()=>{const e=this.getScene(),t=this._texture,s=new d(e,t._bufferViewArray,t.width,t.format,t.type,t.generateMipMaps,t.invertY,t.samplingMode,t._compression);return 13===t.source&&s.updateRGBDAsync(t._bufferViewArrayArray,t._sphericalPolynomial,t._lodGenerationScale,t._lodGenerationOffset),s}),this)}}const u="EXT_lights_image_based";class g{constructor(e){this.name=u,this._loader=e,this.enabled=this._loader.isExtensionUsed(u)}dispose(){this._loader=null,delete this._lights}onLoading(){const e=this._loader.gltf.extensions;if(e&&e[this.name]){const t=e[this.name];this._lights=t.lights}}loadSceneAsync(e,t){return c.LoadExtensionAsync(e,t,this.name,((s,n)=>{this._loader._allMaterialsDirtyRequired=!0;const a=new Array;a.push(this._loader.loadSceneAsync(e,t)),this._loader.logOpen(`${s}`);const r=m.Get(`${s}/light`,this._lights,n.light);return a.push(this._loadLightAsync(`/extensions/${this.name}/lights/${n.light}`,r).then((e=>{this._loader.babylonScene.environmentTexture=e}))),this._loader.logClose(),Promise.all(a).then((()=>{}))}))}_loadLightAsync(e,t){if(!t._loaded){const s=new Array;this._loader.logOpen(`${e}`);const o=new Array(t.specularImages.length);for(let n=0;n<t.specularImages.length;n++){const a=t.specularImages[n];o[n]=new Array(a.length);for(let t=0;t<a.length;t++){const r=`${e}/specularImages/${n}/${t}`;this._loader.logOpen(`${r}`);const i=a[t],l=m.Get(r,this._loader.gltf.images,i);s.push(this._loader.loadImageAsync(`/images/${i}`,l).then((e=>{o[n][t]=e}))),this._loader.logClose()}}this._loader.logClose(),t._loaded=Promise.all(s).then((()=>{const s=new d(this._loader.babylonScene,null,t.specularImageSize);if(s.name=t.name||"environment",t._babylonTexture=s,null!=t.intensity&&(s.level=t.intensity),t.rotation){let e=n.FromArray(t.rotation);this._loader.babylonScene.useRightHandedSystem||(e=n.Inverse(e)),a.FromQuaternionToRef(e,s.getReflectionTextureMatrix())}if(!t.irradianceCoefficients)throw new Error(`${e}: Irradiance coefficients are missing`);const l=r.FromArray(t.irradianceCoefficients);l.scaleInPlace(t.intensity),l.convertIrradianceToLambertianRadiance();const h=i.FromHarmonics(l),c=(o.length-1)/Math.log2(t.specularImageSize);return s.updateRGBDAsync(o,h,c)}))}return t._loaded.then((()=>t._babylonTexture))}}o(u),l(u,!0,(e=>new g(e)));export{g as EXT_lights_image_based};
|
|
2
|
-
//# sourceMappingURL=EXT_lights_image_based-B8Oal0Ur.esm.min.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"EXT_lights_image_based-B8Oal0Ur.esm.min.js","sources":["../../../../../dev/core/dist/Materials/Textures/rawCubeTexture.js","../../../../../dev/loaders/dist/glTF/2.0/Extensions/EXT_lights_image_based.js"],"sourcesContent":["import { SerializationHelper } from \"../../Misc/decorators.serialization\";\nimport { _UpdateRGBDAsync as UpdateRGBDAsyncEnvTools } from \"../../Misc/environmentTextureTools\";\nimport { CubeTexture } from \"./cubeTexture\";\nimport { Constants } from \"../../Engines/constants\";\n/**\n * Raw cube texture where the raw buffers are passed in\n */\nexport class RawCubeTexture extends CubeTexture {\n /**\n * Creates a cube texture where the raw buffers are passed in.\n * @param scene defines the scene the texture is attached to\n * @param data defines the array of data to use to create each face\n * @param size defines the size of the textures\n * @param format defines the format of the data\n * @param type defines the type of the data (like Engine.TEXTURETYPE_UNSIGNED_BYTE)\n * @param generateMipMaps defines if the engine should generate the mip levels\n * @param invertY defines if data must be stored with Y axis inverted\n * @param samplingMode defines the required sampling mode (like Texture.NEAREST_SAMPLINGMODE)\n * @param compression defines the compression used (null by default)\n */\n constructor(scene, data, size, format = Constants.TEXTUREFORMAT_RGBA, type = Constants.TEXTURETYPE_UNSIGNED_BYTE, generateMipMaps = false, invertY = false, samplingMode = Constants.TEXTURE_TRILINEAR_SAMPLINGMODE, compression = null) {\n super(\"\", scene);\n this._texture = scene.getEngine().createRawCubeTexture(data, size, format, type, generateMipMaps, invertY, samplingMode, compression);\n }\n /**\n * Updates the raw cube texture.\n * @param data defines the data to store\n * @param format defines the data format\n * @param type defines the type fo the data (Engine.TEXTURETYPE_UNSIGNED_BYTE by default)\n * @param invertY defines if data must be stored with Y axis inverted\n * @param compression defines the compression used (null by default)\n */\n update(data, format, type, invertY, compression = null) {\n this._texture.getEngine().updateRawCubeTexture(this._texture, data, format, type, invertY, compression);\n }\n /**\n * Updates a raw cube texture with RGBD encoded data.\n * @param data defines the array of data [mipmap][face] to use to create each face\n * @param sphericalPolynomial defines the spherical polynomial for irradiance\n * @param lodScale defines the scale applied to environment texture. This manages the range of LOD level used for IBL according to the roughness\n * @param lodOffset defines the offset applied to environment texture. This manages first LOD level used for IBL according to the roughness\n * @returns a promise that resolves when the operation is complete\n */\n updateRGBDAsync(data, sphericalPolynomial = null, lodScale = 0.8, lodOffset = 0) {\n return UpdateRGBDAsyncEnvTools(this._texture, data, sphericalPolynomial, lodScale, lodOffset).then(() => { });\n }\n /**\n * Clones the raw cube texture.\n * @returns a new cube texture\n */\n clone() {\n return SerializationHelper.Clone(() => {\n const scene = this.getScene();\n const internalTexture = this._texture;\n const texture = new RawCubeTexture(scene, internalTexture._bufferViewArray, internalTexture.width, internalTexture.format, internalTexture.type, internalTexture.generateMipMaps, internalTexture.invertY, internalTexture.samplingMode, internalTexture._compression);\n if (internalTexture.source === 13 /* InternalTextureSource.CubeRawRGBD */) {\n texture.updateRGBDAsync(internalTexture._bufferViewArrayArray, internalTexture._sphericalPolynomial, internalTexture._lodGenerationScale, internalTexture._lodGenerationOffset);\n }\n return texture;\n }, this);\n }\n}\n//# sourceMappingURL=rawCubeTexture.js.map","import { SphericalHarmonics, SphericalPolynomial } from \"core/Maths/sphericalPolynomial\";\nimport { Quaternion, Matrix } from \"core/Maths/math.vector\";\nimport { RawCubeTexture } from \"core/Materials/Textures/rawCubeTexture\";\nimport { GLTFLoader, ArrayItem } from \"../glTFLoader\";\nimport { registerGLTFExtension, unregisterGLTFExtension } from \"../glTFLoaderExtensionRegistry\";\nconst NAME = \"EXT_lights_image_based\";\n/**\n * [Specification](https://github.com/KhronosGroup/glTF/blob/main/extensions/2.0/Vendor/EXT_lights_image_based/README.md)\n */\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport class EXT_lights_image_based {\n /**\n * @internal\n */\n constructor(loader) {\n /**\n * The name of this extension.\n */\n this.name = NAME;\n this._loader = loader;\n this.enabled = this._loader.isExtensionUsed(NAME);\n }\n /** @internal */\n dispose() {\n this._loader = null;\n delete this._lights;\n }\n /** @internal */\n onLoading() {\n const extensions = this._loader.gltf.extensions;\n if (extensions && extensions[this.name]) {\n const extension = extensions[this.name];\n this._lights = extension.lights;\n }\n }\n /**\n * @internal\n */\n loadSceneAsync(context, scene) {\n return GLTFLoader.LoadExtensionAsync(context, scene, this.name, (extensionContext, extension) => {\n this._loader._allMaterialsDirtyRequired = true;\n const promises = new Array();\n promises.push(this._loader.loadSceneAsync(context, scene));\n this._loader.logOpen(`${extensionContext}`);\n const light = ArrayItem.Get(`${extensionContext}/light`, this._lights, extension.light);\n promises.push(this._loadLightAsync(`/extensions/${this.name}/lights/${extension.light}`, light).then((texture) => {\n this._loader.babylonScene.environmentTexture = texture;\n }));\n this._loader.logClose();\n return Promise.all(promises).then(() => { });\n });\n }\n _loadLightAsync(context, light) {\n if (!light._loaded) {\n const promises = new Array();\n this._loader.logOpen(`${context}`);\n const imageData = new Array(light.specularImages.length);\n for (let mipmap = 0; mipmap < light.specularImages.length; mipmap++) {\n const faces = light.specularImages[mipmap];\n imageData[mipmap] = new Array(faces.length);\n for (let face = 0; face < faces.length; face++) {\n const specularImageContext = `${context}/specularImages/${mipmap}/${face}`;\n this._loader.logOpen(`${specularImageContext}`);\n const index = faces[face];\n const image = ArrayItem.Get(specularImageContext, this._loader.gltf.images, index);\n promises.push(this._loader.loadImageAsync(`/images/${index}`, image).then((data) => {\n imageData[mipmap][face] = data;\n }));\n this._loader.logClose();\n }\n }\n this._loader.logClose();\n light._loaded = Promise.all(promises).then(() => {\n const babylonTexture = new RawCubeTexture(this._loader.babylonScene, null, light.specularImageSize);\n babylonTexture.name = light.name || \"environment\";\n light._babylonTexture = babylonTexture;\n if (light.intensity != undefined) {\n babylonTexture.level = light.intensity;\n }\n if (light.rotation) {\n let rotation = Quaternion.FromArray(light.rotation);\n // Invert the rotation so that positive rotation is counter-clockwise.\n if (!this._loader.babylonScene.useRightHandedSystem) {\n rotation = Quaternion.Inverse(rotation);\n }\n Matrix.FromQuaternionToRef(rotation, babylonTexture.getReflectionTextureMatrix());\n }\n if (!light.irradianceCoefficients) {\n throw new Error(`${context}: Irradiance coefficients are missing`);\n }\n const sphericalHarmonics = SphericalHarmonics.FromArray(light.irradianceCoefficients);\n sphericalHarmonics.scaleInPlace(light.intensity);\n sphericalHarmonics.convertIrradianceToLambertianRadiance();\n const sphericalPolynomial = SphericalPolynomial.FromHarmonics(sphericalHarmonics);\n // Compute the lod generation scale to fit exactly to the number of levels available.\n const lodGenerationScale = (imageData.length - 1) / Math.log2(light.specularImageSize);\n return babylonTexture.updateRGBDAsync(imageData, sphericalPolynomial, lodGenerationScale);\n });\n }\n return light._loaded.then(() => {\n return light._babylonTexture;\n });\n }\n}\nunregisterGLTFExtension(NAME);\nregisterGLTFExtension(NAME, true, (loader) => new EXT_lights_image_based(loader));\n//# sourceMappingURL=EXT_lights_image_based.js.map"],"names":["RawCubeTexture","CubeTexture","constructor","scene","data","size","format","Constants","TEXTUREFORMAT_RGBA","type","TEXTURETYPE_UNSIGNED_BYTE","generateMipMaps","invertY","samplingMode","TEXTURE_TRILINEAR_SAMPLINGMODE","compression","super","this","_texture","getEngine","createRawCubeTexture","update","updateRawCubeTexture","updateRGBDAsync","sphericalPolynomial","lodScale","lodOffset","UpdateRGBDAsyncEnvTools","then","clone","SerializationHelper","Clone","getScene","internalTexture","texture","_bufferViewArray","width","_compression","source","_bufferViewArrayArray","_sphericalPolynomial","_lodGenerationScale","_lodGenerationOffset","NAME","EXT_lights_image_based","loader","name","_loader","enabled","isExtensionUsed","dispose","_lights","onLoading","extensions","gltf","extension","lights","loadSceneAsync","context","GLTFLoader","LoadExtensionAsync","extensionContext","_allMaterialsDirtyRequired","promises","Array","push","logOpen","light","ArrayItem","Get","_loadLightAsync","babylonScene","environmentTexture","logClose","Promise","all","_loaded","imageData","specularImages","length","mipmap","faces","face","specularImageContext","index","image","images","loadImageAsync","babylonTexture","specularImageSize","_babylonTexture","undefined","intensity","level","rotation","Quaternion","FromArray","useRightHandedSystem","Inverse","Matrix","FromQuaternionToRef","getReflectionTextureMatrix","irradianceCoefficients","Error","sphericalHarmonics","SphericalHarmonics","scaleInPlace","convertIrradianceToLambertianRadiance","SphericalPolynomial","FromHarmonics","lodGenerationScale","Math","log2","unregisterGLTFExtension","registerGLTFExtension"],"mappings":"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"}
|