@babylonjs/viewer 7.27.2-alpha → 7.27.2
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-CA85DtNy.esm.js +0 -172
- package/dist/chunks/EXT_lights_image_based-CA85DtNy.esm.js.map +0 -1
- package/dist/chunks/EXT_lights_image_based-CPVil7yg.esm.min.js +0 -2
- package/dist/chunks/EXT_lights_image_based-CPVil7yg.esm.min.js.map +0 -1
- package/dist/chunks/EXT_mesh_gpu_instancing-C1O26PMr.esm.min.js +0 -2
- package/dist/chunks/EXT_mesh_gpu_instancing-C1O26PMr.esm.min.js.map +0 -1
- package/dist/chunks/EXT_mesh_gpu_instancing-CrIw9JyR.esm.js +0 -86
- package/dist/chunks/EXT_mesh_gpu_instancing-CrIw9JyR.esm.js.map +0 -1
- package/dist/chunks/EXT_meshopt_compression-DdX3rEiV.esm.js +0 -134
- package/dist/chunks/EXT_meshopt_compression-DdX3rEiV.esm.js.map +0 -1
- package/dist/chunks/EXT_meshopt_compression-azQ3pppa.esm.min.js +0 -2
- package/dist/chunks/EXT_meshopt_compression-azQ3pppa.esm.min.js.map +0 -1
- package/dist/chunks/EXT_texture_avif-4aKgnH4-.esm.js +0 -44
- package/dist/chunks/EXT_texture_avif-4aKgnH4-.esm.js.map +0 -1
- package/dist/chunks/EXT_texture_avif-B7_FnjiR.esm.min.js +0 -2
- package/dist/chunks/EXT_texture_avif-B7_FnjiR.esm.min.js.map +0 -1
- package/dist/chunks/EXT_texture_webp-4uXzJ05v.esm.js +0 -43
- package/dist/chunks/EXT_texture_webp-4uXzJ05v.esm.js.map +0 -1
- package/dist/chunks/EXT_texture_webp-SG91TMh1.esm.min.js +0 -2
- package/dist/chunks/EXT_texture_webp-SG91TMh1.esm.min.js.map +0 -1
- package/dist/chunks/ExtrasAsMetadata-Bh7w5qiJ.esm.js +0 -64
- package/dist/chunks/ExtrasAsMetadata-Bh7w5qiJ.esm.js.map +0 -1
- package/dist/chunks/ExtrasAsMetadata-h_5ruN6u.esm.min.js +0 -2
- package/dist/chunks/ExtrasAsMetadata-h_5ruN6u.esm.min.js.map +0 -1
- package/dist/chunks/KHR_animation_pointer-BLdLUufS.esm.min.js +0 -2
- package/dist/chunks/KHR_animation_pointer-BLdLUufS.esm.min.js.map +0 -1
- package/dist/chunks/KHR_animation_pointer-CqevEKm4.esm.js +0 -343
- package/dist/chunks/KHR_animation_pointer-CqevEKm4.esm.js.map +0 -1
- package/dist/chunks/KHR_draco_mesh_compression-BT6Abb8I.esm.js +0 -610
- package/dist/chunks/KHR_draco_mesh_compression-BT6Abb8I.esm.js.map +0 -1
- package/dist/chunks/KHR_draco_mesh_compression-BoSAPSSu.esm.min.js +0 -2
- package/dist/chunks/KHR_draco_mesh_compression-BoSAPSSu.esm.min.js.map +0 -1
- package/dist/chunks/KHR_interactivity-Dw4rt2eB.esm.js +0 -4033
- package/dist/chunks/KHR_interactivity-Dw4rt2eB.esm.js.map +0 -1
- package/dist/chunks/KHR_interactivity-F2IK4TCH.esm.min.js +0 -2
- package/dist/chunks/KHR_interactivity-F2IK4TCH.esm.min.js.map +0 -1
- package/dist/chunks/KHR_lights_punctual-ChUH98Cb.esm.js +0 -1253
- package/dist/chunks/KHR_lights_punctual-ChUH98Cb.esm.js.map +0 -1
- package/dist/chunks/KHR_lights_punctual-D6oRmceT.esm.min.js +0 -2
- package/dist/chunks/KHR_lights_punctual-D6oRmceT.esm.min.js.map +0 -1
- package/dist/chunks/KHR_materials_anisotropy-B9y9JzgX.esm.min.js +0 -2
- package/dist/chunks/KHR_materials_anisotropy-B9y9JzgX.esm.min.js.map +0 -1
- package/dist/chunks/KHR_materials_anisotropy-C8imYFLw.esm.js +0 -64
- package/dist/chunks/KHR_materials_anisotropy-C8imYFLw.esm.js.map +0 -1
- package/dist/chunks/KHR_materials_clearcoat-BN6ncb-G.esm.min.js +0 -2
- package/dist/chunks/KHR_materials_clearcoat-BN6ncb-G.esm.min.js.map +0 -1
- package/dist/chunks/KHR_materials_clearcoat-CO_1fe0l.esm.js +0 -96
- package/dist/chunks/KHR_materials_clearcoat-CO_1fe0l.esm.js.map +0 -1
- package/dist/chunks/KHR_materials_diffuse_transmission-Bn5zTT7f.esm.min.js +0 -2
- package/dist/chunks/KHR_materials_diffuse_transmission-Bn5zTT7f.esm.min.js.map +0 -1
- package/dist/chunks/KHR_materials_diffuse_transmission-DEBF-i4I.esm.js +0 -97
- package/dist/chunks/KHR_materials_diffuse_transmission-DEBF-i4I.esm.js.map +0 -1
- package/dist/chunks/KHR_materials_dispersion-BB2cxeCx.esm.js +0 -62
- package/dist/chunks/KHR_materials_dispersion-BB2cxeCx.esm.js.map +0 -1
- package/dist/chunks/KHR_materials_dispersion-gW4h6Fgh.esm.min.js +0 -2
- package/dist/chunks/KHR_materials_dispersion-gW4h6Fgh.esm.min.js.map +0 -1
- package/dist/chunks/KHR_materials_emissive_strength-DdvHfZ7I.esm.min.js +0 -2
- package/dist/chunks/KHR_materials_emissive_strength-DdvHfZ7I.esm.min.js.map +0 -1
- package/dist/chunks/KHR_materials_emissive_strength-pIu_g0js.esm.js +0 -55
- package/dist/chunks/KHR_materials_emissive_strength-pIu_g0js.esm.js.map +0 -1
- package/dist/chunks/KHR_materials_ior-DpxeGOsD.esm.min.js +0 -2
- package/dist/chunks/KHR_materials_ior-DpxeGOsD.esm.min.js.map +0 -1
- package/dist/chunks/KHR_materials_ior-DyUgfRQW.esm.js +0 -64
- package/dist/chunks/KHR_materials_ior-DyUgfRQW.esm.js.map +0 -1
- package/dist/chunks/KHR_materials_iridescence-2FjtFUl-.esm.js +0 -72
- package/dist/chunks/KHR_materials_iridescence-2FjtFUl-.esm.js.map +0 -1
- package/dist/chunks/KHR_materials_iridescence-VUgWmKpE.esm.min.js +0 -2
- package/dist/chunks/KHR_materials_iridescence-VUgWmKpE.esm.min.js.map +0 -1
- package/dist/chunks/KHR_materials_pbrSpecularGlossiness-DGaWVi-8.esm.js +0 -81
- package/dist/chunks/KHR_materials_pbrSpecularGlossiness-DGaWVi-8.esm.js.map +0 -1
- package/dist/chunks/KHR_materials_pbrSpecularGlossiness-DkbyxrTt.esm.min.js +0 -2
- package/dist/chunks/KHR_materials_pbrSpecularGlossiness-DkbyxrTt.esm.min.js.map +0 -1
- package/dist/chunks/KHR_materials_sheen-Df2gQCCz.esm.js +0 -85
- package/dist/chunks/KHR_materials_sheen-Df2gQCCz.esm.js.map +0 -1
- package/dist/chunks/KHR_materials_sheen-eJuXEF_z.esm.min.js +0 -2
- package/dist/chunks/KHR_materials_sheen-eJuXEF_z.esm.min.js.map +0 -1
- package/dist/chunks/KHR_materials_specular-Bumm38AX.esm.js +0 -75
- package/dist/chunks/KHR_materials_specular-Bumm38AX.esm.js.map +0 -1
- package/dist/chunks/KHR_materials_specular-DFms_Y2c.esm.min.js +0 -2
- package/dist/chunks/KHR_materials_specular-DFms_Y2c.esm.min.js.map +0 -1
- package/dist/chunks/KHR_materials_transmission-BGFztrZe.esm.min.js +0 -2
- package/dist/chunks/KHR_materials_transmission-BGFztrZe.esm.min.js.map +0 -1
- package/dist/chunks/KHR_materials_transmission-CrJ06oqT.esm.js +0 -307
- package/dist/chunks/KHR_materials_transmission-CrJ06oqT.esm.js.map +0 -1
- package/dist/chunks/KHR_materials_unlit-B0PNcINa.esm.js +0 -74
- package/dist/chunks/KHR_materials_unlit-B0PNcINa.esm.js.map +0 -1
- package/dist/chunks/KHR_materials_unlit-D1AJJEhe.esm.min.js +0 -2
- package/dist/chunks/KHR_materials_unlit-D1AJJEhe.esm.min.js.map +0 -1
- package/dist/chunks/KHR_materials_variants-1byDsyMZ.esm.js +0 -238
- package/dist/chunks/KHR_materials_variants-1byDsyMZ.esm.js.map +0 -1
- package/dist/chunks/KHR_materials_variants-CsC9kcIf.esm.min.js +0 -2
- package/dist/chunks/KHR_materials_variants-CsC9kcIf.esm.min.js.map +0 -1
- package/dist/chunks/KHR_materials_volume-Bv40dtb4.esm.js +0 -87
- package/dist/chunks/KHR_materials_volume-Bv40dtb4.esm.js.map +0 -1
- package/dist/chunks/KHR_materials_volume-jEibzXd9.esm.min.js +0 -2
- package/dist/chunks/KHR_materials_volume-jEibzXd9.esm.min.js.map +0 -1
- package/dist/chunks/KHR_mesh_quantization-BIZHY0Kq.esm.js +0 -26
- package/dist/chunks/KHR_mesh_quantization-BIZHY0Kq.esm.js.map +0 -1
- package/dist/chunks/KHR_mesh_quantization-Bhkni5rF.esm.min.js +0 -2
- package/dist/chunks/KHR_mesh_quantization-Bhkni5rF.esm.min.js.map +0 -1
- package/dist/chunks/KHR_texture_basisu-DEpnh6n9.esm.js +0 -43
- package/dist/chunks/KHR_texture_basisu-DEpnh6n9.esm.js.map +0 -1
- package/dist/chunks/KHR_texture_basisu-TXi-2TIT.esm.min.js +0 -2
- package/dist/chunks/KHR_texture_basisu-TXi-2TIT.esm.min.js.map +0 -1
- package/dist/chunks/KHR_texture_transform-C8GuuByW.esm.js +0 -63
- package/dist/chunks/KHR_texture_transform-C8GuuByW.esm.js.map +0 -1
- package/dist/chunks/KHR_texture_transform-D0SnOFjT.esm.min.js +0 -2
- package/dist/chunks/KHR_texture_transform-D0SnOFjT.esm.min.js.map +0 -1
- package/dist/chunks/KHR_xmp_json_ld-BVehPYhd.esm.min.js +0 -2
- package/dist/chunks/KHR_xmp_json_ld-BVehPYhd.esm.min.js.map +0 -1
- package/dist/chunks/KHR_xmp_json_ld-kZFaBewQ.esm.js +0 -51
- package/dist/chunks/KHR_xmp_json_ld-kZFaBewQ.esm.js.map +0 -1
- package/dist/chunks/MSFT_audio_emitter-DW9HklD_.esm.js +0 -2207
- package/dist/chunks/MSFT_audio_emitter-DW9HklD_.esm.js.map +0 -1
- package/dist/chunks/MSFT_audio_emitter-FdCwGesL.esm.min.js +0 -2
- package/dist/chunks/MSFT_audio_emitter-FdCwGesL.esm.min.js.map +0 -1
- package/dist/chunks/MSFT_lod-BwOwpL4V.esm.min.js +0 -2
- package/dist/chunks/MSFT_lod-BwOwpL4V.esm.min.js.map +0 -1
- package/dist/chunks/MSFT_lod-TJtkHXB2.esm.js +0 -337
- package/dist/chunks/MSFT_lod-TJtkHXB2.esm.js.map +0 -1
- package/dist/chunks/MSFT_minecraftMesh-CSh3r8kb.esm.min.js +0 -2
- package/dist/chunks/MSFT_minecraftMesh-CSh3r8kb.esm.min.js.map +0 -1
- package/dist/chunks/MSFT_minecraftMesh-ChLBEcBK.esm.js +0 -46
- package/dist/chunks/MSFT_minecraftMesh-ChLBEcBK.esm.js.map +0 -1
- package/dist/chunks/MSFT_sRGBFactors-BcS3pmk2.esm.min.js +0 -2
- package/dist/chunks/MSFT_sRGBFactors-BcS3pmk2.esm.min.js.map +0 -1
- package/dist/chunks/MSFT_sRGBFactors-DCYeFO0v.esm.js +0 -47
- package/dist/chunks/MSFT_sRGBFactors-DCYeFO0v.esm.js.map +0 -1
- package/dist/chunks/animationGroup-CNCSHFUy.esm.js +0 -2470
- package/dist/chunks/animationGroup-CNCSHFUy.esm.js.map +0 -1
- package/dist/chunks/animationGroup-C_UP9Nv8.esm.min.js +0 -2
- package/dist/chunks/animationGroup-C_UP9Nv8.esm.min.js.map +0 -1
- package/dist/chunks/assetContainer-C1LtjIaD.esm.js +0 -1720
- package/dist/chunks/assetContainer-C1LtjIaD.esm.js.map +0 -1
- package/dist/chunks/assetContainer-D7kFYVgF.esm.min.js +0 -2
- package/dist/chunks/assetContainer-D7kFYVgF.esm.min.js.map +0 -1
- package/dist/chunks/audioEngine-WcSSM-K-.esm.min.js +0 -2
- package/dist/chunks/audioEngine-WcSSM-K-.esm.min.js.map +0 -1
- package/dist/chunks/audioEngine-v1Jy7bjy.esm.js +0 -305
- package/dist/chunks/audioEngine-v1Jy7bjy.esm.js.map +0 -1
- package/dist/chunks/bakedVertexAnimation-BGX6OsMV.esm.min.js +0 -2
- package/dist/chunks/bakedVertexAnimation-BGX6OsMV.esm.min.js.map +0 -1
- package/dist/chunks/bakedVertexAnimation-seC5sAwx.esm.js +0 -119
- package/dist/chunks/bakedVertexAnimation-seC5sAwx.esm.js.map +0 -1
- package/dist/chunks/basisTextureLoader-00D5fDZY.esm.js +0 -600
- package/dist/chunks/basisTextureLoader-00D5fDZY.esm.js.map +0 -1
- package/dist/chunks/basisTextureLoader-BClEPcls.esm.min.js +0 -2
- package/dist/chunks/basisTextureLoader-BClEPcls.esm.min.js.map +0 -1
- package/dist/chunks/dds-Dwk7umfm.esm.js +0 -540
- package/dist/chunks/dds-Dwk7umfm.esm.js.map +0 -1
- package/dist/chunks/dds-XhSYZT6T.esm.min.js +0 -2
- package/dist/chunks/dds-XhSYZT6T.esm.min.js.map +0 -1
- package/dist/chunks/ddsTextureLoader-2LYqfWdf.esm.js +0 -88
- package/dist/chunks/ddsTextureLoader-2LYqfWdf.esm.js.map +0 -1
- package/dist/chunks/ddsTextureLoader-CdMTxy5K.esm.min.js +0 -2
- package/dist/chunks/ddsTextureLoader-CdMTxy5K.esm.min.js.map +0 -1
- package/dist/chunks/decalFragment-DR8sIZ1U.esm.min.js +0 -2
- package/dist/chunks/decalFragment-DR8sIZ1U.esm.min.js.map +0 -1
- package/dist/chunks/decalFragment-snU1AnAw.esm.js +0 -18
- package/dist/chunks/decalFragment-snU1AnAw.esm.js.map +0 -1
- package/dist/chunks/default.fragment-B9xXDLVZ.esm.min.js +0 -2
- package/dist/chunks/default.fragment-B9xXDLVZ.esm.min.js.map +0 -1
- package/dist/chunks/default.fragment-DI40uAVm.esm.js +0 -449
- package/dist/chunks/default.fragment-DI40uAVm.esm.js.map +0 -1
- package/dist/chunks/default.fragment-IezihZBZ.esm.js +0 -515
- package/dist/chunks/default.fragment-IezihZBZ.esm.js.map +0 -1
- package/dist/chunks/default.fragment-JoEyNixG.esm.min.js +0 -2
- package/dist/chunks/default.fragment-JoEyNixG.esm.min.js.map +0 -1
- package/dist/chunks/default.vertex-CRqD8gwk.esm.min.js +0 -2
- package/dist/chunks/default.vertex-CRqD8gwk.esm.min.js.map +0 -1
- package/dist/chunks/default.vertex-DNsjslNL.esm.js +0 -180
- package/dist/chunks/default.vertex-DNsjslNL.esm.js.map +0 -1
- package/dist/chunks/default.vertex-D_YJEtwK.esm.min.js +0 -2
- package/dist/chunks/default.vertex-D_YJEtwK.esm.min.js.map +0 -1
- package/dist/chunks/default.vertex-bPaOhquX.esm.js +0 -199
- package/dist/chunks/default.vertex-bPaOhquX.esm.js.map +0 -1
- package/dist/chunks/defaultUboDeclaration-CsIV2cMG.esm.js +0 -13
- package/dist/chunks/defaultUboDeclaration-CsIV2cMG.esm.js.map +0 -1
- package/dist/chunks/defaultUboDeclaration-D68WWnqa.esm.js +0 -15
- package/dist/chunks/defaultUboDeclaration-D68WWnqa.esm.js.map +0 -1
- package/dist/chunks/defaultUboDeclaration-DN1r1TKL.esm.min.js +0 -2
- package/dist/chunks/defaultUboDeclaration-DN1r1TKL.esm.min.js.map +0 -1
- package/dist/chunks/defaultUboDeclaration-DktrpYgL.esm.min.js +0 -2
- package/dist/chunks/defaultUboDeclaration-DktrpYgL.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-BvMYVv_T.esm.js +0 -401
- package/dist/chunks/dumpTools-BvMYVv_T.esm.js.map +0 -1
- package/dist/chunks/dumpTools-DH-o0mzS.esm.min.js +0 -2
- package/dist/chunks/dumpTools-DH-o0mzS.esm.min.js.map +0 -1
- package/dist/chunks/engine-Cg1_u4TZ.esm.js +0 -2174
- package/dist/chunks/engine-Cg1_u4TZ.esm.js.map +0 -1
- package/dist/chunks/engine-CgC6_rgO.esm.min.js +0 -2
- package/dist/chunks/engine-CgC6_rgO.esm.min.js.map +0 -1
- package/dist/chunks/engine.common-BqwGRZf8.esm.js +0 -1088
- package/dist/chunks/engine.common-BqwGRZf8.esm.js.map +0 -1
- package/dist/chunks/engine.common-Dav2_SH5.esm.min.js +0 -2
- package/dist/chunks/engine.common-Dav2_SH5.esm.min.js.map +0 -1
- package/dist/chunks/envTextureLoader-ZBQcDCww.esm.min.js +0 -2
- package/dist/chunks/envTextureLoader-ZBQcDCww.esm.min.js.map +0 -1
- package/dist/chunks/envTextureLoader-ZN8XTZ-O.esm.js +0 -65
- package/dist/chunks/envTextureLoader-ZN8XTZ-O.esm.js.map +0 -1
- package/dist/chunks/environmentTextureTools-ClFELWpP.esm.js +0 -382
- package/dist/chunks/environmentTextureTools-ClFELWpP.esm.js.map +0 -1
- package/dist/chunks/environmentTextureTools-l4PJoqvn.esm.min.js +0 -2
- package/dist/chunks/environmentTextureTools-l4PJoqvn.esm.min.js.map +0 -1
- package/dist/chunks/exrTextureLoader-B8yqEO1v.esm.min.js +0 -2
- package/dist/chunks/exrTextureLoader-B8yqEO1v.esm.min.js.map +0 -1
- package/dist/chunks/exrTextureLoader-BZ5Wjulq.esm.js +0 -1682
- package/dist/chunks/exrTextureLoader-BZ5Wjulq.esm.js.map +0 -1
- package/dist/chunks/fogFragment-BVcM8p0J.esm.js +0 -102
- package/dist/chunks/fogFragment-BVcM8p0J.esm.js.map +0 -1
- package/dist/chunks/fogFragment-BpEl_yFr.esm.min.js +0 -2
- package/dist/chunks/fogFragment-BpEl_yFr.esm.min.js.map +0 -1
- package/dist/chunks/fresnelFunction-BsM31VoP.esm.min.js +0 -2
- package/dist/chunks/fresnelFunction-BsM31VoP.esm.min.js.map +0 -1
- package/dist/chunks/fresnelFunction-QUS_DYaD.esm.js +0 -12
- package/dist/chunks/fresnelFunction-QUS_DYaD.esm.js.map +0 -1
- package/dist/chunks/glTFLoader-C72-lFhT.esm.min.js +0 -2
- package/dist/chunks/glTFLoader-C72-lFhT.esm.min.js.map +0 -1
- package/dist/chunks/glTFLoader-aAm0JqBX.esm.js +0 -7563
- package/dist/chunks/glTFLoader-aAm0JqBX.esm.js.map +0 -1
- package/dist/chunks/glTFLoaderAnimation-DvPwVJz4.esm.js +0 -77
- package/dist/chunks/glTFLoaderAnimation-DvPwVJz4.esm.js.map +0 -1
- package/dist/chunks/glTFLoaderAnimation-VbjoOlUu.esm.min.js +0 -2
- package/dist/chunks/glTFLoaderAnimation-VbjoOlUu.esm.min.js.map +0 -1
- package/dist/chunks/gltfPathToObjectConverter-Dyt_Y9jE.esm.min.js +0 -2
- package/dist/chunks/gltfPathToObjectConverter-Dyt_Y9jE.esm.min.js.map +0 -1
- package/dist/chunks/gltfPathToObjectConverter-GcUmfOyo.esm.js +0 -67
- package/dist/chunks/gltfPathToObjectConverter-GcUmfOyo.esm.js.map +0 -1
- package/dist/chunks/harmonicsFunctions-20cuRhvd.esm.js +0 -35
- package/dist/chunks/harmonicsFunctions-20cuRhvd.esm.js.map +0 -1
- package/dist/chunks/harmonicsFunctions-BG-HAjHa.esm.js +0 -34
- package/dist/chunks/harmonicsFunctions-BG-HAjHa.esm.js.map +0 -1
- package/dist/chunks/harmonicsFunctions-BGUo2Y5E.esm.min.js +0 -2
- package/dist/chunks/harmonicsFunctions-BGUo2Y5E.esm.min.js.map +0 -1
- package/dist/chunks/harmonicsFunctions-CnMSETjB.esm.min.js +0 -2
- package/dist/chunks/harmonicsFunctions-CnMSETjB.esm.min.js.map +0 -1
- package/dist/chunks/hdrTextureLoader-CoRxj_K3.esm.js +0 -252
- package/dist/chunks/hdrTextureLoader-CoRxj_K3.esm.js.map +0 -1
- package/dist/chunks/hdrTextureLoader-DCLa5uk4.esm.min.js +0 -2
- package/dist/chunks/hdrTextureLoader-DCLa5uk4.esm.min.js.map +0 -1
- package/dist/chunks/helperFunctions-BYHdoqnK.esm.min.js +0 -2
- package/dist/chunks/helperFunctions-BYHdoqnK.esm.min.js.map +0 -1
- package/dist/chunks/helperFunctions-Bt6qmNeo.esm.js +0 -108
- package/dist/chunks/helperFunctions-Bt6qmNeo.esm.js.map +0 -1
- package/dist/chunks/helperFunctions-Bw7IxQ0p.esm.min.js +0 -2
- package/dist/chunks/helperFunctions-Bw7IxQ0p.esm.min.js.map +0 -1
- package/dist/chunks/helperFunctions-h3RwfHfS.esm.js +0 -80
- package/dist/chunks/helperFunctions-h3RwfHfS.esm.js.map +0 -1
- package/dist/chunks/index-U-HumpEj.esm.min.js +0 -57
- package/dist/chunks/index-U-HumpEj.esm.min.js.map +0 -1
- package/dist/chunks/index-aD2AOGxP.esm.js +0 -71419
- package/dist/chunks/index-aD2AOGxP.esm.js.map +0 -1
- package/dist/chunks/ktxTextureLoader-C_VI3zqr.esm.min.js +0 -2
- package/dist/chunks/ktxTextureLoader-C_VI3zqr.esm.min.js.map +0 -1
- package/dist/chunks/ktxTextureLoader-DjrPxD5r.esm.js +0 -814
- package/dist/chunks/ktxTextureLoader-DjrPxD5r.esm.js.map +0 -1
- package/dist/chunks/logDepthDeclaration-2s5ZHKWV.esm.js +0 -35
- package/dist/chunks/logDepthDeclaration-2s5ZHKWV.esm.js.map +0 -1
- package/dist/chunks/logDepthDeclaration-B42RghCo.esm.min.js +0 -2
- package/dist/chunks/logDepthDeclaration-B42RghCo.esm.min.js.map +0 -1
- package/dist/chunks/logDepthDeclaration-CPkd3_rQ.esm.min.js +0 -2
- package/dist/chunks/logDepthDeclaration-CPkd3_rQ.esm.min.js.map +0 -1
- package/dist/chunks/logDepthDeclaration-c6EabBm-.esm.js +0 -20
- package/dist/chunks/logDepthDeclaration-c6EabBm-.esm.js.map +0 -1
- package/dist/chunks/logDepthVertex-B6A7yfKh.esm.min.js +0 -2
- package/dist/chunks/logDepthVertex-B6A7yfKh.esm.min.js.map +0 -1
- package/dist/chunks/logDepthVertex-CUH8vEn8.esm.min.js +0 -2
- package/dist/chunks/logDepthVertex-CUH8vEn8.esm.min.js.map +0 -1
- package/dist/chunks/logDepthVertex-DWIOlsMD.esm.js +0 -77
- package/dist/chunks/logDepthVertex-DWIOlsMD.esm.js.map +0 -1
- package/dist/chunks/logDepthVertex-uJ0ovJY1.esm.js +0 -488
- package/dist/chunks/logDepthVertex-uJ0ovJY1.esm.js.map +0 -1
- package/dist/chunks/mainUVVaryingDeclaration-CF3fvzPQ.esm.js +0 -11
- package/dist/chunks/mainUVVaryingDeclaration-CF3fvzPQ.esm.js.map +0 -1
- package/dist/chunks/mainUVVaryingDeclaration-CpUeP2cv.esm.min.js +0 -2
- package/dist/chunks/mainUVVaryingDeclaration-CpUeP2cv.esm.min.js.map +0 -1
- package/dist/chunks/meshUboDeclaration-TkCXE4e1.esm.min.js +0 -2
- package/dist/chunks/meshUboDeclaration-TkCXE4e1.esm.min.js.map +0 -1
- package/dist/chunks/meshUboDeclaration-WUEPs2Hg.esm.js +0 -24
- package/dist/chunks/meshUboDeclaration-WUEPs2Hg.esm.js.map +0 -1
- package/dist/chunks/objFileLoader-CZljrcqa.esm.js +0 -1338
- package/dist/chunks/objFileLoader-CZljrcqa.esm.js.map +0 -1
- package/dist/chunks/objFileLoader-Dm9grwR4.esm.min.js +0 -2
- package/dist/chunks/objFileLoader-Dm9grwR4.esm.min.js.map +0 -1
- package/dist/chunks/oitFragment-BX3ys5eo.esm.js +0 -1150
- package/dist/chunks/oitFragment-BX3ys5eo.esm.js.map +0 -1
- package/dist/chunks/oitFragment-CtdfMZeV.esm.js +0 -1210
- package/dist/chunks/oitFragment-CtdfMZeV.esm.js.map +0 -1
- package/dist/chunks/oitFragment-D3MZilrB.esm.min.js +0 -2
- package/dist/chunks/oitFragment-D3MZilrB.esm.min.js.map +0 -1
- package/dist/chunks/oitFragment-DwLRa9Gy.esm.min.js +0 -2
- package/dist/chunks/oitFragment-DwLRa9Gy.esm.min.js.map +0 -1
- package/dist/chunks/pass.fragment-B6NUOtwo.esm.js +0 -15
- package/dist/chunks/pass.fragment-B6NUOtwo.esm.js.map +0 -1
- package/dist/chunks/pass.fragment-BCn_y1xk.esm.min.js +0 -2
- package/dist/chunks/pass.fragment-BCn_y1xk.esm.min.js.map +0 -1
- package/dist/chunks/pass.fragment-CZxrzUHE.esm.min.js +0 -2
- package/dist/chunks/pass.fragment-CZxrzUHE.esm.min.js.map +0 -1
- package/dist/chunks/pass.fragment-Dcc35Ier.esm.js +0 -15
- package/dist/chunks/pass.fragment-Dcc35Ier.esm.js.map +0 -1
- package/dist/chunks/pbr.fragment-BIy8o5uv.esm.js +0 -3219
- package/dist/chunks/pbr.fragment-BIy8o5uv.esm.js.map +0 -1
- package/dist/chunks/pbr.fragment-C5zZp3LL.esm.min.js +0 -2
- package/dist/chunks/pbr.fragment-C5zZp3LL.esm.min.js.map +0 -1
- package/dist/chunks/pbr.fragment-CqX6gRAq.esm.min.js +0 -2
- package/dist/chunks/pbr.fragment-CqX6gRAq.esm.min.js.map +0 -1
- package/dist/chunks/pbr.fragment-kVzjETsf.esm.js +0 -3165
- package/dist/chunks/pbr.fragment-kVzjETsf.esm.js.map +0 -1
- package/dist/chunks/pbr.vertex-BRVxNWUD.esm.min.js +0 -2
- package/dist/chunks/pbr.vertex-BRVxNWUD.esm.min.js.map +0 -1
- package/dist/chunks/pbr.vertex-C931TDmR.esm.min.js +0 -2
- package/dist/chunks/pbr.vertex-C931TDmR.esm.min.js.map +0 -1
- package/dist/chunks/pbr.vertex-CwRafVUf.esm.js +0 -210
- package/dist/chunks/pbr.vertex-CwRafVUf.esm.js.map +0 -1
- package/dist/chunks/pbr.vertex-DcOa7HYR.esm.js +0 -335
- package/dist/chunks/pbr.vertex-DcOa7HYR.esm.js.map +0 -1
- package/dist/chunks/postprocess.vertex-BfBMyu5t.esm.js +0 -20
- package/dist/chunks/postprocess.vertex-BfBMyu5t.esm.js.map +0 -1
- package/dist/chunks/postprocess.vertex-CV-fHAy4.esm.min.js +0 -2
- package/dist/chunks/postprocess.vertex-CV-fHAy4.esm.min.js.map +0 -1
- package/dist/chunks/postprocess.vertex-CtvfqD0e.esm.js +0 -18
- package/dist/chunks/postprocess.vertex-CtvfqD0e.esm.js.map +0 -1
- package/dist/chunks/postprocess.vertex-Di4Rv4cc.esm.min.js +0 -2
- package/dist/chunks/postprocess.vertex-Di4Rv4cc.esm.min.js.map +0 -1
- package/dist/chunks/rawTexture-CMOeFkoq.esm.min.js +0 -2
- package/dist/chunks/rawTexture-CMOeFkoq.esm.min.js.map +0 -1
- package/dist/chunks/rawTexture-D0TyMMOg.esm.js +0 -191
- package/dist/chunks/rawTexture-D0TyMMOg.esm.js.map +0 -1
- package/dist/chunks/rgbdDecode.fragment-B2yv-wW_.esm.min.js +0 -2
- package/dist/chunks/rgbdDecode.fragment-B2yv-wW_.esm.min.js.map +0 -1
- package/dist/chunks/rgbdDecode.fragment-By-IRq4W.esm.min.js +0 -2
- package/dist/chunks/rgbdDecode.fragment-By-IRq4W.esm.min.js.map +0 -1
- package/dist/chunks/rgbdDecode.fragment-ByoEtASm.esm.js +0 -17
- package/dist/chunks/rgbdDecode.fragment-ByoEtASm.esm.js.map +0 -1
- package/dist/chunks/rgbdDecode.fragment-CboTUBPq.esm.js +0 -17
- package/dist/chunks/rgbdDecode.fragment-CboTUBPq.esm.js.map +0 -1
- package/dist/chunks/rgbdEncode.fragment-Cap89aoe.esm.min.js +0 -2
- package/dist/chunks/rgbdEncode.fragment-Cap89aoe.esm.min.js.map +0 -1
- package/dist/chunks/rgbdEncode.fragment-DroccQQ6.esm.min.js +0 -2
- package/dist/chunks/rgbdEncode.fragment-DroccQQ6.esm.min.js.map +0 -1
- package/dist/chunks/rgbdEncode.fragment-MXXRnHjr.esm.js +0 -17
- package/dist/chunks/rgbdEncode.fragment-MXXRnHjr.esm.js.map +0 -1
- package/dist/chunks/rgbdEncode.fragment-REqJBEMH.esm.js +0 -17
- package/dist/chunks/rgbdEncode.fragment-REqJBEMH.esm.js.map +0 -1
- package/dist/chunks/splatFileLoader-C8YWIr1f.esm.js +0 -3202
- package/dist/chunks/splatFileLoader-C8YWIr1f.esm.js.map +0 -1
- package/dist/chunks/splatFileLoader-CAoK4a7D.esm.min.js +0 -2
- package/dist/chunks/splatFileLoader-CAoK4a7D.esm.min.js.map +0 -1
- package/dist/chunks/standardMaterial-WN6mW4GH.esm.min.js +0 -2
- package/dist/chunks/standardMaterial-WN6mW4GH.esm.min.js.map +0 -1
- package/dist/chunks/standardMaterial-zGMM4RAo.esm.js +0 -1809
- package/dist/chunks/standardMaterial-zGMM4RAo.esm.js.map +0 -1
- package/dist/chunks/stlFileLoader-CdL588Ca.esm.min.js +0 -2
- package/dist/chunks/stlFileLoader-CdL588Ca.esm.min.js.map +0 -1
- package/dist/chunks/stlFileLoader-DD8bdIRq.esm.js +0 -238
- package/dist/chunks/stlFileLoader-DD8bdIRq.esm.js.map +0 -1
- package/dist/chunks/tgaTextureLoader-CJnS42dD.esm.min.js +0 -2
- package/dist/chunks/tgaTextureLoader-CJnS42dD.esm.min.js.map +0 -1
- package/dist/chunks/tgaTextureLoader-Cq5SKOBo.esm.js +0 -349
- package/dist/chunks/tgaTextureLoader-Cq5SKOBo.esm.js.map +0 -1
- package/dist/chunks/thinEngine-CDXFV8-r.esm.min.js +0 -2
- package/dist/chunks/thinEngine-CDXFV8-r.esm.min.js.map +0 -1
- package/dist/chunks/thinEngine-D6UczuFi.esm.js +0 -3721
- package/dist/chunks/thinEngine-D6UczuFi.esm.js.map +0 -1
- package/dist/chunks/thinInstanceMesh-CF9KNnMt.esm.min.js +0 -2
- package/dist/chunks/thinInstanceMesh-CF9KNnMt.esm.min.js.map +0 -1
- package/dist/chunks/thinInstanceMesh-DrCdReGF.esm.js +0 -314
- package/dist/chunks/thinInstanceMesh-DrCdReGF.esm.js.map +0 -1
- package/dist/chunks/vertexColorMixing-BM9ezMw3.esm.js +0 -528
- package/dist/chunks/vertexColorMixing-BM9ezMw3.esm.js.map +0 -1
- package/dist/chunks/vertexColorMixing-CA5nnt5l.esm.min.js +0 -2
- package/dist/chunks/vertexColorMixing-CA5nnt5l.esm.min.js.map +0 -1
- package/dist/chunks/webgpuEngine-DTB44YXV.esm.min.js +0 -2
- package/dist/chunks/webgpuEngine-DTB44YXV.esm.min.js.map +0 -1
- package/dist/chunks/webgpuEngine-ls1BHMKU.esm.js +0 -11173
- package/dist/chunks/webgpuEngine-ls1BHMKU.esm.js.map +0 -1
- package/dist/chunks/workerPool-BUOov2K1.esm.js +0 -122
- package/dist/chunks/workerPool-BUOov2K1.esm.js.map +0 -1
- package/dist/chunks/workerPool-BWHiDmEZ.esm.min.js +0 -2
- package/dist/chunks/workerPool-BWHiDmEZ.esm.min.js.map +0 -1
- package/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 h,X as u,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,a6 as F,a7 as V,E as z,p as D,a8 as B,a9 as S,B as U,aa as E,w as W}from"./index-U-HumpEj.esm.min.js";import"./fogFragment-BpEl_yFr.esm.min.js";import"./logDepthDeclaration-B42RghCo.esm.min.js";import"./logDepthVertex-CUH8vEn8.esm.min.js";import{R as L}from"./rawTexture-CMOeFkoq.esm.min.js";import"./thinInstanceMesh-CF9KNnMt.esm.min.js";import{A as Z}from"./assetContainer-D7kFYVgF.esm.min.js";import{S as N}from"./standardMaterial-WN6mW4GH.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._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 h=.28209479177387814,u=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=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;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],h=v.Quaternion[0],u=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,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,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(u,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,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=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=F){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),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 h=x.Dot(n,o)*l;if(h<-this.epsilon||h>1+this.epsilon)return null;x.CrossToRef(n,s,a);const u=x.Dot(this.direction,a)*l;if(u<-this.epsilon||h+u>1+this.epsilon)return null;const d=x.Dot(r,a)*l;return d>this.length?null:new V(1-h-u,h,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),h=x.Dot(n,n),u=x.Dot(r,a),d=x.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 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=z.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 h=v.Vector3[1].copyFromFloats(l.x,l.y,1-1e-8),u=v.Vector3[2],d=v.Vector3[3];x._UnprojectFromInvertedMatrixToRef(l,a,u),x._UnprojectFromInvertedMatrixToRef(h,a,d),this.origin.copyFrom(u),d.subtractToRef(u,this.direction),this.direction.normalize()}}var Y,q;K._TmpVector3=C(6,x.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=v.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=v.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(x.Zero(),x.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=v.Vector3[2];r.set(0,0,this._scene.useRightHandedSystem?-1:1);const o=v.Vector3[3];return x.TransformNormalToRef(r,i,o),x.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 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],h=r[n[0]],u=r[a],d=r[c],p=r[l];return new A(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=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,F=0;const V=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 ht=B.Zero(),ut=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<h.length/3;a++){let p,m,_,P,B,K,kt,Ft;g=h[3*a],y=h[3*a+1],T=h[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],F=l[3*T+2],V.set(v,w,b),z.set(R,M,C),U.set(I,k,F),z.subtractToRef(V,E),U.subtractToRef(z,W),u&&(L=u[2*g],Z=u[2*g+1],N=u[2*y],O=u[2*y+1],G=u[2*T],j=u[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],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 Vt=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=V.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?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),Bt.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)),Bt.color=new A(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),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?(Vt.set(o.r,o.g,o.b),_=S(-n,n),P=S(-n,n),Ft=Vt.toHSV(),B=Ft.r,K=Ft.g+_,kt=Ft.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=ht.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,h,u,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],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(_,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),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 R=n[f]=o.x+l.x*w+h.x*b+u.x*P,M=n[f+1]=o.y+l.y*w+h.y*b+u.y*P,A=n[f+2]=o.z+l.z*w+h.z*b+u.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"}(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 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=$._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 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<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},W(new $);export{$ as SPLATFileLoader};
|
|
2
|
-
//# sourceMappingURL=splatFileLoader-CAoK4a7D.esm.min.js.map
|