@babylonjs/viewer 7.25.2 → 7.26.0-alpha
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/dist/babylon-viewer.esm.js +2 -0
- package/dist/babylon-viewer.esm.js.map +1 -0
- package/dist/babylon-viewer.esm.min.js +2 -0
- package/dist/babylon-viewer.esm.min.js.map +1 -0
- package/dist/chunks/EXT_lights_image_based-BAAAren3.esm.min.js +2 -0
- package/dist/chunks/EXT_lights_image_based-BAAAren3.esm.min.js.map +1 -0
- package/dist/chunks/EXT_lights_image_based-CLRxjLYR.esm.js +170 -0
- package/dist/chunks/EXT_lights_image_based-CLRxjLYR.esm.js.map +1 -0
- package/dist/chunks/EXT_mesh_gpu_instancing-g_z4hICR.esm.min.js +2 -0
- package/dist/chunks/EXT_mesh_gpu_instancing-g_z4hICR.esm.min.js.map +1 -0
- package/dist/chunks/EXT_mesh_gpu_instancing-xdiHrPE-.esm.js +86 -0
- package/dist/chunks/EXT_mesh_gpu_instancing-xdiHrPE-.esm.js.map +1 -0
- package/dist/chunks/EXT_meshopt_compression-DtR1iauf.esm.js +134 -0
- package/dist/chunks/EXT_meshopt_compression-DtR1iauf.esm.js.map +1 -0
- package/dist/chunks/EXT_meshopt_compression-SJRA4qRp.esm.min.js +2 -0
- package/dist/chunks/EXT_meshopt_compression-SJRA4qRp.esm.min.js.map +1 -0
- package/dist/chunks/EXT_texture_avif-DyYYGGQy.esm.js +44 -0
- package/dist/chunks/EXT_texture_avif-DyYYGGQy.esm.js.map +1 -0
- package/dist/chunks/EXT_texture_avif-Qcsk_kvk.esm.min.js +2 -0
- package/dist/chunks/EXT_texture_avif-Qcsk_kvk.esm.min.js.map +1 -0
- package/dist/chunks/EXT_texture_webp-CLgPX9Kq.esm.min.js +2 -0
- package/dist/chunks/EXT_texture_webp-CLgPX9Kq.esm.min.js.map +1 -0
- package/dist/chunks/EXT_texture_webp-X7MNkN3t.esm.js +43 -0
- package/dist/chunks/EXT_texture_webp-X7MNkN3t.esm.js.map +1 -0
- package/dist/chunks/ExtrasAsMetadata-DDzM1udc.esm.min.js +2 -0
- package/dist/chunks/ExtrasAsMetadata-DDzM1udc.esm.min.js.map +1 -0
- package/dist/chunks/ExtrasAsMetadata-_A4ue-yg.esm.js +64 -0
- package/dist/chunks/ExtrasAsMetadata-_A4ue-yg.esm.js.map +1 -0
- package/dist/chunks/KHR_animation_pointer-C_uSLVMY.esm.min.js +2 -0
- package/dist/chunks/KHR_animation_pointer-C_uSLVMY.esm.min.js.map +1 -0
- package/dist/chunks/KHR_animation_pointer-DOLmQrF0.esm.js +343 -0
- package/dist/chunks/KHR_animation_pointer-DOLmQrF0.esm.js.map +1 -0
- package/dist/chunks/KHR_draco_mesh_compression-Dc2dj10X.esm.js +610 -0
- package/dist/chunks/KHR_draco_mesh_compression-Dc2dj10X.esm.js.map +1 -0
- package/dist/chunks/KHR_draco_mesh_compression-Qjbd-cV8.esm.min.js +2 -0
- package/dist/chunks/KHR_draco_mesh_compression-Qjbd-cV8.esm.min.js.map +1 -0
- package/dist/chunks/KHR_interactivity-BMxQ78NS.esm.js +4033 -0
- package/dist/chunks/KHR_interactivity-BMxQ78NS.esm.js.map +1 -0
- package/dist/chunks/KHR_interactivity-Dyhotcuc.esm.min.js +2 -0
- package/dist/chunks/KHR_interactivity-Dyhotcuc.esm.min.js.map +1 -0
- package/dist/chunks/KHR_lights_punctual-BQxBGi0_.esm.js +1253 -0
- package/dist/chunks/KHR_lights_punctual-BQxBGi0_.esm.js.map +1 -0
- package/dist/chunks/KHR_lights_punctual-CP6yK7gB.esm.min.js +2 -0
- package/dist/chunks/KHR_lights_punctual-CP6yK7gB.esm.min.js.map +1 -0
- package/dist/chunks/KHR_materials_anisotropy-B-brojEG.esm.js +64 -0
- package/dist/chunks/KHR_materials_anisotropy-B-brojEG.esm.js.map +1 -0
- package/dist/chunks/KHR_materials_anisotropy-C_kRwfha.esm.min.js +2 -0
- package/dist/chunks/KHR_materials_anisotropy-C_kRwfha.esm.min.js.map +1 -0
- package/dist/chunks/KHR_materials_clearcoat-CRp8HOuT.esm.min.js +2 -0
- package/dist/chunks/KHR_materials_clearcoat-CRp8HOuT.esm.min.js.map +1 -0
- package/dist/chunks/KHR_materials_clearcoat-Dtwqzkls.esm.js +96 -0
- package/dist/chunks/KHR_materials_clearcoat-Dtwqzkls.esm.js.map +1 -0
- package/dist/chunks/KHR_materials_diffuse_transmission-BrvDWQjW.esm.js +97 -0
- package/dist/chunks/KHR_materials_diffuse_transmission-BrvDWQjW.esm.js.map +1 -0
- package/dist/chunks/KHR_materials_diffuse_transmission-CNCBiTRi.esm.min.js +2 -0
- package/dist/chunks/KHR_materials_diffuse_transmission-CNCBiTRi.esm.min.js.map +1 -0
- package/dist/chunks/KHR_materials_dispersion-Bx9AztVQ.esm.js +62 -0
- package/dist/chunks/KHR_materials_dispersion-Bx9AztVQ.esm.js.map +1 -0
- package/dist/chunks/KHR_materials_dispersion-C0wotXxO.esm.min.js +2 -0
- package/dist/chunks/KHR_materials_dispersion-C0wotXxO.esm.min.js.map +1 -0
- package/dist/chunks/KHR_materials_emissive_strength-CsJjVgTW.esm.js +55 -0
- package/dist/chunks/KHR_materials_emissive_strength-CsJjVgTW.esm.js.map +1 -0
- package/dist/chunks/KHR_materials_emissive_strength-DQk1VN_2.esm.min.js +2 -0
- package/dist/chunks/KHR_materials_emissive_strength-DQk1VN_2.esm.min.js.map +1 -0
- package/dist/chunks/KHR_materials_ior-B-Bz-ZTi.esm.js +64 -0
- package/dist/chunks/KHR_materials_ior-B-Bz-ZTi.esm.js.map +1 -0
- package/dist/chunks/KHR_materials_ior-DcRJZA_s.esm.min.js +2 -0
- package/dist/chunks/KHR_materials_ior-DcRJZA_s.esm.min.js.map +1 -0
- package/dist/chunks/KHR_materials_iridescence-B9mn3E_m.esm.js +72 -0
- package/dist/chunks/KHR_materials_iridescence-B9mn3E_m.esm.js.map +1 -0
- package/dist/chunks/KHR_materials_iridescence-BVq13lbk.esm.min.js +2 -0
- package/dist/chunks/KHR_materials_iridescence-BVq13lbk.esm.min.js.map +1 -0
- package/dist/chunks/KHR_materials_pbrSpecularGlossiness-D81096Xs.esm.min.js +2 -0
- package/dist/chunks/KHR_materials_pbrSpecularGlossiness-D81096Xs.esm.min.js.map +1 -0
- package/dist/chunks/KHR_materials_pbrSpecularGlossiness-DbXQeIqw.esm.js +81 -0
- package/dist/chunks/KHR_materials_pbrSpecularGlossiness-DbXQeIqw.esm.js.map +1 -0
- package/dist/chunks/KHR_materials_sheen-CJALPuj4.esm.js +85 -0
- package/dist/chunks/KHR_materials_sheen-CJALPuj4.esm.js.map +1 -0
- package/dist/chunks/KHR_materials_sheen-D6gJV14Q.esm.min.js +2 -0
- package/dist/chunks/KHR_materials_sheen-D6gJV14Q.esm.min.js.map +1 -0
- package/dist/chunks/KHR_materials_specular-8J6t7IWW.esm.js +75 -0
- package/dist/chunks/KHR_materials_specular-8J6t7IWW.esm.js.map +1 -0
- package/dist/chunks/KHR_materials_specular-CLkfKuYs.esm.min.js +2 -0
- package/dist/chunks/KHR_materials_specular-CLkfKuYs.esm.min.js.map +1 -0
- package/dist/chunks/KHR_materials_transmission-CtmncfNu.esm.js +307 -0
- package/dist/chunks/KHR_materials_transmission-CtmncfNu.esm.js.map +1 -0
- package/dist/chunks/KHR_materials_transmission-Ds1e4Rgi.esm.min.js +2 -0
- package/dist/chunks/KHR_materials_transmission-Ds1e4Rgi.esm.min.js.map +1 -0
- package/dist/chunks/KHR_materials_unlit-CjwtrKka.esm.min.js +2 -0
- package/dist/chunks/KHR_materials_unlit-CjwtrKka.esm.min.js.map +1 -0
- package/dist/chunks/KHR_materials_unlit-D7RRssK9.esm.js +74 -0
- package/dist/chunks/KHR_materials_unlit-D7RRssK9.esm.js.map +1 -0
- package/dist/chunks/KHR_materials_variants-B16YKuMe.esm.min.js +2 -0
- package/dist/chunks/KHR_materials_variants-B16YKuMe.esm.min.js.map +1 -0
- package/dist/chunks/KHR_materials_variants-C6mz0mzG.esm.js +238 -0
- package/dist/chunks/KHR_materials_variants-C6mz0mzG.esm.js.map +1 -0
- package/dist/chunks/KHR_materials_volume-CocxcaC_.esm.min.js +2 -0
- package/dist/chunks/KHR_materials_volume-CocxcaC_.esm.min.js.map +1 -0
- package/dist/chunks/KHR_materials_volume-kX43-sr-.esm.js +87 -0
- package/dist/chunks/KHR_materials_volume-kX43-sr-.esm.js.map +1 -0
- package/dist/chunks/KHR_mesh_quantization-B2Y3kC9D.esm.js +26 -0
- package/dist/chunks/KHR_mesh_quantization-B2Y3kC9D.esm.js.map +1 -0
- package/dist/chunks/KHR_mesh_quantization-BfMxe7Z-.esm.min.js +2 -0
- package/dist/chunks/KHR_mesh_quantization-BfMxe7Z-.esm.min.js.map +1 -0
- package/dist/chunks/KHR_texture_basisu-DS4eOc5v.esm.js +43 -0
- package/dist/chunks/KHR_texture_basisu-DS4eOc5v.esm.js.map +1 -0
- package/dist/chunks/KHR_texture_basisu-ghZqGH67.esm.min.js +2 -0
- package/dist/chunks/KHR_texture_basisu-ghZqGH67.esm.min.js.map +1 -0
- package/dist/chunks/KHR_texture_transform-6nYo8mzH.esm.min.js +2 -0
- package/dist/chunks/KHR_texture_transform-6nYo8mzH.esm.min.js.map +1 -0
- package/dist/chunks/KHR_texture_transform-B-qDuvbI.esm.js +63 -0
- package/dist/chunks/KHR_texture_transform-B-qDuvbI.esm.js.map +1 -0
- package/dist/chunks/KHR_xmp_json_ld-CKv9gfXs.esm.min.js +2 -0
- package/dist/chunks/KHR_xmp_json_ld-CKv9gfXs.esm.min.js.map +1 -0
- package/dist/chunks/KHR_xmp_json_ld-CXjOnFmU.esm.js +51 -0
- package/dist/chunks/KHR_xmp_json_ld-CXjOnFmU.esm.js.map +1 -0
- package/dist/chunks/MSFT_audio_emitter-1StuTv-Z.esm.js +2236 -0
- package/dist/chunks/MSFT_audio_emitter-1StuTv-Z.esm.js.map +1 -0
- package/dist/chunks/MSFT_audio_emitter-BfKy7LEd.esm.min.js +2 -0
- package/dist/chunks/MSFT_audio_emitter-BfKy7LEd.esm.min.js.map +1 -0
- package/dist/chunks/MSFT_lod-DA4UA4La.esm.js +337 -0
- package/dist/chunks/MSFT_lod-DA4UA4La.esm.js.map +1 -0
- package/dist/chunks/MSFT_lod-wcOn3D2V.esm.min.js +2 -0
- package/dist/chunks/MSFT_lod-wcOn3D2V.esm.min.js.map +1 -0
- package/dist/chunks/MSFT_minecraftMesh-afhS3NlZ.esm.js +46 -0
- package/dist/chunks/MSFT_minecraftMesh-afhS3NlZ.esm.js.map +1 -0
- package/dist/chunks/MSFT_minecraftMesh-x417idfJ.esm.min.js +2 -0
- package/dist/chunks/MSFT_minecraftMesh-x417idfJ.esm.min.js.map +1 -0
- package/dist/chunks/MSFT_sRGBFactors-BjLfK8v1.esm.min.js +2 -0
- package/dist/chunks/MSFT_sRGBFactors-BjLfK8v1.esm.min.js.map +1 -0
- package/dist/chunks/MSFT_sRGBFactors-fA6kZabo.esm.js +47 -0
- package/dist/chunks/MSFT_sRGBFactors-fA6kZabo.esm.js.map +1 -0
- package/dist/chunks/assetContainer-BWyT-iC8.esm.min.js +2 -0
- package/dist/chunks/assetContainer-BWyT-iC8.esm.min.js.map +1 -0
- package/dist/chunks/assetContainer-C9nOA325.esm.js +1598 -0
- package/dist/chunks/assetContainer-C9nOA325.esm.js.map +1 -0
- package/dist/chunks/audioEngine-Bi_JHe07.esm.js +305 -0
- package/dist/chunks/audioEngine-Bi_JHe07.esm.js.map +1 -0
- package/dist/chunks/audioEngine-DyaETd2M.esm.min.js +2 -0
- package/dist/chunks/audioEngine-DyaETd2M.esm.min.js.map +1 -0
- package/dist/chunks/bakedVertexAnimation-Bw1dcogG.esm.min.js +2 -0
- package/dist/chunks/bakedVertexAnimation-Bw1dcogG.esm.min.js.map +1 -0
- package/dist/chunks/bakedVertexAnimation-D2t3QFFy.esm.js +119 -0
- package/dist/chunks/bakedVertexAnimation-D2t3QFFy.esm.js.map +1 -0
- package/dist/chunks/basisTextureLoader-DEikcMs0.esm.js +600 -0
- package/dist/chunks/basisTextureLoader-DEikcMs0.esm.js.map +1 -0
- package/dist/chunks/basisTextureLoader-DnU1aFLP.esm.min.js +2 -0
- package/dist/chunks/basisTextureLoader-DnU1aFLP.esm.min.js.map +1 -0
- package/dist/chunks/ddsTextureLoader-DBWTHVjj.esm.min.js +2 -0
- package/dist/chunks/ddsTextureLoader-DBWTHVjj.esm.min.js.map +1 -0
- package/dist/chunks/ddsTextureLoader-ilOloJ4p.esm.js +87 -0
- package/dist/chunks/ddsTextureLoader-ilOloJ4p.esm.js.map +1 -0
- package/dist/chunks/decalFragment-CMHxc7Hr.esm.min.js +2 -0
- package/dist/chunks/decalFragment-CMHxc7Hr.esm.min.js.map +1 -0
- package/dist/chunks/decalFragment-CzgxOzQf.esm.js +18 -0
- package/dist/chunks/decalFragment-CzgxOzQf.esm.js.map +1 -0
- package/dist/chunks/default.fragment-BOotE87x.esm.min.js +2 -0
- package/dist/chunks/default.fragment-BOotE87x.esm.min.js.map +1 -0
- package/dist/chunks/default.fragment-C8I2FMK1.esm.js +515 -0
- package/dist/chunks/default.fragment-C8I2FMK1.esm.js.map +1 -0
- package/dist/chunks/default.fragment-CMyZ0Um2.esm.js +449 -0
- package/dist/chunks/default.fragment-CMyZ0Um2.esm.js.map +1 -0
- package/dist/chunks/default.fragment-dyXo8ZoT.esm.min.js +2 -0
- package/dist/chunks/default.fragment-dyXo8ZoT.esm.min.js.map +1 -0
- package/dist/chunks/default.vertex-BgameJri.esm.js +199 -0
- package/dist/chunks/default.vertex-BgameJri.esm.js.map +1 -0
- package/dist/chunks/default.vertex-CI-1zFCv.esm.min.js +2 -0
- package/dist/chunks/default.vertex-CI-1zFCv.esm.min.js.map +1 -0
- package/dist/chunks/default.vertex-CtvM7XrD.esm.js +180 -0
- package/dist/chunks/default.vertex-CtvM7XrD.esm.js.map +1 -0
- package/dist/chunks/default.vertex-DVEypQOv.esm.min.js +2 -0
- package/dist/chunks/default.vertex-DVEypQOv.esm.min.js.map +1 -0
- package/dist/chunks/defaultUboDeclaration-2dituFIw.esm.js +15 -0
- package/dist/chunks/defaultUboDeclaration-2dituFIw.esm.js.map +1 -0
- package/dist/chunks/defaultUboDeclaration-BCFc39NJ.esm.js +13 -0
- package/dist/chunks/defaultUboDeclaration-BCFc39NJ.esm.js.map +1 -0
- package/dist/chunks/defaultUboDeclaration-Be_Tm0i8.esm.min.js +2 -0
- package/dist/chunks/defaultUboDeclaration-Be_Tm0i8.esm.min.js.map +1 -0
- package/dist/chunks/defaultUboDeclaration-CjpL7xej.esm.min.js +2 -0
- package/dist/chunks/defaultUboDeclaration-CjpL7xej.esm.min.js.map +1 -0
- package/dist/chunks/engine-2EdX14bK.esm.js +1970 -0
- package/dist/chunks/engine-2EdX14bK.esm.js.map +1 -0
- package/dist/chunks/engine-CTtwkexh.esm.min.js +2 -0
- package/dist/chunks/engine-CTtwkexh.esm.min.js.map +1 -0
- package/dist/chunks/engine.common-BrXEBOzm.esm.js +1213 -0
- package/dist/chunks/engine.common-BrXEBOzm.esm.js.map +1 -0
- package/dist/chunks/engine.common-Dn_GE8cx.esm.min.js +2 -0
- package/dist/chunks/engine.common-Dn_GE8cx.esm.min.js.map +1 -0
- package/dist/chunks/envTextureLoader-9mljxKnB.esm.min.js +2 -0
- package/dist/chunks/envTextureLoader-9mljxKnB.esm.min.js.map +1 -0
- package/dist/chunks/envTextureLoader-cuBGdyEX.esm.js +63 -0
- package/dist/chunks/envTextureLoader-cuBGdyEX.esm.js.map +1 -0
- package/dist/chunks/environmentTextureTools-2JiPh6sF.esm.min.js +2 -0
- package/dist/chunks/environmentTextureTools-2JiPh6sF.esm.min.js.map +1 -0
- package/dist/chunks/environmentTextureTools-CaOOVUg4.esm.js +381 -0
- package/dist/chunks/environmentTextureTools-CaOOVUg4.esm.js.map +1 -0
- package/dist/chunks/exrTextureLoader-C2yRfZW0.esm.min.js +2 -0
- package/dist/chunks/exrTextureLoader-C2yRfZW0.esm.min.js.map +1 -0
- package/dist/chunks/exrTextureLoader-DPvYdRIY.esm.js +1682 -0
- package/dist/chunks/exrTextureLoader-DPvYdRIY.esm.js.map +1 -0
- package/dist/chunks/fogFragment-CerDBxh8.esm.min.js +2 -0
- package/dist/chunks/fogFragment-CerDBxh8.esm.min.js.map +1 -0
- package/dist/chunks/fogFragment-SpVyZY46.esm.js +102 -0
- package/dist/chunks/fogFragment-SpVyZY46.esm.js.map +1 -0
- package/dist/chunks/fresnelFunction-Cfc0PCuM.esm.min.js +2 -0
- package/dist/chunks/fresnelFunction-Cfc0PCuM.esm.min.js.map +1 -0
- package/dist/chunks/fresnelFunction-DYc_QORg.esm.js +12 -0
- package/dist/chunks/fresnelFunction-DYc_QORg.esm.js.map +1 -0
- package/dist/chunks/glTFLoader-CX847JwZ.esm.min.js +2 -0
- package/dist/chunks/glTFLoader-CX847JwZ.esm.min.js.map +1 -0
- package/dist/chunks/glTFLoader-FnbdTR40.esm.js +7552 -0
- package/dist/chunks/glTFLoader-FnbdTR40.esm.js.map +1 -0
- package/dist/chunks/glTFLoaderAnimation-DLprnT2e.esm.js +77 -0
- package/dist/chunks/glTFLoaderAnimation-DLprnT2e.esm.js.map +1 -0
- package/dist/chunks/glTFLoaderAnimation-YVA5W-1q.esm.min.js +2 -0
- package/dist/chunks/glTFLoaderAnimation-YVA5W-1q.esm.min.js.map +1 -0
- package/dist/chunks/gltfPathToObjectConverter-Dyt_Y9jE.esm.min.js +2 -0
- package/dist/chunks/gltfPathToObjectConverter-Dyt_Y9jE.esm.min.js.map +1 -0
- package/dist/chunks/gltfPathToObjectConverter-GcUmfOyo.esm.js +67 -0
- package/dist/chunks/gltfPathToObjectConverter-GcUmfOyo.esm.js.map +1 -0
- package/dist/chunks/harmonicsFunctions-BglL8EAc.esm.min.js +2 -0
- package/dist/chunks/harmonicsFunctions-BglL8EAc.esm.min.js.map +1 -0
- package/dist/chunks/harmonicsFunctions-BjhkFrPF.esm.min.js +2 -0
- package/dist/chunks/harmonicsFunctions-BjhkFrPF.esm.min.js.map +1 -0
- package/dist/chunks/harmonicsFunctions-D0kGurRz.esm.js +34 -0
- package/dist/chunks/harmonicsFunctions-D0kGurRz.esm.js.map +1 -0
- package/dist/chunks/harmonicsFunctions-f0TDZMjd.esm.js +35 -0
- package/dist/chunks/harmonicsFunctions-f0TDZMjd.esm.js.map +1 -0
- package/dist/chunks/hdrTextureLoader-BYv589K1.esm.min.js +2 -0
- package/dist/chunks/hdrTextureLoader-BYv589K1.esm.min.js.map +1 -0
- package/dist/chunks/hdrTextureLoader-Cia6kLvR.esm.js +252 -0
- package/dist/chunks/hdrTextureLoader-Cia6kLvR.esm.js.map +1 -0
- package/dist/chunks/helperFunctions-B6L2NvuR.esm.min.js +2 -0
- package/dist/chunks/helperFunctions-B6L2NvuR.esm.min.js.map +1 -0
- package/dist/chunks/helperFunctions-CTmvPMOb.esm.js +108 -0
- package/dist/chunks/helperFunctions-CTmvPMOb.esm.js.map +1 -0
- package/dist/chunks/helperFunctions-Dx_bhcnf.esm.js +80 -0
- package/dist/chunks/helperFunctions-Dx_bhcnf.esm.js.map +1 -0
- package/dist/chunks/helperFunctions-lfyjwIAq.esm.min.js +2 -0
- package/dist/chunks/helperFunctions-lfyjwIAq.esm.min.js.map +1 -0
- package/dist/chunks/index-H9RbNFln.esm.js +78669 -0
- package/dist/chunks/index-H9RbNFln.esm.js.map +1 -0
- package/dist/chunks/index-NKQY07Ai.esm.min.js +57 -0
- package/dist/chunks/index-NKQY07Ai.esm.min.js.map +1 -0
- package/dist/chunks/ktxTextureLoader-C8P1HmKw.esm.min.js +2 -0
- package/dist/chunks/ktxTextureLoader-C8P1HmKw.esm.min.js.map +1 -0
- package/dist/chunks/ktxTextureLoader-CGZaZgF4.esm.js +814 -0
- package/dist/chunks/ktxTextureLoader-CGZaZgF4.esm.js.map +1 -0
- package/dist/chunks/logDepthDeclaration-BtAGVG3-.esm.min.js +2 -0
- package/dist/chunks/logDepthDeclaration-BtAGVG3-.esm.min.js.map +1 -0
- package/dist/chunks/logDepthDeclaration-BvAgEnZm.esm.min.js +2 -0
- package/dist/chunks/logDepthDeclaration-BvAgEnZm.esm.min.js.map +1 -0
- package/dist/chunks/logDepthDeclaration-DD208S_2.esm.js +35 -0
- package/dist/chunks/logDepthDeclaration-DD208S_2.esm.js.map +1 -0
- package/dist/chunks/logDepthDeclaration-T3brxHqo.esm.js +20 -0
- package/dist/chunks/logDepthDeclaration-T3brxHqo.esm.js.map +1 -0
- package/dist/chunks/logDepthVertex-0P4Fk3ej.esm.js +77 -0
- package/dist/chunks/logDepthVertex-0P4Fk3ej.esm.js.map +1 -0
- package/dist/chunks/logDepthVertex-Bo4jbfP3.esm.min.js +2 -0
- package/dist/chunks/logDepthVertex-Bo4jbfP3.esm.min.js.map +1 -0
- package/dist/chunks/logDepthVertex-DhlJdt6n.esm.min.js +2 -0
- package/dist/chunks/logDepthVertex-DhlJdt6n.esm.min.js.map +1 -0
- package/dist/chunks/logDepthVertex-bCxA8jHH.esm.js +488 -0
- package/dist/chunks/logDepthVertex-bCxA8jHH.esm.js.map +1 -0
- package/dist/chunks/mainUVVaryingDeclaration-CkGDoJLo.esm.js +11 -0
- package/dist/chunks/mainUVVaryingDeclaration-CkGDoJLo.esm.js.map +1 -0
- package/dist/chunks/mainUVVaryingDeclaration-DAb0JqU5.esm.min.js +2 -0
- package/dist/chunks/mainUVVaryingDeclaration-DAb0JqU5.esm.min.js.map +1 -0
- package/dist/chunks/meshUboDeclaration-BEpwR1Md.esm.min.js +2 -0
- package/dist/chunks/meshUboDeclaration-BEpwR1Md.esm.min.js.map +1 -0
- package/dist/chunks/meshUboDeclaration-wwoFcdXg.esm.js +24 -0
- package/dist/chunks/meshUboDeclaration-wwoFcdXg.esm.js.map +1 -0
- package/dist/chunks/objFileLoader-9VII_MH6.esm.min.js +2 -0
- package/dist/chunks/objFileLoader-9VII_MH6.esm.min.js.map +1 -0
- package/dist/chunks/objFileLoader-sy2KqRzD.esm.js +1280 -0
- package/dist/chunks/objFileLoader-sy2KqRzD.esm.js.map +1 -0
- package/dist/chunks/oitFragment-BKhyL_Ma.esm.min.js +2 -0
- package/dist/chunks/oitFragment-BKhyL_Ma.esm.min.js.map +1 -0
- package/dist/chunks/oitFragment-BqtunGU7.esm.min.js +2 -0
- package/dist/chunks/oitFragment-BqtunGU7.esm.min.js.map +1 -0
- package/dist/chunks/oitFragment-CGo4SX0U.esm.js +1150 -0
- package/dist/chunks/oitFragment-CGo4SX0U.esm.js.map +1 -0
- package/dist/chunks/oitFragment-akBosjiV.esm.js +1210 -0
- package/dist/chunks/oitFragment-akBosjiV.esm.js.map +1 -0
- package/dist/chunks/pass.fragment-CMK3Cirh.esm.js +15 -0
- package/dist/chunks/pass.fragment-CMK3Cirh.esm.js.map +1 -0
- package/dist/chunks/pass.fragment-NgBFYMH2.esm.min.js +2 -0
- package/dist/chunks/pass.fragment-NgBFYMH2.esm.min.js.map +1 -0
- package/dist/chunks/pbr.fragment-BxeirEXF.esm.min.js +2 -0
- package/dist/chunks/pbr.fragment-BxeirEXF.esm.min.js.map +1 -0
- package/dist/chunks/pbr.fragment-C9P-kot0.esm.min.js +2 -0
- package/dist/chunks/pbr.fragment-C9P-kot0.esm.min.js.map +1 -0
- package/dist/chunks/pbr.fragment-CmciAvUf.esm.js +3219 -0
- package/dist/chunks/pbr.fragment-CmciAvUf.esm.js.map +1 -0
- package/dist/chunks/pbr.fragment-DptkOGvm.esm.js +3165 -0
- package/dist/chunks/pbr.fragment-DptkOGvm.esm.js.map +1 -0
- package/dist/chunks/pbr.vertex-BGYxmiED.esm.min.js +2 -0
- package/dist/chunks/pbr.vertex-BGYxmiED.esm.min.js.map +1 -0
- package/dist/chunks/pbr.vertex-BKYxq0u4.esm.min.js +2 -0
- package/dist/chunks/pbr.vertex-BKYxq0u4.esm.min.js.map +1 -0
- package/dist/chunks/pbr.vertex-BW_cBtTy.esm.js +210 -0
- package/dist/chunks/pbr.vertex-BW_cBtTy.esm.js.map +1 -0
- package/dist/chunks/pbr.vertex-D5_YtZ3F.esm.js +335 -0
- package/dist/chunks/pbr.vertex-D5_YtZ3F.esm.js.map +1 -0
- package/dist/chunks/postprocess.vertex-BIHPwYtc.esm.min.js +2 -0
- package/dist/chunks/postprocess.vertex-BIHPwYtc.esm.min.js.map +1 -0
- package/dist/chunks/postprocess.vertex-DQbuHlSL.esm.js +20 -0
- package/dist/chunks/postprocess.vertex-DQbuHlSL.esm.js.map +1 -0
- package/dist/chunks/rawTexture-BBFBylYg.esm.js +191 -0
- package/dist/chunks/rawTexture-BBFBylYg.esm.js.map +1 -0
- package/dist/chunks/rawTexture-DtTw1SfK.esm.min.js +2 -0
- package/dist/chunks/rawTexture-DtTw1SfK.esm.min.js.map +1 -0
- package/dist/chunks/rgbdDecode.fragment-B8vtIeR2.esm.min.js +2 -0
- package/dist/chunks/rgbdDecode.fragment-B8vtIeR2.esm.min.js.map +1 -0
- package/dist/chunks/rgbdDecode.fragment-BAERNvTB.esm.js +17 -0
- package/dist/chunks/rgbdDecode.fragment-BAERNvTB.esm.js.map +1 -0
- package/dist/chunks/rgbdDecode.fragment-CUCNLBNb.esm.js +17 -0
- package/dist/chunks/rgbdDecode.fragment-CUCNLBNb.esm.js.map +1 -0
- package/dist/chunks/rgbdDecode.fragment-DE974oq3.esm.min.js +2 -0
- package/dist/chunks/rgbdDecode.fragment-DE974oq3.esm.min.js.map +1 -0
- package/dist/chunks/rgbdEncode.fragment-12Ga6DPf.esm.min.js +2 -0
- package/dist/chunks/rgbdEncode.fragment-12Ga6DPf.esm.min.js.map +1 -0
- package/dist/chunks/rgbdEncode.fragment-C_8FK6je.esm.min.js +2 -0
- package/dist/chunks/rgbdEncode.fragment-C_8FK6je.esm.min.js.map +1 -0
- package/dist/chunks/rgbdEncode.fragment-DLGZ9Ew-.esm.js +17 -0
- package/dist/chunks/rgbdEncode.fragment-DLGZ9Ew-.esm.js.map +1 -0
- package/dist/chunks/rgbdEncode.fragment-vtqqWXMx.esm.js +17 -0
- package/dist/chunks/rgbdEncode.fragment-vtqqWXMx.esm.js.map +1 -0
- package/dist/chunks/splatFileLoader-BvGLmrOU.esm.js +3179 -0
- package/dist/chunks/splatFileLoader-BvGLmrOU.esm.js.map +1 -0
- package/dist/chunks/splatFileLoader-Du-_lAWj.esm.min.js +2 -0
- package/dist/chunks/splatFileLoader-Du-_lAWj.esm.min.js.map +1 -0
- package/dist/chunks/standardMaterial-CTqOZPWo.esm.min.js +2 -0
- package/dist/chunks/standardMaterial-CTqOZPWo.esm.min.js.map +1 -0
- package/dist/chunks/standardMaterial-Nso7Fcun.esm.js +1809 -0
- package/dist/chunks/standardMaterial-Nso7Fcun.esm.js.map +1 -0
- package/dist/chunks/stlFileLoader-C0UsVNIc.esm.js +237 -0
- package/dist/chunks/stlFileLoader-C0UsVNIc.esm.js.map +1 -0
- package/dist/chunks/stlFileLoader-Du9QZoAm.esm.min.js +2 -0
- package/dist/chunks/stlFileLoader-Du9QZoAm.esm.min.js.map +1 -0
- package/dist/chunks/tgaTextureLoader-BNBS-X4Q.esm.min.js +2 -0
- package/dist/chunks/tgaTextureLoader-BNBS-X4Q.esm.min.js.map +1 -0
- package/dist/chunks/tgaTextureLoader-D46YCUQ_.esm.js +349 -0
- package/dist/chunks/tgaTextureLoader-D46YCUQ_.esm.js.map +1 -0
- package/dist/chunks/thinInstanceMesh-DCh8MOoj.esm.min.js +2 -0
- package/dist/chunks/thinInstanceMesh-DCh8MOoj.esm.min.js.map +1 -0
- package/dist/chunks/thinInstanceMesh-DzFmk7SW.esm.js +314 -0
- package/dist/chunks/thinInstanceMesh-DzFmk7SW.esm.js.map +1 -0
- package/dist/chunks/vertexColorMixing-Bt0lYFpZ.esm.min.js +2 -0
- package/dist/chunks/vertexColorMixing-Bt0lYFpZ.esm.min.js.map +1 -0
- package/dist/chunks/vertexColorMixing-Ds7u6owR.esm.js +528 -0
- package/dist/chunks/vertexColorMixing-Ds7u6owR.esm.js.map +1 -0
- package/dist/chunks/webgpuEngine--HWPU_ZX.esm.js +11169 -0
- package/dist/chunks/webgpuEngine--HWPU_ZX.esm.js.map +1 -0
- package/dist/chunks/webgpuEngine-BwnxF0Zq.esm.min.js +2 -0
- package/dist/chunks/webgpuEngine-BwnxF0Zq.esm.min.js.map +1 -0
- package/dist/chunks/workerPool-BUOov2K1.esm.js +122 -0
- package/dist/chunks/workerPool-BUOov2K1.esm.js.map +1 -0
- package/dist/chunks/workerPool-BWHiDmEZ.esm.min.js +2 -0
- package/dist/chunks/workerPool-BWHiDmEZ.esm.min.js.map +1 -0
- package/lib/index.d.ts +281 -0
- package/lib/index.js +965 -0
- package/lib/index.js.map +1 -0
- package/package.json +17 -27
- package/readme.md +35 -21
- package/configuration/configuration.d.ts +0 -107
- package/configuration/configuration.js +0 -16
- package/configuration/configuration.js.map +0 -1
- package/configuration/configurationCompatibility.d.ts +0 -8
- package/configuration/configurationCompatibility.js +0 -66
- package/configuration/configurationCompatibility.js.map +0 -1
- package/configuration/configurationContainer.d.ts +0 -10
- package/configuration/configurationContainer.js +0 -10
- package/configuration/configurationContainer.js.map +0 -1
- package/configuration/globals.d.ts +0 -6
- package/configuration/globals.js +0 -18
- package/configuration/globals.js.map +0 -1
- package/configuration/index.d.ts +0 -2
- package/configuration/index.js +0 -4
- package/configuration/index.js.map +0 -1
- package/configuration/interfaces/cameraConfiguration.d.ts +0 -31
- package/configuration/interfaces/cameraConfiguration.js +0 -2
- package/configuration/interfaces/cameraConfiguration.js.map +0 -1
- package/configuration/interfaces/colorGradingConfiguration.d.ts +0 -81
- package/configuration/interfaces/colorGradingConfiguration.js +0 -2
- package/configuration/interfaces/colorGradingConfiguration.js.map +0 -1
- package/configuration/interfaces/defaultRenderingPipelineConfiguration.d.ts +0 -20
- package/configuration/interfaces/defaultRenderingPipelineConfiguration.js +0 -2
- package/configuration/interfaces/defaultRenderingPipelineConfiguration.js.map +0 -1
- package/configuration/interfaces/environmentMapConfiguration.d.ts +0 -22
- package/configuration/interfaces/environmentMapConfiguration.js +0 -2
- package/configuration/interfaces/environmentMapConfiguration.js.map +0 -1
- package/configuration/interfaces/groundConfiguration.d.ts +0 -24
- package/configuration/interfaces/groundConfiguration.js +0 -2
- package/configuration/interfaces/groundConfiguration.js.map +0 -1
- package/configuration/interfaces/imageProcessingConfiguration.d.ts +0 -45
- package/configuration/interfaces/imageProcessingConfiguration.js +0 -2
- package/configuration/interfaces/imageProcessingConfiguration.js.map +0 -1
- package/configuration/interfaces/index.d.ts +0 -15
- package/configuration/interfaces/index.js +0 -16
- package/configuration/interfaces/index.js.map +0 -1
- package/configuration/interfaces/lightConfiguration.d.ts +0 -60
- package/configuration/interfaces/lightConfiguration.js +0 -2
- package/configuration/interfaces/lightConfiguration.js.map +0 -1
- package/configuration/interfaces/modelAnimationConfiguration.d.ts +0 -26
- package/configuration/interfaces/modelAnimationConfiguration.js +0 -2
- package/configuration/interfaces/modelAnimationConfiguration.js.map +0 -1
- package/configuration/interfaces/modelConfiguration.d.ts +0 -65
- package/configuration/interfaces/modelConfiguration.js +0 -2
- package/configuration/interfaces/modelConfiguration.js.map +0 -1
- package/configuration/interfaces/observersConfiguration.d.ts +0 -5
- package/configuration/interfaces/observersConfiguration.js +0 -2
- package/configuration/interfaces/observersConfiguration.js.map +0 -1
- package/configuration/interfaces/sceneConfiguration.d.ts +0 -48
- package/configuration/interfaces/sceneConfiguration.js +0 -2
- package/configuration/interfaces/sceneConfiguration.js.map +0 -1
- package/configuration/interfaces/sceneOptimizerConfiguration.d.ts +0 -23
- package/configuration/interfaces/sceneOptimizerConfiguration.js +0 -2
- package/configuration/interfaces/sceneOptimizerConfiguration.js.map +0 -1
- package/configuration/interfaces/skyboxConfiguration.d.ts +0 -21
- package/configuration/interfaces/skyboxConfiguration.js +0 -2
- package/configuration/interfaces/skyboxConfiguration.js.map +0 -1
- package/configuration/interfaces/templateConfiguration.d.ts +0 -67
- package/configuration/interfaces/templateConfiguration.js +0 -2
- package/configuration/interfaces/templateConfiguration.js.map +0 -1
- package/configuration/interfaces/vrConfiguration.d.ts +0 -16
- package/configuration/interfaces/vrConfiguration.js +0 -2
- package/configuration/interfaces/vrConfiguration.js.map +0 -1
- package/configuration/loader.d.ts +0 -4
- package/configuration/loader.js +0 -17
- package/configuration/loader.js.map +0 -1
- package/configuration/mappers.d.ts +0 -43
- package/configuration/mappers.js +0 -192
- package/configuration/mappers.js.map +0 -1
- package/configuration/renderOnlyLoader.d.ts +0 -33
- package/configuration/renderOnlyLoader.js +0 -162
- package/configuration/renderOnlyLoader.js.map +0 -1
- package/configuration/types/default.d.ts +0 -6
- package/configuration/types/default.js +0 -121
- package/configuration/types/default.js.map +0 -1
- package/configuration/types/environmentMap.d.ts +0 -5
- package/configuration/types/environmentMap.js +0 -14
- package/configuration/types/environmentMap.js.map +0 -1
- package/configuration/types/extended.d.ts +0 -6
- package/configuration/types/extended.js +0 -317
- package/configuration/types/extended.js.map +0 -1
- package/configuration/types/index.d.ts +0 -14
- package/configuration/types/index.js +0 -51
- package/configuration/types/index.js.map +0 -1
- package/configuration/types/minimal.d.ts +0 -6
- package/configuration/types/minimal.js +0 -43
- package/configuration/types/minimal.js.map +0 -1
- package/configuration/types/renderOnlyDefault.d.ts +0 -30
- package/configuration/types/renderOnlyDefault.js +0 -31
- package/configuration/types/renderOnlyDefault.js.map +0 -1
- package/configuration/types/shadowLight.d.ts +0 -9
- package/configuration/types/shadowLight.js +0 -64
- package/configuration/types/shadowLight.js.map +0 -1
- package/helper/index.d.ts +0 -29
- package/helper/index.js +0 -66
- package/helper/index.js.map +0 -1
- package/index.d.ts +0 -30
- package/index.js +0 -46
- package/index.js.map +0 -1
- package/initializer.d.ts +0 -11
- package/initializer.js +0 -35
- package/initializer.js.map +0 -1
- package/interfaces.d.ts +0 -5
- package/interfaces.js +0 -7
- package/interfaces.js.map +0 -1
- package/labs/environmentSerializer.d.ts +0 -126
- package/labs/environmentSerializer.js +0 -191
- package/labs/environmentSerializer.js.map +0 -1
- package/labs/texture.d.ts +0 -183
- package/labs/texture.js +0 -350
- package/labs/texture.js.map +0 -1
- package/labs/viewerLabs.d.ts +0 -51
- package/labs/viewerLabs.js +0 -134
- package/labs/viewerLabs.js.map +0 -1
- package/loader/modelLoader.d.ts +0 -56
- package/loader/modelLoader.js +0 -199
- package/loader/modelLoader.js.map +0 -1
- package/loader/plugins/applyMaterialConfig.d.ts +0 -12
- package/loader/plugins/applyMaterialConfig.js +0 -16
- package/loader/plugins/applyMaterialConfig.js.map +0 -1
- package/loader/plugins/extendedMaterialLoaderPlugin.d.ts +0 -9
- package/loader/plugins/extendedMaterialLoaderPlugin.js +0 -16
- package/loader/plugins/extendedMaterialLoaderPlugin.js.map +0 -1
- package/loader/plugins/index.d.ts +0 -19
- package/loader/plugins/index.js +0 -44
- package/loader/plugins/index.js.map +0 -1
- package/loader/plugins/loaderPlugin.d.ts +0 -24
- package/loader/plugins/loaderPlugin.js +0 -2
- package/loader/plugins/loaderPlugin.js.map +0 -1
- package/loader/plugins/msftLodLoaderPlugin.d.ts +0 -12
- package/loader/plugins/msftLodLoaderPlugin.js +0 -21
- package/loader/plugins/msftLodLoaderPlugin.js.map +0 -1
- package/loader/plugins/telemetryLoaderPlugin.d.ts +0 -12
- package/loader/plugins/telemetryLoaderPlugin.js +0 -36
- package/loader/plugins/telemetryLoaderPlugin.js.map +0 -1
- package/managers/observablesManager.d.ts +0 -66
- package/managers/observablesManager.js +0 -35
- package/managers/observablesManager.js.map +0 -1
- package/managers/sceneManager.d.ts +0 -245
- package/managers/sceneManager.js +0 -1375
- package/managers/sceneManager.js.map +0 -1
- package/managers/telemetryManager.d.ts +0 -78
- package/managers/telemetryManager.js +0 -117
- package/managers/telemetryManager.js.map +0 -1
- package/model/modelAnimation.d.ts +0 -215
- package/model/modelAnimation.js +0 -237
- package/model/modelAnimation.js.map +0 -1
- package/model/viewerModel.d.ts +0 -233
- package/model/viewerModel.js +0 -673
- package/model/viewerModel.js.map +0 -1
- package/optimizer/custom/extended.d.ts +0 -13
- package/optimizer/custom/extended.js +0 -101
- package/optimizer/custom/extended.js.map +0 -1
- package/optimizer/custom/index.d.ts +0 -9
- package/optimizer/custom/index.js +0 -26
- package/optimizer/custom/index.js.map +0 -1
- package/renderOnlyIndex.d.ts +0 -11
- package/renderOnlyIndex.js +0 -18
- package/renderOnlyIndex.js.map +0 -1
- package/templating/eventManager.d.ts +0 -35
- package/templating/eventManager.js +0 -66
- package/templating/eventManager.js.map +0 -1
- package/templating/plugins/hdButtonPlugin.d.ts +0 -9
- package/templating/plugins/hdButtonPlugin.js +0 -21
- package/templating/plugins/hdButtonPlugin.js.map +0 -1
- package/templating/plugins/printButton.d.ts +0 -9
- package/templating/plugins/printButton.js +0 -40
- package/templating/plugins/printButton.js.map +0 -1
- package/templating/templateManager.d.ts +0 -197
- package/templating/templateManager.js +0 -561
- package/templating/templateManager.js.map +0 -1
- package/templating/viewerTemplatePlugin.d.ts +0 -21
- package/templating/viewerTemplatePlugin.js +0 -69
- package/templating/viewerTemplatePlugin.js.map +0 -1
- package/viewer/defaultViewer.d.ts +0 -130
- package/viewer/defaultViewer.js +0 -675
- package/viewer/defaultViewer.js.map +0 -1
- package/viewer/renderOnlyViewer.d.ts +0 -9
- package/viewer/renderOnlyViewer.js +0 -46
- package/viewer/renderOnlyViewer.js.map +0 -1
- package/viewer/viewer.d.ts +0 -258
- package/viewer/viewer.js +0 -783
- package/viewer/viewer.js.map +0 -1
- package/viewer/viewerManager.d.ts +0 -58
- package/viewer/viewerManager.js +0 -91
- package/viewer/viewerManager.js.map +0 -1
- package/viewer/viewerWithTemplate.d.ts +0 -9
- package/viewer/viewerWithTemplate.js +0 -20
- package/viewer/viewerWithTemplate.js.map +0 -1
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{h as t,R as e,y as i,z as s,H as r,J as o,K as n,N as a,Q as c,X as l,Y as h,Z as u,_ as d,$ as p,a0 as m,V as _,M as f,a1 as g,w as x,a2 as y,a3 as T,u as v,L as w,i as b,t as P,a4 as M,C as R,j as C,a5 as A,a6 as I,a7 as k,a8 as V,a9 as F,E as z,q as D,aa as S,ab as B,ac as U,ad as E,x as L}from"./index-NKQY07Ai.esm.min.js";import"./fogFragment-CerDBxh8.esm.min.js";import"./logDepthDeclaration-BvAgEnZm.esm.min.js";import"./logDepthVertex-Bo4jbfP3.esm.min.js";import{R as W}from"./rawTexture-DtTw1SfK.esm.min.js";import"./thinInstanceMesh-DCh8MOoj.esm.min.js";import{A as Z}from"./assetContainer-BWyT-iC8.esm.min.js";import{S as N}from"./standardMaterial-CTqOZPWo.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 h=this.getScene(),u=e.materialDefines;if(this._isReadyForSubMesh(e))return!0;const d=h.getEngine();if(s(t,h,this._useLogarithmicDepth,this.pointsCloud,this.fogEnabled,!1,u),r(h,d,this,u,i,null,!0),o(t,u,!1,!1),u.isDirty){u.markAsProcessed(),h.resetCachedMaterial();const t=[_.PositionKind,"splatIndex"];n(t,u);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:u}),c(i);const o=u.toString(),l=h.getEngine().createEffect("gaussianSplatting",{attributes:t,uniformsNames:i,uniformBuffersNames:r,samplers:s,defines:o,onCompiled:this.onCompiled,onError:this.onError},d);e.setEffect(l,u,this._materialContext)}return!(!e.effect||!e.effect.isReady())&&(u._renderId=h.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 u=e;if(u.covariancesATexture){const t=u.covariancesATexture.getSize();o.setFloat2("dataTextureSize",t.width,t.height),o.setTexture("covariancesATexture",u.covariancesATexture),o.setTexture("covariancesBTexture",u.covariancesBTexture),o.setTexture("centersTexture",u.centersTexture),o.setTexture("colorsTexture",u.colorsTexture)}h(o,this,s)}else s.getEngine()._features.needToAlwaysBindUniformBuffers&&(this._needToBindSceneUbo=!0);u(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._covariancesA=null,this._covariancesB=null,this._colors=null,this._keepInRam=!1;const r=new x;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 y(0,0,4,0,6,this),this.setEnabled(!1),this._lastModelViewMatrix=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],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(),!1))}_postToWorker(){const t=this.getScene().getFrameId();if(t!==this._frameIdLastUpdate&&this._worker&&this._scene.activeCamera&&this._canPostToWorker){this.getWorldMatrix().multiplyToRef(this._scene.activeCamera.getViewMatrix(),this._modelViewMatrix),T.Vector3[0].set(this._lastModelViewMatrix[8],this._lastModelViewMatrix[9],this._lastModelViewMatrix[10]),T.Vector3[1].set(this._modelViewMatrix.m[8],this._modelViewMatrix.m[9],this._modelViewMatrix.m[10]),T.Vector3[0].normalize(),T.Vector3[1].normalize();const e=v.Dot(T.Vector3[0],T.Vector3[1]);Math.abs(e-1)>=.01&&(this._frameIdLastUpdate=t,this._canPostToWorker=!1,this._lastModelViewMatrix=this._modelViewMatrix.m.slice(0),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 h=.28209479177387814,u=new DataView(t,r+11),d=new ArrayBuffer(32*o),p=new M;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=u.getFloat32(d.offset+t*n,!0);break;case"int":p=u.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+h*p);break;case"f_dc_1":s[1]=255*(.5+h*p);break;case"f_dc_2":s[2]=255*(.5+h*p);break;case"f_dc_3":s[3]=255*(.5+h*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;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=T.Matrix[0],l=T.Matrix[1],h=T.Quaternion[0],u=new v(Number.MAX_VALUE,Number.MAX_VALUE,Number.MAX_VALUE),d=new v(-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,u.minimizeInPlaceFromFloats(s,r,o),d.maximizeInPlaceFromFloats(s,r,o),h.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),h.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,T.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(u,d,this.getWorldMatrix()),this.forcedInstanceCount=this._vertexCount,this.setEnabled(!0);const p=(t,e,i,s)=>new W(t,e,i,s,this._scene,!1,!1,R.TEXTURE_BILINEAR_SAMPLINGMODE,R.TEXTURETYPE_FLOAT),m=(t,e,i,s)=>{this.getEngine().updateTextureData(t.getInternalTexture(),e,0,0,i,s,0,0,!1)},_=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},f=new Float32Array(r.x*r.y*4);for(let t=0;t<this._vertexCount;++t)f[4*t+0]=e[32*t+24+0]/255,f[4*t+1]=e[32*t+24+1]/255,f[4*t+2]=e[32*t+24+2]/255,f[4*t+3]=e[32*t+24+3]/255;this._keepInRam&&(this._covariancesA=n,this._covariancesB=a,this._colors=f),this._covariancesATexture?(m(this._covariancesATexture,_(n),r.x,r.y),m(this._covariancesBTexture,_(a),r.x,r.y),m(this._centersTexture,_(this._splatPositions),r.x,r.y),m(this._colorsTexture,f,r.x,r.y)):(this._covariancesATexture=p(_(n),r.x,r.y,R.TEXTUREFORMAT_RGBA),this._covariancesBTexture=p(_(a),r.x,r.y,R.TEXTUREFORMAT_RGBA),this._centersTexture=p(_(this._splatPositions),r.x,r.y,R.TEXTUREFORMAT_RGBA),this._colorsTexture=p(f,r.x,r.y,R.TEXTUREFORMAT_RGBA),this._instanciateWorker())}_loadData(t){t.byteLength&&this.updateData(t)}_instanciateWorker(){if(!this._vertexCount)return;const t=new Float32Array(this._vertexCount);this.thinInstanceSetBuffer("splatIndex",t,1,!1),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 e=Float32Array.from(this._splatPositions),i=this._vertexCount;this._worker.postMessage({positions:e,vertexCount:i},[e.buffer]),this._worker.onmessage=e=>{this._depthMix=e.data.depthMix;const i=new Uint32Array(e.data.depthMix.buffer);for(let e=0;e<this._vertexCount;e++)t[e]=i[2*e];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 C(1,1,1,1),this.position=v.Zero(),this.rotation=v.Zero(),this.uv=new P(0,0),this.velocity=v.Zero(),this.pivot=v.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=v.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,h=this.position.y+this._pcs.mesh.position.y,u=this.position.z+this._pcs.mesh.position.z;return r<=l&&l<=s&&n<=h&&h<=o&&c<=u&&u<=a}getRotationMatrix(t){let e;if(this.rotationQuaternion)e=this.rotationQuaternion;else{e=T.Quaternion[0];const t=this.rotation;M.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=V){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,h=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),h=Math.min(a,h),l>h)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),h=Math.min(a,h),l>h)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),h=Math.min(a,h),l>h)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),v.CrossToRef(this.direction,r,o);const c=v.Dot(s,o);if(0===c)return null;const l=1/c;this.origin.subtractToRef(t,n);const h=v.Dot(n,o)*l;if(h<-this.epsilon||h>1+this.epsilon)return null;v.CrossToRef(n,s,a);const u=v.Dot(this.direction,a)*l;if(u<-this.epsilon||h+u>1+this.epsilon)return null;const d=v.Dot(r,a)*l;return d>this.length?null:new F(1-h-u,h,d)}intersectsPlane(t){let e;const i=v.Dot(t.normal,this.direction);if(Math.abs(i)<9.99999997475243e-7)return null;{const s=v.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 v(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 v(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 v(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=T.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=T.Vector3[0],o=T.Vector3[1],n=T.Vector3[2],a=T.Vector3[3];e.subtractToRef(t,r),this.direction.scaleToRef(K._Rayl,n),s.addToRef(n,o),t.subtractToRef(s,a);const c=v.Dot(r,r),l=v.Dot(r,n),h=v.Dot(n,n),u=v.Dot(r,a),d=v.Dot(n,a),p=c*h-l*l;let m,_,f=p,g=p;p<K._Smallnum?(m=0,f=1,_=d,g=h):(m=l*d-h*u,_=c*d-l*u,m<0?(m=0,_=d,g=h):m>f&&(m=f,_=d+l,g=h)),_<0?(_=0,-u<0?m=0:-u>c?m=f:(m=-u,f=c)):_>g&&(_=g,-u+l<0?m=0:-u+l>c?m=f:(m=-u+l,f=c));const x=Math.abs(m)<K._Smallnum?0:m/f,y=Math.abs(_)<K._Smallnum?0:_/g,w=T.Vector3[4];n.scaleToRef(y,w);const b=T.Vector3[5];r.scaleToRef(x,b),b.addInPlace(a);const P=T.Vector3[6];b.subtractToRef(w,P);return y>0&&y<=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=T.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(v.Zero(),v.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 v(0,0,0),new v(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 v(0,0,0),new v(0,0,0));return K.TransformToRef(t,e,i),i}static TransformToRef(t,e,i){v.TransformCoordinatesToRef(t.origin,e,i.origin),v.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=T.Matrix[0];r.multiplyToRef(o,a),a.multiplyToRef(n,a),a.invert();const c=z.LastCreatedEngine,l=T.Vector3[0];l.x=t/i*2-1,l.y=-(e/s*2-1),l.z=c?.useReverseDepthBuffer?1:c?.isNDCHalfZRange?0:-1;const h=T.Vector3[1].copyFromFloats(l.x,l.y,1-1e-8),u=T.Vector3[2],d=T.Vector3[3];v._UnprojectFromInvertedMatrixToRef(l,a,u),v._UnprojectFromInvertedMatrixToRef(h,a,d),this.origin.copyFrom(u),d.subtractToRef(u,this.direction),this.direction.normalize()}}var Y,q;K._TmpVector3=A(6,v.Zero),K._RayDistant=K.Zero(),K._Smallnum=1e-8,K._Rayl=1e9,I.prototype.createPickingRay=function(t,e,i,s,r=!1){const o=K.Zero();return this.createPickingRayToRef(t,e,i,o,s,r),o},I.prototype.createPickingRayToRef=function(t,e,i,s,r,o=!1,n=!1){const a=this.getEngine();if(!r&&!(r=this.activeCamera))return this;const c=r.viewport,l=a.getRenderHeight(),{x:h,y:u,width:d,height:p}=c.toGlobal(a.getRenderWidth(),l),m=1/a.getHardwareScalingLevel();return t=t*m-h,e=e*m-(l-u-p),s.update(t,e,d,p,i||g.IdentityReadOnly,o?g.IdentityReadOnly:r.getViewMatrix(),r.getProjectionMatrix(),n),this},I.prototype.createPickingRayInCameraSpace=function(t,e,i){const s=K.Zero();return this.createPickingRayInCameraSpaceToRef(t,e,s,i),s},I.prototype.createPickingRayInCameraSpaceToRef=function(t,e,i,s){if(!k)return this;const r=this.getEngine();if(!s&&!(s=this.activeCamera))throw new Error("Active camera not set");const o=s.viewport,n=r.getRenderHeight(),{x:a,y:c,width:l,height:h}=o.toGlobal(r.getRenderWidth(),n),u=g.Identity(),d=1/r.getHardwareScalingLevel();return t=t*d-a,e=e*d-(n-c-h),i.update(t,e,l,h,u,u,s.getProjectionMatrix()),this},I.prototype._internalPickForMesh=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},I.prototype._internalPick=function(t,e,i,s,r){let o=null;const n=!!(this.activeCameras&&this.activeCameras.length>1&&this.cameraToUseForPointers!==this.activeCamera),a=this.cameraToUseForPointers||this.activeCamera;for(let c=0;c<this.meshes.length;c++){const l=this.meshes[c];if(e){if(!e(l,-1))continue}else if(!l.isEnabled()||!l.isVisible||!l.isPickable)continue;const h=n&&l.isWorldMatrixCameraDependent(),u=l.computeWorldMatrix(h,a);if(l.hasThinInstances&&l.thinInstanceEnablePicking){const n=this._internalPickForMesh(o,t,l,u,!0,!0,r);if(n){if(s)return n;const a=T.Matrix[1],c=l.thinInstanceGetWorldMatrices();for(let n=0;n<c.length;n++){if(e&&!e(l,n))continue;c[n].multiplyToRef(u,a);const h=this._internalPickForMesh(o,t,l,a,i,s,r,!0);if(h&&(o=h,o.thinInstanceIndex=n,i))return o}}}else{const e=this._internalPickForMesh(o,t,l,u,i,s,r);if(e&&(o=e,i))return o}}return o||new k},I.prototype._internalMultiPick=function(t,e,i){if(!k)return null;const s=[],r=!!(this.activeCameras&&this.activeCameras.length>1&&this.cameraToUseForPointers!==this.activeCamera),o=this.cameraToUseForPointers||this.activeCamera;for(let n=0;n<this.meshes.length;n++){const a=this.meshes[n];if(e){if(!e(a,-1))continue}else if(!a.isEnabled()||!a.isVisible||!a.isPickable)continue;const c=r&&a.isWorldMatrixCameraDependent(),l=a.computeWorldMatrix(c,o);if(a.hasThinInstances&&a.thinInstanceEnablePicking){if(this._internalPickForMesh(null,t,a,l,!0,!0,i)){const r=T.Matrix[1],o=a.thinInstanceGetWorldMatrices();for(let n=0;n<o.length;n++){if(e&&!e(a,n))continue;o[n].multiplyToRef(l,r);const c=this._internalPickForMesh(null,t,a,r,!1,!1,i,!0);c&&(c.thinInstanceIndex=n,s.push(c))}}}else{const e=this._internalPickForMesh(null,t,a,l,!1,!1,i);e&&s.push(e)}}return s},I.prototype.pickWithBoundingInfo=function(t,e,i,s,r){if(!k)return null;const o=this._internalPick((i=>(this._tempPickingRay||(this._tempPickingRay=K.Zero()),this.createPickingRayToRef(t,e,i,this._tempPickingRay,r||null),this._tempPickingRay)),i,s,!0);return o&&(o.ray=this.createPickingRay(t,e,g.Identity(),r||null)),o},Object.defineProperty(I.prototype,"_pickingAvailable",{get:()=>!0,enumerable:!1,configurable:!1}),I.prototype.pick=function(t,e,i,s,r,o,n=!1){const a=this._internalPick(((i,s)=>(this._tempPickingRay||(this._tempPickingRay=K.Zero()),this.createPickingRayToRef(t,e,i,this._tempPickingRay,r||null,!1,s),this._tempPickingRay)),i,s,!1,o);return a&&(a.ray=this.createPickingRay(t,e,g.Identity(),r||null)),a},I.prototype.pickWithRay=function(t,e,i,s){const r=this._internalPick((e=>(this._pickWithRayInverseMatrix||(this._pickWithRayInverseMatrix=g.Identity()),e.invertToRef(this._pickWithRayInverseMatrix),this._cachedRayForTransform||(this._cachedRayForTransform=K.Zero()),K.TransformToRef(t,this._pickWithRayInverseMatrix,this._cachedRayForTransform),this._cachedRayForTransform)),e,i,!1,s);return r&&(r.ray=t),r},I.prototype.multiPick=function(t,e,i,s,r){return this._internalMultiPick((i=>this.createPickingRay(t,e,i,s||null)),i,r)},I.prototype.multiPickWithRay=function(t,e,i){return this._internalMultiPick((e=>(this._pickWithRayInverseMatrix||(this._pickWithRayInverseMatrix=g.Identity()),e.invertToRef(this._pickWithRayInverseMatrix),this._cachedRayForTransform||(this._cachedRayForTransform=K.Zero()),K.TransformToRef(t,this._pickWithRayInverseMatrix,this._cachedRayForTransform),this._cachedRayForTransform)),e,i)},l.prototype.getForwardRay=function(t=100,e,i){return this.getForwardRayToRef(new K(v.Zero(),v.Zero(),t),t,e,i)},l.prototype.getForwardRayToRef=function(t,e=100,i,s){i||(i=this.getWorldMatrix()),t.length=e,s?t.origin.copyFrom(s):t.origin.copyFrom(this.position);const r=T.Vector3[2];r.set(0,0,this._scene.useRightHandedSystem?-1:1);const o=T.Vector3[3];return v.TransformNormalToRef(r,i,o),v.NormalizeToRef(o,t.direction),t},function(t){t[t.Color=2]="Color",t[t.UV=1]="UV",t[t.Random=0]="Random",t[t.Stated=3]="Stated"}(Y||(Y={}));class Q{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||z.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 x;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 v(Math.random(),Math.random(),Math.random()),t.color=new C(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],h=r[n[0]],u=r[a],d=r[c],p=r[l];return new C(h/255,u/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 h=t.getIndices(),u=t.getVerticesData(_.UVKind+(a?a+1:"")),d=t.getVerticesData(_.ColorKind),p=v.Zero();t.computeWorldMatrix();const m=t.getWorldMatrix();if(!m.isIdentity()){l=l.slice(0);for(let t=0;t<l.length/3;t++)v.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,x=0,y=0,T=0,w=0,b=0,M=0,R=0,A=0,I=0,k=0,V=0;const F=v.Zero(),z=v.Zero(),U=v.Zero(),E=v.Zero(),L=v.Zero();let W=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 ht=S.Zero(),ut=S.Zero(),dt=S.Zero(),pt=S.Zero(),mt=S.Zero();let _t,ft,gt=0,xt=0;n=n||0;let yt=new S(0,0,0,0),Tt=v.Zero(),vt=v.Zero(),wt=v.Zero(),bt=0,Pt=v.Zero(),Mt=0,Rt=0;const Ct=new K(v.Zero(),new v(1,0,0));let At,It=v.Zero();for(let a=0;a<h.length/3;a++){let p,m,_,P,S,K,kt,Vt;g=h[3*a],x=h[3*a+1],y=h[3*a+2],T=l[3*g],w=l[3*g+1],b=l[3*g+2],M=l[3*x],R=l[3*x+1],A=l[3*x+2],I=l[3*y],k=l[3*y+1],V=l[3*y+2],F.set(T,w,b),z.set(M,R,A),U.set(I,k,V),z.subtractToRef(F,E),U.subtractToRef(z,L),u&&(W=u[2*g],Z=u[2*g+1],N=u[2*x],O=u[2*x+1],G=u[2*y],j=u[2*y+1],H.set(W,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*x],st=d[4*x+1],rt=d[4*x+2],ot=d[4*x+3],nt=d[4*y],at=d[4*y+1],ct=d[4*y+2],lt=d[4*y+3],ht.set($,J,tt,et),ut.set(it,st,rt,ot),dt.set(nt,at,ct,lt),ut.subtractToRef(ht,pt),dt.subtractToRef(ut,mt));const Ft=new D(0,0,0),zt=new D(0,0,0);let Dt,St;for(let l=0;l<e._groupDensity[a];l++)f=this.particles.length,this._addParticle(f,e,this._groupCounter,a+l),St=this.particles[f],gt=Math.sqrt(B(0,1)),xt=B(0,1),_t=F.add(E.scale(gt)).add(L.scale(gt*xt)),i&&(Tt=t.getFacetNormal(a).normalize().scale(-1),vt=E.clone().normalize(),wt=v.Cross(Tt,vt),bt=B(0,2*Math.PI),Pt=vt.scale(Math.cos(bt)).add(wt.scale(Math.sin(bt))),bt=B(.1,Math.PI/2),It=Pt.scale(Math.cos(bt)).add(Tt.scale(Math.sin(bt))),Ct.origin=_t.add(It.scale(1e-5)),Ct.direction=It,Ct.length=c,At=Ct.intersectsMesh(t),At.hit&&(Rt=At.pickedPoint.subtract(_t).length(),Mt=B(0,1)*Rt,_t.addInPlace(It.scale(Mt)))),St.position=_t.clone(),this._positions.push(St.position.x,St.position.y,St.position.z),void 0!==s?u&&(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),St.color=Dt,this._colors.push(Dt.r,Dt.g,Dt.b,Dt.a)):d?(yt=ht.add(pt.scale(gt)).add(mt.scale(gt*xt)),St.color=new C(yt.x,yt.y,yt.z,yt.w),this._colors.push(yt.x,yt.y,yt.z,yt.w)):(yt=ht.set(Math.random(),Math.random(),Math.random(),1),St.color=new C(yt.x,yt.y,yt.z,yt.w),this._colors.push(yt.x,yt.y,yt.z,yt.w)):(St.uv=ft.clone(),this._uvs.push(St.uv.x,St.uv.y))):(o?(Ft.set(o.r,o.g,o.b),_=B(-n,n),P=B(-n,n),Vt=Ft.toHSV(),S=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(S,K,kt,zt),yt.set(zt.r,zt.g,zt.b,1)):yt=ht.set(Math.random(),Math.random(),Math.random(),1),St.color=new C(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,h,u,d,p,m;const _=v.Zero(),f=v.Zero(),g=v.Zero(),x=v.Zero(),y=v.Zero(),T=v.Zero();let w;const b=[];let P=0;const M=i.length/3;for(let t=0;t<M;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],h=e[3*r+1],u=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,h,u),g.set(d,p,m),f.subtractToRef(_,x),g.subtractToRef(f,y),v.CrossToRef(x,y,T),w=.5*T.length(),P+=w,b[t]=P;const R=new Array(M);let C=t;for(let t=M-1;t>0;t--){const e=b[t];if(0===e)R[t]=0;else{const i=(e-b[t-1])/e*C,s=Math.floor(i),r=i-s,o=s+Number(Math.random()<r);R[t]=o,C-=o}}return R[0]=C,R}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 C(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 C(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=T.Matrix[0],r=this.mesh,o=this._colors32,n=this._positions32,a=this._uvs32,c=T.Vector3,l=c[5].copyFromFloats(1,0,0),h=c[6].copyFromFloats(0,1,0),u=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],h=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+h,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 M=n[f]=o.x+l.x*w+h.x*b+u.x*P,R=n[f+1]=o.y+l.y*w+h.y*b+u.y*P,C=n[f+2]=o.z+l.z*w+h.z*b+u.z*P;if(this._computeBoundingBox&&(d.minimizeInPlaceFromFloats(M,R,C),p.maximizeInPlaceFromFloats(M,R,C)),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 v(-e,-e,-e),new v(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"}(q||(q={}));class ${constructor(t=$._DefaultLoadingOptions){this.name=E.name,this._assetContainer=null,this.extensions=E.extensions,this._loadingOptions=t}createPlugin(t){return new $(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 v(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 C(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 x;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=$._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 Q("PointCloud",1,e);if($._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($._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},h=[],u=i.slice(0,r).split("\n").filter((t=>t.startsWith("property ")));for(const t of u){const[,e,i]=t.split(" ");h.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 M;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<h.length;r++){const u=h[r];let m;switch(u.type){case"float":m=p.getFloat32(u.offset+t*c,!0);break;case"int":m=p.getInt32(u.offset+t*c,!0);break;case"uint":m=p.getUint32(u.offset+t*c,!0);break;case"double":m=p.getFloat64(u.offset+t*c,!0);break;case"uchar":m=p.getUint8(u.offset+t*c);break;default:continue}switch(u.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<h.length;t++){const e=h[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}}}$._DefaultLoadingOptions={keepInRam:!1},L(new $);export{$ as SPLATFileLoader};
|
|
2
|
+
//# sourceMappingURL=splatFileLoader-Du-_lAWj.esm.min.js.map
|