@babylonjs/viewer 7.40.2 → 7.40.3-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/assets/photoStudio.env +0 -0
- 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_ies-CD6xLsCy.esm.js +84 -0
- package/dist/chunks/EXT_lights_ies-CD6xLsCy.esm.js.map +1 -0
- package/dist/chunks/EXT_lights_ies-DS9bIHFP.esm.min.js +2 -0
- package/dist/chunks/EXT_lights_ies-DS9bIHFP.esm.min.js.map +1 -0
- package/dist/chunks/EXT_lights_image_based-BGdZs5mF.esm.js +171 -0
- package/dist/chunks/EXT_lights_image_based-BGdZs5mF.esm.js.map +1 -0
- package/dist/chunks/EXT_lights_image_based-DJq0NJF1.esm.min.js +2 -0
- package/dist/chunks/EXT_lights_image_based-DJq0NJF1.esm.min.js.map +1 -0
- package/dist/chunks/EXT_mesh_gpu_instancing-D70tpOB6.esm.js +86 -0
- package/dist/chunks/EXT_mesh_gpu_instancing-D70tpOB6.esm.js.map +1 -0
- package/dist/chunks/EXT_mesh_gpu_instancing-DcgiYr6J.esm.min.js +2 -0
- package/dist/chunks/EXT_mesh_gpu_instancing-DcgiYr6J.esm.min.js.map +1 -0
- package/dist/chunks/EXT_meshopt_compression-hkW0_ox-.esm.min.js +2 -0
- package/dist/chunks/EXT_meshopt_compression-hkW0_ox-.esm.min.js.map +1 -0
- package/dist/chunks/EXT_meshopt_compression-yaTtGxec.esm.js +134 -0
- package/dist/chunks/EXT_meshopt_compression-yaTtGxec.esm.js.map +1 -0
- package/dist/chunks/EXT_texture_avif-Chwut1VD.esm.min.js +2 -0
- package/dist/chunks/EXT_texture_avif-Chwut1VD.esm.min.js.map +1 -0
- package/dist/chunks/EXT_texture_avif-CyxmV9wZ.esm.js +44 -0
- package/dist/chunks/EXT_texture_avif-CyxmV9wZ.esm.js.map +1 -0
- package/dist/chunks/EXT_texture_webp-C8kKXzMe.esm.min.js +2 -0
- package/dist/chunks/EXT_texture_webp-C8kKXzMe.esm.min.js.map +1 -0
- package/dist/chunks/EXT_texture_webp-C9fxnRq1.esm.js +43 -0
- package/dist/chunks/EXT_texture_webp-C9fxnRq1.esm.js.map +1 -0
- package/dist/chunks/ExtrasAsMetadata-B6-h7vlD.esm.min.js +2 -0
- package/dist/chunks/ExtrasAsMetadata-B6-h7vlD.esm.min.js.map +1 -0
- package/dist/chunks/ExtrasAsMetadata-sw0sAaoo.esm.js +64 -0
- package/dist/chunks/ExtrasAsMetadata-sw0sAaoo.esm.js.map +1 -0
- package/dist/chunks/KHR_animation_pointer-CP7-gocW.esm.min.js +2 -0
- package/dist/chunks/KHR_animation_pointer-CP7-gocW.esm.min.js.map +1 -0
- package/dist/chunks/KHR_animation_pointer-lrzgXMw2.esm.js +352 -0
- package/dist/chunks/KHR_animation_pointer-lrzgXMw2.esm.js.map +1 -0
- package/dist/chunks/KHR_draco_mesh_compression-6ejAggyS.esm.js +610 -0
- package/dist/chunks/KHR_draco_mesh_compression-6ejAggyS.esm.js.map +1 -0
- package/dist/chunks/KHR_draco_mesh_compression-BaG0uIFE.esm.min.js +2 -0
- package/dist/chunks/KHR_draco_mesh_compression-BaG0uIFE.esm.min.js.map +1 -0
- package/dist/chunks/KHR_interactivity-BCSmv9s-.esm.js +4033 -0
- package/dist/chunks/KHR_interactivity-BCSmv9s-.esm.js.map +1 -0
- package/dist/chunks/KHR_interactivity-BwG2kMjm.esm.min.js +2 -0
- package/dist/chunks/KHR_interactivity-BwG2kMjm.esm.min.js.map +1 -0
- package/dist/chunks/KHR_lights_punctual-BmAkLiea.esm.js +581 -0
- package/dist/chunks/KHR_lights_punctual-BmAkLiea.esm.js.map +1 -0
- package/dist/chunks/KHR_lights_punctual-D1dtMznV.esm.min.js +2 -0
- package/dist/chunks/KHR_lights_punctual-D1dtMznV.esm.min.js.map +1 -0
- package/dist/chunks/KHR_materials_anisotropy-CRJDUZsx.esm.js +65 -0
- package/dist/chunks/KHR_materials_anisotropy-CRJDUZsx.esm.js.map +1 -0
- package/dist/chunks/KHR_materials_anisotropy-Dp1pJfRB.esm.min.js +2 -0
- package/dist/chunks/KHR_materials_anisotropy-Dp1pJfRB.esm.min.js.map +1 -0
- package/dist/chunks/KHR_materials_clearcoat-BD3XLdt2.esm.min.js +2 -0
- package/dist/chunks/KHR_materials_clearcoat-BD3XLdt2.esm.min.js.map +1 -0
- package/dist/chunks/KHR_materials_clearcoat-DJKj9xQP.esm.js +96 -0
- package/dist/chunks/KHR_materials_clearcoat-DJKj9xQP.esm.js.map +1 -0
- package/dist/chunks/KHR_materials_diffuse_transmission-BYYyEZrB.esm.js +97 -0
- package/dist/chunks/KHR_materials_diffuse_transmission-BYYyEZrB.esm.js.map +1 -0
- package/dist/chunks/KHR_materials_diffuse_transmission-DhA5fNkp.esm.min.js +2 -0
- package/dist/chunks/KHR_materials_diffuse_transmission-DhA5fNkp.esm.min.js.map +1 -0
- package/dist/chunks/KHR_materials_dispersion-CDCigqMd.esm.js +62 -0
- package/dist/chunks/KHR_materials_dispersion-CDCigqMd.esm.js.map +1 -0
- package/dist/chunks/KHR_materials_dispersion-CzJ-kzY0.esm.min.js +2 -0
- package/dist/chunks/KHR_materials_dispersion-CzJ-kzY0.esm.min.js.map +1 -0
- package/dist/chunks/KHR_materials_emissive_strength-C727hCIO.esm.js +55 -0
- package/dist/chunks/KHR_materials_emissive_strength-C727hCIO.esm.js.map +1 -0
- package/dist/chunks/KHR_materials_emissive_strength-DHmw-T7v.esm.min.js +2 -0
- package/dist/chunks/KHR_materials_emissive_strength-DHmw-T7v.esm.min.js.map +1 -0
- package/dist/chunks/KHR_materials_ior-CUkwwamZ.esm.min.js +2 -0
- package/dist/chunks/KHR_materials_ior-CUkwwamZ.esm.min.js.map +1 -0
- package/dist/chunks/KHR_materials_ior-arU1qfpr.esm.js +64 -0
- package/dist/chunks/KHR_materials_ior-arU1qfpr.esm.js.map +1 -0
- package/dist/chunks/KHR_materials_iridescence-BDFcEA9b.esm.js +72 -0
- package/dist/chunks/KHR_materials_iridescence-BDFcEA9b.esm.js.map +1 -0
- package/dist/chunks/KHR_materials_iridescence-Dv1MtidF.esm.min.js +2 -0
- package/dist/chunks/KHR_materials_iridescence-Dv1MtidF.esm.min.js.map +1 -0
- package/dist/chunks/KHR_materials_pbrSpecularGlossiness-IoDqngfZ.esm.js +81 -0
- package/dist/chunks/KHR_materials_pbrSpecularGlossiness-IoDqngfZ.esm.js.map +1 -0
- package/dist/chunks/KHR_materials_pbrSpecularGlossiness-r32OVvwD.esm.min.js +2 -0
- package/dist/chunks/KHR_materials_pbrSpecularGlossiness-r32OVvwD.esm.min.js.map +1 -0
- package/dist/chunks/KHR_materials_sheen-BBwukNo5.esm.js +85 -0
- package/dist/chunks/KHR_materials_sheen-BBwukNo5.esm.js.map +1 -0
- package/dist/chunks/KHR_materials_sheen-upfKannz.esm.min.js +2 -0
- package/dist/chunks/KHR_materials_sheen-upfKannz.esm.min.js.map +1 -0
- package/dist/chunks/KHR_materials_specular-CLFluGSg.esm.min.js +2 -0
- package/dist/chunks/KHR_materials_specular-CLFluGSg.esm.min.js.map +1 -0
- package/dist/chunks/KHR_materials_specular-CRQL_z4b.esm.js +75 -0
- package/dist/chunks/KHR_materials_specular-CRQL_z4b.esm.js.map +1 -0
- package/dist/chunks/KHR_materials_transmission-6oV0DB3N.esm.min.js +2 -0
- package/dist/chunks/KHR_materials_transmission-6oV0DB3N.esm.min.js.map +1 -0
- package/dist/chunks/KHR_materials_transmission-x9Lwa871.esm.js +307 -0
- package/dist/chunks/KHR_materials_transmission-x9Lwa871.esm.js.map +1 -0
- package/dist/chunks/KHR_materials_unlit-B_foF8Lt.esm.min.js +2 -0
- package/dist/chunks/KHR_materials_unlit-B_foF8Lt.esm.min.js.map +1 -0
- package/dist/chunks/KHR_materials_unlit-CDGuKJjb.esm.js +74 -0
- package/dist/chunks/KHR_materials_unlit-CDGuKJjb.esm.js.map +1 -0
- package/dist/chunks/KHR_materials_variants-DANx-_Mx.esm.js +262 -0
- package/dist/chunks/KHR_materials_variants-DANx-_Mx.esm.js.map +1 -0
- package/dist/chunks/KHR_materials_variants-DL4EGGiE.esm.min.js +2 -0
- package/dist/chunks/KHR_materials_variants-DL4EGGiE.esm.min.js.map +1 -0
- package/dist/chunks/KHR_materials_volume-Dlquu8Y2.esm.js +87 -0
- package/dist/chunks/KHR_materials_volume-Dlquu8Y2.esm.js.map +1 -0
- package/dist/chunks/KHR_materials_volume-LVeMDkB_.esm.min.js +2 -0
- package/dist/chunks/KHR_materials_volume-LVeMDkB_.esm.min.js.map +1 -0
- package/dist/chunks/KHR_mesh_quantization-C1w2vzgz.esm.js +26 -0
- package/dist/chunks/KHR_mesh_quantization-C1w2vzgz.esm.js.map +1 -0
- package/dist/chunks/KHR_mesh_quantization-DfOGHc4g.esm.min.js +2 -0
- package/dist/chunks/KHR_mesh_quantization-DfOGHc4g.esm.min.js.map +1 -0
- package/dist/chunks/KHR_node_hoverability-BxU_AIs6.esm.min.js +2 -0
- package/dist/chunks/KHR_node_hoverability-BxU_AIs6.esm.min.js.map +1 -0
- package/dist/chunks/KHR_node_hoverability-DODhQaXP.esm.js +39 -0
- package/dist/chunks/KHR_node_hoverability-DODhQaXP.esm.js.map +1 -0
- package/dist/chunks/KHR_node_visibility-3haIZvsb.esm.js +46 -0
- package/dist/chunks/KHR_node_visibility-3haIZvsb.esm.js.map +1 -0
- package/dist/chunks/KHR_node_visibility-DDRTTQ-U.esm.min.js +2 -0
- package/dist/chunks/KHR_node_visibility-DDRTTQ-U.esm.min.js.map +1 -0
- package/dist/chunks/KHR_texture_basisu-CEPiCdOn.esm.min.js +2 -0
- package/dist/chunks/KHR_texture_basisu-CEPiCdOn.esm.min.js.map +1 -0
- package/dist/chunks/KHR_texture_basisu-gXsppVcQ.esm.js +43 -0
- package/dist/chunks/KHR_texture_basisu-gXsppVcQ.esm.js.map +1 -0
- package/dist/chunks/KHR_texture_transform-Bjux7yCy.esm.js +63 -0
- package/dist/chunks/KHR_texture_transform-Bjux7yCy.esm.js.map +1 -0
- package/dist/chunks/KHR_texture_transform-_PXwFDP8.esm.min.js +2 -0
- package/dist/chunks/KHR_texture_transform-_PXwFDP8.esm.min.js.map +1 -0
- package/dist/chunks/KHR_xmp_json_ld-DpaeEUGt.esm.min.js +2 -0
- package/dist/chunks/KHR_xmp_json_ld-DpaeEUGt.esm.min.js.map +1 -0
- package/dist/chunks/KHR_xmp_json_ld-DyzNphyu.esm.js +51 -0
- package/dist/chunks/KHR_xmp_json_ld-DyzNphyu.esm.js.map +1 -0
- package/dist/chunks/MSFT_audio_emitter-BGoxaF5U.esm.min.js +2 -0
- package/dist/chunks/MSFT_audio_emitter-BGoxaF5U.esm.min.js.map +1 -0
- package/dist/chunks/MSFT_audio_emitter-DEE5n41V.esm.js +2207 -0
- package/dist/chunks/MSFT_audio_emitter-DEE5n41V.esm.js.map +1 -0
- package/dist/chunks/MSFT_lod-D-_-eQHW.esm.js +337 -0
- package/dist/chunks/MSFT_lod-D-_-eQHW.esm.js.map +1 -0
- package/dist/chunks/MSFT_lod-XoRI0gWX.esm.min.js +2 -0
- package/dist/chunks/MSFT_lod-XoRI0gWX.esm.min.js.map +1 -0
- package/dist/chunks/MSFT_minecraftMesh-DO_tijSD.esm.js +46 -0
- package/dist/chunks/MSFT_minecraftMesh-DO_tijSD.esm.js.map +1 -0
- package/dist/chunks/MSFT_minecraftMesh-_iQvjiZi.esm.min.js +2 -0
- package/dist/chunks/MSFT_minecraftMesh-_iQvjiZi.esm.min.js.map +1 -0
- package/dist/chunks/MSFT_sRGBFactors-BLHF-pts.esm.js +47 -0
- package/dist/chunks/MSFT_sRGBFactors-BLHF-pts.esm.js.map +1 -0
- package/dist/chunks/MSFT_sRGBFactors-BTokzGgG.esm.min.js +2 -0
- package/dist/chunks/MSFT_sRGBFactors-BTokzGgG.esm.min.js.map +1 -0
- package/dist/chunks/animationGroup-BPxpoNna.esm.js +2482 -0
- package/dist/chunks/animationGroup-BPxpoNna.esm.js.map +1 -0
- package/dist/chunks/animationGroup-TpjYesJi.esm.min.js +2 -0
- package/dist/chunks/animationGroup-TpjYesJi.esm.min.js.map +1 -0
- package/dist/chunks/assetContainer-C11e8jK9.esm.js +1720 -0
- package/dist/chunks/assetContainer-C11e8jK9.esm.js.map +1 -0
- package/dist/chunks/assetContainer-DN0guS4J.esm.min.js +2 -0
- package/dist/chunks/assetContainer-DN0guS4J.esm.min.js.map +1 -0
- package/dist/chunks/audioEngine-BPCDLqX1.esm.js +305 -0
- package/dist/chunks/audioEngine-BPCDLqX1.esm.js.map +1 -0
- package/dist/chunks/audioEngine-jDnUlloH.esm.min.js +2 -0
- package/dist/chunks/audioEngine-jDnUlloH.esm.min.js.map +1 -0
- package/dist/chunks/bakedVertexAnimation-Cz6yjm9Z.esm.js +114 -0
- package/dist/chunks/bakedVertexAnimation-Cz6yjm9Z.esm.js.map +1 -0
- package/dist/chunks/bakedVertexAnimation-QOLg75eL.esm.min.js +2 -0
- package/dist/chunks/bakedVertexAnimation-QOLg75eL.esm.min.js.map +1 -0
- package/dist/chunks/basisTextureLoader-BoGBC9bq.esm.js +600 -0
- package/dist/chunks/basisTextureLoader-BoGBC9bq.esm.js.map +1 -0
- package/dist/chunks/basisTextureLoader-D6orCmzb.esm.min.js +2 -0
- package/dist/chunks/basisTextureLoader-D6orCmzb.esm.min.js.map +1 -0
- package/dist/chunks/dds-DPGLfLtA.esm.js +540 -0
- package/dist/chunks/dds-DPGLfLtA.esm.js.map +1 -0
- package/dist/chunks/dds-ty-4gLsX.esm.min.js +2 -0
- package/dist/chunks/dds-ty-4gLsX.esm.min.js.map +1 -0
- package/dist/chunks/ddsTextureLoader-BCk_i6Vj.esm.min.js +2 -0
- package/dist/chunks/ddsTextureLoader-BCk_i6Vj.esm.min.js.map +1 -0
- package/dist/chunks/ddsTextureLoader-DVbQnnL_.esm.js +88 -0
- package/dist/chunks/ddsTextureLoader-DVbQnnL_.esm.js.map +1 -0
- package/dist/chunks/decalFragment-BiywWcVN.esm.js +18 -0
- package/dist/chunks/decalFragment-BiywWcVN.esm.js.map +1 -0
- package/dist/chunks/decalFragment-D06mgECc.esm.min.js +2 -0
- package/dist/chunks/decalFragment-D06mgECc.esm.min.js.map +1 -0
- package/dist/chunks/default.fragment-B_HQTa4-.esm.min.js +2 -0
- package/dist/chunks/default.fragment-B_HQTa4-.esm.min.js.map +1 -0
- package/dist/chunks/default.fragment-BiTyj-JR.esm.min.js +2 -0
- package/dist/chunks/default.fragment-BiTyj-JR.esm.min.js.map +1 -0
- package/dist/chunks/default.fragment-DPPypY0M.esm.js +515 -0
- package/dist/chunks/default.fragment-DPPypY0M.esm.js.map +1 -0
- package/dist/chunks/default.fragment-Yh18209a.esm.js +446 -0
- package/dist/chunks/default.fragment-Yh18209a.esm.js.map +1 -0
- package/dist/chunks/default.vertex-BGoXgJxH.esm.min.js +2 -0
- package/dist/chunks/default.vertex-BGoXgJxH.esm.min.js.map +1 -0
- package/dist/chunks/default.vertex-CHD4PKUY.esm.min.js +2 -0
- package/dist/chunks/default.vertex-CHD4PKUY.esm.min.js.map +1 -0
- package/dist/chunks/default.vertex-L7AngZxY.esm.js +211 -0
- package/dist/chunks/default.vertex-L7AngZxY.esm.js.map +1 -0
- package/dist/chunks/default.vertex-bWGrH88y.esm.js +190 -0
- package/dist/chunks/default.vertex-bWGrH88y.esm.js.map +1 -0
- package/dist/chunks/defaultUboDeclaration-C1wAUiUE.esm.js +15 -0
- package/dist/chunks/defaultUboDeclaration-C1wAUiUE.esm.js.map +1 -0
- package/dist/chunks/defaultUboDeclaration-Cui4ai4R.esm.min.js +2 -0
- package/dist/chunks/defaultUboDeclaration-Cui4ai4R.esm.min.js.map +1 -0
- package/dist/chunks/defaultUboDeclaration-DQrGGmYB.esm.min.js +2 -0
- package/dist/chunks/defaultUboDeclaration-DQrGGmYB.esm.min.js.map +1 -0
- package/dist/chunks/defaultUboDeclaration-DwKq3ipu.esm.js +13 -0
- package/dist/chunks/defaultUboDeclaration-DwKq3ipu.esm.js.map +1 -0
- package/dist/chunks/drawWrapper.functions-CKg3_9x4.esm.js +11 -0
- package/dist/chunks/drawWrapper.functions-CKg3_9x4.esm.js.map +1 -0
- package/dist/chunks/drawWrapper.functions-ng7lvueZ.esm.min.js +2 -0
- package/dist/chunks/drawWrapper.functions-ng7lvueZ.esm.min.js.map +1 -0
- package/dist/chunks/dumpTools-CK6KW8rD.esm.js +200 -0
- package/dist/chunks/dumpTools-CK6KW8rD.esm.js.map +1 -0
- package/dist/chunks/dumpTools-DtuBR0TB.esm.min.js +2 -0
- package/dist/chunks/dumpTools-DtuBR0TB.esm.min.js.map +1 -0
- package/dist/chunks/engine-CjwHJJ_I.esm.js +2216 -0
- package/dist/chunks/engine-CjwHJJ_I.esm.js.map +1 -0
- package/dist/chunks/engine-DDdcZyBr.esm.min.js +2 -0
- package/dist/chunks/engine-DDdcZyBr.esm.min.js.map +1 -0
- package/dist/chunks/engine.common-9BWDtT2M.esm.js +1162 -0
- package/dist/chunks/engine.common-9BWDtT2M.esm.js.map +1 -0
- package/dist/chunks/engine.common-B3oiG-PJ.esm.min.js +2 -0
- package/dist/chunks/engine.common-B3oiG-PJ.esm.min.js.map +1 -0
- package/dist/chunks/envTextureLoader-B2kcZ0TS.esm.js +64 -0
- package/dist/chunks/envTextureLoader-B2kcZ0TS.esm.js.map +1 -0
- package/dist/chunks/envTextureLoader-BJ0RU-N0.esm.min.js +2 -0
- package/dist/chunks/envTextureLoader-BJ0RU-N0.esm.min.js.map +1 -0
- package/dist/chunks/environmentTextureTools-BDDKxUKH.esm.js +382 -0
- package/dist/chunks/environmentTextureTools-BDDKxUKH.esm.js.map +1 -0
- package/dist/chunks/environmentTextureTools-BuVOE0iE.esm.min.js +2 -0
- package/dist/chunks/environmentTextureTools-BuVOE0iE.esm.min.js.map +1 -0
- package/dist/chunks/exrTextureLoader-ByEbgBJq.esm.min.js +2 -0
- package/dist/chunks/exrTextureLoader-ByEbgBJq.esm.min.js.map +1 -0
- package/dist/chunks/exrTextureLoader-CVJEgA3V.esm.js +1683 -0
- package/dist/chunks/exrTextureLoader-CVJEgA3V.esm.js.map +1 -0
- package/dist/chunks/fogFragment-BCI6G-ZP.esm.min.js +2 -0
- package/dist/chunks/fogFragment-BCI6G-ZP.esm.min.js.map +1 -0
- package/dist/chunks/fogFragment-DWRmb1tG.esm.min.js +2 -0
- package/dist/chunks/fogFragment-DWRmb1tG.esm.min.js.map +1 -0
- package/dist/chunks/fogFragment-Dmcif2rs.esm.js +102 -0
- package/dist/chunks/fogFragment-Dmcif2rs.esm.js.map +1 -0
- package/dist/chunks/fogFragment-K4UslW3k.esm.js +101 -0
- package/dist/chunks/fogFragment-K4UslW3k.esm.js.map +1 -0
- package/dist/chunks/fresnelFunction-Byr-DptL.esm.js +12 -0
- package/dist/chunks/fresnelFunction-Byr-DptL.esm.js.map +1 -0
- package/dist/chunks/fresnelFunction-nqy6Uoot.esm.min.js +2 -0
- package/dist/chunks/fresnelFunction-nqy6Uoot.esm.min.js.map +1 -0
- package/dist/chunks/glTFLoader-BNHy6PGg.esm.min.js +2 -0
- package/dist/chunks/glTFLoader-BNHy6PGg.esm.min.js.map +1 -0
- package/dist/chunks/glTFLoader-Bt4XTOHj.esm.js +7658 -0
- package/dist/chunks/glTFLoader-Bt4XTOHj.esm.js.map +1 -0
- package/dist/chunks/glTFLoaderAnimation-C7bRnMuQ.esm.min.js +2 -0
- package/dist/chunks/glTFLoaderAnimation-C7bRnMuQ.esm.min.js.map +1 -0
- package/dist/chunks/glTFLoaderAnimation-wzgl1G3Q.esm.js +77 -0
- package/dist/chunks/glTFLoaderAnimation-wzgl1G3Q.esm.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-CJK-zUAx.esm.min.js +2 -0
- package/dist/chunks/harmonicsFunctions-CJK-zUAx.esm.min.js.map +1 -0
- package/dist/chunks/harmonicsFunctions-Cc4Kn69U.esm.js +35 -0
- package/dist/chunks/harmonicsFunctions-Cc4Kn69U.esm.js.map +1 -0
- package/dist/chunks/harmonicsFunctions-D_T4jAii.esm.min.js +2 -0
- package/dist/chunks/harmonicsFunctions-D_T4jAii.esm.min.js.map +1 -0
- package/dist/chunks/harmonicsFunctions-KLqvdh60.esm.js +34 -0
- package/dist/chunks/harmonicsFunctions-KLqvdh60.esm.js.map +1 -0
- package/dist/chunks/hdrTextureLoader-C6Df--L1.esm.js +253 -0
- package/dist/chunks/hdrTextureLoader-C6Df--L1.esm.js.map +1 -0
- package/dist/chunks/hdrTextureLoader-CsfShnoX.esm.min.js +2 -0
- package/dist/chunks/hdrTextureLoader-CsfShnoX.esm.min.js.map +1 -0
- package/dist/chunks/helperFunctions-DDGAItWp.esm.js +80 -0
- package/dist/chunks/helperFunctions-DDGAItWp.esm.js.map +1 -0
- package/dist/chunks/helperFunctions-DR_I6MXm.esm.min.js +2 -0
- package/dist/chunks/helperFunctions-DR_I6MXm.esm.min.js.map +1 -0
- package/dist/chunks/helperFunctions-DciHbMbJ.esm.min.js +2 -0
- package/dist/chunks/helperFunctions-DciHbMbJ.esm.min.js.map +1 -0
- package/dist/chunks/helperFunctions-Dp1Kzl1o.esm.js +108 -0
- package/dist/chunks/helperFunctions-Dp1Kzl1o.esm.js.map +1 -0
- package/dist/chunks/iesTextureLoader-6OJu6Vq2.esm.min.js +2 -0
- package/dist/chunks/iesTextureLoader-6OJu6Vq2.esm.min.js.map +1 -0
- package/dist/chunks/iesTextureLoader-Bm570oWa.esm.js +189 -0
- package/dist/chunks/iesTextureLoader-Bm570oWa.esm.js.map +1 -0
- package/dist/chunks/index-B6sqDOGz.esm.js +74825 -0
- package/dist/chunks/index-B6sqDOGz.esm.js.map +1 -0
- package/dist/chunks/index-D3BVnHHq.esm.min.js +57 -0
- package/dist/chunks/index-D3BVnHHq.esm.min.js.map +1 -0
- package/dist/chunks/ktxTextureLoader-Bqe5q1rf.esm.js +814 -0
- package/dist/chunks/ktxTextureLoader-Bqe5q1rf.esm.js.map +1 -0
- package/dist/chunks/ktxTextureLoader-CYGltN4N.esm.min.js +2 -0
- package/dist/chunks/ktxTextureLoader-CYGltN4N.esm.min.js.map +1 -0
- package/dist/chunks/logDepthDeclaration-5ljdm3vC.esm.min.js +2 -0
- package/dist/chunks/logDepthDeclaration-5ljdm3vC.esm.min.js.map +1 -0
- package/dist/chunks/logDepthDeclaration-BAi1U8tp.esm.js +35 -0
- package/dist/chunks/logDepthDeclaration-BAi1U8tp.esm.js.map +1 -0
- package/dist/chunks/logDepthDeclaration-BhyTMFMU.esm.js +11 -0
- package/dist/chunks/logDepthDeclaration-BhyTMFMU.esm.js.map +1 -0
- package/dist/chunks/logDepthDeclaration-TpKbhGMf.esm.min.js +2 -0
- package/dist/chunks/logDepthDeclaration-TpKbhGMf.esm.min.js.map +1 -0
- package/dist/chunks/logDepthVertex-CAe41JFY.esm.js +77 -0
- package/dist/chunks/logDepthVertex-CAe41JFY.esm.js.map +1 -0
- package/dist/chunks/logDepthVertex-DSb3D1Hm.esm.js +81 -0
- package/dist/chunks/logDepthVertex-DSb3D1Hm.esm.js.map +1 -0
- package/dist/chunks/logDepthVertex-I7P1jvLX.esm.min.js +2 -0
- package/dist/chunks/logDepthVertex-I7P1jvLX.esm.min.js.map +1 -0
- package/dist/chunks/logDepthVertex-JJkSRL9W.esm.min.js +2 -0
- package/dist/chunks/logDepthVertex-JJkSRL9W.esm.min.js.map +1 -0
- package/dist/chunks/mainUVVaryingDeclaration-BOsqkSBn.esm.js +11 -0
- package/dist/chunks/mainUVVaryingDeclaration-BOsqkSBn.esm.js.map +1 -0
- package/dist/chunks/mainUVVaryingDeclaration-CInC18r7.esm.js +11 -0
- package/dist/chunks/mainUVVaryingDeclaration-CInC18r7.esm.js.map +1 -0
- package/dist/chunks/mainUVVaryingDeclaration-CS3E9EgB.esm.min.js +2 -0
- package/dist/chunks/mainUVVaryingDeclaration-CS3E9EgB.esm.min.js.map +1 -0
- package/dist/chunks/mainUVVaryingDeclaration-ChM_7YDH.esm.min.js +2 -0
- package/dist/chunks/mainUVVaryingDeclaration-ChM_7YDH.esm.min.js.map +1 -0
- package/dist/chunks/meshUboDeclaration-BJzygYVf.esm.min.js +2 -0
- package/dist/chunks/meshUboDeclaration-BJzygYVf.esm.min.js.map +1 -0
- package/dist/chunks/meshUboDeclaration-DM7Knmm0.esm.js +26 -0
- package/dist/chunks/meshUboDeclaration-DM7Knmm0.esm.js.map +1 -0
- package/dist/chunks/objFileLoader-DXh6dEqA.esm.min.js +2 -0
- package/dist/chunks/objFileLoader-DXh6dEqA.esm.min.js.map +1 -0
- package/dist/chunks/objFileLoader-DzxFwUIY.esm.js +1338 -0
- package/dist/chunks/objFileLoader-DzxFwUIY.esm.js.map +1 -0
- package/dist/chunks/oitFragment-C2V-9s6u.esm.min.js +2 -0
- package/dist/chunks/oitFragment-C2V-9s6u.esm.min.js.map +1 -0
- package/dist/chunks/oitFragment-DOPwpc5v.esm.js +1240 -0
- package/dist/chunks/oitFragment-DOPwpc5v.esm.js.map +1 -0
- package/dist/chunks/oitFragment-kS5s81PF.esm.min.js +2 -0
- package/dist/chunks/oitFragment-kS5s81PF.esm.min.js.map +1 -0
- package/dist/chunks/oitFragment-yAzK8PUt.esm.js +1078 -0
- package/dist/chunks/oitFragment-yAzK8PUt.esm.js.map +1 -0
- package/dist/chunks/pass.fragment-5ocLOmrf.esm.js +15 -0
- package/dist/chunks/pass.fragment-5ocLOmrf.esm.js.map +1 -0
- package/dist/chunks/pass.fragment-BN-f4kEG.esm.js +15 -0
- package/dist/chunks/pass.fragment-BN-f4kEG.esm.js.map +1 -0
- package/dist/chunks/pass.fragment-CE2yo34Z.esm.min.js +2 -0
- package/dist/chunks/pass.fragment-CE2yo34Z.esm.min.js.map +1 -0
- package/dist/chunks/pass.fragment-O74A4S0m.esm.min.js +2 -0
- package/dist/chunks/pass.fragment-O74A4S0m.esm.min.js.map +1 -0
- package/dist/chunks/pbr.fragment-AC22HTP0.esm.js +3273 -0
- package/dist/chunks/pbr.fragment-AC22HTP0.esm.js.map +1 -0
- package/dist/chunks/pbr.fragment-BsRPu6hA.esm.min.js +2 -0
- package/dist/chunks/pbr.fragment-BsRPu6hA.esm.min.js.map +1 -0
- package/dist/chunks/pbr.fragment-Dxb2AuuM.esm.js +3232 -0
- package/dist/chunks/pbr.fragment-Dxb2AuuM.esm.js.map +1 -0
- package/dist/chunks/pbr.fragment-Jz2EDvVc.esm.min.js +2 -0
- package/dist/chunks/pbr.fragment-Jz2EDvVc.esm.min.js.map +1 -0
- package/dist/chunks/pbr.vertex-BkRM-a3D.esm.min.js +2 -0
- package/dist/chunks/pbr.vertex-BkRM-a3D.esm.min.js.map +1 -0
- package/dist/chunks/pbr.vertex-DC-IeqOc.esm.js +348 -0
- package/dist/chunks/pbr.vertex-DC-IeqOc.esm.js.map +1 -0
- package/dist/chunks/pbr.vertex-DFq751_7.esm.js +223 -0
- package/dist/chunks/pbr.vertex-DFq751_7.esm.js.map +1 -0
- package/dist/chunks/pbr.vertex-NaenLCtj.esm.min.js +2 -0
- package/dist/chunks/pbr.vertex-NaenLCtj.esm.min.js.map +1 -0
- package/dist/chunks/postprocess.vertex-CCzNHvuk.esm.js +20 -0
- package/dist/chunks/postprocess.vertex-CCzNHvuk.esm.js.map +1 -0
- package/dist/chunks/postprocess.vertex-Mo0vpVxw.esm.min.js +2 -0
- package/dist/chunks/postprocess.vertex-Mo0vpVxw.esm.min.js.map +1 -0
- package/dist/chunks/rawTexture-DsvWY4wf.esm.js +191 -0
- package/dist/chunks/rawTexture-DsvWY4wf.esm.js.map +1 -0
- package/dist/chunks/rawTexture-Ub3t-s7i.esm.min.js +2 -0
- package/dist/chunks/rawTexture-Ub3t-s7i.esm.min.js.map +1 -0
- package/dist/chunks/ray-BRtIhzin.esm.min.js +2 -0
- package/dist/chunks/ray-BRtIhzin.esm.min.js.map +1 -0
- package/dist/chunks/ray-DGNoxqma.esm.js +946 -0
- package/dist/chunks/ray-DGNoxqma.esm.js.map +1 -0
- package/dist/chunks/rgbdDecode.fragment-CZhZbezW.esm.min.js +2 -0
- package/dist/chunks/rgbdDecode.fragment-CZhZbezW.esm.min.js.map +1 -0
- package/dist/chunks/rgbdDecode.fragment-CgKBbbD1.esm.js +13 -0
- package/dist/chunks/rgbdDecode.fragment-CgKBbbD1.esm.js.map +1 -0
- package/dist/chunks/rgbdDecode.fragment-LHNdHf3k.esm.min.js +2 -0
- package/dist/chunks/rgbdDecode.fragment-LHNdHf3k.esm.min.js.map +1 -0
- package/dist/chunks/rgbdDecode.fragment-fiTenc35.esm.js +13 -0
- package/dist/chunks/rgbdDecode.fragment-fiTenc35.esm.js.map +1 -0
- package/dist/chunks/rgbdEncode.fragment-9S80Pwpo.esm.min.js +2 -0
- package/dist/chunks/rgbdEncode.fragment-9S80Pwpo.esm.min.js.map +1 -0
- package/dist/chunks/rgbdEncode.fragment-BqEeZloN.esm.js +13 -0
- package/dist/chunks/rgbdEncode.fragment-BqEeZloN.esm.js.map +1 -0
- package/dist/chunks/rgbdEncode.fragment-DNHQ71A7.esm.min.js +2 -0
- package/dist/chunks/rgbdEncode.fragment-DNHQ71A7.esm.min.js.map +1 -0
- package/dist/chunks/rgbdEncode.fragment-Opuv8m2e.esm.js +13 -0
- package/dist/chunks/rgbdEncode.fragment-Opuv8m2e.esm.js.map +1 -0
- package/dist/chunks/splatFileLoader-ZYsB_KqH.esm.js +3379 -0
- package/dist/chunks/splatFileLoader-ZYsB_KqH.esm.js.map +1 -0
- package/dist/chunks/splatFileLoader-vkPYxHIT.esm.min.js +2 -0
- package/dist/chunks/splatFileLoader-vkPYxHIT.esm.min.js.map +1 -0
- package/dist/chunks/spotLight-BlYHhPZ5.esm.js +701 -0
- package/dist/chunks/spotLight-BlYHhPZ5.esm.js.map +1 -0
- package/dist/chunks/spotLight-CbgIfMbz.esm.min.js +2 -0
- package/dist/chunks/spotLight-CbgIfMbz.esm.min.js.map +1 -0
- package/dist/chunks/standardMaterial-2SzHzTgX.esm.js +1806 -0
- package/dist/chunks/standardMaterial-2SzHzTgX.esm.js.map +1 -0
- package/dist/chunks/standardMaterial-BuAbZl_Z.esm.min.js +2 -0
- package/dist/chunks/standardMaterial-BuAbZl_Z.esm.min.js.map +1 -0
- package/dist/chunks/stlFileLoader-5Kq215Ci.esm.js +238 -0
- package/dist/chunks/stlFileLoader-5Kq215Ci.esm.js.map +1 -0
- package/dist/chunks/stlFileLoader-wv5ATvZu.esm.min.js +2 -0
- package/dist/chunks/stlFileLoader-wv5ATvZu.esm.min.js.map +1 -0
- package/dist/chunks/tgaTextureLoader-DWICU4Mc.esm.js +349 -0
- package/dist/chunks/tgaTextureLoader-DWICU4Mc.esm.js.map +1 -0
- package/dist/chunks/tgaTextureLoader-bJsNfJzG.esm.min.js +2 -0
- package/dist/chunks/tgaTextureLoader-bJsNfJzG.esm.min.js.map +1 -0
- package/dist/chunks/thinEngine-BeWECwt6.esm.js +3848 -0
- package/dist/chunks/thinEngine-BeWECwt6.esm.js.map +1 -0
- package/dist/chunks/thinEngine-DFwbHE_G.esm.min.js +2 -0
- package/dist/chunks/thinEngine-DFwbHE_G.esm.min.js.map +1 -0
- package/dist/chunks/thinInstanceMesh-B1pIcpZJ.esm.min.js +2 -0
- package/dist/chunks/thinInstanceMesh-B1pIcpZJ.esm.min.js.map +1 -0
- package/dist/chunks/thinInstanceMesh-CwRJpzmW.esm.js +314 -0
- package/dist/chunks/thinInstanceMesh-CwRJpzmW.esm.js.map +1 -0
- package/dist/chunks/vertexColorMixing-BKr2fbgc.esm.js +531 -0
- package/dist/chunks/vertexColorMixing-BKr2fbgc.esm.js.map +1 -0
- package/dist/chunks/vertexColorMixing-BygjAnHj.esm.min.js +2 -0
- package/dist/chunks/vertexColorMixing-BygjAnHj.esm.min.js.map +1 -0
- package/dist/chunks/vertexColorMixing-HfObYyiq.esm.min.js +2 -0
- package/dist/chunks/vertexColorMixing-HfObYyiq.esm.min.js.map +1 -0
- package/dist/chunks/vertexColorMixing-_UoBUkRQ.esm.js +421 -0
- package/dist/chunks/vertexColorMixing-_UoBUkRQ.esm.js.map +1 -0
- package/dist/chunks/webgpuEngine-BPO8q4wr.esm.js +11533 -0
- package/dist/chunks/webgpuEngine-BPO8q4wr.esm.js.map +1 -0
- package/dist/chunks/webgpuEngine-DvdhZwbl.esm.min.js +2 -0
- package/dist/chunks/webgpuEngine-DvdhZwbl.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 +591 -0
- package/lib/index.js +2165 -0
- package/lib/index.js.map +1 -0
- package/package.json +19 -28
- package/readme.md +28 -28
- 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 -193
- 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 -351
- 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 -202
- 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 -22
- package/templating/plugins/hdButtonPlugin.js.map +0 -1
- package/templating/plugins/printButton.d.ts +0 -9
- package/templating/plugins/printButton.js +0 -41
- 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 -672
- 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,540 @@
|
|
|
1
|
+
import { f as FromHalfFloat, a8 as ToHalfFloat, by as Clamp, L as Logger, C as Constants, bF as CubeMapToSphericalPolynomialTools } from './index-B6sqDOGz.esm.js';
|
|
2
|
+
|
|
3
|
+
/* eslint-disable @typescript-eslint/naming-convention */
|
|
4
|
+
// Based on demo done by Brandon Jones - http://media.tojicode.com/webgl-samples/dds.html
|
|
5
|
+
// All values and structures referenced from:
|
|
6
|
+
// http://msdn.microsoft.com/en-us/library/bb943991.aspx/
|
|
7
|
+
const DDS_MAGIC = 0x20534444;
|
|
8
|
+
const //DDSD_CAPS = 0x1,
|
|
9
|
+
//DDSD_HEIGHT = 0x2,
|
|
10
|
+
//DDSD_WIDTH = 0x4,
|
|
11
|
+
//DDSD_PITCH = 0x8,
|
|
12
|
+
//DDSD_PIXELFORMAT = 0x1000,
|
|
13
|
+
DDSD_MIPMAPCOUNT = 0x20000;
|
|
14
|
+
//DDSD_LINEARSIZE = 0x80000,
|
|
15
|
+
//DDSD_DEPTH = 0x800000;
|
|
16
|
+
// var DDSCAPS_COMPLEX = 0x8,
|
|
17
|
+
// DDSCAPS_MIPMAP = 0x400000,
|
|
18
|
+
// DDSCAPS_TEXTURE = 0x1000;
|
|
19
|
+
const DDSCAPS2_CUBEMAP = 0x200;
|
|
20
|
+
// DDSCAPS2_CUBEMAP_POSITIVEX = 0x400,
|
|
21
|
+
// DDSCAPS2_CUBEMAP_NEGATIVEX = 0x800,
|
|
22
|
+
// DDSCAPS2_CUBEMAP_POSITIVEY = 0x1000,
|
|
23
|
+
// DDSCAPS2_CUBEMAP_NEGATIVEY = 0x2000,
|
|
24
|
+
// DDSCAPS2_CUBEMAP_POSITIVEZ = 0x4000,
|
|
25
|
+
// DDSCAPS2_CUBEMAP_NEGATIVEZ = 0x8000,
|
|
26
|
+
// DDSCAPS2_VOLUME = 0x200000;
|
|
27
|
+
const //DDPF_ALPHAPIXELS = 0x1,
|
|
28
|
+
//DDPF_ALPHA = 0x2,
|
|
29
|
+
DDPF_FOURCC = 0x4, DDPF_RGB = 0x40,
|
|
30
|
+
//DDPF_YUV = 0x200,
|
|
31
|
+
DDPF_LUMINANCE = 0x20000;
|
|
32
|
+
function FourCCToInt32(value) {
|
|
33
|
+
return value.charCodeAt(0) + (value.charCodeAt(1) << 8) + (value.charCodeAt(2) << 16) + (value.charCodeAt(3) << 24);
|
|
34
|
+
}
|
|
35
|
+
function Int32ToFourCC(value) {
|
|
36
|
+
return String.fromCharCode(value & 0xff, (value >> 8) & 0xff, (value >> 16) & 0xff, (value >> 24) & 0xff);
|
|
37
|
+
}
|
|
38
|
+
const FOURCC_DXT1 = FourCCToInt32("DXT1");
|
|
39
|
+
const FOURCC_DXT3 = FourCCToInt32("DXT3");
|
|
40
|
+
const FOURCC_DXT5 = FourCCToInt32("DXT5");
|
|
41
|
+
const FOURCC_DX10 = FourCCToInt32("DX10");
|
|
42
|
+
const FOURCC_D3DFMT_R16G16B16A16F = 113;
|
|
43
|
+
const FOURCC_D3DFMT_R32G32B32A32F = 116;
|
|
44
|
+
const DXGI_FORMAT_R32G32B32A32_FLOAT = 2;
|
|
45
|
+
const DXGI_FORMAT_R16G16B16A16_FLOAT = 10;
|
|
46
|
+
const DXGI_FORMAT_B8G8R8X8_UNORM = 88;
|
|
47
|
+
const headerLengthInt = 31; // The header length in 32 bit ints
|
|
48
|
+
// Offsets into the header array
|
|
49
|
+
const off_magic = 0;
|
|
50
|
+
const off_size = 1;
|
|
51
|
+
const off_flags = 2;
|
|
52
|
+
const off_height = 3;
|
|
53
|
+
const off_width = 4;
|
|
54
|
+
const off_mipmapCount = 7;
|
|
55
|
+
const off_pfFlags = 20;
|
|
56
|
+
const off_pfFourCC = 21;
|
|
57
|
+
const off_RGBbpp = 22;
|
|
58
|
+
const off_RMask = 23;
|
|
59
|
+
const off_GMask = 24;
|
|
60
|
+
const off_BMask = 25;
|
|
61
|
+
const off_AMask = 26;
|
|
62
|
+
// var off_caps1 = 27;
|
|
63
|
+
const off_caps2 = 28;
|
|
64
|
+
// var off_caps3 = 29;
|
|
65
|
+
// var off_caps4 = 30;
|
|
66
|
+
const off_dxgiFormat = 32;
|
|
67
|
+
/**
|
|
68
|
+
* Class used to provide DDS decompression tools
|
|
69
|
+
*/
|
|
70
|
+
class DDSTools {
|
|
71
|
+
/**
|
|
72
|
+
* Gets DDS information from an array buffer
|
|
73
|
+
* @param data defines the array buffer view to read data from
|
|
74
|
+
* @returns the DDS information
|
|
75
|
+
*/
|
|
76
|
+
static GetDDSInfo(data) {
|
|
77
|
+
const header = new Int32Array(data.buffer, data.byteOffset, headerLengthInt);
|
|
78
|
+
const extendedHeader = new Int32Array(data.buffer, data.byteOffset, headerLengthInt + 4);
|
|
79
|
+
let mipmapCount = 1;
|
|
80
|
+
if (header[off_flags] & DDSD_MIPMAPCOUNT) {
|
|
81
|
+
mipmapCount = Math.max(1, header[off_mipmapCount]);
|
|
82
|
+
}
|
|
83
|
+
const fourCC = header[off_pfFourCC];
|
|
84
|
+
const dxgiFormat = fourCC === FOURCC_DX10 ? extendedHeader[off_dxgiFormat] : 0;
|
|
85
|
+
let textureType = Constants.TEXTURETYPE_UNSIGNED_BYTE;
|
|
86
|
+
switch (fourCC) {
|
|
87
|
+
case FOURCC_D3DFMT_R16G16B16A16F:
|
|
88
|
+
textureType = Constants.TEXTURETYPE_HALF_FLOAT;
|
|
89
|
+
break;
|
|
90
|
+
case FOURCC_D3DFMT_R32G32B32A32F:
|
|
91
|
+
textureType = Constants.TEXTURETYPE_FLOAT;
|
|
92
|
+
break;
|
|
93
|
+
case FOURCC_DX10:
|
|
94
|
+
if (dxgiFormat === DXGI_FORMAT_R16G16B16A16_FLOAT) {
|
|
95
|
+
textureType = Constants.TEXTURETYPE_HALF_FLOAT;
|
|
96
|
+
break;
|
|
97
|
+
}
|
|
98
|
+
if (dxgiFormat === DXGI_FORMAT_R32G32B32A32_FLOAT) {
|
|
99
|
+
textureType = Constants.TEXTURETYPE_FLOAT;
|
|
100
|
+
break;
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
return {
|
|
104
|
+
width: header[off_width],
|
|
105
|
+
height: header[off_height],
|
|
106
|
+
mipmapCount: mipmapCount,
|
|
107
|
+
isFourCC: (header[off_pfFlags] & DDPF_FOURCC) === DDPF_FOURCC,
|
|
108
|
+
isRGB: (header[off_pfFlags] & DDPF_RGB) === DDPF_RGB,
|
|
109
|
+
isLuminance: (header[off_pfFlags] & DDPF_LUMINANCE) === DDPF_LUMINANCE,
|
|
110
|
+
isCube: (header[off_caps2] & DDSCAPS2_CUBEMAP) === DDSCAPS2_CUBEMAP,
|
|
111
|
+
isCompressed: fourCC === FOURCC_DXT1 || fourCC === FOURCC_DXT3 || fourCC === FOURCC_DXT5,
|
|
112
|
+
dxgiFormat: dxgiFormat,
|
|
113
|
+
textureType: textureType,
|
|
114
|
+
};
|
|
115
|
+
}
|
|
116
|
+
static _GetHalfFloatAsFloatRGBAArrayBuffer(width, height, dataOffset, dataLength, arrayBuffer, lod) {
|
|
117
|
+
const destArray = new Float32Array(dataLength);
|
|
118
|
+
const srcData = new Uint16Array(arrayBuffer, dataOffset);
|
|
119
|
+
let index = 0;
|
|
120
|
+
for (let y = 0; y < height; y++) {
|
|
121
|
+
for (let x = 0; x < width; x++) {
|
|
122
|
+
const srcPos = (x + y * width) * 4;
|
|
123
|
+
destArray[index] = FromHalfFloat(srcData[srcPos]);
|
|
124
|
+
destArray[index + 1] = FromHalfFloat(srcData[srcPos + 1]);
|
|
125
|
+
destArray[index + 2] = FromHalfFloat(srcData[srcPos + 2]);
|
|
126
|
+
if (DDSTools.StoreLODInAlphaChannel) {
|
|
127
|
+
destArray[index + 3] = lod;
|
|
128
|
+
}
|
|
129
|
+
else {
|
|
130
|
+
destArray[index + 3] = FromHalfFloat(srcData[srcPos + 3]);
|
|
131
|
+
}
|
|
132
|
+
index += 4;
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
return destArray;
|
|
136
|
+
}
|
|
137
|
+
static _GetHalfFloatRGBAArrayBuffer(width, height, dataOffset, dataLength, arrayBuffer, lod) {
|
|
138
|
+
if (DDSTools.StoreLODInAlphaChannel) {
|
|
139
|
+
const destArray = new Uint16Array(dataLength);
|
|
140
|
+
const srcData = new Uint16Array(arrayBuffer, dataOffset);
|
|
141
|
+
let index = 0;
|
|
142
|
+
for (let y = 0; y < height; y++) {
|
|
143
|
+
for (let x = 0; x < width; x++) {
|
|
144
|
+
const srcPos = (x + y * width) * 4;
|
|
145
|
+
destArray[index] = srcData[srcPos];
|
|
146
|
+
destArray[index + 1] = srcData[srcPos + 1];
|
|
147
|
+
destArray[index + 2] = srcData[srcPos + 2];
|
|
148
|
+
destArray[index + 3] = ToHalfFloat(lod);
|
|
149
|
+
index += 4;
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
return destArray;
|
|
153
|
+
}
|
|
154
|
+
return new Uint16Array(arrayBuffer, dataOffset, dataLength);
|
|
155
|
+
}
|
|
156
|
+
static _GetFloatRGBAArrayBuffer(width, height, dataOffset, dataLength, arrayBuffer, lod) {
|
|
157
|
+
if (DDSTools.StoreLODInAlphaChannel) {
|
|
158
|
+
const destArray = new Float32Array(dataLength);
|
|
159
|
+
const srcData = new Float32Array(arrayBuffer, dataOffset);
|
|
160
|
+
let index = 0;
|
|
161
|
+
for (let y = 0; y < height; y++) {
|
|
162
|
+
for (let x = 0; x < width; x++) {
|
|
163
|
+
const srcPos = (x + y * width) * 4;
|
|
164
|
+
destArray[index] = srcData[srcPos];
|
|
165
|
+
destArray[index + 1] = srcData[srcPos + 1];
|
|
166
|
+
destArray[index + 2] = srcData[srcPos + 2];
|
|
167
|
+
destArray[index + 3] = lod;
|
|
168
|
+
index += 4;
|
|
169
|
+
}
|
|
170
|
+
}
|
|
171
|
+
return destArray;
|
|
172
|
+
}
|
|
173
|
+
return new Float32Array(arrayBuffer, dataOffset, dataLength);
|
|
174
|
+
}
|
|
175
|
+
static _GetFloatAsHalfFloatRGBAArrayBuffer(width, height, dataOffset, dataLength, arrayBuffer, lod) {
|
|
176
|
+
const destArray = new Uint16Array(dataLength);
|
|
177
|
+
const srcData = new Float32Array(arrayBuffer, dataOffset);
|
|
178
|
+
let index = 0;
|
|
179
|
+
for (let y = 0; y < height; y++) {
|
|
180
|
+
for (let x = 0; x < width; x++) {
|
|
181
|
+
destArray[index] = ToHalfFloat(srcData[index]);
|
|
182
|
+
destArray[index + 1] = ToHalfFloat(srcData[index + 1]);
|
|
183
|
+
destArray[index + 2] = ToHalfFloat(srcData[index + 2]);
|
|
184
|
+
if (DDSTools.StoreLODInAlphaChannel) {
|
|
185
|
+
destArray[index + 3] = ToHalfFloat(lod);
|
|
186
|
+
}
|
|
187
|
+
else {
|
|
188
|
+
destArray[index + 3] = ToHalfFloat(srcData[index + 3]);
|
|
189
|
+
}
|
|
190
|
+
index += 4;
|
|
191
|
+
}
|
|
192
|
+
}
|
|
193
|
+
return destArray;
|
|
194
|
+
}
|
|
195
|
+
static _GetFloatAsUIntRGBAArrayBuffer(width, height, dataOffset, dataLength, arrayBuffer, lod) {
|
|
196
|
+
const destArray = new Uint8Array(dataLength);
|
|
197
|
+
const srcData = new Float32Array(arrayBuffer, dataOffset);
|
|
198
|
+
let index = 0;
|
|
199
|
+
for (let y = 0; y < height; y++) {
|
|
200
|
+
for (let x = 0; x < width; x++) {
|
|
201
|
+
const srcPos = (x + y * width) * 4;
|
|
202
|
+
destArray[index] = Clamp(srcData[srcPos]) * 255;
|
|
203
|
+
destArray[index + 1] = Clamp(srcData[srcPos + 1]) * 255;
|
|
204
|
+
destArray[index + 2] = Clamp(srcData[srcPos + 2]) * 255;
|
|
205
|
+
if (DDSTools.StoreLODInAlphaChannel) {
|
|
206
|
+
destArray[index + 3] = lod;
|
|
207
|
+
}
|
|
208
|
+
else {
|
|
209
|
+
destArray[index + 3] = Clamp(srcData[srcPos + 3]) * 255;
|
|
210
|
+
}
|
|
211
|
+
index += 4;
|
|
212
|
+
}
|
|
213
|
+
}
|
|
214
|
+
return destArray;
|
|
215
|
+
}
|
|
216
|
+
static _GetHalfFloatAsUIntRGBAArrayBuffer(width, height, dataOffset, dataLength, arrayBuffer, lod) {
|
|
217
|
+
const destArray = new Uint8Array(dataLength);
|
|
218
|
+
const srcData = new Uint16Array(arrayBuffer, dataOffset);
|
|
219
|
+
let index = 0;
|
|
220
|
+
for (let y = 0; y < height; y++) {
|
|
221
|
+
for (let x = 0; x < width; x++) {
|
|
222
|
+
const srcPos = (x + y * width) * 4;
|
|
223
|
+
destArray[index] = Clamp(FromHalfFloat(srcData[srcPos])) * 255;
|
|
224
|
+
destArray[index + 1] = Clamp(FromHalfFloat(srcData[srcPos + 1])) * 255;
|
|
225
|
+
destArray[index + 2] = Clamp(FromHalfFloat(srcData[srcPos + 2])) * 255;
|
|
226
|
+
if (DDSTools.StoreLODInAlphaChannel) {
|
|
227
|
+
destArray[index + 3] = lod;
|
|
228
|
+
}
|
|
229
|
+
else {
|
|
230
|
+
destArray[index + 3] = Clamp(FromHalfFloat(srcData[srcPos + 3])) * 255;
|
|
231
|
+
}
|
|
232
|
+
index += 4;
|
|
233
|
+
}
|
|
234
|
+
}
|
|
235
|
+
return destArray;
|
|
236
|
+
}
|
|
237
|
+
static _GetRGBAArrayBuffer(width, height, dataOffset, dataLength, arrayBuffer, rOffset, gOffset, bOffset, aOffset) {
|
|
238
|
+
const byteArray = new Uint8Array(dataLength);
|
|
239
|
+
const srcData = new Uint8Array(arrayBuffer, dataOffset);
|
|
240
|
+
let index = 0;
|
|
241
|
+
for (let y = 0; y < height; y++) {
|
|
242
|
+
for (let x = 0; x < width; x++) {
|
|
243
|
+
const srcPos = (x + y * width) * 4;
|
|
244
|
+
byteArray[index] = srcData[srcPos + rOffset];
|
|
245
|
+
byteArray[index + 1] = srcData[srcPos + gOffset];
|
|
246
|
+
byteArray[index + 2] = srcData[srcPos + bOffset];
|
|
247
|
+
byteArray[index + 3] = srcData[srcPos + aOffset];
|
|
248
|
+
index += 4;
|
|
249
|
+
}
|
|
250
|
+
}
|
|
251
|
+
return byteArray;
|
|
252
|
+
}
|
|
253
|
+
static _ExtractLongWordOrder(value) {
|
|
254
|
+
if (value === 0 || value === 255 || value === -16777216) {
|
|
255
|
+
return 0;
|
|
256
|
+
}
|
|
257
|
+
return 1 + DDSTools._ExtractLongWordOrder(value >> 8);
|
|
258
|
+
}
|
|
259
|
+
static _GetRGBArrayBuffer(width, height, dataOffset, dataLength, arrayBuffer, rOffset, gOffset, bOffset) {
|
|
260
|
+
const byteArray = new Uint8Array(dataLength);
|
|
261
|
+
const srcData = new Uint8Array(arrayBuffer, dataOffset);
|
|
262
|
+
let index = 0;
|
|
263
|
+
for (let y = 0; y < height; y++) {
|
|
264
|
+
for (let x = 0; x < width; x++) {
|
|
265
|
+
const srcPos = (x + y * width) * 3;
|
|
266
|
+
byteArray[index] = srcData[srcPos + rOffset];
|
|
267
|
+
byteArray[index + 1] = srcData[srcPos + gOffset];
|
|
268
|
+
byteArray[index + 2] = srcData[srcPos + bOffset];
|
|
269
|
+
index += 3;
|
|
270
|
+
}
|
|
271
|
+
}
|
|
272
|
+
return byteArray;
|
|
273
|
+
}
|
|
274
|
+
static _GetLuminanceArrayBuffer(width, height, dataOffset, dataLength, arrayBuffer) {
|
|
275
|
+
const byteArray = new Uint8Array(dataLength);
|
|
276
|
+
const srcData = new Uint8Array(arrayBuffer, dataOffset);
|
|
277
|
+
let index = 0;
|
|
278
|
+
for (let y = 0; y < height; y++) {
|
|
279
|
+
for (let x = 0; x < width; x++) {
|
|
280
|
+
const srcPos = x + y * width;
|
|
281
|
+
byteArray[index] = srcData[srcPos];
|
|
282
|
+
index++;
|
|
283
|
+
}
|
|
284
|
+
}
|
|
285
|
+
return byteArray;
|
|
286
|
+
}
|
|
287
|
+
/**
|
|
288
|
+
* Uploads DDS Levels to a Babylon Texture
|
|
289
|
+
* @internal
|
|
290
|
+
*/
|
|
291
|
+
static UploadDDSLevels(engine, texture, data, info, loadMipmaps, faces, lodIndex = -1, currentFace, destTypeMustBeFilterable = true) {
|
|
292
|
+
let sphericalPolynomialFaces = null;
|
|
293
|
+
if (info.sphericalPolynomial) {
|
|
294
|
+
sphericalPolynomialFaces = [];
|
|
295
|
+
}
|
|
296
|
+
const ext = !!engine.getCaps().s3tc;
|
|
297
|
+
// TODO WEBGPU Once generateMipMaps is split into generateMipMaps + hasMipMaps in InternalTexture this line can be removed
|
|
298
|
+
texture.generateMipMaps = loadMipmaps;
|
|
299
|
+
const header = new Int32Array(data.buffer, data.byteOffset, headerLengthInt);
|
|
300
|
+
let fourCC, width, height, dataLength = 0, dataOffset;
|
|
301
|
+
let byteArray, mipmapCount, mip;
|
|
302
|
+
let internalCompressedFormat = 0;
|
|
303
|
+
let blockBytes = 1;
|
|
304
|
+
if (header[off_magic] !== DDS_MAGIC) {
|
|
305
|
+
Logger.Error("Invalid magic number in DDS header");
|
|
306
|
+
return;
|
|
307
|
+
}
|
|
308
|
+
if (!info.isFourCC && !info.isRGB && !info.isLuminance) {
|
|
309
|
+
Logger.Error("Unsupported format, must contain a FourCC, RGB or LUMINANCE code");
|
|
310
|
+
return;
|
|
311
|
+
}
|
|
312
|
+
if (info.isCompressed && !ext) {
|
|
313
|
+
Logger.Error("Compressed textures are not supported on this platform.");
|
|
314
|
+
return;
|
|
315
|
+
}
|
|
316
|
+
let bpp = header[off_RGBbpp];
|
|
317
|
+
dataOffset = header[off_size] + 4;
|
|
318
|
+
let computeFormats = false;
|
|
319
|
+
if (info.isFourCC) {
|
|
320
|
+
fourCC = header[off_pfFourCC];
|
|
321
|
+
switch (fourCC) {
|
|
322
|
+
case FOURCC_DXT1:
|
|
323
|
+
blockBytes = 8;
|
|
324
|
+
internalCompressedFormat = Constants.TEXTUREFORMAT_COMPRESSED_RGBA_S3TC_DXT1;
|
|
325
|
+
break;
|
|
326
|
+
case FOURCC_DXT3:
|
|
327
|
+
blockBytes = 16;
|
|
328
|
+
internalCompressedFormat = Constants.TEXTUREFORMAT_COMPRESSED_RGBA_S3TC_DXT3;
|
|
329
|
+
break;
|
|
330
|
+
case FOURCC_DXT5:
|
|
331
|
+
blockBytes = 16;
|
|
332
|
+
internalCompressedFormat = Constants.TEXTUREFORMAT_COMPRESSED_RGBA_S3TC_DXT5;
|
|
333
|
+
break;
|
|
334
|
+
case FOURCC_D3DFMT_R16G16B16A16F:
|
|
335
|
+
computeFormats = true;
|
|
336
|
+
bpp = 64;
|
|
337
|
+
break;
|
|
338
|
+
case FOURCC_D3DFMT_R32G32B32A32F:
|
|
339
|
+
computeFormats = true;
|
|
340
|
+
bpp = 128;
|
|
341
|
+
break;
|
|
342
|
+
case FOURCC_DX10: {
|
|
343
|
+
// There is an additionnal header so dataOffset need to be changed
|
|
344
|
+
dataOffset += 5 * 4; // 5 uints
|
|
345
|
+
let supported = false;
|
|
346
|
+
switch (info.dxgiFormat) {
|
|
347
|
+
case DXGI_FORMAT_R16G16B16A16_FLOAT:
|
|
348
|
+
computeFormats = true;
|
|
349
|
+
bpp = 64;
|
|
350
|
+
supported = true;
|
|
351
|
+
break;
|
|
352
|
+
case DXGI_FORMAT_R32G32B32A32_FLOAT:
|
|
353
|
+
computeFormats = true;
|
|
354
|
+
bpp = 128;
|
|
355
|
+
supported = true;
|
|
356
|
+
break;
|
|
357
|
+
case DXGI_FORMAT_B8G8R8X8_UNORM:
|
|
358
|
+
info.isRGB = true;
|
|
359
|
+
info.isFourCC = false;
|
|
360
|
+
bpp = 32;
|
|
361
|
+
supported = true;
|
|
362
|
+
break;
|
|
363
|
+
}
|
|
364
|
+
if (supported) {
|
|
365
|
+
break;
|
|
366
|
+
}
|
|
367
|
+
}
|
|
368
|
+
// eslint-disable-next-line no-fallthrough
|
|
369
|
+
default:
|
|
370
|
+
Logger.Error(["Unsupported FourCC code:", Int32ToFourCC(fourCC)]);
|
|
371
|
+
return;
|
|
372
|
+
}
|
|
373
|
+
}
|
|
374
|
+
const rOffset = DDSTools._ExtractLongWordOrder(header[off_RMask]);
|
|
375
|
+
const gOffset = DDSTools._ExtractLongWordOrder(header[off_GMask]);
|
|
376
|
+
const bOffset = DDSTools._ExtractLongWordOrder(header[off_BMask]);
|
|
377
|
+
const aOffset = DDSTools._ExtractLongWordOrder(header[off_AMask]);
|
|
378
|
+
if (computeFormats) {
|
|
379
|
+
internalCompressedFormat = engine._getRGBABufferInternalSizedFormat(info.textureType);
|
|
380
|
+
}
|
|
381
|
+
mipmapCount = 1;
|
|
382
|
+
if (header[off_flags] & DDSD_MIPMAPCOUNT && loadMipmaps !== false) {
|
|
383
|
+
mipmapCount = Math.max(1, header[off_mipmapCount]);
|
|
384
|
+
}
|
|
385
|
+
const startFace = currentFace || 0;
|
|
386
|
+
const caps = engine.getCaps();
|
|
387
|
+
for (let face = startFace; face < faces; face++) {
|
|
388
|
+
width = header[off_width];
|
|
389
|
+
height = header[off_height];
|
|
390
|
+
for (mip = 0; mip < mipmapCount; ++mip) {
|
|
391
|
+
if (lodIndex === -1 || lodIndex === mip) {
|
|
392
|
+
// In case of fixed LOD, if the lod has just been uploaded, early exit.
|
|
393
|
+
const i = lodIndex === -1 ? mip : 0;
|
|
394
|
+
if (!info.isCompressed && info.isFourCC) {
|
|
395
|
+
texture.format = Constants.TEXTUREFORMAT_RGBA;
|
|
396
|
+
dataLength = width * height * 4;
|
|
397
|
+
let floatArray = null;
|
|
398
|
+
if (engine._badOS || engine._badDesktopOS || (!caps.textureHalfFloat && !caps.textureFloat)) {
|
|
399
|
+
// Required because iOS has many issues with float and half float generation
|
|
400
|
+
if (bpp === 128) {
|
|
401
|
+
floatArray = DDSTools._GetFloatAsUIntRGBAArrayBuffer(width, height, data.byteOffset + dataOffset, dataLength, data.buffer, i);
|
|
402
|
+
if (sphericalPolynomialFaces && i == 0) {
|
|
403
|
+
sphericalPolynomialFaces.push(DDSTools._GetFloatRGBAArrayBuffer(width, height, data.byteOffset + dataOffset, dataLength, data.buffer, i));
|
|
404
|
+
}
|
|
405
|
+
}
|
|
406
|
+
else if (bpp === 64) {
|
|
407
|
+
floatArray = DDSTools._GetHalfFloatAsUIntRGBAArrayBuffer(width, height, data.byteOffset + dataOffset, dataLength, data.buffer, i);
|
|
408
|
+
if (sphericalPolynomialFaces && i == 0) {
|
|
409
|
+
sphericalPolynomialFaces.push(DDSTools._GetHalfFloatAsFloatRGBAArrayBuffer(width, height, data.byteOffset + dataOffset, dataLength, data.buffer, i));
|
|
410
|
+
}
|
|
411
|
+
}
|
|
412
|
+
texture.type = Constants.TEXTURETYPE_UNSIGNED_BYTE;
|
|
413
|
+
}
|
|
414
|
+
else {
|
|
415
|
+
const floatAvailable = caps.textureFloat && ((destTypeMustBeFilterable && caps.textureFloatLinearFiltering) || !destTypeMustBeFilterable);
|
|
416
|
+
const halfFloatAvailable = caps.textureHalfFloat && ((destTypeMustBeFilterable && caps.textureHalfFloatLinearFiltering) || !destTypeMustBeFilterable);
|
|
417
|
+
const destType = (bpp === 128 || (bpp === 64 && !halfFloatAvailable)) && floatAvailable
|
|
418
|
+
? Constants.TEXTURETYPE_FLOAT
|
|
419
|
+
: (bpp === 64 || (bpp === 128 && !floatAvailable)) && halfFloatAvailable
|
|
420
|
+
? Constants.TEXTURETYPE_HALF_FLOAT
|
|
421
|
+
: Constants.TEXTURETYPE_UNSIGNED_BYTE;
|
|
422
|
+
let dataGetter;
|
|
423
|
+
let dataGetterPolynomial = null;
|
|
424
|
+
switch (bpp) {
|
|
425
|
+
case 128: {
|
|
426
|
+
switch (destType) {
|
|
427
|
+
case Constants.TEXTURETYPE_FLOAT:
|
|
428
|
+
dataGetter = DDSTools._GetFloatRGBAArrayBuffer;
|
|
429
|
+
dataGetterPolynomial = null;
|
|
430
|
+
break;
|
|
431
|
+
case Constants.TEXTURETYPE_HALF_FLOAT:
|
|
432
|
+
dataGetter = DDSTools._GetFloatAsHalfFloatRGBAArrayBuffer;
|
|
433
|
+
dataGetterPolynomial = DDSTools._GetFloatRGBAArrayBuffer;
|
|
434
|
+
break;
|
|
435
|
+
case Constants.TEXTURETYPE_UNSIGNED_BYTE:
|
|
436
|
+
dataGetter = DDSTools._GetFloatAsUIntRGBAArrayBuffer;
|
|
437
|
+
dataGetterPolynomial = DDSTools._GetFloatRGBAArrayBuffer;
|
|
438
|
+
break;
|
|
439
|
+
}
|
|
440
|
+
break;
|
|
441
|
+
}
|
|
442
|
+
default: {
|
|
443
|
+
// 64 bpp
|
|
444
|
+
switch (destType) {
|
|
445
|
+
case Constants.TEXTURETYPE_FLOAT:
|
|
446
|
+
dataGetter = DDSTools._GetHalfFloatAsFloatRGBAArrayBuffer;
|
|
447
|
+
dataGetterPolynomial = null;
|
|
448
|
+
break;
|
|
449
|
+
case Constants.TEXTURETYPE_HALF_FLOAT:
|
|
450
|
+
dataGetter = DDSTools._GetHalfFloatRGBAArrayBuffer;
|
|
451
|
+
dataGetterPolynomial = DDSTools._GetHalfFloatAsFloatRGBAArrayBuffer;
|
|
452
|
+
break;
|
|
453
|
+
case Constants.TEXTURETYPE_UNSIGNED_BYTE:
|
|
454
|
+
dataGetter = DDSTools._GetHalfFloatAsUIntRGBAArrayBuffer;
|
|
455
|
+
dataGetterPolynomial = DDSTools._GetHalfFloatAsFloatRGBAArrayBuffer;
|
|
456
|
+
break;
|
|
457
|
+
}
|
|
458
|
+
break;
|
|
459
|
+
}
|
|
460
|
+
}
|
|
461
|
+
texture.type = destType;
|
|
462
|
+
floatArray = dataGetter(width, height, data.byteOffset + dataOffset, dataLength, data.buffer, i);
|
|
463
|
+
if (sphericalPolynomialFaces && i == 0) {
|
|
464
|
+
sphericalPolynomialFaces.push(dataGetterPolynomial ? dataGetterPolynomial(width, height, data.byteOffset + dataOffset, dataLength, data.buffer, i) : floatArray);
|
|
465
|
+
}
|
|
466
|
+
}
|
|
467
|
+
if (floatArray) {
|
|
468
|
+
engine._uploadDataToTextureDirectly(texture, floatArray, face, i);
|
|
469
|
+
}
|
|
470
|
+
}
|
|
471
|
+
else if (info.isRGB) {
|
|
472
|
+
texture.type = Constants.TEXTURETYPE_UNSIGNED_BYTE;
|
|
473
|
+
if (bpp === 24) {
|
|
474
|
+
texture.format = Constants.TEXTUREFORMAT_RGB;
|
|
475
|
+
dataLength = width * height * 3;
|
|
476
|
+
byteArray = DDSTools._GetRGBArrayBuffer(width, height, data.byteOffset + dataOffset, dataLength, data.buffer, rOffset, gOffset, bOffset);
|
|
477
|
+
engine._uploadDataToTextureDirectly(texture, byteArray, face, i);
|
|
478
|
+
}
|
|
479
|
+
else {
|
|
480
|
+
// 32
|
|
481
|
+
texture.format = Constants.TEXTUREFORMAT_RGBA;
|
|
482
|
+
dataLength = width * height * 4;
|
|
483
|
+
byteArray = DDSTools._GetRGBAArrayBuffer(width, height, data.byteOffset + dataOffset, dataLength, data.buffer, rOffset, gOffset, bOffset, aOffset);
|
|
484
|
+
engine._uploadDataToTextureDirectly(texture, byteArray, face, i);
|
|
485
|
+
}
|
|
486
|
+
}
|
|
487
|
+
else if (info.isLuminance) {
|
|
488
|
+
const unpackAlignment = engine._getUnpackAlignement();
|
|
489
|
+
const unpaddedRowSize = width;
|
|
490
|
+
const paddedRowSize = Math.floor((width + unpackAlignment - 1) / unpackAlignment) * unpackAlignment;
|
|
491
|
+
dataLength = paddedRowSize * (height - 1) + unpaddedRowSize;
|
|
492
|
+
byteArray = DDSTools._GetLuminanceArrayBuffer(width, height, data.byteOffset + dataOffset, dataLength, data.buffer);
|
|
493
|
+
texture.format = Constants.TEXTUREFORMAT_LUMINANCE;
|
|
494
|
+
texture.type = Constants.TEXTURETYPE_UNSIGNED_BYTE;
|
|
495
|
+
engine._uploadDataToTextureDirectly(texture, byteArray, face, i);
|
|
496
|
+
}
|
|
497
|
+
else {
|
|
498
|
+
dataLength = (((Math.max(4, width) / 4) * Math.max(4, height)) / 4) * blockBytes;
|
|
499
|
+
byteArray = new Uint8Array(data.buffer, data.byteOffset + dataOffset, dataLength);
|
|
500
|
+
texture.type = Constants.TEXTURETYPE_UNSIGNED_BYTE;
|
|
501
|
+
engine._uploadCompressedDataToTextureDirectly(texture, internalCompressedFormat, width, height, byteArray, face, i);
|
|
502
|
+
}
|
|
503
|
+
}
|
|
504
|
+
dataOffset += bpp ? width * height * (bpp / 8) : dataLength;
|
|
505
|
+
width *= 0.5;
|
|
506
|
+
height *= 0.5;
|
|
507
|
+
width = Math.max(1.0, width);
|
|
508
|
+
height = Math.max(1.0, height);
|
|
509
|
+
}
|
|
510
|
+
if (currentFace !== undefined) {
|
|
511
|
+
// Loading a single face
|
|
512
|
+
break;
|
|
513
|
+
}
|
|
514
|
+
}
|
|
515
|
+
if (sphericalPolynomialFaces && sphericalPolynomialFaces.length > 0) {
|
|
516
|
+
info.sphericalPolynomial = CubeMapToSphericalPolynomialTools.ConvertCubeMapToSphericalPolynomial({
|
|
517
|
+
size: header[off_width],
|
|
518
|
+
right: sphericalPolynomialFaces[0],
|
|
519
|
+
left: sphericalPolynomialFaces[1],
|
|
520
|
+
up: sphericalPolynomialFaces[2],
|
|
521
|
+
down: sphericalPolynomialFaces[3],
|
|
522
|
+
front: sphericalPolynomialFaces[4],
|
|
523
|
+
back: sphericalPolynomialFaces[5],
|
|
524
|
+
format: Constants.TEXTUREFORMAT_RGBA,
|
|
525
|
+
type: Constants.TEXTURETYPE_FLOAT,
|
|
526
|
+
gammaSpace: false,
|
|
527
|
+
});
|
|
528
|
+
}
|
|
529
|
+
else {
|
|
530
|
+
info.sphericalPolynomial = undefined;
|
|
531
|
+
}
|
|
532
|
+
}
|
|
533
|
+
}
|
|
534
|
+
/**
|
|
535
|
+
* Gets or sets a boolean indicating that LOD info is stored in alpha channel (false by default)
|
|
536
|
+
*/
|
|
537
|
+
DDSTools.StoreLODInAlphaChannel = false;
|
|
538
|
+
|
|
539
|
+
export { DDSTools };
|
|
540
|
+
//# sourceMappingURL=dds-DPGLfLtA.esm.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dds-DPGLfLtA.esm.js","sources":["../../../../../dev/core/dist/Misc/dds.js"],"sourcesContent":["/* eslint-disable @typescript-eslint/naming-convention */\nimport { Clamp } from \"../Maths/math.scalar.functions\";\nimport { Constants } from \"../Engines/constants\";\nimport { Logger } from \"../Misc/logger\";\nimport { CubeMapToSphericalPolynomialTools } from \"../Misc/HighDynamicRange/cubemapToSphericalPolynomial\";\nimport { FromHalfFloat, ToHalfFloat } from \"./textureTools\";\nimport \"../Engines/AbstractEngine/abstractEngine.cubeTexture\";\n// Based on demo done by Brandon Jones - http://media.tojicode.com/webgl-samples/dds.html\n// All values and structures referenced from:\n// http://msdn.microsoft.com/en-us/library/bb943991.aspx/\nconst DDS_MAGIC = 0x20534444;\nconst //DDSD_CAPS = 0x1,\n//DDSD_HEIGHT = 0x2,\n//DDSD_WIDTH = 0x4,\n//DDSD_PITCH = 0x8,\n//DDSD_PIXELFORMAT = 0x1000,\nDDSD_MIPMAPCOUNT = 0x20000;\n//DDSD_LINEARSIZE = 0x80000,\n//DDSD_DEPTH = 0x800000;\n// var DDSCAPS_COMPLEX = 0x8,\n// DDSCAPS_MIPMAP = 0x400000,\n// DDSCAPS_TEXTURE = 0x1000;\nconst DDSCAPS2_CUBEMAP = 0x200;\n// DDSCAPS2_CUBEMAP_POSITIVEX = 0x400,\n// DDSCAPS2_CUBEMAP_NEGATIVEX = 0x800,\n// DDSCAPS2_CUBEMAP_POSITIVEY = 0x1000,\n// DDSCAPS2_CUBEMAP_NEGATIVEY = 0x2000,\n// DDSCAPS2_CUBEMAP_POSITIVEZ = 0x4000,\n// DDSCAPS2_CUBEMAP_NEGATIVEZ = 0x8000,\n// DDSCAPS2_VOLUME = 0x200000;\nconst //DDPF_ALPHAPIXELS = 0x1,\n//DDPF_ALPHA = 0x2,\nDDPF_FOURCC = 0x4, DDPF_RGB = 0x40, \n//DDPF_YUV = 0x200,\nDDPF_LUMINANCE = 0x20000;\nfunction FourCCToInt32(value) {\n return value.charCodeAt(0) + (value.charCodeAt(1) << 8) + (value.charCodeAt(2) << 16) + (value.charCodeAt(3) << 24);\n}\nfunction Int32ToFourCC(value) {\n return String.fromCharCode(value & 0xff, (value >> 8) & 0xff, (value >> 16) & 0xff, (value >> 24) & 0xff);\n}\nconst FOURCC_DXT1 = FourCCToInt32(\"DXT1\");\nconst FOURCC_DXT3 = FourCCToInt32(\"DXT3\");\nconst FOURCC_DXT5 = FourCCToInt32(\"DXT5\");\nconst FOURCC_DX10 = FourCCToInt32(\"DX10\");\nconst FOURCC_D3DFMT_R16G16B16A16F = 113;\nconst FOURCC_D3DFMT_R32G32B32A32F = 116;\nconst DXGI_FORMAT_R32G32B32A32_FLOAT = 2;\nconst DXGI_FORMAT_R16G16B16A16_FLOAT = 10;\nconst DXGI_FORMAT_B8G8R8X8_UNORM = 88;\nconst headerLengthInt = 31; // The header length in 32 bit ints\n// Offsets into the header array\nconst off_magic = 0;\nconst off_size = 1;\nconst off_flags = 2;\nconst off_height = 3;\nconst off_width = 4;\nconst off_mipmapCount = 7;\nconst off_pfFlags = 20;\nconst off_pfFourCC = 21;\nconst off_RGBbpp = 22;\nconst off_RMask = 23;\nconst off_GMask = 24;\nconst off_BMask = 25;\nconst off_AMask = 26;\n// var off_caps1 = 27;\nconst off_caps2 = 28;\n// var off_caps3 = 29;\n// var off_caps4 = 30;\nconst off_dxgiFormat = 32;\n/**\n * Class used to provide DDS decompression tools\n */\nexport class DDSTools {\n /**\n * Gets DDS information from an array buffer\n * @param data defines the array buffer view to read data from\n * @returns the DDS information\n */\n static GetDDSInfo(data) {\n const header = new Int32Array(data.buffer, data.byteOffset, headerLengthInt);\n const extendedHeader = new Int32Array(data.buffer, data.byteOffset, headerLengthInt + 4);\n let mipmapCount = 1;\n if (header[off_flags] & DDSD_MIPMAPCOUNT) {\n mipmapCount = Math.max(1, header[off_mipmapCount]);\n }\n const fourCC = header[off_pfFourCC];\n const dxgiFormat = fourCC === FOURCC_DX10 ? extendedHeader[off_dxgiFormat] : 0;\n let textureType = Constants.TEXTURETYPE_UNSIGNED_BYTE;\n switch (fourCC) {\n case FOURCC_D3DFMT_R16G16B16A16F:\n textureType = Constants.TEXTURETYPE_HALF_FLOAT;\n break;\n case FOURCC_D3DFMT_R32G32B32A32F:\n textureType = Constants.TEXTURETYPE_FLOAT;\n break;\n case FOURCC_DX10:\n if (dxgiFormat === DXGI_FORMAT_R16G16B16A16_FLOAT) {\n textureType = Constants.TEXTURETYPE_HALF_FLOAT;\n break;\n }\n if (dxgiFormat === DXGI_FORMAT_R32G32B32A32_FLOAT) {\n textureType = Constants.TEXTURETYPE_FLOAT;\n break;\n }\n }\n return {\n width: header[off_width],\n height: header[off_height],\n mipmapCount: mipmapCount,\n isFourCC: (header[off_pfFlags] & DDPF_FOURCC) === DDPF_FOURCC,\n isRGB: (header[off_pfFlags] & DDPF_RGB) === DDPF_RGB,\n isLuminance: (header[off_pfFlags] & DDPF_LUMINANCE) === DDPF_LUMINANCE,\n isCube: (header[off_caps2] & DDSCAPS2_CUBEMAP) === DDSCAPS2_CUBEMAP,\n isCompressed: fourCC === FOURCC_DXT1 || fourCC === FOURCC_DXT3 || fourCC === FOURCC_DXT5,\n dxgiFormat: dxgiFormat,\n textureType: textureType,\n };\n }\n static _GetHalfFloatAsFloatRGBAArrayBuffer(width, height, dataOffset, dataLength, arrayBuffer, lod) {\n const destArray = new Float32Array(dataLength);\n const srcData = new Uint16Array(arrayBuffer, dataOffset);\n let index = 0;\n for (let y = 0; y < height; y++) {\n for (let x = 0; x < width; x++) {\n const srcPos = (x + y * width) * 4;\n destArray[index] = FromHalfFloat(srcData[srcPos]);\n destArray[index + 1] = FromHalfFloat(srcData[srcPos + 1]);\n destArray[index + 2] = FromHalfFloat(srcData[srcPos + 2]);\n if (DDSTools.StoreLODInAlphaChannel) {\n destArray[index + 3] = lod;\n }\n else {\n destArray[index + 3] = FromHalfFloat(srcData[srcPos + 3]);\n }\n index += 4;\n }\n }\n return destArray;\n }\n static _GetHalfFloatRGBAArrayBuffer(width, height, dataOffset, dataLength, arrayBuffer, lod) {\n if (DDSTools.StoreLODInAlphaChannel) {\n const destArray = new Uint16Array(dataLength);\n const srcData = new Uint16Array(arrayBuffer, dataOffset);\n let index = 0;\n for (let y = 0; y < height; y++) {\n for (let x = 0; x < width; x++) {\n const srcPos = (x + y * width) * 4;\n destArray[index] = srcData[srcPos];\n destArray[index + 1] = srcData[srcPos + 1];\n destArray[index + 2] = srcData[srcPos + 2];\n destArray[index + 3] = ToHalfFloat(lod);\n index += 4;\n }\n }\n return destArray;\n }\n return new Uint16Array(arrayBuffer, dataOffset, dataLength);\n }\n static _GetFloatRGBAArrayBuffer(width, height, dataOffset, dataLength, arrayBuffer, lod) {\n if (DDSTools.StoreLODInAlphaChannel) {\n const destArray = new Float32Array(dataLength);\n const srcData = new Float32Array(arrayBuffer, dataOffset);\n let index = 0;\n for (let y = 0; y < height; y++) {\n for (let x = 0; x < width; x++) {\n const srcPos = (x + y * width) * 4;\n destArray[index] = srcData[srcPos];\n destArray[index + 1] = srcData[srcPos + 1];\n destArray[index + 2] = srcData[srcPos + 2];\n destArray[index + 3] = lod;\n index += 4;\n }\n }\n return destArray;\n }\n return new Float32Array(arrayBuffer, dataOffset, dataLength);\n }\n static _GetFloatAsHalfFloatRGBAArrayBuffer(width, height, dataOffset, dataLength, arrayBuffer, lod) {\n const destArray = new Uint16Array(dataLength);\n const srcData = new Float32Array(arrayBuffer, dataOffset);\n let index = 0;\n for (let y = 0; y < height; y++) {\n for (let x = 0; x < width; x++) {\n destArray[index] = ToHalfFloat(srcData[index]);\n destArray[index + 1] = ToHalfFloat(srcData[index + 1]);\n destArray[index + 2] = ToHalfFloat(srcData[index + 2]);\n if (DDSTools.StoreLODInAlphaChannel) {\n destArray[index + 3] = ToHalfFloat(lod);\n }\n else {\n destArray[index + 3] = ToHalfFloat(srcData[index + 3]);\n }\n index += 4;\n }\n }\n return destArray;\n }\n static _GetFloatAsUIntRGBAArrayBuffer(width, height, dataOffset, dataLength, arrayBuffer, lod) {\n const destArray = new Uint8Array(dataLength);\n const srcData = new Float32Array(arrayBuffer, dataOffset);\n let index = 0;\n for (let y = 0; y < height; y++) {\n for (let x = 0; x < width; x++) {\n const srcPos = (x + y * width) * 4;\n destArray[index] = Clamp(srcData[srcPos]) * 255;\n destArray[index + 1] = Clamp(srcData[srcPos + 1]) * 255;\n destArray[index + 2] = Clamp(srcData[srcPos + 2]) * 255;\n if (DDSTools.StoreLODInAlphaChannel) {\n destArray[index + 3] = lod;\n }\n else {\n destArray[index + 3] = Clamp(srcData[srcPos + 3]) * 255;\n }\n index += 4;\n }\n }\n return destArray;\n }\n static _GetHalfFloatAsUIntRGBAArrayBuffer(width, height, dataOffset, dataLength, arrayBuffer, lod) {\n const destArray = new Uint8Array(dataLength);\n const srcData = new Uint16Array(arrayBuffer, dataOffset);\n let index = 0;\n for (let y = 0; y < height; y++) {\n for (let x = 0; x < width; x++) {\n const srcPos = (x + y * width) * 4;\n destArray[index] = Clamp(FromHalfFloat(srcData[srcPos])) * 255;\n destArray[index + 1] = Clamp(FromHalfFloat(srcData[srcPos + 1])) * 255;\n destArray[index + 2] = Clamp(FromHalfFloat(srcData[srcPos + 2])) * 255;\n if (DDSTools.StoreLODInAlphaChannel) {\n destArray[index + 3] = lod;\n }\n else {\n destArray[index + 3] = Clamp(FromHalfFloat(srcData[srcPos + 3])) * 255;\n }\n index += 4;\n }\n }\n return destArray;\n }\n static _GetRGBAArrayBuffer(width, height, dataOffset, dataLength, arrayBuffer, rOffset, gOffset, bOffset, aOffset) {\n const byteArray = new Uint8Array(dataLength);\n const srcData = new Uint8Array(arrayBuffer, dataOffset);\n let index = 0;\n for (let y = 0; y < height; y++) {\n for (let x = 0; x < width; x++) {\n const srcPos = (x + y * width) * 4;\n byteArray[index] = srcData[srcPos + rOffset];\n byteArray[index + 1] = srcData[srcPos + gOffset];\n byteArray[index + 2] = srcData[srcPos + bOffset];\n byteArray[index + 3] = srcData[srcPos + aOffset];\n index += 4;\n }\n }\n return byteArray;\n }\n static _ExtractLongWordOrder(value) {\n if (value === 0 || value === 255 || value === -16777216) {\n return 0;\n }\n return 1 + DDSTools._ExtractLongWordOrder(value >> 8);\n }\n static _GetRGBArrayBuffer(width, height, dataOffset, dataLength, arrayBuffer, rOffset, gOffset, bOffset) {\n const byteArray = new Uint8Array(dataLength);\n const srcData = new Uint8Array(arrayBuffer, dataOffset);\n let index = 0;\n for (let y = 0; y < height; y++) {\n for (let x = 0; x < width; x++) {\n const srcPos = (x + y * width) * 3;\n byteArray[index] = srcData[srcPos + rOffset];\n byteArray[index + 1] = srcData[srcPos + gOffset];\n byteArray[index + 2] = srcData[srcPos + bOffset];\n index += 3;\n }\n }\n return byteArray;\n }\n static _GetLuminanceArrayBuffer(width, height, dataOffset, dataLength, arrayBuffer) {\n const byteArray = new Uint8Array(dataLength);\n const srcData = new Uint8Array(arrayBuffer, dataOffset);\n let index = 0;\n for (let y = 0; y < height; y++) {\n for (let x = 0; x < width; x++) {\n const srcPos = x + y * width;\n byteArray[index] = srcData[srcPos];\n index++;\n }\n }\n return byteArray;\n }\n /**\n * Uploads DDS Levels to a Babylon Texture\n * @internal\n */\n static UploadDDSLevels(engine, texture, data, info, loadMipmaps, faces, lodIndex = -1, currentFace, destTypeMustBeFilterable = true) {\n let sphericalPolynomialFaces = null;\n if (info.sphericalPolynomial) {\n sphericalPolynomialFaces = [];\n }\n const ext = !!engine.getCaps().s3tc;\n // TODO WEBGPU Once generateMipMaps is split into generateMipMaps + hasMipMaps in InternalTexture this line can be removed\n texture.generateMipMaps = loadMipmaps;\n const header = new Int32Array(data.buffer, data.byteOffset, headerLengthInt);\n let fourCC, width, height, dataLength = 0, dataOffset;\n let byteArray, mipmapCount, mip;\n let internalCompressedFormat = 0;\n let blockBytes = 1;\n if (header[off_magic] !== DDS_MAGIC) {\n Logger.Error(\"Invalid magic number in DDS header\");\n return;\n }\n if (!info.isFourCC && !info.isRGB && !info.isLuminance) {\n Logger.Error(\"Unsupported format, must contain a FourCC, RGB or LUMINANCE code\");\n return;\n }\n if (info.isCompressed && !ext) {\n Logger.Error(\"Compressed textures are not supported on this platform.\");\n return;\n }\n let bpp = header[off_RGBbpp];\n dataOffset = header[off_size] + 4;\n let computeFormats = false;\n if (info.isFourCC) {\n fourCC = header[off_pfFourCC];\n switch (fourCC) {\n case FOURCC_DXT1:\n blockBytes = 8;\n internalCompressedFormat = Constants.TEXTUREFORMAT_COMPRESSED_RGBA_S3TC_DXT1;\n break;\n case FOURCC_DXT3:\n blockBytes = 16;\n internalCompressedFormat = Constants.TEXTUREFORMAT_COMPRESSED_RGBA_S3TC_DXT3;\n break;\n case FOURCC_DXT5:\n blockBytes = 16;\n internalCompressedFormat = Constants.TEXTUREFORMAT_COMPRESSED_RGBA_S3TC_DXT5;\n break;\n case FOURCC_D3DFMT_R16G16B16A16F:\n computeFormats = true;\n bpp = 64;\n break;\n case FOURCC_D3DFMT_R32G32B32A32F:\n computeFormats = true;\n bpp = 128;\n break;\n case FOURCC_DX10: {\n // There is an additionnal header so dataOffset need to be changed\n dataOffset += 5 * 4; // 5 uints\n let supported = false;\n switch (info.dxgiFormat) {\n case DXGI_FORMAT_R16G16B16A16_FLOAT:\n computeFormats = true;\n bpp = 64;\n supported = true;\n break;\n case DXGI_FORMAT_R32G32B32A32_FLOAT:\n computeFormats = true;\n bpp = 128;\n supported = true;\n break;\n case DXGI_FORMAT_B8G8R8X8_UNORM:\n info.isRGB = true;\n info.isFourCC = false;\n bpp = 32;\n supported = true;\n break;\n }\n if (supported) {\n break;\n }\n }\n // eslint-disable-next-line no-fallthrough\n default:\n Logger.Error([\"Unsupported FourCC code:\", Int32ToFourCC(fourCC)]);\n return;\n }\n }\n const rOffset = DDSTools._ExtractLongWordOrder(header[off_RMask]);\n const gOffset = DDSTools._ExtractLongWordOrder(header[off_GMask]);\n const bOffset = DDSTools._ExtractLongWordOrder(header[off_BMask]);\n const aOffset = DDSTools._ExtractLongWordOrder(header[off_AMask]);\n if (computeFormats) {\n internalCompressedFormat = engine._getRGBABufferInternalSizedFormat(info.textureType);\n }\n mipmapCount = 1;\n if (header[off_flags] & DDSD_MIPMAPCOUNT && loadMipmaps !== false) {\n mipmapCount = Math.max(1, header[off_mipmapCount]);\n }\n const startFace = currentFace || 0;\n const caps = engine.getCaps();\n for (let face = startFace; face < faces; face++) {\n width = header[off_width];\n height = header[off_height];\n for (mip = 0; mip < mipmapCount; ++mip) {\n if (lodIndex === -1 || lodIndex === mip) {\n // In case of fixed LOD, if the lod has just been uploaded, early exit.\n const i = lodIndex === -1 ? mip : 0;\n if (!info.isCompressed && info.isFourCC) {\n texture.format = Constants.TEXTUREFORMAT_RGBA;\n dataLength = width * height * 4;\n let floatArray = null;\n if (engine._badOS || engine._badDesktopOS || (!caps.textureHalfFloat && !caps.textureFloat)) {\n // Required because iOS has many issues with float and half float generation\n if (bpp === 128) {\n floatArray = DDSTools._GetFloatAsUIntRGBAArrayBuffer(width, height, data.byteOffset + dataOffset, dataLength, data.buffer, i);\n if (sphericalPolynomialFaces && i == 0) {\n sphericalPolynomialFaces.push(DDSTools._GetFloatRGBAArrayBuffer(width, height, data.byteOffset + dataOffset, dataLength, data.buffer, i));\n }\n }\n else if (bpp === 64) {\n floatArray = DDSTools._GetHalfFloatAsUIntRGBAArrayBuffer(width, height, data.byteOffset + dataOffset, dataLength, data.buffer, i);\n if (sphericalPolynomialFaces && i == 0) {\n sphericalPolynomialFaces.push(DDSTools._GetHalfFloatAsFloatRGBAArrayBuffer(width, height, data.byteOffset + dataOffset, dataLength, data.buffer, i));\n }\n }\n texture.type = Constants.TEXTURETYPE_UNSIGNED_BYTE;\n }\n else {\n const floatAvailable = caps.textureFloat && ((destTypeMustBeFilterable && caps.textureFloatLinearFiltering) || !destTypeMustBeFilterable);\n const halfFloatAvailable = caps.textureHalfFloat && ((destTypeMustBeFilterable && caps.textureHalfFloatLinearFiltering) || !destTypeMustBeFilterable);\n const destType = (bpp === 128 || (bpp === 64 && !halfFloatAvailable)) && floatAvailable\n ? Constants.TEXTURETYPE_FLOAT\n : (bpp === 64 || (bpp === 128 && !floatAvailable)) && halfFloatAvailable\n ? Constants.TEXTURETYPE_HALF_FLOAT\n : Constants.TEXTURETYPE_UNSIGNED_BYTE;\n let dataGetter;\n let dataGetterPolynomial = null;\n switch (bpp) {\n case 128: {\n switch (destType) {\n case Constants.TEXTURETYPE_FLOAT:\n dataGetter = DDSTools._GetFloatRGBAArrayBuffer;\n dataGetterPolynomial = null;\n break;\n case Constants.TEXTURETYPE_HALF_FLOAT:\n dataGetter = DDSTools._GetFloatAsHalfFloatRGBAArrayBuffer;\n dataGetterPolynomial = DDSTools._GetFloatRGBAArrayBuffer;\n break;\n case Constants.TEXTURETYPE_UNSIGNED_BYTE:\n dataGetter = DDSTools._GetFloatAsUIntRGBAArrayBuffer;\n dataGetterPolynomial = DDSTools._GetFloatRGBAArrayBuffer;\n break;\n }\n break;\n }\n default: {\n // 64 bpp\n switch (destType) {\n case Constants.TEXTURETYPE_FLOAT:\n dataGetter = DDSTools._GetHalfFloatAsFloatRGBAArrayBuffer;\n dataGetterPolynomial = null;\n break;\n case Constants.TEXTURETYPE_HALF_FLOAT:\n dataGetter = DDSTools._GetHalfFloatRGBAArrayBuffer;\n dataGetterPolynomial = DDSTools._GetHalfFloatAsFloatRGBAArrayBuffer;\n break;\n case Constants.TEXTURETYPE_UNSIGNED_BYTE:\n dataGetter = DDSTools._GetHalfFloatAsUIntRGBAArrayBuffer;\n dataGetterPolynomial = DDSTools._GetHalfFloatAsFloatRGBAArrayBuffer;\n break;\n }\n break;\n }\n }\n texture.type = destType;\n floatArray = dataGetter(width, height, data.byteOffset + dataOffset, dataLength, data.buffer, i);\n if (sphericalPolynomialFaces && i == 0) {\n sphericalPolynomialFaces.push(dataGetterPolynomial ? dataGetterPolynomial(width, height, data.byteOffset + dataOffset, dataLength, data.buffer, i) : floatArray);\n }\n }\n if (floatArray) {\n engine._uploadDataToTextureDirectly(texture, floatArray, face, i);\n }\n }\n else if (info.isRGB) {\n texture.type = Constants.TEXTURETYPE_UNSIGNED_BYTE;\n if (bpp === 24) {\n texture.format = Constants.TEXTUREFORMAT_RGB;\n dataLength = width * height * 3;\n byteArray = DDSTools._GetRGBArrayBuffer(width, height, data.byteOffset + dataOffset, dataLength, data.buffer, rOffset, gOffset, bOffset);\n engine._uploadDataToTextureDirectly(texture, byteArray, face, i);\n }\n else {\n // 32\n texture.format = Constants.TEXTUREFORMAT_RGBA;\n dataLength = width * height * 4;\n byteArray = DDSTools._GetRGBAArrayBuffer(width, height, data.byteOffset + dataOffset, dataLength, data.buffer, rOffset, gOffset, bOffset, aOffset);\n engine._uploadDataToTextureDirectly(texture, byteArray, face, i);\n }\n }\n else if (info.isLuminance) {\n const unpackAlignment = engine._getUnpackAlignement();\n const unpaddedRowSize = width;\n const paddedRowSize = Math.floor((width + unpackAlignment - 1) / unpackAlignment) * unpackAlignment;\n dataLength = paddedRowSize * (height - 1) + unpaddedRowSize;\n byteArray = DDSTools._GetLuminanceArrayBuffer(width, height, data.byteOffset + dataOffset, dataLength, data.buffer);\n texture.format = Constants.TEXTUREFORMAT_LUMINANCE;\n texture.type = Constants.TEXTURETYPE_UNSIGNED_BYTE;\n engine._uploadDataToTextureDirectly(texture, byteArray, face, i);\n }\n else {\n dataLength = (((Math.max(4, width) / 4) * Math.max(4, height)) / 4) * blockBytes;\n byteArray = new Uint8Array(data.buffer, data.byteOffset + dataOffset, dataLength);\n texture.type = Constants.TEXTURETYPE_UNSIGNED_BYTE;\n engine._uploadCompressedDataToTextureDirectly(texture, internalCompressedFormat, width, height, byteArray, face, i);\n }\n }\n dataOffset += bpp ? width * height * (bpp / 8) : dataLength;\n width *= 0.5;\n height *= 0.5;\n width = Math.max(1.0, width);\n height = Math.max(1.0, height);\n }\n if (currentFace !== undefined) {\n // Loading a single face\n break;\n }\n }\n if (sphericalPolynomialFaces && sphericalPolynomialFaces.length > 0) {\n info.sphericalPolynomial = CubeMapToSphericalPolynomialTools.ConvertCubeMapToSphericalPolynomial({\n size: header[off_width],\n right: sphericalPolynomialFaces[0],\n left: sphericalPolynomialFaces[1],\n up: sphericalPolynomialFaces[2],\n down: sphericalPolynomialFaces[3],\n front: sphericalPolynomialFaces[4],\n back: sphericalPolynomialFaces[5],\n format: Constants.TEXTUREFORMAT_RGBA,\n type: Constants.TEXTURETYPE_FLOAT,\n gammaSpace: false,\n });\n }\n else {\n info.sphericalPolynomial = undefined;\n }\n }\n}\n/**\n * Gets or sets a boolean indicating that LOD info is stored in alpha channel (false by default)\n */\nDDSTools.StoreLODInAlphaChannel = false;\n//# sourceMappingURL=dds.js.map"],"names":[],"mappings":";;AAAA;AAOA;AACA;AACA;AACA,MAAM,SAAS,GAAG,UAAU;AAC5B;AACA;AACA;AACA;AACA;AACA,gBAAgB,GAAG,OAAO;AAC1B;AACA;AACA;AACA;AACA;AACA,MAAM,gBAAgB,GAAG,KAAK;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG,GAAG,EAAE,QAAQ,GAAG,IAAI;AAClC;AACA,cAAc,GAAG,OAAO;AACxB,SAAS,aAAa,CAAC,KAAK,EAAE;AAC9B,IAAI,OAAO,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,IAAI,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;AACvH;AACA,SAAS,aAAa,CAAC,KAAK,EAAE;AAC9B,IAAI,OAAO,MAAM,CAAC,YAAY,CAAC,KAAK,GAAG,IAAI,EAAE,CAAC,KAAK,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC,KAAK,IAAI,EAAE,IAAI,IAAI,EAAE,CAAC,KAAK,IAAI,EAAE,IAAI,IAAI,CAAC;AAC7G;AACA,MAAM,WAAW,GAAG,aAAa,CAAC,MAAM,CAAC;AACzC,MAAM,WAAW,GAAG,aAAa,CAAC,MAAM,CAAC;AACzC,MAAM,WAAW,GAAG,aAAa,CAAC,MAAM,CAAC;AACzC,MAAM,WAAW,GAAG,aAAa,CAAC,MAAM,CAAC;AACzC,MAAM,2BAA2B,GAAG,GAAG;AACvC,MAAM,2BAA2B,GAAG,GAAG;AACvC,MAAM,8BAA8B,GAAG,CAAC;AACxC,MAAM,8BAA8B,GAAG,EAAE;AACzC,MAAM,0BAA0B,GAAG,EAAE;AACrC,MAAM,eAAe,GAAG,EAAE,CAAC;AAC3B;AACA,MAAM,SAAS,GAAG,CAAC;AACnB,MAAM,QAAQ,GAAG,CAAC;AAClB,MAAM,SAAS,GAAG,CAAC;AACnB,MAAM,UAAU,GAAG,CAAC;AACpB,MAAM,SAAS,GAAG,CAAC;AACnB,MAAM,eAAe,GAAG,CAAC;AACzB,MAAM,WAAW,GAAG,EAAE;AACtB,MAAM,YAAY,GAAG,EAAE;AACvB,MAAM,UAAU,GAAG,EAAE;AACrB,MAAM,SAAS,GAAG,EAAE;AACpB,MAAM,SAAS,GAAG,EAAE;AACpB,MAAM,SAAS,GAAG,EAAE;AACpB,MAAM,SAAS,GAAG,EAAE;AACpB;AACA,MAAM,SAAS,GAAG,EAAE;AACpB;AACA;AACA,MAAM,cAAc,GAAG,EAAE;AACzB;AACA;AACA;AACO,MAAM,QAAQ,CAAC;AACtB;AACA;AACA;AACA;AACA;AACA,IAAI,OAAO,UAAU,CAAC,IAAI,EAAE;AAC5B,QAAQ,MAAM,MAAM,GAAG,IAAI,UAAU,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,UAAU,EAAE,eAAe,CAAC;AACpF,QAAQ,MAAM,cAAc,GAAG,IAAI,UAAU,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,UAAU,EAAE,eAAe,GAAG,CAAC,CAAC;AAChG,QAAQ,IAAI,WAAW,GAAG,CAAC;AAC3B,QAAQ,IAAI,MAAM,CAAC,SAAS,CAAC,GAAG,gBAAgB,EAAE;AAClD,YAAY,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,eAAe,CAAC,CAAC;AAC9D;AACA,QAAQ,MAAM,MAAM,GAAG,MAAM,CAAC,YAAY,CAAC;AAC3C,QAAQ,MAAM,UAAU,GAAG,MAAM,KAAK,WAAW,GAAG,cAAc,CAAC,cAAc,CAAC,GAAG,CAAC;AACtF,QAAQ,IAAI,WAAW,GAAG,SAAS,CAAC,yBAAyB;AAC7D,QAAQ,QAAQ,MAAM;AACtB,YAAY,KAAK,2BAA2B;AAC5C,gBAAgB,WAAW,GAAG,SAAS,CAAC,sBAAsB;AAC9D,gBAAgB;AAChB,YAAY,KAAK,2BAA2B;AAC5C,gBAAgB,WAAW,GAAG,SAAS,CAAC,iBAAiB;AACzD,gBAAgB;AAChB,YAAY,KAAK,WAAW;AAC5B,gBAAgB,IAAI,UAAU,KAAK,8BAA8B,EAAE;AACnE,oBAAoB,WAAW,GAAG,SAAS,CAAC,sBAAsB;AAClE,oBAAoB;AACpB;AACA,gBAAgB,IAAI,UAAU,KAAK,8BAA8B,EAAE;AACnE,oBAAoB,WAAW,GAAG,SAAS,CAAC,iBAAiB;AAC7D,oBAAoB;AACpB;AACA;AACA,QAAQ,OAAO;AACf,YAAY,KAAK,EAAE,MAAM,CAAC,SAAS,CAAC;AACpC,YAAY,MAAM,EAAE,MAAM,CAAC,UAAU,CAAC;AACtC,YAAY,WAAW,EAAE,WAAW;AACpC,YAAY,QAAQ,EAAE,CAAC,MAAM,CAAC,WAAW,CAAC,GAAG,WAAW,MAAM,WAAW;AACzE,YAAY,KAAK,EAAE,CAAC,MAAM,CAAC,WAAW,CAAC,GAAG,QAAQ,MAAM,QAAQ;AAChE,YAAY,WAAW,EAAE,CAAC,MAAM,CAAC,WAAW,CAAC,GAAG,cAAc,MAAM,cAAc;AAClF,YAAY,MAAM,EAAE,CAAC,MAAM,CAAC,SAAS,CAAC,GAAG,gBAAgB,MAAM,gBAAgB;AAC/E,YAAY,YAAY,EAAE,MAAM,KAAK,WAAW,IAAI,MAAM,KAAK,WAAW,IAAI,MAAM,KAAK,WAAW;AACpG,YAAY,UAAU,EAAE,UAAU;AAClC,YAAY,WAAW,EAAE,WAAW;AACpC,SAAS;AACT;AACA,IAAI,OAAO,mCAAmC,CAAC,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,WAAW,EAAE,GAAG,EAAE;AACxG,QAAQ,MAAM,SAAS,GAAG,IAAI,YAAY,CAAC,UAAU,CAAC;AACtD,QAAQ,MAAM,OAAO,GAAG,IAAI,WAAW,CAAC,WAAW,EAAE,UAAU,CAAC;AAChE,QAAQ,IAAI,KAAK,GAAG,CAAC;AACrB,QAAQ,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,EAAE;AACzC,YAAY,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,EAAE;AAC5C,gBAAgB,MAAM,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,IAAI,CAAC;AAClD,gBAAgB,SAAS,CAAC,KAAK,CAAC,GAAG,aAAa,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;AACjE,gBAAgB,SAAS,CAAC,KAAK,GAAG,CAAC,CAAC,GAAG,aAAa,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;AACzE,gBAAgB,SAAS,CAAC,KAAK,GAAG,CAAC,CAAC,GAAG,aAAa,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;AACzE,gBAAgB,IAAI,QAAQ,CAAC,sBAAsB,EAAE;AACrD,oBAAoB,SAAS,CAAC,KAAK,GAAG,CAAC,CAAC,GAAG,GAAG;AAC9C;AACA,qBAAqB;AACrB,oBAAoB,SAAS,CAAC,KAAK,GAAG,CAAC,CAAC,GAAG,aAAa,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;AAC7E;AACA,gBAAgB,KAAK,IAAI,CAAC;AAC1B;AACA;AACA,QAAQ,OAAO,SAAS;AACxB;AACA,IAAI,OAAO,4BAA4B,CAAC,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,WAAW,EAAE,GAAG,EAAE;AACjG,QAAQ,IAAI,QAAQ,CAAC,sBAAsB,EAAE;AAC7C,YAAY,MAAM,SAAS,GAAG,IAAI,WAAW,CAAC,UAAU,CAAC;AACzD,YAAY,MAAM,OAAO,GAAG,IAAI,WAAW,CAAC,WAAW,EAAE,UAAU,CAAC;AACpE,YAAY,IAAI,KAAK,GAAG,CAAC;AACzB,YAAY,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,EAAE;AAC7C,gBAAgB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,EAAE;AAChD,oBAAoB,MAAM,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,IAAI,CAAC;AACtD,oBAAoB,SAAS,CAAC,KAAK,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC;AACtD,oBAAoB,SAAS,CAAC,KAAK,GAAG,CAAC,CAAC,GAAG,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC;AAC9D,oBAAoB,SAAS,CAAC,KAAK,GAAG,CAAC,CAAC,GAAG,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC;AAC9D,oBAAoB,SAAS,CAAC,KAAK,GAAG,CAAC,CAAC,GAAG,WAAW,CAAC,GAAG,CAAC;AAC3D,oBAAoB,KAAK,IAAI,CAAC;AAC9B;AACA;AACA,YAAY,OAAO,SAAS;AAC5B;AACA,QAAQ,OAAO,IAAI,WAAW,CAAC,WAAW,EAAE,UAAU,EAAE,UAAU,CAAC;AACnE;AACA,IAAI,OAAO,wBAAwB,CAAC,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,WAAW,EAAE,GAAG,EAAE;AAC7F,QAAQ,IAAI,QAAQ,CAAC,sBAAsB,EAAE;AAC7C,YAAY,MAAM,SAAS,GAAG,IAAI,YAAY,CAAC,UAAU,CAAC;AAC1D,YAAY,MAAM,OAAO,GAAG,IAAI,YAAY,CAAC,WAAW,EAAE,UAAU,CAAC;AACrE,YAAY,IAAI,KAAK,GAAG,CAAC;AACzB,YAAY,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,EAAE;AAC7C,gBAAgB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,EAAE;AAChD,oBAAoB,MAAM,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,IAAI,CAAC;AACtD,oBAAoB,SAAS,CAAC,KAAK,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC;AACtD,oBAAoB,SAAS,CAAC,KAAK,GAAG,CAAC,CAAC,GAAG,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC;AAC9D,oBAAoB,SAAS,CAAC,KAAK,GAAG,CAAC,CAAC,GAAG,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC;AAC9D,oBAAoB,SAAS,CAAC,KAAK,GAAG,CAAC,CAAC,GAAG,GAAG;AAC9C,oBAAoB,KAAK,IAAI,CAAC;AAC9B;AACA;AACA,YAAY,OAAO,SAAS;AAC5B;AACA,QAAQ,OAAO,IAAI,YAAY,CAAC,WAAW,EAAE,UAAU,EAAE,UAAU,CAAC;AACpE;AACA,IAAI,OAAO,mCAAmC,CAAC,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,WAAW,EAAE,GAAG,EAAE;AACxG,QAAQ,MAAM,SAAS,GAAG,IAAI,WAAW,CAAC,UAAU,CAAC;AACrD,QAAQ,MAAM,OAAO,GAAG,IAAI,YAAY,CAAC,WAAW,EAAE,UAAU,CAAC;AACjE,QAAQ,IAAI,KAAK,GAAG,CAAC;AACrB,QAAQ,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,EAAE;AACzC,YAAY,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,EAAE;AAC5C,gBAAgB,SAAS,CAAC,KAAK,CAAC,GAAG,WAAW,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AAC9D,gBAAgB,SAAS,CAAC,KAAK,GAAG,CAAC,CAAC,GAAG,WAAW,CAAC,OAAO,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;AACtE,gBAAgB,SAAS,CAAC,KAAK,GAAG,CAAC,CAAC,GAAG,WAAW,CAAC,OAAO,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;AACtE,gBAAgB,IAAI,QAAQ,CAAC,sBAAsB,EAAE;AACrD,oBAAoB,SAAS,CAAC,KAAK,GAAG,CAAC,CAAC,GAAG,WAAW,CAAC,GAAG,CAAC;AAC3D;AACA,qBAAqB;AACrB,oBAAoB,SAAS,CAAC,KAAK,GAAG,CAAC,CAAC,GAAG,WAAW,CAAC,OAAO,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;AAC1E;AACA,gBAAgB,KAAK,IAAI,CAAC;AAC1B;AACA;AACA,QAAQ,OAAO,SAAS;AACxB;AACA,IAAI,OAAO,8BAA8B,CAAC,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,WAAW,EAAE,GAAG,EAAE;AACnG,QAAQ,MAAM,SAAS,GAAG,IAAI,UAAU,CAAC,UAAU,CAAC;AACpD,QAAQ,MAAM,OAAO,GAAG,IAAI,YAAY,CAAC,WAAW,EAAE,UAAU,CAAC;AACjE,QAAQ,IAAI,KAAK,GAAG,CAAC;AACrB,QAAQ,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,EAAE;AACzC,YAAY,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,EAAE;AAC5C,gBAAgB,MAAM,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,IAAI,CAAC;AAClD,gBAAgB,SAAS,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,GAAG;AAC/D,gBAAgB,SAAS,CAAC,KAAK,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG;AACvE,gBAAgB,SAAS,CAAC,KAAK,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG;AACvE,gBAAgB,IAAI,QAAQ,CAAC,sBAAsB,EAAE;AACrD,oBAAoB,SAAS,CAAC,KAAK,GAAG,CAAC,CAAC,GAAG,GAAG;AAC9C;AACA,qBAAqB;AACrB,oBAAoB,SAAS,CAAC,KAAK,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG;AAC3E;AACA,gBAAgB,KAAK,IAAI,CAAC;AAC1B;AACA;AACA,QAAQ,OAAO,SAAS;AACxB;AACA,IAAI,OAAO,kCAAkC,CAAC,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,WAAW,EAAE,GAAG,EAAE;AACvG,QAAQ,MAAM,SAAS,GAAG,IAAI,UAAU,CAAC,UAAU,CAAC;AACpD,QAAQ,MAAM,OAAO,GAAG,IAAI,WAAW,CAAC,WAAW,EAAE,UAAU,CAAC;AAChE,QAAQ,IAAI,KAAK,GAAG,CAAC;AACrB,QAAQ,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,EAAE;AACzC,YAAY,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,EAAE;AAC5C,gBAAgB,MAAM,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,IAAI,CAAC;AAClD,gBAAgB,SAAS,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,aAAa,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,GAAG;AAC9E,gBAAgB,SAAS,CAAC,KAAK,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,aAAa,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG;AACtF,gBAAgB,SAAS,CAAC,KAAK,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,aAAa,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG;AACtF,gBAAgB,IAAI,QAAQ,CAAC,sBAAsB,EAAE;AACrD,oBAAoB,SAAS,CAAC,KAAK,GAAG,CAAC,CAAC,GAAG,GAAG;AAC9C;AACA,qBAAqB;AACrB,oBAAoB,SAAS,CAAC,KAAK,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,aAAa,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG;AAC1F;AACA,gBAAgB,KAAK,IAAI,CAAC;AAC1B;AACA;AACA,QAAQ,OAAO,SAAS;AACxB;AACA,IAAI,OAAO,mBAAmB,CAAC,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,WAAW,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE;AACvH,QAAQ,MAAM,SAAS,GAAG,IAAI,UAAU,CAAC,UAAU,CAAC;AACpD,QAAQ,MAAM,OAAO,GAAG,IAAI,UAAU,CAAC,WAAW,EAAE,UAAU,CAAC;AAC/D,QAAQ,IAAI,KAAK,GAAG,CAAC;AACrB,QAAQ,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,EAAE;AACzC,YAAY,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,EAAE;AAC5C,gBAAgB,MAAM,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,IAAI,CAAC;AAClD,gBAAgB,SAAS,CAAC,KAAK,CAAC,GAAG,OAAO,CAAC,MAAM,GAAG,OAAO,CAAC;AAC5D,gBAAgB,SAAS,CAAC,KAAK,GAAG,CAAC,CAAC,GAAG,OAAO,CAAC,MAAM,GAAG,OAAO,CAAC;AAChE,gBAAgB,SAAS,CAAC,KAAK,GAAG,CAAC,CAAC,GAAG,OAAO,CAAC,MAAM,GAAG,OAAO,CAAC;AAChE,gBAAgB,SAAS,CAAC,KAAK,GAAG,CAAC,CAAC,GAAG,OAAO,CAAC,MAAM,GAAG,OAAO,CAAC;AAChE,gBAAgB,KAAK,IAAI,CAAC;AAC1B;AACA;AACA,QAAQ,OAAO,SAAS;AACxB;AACA,IAAI,OAAO,qBAAqB,CAAC,KAAK,EAAE;AACxC,QAAQ,IAAI,KAAK,KAAK,CAAC,IAAI,KAAK,KAAK,GAAG,IAAI,KAAK,KAAK,CAAC,QAAQ,EAAE;AACjE,YAAY,OAAO,CAAC;AACpB;AACA,QAAQ,OAAO,CAAC,GAAG,QAAQ,CAAC,qBAAqB,CAAC,KAAK,IAAI,CAAC,CAAC;AAC7D;AACA,IAAI,OAAO,kBAAkB,CAAC,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,WAAW,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE;AAC7G,QAAQ,MAAM,SAAS,GAAG,IAAI,UAAU,CAAC,UAAU,CAAC;AACpD,QAAQ,MAAM,OAAO,GAAG,IAAI,UAAU,CAAC,WAAW,EAAE,UAAU,CAAC;AAC/D,QAAQ,IAAI,KAAK,GAAG,CAAC;AACrB,QAAQ,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,EAAE;AACzC,YAAY,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,EAAE;AAC5C,gBAAgB,MAAM,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,IAAI,CAAC;AAClD,gBAAgB,SAAS,CAAC,KAAK,CAAC,GAAG,OAAO,CAAC,MAAM,GAAG,OAAO,CAAC;AAC5D,gBAAgB,SAAS,CAAC,KAAK,GAAG,CAAC,CAAC,GAAG,OAAO,CAAC,MAAM,GAAG,OAAO,CAAC;AAChE,gBAAgB,SAAS,CAAC,KAAK,GAAG,CAAC,CAAC,GAAG,OAAO,CAAC,MAAM,GAAG,OAAO,CAAC;AAChE,gBAAgB,KAAK,IAAI,CAAC;AAC1B;AACA;AACA,QAAQ,OAAO,SAAS;AACxB;AACA,IAAI,OAAO,wBAAwB,CAAC,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,WAAW,EAAE;AACxF,QAAQ,MAAM,SAAS,GAAG,IAAI,UAAU,CAAC,UAAU,CAAC;AACpD,QAAQ,MAAM,OAAO,GAAG,IAAI,UAAU,CAAC,WAAW,EAAE,UAAU,CAAC;AAC/D,QAAQ,IAAI,KAAK,GAAG,CAAC;AACrB,QAAQ,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,EAAE;AACzC,YAAY,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,EAAE;AAC5C,gBAAgB,MAAM,MAAM,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK;AAC5C,gBAAgB,SAAS,CAAC,KAAK,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC;AAClD,gBAAgB,KAAK,EAAE;AACvB;AACA;AACA,QAAQ,OAAO,SAAS;AACxB;AACA;AACA;AACA;AACA;AACA,IAAI,OAAO,eAAe,CAAC,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,QAAQ,GAAG,CAAC,CAAC,EAAE,WAAW,EAAE,wBAAwB,GAAG,IAAI,EAAE;AACzI,QAAQ,IAAI,wBAAwB,GAAG,IAAI;AAC3C,QAAQ,IAAI,IAAI,CAAC,mBAAmB,EAAE;AACtC,YAAY,wBAAwB,GAAG,EAAE;AACzC;AACA,QAAQ,MAAM,GAAG,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,IAAI;AAC3C;AACA,QAAQ,OAAO,CAAC,eAAe,GAAG,WAAW;AAC7C,QAAQ,MAAM,MAAM,GAAG,IAAI,UAAU,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,UAAU,EAAE,eAAe,CAAC;AACpF,QAAQ,IAAI,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,UAAU,GAAG,CAAC,EAAE,UAAU;AAC7D,QAAQ,IAAI,SAAS,EAAE,WAAW,EAAE,GAAG;AACvC,QAAQ,IAAI,wBAAwB,GAAG,CAAC;AACxC,QAAQ,IAAI,UAAU,GAAG,CAAC;AAC1B,QAAQ,IAAI,MAAM,CAAC,SAAS,CAAC,KAAK,SAAS,EAAE;AAC7C,YAAY,MAAM,CAAC,KAAK,CAAC,oCAAoC,CAAC;AAC9D,YAAY;AACZ;AACA,QAAQ,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE;AAChE,YAAY,MAAM,CAAC,KAAK,CAAC,kEAAkE,CAAC;AAC5F,YAAY;AACZ;AACA,QAAQ,IAAI,IAAI,CAAC,YAAY,IAAI,CAAC,GAAG,EAAE;AACvC,YAAY,MAAM,CAAC,KAAK,CAAC,yDAAyD,CAAC;AACnF,YAAY;AACZ;AACA,QAAQ,IAAI,GAAG,GAAG,MAAM,CAAC,UAAU,CAAC;AACpC,QAAQ,UAAU,GAAG,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC;AACzC,QAAQ,IAAI,cAAc,GAAG,KAAK;AAClC,QAAQ,IAAI,IAAI,CAAC,QAAQ,EAAE;AAC3B,YAAY,MAAM,GAAG,MAAM,CAAC,YAAY,CAAC;AACzC,YAAY,QAAQ,MAAM;AAC1B,gBAAgB,KAAK,WAAW;AAChC,oBAAoB,UAAU,GAAG,CAAC;AAClC,oBAAoB,wBAAwB,GAAG,SAAS,CAAC,uCAAuC;AAChG,oBAAoB;AACpB,gBAAgB,KAAK,WAAW;AAChC,oBAAoB,UAAU,GAAG,EAAE;AACnC,oBAAoB,wBAAwB,GAAG,SAAS,CAAC,uCAAuC;AAChG,oBAAoB;AACpB,gBAAgB,KAAK,WAAW;AAChC,oBAAoB,UAAU,GAAG,EAAE;AACnC,oBAAoB,wBAAwB,GAAG,SAAS,CAAC,uCAAuC;AAChG,oBAAoB;AACpB,gBAAgB,KAAK,2BAA2B;AAChD,oBAAoB,cAAc,GAAG,IAAI;AACzC,oBAAoB,GAAG,GAAG,EAAE;AAC5B,oBAAoB;AACpB,gBAAgB,KAAK,2BAA2B;AAChD,oBAAoB,cAAc,GAAG,IAAI;AACzC,oBAAoB,GAAG,GAAG,GAAG;AAC7B,oBAAoB;AACpB,gBAAgB,KAAK,WAAW,EAAE;AAClC;AACA,oBAAoB,UAAU,IAAI,CAAC,GAAG,CAAC,CAAC;AACxC,oBAAoB,IAAI,SAAS,GAAG,KAAK;AACzC,oBAAoB,QAAQ,IAAI,CAAC,UAAU;AAC3C,wBAAwB,KAAK,8BAA8B;AAC3D,4BAA4B,cAAc,GAAG,IAAI;AACjD,4BAA4B,GAAG,GAAG,EAAE;AACpC,4BAA4B,SAAS,GAAG,IAAI;AAC5C,4BAA4B;AAC5B,wBAAwB,KAAK,8BAA8B;AAC3D,4BAA4B,cAAc,GAAG,IAAI;AACjD,4BAA4B,GAAG,GAAG,GAAG;AACrC,4BAA4B,SAAS,GAAG,IAAI;AAC5C,4BAA4B;AAC5B,wBAAwB,KAAK,0BAA0B;AACvD,4BAA4B,IAAI,CAAC,KAAK,GAAG,IAAI;AAC7C,4BAA4B,IAAI,CAAC,QAAQ,GAAG,KAAK;AACjD,4BAA4B,GAAG,GAAG,EAAE;AACpC,4BAA4B,SAAS,GAAG,IAAI;AAC5C,4BAA4B;AAC5B;AACA,oBAAoB,IAAI,SAAS,EAAE;AACnC,wBAAwB;AACxB;AACA;AACA;AACA,gBAAgB;AAChB,oBAAoB,MAAM,CAAC,KAAK,CAAC,CAAC,0BAA0B,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC;AACrF,oBAAoB;AACpB;AACA;AACA,QAAQ,MAAM,OAAO,GAAG,QAAQ,CAAC,qBAAqB,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;AACzE,QAAQ,MAAM,OAAO,GAAG,QAAQ,CAAC,qBAAqB,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;AACzE,QAAQ,MAAM,OAAO,GAAG,QAAQ,CAAC,qBAAqB,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;AACzE,QAAQ,MAAM,OAAO,GAAG,QAAQ,CAAC,qBAAqB,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;AACzE,QAAQ,IAAI,cAAc,EAAE;AAC5B,YAAY,wBAAwB,GAAG,MAAM,CAAC,iCAAiC,CAAC,IAAI,CAAC,WAAW,CAAC;AACjG;AACA,QAAQ,WAAW,GAAG,CAAC;AACvB,QAAQ,IAAI,MAAM,CAAC,SAAS,CAAC,GAAG,gBAAgB,IAAI,WAAW,KAAK,KAAK,EAAE;AAC3E,YAAY,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,eAAe,CAAC,CAAC;AAC9D;AACA,QAAQ,MAAM,SAAS,GAAG,WAAW,IAAI,CAAC;AAC1C,QAAQ,MAAM,IAAI,GAAG,MAAM,CAAC,OAAO,EAAE;AACrC,QAAQ,KAAK,IAAI,IAAI,GAAG,SAAS,EAAE,IAAI,GAAG,KAAK,EAAE,IAAI,EAAE,EAAE;AACzD,YAAY,KAAK,GAAG,MAAM,CAAC,SAAS,CAAC;AACrC,YAAY,MAAM,GAAG,MAAM,CAAC,UAAU,CAAC;AACvC,YAAY,KAAK,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,WAAW,EAAE,EAAE,GAAG,EAAE;AACpD,gBAAgB,IAAI,QAAQ,KAAK,CAAC,CAAC,IAAI,QAAQ,KAAK,GAAG,EAAE;AACzD;AACA,oBAAoB,MAAM,CAAC,GAAG,QAAQ,KAAK,CAAC,CAAC,GAAG,GAAG,GAAG,CAAC;AACvD,oBAAoB,IAAI,CAAC,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,QAAQ,EAAE;AAC7D,wBAAwB,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,kBAAkB;AACrE,wBAAwB,UAAU,GAAG,KAAK,GAAG,MAAM,GAAG,CAAC;AACvD,wBAAwB,IAAI,UAAU,GAAG,IAAI;AAC7C,wBAAwB,IAAI,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,aAAa,KAAK,CAAC,IAAI,CAAC,gBAAgB,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE;AACrH;AACA,4BAA4B,IAAI,GAAG,KAAK,GAAG,EAAE;AAC7C,gCAAgC,UAAU,GAAG,QAAQ,CAAC,8BAA8B,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,UAAU,GAAG,UAAU,EAAE,UAAU,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;AAC7J,gCAAgC,IAAI,wBAAwB,IAAI,CAAC,IAAI,CAAC,EAAE;AACxE,oCAAoC,wBAAwB,CAAC,IAAI,CAAC,QAAQ,CAAC,wBAAwB,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,UAAU,GAAG,UAAU,EAAE,UAAU,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;AAC7K;AACA;AACA,iCAAiC,IAAI,GAAG,KAAK,EAAE,EAAE;AACjD,gCAAgC,UAAU,GAAG,QAAQ,CAAC,kCAAkC,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,UAAU,GAAG,UAAU,EAAE,UAAU,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;AACjK,gCAAgC,IAAI,wBAAwB,IAAI,CAAC,IAAI,CAAC,EAAE;AACxE,oCAAoC,wBAAwB,CAAC,IAAI,CAAC,QAAQ,CAAC,mCAAmC,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,UAAU,GAAG,UAAU,EAAE,UAAU,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;AACxL;AACA;AACA,4BAA4B,OAAO,CAAC,IAAI,GAAG,SAAS,CAAC,yBAAyB;AAC9E;AACA,6BAA6B;AAC7B,4BAA4B,MAAM,cAAc,GAAG,IAAI,CAAC,YAAY,KAAK,CAAC,wBAAwB,IAAI,IAAI,CAAC,2BAA2B,KAAK,CAAC,wBAAwB,CAAC;AACrK,4BAA4B,MAAM,kBAAkB,GAAG,IAAI,CAAC,gBAAgB,KAAK,CAAC,wBAAwB,IAAI,IAAI,CAAC,+BAA+B,KAAK,CAAC,wBAAwB,CAAC;AACjL,4BAA4B,MAAM,QAAQ,GAAG,CAAC,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,EAAE,IAAI,CAAC,kBAAkB,CAAC,KAAK;AACrG,kCAAkC,SAAS,CAAC;AAC5C,kCAAkC,CAAC,GAAG,KAAK,EAAE,KAAK,GAAG,KAAK,GAAG,IAAI,CAAC,cAAc,CAAC,KAAK;AACtF,sCAAsC,SAAS,CAAC;AAChD,sCAAsC,SAAS,CAAC,yBAAyB;AACzE,4BAA4B,IAAI,UAAU;AAC1C,4BAA4B,IAAI,oBAAoB,GAAG,IAAI;AAC3D,4BAA4B,QAAQ,GAAG;AACvC,gCAAgC,KAAK,GAAG,EAAE;AAC1C,oCAAoC,QAAQ,QAAQ;AACpD,wCAAwC,KAAK,SAAS,CAAC,iBAAiB;AACxE,4CAA4C,UAAU,GAAG,QAAQ,CAAC,wBAAwB;AAC1F,4CAA4C,oBAAoB,GAAG,IAAI;AACvE,4CAA4C;AAC5C,wCAAwC,KAAK,SAAS,CAAC,sBAAsB;AAC7E,4CAA4C,UAAU,GAAG,QAAQ,CAAC,mCAAmC;AACrG,4CAA4C,oBAAoB,GAAG,QAAQ,CAAC,wBAAwB;AACpG,4CAA4C;AAC5C,wCAAwC,KAAK,SAAS,CAAC,yBAAyB;AAChF,4CAA4C,UAAU,GAAG,QAAQ,CAAC,8BAA8B;AAChG,4CAA4C,oBAAoB,GAAG,QAAQ,CAAC,wBAAwB;AACpG,4CAA4C;AAC5C;AACA,oCAAoC;AACpC;AACA,gCAAgC,SAAS;AACzC;AACA,oCAAoC,QAAQ,QAAQ;AACpD,wCAAwC,KAAK,SAAS,CAAC,iBAAiB;AACxE,4CAA4C,UAAU,GAAG,QAAQ,CAAC,mCAAmC;AACrG,4CAA4C,oBAAoB,GAAG,IAAI;AACvE,4CAA4C;AAC5C,wCAAwC,KAAK,SAAS,CAAC,sBAAsB;AAC7E,4CAA4C,UAAU,GAAG,QAAQ,CAAC,4BAA4B;AAC9F,4CAA4C,oBAAoB,GAAG,QAAQ,CAAC,mCAAmC;AAC/G,4CAA4C;AAC5C,wCAAwC,KAAK,SAAS,CAAC,yBAAyB;AAChF,4CAA4C,UAAU,GAAG,QAAQ,CAAC,kCAAkC;AACpG,4CAA4C,oBAAoB,GAAG,QAAQ,CAAC,mCAAmC;AAC/G,4CAA4C;AAC5C;AACA,oCAAoC;AACpC;AACA;AACA,4BAA4B,OAAO,CAAC,IAAI,GAAG,QAAQ;AACnD,4BAA4B,UAAU,GAAG,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,UAAU,GAAG,UAAU,EAAE,UAAU,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;AAC5H,4BAA4B,IAAI,wBAAwB,IAAI,CAAC,IAAI,CAAC,EAAE;AACpE,gCAAgC,wBAAwB,CAAC,IAAI,CAAC,oBAAoB,GAAG,oBAAoB,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,UAAU,GAAG,UAAU,EAAE,UAAU,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,UAAU,CAAC;AAChM;AACA;AACA,wBAAwB,IAAI,UAAU,EAAE;AACxC,4BAA4B,MAAM,CAAC,4BAA4B,CAAC,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC;AAC7F;AACA;AACA,yBAAyB,IAAI,IAAI,CAAC,KAAK,EAAE;AACzC,wBAAwB,OAAO,CAAC,IAAI,GAAG,SAAS,CAAC,yBAAyB;AAC1E,wBAAwB,IAAI,GAAG,KAAK,EAAE,EAAE;AACxC,4BAA4B,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,iBAAiB;AACxE,4BAA4B,UAAU,GAAG,KAAK,GAAG,MAAM,GAAG,CAAC;AAC3D,4BAA4B,SAAS,GAAG,QAAQ,CAAC,kBAAkB,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,UAAU,GAAG,UAAU,EAAE,UAAU,EAAE,IAAI,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC;AACpK,4BAA4B,MAAM,CAAC,4BAA4B,CAAC,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;AAC5F;AACA,6BAA6B;AAC7B;AACA,4BAA4B,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,kBAAkB;AACzE,4BAA4B,UAAU,GAAG,KAAK,GAAG,MAAM,GAAG,CAAC;AAC3D,4BAA4B,SAAS,GAAG,QAAQ,CAAC,mBAAmB,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,UAAU,GAAG,UAAU,EAAE,UAAU,EAAE,IAAI,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC;AAC9K,4BAA4B,MAAM,CAAC,4BAA4B,CAAC,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;AAC5F;AACA;AACA,yBAAyB,IAAI,IAAI,CAAC,WAAW,EAAE;AAC/C,wBAAwB,MAAM,eAAe,GAAG,MAAM,CAAC,oBAAoB,EAAE;AAC7E,wBAAwB,MAAM,eAAe,GAAG,KAAK;AACrD,wBAAwB,MAAM,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,KAAK,GAAG,eAAe,GAAG,CAAC,IAAI,eAAe,CAAC,GAAG,eAAe;AAC3H,wBAAwB,UAAU,GAAG,aAAa,IAAI,MAAM,GAAG,CAAC,CAAC,GAAG,eAAe;AACnF,wBAAwB,SAAS,GAAG,QAAQ,CAAC,wBAAwB,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,UAAU,GAAG,UAAU,EAAE,UAAU,EAAE,IAAI,CAAC,MAAM,CAAC;AAC3I,wBAAwB,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,uBAAuB;AAC1E,wBAAwB,OAAO,CAAC,IAAI,GAAG,SAAS,CAAC,yBAAyB;AAC1E,wBAAwB,MAAM,CAAC,4BAA4B,CAAC,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;AACxF;AACA,yBAAyB;AACzB,wBAAwB,UAAU,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,UAAU;AACxG,wBAAwB,SAAS,GAAG,IAAI,UAAU,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,UAAU,GAAG,UAAU,EAAE,UAAU,CAAC;AACzG,wBAAwB,OAAO,CAAC,IAAI,GAAG,SAAS,CAAC,yBAAyB;AAC1E,wBAAwB,MAAM,CAAC,sCAAsC,CAAC,OAAO,EAAE,wBAAwB,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;AAC3I;AACA;AACA,gBAAgB,UAAU,IAAI,GAAG,GAAG,KAAK,GAAG,MAAM,IAAI,GAAG,GAAG,CAAC,CAAC,GAAG,UAAU;AAC3E,gBAAgB,KAAK,IAAI,GAAG;AAC5B,gBAAgB,MAAM,IAAI,GAAG;AAC7B,gBAAgB,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC;AAC5C,gBAAgB,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC;AAC9C;AACA,YAAY,IAAI,WAAW,KAAK,SAAS,EAAE;AAC3C;AACA,gBAAgB;AAChB;AACA;AACA,QAAQ,IAAI,wBAAwB,IAAI,wBAAwB,CAAC,MAAM,GAAG,CAAC,EAAE;AAC7E,YAAY,IAAI,CAAC,mBAAmB,GAAG,iCAAiC,CAAC,mCAAmC,CAAC;AAC7G,gBAAgB,IAAI,EAAE,MAAM,CAAC,SAAS,CAAC;AACvC,gBAAgB,KAAK,EAAE,wBAAwB,CAAC,CAAC,CAAC;AAClD,gBAAgB,IAAI,EAAE,wBAAwB,CAAC,CAAC,CAAC;AACjD,gBAAgB,EAAE,EAAE,wBAAwB,CAAC,CAAC,CAAC;AAC/C,gBAAgB,IAAI,EAAE,wBAAwB,CAAC,CAAC,CAAC;AACjD,gBAAgB,KAAK,EAAE,wBAAwB,CAAC,CAAC,CAAC;AAClD,gBAAgB,IAAI,EAAE,wBAAwB,CAAC,CAAC,CAAC;AACjD,gBAAgB,MAAM,EAAE,SAAS,CAAC,kBAAkB;AACpD,gBAAgB,IAAI,EAAE,SAAS,CAAC,iBAAiB;AACjD,gBAAgB,UAAU,EAAE,KAAK;AACjC,aAAa,CAAC;AACd;AACA,aAAa;AACb,YAAY,IAAI,CAAC,mBAAmB,GAAG,SAAS;AAChD;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,CAAC,sBAAsB,GAAG,KAAK;;;;"}
|