@babylonjs/viewer 7.25.0-alpha → 7.25.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/configuration/configuration.d.ts +107 -0
- package/configuration/configuration.js +16 -0
- package/configuration/configuration.js.map +1 -0
- package/configuration/configurationCompatibility.d.ts +8 -0
- package/configuration/configurationCompatibility.js +66 -0
- package/configuration/configurationCompatibility.js.map +1 -0
- package/configuration/configurationContainer.d.ts +10 -0
- package/configuration/configurationContainer.js +10 -0
- package/configuration/configurationContainer.js.map +1 -0
- package/configuration/globals.d.ts +6 -0
- package/configuration/globals.js +18 -0
- package/configuration/globals.js.map +1 -0
- package/configuration/index.d.ts +2 -0
- package/configuration/index.js +4 -0
- package/configuration/index.js.map +1 -0
- package/configuration/interfaces/cameraConfiguration.d.ts +31 -0
- package/configuration/interfaces/cameraConfiguration.js +2 -0
- package/configuration/interfaces/cameraConfiguration.js.map +1 -0
- package/configuration/interfaces/colorGradingConfiguration.d.ts +81 -0
- package/configuration/interfaces/colorGradingConfiguration.js +2 -0
- package/configuration/interfaces/colorGradingConfiguration.js.map +1 -0
- package/configuration/interfaces/defaultRenderingPipelineConfiguration.d.ts +20 -0
- package/configuration/interfaces/defaultRenderingPipelineConfiguration.js +2 -0
- package/configuration/interfaces/defaultRenderingPipelineConfiguration.js.map +1 -0
- package/configuration/interfaces/environmentMapConfiguration.d.ts +22 -0
- package/configuration/interfaces/environmentMapConfiguration.js +2 -0
- package/configuration/interfaces/environmentMapConfiguration.js.map +1 -0
- package/configuration/interfaces/groundConfiguration.d.ts +24 -0
- package/configuration/interfaces/groundConfiguration.js +2 -0
- package/configuration/interfaces/groundConfiguration.js.map +1 -0
- package/configuration/interfaces/imageProcessingConfiguration.d.ts +45 -0
- package/configuration/interfaces/imageProcessingConfiguration.js +2 -0
- package/configuration/interfaces/imageProcessingConfiguration.js.map +1 -0
- package/configuration/interfaces/index.d.ts +15 -0
- package/configuration/interfaces/index.js +16 -0
- package/configuration/interfaces/index.js.map +1 -0
- package/configuration/interfaces/lightConfiguration.d.ts +60 -0
- package/configuration/interfaces/lightConfiguration.js +2 -0
- package/configuration/interfaces/lightConfiguration.js.map +1 -0
- package/configuration/interfaces/modelAnimationConfiguration.d.ts +26 -0
- package/configuration/interfaces/modelAnimationConfiguration.js +2 -0
- package/configuration/interfaces/modelAnimationConfiguration.js.map +1 -0
- package/configuration/interfaces/modelConfiguration.d.ts +65 -0
- package/configuration/interfaces/modelConfiguration.js +2 -0
- package/configuration/interfaces/modelConfiguration.js.map +1 -0
- package/configuration/interfaces/observersConfiguration.d.ts +5 -0
- package/configuration/interfaces/observersConfiguration.js +2 -0
- package/configuration/interfaces/observersConfiguration.js.map +1 -0
- package/configuration/interfaces/sceneConfiguration.d.ts +48 -0
- package/configuration/interfaces/sceneConfiguration.js +2 -0
- package/configuration/interfaces/sceneConfiguration.js.map +1 -0
- package/configuration/interfaces/sceneOptimizerConfiguration.d.ts +23 -0
- package/configuration/interfaces/sceneOptimizerConfiguration.js +2 -0
- package/configuration/interfaces/sceneOptimizerConfiguration.js.map +1 -0
- package/configuration/interfaces/skyboxConfiguration.d.ts +21 -0
- package/configuration/interfaces/skyboxConfiguration.js +2 -0
- package/configuration/interfaces/skyboxConfiguration.js.map +1 -0
- package/configuration/interfaces/templateConfiguration.d.ts +67 -0
- package/configuration/interfaces/templateConfiguration.js +2 -0
- package/configuration/interfaces/templateConfiguration.js.map +1 -0
- package/configuration/interfaces/vrConfiguration.d.ts +16 -0
- package/configuration/interfaces/vrConfiguration.js +2 -0
- package/configuration/interfaces/vrConfiguration.js.map +1 -0
- package/configuration/loader.d.ts +4 -0
- package/configuration/loader.js +17 -0
- package/configuration/loader.js.map +1 -0
- package/configuration/mappers.d.ts +43 -0
- package/configuration/mappers.js +192 -0
- package/configuration/mappers.js.map +1 -0
- package/configuration/renderOnlyLoader.d.ts +33 -0
- package/configuration/renderOnlyLoader.js +162 -0
- package/configuration/renderOnlyLoader.js.map +1 -0
- package/configuration/types/default.d.ts +6 -0
- package/configuration/types/default.js +121 -0
- package/configuration/types/default.js.map +1 -0
- package/configuration/types/environmentMap.d.ts +5 -0
- package/configuration/types/environmentMap.js +14 -0
- package/configuration/types/environmentMap.js.map +1 -0
- package/configuration/types/extended.d.ts +6 -0
- package/configuration/types/extended.js +317 -0
- package/configuration/types/extended.js.map +1 -0
- package/configuration/types/index.d.ts +14 -0
- package/configuration/types/index.js +51 -0
- package/configuration/types/index.js.map +1 -0
- package/configuration/types/minimal.d.ts +6 -0
- package/configuration/types/minimal.js +43 -0
- package/configuration/types/minimal.js.map +1 -0
- package/configuration/types/renderOnlyDefault.d.ts +30 -0
- package/configuration/types/renderOnlyDefault.js +31 -0
- package/configuration/types/renderOnlyDefault.js.map +1 -0
- package/configuration/types/shadowLight.d.ts +9 -0
- package/configuration/types/shadowLight.js +64 -0
- package/configuration/types/shadowLight.js.map +1 -0
- package/helper/index.d.ts +29 -0
- package/helper/index.js +66 -0
- package/helper/index.js.map +1 -0
- package/index.d.ts +30 -0
- package/index.js +46 -0
- package/index.js.map +1 -0
- package/initializer.d.ts +11 -0
- package/initializer.js +35 -0
- package/initializer.js.map +1 -0
- package/interfaces.d.ts +5 -0
- package/interfaces.js +7 -0
- package/interfaces.js.map +1 -0
- package/labs/environmentSerializer.d.ts +126 -0
- package/labs/environmentSerializer.js +191 -0
- package/labs/environmentSerializer.js.map +1 -0
- package/labs/texture.d.ts +183 -0
- package/labs/texture.js +350 -0
- package/labs/texture.js.map +1 -0
- package/labs/viewerLabs.d.ts +51 -0
- package/labs/viewerLabs.js +134 -0
- package/labs/viewerLabs.js.map +1 -0
- package/loader/modelLoader.d.ts +56 -0
- package/loader/modelLoader.js +199 -0
- package/loader/modelLoader.js.map +1 -0
- package/loader/plugins/applyMaterialConfig.d.ts +12 -0
- package/loader/plugins/applyMaterialConfig.js +16 -0
- package/loader/plugins/applyMaterialConfig.js.map +1 -0
- package/loader/plugins/extendedMaterialLoaderPlugin.d.ts +9 -0
- package/loader/plugins/extendedMaterialLoaderPlugin.js +16 -0
- package/loader/plugins/extendedMaterialLoaderPlugin.js.map +1 -0
- package/loader/plugins/index.d.ts +19 -0
- package/loader/plugins/index.js +44 -0
- package/loader/plugins/index.js.map +1 -0
- package/loader/plugins/loaderPlugin.d.ts +24 -0
- package/loader/plugins/loaderPlugin.js +2 -0
- package/loader/plugins/loaderPlugin.js.map +1 -0
- package/loader/plugins/msftLodLoaderPlugin.d.ts +12 -0
- package/loader/plugins/msftLodLoaderPlugin.js +21 -0
- package/loader/plugins/msftLodLoaderPlugin.js.map +1 -0
- package/loader/plugins/telemetryLoaderPlugin.d.ts +12 -0
- package/loader/plugins/telemetryLoaderPlugin.js +36 -0
- package/loader/plugins/telemetryLoaderPlugin.js.map +1 -0
- package/managers/observablesManager.d.ts +66 -0
- package/managers/observablesManager.js +35 -0
- package/managers/observablesManager.js.map +1 -0
- package/managers/sceneManager.d.ts +245 -0
- package/managers/sceneManager.js +1375 -0
- package/managers/sceneManager.js.map +1 -0
- package/managers/telemetryManager.d.ts +78 -0
- package/managers/telemetryManager.js +117 -0
- package/managers/telemetryManager.js.map +1 -0
- package/model/modelAnimation.d.ts +215 -0
- package/model/modelAnimation.js +237 -0
- package/model/modelAnimation.js.map +1 -0
- package/model/viewerModel.d.ts +233 -0
- package/model/viewerModel.js +673 -0
- package/model/viewerModel.js.map +1 -0
- package/optimizer/custom/extended.d.ts +13 -0
- package/optimizer/custom/extended.js +101 -0
- package/optimizer/custom/extended.js.map +1 -0
- package/optimizer/custom/index.d.ts +9 -0
- package/optimizer/custom/index.js +26 -0
- package/optimizer/custom/index.js.map +1 -0
- package/package.json +27 -17
- package/readme.md +21 -35
- package/renderOnlyIndex.d.ts +11 -0
- package/renderOnlyIndex.js +18 -0
- package/renderOnlyIndex.js.map +1 -0
- package/templating/eventManager.d.ts +35 -0
- package/templating/eventManager.js +66 -0
- package/templating/eventManager.js.map +1 -0
- package/templating/plugins/hdButtonPlugin.d.ts +9 -0
- package/templating/plugins/hdButtonPlugin.js +21 -0
- package/templating/plugins/hdButtonPlugin.js.map +1 -0
- package/templating/plugins/printButton.d.ts +9 -0
- package/templating/plugins/printButton.js +40 -0
- package/templating/plugins/printButton.js.map +1 -0
- package/templating/templateManager.d.ts +197 -0
- package/templating/templateManager.js +561 -0
- package/templating/templateManager.js.map +1 -0
- package/templating/viewerTemplatePlugin.d.ts +21 -0
- package/templating/viewerTemplatePlugin.js +69 -0
- package/templating/viewerTemplatePlugin.js.map +1 -0
- package/viewer/defaultViewer.d.ts +130 -0
- package/viewer/defaultViewer.js +675 -0
- package/viewer/defaultViewer.js.map +1 -0
- package/viewer/renderOnlyViewer.d.ts +9 -0
- package/viewer/renderOnlyViewer.js +46 -0
- package/viewer/renderOnlyViewer.js.map +1 -0
- package/viewer/viewer.d.ts +258 -0
- package/viewer/viewer.js +783 -0
- package/viewer/viewer.js.map +1 -0
- package/viewer/viewerManager.d.ts +58 -0
- package/viewer/viewerManager.js +91 -0
- package/viewer/viewerManager.js.map +1 -0
- package/viewer/viewerWithTemplate.d.ts +9 -0
- package/viewer/viewerWithTemplate.js +20 -0
- package/viewer/viewerWithTemplate.js.map +1 -0
- package/dist/babylon-viewer.esm.js +0 -2
- package/dist/babylon-viewer.esm.js.map +0 -1
- package/dist/babylon-viewer.esm.min.js +0 -2
- package/dist/babylon-viewer.esm.min.js.map +0 -1
- package/dist/chunks/EXT_lights_image_based-DC9fPJli.esm.min.js +0 -2
- package/dist/chunks/EXT_lights_image_based-DC9fPJli.esm.min.js.map +0 -1
- package/dist/chunks/EXT_lights_image_based-DfFQ31PL.esm.js +0 -170
- package/dist/chunks/EXT_lights_image_based-DfFQ31PL.esm.js.map +0 -1
- package/dist/chunks/EXT_mesh_gpu_instancing-DepTQjtD.esm.min.js +0 -2
- package/dist/chunks/EXT_mesh_gpu_instancing-DepTQjtD.esm.min.js.map +0 -1
- package/dist/chunks/EXT_mesh_gpu_instancing-cqFbSeIg.esm.js +0 -86
- package/dist/chunks/EXT_mesh_gpu_instancing-cqFbSeIg.esm.js.map +0 -1
- package/dist/chunks/EXT_meshopt_compression-BZz8a7N9.esm.js +0 -134
- package/dist/chunks/EXT_meshopt_compression-BZz8a7N9.esm.js.map +0 -1
- package/dist/chunks/EXT_meshopt_compression-CjMbh6eU.esm.min.js +0 -2
- package/dist/chunks/EXT_meshopt_compression-CjMbh6eU.esm.min.js.map +0 -1
- package/dist/chunks/EXT_texture_avif-DBTOdhvO.esm.js +0 -44
- package/dist/chunks/EXT_texture_avif-DBTOdhvO.esm.js.map +0 -1
- package/dist/chunks/EXT_texture_avif-DVAZSRkl.esm.min.js +0 -2
- package/dist/chunks/EXT_texture_avif-DVAZSRkl.esm.min.js.map +0 -1
- package/dist/chunks/EXT_texture_webp-BWiEqn-s.esm.min.js +0 -2
- package/dist/chunks/EXT_texture_webp-BWiEqn-s.esm.min.js.map +0 -1
- package/dist/chunks/EXT_texture_webp-Bgb7TgNp.esm.js +0 -43
- package/dist/chunks/EXT_texture_webp-Bgb7TgNp.esm.js.map +0 -1
- package/dist/chunks/ExtrasAsMetadata-Cr7Llzvd.esm.js +0 -64
- package/dist/chunks/ExtrasAsMetadata-Cr7Llzvd.esm.js.map +0 -1
- package/dist/chunks/ExtrasAsMetadata-DGIXOpGN.esm.min.js +0 -2
- package/dist/chunks/ExtrasAsMetadata-DGIXOpGN.esm.min.js.map +0 -1
- package/dist/chunks/KHR_animation_pointer-DrmQLtaw.esm.js +0 -343
- package/dist/chunks/KHR_animation_pointer-DrmQLtaw.esm.js.map +0 -1
- package/dist/chunks/KHR_animation_pointer-IVYLBxVU.esm.min.js +0 -2
- package/dist/chunks/KHR_animation_pointer-IVYLBxVU.esm.min.js.map +0 -1
- package/dist/chunks/KHR_draco_mesh_compression-CfqHokQU.esm.min.js +0 -2
- package/dist/chunks/KHR_draco_mesh_compression-CfqHokQU.esm.min.js.map +0 -1
- package/dist/chunks/KHR_draco_mesh_compression-DZR9h5nP.esm.js +0 -610
- package/dist/chunks/KHR_draco_mesh_compression-DZR9h5nP.esm.js.map +0 -1
- package/dist/chunks/KHR_interactivity-BQOxjpC1.esm.min.js +0 -2
- package/dist/chunks/KHR_interactivity-BQOxjpC1.esm.min.js.map +0 -1
- package/dist/chunks/KHR_interactivity-BbEGVmbr.esm.js +0 -4033
- package/dist/chunks/KHR_interactivity-BbEGVmbr.esm.js.map +0 -1
- package/dist/chunks/KHR_lights_punctual-5wF2wPZ4.esm.js +0 -1253
- package/dist/chunks/KHR_lights_punctual-5wF2wPZ4.esm.js.map +0 -1
- package/dist/chunks/KHR_lights_punctual-CxE0tWFW.esm.min.js +0 -2
- package/dist/chunks/KHR_lights_punctual-CxE0tWFW.esm.min.js.map +0 -1
- package/dist/chunks/KHR_materials_anisotropy-D5wj2P4R.esm.js +0 -64
- package/dist/chunks/KHR_materials_anisotropy-D5wj2P4R.esm.js.map +0 -1
- package/dist/chunks/KHR_materials_anisotropy-DzShF01_.esm.min.js +0 -2
- package/dist/chunks/KHR_materials_anisotropy-DzShF01_.esm.min.js.map +0 -1
- package/dist/chunks/KHR_materials_clearcoat-CVlq2-J0.esm.min.js +0 -2
- package/dist/chunks/KHR_materials_clearcoat-CVlq2-J0.esm.min.js.map +0 -1
- package/dist/chunks/KHR_materials_clearcoat-v7Cuht8B.esm.js +0 -96
- package/dist/chunks/KHR_materials_clearcoat-v7Cuht8B.esm.js.map +0 -1
- package/dist/chunks/KHR_materials_diffuse_transmission-Btv08kRf.esm.min.js +0 -2
- package/dist/chunks/KHR_materials_diffuse_transmission-Btv08kRf.esm.min.js.map +0 -1
- package/dist/chunks/KHR_materials_diffuse_transmission-DxEe_ssV.esm.js +0 -95
- package/dist/chunks/KHR_materials_diffuse_transmission-DxEe_ssV.esm.js.map +0 -1
- package/dist/chunks/KHR_materials_dispersion-BIMxA8Vq.esm.min.js +0 -2
- package/dist/chunks/KHR_materials_dispersion-BIMxA8Vq.esm.min.js.map +0 -1
- package/dist/chunks/KHR_materials_dispersion-D_4Rt_AT.esm.js +0 -62
- package/dist/chunks/KHR_materials_dispersion-D_4Rt_AT.esm.js.map +0 -1
- package/dist/chunks/KHR_materials_emissive_strength-BImvoUuh.esm.js +0 -55
- package/dist/chunks/KHR_materials_emissive_strength-BImvoUuh.esm.js.map +0 -1
- package/dist/chunks/KHR_materials_emissive_strength-BidGyKyI.esm.min.js +0 -2
- package/dist/chunks/KHR_materials_emissive_strength-BidGyKyI.esm.min.js.map +0 -1
- package/dist/chunks/KHR_materials_ior-DRDijE46.esm.min.js +0 -2
- package/dist/chunks/KHR_materials_ior-DRDijE46.esm.min.js.map +0 -1
- package/dist/chunks/KHR_materials_ior-Qsq8sSTQ.esm.js +0 -64
- package/dist/chunks/KHR_materials_ior-Qsq8sSTQ.esm.js.map +0 -1
- package/dist/chunks/KHR_materials_iridescence-BO-OSEkK.esm.min.js +0 -2
- package/dist/chunks/KHR_materials_iridescence-BO-OSEkK.esm.min.js.map +0 -1
- package/dist/chunks/KHR_materials_iridescence-Cc8j46MB.esm.js +0 -72
- package/dist/chunks/KHR_materials_iridescence-Cc8j46MB.esm.js.map +0 -1
- package/dist/chunks/KHR_materials_pbrSpecularGlossiness-Cd2w1hlF.esm.min.js +0 -2
- package/dist/chunks/KHR_materials_pbrSpecularGlossiness-Cd2w1hlF.esm.min.js.map +0 -1
- package/dist/chunks/KHR_materials_pbrSpecularGlossiness-DEtDFZPX.esm.js +0 -81
- package/dist/chunks/KHR_materials_pbrSpecularGlossiness-DEtDFZPX.esm.js.map +0 -1
- package/dist/chunks/KHR_materials_sheen-2GP5jiCT.esm.min.js +0 -2
- package/dist/chunks/KHR_materials_sheen-2GP5jiCT.esm.min.js.map +0 -1
- package/dist/chunks/KHR_materials_sheen-CQ3Q14sp.esm.js +0 -85
- package/dist/chunks/KHR_materials_sheen-CQ3Q14sp.esm.js.map +0 -1
- package/dist/chunks/KHR_materials_specular-B8bgMjMv.esm.min.js +0 -2
- package/dist/chunks/KHR_materials_specular-B8bgMjMv.esm.min.js.map +0 -1
- package/dist/chunks/KHR_materials_specular-D7P48RHW.esm.js +0 -75
- package/dist/chunks/KHR_materials_specular-D7P48RHW.esm.js.map +0 -1
- package/dist/chunks/KHR_materials_transmission-B6NtjEPp.esm.js +0 -306
- package/dist/chunks/KHR_materials_transmission-B6NtjEPp.esm.js.map +0 -1
- package/dist/chunks/KHR_materials_transmission-DPUUVLV8.esm.min.js +0 -2
- package/dist/chunks/KHR_materials_transmission-DPUUVLV8.esm.min.js.map +0 -1
- package/dist/chunks/KHR_materials_unlit-BRJnLegu.esm.min.js +0 -2
- package/dist/chunks/KHR_materials_unlit-BRJnLegu.esm.min.js.map +0 -1
- package/dist/chunks/KHR_materials_unlit-jqO9HFUm.esm.js +0 -74
- package/dist/chunks/KHR_materials_unlit-jqO9HFUm.esm.js.map +0 -1
- package/dist/chunks/KHR_materials_variants-D3zo3Fn8.esm.min.js +0 -2
- package/dist/chunks/KHR_materials_variants-D3zo3Fn8.esm.min.js.map +0 -1
- package/dist/chunks/KHR_materials_variants-DVhDwsbf.esm.js +0 -238
- package/dist/chunks/KHR_materials_variants-DVhDwsbf.esm.js.map +0 -1
- package/dist/chunks/KHR_materials_volume-BBlHI00R.esm.min.js +0 -2
- package/dist/chunks/KHR_materials_volume-BBlHI00R.esm.min.js.map +0 -1
- package/dist/chunks/KHR_materials_volume-pazjLjwn.esm.js +0 -87
- package/dist/chunks/KHR_materials_volume-pazjLjwn.esm.js.map +0 -1
- package/dist/chunks/KHR_mesh_quantization-BFCOpPq5.esm.min.js +0 -2
- package/dist/chunks/KHR_mesh_quantization-BFCOpPq5.esm.min.js.map +0 -1
- package/dist/chunks/KHR_mesh_quantization-DPAOJj_N.esm.js +0 -26
- package/dist/chunks/KHR_mesh_quantization-DPAOJj_N.esm.js.map +0 -1
- package/dist/chunks/KHR_texture_basisu-BGQg840h.esm.js +0 -43
- package/dist/chunks/KHR_texture_basisu-BGQg840h.esm.js.map +0 -1
- package/dist/chunks/KHR_texture_basisu-DjOd_UYI.esm.min.js +0 -2
- package/dist/chunks/KHR_texture_basisu-DjOd_UYI.esm.min.js.map +0 -1
- package/dist/chunks/KHR_texture_transform-CIEkHeKT.esm.js +0 -63
- package/dist/chunks/KHR_texture_transform-CIEkHeKT.esm.js.map +0 -1
- package/dist/chunks/KHR_texture_transform-LAK_4q2j.esm.min.js +0 -2
- package/dist/chunks/KHR_texture_transform-LAK_4q2j.esm.min.js.map +0 -1
- package/dist/chunks/KHR_xmp_json_ld-ByF20O9F.esm.min.js +0 -2
- package/dist/chunks/KHR_xmp_json_ld-ByF20O9F.esm.min.js.map +0 -1
- package/dist/chunks/KHR_xmp_json_ld-if0NXwJy.esm.js +0 -51
- package/dist/chunks/KHR_xmp_json_ld-if0NXwJy.esm.js.map +0 -1
- package/dist/chunks/MSFT_audio_emitter-D2B5Hzz0.esm.js +0 -1608
- package/dist/chunks/MSFT_audio_emitter-D2B5Hzz0.esm.js.map +0 -1
- package/dist/chunks/MSFT_audio_emitter-k-n62mVd.esm.min.js +0 -2
- package/dist/chunks/MSFT_audio_emitter-k-n62mVd.esm.min.js.map +0 -1
- package/dist/chunks/MSFT_lod-CpIv0Ill.esm.min.js +0 -2
- package/dist/chunks/MSFT_lod-CpIv0Ill.esm.min.js.map +0 -1
- package/dist/chunks/MSFT_lod-DZ3Pv8Ql.esm.js +0 -337
- package/dist/chunks/MSFT_lod-DZ3Pv8Ql.esm.js.map +0 -1
- package/dist/chunks/MSFT_minecraftMesh-GnUA-Z1C.esm.min.js +0 -2
- package/dist/chunks/MSFT_minecraftMesh-GnUA-Z1C.esm.min.js.map +0 -1
- package/dist/chunks/MSFT_minecraftMesh-KL-RFOpw.esm.js +0 -46
- package/dist/chunks/MSFT_minecraftMesh-KL-RFOpw.esm.js.map +0 -1
- package/dist/chunks/MSFT_sRGBFactors-BqvzNhFN.esm.js +0 -47
- package/dist/chunks/MSFT_sRGBFactors-BqvzNhFN.esm.js.map +0 -1
- package/dist/chunks/MSFT_sRGBFactors-BzPS1BeM.esm.min.js +0 -2
- package/dist/chunks/MSFT_sRGBFactors-BzPS1BeM.esm.min.js.map +0 -1
- package/dist/chunks/assetContainer-CaFtpYEC.esm.min.js +0 -2
- package/dist/chunks/assetContainer-CaFtpYEC.esm.min.js.map +0 -1
- package/dist/chunks/assetContainer-DEN9e8ap.esm.js +0 -1598
- package/dist/chunks/assetContainer-DEN9e8ap.esm.js.map +0 -1
- package/dist/chunks/basisTextureLoader-4lvRsW5R.esm.js +0 -600
- package/dist/chunks/basisTextureLoader-4lvRsW5R.esm.js.map +0 -1
- package/dist/chunks/basisTextureLoader-CSgqqtvQ.esm.min.js +0 -2
- package/dist/chunks/basisTextureLoader-CSgqqtvQ.esm.min.js.map +0 -1
- package/dist/chunks/ddsTextureLoader-BIGKoQfH.esm.min.js +0 -2
- package/dist/chunks/ddsTextureLoader-BIGKoQfH.esm.min.js.map +0 -1
- package/dist/chunks/ddsTextureLoader-WkW9Z98R.esm.js +0 -87
- package/dist/chunks/ddsTextureLoader-WkW9Z98R.esm.js.map +0 -1
- package/dist/chunks/default.fragment-C5qVdkwU.esm.min.js +0 -2
- package/dist/chunks/default.fragment-C5qVdkwU.esm.min.js.map +0 -1
- package/dist/chunks/default.fragment-KU3HcVdD.esm.js +0 -515
- package/dist/chunks/default.fragment-KU3HcVdD.esm.js.map +0 -1
- package/dist/chunks/default.fragment-YuNZ7QG_.esm.js +0 -456
- package/dist/chunks/default.fragment-YuNZ7QG_.esm.js.map +0 -1
- package/dist/chunks/default.fragment-tBVj8NVU.esm.min.js +0 -2
- package/dist/chunks/default.fragment-tBVj8NVU.esm.min.js.map +0 -1
- package/dist/chunks/default.vertex-BO-PPsjL.esm.min.js +0 -2
- package/dist/chunks/default.vertex-BO-PPsjL.esm.min.js.map +0 -1
- package/dist/chunks/default.vertex-BVid4c1x.esm.js +0 -199
- package/dist/chunks/default.vertex-BVid4c1x.esm.js.map +0 -1
- package/dist/chunks/default.vertex-DyVCLPqJ.esm.js +0 -178
- package/dist/chunks/default.vertex-DyVCLPqJ.esm.js.map +0 -1
- package/dist/chunks/default.vertex-Jx_lr96D.esm.min.js +0 -2
- package/dist/chunks/default.vertex-Jx_lr96D.esm.min.js.map +0 -1
- package/dist/chunks/defaultUboDeclaration-BCAmDlbI.esm.min.js +0 -2
- package/dist/chunks/defaultUboDeclaration-BCAmDlbI.esm.min.js.map +0 -1
- package/dist/chunks/defaultUboDeclaration-Bc5r1i_z.esm.js +0 -13
- package/dist/chunks/defaultUboDeclaration-Bc5r1i_z.esm.js.map +0 -1
- package/dist/chunks/defaultUboDeclaration-BuE-DHID.esm.js +0 -15
- package/dist/chunks/defaultUboDeclaration-BuE-DHID.esm.js.map +0 -1
- package/dist/chunks/defaultUboDeclaration-DSNWa2yC.esm.min.js +0 -2
- package/dist/chunks/defaultUboDeclaration-DSNWa2yC.esm.min.js.map +0 -1
- package/dist/chunks/envTextureLoader-DMQ4NJ4V.esm.js +0 -63
- package/dist/chunks/envTextureLoader-DMQ4NJ4V.esm.js.map +0 -1
- package/dist/chunks/envTextureLoader-a8A_Oy6u.esm.min.js +0 -2
- package/dist/chunks/envTextureLoader-a8A_Oy6u.esm.min.js.map +0 -1
- package/dist/chunks/environmentTextureTools-DUKiZwIi.esm.min.js +0 -2
- package/dist/chunks/environmentTextureTools-DUKiZwIi.esm.min.js.map +0 -1
- package/dist/chunks/environmentTextureTools-nMKhR78g.esm.js +0 -381
- package/dist/chunks/environmentTextureTools-nMKhR78g.esm.js.map +0 -1
- package/dist/chunks/exrTextureLoader-D5NU09ih.esm.js +0 -1682
- package/dist/chunks/exrTextureLoader-D5NU09ih.esm.js.map +0 -1
- package/dist/chunks/exrTextureLoader-N-X2bKA6.esm.min.js +0 -2
- package/dist/chunks/exrTextureLoader-N-X2bKA6.esm.min.js.map +0 -1
- package/dist/chunks/fogFragment-D6bC8Ff4.esm.min.js +0 -2
- package/dist/chunks/fogFragment-D6bC8Ff4.esm.min.js.map +0 -1
- package/dist/chunks/fogFragment-I5stYsjp.esm.js +0 -102
- package/dist/chunks/fogFragment-I5stYsjp.esm.js.map +0 -1
- package/dist/chunks/glTFLoader-Da2YOCGR.esm.js +0 -7552
- package/dist/chunks/glTFLoader-Da2YOCGR.esm.js.map +0 -1
- package/dist/chunks/glTFLoader-Is2_r9v2.esm.min.js +0 -2
- package/dist/chunks/glTFLoader-Is2_r9v2.esm.min.js.map +0 -1
- package/dist/chunks/glTFLoaderAnimation-Bglz6m7h.esm.min.js +0 -2
- package/dist/chunks/glTFLoaderAnimation-Bglz6m7h.esm.min.js.map +0 -1
- package/dist/chunks/glTFLoaderAnimation-CbznFn_D.esm.js +0 -77
- package/dist/chunks/glTFLoaderAnimation-CbznFn_D.esm.js.map +0 -1
- package/dist/chunks/gltfPathToObjectConverter-Dyt_Y9jE.esm.min.js +0 -2
- package/dist/chunks/gltfPathToObjectConverter-Dyt_Y9jE.esm.min.js.map +0 -1
- package/dist/chunks/gltfPathToObjectConverter-GcUmfOyo.esm.js +0 -67
- package/dist/chunks/gltfPathToObjectConverter-GcUmfOyo.esm.js.map +0 -1
- package/dist/chunks/harmonicsFunctions-BetF_GFT.esm.js +0 -35
- package/dist/chunks/harmonicsFunctions-BetF_GFT.esm.js.map +0 -1
- package/dist/chunks/harmonicsFunctions-CilRmaCi.esm.js +0 -34
- package/dist/chunks/harmonicsFunctions-CilRmaCi.esm.js.map +0 -1
- package/dist/chunks/harmonicsFunctions-DeWuwYX2.esm.min.js +0 -2
- package/dist/chunks/harmonicsFunctions-DeWuwYX2.esm.min.js.map +0 -1
- package/dist/chunks/harmonicsFunctions-DvXfJIer.esm.min.js +0 -2
- package/dist/chunks/harmonicsFunctions-DvXfJIer.esm.min.js.map +0 -1
- package/dist/chunks/hdrTextureLoader-Dcqnpgjb.esm.min.js +0 -2
- package/dist/chunks/hdrTextureLoader-Dcqnpgjb.esm.min.js.map +0 -1
- package/dist/chunks/hdrTextureLoader-byrfFp-O.esm.js +0 -252
- package/dist/chunks/hdrTextureLoader-byrfFp-O.esm.js.map +0 -1
- package/dist/chunks/helperFunctions-B7m7R064.esm.js +0 -108
- package/dist/chunks/helperFunctions-B7m7R064.esm.js.map +0 -1
- package/dist/chunks/helperFunctions-BAP7B_1V.esm.min.js +0 -2
- package/dist/chunks/helperFunctions-BAP7B_1V.esm.min.js.map +0 -1
- package/dist/chunks/helperFunctions-CigixUGL.esm.min.js +0 -2
- package/dist/chunks/helperFunctions-CigixUGL.esm.min.js.map +0 -1
- package/dist/chunks/helperFunctions-D2JAu3Um.esm.js +0 -80
- package/dist/chunks/helperFunctions-D2JAu3Um.esm.js.map +0 -1
- package/dist/chunks/index-Ba-YQVRw.esm.min.js +0 -57
- package/dist/chunks/index-Ba-YQVRw.esm.min.js.map +0 -1
- package/dist/chunks/index-DCMXQRx5.esm.js +0 -81652
- package/dist/chunks/index-DCMXQRx5.esm.js.map +0 -1
- package/dist/chunks/ktxTextureLoader-B7JJ6I6Z.esm.js +0 -814
- package/dist/chunks/ktxTextureLoader-B7JJ6I6Z.esm.js.map +0 -1
- package/dist/chunks/ktxTextureLoader-BVcuaoad.esm.min.js +0 -2
- package/dist/chunks/ktxTextureLoader-BVcuaoad.esm.min.js.map +0 -1
- package/dist/chunks/logDepthDeclaration-BJgjCQaD.esm.js +0 -42
- package/dist/chunks/logDepthDeclaration-BJgjCQaD.esm.js.map +0 -1
- package/dist/chunks/logDepthDeclaration-Bsw_jD9J.esm.js +0 -35
- package/dist/chunks/logDepthDeclaration-Bsw_jD9J.esm.js.map +0 -1
- package/dist/chunks/logDepthDeclaration-C0bLjDGt.esm.min.js +0 -2
- package/dist/chunks/logDepthDeclaration-C0bLjDGt.esm.min.js.map +0 -1
- package/dist/chunks/logDepthDeclaration-CF5JhF4_.esm.min.js +0 -2
- package/dist/chunks/logDepthDeclaration-CF5JhF4_.esm.min.js.map +0 -1
- package/dist/chunks/logDepthVertex-Bu3IKzw6.esm.min.js +0 -2
- package/dist/chunks/logDepthVertex-Bu3IKzw6.esm.min.js.map +0 -1
- package/dist/chunks/logDepthVertex-D6ApgK5s.esm.js +0 -77
- package/dist/chunks/logDepthVertex-D6ApgK5s.esm.js.map +0 -1
- package/dist/chunks/logDepthVertex-RSueoP5o.esm.min.js +0 -2
- package/dist/chunks/logDepthVertex-RSueoP5o.esm.min.js.map +0 -1
- package/dist/chunks/logDepthVertex-jmh6sp9r.esm.js +0 -605
- package/dist/chunks/logDepthVertex-jmh6sp9r.esm.js.map +0 -1
- package/dist/chunks/mainUVVaryingDeclaration-BNr0GD05.esm.min.js +0 -2
- package/dist/chunks/mainUVVaryingDeclaration-BNr0GD05.esm.min.js.map +0 -1
- package/dist/chunks/mainUVVaryingDeclaration-ZPe9Pfpm.esm.js +0 -11
- package/dist/chunks/mainUVVaryingDeclaration-ZPe9Pfpm.esm.js.map +0 -1
- package/dist/chunks/objFileLoader-B1j9OyPi.esm.js +0 -1280
- package/dist/chunks/objFileLoader-B1j9OyPi.esm.js.map +0 -1
- package/dist/chunks/objFileLoader-B2Z0kBGZ.esm.min.js +0 -2
- package/dist/chunks/objFileLoader-B2Z0kBGZ.esm.min.js.map +0 -1
- package/dist/chunks/oitFragment-C7OX8yZO.esm.js +0 -1166
- package/dist/chunks/oitFragment-C7OX8yZO.esm.js.map +0 -1
- package/dist/chunks/oitFragment-CROGuom4.esm.min.js +0 -2
- package/dist/chunks/oitFragment-CROGuom4.esm.min.js.map +0 -1
- package/dist/chunks/oitFragment-Cx8fxkh0.esm.min.js +0 -2
- package/dist/chunks/oitFragment-Cx8fxkh0.esm.min.js.map +0 -1
- package/dist/chunks/oitFragment-QaeREI-l.esm.js +0 -1210
- package/dist/chunks/oitFragment-QaeREI-l.esm.js.map +0 -1
- package/dist/chunks/pass.fragment-Cp76VdVm.esm.min.js +0 -2
- package/dist/chunks/pass.fragment-Cp76VdVm.esm.min.js.map +0 -1
- package/dist/chunks/pass.fragment-DWGZaulM.esm.js +0 -15
- package/dist/chunks/pass.fragment-DWGZaulM.esm.js.map +0 -1
- package/dist/chunks/pbr.fragment-1MSLuKxt.esm.min.js +0 -2
- package/dist/chunks/pbr.fragment-1MSLuKxt.esm.min.js.map +0 -1
- package/dist/chunks/pbr.fragment-CVVaxHTM.esm.js +0 -3172
- package/dist/chunks/pbr.fragment-CVVaxHTM.esm.js.map +0 -1
- package/dist/chunks/pbr.fragment-DjDXkzPC.esm.js +0 -3228
- package/dist/chunks/pbr.fragment-DjDXkzPC.esm.js.map +0 -1
- package/dist/chunks/pbr.fragment-u-qCDBnn.esm.min.js +0 -2
- package/dist/chunks/pbr.fragment-u-qCDBnn.esm.min.js.map +0 -1
- package/dist/chunks/pbr.vertex-CY3atoVH.esm.min.js +0 -2
- package/dist/chunks/pbr.vertex-CY3atoVH.esm.min.js.map +0 -1
- package/dist/chunks/pbr.vertex-CvBNpmrL.esm.js +0 -335
- package/dist/chunks/pbr.vertex-CvBNpmrL.esm.js.map +0 -1
- package/dist/chunks/pbr.vertex-Cz1vuu4g.esm.min.js +0 -2
- package/dist/chunks/pbr.vertex-Cz1vuu4g.esm.min.js.map +0 -1
- package/dist/chunks/pbr.vertex-DmN6aBEn.esm.js +0 -208
- package/dist/chunks/pbr.vertex-DmN6aBEn.esm.js.map +0 -1
- package/dist/chunks/postprocess.vertex-C1KLVO46.esm.min.js +0 -2
- package/dist/chunks/postprocess.vertex-C1KLVO46.esm.min.js.map +0 -1
- package/dist/chunks/postprocess.vertex-bRjFMMTw.esm.js +0 -20
- package/dist/chunks/postprocess.vertex-bRjFMMTw.esm.js.map +0 -1
- package/dist/chunks/rawTexture-CnRJFGS0.esm.min.js +0 -2
- package/dist/chunks/rawTexture-CnRJFGS0.esm.min.js.map +0 -1
- package/dist/chunks/rawTexture-DqO-U47x.esm.js +0 -562
- package/dist/chunks/rawTexture-DqO-U47x.esm.js.map +0 -1
- package/dist/chunks/rgbdDecode.fragment-B3x1NGLA.esm.js +0 -17
- package/dist/chunks/rgbdDecode.fragment-B3x1NGLA.esm.js.map +0 -1
- package/dist/chunks/rgbdDecode.fragment-Ced65A9P.esm.js +0 -17
- package/dist/chunks/rgbdDecode.fragment-Ced65A9P.esm.js.map +0 -1
- package/dist/chunks/rgbdDecode.fragment-DeTDMkx-.esm.min.js +0 -2
- package/dist/chunks/rgbdDecode.fragment-DeTDMkx-.esm.min.js.map +0 -1
- package/dist/chunks/rgbdDecode.fragment-I4vSkcn6.esm.min.js +0 -2
- package/dist/chunks/rgbdDecode.fragment-I4vSkcn6.esm.min.js.map +0 -1
- package/dist/chunks/rgbdEncode.fragment-BI_5lpaM.esm.js +0 -17
- package/dist/chunks/rgbdEncode.fragment-BI_5lpaM.esm.js.map +0 -1
- package/dist/chunks/rgbdEncode.fragment-CvsdJfL-.esm.min.js +0 -2
- package/dist/chunks/rgbdEncode.fragment-CvsdJfL-.esm.min.js.map +0 -1
- package/dist/chunks/rgbdEncode.fragment-DBV9U7_S.esm.js +0 -17
- package/dist/chunks/rgbdEncode.fragment-DBV9U7_S.esm.js.map +0 -1
- package/dist/chunks/rgbdEncode.fragment-Ga_wck8r.esm.min.js +0 -2
- package/dist/chunks/rgbdEncode.fragment-Ga_wck8r.esm.min.js.map +0 -1
- package/dist/chunks/splatFileLoader-CqZQp8gT.esm.min.js +0 -2
- package/dist/chunks/splatFileLoader-CqZQp8gT.esm.min.js.map +0 -1
- package/dist/chunks/splatFileLoader-Ojz6wPQF.esm.js +0 -3154
- package/dist/chunks/splatFileLoader-Ojz6wPQF.esm.js.map +0 -1
- package/dist/chunks/standardMaterial-BRFkCYek.esm.min.js +0 -2
- package/dist/chunks/standardMaterial-BRFkCYek.esm.min.js.map +0 -1
- package/dist/chunks/standardMaterial-CrPdkeQ7.esm.js +0 -1809
- package/dist/chunks/standardMaterial-CrPdkeQ7.esm.js.map +0 -1
- package/dist/chunks/stlFileLoader-CZ4gnzj5.esm.js +0 -237
- package/dist/chunks/stlFileLoader-CZ4gnzj5.esm.js.map +0 -1
- package/dist/chunks/stlFileLoader-vUsEa3k7.esm.min.js +0 -2
- package/dist/chunks/stlFileLoader-vUsEa3k7.esm.min.js.map +0 -1
- package/dist/chunks/tgaTextureLoader-CWw7TE84.esm.js +0 -349
- package/dist/chunks/tgaTextureLoader-CWw7TE84.esm.js.map +0 -1
- package/dist/chunks/tgaTextureLoader-z-0S-ufz.esm.min.js +0 -2
- package/dist/chunks/tgaTextureLoader-z-0S-ufz.esm.min.js.map +0 -1
- package/dist/chunks/thinInstanceMesh-BPnShKmm.esm.min.js +0 -2
- package/dist/chunks/thinInstanceMesh-BPnShKmm.esm.min.js.map +0 -1
- package/dist/chunks/thinInstanceMesh-BvcXpcNe.esm.js +0 -314
- package/dist/chunks/thinInstanceMesh-BvcXpcNe.esm.js.map +0 -1
- package/dist/chunks/vertexColorMixing-BY_oWZih.esm.min.js +0 -2
- package/dist/chunks/vertexColorMixing-BY_oWZih.esm.min.js.map +0 -1
- package/dist/chunks/vertexColorMixing-Cq9NDkQU.esm.js +0 -528
- package/dist/chunks/vertexColorMixing-Cq9NDkQU.esm.js.map +0 -1
- package/dist/chunks/workerPool-BUOov2K1.esm.js +0 -122
- package/dist/chunks/workerPool-BUOov2K1.esm.js.map +0 -1
- package/dist/chunks/workerPool-BWHiDmEZ.esm.min.js +0 -2
- package/dist/chunks/workerPool-BWHiDmEZ.esm.min.js.map +0 -1
- package/lib/index.d.ts +0 -237
- package/lib/index.js +0 -871
- package/lib/index.js.map +0 -1
|
@@ -1,337 +0,0 @@
|
|
|
1
|
-
import { aq as Observable, aS as Deferred, ak as unregisterGLTFExtension, al as registerGLTFExtension } from './index-DCMXQRx5.esm.js';
|
|
2
|
-
import { GLTFLoader, ArrayItem } from './glTFLoader-Da2YOCGR.esm.js';
|
|
3
|
-
import './rawTexture-DqO-U47x.esm.js';
|
|
4
|
-
import './assetContainer-DEN9e8ap.esm.js';
|
|
5
|
-
import './glTFLoaderAnimation-CbznFn_D.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-DZ3Pv8Ql.esm.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"MSFT_lod-DZ3Pv8Ql.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{ax as e,ak as r,al as t}from"./index-Ba-YQVRw.esm.min.js";import{GLTFLoader as s}from"./glTFLoader-Is2_r9v2.esm.min.js";import"./rawTexture-CnRJFGS0.esm.min.js";import"./assetContainer-CaFtpYEC.esm.min.js";import"./glTFLoaderAnimation-Bglz6m7h.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,t,i){return s.LoadExtraAsync(r,t,this.name,((s,a)=>{if(a){if(!(i instanceof e))throw new Error(`${s}: Material type not supported`);const a=this._loader.loadMaterialPropertiesAsync(r,t,i);return i.needAlphaBlending()&&(i.forceDepthWrite=!0,i.separateCullingPass=!0),i.backFaceCulling=i.forceDepthWrite,i.twoSidedLighting=!0,a}return null}))}}r(i),t(i,!0,(e=>new a(e)));export{a as MSFT_minecraftMesh};
|
|
2
|
-
//# sourceMappingURL=MSFT_minecraftMesh-GnUA-Z1C.esm.min.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"MSFT_minecraftMesh-GnUA-Z1C.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":"uQAGA,MAAMA,EAAO,qBAGN,MAAMC,EAET,WAAAC,CAAYC,GAERC,KAAKC,KAAOL,EACZI,KAAKE,QAAUH,EACfC,KAAKG,QAAUH,KAAKE,QAAQE,gBAAgBR,EAC/C,CAED,OAAAS,GACIL,KAAKE,QAAU,IAClB,CAED,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,CACV,CACD,OAAO,IAAI,GAElB,EAELM,EAAwB1B,GACxB2B,EAAsB3B,GAAM,GAAOG,GAAW,IAAIF,EAAmBE"}
|
|
@@ -1,46 +0,0 @@
|
|
|
1
|
-
import { ax as PBRMaterial, ak as unregisterGLTFExtension, al as registerGLTFExtension } from './index-DCMXQRx5.esm.js';
|
|
2
|
-
import { GLTFLoader } from './glTFLoader-Da2YOCGR.esm.js';
|
|
3
|
-
import './rawTexture-DqO-U47x.esm.js';
|
|
4
|
-
import './assetContainer-DEN9e8ap.esm.js';
|
|
5
|
-
import './glTFLoaderAnimation-CbznFn_D.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-KL-RFOpw.esm.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"MSFT_minecraftMesh-KL-RFOpw.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,CAAC;AAClC;AACA;AACO,MAAM,kBAAkB,CAAC;AAChC;AACA,IAAI,WAAW,CAAC,MAAM,EAAE;AACxB;AACA,QAAQ,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;AACzB,QAAQ,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;AAC9B,QAAQ,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;AAC1D,KAAK;AACL;AACA,IAAI,OAAO,GAAG;AACd,QAAQ,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;AAC5B,KAAK;AACL;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,CAAC;AACpF,iBAAiB;AACjB,gBAAgB,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,2BAA2B,CAAC,OAAO,EAAE,QAAQ,EAAE,eAAe,CAAC,CAAC;AAC7G,gBAAgB,IAAI,eAAe,CAAC,iBAAiB,EAAE,EAAE;AACzD,oBAAoB,eAAe,CAAC,eAAe,GAAG,IAAI,CAAC;AAC3D,oBAAoB,eAAe,CAAC,mBAAmB,GAAG,IAAI,CAAC;AAC/D,iBAAiB;AACjB,gBAAgB,eAAe,CAAC,eAAe,GAAG,eAAe,CAAC,eAAe,CAAC;AAClF,gBAAgB,eAAe,CAAC,gBAAgB,GAAG,IAAI,CAAC;AACxD,gBAAgB,OAAO,OAAO,CAAC;AAC/B,aAAa;AACb,YAAY,OAAO,IAAI,CAAC;AACxB,SAAS,CAAC,CAAC;AACX,KAAK;AACL,CAAC;AACD,uBAAuB,CAAC,IAAI,CAAC,CAAC;AAC9B,qBAAqB,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,MAAM,KAAK,IAAI,kBAAkB,CAAC,MAAM,CAAC,CAAC;;;;"}
|
|
@@ -1,47 +0,0 @@
|
|
|
1
|
-
import { ax as PBRMaterial, ak as unregisterGLTFExtension, al as registerGLTFExtension } from './index-DCMXQRx5.esm.js';
|
|
2
|
-
import { GLTFLoader } from './glTFLoader-Da2YOCGR.esm.js';
|
|
3
|
-
import './rawTexture-DqO-U47x.esm.js';
|
|
4
|
-
import './assetContainer-DEN9e8ap.esm.js';
|
|
5
|
-
import './glTFLoaderAnimation-CbznFn_D.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-BqvzNhFN.esm.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"MSFT_sRGBFactors-BqvzNhFN.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,CAAC;AAChC;AACA;AACO,MAAM,gBAAgB,CAAC;AAC9B;AACA,IAAI,WAAW,CAAC,MAAM,EAAE;AACxB;AACA,QAAQ,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;AACzB,QAAQ,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;AAC9B,QAAQ,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;AAC1D,KAAK;AACL;AACA,IAAI,OAAO,GAAG;AACd,QAAQ,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;AAC5B,KAAK;AACL;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,CAAC;AACpF,iBAAiB;AACjB,gBAAgB,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,2BAA2B,CAAC,OAAO,EAAE,QAAQ,EAAE,eAAe,CAAC,CAAC;AAC7G,gBAAgB,MAAM,uBAAuB,GAAG,eAAe,CAAC,QAAQ,EAAE,CAAC,SAAS,EAAE,CAAC,uBAAuB,CAAC;AAC/G,gBAAgB,IAAI,CAAC,eAAe,CAAC,aAAa,EAAE;AACpD,oBAAoB,eAAe,CAAC,WAAW,CAAC,kBAAkB,CAAC,eAAe,CAAC,WAAW,EAAE,uBAAuB,CAAC,CAAC;AACzH,iBAAiB;AACjB,gBAAgB,IAAI,CAAC,eAAe,CAAC,mBAAmB,EAAE;AAC1D,oBAAoB,eAAe,CAAC,iBAAiB,CAAC,kBAAkB,CAAC,eAAe,CAAC,iBAAiB,EAAE,uBAAuB,CAAC,CAAC;AACrI,iBAAiB;AACjB,gBAAgB,OAAO,OAAO,CAAC;AAC/B,aAAa;AACb,YAAY,OAAO,IAAI,CAAC;AACxB,SAAS,CAAC,CAAC;AACX,KAAK;AACL,CAAC;AACD,uBAAuB,CAAC,IAAI,CAAC,CAAC;AAC9B,qBAAqB,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,MAAM,KAAK,IAAI,gBAAgB,CAAC,MAAM,CAAC,CAAC;;;;"}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{ax as e,ak as r,al as o}from"./index-Ba-YQVRw.esm.min.js";import{GLTFLoader as t}from"./glTFLoader-Is2_r9v2.esm.min.js";import"./rawTexture-CnRJFGS0.esm.min.js";import"./assetContainer-CaFtpYEC.esm.min.js";import"./glTFLoaderAnimation-Bglz6m7h.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-BzPS1BeM.esm.min.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"MSFT_sRGBFactors-BzPS1BeM.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":"uQAGA,MAAMA,EAAO,mBAGN,MAAMC,EAET,WAAAC,CAAYC,GAERC,KAAKC,KAAOL,EACZI,KAAKE,QAAUH,EACfC,KAAKG,QAAUH,KAAKE,QAAQE,gBAAgBR,EAC/C,CAED,OAAAS,GACIL,KAAKE,QAAU,IAClB,CAED,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,CACV,CACD,OAAO,IAAI,GAElB,EAELS,EAAwB7B,GACxB8B,EAAsB9B,GAAM,GAAOG,GAAW,IAAIF,EAAiBE"}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{M as e,ar as t,e as s,L as n,c as r,aR as i,q as o,t as a,aI as h,R as c,aY as d,y as u,au as f,l}from"./index-Ba-YQVRw.esm.min.js";e._instancedMeshFactory=(e,t)=>{const s=new m(e,t);if(t.instancedBuffers){s.instancedBuffers={};for(const e in t.instancedBuffers)s.instancedBuffers[e]=t.instancedBuffers[e]}return s};class m extends t{constructor(e,t){super(e,t.getScene()),this._indexInSourceMeshInstanceArray=-1,this._distanceToCamera=0,t.addInstance(this),this._sourceMesh=t,this._unIndexed=t._unIndexed,this.position.copyFrom(t.position),this.rotation.copyFrom(t.rotation),this.scaling.copyFrom(t.scaling),t.rotationQuaternion&&(this.rotationQuaternion=t.rotationQuaternion.clone()),this.animations=t.animations.slice();for(const e of t.getAnimationRanges())null!=e&&this.createAnimationRange(e.name,e.from,e.to);this.infiniteDistance=t.infiniteDistance,this.setPivotMatrix(t.getPivotMatrix()),this.refreshBoundingInfo(!0,!0),this._syncSubMeshes()}getClassName(){return"InstancedMesh"}get lightSources(){return this._sourceMesh._lightSources}_resyncLightSources(){}_resyncLightSource(){}_removeLightSource(){}get receiveShadows(){return this._sourceMesh.receiveShadows}set receiveShadows(e){this._sourceMesh?.receiveShadows!==e&&s.Warn("Setting receiveShadows on an instanced mesh has no effect")}get material(){return this._sourceMesh.material}set material(e){this._sourceMesh?.material!==e&&s.Warn("Setting material on an instanced mesh has no effect")}get visibility(){return this._sourceMesh.visibility}set visibility(e){this._sourceMesh?.visibility!==e&&s.Warn("Setting visibility on an instanced mesh has no effect")}get skeleton(){return this._sourceMesh.skeleton}set skeleton(e){this._sourceMesh?.skeleton!==e&&s.Warn("Setting skeleton on an instanced mesh has no effect")}get renderingGroupId(){return this._sourceMesh.renderingGroupId}set renderingGroupId(e){this._sourceMesh&&e!==this._sourceMesh.renderingGroupId&&n.Warn("Note - setting renderingGroupId of an instanced mesh has no effect on the scene")}getTotalVertices(){return this._sourceMesh?this._sourceMesh.getTotalVertices():0}getTotalIndices(){return this._sourceMesh.getTotalIndices()}get sourceMesh(){return this._sourceMesh}createInstance(e){return this._sourceMesh.createInstance(e)}isReady(e=!1){return this._sourceMesh.isReady(e,!0)}getVerticesData(e,t,s){return this._sourceMesh.getVerticesData(e,t,s)}copyVerticesData(e,t){this._sourceMesh.copyVerticesData(e,t)}setVerticesData(e,t,s,n){return this.sourceMesh&&this.sourceMesh.setVerticesData(e,t,s,n),this.sourceMesh}updateVerticesData(e,t,s,n){return this.sourceMesh&&this.sourceMesh.updateVerticesData(e,t,s,n),this.sourceMesh}setIndices(e,t=null){return this.sourceMesh&&this.sourceMesh.setIndices(e,t),this.sourceMesh}isVerticesDataPresent(e){return this._sourceMesh.isVerticesDataPresent(e)}getIndices(){return this._sourceMesh.getIndices()}get _positions(){return this._sourceMesh._positions}refreshBoundingInfo(e=!1,t=!1){if(this.hasBoundingInfo&&this.getBoundingInfo().isLocked)return this;let s;s="object"==typeof e?e:{applySkeleton:e,applyMorph:t};const n=this._sourceMesh.geometry?this._sourceMesh.geometry.boundingBias:null;return this._refreshBoundingInfo(this._sourceMesh._getData(s,null,r.PositionKind),n),this}_preActivate(){return this._currentLOD&&this._currentLOD._preActivate(),this}_activate(e,t){if(super._activate(e,t),this._sourceMesh.subMeshes||n.Warn("Instances should only be created for meshes with geometry."),this._currentLOD){if(this._currentLOD._getWorldMatrixDeterminant()>=0!=this._getWorldMatrixDeterminant()>=0)return this._internalAbstractMeshDataInfo._actAsRegularMesh=!0,!0;if(this._internalAbstractMeshDataInfo._actAsRegularMesh=!1,this._currentLOD._registerInstanceForRenderId(this,e),t){if(!this._currentLOD._internalAbstractMeshDataInfo._isActiveIntermediate)return this._currentLOD._internalAbstractMeshDataInfo._onlyForInstancesIntermediate=!0,!0}else if(!this._currentLOD._internalAbstractMeshDataInfo._isActive)return this._currentLOD._internalAbstractMeshDataInfo._onlyForInstances=!0,!0}return!1}_postActivate(){this._sourceMesh.edgesShareWithInstances&&this._sourceMesh._edgesRenderer&&this._sourceMesh._edgesRenderer.isEnabled&&this._sourceMesh._renderingGroup?(this._sourceMesh._renderingGroup._edgesRenderers.pushNoDuplicate(this._sourceMesh._edgesRenderer),this._sourceMesh._edgesRenderer.customInstances.push(this.getWorldMatrix())):this._edgesRenderer&&this._edgesRenderer.isEnabled&&this._sourceMesh._renderingGroup&&this._sourceMesh._renderingGroup._edgesRenderers.push(this._edgesRenderer)}getWorldMatrix(){if(this._currentLOD&&this._currentLOD.billboardMode!==i.BILLBOARDMODE_NONE&&this._currentLOD._masterMesh!==this){this._billboardWorldMatrix||(this._billboardWorldMatrix=new o);const e=this._currentLOD._masterMesh;return this._currentLOD._masterMesh=this,a.Vector3[7].copyFrom(this._currentLOD.position),this._currentLOD.position.set(0,0,0),this._billboardWorldMatrix.copyFrom(this._currentLOD.computeWorldMatrix(!0)),this._currentLOD.position.copyFrom(a.Vector3[7]),this._currentLOD._masterMesh=e,this._billboardWorldMatrix}return super.getWorldMatrix()}get isAnInstance(){return!0}getLOD(e){if(!e)return this;const t=this.sourceMesh.getLODLevels();if(t&&0!==t.length){const t=this.getBoundingInfo();this._currentLOD=this.sourceMesh.getLOD(e,t.boundingSphere)}else this._currentLOD=this.sourceMesh;return this._currentLOD}_preActivateForIntermediateRendering(e){return this.sourceMesh._preActivateForIntermediateRendering(e)}_syncSubMeshes(){if(this.releaseSubMeshes(),this._sourceMesh.subMeshes)for(let e=0;e<this._sourceMesh.subMeshes.length;e++)this._sourceMesh.subMeshes[e].clone(this,this._sourceMesh);return this}_generatePointsArray(){return this._sourceMesh._generatePointsArray()}_updateBoundingInfo(){return this.hasBoundingInfo?this.getBoundingInfo().update(this.worldMatrixFromCache):this.buildBoundingInfo(this.absolutePosition,this.absolutePosition,this.worldMatrixFromCache),this._updateSubMeshesBoundingInfo(this.worldMatrixFromCache),this}clone(e,t=null,s,n){const r=(n||this._sourceMesh).createInstance(e);if(h.DeepCopy(this,r,["name","subMeshes","uniqueId","parent","lightSources","receiveShadows","material","visibility","skeleton","sourceMesh","isAnInstance","facetNb","isFacetDataEnabled","isBlocked","useBones","hasInstances","collider","edgesRenderer","forward","up","right","absolutePosition","absoluteScaling","absoluteRotationQuaternion","isWorldMatrixFrozen","nonUniformScaling","behaviors","worldMatrixFromCache","hasThinInstances","hasBoundingInfo"],[]),this.refreshBoundingInfo(),t&&(r.parent=t),!s)for(let e=0;e<this.getScene().meshes.length;e++){const t=this.getScene().meshes[e];t.parent===this&&t.clone(t.name,r)}return r.computeWorldMatrix(!0),this.onClonedObservable.notifyObservers(r),r}dispose(e,t=!1){this._sourceMesh.removeInstance(this),super.dispose(e,t)}_serializeAsParent(e){super._serializeAsParent(e),e.parentId=this._sourceMesh.uniqueId,e.parentInstanceIndex=this._indexInSourceMeshInstanceArray}instantiateHierarchy(e=null,t,s){const n=this.clone("Clone of "+(this.name||this.id),e||this.parent,!0,t&&t.newSourcedMesh);n&&s&&s(this,n);for(const e of this.getChildTransformNodes(!0))e.instantiateHierarchy(n,t,s);return n}}e.prototype.registerInstancedBuffer=function(e,t){if(this._userInstancedBuffersStorage?.vertexBuffers[e]?.dispose(),!this.instancedBuffers){this.instancedBuffers={};for(const e of this.instances)e.instancedBuffers={}}this._userInstancedBuffersStorage||(this._userInstancedBuffersStorage={data:{},vertexBuffers:{},strides:{},sizes:{},vertexArrayObjects:this.getEngine().getCaps().vertexArrayObject?{}:void 0}),this.instancedBuffers[e]=null,this._userInstancedBuffersStorage.strides[e]=t,this._userInstancedBuffersStorage.sizes[e]=32*t,this._userInstancedBuffersStorage.data[e]=new Float32Array(this._userInstancedBuffersStorage.sizes[e]),this._userInstancedBuffersStorage.vertexBuffers[e]=new r(this.getEngine(),this._userInstancedBuffersStorage.data[e],e,!0,!1,t,!0);for(const t of this.instances)t.instancedBuffers[e]=null;this._invalidateInstanceVertexArrayObject(),this._markSubMeshesAsAttributesDirty()},e.prototype._processInstancedBuffers=function(e,t){const s=e?e.length:0;for(const n in this.instancedBuffers){let i=this._userInstancedBuffersStorage.sizes[n];const o=this._userInstancedBuffersStorage.strides[n],a=(s+1)*o;for(;i<a;)i*=2;this._userInstancedBuffersStorage.data[n].length!=i&&(this._userInstancedBuffersStorage.data[n]=new Float32Array(i),this._userInstancedBuffersStorage.sizes[n]=i,this._userInstancedBuffersStorage.vertexBuffers[n]&&(this._userInstancedBuffersStorage.vertexBuffers[n].dispose(),this._userInstancedBuffersStorage.vertexBuffers[n]=null));const h=this._userInstancedBuffersStorage.data[n];let c=0;if(t){const e=this.instancedBuffers[n];e.toArray?e.toArray(h,c):e.copyToArray?e.copyToArray(h,c):h[c]=e,c+=o}for(let t=0;t<s;t++){const s=e[t].instancedBuffers[n];s.toArray?s.toArray(h,c):s.copyToArray?s.copyToArray(h,c):h[c]=s,c+=o}this._userInstancedBuffersStorage.vertexBuffers[n]?this._userInstancedBuffersStorage.vertexBuffers[n].updateDirectly(h,0):(this._userInstancedBuffersStorage.vertexBuffers[n]=new r(this.getEngine(),this._userInstancedBuffersStorage.data[n],n,!0,!1,o,!0),this._invalidateInstanceVertexArrayObject())}},e.prototype._invalidateInstanceVertexArrayObject=function(){if(this._userInstancedBuffersStorage&&void 0!==this._userInstancedBuffersStorage.vertexArrayObjects){for(const e in this._userInstancedBuffersStorage.vertexArrayObjects)this.getEngine().releaseVertexArrayObject(this._userInstancedBuffersStorage.vertexArrayObjects[e]);this._userInstancedBuffersStorage.vertexArrayObjects={}}},e.prototype._disposeInstanceSpecificData=function(){for(this._instanceDataStorage.instancesBuffer&&(this._instanceDataStorage.instancesBuffer.dispose(),this._instanceDataStorage.instancesBuffer=null);this.instances.length;)this.instances[0].dispose();for(const e in this.instancedBuffers)this._userInstancedBuffersStorage.vertexBuffers[e]&&this._userInstancedBuffersStorage.vertexBuffers[e].dispose();this._invalidateInstanceVertexArrayObject(),this.instancedBuffers={}},c("BABYLON.InstancedMesh",m);class g extends d{}class p{constructor(){this.rootNodes=[],this.skeletons=[],this.animationGroups=[]}dispose(){this.rootNodes.slice(0).forEach((e=>{e.dispose()})),this.rootNodes.length=0,this.skeletons.slice(0).forEach((e=>{e.dispose()})),this.skeletons.length=0,this.animationGroups.slice(0).forEach((e=>{e.dispose()})),this.animationGroups.length=0}}class _ extends d{constructor(e){super(),this._wasAddedToScene=!1,(e=e||u.LastCreatedScene)&&(this.scene=e,this.sounds=[],this.effectLayers=[],this.layers=[],this.lensFlareSystems=[],this.proceduralTextures=[],this.reflectionProbes=[],e.onDisposeObservable.add((()=>{this._wasAddedToScene||this.dispose()})),this._onContextRestoredObserver=e.getEngine().onContextRestoredObservable.add((()=>{for(const e of this.geometries)e._rebuild();for(const e of this.meshes)e._rebuild();for(const e of this.particleSystems)e.rebuild();for(const e of this.textures)e._rebuild()})))}_topologicalSort(e){const t=new Map;for(const s of e)t.set(s.uniqueId,s);const s={dependsOn:new Map,dependedBy:new Map};for(const t of e){const e=t.uniqueId;s.dependsOn.set(e,new Set),s.dependedBy.set(e,new Set)}for(const n of e){const e=n.uniqueId,r=s.dependsOn.get(e);if(n instanceof m){const i=n.sourceMesh;t.has(i.uniqueId)&&(r.add(i.uniqueId),s.dependedBy.get(i.uniqueId).add(e))}const i=s.dependedBy.get(e);for(const r of n.getDescendants()){const n=r.uniqueId;if(t.has(n)){i.add(n);s.dependsOn.get(n).add(e)}}}const r=[],i=[];for(const n of e){const e=n.uniqueId;0===s.dependsOn.get(e).size&&(i.push(n),t.delete(e))}const o=i;for(;o.length>0;){const e=o.shift();r.push(e);const n=s.dependedBy.get(e.uniqueId);for(const r of Array.from(n.values())){const n=s.dependsOn.get(r);n.delete(e.uniqueId),0===n.size&&t.get(r)&&(o.push(t.get(r)),t.delete(r))}}return t.size>0&&(n.Error("SceneSerializer._topologicalSort: There were unvisited nodes:"),t.forEach((e=>n.Error(e.name)))),r}_addNodeAndDescendantsToList(e,t,s,n){if(s&&(!n||n(s))&&!t.has(s.uniqueId)){e.push(s),t.add(s.uniqueId);for(const r of s.getDescendants(!0))this._addNodeAndDescendantsToList(e,t,r,n)}}_isNodeInContainer(e){return e instanceof t&&-1!==this.meshes.indexOf(e)||(e instanceof i&&-1!==this.transformNodes.indexOf(e)||(e instanceof f&&-1!==this.lights.indexOf(e)||e instanceof l&&-1!==this.cameras.indexOf(e)))}_isValidHierarchy(){for(const e of this.meshes)if(e.parent&&!this._isNodeInContainer(e.parent))return n.Warn(`Node ${e.name} has a parent that is not in the container.`),!1;for(const e of this.transformNodes)if(e.parent&&!this._isNodeInContainer(e.parent))return n.Warn(`Node ${e.name} has a parent that is not in the container.`),!1;for(const e of this.lights)if(e.parent&&!this._isNodeInContainer(e.parent))return n.Warn(`Node ${e.name} has a parent that is not in the container.`),!1;for(const e of this.cameras)if(e.parent&&!this._isNodeInContainer(e.parent))return n.Warn(`Node ${e.name} has a parent that is not in the container.`),!1;return!0}instantiateModelsToScene(t,n=!1,r){this._isValidHierarchy()||s.Warn("SceneSerializer.InstantiateModelsToScene: The Asset Container hierarchy is not valid.");const i={},o={},a=new p,h=[],c=[],d={doNotInstantiate:!0,...r},u=[],f=new Set;for(const e of this.transformNodes)null===e.parent&&this._addNodeAndDescendantsToList(u,f,e,d.predicate);for(const e of this.meshes)null===e.parent&&this._addNodeAndDescendantsToList(u,f,e,d.predicate);const l=this._topologicalSort(u),m=(s,r)=>{if(((s,n)=>{if(i[s.uniqueId]=n.uniqueId,o[n.uniqueId]=n,t&&(n.name=t(s.name)),n instanceof e){const e=n;if(e.morphTargetManager){const t=s.morphTargetManager;e.morphTargetManager=t.clone();for(let s=0;s<t.numTargets;s++){const n=t.getTarget(s),r=e.morphTargetManager.getTarget(s);i[n.uniqueId]=r.uniqueId,o[r.uniqueId]=r}}}})(s,r),s.parent){const e=i[s.parent.uniqueId],t=o[e];r.parent=t||s.parent}if(r.position&&s.position&&r.position.copyFrom(s.position),r.rotationQuaternion&&s.rotationQuaternion&&r.rotationQuaternion.copyFrom(s.rotationQuaternion),r.rotation&&s.rotation&&r.rotation.copyFrom(s.rotation),r.scaling&&s.scaling&&r.scaling.copyFrom(s.scaling),r.material){const e=r;if(e.material)if(n){const n=s.material;if(-1===c.indexOf(n)){let e=n.clone(t?t(n.name):"Clone of "+n.name);if(c.push(n),i[n.uniqueId]=e.uniqueId,o[e.uniqueId]=e,"MultiMaterial"===n.getClassName()){const s=n;for(const n of s.subMaterials)n&&(e=n.clone(t?t(n.name):"Clone of "+n.name),c.push(n),i[n.uniqueId]=e.uniqueId,o[e.uniqueId]=e);s.subMaterials=s.subMaterials.map((e=>e&&o[i[e.uniqueId]]))}}"InstancedMesh"!==e.getClassName()&&(e.material=o[i[n.uniqueId]])}else"MultiMaterial"===e.material.getClassName()?-1===this.scene.multiMaterials.indexOf(e.material)&&this.scene.addMultiMaterial(e.material):-1===this.scene.materials.indexOf(e.material)&&this.scene.addMaterial(e.material)}null===r.parent&&a.rootNodes.push(r)};return l.forEach((e=>{if("InstancedMesh"===e.getClassName()){const t=e,s=t.sourceMesh,n=i[s.uniqueId],r=("number"==typeof n?o[n]:s).createInstance(t.name);m(t,r)}else{let t=!0;"TransformNode"===e.getClassName()||"Node"===e.getClassName()||e.skeleton||!e.getTotalVertices||0===e.getTotalVertices()?t=!1:d.doNotInstantiate&&(t="function"==typeof d.doNotInstantiate?!d.doNotInstantiate(e):!d.doNotInstantiate);const s=t?e.createInstance(`instance of ${e.name}`):e.clone(`Clone of ${e.name}`,null,!0);if(!s)throw new Error(`Could not clone or instantiate node on Asset Container ${e.name}`);m(e,s)}})),this.skeletons.forEach((e=>{if(d.predicate&&!d.predicate(e))return;const s=e.clone(t?t(e.name):"Clone of "+e.name);for(const t of this.meshes)if(t.skeleton===e&&!t.isAnInstance){const e=o[i[t.uniqueId]];if(!e||e.isAnInstance)continue;if(e.skeleton=s,-1!==h.indexOf(s))continue;h.push(s);for(const e of s.bones)e._linkedTransformNode&&(e._linkedTransformNode=o[i[e._linkedTransformNode.uniqueId]])}a.skeletons.push(s)})),this.animationGroups.forEach((e=>{if(d.predicate&&!d.predicate(e))return;const s=e.clone(t?t(e.name):"Clone of "+e.name,(e=>o[i[e.uniqueId]]||e));a.animationGroups.push(s)})),a}addAllToScene(){if(!this._wasAddedToScene){this._isValidHierarchy()||s.Warn("SceneSerializer.addAllToScene: The Asset Container hierarchy is not valid."),this._wasAddedToScene=!0,this.addToScene(null),this.environmentTexture&&(this.scene.environmentTexture=this.environmentTexture);for(const e of this.scene._serializableComponents)e.addFromContainer(this);this.scene.getEngine().onContextRestoredObservable.remove(this._onContextRestoredObserver),this._onContextRestoredObserver=null}}addToScene(e=null){const t=[];this.cameras.forEach((s=>{e&&!e(s)||(this.scene.addCamera(s),t.push(s))})),this.lights.forEach((s=>{e&&!e(s)||(this.scene.addLight(s),t.push(s))})),this.meshes.forEach((s=>{e&&!e(s)||(this.scene.addMesh(s),t.push(s))})),this.skeletons.forEach((t=>{e&&!e(t)||this.scene.addSkeleton(t)})),this.animations.forEach((t=>{e&&!e(t)||this.scene.addAnimation(t)})),this.animationGroups.forEach((t=>{e&&!e(t)||this.scene.addAnimationGroup(t)})),this.multiMaterials.forEach((t=>{e&&!e(t)||this.scene.addMultiMaterial(t)})),this.materials.forEach((t=>{e&&!e(t)||this.scene.addMaterial(t)})),this.morphTargetManagers.forEach((t=>{e&&!e(t)||this.scene.addMorphTargetManager(t)})),this.geometries.forEach((t=>{e&&!e(t)||this.scene.addGeometry(t)})),this.transformNodes.forEach((s=>{e&&!e(s)||(this.scene.addTransformNode(s),t.push(s))})),this.actionManagers.forEach((t=>{e&&!e(t)||this.scene.addActionManager(t)})),this.textures.forEach((t=>{e&&!e(t)||this.scene.addTexture(t)})),this.reflectionProbes.forEach((t=>{e&&!e(t)||this.scene.addReflectionProbe(t)}));for(const e of t)e.parent&&-1===this.scene.getNodes().indexOf(e.parent)&&(e.setParent?e.setParent(null):e.parent=null)}removeAllFromScene(){this._isValidHierarchy()||s.Warn("SceneSerializer.removeAllFromScene: The Asset Container hierarchy is not valid."),this._wasAddedToScene=!1,this.removeFromScene(null),this.environmentTexture===this.scene.environmentTexture&&(this.scene.environmentTexture=null);for(const e of this.scene._serializableComponents)e.removeFromContainer(this)}removeFromScene(e=null){this.cameras.forEach((t=>{e&&!e(t)||this.scene.removeCamera(t)})),this.lights.forEach((t=>{e&&!e(t)||this.scene.removeLight(t)})),this.meshes.forEach((t=>{e&&!e(t)||this.scene.removeMesh(t,!0)})),this.skeletons.forEach((t=>{e&&!e(t)||this.scene.removeSkeleton(t)})),this.animations.forEach((t=>{e&&!e(t)||this.scene.removeAnimation(t)})),this.animationGroups.forEach((t=>{e&&!e(t)||this.scene.removeAnimationGroup(t)})),this.multiMaterials.forEach((t=>{e&&!e(t)||this.scene.removeMultiMaterial(t)})),this.materials.forEach((t=>{e&&!e(t)||this.scene.removeMaterial(t)})),this.morphTargetManagers.forEach((t=>{e&&!e(t)||this.scene.removeMorphTargetManager(t)})),this.geometries.forEach((t=>{e&&!e(t)||this.scene.removeGeometry(t)})),this.transformNodes.forEach((t=>{e&&!e(t)||this.scene.removeTransformNode(t)})),this.actionManagers.forEach((t=>{e&&!e(t)||this.scene.removeActionManager(t)})),this.textures.forEach((t=>{e&&!e(t)||this.scene.removeTexture(t)})),this.reflectionProbes.forEach((t=>{e&&!e(t)||this.scene.removeReflectionProbe(t)}))}dispose(){this.cameras.slice(0).forEach((e=>{e.dispose()})),this.cameras.length=0,this.lights.slice(0).forEach((e=>{e.dispose()})),this.lights.length=0,this.meshes.slice(0).forEach((e=>{e.dispose()})),this.meshes.length=0,this.skeletons.slice(0).forEach((e=>{e.dispose()})),this.skeletons.length=0,this.animationGroups.slice(0).forEach((e=>{e.dispose()})),this.animationGroups.length=0,this.multiMaterials.slice(0).forEach((e=>{e.dispose()})),this.multiMaterials.length=0,this.materials.slice(0).forEach((e=>{e.dispose()})),this.materials.length=0,this.geometries.slice(0).forEach((e=>{e.dispose()})),this.geometries.length=0,this.transformNodes.slice(0).forEach((e=>{e.dispose()})),this.transformNodes.length=0,this.actionManagers.slice(0).forEach((e=>{e.dispose()})),this.actionManagers.length=0,this.textures.slice(0).forEach((e=>{e.dispose()})),this.textures.length=0,this.reflectionProbes.slice(0).forEach((e=>{e.dispose()})),this.reflectionProbes.length=0,this.morphTargetManagers.slice(0).forEach((e=>{e.dispose()})),this.morphTargetManagers.length=0,this.environmentTexture&&(this.environmentTexture.dispose(),this.environmentTexture=null);for(const e of this.scene._serializableComponents)e.removeFromContainer(this,!0);this._onContextRestoredObserver&&(this.scene.getEngine().onContextRestoredObservable.remove(this._onContextRestoredObserver),this._onContextRestoredObserver=null)}_moveAssets(e,t,s){if(e&&t)for(const n of e){let e=!0;if(s)for(const t of s)if(n===t){e=!1;break}e&&(t.push(n),n._parentContainer=this)}}moveAllFromScene(e){this._wasAddedToScene=!1,void 0===e&&(e=new g);for(const t in this)Object.prototype.hasOwnProperty.call(this,t)&&(this[t]=this[t]||("_environmentTexture"===t?null:[]),this._moveAssets(this.scene[t],this[t],e[t]));this.environmentTexture=this.scene.environmentTexture,this.removeAllFromScene()}createRootMesh(){const t=new e("assetContainerRootMesh",this.scene);return this.meshes.forEach((e=>{e.parent||t.addChild(e)})),this.meshes.unshift(t),t}mergeAnimationsTo(e=u.LastCreatedScene,t,s=null){if(!e)return n.Error("No scene available to merge animations to"),[];const r=s||(t=>{let s=null;const n=t.animations.length?t.animations[0].targetProperty:"",r=t.name.split(".").join("").split("_primitive")[0];switch(n){case"position":case"rotationQuaternion":s=e.getTransformNodeByName(t.name)||e.getTransformNodeByName(r);break;case"influence":s=e.getMorphTargetByName(t.name)||e.getMorphTargetByName(r);break;default:s=e.getNodeByName(t.name)||e.getNodeByName(r)}return s});this.getNodes().forEach((e=>{const t=r(e);if(null!==t){for(const s of e.animations){const e=t.animations.filter((e=>e.targetProperty===s.targetProperty));for(const s of e){const e=t.animations.indexOf(s,0);e>-1&&t.animations.splice(e,1)}}t.animations=t.animations.concat(e.animations)}}));const i=[];return this.animationGroups.slice().forEach((e=>{i.push(e.clone(e.name,r)),e.animatables.forEach((e=>{e.stop()}))})),t.forEach((t=>{const s=r(t.target);s&&(e.beginAnimation(s,t.fromFrame,t.toFrame,t.loopAnimation,t.speedRatio,t.onAnimationEnd?t.onAnimationEnd:void 0,void 0,!0,void 0,t.onAnimationLoop?t.onAnimationLoop:void 0),e.stopAnimation(t.target))})),i}populateRootNodes(){this.rootNodes.length=0,this.meshes.forEach((e=>{e.parent||-1!==this.rootNodes.indexOf(e)||this.rootNodes.push(e)})),this.transformNodes.forEach((e=>{e.parent||-1!==this.rootNodes.indexOf(e)||this.rootNodes.push(e)})),this.lights.forEach((e=>{e.parent||-1!==this.rootNodes.indexOf(e)||this.rootNodes.push(e)})),this.cameras.forEach((e=>{e.parent||-1!==this.rootNodes.indexOf(e)||this.rootNodes.push(e)}))}addAllAssetsToContainer(s){if(!s)return;const n=[],r=new Set;for(n.push(s);n.length>0;){const s=n.pop();if(s instanceof e?(s.geometry&&-1===this.geometries.indexOf(s.geometry)&&this.geometries.push(s.geometry),this.meshes.push(s)):s instanceof i?this.transformNodes.push(s):s instanceof f?this.lights.push(s):s instanceof l&&this.cameras.push(s),s instanceof t){if(s.material&&-1===this.materials.indexOf(s.material)){this.materials.push(s.material);for(const e of s.material.getActiveTextures())-1===this.textures.indexOf(e)&&this.textures.push(e)}s.skeleton&&-1===this.skeletons.indexOf(s.skeleton)&&this.skeletons.push(s.skeleton),s.morphTargetManager&&-1===this.morphTargetManagers.indexOf(s.morphTargetManager)&&this.morphTargetManagers.push(s.morphTargetManager)}for(const e of s.getChildren())r.has(e)||n.push(e);r.add(s)}this.populateRootNodes()}}export{_ as A};
|
|
2
|
-
//# sourceMappingURL=assetContainer-CaFtpYEC.esm.min.js.map
|