@arcgis/core 4.24.0-next.20220430 → 4.24.0-next.20220503
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/Basemap.js +1 -1
- package/Color.js +1 -1
- package/Ground.js +1 -1
- package/Map.js +1 -1
- package/PopupTemplate.js +1 -1
- package/WebMap.js +1 -1
- package/WebScene.js +1 -1
- package/analysis/LinearDimension.js +1 -1
- package/analysis/SliceAnalysis.js +1 -1
- package/applications/SceneViewer/sceneViewerUtils.js +1 -1
- package/arcade/Dictionary.js +1 -1
- package/arcade/Feature.js +1 -1
- package/arcade/featureset/sources/FeatureLayerDynamic.js +1 -1
- package/arcade/featureset/support/FeatureSet.js +1 -1
- package/assets/esri/core/workers/RemoteClient.js +1 -1
- package/assets/esri/core/workers/chunks/{e06461703e6f1acfcfdc.js → 076d1b1101b59af0d389.js} +1 -1
- package/assets/esri/core/workers/chunks/0b72d123386dc4ec7538.js +1 -0
- package/assets/esri/core/workers/chunks/0d53e575f11198867619.js +1 -0
- package/assets/esri/core/workers/chunks/0e6e3cf07c84d9f040c0.js +1 -0
- package/assets/esri/core/workers/chunks/105728404ddd9e73d5c9.js +1 -0
- package/assets/esri/core/workers/chunks/11106873b009b98e4286.js +1 -0
- package/assets/esri/core/workers/chunks/11a7b156591d1feca952.js +1 -0
- package/assets/esri/core/workers/chunks/{94325f920a125610e1f5.js → 12feeace7215248be23f.js} +1 -1
- package/assets/esri/core/workers/chunks/17be5bd0d1c233d73d7a.js +1 -0
- package/assets/esri/core/workers/chunks/1b53bd65407ba5c479d7.js +1 -0
- package/assets/esri/core/workers/chunks/1d91aa745b49b2ab36cf.js +1 -0
- package/assets/esri/core/workers/chunks/{fd35b69872ac9393924f.js → 1db8bfb1731be3ae320c.js} +1 -1
- package/assets/esri/core/workers/chunks/{3433361f09c84b31aec4.js → 2290bd6dc2e6bb136e14.js} +1 -1
- package/assets/esri/core/workers/chunks/24217129d492e170f0f0.js +1 -0
- package/assets/esri/core/workers/chunks/24e194107e0e5090125b.js +1 -0
- package/assets/esri/core/workers/chunks/2a1301a1d0cd4c0c17cf.js +1 -0
- package/assets/esri/core/workers/chunks/{178831b0d0bdabcc45e7.js → 2a676221ca1fc8e0cf34.js} +1 -1
- package/assets/esri/core/workers/chunks/2aede0d1dcac8592436b.js +1 -0
- package/assets/esri/core/workers/chunks/2b93ad626f5e75b97692.js +1 -0
- package/assets/esri/core/workers/chunks/2d03210fc6b5884c6bf9.js +1 -0
- package/assets/esri/core/workers/chunks/{b10c333abe4f4e52841c.js → 2dfd3def105005fc72c7.js} +1 -1
- package/assets/esri/core/workers/chunks/2f8ff35b8ab15c0e39c2.js +1 -0
- package/assets/esri/core/workers/chunks/36272141b3c33cb19026.js +1 -0
- package/assets/esri/core/workers/chunks/36c8e8de9c3f67d32572.js +1 -0
- package/assets/esri/core/workers/chunks/3ab8c6ae2f2713f637b0.js +1 -0
- package/assets/esri/core/workers/chunks/3c058381adcfdc407aa1.js +1 -0
- package/assets/esri/core/workers/chunks/3f39df1dfc0a685e5f9d.js +1 -0
- package/assets/esri/core/workers/chunks/3fd52a03b3126556aee6.js +1 -0
- package/assets/esri/core/workers/chunks/4082d8573f41f952c72e.js +1 -0
- package/assets/esri/core/workers/chunks/40b11eea270f6688ff9c.js +1 -0
- package/assets/esri/core/workers/chunks/4281b4b27f4767cdd3ae.js +1 -0
- package/assets/esri/core/workers/chunks/43fcaaeb6fd179e9199b.js +1 -0
- package/assets/esri/core/workers/chunks/4c65b27d80b23c0c3101.js +1 -0
- package/assets/esri/core/workers/chunks/{a6406a248b7b2ed65f35.js → 4ec7d59b0c814dbaa7a4.js} +1 -1
- package/assets/esri/core/workers/chunks/4f378ad6f4299183df85.js +1 -0
- package/assets/esri/core/workers/chunks/505b0aa5ee3e5a26c351.js +1 -0
- package/assets/esri/core/workers/chunks/509a9cdd0228a730bcea.js +1 -0
- package/assets/esri/core/workers/chunks/52255ad573cec0a34720.js +1 -0
- package/assets/esri/core/workers/chunks/52d4fdc451a58a858af1.js +1 -0
- package/assets/esri/core/workers/chunks/5405f478af3563580926.js +1 -0
- package/assets/esri/core/workers/chunks/54577c2522ca3ff08f7e.js +1 -0
- package/assets/esri/core/workers/chunks/54d67e450da6ce2641b4.js +1 -0
- package/assets/esri/core/workers/chunks/56d3cb0ae0069a8eadde.js +1 -0
- package/assets/esri/core/workers/chunks/5b4efe0014162f777534.js +1 -0
- package/assets/esri/core/workers/chunks/5baa162351551817838b.js +1 -0
- package/assets/esri/core/workers/chunks/5cf2064bfd9d0847d9ec.js +1 -0
- package/assets/esri/core/workers/chunks/620dc3c13c345d5aa9f6.js +1 -0
- package/assets/esri/core/workers/chunks/7c290763920f52a1f504.js +1 -0
- package/assets/esri/core/workers/chunks/7dc266be958e34e81007.js +972 -0
- package/assets/esri/core/workers/chunks/7dfd70f4fa1096e56641.js +1 -0
- package/assets/esri/core/workers/chunks/7f097de06972a68cd08a.js +1 -0
- package/assets/esri/core/workers/chunks/8033531b0cc706b40d86.js +1 -0
- package/assets/esri/core/workers/chunks/814234844a056d9f1ddc.js +1 -0
- package/assets/esri/core/workers/chunks/83700cdd60ceecc639cd.js +1 -0
- package/assets/esri/core/workers/chunks/857df84cea67079a91e5.js +1 -0
- package/assets/esri/core/workers/chunks/8793070d288878d6f49b.js +1 -0
- package/assets/esri/core/workers/chunks/8865c5cc28df60364e60.js +1 -0
- package/assets/esri/core/workers/chunks/{e9f786d4ba3143ed9644.js → 8cc85d1d46dda16ad041.js} +1 -1
- package/assets/esri/core/workers/chunks/958a7ef2cbf048819988.js +1 -0
- package/assets/esri/core/workers/chunks/967af0aa4dc4da032fdc.js +1 -0
- package/assets/esri/core/workers/chunks/9722880bd7f455b2bd07.js +1 -0
- package/assets/esri/core/workers/chunks/9d738aab0d907cd09a9d.js +1 -0
- package/assets/esri/core/workers/chunks/{86b31ae136f931d7884a.js → 9e6df034d7949880471f.js} +1 -1
- package/assets/esri/core/workers/chunks/a056a79f31cddb066f15.js +1 -0
- package/assets/esri/core/workers/chunks/a2c9fd78d42df7314a3e.js +1 -0
- package/assets/esri/core/workers/chunks/a4dcb50f6622cb1444c8.js +1 -0
- package/assets/esri/core/workers/chunks/a6bfbe449b8c2fa5334c.js +1 -0
- package/assets/esri/core/workers/chunks/a8ed1a938dc164b401d9.js +1 -0
- package/assets/esri/core/workers/chunks/a9a73bc4875a5aeaf1b9.js +1 -0
- package/assets/esri/core/workers/chunks/ac0df52b2f2a4874e4ea.js +1 -0
- package/assets/esri/core/workers/chunks/{431efa172901ab8e4d53.js → acfa8eb19225f7862b1d.js} +1 -1
- package/assets/esri/core/workers/chunks/adae54f116f311d72d97.js +1 -0
- package/assets/esri/core/workers/chunks/{718073d13d3de67b629b.js → aeeb364b7c1876f6e7db.js} +1 -1
- package/assets/esri/core/workers/chunks/afddfe620e6539991e6b.js +1 -0
- package/assets/esri/core/workers/chunks/b02a83845d3da4caee9d.js +1 -0
- package/assets/esri/core/workers/chunks/{0d21506b7d4f9afdbb09.js → b3847a6bbd45d813f03c.js} +1 -1
- package/assets/esri/core/workers/chunks/b4c23630d6c85f7b59c0.js +1 -0
- package/assets/esri/core/workers/chunks/{c318b229911b60fc3cbf.js → b50ae3dc7e43ff452568.js} +1 -1
- package/assets/esri/core/workers/chunks/b5ede4df4620097c6528.js +1 -0
- package/assets/esri/core/workers/chunks/b7d7ad127f8939cbdec2.js +1 -0
- package/assets/esri/core/workers/chunks/bf1d1c02d12b526b0750.js +1 -0
- package/assets/esri/core/workers/chunks/c0e6dbecdbd30066a82c.js +1 -0
- package/assets/esri/core/workers/chunks/c2a36243eb105d570bff.js +1 -0
- package/assets/esri/core/workers/chunks/c8a3a28809542396c6fd.js +1 -0
- package/assets/esri/core/workers/chunks/cf1047ad176a25dcd2d6.js +1 -0
- package/assets/esri/core/workers/chunks/d03de043d43691665a93.js +1 -0
- package/assets/esri/core/workers/chunks/d3fecbaca51ef8844026.js +1 -0
- package/assets/esri/core/workers/chunks/dafe120243db6648a4ab.js +1 -0
- package/assets/esri/core/workers/chunks/dccc33d87cb7d902f5c7.js +1 -0
- package/assets/esri/core/workers/chunks/dd43f5647900ee27af22.js +1 -0
- package/assets/esri/core/workers/chunks/{52489e2f7748dc610263.js → dfdd853dd6c023089963.js} +1 -1
- package/assets/esri/core/workers/chunks/e6f76f62cf58fb1e67c6.js +1 -0
- package/assets/esri/core/workers/chunks/ea73a1d9cad5e1a5d861.js +1 -0
- package/assets/esri/core/workers/chunks/{4130ea1f5a9f197168d7.js → ed4519ac9533a4d340f1.js} +1 -1
- package/assets/esri/core/workers/chunks/f0e462f5a16852f33225.js +1 -0
- package/assets/esri/core/workers/chunks/f13c29bcc71aed8f3a2e.js +1 -0
- package/assets/esri/core/workers/chunks/f356e505c36397fda3cf.js +1 -0
- package/assets/esri/core/workers/chunks/f55cbaf5a1d6ee6ac171.js +1 -0
- package/assets/esri/core/workers/chunks/f6e613ae6812a347a26c.js +1 -0
- package/assets/esri/core/workers/chunks/fb3279408bd5323ec612.js +1 -0
- package/assets/esri/core/workers/chunks/fdf80a371b7b2a45f1ff.js +1 -0
- package/assets/esri/libs/vxl/vxlLayer.wasm +0 -0
- package/chunks/ChapmanAtmosphere.glsl.js +15 -15
- package/chunks/CheckerBoard.glsl.js +3 -3
- package/chunks/Clouds.glsl.js +2 -3
- package/chunks/CloudsComposition.glsl.js +3 -3
- package/chunks/ColorMaterial.glsl.js +11 -11
- package/chunks/DefaultMaterial.glsl.js +26 -26
- package/chunks/EdgeShader.glsl.js +3 -3
- package/chunks/Fog.glsl.js +6 -6
- package/chunks/HUDMaterial.glsl.js +48 -48
- package/chunks/HeatmapDensity.glsl.js +7 -7
- package/chunks/HighlightApply.glsl.js +3 -3
- package/chunks/LineCallout.glsl.js +3 -3
- package/chunks/LineMarker.glsl.js +22 -22
- package/chunks/MeasurementArrow.glsl.js +4 -4
- package/chunks/NativeLine.glsl.js +11 -11
- package/chunks/Path.glsl.js +16 -16
- package/chunks/Pattern.glsl.js +30 -30
- package/chunks/RasterColorizer.glsl.js +4 -4
- package/chunks/RealisticTree.glsl.js +20 -20
- package/chunks/RibbonLine.glsl.js +39 -39
- package/chunks/ShadedColorMaterial.glsl.js +10 -10
- package/chunks/ShadowCastVisualize.glsl.js +5 -5
- package/chunks/ShadowHighlight.glsl.js +2 -2
- package/chunks/SlicePlaneMaterial.glsl.js +3 -3
- package/chunks/Stars.glsl.js +2 -2
- package/chunks/WaterSurface.glsl.js +20 -20
- package/chunks/languageUtils.js +1 -1
- package/chunks/persistableUrlUtils.js +1 -1
- package/chunks/vec22.js +1 -1
- package/chunks/vec2f64.js +1 -1
- package/chunks/vec3.js +1 -1
- package/chunks/vec33.js +1 -1
- package/chunks/vec43.js +1 -1
- package/colorUtils.js +1 -1
- package/config.js +1 -1
- package/core/Accessor.js +1 -1
- package/core/AsyncUpdate.js +1 -1
- package/core/Clonable.js +1 -1
- package/core/Collection.js +1 -1
- package/core/HandleOwner.js +1 -1
- package/core/Loadable.js +1 -1
- package/core/NestedMap.js +1 -1
- package/core/accessorSupport/DefaultsStore.js +1 -1
- package/core/accessorSupport/Properties.js +1 -1
- package/core/accessorSupport/decorators/enumeration.js +1 -1
- package/core/accessorSupport/extensions/serializableProperty/reader.js +1 -1
- package/core/accessorSupport/extensions/serializableProperty/writePolicyUtils.js +1 -1
- package/core/accessorSupport/extensions/serializableProperty/writer.js +1 -1
- package/core/accessorSupport/read.js +1 -1
- package/core/accessorSupport/tracking.js +1 -1
- package/core/accessorSupport/write.js +1 -1
- package/core/devEnvironmentUtils.js +1 -1
- package/core/has.js +1 -1
- package/core/libs/gl-matrix-2/factories/vec2f64.js +1 -1
- package/core/libs/gl-matrix-2/math/vec3.js +1 -1
- package/core/libs/rbush/PooledRBush.js +1 -1
- package/core/promiseUtils.js +1 -1
- package/core/reactiveUtils.js +1 -1
- package/core/scheduling.js +1 -1
- package/core/throttle.js +1 -1
- package/core/urlUtils.js +1 -1
- package/core/watchUtils.js +1 -1
- package/core/workers/RemoteClient.js +1 -1
- package/core/workers/WorkerOwner.js +1 -1
- package/core/workers/loaderConfig.js +1 -1
- package/core/workers/workerFactory.js +1 -1
- package/geometry/Mesh.js +1 -1
- package/geometry/geometryEngine.js +1 -1
- package/geometry/geometryEngineAsync.js +1 -1
- package/geometry/projection.js +1 -1
- package/geometry/support/axisAngleDegrees.js +1 -1
- package/geometry/support/meshUtils/centerAt.js +1 -1
- package/geometry/support/meshUtils/deduplicate.js +1 -1
- package/geometry/support/meshUtils/elevation.js +1 -1
- package/geometry/support/meshUtils/geographicUtils.js +1 -1
- package/geometry/support/meshUtils/georeference.js +1 -1
- package/geometry/support/meshUtils/loadExternal.js +1 -1
- package/geometry/support/meshUtils/loadGLTFMesh.js +1 -1
- package/geometry/support/meshUtils/offset.js +1 -1
- package/geometry/support/meshUtils/rotate.js +1 -1
- package/geometry/support/meshUtils/scale.js +1 -1
- package/geometry/support/normalizeUtils.js +1 -1
- package/geometry/support/normalizeUtilsCommon.js +1 -1
- package/geometry/support/offset.js +1 -1
- package/geometry/support/rotate.js +1 -1
- package/identity/IdentityManagerBase.js +1 -1
- package/identity/IdentityModal.js +1 -1
- package/interfaces.d.ts +109 -2
- package/intl/locale.js +1 -1
- package/intl/messages.js +1 -1
- package/kernel.js +1 -1
- package/layers/AnalysisLayer.js +1 -1
- package/layers/CSVLayer.js +1 -1
- package/layers/FeatureLayer.js +1 -1
- package/layers/GeoJSONLayer.js +1 -1
- package/layers/GeoRSSLayer.js +1 -1
- package/layers/ImageryLayer.js +1 -1
- package/layers/ImageryTileLayer.js +1 -1
- package/layers/Layer.js +1 -1
- package/layers/MapImageLayer.js +1 -1
- package/layers/MapNotesLayer.js +1 -1
- package/layers/OGCFeatureLayer.js +1 -1
- package/layers/RouteLayer.js +1 -1
- package/layers/SceneLayer.js +1 -1
- package/layers/StreamLayer.js +1 -1
- package/layers/SubtypeGroupLayer.js +1 -1
- package/layers/TileLayer.js +1 -1
- package/layers/VectorTileLayer.js +1 -1
- package/layers/VoxelLayer.js +1 -1
- package/layers/VoxelWasmPerScene.js +1 -1
- package/layers/WCSLayer.js +1 -1
- package/layers/WFSLayer.js +1 -1
- package/layers/WMSLayer.js +1 -1
- package/layers/WMTSLayer.js +1 -1
- package/layers/buildingSublayers/BuildingComponentSublayer.js +1 -1
- package/layers/effects/EffectView.js +1 -1
- package/layers/effects/FeatureEffectView.js +1 -1
- package/layers/effects/jsonUtils.js +1 -1
- package/layers/graphics/OptimizedGeometry.js +1 -1
- package/layers/graphics/centroid.js +1 -1
- package/layers/graphics/controllers/FeatureTileController3D.js +1 -1
- package/layers/graphics/controllers/I3SOnDemandController.js +1 -1
- package/layers/graphics/data/QueryEngineResult.js +1 -1
- package/layers/graphics/data/StreamFeatureManager.js +1 -1
- package/layers/graphics/editingSupport.js +1 -1
- package/layers/graphics/objectIdUtils.js +1 -1
- package/layers/graphics/sources/CSVSource.js +1 -1
- package/layers/graphics/sources/FeatureLayerSource.js +1 -1
- package/layers/graphics/sources/GeoJSONSource.js +1 -1
- package/layers/graphics/sources/MemorySource.js +1 -1
- package/layers/graphics/sources/OGCFeatureSource.js +1 -1
- package/layers/graphics/sources/WFSSource.js +1 -1
- package/layers/graphics/sources/WFSSourceWorker.js +1 -1
- package/layers/graphics/sources/connections/WebSocketConnection.js +1 -1
- package/layers/graphics/sources/geojson/GeoJSONSourceWorker.js +1 -1
- package/layers/graphics/sources/geojson/geojson.js +1 -1
- package/layers/graphics/sources/support/CSVSourceWorker.js +1 -1
- package/layers/graphics/sources/support/QueryTask.js +1 -1
- package/layers/mixins/APIKeyMixin.js +1 -1
- package/layers/mixins/ArcGISImageService.js +1 -1
- package/layers/mixins/ArcGISMapService.js +1 -1
- package/layers/mixins/ImageryTileMixin.js +1 -1
- package/layers/mixins/OperationalLayer.js +1 -1
- package/layers/mixins/PortalLayer.js +1 -1
- package/layers/mixins/SceneService.js +1 -1
- package/layers/mixins/refresh.js +1 -1
- package/layers/ogc/dateUtils.js +1 -1
- package/layers/ogc/ogcFeatureUtils.js +1 -1
- package/layers/ogc/wfsUtils.js +1 -1
- package/layers/save/featureLayerUtils.js +1 -1
- package/layers/support/ExportImageParameters.js +1 -1
- package/layers/support/ExportImageServiceParameters.js +1 -1
- package/layers/support/ExportWMSImageParameters.js +1 -1
- package/layers/support/FeatureEffect.js +1 -1
- package/layers/support/FeatureType.js +1 -1
- package/layers/support/FetchAssociatedFeatureLayer.js +1 -1
- package/layers/support/LabelClass.js +1 -1
- package/layers/support/LayerContingentValuesCache.js +1 -1
- package/layers/support/RasterFunction.js +1 -1
- package/layers/support/RasterInfo.js +1 -1
- package/layers/support/RasterJobHandler.js +1 -1
- package/layers/support/RasterWorker.js +1 -1
- package/layers/support/Sublayer.js +1 -1
- package/layers/support/SubtypeSublayer.js +1 -1
- package/layers/support/TilemapCache.js +1 -1
- package/layers/support/TimeReference.d.ts +4 -0
- package/layers/support/WMTSSublayer.js +1 -1
- package/layers/support/arcgisLayers.js +1 -1
- package/layers/support/commonProperties.js +1 -1
- package/layers/support/editableLayers.js +1 -1
- package/layers/support/fieldUtils.js +1 -1
- package/layers/support/floorFilterUtils.js +1 -1
- package/layers/support/imageryRendererUtils.js +1 -1
- package/layers/support/layerUtils.js +1 -1
- package/layers/support/layersCreator.js +1 -1
- package/layers/support/rasterDatasets/BaseRaster.js +1 -1
- package/layers/support/rasterDatasets/CloudRaster.js +1 -1
- package/layers/support/rasterDatasets/ImageAuxRaster.js +1 -1
- package/layers/support/rasterDatasets/ImageServerRaster.js +1 -1
- package/layers/support/rasterDatasets/InMemoryRaster.js +1 -1
- package/layers/support/rasterDatasets/MRFRaster.js +1 -1
- package/layers/support/rasterDatasets/TIFFRaster.js +1 -1
- package/layers/support/rasterDatasets/WCSRaster.js +1 -1
- package/layers/support/rasterDatasets/multipartParser.js +1 -1
- package/layers/support/rasterDatasets/pamParser.js +1 -1
- package/layers/support/rasterDatasets/wcsCapabilitiesParser.js +1 -1
- package/layers/support/rasterDatasets/wcsCoverageParser.js +1 -1
- package/layers/support/rasterDatasets/xmlUtilities.js +1 -1
- package/layers/support/rasterFormats/Lerc.js +1 -1
- package/layers/support/rasterFormats/RasterCodec.js +1 -1
- package/layers/support/rasterFormats/TiffDecoder.js +1 -1
- package/layers/support/rasterFunctions/pixelUtils.js +1 -1
- package/layers/support/rasterFunctions/rasterProjectionHelper.js +1 -1
- package/layers/support/rasterFunctions/stretchUtils.js +1 -1
- package/layers/support/rasterFunctions/vectorFieldUtils.js +1 -1
- package/layers/support/rasterTransforms/PolynomialTransform.js +1 -1
- package/layers/support/rasterTransforms/utils.js +1 -1
- package/layers/support/source/DataLayerSource.js +1 -1
- package/layers/support/source/QueryTableDataSource.js +1 -1
- package/layers/support/vectorTileLayerLoader.js +1 -1
- package/layers/support/wmsUtils.js +1 -1
- package/layers/support/wmtsUtils.js +1 -1
- package/libs/maquette-advanced-projector/projector.js +1 -1
- package/networks/Network.js +1 -1
- package/networks/UtilityNetwork.js +1 -1
- package/networks/support/utils.js +1 -1
- package/package.json +1 -1
- package/popup/content/ExpressionContent.js +1 -1
- package/portal/Portal.js +1 -1
- package/portal/PortalItem.js +1 -1
- package/portal/support/geometryServiceUtils.js +1 -1
- package/portal/support/layersLoader.js +1 -1
- package/portal/support/portalItemUtils.js +1 -1
- package/portal/support/portalLayers.js +1 -1
- package/renderers/DictionaryRenderer.js +1 -1
- package/renderers/FlowRenderer.js +1 -1
- package/renderers/RasterColormapRenderer.js +1 -1
- package/renderers/RasterStretchRenderer.js +1 -1
- package/renderers/VectorFieldRenderer.js +1 -1
- package/renderers/support/RasterSymbolizer.js +1 -1
- package/renderers/support/UniqueValueInfo.js +1 -1
- package/renderers/support/colorRampUtils.js +1 -1
- package/renderers/support/heatmapUtils.js +1 -1
- package/renderers/support/rasterRendererHelper.js +1 -1
- package/request.js +1 -1
- package/rest/identify.js +1 -1
- package/rest/imageService.js +1 -1
- package/rest/networkService.js +1 -1
- package/rest/networks/support/SynthesizeAssociationGeometriesParameters.js +1 -1
- package/rest/operations/identify.js +1 -1
- package/rest/print.js +1 -1
- package/rest/query/executeQuery.js +1 -1
- package/rest/query/operations/query.js +1 -1
- package/rest/query/operations/queryRelatedRecords.js +1 -1
- package/rest/query/operations/queryTopFeatures.js +1 -1
- package/rest/route.js +1 -1
- package/rest/support/DirectionLine.js +1 -1
- package/rest/support/DirectionPoint.js +1 -1
- package/rest/support/DirectionsFeatureSet.js +1 -1
- package/rest/support/FeatureSet.js +1 -1
- package/rest/support/ImageSampleParameters.js +1 -1
- package/rest/support/PointBarrier.js +1 -1
- package/rest/support/PolygonBarrier.js +1 -1
- package/rest/support/PolylineBarrier.js +1 -1
- package/rest/support/RouteInfo.js +1 -1
- package/rest/support/Stop.js +1 -1
- package/rest/support/meshFeatureSet.js +1 -1
- package/rest/support/printTaskUtils.js +1 -1
- package/smartMapping/labels/clusters.js +1 -1
- package/smartMapping/raster/renderers/rgb.js +1 -1
- package/smartMapping/raster/renderers/uniqueValue.js +1 -1
- package/smartMapping/raster/support/adapters/ImageryLayerAdapter.js +1 -1
- package/smartMapping/raster/support/adapters/RasterLayerAdapter.js +1 -1
- package/smartMapping/raster/support/utils.js +1 -1
- package/smartMapping/renderers/color.js +1 -1
- package/smartMapping/renderers/size.js +1 -1
- package/smartMapping/renderers/support/utils.js +1 -1
- package/smartMapping/renderers/univariateColorSize.js +1 -1
- package/smartMapping/statistics/support/WorkerClient.js +1 -1
- package/smartMapping/support/adapters/CSVLayerAdapter.js +1 -1
- package/smartMapping/support/adapters/FeatureLayerAdapter.js +1 -1
- package/smartMapping/support/adapters/OGCFeatureLayerAdapter.js +1 -1
- package/smartMapping/support/adapters/SceneLayerAdapter.js +1 -1
- package/smartMapping/support/adapters/support/utils.js +1 -1
- package/statistics/utils.js +1 -1
- package/support/LayersMixin.js +1 -1
- package/support/TablesMixin.js +1 -1
- package/support/arcadeUtils.js +1 -1
- package/support/basemapUtils.js +1 -1
- package/support/popupUtils.js +1 -1
- package/support/revision.js +1 -1
- package/support/timeUtils.js +1 -1
- package/symbols/FillSymbol3DLayer.js +1 -1
- package/symbols/LineSymbol3DLayer.js +1 -1
- package/symbols/LineSymbolMarker.js +1 -1
- package/symbols/PictureFillSymbol.js +1 -1
- package/symbols/PointSymbol3D.js +1 -1
- package/symbols/SimpleLineSymbol.js +1 -1
- package/symbols/SimpleMarkerSymbol.js +1 -1
- package/symbols/cim/CIMResourceManager.js +1 -1
- package/symbols/cim/CIMSymbolDrawHelper.js +1 -1
- package/symbols/cim/CIMSymbolHelper.js +1 -1
- package/symbols/cim/ExpandedCIM.js +1 -1
- package/symbols/cim/SDFHelper.js +1 -1
- package/symbols/cim/cimAnalyzer.js +1 -1
- package/symbols/cim/effects/EffectControlMeasureLine.js +1 -1
- package/symbols/cim/effects/EffectDashes.js +1 -1
- package/symbols/cim/effects/EffectOffset.js +1 -1
- package/symbols/cim/placements/PlacementAlongLineSameSize.js +1 -1
- package/symbols/cim/utils.js +1 -1
- package/symbols/support/cimSymbolUtils.js +1 -1
- package/symbols/support/jsonUtils.js +1 -1
- package/symbols/support/previewCIMSymbol.js +1 -1
- package/symbols/support/previewSymbol2D.js +1 -1
- package/symbols/support/previewSymbol3D.js +1 -1
- package/symbols/support/previewWebStyleSymbol.js +1 -1
- package/symbols/support/svgUtils.js +1 -1
- package/symbols/support/symbolConversion.js +1 -1
- package/symbols/support/symbolUtils.js +1 -1
- package/tasks/GenerateRendererTask.js +1 -1
- package/views/2d/MapViewConstraints.js +1 -1
- package/views/2d/constraints/GeometryConstraint.js +1 -1
- package/views/2d/engine/Bitmap.js +1 -1
- package/views/2d/engine/Container.js +1 -1
- package/views/2d/engine/DisplayObject.js +1 -1
- package/views/2d/engine/Stage.js +1 -1
- package/views/2d/engine/imagery/BrushRasterBitmap.js +1 -1
- package/views/2d/engine/imagery/RasterBitmap.js +1 -1
- package/views/2d/engine/imagery/RasterVFDisplayObject.js +1 -1
- package/views/2d/engine/vectorTiles/TilemapRequest.js +1 -1
- package/views/2d/engine/vectorTiles/WorkerTileHandler.js +1 -1
- package/views/2d/engine/vectorTiles/buckets/FillBucket.js +1 -1
- package/views/2d/engine/vectorTiles/buckets/LineBucket.js +1 -1
- package/views/2d/engine/vectorTiles/expression/expression.js +1 -1
- package/views/2d/engine/vectorTiles/shaders/VTLMaterial.js +1 -1
- package/views/2d/engine/vectorTiles/style/StyleLayer.js +1 -1
- package/views/2d/engine/vectorTiles/style/StyleRepository.js +1 -1
- package/views/2d/engine/vectorTiles/style/VectorTileSource.js +1 -1
- package/views/2d/engine/webgl/FeatureTile.js +1 -1
- package/views/2d/engine/webgl/GraphicTile.js +1 -1
- package/views/2d/engine/webgl/TextureManager.js +1 -1
- package/views/2d/engine/webgl/brushes/WGLBrushHeatmap.js +1 -1
- package/views/2d/engine/webgl/brushes/WGLBrushVTLCircle.js +1 -1
- package/views/2d/engine/webgl/brushes/WGLBrushVTLFill.js +1 -1
- package/views/2d/engine/webgl/brushes/WGLBrushVTLLine.js +1 -1
- package/views/2d/engine/webgl/collisions/CollisionEngine.js +1 -1
- package/views/2d/engine/webgl/collisions/MetricReader.js +1 -1
- package/views/2d/engine/webgl/cpuMapped/DisplayRecordReader.js +1 -1
- package/views/2d/engine/webgl/cpuMapped/FreeList.js +1 -1
- package/views/2d/engine/webgl/mesh/MeshData.js +1 -1
- package/views/2d/engine/webgl/mesh/templates/WGLBaseLineTemplate.js +1 -1
- package/views/2d/engine/webgl/mesh/templates/WGLBaseMarkerTemplate.js +1 -1
- package/views/2d/engine/webgl/mesh/templates/WGLBaseTextTemplate.js +1 -1
- package/views/2d/engine/webgl/mesh/templates/WGLDynamicFillTemplate.js +1 -1
- package/views/2d/engine/webgl/mesh/templates/WGLLabelTemplate.js +1 -1
- package/views/2d/engine/webgl/mesh/templates/WGLLineTemplate.js +1 -1
- package/views/2d/engine/webgl/mesh/templates/WGLMeshTemplate.js +1 -1
- package/views/2d/engine/webgl/painter/RenderPass.js +1 -1
- package/views/2d/engine/webgl/shaders/sources/shaderRepository.js +1 -1
- package/views/2d/engine/webgl/techniques/dotDensity/TechniqueDotDensity.js +1 -1
- package/views/2d/input/MapViewInputManager.js +1 -1
- package/views/2d/input/handlers/GamepadNavigation.js +1 -1
- package/views/2d/interactive/editingTools/draw/DrawGraphicTool2D.js +1 -1
- package/views/2d/interactive/snapping/featureSources/featureServiceSource/FeatureServiceTiles2D.js +1 -1
- package/views/2d/layers/BaseLayerView2D.js +1 -1
- package/views/2d/layers/BaseLayerViewGL2D.js +1 -1
- package/views/2d/layers/BitmapTileLayerView2D.js +1 -1
- package/views/2d/layers/FeatureLayerView2D.js +1 -1
- package/views/2d/layers/GeoRSSLayerView2D.js +1 -1
- package/views/2d/layers/GraphicsLayerView2D.js +1 -1
- package/views/2d/layers/ImageryLayerView2D.js +1 -1
- package/views/2d/layers/ImageryTileLayerView2D.js +1 -1
- package/views/2d/layers/KMLLayerView2D.js +1 -1
- package/views/2d/layers/LayerView2D.js +1 -1
- package/views/2d/layers/SubtypeGroupLayerView2D.js +1 -1
- package/views/2d/layers/TileLayerView2D.js +1 -1
- package/views/2d/layers/VectorTileLayerView2D.js +1 -1
- package/views/2d/layers/WMTSLayerView2D.js +1 -1
- package/views/2d/layers/features/FeatureStore2D.js +1 -1
- package/views/2d/layers/features/Pipeline.js +1 -1
- package/views/2d/layers/features/batchUtils.js +1 -1
- package/views/2d/layers/features/controllers/FeatureController2D.js +1 -1
- package/views/2d/layers/features/controllers/support/sourceAdapters.js +1 -1
- package/views/2d/layers/features/createSymbolSchema.js +1 -1
- package/views/2d/layers/features/processors/SymbolProcessor.js +1 -1
- package/views/2d/layers/features/schemaUtils.js +1 -1
- package/views/2d/layers/features/sources/BaseFeatureSource.js +1 -1
- package/views/2d/layers/features/sources/DataTileSource.js +1 -1
- package/views/2d/layers/features/sources/DataTileSubscription.js +1 -1
- package/views/2d/layers/features/sources/SnapshotFeatureSource.js +1 -1
- package/views/2d/layers/features/support/ClusterStore.js +1 -1
- package/views/2d/layers/features/support/FeatureSetReader.js +1 -1
- package/views/2d/layers/features/support/FeatureSetReaderJSON.js +1 -1
- package/views/2d/layers/features/support/FeatureSetReaderPBF.js +1 -1
- package/views/2d/layers/features/support/FeatureSetReaderPBFHeader.js +1 -1
- package/views/2d/layers/features/support/ResourceManagerProxy.js +1 -1
- package/views/2d/layers/features/tileRenderers/SymbolTileRenderer.js +1 -1
- package/views/2d/layers/features/tileRenderers/support/WGLFeatureView.js +1 -1
- package/views/2d/layers/graphics/graphicsUtils.js +1 -1
- package/views/2d/layers/imagery/BaseImageryTileSubView2D.js +1 -1
- package/views/2d/layers/imagery/ImageryTileView2D.js +1 -1
- package/views/2d/layers/imagery/VectorFieldTileView2D.js +1 -1
- package/views/2d/layers/support/ExportStrategy.js +1 -1
- package/views/2d/layers/support/FeatureCommandQueue.js +1 -1
- package/views/2d/magnifier/MagnifierView2D.js +1 -1
- package/views/2d/support/engineHelpers.js +1 -1
- package/views/2d/tiling/TileManager.js +1 -1
- package/views/3d/analysis/AreaMeasurement/support/AreaMeasurementVisualization.js +1 -1
- package/views/3d/analysis/AreaMeasurementAnalysisView3D.js +1 -1
- package/views/3d/analysis/Dimensioning/DimensioningVisualization.js +5 -0
- package/views/3d/analysis/Dimensioning/LinearDimensionVisualization.js +5 -0
- package/views/3d/analysis/DimensioningAnalysisView3D.js +1 -1
- package/views/3d/analysis/DirectLineMeasurement/DirectLineMeasurementController.js +1 -1
- package/views/3d/analysis/DirectLineMeasurement/DirectLineMeasurementVisualization.js +1 -1
- package/views/3d/analysis/DirectLineMeasurementAnalysisView3D.js +1 -1
- package/views/3d/analysis/LineOfSight/LineOfSightController.js +1 -1
- package/views/3d/analysis/LineOfSightAnalysisView3D.js +1 -1
- package/views/3d/analysis/Slice/SliceTool.js +1 -1
- package/views/3d/analysis/SliceAnalysisView3D.js +1 -1
- package/views/3d/environment/ChapmanAtmosphere.glsl.js +1 -1
- package/views/3d/environment/ChapmanAtmosphere.js +1 -1
- package/views/3d/environment/Clouds.glsl.js +1 -1
- package/views/3d/environment/CloudsComposition.glsl.js +1 -1
- package/views/3d/environment/CloudsComposition.js +1 -1
- package/views/3d/environment/CloudsCompositionParameters.js +5 -0
- package/views/3d/environment/EnvironmentRenderer.js +1 -1
- package/views/3d/environment/Fog.glsl.js +1 -1
- package/views/3d/environment/Fog.js +1 -1
- package/views/3d/environment/Precipitation.js +1 -1
- package/views/3d/environment/SceneViewEnvironment.js +1 -1
- package/views/3d/environment/SceneViewEnvironmentManager.js +1 -1
- package/views/3d/environment/SimpleAtmosphere.js +1 -1
- package/views/3d/environment/Stars.glsl.js +1 -1
- package/views/3d/environment/Stars.js +1 -1
- package/views/3d/externalRenderers/ExternalRendererStore.js +1 -1
- package/views/3d/glTF/internal/Resource.js +1 -1
- package/views/3d/glTF/loader.js +1 -1
- package/views/3d/input/SceneInputManager.js +1 -1
- package/views/3d/input/handlers/TwoFingerTilt.js +1 -1
- package/views/3d/interactive/Manipulator3D.js +1 -1
- package/views/3d/interactive/editingTools/draw/DrawGraphicTool3D.js +1 -1
- package/views/3d/interactive/editingTools/manipulations/MoveManipulation.js +1 -1
- package/views/3d/interactive/editingTools/moveGraphic/isSupportedGraphic.js +1 -1
- package/views/3d/interactive/editingTools/reshapeGraphic/GraphicReshapeTool.js +1 -1
- package/views/3d/interactive/editingTools/reshapeGraphic/ReshapeOperation.js +1 -1
- package/views/3d/interactive/editingTools/reshapeGraphic/isSupportedGraphic.js +1 -1
- package/views/3d/interactive/editingTools/transformGraphic/GraphicScaleRotateTransform.js +1 -1
- package/views/3d/interactive/editingTools/transformGraphic/isSupportedGraphic.js +1 -1
- package/views/3d/interactive/measurementTools/areaMeasurement3D/AreaMeasurement3DView.js +1 -1
- package/views/3d/interactive/measurementTools/directLineMeasurement3D/DirectLineMeasurement3DView.js +1 -1
- package/views/3d/interactive/snapping/featureSources/featureServiceSource/FeatureServiceTiles3D.js +1 -1
- package/views/3d/interactive/visualElements/DrapedVisualElementResources.js +1 -1
- package/views/3d/interactive/visualElements/LineVisualElement.js +1 -1
- package/views/3d/interactive/visualElements/OutlineVisualElement.js +1 -1
- package/views/3d/interactive/visualElements/VisualElementResources.js +1 -1
- package/views/3d/layers/BuildingComponentSublayerView3D.js +1 -1
- package/views/3d/layers/ElevationLayerView3D.js +1 -1
- package/views/3d/layers/FeatureLayerView3D.js +1 -1
- package/views/3d/layers/FeatureLayerViewBase3D.js +1 -1
- package/views/3d/layers/FeatureLikeLayerView3D.js +1 -1
- package/views/3d/layers/GraphicsLayerView3D.js +1 -1
- package/views/3d/layers/GraphicsView3D.js +1 -1
- package/views/3d/layers/I3SMeshView3D.js +1 -1
- package/views/3d/layers/ImageryLayerView3D.js +1 -1
- package/views/3d/layers/ImageryTileLayerView3D.js +1 -1
- package/views/3d/layers/LayerView3D.js +1 -1
- package/views/3d/layers/RouteLayerView3D.js +1 -1
- package/views/3d/layers/SceneLayerGraphicsView3D.js +1 -1
- package/views/3d/layers/SceneLayerView3D.js +1 -1
- package/views/3d/layers/SceneLayerWorker.js +1 -1
- package/views/3d/layers/StreamLayerView3D.js +1 -1
- package/views/3d/layers/TiledLayerView3D.js +1 -1
- package/views/3d/layers/VectorTileLayerView3D.js +1 -1
- package/views/3d/layers/VoxelLayerView3D.js +1 -1
- package/views/3d/layers/WMSLayerView3D.js +1 -1
- package/views/3d/layers/WMTSLayerView3D.js +1 -1
- package/views/3d/layers/graphics/Graphics3DCore.js +1 -1
- package/views/3d/layers/graphics/Graphics3DExtrudeSymbolLayer.js +1 -1
- package/views/3d/layers/graphics/Graphics3DFeatureProcessor.js +1 -1
- package/views/3d/layers/graphics/Graphics3DFilterVisibility.js +1 -1
- package/views/3d/layers/graphics/Graphics3DFrustumVisibility.js +1 -1
- package/views/3d/layers/graphics/Graphics3DLineSymbolLayer.js +1 -1
- package/views/3d/layers/graphics/Graphics3DMeshFillSymbolLayer.js +1 -1
- package/views/3d/layers/graphics/Graphics3DObject3DGraphicLayer.js +1 -1
- package/views/3d/layers/graphics/Graphics3DPathSymbolLayer.js +1 -1
- package/views/3d/layers/graphics/Graphics3DPointSymbol.js +1 -1
- package/views/3d/layers/graphics/Graphics3DSymbol.js +1 -1
- package/views/3d/layers/graphics/Graphics3DSymbolLayer.js +1 -1
- package/views/3d/layers/graphics/GraphicsDeconflictor.js +1 -1
- package/views/3d/layers/graphics/GraphicsProcessor.js +1 -1
- package/views/3d/layers/graphics/Labeler.js +1 -1
- package/views/3d/layers/i3s/I3SAttributeOverrides.js +1 -1
- package/views/3d/layers/i3s/I3SMeshViewFilter.js +1 -1
- package/views/3d/layers/i3s/I3SStreamDataController.js +1 -1
- package/views/3d/layers/i3s/I3SUtil.js +1 -1
- package/views/3d/layers/support/FeatureTileTree3D.js +1 -1
- package/views/3d/layers/support/FeatureTileTree3DDebugger.js +1 -1
- package/views/3d/layers/support/HeatmapFeatureProcessor.js +1 -1
- package/views/3d/layers/support/StageLayerElevationProvider.js +1 -1
- package/views/3d/layers/support/featureTileQuery3D.js +1 -1
- package/views/3d/state/ConstraintsManager.js +1 -1
- package/views/3d/state/helpers/SceneIntersectionHelper.js +1 -1
- package/views/3d/support/ResourceController.js +1 -1
- package/views/3d/support/SharedSymbolResources.js +1 -1
- package/views/3d/support/TextureCollection.js +1 -1
- package/views/3d/support/cameraUtils.js +1 -1
- package/views/3d/support/pointsOfInterest/CameraOnSurface.js +1 -1
- package/views/3d/support/pointsOfInterest/Focus.js +1 -1
- package/views/3d/support/pointsOfInterest/PointsOfInterest.js +1 -1
- package/views/3d/support/pointsOfInterest/StableSurfaceCenter.js +1 -1
- package/views/3d/terrain/OverlayFramebufferObject.js +1 -1
- package/views/3d/terrain/OverlayManager.js +1 -1
- package/views/3d/terrain/OverlayRenderer.js +1 -1
- package/views/3d/terrain/PatchGeometry.js +1 -1
- package/views/3d/terrain/PatchGeometryFactory.js +1 -1
- package/views/3d/terrain/PatchRenderData.js +1 -1
- package/views/3d/terrain/PlanarPatch.js +1 -1
- package/views/3d/terrain/RasterColorizerTechnique.js +1 -1
- package/views/3d/terrain/RasterTile.js +1 -1
- package/views/3d/terrain/SphericalPatch.js +1 -1
- package/views/3d/terrain/TerrainRenderer.js +1 -1
- package/views/3d/terrain/TerrainSurface.js +1 -1
- package/views/3d/terrain/Tile.js +1 -1
- package/views/3d/terrain/TileCompositor.js +1 -1
- package/views/3d/terrain/TileRenderer.js +1 -1
- package/views/3d/terrain/TilingSchemeLogic.js +1 -1
- package/views/3d/terrain/terrainUtils.js +1 -1
- package/views/3d/webgl-engine/collections/Component/ComponentIntersectionData.js +1 -1
- package/views/3d/webgl-engine/collections/Component/ComponentObjectCollection.js +1 -1
- package/views/3d/webgl-engine/collections/Component/Material/ComponentTechnique.js +1 -1
- package/views/3d/webgl-engine/collections/Component/Material/shader/ComponentData.glsl.js +2 -2
- package/views/3d/webgl-engine/core/material/MaterialBase.js +1 -1
- package/views/3d/webgl-engine/core/shaderLibrary/ScreenSizeScaling.glsl.js +1 -1
- package/views/3d/webgl-engine/core/shaderLibrary/Slice.glsl.js +5 -5
- package/views/3d/webgl-engine/core/shaderLibrary/attributes/PathVertexPosition.glsl.js +8 -8
- package/views/3d/webgl-engine/core/shaderLibrary/attributes/RibbonVertexPosition.glsl.js +6 -6
- package/views/3d/webgl-engine/core/shaderLibrary/attributes/VertexNormal.glsl.js +4 -4
- package/views/3d/webgl-engine/core/shaderLibrary/attributes/VertexPosition.glsl.js +2 -2
- package/views/3d/webgl-engine/core/shaderLibrary/attributes/VerticalOffset.glsl.js +5 -5
- package/views/3d/webgl-engine/core/shaderLibrary/hud/HUD.glsl.js +13 -13
- package/views/3d/webgl-engine/core/shaderLibrary/raster/BasicGrid.glsl.js +2 -2
- package/views/3d/webgl-engine/core/shaderLibrary/raster/Colormap.glsl.js +1 -1
- package/views/3d/webgl-engine/core/shaderLibrary/raster/Common.glsl.js +2 -2
- package/views/3d/webgl-engine/core/shaderLibrary/raster/Projection.glsl.js +1 -1
- package/views/3d/webgl-engine/core/shaderLibrary/raster/RasterColorizer.glsl.js +1 -1
- package/views/3d/webgl-engine/core/shaderLibrary/shading/ComputeMaterialColor.glsl.js +1 -1
- package/views/3d/webgl-engine/core/shaderLibrary/shading/EvaluateAmbientLighting.glsl.js +5 -5
- package/views/3d/webgl-engine/core/shaderLibrary/shading/EvaluateAmbientOcclusion.glsl.js +3 -3
- package/views/3d/webgl-engine/core/shaderLibrary/shading/EvaluateSceneLighting.glsl.js +13 -13
- package/views/3d/webgl-engine/core/shaderLibrary/shading/LineStipple.glsl.js +17 -17
- package/views/3d/webgl-engine/core/shaderLibrary/shading/ReadShadowMap.glsl.js +1 -1
- package/views/3d/webgl-engine/core/shaderLibrary/shading/VisualVariables.glsl.js +7 -7
- package/views/3d/webgl-engine/core/shaderLibrary/shading/WaterDistortion.glsl.js +2 -2
- package/views/3d/webgl-engine/core/shaderLibrary/terrain/Overlay.glsl.js +5 -5
- package/views/3d/webgl-engine/core/shaderLibrary/util/CameraSpace.glsl.js +2 -2
- package/views/3d/webgl-engine/core/shaderLibrary/util/CloudsParallaxShading.glsl.js +15 -15
- package/views/3d/webgl-engine/core/shaderLibrary/util/ScreenSizePerspective.glsl.js +2 -2
- package/views/3d/webgl-engine/core/shaderLibrary/util/View.glsl.js +1 -1
- package/views/3d/webgl-engine/core/shaderModules/BooleanPassUniform.js +5 -0
- package/views/3d/webgl-engine/core/shaderModules/Float4DrawUniform.js +5 -0
- package/views/3d/webgl-engine/core/shaderModules/{Matrix3Uniform.js → Float4PassUniform.js} +1 -1
- package/views/3d/webgl-engine/core/shaderModules/Float4Uniform.js +1 -1
- package/views/3d/webgl-engine/core/shaderModules/Matrix3DrawUniform.js +5 -0
- package/views/3d/webgl-engine/core/shaderModules/Matrix3PassUniform.js +5 -0
- package/views/3d/webgl-engine/core/shaderModules/{TextureCubeUniform.js → TextureCubePassUniform.js} +1 -1
- package/views/3d/webgl-engine/core/shaderTechnique/ShaderTechniqueConfiguration.js +1 -1
- package/views/3d/webgl-engine/lib/AutoDisposable.js +1 -1
- package/views/3d/webgl-engine/lib/BindParameters.js +1 -1
- package/views/3d/webgl-engine/lib/GLTextureMaterial.js +1 -1
- package/views/3d/webgl-engine/lib/RenderPluginManager.js +1 -1
- package/views/3d/webgl-engine/lib/Renderer.js +1 -1
- package/views/3d/webgl-engine/lib/ShadowAccumulator.js +1 -1
- package/views/3d/webgl-engine/lib/ShadowHighlight.js +1 -1
- package/views/3d/webgl-engine/lib/ShadowMap.js +1 -1
- package/views/3d/webgl-engine/lib/Texture.js +1 -1
- package/views/3d/webgl-engine/lib/WebGLLayer.js +1 -1
- package/views/3d/webgl-engine/lib/edgeRendering/EdgeView.js +1 -1
- package/views/3d/webgl-engine/lib/intersectorUtilsConversions.js +1 -1
- package/views/3d/webgl-engine/lib/pathGeometryUtils.js +1 -1
- package/views/3d/webgl-engine/materials/CheckerBoardMaterial.js +1 -1
- package/views/3d/webgl-engine/materials/ColorMaterial.js +1 -1
- package/views/3d/webgl-engine/materials/DefaultMaterial.js +1 -1
- package/views/3d/webgl-engine/materials/HUDMaterial.js +1 -1
- package/views/3d/webgl-engine/materials/HeatmapDensityMaterial.js +1 -1
- package/views/3d/webgl-engine/materials/ImageMaterial.js +1 -1
- package/views/3d/webgl-engine/materials/LineCalloutMaterial.js +1 -1
- package/views/3d/webgl-engine/materials/LineMarkerMaterial.js +1 -1
- package/views/3d/webgl-engine/materials/MeasurementArrowMaterial.js +1 -1
- package/views/3d/webgl-engine/materials/NativeLineMaterial.js +1 -1
- package/views/3d/webgl-engine/materials/PathMaterial.js +1 -1
- package/views/3d/webgl-engine/materials/PathTechnique.js +1 -1
- package/views/3d/webgl-engine/materials/RibbonLineMaterial.js +1 -1
- package/views/3d/webgl-engine/materials/ShadedColorMaterial.js +1 -1
- package/views/3d/webgl-engine/materials/{VisualVariableMaterialParameters.js → VisualVariablePassParameters.js} +1 -1
- package/views/3d/webgl-engine/materials/WaterGLMaterial.js +1 -1
- package/views/3d/webgl-engine/materials/WaterTechnique.js +1 -1
- package/views/3d/webgl-engine/parts/RenderView.js +1 -1
- package/views/3d/webgl-engine/parts/requireUtils.js +1 -1
- package/views/3d/webgl-engine/shaders/CheckerBoard.glsl.js +1 -1
- package/views/3d/webgl-engine/shaders/CheckerBoardTechnique.js +1 -1
- package/views/3d/webgl-engine/shaders/ColorMaterial.glsl.js +1 -1
- package/views/3d/webgl-engine/shaders/DefaultMaterial.glsl.js +1 -1
- package/views/3d/webgl-engine/shaders/DefaultMaterialTechnique.js +1 -1
- package/views/3d/webgl-engine/shaders/HUDMaterial.glsl.js +1 -1
- package/views/3d/webgl-engine/shaders/HUDMaterialTechnique.js +1 -1
- package/views/3d/webgl-engine/shaders/HeatmapDensity.glsl.js +1 -1
- package/views/3d/webgl-engine/shaders/HeatmapDensityTechnique.js +1 -1
- package/views/3d/webgl-engine/shaders/HeatmapTechnique.js +1 -1
- package/views/3d/webgl-engine/shaders/HighlightApply.glsl.js +1 -1
- package/views/3d/webgl-engine/shaders/LineCallout.glsl.js +1 -1
- package/views/3d/webgl-engine/shaders/LineMarker.glsl.js +1 -1
- package/views/3d/webgl-engine/shaders/Magnifier.glsl.js +3 -3
- package/views/3d/webgl-engine/shaders/MeasurementArrow.glsl.js +1 -1
- package/views/3d/webgl-engine/shaders/NativeLine.glsl.js +1 -1
- package/views/3d/webgl-engine/shaders/Path.glsl.js +1 -1
- package/views/3d/webgl-engine/shaders/Pattern.glsl.js +1 -1
- package/views/3d/webgl-engine/shaders/RealisticTree.glsl.js +1 -1
- package/views/3d/webgl-engine/shaders/RibbonLine.glsl.js +1 -1
- package/views/3d/webgl-engine/shaders/ShadedColorMaterial.glsl.js +1 -1
- package/views/3d/webgl-engine/shaders/ShadowCastVisualize.glsl.js +1 -1
- package/views/3d/webgl-engine/shaders/ShadowHighlight.glsl.js +1 -1
- package/views/3d/webgl-engine/shaders/SlicePlaneMaterial.glsl.js +1 -1
- package/views/3d/webgl-engine/shaders/WaterSurface.glsl.js +1 -1
- package/views/3d/webgl-engine/shaders/sources/edgeRenderer/AdjustProjectedPosition.glsl.js +3 -3
- package/views/3d/webgl-engine/shaders/sources/edgeRenderer/EdgeShader.glsl.js +1 -1
- package/views/3d/webgl-engine/shaders/sources/edgeRenderer/EdgeUtil.glsl.js +5 -5
- package/views/BasemapView.js +1 -1
- package/views/GroundView.js +1 -1
- package/views/LayerViewManager.js +1 -1
- package/views/MapView.js +1 -1
- package/views/SceneView.js +1 -1
- package/views/ToolViewManager.js +1 -1
- package/views/View.js +1 -1
- package/views/draw/DrawAction.js +1 -1
- package/views/draw/DrawGraphicTool.js +1 -1
- package/views/draw/DrawOperation.js +1 -1
- package/views/draw/DrawTool.js +1 -1
- package/views/draw/support/Box.js +1 -1
- package/views/draw/support/GraphicMover.js +1 -1
- package/views/draw/support/Reshape.js +1 -1
- package/views/interactive/coordinateHelper.js +1 -1
- package/views/interactive/editGeometry/operations/OffsetEdgeVertex.js +1 -1
- package/views/interactive/snapping/FeatureSnappingEngine.js +1 -1
- package/views/interactive/snapping/SnappingManager.js +1 -1
- package/views/interactive/snapping/featureSources/WorkerTileTreeDebugger.js +1 -1
- package/views/interactive/snapping/featureSources/featureServiceSource/FeatureServiceSnappingSourceWorkerHandle.js +1 -1
- package/views/interactive/snapping/featureSources/featureServiceSource/FeatureServiceTileStore.js +1 -1
- package/views/interactive/snapping/featureSources/featureServiceSource/FeatureServiceTiledFetcher.js +1 -1
- package/views/layers/FeatureLayerView.js +1 -1
- package/views/layers/GroupLayerView.js +1 -1
- package/views/layers/ImageryLayerView.js +1 -1
- package/views/layers/ImageryTileLayerView.js +1 -1
- package/views/layers/LayerView.js +1 -1
- package/views/layers/MapImageLayerView.js +1 -1
- package/views/layers/WMSLayerView.js +1 -1
- package/views/support/AllocationTracer.js +1 -1
- package/views/support/DefaultsFromMap.js +1 -1
- package/views/support/geometry2dUtils.js +1 -1
- package/views/support/layerViewUtils.js +1 -1
- package/views/support/waitForResources.js +1 -1
- package/views/ui/UI.js +1 -1
- package/views/webgl/BufferObject.js +1 -1
- package/views/webgl/FramebufferObject.js +1 -1
- package/views/webgl/RenderingContext.js +1 -1
- package/views/webgl/Texture.js +1 -1
- package/views/webgl/UniformBufferLayout.js +1 -1
- package/views/webgl/VertexArrayObject.js +1 -1
- package/views/webgl/capabilities.js +1 -1
- package/views/webgl/rasterUtils.js +1 -1
- package/views/webgl/testFloatBufferBlend.js +1 -1
- package/webdoc/widgets/TimeSlider.js +1 -1
- package/webmap/Bookmark.js +1 -1
- package/webscene/Slide.js +1 -1
- package/widgets/AreaMeasurement2D/AreaMeasurement2DTool.js +1 -1
- package/widgets/AreaMeasurement2D/AreaMeasurement2DViewModel.js +1 -1
- package/widgets/AreaMeasurement2D.js +1 -1
- package/widgets/AreaMeasurement3D.js +1 -1
- package/widgets/Attribution.js +1 -1
- package/widgets/BasemapGallery/BasemapGalleryViewModel.js +1 -1
- package/widgets/BasemapGallery/support/BasemapGalleryItem.js +1 -1
- package/widgets/BasemapGallery/support/basemapCompatibilityUtils.js +1 -1
- package/widgets/BasemapLayerList.js +1 -1
- package/widgets/BasemapToggle/BasemapToggleViewModel.js +1 -1
- package/widgets/Bookmarks/BookmarksViewModel.js +1 -1
- package/widgets/Bookmarks.js +1 -1
- package/widgets/BuildingExplorer/BuildingDisciplinesTree/BuildingDisciplinesNode.js +1 -1
- package/widgets/BuildingExplorer/BuildingExplorerViewModel.js +1 -1
- package/widgets/BuildingExplorer/BuildingLevel.js +1 -1
- package/widgets/BuildingExplorer/BuildingLevelPicker/BuildingLevelPicker.js +1 -1
- package/widgets/BuildingExplorer/BuildingNumericFilterViewModel.js +1 -1
- package/widgets/BuildingExplorer/BuildingPhase.js +1 -1
- package/widgets/BuildingExplorer/support/buildingLayerUtils.js +1 -1
- package/widgets/BuildingExplorer.js +1 -1
- package/widgets/CoordinateConversion/CoordinateConversionViewModel.js +1 -1
- package/widgets/CoordinateConversion/support/Format.js +1 -1
- package/widgets/Daylight/DaylightViewModel.js +1 -1
- package/widgets/Daylight/support/SliderWithDropdown.js +1 -1
- package/widgets/Daylight.js +1 -1
- package/widgets/DirectLineMeasurement3D.js +1 -1
- package/widgets/Directions/DirectionsViewModel.js +1 -1
- package/widgets/Directions.js +1 -1
- package/widgets/DistanceMeasurement2D/DistanceMeasurement2DViewModel.js +1 -1
- package/widgets/DistanceMeasurement2D.js +1 -1
- package/widgets/Editor/CreateFeaturesWorkflow.js +1 -1
- package/widgets/Editor/CreateWorkflow.js +1 -1
- package/widgets/Editor/EditorViewModel.js +1 -1
- package/widgets/Editor/UpdateWorkflow.js +1 -1
- package/widgets/Editor/workflowUtils.js +1 -1
- package/widgets/Editor.js +1 -1
- package/widgets/ElevationProfile/ElevationProfileLineGround.js +1 -1
- package/widgets/ElevationProfile/ElevationProfileLineInput.js +1 -1
- package/widgets/ElevationProfile/ElevationProfileLineView.js +1 -1
- package/widgets/ElevationProfile/ElevationProfileTool.js +1 -1
- package/widgets/ElevationProfile/ElevationProfileViewModel.js +1 -1
- package/widgets/ElevationProfile/components/Statistics.js +1 -1
- package/widgets/ElevationProfile/support/elevationQuerySourceUtils.js +1 -1
- package/widgets/ElevationProfile/support/profileUtils.js +1 -1
- package/widgets/ElevationProfile.js +1 -1
- package/widgets/Expand.js +1 -1
- package/widgets/Feature/FeatureAttachments.js +1 -1
- package/widgets/Feature/FeatureContent.js +1 -1
- package/widgets/Feature/FeatureExpression/FeatureExpressionViewModel.js +1 -1
- package/widgets/Feature/FeatureExpression.js +1 -1
- package/widgets/Feature/FeatureFields/FeatureFieldsViewModel.js +1 -1
- package/widgets/Feature/FeatureFields.js +1 -1
- package/widgets/Feature/FeatureMedia/FeatureMediaViewModel.js +1 -1
- package/widgets/Feature/FeatureMedia.js +1 -1
- package/widgets/Feature/FeatureViewModel.js +1 -1
- package/widgets/Feature/support/arcadeFeatureUtils.js +1 -1
- package/widgets/Feature/support/featureUtils.js +1 -1
- package/widgets/Feature/support/relatedFeatureUtils.js +1 -1
- package/widgets/FeatureForm/FeatureFormViewModel.js +1 -1
- package/widgets/FeatureForm/InputField.js +1 -1
- package/widgets/FeatureForm/support/formTemplateUtils.js +1 -1
- package/widgets/FeatureForm.js +1 -1
- package/widgets/FeatureTable/FeatureTableViewModel.js +1 -1
- package/widgets/FeatureTable/FieldColumn.js +1 -1
- package/widgets/FeatureTable/Grid/Column.js +1 -1
- package/widgets/FeatureTable/Grid/EditorColumn.js +1 -1
- package/widgets/FeatureTable/Grid/Grid.js +1 -1
- package/widgets/FeatureTable/Grid/GridViewModel.js +1 -1
- package/widgets/FeatureTable/Grid/support/ButtonMenu.js +1 -1
- package/widgets/FeatureTable/Grid/support/LocalStore.js +1 -1
- package/widgets/FeatureTable/support/FeatureStore.js +1 -1
- package/widgets/FeatureTable.js +1 -1
- package/widgets/FeatureTemplates/FeatureTemplatesViewModel.js +1 -1
- package/widgets/FeatureTemplates/ItemList.js +1 -1
- package/widgets/FeatureTemplates/TemplateItem.js +1 -1
- package/widgets/FeatureTemplates.js +1 -1
- package/widgets/FloorFilter/FloorFilterViewModel.js +1 -1
- package/widgets/FloorFilter.js +1 -1
- package/widgets/Fullscreen.js +1 -1
- package/widgets/Home.js +1 -1
- package/widgets/LayerList/LayerListViewModel.js +1 -1
- package/widgets/LayerList/support/layerListUtils.js +1 -1
- package/widgets/LayerList.js +1 -1
- package/widgets/Legend/LegendViewModel.js +1 -1
- package/widgets/Legend/styles/Card.js +1 -1
- package/widgets/Legend/styles/support/univariateUtils.js +1 -1
- package/widgets/Legend/support/ActiveLayerInfo.js +1 -1
- package/widgets/Legend/support/clusterUtils.js +1 -1
- package/widgets/Legend/support/sizeRampUtils.js +1 -1
- package/widgets/Locate/LocateViewModel.js +1 -1
- package/widgets/Popup/PopupViewModel.js +1 -1
- package/widgets/Popup/actionUtils.js +1 -1
- package/widgets/Popup.js +1 -1
- package/widgets/Print/PrintViewModel.js +1 -1
- package/widgets/Print.js +1 -1
- package/widgets/ScaleRangeSlider/ScaleRangeSliderViewModel.js +1 -1
- package/widgets/Search/LayerSearchSource.js +1 -1
- package/widgets/Search/SearchResultRenderer.js +1 -1
- package/widgets/Search/SearchViewModel.js +1 -1
- package/widgets/Search/support/geometryUtils.js +1 -1
- package/widgets/Search/support/layerSearchUtils.js +1 -1
- package/widgets/Search/support/locatorUtils.js +1 -1
- package/widgets/Search.js +1 -1
- package/widgets/ShadowCast/components/DiscreteConfigurator.js +1 -1
- package/widgets/ShadowCast/components/Label.js +1 -1
- package/widgets/ShadowCast/components/TimezonePicker.js +1 -1
- package/widgets/ShadowCast.js +1 -1
- package/widgets/Sketch/SketchViewModel.js +1 -1
- package/widgets/Sketch.js +1 -1
- package/widgets/Slider.js +1 -1
- package/widgets/Swipe/SwipeViewModel.js +1 -1
- package/widgets/TableList/TableListViewModel.js +1 -1
- package/widgets/TableList/support/tableListUtils.js +1 -1
- package/widgets/TableList.js +1 -1
- package/widgets/TimeSlider/TimeSliderViewModel.js +1 -1
- package/widgets/TimeSlider/utils.js +1 -1
- package/widgets/TimeSlider.js +1 -1
- package/widgets/UtilityNetworkTrace/UtilityNetworkTraceViewModel.js +1 -1
- package/widgets/Weather.js +1 -1
- package/widgets/Widget.js +1 -1
- package/widgets/smartMapping/BinaryColorSizeSlider/BinaryColorSizeSliderViewModel.js +1 -1
- package/widgets/smartMapping/BinaryColorSizeSlider.js +1 -1
- package/widgets/smartMapping/ClassedColorSlider.js +1 -1
- package/widgets/smartMapping/ClassedSizeSlider.js +1 -1
- package/widgets/smartMapping/ColorSizeSlider.js +1 -1
- package/widgets/smartMapping/SizeSlider/SizeSliderViewModel.js +1 -1
- package/widgets/smartMapping/SmartMappingSliderBase.js +1 -1
- package/widgets/smartMapping/SmartMappingSliderViewModel.js +1 -1
- package/widgets/support/AnalysisViewModel.js +1 -1
- package/widgets/support/ColorPicker.js +1 -1
- package/widgets/support/DatePicker.js +1 -1
- package/widgets/support/InteractiveAnalysisViewModel.js +1 -1
- package/widgets/support/Popover.js +1 -1
- package/widgets/support/SelectionToolbar/SelectionToolbarViewModel.js +1 -1
- package/widgets/support/SelectionToolbar.js +1 -1
- package/widgets/support/Selector2D/SelectionOperation2D.js +1 -1
- package/widgets/support/Selector2D.js +1 -1
- package/widgets/support/SnappingControls/SnappingControlsViewModel.js +1 -1
- package/widgets/support/SnappingControls.js +1 -1
- package/widgets/support/jsxWidgetSupport.js +1 -1
- package/widgets/support/widgetUtils.js +1 -1
- package/assets/esri/core/workers/chunks/049c5c30bd37693dddb7.js +0 -1
- package/assets/esri/core/workers/chunks/055a0ebf22a82f859474.js +0 -1
- package/assets/esri/core/workers/chunks/0b12ff7b2ed2838afbb8.js +0 -1
- package/assets/esri/core/workers/chunks/0e25548573baf855e394.js +0 -1
- package/assets/esri/core/workers/chunks/0edd4c3ca6e7d749d0e5.js +0 -1
- package/assets/esri/core/workers/chunks/0fcbf7e2db58e38ee6d1.js +0 -1
- package/assets/esri/core/workers/chunks/133f971e72a1a6277ac4.js +0 -1
- package/assets/esri/core/workers/chunks/135a90ae61f3b3cae91b.js +0 -1
- package/assets/esri/core/workers/chunks/13fde7fd56c39fa3f2d5.js +0 -1
- package/assets/esri/core/workers/chunks/1c90855c3b0e5dcff908.js +0 -1
- package/assets/esri/core/workers/chunks/1dbef1919c7ac10a6bcc.js +0 -1
- package/assets/esri/core/workers/chunks/1facbda248863cf72cbd.js +0 -1
- package/assets/esri/core/workers/chunks/1fb2d7abe6c8efa84695.js +0 -1
- package/assets/esri/core/workers/chunks/2068377c2a796d5f2245.js +0 -1
- package/assets/esri/core/workers/chunks/28a5878cbe5880476855.js +0 -1
- package/assets/esri/core/workers/chunks/2cf3934b3ecabdf207c8.js +0 -1
- package/assets/esri/core/workers/chunks/2d42711a629384144625.js +0 -1
- package/assets/esri/core/workers/chunks/3021fda52083fc67d18c.js +0 -1
- package/assets/esri/core/workers/chunks/30333a95dc0a44e23fb5.js +0 -1
- package/assets/esri/core/workers/chunks/30837d93116f0337972f.js +0 -1
- package/assets/esri/core/workers/chunks/320543485c8e22485075.js +0 -1
- package/assets/esri/core/workers/chunks/3f0f7da92a6e4493686e.js +0 -1
- package/assets/esri/core/workers/chunks/42057f252ba4e82a8b45.js +0 -1
- package/assets/esri/core/workers/chunks/45a3f6033cdf4bc74a4c.js +0 -1
- package/assets/esri/core/workers/chunks/492b65fe99641f5740f0.js +0 -1
- package/assets/esri/core/workers/chunks/4d1cd7df617273c489f4.js +0 -1
- package/assets/esri/core/workers/chunks/4df9dfa80dbbae9b743d.js +0 -1
- package/assets/esri/core/workers/chunks/515c1c055666ff4740f3.js +0 -1
- package/assets/esri/core/workers/chunks/541e644fc77dbe527124.js +0 -1
- package/assets/esri/core/workers/chunks/59e341b2db44351bf557.js +0 -1
- package/assets/esri/core/workers/chunks/5a10b58533b4116115ac.js +0 -1
- package/assets/esri/core/workers/chunks/5f940853341d7e2bc852.js +0 -1
- package/assets/esri/core/workers/chunks/5ff2cdecf95e0136dd52.js +0 -1
- package/assets/esri/core/workers/chunks/6147bfbe2bd7292d6ad0.js +0 -1
- package/assets/esri/core/workers/chunks/6467f996fe9f136c370b.js +0 -1
- package/assets/esri/core/workers/chunks/682a8f15f352de76df69.js +0 -1
- package/assets/esri/core/workers/chunks/6a06635089761ee3e6d4.js +0 -972
- package/assets/esri/core/workers/chunks/725828a41917d3d56f2d.js +0 -1
- package/assets/esri/core/workers/chunks/794b47764ebb0257ed41.js +0 -1
- package/assets/esri/core/workers/chunks/7fd03a75eb07a09cda35.js +0 -1
- package/assets/esri/core/workers/chunks/86ad6b020c01850d9095.js +0 -1
- package/assets/esri/core/workers/chunks/86f9d1ce36661781d962.js +0 -1
- package/assets/esri/core/workers/chunks/8dcf6c836b53b40dfbf1.js +0 -1
- package/assets/esri/core/workers/chunks/8e98ff9404a802352037.js +0 -1
- package/assets/esri/core/workers/chunks/94e51fe1c539df6257c2.js +0 -1
- package/assets/esri/core/workers/chunks/9519a02b9b8db88a3150.js +0 -1
- package/assets/esri/core/workers/chunks/9a8b50ed75219b4a42e1.js +0 -1
- package/assets/esri/core/workers/chunks/9f3a094aa4b47e4eb046.js +0 -1
- package/assets/esri/core/workers/chunks/a0ebf25c9c9a7f839b93.js +0 -1
- package/assets/esri/core/workers/chunks/a25f0a195f9217665530.js +0 -1
- package/assets/esri/core/workers/chunks/a2be1e0b632cef87f6a4.js +0 -1
- package/assets/esri/core/workers/chunks/a4d8cf9829da9cfc5f36.js +0 -1
- package/assets/esri/core/workers/chunks/a562059dbdd1bf1fab66.js +0 -1
- package/assets/esri/core/workers/chunks/a59ee7d2b98c85f27dd2.js +0 -1
- package/assets/esri/core/workers/chunks/a5dbab94697757c87c49.js +0 -1
- package/assets/esri/core/workers/chunks/a5e65d5a7a536759d1cc.js +0 -1
- package/assets/esri/core/workers/chunks/a8ac0b6a3eba35e3a5b6.js +0 -1
- package/assets/esri/core/workers/chunks/acbd0f4d72d1f5d8e4e8.js +0 -1
- package/assets/esri/core/workers/chunks/acc97a210f36bff2d1b0.js +0 -1
- package/assets/esri/core/workers/chunks/ad68fe924456d6d7d4f0.js +0 -1
- package/assets/esri/core/workers/chunks/b06c949fc7d08e376a5f.js +0 -1
- package/assets/esri/core/workers/chunks/b26bd8fde2fc65bb67fb.js +0 -1
- package/assets/esri/core/workers/chunks/b4405e9fe6c0cf7250d3.js +0 -1
- package/assets/esri/core/workers/chunks/bc08fe3b03767bd694c5.js +0 -1
- package/assets/esri/core/workers/chunks/c11501e96ffd81bf39a0.js +0 -1
- package/assets/esri/core/workers/chunks/c44116378cc1bc627044.js +0 -1
- package/assets/esri/core/workers/chunks/c9b09099488d0e719dfb.js +0 -1
- package/assets/esri/core/workers/chunks/cbea4f1eb814115748db.js +0 -1
- package/assets/esri/core/workers/chunks/ce262a2accd982988ef1.js +0 -1
- package/assets/esri/core/workers/chunks/d15e6662d90718411d62.js +0 -1
- package/assets/esri/core/workers/chunks/d16aac3461af9cee0c29.js +0 -1
- package/assets/esri/core/workers/chunks/d60dd3e1028f714f2258.js +0 -1
- package/assets/esri/core/workers/chunks/d6c150c243ca1f6108f9.js +0 -1
- package/assets/esri/core/workers/chunks/d85748b57a71999caf3a.js +0 -1
- package/assets/esri/core/workers/chunks/d8c59b1d73650c060dfb.js +0 -1
- package/assets/esri/core/workers/chunks/dcb6e1b33402d7fa455b.js +0 -1
- package/assets/esri/core/workers/chunks/df653bca2b14dffc82d1.js +0 -1
- package/assets/esri/core/workers/chunks/e2a12142439d3037a3a7.js +0 -1
- package/assets/esri/core/workers/chunks/e3e1d87b8532bf84a18d.js +0 -1
- package/assets/esri/core/workers/chunks/e7744b7e0c16bba93151.js +0 -1
- package/assets/esri/core/workers/chunks/ea50effc5c39870dc871.js +0 -1
- package/assets/esri/core/workers/chunks/f1665a64564593f2a438.js +0 -1
- package/assets/esri/core/workers/chunks/f4c12f3a5e7f89106ae0.js +0 -1
- package/assets/esri/core/workers/chunks/fbefdc74b3aab716187f.js +0 -1
- package/assets/esri/core/workers/chunks/fc4fd9db056579e09bfe.js +0 -1
- package/assets/esri/core/workers/chunks/fd4907fa96f55128764d.js +0 -1
- package/views/3d/webgl-engine/core/shaderModules/BooleanUniform.js +0 -5
|
@@ -2,4 +2,4 @@
|
|
|
2
2
|
All material copyright ESRI, All Rights Reserved, unless otherwise specified.
|
|
3
3
|
See https://js.arcgis.com/4.24/esri/copyright.txt for details.
|
|
4
4
|
*/
|
|
5
|
-
import{_ as
|
|
5
|
+
import{_ as i}from"../../../chunks/tslib.es6.js";import s from"../../../core/Accessor.js";import{destroyMaybe as o}from"../../../core/maybe.js";import{property as t}from"../../../core/accessorSupport/decorators/property.js";import"../../../core/arrayUtils.js";import"../../../core/has.js";import"../../../core/accessorSupport/ensureType.js";import{subclass as e}from"../../../core/accessorSupport/decorators/subclass.js";import{AnalysisView3D as r}from"./AnalysisView3D.js";import{DimensioningVisualization as a}from"./Dimensioning/DimensioningVisualization.js";let n=class extends(r(s)){constructor(i){super(i),this.type="dimensioning-view-3d",this.interactive=!1}initialize(){this._analysisVisualization=new a({view:this.view,analysis:this.analysis})}destroy(){this._analysisVisualization=o(this._analysisVisualization)}get testInfo(){return{visualization:this._analysisVisualization}}};i([t({readOnly:!0})],n.prototype,"type",void 0),i([t({constructOnly:!0,nonNullable:!0})],n.prototype,"analysis",void 0),i([t({type:Boolean})],n.prototype,"interactive",void 0),i([t()],n.prototype,"_analysisVisualization",void 0),n=i([e("esri.views.3d.analysis.DimensioningAnalysisView3D")],n);const p=n;export{p as default};
|
|
@@ -2,4 +2,4 @@
|
|
|
2
2
|
All material copyright ESRI, All Rights Reserved, unless otherwise specified.
|
|
3
3
|
See https://js.arcgis.com/4.24/esri/copyright.txt for details.
|
|
4
4
|
*/
|
|
5
|
-
import{_ as e}from"../../../../chunks/tslib.es6.js";import t from"../../../../core/Accessor.js";import i from"../../../../core/Handles.js";import s from"../../../../core/Logger.js";import{destroyMaybe as o,isNone as r,isSome as n}from"../../../../core/maybe.js";import{createQuantity as a}from"../../../../core/quantityUtils.js";import{when as c,watch as l,syncAndInitial as m}from"../../../../core/reactiveUtils.js";import{property as p}from"../../../../core/accessorSupport/decorators/property.js";import"../../../../core/arrayUtils.js";import"../../../../core/has.js";import"../../../../core/accessorSupport/ensureType.js";import{subclass as d}from"../../../../core/accessorSupport/decorators/subclass.js";import{i as h}from"../../../../chunks/vec3.js";import{c as u}from"../../../../chunks/vec3f64.js";import{geodesicLength as v}from"../../../../geometry/geometryEngine.js";import f from"../../../../geometry/Polyline.js";import{canProjectWithoutEngine as _,projectPointToVector as j,projectPointToWGS84ComparableLonLat as y}from"../../../../geometry/projection.js";import{getSphericalPCPF as g,SphericalECEFSpatialReference as D,WGS84ECEFSpatialReference as P}from"../../../../geometry/projectionEllipsoid.js";import{isSupported as w,geodesicLengths as z,inverseGeodeticSolver as A}from"../../../../geometry/support/geodesicUtils.js";import{MeasurementMode as R}from"../interfaces.js";import{applyProjectionAndElevationAlignment as E,logFailedGeometryProjectionError as b}from"../support/projectionUtils.js";import{UnitNormalizer as M}from"../support/UnitNormalizer.js";const S=s.getLogger("esri.views.3d.analysis.DirectLineMeasurement.DirectLineMeasurementController"),C=1e5;let L=class extends t{constructor(e){super(e),this._unitNormalizer=new M,this._handles=new i,this._tempStartPosition=u(),this._tempEndPosition=u(),this._tempCornerPosition=u()}initialize(){this._handles.add(c((()=>
|
|
5
|
+
import{_ as e}from"../../../../chunks/tslib.es6.js";import t from"../../../../core/Accessor.js";import i from"../../../../core/Handles.js";import s from"../../../../core/Logger.js";import{destroyMaybe as o,isNone as r,isSome as n}from"../../../../core/maybe.js";import{createQuantity as a}from"../../../../core/quantityUtils.js";import{when as c,watch as l,syncAndInitial as m}from"../../../../core/reactiveUtils.js";import{property as p}from"../../../../core/accessorSupport/decorators/property.js";import"../../../../core/arrayUtils.js";import"../../../../core/has.js";import"../../../../core/accessorSupport/ensureType.js";import{subclass as d}from"../../../../core/accessorSupport/decorators/subclass.js";import{i as h}from"../../../../chunks/vec3.js";import{c as u}from"../../../../chunks/vec3f64.js";import{geodesicLength as v}from"../../../../geometry/geometryEngine.js";import f from"../../../../geometry/Polyline.js";import{canProjectWithoutEngine as _,projectPointToVector as j,projectPointToWGS84ComparableLonLat as y}from"../../../../geometry/projection.js";import{getSphericalPCPF as g,SphericalECEFSpatialReference as D,WGS84ECEFSpatialReference as P}from"../../../../geometry/projectionEllipsoid.js";import{isSupported as w,geodesicLengths as z,inverseGeodeticSolver as A}from"../../../../geometry/support/geodesicUtils.js";import{MeasurementMode as R}from"../interfaces.js";import{applyProjectionAndElevationAlignment as E,logFailedGeometryProjectionError as b}from"../support/projectionUtils.js";import{UnitNormalizer as M}from"../support/UnitNormalizer.js";const S=s.getLogger("esri.views.3d.analysis.DirectLineMeasurement.DirectLineMeasurementController"),C=1e5;let L=class extends t{constructor(e){super(e),this._unitNormalizer=new M,this._handles=new i,this._tempStartPosition=u(),this._tempEndPosition=u(),this._tempCornerPosition=u()}initialize(){this._handles.add(c((()=>this.view?.ready),(()=>this._initialize()),{once:!0,sync:!0,initial:!0}))}destroy(){this._handles=o(this._handles)}_initialize(){const e=this.view.spatialReference,t=g(e),i=t===D?P:t;this._sphericalPCPF=i;const s=_(e,i);this._unitNormalizer.spatialReference=s?i:e,this._handles.add([l((()=>({viewData:this.viewData,startPoint:this.analysis.startPoint})),(({viewData:e,startPoint:t})=>{e.elevationAlignedStartPoint=this._applyProjectionAndElevationAlignment(t)}),m),l((()=>({viewData:this.viewData,endPoint:this.analysis.endPoint})),(({viewData:e,endPoint:t})=>{e.elevationAlignedEndPoint=this._applyProjectionAndElevationAlignment(t)}),m),l((()=>({result:this._computedResult,viewData:this.viewData})),(({result:e,viewData:t})=>{t.result=e}),m)])}_applyProjectionAndElevationAlignment(e){if(r(e))return e;const t=E(e,this.view.spatialReference,this.view.elevationProvider);return r(t)?(b(this.analysis,e.spatialReference,S),null):t}get _computedResult(){const{elevationAlignedStartPoint:e,elevationAlignedEndPoint:t,measurementMode:i}=this.viewData;if(r(e)||r(t))return null;const s=this._euclideanDistances(e,t),o=this._geodesicDistance(e,t,s.horizontal.value),n=i===R.Geodesic||i===R.Auto&&s.horizontal.value>C?"geodesic":"euclidean";return{mode:n,distance:"euclidean"===n?s.direct:o,directDistance:s.direct,horizontalDistance:s.horizontal,verticalDistance:s.vertical,geodesicDistance:o}}_euclideanDistances(e,t){const i=e.clone();i.z=t.z;const s=this._tempStartPosition,o=this._tempEndPosition,r=this._tempCornerPosition,n=this.view.spatialReference,c=this._sphericalPCPF,l=_(n,c)?c:n;j(e,s,l),j(t,o,l),j(i,r,l);const m=h(s,o),p=h(r,o),d=Math.abs(t.z-e.z),u=e=>this._unitNormalizer.normalizeDistance(e),v=u(m),f=u(p),y=u(d);return{direct:a(v,"meters"),horizontal:a(f,"meters"),vertical:a(y,"meters")}}_geodesicDistance(e,t,i){const s=e.spatialReference,o=new f({spatialReference:s});o.addPath([e,t]);const r=s.isGeographic&&w(s)?z([o],"meters")[0]:s.isWebMercator?v(o,"meters"):null,c=n(r)?r:this._fallbackGeodesicDistance(e,t,i);return a(c,"meters")}_fallbackGeodesicDistance(e,t,i){if(y(e,U)&&y(t,k)){const e={distance:0};return A(e,U,k),e.distance}return i}};e([p()],L.prototype,"view",void 0),e([p()],L.prototype,"analysis",void 0),e([p()],L.prototype,"viewData",void 0),e([p()],L.prototype,"_computedResult",null),L=e([d("esri.views.3d.analysis.DirectLineMeasurement.DirectLineMeasurementController")],L);const U=u(),k=u();export{L as DirectLineMeasurementController};
|
|
@@ -2,4 +2,4 @@
|
|
|
2
2
|
All material copyright ESRI, All Rights Reserved, unless otherwise specified.
|
|
3
3
|
See https://js.arcgis.com/4.24/esri/copyright.txt for details.
|
|
4
4
|
*/
|
|
5
|
-
import{_ as e}from"../../../../chunks/tslib.es6.js";import"../../../../intl.js";import t from"../../../../core/Accessor.js";import i from"../../../../core/Handles.js";import{nextHighestPowerOfTen as s,deg2rad as n}from"../../../../core/mathUtils.js";import{isNone as a,destroyMaybe as r,isSome as o}from"../../../../core/maybe.js";import{formatDecimal as l,formatImperialLength as c,formatImperialVerticalLength as d,formatMetricLength as h,formatMetricVerticalLength as u}from"../../../../core/quantityFormatUtils.js";import{toUnit as m}from"../../../../core/quantityUtils.js";import{when as g,watch as p,syncAndInitial as _,whenOnce as v}from"../../../../core/reactiveUtils.js";import{createRenderScreenPointArray3 as b,createRenderScreenPointArray as L}from"../../../../core/screenUtils.js";import{preferredImperialLengthUnit as w,convertUnit as y}from"../../../../core/unitUtils.js";import{property as S}from"../../../../core/accessorSupport/decorators/property.js";import"../../../../core/arrayUtils.js";import"../../../../core/has.js";import"../../../../core/accessorSupport/ensureType.js";import{subclass as f}from"../../../../core/accessorSupport/decorators/subclass.js";import{i as P}from"../../../../chunks/vec2.js";import{g as A,a as E}from"../../../../chunks/vec3.js";import{c as V}from"../../../../chunks/vec3f64.js";import{f as j}from"../../../../chunks/vec4f32.js";import{MeasurementMode as z}from"../interfaces.js";import{VisualElementOrientation as D,ViewMode as M}from"./interfaces.js";import{screenSpaceTangent as O}from"../support/viewUtils.js";import{LabelVisualElement as G,mirrorPosition as C}from"../../interactive/visualElements/LabelVisualElement.js";import{LineVisualElement as x}from"../../interactive/visualElements/LineVisualElement.js";import{MeasurementArrowVisualElement as T}from"../../interactive/visualElements/MeasurementArrowVisualElement.js";import{RightAngleQuadVisualElement as H}from"../../interactive/visualElements/RightAngleQuadVisualElement.js";import{GeodesicSegment as R,EuclideanSegment as k}from"../../interactive/visualElements/support/Segment.js";import{RenderOccludedFlag as F}from"../../webgl-engine/lib/Material.js";import{createStipplePatternSimple as U}from"../../webgl-engine/materials/lineStippleUtils.js";import{onLocaleChange as W}from"../../../../intl/locale.js";import{fetchMessageBundle as Q}from"../../../../intl/messages.js";var q;!function(e){e[e.Pending=0]="Pending",e[e.Ready=1]="Ready",e[e.Destroyed=2]="Destroyed"}(q||(q={}));let B=class extends t{constructor(e){super(e),this._params={...J},this._handles=new i,this._segmentVisualElement=null,this._triangleVisualElement=null,this._rightAngleQuad=null,this._projectedGeodesicLine=null,this._geodesicStartHint=null,this._geodesicEndHint=null,this._segmentLabel=null,this._verticalLabel=null,this._horizontalLabel=null,this._startPosition=V(),this._endPosition=V(),this._cornerPosition=V(),this._startPositionAtSeaLevel=V(),this._endPositionAtSeaLevel=V(),this._state=q.Pending,this._triangleOrientationOverride=null,this.messages=null,this.loadingMessages=!0,this.visualElementOrientation=D.Auto,this.triangleCollapseRatioThreshold=.03}get ready(){return this._state===q.Ready}get visible(){return this.analysisView.visible}get viewMode(){const{elevationAlignedStartPoint:e,elevationAlignedEndPoint:t}=this.analysisView;if(a(e)||a(t)||e.equals(t))return M.None;const i=this.analysisView.result;if(a(i))return M.Direct;if("geodesic"===i.mode)return this._requiresGeodesicGuideAt(this._startPosition)||this._requiresGeodesicGuideAt(this._endPosition)?M.ProjectedGeodesic:M.Direct;const{verticalDistance:s,horizontalDistance:n}=i,r=s.value,o=n.value;return Math.min(r/o,o/r)<this.triangleCollapseRatioThreshold?M.Direct:M.Triangle}get actualVisualizedMeasurement(){if(a(this.analysisView.result))switch(this.analysisView.measurementMode){case z.Auto:case z.Euclidean:default:return"euclidean";case z.Geodesic:return"geodesic"}return this.analysisView.result.mode}get allowVisualElementsOrientationChange(){return a(this._triangleOrientationOverride)}set allowVisualElementsOrientationChange(e){a(this._triangleOrientationOverride)!==e&&(a(this._triangleOrientationOverride)?this._triangleOrientationOverride=this._actualVisualElementsOrientation:this._triangleOrientationOverride=null)}get labels(){const e="geodesic"===this.actualVisualizedMeasurement;return{direct:this._segmentLabel,horizontal:e?this._segmentLabel:this._horizontalLabel,vertical:this._verticalLabel}}get testData(){var e;return{labels:this.labels,stripeLength:null==(e=this._segmentVisualElement)?void 0:e.stripeLength}}initialize(){this._handles.add(g((()=>this.view.ready),(()=>this._initialize()),{once:!0,sync:!0,initial:!0}))}_initialize(){switch(this._state){case q.Ready:throw new Error("invalid state");case q.Destroyed:return}const e=this._params,t={attached:!0,view:this.view};this._segmentVisualElement=new T({...t,geometry:null,renderOccluded:F.OccludeAndTransparent}),this._triangleVisualElement=new x({...t,width:e.triangleLineWidth,color:e.triangleColor,renderOccluded:F.OccludeAndTransparent}),this._rightAngleQuad=new H({...t,color:I,renderOccluded:F.OccludeAndTransparent});const i={...t,polygonOffset:!0,renderOccluded:F.OccludeAndTransparent};this._projectedGeodesicLine=new x({...i,width:e.geodesicProjectionLineWidth,color:e.geodesicProjectionLineColor,stipplePattern:U(e.guideStippleLengthPixels)}),this._geodesicStartHint=new x({...i,width:e.guideLineWidth,color:e.geodesicProjectionLineColor,stipplePattern:U(e.guideStippleLengthPixels)}),this._geodesicEndHint=new x({...i,width:e.guideLineWidth,color:e.geodesicProjectionLineColor,stipplePattern:U(e.guideStippleLengthPixels)}),this._segmentLabel=new G({...t,fontSize:e.direcLabelFontSize}),this._verticalLabel=new G({...t,fontSize:e.verticalLabelFontSize}),this._horizontalLabel=new G({...t,fontSize:e.horizontalLabelFontSize}),this._handles.add([p((()=>{const{elevationAlignedStartPoint:e,elevationAlignedEndPoint:t}=this.analysisView,i=this.view;return{view:i,camera:i.state.camera,viewMode:this.viewMode,elevationAlignedStartPoint:e,elevationAlignedEndPoint:t,orientation:this._actualVisualElementsOrientation,visualizedMeasurement:this.actualVisualizedMeasurement,stripeLength:this._measurementArrowStripeLength}}),(e=>this._updateGeometryAndViewMode(e)),_),p((()=>({visible:this.visible,viewMode:this.viewMode})),(e=>this._updateVisualElementVisibility(e)),_),p((()=>({text:this._labelsText,visualizedMeasurement:this.actualVisualizedMeasurement})),(e=>this._updateLabelText(e)),_),p((()=>({visible:this.visible,viewMode:this.viewMode,state:this._state})),(e=>this._updateLabelVisibility(e)),_),p((()=>this._measurementArrowStripeLength),(e=>this._updateSegmentStripeLength(e)),_),W((async()=>this._updateMessageBundle()))]),this._state=q.Ready,this._updateMessageBundle()}destroy(){this._state!==q.Destroyed&&(this._handles=r(this._handles),this._segmentVisualElement=r(this._segmentVisualElement),this._triangleVisualElement=r(this._triangleVisualElement),this._rightAngleQuad=r(this._rightAngleQuad),this._projectedGeodesicLine=r(this._projectedGeodesicLine),this._geodesicStartHint=r(this._geodesicStartHint),this._geodesicEndHint=r(this._geodesicEndHint),this._segmentLabel=r(this._segmentLabel),this._verticalLabel=r(this._verticalLabel),this._horizontalLabel=r(this._horizontalLabel),this.set("view",null),this._state=q.Destroyed)}async whenReady(){await v((()=>this.ready))}_updateVisualElementVisibility({visible:e,viewMode:t}){if(this._segmentVisualElement.visible=!1,this._triangleVisualElement.visible=!1,this._rightAngleQuad.visible=!1,this._projectedGeodesicLine.visible=!1,this._geodesicStartHint.visible=!1,this._geodesicEndHint.visible=!1,e)switch(t){case M.None:break;case M.Direct:this._segmentVisualElement.visible=!0;break;case M.Triangle:this._segmentVisualElement.visible=!0,this._triangleVisualElement.visible=!0,this._rightAngleQuad.visible=!0;break;case M.ProjectedGeodesic:this._segmentVisualElement.visible=!0,this._projectedGeodesicLine.visible=!0,this._geodesicStartHint.visible=!0,this._geodesicEndHint.visible=!0}}_updateGeometryAndViewMode({view:e,camera:t,viewMode:i,elevationAlignedStartPoint:s,elevationAlignedEndPoint:n,orientation:r,visualizedMeasurement:o,stripeLength:l}){const c=e.renderCoordsHelper;if(a(c)||a(s)||a(n)||s.equals(n))return;let d=this._startPosition,h=this._endPosition;c.toRenderCoords(s,d),c.toRenderCoords(n,h);const u=r===D.AboveSegment?1:-1,m=u*(c.getAltitude(h)-c.getAltitude(d));m<0&&(d=this._endPosition,h=this._startPosition);const g="geodesic"===o?new R(this._startPosition,this._endPosition,c.spatialReference):new k(this._startPosition,this._endPosition);switch(this._segmentVisualElement.geometry=g,this._updateSegmentStripeLength(l),i){case M.Direct:this._updateSegment(g,r);break;case M.Triangle:this._updateSegmentAndTriangle({view:e,camera:t,segment:g,orientation:r,startPosition:d,endPosition:h,deltaSign:u,altitudeDelta:m});break;case M.ProjectedGeodesic:this._updateSegmentAndProjection({view:e,orientation:r,startPosition:d,endPosition:h})}}_updateSegment(e,t){this._segmentLabel.anchor=t===D.AboveSegment?"top":"bottom",this._segmentLabel.geometry={type:"segment",segment:e,sampleLocation:"center"}}_updateSegmentAndTriangle({view:{renderCoordsHelper:e},camera:t,segment:i,orientation:s,startPosition:n,endPosition:a,deltaSign:r,altitudeDelta:o}){const l=this._cornerPosition;e.worldUpAtPosition(n,l),A(l,l,r*Math.abs(o)),E(l,l,n),this._triangleVisualElement.geometry=[[[n[0],n[1],n[2]],[l[0],l[1],l[2]],[a[0],a[1],a[2]]]],this._rightAngleQuad.geometry={previous:n,center:l,next:a};const c=new k(n,l),d=new k(l,a),h=N(n,a,l,s,t);this._segmentLabel.anchor=h.segment,this._segmentLabel.geometry={type:"segment",segment:i,sampleLocation:"center"},this._verticalLabel.geometry={type:"segment",segment:c,sampleLocation:"center"},this._verticalLabel.anchor=h.vertical,this._horizontalLabel.geometry={type:"segment",segment:d,sampleLocation:"center"},this._horizontalLabel.anchor=h.horizontal}_updateSegmentAndProjection({view:{renderCoordsHelper:e},orientation:t,startPosition:i,endPosition:s}){e.setAltitude(this._startPositionAtSeaLevel,0,i),e.setAltitude(this._endPositionAtSeaLevel,0,s);const n=new R(this._startPositionAtSeaLevel,this._endPositionAtSeaLevel,e.spatialReference);this._projectedGeodesicLine.setGeometryFromSegment(n),this._geodesicStartHint.setGeometryFromSegment(new k(this._startPositionAtSeaLevel,i)),this._geodesicEndHint.setGeometryFromSegment(new k(this._endPositionAtSeaLevel,s)),this._segmentLabel.geometry={type:"segment",segment:n,sampleLocation:"center"},this._segmentLabel.anchor=t===D.AboveSegment?"top":"bottom"}_updateLabelText({text:e,visualizedMeasurement:t}){o(e)?(this._segmentLabel.text="euclidean"===t?e.euclideanDistance:e.geodesicDistance,this._horizontalLabel.text=e.horizontalDistance,this._verticalLabel.text=e.verticalDistance):(this._segmentLabel.text=null,this._horizontalLabel.text=null,this._verticalLabel.text=null),this.notifyChange("labels")}_updateLabelVisibility({state:e,visible:t,viewMode:i}){if(e!==q.Ready)return;const s=this._segmentLabel,n=this._horizontalLabel,a=this._verticalLabel;if(s.visible=!1,n.visible=!1,a.visible=!1,t)switch(i){case M.Direct:s.visible=!0;break;case M.Triangle:s.visible=!0,n.visible=!0,a.visible=!0;break;case M.ProjectedGeodesic:s.visible=!0;case M.None:}}get _labelsText(){if(this._state!==q.Ready)return null;const e=this.messages,t=this.analysisView.result;if(a(t)||a(e))return null;const{directDistance:i,horizontalDistance:s,verticalDistance:n,geodesicDistance:r}=t,o=this.analysisView.unit,m=e=>({euclideanDistance:"",geodesicDistance:"",horizontalDistance:"",verticalDistance:"",...e});switch(o){case"metric":return m({euclideanDistance:i&&h(e,i),geodesicDistance:r&&h(e,r),horizontalDistance:s&&h(e,s),verticalDistance:n&&u(e,n)});case"imperial":return m({euclideanDistance:i&&c(e,i),geodesicDistance:r&&c(e,r),horizontalDistance:s&&c(e,s),verticalDistance:n&&d(e,n)});default:return m({euclideanDistance:i&&l(e,i,o),geodesicDistance:r&&l(e,r,o),horizontalDistance:s&&l(e,s,o),verticalDistance:n&&l(e,n,o)})}}_updateSegmentStripeLength(e){const t=this._segmentVisualElement;o(e)?(t.stripeLength=e,t.stripesEnabled=!0):t.stripesEnabled=!1}get _actualVisualElementsOrientation(){if(o(this._triangleOrientationOverride))return this._triangleOrientationOverride;const e=this.visualElementOrientation;return e===D.Auto?this.view.state.camera.aboveGround?D.AboveSegment:D.BelowSegment:e}_requiresGeodesicGuideAt(e){const t=this.view;if(null==t||!t.state)return!1;const i=t.state.camera,s=t.renderCoordsHelper,n=i.computeScreenPixelSizeAt(e);return s.getAltitude(e)/n>=10}get _measurementArrowStripeLength(){const{result:e,unit:t}=this.analysisView;if(a(e))return null;let i=null;const n=e.directDistance;switch(t){case"metric":i=n&&m(n,"meters");break;case"imperial":i=n&&m(n,w(n.value,n.unit));break;default:i=n&&m(n,t)}if(a(i))return null;return s(i.value/30)*y(1,i.unit,"meters")}_updateMessageBundle(){this.loadingMessages=!0,Q("esri/core/t9n/Units").then((e=>{this.messages=e})).finally((()=>{this.loadingMessages=!1}))}};function N(e,t,i,s,n){const a=X,r=Y;n.projectToRenderScreen(i,a),n.projectToRenderScreen(t,r);const o={segment:"bottom",horizontal:"top",vertical:a[0]<r[0]?"left":"right"};{const s=Z,a=$;if(O(e,i,s,n),O(e,t,a,n),P(s,a)>=K){const e=Math.sign(s[1])===Math.sign(a[1]);o.segment=e?C(o.vertical):o.vertical}else{const e=ee;O(i,t,e,n),P(e,a)>=K&&(o.segment=Math.sign(e[0])===Math.sign(a[0])?C(o.horizontal):o.horizontal)}}if(s===D.BelowSegment){const e=e=>"top"===e?"bottom":"top";o.segment=e(o.segment),o.horizontal=e(o.horizontal),o.vertical=e(o.vertical)}return o}e([S()],B.prototype,"_state",void 0),e([S()],B.prototype,"_triangleOrientationOverride",void 0),e([S()],B.prototype,"messages",void 0),e([S()],B.prototype,"view",void 0),e([S()],B.prototype,"analysis",void 0),e([S()],B.prototype,"analysisView",void 0),e([S()],B.prototype,"ready",null),e([S()],B.prototype,"loadingMessages",void 0),e([S()],B.prototype,"visible",null),e([S()],B.prototype,"viewMode",null),e([S()],B.prototype,"actualVisualizedMeasurement",null),e([S()],B.prototype,"visualElementOrientation",void 0),e([S()],B.prototype,"triangleCollapseRatioThreshold",void 0),e([S()],B.prototype,"allowVisualElementsOrientationChange",null),e([S()],B.prototype,"labels",null),e([S()],B.prototype,"testData",null),e([S()],B.prototype,"_labelsText",null),e([S()],B.prototype,"_actualVisualElementsOrientation",null),e([S()],B.prototype,"_measurementArrowStripeLength",null),B=e([f("esri.views.3d.analysis.DirectLineMeasurement.DirectLineMeasurementVisualization")],B);const I=j(1,.5,0,.75),J={laserLineGlowColor:[1,.5,0],laserLineGlowWidth:8,laserLineGlowFalloff:8,laserLineInnerColor:[1,1,1],laserLineInnerWidth:.75,laserLineGlobalAlpha:.75,laserLineEnabled:!0,handleColor:[1,.5,0],handleOpacity:.5,handleRadius:5,triangleColor:I,triangleLineWidth:3,triangleCornerSize:32,triangleSubdivisions:128,arrowWidth:16,arrowOutlineColor:[1,.5,0,1],arrowOutlineWidth:.2,arrowStripeEvenColor:[1,1,1,1],arrowStripeOddColor:[1,.5,0,1],arrowStripeLength:16,arrowSubdivisions:128,geodesicProjectionLineWidth:2,geodesicProjectionLineColor:I,guideLineWidth:2,guideLineColor:I,guideStippleLengthPixels:6,labelDistance:25,direcLabelFontSize:16,horizontalLabelFontSize:12,verticalLabelFontSize:12},K=Math.cos(n(12)),X=b(),Y=b(),Z=L(),$=L(),ee=L();export{B as DirectLineMeasurementVisualization,q as State};
|
|
5
|
+
import{_ as e}from"../../../../chunks/tslib.es6.js";import"../../../../intl.js";import t from"../../../../core/Accessor.js";import i from"../../../../core/Handles.js";import{nextHighestPowerOfTen as s,deg2rad as n}from"../../../../core/mathUtils.js";import{isNone as a,destroyMaybe as r,isSome as o}from"../../../../core/maybe.js";import{formatDecimal as l,formatImperialLength as c,formatImperialVerticalLength as d,formatMetricLength as h,formatMetricVerticalLength as u}from"../../../../core/quantityFormatUtils.js";import{toUnit as m}from"../../../../core/quantityUtils.js";import{when as g,watch as p,syncAndInitial as _,whenOnce as v}from"../../../../core/reactiveUtils.js";import{createRenderScreenPointArray3 as b,createRenderScreenPointArray as L}from"../../../../core/screenUtils.js";import{preferredImperialLengthUnit as w,convertUnit as y}from"../../../../core/unitUtils.js";import{property as S}from"../../../../core/accessorSupport/decorators/property.js";import"../../../../core/arrayUtils.js";import"../../../../core/has.js";import"../../../../core/accessorSupport/ensureType.js";import{subclass as f}from"../../../../core/accessorSupport/decorators/subclass.js";import{i as P}from"../../../../chunks/vec2.js";import{g as A,a as E}from"../../../../chunks/vec3.js";import{c as V}from"../../../../chunks/vec3f64.js";import{f as j}from"../../../../chunks/vec4f32.js";import{MeasurementMode as z}from"../interfaces.js";import{VisualElementOrientation as D,ViewMode as M}from"./interfaces.js";import{screenSpaceTangent as O}from"../support/viewUtils.js";import{LabelVisualElement as G,mirrorPosition as C}from"../../interactive/visualElements/LabelVisualElement.js";import{LineVisualElement as x}from"../../interactive/visualElements/LineVisualElement.js";import{MeasurementArrowVisualElement as T}from"../../interactive/visualElements/MeasurementArrowVisualElement.js";import{RightAngleQuadVisualElement as H}from"../../interactive/visualElements/RightAngleQuadVisualElement.js";import{GeodesicSegment as R,EuclideanSegment as k}from"../../interactive/visualElements/support/Segment.js";import{RenderOccludedFlag as F}from"../../webgl-engine/lib/Material.js";import{createStipplePatternSimple as U}from"../../webgl-engine/materials/lineStippleUtils.js";import{onLocaleChange as W}from"../../../../intl/locale.js";import{fetchMessageBundle as Q}from"../../../../intl/messages.js";var q;!function(e){e[e.Pending=0]="Pending",e[e.Ready=1]="Ready",e[e.Destroyed=2]="Destroyed"}(q||(q={}));let B=class extends t{constructor(e){super(e),this._params={...J},this._handles=new i,this._segmentVisualElement=null,this._triangleVisualElement=null,this._rightAngleQuad=null,this._projectedGeodesicLine=null,this._geodesicStartHint=null,this._geodesicEndHint=null,this._segmentLabel=null,this._verticalLabel=null,this._horizontalLabel=null,this._startPosition=V(),this._endPosition=V(),this._cornerPosition=V(),this._startPositionAtSeaLevel=V(),this._endPositionAtSeaLevel=V(),this._state=q.Pending,this._triangleOrientationOverride=null,this.messages=null,this.loadingMessages=!0,this.visualElementOrientation=D.Auto,this.triangleCollapseRatioThreshold=.03}get ready(){return this._state===q.Ready}get visible(){return this.analysisView.visible}get viewMode(){const{elevationAlignedStartPoint:e,elevationAlignedEndPoint:t}=this.analysisView;if(a(e)||a(t)||e.equals(t))return M.None;const i=this.analysisView.result;if(a(i))return M.Direct;if("geodesic"===i.mode)return this._requiresGeodesicGuideAt(this._startPosition)||this._requiresGeodesicGuideAt(this._endPosition)?M.ProjectedGeodesic:M.Direct;const{verticalDistance:s,horizontalDistance:n}=i,r=s.value,o=n.value;return Math.min(r/o,o/r)<this.triangleCollapseRatioThreshold?M.Direct:M.Triangle}get actualVisualizedMeasurement(){if(a(this.analysisView.result))switch(this.analysisView.measurementMode){case z.Auto:case z.Euclidean:default:return"euclidean";case z.Geodesic:return"geodesic"}return this.analysisView.result.mode}get allowVisualElementsOrientationChange(){return a(this._triangleOrientationOverride)}set allowVisualElementsOrientationChange(e){a(this._triangleOrientationOverride)!==e&&(a(this._triangleOrientationOverride)?this._triangleOrientationOverride=this._actualVisualElementsOrientation:this._triangleOrientationOverride=null)}get labels(){const e="geodesic"===this.actualVisualizedMeasurement;return{direct:this._segmentLabel,horizontal:e?this._segmentLabel:this._horizontalLabel,vertical:this._verticalLabel}}get testData(){return{labels:this.labels,stripeLength:this._segmentVisualElement?.stripeLength}}initialize(){this._handles.add(g((()=>this.view.ready),(()=>this._initialize()),{once:!0,sync:!0,initial:!0}))}_initialize(){switch(this._state){case q.Ready:throw new Error("invalid state");case q.Destroyed:return}const e=this._params,t={attached:!0,view:this.view};this._segmentVisualElement=new T({...t,geometry:null,renderOccluded:F.OccludeAndTransparent}),this._triangleVisualElement=new x({...t,width:e.triangleLineWidth,color:e.triangleColor,renderOccluded:F.OccludeAndTransparent}),this._rightAngleQuad=new H({...t,color:I,renderOccluded:F.OccludeAndTransparent});const i={...t,polygonOffset:!0,renderOccluded:F.OccludeAndTransparent};this._projectedGeodesicLine=new x({...i,width:e.geodesicProjectionLineWidth,color:e.geodesicProjectionLineColor,stipplePattern:U(e.guideStippleLengthPixels)}),this._geodesicStartHint=new x({...i,width:e.guideLineWidth,color:e.geodesicProjectionLineColor,stipplePattern:U(e.guideStippleLengthPixels)}),this._geodesicEndHint=new x({...i,width:e.guideLineWidth,color:e.geodesicProjectionLineColor,stipplePattern:U(e.guideStippleLengthPixels)}),this._segmentLabel=new G({...t,fontSize:e.direcLabelFontSize}),this._verticalLabel=new G({...t,fontSize:e.verticalLabelFontSize}),this._horizontalLabel=new G({...t,fontSize:e.horizontalLabelFontSize}),this._handles.add([p((()=>{const{elevationAlignedStartPoint:e,elevationAlignedEndPoint:t}=this.analysisView,i=this.view;return{view:i,camera:i.state.camera,viewMode:this.viewMode,elevationAlignedStartPoint:e,elevationAlignedEndPoint:t,orientation:this._actualVisualElementsOrientation,visualizedMeasurement:this.actualVisualizedMeasurement,stripeLength:this._measurementArrowStripeLength}}),(e=>this._updateGeometryAndViewMode(e)),_),p((()=>({visible:this.visible,viewMode:this.viewMode})),(e=>this._updateVisualElementVisibility(e)),_),p((()=>({text:this._labelsText,visualizedMeasurement:this.actualVisualizedMeasurement})),(e=>this._updateLabelText(e)),_),p((()=>({visible:this.visible,viewMode:this.viewMode,state:this._state})),(e=>this._updateLabelVisibility(e)),_),p((()=>this._measurementArrowStripeLength),(e=>this._updateSegmentStripeLength(e)),_),W((async()=>this._updateMessageBundle()))]),this._state=q.Ready,this._updateMessageBundle()}destroy(){this._state!==q.Destroyed&&(this._handles=r(this._handles),this._segmentVisualElement=r(this._segmentVisualElement),this._triangleVisualElement=r(this._triangleVisualElement),this._rightAngleQuad=r(this._rightAngleQuad),this._projectedGeodesicLine=r(this._projectedGeodesicLine),this._geodesicStartHint=r(this._geodesicStartHint),this._geodesicEndHint=r(this._geodesicEndHint),this._segmentLabel=r(this._segmentLabel),this._verticalLabel=r(this._verticalLabel),this._horizontalLabel=r(this._horizontalLabel),this.set("view",null),this._state=q.Destroyed)}async whenReady(){await v((()=>this.ready))}_updateVisualElementVisibility({visible:e,viewMode:t}){if(this._segmentVisualElement.visible=!1,this._triangleVisualElement.visible=!1,this._rightAngleQuad.visible=!1,this._projectedGeodesicLine.visible=!1,this._geodesicStartHint.visible=!1,this._geodesicEndHint.visible=!1,e)switch(t){case M.None:break;case M.Direct:this._segmentVisualElement.visible=!0;break;case M.Triangle:this._segmentVisualElement.visible=!0,this._triangleVisualElement.visible=!0,this._rightAngleQuad.visible=!0;break;case M.ProjectedGeodesic:this._segmentVisualElement.visible=!0,this._projectedGeodesicLine.visible=!0,this._geodesicStartHint.visible=!0,this._geodesicEndHint.visible=!0}}_updateGeometryAndViewMode({view:e,camera:t,viewMode:i,elevationAlignedStartPoint:s,elevationAlignedEndPoint:n,orientation:r,visualizedMeasurement:o,stripeLength:l}){const c=e.renderCoordsHelper;if(a(c)||a(s)||a(n)||s.equals(n))return;let d=this._startPosition,h=this._endPosition;c.toRenderCoords(s,d),c.toRenderCoords(n,h);const u=r===D.AboveSegment?1:-1,m=u*(c.getAltitude(h)-c.getAltitude(d));m<0&&(d=this._endPosition,h=this._startPosition);const g="geodesic"===o?new R(this._startPosition,this._endPosition,c.spatialReference):new k(this._startPosition,this._endPosition);switch(this._segmentVisualElement.geometry=g,this._updateSegmentStripeLength(l),i){case M.Direct:this._updateSegment(g,r);break;case M.Triangle:this._updateSegmentAndTriangle({view:e,camera:t,segment:g,orientation:r,startPosition:d,endPosition:h,deltaSign:u,altitudeDelta:m});break;case M.ProjectedGeodesic:this._updateSegmentAndProjection({view:e,orientation:r,startPosition:d,endPosition:h})}}_updateSegment(e,t){this._segmentLabel.anchor=t===D.AboveSegment?"top":"bottom",this._segmentLabel.geometry={type:"segment",segment:e,sampleLocation:"center"}}_updateSegmentAndTriangle({view:{renderCoordsHelper:e},camera:t,segment:i,orientation:s,startPosition:n,endPosition:a,deltaSign:r,altitudeDelta:o}){const l=this._cornerPosition;e.worldUpAtPosition(n,l),A(l,l,r*Math.abs(o)),E(l,l,n),this._triangleVisualElement.geometry=[[[n[0],n[1],n[2]],[l[0],l[1],l[2]],[a[0],a[1],a[2]]]],this._rightAngleQuad.geometry={previous:n,center:l,next:a};const c=new k(n,l),d=new k(l,a),h=N(n,a,l,s,t);this._segmentLabel.anchor=h.segment,this._segmentLabel.geometry={type:"segment",segment:i,sampleLocation:"center"},this._verticalLabel.geometry={type:"segment",segment:c,sampleLocation:"center"},this._verticalLabel.anchor=h.vertical,this._horizontalLabel.geometry={type:"segment",segment:d,sampleLocation:"center"},this._horizontalLabel.anchor=h.horizontal}_updateSegmentAndProjection({view:{renderCoordsHelper:e},orientation:t,startPosition:i,endPosition:s}){e.setAltitude(this._startPositionAtSeaLevel,0,i),e.setAltitude(this._endPositionAtSeaLevel,0,s);const n=new R(this._startPositionAtSeaLevel,this._endPositionAtSeaLevel,e.spatialReference);this._projectedGeodesicLine.setGeometryFromSegment(n),this._geodesicStartHint.setGeometryFromSegment(new k(this._startPositionAtSeaLevel,i)),this._geodesicEndHint.setGeometryFromSegment(new k(this._endPositionAtSeaLevel,s)),this._segmentLabel.geometry={type:"segment",segment:n,sampleLocation:"center"},this._segmentLabel.anchor=t===D.AboveSegment?"top":"bottom"}_updateLabelText({text:e,visualizedMeasurement:t}){o(e)?(this._segmentLabel.text="euclidean"===t?e.euclideanDistance:e.geodesicDistance,this._horizontalLabel.text=e.horizontalDistance,this._verticalLabel.text=e.verticalDistance):(this._segmentLabel.text=null,this._horizontalLabel.text=null,this._verticalLabel.text=null),this.notifyChange("labels")}_updateLabelVisibility({state:e,visible:t,viewMode:i}){if(e!==q.Ready)return;const s=this._segmentLabel,n=this._horizontalLabel,a=this._verticalLabel;if(s.visible=!1,n.visible=!1,a.visible=!1,t)switch(i){case M.Direct:s.visible=!0;break;case M.Triangle:s.visible=!0,n.visible=!0,a.visible=!0;break;case M.ProjectedGeodesic:s.visible=!0;case M.None:}}get _labelsText(){if(this._state!==q.Ready)return null;const e=this.messages,t=this.analysisView.result;if(a(t)||a(e))return null;const{directDistance:i,horizontalDistance:s,verticalDistance:n,geodesicDistance:r}=t,o=this.analysisView.unit,m=e=>({euclideanDistance:"",geodesicDistance:"",horizontalDistance:"",verticalDistance:"",...e});switch(o){case"metric":return m({euclideanDistance:i&&h(e,i),geodesicDistance:r&&h(e,r),horizontalDistance:s&&h(e,s),verticalDistance:n&&u(e,n)});case"imperial":return m({euclideanDistance:i&&c(e,i),geodesicDistance:r&&c(e,r),horizontalDistance:s&&c(e,s),verticalDistance:n&&d(e,n)});default:return m({euclideanDistance:i&&l(e,i,o),geodesicDistance:r&&l(e,r,o),horizontalDistance:s&&l(e,s,o),verticalDistance:n&&l(e,n,o)})}}_updateSegmentStripeLength(e){const t=this._segmentVisualElement;o(e)?(t.stripeLength=e,t.stripesEnabled=!0):t.stripesEnabled=!1}get _actualVisualElementsOrientation(){if(o(this._triangleOrientationOverride))return this._triangleOrientationOverride;const e=this.visualElementOrientation;return e===D.Auto?this.view.state.camera.aboveGround?D.AboveSegment:D.BelowSegment:e}_requiresGeodesicGuideAt(e){const t=this.view;if(!t?.state)return!1;const i=t.state.camera,s=t.renderCoordsHelper,n=i.computeScreenPixelSizeAt(e);return s.getAltitude(e)/n>=10}get _measurementArrowStripeLength(){const{result:e,unit:t}=this.analysisView;if(a(e))return null;let i=null;const n=e.directDistance;switch(t){case"metric":i=n&&m(n,"meters");break;case"imperial":i=n&&m(n,w(n.value,n.unit));break;default:i=n&&m(n,t)}if(a(i))return null;return s(i.value/30)*y(1,i.unit,"meters")}_updateMessageBundle(){this.loadingMessages=!0,Q("esri/core/t9n/Units").then((e=>{this.messages=e})).finally((()=>{this.loadingMessages=!1}))}};function N(e,t,i,s,n){const a=X,r=Y;n.projectToRenderScreen(i,a),n.projectToRenderScreen(t,r);const o={segment:"bottom",horizontal:"top",vertical:a[0]<r[0]?"left":"right"};{const s=Z,a=$;if(O(e,i,s,n),O(e,t,a,n),P(s,a)>=K){const e=Math.sign(s[1])===Math.sign(a[1]);o.segment=e?C(o.vertical):o.vertical}else{const e=ee;O(i,t,e,n),P(e,a)>=K&&(o.segment=Math.sign(e[0])===Math.sign(a[0])?C(o.horizontal):o.horizontal)}}if(s===D.BelowSegment){const e=e=>"top"===e?"bottom":"top";o.segment=e(o.segment),o.horizontal=e(o.horizontal),o.vertical=e(o.vertical)}return o}e([S()],B.prototype,"_state",void 0),e([S()],B.prototype,"_triangleOrientationOverride",void 0),e([S()],B.prototype,"messages",void 0),e([S()],B.prototype,"view",void 0),e([S()],B.prototype,"analysis",void 0),e([S()],B.prototype,"analysisView",void 0),e([S()],B.prototype,"ready",null),e([S()],B.prototype,"loadingMessages",void 0),e([S()],B.prototype,"visible",null),e([S()],B.prototype,"viewMode",null),e([S()],B.prototype,"actualVisualizedMeasurement",null),e([S()],B.prototype,"visualElementOrientation",void 0),e([S()],B.prototype,"triangleCollapseRatioThreshold",void 0),e([S()],B.prototype,"allowVisualElementsOrientationChange",null),e([S()],B.prototype,"labels",null),e([S()],B.prototype,"testData",null),e([S()],B.prototype,"_labelsText",null),e([S()],B.prototype,"_actualVisualElementsOrientation",null),e([S()],B.prototype,"_measurementArrowStripeLength",null),B=e([f("esri.views.3d.analysis.DirectLineMeasurement.DirectLineMeasurementVisualization")],B);const I=j(1,.5,0,.75),J={laserLineGlowColor:[1,.5,0],laserLineGlowWidth:8,laserLineGlowFalloff:8,laserLineInnerColor:[1,1,1],laserLineInnerWidth:.75,laserLineGlobalAlpha:.75,laserLineEnabled:!0,handleColor:[1,.5,0],handleOpacity:.5,handleRadius:5,triangleColor:I,triangleLineWidth:3,triangleCornerSize:32,triangleSubdivisions:128,arrowWidth:16,arrowOutlineColor:[1,.5,0,1],arrowOutlineWidth:.2,arrowStripeEvenColor:[1,1,1,1],arrowStripeOddColor:[1,.5,0,1],arrowStripeLength:16,arrowSubdivisions:128,geodesicProjectionLineWidth:2,geodesicProjectionLineColor:I,guideLineWidth:2,guideLineColor:I,guideStippleLengthPixels:6,labelDistance:25,direcLabelFontSize:16,horizontalLabelFontSize:12,verticalLabelFontSize:12},K=Math.cos(n(12)),X=b(),Y=b(),Z=L(),$=L(),ee=L();export{B as DirectLineMeasurementVisualization,q as State};
|
|
@@ -2,4 +2,4 @@
|
|
|
2
2
|
All material copyright ESRI, All Rights Reserved, unless otherwise specified.
|
|
3
3
|
See https://js.arcgis.com/4.24/esri/copyright.txt for details.
|
|
4
4
|
*/
|
|
5
|
-
import{_ as t}from"../../../chunks/tslib.es6.js";import
|
|
5
|
+
import{_ as t}from"../../../chunks/tslib.es6.js";import e from"../../../core/Accessor.js";import{destroyMaybe as i,unwrapOr as a}from"../../../core/maybe.js";import{property as s}from"../../../core/accessorSupport/decorators/property.js";import"../../../core/arrayUtils.js";import"../../../core/has.js";import"../../../core/accessorSupport/ensureType.js";import{subclass as l}from"../../../core/accessorSupport/decorators/subclass.js";import{defaultUnitPropertyMetadata as n}from"../../../properties/defaultUnit.js";import{AnalysisView3D as o}from"./AnalysisView3D.js";import{MeasurementMode as r}from"./interfaces.js";import{DirectLineMeasurementController as u}from"./DirectLineMeasurement/DirectLineMeasurementController.js";import{DirectLineMeasurementVisualization as p}from"./DirectLineMeasurement/DirectLineMeasurementVisualization.js";let y=class extends(o(e)){constructor(t){super(t),this.type="direct-line-measurement-view-3d",this.result=null,this.measurementMode=r.Auto,this.elevationAlignedStartPoint=null,this.elevationAlignedEndPoint=null,this.interactive=!1}initialize(){const t=this.view,e=this.analysis;this._analysisVisualization=new p({view:t,analysis:e,analysisView:this}),this._analysisController=new u({view:t,analysis:e,viewData:this})}destroy(){this._analysisController=i(this._analysisController),this._analysisVisualization=i(this._analysisVisualization)}whenReady(){return this._analysisVisualization.whenReady()}get updating(){return!!this._analysisVisualization?.loadingMessages}get viewMode(){return this._analysisVisualization.viewMode}get actualVisualizedMeasurement(){return this._analysisVisualization.actualVisualizedMeasurement}get visualElementOrientation(){return this._analysisVisualization.visualElementOrientation}set visualElementOrientation(t){this._analysisVisualization.visualElementOrientation=t}get allowVisualElementsOrientationChange(){return this._analysisVisualization.allowVisualElementsOrientationChange}set allowVisualElementsOrientationChange(t){this._analysisVisualization.allowVisualElementsOrientationChange=t}get triangleCollapseRatioThreshold(){return this._analysisVisualization.triangleCollapseRatioThreshold}set triangleCollapseRatioThreshold(t){this._analysisVisualization.triangleCollapseRatioThreshold=t}get directLabelText(){return this._analysisVisualization.labels.direct.text}get horizontalLabelText(){return this._analysisVisualization.labels.horizontal.text}get verticalLabelText(){return this._analysisVisualization.labels.vertical.text}get testData(){return this.destroyed?{labels:null,stripeLength:null,visualization:null,controller:null}:{...this._analysisVisualization?.testData,visualization:this._analysisVisualization,controller:this._analysisController}}get unit(){return a(this.analysis.unit,this._defaultUnit)}};t([s()],y.prototype,"updating",null),t([s({readOnly:!0})],y.prototype,"type",void 0),t([s({constructOnly:!0,nonNullable:!0})],y.prototype,"analysis",void 0),t([s()],y.prototype,"result",void 0),t([s()],y.prototype,"measurementMode",void 0),t([s()],y.prototype,"elevationAlignedStartPoint",void 0),t([s()],y.prototype,"elevationAlignedEndPoint",void 0),t([s({readOnly:!0})],y.prototype,"viewMode",null),t([s({readOnly:!0})],y.prototype,"actualVisualizedMeasurement",null),t([s()],y.prototype,"visualElementOrientation",null),t([s()],y.prototype,"allowVisualElementsOrientationChange",null),t([s()],y.prototype,"triangleCollapseRatioThreshold",null),t([s({readOnly:!0})],y.prototype,"directLabelText",null),t([s({readOnly:!0})],y.prototype,"horizontalLabelText",null),t([s({readOnly:!0})],y.prototype,"verticalLabelText",null),t([s()],y.prototype,"interactive",void 0),t([s()],y.prototype,"testData",null),t([s()],y.prototype,"_analysisVisualization",void 0),t([s()],y.prototype,"_analysisController",void 0),t([s()],y.prototype,"unit",null),t([s(n)],y.prototype,"_defaultUnit",void 0),y=t([l("esri.views.3d.analysis.DirectLineMeasurementAnalysisView3D")],y);const h=y;export{h as default};
|
|
@@ -2,4 +2,4 @@
|
|
|
2
2
|
All material copyright ESRI, All Rights Reserved, unless otherwise specified.
|
|
3
3
|
See https://js.arcgis.com/4.24/esri/copyright.txt for details.
|
|
4
4
|
*/
|
|
5
|
-
import{_ as e}from"../../../../chunks/tslib.es6.js";import"../../../../geometry.js";import{getFeatureId as t}from"../../../../analysis/analysisUtils.js";import o from"../../../../core/Accessor.js";import i from"../../../../core/Evented.js";import n from"../../../../core/Handles.js";import{handlesGroup as r,makeHandle as s}from"../../../../core/handleUtils.js";import a from"../../../../core/Logger.js";import{isSome as l,isNone as c,abortMaybe as u,removeMaybe as p,unwrapOr as d,none as h}from"../../../../core/maybe.js";import{createTask as g,ignoreAbortErrors as m}from"../../../../core/promiseUtils.js";import{watch as v,syncAndInitial as _,sync as f}from"../../../../core/reactiveUtils.js";import{property as b}from"../../../../core/accessorSupport/decorators/property.js";import"../../../../core/arrayUtils.js";import"../../../../core/has.js";import"../../../../core/accessorSupport/ensureType.js";import{subclass as y}from"../../../../core/accessorSupport/decorators/subclass.js";import{c as C,b as T,n as I,g as O,a as P,j as S,v as w}from"../../../../chunks/vec3.js";import{c as j}from"../../../../chunks/vec3f64.js";import{WatchUpdatingTracking as E}from"../../../../core/support/WatchUpdatingTracking.js";import{tryProjectWithZConversion as R,projectPoint as A,projectBoundingRect as L}from"../../../../geometry/projection.js";import{containsPointObject as F,intersectsSegment as V,empty as x}from"../../../../geometry/support/aaBoundingRect.js";import{fromPoints as H,create as k}from"../../../../geometry/support/ray.js";import{zValueInAbsoluteHeightMode as D}from"../../../../support/elevationInfoUtils.js";import{LineOfSightAnalysisResult as N}from"../LineOfSightAnalysisResult.js";import{LineOfSightComputation as z}from"./LineOfSightComputation.js";import{LineOfSightRayIntersector as U}from"./LineOfSightRayIntersector.js";import{logFailedGeometryProjectionError as M}from"../support/projectionUtils.js";import{StoreResults as G}from"../../webgl-engine/lib/IntersectorInterfaces.js";import{toGraphic as B}from"../../webgl-engine/lib/intersectorUtilsConversions.js";import{ImmediateTask as W,TaskPriority as Z}from"../../../support/Scheduler.js";import q from"../../../../geometry/Point.js";const J=a.getLogger("esri.views.3d.analysis.LineOfSight.LineOfSightController");let K=class extends(i.EventedMixin(o)){constructor(e){super(e),this.updateOnCameraChange=!0,this._effectiveObserverElevationMode="absolute-height",this._observerFeatureId=null,this._updatingHandles=new E,this._frameTask=W,this._handles=new n,this._computationHandles=new n,this._externalObserverUpdate=!0}initialize(){var e;const t=null==(e=this.view.resourceController)?void 0:e.scheduler;this._frameTask=t?t.registerTask(Z.LINE_OF_SIGHT_TOOL):W,this._intersector=new U({view:this.view}),this._handles.add([this._connectObserver(),this._connectComputations(),this._connectTargets()])}destroy(){this._handles.destroy(),this._computationHandles.destroy(),this._computations.removeAll(),this._updatingHandles.destroy()}get updating(){return this._frameTask.updating||this._updatingHandles.updating}get priority(){return this._frameTask.priority}set priority(e){this._frameTask.priority=e}get _computations(){return this.analysisViewData.computations}get _elevationAlignedObserverPositionRenderSpace(){return this.analysisViewData.observerEngineLocation}set _elevationAlignedObserverPositionRenderSpace(e){this.analysisViewData.observerEngineLocation=e}get _screenPixelSize(){return this.view.state.camera.computeScreenPixelSizeAt(this._elevationAlignedObserverPositionRenderSpace)}getLineOfSightComputationDependencies(e){const{inputPoints:t}=e;return{inputPoints:t}}_computeResult(e){const t=e.computation,{inputPoints:o,computationResult:i}=t,{observerAdjusted:n,targetAdjusted:r}=o,{start:s,end:a}=i;C(s,n),C(a,r);this._canCompute(t)?this._computeIntersection(e):this._interpolateIntersection(e),t.notifyResultChanged(),this.emit("result-changed",{target:e.computation.target,result:t.result})}_adjustStartEndPositions(e){const t=this._screenPixelSize,o=this.view,{inputPoints:i}=e,{observer:n,observerSurfaceNormal:r,target:s,targetSurfaceNormal:a,observerAdjusted:c,targetAdjusted:u}=i,p=X;l(r)?C(p,r):T(p,s,n);const d=t;I(p,p),O(p,p,Math.min(d,1)),P(c,n,p),l(a)?C(p,a):T(p,n,s);const h=o.state.camera.computeScreenPixelSizeAt(s);I(p,p),O(p,p,Math.min(h,1)),P(u,s,p)}_computeIntersection({computation:e,interpolationInfo:o}){const{view:i}=this,{sceneIntersectionHelper:n,renderCoordsHelper:r}=i;if(c(n))return;const s=this._intersector.intersector,{computationResult:a,inputPoints:u}=e,{observer:p,target:d,observerFeatureId:h,targetFeatureId:g}=u,{start:m,end:v}=a,_=H(m,v,Y);s.options.store=l(h)||l(g)?G.ALL:G.MIN,n.intersectToolIntersectorRay(_,s);let f=null;if(l(h)||l(g))for(const l of s.results.all){const e=B(l,this.view);if(c(e)){f=l;break}const o=t(e);if(o!==h&&o!==g){f=l;break}}else f=s.results.min;const b=a.intersection,y=X;let T=!0;if(l(f)&&f.getIntersectionPoint(b)){C(o.originalIntersection,b),C(o.originalObserver,m),C(o.originalTarget,v),r.fromRenderCoords(b,y,i.spatialReference);const e=1-S(v,d)/S(m,d);T=S(p,b)>=e*S(p,d)}const I=new q(y,i.spatialReference);{const{result:t,target:o}=e;l(t)?(t.target=o,t.intersectedGraphic=T?null:B(f,i),t.intersectedLocation=T?null:I,t.visible=T):e.result=new N({target:o,elevationAlignedTargetLocation:e.elevationAlignedTargetLocation,intersectedGraphic:T?null:B(f,i),intersectedLocation:T?null:I,visible:T})}a.isValid=u.isValid=!0,a.isTargetVisible=T}_interpolateIntersection({computation:e,interpolationInfo:t}){const{computationResult:o,inputPoints:i}=e,{start:n,end:r,intersection:s}=o,{originalIntersection:a,originalObserver:l,originalTarget:c}=t;if(C(s,a),i.isValid){const e=X,t=S(l,a)/S(l,c);w(e,n,l),O(e,e,1-t),P(s,s,e),w(e,r,c),O(e,e,t),P(s,s,e),o.isValid=!0}else e.result=null,o.isValid=!1,o.isTargetVisible=!1}_canCompute(e){const t=this.analysisViewData.elevationAlignedObserver,o=this.view.frustum;if(c(t)||c(e.elevationAlignedTargetLocation)||c(o))return!1;const{observerAdjusted:i,targetAdjusted:n}=e.inputPoints,r=o.intersectsPoint(i),s=o.intersectsPoint(n);return r&&s}_onObserverPositionChange(e,o,i,n){if(this._externalObserverUpdate=n,c(e))return this.analysisViewData.elevationAlignedObserver=null,void(this._observerFeatureId=null);const r=R(e,this.view.spatialReference);if(c(r))return M(this.analysis,e.spatialReference,J),void(this.analysisViewData.elevationAlignedObserver=null);const s=this._getEffectiveElevationInfo(r,o);r.z=D(r.x,r.y,r.z,this.view.spatialReference,this.view,s),this._effectiveObserverElevationMode=s.mode,this.analysisViewData.elevationAlignedObserver=r;const a=j();this.view.renderCoordsHelper.toRenderCoords(r,a),this._elevationAlignedObserverPositionRenderSpace=a,this._observerFeatureId=t(i),this.priority=Z.LINE_OF_SIGHT_TOOL_INTERACTIVE}_onObserverRenderSpacePositionChangeForComputation(e,t,o,i){const{inputPoints:n}=e;switch(C(n.observer,t),o){case"on-the-ground":case"relative-to-ground":n.observerSurfaceNormal=this._intersector.adjustFromGroundIntersection(t,n.observer);break;case"relative-to-scene":case"absolute-height":n.observerSurfaceNormal=null}n.observerFeatureId=i,this._adjustStartEndPositions(e),e.notifyInputPointsChanged(),this.priority=Z.LINE_OF_SIGHT_TOOL_INTERACTIVE}_onTargetPositionChange(e,o,i,n,r=!0){const s=e.inputPoints;r&&(s.isValid=!1);const a=R(o,this.view.spatialReference);if(c(a))return M(this.analysis,o.spatialReference,J),e.elevationAlignedTargetLocation=null,void e.notifyInputPointsChanged();const l=this._getEffectiveElevationInfo(a,i);switch(a.z=D(a.x,a.y,a.z,this.view.spatialReference,this.view,l),e.elevationAlignedTargetLocation=a,this.view.renderCoordsHelper.toRenderCoords(e.elevationAlignedTargetLocation,s.target),l.mode){case"on-the-ground":case"relative-to-ground":s.targetSurfaceNormal=this._intersector.adjustFromGroundIntersection(s.target,s.targetAdjusted);break;case"relative-to-scene":case"absolute-height":s.targetSurfaceNormal=null}s.targetFeatureId=t(n),this._adjustStartEndPositions(e),e.notifyInputPointsChanged(),this.priority=Z.LINE_OF_SIGHT_TOOL_INTERACTIVE}_connectComputationToTarget(e){return r([v((()=>({computation:e,targetPosition:e.target.position,targetElevationInfo:e.target.elevationInfo,targetFeatureInfo:e.target.excludedFeature})),(({computation:e,targetPosition:t,targetElevationInfo:o,targetFeatureInfo:i})=>{l(t)&&this._onTargetPositionChange(e,t,o,i)}),_)])}_connectComputationToObserver(e){return v((()=>({computation:e,observer:this.analysisViewData.elevationAlignedObserver})),(({computation:e})=>{this._externalObserverUpdate&&(e.inputPoints.isValid=!1,e.notifyInputPointsChanged())}),_)}_connectComputationToRenderSpaceObserver(e){return v((()=>({computation:e,observer:this._elevationAlignedObserverPositionRenderSpace,observerElevationMode:this._effectiveObserverElevationMode,observerFeatureId:this._observerFeatureId})),(({computation:e,observer:t,observerElevationMode:o,observerFeatureId:i})=>{this._onObserverRenderSpacePositionChangeForComputation(e,t,o,i)}),_)}_connectComputationToCamera(e){return v((()=>({camera:this.view.state.camera,isDirty:this._isCameraDirty})),(({isDirty:t})=>{!this.updateOnCameraChange||e.inputPoints.isValid&&!t||e.notifyInputPointsChanged()}),f)}_connectComputationToSlicePlane(e){return v((()=>this.view.slicePlane),(()=>e.notifyInputPointsChanged()))}_connectComputationToElevation(e){return this.view.elevationProvider.on("elevation-change",(t=>{const o=this.analysis.observer,i=e.target;let n=null,r=null,s=null,a=null,u=null,p=null;const d=l(o)&&l(o.position)?o.position.spatialReference:l(i.position)?i.position.spatialReference:t.spatialReference;l(o)&&l(o.position)&&(n=ee,r=o.elevationInfo,s=o.excludedFeature,A(o.position,n,d)),l(i.position)&&(a=te,u=i.elevationInfo,p=i.excludedFeature,A(i.position,a,d)),c(n)&&c(a)||(L(t.extent,t.spatialReference,$,d),l(n)&&F($,n)&&this._onObserverPositionChange(n,r,s,!1),l(a)&&F($,a)&&this._onTargetPositionChange(e,a,u,p,!1),l(n)&&l(a)&&V($,n,a)&&e.notifyInputPointsChanged())}))}_connectComputationToTask(e){let t=h;const o={computation:e,interpolationInfo:{originalIntersection:j(),originalObserver:j(),originalTarget:j()}};return r([v((()=>this.getLineOfSightComputationDependencies(e)),(()=>{t=u(t),t=g((async e=>{await m(this._frameTask.schedule((()=>this._computeResult(o)),e))}))}),_),s((()=>t=u(t)))])}_connectComputation(e){const t=this._computationHandles;t.has(e)||t.add([this._connectComputationToTarget(e),this._connectComputationToObserver(e),this._connectComputationToRenderSpaceObserver(e),this._connectComputationToCamera(e),this._connectComputationToSlicePlane(e),this._connectComputationToElevation(e),this._connectComputationToTask(e)],e)}_disconnectAnalysis(e){this._computationHandles.remove(e)}_onComputationCollectionChange(e){e.added.forEach((e=>this._connectComputation(e))),e.removed.forEach((e=>this._disconnectAnalysis(e)))}_onTargetsChange(){return this._computations.removeAll(),this.analysis.targets.forEach((e=>this._addTarget(e))),this._updatingHandles.addOnCollectionChange((()=>this.analysis.targets),(e=>this._onTargetCollectionChange(e)))}_onTargetCollectionChange(e){e.added.forEach((e=>this._addTarget(e))),e.removed.forEach((e=>this._removeTarget(e)))}_onCursorTargetChange(e,t){l(t)&&this._removeTarget(t),l(e)&&this._addTarget(e)}_addTarget(e){this._computations.some((t=>t.target===e))||this._computations.add(new z({target:e}))}_removeTarget(e){const t=this._computations.find((t=>t.target===e));this._computations.remove(t)}_connectObserver(){return r([v((()=>({observerPosition:l(this.analysis.observer)?this.analysis.observer.position:null,observerElevationInfo:l(this.analysis.observer)?this.analysis.observer.elevationInfo:null,observerFeatureInfo:l(this.analysis.observer)?this.analysis.observer.excludedFeature:null})),(({observerPosition:e,observerElevationInfo:t,observerFeatureInfo:o})=>this._onObserverPositionChange(e,t,o,!0)),_)])}_connectComputations(){let e=null;return r([v((()=>this._computations),(()=>{p(e),e=this._updatingHandles.addOnCollectionChange((()=>this._computations),(e=>this._onComputationCollectionChange(e))),this._computations.forEach((e=>this._connectComputation(e)))}),_),s((()=>e=p(e)))])}_connectTargets(){let e=null;return r([v((()=>this.analysis.targets),(()=>{e=p(e),e=this._onTargetsChange()}),_),v((()=>this.analysisViewData.cursorTarget),((e,t)=>{this._onCursorTargetChange(e,t)})),s((()=>{e=p(e)}))])}get _isCameraDirty(){const e=this.analysisViewData.elevationAlignedObserver,{view:t}=this,{renderCoordsHelper:o}=t;if(c(e)||c(o))return!1;const i=X;o.toRenderCoords(e,i);const n=t.state.camera.computeScreenPixelSizeAt(i);return Math.abs((n-this._screenPixelSize)/this._screenPixelSize)>Q}_getEffectiveElevationInfo(e,t){return e.hasZ?d(t,{mode:"absolute-height",offset:0}):{mode:"on-the-ground",offset:0}}};e([b({constructOnly:!0})],K.prototype,"analysis",void 0),e([b({constructOnly:!0})],K.prototype,"analysisViewData",void 0),e([b({constructOnly:!0})],K.prototype,"view",void 0),e([b()],K.prototype,"updating",null),e([b()],K.prototype,"priority",null),e([b()],K.prototype,"updateOnCameraChange",void 0),e([b()],K.prototype,"_computations",null),e([b()],K.prototype,"_elevationAlignedObserverPositionRenderSpace",null),e([b()],K.prototype,"_effectiveObserverElevationMode",void 0),e([b()],K.prototype,"_observerFeatureId",void 0),e([b()],K.prototype,"_screenPixelSize",null),e([b({readOnly:!0})],K.prototype,"_updatingHandles",void 0),e([b()],K.prototype,"_frameTask",void 0),e([b()],K.prototype,"_isCameraDirty",null),K=e([y("esri.views.3d.analysis.LineOfSight.LineOfSightController")],K);const Q=.1,X=j(),Y=k(),$=x(),ee=new q,te=new q;export{K as LineOfSightController};
|
|
5
|
+
import{_ as e}from"../../../../chunks/tslib.es6.js";import"../../../../geometry.js";import{getFeatureId as t}from"../../../../analysis/analysisUtils.js";import o from"../../../../core/Accessor.js";import i from"../../../../core/Evented.js";import n from"../../../../core/Handles.js";import{handlesGroup as r,makeHandle as s}from"../../../../core/handleUtils.js";import a from"../../../../core/Logger.js";import{isSome as l,isNone as c,abortMaybe as u,removeMaybe as p,unwrapOr as d,none as h}from"../../../../core/maybe.js";import{createTask as g,ignoreAbortErrors as m}from"../../../../core/promiseUtils.js";import{watch as v,syncAndInitial as _,sync as f}from"../../../../core/reactiveUtils.js";import{property as b}from"../../../../core/accessorSupport/decorators/property.js";import"../../../../core/arrayUtils.js";import"../../../../core/has.js";import"../../../../core/accessorSupport/ensureType.js";import{subclass as y}from"../../../../core/accessorSupport/decorators/subclass.js";import{c as C,b as T,n as I,g as O,a as P,j as S,v as w}from"../../../../chunks/vec3.js";import{c as j}from"../../../../chunks/vec3f64.js";import{WatchUpdatingTracking as E}from"../../../../core/support/WatchUpdatingTracking.js";import{tryProjectWithZConversion as R,projectPoint as A,projectBoundingRect as L}from"../../../../geometry/projection.js";import{containsPointObject as F,intersectsSegment as V,empty as x}from"../../../../geometry/support/aaBoundingRect.js";import{fromPoints as H,create as k}from"../../../../geometry/support/ray.js";import{zValueInAbsoluteHeightMode as D}from"../../../../support/elevationInfoUtils.js";import{LineOfSightAnalysisResult as N}from"../LineOfSightAnalysisResult.js";import{LineOfSightComputation as z}from"./LineOfSightComputation.js";import{LineOfSightRayIntersector as U}from"./LineOfSightRayIntersector.js";import{logFailedGeometryProjectionError as M}from"../support/projectionUtils.js";import{StoreResults as G}from"../../webgl-engine/lib/IntersectorInterfaces.js";import{toGraphic as B}from"../../webgl-engine/lib/intersectorUtilsConversions.js";import{ImmediateTask as W,TaskPriority as Z}from"../../../support/Scheduler.js";import q from"../../../../geometry/Point.js";const J=a.getLogger("esri.views.3d.analysis.LineOfSight.LineOfSightController");let K=class extends(i.EventedMixin(o)){constructor(e){super(e),this.updateOnCameraChange=!0,this._effectiveObserverElevationMode="absolute-height",this._observerFeatureId=null,this._updatingHandles=new E,this._frameTask=W,this._handles=new n,this._computationHandles=new n,this._externalObserverUpdate=!0}initialize(){const e=this.view.resourceController?.scheduler;this._frameTask=e?e.registerTask(Z.LINE_OF_SIGHT_TOOL):W,this._intersector=new U({view:this.view}),this._handles.add([this._connectObserver(),this._connectComputations(),this._connectTargets()])}destroy(){this._handles.destroy(),this._computationHandles.destroy(),this._computations.removeAll(),this._updatingHandles.destroy()}get updating(){return this._frameTask.updating||this._updatingHandles.updating}get priority(){return this._frameTask.priority}set priority(e){this._frameTask.priority=e}get _computations(){return this.analysisViewData.computations}get _elevationAlignedObserverPositionRenderSpace(){return this.analysisViewData.observerEngineLocation}set _elevationAlignedObserverPositionRenderSpace(e){this.analysisViewData.observerEngineLocation=e}get _screenPixelSize(){return this.view.state.camera.computeScreenPixelSizeAt(this._elevationAlignedObserverPositionRenderSpace)}getLineOfSightComputationDependencies(e){const{inputPoints:t}=e;return{inputPoints:t}}_computeResult(e){const t=e.computation,{inputPoints:o,computationResult:i}=t,{observerAdjusted:n,targetAdjusted:r}=o,{start:s,end:a}=i;C(s,n),C(a,r);this._canCompute(t)?this._computeIntersection(e):this._interpolateIntersection(e),t.notifyResultChanged(),this.emit("result-changed",{target:e.computation.target,result:t.result})}_adjustStartEndPositions(e){const t=this._screenPixelSize,o=this.view,{inputPoints:i}=e,{observer:n,observerSurfaceNormal:r,target:s,targetSurfaceNormal:a,observerAdjusted:c,targetAdjusted:u}=i,p=X;l(r)?C(p,r):T(p,s,n);const d=t;I(p,p),O(p,p,Math.min(d,1)),P(c,n,p),l(a)?C(p,a):T(p,n,s);const h=o.state.camera.computeScreenPixelSizeAt(s);I(p,p),O(p,p,Math.min(h,1)),P(u,s,p)}_computeIntersection({computation:e,interpolationInfo:o}){const{view:i}=this,{sceneIntersectionHelper:n,renderCoordsHelper:r}=i;if(c(n))return;const s=this._intersector.intersector,{computationResult:a,inputPoints:u}=e,{observer:p,target:d,observerFeatureId:h,targetFeatureId:g}=u,{start:m,end:v}=a,_=H(m,v,Y);s.options.store=l(h)||l(g)?G.ALL:G.MIN,n.intersectToolIntersectorRay(_,s);let f=null;if(l(h)||l(g))for(const l of s.results.all){const e=B(l,this.view);if(c(e)){f=l;break}const o=t(e);if(o!==h&&o!==g){f=l;break}}else f=s.results.min;const b=a.intersection,y=X;let T=!0;if(l(f)&&f.getIntersectionPoint(b)){C(o.originalIntersection,b),C(o.originalObserver,m),C(o.originalTarget,v),r.fromRenderCoords(b,y,i.spatialReference);const e=1-S(v,d)/S(m,d);T=S(p,b)>=e*S(p,d)}const I=new q(y,i.spatialReference);{const{result:t,target:o}=e;l(t)?(t.target=o,t.intersectedGraphic=T?null:B(f,i),t.intersectedLocation=T?null:I,t.visible=T):e.result=new N({target:o,elevationAlignedTargetLocation:e.elevationAlignedTargetLocation,intersectedGraphic:T?null:B(f,i),intersectedLocation:T?null:I,visible:T})}a.isValid=u.isValid=!0,a.isTargetVisible=T}_interpolateIntersection({computation:e,interpolationInfo:t}){const{computationResult:o,inputPoints:i}=e,{start:n,end:r,intersection:s}=o,{originalIntersection:a,originalObserver:l,originalTarget:c}=t;if(C(s,a),i.isValid){const e=X,t=S(l,a)/S(l,c);w(e,n,l),O(e,e,1-t),P(s,s,e),w(e,r,c),O(e,e,t),P(s,s,e),o.isValid=!0}else e.result=null,o.isValid=!1,o.isTargetVisible=!1}_canCompute(e){const t=this.analysisViewData.elevationAlignedObserver,o=this.view.frustum;if(c(t)||c(e.elevationAlignedTargetLocation)||c(o))return!1;const{observerAdjusted:i,targetAdjusted:n}=e.inputPoints,r=o.intersectsPoint(i),s=o.intersectsPoint(n);return r&&s}_onObserverPositionChange(e,o,i,n){if(this._externalObserverUpdate=n,c(e))return this.analysisViewData.elevationAlignedObserver=null,void(this._observerFeatureId=null);const r=R(e,this.view.spatialReference);if(c(r))return M(this.analysis,e.spatialReference,J),void(this.analysisViewData.elevationAlignedObserver=null);const s=this._getEffectiveElevationInfo(r,o);r.z=D(r.x,r.y,r.z,this.view.spatialReference,this.view,s),this._effectiveObserverElevationMode=s.mode,this.analysisViewData.elevationAlignedObserver=r;const a=j();this.view.renderCoordsHelper.toRenderCoords(r,a),this._elevationAlignedObserverPositionRenderSpace=a,this._observerFeatureId=t(i),this.priority=Z.LINE_OF_SIGHT_TOOL_INTERACTIVE}_onObserverRenderSpacePositionChangeForComputation(e,t,o,i){const{inputPoints:n}=e;switch(C(n.observer,t),o){case"on-the-ground":case"relative-to-ground":n.observerSurfaceNormal=this._intersector.adjustFromGroundIntersection(t,n.observer);break;case"relative-to-scene":case"absolute-height":n.observerSurfaceNormal=null}n.observerFeatureId=i,this._adjustStartEndPositions(e),e.notifyInputPointsChanged(),this.priority=Z.LINE_OF_SIGHT_TOOL_INTERACTIVE}_onTargetPositionChange(e,o,i,n,r=!0){const s=e.inputPoints;r&&(s.isValid=!1);const a=R(o,this.view.spatialReference);if(c(a))return M(this.analysis,o.spatialReference,J),e.elevationAlignedTargetLocation=null,void e.notifyInputPointsChanged();const l=this._getEffectiveElevationInfo(a,i);switch(a.z=D(a.x,a.y,a.z,this.view.spatialReference,this.view,l),e.elevationAlignedTargetLocation=a,this.view.renderCoordsHelper.toRenderCoords(e.elevationAlignedTargetLocation,s.target),l.mode){case"on-the-ground":case"relative-to-ground":s.targetSurfaceNormal=this._intersector.adjustFromGroundIntersection(s.target,s.targetAdjusted);break;case"relative-to-scene":case"absolute-height":s.targetSurfaceNormal=null}s.targetFeatureId=t(n),this._adjustStartEndPositions(e),e.notifyInputPointsChanged(),this.priority=Z.LINE_OF_SIGHT_TOOL_INTERACTIVE}_connectComputationToTarget(e){return r([v((()=>({computation:e,targetPosition:e.target.position,targetElevationInfo:e.target.elevationInfo,targetFeatureInfo:e.target.excludedFeature})),(({computation:e,targetPosition:t,targetElevationInfo:o,targetFeatureInfo:i})=>{l(t)&&this._onTargetPositionChange(e,t,o,i)}),_)])}_connectComputationToObserver(e){return v((()=>({computation:e,observer:this.analysisViewData.elevationAlignedObserver})),(({computation:e})=>{this._externalObserverUpdate&&(e.inputPoints.isValid=!1,e.notifyInputPointsChanged())}),_)}_connectComputationToRenderSpaceObserver(e){return v((()=>({computation:e,observer:this._elevationAlignedObserverPositionRenderSpace,observerElevationMode:this._effectiveObserverElevationMode,observerFeatureId:this._observerFeatureId})),(({computation:e,observer:t,observerElevationMode:o,observerFeatureId:i})=>{this._onObserverRenderSpacePositionChangeForComputation(e,t,o,i)}),_)}_connectComputationToCamera(e){return v((()=>({camera:this.view.state.camera,isDirty:this._isCameraDirty})),(({isDirty:t})=>{!this.updateOnCameraChange||e.inputPoints.isValid&&!t||e.notifyInputPointsChanged()}),f)}_connectComputationToSlicePlane(e){return v((()=>this.view.slicePlane),(()=>e.notifyInputPointsChanged()))}_connectComputationToElevation(e){return this.view.elevationProvider.on("elevation-change",(t=>{const o=this.analysis.observer,i=e.target;let n=null,r=null,s=null,a=null,u=null,p=null;const d=l(o)&&l(o.position)?o.position.spatialReference:l(i.position)?i.position.spatialReference:t.spatialReference;l(o)&&l(o.position)&&(n=ee,r=o.elevationInfo,s=o.excludedFeature,A(o.position,n,d)),l(i.position)&&(a=te,u=i.elevationInfo,p=i.excludedFeature,A(i.position,a,d)),c(n)&&c(a)||(L(t.extent,t.spatialReference,$,d),l(n)&&F($,n)&&this._onObserverPositionChange(n,r,s,!1),l(a)&&F($,a)&&this._onTargetPositionChange(e,a,u,p,!1),l(n)&&l(a)&&V($,n,a)&&e.notifyInputPointsChanged())}))}_connectComputationToTask(e){let t=h;const o={computation:e,interpolationInfo:{originalIntersection:j(),originalObserver:j(),originalTarget:j()}};return r([v((()=>this.getLineOfSightComputationDependencies(e)),(()=>{t=u(t),t=g((async e=>{await m(this._frameTask.schedule((()=>this._computeResult(o)),e))}))}),_),s((()=>t=u(t)))])}_connectComputation(e){const t=this._computationHandles;t.has(e)||t.add([this._connectComputationToTarget(e),this._connectComputationToObserver(e),this._connectComputationToRenderSpaceObserver(e),this._connectComputationToCamera(e),this._connectComputationToSlicePlane(e),this._connectComputationToElevation(e),this._connectComputationToTask(e)],e)}_disconnectAnalysis(e){this._computationHandles.remove(e)}_onComputationCollectionChange(e){e.added.forEach((e=>this._connectComputation(e))),e.removed.forEach((e=>this._disconnectAnalysis(e)))}_onTargetsChange(){return this._computations.removeAll(),this.analysis.targets.forEach((e=>this._addTarget(e))),this._updatingHandles.addOnCollectionChange((()=>this.analysis.targets),(e=>this._onTargetCollectionChange(e)))}_onTargetCollectionChange(e){e.added.forEach((e=>this._addTarget(e))),e.removed.forEach((e=>this._removeTarget(e)))}_onCursorTargetChange(e,t){l(t)&&this._removeTarget(t),l(e)&&this._addTarget(e)}_addTarget(e){this._computations.some((t=>t.target===e))||this._computations.add(new z({target:e}))}_removeTarget(e){const t=this._computations.find((t=>t.target===e));this._computations.remove(t)}_connectObserver(){return r([v((()=>({observerPosition:l(this.analysis.observer)?this.analysis.observer.position:null,observerElevationInfo:l(this.analysis.observer)?this.analysis.observer.elevationInfo:null,observerFeatureInfo:l(this.analysis.observer)?this.analysis.observer.excludedFeature:null})),(({observerPosition:e,observerElevationInfo:t,observerFeatureInfo:o})=>this._onObserverPositionChange(e,t,o,!0)),_)])}_connectComputations(){let e=null;return r([v((()=>this._computations),(()=>{p(e),e=this._updatingHandles.addOnCollectionChange((()=>this._computations),(e=>this._onComputationCollectionChange(e))),this._computations.forEach((e=>this._connectComputation(e)))}),_),s((()=>e=p(e)))])}_connectTargets(){let e=null;return r([v((()=>this.analysis.targets),(()=>{e=p(e),e=this._onTargetsChange()}),_),v((()=>this.analysisViewData.cursorTarget),((e,t)=>{this._onCursorTargetChange(e,t)})),s((()=>{e=p(e)}))])}get _isCameraDirty(){const e=this.analysisViewData.elevationAlignedObserver,{view:t}=this,{renderCoordsHelper:o}=t;if(c(e)||c(o))return!1;const i=X;o.toRenderCoords(e,i);const n=t.state.camera.computeScreenPixelSizeAt(i);return Math.abs((n-this._screenPixelSize)/this._screenPixelSize)>Q}_getEffectiveElevationInfo(e,t){return e.hasZ?d(t,{mode:"absolute-height",offset:0}):{mode:"on-the-ground",offset:0}}};e([b({constructOnly:!0})],K.prototype,"analysis",void 0),e([b({constructOnly:!0})],K.prototype,"analysisViewData",void 0),e([b({constructOnly:!0})],K.prototype,"view",void 0),e([b()],K.prototype,"updating",null),e([b()],K.prototype,"priority",null),e([b()],K.prototype,"updateOnCameraChange",void 0),e([b()],K.prototype,"_computations",null),e([b()],K.prototype,"_elevationAlignedObserverPositionRenderSpace",null),e([b()],K.prototype,"_effectiveObserverElevationMode",void 0),e([b()],K.prototype,"_observerFeatureId",void 0),e([b()],K.prototype,"_screenPixelSize",null),e([b({readOnly:!0})],K.prototype,"_updatingHandles",void 0),e([b()],K.prototype,"_frameTask",void 0),e([b()],K.prototype,"_isCameraDirty",null),K=e([y("esri.views.3d.analysis.LineOfSight.LineOfSightController")],K);const Q=.1,X=j(),Y=k(),$=x(),ee=new q,te=new q;export{K as LineOfSightController};
|
|
@@ -2,4 +2,4 @@
|
|
|
2
2
|
All material copyright ESRI, All Rights Reserved, unless otherwise specified.
|
|
3
3
|
See https://js.arcgis.com/4.24/esri/copyright.txt for details.
|
|
4
4
|
*/
|
|
5
|
-
import{_ as t}from"../../../chunks/tslib.es6.js";import i from"../../../core/Accessor.js";import o from"../../../core/Collection.js";import s from"../../../core/Evented.js";import{HandleOwnerMixin as r}from"../../../core/HandleOwner.js";import{destroyMaybe as e,isSome as n,applySome as a}from"../../../core/maybe.js";import{property as l}from"../../../core/accessorSupport/decorators/property.js";import"../../../core/arrayUtils.js";import"../../../core/has.js";import"../../../core/accessorSupport/ensureType.js";import{subclass as p}from"../../../core/accessorSupport/decorators/subclass.js";import{c as y}from"../../../chunks/vec3f64.js";import{AnalysisView3D as c}from"./AnalysisView3D.js";import{LineOfSightConfiguration as u}from"./LineOfSight/LineOfSightConfiguration.js";import{LineOfSightController as h}from"./LineOfSight/LineOfSightController.js";import{LineOfSightVisualization as m}from"./LineOfSight/LineOfSightVisualization.js";let d=class extends(c(r(s.EventedMixin(i)))){constructor(t){super(t),this.type="line-of-sight-view-3d",this.computations=new o,this.elevationAlignedObserver=null,this.configuration=new u,this.observerEngineLocation=y(),this.cursorTarget=null,this.interactive=!1}initialize(){const t=this.view,i=this.analysis;this._analysisController=new h({analysis:i,analysisViewData:this,view:t}),this._analysisVisualization=new m({analysis:i,analysisViewData:this,view:t}),this.handles.add([this._analysisController.on("result-changed",(t=>{t.target!==this.cursorTarget&&this.emit("result-changed",t)}))])}destroy(){this._analysisController=e(this._analysisController),this._analysisVisualization=e(this._analysisVisualization)}get results(){return this.computations.map((t=>t.result))}get priority(){return this._analysisController.priority}set priority(t){this._analysisController.priority=t}get updating(){return n(this._analysisController)&&this._analysisController.updating}getResultForTarget(t){const i=this.computations.find((i=>i.target===t));return a(i,(t=>t.result))}get testInfo(){return{visualization:this._analysisVisualization,controller:this._analysisController}}};t([l()],d.prototype,"type",void 0),t([l()],d.prototype,"analysis",void 0),t([l({readOnly:!0})],d.prototype,"results",null),t([l()],d.prototype,"priority",null),t([l()],d.prototype,"computations",void 0),t([l()],d.prototype,"elevationAlignedObserver",void 0),t([l()],d.prototype,"configuration",void 0),t([l()],d.prototype,"observerEngineLocation",void 0),t([l()],d.prototype,"cursorTarget",void 0),t([l()],d.prototype,"updating",null),t([l()],d.prototype,"interactive",void 0),t([l()],d.prototype,"_analysisController",void 0),t([l()],d.prototype,"_analysisVisualization",void 0),d=t([p("esri.views.3d.analysis.LineOfSightAnalysisView3D")],d);const g=d;export{g as default};
|
|
5
|
+
import{_ as t}from"../../../chunks/tslib.es6.js";import i from"../../../core/Accessor.js";import o from"../../../core/Collection.js";import s from"../../../core/Evented.js";import{HandleOwnerMixin as r}from"../../../core/HandleOwner.js";import{destroyMaybe as e,isSome as n,applySome as a}from"../../../core/maybe.js";import{property as l}from"../../../core/accessorSupport/decorators/property.js";import"../../../core/arrayUtils.js";import"../../../core/has.js";import"../../../core/accessorSupport/ensureType.js";import{subclass as p}from"../../../core/accessorSupport/decorators/subclass.js";import{c as y}from"../../../chunks/vec3f64.js";import{AnalysisView3D as c}from"./AnalysisView3D.js";import{LineOfSightConfiguration as u}from"./LineOfSight/LineOfSightConfiguration.js";import{LineOfSightController as h}from"./LineOfSight/LineOfSightController.js";import{LineOfSightVisualization as m}from"./LineOfSight/LineOfSightVisualization.js";let d=class extends(c(r(s.EventedMixin(i)))){constructor(t){super(t),this.type="line-of-sight-view-3d",this.computations=new o,this.elevationAlignedObserver=null,this.configuration=new u,this.observerEngineLocation=y(),this.cursorTarget=null,this.interactive=!1}initialize(){const t=this.view,i=this.analysis;this._analysisController=new h({analysis:i,analysisViewData:this,view:t}),this._analysisVisualization=new m({analysis:i,analysisViewData:this,view:t}),this.handles.add([this._analysisController.on("result-changed",(t=>{t.target!==this.cursorTarget&&this.emit("result-changed",t)}))])}destroy(){this._analysisController=e(this._analysisController),this._analysisVisualization=e(this._analysisVisualization)}get results(){return this.computations.map((t=>t.result))}get priority(){return this._analysisController.priority}set priority(t){this._analysisController.priority=t}get updating(){return n(this._analysisController)&&this._analysisController.updating}getResultForTarget(t){const i=this.computations.find((i=>i.target===t));return a(i,(t=>t.result))}get testInfo(){return{visualization:this._analysisVisualization,controller:this._analysisController}}};t([l({readOnly:!0})],d.prototype,"type",void 0),t([l({constructOnly:!0,nonNullable:!0})],d.prototype,"analysis",void 0),t([l({readOnly:!0})],d.prototype,"results",null),t([l()],d.prototype,"priority",null),t([l()],d.prototype,"computations",void 0),t([l()],d.prototype,"elevationAlignedObserver",void 0),t([l()],d.prototype,"configuration",void 0),t([l()],d.prototype,"observerEngineLocation",void 0),t([l()],d.prototype,"cursorTarget",void 0),t([l()],d.prototype,"updating",null),t([l()],d.prototype,"interactive",void 0),t([l()],d.prototype,"_analysisController",void 0),t([l()],d.prototype,"_analysisVisualization",void 0),d=t([p("esri.views.3d.analysis.LineOfSightAnalysisView3D")],d);const g=d;export{g as default};
|
|
@@ -2,4 +2,4 @@
|
|
|
2
2
|
All material copyright ESRI, All Rights Reserved, unless otherwise specified.
|
|
3
3
|
See https://js.arcgis.com/4.24/esri/copyright.txt for details.
|
|
4
4
|
*/
|
|
5
|
-
import{_ as t}from"../../../../chunks/tslib.es6.js";import e from"../../../../analysis/SlicePlane.js";import{clock as i}from"../../../../core/clock.js";import a from"../../../../core/Handles.js";import{releaseMaybe as s,destroyMaybe as n,isSome as r,isNone as l,removeMaybe as o}from"../../../../core/maybe.js";import{watch as h,sync as p,syncAndInitial as u}from"../../../../core/reactiveUtils.js";import{addFrameTask as c}from"../../../../core/scheduling.js";import{createScreenPoint as d,screenPointObjectToArray as _,createScreenPointArray as v}from"../../../../core/screenUtils.js";import{property as P}from"../../../../core/accessorSupport/decorators/property.js";import"../../../../core/arrayUtils.js";import"../../../../core/has.js";import"../../../../core/accessorSupport/ensureType.js";import{subclass as y}from"../../../../core/accessorSupport/decorators/subclass.js";import{d as m,u as g,m as w}from"../../../../chunks/mat4.js";import{e as f,l as M,c as D,g as T,a as V,m as b,n as k,s as E}from"../../../../chunks/vec3.js";import{a as S,c as H}from"../../../../chunks/vec3f64.js";import{c as x,a as I,n as R,f as j}from"../../../../chunks/boundedPlane.js";import{signedDistance as O,create as C,intersectRay as z,normal as G}from"../../../../geometry/support/plane.js";import{create as U}from"../../../../geometry/support/ray.js";import{sv3d as L,sm4d as K,sv2d as B}from"../../../../geometry/support/vectorStacks.js";import{POINTER_MOVE_TIMER_MS as A,PLANE_PREVIEW_OUTLINE_WIDTH as F,forceVerticalModifier as N,forceHorizontalModifier as q,PREVIEW_FADE_DURATION_SECONDS as Z,PLANE_OUTLINE_COLOR as J,PLANE_BACKGROUND_COLOR as Q,PREVIEW_FADE_DOT_THRESHOLD as W,INITIAL_DEPTH_OFFSET_FRAC as X}from"./sliceToolConfig.js";import{createShiftManipulator as Y,createRotateManipulator as $,createResizeManipulator as tt,createGridVisualElement as et,createOutlineVisualElement as it,planeToShape as at,createRotatePlane as st,RotationAxis as nt,resizePlane as rt,calculatePlaneHalfSize as lt,SliceOrientation as ot,createPlane as ht,DidPointerMoveRecentlyFlag as pt,calculateBoundedPlaneTranslateRotate as ut,updateShiftRestartHandle as ct,updateRotateHeadingHandle as dt,updateRotateTiltHandle as _t,updateResizeHandle as vt,createShiftPlane as Pt}from"./sliceToolUtils.js";import{getRotateHeadingTexture as yt,getTiltRotateTexture as mt}from"./images/Factory.js";import{calculateInputRotationTransform as gt}from"../../interactive/manipulatorUtils.js";import{screenToRenderPlane as wt}from"../../interactive/editingTools/dragEventPipeline3D.js";import{fromScreen as ft}from"../../support/geometryUtils/ray.js";import{newIntersector as Mt}from"../../webgl-engine/lib/Intersector.js";import{StoreResults as Dt}from"../../webgl-engine/lib/IntersectorInterfaces.js";import{createManipulatorDragEventPipeline as Tt}from"../../../interactive/dragEventPipeline.js";import{InteractiveToolBase as Vt}from"../../../interactive/InteractiveToolBase.js";import{createScreenPointFromEvent as bt}from"../../../support/screenUtils.js";var kt;let Et=kt=class extends Vt{constructor(t){super(t),this.clock=i,this._previewPlaneOpacity=1,this.layersMode="none",this.shiftManipulator=null,this.rotateHeadingManipulator=null,this.rotateTiltManipulator=null,this.resizeManipulators=null,this._handles=new a,this._viewHandles=new a,this._frameTask=null,this._pointerMoveTimerMs=A,this._prevPointerMoveTimeout=null,this._previewPlaneGridVisualElement=null,this._previewPlaneOutlineVisualElement=null,this._startPlane=x(),this._previewPlane=null,this._activeKeyModifiers={},this._lastCursorPosition=d(),this._resizeHandles=[{direction:[1,0]},{direction:[1,1]},{direction:[0,1]},{direction:[-1,1]},{direction:[-1,0]},{direction:[-1,-1]},{direction:[0,-1]},{direction:[1,-1]}],this._intersector=Mt(t.view.state.viewingMode),this._intersector.options.store=Dt.MIN}initialize(){if(null==this.analysis)throw new Error("SliceTool requires valid analysis, but null was provided.");this.rotateHeadingImage=yt(this.view.toolViewManager.textures),this.rotateTiltImage=mt(this.view.toolViewManager.textures);const t=t=>{this._updateManipulatorsInteractive(t),t.grabbing||(r(this.analysisViewData.plane)&&I(this.analysisViewData.plane,this._startPlane),this.inputState=null)};this.shiftManipulator=Y(this.view),this.manipulators.add(this.shiftManipulator),this.shiftManipulator.events.on("grab-changed",(e=>{this._onShiftGrab(e),t(this.shiftManipulator)})),this._handles.add(this._createShiftDragPipeline(this.shiftManipulator)),this.rotateHeadingManipulator=$(this.view,this.rotateHeadingImage.texture),this.manipulators.add(this.rotateHeadingManipulator),this.rotateHeadingManipulator.events.on("grab-changed",(e=>{this._onRotateHeadingGrab(e),t(this.rotateHeadingManipulator)})),this._handles.add(this._createRotateHeadingDragPipeline(this.rotateHeadingManipulator)),this.rotateTiltManipulator=$(this.view,this.rotateTiltImage.texture),this.manipulators.add(this.rotateTiltManipulator),this.rotateTiltManipulator.events.on("grab-changed",(e=>{this._onRotateTiltGrab(e),t(this.rotateTiltManipulator)})),this._handles.add(this._createRotateTiltDragPipeline(this.rotateTiltManipulator)),this.resizeManipulators=this._resizeHandles.map(((e,i)=>{const a=tt(this.view,e);return a.events.on("grab-changed",(e=>{this._onResizeGrab(e,i),t(a)})),this._handles.add(this._createResizeDragPipeline(a)),a})),this.manipulators.addMany(this.resizeManipulators),this._previewPlaneGridVisualElement=et(this.view),this._previewPlaneOutlineVisualElement=it(this.view),this._previewPlaneOutlineVisualElement.width=F,this._handles.add(h((()=>this.analysisViewData.plane),(()=>this._updateManipulators()),p));const e=h((()=>this.state),(t=>{"sliced"===t&&this.finishToolCreation()}),u);this._handles.add([e,h((()=>this.view.state.camera),(()=>this._onCameraChange()))])}destroy(){this.rotateHeadingImage=s(this.rotateHeadingImage),this.rotateTiltImage=s(this.rotateTiltImage),this._handles=n(this._handles),this._viewHandles=n(this._viewHandles),this._removeFrameTask(),this._clearPointerMoveTimeout(),this._previewPlaneOutlineVisualElement=n(this._previewPlaneOutlineVisualElement),this._previewPlaneGridVisualElement=n(this._previewPlaneGridVisualElement)}get state(){const t=!!this.analysisViewData.plane,e=!!this.inputState;return t?t&&e?"slicing":t&&!e?"sliced":"ready":"ready"}get cursor(){return this._isPlacingSlicePlane||"exclude"===this.layersMode?"crosshair":r(this._creatingPointerId)?"grabbing":null}set analysis(t){if(null==t)throw new Error("SliceTool requires valid analysis, but null was provided.");this._handles.remove("analysis"),this._set("analysis",t)}get inputState(){return this._get("inputState")}set inputState(t){this._set("inputState",t),this.analysisViewData.showGrid=r(t)&&"resize"===t.type,this._updateMaterials()}get _isPlacingSlicePlane(){return!this.inputState&&!this.analysisViewData.plane&&this.active}get _creatingPointerId(){return r(this.inputState)&&"shift"===this.inputState.type?this.inputState.creatingPointerId:null}enterExcludeLayerMode(){l(this.analysisViewData.plane)||(this._set("layersMode","exclude"),this.active||(this.view.activeTool=this))}exitExcludeLayerMode(){l(this.analysisViewData.plane)||(this._set("layersMode","none"),this.active&&(this.view.activeTool=null))}onDeactivate(){this._set("layersMode","none"),this._updatePreviewPlane(null)}onShow(){this._updateVisibility(!0)}onHide(){this._updateVisibility(!1)}_updateVisibility(t){this._updateManipulators(),t||this._clearPointerMoveTimeout()}onInputEvent(t){switch(t.type){case"pointer-drag":if(!Ht(t))return;this._isPlacingSlicePlane?this._onClickPlacePlane(t)&&t.stopPropagation():this._onPointerDrag(t)&&t.stopPropagation();break;case"pointer-move":this._onPointerMove(t);break;case"pointer-up":this._onPointerUp(t)&&t.stopPropagation();break;case"immediate-click":if(!Ht(t))return;this._onClickPlacePlane(t)&&t.stopPropagation();break;case"click":if(!Ht(t))return;this._onClickExcludeLayer(t)&&t.stopPropagation();break;case"drag":this.inputState&&t.stopPropagation();break;case"key-down":this._onKeyDown(t)&&t.stopPropagation();break;case"key-up":this._onKeyUp(t)&&t.stopPropagation()}}onEditableChange(){this.analysisViewData.editable=this.editable}_onPointerDrag(t){const e=this.inputState;if(t.pointerId===this._creatingPointerId&&r(e)&&"shift"===e.type){const i=bt(t);return this.shiftManipulator.events.emit("drag",{action:e.hasBeenDragged?"update":"start",pointerType:t.pointerType,start:i,screenPoint:i}),e.hasBeenDragged=!0,!0}return!1}_onPointerMove(t){this._lastCursorPosition.x=t.x,this._lastCursorPosition.y=t.y,this._resetPointerMoveTimeout(),"touch"!==t.pointerType&&this._updatePreviewPlane(bt(t),this._activeKeyModifiers)}_onCameraChange(){this._updatePreviewPlane(this._lastCursorPosition,this._activeKeyModifiers),this._updateManipulators()}_onPointerUp(t){if(t.pointerId===this._creatingPointerId&&r(this.analysisViewData.plane)){const e=bt(t);return this.shiftManipulator.events.emit("drag",{action:"end",start:e,screenPoint:e}),I(this.analysisViewData.plane,this._startPlane),this.inputState=null,!0}return!1}_onClickPlacePlane(t){if("exclude"===this.layersMode)return!1;if(this._isPlacingSlicePlane){const i=bt(t),a=x();if(this._pickPlane(i,!1,this._activeKeyModifiers,a)){if(I(a,this._startPlane),this.analysis.shape=at(a,this.view,this.view.spatialReference,new e),"pointer-drag"===t.type){const e=this._calculatePickRay(i);this.inputState=St(e,t.pointerId,a.origin,a)}return!0}}return!1}_onClickExcludeLayer(t){return!("exclude"!==this.layersMode||!this.created)&&(this.view.hitTest(bt(t)).then((t=>{if(t.results.length){const e=t.results[0],i=e&&e.graphic;if(i){const t=i.sourceLayer||i.layer;t&&this.analysis.excludedLayers.push(t)}}else t.ground.layer?this.analysis.excludedLayers.push(t.ground.layer):this.analysis.excludeGroundSurface=!0})),this._set("layersMode","none"),this.active&&(this.view.activeTool=null),!0)}_onKeyDown(t){return(t.key===N||t.key===q)&&(this._activeKeyModifiers[t.key]=!0,r(this._previewPlane)&&this._updatePreviewPlane(this._lastCursorPosition,this._activeKeyModifiers),!0)}_onKeyUp(t){return!(t.key!==N&&t.key!==q||!this._activeKeyModifiers[t.key])&&(delete this._activeKeyModifiers[t.key],r(this._previewPlane)&&this._updatePreviewPlane(this._lastCursorPosition,this._activeKeyModifiers),!0)}_onShiftGrab(t){if("start"!==t.action||l(this.analysisViewData.plane))return;const e=this._calculatePickRay(t.screenPoint);I(this.analysisViewData.plane,this._startPlane),this.inputState=St(e,null,this.shiftManipulator.renderLocation,this.analysisViewData.plane)}_createShiftDragPipeline(t){return Tt(t,((t,e,i)=>{const a=this.inputState;if(l(a)||"shift"!==a.type)return;const s=r(this.analysisViewData.plane)?I(this.analysisViewData.plane,x()):null;e.next(wt(this.view,a.shiftPlane)).next(this._shiftDragAdjustSensitivity(a)).next(this._shiftDragUpdatePlane(a)),i.next((()=>{r(s)&&this._updateBoundedPlane(s)}))}))}_shiftDragAdjustSensitivity(t){return e=>{if(l(this.analysisViewData.plane))return null;const i=.001,a=Math.min((1-Math.abs(f(R(this.analysisViewData.plane),e.ray.direction)/M(e.ray.direction)))/i,1),s=-O(this._startPlane.plane,e.renderEnd),n=-O(this._startPlane.plane,t.startPoint);return t.depth=t.depth*(1-a)+s*a-n,e}}_shiftDragUpdatePlane(t){return()=>{if(l(this.analysisViewData.plane))return;const e=D(L.get(),this._startPlane.origin),i=D(L.get(),R(this._startPlane));T(i,i,-t.depth),V(i,i,e);const a=j(i,this.analysisViewData.plane.basis1,this.analysisViewData.plane.basis2,x());this._updateBoundedPlane(a)}}_onRotateHeadingGrab(t){if("start"!==t.action||l(this.analysisViewData.plane))return;const e=st(this.analysisViewData.plane,this.view.renderCoordsHelper,nt.HEADING,C()),i=this._calculatePickRay(t.screenPoint),a=H();z(e,i,a)&&(I(this.analysisViewData.plane,this._startPlane),this.inputState={type:"rotate",rotatePlane:e,startPoint:a})}_createRotateHeadingDragPipeline(t){return Tt(t,((t,e,i)=>{const a=this.inputState;if(l(a)||"rotate"!==a.type)return;const s=r(this.analysisViewData.plane)?I(this.analysisViewData.plane,x()):null;e.next(wt(this.view,a.rotatePlane)).next(this._rotateDragRenderPlaneToRotate(a)).next(this._rotateDragUpdatePlaneFromRotate()),i.next((()=>{r(s)&&this._updateBoundedPlane(s)}))}))}_onRotateTiltGrab(t){if("start"!==t.action||l(this.analysisViewData.plane))return;const e=st(this.analysisViewData.plane,this.view.renderCoordsHelper,nt.TILT,C()),i=this._calculatePickRay(t.screenPoint),a=H();z(e,i,a)&&(I(this.analysisViewData.plane,this._startPlane),this.inputState={type:"rotate",rotatePlane:e,startPoint:a})}_createRotateTiltDragPipeline(t){return Tt(t,((t,e,i)=>{const a=this.inputState;if(l(a)||"rotate"!==a.type)return;const s=r(this.analysisViewData.plane)?I(this.analysisViewData.plane,x()):null;e.next(wt(this.view,a.rotatePlane)).next(this._rotateDragRenderPlaneToRotate(a)).next(this._rotateDragUpdatePlaneFromRotate()),i.next((()=>{r(s)&&this._updateBoundedPlane(s)}))}))}_rotateDragRenderPlaneToRotate(t){return e=>{if(l(this.analysisViewData.plane))return null;const i=G(t.rotatePlane),a=gt(t.startPoint,e.renderEnd,this.analysisViewData.plane.origin,i);return{...e,rotateAxis:i,rotateAngle:a}}}_rotateDragUpdatePlaneFromRotate(){return t=>{if(l(this.analysisViewData.plane))return;const e=m(K.get(),t.rotateAngle,t.rotateAxis),i=b(L.get(),this._startPlane.basis1,e),a=b(L.get(),this._startPlane.basis2,e),s=j(this.analysisViewData.plane.origin,i,a,x());this._updateBoundedPlane(s)}}_onResizeGrab(t,e){if("start"!==t.action||l(this.analysisViewData.plane))return;const i=this._calculatePickRay(t.screenPoint),a=L.get();z(this.analysisViewData.plane.plane,i,a)&&(I(this.analysisViewData.plane,this._startPlane),this.inputState={type:"resize",activeHandleIdx:e,startPoint:S(a)})}_createResizeDragPipeline(t){return Tt(t,((t,e,i)=>{const a=this.inputState;if(l(a)||"resize"!==a.type||l(this.analysisViewData.plane))return;const s=I(this.analysisViewData.plane,x());e.next(wt(this.view,this.analysisViewData.plane.plane)).next(this._resizeDragUpdatePlane(a)),i.next((()=>{this._updateBoundedPlane(s)}))}))}_resizeDragUpdatePlane(t){return e=>{if(l(this.analysisViewData.plane))return;const i=this._resizeHandles[t.activeHandleIdx],a=rt(i,t.startPoint,e.renderEnd,this.view.state.camera,this._startPlane,I(this.analysisViewData.plane));this._updateBoundedPlane(a)}}_updateBoundedPlane(t){const e=this.analysisViewData;if(!r(e))throw new Error("valid internal object expected");e.plane=t}_updatePreviewPlane(t,e={}){let i=this._previewPlane;if(this._previewPlane=null,l(t))return this._removeFrameTask(),void this._updateManipulators();if(!this.analysisViewData.plane&&this.active){const a=r(i)?i:x();if(i=r(i)?I(i,xt):null,this._pickPlane(t,!0,e,a)){const t=W;let e=!1;r(i)&&(e=f(i.plane,a.plane)<t||f(k(L.get(),i.basis1),k(L.get(),a.basis1))<t),e&&(this._previewPlaneOpacity=0),this._previewPlane=a}}r(this._previewPlane)&&l(this._frameTask)&&0===this._previewPlaneOpacity?this._frameTask=c({update:({deltaTime:t})=>{this._previewPlaneOpacity=Math.min(this._previewPlaneOpacity+t/(1e3*Z),1),this._updateManipulators(),1===this._previewPlaneOpacity&&this._removeFrameTask()}}):l(this._previewPlane)&&r(this._frameTask)?this._removeFrameTask():r(this._previewPlane)&&this._updateManipulators()}_removeFrameTask(){this._frameTask=o(this._frameTask)}_calculatePickRay(t){const e=U(),i=_(t,It);return ft(this.view.state.camera,i,e),k(e.direction,e.direction),e}_pickMinResult(t){const e=_(t,B.get());return this.view.sceneIntersectionHelper.intersectToolIntersectorScreen(e,this._intersector),this._intersector.results.min}_pickPlane(t,e,i,a){const s=this._pickMinResult(t),n=L.get();if(!s.getIntersectionPoint(n))return!1;const r=s.getTransformedNormal(L.get()),l=this.view.state.camera;f(r,l.viewForward)>0&&T(r,r,-1);const o=lt(n,l),h=(e?1:-1)*o*X,p=T(L.get(),r,h);V(p,p,n);const u=this.analysis.tiltEnabled?ot.TILTED:ot.HORIZONTAL_OR_VERTICAL,c=i[N]?ot.VERTICAL:i[q]?ot.HORIZONTAL:u;return ht(p,r,o,o,l,c,this.view.renderCoordsHelper,a),!0}_clearPointerMoveTimeout(){this._prevPointerMoveTimeout=o(this._prevPointerMoveTimeout)}_resetPointerMoveTimeout(){this._clearPointerMoveTimeout(),this.shiftManipulator.state|=pt,this.rotateHeadingManipulator.state|=pt,this.rotateTiltManipulator.state|=pt,this._prevPointerMoveTimeout=this.clock.setTimeout((()=>{this.shiftManipulator.state&=~pt,this.rotateHeadingManipulator.state&=~pt,this.rotateTiltManipulator.state&=~pt}),this._pointerMoveTimerMs)}_updateManipulators(){if(kt.disableEngineLayers)return;let t=null,e=!1;if(r(this.analysisViewData.plane))t=this.analysisViewData.plane,e=!1;else{if(!r(this._previewPlane))return this.shiftManipulator.available=!1,this.rotateHeadingManipulator.available=!1,this.rotateTiltManipulator.available=!1,this.resizeManipulators.forEach((t=>t.available=!1)),this._previewPlaneOutlineVisualElement.visible=!1,void(this._previewPlaneGridVisualElement.visible=!1);t=this._previewPlane,e=!0}const i=ut(t,K.get());e?(this.shiftManipulator.available=!1,this.rotateHeadingManipulator.available=!1,this.rotateTiltManipulator.available=!1,this.resizeManipulators.forEach((t=>t.available=!1)),this._previewPlaneOutlineVisualElement.visible=!0,this._previewPlaneGridVisualElement.visible=!0):(this.shiftManipulator.available=!0,this.rotateHeadingManipulator.available=!0,this.rotateTiltManipulator.available=this.analysis.tiltEnabled,this.resizeManipulators.forEach((t=>t.available=!0)),ct(this.shiftManipulator,i,t,this.view.state.camera),dt(this.rotateHeadingManipulator,i,t,this.view.renderCoordsHelper),_t(this.rotateTiltManipulator,i,t),this.resizeManipulators.forEach(((e,a)=>vt(e,this._resizeHandles[a],i,t))),this._previewPlaneOutlineVisualElement.visible=!1,this._previewPlaneGridVisualElement.visible=!1);const a=E(L.get(),M(t.basis1),M(t.basis2),1),s=g(K.get(),a),n=w(s,i,s);this._previewPlaneOutlineVisualElement.transform=n,this._previewPlaneGridVisualElement.transform=n,this._updateMaterials()}_updateMaterials(){const t=[J[0],J[1],J[2],J[3]*this._previewPlaneOpacity];this._previewPlaneOutlineVisualElement.color=t;const e=[Q[0],Q[1],Q[2],Q[3]*this._previewPlaneOpacity],i=[0,0,0,0];this._previewPlaneGridVisualElement.backgroundColor=e,this._previewPlaneGridVisualElement.gridColor=i}_updateManipulatorsInteractive(t){if(!t.grabbing)return this.shiftManipulator.interactive=!0,this.rotateHeadingManipulator.interactive=!0,this.rotateTiltManipulator.interactive=!0,void this.resizeManipulators.forEach((t=>{t.interactive=!0}));this.shiftManipulator.interactive=this.shiftManipulator===t,this.rotateHeadingManipulator.interactive=this.rotateHeadingManipulator===t,this.rotateTiltManipulator.interactive=this.rotateTiltManipulator===t,this.resizeManipulators.forEach((e=>{e.interactive=e===t}))}testData(){return{plane:this.analysisViewData.plane,setPointerMoveTimerMs:t=>{this._pointerMoveTimerMs=t}}}};function St(t,e,i,a){const s=Pt(i,R(a),t.direction,C()),n=H();return z(s,t,n)?{type:"shift",creatingPointerId:e,hasBeenDragged:!1,shiftPlane:s,depth:0,startPoint:n}:null}function Ht(t){return"mouse"!==t.pointerType||0===t.button}Et.disableEngineLayers=!1,t([P()],Et.prototype,"clock",void 0),t([P({constructOnly:!0})],Et.prototype,"view",void 0),t([P()],Et.prototype,"analysisViewData",void 0),t([P({readOnly:!0})],Et.prototype,"state",null),t([P({readOnly:!0})],Et.prototype,"cursor",null),t([P()],Et.prototype,"analysis",null),t([P({readOnly:!0})],Et.prototype,"layersMode",void 0),t([P({value:null})],Et.prototype,"inputState",null),t([P()],Et.prototype,"_isPlacingSlicePlane",null),t([P()],Et.prototype,"_creatingPointerId",null),Et=kt=t([y("esri.views.3d.interactive.analysisTools.slice.SliceTool")],Et);const xt=x(),It=v(),Rt=Et;export{Rt as default};
|
|
5
|
+
import{_ as t}from"../../../../chunks/tslib.es6.js";import e from"../../../../analysis/SlicePlane.js";import{clock as i}from"../../../../core/clock.js";import a from"../../../../core/Handles.js";import{releaseMaybe as s,destroyMaybe as n,isSome as r,isNone as l,removeMaybe as o}from"../../../../core/maybe.js";import{watch as h,sync as p,syncAndInitial as u}from"../../../../core/reactiveUtils.js";import{addFrameTask as c}from"../../../../core/scheduling.js";import{createScreenPoint as d,screenPointObjectToArray as _,createScreenPointArray as v}from"../../../../core/screenUtils.js";import{property as P}from"../../../../core/accessorSupport/decorators/property.js";import"../../../../core/arrayUtils.js";import"../../../../core/has.js";import"../../../../core/accessorSupport/ensureType.js";import{subclass as y}from"../../../../core/accessorSupport/decorators/subclass.js";import{d as m,u as g,m as w}from"../../../../chunks/mat4.js";import{e as f,l as M,c as D,g as T,a as V,m as b,n as k,s as E}from"../../../../chunks/vec3.js";import{a as S,c as H}from"../../../../chunks/vec3f64.js";import{c as x,a as I,n as R,f as j}from"../../../../chunks/boundedPlane.js";import{signedDistance as O,create as C,intersectRay as z,normal as G}from"../../../../geometry/support/plane.js";import{create as U}from"../../../../geometry/support/ray.js";import{sv3d as L,sm4d as K,sv2d as B}from"../../../../geometry/support/vectorStacks.js";import{POINTER_MOVE_TIMER_MS as A,PLANE_PREVIEW_OUTLINE_WIDTH as F,forceVerticalModifier as N,forceHorizontalModifier as q,PREVIEW_FADE_DURATION_SECONDS as Z,PLANE_OUTLINE_COLOR as J,PLANE_BACKGROUND_COLOR as Q,PREVIEW_FADE_DOT_THRESHOLD as W,INITIAL_DEPTH_OFFSET_FRAC as X}from"./sliceToolConfig.js";import{createShiftManipulator as Y,createRotateManipulator as $,createResizeManipulator as tt,createGridVisualElement as et,createOutlineVisualElement as it,planeToShape as at,createRotatePlane as st,RotationAxis as nt,resizePlane as rt,calculatePlaneHalfSize as lt,SliceOrientation as ot,createPlane as ht,DidPointerMoveRecentlyFlag as pt,calculateBoundedPlaneTranslateRotate as ut,updateShiftRestartHandle as ct,updateRotateHeadingHandle as dt,updateRotateTiltHandle as _t,updateResizeHandle as vt,createShiftPlane as Pt}from"./sliceToolUtils.js";import{getRotateHeadingTexture as yt,getTiltRotateTexture as mt}from"./images/Factory.js";import{calculateInputRotationTransform as gt}from"../../interactive/manipulatorUtils.js";import{screenToRenderPlane as wt}from"../../interactive/editingTools/dragEventPipeline3D.js";import{fromScreen as ft}from"../../support/geometryUtils/ray.js";import{newIntersector as Mt}from"../../webgl-engine/lib/Intersector.js";import{StoreResults as Dt}from"../../webgl-engine/lib/IntersectorInterfaces.js";import{createManipulatorDragEventPipeline as Tt}from"../../../interactive/dragEventPipeline.js";import{InteractiveToolBase as Vt}from"../../../interactive/InteractiveToolBase.js";import{createScreenPointFromEvent as bt}from"../../../support/screenUtils.js";var kt;let Et=kt=class extends Vt{constructor(t){super(t),this.clock=i,this._previewPlaneOpacity=1,this.layersMode="none",this.shiftManipulator=null,this.rotateHeadingManipulator=null,this.rotateTiltManipulator=null,this.resizeManipulators=null,this._handles=new a,this._viewHandles=new a,this._frameTask=null,this._pointerMoveTimerMs=A,this._prevPointerMoveTimeout=null,this._previewPlaneGridVisualElement=null,this._previewPlaneOutlineVisualElement=null,this._startPlane=x(),this._previewPlane=null,this._activeKeyModifiers={},this._lastCursorPosition=d(),this._resizeHandles=[{direction:[1,0]},{direction:[1,1]},{direction:[0,1]},{direction:[-1,1]},{direction:[-1,0]},{direction:[-1,-1]},{direction:[0,-1]},{direction:[1,-1]}],this._intersector=Mt(t.view.state.viewingMode),this._intersector.options.store=Dt.MIN}initialize(){if(null==this.analysis)throw new Error("SliceTool requires valid analysis, but null was provided.");this.rotateHeadingImage=yt(this.view.toolViewManager.textures),this.rotateTiltImage=mt(this.view.toolViewManager.textures);const t=t=>{this._updateManipulatorsInteractive(t),t.grabbing||(r(this.analysisViewData.plane)&&I(this.analysisViewData.plane,this._startPlane),this.inputState=null)};this.shiftManipulator=Y(this.view),this.manipulators.add(this.shiftManipulator),this.shiftManipulator.events.on("grab-changed",(e=>{this._onShiftGrab(e),t(this.shiftManipulator)})),this._handles.add(this._createShiftDragPipeline(this.shiftManipulator)),this.rotateHeadingManipulator=$(this.view,this.rotateHeadingImage.texture),this.manipulators.add(this.rotateHeadingManipulator),this.rotateHeadingManipulator.events.on("grab-changed",(e=>{this._onRotateHeadingGrab(e),t(this.rotateHeadingManipulator)})),this._handles.add(this._createRotateHeadingDragPipeline(this.rotateHeadingManipulator)),this.rotateTiltManipulator=$(this.view,this.rotateTiltImage.texture),this.manipulators.add(this.rotateTiltManipulator),this.rotateTiltManipulator.events.on("grab-changed",(e=>{this._onRotateTiltGrab(e),t(this.rotateTiltManipulator)})),this._handles.add(this._createRotateTiltDragPipeline(this.rotateTiltManipulator)),this.resizeManipulators=this._resizeHandles.map(((e,i)=>{const a=tt(this.view,e);return a.events.on("grab-changed",(e=>{this._onResizeGrab(e,i),t(a)})),this._handles.add(this._createResizeDragPipeline(a)),a})),this.manipulators.addMany(this.resizeManipulators),this._previewPlaneGridVisualElement=et(this.view),this._previewPlaneOutlineVisualElement=it(this.view),this._previewPlaneOutlineVisualElement.width=F,this._handles.add(h((()=>this.analysisViewData.plane),(()=>this._updateManipulators()),p));const e=h((()=>this.state),(t=>{"sliced"===t&&this.finishToolCreation()}),u);this._handles.add([e,h((()=>this.view.state.camera),(()=>this._onCameraChange()))])}destroy(){this.rotateHeadingImage=s(this.rotateHeadingImage),this.rotateTiltImage=s(this.rotateTiltImage),this._handles=n(this._handles),this._viewHandles=n(this._viewHandles),this._removeFrameTask(),this._clearPointerMoveTimeout(),this._previewPlaneOutlineVisualElement=n(this._previewPlaneOutlineVisualElement),this._previewPlaneGridVisualElement=n(this._previewPlaneGridVisualElement)}get state(){const t=!!this.analysisViewData.plane,e=!!this.inputState;return t?t&&e?"slicing":t&&!e?"sliced":"ready":"ready"}get cursor(){return this._isPlacingSlicePlane||"exclude"===this.layersMode?"crosshair":r(this._creatingPointerId)?"grabbing":null}set analysis(t){if(null==t)throw new Error("SliceTool requires valid analysis, but null was provided.");this._handles.remove("analysis"),this._set("analysis",t)}get inputState(){return this._get("inputState")}set inputState(t){this._set("inputState",t),this.analysisViewData.showGrid=r(t)&&"resize"===t.type,this._updateMaterials()}get _isPlacingSlicePlane(){return!this.inputState&&!this.analysisViewData.plane&&this.active}get _creatingPointerId(){return r(this.inputState)&&"shift"===this.inputState.type?this.inputState.creatingPointerId:null}enterExcludeLayerMode(){l(this.analysisViewData.plane)||(this._set("layersMode","exclude"),this.active||(this.view.activeTool=this))}exitExcludeLayerMode(){l(this.analysisViewData.plane)||(this._set("layersMode","none"),this.active&&(this.view.activeTool=null))}onDeactivate(){this._set("layersMode","none"),this._updatePreviewPlane(null)}onShow(){this._updateVisibility(!0)}onHide(){this._updateVisibility(!1)}_updateVisibility(t){this._updateManipulators(),t||this._clearPointerMoveTimeout()}onInputEvent(t){switch(t.type){case"pointer-drag":if(!Ht(t))return;this._isPlacingSlicePlane?this._onClickPlacePlane(t)&&t.stopPropagation():this._onPointerDrag(t)&&t.stopPropagation();break;case"pointer-move":this._onPointerMove(t);break;case"pointer-up":this._onPointerUp(t)&&t.stopPropagation();break;case"immediate-click":if(!Ht(t))return;this._onClickPlacePlane(t)&&t.stopPropagation();break;case"click":if(!Ht(t))return;this._onClickExcludeLayer(t)&&t.stopPropagation();break;case"drag":this.inputState&&t.stopPropagation();break;case"key-down":this._onKeyDown(t)&&t.stopPropagation();break;case"key-up":this._onKeyUp(t)&&t.stopPropagation()}}onEditableChange(){this.analysisViewData.editable=this.editable}_onPointerDrag(t){const e=this.inputState;if(t.pointerId===this._creatingPointerId&&r(e)&&"shift"===e.type){const i=bt(t);return this.shiftManipulator.events.emit("drag",{action:e.hasBeenDragged?"update":"start",pointerType:t.pointerType,start:i,screenPoint:i}),e.hasBeenDragged=!0,!0}return!1}_onPointerMove(t){this._lastCursorPosition.x=t.x,this._lastCursorPosition.y=t.y,this._resetPointerMoveTimeout(),"touch"!==t.pointerType&&this._updatePreviewPlane(bt(t),this._activeKeyModifiers)}_onCameraChange(){this._updatePreviewPlane(this._lastCursorPosition,this._activeKeyModifiers),this._updateManipulators()}_onPointerUp(t){if(t.pointerId===this._creatingPointerId&&r(this.analysisViewData.plane)){const e=bt(t);return this.shiftManipulator.events.emit("drag",{action:"end",start:e,screenPoint:e}),I(this.analysisViewData.plane,this._startPlane),this.inputState=null,!0}return!1}_onClickPlacePlane(t){if("exclude"===this.layersMode)return!1;if(this._isPlacingSlicePlane){const i=bt(t),a=x();if(this._pickPlane(i,!1,this._activeKeyModifiers,a)){if(I(a,this._startPlane),this.analysis.shape=at(a,this.view,this.view.spatialReference,new e),"pointer-drag"===t.type){const e=this._calculatePickRay(i);this.inputState=St(e,t.pointerId,a.origin,a)}return!0}}return!1}_onClickExcludeLayer(t){return!("exclude"!==this.layersMode||!this.created)&&(this.view.hitTest(bt(t)).then((t=>{if(t.results.length){const e=t.results[0],i=e&&e.graphic;if(i){const t=i.sourceLayer||i.layer;t&&this.analysis.excludedLayers.push(t)}}else t.ground.layer?this.analysis.excludedLayers.push(t.ground.layer):this.analysis.excludeGroundSurface=!0})),this._set("layersMode","none"),this.active&&(this.view.activeTool=null),!0)}_onKeyDown(t){return(t.key===N||t.key===q)&&(this._activeKeyModifiers[t.key]=!0,r(this._previewPlane)&&this._updatePreviewPlane(this._lastCursorPosition,this._activeKeyModifiers),!0)}_onKeyUp(t){return!(t.key!==N&&t.key!==q||!this._activeKeyModifiers[t.key])&&(delete this._activeKeyModifiers[t.key],r(this._previewPlane)&&this._updatePreviewPlane(this._lastCursorPosition,this._activeKeyModifiers),!0)}_onShiftGrab(t){if("start"!==t.action||l(this.analysisViewData.plane))return;const e=this._calculatePickRay(t.screenPoint);I(this.analysisViewData.plane,this._startPlane),this.inputState=St(e,null,this.shiftManipulator.renderLocation,this.analysisViewData.plane)}_createShiftDragPipeline(t){return Tt(t,((t,e,i)=>{const a=this.inputState;if(l(a)||"shift"!==a.type)return;const s=r(this.analysisViewData.plane)?I(this.analysisViewData.plane,x()):null;e.next(wt(this.view,a.shiftPlane)).next(this._shiftDragAdjustSensitivity(a)).next(this._shiftDragUpdatePlane(a)),i.next((()=>{r(s)&&this._updateBoundedPlane(s)}))}))}_shiftDragAdjustSensitivity(t){return e=>{if(l(this.analysisViewData.plane))return null;const i=.001,a=Math.min((1-Math.abs(f(R(this.analysisViewData.plane),e.ray.direction)/M(e.ray.direction)))/i,1),s=-O(this._startPlane.plane,e.renderEnd),n=-O(this._startPlane.plane,t.startPoint);return t.depth=t.depth*(1-a)+s*a-n,e}}_shiftDragUpdatePlane(t){return()=>{if(l(this.analysisViewData.plane))return;const e=D(L.get(),this._startPlane.origin),i=D(L.get(),R(this._startPlane));T(i,i,-t.depth),V(i,i,e);const a=j(i,this.analysisViewData.plane.basis1,this.analysisViewData.plane.basis2,x());this._updateBoundedPlane(a)}}_onRotateHeadingGrab(t){if("start"!==t.action||l(this.analysisViewData.plane))return;const e=st(this.analysisViewData.plane,this.view.renderCoordsHelper,nt.HEADING,C()),i=this._calculatePickRay(t.screenPoint),a=H();z(e,i,a)&&(I(this.analysisViewData.plane,this._startPlane),this.inputState={type:"rotate",rotatePlane:e,startPoint:a})}_createRotateHeadingDragPipeline(t){return Tt(t,((t,e,i)=>{const a=this.inputState;if(l(a)||"rotate"!==a.type)return;const s=r(this.analysisViewData.plane)?I(this.analysisViewData.plane,x()):null;e.next(wt(this.view,a.rotatePlane)).next(this._rotateDragRenderPlaneToRotate(a)).next(this._rotateDragUpdatePlaneFromRotate()),i.next((()=>{r(s)&&this._updateBoundedPlane(s)}))}))}_onRotateTiltGrab(t){if("start"!==t.action||l(this.analysisViewData.plane))return;const e=st(this.analysisViewData.plane,this.view.renderCoordsHelper,nt.TILT,C()),i=this._calculatePickRay(t.screenPoint),a=H();z(e,i,a)&&(I(this.analysisViewData.plane,this._startPlane),this.inputState={type:"rotate",rotatePlane:e,startPoint:a})}_createRotateTiltDragPipeline(t){return Tt(t,((t,e,i)=>{const a=this.inputState;if(l(a)||"rotate"!==a.type)return;const s=r(this.analysisViewData.plane)?I(this.analysisViewData.plane,x()):null;e.next(wt(this.view,a.rotatePlane)).next(this._rotateDragRenderPlaneToRotate(a)).next(this._rotateDragUpdatePlaneFromRotate()),i.next((()=>{r(s)&&this._updateBoundedPlane(s)}))}))}_rotateDragRenderPlaneToRotate(t){return e=>{if(l(this.analysisViewData.plane))return null;const i=G(t.rotatePlane),a=gt(t.startPoint,e.renderEnd,this.analysisViewData.plane.origin,i);return{...e,rotateAxis:i,rotateAngle:a}}}_rotateDragUpdatePlaneFromRotate(){return t=>{if(l(this.analysisViewData.plane))return;const e=m(K.get(),t.rotateAngle,t.rotateAxis),i=b(L.get(),this._startPlane.basis1,e),a=b(L.get(),this._startPlane.basis2,e),s=j(this.analysisViewData.plane.origin,i,a,x());this._updateBoundedPlane(s)}}_onResizeGrab(t,e){if("start"!==t.action||l(this.analysisViewData.plane))return;const i=this._calculatePickRay(t.screenPoint),a=L.get();z(this.analysisViewData.plane.plane,i,a)&&(I(this.analysisViewData.plane,this._startPlane),this.inputState={type:"resize",activeHandleIdx:e,startPoint:S(a)})}_createResizeDragPipeline(t){return Tt(t,((t,e,i)=>{const a=this.inputState;if(l(a)||"resize"!==a.type||l(this.analysisViewData.plane))return;const s=I(this.analysisViewData.plane,x());e.next(wt(this.view,this.analysisViewData.plane.plane)).next(this._resizeDragUpdatePlane(a)),i.next((()=>{this._updateBoundedPlane(s)}))}))}_resizeDragUpdatePlane(t){return e=>{if(l(this.analysisViewData.plane))return;const i=this._resizeHandles[t.activeHandleIdx],a=rt(i,t.startPoint,e.renderEnd,this.view.state.camera,this._startPlane,I(this.analysisViewData.plane));this._updateBoundedPlane(a)}}_updateBoundedPlane(t){const e=this.analysisViewData;if(!r(e))throw new Error("valid internal object expected");e.plane=t}_updatePreviewPlane(t,e={}){let i=this._previewPlane;if(this._previewPlane=null,l(t))return this._removeFrameTask(),void this._updateManipulators();if(!this.analysisViewData.plane&&this.active){const a=r(i)?i:x();if(i=r(i)?I(i,xt):null,this._pickPlane(t,!0,e,a)){const t=W;let e=!1;r(i)&&(e=f(i.plane,a.plane)<t||f(k(L.get(),i.basis1),k(L.get(),a.basis1))<t),e&&(this._previewPlaneOpacity=0),this._previewPlane=a}}r(this._previewPlane)&&l(this._frameTask)&&0===this._previewPlaneOpacity?this._frameTask=c({update:({deltaTime:t})=>{this._previewPlaneOpacity=Math.min(this._previewPlaneOpacity+t/(1e3*Z),1),this._updateManipulators(),1===this._previewPlaneOpacity&&this._removeFrameTask()}}):l(this._previewPlane)&&r(this._frameTask)?this._removeFrameTask():r(this._previewPlane)&&this._updateManipulators()}_removeFrameTask(){this._frameTask=o(this._frameTask)}_calculatePickRay(t){const e=U(),i=_(t,It);return ft(this.view.state.camera,i,e),k(e.direction,e.direction),e}_pickMinResult(t){const e=_(t,B.get());return this.view.sceneIntersectionHelper.intersectToolIntersectorScreen(e,this._intersector),this._intersector.results.min}_pickPlane(t,e,i,a){const s=this._pickMinResult(t),n=L.get();if(!s.getIntersectionPoint(n))return!1;const r=s.getTransformedNormal(L.get()),l=this.view.state.camera;f(r,l.viewForward)>0&&T(r,r,-1);const o=lt(n,l),h=(e?1:-1)*o*X,p=T(L.get(),r,h);V(p,p,n);const u=this.analysis.tiltEnabled?ot.TILTED:ot.HORIZONTAL_OR_VERTICAL,c=i[N]?ot.VERTICAL:i[q]?ot.HORIZONTAL:u;return ht(p,r,o,o,l,c,this.view.renderCoordsHelper,a),!0}_clearPointerMoveTimeout(){this._prevPointerMoveTimeout=o(this._prevPointerMoveTimeout)}_resetPointerMoveTimeout(){this._clearPointerMoveTimeout(),this.shiftManipulator.state|=pt,this.rotateHeadingManipulator.state|=pt,this.rotateTiltManipulator.state|=pt,this._prevPointerMoveTimeout=this.clock.setTimeout((()=>{this.shiftManipulator.state&=~pt,this.rotateHeadingManipulator.state&=~pt,this.rotateTiltManipulator.state&=~pt}),this._pointerMoveTimerMs)}_updateManipulators(){if(kt.disableEngineLayers)return;let t=null,e=!1;if(r(this.analysisViewData.plane))t=this.analysisViewData.plane,e=!1;else{if(!r(this._previewPlane))return this.shiftManipulator.available=!1,this.rotateHeadingManipulator.available=!1,this.rotateTiltManipulator.available=!1,this.resizeManipulators.forEach((t=>t.available=!1)),this._previewPlaneOutlineVisualElement.visible=!1,void(this._previewPlaneGridVisualElement.visible=!1);t=this._previewPlane,e=!0}const i=ut(t,K.get());e?(this.shiftManipulator.available=!1,this.rotateHeadingManipulator.available=!1,this.rotateTiltManipulator.available=!1,this.resizeManipulators.forEach((t=>t.available=!1)),this._previewPlaneOutlineVisualElement.visible=!0,this._previewPlaneGridVisualElement.visible=!0):(this.shiftManipulator.available=!0,this.rotateHeadingManipulator.available=!0,this.rotateTiltManipulator.available=this.analysis.tiltEnabled,this.resizeManipulators.forEach((t=>t.available=!0)),ct(this.shiftManipulator,i,t,this.view.state.camera),dt(this.rotateHeadingManipulator,i,t,this.view.renderCoordsHelper),_t(this.rotateTiltManipulator,i,t),this.resizeManipulators.forEach(((e,a)=>vt(e,this._resizeHandles[a],i,t))),this._previewPlaneOutlineVisualElement.visible=!1,this._previewPlaneGridVisualElement.visible=!1);const a=E(L.get(),M(t.basis1),M(t.basis2),1),s=g(K.get(),a),n=w(s,i,s);this._previewPlaneOutlineVisualElement.transform=n,this._previewPlaneGridVisualElement.transform=n,this._updateMaterials()}_updateMaterials(){const t=[J[0],J[1],J[2],J[3]*this._previewPlaneOpacity];this._previewPlaneOutlineVisualElement.color=t;const e=[Q[0],Q[1],Q[2],Q[3]*this._previewPlaneOpacity],i=[0,0,0,0];this._previewPlaneGridVisualElement.backgroundColor=e,this._previewPlaneGridVisualElement.gridColor=i}_updateManipulatorsInteractive(t){if(!t.grabbing)return this.shiftManipulator.interactive=!0,this.rotateHeadingManipulator.interactive=!0,this.rotateTiltManipulator.interactive=!0,void this.resizeManipulators.forEach((t=>{t.interactive=!0}));this.shiftManipulator.interactive=this.shiftManipulator===t,this.rotateHeadingManipulator.interactive=this.rotateHeadingManipulator===t,this.rotateTiltManipulator.interactive=this.rotateTiltManipulator===t,this.resizeManipulators.forEach((e=>{e.interactive=e===t}))}testData(){return{plane:this.analysisViewData.plane,setPointerMoveTimerMs:t=>{this._pointerMoveTimerMs=t}}}};function St(t,e,i,a){const s=Pt(i,R(a),t.direction,C()),n=H();return z(s,t,n)?{type:"shift",creatingPointerId:e,hasBeenDragged:!1,shiftPlane:s,depth:0,startPoint:n}:null}function Ht(t){return"mouse"!==t.pointerType||0===t.button}Et.disableEngineLayers=!1,t([P()],Et.prototype,"clock",void 0),t([P({constructOnly:!0})],Et.prototype,"view",void 0),t([P()],Et.prototype,"analysisViewData",void 0),t([P({readOnly:!0})],Et.prototype,"state",null),t([P({readOnly:!0})],Et.prototype,"cursor",null),t([P()],Et.prototype,"analysis",null),t([P({readOnly:!0})],Et.prototype,"layersMode",void 0),t([P({value:null})],Et.prototype,"inputState",null),t([P()],Et.prototype,"_isPlacingSlicePlane",null),t([P()],Et.prototype,"_creatingPointerId",null),Et=kt=t([y("esri.views.3d.analysis.Slice.SliceTool")],Et);const xt=x(),It=v(),Rt=Et;export{Rt as default};
|
|
@@ -2,4 +2,4 @@
|
|
|
2
2
|
All material copyright ESRI, All Rights Reserved, unless otherwise specified.
|
|
3
3
|
See https://js.arcgis.com/4.24/esri/copyright.txt for details.
|
|
4
4
|
*/
|
|
5
|
-
import{_ as i}from"../../../chunks/tslib.es6.js";import s from"../../../core/Accessor.js";import{destroyMaybe as t,unwrap as o,isNone as e}from"../../../core/maybe.js";import{property as a}from"../../../core/accessorSupport/decorators/property.js";import"../../../core/arrayUtils.js";import"../../../core/has.js";import"../../../core/accessorSupport/ensureType.js";import{subclass as l}from"../../../core/accessorSupport/decorators/subclass.js";import{AnalysisView3D as r}from"./AnalysisView3D.js";import{SliceController as n}from"./Slice/SliceController.js";import h from"./Slice/SliceTool.js";import{SliceVisualization as y}from"./Slice/SliceVisualization.js";let p=class extends(r(s)){constructor(i){super(i),this.type="slice-view-3d",this.tool=null,this.analysisVisualization=null,this.analysisController=null,this.plane=null,this.active=!0,this.showGrid=!1}initialize(){this.analysisVisualization=new y({view:this.view,analysis:this.analysis,analysisViewData:this}),this.analysisController=new n({view:this.view,analysis:this.analysis,analysisViewData:this})}destroy(){this.analysisVisualization=t(this.analysisVisualization),this.analysisController=t(this.analysisController)}get editable(){return!this.analysisVisualization.preview}set editable(i){this.analysisVisualization.preview=!i}set interactive(i){i!==this._get("interactive")&&(this._set("interactive",i),i?this._createTool():this._removeTool())}async when(){return await this.analysisVisualization.whenReady(),await this.analysisController.whenReady(),this}get testData(){return{visualization:this.analysisVisualization,controller:this.analysisController,tool:o(this.tool)}}_createTool(){this._removeTool();const i=new h({view:this.view,analysis:this.analysis,analysisViewData:this,visible:this.visible});this.tool=i,this.view.tools.add(i)}_removeTool(){const i=this.tool;e(i)||(this.view.tools.remove(i),this.tool=null)}};i([a()],p.prototype,"type",void 0),i([a()],p.prototype,"analysis",void 0),i([a()],p.prototype,"tool",void 0),i([a()],p.prototype,"plane",void 0),i([a()],p.prototype,"active",void 0),i([a({aliasOf:"analysisVisualization.showGrid"})],p.prototype,"showGrid",void 0),i([a()],p.prototype,"editable",null),i([a({type:Boolean,value:!1})],p.prototype,"interactive",null),p=i([l("esri.views.3d.analysis.SliceAnalysisView3D")],p);const c=p;export{c as default};
|
|
5
|
+
import{_ as i}from"../../../chunks/tslib.es6.js";import s from"../../../core/Accessor.js";import{destroyMaybe as t,unwrap as o,isNone as e}from"../../../core/maybe.js";import{property as a}from"../../../core/accessorSupport/decorators/property.js";import"../../../core/arrayUtils.js";import"../../../core/has.js";import"../../../core/accessorSupport/ensureType.js";import{subclass as l}from"../../../core/accessorSupport/decorators/subclass.js";import{AnalysisView3D as r}from"./AnalysisView3D.js";import{SliceController as n}from"./Slice/SliceController.js";import h from"./Slice/SliceTool.js";import{SliceVisualization as y}from"./Slice/SliceVisualization.js";let p=class extends(r(s)){constructor(i){super(i),this.type="slice-view-3d",this.tool=null,this.analysisVisualization=null,this.analysisController=null,this.plane=null,this.active=!0,this.showGrid=!1}initialize(){this.analysisVisualization=new y({view:this.view,analysis:this.analysis,analysisViewData:this}),this.analysisController=new n({view:this.view,analysis:this.analysis,analysisViewData:this})}destroy(){this.analysisVisualization=t(this.analysisVisualization),this.analysisController=t(this.analysisController)}get editable(){return!this.analysisVisualization.preview}set editable(i){this.analysisVisualization.preview=!i}set interactive(i){i!==this._get("interactive")&&(this._set("interactive",i),i?this._createTool():this._removeTool())}async when(){return await this.analysisVisualization.whenReady(),await this.analysisController.whenReady(),this}get testData(){return{visualization:this.analysisVisualization,controller:this.analysisController,tool:o(this.tool)}}_createTool(){this._removeTool();const i=new h({view:this.view,analysis:this.analysis,analysisViewData:this,visible:this.visible});this.tool=i,this.view.tools.add(i)}_removeTool(){const i=this.tool;e(i)||(this.view.tools.remove(i),this.tool=null)}};i([a({readOnly:!0})],p.prototype,"type",void 0),i([a({constructOnly:!0,nonNullable:!0})],p.prototype,"analysis",void 0),i([a()],p.prototype,"tool",void 0),i([a()],p.prototype,"plane",void 0),i([a()],p.prototype,"active",void 0),i([a({aliasOf:"analysisVisualization.showGrid"})],p.prototype,"showGrid",void 0),i([a()],p.prototype,"editable",null),i([a({type:Boolean,value:!1})],p.prototype,"interactive",null),p=i([l("esri.views.3d.analysis.SliceAnalysisView3D")],p);const c=p;export{c as default};
|
|
@@ -2,4 +2,4 @@
|
|
|
2
2
|
All material copyright ESRI, All Rights Reserved, unless otherwise specified.
|
|
3
3
|
See https://js.arcgis.com/4.24/esri/copyright.txt for details.
|
|
4
4
|
*/
|
|
5
|
-
import"../webgl-engine/core/shaderLibrary/attributes/TextureCoordinateAttribute.glsl.js";import"../webgl-engine/core/shaderLibrary/output/ReadLinearDepth.glsl.js";import"../webgl-engine/core/shaderLibrary/shading/Gamma.glsl.js";import"../webgl-engine/core/shaderModules/Float2PassUniform.js";import"../webgl-engine/core/shaderModules/Float2Uniform.js";import"../webgl-engine/core/shaderModules/Float3PassUniform.js";import"../webgl-engine/core/shaderModules/Float3Uniform.js";import"../webgl-engine/core/shaderModules/Float4Uniform.js";import"../webgl-engine/core/shaderModules/FloatUniform.js";import"../webgl-engine/core/shaderModules/interfaces.js";import"../webgl-engine/core/shaderModules/Matrix4PassUniform.js";import"../webgl-engine/core/shaderModules/
|
|
5
|
+
import"../../../chunks/mat4.js";import"../../../chunks/mat4f64.js";import"../webgl-engine/core/shaderLibrary/attributes/TextureCoordinateAttribute.glsl.js";import"../webgl-engine/core/shaderLibrary/output/ReadLinearDepth.glsl.js";import"../webgl-engine/core/shaderLibrary/shading/Gamma.glsl.js";import"../webgl-engine/core/shaderModules/Float2PassUniform.js";import"../webgl-engine/core/shaderModules/Float2Uniform.js";import"../webgl-engine/core/shaderModules/Float3PassUniform.js";import"../webgl-engine/core/shaderModules/Float3Uniform.js";import"../webgl-engine/core/shaderModules/Float4Uniform.js";import"../webgl-engine/core/shaderModules/FloatUniform.js";import"../webgl-engine/core/shaderModules/interfaces.js";import"../webgl-engine/core/shaderModules/Matrix4PassUniform.js";import"../webgl-engine/core/shaderModules/ShaderBuilder.js";import"../webgl-engine/core/shaderModules/Texture2DUniform.js";import"../webgl-engine/lib/VertexAttribute.js";export{b as build}from"../../../chunks/ChapmanAtmosphere.glsl.js";
|
|
@@ -2,4 +2,4 @@
|
|
|
2
2
|
All material copyright ESRI, All Rights Reserved, unless otherwise specified.
|
|
3
3
|
See https://js.arcgis.com/4.24/esri/copyright.txt for details.
|
|
4
4
|
*/
|
|
5
|
-
import e from"../../../core/Handles.js";import{lerp as t,smoothstep as i}from"../../../core/mathUtils.js";import{releaseMaybe as s,disposeMaybe as a,destroyMaybe as r,isSome as h,isNone as
|
|
5
|
+
import e from"../../../core/Handles.js";import{lerp as t,smoothstep as i}from"../../../core/mathUtils.js";import{releaseMaybe as s,disposeMaybe as a,destroyMaybe as r,isSome as h,isNone as o,unwrapOr as n}from"../../../core/maybe.js";import{on as d}from"../../../core/reactiveUtils.js";import{b as m}from"../../../chunks/vec2.js";import{a as _}from"../../../chunks/vec2f64.js";import{s as u,l as c,c as l}from"../../../chunks/vec3.js";import{c as p}from"../../../chunks/vec3f64.js";import{c as f,f as g}from"../../../chunks/vec4f64.js";import{earth as v}from"../../../geometry/support/Ellipsoid.js";import{rayLeighScaleHeight as b,atmosphereHeight as T,betaRayleigh as R,betaOzone as H,betaMie as w,innerAtmosphereDepth as j,computeInnerAltitudeFade as q}from"./atmosphereUtils.js";import{ChapmanAtmosphereTechnique as x}from"./ChapmanAtmosphereTechnique.js";import{ChapmanAtmosphereTechniqueConfiguration as E}from"./ChapmanAtmosphereTechniqueConfiguration.js";import{NoParameters as z}from"../webgl-engine/core/shaderModules/interfaces.js";import{Pos2Tex as B}from"../webgl-engine/lib/DefaultVertexBufferLayouts.js";import{createQuadVAO as y}from"../webgl-engine/lib/glUtil3D.js";import{PrimitiveType as U}from"../../webgl/enums.js";class C{constructor(e){this._view=e,this.type="realistic",this.canRender=!0,this._cameraPosition=p(),this._heightParameters=f(),this._betasRayleigh=p(),this._betasCombined=p(),this._scaleHeight=0,this._radii=_(),this._cameraHeight=0,this._cameraHeightSq=0,this._cAtmosphere=0,this._innerFadeDistance=0,this._altitudeFade=0,this._lowerElevationBoundRadius=0,this._lowerBoundEarthRadius=v.radius,this._hazeStrength=1,this._darkenHaze=!1,this._updateRadius(v.radius)}destroy(){this._atmosphereTechnique=s(this._atmosphereTechnique),this._atmosphereHazeTechnique=s(this._atmosphereHazeTechnique),this._vao=a(this._vao),this._handles=r(this._handles)}when(){return Promise.resolve()}initializeRenderContext(t){const i=t.renderContext.rctx,s=this._handles=new e,a=this._view.basemapTerrain;h(a.rootTiles)&&this._updateElevation({spatialReference:a.spatialReference,tile:a.rootTiles[0],extent:a.rootTiles[0].extent,context:"ground"}),s.add(d((()=>this._view.basemapTerrain),"elevation-change",(e=>this._updateElevation(e)),{onListenerAdd:()=>this._updateElevation()})),s.add(d((()=>this._view.basemapTerrain),"elevation-bounds-change",(()=>this._updateVisibleElevationBounds())));const r=new E;r.haze=!1,this._atmosphereTechnique=t.shaderTechniqueRepository.acquire(x,r),r.haze=!0,this._atmosphereHazeTechnique=t.shaderTechniqueRepository.acquire(x,r),this._vao=y(i,B),this._scaleHeight=b*T,u(this._betasRayleigh,R[0],R[1],R[2]),u(this._betasCombined,R[0]+H[0],R[1]+H[1],R[2]+H[2])}render(e){this._render(e,this._atmosphereTechnique,e.offscreenRenderingHelper.depthTexture)}renderHaze(e,t){this._darkenHaze=t,this._render(e,this._atmosphereHazeTechnique,e.offscreenRenderingHelper.linearDepthTexture)}_render(e,t,i){this._update(e.bindParameters.camera);const s=e.rctx.bindTechnique(t,P,e.bindParameters);e.offscreenRenderingHelper.renderDepthDetached((()=>{s.bindTexture("depthTex",i),this._renderCommon(t.program,e)}))}_renderCommon(e,t){if(o(this._vao))return;const i=t.rctx;e.setUniform4fv("heightParameters",this._heightParameters),e.setUniform3fv("cameraPosition",this._cameraPosition),e.setUniform2fv("radii",this._radii),e.setUniform1f("scaleHeight",this._scaleHeight),e.setUniform1f("betaMie",w),e.setUniform3fv("betaRayleigh",this._betasRayleigh),e.setUniform3fv("betaCombined",this._betasCombined),e.setUniform1f("innerFadeDistance",this._innerFadeDistance),e.setUniform1f("altitudeFade",this._altitudeFade),e.setUniform1f("hazeStrength",this._hazeStrength),i.bindVAO(this._vao),e.assertCompatibleVertexAttributeLocations(this._vao),i.drawArrays(U.TRIANGLE_STRIP,0,4)}_adjustRadiusForTesselation(e){return e*Math.cos(Math.PI/16/16)}_updateElevation(e){const t=e?e.tile:n(this._view.basemapTerrain.rootTiles,[null])[0];if(o(t)||0!==t.level)return;const i=this._adjustRadiusForTesselation(v.radius+t.elevationBounds[0]);i!==this._lowerElevationBoundRadius&&(this._lowerElevationBoundRadius=i,this._lowerBoundEarthRadius=-1,this._updateVisibleElevationBounds())}_updateVisibleElevationBounds(){const e=this._adjustRadiusForTesselation(v.radius+this._view.basemapTerrain.elevationBounds.min);(this._lowerBoundEarthRadius<0||e<this._lowerBoundEarthRadius)&&this._updateRadius(e)}_updateRadius(e){this._lowerBoundEarthRadius=e,m(this._radii,e,e+T),this._innerFadeDistance=2*Math.sqrt((2*e-j)*j)}_update(e){if(o(e))return;this._cameraHeight=c(e.eye),this._cameraHeightSq=this._cameraHeight*this._cameraHeight,this._cAtmosphere=this._cameraHeightSq-this._radii[1]*this._radii[1];const s=Math.min(1,Math.max(0,(this._cameraHeight-this._radii[0])/T));this._heightParameters=g(this._cameraHeight,this._cameraHeightSq,this._cAtmosphere,s),l(this._cameraPosition,e.eye),this._altitudeFade=q(this._cameraHeight-this._lowerBoundEarthRadius),this._hazeStrength=this._darkenHaze?t(.6,1,i(9500,10500,this._cameraHeight-v.radius)):1}static isSupported(e){return e.renderContext.rctx.capabilities.depthTexture}}const P=new z;export{C as ChapmanAtmosphere};
|
|
@@ -2,4 +2,4 @@
|
|
|
2
2
|
All material copyright ESRI, All Rights Reserved, unless otherwise specified.
|
|
3
3
|
See https://js.arcgis.com/4.24/esri/copyright.txt for details.
|
|
4
4
|
*/
|
|
5
|
-
import"../../../chunks/mat3f64.js";import"./CloudsTechniqueConfiguration.js";import"./NoiseTextureAtlas.js";import"../webgl-engine/core/shaderLibrary/ScreenSpacePass.js";import"../webgl-engine/core/shaderModules/FloatUniform.js";import"../webgl-engine/core/shaderModules/interfaces.js";import"../webgl-engine/core/shaderModules/
|
|
5
|
+
import"../../../chunks/mat3f64.js";import"./CloudsTechniqueConfiguration.js";import"./NoiseTextureAtlas.js";import"../webgl-engine/core/shaderLibrary/ScreenSpacePass.js";import"../webgl-engine/core/shaderModules/FloatUniform.js";import"../webgl-engine/core/shaderModules/interfaces.js";import"../webgl-engine/core/shaderModules/Matrix3DrawUniform.js";import"../webgl-engine/core/shaderModules/ShaderBuilder.js";import"../webgl-engine/core/shaderModules/Texture2DUniform.js";export{C as CloudsDrawParameters,b as build}from"../../../chunks/Clouds.glsl.js";
|
|
@@ -2,4 +2,4 @@
|
|
|
2
2
|
All material copyright ESRI, All Rights Reserved, unless otherwise specified.
|
|
3
3
|
See https://js.arcgis.com/4.24/esri/copyright.txt for details.
|
|
4
4
|
*/
|
|
5
|
-
import"../webgl-engine/core/shaderLibrary/shading/EvaluateAmbientLighting.glsl.js";import"../webgl-engine/core/shaderLibrary/shading/Gamma.glsl.js";import"../webgl-engine/core/shaderLibrary/shading/PhysicallyBasedRenderingParameters.glsl.js";import"../webgl-engine/core/shaderLibrary/shading/PiUtils.glsl.js";import"../webgl-engine/core/shaderLibrary/util/CloudsParallaxShading.glsl.js";import"../webgl-engine/core/shaderLibrary/util/ColorConversion.glsl.js";import"../webgl-engine/core/shaderLibrary/util/RgbaFloatEncoding.glsl.js";import"../webgl-engine/core/shaderModules/
|
|
5
|
+
import"../../../chunks/mat4.js";import"../../../chunks/mat4f64.js";import"../webgl-engine/core/shaderLibrary/shading/EvaluateAmbientLighting.glsl.js";import"../webgl-engine/core/shaderLibrary/shading/Gamma.glsl.js";import"../webgl-engine/core/shaderLibrary/shading/PhysicallyBasedRenderingParameters.glsl.js";import"../webgl-engine/core/shaderLibrary/shading/PiUtils.glsl.js";import"../webgl-engine/core/shaderLibrary/util/CloudsParallaxShading.glsl.js";import"../webgl-engine/core/shaderLibrary/util/ColorConversion.glsl.js";import"../webgl-engine/core/shaderLibrary/util/RgbaFloatEncoding.glsl.js";import"../webgl-engine/core/shaderModules/BooleanPassUniform.js";import"../webgl-engine/core/shaderModules/Float3PassUniform.js";import"../webgl-engine/core/shaderModules/interfaces.js";import"../webgl-engine/core/shaderModules/Matrix4PassUniform.js";import"../webgl-engine/core/shaderModules/ShaderBuilder.js";import"../webgl-engine/lib/VertexAttribute.js";export{C as CloudsCompositionPassParameters,b as build}from"../../../chunks/CloudsComposition.glsl.js";
|
|
@@ -2,4 +2,4 @@
|
|
|
2
2
|
All material copyright ESRI, All Rights Reserved, unless otherwise specified.
|
|
3
3
|
See https://js.arcgis.com/4.24/esri/copyright.txt for details.
|
|
4
4
|
*/
|
|
5
|
-
import{_ as t}from"../../../chunks/tslib.es6.js";import a from"../../../core/Accessor.js";import{clamp as
|
|
5
|
+
import{_ as t}from"../../../chunks/tslib.es6.js";import a from"../../../core/Accessor.js";import{clamp as e}from"../../../core/mathUtils.js";import{releaseMaybe as s,disposeMaybe as r,isNone as o}from"../../../core/maybe.js";import{property as n}from"../../../core/accessorSupport/decorators/property.js";import"../../../core/arrayUtils.js";import"../../../core/has.js";import"../../../core/accessorSupport/ensureType.js";import{subclass as i}from"../../../core/accessorSupport/decorators/subclass.js";import{e as c}from"../../../chunks/mat4.js";import{c as d}from"../../../chunks/mat4f64.js";import{c as f,z as m,l as u,n as h,g as l,b as I}from"../../../chunks/vec3.js";import{f as p,c as g}from"../../../chunks/vec3f64.js";import{create as F,fromPoints as _,axis as H}from"../../../geometry/support/axisAngle.js";import{C}from"../../../chunks/CloudsComposition.glsl.js";import{FadeInOutStages as O,FadeInStages as P,FadeHeightStages as E}from"./CloudsCompositionParameters.js";import{CloudsCompositionTechnique as N}from"./CloudsCompositionTechnique.js";import{weatherHeightLimit as D}from"./weather.js";import{createQuadVAO as b}from"../webgl-engine/lib/glUtil3D.js";import{PrimitiveType as T}from"../../webgl/enums.js";let S=class extends a{constructor(t){super(t),this._technique=new N(t),this._vao=b(t.rctx),this._passParameters=new C(t.radius)}destroy(){this._technique=s(this._technique),this._vao=r(this._vao)}render(t,a){const e=t.bindParameters.cloudsComposition;if(o(this._vao)||o(e.clouds))return;if(!this._technique.compiled)return void this.requestRender();this._setParallaxParameters(e,t.bindParameters.camera.eye,a);const s=t.rctx.bindTechnique(this._technique,this._passParameters,t.bindParameters);t.rctx.bindVAO(this._vao),s.assertCompatibleVertexAttributeLocations(this._vao),t.rctx.drawArrays(T.TRIANGLE_STRIP,0,4),U(e)&&this.requestRender()}_setFadeInStage(t,a){const e=performance.now(),s=t.parallax.anchorPointClouds;t.fadeIn.stage===P.FINISHED&&(t.fadeIn.factor=1,f(s,x),t.fadeIn.stage=P.CHANGE_ANCHOR,t.crossFade.enabled=!1,t.fadeInOut.stage=O.FINISHED);const r=k(t,a);t.fadeIn.stage===P.CHANGE_ANCHOR&&r&&(f(s,x),t.fadeIn.stage=P.FADE_IN,t.startTime=e),t.fadeIn.factor>0&&t.fadeIn.stage===P.FADE_IN&&(t.fadeIn.factor=1-(e-t.startTime)/y),t.fadeIn.factor<=0&&t.fadeIn.stage===P.FADE_IN&&(t.fadeIn.stage=P.FINISHED,t.fadeIn.factor=0)}_setCrossFadingStage(t){const a=performance.now(),{crossFade:e}=t,s=t.parallax.anchorPointClouds;t.crossFade.enabled||(f(s,x),t.startTime=a,e.factor=0,t.crossFade.enabled=!0),e.factor<1&&t.crossFade.enabled&&(e.factor=(a-t.startTime)/q),e.factor>=1&&t.crossFade.enabled&&(t.crossFade.enabled=!1,e.factor=1,f(s,t.parallaxNew.anchorPointClouds))}_setFadeInOutStage(t,a){const e=performance.now(),{fadeInOut:s,crossFade:r}=t;s.stage===O.FINISHED&&(t.startTime=e,s.factor=0,s.stage=O.FADE_OUT),s.factor<1&&s.stage===O.FADE_OUT&&(s.factor=(e-t.startTime)/w),s.factor>=1&&s.stage===O.FADE_OUT&&(s.factor=1,f(t.parallax.anchorPointClouds,x)),s.factor>=1&&s.stage===O.FADE_OUT&&k(t,a)&&(t.startTime=e,s.factor=1,s.stage=O.FADE_IN,t.crossFade.enabled=!1,r.factor=0),s.factor>0&&s.stage===O.FADE_IN&&(s.factor=1-(e-t.startTime)/y),s.factor<=0&&s.stage===O.FADE_IN&&(s.stage=O.FINISHED,s.factor=0)}_setFadeInOutHeight(t,a){const s=performance.now(),r=t.fadeInOutHeight,o=(s-(r.stage===E.FINISHED?s:t.startTimeHeightFade))/R;r.factor+=a?o:-o,t.startTimeHeightFade=s,r.factor=e(r.factor,0,1),r.stage=E.HEIGHT_FADE}_setParallaxParameters(t,a,e){const{parallax:s}=t;t.fadeInOutHeight.factor<0&&(t.fadeInOutHeight.factor=u(a)-this._passParameters.radius>D?1:0),h(x,a),l(x,x,this._passParameters.radius),0===s.anchorPointClouds[0]&&0===s.anchorPointClouds[1]&&0===s.anchorPointClouds[2]&&f(s.anchorPointClouds,x);const r=u(I(v,s.anchorPointClouds,x));let o=!0;r>t.fadeIn.distanceThresholdFactor*s.cloudsHeight||t.fadeIn.stage!==P.FINISHED?this._setFadeInStage(t,a):r>t.fadeInOut.distanceThresholdFactor*s.cloudsHeight||t.fadeInOut.stage!==O.FINISHED?this._setFadeInOutStage(t,a):r>t.crossFade.distanceThresholdFactor*s.cloudsHeight&&!e||t.crossFade.enabled?this._setCrossFadingStage(t):o=!1;const n=u(a),i=n-this._passParameters.radius;if((i>1.7*D||i<-D)&&t.fadeInOutHeight.factor<1?t.fadeInOutHeight.factor=1:(i>D||i<-.35*D)&&t.fadeInOutHeight.factor<1?this._setFadeInOutHeight(t,!0):i<D&&i>-.35*D&&t.fadeInOutHeight.factor>0?this._setFadeInOutHeight(t,!1):t.fadeInOutHeight.stage=E.FINISHED,s.radiusCurvatureCorrectionFactor=.84*Math.sqrt(Math.max(n*n-this._passParameters.radius*this._passParameters.radius,0))/n,_(A,s.anchorPointClouds,j),s.transform=d(),c(s.transform,s.transform,j[3],H(j)),o){const{parallaxNew:a}=t;_(A,a.anchorPointClouds,j),a.transform=d(),c(a.transform,a.transform,j[3],H(j))}f(t.cameraPositionLastFrame,a)}};t([n({constructOnly:!0})],S.prototype,"rctx",void 0),t([n({constructOnly:!0})],S.prototype,"viewingMode",void 0),t([n({constructOnly:!0})],S.prototype,"radius",void 0),t([n({constructOnly:!0})],S.prototype,"requestRender",void 0),S=t([i("esri.views.3d.environment.CloudsComposition")],S);const A=p(0,0,1),j=F(),x=g(),v=g(),y=500,w=250,q=500,R=500;function U(t){return t.crossFade.enabled||t.fadeInOut.stage!==O.FINISHED||t.fadeIn.stage!==P.FINISHED||t.fadeInOutHeight.stage!==E.FINISHED}function k(t,a){return m(t.cameraPositionLastFrame,a)}export{S as CloudsComposition};
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
/*
|
|
2
|
+
All material copyright ESRI, All Rights Reserved, unless otherwise specified.
|
|
3
|
+
See https://js.arcgis.com/4.24/esri/copyright.txt for details.
|
|
4
|
+
*/
|
|
5
|
+
import{c as t}from"../../../chunks/mat4f64.js";import{c as a}from"../../../chunks/vec3f64.js";class r{constructor(){this.startTime=0,this.startTimeHeightFade=0,this.cameraPositionLastFrame=a(),this.parallax={anchorPointClouds:a(),cloudsHeight:1e5,radiusCurvatureCorrectionFactor:0,transform:t()},this.parallaxNew={anchorPointClouds:a(),cloudsHeight:1e5,radiusCurvatureCorrectionFactor:0,transform:t()},this.crossFade={enabled:!1,factor:0,distanceThresholdFactor:.3},this.fadeInOut={stage:o.FINISHED,factor:0,distanceThresholdFactor:.6},this.fadeIn={stage:s.FINISHED,factor:0,distanceThresholdFactor:2},this.fadeInOutHeight={stage:e.FINISHED,factor:-1}}}var s,o,e;!function(t){t[t.FINISHED=0]="FINISHED",t[t.CHANGE_ANCHOR=1]="CHANGE_ANCHOR",t[t.FADE_IN=2]="FADE_IN"}(s||(s={})),function(t){t[t.FINISHED=0]="FINISHED",t[t.FADE_OUT=1]="FADE_OUT",t[t.FADE_IN=2]="FADE_IN"}(o||(o={})),function(t){t[t.FINISHED=0]="FINISHED",t[t.HEIGHT_FADE=1]="HEIGHT_FADE"}(e||(e={}));export{r as CloudsCompositionParameters,e as FadeHeightStages,o as FadeInOutStages,s as FadeInStages};
|
|
@@ -2,4 +2,4 @@
|
|
|
2
2
|
All material copyright ESRI, All Rights Reserved, unless otherwise specified.
|
|
3
3
|
See https://js.arcgis.com/4.24/esri/copyright.txt for details.
|
|
4
4
|
*/
|
|
5
|
-
import{_ as e}from"../../../chunks/tslib.es6.js";import t from"../../../core/Accessor.js";import"../../../core/has.js";import s from"../../../core/Handles.js";import{lerp as i}from"../../../core/mathUtils.js";import{destroyMaybe as r,isSome as
|
|
5
|
+
import{_ as e}from"../../../chunks/tslib.es6.js";import t from"../../../core/Accessor.js";import"../../../core/has.js";import s from"../../../core/Handles.js";import{lerp as i}from"../../../core/mathUtils.js";import{destroyMaybe as r,isSome as o,isNone as n}from"../../../core/maybe.js";import{when as h,syncAndInitial as a,watch as p,initial as d}from"../../../core/reactiveUtils.js";import{property as l}from"../../../core/accessorSupport/decorators/property.js";import"../../../core/arrayUtils.js";import"../../../core/accessorSupport/ensureType.js";import{subclass as _}from"../../../core/accessorSupport/decorators/subclass.js";import{l as m}from"../../../chunks/vec3.js";import{getReferenceEllipsoid as c}from"../../../geometry/projectionEllipsoid.js";import{isMoon as u,isEarth as g}from"../../../geometry/support/spatialReferenceUtils.js";import{ChapmanAtmosphere as w}from"./ChapmanAtmosphere.js";import{CloudsComposition as y}from"./CloudsComposition.js";import{isReadyCloudsData as v}from"./CloudsData.js";import{CloudsGenerator as f}from"./CloudsGenerator.js";import{cloudPresets as A}from"./CloudsPresets.js";import{Fog as R}from"./Fog.js";import{PanoramicAtmosphere as b}from"./PanoramicAtmosphere.js";import{Precipitation as E}from"./Precipitation.js";import x from"./SimpleAtmosphere.js";import{Stars as C}from"./Stars.js";import{weatherHeightLimit as N}from"./weather.js";import{RenderPass as j}from"../webgl-engine/lib/RenderPass.js";import{RenderSlot as T}from"../webgl-engine/lib/RenderSlot.js";var P;const O=[T.POSTPROCESSING_ENVIRONMENT_OPAQUE,T.POSTPROCESSING_ENVIRONMENT_TRANSPARENT];let S,M=P=class extends t{constructor(e){super(e),this._handles=new s,this._context=null,this._pendingAtmosphere=null,this._atmosphere=null}initialize(){this.view._stage.addRenderPlugin(O,this)}destroy(){this._pendingAtmosphere=r(this._pendingAtmosphere),null!=this.view?._stage&&this.view._stage.removeRenderPlugin(this),this._handles=r(this._handles),this._set("view",null)}get atmosphereType(){return o(this._pendingAtmosphere)?this._pendingAtmosphere.type:o(this._atmosphere)?this._atmosphere.type:"none"}get canRender(){return!!this.view.basemapTerrain?.renderer.canRender||"global"!==this.view.viewingMode}get needsLinearDepth(){return"realistic"===this._selectAtmosphereType()}updateAnimation(e){return!!o(this._precipitation)&&this._precipitation.update(e)}get updating(){return o(this._pendingAtmosphere)||o(this._stars)&&this._stars.updating||o(this._clouds)&&this._clouds.running}get weatherVisible(){return m(this.view.state.camera.eye)-c(this.view.spatialReference).radius<=N}get _stars(){const e=this.view,t=e.environment?.starsEnabled??!1,s=this._get("_stars");return!t||n(this._context)?(r(s),null):o(s)?s:new C({view:e,requestRender:()=>this._setNeedsRender()})}get _precipitation(){const e=this._get("_precipitation");if(!this._precipitationEnabled||n(this._context))return r(e),null;const t=this.view,s=this._context;return o(e)&&e.context===s?e:(r(e),new E({context:s,view:t}))}get _clouds(){const e=this._get("_clouds");if(!this.weatherEnabled||n(this._context))return r(e),null;if(o(e))return e;const t=this.view,s=this._context.renderContext.rctx;return r(e),new f({rctx:s,view:t,requestRender:()=>this._setNeedsRender()})}get _cloudsComposition(){const e=this._get("_cloudsComposition");if(!this.weatherEnabled||n(this._context))return r(e),null;const t=this.view.state.viewingMode,s=this._context.renderContext.rctx,i=c(this.view.spatialReference).radius;return o(e)&&e.viewingMode===t&&e.radius===i?e:(r(e),new y({rctx:s,viewingMode:t,radius:i,requestRender:()=>this._setNeedsRender()}))}get _fog(){const e=this._get("_fog");if(!this.weatherEnabled||n(this._context))return r(e),null;if(o(e))return e;const t=this.view,s=this._context;return r(e),new R({context:s,view:t})}get weatherEnabled(){return!!this.view?.environmentManager?.weatherEnabled}get _precipitationEnabled(){return this.weatherEnabled&&("rainy"===this.view.environment.weather.type||"snowy"===this.view.environment.weather.type)}initializeRenderContext(e=null){this._context=e,this._handles.add([h((()=>this.view?.basemapTerrain),(()=>this._updateBasemapTerrain()),a),p((()=>({viewingMode:this.view.viewingMode,atmosphereEnabled:this.view.environment.atmosphereEnabled,atmosphereQuality:this.view.environment.atmosphere.quality})),(()=>this._updateAtmosphere()),a),p((()=>this._stars),(()=>this._setNeedsRender())),p((()=>this._clouds),(()=>this._updateWeather(this._weatherUpdateParameters)),d),p((()=>this._precipitation),(()=>this._setNeedsRender())),p((()=>this._fog),(()=>this._updateFog(this._weatherUpdateParameters)),d),p((()=>this._weatherUpdateParameters),(e=>{this._updateWeather(e),this._updateFog(e)}),a)])}uninitializeRenderContext(){this._context=null,this._atmosphere=r(this._atmosphere),this._set("_stars",r(this._stars)),this._set("_precipitation",r(this._precipitation)),this._set("_clouds",r(this._clouds)),this._set("_cloudsComposition",r(this._cloudsComposition)),this._set("_fog",r(this._fog))}render(e){if(e.pass===j.MATERIAL)switch(e.bindParameters.slot){case T.POSTPROCESSING_ENVIRONMENT_OPAQUE:o(this._stars)&&this._stars.render(e),e.bindParameters.cloudsComposition.clouds=null,o(this._atmosphere)&&this._atmosphere.canRender&&(this._atmosphere.render(e),v(this._clouds)&&o(this._cloudsComposition)&&(e.bindParameters.cloudsComposition.clouds=this._clouds,this._cloudsComposition.render(e,o(this.view.animation))));break;case T.POSTPROCESSING_ENVIRONMENT_TRANSPARENT:if(o(this._atmosphere)&&this._atmosphere.canRender){const t=this.weatherEnabled?this.view.environment.weather.type:"disabled";if(this._atmosphere.renderHaze(e,"rainy"===t),o(this._fog)){const s="foggy"===t||"rainy"===t||"snowy"===t;(s||"realistic"!==this._selectAtmosphereType())&&this._fog.render(e,s,"rainy"===t)}if(o(this._precipitation)){const t=this.view.environment.weather;"rainy"!==t.type&&"snowy"!==t.type||this._precipitation.render(e,t.precipitation,t.type)}}}}get _weatherUpdateParameters(){const e=this.weatherEnabled?this.view.environment.weather:null;return n(e)?null:"rainy"===e.type||"snowy"===e.type?{type:e.type,weatherAdjustment:e.cloudCover,effect:e.precipitation}:{type:e.type,weatherAdjustment:"foggy"===e.type?e.fogStrength:e.cloudCover}}_updateWeather(e){n(e)||n(this._clouds)||(this._clouds.applyPreset(A[e.type],e.weatherAdjustment),this._setNeedsRender())}_setNeedsRender(){o(this._context)&&this._context.requestRender()}_updateFog(e){if(!n(this._fog)&&!n(e))switch(e.type){case"foggy":this._fog.strength=i(3e-5,.005,e.weatherAdjustment**3),this._setNeedsRender();break;case"rainy":case"snowy":this._fog.strength=i(4e-6,8e-5,e.effect**3),this._setNeedsRender();break;default:this._fog.strength=4e-6,this._setNeedsRender()}}_updateAtmosphere(){const e=this._selectAtmosphereType();if(this.atmosphereType===e)return;o(this._pendingAtmosphere)&&(this._pendingAtmosphere!==this._atmosphere&&this._pendingAtmosphere.destroy(),this._pendingAtmosphere=null);const t=this._getAtmosphereClass();if(!t)return o(this._atmosphere)&&(this._atmosphere.destroy(),this._atmosphere=null,this._setNeedsRender()),void this._updateBasemapTerrain();const s=new t(this.view);o(this._context)&&s.initializeRenderContext(this._context),n(this._atmosphere)&&(this._atmosphere=s,this._setNeedsRender()),this._pendingAtmosphere=s,s.when().then((()=>{o(this._atmosphere)&&this._pendingAtmosphere&&this._pendingAtmosphere!==this._atmosphere&&(this._atmosphere.destroy(),this._atmosphere=this._pendingAtmosphere),this._pendingAtmosphere=null,this._setNeedsRender(),this._updateBasemapTerrain()})).catch((()=>{this._pendingAtmosphere===s&&(this._pendingAtmosphere=null)}))}_getAtmosphereClass(){switch(this._selectAtmosphereType()){case"none":return null;case"realistic":return w;case"panoramic":return b;case"simple":return x;default:return}}_selectAtmosphereType(){const e=this.view.get("environment.atmosphereEnabled"),t=this.view.get("environment.atmosphere.quality"),s=this.view.viewingMode;return!e||null==t||u(this.view.spatialReference)?"none":"local"===s?"panoramic":"high"===t&&o(this._context)&&w.isSupported(this._context)&&g(this.view.spatialReference)?"realistic":"simple"}_updateBasemapTerrain(){this.view.basemapTerrain&&(this.view.basemapTerrain.velvetOverground=o(this._atmosphere)&&"simple"===this.atmosphereType)}get test(){return{atmosphere:this._atmosphere,clouds:this._clouds,selectAtmosphereType:()=>this._selectAtmosphereType(),stubGetAtmosphereClass:e=>{S=P.prototype._getAtmosphereClass,P.prototype._getAtmosphereClass=e},restoreGetAtmosphereClass:()=>{P.prototype._getAtmosphereClass=S}}}};e([l({constructOnly:!0})],M.prototype,"view",void 0),e([l({type:Boolean,readOnly:!0})],M.prototype,"updating",null),e([l()],M.prototype,"weatherVisible",null),e([l()],M.prototype,"_context",void 0),e([l()],M.prototype,"_pendingAtmosphere",void 0),e([l({readOnly:!0})],M.prototype,"_stars",null),e([l({readOnly:!0})],M.prototype,"_precipitation",null),e([l({readOnly:!0})],M.prototype,"_clouds",null),e([l({readOnly:!0})],M.prototype,"_cloudsComposition",null),e([l({readOnly:!0})],M.prototype,"_fog",null),e([l({readOnly:!0})],M.prototype,"weatherEnabled",null),e([l({readOnly:!0})],M.prototype,"_precipitationEnabled",null),e([l({readOnly:!0})],M.prototype,"_weatherUpdateParameters",null),M=P=e([_("esri.views.3d.environment.EnvironmentRenderer")],M);export{M as EnvironmentRenderer};
|