@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 e}from"../../../../../chunks/tslib.es6.js";import t from"../../../../../core/Evented.js";import r from"../../../../../core/Handles.js";import{destroyMaybe as o,isSome as i,isNone as a}from"../../../../../core/maybe.js";import{watch as n,sync as s,syncAndInitial as p}from"../../../../../core/reactiveUtils.js";import{property as h}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{SupportedGraphicResult as
|
|
5
|
+
import{_ as e}from"../../../../../chunks/tslib.es6.js";import t from"../../../../../core/Evented.js";import r from"../../../../../core/Handles.js";import{destroyMaybe as o,isSome as i,isNone as a}from"../../../../../core/maybe.js";import{watch as n,sync as s,syncAndInitial as p}from"../../../../../core/reactiveUtils.js";import{property as h}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{SupportedGraphicResult as c}from"../isSupportedGraphicUtils.js";import{geometryOfSupportedGraphic as d,isSupportedGraphic as m}from"./isSupportedGraphic.js";import{ReshapeOperation as u}from"./ReshapeOperation.js";import{InteractiveToolBase as y}from"../../../../interactive/InteractiveToolBase.js";let g=class extends(t.EventedMixin(y)){constructor(e){super(e),this._handles=new r,this._reshapeOperation=null,this._internalGeometryUpdate=!1,this.enableZShape=!0,this.enableZVertex=!0,this.enableMoveGraphic=!0,this.enableMidpoints=!0,this.enableEdgeOffset=!1,this.type="reshape-3d",this.snappingManager=null,this.automaticManipulatorSelection=!1}destroy(){this._handles=o(this._handles),this._reshapeOperation=o(this._reshapeOperation),this._set("view",null),this._set("graphic",null)}get updating(){return this._reshapeOperation?.updating??!1}_updateGeometry(){const e=d(this.graphic);this._reshapeOperation.inputGeometry=i(e)?e.clone():null}_updateGraphic(){if(this._handles.remove("onGraphicGeometryChange"),this._updateGeometry(),m(this.graphic)!==c.SUPPORTED)return;const e=n((()=>this.graphic?.geometry),(()=>{!1===this._internalGeometryUpdate&&this._updateGeometry()}),s);this._handles.add(e,"onGraphicGeometryChange")}manipulatorSelectionChanged(){this._reshapeOperation&&this._reshapeOperation.manipulatorSelectionChanged()}_updateGeometryInternally(e){this._internalGeometryUpdate=!0,this.graphic.geometry=e,this._internalGeometryUpdate=!1}_onReshapeGeometryChanged(){a(this.graphic)||this._updateGeometryInternally(this._reshapeOperation.outputGeometry.clone())}initialize(){this._reshapeOperation=new u({tool:this}),this._handles.add([this._reshapeOperation.on("reshape",(e=>{"reshape"===e.type&&this._onReshapeGeometryChanged(),this.emit("reshape",e)})),this._reshapeOperation.on("move",(e=>{"move"===e.type&&this._onReshapeGeometryChanged(),this.emit("move",e)})),this._reshapeOperation.on("vertex-add",(e=>{this._onReshapeGeometryChanged(),this.emit("vertex-add",e)})),this._reshapeOperation.on("vertex-remove",(e=>{this._onReshapeGeometryChanged(),this.emit("vertex-remove",e)})),this._reshapeOperation.on("immediate-click",(e=>this.emit("immediate-click",e))),this.view.on("pointer-down",["Shift"],(e=>{e.stopPropagation()})),n((()=>this.graphic),(()=>this._updateGraphic()),p)]),this.finishToolCreation()}get canUndo(){return this._reshapeOperation?.canUndo??!1}undo(){i(this.snappingManager)&&this.snappingManager.doneSnapping(),i(this._reshapeOperation.undo())&&this._updateGeometryInternally(this._reshapeOperation.outputGeometry.clone())}get canRedo(){return this._reshapeOperation?.canRedo??!1}redo(){i(this.snappingManager)&&this.snappingManager.doneSnapping(),i(this._reshapeOperation.redo())&&this._updateGeometryInternally(this._reshapeOperation.outputGeometry.clone())}onInputEvent(e){"key-down"!==e.type||"Delete"!==e.key&&"Backspace"!==e.key||this._reshapeOperation.removeSelectedVertices()}reset(){}get test(){return{snappingManager:this.snappingManager}}};e([h()],g.prototype,"_reshapeOperation",void 0),e([h({constructOnly:!0,nonNullable:!0})],g.prototype,"view",void 0),e([h({constructOnly:!0})],g.prototype,"graphic",void 0),e([h({constructOnly:!0,nonNullable:!0})],g.prototype,"enableZShape",void 0),e([h({constructOnly:!0,nonNullable:!0})],g.prototype,"enableZVertex",void 0),e([h({constructOnly:!0,nonNullable:!0})],g.prototype,"enableMoveGraphic",void 0),e([h({constructOnly:!0,nonNullable:!0})],g.prototype,"enableMidpoints",void 0),e([h({constructOnly:!0,nonNullable:!0})],g.prototype,"enableEdgeOffset",void 0),e([h({readOnly:!0})],g.prototype,"type",void 0),e([h({constructOnly:!0})],g.prototype,"snappingManager",void 0),e([h({readOnly:!0})],g.prototype,"updating",null),e([h()],g.prototype,"automaticManipulatorSelection",void 0),g=e([l("esri.views.3d.interactive.editingTools.graphicReshape3D.GraphicReshapeTool")],g);export{g as GraphicReshapeTool};
|
|
@@ -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"../../../../../core/has.js";import t from"../../../../../core/Evented.js";import{HandleOwner as i}from"../../../../../core/HandleOwner.js";import a from"../../../../../core/Handles.js";import{handlesGroup as n,destroyHandle as r}from"../../../../../core/handleUtils.js";import{destroyMaybe as o,isSome as s,isNone as l,unwrap as p,removeMaybe as h}from"../../../../../core/maybe.js";import{watch as d,initial as u}from"../../../../../core/reactiveUtils.js";import{property as c}from"../../../../../core/accessorSupport/decorators/property.js";import"../../../../../core/arrayUtils.js";import"../../../../../core/accessorSupport/ensureType.js";import{subclass as m}from"../../../../../core/accessorSupport/decorators/subclass.js";import{I as g}from"../../../../../chunks/mat4f64.js";import{l as _,b as f,h as v,s as M,a as y,g as x}from"../../../../../chunks/vec3.js";import{f as O,c as E}from"../../../../../chunks/vec3f64.js";import G from"../../../../../geometry/Polyline.js";import{makeDehydratedPoint as b}from"../../../../../layers/graphics/dehydratedFeatures.js";import{getGraphicEffectiveElevationInfo as S}from"../../../../../support/elevationInfoUtils.js";import{isVolumetricSymbol as I}from"../../../../../symbols/support/utils.js";import{Manipulator3D as V}from"../../Manipulator3D.js";import{createManipulatorMaterial as H,createManipulatorOutlineMaterial as A,placeAtGraphic as w}from"../../manipulatorUtils.js";import{SnappingVisualizer3D as P}from"../../SnappingVisualizer3D.js";import{screenToRenderPlaneFromEvent as D,convertToMapCoordinates as L,screenToMapXYAtLocation as N,screenToMapXYForGraphicAtLocation as U}from"../dragEventPipeline3D.js";import{ManipulatorType as k}from"../ManipulatorType.js";import{canMoveZ as j}from"../manipulatorUtils.js";import{settings as T,colors as R}from"../settings.js";import{createVisualElements as F}from"../visualElementUtils.js";import{DISC_RADIUS_SMALL as C}from"../manipulations/config.js";import{MoveManipulation as z}from"../manipulations/MoveManipulation.js";import{shapeOrientation as Z}from"../manipulations/moveUtils.js";import{MoveXYGraphicManipulation as X}from"../manipulations/MoveXYGraphicManipulation.js";import{createEdgeOffsetIntersectionPlane as Y,createEdgeOffsetOperation as q,edgeOffsetRotationMatrix as W,screenEdgeLengthSquared as K}from"./edgeOffsetUtils.js";import{OutlineVisualElement as B}from"../../visualElements/OutlineVisualElement.js";import{GraphicState as J}from"../../../layers/graphics/GraphicState.js";import Q from"../../../webgl-engine/lib/GeometryUtil.js";import{MouseButton as $}from"../../../../input/IViewEvents.js";import{addMapDelta as ee,createManipulatorDragEventPipeline as te,dragAtLocation as ie,addScreenDelta as ae}from"../../../../interactive/dragEventPipeline.js";import{ManipulatorStateFlags as ne,ManipulatorStateCustomFlags as re}from"../../../../interactive/interfaces.js";import{EditGeometryOperations as oe}from"../../../../interactive/editGeometry/EditGeometryOperations.js";import{AccumulationBehaviour as se}from"../../../../interactive/editGeometry/interfaces.js";import{SnappingContext as le}from"../../../../interactive/snapping/SnappingContext.js";import{SnappingPipeline as pe}from"../../../../interactive/snapping/SnappingDragPipelineStep.js";let he=class extends(t.EventedMixin(i)){constructor(e){super(e),this._vertexManipulatorMaterial=H(T.colorToVec4(T.reshapeManipulators.vertex.color),T.reshapeManipulators.vertex.renderOccluded),this._vertexManipulatorOutlineMaterial=A(T.colorToVec4(T.reshapeManipulators.vertex.outlineColor),T.reshapeManipulators.vertex.renderOccluded),this._vertexManipulatorHoverOutlineMaterial=A(T.colorToVec4(T.reshapeManipulators.vertex.hoverOutlineColor),T.reshapeManipulators.vertex.renderOccluded),this._edgeManipulatorMaterial=H(T.colorToVec4(T.reshapeManipulators.edge.color),T.reshapeManipulators.edge.renderOccluded),this._edgeManipulatorOutlineMaterial=A(T.colorToVec4(T.reshapeManipulators.edge.outlineColor),T.reshapeManipulators.edge.renderOccluded),this._edgeOffsetManipulatorMaterial=H(T.colorToVec4(T.reshapeManipulators.edgeOffset.color),T.reshapeManipulators.edgeOffset.renderOccluded,!1),this._edgeOffsetManipulatorHoverMaterial=H(T.colorToVec4(T.reshapeManipulators.edgeOffset.hoverColor),T.reshapeManipulators.edgeOffset.renderOccluded,!1),this._selectedManipulatorMaterial=H(T.colorToVec4(T.reshapeManipulators.selected.color),T.reshapeManipulators.selected.renderOccluded),this._selectedManipulatorOutlineMaterial=A(T.colorToVec4(T.reshapeManipulators.selected.outlineColor),T.reshapeManipulators.selected.renderOccluded),this._selectedManipulatorHoverOutlineMaterial=A(T.colorToVec4(T.reshapeManipulators.selected.hoverOutlineColor),T.reshapeManipulators.selected.renderOccluded),this._selectedIndex=0,this._vertexManipulatorGeometry=null,this._vertexManipulatorOutlineGeometry=null,this._edgeManipulatorGeometry=null,this._edgeManipulatorOutlineGeometry=null,this._edgeOffsetManipulatorGeometryInside=null,this._edgeOffsetManipulatorGeometryOutside=null,this._manipulatorHandles=new a,this._manipulatorInfos=[],this._editGeometryOperations=null,this._graphicMoveManipulation=null,this._moveManipulation=null,this._numGrabbing=0,this._numDragging=0,this._reshapeEventState=fe.NONE,this._outlineVisualElement=null,this.tool=null,this.outputGeometry=null,this._snappingPipeline=new pe,this._snappingPipelineHandle=new pe,this._vertexLaserLineVisualElement=null}initialize(){const e=new J({graphic:this.graphic});this._graphicState=e,this.handles.add([d((()=>e.displaying),(e=>{for(const t of this._manipulatorInfos)t.manipulator.available=e})),this.view.trackGraphicState(e)])}destroy(){this._editGeometryOperations=o(this._editGeometryOperations),this._moveManipulation=o(this._moveManipulation),this._graphicMoveManipulation=o(this._graphicMoveManipulation),this._manipulatorHandles=o(this._manipulatorHandles),this.manipulators.removeAll(),this._manipulatorInfos=[],this._resetGrabbingDragging()}get inputGeometry(){return s(this._editGeometryOperations)?this._editGeometryOperations.data.geometry:null}set inputGeometry(e){this._recreateEditGeometryAndManipulators(e)}get updating(){return this.updatingHandles.updating}get manipulators(){return this.tool.manipulators}get view(){return this.tool.view}get graphic(){return this.tool.graphic}get enableZShape(){return this.tool.enableZShape}get enableZVertex(){return this.tool.enableZVertex}get enableMoveGraphic(){return this.tool.enableMoveGraphic}get enableMidpoints(){return this.tool.enableMidpoints}get enableEdgeOffset(){return this.tool.enableEdgeOffset}removeSelectedVertices(){const e=this._manipulatorInfos.filter((e=>e.manipulator.selected&&"vertex"===e.handle.type));this._removeVertices(e)}manipulatorSelectionChanged(){this.emit("manipulators-changed")}_removeManipulators(){this._moveManipulation=o(this._moveManipulation),this._graphicMoveManipulation=o(this._graphicMoveManipulation),this._manipulatorHandles.removeAll(),this.manipulators.removeAll(),this._manipulatorInfos=[]}_resetGrabbingDragging(){this._numGrabbing=0,this._numDragging=0}_createManipulators(){if(l(this._editGeometryOperations))return;const e=S(this.graphic);for(const t of this._editGeometryOperations.data.components){for(const i of t.vertices)this._createVertexOrEdgeManipulator(i,e);for(const i of t.edges)this._createVertexOrEdgeManipulator(i,e)}this._createGraphicMoveManipulators(e)}get canRedo(){return s(this._editGeometryOperations)&&this._editGeometryOperations.canRedo}get canUndo(){return s(this._editGeometryOperations)&&this._editGeometryOperations.canUndo}redo(){if(l(this._editGeometryOperations))return null;const e=this._editGeometryOperations.redo();return s(e)&&(this.outputGeometry=this._editGeometryOperations.data.geometry,this._recreateManipulators()),e}undo(){if(l(this._editGeometryOperations))return null;this.emit("undo");const e=this._editGeometryOperations.undo();return s(e)&&(this.outputGeometry=this._editGeometryOperations.data.geometry,this._recreateManipulators()),e}_recreateManipulators(){this._removeManipulators(),this._resetGrabbingDragging(),this._createManipulators()}_recreateEditGeometryAndManipulators(e=this.inputGeometry){this._removeManipulators(),this._resetGrabbingDragging(),l(e)||(o(this._editGeometryOperations),this._editGeometryOperations=oe.fromGeometry(e,this.view.state.viewingMode),this._createManipulators())}_perGraphicManipulatorDragAction(e,t){if("end"===t.action)return;let i=0;const a=[],n=this._manipulatorInfos.some((e=>"vertex"===e.handle.type&&e.manipulator.selected)),r=e===ve.SELECTED_OR_ALL&&n;for(const o of this._manipulatorInfos)ue(o)&&(o.manipulator.grabbing||r&&!o.manipulator.selected||a.push(o),i++);if(0===a.length)return;this._moveVertices(a,t);if(a.length===i){if(this._updateEventState(fe.MOVING),this.destroyed)return;this.emit("move",{type:"move",dx:t.screenDeltaX,dy:t.screenDeltaY,mover:this.graphic})}else{if(this._updateEventState(fe.RESHAPING),this.destroyed)return;this.emit("reshape",{type:"reshape",mover:this.graphic})}}_isMultiVertexSelection(){let e=0;for(const t of this._manipulatorInfos)ue(t)&&t.manipulator.selected&&e++;return e>1}_perVertexManipulatorDragAction(e){if(this._updateEventState(fe.RESHAPING),this.destroyed)return;const{mapDeltaX:t,mapDeltaY:i,mapDeltaZ:a}=e;if(!t&&!i&&!a)return;const n=[];for(const r of this._manipulatorInfos)ue(r)&&(r.manipulator.selected&&!r.manipulator.grabbing||r===e.info)&&n.push(r);this._moveVertices(n,e,se.ACCUMULATE_STEPS),this.emit("reshape",{type:"reshape",mover:this.graphic})}_updateEventState(e){if(e===this._reshapeEventState)return!1;switch(e){case fe.NONE:if(0!==this._numGrabbing||0!==this._numDragging)return!1;switch(this._reshapeEventState){case fe.MOVING:this.emit("move",{type:"move-stop",dx:0,dy:0,mover:this.graphic});break;case fe.RESHAPING:this.emit("reshape",{type:"reshape-stop",mover:this.graphic})}break;case fe.MOVING:switch(this._reshapeEventState){case fe.NONE:this.emit("move",{type:"move-start",dx:0,dy:0,mover:this.graphic});break;case fe.RESHAPING:this.emit("reshape",{type:"reshape-stop",mover:this.graphic}),this.destroyed||this.emit("move",{type:"move-start",dx:0,dy:0,mover:this.graphic})}break;case fe.RESHAPING:switch(this._reshapeEventState){case fe.NONE:this.emit("reshape",{type:"reshape-start",mover:this.graphic});break;case fe.MOVING:this.emit("move",{type:"move-stop",dx:0,dy:0,mover:this.graphic}),this.destroyed||this.emit("reshape",{type:"reshape-start",mover:this.graphic})}}if(this.destroyed)return!1;const t=this._reshapeEventState!==e;return this._reshapeEventState=e,t}_createGraphicMoveManipulators(e){if(this._graphicMoveManipulation=new X({tool:this.tool,view:this.view,graphicState:this._graphicState}),this.enableMoveGraphic){let e=null;this._manipulatorHandles.add(this._graphicMoveManipulation.createDragPipeline(((t,i,a)=>{i.next((e=>this._trackNumDragging(e))).next((t=>("start"===t.action&&(e=p(this._editGeometryOperations).createUndoGroup()),t))).next((t=>{this._perGraphicManipulatorDragAction(ve.ALL,t),"end"===t.action&&(e=h(e))})),a.next(this._cancelDragOperation((()=>e=h(e))))})))}else this._graphicMoveManipulation.forEachManipulator((e=>{e.grabbable=!1,e.cursor=null}));this._graphicMoveManipulation.forEachManipulator((e=>this._manipulatorHandles.add([this._watchAndUpdateGrabState(e,!1),e.events.on("immediate-click",(e=>{this._manipulatorInfos.some((e=>e.manipulator.selected))?this._clearSelection():this.emit("immediate-click",{...e,graphic:this.graphic}),e.stopPropagation()}))]))),this._moveManipulation=new z({tool:this.tool,view:this.view,xyAvailable:!0,xyAxisAvailable:!0,zAvailable:this.enableZShape&&j(this.graphic),snapToScene:!1,radius:z.radiusForSymbol(this.graphic.symbol)}),this._moveManipulation.forEachManipulator((e=>{this.handles.add([this._watchAndUpdateGrabState(e,!1),e.events.on("immediate-click",(t=>{this._moveManipulation.zManipulation.hasManipulator(e)||this._manipulatorInfos.some((e=>e.manipulator.selected))||this.emit("immediate-click",{...t,graphic:this.graphic}),t.stopPropagation()}))])})),this._moveManipulation.elevationInfo={mode:"absolute-height",offset:0};const t=p(this.graphic.geometry).spatialReference,i=this.handles;i.add([this._moveManipulation.createDragPipeline(((t,i,a,n,r)=>{const o=a.next((e=>this._trackNumDragging(e))).next((e=>{const t=this._manipulatorInfos.filter((e=>ue(e)&&e.manipulator.selected));return e.manipulatorType===k.TRANSLATE_XY&&1===t.length?{...e,info:t[0],snapOrigin:t[0].handle.pos}:{...e,info:null}})).next(this._snappingPipelineHandle.createSnapDragEventPipelineStep({predicate:e=>!!e.info,cancel:n,snappingManager:this.tool.snappingManager,snappingContext:new le({editGeometryOperations:p(this._editGeometryOperations),elevationInfo:e,pointer:r,excludeFeature:this.graphic,visualizer:new P}),updatingHandles:this.updatingHandles}),this._snappingPipelineHandle.next).next(ee()).next((e=>(this._perGraphicManipulatorDragAction(ve.SELECTED_OR_ALL,e),e)));return n.next(this._cancelDragOperation()),o}),e,t,this.graphic),d((()=>{var e;return null==(e=this._graphicState)?void 0:e.displaying}),(()=>{this._updateMoveManipulationPosition()}),u),this._graphicState.on("changed",(()=>this._updateMoveManipulationPosition())),d((()=>{var e;return null==(e=this._graphicState)?void 0:e.isDraped}),(e=>{const t="align-move-manipulation";e?i.add(this.view.elevationProvider.on("elevation-change",(()=>this._updateMoveManipulationPosition())),t):i.remove(t)}),u)]),this._updateMoveManipulationPosition();const a=F({view:this.view,graphic:this.graphic,forEachManipulator:e=>{if(!this.destroyed){s(this._graphicMoveManipulation)&&this._graphicMoveManipulation.forEachManipulator(e);for(const t of this._manipulatorInfos)e(t.manipulator,k.TRANSLATE_XY);this._moveManipulation.forEachManipulator(e)}},onManipulatorsChanged:e=>this.on("manipulators-changed",e)});s(a)&&(this._outlineVisualElement=a.visualElement instanceof B?a.visualElement:null),s(this._outlineVisualElement)&&this._manipulatorHandles.add([this._outlineVisualElement.events.on("attachment-origin-changed",(()=>{this._graphicState.isDraped||this._updateMoveManipulationPosition()})),d((()=>this._graphicState.isDraped),(()=>this._updateMoveManipulationPosition()))]),this._manipulatorHandles.add(a)}_createEdgeOffsetManipulator(e,t=S(this.graphic)){const i=T.reshapeManipulators.edgeOffset,a=i.size/2,r=a+i.collisionPadding;if(l(this._edgeOffsetManipulatorGeometryInside)||l(this._edgeOffsetManipulatorGeometryOutside)){const e=a/r,t=e*Math.sqrt(3)/2;this._edgeOffsetManipulatorGeometryInside=Q.createExtrudedTriangle(t,e/2,e/2,i.height,i.offset),this._edgeOffsetManipulatorGeometryOutside=Q.createExtrudedTriangle(-t,e/2,e/2,i.height,-i.offset)}const o=[{geometry:this._edgeOffsetManipulatorGeometryInside,material:this._edgeOffsetManipulatorMaterial,stateMask:ne.Unfocused},{geometry:this._edgeOffsetManipulatorGeometryInside,material:this._edgeOffsetManipulatorHoverMaterial,stateMask:ne.Focused},{geometry:this._edgeOffsetManipulatorGeometryOutside,material:this._edgeOffsetManipulatorMaterial,stateMask:ne.Unfocused},{geometry:this._edgeOffsetManipulatorGeometryOutside,material:this._edgeOffsetManipulatorHoverMaterial,stateMask:ne.Focused}],p=new V({view:this.view,renderObjects:o,elevationInfo:"on-the-ground"!==t.mode||I(this.graphic.symbol)?{mode:"absolute-height",offset:0}:t,worldOriented:!1,focusMultiplier:1,radius:r,available:!(!this.graphic.visible||!this.graphic.layer.visible),collisionType:{type:"disc",direction:O(0,0,1)},collisionPriority:1}),h=new V({view:this.view,renderObjects:[],worldSized:!0,worldOriented:!1,available:!(!this.graphic.visible||!this.graphic.layer.visible),collisionPriority:-10,cursor:this.enableMoveGraphic?"move":"default"}),d={manipulator:p,handle:e,locationUpdateHandle:null,type:"edge",selectedIndex:0,edgeManipulator:h,elevationInfo:t,visibilityHandle:null};this._autoHideEdgeOffsetManipulator(d,i.minSquaredEdgeLength),this._updateEdgeOffsetManipulator(d);const u=this._getManipulatorInfoFromHandle(d.handle.leftVertex).manipulator.events.on("location-update",(()=>this._updateEdgeOffsetManipulator(d))),c=this._getManipulatorInfoFromHandle(d.handle.rightVertex).manipulator.events.on("location-update",(()=>this._updateEdgeOffsetManipulator(d)));d.locationUpdateHandle=n([u,c]),this._manipulatorHandles.add(d.locationUpdateHandle,p),this._manipulatorHandles.add([this._watchAndUpdateGrabState(p,!0),this._watchAndUpdateGrabState(h,!0)],p),this._manipulatorHandles.add(te(p,this._createEdgeOffsetPipeline(d,t)),p),this._manipulatorHandles.add(te(h,((e,i,a,n)=>{if("touch"===n){this._createEdgeOffsetPipeline(d,t)(e,i,a)}else if(this.enableMoveGraphic){const n=this.graphic,r=s(n.geometry)?n.geometry.spatialReference:null;i.next((e=>this._trackNumDragging(e))).next(ie(this.view,e.elevationAlignedLocation)).next(N(this.view,e.elevationAlignedLocation,t,r,n)).next(ae()).next(ee()).next((e=>this._perGraphicManipulatorDragAction(ve.ALL,e))),a.next(this._cancelDragOperation())}})),p);const m=e=>{this._manipulatorInfos.some((e=>e.manipulator.selected))?this._clearSelection():this.emit("immediate-click",{...e,graphic:this.graphic}),e.stopPropagation()};return this._manipulatorHandles.add([p.events.on("immediate-click",m),h.events.on("immediate-click",m)],p),this._manipulatorInfos.push(d),this.manipulators.add(p),this.manipulators.add(h),this.emit("manipulators-changed"),d}_autoHideEdgeOffsetManipulator(e,t){const i=e.manipulator,a=e.edgeManipulator,r=()=>{h(e.visibilityHandle);const r=K(this._getManipulatorInfoFromHandle(e.handle.leftVertex).manipulator.renderLocation,this._getManipulatorInfoFromHandle(e.handle.rightVertex).manipulator.renderLocation,this.view.state.camera)<t;(!i.focused&&!a.focused||r)&&(i.grabbable=!r,a.grabbable=!r,e.visibilityHandle=n([i.disableDisplay(),{remove:()=>{i.grabbable=!0,a.grabbable=this.enableMoveGraphic}}]))};this._manipulatorHandles.add([i.events.on("focus-changed",r),a.events.on("focus-changed",r),{remove:()=>{h(e.visibilityHandle),this.manipulators.remove(a)}}],i),r()}_updateEdgeOffsetManipulator(e){this._updateManipulatorPosition(e);const t=p(this._editGeometryOperations).data.coordinateHelper,i=Y(this.view,e.manipulator.elevationAlignedLocation,q(t,e.handle,p(e.manipulator.elevationInfo))),a=this._getManipulatorInfoFromHandle(e.handle.leftVertex).manipulator.renderLocation,n=this._getManipulatorInfoFromHandle(e.handle.rightVertex).manipulator.renderLocation,r=s(i)?W(i,a,n):g;e.manipulator.modelTransform=r,e.edgeManipulator.elevationAlignedLocation=e.manipulator.elevationAlignedLocation,e.edgeManipulator.modelTransform=r;const o=_(f(ge,a,n))/2;e.edgeManipulator.collisionType={type:"line",paths:[[[-o,0,0],[o,0,0]]]}}_createEdgeOffsetPipeline(e,t){return(i,a,n)=>{this._clearSelection();const{step:r,cleanup:o}=this._initializeEdgeOffset(e,t);a.next((e=>this._trackNumDragging(e))).next(ie(this.view,i.elevationAlignedLocation)).next(r).next(D(this.view)).next(L(this.view,p(this._editGeometryOperations).data.spatialReference)).next(ee()).next(this._applyEdgeOffsetStep(e)).next((e=>{"end"===e.action&&o()})),n.next((e=>(o(),e))).next(this._cancelDragOperation())}}_initializeEdgeOffset(e,t){const i=p(this._editGeometryOperations),a=q(i.data.coordinateHelper,e.handle,t),o=i.createUndoGroup(),s=Y(this.view,e.manipulator.elevationAlignedLocation,a);a.requiresSplitEdgeLeft&&this._splitEdgeManipulator(this._getManipulatorInfoFromHandle(e.handle.leftVertex.leftEdge),1),a.requiresSplitEdgeRight&&this._splitEdgeManipulator(this._getManipulatorInfoFromHandle(e.handle.rightVertex.rightEdge),0);const u=()=>new G({paths:[[e.handle.leftVertex.pos,e.handle.rightVertex.pos]],spatialReference:p(this._editGeometryOperations).data.spatialReference}),c=new B({view:this.view,isDraped:this._graphicState.isDraped,geometry:u(),elevationInfo:e.elevationInfo,width:T.visualElements.lineGraphics.outline.width,color:T.colorToVec4(R.main),attached:!0});let m;const g=()=>{this._cleanEdgeOffsetCollapsedEdges(e),m=h(m)},_=this.on("undo",g);return m=n([r(c),d((()=>this._graphicState.isDraped),(e=>c.isDraped=e)),this._graphicState.on("changed",(()=>c.geometry=u())),o,_]),{step:e=>l(a)||l(s)?(g(),null):{...e,operation:a,plane:s},cleanup:g}}_applyEdgeOffsetStep(e){return t=>{if(this.destroyed||l(t.operation))return t;this._updateEventState(fe.RESHAPING);const{mapDeltaX:i,mapDeltaY:a,mapDeltaZ:n}=t;return(i||a||n)&&(this._offsetEdge(e,t),this.emit("reshape",{type:"reshape",mover:this.graphic})),t}}_cleanEdgeOffsetCollapsedEdges(e){var t,i;const a=null==(t=e.handle.leftVertex.leftEdge)?void 0:t.leftVertex,n=e.handle.leftVertex,r=null==(i=e.handle.rightVertex.rightEdge)?void 0:i.rightVertex,o=e.handle.rightVertex,s=p(this._editGeometryOperations).data.coordinateHelper,l=1e-6,h=[];a&&s.distance(a.pos,n.pos)<l&&h.push(this._getManipulatorInfoFromHandle(n)),(s.distance(n.pos,o.pos)<l||r&&s.distance(r.pos,o.pos)<l)&&h.push(this._getManipulatorInfoFromHandle(o)),h.length&&this._removeVertices(h)}_computeVertexManipulatorSizeAndOutline(e){const t=e.size/2,i=t+e.collisionPadding;return{size:t/i,outlineSize:(t+e.outlineSize)/i}}_createVertexOrEdgeManipulator(e,t=S(this.graphic)){if("edge"===e.type){if(this.enableEdgeOffset)return this._createEdgeOffsetManipulator(e,t);if(!this.enableMidpoints)return null}if(l(this._vertexManipulatorGeometry)||l(this._vertexManipulatorOutlineGeometry)){const{size:e,outlineSize:t}=this._computeVertexManipulatorSizeAndOutline(T.reshapeManipulators.vertex);this._vertexManipulatorGeometry=Q.createSphereGeometry(e,16,16),this._vertexManipulatorOutlineGeometry=Q.createSphereGeometry(t,16,16)}if(l(this._edgeManipulatorGeometry)||l(this._edgeManipulatorOutlineGeometry)){const{size:e,outlineSize:t}=this._computeVertexManipulatorSizeAndOutline(T.reshapeManipulators.edge);this._edgeManipulatorGeometry=Q.createSphereGeometry(e,16,16),this._edgeManipulatorOutlineGeometry=Q.createSphereGeometry(t,16,16)}const i=s(this.graphic.geometry)&&"point"===this.graphic.geometry.type?[]:[{geometry:this._vertexManipulatorGeometry,material:this._vertexManipulatorMaterial,stateMask:_e.Vertex|ne.Unselected},{geometry:this._vertexManipulatorOutlineGeometry,material:this._vertexManipulatorOutlineMaterial,stateMask:_e.Vertex|ne.Unfocused|ne.Unselected},{geometry:this._vertexManipulatorOutlineGeometry,material:this._vertexManipulatorHoverOutlineMaterial,stateMask:_e.Vertex|ne.Focused|ne.Unselected},{geometry:this._vertexManipulatorGeometry,material:this._selectedManipulatorMaterial,stateMask:ne.Selected},{geometry:this._vertexManipulatorOutlineGeometry,material:this._selectedManipulatorOutlineMaterial,stateMask:ne.Selected|ne.Unfocused},{geometry:this._vertexManipulatorOutlineGeometry,material:this._selectedManipulatorHoverOutlineMaterial,stateMask:ne.Selected|ne.Focused}];this.enableMidpoints&&i.push({geometry:this._edgeManipulatorGeometry,material:this._vertexManipulatorMaterial,stateMask:_e.Edge|ne.Focused|ne.Unselected},{geometry:this._edgeManipulatorOutlineGeometry,material:this._vertexManipulatorHoverOutlineMaterial,stateMask:_e.Edge|ne.Focused|ne.Unselected},{geometry:this._edgeManipulatorGeometry,material:this._edgeManipulatorMaterial,stateMask:_e.Edge|ne.Unfocused|ne.Unselected},{geometry:this._edgeManipulatorOutlineGeometry,material:this._edgeManipulatorOutlineMaterial,stateMask:_e.Edge|ne.Unfocused|ne.Unselected});const a=new V({view:this.view,renderObjects:i,elevationInfo:t,focusMultiplier:1,touchMultiplier:1,available:!(!this.graphic.visible||!this.graphic.layer.visible)});this._setTypeSpecificManipulatorSettings(a,e,t);const r="edge"===e.type?{manipulator:a,handle:e,locationUpdateHandle:null,type:"edge",selectedIndex:0}:{manipulator:a,handle:e,type:"vertex",selectedIndex:0};if(this._manipulatorInfos.push(r),this.manipulators.add(a),this._updateManipulatorPosition(r),"edge"===r.type){const e=this._getManipulatorInfoFromHandle(r.handle.leftVertex).manipulator.events.on("location-update",(()=>this._updateManipulatorPosition(r))),t=this._getManipulatorInfoFromHandle(r.handle.rightVertex).manipulator.events.on("location-update",(()=>this._updateManipulatorPosition(r)));r.locationUpdateHandle=n([e,t]),this._manipulatorHandles.add(r.locationUpdateHandle,a)}this._manipulatorHandles.add(this._watchAndUpdateGrabState(a,!0),a);const o=te(a,((e,i,a,n)=>{let o=null;i.next((e=>this._trackNumDragging(e))).next((e=>{if("start"===e.action&&(o=p(this._editGeometryOperations).createUndoGroup()),ce(r)){const t=this._splitEdgeManipulator(r);return{...e,info:t,snapOrigin:t.handle.pos}}return{...e,info:r,snapOrigin:r.handle.pos}})).next(ie(this.view,e.elevationAlignedLocation)).next(U(this.view,this.graphic,e.elevationAlignedLocation,e.location.spatialReference,this.graphic)).next(this._snappingPipeline.createSnapDragEventPipelineStep({predicate:()=>!this._isMultiVertexSelection(),cancel:a,snappingManager:this.tool.snappingManager,snappingContext:new le({editGeometryOperations:p(this._editGeometryOperations),elevationInfo:t,pointer:n,excludeFeature:this.graphic,visualizer:new P}),updatingHandles:this.updatingHandles}),this._snappingPipeline.next).next(ee()).next((e=>{this._perVertexManipulatorDragAction(e),"end"===e.action&&(o=h(o))})),a.next(this._cancelDragOperation((()=>o=h(o))))}));return this._manipulatorHandles.add(o,a),this._manipulatorHandles.add([a.events.on("immediate-click",(e=>this._manipulatorClickCallback(e,r))),a.events.on("select-changed",(()=>{r.selectedIndex=++this._selectedIndex,this._updateMoveManipulationPosition()}))],a),this.emit("manipulators-changed"),r}_trackNumDragging(e){switch(e.action){case"start":this._numDragging++;break;case"end":this._numDragging--}return e}_cancelDragOperation(e){return()=>{switch(this._numDragging--,this.undo(),this.outputGeometry=s(this._editGeometryOperations)?this._editGeometryOperations.data.geometry:null,s(this.tool.snappingManager)&&this.tool.snappingManager.doneSnapping(),this._reshapeEventState){case fe.NONE:break;case fe.MOVING:this.emit("move",{type:"move",dx:0,dy:0,mover:this.graphic});break;case fe.RESHAPING:this.emit("reshape",{type:"reshape",mover:this.graphic})}e&&e(),this.destroyed||this._updateEventState(fe.NONE)}}_setTypeSpecificManipulatorSettings(e,t,i){switch(t.type){case"vertex":e.state=_e.Vertex,e.selectable=!0,e.cursor="move",e.collisionPriority=2,e.radius=T.reshapeManipulators.vertex.size/2+T.reshapeManipulators.vertex.collisionPadding,e.elevationInfo=i,e.interactive=s(this.graphic.geometry)&&"point"!==this.graphic.geometry.type;break;case"edge":e.state=_e.Edge,e.selectable=!1,e.cursor="copy",e.collisionPriority=-1,e.radius=T.reshapeManipulators.edge.size/2+T.reshapeManipulators.edge.collisionPadding,e.elevationInfo="on-the-ground"!==i.mode||I(this.graphic.symbol)?{mode:"absolute-height",offset:0}:i}}_watchAndUpdateGrabState(e,t){return e.events.on("grab-changed",(i=>{if("start"===i.action)t&&this._updateSelection(e),this._numGrabbing++;else if(this._numGrabbing--,this._updateEventState(fe.NONE),this.destroyed)return;this._moveManipulation.interactive=!this._numGrabbing,("touch"!==i.pointerType||this.enableEdgeOffset)&&(this._manipulatorInfos.forEach((e=>{e.manipulator.interactive=!this._numGrabbing&&s(this.graphic.geometry)&&"point"!==this.graphic.geometry.type,"edgeManipulator"in e&&(e.edgeManipulator.interactive=!this._numGrabbing)})),p(this._graphicMoveManipulation).forEachManipulator((e=>e.interactive=!this._numGrabbing)))}))}_clearSelection(){for(const e of this._manipulatorInfos)e.manipulator.grabbing||(e.manipulator.selected=!1)}_updateSelection(e){e.grabbing&&!e.selected&&e.selectable&&(this._clearSelection(),e.selected=!0,this.emit("manipulators-changed"))}_removeManipulator(e){e&&(this._manipulatorHandles.remove(e.manipulator),this._manipulatorInfos.splice(this._manipulatorInfos.indexOf(e),1),this.manipulators.remove(e.manipulator),this.emit("manipulators-changed"))}_getManipulatorInfoFromHandle(e){if(e)for(const t of this._manipulatorInfos)if(e===t.handle)return t;return null}_updateManipulatorPosition(e){if(!e)return;const t=p(this._editGeometryOperations);if("vertex"===e.handle.type)e.manipulator.location=t.data.coordinateHelper.vectorToDehydratedPoint(e.handle.pos,me),e.manipulator.grabbing&&s(this._vertexLaserLineVisualElement)&&(this._vertexLaserLineVisualElement.visualElement.intersectsWorldUpAtLocation=e.manipulator.renderLocation);else if("edge"===e.handle.type){const i=this._getManipulatorInfoFromHandle(e.handle.leftVertex).manipulator,a=this._getManipulatorInfoFromHandle(e.handle.rightVertex).manipulator;if(s(e.manipulator.elevationInfo)&&"on-the-ground"===e.manipulator.elevationInfo.mode){const n=i.location,r=a.location,o=.5,s=n.x+o*(r.x-n.x),l=n.y+o*(r.y-n.y),p=n.hasZ&&r.hasZ?0:void 0;e.manipulator.location=b(s,l,p,t.data.spatialReference)}else v(ge,i.renderLocation,a.renderLocation,.5),e.manipulator.renderLocation=ge}}_splitEdgeManipulator(e,t=.5){const i=p(this._editGeometryOperations),a=p(i.splitEdge(e.handle,t).createdVertex);e.locationUpdateHandle.remove(),e.locationUpdateHandle=void 0;const n=S(this.graphic);let r;this.enableEdgeOffset?(this._removeManipulator(e),r=this._createVertexOrEdgeManipulator(a)):(r=e,r.handle=a,r.type="vertex",this._setTypeSpecificManipulatorSettings(e.manipulator,e.handle,n)),a.leftEdge&&this._createVertexOrEdgeManipulator(a.leftEdge),a.rightEdge&&this._createVertexOrEdgeManipulator(a.rightEdge),this.outputGeometry=i.data.geometry,this._updateManipulatorPosition(r),this._updateSelection(e.manipulator);const o=this._updateEventState(fe.RESHAPING),s=i.data.coordinateHelper.vectorToArray(r.handle.pos),l=i.data.components.indexOf(a.component);return this.emit("vertex-add",{type:"vertex-add",vertices:[{coordinates:s,componentIndex:l,vertexIndex:p(a.index)}],added:s}),o&&this._updateEventState(fe.NONE),r}_updateMoveManipulationPosition(){const e=M(ge,0,0,0);let t=0,i=!1,a=null,n=null;for(const r of this._manipulatorInfos)ue(r)&&(r.manipulator.selected?(t++,y(e,e,r.manipulator.renderLocation),l(a)||r.selectedIndex>a.selectedIndex?(n=a,a=r):(l(n)||r.selectedIndex>n.selectedIndex)&&(n=r)):i=!0);if(0!==t){const e=this._graphicState.displaying;this._moveManipulation.xyManipulation.available=e,this._moveManipulation.xyAxisManipulation.available=e,this._moveManipulation.zManipulation.available=e&&this.enableZVertex&&j(this.graphic),this._moveManipulation.xyAxisManipulation.orthogonalAvailable=e&&1!==t}else{const e=this._graphicState.displaying&&this.enableMoveGraphic;this._moveManipulation.xyManipulation.available=e,this._moveManipulation.xyAxisManipulation.available=e,this._moveManipulation.xyAxisManipulation.orthogonalAvailable=e,this._moveManipulation.zManipulation.available=e&&this.enableZShape&&j(this.graphic)}if(0!==t){let e=0;if(s(a)){const t=a.handle.pos,i=s(n)?n.handle.pos:a.handle.leftEdge&&a.handle.leftEdge.leftVertex?a.handle.leftEdge.leftVertex.pos:null,r=l(n)&&a.handle.rightEdge&&a.handle.rightEdge.rightVertex?a.handle.rightEdge.rightVertex.pos:null;i&&r?this._moveManipulation.xyAxisManipulation.available=!1:i?e=de(i,t):r&&(e=de(t,r))}this._moveManipulation.angle=e,this._moveManipulation.radius=C}else this._moveManipulation.angleDeferred=()=>Z(p(this.graphic.geometry)),this._moveManipulation.radius=z.radiusForSymbol(this.graphic.symbol);0!==t&&i?(x(e,e,1/t),me.spatialReference=p(this._editGeometryOperations).data.spatialReference,me.hasZ=!0,this.view.renderCoordsHelper.fromRenderCoords(e,me),this._moveManipulation.elevationAlignedLocation=me):s(this._outlineVisualElement)&&!this._graphicState.isDraped&&s(this._outlineVisualElement.attachmentOrigin)?this._moveManipulation.elevationAlignedLocation=this._outlineVisualElement.attachmentOrigin:w(this.view,this._moveManipulation,this.graphic)}_removeVertices(e){const t=[],i=p(this._editGeometryOperations);for(const a of e)if("vertex"===a.handle.type&&i.canRemoveVertex()){t.push(a.handle),this._removeManipulator(a),this._removeManipulator(this._getManipulatorInfoFromHandle(a.handle.leftEdge)),this._removeManipulator(this._getManipulatorInfoFromHandle(a.handle.rightEdge));const e=p(i.removeVertices([a.handle]).removedVertices[0].createdEdge);e&&this._createVertexOrEdgeManipulator(e)}if(t.length>0){const e=t.map((e=>{const t=i.data.components.indexOf(e.component);return{coordinates:i.data.coordinateHelper.vectorToArray(e.pos),componentIndex:t,vertexIndex:p(e.index)}}));this.outputGeometry=i.data.geometry;const a=this._updateEventState(fe.RESHAPING);if(this.destroyed)return;if(this.emit("vertex-remove",{type:"vertex-remove",removed:e.map((e=>e.coordinates)),vertices:e}),this.destroyed)return;if(a&&(this._updateEventState(fe.NONE),this.destroyed))return;this._updateMoveManipulationPosition()}}_moveVertices(e,t,i=("start"===t.action?se.NEW_STEP:se.ACCUMULATE_STEPS)){const a=p(this._editGeometryOperations);a.moveVertices(e.map((e=>e.handle)),t.mapDeltaX,t.mapDeltaY,t.mapDeltaZ,i),this.outputGeometry=a.data.geometry;for(const n of e)this._updateManipulatorPosition(n)}_offsetEdge(e,t){if(l(t.operation))return;const i=p(this._editGeometryOperations),a=t.operation.clone();a.distance=t.operation.signedDistanceToPoint(t.mapEnd),i.updateVertices([e.handle.leftVertex,e.handle.rightVertex],a),this.outputGeometry=i.data.geometry,this._updateManipulatorPosition(this._getManipulatorInfoFromHandle(e.handle.leftVertex)),this._updateManipulatorPosition(this._getManipulatorInfoFromHandle(e.handle.rightVertex))}_manipulatorClickCallback(e,t){e.shiftKey||this._clearSelection(),"vertex"===t.handle.type&&(t.manipulator.selected=!t.manipulator.selected),"vertex"===t.handle.type&&e.button===$.Right&&this._removeVertices([t]),ce(t)&&e.button===$.Left&&this._splitEdgeManipulator(t),e.stopPropagation()}};function de(e,t){return Math.atan2(t[1]-e[1],t[0]-e[0])+Math.PI/2}function ue(e){return"vertex"===e.handle.type}function ce(e){return"edge"===e.handle.type}e([c({constructOnly:!0})],he.prototype,"tool",void 0),e([c()],he.prototype,"inputGeometry",null),e([c()],he.prototype,"outputGeometry",void 0),e([c({readOnly:!0})],he.prototype,"updating",null),he=e([m("esri.views.3d.interactive.editingTools.reshapeGraphic.ReshapeOperation")],he);const me=b(0,0,null,null),ge=E();var _e,fe,ve;!function(e){e.Vertex=re.Custom1,e.Edge=re.Custom2}(_e||(_e={})),function(e){e[e.NONE=0]="NONE",e[e.MOVING=1]="MOVING",e[e.RESHAPING=2]="RESHAPING"}(fe||(fe={})),function(e){e[e.ALL=0]="ALL",e[e.SELECTED_OR_ALL=1]="SELECTED_OR_ALL"}(ve||(ve={}));export{he as ReshapeOperation};
|
|
5
|
+
import{_ as e}from"../../../../../chunks/tslib.es6.js";import"../../../../../core/has.js";import t from"../../../../../core/Evented.js";import{HandleOwner as i}from"../../../../../core/HandleOwner.js";import a from"../../../../../core/Handles.js";import{handlesGroup as n,destroyHandle as r}from"../../../../../core/handleUtils.js";import{destroyMaybe as o,isSome as s,isNone as l,unwrap as p,removeMaybe as h}from"../../../../../core/maybe.js";import{watch as d,initial as u}from"../../../../../core/reactiveUtils.js";import{property as c}from"../../../../../core/accessorSupport/decorators/property.js";import"../../../../../core/arrayUtils.js";import"../../../../../core/accessorSupport/ensureType.js";import{subclass as m}from"../../../../../core/accessorSupport/decorators/subclass.js";import{I as g}from"../../../../../chunks/mat4f64.js";import{l as _,b as f,h as v,s as M,a as y,g as x}from"../../../../../chunks/vec3.js";import{f as O,c as E}from"../../../../../chunks/vec3f64.js";import G from"../../../../../geometry/Polyline.js";import{makeDehydratedPoint as b}from"../../../../../layers/graphics/dehydratedFeatures.js";import{getGraphicEffectiveElevationInfo as S}from"../../../../../support/elevationInfoUtils.js";import{isVolumetricSymbol as I}from"../../../../../symbols/support/utils.js";import{Manipulator3D as V}from"../../Manipulator3D.js";import{createManipulatorMaterial as H,createManipulatorOutlineMaterial as A,placeAtGraphic as w}from"../../manipulatorUtils.js";import{SnappingVisualizer3D as P}from"../../SnappingVisualizer3D.js";import{screenToRenderPlaneFromEvent as D,convertToMapCoordinates as L,screenToMapXYAtLocation as N,screenToMapXYForGraphicAtLocation as U}from"../dragEventPipeline3D.js";import{ManipulatorType as k}from"../ManipulatorType.js";import{canMoveZ as j}from"../manipulatorUtils.js";import{settings as T,colors as R}from"../settings.js";import{createVisualElements as F}from"../visualElementUtils.js";import{DISC_RADIUS_SMALL as C}from"../manipulations/config.js";import{MoveManipulation as z}from"../manipulations/MoveManipulation.js";import{shapeOrientation as Z}from"../manipulations/moveUtils.js";import{MoveXYGraphicManipulation as X}from"../manipulations/MoveXYGraphicManipulation.js";import{createEdgeOffsetIntersectionPlane as Y,createEdgeOffsetOperation as q,edgeOffsetRotationMatrix as W,screenEdgeLengthSquared as K}from"./edgeOffsetUtils.js";import{OutlineVisualElement as B}from"../../visualElements/OutlineVisualElement.js";import{GraphicState as J}from"../../../layers/graphics/GraphicState.js";import Q from"../../../webgl-engine/lib/GeometryUtil.js";import{MouseButton as $}from"../../../../input/IViewEvents.js";import{addMapDelta as ee,createManipulatorDragEventPipeline as te,dragAtLocation as ie,addScreenDelta as ae}from"../../../../interactive/dragEventPipeline.js";import{ManipulatorStateFlags as ne,ManipulatorStateCustomFlags as re}from"../../../../interactive/interfaces.js";import{EditGeometryOperations as oe}from"../../../../interactive/editGeometry/EditGeometryOperations.js";import{AccumulationBehaviour as se}from"../../../../interactive/editGeometry/interfaces.js";import{SnappingContext as le}from"../../../../interactive/snapping/SnappingContext.js";import{SnappingPipeline as pe}from"../../../../interactive/snapping/SnappingDragPipelineStep.js";let he=class extends(t.EventedMixin(i)){constructor(e){super(e),this._vertexManipulatorMaterial=H(T.colorToVec4(T.reshapeManipulators.vertex.color),T.reshapeManipulators.vertex.renderOccluded),this._vertexManipulatorOutlineMaterial=A(T.colorToVec4(T.reshapeManipulators.vertex.outlineColor),T.reshapeManipulators.vertex.renderOccluded),this._vertexManipulatorHoverOutlineMaterial=A(T.colorToVec4(T.reshapeManipulators.vertex.hoverOutlineColor),T.reshapeManipulators.vertex.renderOccluded),this._edgeManipulatorMaterial=H(T.colorToVec4(T.reshapeManipulators.edge.color),T.reshapeManipulators.edge.renderOccluded),this._edgeManipulatorOutlineMaterial=A(T.colorToVec4(T.reshapeManipulators.edge.outlineColor),T.reshapeManipulators.edge.renderOccluded),this._edgeOffsetManipulatorMaterial=H(T.colorToVec4(T.reshapeManipulators.edgeOffset.color),T.reshapeManipulators.edgeOffset.renderOccluded,!1),this._edgeOffsetManipulatorHoverMaterial=H(T.colorToVec4(T.reshapeManipulators.edgeOffset.hoverColor),T.reshapeManipulators.edgeOffset.renderOccluded,!1),this._selectedManipulatorMaterial=H(T.colorToVec4(T.reshapeManipulators.selected.color),T.reshapeManipulators.selected.renderOccluded),this._selectedManipulatorOutlineMaterial=A(T.colorToVec4(T.reshapeManipulators.selected.outlineColor),T.reshapeManipulators.selected.renderOccluded),this._selectedManipulatorHoverOutlineMaterial=A(T.colorToVec4(T.reshapeManipulators.selected.hoverOutlineColor),T.reshapeManipulators.selected.renderOccluded),this._selectedIndex=0,this._vertexManipulatorGeometry=null,this._vertexManipulatorOutlineGeometry=null,this._edgeManipulatorGeometry=null,this._edgeManipulatorOutlineGeometry=null,this._edgeOffsetManipulatorGeometryInside=null,this._edgeOffsetManipulatorGeometryOutside=null,this._manipulatorHandles=new a,this._manipulatorInfos=[],this._editGeometryOperations=null,this._graphicMoveManipulation=null,this._moveManipulation=null,this._numGrabbing=0,this._numDragging=0,this._reshapeEventState=fe.NONE,this._outlineVisualElement=null,this.tool=null,this.outputGeometry=null,this._snappingPipeline=new pe,this._snappingPipelineHandle=new pe,this._vertexLaserLineVisualElement=null}initialize(){const e=new J({graphic:this.graphic});this._graphicState=e,this.handles.add([d((()=>e.displaying),(e=>{for(const t of this._manipulatorInfos)t.manipulator.available=e})),this.view.trackGraphicState(e)])}destroy(){this._editGeometryOperations=o(this._editGeometryOperations),this._moveManipulation=o(this._moveManipulation),this._graphicMoveManipulation=o(this._graphicMoveManipulation),this._manipulatorHandles=o(this._manipulatorHandles),this.manipulators.removeAll(),this._manipulatorInfos=[],this._resetGrabbingDragging()}get inputGeometry(){return s(this._editGeometryOperations)?this._editGeometryOperations.data.geometry:null}set inputGeometry(e){this._recreateEditGeometryAndManipulators(e)}get updating(){return this.updatingHandles.updating}get manipulators(){return this.tool.manipulators}get view(){return this.tool.view}get graphic(){return this.tool.graphic}get enableZShape(){return this.tool.enableZShape}get enableZVertex(){return this.tool.enableZVertex}get enableMoveGraphic(){return this.tool.enableMoveGraphic}get enableMidpoints(){return this.tool.enableMidpoints}get enableEdgeOffset(){return this.tool.enableEdgeOffset}removeSelectedVertices(){const e=this._manipulatorInfos.filter((e=>e.manipulator.selected&&"vertex"===e.handle.type));this._removeVertices(e)}manipulatorSelectionChanged(){this.emit("manipulators-changed")}_removeManipulators(){this._moveManipulation=o(this._moveManipulation),this._graphicMoveManipulation=o(this._graphicMoveManipulation),this._manipulatorHandles.removeAll(),this.manipulators.removeAll(),this._manipulatorInfos=[]}_resetGrabbingDragging(){this._numGrabbing=0,this._numDragging=0}_createManipulators(){if(l(this._editGeometryOperations))return;const e=S(this.graphic);for(const t of this._editGeometryOperations.data.components){for(const i of t.vertices)this._createVertexOrEdgeManipulator(i,e);for(const i of t.edges)this._createVertexOrEdgeManipulator(i,e)}this._createGraphicMoveManipulators(e)}get canRedo(){return s(this._editGeometryOperations)&&this._editGeometryOperations.canRedo}get canUndo(){return s(this._editGeometryOperations)&&this._editGeometryOperations.canUndo}redo(){if(l(this._editGeometryOperations))return null;const e=this._editGeometryOperations.redo();return s(e)&&(this.outputGeometry=this._editGeometryOperations.data.geometry,this._recreateManipulators()),e}undo(){if(l(this._editGeometryOperations))return null;this.emit("undo");const e=this._editGeometryOperations.undo();return s(e)&&(this.outputGeometry=this._editGeometryOperations.data.geometry,this._recreateManipulators()),e}_recreateManipulators(){this._removeManipulators(),this._resetGrabbingDragging(),this._createManipulators()}_recreateEditGeometryAndManipulators(e=this.inputGeometry){this._removeManipulators(),this._resetGrabbingDragging(),l(e)||(o(this._editGeometryOperations),this._editGeometryOperations=oe.fromGeometry(e,this.view.state.viewingMode),this._createManipulators())}_perGraphicManipulatorDragAction(e,t){if("end"===t.action)return;let i=0;const a=[],n=this._manipulatorInfos.some((e=>"vertex"===e.handle.type&&e.manipulator.selected)),r=e===ve.SELECTED_OR_ALL&&n;for(const o of this._manipulatorInfos)ue(o)&&(o.manipulator.grabbing||r&&!o.manipulator.selected||a.push(o),i++);if(0===a.length)return;this._moveVertices(a,t);if(a.length===i){if(this._updateEventState(fe.MOVING),this.destroyed)return;this.emit("move",{type:"move",dx:t.screenDeltaX,dy:t.screenDeltaY,mover:this.graphic})}else{if(this._updateEventState(fe.RESHAPING),this.destroyed)return;this.emit("reshape",{type:"reshape",mover:this.graphic})}}_isMultiVertexSelection(){let e=0;for(const t of this._manipulatorInfos)ue(t)&&t.manipulator.selected&&e++;return e>1}_perVertexManipulatorDragAction(e){if(this._updateEventState(fe.RESHAPING),this.destroyed)return;const{mapDeltaX:t,mapDeltaY:i,mapDeltaZ:a}=e;if(!t&&!i&&!a)return;const n=[];for(const r of this._manipulatorInfos)ue(r)&&(r.manipulator.selected&&!r.manipulator.grabbing||r===e.info)&&n.push(r);this._moveVertices(n,e,se.ACCUMULATE_STEPS),this.emit("reshape",{type:"reshape",mover:this.graphic})}_updateEventState(e){if(e===this._reshapeEventState)return!1;switch(e){case fe.NONE:if(0!==this._numGrabbing||0!==this._numDragging)return!1;switch(this._reshapeEventState){case fe.MOVING:this.emit("move",{type:"move-stop",dx:0,dy:0,mover:this.graphic});break;case fe.RESHAPING:this.emit("reshape",{type:"reshape-stop",mover:this.graphic})}break;case fe.MOVING:switch(this._reshapeEventState){case fe.NONE:this.emit("move",{type:"move-start",dx:0,dy:0,mover:this.graphic});break;case fe.RESHAPING:this.emit("reshape",{type:"reshape-stop",mover:this.graphic}),this.destroyed||this.emit("move",{type:"move-start",dx:0,dy:0,mover:this.graphic})}break;case fe.RESHAPING:switch(this._reshapeEventState){case fe.NONE:this.emit("reshape",{type:"reshape-start",mover:this.graphic});break;case fe.MOVING:this.emit("move",{type:"move-stop",dx:0,dy:0,mover:this.graphic}),this.destroyed||this.emit("reshape",{type:"reshape-start",mover:this.graphic})}}if(this.destroyed)return!1;const t=this._reshapeEventState!==e;return this._reshapeEventState=e,t}_createGraphicMoveManipulators(e){if(this._graphicMoveManipulation=new X({tool:this.tool,view:this.view,graphicState:this._graphicState}),this.enableMoveGraphic){let e=null;this._manipulatorHandles.add(this._graphicMoveManipulation.createDragPipeline(((t,i,a)=>{i.next((e=>this._trackNumDragging(e))).next((t=>("start"===t.action&&(e=p(this._editGeometryOperations).createUndoGroup()),t))).next((t=>{this._perGraphicManipulatorDragAction(ve.ALL,t),"end"===t.action&&(e=h(e))})),a.next(this._cancelDragOperation((()=>e=h(e))))})))}else this._graphicMoveManipulation.forEachManipulator((e=>{e.grabbable=!1,e.cursor=null}));this._graphicMoveManipulation.forEachManipulator((e=>this._manipulatorHandles.add([this._watchAndUpdateGrabState(e,!1),e.events.on("immediate-click",(e=>{this._manipulatorInfos.some((e=>e.manipulator.selected))?this._clearSelection():this.emit("immediate-click",{...e,graphic:this.graphic}),e.stopPropagation()}))]))),this._moveManipulation=new z({tool:this.tool,view:this.view,xyAvailable:!0,xyAxisAvailable:!0,zAvailable:this.enableZShape&&j(this.graphic),snapToScene:!1,radius:z.radiusForSymbol(this.graphic.symbol)}),this._moveManipulation.forEachManipulator((e=>{this.handles.add([this._watchAndUpdateGrabState(e,!1),e.events.on("immediate-click",(t=>{this._moveManipulation.zManipulation.hasManipulator(e)||this._manipulatorInfos.some((e=>e.manipulator.selected))||this.emit("immediate-click",{...t,graphic:this.graphic}),t.stopPropagation()}))])})),this._moveManipulation.elevationInfo={mode:"absolute-height",offset:0};const t=p(this.graphic.geometry).spatialReference,i=this.handles;i.add([this._moveManipulation.createDragPipeline(((t,i,a,n,r)=>{const o=a.next((e=>this._trackNumDragging(e))).next((e=>{const t=this._manipulatorInfos.filter((e=>ue(e)&&e.manipulator.selected));return e.manipulatorType===k.TRANSLATE_XY&&1===t.length?{...e,info:t[0],snapOrigin:t[0].handle.pos}:{...e,info:null}})).next(this._snappingPipelineHandle.createSnapDragEventPipelineStep({predicate:e=>!!e.info,cancel:n,snappingManager:this.tool.snappingManager,snappingContext:new le({editGeometryOperations:p(this._editGeometryOperations),elevationInfo:e,pointer:r,excludeFeature:this.graphic,visualizer:new P}),updatingHandles:this.updatingHandles}),this._snappingPipelineHandle.next).next(ee()).next((e=>(this._perGraphicManipulatorDragAction(ve.SELECTED_OR_ALL,e),e)));return n.next(this._cancelDragOperation()),o}),e,t,this.graphic),d((()=>this._graphicState?.displaying),(()=>{this._updateMoveManipulationPosition()}),u),this._graphicState.on("changed",(()=>this._updateMoveManipulationPosition())),d((()=>this._graphicState?.isDraped),(e=>{const t="align-move-manipulation";e?i.add(this.view.elevationProvider.on("elevation-change",(()=>this._updateMoveManipulationPosition())),t):i.remove(t)}),u)]),this._updateMoveManipulationPosition();const a=F({view:this.view,graphic:this.graphic,forEachManipulator:e=>{if(!this.destroyed){s(this._graphicMoveManipulation)&&this._graphicMoveManipulation.forEachManipulator(e);for(const t of this._manipulatorInfos)e(t.manipulator,k.TRANSLATE_XY);this._moveManipulation.forEachManipulator(e)}},onManipulatorsChanged:e=>this.on("manipulators-changed",e)});s(a)&&(this._outlineVisualElement=a.visualElement instanceof B?a.visualElement:null),s(this._outlineVisualElement)&&this._manipulatorHandles.add([this._outlineVisualElement.events.on("attachment-origin-changed",(()=>{this._graphicState.isDraped||this._updateMoveManipulationPosition()})),d((()=>this._graphicState.isDraped),(()=>this._updateMoveManipulationPosition()))]),this._manipulatorHandles.add(a)}_createEdgeOffsetManipulator(e,t=S(this.graphic)){const i=T.reshapeManipulators.edgeOffset,a=i.size/2,r=a+i.collisionPadding;if(l(this._edgeOffsetManipulatorGeometryInside)||l(this._edgeOffsetManipulatorGeometryOutside)){const e=a/r,t=e*Math.sqrt(3)/2;this._edgeOffsetManipulatorGeometryInside=Q.createExtrudedTriangle(t,e/2,e/2,i.height,i.offset),this._edgeOffsetManipulatorGeometryOutside=Q.createExtrudedTriangle(-t,e/2,e/2,i.height,-i.offset)}const o=[{geometry:this._edgeOffsetManipulatorGeometryInside,material:this._edgeOffsetManipulatorMaterial,stateMask:ne.Unfocused},{geometry:this._edgeOffsetManipulatorGeometryInside,material:this._edgeOffsetManipulatorHoverMaterial,stateMask:ne.Focused},{geometry:this._edgeOffsetManipulatorGeometryOutside,material:this._edgeOffsetManipulatorMaterial,stateMask:ne.Unfocused},{geometry:this._edgeOffsetManipulatorGeometryOutside,material:this._edgeOffsetManipulatorHoverMaterial,stateMask:ne.Focused}],p=new V({view:this.view,renderObjects:o,elevationInfo:"on-the-ground"!==t.mode||I(this.graphic.symbol)?{mode:"absolute-height",offset:0}:t,worldOriented:!1,focusMultiplier:1,radius:r,available:!(!this.graphic.visible||!this.graphic.layer.visible),collisionType:{type:"disc",direction:O(0,0,1)},collisionPriority:1}),h=new V({view:this.view,renderObjects:[],worldSized:!0,worldOriented:!1,available:!(!this.graphic.visible||!this.graphic.layer.visible),collisionPriority:-10,cursor:this.enableMoveGraphic?"move":"default"}),d={manipulator:p,handle:e,locationUpdateHandle:null,type:"edge",selectedIndex:0,edgeManipulator:h,elevationInfo:t,visibilityHandle:null};this._autoHideEdgeOffsetManipulator(d,i.minSquaredEdgeLength),this._updateEdgeOffsetManipulator(d);const u=this._getManipulatorInfoFromHandle(d.handle.leftVertex).manipulator.events.on("location-update",(()=>this._updateEdgeOffsetManipulator(d))),c=this._getManipulatorInfoFromHandle(d.handle.rightVertex).manipulator.events.on("location-update",(()=>this._updateEdgeOffsetManipulator(d)));d.locationUpdateHandle=n([u,c]),this._manipulatorHandles.add(d.locationUpdateHandle,p),this._manipulatorHandles.add([this._watchAndUpdateGrabState(p,!0),this._watchAndUpdateGrabState(h,!0)],p),this._manipulatorHandles.add(te(p,this._createEdgeOffsetPipeline(d,t)),p),this._manipulatorHandles.add(te(h,((e,i,a,n)=>{if("touch"===n){this._createEdgeOffsetPipeline(d,t)(e,i,a)}else if(this.enableMoveGraphic){const n=this.graphic,r=s(n.geometry)?n.geometry.spatialReference:null;i.next((e=>this._trackNumDragging(e))).next(ie(this.view,e.elevationAlignedLocation)).next(N(this.view,e.elevationAlignedLocation,t,r,n)).next(ae()).next(ee()).next((e=>this._perGraphicManipulatorDragAction(ve.ALL,e))),a.next(this._cancelDragOperation())}})),p);const m=e=>{this._manipulatorInfos.some((e=>e.manipulator.selected))?this._clearSelection():this.emit("immediate-click",{...e,graphic:this.graphic}),e.stopPropagation()};return this._manipulatorHandles.add([p.events.on("immediate-click",m),h.events.on("immediate-click",m)],p),this._manipulatorInfos.push(d),this.manipulators.add(p),this.manipulators.add(h),this.emit("manipulators-changed"),d}_autoHideEdgeOffsetManipulator(e,t){const i=e.manipulator,a=e.edgeManipulator,r=()=>{h(e.visibilityHandle);const r=K(this._getManipulatorInfoFromHandle(e.handle.leftVertex).manipulator.renderLocation,this._getManipulatorInfoFromHandle(e.handle.rightVertex).manipulator.renderLocation,this.view.state.camera)<t;(!i.focused&&!a.focused||r)&&(i.grabbable=!r,a.grabbable=!r,e.visibilityHandle=n([i.disableDisplay(),{remove:()=>{i.grabbable=!0,a.grabbable=this.enableMoveGraphic}}]))};this._manipulatorHandles.add([i.events.on("focus-changed",r),a.events.on("focus-changed",r),{remove:()=>{h(e.visibilityHandle),this.manipulators.remove(a)}}],i),r()}_updateEdgeOffsetManipulator(e){this._updateManipulatorPosition(e);const t=p(this._editGeometryOperations).data.coordinateHelper,i=Y(this.view,e.manipulator.elevationAlignedLocation,q(t,e.handle,p(e.manipulator.elevationInfo))),a=this._getManipulatorInfoFromHandle(e.handle.leftVertex).manipulator.renderLocation,n=this._getManipulatorInfoFromHandle(e.handle.rightVertex).manipulator.renderLocation,r=s(i)?W(i,a,n):g;e.manipulator.modelTransform=r,e.edgeManipulator.elevationAlignedLocation=e.manipulator.elevationAlignedLocation,e.edgeManipulator.modelTransform=r;const o=_(f(ge,a,n))/2;e.edgeManipulator.collisionType={type:"line",paths:[[[-o,0,0],[o,0,0]]]}}_createEdgeOffsetPipeline(e,t){return(i,a,n)=>{this._clearSelection();const{step:r,cleanup:o}=this._initializeEdgeOffset(e,t);a.next((e=>this._trackNumDragging(e))).next(ie(this.view,i.elevationAlignedLocation)).next(r).next(D(this.view)).next(L(this.view,p(this._editGeometryOperations).data.spatialReference)).next(ee()).next(this._applyEdgeOffsetStep(e)).next((e=>{"end"===e.action&&o()})),n.next((e=>(o(),e))).next(this._cancelDragOperation())}}_initializeEdgeOffset(e,t){const i=p(this._editGeometryOperations),a=q(i.data.coordinateHelper,e.handle,t),o=i.createUndoGroup(),s=Y(this.view,e.manipulator.elevationAlignedLocation,a);a.requiresSplitEdgeLeft&&this._splitEdgeManipulator(this._getManipulatorInfoFromHandle(e.handle.leftVertex.leftEdge),1),a.requiresSplitEdgeRight&&this._splitEdgeManipulator(this._getManipulatorInfoFromHandle(e.handle.rightVertex.rightEdge),0);const u=()=>new G({paths:[[e.handle.leftVertex.pos,e.handle.rightVertex.pos]],spatialReference:p(this._editGeometryOperations).data.spatialReference}),c=new B({view:this.view,isDraped:this._graphicState.isDraped,geometry:u(),elevationInfo:e.elevationInfo,width:T.visualElements.lineGraphics.outline.width,color:T.colorToVec4(R.main),attached:!0});let m;const g=()=>{this._cleanEdgeOffsetCollapsedEdges(e),m=h(m)},_=this.on("undo",g);return m=n([r(c),d((()=>this._graphicState.isDraped),(e=>c.isDraped=e)),this._graphicState.on("changed",(()=>c.geometry=u())),o,_]),{step:e=>l(a)||l(s)?(g(),null):{...e,operation:a,plane:s},cleanup:g}}_applyEdgeOffsetStep(e){return t=>{if(this.destroyed||l(t.operation))return t;this._updateEventState(fe.RESHAPING);const{mapDeltaX:i,mapDeltaY:a,mapDeltaZ:n}=t;return(i||a||n)&&(this._offsetEdge(e,t),this.emit("reshape",{type:"reshape",mover:this.graphic})),t}}_cleanEdgeOffsetCollapsedEdges(e){const t=e.handle.leftVertex.leftEdge?.leftVertex,i=e.handle.leftVertex,a=e.handle.rightVertex.rightEdge?.rightVertex,n=e.handle.rightVertex,r=p(this._editGeometryOperations).data.coordinateHelper,o=1e-6,s=[];t&&r.distance(t.pos,i.pos)<o&&s.push(this._getManipulatorInfoFromHandle(i)),(r.distance(i.pos,n.pos)<o||a&&r.distance(a.pos,n.pos)<o)&&s.push(this._getManipulatorInfoFromHandle(n)),s.length&&this._removeVertices(s)}_computeVertexManipulatorSizeAndOutline(e){const t=e.size/2,i=t+e.collisionPadding;return{size:t/i,outlineSize:(t+e.outlineSize)/i}}_createVertexOrEdgeManipulator(e,t=S(this.graphic)){if("edge"===e.type){if(this.enableEdgeOffset)return this._createEdgeOffsetManipulator(e,t);if(!this.enableMidpoints)return null}if(l(this._vertexManipulatorGeometry)||l(this._vertexManipulatorOutlineGeometry)){const{size:e,outlineSize:t}=this._computeVertexManipulatorSizeAndOutline(T.reshapeManipulators.vertex);this._vertexManipulatorGeometry=Q.createSphereGeometry(e,16,16),this._vertexManipulatorOutlineGeometry=Q.createSphereGeometry(t,16,16)}if(l(this._edgeManipulatorGeometry)||l(this._edgeManipulatorOutlineGeometry)){const{size:e,outlineSize:t}=this._computeVertexManipulatorSizeAndOutline(T.reshapeManipulators.edge);this._edgeManipulatorGeometry=Q.createSphereGeometry(e,16,16),this._edgeManipulatorOutlineGeometry=Q.createSphereGeometry(t,16,16)}const i=s(this.graphic.geometry)&&"point"===this.graphic.geometry.type?[]:[{geometry:this._vertexManipulatorGeometry,material:this._vertexManipulatorMaterial,stateMask:_e.Vertex|ne.Unselected},{geometry:this._vertexManipulatorOutlineGeometry,material:this._vertexManipulatorOutlineMaterial,stateMask:_e.Vertex|ne.Unfocused|ne.Unselected},{geometry:this._vertexManipulatorOutlineGeometry,material:this._vertexManipulatorHoverOutlineMaterial,stateMask:_e.Vertex|ne.Focused|ne.Unselected},{geometry:this._vertexManipulatorGeometry,material:this._selectedManipulatorMaterial,stateMask:ne.Selected},{geometry:this._vertexManipulatorOutlineGeometry,material:this._selectedManipulatorOutlineMaterial,stateMask:ne.Selected|ne.Unfocused},{geometry:this._vertexManipulatorOutlineGeometry,material:this._selectedManipulatorHoverOutlineMaterial,stateMask:ne.Selected|ne.Focused}];this.enableMidpoints&&i.push({geometry:this._edgeManipulatorGeometry,material:this._vertexManipulatorMaterial,stateMask:_e.Edge|ne.Focused|ne.Unselected},{geometry:this._edgeManipulatorOutlineGeometry,material:this._vertexManipulatorHoverOutlineMaterial,stateMask:_e.Edge|ne.Focused|ne.Unselected},{geometry:this._edgeManipulatorGeometry,material:this._edgeManipulatorMaterial,stateMask:_e.Edge|ne.Unfocused|ne.Unselected},{geometry:this._edgeManipulatorOutlineGeometry,material:this._edgeManipulatorOutlineMaterial,stateMask:_e.Edge|ne.Unfocused|ne.Unselected});const a=new V({view:this.view,renderObjects:i,elevationInfo:t,focusMultiplier:1,touchMultiplier:1,available:!(!this.graphic.visible||!this.graphic.layer.visible)});this._setTypeSpecificManipulatorSettings(a,e,t);const r="edge"===e.type?{manipulator:a,handle:e,locationUpdateHandle:null,type:"edge",selectedIndex:0}:{manipulator:a,handle:e,type:"vertex",selectedIndex:0};if(this._manipulatorInfos.push(r),this.manipulators.add(a),this._updateManipulatorPosition(r),"edge"===r.type){const e=this._getManipulatorInfoFromHandle(r.handle.leftVertex).manipulator.events.on("location-update",(()=>this._updateManipulatorPosition(r))),t=this._getManipulatorInfoFromHandle(r.handle.rightVertex).manipulator.events.on("location-update",(()=>this._updateManipulatorPosition(r)));r.locationUpdateHandle=n([e,t]),this._manipulatorHandles.add(r.locationUpdateHandle,a)}this._manipulatorHandles.add(this._watchAndUpdateGrabState(a,!0),a);const o=te(a,((e,i,a,n)=>{let o=null;i.next((e=>this._trackNumDragging(e))).next((e=>{if("start"===e.action&&(o=p(this._editGeometryOperations).createUndoGroup()),ce(r)){const t=this._splitEdgeManipulator(r);return{...e,info:t,snapOrigin:t.handle.pos}}return{...e,info:r,snapOrigin:r.handle.pos}})).next(ie(this.view,e.elevationAlignedLocation)).next(U(this.view,this.graphic,e.elevationAlignedLocation,e.location.spatialReference,this.graphic)).next(this._snappingPipeline.createSnapDragEventPipelineStep({predicate:()=>!this._isMultiVertexSelection(),cancel:a,snappingManager:this.tool.snappingManager,snappingContext:new le({editGeometryOperations:p(this._editGeometryOperations),elevationInfo:t,pointer:n,excludeFeature:this.graphic,visualizer:new P}),updatingHandles:this.updatingHandles}),this._snappingPipeline.next).next(ee()).next((e=>{this._perVertexManipulatorDragAction(e),"end"===e.action&&(o=h(o))})),a.next(this._cancelDragOperation((()=>o=h(o))))}));return this._manipulatorHandles.add(o,a),this._manipulatorHandles.add([a.events.on("immediate-click",(e=>this._manipulatorClickCallback(e,r))),a.events.on("select-changed",(()=>{r.selectedIndex=++this._selectedIndex,this._updateMoveManipulationPosition()}))],a),this.emit("manipulators-changed"),r}_trackNumDragging(e){switch(e.action){case"start":this._numDragging++;break;case"end":this._numDragging--}return e}_cancelDragOperation(e){return()=>{switch(this._numDragging--,this.undo(),this.outputGeometry=s(this._editGeometryOperations)?this._editGeometryOperations.data.geometry:null,s(this.tool.snappingManager)&&this.tool.snappingManager.doneSnapping(),this._reshapeEventState){case fe.NONE:break;case fe.MOVING:this.emit("move",{type:"move",dx:0,dy:0,mover:this.graphic});break;case fe.RESHAPING:this.emit("reshape",{type:"reshape",mover:this.graphic})}e&&e(),this.destroyed||this._updateEventState(fe.NONE)}}_setTypeSpecificManipulatorSettings(e,t,i){switch(t.type){case"vertex":e.state=_e.Vertex,e.selectable=!0,e.cursor="move",e.collisionPriority=2,e.radius=T.reshapeManipulators.vertex.size/2+T.reshapeManipulators.vertex.collisionPadding,e.elevationInfo=i,e.interactive=s(this.graphic.geometry)&&"point"!==this.graphic.geometry.type;break;case"edge":e.state=_e.Edge,e.selectable=!1,e.cursor="copy",e.collisionPriority=-1,e.radius=T.reshapeManipulators.edge.size/2+T.reshapeManipulators.edge.collisionPadding,e.elevationInfo="on-the-ground"!==i.mode||I(this.graphic.symbol)?{mode:"absolute-height",offset:0}:i}}_watchAndUpdateGrabState(e,t){return e.events.on("grab-changed",(i=>{if("start"===i.action)t&&this._updateSelection(e),this._numGrabbing++;else if(this._numGrabbing--,this._updateEventState(fe.NONE),this.destroyed)return;this._moveManipulation.interactive=!this._numGrabbing,("touch"!==i.pointerType||this.enableEdgeOffset)&&(this._manipulatorInfos.forEach((e=>{e.manipulator.interactive=!this._numGrabbing&&s(this.graphic.geometry)&&"point"!==this.graphic.geometry.type,"edgeManipulator"in e&&(e.edgeManipulator.interactive=!this._numGrabbing)})),p(this._graphicMoveManipulation).forEachManipulator((e=>e.interactive=!this._numGrabbing)))}))}_clearSelection(){for(const e of this._manipulatorInfos)e.manipulator.grabbing||(e.manipulator.selected=!1)}_updateSelection(e){e.grabbing&&!e.selected&&e.selectable&&(this._clearSelection(),e.selected=!0,this.emit("manipulators-changed"))}_removeManipulator(e){e&&(this._manipulatorHandles.remove(e.manipulator),this._manipulatorInfos.splice(this._manipulatorInfos.indexOf(e),1),this.manipulators.remove(e.manipulator),this.emit("manipulators-changed"))}_getManipulatorInfoFromHandle(e){if(e)for(const t of this._manipulatorInfos)if(e===t.handle)return t;return null}_updateManipulatorPosition(e){if(!e)return;const t=p(this._editGeometryOperations);if("vertex"===e.handle.type)e.manipulator.location=t.data.coordinateHelper.vectorToDehydratedPoint(e.handle.pos,me),e.manipulator.grabbing&&s(this._vertexLaserLineVisualElement)&&(this._vertexLaserLineVisualElement.visualElement.intersectsWorldUpAtLocation=e.manipulator.renderLocation);else if("edge"===e.handle.type){const i=this._getManipulatorInfoFromHandle(e.handle.leftVertex).manipulator,a=this._getManipulatorInfoFromHandle(e.handle.rightVertex).manipulator;if(s(e.manipulator.elevationInfo)&&"on-the-ground"===e.manipulator.elevationInfo.mode){const n=i.location,r=a.location,o=.5,s=n.x+o*(r.x-n.x),l=n.y+o*(r.y-n.y),p=n.hasZ&&r.hasZ?0:void 0;e.manipulator.location=b(s,l,p,t.data.spatialReference)}else v(ge,i.renderLocation,a.renderLocation,.5),e.manipulator.renderLocation=ge}}_splitEdgeManipulator(e,t=.5){const i=p(this._editGeometryOperations),a=p(i.splitEdge(e.handle,t).createdVertex);e.locationUpdateHandle.remove(),e.locationUpdateHandle=void 0;const n=S(this.graphic);let r;this.enableEdgeOffset?(this._removeManipulator(e),r=this._createVertexOrEdgeManipulator(a)):(r=e,r.handle=a,r.type="vertex",this._setTypeSpecificManipulatorSettings(e.manipulator,e.handle,n)),a.leftEdge&&this._createVertexOrEdgeManipulator(a.leftEdge),a.rightEdge&&this._createVertexOrEdgeManipulator(a.rightEdge),this.outputGeometry=i.data.geometry,this._updateManipulatorPosition(r),this._updateSelection(e.manipulator);const o=this._updateEventState(fe.RESHAPING),s=i.data.coordinateHelper.vectorToArray(r.handle.pos),l=i.data.components.indexOf(a.component);return this.emit("vertex-add",{type:"vertex-add",vertices:[{coordinates:s,componentIndex:l,vertexIndex:p(a.index)}],added:s}),o&&this._updateEventState(fe.NONE),r}_updateMoveManipulationPosition(){const e=M(ge,0,0,0);let t=0,i=!1,a=null,n=null;for(const r of this._manipulatorInfos)ue(r)&&(r.manipulator.selected?(t++,y(e,e,r.manipulator.renderLocation),l(a)||r.selectedIndex>a.selectedIndex?(n=a,a=r):(l(n)||r.selectedIndex>n.selectedIndex)&&(n=r)):i=!0);if(0!==t){const e=this._graphicState.displaying;this._moveManipulation.xyManipulation.available=e,this._moveManipulation.xyAxisManipulation.available=e,this._moveManipulation.zManipulation.available=e&&this.enableZVertex&&j(this.graphic),this._moveManipulation.xyAxisManipulation.orthogonalAvailable=e&&1!==t}else{const e=this._graphicState.displaying&&this.enableMoveGraphic;this._moveManipulation.xyManipulation.available=e,this._moveManipulation.xyAxisManipulation.available=e,this._moveManipulation.xyAxisManipulation.orthogonalAvailable=e,this._moveManipulation.zManipulation.available=e&&this.enableZShape&&j(this.graphic)}if(0!==t){let e=0;if(s(a)){const t=a.handle.pos,i=s(n)?n.handle.pos:a.handle.leftEdge&&a.handle.leftEdge.leftVertex?a.handle.leftEdge.leftVertex.pos:null,r=l(n)&&a.handle.rightEdge&&a.handle.rightEdge.rightVertex?a.handle.rightEdge.rightVertex.pos:null;i&&r?this._moveManipulation.xyAxisManipulation.available=!1:i?e=de(i,t):r&&(e=de(t,r))}this._moveManipulation.angle=e,this._moveManipulation.radius=C}else this._moveManipulation.angleDeferred=()=>Z(p(this.graphic.geometry)),this._moveManipulation.radius=z.radiusForSymbol(this.graphic.symbol);0!==t&&i?(x(e,e,1/t),me.spatialReference=p(this._editGeometryOperations).data.spatialReference,me.hasZ=!0,this.view.renderCoordsHelper.fromRenderCoords(e,me),this._moveManipulation.elevationAlignedLocation=me):s(this._outlineVisualElement)&&!this._graphicState.isDraped&&s(this._outlineVisualElement.attachmentOrigin)?this._moveManipulation.elevationAlignedLocation=this._outlineVisualElement.attachmentOrigin:w(this.view,this._moveManipulation,this.graphic)}_removeVertices(e){const t=[],i=p(this._editGeometryOperations);for(const a of e)if("vertex"===a.handle.type&&i.canRemoveVertex()){t.push(a.handle),this._removeManipulator(a),this._removeManipulator(this._getManipulatorInfoFromHandle(a.handle.leftEdge)),this._removeManipulator(this._getManipulatorInfoFromHandle(a.handle.rightEdge));const e=p(i.removeVertices([a.handle]).removedVertices[0].createdEdge);e&&this._createVertexOrEdgeManipulator(e)}if(t.length>0){const e=t.map((e=>{const t=i.data.components.indexOf(e.component);return{coordinates:i.data.coordinateHelper.vectorToArray(e.pos),componentIndex:t,vertexIndex:p(e.index)}}));this.outputGeometry=i.data.geometry;const a=this._updateEventState(fe.RESHAPING);if(this.destroyed)return;if(this.emit("vertex-remove",{type:"vertex-remove",removed:e.map((e=>e.coordinates)),vertices:e}),this.destroyed)return;if(a&&(this._updateEventState(fe.NONE),this.destroyed))return;this._updateMoveManipulationPosition()}}_moveVertices(e,t,i=("start"===t.action?se.NEW_STEP:se.ACCUMULATE_STEPS)){const a=p(this._editGeometryOperations);a.moveVertices(e.map((e=>e.handle)),t.mapDeltaX,t.mapDeltaY,t.mapDeltaZ,i),this.outputGeometry=a.data.geometry;for(const n of e)this._updateManipulatorPosition(n)}_offsetEdge(e,t){if(l(t.operation))return;const i=p(this._editGeometryOperations),a=t.operation.clone();a.distance=t.operation.signedDistanceToPoint(t.mapEnd),i.updateVertices([e.handle.leftVertex,e.handle.rightVertex],a),this.outputGeometry=i.data.geometry,this._updateManipulatorPosition(this._getManipulatorInfoFromHandle(e.handle.leftVertex)),this._updateManipulatorPosition(this._getManipulatorInfoFromHandle(e.handle.rightVertex))}_manipulatorClickCallback(e,t){e.shiftKey||this._clearSelection(),"vertex"===t.handle.type&&(t.manipulator.selected=!t.manipulator.selected),"vertex"===t.handle.type&&e.button===$.Right&&this._removeVertices([t]),ce(t)&&e.button===$.Left&&this._splitEdgeManipulator(t),e.stopPropagation()}};function de(e,t){return Math.atan2(t[1]-e[1],t[0]-e[0])+Math.PI/2}function ue(e){return"vertex"===e.handle.type}function ce(e){return"edge"===e.handle.type}e([c({constructOnly:!0})],he.prototype,"tool",void 0),e([c()],he.prototype,"inputGeometry",null),e([c()],he.prototype,"outputGeometry",void 0),e([c({readOnly:!0})],he.prototype,"updating",null),he=e([m("esri.views.3d.interactive.editingTools.reshapeGraphic.ReshapeOperation")],he);const me=b(0,0,null,null),ge=E();var _e,fe,ve;!function(e){e.Vertex=re.Custom1,e.Edge=re.Custom2}(_e||(_e={})),function(e){e[e.NONE=0]="NONE",e[e.MOVING=1]="MOVING",e[e.RESHAPING=2]="RESHAPING"}(fe||(fe={})),function(e){e[e.ALL=0]="ALL",e[e.SELECTED_OR_ALL=1]="SELECTED_OR_ALL"}(ve||(ve={}));export{he as ReshapeOperation};
|
|
@@ -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{isNone as e}from"../../../../../core/maybe.js";import r from"../../../../../geometry/Circle.js";import{getGraphicEffectiveElevationMode as t,hasGraphicFeatureExpressionInfo as o}from"../../../../../support/elevationInfoUtils.js";import{SupportedGraphicResult as n}from"../isSupportedGraphicUtils.js";function l(e){return u(e).result}function m(e){return u(e).geometry}function u(l){
|
|
5
|
+
import{isNone as e}from"../../../../../core/maybe.js";import r from"../../../../../geometry/Circle.js";import{getGraphicEffectiveElevationMode as t,hasGraphicFeatureExpressionInfo as o}from"../../../../../support/elevationInfoUtils.js";import{SupportedGraphicResult as n}from"../isSupportedGraphicUtils.js";function l(e){return u(e).result}function m(e){return u(e).geometry}function u(l){if("graphics"!==l.layer?.type)return{result:n.GRAPHICS_LAYER_MISSING,geometry:null};if(e(l.geometry))return{result:n.GEOMETRY_MISSING,geometry:null};return"on-the-ground"!==t(l)&&o(l)?{result:n.ELEVATION_MODE_UNSUPPORTED,geometry:null}:"point"!==l.geometry.type&&"polyline"!==l.geometry.type&&("polygon"!==l.geometry.type||l.geometry instanceof r)?{result:n.GEOMETRY_TYPE_UNSUPPORTED,geometry:null}:{result:n.SUPPORTED,geometry:l.geometry}}export{m as geometryOfSupportedGraphic,l as isSupportedGraphic};
|
|
@@ -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{cyclicalPI as t}from"../../../../../core/Cyclical.js";import e from"../../../../../core/Evented.js";import a from"../../../../../core/Handles.js";import{clamp as i,rad2deg as r}from"../../../../../core/mathUtils.js";import{isSome as o,destroyMaybe as s}from"../../../../../core/maybe.js";import{watch as n,initial as l}from"../../../../../core/reactiveUtils.js";import{addFrameTask as c}from"../../../../../core/scheduling.js";import{createScreenPointArray as h}from"../../../../../core/screenUtils.js";import{d,u as g,m as p,h as u,e as m}from"../../../../../chunks/mat4.js";import{c as f}from"../../../../../chunks/mat4f64.js";import{s as M,b as D,l as S,d as _,f as v,a as y}from"../../../../../chunks/vec3.js";import{a as b,f as R}from"../../../../../chunks/vec3f64.js";import{b as k}from"../../../../../chunks/vec4f64.js";import{fromPositionAndNormal as j,create as A,normal as I}from"../../../../../geometry/support/plane.js";import{wrap as T,distance2 as E}from"../../../../../geometry/support/ray.js";import{sv3d as w,sm4d as C}from"../../../../../geometry/support/vectorStacks.js";import{getGraphicEffectiveElevationInfo as F}from"../../../../../support/elevationInfoUtils.js";import{Manipulator3D as P}from"../../Manipulator3D.js";import{calculateInputRotationTransform as O}from"../../manipulatorUtils.js";import{screenToRenderPlane as U}from"../dragEventPipeline3D.js";import{ManipulatorType as L}from"../ManipulatorType.js";import{ROTATE_INDICATOR_DIRECTION_BUFFER as x,SCALE_INDICATOR_DIRECTION_BUFFER as N,RING_HEIGHT as G,ROTATE_INDICATOR_ARROW_PLACEMENT_PERCENTAGE as H,ROTATE_INDICATOR_ARROW_TIP_LENGTH as B,ROTATE_INDICATOR_ARROW_TIP_RADIUS as q,RING_THICKNESS as z,HANDLE_COLOR as J,DRAG_THRESHOLD_PX as K,RING_INDICATOR_DELAY_MS as Q,RING_RADIUS as V,INNER_INDICATOR_RADIUS as W,INDICATOR_THICKNESS as X,OUTER_INDICATOR_RADIUS as Y,SCALE_INDICATOR_OFFSET1 as Z,SCALE_INDICATOR_OFFSET2 as $,RING_RESET_ANIMATION_SPEED_FACTOR as tt,GEOMETRY_SEGMENTS as et,ROTATE_INDICATOR_ARC_LENGTH as at,SCALE_INDICATOR_ARC_LENGTH as it}from"../manipulations/config.js";import{CullFaceOptions as rt}from"../../../webgl-engine/lib/basicInterfaces.js";import ot from"../../../webgl-engine/lib/GeometryUtil.js";import{RenderOccludedFlag as st}from"../../../webgl-engine/lib/Material.js";import{ColorMaterial as nt}from"../../../webgl-engine/materials/ColorMaterial.js";import{createManipulatorDragEventPipeline as lt}from"../../../../interactive/dragEventPipeline.js";import{ManipulatorStateCustomFlags as ct,ManipulatorStateFlags as ht}from"../../../../interactive/interfaces.js";var dt,gt;!function(t){t.ScaleIn=ct.Custom2,t.ScaleOut=ct.Custom3,t.RotateLeft=ct.Custom4,t.RotateRight=ct.Custom5,t.Unlocked=ct.Custom7,t.DelayedFocused=ct.Custom8,t.TouchInput=ct.Custom12}(dt||(dt={}));class pt{constructor(t){this.mode=null,this._handles=new a,this._scaleRotateDragData=null,this._activeAnimation=null,this.events=new e,this.getFocused=()=>this.ringManipulator.focused,this.getScale=()=>o(this._scaleRotateDragData)&&"scale"===this._scaleRotateDragData.mode?this.adapter.scale:1,this.tool=t.tool,this.mode=t.mode,this.adapter=t.adapter,this._createManipulator(),this._updateDragState(),this._updateManipulatorTransform()}get angle(){return this.adapter.angle}get scale(){return this.adapter.scale}set location(t){this.ringManipulator.location=t}set elevationAlignedLocation(t){this.ringManipulator.elevationAlignedLocation=t}get grabbing(){return this.ringManipulator.grabbing}set interactive(t){this.ringManipulator.interactive=t}destroy(){o(this._activeAnimation)&&(this._activeAnimation.frameTask.remove(),this._activeAnimation=null),this._handles=s(this._handles),this.tool.manipulators.remove(this.ringManipulator),this.ringManipulator=null}startAnimation(t){this.cancelActiveAnimation(),t.start();const e=c({update:({deltaTime:e})=>{t.update(e)&&this.cancelActiveAnimation()}});this._activeAnimation={...t,frameTask:e}}cancelActiveAnimation(){o(this._activeAnimation)&&(this._activeAnimation.frameTask.remove(),this._activeAnimation=s(this._activeAnimation))}forEachManipulator(t){t(this.ringManipulator,L.SCALE_ROTATE)}_createManipulator(){const e=this._createRingManipulator();this.ringManipulator=e,this.tool.manipulators.add(e);const a=this.tool.graphicState.graphic,s=lt(e,((e,s,n)=>{this._scaleRotateDragData=null,this.adapter.restart();const l={mode:"none",origin:b(e.renderLocation),initialAngle:this.adapter.angle,angle:0,angleDir:0,scaleDir:0};this._scaleRotateDragData=l,this._updateDragState();const c=w.get();this.tool.view.renderCoordsHelper.worldUpAtPosition(e.renderLocation,c),s.next(U(this.tool.view,j(e.renderLocation,c,A()))).next((e=>{const s=I(e.plane),n=O(e.renderStart,e.renderEnd,l.origin,s),c=t.shortestSignedDiff(l.angle,n);l.angleDir=i(l.angleDir+c,-x,x),l.angle=n;const h=ut(l,e),d=h-this.adapter.scale;if(l.scaleDir=i(l.scaleDir+d,-N,N),this._onScaleChanged(),"none"===l.mode){const t=this.mode||mt(e,e.plane,l.origin,this.tool.view.state.camera);if(o(t)){switch(t){case"rotate":this.tool.emit("graphic-rotate-start",{graphic:a,angle:0}),this.tool.emit("record-undo",{record:this.adapter.createUndoRecord()});break;case"scale":this.tool.emit("graphic-scale-start",{graphic:a,xScale:1,yScale:1}),this.tool.emit("record-undo",{record:this.adapter.createUndoRecord()})}l.mode=t}}switch(l.mode){case"rotate":this.adapter.angle=l.initialAngle+n;break;case"scale":this.adapter.scale=h,this._onScaleChanged()}switch(this._updateDragState(),this._updateManipulatorTransform(),e.action){case"start":case"update":switch(l.mode){case"rotate":this.tool.emit("graphic-rotate",{graphic:a,angle:r(l.angle)});break;case"scale":this.tool.emit("graphic-scale",{graphic:a,xScale:h,yScale:h})}break;case"end":switch(l.mode){case"rotate":this.tool.emit("graphic-rotate-stop",{graphic:a,angle:r(l.angle)});break;case"scale":this.tool.emit("graphic-scale-stop",{graphic:a,xScale:h,yScale:h})}}"end"===e.action&&(this.startAnimation(Mt(this,(()=>this._onScaleChanged()))),this._scaleRotateDragData=null,this._updateDragState())})),n.next((()=>{if(this.adapter.cancel(),o(this._scaleRotateDragData)){switch(this._scaleRotateDragData.mode){case"none":break;case"rotate":this.tool.emit("graphic-rotate-stop",{graphic:a,angle:0});break;case"scale":this.tool.emit("graphic-scale-stop",{graphic:a,xScale:1,yScale:1})}this.startAnimation(Mt(this,(()=>this._onScaleChanged()))),this._scaleRotateDragData=null,this._updateDragState()}}))}));this._handles.add([s,e.events.on("focus-changed",(t=>{"focus"===t.action?this.startAnimation(Dt(this,(()=>this._updateDelayedFocusedState()))):this._updateDelayedFocusedState()})),e.events.on("immediate-click",(t=>{t.stopPropagation()})),n((()=>{var t;return null==(t=this.tool.graphicState)?void 0:t.displaying}),(t=>this.ringManipulator.available=t),l)])}_onScaleChanged(){this.events.emit("scale-changed"),this._updateManipulatorTransform()}_updateDelayedFocusedState(){this.ringManipulator.updateStateEnabled(dt.DelayedFocused,this.getFocused())}_updateDragState(){if(this.ringManipulator.updateStateEnabled(dt.Unlocked,!(o(this._scaleRotateDragData)&&"none"!==this._scaleRotateDragData.mode)),o(this._scaleRotateDragData))switch(this._scaleRotateDragData.mode){case"rotate":this.ringManipulator.updateStateEnabled(dt.ScaleIn|dt.ScaleOut,!1),this.ringManipulator.updateStateEnabled(dt.RotateLeft,this._scaleRotateDragData.angleDir<0),this.ringManipulator.updateStateEnabled(dt.RotateRight,this._scaleRotateDragData.angleDir>=0);break;case"scale":this.ringManipulator.updateStateEnabled(dt.RotateLeft|dt.RotateRight,!1),this.ringManipulator.updateStateEnabled(dt.ScaleIn,this._scaleRotateDragData.scaleDir<0),this.ringManipulator.updateStateEnabled(dt.ScaleOut,this._scaleRotateDragData.scaleDir>=0)}else this.ringManipulator.updateStateEnabled(dt.ScaleIn|dt.ScaleOut|dt.RotateLeft|dt.RotateRight,!1)}_updateManipulatorTransform(){const t=d(C.get(),this.adapter.angle,R(0,0,1)),e=this.getScale(),a=g(C.get(),M(w.get(),e,e,e));this.ringManipulator.modelTransform=p(C.get(),a,t)}_createRingManipulator(){const t=(t,e,a)=>{const i=[],r=Math.ceil(et*(e-t)/(2*Math.PI));for(let o=0;o<r+1;o++){const s=t+o*(e-t)/r;i.push(R(a*Math.cos(s),a*Math.sin(s),0))}return i},e=e=>t(0,2*Math.PI,e),a=t=>[[-t/2,0],[t/2,0],[t/2,G/2],[-t/2,G/2]],i=(t,e)=>ot.createPathExtrusionGeometry(a(e),t,[],[],!1),r=e(V),o=i(r,z),s={left:[],right:[]},n=[];for(let R=0;R<2;R++){const e=R*Math.PI-Math.PI/4,a=Math.PI/2-at,r=e+a,o=e+Math.PI/2-a,l=t(r,o,W),c=i(l,X);n.push(l),n.push(t(r,o,Y-z/2)),s.left.push(c),s.right.push(c);for(let t=0;t<2;t++){const e=0===t,a=f();if(e){u(a,a,[1,-1,1]),m(a,a,-r,[0,0,1]);const t=Math.round(H*(l.length-1));a[12]=l[t][0],a[13]=l[t][1],a[14]=l[t][2]}else{m(a,a,o,[0,0,1]);const t=Math.round((1-H)*(l.length-1));a[12]=l[t][0],a[13]=l[t][1],a[14]=l[t][2]}const i=ot.createExtrudedTriangle(B,0,q,G);ot.transformInPlace(i,a),(e?s.left:s.right).push(i)}}const l=[];for(let u=0;u<2;u++){const e=u*Math.PI-Math.PI/4,a=Math.PI/2-it,r=e+a,o=e+Math.PI/2-a,s=t(r,o,Y);l.push(i(s,X))}const c=e(V+Z),h=e(V+$),d=i(c,X),g=i(h,X),p=e(V-Z),M=e(V-$),D=i(p,X),S=i(M,X),_=this._createMaterial(),v=this._createMaterial(.66),y=this._createMaterial(.5),b=this._createMaterial(.33);let k=[{geometry:o,material:_,stateMask:dt.DelayedFocused},{geometry:o,material:y,stateMask:ht.None}];this.mode&&"scale"!==this.mode||(k=k.concat([{geometry:l,material:_,stateMask:dt.DelayedFocused|dt.Unlocked},{geometry:d,material:v,stateMask:dt.DelayedFocused|dt.ScaleIn},{geometry:g,material:b,stateMask:dt.DelayedFocused|dt.ScaleIn},{geometry:D,material:v,stateMask:dt.DelayedFocused|dt.ScaleOut},{geometry:S,material:b,stateMask:dt.DelayedFocused|dt.ScaleOut}])),this.mode&&"rotate"!==this.mode||(k=k.concat([{geometry:s.right,material:_,stateMask:dt.DelayedFocused|dt.Unlocked},{geometry:s.left,material:_,stateMask:dt.DelayedFocused|dt.RotateLeft},{geometry:s.right,material:_,stateMask:dt.DelayedFocused|dt.RotateRight}]));const j=[r,...n];return new P({view:this.tool.view,renderObjects:k,autoScaleRenderObjects:!1,worldOriented:!0,radius:z,focusMultiplier:1,touchMultiplier:1.5,elevationInfo:F(this.tool.graphicState.graphic),collisionType:{type:"ribbon",paths:j,direction:R(0,0,1)}})}_createMaterial(t=1){const e=k([...J,t]);return new nt({color:e,transparent:1!==t,cullFace:rt.Back,renderOccluded:st.Transparent})}get test(){return{ringManipulator:this.ringManipulator}}}function ut(t,e){const a=D(w.get(),e.renderStart,t.origin),i=D(w.get(),e.renderEnd,t.origin),r=S(a),o=S(i);return 0===r?0:o/r}function mt(t,e,a,i){const{renderStart:r,renderEnd:o}=t,s=ft(r,i,w.get()),n=ft(o,i,w.get());if(_(s,n)<K*K)return null;const l=D(w.get(),r,a),c=v(w.get(),l,I(e)),h=r,d=y(w.get(),h,c),g=ft(a,i,w.get()),p=s,u=ft(d,i,w.get()),m=D(w.get(),u,p),f=D(w.get(),s,g),M=T(p,m),S=T(g,f);return E(M,n)<E(S,n)?"rotate":"scale"}function ft(t,e,a){return e.projectToScreen(t,St),M(a,St[0],St[1],0)}function Mt(t,e){let a=null,i=1;const r=()=>i;return{start:()=>{i=t.getScale(),a=t.getScale,t.getScale=r,e()},update:t=>(i+=((i+1)/2-i)*Math.min(t*tt,1),e(),Math.abs(i-1)<.01?gt.STOP:gt.CONTINUE),destroy:()=>{t.getScale=a,e()}}}function Dt(t,e){let a=0,i=null;const r=()=>!1;return{start:()=>{i=t.getFocused,t.getFocused=r,a=0,e()},update:t=>(a+=t,!i()||a>Q?gt.STOP:gt.CONTINUE),destroy:()=>{t.getFocused=i,e()}}}!function(t){t[t.CONTINUE=0]="CONTINUE",t[t.STOP=1]="STOP"}(gt||(gt={}));const St=h();export{pt as GraphicScaleRotateTransform};
|
|
5
|
+
import{cyclicalPI as t}from"../../../../../core/Cyclical.js";import e from"../../../../../core/Evented.js";import a from"../../../../../core/Handles.js";import{clamp as i,rad2deg as r}from"../../../../../core/mathUtils.js";import{isSome as o,destroyMaybe as s}from"../../../../../core/maybe.js";import{watch as n,initial as l}from"../../../../../core/reactiveUtils.js";import{addFrameTask as c}from"../../../../../core/scheduling.js";import{createScreenPointArray as h}from"../../../../../core/screenUtils.js";import{d as g,u as d,m as p,h as u,e as m}from"../../../../../chunks/mat4.js";import{c as f}from"../../../../../chunks/mat4f64.js";import{s as M,b as D,l as S,d as _,f as y,a as v}from"../../../../../chunks/vec3.js";import{a as b,f as R}from"../../../../../chunks/vec3f64.js";import{b as k}from"../../../../../chunks/vec4f64.js";import{fromPositionAndNormal as j,create as A,normal as I}from"../../../../../geometry/support/plane.js";import{wrap as T,distance2 as E}from"../../../../../geometry/support/ray.js";import{sv3d as w,sm4d as C}from"../../../../../geometry/support/vectorStacks.js";import{getGraphicEffectiveElevationInfo as F}from"../../../../../support/elevationInfoUtils.js";import{Manipulator3D as P}from"../../Manipulator3D.js";import{calculateInputRotationTransform as O}from"../../manipulatorUtils.js";import{screenToRenderPlane as U}from"../dragEventPipeline3D.js";import{ManipulatorType as L}from"../ManipulatorType.js";import{ROTATE_INDICATOR_DIRECTION_BUFFER as x,SCALE_INDICATOR_DIRECTION_BUFFER as N,RING_HEIGHT as G,ROTATE_INDICATOR_ARROW_PLACEMENT_PERCENTAGE as H,ROTATE_INDICATOR_ARROW_TIP_LENGTH as B,ROTATE_INDICATOR_ARROW_TIP_RADIUS as q,RING_THICKNESS as z,HANDLE_COLOR as J,DRAG_THRESHOLD_PX as K,RING_INDICATOR_DELAY_MS as Q,RING_RADIUS as V,INNER_INDICATOR_RADIUS as W,INDICATOR_THICKNESS as X,OUTER_INDICATOR_RADIUS as Y,SCALE_INDICATOR_OFFSET1 as Z,SCALE_INDICATOR_OFFSET2 as $,RING_RESET_ANIMATION_SPEED_FACTOR as tt,GEOMETRY_SEGMENTS as et,ROTATE_INDICATOR_ARC_LENGTH as at,SCALE_INDICATOR_ARC_LENGTH as it}from"../manipulations/config.js";import{CullFaceOptions as rt}from"../../../webgl-engine/lib/basicInterfaces.js";import ot from"../../../webgl-engine/lib/GeometryUtil.js";import{RenderOccludedFlag as st}from"../../../webgl-engine/lib/Material.js";import{ColorMaterial as nt}from"../../../webgl-engine/materials/ColorMaterial.js";import{createManipulatorDragEventPipeline as lt}from"../../../../interactive/dragEventPipeline.js";import{ManipulatorStateCustomFlags as ct,ManipulatorStateFlags as ht}from"../../../../interactive/interfaces.js";var gt,dt;!function(t){t.ScaleIn=ct.Custom2,t.ScaleOut=ct.Custom3,t.RotateLeft=ct.Custom4,t.RotateRight=ct.Custom5,t.Unlocked=ct.Custom7,t.DelayedFocused=ct.Custom8,t.TouchInput=ct.Custom12}(gt||(gt={}));class pt{constructor(t){this.mode=null,this._handles=new a,this._scaleRotateDragData=null,this._activeAnimation=null,this.events=new e,this.getFocused=()=>this.ringManipulator.focused,this.getScale=()=>o(this._scaleRotateDragData)&&"scale"===this._scaleRotateDragData.mode?this.adapter.scale:1,this.tool=t.tool,this.mode=t.mode,this.adapter=t.adapter,this._createManipulator(),this._updateDragState(),this._updateManipulatorTransform()}get angle(){return this.adapter.angle}get scale(){return this.adapter.scale}set location(t){this.ringManipulator.location=t}set elevationAlignedLocation(t){this.ringManipulator.elevationAlignedLocation=t}get grabbing(){return this.ringManipulator.grabbing}set interactive(t){this.ringManipulator.interactive=t}destroy(){o(this._activeAnimation)&&(this._activeAnimation.frameTask.remove(),this._activeAnimation=null),this._handles=s(this._handles),this.tool.manipulators.remove(this.ringManipulator),this.ringManipulator=null}startAnimation(t){this.cancelActiveAnimation(),t.start();const e=c({update:({deltaTime:e})=>{t.update(e)&&this.cancelActiveAnimation()}});this._activeAnimation={...t,frameTask:e}}cancelActiveAnimation(){o(this._activeAnimation)&&(this._activeAnimation.frameTask.remove(),this._activeAnimation=s(this._activeAnimation))}forEachManipulator(t){t(this.ringManipulator,L.SCALE_ROTATE)}_createManipulator(){const e=this._createRingManipulator();this.ringManipulator=e,this.tool.manipulators.add(e);const a=this.tool.graphicState.graphic,s=lt(e,((e,s,n)=>{this._scaleRotateDragData=null,this.adapter.restart();const l={mode:"none",origin:b(e.renderLocation),initialAngle:this.adapter.angle,angle:0,angleDir:0,scaleDir:0};this._scaleRotateDragData=l,this._updateDragState();const c=w.get();this.tool.view.renderCoordsHelper.worldUpAtPosition(e.renderLocation,c),s.next(U(this.tool.view,j(e.renderLocation,c,A()))).next((e=>{const s=I(e.plane),n=O(e.renderStart,e.renderEnd,l.origin,s),c=t.shortestSignedDiff(l.angle,n);l.angleDir=i(l.angleDir+c,-x,x),l.angle=n;const h=ut(l,e),g=h-this.adapter.scale;if(l.scaleDir=i(l.scaleDir+g,-N,N),this._onScaleChanged(),"none"===l.mode){const t=this.mode||mt(e,e.plane,l.origin,this.tool.view.state.camera);if(o(t)){switch(t){case"rotate":this.tool.emit("graphic-rotate-start",{graphic:a,angle:0}),this.tool.emit("record-undo",{record:this.adapter.createUndoRecord()});break;case"scale":this.tool.emit("graphic-scale-start",{graphic:a,xScale:1,yScale:1}),this.tool.emit("record-undo",{record:this.adapter.createUndoRecord()})}l.mode=t}}switch(l.mode){case"rotate":this.adapter.angle=l.initialAngle+n;break;case"scale":this.adapter.scale=h,this._onScaleChanged()}switch(this._updateDragState(),this._updateManipulatorTransform(),e.action){case"start":case"update":switch(l.mode){case"rotate":this.tool.emit("graphic-rotate",{graphic:a,angle:r(l.angle)});break;case"scale":this.tool.emit("graphic-scale",{graphic:a,xScale:h,yScale:h})}break;case"end":switch(l.mode){case"rotate":this.tool.emit("graphic-rotate-stop",{graphic:a,angle:r(l.angle)});break;case"scale":this.tool.emit("graphic-scale-stop",{graphic:a,xScale:h,yScale:h})}}"end"===e.action&&(this.startAnimation(Mt(this,(()=>this._onScaleChanged()))),this._scaleRotateDragData=null,this._updateDragState())})),n.next((()=>{if(this.adapter.cancel(),o(this._scaleRotateDragData)){switch(this._scaleRotateDragData.mode){case"none":break;case"rotate":this.tool.emit("graphic-rotate-stop",{graphic:a,angle:0});break;case"scale":this.tool.emit("graphic-scale-stop",{graphic:a,xScale:1,yScale:1})}this.startAnimation(Mt(this,(()=>this._onScaleChanged()))),this._scaleRotateDragData=null,this._updateDragState()}}))}));this._handles.add([s,e.events.on("focus-changed",(t=>{"focus"===t.action?this.startAnimation(Dt(this,(()=>this._updateDelayedFocusedState()))):this._updateDelayedFocusedState()})),e.events.on("immediate-click",(t=>{t.stopPropagation()})),n((()=>this.tool.graphicState?.displaying),(t=>this.ringManipulator.available=t),l)])}_onScaleChanged(){this.events.emit("scale-changed"),this._updateManipulatorTransform()}_updateDelayedFocusedState(){this.ringManipulator.updateStateEnabled(gt.DelayedFocused,this.getFocused())}_updateDragState(){if(this.ringManipulator.updateStateEnabled(gt.Unlocked,!(o(this._scaleRotateDragData)&&"none"!==this._scaleRotateDragData.mode)),o(this._scaleRotateDragData))switch(this._scaleRotateDragData.mode){case"rotate":this.ringManipulator.updateStateEnabled(gt.ScaleIn|gt.ScaleOut,!1),this.ringManipulator.updateStateEnabled(gt.RotateLeft,this._scaleRotateDragData.angleDir<0),this.ringManipulator.updateStateEnabled(gt.RotateRight,this._scaleRotateDragData.angleDir>=0);break;case"scale":this.ringManipulator.updateStateEnabled(gt.RotateLeft|gt.RotateRight,!1),this.ringManipulator.updateStateEnabled(gt.ScaleIn,this._scaleRotateDragData.scaleDir<0),this.ringManipulator.updateStateEnabled(gt.ScaleOut,this._scaleRotateDragData.scaleDir>=0)}else this.ringManipulator.updateStateEnabled(gt.ScaleIn|gt.ScaleOut|gt.RotateLeft|gt.RotateRight,!1)}_updateManipulatorTransform(){const t=g(C.get(),this.adapter.angle,R(0,0,1)),e=this.getScale(),a=d(C.get(),M(w.get(),e,e,e));this.ringManipulator.modelTransform=p(C.get(),a,t)}_createRingManipulator(){const t=(t,e,a)=>{const i=[],r=Math.ceil(et*(e-t)/(2*Math.PI));for(let o=0;o<r+1;o++){const s=t+o*(e-t)/r;i.push(R(a*Math.cos(s),a*Math.sin(s),0))}return i},e=e=>t(0,2*Math.PI,e),a=t=>[[-t/2,0],[t/2,0],[t/2,G/2],[-t/2,G/2]],i=(t,e)=>ot.createPathExtrusionGeometry(a(e),t,[],[],!1),r=e(V),o=i(r,z),s={left:[],right:[]},n=[];for(let R=0;R<2;R++){const e=R*Math.PI-Math.PI/4,a=Math.PI/2-at,r=e+a,o=e+Math.PI/2-a,l=t(r,o,W),c=i(l,X);n.push(l),n.push(t(r,o,Y-z/2)),s.left.push(c),s.right.push(c);for(let t=0;t<2;t++){const e=0===t,a=f();if(e){u(a,a,[1,-1,1]),m(a,a,-r,[0,0,1]);const t=Math.round(H*(l.length-1));a[12]=l[t][0],a[13]=l[t][1],a[14]=l[t][2]}else{m(a,a,o,[0,0,1]);const t=Math.round((1-H)*(l.length-1));a[12]=l[t][0],a[13]=l[t][1],a[14]=l[t][2]}const i=ot.createExtrudedTriangle(B,0,q,G);ot.transformInPlace(i,a),(e?s.left:s.right).push(i)}}const l=[];for(let u=0;u<2;u++){const e=u*Math.PI-Math.PI/4,a=Math.PI/2-it,r=e+a,o=e+Math.PI/2-a,s=t(r,o,Y);l.push(i(s,X))}const c=e(V+Z),h=e(V+$),g=i(c,X),d=i(h,X),p=e(V-Z),M=e(V-$),D=i(p,X),S=i(M,X),_=this._createMaterial(),y=this._createMaterial(.66),v=this._createMaterial(.5),b=this._createMaterial(.33);let k=[{geometry:o,material:_,stateMask:gt.DelayedFocused},{geometry:o,material:v,stateMask:ht.None}];this.mode&&"scale"!==this.mode||(k=k.concat([{geometry:l,material:_,stateMask:gt.DelayedFocused|gt.Unlocked},{geometry:g,material:y,stateMask:gt.DelayedFocused|gt.ScaleIn},{geometry:d,material:b,stateMask:gt.DelayedFocused|gt.ScaleIn},{geometry:D,material:y,stateMask:gt.DelayedFocused|gt.ScaleOut},{geometry:S,material:b,stateMask:gt.DelayedFocused|gt.ScaleOut}])),this.mode&&"rotate"!==this.mode||(k=k.concat([{geometry:s.right,material:_,stateMask:gt.DelayedFocused|gt.Unlocked},{geometry:s.left,material:_,stateMask:gt.DelayedFocused|gt.RotateLeft},{geometry:s.right,material:_,stateMask:gt.DelayedFocused|gt.RotateRight}]));const j=[r,...n];return new P({view:this.tool.view,renderObjects:k,autoScaleRenderObjects:!1,worldOriented:!0,radius:z,focusMultiplier:1,touchMultiplier:1.5,elevationInfo:F(this.tool.graphicState.graphic),collisionType:{type:"ribbon",paths:j,direction:R(0,0,1)}})}_createMaterial(t=1){const e=k([...J,t]);return new nt({color:e,transparent:1!==t,cullFace:rt.Back,renderOccluded:st.Transparent})}get test(){return{ringManipulator:this.ringManipulator}}}function ut(t,e){const a=D(w.get(),e.renderStart,t.origin),i=D(w.get(),e.renderEnd,t.origin),r=S(a),o=S(i);return 0===r?0:o/r}function mt(t,e,a,i){const{renderStart:r,renderEnd:o}=t,s=ft(r,i,w.get()),n=ft(o,i,w.get());if(_(s,n)<K*K)return null;const l=D(w.get(),r,a),c=y(w.get(),l,I(e)),h=r,g=v(w.get(),h,c),d=ft(a,i,w.get()),p=s,u=ft(g,i,w.get()),m=D(w.get(),u,p),f=D(w.get(),s,d),M=T(p,m),S=T(d,f);return E(M,n)<E(S,n)?"rotate":"scale"}function ft(t,e,a){return e.projectToScreen(t,St),M(a,St[0],St[1],0)}function Mt(t,e){let a=null,i=1;const r=()=>i;return{start:()=>{i=t.getScale(),a=t.getScale,t.getScale=r,e()},update:t=>(i+=((i+1)/2-i)*Math.min(t*tt,1),e(),Math.abs(i-1)<.01?dt.STOP:dt.CONTINUE),destroy:()=>{t.getScale=a,e()}}}function Dt(t,e){let a=0,i=null;const r=()=>!1;return{start:()=>{i=t.getFocused,t.getFocused=r,a=0,e()},update:t=>(a+=t,!i()||a>Q?dt.STOP:dt.CONTINUE),destroy:()=>{t.getFocused=i,e()}}}!function(t){t[t.CONTINUE=0]="CONTINUE",t[t.STOP=1]="STOP"}(dt||(dt={}));const St=h();export{pt as GraphicScaleRotateTransform};
|
|
@@ -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"../../../../../core/has.js";import{isNone as e,isSome as t}from"../../../../../core/maybe.js";import{getGraphicEffectiveElevationMode as o,hasGraphicFeatureExpressionInfo as r}from"../../../../../support/elevationInfoUtils.js";import{SupportedGraphicResult as s}from"../isSupportedGraphicUtils.js";function i(i){
|
|
5
|
+
import"../../../../../core/has.js";import{isNone as e,isSome as t}from"../../../../../core/maybe.js";import{getGraphicEffectiveElevationMode as o,hasGraphicFeatureExpressionInfo as r}from"../../../../../support/elevationInfoUtils.js";import{SupportedGraphicResult as s}from"../isSupportedGraphicUtils.js";function i(i){if("graphics"!==i.layer?.type)return s.GRAPHICS_LAYER_MISSING;if(e(i.geometry))return s.GEOMETRY_MISSING;switch(i.geometry.type){case"point":break;case"polygon":case"polyline":case"multipoint":case"extent":case"mesh":return s.SUPPORTED;default:return s.GEOMETRY_TYPE_UNSUPPORTED}const n=t(i.symbol)&&"point-3d"===i.symbol.type&&i.symbol.symbolLayers;if(!(n&&n.length>0&&n.some((e=>"object"===e.type))))return s.SYMBOL_TYPE_UNSUPPORTED;return"on-the-ground"!==o(i)&&r(i)?s.ELEVATION_MODE_UNSUPPORTED:s.SUPPORTED}export{i as isSupportedGraphic};
|
|
@@ -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 i from"../../../../../core/Handles.js";import{destroyMaybe as e,isSome as t,isNone as s,unwrap as a}from"../../../../../core/maybe.js";import{watch as l,sync as n}from"../../../../../core/reactiveUtils.js";import{screenPointObjectToArray as r}from"../../../../../core/screenUtils.js";import{c as o}from"../../../../../chunks/vec3f64.js";import{createSphereManipulator as h}from"../../manipulatorUtils.js";import{PickResult as _}from"../support/PickRequest.js";import{copyParameter as d,resizeArray as u}from"../support/viewUtils.js";import{LaserlineVisualElement as p}from"../../visualElements/LaserlineVisualElement.js";import c from"../../../webgl-engine/lib/GeometryUtil.js";import{newIntersector as y}from"../../../webgl-engine/lib/Intersector.js";import{StoreResults as m}from"../../../webgl-engine/lib/IntersectorInterfaces.js";import{ManipulatorCollection as w}from"../../../../interactive/ManipulatorCollection.js";const g={laserLineGlowColor:[1,.5,0],laserLineGlowWidth:8,laserLineGlowFalloff:8,laserLineInnerColor:[1,1,1],laserLineInnerWidth:1,laserLineGlobalAlpha:.75,laserLineEnabled:!0,handleColor:[1,.5,0],handleOpacity:.5,handleRadius:5,handleRadiusHovered:10,handleRadiusMouse:10,handleRadiusTouch:25,pathLineColor:[1,.5,0,1],pathLineWidth:3,intersectingLineColor:[1,.2,0,1],perimeterLineColor:[1,.5,0,1],perimeterLineWidth:2,projectionLineColor:[1,.5,0,1],projectionLineWidth:2,projectionLineStippleSize:5,areaColor1:[1,.5,0,.5],areaColor2:[1,1,1,.5],fillColor:[1,.5,0,.5],lineSubdivisions:64,labelDistance:25};class v{constructor(i){this.vertexManipulators=[],this._analysisView=null,this._destroyed=!1,this._isManipulatorsOwner=!0,this._visible=!0,this._laserLine=null,this._cursorManipulator=null,this._listenerHandles=null,this._tempHandlePosition=o(),this._analysisView=i.analysisView,this._toolState=i.toolState,null!=i.manipulators?(this._manipulators=i.manipulators,this._isManipulatorsOwner=!1):this._manipulators=new w,this._view=i.view,this._style=d(g,i.style),this._intersector=y(this._view.state.viewingMode),this._intersector.options.store=m.MIN;const e=h(this._view,this._style.handleColor,this._style.handleOpacity);e.available=!1,e.radius=this._style.handleRadius,e.interactive=!1,this._manipulators.add(e),this._cursorManipulator=e,this._laserLine=new p({view:this._view,attached:!0,style:{glowColor:this._style.laserLineGlowColor,glowWidth:this._style.laserLineGlowWidth,glowFalloff:this._style.laserLineGlowFalloff,innerColor:this._style.laserLineInnerColor,innerWidth:this._style.laserLineInnerWidth,globalAlpha:this._style.laserLineGlobalAlpha}}),this._updateVisibility(i.visible||!0)}destroy(){this._listenerHandles=e(this._listenerHandles),this._isManipulatorsOwner?this._manipulators=e(this._manipulators):this._manipulators=null,this._laserLine=e(this._laserLine),this._destroyed=!0}get destroyed(){return this._destroyed}get visible(){return this._visible}set visible(i){i?this.show():this.hide()}get testData(){const i=this._laserLine.testData;return{labels:this._analysisView.analysisVisualization.testData.labels,laserLineRenderer:t(i)?{heightManifoldEnabled:i.heightManifoldEnabled,heightManifoldTarget:i.heightManifoldTarget,pointDistanceEnabled:i.pointDistanceEnabled,pointDistanceOrigin:i.pointDistanceOrigin,pointDistanceTarget:i.pointDistanceTarget,lineVerticalPlaneEnabled:i.lineVerticalPlaneEnabled}:{heightManifoldEnabled:!1,heightManifoldTarget:null,pointDistanceEnabled:!1,pointDistanceOrigin:null,pointDistanceTarget:null,lineVerticalPlaneEnabled:!1}}}show(){this._setVisibility(!0)}hide(){this._setVisibility(!1)}_setVisibility(i){this._destroyed||this._visible===i||this._updateVisibility(i)}_updateVisibility(i){this._visible=i,this._laserLine.visible=i,i?(this._initializeListeners(),this._updateAll()):(this._destroyListeners(),this.vertexManipulators.forEach((i=>{this._removeVertexManipulator(i.manipulator)})),this.vertexManipulators=[],this._view.cursor=null)}vertexHandleAt(i,e){const s=this._manipulators.intersect(i,e);return t(s)?s.manipulator.metadata:null}pick(i){const e=this._view.spatialReference,t=r(i.screenPoint);this._view.sceneIntersectionHelper.intersectToolIntersectorScreen(t,this._intersector);const a=this._intersector.results.min,l=o();if(!a.getIntersectionPoint(l))return null;const n=this._view.renderCoordsHelper.fromRenderCoords(l,e);return s(n)?null:new _(l,n)}_updateAll(){this._visible&&this._analysisView.analysisVisualization&&(this._updateVertexManipulators(),this._updateLaserLine())}_createVertexManipulator(){const i=h(this._view,this._style.handleColor,this._style.handleOpacity);i.radius=this._style.handleRadius;return{id:this._manipulators.add(i),manipulator:i}}_removeVertexManipulator(i){this._manipulators.remove(i)}_updateVertexManipulators(){const i=this._analysisView.analysisVisualization.viewData,e=this._analysisView.path?this._analysisView.path.vertices:[],s=this.vertexManipulators;u(s,e.length,(()=>this._createVertexManipulator()),(i=>this._removeVertexManipulator(i.manipulator))),s.forEach(((t,s)=>{t.manipulator.metadata=e[s],t.manipulator.renderLocation=i.positionsRenderCoords[s]})),"drawing"===this._toolState.polygonState&&t(this._analysisView.cursorPoint)?(this._cursorManipulator.available=!0,this._cursorManipulator.location=this._analysisView.cursorPoint):this._cursorManipulator.available=!1}_getFocusPoint(){const i=this._analysisView.lastDraggedVertex;switch(this._toolState.polygonState){case"drawing":return t(this._analysisView.cursorPoint)?this._analysisView.cursorPoint:t(i)?this._analysisView.path.getVertexPositionAsPoint(i):a(this._analysisView.path.lastPoint);case"editing":return t(i)?this._analysisView.path.getVertexPositionAsPoint(i):null;default:return this._analysisView.cursorPoint}}_updateLaserLine(){const i=this._style.laserLineEnabled&&"measured"!==this._toolState.polygonState&&this._toolState.active,e=this._getFocusPoint();if(i&&t(e)){const i=this._tempHandlePosition;this._view.renderCoordsHelper.toRenderCoords(e,i),this._laserLine.heightManifoldTarget=i}else this._laserLine.heightManifoldTarget=null}_initializeListeners(){this._listenerHandles=new i,this._listenerHandles.add([l((()=>this._toolState.polygonState),(()=>this._updateLaserLine())),l((()=>
|
|
5
|
+
import i from"../../../../../core/Handles.js";import{destroyMaybe as e,isSome as t,isNone as s,unwrap as a}from"../../../../../core/maybe.js";import{watch as l,sync as n}from"../../../../../core/reactiveUtils.js";import{screenPointObjectToArray as r}from"../../../../../core/screenUtils.js";import{c as o}from"../../../../../chunks/vec3f64.js";import{createSphereManipulator as h}from"../../manipulatorUtils.js";import{PickResult as _}from"../support/PickRequest.js";import{copyParameter as d,resizeArray as u}from"../support/viewUtils.js";import{LaserlineVisualElement as p}from"../../visualElements/LaserlineVisualElement.js";import c from"../../../webgl-engine/lib/GeometryUtil.js";import{newIntersector as y}from"../../../webgl-engine/lib/Intersector.js";import{StoreResults as m}from"../../../webgl-engine/lib/IntersectorInterfaces.js";import{ManipulatorCollection as w}from"../../../../interactive/ManipulatorCollection.js";const g={laserLineGlowColor:[1,.5,0],laserLineGlowWidth:8,laserLineGlowFalloff:8,laserLineInnerColor:[1,1,1],laserLineInnerWidth:1,laserLineGlobalAlpha:.75,laserLineEnabled:!0,handleColor:[1,.5,0],handleOpacity:.5,handleRadius:5,handleRadiusHovered:10,handleRadiusMouse:10,handleRadiusTouch:25,pathLineColor:[1,.5,0,1],pathLineWidth:3,intersectingLineColor:[1,.2,0,1],perimeterLineColor:[1,.5,0,1],perimeterLineWidth:2,projectionLineColor:[1,.5,0,1],projectionLineWidth:2,projectionLineStippleSize:5,areaColor1:[1,.5,0,.5],areaColor2:[1,1,1,.5],fillColor:[1,.5,0,.5],lineSubdivisions:64,labelDistance:25};class v{constructor(i){this.vertexManipulators=[],this._analysisView=null,this._destroyed=!1,this._isManipulatorsOwner=!0,this._visible=!0,this._laserLine=null,this._cursorManipulator=null,this._listenerHandles=null,this._tempHandlePosition=o(),this._analysisView=i.analysisView,this._toolState=i.toolState,null!=i.manipulators?(this._manipulators=i.manipulators,this._isManipulatorsOwner=!1):this._manipulators=new w,this._view=i.view,this._style=d(g,i.style),this._intersector=y(this._view.state.viewingMode),this._intersector.options.store=m.MIN;const e=h(this._view,this._style.handleColor,this._style.handleOpacity);e.available=!1,e.radius=this._style.handleRadius,e.interactive=!1,this._manipulators.add(e),this._cursorManipulator=e,this._laserLine=new p({view:this._view,attached:!0,style:{glowColor:this._style.laserLineGlowColor,glowWidth:this._style.laserLineGlowWidth,glowFalloff:this._style.laserLineGlowFalloff,innerColor:this._style.laserLineInnerColor,innerWidth:this._style.laserLineInnerWidth,globalAlpha:this._style.laserLineGlobalAlpha}}),this._updateVisibility(i.visible||!0)}destroy(){this._listenerHandles=e(this._listenerHandles),this._isManipulatorsOwner?this._manipulators=e(this._manipulators):this._manipulators=null,this._laserLine=e(this._laserLine),this._destroyed=!0}get destroyed(){return this._destroyed}get visible(){return this._visible}set visible(i){i?this.show():this.hide()}get testData(){const i=this._laserLine.testData;return{labels:this._analysisView.analysisVisualization.testData.labels,laserLineRenderer:t(i)?{heightManifoldEnabled:i.heightManifoldEnabled,heightManifoldTarget:i.heightManifoldTarget,pointDistanceEnabled:i.pointDistanceEnabled,pointDistanceOrigin:i.pointDistanceOrigin,pointDistanceTarget:i.pointDistanceTarget,lineVerticalPlaneEnabled:i.lineVerticalPlaneEnabled}:{heightManifoldEnabled:!1,heightManifoldTarget:null,pointDistanceEnabled:!1,pointDistanceOrigin:null,pointDistanceTarget:null,lineVerticalPlaneEnabled:!1}}}show(){this._setVisibility(!0)}hide(){this._setVisibility(!1)}_setVisibility(i){this._destroyed||this._visible===i||this._updateVisibility(i)}_updateVisibility(i){this._visible=i,this._laserLine.visible=i,i?(this._initializeListeners(),this._updateAll()):(this._destroyListeners(),this.vertexManipulators.forEach((i=>{this._removeVertexManipulator(i.manipulator)})),this.vertexManipulators=[],this._view.cursor=null)}vertexHandleAt(i,e){const s=this._manipulators.intersect(i,e);return t(s)?s.manipulator.metadata:null}pick(i){const e=this._view.spatialReference,t=r(i.screenPoint);this._view.sceneIntersectionHelper.intersectToolIntersectorScreen(t,this._intersector);const a=this._intersector.results.min,l=o();if(!a.getIntersectionPoint(l))return null;const n=this._view.renderCoordsHelper.fromRenderCoords(l,e);return s(n)?null:new _(l,n)}_updateAll(){this._visible&&this._analysisView.analysisVisualization&&(this._updateVertexManipulators(),this._updateLaserLine())}_createVertexManipulator(){const i=h(this._view,this._style.handleColor,this._style.handleOpacity);i.radius=this._style.handleRadius;return{id:this._manipulators.add(i),manipulator:i}}_removeVertexManipulator(i){this._manipulators.remove(i)}_updateVertexManipulators(){const i=this._analysisView.analysisVisualization.viewData,e=this._analysisView.path?this._analysisView.path.vertices:[],s=this.vertexManipulators;u(s,e.length,(()=>this._createVertexManipulator()),(i=>this._removeVertexManipulator(i.manipulator))),s.forEach(((t,s)=>{t.manipulator.metadata=e[s],t.manipulator.renderLocation=i.positionsRenderCoords[s]})),"drawing"===this._toolState.polygonState&&t(this._analysisView.cursorPoint)?(this._cursorManipulator.available=!0,this._cursorManipulator.location=this._analysisView.cursorPoint):this._cursorManipulator.available=!1}_getFocusPoint(){const i=this._analysisView.lastDraggedVertex;switch(this._toolState.polygonState){case"drawing":return t(this._analysisView.cursorPoint)?this._analysisView.cursorPoint:t(i)?this._analysisView.path.getVertexPositionAsPoint(i):a(this._analysisView.path.lastPoint);case"editing":return t(i)?this._analysisView.path.getVertexPositionAsPoint(i):null;default:return this._analysisView.cursorPoint}}_updateLaserLine(){const i=this._style.laserLineEnabled&&"measured"!==this._toolState.polygonState&&this._toolState.active,e=this._getFocusPoint();if(i&&t(e)){const i=this._tempHandlePosition;this._view.renderCoordsHelper.toRenderCoords(e,i),this._laserLine.heightManifoldTarget=i}else this._laserLine.heightManifoldTarget=null}_initializeListeners(){this._listenerHandles=new i,this._listenerHandles.add([l((()=>this._toolState.polygonState),(()=>this._updateLaserLine())),l((()=>this._analysisView.analysisVisualization?.viewData),(()=>this._updateAll()),n),l((()=>({lastDraggedVertex:this._analysisView.lastDraggedVertex,cursorPoint:this._analysisView.cursorPoint})),(()=>this._updateLaserLine())),l((()=>this._toolState.active),(()=>this._updateAll()))])}_destroyListeners(){this._listenerHandles=e(this._listenerHandles)}}v._handleGeometry=c.createSphereGeometry(1,32,32);export{v as default};
|
package/views/3d/interactive/measurementTools/directLineMeasurement3D/DirectLineMeasurement3DView.js
CHANGED
|
@@ -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 e from"../../../../../core/Accessor.js";import t from"../../../../../core/Handles.js";import{destroyMaybe as s,isSome as n,applySome as a,isNone as o}from"../../../../../core/maybe.js";import{watch as r,initial as l}from"../../../../../core/reactiveUtils.js";import{property as h}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{c as p}from"../../../../../chunks/vec3f64.js";import{fromPoints as c}from"../../../../../geometry/support/lineSegment.js";import{MeasurementMode as u}from"../../../analysis/interfaces.js";import{ViewMode as g}from"../../../analysis/DirectLineMeasurement/interfaces.js";import{createSphereManipulator as m}from"../../manipulatorUtils.js";import{LaserlineVisualElement as y}from"../../visualElements/LaserlineVisualElement.js";const _={laserLineGlowColor:[1,.5,0],laserLineGlowWidth:8,laserLineGlowFalloff:8,laserLineInnerColor:[1,1,1],laserLineInnerWidth:.75,laserLineGlobalAlpha:.75,handleColor:[1,.5,0],handleOpacity:.5,handleRadius:5};var
|
|
5
|
+
import{_ as i}from"../../../../../chunks/tslib.es6.js";import e from"../../../../../core/Accessor.js";import t from"../../../../../core/Handles.js";import{destroyMaybe as s,isSome as n,applySome as a,isNone as o}from"../../../../../core/maybe.js";import{watch as r,initial as l}from"../../../../../core/reactiveUtils.js";import{property as h}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{c as p}from"../../../../../chunks/vec3f64.js";import{fromPoints as c}from"../../../../../geometry/support/lineSegment.js";import{MeasurementMode as u}from"../../../analysis/interfaces.js";import{ViewMode as g}from"../../../analysis/DirectLineMeasurement/interfaces.js";import{createSphereManipulator as m}from"../../manipulatorUtils.js";import{LaserlineVisualElement as y}from"../../visualElements/LaserlineVisualElement.js";const _={laserLineGlowColor:[1,.5,0],laserLineGlowWidth:8,laserLineGlowFalloff:8,laserLineInnerColor:[1,1,1],laserLineInnerWidth:.75,laserLineGlobalAlpha:.75,handleColor:[1,.5,0],handleOpacity:.5,handleRadius:5};var b;!function(i){i.Manipulators="manipulators",i.AnalysisViewDestroyed="analysis-view-destroyed",i.AnalysisView="analysis-view"}(b||(b={}));let v=class extends e{constructor(i){super(i),this.params=_,this.analysisView=null,this.cursorPoint=null,this._visible=!1,this._laserLine=null,this.laserLineEnabled=!0,this._handles=new t,this._lastDraggedHandle=null}initialize(){this._laserLine=new y({view:this.view,attached:!0}),this._updateVisibility(this._visible),this._connectToAnalysisView()}destroy(){this._handles=s(this._handles),this._laserLine=s(this._laserLine)}get visible(){return this._visible}set visible(i){i?this.show():this.hide()}get testData(){const i=this._laserLine.testData,e=this.analysisView.testData;return{labels:e?.labels,stripeLength:e?.stripeLength,laserLineRenderer:{heightManifoldEnabled:!!n(i)&&i.heightManifoldEnabled,heightManifoldTarget:n(i)?i.heightManifoldTarget:null,pointDistanceEnabled:!!n(i)&&i.pointDistanceEnabled,pointDistanceOrigin:n(i)?i.pointDistanceOrigin:null,pointDistanceTarget:n(i)?i.pointDistanceTarget:null,lineVerticalPlaneEnabled:!!n(i)&&i.lineVerticalPlaneEnabled}}}get _cursorPosition(){const i=p();return a(this.cursorPoint,(e=>this.view.renderCoordsHelper.toRenderCoords(e,i))),i}get _startPosition(){const i=p();return a(this.analysis.startPoint,(e=>this.view.renderCoordsHelper.toRenderCoords(e,i))),i}get _endPosition(){const i=p();return a(this.analysis.endPoint,(e=>this.view.renderCoordsHelper.toRenderCoords(e,i))),i}get _laserLineParams(){const i=this._focusPosition,{active:e,lineState:t}=this.toolState,s=this.analysisView,n=this.laserLineEnabled&&!!i&&"measured"!==t&&e;if(!n||!this.visible||o(s)||s.destroyed)return{heightManifoldTarget:null,pointDistanceLine:null,lineVerticalPlaneSegment:null};const a=s.actualVisualizedMeasurement,r="local"!==this.view.viewingMode&&n&&!!this.analysis.startPoint&&"geodesic"===a,l=n&&s.viewMode===g.Triangle;return{heightManifoldTarget:"euclidean"===a?i:null,pointDistanceLine:r?this._pointDistanceLine:null,lineVerticalPlaneSegment:l?c(this._startPosition,this._endPosition):null}}get _focusPosition(){const{lineState:i}=this.toolState,e=this.analysisView,t=n(e)&&!e.destroyed&&e.measurementMode===u.Euclidean&&e.viewMode===g.Direct;switch(i){case"drawing":return t?this._startPosition:this.analysis.endPoint?this._endPosition:this._startPosition;case"editing":return t?"start"===this._lastDraggedHandle?this._endPosition:this._startPosition:"start"===this._lastDraggedHandle?this._startPosition:this._endPosition;default:return n(this.cursorPoint)?this._cursorPosition:null}}get _pointDistanceLine(){return{origin:"drawing"===this.toolState.lineState||"end"===this._lastDraggedHandle?this._startPosition:this._endPosition,target:this._focusPosition}}createManipulators(){const i=()=>{const i=m(this.view,this.params.handleColor,this.params.handleOpacity);return i.available=!1,i.radius=this.params.handleRadius,i},e=i(),t=i();n(this.analysis.startPoint)&&(e.location=this.analysis.startPoint,e.available=!0),n(this.analysis.endPoint)&&(t.location=this.analysis.endPoint,t.available=!0);const s=()=>{let i=this._lastDraggedHandle;e.grabbing&&!t.grabbing&&(i="start"),t.grabbing&&!e.grabbing&&(i="end"),e.grabbing||t.grabbing||(i=null),this._lastDraggedHandle=i},a=e.events.on("grab-changed",s),o=t.events.on("grab-changed",s);return this._handles.add([a,o],b.Manipulators),{start:e,end:t}}show(){this.destroyed||this._visible||this._updateVisibility(!0)}hide(){!this.destroyed&&this._visible&&this._updateVisibility(!1)}_connectToAnalysisView(){this._handles.remove(b.AnalysisView),this._handles.add([r((()=>a(this.analysisView,(i=>i.destroyed))),(i=>{i&&this._handles.remove(b.AnalysisView)}),l),r((()=>["measured"===this.toolState.lineState,this.analysisView]),(([i,e])=>{n(e)&&!e.destroyed&&(e.allowVisualElementsOrientationChange=!i)}),l),r((()=>this._laserLineParams),(i=>{const e=this._laserLine;e.heightManifoldTarget=i.heightManifoldTarget,e.pointDistanceLine=i.pointDistanceLine,e.lineVerticalPlaneSegment=i.lineVerticalPlaneSegment}),l)],b.AnalysisView)}_updateVisibility(i){this.constructed&&(this._visible=i,i?this._laserLine.style={innerColor:this.params.laserLineInnerColor,innerWidth:this.params.laserLineInnerWidth,glowColor:this.params.laserLineGlowColor,glowWidth:this.params.laserLineGlowWidth,glowFalloff:this.params.laserLineGlowFalloff,globalAlpha:this.params.laserLineGlobalAlpha}:this.view.cursor=null,this._laserLine.visible=i)}};i([h()],v.prototype,"view",void 0),i([h()],v.prototype,"params",void 0),i([h()],v.prototype,"analysis",void 0),i([h({constructOnly:!0})],v.prototype,"analysisView",void 0),i([h()],v.prototype,"cursorPoint",void 0),i([h()],v.prototype,"toolState",void 0),i([h()],v.prototype,"visible",null),i([h()],v.prototype,"testData",null),i([h()],v.prototype,"_visible",void 0),i([h()],v.prototype,"_laserLine",void 0),i([h()],v.prototype,"laserLineEnabled",void 0),i([h()],v.prototype,"_cursorPosition",null),i([h()],v.prototype,"_startPosition",null),i([h()],v.prototype,"_endPosition",null),i([h()],v.prototype,"_lastDraggedHandle",void 0),i([h()],v.prototype,"_laserLineParams",null),i([h()],v.prototype,"_focusPosition",null),i([h()],v.prototype,"_pointDistanceLine",null),v=i([d("esri.views.3d.interactive.measurementTools.directLineMeasurement3D.DirectLineMeasurement3DView")],v);export{v as DirectLineMeasurement3DView};
|
package/views/3d/interactive/snapping/featureSources/featureServiceSource/FeatureServiceTiles3D.js
CHANGED
|
@@ -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{HandleOwner as t}from"../../../../../../core/HandleOwner.js";import{isSome as r,isNone as i}from"../../../../../../core/maybe.js";import{watch as s,initial as o}from"../../../../../../core/reactiveUtils.js";import{property as
|
|
5
|
+
import{_ as e}from"../../../../../../chunks/tslib.es6.js";import{HandleOwner as t}from"../../../../../../core/HandleOwner.js";import{isSome as r,isNone as i}from"../../../../../../core/maybe.js";import{watch as s,initial as o}from"../../../../../../core/reactiveUtils.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 l}from"../../../../../../core/accessorSupport/decorators/subclass.js";import{Visibility as c}from"../../../../layers/support/FeatureTileDescriptor3D.js";import{distanceToTile as a}from"../../../../../interactive/snapping/featureSources/featureServiceSource/tileUtils.js";let p=class extends t{constructor(e){super(e),this.pointOfInterest=null}get tiles(){const e=this.tilesCoveringView,t=this.effectivePointOfInterest;if(r(t)){const r=e.map((e=>a(t,e)));for(let i=1;i<r.length;i++)if(r[i-1]>r[i])return e.sort(((e,r)=>a(t,e)-a(t,r))),e.slice()}return e}get tilesCoveringView(){return this._filterTiles(this.view.featureTiles?.tiles?.toArray()).map(u)}get tileInfo(){return this.view.featureTiles?.tilingScheme.toTileInfo()??null}get tileSize(){return this.view.featureTiles?.tileSize??256}get effectivePointOfInterest(){const e=this.pointOfInterest;return r(e)?e:this.view.pointsOfInterest?.focus.location}initialize(){this.handles.add(s((()=>this.view.featureTiles),(e=>{this.handles.remove(m),e&&this.handles.add(e.addClient(),m)}),o))}_filterTiles(e){if(i(e))return[];return e.filter((e=>Math.abs(e.measures.screenRect[3]-e.measures.screenRect[1])>f&&e.measures.visibility===c.VISIBLE_ON_SURFACE))}};function u({lij:[e,t,r],extent:i}){return{id:`${e}/${t}/${r}`,level:e,row:t,col:r,extent:i}}e([n({readOnly:!0})],p.prototype,"tiles",null),e([n({readOnly:!0})],p.prototype,"tilesCoveringView",null),e([n({readOnly:!0})],p.prototype,"tileInfo",null),e([n({readOnly:!0})],p.prototype,"tileSize",null),e([n({constructOnly:!0})],p.prototype,"view",void 0),e([n()],p.prototype,"pointOfInterest",void 0),e([n()],p.prototype,"effectivePointOfInterest",null),p=e([l("esri.views.interactive.snapping.featureSources.featureServiceSource.FeatureServiceTiles3D")],p);const f=50,m="feature-tiles";export{p as FeatureServiceTiles3D};
|
|
@@ -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 r from"../../../../core/Accessor.js";import{IdentifiableMixin as s}from"../../../../core/Identifiable.js";import{isSome as t,isNone as o}from"../../../../core/maybe.js";import{property as i}from"../../../../core/accessorSupport/decorators/property.js";import"../../../../core/arrayUtils.js";import"../../../../core/has.js";import"../../../../core/accessorSupport/ensureType.js";import{subclass as c}from"../../../../core/accessorSupport/decorators/subclass.js";import{DrapeSourceType as a}from"../../layers/interfaces.js";import{UpdatePolicy as u}from"../../webgl-engine/lib/basicInterfaces.js";import{ModelDirty as d}from"../../webgl-engine/lib/ModelDirtyTypes.js";class h{constructor(e){this.resourceFactory=e,this._resources=null,this._visible=!0,this._attached=!1}destroy(){this._destroyResources()}get resources(){return t(this._resources)?this._resources.external:null}get visible(){return this._visible}set visible(e){e!==this._visible&&(this._visible=e,this._syncGeometriesToRenderer())}get attached(){return this._attached}set attached(e){e!==this._attached&&(this._attached=e,this._createOrDestroyResources())}recreate(){this.attached&&this._createResources()}recreateGeometry(){this.resourceFactory.recreateGeometry?o(this._resources)||(this._ensureRenderGeometriesRemoved(),this.resourceFactory.recreateGeometry(this._resources.external),this._syncGeometriesToRenderer()):this.recreate()}_createOrDestroyResources(){this._attached?o(this._resources)&&this._createResources():this._destroyResources()}_createResources(){
|
|
5
|
+
import{_ as e}from"../../../../chunks/tslib.es6.js";import r from"../../../../core/Accessor.js";import{IdentifiableMixin as s}from"../../../../core/Identifiable.js";import{isSome as t,isNone as o}from"../../../../core/maybe.js";import{property as i}from"../../../../core/accessorSupport/decorators/property.js";import"../../../../core/arrayUtils.js";import"../../../../core/has.js";import"../../../../core/accessorSupport/ensureType.js";import{subclass as c}from"../../../../core/accessorSupport/decorators/subclass.js";import{DrapeSourceType as a}from"../../layers/interfaces.js";import{UpdatePolicy as u}from"../../webgl-engine/lib/basicInterfaces.js";import{ModelDirty as d}from"../../webgl-engine/lib/ModelDirtyTypes.js";class h{constructor(e){this.resourceFactory=e,this._resources=null,this._visible=!0,this._attached=!1}destroy(){this._destroyResources()}get resources(){return t(this._resources)?this._resources.external:null}get visible(){return this._visible}set visible(e){e!==this._visible&&(this._visible=e,this._syncGeometriesToRenderer())}get attached(){return this._attached}set attached(e){e!==this._attached&&(this._attached=e,this._createOrDestroyResources())}recreate(){this.attached&&this._createResources()}recreateGeometry(){this.resourceFactory.recreateGeometry?o(this._resources)||(this._ensureRenderGeometriesRemoved(),this.resourceFactory.recreateGeometry(this._resources.external),this._syncGeometriesToRenderer()):this.recreate()}_createOrDestroyResources(){this._attached?o(this._resources)&&this._createResources():this._destroyResources()}_createResources(){this._destroyResources();const e=this.resourceFactory.createResources(),r=new n({view:this.resourceFactory.view}),s=this.resourceFactory.view.basemapTerrain?.overlayManager;this._resources={layerView:new n({view:this.resourceFactory.view}),external:e,geometriesAdded:!1},s&&(this._resources.drapeSourceRenderer=s.registerGeometryDrapeSource(r)),this._syncGeometriesToRenderer()}_destroyResources(){if(o(this._resources))return;this._ensureRenderGeometriesRemoved();const e=this.resourceFactory.view.basemapTerrain?.overlayManager;e&&e.unregisterDrapeSource(this._resources.layerView),this._resources=null}_syncGeometriesToRenderer(){this._visible?this._ensureRenderGeometriesAdded():this._ensureRenderGeometriesRemoved()}_ensureRenderGeometriesRemoved(){if(o(this._resources)||o(this._resources.drapeSourceRenderer))return;if(!this._resources.geometriesAdded)return;this._resources.drapeSourceRenderer.removeGeometries(this._resources.external.geometries,d.Geometry.UPDATE),this._resources.geometriesAdded=!1}_ensureRenderGeometriesAdded(){if(o(this._resources)||o(this._resources.drapeSourceRenderer))return;if(this._resources.geometriesAdded)return;this._resources.drapeSourceRenderer.addGeometries(this._resources.external.geometries,d.Geometry.UPDATE),this._resources.geometriesAdded=!0}}let n=class extends(s(r)){constructor(e){super(e),this.drapeSourceType=a.Features,this.updatePolicy=u.SYNC}};e([i({constructOnly:!0})],n.prototype,"view",void 0),e([i({readOnly:!0})],n.prototype,"drapeSourceType",void 0),n=e([c("DrapedVisualElementLayerView")],n);export{h as DrapedVisualElementResources};
|
|
@@ -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{
|
|
5
|
+
import{isNone as e,isSome as t}from"../../../../core/maybe.js";import{f as r}from"../../../../chunks/mat4.js";import{c as s}from"../../../../chunks/mat4f64.js";import{s as i,m as o}from"../../../../chunks/vec3.js";import{Z as n,c as l}from"../../../../chunks/vec3f64.js";import{g as h,c as a}from"../../../../chunks/vec4.js";import{f as p,c as d,a as f}from"../../../../chunks/vec4f32.js";import{Object3DVisualElement as u}from"./Object3DVisualElement.js";import{createGeometry as m,RemoveDuplicateStartEnd as _}from"../../layers/graphics/lineUtils.js";import{RenderOccludedFlag as c}from"../../webgl-engine/lib/Material.js";import{RibbonLineMaterial as g}from"../../webgl-engine/materials/RibbonLineMaterial.js";class C extends u{constructor(e){super(e),this._renderOccluded=c.OccludeAndTransparent,this._width=1,this._color=p(1,0,1,1),this._innerWidth=1,this._innerColor=null,this._stipplePattern=null,this._stippleOffColor=null,this._stipplePreferContinuous=!0,this._writeDepthEnabled=!0,this._falloff=0,this._polygonOffset=!1,this.applyProps(e)}setGeometryFromRenderSpacePoint(e){const t=1e3,r=[];r.push([[e[0]-t,e[1]+0,e[2]+0],[e[0]+t,e[1]+0,e[2]+0]]),r.push([[e[0]-0,e[1]-t,e[2]+0],[e[0]+0,e[1]+t,e[2]+0]]),r.push([[e[0]-0,e[1]+0,e[2]-t],[e[0]+0,e[1]+0,e[2]+t]]),this.geometry=r}setGeometryFromExtent(e){const t=this.view.spatialReference,r=l(),s=l(),o=100,n=[];i(r,e[0],e[1],o),this.view.renderCoordsHelper.toRenderCoords(r,t,s),n.push([s[0],s[1],s[2]]),i(r,e[2],e[1],o),this.view.renderCoordsHelper.toRenderCoords(r,t,s),n.push([s[0],s[1],s[2]]),i(r,e[2],e[3],o),this.view.renderCoordsHelper.toRenderCoords(r,t,s),n.push([s[0],s[1],s[2]]),i(r,e[0],e[3],o),this.view.renderCoordsHelper.toRenderCoords(r,t,s),n.push([s[0],s[1],s[2]]),i(r,e[0],e[1],o),this.view.renderCoordsHelper.toRenderCoords(r,t,s),n.push([s[0],s[1],s[2]]),i(r,e[0],e[1],o),this.view.renderCoordsHelper.toRenderCoords(r,t,s),n.push([s[0],s[1],s[2]]),this.geometry=[n]}setGeometryFromFrustum(e){const t=[];e.lines.forEach((e=>{t.push([e.origin[0],e.origin[1],e.origin[2]]),t.push([e.endpoint[0],e.endpoint[1],e.endpoint[2]])})),this.geometry=[t]}setGeometryFromBoundedPlane(e){const t=[],r=e.origin,s=e.basis1,i=e.basis2,o=.5,n=l(),h=l(),a=l(),p=l();n[0]=r[0]-s[0]*o-i[0]*o,n[1]=r[1]-s[1]*o-i[1]*o,n[2]=r[2]-s[2]*o-i[2]*o,h[0]=r[0]-s[0]*o+i[0]*o,h[1]=r[1]-s[1]*o+i[1]*o,h[2]=r[2]-s[2]*o+i[2]*o,a[0]=r[0]+s[0]*o+i[0]*o,a[1]=r[1]+s[1]*o+i[1]*o,a[2]=r[2]+s[2]*o+i[2]*o,p[0]=r[0]+s[0]*o-i[0]*o,p[1]=r[1]+s[1]*o-i[1]*o,p[2]=r[2]+s[2]*o-i[2]*o,t.push([n[0],n[1],n[2]]),t.push([h[0],h[1],h[2]]),t.push([a[0],a[1],a[2]]),t.push([p[0],p[1],p[2]]),t.push([n[0],n[1],n[2]]),this.geometry=[t]}setGeometryFromSegment(e){const t=e.endRenderSpace;this.transform=r(y,t);const{points:s}=e.createRenderGeometry(t,this.view.renderCoordsHelper);this.geometry=[s]}setGeometryFromSegments(e,t=n){this.transform=r(y,t),this.geometry=e.map((e=>e.createRenderGeometry(t,this.view.renderCoordsHelper).points))}getTransformedGeometry(){return e(this._geometry)?null:this._geometry.map((e=>e.map((e=>o(l(),e,this.transform)))))}get renderOccluded(){return this._renderOccluded}set renderOccluded(e){e!==this._renderOccluded&&(this._renderOccluded=e,this._updateMaterial())}get geometry(){return this._geometry}set geometry(e){this._geometry=e,this.recreateGeometry()}get width(){return this._width}set width(e){e!==this._width&&(this._width=e,this._updateMaterial())}get color(){return this._color}set color(e){h(e,this._color)||(a(this._color,e),this._updateMaterial())}get innerWidth(){return this._innerWidth}set innerWidth(e){e!==this._innerWidth&&(this._innerWidth=e,this._updateMaterial())}get innerColor(){return this._innerColor}set innerColor(r){t(r)?!e(this._innerColor)&&h(r,this._innerColor)||(this._innerColor=a(d(),r),this._updateMaterial()):t(this._innerColor)&&(this._innerColor=null,this._updateMaterial())}get stipplePattern(){return this._stipplePattern}set stipplePattern(e){const r=t(e)!==t(this._stipplePattern);this._stipplePattern=e,r?this.recreate():this._updateMaterial()}get stippleOffColor(){return this._stippleOffColor}set stippleOffColor(r){(e(r)||e(this._stippleOffColor)||!h(r,this._stippleOffColor))&&(this._stippleOffColor=t(r)?f(r):null,this._updateMaterial())}get stipplePreferContinuous(){return this._stipplePreferContinuous}set stipplePreferContinuous(e){this._stipplePreferContinuous!==e&&(this._stipplePreferContinuous=e,this._updateMaterial())}get writeDepthEnabled(){return this._writeDepthEnabled}set writeDepthEnabled(e){this._writeDepthEnabled!==e&&(this._writeDepthEnabled=e,this._updateMaterial())}get falloff(){return this._falloff}set falloff(e){e!==this._falloff&&(this._falloff=e,this._updateMaterial())}get polygonOffset(){return this._polygonOffset}set polygonOffset(e){e!==this._polygonOffset&&(this._polygonOffset=e,this._updateMaterial())}createExternalResources(){this._material=new g(this.materialParameters)}destroyExternalResources(){this._material=null}createGeometries(e){const t=this._createLineGeometries();if(0!==t.length)for(let r=0;r<t.length;++r){const s=m(t[r]);e.addGeometry(s,this._material)}}forEachExternalMaterial(e){e(this._material)}get materialParameters(){return{width:this._width,color:this._color,stippleOffColor:this._stippleOffColor,stipplePattern:this._stipplePattern,stipplePreferContinuous:this._stipplePreferContinuous,isClosed:!1,falloff:this._falloff,innerColor:this._innerColor,innerWidth:this._innerWidth,hasPolygonOffset:this._polygonOffset,renderOccluded:this._renderOccluded,writeDepth:this._writeDepthEnabled}}_updateMaterial(){this.attached&&this._material.setParameters(this.materialParameters)}_createLineGeometries(){const t=this.geometry;if(e(t)||0===t.length)return[];const r=[];return t.forEach((e=>{const t=e.length,s=new Float64Array(3*t);e.forEach(((e,t)=>{s[3*t+0]=e[0],s[3*t+1]=e[1],s[3*t+2]=e[2]}));const i={overlayInfo:null,attributeData:{position:s},removeDuplicateStartEnd:_.KEEP};r.push(i)})),r}}const y=s();export{C as LineVisualElement};
|
|
@@ -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/Evented.js";import{isSome as t,unwrap as r,isNone as s}from"../../../../core/maybe.js";import{s as i,a,g as n}from"../../../../chunks/vec3.js";import{c as o}from"../../../../chunks/vec3f64.js";import{g as l,c as h,s as c}from"../../../../chunks/vec4.js";import{f as d,a as u}from"../../../../chunks/vec4f32.js";import{projectBuffer as p}from"../../../../geometry/projection.js";import{create as m,empty as f,expandWithBuffer as _}from"../../../../geometry/support/aaBoundingBox.js";import{makeDehydratedPoint as g}from"../../../../layers/graphics/dehydratedFeatures.js";import{getGeometryEffectiveElevationMode as y}from"../../../../support/elevationInfoUtils.js";import v from"../../../../symbols/support/ElevationInfo.js";import{DrapedVisualElementResources as O}from"./DrapedVisualElementResources.js";import{LaserlineVisualElement as w}from"./LaserlineVisualElement.js";import{VisualElementResources as C}from"./VisualElementResources.js";import{ElevationContext as R}from"../../layers/graphics/ElevationContext.js";import{geometryToRenderInfoDraped as b,RemoveDuplicateStartEnd as E,createGeometry as P,geometryToRenderInfo as D}from"../../layers/graphics/lineUtils.js";import{computeAttachmentOriginLines as j}from"../../webgl-engine/lib/geometryDataUtils.js";import{RenderOccludedFlag as I}from"../../webgl-engine/lib/Material.js";import{RenderGeometry as A}from"../../webgl-engine/lib/RenderGeometry.js";import{VertexAttribute as G}from"../../webgl-engine/lib/VertexAttribute.js";import{RibbonLineMaterial as M}from"../../webgl-engine/materials/RibbonLineMaterial.js";class S{constructor(t){this.view=null,this._attachmentOrigin=g(0,0,0,null),this._attachmentOriginDirty=!0,this.events=new e,this._isDraped=!1,this._geometry=null,this._width=1,this._color=d(1,0,1,1),this._innerWidth=0,this._innerColor=d(1,1,1,1),this._stipplePattern=null,this._stippleOffColor=null,this._falloff=0,this._elevationInfo=null,this._laserlineStyle=null,this._laserlineEnabled=!1,this._renderOccluded=I.OccludeAndTransparentStencil,this.resources=new C({view:t.view,createResources:e=>this._createResources(e),recreateGeometry:(e,t)=>(e.geometries.length=0,this._recreateGeometry(t,e.material,e.geometries),e.geometries)}),this._attachmentOrigin.spatialReference=t.view.spatialReference,this.drapedResources=new O({view:t.view,createResources:()=>this._createDrapedResources(),recreateGeometry:e=>{e.geometries=this._createRenderGeometriesDraped(e.material),this._attachmentOriginChanged()}});let r=!0;this._laserline=new w({view:t.view});for(const e in t)e in this?"attached"===e?r=t[e]:this[e]=t[e]:console.error("Cannot set unknown property",e);this.attached=r}destroy(){this.resources.destroy(),this.drapedResources.destroy(),this._laserline.destroy()}get isDraped(){return this._isDraped}set isDraped(e){e!==this._isDraped&&(this._isDraped=e,this._updateAttached(this.attached),this._laserline.attached=this.laserlineAttached)}get laserlineAttached(){return this.attached&&this.visible&&t(this._laserlineStyle)&&!this.isDraped&&this.laserlineEnabled}get visible(){return this.resources.visible}set visible(e){this.resources.visible=e,this.drapedResources.visible=e,this._laserline.attached=this.laserlineAttached}get attached(){return this.resources.attached||this.drapedResources.attached}set attached(e){this._updateAttached(e)}_updateAttached(e){this.resources.attached=!this.isDraped&&e,this.drapedResources.attached=this.isDraped&&e,this._laserline.attached=this.laserlineAttached,this.attached&&this._attachmentOriginChanged()}get geometry(){return this._geometry}set geometry(e){this._geometry=e,this.resources.recreateGeometry(),this.drapedResources.recreateGeometry()}get width(){return this._width}set width(e){e!==this._width&&(this._width=e,this._updateMaterial())}get color(){return this._color}set color(e){l(e,this._color)||(h(this._color,e),this._updateMaterial())}get innerWidth(){return this._innerWidth}set innerWidth(e){e!==this._innerWidth&&(this._innerWidth=e,this._updateMaterial())}get innerColor(){return this._innerColor}set innerColor(e){l(e,this._innerColor)||(h(this._innerColor,e),this._updateMaterial())}get stipplePattern(){return this._stipplePattern}set stipplePattern(e){const r=t(e)!==t(this._stipplePattern);this._stipplePattern=e,r?this.resources.recreate():this._updateMaterial()}get stippleOffColor(){return this._stippleOffColor}set stippleOffColor(e){e&&this._stippleOffColor&&l(e,this._stippleOffColor)||(this._stippleOffColor=e?u(e):null,this._updateMaterial())}get falloff(){return this._falloff}set falloff(e){e!==this._falloff&&(this._falloff=e,this._updateMaterial())}get elevationInfo(){return this._elevationInfo}set elevationInfo(e){this._elevationInfo=e,this.resources.recreateGeometry()}get laserlineStyle(){return this._laserlineStyle}set laserlineStyle(e){this._laserlineStyle=e,this._laserline.attached=this.laserlineAttached,t(e)&&(this._laserline.style=e)}get laserlineEnabled(){return this._laserlineEnabled}set laserlineEnabled(e){this._laserlineEnabled!==e&&(this._laserlineEnabled=e,this._laserline.attached=this.laserlineAttached)}get renderOccluded(){return this._renderOccluded}set renderOccluded(e){e!==this._renderOccluded&&(this._renderOccluded=e,this._updateMaterial())}get attachmentOrigin(){if(!this._attachmentOriginDirty)return this._attachmentOrigin;const e=t(this.resources.resources)?this.resources.resources.geometries:null;if(!e||0===e.length)return null;i(V,0,0,0);let s=0;for(const t of e){const e=t.vertexAttributes.get(G.POSITION),i=t.indices.get(G.POSITION),n=r(this.resources.resources).material.isClosed(e.data,i);j(e,i,n,W)&&(a(V,V,W),s++)}return 0===s?null:(n(V,V,1/s),this.view.renderCoordsHelper.fromRenderCoords(V,this._attachmentOrigin),this._attachmentOriginDirty=!1,this._attachmentOrigin)}_updateMaterial(){t(this.resources.resources)&&this.resources.resources.material.setParameters(this.materialParameters),t(this.drapedResources.resources)&&this.drapedResources.resources.material.setParameters(this.materialParameters)}get isClosed(){return t(this.geometry)&&"polygon"===this.geometry.type}get materialParameters(){return{width:this._width,color:this._color,stippleOffColor:this._stippleOffColor,stipplePattern:this._stipplePattern,stipplePreferContinuous:!1,isClosed:this.isClosed,falloff:this._falloff,innerColor:this._innerColor,innerWidth:this._innerWidth,join:"round",hasPolygonOffset:!0,renderOccluded:this.normalizedRenderOccluded}}get normalizedRenderOccluded(){return this.isDraped&&this._renderOccluded===I.OccludeAndTransparentStencil?I.OccludeAndTransparent:this._renderOccluded}_recreateGeometry(e,t,r){const s=this._createRenderGeometries();for(const i of s)e.addGeometry(i,t),r.push(i);this._attachmentOriginChanged()}_attachmentOriginChanged(){this._attachmentOriginDirty=!0,this.events.emit("attachment-origin-changed")}_createResources(e){const t=new M(this.materialParameters),r=[];return this._recreateGeometry(e,t,r),{material:t,geometries:r,forEach:e=>{e(t),r.forEach(e)}}}_createDrapedResources(){const e=new M(this.materialParameters);return{material:e,geometries:this._createRenderGeometriesDraped(e)}}_createRenderGeometriesDraped(e){const t=this.geometry;if(s(t))return[];const r=b(t,this.view.basemapTerrain.spatialReference),i=[];for(const{position:s}of r.lines){const t={overlayInfo:{spatialReference:this.view.basemapTerrain.spatialReference,renderCoordsHelper:this.view.renderCoordsHelper},attributeData:{position:s},removeDuplicateStartEnd:this.isClosed?E.REMOVE:E.KEEP},r=new A(P(t),e),a=f(T);_(a,s),c(r.boundingSphere,.5*(a[0]+a[3]),.5*(a[1]+a[4]),0,.5*Math.sqrt((a[3]-a[0])*(a[3]-a[0])+(a[4]-a[1])*(a[4]-a[1]))),i.push(r)}return i}calculateMapBounds(e){if(s(this.resources.resources))return!1;const t=this.view.renderCoordsHelper;for(const r of this.resources.resources.geometries){const s=r.vertexAttributes.get(G.POSITION),i=new Float64Array(s.data.length);p(s.data,t.spatialReference,0,i,this.view.spatialReference,0,s.data.length/3),_(e,i)}return!0}_createRenderGeometries(){
|
|
5
|
+
import e from"../../../../core/Evented.js";import{isSome as t,unwrap as r,isNone as s}from"../../../../core/maybe.js";import{s as i,a,g as n}from"../../../../chunks/vec3.js";import{c as o}from"../../../../chunks/vec3f64.js";import{g as l,c as h,s as c}from"../../../../chunks/vec4.js";import{f as d,a as u}from"../../../../chunks/vec4f32.js";import{projectBuffer as p}from"../../../../geometry/projection.js";import{create as m,empty as f,expandWithBuffer as _}from"../../../../geometry/support/aaBoundingBox.js";import{makeDehydratedPoint as g}from"../../../../layers/graphics/dehydratedFeatures.js";import{getGeometryEffectiveElevationMode as y}from"../../../../support/elevationInfoUtils.js";import v from"../../../../symbols/support/ElevationInfo.js";import{DrapedVisualElementResources as O}from"./DrapedVisualElementResources.js";import{LaserlineVisualElement as w}from"./LaserlineVisualElement.js";import{VisualElementResources as C}from"./VisualElementResources.js";import{ElevationContext as R}from"../../layers/graphics/ElevationContext.js";import{geometryToRenderInfoDraped as b,RemoveDuplicateStartEnd as E,createGeometry as P,geometryToRenderInfo as D}from"../../layers/graphics/lineUtils.js";import{computeAttachmentOriginLines as j}from"../../webgl-engine/lib/geometryDataUtils.js";import{RenderOccludedFlag as I}from"../../webgl-engine/lib/Material.js";import{RenderGeometry as A}from"../../webgl-engine/lib/RenderGeometry.js";import{VertexAttribute as G}from"../../webgl-engine/lib/VertexAttribute.js";import{RibbonLineMaterial as M}from"../../webgl-engine/materials/RibbonLineMaterial.js";class S{constructor(t){this.view=null,this._attachmentOrigin=g(0,0,0,null),this._attachmentOriginDirty=!0,this.events=new e,this._isDraped=!1,this._geometry=null,this._width=1,this._color=d(1,0,1,1),this._innerWidth=0,this._innerColor=d(1,1,1,1),this._stipplePattern=null,this._stippleOffColor=null,this._falloff=0,this._elevationInfo=null,this._laserlineStyle=null,this._laserlineEnabled=!1,this._renderOccluded=I.OccludeAndTransparentStencil,this.resources=new C({view:t.view,createResources:e=>this._createResources(e),recreateGeometry:(e,t)=>(e.geometries.length=0,this._recreateGeometry(t,e.material,e.geometries),e.geometries)}),this._attachmentOrigin.spatialReference=t.view.spatialReference,this.drapedResources=new O({view:t.view,createResources:()=>this._createDrapedResources(),recreateGeometry:e=>{e.geometries=this._createRenderGeometriesDraped(e.material),this._attachmentOriginChanged()}});let r=!0;this._laserline=new w({view:t.view});for(const e in t)e in this?"attached"===e?r=t[e]:this[e]=t[e]:console.error("Cannot set unknown property",e);this.attached=r}destroy(){this.resources.destroy(),this.drapedResources.destroy(),this._laserline.destroy()}get isDraped(){return this._isDraped}set isDraped(e){e!==this._isDraped&&(this._isDraped=e,this._updateAttached(this.attached),this._laserline.attached=this.laserlineAttached)}get laserlineAttached(){return this.attached&&this.visible&&t(this._laserlineStyle)&&!this.isDraped&&this.laserlineEnabled}get visible(){return this.resources.visible}set visible(e){this.resources.visible=e,this.drapedResources.visible=e,this._laserline.attached=this.laserlineAttached}get attached(){return this.resources.attached||this.drapedResources.attached}set attached(e){this._updateAttached(e)}_updateAttached(e){this.resources.attached=!this.isDraped&&e,this.drapedResources.attached=this.isDraped&&e,this._laserline.attached=this.laserlineAttached,this.attached&&this._attachmentOriginChanged()}get geometry(){return this._geometry}set geometry(e){this._geometry=e,this.resources.recreateGeometry(),this.drapedResources.recreateGeometry()}get width(){return this._width}set width(e){e!==this._width&&(this._width=e,this._updateMaterial())}get color(){return this._color}set color(e){l(e,this._color)||(h(this._color,e),this._updateMaterial())}get innerWidth(){return this._innerWidth}set innerWidth(e){e!==this._innerWidth&&(this._innerWidth=e,this._updateMaterial())}get innerColor(){return this._innerColor}set innerColor(e){l(e,this._innerColor)||(h(this._innerColor,e),this._updateMaterial())}get stipplePattern(){return this._stipplePattern}set stipplePattern(e){const r=t(e)!==t(this._stipplePattern);this._stipplePattern=e,r?this.resources.recreate():this._updateMaterial()}get stippleOffColor(){return this._stippleOffColor}set stippleOffColor(e){e&&this._stippleOffColor&&l(e,this._stippleOffColor)||(this._stippleOffColor=e?u(e):null,this._updateMaterial())}get falloff(){return this._falloff}set falloff(e){e!==this._falloff&&(this._falloff=e,this._updateMaterial())}get elevationInfo(){return this._elevationInfo}set elevationInfo(e){this._elevationInfo=e,this.resources.recreateGeometry()}get laserlineStyle(){return this._laserlineStyle}set laserlineStyle(e){this._laserlineStyle=e,this._laserline.attached=this.laserlineAttached,t(e)&&(this._laserline.style=e)}get laserlineEnabled(){return this._laserlineEnabled}set laserlineEnabled(e){this._laserlineEnabled!==e&&(this._laserlineEnabled=e,this._laserline.attached=this.laserlineAttached)}get renderOccluded(){return this._renderOccluded}set renderOccluded(e){e!==this._renderOccluded&&(this._renderOccluded=e,this._updateMaterial())}get attachmentOrigin(){if(!this._attachmentOriginDirty)return this._attachmentOrigin;const e=t(this.resources.resources)?this.resources.resources.geometries:null;if(!e||0===e.length)return null;i(V,0,0,0);let s=0;for(const t of e){const e=t.vertexAttributes.get(G.POSITION),i=t.indices.get(G.POSITION),n=r(this.resources.resources).material.isClosed(e.data,i);j(e,i,n,W)&&(a(V,V,W),s++)}return 0===s?null:(n(V,V,1/s),this.view.renderCoordsHelper.fromRenderCoords(V,this._attachmentOrigin),this._attachmentOriginDirty=!1,this._attachmentOrigin)}_updateMaterial(){t(this.resources.resources)&&this.resources.resources.material.setParameters(this.materialParameters),t(this.drapedResources.resources)&&this.drapedResources.resources.material.setParameters(this.materialParameters)}get isClosed(){return t(this.geometry)&&"polygon"===this.geometry.type}get materialParameters(){return{width:this._width,color:this._color,stippleOffColor:this._stippleOffColor,stipplePattern:this._stipplePattern,stipplePreferContinuous:!1,isClosed:this.isClosed,falloff:this._falloff,innerColor:this._innerColor,innerWidth:this._innerWidth,join:"round",hasPolygonOffset:!0,renderOccluded:this.normalizedRenderOccluded}}get normalizedRenderOccluded(){return this.isDraped&&this._renderOccluded===I.OccludeAndTransparentStencil?I.OccludeAndTransparent:this._renderOccluded}_recreateGeometry(e,t,r){const s=this._createRenderGeometries();for(const i of s)e.addGeometry(i,t),r.push(i);this._attachmentOriginChanged()}_attachmentOriginChanged(){this._attachmentOriginDirty=!0,this.events.emit("attachment-origin-changed")}_createResources(e){const t=new M(this.materialParameters),r=[];return this._recreateGeometry(e,t,r),{material:t,geometries:r,forEach:e=>{e(t),r.forEach(e)}}}_createDrapedResources(){const e=new M(this.materialParameters);return{material:e,geometries:this._createRenderGeometriesDraped(e)}}_createRenderGeometriesDraped(e){const t=this.geometry;if(s(t))return[];const r=b(t,this.view.basemapTerrain.spatialReference),i=[];for(const{position:s}of r.lines){const t={overlayInfo:{spatialReference:this.view.basemapTerrain.spatialReference,renderCoordsHelper:this.view.renderCoordsHelper},attributeData:{position:s},removeDuplicateStartEnd:this.isClosed?E.REMOVE:E.KEEP},r=new A(P(t),e),a=f(T);_(a,s),c(r.boundingSphere,.5*(a[0]+a[3]),.5*(a[1]+a[4]),0,.5*Math.sqrt((a[3]-a[0])*(a[3]-a[0])+(a[4]-a[1])*(a[4]-a[1]))),i.push(r)}return i}calculateMapBounds(e){if(s(this.resources.resources))return!1;const t=this.view.renderCoordsHelper;for(const r of this.resources.resources.geometries){const s=r.vertexAttributes.get(G.POSITION),i=new Float64Array(s.data.length);p(s.data,t.spatialReference,0,i,this.view.spatialReference,0,s.data.length/3),_(e,i)}return!0}_createRenderGeometries(){const e=this.geometry;if(s(e))return[];const t=D(e,this.view.elevationProvider,this.view.renderCoordsHelper,R.fromElevationInfo(this.elevationInfo??new v({mode:y(e,null)}))),r=[],i=[];for(const{position:s,mapPosition:a}of t.lines){const e={overlayInfo:null,attributeData:{position:s,mapPosition:a},removeDuplicateStartEnd:this.isClosed?E.REMOVE:E.KEEP};r.push(P(e)),i.push(s)}return this._laserline.pathVerticalPlane=i,r}}const T=m(),W=o(),V=o();export{S as OutlineVisualElement};
|
|
@@ -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{isSome as e,isNone as s}from"../../../../core/maybe.js";import{watch as r,initial as t}from"../../../../core/reactiveUtils.js";import{UpdatePolicy as o}from"../../webgl-engine/lib/basicInterfaces.js";import{ContentObjectType as i}from"../../webgl-engine/lib/ContentObjectType.js";import{Object3D as c}from"../../webgl-engine/lib/Object3D.js";import{Texture as a}from"../../webgl-engine/lib/Texture.js";import{WebGLLayer as h}from"../../webgl-engine/lib/WebGLLayer.js";class u{constructor(e){this.resourceFactory=e,this._resources=null,this._visible=!0,this._attached=!1}destroy(){this._destroyResources()}get object(){return e(this._resources)?this._resources.object:null}get resources(){return e(this._resources)?this._resources.external:null}get visible(){return this._visible}set visible(e){e!==this._visible&&(this._visible=e,this._syncVisible())}get attached(){return this._attached}set attached(e){e!==this._attached&&(this._attached=e,this._createOrDestroyResources())}recreate(){this.attached&&this._createResources()}recreateGeometry(){if(!this.resourceFactory.recreateGeometry)return void this.recreate();const e=this.resourceFactory.view._stage;if(s(this._resources)||!e)return;const r=this._resources.object;this._resources.external.forEach((s=>{s.type===i.Geometry&&e.remove(s)})),r.removeAllGeometries();const t=this.resourceFactory.recreateGeometry(this._resources.external,r,this._resources.layer);e.addMany(t)}_createOrDestroyResources(){this._attached?this._resources||this._createResources():this._destroyResources()}_createResources(){this._destroyResources();const e=this.resourceFactory,s=e.view,i=s._stage;if(!i)return;const u=new h({isPickable:!1,updatePolicy:o.SYNC});i.add(u);const n=new c({castShadow:!1}),l=e.createResources(n,u);l.forEach((e=>{i.add(e),e instanceof a&&i.loadImmediate(e)})),i.add(n),u.add(n);const _=e.cameraChanged?r((()=>s.state.camera),(s=>e.cameraChanged(s)),t):null;this._resources={layer:u,object:n,external:l,cameraHandle:_},this._syncVisible()}_destroyResources(){if(s(this._resources))return;const e=this.resourceFactory.view._stage;
|
|
5
|
+
import{isSome as e,isNone as s}from"../../../../core/maybe.js";import{watch as r,initial as t}from"../../../../core/reactiveUtils.js";import{UpdatePolicy as o}from"../../webgl-engine/lib/basicInterfaces.js";import{ContentObjectType as i}from"../../webgl-engine/lib/ContentObjectType.js";import{Object3D as c}from"../../webgl-engine/lib/Object3D.js";import{Texture as a}from"../../webgl-engine/lib/Texture.js";import{WebGLLayer as h}from"../../webgl-engine/lib/WebGLLayer.js";class u{constructor(e){this.resourceFactory=e,this._resources=null,this._visible=!0,this._attached=!1}destroy(){this._destroyResources()}get object(){return e(this._resources)?this._resources.object:null}get resources(){return e(this._resources)?this._resources.external:null}get visible(){return this._visible}set visible(e){e!==this._visible&&(this._visible=e,this._syncVisible())}get attached(){return this._attached}set attached(e){e!==this._attached&&(this._attached=e,this._createOrDestroyResources())}recreate(){this.attached&&this._createResources()}recreateGeometry(){if(!this.resourceFactory.recreateGeometry)return void this.recreate();const e=this.resourceFactory.view._stage;if(s(this._resources)||!e)return;const r=this._resources.object;this._resources.external.forEach((s=>{s.type===i.Geometry&&e.remove(s)})),r.removeAllGeometries();const t=this.resourceFactory.recreateGeometry(this._resources.external,r,this._resources.layer);e.addMany(t)}_createOrDestroyResources(){this._attached?this._resources||this._createResources():this._destroyResources()}_createResources(){this._destroyResources();const e=this.resourceFactory,s=e.view,i=s._stage;if(!i)return;const u=new h({isPickable:!1,updatePolicy:o.SYNC});i.add(u);const n=new c({castShadow:!1}),l=e.createResources(n,u);l.forEach((e=>{i.add(e),e instanceof a&&i.loadImmediate(e)})),i.add(n),u.add(n);const _=e.cameraChanged?r((()=>s.state.camera),(s=>e.cameraChanged(s)),t):null;this._resources={layer:u,object:n,external:l,cameraHandle:_},this._syncVisible()}_destroyResources(){if(s(this._resources))return;const e=this.resourceFactory.view._stage;e?.remove(this._resources.object),e?.remove(this._resources.layer),this._resources.external.forEach((s=>{e?.remove(s),"dispose"in s&&s.dispose()})),this._resources.object.dispose(),this._resources.cameraHandle&&this._resources.cameraHandle.remove(),this._resources=null}_syncVisible(){s(this._resources)||this._resources.object.setVisible(this._visible)}}export{u as VisualElementResources};
|