@babylonjs/viewer 7.40.0-alpha → 7.40.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/configuration/configuration.d.ts +107 -0
- package/configuration/configuration.js +16 -0
- package/configuration/configuration.js.map +1 -0
- package/configuration/configurationCompatibility.d.ts +8 -0
- package/configuration/configurationCompatibility.js +66 -0
- package/configuration/configurationCompatibility.js.map +1 -0
- package/configuration/configurationContainer.d.ts +10 -0
- package/configuration/configurationContainer.js +10 -0
- package/configuration/configurationContainer.js.map +1 -0
- package/configuration/globals.d.ts +6 -0
- package/configuration/globals.js +18 -0
- package/configuration/globals.js.map +1 -0
- package/configuration/index.d.ts +2 -0
- package/configuration/index.js +4 -0
- package/configuration/index.js.map +1 -0
- package/configuration/interfaces/cameraConfiguration.d.ts +31 -0
- package/configuration/interfaces/cameraConfiguration.js +2 -0
- package/configuration/interfaces/cameraConfiguration.js.map +1 -0
- package/configuration/interfaces/colorGradingConfiguration.d.ts +81 -0
- package/configuration/interfaces/colorGradingConfiguration.js +2 -0
- package/configuration/interfaces/colorGradingConfiguration.js.map +1 -0
- package/configuration/interfaces/defaultRenderingPipelineConfiguration.d.ts +20 -0
- package/configuration/interfaces/defaultRenderingPipelineConfiguration.js +2 -0
- package/configuration/interfaces/defaultRenderingPipelineConfiguration.js.map +1 -0
- package/configuration/interfaces/environmentMapConfiguration.d.ts +22 -0
- package/configuration/interfaces/environmentMapConfiguration.js +2 -0
- package/configuration/interfaces/environmentMapConfiguration.js.map +1 -0
- package/configuration/interfaces/groundConfiguration.d.ts +24 -0
- package/configuration/interfaces/groundConfiguration.js +2 -0
- package/configuration/interfaces/groundConfiguration.js.map +1 -0
- package/configuration/interfaces/imageProcessingConfiguration.d.ts +45 -0
- package/configuration/interfaces/imageProcessingConfiguration.js +2 -0
- package/configuration/interfaces/imageProcessingConfiguration.js.map +1 -0
- package/configuration/interfaces/index.d.ts +15 -0
- package/configuration/interfaces/index.js +16 -0
- package/configuration/interfaces/index.js.map +1 -0
- package/configuration/interfaces/lightConfiguration.d.ts +60 -0
- package/configuration/interfaces/lightConfiguration.js +2 -0
- package/configuration/interfaces/lightConfiguration.js.map +1 -0
- package/configuration/interfaces/modelAnimationConfiguration.d.ts +26 -0
- package/configuration/interfaces/modelAnimationConfiguration.js +2 -0
- package/configuration/interfaces/modelAnimationConfiguration.js.map +1 -0
- package/configuration/interfaces/modelConfiguration.d.ts +65 -0
- package/configuration/interfaces/modelConfiguration.js +2 -0
- package/configuration/interfaces/modelConfiguration.js.map +1 -0
- package/configuration/interfaces/observersConfiguration.d.ts +5 -0
- package/configuration/interfaces/observersConfiguration.js +2 -0
- package/configuration/interfaces/observersConfiguration.js.map +1 -0
- package/configuration/interfaces/sceneConfiguration.d.ts +48 -0
- package/configuration/interfaces/sceneConfiguration.js +2 -0
- package/configuration/interfaces/sceneConfiguration.js.map +1 -0
- package/configuration/interfaces/sceneOptimizerConfiguration.d.ts +23 -0
- package/configuration/interfaces/sceneOptimizerConfiguration.js +2 -0
- package/configuration/interfaces/sceneOptimizerConfiguration.js.map +1 -0
- package/configuration/interfaces/skyboxConfiguration.d.ts +21 -0
- package/configuration/interfaces/skyboxConfiguration.js +2 -0
- package/configuration/interfaces/skyboxConfiguration.js.map +1 -0
- package/configuration/interfaces/templateConfiguration.d.ts +67 -0
- package/configuration/interfaces/templateConfiguration.js +2 -0
- package/configuration/interfaces/templateConfiguration.js.map +1 -0
- package/configuration/interfaces/vrConfiguration.d.ts +16 -0
- package/configuration/interfaces/vrConfiguration.js +2 -0
- package/configuration/interfaces/vrConfiguration.js.map +1 -0
- package/configuration/loader.d.ts +4 -0
- package/configuration/loader.js +17 -0
- package/configuration/loader.js.map +1 -0
- package/configuration/mappers.d.ts +43 -0
- package/configuration/mappers.js +193 -0
- package/configuration/mappers.js.map +1 -0
- package/configuration/renderOnlyLoader.d.ts +33 -0
- package/configuration/renderOnlyLoader.js +162 -0
- package/configuration/renderOnlyLoader.js.map +1 -0
- package/configuration/types/default.d.ts +6 -0
- package/configuration/types/default.js +121 -0
- package/configuration/types/default.js.map +1 -0
- package/configuration/types/environmentMap.d.ts +5 -0
- package/configuration/types/environmentMap.js +14 -0
- package/configuration/types/environmentMap.js.map +1 -0
- package/configuration/types/extended.d.ts +6 -0
- package/configuration/types/extended.js +317 -0
- package/configuration/types/extended.js.map +1 -0
- package/configuration/types/index.d.ts +14 -0
- package/configuration/types/index.js +51 -0
- package/configuration/types/index.js.map +1 -0
- package/configuration/types/minimal.d.ts +6 -0
- package/configuration/types/minimal.js +43 -0
- package/configuration/types/minimal.js.map +1 -0
- package/configuration/types/renderOnlyDefault.d.ts +30 -0
- package/configuration/types/renderOnlyDefault.js +31 -0
- package/configuration/types/renderOnlyDefault.js.map +1 -0
- package/configuration/types/shadowLight.d.ts +9 -0
- package/configuration/types/shadowLight.js +64 -0
- package/configuration/types/shadowLight.js.map +1 -0
- package/helper/index.d.ts +29 -0
- package/helper/index.js +66 -0
- package/helper/index.js.map +1 -0
- package/index.d.ts +30 -0
- package/index.js +46 -0
- package/index.js.map +1 -0
- package/initializer.d.ts +11 -0
- package/initializer.js +35 -0
- package/initializer.js.map +1 -0
- package/interfaces.d.ts +5 -0
- package/interfaces.js +7 -0
- package/interfaces.js.map +1 -0
- package/labs/environmentSerializer.d.ts +126 -0
- package/labs/environmentSerializer.js +191 -0
- package/labs/environmentSerializer.js.map +1 -0
- package/labs/texture.d.ts +183 -0
- package/labs/texture.js +351 -0
- package/labs/texture.js.map +1 -0
- package/labs/viewerLabs.d.ts +51 -0
- package/labs/viewerLabs.js +134 -0
- package/labs/viewerLabs.js.map +1 -0
- package/loader/modelLoader.d.ts +56 -0
- package/loader/modelLoader.js +202 -0
- package/loader/modelLoader.js.map +1 -0
- package/loader/plugins/applyMaterialConfig.d.ts +12 -0
- package/loader/plugins/applyMaterialConfig.js +16 -0
- package/loader/plugins/applyMaterialConfig.js.map +1 -0
- package/loader/plugins/extendedMaterialLoaderPlugin.d.ts +9 -0
- package/loader/plugins/extendedMaterialLoaderPlugin.js +16 -0
- package/loader/plugins/extendedMaterialLoaderPlugin.js.map +1 -0
- package/loader/plugins/index.d.ts +19 -0
- package/loader/plugins/index.js +44 -0
- package/loader/plugins/index.js.map +1 -0
- package/loader/plugins/loaderPlugin.d.ts +24 -0
- package/loader/plugins/loaderPlugin.js +2 -0
- package/loader/plugins/loaderPlugin.js.map +1 -0
- package/loader/plugins/msftLodLoaderPlugin.d.ts +12 -0
- package/loader/plugins/msftLodLoaderPlugin.js +21 -0
- package/loader/plugins/msftLodLoaderPlugin.js.map +1 -0
- package/loader/plugins/telemetryLoaderPlugin.d.ts +12 -0
- package/loader/plugins/telemetryLoaderPlugin.js +36 -0
- package/loader/plugins/telemetryLoaderPlugin.js.map +1 -0
- package/managers/observablesManager.d.ts +66 -0
- package/managers/observablesManager.js +35 -0
- package/managers/observablesManager.js.map +1 -0
- package/managers/sceneManager.d.ts +245 -0
- package/managers/sceneManager.js +1375 -0
- package/managers/sceneManager.js.map +1 -0
- package/managers/telemetryManager.d.ts +78 -0
- package/managers/telemetryManager.js +117 -0
- package/managers/telemetryManager.js.map +1 -0
- package/model/modelAnimation.d.ts +215 -0
- package/model/modelAnimation.js +237 -0
- package/model/modelAnimation.js.map +1 -0
- package/model/viewerModel.d.ts +233 -0
- package/model/viewerModel.js +673 -0
- package/model/viewerModel.js.map +1 -0
- package/optimizer/custom/extended.d.ts +13 -0
- package/optimizer/custom/extended.js +101 -0
- package/optimizer/custom/extended.js.map +1 -0
- package/optimizer/custom/index.d.ts +9 -0
- package/optimizer/custom/index.js +26 -0
- package/optimizer/custom/index.js.map +1 -0
- package/package.json +28 -19
- package/readme.md +28 -28
- package/renderOnlyIndex.d.ts +11 -0
- package/renderOnlyIndex.js +18 -0
- package/renderOnlyIndex.js.map +1 -0
- package/templating/eventManager.d.ts +35 -0
- package/templating/eventManager.js +66 -0
- package/templating/eventManager.js.map +1 -0
- package/templating/plugins/hdButtonPlugin.d.ts +9 -0
- package/templating/plugins/hdButtonPlugin.js +22 -0
- package/templating/plugins/hdButtonPlugin.js.map +1 -0
- package/templating/plugins/printButton.d.ts +9 -0
- package/templating/plugins/printButton.js +41 -0
- package/templating/plugins/printButton.js.map +1 -0
- package/templating/templateManager.d.ts +197 -0
- package/templating/templateManager.js +561 -0
- package/templating/templateManager.js.map +1 -0
- package/templating/viewerTemplatePlugin.d.ts +21 -0
- package/templating/viewerTemplatePlugin.js +69 -0
- package/templating/viewerTemplatePlugin.js.map +1 -0
- package/viewer/defaultViewer.d.ts +130 -0
- package/viewer/defaultViewer.js +672 -0
- package/viewer/defaultViewer.js.map +1 -0
- package/viewer/renderOnlyViewer.d.ts +9 -0
- package/viewer/renderOnlyViewer.js +46 -0
- package/viewer/renderOnlyViewer.js.map +1 -0
- package/viewer/viewer.d.ts +258 -0
- package/viewer/viewer.js +783 -0
- package/viewer/viewer.js.map +1 -0
- package/viewer/viewerManager.d.ts +58 -0
- package/viewer/viewerManager.js +91 -0
- package/viewer/viewerManager.js.map +1 -0
- package/viewer/viewerWithTemplate.d.ts +9 -0
- package/viewer/viewerWithTemplate.js +20 -0
- package/viewer/viewerWithTemplate.js.map +1 -0
- package/assets/photoStudio.env +0 -0
- package/dist/babylon-viewer.esm.js +0 -2
- package/dist/babylon-viewer.esm.js.map +0 -1
- package/dist/babylon-viewer.esm.min.js +0 -2
- package/dist/babylon-viewer.esm.min.js.map +0 -1
- package/dist/chunks/EXT_lights_ies-CWPYWIWN.esm.min.js +0 -2
- package/dist/chunks/EXT_lights_ies-CWPYWIWN.esm.min.js.map +0 -1
- package/dist/chunks/EXT_lights_ies-DXjx4vS8.esm.js +0 -84
- package/dist/chunks/EXT_lights_ies-DXjx4vS8.esm.js.map +0 -1
- package/dist/chunks/EXT_lights_image_based-B-Daha_c.esm.js +0 -171
- package/dist/chunks/EXT_lights_image_based-B-Daha_c.esm.js.map +0 -1
- package/dist/chunks/EXT_lights_image_based-fafIAwHA.esm.min.js +0 -2
- package/dist/chunks/EXT_lights_image_based-fafIAwHA.esm.min.js.map +0 -1
- package/dist/chunks/EXT_mesh_gpu_instancing-CQHNuvea.esm.min.js +0 -2
- package/dist/chunks/EXT_mesh_gpu_instancing-CQHNuvea.esm.min.js.map +0 -1
- package/dist/chunks/EXT_mesh_gpu_instancing-xQzfnk4R.esm.js +0 -86
- package/dist/chunks/EXT_mesh_gpu_instancing-xQzfnk4R.esm.js.map +0 -1
- package/dist/chunks/EXT_meshopt_compression-B2YW8Jul.esm.min.js +0 -2
- package/dist/chunks/EXT_meshopt_compression-B2YW8Jul.esm.min.js.map +0 -1
- package/dist/chunks/EXT_meshopt_compression-D-WT4x3b.esm.js +0 -134
- package/dist/chunks/EXT_meshopt_compression-D-WT4x3b.esm.js.map +0 -1
- package/dist/chunks/EXT_texture_avif-B3jJQLi_.esm.js +0 -44
- package/dist/chunks/EXT_texture_avif-B3jJQLi_.esm.js.map +0 -1
- package/dist/chunks/EXT_texture_avif-Cdp43X9W.esm.min.js +0 -2
- package/dist/chunks/EXT_texture_avif-Cdp43X9W.esm.min.js.map +0 -1
- package/dist/chunks/EXT_texture_webp-BnjDmIhh.esm.min.js +0 -2
- package/dist/chunks/EXT_texture_webp-BnjDmIhh.esm.min.js.map +0 -1
- package/dist/chunks/EXT_texture_webp-CJRS8tVF.esm.js +0 -43
- package/dist/chunks/EXT_texture_webp-CJRS8tVF.esm.js.map +0 -1
- package/dist/chunks/ExtrasAsMetadata-CIJMhaBZ.esm.min.js +0 -2
- package/dist/chunks/ExtrasAsMetadata-CIJMhaBZ.esm.min.js.map +0 -1
- package/dist/chunks/ExtrasAsMetadata-CwbKTcv7.esm.js +0 -64
- package/dist/chunks/ExtrasAsMetadata-CwbKTcv7.esm.js.map +0 -1
- package/dist/chunks/KHR_animation_pointer-9iHVi2y-.esm.js +0 -352
- package/dist/chunks/KHR_animation_pointer-9iHVi2y-.esm.js.map +0 -1
- package/dist/chunks/KHR_animation_pointer-CqdJSFtB.esm.min.js +0 -2
- package/dist/chunks/KHR_animation_pointer-CqdJSFtB.esm.min.js.map +0 -1
- package/dist/chunks/KHR_draco_mesh_compression-ClL38TL5.esm.min.js +0 -2
- package/dist/chunks/KHR_draco_mesh_compression-ClL38TL5.esm.min.js.map +0 -1
- package/dist/chunks/KHR_draco_mesh_compression-D3dZicO8.esm.js +0 -617
- package/dist/chunks/KHR_draco_mesh_compression-D3dZicO8.esm.js.map +0 -1
- package/dist/chunks/KHR_interactivity-6HrLuIjZ.esm.js +0 -4033
- package/dist/chunks/KHR_interactivity-6HrLuIjZ.esm.js.map +0 -1
- package/dist/chunks/KHR_interactivity-zubZF_6R.esm.min.js +0 -2
- package/dist/chunks/KHR_interactivity-zubZF_6R.esm.min.js.map +0 -1
- package/dist/chunks/KHR_lights_punctual-ClmFHdd7.esm.js +0 -581
- package/dist/chunks/KHR_lights_punctual-ClmFHdd7.esm.js.map +0 -1
- package/dist/chunks/KHR_lights_punctual-Fpwx2lSI.esm.min.js +0 -2
- package/dist/chunks/KHR_lights_punctual-Fpwx2lSI.esm.min.js.map +0 -1
- package/dist/chunks/KHR_materials_anisotropy-DJzuE8wA.esm.js +0 -65
- package/dist/chunks/KHR_materials_anisotropy-DJzuE8wA.esm.js.map +0 -1
- package/dist/chunks/KHR_materials_anisotropy-DXobrZpb.esm.min.js +0 -2
- package/dist/chunks/KHR_materials_anisotropy-DXobrZpb.esm.min.js.map +0 -1
- package/dist/chunks/KHR_materials_clearcoat-D0969pHH.esm.js +0 -96
- package/dist/chunks/KHR_materials_clearcoat-D0969pHH.esm.js.map +0 -1
- package/dist/chunks/KHR_materials_clearcoat-IanIfR8B.esm.min.js +0 -2
- package/dist/chunks/KHR_materials_clearcoat-IanIfR8B.esm.min.js.map +0 -1
- package/dist/chunks/KHR_materials_diffuse_transmission-CswRFXu1.esm.js +0 -97
- package/dist/chunks/KHR_materials_diffuse_transmission-CswRFXu1.esm.js.map +0 -1
- package/dist/chunks/KHR_materials_diffuse_transmission-DOSvTGyA.esm.min.js +0 -2
- package/dist/chunks/KHR_materials_diffuse_transmission-DOSvTGyA.esm.min.js.map +0 -1
- package/dist/chunks/KHR_materials_dispersion-N7vSa0nU.esm.min.js +0 -2
- package/dist/chunks/KHR_materials_dispersion-N7vSa0nU.esm.min.js.map +0 -1
- package/dist/chunks/KHR_materials_dispersion-lcuIAf7T.esm.js +0 -62
- package/dist/chunks/KHR_materials_dispersion-lcuIAf7T.esm.js.map +0 -1
- package/dist/chunks/KHR_materials_emissive_strength-CYCr0qYT.esm.min.js +0 -2
- package/dist/chunks/KHR_materials_emissive_strength-CYCr0qYT.esm.min.js.map +0 -1
- package/dist/chunks/KHR_materials_emissive_strength-Ccj9q0E7.esm.js +0 -55
- package/dist/chunks/KHR_materials_emissive_strength-Ccj9q0E7.esm.js.map +0 -1
- package/dist/chunks/KHR_materials_ior-CMGgp610.esm.js +0 -64
- package/dist/chunks/KHR_materials_ior-CMGgp610.esm.js.map +0 -1
- package/dist/chunks/KHR_materials_ior-DLbZJSfw.esm.min.js +0 -2
- package/dist/chunks/KHR_materials_ior-DLbZJSfw.esm.min.js.map +0 -1
- package/dist/chunks/KHR_materials_iridescence-DxhjIyld.esm.js +0 -72
- package/dist/chunks/KHR_materials_iridescence-DxhjIyld.esm.js.map +0 -1
- package/dist/chunks/KHR_materials_iridescence-GKx4iT0n.esm.min.js +0 -2
- package/dist/chunks/KHR_materials_iridescence-GKx4iT0n.esm.min.js.map +0 -1
- package/dist/chunks/KHR_materials_pbrSpecularGlossiness-BhSexHVn.esm.min.js +0 -2
- package/dist/chunks/KHR_materials_pbrSpecularGlossiness-BhSexHVn.esm.min.js.map +0 -1
- package/dist/chunks/KHR_materials_pbrSpecularGlossiness-CaAfu_3f.esm.js +0 -81
- package/dist/chunks/KHR_materials_pbrSpecularGlossiness-CaAfu_3f.esm.js.map +0 -1
- package/dist/chunks/KHR_materials_sheen-CN1BYTg2.esm.min.js +0 -2
- package/dist/chunks/KHR_materials_sheen-CN1BYTg2.esm.min.js.map +0 -1
- package/dist/chunks/KHR_materials_sheen-CTrHpM3p.esm.js +0 -85
- package/dist/chunks/KHR_materials_sheen-CTrHpM3p.esm.js.map +0 -1
- package/dist/chunks/KHR_materials_specular-D_qAmusR.esm.js +0 -75
- package/dist/chunks/KHR_materials_specular-D_qAmusR.esm.js.map +0 -1
- package/dist/chunks/KHR_materials_specular-DpKtpzvK.esm.min.js +0 -2
- package/dist/chunks/KHR_materials_specular-DpKtpzvK.esm.min.js.map +0 -1
- package/dist/chunks/KHR_materials_transmission-CxaJK0KS.esm.min.js +0 -2
- package/dist/chunks/KHR_materials_transmission-CxaJK0KS.esm.min.js.map +0 -1
- package/dist/chunks/KHR_materials_transmission-jJevhaTD.esm.js +0 -307
- package/dist/chunks/KHR_materials_transmission-jJevhaTD.esm.js.map +0 -1
- package/dist/chunks/KHR_materials_unlit-B9NoDbLu.esm.js +0 -74
- package/dist/chunks/KHR_materials_unlit-B9NoDbLu.esm.js.map +0 -1
- package/dist/chunks/KHR_materials_unlit-BV2WFURQ.esm.min.js +0 -2
- package/dist/chunks/KHR_materials_unlit-BV2WFURQ.esm.min.js.map +0 -1
- package/dist/chunks/KHR_materials_variants-BmH6A7LQ.esm.min.js +0 -2
- package/dist/chunks/KHR_materials_variants-BmH6A7LQ.esm.min.js.map +0 -1
- package/dist/chunks/KHR_materials_variants-BwlvUynB.esm.js +0 -262
- package/dist/chunks/KHR_materials_variants-BwlvUynB.esm.js.map +0 -1
- package/dist/chunks/KHR_materials_volume-BxsuFsjg.esm.js +0 -87
- package/dist/chunks/KHR_materials_volume-BxsuFsjg.esm.js.map +0 -1
- package/dist/chunks/KHR_materials_volume-DgaN4xP_.esm.min.js +0 -2
- package/dist/chunks/KHR_materials_volume-DgaN4xP_.esm.min.js.map +0 -1
- package/dist/chunks/KHR_mesh_quantization-BiqtT9kx.esm.min.js +0 -2
- package/dist/chunks/KHR_mesh_quantization-BiqtT9kx.esm.min.js.map +0 -1
- package/dist/chunks/KHR_mesh_quantization-Dui9vNiN.esm.js +0 -26
- package/dist/chunks/KHR_mesh_quantization-Dui9vNiN.esm.js.map +0 -1
- package/dist/chunks/KHR_node_hoverability-Bb7NACAZ.esm.js +0 -39
- package/dist/chunks/KHR_node_hoverability-Bb7NACAZ.esm.js.map +0 -1
- package/dist/chunks/KHR_node_hoverability-DO_c3jaM.esm.min.js +0 -2
- package/dist/chunks/KHR_node_hoverability-DO_c3jaM.esm.min.js.map +0 -1
- package/dist/chunks/KHR_node_visibility-B5DLk18h.esm.js +0 -46
- package/dist/chunks/KHR_node_visibility-B5DLk18h.esm.js.map +0 -1
- package/dist/chunks/KHR_node_visibility-Cf7iNP2D.esm.min.js +0 -2
- package/dist/chunks/KHR_node_visibility-Cf7iNP2D.esm.min.js.map +0 -1
- package/dist/chunks/KHR_texture_basisu-DgmXsV7i.esm.js +0 -43
- package/dist/chunks/KHR_texture_basisu-DgmXsV7i.esm.js.map +0 -1
- package/dist/chunks/KHR_texture_basisu-O4WmrcrG.esm.min.js +0 -2
- package/dist/chunks/KHR_texture_basisu-O4WmrcrG.esm.min.js.map +0 -1
- package/dist/chunks/KHR_texture_transform-C2B03Q6l.esm.min.js +0 -2
- package/dist/chunks/KHR_texture_transform-C2B03Q6l.esm.min.js.map +0 -1
- package/dist/chunks/KHR_texture_transform-DkQQG3PK.esm.js +0 -63
- package/dist/chunks/KHR_texture_transform-DkQQG3PK.esm.js.map +0 -1
- package/dist/chunks/KHR_xmp_json_ld-D9eCYTa2.esm.min.js +0 -2
- package/dist/chunks/KHR_xmp_json_ld-D9eCYTa2.esm.min.js.map +0 -1
- package/dist/chunks/KHR_xmp_json_ld-gs5UzU_o.esm.js +0 -51
- package/dist/chunks/KHR_xmp_json_ld-gs5UzU_o.esm.js.map +0 -1
- package/dist/chunks/MSFT_audio_emitter-B9fkUjJ0.esm.js +0 -2207
- package/dist/chunks/MSFT_audio_emitter-B9fkUjJ0.esm.js.map +0 -1
- package/dist/chunks/MSFT_audio_emitter-DpJ8OxBw.esm.min.js +0 -2
- package/dist/chunks/MSFT_audio_emitter-DpJ8OxBw.esm.min.js.map +0 -1
- package/dist/chunks/MSFT_lod-DS6_zCB0.esm.js +0 -337
- package/dist/chunks/MSFT_lod-DS6_zCB0.esm.js.map +0 -1
- package/dist/chunks/MSFT_lod-qGdnTg6f.esm.min.js +0 -2
- package/dist/chunks/MSFT_lod-qGdnTg6f.esm.min.js.map +0 -1
- package/dist/chunks/MSFT_minecraftMesh-99ZDXpdT.esm.min.js +0 -2
- package/dist/chunks/MSFT_minecraftMesh-99ZDXpdT.esm.min.js.map +0 -1
- package/dist/chunks/MSFT_minecraftMesh-B60rmY-O.esm.js +0 -46
- package/dist/chunks/MSFT_minecraftMesh-B60rmY-O.esm.js.map +0 -1
- package/dist/chunks/MSFT_sRGBFactors-Br1RUJsD.esm.min.js +0 -2
- package/dist/chunks/MSFT_sRGBFactors-Br1RUJsD.esm.min.js.map +0 -1
- package/dist/chunks/MSFT_sRGBFactors-DVcyl59-.esm.js +0 -47
- package/dist/chunks/MSFT_sRGBFactors-DVcyl59-.esm.js.map +0 -1
- package/dist/chunks/animationGroup-D80NDoJK.esm.min.js +0 -2
- package/dist/chunks/animationGroup-D80NDoJK.esm.min.js.map +0 -1
- package/dist/chunks/animationGroup-DaKL_xr0.esm.js +0 -2482
- package/dist/chunks/animationGroup-DaKL_xr0.esm.js.map +0 -1
- package/dist/chunks/assetContainer-DUHXkzRR.esm.js +0 -1720
- package/dist/chunks/assetContainer-DUHXkzRR.esm.js.map +0 -1
- package/dist/chunks/assetContainer-DrlGfFUd.esm.min.js +0 -2
- package/dist/chunks/assetContainer-DrlGfFUd.esm.min.js.map +0 -1
- package/dist/chunks/audioEngine-BbaOte04.esm.min.js +0 -2
- package/dist/chunks/audioEngine-BbaOte04.esm.min.js.map +0 -1
- package/dist/chunks/audioEngine-Cl77hj6S.esm.js +0 -305
- package/dist/chunks/audioEngine-Cl77hj6S.esm.js.map +0 -1
- package/dist/chunks/bakedVertexAnimation-1Je9P1Wr.esm.js +0 -114
- package/dist/chunks/bakedVertexAnimation-1Je9P1Wr.esm.js.map +0 -1
- package/dist/chunks/bakedVertexAnimation-CqAC8NlK.esm.min.js +0 -2
- package/dist/chunks/bakedVertexAnimation-CqAC8NlK.esm.min.js.map +0 -1
- package/dist/chunks/basisTextureLoader-D6HL2Z1j.esm.js +0 -600
- package/dist/chunks/basisTextureLoader-D6HL2Z1j.esm.js.map +0 -1
- package/dist/chunks/basisTextureLoader-r7SDsKh7.esm.min.js +0 -2
- package/dist/chunks/basisTextureLoader-r7SDsKh7.esm.min.js.map +0 -1
- package/dist/chunks/dds-B3q7zTkZ.esm.js +0 -540
- package/dist/chunks/dds-B3q7zTkZ.esm.js.map +0 -1
- package/dist/chunks/dds-BBiaQw-Y.esm.min.js +0 -2
- package/dist/chunks/dds-BBiaQw-Y.esm.min.js.map +0 -1
- package/dist/chunks/ddsTextureLoader-C4PtTvoL.esm.js +0 -88
- package/dist/chunks/ddsTextureLoader-C4PtTvoL.esm.js.map +0 -1
- package/dist/chunks/ddsTextureLoader-CGA8DF-Z.esm.min.js +0 -2
- package/dist/chunks/ddsTextureLoader-CGA8DF-Z.esm.min.js.map +0 -1
- package/dist/chunks/decalFragment-BTxhBHbp.esm.js +0 -18
- package/dist/chunks/decalFragment-BTxhBHbp.esm.js.map +0 -1
- package/dist/chunks/decalFragment-n8HEgits.esm.min.js +0 -2
- package/dist/chunks/decalFragment-n8HEgits.esm.min.js.map +0 -1
- package/dist/chunks/default.fragment-CUJQb4Ds.esm.min.js +0 -2
- package/dist/chunks/default.fragment-CUJQb4Ds.esm.min.js.map +0 -1
- package/dist/chunks/default.fragment-CkvRouhO.esm.min.js +0 -2
- package/dist/chunks/default.fragment-CkvRouhO.esm.min.js.map +0 -1
- package/dist/chunks/default.fragment-D3CHq-x9.esm.js +0 -515
- package/dist/chunks/default.fragment-D3CHq-x9.esm.js.map +0 -1
- package/dist/chunks/default.fragment-DIWDeOi3.esm.js +0 -446
- package/dist/chunks/default.fragment-DIWDeOi3.esm.js.map +0 -1
- package/dist/chunks/default.vertex-7EvlstiX.esm.js +0 -181
- package/dist/chunks/default.vertex-7EvlstiX.esm.js.map +0 -1
- package/dist/chunks/default.vertex-DNVWc7Pt.esm.min.js +0 -2
- package/dist/chunks/default.vertex-DNVWc7Pt.esm.min.js.map +0 -1
- package/dist/chunks/default.vertex-DRUHVqKs.esm.min.js +0 -2
- package/dist/chunks/default.vertex-DRUHVqKs.esm.min.js.map +0 -1
- package/dist/chunks/default.vertex-Vc6tOJMI.esm.js +0 -202
- package/dist/chunks/default.vertex-Vc6tOJMI.esm.js.map +0 -1
- package/dist/chunks/defaultUboDeclaration-Bf-6awzG.esm.js +0 -15
- package/dist/chunks/defaultUboDeclaration-Bf-6awzG.esm.js.map +0 -1
- package/dist/chunks/defaultUboDeclaration-DDhQ3CTy.esm.js +0 -13
- package/dist/chunks/defaultUboDeclaration-DDhQ3CTy.esm.js.map +0 -1
- package/dist/chunks/defaultUboDeclaration-DYX0y14N.esm.min.js +0 -2
- package/dist/chunks/defaultUboDeclaration-DYX0y14N.esm.min.js.map +0 -1
- package/dist/chunks/defaultUboDeclaration-DcdUryhi.esm.min.js +0 -2
- package/dist/chunks/defaultUboDeclaration-DcdUryhi.esm.min.js.map +0 -1
- package/dist/chunks/drawWrapper.functions-CKg3_9x4.esm.js +0 -11
- package/dist/chunks/drawWrapper.functions-CKg3_9x4.esm.js.map +0 -1
- package/dist/chunks/drawWrapper.functions-ng7lvueZ.esm.min.js +0 -2
- package/dist/chunks/drawWrapper.functions-ng7lvueZ.esm.min.js.map +0 -1
- package/dist/chunks/dumpTools-BWNjR_G6.esm.min.js +0 -2
- package/dist/chunks/dumpTools-BWNjR_G6.esm.min.js.map +0 -1
- package/dist/chunks/dumpTools-hegDCvBc.esm.js +0 -200
- package/dist/chunks/dumpTools-hegDCvBc.esm.js.map +0 -1
- package/dist/chunks/engine-CZGy-n30.esm.js +0 -2216
- package/dist/chunks/engine-CZGy-n30.esm.js.map +0 -1
- package/dist/chunks/engine-iddO2T22.esm.min.js +0 -2
- package/dist/chunks/engine-iddO2T22.esm.min.js.map +0 -1
- package/dist/chunks/engine.common-CGXs9MDG.esm.min.js +0 -2
- package/dist/chunks/engine.common-CGXs9MDG.esm.min.js.map +0 -1
- package/dist/chunks/engine.common-Cqb8HjxX.esm.js +0 -1162
- package/dist/chunks/engine.common-Cqb8HjxX.esm.js.map +0 -1
- package/dist/chunks/envTextureLoader-Czm9uAXM.esm.js +0 -64
- package/dist/chunks/envTextureLoader-Czm9uAXM.esm.js.map +0 -1
- package/dist/chunks/envTextureLoader-D-YagZnu.esm.min.js +0 -2
- package/dist/chunks/envTextureLoader-D-YagZnu.esm.min.js.map +0 -1
- package/dist/chunks/environmentTextureTools-B5WZowyO.esm.min.js +0 -2
- package/dist/chunks/environmentTextureTools-B5WZowyO.esm.min.js.map +0 -1
- package/dist/chunks/environmentTextureTools-BrdD2X7A.esm.js +0 -382
- package/dist/chunks/environmentTextureTools-BrdD2X7A.esm.js.map +0 -1
- package/dist/chunks/exrTextureLoader-ClJnk3E3.esm.js +0 -1683
- package/dist/chunks/exrTextureLoader-ClJnk3E3.esm.js.map +0 -1
- package/dist/chunks/exrTextureLoader-s-Mog8_s.esm.min.js +0 -2
- package/dist/chunks/exrTextureLoader-s-Mog8_s.esm.min.js.map +0 -1
- package/dist/chunks/fogFragment-C2vW2rrh.esm.js +0 -102
- package/dist/chunks/fogFragment-C2vW2rrh.esm.js.map +0 -1
- package/dist/chunks/fogFragment-CAmhx99G.esm.min.js +0 -2
- package/dist/chunks/fogFragment-CAmhx99G.esm.min.js.map +0 -1
- package/dist/chunks/fogFragment-VhCT_edc.esm.min.js +0 -2
- package/dist/chunks/fogFragment-VhCT_edc.esm.min.js.map +0 -1
- package/dist/chunks/fogFragment-weVZWTdd.esm.js +0 -101
- package/dist/chunks/fogFragment-weVZWTdd.esm.js.map +0 -1
- package/dist/chunks/fresnelFunction-4cImVcNT.esm.js +0 -12
- package/dist/chunks/fresnelFunction-4cImVcNT.esm.js.map +0 -1
- package/dist/chunks/fresnelFunction-Da1sPcvo.esm.min.js +0 -2
- package/dist/chunks/fresnelFunction-Da1sPcvo.esm.min.js.map +0 -1
- package/dist/chunks/glTFLoader-7uvFneFt.esm.js +0 -7586
- package/dist/chunks/glTFLoader-7uvFneFt.esm.js.map +0 -1
- package/dist/chunks/glTFLoader-ChTng_Ew.esm.min.js +0 -2
- package/dist/chunks/glTFLoader-ChTng_Ew.esm.min.js.map +0 -1
- package/dist/chunks/glTFLoaderAnimation-BeBTAsWq.esm.js +0 -77
- package/dist/chunks/glTFLoaderAnimation-BeBTAsWq.esm.js.map +0 -1
- package/dist/chunks/glTFLoaderAnimation-CCHLAoRK.esm.min.js +0 -2
- package/dist/chunks/glTFLoaderAnimation-CCHLAoRK.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-CIez3XpU.esm.min.js +0 -2
- package/dist/chunks/harmonicsFunctions-CIez3XpU.esm.min.js.map +0 -1
- package/dist/chunks/harmonicsFunctions-CjYmCnUh.esm.min.js +0 -2
- package/dist/chunks/harmonicsFunctions-CjYmCnUh.esm.min.js.map +0 -1
- package/dist/chunks/harmonicsFunctions-D8X6XkcB.esm.js +0 -35
- package/dist/chunks/harmonicsFunctions-D8X6XkcB.esm.js.map +0 -1
- package/dist/chunks/harmonicsFunctions-i7q2aWAO.esm.js +0 -34
- package/dist/chunks/harmonicsFunctions-i7q2aWAO.esm.js.map +0 -1
- package/dist/chunks/hdrTextureLoader-C6WR9qDu.esm.min.js +0 -2
- package/dist/chunks/hdrTextureLoader-C6WR9qDu.esm.min.js.map +0 -1
- package/dist/chunks/hdrTextureLoader-DdEmyqh5.esm.js +0 -253
- package/dist/chunks/hdrTextureLoader-DdEmyqh5.esm.js.map +0 -1
- package/dist/chunks/helperFunctions-B8W8JpaI.esm.min.js +0 -2
- package/dist/chunks/helperFunctions-B8W8JpaI.esm.min.js.map +0 -1
- package/dist/chunks/helperFunctions-CV2C3XEf.esm.js +0 -108
- package/dist/chunks/helperFunctions-CV2C3XEf.esm.js.map +0 -1
- package/dist/chunks/helperFunctions-CgUf8pyk.esm.js +0 -80
- package/dist/chunks/helperFunctions-CgUf8pyk.esm.js.map +0 -1
- package/dist/chunks/helperFunctions-VM--MJVI.esm.min.js +0 -2
- package/dist/chunks/helperFunctions-VM--MJVI.esm.min.js.map +0 -1
- package/dist/chunks/iesTextureLoader-BuScKRlS.esm.js +0 -189
- package/dist/chunks/iesTextureLoader-BuScKRlS.esm.js.map +0 -1
- package/dist/chunks/iesTextureLoader-if1ntALJ.esm.min.js +0 -2
- package/dist/chunks/iesTextureLoader-if1ntALJ.esm.min.js.map +0 -1
- package/dist/chunks/index-7pOUdivR.esm.js +0 -74709
- package/dist/chunks/index-7pOUdivR.esm.js.map +0 -1
- package/dist/chunks/index-CHb7NKRY.esm.min.js +0 -57
- package/dist/chunks/index-CHb7NKRY.esm.min.js.map +0 -1
- package/dist/chunks/ktxTextureLoader-9L7lCOMk.esm.min.js +0 -2
- package/dist/chunks/ktxTextureLoader-9L7lCOMk.esm.min.js.map +0 -1
- package/dist/chunks/ktxTextureLoader-Ct-9NIcu.esm.js +0 -814
- package/dist/chunks/ktxTextureLoader-Ct-9NIcu.esm.js.map +0 -1
- package/dist/chunks/logDepthDeclaration-CFHaSiET.esm.min.js +0 -2
- package/dist/chunks/logDepthDeclaration-CFHaSiET.esm.min.js.map +0 -1
- package/dist/chunks/logDepthDeclaration-Cqb_Zo_s.esm.js +0 -11
- package/dist/chunks/logDepthDeclaration-Cqb_Zo_s.esm.js.map +0 -1
- package/dist/chunks/logDepthDeclaration-DCW2NExX.esm.min.js +0 -2
- package/dist/chunks/logDepthDeclaration-DCW2NExX.esm.min.js.map +0 -1
- package/dist/chunks/logDepthDeclaration-oJ9tNQ3q.esm.js +0 -35
- package/dist/chunks/logDepthDeclaration-oJ9tNQ3q.esm.js.map +0 -1
- package/dist/chunks/logDepthVertex-BCP-KTtt.esm.js +0 -81
- package/dist/chunks/logDepthVertex-BCP-KTtt.esm.js.map +0 -1
- package/dist/chunks/logDepthVertex-BwYkGLpu.esm.js +0 -77
- package/dist/chunks/logDepthVertex-BwYkGLpu.esm.js.map +0 -1
- package/dist/chunks/logDepthVertex-DoyGVTWA.esm.min.js +0 -2
- package/dist/chunks/logDepthVertex-DoyGVTWA.esm.min.js.map +0 -1
- package/dist/chunks/logDepthVertex-WdJWwsLV.esm.min.js +0 -2
- package/dist/chunks/logDepthVertex-WdJWwsLV.esm.min.js.map +0 -1
- package/dist/chunks/mainUVVaryingDeclaration-B_ziE3K3.esm.min.js +0 -2
- package/dist/chunks/mainUVVaryingDeclaration-B_ziE3K3.esm.min.js.map +0 -1
- package/dist/chunks/mainUVVaryingDeclaration-CRWcERPP.esm.js +0 -11
- package/dist/chunks/mainUVVaryingDeclaration-CRWcERPP.esm.js.map +0 -1
- package/dist/chunks/mainUVVaryingDeclaration-NuhfZTP4.esm.js +0 -11
- package/dist/chunks/mainUVVaryingDeclaration-NuhfZTP4.esm.js.map +0 -1
- package/dist/chunks/mainUVVaryingDeclaration-_WOgDBUD.esm.min.js +0 -2
- package/dist/chunks/mainUVVaryingDeclaration-_WOgDBUD.esm.min.js.map +0 -1
- package/dist/chunks/meshUboDeclaration-BkKdZCAL.esm.min.js +0 -2
- package/dist/chunks/meshUboDeclaration-BkKdZCAL.esm.min.js.map +0 -1
- package/dist/chunks/meshUboDeclaration-VO75rv0M.esm.js +0 -26
- package/dist/chunks/meshUboDeclaration-VO75rv0M.esm.js.map +0 -1
- package/dist/chunks/objFileLoader-BcUlaMO0.esm.min.js +0 -2
- package/dist/chunks/objFileLoader-BcUlaMO0.esm.min.js.map +0 -1
- package/dist/chunks/objFileLoader-CrSk62pN.esm.js +0 -1338
- package/dist/chunks/objFileLoader-CrSk62pN.esm.js.map +0 -1
- package/dist/chunks/oitFragment-9xHvc1pY.esm.min.js +0 -2
- package/dist/chunks/oitFragment-9xHvc1pY.esm.min.js.map +0 -1
- package/dist/chunks/oitFragment-BedTygSm.esm.js +0 -1240
- package/dist/chunks/oitFragment-BedTygSm.esm.js.map +0 -1
- package/dist/chunks/oitFragment-Dx3jhb-Y.esm.js +0 -1078
- package/dist/chunks/oitFragment-Dx3jhb-Y.esm.js.map +0 -1
- package/dist/chunks/oitFragment-wsShal2z.esm.min.js +0 -2
- package/dist/chunks/oitFragment-wsShal2z.esm.min.js.map +0 -1
- package/dist/chunks/pass.fragment-BAFAqEd3.esm.js +0 -15
- package/dist/chunks/pass.fragment-BAFAqEd3.esm.js.map +0 -1
- package/dist/chunks/pass.fragment-BCDgjoaP.esm.min.js +0 -2
- package/dist/chunks/pass.fragment-BCDgjoaP.esm.min.js.map +0 -1
- package/dist/chunks/pass.fragment-Cw2vMur1.esm.min.js +0 -2
- package/dist/chunks/pass.fragment-Cw2vMur1.esm.min.js.map +0 -1
- package/dist/chunks/pass.fragment-DvVPDD3q.esm.js +0 -15
- package/dist/chunks/pass.fragment-DvVPDD3q.esm.js.map +0 -1
- package/dist/chunks/pbr.fragment-BEgWbv9s.esm.min.js +0 -2
- package/dist/chunks/pbr.fragment-BEgWbv9s.esm.min.js.map +0 -1
- package/dist/chunks/pbr.fragment-CR8wXt2w.esm.js +0 -3232
- package/dist/chunks/pbr.fragment-CR8wXt2w.esm.js.map +0 -1
- package/dist/chunks/pbr.fragment-CmVN3-cU.esm.js +0 -3273
- package/dist/chunks/pbr.fragment-CmVN3-cU.esm.js.map +0 -1
- package/dist/chunks/pbr.fragment-DXqzm4Ha.esm.min.js +0 -2
- package/dist/chunks/pbr.fragment-DXqzm4Ha.esm.min.js.map +0 -1
- package/dist/chunks/pbr.vertex-B7DptLQs.esm.js +0 -214
- package/dist/chunks/pbr.vertex-B7DptLQs.esm.js.map +0 -1
- package/dist/chunks/pbr.vertex-BNDn-K_8.esm.min.js +0 -2
- package/dist/chunks/pbr.vertex-BNDn-K_8.esm.min.js.map +0 -1
- package/dist/chunks/pbr.vertex-Cp8jkMaM.esm.min.js +0 -2
- package/dist/chunks/pbr.vertex-Cp8jkMaM.esm.min.js.map +0 -1
- package/dist/chunks/pbr.vertex-rvNW4KDh.esm.js +0 -339
- package/dist/chunks/pbr.vertex-rvNW4KDh.esm.js.map +0 -1
- package/dist/chunks/postprocess.vertex-BRHkF-uK.esm.js +0 -20
- package/dist/chunks/postprocess.vertex-BRHkF-uK.esm.js.map +0 -1
- package/dist/chunks/postprocess.vertex-QT9kbb4b.esm.min.js +0 -2
- package/dist/chunks/postprocess.vertex-QT9kbb4b.esm.min.js.map +0 -1
- package/dist/chunks/rawTexture-CS3J_QPB.esm.min.js +0 -2
- package/dist/chunks/rawTexture-CS3J_QPB.esm.min.js.map +0 -1
- package/dist/chunks/rawTexture-CTQXP4lW.esm.js +0 -191
- package/dist/chunks/rawTexture-CTQXP4lW.esm.js.map +0 -1
- package/dist/chunks/ray-D1I6_i0K.esm.js +0 -946
- package/dist/chunks/ray-D1I6_i0K.esm.js.map +0 -1
- package/dist/chunks/ray-ffMmFIRM.esm.min.js +0 -2
- package/dist/chunks/ray-ffMmFIRM.esm.min.js.map +0 -1
- package/dist/chunks/rgbdDecode.fragment-BuXAGpKo.esm.js +0 -17
- package/dist/chunks/rgbdDecode.fragment-BuXAGpKo.esm.js.map +0 -1
- package/dist/chunks/rgbdDecode.fragment-Uqqwk9hd.esm.min.js +0 -2
- package/dist/chunks/rgbdDecode.fragment-Uqqwk9hd.esm.min.js.map +0 -1
- package/dist/chunks/rgbdDecode.fragment-iifwD2Tq.esm.js +0 -17
- package/dist/chunks/rgbdDecode.fragment-iifwD2Tq.esm.js.map +0 -1
- package/dist/chunks/rgbdDecode.fragment-ykJ6BacZ.esm.min.js +0 -2
- package/dist/chunks/rgbdDecode.fragment-ykJ6BacZ.esm.min.js.map +0 -1
- package/dist/chunks/rgbdEncode.fragment-B8trM95E.esm.js +0 -17
- package/dist/chunks/rgbdEncode.fragment-B8trM95E.esm.js.map +0 -1
- package/dist/chunks/rgbdEncode.fragment-Dk50Ggfr.esm.min.js +0 -2
- package/dist/chunks/rgbdEncode.fragment-Dk50Ggfr.esm.min.js.map +0 -1
- package/dist/chunks/rgbdEncode.fragment-OfZ629fV.esm.min.js +0 -2
- package/dist/chunks/rgbdEncode.fragment-OfZ629fV.esm.min.js.map +0 -1
- package/dist/chunks/rgbdEncode.fragment-S4QKY6JX.esm.js +0 -17
- package/dist/chunks/rgbdEncode.fragment-S4QKY6JX.esm.js.map +0 -1
- package/dist/chunks/splatFileLoader-BKRNi0Kz.esm.js +0 -3379
- package/dist/chunks/splatFileLoader-BKRNi0Kz.esm.js.map +0 -1
- package/dist/chunks/splatFileLoader-Bii2polh.esm.min.js +0 -2
- package/dist/chunks/splatFileLoader-Bii2polh.esm.min.js.map +0 -1
- package/dist/chunks/spotLight-Bx97rCpk.esm.js +0 -701
- package/dist/chunks/spotLight-Bx97rCpk.esm.js.map +0 -1
- package/dist/chunks/spotLight-WYJhdyXT.esm.min.js +0 -2
- package/dist/chunks/spotLight-WYJhdyXT.esm.min.js.map +0 -1
- package/dist/chunks/standardMaterial-B2COaxO7.esm.min.js +0 -2
- package/dist/chunks/standardMaterial-B2COaxO7.esm.min.js.map +0 -1
- package/dist/chunks/standardMaterial-DobO9sHt.esm.js +0 -1805
- package/dist/chunks/standardMaterial-DobO9sHt.esm.js.map +0 -1
- package/dist/chunks/stlFileLoader-BA8gtxRg.esm.js +0 -238
- package/dist/chunks/stlFileLoader-BA8gtxRg.esm.js.map +0 -1
- package/dist/chunks/stlFileLoader-hIvh4jC_.esm.min.js +0 -2
- package/dist/chunks/stlFileLoader-hIvh4jC_.esm.min.js.map +0 -1
- package/dist/chunks/tgaTextureLoader-BVKXLe7s.esm.js +0 -349
- package/dist/chunks/tgaTextureLoader-BVKXLe7s.esm.js.map +0 -1
- package/dist/chunks/tgaTextureLoader-autBbrGZ.esm.min.js +0 -2
- package/dist/chunks/tgaTextureLoader-autBbrGZ.esm.min.js.map +0 -1
- package/dist/chunks/thinEngine-BPspbumB.esm.min.js +0 -2
- package/dist/chunks/thinEngine-BPspbumB.esm.min.js.map +0 -1
- package/dist/chunks/thinEngine-wr-z1XFG.esm.js +0 -3848
- package/dist/chunks/thinEngine-wr-z1XFG.esm.js.map +0 -1
- package/dist/chunks/thinInstanceMesh-D2RBwifP.esm.min.js +0 -2
- package/dist/chunks/thinInstanceMesh-D2RBwifP.esm.min.js.map +0 -1
- package/dist/chunks/thinInstanceMesh-DVy1Ya49.esm.js +0 -314
- package/dist/chunks/thinInstanceMesh-DVy1Ya49.esm.js.map +0 -1
- package/dist/chunks/vertexColorMixing-B_-b5IVj.esm.js +0 -522
- package/dist/chunks/vertexColorMixing-B_-b5IVj.esm.js.map +0 -1
- package/dist/chunks/vertexColorMixing-Bd53icV7.esm.min.js +0 -2
- package/dist/chunks/vertexColorMixing-Bd53icV7.esm.min.js.map +0 -1
- package/dist/chunks/vertexColorMixing-Bm_nb2CS.esm.js +0 -412
- package/dist/chunks/vertexColorMixing-Bm_nb2CS.esm.js.map +0 -1
- package/dist/chunks/vertexColorMixing-DogY4EnF.esm.min.js +0 -2
- package/dist/chunks/vertexColorMixing-DogY4EnF.esm.min.js.map +0 -1
- package/dist/chunks/webgpuEngine-CZnjGjDY.esm.min.js +0 -2
- package/dist/chunks/webgpuEngine-CZnjGjDY.esm.min.js.map +0 -1
- package/dist/chunks/webgpuEngine-DQcXBSQC.esm.js +0 -11533
- package/dist/chunks/webgpuEngine-DQcXBSQC.esm.js.map +0 -1
- package/dist/chunks/workerPool-BUOov2K1.esm.js +0 -122
- package/dist/chunks/workerPool-BUOov2K1.esm.js.map +0 -1
- package/dist/chunks/workerPool-BWHiDmEZ.esm.min.js +0 -2
- package/dist/chunks/workerPool-BWHiDmEZ.esm.min.js.map +0 -1
- package/lib/index.d.ts +0 -559
- package/lib/index.js +0 -2083
- package/lib/index.js.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"viewerModel.js","sourceRoot":"","sources":["../../../../tools/viewer/src/model/viewerModel.ts"],"names":[],"mappings":"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","sourcesContent":["/* eslint-disable import/no-internal-modules */\r\nimport type { IDisposable } from \"core/scene\";\r\nimport type { ISceneLoaderPlugin, ISceneLoaderPluginAsync, ISceneLoaderProgressEvent } from \"core/Loading/sceneLoader\";\r\nimport type { AbstractMesh } from \"core/Meshes/abstractMesh\";\r\nimport type { IParticleSystem } from \"core/Particles/IParticleSystem\";\r\nimport type { Skeleton } from \"core/Bones/skeleton\";\r\nimport { Observable } from \"core/Misc/observable\";\r\nimport \"core/Misc/observable.extensions\";\r\nimport { AnimationGroup } from \"core/Animations/animationGroup\";\r\nimport type { Animatable } from \"core/Animations/index\";\r\nimport {\r\n Animation,\r\n CircleEase,\r\n BackEase,\r\n BounceEase,\r\n CubicEase,\r\n ElasticEase,\r\n ExponentialEase,\r\n PowerEase,\r\n QuadraticEase,\r\n QuarticEase,\r\n QuinticEase,\r\n SineEase,\r\n} from \"core/Animations/index\";\r\nimport type { Nullable } from \"core/types\";\r\nimport { Quaternion, Vector3 } from \"core/Maths/math.vector\";\r\nimport { Tags } from \"core/Misc/tags\";\r\nimport type { Material } from \"core/Materials/material\";\r\nimport { PBRMaterial } from \"core/Materials/PBR/pbrMaterial\";\r\nimport { MultiMaterial } from \"core/Materials/multiMaterial\";\r\nimport { Tools } from \"core/Misc/tools\";\r\nimport type { GLTFFileLoader } from \"loaders/glTF/index\";\r\nimport type { IAsset } from \"babylonjs-gltf2interface\";\r\nimport type { IModelConfiguration } from \"../configuration/interfaces/modelConfiguration\";\r\nimport type { IModelAnimationConfiguration } from \"../configuration/interfaces/modelAnimationConfiguration\";\r\nimport type { IModelAnimation, ModelAnimationConfiguration } from \"./modelAnimation\";\r\nimport { GroupModelAnimation, AnimationPlayMode, EasingFunction, AnimationState } from \"./modelAnimation\";\r\nimport { deepmerge, extendClassWithConfig } from \"../helper/index\";\r\nimport type { ObservablesManager } from \"../managers/observablesManager\";\r\nimport type { ConfigurationContainer } from \"../configuration/configurationContainer\";\r\nimport { TransformNode } from \"core/Meshes/transformNode\";\r\nimport { Mesh } from \"core/Meshes/mesh\";\r\n\r\n/**\r\n * The current state of the model\r\n */\r\nexport enum ModelState {\r\n INIT,\r\n LOADING,\r\n LOADED,\r\n ENTRY,\r\n ENTRYDONE,\r\n COMPLETE,\r\n CANCELED,\r\n ERROR,\r\n}\r\n\r\n/**\r\n * The viewer model is a container for all assets representing a sngle loaded model.\r\n */\r\nexport class ViewerModel implements IDisposable {\r\n /**\r\n * The loader used to load this model.\r\n */\r\n public loader: ISceneLoaderPlugin | ISceneLoaderPluginAsync;\r\n\r\n private _animations: Array<IModelAnimation>;\r\n\r\n /**\r\n * the list of meshes that are a part of this model\r\n */\r\n private _meshes: Array<AbstractMesh> = [];\r\n /**\r\n * This model's root mesh (the parent of all other meshes).\r\n * This mesh does not(!) exist in the meshes array.\r\n */\r\n public rootMesh: AbstractMesh;\r\n\r\n private _pivotMesh: TransformNode;\r\n /**\r\n * ParticleSystems connected to this model\r\n */\r\n public particleSystems: Array<IParticleSystem> = [];\r\n /**\r\n * Skeletons defined in this model\r\n */\r\n public skeletons: Array<Skeleton> = [];\r\n /**\r\n * The current model animation.\r\n * On init, this will be undefined.\r\n */\r\n public currentAnimation: IModelAnimation;\r\n\r\n /**\r\n * Observers registered here will be executed when the model is done loading\r\n */\r\n public onLoadedObservable: Observable<ViewerModel>;\r\n /**\r\n * Observers registered here will be executed when the loader notified of a progress event\r\n */\r\n public onLoadProgressObservable: Observable<ISceneLoaderProgressEvent>;\r\n /**\r\n * Observers registered here will be executed when the loader notified of an error.\r\n */\r\n public onLoadErrorObservable: Observable<{ message: string; exception: any }>;\r\n\r\n /**\r\n * Will be executed after the model finished loading and complete, including entry animation and lod\r\n */\r\n public onCompleteObservable: Observable<ViewerModel>;\r\n /**\r\n * Observers registered here will be executed every time the model is being configured.\r\n * This can be used to extend the model's configuration without extending the class itself\r\n */\r\n public onAfterConfigure: Observable<ViewerModel>;\r\n\r\n /**\r\n * The current model state (loaded, error, etc)\r\n */\r\n public state: ModelState;\r\n /**\r\n * A loadID provided by the modelLoader, unique to ths (Abstract)Viewer instance.\r\n */\r\n public loadId: number;\r\n\r\n public loadInfo: IAsset;\r\n private _modelConfiguration: IModelConfiguration;\r\n\r\n private _loaderDone: boolean = false;\r\n\r\n private _entryAnimation: ModelAnimationConfiguration;\r\n private _scaleTransition: Animation;\r\n private _animatables: Array<Animatable> = [];\r\n private _frameRate: number = 60;\r\n\r\n private _shadowsRenderedAfterLoad: boolean = false;\r\n\r\n constructor(\r\n private _observablesManager: ObservablesManager,\r\n modelConfiguration: IModelConfiguration,\r\n private _configurationContainer?: ConfigurationContainer\r\n ) {\r\n this.onLoadedObservable = new Observable();\r\n this.onLoadErrorObservable = new Observable();\r\n this.onLoadProgressObservable = new Observable();\r\n this.onCompleteObservable = new Observable();\r\n this.onAfterConfigure = new Observable();\r\n\r\n this.state = ModelState.INIT;\r\n\r\n const scene = this._configurationContainer && this._configurationContainer.scene;\r\n\r\n this.rootMesh = new Mesh(\"modelRootMesh\", scene);\r\n this._pivotMesh = new TransformNode(\"pivotMesh\", scene);\r\n this._pivotMesh.parent = this.rootMesh;\r\n // rotate 180, gltf fun\r\n this._pivotMesh.rotation.y += Math.PI;\r\n\r\n this._scaleTransition = new Animation(\"scaleAnimation\", \"scaling\", this._frameRate, Animation.ANIMATIONTYPE_VECTOR3, Animation.ANIMATIONLOOPMODE_CONSTANT);\r\n\r\n this._animations = [];\r\n //create a copy of the configuration to make sure it doesn't change even after it is changed in the viewer\r\n this._modelConfiguration = deepmerge((this._configurationContainer && this._configurationContainer.configuration.model) || {}, modelConfiguration);\r\n\r\n if (this._observablesManager) {\r\n this._observablesManager.onModelAddedObservable.notifyObservers(this);\r\n }\r\n\r\n if (this._modelConfiguration.entryAnimation) {\r\n this.rootMesh.setEnabled(false);\r\n }\r\n\r\n this.onLoadedObservable.add(() => {\r\n this.updateConfiguration(this._modelConfiguration);\r\n if (this._observablesManager) {\r\n this._observablesManager.onModelLoadedObservable.notifyObservers(this);\r\n }\r\n this._initAnimations();\r\n });\r\n\r\n this.onCompleteObservable.add(() => {\r\n this.state = ModelState.COMPLETE;\r\n });\r\n }\r\n\r\n public get shadowsRenderedAfterLoad() {\r\n return this._shadowsRenderedAfterLoad;\r\n }\r\n\r\n public set shadowsRenderedAfterLoad(rendered: boolean) {\r\n if (!rendered) {\r\n throw new Error(\"can only be enabled\");\r\n } else {\r\n this._shadowsRenderedAfterLoad = rendered;\r\n }\r\n }\r\n\r\n public getViewerId() {\r\n return this._configurationContainer && this._configurationContainer.viewerId;\r\n }\r\n\r\n /**\r\n * Is this model enabled?\r\n */\r\n public get enabled() {\r\n return this.rootMesh.isEnabled();\r\n }\r\n\r\n /**\r\n * Set whether this model is enabled or not.\r\n */\r\n public set enabled(enable: boolean) {\r\n this.rootMesh.setEnabled(enable);\r\n }\r\n\r\n public set loaderDone(done: boolean) {\r\n this._loaderDone = done;\r\n this._checkCompleteState();\r\n }\r\n\r\n private _checkCompleteState() {\r\n if (this._loaderDone && this.state === ModelState.ENTRYDONE) {\r\n this._modelComplete();\r\n }\r\n }\r\n\r\n /**\r\n * Add a mesh to this model.\r\n * Any mesh that has no parent will be provided with the root mesh as its new parent.\r\n *\r\n * @param mesh the new mesh to add\r\n * @param triggerLoaded should this mesh trigger the onLoaded observable. Used when adding meshes manually.\r\n * @returns a promise that will resolve when the model is done loading\r\n */\r\n public addMesh(mesh: AbstractMesh, triggerLoaded?: boolean) {\r\n if (!mesh.parent) {\r\n mesh.parent = this._pivotMesh;\r\n }\r\n\r\n if (mesh.getClassName() !== \"InstancedMesh\") {\r\n mesh.receiveShadows = !!this.configuration.receiveShadows;\r\n }\r\n\r\n this._meshes.push(mesh);\r\n if (triggerLoaded) {\r\n return this.onLoadedObservable.notifyObserversWithPromise(this);\r\n }\r\n return Promise.resolve(this);\r\n }\r\n\r\n /**\r\n * get the list of meshes (excluding the root mesh)\r\n */\r\n public get meshes() {\r\n return this._meshes;\r\n }\r\n\r\n /**\r\n * Get the model's configuration\r\n */\r\n public get configuration(): IModelConfiguration {\r\n return this._modelConfiguration;\r\n }\r\n\r\n /**\r\n * (Re-)set the model's entire configuration\r\n * @param newConfiguration the new configuration to replace the new one\r\n */\r\n public set configuration(newConfiguration: IModelConfiguration) {\r\n this._modelConfiguration = newConfiguration;\r\n this._configureModel();\r\n }\r\n\r\n /**\r\n * Update the current configuration with new values.\r\n * Configuration will not be overwritten, but merged with the new configuration.\r\n * Priority is to the new configuration\r\n * @param newConfiguration the configuration to be merged into the current configuration;\r\n */\r\n public updateConfiguration(newConfiguration: Partial<IModelConfiguration>) {\r\n this._modelConfiguration = deepmerge(this._modelConfiguration, newConfiguration);\r\n this._configureModel();\r\n }\r\n\r\n private _initAnimations() {\r\n // check if this is not a gltf loader and init the animations\r\n if (this.skeletons.length) {\r\n this.skeletons.forEach((skeleton, idx) => {\r\n const ag = new AnimationGroup(\"animation-\" + idx, this._configurationContainer && this._configurationContainer.scene);\r\n let add = false;\r\n skeleton.getAnimatables().forEach((a) => {\r\n if (a.animations && a.animations[0]) {\r\n ag.addTargetedAnimation(a.animations[0], a);\r\n add = true;\r\n }\r\n });\r\n if (add) {\r\n this.addAnimationGroup(ag);\r\n }\r\n });\r\n }\r\n\r\n let completeCallback = () => {};\r\n\r\n if (this._modelConfiguration.animation) {\r\n if (this._modelConfiguration.animation.playOnce) {\r\n this._animations.forEach((a) => {\r\n a.playMode = AnimationPlayMode.ONCE;\r\n });\r\n }\r\n if (this._modelConfiguration.animation.autoStart && this._animations.length) {\r\n const animationName = this._modelConfiguration.animation.autoStart === true ? this._animations[0].name : this._modelConfiguration.animation.autoStart;\r\n\r\n completeCallback = () => {\r\n this.playAnimation(animationName);\r\n };\r\n }\r\n }\r\n\r\n this._enterScene(completeCallback);\r\n }\r\n\r\n /**\r\n * Animates the model from the current position to the default position\r\n * @param completeCallback A function to call when the animation has completed\r\n */\r\n private _enterScene(completeCallback?: () => void): void {\r\n const scene = this.rootMesh.getScene();\r\n const previousValue = scene.animationPropertiesOverride!.enableBlending;\r\n const callback = () => {\r\n this.state = ModelState.ENTRYDONE;\r\n scene.animationPropertiesOverride!.enableBlending = previousValue;\r\n this._checkCompleteState();\r\n if (completeCallback) {\r\n completeCallback();\r\n }\r\n };\r\n if (!this._entryAnimation) {\r\n callback();\r\n return;\r\n }\r\n this.rootMesh.setEnabled(true);\r\n // disable blending for the sake of the entry animation;\r\n scene.animationPropertiesOverride!.enableBlending = false;\r\n this._applyAnimation(this._entryAnimation, true, callback);\r\n }\r\n\r\n // /**\r\n // * Animates the model from the current position to the exit-screen position\r\n // * @param completeCallback A function to call when the animation has completed\r\n // */\r\n // private _exitScene(completeCallback: () => void): void {\r\n // if (!this._exitAnimation) {\r\n // completeCallback();\r\n // return;\r\n // }\r\n\r\n // this._applyAnimation(this._exitAnimation, false, completeCallback);\r\n // }\r\n\r\n private _modelComplete() {\r\n //reapply material defines to be sure:\r\n const meshes = this._pivotMesh.getChildMeshes(false);\r\n meshes\r\n .filter((m) => m.material)\r\n .forEach((mesh) => {\r\n this._applyModelMaterialConfiguration(mesh.material!);\r\n });\r\n this.state = ModelState.COMPLETE;\r\n this.onCompleteObservable.notifyObservers(this);\r\n }\r\n\r\n /**\r\n * Add a new animation group to this model.\r\n * @param animationGroup the new animation group to be added\r\n */\r\n public addAnimationGroup(animationGroup: AnimationGroup) {\r\n this._animations.push(new GroupModelAnimation(animationGroup));\r\n }\r\n\r\n /**\r\n * Get the ModelAnimation array\r\n * @returns the array of ModelAnimations\r\n */\r\n public getAnimations(): Array<IModelAnimation> {\r\n return this._animations;\r\n }\r\n\r\n /**\r\n * Get the animations' names. Using the names you can play a specific animation.\r\n * @returns the array of ModelAnimations\r\n */\r\n public getAnimationNames(): Array<string> {\r\n return this._animations.map((a) => a.name);\r\n }\r\n\r\n /**\r\n * Get an animation by the provided name. Used mainly when playing n animation.\r\n * @param name the name of the animation to find\r\n * @returns the ModelAnimation object\r\n */\r\n protected _getAnimationByName(name: string): Nullable<IModelAnimation> {\r\n // can't use .find, noe available on IE\r\n const filtered = this._animations.filter((a) => a.name === name.trim());\r\n if (filtered.length >= 1) {\r\n return filtered[0];\r\n } else {\r\n return null;\r\n }\r\n }\r\n\r\n /**\r\n * Choose an initialized animation using its name and start playing it\r\n * @param name the name of the animation to play\r\n * @returns The model aniamtion to be played.\r\n */\r\n public playAnimation(name: string): IModelAnimation {\r\n const animation = this.setCurrentAnimationByName(name);\r\n if (animation) {\r\n animation.start();\r\n }\r\n return animation;\r\n }\r\n\r\n public setCurrentAnimationByName(name: string) {\r\n const animation = this._getAnimationByName(name.trim());\r\n if (animation) {\r\n if (this.currentAnimation && this.currentAnimation.state !== AnimationState.STOPPED) {\r\n this.currentAnimation.stop();\r\n }\r\n this.currentAnimation = animation;\r\n return animation;\r\n } else {\r\n throw new Error(\"animation not found - \" + name);\r\n }\r\n }\r\n\r\n private _configureModel() {\r\n // this can be changed to the meshes that have rootMesh a parent without breaking anything.\r\n const meshesWithNoParent: Array<TransformNode> = [this.rootMesh]; //this._meshes.filter(m => m.parent === this.rootMesh);\r\n const updateMeshesWithNoParent = (variable: string, value: any, param?: string) => {\r\n meshesWithNoParent.forEach((mesh) => {\r\n if (param) {\r\n mesh[variable as keyof TransformNode][param] = value;\r\n } else {\r\n (mesh as any)[variable] = value;\r\n }\r\n });\r\n };\r\n const updateXYZ = (variable: string, configValues: { x: number; y: number; z: number; w?: number }) => {\r\n if (configValues.x !== undefined) {\r\n updateMeshesWithNoParent(variable, configValues.x, \"x\");\r\n }\r\n if (configValues.y !== undefined) {\r\n updateMeshesWithNoParent(variable, configValues.y, \"y\");\r\n }\r\n if (configValues.z !== undefined) {\r\n updateMeshesWithNoParent(variable, configValues.z, \"z\");\r\n }\r\n if (configValues.w !== undefined) {\r\n updateMeshesWithNoParent(variable, configValues.w, \"w\");\r\n }\r\n };\r\n\r\n if (this._modelConfiguration.normalize) {\r\n let center = false;\r\n let unitSize = false;\r\n let parentIndex;\r\n if (this._modelConfiguration.normalize === true) {\r\n center = true;\r\n unitSize = true;\r\n } else {\r\n center = !!this._modelConfiguration.normalize.center;\r\n unitSize = !!this._modelConfiguration.normalize.unitSize;\r\n parentIndex = this._modelConfiguration.normalize.parentIndex;\r\n }\r\n\r\n let meshesToNormalize: Array<TransformNode> = [];\r\n if (parentIndex !== undefined) {\r\n meshesToNormalize.push(this._meshes[parentIndex]);\r\n } else {\r\n meshesToNormalize = this._pivotMesh.getChildMeshes(true).length === 1 ? [this._pivotMesh] : meshesWithNoParent;\r\n }\r\n\r\n if (unitSize) {\r\n meshesToNormalize.forEach((mesh) => {\r\n mesh.normalizeToUnitCube(true);\r\n mesh.computeWorldMatrix(true);\r\n });\r\n }\r\n if (center) {\r\n meshesToNormalize.forEach((mesh) => {\r\n const boundingInfo = mesh.getHierarchyBoundingVectors(true);\r\n const sizeVec = boundingInfo.max.subtract(boundingInfo.min);\r\n const halfSizeVec = sizeVec.scale(0.5);\r\n const center = boundingInfo.min.add(halfSizeVec);\r\n mesh.position = center.scale(-1);\r\n\r\n mesh.position.y += halfSizeVec.y;\r\n\r\n // Recompute Info.\r\n mesh.computeWorldMatrix(true);\r\n });\r\n }\r\n } else {\r\n // if centered, should be done here\r\n }\r\n\r\n // position?\r\n if (this._modelConfiguration.position) {\r\n updateXYZ(\"position\", this._modelConfiguration.position);\r\n }\r\n if (this._modelConfiguration.rotation) {\r\n //quaternion?\r\n if (this._modelConfiguration.rotation.w) {\r\n meshesWithNoParent.forEach((mesh) => {\r\n if (!mesh.rotationQuaternion) {\r\n mesh.rotationQuaternion = new Quaternion();\r\n }\r\n });\r\n updateXYZ(\"rotationQuaternion\", this._modelConfiguration.rotation);\r\n } else {\r\n updateXYZ(\"rotation\", this._modelConfiguration.rotation);\r\n }\r\n }\r\n\r\n if (this._modelConfiguration.rotationOffsetAxis) {\r\n const rotationAxis = new Vector3(\r\n this._modelConfiguration.rotationOffsetAxis.x,\r\n this._modelConfiguration.rotationOffsetAxis.y,\r\n this._modelConfiguration.rotationOffsetAxis.z\r\n );\r\n\r\n meshesWithNoParent.forEach((m) => {\r\n if (this._modelConfiguration.rotationOffsetAngle) {\r\n m.rotate(rotationAxis, this._modelConfiguration.rotationOffsetAngle);\r\n }\r\n });\r\n }\r\n\r\n if (this._modelConfiguration.scaling) {\r\n updateXYZ(\"scaling\", this._modelConfiguration.scaling);\r\n }\r\n\r\n if (this._modelConfiguration.castShadow) {\r\n this._meshes.forEach((mesh) => {\r\n Tags.AddTagsTo(mesh, \"castShadow\");\r\n });\r\n }\r\n\r\n const meshes = this._pivotMesh.getChildMeshes(false);\r\n meshes\r\n .filter((m) => m.material)\r\n .forEach((mesh) => {\r\n this._applyModelMaterialConfiguration(mesh.material!);\r\n });\r\n\r\n if (this._modelConfiguration.entryAnimation) {\r\n this._entryAnimation = this._modelAnimationConfigurationToObject(this._modelConfiguration.entryAnimation);\r\n }\r\n\r\n // if (this._modelConfiguration.exitAnimation) {\r\n // this._exitAnimation = this._modelAnimationConfigurationToObject(this._modelConfiguration.exitAnimation);\r\n // }\r\n\r\n this.onAfterConfigure.notifyObservers(this);\r\n }\r\n\r\n private _modelAnimationConfigurationToObject(animConfig: IModelAnimationConfiguration): ModelAnimationConfiguration {\r\n const anim: ModelAnimationConfiguration = {\r\n time: 0.5,\r\n };\r\n if (animConfig.scaling) {\r\n anim.scaling = Vector3.Zero();\r\n }\r\n if (animConfig.easingFunction !== undefined) {\r\n anim.easingFunction = animConfig.easingFunction;\r\n }\r\n if (animConfig.easingMode !== undefined) {\r\n anim.easingMode = animConfig.easingMode;\r\n }\r\n extendClassWithConfig(anim, animConfig);\r\n return anim;\r\n }\r\n\r\n /**\r\n * Apply a material configuration to a material\r\n * @param material Material to apply configuration to\r\n * @internal\r\n */\r\n public _applyModelMaterialConfiguration(material: Material) {\r\n if (!this._modelConfiguration.material) {\r\n return;\r\n }\r\n\r\n extendClassWithConfig(material, this._modelConfiguration.material);\r\n\r\n if (material instanceof PBRMaterial) {\r\n if (this._modelConfiguration.material.directIntensity !== undefined) {\r\n material.directIntensity = this._modelConfiguration.material.directIntensity;\r\n }\r\n\r\n if (this._modelConfiguration.material.emissiveIntensity !== undefined) {\r\n material.emissiveIntensity = this._modelConfiguration.material.emissiveIntensity;\r\n }\r\n\r\n if (this._modelConfiguration.material.environmentIntensity !== undefined) {\r\n material.environmentIntensity = this._modelConfiguration.material.environmentIntensity;\r\n }\r\n\r\n if (this._modelConfiguration.material.directEnabled !== undefined) {\r\n material.disableLighting = !this._modelConfiguration.material.directEnabled;\r\n }\r\n if (this._configurationContainer && this._configurationContainer.reflectionColor) {\r\n material.reflectionColor = this._configurationContainer.reflectionColor.clone();\r\n }\r\n } else if (material instanceof MultiMaterial) {\r\n for (let i = 0; i < material.subMaterials.length; i++) {\r\n const subMaterial = material.subMaterials[i];\r\n if (subMaterial) {\r\n this._applyModelMaterialConfiguration(subMaterial);\r\n }\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * Start entry/exit animation given an animation configuration\r\n * @param animationConfiguration Entry/Exit animation configuration\r\n * @param isEntry Pass true if the animation is an entry animation\r\n * @param completeCallback Callback to execute when the animation completes\r\n */\r\n private _applyAnimation(animationConfiguration: ModelAnimationConfiguration, isEntry: boolean, completeCallback?: () => void) {\r\n const animations: Animation[] = [];\r\n\r\n //scale\r\n if (animationConfiguration.scaling) {\r\n const scaleStart: Vector3 = isEntry ? animationConfiguration.scaling : new Vector3(1, 1, 1);\r\n const scaleEnd: Vector3 = isEntry ? new Vector3(1, 1, 1) : animationConfiguration.scaling;\r\n\r\n if (!scaleStart.equals(scaleEnd)) {\r\n this.rootMesh.scaling = scaleStart;\r\n this._setLinearKeys(this._scaleTransition, this.rootMesh.scaling, scaleEnd, animationConfiguration.time);\r\n animations.push(this._scaleTransition);\r\n }\r\n }\r\n\r\n //Start the animation(s)\r\n this.transitionTo(animations, animationConfiguration.time, this._createEasingFunction(animationConfiguration.easingFunction), animationConfiguration.easingMode, () => {\r\n if (completeCallback) {\r\n completeCallback();\r\n }\r\n });\r\n }\r\n\r\n /**\r\n * Begin @animations with the specified @easingFunction\r\n * @param animations The BABYLON Animations to begin\r\n * @param duration of transition, in seconds\r\n * @param easingFunction An easing function to apply\r\n * @param easingMode A easing mode to apply to the easingFunction\r\n * @param onAnimationEnd Call back trigger at the end of the animation.\r\n */\r\n public transitionTo(\r\n animations: Animation[],\r\n duration: number,\r\n easingFunction: any,\r\n easingMode: number = 2, // BABYLON.EasingFunction.EASINGMODE_EASEINOUT,\r\n onAnimationEnd: () => void\r\n ): void {\r\n if (easingFunction) {\r\n for (const animation of animations) {\r\n easingFunction.setEasingMode(easingMode);\r\n animation.setEasingFunction(easingFunction);\r\n }\r\n }\r\n\r\n //Stop any current animations before starting the new one - merging not yet supported.\r\n this.stopAllAnimations();\r\n\r\n this.rootMesh.animations = animations;\r\n\r\n if (this.rootMesh.getScene().beginAnimation !== undefined) {\r\n const animatable: Animatable = this.rootMesh.getScene().beginAnimation(this.rootMesh, 0, this._frameRate * duration, false, 1, () => {\r\n if (onAnimationEnd) {\r\n onAnimationEnd();\r\n }\r\n });\r\n this._animatables.push(animatable);\r\n }\r\n }\r\n\r\n /**\r\n * Sets key values on an Animation from first to last frame.\r\n * @param animation The Babylon animation object to set keys on\r\n * @param startValue The value of the first key\r\n * @param endValue The value of the last key\r\n * @param duration The duration of the animation, used to determine the end frame\r\n */\r\n private _setLinearKeys(animation: Animation, startValue: any, endValue: any, duration: number) {\r\n animation.setKeys([\r\n {\r\n frame: 0,\r\n value: startValue,\r\n },\r\n {\r\n frame: this._frameRate * duration,\r\n value: endValue,\r\n },\r\n ]);\r\n }\r\n\r\n /**\r\n * Creates and returns a Babylon easing funtion object based on a string representing the Easing function\r\n * @param easingFunctionID The enum of the easing funtion to create\r\n * @returns The newly created Babylon easing function object\r\n */\r\n private _createEasingFunction(easingFunctionID?: number): any {\r\n let easingFunction;\r\n\r\n switch (easingFunctionID) {\r\n case EasingFunction.CircleEase:\r\n easingFunction = new CircleEase();\r\n break;\r\n case EasingFunction.BackEase:\r\n easingFunction = new BackEase(0.3);\r\n break;\r\n case EasingFunction.BounceEase:\r\n easingFunction = new BounceEase();\r\n break;\r\n case EasingFunction.CubicEase:\r\n easingFunction = new CubicEase();\r\n break;\r\n case EasingFunction.ElasticEase:\r\n easingFunction = new ElasticEase();\r\n break;\r\n case EasingFunction.ExponentialEase:\r\n easingFunction = new ExponentialEase();\r\n break;\r\n case EasingFunction.PowerEase:\r\n easingFunction = new PowerEase();\r\n break;\r\n case EasingFunction.QuadraticEase:\r\n easingFunction = new QuadraticEase();\r\n break;\r\n case EasingFunction.QuarticEase:\r\n easingFunction = new QuarticEase();\r\n break;\r\n case EasingFunction.QuinticEase:\r\n easingFunction = new QuinticEase();\r\n break;\r\n case EasingFunction.SineEase:\r\n easingFunction = new SineEase();\r\n break;\r\n default:\r\n Tools.Log(\"No ease function found\");\r\n break;\r\n }\r\n\r\n return easingFunction;\r\n }\r\n\r\n /**\r\n * Stops and removes all animations that have been applied to the model\r\n */\r\n public stopAllAnimations(): void {\r\n if (this.rootMesh) {\r\n this.rootMesh.animations = [];\r\n }\r\n if (this.currentAnimation) {\r\n this.currentAnimation.stop();\r\n }\r\n while (this._animatables.length) {\r\n this._animatables[0].onAnimationEnd = null;\r\n this._animatables[0].stop();\r\n this._animatables.shift();\r\n }\r\n }\r\n\r\n /**\r\n * Will remove this model from the viewer (but NOT dispose it).\r\n */\r\n public remove() {\r\n this.stopAllAnimations();\r\n\r\n if (this._observablesManager) {\r\n this._observablesManager.onModelRemovedObservable.notifyObservers(this);\r\n }\r\n }\r\n\r\n /**\r\n * Dispose this model, including all of its associated assets.\r\n */\r\n public dispose() {\r\n this.remove();\r\n this.onAfterConfigure.clear();\r\n this.onLoadedObservable.clear();\r\n this.onLoadErrorObservable.clear();\r\n this.onLoadProgressObservable.clear();\r\n if (this.loader && this.loader.name === \"gltf\") {\r\n (<GLTFFileLoader>this.loader).dispose();\r\n }\r\n this.particleSystems.forEach((ps) => ps.dispose());\r\n this.particleSystems.length = 0;\r\n this.skeletons.forEach((s) => s.dispose());\r\n this.skeletons.length = 0;\r\n this._animations.forEach((ag) => ag.dispose());\r\n this._animations.length = 0;\r\n this.rootMesh.dispose(false, true);\r\n }\r\n}\r\n"]}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { SceneManager } from "../../managers/sceneManager";
|
|
2
|
+
/**
|
|
3
|
+
* A custom upgrade-oriented function configuration for the scene optimizer.
|
|
4
|
+
* @param sceneManager
|
|
5
|
+
* @returns true if the scene is fully upgraded
|
|
6
|
+
*/
|
|
7
|
+
export declare function extendedUpgrade(sceneManager: SceneManager): boolean;
|
|
8
|
+
/**
|
|
9
|
+
* A custom degrade-oriented function configuration for the scene optimizer.
|
|
10
|
+
* @param sceneManager
|
|
11
|
+
* @returns true if the scene is fully degraded
|
|
12
|
+
*/
|
|
13
|
+
export declare function extendedDegrade(sceneManager: SceneManager): boolean;
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
import { Scalar } from "@babylonjs/core/Maths/math.scalar.js";
|
|
2
|
+
/**
|
|
3
|
+
* A custom upgrade-oriented function configuration for the scene optimizer.
|
|
4
|
+
* @param sceneManager
|
|
5
|
+
* @returns true if the scene is fully upgraded
|
|
6
|
+
*/
|
|
7
|
+
export function extendedUpgrade(sceneManager) {
|
|
8
|
+
var defaultPipeline = sceneManager.defaultRenderingPipeline;
|
|
9
|
+
// if (!this.Scene.BackgroundHelper) {
|
|
10
|
+
// this.Scene.EngineScene.autoClear = false;
|
|
11
|
+
// this.Scene.BackgroundHelper = true;
|
|
12
|
+
// Would require a dedicated clear color;
|
|
13
|
+
// return false;
|
|
14
|
+
// }
|
|
15
|
+
if (sceneManager.scene.getEngine().getHardwareScalingLevel() > 1) {
|
|
16
|
+
var scaling = Scalar.Clamp(sceneManager.scene.getEngine().getHardwareScalingLevel() - 0.25, 0, 1);
|
|
17
|
+
sceneManager.scene.getEngine().setHardwareScalingLevel(scaling);
|
|
18
|
+
return false;
|
|
19
|
+
}
|
|
20
|
+
if (!sceneManager.scene.postProcessesEnabled) {
|
|
21
|
+
sceneManager.scene.postProcessesEnabled = true;
|
|
22
|
+
return false;
|
|
23
|
+
}
|
|
24
|
+
if (!sceneManager.groundEnabled) {
|
|
25
|
+
sceneManager.groundEnabled = true;
|
|
26
|
+
return false;
|
|
27
|
+
}
|
|
28
|
+
if (defaultPipeline && !sceneManager.fxaaEnabled) {
|
|
29
|
+
sceneManager.fxaaEnabled = true;
|
|
30
|
+
return false;
|
|
31
|
+
}
|
|
32
|
+
var hardwareScalingLevel = Math.max(1 / 2, 1 / (window.devicePixelRatio || 2));
|
|
33
|
+
if (sceneManager.scene.getEngine().getHardwareScalingLevel() > hardwareScalingLevel) {
|
|
34
|
+
var scaling = Scalar.Clamp(sceneManager.scene.getEngine().getHardwareScalingLevel() - 0.25, 0, hardwareScalingLevel);
|
|
35
|
+
sceneManager.scene.getEngine().setHardwareScalingLevel(scaling);
|
|
36
|
+
return false;
|
|
37
|
+
}
|
|
38
|
+
if (!sceneManager.processShadows) {
|
|
39
|
+
sceneManager.processShadows = true;
|
|
40
|
+
return false;
|
|
41
|
+
}
|
|
42
|
+
if (defaultPipeline && !sceneManager.bloomEnabled) {
|
|
43
|
+
sceneManager.bloomEnabled = true;
|
|
44
|
+
return false;
|
|
45
|
+
}
|
|
46
|
+
if (!sceneManager.groundMirrorEnabled) {
|
|
47
|
+
sceneManager.groundMirrorEnabled = true;
|
|
48
|
+
return false;
|
|
49
|
+
}
|
|
50
|
+
return true;
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* A custom degrade-oriented function configuration for the scene optimizer.
|
|
54
|
+
* @param sceneManager
|
|
55
|
+
* @returns true if the scene is fully degraded
|
|
56
|
+
*/
|
|
57
|
+
export function extendedDegrade(sceneManager) {
|
|
58
|
+
var defaultPipeline = sceneManager.defaultRenderingPipeline;
|
|
59
|
+
if (sceneManager.groundMirrorEnabled) {
|
|
60
|
+
sceneManager.groundMirrorEnabled = false;
|
|
61
|
+
return false;
|
|
62
|
+
}
|
|
63
|
+
if (defaultPipeline && sceneManager.bloomEnabled) {
|
|
64
|
+
sceneManager.bloomEnabled = false;
|
|
65
|
+
return false;
|
|
66
|
+
}
|
|
67
|
+
if (sceneManager.processShadows) {
|
|
68
|
+
sceneManager.processShadows = false;
|
|
69
|
+
return false;
|
|
70
|
+
}
|
|
71
|
+
if (sceneManager.scene.getEngine().getHardwareScalingLevel() < 1) {
|
|
72
|
+
var scaling = Scalar.Clamp(sceneManager.scene.getEngine().getHardwareScalingLevel() + 0.25, 0, 1);
|
|
73
|
+
sceneManager.scene.getEngine().setHardwareScalingLevel(scaling);
|
|
74
|
+
return false;
|
|
75
|
+
}
|
|
76
|
+
if (defaultPipeline && sceneManager.fxaaEnabled) {
|
|
77
|
+
sceneManager.fxaaEnabled = false;
|
|
78
|
+
return false;
|
|
79
|
+
}
|
|
80
|
+
if (sceneManager.groundEnabled) {
|
|
81
|
+
sceneManager.groundEnabled = false;
|
|
82
|
+
return false;
|
|
83
|
+
}
|
|
84
|
+
if (sceneManager.scene.postProcessesEnabled) {
|
|
85
|
+
sceneManager.scene.postProcessesEnabled = false;
|
|
86
|
+
return false;
|
|
87
|
+
}
|
|
88
|
+
if (sceneManager.scene.getEngine().getHardwareScalingLevel() < 1.25) {
|
|
89
|
+
var scaling = Scalar.Clamp(sceneManager.scene.getEngine().getHardwareScalingLevel() + 0.25, 0, 1.25);
|
|
90
|
+
sceneManager.scene.getEngine().setHardwareScalingLevel(scaling);
|
|
91
|
+
return false;
|
|
92
|
+
}
|
|
93
|
+
// if (this.Scene.BackgroundHelper) {
|
|
94
|
+
// this.Scene.EngineScene.autoClear = true;
|
|
95
|
+
// this.Scene.BackgroundHelper = false;
|
|
96
|
+
// Would require a dedicated clear color;
|
|
97
|
+
// return false;
|
|
98
|
+
// }
|
|
99
|
+
return true;
|
|
100
|
+
}
|
|
101
|
+
//# sourceMappingURL=extended.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"extended.js","sourceRoot":"","sources":["../../../../../tools/viewer/src/optimizer/custom/extended.ts"],"names":[],"mappings":"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","sourcesContent":["import type { DefaultRenderingPipeline } from \"core/PostProcesses/RenderPipeline/Pipelines/defaultRenderingPipeline\";\r\nimport { Scalar } from \"core/Maths/math.scalar\";\r\nimport type { SceneManager } from \"../../managers/sceneManager\";\r\n\r\n/**\r\n * A custom upgrade-oriented function configuration for the scene optimizer.\r\n * @param sceneManager\r\n * @returns true if the scene is fully upgraded\r\n */\r\nexport function extendedUpgrade(sceneManager: SceneManager): boolean {\r\n const defaultPipeline = <DefaultRenderingPipeline>sceneManager.defaultRenderingPipeline;\r\n // if (!this.Scene.BackgroundHelper) {\r\n // \tthis.Scene.EngineScene.autoClear = false;\r\n // this.Scene.BackgroundHelper = true;\r\n // Would require a dedicated clear color;\r\n // return false;\r\n // }\r\n if (sceneManager.scene.getEngine().getHardwareScalingLevel() > 1) {\r\n const scaling = Scalar.Clamp(sceneManager.scene.getEngine().getHardwareScalingLevel() - 0.25, 0, 1);\r\n sceneManager.scene.getEngine().setHardwareScalingLevel(scaling);\r\n return false;\r\n }\r\n if (!sceneManager.scene.postProcessesEnabled) {\r\n sceneManager.scene.postProcessesEnabled = true;\r\n return false;\r\n }\r\n if (!sceneManager.groundEnabled) {\r\n sceneManager.groundEnabled = true;\r\n return false;\r\n }\r\n if (defaultPipeline && !sceneManager.fxaaEnabled) {\r\n sceneManager.fxaaEnabled = true;\r\n return false;\r\n }\r\n const hardwareScalingLevel = Math.max(1 / 2, 1 / (window.devicePixelRatio || 2));\r\n if (sceneManager.scene.getEngine().getHardwareScalingLevel() > hardwareScalingLevel) {\r\n const scaling = Scalar.Clamp(sceneManager.scene.getEngine().getHardwareScalingLevel() - 0.25, 0, hardwareScalingLevel);\r\n sceneManager.scene.getEngine().setHardwareScalingLevel(scaling);\r\n return false;\r\n }\r\n if (!sceneManager.processShadows) {\r\n sceneManager.processShadows = true;\r\n return false;\r\n }\r\n if (defaultPipeline && !sceneManager.bloomEnabled) {\r\n sceneManager.bloomEnabled = true;\r\n return false;\r\n }\r\n if (!sceneManager.groundMirrorEnabled) {\r\n sceneManager.groundMirrorEnabled = true;\r\n return false;\r\n }\r\n return true;\r\n}\r\n\r\n/**\r\n * A custom degrade-oriented function configuration for the scene optimizer.\r\n * @param sceneManager\r\n * @returns true if the scene is fully degraded\r\n */\r\nexport function extendedDegrade(sceneManager: SceneManager): boolean {\r\n const defaultPipeline = <DefaultRenderingPipeline>sceneManager.defaultRenderingPipeline;\r\n\r\n if (sceneManager.groundMirrorEnabled) {\r\n sceneManager.groundMirrorEnabled = false;\r\n return false;\r\n }\r\n if (defaultPipeline && sceneManager.bloomEnabled) {\r\n sceneManager.bloomEnabled = false;\r\n return false;\r\n }\r\n if (sceneManager.processShadows) {\r\n sceneManager.processShadows = false;\r\n return false;\r\n }\r\n if (sceneManager.scene.getEngine().getHardwareScalingLevel() < 1) {\r\n const scaling = Scalar.Clamp(sceneManager.scene.getEngine().getHardwareScalingLevel() + 0.25, 0, 1);\r\n sceneManager.scene.getEngine().setHardwareScalingLevel(scaling);\r\n return false;\r\n }\r\n if (defaultPipeline && sceneManager.fxaaEnabled) {\r\n sceneManager.fxaaEnabled = false;\r\n return false;\r\n }\r\n if (sceneManager.groundEnabled) {\r\n sceneManager.groundEnabled = false;\r\n return false;\r\n }\r\n if (sceneManager.scene.postProcessesEnabled) {\r\n sceneManager.scene.postProcessesEnabled = false;\r\n return false;\r\n }\r\n if (sceneManager.scene.getEngine().getHardwareScalingLevel() < 1.25) {\r\n const scaling = Scalar.Clamp(sceneManager.scene.getEngine().getHardwareScalingLevel() + 0.25, 0, 1.25);\r\n sceneManager.scene.getEngine().setHardwareScalingLevel(scaling);\r\n return false;\r\n }\r\n // if (this.Scene.BackgroundHelper) {\r\n // \tthis.Scene.EngineScene.autoClear = true;\r\n // this.Scene.BackgroundHelper = false;\r\n // Would require a dedicated clear color;\r\n // return false;\r\n // }\r\n return true;\r\n}\r\n"]}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { SceneManager } from "../../managers/sceneManager";
|
|
2
|
+
/**
|
|
3
|
+
*
|
|
4
|
+
* @param name the name of the custom optimizer configuration
|
|
5
|
+
* @param upgrade set to true if you want to upgrade optimizer and false if you want to degrade
|
|
6
|
+
* @returns the optimizer function
|
|
7
|
+
*/
|
|
8
|
+
export declare function getCustomOptimizerByName(name: string, upgrade?: boolean): (sceneManager: SceneManager) => boolean;
|
|
9
|
+
export declare function registerCustomOptimizer(name: string, optimizer: (sceneManager: SceneManager) => boolean): void;
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { extendedUpgrade, extendedDegrade } from "./extended.js";
|
|
2
|
+
var cache = {};
|
|
3
|
+
/**
|
|
4
|
+
*
|
|
5
|
+
* @param name the name of the custom optimizer configuration
|
|
6
|
+
* @param upgrade set to true if you want to upgrade optimizer and false if you want to degrade
|
|
7
|
+
* @returns the optimizer function
|
|
8
|
+
*/
|
|
9
|
+
export function getCustomOptimizerByName(name, upgrade) {
|
|
10
|
+
if (!cache[name]) {
|
|
11
|
+
switch (name) {
|
|
12
|
+
case "extended":
|
|
13
|
+
if (upgrade) {
|
|
14
|
+
return extendedUpgrade;
|
|
15
|
+
}
|
|
16
|
+
else {
|
|
17
|
+
return extendedDegrade;
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
return cache[name];
|
|
22
|
+
}
|
|
23
|
+
export function registerCustomOptimizer(name, optimizer) {
|
|
24
|
+
cache[name] = optimizer;
|
|
25
|
+
}
|
|
26
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../tools/viewer/src/optimizer/custom/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAG9D,IAAM,KAAK,GAA+D,EAAE,CAAC;AAE7E;;;;;GAKG;AACH,MAAM,UAAU,wBAAwB,CAAC,IAAY,EAAE,OAAiB;IACpE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;QACf,QAAQ,IAAI,EAAE,CAAC;YACX,KAAK,UAAU;gBACX,IAAI,OAAO,EAAE,CAAC;oBACV,OAAO,eAAe,CAAC;gBAC3B,CAAC;qBAAM,CAAC;oBACJ,OAAO,eAAe,CAAC;gBAC3B,CAAC;QACT,CAAC;IACL,CAAC;IAED,OAAO,KAAK,CAAC,IAAI,CAAC,CAAC;AACvB,CAAC;AAED,MAAM,UAAU,uBAAuB,CAAC,IAAY,EAAE,SAAkD;IACpG,KAAK,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC;AAC5B,CAAC","sourcesContent":["import { extendedUpgrade, extendedDegrade } from \"./extended\";\r\nimport type { SceneManager } from \"../../managers/sceneManager\";\r\n\r\nconst cache: { [key: string]: (sceneManager: SceneManager) => boolean } = {};\r\n\r\n/**\r\n *\r\n * @param name the name of the custom optimizer configuration\r\n * @param upgrade set to true if you want to upgrade optimizer and false if you want to degrade\r\n * @returns the optimizer function\r\n */\r\nexport function getCustomOptimizerByName(name: string, upgrade?: boolean) {\r\n if (!cache[name]) {\r\n switch (name) {\r\n case \"extended\":\r\n if (upgrade) {\r\n return extendedUpgrade;\r\n } else {\r\n return extendedDegrade;\r\n }\r\n }\r\n }\r\n\r\n return cache[name];\r\n}\r\n\r\nexport function registerCustomOptimizer(name: string, optimizer: (sceneManager: SceneManager) => boolean) {\r\n cache[name] = optimizer;\r\n}\r\n"]}
|
package/package.json
CHANGED
|
@@ -1,28 +1,34 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@babylonjs/viewer",
|
|
3
|
-
"version": "7.40.0
|
|
4
|
-
"
|
|
5
|
-
"
|
|
6
|
-
"
|
|
7
|
-
"esnext": "lib/index.js",
|
|
8
|
-
"types": "lib/index.d.ts",
|
|
3
|
+
"version": "7.40.0",
|
|
4
|
+
"main": "index.js",
|
|
5
|
+
"module": "index.js",
|
|
6
|
+
"types": "index.d.ts",
|
|
9
7
|
"files": [
|
|
10
|
-
"
|
|
11
|
-
"
|
|
12
|
-
"
|
|
13
|
-
"dist/**/*.js",
|
|
14
|
-
"dist/**/*.map",
|
|
15
|
-
"assets/**",
|
|
8
|
+
"**/*.js",
|
|
9
|
+
"**/*.d.ts",
|
|
10
|
+
"**/*.map",
|
|
16
11
|
"readme.md",
|
|
17
|
-
"docs/**",
|
|
18
12
|
"license.md"
|
|
19
13
|
],
|
|
14
|
+
"scripts": {
|
|
15
|
+
"build": "npm run clean && npm run compile",
|
|
16
|
+
"clean": "rimraf dist && rimraf *.tsbuildinfo -g && rimraf \"./**/*.!(md|json|build.json)\" -g",
|
|
17
|
+
"compile": "tsc -b tsconfig.build.json --verbose",
|
|
18
|
+
"postcompile": "build-tools -c add-js-to-es6"
|
|
19
|
+
},
|
|
20
20
|
"dependencies": {
|
|
21
|
-
"
|
|
21
|
+
"@babylonjs/core": "^7.40.0",
|
|
22
|
+
"@babylonjs/loaders": "^7.40.0",
|
|
23
|
+
"babylonjs-gltf2interface": "^7.40.0",
|
|
24
|
+
"babylonjs-viewer-assets": "^7.40.0",
|
|
25
|
+
"deepmerge": "~4.2.2",
|
|
26
|
+
"handlebars": "~4.7.7",
|
|
27
|
+
"pepjs": "~0.5.3",
|
|
28
|
+
"tslib": "^2.4.0"
|
|
22
29
|
},
|
|
23
|
-
"
|
|
24
|
-
"@
|
|
25
|
-
"@babylonjs/loaders": "^7.23.1"
|
|
30
|
+
"devDependencies": {
|
|
31
|
+
"@dev/build-tools": "^1.0.0"
|
|
26
32
|
},
|
|
27
33
|
"keywords": [
|
|
28
34
|
"3D",
|
|
@@ -32,7 +38,10 @@
|
|
|
32
38
|
"babylon.js"
|
|
33
39
|
],
|
|
34
40
|
"license": "Apache-2.0",
|
|
35
|
-
"
|
|
41
|
+
"esnext": "index.js",
|
|
42
|
+
"type": "module",
|
|
43
|
+
"sideEffects": true,
|
|
44
|
+
"homepage": "https://www.babylonjs.com",
|
|
36
45
|
"repository": {
|
|
37
46
|
"type": "git",
|
|
38
47
|
"url": "https://github.com/BabylonJS/Babylon.js.git"
|
|
@@ -40,4 +49,4 @@
|
|
|
40
49
|
"bugs": {
|
|
41
50
|
"url": "https://github.com/BabylonJS/Babylon.js/issues"
|
|
42
51
|
}
|
|
43
|
-
}
|
|
52
|
+
}
|
package/readme.md
CHANGED
|
@@ -1,45 +1,45 @@
|
|
|
1
1
|
# BabylonJS Viewer
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
⚠️ **BabylonJS Viewer V1 is being deprecated.**
|
|
4
4
|
|
|
5
|
-
|
|
6
|
-
- [Documentation](https://doc.babylonjs.com/features/featuresDeepDive/babylonViewer)
|
|
7
|
-
- [Feature requests](https://forum.babylonjs.com/t/babylon-viewer-v2/54317)
|
|
8
|
-
- [Support](https://forum.babylonjs.com/c/questions)
|
|
5
|
+
> At the end of 2024, the Babylon Viewer V1 will be deprecated in favor of the new [Babylon Viewer V2](https://doc.babylonjs.com/features/featuresDeepDive/babylonViewer). To use the Babylon Viewer V2, use the `preview` tag or append `-alpha` to the version when installing this package, e.g. `npm install @babylonjs/viewer@preview`. If you have any questions or concerns about this change, please get in touch with us on the Babylon [forum](https://forum.babylonjs.com/c/questions)!
|
|
9
6
|
|
|
10
|
-
|
|
7
|
+
|
|
8
|
+
This project is a 3d model viewer using babylonjs.
|
|
9
|
+
Online docs: https://doc.babylonjs.com/features/featuresDeepDive/babylonViewer/viewerExamples
|
|
10
|
+
|
|
11
|
+
## ES6/NPM usage
|
|
11
12
|
|
|
12
13
|
Install the package using npm:
|
|
13
14
|
|
|
14
15
|
```bash
|
|
15
|
-
npm install @babylonjs/viewer
|
|
16
|
+
npm install @babylonjs/viewer --save
|
|
16
17
|
```
|
|
17
18
|
|
|
18
|
-
|
|
19
|
+
Then in JS/Typescript the viewer to be imported via:
|
|
19
20
|
|
|
20
|
-
```
|
|
21
|
-
|
|
22
|
-
<body>
|
|
23
|
-
<!-- Note: If @babylonjs/viewer is already being imported somewhere in your JavaScript, you don't need this script import. -->
|
|
24
|
-
<script type="module">
|
|
25
|
-
import "@babylonjs/viewer";
|
|
26
|
-
</script>
|
|
27
|
-
<babylon-viewer source="https://playground.babylonjs.com/scenes/BoomBox.glb"></babylon-viewer>
|
|
28
|
-
</body>
|
|
29
|
-
</html>
|
|
21
|
+
```bash
|
|
22
|
+
import * as BabylonViewer from '@babylonjs/viewer';
|
|
30
23
|
```
|
|
31
24
|
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
If you want to use the viewer directly in a browser without any build tools, you can use the self-contained ESM bundle (which includes all dependencies) through a CDN such as [jsDelivr](https://www.jsdelivr.com/), [UNPKG](https://unpkg.com/), or your own CDN like this:
|
|
25
|
+
Add a babylon element in a html file:
|
|
35
26
|
|
|
36
27
|
```html
|
|
37
|
-
<
|
|
38
|
-
<body>
|
|
39
|
-
<script type="module" src="https://cdn.jsdelivr.net/npm/@babylonjs/viewer@preview/dist/babylon-viewer.esm.min.js"></script>
|
|
40
|
-
<babylon-viewer source="https://playground.babylonjs.com/scenes/BoomBox.glb"></babylon-viewer>
|
|
41
|
-
</body>
|
|
42
|
-
</html>
|
|
28
|
+
<babylon id="babylon-viewer" camera.behaviors.auto-rotate="0"></babylon>
|
|
43
29
|
```
|
|
44
30
|
|
|
45
|
-
|
|
31
|
+
And used to load models
|
|
32
|
+
|
|
33
|
+
```javascript
|
|
34
|
+
BabylonViewer.viewerManager.getViewerPromiseById("babylon-viewer").then(function (viewer) {
|
|
35
|
+
// this will resolve only after the viewer with this specific ID is initialized
|
|
36
|
+
viewer.onEngineInitObservable.add(function (scene) {
|
|
37
|
+
viewer.loadModel({
|
|
38
|
+
title: "Helmet",
|
|
39
|
+
subtitle: "BabylonJS",
|
|
40
|
+
thumbnail: "https://www.babylonjs.com/img/favicon/apple-icon-144x144.png",
|
|
41
|
+
url: "https://www.babylonjs.com/Assets/DamagedHelmet/glTF/DamagedHelmet.gltf",
|
|
42
|
+
});
|
|
43
|
+
});
|
|
44
|
+
});
|
|
45
|
+
```
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { RenderOnlyViewer } from "./viewer/renderOnlyViewer";
|
|
2
|
+
import "@babylonjs/loaders/glTF/2.0.js";
|
|
3
|
+
import "@babylonjs/core/Lights/Shadows/shadowGeneratorSceneComponent.js";
|
|
4
|
+
import "@babylonjs/core/Debug/debugLayer.js";
|
|
5
|
+
import "@babylonjs/core/Meshes/Builders/planeBuilder.js";
|
|
6
|
+
import "@babylonjs/core/Meshes/Builders/boxBuilder.js";
|
|
7
|
+
import "@babylonjs/core/Materials/Textures/Loaders/ddsTextureLoader.js";
|
|
8
|
+
import "@babylonjs/core/Materials/Textures/Loaders/envTextureLoader.js";
|
|
9
|
+
import "@babylonjs/core/Materials/Textures/Loaders/ktxTextureLoader.js";
|
|
10
|
+
import "@babylonjs/core/PostProcesses/RenderPipeline/postProcessRenderPipelineManagerSceneComponent.js";
|
|
11
|
+
export { RenderOnlyViewer };
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { RenderOnlyViewer } from "./viewer/renderOnlyViewer.js";
|
|
2
|
+
// Required side effects
|
|
3
|
+
import "@babylonjs/loaders/glTF/2.0.js";
|
|
4
|
+
import "@babylonjs/core/Lights/Shadows/shadowGeneratorSceneComponent.js";
|
|
5
|
+
import "@babylonjs/core/Debug/debugLayer.js";
|
|
6
|
+
import "@babylonjs/core/Meshes/Builders/planeBuilder.js";
|
|
7
|
+
import "@babylonjs/core/Meshes/Builders/boxBuilder.js";
|
|
8
|
+
import "@babylonjs/core/Materials/Textures/Loaders/ddsTextureLoader.js";
|
|
9
|
+
import "@babylonjs/core/Materials/Textures/Loaders/envTextureLoader.js";
|
|
10
|
+
import "@babylonjs/core/Materials/Textures/Loaders/ktxTextureLoader.js";
|
|
11
|
+
import "@babylonjs/core/PostProcesses/RenderPipeline/postProcessRenderPipelineManagerSceneComponent.js";
|
|
12
|
+
// Override default material factory to avoid the dependency on standard material
|
|
13
|
+
import { Scene } from "@babylonjs/core/scene.js";
|
|
14
|
+
Scene.DefaultMaterialFactory = function () {
|
|
15
|
+
return null;
|
|
16
|
+
};
|
|
17
|
+
export { RenderOnlyViewer };
|
|
18
|
+
//# sourceMappingURL=renderOnlyIndex.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"renderOnlyIndex.js","sourceRoot":"","sources":["../../../tools/viewer/src/renderOnlyIndex.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAE7D,wBAAwB;AACxB,wCAA0B;AAC1B,yEAA2D;AAC3D,6CAA+B;AAC/B,yDAA2C;AAC3C,uDAAyC;AACzC,wEAA0D;AAC1D,wEAA0D;AAC1D,wEAA0D;AAC1D,wGAA0F;AAE1F,iFAAiF;AACjF,OAAO,EAAE,KAAK,EAAE,iCAAmB;AACnC,KAAK,CAAC,sBAAsB,GAAG;IAC3B,OAAO,IAAW,CAAC;AACvB,CAAC,CAAC;AAEF,OAAO,EAAE,gBAAgB,EAAE,CAAC","sourcesContent":["import { RenderOnlyViewer } from \"./viewer/renderOnlyViewer\";\r\n\r\n// Required side effects\r\nimport \"loaders/glTF/2.0\";\r\nimport \"core/Lights/Shadows/shadowGeneratorSceneComponent\";\r\nimport \"core/Debug/debugLayer\";\r\nimport \"core/Meshes/Builders/planeBuilder\";\r\nimport \"core/Meshes/Builders/boxBuilder\";\r\nimport \"core/Materials/Textures/Loaders/ddsTextureLoader\";\r\nimport \"core/Materials/Textures/Loaders/envTextureLoader\";\r\nimport \"core/Materials/Textures/Loaders/ktxTextureLoader\";\r\nimport \"core/PostProcesses/RenderPipeline/postProcessRenderPipelineManagerSceneComponent\";\r\n\r\n// Override default material factory to avoid the dependency on standard material\r\nimport { Scene } from \"core/scene\";\r\nScene.DefaultMaterialFactory = () => {\r\n return null as any;\r\n};\r\n\r\nexport { RenderOnlyViewer };\r\n"]}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import type { EventCallback, TemplateManager } from "./templateManager";
|
|
2
|
+
/**
|
|
3
|
+
* The EventManager is in charge of registering user interctions with the viewer.
|
|
4
|
+
* It is used in the TemplateManager
|
|
5
|
+
*/
|
|
6
|
+
export declare class EventManager {
|
|
7
|
+
private _templateManager;
|
|
8
|
+
private _callbacksContainer;
|
|
9
|
+
constructor(_templateManager: TemplateManager);
|
|
10
|
+
/**
|
|
11
|
+
* Register a new callback to a specific template.
|
|
12
|
+
* The best example for the usage can be found in the DefaultViewer
|
|
13
|
+
*
|
|
14
|
+
* @param templateName the templateName to register the event to
|
|
15
|
+
* @param callback The callback to be executed
|
|
16
|
+
* @param eventType the type of event to register
|
|
17
|
+
* @param selector an optional selector. if not defined the parent object in the template will be selected
|
|
18
|
+
*/
|
|
19
|
+
registerCallback(templateName: string, callback: (eventData: EventCallback) => void, eventType?: string, selector?: string): void;
|
|
20
|
+
/**
|
|
21
|
+
* This will remove a registered event from the defined template.
|
|
22
|
+
* Each one of the variables apart from the template name are optional, but one must be provided.
|
|
23
|
+
*
|
|
24
|
+
* @param templateName the templateName
|
|
25
|
+
* @param callback the callback to remove (optional)
|
|
26
|
+
* @param eventType the event type to remove (optional)
|
|
27
|
+
* @param selector the selector from which to remove the event (optional)
|
|
28
|
+
*/
|
|
29
|
+
unregisterCallback(templateName: string, callback: (eventData: EventCallback) => void, eventType?: string, selector?: string): void;
|
|
30
|
+
private _eventTriggered;
|
|
31
|
+
/**
|
|
32
|
+
* Dispose the event manager
|
|
33
|
+
*/
|
|
34
|
+
dispose(): void;
|
|
35
|
+
}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The EventManager is in charge of registering user interctions with the viewer.
|
|
3
|
+
* It is used in the TemplateManager
|
|
4
|
+
*/
|
|
5
|
+
var EventManager = /** @class */ (function () {
|
|
6
|
+
function EventManager(_templateManager) {
|
|
7
|
+
var _this = this;
|
|
8
|
+
this._templateManager = _templateManager;
|
|
9
|
+
this._callbacksContainer = {};
|
|
10
|
+
this._templateManager.onEventTriggered.add(function (eventData) {
|
|
11
|
+
_this._eventTriggered(eventData);
|
|
12
|
+
});
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Register a new callback to a specific template.
|
|
16
|
+
* The best example for the usage can be found in the DefaultViewer
|
|
17
|
+
*
|
|
18
|
+
* @param templateName the templateName to register the event to
|
|
19
|
+
* @param callback The callback to be executed
|
|
20
|
+
* @param eventType the type of event to register
|
|
21
|
+
* @param selector an optional selector. if not defined the parent object in the template will be selected
|
|
22
|
+
*/
|
|
23
|
+
EventManager.prototype.registerCallback = function (templateName, callback, eventType, selector) {
|
|
24
|
+
if (!this._callbacksContainer[templateName]) {
|
|
25
|
+
this._callbacksContainer[templateName] = [];
|
|
26
|
+
}
|
|
27
|
+
this._callbacksContainer[templateName].push({
|
|
28
|
+
eventType: eventType,
|
|
29
|
+
callback: callback,
|
|
30
|
+
selector: selector,
|
|
31
|
+
});
|
|
32
|
+
};
|
|
33
|
+
/**
|
|
34
|
+
* This will remove a registered event from the defined template.
|
|
35
|
+
* Each one of the variables apart from the template name are optional, but one must be provided.
|
|
36
|
+
*
|
|
37
|
+
* @param templateName the templateName
|
|
38
|
+
* @param callback the callback to remove (optional)
|
|
39
|
+
* @param eventType the event type to remove (optional)
|
|
40
|
+
* @param selector the selector from which to remove the event (optional)
|
|
41
|
+
*/
|
|
42
|
+
EventManager.prototype.unregisterCallback = function (templateName, callback, eventType, selector) {
|
|
43
|
+
var callbackDefs = this._callbacksContainer[templateName] || [];
|
|
44
|
+
this._callbacksContainer[templateName] = callbackDefs.filter(function (callbackDef) { return (!callbackDef.eventType || callbackDef.eventType === eventType) && (!callbackDef.selector || callbackDef.selector === selector); });
|
|
45
|
+
};
|
|
46
|
+
EventManager.prototype._eventTriggered = function (data) {
|
|
47
|
+
var templateName = data.template.name;
|
|
48
|
+
var eventType = data.event.type;
|
|
49
|
+
var selector = data.selector;
|
|
50
|
+
var callbackDefs = this._callbacksContainer[templateName] || [];
|
|
51
|
+
callbackDefs
|
|
52
|
+
.filter(function (callbackDef) { return (!callbackDef.eventType || callbackDef.eventType === eventType) && (!callbackDef.selector || callbackDef.selector === selector); })
|
|
53
|
+
.forEach(function (callbackDef) {
|
|
54
|
+
callbackDef.callback(data);
|
|
55
|
+
});
|
|
56
|
+
};
|
|
57
|
+
/**
|
|
58
|
+
* Dispose the event manager
|
|
59
|
+
*/
|
|
60
|
+
EventManager.prototype.dispose = function () {
|
|
61
|
+
this._callbacksContainer = {};
|
|
62
|
+
};
|
|
63
|
+
return EventManager;
|
|
64
|
+
}());
|
|
65
|
+
export { EventManager };
|
|
66
|
+
//# sourceMappingURL=eventManager.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"eventManager.js","sourceRoot":"","sources":["../../../../tools/viewer/src/templating/eventManager.ts"],"names":[],"mappings":"AAEA;;;GAGG;AACH;IAGI,sBAAoB,gBAAiC;QAArD,iBAKC;QALmB,qBAAgB,GAAhB,gBAAgB,CAAiB;QACjD,IAAI,CAAC,mBAAmB,GAAG,EAAE,CAAC;QAC9B,IAAI,CAAC,gBAAgB,CAAC,gBAAgB,CAAC,GAAG,CAAC,UAAC,SAAS;YACjD,KAAI,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC;QACpC,CAAC,CAAC,CAAC;IACP,CAAC;IAED;;;;;;;;OAQG;IACI,uCAAgB,GAAvB,UAAwB,YAAoB,EAAE,QAA4C,EAAE,SAAkB,EAAE,QAAiB;QAC7H,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC,YAAY,CAAC,EAAE,CAAC;YAC1C,IAAI,CAAC,mBAAmB,CAAC,YAAY,CAAC,GAAG,EAAE,CAAC;QAChD,CAAC;QACD,IAAI,CAAC,mBAAmB,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC;YACxC,SAAS,WAAA;YACT,QAAQ,UAAA;YACR,QAAQ,UAAA;SACX,CAAC,CAAC;IACP,CAAC;IAED;;;;;;;;OAQG;IACI,yCAAkB,GAAzB,UAA0B,YAAoB,EAAE,QAA4C,EAAE,SAAkB,EAAE,QAAiB;QAC/H,IAAM,YAAY,GAAG,IAAI,CAAC,mBAAmB,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC;QAClE,IAAI,CAAC,mBAAmB,CAAC,YAAY,CAAC,GAAG,YAAY,CAAC,MAAM,CACxD,UAAC,WAAW,IAAK,OAAA,CAAC,CAAC,WAAW,CAAC,SAAS,IAAI,WAAW,CAAC,SAAS,KAAK,SAAS,CAAC,IAAI,CAAC,CAAC,WAAW,CAAC,QAAQ,IAAI,WAAW,CAAC,QAAQ,KAAK,QAAQ,CAAC,EAA/H,CAA+H,CACnJ,CAAC;IACN,CAAC;IAEO,sCAAe,GAAvB,UAAwB,IAAmB;QACvC,IAAM,YAAY,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;QACxC,IAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;QAClC,IAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;QAE/B,IAAM,YAAY,GAAG,IAAI,CAAC,mBAAmB,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC;QAClE,YAAY;aACP,MAAM,CAAC,UAAC,WAAW,IAAK,OAAA,CAAC,CAAC,WAAW,CAAC,SAAS,IAAI,WAAW,CAAC,SAAS,KAAK,SAAS,CAAC,IAAI,CAAC,CAAC,WAAW,CAAC,QAAQ,IAAI,WAAW,CAAC,QAAQ,KAAK,QAAQ,CAAC,EAA/H,CAA+H,CAAC;aACxJ,OAAO,CAAC,UAAC,WAAW;YACjB,WAAW,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QAC/B,CAAC,CAAC,CAAC;IACX,CAAC;IAED;;OAEG;IACI,8BAAO,GAAd;QACI,IAAI,CAAC,mBAAmB,GAAG,EAAE,CAAC;IAClC,CAAC;IACL,mBAAC;AAAD,CAAC,AAjED,IAiEC","sourcesContent":["import type { EventCallback, TemplateManager } from \"./templateManager\";\r\n\r\n/**\r\n * The EventManager is in charge of registering user interctions with the viewer.\r\n * It is used in the TemplateManager\r\n */\r\nexport class EventManager {\r\n private _callbacksContainer: { [key: string]: Array<{ eventType?: string; selector?: string; callback: (eventData: EventCallback) => void }> };\r\n\r\n constructor(private _templateManager: TemplateManager) {\r\n this._callbacksContainer = {};\r\n this._templateManager.onEventTriggered.add((eventData) => {\r\n this._eventTriggered(eventData);\r\n });\r\n }\r\n\r\n /**\r\n * Register a new callback to a specific template.\r\n * The best example for the usage can be found in the DefaultViewer\r\n *\r\n * @param templateName the templateName to register the event to\r\n * @param callback The callback to be executed\r\n * @param eventType the type of event to register\r\n * @param selector an optional selector. if not defined the parent object in the template will be selected\r\n */\r\n public registerCallback(templateName: string, callback: (eventData: EventCallback) => void, eventType?: string, selector?: string) {\r\n if (!this._callbacksContainer[templateName]) {\r\n this._callbacksContainer[templateName] = [];\r\n }\r\n this._callbacksContainer[templateName].push({\r\n eventType,\r\n callback,\r\n selector,\r\n });\r\n }\r\n\r\n /**\r\n * This will remove a registered event from the defined template.\r\n * Each one of the variables apart from the template name are optional, but one must be provided.\r\n *\r\n * @param templateName the templateName\r\n * @param callback the callback to remove (optional)\r\n * @param eventType the event type to remove (optional)\r\n * @param selector the selector from which to remove the event (optional)\r\n */\r\n public unregisterCallback(templateName: string, callback: (eventData: EventCallback) => void, eventType?: string, selector?: string) {\r\n const callbackDefs = this._callbacksContainer[templateName] || [];\r\n this._callbacksContainer[templateName] = callbackDefs.filter(\r\n (callbackDef) => (!callbackDef.eventType || callbackDef.eventType === eventType) && (!callbackDef.selector || callbackDef.selector === selector)\r\n );\r\n }\r\n\r\n private _eventTriggered(data: EventCallback) {\r\n const templateName = data.template.name;\r\n const eventType = data.event.type;\r\n const selector = data.selector;\r\n\r\n const callbackDefs = this._callbacksContainer[templateName] || [];\r\n callbackDefs\r\n .filter((callbackDef) => (!callbackDef.eventType || callbackDef.eventType === eventType) && (!callbackDef.selector || callbackDef.selector === selector))\r\n .forEach((callbackDef) => {\r\n callbackDef.callback(data);\r\n });\r\n }\r\n\r\n /**\r\n * Dispose the event manager\r\n */\r\n public dispose() {\r\n this._callbacksContainer = {};\r\n }\r\n}\r\n"]}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { AbstractViewerNavbarButton } from "../viewerTemplatePlugin";
|
|
2
|
+
import type { DefaultViewer } from "../../viewer/defaultViewer";
|
|
3
|
+
import type { EventCallback } from "../templateManager";
|
|
4
|
+
export declare class HDButtonPlugin extends AbstractViewerNavbarButton {
|
|
5
|
+
private _viewer;
|
|
6
|
+
constructor(_viewer: DefaultViewer);
|
|
7
|
+
onEvent(event: EventCallback): void;
|
|
8
|
+
protected static HtmlTemplate: string;
|
|
9
|
+
}
|