@arcgis/core 6.0.0-next.27 → 6.0.0-next.29
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/Map.d.ts +6 -0
- package/analysis/AreaMeasurementAnalysis.d.ts +4 -2
- package/analysis/DirectLineMeasurementAnalysis.d.ts +8 -4
- package/arcgisGlobal.d.ts +0 -2
- package/assets/esri/core/workers/RemoteClient.js +1 -1
- package/assets/esri/core/workers/chunks/131185d26343a997495e.js +1 -0
- package/assets/esri/core/workers/chunks/144bad0c2415c345736a.js +1 -0
- package/assets/esri/core/workers/chunks/176d0a06ebff5a29dedf.js +1 -0
- package/assets/esri/core/workers/chunks/{b0ca81a07cff25df19d2.js → 176d75e76318bfc25a53.js} +1 -1
- package/assets/esri/core/workers/chunks/18776a130d96879a68b1.js +1 -0
- package/assets/esri/core/workers/chunks/{e35641a3a4da8cfbcf54.js → 189321d88026bd7e6d3e.js} +1 -1
- package/assets/esri/core/workers/chunks/18e7fa4d3e0b1a084cc6.js +1 -0
- package/assets/esri/core/workers/chunks/{1168bc5c9f0a7e1f63a2.js → 1989410a618865f02dec.js} +1 -1
- package/assets/esri/core/workers/chunks/{2c0cb214fedb29487eef.js → 199a7f97916679e0257c.js} +1 -1
- package/assets/esri/core/workers/chunks/1c406ab2bf99ac563316.js +1 -0
- package/assets/esri/core/workers/chunks/1d96fbad881a7d14a950.js +1 -0
- package/assets/esri/core/workers/chunks/{42d44c7d532df5ee70e9.js → 1deca3de77b1a9a07da4.js} +1 -1
- package/assets/esri/core/workers/chunks/{45f826554499c38968c6.js → 1ee4df0fd61440cb5f02.js} +1 -1
- package/assets/esri/core/workers/chunks/22e73501e1435a896826.js +1 -0
- package/assets/esri/core/workers/chunks/25657f70c5f04a4ed978.js +1 -0
- package/assets/esri/core/workers/chunks/276a0b549acf048e8673.js +1 -0
- package/assets/esri/core/workers/chunks/{56e903ccef66cbe18f92.js → 2cd60fd062d954322c1f.js} +1 -1
- package/assets/esri/core/workers/chunks/{ad96132bc89671e595f3.js → 2d3e0e4442dbc6ec6def.js} +1 -1
- package/assets/esri/core/workers/chunks/2de4296590bf9f9e9add.js +1 -0
- package/assets/esri/core/workers/chunks/2f5d014d6a72108b0b3a.js +1 -0
- package/assets/esri/core/workers/chunks/{0363d29fc665d169ebc4.js → 3105336a05f38a95ebea.js} +1 -1
- package/assets/esri/core/workers/chunks/379ef56f6b32494832a6.js +1 -0
- package/assets/esri/core/workers/chunks/3aafdb905c697bc9b1ad.js +1 -0
- package/assets/esri/core/workers/chunks/40c2674dae73f0942751.js +1 -0
- package/assets/esri/core/workers/chunks/418addce122dbb8897b4.js +1 -0
- package/assets/esri/core/workers/chunks/4419732baf3459a80e6d.js +1 -0
- package/assets/esri/core/workers/chunks/4976f5567fc7f1b63d10.js +1 -0
- package/assets/esri/core/workers/chunks/4e17665dd9048c300d87.js +1 -0
- package/assets/esri/core/workers/chunks/5396b6e99a0546a25d19.js +1 -0
- package/assets/esri/core/workers/chunks/53c7510df09b71ab5646.js +1 -0
- package/assets/esri/core/workers/chunks/561c48cb4d49b150765b.js +1 -0
- package/assets/esri/core/workers/chunks/{d90a3bfd45b5ed4092e0.js → 590fe0f56bc4c33a50e7.js} +1 -1
- package/assets/esri/core/workers/chunks/5bb6c255bdc8aa9ba23e.js +1 -0
- package/assets/esri/core/workers/chunks/5f1cb79aec9c4a9b7ddc.js +29 -0
- package/assets/esri/core/workers/chunks/{23a4806b4cdf7cc32e4d.js → 5f787809b74eed7b9a91.js} +1 -1
- package/assets/esri/core/workers/chunks/636e9c4ac1f9ae98f9d1.js +1 -0
- package/assets/esri/core/workers/chunks/654f5441227579d2b6b4.js +1 -0
- package/assets/esri/core/workers/chunks/692f0093c444fcc752b5.js +1 -0
- package/assets/esri/core/workers/chunks/69627b2634da64dd885f.js +1 -0
- package/assets/esri/core/workers/chunks/6a7de221cea4426cb490.js +1 -0
- package/assets/esri/core/workers/chunks/7030a4d0714a35995a58.js +1 -0
- package/assets/esri/core/workers/chunks/72d20d3957d612f86431.js +1 -0
- package/assets/esri/core/workers/chunks/7862abd24fb5c3b12e6b.js +1 -0
- package/assets/esri/core/workers/chunks/7a0b4dc0cda190367a39.js +1 -0
- package/assets/esri/core/workers/chunks/{ab1660f5f8a5268c2fac.js → 84038dd85005fea413eb.js} +1 -1
- package/assets/esri/core/workers/chunks/849f446c718e892f39ce.js +1 -0
- package/assets/esri/core/workers/chunks/{8ac2098ecdc40ad41055.js → 8502274806ea52308822.js} +1 -1
- package/assets/esri/core/workers/chunks/865cebc5c982c040ab6f.js +1 -0
- package/assets/esri/core/workers/chunks/{76196c414e48834f7b92.js → 8f008eedb11685ee2048.js} +1 -1
- package/assets/esri/core/workers/chunks/90d797ab82d4a68ba32f.js +1 -0
- package/assets/esri/core/workers/chunks/9184c947cdefe06bf551.js +1 -0
- package/assets/esri/core/workers/chunks/9976eaa81085c0d17e14.js +1 -0
- package/assets/esri/core/workers/chunks/{177f353ce72133e2eeed.js → 9c2436464b7dfd666678.js} +1 -1
- package/assets/esri/core/workers/chunks/a125650edbed802e419a.js +1 -0
- package/assets/esri/core/workers/chunks/{23fd4de56de352f63e2d.js → a2196a49f89d57a0a1c7.js} +1 -1
- package/assets/esri/core/workers/chunks/ad21757d78e372fa2ed6.js +1 -0
- package/assets/esri/core/workers/chunks/b01688ccc29d33bfc82d.js +1 -0
- package/assets/esri/core/workers/chunks/b5eff28cf482d920b9ea.js +1 -0
- package/assets/esri/core/workers/chunks/{04ecf15524ff3838c01c.js → ba4520ddcb6a49988da6.js} +1 -1
- package/assets/esri/core/workers/chunks/be55771758e4bcef0976.js +1 -0
- package/assets/esri/core/workers/chunks/bead830a677690eeb6fb.js +1 -0
- package/assets/esri/core/workers/chunks/c131e0dd180a4c10e12e.js +1 -0
- package/assets/esri/core/workers/chunks/c1cf3edce15f09648eb4.js +1 -0
- package/assets/esri/core/workers/chunks/c4f78a481f43cfae7b63.js +1 -0
- package/assets/esri/core/workers/chunks/c570b90995c65bbb2e14.js +1 -0
- package/assets/esri/core/workers/chunks/c576bef77e34920af188.js +1 -0
- package/assets/esri/core/workers/chunks/c9feffb9884cfed52c4b.js +1 -0
- package/assets/esri/core/workers/chunks/cc97e4fd0dacad970a23.js +1 -0
- package/assets/esri/core/workers/chunks/ce324dde6d7daea33638.js +1 -0
- package/assets/esri/core/workers/chunks/d1d6154b4af1c9cc497b.js +1 -0
- package/assets/esri/core/workers/chunks/d3c3fb079ad97970f834.js +1 -0
- package/assets/esri/core/workers/chunks/daae21cf77864f3293ef.js +1 -0
- package/assets/esri/core/workers/chunks/dc2f93453dfa40f623ab.js +1 -0
- package/assets/esri/core/workers/chunks/dcf6024dc19428ff2b9d.js +1 -0
- package/assets/esri/core/workers/chunks/dd30b02c5978c1c5f511.js +1 -0
- package/assets/esri/core/workers/chunks/de3f140058aa0b907b65.js +1 -0
- package/assets/esri/core/workers/chunks/df375d1b0dab5ecbd1be.js +1 -0
- package/assets/esri/core/workers/chunks/{ef2c3febcceedc44b3ac.js → dfd4782b11d6fdca0492.js} +1 -1
- package/assets/esri/core/workers/chunks/{48cc58890fddbcf69cef.js → e121d15b883184ee83e7.js} +1 -1
- package/assets/esri/core/workers/chunks/{67e06d606c7fd2064adf.js → e2c6cd8dac01e129ccfe.js} +1 -1
- package/assets/esri/core/workers/chunks/e3b212f8af448ec29eef.js +1 -0
- package/assets/esri/core/workers/chunks/e4042e43f0081fe49f7b.js +1 -0
- package/assets/esri/core/workers/chunks/e480e7d5f40049a2053b.js +1 -0
- package/assets/esri/core/workers/chunks/eaab787a5f2445be5e5a.js +1 -0
- package/assets/esri/core/workers/chunks/edd36a1fc80b1d29907e.js +1 -0
- package/assets/esri/core/workers/chunks/ee0dc906cc7979080329.js +1 -0
- package/assets/esri/core/workers/chunks/f07fb9b3fa30d7ee1681.js +1 -0
- package/assets/esri/core/workers/chunks/f09bc86cd52224febfcb.js +1 -0
- package/assets/esri/core/workers/chunks/{037c67ef5c4398d5954d.js → f2dab9fcd90ce38ae3d1.js} +1 -1
- package/assets/esri/core/workers/chunks/f39c700f3db7db52b522.js +1 -0
- package/assets/esri/core/workers/chunks/f3b4159c0722df8ffe13.js +1 -0
- package/assets/esri/core/workers/chunks/f3dc0bc0e00635855a7a.js +1 -0
- package/assets/esri/core/workers/chunks/f45064066e1ab041a0b2.js +1 -0
- package/assets/esri/core/workers/chunks/f7398cfd8bbd041bd635.js +1 -0
- package/assets/esri/core/workers/chunks/f9dc38761b314d33890f.js +1 -0
- package/assets/esri/core/workers/chunks/fe6dcb21570395e46ce8.js +1 -0
- package/assets/esri/core/workers/chunks/{00580a68835aac653038.js → fefdd10bdd5a4c8d8ed0.js} +45 -48
- package/assets/esri/core/workers/chunks/ffe49d9e7df081bef4a5.js +1 -0
- package/assets/esri/themes/base/_core.scss +0 -2
- 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/chunks/BlendLayers.glsl.js +1 -1
- package/chunks/Component.glsl.js +51 -54
- package/chunks/EmissionComposite.glsl.js +1 -1
- package/chunks/Fog.glsl.js +1 -1
- package/chunks/GaussianSplat.glsl.js +65 -21
- package/chunks/GaussianSplatDepth.glsl.js +53 -4
- package/chunks/GaussianSplatShadow.glsl.js +83 -19
- package/chunks/GlobalIllumination.glsl.js +2 -17
- package/chunks/LineMarker.glsl.js +32 -31
- package/chunks/OITAddEmission.glsl.js +1 -1
- package/chunks/RasterColorizer.glsl.js +1 -1
- package/chunks/RibbonLine.glsl.js +34 -34
- package/chunks/Terrain.glsl.js +3 -4
- package/chunks/Water.glsl.js +22 -23
- package/config.d.ts +12 -9
- package/config.js +1 -1
- package/form/FormTemplate.d.ts +1 -1
- package/form/elements/AttachmentElement.d.ts +2 -0
- package/form/elements/FieldElement.d.ts +2 -2
- package/form/elements/FieldElement.js +1 -1
- package/form/elements/RelationshipElement.d.ts +1 -1
- package/form/elements/TextElement.d.ts +2 -2
- package/form/elements/UtilityNetworkAssociationsElement.d.ts +1 -1
- package/form/elements/inputs/DynamicChoiceInput.d.ts +2 -2
- package/form/elements/inputs/inputUtils.js +1 -1
- package/form/elements/inputs/types.d.ts +19 -0
- package/form/elements/inputs.d.ts +3 -2
- package/form/elements/inputs.js +1 -1
- package/geometry/operators/containsOperator.d.ts +1 -1
- package/geometry/operators/densifyOperator.d.ts +1 -1
- package/geometry/operators/differenceOperator.d.ts +6 -4
- package/geometry/operators/distanceOperator.d.ts +1 -1
- package/geometry/operators/geodesicProximityOperator.d.ts +8 -8
- package/geometry/operators/graphicBufferOperator.d.ts +6 -6
- package/geometry/operators/integrateOperator.d.ts +2 -2
- package/geometry/operators/intersectsOperator.d.ts +3 -3
- package/geometry/operators/linesToPolygonsOperator.d.ts +2 -2
- package/geometry/operators/locateBetweenOperator.d.ts +2 -2
- package/geometry/operators/minimumBoundingCircleOperator.d.ts +1 -1
- package/geometry/operators/multiPartToSinglePartOperator.d.ts +2 -2
- package/geometry/operators/polygonSlicerOperator.d.ts +2 -2
- package/geometry/operators/projectOperator.d.ts +2 -2
- package/geometry/operators/proximityOperator.d.ts +15 -15
- package/geometry/operators/shapePreservingProjectOperator.d.ts +2 -2
- package/geometry/operators/simplifyOperator.d.ts +2 -2
- package/geometry/operators/support/GeographicTransformationStep.d.ts +3 -3
- package/geometry/operators/support/Transformation.d.ts +8 -8
- package/geometry/operators/support/geographicTransformationUtils.d.ts +3 -3
- package/geometry/operators/symmetricDifferenceOperator.d.ts +2 -2
- package/geometry/operators/withinOperator.d.ts +3 -3
- package/interfaces.d.ts +0 -14
- package/kernel.js +1 -1
- package/layers/GeospatialPDFLayer.d.ts +2 -2
- package/layers/ParquetLayer.d.ts +1 -1
- package/layers/VideoLayer.d.ts +5 -5
- package/layers/knowledgeGraph/KnowledgeGraphSublayer.js +1 -1
- package/layers/orientedImagery/core/coverageUtils.js +1 -1
- package/layers/orientedImagery/transformations/rotationUtils.js +2 -0
- package/layers/orientedImagery/transformations/utils.js +1 -1
- package/layers/save/parquetLayerUtils.js +1 -1
- package/layers/support/vectorTileLayerLoader.js +1 -1
- package/package.json +2 -2
- package/popup/FeaturesModel.js +1 -1
- package/popup/support/featureUtils.js +1 -1
- package/rest/featureService/FeatureService.d.ts +0 -5
- package/rest/networks/support/TraceLocation.d.ts +2 -1
- package/rest/networks/support/TraceResult.d.ts +0 -4
- package/rest/support/OutDistance.d.ts +0 -1
- package/smartMapping/statistics/histogramForTimeSeries.js +1 -1
- package/smartMapping/statistics/summaryStatisticsForTimeSeries.js +1 -1
- package/smartMapping/support/adapters/support/histogramUtils.js +1 -1
- package/support/BasemapStyle.d.ts +2 -2
- package/symbols/cim/types.d.ts +7 -9
- package/views/2d/engine/vectorTiles/TileHandler.js +1 -1
- package/views/2d/engine/vectorTiles/style/GeoJSONVectorTileSource.js +1 -1
- package/views/2d/engine/vectorTiles/style/GeoJSONVectorTileSourceWorker.js +1 -1
- package/views/2d/engine/vectorTiles/style/geoJSONVectorTileUtils.js +2 -0
- package/views/2d/engine/webgl/animations/instructions.js +1 -1
- package/views/2d/engine/webgl/collisions/LabelMetric.js +1 -1
- package/views/2d/engine/webgl/collisions/LabelStore.js +1 -1
- package/views/2d/layers/VectorTileLayerView2D.js +1 -1
- package/views/2d/layers/features/FeatureContainer.js +1 -1
- package/views/2d/layers/features/schema/processor/symbols/ComplexSymbolSchema.js +1 -1
- package/views/2d/layers/support/visualVariableSimpleUtils.js +1 -1
- package/views/3d/analysis/AreaMeasurement/support/AreaMeasurementPathHelper.js +1 -1
- package/views/3d/analysis/AreaMeasurement/support/MeasurementData.js +1 -1
- package/views/3d/analysis/DirectLineMeasurement/DirectLineMeasurementController.js +1 -1
- package/views/3d/analysis/support/projectionUtils.js +1 -1
- package/views/3d/environment/SunLighting.d.ts +15 -2
- package/views/3d/environment/VirtualLighting.d.ts +15 -2
- package/views/3d/input/SceneInputManager.js +1 -1
- package/views/3d/input/handlers/ground/GroundMouseWheelMove.js +2 -0
- package/views/3d/interactive/editingTools/reshape/ReshapeOperation.js +1 -1
- package/views/3d/interactive/measurementTools/directLineMeasurement3D/DirectLineMeasurement3DTool.js +1 -1
- package/views/3d/interactive/measurementTools/directLineMeasurement3D/DirectLineMeasurement3DView.js +1 -1
- package/views/3d/layers/ImageryTileLayerView3D.js +1 -1
- package/views/3d/layers/support/FeatureTileFetcher3D.js +1 -1
- package/views/3d/navigation/Navigation3D.js +1 -1
- package/views/3d/state/controllers/GroundMouseWheelController.js +2 -0
- package/views/3d/state/controllers/PointToPointAnimationController.js +1 -1
- package/views/3d/state/utils/OffsetCorrectionController.js +1 -1
- package/views/3d/state/utils/groundNavigationUtils.js +1 -1
- package/views/3d/support/ResourceController.js +1 -1
- package/views/3d/terrain/BlendLayers.glsl.js +1 -1
- package/views/3d/terrain/RasterColorizer.glsl.js +1 -1
- package/views/3d/terrain/TerrainRenderer.js +1 -1
- package/views/3d/terrain/TerrainSurface.js +1 -1
- package/views/3d/terrain/TileAgent.js +1 -1
- package/views/3d/terrain/TileCompositor.js +1 -1
- package/views/3d/terrain/TileRenderer.js +1 -1
- package/views/3d/webgl-engine/Stage.js +1 -1
- package/views/3d/webgl-engine/collections/Component/Material/Component.glsl.js +1 -1
- package/views/3d/webgl-engine/core/shaderLibrary/attributes/RibbonVertexPosition.glsl.js +23 -26
- package/views/3d/webgl-engine/core/shaderLibrary/attributes/VertexPosition.glsl.js +18 -21
- package/views/3d/webgl-engine/core/shaderLibrary/attributes/VertexTangent.glsl.js +7 -8
- package/views/3d/webgl-engine/core/shaderLibrary/attributes/VerticalOffset.glsl.js +5 -5
- package/views/3d/webgl-engine/core/shaderLibrary/shading/ComputeFragmentNormals.glsl.js +10 -12
- package/views/3d/webgl-engine/core/shaderLibrary/shading/EvaluateSceneLighting.glsl.js +22 -25
- package/views/3d/webgl-engine/core/shaderLibrary/shading/NormalUtils.glsl.js +3 -5
- package/views/3d/webgl-engine/core/shaderLibrary/shading/forwardLocalUp.glsl.js +6 -0
- package/views/3d/webgl-engine/core/shaderLibrary/shading/getLocalUp.glsl.js +4 -0
- package/views/3d/webgl-engine/core/shaderLibrary/terrain/TerrainTexture.glsl.js +1 -1
- package/views/3d/webgl-engine/core/shaderLibrary/terrain/{TileBackground.glsl.js → blendLayers.glsl.js} +10 -11
- package/views/3d/webgl-engine/core/shaderLibrary/util/GaussianSplatEvaluation.glsl.js +8 -2
- package/views/3d/webgl-engine/core/shaderLibrary/util/cameraUniforms.js +1 -1
- package/views/3d/webgl-engine/effects/RenderPluginContext.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/applyEmissiveGlow.glsl.js +3 -3
- package/views/3d/webgl-engine/effects/highlight/Highlight.js +1 -1
- package/views/3d/webgl-engine/lib/GaussianSplatDepthRenderer.js +1 -1
- package/views/3d/webgl-engine/lib/GaussianSplatRenderer.js +1 -1
- package/views/3d/webgl-engine/lib/Renderer.js +1 -1
- package/views/3d/webgl-engine/lib/edgeRendering/EdgeUtil.glsl.js +30 -35
- package/views/3d/webgl-engine/materials/Water.glsl.js +1 -1
- package/views/3d/webgl-engine/parts/RenderView.js +1 -1
- package/views/3d/webgl-engine/shaders/EmissiveTechniqueConfiguration.js +1 -1
- package/views/3d/webgl-engine/shaders/GaussianSplat.glsl.js +1 -1
- package/views/3d/webgl-engine/shaders/GaussianSplatDepth.glsl.js +1 -1
- package/views/3d/webgl-engine/shaders/GaussianSplatPass.glsl.js +70 -108
- package/views/3d/webgl-engine/shaders/GaussianSplatShadow.glsl.js +1 -1
- package/views/3d/webgl-engine/shaders/GaussianSplatTechniqueConfiguration.js +1 -1
- package/views/3d/webgl-engine/shaders/LineMarker.glsl.js +1 -1
- package/views/3d/webgl-engine/shaders/RibbonLine.glsl.js +1 -1
- package/views/3d/webgl-engine/shaders/Terrain.glsl.js +1 -1
- package/views/VideoView.d.ts +10 -0
- package/views/VideoView.js +1 -1
- package/views/draw/DrawOperation.js +1 -1
- package/views/draw/DrawScreenTool.js +1 -1
- package/views/input/types.d.ts +2 -4
- package/views/interactive/options/LabelOptions.d.ts +5 -5
- package/views/interactive/options/SnappingOptions.d.ts +2 -2
- package/views/layers/LayerView.d.ts +10 -2
- package/widgets/BatchAttributeForm/inputs/FieldInput.d.ts +2 -3
- package/widgets/Editor/EditorViewModel.d.ts +10 -12
- package/widgets/Editor/VisibleElements.d.ts +4 -0
- package/widgets/Editor.d.ts +2 -0
- package/widgets/FeatureTable/FeatureTableViewModel.js +1 -1
- package/widgets/FeatureTable/support/EditableColumnTemplateMixin.js +1 -1
- package/widgets/FeatureTable.js +1 -1
- package/widgets/Features/FeaturesViewModel.js +1 -1
- package/widgets/OrientedImageryViewer/ImageMeasurementWorker.js +1 -1
- package/widgets/OrientedImageryViewer/OrientedImageryViewerViewModel.js +1 -1
- package/widgets/OrientedImageryViewer/adapters/sketch/MeasurementAdapter.js +1 -1
- package/widgets/OrientedImageryViewer/adapters/view/SceneViewAdapter.js +1 -1
- package/widgets/OrientedImageryViewer/imageMeasurementUtils.js +1 -1
- package/widgets/OrientedImageryViewer/imageMeasurementWorkerUtils.js +2 -0
- package/widgets/OrientedImageryViewer/services/ImageMeasurementService.js +1 -1
- package/widgets/OrientedImageryViewer/support/NonPanoramicMedia.js +1 -1
- package/widgets/OrientedImageryViewer/support/dataCaptureUtils.js +1 -1
- package/widgets/OrientedImageryViewer/support/superimposeUtils.js +1 -1
- package/widgets/PanoramicViewer/utils.js +1 -1
- package/widgets/Search/LayerSearchSource.d.ts +1 -1
- package/widgets/Sketch/VisibleElements.d.ts +4 -0
- package/widgets/Sketch.d.ts +2 -0
- package/widgets/support/iconUtils.js +1 -1
- package/assets/esri/core/workers/chunks/010f57ec7fdbedf78d02.js +0 -1
- package/assets/esri/core/workers/chunks/0487e1d7a7cecf7c1c25.js +0 -1
- package/assets/esri/core/workers/chunks/09300e74e5b014ce6269.js +0 -1
- package/assets/esri/core/workers/chunks/0bd04bcd4b2710838d48.js +0 -1
- package/assets/esri/core/workers/chunks/0d9c4c6c571ce26d356b.js +0 -1
- package/assets/esri/core/workers/chunks/112ed86f812e4400a7e0.js +0 -1
- package/assets/esri/core/workers/chunks/151e5799ede763a03ee2.js +0 -1
- package/assets/esri/core/workers/chunks/173f89c55a5c79ff065b.js +0 -1
- package/assets/esri/core/workers/chunks/2447d2e2a4a3ab8fcf94.js +0 -1
- package/assets/esri/core/workers/chunks/2a36fe3f3f257a779a1b.js +0 -1
- package/assets/esri/core/workers/chunks/2a97268000c6d03ef720.js +0 -1
- package/assets/esri/core/workers/chunks/2cf8172be83b10b11bdc.js +0 -1
- package/assets/esri/core/workers/chunks/2df37a9a95ceebb87a5f.js +0 -1
- package/assets/esri/core/workers/chunks/2e00c155e447e4930442.js +0 -1
- package/assets/esri/core/workers/chunks/2f91fd61019d2a37476d.js +0 -1
- package/assets/esri/core/workers/chunks/30af63b3b750142faadb.js +0 -1
- package/assets/esri/core/workers/chunks/3a47fc97c400fca2c736.js +0 -1
- package/assets/esri/core/workers/chunks/3cd04d23b73beaf79650.js +0 -1
- package/assets/esri/core/workers/chunks/426b4eb500fdfe9df325.js +0 -1
- package/assets/esri/core/workers/chunks/45367aa8e5c5d574de94.js +0 -1
- package/assets/esri/core/workers/chunks/47c97640ec525676918b.js +0 -1
- package/assets/esri/core/workers/chunks/47d074136a7f8e551a9a.js +0 -1
- package/assets/esri/core/workers/chunks/4a6b92ecbb1f1c55cc43.js +0 -1
- package/assets/esri/core/workers/chunks/4cb751dc8d00bdaeb04c.js +0 -1
- package/assets/esri/core/workers/chunks/518ab22f80c3300bcfff.js +0 -1
- package/assets/esri/core/workers/chunks/53ff68d4f9e365fc15cd.js +0 -1
- package/assets/esri/core/workers/chunks/58609bf94f72bc4f1952.js +0 -1
- package/assets/esri/core/workers/chunks/586a929bc037e23857af.js +0 -1
- package/assets/esri/core/workers/chunks/5c7780f804d789cb37f5.js +0 -1
- package/assets/esri/core/workers/chunks/5d76f4d97beee494bbbf.js +0 -1
- package/assets/esri/core/workers/chunks/603fdbbe9534c614928f.js +0 -1
- package/assets/esri/core/workers/chunks/611e3cdf67283c11576f.js +0 -1
- package/assets/esri/core/workers/chunks/6431480ba0fa8c8d487f.js +0 -1
- package/assets/esri/core/workers/chunks/652faf4359ac072c5dde.js +0 -1
- package/assets/esri/core/workers/chunks/65c98f3449044fa4fd79.js +0 -1
- package/assets/esri/core/workers/chunks/6b9961261241fdce0e94.js +0 -1
- package/assets/esri/core/workers/chunks/6dfe96b056bec30068df.js +0 -1
- package/assets/esri/core/workers/chunks/6f897b4e7ddd1dd1672b.js +0 -1
- package/assets/esri/core/workers/chunks/70cc2d79653d66e85b58.js +0 -1
- package/assets/esri/core/workers/chunks/7159d9c36869cd82599e.js +0 -29
- package/assets/esri/core/workers/chunks/7393f63043a1da3d05a6.js +0 -1
- package/assets/esri/core/workers/chunks/7449568eb2305bf2d650.js +0 -1
- package/assets/esri/core/workers/chunks/75d551a449bba61ce238.js +0 -1
- package/assets/esri/core/workers/chunks/7748c2886d0122b40eeb.js +0 -1
- package/assets/esri/core/workers/chunks/78643f116677950ea29a.js +0 -1
- package/assets/esri/core/workers/chunks/78fbe330f16bdbdb886e.js +0 -1
- package/assets/esri/core/workers/chunks/7e0f04a5038e2a4f6e4b.js +0 -1
- package/assets/esri/core/workers/chunks/7f16ae01ccd9b6114d1c.js +0 -1
- package/assets/esri/core/workers/chunks/90153b5230b3a4985c14.js +0 -1
- package/assets/esri/core/workers/chunks/9189dfe19a2a2ccd5173.js +0 -1
- package/assets/esri/core/workers/chunks/943a0f140813ee4ab04a.js +0 -1
- package/assets/esri/core/workers/chunks/98be2f621801e230aa01.js +0 -1
- package/assets/esri/core/workers/chunks/99f51d5d9da6e9bfc430.js +0 -1
- package/assets/esri/core/workers/chunks/9aebe876b1a2fb075f9c.js +0 -1
- package/assets/esri/core/workers/chunks/9b6929faf649e81265fb.js +0 -1
- package/assets/esri/core/workers/chunks/9dd1fc56eb1ea6eb705e.js +0 -1
- package/assets/esri/core/workers/chunks/9dd48e75b4e8d9811d81.js +0 -1
- package/assets/esri/core/workers/chunks/a163c6005aba3378edaa.js +0 -1
- package/assets/esri/core/workers/chunks/a8286febe371dc186aaa.js +0 -1
- package/assets/esri/core/workers/chunks/acb265a22be5e12f38e5.js +0 -1
- package/assets/esri/core/workers/chunks/b12acf1f694f82e00df9.js +0 -1
- package/assets/esri/core/workers/chunks/b83cef2d3f528726d492.js +0 -1
- package/assets/esri/core/workers/chunks/b9596d862da1ec342cd3.js +0 -1
- package/assets/esri/core/workers/chunks/bc1fcc9c897461e68e29.js +0 -1
- package/assets/esri/core/workers/chunks/bdc221d94300c225665a.js +0 -1
- package/assets/esri/core/workers/chunks/be97a629e2ae4d13ceb3.js +0 -1
- package/assets/esri/core/workers/chunks/bfb39590c548188f5052.js +0 -1
- package/assets/esri/core/workers/chunks/c2318c014e97ba519be8.js +0 -1
- package/assets/esri/core/workers/chunks/c29091fe157564cffcf7.js +0 -1
- package/assets/esri/core/workers/chunks/c62237c344e341619341.js +0 -1
- package/assets/esri/core/workers/chunks/c8eae00b0ec87d8b2ff3.js +0 -1
- package/assets/esri/core/workers/chunks/cdb5c26fed7d9a97db49.js +0 -1
- package/assets/esri/core/workers/chunks/cdf0c7706d3e1221f49b.js +0 -1
- package/assets/esri/core/workers/chunks/cea0db3ee326f60610eb.js +0 -1
- package/assets/esri/core/workers/chunks/d7f2f1708d2a2668676c.js +0 -1
- package/assets/esri/core/workers/chunks/daf9b691817e83a11f3c.js +0 -1
- package/assets/esri/core/workers/chunks/db41490bd39d863305bf.js +0 -1
- package/assets/esri/core/workers/chunks/ddc95cdac6c06fc4794c.js +0 -1
- package/assets/esri/core/workers/chunks/df26ec0b508cf4716e0a.js +0 -1
- package/assets/esri/core/workers/chunks/e11159e3dc3353b27c57.js +0 -1
- package/assets/esri/core/workers/chunks/e4a57a0a9629faafd6c6.js +0 -1
- package/assets/esri/core/workers/chunks/ebc1a2ef3aed8aa29424.js +0 -1
- package/assets/esri/core/workers/chunks/ec1c4d66142b6efb0e8b.js +0 -1
- package/assets/esri/core/workers/chunks/ef12fa3574d4cbf8b084.js +0 -1
- package/assets/esri/core/workers/chunks/f2d56f5c15d5977e1d19.js +0 -1
- package/assets/esri/core/workers/chunks/f7bfa3d33b05b250ce33.js +0 -1
- package/assets/esri/core/workers/chunks/f905f1a1aa4c123cbe83.js +0 -1
- package/assets/esri/core/workers/chunks/fc139f251dc0523074e7.js +0 -1
- package/assets/esri/themes/base/widgets/_VideoPlayer.scss +0 -129
- package/assets/esri/widgets/VideoPlayer/t9n/messages.ar.json +0 -1
- package/assets/esri/widgets/VideoPlayer/t9n/messages.bg.json +0 -1
- package/assets/esri/widgets/VideoPlayer/t9n/messages.bs.json +0 -1
- package/assets/esri/widgets/VideoPlayer/t9n/messages.ca.json +0 -1
- package/assets/esri/widgets/VideoPlayer/t9n/messages.cs.json +0 -1
- package/assets/esri/widgets/VideoPlayer/t9n/messages.da.json +0 -1
- package/assets/esri/widgets/VideoPlayer/t9n/messages.de.json +0 -1
- package/assets/esri/widgets/VideoPlayer/t9n/messages.el.json +0 -1
- package/assets/esri/widgets/VideoPlayer/t9n/messages.en.json +0 -1
- package/assets/esri/widgets/VideoPlayer/t9n/messages.es.json +0 -1
- package/assets/esri/widgets/VideoPlayer/t9n/messages.et.json +0 -1
- package/assets/esri/widgets/VideoPlayer/t9n/messages.fi.json +0 -1
- package/assets/esri/widgets/VideoPlayer/t9n/messages.fr.json +0 -1
- package/assets/esri/widgets/VideoPlayer/t9n/messages.he.json +0 -1
- package/assets/esri/widgets/VideoPlayer/t9n/messages.hr.json +0 -1
- package/assets/esri/widgets/VideoPlayer/t9n/messages.hu.json +0 -1
- package/assets/esri/widgets/VideoPlayer/t9n/messages.id.json +0 -1
- package/assets/esri/widgets/VideoPlayer/t9n/messages.it.json +0 -1
- package/assets/esri/widgets/VideoPlayer/t9n/messages.ja.json +0 -1
- package/assets/esri/widgets/VideoPlayer/t9n/messages.ko.json +0 -1
- package/assets/esri/widgets/VideoPlayer/t9n/messages.lt.json +0 -1
- package/assets/esri/widgets/VideoPlayer/t9n/messages.lv.json +0 -1
- package/assets/esri/widgets/VideoPlayer/t9n/messages.nl.json +0 -1
- package/assets/esri/widgets/VideoPlayer/t9n/messages.no.json +0 -1
- package/assets/esri/widgets/VideoPlayer/t9n/messages.pl.json +0 -1
- package/assets/esri/widgets/VideoPlayer/t9n/messages.pt-BR.json +0 -1
- package/assets/esri/widgets/VideoPlayer/t9n/messages.pt-PT.json +0 -1
- package/assets/esri/widgets/VideoPlayer/t9n/messages.ro.json +0 -1
- package/assets/esri/widgets/VideoPlayer/t9n/messages.ru.json +0 -1
- package/assets/esri/widgets/VideoPlayer/t9n/messages.sk.json +0 -1
- package/assets/esri/widgets/VideoPlayer/t9n/messages.sl.json +0 -1
- package/assets/esri/widgets/VideoPlayer/t9n/messages.sr.json +0 -1
- package/assets/esri/widgets/VideoPlayer/t9n/messages.sv.json +0 -1
- package/assets/esri/widgets/VideoPlayer/t9n/messages.th.json +0 -1
- package/assets/esri/widgets/VideoPlayer/t9n/messages.tr.json +0 -1
- package/assets/esri/widgets/VideoPlayer/t9n/messages.uk.json +0 -1
- package/assets/esri/widgets/VideoPlayer/t9n/messages.vi.json +0 -1
- package/assets/esri/widgets/VideoPlayer/t9n/messages.zh-CN.json +0 -1
- package/assets/esri/widgets/VideoPlayer/t9n/messages.zh-HK.json +0 -1
- package/assets/esri/widgets/VideoPlayer/t9n/messages.zh-TW.json +0 -1
- package/widgets/VideoPlayer/VideoPlayerViewModel.d.ts +0 -232
- package/widgets/VideoPlayer/VideoPlayerViewModel.js +0 -2
- package/widgets/VideoPlayer/components/MetadataSection.js +0 -2
- package/widgets/VideoPlayer/components/PlayerActionsGroup.js +0 -2
- package/widgets/VideoPlayer/components/PlayerControlsGroup.js +0 -2
- package/widgets/VideoPlayer/components/SettingsButton.js +0 -2
- package/widgets/VideoPlayer/css.js +0 -2
- package/widgets/VideoPlayer.d.ts +0 -119
- package/widgets/VideoPlayer.js +0 -2
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
"use strict";(self.webpackChunkRemoteClient=self.webpackChunkRemoteClient||[]).push([[
|
|
1
|
+
"use strict";(self.webpackChunkRemoteClient=self.webpackChunkRemoteClient||[]).push([[4426],{28491(e,t,r){r.d(t,{b:()=>R});var i=r(32680),n=r(49255),o=r(34711),a=r(71020),s=r(72722),l=r(96336),c=r(53466),u=r(72824),d=r(54154),h=r(9169),f=r(12696),m=r(77695),p=r(68785),v=r(28390),g=r(96777),x=r(62602),_=r(20598),b=r(22393),y=r(59469),w=r(56529),M=r(51406),T=r(89435),S=r(58614),C=r(20693),A=r(33079),E=r(31821),I=r(63761),O=r(24111),P=r(84368),D=r(14113);function R(e){let t=new D.N5,{attributes:r,vertex:R,fragment:F,varyings:B}=t,{output:N,normalType:z,offsetBackfaces:L,snowCover:H,pbrMode:V,textureAlphaPremultiplied:U,instancedDoublePrecision:j,hasVertexColors:k,hasVertexTangents:G,hasColorTexture:W,hasNormalTexture:Z,hasNormalTextureTransform:$,hasColorTextureTransform:q}=e;if((0,C.N)(R,e),r.add("position","vec3"),R.inputs.add("position",()=>"position"),B.add("vpos","vec3",{invariant:!0}),t.include(T.A,e),t.include(s.B,e),t.include(d.Ge,e),t.include(M.q2,e),!(0,n._o)(N))return t.include(h.E,e),t;t.include(M.Sx,e),t.include(M.MU,e),t.include(M.O1,e),t.include(M.QM,e),(0,C.y)(R,e),t.include(l.Y,e),t.include(a.d);let Y=0===z||1===z;return Y&&L&&t.include(i.M),t.include(m.J,e),t.include(u.Mh,e),B.add("vPositionLocal","vec3"),t.include(c.U,e),t.include(f.F,e),t.include(j?w.oD:w.rA,e),R.main.add(E.H`
|
|
2
2
|
forwardDefaultMaterialExternalColor();
|
|
3
3
|
|
|
4
4
|
vpos = getVertexInLocalOriginSpace();
|
|
@@ -46,7 +46,7 @@
|
|
|
46
46
|
);
|
|
47
47
|
float opacity_ = getDefaultMaterialOpacity(texColor.a);
|
|
48
48
|
|
|
49
|
-
${
|
|
49
|
+
${Z?`mat3 tangentSpace = computeTangentSpace(${G?"normal":"normal, vpos, vuv0"});\n vec3 shadingNormal = computeTextureNormal(tangentSpace, ${$?"normalUV":"vuv0"});`:"vec3 shadingNormal = normal;"}
|
|
50
50
|
|
|
51
51
|
${(0,E.If)(H,E.H`
|
|
52
52
|
float snow = applySnow(normal, upNormal, albedo, ssao);
|
|
@@ -220,7 +220,7 @@ return fallOffFunction(vv, vn, 0.1);
|
|
|
220
220
|
vec2 uvOffset = uv + rf * blurSize;
|
|
221
221
|
blurFunction(uvOffset, rf, center_d, sharpness, w_total, b);
|
|
222
222
|
}
|
|
223
|
-
fragBlur = b / w_total;`),e}const h=Object.freeze(Object.defineProperty({__proto__:null,build:d},Symbol.toStringTag,{value:"Module"}));r.d(t,["S",0,h])},43609(e,t,r){r.d(t,{a:()=>o,f:()=>a,n:()=>n});var i=r(34275);function n(e,t){o(e.typedBuffer,t.typedBuffer,e.typedBufferStride,t.typedBufferStride)}function o(e,t,r=2,n=r){let o=t.length/2,a=0,s=0;if(!(0,i.iu)(t)||(0,i.dk)(t)){for(let i=0;i<o;++i)e[a]=t[s],e[a+1]=t[s+1],a+=r,s+=n;return}let l=(0,i.a3)(t);if((0,i.JI)(t))for(let i=0;i<o;++i)e[a]=Math.max(t[s]/l,-1),e[a+1]=Math.max(t[s+1]/l,-1),a+=r,s+=n;else for(let i=0;i<o;++i)e[a]=t[s]/l,e[a+1]=t[s+1]/l,a+=r,s+=n}function a(e,t,r,i){let n=e.typedBuffer,o=e.typedBufferStride,a=i?.count??e.count,s=(i?.dstIndex??0)*o;for(let e=0;e<a;++e)n[s]=t,n[s+1]=r,s+=o}Object.freeze(Object.defineProperty({__proto__:null,fill:a,normalizeIntegerBuffer:o,normalizeIntegerBufferView:n},Symbol.toStringTag,{value:"Module"}))},73354(e,t,r){r.d(t,{a:()=>d,b:()=>s,c:()=>n,d:()=>a,e:()=>h,f:()=>u,l:()=>c,n:()=>f,t:()=>o}),r(44208);var i=r(72727);function n(e,t,r){o(e.typedBuffer,t.typedBuffer,r,e.typedBufferStride,t.typedBufferStride)}function o(e,t,r,n=3,o=n){let a=(0,i.k)(e.length,n,3),s=(0,i.k)(t.length,o,3),l=Math.min(a,s),c=r[0],u=r[1],d=r[2],h=r[4],f=r[5],m=r[6],p=r[8],v=r[9],g=r[10],x=r[12],_=r[13],b=r[14],y=0,w=0;for(let r=0;r<l;r++){let r=t[y],i=t[y+1],a=t[y+2];e[w]=c*r+h*i+p*a+x,e[w+1]=u*r+f*i+v*a+_,e[w+2]=d*r+m*i+g*a+b,y+=o,w+=n}return e}function a(e,t,r){s(e.typedBuffer,t.typedBuffer,r,e.typedBufferStride,t.typedBufferStride)}function s(e,t,r,n=3,o=n){let a=(0,i.k)(e.length,n,3),s=(0,i.k)(t.length,o,3),l=Math.min(a,s),c=r[0],u=r[1],d=r[2],h=r[3],f=r[4],m=r[5],p=r[6],v=r[7],g=r[8],x=0,_=0;for(let r=0;r<l;r++){let r=t[x],i=t[x+1],a=t[x+2];e[_]=c*r+h*i+p*a,e[_+1]=u*r+f*i+v*a,e[_+2]=d*r+m*i+g*a,x+=o,_+=n}}function l(e,t,r,i=3,n=i){let o=Math.min(e.length/i,t.length/n),a=0,s=0;for(let l=0;l<o;l++)e[s]=r*t[a],e[s+1]=r*t[a+1],e[s+2]=r*t[a+2],a+=n,s+=i;return e}function c(e,t,r,i){u(e.typedBuffer,t.typedBuffer,r,i,e.typedBufferStride,t.typedBufferStride)}function u(e,t,r,i,n=3,o=n){let a=Math.min(e.length/n,t.length/o),s=0,l=0,c=1/2.2;for(let u=0;u<a;u++)e[l]=i*(r*t[s])**c,e[l+1]=i*(r*t[s+1])**c,e[l+2]=i*(r*t[s+2])**c,s+=o,l+=n}function d(e,t,r,n=3,o=n){let a=(0,i.k)(e.length,n,3),s=(0,i.k)(t.length,o,3),l=Math.min(a,s),c=0,u=0;for(let i=0;i<l;i++)e[u]=t[c]+r[0],e[u+1]=t[c+1]+r[1],e[u+2]=t[c+2]+r[2],c+=o,u+=n;return e}function h(e,t){f(e.typedBuffer,t.typedBuffer,e.typedBufferStride,t.typedBufferStride)}function f(e,t,r=3,i=r){let n=Math.min(e.length/r,t.length/i),o=0,a=0;for(let s=0;s<n;s++){let n=t[o],s=t[o+1],l=t[o+2],c=n*n+s*s+l*l;if(c>0){let t=1/Math.sqrt(c);e[a]=t*n,e[a+1]=t*s,e[a+2]=t*l}o+=i,a+=r}}Object.freeze(Object.defineProperty({__proto__:null,linearToSRGB:u,linearToSRGBView:c,normalize:f,normalizeView:h,scale:l,scaleView:function(e,t,r){l(e.typedBuffer,t.typedBuffer,r,e.typedBufferStride,t.typedBufferStride)},shiftRight:function(e,t,r){let i=Math.min(e.count,t.count),n=e.typedBuffer,o=e.typedBufferStride,a=t.typedBuffer,s=t.typedBufferStride,l=0,c=0;for(let e=0;e<i;e++)n[c]=a[l]>>r,n[c+1]=a[l+1]>>r,n[c+2]=a[l+2]>>r,l+=s,c+=o},transformMat3:s,transformMat3View:a,transformMat4:o,transformMat4View:n,translate:d},Symbol.toStringTag,{value:"Module"}))},50867(e,t,r){r.d(t,{a:()=>n,b:()=>c,l:()=>l,n:()=>a,t:()=>o}),r(44208);var i=r(72727);function n(e,t,r){o(e.typedBuffer,t.typedBuffer,r,e.typedBufferStride,t.typedBufferStride)}function o(e,t,r,n=4,o=n){let a=(0,i.k)(e.length,n,4),s=(0,i.k)(t.length,o,4),l=Math.min(a,s),c=r[0],u=r[1],d=r[2],h=r[3],f=r[4],m=r[5],p=r[6],v=r[7],g=r[8],x=0,_=0;for(let r=0;r<l;r++){let r=t[x],i=t[x+1],a=t[x+2],s=t[x+3];e[_]=c*r+h*i+p*a,e[_+1]=u*r+f*i+v*a,e[_+2]=d*r+m*i+g*a,e[_+3]=s,x+=o,_+=n}}function a(e,t){let r=Math.min(e.count,t.count),i=e.typedBuffer,n=e.typedBufferStride,o=t.typedBuffer,a=t.typedBufferStride;for(let e=0;e<r;e++){let t=e*n,r=e*a,s=o[r],l=o[r+1],c=o[r+2],u=s*s+l*l+c*c;if(u>0){let e=1/Math.sqrt(u);i[t]=e*s,i[t+1]=e*l,i[t+2]=e*c}}}function s(e,t,r,i=4){let n=Math.min(e.length/i,t.count),o=t.typedBuffer,a=t.typedBufferStride,s=0,l=0;for(let t=0;t<n;t++)e[l]=r*o[s],e[l+1]=r*o[s+1],e[l+2]=r*o[s+2],e[l+3]=r*o[s+3],s+=a,l+=i}function l(e,t,r,i){c(e.typedBuffer,t,r,i,e.typedBufferStride)}function c(e,t,r,i,n=4){let o=Math.min(e.length/n,t.count),a=t.typedBuffer,s=t.typedBufferStride,l=0,c=0,u=1/2.2;for(let t=0;t<o;t++)e[c]=i*(r*a[l])**u,e[c+1]=i*(r*a[l+1])**u,e[c+2]=i*(r*a[l+2])**u,e[c+3]=i*r*a[l+3],l+=s,c+=n}Object.freeze(Object.defineProperty({__proto__:null,linearToSRGB:c,linearToSRGBView:l,normalize:a,scale:s,scaleView:function(e,t,r){s(e.typedBuffer,t,r,e.typedBufferStride)},transformMat3:o,transformMat3View:n,transformMat4:function(e,t,r,n=4,o=n){let a=(0,i.k)(e.length,n,4),s=(0,i.k)(t.length,o,4),l=Math.min(a,s),c=r[0],u=r[1],d=r[2],h=r[3],f=r[4],m=r[5],p=r[6],v=r[7],g=r[8],x=r[9],_=r[10],b=r[11],y=r[12],w=r[13],M=r[14],T=r[15],S=0,C=0;for(let r=0;r<l;r++){let r=t[S],i=t[S+1],a=t[S+2],s=t[S+3];e[C]=c*r+f*i+g*a+y*s,e[C+1]=u*r+m*i+x*a+w*s,e[C+2]=d*r+p*i+_*a+M*s,e[C+3]=h*r+v*i+b*a+T*s,S+=o,C+=n}},transformMat4View:function(e,t,r){let n=e.typedBuffer,o=e.typedBufferStride,a=t.typedBuffer,s=t.typedBufferStride,l=(0,i.k)(n.length,o,4),c=(0,i.k)(a.length,s,4),u=Math.min(l,c),d=r[0],h=r[1],f=r[2],m=r[3],p=r[4],v=r[5],g=r[6],x=r[7],_=r[8],b=r[9],y=r[10],w=r[11],M=r[12],T=r[13],S=r[14],C=r[15];for(let e=0;e<u;e++){let t=e*o,r=e*s,i=a[r],l=a[r+1],c=a[r+2],u=a[r+3];n[t]=d*i+p*l+_*c+M*u,n[t+1]=h*i+v*l+b*c+T*u,n[t+2]=f*i+g*l+y*c+S*u,n[t+3]=m*i+x*l+w*c+C*u}}},Symbol.toStringTag,{value:"Module"}))},69052(e,t,r){r.d(t,{hr:()=>n});var i=r(34727);class n{constructor(e,t){this.min=e,this.max=t,this.range=t-e}normalize(e,t=0,r=!1){return o(this.range,this.min,this.max,e,t,r)}clamp(e,t=0){return(0,i.qE)(e-t,this.min,this.max)+t}monotonic(e,t,r){return e<t?t:t+a(this.range,e-t,r)}minimalMonotonic(e,t,r){return o(this.range,e,e+this.range,t,r)}center(e,t,r){return t=this.monotonic(e,t,r),this.normalize((e+t)/2,r)}diff(e,t,r){return this.monotonic(e,t,r)-e}shortestSignedDiff(e,t){e=this.normalize(e);let r=(t=this.normalize(t))-e,i=t<e?this.minimalMonotonic(e,t)-e:t-this.minimalMonotonic(t,e);return Math.abs(r)<Math.abs(i)?r:i}contains(e,t,r){return t=this.minimalMonotonic(e,t),(r=this.minimalMonotonic(e,r))>e&&r<t}}function o(e,t,r,i,n=0,o=!1){return(i-=n)<t?i+=a(e,t-i):i>r&&(i-=a(e,i-r)),o&&i===r&&(i=t),i+n}function a(e,t,r=0){return Math.ceil((t-r)/e)*e+r}const s=new n(0,2*Math.PI),l=(new n(-Math.PI,Math.PI),new n(0,360));r.d(t,["ie",0,l,"uC",0,s])},46140(e,t,r){r.d(t,{A:()=>n});var i=r(49186);class n{constructor(e,t,r=""){this.major=e,this.minor=t,this._context=r}lessThan(e,t){return this.major<e||e===this.major&&this.minor<t}greaterEqual(e,t){return!this.lessThan(e,t)}toString(){return`${this.major}.${this.minor}`}validate(e){if(this.major!==e.major){let t=this._context&&this._context+":",r=this._context&&this._context+" ";throw new i.A(t+"unsupported-version",`Required major ${r}version is '${this.major}', but got '\${version.major}.\${version.minor}'`,{version:e})}}clone(){return new n(this.major,this.minor,this._context)}static parse(e,t=""){let[r,o]=e.split("."),a=/^\s*\d+\s*$/;if(!r?.match||!a.test(r)){let r=t&&t+":";throw new i.A(r+"invalid-version","Expected major version to be a number, but got '${version}'",{version:e})}if(!o?.match||!a.test(o)){let r=t&&t+":";throw new i.A(r+"invalid-version","Expected minor version to be a number, but got '${version}'",{version:e})}return new n(parseInt(r,10),parseInt(o,10),t)}}},61473(e,t,r){function i(e){return e||=globalThis.location.hostname,c.some(t=>null!=e?.match(t))}function n(e,t){return e?(t||=globalThis.location.hostname,t?null!=t.match(o)||null!=t.match(s)?e.replace("static.arcgis.com","staticdev.arcgis.com"):null!=t.match(a)||null!=t.match(l)?e.replace("static.arcgis.com","staticqa.arcgis.com"):e:e):null}r.d(t,{EM:()=>n,b5:()=>i});const o=/^devext\.arcgis\.com$/,a=/^qaext\.arcgis\.com$/,s=/^[\w-]*\.mapsdevext\.arcgis\.com$/,l=/^[\w-]*\.mapsqa\.arcgis\.com$/,c=[/^([\w-]*\.)?[\w-]*\.zrh-dev-local\.esri\.com$/,o,a,/^jsapps\.esri\.com$/,s,l]},18370(e,t,r){r.d(t,{z:()=>n});class i{constructor(e){this._import=e,this.module=null,this._promise=null}getImportPromise(){return this._promise??=this._import().then(async e=>(this.module=e,e)),this._promise}}function n(e){return new i(e)}},88340(e,t,r){function i(){return new Float32Array(2)}function n(e,t){let r=new Float32Array(2);return r[0]=e,r[1]=t,r}function o(){return i()}function a(){return n(1,1)}function s(){return n(1,0)}function l(){return n(0,1)}r.d(t,{fA:()=>n,vt:()=>i});const c=o(),u=a(),d=s(),h=l();Object.freeze(Object.defineProperty({__proto__:null,ONES:u,UNIT_X:d,UNIT_Y:h,ZEROS:c,clone:function(e){let t=new Float32Array(2);return t[0]=e[0],t[1]=e[1],t},create:i,fromValues:n,ones:a,unitX:s,unitY:l,zeros:o},Symbol.toStringTag,{value:"Module"})),r.d(t,["Un",0,u,"uY",0,c])},69397(e,t,r){r.d(t,{Qf:()=>l,Qh:()=>a,lM:()=>o,ro:()=>c,rq:()=>u});var i=r(44208),n=r(34275);function o(e){if(!e)return 0;let t=d;for(let r in e)e.hasOwnProperty(r)&&(t+=s(e[r],!1));return t}function a(e){if(!e)return 0;if("number"==typeof e[0])return l(e);if(Array.isArray(e))return function(e){let t=e.length;if(0===t||"number"==typeof e[0])return u(e,8);let r=h;for(let i=0;i<t;i++)r+=s(e[i]);return r}(e);let t=d;for(let r in e)e.hasOwnProperty(r)&&(t+=s(e[r]));return t}function s(e,t=!0){switch(typeof e){case"object":return t?a(e):d;case"string":return function(e){return 32+e.length}(e);case"number":return 16;case"boolean":return 4;default:return 8}}function l(...e){return e.reduce((e,t)=>e+c(t),0)}function c(e,t=16){return e?(0,n.iu)(e)?e.byteLength+m:Array.isArray(e)?u(e,t):0:0}function u(e,t){return h+e.length*t}const d=32,h=16,f=(0,i.A)("ios")||!(0,i.A)("chrome")&&!(0,i.A)("opr")?8:4,m=145;r.d(t,["JY",0,f])},65806(e,t,r){r.d(t,{g:()=>a});var i=r(51850),n=r(99917),o=r(9762);function a(e,t,r,i){if((0,n.canProjectWithoutEngine)(e.spatialReference,r))return s[0]=e.x,s[1]=e.y,s[2]=e.z??0,(0,o.projectBuffer)(s,e.spatialReference,0,t,r,0);let a=(0,n.tryProject)(e,r,i);return!!a&&(t[0]=a.x,t[1]=a.y,t[2]=a.z??0,!0)}const s=(0,i.vt)()},27993(e,t,r){r.d(t,{F:()=>s});var i=r(99917),n=r(16930),o=r(9762),a=r(65806);function s(e,t,r,n){return!(null==t||null==n||e.length<2)&&((0,i.canProjectWithoutEngine)(t,n)?(0,o.projectBuffer)(e,t,0,r,n,0,1):(l.x=e[0],l.y=e[1],l.z=e[2],l.spatialReference=t,(0,a.g)(l,r,n)))}const l={x:0,y:0,z:0,hasZ:!0,hasM:!1,spatialReference:n.A.WGS84,type:"point"}},97146(e,t,r){r.d(t,{Dg:()=>o,lC:()=>s,lc:()=>h,my:()=>a,tM:()=>f,uW:()=>n});var i=r(34275);function n(e){return o(e,!0)}function o(e,t){if(Array.isArray(e)){if(e.length<1024)return e}else if(e.length<1024)return Array.from(e);let r=!0,n=!0;return e.some((e,t)=>(r&&=0===e,n&&=e===t,!r&&!n)),r?function(e){if(1===e)return u;if(e<1024)return Array(e).fill(0);if(e>c.length){let t=Math.max(2*c.length,e);c=new Uint8Array(t)}return new Uint8Array(c.buffer,0,e)}(e.length):n?f(e.length):(0,i.iu)(e)&&e.BYTES_PER_ELEMENT===Uint16Array.BYTES_PER_ELEMENT?e:function(e,t){for(let r of e){if(r>=65536)return(0,i.iu)(e)?e:new Uint32Array(e);r>=256&&(t=!1)}return t?new Uint8Array(e):new Uint16Array(e)}(e,!t)}function a(e,t=e){return e<=1024?Array(e):t<=65536?new Uint16Array(e):new Uint32Array(e)}function s(e,t,r){if(0===t.length)return e.slice();if(0===e.length)return t.slice();let i=a(e.length+t.length,r);for(let t=0;t<e.length;++t)i[t]=e[t];for(let r=0;r<t.length;++r)i[e.length+r]=t[r];return i}let l=m(131072),c=new Uint8Array(65536);const u=[0],d=(()=>{let e=new Uint16Array(65536);for(let t=0;t<e.length;++t)e[t]=t;return e})();function h(e){if(e===u)return!0;if(!(0,i.iu)(e))return!1;let{buffer:t}=e;return t===d.buffer||t===l.buffer||t===c.buffer}function f(e){return 1===e?u:e<1024?function(e){let t=Array(e).fill(0);for(let r=0;r<e;r++)t[r]=r;return t}(e):e<d.length?new Uint16Array(d.buffer,0,e):(e>l.length&&(l=m(Math.max(2*l.length,e))),new Uint32Array(l.buffer,0,e))}function m(e){let t=new Uint32Array(e);for(let e=0;e<t.length;e++)t[e]=e;return t}},72727(e,t,r){function i(e,t,r){if(t<=0)return 0;let i=e-r;return i<0?0:Math.floor(i/t)+1}r.d(t,{k:()=>i}),r(53966)},65720(e,t,r){r.d(t,{C:()=>g,vt:()=>p,Qy:()=>v,ui:()=>x,ST:()=>T,bU:()=>C,pw:()=>M,m7:()=>_,ZU:()=>b,GH:()=>w,Pi:()=>y,LJ:()=>S,c8:()=>I});var i=r(4341),n=r(58083),o=r(35522),a=r(51850),s=r(78955),l=r(91829),c=r(70328),u=r(71351);function d(e){return e?{ray:(0,u.vt)(e.ray),c0:e.c0,c1:e.c1}:{ray:(0,u.vt)(),c0:0,c1:Number.MAX_VALUE}}new i.I(()=>d());var h=r(27921);function f(e,t,r,i){let{t0:n,t1:o}=i,a=(0,h.mN)(e,t),s=(0,h.mN)(e,r);if(a>=0&&s>=0)return!1;if(a<0&&s>=0){let e=-a/(s-a);if(e<n)return!1;e<o&&(o=e)}else if(a>=0&&s<0){let e=a/(a-s);if(e>o)return!1;e>n&&(n=e)}return i.t0=n,i.t1=o,!0}var m=r(32114);function p(e){return e?[(0,h.vt)(e[0]),(0,h.vt)(e[1]),(0,h.vt)(e[2]),(0,h.vt)(e[3]),(0,h.vt)(e[4]),(0,h.vt)(e[5])]:[(0,h.vt)(),(0,h.vt)(),(0,h.vt)(),(0,h.vt)(),(0,h.vt)(),(0,h.vt)()]}function v(){return[(0,a.vt)(),(0,a.vt)(),(0,a.vt)(),(0,a.vt)(),(0,a.vt)(),(0,a.vt)(),(0,a.vt)(),(0,a.vt)()]}function g(e,t){for(let r=0;r<O;r++)(0,h.C)(e[r],t[r]);return e}function x(e,t,r,i=F){let a=(0,n.lw)(m.Rc.get(),t,e);(0,n.B8)(a,a);for(let e=0;e<P;++e){let t=(0,s.Z0)(m.Km.get(),D[e],a);(0,o.hZ)(i[e],t[0]/t[3],t[1]/t[3],t[2]/t[3])}!function(e,t){(0,h.Cr)(t[4],t[0],t[3],e[0]),(0,h.Cr)(t[1],t[5],t[6],e[1]),(0,h.Cr)(t[4],t[5],t[1],e[2]),(0,h.Cr)(t[3],t[2],t[6],e[3]),(0,h.Cr)(t[0],t[1],t[2],e[4]),(0,h.Cr)(t[5],t[4],t[7],e[5])}(r,i)}function _(e,t){return b(e,t.center,t.radius)}function b(e,t,r){for(let i=0;i<O;i++){let n=e[i];if(n[0]*t[0]+n[1]*t[1]+n[2]*t[2]+n[3]>=r)return!1}return!0}function y(e,t,r){for(let i of E)if((0,h.wE)(e[i],t,r))return!0;return!1}function w(e,t,r){let i=(0,c.gX)(t,B),n=(0,c.VL)(t)/2,a=(0,c.yr)(t)/2,s=(0,c.uJ)(t)/2;return r?function(e,t,r,i,n,a){let s=(0,o.Z0)(N,t,a);for(let t=0;t<O;t++){let o=e[t];if(o[0]*s[0]+o[1]*s[1]+o[2]*s[2]+o[3]-(Math.abs(o[0]*a[0]+o[1]*a[1]+o[2]*a[2])*r+Math.abs(o[0]*a[4]+o[1]*a[5]+o[2]*a[6])*i+Math.abs(o[0]*a[8]+o[1]*a[9]+o[2]*a[10])*n)>0)return!1}return!0}(e,i,n,a,s,r):function(e,t,r,i,n){for(let o=0;o<O;o++){let a=e[o];if(a[0]*t[0]+a[1]*t[1]+a[2]*t[2]+a[3]-(Math.abs(a[0])*r+Math.abs(a[1])*i+Math.abs(a[2])*n)>0)return!1}return!0}(e,i,n,a,s)}function M(e,t){return A(e,function(e,t=d()){return(0,u.C)(e,t.ray),t.c0=0,t.c1=Number.MAX_VALUE,t}(t,R.get()))}function T(e,t,r){return A(e,function(e,t,r=d()){let i=(0,o.Bw)(e.vector);return(0,u.fA)(e.origin,t,r.ray),r.c0=0,r.c1=i,r}(t,r,R.get()))}function S(e,t,r){return function(e,t,r,i){let n={t0:0,t1:1};for(let o of t)if(!f(e[o],r,i,n))return!1;return n.t0<n.t1}(e,E,t,r)}function C(e,t){for(let r=0;r<O;r++)if((0,h.mN)(e[r],t)>0)return!1;return!0}function A(e,t){for(let r=0;r<O;r++)if(!(0,h.$Q)(e[r],t))return!1;return!0}const E=[0,1,2,3,5],I={bottom:[5,1,0,4],near:[0,1,2,3],far:[5,4,7,6],right:[1,5,6,2],left:[4,0,3,7],top:[7,3,2,6]},O=6,P=8,D=[(0,l.fA)(-1,-1,-1,1),(0,l.fA)(1,-1,-1,1),(0,l.fA)(1,1,-1,1),(0,l.fA)(-1,1,-1,1),(0,l.fA)(-1,-1,1,1),(0,l.fA)(1,-1,1,1),(0,l.fA)(1,1,1,1),(0,l.fA)(-1,1,1,1)],R=new i.I(d),F=v(),B=(0,a.vt)(),N=(0,a.vt)()},52039(e,t,r){r.d(t,{O7:()=>h,el:()=>c});var i=r(69052),n=(r(49186),r(18370)),o=r(17676),a=(r(5443),r(39829)),s=(r(82799),r(16930)),l=(r(80754),r(21325));async function c(e,t,r){Array.isArray(e)||(e=[e]),"object"==typeof t&&t&&"authMode"in t&&(r=t);let i=null;for(let t of e)i??=t?.spatialReference;if(!i)return e;let n=(0,l.Vp)(i);if(!n)return e;if(1===e.length&&"extent"===e[0]?.type){let t=e[0].clone().normalizeAsSingleGeometry(n);return["xmin"in t?t:new a.A(t)]}let[s,c]=n.valid,h=!1;for(let t of e){if(!t)continue;if("point"===t.type){h||=t.x>=c,h||=t.x<=s;continue}let{extent:e}=t;if(null==e){h=!0;break}h||=e.xmin>=c,h||=e.xmin<=s,h||=e.xmax>=c,h||=e.xmax<=s}if(!h)return e;let[{foldInto360Range:f},m]=await(0,o.qr)(Promise.all([u.getImportPromise(),d.getImportPromise()]),r),p=m.fromSpatialReference(i);return e.map(e=>{if(null==e||"mesh"===e.type)return e;let t=m.fromGeometry(e),r=m.toGeometry(f(t,p),i);return"extent"===e.type&&1===r?.rings.length?r.extent:r})}const u=(0,n.z)(()=>r.e(4144).then(()=>r(4144)).then(e=>e.load().then(()=>e))),d=(0,n.z)(()=>Promise.all([r.e(9187),r.e(8885),r.e(9117),r.e(3299),r.e(1550)]).then(()=>r(78125)));function h(e,t,r){let i=(0,l.Vp)(r);if(null==i)return e;let[n,o]=i.valid,a=2*o,s=0,c=0;t>o?s=Math.ceil(Math.abs(t-o)/a):t<n&&(s=-Math.ceil(Math.abs(t-n)/a)),e>o?c=Math.ceil(Math.abs(e-o)/a):e<n&&(c=-Math.ceil(Math.abs(e-n)/a));let u=e+(s-c)*a,d=u-t;return d>o?u-=a:d<n&&(u+=a),u}function f(e){let t=(0,l.Vp)(e);if(null==t)return null;let[r,n]=t.valid;return new i.hr(r,n)}const m=f(s.A.WGS84);f(s.A.WebMercator),r.d(t,["Y_",0,m])},48295(e,t,r){r.d(t,{BU:()=>u,Ui:()=>s,cq:()=>c,k3:()=>d,rb:()=>h});var i=r(4341),n=r(35522),o=r(51850),a=r(11964);function s(e,t,r){let{direction:i,origin:o}=t,{p0:a,p1:s,p2:l}=e,c=s[0]-a[0],u=s[1]-a[1],d=s[2]-a[2],h=l[0]-a[0],f=l[1]-a[1],m=l[2]-a[2],p=i[1]*m-f*i[2],v=i[2]*h-m*i[0],g=i[0]*f-h*i[1],x=c*p+u*v+d*g;if(x>-1e-5&&x<1e-5)return!1;let _=1/x,b=o[0]-a[0],y=o[1]-a[1],w=o[2]-a[2],M=_*(b*p+y*v+w*g);if(M<0||M>1)return!1;let T=y*d-u*w,S=w*c-d*b,C=b*u-c*y,A=_*(i[0]*T+i[1]*S+i[2]*C);if(A<0||M+A>1)return!1;if(r){let e=_*(h*T+f*S+m*C);(0,n.hs)(r,i,e),(0,n.WQ)(r,o,r)}return!0}function l(e,t,r){let[i,n]=e,[o,a]=t,[s,l]=r;return.5*((o-i)*(l-n)-(a-n)*(s-i))}function c(e,t,r,i,n=0){let o=l(i,e,t),a=l(i,t,r),s=l(i,r,e);return!((o<-n||a<-n||s<-n)&&(o>n||a>n||s>n))}function u(e,t,r){return(0,n.Re)(f,t,e),(0,n.Re)(m,r,e),.5*(0,n.Bw)((0,n.$A)(f,f,m))}function d(e,t,r,i,o){(0,n.jb)(f,i,r),(0,n.jb)(p,o,r),(0,n.jb)(m,t,r);let a=(0,n.Om)(f,m),s=(0,n.Om)(p,m);if(a<=0&&s<=0)return void(0,n.C)(e,r);(0,n.jb)(m,t,i);let l=(0,n.Om)(f,m),c=(0,n.Om)(p,m);if(l>=0&&c<=l)return void(0,n.C)(e,i);let u=a*c-l*s;if(u<=0&&a>=0&&l<=0)return void(0,n.Ln)(e,r,f,a/(a-l));(0,n.jb)(m,t,o);let d=(0,n.Om)(f,m),h=(0,n.Om)(p,m);if(h>=0&&d<=h)return void(0,n.C)(e,o);let v=d*s-a*h;if(v<=0&&s>=0&&h<=0)return void(0,n.Ln)(e,r,p,s/(s-h));let g=l*h-d*c;if(g<=0&&c-l>=0&&d-h>=0)return(0,n.jb)(m,o,i),void(0,n.Ln)(e,i,m,(c-l)/(c-l+(d-h)));let x=1/(g+v+u);(0,n.C)(e,r),(0,n.Ln)(e,e,f,v*x),(0,n.Ln)(e,e,p,u*x)}function h(e,t,r,i){(0,n.jb)(f,r,t),(0,n.jb)(m,i,t),(0,n.$A)(e,f,m);let o=(0,n.Bw)(e);return 0!==o&&((0,n.hs)(e,e,1/o),!0)}r(32114),new i.I(a.vt),new i.I(()=>{return e?{p0:(0,o.o8)(e.p0),p1:(0,o.o8)(e.p1),p2:(0,o.o8)(e.p2)}:{p0:(0,o.vt)(),p1:(0,o.vt)(),p2:(0,o.vt)()};var e});const f=(0,o.vt)(),m=(0,o.vt)(),p=(0,o.vt)()},21015(e,t,r){r.d(t,{R:()=>l});var i=r(56507),n=r(60999),o=r(49186),a=r(17676),s=r(84952);class l{constructor(e=e=>e){this._resolveURI=e}async loadJSON(e,t){return this._load("json",e,t)}async loadBinary(e,t){return(0,s.DB)(e)?((0,a.Te)(t),(0,s.lJ)(e)):this._load("array-buffer",e,t)}async loadImage(e,t){return this._load("image",e,t)}async _load(e,t,r){t=this._resolveURI(t);let s=await(0,n.Ke)((0,i.A)(t,{responseType:e,...r}));if(s.ok)return s.value.data;throw(0,a.QP)(s.error),new o.A("gltf-loader-request-error",`Request for resource failed: ${s.error}`)}}},84498(e,t,r){r.d(t,{x:()=>a});var i=r(34275),n=r(97146),o=r(63907);function a(e,t){switch(t){case o.WR.TRIANGLES:return function(e){return"number"==typeof e?(0,n.tM)(e):(0,i.mg)(e)?new Uint16Array(e):e}(e);case o.WR.TRIANGLE_STRIP:return function(e){let t="number"==typeof e?e:e.length;if(t<3)return[];let r=t-2,i=(0,n.my)(3*r);if("number"==typeof e){let e=0;for(let t=0;t<r;t+=1)t%2==0?(i[e++]=t,i[e++]=t+1,i[e++]=t+2):(i[e++]=t+1,i[e++]=t,i[e++]=t+2)}else{let t=0;for(let n=0;n<r;n+=1)n%2==0?(i[t++]=e[n],i[t++]=e[n+1],i[t++]=e[n+2]):(i[t++]=e[n+1],i[t++]=e[n],i[t++]=e[n+2])}return i}(e);case o.WR.TRIANGLE_FAN:return function(e){let t="number"==typeof e?e:e.length;if(t<3)return new Uint16Array;let r=t-2,i=r<=65536?new Uint16Array(3*r):new Uint32Array(3*r);if("number"==typeof e){let e=0;for(let t=0;t<r;++t)i[e++]=0,i[e++]=t+1,i[e++]=t+2;return i}let n=e[0],o=e[1],a=0;for(let t=0;t<r;++t){let r=e[t+2];i[a++]=n,i[a++]=o,i[a++]=r,o=r}return i}(e)}}},51530(e,t,r){r.d(t,{KB:()=>a,Xi:()=>n,pn:()=>s,x3:()=>o});var i=r(44208);class n{constructor(e){this.data=e,this.type="encoded-mesh-texture",this.encoding="image/ktx2"}}function o(e){return"encoded-mesh-texture"===e?.type}async function a(e){let t=await new Blob([e]).text();return JSON.parse(t)}async function s(e,t){if("image/ktx2"===t)return new n(e);let r=new Blob([e],{type:t}),o=URL.createObjectURL(r);switch(t){case"image/jpeg":o+="#.jpg";break;case"image/png":o+="#.png"}let a=new Image;if((0,i.A)("esri-iPhone"))return new Promise((e,t)=>{let r=()=>{n(),e(a)},i=e=>{n(),t(e)},n=()=>{URL.revokeObjectURL(o),a.removeEventListener("load",r),a.removeEventListener("error",i)};a.addEventListener("load",r),a.addEventListener("error",i),a.src=o});try{a.src=o,await a.decode()}catch{}return URL.revokeObjectURL(o),a}},24426(e,t,r){r.d(t,{fetch:()=>Tr});var i=r(40876),n=r(61473),o=r(34727),a=r(77690),s=r(29242),l=r(58083),c=r(9093),u=r(48163),d=r(35522),h=r(51850),f=r(70328);function m(e,t=!1){return e<=1024?t?Array(e).fill(0):Array(e):new Float32Array(e)}var p=r(13030),v=r(73354),g=r(50867),x=r(43609),_=r(21015),b=r(84498),y=r(51530),w=r(88340);function M(e){if(null==e)return null;let t=null==e.offset?w.uY:e.offset,r=null==e.rotation?0:e.rotation,i=null==e.scale?w.Un:e.scale,n=(0,s.fA)(1,0,0,0,1,0,t[0],t[1],1),o=(0,s.fA)(Math.cos(r),-Math.sin(r),0,Math.sin(r),Math.cos(r),0,0,0,1),l=(0,s.fA)(i[0],0,0,0,i[1],0,0,0,1),c=(0,s.vt)();return(0,a.lw)(c,o,l),(0,a.lw)(c,n,c),c}class T{constructor(){this.geometries=[],this.materials=[],this.textures=[]}}class S{constructor(e,t,r){this.name=e,this.lodThreshold=t,this.pivotOffset=r,this.stageResources=new T,this.numberOfVertices=0}}var C=r(56507),A=r(60999),E=r(49186),I=r(53966),O=r(69397);class P{constructor(){this._outer=new Map}clear(){this._outer.clear()}get empty(){return 0===this._outer.size}get outerSize(){return this._outer.size}get size(){let e=0;for(let t of this._outer.values())e+=t.size;return e}get(e,t){return this._outer.get(e)?.get(t)}getInner(e){return this._outer.get(e)}set(e,t,r){let i=this._outer.get(e);i?i.set(t,r):this._outer.set(e,new Map([[t,r]]))}delete(e,t){let r=this._outer.get(e);r&&(r.delete(t),0===r.size&&this._outer.delete(e))}pop(e,t){let r=this.get(e,t);return this.delete(e,t),r}*outerMap(){for(let e of this._outer)yield e}*values(){for(let e of this._outer.values())yield*e.values()}*[Symbol.iterator](){for(let[e,t]of this._outer)for(let[r,i]of t)yield[e,r,i]}forEach(e){this._outer.forEach((t,r)=>e(t,r))}forAll(e){this._outer.forEach((t,r)=>t.forEach((t,i)=>e(t,r,i)))}clone(){let e=new P;return this.forAll((t,r,i)=>e.set(r,i,t)),e}}var D=r(17676),R=r(46140),F=r(97146),B=r(31217),N=r(46610),z=r(34275);function L(e){if(e.length<1024)return Array.from(e);if(Array.isArray(e))return Float64Array.from(e);if(!("BYTES_PER_ELEMENT"in e))return Array.from(e);switch(e.BYTES_PER_ELEMENT){case 1:return Uint8Array.from(e);case 2:return(0,z.LW)(e)?Float16Array.from(e):(0,z.jq)(e)?Uint16Array.from(e):Int16Array.from(e);case 4:return(0,z.vZ)(e)?Float32Array.from(e):Uint32Array.from(e);default:return Float64Array.from(e)}}var H=r(15142),V=r(94008),U=r(620);class j{constructor(e,t,r,i){this.primitiveIndices=e,this._numIndexPerPrimitive=t,this._readPosition=r,this._notifyMemoryChange=i,this._children=void 0,(0,U.vA)(e.length>=1);let n=e.length;$.clear();let o=(0,f.Ie)();for(let i=0;i<n;++i){let n=t*e[i];for(let e=0;e<t;++e){let t=n+e;$.push(t),(0,f.iT)(o,r(k,t))}}this.box=o;let a=new V.iy,s=(0,f.gX)(o,a.center),l=.5*Math.max((0,f.VL)(o),(0,f.yr)(o),(0,f.uJ)(o)),c=l*l;for(let e=0;e<$.length;++e){let t=r(k,$.at(e)),i=(0,d.Re)(t,t,s),n=(0,d.uE)(i);if(n<=c)continue;let o=Math.sqrt(n),a=.5*(o-l);l+=a,c=l*l;let u=a/o;(0,d.Ln)(s,s,i,u)}a.radius=l,this.sphere=a,$.clear()}get usedMemory(){let e=88+(0,O.rq)(this.box,8)+32+16+(0,O.rq)(this.sphere.center,8)+function(e){return(0,z.iu)(e)?145+((0,F.lc)(e)?0:e.byteLength):(0,F.lc)(e)?0:(0,O.rq)(e,O.JY)}(this.primitiveIndices),t=this._children;if(t){e+=(0,O.rq)(t,8);for(let r of t)e+=r.usedMemory}return e}get children(){if(this._children)return this._children;let e=this.box;if((0,f.TF)(e)<=1)return;let{_readPosition:t,_numIndexPerPrimitive:r,primitiveIndices:i}=this,n=(0,f.gX)(e,k),o=i.length,a=new Uint8Array(o),s=[0,0,0,0,0,0,0,0];for(let e=0;e<o;++e){let o=r*i[e],l=t(G,o);for(let e=1;e<r;++e)(0,d.jk)(l,l,t(W,o+e));let c=+(l[0]<n[0])|(l[1]<n[1]?2:0)|(l[2]<n[2]?4:0);a[e]=c,++s[c]}let l=0;for(let e=0;e<8;++e)s[e]>0&&++l;if(l<2)return;let c=[void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0];for(let e=0;e<8;++e)s[e]>0&&(c[e]=new Uint32Array(s[e]));s.fill(0);for(let e=0;e<o;++e){let t=a[e];c[t][s[t]++]=i[e]}let u=[];for(let e=0;e<8;++e){let i=c[e];void 0!==i&&u.push(new j(i,r,t,this._notifyMemoryChange))}return this._children=u,this._notifyMemoryChange?.((0,O.rq)(u,8)+u.reduce((e,t)=>e+t.usedMemory,0)),u}static prune(){$.prune()}}const k=(0,h.vt)(),G=(0,h.vt)(),W=(0,h.vt)(),$=new H.A({deallocator:null});var Z=r(24326);class q{constructor(e){this.id=(0,Z.c)(),this.type=0,this._attributes=new Map;for(let[t,r]of e)this._attributes.set(t,{...r,indices:(0,F.Dg)(r.indices)})}get attributes(){return this._attributes}}class Y{constructor(){this.uid=(0,Z.c)()}}class X extends Y{constructor(e){super(),this.highlightName=e,this.channel=0}}var J=r(94656);class K extends q{get usedMemoryExcludingBuffers(){return this._usedMemory+this._primitivePositionIndicesMemory+(this._boundingInfo?.usedMemory??0)}get _primitivePositionIndicesMemory(){let e=this._vertexPositionIndicesCache;return e&&e!==this.positionAttribute?.indices?(0,O.ro)(e,O.JY):0}computeBufferMemory(e){let t=e.arrayMemory(this.mapPositions)+e.arrayMemory(this.drawIndices,O.JY,!0);for(let r of this.attributes.values())t+=e.arrayMemory(r.data)+e.arrayMemory(r.indices,O.JY,!0);return t}constructor(e,t,r=null,i=-1,n,o){super(t),this.material=e,this.mapPositions=r,this.edgeIndicesLength=i,this.baseGeometry=n,this.drawIndices=o,this._usedMemory=0,this._readPrimitivePosition=null,this._vertexPositionIndicesCache=void 0,this._transformation=void 0,this.localOrigin=void 0,this._highlights=null,this._highlightOptionsCounts=null,this.occludees=void 0,this.visible=!0,this._boundingInfo=null,(0,U.vA)((e?.useIndexing??!1)===(null!=o),"Material index requirement and Geometry must match"),this.edgeIndicesLength<0&&(this.edgeIndicesLength=this.indexCount)}get readPrimitivePosition(){return this._readPrimitivePosition??=function(e,t){let{data:r,indices:i,size:n,stride:o}=e;return(0,U.vA)(2===n||3===n||4===n,"Position attribute must have 2, 3 or 4 components"),2===n?null==t?(e,t)=>{let n=i[t]*o;return e[0]=r[n],e[1]=r[n+1],e[2]=-2,e}:(e,n)=>{let a=i[t[n]]*o;return e[0]=r[a],e[1]=r[a+1],e[2]=-2,e}:null==t?function(e,t,r){return(i,n)=>{let o=t[n]*r;return i[0]=e[o],i[1]=e[o+1],i[2]=e[o+2],i}}(r,i,o):(e,n)=>{let a=i[t[n]]*o;return e[0]=r[a],e[1]=r[a+1],e[2]=r[a+2],e}}(this.positionAttribute,this.drawIndices),this._readPrimitivePosition}_invalidateReadPrimitivePosition(){this._readPrimitivePosition=null}instantiate(e={}){let t=new K(e.material||this.material,[],this.mapPositions,this.edgeIndicesLength,this.baseGeometry,this.drawIndices);return this._attributes.forEach((e,r)=>{e.exclusive=!1,t._attributes.set(r,e)}),t._boundingInfo=this._boundingInfo,t.transformation=e.transformation||this.transformation,t}getMutableAttribute(e){let t=this._attributes.get(e);return t&&!t.exclusive&&(t={...t,exclusive:!0,data:L(t.data)},this._attributes.set(e,t),"position"===e&&this._invalidateReadPrimitivePosition()),t}setAttributeData(e,t){let r=this._attributes.get(e);r?(this._attributes.set(e,{...r,exclusive:!0,data:t}),"position"===e&&this._invalidateReadPrimitivePosition()):(0,J.en)()&&console.warn(`Setting undefined attribute ${e} data`)}get primitivePositionIndices(){if(void 0!==this._vertexPositionIndicesCache)return this._vertexPositionIndicesCache;this._vertexPositionIndicesCache=this._computePrimitivePositionIndices();let e=this._primitivePositionIndicesMemory;return e&&this.notifyMemoryChange?.(e),this._vertexPositionIndicesCache}_computePrimitivePositionIndices(){let{drawIndices:e}=this,t=this.positionAttribute;if(null!=e&&null!=t){let r=Array(e.length).fill(0);for(let i=0;i<e.length;i++)r[i]=t.indices[e[i]];return r}return t?.indices??null}get positionAttribute(){return this.attributes.get("position")??this.baseGeometry?.attributes.get("position")}get indexCount(){return(this.drawIndices??this.positionAttribute?.indices)?.length??0}get faceCount(){return this.indexCount/3}get boundingInfo(){return this._boundingInfo||(this._boundingInfo=this._calculateBoundingInfo(),this._boundingInfo&&this.notifyMemoryChange?.(this._boundingInfo.usedMemory)),this._boundingInfo}computeAttachmentOrigin(e){return!!this.material.computeAttachmentOrigin(e,this.readPrimitivePosition,this.indexCount)&&(null!=this._transformation&&(0,d.Z0)(e,e,this._transformation),!0)}invalidateBoundingInfo(){let e=this._primitivePositionIndicesMemory+(this._boundingInfo?.usedMemory??0);this._boundingInfo=null,this._vertexPositionIndicesCache=void 0,e&&this.notifyMemoryChange?.(-e)}_calculateBoundingInfo(){let e=this.positionAttribute,t=this.indexCount;if(!e||0===t)return null;let r=this.material.primitiveVertexCount;(0,U.vA)(t%r===0,"Indexing error: "+t+" not divisible by "+r);let i=(0,F.tM)(t/r);return new j(i,r,this.readPrimitivePosition,e=>this.notifyMemoryChange?.(e))}get transformation(){return this._transformation??c.zK}set transformation(e){this._transformation=e&&e!==c.zK?(0,c.o8)(e):null}get highlights(){return this._highlights||Q}get hasHighlights(){return(this._highlightOptionsCounts?.size??0)>0}forEachHighlightOption(e){this._highlightOptionsCounts?.forEach((t,r)=>e(r))}allocateIdAndHighlight(e){let t=new X(e);return this.addHighlight(t)}addHighlight(e){this._ensureHighlights().add(e);let{highlightName:t}=e,r=(this._highlightOptionsCounts?.get(t)??0)+1;return this._ensureHighlightOptionsCounts().set(t,r),e}_ensureHighlights(){let e=this._highlights;return e||(e=new Set,this._highlights=e),e}_ensureHighlightOptionsCounts(){let e=this._highlightOptionsCounts;return e||(e=new Map,this._highlightOptionsCounts=e),e}removeHighlight(e){if(this._highlights?.delete(e)){let{highlightName:t}=e,r=this._highlightOptionsCounts?.get(t)??0;r<=1?this._highlightOptionsCounts?.delete(t):this._ensureHighlightOptionsCounts().set(t,r-1)}}}const Q=new Set;var ee=r(76200),te=r(49255),re=r(97768);class ie{constructor(e){this._material=e.material,this._techniques=e.techniques}dispose(){}get _stippleTextures(){return this._techniques.context?.stippleTextures}get _markerTextures(){return this._techniques.context?.markerTextures}getTechnique(e,t){return this._techniques.get(e,this._material.getConfiguration(t))}ensureResources(e){return 2}}var ne=r(65786);class oe extends ie{constructor(e){super(e),this._numLoading=0,this._disposed=!1,this._textures=e.textures,this.updateTexture(e.textureId),this._acquire(e.normalTextureId,e=>this._textureNormal=e),this._acquire(e.emissiveTextureId,e=>this._textureEmissive=e),this._acquire(e.occlusionTextureId,e=>this._textureOcclusion=e),this._acquire(e.metallicRoughnessTextureId,e=>this._textureMetallicRoughness=e)}dispose(){super.dispose(),this._texture=(0,re.Gz)(this._texture),this._textureNormal=(0,re.Gz)(this._textureNormal),this._textureEmissive=(0,re.Gz)(this._textureEmissive),this._textureOcclusion=(0,re.Gz)(this._textureOcclusion),this._textureMetallicRoughness=(0,re.Gz)(this._textureMetallicRoughness),this._disposed=!0}ensureResources(e){return 0===this._numLoading?2:1}get textureBindParameters(){return new se(this._texture?.texture??null,this._textureNormal?.texture??null,this._textureEmissive?.texture??null,this._textureOcclusion?.texture??null,this._textureMetallicRoughness?.texture??null)}updateTexture(e){(null==this._texture||e!==this._texture.id)&&(this._texture=(0,re.Gz)(this._texture),this._acquire(e,e=>this._texture=e))}_acquire(e,t){if(null==e)return void t(null);let r=this._textures.acquire(e);(0,D.$X)(r)?(++this._numLoading,r.then(e=>{this._disposed?((0,re.Gz)(e),t(null)):t(e)}).finally(()=>--this._numLoading)):t(r)}}class ae extends ne.Y{constructor(e=null){super(),this.textureEmissive=e}}class se extends ae{constructor(e,t,r,i,n,o,a){super(r),this.texture=e,this.textureNormal=t,this.textureOcclusion=i,this.textureMetallicRoughness=n,this.scale=o,this.normalTextureTransformMatrix=a}}var le=r(48295);const ce=(0,h.vt)(),ue=(0,h.vt)(),de=(0,h.vt)(),he=(0,h.vt)();var fe=r(19245);class me{constructor(e,t){this.id=(0,Z.c)(),this.supportsEdges=!1,this.primitiveVertexCount=3,this._renderPriority=0,this._parameters=new t,(0,fe.MB)(this._parameters,e),this.validateParameters(this._parameters)}get useIndexing(){return this.parameters.useIndexing??!1}get parameters(){return this._parameters}update(e){return!1}setParameters(e,t=!0){(0,fe.MB)(this._parameters,e)&&(this.validateParameters(this._parameters),t&&this._parametersChanged())}validateParameters(e){}shouldRender(e){return this.visible&&this.isVisibleForOutput(e.output)&&(!this.parameters.isDecoration||e.bind.decorations)&&0!==(this.parameters.renderOccluded&e.renderOccludedMask)}isVisibleForOutput(e){return!0}get renderPriority(){return this._renderPriority}set renderPriority(e){e!==this._renderPriority&&(this._renderPriority=e,this._parametersChanged())}_parametersChanged(){this.repository?.materialChanged(this)}get renderOccludedFlags(){return this.visible?this.parameters.renderOccluded:0}get testsTransparentRenderOrder(){return this.parameters.testsTransparentRenderOrder}get emissions(){return 0}getConfiguration(e){return this.updateConfiguration(e),this._configuration}updateConfiguration(e){this._configuration.output=e.output,this._configuration.hasEmission=e.hasEmission&&(0,te._o)(e.output),this._configuration.hasHighlightMixTexture=10===e.output&&null!=e.highlightMixTexture,this._configuration.useFloatBlend=e.useFloatBlend.value,this._configuration.emissionDimmingPass=e.transparentWithoutDepthEmissionDimmingPass&&(0,te._o)(e.output)}computeAttachmentOrigin(e,t,r){return function(e,t,r){if(r<=0)return!1;(0,d.hZ)(e,0,0,0),(0,d.hZ)(he,0,0,0);let i=0,n=0;for(let o=0;o<r;++o){let r=3*o;t(ce,r),t(ue,r+1),t(de,r+2);let a=(0,le.BU)(ce,ue,de);a?((0,d.WQ)(ce,ce,ue),(0,d.WQ)(ce,ce,de),(0,d.hs)(ce,ce,1/3*a),(0,d.WQ)(e,e,ce),i+=a):((0,d.WQ)(he,he,ce),(0,d.WQ)(he,he,ue),(0,d.WQ)(he,he,de),n+=3)}return!(0===n&&0===i||(0===i?0===n||((0,d.hs)(e,he,1/n),0):((0,d.hs)(e,e,1/i),0)))}(e,t,r/3)}}ne.Y;var pe=r(58682),ve=r(90629),ge=r(65720),xe=r(27921),_e=r(19419),be=r(11964);function ye(e,t){return e.isRectangle?(0,_e.Uc)(e.bounds,t):function(e,t){return Me(e[0],e[1],t)}(t,e.points)}function we(e,t,r,i){let n=Math.min(t[0],r[0],i[0]),o=Math.min(t[1],r[1],i[1]),a=Math.max(t[0],r[0],i[0]),s=Math.max(t[1],r[1],i[1]);if(!function(e,t){if(!(0,_e.HY)(e.bounds,t))return!1;if(e.isRectangle)return!0;for(let r of e.points)if((0,_e.Uc)(t,r))return!0;if(function(e,t){let r=e[0],i=e[1],n=e[2],o=e[3];return Me(r,i,t)||Me(n,i,t)||Me(n,o,t)||Me(r,o,t)}(t,e.points))return!0;for(let r=0;r<e.points.length;r++)if(Te(e.points[r],r===e.points.length-1?e.points[0]:e.points[r+1],t))return!0;return!1}(e,(0,_e.fA)(n,o,a,s,Oe)))return!1;if(ye(e,t)||ye(e,r)||ye(e,i))return!0;for(let n of e.points)if((0,le.cq)(t,r,i,n,Pe))return!0;for(let n=0;n<e.points.length;n++){let o=e.points[n],a=e.points[(n+1)%e.points.length];if(Ce(t,r,o,a)||Ce(r,i,o,a)||Ce(i,t,o,a))return!0}return!1}function Me(e,t,r){let i=!1;for(let n=0,o=r.length-1;n<r.length;o=n++){let a=r[n],s=r[o];a[1]>t!=s[1]>t&&e<(s[0]-a[0])*(t-a[1])/(s[1]-a[1])+a[0]&&(i=!i)}return i}function Te(e,t,r){let i=r[0],n=r[1],o=r[2],a=r[3],s=e[0],l=e[1],c=t[0],u=t[1];return!(s<i&&c<i||s>o&&c>o||l<n&&u<n||l>a&&u>a)&&(!(!(0,_e.Rj)(r,s,l)&&!(0,_e.Rj)(r,c,u))||Se(e,t,i,n,o,n)||Se(e,t,o,n,o,a)||Se(e,t,o,a,i,a)||Se(e,t,i,a,i,n))}function Se(e,t,r,i,n,o){let a=Ae(e[0],e[1],t[0],t[1],r,i),s=Ae(e[0],e[1],t[0],t[1],n,o),l=Ae(r,i,n,o,e[0],e[1]),c=Ae(r,i,n,o,t[0],t[1]);return a!==s&&l!==c||0===a&&Ee(e,t,r,i)||0===s&&Ee(e,t,n,o)||0===l&&Ie(r,i,n,o,e[0],e[1])||0===c&&Ie(r,i,n,o,t[0],t[1])}function Ce(e,t,r,i){return Se(e,t,r[0],r[1],i[0],i[1])}function Ae(e,t,r,i,n,o){let a=(i-t)*(n-r)-(r-e)*(o-i);return Math.abs(a)<=Pe?0:Math.sign(a)}function Ee(e,t,r,i){return Ie(e[0],e[1],t[0],t[1],r,i)}function Ie(e,t,r,i,n,o){return n>=Math.min(e,r)-Pe&&n<=Math.max(e,r)+Pe&&o>=Math.min(t,i)-Pe&&o<=Math.max(t,i)+Pe}const Oe=(0,_e.vt)(),Pe=((0,ve.r_)(),(0,ve.r_)(),(0,h.vt)(),(0,h.vt)(),(0,h.vt)(),(0,be.vt)(),1e-9);class De{constructor(e){this.type=e,this.distance=1/0,this.renderDistance=1/0,this.primitiveIndex=0,this.hasNormal=!1,this.point=(0,h.vt)(),this.normal=(0,h.vt)()}reset(){this.distance=1/0,this.renderDistance=1/0,this.hasNormal=!1}update(e,t,r,i,n=e){this.distance=e,this.renderDistance=n,this.primitiveIndex=t,(0,d.C)(this.point,r),this.hasNormal=null!=i,null!=i&&(0,d.C)(this.normal,i)}updateIfCloserFromValues(e,t,r,i,n=e){n<this.renderDistance&&this.update(e,t,r,i,n)}updateIfCloser(e){let{distance:t,renderDistance:r,primitiveIndex:i,point:n,normal:o}=e;this.updateIfCloserFromValues(t,i,n,e.hasNormal?o:null,r)}get valid(){return Number.isFinite(this.distance)}}function Re(e,t,r,i,n){if(!e.visible)return null;let o,a=new De(4);o=e.boundingInfo?Be(e.readPrimitivePosition,e.boundingInfo,t,r,i,n):Fe(t,r,i,0,e.faceCount,e.readPrimitivePosition,n,null,0);for(let e of o)a.updateIfCloser(e);return a.valid?a:null}function*Fe(e,t,r,i,n,o,a,s=null,l=0){if(null==e.camera)return;let{camera:c,screenPolygonPrimitiveProcessor:u}=e;for(let e=i;e<n;++e){let i=(s?.[e]??e)+l,n=null==s?i:e,h=3*i;Ne(Ve[0],o,h+0,a,n,t),Ne(Ve[1],o,h+1,a,n,t),Ne(Ve[2],o,h+2,a,n,t);let f,m=$e;qe.reset();let p=Ue;for(let e of u.processTriangle(Ve))ze(r,e,c,p)&&(Le(c.eye,p,We),f??=(0,le.rb)($e,Ve[0],Ve[1],Ve[2]),qe.updateIfCloserFromValues((0,d.Io)(c.eye,We),i,We,f?m:null));qe.valid&&(yield qe)}}function*Be(e,t,r,i,n,o){let a;if(null==o?a=(0,ge.GH)(n.broadPhaseFrustum,t.box,i):((0,f.C)(He,t.box),o.applyToAabb(He),a=(0,ge.GH)(n.broadPhaseFrustum,He,i)),!a)return;let{primitiveIndices:s}=t,l=s.length;if(l>1e3){let a=t.children;if(void 0!==a){for(let t of a)yield*Be(e,t,r,i,n,o);return}}yield*Fe(r,i,n,0,l,e,o,s,0)}function Ne(e,t,r,i,n,o){let[a,s,l]=t(e,r);null==i?(0,d.hZ)(e,a,s,l):i.applyToVertex(e,a,s,l,n),o&&(0,d.Z0)(e,e,o)}function ze(e,t,r,i){if(i.length=0,(0,xe.H)(r.frustum[4],t,()=>i.pushNew()),i.length<3)return!1;let n=je,o=ke,a=Ge;r.projectToScreen(i.data[0],n),r.projectToScreen(i.data[1],o);for(let t=2;t<i.length;t++){if(r.projectToScreen(i.data[t],a),we(e,n,o,a))return!0;let s=o;o=a,a=s}return!1}function Le(e,t,r){let i=1/0,n=t.at(0);for(let o=1;o<t.length-1;o++){(0,le.k3)(Ze,e,n,t.at(o),t.at(o+1));let a=(0,d.hG)(e,Ze);a<i&&(i=a,(0,d.C)(r,Ze))}}const He=(0,f.vt)(),Ve=[(0,h.vt)(),(0,h.vt)(),(0,h.vt)()],Ue=new H.A({allocator:e=>e??(0,h.vt)()}),je=(0,ve.gs)(),ke=(0,ve.gs)(),Ge=(0,ve.gs)(),We=(0,h.vt)(),$e=(0,h.vt)(),Ze=(0,h.vt)(),qe=new De(4);var Ye=r(16396);function Xe(e,t,r){let{data:i,indices:n}=e,o=t.typedBuffer,a=t.typedBufferStride,s=n.length;r*=a;for(let e=0;e<s;++e){let t=2*n[e];o[r]=i[t],o[r+1]=i[t+1],r+=a}}function Je(e,t,r,i=1){let{data:n,indices:o}=e,a=t.typedBuffer,s=t.typedBufferStride,l=o.length;if(r*=s,1===i)for(let e=0;e<l;++e){let t=3*o[e];a[r]=n[t],a[r+1]=n[t+1],a[r+2]=n[t+2],r+=s}else for(let e=0;e<l;++e){let t=3*o[e];for(let e=0;e<i;++e)a[r]=n[t],a[r+1]=n[t+1],a[r+2]=n[t+2],r+=s}}function Ke(e,t,r,i,n=1){let{data:o,indices:a}=e,s=r.typedBuffer,l=r.typedBufferStride,c=a.length;if(i*=l,t===o.length&&4===t){s[i]=o[0],s[i+1]=o[1],s[i+2]=o[2],s[i+3]=o[3];let e=new Uint32Array(r.typedBuffer.buffer,r.start),t=l/4,a=e[i/=4];i+=t;let u=c*n;for(let r=1;r<u;++r)e[i]=a,i+=t}else if(1===n){if(4===t){for(let e=0;e<c;++e){let t=4*a[e];s[i]=o[t],s[i+1]=o[t+1],s[i+2]=o[t+2],s[i+3]=o[t+3],i+=l}return}for(let e=0;e<c;++e){let t=3*a[e];s[i]=o[t],s[i+1]=o[t+1],s[i+2]=o[t+2],s[i+3]=255,i+=l}}else if(4===t)for(let e=0;e<c;++e){let t=4*a[e];for(let e=0;e<n;++e)s[i]=o[t],s[i+1]=o[t+1],s[i+2]=o[t+2],s[i+3]=o[t+3],i+=l}else for(let e=0;e<c;++e){let t=3*a[e];for(let e=0;e<n;++e)s[i]=o[t],s[i+1]=o[t+1],s[i+2]=o[t+2],s[i+3]=255,i+=l}}function Qe(e,t,r,i,n,o){switch(e){case"position":{(0,U.vA)(3===t.size);let i=n.getField(e,p.xs);(0,U.vA)(!!i,`No buffer view for ${e}`),function(e,t,r,i,n=1){if(!t)return void Je(e,r,i,n);let{data:o,indices:a}=e,s=r.typedBuffer,c=r.typedBufferStride,u=a.length,d=t[0],h=t[1],f=t[2],m=t[4],p=t[5],v=t[6],g=t[8],x=t[9],_=t[10],b=t[12],y=t[13],w=t[14];i*=c;let M=0,T=0,S=0,C=(0,l.tZ)(t)?e=>{M=o[e]+b,T=o[e+1]+y,S=o[e+2]+w}:e=>{let t=o[e],r=o[e+1],i=o[e+2];M=d*t+m*r+g*i+b,T=h*t+p*r+x*i+y,S=f*t+v*r+_*i+w};if(1===n)for(let e=0;e<u;++e)C(3*a[e]),s[i]=M,s[i+1]=T,s[i+2]=S,i+=c;else for(let e=0;e<u;++e){C(3*a[e]);for(let e=0;e<n;++e)s[i]=M,s[i+1]=T,s[i+2]=S,i+=c}}(t,r,i,o);break}case"normal":{(0,U.vA)(3===t.size);let r=n.getField(e,p.xs);(0,U.vA)(!!r,`No buffer view for ${e}`),function(e,t,r,i,n=1){if(!t)return void Je(e,r,i,n);let{data:o,indices:a}=e,s=t,c=r.typedBuffer,u=r.typedBufferStride,d=a.length,h=s[0],f=s[1],m=s[2],p=s[4],v=s[5],g=s[6],x=s[8],_=s[9],b=s[10],y=!(0,l.ut)(s),w=1e-6,M=.999999;i*=u;let T=0,S=0,C=0,A=(0,l.tZ)(s)?e=>{T=o[e],S=o[e+1],C=o[e+2]}:e=>{let t=o[e],r=o[e+1],i=o[e+2];T=h*t+p*r+x*i,S=f*t+v*r+_*i,C=m*t+g*r+b*i};if(1===n)if(y)for(let e=0;e<d;++e){A(3*a[e]);let t=T*T+S*S+C*C;if(t<M&&t>w){let e=1/Math.sqrt(t);c[i]=T*e,c[i+1]=S*e,c[i+2]=C*e}else c[i]=T,c[i+1]=S,c[i+2]=C;i+=u}else for(let e=0;e<d;++e)A(3*a[e]),c[i]=T,c[i+1]=S,c[i+2]=C,i+=u;else for(let e=0;e<d;++e){if(A(3*a[e]),y){let e=T*T+S*S+C*C;if(e<M&&e>w){let t=1/Math.sqrt(e);T*=t,S*=t,C*=t}}for(let e=0;e<n;++e)c[i]=T,c[i+1]=S,c[i+2]=C,i+=u}}(t,i,r,o);break}case"normalCompressed":case"profileRight":case"profileUp":{(0,U.vA)(2===t.size);let r=n.getField(e,p.mJ);(0,U.vA)(!!r,`No buffer view for ${e}`),Xe(t,r,o);break}case"uv0":{(0,U.vA)(2===t.size);let r=n.getField(e,p.ZD)??n.getField(e,p.gH);(0,U.vA)(!!r,`No buffer view for ${e}`),Xe(t,r,o);break}case"uvi":{(0,U.vA)(2===t.size);let r=n.getField(e,p.mJ);(0,U.vA)(!!r,`No buffer view for ${e}`),Xe(t,r,o);break}case"color":case"symbolColor":{let r=n.getField(e,p.XP);(0,U.vA)(!!r,`No buffer view for ${e}`),(0,U.vA)(3===t.size||4===t.size),Ke(t,t.size,r,o);break}case"colorFeatureAttribute":case"opacityFeatureAttribute":case"sizeFeatureAttribute":{let r=n.getField(e,p.Y$)??n.getField(e,p.Y$);(0,U.vA)(!!r,`No buffer view for ${e}`),(0,U.vA)(1===t.size),function(e,t,r){let{data:i,indices:n}=e,o=t.typedBuffer,a=t.typedBufferStride,s=n.length,l=i[0];r*=a;for(let e=0;e<s;++e)o[r]=l,r+=a}(t,r,o);break}case"tangent":{(0,U.vA)(4===t.size);let i=n.getField(e,p.Eq);(0,U.vA)(!!i,`No buffer view for ${e}`),function(e,t,r,i,n=1){if(!t)return void function(e,t,r,i=1){let{data:n,indices:o}=e,a=t.typedBuffer,s=t.typedBufferStride,l=o.length;if(r*=s,1===i)for(let e=0;e<l;++e){let t=4*o[e];a[r]=n[t],a[r+1]=n[t+1],a[r+2]=n[t+2],a[r+3]=n[t+3],r+=s}else for(let e=0;e<l;++e){let t=4*o[e];for(let e=0;e<i;++e)a[r]=n[t],a[r+1]=n[t+1],a[r+2]=n[t+2],a[r+3]=n[t+3],r+=s}}(e,r,i,n);let{data:o,indices:a}=e,s=t,c=r.typedBuffer,u=r.typedBufferStride,d=a.length,h=s[0],f=s[1],m=s[2],p=s[4],v=s[5],g=s[6],x=s[8],_=s[9],b=s[10],y=!(0,l.ut)(s),w=1e-6,M=.999999;if(i*=u,1===n)for(let e=0;e<d;++e){let t=4*a[e],r=o[t],n=o[t+1],s=o[t+2],l=o[t+3],d=h*r+p*n+x*s,T=f*r+v*n+_*s,S=m*r+g*n+b*s;if(y){let e=d*d+T*T+S*S;if(e<M&&e>w){let t=1/Math.sqrt(e);d*=t,T*=t,S*=t}}c[i]=d,c[i+1]=T,c[i+2]=S,c[i+3]=l,i+=u}else for(let e=0;e<d;++e){let t=4*a[e],r=o[t],s=o[t+1],l=o[t+2],d=o[t+3],T=h*r+p*s+x*l,S=f*r+v*s+_*l,C=m*r+g*s+b*l;if(y){let e=T*T+S*S+C*C;if(e<M&&e>w){let t=1/Math.sqrt(e);T*=t,S*=t,C*=t}}for(let e=0;e<n;++e)c[i]=T,c[i+1]=S,c[i+2]=C,c[i+3]=d,i+=u}}(t,r,i,o);break}case"olidColor":(0,U.vA)(4===t.size),Ke(t,4,n.getField(e,p.XP),o)}}(0,h.vt)();class et{constructor(e){this.layout=e}elementCount(e){return e.get("position").indices.length}write(e,t,r,i){null!=i&&function(e,t,r,i,n){let{buffer:o,offset:a}=n;for(let n of t.fields.keys()){let t=e.get(n),s=t?.indices;t&&s&&Qe(n,t,r,i,o,a)}}(r,this.layout,e,t,i)}}const tt=st(-1),rt=st(1),it=tt,nt=[];nt[0]=null,nt[1]=rt,nt[2]=tt,nt[3]=st(-2),nt[4]=st(-3);const ot=nt.map(e=>function(e,t){return t?{factor:e.factor+t.factor,units:e.units+t.units}:e}(it,e));function at({output:e,enableOITOffset:t,polygonOffset:r}){return(0,te._$)(e)&&t?ot[r]:nt[r]}function st(e){return{factor:1*e,units:2*e}}nt[1]=rt;var lt=r(32198),ct=r(51976),ut=r(34711);class dt extends ut.Hz{constructor(){super(...arguments),this.hasHighlightMixTexture=!1,this.emissionDimmingPass=!1,this.bindType=1,this.instanced=!1,this.writeDepth=!0,this.oitPremultipliedAlpha=!1}}(0,lt.Cg)([(0,ct.W)()],dt.prototype,"hasHighlightMixTexture",void 0),(0,lt.Cg)([(0,ct.W)()],dt.prototype,"emissionDimmingPass",void 0);class ht extends dt{constructor(){super(...arguments),this.polygonOffset=0,this.transparent=!1,this.enableOITOffset=!0}}function ft(e){return pt.output=+!!e.transparent,pt.polygonOffset=e.polygonOffset,pt.enableOITOffset=e.enableOITOffset,at(pt)}function mt({units:e,factor:t},r,i,n){let o=gt*e;return i+((n?1-Math.abs((0,d.Om)(r,n)):0)*t*vt+o)}(0,lt.Cg)([(0,ct.W)({count:5})],ht.prototype,"polygonOffset",void 0),(0,lt.Cg)([(0,ct.W)()],ht.prototype,"transparent",void 0),(0,lt.Cg)([(0,ct.W)()],ht.prototype,"enableOITOffset",void 0);const pt=new ht,vt=2e-5,gt=2e-6,xt=(0,h.vt)();var _t=r(91429),bt=r(91829),yt=r(4431),wt=r(1843),Mt=r(72824),Tt=r(13840),St=r(42958),Ct=r(16943),At=r(90644);const Et=(0,At.p3)(1,0,1,771);function It(e,t=!1,r=!1){if(r)return At.uR;switch(e){case 0:return t?At.RC:At.T8;case 1:return Et;default:return null}}function Ot(e){if(e.draped)return null;switch(e.output){case 0:case 2:default:return e.writeDepth?At.Uy:null;case 1:return null}}function Pt(e,t=513){return{func:(0,te._$)(e)?515:t}}(0,bt._Y)();const Dt={mask:255},Rt=(0,At.nk)(2,2,{compare:519,fail:7680,zFail:7680,zPass:0}),Ft=(0,At.nk)(2,2,{compare:519,fail:7680,zFail:7680,zPass:7681});(0,At.nk)(2,2,{compare:514,fail:7680,zFail:7680,zPass:7680}),(0,At.nk)(2,2,{compare:517,fail:7680,zFail:7680,zPass:7680}),r(4576),r(66289);var Bt=r(69622),Nt=r(65529),zt=r(32728);class Lt{constructor(e){this.localTransform=e.localTransform,this.globalTransform=e.globalTransform,this.modelOrigin=e.modelOrigin,this.model=e.instanceModel,this.modelNormal=e.instanceModelNormal,this.modelScaleFactors=e.modelScaleFactors,this.boundingSphere=e.boundingSphere,this.featureAttribute=e.getField("instanceFeatureAttribute",p.Eq),this.color=e.getField("instanceColor",p.XP),this.olidColor=e.getField("instanceOlidColor",p.XP),this.state=e.getField("state",p.SL),this.lodLevel=e.getField("lodLevel",p.SL)}}let Ht=class extends Bt.A{constructor(e,t){super(e),this.events=new Nt.bk,this._capacity=0,this._size=0,this._next=0,this._highlightOptionsMap=new Map,this._highlightOptionsMapPrev=new Map,this._layout=function(e){return Ut(Vt.clone(),e).u8("state").u8("lodLevel")}(t),this._capacity=$t,this._buffer=this._layout.createBuffer(this._capacity),this._view=new Lt(this._buffer)}get capacity(){return this._capacity}get size(){return this._size}get view(){return this._view}addInstance(){this._size+1>this._capacity&&this._grow();let e=this._findSlot();return this._view.state.set(e,1),this._size++,this.events.emit("instances-changed"),e}removeInstance(e){let t=this._view.state;(0,U.vA)(e>=0&&e<this._capacity&&!!(1&t.get(e)),"invalid instance handle"),this._getStateFlag(e,18)?this._setStateFlags(e,32):this.freeInstance(e),this.events.emit("instances-changed")}freeInstance(e){let t=this._view.state;(0,U.vA)(e>=0&&e<this._capacity&&!!(1&t.get(e)),"invalid instance handle"),t.set(e,0),this._size--}setLocalTransform(e,t,r=!0){this._view.localTransform.setMat(e,t),r&&this.updateModelTransform(e)}getLocalTransform(e,t){this._view.localTransform.getMat(e,t)}setGlobalTransform(e,t,r=!0){this._view.globalTransform.setMat(e,t),r&&this.updateModelTransform(e)}getGlobalTransform(e,t){this._view.globalTransform.getMat(e,t)}updateModelTransform(e){let t=this._view,r=jt,i=kt;t.localTransform.getMat(e,Gt),t.globalTransform.getMat(e,Wt);let n=(0,l.lw)(Wt,Wt,Gt);(0,d.hZ)(r,n[12],n[13],n[14]),t.modelOrigin.setVec(e,r),(0,a.z0)(i,n),t.model.setMat(e,i);let o=(0,zt.wp)(jt,n);o.sort(),t.modelScaleFactors.set(e,0,o[1]),t.modelScaleFactors.set(e,1,o[2]),(0,a.B8)(i,i),(0,a.mg)(i,i),t.modelNormal.setMat(e,i),this._setStateFlags(e,64),this.events.emit("instance-transform-changed",{index:e})}getModelTransform(e,t){let r=this._view;r.model.getMat(e,kt),r.modelOrigin.getVec(e,jt),t[0]=kt[0],t[1]=kt[1],t[2]=kt[2],t[3]=0,t[4]=kt[3],t[5]=kt[4],t[6]=kt[5],t[7]=0,t[8]=kt[6],t[9]=kt[7],t[10]=kt[8],t[11]=0,t[12]=jt[0],t[13]=jt[1],t[14]=jt[2],t[15]=1}applyShaderTransformation(e,t){null!=this.shaderTransformation&&this.shaderTransformation.applyTransform(this,e,t)}getCombinedModelTransform(e,t){return this.getModelTransform(e,t),null!=this.shaderTransformation&&this.shaderTransformation.applyTransform(this,e,t),t}getCombinedLocalTransform(e,t){this._view.localTransform.getMat(e,t),null!=this.shaderTransformation&&this.shaderTransformation.applyTransform(this,e,t)}getCombinedMaxScaleFactor(e){let t=this._view.modelScaleFactors.get(e,1);return null!=this.shaderTransformation&&(this.shaderTransformation.scaleFactor(jt,this,e),t*=Math.max(jt[0],jt[1],jt[2])),t}getCombinedMedianScaleFactor(e){let t=this._view.modelScaleFactors.get(e,0);return null!=this.shaderTransformation&&(this.shaderTransformation.scaleFactor(jt,this,e),t*=function(e,t,r){return Math.max(Math.min(e,t),Math.min(Math.max(e,t),r))}(jt[0],jt[1],jt[2])),t}getModel(e,t){this._view.model.getMat(e,t)}setFeatureAttribute(e,t){this._view.featureAttribute?.setVec(e,t)}getFeatureAttribute(e,t){this._view.featureAttribute?.getVec(e,t)}setColor(e,t){this._view.color?.setVec(e,t)}setObjectAndLayerIdColor(e,t){this._view.olidColor?.setVec(e,t)}setVisible(e,t){t!==this.getVisible(e)&&(this._setStateFlag(e,4,t),this.events.emit("instance-visibility-changed",{index:e}))}getVisible(e){return this._getStateFlag(e,4)}setHighlight(e,t){let{_highlightOptionsMap:r}=this,i=r.get(e);t?t!==i&&(r.set(e,t),this._setStateFlag(e,8,!0),this.events.emit("instance-highlight-changed")):i&&(r.delete(e),this._setStateFlag(e,8,!1),this.events.emit("instance-highlight-changed"))}get highlightOptionsMap(){return this._highlightOptionsMap}getHighlightStateFlag(e){return this._getStateFlag(e,8)}geHighlightOptionsPrev(e){let t=this._highlightOptionsMapPrev.get(e)??null;return this._highlightOptionsMapPrev.delete(e),t}getHighlightName(e){let t=this.highlightOptionsMap.get(e)??null;return t?this._highlightOptionsMapPrev.set(e,t):this._highlightOptionsMapPrev.delete(e),t}getState(e){return this._view.state.get(e)}getLodLevel(e){return this._view.lodLevel.get(e)}countFlags(e){let t=0;for(let r=0;r<this._capacity;++r)this.getState(r)&e&&++t;return t}_setStateFlags(e,t){let r=this._view.state;t=r.get(e)|t,r.set(e,t)}_clearStateFlags(e,t){let r=this._view.state;t=r.get(e)&~t,r.set(e,t)}_setStateFlag(e,t,r){r?this._setStateFlags(e,t):this._clearStateFlags(e,t)}_getStateFlag(e,t){return!!(this._view.state.get(e)&t)}_grow(){this._capacity=Math.max($t,Math.floor(1.5*this._capacity)),this._buffer=this._layout.createBuffer(this._capacity).copyFrom(this._buffer),this._view=new Lt(this._buffer)}_findSlot(){let e=this._view.state,t=this._next;for(;1&e.get(t);)t=t+1===this._capacity?0:t+1;return this._next=t+1===this._capacity?0:t+1,t}};(0,lt.Cg)([(0,_t.MZ)({constructOnly:!0})],Ht.prototype,"shaderTransformation",void 0),(0,lt.Cg)([(0,_t.MZ)()],Ht.prototype,"_size",void 0),(0,lt.Cg)([(0,_t.MZ)({readOnly:!0})],Ht.prototype,"size",null),Ht=(0,lt.Cg)([(0,_t.$K)("esri.views.3d.webgl-engine.lib.lodRendering.InstanceData")],Ht);const Vt=(0,wt.BP)().mat4f64("localTransform").mat4f64("globalTransform").vec4f64("boundingSphere").vec3f64("modelOrigin").mat3f("instanceModel").mat3f("instanceModelNormal").vec2f("modelScaleFactors");function Ut(e,t){return t.instancedFeatureAttribute&&e.vec4f("instanceFeatureAttribute"),t.instancedColor&&e.vec4u8("instanceColor"),(0,Ct.E)()&&e.vec4u8("instanceOlidColor"),e}const jt=(0,h.vt)(),kt=(0,s.vt)(),Gt=(0,c.vt)(),Wt=(0,c.vt)(),$t=64,Zt=(0,wt.BP)().vec3f("instanceModelOriginHi").vec3f("instanceModelOriginLo").mat3f("instanceModel").mat3f("instanceModelNormal");var qt=r(74810),Yt=r(28491),Xt=r(49788);class Jt extends Mt.Zo{constructor(){super(...arguments),this.isSchematic=!1,this.usePBR=!1,this.mrrFactors=qt.mb,this.hasVertexColors=!1,this.hasSymbolColors=!1,this.doubleSided=!1,this.doubleSidedType="normal",this.cullFace=2,this.instanced=!1,this.instancedFeatureAttribute=!1,this.instancedColor=!1,this.instanceColorEncodesAlphaIgnore=!1,this.emissiveStrengthFromSymbol=0,this.emissiveStrengthKHR=1,this.emissiveSource=1,this.emissiveBaseColor=h.uY,this.instancedDoublePrecision=!1,this.normalType=0,this.receiveShadows=!0,this.receiveAmbientOcclusion=!0,this.castShadows=!0,this.ambient=(0,h.CN)(.2,.2,.2),this.diffuse=(0,h.CN)(.8,.8,.8),this.externalColor=(0,bt.fA)(1,1,1,1),this.colorMixMode="multiply",this.opacity=1,this.layerOpacity=1,this.origin=(0,h.vt)(),this.hasSlicePlane=!1,this.offsetTransparentBackfaces=!1,this.vvSize=null,this.vvColor=null,this.vvOpacity=null,this.modelTransformation=null,this.drivenOpacity=!1,this.customDepthTest=0,this.textureAlphaMode=0,this.textureAlphaCutoff=Xt.Q,this.textureAlphaPremultiplied=!1,this.renderOccluded=1,this.testsTransparentRenderOrder=0,this.isDecoration=!1}get emissiveStrength(){return this.emissiveStrengthFromSymbol*this.emissiveStrengthKHR}get hasVVSize(){return!!this.vvSize}get hasVVColor(){return!!this.vvColor}get hasVVOpacity(){return!!this.vvOpacity}}Mt.gy;let Kt=class extends St.w{constructor(e,t){let i=(0,yt.U)(tr(t));t.instanced&&t.instancedDoublePrecision&&(i=i.concat((0,yt.U)(function(e){return Ut(Zt.clone(),e)}(t)))),super(e,t,i),this.shader=new Tt.r(Yt.D,()=>r.e(5141).then(()=>r(5141))),this.ignoreUnused=!0}_makePipeline(e,t){let{output:r,transparent:i,cullFace:n,customDepthTest:o,hasOccludees:a}=e;return(0,At.Ey)({blending:i?It(r,!1,e.emissionDimmingPass):null,culling:er(e)?(0,At.Xt)(n):null,depthTest:Pt(r,Qt(o)),depthWrite:Ot(e),colorWrite:At.kn,stencilWrite:a?Dt:null,stencilTest:a?t?Ft:Rt:null,polygonOffset:at(e)})}initializePipeline(e){return this._occludeePipelineState=this._makePipeline(e,!0),this._makePipeline(e,!1)}getPipeline(e,t,r){return r?this._occludeePipelineState:super.getPipeline(e,t,r)}};function Qt(e){switch(e){case 1:return 515;case 0:case 4:return 513;case 2:return 516;case 3:return 514}}function er(e){return 0!==e.cullFace||!e.hasSlicePlane&&!e.transparent&&!e.doubleSidedMode}function tr(e){let t=(0,wt.BP)().vec3f("position");return 1===e.normalType?t.vec2i16("normalCompressed",{glNormalized:!0}):t.vec3f("normal"),e.hasVertexTangents&&t.vec4f("tangent"),e.hasTextures&&t.vec2f16("uv0"),e.hasVertexColors&&t.vec4u8("color",{glNormalized:!0}),e.hasSymbolColors&&t.vec4u8("symbolColor"),!e.instanced&&(0,Ct.E)()&&t.vec4u8("olidColor"),t}Kt=(0,lt.Cg)([(0,_t.$K)("esri.views.3d.webgl-engine.shaders.DefaultMaterialTechnique")],Kt);class rr extends ht{constructor(e){super(),this.spherical=e,this.alphaDiscardMode=1,this.doubleSidedMode=0,this.pbrMode=0,this.cullFace=0,this.normalType=0,this.customDepthTest=0,this.emissionSource=0,this.hasVertexColors=!1,this.hasSymbolColors=!1,this.hasVerticalOffset=!1,this.hasColorTexture=!1,this.hasMetallicRoughnessTexture=!1,this.hasOcclusionTexture=!1,this.hasNormalTexture=!1,this.hasScreenSizePerspective=!1,this.hasVertexTangents=!1,this.hasOccludees=!1,this.instanced=!1,this.instancedDoublePrecision=!1,this.hasModelTransformation=!1,this.offsetBackfaces=!1,this.hasVVSize=!1,this.hasVVColor=!1,this.receiveShadows=!1,this.hasShadowHighlights=!1,this.receiveAmbientOcclusion=!1,this.receiveGlobalIllumination=!1,this.textureAlphaPremultiplied=!1,this.instancedFeatureAttribute=!1,this.instancedColor=!1,this.writeDepth=!0,this.snowCover=!1,this.hasColorTextureTransform=!1,this.hasEmissionTextureTransform=!1,this.hasNormalTextureTransform=!1,this.hasOcclusionTextureTransform=!1,this.hasMetallicRoughnessTextureTransform=!1,this.useCustomDTRExponentForWater=!1,this.useFillLights=!0,this.draped=!1,this.renderOccluded=!1}get textureCoordinateType(){return+!!this.hasTextures}get hasTextures(){return this.hasColorTexture||this.hasNormalTexture||this.hasMetallicRoughnessTexture||3===this.emissionSource||this.hasOcclusionTexture}get hasVVInstancing(){return this.instanced}}(0,lt.Cg)([(0,ct.W)({count:4})],rr.prototype,"alphaDiscardMode",void 0),(0,lt.Cg)([(0,ct.W)({count:3})],rr.prototype,"doubleSidedMode",void 0),(0,lt.Cg)([(0,ct.W)({count:8})],rr.prototype,"pbrMode",void 0),(0,lt.Cg)([(0,ct.W)({count:3})],rr.prototype,"cullFace",void 0),(0,lt.Cg)([(0,ct.W)({count:3})],rr.prototype,"normalType",void 0),(0,lt.Cg)([(0,ct.W)({count:4})],rr.prototype,"customDepthTest",void 0),(0,lt.Cg)([(0,ct.W)({count:8})],rr.prototype,"emissionSource",void 0),(0,lt.Cg)([(0,ct.W)()],rr.prototype,"hasVertexColors",void 0),(0,lt.Cg)([(0,ct.W)()],rr.prototype,"hasSymbolColors",void 0),(0,lt.Cg)([(0,ct.W)()],rr.prototype,"hasVerticalOffset",void 0),(0,lt.Cg)([(0,ct.W)()],rr.prototype,"hasColorTexture",void 0),(0,lt.Cg)([(0,ct.W)()],rr.prototype,"hasMetallicRoughnessTexture",void 0),(0,lt.Cg)([(0,ct.W)()],rr.prototype,"hasOcclusionTexture",void 0),(0,lt.Cg)([(0,ct.W)()],rr.prototype,"hasNormalTexture",void 0),(0,lt.Cg)([(0,ct.W)()],rr.prototype,"hasScreenSizePerspective",void 0),(0,lt.Cg)([(0,ct.W)()],rr.prototype,"hasVertexTangents",void 0),(0,lt.Cg)([(0,ct.W)()],rr.prototype,"hasOccludees",void 0),(0,lt.Cg)([(0,ct.W)()],rr.prototype,"instanced",void 0),(0,lt.Cg)([(0,ct.W)()],rr.prototype,"instancedDoublePrecision",void 0),(0,lt.Cg)([(0,ct.W)()],rr.prototype,"hasModelTransformation",void 0),(0,lt.Cg)([(0,ct.W)()],rr.prototype,"offsetBackfaces",void 0),(0,lt.Cg)([(0,ct.W)()],rr.prototype,"hasVVSize",void 0),(0,lt.Cg)([(0,ct.W)()],rr.prototype,"hasVVColor",void 0),(0,lt.Cg)([(0,ct.W)()],rr.prototype,"receiveShadows",void 0),(0,lt.Cg)([(0,ct.W)()],rr.prototype,"hasShadowHighlights",void 0),(0,lt.Cg)([(0,ct.W)()],rr.prototype,"receiveAmbientOcclusion",void 0),(0,lt.Cg)([(0,ct.W)()],rr.prototype,"receiveGlobalIllumination",void 0),(0,lt.Cg)([(0,ct.W)()],rr.prototype,"textureAlphaPremultiplied",void 0),(0,lt.Cg)([(0,ct.W)()],rr.prototype,"instancedFeatureAttribute",void 0),(0,lt.Cg)([(0,ct.W)()],rr.prototype,"instancedColor",void 0),(0,lt.Cg)([(0,ct.W)()],rr.prototype,"writeDepth",void 0),(0,lt.Cg)([(0,ct.W)()],rr.prototype,"snowCover",void 0),(0,lt.Cg)([(0,ct.W)()],rr.prototype,"hasColorTextureTransform",void 0),(0,lt.Cg)([(0,ct.W)()],rr.prototype,"hasEmissionTextureTransform",void 0),(0,lt.Cg)([(0,ct.W)()],rr.prototype,"hasNormalTextureTransform",void 0),(0,lt.Cg)([(0,ct.W)()],rr.prototype,"hasOcclusionTextureTransform",void 0),(0,lt.Cg)([(0,ct.W)()],rr.prototype,"hasMetallicRoughnessTextureTransform",void 0);var ir=r(57323);let nr=class extends Kt{constructor(){super(...arguments),this.shader=new Tt.r(ir.R,()=>r.e(9933).then(()=>r(39933)))}};nr=(0,lt.Cg)([(0,_t.$K)("esri.views.3d.webgl-engine.shaders.RealisticTreeTechnique")],nr);class or extends ct.K{constructor(){super(...arguments),this.receiveShadows=!0}}(0,lt.Cg)([(0,ct.W)()],or.prototype,"receiveShadows",void 0);class ar extends me{constructor(e,t){super(e,lr),this.materialType="default",this.supportsEdges=!0,this.intersectRayDraped=void 0,this.intersectScreenPolygonDraped=void 0,this.produces=new Map([[2,e=>(0,te.uw)(e)&&!this.transparent],[4,e=>(0,te.uw)(e)&&this.transparent]]),this._layout=tr(this.parameters),this._configuration=new rr(t.spherical)}isVisibleForOutput(e){return 5!==e&&7!==e&&6!==e||this.parameters.castShadows}get visible(){let{layerOpacity:e,colorMixMode:t,opacity:r,externalColor:i}=this.parameters;return e*("replace"===t?1:r)*("ignore"===t||isNaN(i[3])?1:i[3])>=Xt.Q}get _hasEmissiveBase(){return!!this.parameters.emissiveTextureId||!(0,d.t2)(this.parameters.emissiveBaseColor,h.uY)}get emissions(){return this.parameters.emissiveStrength>0&&(0===this.parameters.emissiveSource&&this._hasEmissiveBase||1===this.parameters.emissiveSource)?this.transparent?2:1:0}updateConfiguration(e){super.updateConfiguration(e);let{parameters:t,_configuration:r}=this;r.hasNormalTexture=t.hasNormalTexture,r.hasColorTexture=t.hasColorTexture,r.hasMetallicRoughnessTexture=t.hasMetallicRoughnessTexture,r.hasOcclusionTexture=t.hasOcclusionTexture;let{treeRendering:i,doubleSided:n,doubleSidedType:o}=t;r.hasVertexTangents=!i&&t.hasVertexTangents,r.instanced=t.instanced,r.instancedDoublePrecision=t.instancedDoublePrecision,r.hasVVColor=!!t.vvColor,r.hasVVSize=!!t.vvSize,r.hasVerticalOffset=null!=t.verticalOffset,r.hasScreenSizePerspective=null!=t.screenSizePerspective,r.hasSlicePlane=t.hasSlicePlane,r.alphaDiscardMode=t.textureAlphaMode,r.normalType=i?0:t.normalType,r.transparent=this.transparent,r.enableOITOffset=e.enableOITOffset,r.customDepthTest=t.customDepthTest??0,r.hasOccludees=e.hasOccludees,r.cullFace=t.hasSlicePlane?0:t.cullFace,r.hasModelTransformation=!i&&null!=t.modelTransformation,r.hasVertexColors=t.hasVertexColors,r.hasSymbolColors=t.hasSymbolColors,r.doubleSidedMode=i?2:n&&"normal"===o?1:n&&"winding-order"===o?2:0,r.instancedFeatureAttribute=t.instancedFeatureAttribute,r.instancedColor=t.instancedColor,(0,te._o)(e.output)?(r.receiveShadows=t.receiveShadows,r.hasShadowHighlights=function(e,t){return e.receiveShadows&&null!=t.shadowHighlight?.getTexture()}(r,e),r.receiveAmbientOcclusion=t.receiveAmbientOcclusion&&null!=e.ssao,r.receiveGlobalIllumination=t.receiveAmbientOcclusion&&e.globalIlluminationEnabled):r.receiveShadows=r.hasShadowHighlights=r.receiveAmbientOcclusion=r.receiveGlobalIllumination=!1,r.textureAlphaPremultiplied=!!t.textureAlphaPremultiplied,r.pbrMode=t.usePBR?t.unlit?7:t.isSchematic?2:1:0,r.emissionSource=t.emissionSource,r.offsetBackfaces=!(!this.transparent||!t.offsetTransparentBackfaces),r.snowCover=e.snowCover>0,r.hasColorTextureTransform=!!t.colorTextureTransformMatrix,r.hasNormalTextureTransform=!!t.normalTextureTransformMatrix,r.hasEmissionTextureTransform=!!t.emissiveTextureTransformMatrix,r.hasOcclusionTextureTransform=!!t.occlusionTextureTransformMatrix,r.hasMetallicRoughnessTextureTransform=!!t.metallicRoughnessTextureTransformMatrix}intersectRay(e,t,r,i,n,o){let a=this._getMaterialVerticalOffset(t,r);null!=a&&(i=(0,d.Re)(cr,i,a),n=(0,d.Re)(ur,n,a)),o=function(e,t,r,i){let n=ft(t);if(!n)return e;let o=(0,d.oW)(xt,i,r);return(t,r,i,a)=>e(t,mt(n,o,r,i),i,a)}(o,this._configuration,i,n),(0,pe.Uy)(e,r,i,n,(0,Ye.ou)(r.verticalOffset),o)}intersectScreenPolygon(e,t,r,i){return function(e,t,r){return null==e?null:(e.renderDistance=function(e,t,r,i,n){let o=ft(r);return o?mt(o,(0,d.oW)(xt,n,i),e,t):e}(e.renderDistance,e.hasNormal?e.normal:null,t,r,e.point),e)}(Re(e,r,t,i,this._createScreenPolygonVertexDisplacement(t,r)),this._configuration,r.camera.eye)}createGLMaterial(e){return new sr(e)}createBufferWriter(){return new et(this._layout)}get transparent(){let{drivenOpacity:e,opacity:t,externalColor:r,layerOpacity:i,texture:n,textureId:o,textureAlphaMode:a,colorMixMode:s}=this.parameters,l=r[3];return e||t<1&&"replace"!==s||l<1&&"ignore"!==s||i<1||(null!=n||null!=o)&&1!==a&&2!==a&&"replace"!==s}_createScreenPolygonVertexDisplacement(e,t){let r=this._getMaterialVerticalOffset(e,t);return null==r?null:{applyToVertex:(e,t,i,n)=>(e[0]=t+r[0],e[1]=i+r[1],e[2]=n+r[2],e),applyToAabb:e=>((0,f.Ne)(e,(0,d.WQ)(vr,(0,f.pg)(e,vr),r)),(0,f.vI)(e,(0,d.WQ)(vr,(0,f.Lu)(e,vr),r)),e)}}_getMaterialVerticalOffset(e,t){if(null==this.parameters.verticalOffset)return null;let r=t.camera;(0,d.hZ)(fr,e[12],e[13],e[14]);let i=null;switch(t.viewingMode){case 1:i=(0,d.S8)(hr,fr);break;case 2:i=(0,d.C)(hr,dr)}let n=(0,d.Re)(mr,fr,r.eye),o=(0,d.Bw)(n),a=(0,d.hs)(n,n,1/o),s=null;this.parameters.screenSizePerspective&&(s=(0,d.Om)(i,a));let l=(0,fe.kE)(r,o,this.parameters.verticalOffset,s??0,this.parameters.screenSizePerspective,null);return(0,d.hs)(i,i,l),(0,d.ei)(pr,i,t.transform.inverseRotation)}}class sr extends oe{constructor(e){super({...e,...e.material.parameters})}beginSlot(e){this._material.setParameters({receiveShadows:e.shadowMap.enabled});let t=this._material.parameters;this.updateTexture(t.textureId);let r=e.camera.viewInverseTransposeMatrix;return(0,d.hZ)(t.origin,r[3],r[7],r[11]),this._material.setParameters(this.textureBindParameters),this.getTechnique(t.treeRendering?nr:Kt,e)}}class lr extends Jt{constructor(){super(...arguments),this.treeRendering=!1,this.useIndexing=!1,this.hasVertexTangents=!1,this.unlit=!1}get hasNormalTexture(){return!this.treeRendering&&!!this.normalTextureId}get hasColorTexture(){return!!this.textureId}get hasMetallicRoughnessTexture(){return!this.treeRendering&&!!this.metallicRoughnessTextureId}get hasOcclusionTexture(){return!this.treeRendering&&!!this.occlusionTextureId}get emissionSource(){return null!=this.emissiveTextureId&&0===this.emissiveSource?3:0===this.emissiveSource?2:1}get hasTextures(){return this.hasColorTexture||this.hasNormalTexture||this.hasMetallicRoughnessTexture||3===this.emissionSource||this.hasOcclusionTexture}}const cr=(0,h.vt)(),ur=(0,h.vt)(),dr=(0,h.fA)(0,0,1),hr=(0,h.vt)(),fr=(0,h.vt)(),mr=(0,h.vt)(),pr=(0,h.vt)(),vr=(0,h.vt)(),gr=()=>I.A.getLogger("esri.views.3d.layers.graphics.objectResourceUtils");class xr{constructor(e,t,r){this.resource=e,this.textures=t,this.usedMemory=r}}function _r(e){let t=e.params,r=t.topology,i=!0;switch(t.vertexAttributes||(gr().warn("Geometry must specify vertex attributes"),i=!1),t.topology){case"PerAttributeArray":break;case"Indexed":case null:case void 0:{let e=t.faces;if(e){if(t.vertexAttributes)for(let r in t.vertexAttributes){let t=e[r];t?.values?(null!=t.valueType&&"UInt32"!==t.valueType&&(gr().warn(`Unsupported indexed geometry indices type '${t.valueType}', only UInt32 is currently supported`),i=!1),null!=t.valuesPerElement&&1!==t.valuesPerElement&&(gr().warn(`Unsupported indexed geometry values per element '${t.valuesPerElement}', only 1 is currently supported`),i=!1)):(gr().warn(`Indexed geometry does not specify face indices for '${r}' attribute`),i=!1)}}else gr().warn("Indexed geometries must specify faces"),i=!1;break}default:gr().warn(`Unsupported topology '${r}'`),i=!1}e.params.material||(gr().warn("Geometry requires material"),i=!1);let n=e.params.vertexAttributes;for(let e in n)n[e].values||(gr().warn("Geometries with externally defined attributes are not yet supported"),i=!1);return i}function br(e){let t=(0,f.Ie)();return e.forEach(e=>{let r=e.boundingInfo;null!=r&&(0,f.RF)(t,r.box)}),t}function yr(e){switch(e){case"mask":return 2;case"maskAndTransparency":return 3;case"none":return 1;default:return 0}}function wr(e){let t=e.params;return{id:1,material:t.material,texture:t.texture,region:t.texture}}const Mr=new R.A(1,2,"wosr");async function Tr(e,t){let o,a=function(e){let t=e.match(/(.*\.(gltf|glb))(\?lod=([0-9]+))?$/);return t?{fileType:"gltf",url:t[1],specifiedLodIndex:null==t[4]?null:Number(t[4])}:{fileType:e.match(/(.*\.(json|json\.gz))$/)?"wosr":"unknown",url:e,specifiedLodIndex:null}}((0,n.EM)(e));if("wosr"===a.fileType){let e=await(t.cache?t.cache.loadWOSR(a.url,t):async function(e,t){let r=await async function(e,t){let r=await(0,A.Ke)((0,C.A)(e,t));if(r.ok)return r.value.data;(0,D.QP)(r.error),function(e){throw new E.A("",`Request for object resource failed: ${e}`)}(r.error)}(e,t),i=await async function(e,t){let r=[];for(let i in e){let n=e[i],o=n.images[0].data;if(!o){gr().warn("Externally referenced texture data is not yet supported");continue}let a=n.encoding+";base64,"+o,s="/textureDefinitions/"+i,l="rgba"===n.channels?n.alphaChannelUsage||"transparency":"none",c={noUnpackFlip:!0,wrap:{s:10497,t:10497},preMultiplyAlpha:1!==yr(l)},u=t?.disableTextures?Promise.resolve(null):(0,B.D)(a,t);r.push(u.then(e=>({refId:s,image:e,parameters:c,alphaChannelUsage:l})))}let i=await Promise.all(r),n={};for(let e of i)n[e.refId]=e;return n}(r.textureDefinitions??{},t),n=0;for(let e in i)if(i.hasOwnProperty(e)){let t=i[e];n+=t?.image?t.image.width*t.image.height*4:0}return new xr(r,i,n+(0,O.Qh)(r))}(a.url,t)),{engineResources:r,referenceBoundingBox:i}=function(e,t){let r=[],i=[],n=[],o=new P,a=e.resource,s=R.A.parse(a.version||"1.0","wosr");Mr.validate(s);let l=a.model.name,c=a.model.geometries,u=a.materialDefinitions??{},d=e.textures,f=0,m=new Map;for(let e=0;e<c.length;e++){let a=c[e];if(!_r(a))continue;let s=wr(a),l=a.params.vertexAttributes,p=[],v=e=>{if("PerAttributeArray"===a.params.topology)return null;let t=a.params.faces;for(let r in t)if(r===e)return t[r].values;return null},g=l.position,x=g.values.length/g.valuesPerElement;for(let e in l){let t=l[e],r=t.values,i=v(e)??(0,F.tM)(x);p.push([e,new N.n(r,i,t.valuesPerElement,!0)])}let _=s.texture,b=d&&d[_];if(b&&!m.has(_)){let{image:e,parameters:t}=b,r=new ee.h(e,t);i.push(r),m.set(_,r)}let y=m.get(_),w=y?y.id:void 0,M=s.material,T=o.get(M,_);if(null==T){let e=u[M.slice(M.lastIndexOf("/")+1)].params;1===e.transparency&&(e.transparency=0);let r=b?yr(b.alphaChannelUsage):void 0,i={ambient:(0,h.ci)(e.diffuse),diffuse:(0,h.ci)(e.diffuse),opacity:1-(e.transparency||0),textureAlphaMode:r,textureAlphaCutoff:.33,textureId:w,doubleSided:!0,cullFace:0,colorMixMode:e.externalColorMixMode||"tint",textureAlphaPremultiplied:b?.parameters.preMultiplyAlpha??!1};t?.materialParameters&&Object.assign(i,t.materialParameters),T=new ar(i,t),o.set(M,_,T)}n.push(T);let S=new K(T,p);f+=p.find(e=>"position"===e[0])?.[1]?.indices.length??0,r.push(S)}return{engineResources:[{name:l,stageResources:{textures:i,materials:n,geometries:r},pivotOffset:a.model.pivotOffset,numberOfVertices:f,lodThreshold:null}],referenceBoundingBox:br(r)}}(e,t);return{lods:r,referenceBoundingBox:i,isEsriSymbolResource:!1,isWosr:!0}}if(t.cache)o=await t.cache.loadGLTF(a.url,t,!!t.usePBR,!!t.useEmissive);else{let{loadGLTF:e}=await r.e(1698).then(()=>r(51698));o=await e(new _.R,a.url,t,t.usePBR,t.useEmissive)}let{engineResources:s,referenceBoundingBox:m}=function(e,t,r){let n=e.model,o=e.meta,a=n.meta?.ESRI_proxyEllipsoid,s=o.isEsriSymbolResource&&null!=a&&"EsriRealisticTreesStyle"===o.ESRI_webstyle;s&&!e.customMeta.esriTreeRendering&&(e.customMeta.esriTreeRendering=!0,function(e,t){for(let r=0;r<e.model.lods.length;++r){let i=e.model.lods[r];for(let n of i.parts){let i=n.attributes.normal;if(null==i)return;let o=n.attributes.position,a=o.count,s=(0,h.vt)(),u=(0,h.vt)(),f=(0,h.vt)(),m=new Float32Array(4*a),v=new Float32Array(3*a),g=(0,l.B8)((0,c.vt)(),n.transform),x=0,_=0;for(let l=0;l<a;l++){o.getVec(l,u),i.getVec(l,s),(0,d.Z0)(u,u,n.transform),(0,d.Re)(f,u,t.center),(0,d.Qr)(f,f,t.radius);let a=f[2],c=(0,d.Bw)(f),h=Math.min(.45+.55*c*c,1)**2.2;(0,d.Qr)(f,f,t.radius),null!==g&&(0,d.Z0)(f,f,g),(0,d.S8)(f,f),r+1!==e.model.lods.length&&e.model.lods.length>1&&(a>-1?(0,d.Cc)(f,f,s,.2):(0,d.Cc)(f,f,s,Math.min(-4*a-3.8,1))),v[x]=f[0],v[x+1]=f[1],v[x+2]=f[2],x+=3,m[_]=h,m[_+1]=h,m[_+2]=h,m[_+3]=1,_+=4}n.attributes.normal=new p.xs(v.buffer),n.attributes.color=new p.Eq(m.buffer)}}}(e,a));let m=!!t.usePBR,v=o.isEsriSymbolResource?{usePBR:m,isSchematic:!1,treeRendering:s,mrrFactors:qt.SY}:{usePBR:m,isSchematic:!1,treeRendering:!1,mrrFactors:qt.mb},g={...t.materialParameters,treeRendering:s},x=[],_=new Map,b=new Map,w=n.lods.length,T=(0,f.Ie)();return n.lods.forEach((e,o)=>{let a=!0===t.skipHighLods&&(w>1&&0===o||w>3&&1===o)||!1===t.skipHighLods&&null!=r&&o!==r;if(a&&0!==o)return;let l=new S(e.name,e.lodThreshold,[0,0,0]);e.parts.forEach(e=>{let r=a?new ar({},t):function(e,t,r,n,o,a,s,l,c){let d=e.materials.get(t.material);if(null==d)return null;let{normal:f,color:m,texCoord0:p,tangent:v}=t.attributes,g=t.material+(f?"_normal":"")+(m?"_color":"")+(p?"_texCoord0":"")+(v?"_tangent":""),x=null!=t.attributes.texCoord0,_=null!=t.attributes.normal,b=function(e){switch(e){case"BLEND":return 0;case"MASK":return 2;case"OPAQUE":case null:case void 0:return 1}}(d.alphaMode);if(!a.has(g)){if(x){let t=(t,r=!1,i=!1)=>{if(null!=t&&!s.has(t)){let n=e.textures.get(t);if(n){let e=n.data,o=r&&!(0,y.x3)(e)?l.compressionOptions:void 0;s.set(t,new ee.h((0,y.x3)(e)?e.data:e,{...n.parameters,preMultiplyAlpha:!(0,y.x3)(e)&&i,encoding:(0,y.x3)(e)?e.encoding:void 0,compressionOptions:o}))}}},r=1!==b&&!c;t(d.colorTexture,r,1!==b),t(d.normalTexture),t(d.occlusionTexture,!0),t(d.emissiveTexture),t(d.metallicRoughnessTexture,!0)}let r=(0,i.xV)(d.color[0]),f=(0,i.xV)(d.color[1]),m=(0,i.xV)(d.color[2]),p=null!=d.colorTexture&&x?s.get(d.colorTexture):null,v=(0,qt.Jr)(d),w=null==d.normalTextureTransform?.scale?u.Un:d.normalTextureTransform?.scale;a.set(g,new ar({...n,customDepthTest:1,textureAlphaMode:b,textureAlphaCutoff:d.alphaCutoff,diffuse:[r,f,m],ambient:[r,f,m],opacity:"OPAQUE"===d.alphaMode?1:d.opacity,doubleSided:d.doubleSided,doubleSidedType:"winding-order",cullFace:d.doubleSided?0:2,hasVertexColors:!!t.attributes.color,hasVertexTangents:!!t.attributes.tangent,normalType:_?0:2,castShadows:!0,receiveShadows:d.receiveShadows,receiveAmbientOcclusion:d.receiveAmbientOcclusion,unlit:d.unlit,textureId:p?.id,colorMixMode:d.colorMixMode,normalTextureId:null!=d.normalTexture&&x?s.get(d.normalTexture).id:void 0,textureAlphaPremultiplied:null!=p&&!!p.parameters.preMultiplyAlpha,occlusionTextureId:null!=d.occlusionTexture&&x?s.get(d.occlusionTexture).id:void 0,emissiveTextureId:null!=d.emissiveTexture&&x&&!d.unlit?s.get(d.emissiveTexture).id:void 0,metallicRoughnessTextureId:null!=d.metallicRoughnessTexture&&x?s.get(d.metallicRoughnessTexture).id:void 0,emissiveBaseColor:d.unlit?h.uY:[d.emissiveFactor[0],d.emissiveFactor[1],d.emissiveFactor[2]],emissiveStrengthKHR:null==d.emissiveStrengthKHR?1:d.emissiveStrengthKHR,emissiveStrengthFromSymbol:null==o.emissiveStrengthFromSymbol?void 0:o.emissiveStrengthFromSymbol,mrrFactors:v?qt.Bt:[d.metallicFactor,d.roughnessFactor,n.mrrFactors[2]],isSchematic:v,colorTextureTransformMatrix:M(d.colorTextureTransform),normalTextureTransformMatrix:M(d.normalTextureTransform),scale:[w[0],w[1]],occlusionTextureTransformMatrix:M(d.occlusionTextureTransform),emissiveTextureTransformMatrix:M(d.emissiveTextureTransform),metallicRoughnessTextureTransformMatrix:M(d.metallicRoughnessTextureTransform),...o},l))}let w=a.get(g);if(r.stageResources.materials.push(w),x){let e=e=>{null!=e&&r.stageResources.textures.push(s.get(e))};e(d.colorTexture),e(d.normalTexture),e(d.occlusionTexture),e(d.emissiveTexture),e(d.metallicRoughnessTexture)}return w}(n,e,l,v,g,_,b,t,s),{geometry:c,vertexCount:d}=Sr(e,r??new ar({},t)),m=c.boundingInfo;null!=m&&0===o&&(0,f.RF)(T,m.box),null!=r&&(l.stageResources.geometries.push(c),l.numberOfVertices+=d)}),a||x.push(l)}),{engineResources:x,referenceBoundingBox:T}}(o,t,a.specifiedLodIndex);return{lods:s,referenceBoundingBox:m,isEsriSymbolResource:o.meta.isEsriSymbolResource,isWosr:!1}}function Sr(e,t){let r=e.attributes.position.count,i=(0,b.x)(e.indices||r,e.primitiveType),n=m(3*r),{typedBuffer:s,typedBufferStride:l}=e.attributes.position;(0,v.t)(n,s,e.transform,3,l);let c=[["position",new N.n(n,i,3,!0)]];if(null!=e.attributes.normal){let t=m(3*r),{typedBuffer:n,typedBufferStride:s}=e.attributes.normal;(0,a.Ge)(Cr,e.transform),(0,v.b)(t,n,Cr,3,s),(0,o.or)(Cr)&&(0,v.n)(t,t),c.push(["normal",new N.n(t,i,3,!0)])}if(null!=e.attributes.tangent){let t=m(4*r),{typedBuffer:n,typedBufferStride:s}=e.attributes.tangent;(0,a.z0)(Cr,e.transform),(0,g.t)(t,n,Cr,4,s),(0,o.or)(Cr)&&(0,v.n)(t,t,4),c.push(["tangent",new N.n(t,i,4,!0)])}if(null!=e.attributes.texCoord0){let t=m(2*r),{typedBuffer:n,typedBufferStride:o}=e.attributes.texCoord0;(0,x.a)(t,n,2,o),c.push(["uv0",new N.n(t,i,2,!0)])}let u=e.attributes.color;if(null!=u){let t=new Uint8Array(4*r);4===u.elementCount?u instanceof p.Eq?(0,g.b)(t,u,1,255):(u instanceof p.XP||u instanceof p.Uz)&&(0,g.b)(t,u,1/255,255):(t.fill(255),u instanceof p.xs?(0,v.f)(t,u.typedBuffer,1,255,4,u.typedBufferStride):(e.attributes.color instanceof p.eI||e.attributes.color instanceof p.nS)&&(0,v.f)(t,u.typedBuffer,1/255,255,4,e.attributes.color.typedBufferStride)),c.push(["color",new N.n(t,i,4,!0)])}return{geometry:new K(t,c),vertexCount:r}}const Cr=(0,s.vt)()},26857(e,t,r){var i=r(32198),n=r(69622),o=r(91429);let a=class extends n.A{constructor(){super(...arguments),this.SCENEVIEW_HITTEST_RETURN_INTERSECTOR=!1,this.DECONFLICTOR_SHOW_VISIBLE=!1,this.DECONFLICTOR_SHOW_INVISIBLE=!1,this.DECONFLICTOR_SHOW_GRID=!1,this.LABELS_SHOW_BORDER=!1,this.TEXT_SHOW_BASELINE=!1,this.TEXT_SHOW_BORDER=!1,this.OVERLAY_DRAW_DEBUG_TEXTURE=!1,this.OVERLAY_SHOW_CENTER=!1,this.SHOW_POI=!1,this.OCCLUSION_QUERY_DEBUG_PIXEL=!1,this.ENABLE_OPTIMIZATIONS=!0,this.TESTS_DISABLE_FAST_UPDATES=!1,this.DRAW_MESH_GEOMETRY_NORMALS=!1,this.FEATURE_TILE_FETCH_SHOW_TILES=!1,this.FEATURE_TILE_TREE_SHOW_TILES=!1,this.TERRAIN_TILE_TREE_SHOW_TILES=!1,this.I3S_TREE_SHOW_TILES=!1,this.I3S_SHOW_MODIFICATIONS=!1,this.UPDATING=!1,this.LOD_INSTANCE_RENDERER_DISABLE_UPDATES=!1,this.LOD_INSTANCE_RENDERER_COLORIZE_BY_LEVEL=!1,this.EDGES_SHOW_HIDDEN_TRANSPARENT_EDGES=!1,this.LINE_WIREFRAMES=!1,this.FLOW_GLOBAL_SCALE_THRESHOLD=null}};(0,i.Cg)([(0,o.MZ)()],a.prototype,"SCENEVIEW_HITTEST_RETURN_INTERSECTOR",void 0),(0,i.Cg)([(0,o.MZ)()],a.prototype,"DECONFLICTOR_SHOW_VISIBLE",void 0),(0,i.Cg)([(0,o.MZ)()],a.prototype,"DECONFLICTOR_SHOW_INVISIBLE",void 0),(0,i.Cg)([(0,o.MZ)()],a.prototype,"DECONFLICTOR_SHOW_GRID",void 0),(0,i.Cg)([(0,o.MZ)()],a.prototype,"LABELS_SHOW_BORDER",void 0),(0,i.Cg)([(0,o.MZ)()],a.prototype,"TEXT_SHOW_BASELINE",void 0),(0,i.Cg)([(0,o.MZ)()],a.prototype,"TEXT_SHOW_BORDER",void 0),(0,i.Cg)([(0,o.MZ)()],a.prototype,"OVERLAY_DRAW_DEBUG_TEXTURE",void 0),(0,i.Cg)([(0,o.MZ)()],a.prototype,"OVERLAY_SHOW_CENTER",void 0),(0,i.Cg)([(0,o.MZ)()],a.prototype,"SHOW_POI",void 0),(0,i.Cg)([(0,o.MZ)()],a.prototype,"OCCLUSION_QUERY_DEBUG_PIXEL",void 0),(0,i.Cg)([(0,o.MZ)()],a.prototype,"ENABLE_OPTIMIZATIONS",void 0),(0,i.Cg)([(0,o.MZ)()],a.prototype,"TESTS_DISABLE_FAST_UPDATES",void 0),(0,i.Cg)([(0,o.MZ)()],a.prototype,"DRAW_MESH_GEOMETRY_NORMALS",void 0),(0,i.Cg)([(0,o.MZ)()],a.prototype,"FEATURE_TILE_FETCH_SHOW_TILES",void 0),(0,i.Cg)([(0,o.MZ)()],a.prototype,"FEATURE_TILE_TREE_SHOW_TILES",void 0),(0,i.Cg)([(0,o.MZ)()],a.prototype,"TERRAIN_TILE_TREE_SHOW_TILES",void 0),(0,i.Cg)([(0,o.MZ)()],a.prototype,"I3S_TREE_SHOW_TILES",void 0),(0,i.Cg)([(0,o.MZ)()],a.prototype,"I3S_SHOW_MODIFICATIONS",void 0),(0,i.Cg)([(0,o.MZ)()],a.prototype,"UPDATING",void 0),(0,i.Cg)([(0,o.MZ)()],a.prototype,"LOD_INSTANCE_RENDERER_DISABLE_UPDATES",void 0),(0,i.Cg)([(0,o.MZ)()],a.prototype,"LOD_INSTANCE_RENDERER_COLORIZE_BY_LEVEL",void 0),(0,i.Cg)([(0,o.MZ)()],a.prototype,"EDGES_SHOW_HIDDEN_TRANSPARENT_EDGES",void 0),(0,i.Cg)([(0,o.MZ)()],a.prototype,"LINE_WIREFRAMES",void 0),(0,i.Cg)([(0,o.MZ)()],a.prototype,"FLOW_GLOBAL_SCALE_THRESHOLD",void 0),a=(0,i.Cg)([(0,o.$K)("esri.views.3d.support.debugFlags")],a);const s=new a;r.d(t,["b",0,s])},46686(e,t,r){r.d(t,{A7:()=>o,Y0:()=>n});var i=r(29941);class n extends i.v{constructor(e){super(),this.spherical=e,this.draped=!1}}function o(e){(function(e){e.varyings.add("linearDepth","float",{invariant:!0})})(e),e.vertex.code.add("void forwardLinearDepth(float _linearDepth) { linearDepth = _linearDepth; }")}},32680(e,t,r){r.d(t,{M:()=>n});var i=r(31821);function n(e){e.vertex.code.add(i.H`vec4 offsetBackfacingClipPosition(vec4 posClip, vec3 posWorld, vec3 normalWorld, vec3 camPosWorld) {
|
|
223
|
+
fragBlur = b / w_total;`),e}const h=Object.freeze(Object.defineProperty({__proto__:null,build:d},Symbol.toStringTag,{value:"Module"}));r.d(t,["S",0,h])},43609(e,t,r){r.d(t,{a:()=>o,f:()=>a,n:()=>n});var i=r(34275);function n(e,t){o(e.typedBuffer,t.typedBuffer,e.typedBufferStride,t.typedBufferStride)}function o(e,t,r=2,n=r){let o=t.length/2,a=0,s=0;if(!(0,i.iu)(t)||(0,i.dk)(t)){for(let i=0;i<o;++i)e[a]=t[s],e[a+1]=t[s+1],a+=r,s+=n;return}let l=(0,i.a3)(t);if((0,i.JI)(t))for(let i=0;i<o;++i)e[a]=Math.max(t[s]/l,-1),e[a+1]=Math.max(t[s+1]/l,-1),a+=r,s+=n;else for(let i=0;i<o;++i)e[a]=t[s]/l,e[a+1]=t[s+1]/l,a+=r,s+=n}function a(e,t,r,i){let n=e.typedBuffer,o=e.typedBufferStride,a=i?.count??e.count,s=(i?.dstIndex??0)*o;for(let e=0;e<a;++e)n[s]=t,n[s+1]=r,s+=o}Object.freeze(Object.defineProperty({__proto__:null,fill:a,normalizeIntegerBuffer:o,normalizeIntegerBufferView:n},Symbol.toStringTag,{value:"Module"}))},73354(e,t,r){r.d(t,{a:()=>d,b:()=>s,c:()=>n,d:()=>a,e:()=>h,f:()=>u,l:()=>c,n:()=>f,t:()=>o}),r(44208);var i=r(72727);function n(e,t,r){o(e.typedBuffer,t.typedBuffer,r,e.typedBufferStride,t.typedBufferStride)}function o(e,t,r,n=3,o=n){let a=(0,i.k)(e.length,n,3),s=(0,i.k)(t.length,o,3),l=Math.min(a,s),c=r[0],u=r[1],d=r[2],h=r[4],f=r[5],m=r[6],p=r[8],v=r[9],g=r[10],x=r[12],_=r[13],b=r[14],y=0,w=0;for(let r=0;r<l;r++){let r=t[y],i=t[y+1],a=t[y+2];e[w]=c*r+h*i+p*a+x,e[w+1]=u*r+f*i+v*a+_,e[w+2]=d*r+m*i+g*a+b,y+=o,w+=n}return e}function a(e,t,r){s(e.typedBuffer,t.typedBuffer,r,e.typedBufferStride,t.typedBufferStride)}function s(e,t,r,n=3,o=n){let a=(0,i.k)(e.length,n,3),s=(0,i.k)(t.length,o,3),l=Math.min(a,s),c=r[0],u=r[1],d=r[2],h=r[3],f=r[4],m=r[5],p=r[6],v=r[7],g=r[8],x=0,_=0;for(let r=0;r<l;r++){let r=t[x],i=t[x+1],a=t[x+2];e[_]=c*r+h*i+p*a,e[_+1]=u*r+f*i+v*a,e[_+2]=d*r+m*i+g*a,x+=o,_+=n}}function l(e,t,r,i=3,n=i){let o=Math.min(e.length/i,t.length/n),a=0,s=0;for(let l=0;l<o;l++)e[s]=r*t[a],e[s+1]=r*t[a+1],e[s+2]=r*t[a+2],a+=n,s+=i;return e}function c(e,t,r,i){u(e.typedBuffer,t.typedBuffer,r,i,e.typedBufferStride,t.typedBufferStride)}function u(e,t,r,i,n=3,o=n){let a=Math.min(e.length/n,t.length/o),s=0,l=0,c=1/2.2;for(let u=0;u<a;u++)e[l]=i*(r*t[s])**c,e[l+1]=i*(r*t[s+1])**c,e[l+2]=i*(r*t[s+2])**c,s+=o,l+=n}function d(e,t,r,n=3,o=n){let a=(0,i.k)(e.length,n,3),s=(0,i.k)(t.length,o,3),l=Math.min(a,s),c=0,u=0;for(let i=0;i<l;i++)e[u]=t[c]+r[0],e[u+1]=t[c+1]+r[1],e[u+2]=t[c+2]+r[2],c+=o,u+=n;return e}function h(e,t){f(e.typedBuffer,t.typedBuffer,e.typedBufferStride,t.typedBufferStride)}function f(e,t,r=3,i=r){let n=Math.min(e.length/r,t.length/i),o=0,a=0;for(let s=0;s<n;s++){let n=t[o],s=t[o+1],l=t[o+2],c=n*n+s*s+l*l;if(c>0){let t=1/Math.sqrt(c);e[a]=t*n,e[a+1]=t*s,e[a+2]=t*l}o+=i,a+=r}}Object.freeze(Object.defineProperty({__proto__:null,linearToSRGB:u,linearToSRGBView:c,normalize:f,normalizeView:h,scale:l,scaleView:function(e,t,r){l(e.typedBuffer,t.typedBuffer,r,e.typedBufferStride,t.typedBufferStride)},shiftRight:function(e,t,r){let i=Math.min(e.count,t.count),n=e.typedBuffer,o=e.typedBufferStride,a=t.typedBuffer,s=t.typedBufferStride,l=0,c=0;for(let e=0;e<i;e++)n[c]=a[l]>>r,n[c+1]=a[l+1]>>r,n[c+2]=a[l+2]>>r,l+=s,c+=o},transformMat3:s,transformMat3View:a,transformMat4:o,transformMat4View:n,translate:d},Symbol.toStringTag,{value:"Module"}))},50867(e,t,r){r.d(t,{a:()=>n,b:()=>c,l:()=>l,n:()=>a,t:()=>o}),r(44208);var i=r(72727);function n(e,t,r){o(e.typedBuffer,t.typedBuffer,r,e.typedBufferStride,t.typedBufferStride)}function o(e,t,r,n=4,o=n){let a=(0,i.k)(e.length,n,4),s=(0,i.k)(t.length,o,4),l=Math.min(a,s),c=r[0],u=r[1],d=r[2],h=r[3],f=r[4],m=r[5],p=r[6],v=r[7],g=r[8],x=0,_=0;for(let r=0;r<l;r++){let r=t[x],i=t[x+1],a=t[x+2],s=t[x+3];e[_]=c*r+h*i+p*a,e[_+1]=u*r+f*i+v*a,e[_+2]=d*r+m*i+g*a,e[_+3]=s,x+=o,_+=n}}function a(e,t){let r=Math.min(e.count,t.count),i=e.typedBuffer,n=e.typedBufferStride,o=t.typedBuffer,a=t.typedBufferStride;for(let e=0;e<r;e++){let t=e*n,r=e*a,s=o[r],l=o[r+1],c=o[r+2],u=s*s+l*l+c*c;if(u>0){let e=1/Math.sqrt(u);i[t]=e*s,i[t+1]=e*l,i[t+2]=e*c}}}function s(e,t,r,i=4){let n=Math.min(e.length/i,t.count),o=t.typedBuffer,a=t.typedBufferStride,s=0,l=0;for(let t=0;t<n;t++)e[l]=r*o[s],e[l+1]=r*o[s+1],e[l+2]=r*o[s+2],e[l+3]=r*o[s+3],s+=a,l+=i}function l(e,t,r,i){c(e.typedBuffer,t,r,i,e.typedBufferStride)}function c(e,t,r,i,n=4){let o=Math.min(e.length/n,t.count),a=t.typedBuffer,s=t.typedBufferStride,l=0,c=0,u=1/2.2;for(let t=0;t<o;t++)e[c]=i*(r*a[l])**u,e[c+1]=i*(r*a[l+1])**u,e[c+2]=i*(r*a[l+2])**u,e[c+3]=i*r*a[l+3],l+=s,c+=n}Object.freeze(Object.defineProperty({__proto__:null,linearToSRGB:c,linearToSRGBView:l,normalize:a,scale:s,scaleView:function(e,t,r){s(e.typedBuffer,t,r,e.typedBufferStride)},transformMat3:o,transformMat3View:n,transformMat4:function(e,t,r,n=4,o=n){let a=(0,i.k)(e.length,n,4),s=(0,i.k)(t.length,o,4),l=Math.min(a,s),c=r[0],u=r[1],d=r[2],h=r[3],f=r[4],m=r[5],p=r[6],v=r[7],g=r[8],x=r[9],_=r[10],b=r[11],y=r[12],w=r[13],M=r[14],T=r[15],S=0,C=0;for(let r=0;r<l;r++){let r=t[S],i=t[S+1],a=t[S+2],s=t[S+3];e[C]=c*r+f*i+g*a+y*s,e[C+1]=u*r+m*i+x*a+w*s,e[C+2]=d*r+p*i+_*a+M*s,e[C+3]=h*r+v*i+b*a+T*s,S+=o,C+=n}},transformMat4View:function(e,t,r){let n=e.typedBuffer,o=e.typedBufferStride,a=t.typedBuffer,s=t.typedBufferStride,l=(0,i.k)(n.length,o,4),c=(0,i.k)(a.length,s,4),u=Math.min(l,c),d=r[0],h=r[1],f=r[2],m=r[3],p=r[4],v=r[5],g=r[6],x=r[7],_=r[8],b=r[9],y=r[10],w=r[11],M=r[12],T=r[13],S=r[14],C=r[15];for(let e=0;e<u;e++){let t=e*o,r=e*s,i=a[r],l=a[r+1],c=a[r+2],u=a[r+3];n[t]=d*i+p*l+_*c+M*u,n[t+1]=h*i+v*l+b*c+T*u,n[t+2]=f*i+g*l+y*c+S*u,n[t+3]=m*i+x*l+w*c+C*u}}},Symbol.toStringTag,{value:"Module"}))},69052(e,t,r){r.d(t,{hr:()=>n});var i=r(34727);class n{constructor(e,t){this.min=e,this.max=t,this.range=t-e}normalize(e,t=0,r=!1){return o(this.range,this.min,this.max,e,t,r)}clamp(e,t=0){return(0,i.qE)(e-t,this.min,this.max)+t}monotonic(e,t,r){return e<t?t:t+a(this.range,e-t,r)}minimalMonotonic(e,t,r){return o(this.range,e,e+this.range,t,r)}center(e,t,r){return t=this.monotonic(e,t,r),this.normalize((e+t)/2,r)}diff(e,t,r){return this.monotonic(e,t,r)-e}shortestSignedDiff(e,t){e=this.normalize(e);let r=(t=this.normalize(t))-e,i=t<e?this.minimalMonotonic(e,t)-e:t-this.minimalMonotonic(t,e);return Math.abs(r)<Math.abs(i)?r:i}contains(e,t,r){return t=this.minimalMonotonic(e,t),(r=this.minimalMonotonic(e,r))>e&&r<t}}function o(e,t,r,i,n=0,o=!1){return(i-=n)<t?i+=a(e,t-i):i>r&&(i-=a(e,i-r)),o&&i===r&&(i=t),i+n}function a(e,t,r=0){return Math.ceil((t-r)/e)*e+r}const s=new n(0,2*Math.PI),l=(new n(-Math.PI,Math.PI),new n(0,360));r.d(t,["ie",0,l,"uC",0,s])},46140(e,t,r){r.d(t,{A:()=>n});var i=r(49186);class n{constructor(e,t,r=""){this.major=e,this.minor=t,this._context=r}lessThan(e,t){return this.major<e||e===this.major&&this.minor<t}greaterEqual(e,t){return!this.lessThan(e,t)}toString(){return`${this.major}.${this.minor}`}validate(e){if(this.major!==e.major){let t=this._context&&this._context+":",r=this._context&&this._context+" ";throw new i.A(t+"unsupported-version",`Required major ${r}version is '${this.major}', but got '\${version.major}.\${version.minor}'`,{version:e})}}clone(){return new n(this.major,this.minor,this._context)}static parse(e,t=""){let[r,o]=e.split("."),a=/^\s*\d+\s*$/;if(!r?.match||!a.test(r)){let r=t&&t+":";throw new i.A(r+"invalid-version","Expected major version to be a number, but got '${version}'",{version:e})}if(!o?.match||!a.test(o)){let r=t&&t+":";throw new i.A(r+"invalid-version","Expected minor version to be a number, but got '${version}'",{version:e})}return new n(parseInt(r,10),parseInt(o,10),t)}}},61473(e,t,r){function i(e){return e||=globalThis.location.hostname,c.some(t=>null!=e?.match(t))}function n(e,t){return e?(t||=globalThis.location.hostname,t?null!=t.match(o)||null!=t.match(s)?e.replace("static.arcgis.com","staticdev.arcgis.com"):null!=t.match(a)||null!=t.match(l)?e.replace("static.arcgis.com","staticqa.arcgis.com"):e:e):null}r.d(t,{EM:()=>n,b5:()=>i});const o=/^devext\.arcgis\.com$/,a=/^qaext\.arcgis\.com$/,s=/^[\w-]*\.mapsdevext\.arcgis\.com$/,l=/^[\w-]*\.mapsqa\.arcgis\.com$/,c=[/^([\w-]*\.)?[\w-]*\.zrh-dev-local\.esri\.com$/,o,a,/^jsapps\.esri\.com$/,s,l]},18370(e,t,r){r.d(t,{z:()=>n});class i{constructor(e){this._import=e,this.module=null,this._promise=null}getImportPromise(){return this._promise??=this._import().then(async e=>(this.module=e,e)),this._promise}}function n(e){return new i(e)}},88340(e,t,r){function i(){return new Float32Array(2)}function n(e,t){let r=new Float32Array(2);return r[0]=e,r[1]=t,r}function o(){return i()}function a(){return n(1,1)}function s(){return n(1,0)}function l(){return n(0,1)}r.d(t,{fA:()=>n,vt:()=>i});const c=o(),u=a(),d=s(),h=l();Object.freeze(Object.defineProperty({__proto__:null,ONES:u,UNIT_X:d,UNIT_Y:h,ZEROS:c,clone:function(e){let t=new Float32Array(2);return t[0]=e[0],t[1]=e[1],t},create:i,fromValues:n,ones:a,unitX:s,unitY:l,zeros:o},Symbol.toStringTag,{value:"Module"})),r.d(t,["Un",0,u,"uY",0,c])},69397(e,t,r){r.d(t,{Qf:()=>l,Qh:()=>a,lM:()=>o,ro:()=>c,rq:()=>u});var i=r(44208),n=r(34275);function o(e){if(!e)return 0;let t=d;for(let r in e)e.hasOwnProperty(r)&&(t+=s(e[r],!1));return t}function a(e){if(!e)return 0;if("number"==typeof e[0])return l(e);if(Array.isArray(e))return function(e){let t=e.length;if(0===t||"number"==typeof e[0])return u(e,8);let r=h;for(let i=0;i<t;i++)r+=s(e[i]);return r}(e);let t=d;for(let r in e)e.hasOwnProperty(r)&&(t+=s(e[r]));return t}function s(e,t=!0){switch(typeof e){case"object":return t?a(e):d;case"string":return function(e){return 32+e.length}(e);case"number":return 16;case"boolean":return 4;default:return 8}}function l(...e){return e.reduce((e,t)=>e+c(t),0)}function c(e,t=16){return e?(0,n.iu)(e)?e.byteLength+m:Array.isArray(e)?u(e,t):0:0}function u(e,t){return h+e.length*t}const d=32,h=16,f=(0,i.A)("ios")||!(0,i.A)("chrome")&&!(0,i.A)("opr")?8:4,m=145;r.d(t,["JY",0,f])},65806(e,t,r){r.d(t,{g:()=>a});var i=r(51850),n=r(99917),o=r(9762);function a(e,t,r,i){if((0,n.canProjectWithoutEngine)(e.spatialReference,r))return s[0]=e.x,s[1]=e.y,s[2]=e.z??0,(0,o.projectBuffer)(s,e.spatialReference,0,t,r,0);let a=(0,n.tryProject)(e,r,i);return!!a&&(t[0]=a.x,t[1]=a.y,t[2]=a.z??0,!0)}const s=(0,i.vt)()},27993(e,t,r){r.d(t,{F:()=>s});var i=r(99917),n=r(16930),o=r(9762),a=r(65806);function s(e,t,r,n){return!(null==t||null==n||e.length<2)&&((0,i.canProjectWithoutEngine)(t,n)?(0,o.projectBuffer)(e,t,0,r,n,0,1):(l.x=e[0],l.y=e[1],l.z=e[2],l.spatialReference=t,(0,a.g)(l,r,n)))}const l={x:0,y:0,z:0,hasZ:!0,hasM:!1,spatialReference:n.A.WGS84,type:"point"}},97146(e,t,r){r.d(t,{Dg:()=>o,lC:()=>s,lc:()=>h,my:()=>a,tM:()=>f,uW:()=>n});var i=r(34275);function n(e){return o(e,!0)}function o(e,t){if(Array.isArray(e)){if(e.length<1024)return e}else if(e.length<1024)return Array.from(e);let r=!0,n=!0;return e.some((e,t)=>(r&&=0===e,n&&=e===t,!r&&!n)),r?function(e){if(1===e)return u;if(e<1024)return Array(e).fill(0);if(e>c.length){let t=Math.max(2*c.length,e);c=new Uint8Array(t)}return new Uint8Array(c.buffer,0,e)}(e.length):n?f(e.length):(0,i.iu)(e)&&e.BYTES_PER_ELEMENT===Uint16Array.BYTES_PER_ELEMENT?e:function(e,t){for(let r of e){if(r>=65536)return(0,i.iu)(e)?e:new Uint32Array(e);r>=256&&(t=!1)}return t?new Uint8Array(e):new Uint16Array(e)}(e,!t)}function a(e,t=e){return e<=1024?Array(e):t<=65536?new Uint16Array(e):new Uint32Array(e)}function s(e,t,r){if(0===t.length)return e.slice();if(0===e.length)return t.slice();let i=a(e.length+t.length,r);for(let t=0;t<e.length;++t)i[t]=e[t];for(let r=0;r<t.length;++r)i[e.length+r]=t[r];return i}let l=m(131072),c=new Uint8Array(65536);const u=[0],d=(()=>{let e=new Uint16Array(65536);for(let t=0;t<e.length;++t)e[t]=t;return e})();function h(e){if(e===u)return!0;if(!(0,i.iu)(e))return!1;let{buffer:t}=e;return t===d.buffer||t===l.buffer||t===c.buffer}function f(e){return 1===e?u:e<1024?function(e){let t=Array(e).fill(0);for(let r=0;r<e;r++)t[r]=r;return t}(e):e<d.length?new Uint16Array(d.buffer,0,e):(e>l.length&&(l=m(Math.max(2*l.length,e))),new Uint32Array(l.buffer,0,e))}function m(e){let t=new Uint32Array(e);for(let e=0;e<t.length;e++)t[e]=e;return t}},72727(e,t,r){function i(e,t,r){if(t<=0)return 0;let i=e-r;return i<0?0:Math.floor(i/t)+1}r.d(t,{k:()=>i}),r(53966)},65720(e,t,r){r.d(t,{C:()=>g,vt:()=>p,Qy:()=>v,ui:()=>x,ST:()=>T,bU:()=>C,pw:()=>M,m7:()=>_,ZU:()=>b,GH:()=>w,Pi:()=>y,LJ:()=>S,c8:()=>I});var i=r(4341),n=r(58083),o=r(35522),a=r(51850),s=r(78955),l=r(91829),c=r(70328),u=r(71351);function d(e){return e?{ray:(0,u.vt)(e.ray),c0:e.c0,c1:e.c1}:{ray:(0,u.vt)(),c0:0,c1:Number.MAX_VALUE}}new i.I(()=>d());var h=r(27921);function f(e,t,r,i){let{t0:n,t1:o}=i,a=(0,h.mN)(e,t),s=(0,h.mN)(e,r);if(a>=0&&s>=0)return!1;if(a<0&&s>=0){let e=-a/(s-a);if(e<n)return!1;e<o&&(o=e)}else if(a>=0&&s<0){let e=a/(a-s);if(e>o)return!1;e>n&&(n=e)}return i.t0=n,i.t1=o,!0}var m=r(32114);function p(e){return e?[(0,h.vt)(e[0]),(0,h.vt)(e[1]),(0,h.vt)(e[2]),(0,h.vt)(e[3]),(0,h.vt)(e[4]),(0,h.vt)(e[5])]:[(0,h.vt)(),(0,h.vt)(),(0,h.vt)(),(0,h.vt)(),(0,h.vt)(),(0,h.vt)()]}function v(){return[(0,a.vt)(),(0,a.vt)(),(0,a.vt)(),(0,a.vt)(),(0,a.vt)(),(0,a.vt)(),(0,a.vt)(),(0,a.vt)()]}function g(e,t){for(let r=0;r<O;r++)(0,h.C)(e[r],t[r]);return e}function x(e,t,r,i=F){let a=(0,n.lw)(m.Rc.get(),t,e);(0,n.B8)(a,a);for(let e=0;e<P;++e){let t=(0,s.Z0)(m.Km.get(),D[e],a);(0,o.hZ)(i[e],t[0]/t[3],t[1]/t[3],t[2]/t[3])}!function(e,t){(0,h.Cr)(t[4],t[0],t[3],e[0]),(0,h.Cr)(t[1],t[5],t[6],e[1]),(0,h.Cr)(t[4],t[5],t[1],e[2]),(0,h.Cr)(t[3],t[2],t[6],e[3]),(0,h.Cr)(t[0],t[1],t[2],e[4]),(0,h.Cr)(t[5],t[4],t[7],e[5])}(r,i)}function _(e,t){return b(e,t.center,t.radius)}function b(e,t,r){for(let i=0;i<O;i++){let n=e[i];if(n[0]*t[0]+n[1]*t[1]+n[2]*t[2]+n[3]>=r)return!1}return!0}function y(e,t,r){for(let i of E)if((0,h.wE)(e[i],t,r))return!0;return!1}function w(e,t,r){let i=(0,c.gX)(t,B),n=(0,c.VL)(t)/2,a=(0,c.yr)(t)/2,s=(0,c.uJ)(t)/2;return r?function(e,t,r,i,n,a){let s=(0,o.Z0)(N,t,a);for(let t=0;t<O;t++){let o=e[t];if(o[0]*s[0]+o[1]*s[1]+o[2]*s[2]+o[3]-(Math.abs(o[0]*a[0]+o[1]*a[1]+o[2]*a[2])*r+Math.abs(o[0]*a[4]+o[1]*a[5]+o[2]*a[6])*i+Math.abs(o[0]*a[8]+o[1]*a[9]+o[2]*a[10])*n)>0)return!1}return!0}(e,i,n,a,s,r):function(e,t,r,i,n){for(let o=0;o<O;o++){let a=e[o];if(a[0]*t[0]+a[1]*t[1]+a[2]*t[2]+a[3]-(Math.abs(a[0])*r+Math.abs(a[1])*i+Math.abs(a[2])*n)>0)return!1}return!0}(e,i,n,a,s)}function M(e,t){return A(e,function(e,t=d()){return(0,u.C)(e,t.ray),t.c0=0,t.c1=Number.MAX_VALUE,t}(t,R.get()))}function T(e,t,r){return A(e,function(e,t,r=d()){let i=(0,o.Bw)(e.vector);return(0,u.fA)(e.origin,t,r.ray),r.c0=0,r.c1=i,r}(t,r,R.get()))}function S(e,t,r){return function(e,t,r,i){let n={t0:0,t1:1};for(let o of t)if(!f(e[o],r,i,n))return!1;return n.t0<n.t1}(e,E,t,r)}function C(e,t){for(let r=0;r<O;r++)if((0,h.mN)(e[r],t)>0)return!1;return!0}function A(e,t){for(let r=0;r<O;r++)if(!(0,h.$Q)(e[r],t))return!1;return!0}const E=[0,1,2,3,5],I={bottom:[5,1,0,4],near:[0,1,2,3],far:[5,4,7,6],right:[1,5,6,2],left:[4,0,3,7],top:[7,3,2,6]},O=6,P=8,D=[(0,l.fA)(-1,-1,-1,1),(0,l.fA)(1,-1,-1,1),(0,l.fA)(1,1,-1,1),(0,l.fA)(-1,1,-1,1),(0,l.fA)(-1,-1,1,1),(0,l.fA)(1,-1,1,1),(0,l.fA)(1,1,1,1),(0,l.fA)(-1,1,1,1)],R=new i.I(d),F=v(),B=(0,a.vt)(),N=(0,a.vt)()},52039(e,t,r){r.d(t,{O7:()=>h,el:()=>c});var i=r(69052),n=(r(49186),r(18370)),o=r(17676),a=(r(5443),r(39829)),s=(r(82799),r(16930)),l=(r(80754),r(21325));async function c(e,t,r){Array.isArray(e)||(e=[e]),"object"==typeof t&&t&&"authMode"in t&&(r=t);let i=null;for(let t of e)i??=t?.spatialReference;if(!i)return e;let n=(0,l.Vp)(i);if(!n)return e;if(1===e.length&&"extent"===e[0]?.type){let t=e[0].clone().normalizeAsSingleGeometry(n);return["xmin"in t?t:new a.A(t)]}let[s,c]=n.valid,h=!1;for(let t of e){if(!t)continue;if("point"===t.type){h||=t.x>=c,h||=t.x<=s;continue}let{extent:e}=t;if(null==e){h=!0;break}h||=e.xmin>=c,h||=e.xmin<=s,h||=e.xmax>=c,h||=e.xmax<=s}if(!h)return e;let[{foldInto360Range:f},m]=await(0,o.qr)(Promise.all([u.getImportPromise(),d.getImportPromise()]),r),p=m.fromSpatialReference(i);return e.map(e=>{if(null==e||"mesh"===e.type)return e;let t=m.fromGeometry(e),r=m.toGeometry(f(t,p),i);return"extent"===e.type&&1===r?.rings.length?r.extent:r})}const u=(0,n.z)(()=>r.e(4144).then(()=>r(4144)).then(e=>e.load().then(()=>e))),d=(0,n.z)(()=>Promise.all([r.e(9187),r.e(8885),r.e(9117),r.e(3299),r.e(1550)]).then(()=>r(78125)));function h(e,t,r){let i=(0,l.Vp)(r);if(null==i)return e;let[n,o]=i.valid,a=2*o,s=0,c=0;t>o?s=Math.ceil(Math.abs(t-o)/a):t<n&&(s=-Math.ceil(Math.abs(t-n)/a)),e>o?c=Math.ceil(Math.abs(e-o)/a):e<n&&(c=-Math.ceil(Math.abs(e-n)/a));let u=e+(s-c)*a,d=u-t;return d>o?u-=a:d<n&&(u+=a),u}function f(e){let t=(0,l.Vp)(e);if(null==t)return null;let[r,n]=t.valid;return new i.hr(r,n)}const m=f(s.A.WGS84);f(s.A.WebMercator),r.d(t,["Y_",0,m])},48295(e,t,r){r.d(t,{BU:()=>u,Ui:()=>s,cq:()=>c,k3:()=>d,rb:()=>h});var i=r(4341),n=r(35522),o=r(51850),a=r(11964);function s(e,t,r){let{direction:i,origin:o}=t,{p0:a,p1:s,p2:l}=e,c=s[0]-a[0],u=s[1]-a[1],d=s[2]-a[2],h=l[0]-a[0],f=l[1]-a[1],m=l[2]-a[2],p=i[1]*m-f*i[2],v=i[2]*h-m*i[0],g=i[0]*f-h*i[1],x=c*p+u*v+d*g;if(x>-1e-5&&x<1e-5)return!1;let _=1/x,b=o[0]-a[0],y=o[1]-a[1],w=o[2]-a[2],M=_*(b*p+y*v+w*g);if(M<0||M>1)return!1;let T=y*d-u*w,S=w*c-d*b,C=b*u-c*y,A=_*(i[0]*T+i[1]*S+i[2]*C);if(A<0||M+A>1)return!1;if(r){let e=_*(h*T+f*S+m*C);(0,n.hs)(r,i,e),(0,n.WQ)(r,o,r)}return!0}function l(e,t,r){let[i,n]=e,[o,a]=t,[s,l]=r;return.5*((o-i)*(l-n)-(a-n)*(s-i))}function c(e,t,r,i,n=0){let o=l(i,e,t),a=l(i,t,r),s=l(i,r,e);return!((o<-n||a<-n||s<-n)&&(o>n||a>n||s>n))}function u(e,t,r){return(0,n.Re)(f,t,e),(0,n.Re)(m,r,e),.5*(0,n.Bw)((0,n.$A)(f,f,m))}function d(e,t,r,i,o){(0,n.jb)(f,i,r),(0,n.jb)(p,o,r),(0,n.jb)(m,t,r);let a=(0,n.Om)(f,m),s=(0,n.Om)(p,m);if(a<=0&&s<=0)return void(0,n.C)(e,r);(0,n.jb)(m,t,i);let l=(0,n.Om)(f,m),c=(0,n.Om)(p,m);if(l>=0&&c<=l)return void(0,n.C)(e,i);let u=a*c-l*s;if(u<=0&&a>=0&&l<=0)return void(0,n.Ln)(e,r,f,a/(a-l));(0,n.jb)(m,t,o);let d=(0,n.Om)(f,m),h=(0,n.Om)(p,m);if(h>=0&&d<=h)return void(0,n.C)(e,o);let v=d*s-a*h;if(v<=0&&s>=0&&h<=0)return void(0,n.Ln)(e,r,p,s/(s-h));let g=l*h-d*c;if(g<=0&&c-l>=0&&d-h>=0)return(0,n.jb)(m,o,i),void(0,n.Ln)(e,i,m,(c-l)/(c-l+(d-h)));let x=1/(g+v+u);(0,n.C)(e,r),(0,n.Ln)(e,e,f,v*x),(0,n.Ln)(e,e,p,u*x)}function h(e,t,r,i){(0,n.jb)(f,r,t),(0,n.jb)(m,i,t),(0,n.$A)(e,f,m);let o=(0,n.Bw)(e);return 0!==o&&((0,n.hs)(e,e,1/o),!0)}r(32114),new i.I(a.vt),new i.I(()=>{return e?{p0:(0,o.o8)(e.p0),p1:(0,o.o8)(e.p1),p2:(0,o.o8)(e.p2)}:{p0:(0,o.vt)(),p1:(0,o.vt)(),p2:(0,o.vt)()};var e});const f=(0,o.vt)(),m=(0,o.vt)(),p=(0,o.vt)()},21015(e,t,r){r.d(t,{R:()=>l});var i=r(56507),n=r(60999),o=r(49186),a=r(17676),s=r(84952);class l{constructor(e=e=>e){this._resolveURI=e}async loadJSON(e,t){return this._load("json",e,t)}async loadBinary(e,t){return(0,s.DB)(e)?((0,a.Te)(t),(0,s.lJ)(e)):this._load("array-buffer",e,t)}async loadImage(e,t){return this._load("image",e,t)}async _load(e,t,r){t=this._resolveURI(t);let s=await(0,n.Ke)((0,i.A)(t,{responseType:e,...r}));if(s.ok)return s.value.data;throw(0,a.QP)(s.error),new o.A("gltf-loader-request-error",`Request for resource failed: ${s.error}`)}}},84498(e,t,r){r.d(t,{x:()=>a});var i=r(34275),n=r(97146),o=r(63907);function a(e,t){switch(t){case o.WR.TRIANGLES:return function(e){return"number"==typeof e?(0,n.tM)(e):(0,i.mg)(e)?new Uint16Array(e):e}(e);case o.WR.TRIANGLE_STRIP:return function(e){let t="number"==typeof e?e:e.length;if(t<3)return[];let r=t-2,i=(0,n.my)(3*r);if("number"==typeof e){let e=0;for(let t=0;t<r;t+=1)t%2==0?(i[e++]=t,i[e++]=t+1,i[e++]=t+2):(i[e++]=t+1,i[e++]=t,i[e++]=t+2)}else{let t=0;for(let n=0;n<r;n+=1)n%2==0?(i[t++]=e[n],i[t++]=e[n+1],i[t++]=e[n+2]):(i[t++]=e[n+1],i[t++]=e[n],i[t++]=e[n+2])}return i}(e);case o.WR.TRIANGLE_FAN:return function(e){let t="number"==typeof e?e:e.length;if(t<3)return new Uint16Array;let r=t-2,i=r<=65536?new Uint16Array(3*r):new Uint32Array(3*r);if("number"==typeof e){let e=0;for(let t=0;t<r;++t)i[e++]=0,i[e++]=t+1,i[e++]=t+2;return i}let n=e[0],o=e[1],a=0;for(let t=0;t<r;++t){let r=e[t+2];i[a++]=n,i[a++]=o,i[a++]=r,o=r}return i}(e)}}},51530(e,t,r){r.d(t,{KB:()=>a,Xi:()=>n,pn:()=>s,x3:()=>o});var i=r(44208);class n{constructor(e){this.data=e,this.type="encoded-mesh-texture",this.encoding="image/ktx2"}}function o(e){return"encoded-mesh-texture"===e?.type}async function a(e){let t=await new Blob([e]).text();return JSON.parse(t)}async function s(e,t){if("image/ktx2"===t)return new n(e);let r=new Blob([e],{type:t}),o=URL.createObjectURL(r);switch(t){case"image/jpeg":o+="#.jpg";break;case"image/png":o+="#.png"}let a=new Image;if((0,i.A)("esri-iPhone"))return new Promise((e,t)=>{let r=()=>{n(),e(a)},i=e=>{n(),t(e)},n=()=>{URL.revokeObjectURL(o),a.removeEventListener("load",r),a.removeEventListener("error",i)};a.addEventListener("load",r),a.addEventListener("error",i),a.src=o});try{a.src=o,await a.decode()}catch{}return URL.revokeObjectURL(o),a}},24426(e,t,r){r.d(t,{fetch:()=>Tr});var i=r(40876),n=r(61473),o=r(34727),a=r(77690),s=r(29242),l=r(58083),c=r(9093),u=r(48163),d=r(35522),h=r(51850),f=r(70328);function m(e,t=!1){return e<=1024?t?Array(e).fill(0):Array(e):new Float32Array(e)}var p=r(13030),v=r(73354),g=r(50867),x=r(43609),_=r(21015),b=r(84498),y=r(51530),w=r(88340);function M(e){if(null==e)return null;let t=null==e.offset?w.uY:e.offset,r=null==e.rotation?0:e.rotation,i=null==e.scale?w.Un:e.scale,n=(0,s.fA)(1,0,0,0,1,0,t[0],t[1],1),o=(0,s.fA)(Math.cos(r),-Math.sin(r),0,Math.sin(r),Math.cos(r),0,0,0,1),l=(0,s.fA)(i[0],0,0,0,i[1],0,0,0,1),c=(0,s.vt)();return(0,a.lw)(c,o,l),(0,a.lw)(c,n,c),c}class T{constructor(){this.geometries=[],this.materials=[],this.textures=[]}}class S{constructor(e,t,r){this.name=e,this.lodThreshold=t,this.pivotOffset=r,this.stageResources=new T,this.numberOfVertices=0}}var C=r(56507),A=r(60999),E=r(49186),I=r(53966),O=r(69397);class P{constructor(){this._outer=new Map}clear(){this._outer.clear()}get empty(){return 0===this._outer.size}get outerSize(){return this._outer.size}get size(){let e=0;for(let t of this._outer.values())e+=t.size;return e}get(e,t){return this._outer.get(e)?.get(t)}getInner(e){return this._outer.get(e)}set(e,t,r){let i=this._outer.get(e);i?i.set(t,r):this._outer.set(e,new Map([[t,r]]))}delete(e,t){let r=this._outer.get(e);r&&(r.delete(t),0===r.size&&this._outer.delete(e))}pop(e,t){let r=this.get(e,t);return this.delete(e,t),r}*outerMap(){for(let e of this._outer)yield e}*values(){for(let e of this._outer.values())yield*e.values()}*[Symbol.iterator](){for(let[e,t]of this._outer)for(let[r,i]of t)yield[e,r,i]}forEach(e){this._outer.forEach((t,r)=>e(t,r))}forAll(e){this._outer.forEach((t,r)=>t.forEach((t,i)=>e(t,r,i)))}clone(){let e=new P;return this.forAll((t,r,i)=>e.set(r,i,t)),e}}var D=r(17676),R=r(46140),F=r(97146),B=r(31217),N=r(46610),z=r(34275);function L(e){if(e.length<1024)return Array.from(e);if(Array.isArray(e))return Float64Array.from(e);if(!("BYTES_PER_ELEMENT"in e))return Array.from(e);switch(e.BYTES_PER_ELEMENT){case 1:return Uint8Array.from(e);case 2:return(0,z.LW)(e)?Float16Array.from(e):(0,z.jq)(e)?Uint16Array.from(e):Int16Array.from(e);case 4:return(0,z.vZ)(e)?Float32Array.from(e):Uint32Array.from(e);default:return Float64Array.from(e)}}var H=r(15142),V=r(94008),U=r(620);class j{constructor(e,t,r,i){this.primitiveIndices=e,this._numIndexPerPrimitive=t,this._readPosition=r,this._notifyMemoryChange=i,this._children=void 0,(0,U.vA)(e.length>=1);let n=e.length;Z.clear();let o=(0,f.Ie)();for(let i=0;i<n;++i){let n=t*e[i];for(let e=0;e<t;++e){let t=n+e;Z.push(t),(0,f.iT)(o,r(k,t))}}this.box=o;let a=new V.iy,s=(0,f.gX)(o,a.center),l=.5*Math.max((0,f.VL)(o),(0,f.yr)(o),(0,f.uJ)(o)),c=l*l;for(let e=0;e<Z.length;++e){let t=r(k,Z.at(e)),i=(0,d.Re)(t,t,s),n=(0,d.uE)(i);if(n<=c)continue;let o=Math.sqrt(n),a=.5*(o-l);l+=a,c=l*l;let u=a/o;(0,d.Ln)(s,s,i,u)}a.radius=l,this.sphere=a,Z.clear()}get usedMemory(){let e=88+(0,O.rq)(this.box,8)+32+16+(0,O.rq)(this.sphere.center,8)+function(e){return(0,z.iu)(e)?145+((0,F.lc)(e)?0:e.byteLength):(0,F.lc)(e)?0:(0,O.rq)(e,O.JY)}(this.primitiveIndices),t=this._children;if(t){e+=(0,O.rq)(t,8);for(let r of t)e+=r.usedMemory}return e}get children(){if(this._children)return this._children;let e=this.box;if((0,f.TF)(e)<=1)return;let{_readPosition:t,_numIndexPerPrimitive:r,primitiveIndices:i}=this,n=(0,f.gX)(e,k),o=i.length,a=new Uint8Array(o),s=[0,0,0,0,0,0,0,0];for(let e=0;e<o;++e){let o=r*i[e],l=t(G,o);for(let e=1;e<r;++e)(0,d.jk)(l,l,t(W,o+e));let c=+(l[0]<n[0])|(l[1]<n[1]?2:0)|(l[2]<n[2]?4:0);a[e]=c,++s[c]}let l=0;for(let e=0;e<8;++e)s[e]>0&&++l;if(l<2)return;let c=[void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0];for(let e=0;e<8;++e)s[e]>0&&(c[e]=new Uint32Array(s[e]));s.fill(0);for(let e=0;e<o;++e){let t=a[e];c[t][s[t]++]=i[e]}let u=[];for(let e=0;e<8;++e){let i=c[e];void 0!==i&&u.push(new j(i,r,t,this._notifyMemoryChange))}return this._children=u,this._notifyMemoryChange?.((0,O.rq)(u,8)+u.reduce((e,t)=>e+t.usedMemory,0)),u}static prune(){Z.prune()}}const k=(0,h.vt)(),G=(0,h.vt)(),W=(0,h.vt)(),Z=new H.A({deallocator:null});var $=r(24326);class q{constructor(e){this.id=(0,$.c)(),this.type=0,this._attributes=new Map;for(let[t,r]of e)this._attributes.set(t,{...r,indices:(0,F.Dg)(r.indices)})}get attributes(){return this._attributes}}class Y{constructor(){this.uid=(0,$.c)()}}class X extends Y{constructor(e){super(),this.highlightName=e,this.channel=0}}var J=r(94656);class K extends q{get usedMemoryExcludingBuffers(){return this._usedMemory+this._primitivePositionIndicesMemory+(this._boundingInfo?.usedMemory??0)}get _primitivePositionIndicesMemory(){let e=this._vertexPositionIndicesCache;return e&&e!==this.positionAttribute?.indices?(0,O.ro)(e,O.JY):0}computeBufferMemory(e){let t=e.arrayMemory(this.mapPositions)+e.arrayMemory(this.drawIndices,O.JY,!0);for(let r of this.attributes.values())t+=e.arrayMemory(r.data)+e.arrayMemory(r.indices,O.JY,!0);return t}constructor(e,t,r=null,i=-1,n,o){super(t),this.material=e,this.mapPositions=r,this.edgeIndicesLength=i,this.baseGeometry=n,this.drawIndices=o,this._usedMemory=0,this._readPrimitivePosition=null,this._vertexPositionIndicesCache=void 0,this._transformation=void 0,this.localOrigin=void 0,this._highlights=null,this._highlightOptionsCounts=null,this.occludees=void 0,this.visible=!0,this._boundingInfo=null,(0,U.vA)((e?.useIndexing??!1)===(null!=o),"Material index requirement and Geometry must match"),this.edgeIndicesLength<0&&(this.edgeIndicesLength=this.indexCount)}get readPrimitivePosition(){return this._readPrimitivePosition??=function(e,t){let{data:r,indices:i,size:n,stride:o}=e;return(0,U.vA)(2===n||3===n||4===n,"Position attribute must have 2, 3 or 4 components"),2===n?null==t?(e,t)=>{let n=i[t]*o;return e[0]=r[n],e[1]=r[n+1],e[2]=-2,e}:(e,n)=>{let a=i[t[n]]*o;return e[0]=r[a],e[1]=r[a+1],e[2]=-2,e}:null==t?function(e,t,r){return(i,n)=>{let o=t[n]*r;return i[0]=e[o],i[1]=e[o+1],i[2]=e[o+2],i}}(r,i,o):(e,n)=>{let a=i[t[n]]*o;return e[0]=r[a],e[1]=r[a+1],e[2]=r[a+2],e}}(this.positionAttribute,this.drawIndices),this._readPrimitivePosition}_invalidateReadPrimitivePosition(){this._readPrimitivePosition=null}instantiate(e={}){let t=new K(e.material||this.material,[],this.mapPositions,this.edgeIndicesLength,this.baseGeometry,this.drawIndices);return this._attributes.forEach((e,r)=>{e.exclusive=!1,t._attributes.set(r,e)}),t._boundingInfo=this._boundingInfo,t.transformation=e.transformation||this.transformation,t}getMutableAttribute(e){let t=this._attributes.get(e);return t&&!t.exclusive&&(t={...t,exclusive:!0,data:L(t.data)},this._attributes.set(e,t),"position"===e&&this._invalidateReadPrimitivePosition()),t}setAttributeData(e,t){let r=this._attributes.get(e);r?(this._attributes.set(e,{...r,exclusive:!0,data:t}),"position"===e&&this._invalidateReadPrimitivePosition()):(0,J.en)()&&console.warn(`Setting undefined attribute ${e} data`)}get primitivePositionIndices(){if(void 0!==this._vertexPositionIndicesCache)return this._vertexPositionIndicesCache;this._vertexPositionIndicesCache=this._computePrimitivePositionIndices();let e=this._primitivePositionIndicesMemory;return e&&this.notifyMemoryChange?.(e),this._vertexPositionIndicesCache}_computePrimitivePositionIndices(){let{drawIndices:e}=this,t=this.positionAttribute;if(null!=e&&null!=t){let r=Array(e.length).fill(0);for(let i=0;i<e.length;i++)r[i]=t.indices[e[i]];return r}return t?.indices??null}get positionAttribute(){return this.attributes.get("position")??this.baseGeometry?.attributes.get("position")}get indexCount(){return(this.drawIndices??this.positionAttribute?.indices)?.length??0}get faceCount(){return this.indexCount/3}get boundingInfo(){return this._boundingInfo||(this._boundingInfo=this._calculateBoundingInfo(),this._boundingInfo&&this.notifyMemoryChange?.(this._boundingInfo.usedMemory)),this._boundingInfo}computeAttachmentOrigin(e){return!!this.material.computeAttachmentOrigin(e,this.readPrimitivePosition,this.indexCount)&&(null!=this._transformation&&(0,d.Z0)(e,e,this._transformation),!0)}invalidateBoundingInfo(){let e=this._primitivePositionIndicesMemory+(this._boundingInfo?.usedMemory??0);this._boundingInfo=null,this._vertexPositionIndicesCache=void 0,e&&this.notifyMemoryChange?.(-e)}_calculateBoundingInfo(){let e=this.positionAttribute,t=this.indexCount;if(!e||0===t)return null;let r=this.material.primitiveVertexCount;(0,U.vA)(t%r===0,"Indexing error: "+t+" not divisible by "+r);let i=(0,F.tM)(t/r);return new j(i,r,this.readPrimitivePosition,e=>this.notifyMemoryChange?.(e))}get transformation(){return this._transformation??c.zK}set transformation(e){this._transformation=e&&e!==c.zK?(0,c.o8)(e):null}get highlights(){return this._highlights||Q}get hasHighlights(){return(this._highlightOptionsCounts?.size??0)>0}forEachHighlightOption(e){this._highlightOptionsCounts?.forEach((t,r)=>e(r))}allocateIdAndHighlight(e){let t=new X(e);return this.addHighlight(t)}addHighlight(e){this._ensureHighlights().add(e);let{highlightName:t}=e,r=(this._highlightOptionsCounts?.get(t)??0)+1;return this._ensureHighlightOptionsCounts().set(t,r),e}_ensureHighlights(){let e=this._highlights;return e||(e=new Set,this._highlights=e),e}_ensureHighlightOptionsCounts(){let e=this._highlightOptionsCounts;return e||(e=new Map,this._highlightOptionsCounts=e),e}removeHighlight(e){if(this._highlights?.delete(e)){let{highlightName:t}=e,r=this._highlightOptionsCounts?.get(t)??0;r<=1?this._highlightOptionsCounts?.delete(t):this._ensureHighlightOptionsCounts().set(t,r-1)}}}const Q=new Set;var ee=r(76200),te=r(49255),re=r(97768);class ie{constructor(e){this._material=e.material,this._techniques=e.techniques}dispose(){}get _stippleTextures(){return this._techniques.context?.stippleTextures}get _markerTextures(){return this._techniques.context?.markerTextures}getTechnique(e,t){return this._techniques.get(e,this._material.getConfiguration(t))}ensureResources(e){return 2}}var ne=r(65786);class oe extends ie{constructor(e){super(e),this._numLoading=0,this._disposed=!1,this._textures=e.textures,this.updateTexture(e.textureId),this._acquire(e.normalTextureId,e=>this._textureNormal=e),this._acquire(e.emissiveTextureId,e=>this._textureEmissive=e),this._acquire(e.occlusionTextureId,e=>this._textureOcclusion=e),this._acquire(e.metallicRoughnessTextureId,e=>this._textureMetallicRoughness=e)}dispose(){super.dispose(),this._texture=(0,re.Gz)(this._texture),this._textureNormal=(0,re.Gz)(this._textureNormal),this._textureEmissive=(0,re.Gz)(this._textureEmissive),this._textureOcclusion=(0,re.Gz)(this._textureOcclusion),this._textureMetallicRoughness=(0,re.Gz)(this._textureMetallicRoughness),this._disposed=!0}ensureResources(e){return 0===this._numLoading?2:1}get textureBindParameters(){return new se(this._texture?.texture??null,this._textureNormal?.texture??null,this._textureEmissive?.texture??null,this._textureOcclusion?.texture??null,this._textureMetallicRoughness?.texture??null)}updateTexture(e){(null==this._texture||e!==this._texture.id)&&(this._texture=(0,re.Gz)(this._texture),this._acquire(e,e=>this._texture=e))}_acquire(e,t){if(null==e)return void t(null);let r=this._textures.acquire(e);(0,D.$X)(r)?(++this._numLoading,r.then(e=>{this._disposed?((0,re.Gz)(e),t(null)):t(e)}).finally(()=>--this._numLoading)):t(r)}}class ae extends ne.Y{constructor(e=null){super(),this.textureEmissive=e}}class se extends ae{constructor(e,t,r,i,n,o,a){super(r),this.texture=e,this.textureNormal=t,this.textureOcclusion=i,this.textureMetallicRoughness=n,this.scale=o,this.normalTextureTransformMatrix=a}}var le=r(48295);const ce=(0,h.vt)(),ue=(0,h.vt)(),de=(0,h.vt)(),he=(0,h.vt)();var fe=r(19245);class me{constructor(e,t){this.id=(0,$.c)(),this.supportsEdges=!1,this.primitiveVertexCount=3,this._renderPriority=0,this._parameters=new t,(0,fe.MB)(this._parameters,e),this.validateParameters(this._parameters)}get useIndexing(){return this.parameters.useIndexing??!1}get parameters(){return this._parameters}update(e){return!1}setParameters(e,t=!0){(0,fe.MB)(this._parameters,e)&&(this.validateParameters(this._parameters),t&&this._parametersChanged())}validateParameters(e){}shouldRender(e){return this.visible&&this.isVisibleForOutput(e.output)&&(!this.parameters.isDecoration||e.bind.decorations)&&0!==(this.parameters.renderOccluded&e.renderOccludedMask)}isVisibleForOutput(e){return!0}get renderPriority(){return this._renderPriority}set renderPriority(e){e!==this._renderPriority&&(this._renderPriority=e,this._parametersChanged())}_parametersChanged(){this.repository?.materialChanged(this)}get renderOccludedFlags(){return this.visible?this.parameters.renderOccluded:0}get testsTransparentRenderOrder(){return this.parameters.testsTransparentRenderOrder}get emissions(){return 0}getConfiguration(e){return this.updateConfiguration(e),this._configuration}updateConfiguration(e){this._configuration.output=e.output,this._configuration.hasEmission=e.hasEmission&&(0,te._o)(e.output),this._configuration.hasHighlightMixTexture=10===e.output&&null!=e.highlightMixTexture,this._configuration.useFloatBlend=e.useFloatBlend.value,this._configuration.emissionDimmingPass=e.transparentWithoutDepthEmissionDimmingPass&&(0,te._o)(e.output)}computeAttachmentOrigin(e,t,r){return function(e,t,r){if(r<=0)return!1;(0,d.hZ)(e,0,0,0),(0,d.hZ)(he,0,0,0);let i=0,n=0;for(let o=0;o<r;++o){let r=3*o;t(ce,r),t(ue,r+1),t(de,r+2);let a=(0,le.BU)(ce,ue,de);a?((0,d.WQ)(ce,ce,ue),(0,d.WQ)(ce,ce,de),(0,d.hs)(ce,ce,1/3*a),(0,d.WQ)(e,e,ce),i+=a):((0,d.WQ)(he,he,ce),(0,d.WQ)(he,he,ue),(0,d.WQ)(he,he,de),n+=3)}return!(0===n&&0===i||(0===i?0===n||((0,d.hs)(e,he,1/n),0):((0,d.hs)(e,e,1/i),0)))}(e,t,r/3)}}ne.Y;var pe=r(58682),ve=r(90629),ge=r(65720),xe=r(27921),_e=r(19419),be=r(11964);function ye(e,t){return e.isRectangle?(0,_e.Uc)(e.bounds,t):function(e,t){return Me(e[0],e[1],t)}(t,e.points)}function we(e,t,r,i){let n=Math.min(t[0],r[0],i[0]),o=Math.min(t[1],r[1],i[1]),a=Math.max(t[0],r[0],i[0]),s=Math.max(t[1],r[1],i[1]);if(!function(e,t){if(!(0,_e.HY)(e.bounds,t))return!1;if(e.isRectangle)return!0;for(let r of e.points)if((0,_e.Uc)(t,r))return!0;if(function(e,t){let r=e[0],i=e[1],n=e[2],o=e[3];return Me(r,i,t)||Me(n,i,t)||Me(n,o,t)||Me(r,o,t)}(t,e.points))return!0;for(let r=0;r<e.points.length;r++)if(Te(e.points[r],r===e.points.length-1?e.points[0]:e.points[r+1],t))return!0;return!1}(e,(0,_e.fA)(n,o,a,s,Oe)))return!1;if(ye(e,t)||ye(e,r)||ye(e,i))return!0;for(let n of e.points)if((0,le.cq)(t,r,i,n,Pe))return!0;for(let n=0;n<e.points.length;n++){let o=e.points[n],a=e.points[(n+1)%e.points.length];if(Ce(t,r,o,a)||Ce(r,i,o,a)||Ce(i,t,o,a))return!0}return!1}function Me(e,t,r){let i=!1;for(let n=0,o=r.length-1;n<r.length;o=n++){let a=r[n],s=r[o];a[1]>t!=s[1]>t&&e<(s[0]-a[0])*(t-a[1])/(s[1]-a[1])+a[0]&&(i=!i)}return i}function Te(e,t,r){let i=r[0],n=r[1],o=r[2],a=r[3],s=e[0],l=e[1],c=t[0],u=t[1];return!(s<i&&c<i||s>o&&c>o||l<n&&u<n||l>a&&u>a)&&(!(!(0,_e.Rj)(r,s,l)&&!(0,_e.Rj)(r,c,u))||Se(e,t,i,n,o,n)||Se(e,t,o,n,o,a)||Se(e,t,o,a,i,a)||Se(e,t,i,a,i,n))}function Se(e,t,r,i,n,o){let a=Ae(e[0],e[1],t[0],t[1],r,i),s=Ae(e[0],e[1],t[0],t[1],n,o),l=Ae(r,i,n,o,e[0],e[1]),c=Ae(r,i,n,o,t[0],t[1]);return a!==s&&l!==c||0===a&&Ee(e,t,r,i)||0===s&&Ee(e,t,n,o)||0===l&&Ie(r,i,n,o,e[0],e[1])||0===c&&Ie(r,i,n,o,t[0],t[1])}function Ce(e,t,r,i){return Se(e,t,r[0],r[1],i[0],i[1])}function Ae(e,t,r,i,n,o){let a=(i-t)*(n-r)-(r-e)*(o-i);return Math.abs(a)<=Pe?0:Math.sign(a)}function Ee(e,t,r,i){return Ie(e[0],e[1],t[0],t[1],r,i)}function Ie(e,t,r,i,n,o){return n>=Math.min(e,r)-Pe&&n<=Math.max(e,r)+Pe&&o>=Math.min(t,i)-Pe&&o<=Math.max(t,i)+Pe}const Oe=(0,_e.vt)(),Pe=((0,ve.r_)(),(0,ve.r_)(),(0,h.vt)(),(0,h.vt)(),(0,h.vt)(),(0,be.vt)(),1e-9);class De{constructor(e){this.type=e,this.distance=1/0,this.renderDistance=1/0,this.primitiveIndex=0,this.hasNormal=!1,this.point=(0,h.vt)(),this.normal=(0,h.vt)()}reset(){this.distance=1/0,this.renderDistance=1/0,this.hasNormal=!1}update(e,t,r,i,n=e){this.distance=e,this.renderDistance=n,this.primitiveIndex=t,(0,d.C)(this.point,r),this.hasNormal=null!=i,null!=i&&(0,d.C)(this.normal,i)}updateIfCloserFromValues(e,t,r,i,n=e){n<this.renderDistance&&this.update(e,t,r,i,n)}updateIfCloser(e){let{distance:t,renderDistance:r,primitiveIndex:i,point:n,normal:o}=e;this.updateIfCloserFromValues(t,i,n,e.hasNormal?o:null,r)}get valid(){return Number.isFinite(this.distance)}}function Re(e,t,r,i,n){if(!e.visible)return null;let o,a=new De(4);o=e.boundingInfo?Be(e.readPrimitivePosition,e.boundingInfo,t,r,i,n):Fe(t,r,i,0,e.faceCount,e.readPrimitivePosition,n,null,0);for(let e of o)a.updateIfCloser(e);return a.valid?a:null}function*Fe(e,t,r,i,n,o,a,s=null,l=0){if(null==e.camera)return;let{camera:c,screenPolygonPrimitiveProcessor:u}=e;for(let e=i;e<n;++e){let i=(s?.[e]??e)+l,n=null==s?i:e,h=3*i;Ne(Ve[0],o,h+0,a,n,t),Ne(Ve[1],o,h+1,a,n,t),Ne(Ve[2],o,h+2,a,n,t);let f,m=Ze;qe.reset();let p=Ue;for(let e of u.processTriangle(Ve))ze(r,e,c,p)&&(Le(c.eye,p,We),f??=(0,le.rb)(Ze,Ve[0],Ve[1],Ve[2]),qe.updateIfCloserFromValues((0,d.Io)(c.eye,We),i,We,f?m:null));qe.valid&&(yield qe)}}function*Be(e,t,r,i,n,o){let a;if(null==o?a=(0,ge.GH)(n.broadPhaseFrustum,t.box,i):((0,f.C)(He,t.box),o.applyToAabb(He),a=(0,ge.GH)(n.broadPhaseFrustum,He,i)),!a)return;let{primitiveIndices:s}=t,l=s.length;if(l>1e3){let a=t.children;if(void 0!==a){for(let t of a)yield*Be(e,t,r,i,n,o);return}}yield*Fe(r,i,n,0,l,e,o,s,0)}function Ne(e,t,r,i,n,o){let[a,s,l]=t(e,r);null==i?(0,d.hZ)(e,a,s,l):i.applyToVertex(e,a,s,l,n),o&&(0,d.Z0)(e,e,o)}function ze(e,t,r,i){if(i.length=0,(0,xe.H)(r.frustum[4],t,()=>i.pushNew()),i.length<3)return!1;let n=je,o=ke,a=Ge;r.projectToScreen(i.data[0],n),r.projectToScreen(i.data[1],o);for(let t=2;t<i.length;t++){if(r.projectToScreen(i.data[t],a),we(e,n,o,a))return!0;let s=o;o=a,a=s}return!1}function Le(e,t,r){let i=1/0,n=t.at(0);for(let o=1;o<t.length-1;o++){(0,le.k3)($e,e,n,t.at(o),t.at(o+1));let a=(0,d.hG)(e,$e);a<i&&(i=a,(0,d.C)(r,$e))}}const He=(0,f.vt)(),Ve=[(0,h.vt)(),(0,h.vt)(),(0,h.vt)()],Ue=new H.A({allocator:e=>e??(0,h.vt)()}),je=(0,ve.gs)(),ke=(0,ve.gs)(),Ge=(0,ve.gs)(),We=(0,h.vt)(),Ze=(0,h.vt)(),$e=(0,h.vt)(),qe=new De(4);var Ye=r(16396);function Xe(e,t,r){let{data:i,indices:n}=e,o=t.typedBuffer,a=t.typedBufferStride,s=n.length;r*=a;for(let e=0;e<s;++e){let t=2*n[e];o[r]=i[t],o[r+1]=i[t+1],r+=a}}function Je(e,t,r,i=1){let{data:n,indices:o}=e,a=t.typedBuffer,s=t.typedBufferStride,l=o.length;if(r*=s,1===i)for(let e=0;e<l;++e){let t=3*o[e];a[r]=n[t],a[r+1]=n[t+1],a[r+2]=n[t+2],r+=s}else for(let e=0;e<l;++e){let t=3*o[e];for(let e=0;e<i;++e)a[r]=n[t],a[r+1]=n[t+1],a[r+2]=n[t+2],r+=s}}function Ke(e,t,r,i,n=1){let{data:o,indices:a}=e,s=r.typedBuffer,l=r.typedBufferStride,c=a.length;if(i*=l,t===o.length&&4===t){s[i]=o[0],s[i+1]=o[1],s[i+2]=o[2],s[i+3]=o[3];let e=new Uint32Array(r.typedBuffer.buffer,r.start),t=l/4,a=e[i/=4];i+=t;let u=c*n;for(let r=1;r<u;++r)e[i]=a,i+=t}else if(1===n){if(4===t){for(let e=0;e<c;++e){let t=4*a[e];s[i]=o[t],s[i+1]=o[t+1],s[i+2]=o[t+2],s[i+3]=o[t+3],i+=l}return}for(let e=0;e<c;++e){let t=3*a[e];s[i]=o[t],s[i+1]=o[t+1],s[i+2]=o[t+2],s[i+3]=255,i+=l}}else if(4===t)for(let e=0;e<c;++e){let t=4*a[e];for(let e=0;e<n;++e)s[i]=o[t],s[i+1]=o[t+1],s[i+2]=o[t+2],s[i+3]=o[t+3],i+=l}else for(let e=0;e<c;++e){let t=3*a[e];for(let e=0;e<n;++e)s[i]=o[t],s[i+1]=o[t+1],s[i+2]=o[t+2],s[i+3]=255,i+=l}}function Qe(e,t,r,i,n,o){switch(e){case"position":{(0,U.vA)(3===t.size);let i=n.getField(e,p.xs);(0,U.vA)(!!i,`No buffer view for ${e}`),function(e,t,r,i,n=1){if(!t)return void Je(e,r,i,n);let{data:o,indices:a}=e,s=r.typedBuffer,c=r.typedBufferStride,u=a.length,d=t[0],h=t[1],f=t[2],m=t[4],p=t[5],v=t[6],g=t[8],x=t[9],_=t[10],b=t[12],y=t[13],w=t[14];i*=c;let M=0,T=0,S=0,C=(0,l.tZ)(t)?e=>{M=o[e]+b,T=o[e+1]+y,S=o[e+2]+w}:e=>{let t=o[e],r=o[e+1],i=o[e+2];M=d*t+m*r+g*i+b,T=h*t+p*r+x*i+y,S=f*t+v*r+_*i+w};if(1===n)for(let e=0;e<u;++e)C(3*a[e]),s[i]=M,s[i+1]=T,s[i+2]=S,i+=c;else for(let e=0;e<u;++e){C(3*a[e]);for(let e=0;e<n;++e)s[i]=M,s[i+1]=T,s[i+2]=S,i+=c}}(t,r,i,o);break}case"normal":{(0,U.vA)(3===t.size);let r=n.getField(e,p.xs);(0,U.vA)(!!r,`No buffer view for ${e}`),function(e,t,r,i,n=1){if(!t)return void Je(e,r,i,n);let{data:o,indices:a}=e,s=t,c=r.typedBuffer,u=r.typedBufferStride,d=a.length,h=s[0],f=s[1],m=s[2],p=s[4],v=s[5],g=s[6],x=s[8],_=s[9],b=s[10],y=!(0,l.ut)(s),w=1e-6,M=.999999;i*=u;let T=0,S=0,C=0,A=(0,l.tZ)(s)?e=>{T=o[e],S=o[e+1],C=o[e+2]}:e=>{let t=o[e],r=o[e+1],i=o[e+2];T=h*t+p*r+x*i,S=f*t+v*r+_*i,C=m*t+g*r+b*i};if(1===n)if(y)for(let e=0;e<d;++e){A(3*a[e]);let t=T*T+S*S+C*C;if(t<M&&t>w){let e=1/Math.sqrt(t);c[i]=T*e,c[i+1]=S*e,c[i+2]=C*e}else c[i]=T,c[i+1]=S,c[i+2]=C;i+=u}else for(let e=0;e<d;++e)A(3*a[e]),c[i]=T,c[i+1]=S,c[i+2]=C,i+=u;else for(let e=0;e<d;++e){if(A(3*a[e]),y){let e=T*T+S*S+C*C;if(e<M&&e>w){let t=1/Math.sqrt(e);T*=t,S*=t,C*=t}}for(let e=0;e<n;++e)c[i]=T,c[i+1]=S,c[i+2]=C,i+=u}}(t,i,r,o);break}case"normalCompressed":case"profileRight":case"profileUp":{(0,U.vA)(2===t.size);let r=n.getField(e,p.mJ);(0,U.vA)(!!r,`No buffer view for ${e}`),Xe(t,r,o);break}case"uv0":{(0,U.vA)(2===t.size);let r=n.getField(e,p.ZD)??n.getField(e,p.gH);(0,U.vA)(!!r,`No buffer view for ${e}`),Xe(t,r,o);break}case"uvi":{(0,U.vA)(2===t.size);let r=n.getField(e,p.mJ);(0,U.vA)(!!r,`No buffer view for ${e}`),Xe(t,r,o);break}case"color":case"symbolColor":{let r=n.getField(e,p.XP);(0,U.vA)(!!r,`No buffer view for ${e}`),(0,U.vA)(3===t.size||4===t.size),Ke(t,t.size,r,o);break}case"colorFeatureAttribute":case"opacityFeatureAttribute":case"sizeFeatureAttribute":{let r=n.getField(e,p.Y$)??n.getField(e,p.Y$);(0,U.vA)(!!r,`No buffer view for ${e}`),(0,U.vA)(1===t.size),function(e,t,r){let{data:i,indices:n}=e,o=t.typedBuffer,a=t.typedBufferStride,s=n.length,l=i[0];r*=a;for(let e=0;e<s;++e)o[r]=l,r+=a}(t,r,o);break}case"tangent":{(0,U.vA)(4===t.size);let i=n.getField(e,p.Eq);(0,U.vA)(!!i,`No buffer view for ${e}`),function(e,t,r,i,n=1){if(!t)return void function(e,t,r,i=1){let{data:n,indices:o}=e,a=t.typedBuffer,s=t.typedBufferStride,l=o.length;if(r*=s,1===i)for(let e=0;e<l;++e){let t=4*o[e];a[r]=n[t],a[r+1]=n[t+1],a[r+2]=n[t+2],a[r+3]=n[t+3],r+=s}else for(let e=0;e<l;++e){let t=4*o[e];for(let e=0;e<i;++e)a[r]=n[t],a[r+1]=n[t+1],a[r+2]=n[t+2],a[r+3]=n[t+3],r+=s}}(e,r,i,n);let{data:o,indices:a}=e,s=t,c=r.typedBuffer,u=r.typedBufferStride,d=a.length,h=s[0],f=s[1],m=s[2],p=s[4],v=s[5],g=s[6],x=s[8],_=s[9],b=s[10],y=!(0,l.ut)(s),w=1e-6,M=.999999;if(i*=u,1===n)for(let e=0;e<d;++e){let t=4*a[e],r=o[t],n=o[t+1],s=o[t+2],l=o[t+3],d=h*r+p*n+x*s,T=f*r+v*n+_*s,S=m*r+g*n+b*s;if(y){let e=d*d+T*T+S*S;if(e<M&&e>w){let t=1/Math.sqrt(e);d*=t,T*=t,S*=t}}c[i]=d,c[i+1]=T,c[i+2]=S,c[i+3]=l,i+=u}else for(let e=0;e<d;++e){let t=4*a[e],r=o[t],s=o[t+1],l=o[t+2],d=o[t+3],T=h*r+p*s+x*l,S=f*r+v*s+_*l,C=m*r+g*s+b*l;if(y){let e=T*T+S*S+C*C;if(e<M&&e>w){let t=1/Math.sqrt(e);T*=t,S*=t,C*=t}}for(let e=0;e<n;++e)c[i]=T,c[i+1]=S,c[i+2]=C,c[i+3]=d,i+=u}}(t,r,i,o);break}case"olidColor":(0,U.vA)(4===t.size),Ke(t,4,n.getField(e,p.XP),o)}}(0,h.vt)();class et{constructor(e){this.layout=e}elementCount(e){return e.get("position").indices.length}write(e,t,r,i){null!=i&&function(e,t,r,i,n){let{buffer:o,offset:a}=n;for(let n of t.fields.keys()){let t=e.get(n),s=t?.indices;t&&s&&Qe(n,t,r,i,o,a)}}(r,this.layout,e,t,i)}}const tt=st(-1),rt=st(1),it=tt,nt=[];nt[0]=null,nt[1]=rt,nt[2]=tt,nt[3]=st(-2),nt[4]=st(-3);const ot=nt.map(e=>function(e,t){return t?{factor:e.factor+t.factor,units:e.units+t.units}:e}(it,e));function at({output:e,enableOITOffset:t,polygonOffset:r}){return(0,te._$)(e)&&t?ot[r]:nt[r]}function st(e){return{factor:1*e,units:2*e}}nt[1]=rt;var lt=r(32198),ct=r(51976),ut=r(34711);class dt extends ut.Hz{constructor(){super(...arguments),this.hasHighlightMixTexture=!1,this.emissionDimmingPass=!1,this.bindType=1,this.instanced=!1,this.writeDepth=!0,this.oitPremultipliedAlpha=!1}}(0,lt.Cg)([(0,ct.W)()],dt.prototype,"hasHighlightMixTexture",void 0),(0,lt.Cg)([(0,ct.W)()],dt.prototype,"emissionDimmingPass",void 0);class ht extends dt{constructor(){super(...arguments),this.polygonOffset=0,this.transparent=!1,this.enableOITOffset=!0}}function ft(e){return pt.output=+!!e.transparent,pt.polygonOffset=e.polygonOffset,pt.enableOITOffset=e.enableOITOffset,at(pt)}function mt({units:e,factor:t},r,i,n){let o=gt*e;return i+((n?1-Math.abs((0,d.Om)(r,n)):0)*t*vt+o)}(0,lt.Cg)([(0,ct.W)({count:5})],ht.prototype,"polygonOffset",void 0),(0,lt.Cg)([(0,ct.W)()],ht.prototype,"transparent",void 0),(0,lt.Cg)([(0,ct.W)()],ht.prototype,"enableOITOffset",void 0);const pt=new ht,vt=2e-5,gt=2e-6,xt=(0,h.vt)();var _t=r(91429),bt=r(91829),yt=r(4431),wt=r(1843),Mt=r(72824),Tt=r(13840),St=r(42958),Ct=r(16943),At=r(90644);const Et=(0,At.p3)(1,0,1,771);function It(e,t=!1,r=!1){if(r)return At.uR;switch(e){case 0:return t?At.RC:At.T8;case 1:return Et;default:return null}}function Ot(e){if(e.draped)return null;switch(e.output){case 0:case 2:default:return e.writeDepth?At.Uy:null;case 1:return null}}function Pt(e,t=513){return{func:(0,te._$)(e)?515:t}}(0,bt._Y)();const Dt={mask:255},Rt=(0,At.nk)(2,2,{compare:519,fail:7680,zFail:7680,zPass:0}),Ft=(0,At.nk)(2,2,{compare:519,fail:7680,zFail:7680,zPass:7681});(0,At.nk)(2,2,{compare:514,fail:7680,zFail:7680,zPass:7680}),(0,At.nk)(2,2,{compare:517,fail:7680,zFail:7680,zPass:7680}),r(4576),r(66289);var Bt=r(69622),Nt=r(65529),zt=r(32728);class Lt{constructor(e){this.localTransform=e.localTransform,this.globalTransform=e.globalTransform,this.modelOrigin=e.modelOrigin,this.model=e.instanceModel,this.modelNormal=e.instanceModelNormal,this.modelScaleFactors=e.modelScaleFactors,this.boundingSphere=e.boundingSphere,this.featureAttribute=e.getField("instanceFeatureAttribute",p.Eq),this.color=e.getField("instanceColor",p.XP),this.olidColor=e.getField("instanceOlidColor",p.XP),this.state=e.getField("state",p.SL),this.lodLevel=e.getField("lodLevel",p.SL)}}let Ht=class extends Bt.A{constructor(e,t){super(e),this.events=new Nt.bk,this._capacity=0,this._size=0,this._next=0,this._highlightOptionsMap=new Map,this._highlightOptionsMapPrev=new Map,this._layout=function(e){return Ut(Vt.clone(),e).u8("state").u8("lodLevel")}(t),this._capacity=Zt,this._buffer=this._layout.createBuffer(this._capacity),this._view=new Lt(this._buffer)}get capacity(){return this._capacity}get size(){return this._size}get view(){return this._view}addInstance(){this._size+1>this._capacity&&this._grow();let e=this._findSlot();return this._view.state.set(e,1),this._size++,this.events.emit("instances-changed"),e}removeInstance(e){let t=this._view.state;(0,U.vA)(e>=0&&e<this._capacity&&!!(1&t.get(e)),"invalid instance handle"),this._getStateFlag(e,18)?this._setStateFlags(e,32):this.freeInstance(e),this.events.emit("instances-changed")}freeInstance(e){let t=this._view.state;(0,U.vA)(e>=0&&e<this._capacity&&!!(1&t.get(e)),"invalid instance handle"),t.set(e,0),this._size--}setLocalTransform(e,t,r=!0){this._view.localTransform.setMat(e,t),r&&this.updateModelTransform(e)}getLocalTransform(e,t){this._view.localTransform.getMat(e,t)}setGlobalTransform(e,t,r=!0){this._view.globalTransform.setMat(e,t),r&&this.updateModelTransform(e)}getGlobalTransform(e,t){this._view.globalTransform.getMat(e,t)}updateModelTransform(e){let t=this._view,r=jt,i=kt;t.localTransform.getMat(e,Gt),t.globalTransform.getMat(e,Wt);let n=(0,l.lw)(Wt,Wt,Gt);(0,d.hZ)(r,n[12],n[13],n[14]),t.modelOrigin.setVec(e,r),(0,a.z0)(i,n),t.model.setMat(e,i);let o=(0,zt.wp)(jt,n);o.sort(),t.modelScaleFactors.set(e,0,o[1]),t.modelScaleFactors.set(e,1,o[2]),(0,a.B8)(i,i),(0,a.mg)(i,i),t.modelNormal.setMat(e,i),this._setStateFlags(e,64),this.events.emit("instance-transform-changed",{index:e})}getModelTransform(e,t){let r=this._view;r.model.getMat(e,kt),r.modelOrigin.getVec(e,jt),t[0]=kt[0],t[1]=kt[1],t[2]=kt[2],t[3]=0,t[4]=kt[3],t[5]=kt[4],t[6]=kt[5],t[7]=0,t[8]=kt[6],t[9]=kt[7],t[10]=kt[8],t[11]=0,t[12]=jt[0],t[13]=jt[1],t[14]=jt[2],t[15]=1}applyShaderTransformation(e,t){null!=this.shaderTransformation&&this.shaderTransformation.applyTransform(this,e,t)}getCombinedModelTransform(e,t){return this.getModelTransform(e,t),null!=this.shaderTransformation&&this.shaderTransformation.applyTransform(this,e,t),t}getCombinedLocalTransform(e,t){this._view.localTransform.getMat(e,t),null!=this.shaderTransformation&&this.shaderTransformation.applyTransform(this,e,t)}getCombinedMaxScaleFactor(e){let t=this._view.modelScaleFactors.get(e,1);return null!=this.shaderTransformation&&(this.shaderTransformation.scaleFactor(jt,this,e),t*=Math.max(jt[0],jt[1],jt[2])),t}getCombinedMedianScaleFactor(e){let t=this._view.modelScaleFactors.get(e,0);return null!=this.shaderTransformation&&(this.shaderTransformation.scaleFactor(jt,this,e),t*=function(e,t,r){return Math.max(Math.min(e,t),Math.min(Math.max(e,t),r))}(jt[0],jt[1],jt[2])),t}getModel(e,t){this._view.model.getMat(e,t)}setFeatureAttribute(e,t){this._view.featureAttribute?.setVec(e,t)}getFeatureAttribute(e,t){this._view.featureAttribute?.getVec(e,t)}setColor(e,t){this._view.color?.setVec(e,t)}setObjectAndLayerIdColor(e,t){this._view.olidColor?.setVec(e,t)}setVisible(e,t){t!==this.getVisible(e)&&(this._setStateFlag(e,4,t),this.events.emit("instance-visibility-changed",{index:e}))}getVisible(e){return this._getStateFlag(e,4)}setHighlight(e,t){let{_highlightOptionsMap:r}=this,i=r.get(e);t?t!==i&&(r.set(e,t),this._setStateFlag(e,8,!0),this.events.emit("instance-highlight-changed")):i&&(r.delete(e),this._setStateFlag(e,8,!1),this.events.emit("instance-highlight-changed"))}get highlightOptionsMap(){return this._highlightOptionsMap}getHighlightStateFlag(e){return this._getStateFlag(e,8)}geHighlightOptionsPrev(e){let t=this._highlightOptionsMapPrev.get(e)??null;return this._highlightOptionsMapPrev.delete(e),t}getHighlightName(e){let t=this.highlightOptionsMap.get(e)??null;return t?this._highlightOptionsMapPrev.set(e,t):this._highlightOptionsMapPrev.delete(e),t}getState(e){return this._view.state.get(e)}getLodLevel(e){return this._view.lodLevel.get(e)}countFlags(e){let t=0;for(let r=0;r<this._capacity;++r)this.getState(r)&e&&++t;return t}_setStateFlags(e,t){let r=this._view.state;t=r.get(e)|t,r.set(e,t)}_clearStateFlags(e,t){let r=this._view.state;t=r.get(e)&~t,r.set(e,t)}_setStateFlag(e,t,r){r?this._setStateFlags(e,t):this._clearStateFlags(e,t)}_getStateFlag(e,t){return!!(this._view.state.get(e)&t)}_grow(){this._capacity=Math.max(Zt,Math.floor(1.5*this._capacity)),this._buffer=this._layout.createBuffer(this._capacity).copyFrom(this._buffer),this._view=new Lt(this._buffer)}_findSlot(){let e=this._view.state,t=this._next;for(;1&e.get(t);)t=t+1===this._capacity?0:t+1;return this._next=t+1===this._capacity?0:t+1,t}};(0,lt.Cg)([(0,_t.MZ)({constructOnly:!0})],Ht.prototype,"shaderTransformation",void 0),(0,lt.Cg)([(0,_t.MZ)()],Ht.prototype,"_size",void 0),(0,lt.Cg)([(0,_t.MZ)({readOnly:!0})],Ht.prototype,"size",null),Ht=(0,lt.Cg)([(0,_t.$K)("esri.views.3d.webgl-engine.lib.lodRendering.InstanceData")],Ht);const Vt=(0,wt.BP)().mat4f64("localTransform").mat4f64("globalTransform").vec4f64("boundingSphere").vec3f64("modelOrigin").mat3f("instanceModel").mat3f("instanceModelNormal").vec2f("modelScaleFactors");function Ut(e,t){return t.instancedFeatureAttribute&&e.vec4f("instanceFeatureAttribute"),t.instancedColor&&e.vec4u8("instanceColor"),(0,Ct.E)()&&e.vec4u8("instanceOlidColor"),e}const jt=(0,h.vt)(),kt=(0,s.vt)(),Gt=(0,c.vt)(),Wt=(0,c.vt)(),Zt=64,$t=(0,wt.BP)().vec3f("instanceModelOriginHi").vec3f("instanceModelOriginLo").mat3f("instanceModel").mat3f("instanceModelNormal");var qt=r(74810),Yt=r(28491),Xt=r(49788);class Jt extends Mt.Zo{constructor(){super(...arguments),this.isSchematic=!1,this.usePBR=!1,this.mrrFactors=qt.mb,this.hasVertexColors=!1,this.hasSymbolColors=!1,this.doubleSided=!1,this.doubleSidedType="normal",this.cullFace=2,this.instanced=!1,this.instancedFeatureAttribute=!1,this.instancedColor=!1,this.instanceColorEncodesAlphaIgnore=!1,this.emissiveStrengthFromSymbol=0,this.emissiveStrengthKHR=1,this.emissiveSource=1,this.emissiveBaseColor=h.uY,this.instancedDoublePrecision=!1,this.normalType=0,this.receiveShadows=!0,this.receiveAmbientOcclusion=!0,this.castShadows=!0,this.ambient=(0,h.CN)(.2,.2,.2),this.diffuse=(0,h.CN)(.8,.8,.8),this.externalColor=(0,bt.fA)(1,1,1,1),this.colorMixMode="multiply",this.opacity=1,this.layerOpacity=1,this.origin=(0,h.vt)(),this.hasSlicePlane=!1,this.offsetTransparentBackfaces=!1,this.vvSize=null,this.vvColor=null,this.vvOpacity=null,this.modelTransformation=null,this.drivenOpacity=!1,this.customDepthTest=0,this.textureAlphaMode=0,this.textureAlphaCutoff=Xt.Q,this.textureAlphaPremultiplied=!1,this.renderOccluded=1,this.testsTransparentRenderOrder=0,this.isDecoration=!1}get emissiveStrength(){return this.emissiveStrengthFromSymbol*this.emissiveStrengthKHR}get hasVVSize(){return!!this.vvSize}get hasVVColor(){return!!this.vvColor}get hasVVOpacity(){return!!this.vvOpacity}}Mt.gy;let Kt=class extends St.w{constructor(e,t){let i=(0,yt.U)(tr(t));t.instanced&&t.instancedDoublePrecision&&(i=i.concat((0,yt.U)(function(e){return Ut($t.clone(),e)}(t)))),super(e,t,i),this.shader=new Tt.r(Yt.D,()=>r.e(5141).then(()=>r(5141))),this.ignoreUnused=!0}_makePipeline(e,t){let{output:r,transparent:i,cullFace:n,customDepthTest:o,hasOccludees:a}=e;return(0,At.Ey)({blending:i?It(r,!1,e.emissionDimmingPass):null,culling:er(e)?(0,At.Xt)(n):null,depthTest:Pt(r,Qt(o)),depthWrite:Ot(e),colorWrite:At.kn,stencilWrite:a?Dt:null,stencilTest:a?t?Ft:Rt:null,polygonOffset:at(e)})}initializePipeline(e){return this._occludeePipelineState=this._makePipeline(e,!0),this._makePipeline(e,!1)}getPipeline(e,t,r){return r?this._occludeePipelineState:super.getPipeline(e,t,r)}};function Qt(e){switch(e){case 1:return 515;case 0:case 4:return 513;case 2:return 516;case 3:return 514}}function er(e){return 0!==e.cullFace||!e.hasSlicePlane&&!e.transparent&&!e.doubleSidedMode}function tr(e){let t=(0,wt.BP)().vec3f("position");return 1===e.normalType?t.vec2i16("normalCompressed",{glNormalized:!0}):t.vec3f("normal"),e.hasVertexTangents&&t.vec4f("tangent"),e.hasTextures&&t.vec2f16("uv0"),e.hasVertexColors&&t.vec4u8("color",{glNormalized:!0}),e.hasSymbolColors&&t.vec4u8("symbolColor"),!e.instanced&&(0,Ct.E)()&&t.vec4u8("olidColor"),t}Kt=(0,lt.Cg)([(0,_t.$K)("esri.views.3d.webgl-engine.shaders.DefaultMaterialTechnique")],Kt);class rr extends ht{constructor(e){super(),this.spherical=e,this.alphaDiscardMode=1,this.doubleSidedMode=0,this.pbrMode=0,this.cullFace=0,this.normalType=0,this.customDepthTest=0,this.emissionSource=0,this.hasVertexColors=!1,this.hasSymbolColors=!1,this.hasVerticalOffset=!1,this.hasColorTexture=!1,this.hasMetallicRoughnessTexture=!1,this.hasOcclusionTexture=!1,this.hasNormalTexture=!1,this.hasScreenSizePerspective=!1,this.hasVertexTangents=!1,this.hasOccludees=!1,this.instanced=!1,this.instancedDoublePrecision=!1,this.hasModelTransformation=!1,this.offsetBackfaces=!1,this.hasVVSize=!1,this.hasVVColor=!1,this.receiveShadows=!1,this.hasShadowHighlights=!1,this.receiveAmbientOcclusion=!1,this.receiveGlobalIllumination=!1,this.textureAlphaPremultiplied=!1,this.instancedFeatureAttribute=!1,this.instancedColor=!1,this.writeDepth=!0,this.snowCover=!1,this.hasColorTextureTransform=!1,this.hasEmissionTextureTransform=!1,this.hasNormalTextureTransform=!1,this.hasOcclusionTextureTransform=!1,this.hasMetallicRoughnessTextureTransform=!1,this.useCustomDTRExponentForWater=!1,this.useFillLights=!0,this.draped=!1,this.renderOccluded=!1}get textureCoordinateType(){return+!!this.hasTextures}get hasTextures(){return this.hasColorTexture||this.hasNormalTexture||this.hasMetallicRoughnessTexture||3===this.emissionSource||this.hasOcclusionTexture}get hasVVInstancing(){return this.instanced}}(0,lt.Cg)([(0,ct.W)({count:4})],rr.prototype,"alphaDiscardMode",void 0),(0,lt.Cg)([(0,ct.W)({count:3})],rr.prototype,"doubleSidedMode",void 0),(0,lt.Cg)([(0,ct.W)({count:8})],rr.prototype,"pbrMode",void 0),(0,lt.Cg)([(0,ct.W)({count:3})],rr.prototype,"cullFace",void 0),(0,lt.Cg)([(0,ct.W)({count:3})],rr.prototype,"normalType",void 0),(0,lt.Cg)([(0,ct.W)({count:4})],rr.prototype,"customDepthTest",void 0),(0,lt.Cg)([(0,ct.W)({count:8})],rr.prototype,"emissionSource",void 0),(0,lt.Cg)([(0,ct.W)()],rr.prototype,"hasVertexColors",void 0),(0,lt.Cg)([(0,ct.W)()],rr.prototype,"hasSymbolColors",void 0),(0,lt.Cg)([(0,ct.W)()],rr.prototype,"hasVerticalOffset",void 0),(0,lt.Cg)([(0,ct.W)()],rr.prototype,"hasColorTexture",void 0),(0,lt.Cg)([(0,ct.W)()],rr.prototype,"hasMetallicRoughnessTexture",void 0),(0,lt.Cg)([(0,ct.W)()],rr.prototype,"hasOcclusionTexture",void 0),(0,lt.Cg)([(0,ct.W)()],rr.prototype,"hasNormalTexture",void 0),(0,lt.Cg)([(0,ct.W)()],rr.prototype,"hasScreenSizePerspective",void 0),(0,lt.Cg)([(0,ct.W)()],rr.prototype,"hasVertexTangents",void 0),(0,lt.Cg)([(0,ct.W)()],rr.prototype,"hasOccludees",void 0),(0,lt.Cg)([(0,ct.W)()],rr.prototype,"instanced",void 0),(0,lt.Cg)([(0,ct.W)()],rr.prototype,"instancedDoublePrecision",void 0),(0,lt.Cg)([(0,ct.W)()],rr.prototype,"hasModelTransformation",void 0),(0,lt.Cg)([(0,ct.W)()],rr.prototype,"offsetBackfaces",void 0),(0,lt.Cg)([(0,ct.W)()],rr.prototype,"hasVVSize",void 0),(0,lt.Cg)([(0,ct.W)()],rr.prototype,"hasVVColor",void 0),(0,lt.Cg)([(0,ct.W)()],rr.prototype,"receiveShadows",void 0),(0,lt.Cg)([(0,ct.W)()],rr.prototype,"hasShadowHighlights",void 0),(0,lt.Cg)([(0,ct.W)()],rr.prototype,"receiveAmbientOcclusion",void 0),(0,lt.Cg)([(0,ct.W)()],rr.prototype,"receiveGlobalIllumination",void 0),(0,lt.Cg)([(0,ct.W)()],rr.prototype,"textureAlphaPremultiplied",void 0),(0,lt.Cg)([(0,ct.W)()],rr.prototype,"instancedFeatureAttribute",void 0),(0,lt.Cg)([(0,ct.W)()],rr.prototype,"instancedColor",void 0),(0,lt.Cg)([(0,ct.W)()],rr.prototype,"writeDepth",void 0),(0,lt.Cg)([(0,ct.W)()],rr.prototype,"snowCover",void 0),(0,lt.Cg)([(0,ct.W)()],rr.prototype,"hasColorTextureTransform",void 0),(0,lt.Cg)([(0,ct.W)()],rr.prototype,"hasEmissionTextureTransform",void 0),(0,lt.Cg)([(0,ct.W)()],rr.prototype,"hasNormalTextureTransform",void 0),(0,lt.Cg)([(0,ct.W)()],rr.prototype,"hasOcclusionTextureTransform",void 0),(0,lt.Cg)([(0,ct.W)()],rr.prototype,"hasMetallicRoughnessTextureTransform",void 0);var ir=r(57323);let nr=class extends Kt{constructor(){super(...arguments),this.shader=new Tt.r(ir.R,()=>r.e(9933).then(()=>r(39933)))}};nr=(0,lt.Cg)([(0,_t.$K)("esri.views.3d.webgl-engine.shaders.RealisticTreeTechnique")],nr);class or extends ct.K{constructor(){super(...arguments),this.receiveShadows=!0}}(0,lt.Cg)([(0,ct.W)()],or.prototype,"receiveShadows",void 0);class ar extends me{constructor(e,t){super(e,lr),this.materialType="default",this.supportsEdges=!0,this.intersectRayDraped=void 0,this.intersectScreenPolygonDraped=void 0,this.produces=new Map([[2,e=>(0,te.uw)(e)&&!this.transparent],[4,e=>(0,te.uw)(e)&&this.transparent]]),this._layout=tr(this.parameters),this._configuration=new rr(t.spherical)}isVisibleForOutput(e){return 5!==e&&7!==e&&6!==e||this.parameters.castShadows}get visible(){let{layerOpacity:e,colorMixMode:t,opacity:r,externalColor:i}=this.parameters;return e*("replace"===t?1:r)*("ignore"===t||isNaN(i[3])?1:i[3])>=Xt.Q}get _hasEmissiveBase(){return!!this.parameters.emissiveTextureId||!(0,d.t2)(this.parameters.emissiveBaseColor,h.uY)}get emissions(){return this.parameters.emissiveStrength>0&&(0===this.parameters.emissiveSource&&this._hasEmissiveBase||1===this.parameters.emissiveSource)?this.transparent?2:1:0}updateConfiguration(e){super.updateConfiguration(e);let{parameters:t,_configuration:r}=this;r.hasNormalTexture=t.hasNormalTexture,r.hasColorTexture=t.hasColorTexture,r.hasMetallicRoughnessTexture=t.hasMetallicRoughnessTexture,r.hasOcclusionTexture=t.hasOcclusionTexture;let{treeRendering:i,doubleSided:n,doubleSidedType:o}=t;r.hasVertexTangents=!i&&t.hasVertexTangents,r.instanced=t.instanced,r.instancedDoublePrecision=t.instancedDoublePrecision,r.hasVVColor=!!t.vvColor,r.hasVVSize=!!t.vvSize,r.hasVerticalOffset=null!=t.verticalOffset,r.hasScreenSizePerspective=null!=t.screenSizePerspective,r.hasSlicePlane=t.hasSlicePlane,r.alphaDiscardMode=t.textureAlphaMode,r.normalType=i?0:t.normalType,r.transparent=this.transparent,r.enableOITOffset=e.enableOITOffset,r.customDepthTest=t.customDepthTest??0,r.hasOccludees=e.hasOccludees,r.cullFace=t.hasSlicePlane?0:t.cullFace,r.hasModelTransformation=!i&&null!=t.modelTransformation,r.hasVertexColors=t.hasVertexColors,r.hasSymbolColors=t.hasSymbolColors,r.doubleSidedMode=i?2:n&&"normal"===o?1:n&&"winding-order"===o?2:0,r.instancedFeatureAttribute=t.instancedFeatureAttribute,r.instancedColor=t.instancedColor,(0,te._o)(e.output)?(r.receiveShadows=t.receiveShadows,r.hasShadowHighlights=function(e,t){return e.receiveShadows&&null!=t.shadowHighlight?.getTexture()}(r,e),r.receiveAmbientOcclusion=t.receiveAmbientOcclusion&&null!=e.ssao,r.receiveGlobalIllumination=t.receiveAmbientOcclusion&&e.globalIlluminationEnabled):r.receiveShadows=r.hasShadowHighlights=r.receiveAmbientOcclusion=r.receiveGlobalIllumination=!1,r.textureAlphaPremultiplied=!!t.textureAlphaPremultiplied,r.pbrMode=t.usePBR?t.unlit?7:t.isSchematic?2:1:0,r.emissionSource=t.emissionSource,r.offsetBackfaces=!(!this.transparent||!t.offsetTransparentBackfaces),r.snowCover=e.snowCover>0,r.hasColorTextureTransform=!!t.colorTextureTransformMatrix,r.hasNormalTextureTransform=!!t.normalTextureTransformMatrix,r.hasEmissionTextureTransform=!!t.emissiveTextureTransformMatrix,r.hasOcclusionTextureTransform=!!t.occlusionTextureTransformMatrix,r.hasMetallicRoughnessTextureTransform=!!t.metallicRoughnessTextureTransformMatrix}intersectRay(e,t,r,i,n,o){let a=this._getMaterialVerticalOffset(t,r);null!=a&&(i=(0,d.Re)(cr,i,a),n=(0,d.Re)(ur,n,a)),o=function(e,t,r,i){let n=ft(t);if(!n)return e;let o=(0,d.oW)(xt,i,r);return(t,r,i,a)=>e(t,mt(n,o,r,i),i,a)}(o,this._configuration,i,n),(0,pe.Uy)(e,r,i,n,(0,Ye.ou)(r.verticalOffset),o)}intersectScreenPolygon(e,t,r,i){return function(e,t,r){return null==e?null:(e.renderDistance=function(e,t,r,i,n){let o=ft(r);return o?mt(o,(0,d.oW)(xt,n,i),e,t):e}(e.renderDistance,e.hasNormal?e.normal:null,t,r,e.point),e)}(Re(e,r,t,i,this._createScreenPolygonVertexDisplacement(t,r)),this._configuration,r.camera.eye)}createGLMaterial(e){return new sr(e)}createBufferWriter(){return new et(this._layout)}get transparent(){let{drivenOpacity:e,opacity:t,externalColor:r,layerOpacity:i,texture:n,textureId:o,textureAlphaMode:a,colorMixMode:s}=this.parameters,l=r[3];return e||t<1&&"replace"!==s||l<1&&"ignore"!==s||i<1||(null!=n||null!=o)&&1!==a&&2!==a&&"replace"!==s}_createScreenPolygonVertexDisplacement(e,t){let r=this._getMaterialVerticalOffset(e,t);return null==r?null:{applyToVertex:(e,t,i,n)=>(e[0]=t+r[0],e[1]=i+r[1],e[2]=n+r[2],e),applyToAabb:e=>((0,f.Ne)(e,(0,d.WQ)(vr,(0,f.pg)(e,vr),r)),(0,f.vI)(e,(0,d.WQ)(vr,(0,f.Lu)(e,vr),r)),e)}}_getMaterialVerticalOffset(e,t){if(null==this.parameters.verticalOffset)return null;let r=t.camera;(0,d.hZ)(fr,e[12],e[13],e[14]);let i=null;switch(t.viewingMode){case 1:i=(0,d.S8)(hr,fr);break;case 2:i=(0,d.C)(hr,dr)}let n=(0,d.Re)(mr,fr,r.eye),o=(0,d.Bw)(n),a=(0,d.hs)(n,n,1/o),s=null;this.parameters.screenSizePerspective&&(s=(0,d.Om)(i,a));let l=(0,fe.kE)(r,o,this.parameters.verticalOffset,s??0,this.parameters.screenSizePerspective,null);return(0,d.hs)(i,i,l),(0,d.ei)(pr,i,t.transform.inverseRotation)}}class sr extends oe{constructor(e){super({...e,...e.material.parameters})}beginSlot(e){this._material.setParameters({receiveShadows:e.shadowMap.enabled});let t=this._material.parameters;this.updateTexture(t.textureId);let r=e.camera.viewInverseTransposeMatrix;return(0,d.hZ)(t.origin,r[3],r[7],r[11]),this._material.setParameters(this.textureBindParameters),this.getTechnique(t.treeRendering?nr:Kt,e)}}class lr extends Jt{constructor(){super(...arguments),this.treeRendering=!1,this.useIndexing=!1,this.hasVertexTangents=!1,this.unlit=!1}get hasNormalTexture(){return!this.treeRendering&&!!this.normalTextureId}get hasColorTexture(){return!!this.textureId}get hasMetallicRoughnessTexture(){return!this.treeRendering&&!!this.metallicRoughnessTextureId}get hasOcclusionTexture(){return!this.treeRendering&&!!this.occlusionTextureId}get emissionSource(){return null!=this.emissiveTextureId&&0===this.emissiveSource?3:0===this.emissiveSource?2:1}get hasTextures(){return this.hasColorTexture||this.hasNormalTexture||this.hasMetallicRoughnessTexture||3===this.emissionSource||this.hasOcclusionTexture}}const cr=(0,h.vt)(),ur=(0,h.vt)(),dr=(0,h.fA)(0,0,1),hr=(0,h.vt)(),fr=(0,h.vt)(),mr=(0,h.vt)(),pr=(0,h.vt)(),vr=(0,h.vt)(),gr=()=>I.A.getLogger("esri.views.3d.layers.graphics.objectResourceUtils");class xr{constructor(e,t,r){this.resource=e,this.textures=t,this.usedMemory=r}}function _r(e){let t=e.params,r=t.topology,i=!0;switch(t.vertexAttributes||(gr().warn("Geometry must specify vertex attributes"),i=!1),t.topology){case"PerAttributeArray":break;case"Indexed":case null:case void 0:{let e=t.faces;if(e){if(t.vertexAttributes)for(let r in t.vertexAttributes){let t=e[r];t?.values?(null!=t.valueType&&"UInt32"!==t.valueType&&(gr().warn(`Unsupported indexed geometry indices type '${t.valueType}', only UInt32 is currently supported`),i=!1),null!=t.valuesPerElement&&1!==t.valuesPerElement&&(gr().warn(`Unsupported indexed geometry values per element '${t.valuesPerElement}', only 1 is currently supported`),i=!1)):(gr().warn(`Indexed geometry does not specify face indices for '${r}' attribute`),i=!1)}}else gr().warn("Indexed geometries must specify faces"),i=!1;break}default:gr().warn(`Unsupported topology '${r}'`),i=!1}e.params.material||(gr().warn("Geometry requires material"),i=!1);let n=e.params.vertexAttributes;for(let e in n)n[e].values||(gr().warn("Geometries with externally defined attributes are not yet supported"),i=!1);return i}function br(e){let t=(0,f.Ie)();return e.forEach(e=>{let r=e.boundingInfo;null!=r&&(0,f.RF)(t,r.box)}),t}function yr(e){switch(e){case"mask":return 2;case"maskAndTransparency":return 3;case"none":return 1;default:return 0}}function wr(e){let t=e.params;return{id:1,material:t.material,texture:t.texture,region:t.texture}}const Mr=new R.A(1,2,"wosr");async function Tr(e,t){let o,a=function(e){let t=e.match(/(.*\.(gltf|glb))(\?lod=([0-9]+))?$/);return t?{fileType:"gltf",url:t[1],specifiedLodIndex:null==t[4]?null:Number(t[4])}:{fileType:e.match(/(.*\.(json|json\.gz))$/)?"wosr":"unknown",url:e,specifiedLodIndex:null}}((0,n.EM)(e));if("wosr"===a.fileType){let e=await(t.cache?t.cache.loadWOSR(a.url,t):async function(e,t){let r=await async function(e,t){let r=await(0,A.Ke)((0,C.A)(e,t));if(r.ok)return r.value.data;(0,D.QP)(r.error),function(e){throw new E.A("",`Request for object resource failed: ${e}`)}(r.error)}(e,t),i=await async function(e,t){let r=[];for(let i in e){let n=e[i],o=n.images[0].data;if(!o){gr().warn("Externally referenced texture data is not yet supported");continue}let a=n.encoding+";base64,"+o,s="/textureDefinitions/"+i,l="rgba"===n.channels?n.alphaChannelUsage||"transparency":"none",c={noUnpackFlip:!0,wrap:{s:10497,t:10497},preMultiplyAlpha:1!==yr(l)},u=t?.disableTextures?Promise.resolve(null):(0,B.D)(a,t);r.push(u.then(e=>({refId:s,image:e,parameters:c,alphaChannelUsage:l})))}let i=await Promise.all(r),n={};for(let e of i)n[e.refId]=e;return n}(r.textureDefinitions??{},t),n=0;for(let e in i)if(i.hasOwnProperty(e)){let t=i[e];n+=t?.image?t.image.width*t.image.height*4:0}return new xr(r,i,n+(0,O.Qh)(r))}(a.url,t)),{engineResources:r,referenceBoundingBox:i}=function(e,t){let r=[],i=[],n=[],o=new P,a=e.resource,s=R.A.parse(a.version||"1.0","wosr");Mr.validate(s);let l=a.model.name,c=a.model.geometries,u=a.materialDefinitions??{},d=e.textures,f=0,m=new Map;for(let e=0;e<c.length;e++){let a=c[e];if(!_r(a))continue;let s=wr(a),l=a.params.vertexAttributes,p=[],v=e=>{if("PerAttributeArray"===a.params.topology)return null;let t=a.params.faces;for(let r in t)if(r===e)return t[r].values;return null},g=l.position,x=g.values.length/g.valuesPerElement;for(let e in l){let t=l[e],r=t.values,i=v(e)??(0,F.tM)(x);p.push([e,new N.n(r,i,t.valuesPerElement,!0)])}let _=s.texture,b=d&&d[_];if(b&&!m.has(_)){let{image:e,parameters:t}=b,r=new ee.h(e,t);i.push(r),m.set(_,r)}let y=m.get(_),w=y?y.id:void 0,M=s.material,T=o.get(M,_);if(null==T){let e=u[M.slice(M.lastIndexOf("/")+1)].params;1===e.transparency&&(e.transparency=0);let r=b?yr(b.alphaChannelUsage):void 0,i={ambient:(0,h.ci)(e.diffuse),diffuse:(0,h.ci)(e.diffuse),opacity:1-(e.transparency||0),textureAlphaMode:r,textureAlphaCutoff:.33,textureId:w,doubleSided:!0,cullFace:0,colorMixMode:e.externalColorMixMode||"tint",textureAlphaPremultiplied:b?.parameters.preMultiplyAlpha??!1};t?.materialParameters&&Object.assign(i,t.materialParameters),T=new ar(i,t),o.set(M,_,T)}n.push(T);let S=new K(T,p);f+=p.find(e=>"position"===e[0])?.[1]?.indices.length??0,r.push(S)}return{engineResources:[{name:l,stageResources:{textures:i,materials:n,geometries:r},pivotOffset:a.model.pivotOffset,numberOfVertices:f,lodThreshold:null}],referenceBoundingBox:br(r)}}(e,t);return{lods:r,referenceBoundingBox:i,isEsriSymbolResource:!1,isWosr:!0}}if(t.cache)o=await t.cache.loadGLTF(a.url,t,!!t.usePBR,!!t.useEmissive);else{let{loadGLTF:e}=await r.e(1698).then(()=>r(51698));o=await e(new _.R,a.url,t,t.usePBR,t.useEmissive)}let{engineResources:s,referenceBoundingBox:m}=function(e,t,r){let n=e.model,o=e.meta,a=n.meta?.ESRI_proxyEllipsoid,s=o.isEsriSymbolResource&&null!=a&&"EsriRealisticTreesStyle"===o.ESRI_webstyle;s&&!e.customMeta.esriTreeRendering&&(e.customMeta.esriTreeRendering=!0,function(e,t){for(let r=0;r<e.model.lods.length;++r){let i=e.model.lods[r];for(let n of i.parts){let i=n.attributes.normal;if(null==i)return;let o=n.attributes.position,a=o.count,s=(0,h.vt)(),u=(0,h.vt)(),f=(0,h.vt)(),m=new Float32Array(4*a),v=new Float32Array(3*a),g=(0,l.B8)((0,c.vt)(),n.transform),x=0,_=0;for(let l=0;l<a;l++){o.getVec(l,u),i.getVec(l,s),(0,d.Z0)(u,u,n.transform),(0,d.Re)(f,u,t.center),(0,d.Qr)(f,f,t.radius);let a=f[2],c=(0,d.Bw)(f),h=Math.min(.45+.55*c*c,1)**2.2;(0,d.Qr)(f,f,t.radius),null!==g&&(0,d.Z0)(f,f,g),(0,d.S8)(f,f),r+1!==e.model.lods.length&&e.model.lods.length>1&&(a>-1?(0,d.Cc)(f,f,s,.2):(0,d.Cc)(f,f,s,Math.min(-4*a-3.8,1))),v[x]=f[0],v[x+1]=f[1],v[x+2]=f[2],x+=3,m[_]=h,m[_+1]=h,m[_+2]=h,m[_+3]=1,_+=4}n.attributes.normal=new p.xs(v.buffer),n.attributes.color=new p.Eq(m.buffer)}}}(e,a));let m=!!t.usePBR,v=o.isEsriSymbolResource?{usePBR:m,isSchematic:!1,treeRendering:s,mrrFactors:qt.SY}:{usePBR:m,isSchematic:!1,treeRendering:!1,mrrFactors:qt.mb},g={...t.materialParameters,treeRendering:s},x=[],_=new Map,b=new Map,w=n.lods.length,T=(0,f.Ie)();return n.lods.forEach((e,o)=>{let a=!0===t.skipHighLods&&(w>1&&0===o||w>3&&1===o)||!1===t.skipHighLods&&null!=r&&o!==r;if(a&&0!==o)return;let l=new S(e.name,e.lodThreshold,[0,0,0]);e.parts.forEach(e=>{let r=a?new ar({},t):function(e,t,r,n,o,a,s,l,c){let d=e.materials.get(t.material);if(null==d)return null;let{normal:f,color:m,texCoord0:p,tangent:v}=t.attributes,g=t.material+(f?"_normal":"")+(m?"_color":"")+(p?"_texCoord0":"")+(v?"_tangent":""),x=null!=t.attributes.texCoord0,_=null!=t.attributes.normal,b=function(e){switch(e){case"BLEND":return 0;case"MASK":return 2;case"OPAQUE":case null:case void 0:return 1}}(d.alphaMode);if(!a.has(g)){if(x){let t=(t,r=!1,i=!1)=>{if(null!=t&&!s.has(t)){let n=e.textures.get(t);if(n){let e=n.data,o=r&&!(0,y.x3)(e)?l.compressionOptions:void 0;s.set(t,new ee.h((0,y.x3)(e)?e.data:e,{...n.parameters,preMultiplyAlpha:!(0,y.x3)(e)&&i,encoding:(0,y.x3)(e)?e.encoding:void 0,compressionOptions:o}))}}},r=1!==b&&!c;t(d.colorTexture,r,1!==b),t(d.normalTexture),t(d.occlusionTexture,!0),t(d.emissiveTexture),t(d.metallicRoughnessTexture,!0)}let r=(0,i.xV)(d.color[0]),f=(0,i.xV)(d.color[1]),m=(0,i.xV)(d.color[2]),p=null!=d.colorTexture&&x?s.get(d.colorTexture):null,v=(0,qt.Jr)(d),w=null==d.normalTextureTransform?.scale?u.Un:d.normalTextureTransform?.scale;a.set(g,new ar({...n,customDepthTest:1,textureAlphaMode:b,textureAlphaCutoff:d.alphaCutoff,diffuse:[r,f,m],ambient:[r,f,m],opacity:"OPAQUE"===d.alphaMode?1:d.opacity,doubleSided:d.doubleSided,doubleSidedType:"winding-order",cullFace:d.doubleSided?0:2,hasVertexColors:!!t.attributes.color,hasVertexTangents:!!t.attributes.tangent,normalType:_?0:2,castShadows:!0,receiveShadows:d.receiveShadows,receiveAmbientOcclusion:d.receiveAmbientOcclusion,unlit:d.unlit,textureId:p?.id,colorMixMode:d.colorMixMode,normalTextureId:null!=d.normalTexture&&x?s.get(d.normalTexture).id:void 0,textureAlphaPremultiplied:null!=p&&!!p.parameters.preMultiplyAlpha,occlusionTextureId:null!=d.occlusionTexture&&x?s.get(d.occlusionTexture).id:void 0,emissiveTextureId:null!=d.emissiveTexture&&x&&!d.unlit?s.get(d.emissiveTexture).id:void 0,metallicRoughnessTextureId:null!=d.metallicRoughnessTexture&&x?s.get(d.metallicRoughnessTexture).id:void 0,emissiveBaseColor:d.unlit?h.uY:[d.emissiveFactor[0],d.emissiveFactor[1],d.emissiveFactor[2]],emissiveStrengthKHR:null==d.emissiveStrengthKHR?1:d.emissiveStrengthKHR,emissiveStrengthFromSymbol:null==o.emissiveStrengthFromSymbol?void 0:o.emissiveStrengthFromSymbol,mrrFactors:v?qt.Bt:[d.metallicFactor,d.roughnessFactor,n.mrrFactors[2]],isSchematic:v,colorTextureTransformMatrix:M(d.colorTextureTransform),normalTextureTransformMatrix:M(d.normalTextureTransform),scale:[w[0],w[1]],occlusionTextureTransformMatrix:M(d.occlusionTextureTransform),emissiveTextureTransformMatrix:M(d.emissiveTextureTransform),metallicRoughnessTextureTransformMatrix:M(d.metallicRoughnessTextureTransform),...o},l))}let w=a.get(g);if(r.stageResources.materials.push(w),x){let e=e=>{null!=e&&r.stageResources.textures.push(s.get(e))};e(d.colorTexture),e(d.normalTexture),e(d.occlusionTexture),e(d.emissiveTexture),e(d.metallicRoughnessTexture)}return w}(n,e,l,v,g,_,b,t,s),{geometry:c,vertexCount:d}=Sr(e,r??new ar({},t)),m=c.boundingInfo;null!=m&&0===o&&(0,f.RF)(T,m.box),null!=r&&(l.stageResources.geometries.push(c),l.numberOfVertices+=d)}),a||x.push(l)}),{engineResources:x,referenceBoundingBox:T}}(o,t,a.specifiedLodIndex);return{lods:s,referenceBoundingBox:m,isEsriSymbolResource:o.meta.isEsriSymbolResource,isWosr:!1}}function Sr(e,t){let r=e.attributes.position.count,i=(0,b.x)(e.indices||r,e.primitiveType),n=m(3*r),{typedBuffer:s,typedBufferStride:l}=e.attributes.position;(0,v.t)(n,s,e.transform,3,l);let c=[["position",new N.n(n,i,3,!0)]];if(null!=e.attributes.normal){let t=m(3*r),{typedBuffer:n,typedBufferStride:s}=e.attributes.normal;(0,a.Ge)(Cr,e.transform),(0,v.b)(t,n,Cr,3,s),(0,o.or)(Cr)&&(0,v.n)(t,t),c.push(["normal",new N.n(t,i,3,!0)])}if(null!=e.attributes.tangent){let t=m(4*r),{typedBuffer:n,typedBufferStride:s}=e.attributes.tangent;(0,a.z0)(Cr,e.transform),(0,g.t)(t,n,Cr,4,s),(0,o.or)(Cr)&&(0,v.n)(t,t,4),c.push(["tangent",new N.n(t,i,4,!0)])}if(null!=e.attributes.texCoord0){let t=m(2*r),{typedBuffer:n,typedBufferStride:o}=e.attributes.texCoord0;(0,x.a)(t,n,2,o),c.push(["uv0",new N.n(t,i,2,!0)])}let u=e.attributes.color;if(null!=u){let t=new Uint8Array(4*r);4===u.elementCount?u instanceof p.Eq?(0,g.b)(t,u,1,255):(u instanceof p.XP||u instanceof p.Uz)&&(0,g.b)(t,u,1/255,255):(t.fill(255),u instanceof p.xs?(0,v.f)(t,u.typedBuffer,1,255,4,u.typedBufferStride):(e.attributes.color instanceof p.eI||e.attributes.color instanceof p.nS)&&(0,v.f)(t,u.typedBuffer,1/255,255,4,e.attributes.color.typedBufferStride)),c.push(["color",new N.n(t,i,4,!0)])}return{geometry:new K(t,c),vertexCount:r}}const Cr=(0,s.vt)()},26857(e,t,r){var i=r(32198),n=r(69622),o=r(91429);let a=class extends n.A{constructor(){super(...arguments),this.SCENEVIEW_HITTEST_RETURN_INTERSECTOR=!1,this.DECONFLICTOR_SHOW_VISIBLE=!1,this.DECONFLICTOR_SHOW_INVISIBLE=!1,this.DECONFLICTOR_SHOW_GRID=!1,this.LABELS_SHOW_BORDER=!1,this.TEXT_SHOW_BASELINE=!1,this.TEXT_SHOW_BORDER=!1,this.OVERLAY_DRAW_DEBUG_TEXTURE=!1,this.OVERLAY_SHOW_CENTER=!1,this.SHOW_POI=!1,this.OCCLUSION_QUERY_DEBUG_PIXEL=!1,this.ENABLE_OPTIMIZATIONS=!0,this.TESTS_DISABLE_FAST_UPDATES=!1,this.DRAW_MESH_GEOMETRY_NORMALS=!1,this.FEATURE_TILE_FETCH_SHOW_TILES=!1,this.FEATURE_TILE_TREE_SHOW_TILES=!1,this.TERRAIN_TILE_TREE_SHOW_TILES=!1,this.I3S_TREE_SHOW_TILES=!1,this.I3S_SHOW_MODIFICATIONS=!1,this.UPDATING=!1,this.LOD_INSTANCE_RENDERER_DISABLE_UPDATES=!1,this.LOD_INSTANCE_RENDERER_COLORIZE_BY_LEVEL=!1,this.EDGES_SHOW_HIDDEN_TRANSPARENT_EDGES=!1,this.LINE_WIREFRAMES=!1,this.FLOW_GLOBAL_SCALE_THRESHOLD=null}};(0,i.Cg)([(0,o.MZ)()],a.prototype,"SCENEVIEW_HITTEST_RETURN_INTERSECTOR",void 0),(0,i.Cg)([(0,o.MZ)()],a.prototype,"DECONFLICTOR_SHOW_VISIBLE",void 0),(0,i.Cg)([(0,o.MZ)()],a.prototype,"DECONFLICTOR_SHOW_INVISIBLE",void 0),(0,i.Cg)([(0,o.MZ)()],a.prototype,"DECONFLICTOR_SHOW_GRID",void 0),(0,i.Cg)([(0,o.MZ)()],a.prototype,"LABELS_SHOW_BORDER",void 0),(0,i.Cg)([(0,o.MZ)()],a.prototype,"TEXT_SHOW_BASELINE",void 0),(0,i.Cg)([(0,o.MZ)()],a.prototype,"TEXT_SHOW_BORDER",void 0),(0,i.Cg)([(0,o.MZ)()],a.prototype,"OVERLAY_DRAW_DEBUG_TEXTURE",void 0),(0,i.Cg)([(0,o.MZ)()],a.prototype,"OVERLAY_SHOW_CENTER",void 0),(0,i.Cg)([(0,o.MZ)()],a.prototype,"SHOW_POI",void 0),(0,i.Cg)([(0,o.MZ)()],a.prototype,"OCCLUSION_QUERY_DEBUG_PIXEL",void 0),(0,i.Cg)([(0,o.MZ)()],a.prototype,"ENABLE_OPTIMIZATIONS",void 0),(0,i.Cg)([(0,o.MZ)()],a.prototype,"TESTS_DISABLE_FAST_UPDATES",void 0),(0,i.Cg)([(0,o.MZ)()],a.prototype,"DRAW_MESH_GEOMETRY_NORMALS",void 0),(0,i.Cg)([(0,o.MZ)()],a.prototype,"FEATURE_TILE_FETCH_SHOW_TILES",void 0),(0,i.Cg)([(0,o.MZ)()],a.prototype,"FEATURE_TILE_TREE_SHOW_TILES",void 0),(0,i.Cg)([(0,o.MZ)()],a.prototype,"TERRAIN_TILE_TREE_SHOW_TILES",void 0),(0,i.Cg)([(0,o.MZ)()],a.prototype,"I3S_TREE_SHOW_TILES",void 0),(0,i.Cg)([(0,o.MZ)()],a.prototype,"I3S_SHOW_MODIFICATIONS",void 0),(0,i.Cg)([(0,o.MZ)()],a.prototype,"UPDATING",void 0),(0,i.Cg)([(0,o.MZ)()],a.prototype,"LOD_INSTANCE_RENDERER_DISABLE_UPDATES",void 0),(0,i.Cg)([(0,o.MZ)()],a.prototype,"LOD_INSTANCE_RENDERER_COLORIZE_BY_LEVEL",void 0),(0,i.Cg)([(0,o.MZ)()],a.prototype,"EDGES_SHOW_HIDDEN_TRANSPARENT_EDGES",void 0),(0,i.Cg)([(0,o.MZ)()],a.prototype,"LINE_WIREFRAMES",void 0),(0,i.Cg)([(0,o.MZ)()],a.prototype,"FLOW_GLOBAL_SCALE_THRESHOLD",void 0),a=(0,i.Cg)([(0,o.$K)("esri.views.3d.support.debugFlags")],a);const s=new a;r.d(t,["b",0,s])},46686(e,t,r){r.d(t,{A7:()=>o,Y0:()=>n});var i=r(29941);class n extends i.v{constructor(e){super(),this.spherical=e,this.draped=!1}}function o(e){(function(e){e.varyings.add("linearDepth","float",{invariant:!0})})(e),e.vertex.code.add("void forwardLinearDepth(float _linearDepth) { linearDepth = _linearDepth; }")}},32680(e,t,r){r.d(t,{M:()=>n});var i=r(31821);function n(e){e.vertex.code.add(i.H`vec4 offsetBackfacingClipPosition(vec4 posClip, vec3 posWorld, vec3 normalWorld, vec3 camPosWorld) {
|
|
224
224
|
vec3 camToVert = posWorld - camPosWorld;
|
|
225
225
|
bool isBackface = dot(camToVert, normalWorld) > 0.0;
|
|
226
226
|
if (isBackface) {
|
|
@@ -344,32 +344,32 @@ return textureGrad(tex, uvAtlas, dUVdx, dUVdy);
|
|
|
344
344
|
vec4 textureLookup(sampler2D tex, vec2 uv) {
|
|
345
345
|
return ${a?"textureAtlasLookup(tex, uv, vuvRegion)":"texture(tex, uv)"};
|
|
346
346
|
}
|
|
347
|
-
`)}},54154(e,t,r){r.d(t,{Ge:()=>
|
|
347
|
+
`)}},54154(e,t,r){r.d(t,{Ge:()=>m}),r(90629);var i=r(78955),n=r(91829),o=r(7290),a=r(35522),s=r(51850),l=r(33079),c=r(31821);function u(e){e.vertex.code.add(c.H`float screenSizePerspectiveViewAngleDependentFactor(float absCosAngle) {
|
|
348
348
|
return absCosAngle * absCosAngle * absCosAngle;
|
|
349
|
-
}`),e.vertex.code.add(
|
|
349
|
+
}`),e.vertex.code.add(c.H`vec3 screenSizePerspectiveScaleFactor(float absCosAngle, float distanceToCamera, vec3 params) {
|
|
350
350
|
return vec3(
|
|
351
351
|
min(params.x / (distanceToCamera - params.y), 1.0),
|
|
352
352
|
screenSizePerspectiveViewAngleDependentFactor(absCosAngle),
|
|
353
353
|
params.z
|
|
354
354
|
);
|
|
355
|
-
}`),e.vertex.code.add(
|
|
355
|
+
}`),e.vertex.code.add(c.H`float applyScreenSizePerspectiveScaleFactorFloat(float size, vec3 factor) {
|
|
356
356
|
return size * clamp(mix(factor.x, 1.0, factor.y), factor.z, 1.0);
|
|
357
|
-
}`),e.vertex.code.add(
|
|
357
|
+
}`),e.vertex.code.add(c.H`float screenSizePerspectiveScaleFloat(float size, float absCosAngle, float distanceToCamera, vec3 params) {
|
|
358
358
|
return applyScreenSizePerspectiveScaleFactorFloat(
|
|
359
359
|
size,
|
|
360
360
|
screenSizePerspectiveScaleFactor(absCosAngle, distanceToCamera, params)
|
|
361
361
|
);
|
|
362
|
-
}`),e.vertex.code.add(
|
|
362
|
+
}`),e.vertex.code.add(c.H`vec2 applyScreenSizePerspectiveScaleFactorVec2(vec2 size, vec3 factor) {
|
|
363
363
|
return size * clamp(mix(factor.x, 1.0, factor.y), factor.z, 1.0);
|
|
364
|
-
}`),e.vertex.code.add(
|
|
364
|
+
}`),e.vertex.code.add(c.H`vec2 screenSizePerspectiveScaleVec2(vec2 size, float absCosAngle, float distanceToCamera, vec3 params) {
|
|
365
365
|
return applyScreenSizePerspectiveScaleFactorVec2(size, screenSizePerspectiveScaleFactor(absCosAngle, distanceToCamera, params));
|
|
366
|
-
}`)}const
|
|
366
|
+
}`)}const d=(0,s.vt)();var h=r(20693),f=r(71988);function m(e,t){let r=e.vertex;t.hasVerticalOffset?(r.include(o.j,t),function(e){e.uniforms.add(new f.E("verticalOffset",(e,t)=>{let{minWorldLength:r,maxWorldLength:n,screenLength:o}=e.verticalOffset,a=Math.tan(.5*t.camera.fovY)/(.5*t.camera.fullViewport[3]),s=t.camera.pixelRatio||1;return(0,i.hZ)(p,o*s,a,r,n)}))}(r),t.hasScreenSizePerspective&&(e.include(u),function(e){e.uniforms.add(new l.t("screenSizePerspectiveAlignment",e=>function(e,t){let r=null!=t&&null!=e?Math.min(e.minPixelSize/t,1):0;return e?(0,a.hZ)(d,e.divisor,e.offset,r):(0,a.hZ)(d,0,0,0)}(e.screenSizePerspectiveAlignment||e.screenSizePerspective,e.screenSizePerspectiveAlignment?null:e.screenSizePerspectiveMinPixelReferenceSize)))}(r),(0,h.y)(e.vertex,t)),r.code.add(c.H`
|
|
367
367
|
vec3 calculateVerticalOffset(vec3 worldPos, vec3 localOrigin) {
|
|
368
368
|
float viewDistance = length((view * vec4(worldPos, 1.0)).xyz);
|
|
369
|
-
|
|
370
|
-
${t.hasScreenSizePerspective?
|
|
369
|
+
vec3 worldNormal = getLocalUp(worldPos, localOrigin);
|
|
370
|
+
${t.hasScreenSizePerspective?c.H`
|
|
371
371
|
float cosAngle = dot(worldNormal, normalize(worldPos - cameraPosition));
|
|
372
|
-
float verticalOffsetScreenHeight = screenSizePerspectiveScaleFloat(verticalOffset.x, abs(cosAngle), viewDistance, screenSizePerspectiveAlignment);`:
|
|
372
|
+
float verticalOffsetScreenHeight = screenSizePerspectiveScaleFloat(verticalOffset.x, abs(cosAngle), viewDistance, screenSizePerspectiveAlignment);`:c.H`
|
|
373
373
|
float verticalOffsetScreenHeight = verticalOffset.x;`}
|
|
374
374
|
// Screen sized offset in world space, used for example for line callouts
|
|
375
375
|
float worldOffset = clamp(verticalOffsetScreenHeight * verticalOffset.y * viewDistance, verticalOffset.z, verticalOffset.w);
|
|
@@ -379,7 +379,7 @@ return applyScreenSizePerspectiveScaleFactorVec2(size, screenSizePerspectiveScal
|
|
|
379
379
|
vec3 addVerticalOffset(vec3 worldPos, vec3 localOrigin) {
|
|
380
380
|
return worldPos + calculateVerticalOffset(worldPos, localOrigin);
|
|
381
381
|
}
|
|
382
|
-
`)):r.code.add(
|
|
382
|
+
`)):r.code.add(c.H`vec3 addVerticalOffset(vec3 worldPos, vec3 localOrigin) { return worldPos; }`)}const p=(0,n.vt)()},72657(e,t,r){var i=r(12791);new i.x("depthMap",e=>e.depth?.attachment);const n=new i.x("mainDepth",e=>e.mainDepth),o=(new i.x("waterNormals",e=>e.overlay?.getTexture(3)),new i.x("shadowHighlight",e=>e.shadowHighlight?.getTexture()));r.d(t,["Xb",0,n,"ri",0,o])},9169(e,t,r){r.d(t,{E:()=>x});var i=r(34711),n=r(71020),o=r(96336),a=r(31821);function s(e,t){if(11!==t.output)return e.vertex.code.add(a.H`void forwardObjectAndLayerIdColor() {}`),void e.fragment.code.add(a.H`void outputObjectAndLayerIdColor() {}`);let r=t.instanced;e.varyings.add("objectAndLayerIdColorVarying","vec4");let i=r?"instanceOlidColor":"olidColor";e.attributes.add(i,"vec4"),e.vertex.code.add(a.H`
|
|
383
383
|
void forwardObjectAndLayerIdColor() {
|
|
384
384
|
objectAndLayerIdColorVarying = ${i} * 0.003921568627451;
|
|
385
385
|
}`),e.fragment.code.add(a.H`void outputObjectAndLayerIdColor() {
|
|
@@ -600,14 +600,14 @@ vec3 rawNormal = textureLookup(normalTexture, uv).rgb * 2.0 - 1.0;`),g&&r.code.a
|
|
|
600
600
|
normalTextureTransformMatrix[1][0]/scale[0], normalTextureTransformMatrix[1][1]/scale[1], 0.0,
|
|
601
601
|
0.0, 0.0, 0.0 );
|
|
602
602
|
rawNormal.xy = (normalRotation * vec3(rawNormal.x, rawNormal.y, 1.0)).xy;`),r.code.add(l.H`return tangentSpace * rawNormal;
|
|
603
|
-
}`))}(e,t)}},68785(e,t,r){r.d(t,{n:()=>zt});var i=r(31821),n=r(12791),o=r(32198),a=r(34727),s=r(97768),l=r(36708),c=r(78659),u=r(91429),d=r(37585),h=r(69540);let f=class extends h.Pw{constructor(e){super(e),this.row=0,this.column=0,this.rows=1,this.columns=1}equals(e){return null!=e&&this.row===e.row&&this.rows===e.rows&&this.column===e.column&&this.columns===e.columns}};(0,o.Cg)([(0,u.MZ)({type:Number,nonNullable:!0,json:{read:!1,write:!1}})],f.prototype,"row",void 0),(0,o.Cg)([(0,u.MZ)({type:Number,nonNullable:!0,json:{read:!1,write:!1}})],f.prototype,"column",void 0),(0,o.Cg)([(0,u.MZ)({type:Number,nonNullable:!0,json:{read:!1,write:!1}})],f.prototype,"rows",void 0),(0,o.Cg)([(0,u.MZ)({type:Number,nonNullable:!0,json:{read:!1,write:!1}})],f.prototype,"columns",void 0),f=(0,o.Cg)([(0,u.$K)("esri.CameraLayout")],f);const m=f;var p=r(69052),v=r(25482),g=r(78888),x=r(86738),_=r(43937),b=r(36005);let y=class extends((0,h.OU)(v.o)){constructor(...e){super(...e),this.position=new x.A([0,0,0]),this.heading=0,this.tilt=0,this.fov=55,this.layout=new m}normalizeCtorArgs(e,t,r,i){if(e&&"object"==typeof e&&("x"in e||Array.isArray(e))){let n={position:e};return null!=t&&(n.heading=t),null!=r&&(n.tilt=r),null!=i&&(n.fov=i),n}return e}writePosition(e,t,r,i){let n=e.clone();n.x=(0,g.GB)(e.x||0),n.y=(0,g.GB)(e.y||0),n.z=e.hasZ?(0,g.GB)(e.z||0):e.z,t[r]=n.write({},i)}readPosition(e,t){let r=new x.A;return r.read(e,t),r.x=(0,g.GB)(r.x||0),r.y=(0,g.GB)(r.y||0),r.z=r.hasZ?(0,g.GB)(r.z||0):r.z,r}equals(e){return null!=e&&this.tilt===e.tilt&&this.heading===e.heading&&this.fov===e.fov&&this.position.equals(e.position)&&this.layout.equals(e.layout)}};(0,o.Cg)([(0,u.MZ)({type:x.A,json:{write:{isRequired:!0}}})],y.prototype,"position",void 0),(0,o.Cg)([(0,_.K)("position")],y.prototype,"writePosition",null),(0,o.Cg)([(0,b.w)("position")],y.prototype,"readPosition",null),(0,o.Cg)([(0,u.MZ)({type:Number,nonNullable:!0,json:{write:{isRequired:!0}}}),(0,u.wg)(e=>p.ie.normalize((0,g.GB)(e)))],y.prototype,"heading",void 0),(0,o.Cg)([(0,u.MZ)({type:Number,nonNullable:!0,json:{write:{isRequired:!0}}}),(0,u.wg)(e=>(0,a.qE)((0,g.GB)(e),-180,180))],y.prototype,"tilt",void 0),(0,o.Cg)([(0,u.MZ)({type:Number,nonNullable:!0,json:{default:55,write:!0}}),(0,u.wg)(e=>(0,a.qE)((0,g.GB)(e,55),1,170))],y.prototype,"fov",void 0),(0,o.Cg)([(0,u.MZ)({type:m,nonNullable:!0,json:{read:!1,write:!1}})],y.prototype,"layout",void 0),y=(0,o.Cg)([(0,u.$K)("esri.Camera")],y);var w=r(9093),M=r(35522),T=r(51850),S=r(16930),C=(r(48353),r(9762),r(65806)),A=r(27993),E=r(73941),I=(r(19419),r(58083)),O=r(65720),P=r(71351),D=r(69622),R=r(53966),F=r(90629),B=r(48163),N=r(78955),z=r(91829),L=r(44280);function H(e,t,r){e.worldUpAtPosition(t,V),(0,M.Re)(U,r,t);let i=(0,M.Bw)(U);return 0===i?0:(0,a.XM)((0,M.Om)(U,V)/i)}const V=(0,T.vt)(),U=(0,T.vt)();var j;let k=j=class extends D.A{constructor(e){super(e),this._ray=(0,P.vt)(),this._viewport=(0,z.fA)(0,0,1,1),this._padding=(0,z.fA)(0,0,0,0),this._fov=55/180*Math.PI,this._nearFar=(0,B.fA)(1,1e3),this._viewDirty=!0,this._viewMatrix=(0,w.vt)(),this._viewProjectionDirty=!0,this._viewProjectionMatrix=(0,w.vt)(),this._viewInverseTransposeMatrixDirty=!0,this._viewInverseTransposeMatrix=(0,w.vt)(),this._frustumDirty=!0,this._frustum=(0,O.vt)(),this._fullViewport=(0,z.vt)(),this._fullViewportDirty=!0,this._pixelRatio=1,this.pixelScale=1,this.row=0,this.column=0,this._rows=1,this._columns=1,this._center=(0,T.vt)(),this._up=(0,T.vt)(),this.relativeElevation=0}get pixelRatio(){return this._pixelRatio}set pixelRatio(e){this._pixelRatio=e>0?e:1}get rows(){return this._rows}set rows(e){this._rows=Math.max(1,e)}get columns(){return this._columns}set columns(e){this._columns=Math.max(1,e)}get eye(){return this._ray.origin}set eye(e){this._compareAndSetView(e,this._ray.origin,"eye")}get center(){return this._center}set center(e){this._compareAndSetView(e,this._center,"_center")}get ray(){return(0,M.Re)(this._ray.direction,this.center,this.eye),this._ray}get up(){return this._up}set up(e){this._compareAndSetView(e,this._up,"_up")}get viewMatrix(){return this._ensureViewClean(),this._viewMatrix}set viewMatrix(e){(0,I.C)(this._viewMatrix,e),this.notifyChange("_viewMatrix"),this._viewDirty=!1,this._viewInverseTransposeMatrixDirty=!0,this._viewProjectionDirty=!0,this._frustumDirty=!0}get inverseViewMatrix(){return(0,I.Qw)((0,w.vt)(),this.viewMatrix)||this._get("inverseViewMatrix")||(0,w.vt)()}get viewForward(){return this._ensureViewClean(),(0,M.hZ)((0,T.vt)(),-this._viewMatrix[2],-this._viewMatrix[6],-this._viewMatrix[10])}get viewUp(){return this._ensureViewClean(),(0,M.hZ)((0,T.vt)(),this._viewMatrix[1],this._viewMatrix[5],this._viewMatrix[9])}get viewRight(){return this._ensureViewClean(),(0,M.hZ)((0,T.vt)(),this._viewMatrix[0],this._viewMatrix[4],this._viewMatrix[8])}get nearFar(){return this._nearFar}get near(){return this._nearFar[0]}set near(e){this._nearFar[0]!==e&&(this._nearFar[0]=e,this._viewProjectionDirty=!0,this._frustumDirty=!0,this.notifyChange("_nearFar"))}get far(){return this._nearFar[1]}set far(e){this._nearFar[1]!==e&&(this._nearFar[1]=e,this._viewProjectionDirty=!0,this._frustumDirty=!0,this.notifyChange("_nearFar"))}get viewport(){return this._viewport}set viewport(e){this.x=e[0],this.y=e[1],this.width=e[2],this.height=e[3]}get screenViewport(){if(1===this.pixelRatio)return this._viewport;let e=(0,N.hs)((0,z.vt)(),this._viewport,1/this.pixelRatio),t=this._get("screenViewport");return t&&(0,N.aI)(e,t)?t:e}get screenPadding(){if(1===this.pixelRatio)return this._padding;let e=(0,N.hs)((0,z.vt)(),this._padding,1/this.pixelRatio),t=this._get("screenPadding");return t&&(0,N.aI)(e,t)?t:e}get x(){return this._viewport[0]}set x(e){e+=this._padding[3],this._viewport[0]!==e&&(this._viewport[0]=e,this._fullViewportDirty=!0,this._viewProjectionDirty=!0,this._frustumDirty=!0,this.notifyChange("_viewport"))}get y(){return this._viewport[1]}set y(e){e+=this._padding[2],this._viewport[1]!==e&&(this._viewport[1]=e,this._fullViewportDirty=!0,this._viewProjectionDirty=!0,this._frustumDirty=!0,this.notifyChange("_viewport"))}get width(){return this._viewport[2]}set width(e){this._viewport[2]!==e&&(this._viewport[2]=e,this._fullViewportDirty=!0,this._viewProjectionDirty=!0,this._frustumDirty=!0,this.notifyChange("_viewport"))}get height(){return this._viewport[3]}set height(e){this._viewport[3]!==e&&(this._viewport[3]=e,this._fullViewportDirty=!0,this._viewProjectionDirty=!0,this._frustumDirty=!0,this.notifyChange("_viewport"))}get fullWidth(){return this._viewport[2]+this._padding[1]+this._padding[3]}set fullWidth(e){this.width=e-(this._padding[1]+this._padding[3])}get fullHeight(){return this._viewport[3]+this._padding[0]+this._padding[2]}set fullHeight(e){this.height=e-(this._padding[0]+this._padding[2])}get fullViewport(){return this._fullViewportDirty&&=(this._fullViewport[0]=this._viewport[0]-this._padding[3],this._fullViewport[1]=this._viewport[1]-this._padding[2],this._fullViewport[2]=this._viewport[2]+this._padding[1]+this._padding[3],this._fullViewport[3]=this._viewport[3]+this._padding[0]+this._padding[2],!1),this._fullViewport}get _aspect(){return this.width/this.height}get padding(){return this._padding}set padding(e){(0,N.t2)(this._padding,e)||(this._viewport[0]+=e[3]-this._padding[3],this._viewport[1]+=e[2]-this._padding[2],this._viewport[2]-=e[1]+e[3]-(this._padding[1]+this._padding[3]),this._viewport[3]-=e[0]+e[2]-(this._padding[0]+this._padding[2]),(0,N.C)(this._padding,e),this._fullViewportDirty=!0,this._viewProjectionDirty=!0,this._frustumDirty=!0,this.notifyChange("_padding"),this.notifyChange("_viewport"))}get viewProjectionMatrix(){return this._viewProjectionDirty&&=((0,I.lw)(this._viewProjectionMatrix,this.projectionMatrix,this.viewMatrix),!1),this._viewProjectionMatrix}get projectionMatrix(){return this._projectionMatrixInternal}get inverseProjectionMatrix(){return(0,I.B8)((0,w.vt)(),this.projectionMatrix)||this._get("inverseProjectionMatrix")||(0,w.vt)()}get fov(){return this._fov}set fov(e){this._fov=e,this._viewProjectionDirty=!0,this._frustumDirty=!0}get fovX(){return e=this._fov,t=this.width,r=this.height,2*Math.atan(t*Math.tan(.5*e)/Math.sqrt(t*t+r*r));var e,t,r}set fovX(e){this._fov=function(e,t,r){return 2*Math.atan(Math.sqrt(t*t+r*r)*Math.tan(.5*e)/t)}(e,this.width,this.height),this._viewProjectionDirty=!0,this._frustumDirty=!0}get fovY(){return e=this._fov,t=this.width,r=this.height,2*Math.atan(r*Math.tan(.5*e)/Math.sqrt(t*t+r*r));var e,t,r}set fovY(e){this._fov=function(e,t,r){return 2*Math.atan(Math.sqrt(t*t+r*r)*Math.tan(.5*e)/r)}(e,this.width,this.height),this._viewProjectionDirty=!0,this._frustumDirty=!0}get distance(){return(0,M.Io)(this.center,this.eye)}get frustum(){return this._recomputeFrustum(),this._frustum}get viewInverseTransposeMatrix(){return(this._viewInverseTransposeMatrixDirty||this._viewDirty)&&((0,I.B8)(this._viewInverseTransposeMatrix,this.viewMatrix),(0,I.mg)(this._viewInverseTransposeMatrix,this._viewInverseTransposeMatrix),this._viewInverseTransposeMatrixDirty=!1),this._viewInverseTransposeMatrix}depthNDCToWorld(e){let{near:t,far:r}=this;return 2*t*r/(r+t-e*(r-t))}get renderPixelSizePerDistance(){return Math.tan(this.fovX/2)/(this.width/2)}get screenPixelSizePerDistance(){return this.renderPixelSizePerDistance*this.pixelRatio}get aboveGround(){return null!=this.relativeElevation&&this.relativeElevation>=0}get _projectionMatrixInternal(){let e=this.width,t=this.height,r=this.near*Math.tan(this.fovY/2)*2,i=r*this._aspect,n=r/this.rows,o=i/this.columns,a=-i/2+this.column*o,s=a+o,l=-r/2+this.row*n,c=l+n,u=(0,I.$h)((0,w.vt)(),a*(1+2*this._padding[3]/e),s*(1+2*this._padding[1]/e),l*(1+2*this._padding[2]/t),c*(1+2*this._padding[0]/t),this.near,this.far),d=this._get("projectionMatrix");return d&&(0,I.t2)(d,u)?d:u}copyFrom(e){(0,M.C)(this._ray.origin,e.eye),this.center=e.center,this.up=e.up,(0,N.C)(this._viewport,e.viewport),this.notifyChange("_viewport"),(0,N.C)(this._padding,e.padding),this.notifyChange("_padding"),this._fullViewportDirty=!0,(0,d.C)(this._nearFar,e.nearFar),this.notifyChange("_nearFar"),this._fov=e.fov,this.row=e.row,this.column=e.column,this.rows=e.rows,this.columns=e.columns,this.relativeElevation=e.relativeElevation;let t=e;return this._viewDirty=t._viewDirty,this._viewDirty||((0,I.C)(this._viewMatrix,e.viewMatrix),this.notifyChange("_viewMatrix")),this._viewProjectionDirty=!0,this._frustumDirty=t._frustumDirty,this._frustumDirty||=((0,O.C)(this._frustum,e.frustum),!1),t._viewInverseTransposeMatrixDirty?this._viewInverseTransposeMatrixDirty=!0:((0,I.C)(this._viewInverseTransposeMatrix,e.viewInverseTransposeMatrix),this._viewInverseTransposeMatrixDirty=!1),this.pixelRatio=e.pixelRatio,this.pixelScale=e.pixelScale,this}copyViewFrom(e){this.eye=e.eye,this.center=e.center,this.up=e.up,this.fov=e.fov}clone(){return(new j).copyFrom(this)}equals(e){return(0,M.t2)(this.eye,e.eye)&&(0,M.t2)(this.center,e.center)&&(0,M.t2)(this.up,e.up)&&(0,N.t2)(this._viewport,e.viewport)&&(0,N.t2)(this._padding,e.padding)&&(0,d.t2)(this.nearFar,e.nearFar)&&this._fov===e.fov&&this.pixelRatio===e.pixelRatio&&this.relativeElevation===e.relativeElevation&&this.row===e.row&&this.column===e.column&&this.rows===e.rows&&this.columns===e.columns}equalsView(e){return(0,M.t2)(this.eye,e.eye)&&(0,M.t2)(this.center,e.center)&&(0,M.t2)(this.up,e.up)&&this._fov===e.fov}almostEquals(e){let t=Math.max(1,1/this.pixelRatio,1/e.pixelRatio);if(Math.abs(e.fov-this._fov)>=.001||(0,N.hG)(e.screenPadding,this.screenPadding)>=t||(0,N.hG)(this.screenViewport,e.screenViewport)>=t||this.row!==e.row||this.column!==e.column||this.rows!==e.rows||this.columns!==e.columns)return!1;(0,M.jb)($,e.eye,e.center),(0,M.jb)(Z,this.eye,this.center);let r=(0,M.Om)($,Z),i=(0,M.uE)($),n=(0,M.uE)(Z),o=5e-4;return r*r>=.9999999999*i*n&&(0,M.lo)(e.eye,this.eye)<Math.max(i,n)*o*o}computeRenderPixelSizeAt(e){return this.computeRenderPixelSizeAtDistance(this._viewDirectionDistance(e))}computeRenderPixelSizeAtDistance(e){return e*this.renderPixelSizePerDistance}computeScreenPixelSizeAt(e){return this.computeScreenPixelSizeAtDistance(this._viewDirectionDistance(e))}_viewDirectionDistance(e){return Math.abs((0,L.gr)(this.viewForward,(0,M.Re)($,e,this.eye)))}computeScreenPixelSizeAtDistance(e){return e*this.screenPixelSizePerDistance}computeDistanceFromRadius(e,t){return e/Math.tan(Math.min(this.fovX,this.fovY)/(2*(t||1)))}getScreenCenter(e=(0,F.gs)()){return e[0]=(this.padding[3]+this.width/2)/this.pixelRatio,e[1]=(this.padding[0]+this.height/2)/this.pixelRatio,e}getRenderCenter(e,t=.5,r=.5){return e[0]=this.padding[3]+this.width*t,e[1]=this.padding[2]+this.height*r,e[2]=.5,e}setGLViewport(e){let t=this.viewport,r=this.padding;e.setViewport(t[0]-r[3],t[1]-r[2],t[2]+r[1]+r[3],t[3]+r[0]+r[2])}applyProjection(e,t){e!==G&&(0,M.C)(G,e),G[3]=1,(0,N.Z0)(G,G,this.projectionMatrix);let r=Math.abs(G[3]);(0,M.hs)(G,G,1/r);let i=this.fullViewport;t[0]=(0,a.Cc)(0,i[0]+i[2],.5+.5*G[0]),t[1]=(0,a.Cc)(0,i[1]+i[3],.5+.5*G[1]),t[2]=.5*(G[2]+1),t[3]=r}unapplyProjection(e,t){let r=this.fullViewport;G[0]=(e[0]/(r[0]+r[2])*2-1)*e[3],G[1]=(e[1]/(r[1]+r[3])*2-1)*e[3],G[2]=(2*e[2]-1)*e[3],G[3]=e[3],null!=this.inverseProjectionMatrix&&((0,N.Z0)(G,G,this.inverseProjectionMatrix),t[0]=G[0],t[1]=G[1],t[2]=G[2])}projectToScreen(e,t){return null==this.projectToRenderScreen(e,q)?null:(this.renderToScreen(q,t),t)}projectToRenderScreen(e,t){if(G[0]=e[0],G[1]=e[1],G[2]=e[2],G[3]=1,(0,N.Z0)(G,G,this.viewProjectionMatrix),0===G[3])return null;let r=G;(0,M.hs)(r,r,1/Math.abs(G[3]));let i=this.fullViewport,n=(0,a.Cc)(0,i[0]+i[2],.5+.5*r[0]),o=(0,a.Cc)(0,i[1]+i[3],.5+.5*r[1]);return"x"in t?(t.x=n,t.y=o):(t[0]=n,t[1]=o,t.length>2&&(t[2]=.5*(r[2]+1))),t}unprojectFromScreen(e,t){return this.unprojectFromRenderScreen(this.screenToRender(e,q),t)}unprojectFromRenderScreen(e,t){if((0,I.lw)(W,this.projectionMatrix,this.viewMatrix),!(0,I.B8)(W,W))return null;let r=this.fullViewport;return G[0]=2*(e[0]-r[0])/r[2]-1,G[1]=2*(e[1]-r[1])/r[3]-1,G[2]=2*e[2]-1,G[3]=1,(0,N.Z0)(G,G,W),0===G[3]?null:(t[0]=G[0]/G[3],t[1]=G[1]/G[3],t[2]=G[2]/G[3],t)}constrainWindowSize(e,t,r,i){let n=e*this.pixelRatio,o=t*this.pixelRatio,a=Math.max(n-r/2,0),s=Math.max(this.fullHeight-o-i/2,0),l=-Math.min(n-r/2,0),c=-Math.min(this.fullHeight-o-i/2,0),u=r-l- -Math.min(this.fullWidth-n-r/2,0),d=i-c- -Math.min(o-i/2,0);return[Math.round(a),Math.round(s),Math.round(u),Math.round(d)]}computeUp(e){1===e?this._computeUpGlobal():this._computeUpLocal()}screenToRender(e,t){let r=e[0]*this.pixelRatio,i=this.fullHeight-e[1]*this.pixelRatio;return t[0]=r,t[1]=i,t}renderToScreen(e,t){let r=e[0]/this.pixelRatio,i=(this.fullHeight-e[1])/this.pixelRatio;t[0]=r,t[1]=i}sphereFrustumCoverage(e,t){let{center:r,eye:i,distance:n,fovY:o}=this,a=Math.abs(Math.PI/2-H(t,r,i));return e.frustumCoverage(a,n,o)}_computeUpGlobal(){(0,M.Re)($,this.center,this.eye);let e=(0,M.Bw)(this.center);e<1?(0,M.t2)(this._up,T.Cb)&&((0,M.C)(this._up,T.Cb),this._markViewDirty(),this.notifyChange("_up")):Math.abs((0,M.Om)($,this.center))>.9999*(0,M.Bw)($)*e||((0,M.$A)(Z,$,this.center),(0,M.$A)(Z,Z,$),(0,M.S8)(Z,Z),(0,M.t2)(this._up,Z)||((0,M.C)(this._up,Z),this.notifyChange("_up"),this._markViewDirty()))}_computeUpLocal(){(0,M.oW)($,this.eye,this.center),Math.abs($[2])<=.9999&&((0,M.hs)($,$,$[2]),(0,M.hZ)($,-$[0],-$[1],1-$[2]),(0,M.S8)($,$),(0,M.t2)(this._up,$)||((0,M.C)(this._up,$),this.notifyChange("_up"),this._markViewDirty()))}_compareAndSetView(e,t,r){"number"==typeof e[0]&&isFinite(e[0])&&"number"==typeof e[1]&&isFinite(e[1])&&"number"==typeof e[2]&&isFinite(e[2])?(0,M.t2)(e,t)||((0,M.C)(t,e),this._markViewDirty(),this.notifyChange(r)):R.A.getLogger("esri.views.3d.webgl-engine.lib.RenderCamera").warn("RenderCamera vector contains invalid number, ignoring value")}_markViewDirty(){this._viewDirty=!0,this._frustumDirty=!0,this._viewProjectionDirty=!0}_recomputeFrustum(){this._frustumDirty&&=((0,O.ui)(this.viewMatrix,this.projectionMatrix,this._frustum),!1)}_ensureViewClean(){this._viewDirty&&((0,I.t5)(this._viewMatrix,this.eye,this.center,this.up),this.notifyChange("_viewMatrix"),this._viewDirty=!1,this._viewInverseTransposeMatrixDirty=!0)}};(0,o.Cg)([(0,u.MZ)()],k.prototype,"_viewport",void 0),(0,o.Cg)([(0,u.MZ)()],k.prototype,"_padding",void 0),(0,o.Cg)([(0,u.MZ)()],k.prototype,"_fov",void 0),(0,o.Cg)([(0,u.MZ)()],k.prototype,"_nearFar",void 0),(0,o.Cg)([(0,u.MZ)()],k.prototype,"_viewDirty",void 0),(0,o.Cg)([(0,u.MZ)()],k.prototype,"_viewMatrix",void 0),(0,o.Cg)([(0,u.MZ)()],k.prototype,"pixelRatio",null),(0,o.Cg)([(0,u.MZ)()],k.prototype,"_pixelRatio",void 0),(0,o.Cg)([(0,u.MZ)()],k.prototype,"pixelScale",void 0),(0,o.Cg)([(0,u.MZ)()],k.prototype,"row",void 0),(0,o.Cg)([(0,u.MZ)()],k.prototype,"column",void 0),(0,o.Cg)([(0,u.MZ)()],k.prototype,"_rows",void 0),(0,o.Cg)([(0,u.MZ)()],k.prototype,"rows",null),(0,o.Cg)([(0,u.MZ)()],k.prototype,"_columns",void 0),(0,o.Cg)([(0,u.MZ)()],k.prototype,"columns",null),(0,o.Cg)([(0,u.MZ)()],k.prototype,"eye",null),(0,o.Cg)([(0,u.MZ)()],k.prototype,"center",null),(0,o.Cg)([(0,u.MZ)()],k.prototype,"_center",void 0),(0,o.Cg)([(0,u.MZ)()],k.prototype,"up",null),(0,o.Cg)([(0,u.MZ)()],k.prototype,"_up",void 0),(0,o.Cg)([(0,u.MZ)()],k.prototype,"viewMatrix",null),(0,o.Cg)([(0,u.MZ)({readOnly:!0})],k.prototype,"inverseViewMatrix",null),(0,o.Cg)([(0,u.MZ)({readOnly:!0})],k.prototype,"viewForward",null),(0,o.Cg)([(0,u.MZ)({readOnly:!0})],k.prototype,"viewUp",null),(0,o.Cg)([(0,u.MZ)({readOnly:!0})],k.prototype,"viewRight",null),(0,o.Cg)([(0,u.MZ)({readOnly:!0})],k.prototype,"nearFar",null),(0,o.Cg)([(0,u.MZ)()],k.prototype,"near",null),(0,o.Cg)([(0,u.MZ)()],k.prototype,"far",null),(0,o.Cg)([(0,u.MZ)()],k.prototype,"viewport",null),(0,o.Cg)([(0,u.MZ)({readOnly:!0})],k.prototype,"screenViewport",null),(0,o.Cg)([(0,u.MZ)({readOnly:!0})],k.prototype,"screenPadding",null),(0,o.Cg)([(0,u.MZ)()],k.prototype,"x",null),(0,o.Cg)([(0,u.MZ)()],k.prototype,"y",null),(0,o.Cg)([(0,u.MZ)()],k.prototype,"width",null),(0,o.Cg)([(0,u.MZ)()],k.prototype,"height",null),(0,o.Cg)([(0,u.MZ)()],k.prototype,"fullWidth",null),(0,o.Cg)([(0,u.MZ)()],k.prototype,"fullHeight",null),(0,o.Cg)([(0,u.MZ)({readOnly:!0})],k.prototype,"_aspect",null),(0,o.Cg)([(0,u.MZ)()],k.prototype,"padding",null),(0,o.Cg)([(0,u.MZ)({readOnly:!0})],k.prototype,"projectionMatrix",null),(0,o.Cg)([(0,u.MZ)({readOnly:!0})],k.prototype,"inverseProjectionMatrix",null),(0,o.Cg)([(0,u.MZ)()],k.prototype,"fov",null),(0,o.Cg)([(0,u.MZ)()],k.prototype,"fovX",null),(0,o.Cg)([(0,u.MZ)()],k.prototype,"fovY",null),(0,o.Cg)([(0,u.MZ)()],k.prototype,"viewInverseTransposeMatrix",null),(0,o.Cg)([(0,u.MZ)({readOnly:!0})],k.prototype,"_projectionMatrixInternal",null),(0,o.Cg)([(0,u.MZ)()],k.prototype,"relativeElevation",void 0),k=j=(0,o.Cg)([(0,u.$K)("esri.views.3d.webgl.RenderCamera")],k);const G=(0,z.vt)(),W=(0,w.vt)(),$=(0,T.vt)(),Z=(0,T.vt)(),q=(0,F.r_)();r(49718),r(6867),r(16396),(0,w.vt)(),(0,T.vt)(),(0,T.vt)(),(0,T.vt)();var Y=r(5443),X=r(39829),J=r(95108);function K(e,t,r,i){let n=function(e,t){let r=0===t||2===t?0:1,i=e[t],n=0===t||1===t?1:-1,o=+(0===r);return(e,t,a)=>{if(t[r]<i&&a[r]<i)return 1===n?0:1;if(t[r]>i&&a[r]>i)return+(1===n);let s=(a[o]-t[o])/(a[r]-t[r]),l=t[o]+s*(i-t[r]);return e[r]=i,e[o]=l,(t[r]<i?1:-1)*n>0?2:3}}(r,i);if(e.length=0,t.length){1===n(ee,t[0],t[0])&&Q(e,t[0]);for(let r=0;r<t.length;r++){let i=t[r===t.length-1?0:r+1];switch(n(ee,t[r],i)){case 1:Q(e,i);break;case 3:Q(e,(0,B.o8)(ee));break;case 2:Q(e,(0,B.o8)(ee)),Q(e,i)}}}}function Q(e,t){0!==e.length&&(0,d.aI)(e.at(-1),t)||e.push(t)}const ee=(0,B.vt)();var te=r(11964),re=r(27921);const ie=(0,T.vt)(),ne=(0,T.vt)();function oe(){return{direction:(0,T.vt)(),up:(0,T.vt)()}}function ae(e,t,r,i,n){let o=(0,M.S8)(ie,e),s=(0,M.Om)(o,i),l=s>0;s=Math.abs(s),s>.99&&(s=Math.abs((0,M.Om)(t,i)),s<.99?((0,M.C)(o,t),l&&(0,M.hs)(o,o,-1)):o=null);let c=0;if(o){(0,M.hs)(ne,i,(0,M.Om)(i,o)),(0,M.Re)(o,o,ne);let e=(0,M.Om)(o,n)/((0,M.Bw)(o)*(0,M.Bw)(n));(0,M.$A)(ne,o,n),c=((0,M.Om)(ne,i)>0?1:-1)*(0,a.KJ)((0,a.XM)(e))}let u=(0,a.KJ)((0,a.XM)(-(0,M.Om)(i,e)/(0,M.Bw)(e)));return r?(r.heading=c,r.tilt=u,r):{heading:c,tilt:u}}function se(e,t,r,i){(0,M.Re)(le,r,t),!(0,re.T7)(i,(0,te.LV)(t,le),e)&&e!==r&&(0,M.C)(e,r)}const le=(0,T.vt)(),ce=(0,T.fA)(0,1,0),ue=(0,T.fA)(0,0,1),de=(0,w.vt)(),he=(0,T.vt)(),fe=(0,T.vt)();function me(e,t,r,i=oe()){let{direction:n,up:o}=i;return(0,I.N9)(de,-(0,a.kU)(t)),(0,I.eL)(de,de,(0,a.kU)(r)),(0,M.Z0)(n,ue,de),(0,M.hs)(n,n,-1),(0,M.Z0)(o,ce,de),i}function pe(e,t,r,i,n){let o=t.lines[11].direction,a=(n-r.getAltitude(i))/o[2];(0,M.Ln)(e,i,o,a)}const ve=(0,T.vt)();Object.freeze(Object.defineProperty({__proto__:null,directionToHeadingTilt:function(e,t,r,i){return ae(t,r,i,ue,ce)},eyeForCenterWithHeadingTilt:function(e,t,r,i){let n=me(0,r,i),o=(0,T.vt)();return(0,M.hs)(o,n.direction,-t),(0,M.WQ)(o,o,e),{up:n.up,eye:o,heading:r,tilt:i}},eyeTiltToLookAtTilt:function(e){return(0,a.kU)(e)},headingTiltToDirectionUp:me,lookAtTiltToEyeTilt:function(e){return(0,a.KJ)(e)},toArea:function(e,t){let r=e.frustum,{renderCoordsHelper:i}=e,n=i.getAltitude(t),o=e.spatialReference,a=e.state.camera.eye,s=[],l=r.planes[5];for(let e=0;e<4;e++){let t=r.lines[e];i.intersectInfiniteManifold((0,P.LV)(t.origin,t.direction),n,ve)||pe(ve,r,i,t.endpoint,n),se(ve,a,ve,l),s.push((0,B.fA)(ve[0],ve[1]))}return function(e,t,r){let i=e.map(e=>((0,M.hZ)(ve,e[0],e[1],0),t.fromRenderCoords(ve,ve,r),[ve[0],ve[1]]));return i.length<=2?new X.A({spatialReference:r}):(i.push(i[0].slice()),(0,J.$3)(i)||i.reverse(),new X.A({rings:[i],spatialReference:r}))}(function(e,t){let r=[],i=[];return K(r,e,t,0),K(i,r,t,1),K(r,i,t,2),K(i,r,t,3),i}(s,i.extent),i,o)},toExtent:function(e,t,r,i,n){let o=e.renderSpatialReference,a=e.spatialReference??t.spatialReference;return(0,C.g)(t,he,o),(0,C.g)(t,fe,o),he[0]-=r/2,fe[0]+=r/2,he[1]-=i/2,fe[1]+=i/2,(0,A.F)(he,o,he,a),(0,A.F)(fe,o,fe,a),n?(n.xmin=he[0],n.ymin=he[1],n.xmax=fe[0],n.ymax=fe[1],n.spatialReference=a):n=new Y.A(he[0],he[1],fe[0],fe[1],a),n}},Symbol.toStringTag,{value:"Module"}));var ge=r(34304),xe=r(52039),_e=r(94008),be=r(28735);class ye{get planes(){return this.frustum}get points(){return this._points}get direction(){return this._direction}get origin(){return this._origin}get boundingSphere(){return this._boundingSphereDirty&&this._updateBoundingSphere(),this._boundingSphere}constructor(e){this.renderCoordsHelper=e,this.frustum=(0,O.vt)(),this._points=(0,O.Qy)(),this.lines=Array(12),this._origin=(0,T.vt)(),this._direction=(0,T.vt)(),this._boundingSphere=new _e.iy,this._altitude=null,this._boundingSphereDirty=!0;for(let e=0;e<12;e++)this.lines[e]={origin:null,direction:(0,T.vt)(),endpoint:null}}update(e){(0,O.ui)(e.viewMatrix,e.projectionMatrix,this.frustum,this._points),(0,M.C)(this._origin,e.eye),(0,M.C)(this._direction,e.viewForward),this._altitude=this.renderCoordsHelper.getAltitude(this._origin),this._updateLines(),this._boundingSphereDirty=!0}get altitude(){return this._altitude}intersectsSphere(e){return(0,O.m7)(this.frustum,e)}isConvexHullOutsideViewPyramid(e,t){return(0,O.Pi)(this.frustum,e,t)}intersectsRay(e){return(0,O.pw)(this.frustum,e)}intersectsLineSegment(e,t){return(0,O.ST)(this.frustum,e,t)}lineSegmentIntersectsViewPyramid(e,t){return(0,O.LJ)(this.frustum,e,t)}intersectsPoint(e){return(0,O.bU)(this.frustum,e)}_updateLines(){let e=this._points;for(let t=0;t<4;t++){let r=t+4;we(this.lines[t],e[t],e[r]),we(this.lines[t+4],e[t],3===t?e[0]:e[t+1]),we(this.lines[t+8],e[r],3===t?e[4]:e[r+1])}}_updateBoundingSphere(){let{origin:e}=this,t=Te;(0,M.S8)(t,this.direction);let r=Me;(0,M.jb)(r,this.points[4],e);let i=.5*(0,M.Om)(r,r)/(0,M.Om)(t,r),n=this._boundingSphere;n.center=(0,M.Ln)(Se,e,t,i),n.radius=i}static{this.planePointIndices=O.c8}static{this.nearFarLineIndices=[[0,4],[1,5],[2,6],[3,7]]}}function we(e,t,r){e.origin=t,e.endpoint=r,(0,M.oW)(e.direction,t,r)}const Me=(0,T.vt)(),Te=(0,T.vt)(),Se=(0,T.vt)();r(86211);const Ce=(0,T.fA)(5802e-9,13558e-9,331e-7),Ae=(0,T.fA)(195e-8,5643e-9,255e-9);(0,T.fA)(Ce[0]+Ae[0],Ce[1]+Ae[1],Ce[2]+Ae[2]);class Ee{constructor(e=1/0,t=-1/0){this.near=e,this.far=t}set(e,t){this.near=e,this.far=t}union(e){return null!=e&&(this.near=Math.min(this.near,e.near),this.far=Math.max(this.far,e.far)),this}within(e){return this.near<=e&&e<=this.far}equals(e){return this.near===e.near&&this.far===e.far}static{this.Zero=new Ee(0,0)}static{this.Infinite=new Ee}}(0,T.vt)(),(0,T.vt)(),new _e.iy,(0,P.vt)(),new Y.A({xmin:0,ymin:0,zmin:0,xmax:0,ymax:0,zmax:0});var Ie=r(32728);const Oe=(0,T.fA)(0,0,1),Pe=(0,M.S8)((0,T.vt)(),(0,T.fA)(1,1,1)),De=(0,w.vt)(),Re=(0,T.vt)(),Fe=(0,T.vt)();function Be(e,t,r,i=oe()){(0,M.$A)(Re,e,Oe),0===(0,M.Om)(Re,Re)&&(0,M.$A)(Re,e,Pe),(0,I.$0)(De,-(0,a.kU)(t),e),(0,I.e$)(De,De,-(0,a.kU)(r),Re);let{up:n,direction:o}=i;return(0,M.$A)(n,Re,e),(0,M.S8)(n,n),(0,M.Z0)(n,n,De),(0,M.S8)(o,e),(0,M.ze)(o,o),(0,M.Z0)(o,o,De),i}function Ne(e){let t=e[1];e[1]=-e[2],e[2]=t}function ze(e,t){return e.up=Be(t,e.heading,e.tilt).up,e}function Le(e,t){let{renderCoordsHelper:r,state:i}=e;if(1!==i.viewingMode)return 1;let n=r.getAltitude(t),o=r.referenceEllipsoid.radius,s=1+(0,M.Io)(i.camera.eye,t)/(o+n),l=Math.sqrt(s*s-1),{minCurvature:c,maxCurvature:u,minSamples:d,maxSamples:h}=Ve,f=(0,a.qE)((l-c)/(u-c),0,1);return Math.round((0,a.Cc)(d,h,f))}function He(e,t){let r=[],i=[],n=(0,ge.FD)();for(let o=0;o<e.length;o++){let a=e[o],s=o===e.length-1?e[0]:e[o+1],l=(0,te.Cr)(a,s,Ze),c=(0,re.vE)(t,l.origin,l.vector,0,We);switch(c){case 2:r.push(a);break;case 3:i.push(a);break;case 0:case 1:{let[e,o,s]=0===c?[1,r,i]:[-1,i,r],l=(0,re.Qj)(t),u=(0,M.Ln)((0,T.vt)(),We,l,e*n),d=(0,M.Ln)((0,T.vt)(),We,l,e*-n);o.push(a),o.push(u),s.push(d)}}}let o=[];return r.length&&o.push(r),i.length&&o.push(i),o}const Ve={minCurvature:(0,a.kU)(5),maxCurvature:(0,a.kU)(50),minSamples:1,maxSamples:6},Ue=(0,T.fA)(1,0,0),je=(0,T.fA)(0,1,0),ke=(0,T.vt)(),Ge=(0,T.vt)(),We=(0,T.vt)(),$e=new _e.iy,Ze=(0,te.vt)(),qe=(0,z.vt)();Object.freeze(Object.defineProperty({__proto__:null,directionToHeadingTilt:function(e,t,r,i){let n=Re,o=Fe;return(0,M.S8)(n,e),(0,M.$A)(Fe,n,Oe),0===(0,M.Om)(Fe,Fe)&&(0,M.$A)(Fe,n,Pe),(0,M.$A)(o,Fe,n),ae(t,r,i,n,o)},eyeForCenterWithHeadingTilt:function(e,t,r,i){let n={eye:(0,T.vt)(),up:null,tilt:i,heading:r},o=Re;o[0]=e[0],o[1]=e[2],o[2]=-e[1];let s,l=t,c=(0,a.kU)(r),u=(0,a.kU)(i),d=Math.sin(c),h=Math.cos(c),f=Math.sin(u),m=Math.cos(u),p=(0,M.Bw)(o);if(Math.abs(u)<1e-8)s=l+p;else{let e=p/f,t=(0,a.YN)(l/e),r=Math.PI-u-t;s=e*Math.sin(r)}let v=m*l,g=l*l*(f*f),x=h*h*g,_=s-v,b=_*_,y=x*(x+b-o[1]*o[1]);if(y<0)return(0,M.hs)(n.eye,o,s/p),n.tilt=0,ze(n,e);let w,S=Math.sqrt(y),C=o[1]*_,A=x+b;if(w=h>0?-S+C:S+C,Math.abs(A)<1e-8)return p<1e-8?(n.eye[0]=0,n.eye[1]=0,n.eye[2]=l):(0,M.hs)(n.eye,o,s/p),n.tilt=0,Ne(n.eye),ze(n,e);n.eye[1]=w/A;let E=d*d*g,I=f*l,O=h*I*n.eye[1],P=n.eye[1]*n.eye[1],D=1-P,R=Math.sqrt(D),F=x*P+E-2*O*R*_+D*b;return Math.abs(F)<1e-8?((0,M.hs)(n.eye,o,s/p),n.tilt=0,Ne(n.eye),ze(n,e)):(n.eye[0]=(D*(s*o[0]-v*o[0])-I*R*(o[0]*n.eye[1]*h+o[2]*d))/F,n.eye[2]=(D*(s*o[2]-v*o[2])-I*R*(o[2]*n.eye[1]*h-o[0]*d))/F,(0,M.hs)(n.eye,n.eye,s),Ne(n.eye),ze(n,e))},eyeTiltToLookAtTilt:function(e,t,r){let i=(0,a.kU)(e),n=(0,M.Bw)(t);return(0,a.YN)(r/(n/Math.sin(i)))+i},getCurvatureSamples:Le,headingTiltToDirectionUp:Be,lookAtTiltToEyeTilt:function(e,t,r){let i=(0,M.Bw)(t),n=Math.sqrt(r*r+i*i-2*r*i*Math.cos(Math.PI-e)),o=(0,a.YN)(r/(n/Math.sin(e)));return(0,a.KJ)(e-o)},toArea:function(e,t){let{renderCoordsHelper:r}=e,i=e.state.camera.clone(),n=new ye(r);i.near=2,n.update(i);let o=r.getAltitude(t),s=e.spatialReference,l=i.eye,c=function(e){let{renderCoordsHelper:t,state:r}=e,i=Math.abs(t.getAltitude(r.camera.center));return $e.radius=t.referenceEllipsoid.radius+i,r.camera.sphereFrustumCoverage($e,t)}(e),u=Le(e,t),d=i.aboveGround,h=n.planes[5],f=[],m=(0,re.O_)(T.uY,Ue,(0,re.vt)()),p=(0,re.O_)(T.uY,je,(0,re.vt)());(0,N.hZ)(qe,0,0,0,0);for(let e=0;e<4;e++){let t=1===e&&!d||3===e&&d?1-c:0,i=1===e&&d||3===e&&!d?c:1,s=n.lines[e],v=n.lines[3===e?0:e+1];for(let n=0;n<u;n++){let c=n/u,d=1===e?1-(1-c)**2:3===e?c**2:c,g=0===n?0:(0,a.Cc)(t,i,d),x=(0,M.Cc)(Ge,s.origin,v.origin,g),_=(0,Ie.nu)(s.direction,v.direction,g,ke);r.intersectManifoldClosestSilhouette((0,P.LV)(x,_),o,We),se(We,l,We,h),f.push((0,T.o8)(We)),0!==f.length&&(0,M.lo)(f.at(-1),We);let b=+!!(0,re.BX)(m,We)|((0,re.BX)(p,We)?2:0);qe[b]=1}}f.length>2&&(0,M.lo)(f[0],f.at(-1));let v=function(e,t,r){let i=2*(0,ge.FD)();return e.map(e=>{let n=[],o=!1;for(let a of e)t.fromRenderCoords(a,We,r),Math.abs(a[0])<i&&Math.abs(a[1])<i?(n.push([null,We[1]]),n.push([null,We[1]]),o=!0):n.push([We[0],We[1]]);if(o)for(let e=0;e<n.length;e++){let t=n[e];if(null!=t[0])continue;let r=n[e+1];t[0]=n.at(0===e?-1:e-1)[0],e++,r[0]=n.at(e===n.length-1?0:e+1)[0]}return n.push(n[0]),(0,J.$3)(n)||n.reverse(),n})}((0,N.m3)(qe)>1?function(e,t){let r=[];for(let i of e)r.push(...He(i,t));return r}(He(f,m),p):[f],r,s);return new X.A({rings:v,spatialReference:s})},toExtent:function(e,t,r,i,n){let o,s,l,c,u=t.latitude,d=(0,E.tO)(e.spatialReference).radius,h=t.longitude,f=function(e,t,r){let i=t/r,n=(0,a.kU)(e),o=Math.sin(i/2),s=Math.cos(n),l=2*(0,a.YN)(Math.sqrt(o*o/(s*s)));return(0,a.KJ)(l)}(u,r,d)/2;o=h-f,s=h+f;let m=(0,a.kU)(u),v=(1+Math.sin(m))/(1-Math.sin(m)),g=(v+1)*Math.tan(i/d/2),x=g*g;function _(e){let t=Math.PI/2;return(e=p.uC.normalize(e,-t))>t&&(e=Math.PI-e),e}if(l=1.5*Math.PI-2*Math.atan(.5*(g+Math.sqrt(4*v+x))),c=l+i/d,l=_(l),c=_(c),c<l){let e=c;c=l,l=e}if(l=Math.max((0,a.KJ)(l),-90),c=Math.min((0,a.KJ)(c),90),s=xe.Y_.monotonic(o,s),s-o>180){let e=(s-o-180)/2;o+=e,s-=e}let b=e.spatialReference&&e.spatialReference.isGeographic?e.spatialReference:S.A.WGS84;return n?(n.xmin=o,n.ymin=l,n.xmax=s,n.ymax=c,n.spatialReference=b):n=new Y.A(o,l,s,c,b),e.spatialReference&&e.spatialReference.isWebMercator&&(0,be.Gh)(n,!1,n),n}},Symbol.toStringTag,{value:"Module"}));const Ye="composite-color",Xe=["final-color",Ye,"opaque-color","transparent-color"],Je={ANTIALIASING:"antialiasing",CUTFILL:"cutfill",CUTFILL_COMPUTATION:"cutfill-computation",FOCUSAREA:"focusarea",FOCUSAREA_MASK:"focusarea-mask",GAUSSIAN_SPLAT:"gaussian",GAUSSIAN_SPLAT_DEPTH:"gaussian-depth",GROUND_DEPTH:"ground-depth",HIGHLIGHT:"highlight",LASERLINES:"laserlines",TRANSPARENT_NO_DEPTH:"transparent-no-depth",MAGNIFIER:"magnifier",OCCLUDED:"occluded",OPAQUE_OCCLUSION_QUERY:"opaque-occlusion-query",OPAQUE_ENVIRONMENT:"opaque-environment",TRANSPARENT_ENVIRONMENT:"transparent-environment",AMBIENT_ILLUMINATION:"ambient-illumination",SHADOW_ACCUMULATION:"shadow-accumulation",SHADOWMAP:"shadowmap",SHADOW_HIGHLIGHT:"shadow-highlight",VOXEL:"voxel",VIEWSHED:"viewshed",OBJECT_AND_LAYER_ID_COLOR:"olid"};Array.from(Object.values(Je)).concat(Xe),(0,T.vt)();var Ke=r(49186),Qe=r(10107),et=r(64108),tt=r(44208),rt=(r(17676),r(94656)),it=r(63907);r(93637),r(4576),"layout.centroid.smooth.case.mat2x2.mat2x3.mat2x4.mat3x2.mat3x3.mat3x4.mat4x2.mat4x3.mat4x4.uint.uvec2.uvec3.uvec4.samplerCubeShadow.sampler2DArray.sampler2DArrayShadow.isampler2D.isampler3D.isamplerCube.isampler2DArray.usampler2D.usampler3D.usamplerCube.usampler2DArray.coherent.restrict.readonly.writeonly.resource.atomic_uint.noperspective.patch.sample.subroutine.common.partition.active.filter.image1D.image2D.image3D.imageCube.iimage1D.iimage2D.iimage3D.iimageCube.uimage1D.uimage2D.uimage3D.uimageCube.image1DArray.image2DArray.iimage1DArray.iimage2DArray.uimage1DArray.uimage2DArray.image1DShadow.image2DShadow.image1DArrayShadow.image2DArrayShadow.imageBuffer.iimageBuffer.uimageBuffer.sampler1DArray.sampler1DArrayShadow.isampler1D.isampler1DArray.usampler1D.usampler1DArray.isampler2DRect.usampler2DRect.samplerBuffer.isamplerBuffer.usamplerBuffer.sampler2DMS.isampler2DMS.usampler2DMS.sampler2DMSArray.isampler2DMSArray.usampler2DMSArray.trunc.round.roundEven.isnan.isinf.floatBitsToInt.floatBitsToUint.intBitsToFloat.uintBitsToFloat.packSnorm2x16.unpackSnorm2x16.packUnorm2x16.unpackUnorm2x16.packHalf2x16.unpackHalf2x16.outerProduct.transpose.determinant.inverse.texture.textureSize.textureProj.textureLod.textureOffset.texelFetch.texelFetchOffset.textureProjOffset.textureLodOffset.textureProjLod.textureProjLodOffset.textureGrad.textureGradOffset.textureProjGrad.textureProjGradOffset".split("."),"precision.highp.mediump.lowp.attribute.const.uniform.varying.break.continue.do.for.while.if.else.in.out.inout.float.int.void.bool.true.false.discard.return.mat2.mat3.mat4.vec2.vec3.vec4.ivec2.ivec3.ivec4.uvec2.uvec3.uvec4.bvec2.bvec3.bvec4.sampler1D.sampler2D.sampler3D.usampler1D.usampler2D.usampler3D.samplerCube.sampler1DShadow.sampler2DShadow.struct.asm.class.union.enum.typedef.template.this.packed.goto.switch.default.inline.noinline.volatile.public.static.extern.external.interface.long.short.double.half.fixed.unsigned.input.output.hvec2.hvec3.hvec4.dvec2.dvec3.dvec4.fvec2.fvec3.fvec4.sampler2DRect.sampler3DRect.sampler2DRectShadow.sizeof.cast.namespace.using".split("."),"<<= >>= ++ -- << >> <= >= == != && || += -= *= /= %= &= ^^ ^= |= ( ) [ ] . ! ~ * / % + - < > & ^ | ? : = , ; { }".split(" "),"abs.acos.all.any.asin.atan.ceil.clamp.cos.cross.dFdx.dFdy.degrees.distance.dot.equal.exp.exp2.faceforward.floor.fract.gl_BackColor.gl_BackLightModelProduct.gl_BackLightProduct.gl_BackMaterial.gl_BackSecondaryColor.gl_ClipPlane.gl_ClipVertex.gl_Color.gl_DepthRange.gl_DepthRangeParameters.gl_EyePlaneQ.gl_EyePlaneR.gl_EyePlaneS.gl_EyePlaneT.gl_Fog.gl_FogCoord.gl_FogFragCoord.gl_FogParameters.gl_FragColor.gl_FragCoord.gl_FragData.gl_FragDepth.gl_FragDepthEXT.gl_FrontColor.gl_FrontFacing.gl_FrontLightModelProduct.gl_FrontLightProduct.gl_FrontMaterial.gl_FrontSecondaryColor.gl_LightModel.gl_LightModelParameters.gl_LightModelProducts.gl_LightProducts.gl_LightSource.gl_LightSourceParameters.gl_MaterialParameters.gl_MaxClipPlanes.gl_MaxCombinedTextureImageUnits.gl_MaxDrawBuffers.gl_MaxFragmentUniformComponents.gl_MaxLights.gl_MaxTextureCoords.gl_MaxTextureImageUnits.gl_MaxTextureUnits.gl_MaxVaryingFloats.gl_MaxVertexAttribs.gl_MaxVertexTextureImageUnits.gl_MaxVertexUniformComponents.gl_ModelViewMatrix.gl_ModelViewMatrixInverse.gl_ModelViewMatrixInverseTranspose.gl_ModelViewMatrixTranspose.gl_ModelViewProjectionMatrix.gl_ModelViewProjectionMatrixInverse.gl_ModelViewProjectionMatrixInverseTranspose.gl_ModelViewProjectionMatrixTranspose.gl_MultiTexCoord0.gl_MultiTexCoord1.gl_MultiTexCoord2.gl_MultiTexCoord3.gl_MultiTexCoord4.gl_MultiTexCoord5.gl_MultiTexCoord6.gl_MultiTexCoord7.gl_Normal.gl_NormalMatrix.gl_NormalScale.gl_ObjectPlaneQ.gl_ObjectPlaneR.gl_ObjectPlaneS.gl_ObjectPlaneT.gl_Point.gl_PointCoord.gl_PointParameters.gl_PointSize.gl_Position.gl_ProjectionMatrix.gl_ProjectionMatrixInverse.gl_ProjectionMatrixInverseTranspose.gl_ProjectionMatrixTranspose.gl_SecondaryColor.gl_TexCoord.gl_TextureEnvColor.gl_TextureMatrix.gl_TextureMatrixInverse.gl_TextureMatrixInverseTranspose.gl_TextureMatrixTranspose.gl_Vertex.greaterThan.greaterThanEqual.inversesqrt.length.lessThan.lessThanEqual.log.log2.matrixCompMult.max.min.mix.mod.normalize.not.notEqual.pow.radians.reflect.refract.sign.sin.smoothstep.sqrt.step.tan.texture2D.texture2DLod.texture2DProj.texture2DProjLod.textureCube.textureCubeLod.texture2DLodEXT.texture2DProjLodEXT.textureCubeLodEXT.texture2DGradEXT.texture2DProjGradEXT.textureCubeGradEXT.textureSize.texelFetch".split("."),new Set(["GL_OES_standard_derivatives","GL_EXT_frag_depth","GL_EXT_draw_buffers","GL_EXT_shader_texture_lod"]),new Map,(0,tt.A)("esri-tests-disable-gpu-memory-measurements"),(0,rt.en)();(0,rt.en)();var nt=r(90644),ot=r(21231),at=r(48852),st=r(42293);const lt=!!(0,tt.A)("esri-tests-disable-gpu-memory-measurements");class ct{constructor(e,t){this._context=e,this._descriptor=t,this.type=2,this._context.instanceCounter.increment(it.vt.Renderbuffer,this);let r=this._context.gl;this.glName=r.createRenderbuffer(),this._context.bindRenderbuffer(this);let{width:i,height:n,internalFormat:o,multisampled:a}=t;a?r.renderbufferStorageMultisample(r.RENDERBUFFER,this.samples,o,i,n):r.renderbufferStorage(r.RENDERBUFFER,o,i,n),this._context.bindRenderbuffer(null)}get descriptor(){return this._descriptor}get samples(){let e=this._descriptor.samples,t=this._context.parameters.maxSamples;return e?Math.min(e,t):t}get usedMemory(){return lt?0:(e=this._descriptor).width<=0||e.height<=0||null==e.internalFormat?0:e.width*e.height*(0,st.MW)(e.internalFormat);var e}resize(e,t){let r=this._descriptor;if(r.width===e&&r.height===t)return;r.width=e,r.height=t;let i=this._context.gl;this._context.bindRenderbuffer(this),r.multisampled?i.renderbufferStorageMultisample(i.RENDERBUFFER,this.samples,r.internalFormat,r.width,r.height):i.renderbufferStorage(i.RENDERBUFFER,r.internalFormat,r.width,r.height),this._context.bindRenderbuffer(null)}dispose(){this._context&&=(this._context.gl.deleteRenderbuffer(this.glName),this._context.instanceCounter.decrement(it.vt.Renderbuffer,this),null)}}class ut{constructor(e,t,r){if(this._context=e,this._level=0,this._glName=null,this._colorAttachments=new Map,this._depthStencilBuffer=null,this._depthStencilTexture=null,e.instanceCounter.increment(it.vt.FramebufferObject,this),null!=t){let r=function(e,t){return dt(t)||ht(t)?t:ft(t)?new ot.A(e,t):function(e){return 3===mt(e)||null!=e&&"samples"in e}(t)?new ct(e,t):null}(e,t);null!=r&&(this._colorAttachments.set(36064,r),dt(r)?this._validateTextureDescriptor(r.descriptor):this._validateRenderbufferDescriptor(r.descriptor)),this._validateColorAttachmentPoint(36064)}if(null!=r)if(function(e){return dt(e)||ft(e)}(r))this._depthStencilTexture=dt(r)?r:new ot.A(e,r),this._validateTextureDescriptor(this._depthStencilTexture.descriptor);else{let t=ht(r)?r:new ct(e,r);this._depthStencilBuffer=t,this._validateRenderbufferDescriptor(t.descriptor)}}get glName(){return this._glName}get colorTexture(){let e=this._colorAttachments.get(36064);return dt(e)?e:null}get depthStencil(){return this._depthStencilTexture||this._depthStencilBuffer}get depthStencilTexture(){return this._depthStencilTexture}get width(){return(this._colorAttachments.get(36064)??this._depthStencilTexture??this._depthStencilBuffer)?.descriptor?.width??0}get height(){return(this._colorAttachments.get(36064)??this._depthStencilTexture??this._depthStencilBuffer)?.descriptor?.height??0}get usedMemory(){return this._colorAttachments.values().reduce((e,t)=>e+t.usedMemory,this.depthStencil?.usedMemory??0)}get level(){return this._level}set level(e){this._level!==e&&(this._level=e,this._glName&&this._context.temporaryBindFramebuffer(this,()=>this._initializeAttachments()))}static{this._MAX_COLOR_ATTACHMENTS=-1}getColorTexture(e){let t=this._colorAttachments.get(e);return t&&dt(t)?t:null}get colorAttachments(){return Array.from(this._colorAttachments.keys())}attachColorTexture(e,t=36064){if(!e)return;this._validateColorAttachmentPoint(t);let{descriptor:r}=e;this._validateTextureDescriptor(r),this.detachColorTexture(t)?.dispose(),this._colorAttachments.set(t,e),this._glName&&(this._context.bindFramebuffer(this),this._framebufferTexture2D(e.glName,t))}detachColorTexture(e=36064){let t=this._colorAttachments.get(e);if(!t)return;let r=dt(t);return this._glName&&this._context.temporaryBindFramebuffer(this,()=>{if(r)this._framebufferTexture2D(null,e);else{let t=this._context.gl;t.framebufferRenderbuffer(t.FRAMEBUFFER,e,t.RENDERBUFFER,null)}}),this._colorAttachments.delete(e),r?t:void 0}detachColorTextures(...e){if(0!==e.length){if(this._glName){let t=this._context.gl;this._context.temporaryBindFramebuffer(this,()=>{e.forEach(e=>{dt(this._colorAttachments.get(e))?this._framebufferTexture2D(null,e):t.framebufferRenderbuffer(t.FRAMEBUFFER,e,t.RENDERBUFFER,null)})})}e.forEach(e=>this._colorAttachments.delete(e))}}setColorTextureTarget(e,t=36064,r=0){let i=this._colorAttachments.get(t);i&&(35866===e?this._framebufferTextureLayer(i.glName,t,36160,r):this._framebufferTexture2D(i.glName,t,e,36160))}attachDepthStencil(e){if(e)switch(e.type){case 1:return this._attachDepthStencilTexture(e);case 2:return this._attachDepthStencilBuffer(e)}}_attachDepthStencilTexture(e){if(null==e)return;let{descriptor:t}=e,{pixelFormat:r,dataType:i}=t;34041!==r&&6402!==r?console.error("Depth/Stencil texture must have a pixel type of DEPTH_STENCIL!"):34041===r&&i!==it.ld.UNSIGNED_INT_24_8?console.error("Depth/Stencil texture must have data type of UNSIGNED_INT_24_8!"):6402===r&&i!==it.ld.UNSIGNED_INT&&i!==it.ld.UNSIGNED_SHORT?console.error("Depth texture must have data type of UNSIGNED_INT or UNSIGNED_SHORT!"):(this._validateTextureDescriptor(t),this._disposeDepthStencilAttachments(),this._glName&&(this._context.bindFramebuffer(this),this._framebufferTexture2D(e.glName,gt(r))),this._depthStencilTexture?.dispose(),this._depthStencilTexture=e)}detachDepthStencilTexture(){let e=this._depthStencilTexture;return e&&this._glName&&this._context.temporaryBindFramebuffer(this,()=>{this._framebufferTexture2D(null,gt(e.descriptor.pixelFormat))}),this._depthStencilTexture=null,e}_attachDepthStencilBuffer(e){if(null==e)return;let t=e.descriptor;if(this._validateRenderbufferDescriptor(t),this._disposeDepthStencilAttachments(),this._glName){this._context.bindFramebuffer(this);let{gl:r}=this._context,i=this._getGLAttachmentPoint(t);r.framebufferRenderbuffer(36160,i,r.RENDERBUFFER,e.glName)}this._depthStencilBuffer=e}detachDepthStencilBuffer(){let e=this._depthStencilBuffer;if(e&&this._glName){let{_context:t}=this,r=t.boundFramebuffer;t.bindFramebuffer(this);let{gl:i}=t,n=this._getGLAttachmentPoint(e.descriptor);i.framebufferRenderbuffer(36160,n,i.RENDERBUFFER,null),t.bindFramebuffer(r)}return this._depthStencilBuffer=null,e}invalidateAttachments(e){let{_context:t}=this;t.temporaryBindFramebuffer(this,()=>t.gl.invalidateFramebuffer(36160,e),!0)}copyToTexture(e,t,r,i,n,o,a){(e<0||t<0||n<0||o<0)&&console.error("Offsets cannot be negative!"),(r<=0||i<=0)&&console.error("Copy width and height must be greater than zero!");let s=a.descriptor;3553!==a.descriptor.target&&console.error("Texture target must be TEXTURE_2D!"),(null==s?.width||null==s?.height||e+r>this.width||t+i>this.height||n+r>s.width||o+i>s.height)&&console.error("Bad dimensions, the current input values will attempt to read or copy out of bounds!");let l=this._context,c=l.bindTexture(a,ot.A.TEXTURE_UNIT_FOR_UPDATES);l.setActiveTexture(ot.A.TEXTURE_UNIT_FOR_UPDATES),l.bindFramebuffer(this),l.gl.copyTexSubImage2D(3553,0,n,o,e,t,r,i),l.bindTexture(c,ot.A.TEXTURE_UNIT_FOR_UPDATES)}readPixels(e,t,r,i,n,o,a){(r<=0||i<=0)&&console.error("Copy width and height must be greater than zero!"),a||console.error("Target memory is not initialized!"),this._context.bindFramebuffer(this),this._context.gl.readPixels(e,t,r,i,n,o,a)}async readPixelsAsync(e,t,r,i,n,o,a,s){let{gl:l}=this._context,c=at.g.createPixelPack(this._context,35041,a.byteLength);this._context.bindBuffer(c);let u=this._context.boundFramebuffer;this._context.bindFramebuffer(this),l.readPixels(e,t,r,i,n,o,0),this._context.unbindBuffer(35051),this._context.bindFramebuffer(u);try{await c.getSubDataAsync(a,void 0,void 0,void 0,s)}finally{c.dispose()}}resize(e,t){if(this.width===e&&this.height===t)return;let r={width:e,height:t};if(pt(r,this._context.parameters.maxTextureSize),this._colorAttachments.forEach(e=>e.resize(r.width,r.height)),this._depthStencilTexture?.resize(r.width,r.height),this._glName&&(pt(r,this._context.parameters.maxRenderbufferSize),this._depthStencilBuffer?.resize(r.width,r.height),(0,rt.en)())){let{gl:e}=this._context;e.checkFramebufferStatus(36160)!==e.FRAMEBUFFER_COMPLETE&&console.error("Framebuffer is incomplete!")}}initializeAndBind(e=36160){let{gl:t}=this._context;this._glName?t.bindFramebuffer(e,this._glName):(this._glName&&t.deleteFramebuffer(this._glName),this._glName=t.createFramebuffer(),t.bindFramebuffer(e,this._glName),this._initializeAttachments(e))}_initializeAttachments(e=36160){let{gl:t}=this._context;if(this._colorAttachments.forEach((t,r)=>{if(dt(t)){let i=vt(t);35866===i?this._framebufferTextureLayer(t.glName,r,e):this._framebufferTexture2D(t.glName,r,i,e)}else if(ht(t)){let i=this._context.gl;i.framebufferRenderbuffer(e,r,i.RENDERBUFFER,t.glName)}}),this._depthStencilBuffer){let r=this._getGLAttachmentPoint(this._depthStencilBuffer.descriptor);t.framebufferRenderbuffer(e,r,t.RENDERBUFFER,this._depthStencilBuffer.glName)}else if(this._depthStencilTexture){let t=gt(this._depthStencilTexture.descriptor.pixelFormat);this._framebufferTexture2D(this._depthStencilTexture.glName,t,vt(this._depthStencilTexture),e)}(0,rt.en)()&&t.checkFramebufferStatus(e)!==t.FRAMEBUFFER_COMPLETE&&console.error("Framebuffer is incomplete!")}_framebufferTexture2D(e,t=36064,r=3553,i=36160){this._context.gl.framebufferTexture2D(i,t,r,e,this._level)}_framebufferTextureLayer(e,t=36064,r=36160,i=0){this._context.gl.framebufferTextureLayer(r,t,e,this._level,i)}_disposeDepthStencilAttachments(){let e=this._context.gl;if(this._depthStencilBuffer){if(this._glName){this._context.bindFramebuffer(this);let t=this._getGLAttachmentPoint(this._depthStencilBuffer.descriptor);e.framebufferRenderbuffer(36160,t,e.RENDERBUFFER,null)}this._depthStencilBuffer=(0,s.WD)(this._depthStencilBuffer)}this._depthStencilTexture&&=(this._glName&&(this._context.bindFramebuffer(this),this._framebufferTexture2D(null,gt(this._depthStencilTexture.descriptor.pixelFormat))),(0,s.WD)(this._depthStencilTexture))}_validateTextureDescriptor(e){3553!==e.target&&34067!==e.target&&35866!==e.target&&console.error("Texture type must be TEXTURE_2D, TEXTURE_2D_ARRAY or TEXTURE_CUBE_MAP!"),pt(e,this._context.parameters.maxTextureSize),this._validateBufferDimensions(e)}_validateRenderbufferDescriptor(e){pt(e,this._context.parameters.maxRenderbufferSize),this._validateBufferDimensions(e)}_validateBufferDimensions(e){e.width<=0&&(e.width=this.width),e.height<=0&&(e.height=this.height),this.width>0&&this.height>0&&(this.width!==e.width||this.height!==e.height)&&console.error("Attachment size must match framebuffer size!")}_getGLAttachmentPoint(e){switch(e.internalFormat){case it.SB.DEPTH_COMPONENT16:case it.SB.DEPTH_COMPONENT24:case it.SB.DEPTH_COMPONENT32F:return 36096;case it.iE.DEPTH24_STENCIL8:case it.iE.DEPTH32F_STENCIL8:return 33306;case 36168:return 36128;default:return 36064}}_validateColorAttachmentPoint(e){if(-1===ut._MAX_COLOR_ATTACHMENTS){let{gl:e}=this._context;ut._MAX_COLOR_ATTACHMENTS=e.getParameter(e.MAX_COLOR_ATTACHMENTS)}let t=e-36064;t+1>ut._MAX_COLOR_ATTACHMENTS&&R.A.getLogger("esri.views.webgl.FrameBufferObject").error("esri.FrameBufferObject",`illegal attachment point for color attachment: ${t+1}. Implementation supports up to ${ut._MAX_COLOR_ATTACHMENTS} color attachments`)}}function dt(e){return 1===mt(e)}function ht(e){return 2===mt(e)}function ft(e){return 0===mt(e)}function mt(e){return null!=e&&"type"in e?e.type:null}function pt(e,t){let r=Math.max(e.width,e.height);if(r>t){R.A.getLogger("esri.views.webgl.FramebufferObject").warnOnce(`Resizing FBO attachment size ${e.width}x${e.height} to device limit ${t}`);let i=t/r;return e.width=Math.round(e.width*i),e.height=Math.round(e.height*i),!1}return!0}function vt(e){return 34067===e.descriptor.target?34069:35866===e.descriptor.target?35866:3553}function gt(e){return 6402===e?36096:33306}var xt=r(67171),_t=(r(21818),r(69397),r(85079));const bt=[new(r(74038)._)("position",2,it.pe.UNSIGNED_SHORT,0,4)];(0,_t.Xk)(bt),r(66289);const yt=new Image;yt.src="data:image/svg+xml,%3C%3Fxml version='1.0' encoding='UTF-8'%3F%3E%3Csvg width='5' height='5' version='1.1' viewBox='0 0 5 5' xmlns='http://www.w3.org/2000/svg'%3E%3Crect width='5' height='5' fill='%23f00' fill-opacity='.5'/%3E%3C/svg%3E%0A",yt.width=5,yt.height=5,yt.decode();let wt=class extends D.A{constructor(e){super(e),this.view=null,this.consumes={required:[]},this.produces=Ye,this._dirty=!0}initialize(){this.addHandles([(0,l.wB)(()=>this.view.ready,e=>{e&&this.view.stage?.renderer.addRenderNode(this)},l.Vh)])}destroy(){this.view.stage?.renderer?.removeRenderNode(this)}precompile(){}render(){throw new Ke.A("RenderNode:render-function-not-implemented","render() is not implemented.")}get camera(){return this.view.state.camera.clone()}get sunLight(){return this.bindParameters.lighting.legacy}get gl(){return this.view.stage.renderView.renderingContext.gl}get techniques(){return this.view.stage.renderView.techniques}acquireOutputFramebuffer(){let e=this._frameBuffer?.getTexture()?.descriptor,t=this.view.stage.renderer.fboCache.acquire(e?.width??640,e?.height??480,this.produces);return this._bind(t),t}bindRenderTarget(){return this._bind(this._frameBuffer),this._frameBuffer}_bind({fbo:e}){e.initializeAndBind(),this.gl.drawBuffers(function(e){return e?e.colorAttachments.length>0?e.colorAttachments:[0]:[1029]}(e))}requestRender(e){switch(e){case 2:this.view.state.fading=!0;case 1:this.view.stage?.renderView.requestRender(e);case 0:case void 0:this._dirty=!0}}resetWebGLState(){this.renderingContext.resetState(),this.renderingContext.bindFramebuffer(this._frameBuffer?.fbo)}get fboCache(){return this.view.stage.renderer.fboCache}get bindParameters(){return this.renderContext.bind}get renderingContext(){return this.view.stage.renderView.renderingContext}get renderContext(){return this.view.stage?.renderer.renderContext}updateAnimation(e){return!!this._dirty&&(this._dirty=!1,!0)}doRender(e){this._frameBuffer=e.find(({name:e})=>e===this.produces);try{return this.render(e)}finally{this._frameBuffer=null}}get requireGeometryDepth(){return!1}queryDepthRange(e){return null}get input(){return this._frameBuffer}};(0,o.Cg)([(0,Qe.MZ)({constructOnly:!0})],wt.prototype,"view",void 0),(0,o.Cg)([(0,Qe.MZ)({constructOnly:!0})],wt.prototype,"consumes",void 0),(0,o.Cg)([(0,Qe.MZ)()],wt.prototype,"produces",void 0),(0,o.Cg)([(0,Qe.MZ)({readOnly:!0})],wt.prototype,"techniques",null),wt=(0,o.Cg)([(0,et.$)("esri.views.3d.webgl.RenderNode")],wt);let Mt=class extends wt{constructor(){super(...arguments),this.consumes={required:["normals"]},this.produces="disabled"}get enabled(){return!this.destroying&&!this.destroyed&&this.produces===Je.AMBIENT_ILLUMINATION}get _belowMaxElevation(){return(this.view.state.camera.relativeElevation??1/0)<5e5}get _useGlobalIllumination(){return this._belowMaxElevation&&this.view.stage.renderer.isFeatureEnabled(11)}get _useSSAO(){return this._belowMaxElevation&&this.view.stage.renderer.isFeatureEnabled(3)}_enable(){this.produces=Je.AMBIENT_ILLUMINATION,this.requestRender(1)}_disable(){this.produces="disabled",this.requestRender(1)}};(0,o.Cg)([(0,u.MZ)()],Mt.prototype,"consumes",void 0),(0,o.Cg)([(0,u.MZ)()],Mt.prototype,"produces",void 0),Mt=(0,o.Cg)([(0,u.$K)("esri.views.3d.webgl-engine.effects.AmbientIllumination")],Mt);var Tt=r(15581),St=r(13840),Ct=r(42958),At=r(95774);let Et=class extends Ct.w{constructor(){super(...arguments),this.shader=new St.r(At.S,()=>r.e(1285).then(()=>r(91285)))}initializePipeline(){return(0,nt.Ey)({colorWrite:nt.kn})}};Et=(0,o.Cg)([(0,u.$K)("esri.views.3d.webgl-engine.effects.ssao.SSAOBlurTechnique")],Et);var It=r(65786);class Ot extends It.Y{constructor(){super(...arguments),this.projScale=1}}class Pt extends Ot{constructor(){super(...arguments),this.intensity=1}}class Dt extends It.Y{}class Rt extends Dt{constructor(){super(...arguments),this.blurSize=(0,B.vt)()}}let Ft=class extends Ct.w{constructor(){super(...arguments),this.shader=new St.r(Tt.S,()=>r.e(6122).then(()=>r(86122)))}initializePipeline(){return(0,nt.Ey)({colorWrite:nt.kn})}};Ft=(0,o.Cg)([(0,u.$K)("esri.views.3d.webgl-engine.effects.ssao.SSAOTechnique")],Ft);let Bt=class extends Mt{constructor(e){super(e),this._enableTime=(0,c.l5)(0),this._passParameters=new Pt,this._drawParameters=new Rt}initialize(){let e=Uint8Array.from(atob("eXKEvZaUc66cjIKElE1jlJ6MjJ6Ufkl+jn2fcXp5jBx7c6KEflSGiXuXeW6OWs+tfqZ2Yot2Y7Zzfo2BhniEj3xoiXuXj4eGZpqEaHKDWjSMe7palFlzc3BziYOGlFVzg6Zzg7CUY5JrjFF7eYJ4jIKEcyyEonSXe7qUfqZ7j3xofqZ2c4R5lFZ5Y0WUbppoe1l2cIh2ezyUho+BcHN2cG6DbpqJhqp2e1GcezhrdldzjFGUcyxjc3aRjDyEc1h7Sl17c6aMjH92pb6Mjpd4dnqBjMOEhqZleIOBYzB7gYx+fnqGjJuEkWlwnCx7fGl+c4hjfGyRe5qMlNOMfnqGhIWHc6OMi4GDc6aMfqZuc6aMzqJzlKZ+lJ6Me3qRfoFue0WUhoR5UraEa6qMkXiPjMOMlJOGe7JrUqKMjK6MeYRzdod+Sl17boiPc6qEeYBlcIh2c1WEe7GDiWCDa0WMjEmMdod+Y0WcdntzhmN8WjyMjKJjiXtzgYxYaGd+a89zlEV7e2GJfnd+lF1rcK5zc4p5cHuBhL6EcXp5eYB7fnh8iX6HjIKEeaxuiYOGc66RfG2Ja5hzjlGMjEmMe9OEgXuPfHyGhPeEdl6JY02McGuMfnqGhFiMa3WJfnx2l4hwcG1uhmN8c0WMc39og1GBbrCEjE2EZY+JcIh2cIuGhIWHe0mEhIVrc09+gY5+eYBlnCyMhGCDl3drfmmMgX15aGd+gYx+fnuRfnhzY1SMsluJfnd+hm98WtNrcIuGh4SEj0qPdkqOjFF7jNNjdnqBgaqUjMt7boeBhnZ4jDR7c5pze4GGjEFrhLqMjHyMc0mUhKZze4WEa117kWlwbpqJjHZ2eX2Bc09zeId+e0V7WlF7jHJ2l72BfId8l3eBgXyBe897jGl7c66cgW+Xc76EjKNbgaSEjGx4fId8jFFjgZB8cG6DhlFziZhrcIh2fH6HgUqBgXiPY8dahGFzjEmMhEFre2dxhoBzc5SGfleGe6alc7aUeYBlhKqUdlp+cH5za4OEczxza0Gcc4J2jHZ5iXuXjH2Jh5yRjH2JcFx+hImBjH+MpddCl3dreZeJjIt8ZW18bm1zjoSEeIOBlF9oh3N7hlqBY4+UeYFwhLJjeYFwaGd+gUqBYxiEYot2fqZ2ondzhL6EYyiEY02Ea0VjgZB8doaGjHxoc66cjEGEiXuXiXWMiZhreHx8frGMe75rY02Ec5pzfnhzlEp4a3VzjM+EhFFza3mUY7Zza1V5e2iMfGyRcziEhDyEkXZ2Y4OBnCx7g5t2eyBjgV6EhEFrcIh2dod+c4Z+nJ5zjm15jEmUeYxijJp7nL6clIpjhoR5WrZraGd+fnuRa6pzlIiMg6ZzfHx5foh+eX1ufnB5eX1ufnB5aJt7UqKMjIh+e3aBfm5lbYSBhGFze6J4c39oc0mUc4Z+e0V7fKFVe0WEdoaGY02Ec4Z+Y02EZYWBfH6HgU1+gY5+hIWUgW+XjJ57ebWRhFVScHuBfJ6PhBx7WqJzlM+Ujpd4gHZziX6HjHmEgZN+lJt5boiPe2GJgX+GjIGJgHZzeaxufnB5hF2JtdN7jJ57hp57hK6ElFVzg6ZzbmiEbndzhIWHe3uJfoFue3qRhJd2j3xoc65zlE1jc3p8lE1jhniEgXJ7e657vZaUc3qBh52BhIF4aHKDa9drgY5+c52GWqZzbpqJe8tjnM+UhIeMfo2BfGl+hG1zSmmMjKJjZVaGgX15c1lze0mEp4OHa3mUhIWHhDyclJ6MeYOJkXiPc0VzhFiMlKaEboSJa5Jze41re3qRhn+HZYWBe0mEc4p5fnORbox5lEp4hGFjhGGEjJuEc1WEhLZjeHeGa7KlfHx2hLaMeX1ugY5+hIWHhKGPjMN7c1WEho1zhoBzZYx7fnhzlJt5exyUhFFziXtzfmmMa6qMYyiEiXxweV12kZSMeWqXSl17fnhzxmmMrVGEe1mcc4p5eHeGjK6MgY5+doaGa6pzlGV7g1qBh4KHkXiPeW6OaKqafqZ2eXZ5e1V7jGd7boSJc3BzhJd2e0mcYot2h1RoY8dahK6EQmWEWjx7e1l2lL6UgXyBdnR4eU9zc0VreX1umqaBhld7fo2Bc6KEc5Z+hDyEcIeBWtNrfHyGe5qMhMuMe5qMhEGEbVVupcNzg3aHhIF4boeBe0mEdlptc39ofFl5Y8uUlJOGiYt2UmGEcyxjjGx4jFF7a657ZYWBnElzhp57iXtrgZN+tfOEhIOBjE2HgU1+e8tjjKNbiWCDhE15gUqBgYN7fnqGc66ce9d7iYSBj0qPcG6DnGGcT3eGa6qMZY+JlIiMl4hwc3aRdnqBlGV7eHJ2hLZjfnuRhDyEeX6MSk17g6Z+c6aUjHmEhIF4gXyBc76EZW18fGl+fkl+jCxrhoVwhDyUhIqGlL2DlI6EhJd2tdN7eYORhEGMa2Faa6pzc3Bzc4R5lIRznM+UY9eMhDycc5Z+c4p5c4iGY117pb6MgXuPrbJafnx2eYOJeXZ5e657hDyEcziElKZjfoB5eHeGj4WRhGGEe6KGeX1utTStc76EhFGJnCyMa5hzfH6HnNeceYB7hmN8gYuMhIVrczSMgYF8h3N7c5pza5hzjJqEYIRdgYuMlL2DeYRzhGGEeX1uhLaEc4iGeZ1zdl6JhrVteX6Me2iMfm5lWqJzSpqEa6pzdnmchHx2c6OMhNdrhoR5g3aHczxzeW52gV6Ejm15frGMc0Vzc4Z+l3drfniJe+9rWq5rlF1rhGGEhoVwe9OEfoh+e7pac09+c3qBY0lrhDycdnp2lJ6MiYOGhGCDc3aRlL2DlJt5doaGdnp2gYF8gWeOjF2Uc4R5c5Z+jEmMe7KEc4mEeYJ4dmyBe0mcgXiPbqJ7eYB7fmGGiYSJjICGlF1reZ2PnElzbpqJfH6Hc39oe4WEc5eJhK6EhqyJc3qBgZB8c09+hEmEaHKDhFGJc5SGiXWMUpaEa89zc6OMnCyMiXtrho+Be5qMc7KEjJ57dmN+hKGPjICGbmiEe7prdod+hGCDdnmchBx7eX6MkXZ2hGGEa657hm98jFFjY5JreYOJgY2EjHZ2a295Y3FajJ6Mc1J+YzB7e4WBjF2Uc4R5eV12gYxzg1qBeId+c9OUc5pzjFFjgY5+hFiMlIaPhoR5lIpjjIKBlNdSe7KEeX2BfrGMhIqGc65zjE2UhK6EklZ+QmWEeziMWqZza3VzdnR4foh+gYF8n3iJiZhrnKp7gYF8eId+lJ6Me1lrcIuGjKJjhmN8c66MjFF7a6prjJ6UnJ5zezyUfruRWlF7nI5zfHyGe657h4SEe8tjhBx7jFFjc09+c39ojICMeZeJeXt+YzRzjHZ2c0WEcIeBeXZ5onSXkVR+gYJ+eYFwdldzgYF7eX2BjJ6UiXuXlE1jh4SEe1mchLJjc4Z+hqZ7eXZ5bm1zlL6Ue5p7iWeGhKqUY5pzjKJjcIeBe8t7gXyBYIRdlEp4a3mGnK6EfmmMZpqEfFl5gYxzjKZuhGFjhoKGhHx2fnx2eXuMe3aBiWeGvbKMe6KGa5hzYzB7gZOBlGV7hmN8hqZlYot2Y117a6pzc6KEfId8foB5rctrfneJfJ6PcHN2hFiMc5pzjH92c0VzgY2EcElzdmCBlFVzg1GBc65zY4OBboeBcHiBeYJ4ewxzfHx5lIRzlEmEnLKEbk1zfJ6PhmN8eYBljBiEnMOEiXxwezyUcIeBe76EdsKEeX2BdnR4jGWUrXWMjGd7fkl+j4WRlEGMa5Jzho+BhDyEfnqMeXt+g3aHlE1jczClhNN7ZW18eHx8hGFjZW18iXWMjKJjhH57gYuMcIuGWjyMe4ZtjJuExmmMj4WRdntzi4GDhFFzYIRdnGGcjJp7Y0F7e4WEkbCGiX57fnSHa657a6prhBCMe3Z+SmmMjH92eHJ2hK6EY1FzexhrvbKMnI5za4OEfnd+eXuMhImBe897hLaMjN+EfG+BeIOBhF1+eZeJi4GDkXZ2eXKEgZ6Ejpd4c2GHa1V5e5KUfqZuhCx7jKp7lLZrg11+hHx2hFWUoot2nI5zgbh5mo9zvZaUe3qRbqKMfqZ2kbCGhFiM"),e=>e.charCodeAt(0)),t=new xt.R(32);t.wrapMode=33071,t.pixelFormat=6407,t.wrapMode=10497,t.hasMipmap=!0,this._passParameters.noiseTexture=new ot.A(this.renderingContext,t,e),this.addHandles((0,l.wB)(()=>this._useSSAO,e=>{this._enableTime=(0,c.l5)(0),e?this._enable():this._disable()},l.pc))}destroy(){this._passParameters.noiseTexture=(0,s.WD)(this._passParameters.noiseTexture)}render(e){let t=e.find(({name:e})=>"normals"===e),r=t?.getTexture(),i=t?.getTexture(33306);if(!r||!i)return;let n=this.techniques.getCompiled(Ft),o=this.techniques.getCompiled(Et);if(!n||!o)return this._enableTime=(0,c.l5)(performance.now()),void this.requestRender(1);0===this._enableTime&&(this._enableTime=(0,c.l5)(performance.now()));let s=this.renderingContext,l=this.view.qualitySettings.fadeDuration,u=this.bindParameters,h=u.camera,f=h.relativeElevation,m=(0,a.qE)((5e5-f)/2e5,0,1),p=l>0?Math.min(l,performance.now()-this._enableTime)/l:1,v=p*m;this._passParameters.normalTexture=r,this._passParameters.depthTexture=i,this._passParameters.projScale=1/h.computeScreenPixelSizeAtDistance(1),this._passParameters.intensity=4*Nt/(0,Tt.g)(h)**6*v;let g=h.fullViewport[2],x=h.fullViewport[3],_=this.fboCache.acquire(g,x,"ssao input",2);s.bindFramebuffer(_.fbo),s.setViewport(0,0,g,x),s.bindTechnique(n,u,this._passParameters,this._drawParameters),s.screen.draw();let b=Math.round(g/2),y=Math.round(x/2),w=this.fboCache.acquire(b,y,"ssao blur",0);s.bindFramebuffer(w.fbo),this._drawParameters.colorTexture=_.getTexture(),(0,d.hZ)(this._drawParameters.blurSize,0,2/x),s.bindTechnique(o,u,this._passParameters,this._drawParameters),s.setViewport(0,0,b,y),s.screen.draw(),_.release();let M=this.fboCache.acquire(b,y,Je.AMBIENT_ILLUMINATION,0);return s.bindFramebuffer(M.fbo),s.setViewport(0,0,g,x),s.setClearColor(1,1,1,0),s.clear(16384),this._drawParameters.colorTexture=w.getTexture(),(0,d.hZ)(this._drawParameters.blurSize,2/g,0),s.bindTechnique(o,u,this._passParameters,this._drawParameters),s.setViewport(0,0,b,y),s.screen.draw(),s.setViewport4fv(h.fullViewport),w.release(),p<1&&this.requestRender(2),M}};Bt=(0,o.Cg)([(0,u.$K)("esri.views.3d.webgl-engine.effects.ssao.SSAO")],Bt);const Nt=.5;function zt(e,t){t.receiveAmbientOcclusion?(e.uniforms.add(new n.x("ssaoTex",e=>e.ssao?.getTexture())),e.constants.add("blurSizePixelsInverse","float",.5),e.code.add(i.H`float evaluateAmbientOcclusionInverse() {
|
|
603
|
+
}`))}(e,t)}},68785(e,t,r){r.d(t,{n:()=>zt});var i=r(31821),n=r(12791),o=r(32198),a=r(34727),s=r(97768),l=r(36708),c=r(78659),u=r(91429),d=r(37585),h=r(69540);let f=class extends h.Pw{constructor(e){super(e),this.row=0,this.column=0,this.rows=1,this.columns=1}equals(e){return null!=e&&this.row===e.row&&this.rows===e.rows&&this.column===e.column&&this.columns===e.columns}};(0,o.Cg)([(0,u.MZ)({type:Number,nonNullable:!0,json:{read:!1,write:!1}})],f.prototype,"row",void 0),(0,o.Cg)([(0,u.MZ)({type:Number,nonNullable:!0,json:{read:!1,write:!1}})],f.prototype,"column",void 0),(0,o.Cg)([(0,u.MZ)({type:Number,nonNullable:!0,json:{read:!1,write:!1}})],f.prototype,"rows",void 0),(0,o.Cg)([(0,u.MZ)({type:Number,nonNullable:!0,json:{read:!1,write:!1}})],f.prototype,"columns",void 0),f=(0,o.Cg)([(0,u.$K)("esri.CameraLayout")],f);const m=f;var p=r(69052),v=r(25482),g=r(78888),x=r(86738),_=r(43937),b=r(36005);let y=class extends((0,h.OU)(v.o)){constructor(...e){super(...e),this.position=new x.A([0,0,0]),this.heading=0,this.tilt=0,this.fov=55,this.layout=new m}normalizeCtorArgs(e,t,r,i){if(e&&"object"==typeof e&&("x"in e||Array.isArray(e))){let n={position:e};return null!=t&&(n.heading=t),null!=r&&(n.tilt=r),null!=i&&(n.fov=i),n}return e}writePosition(e,t,r,i){let n=e.clone();n.x=(0,g.GB)(e.x||0),n.y=(0,g.GB)(e.y||0),n.z=e.hasZ?(0,g.GB)(e.z||0):e.z,t[r]=n.write({},i)}readPosition(e,t){let r=new x.A;return r.read(e,t),r.x=(0,g.GB)(r.x||0),r.y=(0,g.GB)(r.y||0),r.z=r.hasZ?(0,g.GB)(r.z||0):r.z,r}equals(e){return null!=e&&this.tilt===e.tilt&&this.heading===e.heading&&this.fov===e.fov&&this.position.equals(e.position)&&this.layout.equals(e.layout)}};(0,o.Cg)([(0,u.MZ)({type:x.A,json:{write:{isRequired:!0}}})],y.prototype,"position",void 0),(0,o.Cg)([(0,_.K)("position")],y.prototype,"writePosition",null),(0,o.Cg)([(0,b.w)("position")],y.prototype,"readPosition",null),(0,o.Cg)([(0,u.MZ)({type:Number,nonNullable:!0,json:{write:{isRequired:!0}}}),(0,u.wg)(e=>p.ie.normalize((0,g.GB)(e)))],y.prototype,"heading",void 0),(0,o.Cg)([(0,u.MZ)({type:Number,nonNullable:!0,json:{write:{isRequired:!0}}}),(0,u.wg)(e=>(0,a.qE)((0,g.GB)(e),-180,180))],y.prototype,"tilt",void 0),(0,o.Cg)([(0,u.MZ)({type:Number,nonNullable:!0,json:{default:55,write:!0}}),(0,u.wg)(e=>(0,a.qE)((0,g.GB)(e,55),1,170))],y.prototype,"fov",void 0),(0,o.Cg)([(0,u.MZ)({type:m,nonNullable:!0,json:{read:!1,write:!1}})],y.prototype,"layout",void 0),y=(0,o.Cg)([(0,u.$K)("esri.Camera")],y);var w=r(9093),M=r(35522),T=r(51850),S=r(16930),C=(r(48353),r(9762),r(65806)),A=r(27993),E=r(73941),I=(r(19419),r(58083)),O=r(65720),P=r(71351),D=r(69622),R=r(53966),F=r(90629),B=r(48163),N=r(78955),z=r(91829),L=r(44280);function H(e,t,r){e.worldUpAtPosition(t,V),(0,M.Re)(U,r,t);let i=(0,M.Bw)(U);return 0===i?0:(0,a.XM)((0,M.Om)(U,V)/i)}const V=(0,T.vt)(),U=(0,T.vt)();var j;let k=j=class extends D.A{constructor(e){super(e),this._ray=(0,P.vt)(),this._viewport=(0,z.fA)(0,0,1,1),this._padding=(0,z.fA)(0,0,0,0),this._fov=55/180*Math.PI,this._nearFar=(0,B.fA)(1,1e3),this._viewDirty=!0,this._viewMatrix=(0,w.vt)(),this._viewProjectionDirty=!0,this._viewProjectionMatrix=(0,w.vt)(),this._viewInverseTransposeMatrixDirty=!0,this._viewInverseTransposeMatrix=(0,w.vt)(),this._frustumDirty=!0,this._frustum=(0,O.vt)(),this._fullViewport=(0,z.vt)(),this._fullViewportDirty=!0,this._pixelRatio=1,this.pixelScale=1,this.row=0,this.column=0,this._rows=1,this._columns=1,this._center=(0,T.vt)(),this._up=(0,T.vt)(),this.relativeElevation=0}get pixelRatio(){return this._pixelRatio}set pixelRatio(e){this._pixelRatio=e>0?e:1}get rows(){return this._rows}set rows(e){this._rows=Math.max(1,e)}get columns(){return this._columns}set columns(e){this._columns=Math.max(1,e)}get eye(){return this._ray.origin}set eye(e){this._compareAndSetView(e,this._ray.origin,"eye")}get center(){return this._center}set center(e){this._compareAndSetView(e,this._center,"_center")}get ray(){return(0,M.Re)(this._ray.direction,this.center,this.eye),this._ray}get up(){return this._up}set up(e){this._compareAndSetView(e,this._up,"_up")}get viewMatrix(){return this._ensureViewClean(),this._viewMatrix}set viewMatrix(e){(0,I.C)(this._viewMatrix,e),this.notifyChange("_viewMatrix"),this._viewDirty=!1,this._viewInverseTransposeMatrixDirty=!0,this._viewProjectionDirty=!0,this._frustumDirty=!0}get inverseViewMatrix(){return(0,I.Qw)((0,w.vt)(),this.viewMatrix)||this._get("inverseViewMatrix")||(0,w.vt)()}get viewForward(){return this._ensureViewClean(),(0,M.hZ)((0,T.vt)(),-this._viewMatrix[2],-this._viewMatrix[6],-this._viewMatrix[10])}get viewUp(){return this._ensureViewClean(),(0,M.hZ)((0,T.vt)(),this._viewMatrix[1],this._viewMatrix[5],this._viewMatrix[9])}get viewRight(){return this._ensureViewClean(),(0,M.hZ)((0,T.vt)(),this._viewMatrix[0],this._viewMatrix[4],this._viewMatrix[8])}get nearFar(){return this._nearFar}get near(){return this._nearFar[0]}set near(e){this._nearFar[0]!==e&&(this._nearFar[0]=e,this._viewProjectionDirty=!0,this._frustumDirty=!0,this.notifyChange("_nearFar"))}get far(){return this._nearFar[1]}set far(e){this._nearFar[1]!==e&&(this._nearFar[1]=e,this._viewProjectionDirty=!0,this._frustumDirty=!0,this.notifyChange("_nearFar"))}get viewport(){return this._viewport}set viewport(e){this.x=e[0],this.y=e[1],this.width=e[2],this.height=e[3]}get screenViewport(){if(1===this.pixelRatio)return this._viewport;let e=(0,N.hs)((0,z.vt)(),this._viewport,1/this.pixelRatio),t=this._get("screenViewport");return t&&(0,N.aI)(e,t)?t:e}get screenPadding(){if(1===this.pixelRatio)return this._padding;let e=(0,N.hs)((0,z.vt)(),this._padding,1/this.pixelRatio),t=this._get("screenPadding");return t&&(0,N.aI)(e,t)?t:e}get x(){return this._viewport[0]}set x(e){e+=this._padding[3],this._viewport[0]!==e&&(this._viewport[0]=e,this._fullViewportDirty=!0,this._viewProjectionDirty=!0,this._frustumDirty=!0,this.notifyChange("_viewport"))}get y(){return this._viewport[1]}set y(e){e+=this._padding[2],this._viewport[1]!==e&&(this._viewport[1]=e,this._fullViewportDirty=!0,this._viewProjectionDirty=!0,this._frustumDirty=!0,this.notifyChange("_viewport"))}get width(){return this._viewport[2]}set width(e){this._viewport[2]!==e&&(this._viewport[2]=e,this._fullViewportDirty=!0,this._viewProjectionDirty=!0,this._frustumDirty=!0,this.notifyChange("_viewport"))}get height(){return this._viewport[3]}set height(e){this._viewport[3]!==e&&(this._viewport[3]=e,this._fullViewportDirty=!0,this._viewProjectionDirty=!0,this._frustumDirty=!0,this.notifyChange("_viewport"))}get fullWidth(){return this._viewport[2]+this._padding[1]+this._padding[3]}set fullWidth(e){this.width=e-(this._padding[1]+this._padding[3])}get fullHeight(){return this._viewport[3]+this._padding[0]+this._padding[2]}set fullHeight(e){this.height=e-(this._padding[0]+this._padding[2])}get fullViewport(){return this._fullViewportDirty&&=(this._fullViewport[0]=this._viewport[0]-this._padding[3],this._fullViewport[1]=this._viewport[1]-this._padding[2],this._fullViewport[2]=this._viewport[2]+this._padding[1]+this._padding[3],this._fullViewport[3]=this._viewport[3]+this._padding[0]+this._padding[2],!1),this._fullViewport}get _aspect(){return this.width/this.height}get padding(){return this._padding}set padding(e){(0,N.t2)(this._padding,e)||(this._viewport[0]+=e[3]-this._padding[3],this._viewport[1]+=e[2]-this._padding[2],this._viewport[2]-=e[1]+e[3]-(this._padding[1]+this._padding[3]),this._viewport[3]-=e[0]+e[2]-(this._padding[0]+this._padding[2]),(0,N.C)(this._padding,e),this._fullViewportDirty=!0,this._viewProjectionDirty=!0,this._frustumDirty=!0,this.notifyChange("_padding"),this.notifyChange("_viewport"))}get viewProjectionMatrix(){return this._viewProjectionDirty&&=((0,I.lw)(this._viewProjectionMatrix,this.projectionMatrix,this.viewMatrix),!1),this._viewProjectionMatrix}get projectionMatrix(){return this._projectionMatrixInternal}get inverseProjectionMatrix(){return(0,I.B8)((0,w.vt)(),this.projectionMatrix)||this._get("inverseProjectionMatrix")||(0,w.vt)()}get fov(){return this._fov}set fov(e){this._fov=e,this._viewProjectionDirty=!0,this._frustumDirty=!0}get fovX(){return e=this._fov,t=this.width,r=this.height,2*Math.atan(t*Math.tan(.5*e)/Math.sqrt(t*t+r*r));var e,t,r}set fovX(e){this._fov=function(e,t,r){return 2*Math.atan(Math.sqrt(t*t+r*r)*Math.tan(.5*e)/t)}(e,this.width,this.height),this._viewProjectionDirty=!0,this._frustumDirty=!0}get fovY(){return e=this._fov,t=this.width,r=this.height,2*Math.atan(r*Math.tan(.5*e)/Math.sqrt(t*t+r*r));var e,t,r}set fovY(e){this._fov=function(e,t,r){return 2*Math.atan(Math.sqrt(t*t+r*r)*Math.tan(.5*e)/r)}(e,this.width,this.height),this._viewProjectionDirty=!0,this._frustumDirty=!0}get distance(){return(0,M.Io)(this.center,this.eye)}get frustum(){return this._recomputeFrustum(),this._frustum}get viewInverseTransposeMatrix(){return(this._viewInverseTransposeMatrixDirty||this._viewDirty)&&((0,I.B8)(this._viewInverseTransposeMatrix,this.viewMatrix),(0,I.mg)(this._viewInverseTransposeMatrix,this._viewInverseTransposeMatrix),this._viewInverseTransposeMatrixDirty=!1),this._viewInverseTransposeMatrix}depthNDCToWorld(e){let{near:t,far:r}=this;return 2*t*r/(r+t-e*(r-t))}get renderPixelSizePerDistance(){return Math.tan(this.fovX/2)/(this.width/2)}get screenPixelSizePerDistance(){return this.renderPixelSizePerDistance*this.pixelRatio}get aboveGround(){return null!=this.relativeElevation&&this.relativeElevation>=0}get _projectionMatrixInternal(){let e=this.width,t=this.height,r=this.near*Math.tan(this.fovY/2)*2,i=r*this._aspect,n=r/this.rows,o=i/this.columns,a=-i/2+this.column*o,s=a+o,l=-r/2+this.row*n,c=l+n,u=(0,I.$h)((0,w.vt)(),a*(1+2*this._padding[3]/e),s*(1+2*this._padding[1]/e),l*(1+2*this._padding[2]/t),c*(1+2*this._padding[0]/t),this.near,this.far),d=this._get("projectionMatrix");return d&&(0,I.t2)(d,u)?d:u}copyFrom(e){(0,M.C)(this._ray.origin,e.eye),this.center=e.center,this.up=e.up,(0,N.C)(this._viewport,e.viewport),this.notifyChange("_viewport"),(0,N.C)(this._padding,e.padding),this.notifyChange("_padding"),this._fullViewportDirty=!0,(0,d.C)(this._nearFar,e.nearFar),this.notifyChange("_nearFar"),this._fov=e.fov,this.row=e.row,this.column=e.column,this.rows=e.rows,this.columns=e.columns,this.relativeElevation=e.relativeElevation;let t=e;return this._viewDirty=t._viewDirty,this._viewDirty||((0,I.C)(this._viewMatrix,e.viewMatrix),this.notifyChange("_viewMatrix")),this._viewProjectionDirty=!0,this._frustumDirty=t._frustumDirty,this._frustumDirty||=((0,O.C)(this._frustum,e.frustum),!1),t._viewInverseTransposeMatrixDirty?this._viewInverseTransposeMatrixDirty=!0:((0,I.C)(this._viewInverseTransposeMatrix,e.viewInverseTransposeMatrix),this._viewInverseTransposeMatrixDirty=!1),this.pixelRatio=e.pixelRatio,this.pixelScale=e.pixelScale,this}copyViewFrom(e){this.eye=e.eye,this.center=e.center,this.up=e.up,this.fov=e.fov}clone(){return(new j).copyFrom(this)}equals(e){return(0,M.t2)(this.eye,e.eye)&&(0,M.t2)(this.center,e.center)&&(0,M.t2)(this.up,e.up)&&(0,N.t2)(this._viewport,e.viewport)&&(0,N.t2)(this._padding,e.padding)&&(0,d.t2)(this.nearFar,e.nearFar)&&this._fov===e.fov&&this.pixelRatio===e.pixelRatio&&this.relativeElevation===e.relativeElevation&&this.row===e.row&&this.column===e.column&&this.rows===e.rows&&this.columns===e.columns}equalsView(e){return(0,M.t2)(this.eye,e.eye)&&(0,M.t2)(this.center,e.center)&&(0,M.t2)(this.up,e.up)&&this._fov===e.fov}almostEquals(e){let t=Math.max(1,1/this.pixelRatio,1/e.pixelRatio);if(Math.abs(e.fov-this._fov)>=.001||(0,N.hG)(e.screenPadding,this.screenPadding)>=t||(0,N.hG)(this.screenViewport,e.screenViewport)>=t||this.row!==e.row||this.column!==e.column||this.rows!==e.rows||this.columns!==e.columns)return!1;(0,M.jb)(Z,e.eye,e.center),(0,M.jb)($,this.eye,this.center);let r=(0,M.Om)(Z,$),i=(0,M.uE)(Z),n=(0,M.uE)($),o=5e-4;return r*r>=.9999999999*i*n&&(0,M.lo)(e.eye,this.eye)<Math.max(i,n)*o*o}computeRenderPixelSizeAt(e){return this.computeRenderPixelSizeAtDistance(this._viewDirectionDistance(e))}computeRenderPixelSizeAtDistance(e){return e*this.renderPixelSizePerDistance}computeScreenPixelSizeAt(e){return this.computeScreenPixelSizeAtDistance(this._viewDirectionDistance(e))}_viewDirectionDistance(e){return Math.abs((0,L.gr)(this.viewForward,(0,M.Re)(Z,e,this.eye)))}computeScreenPixelSizeAtDistance(e){return e*this.screenPixelSizePerDistance}computeDistanceFromRadius(e,t){return e/Math.tan(Math.min(this.fovX,this.fovY)/(2*(t||1)))}getScreenCenter(e=(0,F.gs)()){return e[0]=(this.padding[3]+this.width/2)/this.pixelRatio,e[1]=(this.padding[0]+this.height/2)/this.pixelRatio,e}getRenderCenter(e,t=.5,r=.5){return e[0]=this.padding[3]+this.width*t,e[1]=this.padding[2]+this.height*r,e[2]=.5,e}setGLViewport(e){let t=this.viewport,r=this.padding;e.setViewport(t[0]-r[3],t[1]-r[2],t[2]+r[1]+r[3],t[3]+r[0]+r[2])}applyProjection(e,t){e!==G&&(0,M.C)(G,e),G[3]=1,(0,N.Z0)(G,G,this.projectionMatrix);let r=Math.abs(G[3]);(0,M.hs)(G,G,1/r);let i=this.fullViewport;t[0]=(0,a.Cc)(0,i[0]+i[2],.5+.5*G[0]),t[1]=(0,a.Cc)(0,i[1]+i[3],.5+.5*G[1]),t[2]=.5*(G[2]+1),t[3]=r}unapplyProjection(e,t){let r=this.fullViewport;G[0]=(e[0]/(r[0]+r[2])*2-1)*e[3],G[1]=(e[1]/(r[1]+r[3])*2-1)*e[3],G[2]=(2*e[2]-1)*e[3],G[3]=e[3],null!=this.inverseProjectionMatrix&&((0,N.Z0)(G,G,this.inverseProjectionMatrix),t[0]=G[0],t[1]=G[1],t[2]=G[2])}projectToScreen(e,t){return null==this.projectToRenderScreen(e,q)?null:(this.renderToScreen(q,t),t)}projectToRenderScreen(e,t){if(G[0]=e[0],G[1]=e[1],G[2]=e[2],G[3]=1,(0,N.Z0)(G,G,this.viewProjectionMatrix),0===G[3])return null;let r=G;(0,M.hs)(r,r,1/Math.abs(G[3]));let i=this.fullViewport,n=(0,a.Cc)(0,i[0]+i[2],.5+.5*r[0]),o=(0,a.Cc)(0,i[1]+i[3],.5+.5*r[1]);return"x"in t?(t.x=n,t.y=o):(t[0]=n,t[1]=o,t.length>2&&(t[2]=.5*(r[2]+1))),t}unprojectFromScreen(e,t){return this.unprojectFromRenderScreen(this.screenToRender(e,q),t)}unprojectFromRenderScreen(e,t){if((0,I.lw)(W,this.projectionMatrix,this.viewMatrix),!(0,I.B8)(W,W))return null;let r=this.fullViewport;return G[0]=2*(e[0]-r[0])/r[2]-1,G[1]=2*(e[1]-r[1])/r[3]-1,G[2]=2*e[2]-1,G[3]=1,(0,N.Z0)(G,G,W),0===G[3]?null:(t[0]=G[0]/G[3],t[1]=G[1]/G[3],t[2]=G[2]/G[3],t)}constrainWindowSize(e,t,r,i){let n=e*this.pixelRatio,o=t*this.pixelRatio,a=Math.max(n-r/2,0),s=Math.max(this.fullHeight-o-i/2,0),l=-Math.min(n-r/2,0),c=-Math.min(this.fullHeight-o-i/2,0),u=r-l- -Math.min(this.fullWidth-n-r/2,0),d=i-c- -Math.min(o-i/2,0);return[Math.round(a),Math.round(s),Math.round(u),Math.round(d)]}computeUp(e){1===e?this._computeUpGlobal():this._computeUpLocal()}screenToRender(e,t){let r=e[0]*this.pixelRatio,i=this.fullHeight-e[1]*this.pixelRatio;return t[0]=r,t[1]=i,t}renderToScreen(e,t){let r=e[0]/this.pixelRatio,i=(this.fullHeight-e[1])/this.pixelRatio;t[0]=r,t[1]=i}sphereFrustumCoverage(e,t){let{center:r,eye:i,distance:n,fovY:o}=this,a=Math.abs(Math.PI/2-H(t,r,i));return e.frustumCoverage(a,n,o)}_computeUpGlobal(){(0,M.Re)(Z,this.center,this.eye);let e=(0,M.Bw)(this.center);e<1?(0,M.t2)(this._up,T.Cb)&&((0,M.C)(this._up,T.Cb),this._markViewDirty(),this.notifyChange("_up")):Math.abs((0,M.Om)(Z,this.center))>.9999*(0,M.Bw)(Z)*e||((0,M.$A)($,Z,this.center),(0,M.$A)($,$,Z),(0,M.S8)($,$),(0,M.t2)(this._up,$)||((0,M.C)(this._up,$),this.notifyChange("_up"),this._markViewDirty()))}_computeUpLocal(){(0,M.oW)(Z,this.eye,this.center),Math.abs(Z[2])<=.9999&&((0,M.hs)(Z,Z,Z[2]),(0,M.hZ)(Z,-Z[0],-Z[1],1-Z[2]),(0,M.S8)(Z,Z),(0,M.t2)(this._up,Z)||((0,M.C)(this._up,Z),this.notifyChange("_up"),this._markViewDirty()))}_compareAndSetView(e,t,r){"number"==typeof e[0]&&isFinite(e[0])&&"number"==typeof e[1]&&isFinite(e[1])&&"number"==typeof e[2]&&isFinite(e[2])?(0,M.t2)(e,t)||((0,M.C)(t,e),this._markViewDirty(),this.notifyChange(r)):R.A.getLogger("esri.views.3d.webgl-engine.lib.RenderCamera").warn("RenderCamera vector contains invalid number, ignoring value")}_markViewDirty(){this._viewDirty=!0,this._frustumDirty=!0,this._viewProjectionDirty=!0}_recomputeFrustum(){this._frustumDirty&&=((0,O.ui)(this.viewMatrix,this.projectionMatrix,this._frustum),!1)}_ensureViewClean(){this._viewDirty&&((0,I.t5)(this._viewMatrix,this.eye,this.center,this.up),this.notifyChange("_viewMatrix"),this._viewDirty=!1,this._viewInverseTransposeMatrixDirty=!0)}};(0,o.Cg)([(0,u.MZ)()],k.prototype,"_viewport",void 0),(0,o.Cg)([(0,u.MZ)()],k.prototype,"_padding",void 0),(0,o.Cg)([(0,u.MZ)()],k.prototype,"_fov",void 0),(0,o.Cg)([(0,u.MZ)()],k.prototype,"_nearFar",void 0),(0,o.Cg)([(0,u.MZ)()],k.prototype,"_viewDirty",void 0),(0,o.Cg)([(0,u.MZ)()],k.prototype,"_viewMatrix",void 0),(0,o.Cg)([(0,u.MZ)()],k.prototype,"pixelRatio",null),(0,o.Cg)([(0,u.MZ)()],k.prototype,"_pixelRatio",void 0),(0,o.Cg)([(0,u.MZ)()],k.prototype,"pixelScale",void 0),(0,o.Cg)([(0,u.MZ)()],k.prototype,"row",void 0),(0,o.Cg)([(0,u.MZ)()],k.prototype,"column",void 0),(0,o.Cg)([(0,u.MZ)()],k.prototype,"_rows",void 0),(0,o.Cg)([(0,u.MZ)()],k.prototype,"rows",null),(0,o.Cg)([(0,u.MZ)()],k.prototype,"_columns",void 0),(0,o.Cg)([(0,u.MZ)()],k.prototype,"columns",null),(0,o.Cg)([(0,u.MZ)()],k.prototype,"eye",null),(0,o.Cg)([(0,u.MZ)()],k.prototype,"center",null),(0,o.Cg)([(0,u.MZ)()],k.prototype,"_center",void 0),(0,o.Cg)([(0,u.MZ)()],k.prototype,"up",null),(0,o.Cg)([(0,u.MZ)()],k.prototype,"_up",void 0),(0,o.Cg)([(0,u.MZ)()],k.prototype,"viewMatrix",null),(0,o.Cg)([(0,u.MZ)({readOnly:!0})],k.prototype,"inverseViewMatrix",null),(0,o.Cg)([(0,u.MZ)({readOnly:!0})],k.prototype,"viewForward",null),(0,o.Cg)([(0,u.MZ)({readOnly:!0})],k.prototype,"viewUp",null),(0,o.Cg)([(0,u.MZ)({readOnly:!0})],k.prototype,"viewRight",null),(0,o.Cg)([(0,u.MZ)({readOnly:!0})],k.prototype,"nearFar",null),(0,o.Cg)([(0,u.MZ)()],k.prototype,"near",null),(0,o.Cg)([(0,u.MZ)()],k.prototype,"far",null),(0,o.Cg)([(0,u.MZ)()],k.prototype,"viewport",null),(0,o.Cg)([(0,u.MZ)({readOnly:!0})],k.prototype,"screenViewport",null),(0,o.Cg)([(0,u.MZ)({readOnly:!0})],k.prototype,"screenPadding",null),(0,o.Cg)([(0,u.MZ)()],k.prototype,"x",null),(0,o.Cg)([(0,u.MZ)()],k.prototype,"y",null),(0,o.Cg)([(0,u.MZ)()],k.prototype,"width",null),(0,o.Cg)([(0,u.MZ)()],k.prototype,"height",null),(0,o.Cg)([(0,u.MZ)()],k.prototype,"fullWidth",null),(0,o.Cg)([(0,u.MZ)()],k.prototype,"fullHeight",null),(0,o.Cg)([(0,u.MZ)({readOnly:!0})],k.prototype,"_aspect",null),(0,o.Cg)([(0,u.MZ)()],k.prototype,"padding",null),(0,o.Cg)([(0,u.MZ)({readOnly:!0})],k.prototype,"projectionMatrix",null),(0,o.Cg)([(0,u.MZ)({readOnly:!0})],k.prototype,"inverseProjectionMatrix",null),(0,o.Cg)([(0,u.MZ)()],k.prototype,"fov",null),(0,o.Cg)([(0,u.MZ)()],k.prototype,"fovX",null),(0,o.Cg)([(0,u.MZ)()],k.prototype,"fovY",null),(0,o.Cg)([(0,u.MZ)()],k.prototype,"viewInverseTransposeMatrix",null),(0,o.Cg)([(0,u.MZ)({readOnly:!0})],k.prototype,"_projectionMatrixInternal",null),(0,o.Cg)([(0,u.MZ)()],k.prototype,"relativeElevation",void 0),k=j=(0,o.Cg)([(0,u.$K)("esri.views.3d.webgl.RenderCamera")],k);const G=(0,z.vt)(),W=(0,w.vt)(),Z=(0,T.vt)(),$=(0,T.vt)(),q=(0,F.r_)();r(49718),r(6867),r(16396),(0,w.vt)(),(0,T.vt)(),(0,T.vt)(),(0,T.vt)();var Y=r(5443),X=r(39829),J=r(95108);function K(e,t,r,i){let n=function(e,t){let r=0===t||2===t?0:1,i=e[t],n=0===t||1===t?1:-1,o=+(0===r);return(e,t,a)=>{if(t[r]<i&&a[r]<i)return 1===n?0:1;if(t[r]>i&&a[r]>i)return+(1===n);let s=(a[o]-t[o])/(a[r]-t[r]),l=t[o]+s*(i-t[r]);return e[r]=i,e[o]=l,(t[r]<i?1:-1)*n>0?2:3}}(r,i);if(e.length=0,t.length){1===n(ee,t[0],t[0])&&Q(e,t[0]);for(let r=0;r<t.length;r++){let i=t[r===t.length-1?0:r+1];switch(n(ee,t[r],i)){case 1:Q(e,i);break;case 3:Q(e,(0,B.o8)(ee));break;case 2:Q(e,(0,B.o8)(ee)),Q(e,i)}}}}function Q(e,t){0!==e.length&&(0,d.aI)(e.at(-1),t)||e.push(t)}const ee=(0,B.vt)();var te=r(11964),re=r(27921);const ie=(0,T.vt)(),ne=(0,T.vt)();function oe(){return{direction:(0,T.vt)(),up:(0,T.vt)()}}function ae(e,t,r,i,n){let o=(0,M.S8)(ie,e),s=(0,M.Om)(o,i),l=s>0;s=Math.abs(s),s>.99&&(s=Math.abs((0,M.Om)(t,i)),s<.99?((0,M.C)(o,t),l&&(0,M.hs)(o,o,-1)):o=null);let c=0;if(o){(0,M.hs)(ne,i,(0,M.Om)(i,o)),(0,M.Re)(o,o,ne);let e=(0,M.Om)(o,n)/((0,M.Bw)(o)*(0,M.Bw)(n));(0,M.$A)(ne,o,n),c=((0,M.Om)(ne,i)>0?1:-1)*(0,a.KJ)((0,a.XM)(e))}let u=(0,a.KJ)((0,a.XM)(-(0,M.Om)(i,e)/(0,M.Bw)(e)));return r?(r.heading=c,r.tilt=u,r):{heading:c,tilt:u}}function se(e,t,r,i){(0,M.Re)(le,r,t),!(0,re.T7)(i,(0,te.LV)(t,le),e)&&e!==r&&(0,M.C)(e,r)}const le=(0,T.vt)(),ce=(0,T.fA)(0,1,0),ue=(0,T.fA)(0,0,1),de=(0,w.vt)(),he=(0,T.vt)(),fe=(0,T.vt)();function me(e,t,r,i=oe()){let{direction:n,up:o}=i;return(0,I.N9)(de,-(0,a.kU)(t)),(0,I.eL)(de,de,(0,a.kU)(r)),(0,M.Z0)(n,ue,de),(0,M.hs)(n,n,-1),(0,M.Z0)(o,ce,de),i}function pe(e,t,r,i,n){let o=t.lines[11].direction,a=(n-r.getAltitude(i))/o[2];(0,M.Ln)(e,i,o,a)}const ve=(0,T.vt)();Object.freeze(Object.defineProperty({__proto__:null,directionToHeadingTilt:function(e,t,r,i){return ae(t,r,i,ue,ce)},eyeForCenterWithHeadingTilt:function(e,t,r,i){let n=me(0,r,i),o=(0,T.vt)();return(0,M.hs)(o,n.direction,-t),(0,M.WQ)(o,o,e),{up:n.up,eye:o,heading:r,tilt:i}},eyeTiltToLookAtTilt:function(e){return(0,a.kU)(e)},headingTiltToDirectionUp:me,lookAtTiltToEyeTilt:function(e){return(0,a.KJ)(e)},toArea:function(e,t){let r=e.frustum,{renderCoordsHelper:i}=e,n=i.getAltitude(t),o=e.spatialReference,a=e.state.camera.eye,s=[],l=r.planes[5];for(let e=0;e<4;e++){let t=r.lines[e];i.intersectInfiniteManifold((0,P.LV)(t.origin,t.direction),n,ve)||pe(ve,r,i,t.endpoint,n),se(ve,a,ve,l),s.push((0,B.fA)(ve[0],ve[1]))}return function(e,t,r){let i=e.map(e=>((0,M.hZ)(ve,e[0],e[1],0),t.fromRenderCoords(ve,ve,r),[ve[0],ve[1]]));return i.length<=2?new X.A({spatialReference:r}):(i.push(i[0].slice()),(0,J.$3)(i)||i.reverse(),new X.A({rings:[i],spatialReference:r}))}(function(e,t){let r=[],i=[];return K(r,e,t,0),K(i,r,t,1),K(r,i,t,2),K(i,r,t,3),i}(s,i.extent),i,o)},toExtent:function(e,t,r,i,n){let o=e.renderSpatialReference,a=e.spatialReference??t.spatialReference;return(0,C.g)(t,he,o),(0,C.g)(t,fe,o),he[0]-=r/2,fe[0]+=r/2,he[1]-=i/2,fe[1]+=i/2,(0,A.F)(he,o,he,a),(0,A.F)(fe,o,fe,a),n?(n.xmin=he[0],n.ymin=he[1],n.xmax=fe[0],n.ymax=fe[1],n.spatialReference=a):n=new Y.A(he[0],he[1],fe[0],fe[1],a),n}},Symbol.toStringTag,{value:"Module"}));var ge=r(34304),xe=r(52039),_e=r(94008),be=r(28735);class ye{get planes(){return this.frustum}get points(){return this._points}get direction(){return this._direction}get origin(){return this._origin}get boundingSphere(){return this._boundingSphereDirty&&this._updateBoundingSphere(),this._boundingSphere}constructor(e){this.renderCoordsHelper=e,this.frustum=(0,O.vt)(),this._points=(0,O.Qy)(),this.lines=Array(12),this._origin=(0,T.vt)(),this._direction=(0,T.vt)(),this._boundingSphere=new _e.iy,this._altitude=null,this._boundingSphereDirty=!0;for(let e=0;e<12;e++)this.lines[e]={origin:null,direction:(0,T.vt)(),endpoint:null}}update(e){(0,O.ui)(e.viewMatrix,e.projectionMatrix,this.frustum,this._points),(0,M.C)(this._origin,e.eye),(0,M.C)(this._direction,e.viewForward),this._altitude=this.renderCoordsHelper.getAltitude(this._origin),this._updateLines(),this._boundingSphereDirty=!0}get altitude(){return this._altitude}intersectsSphere(e){return(0,O.m7)(this.frustum,e)}isConvexHullOutsideViewPyramid(e,t){return(0,O.Pi)(this.frustum,e,t)}intersectsRay(e){return(0,O.pw)(this.frustum,e)}intersectsLineSegment(e,t){return(0,O.ST)(this.frustum,e,t)}lineSegmentIntersectsViewPyramid(e,t){return(0,O.LJ)(this.frustum,e,t)}intersectsPoint(e){return(0,O.bU)(this.frustum,e)}_updateLines(){let e=this._points;for(let t=0;t<4;t++){let r=t+4;we(this.lines[t],e[t],e[r]),we(this.lines[t+4],e[t],3===t?e[0]:e[t+1]),we(this.lines[t+8],e[r],3===t?e[4]:e[r+1])}}_updateBoundingSphere(){let{origin:e}=this,t=Te;(0,M.S8)(t,this.direction);let r=Me;(0,M.jb)(r,this.points[4],e);let i=.5*(0,M.Om)(r,r)/(0,M.Om)(t,r),n=this._boundingSphere;n.center=(0,M.Ln)(Se,e,t,i),n.radius=i}static{this.planePointIndices=O.c8}static{this.nearFarLineIndices=[[0,4],[1,5],[2,6],[3,7]]}}function we(e,t,r){e.origin=t,e.endpoint=r,(0,M.oW)(e.direction,t,r)}const Me=(0,T.vt)(),Te=(0,T.vt)(),Se=(0,T.vt)();r(86211);const Ce=(0,T.fA)(5802e-9,13558e-9,331e-7),Ae=(0,T.fA)(195e-8,5643e-9,255e-9);(0,T.fA)(Ce[0]+Ae[0],Ce[1]+Ae[1],Ce[2]+Ae[2]);class Ee{constructor(e=1/0,t=-1/0){this.near=e,this.far=t}set(e,t){this.near=e,this.far=t}union(e){return null!=e&&(this.near=Math.min(this.near,e.near),this.far=Math.max(this.far,e.far)),this}within(e){return this.near<=e&&e<=this.far}equals(e){return this.near===e.near&&this.far===e.far}static{this.Zero=new Ee(0,0)}static{this.Infinite=new Ee}}(0,T.vt)(),(0,T.vt)(),new _e.iy,(0,P.vt)(),new Y.A({xmin:0,ymin:0,zmin:0,xmax:0,ymax:0,zmax:0});var Ie=r(32728);const Oe=(0,T.fA)(0,0,1),Pe=(0,M.S8)((0,T.vt)(),(0,T.fA)(1,1,1)),De=(0,w.vt)(),Re=(0,T.vt)(),Fe=(0,T.vt)();function Be(e,t,r,i=oe()){(0,M.$A)(Re,e,Oe),0===(0,M.Om)(Re,Re)&&(0,M.$A)(Re,e,Pe),(0,I.$0)(De,-(0,a.kU)(t),e),(0,I.e$)(De,De,-(0,a.kU)(r),Re);let{up:n,direction:o}=i;return(0,M.$A)(n,Re,e),(0,M.S8)(n,n),(0,M.Z0)(n,n,De),(0,M.S8)(o,e),(0,M.ze)(o,o),(0,M.Z0)(o,o,De),i}function Ne(e){let t=e[1];e[1]=-e[2],e[2]=t}function ze(e,t){return e.up=Be(t,e.heading,e.tilt).up,e}function Le(e,t){let{renderCoordsHelper:r,state:i}=e;if(1!==i.viewingMode)return 1;let n=r.getAltitude(t),o=r.referenceEllipsoid.radius,s=1+(0,M.Io)(i.camera.eye,t)/(o+n),l=Math.sqrt(s*s-1),{minCurvature:c,maxCurvature:u,minSamples:d,maxSamples:h}=Ve,f=(0,a.qE)((l-c)/(u-c),0,1);return Math.round((0,a.Cc)(d,h,f))}function He(e,t){let r=[],i=[],n=(0,ge.FD)();for(let o=0;o<e.length;o++){let a=e[o],s=o===e.length-1?e[0]:e[o+1],l=(0,te.Cr)(a,s,$e),c=(0,re.vE)(t,l.origin,l.vector,0,We);switch(c){case 2:r.push(a);break;case 3:i.push(a);break;case 0:case 1:{let[e,o,s]=0===c?[1,r,i]:[-1,i,r],l=(0,re.Qj)(t),u=(0,M.Ln)((0,T.vt)(),We,l,e*n),d=(0,M.Ln)((0,T.vt)(),We,l,e*-n);o.push(a),o.push(u),s.push(d)}}}let o=[];return r.length&&o.push(r),i.length&&o.push(i),o}const Ve={minCurvature:(0,a.kU)(5),maxCurvature:(0,a.kU)(50),minSamples:1,maxSamples:6},Ue=(0,T.fA)(1,0,0),je=(0,T.fA)(0,1,0),ke=(0,T.vt)(),Ge=(0,T.vt)(),We=(0,T.vt)(),Ze=new _e.iy,$e=(0,te.vt)(),qe=(0,z.vt)();Object.freeze(Object.defineProperty({__proto__:null,directionToHeadingTilt:function(e,t,r,i){let n=Re,o=Fe;return(0,M.S8)(n,e),(0,M.$A)(Fe,n,Oe),0===(0,M.Om)(Fe,Fe)&&(0,M.$A)(Fe,n,Pe),(0,M.$A)(o,Fe,n),ae(t,r,i,n,o)},eyeForCenterWithHeadingTilt:function(e,t,r,i){let n={eye:(0,T.vt)(),up:null,tilt:i,heading:r},o=Re;o[0]=e[0],o[1]=e[2],o[2]=-e[1];let s,l=t,c=(0,a.kU)(r),u=(0,a.kU)(i),d=Math.sin(c),h=Math.cos(c),f=Math.sin(u),m=Math.cos(u),p=(0,M.Bw)(o);if(Math.abs(u)<1e-8)s=l+p;else{let e=p/f,t=(0,a.YN)(l/e),r=Math.PI-u-t;s=e*Math.sin(r)}let v=m*l,g=l*l*(f*f),x=h*h*g,_=s-v,b=_*_,y=x*(x+b-o[1]*o[1]);if(y<0)return(0,M.hs)(n.eye,o,s/p),n.tilt=0,ze(n,e);let w,S=Math.sqrt(y),C=o[1]*_,A=x+b;if(w=h>0?-S+C:S+C,Math.abs(A)<1e-8)return p<1e-8?(n.eye[0]=0,n.eye[1]=0,n.eye[2]=l):(0,M.hs)(n.eye,o,s/p),n.tilt=0,Ne(n.eye),ze(n,e);n.eye[1]=w/A;let E=d*d*g,I=f*l,O=h*I*n.eye[1],P=n.eye[1]*n.eye[1],D=1-P,R=Math.sqrt(D),F=x*P+E-2*O*R*_+D*b;return Math.abs(F)<1e-8?((0,M.hs)(n.eye,o,s/p),n.tilt=0,Ne(n.eye),ze(n,e)):(n.eye[0]=(D*(s*o[0]-v*o[0])-I*R*(o[0]*n.eye[1]*h+o[2]*d))/F,n.eye[2]=(D*(s*o[2]-v*o[2])-I*R*(o[2]*n.eye[1]*h-o[0]*d))/F,(0,M.hs)(n.eye,n.eye,s),Ne(n.eye),ze(n,e))},eyeTiltToLookAtTilt:function(e,t,r){let i=(0,a.kU)(e),n=(0,M.Bw)(t);return(0,a.YN)(r/(n/Math.sin(i)))+i},getCurvatureSamples:Le,headingTiltToDirectionUp:Be,lookAtTiltToEyeTilt:function(e,t,r){let i=(0,M.Bw)(t),n=Math.sqrt(r*r+i*i-2*r*i*Math.cos(Math.PI-e)),o=(0,a.YN)(r/(n/Math.sin(e)));return(0,a.KJ)(e-o)},toArea:function(e,t){let{renderCoordsHelper:r}=e,i=e.state.camera.clone(),n=new ye(r);i.near=2,n.update(i);let o=r.getAltitude(t),s=e.spatialReference,l=i.eye,c=function(e){let{renderCoordsHelper:t,state:r}=e,i=Math.abs(t.getAltitude(r.camera.center));return Ze.radius=t.referenceEllipsoid.radius+i,r.camera.sphereFrustumCoverage(Ze,t)}(e),u=Le(e,t),d=i.aboveGround,h=n.planes[5],f=[],m=(0,re.O_)(T.uY,Ue,(0,re.vt)()),p=(0,re.O_)(T.uY,je,(0,re.vt)());(0,N.hZ)(qe,0,0,0,0);for(let e=0;e<4;e++){let t=1===e&&!d||3===e&&d?1-c:0,i=1===e&&d||3===e&&!d?c:1,s=n.lines[e],v=n.lines[3===e?0:e+1];for(let n=0;n<u;n++){let c=n/u,d=1===e?1-(1-c)**2:3===e?c**2:c,g=0===n?0:(0,a.Cc)(t,i,d),x=(0,M.Cc)(Ge,s.origin,v.origin,g),_=(0,Ie.nu)(s.direction,v.direction,g,ke);r.intersectManifoldClosestSilhouette((0,P.LV)(x,_),o,We),se(We,l,We,h),f.push((0,T.o8)(We)),0!==f.length&&(0,M.lo)(f.at(-1),We);let b=+!!(0,re.BX)(m,We)|((0,re.BX)(p,We)?2:0);qe[b]=1}}f.length>2&&(0,M.lo)(f[0],f.at(-1));let v=function(e,t,r){let i=2*(0,ge.FD)();return e.map(e=>{let n=[],o=!1;for(let a of e)t.fromRenderCoords(a,We,r),Math.abs(a[0])<i&&Math.abs(a[1])<i?(n.push([null,We[1]]),n.push([null,We[1]]),o=!0):n.push([We[0],We[1]]);if(o)for(let e=0;e<n.length;e++){let t=n[e];if(null!=t[0])continue;let r=n[e+1];t[0]=n.at(0===e?-1:e-1)[0],e++,r[0]=n.at(e===n.length-1?0:e+1)[0]}return n.push(n[0]),(0,J.$3)(n)||n.reverse(),n})}((0,N.m3)(qe)>1?function(e,t){let r=[];for(let i of e)r.push(...He(i,t));return r}(He(f,m),p):[f],r,s);return new X.A({rings:v,spatialReference:s})},toExtent:function(e,t,r,i,n){let o,s,l,c,u=t.latitude,d=(0,E.tO)(e.spatialReference).radius,h=t.longitude,f=function(e,t,r){let i=t/r,n=(0,a.kU)(e),o=Math.sin(i/2),s=Math.cos(n),l=2*(0,a.YN)(Math.sqrt(o*o/(s*s)));return(0,a.KJ)(l)}(u,r,d)/2;o=h-f,s=h+f;let m=(0,a.kU)(u),v=(1+Math.sin(m))/(1-Math.sin(m)),g=(v+1)*Math.tan(i/d/2),x=g*g;function _(e){let t=Math.PI/2;return(e=p.uC.normalize(e,-t))>t&&(e=Math.PI-e),e}if(l=1.5*Math.PI-2*Math.atan(.5*(g+Math.sqrt(4*v+x))),c=l+i/d,l=_(l),c=_(c),c<l){let e=c;c=l,l=e}if(l=Math.max((0,a.KJ)(l),-90),c=Math.min((0,a.KJ)(c),90),s=xe.Y_.monotonic(o,s),s-o>180){let e=(s-o-180)/2;o+=e,s-=e}let b=e.spatialReference&&e.spatialReference.isGeographic?e.spatialReference:S.A.WGS84;return n?(n.xmin=o,n.ymin=l,n.xmax=s,n.ymax=c,n.spatialReference=b):n=new Y.A(o,l,s,c,b),e.spatialReference&&e.spatialReference.isWebMercator&&(0,be.Gh)(n,!1,n),n}},Symbol.toStringTag,{value:"Module"}));const Ye="composite-color",Xe=["final-color",Ye,"opaque-color","transparent-color"],Je={ANTIALIASING:"antialiasing",CUTFILL:"cutfill",CUTFILL_COMPUTATION:"cutfill-computation",FOCUSAREA:"focusarea",FOCUSAREA_MASK:"focusarea-mask",GAUSSIAN_SPLAT:"gaussian",GAUSSIAN_SPLAT_DEPTH:"gaussian-depth",GROUND_DEPTH:"ground-depth",HIGHLIGHT:"highlight",LASERLINES:"laserlines",TRANSPARENT_NO_DEPTH:"transparent-no-depth",MAGNIFIER:"magnifier",OCCLUDED:"occluded",OPAQUE_OCCLUSION_QUERY:"opaque-occlusion-query",OPAQUE_ENVIRONMENT:"opaque-environment",TRANSPARENT_ENVIRONMENT:"transparent-environment",AMBIENT_ILLUMINATION:"ambient-illumination",SHADOW_ACCUMULATION:"shadow-accumulation",SHADOWMAP:"shadowmap",SHADOW_HIGHLIGHT:"shadow-highlight",VOXEL:"voxel",VIEWSHED:"viewshed",OBJECT_AND_LAYER_ID_COLOR:"olid"};Array.from(Object.values(Je)).concat(Xe),(0,T.vt)();var Ke=r(49186),Qe=r(10107),et=r(64108),tt=r(44208),rt=(r(17676),r(94656)),it=r(63907);r(93637),r(4576),"layout.centroid.smooth.case.mat2x2.mat2x3.mat2x4.mat3x2.mat3x3.mat3x4.mat4x2.mat4x3.mat4x4.uint.uvec2.uvec3.uvec4.samplerCubeShadow.sampler2DArray.sampler2DArrayShadow.isampler2D.isampler3D.isamplerCube.isampler2DArray.usampler2D.usampler3D.usamplerCube.usampler2DArray.coherent.restrict.readonly.writeonly.resource.atomic_uint.noperspective.patch.sample.subroutine.common.partition.active.filter.image1D.image2D.image3D.imageCube.iimage1D.iimage2D.iimage3D.iimageCube.uimage1D.uimage2D.uimage3D.uimageCube.image1DArray.image2DArray.iimage1DArray.iimage2DArray.uimage1DArray.uimage2DArray.image1DShadow.image2DShadow.image1DArrayShadow.image2DArrayShadow.imageBuffer.iimageBuffer.uimageBuffer.sampler1DArray.sampler1DArrayShadow.isampler1D.isampler1DArray.usampler1D.usampler1DArray.isampler2DRect.usampler2DRect.samplerBuffer.isamplerBuffer.usamplerBuffer.sampler2DMS.isampler2DMS.usampler2DMS.sampler2DMSArray.isampler2DMSArray.usampler2DMSArray.trunc.round.roundEven.isnan.isinf.floatBitsToInt.floatBitsToUint.intBitsToFloat.uintBitsToFloat.packSnorm2x16.unpackSnorm2x16.packUnorm2x16.unpackUnorm2x16.packHalf2x16.unpackHalf2x16.outerProduct.transpose.determinant.inverse.texture.textureSize.textureProj.textureLod.textureOffset.texelFetch.texelFetchOffset.textureProjOffset.textureLodOffset.textureProjLod.textureProjLodOffset.textureGrad.textureGradOffset.textureProjGrad.textureProjGradOffset".split("."),"precision.highp.mediump.lowp.attribute.const.uniform.varying.break.continue.do.for.while.if.else.in.out.inout.float.int.void.bool.true.false.discard.return.mat2.mat3.mat4.vec2.vec3.vec4.ivec2.ivec3.ivec4.uvec2.uvec3.uvec4.bvec2.bvec3.bvec4.sampler1D.sampler2D.sampler3D.usampler1D.usampler2D.usampler3D.samplerCube.sampler1DShadow.sampler2DShadow.struct.asm.class.union.enum.typedef.template.this.packed.goto.switch.default.inline.noinline.volatile.public.static.extern.external.interface.long.short.double.half.fixed.unsigned.input.output.hvec2.hvec3.hvec4.dvec2.dvec3.dvec4.fvec2.fvec3.fvec4.sampler2DRect.sampler3DRect.sampler2DRectShadow.sizeof.cast.namespace.using".split("."),"<<= >>= ++ -- << >> <= >= == != && || += -= *= /= %= &= ^^ ^= |= ( ) [ ] . ! ~ * / % + - < > & ^ | ? : = , ; { }".split(" "),"abs.acos.all.any.asin.atan.ceil.clamp.cos.cross.dFdx.dFdy.degrees.distance.dot.equal.exp.exp2.faceforward.floor.fract.gl_BackColor.gl_BackLightModelProduct.gl_BackLightProduct.gl_BackMaterial.gl_BackSecondaryColor.gl_ClipPlane.gl_ClipVertex.gl_Color.gl_DepthRange.gl_DepthRangeParameters.gl_EyePlaneQ.gl_EyePlaneR.gl_EyePlaneS.gl_EyePlaneT.gl_Fog.gl_FogCoord.gl_FogFragCoord.gl_FogParameters.gl_FragColor.gl_FragCoord.gl_FragData.gl_FragDepth.gl_FragDepthEXT.gl_FrontColor.gl_FrontFacing.gl_FrontLightModelProduct.gl_FrontLightProduct.gl_FrontMaterial.gl_FrontSecondaryColor.gl_LightModel.gl_LightModelParameters.gl_LightModelProducts.gl_LightProducts.gl_LightSource.gl_LightSourceParameters.gl_MaterialParameters.gl_MaxClipPlanes.gl_MaxCombinedTextureImageUnits.gl_MaxDrawBuffers.gl_MaxFragmentUniformComponents.gl_MaxLights.gl_MaxTextureCoords.gl_MaxTextureImageUnits.gl_MaxTextureUnits.gl_MaxVaryingFloats.gl_MaxVertexAttribs.gl_MaxVertexTextureImageUnits.gl_MaxVertexUniformComponents.gl_ModelViewMatrix.gl_ModelViewMatrixInverse.gl_ModelViewMatrixInverseTranspose.gl_ModelViewMatrixTranspose.gl_ModelViewProjectionMatrix.gl_ModelViewProjectionMatrixInverse.gl_ModelViewProjectionMatrixInverseTranspose.gl_ModelViewProjectionMatrixTranspose.gl_MultiTexCoord0.gl_MultiTexCoord1.gl_MultiTexCoord2.gl_MultiTexCoord3.gl_MultiTexCoord4.gl_MultiTexCoord5.gl_MultiTexCoord6.gl_MultiTexCoord7.gl_Normal.gl_NormalMatrix.gl_NormalScale.gl_ObjectPlaneQ.gl_ObjectPlaneR.gl_ObjectPlaneS.gl_ObjectPlaneT.gl_Point.gl_PointCoord.gl_PointParameters.gl_PointSize.gl_Position.gl_ProjectionMatrix.gl_ProjectionMatrixInverse.gl_ProjectionMatrixInverseTranspose.gl_ProjectionMatrixTranspose.gl_SecondaryColor.gl_TexCoord.gl_TextureEnvColor.gl_TextureMatrix.gl_TextureMatrixInverse.gl_TextureMatrixInverseTranspose.gl_TextureMatrixTranspose.gl_Vertex.greaterThan.greaterThanEqual.inversesqrt.length.lessThan.lessThanEqual.log.log2.matrixCompMult.max.min.mix.mod.normalize.not.notEqual.pow.radians.reflect.refract.sign.sin.smoothstep.sqrt.step.tan.texture2D.texture2DLod.texture2DProj.texture2DProjLod.textureCube.textureCubeLod.texture2DLodEXT.texture2DProjLodEXT.textureCubeLodEXT.texture2DGradEXT.texture2DProjGradEXT.textureCubeGradEXT.textureSize.texelFetch".split("."),new Set(["GL_OES_standard_derivatives","GL_EXT_frag_depth","GL_EXT_draw_buffers","GL_EXT_shader_texture_lod"]),new Map,(0,tt.A)("esri-tests-disable-gpu-memory-measurements"),(0,rt.en)();(0,rt.en)();var nt=r(90644),ot=r(21231),at=r(48852),st=r(42293);const lt=!!(0,tt.A)("esri-tests-disable-gpu-memory-measurements");class ct{constructor(e,t){this._context=e,this._descriptor=t,this.type=2,this._context.instanceCounter.increment(it.vt.Renderbuffer,this);let r=this._context.gl;this.glName=r.createRenderbuffer(),this._context.bindRenderbuffer(this);let{width:i,height:n,internalFormat:o,multisampled:a}=t;a?r.renderbufferStorageMultisample(r.RENDERBUFFER,this.samples,o,i,n):r.renderbufferStorage(r.RENDERBUFFER,o,i,n),this._context.bindRenderbuffer(null)}get descriptor(){return this._descriptor}get samples(){let e=this._descriptor.samples,t=this._context.parameters.maxSamples;return e?Math.min(e,t):t}get usedMemory(){return lt?0:(e=this._descriptor).width<=0||e.height<=0||null==e.internalFormat?0:e.width*e.height*(0,st.MW)(e.internalFormat);var e}resize(e,t){let r=this._descriptor;if(r.width===e&&r.height===t)return;r.width=e,r.height=t;let i=this._context.gl;this._context.bindRenderbuffer(this),r.multisampled?i.renderbufferStorageMultisample(i.RENDERBUFFER,this.samples,r.internalFormat,r.width,r.height):i.renderbufferStorage(i.RENDERBUFFER,r.internalFormat,r.width,r.height),this._context.bindRenderbuffer(null)}dispose(){this._context&&=(this._context.gl.deleteRenderbuffer(this.glName),this._context.instanceCounter.decrement(it.vt.Renderbuffer,this),null)}}class ut{constructor(e,t,r){if(this._context=e,this._level=0,this._glName=null,this._colorAttachments=new Map,this._depthStencilBuffer=null,this._depthStencilTexture=null,e.instanceCounter.increment(it.vt.FramebufferObject,this),null!=t){let r=function(e,t){return dt(t)||ht(t)?t:ft(t)?new ot.A(e,t):function(e){return 3===mt(e)||null!=e&&"samples"in e}(t)?new ct(e,t):null}(e,t);null!=r&&(this._colorAttachments.set(36064,r),dt(r)?this._validateTextureDescriptor(r.descriptor):this._validateRenderbufferDescriptor(r.descriptor)),this._validateColorAttachmentPoint(36064)}if(null!=r)if(function(e){return dt(e)||ft(e)}(r))this._depthStencilTexture=dt(r)?r:new ot.A(e,r),this._validateTextureDescriptor(this._depthStencilTexture.descriptor);else{let t=ht(r)?r:new ct(e,r);this._depthStencilBuffer=t,this._validateRenderbufferDescriptor(t.descriptor)}}get glName(){return this._glName}get colorTexture(){let e=this._colorAttachments.get(36064);return dt(e)?e:null}get depthStencil(){return this._depthStencilTexture||this._depthStencilBuffer}get depthStencilTexture(){return this._depthStencilTexture}get width(){return(this._colorAttachments.get(36064)??this._depthStencilTexture??this._depthStencilBuffer)?.descriptor?.width??0}get height(){return(this._colorAttachments.get(36064)??this._depthStencilTexture??this._depthStencilBuffer)?.descriptor?.height??0}get usedMemory(){return this._colorAttachments.values().reduce((e,t)=>e+t.usedMemory,this.depthStencil?.usedMemory??0)}get level(){return this._level}set level(e){this._level!==e&&(this._level=e,this._glName&&this._context.temporaryBindFramebuffer(this,()=>this._initializeAttachments()))}static{this._MAX_COLOR_ATTACHMENTS=-1}getColorTexture(e){let t=this._colorAttachments.get(e);return t&&dt(t)?t:null}get colorAttachments(){return Array.from(this._colorAttachments.keys())}attachColorTexture(e,t=36064){if(!e)return;this._validateColorAttachmentPoint(t);let{descriptor:r}=e;this._validateTextureDescriptor(r),this.detachColorTexture(t)?.dispose(),this._colorAttachments.set(t,e),this._glName&&(this._context.bindFramebuffer(this),this._framebufferTexture2D(e.glName,t))}detachColorTexture(e=36064){let t=this._colorAttachments.get(e);if(!t)return;let r=dt(t);return this._glName&&this._context.temporaryBindFramebuffer(this,()=>{if(r)this._framebufferTexture2D(null,e);else{let t=this._context.gl;t.framebufferRenderbuffer(t.FRAMEBUFFER,e,t.RENDERBUFFER,null)}}),this._colorAttachments.delete(e),r?t:void 0}detachColorTextures(...e){if(0!==e.length){if(this._glName){let t=this._context.gl;this._context.temporaryBindFramebuffer(this,()=>{e.forEach(e=>{dt(this._colorAttachments.get(e))?this._framebufferTexture2D(null,e):t.framebufferRenderbuffer(t.FRAMEBUFFER,e,t.RENDERBUFFER,null)})})}e.forEach(e=>this._colorAttachments.delete(e))}}setColorTextureTarget(e,t=36064,r=0){let i=this._colorAttachments.get(t);i&&(35866===e?this._framebufferTextureLayer(i.glName,t,36160,r):this._framebufferTexture2D(i.glName,t,e,36160))}attachDepthStencil(e){if(e)switch(e.type){case 1:return this._attachDepthStencilTexture(e);case 2:return this._attachDepthStencilBuffer(e)}}_attachDepthStencilTexture(e){if(null==e)return;let{descriptor:t}=e,{pixelFormat:r,dataType:i}=t;34041!==r&&6402!==r?console.error("Depth/Stencil texture must have a pixel type of DEPTH_STENCIL!"):34041===r&&i!==it.ld.UNSIGNED_INT_24_8?console.error("Depth/Stencil texture must have data type of UNSIGNED_INT_24_8!"):6402===r&&i!==it.ld.UNSIGNED_INT&&i!==it.ld.UNSIGNED_SHORT?console.error("Depth texture must have data type of UNSIGNED_INT or UNSIGNED_SHORT!"):(this._validateTextureDescriptor(t),this._disposeDepthStencilAttachments(),this._glName&&(this._context.bindFramebuffer(this),this._framebufferTexture2D(e.glName,gt(r))),this._depthStencilTexture?.dispose(),this._depthStencilTexture=e)}detachDepthStencilTexture(){let e=this._depthStencilTexture;return e&&this._glName&&this._context.temporaryBindFramebuffer(this,()=>{this._framebufferTexture2D(null,gt(e.descriptor.pixelFormat))}),this._depthStencilTexture=null,e}_attachDepthStencilBuffer(e){if(null==e)return;let t=e.descriptor;if(this._validateRenderbufferDescriptor(t),this._disposeDepthStencilAttachments(),this._glName){this._context.bindFramebuffer(this);let{gl:r}=this._context,i=this._getGLAttachmentPoint(t);r.framebufferRenderbuffer(36160,i,r.RENDERBUFFER,e.glName)}this._depthStencilBuffer=e}detachDepthStencilBuffer(){let e=this._depthStencilBuffer;if(e&&this._glName){let{_context:t}=this,r=t.boundFramebuffer;t.bindFramebuffer(this);let{gl:i}=t,n=this._getGLAttachmentPoint(e.descriptor);i.framebufferRenderbuffer(36160,n,i.RENDERBUFFER,null),t.bindFramebuffer(r)}return this._depthStencilBuffer=null,e}invalidateAttachments(e){let{_context:t}=this;t.temporaryBindFramebuffer(this,()=>t.gl.invalidateFramebuffer(36160,e),!0)}copyToTexture(e,t,r,i,n,o,a){(e<0||t<0||n<0||o<0)&&console.error("Offsets cannot be negative!"),(r<=0||i<=0)&&console.error("Copy width and height must be greater than zero!");let s=a.descriptor;3553!==a.descriptor.target&&console.error("Texture target must be TEXTURE_2D!"),(null==s?.width||null==s?.height||e+r>this.width||t+i>this.height||n+r>s.width||o+i>s.height)&&console.error("Bad dimensions, the current input values will attempt to read or copy out of bounds!");let l=this._context,c=l.bindTexture(a,ot.A.TEXTURE_UNIT_FOR_UPDATES);l.setActiveTexture(ot.A.TEXTURE_UNIT_FOR_UPDATES),l.bindFramebuffer(this),l.gl.copyTexSubImage2D(3553,0,n,o,e,t,r,i),l.bindTexture(c,ot.A.TEXTURE_UNIT_FOR_UPDATES)}readPixels(e,t,r,i,n,o,a){(r<=0||i<=0)&&console.error("Copy width and height must be greater than zero!"),a||console.error("Target memory is not initialized!"),this._context.bindFramebuffer(this),this._context.gl.readPixels(e,t,r,i,n,o,a)}async readPixelsAsync(e,t,r,i,n,o,a,s){let{gl:l}=this._context,c=at.g.createPixelPack(this._context,35041,a.byteLength);this._context.bindBuffer(c);let u=this._context.boundFramebuffer;this._context.bindFramebuffer(this),l.readPixels(e,t,r,i,n,o,0),this._context.unbindBuffer(35051),this._context.bindFramebuffer(u);try{await c.getSubDataAsync(a,void 0,void 0,void 0,s)}finally{c.dispose()}}resize(e,t){if(this.width===e&&this.height===t)return;let r={width:e,height:t};if(pt(r,this._context.parameters.maxTextureSize),this._colorAttachments.forEach(e=>e.resize(r.width,r.height)),this._depthStencilTexture?.resize(r.width,r.height),this._glName&&(pt(r,this._context.parameters.maxRenderbufferSize),this._depthStencilBuffer?.resize(r.width,r.height),(0,rt.en)())){let{gl:e}=this._context;e.checkFramebufferStatus(36160)!==e.FRAMEBUFFER_COMPLETE&&console.error("Framebuffer is incomplete!")}}initializeAndBind(e=36160){let{gl:t}=this._context;this._glName?t.bindFramebuffer(e,this._glName):(this._glName&&t.deleteFramebuffer(this._glName),this._glName=t.createFramebuffer(),t.bindFramebuffer(e,this._glName),this._initializeAttachments(e))}_initializeAttachments(e=36160){let{gl:t}=this._context;if(this._colorAttachments.forEach((t,r)=>{if(dt(t)){let i=vt(t);35866===i?this._framebufferTextureLayer(t.glName,r,e):this._framebufferTexture2D(t.glName,r,i,e)}else if(ht(t)){let i=this._context.gl;i.framebufferRenderbuffer(e,r,i.RENDERBUFFER,t.glName)}}),this._depthStencilBuffer){let r=this._getGLAttachmentPoint(this._depthStencilBuffer.descriptor);t.framebufferRenderbuffer(e,r,t.RENDERBUFFER,this._depthStencilBuffer.glName)}else if(this._depthStencilTexture){let t=gt(this._depthStencilTexture.descriptor.pixelFormat);this._framebufferTexture2D(this._depthStencilTexture.glName,t,vt(this._depthStencilTexture),e)}(0,rt.en)()&&t.checkFramebufferStatus(e)!==t.FRAMEBUFFER_COMPLETE&&console.error("Framebuffer is incomplete!")}_framebufferTexture2D(e,t=36064,r=3553,i=36160){this._context.gl.framebufferTexture2D(i,t,r,e,this._level)}_framebufferTextureLayer(e,t=36064,r=36160,i=0){this._context.gl.framebufferTextureLayer(r,t,e,this._level,i)}_disposeDepthStencilAttachments(){let e=this._context.gl;if(this._depthStencilBuffer){if(this._glName){this._context.bindFramebuffer(this);let t=this._getGLAttachmentPoint(this._depthStencilBuffer.descriptor);e.framebufferRenderbuffer(36160,t,e.RENDERBUFFER,null)}this._depthStencilBuffer=(0,s.WD)(this._depthStencilBuffer)}this._depthStencilTexture&&=(this._glName&&(this._context.bindFramebuffer(this),this._framebufferTexture2D(null,gt(this._depthStencilTexture.descriptor.pixelFormat))),(0,s.WD)(this._depthStencilTexture))}_validateTextureDescriptor(e){3553!==e.target&&34067!==e.target&&35866!==e.target&&console.error("Texture type must be TEXTURE_2D, TEXTURE_2D_ARRAY or TEXTURE_CUBE_MAP!"),pt(e,this._context.parameters.maxTextureSize),this._validateBufferDimensions(e)}_validateRenderbufferDescriptor(e){pt(e,this._context.parameters.maxRenderbufferSize),this._validateBufferDimensions(e)}_validateBufferDimensions(e){e.width<=0&&(e.width=this.width),e.height<=0&&(e.height=this.height),this.width>0&&this.height>0&&(this.width!==e.width||this.height!==e.height)&&console.error("Attachment size must match framebuffer size!")}_getGLAttachmentPoint(e){switch(e.internalFormat){case it.SB.DEPTH_COMPONENT16:case it.SB.DEPTH_COMPONENT24:case it.SB.DEPTH_COMPONENT32F:return 36096;case it.iE.DEPTH24_STENCIL8:case it.iE.DEPTH32F_STENCIL8:return 33306;case 36168:return 36128;default:return 36064}}_validateColorAttachmentPoint(e){if(-1===ut._MAX_COLOR_ATTACHMENTS){let{gl:e}=this._context;ut._MAX_COLOR_ATTACHMENTS=e.getParameter(e.MAX_COLOR_ATTACHMENTS)}let t=e-36064;t+1>ut._MAX_COLOR_ATTACHMENTS&&R.A.getLogger("esri.views.webgl.FrameBufferObject").error("esri.FrameBufferObject",`illegal attachment point for color attachment: ${t+1}. Implementation supports up to ${ut._MAX_COLOR_ATTACHMENTS} color attachments`)}}function dt(e){return 1===mt(e)}function ht(e){return 2===mt(e)}function ft(e){return 0===mt(e)}function mt(e){return null!=e&&"type"in e?e.type:null}function pt(e,t){let r=Math.max(e.width,e.height);if(r>t){R.A.getLogger("esri.views.webgl.FramebufferObject").warnOnce(`Resizing FBO attachment size ${e.width}x${e.height} to device limit ${t}`);let i=t/r;return e.width=Math.round(e.width*i),e.height=Math.round(e.height*i),!1}return!0}function vt(e){return 34067===e.descriptor.target?34069:35866===e.descriptor.target?35866:3553}function gt(e){return 6402===e?36096:33306}var xt=r(67171),_t=(r(21818),r(69397),r(85079));const bt=[new(r(74038)._)("position",2,it.pe.UNSIGNED_SHORT,0,4)];(0,_t.Xk)(bt),r(66289);const yt=new Image;yt.src="data:image/svg+xml,%3C%3Fxml version='1.0' encoding='UTF-8'%3F%3E%3Csvg width='5' height='5' version='1.1' viewBox='0 0 5 5' xmlns='http://www.w3.org/2000/svg'%3E%3Crect width='5' height='5' fill='%23f00' fill-opacity='.5'/%3E%3C/svg%3E%0A",yt.width=5,yt.height=5,yt.decode();let wt=class extends D.A{constructor(e){super(e),this.view=null,this.consumes={required:[]},this.produces=Ye,this._dirty=!0}initialize(){this.addHandles([(0,l.wB)(()=>this.view.ready,e=>{e&&this.view.stage?.renderer.addRenderNode(this)},l.Vh)])}destroy(){this.view.stage?.renderer?.removeRenderNode(this)}precompile(){}render(){throw new Ke.A("RenderNode:render-function-not-implemented","render() is not implemented.")}get camera(){return this.view.state.camera.clone()}get sunLight(){return this.bindParameters.lighting.legacy}get gl(){return this.view.stage.renderView.renderingContext.gl}get techniques(){return this.view.stage.renderView.techniques}acquireOutputFramebuffer(){let e=this._frameBuffer?.getTexture()?.descriptor,t=this.view.stage.renderer.fboCache.acquire(e?.width??640,e?.height??480,this.produces);return this._bind(t),t}bindRenderTarget(){return this._bind(this._frameBuffer),this._frameBuffer}_bind({fbo:e}){e.initializeAndBind(),this.gl.drawBuffers(function(e){return e?e.colorAttachments.length>0?e.colorAttachments:[0]:[1029]}(e))}requestRender(e){switch(e){case 2:this.view.state.fading=!0;case 1:this.view.stage?.renderView.requestRender(e);case 0:case void 0:this._dirty=!0}}resetWebGLState(){this.renderingContext.resetState(),this.renderingContext.bindFramebuffer(this._frameBuffer?.fbo)}get fboCache(){return this.view.stage.renderer.fboCache}get bindParameters(){return this.renderContext.bind}get renderingContext(){return this.view.stage.renderView.renderingContext}get renderContext(){return this.view.stage?.renderer.renderContext}updateAnimation(e){return!!this._dirty&&(this._dirty=!1,!0)}doRender(e){this._frameBuffer=e.find(({name:e})=>e===this.produces);try{return this.render(e)}finally{this._frameBuffer=null}}get requireGeometryDepth(){return!1}queryDepthRange(e){return null}get input(){return this._frameBuffer}};(0,o.Cg)([(0,Qe.MZ)({constructOnly:!0})],wt.prototype,"view",void 0),(0,o.Cg)([(0,Qe.MZ)({constructOnly:!0})],wt.prototype,"consumes",void 0),(0,o.Cg)([(0,Qe.MZ)()],wt.prototype,"produces",void 0),(0,o.Cg)([(0,Qe.MZ)({readOnly:!0})],wt.prototype,"techniques",null),wt=(0,o.Cg)([(0,et.$)("esri.views.3d.webgl.RenderNode")],wt);let Mt=class extends wt{constructor(){super(...arguments),this.consumes={required:["normals"]},this.produces="disabled"}get enabled(){return!this.destroying&&!this.destroyed&&this.produces===Je.AMBIENT_ILLUMINATION}get _belowMaxElevation(){return(this.view.state.camera.relativeElevation??1/0)<5e5}get _useGlobalIllumination(){return this._belowMaxElevation&&this.view.stage.renderer.isFeatureEnabled(11)}get _useSSAO(){return this._belowMaxElevation&&this.view.stage.renderer.isFeatureEnabled(3)}_enable(){this.produces=Je.AMBIENT_ILLUMINATION,this.requestRender(1)}_disable(){this.produces="disabled",this.requestRender(1)}};(0,o.Cg)([(0,u.MZ)()],Mt.prototype,"consumes",void 0),(0,o.Cg)([(0,u.MZ)()],Mt.prototype,"produces",void 0),Mt=(0,o.Cg)([(0,u.$K)("esri.views.3d.webgl-engine.effects.AmbientIllumination")],Mt);var Tt=r(15581),St=r(13840),Ct=r(42958),At=r(95774);let Et=class extends Ct.w{constructor(){super(...arguments),this.shader=new St.r(At.S,()=>r.e(1285).then(()=>r(91285)))}initializePipeline(){return(0,nt.Ey)({colorWrite:nt.kn})}};Et=(0,o.Cg)([(0,u.$K)("esri.views.3d.webgl-engine.effects.ssao.SSAOBlurTechnique")],Et);var It=r(65786);class Ot extends It.Y{constructor(){super(...arguments),this.projScale=1}}class Pt extends Ot{constructor(){super(...arguments),this.intensity=1}}class Dt extends It.Y{}class Rt extends Dt{constructor(){super(...arguments),this.blurSize=(0,B.vt)()}}let Ft=class extends Ct.w{constructor(){super(...arguments),this.shader=new St.r(Tt.S,()=>r.e(6122).then(()=>r(86122)))}initializePipeline(){return(0,nt.Ey)({colorWrite:nt.kn})}};Ft=(0,o.Cg)([(0,u.$K)("esri.views.3d.webgl-engine.effects.ssao.SSAOTechnique")],Ft);let Bt=class extends Mt{constructor(e){super(e),this._enableTime=(0,c.l5)(0),this._passParameters=new Pt,this._drawParameters=new Rt}initialize(){let e=Uint8Array.from(atob("eXKEvZaUc66cjIKElE1jlJ6MjJ6Ufkl+jn2fcXp5jBx7c6KEflSGiXuXeW6OWs+tfqZ2Yot2Y7Zzfo2BhniEj3xoiXuXj4eGZpqEaHKDWjSMe7palFlzc3BziYOGlFVzg6Zzg7CUY5JrjFF7eYJ4jIKEcyyEonSXe7qUfqZ7j3xofqZ2c4R5lFZ5Y0WUbppoe1l2cIh2ezyUho+BcHN2cG6DbpqJhqp2e1GcezhrdldzjFGUcyxjc3aRjDyEc1h7Sl17c6aMjH92pb6Mjpd4dnqBjMOEhqZleIOBYzB7gYx+fnqGjJuEkWlwnCx7fGl+c4hjfGyRe5qMlNOMfnqGhIWHc6OMi4GDc6aMfqZuc6aMzqJzlKZ+lJ6Me3qRfoFue0WUhoR5UraEa6qMkXiPjMOMlJOGe7JrUqKMjK6MeYRzdod+Sl17boiPc6qEeYBlcIh2c1WEe7GDiWCDa0WMjEmMdod+Y0WcdntzhmN8WjyMjKJjiXtzgYxYaGd+a89zlEV7e2GJfnd+lF1rcK5zc4p5cHuBhL6EcXp5eYB7fnh8iX6HjIKEeaxuiYOGc66RfG2Ja5hzjlGMjEmMe9OEgXuPfHyGhPeEdl6JY02McGuMfnqGhFiMa3WJfnx2l4hwcG1uhmN8c0WMc39og1GBbrCEjE2EZY+JcIh2cIuGhIWHe0mEhIVrc09+gY5+eYBlnCyMhGCDl3drfmmMgX15aGd+gYx+fnuRfnhzY1SMsluJfnd+hm98WtNrcIuGh4SEj0qPdkqOjFF7jNNjdnqBgaqUjMt7boeBhnZ4jDR7c5pze4GGjEFrhLqMjHyMc0mUhKZze4WEa117kWlwbpqJjHZ2eX2Bc09zeId+e0V7WlF7jHJ2l72BfId8l3eBgXyBe897jGl7c66cgW+Xc76EjKNbgaSEjGx4fId8jFFjgZB8cG6DhlFziZhrcIh2fH6HgUqBgXiPY8dahGFzjEmMhEFre2dxhoBzc5SGfleGe6alc7aUeYBlhKqUdlp+cH5za4OEczxza0Gcc4J2jHZ5iXuXjH2Jh5yRjH2JcFx+hImBjH+MpddCl3dreZeJjIt8ZW18bm1zjoSEeIOBlF9oh3N7hlqBY4+UeYFwhLJjeYFwaGd+gUqBYxiEYot2fqZ2ondzhL6EYyiEY02Ea0VjgZB8doaGjHxoc66cjEGEiXuXiXWMiZhreHx8frGMe75rY02Ec5pzfnhzlEp4a3VzjM+EhFFza3mUY7Zza1V5e2iMfGyRcziEhDyEkXZ2Y4OBnCx7g5t2eyBjgV6EhEFrcIh2dod+c4Z+nJ5zjm15jEmUeYxijJp7nL6clIpjhoR5WrZraGd+fnuRa6pzlIiMg6ZzfHx5foh+eX1ufnB5eX1ufnB5aJt7UqKMjIh+e3aBfm5lbYSBhGFze6J4c39oc0mUc4Z+e0V7fKFVe0WEdoaGY02Ec4Z+Y02EZYWBfH6HgU1+gY5+hIWUgW+XjJ57ebWRhFVScHuBfJ6PhBx7WqJzlM+Ujpd4gHZziX6HjHmEgZN+lJt5boiPe2GJgX+GjIGJgHZzeaxufnB5hF2JtdN7jJ57hp57hK6ElFVzg6ZzbmiEbndzhIWHe3uJfoFue3qRhJd2j3xoc65zlE1jc3p8lE1jhniEgXJ7e657vZaUc3qBh52BhIF4aHKDa9drgY5+c52GWqZzbpqJe8tjnM+UhIeMfo2BfGl+hG1zSmmMjKJjZVaGgX15c1lze0mEp4OHa3mUhIWHhDyclJ6MeYOJkXiPc0VzhFiMlKaEboSJa5Jze41re3qRhn+HZYWBe0mEc4p5fnORbox5lEp4hGFjhGGEjJuEc1WEhLZjeHeGa7KlfHx2hLaMeX1ugY5+hIWHhKGPjMN7c1WEho1zhoBzZYx7fnhzlJt5exyUhFFziXtzfmmMa6qMYyiEiXxweV12kZSMeWqXSl17fnhzxmmMrVGEe1mcc4p5eHeGjK6MgY5+doaGa6pzlGV7g1qBh4KHkXiPeW6OaKqafqZ2eXZ5e1V7jGd7boSJc3BzhJd2e0mcYot2h1RoY8dahK6EQmWEWjx7e1l2lL6UgXyBdnR4eU9zc0VreX1umqaBhld7fo2Bc6KEc5Z+hDyEcIeBWtNrfHyGe5qMhMuMe5qMhEGEbVVupcNzg3aHhIF4boeBe0mEdlptc39ofFl5Y8uUlJOGiYt2UmGEcyxjjGx4jFF7a657ZYWBnElzhp57iXtrgZN+tfOEhIOBjE2HgU1+e8tjjKNbiWCDhE15gUqBgYN7fnqGc66ce9d7iYSBj0qPcG6DnGGcT3eGa6qMZY+JlIiMl4hwc3aRdnqBlGV7eHJ2hLZjfnuRhDyEeX6MSk17g6Z+c6aUjHmEhIF4gXyBc76EZW18fGl+fkl+jCxrhoVwhDyUhIqGlL2DlI6EhJd2tdN7eYORhEGMa2Faa6pzc3Bzc4R5lIRznM+UY9eMhDycc5Z+c4p5c4iGY117pb6MgXuPrbJafnx2eYOJeXZ5e657hDyEcziElKZjfoB5eHeGj4WRhGGEe6KGeX1utTStc76EhFGJnCyMa5hzfH6HnNeceYB7hmN8gYuMhIVrczSMgYF8h3N7c5pza5hzjJqEYIRdgYuMlL2DeYRzhGGEeX1uhLaEc4iGeZ1zdl6JhrVteX6Me2iMfm5lWqJzSpqEa6pzdnmchHx2c6OMhNdrhoR5g3aHczxzeW52gV6Ejm15frGMc0Vzc4Z+l3drfniJe+9rWq5rlF1rhGGEhoVwe9OEfoh+e7pac09+c3qBY0lrhDycdnp2lJ6MiYOGhGCDc3aRlL2DlJt5doaGdnp2gYF8gWeOjF2Uc4R5c5Z+jEmMe7KEc4mEeYJ4dmyBe0mcgXiPbqJ7eYB7fmGGiYSJjICGlF1reZ2PnElzbpqJfH6Hc39oe4WEc5eJhK6EhqyJc3qBgZB8c09+hEmEaHKDhFGJc5SGiXWMUpaEa89zc6OMnCyMiXtrho+Be5qMc7KEjJ57dmN+hKGPjICGbmiEe7prdod+hGCDdnmchBx7eX6MkXZ2hGGEa657hm98jFFjY5JreYOJgY2EjHZ2a295Y3FajJ6Mc1J+YzB7e4WBjF2Uc4R5eV12gYxzg1qBeId+c9OUc5pzjFFjgY5+hFiMlIaPhoR5lIpjjIKBlNdSe7KEeX2BfrGMhIqGc65zjE2UhK6EklZ+QmWEeziMWqZza3VzdnR4foh+gYF8n3iJiZhrnKp7gYF8eId+lJ6Me1lrcIuGjKJjhmN8c66MjFF7a6prjJ6UnJ5zezyUfruRWlF7nI5zfHyGe657h4SEe8tjhBx7jFFjc09+c39ojICMeZeJeXt+YzRzjHZ2c0WEcIeBeXZ5onSXkVR+gYJ+eYFwdldzgYF7eX2BjJ6UiXuXlE1jh4SEe1mchLJjc4Z+hqZ7eXZ5bm1zlL6Ue5p7iWeGhKqUY5pzjKJjcIeBe8t7gXyBYIRdlEp4a3mGnK6EfmmMZpqEfFl5gYxzjKZuhGFjhoKGhHx2fnx2eXuMe3aBiWeGvbKMe6KGa5hzYzB7gZOBlGV7hmN8hqZlYot2Y117a6pzc6KEfId8foB5rctrfneJfJ6PcHN2hFiMc5pzjH92c0VzgY2EcElzdmCBlFVzg1GBc65zY4OBboeBcHiBeYJ4ewxzfHx5lIRzlEmEnLKEbk1zfJ6PhmN8eYBljBiEnMOEiXxwezyUcIeBe76EdsKEeX2BdnR4jGWUrXWMjGd7fkl+j4WRlEGMa5Jzho+BhDyEfnqMeXt+g3aHlE1jczClhNN7ZW18eHx8hGFjZW18iXWMjKJjhH57gYuMcIuGWjyMe4ZtjJuExmmMj4WRdntzi4GDhFFzYIRdnGGcjJp7Y0F7e4WEkbCGiX57fnSHa657a6prhBCMe3Z+SmmMjH92eHJ2hK6EY1FzexhrvbKMnI5za4OEfnd+eXuMhImBe897hLaMjN+EfG+BeIOBhF1+eZeJi4GDkXZ2eXKEgZ6Ejpd4c2GHa1V5e5KUfqZuhCx7jKp7lLZrg11+hHx2hFWUoot2nI5zgbh5mo9zvZaUe3qRbqKMfqZ2kbCGhFiM"),e=>e.charCodeAt(0)),t=new xt.R(32);t.wrapMode=33071,t.pixelFormat=6407,t.wrapMode=10497,t.hasMipmap=!0,this._passParameters.noiseTexture=new ot.A(this.renderingContext,t,e),this.addHandles((0,l.wB)(()=>this._useSSAO,e=>{this._enableTime=(0,c.l5)(0),e?this._enable():this._disable()},l.pc))}destroy(){this._passParameters.noiseTexture=(0,s.WD)(this._passParameters.noiseTexture)}render(e){let t=e.find(({name:e})=>"normals"===e),r=t?.getTexture(),i=t?.getTexture(33306);if(!r||!i)return;let n=this.techniques.getCompiled(Ft),o=this.techniques.getCompiled(Et);if(!n||!o)return this._enableTime=(0,c.l5)(performance.now()),void this.requestRender(1);0===this._enableTime&&(this._enableTime=(0,c.l5)(performance.now()));let s=this.renderingContext,l=this.view.qualitySettings.fadeDuration,u=this.bindParameters,h=u.camera,f=h.relativeElevation,m=(0,a.qE)((5e5-f)/2e5,0,1),p=l>0?Math.min(l,performance.now()-this._enableTime)/l:1,v=p*m;this._passParameters.normalTexture=r,this._passParameters.depthTexture=i,this._passParameters.projScale=1/h.computeScreenPixelSizeAtDistance(1),this._passParameters.intensity=4*Nt/(0,Tt.g)(h)**6*v;let g=h.fullViewport[2],x=h.fullViewport[3],_=this.fboCache.acquire(g,x,"ssao input",2);s.bindFramebuffer(_.fbo),s.setViewport(0,0,g,x),s.bindTechnique(n,u,this._passParameters,this._drawParameters),s.screen.draw();let b=Math.round(g/2),y=Math.round(x/2),w=this.fboCache.acquire(b,y,"ssao blur",0);s.bindFramebuffer(w.fbo),this._drawParameters.colorTexture=_.getTexture(),(0,d.hZ)(this._drawParameters.blurSize,0,2/x),s.bindTechnique(o,u,this._passParameters,this._drawParameters),s.setViewport(0,0,b,y),s.screen.draw(),_.release();let M=this.fboCache.acquire(b,y,Je.AMBIENT_ILLUMINATION,0);return s.bindFramebuffer(M.fbo),s.setViewport(0,0,g,x),s.setClearColor(1,1,1,0),s.clear(16384),this._drawParameters.colorTexture=w.getTexture(),(0,d.hZ)(this._drawParameters.blurSize,2/g,0),s.bindTechnique(o,u,this._passParameters,this._drawParameters),s.setViewport(0,0,b,y),s.screen.draw(),s.setViewport4fv(h.fullViewport),w.release(),p<1&&this.requestRender(2),M}};Bt=(0,o.Cg)([(0,u.$K)("esri.views.3d.webgl-engine.effects.ssao.SSAO")],Bt);const Nt=.5;function zt(e,t){t.receiveAmbientOcclusion?(e.uniforms.add(new n.x("ssaoTex",e=>e.ssao?.getTexture())),e.constants.add("blurSizePixelsInverse","float",.5),e.code.add(i.H`float evaluateAmbientOcclusionInverse() {
|
|
604
604
|
vec2 ssaoTextureSizeInverse = 1.0 / vec2(textureSize(ssaoTex, 0));
|
|
605
605
|
return texture(ssaoTex, gl_FragCoord.xy * blurSizePixelsInverse * ssaoTextureSizeInverse).r;
|
|
606
606
|
}
|
|
607
607
|
float evaluateAmbientOcclusion() {
|
|
608
608
|
return 1.0 - evaluateAmbientOcclusionInverse();
|
|
609
609
|
}`)):e.code.add(i.H`float evaluateAmbientOcclusionInverse() { return 1.0; }
|
|
610
|
-
float evaluateAmbientOcclusion() { return 0.0; }`)}},28390(e,t,r){r.d(t,{k:()=>
|
|
610
|
+
float evaluateAmbientOcclusion() { return 0.0; }`)}},28390(e,t,r){r.d(t,{k:()=>w,a:()=>y});var i=r(74333);class n extends i.n{constructor(e,t,r,i){super(e,"float",0,(t,n)=>t.setUniform1fv(e,r(n),i),t)}}var o=r(31821);function a(e){e.uniforms.add(new n("shR",9,({lighting:e})=>e.sh.r),new n("shG",9,({lighting:e})=>e.sh.g),new n("shB",9,({lighting:e})=>e.sh.b)),e.code.add(o.H`vec3 calculateAmbientIrradiance(vec3 normal) {
|
|
611
611
|
vec3 ambientLight = 0.282095 * vec3(shR[0], shG[0], shB[0]);
|
|
612
612
|
vec4 sh1 = vec4(
|
|
613
613
|
0.488603 * normal.x,
|
|
@@ -643,10 +643,10 @@ vec3 calculateAmbientRadiance()
|
|
|
643
643
|
{
|
|
644
644
|
vec3 ambientLight = 1.2 * (0.282095 * vec3(shR[0], shG[0], shB[0])) - 0.2;
|
|
645
645
|
return ambientLight *= skyTransmittance;
|
|
646
|
-
}`)}var s=r(68785),l=r(65261),c=r(96777);function
|
|
646
|
+
}`)}var s=r(68785),l=r(65261),c=r(7290),u=r(96777);function d(e){e.uniforms.add(u.t_,u.VK).code.add(o.H`vec3 applyShading(vec3 shadingNormal, float shadow) {
|
|
647
647
|
float dotVal = clamp(dot(shadingNormal, mainLightDirection), 0.0, 1.0);
|
|
648
648
|
return mainLightIntensity * ((1.0 - shadow) * dotVal);
|
|
649
|
-
}`)}var
|
|
649
|
+
}`)}var h=r(22393),f=r(89786);class m extends i.n{constructor(e,t){super(e,"bool",0,(r,i)=>r.setUniform1b(e,t(i)))}}var p=r(12791);function v(e,t){t.receiveGlobalIllumination?(e.uniforms.add(new m("hasGlobalIlluminationTexture",e=>null!=e.globalIllumination),new p.x("globalIlluminationTexture",e=>e.globalIllumination?.getTexture())),e.constants.add("globalIlluminationEmissionNoiseThreshold","float",.01),e.code.add(o.H`vec3 readGlobalIlluminationOcclusionInverse() {
|
|
650
650
|
if (!hasGlobalIlluminationTexture) {
|
|
651
651
|
return vec3(1.0);
|
|
652
652
|
}
|
|
@@ -673,7 +673,7 @@ vec3 color = texelFetch(globalIlluminationTexture, texel, 0).rgb;
|
|
|
673
673
|
return vec4(suppressBlackNoise(color), 0.0);
|
|
674
674
|
}`)):e.code.add(o.H`vec3 readGlobalIlluminationOcclusionInverse() { return vec3(1.0); }
|
|
675
675
|
vec3 readGlobalIlluminationOcclusion() { return vec3(0.0); }
|
|
676
|
-
vec4 readGlobalIlluminationEmission() { return vec4(0.0); }`)}r(34727),r(35522);var
|
|
676
|
+
vec4 readGlobalIlluminationEmission() { return vec4(0.0); }`)}r(34727),r(35522);var g=r(51850);const x={create:()=>[0,0,0,0,0,0,0,0,0],copy(e,t){e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[3],e[4]=t[4],e[5]=t[5],e[6]=t[6],e[7]=t[7],e[8]=t[8]}};function _(e){e.code.add(o.H`float mapChannel(float x, vec2 p) {
|
|
677
677
|
if((x < p.x) && (p.x == 0.0) || !(x < p.x) && (p.x == 1.0)) {
|
|
678
678
|
return 0.0;
|
|
679
679
|
}
|
|
@@ -682,7 +682,7 @@ return max(result, 0.0);
|
|
|
682
682
|
}`),e.code.add(o.H`vec3 blackLevelSoftCompression(vec3 color, float averageAmbientRadiance) {
|
|
683
683
|
vec2 p = vec2(0.02, 0.0075) * averageAmbientRadiance;
|
|
684
684
|
return vec3(mapChannel(color.x, p), mapChannel(color.y, p), mapChannel(color.z, p));
|
|
685
|
-
}`)}function
|
|
685
|
+
}`)}function b(e){e.code.add(o.H`vec3 tonemapACES(vec3 x) {
|
|
686
686
|
return clamp((x * (2.51 * x + 0.03)) / (x * (2.43 * x + 0.59) + 0.14), 0.0, 1.0);
|
|
687
687
|
}`),e.code.add(o.H`vec3 tonemapKhronosNeutral(vec3 color) {
|
|
688
688
|
const float startCompression = 0.76;
|
|
@@ -696,29 +696,26 @@ float newPeak = 1.0 - d * d / (peak + d - startCompression);
|
|
|
696
696
|
color *= newPeak / peak;
|
|
697
697
|
float g = 1.0 - 1.0 / (desaturation * (peak - newPeak) + 1.0 );
|
|
698
698
|
return mix(color, vec3(newPeak), g);
|
|
699
|
-
}`)}function
|
|
700
|
-
|
|
701
|
-
|
|
702
|
-
|
|
703
|
-
|
|
704
|
-
|
|
705
|
-
|
|
706
|
-
return smoothstep(0.0, 1.0, clamp(lightAlignment * 2.5, 0.0, 1.0));
|
|
707
|
-
}
|
|
708
|
-
`),e.uniforms.add(c.VK).code.add(o.H`vec3 evaluateAdditionalLighting(float ambientOcclusion, vec3 vPosWorld) {
|
|
699
|
+
}`)}function y(e){e.constants.add("ambientBoostFactor","float",.4)}function w(e,t){let{pbrMode:r,hasColorTexture:i,receiveGlobalIllumination:n}=t;e.include(c.j,t),e.include(l.C),e.include(v,t),e.include(s.n,t),0!==r&&e.include(h.c,t),e.include(a),e.include(f.p),e.include(b,t);let p=!(2===r&&!i);p&&e.include(_),y(e),e.uniforms.add(u.t_,u.VW).code.add(o.H`float additionalDirectedAmbientLight(float lightAlignment) {
|
|
700
|
+
return smoothstep(0.0, 1.0, clamp(lightAlignment * 2.5, 0.0, 1.0));
|
|
701
|
+
}
|
|
702
|
+
float additionalDirectedAmbientLight(vec3 vPosWorld) {
|
|
703
|
+
float lightAlignment = dot(getLocalUp(vPosWorld), mainLightDirection);
|
|
704
|
+
return smoothstep(0.0, 1.0, clamp(lightAlignment * 2.5, 0.0, 1.0));
|
|
705
|
+
}`),e.uniforms.add(u.VK).code.add(o.H`vec3 evaluateAdditionalLighting(float ambientOcclusion, vec3 vPosWorld) {
|
|
709
706
|
float additionalAmbientScale = additionalDirectedAmbientLight(vPosWorld);
|
|
710
707
|
return (1.0 - ambientOcclusion) * additionalAmbientScale * ambientBoostFactor * lightingGlobalFactor * mainLightIntensity;
|
|
711
|
-
}`);let g=
|
|
708
|
+
}`);let g=n?"globalIlluminationOcclusion":"ssao";switch(e.constants.add("globalIlluminationDirectFactor","float",n?.55:0),e.constants.add("globalIlluminationAmbientFactor","float",n?.85:1),e.constants.add("mainLightIrradianceScale","float",n?.75:1),e.constants.add("ambientIrradianceScale","float",n?1.5:1),n?(e.constants.add("globalIlluminationOcclusionBoost","float",1.2),e.constants.add("globalIlluminationEmissionBoost","float",2.25),e.constants.add("globalIlluminationEmissionCompressionWeight","float",.75),e.code.add(o.H`vec3 evaluateGlobalIlluminationOcclusion() {
|
|
712
709
|
return min(globalIlluminationOcclusionBoost * readGlobalIlluminationOcclusion(), 1.0);
|
|
713
710
|
}
|
|
714
711
|
vec3 evaluateGlobalIlluminationEmission(vec3 albedoLinear) {
|
|
715
712
|
vec3 emission = globalIlluminationEmissionBoost * (0.75 * albedoLinear + 0.25) * readGlobalIlluminationEmission().rgb;
|
|
716
713
|
vec3 compressedEmission = emission / (emission + 1.0);
|
|
717
714
|
return mix(emission, compressedEmission, globalIlluminationEmissionCompressionWeight);
|
|
718
|
-
}`)):(e.constants.add("factorDirect","float",0),e.constants.add("factorAmbient","float",1)),r){case 0:case 4:case 3:e.include(
|
|
715
|
+
}`)):(e.constants.add("factorDirect","float",0),e.constants.add("factorAmbient","float",1)),r){case 0:case 4:case 3:e.include(d),e.code.add(o.H`
|
|
719
716
|
vec3 evaluateSceneLighting(vec3 normal, vec3 albedo, float shadow, float ssao, vec3 additionalLight,
|
|
720
717
|
vec3 viewDirection, vec3 upDirection) {
|
|
721
|
-
${(0,o.If)(
|
|
718
|
+
${(0,o.If)(n,"vec3 globalIlluminationOcclusion = evaluateGlobalIlluminationOcclusion();")}
|
|
722
719
|
|
|
723
720
|
vec3 mainLighting = mainLightIrradianceScale * applyShading(normal, shadow);
|
|
724
721
|
vec3 ambientLighting = ambientIrradianceScale * calculateAmbientIrradiance(normal) * (1.0 - ${g});
|
|
@@ -727,10 +724,10 @@ return mix(emission, compressedEmission, globalIlluminationEmissionCompressionWe
|
|
|
727
724
|
vec3 totalLight = mainLighting + ambientLighting + additionalLight;
|
|
728
725
|
totalLight = min(totalLight, vec3(PI));
|
|
729
726
|
vec3 linearColor = vec3((albedoLinear / PI) * totalLight);
|
|
730
|
-
${(0,o.If)(
|
|
727
|
+
${(0,o.If)(n,"linearColor += evaluateGlobalIlluminationEmission(albedoLinear);")}
|
|
731
728
|
return delinearizeGamma(linearColor);
|
|
732
729
|
}
|
|
733
|
-
`);break;case 1:case 2:e.constants.add("groundReflectance","float",
|
|
730
|
+
`);break;case 1:case 2:e.constants.add("groundReflectance","float",n?.35:.2),e.code.add(o.H`
|
|
734
731
|
const float fillLightIntensity = 0.25;
|
|
735
732
|
const float horizonLightDiffusion = 0.4;
|
|
736
733
|
|
|
@@ -738,8 +735,8 @@ return mix(emission, compressedEmission, globalIlluminationEmissionCompressionWe
|
|
|
738
735
|
vec3 viewDirection, vec3 upDirection) {
|
|
739
736
|
PBRShadingInfo inputs;
|
|
740
737
|
calculatePBRInputs(inputs, normal, viewDirection, upDirection, albedo);
|
|
741
|
-
${(0,o.If)(
|
|
742
|
-
`),t.useFillLights?e.uniforms.add(new
|
|
738
|
+
${(0,o.If)(n,"vec3 globalIlluminationOcclusion = evaluateGlobalIlluminationOcclusion();")}
|
|
739
|
+
`),t.useFillLights?e.uniforms.add(new m("hasFillLights",e=>e.enableFillLights)):e.constants.add("hasFillLights","bool",!1),e.code.add(o.H`
|
|
743
740
|
vec3 ambientDir = vec3( 5.0 * upDirection[1] - upDirection[0] * upDirection[2],
|
|
744
741
|
-5.0 * upDirection[0] - upDirection[2] * upDirection[1],
|
|
745
742
|
upDirection[1] * upDirection[1] + upDirection[0] * upDirection[0]);
|
|
@@ -761,7 +758,7 @@ return mix(emission, compressedEmission, globalIlluminationEmissionCompressionWe
|
|
|
761
758
|
inputs.skyIrradianceToSurface = ambientLightIrradianceComponent + mainLightIrradianceComponent + fillLightsIrradianceComponent ;
|
|
762
759
|
// Assemble the overall irradiance of the ground that illuminates the surface. for this we use the simple model that changes only the sky irradiance by the groundReflectance
|
|
763
760
|
inputs.groundIrradianceToSurface = groundReflectance * ambientLightIrradianceComponent + mainLightIrradianceComponent + fillLightsIrradianceComponent ;
|
|
764
|
-
`),e.uniforms.add(
|
|
761
|
+
`),e.uniforms.add(u.vV,u.f4).code.add(o.H`
|
|
765
762
|
vec3 horizonRingDir = inputs.RdotUP * upDirection - inputs.reflectedView;
|
|
766
763
|
vec3 horizonRingH = normalize(horizonRingDir - viewDirection);
|
|
767
764
|
inputs.NdotH_Horizon = dot(normal, horizonRingH);
|
|
@@ -787,13 +784,13 @@ return mix(emission, compressedEmission, globalIlluminationEmissionCompressionWe
|
|
|
787
784
|
vec3 additionalMaterialReflectanceComponent = inputs.albedoLinear * additionalAmbientIrradiance;
|
|
788
785
|
vec3 linearColor = reflectedColorComponent + additionalMaterialReflectanceComponent;
|
|
789
786
|
|
|
790
|
-
${(0,o.If)(
|
|
787
|
+
${(0,o.If)(n,"linearColor += evaluateGlobalIlluminationEmission(inputs.albedoLinear);")}
|
|
791
788
|
|
|
792
|
-
${
|
|
789
|
+
${p?"linearColor = blackLevelSoftCompression(linearColor, inputs.averageAmbientRadiance);":"linearColor = max(vec3(0.0), linearColor - 0.005 * inputs.averageAmbientRadiance);"}
|
|
793
790
|
|
|
794
791
|
return delinearizeGamma(linearColor);
|
|
795
792
|
}
|
|
796
|
-
`);break;case 5:case 6:e.constants.add("terrainSpecularity","float",
|
|
793
|
+
`);break;case 5:case 6:e.constants.add("terrainSpecularity","float",n?.35:.5),e.uniforms.add(u.t_,u.VK).code.add(o.H`
|
|
797
794
|
const float roughnessTerrain = 0.5;
|
|
798
795
|
|
|
799
796
|
vec3 evaluateSceneLighting(vec3 normal, vec3 albedo, float shadow, float ssao, vec3 additionalLight,
|
|
@@ -801,7 +798,7 @@ return mix(emission, compressedEmission, globalIlluminationEmissionCompressionWe
|
|
|
801
798
|
PBRShadingInfo inputs;
|
|
802
799
|
calculateSimplifiedInputs(inputs, normal, viewDirection, upDirection, albedo);
|
|
803
800
|
|
|
804
|
-
${(0,o.If)(
|
|
801
|
+
${(0,o.If)(n,"vec3 globalIlluminationOcclusion = evaluateGlobalIlluminationOcclusion();")}
|
|
805
802
|
|
|
806
803
|
// Applying AO to both direct and ambient lighting enhances depth perception.
|
|
807
804
|
// This is an artistic choice; physically, AO should only attenuate ambient lighting.
|
|
@@ -821,14 +818,14 @@ return mix(emission, compressedEmission, globalIlluminationEmissionCompressionWe
|
|
|
821
818
|
|
|
822
819
|
vec3 linearColor = diffuseColor + specularComponent;
|
|
823
820
|
|
|
824
|
-
${(0,o.If)(
|
|
821
|
+
${(0,o.If)(n,"linearColor += evaluateGlobalIlluminationEmission(inputs.albedoLinear);")}
|
|
825
822
|
|
|
826
823
|
return delinearizeGamma(linearColor);
|
|
827
824
|
}
|
|
828
825
|
`);break;case 7:e.code.add(o.H`vec3 evaluateSceneLighting(vec3 normal, vec3 albedo, float shadow, float ssao, vec3 additionalLight,
|
|
829
826
|
vec3 viewDirection, vec3 upDirection) {
|
|
830
827
|
return albedo;
|
|
831
|
-
}`)}}
|
|
828
|
+
}`)}}x.create(),x.create(),(0,g.vt)(),(0,g.vt)()},65261(e,t,r){r.d(t,{C:()=>o});var i=r(40876),n=r(31821);function o(e){e.constants.add("GAMMA","float",2.2).constants.add("INV_GAMMA","float",i.iw).code.add(n.H`vec3 delinearizeGamma(vec3 color) {
|
|
832
829
|
return pow(color, vec3(INV_GAMMA));
|
|
833
830
|
}
|
|
834
831
|
vec4 delinearizeGamma(vec4 color) {
|
|
@@ -836,11 +833,11 @@ return vec4(delinearizeGamma(color.rgb), color.a);
|
|
|
836
833
|
}
|
|
837
834
|
vec3 linearizeGamma(vec3 color) {
|
|
838
835
|
return pow(color, vec3(GAMMA));
|
|
839
|
-
}`)}},20598(e,t,r){r.d(t,{n:()=>
|
|
836
|
+
}`)}},20598(e,t,r){r.d(t,{n:()=>o});var i=r(7290),n=r(31821);function o(e,t){e.include(i.j,t),t.spherical?e.code.add(n.H`mat3 getTBNMatrix(in vec3 n) {
|
|
840
837
|
vec3 t = normalize(cross(vec3(0.0, 0.0, 1.0), n));
|
|
841
838
|
vec3 b = normalize(cross(n, t));
|
|
842
839
|
return mat3(t, b, n);
|
|
843
|
-
}`):e.code.add(
|
|
840
|
+
}`):e.code.add(n.H`mat3 getTBNMatrix(in vec3 n) {
|
|
844
841
|
vec3 t = vec3(1.0, 0.0, 0.0);
|
|
845
842
|
vec3 b = normalize(cross(n, t));
|
|
846
843
|
return mat3(t, b, n);
|
|
@@ -983,7 +980,7 @@ return vec4(1.0);
|
|
|
983
980
|
}
|
|
984
981
|
MaskedColor applyVVColor(MaskedColor color) {
|
|
985
982
|
return color;
|
|
986
|
-
}`)}},96777(e,t,r){var i=r(23205),n=r(33094);const o=new i.d("mainLightDirection",e=>e.lighting.mainLight.direction),a=new i.d("mainLightIntensity",e=>e.lighting.mainLight.intensity),s=new n.U("lightingGlobalFactor",e=>e.lighting.globalFactor),l=new n.U("lightingSpecularStrength",e=>e.lighting.mainLight.specularStrength),c=new n.U("lightingEnvironmentStrength",e=>e.lighting.mainLight.environmentStrength);r.d(t,["VK",0,a,"VW",0,s,"f4",0,c,"t_",0,o,"vV",0,l])},23292(e,t,r){r.d(t,{d:()=>s});var i=r(65261),n=r(96777),o=r(48806),a=r(31821);function s(e){e.include(o.f),e.include(i.C),e.uniforms.add(n.t_).code.add(a.H`void calculateCommonInputs(out PBRShadingInfo inputs, vec3 normal, vec3 viewDirection, vec3 upDirection, vec3 albedo) {
|
|
983
|
+
}`)}},7290(e,t,r){function i(e,{spherical:t}){e.code.add(t?"vec3 getLocalUp(in vec3 pos, in vec3 origin) { return normalize(pos + origin); }\n vec3 getLocalUp(in vec3 pos) { return normalize(pos); }":"vec3 getLocalUp(in vec3 pos, in vec3 origin) { return vec3(0.0, 0.0, 1.0); }\n vec3 getLocalUp(in vec3 pos) { return vec3(0.0, 0.0, 1.0); }")}r.d(t,{j:()=>i})},96777(e,t,r){var i=r(23205),n=r(33094);const o=new i.d("mainLightDirection",e=>e.lighting.mainLight.direction),a=new i.d("mainLightIntensity",e=>e.lighting.mainLight.intensity),s=new n.U("lightingGlobalFactor",e=>e.lighting.globalFactor),l=new n.U("lightingSpecularStrength",e=>e.lighting.mainLight.specularStrength),c=new n.U("lightingEnvironmentStrength",e=>e.lighting.mainLight.environmentStrength);r.d(t,["VK",0,a,"VW",0,s,"f4",0,c,"t_",0,o,"vV",0,l])},23292(e,t,r){r.d(t,{d:()=>s});var i=r(65261),n=r(96777),o=r(48806),a=r(31821);function s(e){e.include(o.f),e.include(i.C),e.uniforms.add(n.t_).code.add(a.H`void calculateCommonInputs(out PBRShadingInfo inputs, vec3 normal, vec3 viewDirection, vec3 upDirection, vec3 albedo) {
|
|
987
984
|
vec3 h = normalize(mainLightDirection - viewDirection);
|
|
988
985
|
inputs.NdotV = clamp(abs(dot(normal, -viewDirection)), 0.001, 1.0);
|
|
989
986
|
inputs.NdotUP = clamp(dot(normal, upDirection), -1.0, 1.0);
|
|
@@ -1093,7 +1090,7 @@ return max(c.x, max(c.y, c.z));
|
|
|
1093
1090
|
vec3 hiD = hiA + hiB;
|
|
1094
1091
|
vec3 loD = loA + loB;
|
|
1095
1092
|
return dpDummy * hiD + loD;
|
|
1096
|
-
}`)}},20693(e,t,r){r.d(t,{y:()=>f,N:()=>m});var i=r(58083),n=r(9093),o=r(35522),a=r(51850),s=r(45324),l=r(23205),c=r(40710),u=r(58029),d=r(74333);class h extends d.n{constructor(e,t,r){super(e,"mat4",2,(i,n,o)=>i.setUniformMatrix4fv(e,t(n,o),r))}}function f(e,t){t.instancedDoublePrecision?e.constants.add("cameraPosition","vec3",a.uY):e.uniforms.add(new c.W("cameraPosition",({origin:e},{camera:t})=>(0,o.hZ)(g,t.viewInverseTransposeMatrix[3]-e[0],t.viewInverseTransposeMatrix[7]-e[1],t.viewInverseTransposeMatrix[11]-e[2])))}function m(e,t){t.instancedDoublePrecision?e.uniforms.add(s.rS,new u.F("view",e=>(0,i.Tl)(v,e.camera.viewMatrix,p(e))),new l.d("localOrigin",e=>p(e))):e.uniforms.add(s.rS,new h("view",(e,t)=>(0,i.Tl)(v,t.camera.viewMatrix,e.origin)),new c.W("localOrigin",e=>e.origin))}function p({camera:e}){return(0,o.hZ)(g,e.viewInverseTransposeMatrix[3],e.viewInverseTransposeMatrix[7],e.viewInverseTransposeMatrix[11])}const v=(0,n.vt)(),g=(0,a.vt)()},45324(e,t,r){var i=r(37585),n=r(48163),o=r(77108),a=r(23205),s=r(14314),l=r(33094),c=r(58029);new c.F("view",({camera:e})=>e.viewMatrix),new c.F("inverseViewMatrix",({camera:e})=>e.inverseViewMatrix);const u=new c.F("proj",({camera:e})=>e.projectionMatrix),d=(new c.F("inverseProjectionMatrix",({camera:e})=>e.inverseProjectionMatrix),new a.d("cameraPosition",({camera:e})=>e.eye),new c.F("viewNormal",({camera:e})=>e.viewInverseTransposeMatrix)),h=new o.E("nearFar",({camera:e})=>e.nearFar),f=(new s.I("viewport",({camera:e})=>e.fullViewport),new l.U("pixelRatio",e=>e.camera.pixelRatio/e.overlayStretch),new l.U("screenPixelSizePerDistance",({camera:e})=>e.screenPixelSizePerDistance),new l.U("worldToScreenPerDistanceRatio",({camera:e})=>1/e.screenPixelSizePerDistance),new l.U("renderPixelSizePerDistance",({camera:e})=>e.renderPixelSizePerDistance),new l.U("metersPerRenderUnit",e=>e.metersPerRenderUnit),new o.E("inverseScreenSize",({camera:e})=>(0,i.hZ)(f,1/e.fullWidth,1/e.fullHeight)),new o.E("pixelToNDC",({camera:e})=>(0,i.hZ)(f,2/e.fullViewport[2],2/e.fullViewport[3])),(0,n.vt)());r.d(t,["HO",0,d,"Y$",0,h,"rS",0,u])},77108(e,t,r){r.d(t,{E:()=>n});var i=r(74333);class n extends i.n{constructor(e,t,r){super(e,"vec2",0,(i,n)=>i.setUniform2fv(e,t(n),r))}}},68259(e,t,r){r.d(t,{t:()=>n});var i=r(74333);class n extends i.n{constructor(e,t,r){super(e,"vec2",2,(i,n,o,a)=>i.setUniform2fv(e,t(n,o,a),r))}}},47286(e,t,r){r.d(t,{G:()=>n});var i=r(74333);class n extends i.n{constructor(e,t,r){super(e,"vec2",1,(i,n,o)=>i.setUniform2fv(e,t(n,o),r))}}},23205(e,t,r){r.d(t,{d:()=>n});var i=r(74333);class n extends i.n{constructor(e,t,r){super(e,"vec3",0,(i,n)=>i.setUniform3fv(e,t(n),r))}}},40710(e,t,r){r.d(t,{W:()=>n});var i=r(74333);class n extends i.n{constructor(e,t,r){super(e,"vec3",2,(i,n,o,a)=>i.setUniform3fv(e,t(n,o,a),r))}}},33079(e,t,r){r.d(t,{t:()=>n});var i=r(74333);class n extends i.n{constructor(e,t,r){super(e,"vec3",1,(i,n,o)=>i.setUniform3fv(e,t(n,o),r))}}},14314(e,t,r){r.d(t,{I:()=>n});var i=r(74333);class n extends i.n{constructor(e,t,r){super(e,"vec4",0,(i,n)=>i.setUniform4fv(e,t(n),r))}}},71988(e,t,r){r.d(t,{E:()=>n});var i=r(74333);class n extends i.n{constructor(e,t,r){super(e,"vec4",1,(i,n,o)=>i.setUniform4fv(e,t(n,o),r))}}},33094(e,t,r){r.d(t,{U:()=>n});var i=r(74333);class n extends i.n{constructor(e,t,r){super(e,"float",0,(i,n)=>i.setUniform1f(e,t(n),r))}}},28421(e,t,r){r.d(t,{J:()=>n});var i=r(74333);class n extends i.n{constructor(e,t,r){super(e,"float",2,(i,n,o)=>i.setUniform1f(e,t(n,o),r))}}},20304(e,t,r){r.d(t,{m:()=>n});var i=r(74333);class n extends i.n{constructor(e,t,r){super(e,"float",1,(i,n,o)=>i.setUniform1f(e,t(n,o),r))}}},35818(e,t,r){r.d(t,{W:()=>n});var i=r(74333);class n extends i.n{constructor(e,t){super(e,"int",0,(r,i)=>r.setUniform1i(e,t(i)))}}},35644(e,t,r){r.d(t,{k:()=>n});var i=r(74333);class n extends i.n{constructor(e,t,r){super(e,"mat3",1,(i,n,o)=>i.setUniformMatrix3fv(e,t(n,o),r))}}},58029(e,t,r){r.d(t,{F:()=>n});var i=r(74333);class n extends i.n{constructor(e,t,r){super(e,"mat4",0,(i,n)=>i.setUniformMatrix4fv(e,t(n),r))}}},12791(e,t,r){r.d(t,{x:()=>n});var i=r(74333);class n extends i.n{constructor(e,t){super(e,"sampler2D",0,(r,i)=>r.bindTexture(e,t(i)))}}},15976(e,t,r){r.d(t,{o:()=>n});var i=r(74333);class n extends i.n{constructor(e,t,r){super(e,"sampler2D",2,(i,n,o)=>i.bindTexture(e,t(n,o),r?.(n,o)))}}},63761(e,t,r){r.d(t,{N:()=>n});var i=r(74333);class n extends i.n{constructor(e,t){super(e,"sampler2D",1,(r,i,n)=>r.bindTexture(e,t(i,n)))}}},31821(e,t,r){r.d(t,{If:()=>n});const i=(e,...t)=>{let r="";for(let i=0;i<t.length;i++)r+=e[i]+t[i];return r+=e[e.length-1],r};function n(e,t,r=""){return e?t:r}i.int=e=>e.toFixed(),i.uint=e=>`${Math.max(0,e).toFixed()}u`,i.hexuint=e=>`0x${Math.round(Math.max(0,e)).toString(16)}u`,i.float=e=>e.toPrecision(8),r.d(t,["H",0,i])},13840(e,t,r){r.d(t,{r:()=>i});class i{constructor(e,t){this._module=e,this._load=t}get(){return this._module}async reload(){return this._module=await this._load(),this._module}}},42958(e,t,r){r.d(t,{w:()=>p});var i=r(32198),n=r(69622),o=r(53966),a=r(91429),s=r(63907),l=r(85079),c=r(74038);new c._("position",3,s.pe.FLOAT,0,12);const u=[new c._("position",2,s.pe.FLOAT,0,8)];(0,l.Xk)(u),new c._("position",2,s.pe.FLOAT,0,12),new c._("uv0",2,s.pe.HALF_FLOAT,8,12),r(44208);var d=r(26857),h=r(94656);class f{constructor(e,t,r){this._context=e,this.locations=r,this._textures=new Map,this.source=(0,h.en)()?t:null,t.attributeNames.forEach(e=>{r.has(e)||o.A.getLogger("esri.views.3d.webgl-engine.lib.Program").error(`Missing VertexAttributeLocation for ${e} used in shader`)}),this._glProgram=e.programCache.get(t.generate("vertex",!0),t.generate("fragment",!0),r),this._glProgram.stop=()=>{throw Error("Wrapped _glProgram used directly")},this.bind=t.generateBind(this),this.bindPass=t.generateBindPass(this),this.bindDraw=t.generateBindDraw(this)}get glName(){return this._glProgram.glName}get hasTransformFeedbackVaryings(){return this._glProgram.hasTransformFeedbackVaryings}get compiled(){return this._glProgram.compiled}setUniform1b(e,t){this._glProgram.setUniform1i(e,+!!t)}setUniform1i(e,t){this._glProgram.setUniform1i(e,t)}setUniform1f(e,t,r){this._glProgram.setUniform1f(e,t,r)}setUniform2fv(e,t,r){this._glProgram.setUniform2fv(e,t,r)}setUniform3fv(e,t,r){this._glProgram.setUniform3fv(e,t,r)}setUniform4fv(e,t,r){this._glProgram.setUniform4fv(e,t,r)}setUniformMatrix3fv(e,t,r){this._glProgram.setUniformMatrix3fv(e,t,!1,r)}setUniformMatrix4fv(e,t,r){this._glProgram.setUniformMatrix4fv(e,t,!1,r)}setUniformMatrices4fv(e,t,r){this._glProgram.setUniformMatrices4fv(e,t,!1,r)}setUniform1fv(e,t,r){this._glProgram.setUniform1fv(e,t,r)}setUniform1iv(e,t){this._glProgram.setUniform1iv(e,t)}setUniform2iv(e,t){this._glProgram.setUniform2iv(e,t)}setUniform3iv(e,t){this._glProgram.setUniform3iv(e,t)}setUniform4iv(e,t){this._glProgram.setUniform4iv(e,t)}assertCompatibleVertexAttributeLocations(e,t){if(d.b.ENABLE_OPTIMIZATIONS)return;let r=e.locations;if(t){let e=new Map(r);t.forEach((t,i)=>e.set(i,r.size+t)),r=e}r.size!==this.locations.size&&console.error(`VertexAttributeLocations are incompatible: ${Array.from(r.keys())} vs ${Array.from(this.locations.keys())}`),this.locations.forEach((e,t)=>{r.get(t)!==e&&console.error(`VertexAttributeLocations are incompatible: Program has ${t} at position ${e}, VAO has it at position ${r.get(t)}.`)})}stop(){this._textures.clear()}bindTexture(e,t,r){if(!t?.glName){let r=`Texture sampler ${e} in ${this._context.debugBoundTechnique} has no given Texture in ${Error().stack}`;(0,h.en)()&&console.error(r),t=this._context.emptyTexture}let i=this._ensureTextureUnit(e,t);this._context.useProgram(this);let n=i.unit;this.setUniform1i(e,n),this._context.bindTexture(t,n,!1,r)}_ensureTextureUnit(e,t){let r=this._textures.get(e);return null==r?(r={texture:t,unit:this._textures.size},this._textures.set(e,r)):r.texture=t,r}}var m=r(90644);let p=class extends n.A{constructor(e,t,r){super({}),this._context=e,this._configuration=t,this.primitiveType=s.WR.TRIANGLES,this._unused=!0,this.ignoreUnused=!1,this.key=t.key,this.locations=(0,l.Xk)(r??u),this._pipeline=this.initializePipeline(t),this.reload=async r=>{if(r&&await this.shader.reload(),!this.key.equals(t.key))return void o.A.getLogger("esri.views.3d.webgl.ShaderTechnique").warn(`Configuration was changed after construction, cannot reload shader for ${this.declaredClass}.`);let i=this.shader.get().build(t);i.debugName=this.declaredClass,this._program=new f(e.rctx,i,this.locations),this._pipeline=this.initializePipeline(t)}}initialize(){let e=this.shader.get().build(this._configuration);e.debugName=this.declaredClass,this._program=new f(this._context.rctx,e,this.locations)}get program(){return this._unused=!1,this._program}get compiled(){return this._unused=!1,this.program.compiled}get unused(){return this._unused}ensureAttributeLocations(e){this.program.assertCompatibleVertexAttributeLocations(e)}getPipeline(e,t,r){return this._pipeline}initializePipeline(e){return(0,m.Ey)({blending:m.RC,colorWrite:m.kn})}};p=(0,i.Cg)([(0,a.$K)("esri.views.3d.webgl-engine.core.shaderTechnique.ShaderTechnique")],p)},51976(e,t,r){r.d(t,{K:()=>s,W:()=>l});var i=r(49186),n=r(4576);class o{constructor(e){this._bits=[...e]}equals(e){return(0,n.aI)(this._bits,e.bits)}get code(){return this._code??=String.fromCharCode(...this._bits),this._code}get bits(){return this._bits}}var a=r(65786);class s extends a.Y{constructor(){super(),this._parameterBits=this._parameterBits?.map(()=>0)??[],this._parameterNames??=[]}get key(){return this._key??=new o(this._parameterBits),this._key}decode(e=this.key){let t=this._parameterBits;this._parameterBits=[...e.bits];let r=this._parameterNames.map(e=>` ${e}: ${this[e]}`).join("\n");return this._parameterBits=t,r}}function l(e={}){return(t,r)=>{t.hasOwnProperty("_parameterNames")||Object.defineProperty(t,"_parameterNames",{value:t._parameterNames?.slice()??[],configurable:!0,writable:!0}),t.hasOwnProperty("_parameterBits")||Object.defineProperty(t,"_parameterBits",{value:t._parameterBits?.slice()??[0],configurable:!0,writable:!0}),t._parameterNames.push(r);let n=e.count||2,o=Math.ceil(Math.log2(n)),a=t._parameterBits,s=0;for(;a[s]+o>16;)s++,s>=a.length&&a.push(0);let l=a[s],c=(1<<o)-1<<l;a[s]+=o,e.count?Object.defineProperty(t,r,{get(){return(this._parameterBits[s]&c)>>l},set(t){let n=this._parameterBits[s];if((n&c)>>l!==t){if(this._key=null,this._parameterBits[s]=n&~c|+t<<l&c,"number"!=typeof t)throw new i.A("internal:invalid-shader-configuration",`Configuration value for ${r} must be a number, got ${typeof t}`);if(null==e.count)throw new i.A("internal:invalid-shader-configuration",`Configuration value for ${r} must provide a count option`)}}}):Object.defineProperty(t,r,{get(){return!!((this._parameterBits[s]&c)>>l)},set(e){let t=this._parameterBits[s];if(!!((t&c)>>l)!==e&&(this._key=null,this._parameterBits[s]=t&~c|+e<<l,"boolean"!=typeof e))throw new i.A("internal:invalid-shader-configurationx",`Configuration value for ${r} must be boolean, got ${typeof e}`)}})}}},16943(e,t,r){r.d(t,{E:()=>n});var i=r(44208);function n(){return!!(0,i.A)("enable-feature:objectAndLayerId-rendering")}},24111(e,t,r){r.d(t,{Y:()=>s});var i=r(65261),n=r(23292),o=r(33094),a=r(31821);function s(e,t){t.snowCover&&(e.include(i.C),e.uniforms.add(new o.U("snowCover",e=>e.snowCover)).code.add(a.H`float applySnow(vec3 normal, vec3 groundNormal, inout vec3 albedo, inout float ssao) {
|
|
1093
|
+
}`)}},20693(e,t,r){r.d(t,{y:()=>f,N:()=>m});var i=r(58083),n=r(9093),o=r(35522),a=r(51850),s=r(45324),l=r(23205),c=r(40710),u=r(58029),d=r(74333);class h extends d.n{constructor(e,t,r){super(e,"mat4",2,(i,n,o)=>i.setUniformMatrix4fv(e,t(n,o),r))}}function f(e,t){t.instancedDoublePrecision?e.constants.add("cameraPosition","vec3",a.uY):e.uniforms.add(new c.W("cameraPosition",({origin:e},{camera:t})=>(0,o.hZ)(g,t.viewInverseTransposeMatrix[3]-e[0],t.viewInverseTransposeMatrix[7]-e[1],t.viewInverseTransposeMatrix[11]-e[2])))}function m(e,t){t.instancedDoublePrecision?e.uniforms.add(s.rS,new u.F("view",e=>(0,i.Tl)(v,e.camera.viewMatrix,p(e))),new l.d("localOrigin",e=>p(e))):e.uniforms.add(s.rS,new h("view",(e,t)=>(0,i.Tl)(v,t.camera.viewMatrix,e.origin)),new c.W("localOrigin",e=>e.origin))}function p({camera:e}){return(0,o.hZ)(g,e.viewInverseTransposeMatrix[3],e.viewInverseTransposeMatrix[7],e.viewInverseTransposeMatrix[11])}const v=(0,n.vt)(),g=(0,a.vt)()},45324(e,t,r){var i=r(37585),n=r(48163),o=r(35522),a=r(51850),s=r(77108),l=r(23205),c=r(14314),u=r(33094),d=r(58029);new d.F("view",({camera:e})=>e.viewMatrix),new d.F("inverseViewMatrix",({camera:e})=>e.inverseViewMatrix);const h=new d.F("proj",({camera:e})=>e.projectionMatrix),f=(new d.F("inverseProjectionMatrix",({camera:e})=>e.inverseProjectionMatrix),new l.d("cameraPosition",({camera:e})=>e.eye),new d.F("viewNormal",({camera:e})=>e.viewInverseTransposeMatrix)),m=(new l.d("localUpView",({camera:e})=>{let t=e.viewInverseTransposeMatrix;return(0,o.S8)(v,(0,o.hZ)(v,t[8],t[9],t[10]))}),new s.E("nearFar",({camera:e})=>e.nearFar)),p=(new c.I("viewport",({camera:e})=>e.fullViewport),new u.U("pixelRatio",e=>e.camera.pixelRatio/e.overlayStretch),new u.U("screenPixelSizePerDistance",({camera:e})=>e.screenPixelSizePerDistance),new u.U("worldToScreenPerDistanceRatio",({camera:e})=>1/e.screenPixelSizePerDistance),new u.U("renderPixelSizePerDistance",({camera:e})=>e.renderPixelSizePerDistance),new u.U("metersPerRenderUnit",e=>e.metersPerRenderUnit),new s.E("inverseScreenSize",({camera:e})=>(0,i.hZ)(p,1/e.fullWidth,1/e.fullHeight)),new s.E("pixelToNDC",({camera:e})=>(0,i.hZ)(p,2/e.fullViewport[2],2/e.fullViewport[3])),(0,n.vt)()),v=(0,a.vt)();r.d(t,["HO",0,f,"Y$",0,m,"rS",0,h])},77108(e,t,r){r.d(t,{E:()=>n});var i=r(74333);class n extends i.n{constructor(e,t,r){super(e,"vec2",0,(i,n)=>i.setUniform2fv(e,t(n),r))}}},68259(e,t,r){r.d(t,{t:()=>n});var i=r(74333);class n extends i.n{constructor(e,t,r){super(e,"vec2",2,(i,n,o,a)=>i.setUniform2fv(e,t(n,o,a),r))}}},47286(e,t,r){r.d(t,{G:()=>n});var i=r(74333);class n extends i.n{constructor(e,t,r){super(e,"vec2",1,(i,n,o)=>i.setUniform2fv(e,t(n,o),r))}}},23205(e,t,r){r.d(t,{d:()=>n});var i=r(74333);class n extends i.n{constructor(e,t,r){super(e,"vec3",0,(i,n)=>i.setUniform3fv(e,t(n),r))}}},40710(e,t,r){r.d(t,{W:()=>n});var i=r(74333);class n extends i.n{constructor(e,t,r){super(e,"vec3",2,(i,n,o,a)=>i.setUniform3fv(e,t(n,o,a),r))}}},33079(e,t,r){r.d(t,{t:()=>n});var i=r(74333);class n extends i.n{constructor(e,t,r){super(e,"vec3",1,(i,n,o)=>i.setUniform3fv(e,t(n,o),r))}}},14314(e,t,r){r.d(t,{I:()=>n});var i=r(74333);class n extends i.n{constructor(e,t,r){super(e,"vec4",0,(i,n)=>i.setUniform4fv(e,t(n),r))}}},71988(e,t,r){r.d(t,{E:()=>n});var i=r(74333);class n extends i.n{constructor(e,t,r){super(e,"vec4",1,(i,n,o)=>i.setUniform4fv(e,t(n,o),r))}}},33094(e,t,r){r.d(t,{U:()=>n});var i=r(74333);class n extends i.n{constructor(e,t,r){super(e,"float",0,(i,n)=>i.setUniform1f(e,t(n),r))}}},28421(e,t,r){r.d(t,{J:()=>n});var i=r(74333);class n extends i.n{constructor(e,t,r){super(e,"float",2,(i,n,o)=>i.setUniform1f(e,t(n,o),r))}}},20304(e,t,r){r.d(t,{m:()=>n});var i=r(74333);class n extends i.n{constructor(e,t,r){super(e,"float",1,(i,n,o)=>i.setUniform1f(e,t(n,o),r))}}},35818(e,t,r){r.d(t,{W:()=>n});var i=r(74333);class n extends i.n{constructor(e,t){super(e,"int",0,(r,i)=>r.setUniform1i(e,t(i)))}}},35644(e,t,r){r.d(t,{k:()=>n});var i=r(74333);class n extends i.n{constructor(e,t,r){super(e,"mat3",1,(i,n,o)=>i.setUniformMatrix3fv(e,t(n,o),r))}}},58029(e,t,r){r.d(t,{F:()=>n});var i=r(74333);class n extends i.n{constructor(e,t,r){super(e,"mat4",0,(i,n)=>i.setUniformMatrix4fv(e,t(n),r))}}},12791(e,t,r){r.d(t,{x:()=>n});var i=r(74333);class n extends i.n{constructor(e,t){super(e,"sampler2D",0,(r,i)=>r.bindTexture(e,t(i)))}}},15976(e,t,r){r.d(t,{o:()=>n});var i=r(74333);class n extends i.n{constructor(e,t,r){super(e,"sampler2D",2,(i,n,o)=>i.bindTexture(e,t(n,o),r?.(n,o)))}}},63761(e,t,r){r.d(t,{N:()=>n});var i=r(74333);class n extends i.n{constructor(e,t){super(e,"sampler2D",1,(r,i,n)=>r.bindTexture(e,t(i,n)))}}},31821(e,t,r){r.d(t,{If:()=>n});const i=(e,...t)=>{let r="";for(let i=0;i<t.length;i++)r+=e[i]+t[i];return r+=e[e.length-1],r};function n(e,t,r=""){return e?t:r}i.int=e=>e.toFixed(),i.uint=e=>`${Math.max(0,e).toFixed()}u`,i.hexuint=e=>`0x${Math.round(Math.max(0,e)).toString(16)}u`,i.float=e=>e.toPrecision(8),r.d(t,["H",0,i])},13840(e,t,r){r.d(t,{r:()=>i});class i{constructor(e,t){this._module=e,this._load=t}get(){return this._module}async reload(){return this._module=await this._load(),this._module}}},42958(e,t,r){r.d(t,{w:()=>p});var i=r(32198),n=r(69622),o=r(53966),a=r(91429),s=r(63907),l=r(85079),c=r(74038);new c._("position",3,s.pe.FLOAT,0,12);const u=[new c._("position",2,s.pe.FLOAT,0,8)];(0,l.Xk)(u),new c._("position",2,s.pe.FLOAT,0,12),new c._("uv0",2,s.pe.HALF_FLOAT,8,12),r(44208);var d=r(26857),h=r(94656);class f{constructor(e,t,r){this._context=e,this.locations=r,this._textures=new Map,this.source=(0,h.en)()?t:null,t.attributeNames.forEach(e=>{r.has(e)||o.A.getLogger("esri.views.3d.webgl-engine.lib.Program").error(`Missing VertexAttributeLocation for ${e} used in shader`)}),this._glProgram=e.programCache.get(t.generate("vertex",!0),t.generate("fragment",!0),r),this._glProgram.stop=()=>{throw Error("Wrapped _glProgram used directly")},this.bind=t.generateBind(this),this.bindPass=t.generateBindPass(this),this.bindDraw=t.generateBindDraw(this)}get glName(){return this._glProgram.glName}get hasTransformFeedbackVaryings(){return this._glProgram.hasTransformFeedbackVaryings}get compiled(){return this._glProgram.compiled}setUniform1b(e,t){this._glProgram.setUniform1i(e,+!!t)}setUniform1i(e,t){this._glProgram.setUniform1i(e,t)}setUniform1f(e,t,r){this._glProgram.setUniform1f(e,t,r)}setUniform2fv(e,t,r){this._glProgram.setUniform2fv(e,t,r)}setUniform3fv(e,t,r){this._glProgram.setUniform3fv(e,t,r)}setUniform4fv(e,t,r){this._glProgram.setUniform4fv(e,t,r)}setUniformMatrix3fv(e,t,r){this._glProgram.setUniformMatrix3fv(e,t,!1,r)}setUniformMatrix4fv(e,t,r){this._glProgram.setUniformMatrix4fv(e,t,!1,r)}setUniformMatrices4fv(e,t,r){this._glProgram.setUniformMatrices4fv(e,t,!1,r)}setUniform1fv(e,t,r){this._glProgram.setUniform1fv(e,t,r)}setUniform1iv(e,t){this._glProgram.setUniform1iv(e,t)}setUniform2iv(e,t){this._glProgram.setUniform2iv(e,t)}setUniform3iv(e,t){this._glProgram.setUniform3iv(e,t)}setUniform4iv(e,t){this._glProgram.setUniform4iv(e,t)}assertCompatibleVertexAttributeLocations(e,t){if(d.b.ENABLE_OPTIMIZATIONS)return;let r=e.locations;if(t){let e=new Map(r);t.forEach((t,i)=>e.set(i,r.size+t)),r=e}r.size!==this.locations.size&&console.error(`VertexAttributeLocations are incompatible: ${Array.from(r.keys())} vs ${Array.from(this.locations.keys())}`),this.locations.forEach((e,t)=>{r.get(t)!==e&&console.error(`VertexAttributeLocations are incompatible: Program has ${t} at position ${e}, VAO has it at position ${r.get(t)}.`)})}stop(){this._textures.clear()}bindTexture(e,t,r){if(!t?.glName){let r=`Texture sampler ${e} in ${this._context.debugBoundTechnique} has no given Texture in ${Error().stack}`;(0,h.en)()&&console.error(r),t=this._context.emptyTexture}let i=this._ensureTextureUnit(e,t);this._context.useProgram(this);let n=i.unit;this.setUniform1i(e,n),this._context.bindTexture(t,n,!1,r)}_ensureTextureUnit(e,t){let r=this._textures.get(e);return null==r?(r={texture:t,unit:this._textures.size},this._textures.set(e,r)):r.texture=t,r}}var m=r(90644);let p=class extends n.A{constructor(e,t,r){super({}),this._context=e,this._configuration=t,this.primitiveType=s.WR.TRIANGLES,this._unused=!0,this.ignoreUnused=!1,this.key=t.key,this.locations=(0,l.Xk)(r??u),this._pipeline=this.initializePipeline(t),this.reload=async r=>{if(r&&await this.shader.reload(),!this.key.equals(t.key))return void o.A.getLogger("esri.views.3d.webgl.ShaderTechnique").warn(`Configuration was changed after construction, cannot reload shader for ${this.declaredClass}.`);let i=this.shader.get().build(t);i.debugName=this.declaredClass,this._program=new f(e.rctx,i,this.locations),this._pipeline=this.initializePipeline(t)}}initialize(){let e=this.shader.get().build(this._configuration);e.debugName=this.declaredClass,this._program=new f(this._context.rctx,e,this.locations)}get program(){return this._unused=!1,this._program}get compiled(){return this._unused=!1,this.program.compiled}get unused(){return this._unused}ensureAttributeLocations(e){this.program.assertCompatibleVertexAttributeLocations(e)}getPipeline(e,t,r){return this._pipeline}initializePipeline(e){return(0,m.Ey)({blending:m.RC,colorWrite:m.kn})}};p=(0,i.Cg)([(0,a.$K)("esri.views.3d.webgl-engine.core.shaderTechnique.ShaderTechnique")],p)},51976(e,t,r){r.d(t,{K:()=>s,W:()=>l});var i=r(49186),n=r(4576);class o{constructor(e){this._bits=[...e]}equals(e){return(0,n.aI)(this._bits,e.bits)}get code(){return this._code??=String.fromCharCode(...this._bits),this._code}get bits(){return this._bits}}var a=r(65786);class s extends a.Y{constructor(){super(),this._parameterBits=this._parameterBits?.map(()=>0)??[],this._parameterNames??=[]}get key(){return this._key??=new o(this._parameterBits),this._key}decode(e=this.key){let t=this._parameterBits;this._parameterBits=[...e.bits];let r=this._parameterNames.map(e=>` ${e}: ${this[e]}`).join("\n");return this._parameterBits=t,r}}function l(e={}){return(t,r)=>{t.hasOwnProperty("_parameterNames")||Object.defineProperty(t,"_parameterNames",{value:t._parameterNames?.slice()??[],configurable:!0,writable:!0}),t.hasOwnProperty("_parameterBits")||Object.defineProperty(t,"_parameterBits",{value:t._parameterBits?.slice()??[0],configurable:!0,writable:!0}),t._parameterNames.push(r);let n=e.count||2,o=Math.ceil(Math.log2(n)),a=t._parameterBits,s=0;for(;a[s]+o>16;)s++,s>=a.length&&a.push(0);let l=a[s],c=(1<<o)-1<<l;a[s]+=o,e.count?Object.defineProperty(t,r,{get(){return(this._parameterBits[s]&c)>>l},set(t){let n=this._parameterBits[s];if((n&c)>>l!==t){if(this._key=null,this._parameterBits[s]=n&~c|+t<<l&c,"number"!=typeof t)throw new i.A("internal:invalid-shader-configuration",`Configuration value for ${r} must be a number, got ${typeof t}`);if(null==e.count)throw new i.A("internal:invalid-shader-configuration",`Configuration value for ${r} must provide a count option`)}}}):Object.defineProperty(t,r,{get(){return!!((this._parameterBits[s]&c)>>l)},set(e){let t=this._parameterBits[s];if(!!((t&c)>>l)!==e&&(this._key=null,this._parameterBits[s]=t&~c|+e<<l,"boolean"!=typeof e))throw new i.A("internal:invalid-shader-configurationx",`Configuration value for ${r} must be boolean, got ${typeof e}`)}})}}},16943(e,t,r){r.d(t,{E:()=>n});var i=r(44208);function n(){return!!(0,i.A)("enable-feature:objectAndLayerId-rendering")}},24111(e,t,r){r.d(t,{Y:()=>s});var i=r(65261),n=r(23292),o=r(33094),a=r(31821);function s(e,t){t.snowCover&&(e.include(i.C),e.uniforms.add(new o.U("snowCover",e=>e.snowCover)).code.add(a.H`float applySnow(vec3 normal, vec3 groundNormal, inout vec3 albedo, inout float ssao) {
|
|
1097
1094
|
float snow = smoothstep(0.5, 0.55, dot(normal, groundNormal)) * snowCover;
|
|
1098
1095
|
albedo = delinearizeGamma(mix(linearizeGamma(albedo), vec3(1), snow));
|
|
1099
1096
|
ssao = mix(ssao, 0.5 + 0.5 * ssao, snow);
|