@babylonjs/viewer 7.40.4-alpha → 7.40.4
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-B7tVMCka.esm.min.js +0 -2
- package/dist/chunks/EXT_lights_ies-B7tVMCka.esm.min.js.map +0 -1
- package/dist/chunks/EXT_lights_ies-T0Tkc0j0.esm.js +0 -84
- package/dist/chunks/EXT_lights_ies-T0Tkc0j0.esm.js.map +0 -1
- package/dist/chunks/EXT_lights_image_based-CyoPcoDC.esm.min.js +0 -2
- package/dist/chunks/EXT_lights_image_based-CyoPcoDC.esm.min.js.map +0 -1
- package/dist/chunks/EXT_lights_image_based-TRLY00MY.esm.js +0 -171
- package/dist/chunks/EXT_lights_image_based-TRLY00MY.esm.js.map +0 -1
- package/dist/chunks/EXT_mesh_gpu_instancing-CNSWr-2o.esm.js +0 -86
- package/dist/chunks/EXT_mesh_gpu_instancing-CNSWr-2o.esm.js.map +0 -1
- package/dist/chunks/EXT_mesh_gpu_instancing-DvkytavO.esm.min.js +0 -2
- package/dist/chunks/EXT_mesh_gpu_instancing-DvkytavO.esm.min.js.map +0 -1
- package/dist/chunks/EXT_meshopt_compression-C5Jf55Kx.esm.min.js +0 -2
- package/dist/chunks/EXT_meshopt_compression-C5Jf55Kx.esm.min.js.map +0 -1
- package/dist/chunks/EXT_meshopt_compression-CWVLJCmT.esm.js +0 -134
- package/dist/chunks/EXT_meshopt_compression-CWVLJCmT.esm.js.map +0 -1
- package/dist/chunks/EXT_texture_avif-Bv2Pa-Lr.esm.js +0 -44
- package/dist/chunks/EXT_texture_avif-Bv2Pa-Lr.esm.js.map +0 -1
- package/dist/chunks/EXT_texture_avif-DZmsorD-.esm.min.js +0 -2
- package/dist/chunks/EXT_texture_avif-DZmsorD-.esm.min.js.map +0 -1
- package/dist/chunks/EXT_texture_webp-CBpWQrqC.esm.js +0 -43
- package/dist/chunks/EXT_texture_webp-CBpWQrqC.esm.js.map +0 -1
- package/dist/chunks/EXT_texture_webp-D6RSOJSe.esm.min.js +0 -2
- package/dist/chunks/EXT_texture_webp-D6RSOJSe.esm.min.js.map +0 -1
- package/dist/chunks/ExtrasAsMetadata-6ZohdbjJ.esm.js +0 -64
- package/dist/chunks/ExtrasAsMetadata-6ZohdbjJ.esm.js.map +0 -1
- package/dist/chunks/ExtrasAsMetadata-CrG2l0Kf.esm.min.js +0 -2
- package/dist/chunks/ExtrasAsMetadata-CrG2l0Kf.esm.min.js.map +0 -1
- package/dist/chunks/KHR_animation_pointer-Cvu5a-gj.esm.js +0 -352
- package/dist/chunks/KHR_animation_pointer-Cvu5a-gj.esm.js.map +0 -1
- package/dist/chunks/KHR_animation_pointer-Rk2uzfDp.esm.min.js +0 -2
- package/dist/chunks/KHR_animation_pointer-Rk2uzfDp.esm.min.js.map +0 -1
- package/dist/chunks/KHR_draco_mesh_compression-BrXprwd5.esm.js +0 -610
- package/dist/chunks/KHR_draco_mesh_compression-BrXprwd5.esm.js.map +0 -1
- package/dist/chunks/KHR_draco_mesh_compression-Iv3q50MG.esm.min.js +0 -2
- package/dist/chunks/KHR_draco_mesh_compression-Iv3q50MG.esm.min.js.map +0 -1
- package/dist/chunks/KHR_interactivity-B4iFgkk7.esm.min.js +0 -2
- package/dist/chunks/KHR_interactivity-B4iFgkk7.esm.min.js.map +0 -1
- package/dist/chunks/KHR_interactivity-Db4iHU65.esm.js +0 -4033
- package/dist/chunks/KHR_interactivity-Db4iHU65.esm.js.map +0 -1
- package/dist/chunks/KHR_lights_punctual-B7yNiRZy.esm.min.js +0 -2
- package/dist/chunks/KHR_lights_punctual-B7yNiRZy.esm.min.js.map +0 -1
- package/dist/chunks/KHR_lights_punctual-iZl19DTA.esm.js +0 -581
- package/dist/chunks/KHR_lights_punctual-iZl19DTA.esm.js.map +0 -1
- package/dist/chunks/KHR_materials_anisotropy-Bk9K0k0q.esm.js +0 -65
- package/dist/chunks/KHR_materials_anisotropy-Bk9K0k0q.esm.js.map +0 -1
- package/dist/chunks/KHR_materials_anisotropy-DlDnL4o4.esm.min.js +0 -2
- package/dist/chunks/KHR_materials_anisotropy-DlDnL4o4.esm.min.js.map +0 -1
- package/dist/chunks/KHR_materials_clearcoat-BrT4VgMS.esm.min.js +0 -2
- package/dist/chunks/KHR_materials_clearcoat-BrT4VgMS.esm.min.js.map +0 -1
- package/dist/chunks/KHR_materials_clearcoat-DXAyxIfA.esm.js +0 -96
- package/dist/chunks/KHR_materials_clearcoat-DXAyxIfA.esm.js.map +0 -1
- package/dist/chunks/KHR_materials_diffuse_transmission-CRqI4Umg.esm.js +0 -97
- package/dist/chunks/KHR_materials_diffuse_transmission-CRqI4Umg.esm.js.map +0 -1
- package/dist/chunks/KHR_materials_diffuse_transmission-jyVvmpFx.esm.min.js +0 -2
- package/dist/chunks/KHR_materials_diffuse_transmission-jyVvmpFx.esm.min.js.map +0 -1
- package/dist/chunks/KHR_materials_dispersion-BwXQSsRC.esm.min.js +0 -2
- package/dist/chunks/KHR_materials_dispersion-BwXQSsRC.esm.min.js.map +0 -1
- package/dist/chunks/KHR_materials_dispersion-DTMaHZal.esm.js +0 -62
- package/dist/chunks/KHR_materials_dispersion-DTMaHZal.esm.js.map +0 -1
- package/dist/chunks/KHR_materials_emissive_strength-BCWSR6Zg.esm.js +0 -55
- package/dist/chunks/KHR_materials_emissive_strength-BCWSR6Zg.esm.js.map +0 -1
- package/dist/chunks/KHR_materials_emissive_strength-dEqNWrU4.esm.min.js +0 -2
- package/dist/chunks/KHR_materials_emissive_strength-dEqNWrU4.esm.min.js.map +0 -1
- package/dist/chunks/KHR_materials_ior-DXmoDlX8.esm.min.js +0 -2
- package/dist/chunks/KHR_materials_ior-DXmoDlX8.esm.min.js.map +0 -1
- package/dist/chunks/KHR_materials_ior-NvWqR2ZR.esm.js +0 -64
- package/dist/chunks/KHR_materials_ior-NvWqR2ZR.esm.js.map +0 -1
- package/dist/chunks/KHR_materials_iridescence-2VKZo_Mv.esm.min.js +0 -2
- package/dist/chunks/KHR_materials_iridescence-2VKZo_Mv.esm.min.js.map +0 -1
- package/dist/chunks/KHR_materials_iridescence-B2wLtYQ4.esm.js +0 -72
- package/dist/chunks/KHR_materials_iridescence-B2wLtYQ4.esm.js.map +0 -1
- package/dist/chunks/KHR_materials_pbrSpecularGlossiness-DYK5fci0.esm.js +0 -81
- package/dist/chunks/KHR_materials_pbrSpecularGlossiness-DYK5fci0.esm.js.map +0 -1
- package/dist/chunks/KHR_materials_pbrSpecularGlossiness-PlzNRHwZ.esm.min.js +0 -2
- package/dist/chunks/KHR_materials_pbrSpecularGlossiness-PlzNRHwZ.esm.min.js.map +0 -1
- package/dist/chunks/KHR_materials_sheen-CvA19viC.esm.min.js +0 -2
- package/dist/chunks/KHR_materials_sheen-CvA19viC.esm.min.js.map +0 -1
- package/dist/chunks/KHR_materials_sheen-DY8Hlw2C.esm.js +0 -85
- package/dist/chunks/KHR_materials_sheen-DY8Hlw2C.esm.js.map +0 -1
- package/dist/chunks/KHR_materials_specular-DPankAYO.esm.js +0 -75
- package/dist/chunks/KHR_materials_specular-DPankAYO.esm.js.map +0 -1
- package/dist/chunks/KHR_materials_specular-SFjYTaHn.esm.min.js +0 -2
- package/dist/chunks/KHR_materials_specular-SFjYTaHn.esm.min.js.map +0 -1
- package/dist/chunks/KHR_materials_transmission-CBvCfGeN.esm.js +0 -307
- package/dist/chunks/KHR_materials_transmission-CBvCfGeN.esm.js.map +0 -1
- package/dist/chunks/KHR_materials_transmission-DeRHqgMd.esm.min.js +0 -2
- package/dist/chunks/KHR_materials_transmission-DeRHqgMd.esm.min.js.map +0 -1
- package/dist/chunks/KHR_materials_unlit-Dp-VzfY2.esm.min.js +0 -2
- package/dist/chunks/KHR_materials_unlit-Dp-VzfY2.esm.min.js.map +0 -1
- package/dist/chunks/KHR_materials_unlit-xG3eIsVn.esm.js +0 -74
- package/dist/chunks/KHR_materials_unlit-xG3eIsVn.esm.js.map +0 -1
- package/dist/chunks/KHR_materials_variants-DtTs7enl.esm.min.js +0 -2
- package/dist/chunks/KHR_materials_variants-DtTs7enl.esm.min.js.map +0 -1
- package/dist/chunks/KHR_materials_variants-POauQPs7.esm.js +0 -262
- package/dist/chunks/KHR_materials_variants-POauQPs7.esm.js.map +0 -1
- package/dist/chunks/KHR_materials_volume-BO1lvsUq.esm.min.js +0 -2
- package/dist/chunks/KHR_materials_volume-BO1lvsUq.esm.min.js.map +0 -1
- package/dist/chunks/KHR_materials_volume-BqCunks7.esm.js +0 -87
- package/dist/chunks/KHR_materials_volume-BqCunks7.esm.js.map +0 -1
- package/dist/chunks/KHR_mesh_quantization-3ON-a5Bz.esm.js +0 -26
- package/dist/chunks/KHR_mesh_quantization-3ON-a5Bz.esm.js.map +0 -1
- package/dist/chunks/KHR_mesh_quantization-C1uR5Lci.esm.min.js +0 -2
- package/dist/chunks/KHR_mesh_quantization-C1uR5Lci.esm.min.js.map +0 -1
- package/dist/chunks/KHR_node_hoverability-CZIi0X9e.esm.js +0 -39
- package/dist/chunks/KHR_node_hoverability-CZIi0X9e.esm.js.map +0 -1
- package/dist/chunks/KHR_node_hoverability-gPD0oS5c.esm.min.js +0 -2
- package/dist/chunks/KHR_node_hoverability-gPD0oS5c.esm.min.js.map +0 -1
- package/dist/chunks/KHR_node_visibility-B5fFI1TX.esm.js +0 -46
- package/dist/chunks/KHR_node_visibility-B5fFI1TX.esm.js.map +0 -1
- package/dist/chunks/KHR_node_visibility-DPw-0W4p.esm.min.js +0 -2
- package/dist/chunks/KHR_node_visibility-DPw-0W4p.esm.min.js.map +0 -1
- package/dist/chunks/KHR_texture_basisu-D6tStneN.esm.min.js +0 -2
- package/dist/chunks/KHR_texture_basisu-D6tStneN.esm.min.js.map +0 -1
- package/dist/chunks/KHR_texture_basisu-Did7TM-4.esm.js +0 -43
- package/dist/chunks/KHR_texture_basisu-Did7TM-4.esm.js.map +0 -1
- package/dist/chunks/KHR_texture_transform-Da5NeRUm.esm.js +0 -63
- package/dist/chunks/KHR_texture_transform-Da5NeRUm.esm.js.map +0 -1
- package/dist/chunks/KHR_texture_transform-jNMzm3zb.esm.min.js +0 -2
- package/dist/chunks/KHR_texture_transform-jNMzm3zb.esm.min.js.map +0 -1
- package/dist/chunks/KHR_xmp_json_ld-D514my_a.esm.js +0 -51
- package/dist/chunks/KHR_xmp_json_ld-D514my_a.esm.js.map +0 -1
- package/dist/chunks/KHR_xmp_json_ld-D5Gbko_w.esm.min.js +0 -2
- package/dist/chunks/KHR_xmp_json_ld-D5Gbko_w.esm.min.js.map +0 -1
- package/dist/chunks/MSFT_audio_emitter-CiB3yG6v.esm.js +0 -2201
- package/dist/chunks/MSFT_audio_emitter-CiB3yG6v.esm.js.map +0 -1
- package/dist/chunks/MSFT_audio_emitter-Cn-DCgMh.esm.min.js +0 -2
- package/dist/chunks/MSFT_audio_emitter-Cn-DCgMh.esm.min.js.map +0 -1
- package/dist/chunks/MSFT_lod-BDP9fUoB.esm.js +0 -337
- package/dist/chunks/MSFT_lod-BDP9fUoB.esm.js.map +0 -1
- package/dist/chunks/MSFT_lod-BEbIdncN.esm.min.js +0 -2
- package/dist/chunks/MSFT_lod-BEbIdncN.esm.min.js.map +0 -1
- package/dist/chunks/MSFT_minecraftMesh-jASzndfE.esm.min.js +0 -2
- package/dist/chunks/MSFT_minecraftMesh-jASzndfE.esm.min.js.map +0 -1
- package/dist/chunks/MSFT_minecraftMesh-mKnNUrKI.esm.js +0 -46
- package/dist/chunks/MSFT_minecraftMesh-mKnNUrKI.esm.js.map +0 -1
- package/dist/chunks/MSFT_sRGBFactors-B1Bk1U5N.esm.min.js +0 -2
- package/dist/chunks/MSFT_sRGBFactors-B1Bk1U5N.esm.min.js.map +0 -1
- package/dist/chunks/MSFT_sRGBFactors-IZnSmmDU.esm.js +0 -47
- package/dist/chunks/MSFT_sRGBFactors-IZnSmmDU.esm.js.map +0 -1
- package/dist/chunks/animationGroup-B1YyqoTa.esm.js +0 -2482
- package/dist/chunks/animationGroup-B1YyqoTa.esm.js.map +0 -1
- package/dist/chunks/animationGroup-C9C7qST_.esm.min.js +0 -2
- package/dist/chunks/animationGroup-C9C7qST_.esm.min.js.map +0 -1
- package/dist/chunks/assetContainer-BzlRl_4x.esm.js +0 -1720
- package/dist/chunks/assetContainer-BzlRl_4x.esm.js.map +0 -1
- package/dist/chunks/assetContainer-D7C3a-Xn.esm.min.js +0 -2
- package/dist/chunks/assetContainer-D7C3a-Xn.esm.min.js.map +0 -1
- package/dist/chunks/audioEngine-BZB34VjD.esm.js +0 -305
- package/dist/chunks/audioEngine-BZB34VjD.esm.js.map +0 -1
- package/dist/chunks/audioEngine-BoxJPZL7.esm.min.js +0 -2
- package/dist/chunks/audioEngine-BoxJPZL7.esm.min.js.map +0 -1
- package/dist/chunks/bakedVertexAnimation-BQki1eZ4.esm.min.js +0 -2
- package/dist/chunks/bakedVertexAnimation-BQki1eZ4.esm.min.js.map +0 -1
- package/dist/chunks/bakedVertexAnimation-DpSHNKcC.esm.js +0 -114
- package/dist/chunks/bakedVertexAnimation-DpSHNKcC.esm.js.map +0 -1
- package/dist/chunks/basisTextureLoader-C3RlzqZl.esm.min.js +0 -2
- package/dist/chunks/basisTextureLoader-C3RlzqZl.esm.min.js.map +0 -1
- package/dist/chunks/basisTextureLoader-D6uyehp2.esm.js +0 -600
- package/dist/chunks/basisTextureLoader-D6uyehp2.esm.js.map +0 -1
- package/dist/chunks/dds-C1QgDMMC.esm.min.js +0 -2
- package/dist/chunks/dds-C1QgDMMC.esm.min.js.map +0 -1
- package/dist/chunks/dds-zApWiwah.esm.js +0 -540
- package/dist/chunks/dds-zApWiwah.esm.js.map +0 -1
- package/dist/chunks/ddsTextureLoader-CSYQAUdw.esm.js +0 -88
- package/dist/chunks/ddsTextureLoader-CSYQAUdw.esm.js.map +0 -1
- package/dist/chunks/ddsTextureLoader-Dyl2CjaG.esm.min.js +0 -2
- package/dist/chunks/ddsTextureLoader-Dyl2CjaG.esm.min.js.map +0 -1
- package/dist/chunks/decalFragment-BbsT8PSx.esm.min.js +0 -2
- package/dist/chunks/decalFragment-BbsT8PSx.esm.min.js.map +0 -1
- package/dist/chunks/decalFragment-DqgT4NiX.esm.js +0 -18
- package/dist/chunks/decalFragment-DqgT4NiX.esm.js.map +0 -1
- package/dist/chunks/default.fragment-Bpw23SLq.esm.min.js +0 -2
- package/dist/chunks/default.fragment-Bpw23SLq.esm.min.js.map +0 -1
- package/dist/chunks/default.fragment-C8lcinV9.esm.js +0 -446
- package/dist/chunks/default.fragment-C8lcinV9.esm.js.map +0 -1
- package/dist/chunks/default.fragment-De3FJCJD.esm.js +0 -515
- package/dist/chunks/default.fragment-De3FJCJD.esm.js.map +0 -1
- package/dist/chunks/default.fragment-b__nAv93.esm.min.js +0 -2
- package/dist/chunks/default.fragment-b__nAv93.esm.min.js.map +0 -1
- package/dist/chunks/default.vertex-BnpZVKdz.esm.min.js +0 -2
- package/dist/chunks/default.vertex-BnpZVKdz.esm.min.js.map +0 -1
- package/dist/chunks/default.vertex-CD2qxrmB.esm.js +0 -190
- package/dist/chunks/default.vertex-CD2qxrmB.esm.js.map +0 -1
- package/dist/chunks/default.vertex-CN5WYROZ.esm.min.js +0 -2
- package/dist/chunks/default.vertex-CN5WYROZ.esm.min.js.map +0 -1
- package/dist/chunks/default.vertex-DRHq60qX.esm.js +0 -211
- package/dist/chunks/default.vertex-DRHq60qX.esm.js.map +0 -1
- package/dist/chunks/defaultUboDeclaration-C0gMCjYL.esm.min.js +0 -2
- package/dist/chunks/defaultUboDeclaration-C0gMCjYL.esm.min.js.map +0 -1
- package/dist/chunks/defaultUboDeclaration-CGRrluBg.esm.min.js +0 -2
- package/dist/chunks/defaultUboDeclaration-CGRrluBg.esm.min.js.map +0 -1
- package/dist/chunks/defaultUboDeclaration-DCybxQ0F.esm.js +0 -13
- package/dist/chunks/defaultUboDeclaration-DCybxQ0F.esm.js.map +0 -1
- package/dist/chunks/defaultUboDeclaration-xxIrKyXf.esm.js +0 -15
- package/dist/chunks/defaultUboDeclaration-xxIrKyXf.esm.js.map +0 -1
- package/dist/chunks/drawWrapper.functions-CKg3_9x4.esm.js +0 -11
- package/dist/chunks/drawWrapper.functions-CKg3_9x4.esm.js.map +0 -1
- package/dist/chunks/drawWrapper.functions-ng7lvueZ.esm.min.js +0 -2
- package/dist/chunks/drawWrapper.functions-ng7lvueZ.esm.min.js.map +0 -1
- package/dist/chunks/dumpTools-BOVGklo2.esm.min.js +0 -2
- package/dist/chunks/dumpTools-BOVGklo2.esm.min.js.map +0 -1
- package/dist/chunks/dumpTools-Dy-fD64p.esm.js +0 -200
- package/dist/chunks/dumpTools-Dy-fD64p.esm.js.map +0 -1
- package/dist/chunks/engine-CBGABL2W.esm.min.js +0 -2
- package/dist/chunks/engine-CBGABL2W.esm.min.js.map +0 -1
- package/dist/chunks/engine-D9Sn-BC6.esm.js +0 -2213
- package/dist/chunks/engine-D9Sn-BC6.esm.js.map +0 -1
- package/dist/chunks/engine.common-BM1GAef8.esm.js +0 -1162
- package/dist/chunks/engine.common-BM1GAef8.esm.js.map +0 -1
- package/dist/chunks/engine.common-xMH7x2b0.esm.min.js +0 -2
- package/dist/chunks/engine.common-xMH7x2b0.esm.min.js.map +0 -1
- package/dist/chunks/envTextureLoader-BRdNaVH2.esm.min.js +0 -2
- package/dist/chunks/envTextureLoader-BRdNaVH2.esm.min.js.map +0 -1
- package/dist/chunks/envTextureLoader-DT_xwrde.esm.js +0 -64
- package/dist/chunks/envTextureLoader-DT_xwrde.esm.js.map +0 -1
- package/dist/chunks/environmentTextureTools-BxWsgzT8.esm.min.js +0 -2
- package/dist/chunks/environmentTextureTools-BxWsgzT8.esm.min.js.map +0 -1
- package/dist/chunks/environmentTextureTools-DuNLB_SE.esm.js +0 -382
- package/dist/chunks/environmentTextureTools-DuNLB_SE.esm.js.map +0 -1
- package/dist/chunks/exrTextureLoader-BBL1-v_g.esm.min.js +0 -2
- package/dist/chunks/exrTextureLoader-BBL1-v_g.esm.min.js.map +0 -1
- package/dist/chunks/exrTextureLoader-CUiWw4Oh.esm.js +0 -1683
- package/dist/chunks/exrTextureLoader-CUiWw4Oh.esm.js.map +0 -1
- package/dist/chunks/fogFragment-BCz1GIrJ.esm.min.js +0 -2
- package/dist/chunks/fogFragment-BCz1GIrJ.esm.min.js.map +0 -1
- package/dist/chunks/fogFragment-BQLWFsYl.esm.min.js +0 -2
- package/dist/chunks/fogFragment-BQLWFsYl.esm.min.js.map +0 -1
- package/dist/chunks/fogFragment-DANl-YQk.esm.js +0 -102
- package/dist/chunks/fogFragment-DANl-YQk.esm.js.map +0 -1
- package/dist/chunks/fogFragment-DptoygQ5.esm.js +0 -101
- package/dist/chunks/fogFragment-DptoygQ5.esm.js.map +0 -1
- package/dist/chunks/fresnelFunction-3-z89NGn.esm.js +0 -12
- package/dist/chunks/fresnelFunction-3-z89NGn.esm.js.map +0 -1
- package/dist/chunks/fresnelFunction-CbnLfwWn.esm.min.js +0 -2
- package/dist/chunks/fresnelFunction-CbnLfwWn.esm.min.js.map +0 -1
- package/dist/chunks/glTFLoader-Qw5JObwf.esm.js +0 -7658
- package/dist/chunks/glTFLoader-Qw5JObwf.esm.js.map +0 -1
- package/dist/chunks/glTFLoader-iKlvKEG-.esm.min.js +0 -2
- package/dist/chunks/glTFLoader-iKlvKEG-.esm.min.js.map +0 -1
- package/dist/chunks/glTFLoaderAnimation-BCUZthxT.esm.js +0 -77
- package/dist/chunks/glTFLoaderAnimation-BCUZthxT.esm.js.map +0 -1
- package/dist/chunks/glTFLoaderAnimation-DnTkRibM.esm.min.js +0 -2
- package/dist/chunks/glTFLoaderAnimation-DnTkRibM.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-19PWyV81.esm.js +0 -34
- package/dist/chunks/harmonicsFunctions-19PWyV81.esm.js.map +0 -1
- package/dist/chunks/harmonicsFunctions-D4sp7bHN.esm.js +0 -35
- package/dist/chunks/harmonicsFunctions-D4sp7bHN.esm.js.map +0 -1
- package/dist/chunks/harmonicsFunctions-DSpaTpH7.esm.min.js +0 -2
- package/dist/chunks/harmonicsFunctions-DSpaTpH7.esm.min.js.map +0 -1
- package/dist/chunks/harmonicsFunctions-DvH68s1g.esm.min.js +0 -2
- package/dist/chunks/harmonicsFunctions-DvH68s1g.esm.min.js.map +0 -1
- package/dist/chunks/hdrTextureLoader-ChbZ5_1g.esm.min.js +0 -2
- package/dist/chunks/hdrTextureLoader-ChbZ5_1g.esm.min.js.map +0 -1
- package/dist/chunks/hdrTextureLoader-OJaopXAb.esm.js +0 -253
- package/dist/chunks/hdrTextureLoader-OJaopXAb.esm.js.map +0 -1
- package/dist/chunks/helperFunctions-CNCeKea7.esm.js +0 -81
- package/dist/chunks/helperFunctions-CNCeKea7.esm.js.map +0 -1
- package/dist/chunks/helperFunctions-Crs36Q3w.esm.js +0 -109
- package/dist/chunks/helperFunctions-Crs36Q3w.esm.js.map +0 -1
- package/dist/chunks/helperFunctions-DKz6om6i.esm.min.js +0 -2
- package/dist/chunks/helperFunctions-DKz6om6i.esm.min.js.map +0 -1
- package/dist/chunks/helperFunctions-bZhuioWn.esm.min.js +0 -2
- package/dist/chunks/helperFunctions-bZhuioWn.esm.min.js.map +0 -1
- package/dist/chunks/iesTextureLoader-BTOaWdIK.esm.js +0 -189
- package/dist/chunks/iesTextureLoader-BTOaWdIK.esm.js.map +0 -1
- package/dist/chunks/iesTextureLoader-CKnu1maC.esm.min.js +0 -2
- package/dist/chunks/iesTextureLoader-CKnu1maC.esm.min.js.map +0 -1
- package/dist/chunks/index-5L5wXyrx.esm.js +0 -74870
- package/dist/chunks/index-5L5wXyrx.esm.js.map +0 -1
- package/dist/chunks/index-B5KLkjYm.esm.min.js +0 -57
- package/dist/chunks/index-B5KLkjYm.esm.min.js.map +0 -1
- package/dist/chunks/ktxTextureLoader-CMfHt5rp.esm.js +0 -814
- package/dist/chunks/ktxTextureLoader-CMfHt5rp.esm.js.map +0 -1
- package/dist/chunks/ktxTextureLoader-DCyzShol.esm.min.js +0 -2
- package/dist/chunks/ktxTextureLoader-DCyzShol.esm.min.js.map +0 -1
- package/dist/chunks/logDepthDeclaration-8CuoGLY6.esm.js +0 -35
- package/dist/chunks/logDepthDeclaration-8CuoGLY6.esm.js.map +0 -1
- package/dist/chunks/logDepthDeclaration-BC68Ktb0.esm.js +0 -11
- package/dist/chunks/logDepthDeclaration-BC68Ktb0.esm.js.map +0 -1
- package/dist/chunks/logDepthDeclaration-CgPuLaM9.esm.min.js +0 -2
- package/dist/chunks/logDepthDeclaration-CgPuLaM9.esm.min.js.map +0 -1
- package/dist/chunks/logDepthDeclaration-iNYm9mSn.esm.min.js +0 -2
- package/dist/chunks/logDepthDeclaration-iNYm9mSn.esm.min.js.map +0 -1
- package/dist/chunks/logDepthVertex-BOepIJij.esm.js +0 -77
- package/dist/chunks/logDepthVertex-BOepIJij.esm.js.map +0 -1
- package/dist/chunks/logDepthVertex-Bno6ozc-.esm.min.js +0 -2
- package/dist/chunks/logDepthVertex-Bno6ozc-.esm.min.js.map +0 -1
- package/dist/chunks/logDepthVertex-CU3WBwOA.esm.js +0 -81
- package/dist/chunks/logDepthVertex-CU3WBwOA.esm.js.map +0 -1
- package/dist/chunks/logDepthVertex-DjeubcPn.esm.min.js +0 -2
- package/dist/chunks/logDepthVertex-DjeubcPn.esm.min.js.map +0 -1
- package/dist/chunks/mainUVVaryingDeclaration-C_Am-o4e.esm.js +0 -11
- package/dist/chunks/mainUVVaryingDeclaration-C_Am-o4e.esm.js.map +0 -1
- package/dist/chunks/mainUVVaryingDeclaration-CuSqEhkE.esm.min.js +0 -2
- package/dist/chunks/mainUVVaryingDeclaration-CuSqEhkE.esm.min.js.map +0 -1
- package/dist/chunks/mainUVVaryingDeclaration-DxqJq0-m.esm.js +0 -11
- package/dist/chunks/mainUVVaryingDeclaration-DxqJq0-m.esm.js.map +0 -1
- package/dist/chunks/mainUVVaryingDeclaration-oZF0xIut.esm.min.js +0 -2
- package/dist/chunks/mainUVVaryingDeclaration-oZF0xIut.esm.min.js.map +0 -1
- package/dist/chunks/mesh.vertexData.functions-B_pMCAzZ.esm.js +0 -119
- package/dist/chunks/mesh.vertexData.functions-B_pMCAzZ.esm.js.map +0 -1
- package/dist/chunks/mesh.vertexData.functions-Bo7e6Of9.esm.min.js +0 -2
- package/dist/chunks/mesh.vertexData.functions-Bo7e6Of9.esm.min.js.map +0 -1
- package/dist/chunks/meshUboDeclaration-BWuUYN5-.esm.js +0 -26
- package/dist/chunks/meshUboDeclaration-BWuUYN5-.esm.js.map +0 -1
- package/dist/chunks/meshUboDeclaration-D-9f-79D.esm.min.js +0 -2
- package/dist/chunks/meshUboDeclaration-D-9f-79D.esm.min.js.map +0 -1
- package/dist/chunks/objFileLoader-B3PzHlWB.esm.min.js +0 -2
- package/dist/chunks/objFileLoader-B3PzHlWB.esm.min.js.map +0 -1
- package/dist/chunks/objFileLoader-BjHr-pn1.esm.js +0 -1338
- package/dist/chunks/objFileLoader-BjHr-pn1.esm.js.map +0 -1
- package/dist/chunks/oitFragment-BypZDJVo.esm.min.js +0 -2
- package/dist/chunks/oitFragment-BypZDJVo.esm.min.js.map +0 -1
- package/dist/chunks/oitFragment-D3g8w3hO.esm.js +0 -1078
- package/dist/chunks/oitFragment-D3g8w3hO.esm.js.map +0 -1
- package/dist/chunks/oitFragment-Db3h4DV5.esm.min.js +0 -2
- package/dist/chunks/oitFragment-Db3h4DV5.esm.min.js.map +0 -1
- package/dist/chunks/oitFragment-tQJLudg5.esm.js +0 -1240
- package/dist/chunks/oitFragment-tQJLudg5.esm.js.map +0 -1
- package/dist/chunks/pass.fragment-C8CWeVkM.esm.js +0 -15
- package/dist/chunks/pass.fragment-C8CWeVkM.esm.js.map +0 -1
- package/dist/chunks/pass.fragment-CSK2ynPe.esm.js +0 -15
- package/dist/chunks/pass.fragment-CSK2ynPe.esm.js.map +0 -1
- package/dist/chunks/pass.fragment-CdgLWa1Q.esm.min.js +0 -2
- package/dist/chunks/pass.fragment-CdgLWa1Q.esm.min.js.map +0 -1
- package/dist/chunks/pass.fragment-ONNyQPrD.esm.min.js +0 -2
- package/dist/chunks/pass.fragment-ONNyQPrD.esm.min.js.map +0 -1
- package/dist/chunks/pbr.fragment-Be9mZgL7.esm.js +0 -3269
- package/dist/chunks/pbr.fragment-Be9mZgL7.esm.js.map +0 -1
- package/dist/chunks/pbr.fragment-C13t4f7Z.esm.min.js +0 -2
- package/dist/chunks/pbr.fragment-C13t4f7Z.esm.min.js.map +0 -1
- package/dist/chunks/pbr.fragment-CiAe6mgr.esm.js +0 -3222
- package/dist/chunks/pbr.fragment-CiAe6mgr.esm.js.map +0 -1
- package/dist/chunks/pbr.fragment-I66pqwoX.esm.min.js +0 -2
- package/dist/chunks/pbr.fragment-I66pqwoX.esm.min.js.map +0 -1
- package/dist/chunks/pbr.vertex-BlqPEcZe.esm.js +0 -223
- package/dist/chunks/pbr.vertex-BlqPEcZe.esm.js.map +0 -1
- package/dist/chunks/pbr.vertex-C1r_QFvZ.esm.min.js +0 -2
- package/dist/chunks/pbr.vertex-C1r_QFvZ.esm.min.js.map +0 -1
- package/dist/chunks/pbr.vertex-DE9NTHal.esm.min.js +0 -2
- package/dist/chunks/pbr.vertex-DE9NTHal.esm.min.js.map +0 -1
- package/dist/chunks/pbr.vertex-oQpu2zia.esm.js +0 -348
- package/dist/chunks/pbr.vertex-oQpu2zia.esm.js.map +0 -1
- package/dist/chunks/postprocess.vertex-D3XLqa14.esm.js +0 -20
- package/dist/chunks/postprocess.vertex-D3XLqa14.esm.js.map +0 -1
- package/dist/chunks/postprocess.vertex-IkQbrBQH.esm.min.js +0 -2
- package/dist/chunks/postprocess.vertex-IkQbrBQH.esm.min.js.map +0 -1
- package/dist/chunks/rawTexture-BVf9vm87.esm.js +0 -191
- package/dist/chunks/rawTexture-BVf9vm87.esm.js.map +0 -1
- package/dist/chunks/rawTexture-CNxyCiVq.esm.min.js +0 -2
- package/dist/chunks/rawTexture-CNxyCiVq.esm.min.js.map +0 -1
- package/dist/chunks/ray-BLVbie8S.esm.min.js +0 -2
- package/dist/chunks/ray-BLVbie8S.esm.min.js.map +0 -1
- package/dist/chunks/ray-C7H9vp-x.esm.js +0 -946
- package/dist/chunks/ray-C7H9vp-x.esm.js.map +0 -1
- package/dist/chunks/rgbdDecode.fragment-9dPOcBOA.esm.min.js +0 -2
- package/dist/chunks/rgbdDecode.fragment-9dPOcBOA.esm.min.js.map +0 -1
- package/dist/chunks/rgbdDecode.fragment-ApyH83v_.esm.js +0 -13
- package/dist/chunks/rgbdDecode.fragment-ApyH83v_.esm.js.map +0 -1
- package/dist/chunks/rgbdDecode.fragment-Bt75XOUV.esm.min.js +0 -2
- package/dist/chunks/rgbdDecode.fragment-Bt75XOUV.esm.min.js.map +0 -1
- package/dist/chunks/rgbdDecode.fragment-DDIJs9ID.esm.js +0 -13
- package/dist/chunks/rgbdDecode.fragment-DDIJs9ID.esm.js.map +0 -1
- package/dist/chunks/rgbdEncode.fragment-CSquf6K4.esm.js +0 -13
- package/dist/chunks/rgbdEncode.fragment-CSquf6K4.esm.js.map +0 -1
- package/dist/chunks/rgbdEncode.fragment-Cpudy2qT.esm.js +0 -13
- package/dist/chunks/rgbdEncode.fragment-Cpudy2qT.esm.js.map +0 -1
- package/dist/chunks/rgbdEncode.fragment-DZs59_tV.esm.min.js +0 -2
- package/dist/chunks/rgbdEncode.fragment-DZs59_tV.esm.min.js.map +0 -1
- package/dist/chunks/rgbdEncode.fragment-Djxd-azW.esm.min.js +0 -2
- package/dist/chunks/rgbdEncode.fragment-Djxd-azW.esm.min.js.map +0 -1
- package/dist/chunks/splatFileLoader-BkExyfY6.esm.js +0 -3379
- package/dist/chunks/splatFileLoader-BkExyfY6.esm.js.map +0 -1
- package/dist/chunks/splatFileLoader-DLc_wKu4.esm.min.js +0 -2
- package/dist/chunks/splatFileLoader-DLc_wKu4.esm.min.js.map +0 -1
- package/dist/chunks/spotLight-CFGRpcFc.esm.js +0 -701
- package/dist/chunks/spotLight-CFGRpcFc.esm.js.map +0 -1
- package/dist/chunks/spotLight-z5HIEQmM.esm.min.js +0 -2
- package/dist/chunks/spotLight-z5HIEQmM.esm.min.js.map +0 -1
- package/dist/chunks/standardMaterial-B5u9Vzil.esm.min.js +0 -2
- package/dist/chunks/standardMaterial-B5u9Vzil.esm.min.js.map +0 -1
- package/dist/chunks/standardMaterial-BJzDZ72T.esm.js +0 -1806
- package/dist/chunks/standardMaterial-BJzDZ72T.esm.js.map +0 -1
- package/dist/chunks/stlFileLoader-B3Y6u4L6.esm.min.js +0 -2
- package/dist/chunks/stlFileLoader-B3Y6u4L6.esm.min.js.map +0 -1
- package/dist/chunks/stlFileLoader-Bd1GgkYU.esm.js +0 -238
- package/dist/chunks/stlFileLoader-Bd1GgkYU.esm.js.map +0 -1
- package/dist/chunks/tgaTextureLoader-BD_A6gyw.esm.min.js +0 -2
- package/dist/chunks/tgaTextureLoader-BD_A6gyw.esm.min.js.map +0 -1
- package/dist/chunks/tgaTextureLoader-DnUiJRBO.esm.js +0 -349
- package/dist/chunks/tgaTextureLoader-DnUiJRBO.esm.js.map +0 -1
- package/dist/chunks/thinEngine-CRNAFHqA.esm.min.js +0 -2
- package/dist/chunks/thinEngine-CRNAFHqA.esm.min.js.map +0 -1
- package/dist/chunks/thinEngine-DGyFDxzW.esm.js +0 -3853
- package/dist/chunks/thinEngine-DGyFDxzW.esm.js.map +0 -1
- package/dist/chunks/thinInstanceMesh-B-f1KNB2.esm.min.js +0 -2
- package/dist/chunks/thinInstanceMesh-B-f1KNB2.esm.min.js.map +0 -1
- package/dist/chunks/thinInstanceMesh-D-cofgbF.esm.js +0 -314
- package/dist/chunks/thinInstanceMesh-D-cofgbF.esm.js.map +0 -1
- package/dist/chunks/vertexColorMixing-BUqoiJkS.esm.min.js +0 -2
- package/dist/chunks/vertexColorMixing-BUqoiJkS.esm.min.js.map +0 -1
- package/dist/chunks/vertexColorMixing-CBpXxGvM.esm.js +0 -421
- package/dist/chunks/vertexColorMixing-CBpXxGvM.esm.js.map +0 -1
- package/dist/chunks/vertexColorMixing-ChUhO7eS.esm.js +0 -531
- package/dist/chunks/vertexColorMixing-ChUhO7eS.esm.js.map +0 -1
- package/dist/chunks/vertexColorMixing-DbmkfWMo.esm.min.js +0 -2
- package/dist/chunks/vertexColorMixing-DbmkfWMo.esm.min.js.map +0 -1
- package/dist/chunks/webgpuEngine-DqprhQ4L.esm.js +0 -11538
- package/dist/chunks/webgpuEngine-DqprhQ4L.esm.js.map +0 -1
- package/dist/chunks/webgpuEngine-LpKjcEuV.esm.min.js +0 -2
- package/dist/chunks/webgpuEngine-LpKjcEuV.esm.min.js.map +0 -1
- package/dist/chunks/workerPool-BUOov2K1.esm.js +0 -122
- package/dist/chunks/workerPool-BUOov2K1.esm.js.map +0 -1
- package/dist/chunks/workerPool-BWHiDmEZ.esm.min.js +0 -2
- package/dist/chunks/workerPool-BWHiDmEZ.esm.min.js.map +0 -1
- package/lib/index.d.ts +0 -591
- package/lib/index.js +0 -2165
- package/lib/index.js.map +0 -1
|
@@ -1,337 +0,0 @@
|
|
|
1
|
-
import { aV as Observable, bv as Deferred, aQ as unregisterGLTFExtension, aR as registerGLTFExtension } from './index-5L5wXyrx.esm.js';
|
|
2
|
-
import { G as GLTFLoader, A as ArrayItem } from './glTFLoader-Qw5JObwf.esm.js';
|
|
3
|
-
import './rawTexture-BVf9vm87.esm.js';
|
|
4
|
-
import './assetContainer-BzlRl_4x.esm.js';
|
|
5
|
-
import './glTFLoaderAnimation-BCUZthxT.esm.js';
|
|
6
|
-
|
|
7
|
-
const NAME = "MSFT_lod";
|
|
8
|
-
/**
|
|
9
|
-
* [Specification](https://github.com/KhronosGroup/glTF/blob/main/extensions/2.0/Vendor/MSFT_lod/README.md)
|
|
10
|
-
*/
|
|
11
|
-
// eslint-disable-next-line @typescript-eslint/naming-convention
|
|
12
|
-
class MSFT_lod {
|
|
13
|
-
/**
|
|
14
|
-
* @internal
|
|
15
|
-
*/
|
|
16
|
-
constructor(loader) {
|
|
17
|
-
/**
|
|
18
|
-
* The name of this extension.
|
|
19
|
-
*/
|
|
20
|
-
this.name = NAME;
|
|
21
|
-
/**
|
|
22
|
-
* Defines a number that determines the order the extensions are applied.
|
|
23
|
-
*/
|
|
24
|
-
this.order = 100;
|
|
25
|
-
/**
|
|
26
|
-
* Maximum number of LODs to load, starting from the lowest LOD.
|
|
27
|
-
*/
|
|
28
|
-
this.maxLODsToLoad = 10;
|
|
29
|
-
/**
|
|
30
|
-
* Observable raised when all node LODs of one level are loaded.
|
|
31
|
-
* The event data is the index of the loaded LOD starting from zero.
|
|
32
|
-
* Dispose the loader to cancel the loading of the next level of LODs.
|
|
33
|
-
*/
|
|
34
|
-
this.onNodeLODsLoadedObservable = new Observable();
|
|
35
|
-
/**
|
|
36
|
-
* Observable raised when all material LODs of one level are loaded.
|
|
37
|
-
* The event data is the index of the loaded LOD starting from zero.
|
|
38
|
-
* Dispose the loader to cancel the loading of the next level of LODs.
|
|
39
|
-
*/
|
|
40
|
-
this.onMaterialLODsLoadedObservable = new Observable();
|
|
41
|
-
this._bufferLODs = new Array();
|
|
42
|
-
this._nodeIndexLOD = null;
|
|
43
|
-
this._nodeSignalLODs = new Array();
|
|
44
|
-
this._nodePromiseLODs = new Array();
|
|
45
|
-
this._nodeBufferLODs = new Array();
|
|
46
|
-
this._materialIndexLOD = null;
|
|
47
|
-
this._materialSignalLODs = new Array();
|
|
48
|
-
this._materialPromiseLODs = new Array();
|
|
49
|
-
this._materialBufferLODs = new Array();
|
|
50
|
-
this._loader = loader;
|
|
51
|
-
// Options takes precedence. The maxLODsToLoad extension property is retained for back compat.
|
|
52
|
-
// For new extensions, they should only use options.
|
|
53
|
-
this.maxLODsToLoad = this._loader.parent.extensionOptions[NAME]?.maxLODsToLoad ?? this.maxLODsToLoad;
|
|
54
|
-
this.enabled = this._loader.isExtensionUsed(NAME);
|
|
55
|
-
}
|
|
56
|
-
/** @internal */
|
|
57
|
-
dispose() {
|
|
58
|
-
this._loader = null;
|
|
59
|
-
this._nodeIndexLOD = null;
|
|
60
|
-
this._nodeSignalLODs.length = 0;
|
|
61
|
-
this._nodePromiseLODs.length = 0;
|
|
62
|
-
this._nodeBufferLODs.length = 0;
|
|
63
|
-
this._materialIndexLOD = null;
|
|
64
|
-
this._materialSignalLODs.length = 0;
|
|
65
|
-
this._materialPromiseLODs.length = 0;
|
|
66
|
-
this._materialBufferLODs.length = 0;
|
|
67
|
-
this.onMaterialLODsLoadedObservable.clear();
|
|
68
|
-
this.onNodeLODsLoadedObservable.clear();
|
|
69
|
-
}
|
|
70
|
-
/** @internal */
|
|
71
|
-
onReady() {
|
|
72
|
-
for (let indexLOD = 0; indexLOD < this._nodePromiseLODs.length; indexLOD++) {
|
|
73
|
-
const promise = Promise.all(this._nodePromiseLODs[indexLOD]).then(() => {
|
|
74
|
-
if (indexLOD !== 0) {
|
|
75
|
-
this._loader.endPerformanceCounter(`Node LOD ${indexLOD}`);
|
|
76
|
-
this._loader.log(`Loaded node LOD ${indexLOD}`);
|
|
77
|
-
}
|
|
78
|
-
this.onNodeLODsLoadedObservable.notifyObservers(indexLOD);
|
|
79
|
-
if (indexLOD !== this._nodePromiseLODs.length - 1) {
|
|
80
|
-
this._loader.startPerformanceCounter(`Node LOD ${indexLOD + 1}`);
|
|
81
|
-
this._loadBufferLOD(this._nodeBufferLODs, indexLOD + 1);
|
|
82
|
-
if (this._nodeSignalLODs[indexLOD]) {
|
|
83
|
-
this._nodeSignalLODs[indexLOD].resolve();
|
|
84
|
-
}
|
|
85
|
-
}
|
|
86
|
-
});
|
|
87
|
-
this._loader._completePromises.push(promise);
|
|
88
|
-
}
|
|
89
|
-
for (let indexLOD = 0; indexLOD < this._materialPromiseLODs.length; indexLOD++) {
|
|
90
|
-
const promise = Promise.all(this._materialPromiseLODs[indexLOD]).then(() => {
|
|
91
|
-
if (indexLOD !== 0) {
|
|
92
|
-
this._loader.endPerformanceCounter(`Material LOD ${indexLOD}`);
|
|
93
|
-
this._loader.log(`Loaded material LOD ${indexLOD}`);
|
|
94
|
-
}
|
|
95
|
-
this.onMaterialLODsLoadedObservable.notifyObservers(indexLOD);
|
|
96
|
-
if (indexLOD !== this._materialPromiseLODs.length - 1) {
|
|
97
|
-
this._loader.startPerformanceCounter(`Material LOD ${indexLOD + 1}`);
|
|
98
|
-
this._loadBufferLOD(this._materialBufferLODs, indexLOD + 1);
|
|
99
|
-
if (this._materialSignalLODs[indexLOD]) {
|
|
100
|
-
this._materialSignalLODs[indexLOD].resolve();
|
|
101
|
-
}
|
|
102
|
-
}
|
|
103
|
-
});
|
|
104
|
-
this._loader._completePromises.push(promise);
|
|
105
|
-
}
|
|
106
|
-
}
|
|
107
|
-
/**
|
|
108
|
-
* @internal
|
|
109
|
-
*/
|
|
110
|
-
loadSceneAsync(context, scene) {
|
|
111
|
-
const promise = this._loader.loadSceneAsync(context, scene);
|
|
112
|
-
this._loadBufferLOD(this._bufferLODs, 0);
|
|
113
|
-
return promise;
|
|
114
|
-
}
|
|
115
|
-
/**
|
|
116
|
-
* @internal
|
|
117
|
-
*/
|
|
118
|
-
loadNodeAsync(context, node, assign) {
|
|
119
|
-
return GLTFLoader.LoadExtensionAsync(context, node, this.name, (extensionContext, extension) => {
|
|
120
|
-
let firstPromise;
|
|
121
|
-
const nodeLODs = this._getLODs(extensionContext, node, this._loader.gltf.nodes, extension.ids);
|
|
122
|
-
this._loader.logOpen(`${extensionContext}`);
|
|
123
|
-
for (let indexLOD = 0; indexLOD < nodeLODs.length; indexLOD++) {
|
|
124
|
-
const nodeLOD = nodeLODs[indexLOD];
|
|
125
|
-
if (indexLOD !== 0) {
|
|
126
|
-
this._nodeIndexLOD = indexLOD;
|
|
127
|
-
this._nodeSignalLODs[indexLOD] = this._nodeSignalLODs[indexLOD] || new Deferred();
|
|
128
|
-
}
|
|
129
|
-
const assignWrap = (babylonTransformNode) => {
|
|
130
|
-
assign(babylonTransformNode);
|
|
131
|
-
babylonTransformNode.setEnabled(false);
|
|
132
|
-
};
|
|
133
|
-
const promise = this._loader.loadNodeAsync(`/nodes/${nodeLOD.index}`, nodeLOD, assignWrap).then((babylonMesh) => {
|
|
134
|
-
if (indexLOD !== 0) {
|
|
135
|
-
// TODO: should not rely on _babylonTransformNode
|
|
136
|
-
const previousNodeLOD = nodeLODs[indexLOD - 1];
|
|
137
|
-
if (previousNodeLOD._babylonTransformNode) {
|
|
138
|
-
this._disposeTransformNode(previousNodeLOD._babylonTransformNode);
|
|
139
|
-
delete previousNodeLOD._babylonTransformNode;
|
|
140
|
-
}
|
|
141
|
-
}
|
|
142
|
-
babylonMesh.setEnabled(true);
|
|
143
|
-
return babylonMesh;
|
|
144
|
-
});
|
|
145
|
-
this._nodePromiseLODs[indexLOD] = this._nodePromiseLODs[indexLOD] || [];
|
|
146
|
-
if (indexLOD === 0) {
|
|
147
|
-
firstPromise = promise;
|
|
148
|
-
}
|
|
149
|
-
else {
|
|
150
|
-
this._nodeIndexLOD = null;
|
|
151
|
-
this._nodePromiseLODs[indexLOD].push(promise);
|
|
152
|
-
}
|
|
153
|
-
}
|
|
154
|
-
this._loader.logClose();
|
|
155
|
-
return firstPromise;
|
|
156
|
-
});
|
|
157
|
-
}
|
|
158
|
-
/**
|
|
159
|
-
* @internal
|
|
160
|
-
*/
|
|
161
|
-
_loadMaterialAsync(context, material, babylonMesh, babylonDrawMode, assign) {
|
|
162
|
-
// Don't load material LODs if already loading a node LOD.
|
|
163
|
-
if (this._nodeIndexLOD) {
|
|
164
|
-
return null;
|
|
165
|
-
}
|
|
166
|
-
return GLTFLoader.LoadExtensionAsync(context, material, this.name, (extensionContext, extension) => {
|
|
167
|
-
let firstPromise;
|
|
168
|
-
const materialLODs = this._getLODs(extensionContext, material, this._loader.gltf.materials, extension.ids);
|
|
169
|
-
this._loader.logOpen(`${extensionContext}`);
|
|
170
|
-
for (let indexLOD = 0; indexLOD < materialLODs.length; indexLOD++) {
|
|
171
|
-
const materialLOD = materialLODs[indexLOD];
|
|
172
|
-
if (indexLOD !== 0) {
|
|
173
|
-
this._materialIndexLOD = indexLOD;
|
|
174
|
-
}
|
|
175
|
-
const promise = this._loader
|
|
176
|
-
._loadMaterialAsync(`/materials/${materialLOD.index}`, materialLOD, babylonMesh, babylonDrawMode, (babylonMaterial) => {
|
|
177
|
-
if (indexLOD === 0) {
|
|
178
|
-
assign(babylonMaterial);
|
|
179
|
-
}
|
|
180
|
-
})
|
|
181
|
-
.then((babylonMaterial) => {
|
|
182
|
-
if (indexLOD !== 0) {
|
|
183
|
-
assign(babylonMaterial);
|
|
184
|
-
// TODO: should not rely on _data
|
|
185
|
-
const previousDataLOD = materialLODs[indexLOD - 1]._data;
|
|
186
|
-
if (previousDataLOD[babylonDrawMode]) {
|
|
187
|
-
this._disposeMaterials([previousDataLOD[babylonDrawMode].babylonMaterial]);
|
|
188
|
-
delete previousDataLOD[babylonDrawMode];
|
|
189
|
-
}
|
|
190
|
-
}
|
|
191
|
-
return babylonMaterial;
|
|
192
|
-
});
|
|
193
|
-
this._materialPromiseLODs[indexLOD] = this._materialPromiseLODs[indexLOD] || [];
|
|
194
|
-
if (indexLOD === 0) {
|
|
195
|
-
firstPromise = promise;
|
|
196
|
-
}
|
|
197
|
-
else {
|
|
198
|
-
this._materialIndexLOD = null;
|
|
199
|
-
this._materialPromiseLODs[indexLOD].push(promise);
|
|
200
|
-
}
|
|
201
|
-
}
|
|
202
|
-
this._loader.logClose();
|
|
203
|
-
return firstPromise;
|
|
204
|
-
});
|
|
205
|
-
}
|
|
206
|
-
/**
|
|
207
|
-
* @internal
|
|
208
|
-
*/
|
|
209
|
-
_loadUriAsync(context, property, uri) {
|
|
210
|
-
// Defer the loading of uris if loading a node or material LOD.
|
|
211
|
-
if (this._nodeIndexLOD !== null) {
|
|
212
|
-
this._loader.log(`deferred`);
|
|
213
|
-
const previousIndexLOD = this._nodeIndexLOD - 1;
|
|
214
|
-
this._nodeSignalLODs[previousIndexLOD] = this._nodeSignalLODs[previousIndexLOD] || new Deferred();
|
|
215
|
-
return this._nodeSignalLODs[this._nodeIndexLOD - 1].promise.then(() => {
|
|
216
|
-
return this._loader.loadUriAsync(context, property, uri);
|
|
217
|
-
});
|
|
218
|
-
}
|
|
219
|
-
else if (this._materialIndexLOD !== null) {
|
|
220
|
-
this._loader.log(`deferred`);
|
|
221
|
-
const previousIndexLOD = this._materialIndexLOD - 1;
|
|
222
|
-
this._materialSignalLODs[previousIndexLOD] = this._materialSignalLODs[previousIndexLOD] || new Deferred();
|
|
223
|
-
return this._materialSignalLODs[previousIndexLOD].promise.then(() => {
|
|
224
|
-
return this._loader.loadUriAsync(context, property, uri);
|
|
225
|
-
});
|
|
226
|
-
}
|
|
227
|
-
return null;
|
|
228
|
-
}
|
|
229
|
-
/**
|
|
230
|
-
* @internal
|
|
231
|
-
*/
|
|
232
|
-
loadBufferAsync(context, buffer, byteOffset, byteLength) {
|
|
233
|
-
if (this._loader.parent.useRangeRequests && !buffer.uri) {
|
|
234
|
-
if (!this._loader.bin) {
|
|
235
|
-
throw new Error(`${context}: Uri is missing or the binary glTF is missing its binary chunk`);
|
|
236
|
-
}
|
|
237
|
-
const loadAsync = (bufferLODs, indexLOD) => {
|
|
238
|
-
const start = byteOffset;
|
|
239
|
-
const end = start + byteLength - 1;
|
|
240
|
-
let bufferLOD = bufferLODs[indexLOD];
|
|
241
|
-
if (bufferLOD) {
|
|
242
|
-
bufferLOD.start = Math.min(bufferLOD.start, start);
|
|
243
|
-
bufferLOD.end = Math.max(bufferLOD.end, end);
|
|
244
|
-
}
|
|
245
|
-
else {
|
|
246
|
-
bufferLOD = { start: start, end: end, loaded: new Deferred() };
|
|
247
|
-
bufferLODs[indexLOD] = bufferLOD;
|
|
248
|
-
}
|
|
249
|
-
return bufferLOD.loaded.promise.then((data) => {
|
|
250
|
-
return new Uint8Array(data.buffer, data.byteOffset + byteOffset - bufferLOD.start, byteLength);
|
|
251
|
-
});
|
|
252
|
-
};
|
|
253
|
-
this._loader.log(`deferred`);
|
|
254
|
-
if (this._nodeIndexLOD !== null) {
|
|
255
|
-
return loadAsync(this._nodeBufferLODs, this._nodeIndexLOD);
|
|
256
|
-
}
|
|
257
|
-
else if (this._materialIndexLOD !== null) {
|
|
258
|
-
return loadAsync(this._materialBufferLODs, this._materialIndexLOD);
|
|
259
|
-
}
|
|
260
|
-
else {
|
|
261
|
-
return loadAsync(this._bufferLODs, 0);
|
|
262
|
-
}
|
|
263
|
-
}
|
|
264
|
-
return null;
|
|
265
|
-
}
|
|
266
|
-
_loadBufferLOD(bufferLODs, indexLOD) {
|
|
267
|
-
const bufferLOD = bufferLODs[indexLOD];
|
|
268
|
-
if (bufferLOD) {
|
|
269
|
-
this._loader.log(`Loading buffer range [${bufferLOD.start}-${bufferLOD.end}]`);
|
|
270
|
-
this._loader.bin.readAsync(bufferLOD.start, bufferLOD.end - bufferLOD.start + 1).then((data) => {
|
|
271
|
-
bufferLOD.loaded.resolve(data);
|
|
272
|
-
}, (error) => {
|
|
273
|
-
bufferLOD.loaded.reject(error);
|
|
274
|
-
});
|
|
275
|
-
}
|
|
276
|
-
}
|
|
277
|
-
/**
|
|
278
|
-
* @returns an array of LOD properties from lowest to highest.
|
|
279
|
-
* @param context
|
|
280
|
-
* @param property
|
|
281
|
-
* @param array
|
|
282
|
-
* @param ids
|
|
283
|
-
*/
|
|
284
|
-
_getLODs(context, property, array, ids) {
|
|
285
|
-
if (this.maxLODsToLoad <= 0) {
|
|
286
|
-
throw new Error("maxLODsToLoad must be greater than zero");
|
|
287
|
-
}
|
|
288
|
-
const properties = [];
|
|
289
|
-
for (let i = ids.length - 1; i >= 0; i--) {
|
|
290
|
-
properties.push(ArrayItem.Get(`${context}/ids/${ids[i]}`, array, ids[i]));
|
|
291
|
-
if (properties.length === this.maxLODsToLoad) {
|
|
292
|
-
return properties;
|
|
293
|
-
}
|
|
294
|
-
}
|
|
295
|
-
properties.push(property);
|
|
296
|
-
return properties;
|
|
297
|
-
}
|
|
298
|
-
_disposeTransformNode(babylonTransformNode) {
|
|
299
|
-
const babylonMaterials = [];
|
|
300
|
-
const babylonMaterial = babylonTransformNode.material;
|
|
301
|
-
if (babylonMaterial) {
|
|
302
|
-
babylonMaterials.push(babylonMaterial);
|
|
303
|
-
}
|
|
304
|
-
for (const babylonMesh of babylonTransformNode.getChildMeshes()) {
|
|
305
|
-
if (babylonMesh.material) {
|
|
306
|
-
babylonMaterials.push(babylonMesh.material);
|
|
307
|
-
}
|
|
308
|
-
}
|
|
309
|
-
babylonTransformNode.dispose();
|
|
310
|
-
const babylonMaterialsToDispose = babylonMaterials.filter((babylonMaterial) => this._loader.babylonScene.meshes.every((mesh) => mesh.material != babylonMaterial));
|
|
311
|
-
this._disposeMaterials(babylonMaterialsToDispose);
|
|
312
|
-
}
|
|
313
|
-
_disposeMaterials(babylonMaterials) {
|
|
314
|
-
const babylonTextures = {};
|
|
315
|
-
for (const babylonMaterial of babylonMaterials) {
|
|
316
|
-
for (const babylonTexture of babylonMaterial.getActiveTextures()) {
|
|
317
|
-
babylonTextures[babylonTexture.uniqueId] = babylonTexture;
|
|
318
|
-
}
|
|
319
|
-
babylonMaterial.dispose();
|
|
320
|
-
}
|
|
321
|
-
for (const uniqueId in babylonTextures) {
|
|
322
|
-
for (const babylonMaterial of this._loader.babylonScene.materials) {
|
|
323
|
-
if (babylonMaterial.hasTexture(babylonTextures[uniqueId])) {
|
|
324
|
-
delete babylonTextures[uniqueId];
|
|
325
|
-
}
|
|
326
|
-
}
|
|
327
|
-
}
|
|
328
|
-
for (const uniqueId in babylonTextures) {
|
|
329
|
-
babylonTextures[uniqueId].dispose();
|
|
330
|
-
}
|
|
331
|
-
}
|
|
332
|
-
}
|
|
333
|
-
unregisterGLTFExtension(NAME);
|
|
334
|
-
registerGLTFExtension(NAME, true, (loader) => new MSFT_lod(loader));
|
|
335
|
-
|
|
336
|
-
export { MSFT_lod };
|
|
337
|
-
//# sourceMappingURL=MSFT_lod-BDP9fUoB.esm.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"MSFT_lod-BDP9fUoB.esm.js","sources":["../../../../../dev/loaders/dist/glTF/2.0/Extensions/MSFT_lod.js"],"sourcesContent":["import { Observable } from \"core/Misc/observable\";\nimport { Deferred } from \"core/Misc/deferred\";\nimport { GLTFLoader, ArrayItem } from \"../glTFLoader\";\nimport { registerGLTFExtension, unregisterGLTFExtension } from \"../glTFLoaderExtensionRegistry\";\nconst NAME = \"MSFT_lod\";\n/**\n * [Specification](https://github.com/KhronosGroup/glTF/blob/main/extensions/2.0/Vendor/MSFT_lod/README.md)\n */\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport class MSFT_lod {\n /**\n * @internal\n */\n constructor(loader) {\n /**\n * The name of this extension.\n */\n this.name = NAME;\n /**\n * Defines a number that determines the order the extensions are applied.\n */\n this.order = 100;\n /**\n * Maximum number of LODs to load, starting from the lowest LOD.\n */\n this.maxLODsToLoad = 10;\n /**\n * Observable raised when all node LODs of one level are loaded.\n * The event data is the index of the loaded LOD starting from zero.\n * Dispose the loader to cancel the loading of the next level of LODs.\n */\n this.onNodeLODsLoadedObservable = new Observable();\n /**\n * Observable raised when all material LODs of one level are loaded.\n * The event data is the index of the loaded LOD starting from zero.\n * Dispose the loader to cancel the loading of the next level of LODs.\n */\n this.onMaterialLODsLoadedObservable = new Observable();\n this._bufferLODs = new Array();\n this._nodeIndexLOD = null;\n this._nodeSignalLODs = new Array();\n this._nodePromiseLODs = new Array();\n this._nodeBufferLODs = new Array();\n this._materialIndexLOD = null;\n this._materialSignalLODs = new Array();\n this._materialPromiseLODs = new Array();\n this._materialBufferLODs = new Array();\n this._loader = loader;\n // Options takes precedence. The maxLODsToLoad extension property is retained for back compat.\n // For new extensions, they should only use options.\n this.maxLODsToLoad = this._loader.parent.extensionOptions[NAME]?.maxLODsToLoad ?? this.maxLODsToLoad;\n this.enabled = this._loader.isExtensionUsed(NAME);\n }\n /** @internal */\n dispose() {\n this._loader = null;\n this._nodeIndexLOD = null;\n this._nodeSignalLODs.length = 0;\n this._nodePromiseLODs.length = 0;\n this._nodeBufferLODs.length = 0;\n this._materialIndexLOD = null;\n this._materialSignalLODs.length = 0;\n this._materialPromiseLODs.length = 0;\n this._materialBufferLODs.length = 0;\n this.onMaterialLODsLoadedObservable.clear();\n this.onNodeLODsLoadedObservable.clear();\n }\n /** @internal */\n onReady() {\n for (let indexLOD = 0; indexLOD < this._nodePromiseLODs.length; indexLOD++) {\n const promise = Promise.all(this._nodePromiseLODs[indexLOD]).then(() => {\n if (indexLOD !== 0) {\n this._loader.endPerformanceCounter(`Node LOD ${indexLOD}`);\n this._loader.log(`Loaded node LOD ${indexLOD}`);\n }\n this.onNodeLODsLoadedObservable.notifyObservers(indexLOD);\n if (indexLOD !== this._nodePromiseLODs.length - 1) {\n this._loader.startPerformanceCounter(`Node LOD ${indexLOD + 1}`);\n this._loadBufferLOD(this._nodeBufferLODs, indexLOD + 1);\n if (this._nodeSignalLODs[indexLOD]) {\n this._nodeSignalLODs[indexLOD].resolve();\n }\n }\n });\n this._loader._completePromises.push(promise);\n }\n for (let indexLOD = 0; indexLOD < this._materialPromiseLODs.length; indexLOD++) {\n const promise = Promise.all(this._materialPromiseLODs[indexLOD]).then(() => {\n if (indexLOD !== 0) {\n this._loader.endPerformanceCounter(`Material LOD ${indexLOD}`);\n this._loader.log(`Loaded material LOD ${indexLOD}`);\n }\n this.onMaterialLODsLoadedObservable.notifyObservers(indexLOD);\n if (indexLOD !== this._materialPromiseLODs.length - 1) {\n this._loader.startPerformanceCounter(`Material LOD ${indexLOD + 1}`);\n this._loadBufferLOD(this._materialBufferLODs, indexLOD + 1);\n if (this._materialSignalLODs[indexLOD]) {\n this._materialSignalLODs[indexLOD].resolve();\n }\n }\n });\n this._loader._completePromises.push(promise);\n }\n }\n /**\n * @internal\n */\n loadSceneAsync(context, scene) {\n const promise = this._loader.loadSceneAsync(context, scene);\n this._loadBufferLOD(this._bufferLODs, 0);\n return promise;\n }\n /**\n * @internal\n */\n loadNodeAsync(context, node, assign) {\n return GLTFLoader.LoadExtensionAsync(context, node, this.name, (extensionContext, extension) => {\n let firstPromise;\n const nodeLODs = this._getLODs(extensionContext, node, this._loader.gltf.nodes, extension.ids);\n this._loader.logOpen(`${extensionContext}`);\n for (let indexLOD = 0; indexLOD < nodeLODs.length; indexLOD++) {\n const nodeLOD = nodeLODs[indexLOD];\n if (indexLOD !== 0) {\n this._nodeIndexLOD = indexLOD;\n this._nodeSignalLODs[indexLOD] = this._nodeSignalLODs[indexLOD] || new Deferred();\n }\n const assignWrap = (babylonTransformNode) => {\n assign(babylonTransformNode);\n babylonTransformNode.setEnabled(false);\n };\n const promise = this._loader.loadNodeAsync(`/nodes/${nodeLOD.index}`, nodeLOD, assignWrap).then((babylonMesh) => {\n if (indexLOD !== 0) {\n // TODO: should not rely on _babylonTransformNode\n const previousNodeLOD = nodeLODs[indexLOD - 1];\n if (previousNodeLOD._babylonTransformNode) {\n this._disposeTransformNode(previousNodeLOD._babylonTransformNode);\n delete previousNodeLOD._babylonTransformNode;\n }\n }\n babylonMesh.setEnabled(true);\n return babylonMesh;\n });\n this._nodePromiseLODs[indexLOD] = this._nodePromiseLODs[indexLOD] || [];\n if (indexLOD === 0) {\n firstPromise = promise;\n }\n else {\n this._nodeIndexLOD = null;\n this._nodePromiseLODs[indexLOD].push(promise);\n }\n }\n this._loader.logClose();\n return firstPromise;\n });\n }\n /**\n * @internal\n */\n _loadMaterialAsync(context, material, babylonMesh, babylonDrawMode, assign) {\n // Don't load material LODs if already loading a node LOD.\n if (this._nodeIndexLOD) {\n return null;\n }\n return GLTFLoader.LoadExtensionAsync(context, material, this.name, (extensionContext, extension) => {\n let firstPromise;\n const materialLODs = this._getLODs(extensionContext, material, this._loader.gltf.materials, extension.ids);\n this._loader.logOpen(`${extensionContext}`);\n for (let indexLOD = 0; indexLOD < materialLODs.length; indexLOD++) {\n const materialLOD = materialLODs[indexLOD];\n if (indexLOD !== 0) {\n this._materialIndexLOD = indexLOD;\n }\n const promise = this._loader\n ._loadMaterialAsync(`/materials/${materialLOD.index}`, materialLOD, babylonMesh, babylonDrawMode, (babylonMaterial) => {\n if (indexLOD === 0) {\n assign(babylonMaterial);\n }\n })\n .then((babylonMaterial) => {\n if (indexLOD !== 0) {\n assign(babylonMaterial);\n // TODO: should not rely on _data\n const previousDataLOD = materialLODs[indexLOD - 1]._data;\n if (previousDataLOD[babylonDrawMode]) {\n this._disposeMaterials([previousDataLOD[babylonDrawMode].babylonMaterial]);\n delete previousDataLOD[babylonDrawMode];\n }\n }\n return babylonMaterial;\n });\n this._materialPromiseLODs[indexLOD] = this._materialPromiseLODs[indexLOD] || [];\n if (indexLOD === 0) {\n firstPromise = promise;\n }\n else {\n this._materialIndexLOD = null;\n this._materialPromiseLODs[indexLOD].push(promise);\n }\n }\n this._loader.logClose();\n return firstPromise;\n });\n }\n /**\n * @internal\n */\n _loadUriAsync(context, property, uri) {\n // Defer the loading of uris if loading a node or material LOD.\n if (this._nodeIndexLOD !== null) {\n this._loader.log(`deferred`);\n const previousIndexLOD = this._nodeIndexLOD - 1;\n this._nodeSignalLODs[previousIndexLOD] = this._nodeSignalLODs[previousIndexLOD] || new Deferred();\n return this._nodeSignalLODs[this._nodeIndexLOD - 1].promise.then(() => {\n return this._loader.loadUriAsync(context, property, uri);\n });\n }\n else if (this._materialIndexLOD !== null) {\n this._loader.log(`deferred`);\n const previousIndexLOD = this._materialIndexLOD - 1;\n this._materialSignalLODs[previousIndexLOD] = this._materialSignalLODs[previousIndexLOD] || new Deferred();\n return this._materialSignalLODs[previousIndexLOD].promise.then(() => {\n return this._loader.loadUriAsync(context, property, uri);\n });\n }\n return null;\n }\n /**\n * @internal\n */\n loadBufferAsync(context, buffer, byteOffset, byteLength) {\n if (this._loader.parent.useRangeRequests && !buffer.uri) {\n if (!this._loader.bin) {\n throw new Error(`${context}: Uri is missing or the binary glTF is missing its binary chunk`);\n }\n const loadAsync = (bufferLODs, indexLOD) => {\n const start = byteOffset;\n const end = start + byteLength - 1;\n let bufferLOD = bufferLODs[indexLOD];\n if (bufferLOD) {\n bufferLOD.start = Math.min(bufferLOD.start, start);\n bufferLOD.end = Math.max(bufferLOD.end, end);\n }\n else {\n bufferLOD = { start: start, end: end, loaded: new Deferred() };\n bufferLODs[indexLOD] = bufferLOD;\n }\n return bufferLOD.loaded.promise.then((data) => {\n return new Uint8Array(data.buffer, data.byteOffset + byteOffset - bufferLOD.start, byteLength);\n });\n };\n this._loader.log(`deferred`);\n if (this._nodeIndexLOD !== null) {\n return loadAsync(this._nodeBufferLODs, this._nodeIndexLOD);\n }\n else if (this._materialIndexLOD !== null) {\n return loadAsync(this._materialBufferLODs, this._materialIndexLOD);\n }\n else {\n return loadAsync(this._bufferLODs, 0);\n }\n }\n return null;\n }\n _loadBufferLOD(bufferLODs, indexLOD) {\n const bufferLOD = bufferLODs[indexLOD];\n if (bufferLOD) {\n this._loader.log(`Loading buffer range [${bufferLOD.start}-${bufferLOD.end}]`);\n this._loader.bin.readAsync(bufferLOD.start, bufferLOD.end - bufferLOD.start + 1).then((data) => {\n bufferLOD.loaded.resolve(data);\n }, (error) => {\n bufferLOD.loaded.reject(error);\n });\n }\n }\n /**\n * @returns an array of LOD properties from lowest to highest.\n * @param context\n * @param property\n * @param array\n * @param ids\n */\n _getLODs(context, property, array, ids) {\n if (this.maxLODsToLoad <= 0) {\n throw new Error(\"maxLODsToLoad must be greater than zero\");\n }\n const properties = [];\n for (let i = ids.length - 1; i >= 0; i--) {\n properties.push(ArrayItem.Get(`${context}/ids/${ids[i]}`, array, ids[i]));\n if (properties.length === this.maxLODsToLoad) {\n return properties;\n }\n }\n properties.push(property);\n return properties;\n }\n _disposeTransformNode(babylonTransformNode) {\n const babylonMaterials = [];\n const babylonMaterial = babylonTransformNode.material;\n if (babylonMaterial) {\n babylonMaterials.push(babylonMaterial);\n }\n for (const babylonMesh of babylonTransformNode.getChildMeshes()) {\n if (babylonMesh.material) {\n babylonMaterials.push(babylonMesh.material);\n }\n }\n babylonTransformNode.dispose();\n const babylonMaterialsToDispose = babylonMaterials.filter((babylonMaterial) => this._loader.babylonScene.meshes.every((mesh) => mesh.material != babylonMaterial));\n this._disposeMaterials(babylonMaterialsToDispose);\n }\n _disposeMaterials(babylonMaterials) {\n const babylonTextures = {};\n for (const babylonMaterial of babylonMaterials) {\n for (const babylonTexture of babylonMaterial.getActiveTextures()) {\n babylonTextures[babylonTexture.uniqueId] = babylonTexture;\n }\n babylonMaterial.dispose();\n }\n for (const uniqueId in babylonTextures) {\n for (const babylonMaterial of this._loader.babylonScene.materials) {\n if (babylonMaterial.hasTexture(babylonTextures[uniqueId])) {\n delete babylonTextures[uniqueId];\n }\n }\n }\n for (const uniqueId in babylonTextures) {\n babylonTextures[uniqueId].dispose();\n }\n }\n}\nunregisterGLTFExtension(NAME);\nregisterGLTFExtension(NAME, true, (loader) => new MSFT_lod(loader));\n//# sourceMappingURL=MSFT_lod.js.map"],"names":[],"mappings":"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"}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{aV as e,bv as s,aQ as t,aR as r}from"./index-B5KLkjYm.esm.min.js";import{G as i,A as o}from"./glTFLoader-iKlvKEG-.esm.min.js";import"./rawTexture-CNxyCiVq.esm.min.js";import"./assetContainer-D7C3a-Xn.esm.min.js";import"./glTFLoaderAnimation-DnTkRibM.esm.min.js";const a="MSFT_lod";class n{constructor(s){this.name=a,this.order=100,this.maxLODsToLoad=10,this.onNodeLODsLoadedObservable=new e,this.onMaterialLODsLoadedObservable=new e,this._bufferLODs=new Array,this._nodeIndexLOD=null,this._nodeSignalLODs=new Array,this._nodePromiseLODs=new Array,this._nodeBufferLODs=new Array,this._materialIndexLOD=null,this._materialSignalLODs=new Array,this._materialPromiseLODs=new Array,this._materialBufferLODs=new Array,this._loader=s,this.maxLODsToLoad=this._loader.parent.extensionOptions[a]?.maxLODsToLoad??this.maxLODsToLoad,this.enabled=this._loader.isExtensionUsed(a)}dispose(){this._loader=null,this._nodeIndexLOD=null,this._nodeSignalLODs.length=0,this._nodePromiseLODs.length=0,this._nodeBufferLODs.length=0,this._materialIndexLOD=null,this._materialSignalLODs.length=0,this._materialPromiseLODs.length=0,this._materialBufferLODs.length=0,this.onMaterialLODsLoadedObservable.clear(),this.onNodeLODsLoadedObservable.clear()}onReady(){for(let e=0;e<this._nodePromiseLODs.length;e++){const s=Promise.all(this._nodePromiseLODs[e]).then((()=>{0!==e&&(this._loader.endPerformanceCounter(`Node LOD ${e}`),this._loader.log(`Loaded node LOD ${e}`)),this.onNodeLODsLoadedObservable.notifyObservers(e),e!==this._nodePromiseLODs.length-1&&(this._loader.startPerformanceCounter(`Node LOD ${e+1}`),this._loadBufferLOD(this._nodeBufferLODs,e+1),this._nodeSignalLODs[e]&&this._nodeSignalLODs[e].resolve())}));this._loader._completePromises.push(s)}for(let e=0;e<this._materialPromiseLODs.length;e++){const s=Promise.all(this._materialPromiseLODs[e]).then((()=>{0!==e&&(this._loader.endPerformanceCounter(`Material LOD ${e}`),this._loader.log(`Loaded material LOD ${e}`)),this.onMaterialLODsLoadedObservable.notifyObservers(e),e!==this._materialPromiseLODs.length-1&&(this._loader.startPerformanceCounter(`Material LOD ${e+1}`),this._loadBufferLOD(this._materialBufferLODs,e+1),this._materialSignalLODs[e]&&this._materialSignalLODs[e].resolve())}));this._loader._completePromises.push(s)}}loadSceneAsync(e,s){const t=this._loader.loadSceneAsync(e,s);return this._loadBufferLOD(this._bufferLODs,0),t}loadNodeAsync(e,t,r){return i.LoadExtensionAsync(e,t,this.name,((e,i)=>{let o;const a=this._getLODs(e,t,this._loader.gltf.nodes,i.ids);this._loader.logOpen(`${e}`);for(let e=0;e<a.length;e++){const t=a[e];0!==e&&(this._nodeIndexLOD=e,this._nodeSignalLODs[e]=this._nodeSignalLODs[e]||new s);const i=e=>{r(e),e.setEnabled(!1)},n=this._loader.loadNodeAsync(`/nodes/${t.index}`,t,i).then((s=>{if(0!==e){const s=a[e-1];s._babylonTransformNode&&(this._disposeTransformNode(s._babylonTransformNode),delete s._babylonTransformNode)}return s.setEnabled(!0),s}));this._nodePromiseLODs[e]=this._nodePromiseLODs[e]||[],0===e?o=n:(this._nodeIndexLOD=null,this._nodePromiseLODs[e].push(n))}return this._loader.logClose(),o}))}_loadMaterialAsync(e,s,t,r,o){return this._nodeIndexLOD?null:i.LoadExtensionAsync(e,s,this.name,((e,i)=>{let a;const n=this._getLODs(e,s,this._loader.gltf.materials,i.ids);this._loader.logOpen(`${e}`);for(let e=0;e<n.length;e++){const s=n[e];0!==e&&(this._materialIndexLOD=e);const i=this._loader._loadMaterialAsync(`/materials/${s.index}`,s,t,r,(s=>{0===e&&o(s)})).then((s=>{if(0!==e){o(s);const t=n[e-1]._data;t[r]&&(this._disposeMaterials([t[r].babylonMaterial]),delete t[r])}return s}));this._materialPromiseLODs[e]=this._materialPromiseLODs[e]||[],0===e?a=i:(this._materialIndexLOD=null,this._materialPromiseLODs[e].push(i))}return this._loader.logClose(),a}))}_loadUriAsync(e,t,r){if(null!==this._nodeIndexLOD){this._loader.log("deferred");const i=this._nodeIndexLOD-1;return this._nodeSignalLODs[i]=this._nodeSignalLODs[i]||new s,this._nodeSignalLODs[this._nodeIndexLOD-1].promise.then((()=>this._loader.loadUriAsync(e,t,r)))}if(null!==this._materialIndexLOD){this._loader.log("deferred");const i=this._materialIndexLOD-1;return this._materialSignalLODs[i]=this._materialSignalLODs[i]||new s,this._materialSignalLODs[i].promise.then((()=>this._loader.loadUriAsync(e,t,r)))}return null}loadBufferAsync(e,t,r,i){if(this._loader.parent.useRangeRequests&&!t.uri){if(!this._loader.bin)throw new Error(`${e}: Uri is missing or the binary glTF is missing its binary chunk`);const t=(e,t)=>{const o=r,a=o+i-1;let n=e[t];return n?(n.start=Math.min(n.start,o),n.end=Math.max(n.end,a)):(n={start:o,end:a,loaded:new s},e[t]=n),n.loaded.promise.then((e=>new Uint8Array(e.buffer,e.byteOffset+r-n.start,i)))};return this._loader.log("deferred"),null!==this._nodeIndexLOD?t(this._nodeBufferLODs,this._nodeIndexLOD):null!==this._materialIndexLOD?t(this._materialBufferLODs,this._materialIndexLOD):t(this._bufferLODs,0)}return null}_loadBufferLOD(e,s){const t=e[s];t&&(this._loader.log(`Loading buffer range [${t.start}-${t.end}]`),this._loader.bin.readAsync(t.start,t.end-t.start+1).then((e=>{t.loaded.resolve(e)}),(e=>{t.loaded.reject(e)})))}_getLODs(e,s,t,r){if(this.maxLODsToLoad<=0)throw new Error("maxLODsToLoad must be greater than zero");const i=[];for(let s=r.length-1;s>=0;s--)if(i.push(o.Get(`${e}/ids/${r[s]}`,t,r[s])),i.length===this.maxLODsToLoad)return i;return i.push(s),i}_disposeTransformNode(e){const s=[],t=e.material;t&&s.push(t);for(const t of e.getChildMeshes())t.material&&s.push(t.material);e.dispose();const r=s.filter((e=>this._loader.babylonScene.meshes.every((s=>s.material!=e))));this._disposeMaterials(r)}_disposeMaterials(e){const s={};for(const t of e){for(const e of t.getActiveTextures())s[e.uniqueId]=e;t.dispose()}for(const e in s)for(const t of this._loader.babylonScene.materials)t.hasTexture(s[e])&&delete s[e];for(const e in s)s[e].dispose()}}t(a),r(a,!0,(e=>new n(e)));export{n as MSFT_lod};
|
|
2
|
-
//# sourceMappingURL=MSFT_lod-BEbIdncN.esm.min.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"MSFT_lod-BEbIdncN.esm.min.js","sources":["../../../../../dev/loaders/dist/glTF/2.0/Extensions/MSFT_lod.js"],"sourcesContent":["import { Observable } from \"core/Misc/observable\";\nimport { Deferred } from \"core/Misc/deferred\";\nimport { GLTFLoader, ArrayItem } from \"../glTFLoader\";\nimport { registerGLTFExtension, unregisterGLTFExtension } from \"../glTFLoaderExtensionRegistry\";\nconst NAME = \"MSFT_lod\";\n/**\n * [Specification](https://github.com/KhronosGroup/glTF/blob/main/extensions/2.0/Vendor/MSFT_lod/README.md)\n */\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport class MSFT_lod {\n /**\n * @internal\n */\n constructor(loader) {\n /**\n * The name of this extension.\n */\n this.name = NAME;\n /**\n * Defines a number that determines the order the extensions are applied.\n */\n this.order = 100;\n /**\n * Maximum number of LODs to load, starting from the lowest LOD.\n */\n this.maxLODsToLoad = 10;\n /**\n * Observable raised when all node LODs of one level are loaded.\n * The event data is the index of the loaded LOD starting from zero.\n * Dispose the loader to cancel the loading of the next level of LODs.\n */\n this.onNodeLODsLoadedObservable = new Observable();\n /**\n * Observable raised when all material LODs of one level are loaded.\n * The event data is the index of the loaded LOD starting from zero.\n * Dispose the loader to cancel the loading of the next level of LODs.\n */\n this.onMaterialLODsLoadedObservable = new Observable();\n this._bufferLODs = new Array();\n this._nodeIndexLOD = null;\n this._nodeSignalLODs = new Array();\n this._nodePromiseLODs = new Array();\n this._nodeBufferLODs = new Array();\n this._materialIndexLOD = null;\n this._materialSignalLODs = new Array();\n this._materialPromiseLODs = new Array();\n this._materialBufferLODs = new Array();\n this._loader = loader;\n // Options takes precedence. The maxLODsToLoad extension property is retained for back compat.\n // For new extensions, they should only use options.\n this.maxLODsToLoad = this._loader.parent.extensionOptions[NAME]?.maxLODsToLoad ?? this.maxLODsToLoad;\n this.enabled = this._loader.isExtensionUsed(NAME);\n }\n /** @internal */\n dispose() {\n this._loader = null;\n this._nodeIndexLOD = null;\n this._nodeSignalLODs.length = 0;\n this._nodePromiseLODs.length = 0;\n this._nodeBufferLODs.length = 0;\n this._materialIndexLOD = null;\n this._materialSignalLODs.length = 0;\n this._materialPromiseLODs.length = 0;\n this._materialBufferLODs.length = 0;\n this.onMaterialLODsLoadedObservable.clear();\n this.onNodeLODsLoadedObservable.clear();\n }\n /** @internal */\n onReady() {\n for (let indexLOD = 0; indexLOD < this._nodePromiseLODs.length; indexLOD++) {\n const promise = Promise.all(this._nodePromiseLODs[indexLOD]).then(() => {\n if (indexLOD !== 0) {\n this._loader.endPerformanceCounter(`Node LOD ${indexLOD}`);\n this._loader.log(`Loaded node LOD ${indexLOD}`);\n }\n this.onNodeLODsLoadedObservable.notifyObservers(indexLOD);\n if (indexLOD !== this._nodePromiseLODs.length - 1) {\n this._loader.startPerformanceCounter(`Node LOD ${indexLOD + 1}`);\n this._loadBufferLOD(this._nodeBufferLODs, indexLOD + 1);\n if (this._nodeSignalLODs[indexLOD]) {\n this._nodeSignalLODs[indexLOD].resolve();\n }\n }\n });\n this._loader._completePromises.push(promise);\n }\n for (let indexLOD = 0; indexLOD < this._materialPromiseLODs.length; indexLOD++) {\n const promise = Promise.all(this._materialPromiseLODs[indexLOD]).then(() => {\n if (indexLOD !== 0) {\n this._loader.endPerformanceCounter(`Material LOD ${indexLOD}`);\n this._loader.log(`Loaded material LOD ${indexLOD}`);\n }\n this.onMaterialLODsLoadedObservable.notifyObservers(indexLOD);\n if (indexLOD !== this._materialPromiseLODs.length - 1) {\n this._loader.startPerformanceCounter(`Material LOD ${indexLOD + 1}`);\n this._loadBufferLOD(this._materialBufferLODs, indexLOD + 1);\n if (this._materialSignalLODs[indexLOD]) {\n this._materialSignalLODs[indexLOD].resolve();\n }\n }\n });\n this._loader._completePromises.push(promise);\n }\n }\n /**\n * @internal\n */\n loadSceneAsync(context, scene) {\n const promise = this._loader.loadSceneAsync(context, scene);\n this._loadBufferLOD(this._bufferLODs, 0);\n return promise;\n }\n /**\n * @internal\n */\n loadNodeAsync(context, node, assign) {\n return GLTFLoader.LoadExtensionAsync(context, node, this.name, (extensionContext, extension) => {\n let firstPromise;\n const nodeLODs = this._getLODs(extensionContext, node, this._loader.gltf.nodes, extension.ids);\n this._loader.logOpen(`${extensionContext}`);\n for (let indexLOD = 0; indexLOD < nodeLODs.length; indexLOD++) {\n const nodeLOD = nodeLODs[indexLOD];\n if (indexLOD !== 0) {\n this._nodeIndexLOD = indexLOD;\n this._nodeSignalLODs[indexLOD] = this._nodeSignalLODs[indexLOD] || new Deferred();\n }\n const assignWrap = (babylonTransformNode) => {\n assign(babylonTransformNode);\n babylonTransformNode.setEnabled(false);\n };\n const promise = this._loader.loadNodeAsync(`/nodes/${nodeLOD.index}`, nodeLOD, assignWrap).then((babylonMesh) => {\n if (indexLOD !== 0) {\n // TODO: should not rely on _babylonTransformNode\n const previousNodeLOD = nodeLODs[indexLOD - 1];\n if (previousNodeLOD._babylonTransformNode) {\n this._disposeTransformNode(previousNodeLOD._babylonTransformNode);\n delete previousNodeLOD._babylonTransformNode;\n }\n }\n babylonMesh.setEnabled(true);\n return babylonMesh;\n });\n this._nodePromiseLODs[indexLOD] = this._nodePromiseLODs[indexLOD] || [];\n if (indexLOD === 0) {\n firstPromise = promise;\n }\n else {\n this._nodeIndexLOD = null;\n this._nodePromiseLODs[indexLOD].push(promise);\n }\n }\n this._loader.logClose();\n return firstPromise;\n });\n }\n /**\n * @internal\n */\n _loadMaterialAsync(context, material, babylonMesh, babylonDrawMode, assign) {\n // Don't load material LODs if already loading a node LOD.\n if (this._nodeIndexLOD) {\n return null;\n }\n return GLTFLoader.LoadExtensionAsync(context, material, this.name, (extensionContext, extension) => {\n let firstPromise;\n const materialLODs = this._getLODs(extensionContext, material, this._loader.gltf.materials, extension.ids);\n this._loader.logOpen(`${extensionContext}`);\n for (let indexLOD = 0; indexLOD < materialLODs.length; indexLOD++) {\n const materialLOD = materialLODs[indexLOD];\n if (indexLOD !== 0) {\n this._materialIndexLOD = indexLOD;\n }\n const promise = this._loader\n ._loadMaterialAsync(`/materials/${materialLOD.index}`, materialLOD, babylonMesh, babylonDrawMode, (babylonMaterial) => {\n if (indexLOD === 0) {\n assign(babylonMaterial);\n }\n })\n .then((babylonMaterial) => {\n if (indexLOD !== 0) {\n assign(babylonMaterial);\n // TODO: should not rely on _data\n const previousDataLOD = materialLODs[indexLOD - 1]._data;\n if (previousDataLOD[babylonDrawMode]) {\n this._disposeMaterials([previousDataLOD[babylonDrawMode].babylonMaterial]);\n delete previousDataLOD[babylonDrawMode];\n }\n }\n return babylonMaterial;\n });\n this._materialPromiseLODs[indexLOD] = this._materialPromiseLODs[indexLOD] || [];\n if (indexLOD === 0) {\n firstPromise = promise;\n }\n else {\n this._materialIndexLOD = null;\n this._materialPromiseLODs[indexLOD].push(promise);\n }\n }\n this._loader.logClose();\n return firstPromise;\n });\n }\n /**\n * @internal\n */\n _loadUriAsync(context, property, uri) {\n // Defer the loading of uris if loading a node or material LOD.\n if (this._nodeIndexLOD !== null) {\n this._loader.log(`deferred`);\n const previousIndexLOD = this._nodeIndexLOD - 1;\n this._nodeSignalLODs[previousIndexLOD] = this._nodeSignalLODs[previousIndexLOD] || new Deferred();\n return this._nodeSignalLODs[this._nodeIndexLOD - 1].promise.then(() => {\n return this._loader.loadUriAsync(context, property, uri);\n });\n }\n else if (this._materialIndexLOD !== null) {\n this._loader.log(`deferred`);\n const previousIndexLOD = this._materialIndexLOD - 1;\n this._materialSignalLODs[previousIndexLOD] = this._materialSignalLODs[previousIndexLOD] || new Deferred();\n return this._materialSignalLODs[previousIndexLOD].promise.then(() => {\n return this._loader.loadUriAsync(context, property, uri);\n });\n }\n return null;\n }\n /**\n * @internal\n */\n loadBufferAsync(context, buffer, byteOffset, byteLength) {\n if (this._loader.parent.useRangeRequests && !buffer.uri) {\n if (!this._loader.bin) {\n throw new Error(`${context}: Uri is missing or the binary glTF is missing its binary chunk`);\n }\n const loadAsync = (bufferLODs, indexLOD) => {\n const start = byteOffset;\n const end = start + byteLength - 1;\n let bufferLOD = bufferLODs[indexLOD];\n if (bufferLOD) {\n bufferLOD.start = Math.min(bufferLOD.start, start);\n bufferLOD.end = Math.max(bufferLOD.end, end);\n }\n else {\n bufferLOD = { start: start, end: end, loaded: new Deferred() };\n bufferLODs[indexLOD] = bufferLOD;\n }\n return bufferLOD.loaded.promise.then((data) => {\n return new Uint8Array(data.buffer, data.byteOffset + byteOffset - bufferLOD.start, byteLength);\n });\n };\n this._loader.log(`deferred`);\n if (this._nodeIndexLOD !== null) {\n return loadAsync(this._nodeBufferLODs, this._nodeIndexLOD);\n }\n else if (this._materialIndexLOD !== null) {\n return loadAsync(this._materialBufferLODs, this._materialIndexLOD);\n }\n else {\n return loadAsync(this._bufferLODs, 0);\n }\n }\n return null;\n }\n _loadBufferLOD(bufferLODs, indexLOD) {\n const bufferLOD = bufferLODs[indexLOD];\n if (bufferLOD) {\n this._loader.log(`Loading buffer range [${bufferLOD.start}-${bufferLOD.end}]`);\n this._loader.bin.readAsync(bufferLOD.start, bufferLOD.end - bufferLOD.start + 1).then((data) => {\n bufferLOD.loaded.resolve(data);\n }, (error) => {\n bufferLOD.loaded.reject(error);\n });\n }\n }\n /**\n * @returns an array of LOD properties from lowest to highest.\n * @param context\n * @param property\n * @param array\n * @param ids\n */\n _getLODs(context, property, array, ids) {\n if (this.maxLODsToLoad <= 0) {\n throw new Error(\"maxLODsToLoad must be greater than zero\");\n }\n const properties = [];\n for (let i = ids.length - 1; i >= 0; i--) {\n properties.push(ArrayItem.Get(`${context}/ids/${ids[i]}`, array, ids[i]));\n if (properties.length === this.maxLODsToLoad) {\n return properties;\n }\n }\n properties.push(property);\n return properties;\n }\n _disposeTransformNode(babylonTransformNode) {\n const babylonMaterials = [];\n const babylonMaterial = babylonTransformNode.material;\n if (babylonMaterial) {\n babylonMaterials.push(babylonMaterial);\n }\n for (const babylonMesh of babylonTransformNode.getChildMeshes()) {\n if (babylonMesh.material) {\n babylonMaterials.push(babylonMesh.material);\n }\n }\n babylonTransformNode.dispose();\n const babylonMaterialsToDispose = babylonMaterials.filter((babylonMaterial) => this._loader.babylonScene.meshes.every((mesh) => mesh.material != babylonMaterial));\n this._disposeMaterials(babylonMaterialsToDispose);\n }\n _disposeMaterials(babylonMaterials) {\n const babylonTextures = {};\n for (const babylonMaterial of babylonMaterials) {\n for (const babylonTexture of babylonMaterial.getActiveTextures()) {\n babylonTextures[babylonTexture.uniqueId] = babylonTexture;\n }\n babylonMaterial.dispose();\n }\n for (const uniqueId in babylonTextures) {\n for (const babylonMaterial of this._loader.babylonScene.materials) {\n if (babylonMaterial.hasTexture(babylonTextures[uniqueId])) {\n delete babylonTextures[uniqueId];\n }\n }\n }\n for (const uniqueId in babylonTextures) {\n babylonTextures[uniqueId].dispose();\n }\n }\n}\nunregisterGLTFExtension(NAME);\nregisterGLTFExtension(NAME, true, (loader) => new MSFT_lod(loader));\n//# sourceMappingURL=MSFT_lod.js.map"],"names":["NAME","MSFT_lod","constructor","loader","this","name","order","maxLODsToLoad","onNodeLODsLoadedObservable","Observable","onMaterialLODsLoadedObservable","_bufferLODs","Array","_nodeIndexLOD","_nodeSignalLODs","_nodePromiseLODs","_nodeBufferLODs","_materialIndexLOD","_materialSignalLODs","_materialPromiseLODs","_materialBufferLODs","_loader","parent","extensionOptions","enabled","isExtensionUsed","dispose","length","clear","onReady","indexLOD","promise","Promise","all","then","endPerformanceCounter","log","notifyObservers","startPerformanceCounter","_loadBufferLOD","resolve","_completePromises","push","loadSceneAsync","context","scene","loadNodeAsync","node","assign","GLTFLoader","LoadExtensionAsync","extensionContext","extension","firstPromise","nodeLODs","_getLODs","gltf","nodes","ids","logOpen","nodeLOD","Deferred","assignWrap","babylonTransformNode","setEnabled","index","babylonMesh","previousNodeLOD","_babylonTransformNode","_disposeTransformNode","logClose","_loadMaterialAsync","material","babylonDrawMode","materialLODs","materials","materialLOD","babylonMaterial","previousDataLOD","_data","_disposeMaterials","_loadUriAsync","property","uri","previousIndexLOD","loadUriAsync","loadBufferAsync","buffer","byteOffset","byteLength","useRangeRequests","bin","Error","loadAsync","bufferLODs","start","end","bufferLOD","Math","min","max","loaded","data","Uint8Array","readAsync","error","reject","array","properties","i","ArrayItem","Get","babylonMaterials","getChildMeshes","babylonMaterialsToDispose","filter","babylonScene","meshes","every","mesh","babylonTextures","babylonTexture","getActiveTextures","uniqueId","hasTexture","unregisterGLTFExtension","registerGLTFExtension"],"mappings":"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"}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{a$ as e,aQ as r,aR as s}from"./index-B5KLkjYm.esm.min.js";import{G as t}from"./glTFLoader-iKlvKEG-.esm.min.js";import"./rawTexture-CNxyCiVq.esm.min.js";import"./assetContainer-D7C3a-Xn.esm.min.js";import"./glTFLoaderAnimation-DnTkRibM.esm.min.js";const i="MSFT_minecraftMesh";class a{constructor(e){this.name=i,this._loader=e,this.enabled=this._loader.isExtensionUsed(i)}dispose(){this._loader=null}loadMaterialPropertiesAsync(r,s,i){return t.LoadExtraAsync(r,s,this.name,((t,a)=>{if(a){if(!(i instanceof e))throw new Error(`${t}: Material type not supported`);const a=this._loader.loadMaterialPropertiesAsync(r,s,i);return i.needAlphaBlending()&&(i.forceDepthWrite=!0,i.separateCullingPass=!0),i.backFaceCulling=i.forceDepthWrite,i.twoSidedLighting=!0,a}return null}))}}r(i),s(i,!0,(e=>new a(e)));export{a as MSFT_minecraftMesh};
|
|
2
|
-
//# sourceMappingURL=MSFT_minecraftMesh-jASzndfE.esm.min.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"MSFT_minecraftMesh-jASzndfE.esm.min.js","sources":["../../../../../dev/loaders/dist/glTF/2.0/Extensions/MSFT_minecraftMesh.js"],"sourcesContent":["import { PBRMaterial } from \"core/Materials/PBR/pbrMaterial\";\nimport { GLTFLoader } from \"../glTFLoader\";\nimport { registerGLTFExtension, unregisterGLTFExtension } from \"../glTFLoaderExtensionRegistry\";\nconst NAME = \"MSFT_minecraftMesh\";\n/** @internal */\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport class MSFT_minecraftMesh {\n /** @internal */\n constructor(loader) {\n /** @internal */\n this.name = NAME;\n this._loader = loader;\n this.enabled = this._loader.isExtensionUsed(NAME);\n }\n /** @internal */\n dispose() {\n this._loader = null;\n }\n /** @internal */\n loadMaterialPropertiesAsync(context, material, babylonMaterial) {\n return GLTFLoader.LoadExtraAsync(context, material, this.name, (extraContext, extra) => {\n if (extra) {\n if (!(babylonMaterial instanceof PBRMaterial)) {\n throw new Error(`${extraContext}: Material type not supported`);\n }\n const promise = this._loader.loadMaterialPropertiesAsync(context, material, babylonMaterial);\n if (babylonMaterial.needAlphaBlending()) {\n babylonMaterial.forceDepthWrite = true;\n babylonMaterial.separateCullingPass = true;\n }\n babylonMaterial.backFaceCulling = babylonMaterial.forceDepthWrite;\n babylonMaterial.twoSidedLighting = true;\n return promise;\n }\n return null;\n });\n }\n}\nunregisterGLTFExtension(NAME);\nregisterGLTFExtension(NAME, true, (loader) => new MSFT_minecraftMesh(loader));\n//# sourceMappingURL=MSFT_minecraftMesh.js.map"],"names":["NAME","MSFT_minecraftMesh","constructor","loader","this","name","_loader","enabled","isExtensionUsed","dispose","loadMaterialPropertiesAsync","context","material","babylonMaterial","GLTFLoader","LoadExtraAsync","extraContext","extra","PBRMaterial","Error","promise","needAlphaBlending","forceDepthWrite","separateCullingPass","backFaceCulling","twoSidedLighting","unregisterGLTFExtension","registerGLTFExtension"],"mappings":"8PAGA,MAAMA,EAAO,qBAGN,MAAMC,EAET,WAAAC,CAAYC,GAERC,KAAKC,KAAOL,EACZI,KAAKE,QAAUH,EACfC,KAAKG,QAAUH,KAAKE,QAAQE,gBAAgBR,EACpD,CAEI,OAAAS,GACIL,KAAKE,QAAU,IACvB,CAEI,2BAAAI,CAA4BC,EAASC,EAAUC,GAC3C,OAAOC,EAAWC,eAAeJ,EAASC,EAAUR,KAAKC,MAAM,CAACW,EAAcC,KAC1E,GAAIA,EAAO,CACP,KAAMJ,aAA2BK,GAC7B,MAAM,IAAIC,MAAM,GAAGH,kCAEvB,MAAMI,EAAUhB,KAAKE,QAAQI,4BAA4BC,EAASC,EAAUC,GAO5E,OANIA,EAAgBQ,sBAChBR,EAAgBS,iBAAkB,EAClCT,EAAgBU,qBAAsB,GAE1CV,EAAgBW,gBAAkBX,EAAgBS,gBAClDT,EAAgBY,kBAAmB,EAC5BL,CACvB,CACY,OAAO,IAAI,GAEvB,EAEAM,EAAwB1B,GACxB2B,EAAsB3B,GAAM,GAAOG,GAAW,IAAIF,EAAmBE"}
|
|
@@ -1,46 +0,0 @@
|
|
|
1
|
-
import { a$ as PBRMaterial, aQ as unregisterGLTFExtension, aR as registerGLTFExtension } from './index-5L5wXyrx.esm.js';
|
|
2
|
-
import { G as GLTFLoader } from './glTFLoader-Qw5JObwf.esm.js';
|
|
3
|
-
import './rawTexture-BVf9vm87.esm.js';
|
|
4
|
-
import './assetContainer-BzlRl_4x.esm.js';
|
|
5
|
-
import './glTFLoaderAnimation-BCUZthxT.esm.js';
|
|
6
|
-
|
|
7
|
-
const NAME = "MSFT_minecraftMesh";
|
|
8
|
-
/** @internal */
|
|
9
|
-
// eslint-disable-next-line @typescript-eslint/naming-convention
|
|
10
|
-
class MSFT_minecraftMesh {
|
|
11
|
-
/** @internal */
|
|
12
|
-
constructor(loader) {
|
|
13
|
-
/** @internal */
|
|
14
|
-
this.name = NAME;
|
|
15
|
-
this._loader = loader;
|
|
16
|
-
this.enabled = this._loader.isExtensionUsed(NAME);
|
|
17
|
-
}
|
|
18
|
-
/** @internal */
|
|
19
|
-
dispose() {
|
|
20
|
-
this._loader = null;
|
|
21
|
-
}
|
|
22
|
-
/** @internal */
|
|
23
|
-
loadMaterialPropertiesAsync(context, material, babylonMaterial) {
|
|
24
|
-
return GLTFLoader.LoadExtraAsync(context, material, this.name, (extraContext, extra) => {
|
|
25
|
-
if (extra) {
|
|
26
|
-
if (!(babylonMaterial instanceof PBRMaterial)) {
|
|
27
|
-
throw new Error(`${extraContext}: Material type not supported`);
|
|
28
|
-
}
|
|
29
|
-
const promise = this._loader.loadMaterialPropertiesAsync(context, material, babylonMaterial);
|
|
30
|
-
if (babylonMaterial.needAlphaBlending()) {
|
|
31
|
-
babylonMaterial.forceDepthWrite = true;
|
|
32
|
-
babylonMaterial.separateCullingPass = true;
|
|
33
|
-
}
|
|
34
|
-
babylonMaterial.backFaceCulling = babylonMaterial.forceDepthWrite;
|
|
35
|
-
babylonMaterial.twoSidedLighting = true;
|
|
36
|
-
return promise;
|
|
37
|
-
}
|
|
38
|
-
return null;
|
|
39
|
-
});
|
|
40
|
-
}
|
|
41
|
-
}
|
|
42
|
-
unregisterGLTFExtension(NAME);
|
|
43
|
-
registerGLTFExtension(NAME, true, (loader) => new MSFT_minecraftMesh(loader));
|
|
44
|
-
|
|
45
|
-
export { MSFT_minecraftMesh };
|
|
46
|
-
//# sourceMappingURL=MSFT_minecraftMesh-mKnNUrKI.esm.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"MSFT_minecraftMesh-mKnNUrKI.esm.js","sources":["../../../../../dev/loaders/dist/glTF/2.0/Extensions/MSFT_minecraftMesh.js"],"sourcesContent":["import { PBRMaterial } from \"core/Materials/PBR/pbrMaterial\";\nimport { GLTFLoader } from \"../glTFLoader\";\nimport { registerGLTFExtension, unregisterGLTFExtension } from \"../glTFLoaderExtensionRegistry\";\nconst NAME = \"MSFT_minecraftMesh\";\n/** @internal */\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport class MSFT_minecraftMesh {\n /** @internal */\n constructor(loader) {\n /** @internal */\n this.name = NAME;\n this._loader = loader;\n this.enabled = this._loader.isExtensionUsed(NAME);\n }\n /** @internal */\n dispose() {\n this._loader = null;\n }\n /** @internal */\n loadMaterialPropertiesAsync(context, material, babylonMaterial) {\n return GLTFLoader.LoadExtraAsync(context, material, this.name, (extraContext, extra) => {\n if (extra) {\n if (!(babylonMaterial instanceof PBRMaterial)) {\n throw new Error(`${extraContext}: Material type not supported`);\n }\n const promise = this._loader.loadMaterialPropertiesAsync(context, material, babylonMaterial);\n if (babylonMaterial.needAlphaBlending()) {\n babylonMaterial.forceDepthWrite = true;\n babylonMaterial.separateCullingPass = true;\n }\n babylonMaterial.backFaceCulling = babylonMaterial.forceDepthWrite;\n babylonMaterial.twoSidedLighting = true;\n return promise;\n }\n return null;\n });\n }\n}\nunregisterGLTFExtension(NAME);\nregisterGLTFExtension(NAME, true, (loader) => new MSFT_minecraftMesh(loader));\n//# sourceMappingURL=MSFT_minecraftMesh.js.map"],"names":[],"mappings":";;;;;;AAGA,MAAM,IAAI,GAAG,oBAAoB;AACjC;AACA;AACO,MAAM,kBAAkB,CAAC;AAChC;AACA,IAAI,WAAW,CAAC,MAAM,EAAE;AACxB;AACA,QAAQ,IAAI,CAAC,IAAI,GAAG,IAAI;AACxB,QAAQ,IAAI,CAAC,OAAO,GAAG,MAAM;AAC7B,QAAQ,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,IAAI,CAAC;AACzD;AACA;AACA,IAAI,OAAO,GAAG;AACd,QAAQ,IAAI,CAAC,OAAO,GAAG,IAAI;AAC3B;AACA;AACA,IAAI,2BAA2B,CAAC,OAAO,EAAE,QAAQ,EAAE,eAAe,EAAE;AACpE,QAAQ,OAAO,UAAU,CAAC,cAAc,CAAC,OAAO,EAAE,QAAQ,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,YAAY,EAAE,KAAK,KAAK;AAChG,YAAY,IAAI,KAAK,EAAE;AACvB,gBAAgB,IAAI,EAAE,eAAe,YAAY,WAAW,CAAC,EAAE;AAC/D,oBAAoB,MAAM,IAAI,KAAK,CAAC,CAAC,EAAE,YAAY,CAAC,6BAA6B,CAAC,CAAC;AACnF;AACA,gBAAgB,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,2BAA2B,CAAC,OAAO,EAAE,QAAQ,EAAE,eAAe,CAAC;AAC5G,gBAAgB,IAAI,eAAe,CAAC,iBAAiB,EAAE,EAAE;AACzD,oBAAoB,eAAe,CAAC,eAAe,GAAG,IAAI;AAC1D,oBAAoB,eAAe,CAAC,mBAAmB,GAAG,IAAI;AAC9D;AACA,gBAAgB,eAAe,CAAC,eAAe,GAAG,eAAe,CAAC,eAAe;AACjF,gBAAgB,eAAe,CAAC,gBAAgB,GAAG,IAAI;AACvD,gBAAgB,OAAO,OAAO;AAC9B;AACA,YAAY,OAAO,IAAI;AACvB,SAAS,CAAC;AACV;AACA;AACA,uBAAuB,CAAC,IAAI,CAAC;AAC7B,qBAAqB,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,MAAM,KAAK,IAAI,kBAAkB,CAAC,MAAM,CAAC,CAAC;;;;"}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{a$ as e,aQ as r,aR as o}from"./index-B5KLkjYm.esm.min.js";import{G as t}from"./glTFLoader-iKlvKEG-.esm.min.js";import"./rawTexture-CNxyCiVq.esm.min.js";import"./assetContainer-D7C3a-Xn.esm.min.js";import"./glTFLoaderAnimation-DnTkRibM.esm.min.js";const s="MSFT_sRGBFactors";class i{constructor(e){this.name=s,this._loader=e,this.enabled=this._loader.isExtensionUsed(s)}dispose(){this._loader=null}loadMaterialPropertiesAsync(r,o,s){return t.LoadExtraAsync(r,o,this.name,((t,i)=>{if(i){if(!(s instanceof e))throw new Error(`${t}: Material type not supported`);const i=this._loader.loadMaterialPropertiesAsync(r,o,s),a=s.getScene().getEngine().useExactSrgbConversions;return s.albedoTexture||s.albedoColor.toLinearSpaceToRef(s.albedoColor,a),s.reflectivityTexture||s.reflectivityColor.toLinearSpaceToRef(s.reflectivityColor,a),i}return null}))}}r(s),o(s,!0,(e=>new i(e)));export{i as MSFT_sRGBFactors};
|
|
2
|
-
//# sourceMappingURL=MSFT_sRGBFactors-B1Bk1U5N.esm.min.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"MSFT_sRGBFactors-B1Bk1U5N.esm.min.js","sources":["../../../../../dev/loaders/dist/glTF/2.0/Extensions/MSFT_sRGBFactors.js"],"sourcesContent":["import { PBRMaterial } from \"core/Materials/PBR/pbrMaterial\";\nimport { GLTFLoader } from \"../glTFLoader\";\nimport { registerGLTFExtension, unregisterGLTFExtension } from \"../glTFLoaderExtensionRegistry\";\nconst NAME = \"MSFT_sRGBFactors\";\n/** @internal */\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport class MSFT_sRGBFactors {\n /** @internal */\n constructor(loader) {\n /** @internal */\n this.name = NAME;\n this._loader = loader;\n this.enabled = this._loader.isExtensionUsed(NAME);\n }\n /** @internal */\n dispose() {\n this._loader = null;\n }\n /** @internal */\n loadMaterialPropertiesAsync(context, material, babylonMaterial) {\n return GLTFLoader.LoadExtraAsync(context, material, this.name, (extraContext, extra) => {\n if (extra) {\n if (!(babylonMaterial instanceof PBRMaterial)) {\n throw new Error(`${extraContext}: Material type not supported`);\n }\n const promise = this._loader.loadMaterialPropertiesAsync(context, material, babylonMaterial);\n const useExactSrgbConversions = babylonMaterial.getScene().getEngine().useExactSrgbConversions;\n if (!babylonMaterial.albedoTexture) {\n babylonMaterial.albedoColor.toLinearSpaceToRef(babylonMaterial.albedoColor, useExactSrgbConversions);\n }\n if (!babylonMaterial.reflectivityTexture) {\n babylonMaterial.reflectivityColor.toLinearSpaceToRef(babylonMaterial.reflectivityColor, useExactSrgbConversions);\n }\n return promise;\n }\n return null;\n });\n }\n}\nunregisterGLTFExtension(NAME);\nregisterGLTFExtension(NAME, true, (loader) => new MSFT_sRGBFactors(loader));\n//# sourceMappingURL=MSFT_sRGBFactors.js.map"],"names":["NAME","MSFT_sRGBFactors","constructor","loader","this","name","_loader","enabled","isExtensionUsed","dispose","loadMaterialPropertiesAsync","context","material","babylonMaterial","GLTFLoader","LoadExtraAsync","extraContext","extra","PBRMaterial","Error","promise","useExactSrgbConversions","getScene","getEngine","albedoTexture","albedoColor","toLinearSpaceToRef","reflectivityTexture","reflectivityColor","unregisterGLTFExtension","registerGLTFExtension"],"mappings":"8PAGA,MAAMA,EAAO,mBAGN,MAAMC,EAET,WAAAC,CAAYC,GAERC,KAAKC,KAAOL,EACZI,KAAKE,QAAUH,EACfC,KAAKG,QAAUH,KAAKE,QAAQE,gBAAgBR,EACpD,CAEI,OAAAS,GACIL,KAAKE,QAAU,IACvB,CAEI,2BAAAI,CAA4BC,EAASC,EAAUC,GAC3C,OAAOC,EAAWC,eAAeJ,EAASC,EAAUR,KAAKC,MAAM,CAACW,EAAcC,KAC1E,GAAIA,EAAO,CACP,KAAMJ,aAA2BK,GAC7B,MAAM,IAAIC,MAAM,GAAGH,kCAEvB,MAAMI,EAAUhB,KAAKE,QAAQI,4BAA4BC,EAASC,EAAUC,GACtEQ,EAA0BR,EAAgBS,WAAWC,YAAYF,wBAOvE,OANKR,EAAgBW,eACjBX,EAAgBY,YAAYC,mBAAmBb,EAAgBY,YAAaJ,GAE3ER,EAAgBc,qBACjBd,EAAgBe,kBAAkBF,mBAAmBb,EAAgBe,kBAAmBP,GAErFD,CACvB,CACY,OAAO,IAAI,GAEvB,EAEAS,EAAwB7B,GACxB8B,EAAsB9B,GAAM,GAAOG,GAAW,IAAIF,EAAiBE"}
|
|
@@ -1,47 +0,0 @@
|
|
|
1
|
-
import { a$ as PBRMaterial, aQ as unregisterGLTFExtension, aR as registerGLTFExtension } from './index-5L5wXyrx.esm.js';
|
|
2
|
-
import { G as GLTFLoader } from './glTFLoader-Qw5JObwf.esm.js';
|
|
3
|
-
import './rawTexture-BVf9vm87.esm.js';
|
|
4
|
-
import './assetContainer-BzlRl_4x.esm.js';
|
|
5
|
-
import './glTFLoaderAnimation-BCUZthxT.esm.js';
|
|
6
|
-
|
|
7
|
-
const NAME = "MSFT_sRGBFactors";
|
|
8
|
-
/** @internal */
|
|
9
|
-
// eslint-disable-next-line @typescript-eslint/naming-convention
|
|
10
|
-
class MSFT_sRGBFactors {
|
|
11
|
-
/** @internal */
|
|
12
|
-
constructor(loader) {
|
|
13
|
-
/** @internal */
|
|
14
|
-
this.name = NAME;
|
|
15
|
-
this._loader = loader;
|
|
16
|
-
this.enabled = this._loader.isExtensionUsed(NAME);
|
|
17
|
-
}
|
|
18
|
-
/** @internal */
|
|
19
|
-
dispose() {
|
|
20
|
-
this._loader = null;
|
|
21
|
-
}
|
|
22
|
-
/** @internal */
|
|
23
|
-
loadMaterialPropertiesAsync(context, material, babylonMaterial) {
|
|
24
|
-
return GLTFLoader.LoadExtraAsync(context, material, this.name, (extraContext, extra) => {
|
|
25
|
-
if (extra) {
|
|
26
|
-
if (!(babylonMaterial instanceof PBRMaterial)) {
|
|
27
|
-
throw new Error(`${extraContext}: Material type not supported`);
|
|
28
|
-
}
|
|
29
|
-
const promise = this._loader.loadMaterialPropertiesAsync(context, material, babylonMaterial);
|
|
30
|
-
const useExactSrgbConversions = babylonMaterial.getScene().getEngine().useExactSrgbConversions;
|
|
31
|
-
if (!babylonMaterial.albedoTexture) {
|
|
32
|
-
babylonMaterial.albedoColor.toLinearSpaceToRef(babylonMaterial.albedoColor, useExactSrgbConversions);
|
|
33
|
-
}
|
|
34
|
-
if (!babylonMaterial.reflectivityTexture) {
|
|
35
|
-
babylonMaterial.reflectivityColor.toLinearSpaceToRef(babylonMaterial.reflectivityColor, useExactSrgbConversions);
|
|
36
|
-
}
|
|
37
|
-
return promise;
|
|
38
|
-
}
|
|
39
|
-
return null;
|
|
40
|
-
});
|
|
41
|
-
}
|
|
42
|
-
}
|
|
43
|
-
unregisterGLTFExtension(NAME);
|
|
44
|
-
registerGLTFExtension(NAME, true, (loader) => new MSFT_sRGBFactors(loader));
|
|
45
|
-
|
|
46
|
-
export { MSFT_sRGBFactors };
|
|
47
|
-
//# sourceMappingURL=MSFT_sRGBFactors-IZnSmmDU.esm.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"MSFT_sRGBFactors-IZnSmmDU.esm.js","sources":["../../../../../dev/loaders/dist/glTF/2.0/Extensions/MSFT_sRGBFactors.js"],"sourcesContent":["import { PBRMaterial } from \"core/Materials/PBR/pbrMaterial\";\nimport { GLTFLoader } from \"../glTFLoader\";\nimport { registerGLTFExtension, unregisterGLTFExtension } from \"../glTFLoaderExtensionRegistry\";\nconst NAME = \"MSFT_sRGBFactors\";\n/** @internal */\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport class MSFT_sRGBFactors {\n /** @internal */\n constructor(loader) {\n /** @internal */\n this.name = NAME;\n this._loader = loader;\n this.enabled = this._loader.isExtensionUsed(NAME);\n }\n /** @internal */\n dispose() {\n this._loader = null;\n }\n /** @internal */\n loadMaterialPropertiesAsync(context, material, babylonMaterial) {\n return GLTFLoader.LoadExtraAsync(context, material, this.name, (extraContext, extra) => {\n if (extra) {\n if (!(babylonMaterial instanceof PBRMaterial)) {\n throw new Error(`${extraContext}: Material type not supported`);\n }\n const promise = this._loader.loadMaterialPropertiesAsync(context, material, babylonMaterial);\n const useExactSrgbConversions = babylonMaterial.getScene().getEngine().useExactSrgbConversions;\n if (!babylonMaterial.albedoTexture) {\n babylonMaterial.albedoColor.toLinearSpaceToRef(babylonMaterial.albedoColor, useExactSrgbConversions);\n }\n if (!babylonMaterial.reflectivityTexture) {\n babylonMaterial.reflectivityColor.toLinearSpaceToRef(babylonMaterial.reflectivityColor, useExactSrgbConversions);\n }\n return promise;\n }\n return null;\n });\n }\n}\nunregisterGLTFExtension(NAME);\nregisterGLTFExtension(NAME, true, (loader) => new MSFT_sRGBFactors(loader));\n//# sourceMappingURL=MSFT_sRGBFactors.js.map"],"names":[],"mappings":";;;;;;AAGA,MAAM,IAAI,GAAG,kBAAkB;AAC/B;AACA;AACO,MAAM,gBAAgB,CAAC;AAC9B;AACA,IAAI,WAAW,CAAC,MAAM,EAAE;AACxB;AACA,QAAQ,IAAI,CAAC,IAAI,GAAG,IAAI;AACxB,QAAQ,IAAI,CAAC,OAAO,GAAG,MAAM;AAC7B,QAAQ,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,IAAI,CAAC;AACzD;AACA;AACA,IAAI,OAAO,GAAG;AACd,QAAQ,IAAI,CAAC,OAAO,GAAG,IAAI;AAC3B;AACA;AACA,IAAI,2BAA2B,CAAC,OAAO,EAAE,QAAQ,EAAE,eAAe,EAAE;AACpE,QAAQ,OAAO,UAAU,CAAC,cAAc,CAAC,OAAO,EAAE,QAAQ,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,YAAY,EAAE,KAAK,KAAK;AAChG,YAAY,IAAI,KAAK,EAAE;AACvB,gBAAgB,IAAI,EAAE,eAAe,YAAY,WAAW,CAAC,EAAE;AAC/D,oBAAoB,MAAM,IAAI,KAAK,CAAC,CAAC,EAAE,YAAY,CAAC,6BAA6B,CAAC,CAAC;AACnF;AACA,gBAAgB,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,2BAA2B,CAAC,OAAO,EAAE,QAAQ,EAAE,eAAe,CAAC;AAC5G,gBAAgB,MAAM,uBAAuB,GAAG,eAAe,CAAC,QAAQ,EAAE,CAAC,SAAS,EAAE,CAAC,uBAAuB;AAC9G,gBAAgB,IAAI,CAAC,eAAe,CAAC,aAAa,EAAE;AACpD,oBAAoB,eAAe,CAAC,WAAW,CAAC,kBAAkB,CAAC,eAAe,CAAC,WAAW,EAAE,uBAAuB,CAAC;AACxH;AACA,gBAAgB,IAAI,CAAC,eAAe,CAAC,mBAAmB,EAAE;AAC1D,oBAAoB,eAAe,CAAC,iBAAiB,CAAC,kBAAkB,CAAC,eAAe,CAAC,iBAAiB,EAAE,uBAAuB,CAAC;AACpI;AACA,gBAAgB,OAAO,OAAO;AAC9B;AACA,YAAY,OAAO,IAAI;AACvB,SAAS,CAAC;AACV;AACA;AACA,uBAAuB,CAAC,IAAI,CAAC;AAC7B,qBAAqB,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,MAAM,KAAK,IAAI,gBAAgB,CAAC,MAAM,CAAC,CAAC;;;;"}
|