@arcgis/core 5.1.0-next.78 → 5.1.0-next.79
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/analysis/ShadowCast/DiscreteOptions.d.ts +33 -6
- package/analysis/ShadowCast/DiscreteOptions.js +1 -1
- package/analysis/ShadowCast/MinDurationOptions.d.ts +6 -4
- package/analysis/ShadowCast/TotalDurationOptions.d.ts +33 -6
- package/analysis/ShadowCast/TotalDurationOptions.js +1 -1
- package/analysis/ShadowCast/colorStopsUtils.js +2 -0
- package/analysis/ShadowCastAnalysis.d.ts +24 -1
- package/analysis/ShadowCastAnalysis.js +1 -1
- package/analysis/Viewshed.d.ts +27 -0
- package/analysis/Viewshed.js +1 -1
- package/analysis/ViewshedAnalysis.js +1 -1
- package/arcade/FunctionWrapper.js +1 -1
- package/arcade/arcadeAsyncRuntime.js +1 -1
- package/arcade/arcadeCompiler.js +1 -1
- package/arcade/arcadeRuntime.js +1 -1
- package/arcade/compilerUtils.js +1 -1
- package/arcade/debug.d.ts +139 -0
- package/arcade/debug.js +2 -0
- package/arcade/featureSetCollection.js +1 -1
- package/arcade/featureSetUtils.js +1 -1
- package/arcade/featureset/actions/GroupBy.js +1 -1
- package/arcade/featureset/actions/OrderBy.js +1 -1
- package/arcade/functions/featuresetstring.js +1 -1
- package/arcade/languageUtils.js +1 -1
- package/arcade.d.ts +46 -2
- package/arcade.js +1 -1
- package/assets/esri/core/workers/RemoteClient.js +1 -1
- package/assets/esri/core/workers/chunks/{1c7183551f5269bdcf13.js → 01bd1b86ba899c6aa4c0.js} +1 -1
- package/assets/esri/core/workers/chunks/{1f8ccf96069ac3a40c3d.js → 01ee18782a50279f907e.js} +1 -1
- package/assets/esri/core/workers/chunks/{f81c6f6ccc201f584970.js → 022067e807905cabeaa1.js} +1 -1
- package/assets/esri/core/workers/chunks/{11ea4be441a26134ce1f.js → 052cdc7aaa803b5873f0.js} +1 -1
- package/assets/esri/core/workers/chunks/{b7bb7072dbee978f3ca3.js → 056fd7847caaff2c9514.js} +1 -1
- package/assets/esri/core/workers/chunks/{8acee3fba488f202f82f.js → 05c3146d87d917606193.js} +1 -1
- package/assets/esri/core/workers/chunks/{a8ca5d8740cc7e39197b.js → 0aebcbf41cb193e76809.js} +5 -5
- package/assets/esri/core/workers/chunks/{54023458195549f66215.js → 0b77c124b743067e4155.js} +1 -1
- package/assets/esri/core/workers/chunks/10408183681fd6c7b4ed.js +2 -0
- package/assets/esri/core/workers/chunks/{7595ceba529ed01c7590.js → 2c87c3112a43db8624f6.js} +1 -1
- package/assets/esri/core/workers/chunks/{13e60f19f436b8d683ae.js → 3c9482764c9e4f8bcbb0.js} +1 -1
- package/assets/esri/core/workers/chunks/{322c54081b25f1c53661.js → 3e37019eee1c49d2bf64.js} +1 -1
- package/assets/esri/core/workers/chunks/45c83eb7c2a06166e3b0.js +1 -0
- package/assets/esri/core/workers/chunks/48acd146bf0241d87647.js +1 -0
- package/assets/esri/core/workers/chunks/5818f1f526577068d6ca.js +2 -0
- package/assets/esri/core/workers/chunks/{34fe97bcacc0dfc5bce6.js → 5ccc325d83cec4f5ccdb.js} +1 -1
- package/assets/esri/core/workers/chunks/{30e710ec4d22c43d4e7e.js → 5cffc7b49966201eccdb.js} +1 -1
- package/assets/esri/core/workers/chunks/{1a87e9bbd85ba29b1514.js → 5da2051f548c2942e01a.js} +1 -1
- package/assets/esri/core/workers/chunks/5ec66e39e53c11e75179.js +2 -0
- package/assets/esri/core/workers/chunks/{0b1454a77a6a682541dc.js.LICENSE.txt → 5ec66e39e53c11e75179.js.LICENSE.txt} +9 -1
- package/assets/esri/core/workers/chunks/5f6fd20a7f4e80eafa25.js +1 -0
- package/assets/esri/core/workers/chunks/{abc06d10c7ac8ba5b0e4.js → 67ec1694d6e18b7c234c.js} +1 -1
- package/assets/esri/core/workers/chunks/{32e22d6eee9fed1f70b0.js → 6d696beddcc5fbed5875.js} +1 -1
- package/assets/esri/core/workers/chunks/{f590b60fca607d66001a.js → 716a4d7e8b908b81870b.js} +1 -1
- package/assets/esri/core/workers/chunks/71fe127734f33d020a44.js +1 -0
- package/assets/esri/core/workers/chunks/7cdd0492b2191df95102.js +2 -0
- package/assets/esri/core/workers/chunks/7cea68257d24ffd205bb.js +1 -0
- package/assets/esri/core/workers/chunks/7e530e635325dba07864.js +1 -0
- package/assets/esri/core/workers/chunks/8f6f5dad52747d252aac.js +596 -0
- package/assets/esri/core/workers/chunks/{d950d5c2844206502ff0.js → 992cd87ba0ab6346f692.js} +1 -1
- package/assets/esri/core/workers/chunks/{73c87eb9bd8f0f848481.js → 9c11e1fe785e1385fdb1.js} +1 -1
- package/assets/esri/core/workers/chunks/{5ed8d8b5336c81fbcda3.js → 9d216e30d04ea21fc8a2.js} +1 -1
- package/assets/esri/core/workers/chunks/a54aa93b6012a2597f82.js +1 -0
- package/assets/esri/core/workers/chunks/{cf14b3a44705dacefac4.js → a9b5ce00323cd5574bf7.js} +1 -1
- package/assets/esri/core/workers/chunks/ae6b3dfe5f757df539d6.js +1 -0
- package/assets/esri/core/workers/chunks/b14c4c3f295970f731ab.js +1 -0
- package/assets/esri/core/workers/chunks/{c70df6ed190f9ebcf6aa.js → bf2c202dec5ab7bc770b.js} +1 -1
- package/assets/esri/core/workers/chunks/c1d4110aa494a1dba3c4.js +1 -0
- package/assets/esri/core/workers/chunks/{85d8c7cc7f8decbe975d.js → c442916805975744dd92.js} +1 -1
- package/assets/esri/core/workers/chunks/dacc2e5fa462495ed1cc.js +2 -0
- package/assets/esri/core/workers/chunks/f227b34cce6843df0fb6.js +1 -0
- package/assets/esri/core/workers/chunks/{dda2cb5c073d1e65f14f.js → f43d628d47eec7d530c7.js} +1 -1
- package/assets/esri/core/workers/chunks/f7531aa69a87814c60d1.js +1 -0
- package/assets/esri/core/workers/chunks/{4ccb56333de0247dcb6f.js → fb100935fd8948d779f5.js} +1 -1
- package/assets/esri/core/workers/chunks/{5ee4b630ad39c21d11db.js → fb9e3e7cd532ac4353f1.js} +12 -12
- package/assets/esri/core/workers/chunks/fc6ca7ffb9f1b875059c.js +1 -0
- package/assets/esri/core/workers/chunks/{3d9fcbe95dd22dbe730e.js → ffc4f3406ce383b9bd88.js} +1 -1
- package/assets/esri/themes/base/widgets/_BatchAttributeForm.scss +6 -0
- package/assets/esri/themes/dark/main.css +1 -1
- package/assets/esri/themes/light/main.css +1 -1
- package/assets/esri/themes/light/view.css +1 -1
- package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_ar.json +1 -1
- package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_bg.json +1 -1
- package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_bs.json +1 -1
- package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_ca.json +1 -1
- package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_cs.json +1 -1
- package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_da.json +1 -1
- package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_de.json +1 -1
- package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_el.json +1 -1
- package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_es.json +1 -1
- package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_et.json +1 -1
- package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_fi.json +1 -1
- package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_fr.json +1 -1
- package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_he.json +1 -1
- package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_hr.json +1 -1
- package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_hu.json +1 -1
- package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_id.json +1 -1
- package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_it.json +1 -1
- package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_ja.json +1 -1
- package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_ko.json +1 -1
- package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_lt.json +1 -1
- package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_lv.json +1 -1
- package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_nl.json +1 -1
- package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_no.json +1 -1
- package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_pl.json +1 -1
- package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_pt-BR.json +1 -1
- package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_pt-PT.json +1 -1
- package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_ro.json +1 -1
- package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_ru.json +1 -1
- package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_sk.json +1 -1
- package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_sl.json +1 -1
- package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_sr.json +1 -1
- package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_sv.json +1 -1
- package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_th.json +1 -1
- package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_tr.json +1 -1
- package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_uk.json +1 -1
- package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_vi.json +1 -1
- package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_zh-CN.json +1 -1
- package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_zh-HK.json +1 -1
- package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_zh-TW.json +1 -1
- package/assets/esri/widgets/Sketch/t9n/Sketch_ar.json +1 -1
- package/assets/esri/widgets/Sketch/t9n/Sketch_bg.json +1 -1
- package/assets/esri/widgets/Sketch/t9n/Sketch_bs.json +1 -1
- package/assets/esri/widgets/Sketch/t9n/Sketch_ca.json +1 -1
- package/assets/esri/widgets/Sketch/t9n/Sketch_cs.json +1 -1
- package/assets/esri/widgets/Sketch/t9n/Sketch_da.json +1 -1
- package/assets/esri/widgets/Sketch/t9n/Sketch_de.json +1 -1
- package/assets/esri/widgets/Sketch/t9n/Sketch_el.json +1 -1
- package/assets/esri/widgets/Sketch/t9n/Sketch_es.json +1 -1
- package/assets/esri/widgets/Sketch/t9n/Sketch_et.json +1 -1
- package/assets/esri/widgets/Sketch/t9n/Sketch_fi.json +1 -1
- package/assets/esri/widgets/Sketch/t9n/Sketch_fr.json +1 -1
- package/assets/esri/widgets/Sketch/t9n/Sketch_he.json +1 -1
- package/assets/esri/widgets/Sketch/t9n/Sketch_hr.json +1 -1
- package/assets/esri/widgets/Sketch/t9n/Sketch_hu.json +1 -1
- package/assets/esri/widgets/Sketch/t9n/Sketch_id.json +1 -1
- package/assets/esri/widgets/Sketch/t9n/Sketch_it.json +1 -1
- package/assets/esri/widgets/Sketch/t9n/Sketch_ja.json +1 -1
- package/assets/esri/widgets/Sketch/t9n/Sketch_ko.json +1 -1
- package/assets/esri/widgets/Sketch/t9n/Sketch_lt.json +1 -1
- package/assets/esri/widgets/Sketch/t9n/Sketch_lv.json +1 -1
- package/assets/esri/widgets/Sketch/t9n/Sketch_nl.json +1 -1
- package/assets/esri/widgets/Sketch/t9n/Sketch_no.json +1 -1
- package/assets/esri/widgets/Sketch/t9n/Sketch_pl.json +1 -1
- package/assets/esri/widgets/Sketch/t9n/Sketch_pt-BR.json +1 -1
- package/assets/esri/widgets/Sketch/t9n/Sketch_pt-PT.json +1 -1
- package/assets/esri/widgets/Sketch/t9n/Sketch_ro.json +1 -1
- package/assets/esri/widgets/Sketch/t9n/Sketch_ru.json +1 -1
- package/assets/esri/widgets/Sketch/t9n/Sketch_sk.json +1 -1
- package/assets/esri/widgets/Sketch/t9n/Sketch_sl.json +1 -1
- package/assets/esri/widgets/Sketch/t9n/Sketch_sr.json +1 -1
- package/assets/esri/widgets/Sketch/t9n/Sketch_sv.json +1 -1
- package/assets/esri/widgets/Sketch/t9n/Sketch_th.json +1 -1
- package/assets/esri/widgets/Sketch/t9n/Sketch_tr.json +1 -1
- package/assets/esri/widgets/Sketch/t9n/Sketch_uk.json +1 -1
- package/assets/esri/widgets/Sketch/t9n/Sketch_vi.json +1 -1
- package/assets/esri/widgets/Sketch/t9n/Sketch_zh-CN.json +1 -1
- package/assets/esri/widgets/Sketch/t9n/Sketch_zh-HK.json +1 -1
- package/assets/esri/widgets/Sketch/t9n/Sketch_zh-TW.json +1 -1
- package/chunks/ImageMaterial.glsl.js +7 -5
- package/chunks/SlicePlaneMaterial.glsl.js +21 -13
- package/chunks/arcade.js +1 -1
- package/chunks/languageUtils.js +1 -1
- package/config.js +1 -1
- package/core/MapUtils.js +1 -1
- package/core/arrayUtils.js +1 -1
- package/kernel.js +1 -1
- package/layers/IntegratedMeshLayer.d.ts +18 -14
- package/layers/SceneLayer.d.ts +35 -1
- package/layers/SceneLayer.js +1 -1
- package/layers/graphics/controllers/I3SOnDemandController.js +1 -1
- package/layers/scene/ModelFileInfo.d.ts +29 -0
- package/layers/scene/ModelFileInfo.js +2 -0
- package/layers/scene/ModelInfo.d.ts +38 -0
- package/layers/scene/ModelInfo.js +2 -0
- package/layers/scene/modelQuerySupport.js +2 -0
- package/layers/scene/types.d.ts +14 -0
- package/layers/support/infoFor3D.js +1 -1
- package/layers/support/serviceCapabilitiesUtils.js +1 -1
- package/layers/types.d.ts +13 -1
- package/package.json +3 -3
- package/popup/Features.d.ts +1 -6
- package/popup/Features.js +1 -1
- package/popup/actions.js +1 -1
- package/renderers/visualVariables/support/ColorStop.js +1 -1
- package/support/arcadeUtils.js +1 -1
- package/support/revision.js +1 -1
- package/views/2d/engine/flow/styles/Imagery.js +1 -1
- package/views/2d/engine/flow/styles/Particles.js +1 -1
- package/views/2d/engine/flow/styles/Streamlines.js +1 -1
- package/views/2d/engine/vectorTiles/Placement.js +1 -1
- package/views/2d/engine/vectorTiles/TextShaping.js +1 -1
- package/views/2d/engine/webgl/AttributeStoreView.js +1 -1
- package/views/2d/engine/webgl/GlyphMosaic.js +1 -1
- package/views/2d/engine/webgl/GlyphSource.js +1 -1
- package/views/2d/engine/webgl/Overlay.js +1 -1
- package/views/2d/engine/webgl/OverlayMultipoint.js +1 -1
- package/views/2d/engine/webgl/RenderingDevice.js +1 -1
- package/views/2d/engine/webgl/TextureManager.js +1 -1
- package/views/2d/engine/webgl/mesh/templates/shapingUtils.js +1 -1
- package/views/2d/engine/webgl/shaderGraph/GLSLShaderModule.js +1 -1
- package/views/2d/engine/webgl/shaderGraph/GraphShaderModule.js +1 -1
- package/views/2d/engine/webgl/shaderGraph/graph/ShaderGraphContext.js +1 -1
- package/views/2d/engine/webgl/shaderGraph/techniques/TechniqueProgramCache.js +1 -1
- package/views/2d/engine/webgl/shaderGraph/techniques/TestTechnique.js +1 -1
- package/views/2d/engine/webgl/shaderGraph/techniques/TextureStatisticsTechnique.js +1 -1
- package/views/2d/engine/webgl/shaderGraph/techniques/animated/AAnimatedShader.js +1 -1
- package/views/2d/engine/webgl/shaderGraph/techniques/animated/AnimatedTechnique.js +1 -1
- package/views/2d/engine/webgl/shaderGraph/techniques/animated/AnimationUniformInfo.js +1 -1
- package/views/2d/engine/webgl/shaderGraph/techniques/bitmap/BitmapTechnique.js +1 -1
- package/views/2d/engine/webgl/shaderGraph/techniques/blend/BlendTechnique.js +1 -1
- package/views/2d/engine/webgl/shaderGraph/techniques/bloom/BloomTechnique.js +1 -1
- package/views/2d/engine/webgl/shaderGraph/techniques/blur/BlurTechnique.js +1 -1
- package/views/2d/engine/webgl/shaderGraph/techniques/clip/ClipTechnique.js +1 -1
- package/views/2d/engine/webgl/shaderGraph/techniques/colorize/ColorizeTechnique.js +1 -1
- package/views/2d/engine/webgl/shaderGraph/techniques/dotDensity/DotDensityPointShader.js +1 -1
- package/views/2d/engine/webgl/shaderGraph/techniques/dotDensity/DotDensityPolygonShader.js +1 -1
- package/views/2d/engine/webgl/shaderGraph/techniques/dotDensity/DotDensityTechnique.js +1 -1
- package/views/2d/engine/webgl/shaderGraph/techniques/drop-shadow/DropShadowTechnique.js +1 -1
- package/views/2d/engine/webgl/shaderGraph/techniques/featureTechniqueUtils.js +1 -1
- package/views/2d/engine/webgl/shaderGraph/techniques/fill/ComplexFillTechnique.js +1 -1
- package/views/2d/engine/webgl/shaderGraph/techniques/fill/ComplexOutlineFillTechnique.js +1 -1
- package/views/2d/engine/webgl/shaderGraph/techniques/fill/FillTechnique.js +1 -1
- package/views/2d/engine/webgl/shaderGraph/techniques/fill/GradientFillTechnique.js +1 -1
- package/views/2d/engine/webgl/shaderGraph/techniques/fill/OutlineFillTechnique.js +1 -1
- package/views/2d/engine/webgl/shaderGraph/techniques/fill/PatternFillTechnique.js +1 -1
- package/views/2d/engine/webgl/shaderGraph/techniques/fill/PatternOutlineFillTechnique.js +1 -1
- package/views/2d/engine/webgl/shaderGraph/techniques/flow/FlowTechnique.js +1 -1
- package/views/2d/engine/webgl/shaderGraph/techniques/grid/GridTechnique.js +1 -1
- package/views/2d/engine/webgl/shaderGraph/techniques/heatmap/HeatmapTechnique.js +1 -1
- package/views/2d/engine/webgl/shaderGraph/techniques/labels/LabelTechnique.js +1 -1
- package/views/2d/engine/webgl/shaderGraph/techniques/line/GradientStrokeTechnique.js +1 -1
- package/views/2d/engine/webgl/shaderGraph/techniques/line/LineTechnique.js +1 -1
- package/views/2d/engine/webgl/shaderGraph/techniques/line/TexturedLineTechnique.js +1 -1
- package/views/2d/engine/webgl/shaderGraph/techniques/magnifier/MagnifierTechnique.js +1 -1
- package/views/2d/engine/webgl/shaderGraph/techniques/markers/MarkerShader.js +1 -1
- package/views/2d/engine/webgl/shaderGraph/techniques/markers/MarkerTechnique.js +1 -1
- package/views/2d/engine/webgl/shaderGraph/techniques/opacity/OpacityTechnique.js +1 -1
- package/views/2d/engine/webgl/shaderGraph/techniques/overlay/OverlayTechnique.js +1 -1
- package/views/2d/engine/webgl/shaderGraph/techniques/pieChart/PieChartShader.js +1 -1
- package/views/2d/engine/webgl/shaderGraph/techniques/pieChart/PieChartTechnique.js +1 -1
- package/views/2d/engine/webgl/shaderGraph/techniques/raster/RasterColorizerTechnique.js +1 -1
- package/views/2d/engine/webgl/shaderGraph/techniques/raster/RasterHighlightTechnique.js +1 -1
- package/views/2d/engine/webgl/shaderGraph/techniques/raster/VectorFieldTechnique.js +1 -1
- package/views/2d/engine/webgl/shaderGraph/techniques/raster/processor/AspectTechnique.js +1 -1
- package/views/2d/engine/webgl/shaderGraph/techniques/raster/processor/BandArithmeticTechnique.js +1 -1
- package/views/2d/engine/webgl/shaderGraph/techniques/raster/processor/BaseRasterProcessorTechnique.js +1 -1
- package/views/2d/engine/webgl/shaderGraph/techniques/raster/processor/ColormapToRGBTechnique.js +1 -1
- package/views/2d/engine/webgl/shaderGraph/techniques/raster/processor/CompositeBandTechnique.js +1 -1
- package/views/2d/engine/webgl/shaderGraph/techniques/raster/processor/ComputeChangeTechnique.js +1 -1
- package/views/2d/engine/webgl/shaderGraph/techniques/raster/processor/ContrastBrightnessTechnique.js +1 -1
- package/views/2d/engine/webgl/shaderGraph/techniques/raster/processor/ConvolutionTechnique.js +1 -1
- package/views/2d/engine/webgl/shaderGraph/techniques/raster/processor/CurvatureTechnique.js +1 -1
- package/views/2d/engine/webgl/shaderGraph/techniques/raster/processor/ExtractBandTechnique.js +1 -1
- package/views/2d/engine/webgl/shaderGraph/techniques/raster/processor/FocalStatisticsTechnique.js +1 -1
- package/views/2d/engine/webgl/shaderGraph/techniques/raster/processor/GrayscaleTechnique.js +1 -1
- package/views/2d/engine/webgl/shaderGraph/techniques/raster/processor/HillshadeTechnique.js +1 -1
- package/views/2d/engine/webgl/shaderGraph/techniques/raster/processor/LocalTechnique.js +1 -1
- package/views/2d/engine/webgl/shaderGraph/techniques/raster/processor/MaskTechnique.js +1 -1
- package/views/2d/engine/webgl/shaderGraph/techniques/raster/processor/NDVITechnique.js +1 -1
- package/views/2d/engine/webgl/shaderGraph/techniques/raster/processor/RemapTechnique.js +1 -1
- package/views/2d/engine/webgl/shaderGraph/techniques/raster/processor/ReprojectTechnique.js +1 -1
- package/views/2d/engine/webgl/shaderGraph/techniques/raster/processor/ShadedReliefTechnique.js +1 -1
- package/views/2d/engine/webgl/shaderGraph/techniques/raster/processor/SlopeTechnique.js +1 -1
- package/views/2d/engine/webgl/shaderGraph/techniques/raster/processor/SpectralConversionTechnique.js +1 -1
- package/views/2d/engine/webgl/shaderGraph/techniques/raster/processor/StretchTechnique.js +1 -1
- package/views/2d/engine/webgl/shaderGraph/techniques/shaders/AFeatureShader.js +1 -1
- package/views/2d/engine/webgl/shaderGraph/techniques/shaders/BitmapShader.js +1 -1
- package/views/2d/engine/webgl/shaderGraph/techniques/shaders/BlendShader.js +1 -1
- package/views/2d/engine/webgl/shaderGraph/techniques/shaders/BlitShader.js +1 -1
- package/views/2d/engine/webgl/shaderGraph/techniques/shaders/BloomShader.js +1 -1
- package/views/2d/engine/webgl/shaderGraph/techniques/shaders/BlurShader.js +1 -1
- package/views/2d/engine/webgl/shaderGraph/techniques/shaders/ColorizeShader.js +1 -1
- package/views/2d/engine/webgl/shaderGraph/techniques/shaders/ComplexFillShader.js +1 -1
- package/views/2d/engine/webgl/shaderGraph/techniques/shaders/ComplexOutlineFillShader.js +1 -1
- package/views/2d/engine/webgl/shaderGraph/techniques/shaders/DropShadowShader.js +1 -1
- package/views/2d/engine/webgl/shaderGraph/techniques/shaders/EntityStorage.js +1 -1
- package/views/2d/engine/webgl/shaderGraph/techniques/shaders/GradientFillShader.js +1 -1
- package/views/2d/engine/webgl/shaderGraph/techniques/shaders/GradientStrokeShader.js +1 -1
- package/views/2d/engine/webgl/shaderGraph/techniques/shaders/HeatmapAccumulateShader.js +1 -1
- package/views/2d/engine/webgl/shaderGraph/techniques/shaders/HeatmapResolveShader.js +1 -1
- package/views/2d/engine/webgl/shaderGraph/techniques/shaders/MagnifierShader.js +1 -1
- package/views/2d/engine/webgl/shaderGraph/techniques/shaders/MosaicInfo.js +1 -1
- package/views/2d/engine/webgl/shaderGraph/techniques/shaders/OpacityShader.js +1 -1
- package/views/2d/engine/webgl/shaderGraph/techniques/shaders/OverlayShader.js +1 -1
- package/views/2d/engine/webgl/shaderGraph/techniques/shaders/PatternFillShader.js +1 -1
- package/views/2d/engine/webgl/shaderGraph/techniques/shaders/PatternOutlineFillShader.js +1 -1
- package/views/2d/engine/webgl/shaderGraph/techniques/shaders/TextureStatisticsDiffShader.js +1 -1
- package/views/2d/engine/webgl/shaderGraph/techniques/shaders/TextureStatisticsMinMaxSumShader.js +1 -1
- package/views/2d/engine/webgl/shaderGraph/techniques/shaders/TextureStatisticsStdDevShader.js +1 -1
- package/views/2d/engine/webgl/shaderGraph/techniques/shaders/TextureStatisticsSumOfSquaredDiffShader.js +1 -1
- package/views/2d/engine/webgl/shaderGraph/techniques/shaders/TexturedLineShader.js +1 -1
- package/views/2d/engine/webgl/shaderGraph/techniques/shaders/TileDebugInfoShader.js +1 -1
- package/views/2d/engine/webgl/shaderGraph/techniques/shaders/VideoScreenShader.js +1 -1
- package/views/2d/engine/webgl/shaderGraph/techniques/shaders/flow/FlowImageryShader.js +1 -1
- package/views/2d/engine/webgl/shaderGraph/techniques/shaders/flow/FlowUtils.js +1 -1
- package/views/2d/engine/webgl/shaderGraph/techniques/shaders/raster/BaseRasterColorizerShader.js +1 -1
- package/views/2d/engine/webgl/shaderGraph/techniques/shaders/raster/BaseRasterHighlightShader.js +1 -1
- package/views/2d/engine/webgl/shaderGraph/techniques/shaders/raster/RasterColorizerLUTShader.js +1 -1
- package/views/2d/engine/webgl/shaderGraph/techniques/shaders/raster/RasterColorizerShadedReliefShader.js +1 -1
- package/views/2d/engine/webgl/shaderGraph/techniques/shaders/raster/RasterColorizerStretchShader.js +1 -1
- package/views/2d/engine/webgl/shaderGraph/techniques/shaders/raster/RasterXYBandHighlightShader.js +1 -1
- package/views/2d/engine/webgl/shaderGraph/techniques/shaders/raster/lut.js +1 -1
- package/views/2d/engine/webgl/shaderGraph/techniques/shaders/raster/processor/AspectShader.js +1 -1
- package/views/2d/engine/webgl/shaderGraph/techniques/shaders/raster/processor/BaseRasterProcessorShader.js +1 -1
- package/views/2d/engine/webgl/shaderGraph/techniques/shaders/raster/processor/ColormapToRGBShader.js +1 -1
- package/views/2d/engine/webgl/shaderGraph/techniques/shaders/raster/processor/ConvolutionShader.js +1 -1
- package/views/2d/engine/webgl/shaderGraph/techniques/shaders/raster/processor/CurvatureShader.js +1 -1
- package/views/2d/engine/webgl/shaderGraph/techniques/shaders/raster/processor/FocalStatisticsShader.js +1 -1
- package/views/2d/engine/webgl/shaderGraph/techniques/shaders/raster/processor/HillshadeShader.js +1 -1
- package/views/2d/engine/webgl/shaderGraph/techniques/shaders/raster/processor/MultiRasterMixin.js +1 -1
- package/views/2d/engine/webgl/shaderGraph/techniques/shaders/raster/processor/ShadedReliefShader.js +1 -1
- package/views/2d/engine/webgl/shaderGraph/techniques/shaders/raster/processor/SlopeShader.js +1 -1
- package/views/2d/engine/webgl/shaderGraph/techniques/shaders/raster/projection.js +1 -1
- package/views/2d/engine/webgl/shaderGraph/techniques/shaders/raster/stretch.js +1 -1
- package/views/2d/engine/webgl/shaderGraph/techniques/shaders/vector-tiles/VTLShaderBackground.js +1 -1
- package/views/2d/engine/webgl/shaderGraph/techniques/shaders/vector-tiles/VTLShaderFill.js +1 -1
- package/views/2d/engine/webgl/shaderGraph/techniques/shaders/vector-tiles/VTLShaderIcon.js +1 -1
- package/views/2d/engine/webgl/shaderGraph/techniques/shaders/vector-tiles/VTLShaderLine.js +1 -1
- package/views/2d/engine/webgl/shaderGraph/techniques/shaders/vector-tiles/VTLShaderText.js +1 -1
- package/views/2d/engine/webgl/shaderGraph/techniques/shaders/vvUtils.js +1 -1
- package/views/2d/engine/webgl/shaderGraph/techniques/text/TextShader.js +1 -1
- package/views/2d/engine/webgl/shaderGraph/techniques/text/TextTechnique.js +1 -1
- package/views/2d/engine/webgl/shaderGraph/techniques/tile/TileDebugInfoTechnique.js +1 -1
- package/views/2d/engine/webgl/shaderGraph/techniques/tile/TileStencilTechnique.js +1 -1
- package/views/2d/engine/webgl/shaderGraph/techniques/vectorTiles/VTLTechniqueBackground.js +1 -1
- package/views/2d/engine/webgl/shaderGraph/techniques/vectorTiles/VTLTechniqueCircle.js +1 -1
- package/views/2d/engine/webgl/shaderGraph/techniques/vectorTiles/VTLTechniqueFill.js +1 -1
- package/views/2d/engine/webgl/shaderGraph/techniques/vectorTiles/VTLTechniqueLine.js +1 -1
- package/views/2d/engine/webgl/shaderGraph/techniques/vectorTiles/VTLTechniqueSymbol.js +1 -1
- package/views/2d/engine/webgl/shaderGraph/techniques/videoScreenRenderer/VideoScreenTechnique.js +1 -1
- package/views/2d/engine/webgl/shaderGraph/typed/TypedShaderProgram.js +1 -1
- package/views/2d/engine/webgl/shaders/sources/shaderRepository.js +1 -1
- package/views/3d/FocusAreasView.js +1 -1
- package/views/3d/StencilGeometry.js +2 -0
- package/views/3d/analysis/ShadowCastAnalysisView3D.js +1 -1
- package/views/3d/analysis/Viewshed/ViewshedComputedData.js +1 -1
- package/views/3d/analysis/Viewshed/ViewshedConfiguration.js +1 -1
- package/views/3d/analysis/Viewshed/ViewshedFieldOfViewManipulation.js +1 -1
- package/views/3d/analysis/Viewshed/ViewshedScaleOrientManipulation.js +1 -1
- package/views/3d/analysis/Viewshed/ViewshedShapeVisualElement.js +1 -1
- package/views/3d/analysis/Viewshed/ViewshedSubTool.js +1 -1
- package/views/3d/analysis/Viewshed/ViewshedSubVisualization.js +1 -1
- package/views/3d/analysis/Viewshed/ViewshedTool.js +1 -1
- package/views/3d/analysis/Viewshed/viewshedToolUtils.js +1 -1
- package/views/3d/analysis/ViewshedAnalysisView3D.js +1 -1
- package/views/3d/focusAreaUtils.js +2 -0
- package/views/3d/layers/BuildingComponentSublayerView3D.js +1 -1
- package/views/3d/layers/I3SMeshView3D.js +1 -1
- package/views/3d/layers/IntegratedMesh3DTilesLayerView3D.js +1 -1
- package/views/3d/layers/IntegratedMeshLayerView3D.js +1 -1
- package/views/3d/layers/IntegratedMeshNormals.js +1 -1
- package/views/3d/layers/SceneLayerGraphicsView3D.js +1 -1
- package/views/3d/layers/SceneLayerView3D.js +1 -1
- package/views/3d/layers/SceneLayerWorker.js +1 -1
- package/views/3d/layers/i3s/I3SQueryEngine.js +1 -1
- package/views/3d/layers/i3s/I3SUtil.js +1 -1
- package/views/3d/layers/support/DefinitionExpressionSceneLayerView.js +1 -1
- package/views/3d/layers/support/TemporalSceneLayerView.js +1 -1
- package/views/3d/webgl-engine/collections/Component/Material/ComponentTechniqueConfiguration.js +1 -1
- package/views/3d/webgl-engine/core/shaderTechnique/ShaderTechniqueRepository.js +1 -1
- package/views/3d/webgl-engine/effects/atmosphere/ChapmanAtmosphere.js +1 -1
- package/views/3d/webgl-engine/effects/atmosphere/LocalAtmosphere.js +1 -1
- package/views/3d/webgl-engine/effects/atmosphere/MarsAtmosphere.js +1 -1
- package/views/3d/webgl-engine/effects/blit/Blit.js +1 -1
- package/views/3d/webgl-engine/effects/clouds/CloudsComposition.js +1 -1
- package/views/3d/webgl-engine/effects/clouds/CloudsRenderer.js +1 -1
- package/views/3d/webgl-engine/effects/clouds/CloudsTechnique.js +1 -1
- package/views/3d/webgl-engine/effects/clouds/NoiseTextureAtlas.js +1 -1
- package/views/3d/webgl-engine/effects/focusArea/FocusAreaColorNode.js +1 -1
- package/views/3d/webgl-engine/effects/focusArea/FocusAreaMaskNode.js +1 -1
- package/views/3d/webgl-engine/effects/focusArea/focusAreaMaskUtils.js +2 -0
- package/views/3d/webgl-engine/effects/fog/Fog.js +1 -1
- package/views/3d/webgl-engine/effects/globalIllumination/GlobalIllumination.js +1 -1
- package/views/3d/webgl-engine/effects/glow/GlowRenderNode.js +1 -1
- package/views/3d/webgl-engine/effects/haze/Haze.js +1 -1
- package/views/3d/webgl-engine/effects/highlight/Highlight.js +1 -1
- package/views/3d/webgl-engine/effects/highlight/ShadowHighlight.js +1 -1
- package/views/3d/webgl-engine/effects/highlight/ShadowHighlightBuffer.js +1 -1
- package/views/3d/webgl-engine/effects/laserlines/LaserLineRenderer.js +1 -1
- package/views/3d/webgl-engine/effects/laserlines/LaserlinePathTechnique.js +1 -1
- package/views/3d/webgl-engine/effects/magnifier/Magnifier.js +1 -1
- package/views/3d/webgl-engine/effects/precipitation/Precipitation.js +1 -1
- package/views/3d/webgl-engine/effects/smaa/SMAA.js +1 -1
- package/views/3d/webgl-engine/effects/ssao/SSAO.js +1 -1
- package/views/3d/webgl-engine/effects/stars/Stars.js +1 -1
- package/views/3d/webgl-engine/effects/stars/StarsTechnique.js +1 -1
- package/views/3d/webgl-engine/lib/BindParameters.js +1 -1
- package/views/3d/webgl-engine/lib/Compositor.js +1 -1
- package/views/3d/webgl-engine/lib/CutFillComputationRenderNode.js +1 -1
- package/views/3d/webgl-engine/lib/CutFillVisualizationRenderNode.js +1 -1
- package/views/3d/webgl-engine/lib/GaussianSplatRenderNode.js +1 -1
- package/views/3d/webgl-engine/lib/Material.js +1 -1
- package/views/3d/webgl-engine/lib/Normals.js +1 -1
- package/views/3d/webgl-engine/lib/OrderIndependentTransparency.js +1 -1
- package/views/3d/webgl-engine/lib/Renderer.js +1 -1
- package/views/3d/webgl-engine/lib/ShadowAccumulator.js +1 -1
- package/views/3d/webgl-engine/lib/Viewshed.js +1 -1
- package/views/3d/webgl-engine/lib/ViewshedShadowMap.js +1 -1
- package/views/3d/webgl-engine/materials/DefaultTechniqueConfiguration.js +1 -1
- package/views/3d/webgl-engine/shaders/CheckerBoardTechnique.js +1 -1
- package/views/3d/webgl-engine/shaders/ColorMaterialTechnique.js +1 -1
- package/views/3d/webgl-engine/shaders/CompositingTechnique.js +1 -1
- package/views/3d/webgl-engine/shaders/DefaultMaterialTechnique.js +1 -1
- package/views/3d/webgl-engine/shaders/ImageMaterialTechnique.js +1 -1
- package/views/3d/webgl-engine/shaders/LineMarkerTechnique.js +1 -1
- package/views/3d/webgl-engine/shaders/MeasurementArrowTechnique.js +1 -1
- package/views/3d/webgl-engine/shaders/OutputColorHighlightOLID.glsl.js +10 -10
- package/views/3d/webgl-engine/shaders/RibbonLineTechnique.js +1 -1
- package/views/3d/webgl-engine/shaders/ShadedColorMaterialTechnique.js +1 -1
- package/views/3d/webgl-engine/shaders/SlicePlaneMaterialTechnique.js +1 -1
- package/views/View2D.js +1 -1
- package/views/draw/support/GraphicMover.js +1 -1
- package/views/draw/support/Reshape.js +1 -1
- package/views/draw/support/editingSessionUtils.js +1 -1
- package/views/webgl/FramebufferObject.js +1 -1
- package/widgets/BatchAttributeForm/css.js +1 -1
- package/widgets/BatchAttributeForm/inputs/GroupInput.d.ts +2 -1
- package/widgets/BatchAttributeForm/inputs/RelationshipElementInput.d.ts +54 -0
- package/widgets/BatchAttributeForm/inputs/RelationshipElementInput.js +2 -0
- package/widgets/BatchAttributeForm/inputs/support/createBatchFormInputs.js +1 -1
- package/widgets/BatchAttributeForm/inputs/support/inputUtils.js +1 -1
- package/widgets/BatchAttributeForm/inputs/types.d.ts +4 -3
- package/widgets/BatchAttributeForm/templates/AttachmentElementTemplate.js +1 -1
- package/widgets/BatchAttributeForm/templates/RelationshipElementTemplate.js +2 -0
- package/widgets/BatchAttributeForm/templates/support/createBatchFormTemplate.js +1 -1
- package/widgets/BatchAttributeForm/templates/support/hashElementTemplate.js +1 -1
- package/widgets/BatchAttributeForm/templates/support/templateUtils.js +1 -1
- package/widgets/BatchAttributeForm.js +1 -1
- package/widgets/CoordinateConversion/CoordinateConversionViewModel.d.ts +21 -1
- package/widgets/CoordinateConversion/CoordinateConversionViewModel.js +1 -1
- package/widgets/CoordinateConversion/support/Format.js +1 -1
- package/widgets/CoordinateConversion/support/coordinateConversionUtils.js +1 -1
- package/widgets/CoordinateConversion.d.ts +21 -1
- package/widgets/CoordinateConversion.js +1 -1
- package/widgets/Editor/CreateFeaturesWorkflow.js +1 -1
- package/widgets/Editor/SplitFeatureWorkflow.js +1 -1
- package/widgets/Editor/UpdateFeatureWorkflow.js +1 -1
- package/widgets/Editor/support/SketchController.js +1 -1
- package/widgets/Editor/workflowUtils.js +1 -1
- package/widgets/FeatureTable/FeatureTableViewModel.js +1 -1
- package/widgets/Sketch/SketchViewModel.js +1 -1
- package/widgets/support/ContingentValuesManager.js +1 -1
- package/widgets/types.d.ts +1 -1
- package/assets/esri/core/workers/chunks/07eff82916681fcff069.js +0 -1
- package/assets/esri/core/workers/chunks/0b1454a77a6a682541dc.js +0 -2
- package/assets/esri/core/workers/chunks/1c7fd0a229a8112b0539.js +0 -596
- package/assets/esri/core/workers/chunks/3697e51e1e4cf442f39a.js +0 -1
- package/assets/esri/core/workers/chunks/3cce9dad8ee0e4971d50.js +0 -1
- package/assets/esri/core/workers/chunks/3df8493b91aa3bce824d.js +0 -1
- package/assets/esri/core/workers/chunks/68a313155ddc29bd024d.js +0 -1
- package/assets/esri/core/workers/chunks/751609831b283903ba48.js +0 -1
- package/assets/esri/core/workers/chunks/7bacdd65a6cc4d284e0a.js +0 -2
- package/assets/esri/core/workers/chunks/7e97684e851274efd11f.js +0 -1
- package/assets/esri/core/workers/chunks/85aac8539996372f1ee8.js +0 -1
- package/assets/esri/core/workers/chunks/99d298d0039c536fcf3e.js +0 -1
- package/assets/esri/core/workers/chunks/9aaf78b831f8739bc127.js +0 -1
- package/assets/esri/core/workers/chunks/9b9916864b6575c42c8a.js +0 -1
- package/assets/esri/core/workers/chunks/bf7e019437a3b6036300.js +0 -2
- package/assets/esri/core/workers/chunks/d304343a781acfa3ff96.js +0 -1
- package/assets/esri/core/workers/chunks/dbb9bb28696ff9536678.js +0 -2
- package/assets/esri/core/workers/chunks/f09a41ad239d467d9438.js +0 -2
- package/assets/esri/core/workers/chunks/f6912532aae1638cbe8f.js +0 -1
- /package/assets/esri/core/workers/chunks/{7bacdd65a6cc4d284e0a.js.LICENSE.txt → 10408183681fd6c7b4ed.js.LICENSE.txt} +0 -0
- /package/assets/esri/core/workers/chunks/{f09a41ad239d467d9438.js.LICENSE.txt → 5818f1f526577068d6ca.js.LICENSE.txt} +0 -0
- /package/assets/esri/core/workers/chunks/{dbb9bb28696ff9536678.js.LICENSE.txt → 7cdd0492b2191df95102.js.LICENSE.txt} +0 -0
- /package/assets/esri/core/workers/chunks/{bf7e019437a3b6036300.js.LICENSE.txt → dacc2e5fa462495ed1cc.js.LICENSE.txt} +0 -0
|
@@ -1,596 +0,0 @@
|
|
|
1
|
-
"use strict";(self.webpackChunkRemoteClient=self.webpackChunkRemoteClient||[]).push([[7634],{72091(e,t,i){i.d(t,{H:()=>g,b:()=>p});var r=i(6733),n=i(29236),s=i(68259),o=i(20304),a=i(31821),l=i(93588),c=i(63761),h=i(9273),u=i(34053),d=i(14113);function p(){const e=new d.N5;e.include(r.Q);const{fragment:t}=e;return t.uniforms.add(new c.N("blurInput",e=>e.highlightBlurTexture),new s.t("blurSize",e=>e.blurSize),new h.R("highlightTexture",e=>e.highlightTexture),new c.N("highlightOptionsTexture",e=>e.highlightOptionsTexture),new l.c("highlightLevel",e=>e.highlightLevel),new o.m("occludedIntensityFactor",e=>e.occludedFactor)),t.constants.add("inner","float",1-(u.o-u.b)/u.o),e.include(n.y),t.main.add(a.H`vec2 highlightTextureSize = vec2(textureSize(highlightTexture,0));
|
|
2
|
-
vec2 uv = sUV;
|
|
3
|
-
vec2 center = texture(blurInput, uv).rg;
|
|
4
|
-
vec2 blurredHighlightValue = (vOutlinePossible == 0.0)
|
|
5
|
-
? center
|
|
6
|
-
: center * 0.204164
|
|
7
|
-
+ texture(blurInput, uv + blurSize * 1.407333).rg * 0.304005
|
|
8
|
-
+ texture(blurInput, uv - blurSize * 1.407333).rg * 0.304005
|
|
9
|
-
+ texture(blurInput, uv + blurSize * 3.294215).rg * 0.093913
|
|
10
|
-
+ texture(blurInput, uv - blurSize * 3.294215).rg * 0.093913;
|
|
11
|
-
float highlightIntensity = blurredHighlightValue.r;
|
|
12
|
-
float occlusionWeight = blurredHighlightValue.g;
|
|
13
|
-
if (highlightIntensity <= 0.01) {
|
|
14
|
-
discard;
|
|
15
|
-
}
|
|
16
|
-
vec4 fillColor = texelFetch(highlightOptionsTexture, ivec2(highlightLevel, 0), 0);
|
|
17
|
-
vec4 outlineColor = texelFetch(highlightOptionsTexture, ivec2(highlightLevel, 1), 0);
|
|
18
|
-
uvec2 centerTexel = texelFetch(highlightTexture, ivec2(uv * highlightTextureSize), 0).rg;
|
|
19
|
-
uint centerBits = readLevelBits(centerTexel, highlightLevel);
|
|
20
|
-
bool centerFilled = (centerBits & 1u) == 1u;
|
|
21
|
-
bool centerOccluded = (centerBits & 3u) == 3u;
|
|
22
|
-
bool occluded = centerOccluded || (0.5 * highlightIntensity < occlusionWeight);
|
|
23
|
-
float occlusionFactor = occluded ? occludedIntensityFactor : 1.0;
|
|
24
|
-
float outlineFactor = centerFilled ? 1.0 : smoothstep(0.0, inner, highlightIntensity);
|
|
25
|
-
float fillFactor = centerFilled ? 1.0 : 0.0;
|
|
26
|
-
vec4 baseColor = mix(outlineColor, fillColor, fillFactor);
|
|
27
|
-
float intensity = baseColor.a * occlusionFactor * outlineFactor;
|
|
28
|
-
fragColor = vec4(baseColor.rgb, intensity);`),e}const g=Object.freeze(Object.defineProperty({__proto__:null,build:p},Symbol.toStringTag,{value:"Module"}))},28476(e,t,i){i.d(t,{H:()=>h,a:()=>d,b:()=>u});var r=i(48163),n=i(6733),s=i(68259),o=i(31821),a=i(15976),l=i(65786),c=i(14113);class h extends l.Y{constructor(){super(...arguments),this.blurSize=(0,r.vt)()}}function u(){const e=new c.N5;return e.include(n.Q),e.outputs.add("fragHighlight","vec2",0),e.fragment.uniforms.add(new s.t("blurSize",e=>e.blurSize),new a.o("blurInput",e=>e.blurInput)).main.add(o.H`vec2 highlightTextureSize = vec2(textureSize(blurInput,0));
|
|
29
|
-
vec2 center = texture(blurInput, sUV).rg;
|
|
30
|
-
if (vOutlinePossible == 0.0) {
|
|
31
|
-
fragHighlight = center;
|
|
32
|
-
} else {
|
|
33
|
-
vec2 sum = center * 0.204164;
|
|
34
|
-
sum += texture(blurInput, sUV + blurSize * 1.407333).rg * 0.304005;
|
|
35
|
-
sum += texture(blurInput, sUV - blurSize * 1.407333).rg * 0.304005;
|
|
36
|
-
sum += texture(blurInput, sUV + blurSize * 3.294215).rg * 0.093913;
|
|
37
|
-
sum += texture(blurInput, sUV - blurSize * 3.294215).rg * 0.093913;
|
|
38
|
-
fragHighlight = sum;
|
|
39
|
-
}`),e}const d=Object.freeze(Object.defineProperty({__proto__:null,HighlightBlurDrawParameters:h,build:u},Symbol.toStringTag,{value:"Module"}))},34053(e,t,i){i.d(t,{H:()=>l,a:()=>p,b:()=>d,c:()=>c,g:()=>h,o:()=>u});var r=i(82048),n=i(31821),s=i(9273),o=i(65786),a=i(14113);class l extends o.Y{}function c(){const e=new a.N5,{outputs:t,fragment:i}=e;return e.include(r.c),i.uniforms.add(new s.R("highlightTexture",e=>e.highlightTexture)),i.constants.add("outlineWidth","int",Math.ceil(u)),i.constants.add("cellSize","int",h),t.add("fragGrid","uvec2"),i.main.add(n.H`ivec2 inputTextureSize = textureSize(highlightTexture, 0);
|
|
40
|
-
ivec2 cellBottomLeftCornerInput = ivec2(ivec2(floor(gl_FragCoord.xy) * vec2(cellSize)));
|
|
41
|
-
ivec2 coordMid = cellBottomLeftCornerInput + ivec2(cellSize >> 1);
|
|
42
|
-
uvec2 centreTexel = texelFetch(highlightTexture, coordMid, 0).rg & uvec2(0x55u);
|
|
43
|
-
float marginSquare = float(outlineWidth*outlineWidth);
|
|
44
|
-
uvec2 outputValue = centreTexel & uvec2(0x55u);
|
|
45
|
-
for(int y = -outlineWidth; y <= cellSize + outlineWidth; y+=2) {
|
|
46
|
-
int dy = y < 0 ? -y : y > cellSize ? y-cellSize : 0;
|
|
47
|
-
int xMargin = dy > 0 ? int(ceil(sqrt(marginSquare - float(dy*dy)))) : outlineWidth;
|
|
48
|
-
for(int x = -xMargin; x <= cellSize + xMargin; x+=2) {
|
|
49
|
-
ivec2 coord = cellBottomLeftCornerInput + ivec2(x, y);
|
|
50
|
-
uvec2[4] texels = uvec2[4] (
|
|
51
|
-
texelFetch(highlightTexture,coord+ivec2(0,0),0).rg & uvec2(0x55u),
|
|
52
|
-
texelFetch(highlightTexture,coord+ivec2(1,0),0).rg & uvec2(0x55u),
|
|
53
|
-
texelFetch(highlightTexture,coord+ivec2(0,1),0).rg & uvec2(0x55u),
|
|
54
|
-
texelFetch(highlightTexture,coord+ivec2(1,1),0).rg & uvec2(0x55u)
|
|
55
|
-
);
|
|
56
|
-
if (texels[0] == texels[1] && texels[1] == texels[2] && texels[2] == texels[3] && texels[3] == centreTexel) {
|
|
57
|
-
continue;
|
|
58
|
-
}
|
|
59
|
-
for (int i=0; i<4; ++i){
|
|
60
|
-
outputValue |= ((texels[i] ^ centreTexel) << 1);
|
|
61
|
-
outputValue |= texels[i];
|
|
62
|
-
}
|
|
63
|
-
}
|
|
64
|
-
}
|
|
65
|
-
fragGrid = outputValue;`),e}const h=32,u=9,d=.4,p=Object.freeze(Object.defineProperty({__proto__:null,HighlightDownsampleDrawParameters:l,blurSize:d,build:c,gridCellPixelSize:h,outlineSize:u},Symbol.toStringTag,{value:"Module"}))},16824(e,t,i){i.d(t,{H:()=>h,b:()=>c});var r=i(6733),n=i(29236),s=i(31821),o=i(93588),a=i(9273),l=i(14113);function c(){const e=new l.N5;e.include(r.Q),e.include(n.y);const{fragment:t}=e;return e.outputs.add("fragSingleHighlight","vec2",0),t.uniforms.add(new a.R("highlightTexture",e=>e.highlightTexture),new o.c("highlightLevel",e=>e.highlightLevel)),t.main.add(s.H`ivec2 iuv = ivec2(gl_FragCoord.xy);
|
|
66
|
-
uvec2 inputTexel = texelFetch(highlightTexture, iuv, 0).rg;
|
|
67
|
-
uint bits = readLevelBits(inputTexel, highlightLevel);
|
|
68
|
-
bool hasHighlight = (bits & 1u) == 1u;
|
|
69
|
-
bool hasOccluded = (bits & 2u) == 2u;
|
|
70
|
-
fragSingleHighlight = vec2(hasHighlight ? 1.0 : 0.0, hasOccluded ? 1.0 : 0.0);`),e}const h=Object.freeze(Object.defineProperty({__proto__:null,build:c},Symbol.toStringTag,{value:"Module"}))},80583(e,t,i){i.d(t,{O:()=>h,a:()=>d,b:()=>u});var r=i(82048),n=i(20304),s=i(31821),o=i(93588),a=i(63761),l=i(65786),c=i(14113);class h extends l.Y{constructor(){super(...arguments),this.overlayIndex=0,this.opacity=1}}function u(){const e=new c.N5;return e.include(r.c),e.fragment.uniforms.add(new a.N("tex",e=>e.texture)),e.fragment.uniforms.add(new o.c("overlayIdx",e=>e.overlayIndex)),e.fragment.uniforms.add(new n.m("opacity",e=>e.opacity)),e.fragment.main.add(s.H`vec2 overlayUV = overlayIdx == 0 ? vec2(uv.x * 0.5, uv.y) : vec2(uv.x * 0.5 + 0.5, uv.y);
|
|
71
|
-
fragColor = texture(tex, overlayUV) * opacity;`),e}const d=Object.freeze(Object.defineProperty({__proto__:null,OverlayCompositingPassParameters:h,build:u},Symbol.toStringTag,{value:"Module"}))},32565(e,t,i){i.d(t,{R:()=>A,b:()=>C,r:()=>T});var r=i(68317),n=i(36782),s=i(84652),o=i(2923),a=i(28974),l=i(89786),c=i(82094),h=i(63365),u=i(66269),d=i(77949),p=i(77108),g=i(14314),f=i(71988),m=i(33094),v=i(20304),y=i(31821),x=i(58029),_=i(26934),b=i(54073),w=i(73541),S=i(14113);const T=1;function C(e){const t=new S.N5,{attributes:i,varyings:C,vertex:A,fragment:R}=t,{applyMarkerOffset:E,draped:O,output:M,capType:L,stippleEnabled:P,falloffEnabled:I,roundJoins:z,wireframe:D,innerColorEnabled:F,hasAnimation:N,hasScreenSizePerspective:W,worldSizedImagePattern:V}=e;A.inputs.add("position",()=>"position"),R.include(l.p),t.include(s.s,e),t.include(o.q,e),t.include(n.g,e),t.include(b.Q,e);const j=E&&!O;j&&(A.uniforms.add(new v.m("markerScale",e=>e.markerScale)),t.include(a.r,{space:2,hasScreenSizePerspective:W})),(0,d.NB)(A,e),A.uniforms.add(new x.F("inverseProjectionMatrix",e=>e.camera.inverseProjectionMatrix),new p.E("nearFar",e=>e.camera.nearFar),new v.m("miterLimit",e=>"miter"!==e.join?0:e.miterLimit),new g.I("viewport",e=>e.camera.fullViewport)),A.constants.add("LARGE_HALF_FLOAT","float",65500),i.add("position","vec3"),i.add("previousDelta","vec4"),i.add("nextDelta","vec4"),i.add("lineParameters","vec2"),i.add("u0","float"),C.add("vColor","vec4"),C.add("vpos","vec3",{invariant:!0}),C.add("vLineDistance","float"),C.add("vLineWidth","float");const H=P;H&&C.add("vLineSizeInv","float");const U=2===L,Z=P&&U,B=I||Z;B&&C.add("vLineDistanceNorm","float"),U&&(C.add("vSegmentSDF","float"),C.add("vReverseSegmentSDF","float")),A.code.add(y.H`vec3 perpendicular(vec3 v) {
|
|
72
|
-
return vec3(v.y, -v.x, 0.0);
|
|
73
|
-
}
|
|
74
|
-
float interp(float ncp, vec4 a, vec4 b) {
|
|
75
|
-
return (-ncp - a.z) / (b.z - a.z);
|
|
76
|
-
}
|
|
77
|
-
vec3 rotateZ(vec3 v, float a) {
|
|
78
|
-
float s = sin(a);
|
|
79
|
-
float c = cos(a);
|
|
80
|
-
mat2 m = mat2(c, -s, s, c);
|
|
81
|
-
return vec3(m * v.xy, v.z);
|
|
82
|
-
}`),A.code.add(y.H`vec4 projectAndScale(vec4 pos) {
|
|
83
|
-
vec4 posNdc = proj * pos;
|
|
84
|
-
posNdc.xy *= viewport.zw / posNdc.w;
|
|
85
|
-
posNdc.z /= posNdc.w;
|
|
86
|
-
return posNdc;
|
|
87
|
-
}`),A.code.add(y.H`void clip(
|
|
88
|
-
inout vec4 pos,
|
|
89
|
-
inout vec4 prev,
|
|
90
|
-
inout vec4 next,
|
|
91
|
-
bool isStartVertex
|
|
92
|
-
) {
|
|
93
|
-
float vnp = nearFar[0] * 0.99;
|
|
94
|
-
if (pos.z > -nearFar[0]) {
|
|
95
|
-
if (!isStartVertex) {
|
|
96
|
-
if (prev.z < -nearFar[0]) {
|
|
97
|
-
pos = mix(prev, pos, interp(vnp, prev, pos));
|
|
98
|
-
next = pos;
|
|
99
|
-
} else {
|
|
100
|
-
pos = vec4(0.0, 0.0, 0.0, 1.0);
|
|
101
|
-
}
|
|
102
|
-
} else {
|
|
103
|
-
if (next.z < -nearFar[0]) {
|
|
104
|
-
pos = mix(pos, next, interp(vnp, pos, next));
|
|
105
|
-
prev = pos;
|
|
106
|
-
} else {
|
|
107
|
-
pos = vec4(0.0, 0.0, 0.0, 1.0);
|
|
108
|
-
}
|
|
109
|
-
}
|
|
110
|
-
} else {
|
|
111
|
-
if (prev.z > -nearFar[0]) {
|
|
112
|
-
prev = mix(pos, prev, interp(vnp, pos, prev));
|
|
113
|
-
}
|
|
114
|
-
if (next.z > -nearFar[0]) {
|
|
115
|
-
next = mix(next, pos, interp(vnp, next, pos));
|
|
116
|
-
}
|
|
117
|
-
}
|
|
118
|
-
}`),(0,d.Nz)(A),A.constants.add("aaWidth","float",P?0:1).main.add(y.H`
|
|
119
|
-
// unpack values from vertex type
|
|
120
|
-
bool isStartVertex = abs(abs(lineParameters.y) - 3.0) == 1.0;
|
|
121
|
-
vec3 prevPosition = position + previousDelta.xyz * previousDelta.w;
|
|
122
|
-
vec3 nextPosition = position + nextDelta.xyz * nextDelta.w;
|
|
123
|
-
|
|
124
|
-
float coverage = 1.0;
|
|
125
|
-
|
|
126
|
-
// Check for special value of lineParameters.y which is used by the Renderer when graphics are removed before the
|
|
127
|
-
// VBO is recompacted. If this is the case, then we just project outside of clip space.
|
|
128
|
-
if (lineParameters.y == 0.0) {
|
|
129
|
-
gl_Position = ${c.Z};
|
|
130
|
-
}
|
|
131
|
-
else {
|
|
132
|
-
vec4 pos = view * vec4(position, 1.0);
|
|
133
|
-
vec4 prev = view * vec4(prevPosition, 1.0);
|
|
134
|
-
vec4 next = view * vec4(nextPosition, 1.0);
|
|
135
|
-
|
|
136
|
-
bool isJoin = abs(lineParameters.y) < 3.0;
|
|
137
|
-
`),j&&A.main.add(y.H`vec4 other = isStartVertex ? next : prev;
|
|
138
|
-
bool markersHidden = areWorldMarkersHidden(pos.xyz, other.xyz);
|
|
139
|
-
if (!isJoin && !markersHidden) {
|
|
140
|
-
pos.xyz += normalize(other.xyz - pos.xyz) * getWorldMarkerSize(pos.xyz) * 0.5;
|
|
141
|
-
}`),t.include(u.F),A.main.add(y.H`
|
|
142
|
-
clip(pos, prev, next, isStartVertex);
|
|
143
|
-
|
|
144
|
-
vec3 clippedPos = pos.xyz;
|
|
145
|
-
vec3 clippedCenter = mix(pos.xyz, isStartVertex ? next.xyz : prev.xyz, 0.5);
|
|
146
|
-
|
|
147
|
-
pos = projectAndScale(pos);
|
|
148
|
-
next = projectAndScale(next);
|
|
149
|
-
prev = projectAndScale(prev);
|
|
150
|
-
|
|
151
|
-
vec3 left = (pos.xyz - prev.xyz);
|
|
152
|
-
vec3 right = (next.xyz - pos.xyz);
|
|
153
|
-
|
|
154
|
-
float leftLen = length(left);
|
|
155
|
-
float rightLen = length(right);
|
|
156
|
-
|
|
157
|
-
float lineSize = getSize(${(0,y.If)(W,"clippedPos")});
|
|
158
|
-
${(0,y.If)(P&&W,"float patternLineSize = getSize(clippedCenter);")}
|
|
159
|
-
${(0,y.If)(P&&!W,"float patternLineSize = lineSize;")}
|
|
160
|
-
|
|
161
|
-
${(0,y.If)(V,y.H`
|
|
162
|
-
lineSize += aaWidth;
|
|
163
|
-
float lineWidth = lineSize * pixelRatio * worldToScreenRatio;
|
|
164
|
-
if (lineWidth < 1.0) {
|
|
165
|
-
coverage = lineWidth;
|
|
166
|
-
lineWidth = 1.0;
|
|
167
|
-
}
|
|
168
|
-
`,y.H`
|
|
169
|
-
if (lineSize < 1.0) {
|
|
170
|
-
coverage = lineSize; // convert sub-pixel coverage to alpha
|
|
171
|
-
lineSize = 1.0;
|
|
172
|
-
}
|
|
173
|
-
|
|
174
|
-
lineSize += aaWidth;
|
|
175
|
-
float lineWidth = lineSize * pixelRatio;
|
|
176
|
-
`)}
|
|
177
|
-
|
|
178
|
-
vLineWidth = noPerspectiveWrite(lineWidth, pos.w);
|
|
179
|
-
${H?y.H`vLineSizeInv = noPerspectiveWrite(1.0 / lineSize, pos.w);`:""}
|
|
180
|
-
`),(P||U)&&A.main.add(y.H`
|
|
181
|
-
float isEndVertex = float(!isStartVertex);
|
|
182
|
-
vec3 segmentOrigin = mix(pos.xyz, prev.xyz, isEndVertex);
|
|
183
|
-
vec3 segment = mix(right, left, isEndVertex);
|
|
184
|
-
${U?y.H`vec3 segmentEnd = mix(next.xyz, pos.xyz, isEndVertex);`:""}
|
|
185
|
-
`),A.main.add(y.H`left = (leftLen > 0.001) ? left/leftLen : vec3(0.0, 0.0, 0.0);
|
|
186
|
-
right = (rightLen > 0.001) ? right/rightLen : vec3(0.0, 0.0, 0.0);
|
|
187
|
-
vec3 segmentDirection = isStartVertex ? right : left;
|
|
188
|
-
vec3 capDisplacementDir = vec3(0.0, 0.0, 0.0);
|
|
189
|
-
vec3 joinDisplacementDir = vec3(0.0, 0.0, 0.0);
|
|
190
|
-
float displacementLen = lineWidth;
|
|
191
|
-
if (isJoin) {
|
|
192
|
-
bool isOutside = (left.x * right.y - left.y * right.x) * lineParameters.y > 0.0;
|
|
193
|
-
vec3 joinDirection = normalize(left + right);
|
|
194
|
-
joinDisplacementDir = perpendicular(joinDirection);
|
|
195
|
-
if (leftLen > 0.001 && rightLen > 0.001) {
|
|
196
|
-
float nDotSeg = dot(joinDisplacementDir, left);
|
|
197
|
-
displacementLen /= length(nDotSeg * left - joinDisplacementDir);
|
|
198
|
-
if (!isOutside) {
|
|
199
|
-
displacementLen = min(displacementLen, min(leftLen, rightLen)/abs(nDotSeg));
|
|
200
|
-
}
|
|
201
|
-
}
|
|
202
|
-
float subdivisionFactor = lineParameters.x;
|
|
203
|
-
if (isOutside && (displacementLen > miterLimit * lineWidth)) {`),z?A.main.add(y.H`
|
|
204
|
-
vec3 startDir = leftLen < 0.001 ? right : left;
|
|
205
|
-
startDir = perpendicular(startDir);
|
|
206
|
-
|
|
207
|
-
vec3 endDir = rightLen < 0.001 ? left : right;
|
|
208
|
-
endDir = perpendicular(endDir);
|
|
209
|
-
|
|
210
|
-
float factor = ${P?y.H`min(1.0, subdivisionFactor * ${y.H.float((T+2)/(T+1))})`:y.H`subdivisionFactor`};
|
|
211
|
-
|
|
212
|
-
float rotationAngle = acos(clamp(dot(startDir.xy, endDir.xy), -1.0, 1.0));
|
|
213
|
-
joinDisplacementDir = rotateZ(startDir, -sign(lineParameters.y) * factor * rotationAngle);
|
|
214
|
-
`):A.main.add(y.H`if (leftLen < 0.001) {
|
|
215
|
-
joinDisplacementDir = right;
|
|
216
|
-
}
|
|
217
|
-
else if (rightLen < 0.001) {
|
|
218
|
-
joinDisplacementDir = left;
|
|
219
|
-
}
|
|
220
|
-
else {
|
|
221
|
-
joinDisplacementDir = (isStartVertex || subdivisionFactor > 0.0) ? right : left;
|
|
222
|
-
}
|
|
223
|
-
joinDisplacementDir = perpendicular(joinDisplacementDir);`);const k=0!==L;return A.main.add(y.H`
|
|
224
|
-
displacementLen = lineWidth;
|
|
225
|
-
}
|
|
226
|
-
} else {
|
|
227
|
-
// CAP handling ---------------------------------------------------
|
|
228
|
-
joinDisplacementDir = isStartVertex ? right : left;
|
|
229
|
-
joinDisplacementDir = perpendicular(joinDisplacementDir);
|
|
230
|
-
|
|
231
|
-
${k?y.H`capDisplacementDir = vec3((isStartVertex ? -right : left).xy, 0.0);`:""}
|
|
232
|
-
}
|
|
233
|
-
`),A.main.add(y.H`
|
|
234
|
-
// Displacement (in pixels) caused by join/or cap
|
|
235
|
-
vec2 dposXY = (joinDisplacementDir.xy * sign(lineParameters.y) + capDisplacementDir.xy) * displacementLen;
|
|
236
|
-
|
|
237
|
-
/**
|
|
238
|
-
* To prevent z-fighting between layers, we also adjust the z value.
|
|
239
|
-
* We want to ensure that the orientation of the final triangles is the same, regardless of the line width.
|
|
240
|
-
* To do so, the below formula projects the xy displacement onto the original segment direction
|
|
241
|
-
* to find the z-offset necessary so the triangle orientation is independent of the width.
|
|
242
|
-
*/
|
|
243
|
-
float dposZ = dot(dposXY, segmentDirection.xy) / dot(segmentDirection.xy, segmentDirection.xy) * segmentDirection.z;
|
|
244
|
-
vec3 dpos = vec3(dposXY, dposZ);
|
|
245
|
-
float lineDistNorm = noPerspectiveWrite(sign(lineParameters.y), pos.w);
|
|
246
|
-
|
|
247
|
-
vLineDistance = lineWidth * lineDistNorm;
|
|
248
|
-
${B?y.H`vLineDistanceNorm = lineDistNorm;`:""}
|
|
249
|
-
|
|
250
|
-
pos.xyz += dpos;
|
|
251
|
-
`),U&&A.main.add(y.H`vec2 segmentDir = normalize(segment.xy);
|
|
252
|
-
vSegmentSDF = noPerspectiveWrite((isJoin && isStartVertex) ? LARGE_HALF_FLOAT : (dot(pos.xy - segmentOrigin.xy, segmentDir)), pos.w);
|
|
253
|
-
vReverseSegmentSDF = noPerspectiveWrite((isJoin && !isStartVertex) ? LARGE_HALF_FLOAT : (dot(pos.xy - segmentEnd.xy, -segmentDir)), pos.w);`),P&&(O?A.uniforms.add(new m.U("worldToScreenRatio",e=>1/e.screenToPCSRatio)):A.main.add(y.H`vec3 segmentCenter = mix((nextPosition + position) * 0.5, (position + prevPosition) * 0.5, isEndVertex);
|
|
254
|
-
float worldToScreenRatio = computeWorldToScreenRatio(segmentCenter);`),A.main.add(y.H`float segmentLengthScreenDouble = length(segment.xy);
|
|
255
|
-
float segmentLengthScreen = segmentLengthScreenDouble * 0.5;
|
|
256
|
-
float discreteWorldToScreenRatio = discretizeWorldToScreenRatio(worldToScreenRatio);
|
|
257
|
-
float segmentLengthRender = length(mix(nextPosition - position, position - prevPosition, isEndVertex));
|
|
258
|
-
vStipplePatternStretch = worldToScreenRatio / discreteWorldToScreenRatio;`),O?A.main.add(y.H`float segmentLengthPseudoScreen = segmentLengthScreen / pixelRatio * discreteWorldToScreenRatio / worldToScreenRatio;
|
|
259
|
-
float startPseudoScreen = u0 * discreteWorldToScreenRatio - mix(0.0, segmentLengthPseudoScreen, isEndVertex);`):A.main.add(y.H`float startPseudoScreen = mix(u0, u0 - segmentLengthRender, isEndVertex) * discreteWorldToScreenRatio;
|
|
260
|
-
float segmentLengthPseudoScreen = segmentLengthRender * discreteWorldToScreenRatio;`),A.uniforms.add(new v.m("stipplePatternPixelSize",e=>(0,o.h)(e))),A.main.add(y.H`
|
|
261
|
-
float patternLength = patternLineSize * stipplePatternPixelSize;
|
|
262
|
-
|
|
263
|
-
${(0,y.If)(V,y.H`
|
|
264
|
-
float uu = mix(u0, u0 - segmentLengthRender, isEndVertex);
|
|
265
|
-
vStippleDistanceLimits = vec2(uu, uu + segmentLengthRender);
|
|
266
|
-
vStipplePatternStretch = 1.0;
|
|
267
|
-
|
|
268
|
-
// The v-coordinate used in case of an image pattern.
|
|
269
|
-
bool isLeft = sign(lineParameters.y) < 0.0;
|
|
270
|
-
vStippleV = isLeft ? 0.0 : 1.0;
|
|
271
|
-
`,y.H`
|
|
272
|
-
// Compute the coordinates at both start and end of the line segment, because we need both to clamp to in the
|
|
273
|
-
// fragment shader
|
|
274
|
-
vStippleDistanceLimits = computeStippleDistanceLimits(startPseudoScreen, segmentLengthPseudoScreen, segmentLengthScreen, patternLength);
|
|
275
|
-
`)}
|
|
276
|
-
|
|
277
|
-
vStippleDistance = mix(vStippleDistanceLimits.x, vStippleDistanceLimits.y, isEndVertex);
|
|
278
|
-
|
|
279
|
-
// Adjust the coordinate to the displaced position (the pattern is shortened/overextended on the in/outside of
|
|
280
|
-
// joins)
|
|
281
|
-
if (segmentLengthScreenDouble >= 0.001) {
|
|
282
|
-
// Project the actual vertex position onto the line segment. Note that the resulting factor is within [0..1]
|
|
283
|
-
// at the original vertex positions, and slightly outside of that range at the displaced positions
|
|
284
|
-
vec3 stippleDisplacement = pos.xyz - segmentOrigin;
|
|
285
|
-
float stippleDisplacementFactor = dot(segment.xy, stippleDisplacement.xy) / (segmentLengthScreenDouble * segmentLengthScreenDouble);
|
|
286
|
-
|
|
287
|
-
// Apply this offset to the actual vertex coordinate (can be screen or pseudo-screen space)
|
|
288
|
-
vStippleDistance += (stippleDisplacementFactor - isEndVertex) * (vStippleDistanceLimits.y - vStippleDistanceLimits.x);
|
|
289
|
-
}
|
|
290
|
-
|
|
291
|
-
// Cancel out perspective correct interpolation because we want this length the really represent the screen
|
|
292
|
-
// distance
|
|
293
|
-
vStippleDistanceLimits = noPerspectiveWrite(vStippleDistanceLimits, pos.w);
|
|
294
|
-
vStippleDistance = noPerspectiveWrite(vStippleDistance, pos.w);
|
|
295
|
-
|
|
296
|
-
// Disable stipple distance limits on caps
|
|
297
|
-
vStippleDistanceLimits = isJoin ?
|
|
298
|
-
vStippleDistanceLimits :
|
|
299
|
-
isStartVertex ?
|
|
300
|
-
vec2(-1e34, vStippleDistanceLimits.y) :
|
|
301
|
-
vec2(vStippleDistanceLimits.x, 1e34);
|
|
302
|
-
`)),A.main.add(y.H`
|
|
303
|
-
// Convert back into NDC
|
|
304
|
-
pos.xy = (pos.xy / viewport.zw) * pos.w;
|
|
305
|
-
pos.z = pos.z * pos.w;
|
|
306
|
-
|
|
307
|
-
vColor = getColor();
|
|
308
|
-
vColor.a = noPerspectiveWrite(vColor.a * coverage, pos.w);
|
|
309
|
-
|
|
310
|
-
${D&&!O?"pos.z -= 0.001 * pos.w;":""}
|
|
311
|
-
|
|
312
|
-
// transform final position to camera space for slicing
|
|
313
|
-
vpos = (inverseProjectionMatrix * pos).xyz;
|
|
314
|
-
gl_Position = pos;
|
|
315
|
-
forwardObjectAndLayerIdColor();
|
|
316
|
-
}`),t.fragment.include(r.HQ,e),t.include(w.D,e),R.include(h.a),R.main.add(y.H`discardBySlice(vpos);`),t.include(u.m),R.include(_.Q),R.main.add(y.H`
|
|
317
|
-
float lineWidth = noPerspectiveRead(vLineWidth);
|
|
318
|
-
float lineDistance = noPerspectiveRead(vLineDistance);
|
|
319
|
-
${(0,y.If)(B,y.H`float lineDistanceNorm = noPerspectiveRead(vLineDistanceNorm);`)}
|
|
320
|
-
`),D?R.main.add(y.H`vec4 finalColor = vec4(1.0, 0.0, 1.0, 1.0);`):(U&&R.main.add(y.H`float sdf = noPerspectiveRead(min(vSegmentSDF, vReverseSegmentSDF));
|
|
321
|
-
vec2 fragmentPosition = vec2(min(sdf, 0.0), lineDistance);
|
|
322
|
-
float fragmentRadius = length(fragmentPosition);
|
|
323
|
-
float fragmentCapSDF = (fragmentRadius - lineWidth) * 0.5;
|
|
324
|
-
float capCoverage = clamp(0.5 - fragmentCapSDF, 0.0, 1.0);
|
|
325
|
-
if (capCoverage < alphaCutoff) {
|
|
326
|
-
discard;
|
|
327
|
-
}`),Z?R.main.add(y.H`vec2 stipplePosition = vec2(
|
|
328
|
-
min(getStippleSDF() * 2.0 - 1.0, 0.0),
|
|
329
|
-
lineDistanceNorm
|
|
330
|
-
);
|
|
331
|
-
float stippleRadius = length(stipplePosition * lineWidth);
|
|
332
|
-
float stippleCapSDF = (stippleRadius - lineWidth) * 0.5;
|
|
333
|
-
float stippleCoverage = clamp(0.5 - stippleCapSDF, 0.0, 1.0);
|
|
334
|
-
float stippleAlpha = step(alphaCutoff, stippleCoverage);`):R.main.add(y.H`float stippleAlpha = getStippleAlpha(lineWidth);`),11!==M&&R.main.add(y.H`discardByStippleAlpha(stippleAlpha, alphaCutoff);`),t.include(u.m),R.uniforms.add(new f.E("intrinsicColor",e=>e.color)).main.add(y.H`vec4 color = intrinsicColor * vColor;
|
|
335
|
-
color.a = noPerspectiveRead(color.a);`),F&&R.uniforms.add(new f.E("innerColor",e=>e.innerColor??e.color),new v.m("innerWidth",(e,t)=>e.innerWidth*t.camera.pixelRatio)).main.add(y.H`float distToInner = abs(lineDistance) - innerWidth;
|
|
336
|
-
float innerAA = clamp(0.5 - distToInner, 0.0, 1.0);
|
|
337
|
-
float innerAlpha = innerColor.a + color.a * (1.0 - innerColor.a);
|
|
338
|
-
color = mix(color, vec4(innerColor.rgb, innerAlpha), innerAA);`),R.main.add(y.H`vec4 finalColor = blendStipple(color, stippleAlpha);`),I&&(R.uniforms.add(new v.m("falloff",e=>e.falloff)),R.main.add(y.H`finalColor.a *= pow(max(0.0, 1.0 - abs(lineDistanceNorm)), falloff);`)),P||R.main.add(y.H`float featherStartDistance = max(lineWidth - 2.0, 0.0);
|
|
339
|
-
float value = abs(lineDistance);
|
|
340
|
-
float feather = (value - featherStartDistance) / (lineWidth - featherStartDistance);
|
|
341
|
-
finalColor.a *= 1.0 - clamp(feather, 0.0, 1.0);`),N&&R.main.add(y.H`
|
|
342
|
-
finalColor = animate(finalColor);
|
|
343
|
-
|
|
344
|
-
${(0,y.If)(11!==M,y.H`
|
|
345
|
-
if (finalColor.a <= alphaCutoff) {
|
|
346
|
-
discard;
|
|
347
|
-
}`)}
|
|
348
|
-
`)),R.main.add(y.H`outputColorHighlightOLID(applySlice(finalColor, vpos), finalColor.rgb);`),t}const A=Object.freeze(Object.defineProperty({__proto__:null,build:C,ribbonlineNumRoundJoinSubdivisions:T},Symbol.toStringTag,{value:"Module"}))},92942(e,t,i){i.d(t,{T:()=>h,a:()=>d,b:()=>u});var r=i(51850),n=i(82048),s=i(33079),o=i(31821),a=i(63761),l=i(65786),c=i(14113);class h extends l.Y{constructor(){super(...arguments),this.color=(0,r.fA)(1,1,1)}}function u(){const e=new c.N5;return e.include(n.c),e.fragment.uniforms.add(new a.N("tex",e=>e.texture),new s.t("uColor",e=>e.color)).main.add(o.H`vec4 texColor = texture(tex, uv);
|
|
349
|
-
fragColor = texColor * vec4(uColor, 1.0);`),e}const d=Object.freeze(Object.defineProperty({__proto__:null,TexturePassParameters:h,build:u},Symbol.toStringTag,{value:"Module"}))},83349(e,t,i){function r(e,t,i){i=i||2;var r,s,a,l,c,h,d,p=t&&t.length,g=p?t[0]*i:e.length,f=n(e,0,g,i,!0),m=[];if(!f||f.next===f.prev)return m;if(p&&(f=u(e,t,f,i)),e.length>80*i){r=a=e[0],s=l=e[1];for(var v=i;v<g;v+=i)(c=e[v])<r&&(r=c),(h=e[v+1])<s&&(s=h),c>a&&(a=c),h>l&&(l=h);d=0!==(d=Math.max(a-r,l-s))?1/d:0}return o(f,m,i,r,s,d),m}function n(e,t,i,r,n){var s,o;if(n===L(e,t,i,r)>0)for(s=t;s<i;s+=r)o=E(s,e[s],e[s+1],o);else for(s=i-r;s>=t;s-=r)o=E(s,e[s],e[s+1],o);if(o&&w(o,o.next)){var a=o.next;O(o),o=a}return o}function s(e,t){if(!e)return e;t||(t=e);var i,r=e;do{if(i=!1,r.steiner||!w(r,r.next)&&0!==b(r.prev,r,r.next))r=r.next;else{var n=r.prev;if(O(r),(r=t=n)===r.next)break;i=!0}}while(i||r!==t);return t}function o(e,t,i,r,n,u,d){if(e){!d&&u&&m(e,r,n,u);for(var p,g,f=e;e.prev!==e.next;)if(p=e.prev,g=e.next,u?l(e,r,n,u):a(e))t.push(p.i/i),t.push(e.i/i),t.push(g.i/i),O(e),e=g.next,f=g.next;else if((e=g)===f){d?1===d?o(e=c(s(e),t,i),t,i,r,n,u,2):2===d&&h(e,t,i,r,n,u):o(s(e),t,i,r,n,u,1);break}}}function a(e){var t=e.prev,i=e,r=e.next;if(b(t,i,r)>=0)return!1;for(var n=e.next.next;n!==e.prev;){if(x(t.x,t.y,i.x,i.y,r.x,r.y,n.x,n.y)&&b(n.prev,n,n.next)>=0)return!1;n=n.next}return!0}function l(e,t,i,r){var n=e.prev,s=e,o=e.next;if(b(n,s,o)>=0)return!1;for(var a=n.x<s.x?n.x<o.x?n.x:o.x:s.x<o.x?s.x:o.x,l=n.y<s.y?n.y<o.y?n.y:o.y:s.y<o.y?s.y:o.y,c=n.x>s.x?n.x>o.x?n.x:o.x:s.x>o.x?s.x:o.x,h=n.y>s.y?n.y>o.y?n.y:o.y:s.y>o.y?s.y:o.y,u=v(a,l,t,i,r),d=v(c,h,t,i,r),p=e.prevZ,g=e.nextZ;p&&p.z>=u&&g&&g.z<=d;){if(p!==e.prev&&p!==e.next&&x(n.x,n.y,s.x,s.y,o.x,o.y,p.x,p.y)&&b(p.prev,p,p.next)>=0)return!1;if(p=p.prevZ,g!==e.prev&&g!==e.next&&x(n.x,n.y,s.x,s.y,o.x,o.y,g.x,g.y)&&b(g.prev,g,g.next)>=0)return!1;g=g.nextZ}for(;p&&p.z>=u;){if(p!==e.prev&&p!==e.next&&x(n.x,n.y,s.x,s.y,o.x,o.y,p.x,p.y)&&b(p.prev,p,p.next)>=0)return!1;p=p.prevZ}for(;g&&g.z<=d;){if(g!==e.prev&&g!==e.next&&x(n.x,n.y,s.x,s.y,o.x,o.y,g.x,g.y)&&b(g.prev,g,g.next)>=0)return!1;g=g.nextZ}return!0}function c(e,t,i){var r=e;do{var n=r.prev,o=r.next.next;!w(n,o)&&S(n,r,r.next,o)&&A(n,o)&&A(o,n)&&(t.push(n.i/i),t.push(r.i/i),t.push(o.i/i),O(r),O(r.next),r=e=o),r=r.next}while(r!==e);return s(r)}function h(e,t,i,r,n,a){var l=e;do{for(var c=l.next.next;c!==l.prev;){if(l.i!==c.i&&_(l,c)){var h=R(l,c);return l=s(l,l.next),h=s(h,h.next),o(l,t,i,r,n,a),void o(h,t,i,r,n,a)}c=c.next}l=l.next}while(l!==e)}function u(e,t,i,r){var o,a,l,c=[];for(o=0,a=t.length;o<a;o++)(l=n(e,t[o]*r,o<a-1?t[o+1]*r:e.length,r,!1))===l.next&&(l.steiner=!0),c.push(y(l));for(c.sort(d),o=0;o<c.length;o++)i=s(i=g(c[o],i),i.next);return i}function d(e,t){return e.x-t.x}function p(e){if(e.next.prev===e)return e;let t=e;for(;;){const i=t.next;if(i.prev===t||i===t||i===e)break;t=i}return t}function g(e,t){var i=function(e,t){var i,r=t,n=e.x,s=e.y,o=-1/0;do{if(s<=r.y&&s>=r.next.y&&r.next.y!==r.y){var a=r.x+(s-r.y)*(r.next.x-r.x)/(r.next.y-r.y);if(a<=n&&a>o){if(o=a,a===n){if(s===r.y)return r;if(s===r.next.y)return r.next}i=r.x<r.next.x?r:r.next}}r=r.next}while(r!==t);if(!i)return null;if(n===o)return i;var l,c=i,h=i.x,u=i.y,d=1/0;r=i;do{n>=r.x&&r.x>=h&&n!==r.x&&x(s<u?n:o,s,h,u,s<u?o:n,s,r.x,r.y)&&(l=Math.abs(s-r.y)/(n-r.x),A(r,e)&&(l<d||l===d&&(r.x>i.x||r.x===i.x&&f(i,r)))&&(i=r,d=l)),r=r.next}while(r!==c);return i}(e,t);if(!i)return t;var r=R(i,e),n=s(i,i.next);let o=p(r);return s(o,o.next),n=p(n),p(t===i?n:t)}function f(e,t){return b(e.prev,e,t.prev)<0&&b(t.next,e,e.next)<0}function m(e,t,i,r){var n=e;do{null===n.z&&(n.z=v(n.x,n.y,t,i,r)),n.prevZ=n.prev,n.nextZ=n.next,n=n.next}while(n!==e);n.prevZ.nextZ=null,n.prevZ=null,function(e){var t,i,r,n,s,o,a,l,c=1;do{for(i=e,e=null,s=null,o=0;i;){for(o++,r=i,a=0,t=0;t<c&&(a++,r=r.nextZ);t++);for(l=c;a>0||l>0&&r;)0!==a&&(0===l||!r||i.z<=r.z)?(n=i,i=i.nextZ,a--):(n=r,r=r.nextZ,l--),s?s.nextZ=n:e=n,n.prevZ=s,s=n;i=r}s.nextZ=null,c*=2}while(o>1)}(n)}function v(e,t,i,r,n){return(e=1431655765&((e=858993459&((e=252645135&((e=16711935&((e=32767*(e-i)*n)|e<<8))|e<<4))|e<<2))|e<<1))|(t=1431655765&((t=858993459&((t=252645135&((t=16711935&((t=32767*(t-r)*n)|t<<8))|t<<4))|t<<2))|t<<1))<<1}function y(e){var t=e,i=e;do{(t.x<i.x||t.x===i.x&&t.y<i.y)&&(i=t),t=t.next}while(t!==e);return i}function x(e,t,i,r,n,s,o,a){return(n-o)*(t-a)-(e-o)*(s-a)>=0&&(e-o)*(r-a)-(i-o)*(t-a)>=0&&(i-o)*(s-a)-(n-o)*(r-a)>=0}function _(e,t){return e.next.i!==t.i&&e.prev.i!==t.i&&!function(e,t){var i=e;do{if(i.i!==e.i&&i.next.i!==e.i&&i.i!==t.i&&i.next.i!==t.i&&S(i,i.next,e,t))return!0;i=i.next}while(i!==e);return!1}(e,t)&&(A(e,t)&&A(t,e)&&function(e,t){var i=e,r=!1,n=(e.x+t.x)/2,s=(e.y+t.y)/2;do{i.y>s!=i.next.y>s&&i.next.y!==i.y&&n<(i.next.x-i.x)*(s-i.y)/(i.next.y-i.y)+i.x&&(r=!r),i=i.next}while(i!==e);return r}(e,t)&&(b(e.prev,e,t.prev)||b(e,t.prev,t))||w(e,t)&&b(e.prev,e,e.next)>0&&b(t.prev,t,t.next)>0)}function b(e,t,i){return(t.y-e.y)*(i.x-t.x)-(t.x-e.x)*(i.y-t.y)}function w(e,t){return e.x===t.x&&e.y===t.y}function S(e,t,i,r){var n=C(b(e,t,i)),s=C(b(e,t,r)),o=C(b(i,r,e)),a=C(b(i,r,t));return n!==s&&o!==a||!(0!==n||!T(e,i,t))||!(0!==s||!T(e,r,t))||!(0!==o||!T(i,e,r))||!(0!==a||!T(i,t,r))}function T(e,t,i){return t.x<=Math.max(e.x,i.x)&&t.x>=Math.min(e.x,i.x)&&t.y<=Math.max(e.y,i.y)&&t.y>=Math.min(e.y,i.y)}function C(e){return e>0?1:e<0?-1:0}function A(e,t){return b(e.prev,e,e.next)<0?b(e,t,e.next)>=0&&b(e,e.prev,t)>=0:b(e,t,e.prev)<0||b(e,e.next,t)<0}function R(e,t){var i=new M(e.i,e.x,e.y),r=new M(t.i,t.x,t.y),n=e.next,s=t.prev;return e.next=t,t.prev=e,i.next=n,n.prev=i,r.next=i,i.prev=r,s.next=r,r.prev=s,r}function E(e,t,i,r){var n=new M(e,t,i);return r?(n.next=r.next,n.prev=r,r.next.prev=n,r.next=n):(n.prev=n,n.next=n),n}function O(e){e.next.prev=e.prev,e.prev.next=e.next,e.prevZ&&(e.prevZ.nextZ=e.nextZ),e.nextZ&&(e.nextZ.prevZ=e.prevZ)}function M(e,t,i){this.i=e,this.x=t,this.y=i,this.prev=null,this.next=null,this.z=null,this.prevZ=null,this.nextZ=null,this.steiner=!1}function L(e,t,i,r){for(var n=0,s=t,o=i-r;s<i;s+=r)n+=(e[o]-e[s])*(e[s+1]+e[o+1]),o=s;return n}i.d(t,{e:()=>r}),r.deviation=function(e,t,i,r){var n=t&&t.length,s=n?t[0]*i:e.length,o=Math.abs(L(e,0,s,i));if(n)for(var a=0,l=t.length;a<l;a++){var c=t[a]*i,h=a<l-1?t[a+1]*i:e.length;o-=Math.abs(L(e,c,h,i))}var u=0;for(a=0;a<r.length;a+=3){var d=r[a]*i,p=r[a+1]*i,g=r[a+2]*i;u+=Math.abs((e[d]-e[g])*(e[p+1]-e[d+1])-(e[d]-e[p])*(e[g+1]-e[d+1]))}return 0===o&&0===u?0:Math.abs((u-o)/o)},r.flatten=function(e){for(var t=e[0][0].length,i={vertices:[],holes:[],dimensions:t},r=0,n=0;n<e.length;n++){for(var s=0;s<e[n].length;s++)for(var o=0;o<t;o++)i.vertices.push(e[n][s][o]);n>0&&(r+=e[n-1].length,i.holes.push(r))}return i}},21287(e,t,i){i.d(t,{M5:()=>u,eV:()=>h});var r=i(11254),n=i(49186),s=i(17676),o=i(84952),a=i(26306);let l=null,c=!0;function h(e,t,i,r){if(!t||!i)throw new Error("Cannot construct image data without dimensions");if(c)try{return new ImageData(e,t,i)}catch(e){c=!1}const n=function(e,t,i){return i||(l||(l=document.createElement("canvas"),l.width=1,l.height=1),i=l),i.getContext("2d").createImageData(e,t)}(t,i,r);return n.data.set(e,0),n}async function u(e,t){const{arrayBuffer:l,mediaType:c}=await async function(e,t){const i=(0,o.r$)(e);if(i?.isBase64)return{arrayBuffer:(0,a.M)(i.data),mediaType:i.mediaType};const n=await(0,r.A)(e,{responseType:"array-buffer",...t});return{arrayBuffer:n.data,mediaType:n.getHeader?.("Content-Type")??""}}(e,t),h="image/png"===c;if("image/gif"===c){const{isAnimatedGIF:e,parseGif:r}=await i.e(820).then(i.bind(i,10820));if(e(l))return r(l,t)}if(h){const{isAnimatedPNG:e,parseApng:r}=await i.e(2390).then(i.bind(i,22390));if(e(l))return r(l,t)}return async function(e,t){const i=window.URL.createObjectURL(e);try{const{data:e}=await(0,r.A)(i,{...t,responseType:"image"});return e}catch(e){if(!(0,s.zf)(e))throw new n.A("invalid-image",`Could not fetch requested image at ${i}`);throw e}finally{window.URL.revokeObjectURL(i)}}(new Blob([l],{type:c}),t)}},44794(e,t,i){i.d(t,{v:()=>a});var r=i(4718),n=i(62788),s=i(95488);class o{constructor(e,t){this._observable=new s.I,this._value=e,this._equalityFunction=t}get value(){return(0,n.gc)(this._observable),this._value}set value(e){this._equalityFunction(e,this._value)||(this._value=e,this._observable.notify())}mutate(e){e(this._value),this._observable.notify()}}function a(e,t=r.gh){return new o(e,t)}},57634(e,t,i){i.r(t),i.d(t,{default:()=>as});var r=i(5482),n=i(69540),s=i(49186),o=i(92474),a=i(53966),l=i(61893),c=i(17676),h=i(36708),u=i(91429),d=i(51850),p=i(91075),g=i(86738),f=i(39829),m=i(70328),v=i(24770),y=i(16939);const x="Expected location to be a Point instance";class _ extends s.A{constructor(){super("invalid-input:location",x)}}var b=i(95696),w=i(18251),S=i(73836),T=i(1193),C=i(27615),A=i(35522),R=i(65806);function E(e,t){switch(e.type){case"georeferenced":return t.isGeographic;case"local":return t.isGeographic||t.isWebMercator}}var O=i(22141),M=i(72258);const L=()=>a.A.getLogger("esri.geometry.support.meshUtils.centerAt");const P=(0,d.vt)(),I=(0,d.vt)(),z=(0,d.vt)();var D=i(9093),F=i(5443),N=i(91218),W=i(98764),V=i(48353),j=i(9762),H=i(4197),U=i(73354);const Z=(0,D.vt)(),B=(0,H.jh)(24);var k=i(84952);function G(e){const t=(0,k.nM)(e.url);return i=>{const r=(0,k.V1)(i,t,t),n=r?r.replace(/^ *\.\//,""):null;return(n?e.files.get(n):null)??i}}async function q(e,t){switch(e.type){case"client":return Array.isArray(e.files)?function(e){if(!e.length)throw new s.A("mesh-load-external:missing-assets","There must be at least one file to load");return ee(e.map(e=>({name:e.name,mimeType:e.type,source:$(e)})))}(e.files):$(e.files);case"service":return async function(e,t){if(!e.length)throw new s.A("mesh-load-external:missing-assets","There must be at least one file to load");const i=await(0,c.nA)(e.map(async e=>{const i=await async function(e,t){const{parts:i,assetMimeType:r,assetName:n}=e;if(1===i.length)return new te(i[0].partUrl);const s=await e.toBlob(t);return(0,c.Te)(t),te.fromBlob(s,ie(n,r))}(e);return(0,c.Te)(t),{name:e.assetName,mimeType:e.assetMimeType,source:i}}));if((0,c.G4)(t))throw i.forEach(e=>e.source.dispose()),(0,c.NK)();return ee(i)}(e.assets,t);default:throw new s.A("mesh-load-external:invalid-source","Invalid source type")}}function $(e){return te.fromBlob(e,ie(e.name,e.type))}const Y=/^model\/gltf\+json$/,Q=/^model\/gltf-binary$/,K=/\.gltf$/i,X=/\.glb$/i;function J({mimeType:e,source:t,name:i}){return Y.test(e)||K.test(i)?{url:t.url,type:"gltf"}:Q.test(e)||X.test(i)?{url:t.url,type:"glb"}:null}function ee(e){const t=new Map;let i=null,r=null;for(const n of e){const{source:e,name:s}=n;i??=J(n),"ESRI3DO_NORM.glb"===s&&(r=J(n)),t.set(s,e.url),e.files.forEach((e,i)=>t.set(i,e))}const n=r??i;if(null==n)throw new s.A("mesh-load-external:missing-files","Missing files to load external mesh source");return new te(n.url,()=>e.forEach(({source:e})=>e.dispose()),t,n.type)}class te{constructor(e,t=()=>{},i=new Map,r){this.url=e,this.dispose=t,this.files=i,this.type=r}static fromBlob(e,t){const i=URL.createObjectURL(e);return new te(i,()=>URL.revokeObjectURL(i),void 0,t)}}function ie(e,t){return Y.test(t)||K.test(e)?"gltf":Q.test(t)||K.test(e)?"glb":void 0}var re=i(66895),ne=i(7762),se=i(63579);let oe=class extends n.Pw{constructor(e){super(e),this.externalSources=new ne.A,this._explicitDisplaySource=null,this.addHandles((0,h.on)(()=>this.externalSources,"after-remove",({item:e})=>{e===this._explicitDisplaySource&&(this._explicitDisplaySource=null)},{sync:!0,onListenerRemove:()=>this._explicitDisplaySource=null}))}get displaySource(){return this._explicitDisplaySource??this._implicitDisplaySource}set displaySource(e){if(null!=e&&!(0,se.yr)(e))throw new Error("Cannot use this source for display: it is not in a supported format.");this._explicitDisplaySource=e,e&&this.externalSources.every(t=>!(0,se.in)(t,e))&&this.externalSources.add(e)}clearSources(){this.externalSources.removeAll()}getExternalSourcesOnService(e){return this.externalSources.items.filter(t=>(0,se.eN)(t,e))}get _implicitDisplaySource(){return this.externalSources.find(se.yr)}};(0,r.Cg)([(0,u.MZ)()],oe.prototype,"externalSources",void 0),(0,r.Cg)([(0,u.MZ)()],oe.prototype,"displaySource",null),(0,r.Cg)([(0,u.MZ)()],oe.prototype,"_implicitDisplaySource",null),(0,r.Cg)([(0,u.MZ)()],oe.prototype,"_explicitDisplaySource",void 0),oe=(0,r.Cg)([(0,u.$K)("esri.geometry.support.meshUtils.Metadata")],oe);var ae=i(29242);const le={position:[-.5,-.5,0,.5,-.5,0,.5,.5,0,-.5,.5,0],normal:[0,0,1,0,0,1,0,0,1,0,0,1],uv:[0,1,1,1,1,0,0,0],faces:[0,1,2,0,2,3],facingAxisOrderSwap:{east:[3,1,2],west:[-3,-1,2],north:[-1,3,2],south:[1,-3,2],up:[1,2,3],down:[1,-2,-3]}};function ce(e,t,i){e.isPlane||function(e){for(let t=0;t<e.position.length;t+=3)e.position[t+2]+=.5}(e),function(e,t){if(null!=t){pe[0]=t[0],pe[4]=t[1],pe[8]=t[2];for(let t=0;t<e.position.length;t+=3){for(let i=0;i<3;i++)de[i]=e.position[t+i];(0,A.ei)(de,de,pe);for(let i=0;i<3;i++)e.position[t+i]=de[i]}if(t[0]!==t[1]||t[1]!==t[2]){pe[0]=1/t[0],pe[4]=1/t[1],pe[8]=1/t[2];for(let t=0;t<e.normal.length;t+=3){for(let i=0;i<3;i++)de[i]=e.normal[t+i];(0,A.ei)(de,de,pe),(0,A.S8)(de,de);for(let i=0;i<3;i++)e.normal[t+i]=de[i]}}}}(e,function(e,t,i){const r=(0,M.xK)(t,i);if(null==e&&1===r)return null;if(null==e)return[r,r,r];if("number"==typeof e){const t=e*r;return[t,t,t]}return[null!=e.width?e.width*r:r,null!=e.depth?e.depth*r:r,null!=e.height?e.height*r:r]}(i?.size,i?.unit,t.spatialReference));const r=(0,C.TE)(t,i),n=t.spatialReference.isGeographic?(0,C.TE)(t):r,s=(0,M.UR)({vertexAttributes:e,vertexSpace:n,spatialReference:t.spatialReference},r,{allowBufferReuse:!0});return{vertexAttributes:new T.default({...s,uv:e.uv}),vertexSpace:r,components:[new y.default({faces:e.faces,material:i?.material||null})],spatialReference:t.spatialReference}}const he={faceDescriptions:[{axis:[0,-1,0],uvOrigin:[0,.625],corners:[[-1,-1],[1,-1],[1,1],[-1,1]]},{axis:[1,0,0],uvOrigin:[.25,.625],corners:[[-1,-1],[1,-1],[1,1],[-1,1]]},{axis:[0,1,0],uvOrigin:[.5,.625],corners:[[1,-1],[-1,-1],[-1,1],[1,1]]},{axis:[-1,0,0],uvOrigin:[.75,.625],corners:[[1,-1],[-1,-1],[-1,1],[1,1]]},{axis:[0,0,1],uvOrigin:[0,.375],corners:[[-1,-1],[1,-1],[1,1],[-1,1]]},{axis:[0,0,-1],uvOrigin:[0,.875],corners:[[-1,1],[1,1],[1,-1],[-1,-1]]}],uvScales:[[0,0],[1,0],[1,1],[0,1]],faceVertexOffsets:[0,1,2,0,2,3]},ue={south:0,east:1,north:2,west:3,up:4,down:5},de=(0,d.vt)(),pe=(0,ae.vt)();var ge=i(77690),fe=i(58083),me=i(67026),ve=i(82534);const ye=()=>a.A.getLogger("esri.geometry.support.meshUtils.rotate");function xe(e,t,i,r=d.uY){if(null!=e){(0,fe.$0)(Se,(0,v.$I)(t),(0,v.yo)(t));for(let t=0;t<e.length;t+=i){for(let i=0;i<3;i++)_e[i]=e[t+i]-r[i];(0,A.Z0)(_e,_e,Se);for(let i=0;i<3;i++)e[t+i]=_e[i]+r[i]}}}const _e=(0,d.vt)(),be=(0,D.vt)(),we=(0,v.vt)(),Se=(0,D.vt)(),Te=(0,ae.vt)(),Ce=(0,d.vt)(),Ae=(0,ve.vt)(),Re=()=>a.A.getLogger("esri.geometry.support.meshUtils.scale");function Ee(e,t,i=d.uY){if(e)for(let r=0;r<e.length;r+=3){for(let t=0;t<3;t++)Oe[t]=e[r+t]-i[t];(0,A.hs)(Oe,Oe,t);for(let t=0;t<3;t++)e[r+t]=Oe[t]+i[t]}}const Oe=(0,d.vt)(),Me=(0,d.vt)(),Le=(0,D.vt)(),Pe=(0,d.vt)();(0,D.vt)(),new class{constructor(){this.verticalDistanceToGround=0,this.sampledElevation=0,this.z=0}},(0,d.vt)();var Ie=i(44208),ze=i(62788),De=i(95488),Fe=i(83349),Ne=i(15585),We=i(95108),Ve=i(97146),je=i(34727),He=i(86211),Ue=i(27921);const Ze=(0,Ue.vt)(),Be={method:"auto",projectionAxis:void 0,outlines:void 0};function ke(e,t,i){if(!t)return 2;const r=e.map(e=>{const r=Xe(e,t);return r<3?2:function(e,t,i){const r=function(e,t,i,r){const n=(e=>!Array.isArray(e[0]))(t)?(e,i)=>t[3*e+i]:(e,i)=>t[e][i],s=(0,He.GA)(r)/(0,He.G9)(r);return(0,Ue.lU)(e,(e,t)=>(0,A.hZ)(e,n(t,0)*s,n(t,1)*s,n(t,2)),i)}(Ze,e,t,i)?(0,Ue.Qj)(Ze):[0,0,1];return Math.abs(r[2])>Math.cos((0,je.kU)(80))?2:Math.abs(r[1])>Math.abs(r[0])?1:0}(e,r,i)}),n=r[0];return r.every(e=>e===n)?n:2}function Ge(e,t,i){if(!t)return!(0,We.$3)(e);if(e.length<3)return!1;switch(i){case 0:return!(0,We.$3)(e,1,2);case 1:return!(0,We.$3)(e,0,2);case 2:return!(0,We.$3)(e,0,1)}}const qe=new De.I;function $e(e,t){if(!(0,Ne.O9)())return Je("libtess-not-loaded");const i=null!=t.outlines,r=function(e){const t=e.reduce((e,t)=>e+t.pathLengths.length,0),i=new Array(t);let r=0;for(let t=0;t<e.length;t++){const n=e[t].pathLengths;for(let e=0;e<n.length;e++)i[r++]=n[e]}return i}(e.polygons),{vertices:n,indices:s,outlineIndices:o,outlineRingLengths:a}=(0,Ne.O5)(e.positions,r,3,i);return n.length%3!=0?Je("positions-not-multiple-of-3"):{succeeded:!0,positions:n,indices:s,outlineIndexBuffer:i?o:void 0,outlineRingLengths:i?a:void 0,vertexCount:n.length/3,method:"libtess"}}function Ye(e,t,i){for(let r=0;r<e.length;r+=3){const n=e[r+t];e[r+t]=e[r+i],e[r+i]=n}}function Qe(e,{index:t,count:i}){return(0,H.l5)(e,3*t,3*i)}function Ke(e,t,i,r,n,s,o){n*=3;for(let a=0;a<s;++a){const s=e[t];r[n++]=s[0],r[n++]=s[1],r[n++]=o&&null!=s[2]?s[2]:0,t+=i}return n/3}function Xe(e,t){return function(e,t){const i=e.length;if(i<2)return!1;const r=e[0],n=e[i-1];return r[0]===n[0]&&r[1]===n[1]&&(!t||r[2]===n[2])}(e,t)?e.length-1:e.length}function Je(e){return{succeeded:!1,message:e}}var et=i(4576),tt=i(65529),it=i(91869),rt=i(97768),nt=i(15142),st=i(3483),ot=i(26857),at=i(78955),lt=i(19419);class ct{constructor(e,t){this.vec3=e,this.id=t}}function ht(e,t,i,r){return new ct((0,d.fA)(e,t,i),r)}class ut{constructor(){this._extent=(0,lt.vt)(),this.resolution=0,this.renderLocalOrigin=ht(0,0,0,"O"),this.pixelRatio=1,this.mapUnitsPerPixel=1,this.canvasGeometries=new dt}get extent(){return this._extent}setExtent(e){(0,at.C)(this._extent,e)}setupGeometryViews(e){if(this._setupGeometryView(),!e)return;const t=.001*e.range;if(this._extent[0]-t<=e.min){const t=this.canvasGeometries.extents[this.canvasGeometries.numViews++];(0,lt.cY)(this._extent,e.range,0,t)}if(this._extent[2]+t>=e.max){const t=this.canvasGeometries.extents[this.canvasGeometries.numViews++];(0,lt.cY)(this._extent,-e.range,0,t)}}_setupGeometryView(){this.canvasGeometries.numViews=1,(0,lt.C)(this.canvasGeometries.extents[0],this._extent)}hasSomeSizedView(){for(let e=0;e<this.canvasGeometries.numViews;e++){const t=this.canvasGeometries.extents[e];if(t[0]!==t[2]&&t[1]!==t[3])return!0}return!1}}class dt{constructor(){this.extents=[(0,lt.vt)(),(0,lt.vt)(),(0,lt.vt)()],this.numViews=0}}class pt{constructor(e,t,i){this._fbos=e,this._format=t,this._name=i}get valid(){return null!=this._handle?.getTexture()}dispose(){this._handle=(0,rt.Gz)(this._handle)}get texture(){return this._handle?.getTexture()}ensureFramebuffer(e,t){this._handle&&this._handle.fbo?.width===e&&this._handle.fbo?.height===t||(this._handle?.release(),this._handle=this._fbos.acquire(e,t,this._name,this._format))}bind(e){e.bindFramebuffer(this._handle?.fbo)}generateMipMap(){this._handle?.getTexture()?.descriptor?.hasMipmap&&this._handle?.getTexture()?.generateMipmap()}}var gt=i(16943);class ft{constructor(e,t,i,r,n=1,s=6){this.output=i,this.content=r,this.redrawOnRequest=n,this.fbo=new pt(e,s,t)}handleRenderRequest(e){return 1===e||e===this.redrawOnRequest}get valid(){return this.fbo.valid}}class mt{constructor(e){const t=[new ft(e,"overlay color",0,0),new ft(e,"overlay IM color",0,1),new ft(e,"overlay highlight",10,2,1,3),new ft(e,"overlay water",4,3,0),new ft(e,"overlay occluded",0,4)];(0,gt.E)()&&t.push(new ft(e,"overlay olid",11,5,1,5)),this.targets=t}getTexture(e){return this.targets[e]?.fbo.texture}dispose(e){if(0!==e)for(const e of this.targets)e.fbo.dispose();else this.targets[3].fbo.dispose()}computeValidity(){return this.targets.reduce((e,t,i)=>t.valid?e|=1<<i:e,0)}}var vt=i(91712),yt=i(69622);class xt extends yt.A{precompile(e){return!!this.acquireTechniques(e)}get usedMemory(){return 0}get renderOccludedFlags(){return 1}get testsTransparentRenderOrder(){return 0}get isDecoration(){return!1}get readyToRun(){return!1}get numGeometries(){return 0}get hasOccludees(){return!1}get hasEmissions(){return 0}forEachGeometry(e){}}class _t extends xt{}var bt=i(37585),wt=i(2016),St=i(48375),Tt=i(13840),Ct=i(98958),At=i(72091),Rt=i(41976),Et=i(90644);let Ot=class extends Ct.w{constructor(e,t){super(e,t,Rt.wR),this.shader=new Tt.r(At.H,()=>i.e(785).then(i.bind(i,13166)))}initializePipeline(){return(0,Et.Ey)({blending:Et.T8,colorWrite:Et.kn})}};Ot=(0,r.Cg)([(0,u.$K)("esri.views.3d.webgl-engine.effects.highlight.HighlightApplyTechnique")],Ot);var Mt=i(28476);let Lt=class extends Ct.w{constructor(e,t){super(e,t,Rt.wR),this.shader=new Tt.r(Mt.a,()=>i.e(6027).then(i.bind(i,76027)))}initializePipeline(){return(0,Et.Ey)({colorWrite:Et.kn})}};Lt=(0,r.Cg)([(0,u.$K)("esri.views.3d.webgl-engine.effects.highlight.HighlightBlurTechnique")],Lt);var Pt=i(34053);let It=class extends Ct.w{constructor(){super(...arguments),this.shader=new Tt.r(Pt.a,()=>i.e(9438).then(i.bind(i,29438)))}initializePipeline(){return(0,Et.Ey)({colorWrite:Et.kn})}};It=(0,r.Cg)([(0,u.$K)("esri.views.3d.webgl-engine.effects.highlight.HighlightDownsampleTechnique")],It);var zt=i(68197);new zt.A("cyan"),new zt.A("black"),new zt.A("yellow");var Dt=i(65786);class Ft extends Dt.Y{constructor(){super(...arguments),this.occludedFactor=.25,this.verticalCellCount=0,this.horizontalCellCount=0,this.highlightLevel=0,this.pixelRatio=1}}var Nt=i(16824);let Wt=class extends Ct.w{constructor(e,t){super(e,t,Rt.wR),this.shader=new Tt.r(Nt.H,()=>i.e(1011).then(i.bind(i,51011)))}initializePipeline(){return(0,Et.Ey)({colorWrite:Et.kn})}};Wt=(0,r.Cg)([(0,u.$K)("esri.views.3d.webgl-engine.effects.highlight.HighlightToSingleTechnique")],Wt);var Vt=i(79785);class jt extends Vt.Z{}var Ht=i(48852),Ut=i(63907),Zt=i(76284),Bt=i(67171),kt=i(66289);let Gt=class extends St.A{constructor(){super(...arguments),this.produces=wt.OG.HIGHLIGHT_COLOR,this.consumes={required:[wt.OG.HIGHLIGHT_COLOR,"highlights"]},this._downsampleDrawParameters=new Pt.H,this._passParameters=new Ft,this._highlightBlurDrawParameters=new Mt.H,this._grid=new qt}initialize(){this.addHandles([(0,h.wB)(()=>this._updateOptionsTexture(),()=>{},h.Vh)])}destroy(){this._grid.coverage=(0,rt.Gz)(this._grid.coverage),this._grid.vao=(0,rt.WD)(this._grid.vao),this._passParameters.highlightOptionsTexture=(0,rt.Gz)(this._passParameters.highlightOptionsTexture)}_updateOptionsTexture(){if(null==this._passParameters.highlightOptionsTexture){const e=new Bt.R(16,2);e.internalFormat=6408,e.samplingMode=9728,this._passParameters.highlightOptionsTexture=new Zt.A(this.renderingContext,e,null)}this._passParameters.highlightOptionsTexture.setData(function(e){const t=new Uint8Array(128);let i=0;for(const r of e){const e=4*i,n=4*i+64;++i;const{color:s}=r,o=r.haloColor??s;t[e+0]=s.r,t[e+1]=s.g,t[e+2]=s.b,t[e+3]=r.fillOpacity*s.a*255,t[n+0]=o.r,t[n+1]=o.g,t[n+2]=o.b,t[n+3]=r.haloOpacity*o.a*255}return t}(this.view.state.highlights)),this.requestRender(1)}precompile(){this.bindParameters.decorations&&(this.techniques.precompile(It),this.techniques.precompile(Wt),this.techniques.precompile(Lt),this.techniques.precompile(Ot))}render(e){const t=e.find(({name:e})=>e===wt.OG.HIGHLIGHT_COLOR),{techniques:i,bindParameters:r,fboCache:n,_passParameters:s,renderingContext:o}=this;if(!r.decorations)return t;const a=i.getCompiled(It),l=i.getCompiled(Wt),c=i.getCompiled(Lt),h=i.getCompiled(Ot);if(!(a&&h&&c&&l))return this.requestRender(1),t;const u=e.find(({name:e})=>"highlights"===e).getTexture();s.highlightTexture=u;const d=this._prepareAndDownSample(u),{width:p,height:g}=u.descriptor;s.highlightTexture=u;const{camera:f}=r,{fullWidth:m,fullHeight:v,pixelRatio:y,fullViewport:x}=f,_=Math.ceil(m/y),b=Math.ceil(v/y),{_highlightBlurDrawParameters:w}=this,S=this.view.stage.renderView.renderer,{highlights:T}=r;for(let e=0;e<T.length;++e){const{name:i}=T[e];if(!S.hasHighlight(i))continue;s.highlightLevel=e,o.setClearColor(0,0,0,0);const a=n.acquire(p,g,"single highlight",2);o.bindFramebuffer(a.fbo),o.setViewport(0,0,p,g),o.clear(16384),o.bindTechnique(l,r,s),this._renderGrid(d),w.blurInput=a.getTexture(),(0,bt.hZ)(w.blurSize,1/_,0);const u=n.acquire(_,b,"single highlight blur",2);o.unbindTexture(u.fbo?.colorTexture),o.bindFramebuffer(u.fbo),o.setViewport(0,0,_,b),o.clear(16384),o.bindTechnique(c,r,s,w),this._renderGrid(d),a.release(),(0,bt.hZ)(w.blurSize,0,1/b),s.highlightBlurTexture=u.getTexture(),o.bindFramebuffer(t.fbo),o.setDrawBuffers([Ut.r6]),o.setViewport4fv(x),o.bindTechnique(h,r,s,w),this._renderGrid(d),u.release()}return s.coverageTexture=s.highlightTexture=null,t}_prepareAndDownSample(e){this._gridUpdateResources(e);const t=this.techniques.get(It),i=this._gridComputeCoverage(t,e),{horizontalCellCount:r,verticalCellCount:n}=i,s=this._passParameters;return s.horizontalCellCount=r,s.verticalCellCount=n,s.coverageTexture=i.coverage?.getTexture(),i}_renderGrid(e){const t=e.verticalCellCount*e.horizontalCellCount;this.renderingContext.bindVAO(e.vao),this.renderingContext.drawElementsInstanced(Ut.WR.TRIANGLES,6,Ut.pe.UNSIGNED_BYTE,0,t)}_gridUpdateResources(e){const t=this._grid,{width:i,height:r}=e.descriptor;if(t.horizontalCellCount=Math.ceil(i/Pt.g),t.verticalCellCount=Math.ceil(r/Pt.g),t.vao)return;const n=this.renderingContext,s=Ht.g.createIndex(n,35044,Yt);t.vao=new jt(n,new kt.R(n,Rt.wR),s)}_gridComputeCoverage(e,t){const i=this.renderingContext,r=this._grid,n=t.descriptor,s=Math.ceil(n.width/Pt.g),o=Math.ceil(n.height/Pt.g);this._downsampleDrawParameters.input=t;const{highlights:a}=this.bindParameters;r.coverage?.release();const l=this.fboCache.acquire(s,o,"highlight coverage",a.length>Qt?3:1);return r.coverage=l,i.bindFramebuffer(l.fbo),i.bindTechnique(e,this.bindParameters,this._passParameters,this._downsampleDrawParameters),i.setViewport(0,0,s,o),i.screen.draw(),r}get test(){}};(0,r.Cg)([(0,u.MZ)()],Gt.prototype,"produces",void 0),(0,r.Cg)([(0,u.MZ)()],Gt.prototype,"consumes",void 0),Gt=(0,r.Cg)([(0,u.$K)("esri.views.3d.webgl-engine.effects.highlight.Highlight")],Gt);class qt{constructor(){this.coverage=null,this.vao=null,this.verticalCellCount=0,this.horizontalCellCount=0,this.viewportWidth=0,this.viewportHeight=0}}let $t=0;const Yt=new Uint8Array([0,1,2,2,1,3]),Qt=4;class Kt{constructor(e,t,i){this.material=e,this.techniques=t,this.textures=i}}var Xt=i(620);class Jt{constructor(e,t,i,r){this._textures=e,this._techniques=t,this.materialChanged=i,this.requestRender=r,this._id2glMaterialRef=new Map}dispose(){this._textures.destroy()}acquire(e,t,i){this._ownMaterial(e);const r=e.produces.get(t);if(!r?.(i))return null;let n=this._id2glMaterialRef.get(e.id);if(null==n){const t=e.createGLMaterial(new Kt(e,this._techniques,this._textures));n=new ei(t),this._id2glMaterialRef.set(e.id,n)}return n.ref(),n.glMaterial}release(e){const t=this._id2glMaterialRef.get(e.id);null!=t&&(t.unref(),t.referenced||((0,rt.WD)(t.glMaterial),this._id2glMaterialRef.delete(e.id)))}_ownMaterial(e){e.repository&&e.repository!==this&&a.A.getLogger("esri.views.3d.webgl-engine.lib.GLMaterialRepository").error("Material is already owned by a different material repository"),e.repository=this}}class ei{constructor(e){this.glMaterial=e,this._refCnt=0}ref(){++this._refCnt}unref(){--this._refCnt,(0,Xt.vA)(this._refCnt>=0)}get referenced(){return this._refCnt>0}}var ti=i(24326),ii=i(91829),ri=i(46610),ni=i(63500),si=i(94008),oi=i(32728),ai=i(17478);function li(e,t){return null==e&&(e=[]),e.push(t),e}function ci(e,t){if(null==e)return null;const i=e.filter(e=>e!==t);return 0===i.length?null:i}i(28449),(0,d.vt)(),new Float32Array(6);class hi{constructor(e={}){this.id=(0,ti.c)(),this._highlightIds=new Set,this._shaderTransformation=null,this._visible=!0,this.castShadow=e.castShadow??!0,this.usesVerticalDistanceToGround=e.usesVerticalDistanceToGround??!1,this.graphicUid=e.graphicUid,this.layerViewUid=e.layerViewUid,e.isElevationSource&&(this.lastValidElevationBB=new ui),this._geometries=e.geometries?Array.from(e.geometries):[]}dispose(){this._geometries.length=0}get layer(){return this._layer}set layer(e){(0,Xt.vA)(null==this._layer||null==e,"Object3D can only be added to a single Layer"),this._layer=e}addGeometry(e){e.visible=this._visible,this._geometries.push(e);for(const t of this._highlightIds)e.addHighlight(t);this._emit("geometryAdded",{object:this,geometry:e}),this._highlightIds.size&&this._emit("highlightChanged",this),this._invalidateBoundingVolume()}removeGeometry(e){const t=this._geometries.splice(e,1)[0];if(t){for(const e of this._highlightIds)t.removeHighlight(e);this._emit("geometryRemoved",{object:this,geometry:t}),this._highlightIds.size&&this._emit("highlightChanged",this),this._invalidateBoundingVolume()}}removeAllGeometries(){for(;this._geometries.length>0;)this.removeGeometry(0)}geometryVertexAttributeUpdated(e,t,i=!1){this._emit("attributesChanged",{object:this,geometry:e,attribute:t,sync:i}),function(e){return"position"===e}(t)&&this._invalidateBoundingVolume()}get visible(){return this._visible}set visible(e){if(this._visible!==e){this._visible=e;for(const e of this._geometries)e.visible=this._visible;this._emit("visibilityChanged",this)}}maskOccludee(){const e=new ai.p;for(const t of this._geometries)t.occludees=li(t.occludees,e);return this._emit("occlusionChanged",this),e}removeOcclude(e){for(const t of this._geometries)t.occludees=ci(t.occludees,e);this._emit("occlusionChanged",this)}highlight(e){const t=new ai.h(e);for(const e of this._geometries)e.addHighlight(t);return this._emit("highlightChanged",this),this._highlightIds.add(t),t}removeHighlight(e){this._highlightIds.delete(e);for(const t of this._geometries)t.removeHighlight(e);this._emit("highlightChanged",this)}removeStateID(e){0===e.channel?this.removeHighlight(e):this.removeOcclude(e)}getCombinedStaticTransformation(e,t){return(0,fe.lw)(t,this.transformation,e.transformation)}getCombinedShaderTransformation(e,t=(0,D.vt)()){return(0,fe.lw)(t,this.effectiveTransformation,e.transformation)}get boundingVolumeWorldSpace(){return this._bvWorldSpace||(this._bvWorldSpace=new di,this._validateBoundingVolume(this._bvWorldSpace,0)),this._bvWorldSpace}get boundingVolumeObjectSpace(){return this._bvObjectSpace||(this._bvObjectSpace=new di,this._validateBoundingVolume(this._bvObjectSpace,1)),this._bvObjectSpace}_validateBoundingVolume(e,t){const i=1===t;for(const t of this._geometries){const r=t.boundingInfo;r&&pi(r,e,i?t.transformation:this.getCombinedShaderTransformation(t))}(0,A.Cc)(e.bounds.center,e.min,e.max,.5);for(const t of this._geometries){const r=t.boundingInfo;if(null==r)continue;const n=i?t.transformation:this.getCombinedShaderTransformation(t),s=(0,oi.hG)(n);(0,A.Z0)(vi,r.center,n);const o=(0,A.Io)(vi,e.bounds.center),a=r.radius*s;e.bounds.radius=Math.max(e.bounds.radius,o+a)}}_invalidateBoundingVolume(){const e=this._bvWorldSpace?.bounds;this._bvObjectSpace=this._bvWorldSpace=void 0,this.layer&&e&&this.layer.notifyObjectBBChanged(this,e)}_emit(e,t){this.layer?.events.emit(e,t)}get geometries(){return this._geometries}get transformation(){return this._transformation??D.zK}set transformation(e){this._transformation=(0,fe.C)(this._transformation??(0,D.vt)(),e),this._invalidateBoundingVolume(),this._emit("transformationChanged",this)}get shaderTransformation(){return this._shaderTransformation}set shaderTransformation(e){this._shaderTransformation=e?(0,fe.C)(this._shaderTransformation??(0,D.vt)(),e):null,this._invalidateBoundingVolume(),this._emit("shaderTransformationChanged",this)}get effectiveTransformation(){return this.shaderTransformation??this.transformation}get test(){}}class ui{constructor(){this._data=[Number.MAX_VALUE,Number.MAX_VALUE,Number.MAX_VALUE,-Number.MAX_VALUE,-Number.MAX_VALUE,-Number.MAX_VALUE]}get min(){return(0,d.fA)(this._data[0],this._data[1],this._data[2])}get max(){return(0,d.fA)(this._data[3],this._data[4],this._data[5])}minWith(e){const{_data:t}=this;t[0]=Math.min(t[0],e[0]),t[1]=Math.min(t[1],e[1]),t[2]=Math.min(t[2],e[2])}maxWith(e){const{_data:t}=this;t[3]=Math.max(t[3],e[0]),t[4]=Math.max(t[4],e[1]),t[5]=Math.max(t[5],e[2])}assignMinMax(e,t){for(let i=0;i<3;++i)this._data[0+i]=e[i],this._data[3+i]=t[i]}isEmpty(){return this._data[3]<this._data[0]&&this._data[4]<this._data[1]&&this._data[5]<this._data[2]}}class di extends ui{constructor(){super(...arguments),this.bounds=new si.iy}}function pi(e,t,i){const r=e.bbMin,n=e.bbMax;if((0,fe.tZ)(i)){const e=(0,A.hZ)(gi,i[12],i[13],i[14]);return(0,A.WQ)(fi,r,e),(0,A.WQ)(mi,n,e),t.minWith(fi),void t.maxWith(mi)}if((0,A.Z0)(fi,r,i),(0,A.t2)(r,n))return t.minWith(fi),void t.maxWith(fi);(0,A.Z0)(mi,n,i),t.minWith(fi),t.minWith(mi),t.maxWith(fi),t.maxWith(mi);for(let e=0;e<3;++e)(0,A.C)(fi,r),(0,A.C)(mi,n),fi[e]=n[e],mi[e]=r[e],(0,A.Z0)(fi,fi,i),(0,A.Z0)(mi,mi,i),t.minWith(fi),t.minWith(mi),t.maxWith(fi),t.maxWith(mi)}const gi=(0,d.vt)(),fi=(0,d.vt)(),mi=(0,d.vt)(),vi=(0,d.vt)();var yi=i(21818),xi=i(71511);const _i=["layerObjectAdded","layerObjectRemoved","layerObjectsAdded","layerObjectsRemoved","transformationChanged","shaderTransformationChanged","visibilityChanged","occlusionChanged","highlightChanged","geometryAdded","geometryRemoved","attributesChanged"];var bi=i(78230);class wi{constructor(e,t,i=""){this.stage=e,this.apiLayerViewUid=i,this.id=(0,ti.c)(),this.events=new tt.bk,this.visible=!0,this.sliceable=!1,this._objectsAdded=new Array,this._handles=new xi.A,this._objects=new Map,this._pickable=!0,this.visible=t?.visible??!0,this._pickable=t?.pickable??!0,this.updatePolicy=t?.updatePolicy??0,e.addLayer(this);for(const t of _i)this._handles.add(this.events.on(t,i=>e.handleEvent(t,i)))}destroy(){this._handles.size&&(this._handles.destroy(),this.stage.removeLayer(this),this.invalidateSpatialQueryAccelerator())}get objects(){return this._objects}getObject(e){return(0,yi.z)(this._objects.get(e))}set pickable(e){this._pickable=e}get pickable(){return this._pickable&&this.visible}add(e){this._objects.set(e.id,e),e.layer=this,this.events.emit("layerObjectAdded",e),null!=this._octree&&this._objectsAdded.push(e)}remove(e){this._objects.delete(e.id)&&(this.events.emit("layerObjectRemoved",e),e.layer=null,null!=this._octree&&((0,et.Xy)(this._objectsAdded,e)||this._octree.remove([e])))}addMany(e){for(const t of e)this._objects.set(t.id,t),t.layer=this;this.events.emit("layerObjectsAdded",e),null!=this._octree&&this._objectsAdded.push(...e)}removeMany(e){const t=new Array;for(const i of e)this._objects.delete(i.id)&&t.push(i);if(0!==t.length&&(this.events.emit("layerObjectsRemoved",t),t.forEach(e=>e.layer=null),null!=this._octree)){for(let e=0;e<t.length;)(0,et.Xy)(this._objectsAdded,t[e])?(t[e]=t[t.length-1],t.length-=1):++e;this._octree.remove(t)}}commit(){this.stage.commitLayer(this)}sync(){1!==this.updatePolicy&&this.stage.syncLayer(this.id)}notifyObjectBBChanged(e,t){null==this._octree||this._objectsAdded.includes(e)||this._octree.update(e,t)}getSpatialQueryAccelerator(){return null==this._octree&&this._objects.size>50?(this._octree=new bi.x(e=>e.boundingVolumeWorldSpace.bounds),this._octree.add(this._objects.values())):null!=this._octree&&this._objectsAdded.length>0&&(this._octree.add(this._objectsAdded),this._objectsAdded.length=0),this._octree}invalidateSpatialQueryAccelerator(){this._octree=(0,rt.pR)(this._octree),this._objectsAdded.length=0}get test(){}}var Si=i(90629),Ti=i(78659),Ci=i(20498),Ai=i(11964),Ri=i(49255),Ei=i(92130),Oi=i(11725),Mi=i(77194),Li=i(96095),Pi=i(46606),Ii=i(59907),zi=i(32565),Di=i(4431),Fi=i(1843),Ni=i(33524),Wi=i(56133),Vi=i(33442);let ji=class extends Ct.w{constructor(e,t){super(e,t,(0,Di.U)(Hi(t))),this.shader=new Tt.r(zi.R,()=>i.e(2059).then(i.bind(i,92059))),this.ignoreUnused=!0,this.primitiveType=t.wireframe?Ut.WR.LINES:Ut.WR.TRIANGLE_STRIP}_makePipelineState(e,t){const{output:i,hasOccludees:r}=e;return(0,Et.Ey)({blending:(0,Ni.Yf)(i),depthTest:(0,Ni.mt)(i),depthWrite:(0,Ni.z5)(e),colorWrite:Et.kn,stencilWrite:r?Wi.v0:null,stencilTest:r?t?Wi.a9:Wi.qh:null,polygonOffset:(0,Vi.Tk)(e)})}initializePipeline(e){if(e.occluder){const{hasOccludees:t}=e;this._occluderPipelineTransparent=(0,Et.Ey)({blending:Et.T8,polygonOffset:(0,Vi.Tk)(e),depthTest:Wi.sf,depthWrite:null,colorWrite:Et.kn,stencilWrite:null,stencilTest:t?Wi.mK:null}),this._occluderPipelineOpaque=(0,Et.Ey)({blending:Et.T8,polygonOffset:(0,Vi.Tk)(e),depthTest:t?Wi.sf:Wi.m,depthWrite:null,colorWrite:Et.kn,stencilWrite:t?Wi.r8:null,stencilTest:t?Wi.I$:null}),this._occluderPipelineMaskWrite=(0,Et.Ey)({blending:null,polygonOffset:(0,Vi.Tk)(e),depthTest:Wi.m,depthWrite:null,colorWrite:null,stencilWrite:t?Wi.v0:null,stencilTest:t?Wi.a9:null})}return this._occludeePipeline=this._makePipelineState(e,!0),this._makePipelineState(e,!1)}getPipeline(e,t){if(t)return this._occludeePipeline;switch(e.occluder){case 11:return this._occluderPipelineTransparent??super.getPipeline(e);case 10:return this._occluderPipelineOpaque??super.getPipeline(e);default:e.occluder;case void 0:case null:return this._occluderPipelineMaskWrite??super.getPipeline(e)}}};function Hi(e){const t=(0,Fi.BP)().vec3f("position").vec4f16("previousDelta").vec4f16("nextDelta").f32("u0").vec2f16("lineParameters");return e.hasVVColor?t.f32("colorFeatureAttribute"):t.vec4u8("color",{glNormalized:!0}),e.hasVVSize?t.f32("sizeFeatureAttribute"):t.f32("size"),e.hasVVOpacity&&t.f32("opacityFeatureAttribute"),(0,gt.E)()&&t.vec4u8("olidColor"),e.hasAnimation&&t.vec4f16("timeStamps"),t}ji=(0,r.Cg)([(0,u.$K)("esri.views.3d.webgl-engine.shaders.RibbonLineTechnique")],ji);var Ui=i(51976),Zi=i(47724);class Bi extends Zi.L{constructor(e){super(),this.spherical=e,this.capType=0,this.emissionSource=0,this.animation=2,this.polygonOffsetIndex=0,this.writeDepth=!1,this.draped=!1,this.stippleEnabled=!1,this.stippleOffColorEnabled=!1,this.stipplePreferContinuous=!0,this.roundJoins=!1,this.applyMarkerOffset=!1,this.hasVVSize=!1,this.hasVVColor=!1,this.hasVVOpacity=!1,this.falloffEnabled=!1,this.innerColorEnabled=!1,this.hasOccludees=!1,this.occluder=!1,this.wireframe=!1,this.discardInvisibleFragments=!1,this.hasScreenSizePerspective=!1,this.worldSizedImagePattern=!1,this.textureCoordinateType=0,this.hasVVInstancing=!1,this.hasSliceTranslatedView=!0,this.overlayEnabled=!1,this.snowCover=!1}get hasAnimation(){return 0!==this.animation}}(0,r.Cg)([(0,Ui.W)({count:3})],Bi.prototype,"capType",void 0),(0,r.Cg)([(0,Ui.W)({count:8})],Bi.prototype,"emissionSource",void 0),(0,r.Cg)([(0,Ui.W)({count:4})],Bi.prototype,"animation",void 0),(0,r.Cg)([(0,Ui.W)({count:16})],Bi.prototype,"polygonOffsetIndex",void 0),(0,r.Cg)([(0,Ui.W)()],Bi.prototype,"writeDepth",void 0),(0,r.Cg)([(0,Ui.W)()],Bi.prototype,"draped",void 0),(0,r.Cg)([(0,Ui.W)()],Bi.prototype,"stippleEnabled",void 0),(0,r.Cg)([(0,Ui.W)()],Bi.prototype,"stippleOffColorEnabled",void 0),(0,r.Cg)([(0,Ui.W)()],Bi.prototype,"stipplePreferContinuous",void 0),(0,r.Cg)([(0,Ui.W)()],Bi.prototype,"roundJoins",void 0),(0,r.Cg)([(0,Ui.W)()],Bi.prototype,"applyMarkerOffset",void 0),(0,r.Cg)([(0,Ui.W)()],Bi.prototype,"hasVVSize",void 0),(0,r.Cg)([(0,Ui.W)()],Bi.prototype,"hasVVColor",void 0),(0,r.Cg)([(0,Ui.W)()],Bi.prototype,"hasVVOpacity",void 0),(0,r.Cg)([(0,Ui.W)()],Bi.prototype,"falloffEnabled",void 0),(0,r.Cg)([(0,Ui.W)()],Bi.prototype,"innerColorEnabled",void 0),(0,r.Cg)([(0,Ui.W)()],Bi.prototype,"hasOccludees",void 0),(0,r.Cg)([(0,Ui.W)()],Bi.prototype,"occluder",void 0),(0,r.Cg)([(0,Ui.W)()],Bi.prototype,"wireframe",void 0),(0,r.Cg)([(0,Ui.W)()],Bi.prototype,"discardInvisibleFragments",void 0),(0,r.Cg)([(0,Ui.W)()],Bi.prototype,"hasScreenSizePerspective",void 0),(0,r.Cg)([(0,Ui.W)()],Bi.prototype,"worldSizedImagePattern",void 0);var ki=i(49788);class Gi extends Oi.i{constructor(e,t){super(e,$i),this.produces=new Map([[2,e=>(0,Ri.Ex)(e)||(0,Ri._o)(e)&&8===this.parameters.renderOccluded],[3,e=>(0,Ri.eh)(e)],[10,e=>(0,Ri.gr)(e)&&8===this.parameters.renderOccluded],[11,e=>(0,Ri.gr)(e)&&8===this.parameters.renderOccluded],[4,e=>(0,Ri._o)(e)&&this.parameters.writeDepth&&8!==this.parameters.renderOccluded],[8,e=>(0,Ri._o)(e)&&!this.parameters.writeDepth&&8!==this.parameters.renderOccluded],[18,e=>(0,Ri.i3)(e)]]),this._configuration=new Bi(t)}updateConfiguration(e){super.updateConfiguration(e);const t=18===e.slot,i=null!=this.parameters.stipplePattern&&null!=this.parameters.stippleTexture&&10!==e.output,r=i&&t&&this.parameters.isImagePattern();this._configuration.draped=t,this._configuration.polygonOffset=this.parameters.polygonOffset,this._configuration.stippleEnabled=i,this._configuration.stippleOffColorEnabled=i&&null!=this.parameters.stippleOffColor,this._configuration.stipplePreferContinuous=i&&this.parameters.stipplePreferContinuous,this._configuration.hasSlicePlane=this.parameters.hasSlicePlane,this._configuration.roundJoins="round"===this.parameters.join,this._configuration.capType=this.parameters.cap,this._configuration.applyMarkerOffset=null!=this.parameters.markerParameters&&function(e){return 1===e.anchor&&e.hideOnShortSegments&&"begin-end"===e.placement&&e.worldSpace}(this.parameters.markerParameters),this._configuration.polygonOffsetIndex=this.parameters.polygonOffsetIndex,this._configuration.writeDepth=this.parameters.writeDepth,this._configuration.hasVVSize=this.parameters.hasVVSize,this._configuration.hasVVColor=this.parameters.hasVVColor,this._configuration.hasVVOpacity=this.parameters.hasVVOpacity,this._configuration.innerColorEnabled=this.parameters.innerWidth>0&&null!=this.parameters.innerColor,this._configuration.falloffEnabled=this.parameters.falloff>0,this._configuration.hasOccludees=e.hasOccludees,this._configuration.occluder=8===this.parameters.renderOccluded,this._configuration.wireframe=this.parameters.wireframe,this._configuration.animation=this.parameters.animation,this._configuration.emissionSource=this.hasEmissions?1:0,this._configuration.hasScreenSizePerspective=!!this.parameters.screenSizePerspective&&!r,this._configuration.worldSizedImagePattern=r}get visible(){return this.parameters.color[3]>=ki.Q||null!=this.parameters.stipplePattern&&(this.parameters.stippleOffColor?.[3]??0)>ki.Q}get hasEmissions(){return this.parameters.emissiveStrength>0?8!==this.parameters.renderOccluded?2:1:0}setParameters(e,t){e.animation=this.parameters.animation,super.setParameters(e,t)}intersectDraped({attributes:e,screenToWorldRatio:t},i,r,n,s){if(!i.options.selectionMode)return;const o=e.get("size");let a=this.parameters.width;if(this.parameters.vvSize){const t=e.get("sizeFeatureAttribute").data[0];Number.isNaN(t)?a*=this.parameters.vvSize.fallback[0]:a*=(0,je.qE)(this.parameters.vvSize.offset[0]+t*this.parameters.vvSize.factor[0],this.parameters.vvSize.minSize[0],this.parameters.vvSize.maxSize[0])}else o&&(a*=o.data[0]);const l=r[0],c=r[1],h=(a/2+4)*t;let u=Number.MAX_VALUE,d=0;const p=e.get("position").data,g=Ki(this.parameters,e)?p.length-2:p.length-5;for(let e=0;e<g;e+=3){const t=p[e],i=p[e+1],r=(e+3)%p.length,n=l-t,s=c-i,o=p[r]-t,a=p[r+1]-i,h=(0,je.qE)((o*n+a*s)/(o*o+a*a),0,1),g=o*h-n,f=a*h-s,m=g*g+f*f;m<u&&(u=m,d=e/3)}u<h*h&&n(s.distance,s.normal,d)}intersect(e,t,i,r,n,s){const{options:o,camera:l,rayBegin:c,rayEnd:h}=i;if(!o.selectionMode||!e.visible||!l)return;if(!(0,Xt.zH)(t))return void a.A.getLogger("esri.views.3d.webgl-engine.materials.RibbonLineMaterial").error("intersection assumes a translation-only matrix");const u=e.attributes,d=u.get("position").data;let p=this.parameters.width;if(this.parameters.vvSize){const e=u.get("sizeFeatureAttribute").data[0];Number.isNaN(e)||(p*=(0,je.qE)(this.parameters.vvSize.offset[0]+e*this.parameters.vvSize.factor[0],this.parameters.vvSize.minSize[0],this.parameters.vvSize.maxSize[0]))}else u.has("size")&&(p*=u.get("size").data[0]);const g=or;(0,bt.C)(g,i.point);const f=p*l.pixelRatio,m=4*l.pixelRatio,v=f/2+m;(0,A.hZ)(vr[0],g[0]-v,g[1]+v,0),(0,A.hZ)(vr[1],g[0]+v,g[1]+v,0),(0,A.hZ)(vr[2],g[0]+v,g[1]-v,0),(0,A.hZ)(vr[3],g[0]-v,g[1]-v,0);for(let e=0;e<4;e++)if(!l.unprojectFromRenderScreen(vr[e],yr[e]))return;(0,Ue.Cr)(l.eye,yr[0],yr[1],xr),(0,Ue.Cr)(l.eye,yr[1],yr[2],_r),(0,Ue.Cr)(l.eye,yr[2],yr[3],br),(0,Ue.Cr)(l.eye,yr[3],yr[0],wr);let y=Number.MAX_VALUE,x=0;const _=Ki(this.parameters,u)?d.length-2:d.length-5;for(let e=0;e<_;e+=3){Ji[0]=d[e]+t[12],Ji[1]=d[e+1]+t[13],Ji[2]=d[e+2]+t[14];const i=(e+3)%d.length;if(er[0]=d[i]+t[12],er[1]=d[i+1]+t[13],er[2]=d[i+2]+t[14],(0,Ue.mN)(xr,Ji)<0&&(0,Ue.mN)(xr,er)<0||(0,Ue.mN)(_r,Ji)<0&&(0,Ue.mN)(_r,er)<0||(0,Ue.mN)(br,Ji)<0&&(0,Ue.mN)(br,er)<0||(0,Ue.mN)(wr,Ji)<0&&(0,Ue.mN)(wr,er)<0)continue;const r=l.projectToRenderScreen(Ji,ar),n=l.projectToRenderScreen(er,lr);if(null==r||null==n)continue;if(r[2]<0&&n[2]>0){(0,A.Re)(nr,Ji,er);const e=l.frustum,t=-(0,Ue.mN)(e[4],Ji)/(0,A.Om)(nr,(0,Ue.Qj)(e[4]));if((0,A.hs)(nr,nr,t),(0,A.WQ)(Ji,Ji,nr),!l.projectToRenderScreen(Ji,r))continue}else if(r[2]>0&&n[2]<0){(0,A.Re)(nr,er,Ji);const e=l.frustum,t=-(0,Ue.mN)(e[4],er)/(0,A.Om)(nr,(0,Ue.Qj)(e[4]));if((0,A.hs)(nr,nr,t),(0,A.WQ)(er,er,nr),!l.projectToRenderScreen(er,n))continue}else if(r[2]<0&&n[2]<0)continue;r[2]=0,n[2]=0;const s=(0,Ai.Cr)(r,n,ur),o=(0,Ai.kb)(s,g);if(!(o>=y)){if(this.parameters.screenSizePerspective){const e=this.computeScreenSizePerspectiveWidth(s,Ji,er,g,l,p,m);if(o>=e*e)continue}y=o,(0,A.C)(cr,Ji),(0,A.C)(hr,er),x=e/3}}if(y<v*v){let e=Number.MAX_VALUE;if((0,Ai.ld)((0,Ai.Cr)(cr,hr,ur),(0,Ai.Cr)(c,h,dr),sr)){(0,A.Re)(sr,sr,c);const t=(0,A.Bw)(sr);(0,A.hs)(sr,sr,1/t),e=t/(0,A.Io)(c,h)}s(e,sr,x)}}createBufferWriter(){return new Yi(Hi(this.parameters),this.parameters)}createGLMaterial(e){return new qi(e)}validateParameters(e){"miter"!==e.join&&(e.miterLimit=0),null!=e.markerParameters&&(e.markerScale=e.markerParameters.width/e.width)}update(e){return!!this.parameters.hasAnimation&&(this.setParameters({timeElapsed:(0,Ti.y)(e.time)},!1),0!==e.dt)}computeScreenSizePerspectiveWidth(e,t,i,r,n,s,o){const a=(0,Ai.G1)(e,r);(0,A.Cc)(tr,t,i,a),(0,A.Z0)(ir,tr,n.viewMatrix);const l=(0,A.Bw)(ir),c=this.computeCameraAbsCosAngle(tr,n,this._configuration.spherical);return Xi.update(c,l,this.parameters.screenSizePerspective,this.parameters.screenSizePerspectiveMinPixelReferenceSize),Xi.apply(s)*n.pixelRatio/2+o}computeCameraAbsCosAngle(e,t,i){return i?(0,A.S8)(sr,e):(0,A.hZ)(sr,0,0,1),(0,A.Re)(rr,e,t.eye),(0,A.S8)(rr,rr),Math.abs((0,A.Om)(sr,rr))}}class qi extends Ei.A{constructor(){super(...arguments),this._stipplePattern=null}dispose(){super.dispose(),this._stippleTextures?.release(this._stipplePattern),this._stipplePattern=null}beginSlot(e){const{stipplePattern:t}=this._material.parameters;return this._stipplePattern!==t&&(this._material.setParameters({stippleTexture:this._stippleTextures.swap(t,this._stipplePattern)}),this._stipplePattern=t),this.getTechnique(ji,e)}}class $i extends Pi.S{constructor(){super(...arguments),this._width=0,this.color=ii.Un,this.join="miter",this.cap=0,this.miterLimit=5,this.writeDepth=!0,this.polygonOffset=0,this.polygonOffsetIndex=0,this.stippleTexture=null,this.stipplePreferContinuous=!0,this.markerParameters=null,this.markerScale=1,this.hasSlicePlane=!1,this.vvFastUpdate=!1,this.isClosed=!1,this.falloff=0,this.innerWidth=0,this.wireframe=!1,this.timeElapsed=(0,Ti.Kp)(0),this.animation=0,this.animationSpeed=1,this.trailLength=1,this.startTime=(0,Ti.Kp)(0),this.endTime=(0,Ti.Kp)(1/0),this.emissiveStrength=0}get width(){return this.isImagePattern()?this.stipplePattern.width:this._width}set width(e){this._width=e}get transparent(){return this.color[3]<1||this.hasAnimation||null!=this.stipplePattern&&(this.stippleOffColor?.[3]??0)<1}get hasAnimation(){return 0!==this.animation}isImagePattern(){return(0,Li.sL)(this.stipplePattern)&&null!=this.stippleTexture}}class Yi{constructor(e,t){this.layout=e,this._parameters=t;const i=t.stipplePattern?1:0;switch(this._parameters.join){case"miter":case"bevel":this.numJoinSubdivisions=i;break;case"round":this.numJoinSubdivisions=zi.r+i}}_isClosed(e){return Ki(this._parameters,e)}allocate(e){return this.layout.createBuffer(e)}elementCount(e){const t=e.get("position").indices.length/2+1,i=this._isClosed(e);let r=i?2:4;return r+=((i?t:t-1)-(i?0:1))*(2*this.numJoinSubdivisions+4),r+=2,this._parameters.wireframe&&(r=2+4*(r-2)),r}write(e,t,i,r,n,s){const o=this.layout,a=i.get("position"),l=a.indices,c=a.data.length/3,h=i.get("distanceToStart")?.data;l&&l.length!==2*(c-1)&&console.warn("RibbonLineMaterial does not support indices");const u=o.fields.has("sizeFeatureAttribute");let d=1,p=null;if(u){const e=i.get("sizeFeatureAttribute");1===e.data.length?d=e.data[0]:p=e.data}else d=i.get("size")?.data[0]??1;let g=[1,1,1,1],f=0,m=null;const v=o.fields.has("colorFeatureAttribute");if(v){const e=i.get("colorFeatureAttribute");1===e.data.length?f=e.data[0]:m=e.data}else g=i.get("color")?.data??g;const y=i.get("timeStamps")?.data,x=y&&o.fields.has("timeStamps"),_=o.fields.has("opacityFeatureAttribute");let b=0,w=null;if(_){const e=i.get("opacityFeatureAttribute");1===e.data.length?b=e.data[0]:w=e.data}const S=new Float32Array(n.buffer),T=(0,Ci.Bg)(n.buffer),C=new Uint8Array(n.buffer),R=o.stride/4;let E=s*R;const O=E;let M=0;const L=h?(e,t,i)=>M=h[i]:(e,t,i)=>M+=(0,A.Io)(e,t),P=S.BYTES_PER_ELEMENT/T.BYTES_PER_ELEMENT,I=4/P,z=(0,gt.E)(),D=(e,t,i,n,s,o,a,l)=>{S[E++]=t[0],S[E++]=t[1],S[E++]=t[2],(0,Ii.Wu)(e,t,T,E*P),E+=I,(0,Ii.Wu)(i,t,T,E*P),E+=I,S[E++]=l;let c=E*P;if(T[c++]=s,T[c++]=o,E=Math.ceil(c/P),v)S[E]=m?.[a]??f;else{const e=Math.min(4*a,g.length-4),t=4*E;C[t]=255*g[e],C[t+1]=255*g[e+1],C[t+2]=255*g[e+2],C[t+3]=255*g[e+3]}if(E++,S[E++]=p?.[a]??d,_&&(S[E++]=w?.[a]??b),z){let e=4*E;r?(C[e++]=r[0],C[e++]=r[1],C[e++]=r[2],C[e++]=r[3]):(C[e++]=0,C[e++]=0,C[e++]=0,C[e++]=0),E=Math.ceil(.25*e)}x&&(c=E*P,T[c++]=n[0],T[c++]=n[1],T[c++]=n[2],T[c++]=n[3],E=Math.ceil(c/P))};E+=R,(0,A.hZ)(gr,a.data[0],a.data[1],a.data[2]),x&&(0,at.hZ)(mr,y[0],y[1],y[2],y[3]),e&&(0,A.Z0)(gr,gr,e);const F=this._isClosed(i);if(F){const t=a.data.length-3;(0,A.hZ)(pr,a.data[t],a.data[t+1],a.data[t+2]),e&&(0,A.Z0)(pr,pr,e)}else(0,A.hZ)(fr,a.data[3],a.data[4],a.data[5]),e&&(0,A.Z0)(fr,fr,e),D(gr,gr,fr,mr,1,-4,0,0),D(gr,gr,fr,mr,1,4,0,0),(0,A.C)(pr,gr),(0,A.C)(gr,fr),x&&(0,at.hZ)(mr,y[4],y[5],y[6],y[7]);const N=F?0:1,W=F?c:c-1;for(let t=N;t<W;t++){const i=(t+1)%c*3;(0,A.hZ)(fr,a.data[i],a.data[i+1],a.data[i+2]),e&&(0,A.Z0)(fr,fr,e),L(pr,gr,t),D(pr,gr,fr,mr,0,-1,t,M),D(pr,gr,fr,mr,0,1,t,M);const r=this.numJoinSubdivisions;for(let e=0;e<r;++e){const i=(e+1)/(r+1);D(pr,gr,fr,mr,i,-1,t,M),D(pr,gr,fr,mr,i,1,t,M)}if(D(pr,gr,fr,mr,1,-2,t,M),D(pr,gr,fr,mr,1,2,t,M),(0,A.C)(pr,gr),(0,A.C)(gr,fr),x){const e=(t+1)%c*4;(0,at.hZ)(mr,y[e],y[e+1],y[e+2],y[e+3])}}return F?((0,A.hZ)(fr,a.data[3],a.data[4],a.data[5]),e&&(0,A.Z0)(fr,fr,e),M=L(pr,gr,W),D(pr,gr,fr,mr,0,-1,N,M),D(pr,gr,fr,mr,0,1,N,M)):(M=L(pr,gr,W),D(pr,gr,gr,mr,0,-5,W,M),D(pr,gr,gr,mr,0,5,W,M)),Qi(S,O+R,S,O,R),E=Qi(S,E-R,S,E,R),this._parameters.wireframe&&this._addWireframeVertices(n,O,E,R),null}_addWireframeVertices(e,t,i,r){const n=new Float32Array(e.buffer,i*Float32Array.BYTES_PER_ELEMENT),s=new Float32Array(e.buffer,t*Float32Array.BYTES_PER_ELEMENT,i-t);let o=0;const a=e=>o=Qi(s,e,n,o,r);for(let e=0;e<s.length-1;e+=2*r)a(e),a(e+2*r),a(e+1*r),a(e+2*r),a(e+1*r),a(e+3*r)}}function Qi(e,t,i,r,n){for(let s=0;s<n;s++)i[r++]=e[t++];return r}function Ki(e,t){return!!e.isClosed&&t.get("position").indices.length>2}const Xi=new Mi.PS,Ji=(0,d.vt)(),er=(0,d.vt)(),tr=(0,d.vt)(),ir=(0,d.vt)(),rr=(0,d.vt)(),nr=(0,d.vt)(),sr=(0,d.vt)(),or=(0,d.vt)(),ar=(0,Si.r_)(),lr=(0,Si.r_)(),cr=(0,d.vt)(),hr=(0,d.vt)(),ur=(0,Ai.vt)(),dr=(0,Ai.vt)(),pr=(0,d.vt)(),gr=(0,d.vt)(),fr=(0,d.vt)(),mr=(0,ii.vt)(),vr=[(0,Si.r_)(),(0,Si.r_)(),(0,Si.r_)(),(0,Si.r_)()],yr=[(0,d.vt)(),(0,d.vt)(),(0,d.vt)(),(0,d.vt)()],xr=(0,Ue.vt)(),_r=(0,Ue.vt)(),br=(0,Ue.vt)(),wr=(0,Ue.vt)();class Sr{constructor(e){this._originSR=e,this._rootOriginId="root/"+(0,ti.c)(),this._origins=new Map,this._objects=new Map,this._gridSize=5e5,this._originSR?.isGeographic&&(this._gridSize/=(0,He.GA)(this._originSR)),this._baselineDistance=.5*this._gridSize;const t=this._baselineDistance*Cr;this._baselineObjectSize=t/Ar}getOrigin(e){const t=this._origins.get(this._rootOriginId);if(null==t){const t=null;if(null!=t)return this._origins.set(this._rootOriginId,ht(t[0],t[1],t[2],this._rootOriginId)),this.getOrigin(e);const i=ht(e[0]+Math.random()-.5,e[1]+Math.random()-.5,e[2]+Math.random()-.5,this._rootOriginId);return this._origins.set(this._rootOriginId,i),i}const i=this._gridSize,r=Math.round(e[0]/i),n=Math.round(e[1]/i),s=Math.round(e[2]/i),o=`${r}/${n}/${s}`;let a=this._origins.get(o);const l=.5*i;if((0,A.Re)(Tr,e,t.vec3),Tr[0]=Math.abs(Tr[0]),Tr[1]=Math.abs(Tr[1]),Tr[2]=Math.abs(Tr[2]),Tr[0]<l&&Tr[1]<l&&Tr[2]<l){if(a){const t=Math.max(...Tr);if((0,A.Re)(Tr,e,a.vec3),Tr[0]=Math.abs(Tr[0]),Tr[1]=Math.abs(Tr[1]),Tr[2]=Math.abs(Tr[2]),Math.max(...Tr)<t)return a}return t}return a||(a=ht(r*i,n*i,s*i,o),this._origins.set(o,a)),a}needsOriginUpdate(e,t,i){const r=(0,A.Io)(e.vec3,t),n=Math.max(1,i/this._baselineObjectSize);return r>this._baselineDistance*n}_drawOriginBox(e,t=(0,ii.fA)(1,1,0,1)){const i=window.view,r=i.stage,n=t.toString();if(!this._objects.has(n)){this._material=new Gi({width:2,color:t},!1);const e=new wi(r,{pickable:!1}),i=new hi({castShadow:!1});e.add(i),this._objects.set(n,i)}const s=this._objects.get(n),o=[0,1,5,4,0,2,1,7,6,2,0,1,3,7,5,4,6,2,0],a=o.length,l=new Array(3*a),c=new Array,h=.5*this._gridSize;for(let t=0;t<a;t++)l[3*t]=e[0]+(1&o[t]?h:-h),l[3*t+1]=e[1]+(2&o[t]?h:-h),l[3*t+2]=e[2]+(4&o[t]?h:-h),t>0&&c.push(t-1,t);(0,j.projectBuffer)(l,this._originSR,0,l,i.renderSpatialReference,0,a);const u=new ni.V(this._material,[["position",new ri.n(l,c,3,!0)]],null,2);s.addGeometry(u)}get test(){}}const Tr=(0,d.vt)(),Cr=2**-23,Ar=.05;var Rr,Er=i(44794),Or=i(48163),Mr=i(79258),Lr=i(25482),Pr=i(93223);let Ir=Rr=class extends Lr.o{constructor(e){super(e),this.type="cloudy",this.cloudCover=.5}clone(){return new Rr({cloudCover:this.cloudCover})}};(0,r.Cg)([(0,Pr.e)({cloudy:"cloudy"}),(0,u.MZ)({json:{write:{isRequired:!0}}})],Ir.prototype,"type",void 0),(0,r.Cg)([(0,u.MZ)({type:Number,nonNullable:!0,range:{min:0,max:1},json:{write:!0}})],Ir.prototype,"cloudCover",void 0),Ir=Rr=(0,r.Cg)([(0,u.$K)("esri.views.3d.environment.CloudyWeather")],Ir);const zr=Ir;var Dr;let Fr=Dr=class extends Lr.o{constructor(e){super(e),this.type="foggy",this.fogStrength=.5}clone(){return new Dr({fogStrength:this.fogStrength})}};(0,r.Cg)([(0,Pr.e)({foggy:"foggy"}),(0,u.MZ)({json:{write:{isRequired:!0}}})],Fr.prototype,"type",void 0),(0,r.Cg)([(0,u.MZ)({type:Number,nonNullable:!0,range:{min:0,max:1},json:{write:!0}})],Fr.prototype,"fogStrength",void 0),Fr=Dr=(0,r.Cg)([(0,u.$K)("esri.views.3d.environment.FoggyWeather")],Fr);const Nr=Fr;var Wr;let Vr=Wr=class extends Lr.o{constructor(e){super(e),this.type="rainy",this.cloudCover=.5,this.precipitation=.5}clone(){return new Wr({cloudCover:this.cloudCover,precipitation:this.precipitation})}};(0,r.Cg)([(0,Pr.e)({rainy:"rainy"}),(0,u.MZ)({json:{write:{isRequired:!0}}})],Vr.prototype,"type",void 0),(0,r.Cg)([(0,u.MZ)({type:Number,nonNullable:!0,range:{min:0,max:1},json:{write:!0}})],Vr.prototype,"cloudCover",void 0),(0,r.Cg)([(0,u.MZ)({type:Number,nonNullable:!0,range:{min:0,max:1},json:{write:!0}})],Vr.prototype,"precipitation",void 0),Vr=Wr=(0,r.Cg)([(0,u.$K)("esri.views.3d.environment.RainyWeather")],Vr);const jr=Vr;var Hr;let Ur=Hr=class extends Lr.o{constructor(e){super(e),this.type="snowy",this.cloudCover=.5,this.precipitation=.5,this.snowCover="disabled"}clone(){return new Hr({cloudCover:this.cloudCover,precipitation:this.precipitation,snowCover:this.snowCover})}};(0,r.Cg)([(0,Pr.e)({snowy:"snowy"}),(0,u.MZ)({json:{write:{isRequired:!0}}})],Ur.prototype,"type",void 0),(0,r.Cg)([(0,u.MZ)({type:Number,nonNullable:!0,range:{min:0,max:1},json:{write:!0}})],Ur.prototype,"cloudCover",void 0),(0,r.Cg)([(0,u.MZ)({type:Number,nonNullable:!0,range:{min:0,max:1},json:{write:!0}})],Ur.prototype,"precipitation",void 0),(0,r.Cg)([(0,u.MZ)({type:["enabled","disabled"],nonNullable:!0,json:{write:!0}})],Ur.prototype,"snowCover",void 0),Ur=Hr=(0,r.Cg)([(0,u.$K)("esri.views.3d.environment.SnowyWeather")],Ur);const Zr=Ur;var Br;let kr=Br=class extends Lr.o{constructor(e){super(e),this.type="sunny",this.cloudCover=.5}clone(){return new Br({cloudCover:this.cloudCover})}};(0,r.Cg)([(0,Pr.e)({sunny:"sunny"}),(0,u.MZ)({json:{write:{isRequired:!0}}})],kr.prototype,"type",void 0),(0,r.Cg)([(0,u.MZ)({type:Number,nonNullable:!0,range:{min:0,max:1},json:{write:!0}})],kr.prototype,"cloudCover",void 0),kr=Br=(0,r.Cg)([(0,u.$K)("esri.views.3d.environment.SunnyWeather")],kr);const Gr={key:"type",base:kr,typeMap:{sunny:kr,cloudy:zr,rainy:jr,snowy:Zr,foggy:Nr}};Object.keys(Gr.typeMap);class qr{constructor(){this.startTime=0,this._data=(0,Er.v)(null),this.coverage=0,this.absorption=0,this._readChannels=0,this.parallax=new $r,this.parallaxNew=new $r,this._anchorPoint=(0,d.vt)(),this._fadeState=(0,Er.v)(0),this._fadeFactor=(0,Er.v)(1)}get data(){return this._data.value}set data(e){this._data.value=e}get readChannels(){return this._readChannels}get fadeState(){return this._fadeState.value}get fadeFactor(){return this._fadeFactor.value}get opacity(){switch(this.fadeState){case 0:return 0;case 4:return 1-this.fadeFactor;case 1:return this.fadeFactor;case 2:case 3:return 1}}fade(e,t,i){this.isFading&&this.fadeFactor<1&&(this._fadeFactor.value=i?(0,je.qE)((t-this.startTime)/(Xr*i),0,1):1,1===this.fadeFactor&&this._endFade()),this._evaluateState(e,t),this._updateParallax(e)}_evaluateState(e,t){const i=e.relativeElevation,r=this._updateAnchorPoint(e);(Math.abs(i)>17e3||r>en)&&this.opacity>0?this._startFade(0,t):this.isFading||(Math.abs(i)>1e4||r>Jr*en?this.opacity>0&&this._startFade(4,t):function(e){return null!=e&&!e.readyToRun}(this.data)&&(0===this.opacity?this._startFade(1,t):2===this.data.state&&(2===this.fadeState?this._startFade(3,t):this._startFade(2,t))))}_updateParallax(e){const t=(0,A.m3)(e.eye);this.parallax.radiusCurvatureCorrection=.84*Math.sqrt(Math.max(t-Mr.$O.radius*Mr.$O.radius,0))/Math.sqrt(t),(0,v.Cr)(Yr,this.parallax.anchorPoint,Qr),(0,fe.e$)(this.parallax.transform,D.zK,Qr[3],(0,v.yo)(Qr)),(0,v.Cr)(Yr,this.parallaxNew.anchorPoint,Qr),(0,fe.e$)(this.parallaxNew.transform,D.zK,Qr[3],(0,v.yo)(Qr))}_updateAnchorPoint(e){return(0,A.S8)(this._anchorPoint,e.eye),(0,A.hs)(this._anchorPoint,this._anchorPoint,Mr.$O.radius),0===this.fadeState&&2===this.data?.state?((0,A.C)(this.parallax.anchorPoint,this._anchorPoint),0):(0,A.Bw)((0,A.Re)(Kr,this.parallax.anchorPoint,this._anchorPoint))}requestFade(){this._fadeFactor.value=0}_startFade(e,t){switch(this._fadeState.value=e,this.startTime=t,e){case 3:this.requestFade(),this._switchReadChannels(),(0,A.C)(this.parallaxNew.anchorPoint,this._anchorPoint);break;case 1:this.requestFade(),this._switchReadChannels(),(0,A.C)(this.parallax.anchorPoint,this._anchorPoint),(0,A.C)(this.parallaxNew.anchorPoint,this._anchorPoint);break;case 4:this.requestFade();break;case 2:this._switchReadChannels(),(0,A.C)(this.parallax.anchorPoint,this._anchorPoint),(0,A.C)(this.parallaxNew.anchorPoint,this._anchorPoint),this._endFade();break;case 0:this._endFade()}}_endFade(){switch(this._fadeFactor.value=1,this.data&&2!==this.data.state&&(this.data.state=0),this.fadeState){case 3:(0,A.C)(this.parallax.anchorPoint,this.parallaxNew.anchorPoint),this._fadeState.value=2;break;case 1:this._fadeState.value=2;break;case 4:this._fadeState.value=0;break;case 2:case 0:break;default:this.fadeState}}_switchReadChannels(){2===this.data?.state&&(this._readChannels=1-this._readChannels,this.data.state=3)}get isFading(){return 4===this.fadeState||1===this.fadeState||3===this.fadeState}}class $r{constructor(){this.anchorPoint=(0,d.vt)(),this.radiusCurvatureCorrection=0,this.transform=(0,D.vt)()}}const Yr=(0,d.fA)(0,0,1),Qr=(0,v.vt)(),Kr=(0,d.vt)(),Xr=1.25,Jr=.5,en=2e5;class tn{constructor(){this.lastFrameCamera=new vt.A,this.matrix=(0,D.vt)(),this.viewMatrix=(0,D.vt)()}}class rn{constructor(){this.enabled=!1,this.fadeFactor=1}}var nn=i(57226);class sn{constructor(e,t){this._rctx=e,this.shadowMap=t,this._output=0,this.slot=2,this.slicePlane=null,this.hasOccludees=!1,this.emissions=0,this.useFloatBlend=(0,Er.v)(!0),this.enableFillLights=!0,this.alignPixelEnabled=!1,this.decorations=!0,this.overlayStretch=1,this.viewshedEnabled=!1,this.cutFillComputationEnabled=!1,this.cutFillVisualizationEnabled=!1,this._camera=new vt.A,this._inverseViewport=(0,Or.vt)(),this._oldLighting=new nn.TA,this._newLighting=new nn.TA,this._fadedLighting=new nn.TA,this._lighting=this._newLighting,this.screenSpaceReflections=new rn,this.reprojection=new tn,this.highlights=new Array,this.highlightMixOrigin=(0,Or.vt)(),this.highlightMixTexture=null,this.globalIlluminationEnabled=!1,this.hudRenderStyle=0,this.snowCover=0,this.clouds=new qr,this.hasShadowHighlights=!1}destroy(){this._camera=this.contentCamera=null,this.mainDepth=this.overlay=this.ssao=this.shadowHighlight=null,this.depth=(0,rt.Gz)(this.depth),this.shadowMap?.dispose()}get output(){return this._output}set output(e){this._output!==e&&(this._output=e,this._rctx.resetDrawBuffers(e))}get hasEmission(){return 0!==this.emissions}get hasOpaqueEmissions(){return 1===this.emissions||3===this.emissions}get camera(){return this._camera}set camera(e){this._camera=e,this._inverseViewport[0]=1/e.fullViewport[2],this._inverseViewport[1]=1/e.fullViewport[3]}get enableOITOffset(){return 1===this.output&&this.camera.relativeElevation<5e5}get inverseViewport(){return this._inverseViewport}get lighting(){return this._lighting}fadeLighting(){switch(this.clouds.fadeFactor){case 0:this._lighting=this._oldLighting;break;default:this._fadedLighting.lerpLighting(this._oldLighting,this._newLighting,this.clouds.fadeFactor),this._lighting=this._fadedLighting;break;case 1:this._lighting=this._newLighting,this._oldLighting.copyFrom(this._newLighting)}}updateLighting(e,t,i,r){this._oldLighting.copyFrom(this.lighting),this._newLighting.noonFactor=t,this._newLighting.globalFactor=i,this._newLighting.set(e),this._oldLighting.updateLegacy(),1===r&&this.clouds.requestFade(),this.fadeLighting()}get hasScreenSpaceReflections(){return(0,Ri._o)(this.output)&&this.screenSpaceReflections.enabled&&null!=this.reprojection.lastFrameColor}get highlight(){return null==this.highlightLevel?null:this.highlights[this.highlightLevel]}get depth(){return this._depth}set depth(e){e&&(e.name="geometry depth"),this._depth=e}get occluder(){return 10===this.slot||11===this.slot?this.slot:null}}class on{constructor(e,t,i){this.rctx=e,this.techniques=i,this.renderOccludedMask=an,this.time=(0,Ti.l5)(0),this.bind=new sn(e,t),this.bind.alignPixelEnabled=!0}destroy(){this.bind.destroy()}get output(){return this.bind.output}}const an=13;let ln=class extends vt.A{constructor(){super(...arguments),this._projectionMatrix=(0,D.vt)()}get projectionMatrix(){return this._projectionMatrix}};(0,r.Cg)([(0,u.MZ)()],ln.prototype,"_projectionMatrix",void 0),(0,r.Cg)([(0,u.MZ)({readOnly:!0})],ln.prototype,"projectionMatrix",null),ln=(0,r.Cg)([(0,u.$K)("esri.views.3d.webgl-engine.lib.CascadeCamera")],ln);var cn=i(78988);class hn{constructor(){this.camera=new ln,this.lightMat=(0,D.vt)()}}class un{constructor(){this.maxNumCascadesHighQuality=4,this.maxNumCascadesLowQuality=4,this.textureSizeModHighQuality=1.3,this.textureSizeModLowQuality=.9,this.splitSchemeLambda=0}}class dn{constructor(e,t){this._fbos=e,this._viewingMode=t,this._enabled=!1,this._outputs=new Array,this._textureHeight=0,this._numCascades=1,this.settings=new un,this._projectionView=(0,D.vt)(),this._projectionViewInverse=(0,D.vt)(),this._modelViewLight=(0,D.vt)(),this._cascadeDistances=[0,0,0,0,0],this._usedCascadeDistances=(0,ii.vt)(),this._cascades=[new hn,new hn,new hn,new hn],this._lastOrigin=null,this._maxTextureWidth=Math.min((0,Ie.A)("esri-mobile")?4096:16384,e.rctx.parameters.maxTextureSize)}dispose(){this.enabled=!1}disposeOutputs(){this._handle=(0,rt.Gz)(this._handle),this._outputs.forEach(e=>e?.release()),this._outputs.length=0}disposeOutput(e){this._outputs[e]=(0,rt.Gz)(this._outputs[e])}set maxCascades(e){this.settings.maxNumCascadesHighQuality=(0,je.qE)(Math.floor(e),1,4)}get maxCascades(){return this.settings.maxNumCascadesHighQuality}set enabled(e){this._enabled=e,e||this.disposeOutputs()}get enabled(){return this._enabled}get ready(){return!!this.getOutput(5)||!!this.getOutput(7)}get cascades(){for(let e=0;e<this._numCascades;++e)wn[e]=this._cascades[e];return wn.length=this._numCascades,wn}start(e,t,i,r,n){(0,Xt.vA)(this.enabled);const{near:s,far:o}=function(e){let{near:t,far:i}=e;return t<2&&(t=2),i<2&&(i=2),t>=i&&(t=2,i=4),{near:t,far:i}}(i);this._computeCascadeDistances(s,o,r),this._textureHeight=this._computeTextureHeight(e,n,r),this._setupMatrices(e,t);const{viewMatrix:a,projectionMatrix:l}=e;for(let e=0;e<this._numCascades;++e)this._constructCascade(e,l,a,t);this._lastOrigin=null,this.clear()}getShadowMapMatrices(e){if(!this._lastOrigin||!(0,A.t2)(e,this._lastOrigin)){this._lastOrigin=this._lastOrigin||(0,d.vt)(),(0,A.C)(this._lastOrigin,e);for(let t=0;t<this._numCascades;++t){(0,fe.Tl)(Sn,this._cascades[t].lightMat,e);for(let e=0;e<16;++e)Tn[16*t+e]=Sn[e]}}return Tn}finish(e){(0,Xt.vA)(this.enabled),this._outputs[e]?.release(),this._outputs[e]=this._handle,this._handle?.setName(6===e?"shadow map highlight":"shadow map excluding highlight"),this._handle=null}getOutput(e){return this.enabled?this._outputs[e]?.getTexture(Ut.nI):null}clear(){this._ensureFbo(),this.bindFramebuffer(),this._fbos.rctx.clear(256)}_computeTextureHeight({pixelRatio:e,fullWidth:t,fullHeight:i},r,n){const s=Math.min(window.devicePixelRatio,r)/e,o=n?this.settings.textureSizeModHighQuality:this.settings.textureSizeModLowQuality;return(0,cn.Mv)(Math.max(t,i)*s*o,this._maxTextureWidth/this._numCascades)}_ensureFbo(){this._handle?.fbo?.width===this._textureWidth&&this._handle?.fbo.height===this._textureHeight||(this._handle?.release(),this._handle=this._fbos.acquire(this._textureWidth,this._textureHeight,"shadow map",12),this._handle.getTexture(Ut.nI)?.setShadowFiltering(!0))}bindFramebuffer(){this._fbos.rctx.bindFramebuffer(this._handle?.fbo)}_constructCascade(e,t,i,r){const n=this._cascades[e],s=-this._cascadeDistances[e],o=-this._cascadeDistances[e+1],a=(t[10]*s+t[14])/Math.abs(t[11]*s+t[15]),l=(t[10]*o+t[14])/Math.abs(t[11]*o+t[15]);(0,Xt.vA)(a<l);for(let e=0;e<8;++e){(0,at.hZ)(gn,e%4==0||e%4==3?-1:1,e%4==0||e%4==1?-1:1,e<4?a:l,1);const t=fn[e];(0,at.Z0)(t,gn,this._projectionViewInverse),t[0]/=t[3],t[1]/=t[3],t[2]/=t[3]}(0,A.ze)(bn,fn[0]),n.camera.viewMatrix=(0,fe.Tl)(pn,this._modelViewLight,bn);for(let e=0;e<8;++e)(0,A.Z0)(fn[e],fn[e],n.camera.viewMatrix);let c=fn[0][2],h=fn[0][2];for(let e=1;e<8;++e)c=Math.min(c,fn[e][2]),h=Math.max(h,fn[e][2]);c-=200,h+=200,n.camera.near=-h,n.camera.far=-c,function(e,t,i,r,n){const s=1/fn[0][3],o=1/fn[4][3];(0,Xt.vA)(s<o);let a=s+Math.sqrt(s*o);const l=Math.sin((0,je.XM)(e[2]*t[0]+e[6]*t[1]+e[10]*t[2]));a/=l,function(e,t,i,r,n,s,o,a){(0,bt.hZ)(Cn,0,0);for(let t=0;t<4;++t)(0,bt.WQ)(Cn,Cn,e[t]);(0,bt.hs)(Cn,Cn,.25),(0,bt.hZ)(An,0,0);for(let t=4;t<8;++t)(0,bt.WQ)(An,An,e[t]);(0,bt.hs)(An,An,.25),(0,bt.Cc)(Rn[0],e[4],e[5],.5),(0,bt.Cc)(Rn[1],e[5],e[6],.5),(0,bt.Cc)(Rn[2],e[6],e[7],.5),(0,bt.Cc)(Rn[3],e[7],e[4],.5);let l=0,c=(0,bt.hG)(Rn[0],Cn);for(let e=1;e<4;++e){const t=(0,bt.hG)(Rn[e],Cn);t<c&&(c=t,l=e)}(0,bt.Re)(En,Rn[l],e[l+4]);const h=En[0];let u,d;En[0]=-En[1],En[1]=h,(0,bt.Re)(On,An,Cn),(0,bt.Om)(On,En)<0&&(0,bt.ze)(En,En),(0,bt.Cc)(En,En,On,i),(0,bt.S8)(En,En),u=d=(0,bt.Om)((0,bt.Re)(Mn,e[0],Cn),En);for(let t=1;t<8;++t){const i=(0,bt.Om)((0,bt.Re)(Mn,e[t],Cn),En);i<u?u=i:i>d&&(d=i)}(0,bt.C)(r,Cn),(0,bt.hs)(Mn,En,u-t),(0,bt.WQ)(r,r,Mn);let p=-1,g=1,f=0,m=0;for(let t=0;t<8;++t){(0,bt.Re)(Ln,e[t],r),(0,bt.S8)(Ln,Ln);const i=En[0]*Ln[1]-En[1]*Ln[0];i>0?i>p&&(p=i,f=t):i<g&&(g=i,m=t)}(0,Xt.MX)(p>0,"leftArea"),(0,Xt.MX)(g<0,"rightArea"),(0,bt.hs)(Pn,En,u),(0,bt.WQ)(Pn,Pn,Cn),(0,bt.hs)(In,En,d),(0,bt.WQ)(In,In,Cn),zn[0]=-En[1],zn[1]=En[0];const v=(0,Xt.L)(r,e[m],In,(0,bt.WQ)(Mn,In,zn),1,n),y=(0,Xt.L)(r,e[f],In,Mn,1,s),x=(0,Xt.L)(r,e[f],Pn,(0,bt.WQ)(Mn,Pn,zn),1,o),_=(0,Xt.L)(r,e[m],Pn,Mn,1,a);(0,Xt.MX)(v,"rayRay"),(0,Xt.MX)(y,"rayRay"),(0,Xt.MX)(x,"rayRay"),(0,Xt.MX)(_,"rayRay")}(fn,a,l,mn,vn,yn,xn,_n),function(e,t,i,r,n){(0,bt.Re)(Wn,i,r),(0,bt.hs)(Wn,Wn,.5),Vn[0]=Wn[0],Vn[1]=Wn[1],Vn[2]=0,Vn[3]=Wn[1],Vn[4]=-Wn[0],Vn[5]=0,Vn[6]=Wn[0]*Wn[0]+Wn[1]*Wn[1],Vn[7]=Wn[0]*Wn[1]-Wn[1]*Wn[0],Vn[8]=1,Vn[Dn(0,2)]=-(0,bt.Om)(Nn(Vn,0),e),Vn[Dn(1,2)]=-(0,bt.Om)(Nn(Vn,1),e);let s=(0,bt.Om)(Nn(Vn,0),i)+Vn[Dn(0,2)],o=(0,bt.Om)(Nn(Vn,1),i)+Vn[Dn(1,2)],a=(0,bt.Om)(Nn(Vn,0),r)+Vn[Dn(0,2)],l=(0,bt.Om)(Nn(Vn,1),r)+Vn[Dn(1,2)];s=-(s+a)/(o+l),Vn[Dn(0,0)]+=Vn[Dn(1,0)]*s,Vn[Dn(0,1)]+=Vn[Dn(1,1)]*s,Vn[Dn(0,2)]+=Vn[Dn(1,2)]*s,s=1/((0,bt.Om)(Nn(Vn,0),i)+Vn[Dn(0,2)]),o=1/((0,bt.Om)(Nn(Vn,1),i)+Vn[Dn(1,2)]),Vn[Dn(0,0)]*=s,Vn[Dn(0,1)]*=s,Vn[Dn(0,2)]*=s,Vn[Dn(1,0)]*=o,Vn[Dn(1,1)]*=o,Vn[Dn(1,2)]*=o,Vn[Dn(2,0)]=Vn[Dn(1,0)],Vn[Dn(2,1)]=Vn[Dn(1,1)],Vn[Dn(2,2)]=Vn[Dn(1,2)],Vn[Dn(1,2)]+=1,s=(0,bt.Om)(Nn(Vn,1),t)+Vn[Dn(1,2)],o=(0,bt.Om)(Nn(Vn,2),t)+Vn[Dn(2,2)],a=(0,bt.Om)(Nn(Vn,1),i)+Vn[Dn(1,2)],l=(0,bt.Om)(Nn(Vn,2),i)+Vn[Dn(2,2)],s=-.5*(s/o+a/l),Vn[Dn(1,0)]+=Vn[Dn(2,0)]*s,Vn[Dn(1,1)]+=Vn[Dn(2,1)]*s,Vn[Dn(1,2)]+=Vn[Dn(2,2)]*s,s=(0,bt.Om)(Nn(Vn,1),t)+Vn[Dn(1,2)],o=(0,bt.Om)(Nn(Vn,2),t)+Vn[Dn(2,2)],a=-o/s,Vn[Dn(1,0)]*=a,Vn[Dn(1,1)]*=a,Vn[Dn(1,2)]*=a,n[0]=Vn[0],n[1]=Vn[1],n[2]=0,n[3]=Vn[2],n[4]=Vn[3],n[5]=Vn[4],n[6]=0,n[7]=Vn[5],n[8]=0,n[9]=0,n[10]=1,n[11]=0,n[12]=Vn[6],n[13]=Vn[7],n[14]=0,n[15]=Vn[8]}(mn,vn,xn,_n,n.projectionMatrix),n.projectionMatrix[10]=2/(i-r),n.projectionMatrix[14]=-(i+r)/(i-r)}(i,r,c,h,n.camera),(0,fe.lw)(n.lightMat,n.camera.projectionMatrix,n.camera.viewMatrix);const u=this._textureHeight;n.camera.viewport=[e*u,0,u,u]}_setupMatrices(e,t){(0,fe.lw)(this._projectionView,e.projectionMatrix,e.viewMatrix),(0,fe.B8)(this._projectionViewInverse,this._projectionView);const i=1===this._viewingMode?e.eye:(0,A.hZ)(bn,0,0,1);(0,fe.t5)(this._modelViewLight,[0,0,0],[-t[0],-t[1],-t[2]],i)}_computeCascadeDistances(e,t,i){const r=i?this.settings.maxNumCascadesHighQuality:this.settings.maxNumCascadesLowQuality;this._numCascades=Math.min(1+Math.floor((0,Xt.kL)(t/e,4)),r);const n=(t-e)/this._numCascades,s=(t/e)**(1/this._numCascades);let o=e,a=e;for(let e=0;e<this._numCascades+1;++e)this._cascadeDistances[e]=(0,je.Cc)(o,a,this.settings.splitSchemeLambda),o*=s,a+=n}get _textureWidth(){return this._textureHeight*this._numCascades}get numCascades(){return this._numCascades}get cascadeDistances(){return(0,at.hZ)(this._usedCascadeDistances,this._cascadeDistances[0],this._numCascades>1?this._cascadeDistances[1]:1/0,this._numCascades>2?this._cascadeDistances[2]:1/0,this._numCascades>3?this._cascadeDistances[3]:1/0)}get test(){}}const pn=(0,D.vt)(),gn=(0,ii.vt)(),fn=[];for(let e=0;e<8;++e)fn.push((0,ii.vt)());const mn=(0,Or.vt)(),vn=(0,Or.vt)(),yn=(0,Or.vt)(),xn=(0,Or.vt)(),_n=(0,Or.vt)(),bn=(0,d.vt)(),wn=[],Sn=(0,D.vt)(),Tn=D.zK.concat(D.zK,D.zK,D.zK),Cn=(0,Or.vt)(),An=(0,Or.vt)(),Rn=[(0,Or.vt)(),(0,Or.vt)(),(0,Or.vt)(),(0,Or.vt)()],En=(0,Or.vt)(),On=(0,Or.vt)(),Mn=(0,Or.vt)(),Ln=(0,Or.vt)(),Pn=(0,Or.vt)(),In=(0,Or.vt)(),zn=(0,Or.vt)();function Dn(e,t){return 3*t+e}const Fn=(0,Or.vt)();function Nn(e,t){return(0,bt.hZ)(Fn,e[t],e[t+3]),Fn}const Wn=(0,Or.vt)(),Vn=(0,ae.vt)();var jn=i(92942);let Hn=class extends Ct.w{constructor(){super(...arguments),this.shader=new Tt.r(jn.a,()=>i.e(959).then(i.bind(i,959)))}initializePipeline(e){return e.hasAlpha?(0,Et.Ey)({blending:Et.T8,colorWrite:Et.kn}):(0,Et.Ey)({colorWrite:Et.kn})}};Hn=(0,r.Cg)([(0,u.$K)("esri.views.3d.webgl-engine.lib.TextureTechnique")],Hn);class Un extends Ui.K{constructor(){super(...arguments),this.hasAlpha=!1}}(0,r.Cg)([(0,Ui.W)()],Un.prototype,"hasAlpha",void 0);var Zn=i(75497),Bn=i(80583);let kn=class extends Ct.w{constructor(){super(...arguments),this.shader=new Tt.r(Bn.a,()=>i.e(4849).then(i.bind(i,64849))),this.ignoreUnused=!0}};kn=(0,r.Cg)([(0,u.$K)("esri.views.3d.webgl-engine.shaders.OverlayCompositingTechnique")],kn);var Gn=i(92359);let qn=class extends _t{constructor(e){super(e),this._overlays=null,this._renderTargets=null,this._overlayParameters=new Bn.O,this.hasHighlights=!1,this.renderOccludedFlags=1,this._hasWater=!1,this._renderers=new Map,this._sortedDrapeSourceRenderersDirty=!1,this._sortedRenderers=new nt.A,this._passParameters=new jn.T,this._screenToWorldRatio=1,this._localOriginFactory=null,this.unloadedMemory=0,this.ignoresMemoryFactor=!1,this._camera=new vt.A,this.events=new tt.bk,this.longitudeCyclical=null,this.produces=new Map([[18,e=>10!==e||this.hasHighlights],[19,()=>this._hasWater]]),this._hasTargetWithoutRasterImage=!1,this._hasDrapedFeatureSource=!1,this._hasDrapedRasterSource=!1,this._hasDrapedFlowSource=!1;const{state:t,stage:i}=e.parent.view,r=i.renderer.fboCache,n=i.renderView.renderingContext,s=i.renderView.techniques;this._renderContext=new on(n,new dn(r,t.viewingMode),s)}initialize(){const e=this._view,t=e.stage.renderView.waterTextures;this.addHandles([(0,h.wB)(()=>t.updating,()=>this.events.emit("content-changed"),h.pc),(0,h.wB)(()=>this._spatialReference,e=>this._localOriginFactory=new Sr(e),h.pc),(0,h.on)(()=>e.allLayerViews,"after-changes",()=>this._sortedDrapeSourceRenderersDirty=!0),(0,h.wB)(()=>function(e){let t=0;for(const i of e){const{name:e}=i;t+=e.length;const{color:r,fillOpacity:n,haloColor:s,haloOpacity:o}=i;t+=r.r+r.g+r.b+r.a+n,t+=s?s.r+s.g+s.b+s.a+o:0}const i=e.at(0);if(i){const{shadowOpacity:e,shadowDifference:r,shadowColor:n}=i;t+=e+r+n.r+n.g+n.b+n.a}return $t+++(t>=0?0:1)}(e.state.highlights),()=>this._sortedDrapeSourceRenderersDirty=!0,h.Vh),(0,h.wB)(()=>e.state.highlights,e=>{this._bindParameters.highlights=e},h.Vh),e.resourceController.scheduler.registerTask(Gn.W6.OVERLAY_RENDERER,this)]);const i=this._camera;i.near=1,i.far=1e4,i.relativeElevation=null,this._bindParameters.slot=18,this._bindParameters.camera=i,this._bindParameters.updateLighting(new Zn.$p((0,d.S)()),0,0,0)}destroy(){this._renderers.forEach(e=>e.destroy()),this._renderers.clear(),this._passParameters.texture=(0,rt.WD)(this._passParameters.texture),this.disposeOverlays(),this._renderContext.destroy(),this._sortedRenderers.prune()}get _bindParameters(){return this._renderContext.bind}get _rctx(){return this._stage.renderView.renderingContext}get _view(){return this.parent.view}get _stage(){return this.parent.view.stage}get _spatialReference(){return this.parent.spatialReference}get _techniques(){return this._stage.renderView.techniques}get rctx(){return this._rctx}get materials(){return this._pluginContext.materials}get screenToWorldRatio(){return this._screenToWorldRatio}get localOriginFactory(){return this._localOriginFactory}set time(e){this._renderContext.time=e}get pluginContext(){return this._pluginContext}initializeRenderContext(e){const t=new Jt(this._view.stage.renderView.textures,this._techniques,()=>{this._onMaterialOrContentChanged(),this.events.emit("content-changed"),this.notifyChange("updating"),this.notifyChange("isEmpty")},()=>this.events.emit("content-changed"));this._pluginContext={...e,materials:t},this._techniques.precompile(kn)}uninitializeRenderContext(){}acquireTechniques(){return[]}render(){}get updating(){return this._sortedDrapeSourceRenderersDirty||(0,it.Bs)(this._renderers,e=>e.updating||e.canCompact)}get hasOverlays(){return null!=this._overlays&&null!=this._renderTargets}getMaterialRenderer(e){for(const t of this._renderers.values()){const i=t.getMaterialRenderer(e);if(i)return i}return null}get layers(){return this._sortedDrapeSourceRenderersDirty&&this._updateSortedDrapeSourceRenderers(),(0,et.Am)(this._sortedRenderers.map(e=>e.drapeSource.layer).filter(e=>!!e))}registerDrapeSource(e,t){const i=this._renderers.get(e);null!=i&&i.destroy(),this._renderers.set(e,t),this._sortedDrapeSourceRenderersDirty=!0,"fullOpacity"in e&&this.addHandles((0,h.wB)(()=>e.fullOpacity,()=>this.events.emit("content-changed")),e)}removeDrapeSourceRenderer(e){if(null==e)return;const t=this._renderers.get(e);null!=t&&(this._sortedDrapeSourceRenderersDirty=!0,this._renderers.delete(e),this.removeHandles(e),t.destroy())}computeValidity(){return this._renderTargets?.computeValidity()??0}releaseRenderTargets(e){this._renderTargets?.dispose(e)}get overlays(){return this._overlays??[]}ensureDrapeTargets(e){this._hasTargetWithoutRasterImage=!!this._overlays&&(0,st.bw)(e,e=>1===e.drapeTargetType)}ensureDrapeSources(e){this._overlays?(this._hasDrapedFeatureSource=(0,st.bw)(e,e=>1===e.drapeSourceType),this._hasDrapedRasterSource=(0,st.bw)(e,e=>0===e.drapeSourceType),this._hasDrapedFlowSource=(0,st.bw)(e,e=>2===e.drapeSourceType)):this._hasDrapedFeatureSource=this._hasDrapedRasterSource=this._hasDrapedFlowSource=!1}get _needsColorWithoutRasterImage(){return this._hasDrapedRasterSource&&this._hasDrapedFeatureSource&&this._hasTargetWithoutRasterImage}ensureOverlays(e,t,i=this._bindParameters.overlayStretch){null==this._overlays&&(this._renderTargets=new mt(this._stage.renderer.fboCache),this._overlays=[new ut,new ut]),this.ensureDrapeTargets(e),this.ensureDrapeSources(t),this._bindParameters.overlayStretch=i}disposeOverlays(){this._overlays=null,this._renderTargets?.dispose(1),this._renderTargets=null,this.events.emit("textures-disposed")}_useOverlayColorInsteadOfColorNoRasterImage(e){return 1===e&&!this._needsColorWithoutRasterImage&&this._hasDrapedFeatureSource}getTexture(e){const t=this._useOverlayColorInsteadOfColorNoRasterImage(e);return this._renderTargets?.getTexture(t?0:e)}get readyToRun(){return this.updating}runTask(e){this._processDrapeSources(()=>!0,e)}_onMaterialOrContentChanged(){this.renderOccludedFlags=(0,it.Bs)(this._renderers,e=>e.hasOccluders)?Qn:1}_processDrapeSources(e,t){let i=!1;for(const[r,n]of this._renderers){if(t?.done)break;(r.destroyed||e(r))&&n.commitChanges()&&(i=!0,t?.madeProgress())}this._sortedDrapeSourceRenderersDirty&&(this._sortedDrapeSourceRenderersDirty=!1,i=!0,this._updateSortedDrapeSourceRenderers(),t?.madeProgress()),t&&this.compact(t),i&&(null!=this._overlays&&0===this._renderers.size&&this.disposeOverlays(),this.notifyChange("updating"),this.notifyChange("isEmpty"),this._onMaterialOrContentChanged(),this.hasHighlights=(0,it.Bs)(this._renderers,e=>e.hasHighlights),this.events.emit("content-changed"))}compact(e){let t=!1;for(const i of this._renderers.values()){if(e.done)break;t=i.compact(e)||t}return t&&this.notifyChange("updating"),t}hasHighlight(e){return(0,it.Bs)(this._renderers,t=>t.hasHighlight(e))}processSyncDrapeSources(){this._processDrapeSources(e=>1===e.updatePolicy)}get isEmpty(){return!ot.b.OVERLAY_DRAW_DEBUG_TEXTURE&&(0,it.mt)(this._renderers,e=>e.isEmpty)}get hasWater(){const e=(0,it.Bs)(this._renderers,({hasWater:e})=>e);return e!==this._hasWater&&(this._hasWater=e,this.events.emit("has-water")),this._hasWater}renders(e){if(ot.b.OVERLAY_DRAW_DEBUG_TEXTURE&&4!==e&&2!==e)return!0;if(!this._overlays)return!1;const t=this._overlays[0];for(const e of this._overlays)e.setupGeometryViews(this.longitudeCyclical);if(!t.hasSomeSizedView())return!1;const i=this._setOutput(this._renderTargets?.targets.find(t=>t.content===e)?.output??0);++this._techniques.precompiling;const r=this._sortedRenderers.some(({renderer:e})=>e.precompile(this._renderContext));return--this._techniques.precompiling,this._setOutput(i),r}_setOutput(e){const t=this._bindParameters.output;return this._bindParameters.output=e,this._bindParameters.slot=4===e?19:18,t}get mode(){return this.isEmpty?0:this.hasWater&&this.renders(3)?2:this._renderTargets?.getTexture(0)?1:0}updateAnimation(e){let t=!1;return this._renderers.forEach(i=>t=i.updateAnimation(e)||t),t&&this.parent.requestRender(0),t}updateDrapeSourceOrder(){this._sortedDrapeSourceRenderersDirty=!0}precompileShaders(e){if(!this._overlays||!this._renderTargets)return!1;const t=this._bindParameters;t.alignPixelEnabled=e.alignPixelEnabled,++this._techniques.precompiling;for(const e of this._renderTargets.targets){if(1===e.content&&!this._needsColorWithoutRasterImage)continue;const{output:i}=e;this._setOutput(i),10===i&&(t.highlightMixTexture=t.highlights.length>1?this._rctx.emptyTexture:null);const r=this._renderContext.renderOccludedMask;4===e.content&&(this._renderContext.renderOccludedMask=Qn),this._sortedRenderers.forAll(({drapeSource:t,renderer:i})=>{1===e.content&&0===t.drapeSourceType||4===e.content&&i.hasOnlyOccluders||i.precompile(this._renderContext)}),this._renderContext.renderOccludedMask=r,t.highlightMixTexture=null}return--this._techniques.precompiling,!0}drawOverlays(e,t){if(!this._overlays||!this._renderTargets)return;for(const e of this._overlays)e.setupGeometryViews(this.longitudeCyclical);this._bindParameters.alignPixelEnabled=e.alignPixelEnabled;const i=this.allSourcesOccluders;for(const e of this._renderTargets.targets){if((0!==e.content||!this._hasDrapedFlowSource)&&!e.handleRenderRequest(t)||1===e.content&&!this._needsColorWithoutRasterImage||4===e.content&&i)continue;const r=this._drawTarget(0,e),n=this._drawTarget(1,e);(r||n)&&e.fbo.generateMipMap()}}_drawTarget(e,t){const i=this._overlays[e],r=i.canvasGeometries;if(0===r.numViews)return!1;const n=this._view.state.contentPixelRatio;this._screenToWorldRatio=n*i.mapUnitsPerPixel/this._bindParameters.overlayStretch;const{output:s,content:o}=t;if(this.isEmpty||4===s&&!this.hasWater||!i.hasSomeSizedView())return!1;const{_rctx:a,_camera:l,_renderContext:c,_bindParameters:h}=this;if(l.pixelRatio=i.pixelRatio*n,this._setOutput(s),h.screenToWorldRatio=this._screenToWorldRatio,h.screenToPCSRatio=this._screenToWorldRatio*this.parent.worldToPCSRatio,4===o&&(c.renderOccludedMask=Qn),!this.renders(o))return c.renderOccludedMask=an,!1;const{resolution:u}=i,d=0===e,p=d?0:u;if(a.setViewport(p,0,u,u),this._bindTargetFBO(t),d&&(10===s?a.gl.clearBufferuiv(a.gl.COLOR,0,[0,0,0,0]):(a.setClearColor(0,0,0,0),a.clear(16384))),ot.b.OVERLAY_DRAW_DEBUG_TEXTURE&&4!==o&&2!==o){this._techniques.precompile(Hn,Kn);const t=this._techniques.get(Hn,Kn);for(let n=0;n<r.numViews;n++)this._setViewParameters(r.extents[n],i),this._ensureDebugPatternResources(i.resolution,Yn[e]),a.bindTechnique(t,h,this._passParameters),a.screen.draw()}if(10===s){const{fboCache:i}=this._stage.renderer,r=this._resolution;this._bindTargetFBO(t),function(e,t,i,r,n,s,o=0){const{highlights:a}=n,l=a.length>1?t.acquire(i,r,"highlight mix",a.length>Qt?3:1):null,{gl:c}=e;if(l){const t=e.boundFramebuffer;e.bindFramebuffer(l.fbo),c.clearBufferuiv(c.COLOR,0,[0,0,0,0]),e.bindFramebuffer(t)}const h=l?.getTexture();n.highlightMixTexture=h,(0,bt.hZ)(n.highlightMixOrigin,o,0),a.forEach((t,a)=>{if(a>0){const t=Zt.A.TEXTURE_UNIT_FOR_UPDATES;e.bindTexture(h,t),e.setActiveTexture(t),c.copyTexSubImage2D(3553,0,0,0,o,0,i,r),e.bindTexture(null,t)}e.clear(256),n.highlightLevel=a,s()}),n.highlightLevel=null,n.highlightMixTexture=null,l?.release()}(a,i,r,r,h,()=>this._renderAllGeometry(e,t),p)}else this._renderAllGeometry(e,t);return a.bindFramebuffer(null),c.renderOccludedMask=an,!0}get allSourcesOccluders(){return(0,it.mt)(this._renderers,e=>e.hasOnlyOccluders)}_renderAllGeometry(e,t){const i=this._overlays[e],r=i.canvasGeometries;this._sortedRenderers.forAll(({drapeSource:n,renderer:s})=>{if(1===t.content&&0===n.drapeSourceType)return;const{fullOpacity:o}=n,a=null!=o&&o<1&&0===t.output&&this._bindTemporaryFBO();for(let e=0;e<r.numViews;e++)this._setViewParameters(r.extents[e],i),s.render(this._renderContext);if(a){this._bindTargetFBO(t),this._overlayParameters.texture=a.getTexture(),this._overlayParameters.opacity=o,this._overlayParameters.overlayIndex=e;const i=this._techniques.get(kn);this._rctx.bindTechnique(i,this._bindParameters,this._overlayParameters),this._rctx.screen.draw(),a.release()}})}_bindTargetFBO(e){const t=this._resolution,i=2*t;e.fbo.ensureFramebuffer(i,t),e.fbo.bind(this._rctx)}_bindTemporaryFBO(){const e=this._resolution,t=2*e,i=this._stage.renderer.fboCache,r=i.acquire(t,e,"overlay tmp");return i.rctx.bindFramebuffer(r.fbo),i.rctx.clear(16384),r}get _resolution(){return this._overlays?.[0].resolution??0}notifyContentChanged(){this.events.emit("content-changed")}intersect(e,t,i,r){this._sortedDrapeSourceRenderersDirty&&this._updateSortedDrapeSourceRenderers();let n=0;for(const{renderer:s}of this._sortedRenderers)n=s.intersect?.(e,t,i,r,n)??n}_updateSortedDrapeSourceRenderers(){if(this._sortedRenderers.clear(),0===this._renderers.size)return;const e=this._view.map.allLayers.map(e=>e.uid),t=e.length;this._renderers.forEach((i,r)=>{const n=e.indexOf(r.layer?.uid),s=n>=0,o=r.renderGroup??(s?0:1),a=r.drapeSourcePriorityOffset??0,l=t*o+(s?n:0)+a;this._sortedRenderers.push(new $n(r,i,l))}),this._sortedRenderers.sort((e,t)=>e.index-t.index)}_setViewParameters(e,t){const i=this._camera;i.viewport=[0,0,t.resolution,t.resolution],(0,fe.v3)(i.projectionMatrix,0,e[2]-e[0],0,e[3]-e[1],i.near,i.far),(0,fe.kN)(i.viewMatrix,[-e[0],-e[1],0])}_ensureDebugPatternResources(e,t){if((0,A.hZ)(this._passParameters.color,t[0],t[1],t[2]),this._passParameters.texture)return;const i=new Uint8Array(e*e*4);let r=0;for(let t=0;t<e;t++)for(let n=0;n<e;n++){const s=Math.floor(n/10),o=Math.floor(t/10);s<2||o<2||10*s>e-20||10*o>e-20?(i[r++]=255,i[r++]=255,i[r++]=255,i[r++]=255):(i[r++]=255,i[r++]=255,i[r++]=255,i[r++]=1&s&&1&o?1&n^1&t?0:255:1&s^1&o?0:128)}const n=new Bt.R(e);n.samplingMode=9728,this._passParameters.texture=new Zt.A(this._rctx,n,i)}get test(){}};(0,r.Cg)([(0,u.MZ)()],qn.prototype,"hasHighlights",void 0),(0,r.Cg)([(0,u.MZ)()],qn.prototype,"renderOccludedFlags",void 0),(0,r.Cg)([(0,u.MZ)()],qn.prototype,"_sortedDrapeSourceRenderersDirty",void 0),(0,r.Cg)([(0,u.MZ)({constructOnly:!0})],qn.prototype,"parent",void 0),(0,r.Cg)([(0,u.MZ)({readOnly:!0})],qn.prototype,"_techniques",null),(0,r.Cg)([(0,u.MZ)({type:Boolean,readOnly:!0})],qn.prototype,"updating",null),(0,r.Cg)([(0,u.MZ)()],qn.prototype,"isEmpty",null),qn=(0,r.Cg)([(0,u.$K)("esri.views.3d.terrain.OverlayRenderer")],qn);class $n{constructor(e,t,i){this.drapeSource=e,this.renderer=t,this.index=i}}const Yn=[[1,.5,.5],[.5,.5,1]],Qn=4,Kn=new Un;var Xn;Kn.hasAlpha=!0;class Jn{constructor(e,t,i,r){this.positions=e,this.polygonIndices=t,this.outline=i,this.projectionSuccess=r,this.count=e.length/3}get vertexCount(){return this.positions.length/3}get polygonIndexCount(){return this.polygonIndices.length}get outlineIndexCount(){const{outline:e}=this;if("tessellated-indices"!==e.output)return 0;let t=0;for(let i=0;i<e.outlineIndices.length;i++)t+=rs(e.outlineIndices[i]);return t}get outlineSegmentCount(){const{outline:e}=this;if("tessellated-indices"!==e.output)return 0;let t=0;for(let i=0;i<e.outlineIndices.length;i++){const r=rs(e.outlineIndices[i]);r>1&&(t+=r)}return t}}class es extends Jn{}function ts(e,t){const{projectIfNearlyVertical:i=!1,outlineOutput:r="none",method:n="auto"}=t??{},s="tessellated-indices"===r,o=ke(e.rings,!!e.hasZ,e.spatialReference),a=function(e,t){const{hasZ:i,ccwRingsAsHoles:r,spatialReference:n}=t,s=t.axis??ke(e,i,n),o=e.length,a=new Array(o),l=new Array(o),c=new Array(o),h=e.reduce((e,t)=>e+t.length,0);let u=0,d=0,p=0;const g=(0,H.jh)(3*h);let f=0;for(let t=o-1;t>=0;t--){const n=e[t],h=Xe(n,i);if(h<3){h>1&&(c[p++]={index:f,count:n.length},f=Ke(n,0,1,g,f,n.length,i));continue}const m=!!r&&Ge(n,i,s);if(m&&1!==o)a[u++]=n;else{let e=n.length;for(let t=0;t<u;++t)e+=a[t].length;const t={index:f,pathLengths:new Array(u+1),count:e,holeIndices:new Array(u)};t.pathLengths[0]=n.length,n.length>0&&(c[p++]={index:f,count:n.length}),f=m?Ke(n,n.length-1,-1,g,f,n.length,i):Ke(n,0,1,g,f,n.length,i);for(let e=0;e<u;++e){const r=a[e];t.holeIndices[e]=f,t.pathLengths[e+1]=r.length,r.length>0&&(c[p++]={index:f,count:r.length}),f=Ke(r,0,1,g,f,r.length,i)}u=0,t.count>0&&(l[d++]=t)}}return l.length=d,c.length=p,{positions:3*f===g.length?g:(0,H.l5)(g,0,3*f),polygons:l,outlines:c}}(e.rings,{hasZ:!!e.hasZ,ccwRingsAsHoles:!0,spatialReference:e.spatialReference,axis:o}),l=function(e,t){const i=function(e,t){const i={...Be,...t},{projectionAxis:r}=i,n=null!=r&&2!==r;n&&Ye(e.positions,r,2);const s=function(e,t){if("libtess"===t.method||"auto"===t.method&&function(e){return e.polygons.reduce((e,t)=>{if(null==t.holeIndices)return e;if(0===t.pathLengths.length)return e;let i=0;for(let e=0;e<t.pathLengths.length;e++)i+=t.pathLengths[e];return e+(i-t.pathLengths[0])},0)}(e)>100)return $e(e,t);const i=Array();let r=0;for(const n of e.polygons){const s=Qe(e.positions,n),o=(n.holeIndices??[]).map(e=>e-n.index),a=o.length>0?o:null,l=(0,Fe.e)(s,a,3),c=Fe.e.deviation(s,o,3,l);if("auto"===t.method&&c>1e-5)return $e(e,t);for(let e=0;e<l.length;e++)i.push(l[e]+n.index);r=Math.max(r,c)}const{outlineIndexBuffer:n,outlineRingLengths:s}=null!=t.outlines?function(e,t){const i=(0,Ve.my)(e.length);let r=0;for(let n=0;n<e.length;n++){const s=e[n],o=s.count;if(o<=0){i[n]=0;continue}const a=3*s.index,l=3*(s.index+o-1),c=o>1&&t[a]===t[l]&&t[a+1]===t[l+1]&&t[a+2]===t[l+2]?o-1:o,h=c>0?c+1:0;i[n]=h,r+=h}const n=(0,Ve.my)(r);let s=0;for(let t=0;t<e.length;t++){const r=i[t];if(0===r)continue;const o=e[t].index,a=r-1;for(let e=0;e<a;e++)n[s++]=o+e;n[s++]=o}return{outlineIndexBuffer:n,outlineRingLengths:i}}(t.outlines,e.positions):{outlineIndexBuffer:void 0,outlineRingLengths:void 0};return{succeeded:!0,positions:e.positions,indices:(0,Ve.uW)(i),outlineIndexBuffer:n,outlineRingLengths:s,vertexCount:e.positions.length/3,method:"earcut",deviation:r}}(e,i);if(n){const t=s.succeeded?s.positions:null;null!=t&&t!==e.positions&&Ye(t,2,r),Ye(e.positions,2,r)}return s.succeeded,s}(e,t);return i.succeeded?i:"libtess-not-loaded"===i.message?((0,ze.gc)(qe),async function(){try{await(0,Ne.l3)(),qe.notify()}catch(e){throw e}}()):i}(a,{projectionAxis:i?o:void 0,outlines:s?a.outlines:void 0,method:n});if((0,c.$X)(l))return l;if(!l.succeeded)return null;let h={output:"none"};if("vertex-data"===r){const e=l.positions!==a.positions?a.positions:a.positions.slice();h={output:"vertex-data",outlines:is(a.outlines,e)}}else"tessellated-indices"===r&&(h=function(e){const{outlineIndexBuffer:t,outlineRingLengths:i}=e;if(null==t||null==i)return{output:"none"};const r=new Array(i.length);let n=0;for(let e=0;e<i.length;e++){const s=i[e],o=t.slice(n,n+s);r[e]=o,n+=s}return{output:"tessellated-indices",outlineIndices:r}}(l));return new es(l.positions,l.indices,h,!0)}function is(e,t,i=null){return e.filter(({count:e})=>e>1).map(({index:e,count:r})=>{const n=3*e,s=3*r;return null!=i?new ss(e,r,(0,H.l5)(t,n,s),(0,H.l5)(i,n,s)):new ns(e,r,(0,H.l5)(t,n,s))})}function rs(e,t=0,i=e.length){return i>1&&e[t]===e[t+i-1]?i-1:i}class ns{constructor(e,t,i){this.index=e,this.count=t,this.position=i}}class ss extends ns{constructor(e,t,i,r){super(e,t,i),this.mapPositions=r}}const os={base:null,key:"type",defaultKeyValue:"georeferenced",typeMap:{georeferenced:b.A,local:w.default}};let as=Xn=class extends((0,n.OU)((0,o.WV)((0,l.g)(p.A)))){constructor(e){super(e),this.components=null,this.vertexSpace=new b.A,this.transform=null,this.metadata=new oe,this.hasZ=!0,this.hasM=!1,this.vertexAttributes=new T.default,this.type="mesh"}initialize(){(0===this.metadata.externalSources.length||this.vertexAttributes.position.length)&&(this.loadStatus="loaded"),this.when(()=>{this.addHandles((0,h.wB)(()=>({vertexAttributes:this.vertexAttributes,components:this.components?.map(e=>e.clone())}),()=>this._clearSources(),{once:!0,sync:!0}))})}get hasExtent(){return this.loaded?this.vertexAttributes.position.length>0&&(!this.components||this.components.length>0):null!=this.metadata.displaySource?.extent}get _transformedExtent(){const{spatialReference:e,vertexSpace:t}=this,i=this;return function(e){const{spatialReference:t,vertexSpace:i,untransformedBounds:r}=e,n=(0,m.gE)(r,B);if((0,C.Hq)(i)&&e.transform&&(0,U.t)(n,n,e.transform.localMatrix),"georeferenced"===i.type){const e=i.origin;return e&&(0,U.a)(n,n,e),(0,m.w1)((0,m.vY)(n),t)}const s=(0,W.lO)(t),o=i.origin;if(!(0,N.canProjectWithoutEngine)(s,t)){const[e,i,r]=o;return new F.A({xmin:e,ymin:i,zmin:r,xmax:e,ymax:i,zmax:r,spatialReference:t})}return(0,V.l)(t,o,Z,s),(0,U.t)(n,n,Z),(0,j.projectBuffer)(n,s,0,n,t,0),(0,m.w1)((0,m.vY)(n),t)}({get transform(){return i.transform},vertexSpace:t,spatialReference:e,untransformedBounds:this._untransformedBounds})}get _untransformedBounds(){const{vertexAttributes:{position:e},components:t}=this;return 0===e.length||0===t?.length?(0,m.vt)(m.v_):(0,m.vY)(e)}get origin(){const e=(0,C.MW)(this.vertexSpace,this.spatialReference);if(null!=e)return e;const{center:t,zmin:i}=this._transformedExtent;return new g.A({x:t.x,y:t.y,z:i,spatialReference:this.spatialReference})}get extent(){return this.loaded||null==this.metadata?.displaySource?.extent?this._transformedExtent:this.metadata.displaySource.extent.clone()}addComponent(e){this._checkIfLoaded("addComponent()")&&(this.components||(this.components=[]),this.components.push(y.default.from(e)),this.notifyChange("components"))}removeComponent(e){if(this._checkIfLoaded("removeComponent()")){if(this.components){const t=this.components.indexOf(e);if(-1!==t)return this.components.splice(t,1),void this.notifyChange("components")}a.A.getLogger(this).error("removeComponent()","Provided component is not part of the list of components")}}rotate(e,t,i,r){return(0,v.AU)(e,t,i,ls),function(e,t,i){if(!e.vertexAttributes?.position||0===t[3])return;const{spatialReference:r,vertexSpace:n}=e,s=i?.origin??e.origin;(0,C.CK)(e)?function(e,t,i){e.transform??=new S.A;const{vertexSpace:r,transform:n,spatialReference:s}=e,[o,a,l]=r.origin,c=new g.A({x:o,y:a,z:l,spatialReference:s}),h=_e;if(c.equals(i))(0,A.hZ)(h,0,0,0);else if(!(0,M.p5)(h,i,e))return void(0,O.CN)(ye(),i.spatialReference,s,O.JP);(0,me.x8)(Ae,(0,v.yo)(t),(0,v.$I)(t));const u=(0,fe.O7)(be,Ae,d.uY,d.Un,h),{localMatrix:p}=n,f=(0,fe.lw)(be,u,p);n.scale=(0,fe.X_)((0,d.vt)(),f),(0,fe.hs)(f,f,(0,A.DI)(_e,n.scale));const m=n.rotationAxis;n.rotation=(0,v.ui)(f),0===n.rotationAngle&&(n.rotationAxis=m),n.translation=(0,fe.sC)((0,d.vt)(),f)}(e,t,s):E(n,r)?function(e,t,i){const r=e.spatialReference,n=(0,W.lO)(r),s=Ce;if(!(0,R.g)(i,s,n)&&((0,O.CN)(ye(),i.spatialReference,n,"Falling back to mesh origin"),!(0,R.g)(e.origin,s,n)))return void(0,O.CN)(ye(),e.origin.spatialReference,n);const o=e.vertexAttributes.position,a=e.vertexAttributes.normal,l=e.vertexAttributes.tangent,c=new Float64Array(o.length),h=null!=a?new Float32Array(a.length):null,u=null!=l?new Float32Array(l.length):null;(0,V.l)(n,s,Se,n),(0,ge.z0)(Te,Se);const d=we;(0,A.ei)((0,v.yo)(we),(0,v.yo)(t),Te),d[3]=t[3],!(0,O.gr)(o,r,c,n)||null!=a&&null!=h&&!(0,O.X4)(a,o,r,c,n,h)||null!=l&&null!=u&&!(0,O.xA)(l,o,r,c,n,u)?(0,O.CN)(ye(),r,n):(xe(c,d,3,s),!(0,O.$5)(c,n,o,r)||null!=a&&null!=h&&(xe(h,d,3),!(0,O.si)(h,o,r,c,n,a))||null!=l&&null!=u&&(xe(u,d,4),!(0,O.Mv)(u,o,r,c,n,l))?(0,O.CN)(ye(),n,r):e.vertexAttributesChanged())}(e,t,s):function(e,t,i){const r=Ce;if(!(0,R.g)(i,r,e.spatialReference)){const t=e.origin;return r[0]=t.x,r[1]=t.y,r[2]=t.z,void(0,O.CN)(ye(),i.spatialReference,e.spatialReference,O.JP)}xe(e.vertexAttributes.position,t,3,r),xe(e.vertexAttributes.normal,t,3),xe(e.vertexAttributes.tangent,t,4),e.vertexAttributesChanged()}(e,t,s)}(this,ls,r),this}offset(e,t,i){if(!this._checkIfLoaded("offset()"))return this;const{vertexSpace:r,vertexAttributes:n}=this,s=n?.position;if(!s)return this;if((0,C.Hq)(r)){const[n,s,o]=r.origin;r.origin=(0,d.fA)(n+e,s+t,o+i)}else{for(let r=0;r<s.length;r+=3)s[r]+=e,s[r+1]+=t,s[r+2]+=i;this.vertexAttributesChanged()}return this}scale(e,t){return this._checkIfLoaded("scale()")?(function(e,t,i){if(!e.vertexAttributes?.position)return;const{vertexSpace:r,spatialReference:n}=e,s=i?.origin??e.origin;(0,C.CK)(e)?function(e,t,i){e.transform??=new S.A;const{vertexSpace:r,transform:n,spatialReference:s}=e,[o,a,l]=r.origin,c=new g.A({x:o,y:a,z:l,spatialReference:s}),h=Oe;if(c.equals(i))(0,A.hZ)(h,0,0,0);else if(!(0,M.p5)(h,i,e))return void(0,O.CN)(Re(),i.spatialReference,s,O.JP);const u=(0,A.hZ)(Me,t,t,t),p=(0,fe.O7)(Le,ve.zK,d.uY,u,h),{localMatrix:f}=n,m=(0,fe.lw)(Le,p,f);n.scale=(0,fe.X_)((0,d.vt)(),m),(0,fe.hs)(m,m,(0,A.DI)(Oe,n.scale));const y=n.rotationAxis;n.rotation=(0,v.ui)(m),0===n.rotationAngle&&(n.rotationAxis=y),n.translation=(0,fe.sC)((0,d.vt)(),m)}(e,t,s):E(r,n)?function(e,t,i){const r=e.spatialReference,n=(0,W.lO)(r),s=Pe;if(!(0,R.g)(i,s,n)&&((0,O.CN)(Re(),i.spatialReference,n,"Falling back to mesh origin"),!(0,R.g)(e.origin,s,n)))return void(0,O.CN)(Re(),e.origin.spatialReference,n);const o=e.vertexAttributes.position,a=e.vertexAttributes.normal,l=e.vertexAttributes.tangent,c=new Float64Array(o.length),h=null!=a?new Float32Array(a.length):null,u=null!=l?new Float32Array(l.length):null;!(0,O.gr)(o,r,c,n)||null!=a&&null!=h&&!(0,O.X4)(a,o,r,c,n,h)||null!=l&&null!=u&&!(0,O.xA)(l,o,r,c,n,u)?(0,O.CN)(Re(),r,n):(Ee(c,t,s),!(0,O.$5)(c,n,o,r)||null!=a&&null!=h&&!(0,O.si)(h,o,r,c,n,a)||null!=l&&null!=u&&!(0,O.Mv)(u,o,r,c,n,l)?(0,O.CN)(Re(),n,r):e.vertexAttributesChanged())}(e,t,s):function(e,t,i){const r=Pe;if(!(0,R.g)(i,r,e.spatialReference)){const t=e.origin;return r[0]=t.x,r[1]=t.y,r[2]=t.z,void(0,O.CN)(Re(),i.spatialReference,e.spatialReference,O.JP)}Ee(e.vertexAttributes.position,t,r),e.vertexAttributesChanged()}(e,t,s)}(this,e,t),this):this}centerAt(e,t){return this._checkIfLoaded("centerAt()")?(function(e,t,i){if(!e.vertexAttributes?.position)return;const{vertexSpace:r}=e,n=i?.origin??e.origin;(0,C.Hq)(r)?function(e,t,i){const{vertexSpace:r}=e;if(!(0,C.Hq)(r))return;const n=I,s=P;if(!(0,R.g)(t,s,e.spatialReference))return void(0,O.CN)(L(),t.spatialReference,e.spatialReference,O.JP);if(!(0,R.g)(i,n,e.spatialReference))return void(0,O.CN)(L(),i.spatialReference,e.spatialReference,O.JP);const o=(0,A.Re)(z,s,n);r.origin=(0,A.WQ)((0,d.vt)(),r.origin,o)}(e,t,n):E(r,n.spatialReference)?function(e,t,i){const r=(0,d.fA)(i.x,i.y,i.z??0),n=(0,M.UR)(e,new w.default({origin:r}));if(!n)return;const s=(0,d.fA)(t.x,t.y,t.z??0),o=(0,M.UR)({vertexAttributes:n,spatialReference:e.spatialReference,vertexSpace:new w.default({origin:s})},b.A.absolute);if(!o)return;const{position:a,normal:l,tangent:c}=o;e.vertexAttributes.position=a,e.vertexAttributes.normal=l,e.vertexAttributes.tangent=c,e.vertexAttributesChanged()}(e,t,n):function(e,t,i){const r=I,n=P;if((0,R.g)(t,n,e.spatialReference)){if(!(0,R.g)(i,r,e.spatialReference)){const t=e.origin;return r[0]=t.x,r[1]=t.y,r[2]=t.z,void(0,O.CN)(L(),i.spatialReference,e.spatialReference,O.JP)}(function(e,t,i){if(e)for(let r=0;r<e.length;r+=3)for(let n=0;n<3;n++)e[r+n]+=t[n]-i[n]})(e.vertexAttributes.position,n,r),e.vertexAttributesChanged()}else(0,O.CN)(L(),t.spatialReference,e.spatialReference,O.JP)}(e,t,n)}(this,e,t),this):this}load(e){const{metadata:{displaySource:t}}=this;return t&&this.addResolvingPromise(async function(e,t,r){switch(t.source.type){case"client":case"service":return async function(e,t,r){const{source:n}=t,{loadGLTFMesh:o}=await(0,c.qr)(i.e(5841).then(i.bind(i,35841)),r),a=await q(n,r);(0,c.Te)(r);const l=o(new g.A({x:0,y:0,z:0,spatialReference:e.spatialReference}),a.url,{resolveFile:G(a),signal:r?.signal,expectedType:a.type,unitConversionDisabled:t.unitConversionDisabled});l.then(()=>a.dispose(),()=>a.dispose());const{mesh:{vertexAttributes:h,components:u},meta:{isDracoDecompressed:d}}=await l;if(d)throw new s.A("mesh-load-external:draco-not-supported","The provided mesh uses Draco compression which is not supported.");e.vertexAttributes=h,e.components=u}(e,t,r);case"loadable":return t.source.load(e,r);default:t.source}}(this,t,e)),Promise.resolve(this)}addExternalSources(e){this.metadata.externalSources.addMany(e)}updateDisplaySource(e){this.metadata.displaySource=e}clone(e){return super.clone((0,re.WO)((0,re.QN)(e)))}cloneShallow(){return new Xn({components:this.components,spatialReference:this.spatialReference,vertexAttributes:this.vertexAttributes,vertexSpace:this.vertexSpace.clone(),transform:this.transform,metadata:this.metadata})}vertexAttributesChanged(){this.notifyChange("vertexAttributes")}async toBinaryGLTF(e){const[{toBinaryGLTF:t}]=await Promise.all([i.e(4038).then(i.bind(i,84038)),this.load(e)]);return(0,c.Te)(e),await t(this,e)}get usedMemory(){return this.components?this.components.reduce((e,t)=>e+t.memoryUsage,this.vertexAttributes.usedMemory):this.vertexAttributes.usedMemory}_clearSources(){this.metadata.clearSources()}_checkIfLoaded(e){return!!this.loaded||(a.A.getLogger(this).error(e,"Mesh must be loaded before applying operations"),!1)}static createBox(e,t){if(!(e instanceof g.A))return a.A.getLogger(this.prototype).error(".createBox()",x),null;const i=new Xn(ce(function(){const{faceDescriptions:e,faceVertexOffsets:t,uvScales:i}=he,r=4*e.length,n=new Float64Array(3*r),s=new Float32Array(3*r),o=new Float32Array(2*r),a=new Uint32Array(2*e.length*3);let l=0,c=0,h=0,u=0;for(let r=0;r<e.length;r++){const d=e[r],p=l/3;for(const e of t)a[u++]=p+e;const g=d.corners;for(let e=0;e<4;e++){const t=g[e];let r=0;o[h++]=.25*i[e][0]+d.uvOrigin[0],o[h++]=d.uvOrigin[1]-.25*i[e][1];for(let e=0;e<3;e++)0!==d.axis[e]?(n[l++]=.5*d.axis[e],s[c++]=d.axis[e]):(n[l++]=.5*t[r++],s[c++]=0)}}return{position:n,normal:s,uv:o,faces:a}}(),e,t));return t?.imageFace&&"all"!==t.imageFace?function(e,t){const i=e.components[0],r=i.faces,n=ue[t],s=6*n,o=new Array(6),a=new Array(r.length-6);let l=0,c=0;for(let e=0;e<r.length;e++)e>=s&&e<s+6?o[l++]=r[e]:a[c++]=r[e];if(null!=e.vertexAttributes.uv){const t=new Float32Array(e.vertexAttributes.uv),i=4*n*2,r=[0,1,1,1,1,0,0,0];for(let e=0;e<r.length;e++)t[i+e]=r[e];e.vertexAttributes.uv=t}return e.components=[new y.default({faces:o,material:i.material}),new y.default({faces:a})],e}(i,t.imageFace):i}static createSphere(e,t){return e instanceof g.A?new Xn(ce(function(e=0){const t=Math.round(8*2**e),i=2*t,r=(t-1)*(i+1)+2*i,n=new Float64Array(3*r),s=new Float32Array(3*r),o=new Float32Array(2*r),a=new Uint32Array((t-1)*i*2*3);let l=0,c=0,h=0,u=0;for(let e=0;e<=t;e++){const r=e/t*Math.PI+.5*Math.PI,d=Math.cos(r),p=Math.sin(r);de[2]=p;const g=0===e||e===t,f=g?i-1:i;for(let r=0;r<=f;r++){const p=r/f*2*Math.PI;de[0]=-Math.sin(p)*d,de[1]=Math.cos(p)*d;for(let e=0;e<3;e++)n[l]=.5*de[e],s[l]=de[e],++l;o[c++]=(r+(g?.5:0))/i,o[c++]=e/t,0!==e&&r!==i&&(e!==t&&(a[h++]=u,a[h++]=u+1,a[h++]=u-i),1!==e&&(a[h++]=u,a[h++]=u-i,a[h++]=u-i-1)),u++}}return{position:n,normal:s,uv:o,faces:a}}(t?.densificationFactor||0),e,t)):(a.A.getLogger(this.prototype).error(".createSphere()",x),null)}static createCylinder(e,t){return e instanceof g.A?new Xn(ce(function(e=0){const t=Math.round(16*2**e),i=4*(t+1)+2*t,r=new Float64Array(3*i),n=new Float32Array(3*i),s=new Float32Array(2*i),o=new Uint32Array(4*t*3);let a=0,l=0,c=0,h=0,u=0;for(let e=0;e<=5;e++){const i=0===e||5===e,d=e<=1||e>=4,p=2===e||4===e,g=i?t-1:t;for(let f=0;f<=g;f++){const m=f/g*2*Math.PI,v=i?0:.5;de[0]=v*Math.sin(m),de[1]=v*-Math.cos(m),de[2]=e<=2?.5:-.5;for(let t=0;t<3;t++)r[a++]=de[t],n[l++]=d?2===t?e<=1?1:-1:0:2===t?0:de[t]/v;s[c++]=(f+(i?.5:0))/t,s[c++]=e<=1?1*e/3:e<=3?1*(e-2)/3+1/3:1*(e-4)/3+2/3,p||0===e||f===t||(5!==e&&(o[h++]=u,o[h++]=u+1,o[h++]=u-t),1!==e&&(o[h++]=u,o[h++]=u-t,o[h++]=u-t-1)),u++}}return{position:r,normal:n,uv:s,faces:o}}(t?.densificationFactor||0),e,t)):(a.A.getLogger(this.prototype).error(".createCylinder()",x),null)}static createPlane(e,t){if(!(e instanceof g.A))return a.A.getLogger(this.prototype).error(".createPlane()",x),null;const i=t?.facing??"up",r=function(e,t){const i="number"==typeof t?t:null!=t?t.width:1,r="number"==typeof t?t:null!=t?t.height:1;switch(e){case"up":case"down":return{width:i,depth:r};case"north":case"south":return{width:i,height:r};case"east":case"west":return{depth:i,height:r}}}(i,t?.size);return new Xn(ce(function(e){const t=le.facingAxisOrderSwap[e],i=le.position,r=le.normal,n=new Float64Array(i.length),s=new Float32Array(r.length);let o=0;for(let e=0;e<4;e++){const e=o;for(let a=0;a<3;a++){const l=t[a],c=Math.abs(l)-1,h=l>=0?1:-1;n[o]=i[e+c]*h,s[o]=r[e+c]*h,o++}}return{position:n,normal:s,uv:new Float32Array(le.uv),faces:new Uint32Array(le.faces),isPlane:!0}}(i),e,{...t,size:r}))}static createFromPolygon(e,t){if(!(e instanceof f.A))return a.A.getLogger(this.prototype).error(".createFromPolygon()","Expected polygon to be a Polygon instance"),null;const i=ts(e,{method:"earcut"}),r=(0,c.$X)(i)?null:i,n=r?.positions??[],s=r?.polygonIndices??[];return new Xn({vertexAttributes:new T.default({position:n}),components:[new y.default({faces:s,shading:"flat",material:t?.material??null})],spatialReference:e.spatialReference,vertexSpace:new b.A})}static async createFromGLTF(e,t,r){if(!(e instanceof g.A)){const e=new _;throw a.A.getLogger(this.prototype).error(".createfromGLTF()",e.message),e}const{loadGLTFMesh:n}=await(0,c.qr)(i.e(5841).then(i.bind(i,35841)),r);return new Xn((await n(e,t,r)).mesh)}static createWithExternalSource(e,t,i){const r=i?.extent??null,{spatialReference:n}=e,s=i?.transform?.clone()??new S.A,o=(0,C.TE)(e,i),a=i?.unitConversionDisabled,l={source:t,extent:r,unitConversionDisabled:a},c=new oe;return c.externalSources.push(l),new Xn({metadata:c,transform:s,vertexSpace:o,spatialReference:n})}static createIncomplete(e,t){const{spatialReference:i}=e,r=t?.transform?.clone()??new S.A,n=(0,C.TE)(e,t),o=new Xn({transform:r,vertexSpace:n,spatialReference:i});return o.addResolvingPromise(Promise.reject(new s.A("mesh-incomplete","Mesh resources are not complete"))),o}};(0,r.Cg)([(0,u.MZ)({type:[y.default],json:{write:!0}})],as.prototype,"components",void 0),(0,r.Cg)([(0,u.MZ)({nonNullable:!0,types:os,constructOnly:!0,json:{write:!0},clonable:(e,t)=>(0,re.o2)(t)?.vertexSpace??e.clone(t)})],as.prototype,"vertexSpace",void 0),(0,r.Cg)([(0,u.MZ)({type:S.A,clonable:(e,t)=>{const i=(0,re.o2)(t);return i&&"transform"in i?i.transform:e?.clone()??e},json:{write:!0}})],as.prototype,"transform",void 0),(0,r.Cg)([(0,u.MZ)({constructOnly:!0,type:oe,clonable:(e,t)=>(0,re.o2)(t)?.metadata??e.clone()})],as.prototype,"metadata",void 0),(0,r.Cg)([(0,u.MZ)()],as.prototype,"hasExtent",null),(0,r.Cg)([(0,u.MZ)()],as.prototype,"_transformedExtent",null),(0,r.Cg)([(0,u.MZ)()],as.prototype,"_untransformedBounds",null),(0,r.Cg)([(0,u.MZ)()],as.prototype,"origin",null),(0,r.Cg)([(0,u.MZ)({readOnly:!0,json:{read:!1}})],as.prototype,"extent",null),(0,r.Cg)([(0,u.MZ)({readOnly:!0,json:{read:!1,write:!0,default:!0}})],as.prototype,"hasZ",void 0),(0,r.Cg)([(0,u.MZ)({readOnly:!0,json:{read:!1,write:!0,default:!1}})],as.prototype,"hasM",void 0),(0,r.Cg)([(0,u.MZ)({type:T.default,nonNullable:!0,json:{write:!0},clonable:(e,t)=>(0,re.o2)(t)?.vertexAttributes??e.clone(t)})],as.prototype,"vertexAttributes",void 0),as=Xn=(0,r.Cg)([(0,u.$K)("esri.geometry.Mesh")],as);const ls=(0,v.vt)()},15585(e,t,i){i.d(t,{If:()=>p,O5:()=>v,O9:()=>f,QT:()=>m,l3:()=>g});var r=i(5482),n=i(2741),s=i(49186),o=i(44208),a=i(34727);let l=null,c=null,h=null,u=null;const d=(new Float32Array(0),new Uint32Array(0),new Uint32Array(0),new Uint32Array(0),{vertices:new Float64Array(0),indices:new Uint32Array(0),outlineIndices:new Uint32Array(0),outlineRingLengths:new Uint32Array(0),vertexCount:0,indexCount:0,outlineIndexCount:0,outlineRingCount:0});async function p(){return l??=async function(){const e=await i.e(2997).then(i.bind(i,42997)),t=await e.default({locateFile:e=>(0,n.s)(`esri/core/libs/libtess/${e}`)});h=t}(),l}async function g(){return c??=async function(){const e=await i.e(9134).then(i.bind(i,99134)),t=await e.default({locateFile:e=>(0,n.s)(`esri/core/libs/libtess/${e}`)});u=t}(),c}function f(){return null!==u}function m(e,t,i=2){const n={stack:[],error:void 0,hasError:!1};try{const a=h;if(!a)throw new s.A("libtess:not-loaded","libtessF32 not loaded");const l=(0,r.mS)(n,b.from(a,e),!1),c=(0,r.mS)(n,S.from(a,t),!1),u=e.length/i*4,d=(0,r.mS)(n,new b(a,u*i),!1),p=a.triangulate(l.ptr,c.ptr,c.size,i,d.ptr,u);if((0,o.A)("esri-tessellation-debug")){const e=a.getError();0!==e&&console.warn("libtess:triangulation",T(e))}return{buffer:d.slice(0,p*i),vertexCount:p}}catch(e){n.error=e,n.hasError=!0}finally{(0,r.hk)(n)}}function v(e,t,i=2,n=!0){const l={stack:[],error:void 0,hasError:!1};try{const c=u;if(!c)throw new s.A("libtess:not-loaded","libtessF64 not loaded");const h=(0,r.mS)(l,w.from(c,e),!1),p=(0,r.mS)(l,S.from(c,t),!1),g=(0,r.mS)(l,new S(c,1),!1),f=(0,r.mS)(l,new S(c,1),!1),m=(0,r.mS)(l,new S(c,1),!1),v=(0,r.mS)(l,new S(c,1),!1),{maxVertexCount:y,maxIndexCount:x,maxOutlineIndexCount:b,maxOutlineRingCount:C}=function(e,t){const i=e.reduce((e,t)=>e+t,0),r=e.length,n=Math.max(0,e.length-1),s=Math.max(0,i+2*n-2),o=Math.max(0,Math.ceil(2*i)),l=Math.max(0,Math.ceil(3*s*2)),c=(0,a.mP)(l,3),h=i>0?Math.max(2,Math.ceil(.25*i)):0,u=i>0?Math.max(1,Math.ceil(h/3)):0;return{maxVertexCount:o,maxIndexCount:c,maxOutlineIndexCount:t?Math.max(0,i+r+h):0,maxOutlineRingCount:t?Math.max(0,r+u):0}}(t,n);let A=0,R=0,E=0,O=0,M=0;{const e={stack:[],error:void 0,hasError:!1};try{const t=(0,r.mS)(e,new w(c,y*i),!1),s=(0,r.mS)(e,new S(c,x),!1),o=(0,r.mS)(e,n?new S(c,b):null,!1),a=(0,r.mS)(e,n?new S(c,C):null,!1);if(c.triangulateIndexed(h.ptr,p.ptr,p.size,i,t.ptr,y,i,s.ptr,x,g.ptr,f.ptr,o?.ptr??0,b,a?.ptr??0,C,m.ptr,v.ptr),M=c.getError(),A=_(c)[g.ptr/Int32Array.BYTES_PER_ELEMENT],R=_(c)[f.ptr/Int32Array.BYTES_PER_ELEMENT],E=_(c)[m.ptr/Int32Array.BYTES_PER_ELEMENT],O=_(c)[v.ptr/Int32Array.BYTES_PER_ELEMENT],0===M){const e=t.slice(0,A*i);return{vertices:e,indices:s.slice(0,R),outlineIndices:n&&o?o.slice(0,E):d.outlineIndices,outlineRingLengths:n&&a?a.slice(0,O):d.outlineRingLengths,vertexCount:A,indexCount:R,outlineIndexCount:n?E:0,outlineRingCount:n?O:0}}}catch(t){e.error=t,e.hasError=!0}finally{(0,r.hk)(e)}}if(100903!==M)return(0,o.A)("esri-tessellation-debug")&&console.warn("libtess:triangulation",T(M)),d;const L=(0,r.mS)(l,new w(c,A*i),!1),P=(0,r.mS)(l,new S(c,R),!1),I=(0,r.mS)(l,n?new S(c,E):null,!1),z=(0,r.mS)(l,n?new S(c,O):null,!1);if(c.triangulateIndexed(h.ptr,p.ptr,p.size,i,L.ptr,A,i,P.ptr,R,g.ptr,f.ptr,I?.ptr??0,n?E:0,z?.ptr??0,n?O:0,m.ptr,v.ptr),M=c.getError(),0!==M)return(0,o.A)("esri-tessellation-debug")&&console.warn("libtess:triangulation",T(M)),d;const D=_(c)[g.ptr/Int32Array.BYTES_PER_ELEMENT],F=_(c)[f.ptr/Int32Array.BYTES_PER_ELEMENT],N=_(c)[m.ptr/Int32Array.BYTES_PER_ELEMENT],W=_(c)[v.ptr/Int32Array.BYTES_PER_ELEMENT],V=L.slice(0,D*i);return{vertices:V,indices:P.slice(0,F),outlineIndices:n&&I?I.slice(0,N):d.outlineIndices,outlineRingLengths:n&&z?z.slice(0,W):d.outlineRingLengths,vertexCount:D,indexCount:F,outlineIndexCount:n?N:0,outlineRingCount:n?W:0}}catch(e){l.error=e,l.hasError=!0}finally{(0,r.hk)(l)}}function y(e){return e.HEAPF64}function x(e){return e.HEAPF32}function _(e){return e.HEAP32}class b{static from(e,t){const i=new b(e,t.length);return i.set(t),i}constructor(e,t){this._libtess=e,this.size=t,this.ptr=e.allocateCoordinateArray(t)}destroy(){this._libtess.destroyCoordinateArray(this.ptr)}[Symbol.dispose](){this.destroy()}get bytesPerCoordinate(){return Float32Array.BYTES_PER_ELEMENT}set(e){x(this._libtess).set(e,this.ptr/this.bytesPerCoordinate)}slice(e,t){const i=this.ptr/this.bytesPerCoordinate;return x(this._libtess).slice(i+e,i+t)}}class w{static from(e,t){const i=new w(e,t.length);return i.set(t),i}constructor(e,t){this._libtess=e,this.size=t,this.ptr=e.allocateCoordinateArray(t)}destroy(){this._libtess.destroyCoordinateArray(this.ptr)}[Symbol.dispose](){this.destroy()}get bytesPerCoordinate(){return Float64Array.BYTES_PER_ELEMENT}set(e){y(this._libtess).set(e,this.ptr/this.bytesPerCoordinate)}slice(e,t){const i=this.ptr/this.bytesPerCoordinate;return y(this._libtess).slice(i+e,i+t)}}class S{static from(e,t){const i=new S(e,t.length);return i.set(t),i}constructor(e,t){this._libtess=e,this.size=t,this.ptr=e.allocateLengthsArray(t)}destroy(){this._libtess.destroyLengthsArray(this.ptr)}[Symbol.dispose](){this.destroy()}get bytesPerCoordinate(){return Int32Array.BYTES_PER_ELEMENT}set(e){_(this._libtess).set(e,this.ptr/this.bytesPerCoordinate)}slice(e,t){const i=this.ptr/this.bytesPerCoordinate;return function(e){const t=_(e);return new Uint32Array(t.buffer,t.byteOffset,t.length)}(this._libtess).slice(i+e,i+t)}}function T(e){switch(e){case 100903:return"Insufficient output buffer";case 100902:return"Out of memory";case 100151:return"Missing begin polygon";case 100152:return"Missing begin contour";case 100153:return"Missing end polygon";case 100154:return"Missing end countour";case 100155:return"Coordinates too large";case 100156:return"Missing combine callback";default:return`Unknown: ${e}`}}},16939(e,t,i){i.r(t),i.d(t,{default:()=>p});var r,n=i(5482),s=i(69540),o=i(25482),a=i(53966),l=i(91429),c=i(56507),h=i(19211),u=i(80882),d=i(31199);let p=r=class extends((0,s.OU)(o.o)){static from(e){return(0,c.PZ)(r,e)}constructor(e){super(e),this.material=null,this.name=void 0,this.shading="source",this.trustSourceNormals=!1}get faces(){return this._get("faces")??null}set faces(e){this._set("faces",(0,d.b)(e,Uint32Array,[Uint16Array],{loggerTag:".faces=",stride:3},a.A.getLogger(this)))}castMaterial(e){return(0,c.PZ)(e&&"object"==typeof e&&("metallic"in e||"roughness"in e||"metallicRoughnessTexture"in e)?u.A:h.default,e)}get memoryUsage(){let e=0;return null!=this.faces&&(e+=this.faces.byteLength),null!=this.material&&(e+=this.material.memoryUsage),e}};(0,n.Cg)([(0,l.MZ)({json:{write:d.B}})],p.prototype,"faces",null),(0,n.Cg)([(0,l.MZ)({type:h.default,json:{write:!0}})],p.prototype,"material",void 0),(0,n.Cg)([(0,l.wg)("material")],p.prototype,"castMaterial",null),(0,n.Cg)([(0,l.MZ)({json:{write:!0}})],p.prototype,"name",void 0),(0,n.Cg)([(0,l.MZ)({type:String,json:{write:!0}})],p.prototype,"shading",void 0),(0,n.Cg)([(0,l.MZ)({type:Boolean})],p.prototype,"trustSourceNormals",void 0),p=r=(0,n.Cg)([(0,l.$K)("esri.geometry.support.MeshComponent")],p)},95696(e,t,i){i.d(t,{A:()=>c});var r,n=i(5482),s=i(69540),o=i(25482),a=i(91429),l=i(93223);let c=class extends((0,s.OU)(o.o)){static{r=this}constructor(e){super(e),this.type="georeferenced",this.origin=null}static{this.absolute=new r}};(0,n.Cg)([(0,l.e)({georeferenced:"georeferenced"},{readOnly:!0})],c.prototype,"type",void 0),(0,n.Cg)([(0,a.MZ)({type:[Number],nonNullable:!1,json:{write:!0}})],c.prototype,"origin",void 0),c=r=(0,n.Cg)([(0,a.$K)("esri.geometry.support.MeshGeoreferencedVertexSpace")],c)},18251(e,t,i){i.r(t),i.d(t,{default:()=>c});var r=i(5482),n=i(69540),s=i(25482),o=i(91429),a=i(51850),l=i(93223);let c=class extends((0,n.OU)(s.o)){constructor(e){super(e),this.type="local",this.origin=(0,a.vt)()}};(0,r.Cg)([(0,l.e)({local:"local"},{readOnly:!0})],c.prototype,"type",void 0),(0,r.Cg)([(0,o.MZ)({type:[Number],nonNullable:!0,json:{write:!0}})],c.prototype,"origin",void 0),c=(0,r.Cg)([(0,o.$K)("esri.geometry.support.MeshLocalVertexSpace")],c)},19211(e,t,i){i.r(t),i.d(t,{default:()=>u});var r=i(5482),n=i(68197),s=i(69540),o=i(25482),a=i(91429),l=i(35063),c=i(51147),h=i(66895);let u=class extends((0,s.OU)(o.o)){constructor(e){super(e),this.color=null,this.colorTextureTransform=null,this.normalTextureTransform=void 0,this.alphaMode="auto",this.alphaCutoff=.5,this.doubleSided=!0}get colorTexture(){return this._get("colorTexture")}set colorTexture(e){this._set("colorTexture",null==e?null:l.default.from(e))}get normalTexture(){return this._get("normalTexture")}set normalTexture(e){this._set("normalTexture",null==e?null:l.default.from(e))}clone(e){const t=(0,h.hz)(e),i=t?.materialMap?.get(this);if(i)return i;const r=super.clone((0,h.QN)(e));return t?.materialMap?.set(this,r),r}get memoryUsage(){return this.getMemoryUsage()}getMemoryUsage(){let e=0;return e+=null!=this.color?16:0,null!=this.colorTexture&&(e+=this.colorTexture.memoryUsage),e+=null!=this.colorTextureTransform?20:0,null!=this.normalTexture&&(e+=this.normalTexture.memoryUsage),e+=null!=this.normalTextureTransform?20:0,e}};(0,r.Cg)([(0,a.MZ)({type:n.A,json:{write:!0}})],u.prototype,"color",void 0),(0,r.Cg)([(0,a.MZ)({type:l.default,json:{write:!0},value:null})],u.prototype,"colorTexture",null),(0,r.Cg)([(0,a.MZ)({type:c.A,json:{write:!0}})],u.prototype,"colorTextureTransform",void 0),(0,r.Cg)([(0,a.MZ)({type:l.default,json:{write:!0},value:null})],u.prototype,"normalTexture",null),(0,r.Cg)([(0,a.MZ)({type:c.A,json:{write:!0}})],u.prototype,"normalTextureTransform",void 0),(0,r.Cg)([(0,a.MZ)({nonNullable:!0,json:{write:!0}})],u.prototype,"alphaMode",void 0),(0,r.Cg)([(0,a.MZ)({nonNullable:!0,json:{write:!0}})],u.prototype,"alphaCutoff",void 0),(0,r.Cg)([(0,a.MZ)({nonNullable:!0,json:{write:!0}})],u.prototype,"doubleSided",void 0),u=(0,r.Cg)([(0,a.$K)("esri.geometry.support.MeshMaterial")],u)},80882(e,t,i){i.d(t,{A:()=>c});var r=i(5482),n=i(68197),s=i(91429),o=i(19211),a=i(35063),l=i(51147);let c=class extends o.default{constructor(e){super(e),this.emissiveColor=null,this.emissiveStrength=null,this.emissiveTextureTransform=void 0,this.occlusionTextureTransform=void 0,this.metallic=1,this.roughness=1,this.metallicRoughnessTextureTransform=void 0}get emissiveTexture(){return this._get("emissiveTexture")}set emissiveTexture(e){this._set("emissiveTexture",null==e?null:a.default.from(e))}get occlusionTexture(){return this._get("occlusionTexture")}set occlusionTexture(e){this._set("occlusionTexture",null==e?null:a.default.from(e))}get metallicRoughnessTexture(){return this._get("metallicRoughnessTexture")}set metallicRoughnessTexture(e){this._set("metallicRoughnessTexture",null==e?null:a.default.from(e))}getMemoryUsage(){let e=super.getMemoryUsage();return e+=null!=this.emissiveColor?16:0,null!=this.emissiveTexture&&(e+=this.emissiveTexture.memoryUsage),e+=null!=this.emissiveTextureTransform?20:0,null!=this.occlusionTexture&&(e+=this.occlusionTexture.memoryUsage),e+=null!=this.occlusionTextureTransform?20:0,null!=this.metallicRoughnessTexture&&(e+=this.metallicRoughnessTexture.memoryUsage),e+=null!=this.metallicRoughnessTextureTransform?20:0,e}};(0,r.Cg)([(0,s.MZ)({type:n.A,json:{write:!0}})],c.prototype,"emissiveColor",void 0),(0,r.Cg)([(0,s.MZ)({json:{write:!0}})],c.prototype,"emissiveStrength",void 0),(0,r.Cg)([(0,s.MZ)({type:a.default,json:{write:!0},value:null})],c.prototype,"emissiveTexture",null),(0,r.Cg)([(0,s.MZ)({type:l.A,json:{write:!0}})],c.prototype,"emissiveTextureTransform",void 0),(0,r.Cg)([(0,s.MZ)({type:a.default,json:{write:!0},value:null})],c.prototype,"occlusionTexture",null),(0,r.Cg)([(0,s.MZ)({type:l.A,json:{write:!0}})],c.prototype,"occlusionTextureTransform",void 0),(0,r.Cg)([(0,s.MZ)({type:Number,nonNullable:!0,json:{write:!0},range:{min:0,max:1}})],c.prototype,"metallic",void 0),(0,r.Cg)([(0,s.MZ)({type:Number,nonNullable:!0,json:{write:!0},range:{min:0,max:1}})],c.prototype,"roughness",void 0),(0,r.Cg)([(0,s.MZ)({type:a.default,json:{write:!0},value:null})],c.prototype,"metallicRoughnessTexture",null),(0,r.Cg)([(0,s.MZ)({type:l.A,json:{write:!0}})],c.prototype,"metallicRoughnessTextureTransform",void 0),c=(0,r.Cg)([(0,s.$K)("esri.geometry.support.MeshMaterialMetallicRoughness")],c)},35063(e,t,i){i.r(t),i.d(t,{default:()=>m});var r,n=i(5482),s=i(69540),o=i(21287),a=i(25482),l=i(91429),c=i(56507),h=i(66895),u=i(97159),d=i(43937),p=i(36005);const g=new WeakMap;let f=0,m=class extends((0,s.OU)(a.o)){static{r=this}constructor(e){super(e),this.wrap="repeat"}get url(){return this._get("url")||null}set url(e){this._set("url",e),e&&this._set("data",null)}get data(){return this._get("data")||null}set data(e){this._set("data",e),e&&this._set("url",null)}writeData(e,t,i,r){if(e instanceof HTMLImageElement){const n={type:"image-element",src:(0,u.t)(e.src,r),crossOrigin:e.crossOrigin};t[i]=n}else if(e instanceof HTMLCanvasElement){const r={type:"canvas-element",imageData:v(e.getContext("2d").getImageData(0,0,e.width,e.height))};t[i]=r}else if(e instanceof HTMLVideoElement){const n={type:"video-element",src:(0,u.t)(e.src,r),autoplay:e.autoplay,loop:e.loop,muted:e.muted,crossOrigin:e.crossOrigin,preload:e.preload};t[i]=n}else if(e instanceof ImageData){const r={type:"image-data",imageData:v(e)};t[i]=r}}readData(e){switch(e.type){case"image-element":{const t=new Image;return t.src=e.src,t.crossOrigin=e.crossOrigin,t}case"canvas-element":{const t=y(e.imageData),i=document.createElement("canvas");return i.width=t.width,i.height=t.height,i.getContext("2d").putImageData(t,0,0),i}case"image-data":return y(e.imageData);case"video-element":{const t=document.createElement("video");return t.src=e.src,t.crossOrigin=e.crossOrigin,t.autoplay=e.autoplay,t.loop=e.loop,t.muted=e.muted,t.preload=e.preload,t}default:return}}get transparent(){const{data:e,url:t}=this,i=e=>e?.toLowerCase().endsWith(".png")||e?.toLocaleLowerCase().startsWith("data:image/png;");return e instanceof HTMLCanvasElement?x(e.getContext("2d").getImageData(0,0,e.width,e.height)):e instanceof ImageData?x(e):!(!t||!i(t))||!!(e instanceof HTMLImageElement&&i(e.src))}set transparent(e){this._overrideIfSome("transparent",e)}get contentHash(){const e="string"==typeof this.wrap?this.wrap:"object"==typeof this.wrap?`${this.wrap.horizontal}/${this.wrap.vertical}`:"",t=(t="")=>`d:${t},t:${this.transparent},w:${e}`;return null!=this.url?t(this.url):null!=this.data?this.data instanceof HTMLImageElement||this.data instanceof HTMLVideoElement?t(this.data.src):(g.has(this.data)||g.set(this.data,++f),t(g.get(this.data))):t()}get memoryUsage(){let e=0;if(e+=null!=this.url?this.url.length:0,null!=this.data){const t=this.data;"data"in t?e+=t.data.byteLength:t instanceof HTMLImageElement?e+=t.naturalWidth*t.naturalHeight*3:t instanceof HTMLCanvasElement&&(e+=t.width*t.height*3)}return e}clone(e){const t=(0,h.$N)(e),i=t?.textureMap?.get(this);if(i)return i;const r=super.clone(e);return t?.textureMap?.set(this,r),r}static from(e){return"string"==typeof e?new r({url:e}):e instanceof HTMLImageElement||e instanceof HTMLCanvasElement||e instanceof ImageData||e instanceof HTMLVideoElement?new r({data:e}):(0,c.PZ)(r,e)}};function v(e){let t="";for(let i=0;i<e.data.length;i++)t+=String.fromCharCode(e.data[i]);return{data:btoa(t),width:e.width,height:e.height}}function y(e){const t=atob(e.data),i=new Uint8ClampedArray(t.length);for(let e=0;e<t.length;e++)i[e]=t.charCodeAt(e);return(0,o.eV)(i,e.width,e.height)}function x(e){for(let t=3;t<e.data.length;t+=4)if(255!==e.data[t])return!0;return!1}(0,n.Cg)([(0,l.MZ)({type:String,json:{write:u.w}})],m.prototype,"url",null),(0,n.Cg)([(0,l.MZ)({clonable:"reference",json:{write:{overridePolicy(){return{enabled:!this.url}}}}})],m.prototype,"data",null),(0,n.Cg)([(0,d.K)("data")],m.prototype,"writeData",null),(0,n.Cg)([(0,p.w)("data")],m.prototype,"readData",null),(0,n.Cg)([(0,l.MZ)({type:Boolean,json:{write:{overridePolicy(){return{enabled:this._isOverridden("transparent")}}}}})],m.prototype,"transparent",null),(0,n.Cg)([(0,l.MZ)({json:{write:!0}})],m.prototype,"wrap",void 0),(0,n.Cg)([(0,l.MZ)({readOnly:!0})],m.prototype,"contentHash",null),m=r=(0,n.Cg)([(0,l.$K)("esri.geometry.support.MeshTexture")],m)},51147(e,t,i){i.d(t,{A:()=>a});var r=i(5482),n=i(69540),s=i(25482),o=i(91429);let a=class extends((0,n.OU)(s.o)){constructor(e){super(e),this.offset=[0,0],this.rotation=0,this.scale=[1,1]}};(0,r.Cg)([(0,o.MZ)({type:[Number],nonNullable:!0,json:{write:!0}})],a.prototype,"offset",void 0),(0,r.Cg)([(0,o.MZ)({type:Number,nonNullable:!0,json:{write:!0}})],a.prototype,"rotation",void 0),(0,r.Cg)([(0,o.MZ)({type:[Number],nonNullable:!0,json:{write:!0}})],a.prototype,"scale",void 0),a=(0,r.Cg)([(0,o.$K)("esri.geometry.support.MeshTextureTransform")],a)},1193(e,t,i){i.r(t),i.d(t,{default:()=>u});var r,n=i(5482),s=i(69540),o=i(25482),a=i(4718),l=i(53966),c=i(91429),h=i(31199);let u=r=class extends((0,s.OU)(o.o)){constructor(e){super(e),this.color=null,this.position=new Float64Array(0),this.uv=null,this.normal=null,this.tangent=null}castColor(e){return(0,h.b)(e,Uint8Array,[Uint8ClampedArray],{loggerTag:".color=",stride:4},l.A.getLogger(this))}castPosition(e){return e&&e instanceof Float32Array&&l.A.getLogger(this).warn(".position=","Setting position attribute from a Float32Array may cause precision problems. Consider storing data in a Float64Array or a regular number array"),(0,h.b)(e,Float64Array,[Float32Array],{loggerTag:".position=",stride:3},l.A.getLogger(this))}castUv(e){return(0,h.b)(e,Float32Array,[Float64Array],{loggerTag:".uv=",stride:2},l.A.getLogger(this))}castNormal(e){return(0,h.b)(e,Float32Array,[Float64Array],{loggerTag:".normal=",stride:3},l.A.getLogger(this))}castTangent(e){return(0,h.b)(e,Float32Array,[Float64Array],{loggerTag:".tangent=",stride:4},l.A.getLogger(this))}clonePositional(){const e={position:(0,a.o8)(this.position),normal:(0,a.o8)(this.normal),tangent:(0,a.o8)(this.tangent),uv:this.uv,color:this.color};return new r(e)}get usedMemory(){return this.position.byteLength+(this.uv?.byteLength??0)+(this.normal?.byteLength??0)+(this.tangent?.byteLength??0)+(this.color?.byteLength??0)}};(0,n.Cg)([(0,c.MZ)({json:{write:h.B}})],u.prototype,"color",void 0),(0,n.Cg)([(0,c.wg)("color")],u.prototype,"castColor",null),(0,n.Cg)([(0,c.MZ)({nonNullable:!0,json:{write:h.B}})],u.prototype,"position",void 0),(0,n.Cg)([(0,c.wg)("position")],u.prototype,"castPosition",null),(0,n.Cg)([(0,c.MZ)({json:{write:h.B}})],u.prototype,"uv",void 0),(0,n.Cg)([(0,c.wg)("uv")],u.prototype,"castUv",null),(0,n.Cg)([(0,c.MZ)({json:{write:h.B}})],u.prototype,"normal",void 0),(0,n.Cg)([(0,c.wg)("normal")],u.prototype,"castNormal",null),(0,n.Cg)([(0,c.MZ)({json:{write:h.B}})],u.prototype,"tangent",void 0),(0,n.Cg)([(0,c.wg)("tangent")],u.prototype,"castTangent",null),u=r=(0,n.Cg)([(0,c.$K)("esri.geometry.support.MeshVertexAttributes")],u)},31199(e,t,i){function r(e,t,i,r){const{loggerTag:n,stride:s}=t;return e.length%s!==0?(r.error(n,`Invalid array length, expected a multiple of ${s}`),new i([])):e}function n(e,t,i,n,s){if(!e)return e;if(e instanceof t)return r(e,n,t,s);for(const o of i)if(e instanceof o)return r(new t(e),n,t,s);if(Array.isArray(e))return r(new t(e),n,t,s);{const r=i.map(e=>`'${e.name}'`);return s.error(`Failed to set property, expected one of ${r}, but got ${e.constructor.name}`),new t([])}}function s(e,t,i){t[i]=function(e){const t=new Array(e.length);for(let i=0;i<e.length;i++)t[i]=e[i];return t}(e)}i.d(t,{B:()=>s,b:()=>n})},63579(e,t,i){i.d(t,{Bq:()=>l,Qp:()=>a,WN:()=>m,dK:()=>v,eN:()=>p,fH:()=>f,in:()=>g,yr:()=>c});var r=i(11254),n=i(4576),s=i(17676),o=i(20557);class a{constructor(e,t,i){this.assetName=e,this.assetMimeType=t,this.parts=i}equals(e){return this===e||this.assetName===e.assetName&&this.assetMimeType===e.assetMimeType&&(0,n.aI)(this.parts,e.parts,(e,t)=>e.equals(t))}isOnService(e){return this.parts.every(t=>t.isOnService(e))}makeHash(){let e="";for(const t of this.parts)e+=t.partHash;return e}async toBlob(e){const{parts:t}=this;if(1===t.length)return t[0].toBlob(e);const i=await Promise.all(t.map(t=>t.toBlob(e)));return(0,s.Te)(e),new Blob(i)}}class l{constructor(e,t){this.partUrl=e,this.partHash=t}equals(e){return this===e||this.partUrl===e.partUrl&&this.partHash===e.partHash}isOnService(e){return this.partUrl.startsWith(`${e.path}/assets/`)}async toBlob(e){const{data:t}=await(0,r.A)(this.partUrl,{responseType:"blob"});return(0,s.Te)(e),t}}function c(e){return function(e){switch(e?.type){case"client":return Array.isArray(e.files)?e.files.some(d):d(e.files);case"service":return e.assets.some(d);case"loadable":return!0;default:return!1}}(e?.source)}const h=/^(model\/gltf\+json)|(model\/gltf-binary)$/,u=/\.(gltf|glb)/i;function d(e){if(e instanceof File){const{type:t,name:i}=e;return h.test(t)||u.test(i)}return h.test(e.assetMimeType)||u.test(e.assetName)}function p(e,t){if(!e)return!1;const{source:i}=e;return function(e,t){return"service"===e.type&&e.assets.every(e=>e.isOnService(t))}(i,t)}function g(e,t){if(e===t)return!0;const{source:i}=e,{source:r}=t;if(i===r)return!0;if("service"===i.type&&"service"===r.type){if(i.assets.length!==r.assets.length)return!1;const e=(e,t)=>e.assetName<t.assetName?-1:e.assetName>t.assetName?1:0,t=[...i.assets].sort(e),n=[...r.assets].sort(e);for(let e=0;e<t.length;++e)if(!t[e].equals(n[e]))return!1;return!0}return!1}function f(e,t){return e instanceof File?(0,o.rq)(e,t):(0,o.z$)(e.assetMimeType,e.assetName,t)}function m(e){switch(e.type){case"client":return Array.isArray(e.files)?e.files:[e.files];case"service":return e.assets;case"loadable":return}}function v(e){return!!e.original}},66895(e,t,i){i.d(t,{$N:()=>h,Lz:()=>s,QN:()=>u,WO:()=>l,hz:()=>a,o2:()=>n});const r=Symbol("meshContext");function n(e){return e&&"object"==typeof e&&r in e?e[r]:void 0}function s(e,t){const i=n(e);return{...e,[r]:{...i,...t}}}const o=Symbol("meshMaterialContext");function a(e){return e&&"object"==typeof e&&o in e?e[o]:void 0}function l(e){const t=a(e);if(t?.materialMap)return e;const i={materialMap:new Map};return{...e,[o]:i}}const c=Symbol("meshTextureContext");function h(e){return e&&"object"==typeof e&&c in e?e[c]:void 0}function u(e){const t=h(e);if(t?.textureMap)return e;const i={textureMap:new Map};return{...e,[c]:i}}},22141(e,t,i){i.d(t,{$5:()=>S,CN:()=>x,JP:()=>y,KM:()=>C,Mv:()=>R,X4:()=>_,gr:()=>w,qs:()=>T,si:()=>b,xA:()=>A});var r=i(34727),n=i(77690),s=i(29242),o=i(58083),a=i(9093),l=i(35522),c=i(51850),h=i(73941),u=i(48353),d=i(9762),p=(i(79258),i(21325)),g=i(28735),f=i(13030),m=i(73354),v=i(50867);const y="Projection may be possible after calling projection.load().";function x(e,t,i,r){e.error(`Failed to project from (wkid:${t.wkid}) to (wkid:${i.wkid}).${r?" ":""}${r}`)}function _(e,t,i,r,n,s){return O(0,f.xs.fromTypedArray(e),0,f.Xm.fromTypedArray(t),i,f.Xm.fromTypedArray(r),n,f.xs.fromTypedArray(s))?s:null}function b(e,t,i,r,n,s){return O(1,f.xs.fromTypedArray(e),0,f.Xm.fromTypedArray(t),i,f.Xm.fromTypedArray(r),n,f.xs.fromTypedArray(s))?s:null}function w(e,t,i,r){return(0,d.projectBuffer)(e,t,0,i,r,0)?i:null}function S(e,t,i,r){return(0,d.projectBuffer)(e,t,0,i,r,0)?i:null}function T(e,t,i){return(0,n.Ge)(I,i),(0,m.b)(t,e,I),(0,r.or)(I)&&(0,m.n)(t,t),t}function C(e,t,i){return(0,n.z0)(I,i),(0,v.t)(t,e,I),(0,r.or)(I)&&(0,m.n)(t,t,4),t}function A(e,t,i,r,n,s){if(!O(0,f.xs.fromTypedArray(e,4*Float32Array.BYTES_PER_ELEMENT),1,f.Xm.fromTypedArray(t),i,f.Xm.fromTypedArray(r),n,f.xs.fromTypedArray(s,4*Float32Array.BYTES_PER_ELEMENT)))return null;for(let t=3;t<e.length;t+=4)s[t]=e[t];return s}function R(e,t,i,r,n,s){if(!O(1,f.xs.fromTypedArray(e,16),1,f.Xm.fromTypedArray(t),i,f.Xm.fromTypedArray(r),n,f.xs.fromTypedArray(s,16)))return null;for(let t=3;t<e.length;t+=4)s[t]=e[t];return s}function E(e,t,i,r,s){switch((0,u.l)(r,i,P,r),1===e&&(0,o.B8)(P,P),t){case 0:return(0,n.Ge)(s,P);case 1:return(0,n.z0)(s,P)}}function O(e,t,i,r,n,s,o,a){if(!t)return;const c=r.count;if(function(e){return e.isWGS84||(0,p.x1)(e)||(0,h.q8)(e)||(0,h.KQ)(e)}(n))for(let r=0;r<c;r++)s.getVec(r,M),t.getVec(r,L),(0,l.ei)(L,L,E(e,i,M,o,I)),a.setVec(r,L);else for(let n=0;n<c;n++){s.getVec(n,M),t.getVec(n,L);const c=(0,g.jg)(r.get(n,1));let h=Math.cos(c);1===i!=(0===e)&&(h=1/h),E(e,i,M,o,I),0===e?(I[0]*=h,I[1]*=h,I[2]*=h,I[3]*=h,I[4]*=h,I[5]*=h):(I[0]*=h,I[3]*=h,I[6]*=h,I[1]*=h,I[4]*=h,I[7]*=h),(0,l.ei)(L,L,I),(0,l.S8)(L,L),a.setVec(n,L)}return a}const M=(0,c.vt)(),L=(0,c.vt)(),P=(0,a.vt)(),I=(0,s.vt)()},72258(e,t,i){i.d(t,{UR:()=>b,p5:()=>_,xK:()=>R});var r=i(53966),n=i(34727),s=i(86211),o=i(77690),a=i(29242),l=i(58083),c=i(9093),h=i(35522),u=i(51850),d=i(73941),p=i(98764),g=i(48353),f=i(65806),m=i(27615),v=i(73354),y=i(22141);const x=()=>r.A.getLogger("esri.geometry.support.meshUtils.vertexSpaceConversion");function _(e,t,{vertexSpace:i,spatialReference:r}){if("georeferenced"===i.type){const n=e;if(!(0,f.g)(t,n,r))return!1;const{origin:s}=i;return(0,h.Re)(e,n,s),!0}const n=(0,p.lO)(r),s=e;if(!(0,f.g)(t,s,n))return!1;const{origin:o}=i,a=P;if(!(0,g.l)(r,o,a,n))return!1;const c=(0,l.B8)(P,a);return null!=c&&((0,h.Z0)(e,s,c),!0)}function b(e,t,i){const{vertexSpace:r,transform:n,vertexAttributes:s}=e,a=(0,m.Hq)(r)?n:null,u=C(e.spatialReference,i,3);if((0,m.yJ)(r,t)&&(!a||(0,l.t2)(a.localMatrix,c.zK))&&A(u)){const{position:e,normal:t,tangent:r}=s,n=i?.allowBufferReuse;return{position:n?e:e.slice(),normal:n?t:t?.slice(),tangent:n?r:r?.slice()}}switch(e.vertexSpace.type){case"local":return"local"===t.type?function({vertexAttributes:e,spatialReference:t,transform:i},{origin:r},n,s){const o=w(t,s);if(!(0,g.l)(t,r,E,o))return(0,y.CN)(x(),t,o),null;if(i&&(0,l.lw)(E,E,i.localMatrix),!(0,g.l)(t,n,O,o))return(0,y.CN)(x(),o,t),null;(0,l.B8)(O,O);const a=(0,l.lw)(E,O,E);return T(a,t,s,3),S(e,a)}(e,e.vertexSpace,t.origin,i):function({spatialReference:e,vertexAttributes:t,transform:i},{origin:r},n,s){const o=w(e,s);if(!(0,g.l)(e,r,E,o))return(0,y.CN)(x(),e,o),null;i&&(0,l.lw)(E,E,i.localMatrix),T(E,e,s,1);const a=new Float64Array(t.position.length),c=function(e,t,i,r,n){(0,v.t)(r,e,t);const s=new Float64Array(e.length);return(0,y.$5)(r,n,s,i)?s:((0,y.CN)(x(),n,i),null)}(t.position,E,e,a,o);if(!c)return null;const u=function(e,t,i,r,n,s){if(null==n)return null;const o=new Float32Array(n.length);return(0,y.qs)(n,o,s),(0,y.si)(o,e,t,i,r,o)?o:((0,y.CN)(x(),r,t),null)}(c,e,a,o,t.normal,E);if(t.normal&&!u)return null;const d=function(e,t,i,r,n,s){if(null==n)return null;const o=new Float32Array(n.length);return(0,y.KM)(n,o,s),(0,y.Mv)(o,e,t,i,r,o)?o:((0,y.CN)(x(),r,t),null)}(c,e,a,o,t.tangent,E);if(t.tangent&&!d)return null;if(n){const e=(0,h.ze)(L,n);(0,v.a)(c,c,e)}return{position:c,normal:u,tangent:d}}(e,e.vertexSpace,t.origin,i);case"georeferenced":return"local"===t.type?function({vertexAttributes:e,spatialReference:t,transform:i},{origin:r},n,s){const a=w(t,s);if(!(0,g.l)(t,n,E,a))return(0,y.CN)(x(),t,a),null;const c=1/C(t,s,2);(0,l.hs)(E,E,[c,c,c]);const h=(0,l.B8)(O,E),{position:u,normal:d,tangent:p}=function(e,t,i){if(!t)return e;if(!i){const{position:i,normal:r,tangent:n}=e;return{position:(0,v.a)(new Float64Array(i.length),i,t),tangent:n,normal:r}}const r=S(e,i.localMatrix);return(0,v.a)(r.position,r.position,t),r}(e,r,i),f=new Float64Array(u.length),m=function(e,t,i,r,n){const s=(0,y.gr)(e,t,r,n);if(!s)return(0,y.CN)(x(),t,n),null;const o=new Float64Array(s.length);return(0,v.t)(o,s,i),o}(u,t,h,f,a);if(!m)return null;const _=(0,o.Ge)(M,h),b=function(e,t,i,r,n,s,o){if(null==e)return null;const a=o??new Float32Array(e.length);return(0,y.X4)(e,t,i,r,n,a)?((0,v.b)(a,a,s),a):((0,y.CN)(x(),i,n),null)}(d,u,t,f,a,_,d!==e.normal?d:void 0);if(!b&&d)return null;const T=function(e,t,i,r,n,s,o){if(null==e)return null;const a=o??new Float32Array(e.length);return(0,y.xA)(e,t,i,r,n,a)?((0,v.b)(a,a,s,4),a):((0,y.CN)(x(),i,n),null)}(p,u,t,f,a,_,p!==e.tangent?p:void 0);return!T&&p?null:{position:m,normal:b,tangent:T}}(e,e.vertexSpace,t.origin,i):function({vertexAttributes:e,transform:t,spatialReference:i},{origin:r},n,s){const o=C(i,s,3),a=r||!A(o)?(0,l.C)(E,t?.localMatrix??c.zK):null;a&&T(a,i,s,3);const{position:u,normal:d,tangent:p}=a?S(e,a):e,g=s?.allowBufferReuse,f=g?u:new Float64Array(u.length);let m=u;if(r&&(m=(0,v.a)(f,m,r)),n){const e=(0,h.ze)(L,n);m=(0,v.a)(f,m,e)}return{position:m!==e.position||g?m:m.slice(),normal:d!==e.normal||g?d:d?.slice(),tangent:p!==e.tangent||g?p:p?.slice()}}(e,e.vertexSpace,t.origin,i)}}function w(e,t){return t?.useEllipsoid&&(0,d.B3)(e)?p.Y0:(0,p.lO)(e)}function S(e,t){const i=new Float64Array(e.position.length);(0,v.t)(i,e.position,t);const r=e.normal?new Float32Array(e.normal.length):null,n=e.tangent?new Float32Array(e.tangent.length):null;return r&&e.normal&&(0,y.qs)(e.normal,r,t),n&&e.tangent&&(0,y.KM)(e.tangent,n,t),{position:i,normal:r,tangent:n}}function T(e,t,i,r){const n=C(t,i,r);A(n)||(0,l.hs)(e,e,[n,n,n])}function C(e,t,i){const r=!!(1&i),n=!!(2&i),s=t?.sourceUnit,o=t?.targetUnit;if(!s&&!o)return 1;let a=R(s,e);r||!s||A(a)||(x().warn("source unit conversion not supported"),a=1);let l=1/R(o,e);return n||!o||A(l)||(x().warn("target unit conversion not supported"),l=1),a*l}function A(e){return(0,n.Io)(e,1)}function R(e,t){if(null==e)return 1;const i=(0,s.KX)(t);return 1/(0,s.oU)(i,"meters",e)}const E=(0,c.vt)(),O=(0,c.vt)(),M=(0,a.vt)(),L=(0,u.vt)(),P=(0,c.vt)()},27615(e,t,i){i.d(t,{CK:()=>l,Hq:()=>a,MW:()=>c,TE:()=>h,yJ:()=>u});var r=i(35522),n=i(86738),s=i(95696),o=i(18251);function a(e){return null!=e.origin}function l(e){return a(e.vertexSpace)}function c(e,t){if(!a(e))return null;const[i,r,s]=e.origin;return new n.A({x:i,y:r,z:s,spatialReference:t})}function h(e,t){const{x:i,y:r,z:n,spatialReference:a}=e,l=[i,r,n??0];return"local"===(t?.vertexSpace??function(e){return e.isGeographic||e.isWebMercator?"local":"georeferenced"}(a))?new o.default({origin:l}):new s.A({origin:l})}function u(e,t){return e.type===t.type&&(e.origin===t.origin||null!=e.origin&&null!=t.origin&&(0,r.t2)(e.origin,t.origin))}},6733(e,t,i){i.d(t,{Q:()=>u});var r=i(37585),n=i(48163),s=i(31821),o=i(74333);class a extends o.n{constructor(e,t){super(e,"ivec2",1,(i,r,n)=>i.setUniform2iv(e,t(r,n)))}}var l=i(93588),c=i(9273),h=i(34053);function u(e){const{vertex:t}=e;t.uniforms.add(new c.R("coverageTexture",e=>e.coverageTexture),new a("highlightRenderCellCount",e=>(0,r.hZ)(d,e.horizontalCellCount,e.verticalCellCount)),new a("highlightTextureResolution",({highlightTexture:e})=>(0,r.hZ)(d,e.descriptor.width,e.descriptor.height)),new l.c("highlightLevel",e=>e.highlightLevel)).constants.add("cellSize","int",h.g),e.varyings.add("sUV","vec2"),e.varyings.add("vOutlinePossible","float"),t.code.add(s.H`const ivec2 cellVertices[4] = ivec2[4](ivec2(0,0), ivec2(1,0), ivec2(0,1), ivec2(1,1));`),t.main.add(s.H`int cellIndex = gl_InstanceID;
|
|
350
|
-
int cellX = cellIndex % highlightRenderCellCount[0];
|
|
351
|
-
int cellY = (cellIndex - cellX) / highlightRenderCellCount[0];
|
|
352
|
-
ivec2 cellPos = ivec2(cellX, cellY);
|
|
353
|
-
uvec2 covTexel = texelFetch(coverageTexture, cellPos, 0).rg;
|
|
354
|
-
int channelIndex = (highlightLevel >> 2) & 3;
|
|
355
|
-
uint channelValue = covTexel[channelIndex];
|
|
356
|
-
int highlightIndex = (highlightLevel & 3) << 1;
|
|
357
|
-
bool covered = ((channelValue >> highlightIndex) & 1u) == 1u;
|
|
358
|
-
if (!covered) {
|
|
359
|
-
gl_Position = vec4(0.0);
|
|
360
|
-
return;
|
|
361
|
-
}
|
|
362
|
-
vOutlinePossible = (((channelValue >> highlightIndex) & 2u) == 2u) ? 1.0 : 0.0;
|
|
363
|
-
ivec2 iPosInCell = cellVertices[gl_VertexID];
|
|
364
|
-
vec2 sPos = vec2(cellPos * cellSize + iPosInCell * (cellSize));
|
|
365
|
-
vec2 vPos = sPos / vec2(highlightTextureResolution);
|
|
366
|
-
sUV = vPos;
|
|
367
|
-
gl_Position = vec4(2.0 * vPos - vec2(1.0), 0.0, 1.0);`)}const d=(0,n.vt)()},84652(e,t,i){i.d(t,{s:()=>p});var r=i(58083),n=i(9093),s=i(43259),o=i(52587),a=i(77949),l=i(33079),c=i(20304),h=i(44887),u=i(31821),d=i(97102);function p(e,t){const{vertex:i,attributes:n}=e;i.uniforms.add(new c.m("intrinsicWidth",e=>e.width));const{hasScreenSizePerspective:p,spherical:f}=t;p?(e.include(o.Y6,t),(0,o.pM)(i),(0,a.yu)(i,t),i.uniforms.add(new d.S("inverseViewMatrix",(e,t)=>(0,r.B8)(g,(0,r.Tl)(g,t.camera.viewMatrix,e.origin)))),i.code.add(u.H`
|
|
368
|
-
float applyLineSizeScreenSizePerspective(float size, vec3 pos) {
|
|
369
|
-
vec3 worldPos = (inverseViewMatrix * vec4(pos, 1)).xyz;
|
|
370
|
-
vec3 groundUp = ${f?u.H`normalize(worldPos + localOrigin)`:u.H`vec3(0.0, 0.0, 1.0)`};
|
|
371
|
-
float absCosAngle = abs(dot(groundUp, normalize(worldPos - cameraPosition)));
|
|
372
|
-
|
|
373
|
-
return screenSizePerspectiveScaleFloat(size, absCosAngle, length(pos), screenSizePerspective);
|
|
374
|
-
}
|
|
375
|
-
`)):i.code.add(u.H`float applyLineSizeScreenSizePerspective(float size, vec3 pos) {
|
|
376
|
-
return size;
|
|
377
|
-
}`),t.hasVVSize?(n.add("sizeFeatureAttribute","float"),i.uniforms.add(new l.t("vvSizeMinSize",e=>e.vvSize.minSize),new l.t("vvSizeMaxSize",e=>e.vvSize.maxSize),new l.t("vvSizeOffset",e=>e.vvSize.offset),new l.t("vvSizeFactor",e=>e.vvSize.factor),new l.t("vvSizeFallback",e=>e.vvSize.fallback)),i.code.add(u.H`
|
|
378
|
-
float getSize(${(0,u.If)(p,"vec3 pos")}) {
|
|
379
|
-
float size = isnan(sizeFeatureAttribute)
|
|
380
|
-
? vvSizeFallback.x
|
|
381
|
-
: intrinsicWidth * clamp(vvSizeOffset + sizeFeatureAttribute * vvSizeFactor, vvSizeMinSize, vvSizeMaxSize).x;
|
|
382
|
-
|
|
383
|
-
return ${(0,u.If)(p,"applyLineSizeScreenSizePerspective(size, pos)","size")};
|
|
384
|
-
}
|
|
385
|
-
`)):(n.add("size","float"),i.code.add(u.H`
|
|
386
|
-
float getSize(${(0,u.If)(p,"vec3 pos")}) {
|
|
387
|
-
float fullSize = intrinsicWidth * size;
|
|
388
|
-
return ${(0,u.If)(p,"applyLineSizeScreenSizePerspective(fullSize, pos)","fullSize")};
|
|
389
|
-
}
|
|
390
|
-
`)),t.hasVVOpacity?(n.add("opacityFeatureAttribute","float"),i.constants.add("vvOpacityNumber","int",8),i.uniforms.add(new h.x("vvOpacityValues",8,e=>e.vvOpacity.values),new h.x("vvOpacityOpacities",8,e=>e.vvOpacity.opacityValues),new c.m("vvOpacityFallback",e=>e.vvOpacity.fallback,{supportsNaN:!0})),i.code.add(u.H`
|
|
391
|
-
float interpolateOpacity(float value) {
|
|
392
|
-
if (value <= vvOpacityValues[0]) {
|
|
393
|
-
return vvOpacityOpacities[0];
|
|
394
|
-
}
|
|
395
|
-
|
|
396
|
-
for (int i = 1; i < vvOpacityNumber; ++i) {
|
|
397
|
-
if (vvOpacityValues[i] >= value) {
|
|
398
|
-
float f = (value - vvOpacityValues[i-1]) / (vvOpacityValues[i] - vvOpacityValues[i-1]);
|
|
399
|
-
return mix(vvOpacityOpacities[i-1], vvOpacityOpacities[i], f);
|
|
400
|
-
}
|
|
401
|
-
}
|
|
402
|
-
|
|
403
|
-
return vvOpacityOpacities[vvOpacityNumber - 1];
|
|
404
|
-
}
|
|
405
|
-
|
|
406
|
-
vec4 applyOpacity(vec4 color) {
|
|
407
|
-
if (isnan(opacityFeatureAttribute)) {
|
|
408
|
-
// If there is a color vv then it will already have taken care of applying the fallback
|
|
409
|
-
return ${(0,u.If)(t.hasVVColor,"color","vec4(color.rgb, vvOpacityFallback)")};
|
|
410
|
-
}
|
|
411
|
-
|
|
412
|
-
return vec4(color.rgb, interpolateOpacity(opacityFeatureAttribute));
|
|
413
|
-
}
|
|
414
|
-
`)):i.code.add(u.H`vec4 applyOpacity(vec4 color) {
|
|
415
|
-
return color;
|
|
416
|
-
}`),t.hasVVColor?(e.include(s.A,t),n.add("colorFeatureAttribute","float"),i.code.add(u.H`vec4 getColor() {
|
|
417
|
-
vec4 color = interpolateVVColor(colorFeatureAttribute);
|
|
418
|
-
if (isnan(color.r)) {
|
|
419
|
-
return vec4(0);
|
|
420
|
-
}
|
|
421
|
-
return applyOpacity(color);
|
|
422
|
-
}`)):(n.add("color","vec4"),i.code.add(u.H`vec4 getColor() {
|
|
423
|
-
return applyOpacity(color);
|
|
424
|
-
}`))}const g=(0,n.vt)()},2923(e,t,i){i.d(t,{q:()=>m,h:()=>v});var r=i(27950),n=i(66269),s=i(77949),o=i(71988),a=i(33094),l=i(20304),c=i(31821),h=i(63761),u=i(96095);function d(e){if(null==e)return 1;const t=function(e){return e.pattern.map(t=>Math.round(t*e.pixelRatio))}(e);return Math.floor(t.reduce((e,t)=>e+t))}i(63907),i(76284),i(67171);var p=i(78955),g=i(91829);const f=(0,g.vt)();function m(e,t){if(!t.stippleEnabled)return void e.fragment.code.add(c.H`float getStippleAlpha(float lineWidth) { return 1.0; }
|
|
425
|
-
void discardByStippleAlpha(float stippleAlpha, float threshold) {}
|
|
426
|
-
vec4 blendStipple(vec4 color, float stippleAlpha) { return color; }`);const i=!(t.draped&&t.stipplePreferContinuous),{vertex:u,fragment:d}=e;t.draped||((0,s.yu)(u,t),u.uniforms.add(new a.U("worldToScreenPerDistanceRatio",({camera:e})=>1/e.perScreenPixelRatio)).code.add(c.H`float computeWorldToScreenRatio(vec3 segmentCenter) {
|
|
427
|
-
float segmentDistanceToCamera = length(segmentCenter - cameraPosition);
|
|
428
|
-
return worldToScreenPerDistanceRatio / segmentDistanceToCamera;
|
|
429
|
-
}`)),e.varyings.add("vStippleDistance","float"),e.varyings.add("vStippleDistanceLimits","vec2"),e.varyings.add("vStipplePatternStretch","float"),u.code.add(c.H`
|
|
430
|
-
float discretizeWorldToScreenRatio(float worldToScreenRatio) {
|
|
431
|
-
float step = ${c.H.float(y)};
|
|
432
|
-
|
|
433
|
-
float discreteWorldToScreenRatio = log(worldToScreenRatio);
|
|
434
|
-
discreteWorldToScreenRatio = ceil(discreteWorldToScreenRatio / step) * step;
|
|
435
|
-
discreteWorldToScreenRatio = exp(discreteWorldToScreenRatio);
|
|
436
|
-
return discreteWorldToScreenRatio;
|
|
437
|
-
}
|
|
438
|
-
`),(0,s.Nz)(u),u.code.add(c.H`
|
|
439
|
-
vec2 computeStippleDistanceLimits(float startPseudoScreen, float segmentLengthPseudoScreen, float segmentLengthScreen, float patternLength) {
|
|
440
|
-
|
|
441
|
-
// First check if the segment is long enough to support fully screen space patterns.
|
|
442
|
-
// Force sparse mode for segments that are very large in screen space even if it is not allowed,
|
|
443
|
-
// to avoid imprecision from calculating with large floats.
|
|
444
|
-
if (segmentLengthPseudoScreen >= ${i?"patternLength":"1e4"}) {
|
|
445
|
-
// Round the screen length to get an integer number of pattern repetitions (minimum 1).
|
|
446
|
-
float repetitions = segmentLengthScreen / (patternLength * pixelRatio);
|
|
447
|
-
float flooredRepetitions = max(1.0, floor(repetitions + 0.5));
|
|
448
|
-
float segmentLengthScreenRounded = flooredRepetitions * patternLength;
|
|
449
|
-
|
|
450
|
-
float stretch = repetitions / flooredRepetitions;
|
|
451
|
-
|
|
452
|
-
// We need to impose a lower bound on the stretch factor to prevent the dots from merging together when there is only 1 repetition.
|
|
453
|
-
// 0.75 is the lowest possible stretch value for flooredRepetitions > 1, so it makes sense as lower bound.
|
|
454
|
-
vStipplePatternStretch = max(0.75, stretch);
|
|
455
|
-
|
|
456
|
-
return vec2(0.0, segmentLengthScreenRounded);
|
|
457
|
-
}
|
|
458
|
-
return vec2(startPseudoScreen, startPseudoScreen + segmentLengthPseudoScreen);
|
|
459
|
-
}
|
|
460
|
-
`),d.uniforms.add(new h.N("stipplePatternTexture",e=>e.stippleTexture),new l.m("stipplePatternPixelSizeInv",e=>1/v(e))),t.stippleOffColorEnabled&&d.uniforms.add(new o.E("stippleOffColor",e=>{return null==(t=e.stippleOffColor)?g.uY:4===t.length?t:(0,p.hZ)(f,t[0],t[1],t[2],1);var t})),e.include(n.m),t.worldSizedImagePattern?(e.varyings.add("vStippleV","float"),e.fragment.include(r.N),d.code.add(c.H`vec4 getStippleColor(out bool isClamped) {
|
|
461
|
-
vec2 aaCorrectedLimits = vStippleDistanceLimits + vec2(1.0, -1.0) / gl_FragCoord.w;
|
|
462
|
-
isClamped = vStippleDistance < aaCorrectedLimits.x || vStippleDistance > aaCorrectedLimits.y;
|
|
463
|
-
float u = vStippleDistance * stipplePatternPixelSizeInv;
|
|
464
|
-
float v = vStippleV == -1.0 ? 0.5 : vStippleV;
|
|
465
|
-
return texture(stipplePatternTexture, vec2(u, v));
|
|
466
|
-
}
|
|
467
|
-
vec4 getStippleColor() {
|
|
468
|
-
bool ignored;
|
|
469
|
-
return getStippleColor(ignored);
|
|
470
|
-
}
|
|
471
|
-
float getStippleSDF() {
|
|
472
|
-
vec4 color = getStippleColor();
|
|
473
|
-
return color.a == 0.0 ? -0.5 : 0.5;
|
|
474
|
-
}
|
|
475
|
-
float getStippleAlpha(float lineWidth) {
|
|
476
|
-
return getStippleColor().a;
|
|
477
|
-
}
|
|
478
|
-
vec4 blendStipple(vec4 color, float stippleAlpha) {
|
|
479
|
-
vec4 stippleColor = getStippleColor();
|
|
480
|
-
int mixMode = 1;
|
|
481
|
-
vec3 col = mixExternalColor(color.rgb, vec3(1.0), stippleColor.rgb, mixMode);
|
|
482
|
-
float opacity = mixExternalOpacity(color.a, 1.0, stippleColor.a, mixMode);
|
|
483
|
-
return vec4(col, opacity);
|
|
484
|
-
}`)):d.code.add(c.H`
|
|
485
|
-
float getStippleSDF(out bool isClamped) {
|
|
486
|
-
float stippleDistanceClamped = noPerspectiveRead(clamp(vStippleDistance, vStippleDistanceLimits.x, vStippleDistanceLimits.y));
|
|
487
|
-
float lineSizeInv = noPerspectiveRead(vLineSizeInv);
|
|
488
|
-
|
|
489
|
-
vec2 aaCorrectedLimits = vStippleDistanceLimits + vec2(1.0, -1.0) / gl_FragCoord.w;
|
|
490
|
-
isClamped = vStippleDistance < aaCorrectedLimits.x || vStippleDistance > aaCorrectedLimits.y;
|
|
491
|
-
|
|
492
|
-
float u = stippleDistanceClamped * stipplePatternPixelSizeInv * lineSizeInv;
|
|
493
|
-
u = fract(u);
|
|
494
|
-
|
|
495
|
-
float sdf = texture(stipplePatternTexture, vec2(u, 0.5)).r;
|
|
496
|
-
|
|
497
|
-
return (sdf - 0.5) * vStipplePatternStretch + 0.5;
|
|
498
|
-
}
|
|
499
|
-
|
|
500
|
-
float getStippleSDF() {
|
|
501
|
-
bool ignored;
|
|
502
|
-
return getStippleSDF(ignored);
|
|
503
|
-
}
|
|
504
|
-
|
|
505
|
-
float getStippleAlpha(float lineWidth) {
|
|
506
|
-
bool isClamped;
|
|
507
|
-
float stippleSDF = getStippleSDF(isClamped);
|
|
508
|
-
float antiAliasedResult = clamp(stippleSDF * lineWidth + 0.5, 0.0, 1.0);
|
|
509
|
-
return isClamped ? floor(antiAliasedResult + 0.5) : antiAliasedResult;
|
|
510
|
-
}
|
|
511
|
-
|
|
512
|
-
vec4 blendStipple(vec4 color, float stippleAlpha) {
|
|
513
|
-
return ${t.stippleOffColorEnabled?"mix(color, stippleOffColor, stippleAlpha)":"vec4(color.rgb, color.a * stippleAlpha)"};
|
|
514
|
-
}
|
|
515
|
-
`),d.code.add(c.H`
|
|
516
|
-
void discardByStippleAlpha(float stippleAlpha, float threshold) {
|
|
517
|
-
${(0,c.If)(!t.stippleOffColorEnabled,"if (stippleAlpha < threshold) { discard; }")}
|
|
518
|
-
}
|
|
519
|
-
`)}function v(e){const t=e.stipplePattern;return(0,u.sL)(t)?t.length:t?d(t)/t.pixelRatio:1}const y=.4},28974(e,t,i){i.d(t,{r:()=>a});var r=i(91829);i(18845),i(63907);(0,r.CN)(.25,.25,.75,.75),i(76284),i(67171);var n=i(77949),s=i(33094),o=i(31821);function a(e,t){const i=e.vertex,r=t.hasScreenSizePerspective;(0,n.Nz)(i),null==i.uniforms.get("markerScale")&&i.constants.add("markerScale","float",1),i.constants.add("markerSizePerLineWidth","float",10).code.add(o.H`
|
|
520
|
-
float getLineWidth(${(0,o.If)(r,"vec3 pos")}) {
|
|
521
|
-
return max(getSize(${(0,o.If)(r,"pos")}), 1.0) * pixelRatio;
|
|
522
|
-
}
|
|
523
|
-
|
|
524
|
-
float getScreenMarkerSize(float lineWidth) {
|
|
525
|
-
return markerScale * markerSizePerLineWidth * lineWidth;
|
|
526
|
-
}
|
|
527
|
-
`),2===t.space&&(i.constants.add("maxSegmentLengthFraction","float",.45),i.uniforms.add(new s.U("perRenderPixelRatio",e=>e.camera.perRenderPixelRatio)),i.code.add(o.H`
|
|
528
|
-
bool areWorldMarkersHidden(vec3 pos, vec3 other) {
|
|
529
|
-
vec3 midPoint = mix(pos, other, 0.5);
|
|
530
|
-
float distanceToCamera = length(midPoint);
|
|
531
|
-
float screenToWorldRatio = perRenderPixelRatio * distanceToCamera * 0.5;
|
|
532
|
-
float worldMarkerSize = getScreenMarkerSize(getLineWidth(${(0,o.If)(r,"pos")})) * screenToWorldRatio;
|
|
533
|
-
float segmentLen = length(pos - other);
|
|
534
|
-
return worldMarkerSize > maxSegmentLengthFraction * segmentLen;
|
|
535
|
-
}
|
|
536
|
-
|
|
537
|
-
float getWorldMarkerSize(vec3 pos) {
|
|
538
|
-
float distanceToCamera = length(pos);
|
|
539
|
-
float screenToWorldRatio = perRenderPixelRatio * distanceToCamera * 0.5;
|
|
540
|
-
return getScreenMarkerSize(getLineWidth(${(0,o.If)(r,"pos")})) * screenToWorldRatio;
|
|
541
|
-
}
|
|
542
|
-
`))}},82094(e,t,i){i.d(t,{Z:()=>r});const r=i(31821).H`vec4(0.0, 0.0, 2.0, 1.0)`},66269(e,t,i){function r(e){e.vertex.code.add("#define noPerspectiveWrite(x, w) (x * w)")}function n(e){e.fragment.code.add("#define noPerspectiveRead(x) (x * gl_FragCoord.w)")}i.d(t,{F:()=>r,m:()=>n})},9273(e,t,i){i.d(t,{R:()=>n});var r=i(74333);class n extends r.n{constructor(e,t){super(e,"usampler2D",1,(i,r,n)=>i.bindTexture(e,t(r,n)))}}},78230(e,t,i){i.d(t,{x:()=>u});var r=i(93687),n=i(15142),s=i(35522),o=i(51850),a=i(82919),l=i(71351),c=i(94008),h=i(620);class u{get bounds(){return this._root.bounds}get halfSize(){return this._root.halfSize}get root(){return this._root.node}get maximumObjectsPerNode(){return this._maximumObjectsPerNode}get maximumDepth(){return this._maximumDepth}get objectCount(){return this._objectCount}constructor(e,t){this.objectToBoundingSphere=e,this._maximumObjectsPerNode=10,this._maximumDepth=20,this._degenerateObjects=new Set,this._root=new d,this._objectCount=0,t&&(void 0!==t.maximumObjectsPerNode&&(this._maximumObjectsPerNode=t.maximumObjectsPerNode),void 0!==t.maximumDepth&&(this._maximumDepth=t.maximumDepth))}destroy(){this._degenerateObjects.clear(),d.clearPool(),E[0]=null,I.prune(),W.prune()}add(e){const t=Array.from(e);this._grow(t);const i=d.acquire();for(const e of t)++this._objectCount,this._isDegenerate(e)?this._degenerateObjects.add(e):(i.init(this._root),this._add(e,i));d.release(i)}remove(e,t=null){this._objectCount-=e.length;const i=d.acquire();for(const r of e){const e=t??this.objectToBoundingSphere(r);T(e.radius)?(i.init(this._root),f(r,e,i)):this._degenerateObjects.delete(r)}d.release(i),this._shrink()}update(e,t){if(!T(t.radius)&&this._isDegenerate(e))return;const i=function(e){return E[0]=e,E}(e);this.remove(i,t),this.add(i)}forEachAlongRay(e,t,i){const r=(0,l.LV)(e,t);p(this._root,e=>{if(!function(e,t){return _(t.bounds.center,2*-t.halfSize,L),_(t.bounds.center,2*t.halfSize,P),(0,h.O_)(e.origin,e.direction,L,P)}(r,e))return!1;const t=e.node;return t.terminals.forAll(e=>{this._intersectsObject(r,e)&&i(e)}),null!==t.residents&&t.residents.forAll(e=>{this._intersectsObject(r,e)&&i(e)}),!0})}forEachAlongRayWithVerticalOffset(e,t,i,r){const n=(0,l.LV)(e,t);p(this._root,e=>{if(!function(e,t,i){return _(t.bounds.center,2*-t.halfSize,L),_(t.bounds.center,2*t.halfSize,P),i.applyToMinMax(L,P),(0,h.O_)(e.origin,e.direction,L,P)}(n,e,r))return!1;const t=e.node;return t.terminals.forAll(e=>{this._intersectsObjectWithOffset(n,e,r)&&i(e)}),null!==t.residents&&t.residents.forAll(e=>{this._intersectsObjectWithOffset(n,e,r)&&i(e)}),!0})}forEach(e){p(this._root,t=>{const i=t.node;return i.terminals.forAll(e),null!==i.residents&&i.residents.forAll(e),!0}),this._degenerateObjects.forEach(e)}forEachDegenerateObject(e){this._degenerateObjects.forEach(e)}findClosest(e,t,i,r=()=>!0,n=1/0){let o=1/0,l=1/0,c=null;const h=w(e,t),u=s=>{if(--n,!r(s))return;const h=this.objectToBoundingSphere(s);if(!(0,a.m7)(i,h))return;const u=S(e,t,h.center),d=u-h.radius,p=u+h.radius;d<o&&(o=d,l=p,c=s)};return g(this._root,r=>{if(n<=0||!(0,a.m7)(i,r.bounds))return!1;if((0,s.hs)(M,h,r.halfSize),(0,s.WQ)(M,M,r.bounds.center),S(e,t,M)>l)return!1;const o=r.node;return o.terminals.forAll(e=>u(e)),null!==o.residents&&o.residents.forAll(e=>u(e)),!0},e,t),c}forEachInDepthRange(e,t,i,r,n,o,l){let c=-1/0,h=1/0;const u={setRange:e=>{1===i?(c=Math.max(c,e.near),h=Math.min(h,e.far)):(c=Math.max(c,-e.far),h=Math.min(h,-e.near))}};u.setRange(r);const d=S(t,i,e),p=w(t,i),f=w(t,-i),m=e=>{if(!l(e))return;const r=this.objectToBoundingSphere(e),s=S(t,i,r.center)-d,p=s-r.radius,g=s+r.radius;p>h||g<c||!(0,a.m7)(o,r)||n(e,u)};g(this._root,e=>{if(!(0,a.m7)(o,e.bounds))return!1;if((0,s.hs)(M,p,e.halfSize),(0,s.WQ)(M,M,e.bounds.center),S(t,i,M)-d>h)return!1;if((0,s.hs)(M,f,e.halfSize),(0,s.WQ)(M,M,e.bounds.center),S(t,i,M)-d<c)return!1;const r=e.node;return r.terminals.forAll(e=>m(e)),null!==r.residents&&r.residents.forAll(e=>m(e)),!0},t,i)}forEachNode(e){p(this._root,t=>e(t.node,t.bounds,t.halfSize,t.depth))}forEachNeighbor(e,t){const i=t.radius,r=t.center,n=t=>{const n=this.objectToBoundingSphere(t),o=n.radius,a=i+o;return!((0,s.hG)(n.center,r)-a*a<=0)||e(t)};let o=!0;const a=e=>{o&&(o=n(e))};p(this._root,e=>{const t=e.bounds.radius,n=i+t;if((0,s.hG)(e.bounds.center,r)-n*n>0)return!1;const l=e.node;return l.terminals.forAll(a),o&&null!==l.residents&&l.residents.forAll(a),o}),o&&this.forEachDegenerateObject(a)}_intersectsObject(e,t){const i=this.objectToBoundingSphere(t);return!(i.radius>0)||i.intersectRay(e)}_intersectsObjectWithOffset(e,t,i){const r=this.objectToBoundingSphere(t);return!(r.radius>0)||i.applyToBoundingSphere(r).intersectRay(e)}_add(e,t){t.advanceTo(this.objectToBoundingSphere(e))?t.node.terminals.push(e):(t.node.residents.push(e),t.node.residents.length>this._maximumObjectsPerNode&&t.depth<this._maximumDepth&&this._split(t))}_split(e){const t=e.node.residents;e.node.residents=null;for(let i=0;i<t.length;i++){const r=d.acquire().init(e);this._add(t.at(i),r),d.release(r)}}_grow(e){if(b(e,e=>this.objectToBoundingSphere(e),z),T(z.radius)&&!this._fitsInsideTree(z))if(v(this._root.node))this._root.bounds.copyFrom(z),this._root.halfSize=1.25*this._root.bounds.radius,this._root.updateBoundsRadiusFromHalfSize();else{const e=this._rootBoundsForRootAsSubNode(z);this._placingRootViolatesMaxDepth(e)?this._rebuildTree(z,e):this._growRootAsSubNode(e),d.release(e)}}_rebuildTree(e,t){D.center=t.bounds.center,D.radius=t.halfSize,b([e,D],e=>e,F);const i=d.acquire().init(this._root);this._root.initFrom(null,F,F.radius),this._root.increaseHalfSize(1.25),p(i,e=>(this.add(e.node.terminals.data),null!==e.node.residents&&this.add(e.node.residents.data),!0)),d.release(i)}_placingRootViolatesMaxDepth(e){const t=Math.log(e.halfSize/this._root.halfSize)*Math.LOG2E;let i=0;return p(this._root,e=>(i=Math.max(i,e.depth),i+t<=this._maximumDepth)),i+t>this._maximumDepth}_rootBoundsForRootAsSubNode(e){const t=e.radius,i=e.center;let r=-1/0;const n=this._root.bounds.center,s=this._root.halfSize;for(let e=0;e<3;e++){const o=n[e]-s-(i[e]-t),a=i[e]+t-(n[e]+s),l=Math.max(0,Math.ceil(o/(2*s))),c=Math.max(0,Math.ceil(a/(2*s)))+1,h=2**Math.ceil(Math.log(l+c)*Math.LOG2E);r=Math.max(r,h),N[e].min=l,N[e].max=c}for(let e=0;e<3;e++){let t=N[e].min,i=N[e].max;const o=(r-(t+i))/2;t+=Math.ceil(o),i+=Math.floor(o);const a=n[e]-s-t*s*2;O.center[e]=a+(i+t)*s}const o=r*s;return O.radius=o*R,d.acquire().initFrom(null,O,o,0)}_growRootAsSubNode(e){const t=this._root.node;z.center=this._root.bounds.center,z.radius=this._root.halfSize,this._root.init(e),e.advanceTo(z,null,!0),e.node.children=t.children,e.node.residents=t.residents,e.node.terminals=t.terminals}_shrink(){for(;;){const e=this._findShrinkIndex();if(-1===e)break;this._root.advance(e),this._root.depth=0}}_findShrinkIndex(){if(0!==this._root.node.terminals.length||this._root.isLeaf())return-1;let e=null;const t=this._root.node.children;let i=0,r=0;for(;r<t.length&&null==e;)i=r++,e=t[i];for(;r<t.length;)if(t[r++])return-1;return i}_isDegenerate(e){return!T(this.objectToBoundingSphere(e).radius)}_fitsInsideTree(e){const t=this._root.bounds,i=this._root.halfSize;return e.radius<=i&&e.center[0]>=t.center[0]-i&&e.center[0]<=t.center[0]+i&&e.center[1]>=t.center[1]-i&&e.center[1]<=t.center[1]+i&&e.center[2]>=t.center[2]-i&&e.center[2]<=t.center[2]+i}_nodeToJSON(e){const t=e.children.map(e=>e?this._nodeToJSON(e):null),i=e.residents?.map(e=>this.objectToBoundingSphere(e)),r=e.terminals?.map(e=>this.objectToBoundingSphere(e));return{children:t,residents:i,terminals:r}}}class d{constructor(){this.bounds=new c.iy,this.halfSize=0,this.initFrom(null,null,0,0)}init(e){return this.initFrom(e.node,e.bounds,e.halfSize,e.depth)}initFrom(e,t,i,r=this.depth){return this.node=null!=e?e:d.createEmptyNode(),t&&this.bounds.copyFrom(t),this.halfSize=i,this.depth=r,this}increaseHalfSize(e){this.halfSize*=e,this.updateBoundsRadiusFromHalfSize()}updateBoundsRadiusFromHalfSize(){this.bounds.radius=this.halfSize*R}advance(e){let t=this.node.children[e];t||(t=d.createEmptyNode(),this.node.children[e]=t),this.node=t,this.halfSize/=2,this.depth++;const i=C[e];return this.bounds.center[0]+=i[0]*this.halfSize,this.bounds.center[1]+=i[1]*this.halfSize,this.bounds.center[2]+=i[2]*this.halfSize,this.updateBoundsRadiusFromHalfSize(),this}advanceTo(e,t,i=!1){for(;;){if(this.isTerminalFor(e))return t?.(this,-1),!0;if(this.isLeaf()){if(!i)return t?.(this,-1),!1;this.node.residents=null}const r=this._childIndex(e);t?.(this,r),this.advance(r)}}isLeaf(){return null!=this.node.residents}isTerminalFor(e){return e.radius>this.halfSize/2}_childIndex(e){const t=this.bounds.center;return(t[0]<e.center[0]?1:0)+(t[1]<e.center[1]?2:0)+(t[2]<e.center[2]?4:0)}static createEmptyNode(){return{children:[null,null,null,null,null,null,null,null],terminals:new n.A({shrink:!0}),residents:new n.A({shrink:!0})}}static{this._pool=new r.A(()=>new d)}static acquire(){return d._pool.acquire()}static release(e){d._pool.release(e)}static clearPool(){d._pool.prune()}}function p(e,t){let i=d.acquire().init(e);const r=[i];for(;0!==r.length;){if(i=r.pop(),t(i)&&!i.isLeaf())for(let e=0;e<i.node.children.length;e++)i.node.children[e]&&r.push(d.acquire().init(i).advance(e));d.release(i)}}function g(e,t,i,r=1){let n=d.acquire().init(e);const s=[n];for(function(e,t,i){if(!W.length)for(let e=0;e<8;++e)W.push({index:0,distance:0});for(let i=0;i<8;++i){const r=C[i];W.data[i].index=i,W.data[i].distance=S(e,t,r)}W.sort((e,t)=>e.distance-t.distance);for(let e=0;e<8;++e)i[e]=W.data[e].index}(i,r,V);0!==s.length;){if(n=s.pop(),t(n)&&!n.isLeaf())for(let e=7;e>=0;--e){const t=V[e];n.node.children[t]&&s.push(d.acquire().init(n).advance(t))}d.release(n)}}function f(e,t,i){I.clear();const r=i.advanceTo(t,(e,t)=>{I.push(e.node),I.push(t)})?i.node.terminals:i.node.residents;if(r.removeUnordered(e),0===r.length)for(let e=I.length-2;e>=0&&m(I.data[e],I.data[e+1]);e-=2);}function m(e,t){return t>=0&&(e.children[t]=null),!!v(e)&&(null===e.residents&&(e.residents=new n.A({shrink:!0})),!0)}function v(e){if(0!==e.terminals.length)return!1;if(null!==e.residents)return 0===e.residents.length;for(let t=0;t<e.children.length;t++)if(e.children[t])return!1;return!0}function y(e,t){e[0]=Math.min(e[0],t.center[0]-t.radius),e[1]=Math.min(e[1],t.center[1]-t.radius),e[2]=Math.min(e[2],t.center[2]-t.radius)}function x(e,t){e[0]=Math.max(e[0],t.center[0]+t.radius),e[1]=Math.max(e[1],t.center[1]+t.radius),e[2]=Math.max(e[2],t.center[2]+t.radius)}function _(e,t,i){i[0]=e[0]+t,i[1]=e[1]+t,i[2]=e[2]+t}function b(e,t,i){L[0]=1/0,L[1]=1/0,L[2]=1/0,P[0]=-1/0,P[1]=-1/0,P[2]=-1/0;for(const i of e){const e=t(i);T(e.radius)&&(y(L,e),x(P,e))}(0,s.Cc)(i.center,L,P,.5),i.radius=Math.max(P[0]-L[0],P[1]-L[1],P[2]-L[2])/2}function w(e,t){let i,r=1/0;for(let n=0;n<8;++n){const s=S(e,t,A[n]);s<r&&(r=s,i=A[n])}return i}function S(e,t,i){return t*(e[0]*i[0]+e[1]*i[1]+e[2]*i[2])}function T(e){return!isNaN(e)&&e!==-1/0&&e!==1/0&&e>0}const C=[(0,o.fA)(-1,-1,-1),(0,o.fA)(1,-1,-1),(0,o.fA)(-1,1,-1),(0,o.fA)(1,1,-1),(0,o.fA)(-1,-1,1),(0,o.fA)(1,-1,1),(0,o.fA)(-1,1,1),(0,o.fA)(1,1,1)],A=[(0,o.fA)(-1,-1,-1),(0,o.fA)(-1,-1,1),(0,o.fA)(-1,1,-1),(0,o.fA)(-1,1,1),(0,o.fA)(1,-1,-1),(0,o.fA)(1,-1,1),(0,o.fA)(1,1,-1),(0,o.fA)(1,1,1)],R=Math.sqrt(3),E=[null],O=new c.iy,M=(0,o.vt)(),L=(0,o.vt)(),P=(0,o.vt)(),I=new n.A,z=new c.iy,D=new c.iy,F=new c.iy,N=[{min:0,max:0},{min:0,max:0},{min:0,max:0}],W=new n.A,V=[0,0,0,0,0,0,0,0]},96095(e,t,i){i.d(t,{sL:()=>r}),i(13069);function r(e){return null!=e&&"image"in e}},54073(e,t,i){i.d(t,{Q:()=>u});var r=i(37585),n=i(48163),s=i(78659);const o=(0,s.Kp)(1),a=(0,s.Kp)(1);var l=i(47286),c=i(20304),h=i(31821);function u(e,t){const{hasAnimation:i,animation:n}=t;if(!i)return;const{attributes:s,varyings:u,vertex:p,fragment:g}=e;s.add("timeStamps","vec4"),u.add("vTimeStamp","float"),u.add("vFirstTime","float"),u.add("vLastTime","float"),u.add("vTransitionType","float"),p.main.add(h.H`vTimeStamp = timeStamps.x;
|
|
543
|
-
vFirstTime = timeStamps.y;
|
|
544
|
-
vLastTime = timeStamps.z;
|
|
545
|
-
vTransitionType = timeStamps.w;`),3===n&&g.constants.add("decayRate","float",2.3),g.code.add(h.H`
|
|
546
|
-
float getTrailOpacity(float x) {
|
|
547
|
-
if (x < 0.0) {
|
|
548
|
-
return 0.0;
|
|
549
|
-
}
|
|
550
|
-
|
|
551
|
-
${function(e){switch(e){case 2:return"return x >= 0.0 && x <= 1.0 ? 1.0 : 0.0;";case 3:return"float cutOff = exp(-decayRate);\n return (exp(-decayRate * x) - cutOff) / (1.0 - cutOff);";default:return"return 1.0;"}}(n)}
|
|
552
|
-
}`),g.uniforms.add(new c.m("timeElapsed",e=>e.timeElapsed),new c.m("trailLength",e=>e.trailLength),new c.m("speed",e=>e.animationSpeed),new l.G("startEndTime",e=>(0,r.hZ)(d,e.startTime,e.endTime))),g.constants.add("fadeInTime","float",a),g.constants.add("fadeOutTime","float",o),g.constants.add("incomingTransition","int",0),g.constants.add("outgoingTransition","int",2),g.code.add(h.H`float fadeIn(float x) {
|
|
553
|
-
return smoothstep(0.0, fadeInTime, x);
|
|
554
|
-
}
|
|
555
|
-
float fadeOut(float x) {
|
|
556
|
-
return isinf(fadeOutTime) ? 1.0 : smoothstep(fadeOutTime, 0.0, x);
|
|
557
|
-
}
|
|
558
|
-
void updateAlphaIf(inout float alpha, bool condition, float newAlpha) {
|
|
559
|
-
alpha = condition ? min(alpha, newAlpha) : alpha;
|
|
560
|
-
}
|
|
561
|
-
vec4 animate(vec4 color) {
|
|
562
|
-
float startTime = startEndTime[0];
|
|
563
|
-
float endTime = startEndTime[1];
|
|
564
|
-
float totalTime = vLastTime - vFirstTime;
|
|
565
|
-
float actualFadeOutTime = min(fadeOutTime * speed, trailLength);
|
|
566
|
-
float longStreamlineThreshold = (fadeInTime + 1.0) * speed + actualFadeOutTime;
|
|
567
|
-
bool longStreamline = totalTime > longStreamlineThreshold;
|
|
568
|
-
float totalTimeWithFadeOut = longStreamline && actualFadeOutTime != trailLength ? totalTime : totalTime + actualFadeOutTime;
|
|
569
|
-
float fadeOutStartTime = longStreamline ? totalTime - actualFadeOutTime : totalTime;
|
|
570
|
-
float originTime = -vFirstTime;
|
|
571
|
-
float actualEndTime = int(vTransitionType) == outgoingTransition ? min(endTime, startTime + vLastTime / speed) : endTime;
|
|
572
|
-
vec4 animatedColor = color;
|
|
573
|
-
if (speed == 0.0) {
|
|
574
|
-
float alpha = getTrailOpacity((totalTimeWithFadeOut - (vTimeStamp - vFirstTime)) / trailLength);
|
|
575
|
-
updateAlphaIf(alpha, !isinf(actualEndTime), fadeOut(timeElapsed - actualEndTime));
|
|
576
|
-
updateAlphaIf(alpha, true, fadeIn(timeElapsed - startTime));
|
|
577
|
-
animatedColor.a *= alpha;
|
|
578
|
-
return animatedColor;
|
|
579
|
-
}
|
|
580
|
-
float relativeStartTime = mod(startTime, totalTimeWithFadeOut);
|
|
581
|
-
float shiftedTimeElapsed = timeElapsed - relativeStartTime + originTime;
|
|
582
|
-
float headRelativeToFirst = mod(shiftedTimeElapsed * speed, totalTimeWithFadeOut);
|
|
583
|
-
float vRelativeToHead = headRelativeToFirst - originTime - vTimeStamp;
|
|
584
|
-
float vAbsoluteTime = timeElapsed - vRelativeToHead / speed;
|
|
585
|
-
if (startTime > timeElapsed) {
|
|
586
|
-
return vec4(0.0);
|
|
587
|
-
}
|
|
588
|
-
float alpha = getTrailOpacity(vRelativeToHead / trailLength);
|
|
589
|
-
updateAlphaIf(alpha, true, fadeIn(timeElapsed - startTime));
|
|
590
|
-
updateAlphaIf(alpha, !isinf(actualEndTime), fadeOut(timeElapsed - actualEndTime));
|
|
591
|
-
updateAlphaIf(alpha, int(vTransitionType) != incomingTransition, step(startTime, vAbsoluteTime));
|
|
592
|
-
updateAlphaIf(alpha, headRelativeToFirst > fadeOutStartTime, fadeOut((headRelativeToFirst - fadeOutStartTime) / speed));
|
|
593
|
-
alpha *= fadeIn(vTimeStamp - vFirstTime);
|
|
594
|
-
animatedColor.a *= alpha;
|
|
595
|
-
return animatedColor;
|
|
596
|
-
}`)}const d=(0,n.vt)()},92359(e,t,i){i.d(t,{nu:()=>u,W6:()=>c}),i(4576),i(71511),i(44208),i(53966);var r=i(17676),n=(i(36708),i(44794),i(78659)),s=i(5482),o=i(69622),a=i(91429);let l=class extends o.A{constructor(){super(...arguments),this.SCHEDULER_LOG_SLOW_TASKS=!1,this.FEATURE_SERVICE_SNAPPING_SOURCE_TILE_TREE_SHOW_TILES=!1}};(0,s.Cg)([(0,a.MZ)()],l.prototype,"SCHEDULER_LOG_SLOW_TASKS",void 0),(0,s.Cg)([(0,a.MZ)()],l.prototype,"FEATURE_SERVICE_SNAPPING_SOURCE_TILE_TREE_SHOW_TILES",void 0),l=(0,s.Cg)([(0,a.$K)("esri.views.support.debugFlags")],l),new l,i(49186),Symbol("Yield");const c={RESOURCE_CONTROLLER_IMMEDIATE:"immediate",RESOURCE_CONTROLLER:"schedule",SLIDE:"slide",STREAM_DATA_LOADER:"stream loader",ELEVATION_QUERY:"elevation query",TERRAIN_SURFACE:"terrain",SURFACE_GEOMETRY_UPDATES:"surface geometry updates",LOD_RENDERER:"LoD renderer",GRAPHICS_CORE:"Graphics3D",I3S:"I3S",LYR3D:"Lyr3D",TILES3D:"3DTiles",POINT_CLOUD_LAYER:"point cloud",FEATURE_TILE_FETCHER:"feature fetcher",STREAM_CONTROLLER:"stream controller",OCCLUSION_QUERY:"occlusion query",OVERLAY:"overlay",OVERLAY_RENDERER:"overlay renderer",STAGE:"stage",GRAPHICS_DECONFLICTOR:"graphics deconflictor",FILTER_VISIBILITY:"graphics filter visibility",SCALE_VISIBILITY:"graphics scale visibility",FRUSTUM_VISIBILITY:"graphics frustum visibility",POINT_OF_INTEREST_FREQUENT:"POI frequent",POINT_OF_INTEREST_INFREQUENT:"POI infrequent",LABELER:"labeler",FEATURE_QUERY_ENGINE:"feature query",FEATURE_TILE_TREE:"feature tile tree",FEATURE_TILE_TREE_ACTIVE:"fast feature tile tree",ELEVATION_ALIGNMENT:"elevation alignment",ELEVATION_ALIGNMENT_SCENE:"elevation alignment scene",TEXT_TEXTURE_ATLAS:"text texture atlas",TEXTURE_UNLOAD:"texture unload",LINE_OF_SIGHT_TOOL:"line of sight tool",LINE_OF_SIGHT_TOOL_INTERACTIVE:"interactive line of sight tool",VOLUME_MEASUREMENT:"volume measurement",ELEVATION_PROFILE:"elevation profile",SNAPPING:"snapping",SHADOW_ACCUMULATOR:"shadow accumulator",CLOUDS_GENERATOR:"clouds generator",FLOW_GENERATOR:"flow generator",GAUSSIAN_SPLAT_SORTING:"gaussian splat sorting",GAUSSIAN_SPLAT_TEXTURE_ATLAS:"gaussian splat texture atlas",MAPVIEW_FETCH_QUEUE:"mapview fetch queue",MAPVIEW_LAYERVIEW_UPDATE:"mapview layerview update",MAPVIEW_VECTOR_TILE_PARSING_QUEUE:"mapview vector tile parsing queue",NONE:0,TEST_PRIO:1};new Map([[c.RESOURCE_CONTROLLER_IMMEDIATE,0],[c.RESOURCE_CONTROLLER,4],[c.SLIDE,0],[c.STREAM_DATA_LOADER,0],[c.ELEVATION_QUERY,0],[c.TERRAIN_SURFACE,1],[c.SURFACE_GEOMETRY_UPDATES,1],[c.LOD_RENDERER,2],[c.GRAPHICS_CORE,2],[c.I3S,2],[c.LYR3D,2],[c.TILES3D,3],[c.POINT_CLOUD_LAYER,2],[c.FEATURE_TILE_FETCHER,2],[c.STREAM_CONTROLLER,2],[c.CLOUDS_GENERATOR,2],[c.OCCLUSION_QUERY,2],[c.OVERLAY,4],[c.OVERLAY_RENDERER,4],[c.STAGE,4],[c.GRAPHICS_DECONFLICTOR,4],[c.FILTER_VISIBILITY,4],[c.SCALE_VISIBILITY,4],[c.FRUSTUM_VISIBILITY,4],[c.POINT_OF_INTEREST_FREQUENT,6],[c.POINT_OF_INTEREST_INFREQUENT,30],[c.LABELER,8],[c.FEATURE_QUERY_ENGINE,8],[c.FEATURE_TILE_TREE,16],[c.FEATURE_TILE_TREE_ACTIVE,0],[c.ELEVATION_ALIGNMENT,12],[c.ELEVATION_ALIGNMENT_SCENE,14],[c.TEXT_TEXTURE_ATLAS,12],[c.TEXTURE_UNLOAD,12],[c.LINE_OF_SIGHT_TOOL,16],[c.LINE_OF_SIGHT_TOOL_INTERACTIVE,0],[c.VOLUME_MEASUREMENT,4],[c.SNAPPING,0],[c.SHADOW_ACCUMULATOR,30],[c.FLOW_GENERATOR,12],[c.GAUSSIAN_SPLAT_SORTING,2],[c.GAUSSIAN_SPLAT_TEXTURE_ATLAS,12],[c.MAPVIEW_FETCH_QUEUE,0],[c.MAPVIEW_LAYERVIEW_UPDATE,2],[c.MAPVIEW_VECTOR_TILE_PARSING_QUEUE,0]]),(0,n.l5)(6.5),(0,n.l5)(1),(0,n.l5)(30),(0,n.l5)(1e3/30),(0,n.l5)(100);const h=new class{constructor(){this._begin=performance?.now()??0,this._budget=0,this._done=!1,this._progressed=!1,this._enabled=!0}run(e){return!this.done&&(!0===e()&&this.madeProgress(),!0)}get done(){return this._done}get budget(){return this._budget}madeProgress(){return this._progressed=!0,this._done=this.elapsed>=this._budget&&this._enabled,this._done}get enabled(){return this._enabled}set enabled(e){this._enabled=e}reset(e){this._begin=this.now(),this._budget=e,this.resetProgress()}get remaining(){return Math.max(this._budget-this.elapsed,0)}now(){return performance.now()}get elapsed(){return this.now()-this._begin}resetProgress(){this._progressed=!1,this._done=!1}get hasProgressed(){return this._progressed}};h.enabled=!1;const u=new class{remove(){}processQueue(){}schedule(e,t,i){try{if((0,r.G4)(t)){const e=(0,r.NK)();return i?Promise.resolve(i(e)):Promise.reject(e)}return(0,r.z7)(e(h))}catch(e){return Promise.reject(e)}}reschedule(e,t,i){return this.schedule(e,t,i)}async scheduleGenerator(e,t,i){if((0,r.G4)(t)){const e=(0,r.NK)();if(i)return i(e);throw e}const n=e(h);for(;;){const e=n.next(h),s=(0,r.$X)(e)?await e:e;if((0,r.G4)(t)){const e=(0,r.NK)();if(i){const t=i(e),s=n.return(null);return(0,r.$X)(s)&&await(0,r.QZ)(s),t}const t=n.throw(e);throw(0,r.$X)(t)&&await(0,r.QZ)(t),e}if(s.done)return s.value}}}}}]);
|