@babylonjs/viewer 7.27.3-alpha → 7.27.3
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 -18
- package/readme.md +21 -145
- 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 +672 -0
- package/viewer/defaultViewer.js.map +1 -0
- package/viewer/renderOnlyViewer.d.ts +9 -0
- package/viewer/renderOnlyViewer.js +46 -0
- package/viewer/renderOnlyViewer.js.map +1 -0
- package/viewer/viewer.d.ts +258 -0
- package/viewer/viewer.js +783 -0
- package/viewer/viewer.js.map +1 -0
- package/viewer/viewerManager.d.ts +58 -0
- package/viewer/viewerManager.js +91 -0
- package/viewer/viewerManager.js.map +1 -0
- package/viewer/viewerWithTemplate.d.ts +9 -0
- package/viewer/viewerWithTemplate.js +20 -0
- package/viewer/viewerWithTemplate.js.map +1 -0
- package/assets/photoStudio.env +0 -0
- package/dist/babylon-viewer.esm.js +0 -2
- package/dist/babylon-viewer.esm.js.map +0 -1
- package/dist/babylon-viewer.esm.min.js +0 -2
- package/dist/babylon-viewer.esm.min.js.map +0 -1
- package/dist/chunks/EXT_lights_image_based-Ygf4Ve6D.esm.js +0 -172
- package/dist/chunks/EXT_lights_image_based-Ygf4Ve6D.esm.js.map +0 -1
- package/dist/chunks/EXT_lights_image_based-aZgj5lRS.esm.min.js +0 -2
- package/dist/chunks/EXT_lights_image_based-aZgj5lRS.esm.min.js.map +0 -1
- package/dist/chunks/EXT_mesh_gpu_instancing-CLnpX1XX.esm.min.js +0 -2
- package/dist/chunks/EXT_mesh_gpu_instancing-CLnpX1XX.esm.min.js.map +0 -1
- package/dist/chunks/EXT_mesh_gpu_instancing-DNNLBNJD.esm.js +0 -86
- package/dist/chunks/EXT_mesh_gpu_instancing-DNNLBNJD.esm.js.map +0 -1
- package/dist/chunks/EXT_meshopt_compression-CDgY0yqt.esm.js +0 -134
- package/dist/chunks/EXT_meshopt_compression-CDgY0yqt.esm.js.map +0 -1
- package/dist/chunks/EXT_meshopt_compression-D7fFCYZZ.esm.min.js +0 -2
- package/dist/chunks/EXT_meshopt_compression-D7fFCYZZ.esm.min.js.map +0 -1
- package/dist/chunks/EXT_texture_avif-CKViN1K5.esm.js +0 -44
- package/dist/chunks/EXT_texture_avif-CKViN1K5.esm.js.map +0 -1
- package/dist/chunks/EXT_texture_avif-DixidFAT.esm.min.js +0 -2
- package/dist/chunks/EXT_texture_avif-DixidFAT.esm.min.js.map +0 -1
- package/dist/chunks/EXT_texture_webp-8TIjfk7F.esm.min.js +0 -2
- package/dist/chunks/EXT_texture_webp-8TIjfk7F.esm.min.js.map +0 -1
- package/dist/chunks/EXT_texture_webp-WHKcm2rJ.esm.js +0 -43
- package/dist/chunks/EXT_texture_webp-WHKcm2rJ.esm.js.map +0 -1
- package/dist/chunks/ExtrasAsMetadata-qz55vCnu.esm.min.js +0 -2
- package/dist/chunks/ExtrasAsMetadata-qz55vCnu.esm.min.js.map +0 -1
- package/dist/chunks/ExtrasAsMetadata-uNoOr-f7.esm.js +0 -64
- package/dist/chunks/ExtrasAsMetadata-uNoOr-f7.esm.js.map +0 -1
- package/dist/chunks/KHR_animation_pointer-Dzof_6Sa.esm.min.js +0 -2
- package/dist/chunks/KHR_animation_pointer-Dzof_6Sa.esm.min.js.map +0 -1
- package/dist/chunks/KHR_animation_pointer-lcvkJ14B.esm.js +0 -343
- package/dist/chunks/KHR_animation_pointer-lcvkJ14B.esm.js.map +0 -1
- package/dist/chunks/KHR_draco_mesh_compression-DPuBeXqI.esm.min.js +0 -2
- package/dist/chunks/KHR_draco_mesh_compression-DPuBeXqI.esm.min.js.map +0 -1
- package/dist/chunks/KHR_draco_mesh_compression-DfZ7T94l.esm.js +0 -610
- package/dist/chunks/KHR_draco_mesh_compression-DfZ7T94l.esm.js.map +0 -1
- package/dist/chunks/KHR_interactivity-CGWEHMj7.esm.js +0 -4033
- package/dist/chunks/KHR_interactivity-CGWEHMj7.esm.js.map +0 -1
- package/dist/chunks/KHR_interactivity-zFBtjDpF.esm.min.js +0 -2
- package/dist/chunks/KHR_interactivity-zFBtjDpF.esm.min.js.map +0 -1
- package/dist/chunks/KHR_lights_punctual-D9a7fWsv.esm.min.js +0 -2
- package/dist/chunks/KHR_lights_punctual-D9a7fWsv.esm.min.js.map +0 -1
- package/dist/chunks/KHR_lights_punctual-DcNThlQv.esm.js +0 -1253
- package/dist/chunks/KHR_lights_punctual-DcNThlQv.esm.js.map +0 -1
- package/dist/chunks/KHR_materials_anisotropy-CYEooloh.esm.js +0 -64
- package/dist/chunks/KHR_materials_anisotropy-CYEooloh.esm.js.map +0 -1
- package/dist/chunks/KHR_materials_anisotropy-CntgB2dg.esm.min.js +0 -2
- package/dist/chunks/KHR_materials_anisotropy-CntgB2dg.esm.min.js.map +0 -1
- package/dist/chunks/KHR_materials_clearcoat-Dj4cp2I3.esm.js +0 -96
- package/dist/chunks/KHR_materials_clearcoat-Dj4cp2I3.esm.js.map +0 -1
- package/dist/chunks/KHR_materials_clearcoat-pjZQfpxT.esm.min.js +0 -2
- package/dist/chunks/KHR_materials_clearcoat-pjZQfpxT.esm.min.js.map +0 -1
- package/dist/chunks/KHR_materials_diffuse_transmission-CdquLCQ1.esm.js +0 -97
- package/dist/chunks/KHR_materials_diffuse_transmission-CdquLCQ1.esm.js.map +0 -1
- package/dist/chunks/KHR_materials_diffuse_transmission-Cw4pzSbK.esm.min.js +0 -2
- package/dist/chunks/KHR_materials_diffuse_transmission-Cw4pzSbK.esm.min.js.map +0 -1
- package/dist/chunks/KHR_materials_dispersion-B-lnOwLh.esm.js +0 -62
- package/dist/chunks/KHR_materials_dispersion-B-lnOwLh.esm.js.map +0 -1
- package/dist/chunks/KHR_materials_dispersion-CTCYvLde.esm.min.js +0 -2
- package/dist/chunks/KHR_materials_dispersion-CTCYvLde.esm.min.js.map +0 -1
- package/dist/chunks/KHR_materials_emissive_strength-CctNsiUs.esm.min.js +0 -2
- package/dist/chunks/KHR_materials_emissive_strength-CctNsiUs.esm.min.js.map +0 -1
- package/dist/chunks/KHR_materials_emissive_strength-ysB9iNJe.esm.js +0 -55
- package/dist/chunks/KHR_materials_emissive_strength-ysB9iNJe.esm.js.map +0 -1
- package/dist/chunks/KHR_materials_ior-BkR1ysuW.esm.min.js +0 -2
- package/dist/chunks/KHR_materials_ior-BkR1ysuW.esm.min.js.map +0 -1
- package/dist/chunks/KHR_materials_ior-Doqepxmq.esm.js +0 -64
- package/dist/chunks/KHR_materials_ior-Doqepxmq.esm.js.map +0 -1
- package/dist/chunks/KHR_materials_iridescence-CHpYLMd0.esm.min.js +0 -2
- package/dist/chunks/KHR_materials_iridescence-CHpYLMd0.esm.min.js.map +0 -1
- package/dist/chunks/KHR_materials_iridescence-pugw8izD.esm.js +0 -72
- package/dist/chunks/KHR_materials_iridescence-pugw8izD.esm.js.map +0 -1
- package/dist/chunks/KHR_materials_pbrSpecularGlossiness-9Vxmtog7.esm.js +0 -81
- package/dist/chunks/KHR_materials_pbrSpecularGlossiness-9Vxmtog7.esm.js.map +0 -1
- package/dist/chunks/KHR_materials_pbrSpecularGlossiness-ClzKCEUH.esm.min.js +0 -2
- package/dist/chunks/KHR_materials_pbrSpecularGlossiness-ClzKCEUH.esm.min.js.map +0 -1
- package/dist/chunks/KHR_materials_sheen-Cb2GejUe.esm.js +0 -85
- package/dist/chunks/KHR_materials_sheen-Cb2GejUe.esm.js.map +0 -1
- package/dist/chunks/KHR_materials_sheen-ozFjYHiJ.esm.min.js +0 -2
- package/dist/chunks/KHR_materials_sheen-ozFjYHiJ.esm.min.js.map +0 -1
- package/dist/chunks/KHR_materials_specular-B3JFPowx.esm.js +0 -75
- package/dist/chunks/KHR_materials_specular-B3JFPowx.esm.js.map +0 -1
- package/dist/chunks/KHR_materials_specular-CWeE9DzG.esm.min.js +0 -2
- package/dist/chunks/KHR_materials_specular-CWeE9DzG.esm.min.js.map +0 -1
- package/dist/chunks/KHR_materials_transmission-BfzyObgX.esm.js +0 -307
- package/dist/chunks/KHR_materials_transmission-BfzyObgX.esm.js.map +0 -1
- package/dist/chunks/KHR_materials_transmission-Ye6uaejW.esm.min.js +0 -2
- package/dist/chunks/KHR_materials_transmission-Ye6uaejW.esm.min.js.map +0 -1
- package/dist/chunks/KHR_materials_unlit-B5Is72ED.esm.min.js +0 -2
- package/dist/chunks/KHR_materials_unlit-B5Is72ED.esm.min.js.map +0 -1
- package/dist/chunks/KHR_materials_unlit-BC0vEvbj.esm.js +0 -74
- package/dist/chunks/KHR_materials_unlit-BC0vEvbj.esm.js.map +0 -1
- package/dist/chunks/KHR_materials_variants-DGE8rFOL.esm.js +0 -238
- package/dist/chunks/KHR_materials_variants-DGE8rFOL.esm.js.map +0 -1
- package/dist/chunks/KHR_materials_variants-DTf-LiNj.esm.min.js +0 -2
- package/dist/chunks/KHR_materials_variants-DTf-LiNj.esm.min.js.map +0 -1
- package/dist/chunks/KHR_materials_volume-BS8cOCRE.esm.js +0 -87
- package/dist/chunks/KHR_materials_volume-BS8cOCRE.esm.js.map +0 -1
- package/dist/chunks/KHR_materials_volume-CYuL15du.esm.min.js +0 -2
- package/dist/chunks/KHR_materials_volume-CYuL15du.esm.min.js.map +0 -1
- package/dist/chunks/KHR_mesh_quantization-BrwUFNds.esm.js +0 -26
- package/dist/chunks/KHR_mesh_quantization-BrwUFNds.esm.js.map +0 -1
- package/dist/chunks/KHR_mesh_quantization-By2LdaRV.esm.min.js +0 -2
- package/dist/chunks/KHR_mesh_quantization-By2LdaRV.esm.min.js.map +0 -1
- package/dist/chunks/KHR_texture_basisu-Bk28e0ni.esm.min.js +0 -2
- package/dist/chunks/KHR_texture_basisu-Bk28e0ni.esm.min.js.map +0 -1
- package/dist/chunks/KHR_texture_basisu-CGRgjN8r.esm.js +0 -43
- package/dist/chunks/KHR_texture_basisu-CGRgjN8r.esm.js.map +0 -1
- package/dist/chunks/KHR_texture_transform-DSaILA4W.esm.js +0 -63
- package/dist/chunks/KHR_texture_transform-DSaILA4W.esm.js.map +0 -1
- package/dist/chunks/KHR_texture_transform-Dasq4SAC.esm.min.js +0 -2
- package/dist/chunks/KHR_texture_transform-Dasq4SAC.esm.min.js.map +0 -1
- package/dist/chunks/KHR_xmp_json_ld-A2CnOVQ_.esm.min.js +0 -2
- package/dist/chunks/KHR_xmp_json_ld-A2CnOVQ_.esm.min.js.map +0 -1
- package/dist/chunks/KHR_xmp_json_ld-DZOs1Tn7.esm.js +0 -51
- package/dist/chunks/KHR_xmp_json_ld-DZOs1Tn7.esm.js.map +0 -1
- package/dist/chunks/MSFT_audio_emitter-Cl_mYa_q.esm.min.js +0 -2
- package/dist/chunks/MSFT_audio_emitter-Cl_mYa_q.esm.min.js.map +0 -1
- package/dist/chunks/MSFT_audio_emitter-D8OS1PWo.esm.js +0 -2207
- package/dist/chunks/MSFT_audio_emitter-D8OS1PWo.esm.js.map +0 -1
- package/dist/chunks/MSFT_lod-BaXwpvgc.esm.min.js +0 -2
- package/dist/chunks/MSFT_lod-BaXwpvgc.esm.min.js.map +0 -1
- package/dist/chunks/MSFT_lod-lJZg3bm6.esm.js +0 -337
- package/dist/chunks/MSFT_lod-lJZg3bm6.esm.js.map +0 -1
- package/dist/chunks/MSFT_minecraftMesh-DPsFg0KM.esm.min.js +0 -2
- package/dist/chunks/MSFT_minecraftMesh-DPsFg0KM.esm.min.js.map +0 -1
- package/dist/chunks/MSFT_minecraftMesh-DvBs1Jwy.esm.js +0 -46
- package/dist/chunks/MSFT_minecraftMesh-DvBs1Jwy.esm.js.map +0 -1
- package/dist/chunks/MSFT_sRGBFactors-B9-KnAwj.esm.js +0 -47
- package/dist/chunks/MSFT_sRGBFactors-B9-KnAwj.esm.js.map +0 -1
- package/dist/chunks/MSFT_sRGBFactors-Db7ZXsPI.esm.min.js +0 -2
- package/dist/chunks/MSFT_sRGBFactors-Db7ZXsPI.esm.min.js.map +0 -1
- package/dist/chunks/animationGroup-B1oPqs33.esm.js +0 -2479
- package/dist/chunks/animationGroup-B1oPqs33.esm.js.map +0 -1
- package/dist/chunks/animationGroup-DFHOhO5V.esm.min.js +0 -2
- package/dist/chunks/animationGroup-DFHOhO5V.esm.min.js.map +0 -1
- package/dist/chunks/assetContainer-Dg1QbxRd.esm.min.js +0 -2
- package/dist/chunks/assetContainer-Dg1QbxRd.esm.min.js.map +0 -1
- package/dist/chunks/assetContainer-MxMg-sp3.esm.js +0 -1720
- package/dist/chunks/assetContainer-MxMg-sp3.esm.js.map +0 -1
- package/dist/chunks/audioEngine-DuOtCD-T.esm.js +0 -305
- package/dist/chunks/audioEngine-DuOtCD-T.esm.js.map +0 -1
- package/dist/chunks/audioEngine-PZkzKVve.esm.min.js +0 -2
- package/dist/chunks/audioEngine-PZkzKVve.esm.min.js.map +0 -1
- package/dist/chunks/bakedVertexAnimation-BKixdc-O.esm.js +0 -119
- package/dist/chunks/bakedVertexAnimation-BKixdc-O.esm.js.map +0 -1
- package/dist/chunks/bakedVertexAnimation-CVyTi-o9.esm.min.js +0 -2
- package/dist/chunks/bakedVertexAnimation-CVyTi-o9.esm.min.js.map +0 -1
- package/dist/chunks/basisTextureLoader-BAYJCOf3.esm.min.js +0 -2
- package/dist/chunks/basisTextureLoader-BAYJCOf3.esm.min.js.map +0 -1
- package/dist/chunks/basisTextureLoader-Dv6fpeks.esm.js +0 -600
- package/dist/chunks/basisTextureLoader-Dv6fpeks.esm.js.map +0 -1
- package/dist/chunks/dds-A809lttS.esm.js +0 -540
- package/dist/chunks/dds-A809lttS.esm.js.map +0 -1
- package/dist/chunks/dds-C1Le3FXM.esm.min.js +0 -2
- package/dist/chunks/dds-C1Le3FXM.esm.min.js.map +0 -1
- package/dist/chunks/ddsTextureLoader-BHWp4kKo.esm.js +0 -88
- package/dist/chunks/ddsTextureLoader-BHWp4kKo.esm.js.map +0 -1
- package/dist/chunks/ddsTextureLoader-DBix2sUk.esm.min.js +0 -2
- package/dist/chunks/ddsTextureLoader-DBix2sUk.esm.min.js.map +0 -1
- package/dist/chunks/decalFragment-B244ARUe.esm.min.js +0 -2
- package/dist/chunks/decalFragment-B244ARUe.esm.min.js.map +0 -1
- package/dist/chunks/decalFragment-DrWcKj4G.esm.js +0 -18
- package/dist/chunks/decalFragment-DrWcKj4G.esm.js.map +0 -1
- package/dist/chunks/default.fragment-BBWl_Nk9.esm.min.js +0 -2
- package/dist/chunks/default.fragment-BBWl_Nk9.esm.min.js.map +0 -1
- package/dist/chunks/default.fragment-C2oy9mM3.esm.min.js +0 -2
- package/dist/chunks/default.fragment-C2oy9mM3.esm.min.js.map +0 -1
- package/dist/chunks/default.fragment-Dm7K4II5.esm.js +0 -449
- package/dist/chunks/default.fragment-Dm7K4II5.esm.js.map +0 -1
- package/dist/chunks/default.fragment-oGTMg7mF.esm.js +0 -515
- package/dist/chunks/default.fragment-oGTMg7mF.esm.js.map +0 -1
- package/dist/chunks/default.vertex-BBvbssIy.esm.js +0 -180
- package/dist/chunks/default.vertex-BBvbssIy.esm.js.map +0 -1
- package/dist/chunks/default.vertex-EBX2mmsC.esm.min.js +0 -2
- package/dist/chunks/default.vertex-EBX2mmsC.esm.min.js.map +0 -1
- package/dist/chunks/default.vertex-M90-09le.esm.min.js +0 -2
- package/dist/chunks/default.vertex-M90-09le.esm.min.js.map +0 -1
- package/dist/chunks/default.vertex-fETlDBid.esm.js +0 -199
- package/dist/chunks/default.vertex-fETlDBid.esm.js.map +0 -1
- package/dist/chunks/defaultUboDeclaration-BgptXziZ.esm.js +0 -13
- package/dist/chunks/defaultUboDeclaration-BgptXziZ.esm.js.map +0 -1
- package/dist/chunks/defaultUboDeclaration-C9z6HhL0.esm.js +0 -15
- package/dist/chunks/defaultUboDeclaration-C9z6HhL0.esm.js.map +0 -1
- package/dist/chunks/defaultUboDeclaration-CKjaCHTr.esm.min.js +0 -2
- package/dist/chunks/defaultUboDeclaration-CKjaCHTr.esm.min.js.map +0 -1
- package/dist/chunks/defaultUboDeclaration-DWqfSK6k.esm.min.js +0 -2
- package/dist/chunks/defaultUboDeclaration-DWqfSK6k.esm.min.js.map +0 -1
- package/dist/chunks/drawWrapper.functions-CKg3_9x4.esm.js +0 -11
- package/dist/chunks/drawWrapper.functions-CKg3_9x4.esm.js.map +0 -1
- package/dist/chunks/drawWrapper.functions-ng7lvueZ.esm.min.js +0 -2
- package/dist/chunks/drawWrapper.functions-ng7lvueZ.esm.min.js.map +0 -1
- package/dist/chunks/dumpTools-BlDyPX53.esm.js +0 -401
- package/dist/chunks/dumpTools-BlDyPX53.esm.js.map +0 -1
- package/dist/chunks/dumpTools-CQV4uT1J.esm.min.js +0 -2
- package/dist/chunks/dumpTools-CQV4uT1J.esm.min.js.map +0 -1
- package/dist/chunks/engine--aYhwp2N.esm.min.js +0 -2
- package/dist/chunks/engine--aYhwp2N.esm.min.js.map +0 -1
- package/dist/chunks/engine-LGpBpXDb.esm.js +0 -2174
- package/dist/chunks/engine-LGpBpXDb.esm.js.map +0 -1
- package/dist/chunks/engine.common-BGhVKqsM.esm.js +0 -1088
- package/dist/chunks/engine.common-BGhVKqsM.esm.js.map +0 -1
- package/dist/chunks/engine.common-DSJsp8kE.esm.min.js +0 -2
- package/dist/chunks/engine.common-DSJsp8kE.esm.min.js.map +0 -1
- package/dist/chunks/envTextureLoader-BWACBI7q.esm.js +0 -65
- package/dist/chunks/envTextureLoader-BWACBI7q.esm.js.map +0 -1
- package/dist/chunks/envTextureLoader-COieWhmh.esm.min.js +0 -2
- package/dist/chunks/envTextureLoader-COieWhmh.esm.min.js.map +0 -1
- package/dist/chunks/environmentTextureTools-B34IF0Wu.esm.js +0 -382
- package/dist/chunks/environmentTextureTools-B34IF0Wu.esm.js.map +0 -1
- package/dist/chunks/environmentTextureTools-CMNXRt-X.esm.min.js +0 -2
- package/dist/chunks/environmentTextureTools-CMNXRt-X.esm.min.js.map +0 -1
- package/dist/chunks/exrTextureLoader-NS4TiorD.esm.min.js +0 -2
- package/dist/chunks/exrTextureLoader-NS4TiorD.esm.min.js.map +0 -1
- package/dist/chunks/exrTextureLoader-SkKsm_kE.esm.js +0 -1682
- package/dist/chunks/exrTextureLoader-SkKsm_kE.esm.js.map +0 -1
- package/dist/chunks/fogFragment-LT8zYkLA.esm.min.js +0 -2
- package/dist/chunks/fogFragment-LT8zYkLA.esm.min.js.map +0 -1
- package/dist/chunks/fogFragment-U1Pc06dI.esm.js +0 -102
- package/dist/chunks/fogFragment-U1Pc06dI.esm.js.map +0 -1
- package/dist/chunks/fresnelFunction-8LQw3KF2.esm.min.js +0 -2
- package/dist/chunks/fresnelFunction-8LQw3KF2.esm.min.js.map +0 -1
- package/dist/chunks/fresnelFunction-t7n57Vdh.esm.js +0 -12
- package/dist/chunks/fresnelFunction-t7n57Vdh.esm.js.map +0 -1
- package/dist/chunks/glTFLoader-DbbHaBqn.esm.js +0 -7563
- package/dist/chunks/glTFLoader-DbbHaBqn.esm.js.map +0 -1
- package/dist/chunks/glTFLoader-DzS5evvi.esm.min.js +0 -2
- package/dist/chunks/glTFLoader-DzS5evvi.esm.min.js.map +0 -1
- package/dist/chunks/glTFLoaderAnimation-0Poh5xlZ.esm.min.js +0 -2
- package/dist/chunks/glTFLoaderAnimation-0Poh5xlZ.esm.min.js.map +0 -1
- package/dist/chunks/glTFLoaderAnimation-CSLbRDfZ.esm.js +0 -77
- package/dist/chunks/glTFLoaderAnimation-CSLbRDfZ.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-C2lm51MF.esm.min.js +0 -2
- package/dist/chunks/harmonicsFunctions-C2lm51MF.esm.min.js.map +0 -1
- package/dist/chunks/harmonicsFunctions-CVKERnoD.esm.js +0 -34
- package/dist/chunks/harmonicsFunctions-CVKERnoD.esm.js.map +0 -1
- package/dist/chunks/harmonicsFunctions-CeQbmg1x.esm.min.js +0 -2
- package/dist/chunks/harmonicsFunctions-CeQbmg1x.esm.min.js.map +0 -1
- package/dist/chunks/harmonicsFunctions-DUlyAl4T.esm.js +0 -35
- package/dist/chunks/harmonicsFunctions-DUlyAl4T.esm.js.map +0 -1
- package/dist/chunks/hdrTextureLoader-CG4Foz5m.esm.min.js +0 -2
- package/dist/chunks/hdrTextureLoader-CG4Foz5m.esm.min.js.map +0 -1
- package/dist/chunks/hdrTextureLoader-D39QMxFP.esm.js +0 -252
- package/dist/chunks/hdrTextureLoader-D39QMxFP.esm.js.map +0 -1
- package/dist/chunks/helperFunctions-0IKgjSdY.esm.min.js +0 -2
- package/dist/chunks/helperFunctions-0IKgjSdY.esm.min.js.map +0 -1
- package/dist/chunks/helperFunctions-BN9iVPlY.esm.min.js +0 -2
- package/dist/chunks/helperFunctions-BN9iVPlY.esm.min.js.map +0 -1
- package/dist/chunks/helperFunctions-BXQuFBdR.esm.js +0 -108
- package/dist/chunks/helperFunctions-BXQuFBdR.esm.js.map +0 -1
- package/dist/chunks/helperFunctions-D-M9OKG7.esm.js +0 -80
- package/dist/chunks/helperFunctions-D-M9OKG7.esm.js.map +0 -1
- package/dist/chunks/index-CmxfKF36.esm.js +0 -71426
- package/dist/chunks/index-CmxfKF36.esm.js.map +0 -1
- package/dist/chunks/index-D26y1EtY.esm.min.js +0 -57
- package/dist/chunks/index-D26y1EtY.esm.min.js.map +0 -1
- package/dist/chunks/ktxTextureLoader-BAvR2hyc.esm.min.js +0 -2
- package/dist/chunks/ktxTextureLoader-BAvR2hyc.esm.min.js.map +0 -1
- package/dist/chunks/ktxTextureLoader-Bfh49LMF.esm.js +0 -814
- package/dist/chunks/ktxTextureLoader-Bfh49LMF.esm.js.map +0 -1
- package/dist/chunks/logDepthDeclaration-D1bDUT11.esm.min.js +0 -2
- package/dist/chunks/logDepthDeclaration-D1bDUT11.esm.min.js.map +0 -1
- package/dist/chunks/logDepthDeclaration-DEuA-X0_.esm.js +0 -20
- package/dist/chunks/logDepthDeclaration-DEuA-X0_.esm.js.map +0 -1
- package/dist/chunks/logDepthDeclaration-Df7xMOV6.esm.js +0 -35
- package/dist/chunks/logDepthDeclaration-Df7xMOV6.esm.js.map +0 -1
- package/dist/chunks/logDepthDeclaration-hu2SIiR_.esm.min.js +0 -2
- package/dist/chunks/logDepthDeclaration-hu2SIiR_.esm.min.js.map +0 -1
- package/dist/chunks/logDepthVertex-B7IBqULl.esm.js +0 -77
- package/dist/chunks/logDepthVertex-B7IBqULl.esm.js.map +0 -1
- package/dist/chunks/logDepthVertex-C0wI9SMm.esm.js +0 -488
- package/dist/chunks/logDepthVertex-C0wI9SMm.esm.js.map +0 -1
- package/dist/chunks/logDepthVertex-CVD3Mf3L.esm.min.js +0 -2
- package/dist/chunks/logDepthVertex-CVD3Mf3L.esm.min.js.map +0 -1
- package/dist/chunks/logDepthVertex-DJB2NHRC.esm.min.js +0 -2
- package/dist/chunks/logDepthVertex-DJB2NHRC.esm.min.js.map +0 -1
- package/dist/chunks/mainUVVaryingDeclaration-CvKBnwI6.esm.min.js +0 -2
- package/dist/chunks/mainUVVaryingDeclaration-CvKBnwI6.esm.min.js.map +0 -1
- package/dist/chunks/mainUVVaryingDeclaration-DfbCqCAG.esm.js +0 -11
- package/dist/chunks/mainUVVaryingDeclaration-DfbCqCAG.esm.js.map +0 -1
- package/dist/chunks/meshUboDeclaration-CEddmeXN.esm.min.js +0 -2
- package/dist/chunks/meshUboDeclaration-CEddmeXN.esm.min.js.map +0 -1
- package/dist/chunks/meshUboDeclaration-CosMwf63.esm.js +0 -24
- package/dist/chunks/meshUboDeclaration-CosMwf63.esm.js.map +0 -1
- package/dist/chunks/objFileLoader-CFfBtBXK.esm.js +0 -1338
- package/dist/chunks/objFileLoader-CFfBtBXK.esm.js.map +0 -1
- package/dist/chunks/objFileLoader-CLLtmN75.esm.min.js +0 -2
- package/dist/chunks/objFileLoader-CLLtmN75.esm.min.js.map +0 -1
- package/dist/chunks/oitFragment-BPxzkgmy.esm.js +0 -1150
- package/dist/chunks/oitFragment-BPxzkgmy.esm.js.map +0 -1
- package/dist/chunks/oitFragment-CKyYKk_V.esm.js +0 -1210
- package/dist/chunks/oitFragment-CKyYKk_V.esm.js.map +0 -1
- package/dist/chunks/oitFragment-D__F_mwd.esm.min.js +0 -2
- package/dist/chunks/oitFragment-D__F_mwd.esm.min.js.map +0 -1
- package/dist/chunks/oitFragment-d1nZ2t4K.esm.min.js +0 -2
- package/dist/chunks/oitFragment-d1nZ2t4K.esm.min.js.map +0 -1
- package/dist/chunks/pass.fragment-BNxucekE.esm.js +0 -15
- package/dist/chunks/pass.fragment-BNxucekE.esm.js.map +0 -1
- package/dist/chunks/pass.fragment-BPWOV-np.esm.min.js +0 -2
- package/dist/chunks/pass.fragment-BPWOV-np.esm.min.js.map +0 -1
- package/dist/chunks/pass.fragment-BT7Wkeay.esm.js +0 -15
- package/dist/chunks/pass.fragment-BT7Wkeay.esm.js.map +0 -1
- package/dist/chunks/pass.fragment-LRSSF8o-.esm.min.js +0 -2
- package/dist/chunks/pass.fragment-LRSSF8o-.esm.min.js.map +0 -1
- package/dist/chunks/pbr.fragment-B-1FVaiM.esm.min.js +0 -2
- package/dist/chunks/pbr.fragment-B-1FVaiM.esm.min.js.map +0 -1
- package/dist/chunks/pbr.fragment-Cnob4F0w.esm.js +0 -3165
- package/dist/chunks/pbr.fragment-Cnob4F0w.esm.js.map +0 -1
- package/dist/chunks/pbr.fragment-DKP5BPM5.esm.min.js +0 -2
- package/dist/chunks/pbr.fragment-DKP5BPM5.esm.min.js.map +0 -1
- package/dist/chunks/pbr.fragment-dkGgJBhW.esm.js +0 -3219
- package/dist/chunks/pbr.fragment-dkGgJBhW.esm.js.map +0 -1
- package/dist/chunks/pbr.vertex-BkhVZoqd.esm.min.js +0 -2
- package/dist/chunks/pbr.vertex-BkhVZoqd.esm.min.js.map +0 -1
- package/dist/chunks/pbr.vertex-CDl2_yqv.esm.min.js +0 -2
- package/dist/chunks/pbr.vertex-CDl2_yqv.esm.min.js.map +0 -1
- package/dist/chunks/pbr.vertex-D0xvyV6H.esm.js +0 -335
- package/dist/chunks/pbr.vertex-D0xvyV6H.esm.js.map +0 -1
- package/dist/chunks/pbr.vertex-Dj0oqlUE.esm.js +0 -210
- package/dist/chunks/pbr.vertex-Dj0oqlUE.esm.js.map +0 -1
- package/dist/chunks/postprocess.vertex-DDpCNC2k.esm.min.js +0 -2
- package/dist/chunks/postprocess.vertex-DDpCNC2k.esm.min.js.map +0 -1
- package/dist/chunks/postprocess.vertex-GjsTEgwN.esm.js +0 -18
- package/dist/chunks/postprocess.vertex-GjsTEgwN.esm.js.map +0 -1
- package/dist/chunks/postprocess.vertex-KKSOfy8-.esm.js +0 -20
- package/dist/chunks/postprocess.vertex-KKSOfy8-.esm.js.map +0 -1
- package/dist/chunks/postprocess.vertex-VHyB8mOY.esm.min.js +0 -2
- package/dist/chunks/postprocess.vertex-VHyB8mOY.esm.min.js.map +0 -1
- package/dist/chunks/rawTexture-7josWE_E.esm.min.js +0 -2
- package/dist/chunks/rawTexture-7josWE_E.esm.min.js.map +0 -1
- package/dist/chunks/rawTexture-D3RGn_Y3.esm.js +0 -191
- package/dist/chunks/rawTexture-D3RGn_Y3.esm.js.map +0 -1
- package/dist/chunks/rgbdDecode.fragment-BtUJN13h.esm.min.js +0 -2
- package/dist/chunks/rgbdDecode.fragment-BtUJN13h.esm.min.js.map +0 -1
- package/dist/chunks/rgbdDecode.fragment-BtdqfTWQ.esm.min.js +0 -2
- package/dist/chunks/rgbdDecode.fragment-BtdqfTWQ.esm.min.js.map +0 -1
- package/dist/chunks/rgbdDecode.fragment-CLNFajlp.esm.js +0 -17
- package/dist/chunks/rgbdDecode.fragment-CLNFajlp.esm.js.map +0 -1
- package/dist/chunks/rgbdDecode.fragment-DMB5yPRL.esm.js +0 -17
- package/dist/chunks/rgbdDecode.fragment-DMB5yPRL.esm.js.map +0 -1
- package/dist/chunks/rgbdEncode.fragment-BnOVA4HW.esm.min.js +0 -2
- package/dist/chunks/rgbdEncode.fragment-BnOVA4HW.esm.min.js.map +0 -1
- package/dist/chunks/rgbdEncode.fragment-CSJcTm4k.esm.min.js +0 -2
- package/dist/chunks/rgbdEncode.fragment-CSJcTm4k.esm.min.js.map +0 -1
- package/dist/chunks/rgbdEncode.fragment-DHzrld7f.esm.js +0 -17
- package/dist/chunks/rgbdEncode.fragment-DHzrld7f.esm.js.map +0 -1
- package/dist/chunks/rgbdEncode.fragment-DZI2P9CT.esm.js +0 -17
- package/dist/chunks/rgbdEncode.fragment-DZI2P9CT.esm.js.map +0 -1
- package/dist/chunks/splatFileLoader-CJ9hkIU9.esm.js +0 -3344
- package/dist/chunks/splatFileLoader-CJ9hkIU9.esm.js.map +0 -1
- package/dist/chunks/splatFileLoader-D3Xuf1wd.esm.min.js +0 -2
- package/dist/chunks/splatFileLoader-D3Xuf1wd.esm.min.js.map +0 -1
- package/dist/chunks/standardMaterial-B97i8ObR.esm.min.js +0 -2
- package/dist/chunks/standardMaterial-B97i8ObR.esm.min.js.map +0 -1
- package/dist/chunks/standardMaterial-Dcm3xcYZ.esm.js +0 -1809
- package/dist/chunks/standardMaterial-Dcm3xcYZ.esm.js.map +0 -1
- package/dist/chunks/stlFileLoader-BSakO34j.esm.min.js +0 -2
- package/dist/chunks/stlFileLoader-BSakO34j.esm.min.js.map +0 -1
- package/dist/chunks/stlFileLoader-Ces0qL5y.esm.js +0 -238
- package/dist/chunks/stlFileLoader-Ces0qL5y.esm.js.map +0 -1
- package/dist/chunks/tgaTextureLoader-CP2ER_7M.esm.min.js +0 -2
- package/dist/chunks/tgaTextureLoader-CP2ER_7M.esm.min.js.map +0 -1
- package/dist/chunks/tgaTextureLoader-Ctm-sK7q.esm.js +0 -349
- package/dist/chunks/tgaTextureLoader-Ctm-sK7q.esm.js.map +0 -1
- package/dist/chunks/thinEngine--tZshyei.esm.min.js +0 -2
- package/dist/chunks/thinEngine--tZshyei.esm.min.js.map +0 -1
- package/dist/chunks/thinEngine-CSZs3Ke9.esm.js +0 -3721
- package/dist/chunks/thinEngine-CSZs3Ke9.esm.js.map +0 -1
- package/dist/chunks/thinInstanceMesh-DkrLzadP.esm.js +0 -314
- package/dist/chunks/thinInstanceMesh-DkrLzadP.esm.js.map +0 -1
- package/dist/chunks/thinInstanceMesh-lJhTtbGF.esm.min.js +0 -2
- package/dist/chunks/thinInstanceMesh-lJhTtbGF.esm.min.js.map +0 -1
- package/dist/chunks/vertexColorMixing-BxbZ0s-J.esm.js +0 -528
- package/dist/chunks/vertexColorMixing-BxbZ0s-J.esm.js.map +0 -1
- package/dist/chunks/vertexColorMixing-hZMijwrN.esm.min.js +0 -2
- package/dist/chunks/vertexColorMixing-hZMijwrN.esm.min.js.map +0 -1
- package/dist/chunks/webgpuEngine-4asfvMRb.esm.js +0 -11173
- package/dist/chunks/webgpuEngine-4asfvMRb.esm.js.map +0 -1
- package/dist/chunks/webgpuEngine-DVdq-XT7.esm.min.js +0 -2
- package/dist/chunks/webgpuEngine-DVdq-XT7.esm.min.js.map +0 -1
- package/dist/chunks/workerPool-BUOov2K1.esm.js +0 -122
- package/dist/chunks/workerPool-BUOov2K1.esm.js.map +0 -1
- package/dist/chunks/workerPool-BWHiDmEZ.esm.min.js +0 -2
- package/dist/chunks/workerPool-BWHiDmEZ.esm.min.js.map +0 -1
- package/docs/ViewerDefault.jpg +0 -0
- package/docs/ViewerParts.jpg +0 -0
- package/docs/ViewerSlots.jpg +0 -0
- package/docs/ViewerStyled.jpg +0 -0
- package/lib/index.d.ts +0 -287
- package/lib/index.js +0 -1020
- package/lib/index.js.map +0 -1
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{i as t,R as e,x as i,y as s,z as r,H as o,J as n,K as a,N as c,Q as l,W as u,X as h,Y as d,Z as p,_ as m,V as _,M as f,$ as g,t as x,v as y,a0 as T,a1 as v,L as w,T as b,s as P,a2 as R,C as M,k as A,a3 as C,a4 as I,a5 as k,E as V,a6 as F,a7 as z,p as D,a8 as B,a9 as S,B as U,aa as E,w as W}from"./index-D26y1EtY.esm.min.js";import"./fogFragment-LT8zYkLA.esm.min.js";import"./logDepthDeclaration-D1bDUT11.esm.min.js";import"./logDepthVertex-DJB2NHRC.esm.min.js";import{R as L}from"./rawTexture-7josWE_E.esm.min.js";import"./thinInstanceMesh-lJhTtbGF.esm.min.js";import{A as Z}from"./assetContainer-Dg1QbxRd.esm.min.js";import{S as N}from"./standardMaterial-B97i8ObR.esm.min.js";t.ShadersStore.gaussianSplattingPixelShader="#include<clipPlaneFragmentDeclaration>\n#include<logDepthDeclaration>\n#include<fogFragmentDeclaration>\nvarying vec4 vColor;varying vec2 vPosition;void main () { \n#include<clipPlaneFragment>\nfloat A=-dot(vPosition,vPosition);if (A<-4.0) discard;float B=exp(A)*vColor.a;\n#include<logDepthFragment>\nvec3 color=vColor.rgb;\n#ifdef FOG\n#include<fogFragment>\n#endif\ngl_FragColor=vec4(color,B);}\n";t.IncludesShadersStore.gaussianSplattingVertexDeclaration="uniform mat4 world;uniform mat4 view;uniform mat4 projection;\n";t.IncludesShadersStore.gaussianSplattingUboDeclaration="#include<sceneUboDeclaration>\n#include<meshUboDeclaration>\n";t.ShadersStore.gaussianSplattingVertexShader="#include<__decl__gaussianSplattingVertex>\n#ifdef LOGARITHMICDEPTH\n#extension GL_EXT_frag_depth : enable\n#endif\n#include<clipPlaneVertexDeclaration>\n#include<fogVertexDeclaration>\n#include<logDepthDeclaration>\nattribute vec2 position;attribute float splatIndex;uniform vec2 invViewport;uniform vec2 dataTextureSize;uniform vec2 focal;uniform sampler2D covariancesATexture;uniform sampler2D covariancesBTexture;uniform sampler2D centersTexture;uniform sampler2D colorsTexture;varying vec4 vColor;varying vec2 vPosition;\n#if !defined(WEBGL2) && !defined(WEBGPU) && !defined(NATIVE)\nmat3 transpose(mat3 matrix) {return mat3(matrix[0][0],matrix[1][0],matrix[2][0],\nmatrix[0][1],matrix[1][1],matrix[2][1],\nmatrix[0][2],matrix[1][2],matrix[2][2]);}\n#endif\nvec2 getDataUV(float index,vec2 textureSize) {float y=floor(index/textureSize.x);float x=index-y*textureSize.x;return vec2((x+0.5)/textureSize.x,(y+0.5)/textureSize.y);}\nvoid main () {vec2 splatUV=getDataUV(splatIndex,dataTextureSize);vec3 center=texture2D(centersTexture,splatUV).xyz;vec4 color=texture2D(colorsTexture,splatUV);vec3 covA=texture2D(covariancesATexture,splatUV).xyz;vec3 covB=texture2D(covariancesBTexture,splatUV).xyz;vec4 worldPos=world*vec4(center,1.0);mat4 modelView=view*world;vec4 camspace=view*worldPos;vec4 pos2d=projection*camspace;float bounds=1.2*pos2d.w;if (pos2d.z<-pos2d.w || pos2d.x<-bounds || pos2d.x>bounds\n|| pos2d.y<-bounds || pos2d.y>bounds) {gl_Position=vec4(0.0,0.0,2.0,1.0);return;}\nmat3 Vrk=mat3(\ncovA.x,covA.y,covA.z,\ncovA.y,covB.x,covB.y,\ncovA.z,covB.y,covB.z\n);mat3 J=mat3(\nfocal.x/camspace.z,0.,-(focal.x*camspace.x)/(camspace.z*camspace.z),\n0.,focal.y/camspace.z,-(focal.y*camspace.y)/(camspace.z*camspace.z),\n0.,0.,0.\n);mat3 invy=mat3(1,0,0,0,-1,0,0,0,1);mat3 T=invy*transpose(mat3(modelView))*J;mat3 cov2d=transpose(T)*Vrk*T;float mid=(cov2d[0][0]+cov2d[1][1])/2.0;float radius=length(vec2((cov2d[0][0]-cov2d[1][1])/2.0,cov2d[0][1]));float lambda1=mid+radius,lambda2=mid-radius;if (lambda2<0.0) return;vec2 diagonalVector=normalize(vec2(cov2d[0][1],lambda1-cov2d[0][0]));vec2 majorAxis=min(sqrt(2.0*lambda1),1024.0)*diagonalVector;vec2 minorAxis=min(sqrt(2.0*lambda2),1024.0)*vec2(diagonalVector.y,-diagonalVector.x);vColor=color;vPosition=position;vec2 vCenter=vec2(pos2d);gl_Position=vec4(\nvCenter \n+ (position.x*majorAxis\n+ position.y*minorAxis)*invViewport*pos2d.w,pos2d.zw);\n#include<clipPlaneVertex>\n#include<fogVertex>\n#include<logDepthVertex>\n}\n";class O extends m{constructor(){super(),this.FOG=!1,this.THIN_INSTANCES=!0,this.LOGARITHMICDEPTH=!1,this.CLIPPLANE=!1,this.CLIPPLANE2=!1,this.CLIPPLANE3=!1,this.CLIPPLANE4=!1,this.CLIPPLANE5=!1,this.CLIPPLANE6=!1,this.rebuild()}}class G extends i{constructor(t,e){super(t,e),this.backFaceCulling=!1}get hasRenderTargetTextures(){return!1}needAlphaTesting(){return!1}needAlphaBlending(){return!0}isReadyForSubMesh(t,e){const i=!0,l=e._drawWrapper;if(l.effect&&this.isFrozen&&l._wasPreviouslyReady&&l._wasPreviouslyUsingInstances===i)return!0;e.materialDefines||(e.materialDefines=new O);const u=this.getScene(),h=e.materialDefines;if(this._isReadyForSubMesh(e))return!0;const d=u.getEngine();if(s(t,u,this._useLogarithmicDepth,this.pointsCloud,this.fogEnabled,!1,h),r(u,d,this,h,i,null,!0),o(t,h,!1,!1),h.isDirty){h.markAsProcessed(),u.resetCachedMaterial();const t=[_.PositionKind,"splatIndex"];n(t,h);const i=["world","view","projection","vFogInfos","vFogColor","logarithmicDepthConstant","invViewport","dataTextureSize","focal"],s=["covariancesATexture","covariancesBTexture","centersTexture","colorsTexture"],r=["Scene","Mesh"];a({uniformsNames:i,uniformBuffersNames:r,samplers:s,defines:h}),c(i);const o=h.toString(),l=u.getEngine().createEffect("gaussianSplatting",{attributes:t,uniformsNames:i,uniformBuffersNames:r,samplers:s,defines:o,onCompiled:this.onCompiled,onError:this.onError},d);e.setEffect(l,h,this._materialContext)}return!(!e.effect||!e.effect.isReady())&&(h._renderId=u.getRenderId(),l._wasPreviouslyReady=!0,l._wasPreviouslyUsingInstances=i,!0)}bindForSubMesh(t,e,i){const s=this.getScene(),r=i.materialDefines;if(!r)return;const o=i.effect;if(!o)return;this._activeEffect=o,e.getMeshUniformBuffer().bindToEffect(o,"Mesh"),e.transferToEffect(t);if(this._mustRebind(s,o,i,e.visibility)){this.bindView(o),this.bindViewProjection(o);const t=s.getEngine(),i=this.getScene().activeCamera,r=t.getRenderWidth(),n=t.getRenderHeight(),a=i?.rigParent?.rigCameras.length||1;this._activeEffect.setFloat2("invViewport",1/(r/a),1/n);let c=1e3;if(i){const t=i.getProjectionMatrix().m[5];c=i.fovMode==l.FOVMODE_VERTICAL_FIXED?n*t/2:r*t/2}this._activeEffect.setFloat2("focal",c,c);const h=e;if(h.covariancesATexture){const t=h.covariancesATexture.getSize();o.setFloat2("dataTextureSize",t.width,t.height),o.setTexture("covariancesATexture",h.covariancesATexture),o.setTexture("covariancesBTexture",h.covariancesBTexture),o.setTexture("centersTexture",h.centersTexture),o.setTexture("colorsTexture",h.colorsTexture)}u(o,this,s)}else s.getEngine()._features.needToAlwaysBindUniformBuffers&&(this._needToBindSceneUbo=!0);h(s,e,o),this.useLogarithmicDepth&&d(r,o,s),this._afterBind(e,this._activeEffect,i)}clone(t){return p.Clone((()=>new G(t,this.getScene())),this)}serialize(){const t=super.serialize();return t.customType="BABYLON.GaussianSplattingMaterial",t}getClassName(){return"GaussianSplattingMaterial"}static Parse(t,e,i){return p.Parse((()=>new G(t.name,e)),t,e,i)}}e("BABYLON.GaussianSplattingMaterial",G);class j extends f{get covariancesATexture(){return this._covariancesATexture}get covariancesBTexture(){return this._covariancesBTexture}get centersTexture(){return this._centersTexture}get colorsTexture(){return this._colorsTexture}constructor(t,e=null,i=null,s=!1){super(t,i),this._vertexCount=0,this._worker=null,this._frameIdLastUpdate=-1,this._modelViewMatrix=g.Identity(),this._canPostToWorker=!0,this._readyToDisplay=!1,this._covariancesATexture=null,this._covariancesBTexture=null,this._centersTexture=null,this._colorsTexture=null,this._splatPositions=null,this._splatIndex=null,this._covariancesA=null,this._covariancesB=null,this._colors=null,this._keepInRam=!1,this._delayedTextureUpdate=null,this._oldDirection=new x;const r=new y;r.positions=[-2,-2,0,2,-2,0,2,2,0,-2,2,0],r.indices=[0,1,2,0,2,3],r.applyToMesh(this),this.subMeshes=[],new T(0,0,4,0,6,this),this.setEnabled(!1),this._keepInRam=s,e&&this.loadFileAsync(e),this.material=new G(this.name+"_material",this._scene)}getClassName(){return"GaussianSplattingMesh"}getTotalVertices(){return this._vertexCount}isReady(t=!1){return!!super.isReady(t,!0)&&(!!this._readyToDisplay||(this._postToWorker(!0),!1))}_postToWorker(t=!1){const e=this.getScene().getFrameId();if(e!==this._frameIdLastUpdate&&this._worker&&this._scene.activeCamera&&this._canPostToWorker){const i=this._scene.activeCamera.getViewMatrix();this.getWorldMatrix().multiplyToRef(i,this._modelViewMatrix),i.invertToRef(v.Matrix[0]),this.getWorldMatrix().multiplyToRef(v.Matrix[0],v.Matrix[1]),x.TransformNormalToRef(x.Forward(this._scene.useRightHandedSystem),v.Matrix[1],v.Vector3[2]),v.Vector3[2].normalize();const s=x.Dot(v.Vector3[2],this._oldDirection);(t||Math.abs(s-1)>=.01)&&(this._oldDirection.copyFrom(v.Vector3[2]),this._frameIdLastUpdate=e,this._canPostToWorker=!1,this._worker.postMessage({view:this._modelViewMatrix.m,depthMix:this._depthMix,useRightHandedSystem:this._scene.useRightHandedSystem},[this._depthMix.buffer]))}}render(t,e,i){return this._postToWorker(),super.render(t,e,i)}static ConvertPLYToSplat(t){const e=new Uint8Array(t),i=(new TextDecoder).decode(e.slice(0,10240)),s="end_header\n",r=i.indexOf(s);if(r<0||!i)return t;const o=parseInt(/element vertex (\d+)\n/.exec(i)[1]);let n=0;const a={double:8,int:4,uint:4,float:4,short:2,ushort:2,uchar:1},c=[],l=i.slice(0,r).split("\n").filter((t=>t.startsWith("property ")));for(const t of l){const[,e,i]=t.split(" ");if(c.push({name:i,type:e,offset:n}),!a[e])return w.Error(`Unsupported property type: ${e}. Are you sure it's a valid Gaussian Splatting file?`),new ArrayBuffer(0);n+=a[e]}const u=.28209479177387814,h=new DataView(t,r+11),d=new ArrayBuffer(32*o),p=new R;for(let t=0;t<o;t++){const e=new Float32Array(d,32*t,3),i=new Float32Array(d,32*t+12,3),s=new Uint8ClampedArray(d,32*t+24,4),r=new Uint8ClampedArray(d,32*t+28,4);let o=255,a=0,l=0,m=0;for(let r=0;r<c.length;r++){const d=c[r];let p;switch(d.type){case"float":p=h.getFloat32(d.offset+t*n,!0);break;case"int":p=h.getInt32(d.offset+t*n,!0);break;default:throw new Error(`Unsupported property type: ${d.type}`)}switch(d.name){case"x":e[0]=p;break;case"y":e[1]=p;break;case"z":e[2]=p;break;case"scale_0":i[0]=Math.exp(p);break;case"scale_1":i[1]=Math.exp(p);break;case"scale_2":i[2]=Math.exp(p);break;case"red":s[0]=p;break;case"green":s[1]=p;break;case"blue":s[2]=p;break;case"f_dc_0":s[0]=255*(.5+u*p);break;case"f_dc_1":s[1]=255*(.5+u*p);break;case"f_dc_2":s[2]=255*(.5+u*p);break;case"f_dc_3":s[3]=255*(.5+u*p);break;case"opacity":s[3]=1/(1+Math.exp(-p))*255;break;case"rot_0":o=p;break;case"rot_1":a=p;break;case"rot_2":l=p;break;case"rot_3":m=p}}p.set(a,l,m,o),p.normalize(),r[0]=128*p.w+128,r[1]=128*p.x+128,r[2]=128*p.y+128,r[3]=128*p.z+128}return d}loadDataAsync(t){return Promise.resolve(this._loadData(t))}loadFileAsync(t){return b.LoadFileAsync(t,!0).then((t=>{this._loadData(j.ConvertPLYToSplat(t))}))}dispose(t){this._covariancesATexture?.dispose(),this._covariancesBTexture?.dispose(),this._centersTexture?.dispose(),this._colorsTexture?.dispose(),this._covariancesATexture=null,this._covariancesBTexture=null,this._centersTexture=null,this._colorsTexture=null,this._worker?.terminate(),this._worker=null,super.dispose(t,!0)}_copyTextures(t){this._covariancesATexture=t.covariancesATexture?.clone(),this._covariancesBTexture=t.covariancesBTexture?.clone(),this._centersTexture=t.centersTexture?.clone(),this._colorsTexture=t.colorsTexture?.clone()}clone(t=""){const e=new j(t,void 0,this.getScene());e._copySource(this),e.makeGeometryUnique(),e._vertexCount=this._vertexCount,e._copyTextures(this),e._modelViewMatrix=g.Identity(),e._splatPositions=this._splatPositions,e._readyToDisplay=!1,e._instanciateWorker();const i=this.getBoundingInfo();return e.getBoundingInfo().reConstruct(i.minimum,i.maximum,this.getWorldMatrix()),e.forcedInstanceCount=e._vertexCount,e.setEnabled(!0),e}updateData(t){if(!t.byteLength)return;this._covariancesATexture||(this._readyToDisplay=!1);const e=new Uint8Array(t),i=new Float32Array(e.buffer),s=e.length/32;s!=this._vertexCount&&this._updateSplatIndexBuffer(s),this._vertexCount=s;const r=this._getTextureSize(s),o=r.x*r.y;this._splatPositions=new Float32Array(3*o);const n=new Float32Array(3*o),a=new Float32Array(3*o),c=v.Matrix[0],l=v.Matrix[1],u=v.Quaternion[0],h=new x(Number.MAX_VALUE,Number.MAX_VALUE,Number.MAX_VALUE),d=new x(-Number.MAX_VALUE,-Number.MAX_VALUE,-Number.MAX_VALUE);for(let t=0;t<s;t++){const s=i[8*t+0],r=-i[8*t+1],o=i[8*t+2];this._splatPositions[3*t+0]=s,this._splatPositions[3*t+1]=r,this._splatPositions[3*t+2]=o,h.minimizeInPlaceFromFloats(s,r,o),d.maximizeInPlaceFromFloats(s,r,o),u.set((e[32*t+28+1]-128)/128,(e[32*t+28+2]-128)/128,(e[32*t+28+3]-128)/128,-(e[32*t+28+0]-128)/128),u.toRotationMatrix(c),g.ScalingToRef(2*i[8*t+3+0],2*i[8*t+3+1],2*i[8*t+3+2],l);const p=c.multiplyToRef(l,v.Matrix[0]).m;n[3*t+0]=p[0]*p[0]+p[1]*p[1]+p[2]*p[2],n[3*t+1]=p[0]*p[4]+p[1]*p[5]+p[2]*p[6],n[3*t+2]=p[0]*p[8]+p[1]*p[9]+p[2]*p[10],a[3*t+0]=p[4]*p[4]+p[5]*p[5]+p[6]*p[6],a[3*t+1]=p[4]*p[8]+p[5]*p[9]+p[6]*p[10],a[3*t+2]=p[8]*p[8]+p[9]*p[9]+p[10]*p[10]}this.getBoundingInfo().reConstruct(h,d,this.getWorldMatrix()),this.setEnabled(!0);const p=(t,e,i,s)=>new L(t,e,i,s,this._scene,!1,!1,M.TEXTURE_BILINEAR_SAMPLINGMODE,M.TEXTURETYPE_FLOAT),m=t=>{const e=t.length/3,i=new Float32Array(4*e);for(let s=0;s<e;++s)i[4*s+0]=t[3*s+0],i[4*s+1]=t[3*s+1],i[4*s+2]=t[3*s+2],i[4*s+3]=1;return i},_=new Float32Array(r.x*r.y*4);for(let t=0;t<this._vertexCount;++t)_[4*t+0]=e[32*t+24+0]/255,_[4*t+1]=e[32*t+24+1]/255,_[4*t+2]=e[32*t+24+2]/255,_[4*t+3]=e[32*t+24+3]/255;if(this._keepInRam&&(this._covariancesA=n,this._covariancesB=a,this._colors=_),this._covariancesATexture){this._delayedTextureUpdate={covA:m(n),covB:m(a),colors:_,centers:m(this._splatPositions)};const t=Float32Array.from(this._splatPositions),e=this._vertexCount;this._worker.postMessage({positions:t,vertexCount:e},[t.buffer]),this._postToWorker(!0)}else this._covariancesATexture=p(m(n),r.x,r.y,M.TEXTUREFORMAT_RGBA),this._covariancesBTexture=p(m(a),r.x,r.y,M.TEXTUREFORMAT_RGBA),this._centersTexture=p(m(this._splatPositions),r.x,r.y,M.TEXTUREFORMAT_RGBA),this._colorsTexture=p(_,r.x,r.y,M.TEXTUREFORMAT_RGBA),this._instanciateWorker()}_loadData(t){t.byteLength&&this.updateData(t)}_updateSplatIndexBuffer(t){(!this._splatIndex||t>this._splatIndex.length)&&(this._splatIndex=new Float32Array(t),this.thinInstanceSetBuffer("splatIndex",this._splatIndex,1,!1)),this.forcedInstanceCount=t}_instanciateWorker(){if(!this._vertexCount)return;this._updateSplatIndexBuffer(this._vertexCount),this._worker?.terminate(),this._worker=new Worker(URL.createObjectURL(new Blob(["(",j._CreateWorker.toString(),")(self)"],{type:"application/javascript"}))),this._depthMix=new BigInt64Array(this._vertexCount);const t=Float32Array.from(this._splatPositions),e=this._vertexCount;this._worker.postMessage({positions:t,vertexCount:e},[t.buffer]),this._worker.onmessage=t=>{this._depthMix=t.data.depthMix;const i=new Uint32Array(t.data.depthMix.buffer);if(this._splatIndex)for(let t=0;t<this._vertexCount;t++)this._splatIndex[t]=i[2*t];if(this._delayedTextureUpdate){const t=(t,e,i,s)=>{this.getEngine().updateTextureData(t.getInternalTexture(),e,0,0,i,s,0,0,!1)},i=this._getTextureSize(e);t(this._covariancesATexture,this._delayedTextureUpdate.covA,i.x,i.y),t(this._covariancesBTexture,this._delayedTextureUpdate.covB,i.x,i.y),t(this._centersTexture,this._delayedTextureUpdate.centers,i.x,i.y),t(this._colorsTexture,this._delayedTextureUpdate.colors,i.x,i.y),this._delayedTextureUpdate=null}this.thinInstanceBufferUpdated("splatIndex"),this._canPostToWorker=!0,this._readyToDisplay=!0}}_getTextureSize(t){const e=this._scene.getEngine(),i=e.getCaps().maxTextureSize;let s=1;if(1!==e.version||e.isWebGPU)s=Math.ceil(t/i);else for(;i*s<t;)s*=2;return s>i&&(w.Error("GaussianSplatting texture size: ("+i+", "+s+"), maxTextureSize: "+i),s=i),new P(i,s)}}j._CreateWorker=function(t){let e,i,s,r,o=0;t.onmessage=n=>{if(n.data.positions)e=n.data.positions,o=n.data.vertexCount;else{const a=n.data.view;if(!e||!a)throw new Error("positions or view is not defined!");i=n.data.depthMix,s=new Uint32Array(i.buffer),r=new Float32Array(i.buffer);for(let t=0;t<o;t++)s[2*t]=t;let c=-1;n.data.useRightHandedSystem&&(c=1);for(let t=0;t<o;t++)r[2*t+1]=1e4+(a[2]*e[3*t+0]+a[6]*e[3*t+1]+a[10]*e[3*t+2])*c;i.sort(),t.postMessage({depthMix:i},[i.buffer])}}};class H{constructor(t,e,i,s,r){this.idx=0,this.color=new A(1,1,1,1),this.position=x.Zero(),this.rotation=x.Zero(),this.uv=new P(0,0),this.velocity=x.Zero(),this.pivot=x.Zero(),this.translateFromPivot=!1,this._pos=0,this._ind=0,this.groupId=0,this.idxInGroup=0,this._stillInvisible=!1,this._rotationMatrix=[1,0,0,0,1,0,0,0,1],this.parentId=null,this._globalPosition=x.Zero(),this.idx=t,this._group=e,this.groupId=i,this.idxInGroup=s,this._pcs=r}get size(){return this.size}set size(t){this.size=t}get quaternion(){return this.rotationQuaternion}set quaternion(t){this.rotationQuaternion=t}intersectsMesh(t,e){if(!t.hasBoundingInfo)return!1;if(!this._pcs.mesh)throw new Error("Point Cloud System doesnt contain the Mesh");if(e)return t.getBoundingInfo().boundingSphere.intersectsPoint(this.position.add(this._pcs.mesh.position));const i=t.getBoundingInfo().boundingBox,s=i.maximumWorld.x,r=i.minimumWorld.x,o=i.maximumWorld.y,n=i.minimumWorld.y,a=i.maximumWorld.z,c=i.minimumWorld.z,l=this.position.x+this._pcs.mesh.position.x,u=this.position.y+this._pcs.mesh.position.y,h=this.position.z+this._pcs.mesh.position.z;return r<=l&&l<=s&&n<=u&&u<=o&&c<=h&&h<=a}getRotationMatrix(t){let e;if(this.rotationQuaternion)e=this.rotationQuaternion;else{e=v.Quaternion[0];const t=this.rotation;R.RotationYawPitchRollToRef(t.y,t.x,t.z,e)}e.toRotationMatrix(t)}}class X{get groupID(){return this.groupId}set groupID(t){this.groupId=t}constructor(t,e){this.groupId=t,this._positionFunction=e}}class K{constructor(t,e,i=Number.MAX_VALUE,s=I){this.origin=t,this.direction=e,this.length=i,this.epsilon=s}clone(){return new K(this.origin.clone(),this.direction.clone(),this.length)}intersectsBoxMinMax(t,e,i=0){const s=K._TmpVector3[0].copyFromFloats(t.x-i,t.y-i,t.z-i),r=K._TmpVector3[1].copyFromFloats(e.x+i,e.y+i,e.z+i);let o,n,a,c,l=0,u=Number.MAX_VALUE;if(Math.abs(this.direction.x)<1e-7){if(this.origin.x<s.x||this.origin.x>r.x)return!1}else if(o=1/this.direction.x,n=(s.x-this.origin.x)*o,a=(r.x-this.origin.x)*o,a===-1/0&&(a=1/0),n>a&&(c=n,n=a,a=c),l=Math.max(n,l),u=Math.min(a,u),l>u)return!1;if(Math.abs(this.direction.y)<1e-7){if(this.origin.y<s.y||this.origin.y>r.y)return!1}else if(o=1/this.direction.y,n=(s.y-this.origin.y)*o,a=(r.y-this.origin.y)*o,a===-1/0&&(a=1/0),n>a&&(c=n,n=a,a=c),l=Math.max(n,l),u=Math.min(a,u),l>u)return!1;if(Math.abs(this.direction.z)<1e-7){if(this.origin.z<s.z||this.origin.z>r.z)return!1}else if(o=1/this.direction.z,n=(s.z-this.origin.z)*o,a=(r.z-this.origin.z)*o,a===-1/0&&(a=1/0),n>a&&(c=n,n=a,a=c),l=Math.max(n,l),u=Math.min(a,u),l>u)return!1;return!0}intersectsBox(t,e=0){return this.intersectsBoxMinMax(t.minimum,t.maximum,e)}intersectsSphere(t,e=0){const i=t.center.x-this.origin.x,s=t.center.y-this.origin.y,r=t.center.z-this.origin.z,o=i*i+s*s+r*r,n=t.radius+e,a=n*n;if(o<=a)return!0;const c=i*this.direction.x+s*this.direction.y+r*this.direction.z;if(c<0)return!1;return o-c*c<=a}intersectsTriangle(t,e,i){const s=K._TmpVector3[0],r=K._TmpVector3[1],o=K._TmpVector3[2],n=K._TmpVector3[3],a=K._TmpVector3[4];e.subtractToRef(t,s),i.subtractToRef(t,r),x.CrossToRef(this.direction,r,o);const c=x.Dot(s,o);if(0===c)return null;const l=1/c;this.origin.subtractToRef(t,n);const u=x.Dot(n,o)*l;if(u<-this.epsilon||u>1+this.epsilon)return null;x.CrossToRef(n,s,a);const h=x.Dot(this.direction,a)*l;if(h<-this.epsilon||u+h>1+this.epsilon)return null;const d=x.Dot(r,a)*l;return d>this.length?null:new k(1-u-h,u,d)}intersectsPlane(t){let e;const i=x.Dot(t.normal,this.direction);if(Math.abs(i)<9.99999997475243e-7)return null;{const s=x.Dot(t.normal,this.origin);return e=(-t.d-s)/i,e<0?e<-9.99999997475243e-7?null:0:e}}intersectsAxis(t,e=0){switch(t){case"y":{const t=(this.origin.y-e)/this.direction.y;return t>0?null:new x(this.origin.x+this.direction.x*-t,e,this.origin.z+this.direction.z*-t)}case"x":{const t=(this.origin.x-e)/this.direction.x;return t>0?null:new x(e,this.origin.y+this.direction.y*-t,this.origin.z+this.direction.z*-t)}case"z":{const t=(this.origin.z-e)/this.direction.z;return t>0?null:new x(this.origin.x+this.direction.x*-t,this.origin.y+this.direction.y*-t,e)}default:return null}}intersectsMesh(t,e,i,s=!1,r,o=!1){const n=v.Matrix[0];return t.getWorldMatrix().invertToRef(n),this._tmpRay?K.TransformToRef(this,n,this._tmpRay):this._tmpRay=K.Transform(this,n),t.intersects(this._tmpRay,e,i,s,r,o)}intersectsMeshes(t,e,i){i?i.length=0:i=[];for(let s=0;s<t.length;s++){const r=this.intersectsMesh(t[s],e);r.hit&&i.push(r)}return i.sort(this._comparePickingInfo),i}_comparePickingInfo(t,e){return t.distance<e.distance?-1:t.distance>e.distance?1:0}intersectionSegment(t,e,i){const s=this.origin,r=v.Vector3[0],o=v.Vector3[1],n=v.Vector3[2],a=v.Vector3[3];e.subtractToRef(t,r),this.direction.scaleToRef(K._Rayl,n),s.addToRef(n,o),t.subtractToRef(s,a);const c=x.Dot(r,r),l=x.Dot(r,n),u=x.Dot(n,n),h=x.Dot(r,a),d=x.Dot(n,a),p=c*u-l*l;let m,_,f=p,g=p;p<K._Smallnum?(m=0,f=1,_=d,g=u):(m=l*d-u*h,_=c*d-l*h,m<0?(m=0,_=d,g=u):m>f&&(m=f,_=d+l,g=u)),_<0?(_=0,-h<0?m=0:-h>c?m=f:(m=-h,f=c)):_>g&&(_=g,-h+l<0?m=0:-h+l>c?m=f:(m=-h+l,f=c));const y=Math.abs(m)<K._Smallnum?0:m/f,T=Math.abs(_)<K._Smallnum?0:_/g,w=v.Vector3[4];n.scaleToRef(T,w);const b=v.Vector3[5];r.scaleToRef(y,b),b.addInPlace(a);const P=v.Vector3[6];b.subtractToRef(w,P);return T>0&&T<=this.length&&P.lengthSquared()<i*i?b.length():-1}update(t,e,i,s,r,o,n,a=!1){if(a){K._RayDistant||(K._RayDistant=K.Zero()),K._RayDistant.unprojectRayToRef(t,e,i,s,g.IdentityReadOnly,o,n);const a=v.Matrix[0];r.invertToRef(a),K.TransformToRef(K._RayDistant,a,this)}else this.unprojectRayToRef(t,e,i,s,r,o,n);return this}static Zero(){return new K(x.Zero(),x.Zero())}static CreateNew(t,e,i,s,r,o,n){return K.Zero().update(t,e,i,s,r,o,n)}static CreateNewFromTo(t,e,i=g.IdentityReadOnly){const s=new K(new x(0,0,0),new x(0,0,0));return K.CreateFromToToRef(t,e,s,i)}static CreateFromToToRef(t,e,i,s=g.IdentityReadOnly){i.origin.copyFrom(t);const r=e.subtractToRef(t,i.direction),o=Math.sqrt(r.x*r.x+r.y*r.y+r.z*r.z);return i.length=o,i.direction.normalize(),K.TransformToRef(i,s,i)}static Transform(t,e){const i=new K(new x(0,0,0),new x(0,0,0));return K.TransformToRef(t,e,i),i}static TransformToRef(t,e,i){x.TransformCoordinatesToRef(t.origin,e,i.origin),x.TransformNormalToRef(t.direction,e,i.direction),i.length=t.length,i.epsilon=t.epsilon;const s=i.direction,r=s.length();if(0!==r&&1!==r){const t=1/r;s.x*=t,s.y*=t,s.z*=t,i.length*=r}return i}unprojectRayToRef(t,e,i,s,r,o,n){const a=v.Matrix[0];r.multiplyToRef(o,a),a.multiplyToRef(n,a),a.invert();const c=V.LastCreatedEngine,l=v.Vector3[0];l.x=t/i*2-1,l.y=-(e/s*2-1),l.z=c?.useReverseDepthBuffer?1:c?.isNDCHalfZRange?0:-1;const u=v.Vector3[1].copyFromFloats(l.x,l.y,1-1e-8),h=v.Vector3[2],d=v.Vector3[3];x._UnprojectFromInvertedMatrixToRef(l,a,h),x._UnprojectFromInvertedMatrixToRef(u,a,d),this.origin.copyFrom(h),d.subtractToRef(h,this.direction),this.direction.normalize()}}function Y(t,e,i,s,r,o=!1){const n=K.Zero();return q(t,e,i,s,n,r,o),n}function q(t,e,i,s,r,o,n=!1,a=!1){const c=t.getEngine();if(!o&&!(o=t.activeCamera))return t;const l=o.viewport,u=c.getRenderHeight(),{x:h,y:d,width:p,height:m}=l.toGlobal(c.getRenderWidth(),u),_=1/c.getHardwareScalingLevel();return e=e*_-h,i=i*_-(u-d-m),r.update(e,i,p,m,s||g.IdentityReadOnly,n?g.IdentityReadOnly:o.getViewMatrix(),o.getProjectionMatrix(),a),t}function Q(t,e,i,s,r){if(!F)return t;const o=t.getEngine();if(!r&&!(r=t.activeCamera))throw new Error("Active camera not set");const n=r.viewport,a=o.getRenderHeight(),{x:c,y:l,width:u,height:h}=n.toGlobal(o.getRenderWidth(),a),d=g.Identity(),p=1/o.getHardwareScalingLevel();return e=e*p-c,i=i*p-(a-l-h),s.update(e,i,u,h,d,d,r.getProjectionMatrix()),t}function $(t,e,i,s,r,o,n,a){const c=e(s,i.enableDistantPicking),l=i.intersects(c,r,n,o,s,a);return l&&l.hit?!r&&null!=t&&l.distance>=t.distance?null:l:null}function J(t,e,i,s,r,o){let n=null;const a=!!(t.activeCameras&&t.activeCameras.length>1&&t.cameraToUseForPointers!==t.activeCamera),c=t.cameraToUseForPointers||t.activeCamera;for(let l=0;l<t.meshes.length;l++){const u=t.meshes[l];if(i){if(!i(u,-1))continue}else if(!u.isEnabled()||!u.isVisible||!u.isPickable)continue;const h=a&&u.isWorldMatrixCameraDependent(),d=u.computeWorldMatrix(h,c);if(u.hasThinInstances&&u.thinInstanceEnablePicking){const t=$(n,e,u,d,!0,!0,o);if(t){if(r)return t;const a=v.Matrix[1],c=u.thinInstanceGetWorldMatrices();for(let t=0;t<c.length;t++){if(i&&!i(u,t))continue;c[t].multiplyToRef(d,a);const l=$(n,e,u,a,s,r,o,!0);if(l&&(n=l,n.thinInstanceIndex=t,s))return n}}}else{const t=$(n,e,u,d,s,r,o);if(t&&(n=t,s))return n}}return n||new F}function tt(t,e,i,s){if(!F)return null;const r=[],o=!!(t.activeCameras&&t.activeCameras.length>1&&t.cameraToUseForPointers!==t.activeCamera),n=t.cameraToUseForPointers||t.activeCamera;for(let a=0;a<t.meshes.length;a++){const c=t.meshes[a];if(i){if(!i(c,-1))continue}else if(!c.isEnabled()||!c.isVisible||!c.isPickable)continue;const l=o&&c.isWorldMatrixCameraDependent(),u=c.computeWorldMatrix(l,n);if(c.hasThinInstances&&c.thinInstanceEnablePicking){if($(null,e,c,u,!0,!0,s)){const t=v.Matrix[1],o=c.thinInstanceGetWorldMatrices();for(let n=0;n<o.length;n++){if(i&&!i(c,n))continue;o[n].multiplyToRef(u,t);const a=$(null,e,c,t,!1,!1,s,!0);a&&(a.thinInstanceIndex=n,r.push(a))}}}else{const t=$(null,e,c,u,!1,!1,s);t&&r.push(t)}}return r}function et(t,e,i=100,s,r){s||(s=t.getWorldMatrix()),e.length=i,r?e.origin.copyFrom(r):e.origin.copyFrom(t.position);const o=v.Vector3[2];o.set(0,0,t._scene.useRightHandedSystem?-1:1);const n=v.Vector3[3];return x.TransformNormalToRef(o,s,n),x.NormalizeToRef(n,e.direction),e}var it,st,rt,ot;K._TmpVector3=C(6,x.Zero),K._RayDistant=K.Zero(),K._Smallnum=1e-8,K._Rayl=1e9,it=z,(st=l)&&(st.prototype.getForwardRay=function(t=100,e,i){return et(this,new K(x.Zero(),x.Zero(),t),t,e,i)},st.prototype.getForwardRayToRef=function(t,e=100,i,s){return et(this,t,e,i,s)}),it&&(it.prototype.createPickingRay=function(t,e,i,s,r=!1){return Y(this,t,e,i,s,r)}),z.prototype.createPickingRayToRef=function(t,e,i,s,r,o=!1,n=!1){return q(this,t,e,i,s,r,o,n)},z.prototype.createPickingRayInCameraSpace=function(t,e,i){return function(t,e,i,s){const r=K.Zero();return Q(t,e,i,r,s),r}(this,t,e,i)},z.prototype.createPickingRayInCameraSpaceToRef=function(t,e,i,s){return Q(this,t,e,i,s)},z.prototype.pickWithBoundingInfo=function(t,e,i,s,r){return function(t,e,i,s,r,o){if(!F)return null;const n=J(t,(s=>(t._tempPickingRay||(t._tempPickingRay=K.Zero()),q(t,e,i,s,t._tempPickingRay,o||null),t._tempPickingRay)),s,r,!0);return n&&(n.ray=Y(t,e,i,g.Identity(),o||null)),n}(this,t,e,i,s,r)},z.prototype.pick=function(t,e,i,s,r,o,n=!1){return function(t,e,i,s,r,o,n){const a=J(t,((s,r)=>(t._tempPickingRay||(t._tempPickingRay=K.Zero()),q(t,e,i,s,t._tempPickingRay,o||null,!1,r),t._tempPickingRay)),s,r,!1,n);return a&&(a.ray=Y(t,e,i,g.Identity(),o||null)),a}(this,t,e,i,s,r,o,n)},z.prototype.pickWithRay=function(t,e,i,s){return function(t,e,i,s,r){const o=J(t,(i=>(t._pickWithRayInverseMatrix||(t._pickWithRayInverseMatrix=g.Identity()),i.invertToRef(t._pickWithRayInverseMatrix),t._cachedRayForTransform||(t._cachedRayForTransform=K.Zero()),K.TransformToRef(e,t._pickWithRayInverseMatrix,t._cachedRayForTransform),t._cachedRayForTransform)),i,s,!1,r);return o&&(o.ray=e),o}(this,t,e,i,s)},z.prototype.multiPick=function(t,e,i,s,r){return function(t,e,i,s,r,o){return tt(t,(s=>Y(t,e,i,s,r||null)),s,o)}(this,t,e,i,s,r)},z.prototype.multiPickWithRay=function(t,e,i){return function(t,e,i,s){return tt(t,(i=>(t._pickWithRayInverseMatrix||(t._pickWithRayInverseMatrix=g.Identity()),i.invertToRef(t._pickWithRayInverseMatrix),t._cachedRayForTransform||(t._cachedRayForTransform=K.Zero()),K.TransformToRef(e,t._pickWithRayInverseMatrix,t._cachedRayForTransform),t._cachedRayForTransform)),i,s)}(this,t,e,i)},function(t){t[t.Color=2]="Color",t[t.UV=1]="UV",t[t.Random=0]="Random",t[t.Stated=3]="Stated"}(rt||(rt={}));class nt{get positions(){return this._positions32}get colors(){return this._colors32}get uvs(){return this._uvs32}constructor(t,e,i,s){this.particles=new Array,this.nbParticles=0,this.counter=0,this.vars={},this._promises=[],this._positions=new Array,this._indices=new Array,this._normals=new Array,this._colors=new Array,this._uvs=new Array,this._updatable=!0,this._isVisibilityBoxLocked=!1,this._alwaysVisible=!1,this._groups=new Array,this._groupCounter=0,this._computeParticleColor=!0,this._computeParticleTexture=!0,this._computeParticleRotation=!0,this._computeBoundingBox=!1,this._isReady=!1,this.name=t,this._size=e,this._scene=i||V.LastCreatedScene,s&&void 0!==s.updatable?this._updatable=s.updatable:this._updatable=!0}buildMeshAsync(t){return Promise.all(this._promises).then((()=>(this._isReady=!0,this._buildMesh(t))))}_buildMesh(t){0===this.nbParticles&&this.addPoints(1),this._positions32=new Float32Array(this._positions),this._uvs32=new Float32Array(this._uvs),this._colors32=new Float32Array(this._colors);const e=new y;e.set(this._positions32,_.PositionKind),this._uvs32.length>0&&e.set(this._uvs32,_.UVKind);let i=0;this._colors32.length>0&&(i=1,e.set(this._colors32,_.ColorKind));const s=new f(this.name,this._scene);e.applyToMesh(s,this._updatable),this.mesh=s,this._positions=null,this._uvs=null,this._colors=null,this._updatable||(this.particles.length=0);let r=t;return r||(r=new N("point cloud material",this._scene),r.emissiveColor=new D(i,i,i),r.disableLighting=!0,r.pointsCloud=!0,r.pointSize=this._size),s.material=r,new Promise((t=>t(s)))}_addParticle(t,e,i,s){const r=new H(t,e,i,s,this);return this.particles.push(r),r}_randomUnitVector(t){t.position=new x(Math.random(),Math.random(),Math.random()),t.color=new A(1,1,1,1)}_getColorIndicesForCoord(t,e,i,s){const r=t._groupImageData,o=i*(4*s)+4*e,n=[o,o+1,o+2,o+3],a=n[1],c=n[2],l=n[3],u=r[n[0]],h=r[a],d=r[c],p=r[l];return new A(u/255,h/255,d/255,p)}_setPointsColorOrUV(t,e,i,s,r,o,n,a){a=a??0,i&&t.updateFacetData();const c=2*t.getBoundingInfo().boundingSphere.radius;let l=t.getVerticesData(_.PositionKind);const u=t.getIndices(),h=t.getVerticesData(_.UVKind+(a?a+1:"")),d=t.getVerticesData(_.ColorKind),p=x.Zero();t.computeWorldMatrix();const m=t.getWorldMatrix();if(!m.isIdentity()){l=l.slice(0);for(let t=0;t<l.length/3;t++)x.TransformCoordinatesFromFloatsToRef(l[3*t],l[3*t+1],l[3*t+2],m,p),l[3*t]=p.x,l[3*t+1]=p.y,l[3*t+2]=p.z}let f=0,g=0,y=0,T=0,v=0,w=0,b=0,R=0,M=0,C=0,I=0,k=0,V=0;const F=x.Zero(),z=x.Zero(),U=x.Zero(),E=x.Zero(),W=x.Zero();let L=0,Z=0,N=0,O=0,G=0,j=0;const H=P.Zero(),X=P.Zero(),Y=P.Zero(),q=P.Zero(),Q=P.Zero();let $=0,J=0,tt=0,et=0,it=0,st=0,rt=0,ot=0,nt=0,at=0,ct=0,lt=0;const ut=B.Zero(),ht=B.Zero(),dt=B.Zero(),pt=B.Zero(),mt=B.Zero();let _t,ft,gt=0,xt=0;n=n||0;let yt=new B(0,0,0,0),Tt=x.Zero(),vt=x.Zero(),wt=x.Zero(),bt=0,Pt=x.Zero(),Rt=0,Mt=0;const At=new K(x.Zero(),new x(1,0,0));let Ct,It=x.Zero();for(let a=0;a<u.length/3;a++){let p,m,_,P,B,K,kt,Vt;g=u[3*a],y=u[3*a+1],T=u[3*a+2],v=l[3*g],w=l[3*g+1],b=l[3*g+2],R=l[3*y],M=l[3*y+1],C=l[3*y+2],I=l[3*T],k=l[3*T+1],V=l[3*T+2],F.set(v,w,b),z.set(R,M,C),U.set(I,k,V),z.subtractToRef(F,E),U.subtractToRef(z,W),h&&(L=h[2*g],Z=h[2*g+1],N=h[2*y],O=h[2*y+1],G=h[2*T],j=h[2*T+1],H.set(L,Z),X.set(N,O),Y.set(G,j),X.subtractToRef(H,q),Y.subtractToRef(X,Q)),d&&s&&($=d[4*g],J=d[4*g+1],tt=d[4*g+2],et=d[4*g+3],it=d[4*y],st=d[4*y+1],rt=d[4*y+2],ot=d[4*y+3],nt=d[4*T],at=d[4*T+1],ct=d[4*T+2],lt=d[4*T+3],ut.set($,J,tt,et),ht.set(it,st,rt,ot),dt.set(nt,at,ct,lt),ht.subtractToRef(ut,pt),dt.subtractToRef(ht,mt));const Ft=new D(0,0,0),zt=new D(0,0,0);let Dt,Bt;for(let l=0;l<e._groupDensity[a];l++)f=this.particles.length,this._addParticle(f,e,this._groupCounter,a+l),Bt=this.particles[f],gt=Math.sqrt(S(0,1)),xt=S(0,1),_t=F.add(E.scale(gt)).add(W.scale(gt*xt)),i&&(Tt=t.getFacetNormal(a).normalize().scale(-1),vt=E.clone().normalize(),wt=x.Cross(Tt,vt),bt=S(0,2*Math.PI),Pt=vt.scale(Math.cos(bt)).add(wt.scale(Math.sin(bt))),bt=S(.1,Math.PI/2),It=Pt.scale(Math.cos(bt)).add(Tt.scale(Math.sin(bt))),At.origin=_t.add(It.scale(1e-5)),At.direction=It,At.length=c,Ct=At.intersectsMesh(t),Ct.hit&&(Mt=Ct.pickedPoint.subtract(_t).length(),Rt=S(0,1)*Mt,_t.addInPlace(It.scale(Rt)))),Bt.position=_t.clone(),this._positions.push(Bt.position.x,Bt.position.y,Bt.position.z),void 0!==s?h&&(ft=H.add(q.scale(gt)).add(Q.scale(gt*xt)),s?r&&null!==e._groupImageData?(p=e._groupImgWidth,m=e._groupImgHeight,Dt=this._getColorIndicesForCoord(e,Math.round(ft.x*p),Math.round(ft.y*m),p),Bt.color=Dt,this._colors.push(Dt.r,Dt.g,Dt.b,Dt.a)):d?(yt=ut.add(pt.scale(gt)).add(mt.scale(gt*xt)),Bt.color=new A(yt.x,yt.y,yt.z,yt.w),this._colors.push(yt.x,yt.y,yt.z,yt.w)):(yt=ut.set(Math.random(),Math.random(),Math.random(),1),Bt.color=new A(yt.x,yt.y,yt.z,yt.w),this._colors.push(yt.x,yt.y,yt.z,yt.w)):(Bt.uv=ft.clone(),this._uvs.push(Bt.uv.x,Bt.uv.y))):(o?(Ft.set(o.r,o.g,o.b),_=S(-n,n),P=S(-n,n),Vt=Ft.toHSV(),B=Vt.r,K=Vt.g+_,kt=Vt.b+P,K<0&&(K=0),K>1&&(K=1),kt<0&&(kt=0),kt>1&&(kt=1),D.HSVtoRGBToRef(B,K,kt,zt),yt.set(zt.r,zt.g,zt.b,1)):yt=ut.set(Math.random(),Math.random(),Math.random(),1),Bt.color=new A(yt.x,yt.y,yt.z,yt.w),this._colors.push(yt.x,yt.y,yt.z,yt.w))}}_colorFromTexture(t,e,i){if(null===t.material)return w.Warn(t.name+"has no material."),e._groupImageData=null,void this._setPointsColorOrUV(t,e,i,!0,!1);const s=t.material.getActiveTextures();if(0===s.length)return w.Warn(t.name+"has no usable texture."),e._groupImageData=null,void this._setPointsColorOrUV(t,e,i,!0,!1);const r=t.clone();r.setEnabled(!1),this._promises.push(new Promise((t=>{U.WhenAllReady(s,(()=>{let o=e._textureNb;o<0&&(o=0),o>s.length-1&&(o=s.length-1);const n=()=>{e._groupImgWidth=s[o].getSize().width,e._groupImgHeight=s[o].getSize().height,this._setPointsColorOrUV(r,e,i,!0,!0,void 0,void 0,s[o].coordinatesIndex),r.dispose(),t()};e._groupImageData=null;const a=s[o].readPixels();a?a.then((t=>{e._groupImageData=t,n()})):n()}))})))}_calculateDensity(t,e,i){let s,r,o,n,a,c,l,u,h,d,p,m;const _=x.Zero(),f=x.Zero(),g=x.Zero(),y=x.Zero(),T=x.Zero(),v=x.Zero();let w;const b=[];let P=0;const R=i.length/3;for(let t=0;t<R;t++)s=i[3*t],r=i[3*t+1],o=i[3*t+2],n=e[3*s],a=e[3*s+1],c=e[3*s+2],l=e[3*r],u=e[3*r+1],h=e[3*r+2],d=e[3*o],p=e[3*o+1],m=e[3*o+2],_.set(n,a,c),f.set(l,u,h),g.set(d,p,m),f.subtractToRef(_,y),g.subtractToRef(f,T),x.CrossToRef(y,T,v),w=.5*v.length(),P+=w,b[t]=P;const M=new Array(R);let A=t;for(let t=R-1;t>0;t--){const e=b[t];if(0===e)M[t]=0;else{const i=(e-b[t-1])/e*A,s=Math.floor(i),r=i-s,o=s+Number(Math.random()<r);M[t]=o,A-=o}}return M[0]=A,M}addPoints(t,e=this._randomUnitVector){const i=new X(this._groupCounter,e);let s,r=this.nbParticles;for(let e=0;e<t;e++)s=this._addParticle(r,i,this._groupCounter,e),i&&i._positionFunction&&i._positionFunction(s,r,e),this._positions.push(s.position.x,s.position.y,s.position.z),s.color&&this._colors.push(s.color.r,s.color.g,s.color.b,s.color.a),s.uv&&this._uvs.push(s.uv.x,s.uv.y),r++;return this.nbParticles+=t,this._groupCounter++,this._groupCounter}addSurfacePoints(t,e,i,s,r){let o=i||0;(isNaN(o)||o<0||o>3)&&(o=0);const n=t.getVerticesData(_.PositionKind),a=t.getIndices();this._groups.push(this._groupCounter);const c=new X(this._groupCounter,null);switch(c._groupDensity=this._calculateDensity(e,n,a),2===o?c._textureNb=s||0:s=s||new A(1,1,1,1),o){case 2:this._colorFromTexture(t,c,!1);break;case 1:this._setPointsColorOrUV(t,c,!1,!1,!1);break;case 0:this._setPointsColorOrUV(t,c,!1);break;case 3:this._setPointsColorOrUV(t,c,!1,void 0,void 0,s,r)}return this.nbParticles+=e,this._groupCounter++,this._groupCounter-1}addVolumePoints(t,e,i,s,r){let o=i||0;(isNaN(o)||o<0||o>3)&&(o=0);const n=t.getVerticesData(_.PositionKind),a=t.getIndices();this._groups.push(this._groupCounter);const c=new X(this._groupCounter,null);switch(c._groupDensity=this._calculateDensity(e,n,a),2===o?c._textureNb=s||0:s=s||new A(1,1,1,1),o){case 2:this._colorFromTexture(t,c,!0);break;case 1:this._setPointsColorOrUV(t,c,!0,!1,!1);break;case 0:this._setPointsColorOrUV(t,c,!0);break;case 3:this._setPointsColorOrUV(t,c,!0,void 0,void 0,s,r)}return this.nbParticles+=e,this._groupCounter++,this._groupCounter-1}setParticles(t=0,e=this.nbParticles-1,i=!0){if(!this._updatable||!this._isReady)return this;this.beforeUpdateParticles(t,e,i);const s=v.Matrix[0],r=this.mesh,o=this._colors32,n=this._positions32,a=this._uvs32,c=v.Vector3,l=c[5].copyFromFloats(1,0,0),u=c[6].copyFromFloats(0,1,0),h=c[7].copyFromFloats(0,0,1),d=c[8].setAll(Number.MAX_VALUE),p=c[9].setAll(-Number.MAX_VALUE);g.IdentityToRef(s);let m=0;if(this.mesh?.isFacetDataEnabled&&(this._computeBoundingBox=!0),e=e>=this.nbParticles?this.nbParticles-1:e,this._computeBoundingBox&&(0!=t||e!=this.nbParticles-1)){const t=this.mesh?.getBoundingInfo();t&&(d.copyFrom(t.minimum),p.copyFrom(t.maximum))}m=0;let f=0,x=0,y=0;for(let i=t;i<=e;i++){const t=this.particles[i];m=t.idx,f=3*m,x=4*m,y=2*m,this.updateParticle(t);const e=t._rotationMatrix,r=t.position,o=t._globalPosition;this._computeParticleRotation&&t.getRotationMatrix(s);if(null!==t.parentId){const i=this.particles[t.parentId],n=i._rotationMatrix,a=i._globalPosition,c=r.x*n[1]+r.y*n[4]+r.z*n[7],l=r.x*n[0]+r.y*n[3]+r.z*n[6],u=r.x*n[2]+r.y*n[5]+r.z*n[8];if(o.x=a.x+l,o.y=a.y+c,o.z=a.z+u,this._computeParticleRotation){const t=s.m;e[0]=t[0]*n[0]+t[1]*n[3]+t[2]*n[6],e[1]=t[0]*n[1]+t[1]*n[4]+t[2]*n[7],e[2]=t[0]*n[2]+t[1]*n[5]+t[2]*n[8],e[3]=t[4]*n[0]+t[5]*n[3]+t[6]*n[6],e[4]=t[4]*n[1]+t[5]*n[4]+t[6]*n[7],e[5]=t[4]*n[2]+t[5]*n[5]+t[6]*n[8],e[6]=t[8]*n[0]+t[9]*n[3]+t[10]*n[6],e[7]=t[8]*n[1]+t[9]*n[4]+t[10]*n[7],e[8]=t[8]*n[2]+t[9]*n[5]+t[10]*n[8]}}else if(o.x=0,o.y=0,o.z=0,this._computeParticleRotation){const t=s.m;e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[4],e[4]=t[5],e[5]=t[6],e[6]=t[8],e[7]=t[9],e[8]=t[10]}const a=c[11];t.translateFromPivot?a.setAll(0):a.copyFrom(t.pivot);const _=c[0];_.copyFrom(t.position);const g=_.x-t.pivot.x,T=_.y-t.pivot.y,v=_.z-t.pivot.z;let w=g*e[0]+T*e[3]+v*e[6],b=g*e[1]+T*e[4]+v*e[7],P=g*e[2]+T*e[5]+v*e[8];w+=a.x,b+=a.y,P+=a.z;const R=n[f]=o.x+l.x*w+u.x*b+h.x*P,M=n[f+1]=o.y+l.y*w+u.y*b+h.y*P,A=n[f+2]=o.z+l.z*w+u.z*b+h.z*P;if(this._computeBoundingBox&&(d.minimizeInPlaceFromFloats(R,M,A),p.maximizeInPlaceFromFloats(R,M,A)),this._computeParticleColor&&t.color){const e=t.color,i=this._colors32;i[x]=e.r,i[x+1]=e.g,i[x+2]=e.b,i[x+3]=e.a}if(this._computeParticleTexture&&t.uv){const e=t.uv,i=this._uvs32;i[y]=e.x,i[y+1]=e.y}}return r&&(i&&(this._computeParticleColor&&r.updateVerticesData(_.ColorKind,o,!1,!1),this._computeParticleTexture&&r.updateVerticesData(_.UVKind,a,!1,!1),r.updateVerticesData(_.PositionKind,n,!1,!1)),this._computeBoundingBox&&(r.hasBoundingInfo?r.getBoundingInfo().reConstruct(d,p,r._worldMatrix):r.buildBoundingInfo(d,p,r._worldMatrix))),this.afterUpdateParticles(t,e,i),this}dispose(){this.mesh?.dispose(),this.vars=null,this._positions=null,this._indices=null,this._normals=null,this._uvs=null,this._colors=null,this._indices32=null,this._positions32=null,this._uvs32=null,this._colors32=null}refreshVisibleSize(){return this._isVisibilityBoxLocked||this.mesh?.refreshBoundingInfo(),this}setVisibilityBox(t){if(!this.mesh)return;const e=t/2;this.mesh.buildBoundingInfo(new x(-e,-e,-e),new x(e,e,e))}get isAlwaysVisible(){return this._alwaysVisible}set isAlwaysVisible(t){this.mesh&&(this._alwaysVisible=t,this.mesh.alwaysSelectAsActiveMesh=t)}set computeParticleRotation(t){this._computeParticleRotation=t}set computeParticleColor(t){this._computeParticleColor=t}set computeParticleTexture(t){this._computeParticleTexture=t}get computeParticleColor(){return this._computeParticleColor}get computeParticleTexture(){return this._computeParticleTexture}set computeBoundingBox(t){this._computeBoundingBox=t}get computeBoundingBox(){return this._computeBoundingBox}initParticles(){}recycleParticle(t){return t}updateParticle(t){return t}beforeUpdateParticles(t,e,i){}afterUpdateParticles(t,e,i){}}!function(t){t[t.Splat=0]="Splat",t[t.PointCloud=1]="PointCloud",t[t.Mesh=2]="Mesh"}(ot||(ot={}));class at{constructor(t=at._DefaultLoadingOptions){this.name=E.name,this._assetContainer=null,this.extensions=E.extensions,this._loadingOptions=t}createPlugin(t){return new at(t[E.name])}async importMeshAsync(t,e,i,s,r,o){return this._parse(t,e,i,s).then((t=>({meshes:t,particleSystems:[],skeletons:[],animationGroups:[],transformNodes:[],geometries:[],lights:[],spriteManagers:[]})))}static _BuildPointCloud(t,e){if(!e.byteLength)return!1;const i=new Uint8Array(e),s=new Float32Array(e),r=i.length/32;return t.addPoints(r,(function(t,e){const r=s[8*e+0],o=s[8*e+1],n=s[8*e+2];t.position=new x(r,o,n);const a=i[32*e+24+0]/255,c=i[32*e+24+1]/255,l=i[32*e+24+2]/255;t.color=new A(a,c,l,1)})),!0}static _BuildMesh(t,e){const i=new f("PLYMesh",t),s=new Uint8Array(e.data),r=new Float32Array(e.data),o=s.length/32,n=[],a=new y;for(let t=0;t<o;t++){const e=r[8*t+0],i=r[8*t+1],s=r[8*t+2];n.push(e,i,s)}if(e.hasVertexColors){const t=new Float32Array(4*o);for(let e=0;e<o;e++){const i=s[32*e+24+0]/255,r=s[32*e+24+1]/255,o=s[32*e+24+2]/255;t[4*e+0]=i,t[4*e+1]=r,t[4*e+2]=o,t[4*e+3]=1}a.colors=t}return a.positions=n,a.indices=e.faces,a.applyToMesh(i),i}_parse(t,e,i,s){const r=[],o=at._ConvertPLYToSplat(i);switch(o.mode){case 0:{const t=new j("GaussianSplatting",null,e,this._loadingOptions.keepInRam);t._parentContainer=this._assetContainer,r.push(t),t.loadDataAsync(o.data)}break;case 1:{const t=new nt("PointCloud",1,e);if(at._BuildPointCloud(t,o.data))return Promise.all([t.buildMeshAsync()]).then((t=>(r.push(t[0]),r)));t.dispose()}break;case 2:if(!o.faces)throw new Error("PLY mesh doesn't contain face informations.");r.push(at._BuildMesh(e,o));break;default:throw new Error("Unsupported Splat mode")}return Promise.resolve(r)}loadAssetContainerAsync(t,e,i){const s=new Z(t);return this._assetContainer=s,this.importMeshAsync(null,t,e,i).then((t=>(t.meshes.forEach((t=>s.meshes.push(t))),this._assetContainer=null,s))).catch((t=>{throw this._assetContainer=null,t}))}loadAsync(t,e,i){return this.importMeshAsync(null,t,e,i).then((()=>{}))}static _ConvertPLYToSplat(t){const e=new Uint8Array(t),i=(new TextDecoder).decode(e.slice(0,10240)),s="end_header\n",r=i.indexOf(s);if(r<0||!i)return{mode:0,data:t};const o=parseInt(/element vertex (\d+)\n/.exec(i)[1]),n=/element face (\d+)\n/.exec(i);let a=0;n&&(a=parseInt(n[1]));let c=0;const l={double:8,int:4,uint:4,float:4,short:2,ushort:2,uchar:1,list:0},u=[],h=i.slice(0,r).split("\n").filter((t=>t.startsWith("property ")));for(const t of h){const[,e,i]=t.split(" ");u.push({name:i,type:e,offset:c}),l[e]?c+=l[e]:w.Warn(`Unsupported property type: ${e}.`)}const d=.28209479177387814,p=new DataView(t,r+11),m=new ArrayBuffer(32*o),_=new R;for(let t=0;t<o;t++){const e=new Float32Array(m,32*t,3),i=new Float32Array(m,32*t+12,3),s=new Uint8ClampedArray(m,32*t+24,4),r=new Uint8ClampedArray(m,32*t+28,4);let o=255,n=0,a=0,l=0;for(let r=0;r<u.length;r++){const h=u[r];let m;switch(h.type){case"float":m=p.getFloat32(h.offset+t*c,!0);break;case"int":m=p.getInt32(h.offset+t*c,!0);break;case"uint":m=p.getUint32(h.offset+t*c,!0);break;case"double":m=p.getFloat64(h.offset+t*c,!0);break;case"uchar":m=p.getUint8(h.offset+t*c);break;default:continue}switch(h.name){case"x":e[0]=m;break;case"y":e[1]=m;break;case"z":e[2]=m;break;case"scale_0":i[0]=Math.exp(m);break;case"scale_1":i[1]=Math.exp(m);break;case"scale_2":i[2]=Math.exp(m);break;case"diffuse_red":case"red":s[0]=m;break;case"diffuse_green":case"green":s[1]=m;break;case"diffuse_blue":case"blue":s[2]=m;break;case"f_dc_0":s[0]=255*(.5+d*m);break;case"f_dc_1":s[1]=255*(.5+d*m);break;case"f_dc_2":s[2]=255*(.5+d*m);break;case"f_dc_3":s[3]=255*(.5+d*m);break;case"opacity":s[3]=1/(1+Math.exp(-m))*255;break;case"rot_0":o=m;break;case"rot_1":n=m;break;case"rot_2":a=m;break;case"rot_3":l=m}}_.set(n,a,l,o),_.normalize(),r[0]=128*_.w+128,r[1]=128*_.x+128,r[2]=128*_.y+128,r[3]=128*_.z+128}const f=[];if(a){let t=c*o;for(let e=0;e<a;e++){const e=p.getUint8(t);if(3==e){t+=1;for(let i=0;i<e;i++){const e=p.getUint32(t+4*(2-i),!0);f.push(e)}t+=12}}}let g=0,x=0;const y=["x","y","z","scale_0","scale_1","scale_2","opacity","rot_0","rot_1","rot_2","rot_3"],T=["red","green","blue","f_dc_0","f_dc_1","f_dc_2"];for(let t=0;t<u.length;t++){const e=u[t];y.includes(e.name)&&g++,T.includes(e.name)&&x++}const v=g==y.length&&3==x;return{mode:a?2:v?0:1,data:m,faces:f,hasVertexColors:!!x}}}at._DefaultLoadingOptions={keepInRam:!1},W(new at);export{at as SPLATFileLoader};
|
|
2
|
-
//# sourceMappingURL=splatFileLoader-D3Xuf1wd.esm.min.js.map
|