@arcgis/core 5.0.0-next.70 → 5.0.0-next.72
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/Ground.js +1 -1
- package/analysis/Dimension/types.d.ts +5 -1
- package/analysis/DistanceMeasurementAnalysis.d.ts +22 -3
- package/analysis/ElevationProfile/types.d.ts +10 -2
- package/analysis/ShadowCast/DiscreteOptions.d.ts +4 -0
- package/analysis/ShadowCast/MinDurationOptions.d.ts +7 -0
- package/analysis/ShadowCast/TotalDurationOptions.d.ts +4 -0
- package/analysis/ShadowCastAnalysis.d.ts +51 -8
- package/analysis/Slice/types.d.ts +5 -1
- package/analysis/VolumeMeasurement/types.d.ts +5 -1
- package/analysis/VolumeMeasurement/volumeMeasurementConfiguration.js +1 -1
- package/analysis/types.d.ts +39 -7
- package/applications/Components/QuantityFormatter.js +1 -1
- package/applications/Components/analysisUtils.d.ts +1 -2
- package/applications/Components/analysisUtils.js +1 -1
- package/applications/Components/imageryUtils.d.ts +2 -2
- package/applications/Components/testUtils.d.ts +2 -0
- package/applications/KnowledgeStudio/dataModelVisualization.d.ts +1 -0
- package/applications/KnowledgeStudio/generalSdkInternalAccess.d.ts +59 -13
- package/applications/KnowledgeStudio/generalSharedKgUtils.d.ts +1 -1
- package/applications/PortalApp/layerUtils.d.ts +1 -0
- package/applications/Urban/LineImagePattern3D.d.ts +2 -0
- package/applications/Urban/imagePatternUtils.d.ts +4 -0
- package/arcade.d.ts +20 -11
- package/assets/esri/core/workers/RemoteClient.js +1 -1
- package/assets/esri/core/workers/chunks/00631252e8bd4a456253.js +1 -0
- package/assets/esri/core/workers/chunks/{322085d63719da6e443c.js → 0c02b084ae30ba138c5d.js} +1 -1
- package/assets/esri/core/workers/chunks/0f2f1731543ed21db0a8.js +1 -0
- package/assets/esri/core/workers/chunks/1b201d83e9ba7d8615c0.js +1 -0
- package/assets/esri/core/workers/chunks/1b284a6f32effe28aafc.js +1 -0
- package/assets/esri/core/workers/chunks/1bd5b421152fb0f46aa5.js +37 -0
- package/assets/esri/core/workers/chunks/{2e2c47f8a80ee9234350.js → 1d8fc0239c907ff5d1e8.js} +1 -1
- package/assets/esri/core/workers/chunks/{b4f944ef6c174b20b619.js → 23545a9adc75564ecf6e.js} +1 -1
- package/assets/esri/core/workers/chunks/261b5a5db022ef580a1b.js +1 -0
- package/assets/esri/core/workers/chunks/2bd59ece927b5c1c9f80.js +1 -0
- package/assets/esri/core/workers/chunks/{37e46461da3000949a26.js → 2d8b8880e6bff4414e95.js} +1 -1
- package/assets/esri/core/workers/chunks/2fba74bae99ece15706c.js +1 -0
- package/assets/esri/core/workers/chunks/2fc64404bc42b7250086.js +1 -0
- package/assets/esri/core/workers/chunks/33cbfc34d5e2fc1a1a4f.js +1 -0
- package/assets/esri/core/workers/chunks/35887be3e4a218268d99.js +1 -0
- package/assets/esri/core/workers/chunks/3596ae4cb2bd2f3f35d9.js +1 -0
- package/assets/esri/core/workers/chunks/37814bf052ab59a5fb9e.js +1 -0
- package/assets/esri/core/workers/chunks/4e0d299054da075e5103.js +1 -0
- package/assets/esri/core/workers/chunks/50186162cd6d7c2ef0f9.js +1 -0
- package/assets/esri/core/workers/chunks/543ea1a0e7a6f1d267d1.js +1 -0
- package/assets/esri/core/workers/chunks/{dbfb00fb28b8b9f687a1.js → 5bbf20135c87a1cc8a18.js} +1 -1
- package/assets/esri/core/workers/chunks/5ed31ec0f53c1d55c4ea.js +1 -0
- package/assets/esri/core/workers/chunks/{c448540065690cac0744.js → 6087d5dc40bb62ec48c8.js} +1 -1
- package/assets/esri/core/workers/chunks/6309e8beedf5e7f2a50f.js +1 -0
- package/assets/esri/core/workers/chunks/{1a45b4b4803337f4b99f.js → 64985e9b6e2edb3ceb37.js} +38 -38
- package/assets/esri/core/workers/chunks/65475370cc4ebe2aa657.js +1 -0
- package/assets/esri/core/workers/chunks/65d9f3bc88472008443a.js +1 -0
- package/assets/esri/core/workers/chunks/6ab0f16f5c8806855c47.js +1 -0
- package/assets/esri/core/workers/chunks/7e37a3005f2ad2c0a918.js +1 -0
- package/assets/esri/core/workers/chunks/7f2496a59379e1a61ee5.js +1 -0
- package/assets/esri/core/workers/chunks/88379cd8e8e1c7ae3c7c.js +1 -0
- package/assets/esri/core/workers/chunks/{244006d4b0547d574401.js → 935a6dccb88557f98189.js} +143 -140
- package/assets/esri/core/workers/chunks/{a808be466812db51813d.js → 9382af94bf6bf1b09c8c.js} +1 -1
- package/assets/esri/core/workers/chunks/{8e83c133b201b9b61e70.js → 979bc762ccc0d3fc2467.js} +1 -1
- package/assets/esri/core/workers/chunks/9c417f4dfb19e4c4bd71.js +1 -0
- package/assets/esri/core/workers/chunks/a554ad74be03b1ed1a72.js +1 -0
- package/assets/esri/core/workers/chunks/{e6e837e43b9348050832.js → a67c86f4254807eb6a05.js} +1 -1
- package/assets/esri/core/workers/chunks/{1ec1a1997b5577619040.js → b211b53aa7616a093b90.js} +1 -1
- package/assets/esri/core/workers/chunks/{866477acdf03b8a40bc9.js → bd1d159dce4094694c93.js} +1 -1
- package/assets/esri/core/workers/chunks/c31babdb59382b6bc007.js +1 -0
- package/assets/esri/core/workers/chunks/c8182c2cbb0ead202af6.js +1 -0
- package/assets/esri/core/workers/chunks/ce218c10b209b58e04fd.js +1 -0
- package/assets/esri/core/workers/chunks/ceef586d8cc8adc4d249.js +1 -0
- package/assets/esri/core/workers/chunks/d13e8ce9270dc0662b87.js +1 -0
- package/assets/esri/core/workers/chunks/db28d00171240b4fffac.js +1 -0
- package/assets/esri/core/workers/chunks/{8d6641d0f7c93f83c414.js → db9c7182847e8f96ffe3.js} +1 -1
- package/assets/esri/core/workers/chunks/dbd382546837aa7709e2.js +1 -0
- package/assets/esri/core/workers/chunks/{6c9dac4a869742cc2718.js → e246b256347a281c13fd.js} +1 -1
- package/assets/esri/core/workers/chunks/ea6f897f21b4f30e8e99.js +1 -0
- package/assets/esri/core/workers/chunks/{a10c6dd3bb8b3602de68.js → ee175fd4ec706f7878c0.js} +1 -1
- package/assets/esri/core/workers/chunks/{e8a3ad00936f2ccaf362.js → f0a667d8d33bc51c795d.js} +1 -1
- package/assets/esri/core/workers/chunks/f65b27fc0bc2f242aac7.js +1 -0
- package/assets/esri/core/workers/chunks/{29b09db309ff75fb3e97.js → f65d26588d2d80680a26.js} +1 -1
- package/assets/esri/core/workers/chunks/f72e6c903f55ce95a6c5.js +1 -0
- package/assets/esri/core/workers/chunks/{5dd5be91038df8902dc4.js → f7dfbf24859f4ac2421b.js} +1 -1
- package/assets/esri/core/workers/chunks/f893e10d660e819cca45.js +1 -0
- package/assets/esri/core/workers/chunks/{878010ca23da0bca9405.js → fb1ed5ef2f95ab093346.js} +1 -1
- package/assets/esri/libs/lyr3d/lyr3DMain.wasm +0 -0
- package/assets/esri/libs/lyr3d/lyr3DWorker.wasm +0 -0
- package/chunks/lyr3DMain.js +1 -1
- package/config.js +1 -1
- package/core/Version.d.ts +11 -2
- package/core/accessorSupport/types.d.ts +35 -5
- package/core/quantityFormatUtils.js +1 -1
- package/core/sql/types.d.ts +226 -31
- package/core/types.d.ts +24 -4
- package/core/workers/registry.js +1 -1
- package/editing/sharedTemplates/types.d.ts +1 -0
- package/editing/types.d.ts +2 -0
- package/effects/types.d.ts +1 -0
- package/form/ExpressionInfo.d.ts +1 -1
- package/form/FormTemplate.d.ts +4 -4
- package/form/elements/GroupElement.d.ts +1 -1
- package/form/elements/RelationshipElement.d.ts +3 -3
- package/form/elements/inputs/attachments/AttachmentInput.d.ts +2 -1
- package/form/elements/inputs/attachments/AudioInput.d.ts +1 -0
- package/form/elements/inputs/attachments/DocumentInput.d.ts +1 -0
- package/form/elements/inputs/attachments/ImageInput.d.ts +1 -0
- package/form/elements/inputs/attachments/Input.d.ts +5 -1
- package/form/elements/inputs/attachments/SignatureInput.d.ts +1 -0
- package/form/elements/inputs/attachments/VideoInput.d.ts +1 -0
- package/form/elements/inputs/attachments/types.d.ts +12 -3
- package/form/elements/inputs.d.ts +2 -2
- package/form/types.d.ts +3 -0
- package/geometry/geometryEngineTypes.d.ts +49 -9
- package/geometry/operators/types.d.ts +29 -4
- package/geometry/spatialReferenceEllipsoidUtils.js +1 -1
- package/geometry/support/MeshVertexAttributes.d.ts +21 -2
- package/geometry/support/meshUtils/types.d.ts +126 -18
- package/geometry/types.d.ts +37 -6
- package/ground/NavigationConstraint.d.ts +3 -0
- package/identity/IdentityManagerBase.d.ts +153 -27
- package/interfaces.d.ts +27 -27
- package/intl/date.d.ts +5 -0
- package/intl/locale.d.ts +1 -0
- package/intl/messages.d.ts +12 -2
- package/intl/number.d.ts +5 -0
- package/intl/substitute.d.ts +28 -5
- package/intl/t9n.d.ts +13 -2
- package/kernel.js +1 -1
- package/layers/GaussianSplatLayer.d.ts +87 -6
- package/layers/ImageryTileLayer.d.ts +8 -8
- package/layers/IntegratedMesh3DTilesLayer.js +1 -1
- package/layers/LinkChartLayer.d.ts +1 -1
- package/layers/Lyr3DWasmPerSceneView.js +1 -1
- package/layers/RouteLayer.d.ts +3 -3
- package/layers/buildingSublayers/utils.d.ts +1 -0
- package/layers/effects/types.d.ts +12 -2
- package/layers/graphics/editingSupport.d.ts +202 -38
- package/layers/graphics/sources/ParquetSource.d.ts +23 -4
- package/layers/knowledgeGraph/IdTypePair.d.ts +15 -3
- package/layers/knowledgeGraph/KnowledgeGraphLayerDataManager.d.ts +61 -9
- package/layers/knowledgeGraph/LayoutMode.d.ts +1 -0
- package/layers/knowledgeGraph/dataModelVisualizationUtils.d.ts +6 -0
- package/layers/media/types.d.ts +25 -4
- package/layers/mixins/ArcGISImageService.d.ts +8 -9
- package/layers/mixins/ArcGISMapService.d.ts +5 -1
- package/layers/mixins/EditBusLayer.d.ts +3 -5
- package/layers/mixins/ImageryTileMixin.d.ts +2 -4
- package/layers/mixins/RasterJobHandlerMixin.js +1 -1
- package/layers/mixins/ScaleRange.d.ts +11 -2
- package/layers/mixins/properties/ILayerWithGetFeatureTitle.d.ts +11 -2
- package/layers/mixins/properties/ILayerWithGetField.d.ts +6 -1
- package/layers/ogc/ogcFeatureUtils.d.ts +2 -0
- package/layers/ogc/types.d.ts +55 -10
- package/layers/ogc/wcsUtils.d.ts +1 -0
- package/layers/ogc/wfsUtils.d.ts +8 -17
- package/layers/orientedImagery/core/ElevationSourceDefinitions.d.ts +6 -1
- package/layers/orientedImagery/transformations/types.d.ts +117 -21
- package/layers/orientedImagery/types.d.ts +37 -6
- package/layers/pointCloudFilters/typeUtils.d.ts +1 -0
- package/layers/raster/datasets/TIFFRaster.js +1 -1
- package/layers/raster/datasets/pixelReader.d.ts +2 -0
- package/layers/raster/datasets/types.d.ts +1 -0
- package/layers/raster/datasets/wcsCapabilitiesParser.d.ts +86 -17
- package/layers/raster/datasets/wcsCoverageParser.d.ts +601 -115
- package/layers/raster/formats/ImageCanvasDecoder.js +1 -1
- package/layers/raster/formats/JpgPlus.js +1 -1
- package/layers/raster/formats/RasterCodec.js +1 -1
- package/layers/raster/formats/Raw.js +1 -1
- package/layers/raster/formats/TiffDecoder.js +1 -1
- package/layers/raster/functions/changeDetectionUtils.d.ts +1 -0
- package/layers/raster/functions/creators/createAppearenceFunctions.d.ts +82 -15
- package/layers/raster/functions/creators/createBandIndexFunctions.d.ts +380 -70
- package/layers/raster/functions/creators/createChangeFunctions.d.ts +11 -2
- package/layers/raster/functions/creators/createConversionFunctions.d.ts +18 -3
- package/layers/raster/functions/creators/createDataManagementFunctions.d.ts +179 -35
- package/layers/raster/functions/creators/createLocalFunctions.d.ts +47 -9
- package/layers/raster/functions/creators/createMultiRasterAnalysisFunctions.d.ts +47 -9
- package/layers/raster/functions/creators/createStatisticsFunctions.d.ts +42 -8
- package/layers/raster/functions/creators/createSurfaceFunctions.d.ts +72 -11
- package/layers/raster/functions/focalStatUtils.d.ts +1 -0
- package/layers/raster/functions/rasterProjectionHelper.js +1 -1
- package/layers/raster/functions/types.d.ts +29 -5
- package/layers/raster/types.d.ts +498 -6
- package/layers/support/BuildingFilterBlock.d.ts +19 -3
- package/layers/support/BuildingFilterMode.d.ts +1 -0
- package/layers/support/BuildingFilterModeSolid.d.ts +7 -1
- package/layers/support/BuildingFilterModeWireFrame.d.ts +17 -3
- package/layers/support/BuildingFilterModeXRay.d.ts +7 -1
- package/layers/support/CodedValue.d.ts +16 -3
- package/layers/support/ControlPoint.d.ts +17 -3
- package/layers/support/EditFieldsInfo.d.ts +21 -4
- package/layers/support/EditingCapabilities.d.ts +36 -7
- package/layers/support/ElevationQuery.js +1 -1
- package/layers/support/ElevationTileData.d.ts +25 -5
- package/layers/support/FieldFormat.d.ts +1 -0
- package/layers/support/GeometryDescriptor.js +1 -1
- package/layers/support/GeoreferenceBase.d.ts +1 -0
- package/layers/support/KMLMapImage.d.ts +13 -2
- package/layers/support/LabelExpressionInfo.d.ts +9 -1
- package/layers/support/MosaicRule.d.ts +41 -1
- package/layers/support/ParquetGeometryEncodingLocation.d.ts +13 -2
- package/layers/support/ParquetGeometryEncodingWkb.d.ts +7 -0
- package/layers/support/PixelBlock.d.ts +9 -4
- package/layers/support/PurgeOptions.d.ts +15 -2
- package/layers/support/RasterInfo.d.ts +1 -2
- package/layers/support/RasterJobHandler.js +1 -1
- package/layers/support/RasterWorker.js +1 -1
- package/layers/support/SpriteSource.d.ts +28 -6
- package/layers/support/layerUtils.d.ts +4 -0
- package/layers/support/rasterFunctionConstants.d.ts +39 -0
- package/layers/support/types.d.ts +423 -227
- package/layers/types.d.ts +771 -196
- package/layers/video/types.d.ts +72 -14
- package/layers/voxel/VoxelColorStop.d.ts +17 -3
- package/layers/voxel/VoxelFormat.d.ts +15 -2
- package/layers/voxel/VoxelIsosurface.d.ts +17 -2
- package/layers/voxel/VoxelOpacityStop.d.ts +8 -1
- package/layers/voxel/VoxelRangeFilter.d.ts +12 -2
- package/layers/voxel/VoxelUniqueValue.d.ts +19 -3
- package/layers/wms/types.d.ts +104 -19
- package/layers/wmts/types.d.ts +1 -0
- package/linkChart/ChronologicalLayoutSettings.d.ts +1 -1
- package/linkChart/OrganicLayoutSettings.d.ts +1 -1
- package/linkChart/types.d.ts +2 -0
- package/networks/UtilityNetworkTraceAnalysis.d.ts +61 -10
- package/networks/support/jsonTypes.d.ts +373 -71
- package/networks/support/typeUtils.d.ts +10 -0
- package/networks/support/utils.d.ts +30 -6
- package/package.json +1 -1
- package/popup/content/types.d.ts +1 -0
- package/popup/types.d.ts +33 -5
- package/portal/jsonTypes.d.ts +231 -39
- package/portal/support/resourceUtils.d.ts +49 -9
- package/portal/types.d.ts +98 -14
- package/renderers/FlowRenderer.js +1 -1
- package/renderers/RasterStretchRenderer.d.ts +1 -1
- package/renderers/support/AuthoringInfoClassBreakInfo.d.ts +4 -0
- package/renderers/support/AuthoringInfoFieldInfo.d.ts +15 -2
- package/renderers/support/DotDensityLegendOptions.d.ts +4 -0
- package/renderers/support/HeatmapLegendOptions.d.ts +8 -0
- package/renderers/support/OthersCategory.d.ts +6 -0
- package/renderers/support/RendererLegendOptions.d.ts +14 -2
- package/renderers/support/pointCloud/ColorClassBreakInfo.d.ts +13 -1
- package/renderers/support/pointCloud/ColorModulation.d.ts +6 -0
- package/renderers/support/pointCloud/ColorUniqueValueInfo.d.ts +19 -3
- package/renderers/support/pointCloud/PointSizeAlgorithm.d.ts +1 -0
- package/renderers/support/pointCloud/PointSizeFixedSizeAlgorithm.d.ts +14 -2
- package/renderers/support/pointCloud/PointSizeSplatAlgorithm.d.ts +9 -1
- package/renderers/support/pointCloud/types.d.ts +7 -1
- package/renderers/support/raster/types.d.ts +22 -2
- package/renderers/support/types.d.ts +29 -2
- package/renderers/types.d.ts +47 -4
- package/renderers/visualVariables/support/SizeVariableLegendOptions.d.ts +4 -0
- package/renderers/visualVariables/support/VisualVariableLegendOptions.d.ts +9 -1
- package/request/types.d.ts +152 -24
- package/rest/featureService/FeatureService.d.ts +1 -1
- package/rest/featureService/types.d.ts +426 -80
- package/rest/geometryService/types.d.ts +23 -1
- package/rest/geoprocessor/GPOptions.d.ts +5 -5
- package/rest/geoprocessor/execute.d.ts +6 -0
- package/rest/imageService.d.ts +5 -5
- package/rest/knowledgeGraph/DataModel.d.ts +2 -2
- package/rest/knowledgeGraph/GraphAnyValue.d.ts +1 -0
- package/rest/knowledgeGraph/GraphDataModelSingletonOperationResult.d.ts +12 -2
- package/rest/knowledgeGraph/GraphDeleteNamedTypeResult.d.ts +1 -1
- package/rest/knowledgeGraph/GraphDeletePropertyResult.d.ts +1 -1
- package/rest/knowledgeGraph/GraphQuery.d.ts +1 -1
- package/rest/knowledgeGraph/GraphSearch.d.ts +3 -3
- package/rest/knowledgeGraph/GraphSearchStreaming.d.ts +3 -3
- package/rest/knowledgeGraph/SearchIndex.d.ts +1 -1
- package/rest/knowledgeGraph/toolService/findPaths/CIMFilteredFindPathsPathFilter.d.ts +3 -3
- package/rest/knowledgeGraph/toolService/findPaths/CIMFilteredFindPathsResultJSON.d.ts +151 -29
- package/rest/knowledgeGraph/toolService/findPaths/CIMKGTraversalDirection.d.ts +1 -1
- package/rest/knowledgeGraph/wasmInterface/KnowledgeWasmInterface.d.ts +1 -0
- package/rest/knowledgeGraph/wasmInterface/WasmDataModelWrapperInterfaces.d.ts +9 -0
- package/rest/knowledgeGraphService.d.ts +4 -4
- package/rest/lastMileDelivery/types.d.ts +5 -0
- package/rest/layerSources/DynamicDataLayer.d.ts +14 -2
- package/rest/layerSources/DynamicMapLayer.d.ts +14 -2
- package/rest/layerSources/JoinTableDataSource.d.ts +21 -2
- package/rest/layerSources/QueryTableDataSource.d.ts +33 -6
- package/rest/layerSources/RasterDataSource.d.ts +17 -3
- package/rest/layerSources/TableDataSource.d.ts +22 -4
- package/rest/networks/circuits/support/ExportCircuitsParameters.d.ts +8 -1
- package/rest/networks/circuits/support/QueryCircuitsParameters.d.ts +18 -3
- package/rest/networks/support/QueryNamedTraceConfigurationsParameters.d.ts +22 -4
- package/rest/print.d.ts +1 -1
- package/rest/query/support/AttachmentInfo.d.ts +1 -1
- package/rest/support/AddressToLocationsParameters.d.ts +39 -3
- package/rest/support/AddressesToLocationsParameters.d.ts +14 -0
- package/rest/support/BaseImageMeasureResultValue.d.ts +21 -4
- package/rest/support/ClosestFacilityParameters.d.ts +3 -3
- package/rest/support/ClosestFacilitySolveResult.d.ts +2 -2
- package/rest/support/DirectionsString.d.ts +16 -3
- package/rest/support/ImageMeasureResultAngleValue.d.ts +12 -2
- package/rest/support/ImageMeasureResultAreaValue.d.ts +12 -2
- package/rest/support/ImageMeasureResultLengthValue.d.ts +12 -2
- package/rest/support/LocateSetting.d.ts +12 -2
- package/rest/support/LocateSettingBase.d.ts +14 -2
- package/rest/support/LocateSettingSource.d.ts +12 -2
- package/rest/support/LocateSettings.d.ts +22 -4
- package/rest/support/LocateSettingsOverrides.d.ts +42 -8
- package/rest/support/LocationToAddressParameters.d.ts +7 -0
- package/rest/support/NetworkAttribute.d.ts +11 -2
- package/rest/support/NetworkServiceDescription.d.ts +20 -4
- package/rest/support/QuantizationParameters.d.ts +9 -0
- package/rest/support/Query.d.ts +2 -2
- package/rest/support/RouteParameters.d.ts +2 -5
- package/rest/support/RouteResult.d.ts +1 -1
- package/rest/support/ServiceAreaParameters.d.ts +1 -1
- package/rest/support/ServiceAreaSolveResult.d.ts +2 -2
- package/rest/support/SuggestLocationsParameters.d.ts +10 -0
- package/rest/support/SuggestionCandidate.d.ts +14 -2
- package/rest/support/types.d.ts +54 -4
- package/rest/symbolService.d.ts +2 -2
- package/rest/types.d.ts +50 -5
- package/rest/versionManagement/gdbVersion/support/AlterVersionParameters.d.ts +22 -4
- package/rest/versionManagement/gdbVersion/support/PostResult.d.ts +6 -1
- package/rest/versionManagement/gdbVersion/support/ReconcileParameters.d.ts +10 -1
- package/rest/versionManagement/gdbVersion/support/ReconcileResult.d.ts +8 -1
- package/rest/versionManagement/support/CreateVersionParameters.d.ts +13 -2
- package/rest/versionManagement/support/GetVersionInfosParameters.d.ts +8 -1
- package/smartMapping/heuristics/types.d.ts +50 -6
- package/smartMapping/popup/types.d.ts +29 -5
- package/smartMapping/raster/renderers/types.d.ts +12 -1
- package/smartMapping/raster/support/adapters/types.d.ts +1 -0
- package/smartMapping/renderers/color.d.ts +9 -3
- package/smartMapping/renderers/dotDensity.d.ts +3 -1
- package/smartMapping/renderers/heatmap.d.ts +3 -1
- package/smartMapping/renderers/location.d.ts +3 -1
- package/smartMapping/renderers/opacity.d.ts +3 -1
- package/smartMapping/renderers/pieChart.d.ts +3 -1
- package/smartMapping/renderers/predominance.d.ts +3 -1
- package/smartMapping/renderers/relationship.d.ts +3 -1
- package/smartMapping/renderers/size.d.ts +23 -7
- package/smartMapping/renderers/support/rendererUtils.d.ts +3 -1
- package/smartMapping/renderers/type.d.ts +3 -1
- package/smartMapping/renderers/univariateColorSize.d.ts +3 -1
- package/smartMapping/statistics/types.d.ts +16 -4
- package/smartMapping/symbology/type.d.ts +5 -1
- package/smartMapping/symbology/types.d.ts +1303 -241
- package/smartMapping/types.d.ts +5 -0
- package/statistics/types.d.ts +13 -2
- package/support/revision.js +1 -1
- package/symbols/callouts/LineCallout3DBorder.d.ts +4 -0
- package/symbols/cim/types.d.ts +764 -111
- package/symbols/patterns/LinePattern3D.d.ts +1 -0
- package/symbols/patterns/Pattern3D.d.ts +1 -0
- package/symbols/support/IconSymbol3DLayerResource.d.ts +7 -0
- package/symbols/support/ObjectSymbol3DLayerResource.d.ts +7 -0
- package/symbols/support/OccludedVisibility.d.ts +3 -0
- package/symbols/support/Symbol3DAnchorPosition2D.d.ts +4 -0
- package/symbols/support/Symbol3DAnchorPosition3D.d.ts +5 -0
- package/symbols/support/Symbol3DFillMaterial.d.ts +4 -0
- package/symbols/support/Symbol3DHalo.d.ts +10 -0
- package/symbols/support/Symbol3DIconOutline.d.ts +10 -0
- package/symbols/support/Symbol3DMaterial.d.ts +6 -0
- package/symbols/support/Symbol3DOutline.d.ts +21 -2
- package/symbols/support/Symbol3DTextBackground.d.ts +12 -2
- package/symbols/support/symbolUtils.d.ts +5 -1
- package/symbols/support/types.d.ts +4 -0
- package/symbols/types.d.ts +67 -7
- package/tables/AttributeTableTemplate.d.ts +2 -2
- package/tables/elements/AttributeTableAttachmentElement.d.ts +1 -1
- package/tables/elements/AttributeTableElement.d.ts +2 -2
- package/tables/elements/AttributeTableFieldElement.d.ts +1 -1
- package/tables/elements/AttributeTableGroupElement.d.ts +1 -1
- package/tables/elements/AttributeTableRelationshipElement.d.ts +1 -1
- package/tables/support/FieldOrder.d.ts +16 -3
- package/tables/support/tablesUtils.d.ts +1 -0
- package/time/types.d.ts +4 -0
- package/versionManagement/VersionManagementService.d.ts +3 -6
- package/versionManagement/VersionManager.d.ts +126 -23
- package/versionManagement/VersioningState.d.ts +1 -1
- package/versionManagement/support/jsonTypes.d.ts +152 -30
- package/versionManagement/support/type.d.ts +2 -0
- package/versionManagement/versionAdapters/types.d.ts +25 -5
- package/views/2d/MapViewConstraints.d.ts +37 -5
- package/views/2d/analysis/AnalysisView2D.d.ts +5 -1
- package/views/2d/analysis/AreaMeasurementAnalysisView2D.d.ts +28 -4
- package/views/2d/analysis/DistanceMeasurementAnalysisView2D.d.ts +28 -4
- package/views/2d/analysis/types.d.ts +5 -1
- package/views/2d/engine/flow/BrushFlow.js +1 -1
- package/views/2d/engine/flow/FlowDisplayObject.js +1 -1
- package/views/2d/engine/flow/FlowStrategy.js +1 -1
- package/views/2d/engine/flow/FlowView2D.js +1 -1
- package/views/2d/engine/flow/ProcessingTimeEstimate.js +5 -0
- package/views/2d/engine/flow/animatedValues.js +5 -0
- package/views/2d/engine/flow/dataUtils.js +1 -1
- package/views/2d/engine/flow/flowPathsIO.js +5 -0
- package/views/2d/engine/flow/styles/AFlowResources.js +5 -0
- package/views/2d/engine/flow/styles/Imagery.js +1 -1
- package/views/2d/engine/flow/styles/Particles.js +1 -1
- package/views/2d/engine/flow/styles/Stack.js +1 -1
- package/views/2d/engine/flow/styles/Streamlines.js +1 -1
- package/views/2d/engine/flow/utils.js +1 -1
- package/views/2d/engine/vectorTiles/shaders/sources/shaderRepository.js +1 -1
- package/views/2d/engine/webgl/shaders/sources/shaderRepository.js +1 -1
- package/views/2d/layers/support/MediaLayerInteractionOptions.d.ts +1 -0
- package/views/2d/layers/types.d.ts +1 -0
- package/views/2d/types.d.ts +93 -6
- package/views/3d/analysis/AnalysisView3D.d.ts +5 -1
- package/views/3d/analysis/AreaMeasurement/support/AreaMeasurementController.js +1 -1
- package/views/3d/analysis/AreaMeasurement/support/AreaMeasurementVisualization.js +1 -1
- package/views/3d/analysis/AreaMeasurement/support/MeasurementData.js +1 -1
- package/views/3d/analysis/AreaMeasurementAnalysisView3D.js +1 -1
- package/views/3d/analysis/DirectLineMeasurement/types.d.ts +24 -4
- package/views/3d/analysis/LineOfSight/types.d.ts +1 -0
- package/views/3d/analysis/ShadowCastAnalysisView3D.d.ts +19 -3
- package/views/3d/analysis/VolumeMeasurement/VolumeMeasurementCutFillVisualization.js +1 -1
- package/views/3d/analysis/VolumeMeasurement/types.d.ts +5 -1
- package/views/3d/analysis/support/measurementUtils.js +1 -1
- package/views/3d/analysis/types.d.ts +25 -3
- package/views/3d/constraints/AltitudeConstraint.d.ts +5 -0
- package/views/3d/constraints/ClipDistanceConstraint.d.ts +13 -2
- package/views/3d/constraints/Constraints.d.ts +26 -4
- package/views/3d/constraints/TiltConstraint.d.ts +5 -0
- package/views/3d/environment/SceneViewEnvironment.d.ts +9 -0
- package/views/3d/environment/types.d.ts +3 -0
- package/views/3d/interactive/measurementTools/areaMeasurement3D/AreaMeasurement3DView.js +1 -1
- package/views/3d/interactive/visualElements/LineVisualElement.js +1 -1
- package/views/3d/interactive/visualElements/MeasurementAreaVisualElement.js +1 -1
- package/views/3d/interactive/visualElements/support/Segment.js +1 -1
- package/views/3d/layers/ImageryLayerView3D.js +1 -1
- package/views/3d/layers/IntegratedMesh3DTilesLayerView3D.js +1 -1
- package/views/3d/layers/i3s/LayerElevationProvider.js +1 -1
- package/views/3d/layers/support/MediaLayerInteractionOptions.d.ts +15 -2
- package/views/3d/layers/support/MediaLayerInteractionReshapeOptions.d.ts +3 -0
- package/views/3d/types.d.ts +52 -0
- package/views/3d/webgl/ManagedColorAttachment.d.ts +2 -0
- package/views/3d/webgl/ManagedDepthAttachment.d.ts +2 -0
- package/views/3d/webgl/ManagedFBO.d.ts +4 -0
- package/views/3d/webgl/ManagedFBOAttachment.d.ts +1 -0
- package/views/3d/webgl/ManagedFBOResource.d.ts +5 -0
- package/views/3d/webgl/types.d.ts +32 -6
- package/views/3d/webgl-engine/core/shaderLibrary/shading/EvaluateSceneLighting.glsl.js +20 -22
- package/views/3d/webgl-engine/core/shaderLibrary/shading/Gamma.glsl.js +9 -5
- package/views/3d/webgl-engine/core/shaderLibrary/terrain/TerrainTexture.glsl.js +8 -6
- package/views/3d/webgl-engine/effects/RenderPlugin.js +1 -1
- package/views/3d/webgl-engine/effects/RenderPluginManager.js +1 -1
- package/views/3d/webgl-engine/effects/geometry/RenderOccludedRenderNode.js +1 -1
- package/views/3d/webgl-engine/lib/Material.js +1 -1
- package/views/3d/webgl-engine/lib/Renderer.js +1 -1
- package/views/3d/webgl-engine/materials/HUDMaterial.js +1 -1
- package/views/3d/webgl-engine/materials/SlicePlaneMaterial.js +1 -1
- package/views/3d/webgl-engine/materials/VisualVariablePassParameters.js +1 -1
- package/views/3d/webgl-engine/materials/renderers/MergedRenderer.js +1 -1
- package/views/3d/webgl-engine/shaders/DefaultMaterialTechnique.js +1 -1
- package/views/3d/webgl-engine/shaders/OutputColorHighlightOLID.glsl.js +9 -8
- package/views/MapViewOrSceneView.d.ts +1 -0
- package/views/SceneView.d.ts +59 -0
- package/views/SceneView.js +1 -1
- package/views/View.d.ts +2 -2
- package/views/View2D.d.ts +37 -0
- package/views/View2D.js +1 -1
- package/views/Viewport2DMixin.d.ts +9 -6
- package/views/analysis/AnalysisView.d.ts +2 -0
- package/views/analysis/AreaMeasurement/types.d.ts +18 -3
- package/views/analysis/DistanceMeasurement/types.d.ts +13 -2
- package/views/analysis/ElevationProfile/ElevationProfileLineGroundComputation.js +1 -1
- package/views/analysis/ElevationProfile/elevationProfileGenerationUtils.js +1 -1
- package/views/analysis/types.d.ts +7 -1
- package/views/animation/easing.js +1 -1
- package/views/animation/types.d.ts +3 -4
- package/views/draw/CursorUpdateEvent.d.ts +24 -4
- package/views/draw/DrawAction.d.ts +4 -6
- package/views/draw/DrawCompleteEvent.d.ts +18 -3
- package/views/draw/VertexAddEvent.d.ts +19 -3
- package/views/draw/VertexRemoveEvent.d.ts +19 -3
- package/views/draw/types.d.ts +4 -0
- package/views/input/types.d.ts +371 -57
- package/views/interactive/sketch/SketchTooltipVisibleElements.d.ts +19 -1
- package/views/interactive/sketch/Units.d.ts +5 -0
- package/views/interactive/tooltip/types.d.ts +2 -0
- package/views/layers/HighlightLayerViewMixin.d.ts +59 -1
- package/views/layers/HighlightLayerViewMixin.js +1 -1
- package/views/layers/ImageryLayerViewMixin.d.ts +60 -2
- package/views/layers/ImageryTileLayerViewMixin.d.ts +2 -0
- package/views/layers/LayerView.d.ts +6 -0
- package/views/layers/MediaLayerViewMixin.d.ts +8 -1
- package/views/layers/types.d.ts +3 -0
- package/views/navigation/types.d.ts +6 -1
- package/views/support/AttributionItem.d.ts +10 -2
- package/views/support/MeasurementWorker.js +5 -0
- package/views/support/MeasurementWorkerHandle.js +5 -0
- package/views/support/automaticAreaMeasurementUtils.js +1 -1
- package/views/support/geodesicAreaMeasurementUtils.js +1 -1
- package/views/support/geodesicLengthMeasurementUtils.js +1 -1
- package/views/types.d.ts +306 -53
- package/views/ui/types.d.ts +42 -6
- package/webdoc/Widgets.d.ts +26 -5
- package/webdoc/geotriggersInfo/support/typeUtils.d.ts +3 -0
- package/webdoc/support/SlideThumbnail.d.ts +4 -0
- package/webdoc/support/types.d.ts +11 -2
- package/webdoc/support/webdocSaveUtils.d.ts +6 -0
- package/webdoc/widgets/FloorFilter.d.ts +25 -4
- package/webmap/Version.d.ts +1 -0
- package/webscene/Version.d.ts +1 -0
- package/webscene/support/Description.d.ts +3 -0
- package/webscene/support/SlideEnvironment.d.ts +6 -0
- package/webscene/support/SlideGround.d.ts +7 -1
- package/webscene/support/SlideVisibleLayer.d.ts +5 -0
- package/webscene/support/Title.d.ts +3 -0
- package/widgets/AreaMeasurement3D/AreaMeasurement3DViewModel.js +1 -1
- package/widgets/Attachments/types.d.ts +32 -6
- package/widgets/BasemapGallery/types.d.ts +3 -0
- package/widgets/BasemapLayerList/BasemapLayerListVisibleElements.d.ts +14 -0
- package/widgets/BasemapLayerList/types.d.ts +1 -0
- package/widgets/BatchAttributeForm/VisibleElements.d.ts +7 -1
- package/widgets/BatchAttributeForm/inputs/SingleFeatureInput.d.ts +2 -0
- package/widgets/BatchAttributeForm/inputs/TextElementInput.d.ts +14 -2
- package/widgets/BatchAttributeForm/inputs/types.d.ts +2 -0
- package/widgets/BatchAttributeForm/types.d.ts +75 -14
- package/widgets/BatchAttributeForm.d.ts +2 -2
- package/widgets/Bookmarks/BookmarksVisibleElements.d.ts +30 -9
- package/widgets/Bookmarks/types.d.ts +32 -10
- package/widgets/CatalogLayerList/CatalogLayerListVisibleElements.d.ts +11 -0
- package/widgets/CatalogLayerList/types.d.ts +1 -0
- package/widgets/Daylight/VisibleElements.d.ts +11 -1
- package/widgets/Daylight/types.d.ts +8 -2
- package/widgets/DirectionalPad/VisibleElements.d.ts +6 -0
- package/widgets/DirectionalPad/types.d.ts +13 -2
- package/widgets/Directions/DirectionsViewModel.d.ts +2 -2
- package/widgets/Directions/DirectionsVisibleElements.d.ts +8 -0
- package/widgets/Editor/CreateFeaturesWorkflowData.d.ts +3 -3
- package/widgets/Editor/EditorViewModel.d.ts +2 -3
- package/widgets/Editor/Edits.d.ts +1 -2
- package/widgets/Editor/SplitFeatureWorkflow.d.ts +2 -2
- package/widgets/Editor/VisibleElements.d.ts +46 -13
- package/widgets/Editor/support/EditorEditingCapabilities.d.ts +46 -9
- package/widgets/Editor/types.d.ts +149 -24
- package/widgets/ElevationProfile/ElevationProfileVisibleElements.d.ts +13 -1
- package/widgets/ElevationProfile/types.d.ts +87 -14
- package/widgets/Expand.d.ts +2 -2
- package/widgets/Feature/types.d.ts +105 -18
- package/widgets/FeatureForm/GroupInput.d.ts +1 -1
- package/widgets/FeatureForm/RelationshipInput.d.ts +1 -1
- package/widgets/FeatureForm/TextElementInput.d.ts +3 -5
- package/widgets/FeatureForm/UtilityNetworkAssociationInput.d.ts +1 -1
- package/widgets/FeatureForm/VisibleElements.d.ts +7 -1
- package/widgets/FeatureForm/types.d.ts +3 -0
- package/widgets/FeatureForm.d.ts +1 -1
- package/widgets/FeatureTable/ColumnMenuVisibleElements.d.ts +4 -0
- package/widgets/FeatureTable/FeatureTableViewModel.d.ts +14 -4
- package/widgets/FeatureTable/Grid/Column.d.ts +1 -1
- package/widgets/FeatureTable/Grid/GridViewModel.d.ts +2 -0
- package/widgets/FeatureTable/Grid/types.d.ts +137 -24
- package/widgets/FeatureTable/TableMenuVisibleElements.d.ts +10 -0
- package/widgets/FeatureTable/VisibleElements.d.ts +16 -2
- package/widgets/FeatureTable/support/ColumnTemplateBase.d.ts +1 -1
- package/widgets/FeatureTable/support/types.d.ts +155 -27
- package/widgets/FeatureTable.d.ts +3 -3
- package/widgets/FeatureTemplates/VisibleElements.d.ts +4 -0
- package/widgets/FeatureTemplates/types.d.ts +17 -2
- package/widgets/Features/FeaturesVisibleElements.d.ts +12 -0
- package/widgets/FloorFilter/FloorFilterViewModel.js +1 -1
- package/widgets/Histogram/types.d.ts +14 -2
- package/widgets/HistogramRangeSlider/types.d.ts +1 -0
- package/widgets/LayerList/LayerListVisibleElements.d.ts +10 -0
- package/widgets/LayerList/types.d.ts +8 -0
- package/widgets/Legend/styles/card/CardView.d.ts +13 -2
- package/widgets/Legend/styles/classic/ClassicView.d.ts +11 -2
- package/widgets/Measurement/types.d.ts +3 -0
- package/widgets/OrientedImageryViewer/types.d.ts +15 -3
- package/widgets/Popup/PopupVisibleElements.d.ts +11 -0
- package/widgets/Popup/types.d.ts +64 -7
- package/widgets/Print/FileLink.d.ts +36 -6
- package/widgets/Print/types.d.ts +77 -13
- package/widgets/ScaleRangeSlider/types.d.ts +4 -0
- package/widgets/ScaleRangeSlider.d.ts +5 -1
- package/widgets/Search/SearchResultRenderer.d.ts +0 -2
- package/widgets/Search/SearchSource.d.ts +2 -2
- package/widgets/Search/SearchViewModel.d.ts +6 -7
- package/widgets/Search/types.d.ts +4 -4
- package/widgets/ShadowCast/ShadowCastVisibleElements.d.ts +15 -1
- package/widgets/ShadowCast/types.d.ts +8 -2
- package/widgets/Sketch/CreateToolVisibilityMap.d.ts +19 -4
- package/widgets/Sketch/SelectionToolVisibilityMap.d.ts +4 -0
- package/widgets/Sketch/VisibleElements.d.ts +38 -6
- package/widgets/Sketch/types.d.ts +364 -60
- package/widgets/Slider/types.d.ts +249 -46
- package/widgets/Swipe/types.d.ts +6 -0
- package/widgets/TableList/TableListVisibleElements.d.ts +11 -0
- package/widgets/TableList/types.d.ts +5 -0
- package/widgets/TimeSlider/types.d.ts +45 -7
- package/widgets/Track/types.d.ts +4 -1
- package/widgets/UtilityNetworkAssociations/VisibleElements.d.ts +23 -4
- package/widgets/UtilityNetworkAssociations/VisibleElementsSettingsPane.d.ts +7 -0
- package/widgets/UtilityNetworkTrace/types.d.ts +26 -5
- package/widgets/ValuePicker/ValuePickerBaseComponent.d.ts +2 -0
- package/widgets/ValuePicker/ValuePickerSliderVisibleElements.d.ts +7 -1
- package/widgets/ValuePicker/ValuePickerVisibleElements.d.ts +9 -1
- package/widgets/ValuePicker/types.d.ts +8 -0
- package/widgets/Weather/VisibleElements.d.ts +6 -1
- package/widgets/Weather/types.d.ts +1 -0
- package/widgets/smartMapping/types.d.ts +63 -6
- package/widgets/support/GridControls/VisibleElements.d.ts +11 -0
- package/widgets/support/GridControls/types.d.ts +1 -0
- package/widgets/support/SnappingControls/VisibleElements.d.ts +26 -4
- package/widgets/support/forms/types.d.ts +2 -0
- package/widgets/support/types.d.ts +19 -3
- package/widgets/types.d.ts +549 -89
- package/assets/esri/core/workers/chunks/0367a8580fede8f804f9.js +0 -1
- package/assets/esri/core/workers/chunks/14f4f5b7549cea7b5a6a.js +0 -1
- package/assets/esri/core/workers/chunks/1b475593c80d7bccdda5.js +0 -1
- package/assets/esri/core/workers/chunks/27ec8688f72130239b98.js +0 -1
- package/assets/esri/core/workers/chunks/2dd347aa2a061d536e69.js +0 -1
- package/assets/esri/core/workers/chunks/2f6fa33692478e99d24b.js +0 -1
- package/assets/esri/core/workers/chunks/329b10897c6965948b84.js +0 -1
- package/assets/esri/core/workers/chunks/35593a9790818b689455.js +0 -1
- package/assets/esri/core/workers/chunks/3e7ea06b342e33bc48a5.js +0 -1
- package/assets/esri/core/workers/chunks/401ce5cb98fa14c1a725.js +0 -1
- package/assets/esri/core/workers/chunks/4387aaf9d5e8f6d1833d.js +0 -1
- package/assets/esri/core/workers/chunks/668a868fe2dcb6384ac9.js +0 -1
- package/assets/esri/core/workers/chunks/6acfa51b81e6f4255118.js +0 -1
- package/assets/esri/core/workers/chunks/6f8098f9fe233833245a.js +0 -1
- package/assets/esri/core/workers/chunks/76dbaef0d0794913f36f.js +0 -1
- package/assets/esri/core/workers/chunks/7c5218eae13d3bd30598.js +0 -1
- package/assets/esri/core/workers/chunks/7fc09382f934e9223a9b.js +0 -1
- package/assets/esri/core/workers/chunks/822ef6a043c7e147b4b6.js +0 -1
- package/assets/esri/core/workers/chunks/980313a6c35e79812d17.js +0 -1
- package/assets/esri/core/workers/chunks/98d68b145226e7527c84.js +0 -33
- package/assets/esri/core/workers/chunks/9c157c0eeadb824ad01e.js +0 -1
- package/assets/esri/core/workers/chunks/a39ac9127a215d14d412.js +0 -1
- package/assets/esri/core/workers/chunks/a893f8db2477cf677ac8.js +0 -1
- package/assets/esri/core/workers/chunks/a95e28ade258b144cbb5.js +0 -1
- package/assets/esri/core/workers/chunks/abcee7cfd53cfe1d91e9.js +0 -1
- package/assets/esri/core/workers/chunks/b9f0d313f59fc7c43560.js +0 -1
- package/assets/esri/core/workers/chunks/bbe2eaef7edfa33b6eea.js +0 -1
- package/assets/esri/core/workers/chunks/bfdf646d4c8f175a4236.js +0 -1
- package/assets/esri/core/workers/chunks/d749aa62ad694147aebe.js +0 -1
- package/assets/esri/core/workers/chunks/d7d9656b990ce8be2152.js +0 -1
- package/assets/esri/core/workers/chunks/df92239eefff04471a0b.js +0 -1
- package/assets/esri/core/workers/chunks/ee2ca25048a920e43743.js +0 -1
- package/assets/esri/core/workers/chunks/eeb24a4ab4993f1f4e8e.js +0 -1
- package/assets/esri/core/workers/chunks/fe5d2735f057c7789f4b.js +0 -1
- package/views/2d/engine/flow/FlowDisplayData.js +0 -5
- package/views/support/GeodesicMeasurementWorker.js +0 -5
- package/views/support/GeodesicMeasurementWorkerHandle.js +0 -5
package/views/2d/types.d.ts
CHANGED
|
@@ -11,59 +11,111 @@ import type WFSLayerView from "../layers/WFSLayerView.js";
|
|
|
11
11
|
import type { OGCFeatureLayerView } from "../layers/OGCFeatureLayerView.js";
|
|
12
12
|
import type { StreamLayerView } from "../layers/StreamLayerView.js";
|
|
13
13
|
|
|
14
|
+
/** @since 5.0 */
|
|
14
15
|
export interface LayerView2DMap {
|
|
16
|
+
/** @since 5.0 */
|
|
15
17
|
"base-dynamic": never;
|
|
18
|
+
/** @since 5.0 */
|
|
16
19
|
"base-elevation": never;
|
|
20
|
+
/** @since 5.0 */
|
|
17
21
|
"base-tile": never;
|
|
22
|
+
/** @since 5.0 */
|
|
18
23
|
"bing-maps": never;
|
|
24
|
+
/** @since 5.0 */
|
|
19
25
|
"building-scene": never;
|
|
26
|
+
/** @since 5.0 */
|
|
20
27
|
catalog: never;
|
|
28
|
+
/** @since 5.0 */
|
|
21
29
|
"catalog-dynamic-group": never;
|
|
30
|
+
/** @since 5.0 */
|
|
22
31
|
"catalog-footprint": never;
|
|
32
|
+
/** @since 5.0 */
|
|
23
33
|
csv: FeatureLayerView;
|
|
34
|
+
/** @since 5.0 */
|
|
24
35
|
dimension: never;
|
|
36
|
+
/** @since 5.0 */
|
|
25
37
|
elevation: never;
|
|
38
|
+
/** @since 5.0 */
|
|
26
39
|
feature: FeatureLayerView;
|
|
40
|
+
/** @since 5.0 */
|
|
27
41
|
"gaussian-splat": never;
|
|
42
|
+
/** @since 5.0 */
|
|
28
43
|
"geo-rss": GeoRSSLayerView;
|
|
44
|
+
/** @since 5.0 */
|
|
29
45
|
geojson: GeoJSONLayerView;
|
|
46
|
+
/** @since 5.0 */
|
|
30
47
|
graphics: GraphicsLayerView;
|
|
48
|
+
/** @since 5.0 */
|
|
31
49
|
group: never;
|
|
50
|
+
/** @since 5.0 */
|
|
32
51
|
imagery: ImageryLayerView;
|
|
52
|
+
/** @since 5.0 */
|
|
33
53
|
"imagery-tile": never;
|
|
54
|
+
/** @since 5.0 */
|
|
34
55
|
"integrated-mesh": never;
|
|
56
|
+
/** @since 5.0 */
|
|
35
57
|
"integrated-mesh-3dtiles": never;
|
|
58
|
+
/** @since 5.0 */
|
|
36
59
|
kml: KMLLayerView;
|
|
60
|
+
/** @since 5.0 */
|
|
37
61
|
"knowledge-graph": never;
|
|
62
|
+
/** @since 5.0 */
|
|
38
63
|
"knowledge-graph-sublayer": never;
|
|
64
|
+
/** @since 5.0 */
|
|
39
65
|
"line-of-sight": never;
|
|
66
|
+
/** @since 5.0 */
|
|
40
67
|
"link-chart": never;
|
|
68
|
+
/** @since 5.0 */
|
|
41
69
|
"map-image": never;
|
|
70
|
+
/** @since 5.0 */
|
|
42
71
|
"map-notes": never;
|
|
72
|
+
/** @since 5.0 */
|
|
43
73
|
media: MediaLayerView;
|
|
74
|
+
/** @since 5.0 */
|
|
44
75
|
"ogc-feature": OGCFeatureLayerView;
|
|
76
|
+
/** @since 5.0 */
|
|
45
77
|
"open-street-map": never;
|
|
78
|
+
/** @since 5.0 */
|
|
46
79
|
"oriented-imagery": never;
|
|
80
|
+
/** @since 5.0 */
|
|
47
81
|
parquet: ParquetLayerView;
|
|
82
|
+
/** @since 5.0 */
|
|
48
83
|
"point-cloud": never;
|
|
84
|
+
/** @since 5.0 */
|
|
49
85
|
route: never;
|
|
86
|
+
/** @since 5.0 */
|
|
50
87
|
scene: never;
|
|
88
|
+
/** @since 5.0 */
|
|
51
89
|
stream: StreamLayerView;
|
|
90
|
+
/** @since 5.0 */
|
|
52
91
|
"subtype-group": never;
|
|
92
|
+
/** @since 5.0 */
|
|
53
93
|
tile: never;
|
|
94
|
+
/** @since 5.0 */
|
|
54
95
|
unknown: never;
|
|
96
|
+
/** @since 5.0 */
|
|
55
97
|
unsupported: never;
|
|
98
|
+
/** @since 5.0 */
|
|
56
99
|
"vector-tile": never;
|
|
100
|
+
/** @since 5.0 */
|
|
57
101
|
video: never;
|
|
102
|
+
/** @since 5.0 */
|
|
58
103
|
viewshed: never;
|
|
104
|
+
/** @since 5.0 */
|
|
59
105
|
voxel: never;
|
|
106
|
+
/** @since 5.0 */
|
|
60
107
|
wcs: never;
|
|
108
|
+
/** @since 5.0 */
|
|
61
109
|
"web-tile": never;
|
|
110
|
+
/** @since 5.0 */
|
|
62
111
|
wfs: WFSLayerView;
|
|
112
|
+
/** @since 5.0 */
|
|
63
113
|
wms: never;
|
|
114
|
+
/** @since 5.0 */
|
|
64
115
|
wmts: never;
|
|
65
116
|
}
|
|
66
117
|
|
|
118
|
+
/** @since 5.0 */
|
|
67
119
|
export type LayerView2DFor<TLayer extends Layer> = LayerView2DMap[TLayer["type"]];
|
|
68
120
|
|
|
69
121
|
/**
|
|
@@ -112,24 +164,52 @@ export type LayerView2DFor<TLayer extends Layer> = LayerView2DMap[TLayer["type"]
|
|
|
112
164
|
* polyline to this vertex.
|
|
113
165
|
*
|
|
114
166
|
* 
|
|
167
|
+
*
|
|
168
|
+
* @since 5.0
|
|
115
169
|
*/
|
|
116
170
|
export interface MeshVertex {
|
|
117
171
|
/**
|
|
118
172
|
* The distance parameter for this vertex; this only applies when tessellating polylines. It starts
|
|
119
173
|
* from 0 and runs up to the total length of the polyline. It is expressed in map units.
|
|
174
|
+
*
|
|
175
|
+
* @since 5.0
|
|
120
176
|
*/
|
|
121
177
|
distance: number;
|
|
122
|
-
/**
|
|
178
|
+
/**
|
|
179
|
+
* The `u`-coordinate for texture mapping. It varies between 0 and 1 horizontally for quads and polygons, and along the entire length of a polyline.
|
|
180
|
+
*
|
|
181
|
+
* @since 5.0
|
|
182
|
+
*/
|
|
123
183
|
uTexcoord: number;
|
|
124
|
-
/**
|
|
184
|
+
/**
|
|
185
|
+
* The `v`-coordinate for texture mapping. It varies between 0 and 1 vertically for quads and polygons, and across the width of a polyline.
|
|
186
|
+
*
|
|
187
|
+
* @since 5.0
|
|
188
|
+
*/
|
|
125
189
|
vTexcoord: number;
|
|
126
|
-
/**
|
|
190
|
+
/**
|
|
191
|
+
* The `x`-coordinate, expressed in the same units as the [MapView](https://developers.arcgis.com/javascript/latest/api-reference/esri-views-MapView.html).
|
|
192
|
+
*
|
|
193
|
+
* @since 5.0
|
|
194
|
+
*/
|
|
127
195
|
x: number;
|
|
128
|
-
/**
|
|
196
|
+
/**
|
|
197
|
+
* The `x`-offset in screen space; this is used to extrude points (into quads), markers and polylines, and is 0 for polygons.
|
|
198
|
+
*
|
|
199
|
+
* @since 5.0
|
|
200
|
+
*/
|
|
129
201
|
xOffset: number;
|
|
130
|
-
/**
|
|
202
|
+
/**
|
|
203
|
+
* The `y`-coordinate, expressed in the same units as the [MapView](https://developers.arcgis.com/javascript/latest/api-reference/esri-views-MapView.html).
|
|
204
|
+
*
|
|
205
|
+
* @since 5.0
|
|
206
|
+
*/
|
|
131
207
|
y: number;
|
|
132
|
-
/**
|
|
208
|
+
/**
|
|
209
|
+
* The `y`-offset in screen space; this is used to extrude points (into quads), markers and polylines, and is 0 for polygons.
|
|
210
|
+
*
|
|
211
|
+
* @since 5.0
|
|
212
|
+
*/
|
|
133
213
|
yOffset: number;
|
|
134
214
|
}
|
|
135
215
|
|
|
@@ -138,18 +218,25 @@ export interface MeshVertex {
|
|
|
138
218
|
*
|
|
139
219
|
* An instance of `Mesh` can be obtained by calling one of the [BaseLayerViewGL2D](https://developers.arcgis.com/javascript/latest/api-reference/esri-views-2d-layers-BaseLayerViewGL2D.html)
|
|
140
220
|
* `tessellate*` methods and passing an instance of [Geometry](https://developers.arcgis.com/javascript/latest/api-reference/esri-geometry-Geometry.html).
|
|
221
|
+
*
|
|
222
|
+
* @since 5.0
|
|
141
223
|
*/
|
|
142
224
|
export interface TessellatedMesh {
|
|
143
225
|
/**
|
|
144
226
|
* The indices of the triangles that connect vertices together;
|
|
145
227
|
* each consecutive triplet of indices denotes a triangle.
|
|
228
|
+
*
|
|
229
|
+
* @since 5.0
|
|
146
230
|
*/
|
|
147
231
|
indices: number[];
|
|
148
232
|
/**
|
|
149
233
|
* The vertices that make up the mesh.
|
|
150
234
|
* Each element is a [MeshVertex](https://developers.arcgis.com/javascript/latest/api-reference/esri-views-2d-types.html#MeshVertex).
|
|
235
|
+
*
|
|
236
|
+
* @since 5.0
|
|
151
237
|
*/
|
|
152
238
|
vertices: MeshVertex[];
|
|
153
239
|
}
|
|
154
240
|
|
|
241
|
+
/** @since 5.0 */
|
|
155
242
|
export type ResizeAlign = "bottom" | "bottom-left" | "bottom-right" | "center" | "left" | "right" | "top" | "top-left" | "top-right";
|
|
@@ -1,5 +1,9 @@
|
|
|
1
1
|
import type SceneView from "../../SceneView.js";
|
|
2
2
|
import type AnalysisView from "../../analysis/AnalysisView.js";
|
|
3
3
|
|
|
4
|
-
/**
|
|
4
|
+
/**
|
|
5
|
+
* Base class for 3D analysis views.
|
|
6
|
+
*
|
|
7
|
+
* @since 5.0
|
|
8
|
+
*/
|
|
5
9
|
export default abstract class AnalysisView3D extends AnalysisView<SceneView> {}
|
|
@@ -2,4 +2,4 @@
|
|
|
2
2
|
All material copyright Esri, All Rights Reserved, unless otherwise specified.
|
|
3
3
|
See https://js.arcgis.com/5.0/esri/copyright.txt for details.
|
|
4
4
|
*/
|
|
5
|
-
import{__decorate as
|
|
5
|
+
import{__decorate as t}from"tslib";import e from"../../../../../core/Accessor.js";import{destroyHandle as a}from"../../../../../core/handleUtils.js";import{watch as s,sync as r}from"../../../../../core/reactiveUtils.js";import{property as o,subclass as i}from"../../../../../core/accessorSupport/decorators.js";import{UpdatingHandles as n}from"../../../../../core/support/UpdatingHandles.js";import{MeasurementData as p}from"./MeasurementData.js";let l=class extends e{get updating(){return this._updatingHandles.updating}constructor(t){super(t),this._updatingHandles=new n}initialize(){const{view:t}=this,e=new p({view:t});this.analysisViewData.measurementData=e;const o=()=>this._update(e);this.addHandles([this.analysisViewData.path.on("change",o),s(()=>{const{stagedPoint:t,mode:e}=this.analysisViewData;return[t,e]},o,r),a(e)]),o()}destroy(){this._updatingHandles.destroy()}_update(t,e=!1){const{analysisViewData:a,view:s}=this;t.update(a.path,a.stagedPoint,s,{maxRelativeErrorCoplanar:.005,maxRelativeErrorAlmostCoplanar:.01,verticalAngleThreshold:80},a.mode,e,this._updatingHandles)}};t([o({constructOnly:!0})],l.prototype,"view",void 0),t([o({constructOnly:!0})],l.prototype,"analysis",void 0),t([o({constructOnly:!0})],l.prototype,"analysisViewData",void 0),t([o()],l.prototype,"updating",null),l=t([i("esri.views.3d.analysis.AreaMeasurement.support.AreaMeasurementController")],l);export{l as AreaMeasurementController};
|
|
@@ -2,4 +2,4 @@
|
|
|
2
2
|
All material copyright Esri, All Rights Reserved, unless otherwise specified.
|
|
3
3
|
See https://js.arcgis.com/5.0/esri/copyright.txt for details.
|
|
4
4
|
*/
|
|
5
|
-
import{__decorate as e}from"tslib";import{onLocaleChange as t,fetchMessageBundle as i}from"../../../../../intl.js";import s from"../../../../../core/Accessor.js";import{multiplyOpacityToUnitRGBA as r,getContrast as n,multiplyOpacity as a}from"../../../../../core/colorUtils.js";import"../../../../../core/has.js";import{nextHighestPowerOfTen as o}from"../../../../../core/mathUtils.js";import{destroyMaybe as l}from"../../../../../core/maybe.js";import{formatDecimal as h}from"../../../../../core/quantityFormatUtils.js";import{watch as m,syncAndInitial as c,initial as d}from"../../../../../core/reactiveUtils.js";import{lengthUnitFromSpatialReference as p,convertUnit as u,adaptiveAreaUnit as g}from"../../../../../core/units.js";import{property as _,subclass as v}from"../../../../../core/accessorSupport/decorators.js";import{fromTranslation as L}from"../../../../../core/libs/gl-matrix-2/math/mat4.js";import{create as b}from"../../../../../core/libs/gl-matrix-2/factories/mat4f64.js";import{e as f}from"../../../../../chunks/vec32.js";import{create as w}from"../../../../../core/libs/gl-matrix-2/factories/vec3f64.js";import{toPreferredAreaUnit as S,preferredLengthUnit as y}from"./utils.js";import{LabelVisualElement as j}from"../../../interactive/visualElements/LabelVisualElement.js";import{LineVisualElement as C}from"../../../interactive/visualElements/LineVisualElement.js";import{MeasurementAreaVisualElement as D}from"../../../interactive/visualElements/MeasurementAreaVisualElement.js";import{GeodesicSegment as A,EuclideanSegment as V}from"../../../interactive/visualElements/support/Segment.js";import{midpoint3d as M}from"../../../support/mathUtils.js";import{createStipplePatternSimple as x}from"../../../webgl-engine/materials/lineStippleUtils.js";let P=class extends s{get _parameters(){const{accentColor:e,textColor:t}=this.view.effectiveTheme,i=e.toUnitRGBA(),s=r(e,.5),o=r(n(e),.5),l=n(t,160);return{accentColor:i,transparentAccentColor:s,transparentContrastColor:o,intersectingLineColor:[1,.2,0,1],textColor:t,textBackgroundColor:a(l,.6),textCalloutColor:a(l,.5),pathLineWidth:3,perimeterLineWidth:2,projectionLineWidth:2,projectionLineStippleSize:5,labelDistance:25}}get visible(){return this.analysisViewData.visible}get _renderUnits(){const e=this.view.renderCoordsHelper.spatialReference;return p(e)??"meters"}get testData(){}constructor(e){super(e),this._path=null,this._intersectedPath=null,this._perimeter=null,this._intersectedPerimeter=null,this._projectionLines=null,this._measurementArea=null,this._areaLabel=null,this._perimeterLengthLabel=null,this._pathSegments=[],this._perimeterSegments=[],this._origin=w(),this._originTransform=b(),this.messages=null,this.viewData=z,this.areaLabel=null,this.perimeterLengthLabel=null,this.loadingMessages=!0}initialize(){const{analysisViewData:e,_parameters:i,view:s}=this;this._path=new C({view:s,attached:!0,width:i.pathLineWidth,polygonOffset:!0,renderOccluded:4,isDecoration:!0}),this._intersectedPath=new C({view:s,attached:!0,width:i.pathLineWidth,polygonOffset:!0,renderOccluded:4,isDecoration:!0}),this._perimeter=new C({view:s,attached:!0,width:i.perimeterLineWidth,polygonOffset:!0,renderOccluded:4,isDecoration:!0}),this._intersectedPerimeter=new C({view:s,attached:!0,width:i.perimeterLineWidth,color:i.intersectingLineColor,polygonOffset:!0,renderOccluded:4,isDecoration:!0}),this._projectionLines=new C({view:s,attached:!0,width:i.projectionLineWidth,stipplePattern:x(i.projectionLineStippleSize),polygonOffset:!0,renderOccluded:4,isDecoration:!0}),this._measurementArea=new D({view:s,attached:!0,isDecoration:!0});const r={attached:!0,view:s,isDecoration:!0};this._areaLabel=new j({...r,fontSize:16,distance:0}),this._perimeterLengthLabel=new j({...r,fontSize:12}),this.addHandles([m(()=>[e.mode,this.visible,e.unit,e.measurementData,e.stagedPoint],()=>this._update(),c),m(()=>s.state?.camera,()=>this._updateLabels(),c),t(()=>this._updateMessageBundle()),m(()=>this._parameters,({accentColor:e,transparentAccentColor:t,transparentContrastColor:i,textColor:s,textBackgroundColor:r,textCalloutColor:n})=>{const{_path:a,_intersectedPath:o,_perimeter:l,_projectionLines:h,_measurementArea:m,_areaLabel:c,_perimeterLengthLabel:d}=this;a.color=e,o.color=e,l.color=e,h.color=e,m.color1=t,m.color2=i,c.textColor=s,c.backgroundColor=r,c.calloutColor=n,d.textColor=s,d.backgroundColor=r,d.calloutColor=n},d)]),this._updateMessageBundle()}destroy(){this._measurementArea=l(this._measurementArea),this._path=l(this._path),this._intersectedPath=l(this._intersectedPath),this._perimeter=l(this._perimeter),this._intersectedPerimeter=l(this._intersectedPerimeter),this._areaLabel=l(this._areaLabel),this._perimeterLengthLabel=l(this._perimeterLengthLabel),this._projectionLines=l(this._projectionLines),this.set("view",null)}_update(){if(this.destroyed||!this.view.ready||!this.view.renderCoordsHelper)return;const{analysisViewData:{measurementData:e},analysisViewData:t}=this;null!=e&&(this._updateViewData(e,t.path),this._updateOrigin(),this._updatePathSegments(),this._updatePerimeterSegments(),this._updateArea(),this._updateProjectionLines(),this._updateLabels())}_updateViewData(e,t){const i=e.validMeasurement,s="geodesic"===e.actualMeasurementMode,r=s?e.geodesicArea:e.area;let n=1;if(r){const e=S(r,this.analysisViewData.unit);n=o(Math.sqrt(e.value)/Math.sqrt(300)),n*=Math.sqrt(u(1,e.unit,"square-meters")),n=u(n,"meters",this._renderUnits)}const a={validMeasurement:i,numVertices:e.numVertices,hasStagedVertex:e.hasStagedVertex,path:t,mode:e.actualMeasurementMode,positionsRender:e.positionsRender,positionsFittedWorld:e.positionsFittedWorld,positionsFittedRender:e.positionsFittedRender,intersectingSegments:s?e.geodesicIntersectingSegments:e.intersectingSegments,triangleIndices:s?e.geodesicTriangleIndices:e.triangleIndices,areaCentroid:s?e.geodesicAreaCentroidRenderCoords:e.areaCentroidRenderCoords,perimeterLengthLabelSegmentIndex:0,area:s?e.geodesicArea:e.area,pathLength:s?e.geodesicPathLength:e.pathLength,perimeterLength:e.perimeterLength,checkerSize:n};this._set("viewData",a)}_updateOrigin(){const e=this.viewData;M(e.positionsRender,this._origin),L(this._originTransform,this._origin),this._measurementArea.transform=this._originTransform,this._projectionLines.transform=this._originTransform}_createSegments(e){const t=this.viewData,i=this.view.renderCoordsHelper.spatialReference,s=t.mode,r=[],n=[],a=[],o=t.numVertices,l=t.validMeasurement?o:o-1;for(let m=0;m<l;++m){const l=t[e][m],h=t[e][(m+1)%o];let c=null;switch(s){case"euclidean":c=new V(l,h);break;case"geodesic":c=new A(l,h,i)}t.intersectingSegments.has(m)?a.push(c):n.push(c),r.push(c)}let h=null;return t.validMeasurement&&t.hasStagedVertex&&l>=2?h=r[r.length-2]:t.hasStagedVertex&&l>=1&&(h=r[r.length-1]),{all:r,nonIntersecting:n,intersecting:a,stagedSegment:h}}_updatePathSegments(){const{visible:e}=this,t=this._createSegments("positionsRender");this._path.setGeometryFromSegments(t.nonIntersecting,this._origin),this._path.visible=e,this._intersectedPath.setGeometryFromSegments(t.intersecting,this._origin),this._intersectedPath.visible=e,this._pathSegments=t.all}_updatePerimeterSegments(){const e=this.visible&&"euclidean"===this.viewData.mode&&this.viewData.path.numVertices>2,t=this._createSegments("positionsFittedRender");this._perimeter.setGeometryFromSegments(t.nonIntersecting,this._origin),this._perimeter.visible=e,this._intersectedPerimeter.setGeometryFromSegments(t.intersecting,this._origin),this._intersectedPerimeter.visible=e,this._perimeterSegments=t.all}_updateArea(){const e=this.viewData;switch(e.mode){case"euclidean":this._updateAreaEuclidean(e);break;case"geodesic":this._updateAreaGeodesic()}}_updateAreaEuclidean(e){const t=this.visible;e.validMeasurement&&0===e.intersectingSegments.size&&e.triangleIndices?(this._measurementArea.geometry={uv:e.positionsFittedWorld,position:e.positionsFittedRender,triangleIndices:e.triangleIndices},this._measurementArea.size=[e.checkerSize,e.checkerSize],this._measurementArea.visible=t):this._measurementArea.visible=!1}_updateAreaGeodesic(){this._measurementArea.visible=!1}_updateProjectionLines(){const e=this.viewData,t=this.visible,i=e.mode,s=e.numVertices;if(s>0&&e.validMeasurement&&"euclidean"===i){const i=[];for(let t=0;t<s;++t){const s=w();f(s,e.positionsRender[t],this._origin);const r=w();f(r,e.positionsFittedRender[t],this._origin),i.push([s,r])}this._projectionLines.geometry=i,this._projectionLines.visible=t}else this._projectionLines.geometry=null,this._projectionLines.visible=!1}_updateLabels(){if(this.destroyed)return;const{viewData:e}=this,{area:t,path:i}=e;if(!i)return;const s=this.visible,r=this._areaLabel,n=this._perimeterLengthLabel,a=e.validMeasurement;r.visible=!0,n.visible=!0;let o=!1;const l=R(this.messages,t,this.analysisViewData.unit);if(null!=l&&s&&(r.geometry={type:"point",point:e.areaCentroid},r.text=l,o=e.validMeasurement&&0===e.intersectingSegments.size),this._set("areaLabel",l),s&&a&&0===e.intersectingSegments.size){const t="geodesic"===e.mode,i=t?e.pathLength:e.perimeterLength,s=F(this.messages,i,this.analysisViewData.unit);this._set("perimeterLengthLabel",s),n.distance=this._parameters.labelDistance,n.anchor="top",n.text=s;let r=!0;for(let a=0;a<e.numVertices;++a){const i=(e.perimeterLengthLabelSegmentIndex+a)%e.numVertices,s=t?this._pathSegments[i]:this._perimeterSegments[i];if(r=!0,n.geometry={type:"segment",segment:s,sampleLocation:"center"},!n.overlaps(this._areaLabel))break;r=!1}n.visible=r}else n.visible=!1;r.visible=o}_updateMessageBundle(){this.loadingMessages=!0,i("esri/core/t9n/Units").then(e=>{this.messages=e,this.view&&this._update()}).finally(()=>{this.loadingMessages=!1})}};function R(e,t,i){return e&&t&&h(e,t,g(t.value,t.unit,i))}function F(e,t,i){return e&&t&&h(e,t,y(t,i))}e([_()],P.prototype,"_parameters",null),e([_()],P.prototype,"view",void 0),e([_()],P.prototype,"messages",void 0),e([_()],P.prototype,"analysis",void 0),e([_()],P.prototype,"viewData",void 0),e([_()],P.prototype,"analysisViewData",void 0),e([_({readOnly:!0})],P.prototype,"areaLabel",void 0),e([_({readOnly:!0})],P.prototype,"perimeterLengthLabel",void 0),e([_()],P.prototype,"loadingMessages",void 0),e([_()],P.prototype,"visible",null),e([_()],P.prototype,"_renderUnits",null),P=e([v("esri.views.3d.analysis.AreaMeasurement.support.AreaMeasurementVisualization")],P);const z={validMeasurement:!1,numVertices:0,hasStagedVertex:!1,path:null,mode:null,positionsRender:null,positionsFittedWorld:null,positionsFittedRender:null,intersectingSegments:null,triangleIndices:null,areaCentroid:null,perimeterLengthLabelSegmentIndex:null,checkerSize:null,area:null,pathLength:null,perimeterLength:null};export{P as AreaMeasurementVisualization};
|
|
5
|
+
import{__decorate as e}from"tslib";import{onLocaleChange as t,fetchMessageBundle as i}from"../../../../../intl.js";import s from"../../../../../core/Accessor.js";import{multiplyOpacityToUnitRGBA as r,getContrast as a,multiplyOpacity as n}from"../../../../../core/colorUtils.js";import"../../../../../core/has.js";import{nextHighestPowerOfTen as o,floatEqualUlp as l}from"../../../../../core/mathUtils.js";import{destroyMaybe as m}from"../../../../../core/maybe.js";import{formatDecimal as h}from"../../../../../core/quantityFormatUtils.js";import{watch as c,syncAndInitial as p,initial as d}from"../../../../../core/reactiveUtils.js";import{lengthUnitFromSpatialReference as u,convertUnit as _,adaptiveAreaUnit as v}from"../../../../../core/units.js";import{property as g,subclass as b}from"../../../../../core/accessorSupport/decorators.js";import{fromTranslation as w}from"../../../../../core/libs/gl-matrix-2/math/mat4.js";import{create as f}from"../../../../../core/libs/gl-matrix-2/factories/mat4f64.js";import{e as D,s as L}from"../../../../../chunks/vec32.js";import{create as y}from"../../../../../core/libs/gl-matrix-2/factories/vec3f64.js";import{toPreferredAreaUnit as S,preferredLengthUnit as C}from"./utils.js";import{LabelVisualElement as j}from"../../../interactive/visualElements/LabelVisualElement.js";import{LineVisualElement as x}from"../../../interactive/visualElements/LineVisualElement.js";import{MeasurementAreaVisualElement as V}from"../../../interactive/visualElements/MeasurementAreaVisualElement.js";import{GeodesicSegment as A,EuclideanSegment as M}from"../../../interactive/visualElements/support/Segment.js";import{midpoint3d as R}from"../../../support/mathUtils.js";import{createStipplePatternSimple as k}from"../../../webgl-engine/materials/lineStippleUtils.js";let z=class extends s{get _parameters(){const{accentColor:e,textColor:t}=this.view.effectiveTheme,i=e.toUnitRGBA(),s=r(e,.5),o=r(a(e),.5),l=a(t,160);return{accentColor:i,transparentAccentColor:s,transparentContrastColor:o,textColor:t,textBackgroundColor:n(l,.6),textCalloutColor:n(l,.5),pathLineWidth:3,perimeterLineWidth:2,projectionLineWidth:2,projectionLineStippleSize:5,labelDistance:25}}get viewData(){return this._viewData}get visible(){return this.analysisViewData.visible}get _renderUnits(){const e=this.view.renderCoordsHelper.spatialReference;return u(e)??"meters"}get testData(){}constructor(e){super(e),this._path=null,this._perimeter=null,this._projectionLines=null,this._measurementArea=null,this._areaLabel=null,this._perimeterLabel=null,this._pathSegments=[],this._perimeterSegments=[],this._origin=y(),this._originTransform=f(),this.messages=null,this._viewData=new U,this.areaLabel=null,this.perimeterLabel=null,this.loadingMessages=!0}initialize(){const{analysisViewData:e,_parameters:i,view:s}=this;this._path=new x({view:s,attached:!0,width:i.pathLineWidth,polygonOffset:!0,renderOccluded:4,tansparentRenderOrder:1,isDecoration:!0}),this._perimeter=new x({view:s,attached:!0,width:i.perimeterLineWidth,polygonOffset:!0,renderOccluded:4,tansparentRenderOrder:2,isDecoration:!0}),this._projectionLines=new x({view:s,attached:!0,width:i.projectionLineWidth,stipplePattern:k(i.projectionLineStippleSize),polygonOffset:!0,renderOccluded:4,tansparentRenderOrder:3,isDecoration:!0}),this._measurementArea=new V({view:s,attached:!0,isDecoration:!0,renderOccluded:4,testsTransparentRenderOrder:5});const r={attached:!0,view:s,isDecoration:!0};this._areaLabel=new j({...r,fontSize:16,distance:0}),this._perimeterLabel=new j({...r,fontSize:12}),this.addHandles([c(()=>[e.mode,this.visible,e.unit,e.measurementData?.updateId,null!=e.measurementData?.measurements,E(e.measurementData?.measurements?.mode)],()=>this._update(),p),c(()=>e.measurementData?.measurements,e=>this._updateMeasurements(e)),c(()=>s.state?.camera,()=>this._updateLabels(),p),t(()=>this._updateMessageBundle()),c(()=>this._parameters,({accentColor:e,transparentAccentColor:t,transparentContrastColor:i,textColor:s,textBackgroundColor:r,textCalloutColor:a})=>{const{_path:n,_perimeter:o,_projectionLines:l,_measurementArea:m,_areaLabel:h,_perimeterLabel:c}=this;n.color=e,o.color=e,l.color=e,m.color1=t,m.color2=i,h.textColor=s,h.backgroundColor=r,h.calloutColor=a,c.textColor=s,c.backgroundColor=r,c.calloutColor=a},d)]),this._updateMessageBundle()}destroy(){this._measurementArea=m(this._measurementArea),this._path=m(this._path),this._perimeter=m(this._perimeter),this._areaLabel=m(this._areaLabel),this._perimeterLabel=m(this._perimeterLabel),this._projectionLines=m(this._projectionLines),this.set("view",null)}_update(){if(this.destroyed||!this.view.ready||!this.view.renderCoordsHelper)return;const{analysisViewData:{measurementData:e},analysisViewData:t}=this;null!=e&&(this._updateViewData(e,t.path),this._updateOrigin(),this._updatePathSegments(),this._updatePerimeterSegments(),this._updateArea(),this._updateProjectionLines(),this._updateLabels())}_calculateCheckerSize(e){const t=F(e?.mode)?e?.geodesicArea:e?.area;if(null==t)return 1;const i=S(t,this.analysisViewData.unit),s=Math.sqrt(_(1,i.unit,"square-meters"));return _(o(Math.sqrt(i.value)/Math.sqrt(300))*s,"meters",this._renderUnits)}_updateMeasurements(e){Object.assign(this.viewData,this._getMeasurementsViewData(e)),this._updateCheckerSize(),this._updateLabels()}_updateCheckerSize(){this._measurementArea.size=[this.viewData.checkerSize,this.viewData.checkerSize]}_updateViewData(e,t){const i=e.measurements,s=new U({validMeasurement:!!i,numVertices:e.numVertices,hasStagedVertex:e.hasStagedVertex,path:t,mode:i?.mode,vertexData:e.vertexData,perimeterLabelSegmentIndex:0,...this._getMeasurementsViewData(i)});this._viewData=s}_getMeasurementsViewData(e){const t=F(e?.mode),i=this._calculateCheckerSize(e);return{areaCentroid:t?e?.geodesicAreaCentroidRenderCoords:e?.areaCentroidRenderCoords,area:t?e?.geodesicArea:e?.area,perimeter:t?e?.geodesicPerimeter:e?.perimeter,checkerSize:i}}_updateOrigin(){const e=this.viewData;R(e.vertexData.positionsRender,this._origin),w(this._originTransform,this._origin),this._measurementArea.transform=this._originTransform,this._projectionLines.transform=this._originTransform}_createSegments(e,t){const i=this.viewData,s=this.view.renderCoordsHelper.spatialReference,r=E(i.mode),a=[],n=i.numVertices,o=i.validMeasurement?n:n-1;for(let m=0;m<o;++m){const o=i.vertexData[e][m],h=i.vertexData[e][(m+1)%n];let c=!0;if(t){const e=i.vertexData.positionsRender[m],t=i.vertexData.positionsRender[(m+1)%n];let s=!0;for(let i=0;i<3;++i)s&&=l(e[i],o[i])&&l(t[i],h[i]);s&&(c=!1)}let p=null;switch(r){case"geodesic":p=new A(o,h,s,c);break;case"euclidean":p=new M(o,h,c)}a.push(p)}return a}_updatePathSegments(){const{visible:e}=this,t=this._createSegments("positionsRender");this._path.setGeometryFromSegments(t,this._origin),this._path.visible=e,this._pathSegments=t}_updatePerimeterSegments(){const e=this.visible&&"euclidean"===this.viewData.mode&&!!this.viewData.path&&this.viewData.path.numVertices>2,t=!0,i=this._createSegments("positionsFittedRender",t);this._perimeter.setGeometryFromSegments(i,this._origin),this._perimeter.visible=e,this._perimeterSegments=i}_updateArea(){const e=this.viewData;switch(E(e.mode)){case"euclidean":this._updateAreaEuclidean(e);break;case"geodesic":this._updateAreaGeodesic()}}_updateAreaEuclidean(e){const t=this.visible;e.validMeasurement&&e.vertexData.triangleIndices?(this._measurementArea.geometry={uv:e.vertexData.positionsFittedWorldPlaneProjected,position:e.vertexData.positionsFittedRender,triangleIndices:e.vertexData.triangleIndices},this._updateCheckerSize(),this._measurementArea.visible=t):this._measurementArea.visible=!1}_updateAreaGeodesic(){this._measurementArea.visible=!1}_updateProjectionLines(){const e=this.viewData,t=this.visible,i=e.mode,s=e.numVertices;if(s>0&&e.validMeasurement&&"euclidean"===i){const i=[];for(let t=0;t<s;++t){const s=y();D(s,e.vertexData.positionsRender[t],this._origin);const r=y();D(r,e.vertexData.positionsFittedRender[t],this._origin),l(L(s,r),0)||i.push([s,r])}this._projectionLines.geometry=i,this._projectionLines.visible=t}else this._projectionLines.geometry=null,this._projectionLines.visible=!1}_updateLabels(){if(this.destroyed)return;const{viewData:e}=this,{area:t,path:i}=e;if(!i)return;const s=this.visible,r=this._areaLabel,a=this._perimeterLabel,n=e.validMeasurement;r.visible=!0,a.visible=!0;let o=!1;const l=O(this.messages,t,this.analysisViewData.unit);if(null!=l&&e.areaCentroid&&s&&(r.geometry={type:"point",point:e.areaCentroid},r.text=l,o=e.validMeasurement),this._set("areaLabel",l),s&&n){const t=F(e.mode),i=e.perimeter,s=P(this.messages,i,this.analysisViewData.unit);this._set("perimeterLabel",s),a.distance=this._parameters.labelDistance,a.anchor="top",a.text=s;let r=!0;for(let n=0;n<e.numVertices;++n){const i=(e.perimeterLabelSegmentIndex+n)%e.numVertices,s=t?this._pathSegments[i]:this._perimeterSegments[i];if(r=!0,a.geometry={type:"segment",segment:s,sampleLocation:"center"},!a.overlaps(this._areaLabel))break;r=!1}a.visible=r}else a.visible=!1;r.visible=o}_updateMessageBundle(){this.loadingMessages=!0,i("esri/core/t9n/Units").then(e=>{this.messages=e,this.view&&this._update()}).finally(()=>{this.loadingMessages=!1})}};function O(e,t,i){return e&&t&&h(e,t,v(t.value,t.unit,i))}function P(e,t,i){return e&&t&&h(e,t,C(t,i))}e([g()],z.prototype,"_parameters",null),e([g()],z.prototype,"view",void 0),e([g()],z.prototype,"messages",void 0),e([g()],z.prototype,"analysis",void 0),e([g()],z.prototype,"_viewData",void 0),e([g()],z.prototype,"analysisViewData",void 0),e([g({readOnly:!0})],z.prototype,"areaLabel",void 0),e([g({readOnly:!0})],z.prototype,"perimeterLabel",void 0),e([g()],z.prototype,"loadingMessages",void 0),e([g()],z.prototype,"visible",null),e([g()],z.prototype,"_renderUnits",null),z=e([b("esri.views.3d.analysis.AreaMeasurement.support.AreaMeasurementVisualization")],z);class U{constructor(e){this.validMeasurement=e?.validMeasurement??!1,this.numVertices=e?.numVertices??0,this.hasStagedVertex=e?.hasStagedVertex??!1,this.path=e?.path,this.vertexData=e?.vertexData??{positionsRender:[],positionsFittedWorldPlaneProjected:[],positionsFittedRender:[],triangleIndices:null},this.mode=e?.mode,this.areaCentroid=e?.areaCentroid,this.perimeterLabelSegmentIndex=e?.perimeterLabelSegmentIndex??0,this.checkerSize=e?.checkerSize??1,this.area=e?.area,this.perimeter=e?.perimeter}}function E(e){switch(e){case"euclidean":case void 0:case null:return"euclidean";case"geodesic":return"geodesic"}}function F(e){return"geodesic"===E(e)}export{z as AreaMeasurementVisualization,U as ViewData};
|
|
@@ -2,4 +2,4 @@
|
|
|
2
2
|
All material copyright Esri, All Rights Reserved, unless otherwise specified.
|
|
3
3
|
See https://js.arcgis.com/5.0/esri/copyright.txt for details.
|
|
4
4
|
*/
|
|
5
|
-
import{deg2rad as e}from"../../../../../core/mathUtils.js";import{createLength as t,toUnit as s,createArea as i}from"../../../../../core/quantity.js";import{lengthUnitFromSpatialReference as o,areaUnitFromSpatialReference as n}from"../../../../../core/units.js";import{set as r,distance as h}from"../../../../../core/libs/gl-matrix-2/math/vec2.js";import{create as a}from"../../../../../core/libs/gl-matrix-2/factories/vec2f64.js";import{B as l,d,f as g,q as c,e as p,g as m,j as u,i as _,n as f}from"../../../../../chunks/vec32.js";import{create as S}from"../../../../../core/libs/gl-matrix-2/factories/vec3f64.js";import{create as L}from"../../../../../core/libs/gl-matrix-2/factories/vec4f64.js";import{getReferenceEllipsoid as M}from"../../../../../geometry/ellipsoidUtils.js";import{canProjectWithoutEngine as C}from"../../../../../geometry/projectionUtils.js";import{getSphericalPCPF as P}from"../../../../../geometry/spatialReferenceEllipsoidUtils.js";import{projectDirection as R}from"../../../../../geometry/projection/projectDirection.js";import{projectPointToVector as j}from"../../../../../geometry/projection/projectPointToVector.js";import{projectVectorToVector as U}from"../../../../../geometry/projection/projectVectorToVector.js";import{compactIndices as A}from"../../../../../geometry/support/Indices.js";import{segmentIntersects as v}from"../../../../../geometry/support/intersectsBase.js";import{Sphere as I}from"../../../../../geometry/support/sphere.js";import{areaPoints2d as V}from"../../../../../geometry/support/triangle.js";import{bestFitPlane as w,fitHemisphere as W,triangleAreaGeodesic as F,planePointDistance as y,boundingSphere as G}from"../../support/measurementUtils.js";import{getElevationAtPoint as T}from"../../../support/ElevationProvider.js";import{midpoint3d as x,makeOrthonormal as q,tangentFrame as z}from"../../../support/mathUtils.js";import{triangulate as b}from"../../../../support/euclideanAreaMeasurementUtils.js";import{euclideanDistanceBetweenPoints as E}from"../../../../support/euclideanLengthMeasurementUtils.js";import{supportsGeodesicMeasurement as B}from"../../../../support/geodesicMeasurementUtils.js";import{computeEuclideanMeasurementSR as D}from"../../../../support/measurementUtils.js";class H{get numVertices(){return this._length}get hasStagedVertex(){return null!=this._lastCursorPoint}constructor(e,t,s){this._sceneView=e,this._geodesicAreaMeasurementUtils=t,this._geodesicLengthMeasurementUtils=s,this.validMeasurement=!1,this.positionsWorld=[],this.positionsRender=[],this.positionsFittedWorld=[],this.positionsFittedRender=[],this.positionsGeodesic=[],this.positionsSpherical=[],this.positionsStereographic=[],this.pathSegmentLengths=[],this.geodesicPathSegmentLengths=[],this.perimeterSegmentLengths=[],this.intersectingSegments=new Set,this.geodesicIntersectingSegments=new Set,this.triangleIndices=null,this.geodesicTriangleIndices=null,this.areaCentroidWorldCoords=S(),this.areaCentroidRenderCoords=S(),this.geodesicAreaCentroidRenderCoords=S(),this.fittingMode=null,this.area=null,this.geodesicArea=null,this.pathLength=null,this.geodesicPathLength=null,this.perimeterLength=null,this._length=0,this._centroidRenderCoords=S(),this._planeWorldCoords=L(),this._worldUp=S(),this._worldTangent=S(),this._frame=[S(),S(),S()],this._lastPathVersion=-1,this._lastCursorPoint=null,this._mode=null,this._tempU=S(),this._tempV=S(),this._tempVec3=S(),this._tempSphere=new I;const i=D(e.spatialReference);this._measurementSR=i,this._lengthMeasurementUnit=o(i)??"meters",this._areaMeasurementUnit=n(i)??"square-meters"}update(e,t,s,i,o,n){const r=this._lastPathVersion===e.version,h=t?t.equals(this._lastCursorPoint):null==this._lastCursorPoint,a=this._mode===o;return!(r&&!n&&a&&h)&&(this._lastPathVersion=e.version,this._lastCursorPoint=t,this._updateCursorSegmentLength(e,t),this._update(e,t,s,i,o),!0)}_update(e,s,i,o,n){const r=this._sceneView.renderSpatialReference,h=this._measurementSR,a=i.spatialReference;let l=e.numVertices;const d=!(null==s||s.equals(e.lastPoint)||l>2&&s.equals(e.firstPoint)||e.polygonIsClosed);d&&(l+=1);const g=!e.polygonIsClosed&&l>2,c=e.polygonIsClosed||g;this._resize(l);const p=P(a),m=null!=a&&B(a)?a:null,u=null!=m&&C(a,p),{positionsGeodesic:_,positionsWorld:S,positionsRender:L,positionsSpherical:M}=this,R=(e,t)=>{k(i.elevationProvider,e),j(e,S[t],h),j(e,L[t],r),u&&(j(e,_[t],m),j(e,M[t],p),f(M[t],M[t]))};e.forEachVertexPosition((e,t)=>R(e,t)),d&&R(s,l-1);const U=this._updatePathLengths(c);if(this.pathLength=this._length>1?t(U,this._lengthMeasurementUnit):null,u){const e=this._updateGeodesicPathLengths(c,m);this.geodesicPathLength=null!=e&&this._length>1?e:null}else this.geodesicPathLength=null;if(this._updateMode(n),!c)return this.area=null,this.geodesicArea=null,this.perimeterLength=null,this.triangleIndices=null,this.geodesicTriangleIndices=null,this.intersectingSegments.clear(),this.geodesicIntersectingSegments.clear(),void(this.validMeasurement=!1);this._updateAreaAndPerimeterLength(i,r,h,o),u&&this._updateGeodesicArea(i,m),this.validMeasurement=!0}getData(){return{validMeasurement:this.validMeasurement,numVertices:this.numVertices,hasStagedVertex:this.hasStagedVertex,positionsRender:this.positionsRender,positionsFittedWorld:this.positionsFittedWorld,positionsFittedRender:this.positionsFittedRender,intersectingSegments:this.intersectingSegments,geodesicIntersectingSegments:this.geodesicIntersectingSegments,triangleIndices:this.triangleIndices,geodesicTriangleIndices:this.geodesicTriangleIndices,areaCentroidRenderCoords:this.areaCentroidRenderCoords,geodesicAreaCentroidRenderCoords:this.geodesicAreaCentroidRenderCoords,area:this.area,geodesicArea:this.geodesicArea,pathLength:this.pathLength,geodesicPathLength:this.geodesicPathLength,perimeterLength:this.perimeterLength,actualMeasurementMode:this.actualMeasurementMode}}_resize(e){for(e<this._length&&(this.positionsWorld.length=e,this.positionsRender.length=e,this.positionsFittedWorld.length=e,this.positionsFittedRender.length=e,this.positionsGeodesic.length=e,this.positionsSpherical.length=e,this.positionsStereographic.length=e,this.pathSegmentLengths.length=e,this.geodesicPathSegmentLengths.length=e,this.perimeterSegmentLengths.length=e,this._length=e);this._length<e;)this.positionsWorld.push(S()),this.positionsRender.push(S()),this.positionsFittedWorld.push(a()),this.positionsFittedRender.push(S()),this.positionsGeodesic.push(S()),this.positionsSpherical.push(S()),this.positionsStereographic.push(a()),this.pathSegmentLengths.push(0),this.geodesicPathSegmentLengths.push(0),this.perimeterSegmentLengths.push(0),++this._length}_updatePathLengths(e){const t=this.positionsWorld,s=this.pathSegmentLengths;let i=0;const o=this._length;for(let n=0;n<o;++n){const r=s[n]=l(t[n],t[(n+1)%o]);(n<o-1||e)&&(i+=r)}return i}_updateGeodesicPathLengths(e,i){const o=this.positionsGeodesic,n=this.geodesicPathSegmentLengths;let r=0;const h=this._length;for(let t=0;t<h;++t){const a=this._geodesicLengthMeasurementUtils.geodesicDistance(o[t],o[(t+1)%h],i);if(null==a)return null;const l=s(a,"meters").value,d=n[t]=l;(t<h-1||e)&&(r+=d)}return t(r,"meters")}_updateAreaAndPerimeterLength(e,t,s,i){const o=e.renderCoordsHelper,n=this.positionsWorld,h=this.positionsRender,a=this.positionsFittedWorld,l=this.positionsFittedRender,f=this._planeWorldCoords,S=this._centroidRenderCoords;x(h,S),o.worldUpAtPosition(S,this._worldUp),o.worldBasisAtPosition(S,0,this._worldTangent),R(S,this._worldUp,t,this._worldUp,s),R(S,this._worldTangent,t,this._worldTangent,s),n.length>2&&w(n,f),this.fittingMode=this._selectFittingMode(f,n,this._worldUp,i);let L=0;if("horizontal"===this.fittingMode){let e=-1/0;h.forEach((t,s)=>{const i=o.getAltitude(h[s]);i>e&&(e=i,L=s)})}const M=n[L];let C=f,P=this._worldTangent;"horizontal"===this.fittingMode?C=this._worldUp:"vertical"===this.fittingMode&&(C=this._tempVec3,P=this._worldUp,q(f,this._worldUp,C)),d(this._frame[2],C),q(P,C,this._frame[0]),g(this._frame[1],this._frame[0],this._frame[2]),c(this._frame[1],this._frame[1]);const j=this._tempVec3,A=this._tempU,v=this._tempV;for(let d=0;d<this._length;++d){const e=a[d],i=l[d];p(j,n[d],M),r(e,m(this._frame[0],j),m(this._frame[1],j)),u(A,this._frame[0],e[0]),u(v,this._frame[1],e[1]),_(j,A,v),_(j,j,M),U(j,s,i,t)}this.perimeterLength=this._length>0?this._updatePerimeterLengths():null,x(l,this.areaCentroidRenderCoords),U(this.areaCentroidRenderCoords,t,this.areaCentroidWorldCoords,s),this._updateIntersectingSegments(),this.area=0===this.intersectingSegments.size?this._computeArea():null}_updateGeodesicArea(e,t){const{renderCoordsHelper:s,spatialReference:i}=e,{positionsSpherical:o,positionsStereographic:n}=this,h=this._tempVec3,a=W(o,h);if(!a)return void(this.geodesicArea=null);const l=this._tempU,d=this._tempV;z(h,l,d);for(let g=0;g<this._length;++g){const e=m(o[g],l),t=m(o[g],d),s=m(o[g],h);r(n[g],e/s,t/s)}u(h,h,M(i).radius),s.toRenderCoords(h,P(i),this.geodesicAreaCentroidRenderCoords),this._updateGeodesicIntersectingSegments(),this.geodesicArea=a&&0===this.geodesicIntersectingSegments.size?this._computeGeodesicArea(t):null}_updatePerimeterLengths(){const e=this.positionsFittedWorld,s=this.perimeterSegmentLengths;let i=0;for(let t=0;t<this._length;++t){i+=s[t]=h(e[t],e[(t+1)%this._length])}return t(i,this._lengthMeasurementUnit)}_updateIntersectingSegments(){const e=this.positionsFittedWorld,t=this.intersectingSegments;t.clear();for(let s=0;s<this._length;++s)for(let i=s+2;i<this._length;++i){if((i+1)%this._length===s)continue;const o=e[s],n=e[(s+1)%this._length],r=e[i],h=e[(i+1)%this._length];v(o,n,r,h)&&(t.add(s),t.add(i))}}_computeArea(){const e=this.positionsFittedWorld,t=this.triangleIndices=A(b(e));let s=0;for(let i=0;i<t.length;i+=3)s+=V(e[t[i]],e[t[i+1]],e[t[i+2]]);return i(s,this._areaMeasurementUnit)}_updateGeodesicIntersectingSegments(){const e=this.positionsStereographic,t=this.geodesicIntersectingSegments;t.clear();for(let s=0;s<this._length;++s)for(let i=s+2;i<this._length;++i){if((i+1)%this._length===s)continue;const o=e[s],n=e[(s+1)%this._length],r=e[i],h=e[(i+1)%this._length];v(o,n,r,h)&&(t.add(s),t.add(i))}}_computeGeodesicArea(e){const t=this.positionsGeodesic,o=this.positionsStereographic,n=this.geodesicTriangleIndices=A(b(o));let r=0;for(let i=0;i<n.length;i+=3){const o=F(t[n[i]],t[n[i+1]],t[n[i+2]],e,this._geodesicAreaMeasurementUtils);if(null==o)return null;r+=s(o,"square-meters").value}return i(r,"square-meters")}_selectFittingMode(t,s,i,o){const n=s.map(e=>Math.abs(y(t,e))).reduce((e,t)=>Math.max(e,t),0);G(s,this._tempSphere);const r=n/(2*this._tempSphere.radius),h=r<o.maxRelativeErrorCoplanar,a=r<o.maxRelativeErrorAlmostCoplanar;let l="horizontal";if(h)l="oblique";else if(a){l=Math.abs(m(i,t))>Math.cos(e(o.verticalAngleThreshold))?"horizontal":"vertical"}return l}_updateCursorSegmentLength(e,t){const s=e.lastPoint;e.isValidPolygon||null==s||null==t?(this.geodesicStagedSegmentLength=null,this.stagedSegmentLength=null):(this.geodesicStagedSegmentLength=this._geodesicLengthMeasurementUtils.geodesicDistanceBetweenPoints(s,t),this.stagedSegmentLength=E(s,t)?.direct)}_updateMode(e){if(0===e){this.actualMeasurementMode="euclidean";let e=0;null!=this.geodesicPathLength&&(e+=this.geodesicPathLength.value),e>Z&&(this.actualMeasurementMode="geodesic")}else this.actualMeasurementMode=1===e?"euclidean":"geodesic";null==this.geodesicPathLength&&(this.actualMeasurementMode="euclidean"),this._mode=e}}function k(e,t){t.hasZ||(t.z=T(e,t,"ground")??0)}const Z=1e5;export{H as MeasurementDataManager};
|
|
5
|
+
import{__decorate as t}from"tslib";import e from"../../../../../core/Accessor.js";import{deg2rad as r}from"../../../../../core/mathUtils.js";import{abortMaybe as s}from"../../../../../core/maybe.js";import{debounce as i,throwIfAborted as o}from"../../../../../core/promiseUtils.js";import{valueInUnit as n}from"../../../../../core/quantity.js";import{lengthUnitFromSpatialReference as a,areaUnitFromSpatialReference as l}from"../../../../../core/units.js";import{property as h}from"../../../../../core/accessorSupport/decorators/property.js";import{subclass as d}from"../../../../../core/accessorSupport/decorators/subclass.js";import{set as p}from"../../../../../core/libs/gl-matrix-2/math/vec2.js";import{create as m}from"../../../../../core/libs/gl-matrix-2/factories/vec2f64.js";import{d as u,h as c,f as _,q as g,e as f,g as j,j as v,i as P}from"../../../../../chunks/vec32.js";import{create as x}from"../../../../../core/libs/gl-matrix-2/factories/vec3f64.js";import{create as w}from"../../../../../core/libs/gl-matrix-2/factories/vec4f64.js";import C from"../../../../../geometry/Polygon.js";import y from"../../../../../geometry/SpatialReference.js";import{isPCPF as R}from"../../../../../geometry/spatialReferenceEllipsoidUtils.js";import{projectDirection as M}from"../../../../../geometry/projection/projectDirection.js";import{projectPointToVector as U}from"../../../../../geometry/projection/projectPointToVector.js";import{projectVectorToVector as A}from"../../../../../geometry/projection/projectVectorToVector.js";import{compactIndices as W}from"../../../../../geometry/support/Indices.js";import{Sphere as D}from"../../../../../geometry/support/sphere.js";import{bestFitPlane as V,planePointDistance as b,boundingSphere as F}from"../../support/measurementUtils.js";import{getElevationAtPoint as I}from"../../../support/ElevationProvider.js";import{midpoint3d as S,makeOrthonormal as T}from"../../../support/mathUtils.js";import{useGeodesicAreaMeasurement as k}from"../../../../support/automaticAreaMeasurementUtils.js";import{triangulate as q}from"../../../../support/euclideanAreaMeasurementUtils.js";import{computeEuclideanMeasurementSR as z}from"../../../../support/measurementUtils.js";import{MeasurementWorkerHandle as O}from"../../../../support/MeasurementWorkerHandle.js";class E{constructor(t){this.positionsWorld=[],this.positionsRender=[],this.positionsFittedRender=[],this.triangleIndices=null,this.areaPolygon=new C({rings:[[]],spatialReference:t}),this.positionsFittedWorldPlaneProjected=this.areaPolygon.rings[0]}}class H{constructor(t,e=null,r=null,s=null,i=null,o=null,n=null){this.mode=t,this.area=e,this.geodesicArea=r,this.perimeter=s,this.geodesicPerimeter=i,this.areaCentroidRenderCoords=o,this.geodesicAreaCentroidRenderCoords=n}}let L=class extends e{get numVertices(){return this._length}get hasStagedVertex(){return null!=this._lastCursorPoint}get fittingMode(){return this._fittingMode}get measurements(){return this._measurements}get updateId(){return this._updateId}constructor(t){super(t),this._length=0,this._lastCursorPoint=null,this._fittingMode=null,this._measurements=null,this._updateId=0,this._centroidRenderCoords=x(),this._planeWorldCoords=w(),this._worldUp=x(),this._worldTangent=x(),this._frame=[x(),x(),x()],this._worldOrigin=x(),this._updateAxisU=x(),this._updateAxisV=x(),this._updateWorldOrigin=x(),this._lastPathVersion=-1,this._mode=null,this._tempU=x(),this._tempV=x(),this._tempVec3=x(),this._tempSphere=new D,this._measurementWorker=new O,this._updateAbortController=null,this._updateMeasurements=i(async(t,e,r,s,i,n)=>{const a=t.spatialReference,l=k(a);u(this._updateAxisU,this._frame[0]),u(this._updateAxisV,this._frame[1]),u(this._updateWorldOrigin,this._worldOrigin);const h=(e,r)=>(e&&t.renderCoordsHelper.toRenderCoords(e,r)||c(r,0,0,0),r),d=e.areaMeasurement?.geometry,p=l&&1!==r&&d?await this._measurementWorker.geodesicLength(d,{stagedPoint:s?i:null}):null;o(n);const m=this._calculateMode(r,p),_="geodesic"===m,[g,f,j]=await Promise.all([_?null:this._measurementWorker.planarArea(this.vertexData.areaPolygon,{unit:this._areaMeasurementUnit,returnCentroid:!0}),_?null:this._measurementWorker.planarLength(this.vertexData.areaPolygon,{unit:this._lengthMeasurementUnit}),_&&d?await this._measurementWorker.geodesicArea(d,{stagedPoint:s?i:null,returnCentroid:!0}):null]);o(n);const v=_?null:x();v&&g?.centroid&&this._projectPointToFittedRender(v,this._updateWorldOrigin,[g.centroid?.x??0,g.centroid?.y??0],this._updateAxisU,this._updateAxisV,this.view.renderSpatialReference,this._measurementSR);const P=j?.centroid?h(j.centroid,x()):null;this._measurements=new H(m,_?null:g?.area,_?j?.area:null,_?null:f,_?p:null,_?null:v,_?P:null)});const e=z(t.view.spatialReference);this._measurementSR=e,this._lengthMeasurementUnit=a(e)??"meters",this._areaMeasurementUnit=l(e)??"square-meters";const r=R(e)?y.WebMercator:e;this.vertexData=new E(r)}destroy(){this._measurementWorker.destroy()}update(t,e,r,s,i,o,n){const a=this._lastPathVersion===t.version,l=e?e.equals(this._lastCursorPoint):null==this._lastCursorPoint,h=this._mode===i;return!(a&&!o&&h&&l)&&(this._lastPathVersion=t.version,this._lastCursorPoint=e,this._update(t,e,r,s,i,n),!0)}_update(t,e,r,i,o,n){const a=this.view.renderSpatialReference,l=this._measurementSR;let h=t.numVertices;const d=!(null==e||e.equals(t.lastPoint)||h>2&&e.equals(t.firstPoint)||t.polygonIsClosed);d&&(h+=1);const p=!t.polygonIsClosed&&h>2,m=t.polygonIsClosed||p;this._resize(h);const{positionsWorld:u,positionsRender:c}=this.vertexData,_=(t,e)=>{B(r.elevationProvider,t),U(t,u[e],l),U(t,c[e],a)};if(t.forEachVertexPosition((t,e)=>_(t,e)),d&&_(e,h-1),this.vertexData.areaPolygon.clearCache(),!m)return this._measurements=null,this.vertexData.triangleIndices=null,this._updateId++,void(this._updateAbortController=s(this._updateAbortController));this._updateVertexData(r,a,l,i),this._updateId++,this._updateAbortController??=new AbortController,n.addPromise(this._updateMeasurements(r,t,o,d,e,this._updateAbortController.signal))}_resize(t){for(t<this._length&&(this.vertexData.positionsWorld.length=t,this.vertexData.positionsRender.length=t,this.vertexData.positionsFittedWorldPlaneProjected.length=t,this.vertexData.positionsFittedRender.length=t,this._length=t);this._length<t;)this.vertexData.positionsWorld.push(x()),this.vertexData.positionsRender.push(x()),this.vertexData.positionsFittedWorldPlaneProjected.push(m()),this.vertexData.positionsFittedRender.push(x()),++this._length}_updateVertexData(t,e,r,s){const i=t.renderCoordsHelper,{positionsWorld:o,positionsRender:n,positionsFittedWorldPlaneProjected:a,positionsFittedRender:l}=this.vertexData,h=this._planeWorldCoords,d=this._centroidRenderCoords;S(n,d),i.worldUpAtPosition(d,this._worldUp),i.worldBasisAtPosition(d,0,this._worldTangent),M(d,this._worldUp,e,this._worldUp,r),M(d,this._worldTangent,e,this._worldTangent,r),o.length>2&&V(o,h),this._fittingMode=this._selectFittingMode(h,o,this._worldUp,s);let m=0;if("horizontal"===this._fittingMode){let t=-1/0;n.forEach((e,r)=>{const s=i.getAltitude(n[r]);s>t&&(t=s,m=r)})}const{_worldOrigin:c}=this;u(this._worldOrigin,o[m]);let v=h,P=this._worldTangent;"horizontal"===this._fittingMode?v=this._worldUp:"vertical"===this._fittingMode&&(v=this._tempVec3,P=this._worldUp,T(h,this._worldUp,v));const x=this._frame[0],w=this._frame[1];u(this._frame[2],v),T(P,v,x),_(w,x,this._frame[2]),g(w,w);const C=this._tempVec3;for(let u=0;u<this._length;++u){const t=a[u],s=l[u];f(C,o[u],c),p(t,j(x,C),j(w,C)),this._projectPointToFittedRender(s,c,t,x,w,e,r)}this.vertexData.triangleIndices=W(q(a))}_projectPointToFittedRender(t,e,r,s,i,o,n){const a=this._tempU,l=this._tempV;v(a,s,r[0]),v(l,i,r[1]),P(t,a,l),P(t,t,e),A(t,n,t,o)}_selectFittingMode(t,e,s,i){const o=e.map(e=>Math.abs(b(t,e))).reduce((t,e)=>Math.max(t,e),0);F(e,this._tempSphere);const n=o/(2*this._tempSphere.radius),a=n<i.maxRelativeErrorCoplanar,l=n<i.maxRelativeErrorAlmostCoplanar;let h="horizontal";if(a)h="oblique";else if(l){h=Math.abs(j(s,t))>Math.cos(r(i.verticalAngleThreshold))?"horizontal":"vertical"}return h}_calculateMode(t,e){return null!=e&&0===t?n(e,"meters")>Z?"geodesic":"euclidean":null==e||1===t?"euclidean":"geodesic"}};function B(t,e){e.hasZ||(e.z=I(t,e,"ground")??0)}t([h()],L.prototype,"_measurements",void 0),t([h()],L.prototype,"_updateId",void 0),t([h()],L.prototype,"view",void 0),L=t([d("esri.views.3d.analysis.AreaMeasurement.support.MeasurementData")],L);const Z=1e5;export{H as AreaMeasurementQuantities,L as MeasurementData};
|
|
@@ -2,4 +2,4 @@
|
|
|
2
2
|
All material copyright Esri, All Rights Reserved, unless otherwise specified.
|
|
3
3
|
See https://js.arcgis.com/5.0/esri/copyright.txt for details.
|
|
4
4
|
*/
|
|
5
|
-
import{__decorate as e}from"tslib";import"../../../core/has.js";import{abortMaybe as t,destroyMaybe as s}from"../../../core/maybe.js";import{property as i,subclass as a}from"../../../core/accessorSupport/decorators.js";import{getDefaultUnitForView as r}from"../../../support/getDefaultUnitForView.js";import o from"./AnalysisView3D.js";import{AreaMeasurementController as n}from"./AreaMeasurement/support/AreaMeasurementController.js";import{AreaMeasurement3DPathHelper as l}from"./AreaMeasurement/support/AreaMeasurementPathHelper.js";import{AreaMeasurementVisualization as
|
|
5
|
+
import{__decorate as e}from"tslib";import"../../../core/has.js";import{abortMaybe as t,destroyMaybe as s}from"../../../core/maybe.js";import{property as i,subclass as a}from"../../../core/accessorSupport/decorators.js";import{getDefaultUnitForView as r}from"../../../support/getDefaultUnitForView.js";import o from"./AnalysisView3D.js";import{AreaMeasurementController as n}from"./AreaMeasurement/support/AreaMeasurementController.js";import{AreaMeasurement3DPathHelper as l}from"./AreaMeasurement/support/AreaMeasurementPathHelper.js";import{AreaMeasurementVisualization as p}from"./AreaMeasurement/support/AreaMeasurementVisualization.js";import{toPreferredLengthUnit as u,toPreferredAreaUnit as m}from"./AreaMeasurement/support/utils.js";import y from"../interactive/measurementTools/areaMeasurement3D/AreaMeasurement3DTool.js";import{connectAnalysisViewToTool as h,removeAnalysisViewTool as d,startPlaceOperation as v}from"../../analysis/analysisViewUtils.js";let g=class extends o{constructor(e){super(e),this.type="area-measurement-view-3d",this.analysis=null,this.measurementData=null,this.lastDraggedVertex=null,this.stagedPoint=null,this.mode=0,this.tool=null,this.userOperation=null}initialize(){const{analysis:e,view:t}=this;this.path=new l({view:t,areaMeasurement:e}),this._analysisVisualization=new p({view:t,analysis:e,analysisViewData:this}),this._analysisController=new n({view:t,analysis:e,analysisViewData:this}),this.addHandles(h(this,y))}destroy(){d(this),this.userOperation=t(this.userOperation),this._analysisController=s(this._analysisController),this._analysisVisualization=s(this._analysisVisualization),this.path.destroy()}get visible(){return super.visible}set visible(e){super.visible=e}get interactive(){return super.interactive}set interactive(e){super.interactive=e}get updating(){return!!this._analysisVisualization?.loadingMessages||!!this._analysisController?.updating}get result(){const e=this.measurementData?.measurements;if(!e)return null;const{unit:t}=this,{mode:s}=e,i="geodesic"===s,a=i?e.geodesicArea:e.area,r=i?e.geodesicPerimeter:e.perimeter;return{mode:s,area:a?m(a,t):null,perimeter:r?u(r,t):null}}get viewData(){return this._analysisVisualization.viewData}get areaLabel(){return this._analysisVisualization.areaLabel}get perimeterLabel(){return this._analysisVisualization.perimeterLabel}get validMeasurement(){return this.path.isValidPolygon}get unit(){return this.analysis.unit??r(this.view)}get testData(){}place(e){return v(this,{placementOptions:e})}};e([i()],g.prototype,"_analysisVisualization",void 0),e([i()],g.prototype,"_analysisController",void 0),e([i({readOnly:!0})],g.prototype,"type",void 0),e([i({constructOnly:!0,nonNullable:!0})],g.prototype,"analysis",void 0),e([i()],g.prototype,"updating",null),e([i()],g.prototype,"result",null),e([i()],g.prototype,"measurementData",void 0),e([i()],g.prototype,"viewData",null),e([i()],g.prototype,"areaLabel",null),e([i()],g.prototype,"perimeterLabel",null),e([i()],g.prototype,"validMeasurement",null),e([i()],g.prototype,"path",void 0),e([i()],g.prototype,"lastDraggedVertex",void 0),e([i()],g.prototype,"stagedPoint",void 0),e([i()],g.prototype,"mode",void 0),e([i()],g.prototype,"unit",null),e([i()],g.prototype,"tool",void 0),e([i()],g.prototype,"userOperation",void 0),g=e([a("esri.views.3d.analysis.AreaMeasurementAnalysisView3D")],g);const c=g;export{c as default};
|
|
@@ -6,15 +6,25 @@
|
|
|
6
6
|
import type { Length } from "../../../../core/quantity.js";
|
|
7
7
|
import type { MeasurementMode } from "../../../analysis/types.js";
|
|
8
8
|
|
|
9
|
-
/**
|
|
9
|
+
/**
|
|
10
|
+
* Result obtained from a [DirectLineMeasurementAnalysis](https://developers.arcgis.com/javascript/latest/api-reference/esri-analysis-DirectLineMeasurementAnalysis.html).
|
|
11
|
+
*
|
|
12
|
+
* @since 5.0
|
|
13
|
+
*/
|
|
10
14
|
export interface DirectLineMeasurementAnalysisResult {
|
|
11
|
-
/**
|
|
15
|
+
/**
|
|
16
|
+
* The 3D distance between the two points that is computed in a Euclidean manner.
|
|
17
|
+
*
|
|
18
|
+
* @since 5.0
|
|
19
|
+
*/
|
|
12
20
|
directDistance: Length;
|
|
13
21
|
/**
|
|
14
22
|
* Horizontal distance between the two points. It can be measured as the euclidean distance or
|
|
15
23
|
* the geodesic distance depending on the configured measurement mode. In automatic mode, the
|
|
16
24
|
* distance is measured geodetically if the spatial reference is a GCS or WebMercator; otherwise
|
|
17
25
|
* (in non-WebMercator PCS) it is Euclidean.
|
|
26
|
+
*
|
|
27
|
+
* @since 5.0
|
|
18
28
|
*/
|
|
19
29
|
horizontalDistance: Length;
|
|
20
30
|
/**
|
|
@@ -23,11 +33,21 @@ export interface DirectLineMeasurementAnalysisResult {
|
|
|
23
33
|
* This mode is used in scenes with projected coordinate systems (PCS), apart from Web Mercator.
|
|
24
34
|
* - In `geodesic` mode, the horizontal distance is computed geodetically.
|
|
25
35
|
* This mode is used in scenes with geographic coordinate systems (GCS) or in Web Mercator.
|
|
36
|
+
*
|
|
37
|
+
* @since 5.0
|
|
26
38
|
*/
|
|
27
39
|
mode: MeasurementMode;
|
|
28
|
-
/**
|
|
40
|
+
/**
|
|
41
|
+
* Vertical distance measured as the absolute difference of the elevation of the two points.
|
|
42
|
+
*
|
|
43
|
+
* @since 5.0
|
|
44
|
+
*/
|
|
29
45
|
verticalDistance: Length;
|
|
30
46
|
}
|
|
31
47
|
|
|
32
|
-
/**
|
|
48
|
+
/**
|
|
49
|
+
* Result returned when a direct line measurement placement operation completes successfully.
|
|
50
|
+
*
|
|
51
|
+
* @since 5.0
|
|
52
|
+
*/
|
|
33
53
|
export interface DirectLineMeasurementPlacementResult {}
|
|
@@ -30,17 +30,30 @@ import type { ScreenPoint } from "../../../core/types.js";
|
|
|
30
30
|
* @see [Shadow Cast component](https://developers.arcgis.com/javascript/latest/references/map-components/arcgis-shadow-cast/)
|
|
31
31
|
*/
|
|
32
32
|
export default abstract class ShadowCastAnalysisView3D extends AnalysisView3D {
|
|
33
|
-
/**
|
|
33
|
+
/**
|
|
34
|
+
* The shadow cast analysis associated with the analysis view.
|
|
35
|
+
*
|
|
36
|
+
* @since 5.0
|
|
37
|
+
*/
|
|
34
38
|
get analysis(): ShadowCastAnalysis;
|
|
35
39
|
/**
|
|
36
40
|
* Enables interactivity for the [analysis](https://developers.arcgis.com/javascript/latest/api-reference/esri-views-3d-analysis-ShadowCastAnalysisView3D.html#analysis).
|
|
37
41
|
*
|
|
38
42
|
* @default true
|
|
43
|
+
* @since 5.0
|
|
39
44
|
*/
|
|
40
45
|
accessor interactive: boolean;
|
|
41
|
-
/**
|
|
46
|
+
/**
|
|
47
|
+
* The analysis view type.
|
|
48
|
+
*
|
|
49
|
+
* @since 5.0
|
|
50
|
+
*/
|
|
42
51
|
get type(): "shadow-cast-view-3d";
|
|
43
|
-
/**
|
|
52
|
+
/**
|
|
53
|
+
* Whether the analysis is currently being updated.
|
|
54
|
+
*
|
|
55
|
+
* @since 5.0
|
|
56
|
+
*/
|
|
44
57
|
get updating(): boolean;
|
|
45
58
|
/**
|
|
46
59
|
* When `true`, the [analysis](https://developers.arcgis.com/javascript/latest/api-reference/esri-views-3d-analysis-ShadowCastAnalysisView3D.html#analysis) is visualized in the view.
|
|
@@ -48,6 +61,8 @@ export default abstract class ShadowCastAnalysisView3D extends AnalysisView3D {
|
|
|
48
61
|
* Only one [ShadowCastAnalysis](https://developers.arcgis.com/javascript/latest/api-reference/esri-analysis-ShadowCastAnalysis.html) at a time can be visible in a [SceneView](https://developers.arcgis.com/javascript/latest/api-reference/esri-views-SceneView.html).
|
|
49
62
|
* When a shadow cast analysis is made visible by setting this property to `true`, all other shadow cast analysis
|
|
50
63
|
* views are automatically hidden.
|
|
64
|
+
*
|
|
65
|
+
* @since 5.0
|
|
51
66
|
*/
|
|
52
67
|
accessor visible: boolean;
|
|
53
68
|
/**
|
|
@@ -55,6 +70,7 @@ export default abstract class ShadowCastAnalysisView3D extends AnalysisView3D {
|
|
|
55
70
|
*
|
|
56
71
|
* @param point - The point on the screen for which shadow cast is calculated.
|
|
57
72
|
* @returns A promise that resolves to the duration (in milliseconds) spent in shadow for the given screen point.
|
|
73
|
+
* @since 5.0
|
|
58
74
|
* @example
|
|
59
75
|
* // use getDurationAtScreen method from the analysis view once available
|
|
60
76
|
* const analysisView = await view.whenAnalysisView(shadowCastAnalysis);
|
|
@@ -2,4 +2,4 @@
|
|
|
2
2
|
All material copyright Esri, All Rights Reserved, unless otherwise specified.
|
|
3
3
|
See https://js.arcgis.com/5.0/esri/copyright.txt for details.
|
|
4
4
|
*/
|
|
5
|
-
import{__decorate as e}from"tslib";import{onLocaleChange as t,substitute as i,fetchMessageBundle as s}from"../../../../intl.js";import{volumeMeasurementConfiguration as o}from"../../../../analysis/VolumeMeasurement/volumeMeasurementConfiguration.js";import r from"../../../../core/Accessor.js";import{equals as l}from"../../../../core/arrayUtils.js";import{cyclicalPI as n}from"../../../../core/Cyclical.js";import{destroyMaybe as a}from"../../../../core/maybe.js";import{formatDecimal as c}from"../../../../core/quantityFormatUtils.js";import{watch as u,initial as m}from"../../../../core/reactiveUtils.js";import{adaptiveVolumeUnit as d}from"../../../../core/units.js";import{property as h,subclass as p}from"../../../../core/accessorSupport/decorators.js";import{e as y}from"../../../../chunks/earcut.js";import{create as g}from"../../../../core/libs/gl-matrix-2/factories/mat4f64.js";import{h as _,n as f,e as v,f as j,g as b}from"../../../../chunks/vec32.js";import{create as L,fromValues as C}from"../../../../core/libs/gl-matrix-2/factories/vec3f64.js";import{computeTranslationToOriginAndRotation as w}from"../../../../geometry/projection/computeTranslationToOriginAndRotation.js";import{newDoubleArray as G}from"../../../../geometry/support/DoubleArray.js";import{newIndexArray as P}from"../../../../geometry/support/Indices.js";import{angleAroundAxis as V}from"../../../../geometry/support/vector.js";import{t as R}from"../../../../chunks/vec3.js";import F from"../../../../symbols/support/ElevationInfo.js";import{LabelVisualElement as A}from"../../interactive/visualElements/LabelVisualElement.js";import{LineVisualElement as O}from"../../interactive/visualElements/LineVisualElement.js";import{OutlineVisualElement as x}from"../../interactive/visualElements/OutlineVisualElement.js";import{EuclideanSegment as D}from"../../interactive/visualElements/support/Segment.js";import{ElevationContext as M}from"../../layers/graphics/ElevationContext.js";import{extrudePolygon as S}from"../../layers/graphics/Graphics3DExtrudeSymbolLayer.js";import{polygonToRenderInfo as U}from"../../support/renderInfoUtils/polygon.js";import{CutFillColor as E,VolumeGeometry as B}from"../../webgl-engine/lib/CutFillColor.js";import{createStipplePatternSimple as N}from"../../webgl-engine/materials/lineStippleUtils.js";let T=class extends r{get visible(){return this.analysisViewData.visible&&null!=this.analysisViewData.elevationAlignedGeometry&&null!=this.analysisViewData.targetGeometry}get updating(){return this.loadingMessages}get hasUnsupportedError(){const{error:e}=this.analysisViewData;return!!e&&["unsupported-coordinate-system","unsupported-layer-transparency"].includes(e.name)}constructor(e){super(e),this.unitsMessages=null,this.messages=null,this.loadingMessages=!0,this._elevationContext=M.fromElevationInfo(new F({mode:"absolute-height"})),this._extrusionHeight=o.targetElevationRange,this._projectionLines=[]}initialize(){const{view:e}=this,i={view:e,isDecoration:!0},s=o,r={...i,width:s.geometryOutlineWidth};this._elevationAlignedGeometry=new x({...r,isDraped:!0,color:s.geometryOutlineColor.toUnitRGBA()}),this._targetGeometry=new x(r);const l={...i,attached:!0,width:s.projectionLineWidth,renderOccluded:4,polygonOffset:!0},n={...l,stipplePattern:N(s.projectionLineStippleSize)},a=s.cutProjectionLineColor.toUnitRGBA(),c=s.fillProjectionLineColor.toUnitRGBA();this._cutProjectionLines=new O({...l,color:a}),this._occludedCutProjectionLines=new O({...n,color:a}),this._fillProjectionLines=new O({...l,color:c}),this._occludedFillProjectionLines=new O({...n,color:c});const d={...i,attached:!0};this._cutVolumeLabel=new A({...d,distance:s.labelDistance}),this._fillVolumeLabel=new A({...d,distance:-s.labelDistance}),this._cutFillRenderNode=new E({view:e,cutColor:s.cutColor,fillColor:s.fillColor,borderColor:s.geometryOutlineColor}),this.addHandles([u(()=>({elevationAlignedGeometry:this.analysisViewData.elevationAlignedGeometry,targetGeometry:this.analysisViewData.targetGeometry}),({elevationAlignedGeometry:e,targetGeometry:t})=>{this._elevationAlignedGeometry.geometry=e,this._targetGeometry.geometry=t},m),u(()=>({interactive:this.analysisViewData.interactive,measureType:this.analysis.measureType,visible:this.visible}),({visible:e,interactive:t,measureType:i})=>{this._elevationAlignedGeometry.visible=e&&!t,this._targetGeometry.visible=e&&"cut-fill"===i,this._cutFillRenderNode.measureType=i},m),u(()=>({elevationAlignedGeometry:this.analysisViewData.elevationAlignedGeometry,targetGeometry:this.analysisViewData.targetGeometry,visible:this.visible}),({elevationAlignedGeometry:e,targetGeometry:t,visible:i})=>this._updateProjectionLines(e,t,i),m),u(()=>({interactive:this.analysisViewData.interactive,accentColor:this.view.effectiveTheme.accentColor,hasResult:!!this.analysisViewData.result}),({interactive:e,accentColor:t,hasResult:i})=>{this._updateColors(e,t,i)},m),u(()=>this.analysisViewData.targetGeometry,()=>this._updateCutFillGeometry(),m),u(()=>this.visible&&!this.hasUnsupportedError,e=>this._updateCutFillVisibility(e),m),u(()=>{const{messages:e,unitsMessages:t,visible:i,analysisViewData:s}=this;return{labelAnchors:s.labelAnchors,effectiveDisplayUnits:s.effectiveDisplayUnits,messages:e,unitsMessages:t,result:s.result,visible:i&&!!s.result}},e=>this._updateLabels(e)),u(()=>this.view.state.camera,e=>this._updateProjectionLineOcclusion(e),m),t(()=>this._updateMessageBundle())]),this._updateMessageBundle()}destroy(){this._elevationAlignedGeometry=a(this._elevationAlignedGeometry),this._targetGeometry=a(this._targetGeometry),this._cutProjectionLines=a(this._cutProjectionLines),this._occludedCutProjectionLines=a(this._occludedCutProjectionLines),this._fillProjectionLines=a(this._fillProjectionLines),this._occludedFillProjectionLines=a(this._occludedFillProjectionLines),this._cutVolumeLabel=a(this._cutVolumeLabel),this._fillVolumeLabel=a(this._fillVolumeLabel),this._cutFillRenderNode.destroy()}_updateProjectionLines(e,t,i){if(this._cutProjectionLines.visible=i,this._occludedCutProjectionLines.visible=i,this._fillProjectionLines.visible=i,this._occludedFillProjectionLines.visible=i,!e||!t)return;const{renderCoordsHelper:s}=this.view,o=[],r=e.spatialReference,n=e.rings[0],a=n.length>1&&l(n[0],n[n.length-1]),c=n.length-(a?1:0);for(let l=0;l<c;++l){const e=n[l],i=_(L(),e[0],e[1],e[2]);s.toRenderCoords(i,r,i);const a=t.rings[0][l],c=_(L(),a[0],a[1],a[2]);s.toRenderCoords(c,r,c);const u=new D(i,c);o.push(u)}e.isClockwise(n)||o.reverse();const u=[],m=[],d=[],h=[],p=[],y=this.view.state.camera;for(let l=0;l<o.length;++l){const i=o[l],s=o[0===l?o.length-1:l-1],r=o[l===o.length-1?0:l+1],n=e.rings[0][l],a=t.rings[0][l],c=n[2]>a[2],g=new k(i,s,r,c);u.push(g),g.updateOccluded(y);const _=g.isOccluded;c?(_?d:m).push(i):(_?p:h).push(i)}this._projectionLines=u,this._cutProjectionLines.setGeometryFromSegments(m),this._occludedCutProjectionLines.setGeometryFromSegments(d),this._fillProjectionLines.setGeometryFromSegments(h),this._occludedFillProjectionLines.setGeometryFromSegments(p)}_updateProjectionLineOcclusion(e){const t=[],i=[],s=[],o=[];let r=!1,l=!1;for(const n of this._projectionLines){n.updateOccluded(e)&&(r||=n.isCut,l||=!n.isCut);const a=n.isOccluded;(n.isCut?a?i:t:a?o:s).push(n.segment)}l&&(this._fillProjectionLines.setGeometryFromSegments(s),this._occludedFillProjectionLines.setGeometryFromSegments(o)),r&&(this._cutProjectionLines.setGeometryFromSegments(t),this._occludedCutProjectionLines.setGeometryFromSegments(i))}_updateColors(e,t,i){const{geometryOutlineColor:s,cutColor:r,fillColor:l,cutColorMuted:n,fillColorMuted:a,cutProjectionLineColor:c,fillProjectionLineColor:u}=o;if(this._cutFillRenderNode.cutColor=i?r:n,this._cutFillRenderNode.fillColor=i?l:a,e){const e=t.toUnitRGBA();this._targetGeometry.color=e,this._cutProjectionLines.color=e,this._occludedCutProjectionLines.color=e,this._fillProjectionLines.color=e,this._occludedFillProjectionLines.color=e,this._cutFillRenderNode.borderColor=t}else{this._targetGeometry.color=s.toUnitRGBA();const e=(i?c:n).toUnitRGBA();this._cutProjectionLines.color=e,this._occludedCutProjectionLines.color=e;const t=(i?u:a).toUnitRGBA();this._fillProjectionLines.color=t,this._occludedFillProjectionLines.color=t,this._cutFillRenderNode.borderColor=s}}_updateLabels(e){const{effectiveDisplayUnits:t,labelAnchors:s,messages:o,unitsMessages:r,result:l,visible:n}=e;if(this._cutVolumeLabel.visible=n,this._fillVolumeLabel.visible=n,this._cutVolumeLabel.geometry=s?{type:"point",point:s.cut}:null,this._fillVolumeLabel.geometry=s?{type:"point",point:s.fill}:null,null==l||null==o||null==r)return this._cutVolumeLabel.text="-",void(this._fillVolumeLabel.text="-");const a=t.volume,c=i(o.labels.cut,{volume:H(r,l.cutVolume,a)}),u=i(o.labels.fill,{volume:H(r,l.fillVolume,a)});this._cutVolumeLabel.text=c,this._fillVolumeLabel.text=u}_updateCutFillVisibility(e){e?this._cutFillRenderNode.enable():this._cutFillRenderNode.disable()}_updateCutFillGeometry(){const{renderCoordsHelper:e}=this.view,{targetGeometry:t}=this.analysisViewData;if(!t?.extent)return;const{center:i}=t.extent,s=C(i.x,i.y,0),o=L();e.toRenderCoords(s,t.spatialReference,o);const r=this._getExtrudedVolume(t,this._extrusionHeight,s,o),l=this._getExtrudedVolume(t,-this._extrusionHeight,s,o);this._cutFillRenderNode.updateGeometries(r,l,o)}_getExtrudedVolume(e,t,i,s){const{renderCoordsHelper:o,spatialReference:r,elevationProvider:l}=this.view,n=L(),a=1===o.viewingMode;o.worldUpAtPosition(s,n);const c=U(e,l,o,this._elevationContext),{polygons:u,mapPositions:m,position:d}=c,h=u[0],p=h.count,_=y(h.mapPositions,h.holeIndices,3),f=_.length,v=6*p,j=P(v+f),b=P(f),C=G(3*v),V=G(3*v);S(d,m,_,h,C,null,V,null,j,b,t,n,a);const F=g(),A=g();if(w(r,i,F,o.spatialReference),A[12]=-F[12],A[13]=-F[13],A[14]=-F[14],R(C,C,A),"stockpile"===this.analysis.measureType)for(let y=0;y<V.length;y+=3)V[y]=n[0],V[y+1]=n[1],V[y+2]=n[2];return new B(C,b,j,V)}async _updateMessageBundle(){this.loadingMessages=!0;try{this.unitsMessages=await s("esri/core/t9n/Units"),this.messages=await s("esri/views/3d/analysis/VolumeMeasurement/t9n/VolumeMeasurementAnalysis")}finally{this.loadingMessages=!1}}};function H(e,t,i){if(!t||!e)return null;const s=d(t.value,t.unit,i),r=o.labelPrecisions[s];return c(e,t,s,r)}e([h({constructOnly:!0})],T.prototype,"view",void 0),e([h({constructOnly:!0})],T.prototype,"analysis",void 0),e([h({constructOnly:!0})],T.prototype,"analysisViewData",void 0),e([h()],T.prototype,"unitsMessages",void 0),e([h()],T.prototype,"messages",void 0),e([h()],T.prototype,"loadingMessages",void 0),e([h({readOnly:!0})],T.prototype,"visible",null),e([h()],T.prototype,"updating",null),e([h()],T.prototype,"hasUnsupportedError",null),T=e([p("esri.views.3d.analysis.VolumeMeasurement.VolumeMeasurementCutFillVisualization")],T);class k{constructor(e,t,i,s){this.segment=e,this.previous=t,this.next=i,this.isCut=s,this._isOccluded=!1,this._n1=L(),this._n2=L();const o=f(I,v(I,e.endRenderSpace,e.startRenderSpace));f(this._n1,j(this._n1,o,f(z,v(z,t.startRenderSpace,e.startRenderSpace)))),f(this._n2,j(this._n2,o,f(z,v(z,e.startRenderSpace,i.startRenderSpace)))),this._isConvex=n.normalize(V(this._n1,this._n2,o))<0}get isOccluded(){return this._isOccluded}updateOccluded(e){v(I,this.segment.startRenderSpace,e.eye);const t=b(this._n1,I)<0,i=b(this._n2,I)<0,s=this._isOccluded;return this._isOccluded=this._isConvex?t&&i:t||i,this._isOccluded!==s}}const I=L(),z=L();export{T as VolumeMeasurementCutFillVisualization};
|
|
5
|
+
import{__decorate as e}from"tslib";import{onLocaleChange as t,substitute as i,fetchMessageBundle as s}from"../../../../intl.js";import{volumeMeasurementConfiguration as o}from"../../../../analysis/VolumeMeasurement/volumeMeasurementConfiguration.js";import r from"../../../../core/Accessor.js";import{equals as l}from"../../../../core/arrayUtils.js";import{cyclicalPI as n}from"../../../../core/Cyclical.js";import{destroyMaybe as a}from"../../../../core/maybe.js";import{formatDecimal as c,preferredVolumePrecision as u}from"../../../../core/quantityFormatUtils.js";import{watch as m,initial as d}from"../../../../core/reactiveUtils.js";import{adaptiveVolumeUnit as h}from"../../../../core/units.js";import{property as p,subclass as y}from"../../../../core/accessorSupport/decorators.js";import{e as g}from"../../../../chunks/earcut.js";import{create as _}from"../../../../core/libs/gl-matrix-2/factories/mat4f64.js";import{h as f,n as v,e as j,f as L,g as b}from"../../../../chunks/vec32.js";import{create as C,fromValues as w}from"../../../../core/libs/gl-matrix-2/factories/vec3f64.js";import{computeTranslationToOriginAndRotation as G}from"../../../../geometry/projection/computeTranslationToOriginAndRotation.js";import{newDoubleArray as P}from"../../../../geometry/support/DoubleArray.js";import{newIndexArray as V}from"../../../../geometry/support/Indices.js";import{angleAroundAxis as R}from"../../../../geometry/support/vector.js";import{t as F}from"../../../../chunks/vec3.js";import A from"../../../../symbols/support/ElevationInfo.js";import{LabelVisualElement as O}from"../../interactive/visualElements/LabelVisualElement.js";import{LineVisualElement as x}from"../../interactive/visualElements/LineVisualElement.js";import{OutlineVisualElement as D}from"../../interactive/visualElements/OutlineVisualElement.js";import{EuclideanSegment as M}from"../../interactive/visualElements/support/Segment.js";import{ElevationContext as S}from"../../layers/graphics/ElevationContext.js";import{extrudePolygon as U}from"../../layers/graphics/Graphics3DExtrudeSymbolLayer.js";import{polygonToRenderInfo as E}from"../../support/renderInfoUtils/polygon.js";import{CutFillColor as B,VolumeGeometry as N}from"../../webgl-engine/lib/CutFillColor.js";import{createStipplePatternSimple as T}from"../../webgl-engine/materials/lineStippleUtils.js";let H=class extends r{get visible(){return this.analysisViewData.visible&&null!=this.analysisViewData.elevationAlignedGeometry&&null!=this.analysisViewData.targetGeometry}get updating(){return this.loadingMessages}get hasUnsupportedError(){const{error:e}=this.analysisViewData;return!!e&&["unsupported-coordinate-system","unsupported-layer-transparency"].includes(e.name)}constructor(e){super(e),this.unitsMessages=null,this.messages=null,this.loadingMessages=!0,this._elevationContext=S.fromElevationInfo(new A({mode:"absolute-height"})),this._extrusionHeight=o.targetElevationRange,this._projectionLines=[]}initialize(){const{view:e}=this,i={view:e,isDecoration:!0},s=o,r={...i,width:s.geometryOutlineWidth};this._elevationAlignedGeometry=new D({...r,isDraped:!0,color:s.geometryOutlineColor.toUnitRGBA()}),this._targetGeometry=new D(r);const l={...i,attached:!0,width:s.projectionLineWidth,renderOccluded:4,polygonOffset:!0},n={...l,stipplePattern:T(s.projectionLineStippleSize)},a=s.cutProjectionLineColor.toUnitRGBA(),c=s.fillProjectionLineColor.toUnitRGBA();this._cutProjectionLines=new x({...l,color:a}),this._occludedCutProjectionLines=new x({...n,color:a}),this._fillProjectionLines=new x({...l,color:c}),this._occludedFillProjectionLines=new x({...n,color:c});const u={...i,attached:!0};this._cutVolumeLabel=new O({...u,distance:s.labelDistance}),this._fillVolumeLabel=new O({...u,distance:-s.labelDistance}),this._cutFillRenderNode=new B({view:e,cutColor:s.cutColor,fillColor:s.fillColor,borderColor:s.geometryOutlineColor}),this.addHandles([m(()=>({elevationAlignedGeometry:this.analysisViewData.elevationAlignedGeometry,targetGeometry:this.analysisViewData.targetGeometry}),({elevationAlignedGeometry:e,targetGeometry:t})=>{this._elevationAlignedGeometry.geometry=e,this._targetGeometry.geometry=t},d),m(()=>({interactive:this.analysisViewData.interactive,measureType:this.analysis.measureType,visible:this.visible}),({visible:e,interactive:t,measureType:i})=>{this._elevationAlignedGeometry.visible=e&&!t,this._targetGeometry.visible=e&&"cut-fill"===i,this._cutFillRenderNode.measureType=i},d),m(()=>({elevationAlignedGeometry:this.analysisViewData.elevationAlignedGeometry,targetGeometry:this.analysisViewData.targetGeometry,visible:this.visible}),({elevationAlignedGeometry:e,targetGeometry:t,visible:i})=>this._updateProjectionLines(e,t,i),d),m(()=>({interactive:this.analysisViewData.interactive,accentColor:this.view.effectiveTheme.accentColor,hasResult:!!this.analysisViewData.result}),({interactive:e,accentColor:t,hasResult:i})=>{this._updateColors(e,t,i)},d),m(()=>this.analysisViewData.targetGeometry,()=>this._updateCutFillGeometry(),d),m(()=>this.visible&&!this.hasUnsupportedError,e=>this._updateCutFillVisibility(e),d),m(()=>{const{messages:e,unitsMessages:t,visible:i,analysisViewData:s}=this;return{labelAnchors:s.labelAnchors,effectiveDisplayUnits:s.effectiveDisplayUnits,messages:e,unitsMessages:t,result:s.result,visible:i&&!!s.result}},e=>this._updateLabels(e)),m(()=>this.view.state.camera,e=>this._updateProjectionLineOcclusion(e),d),t(()=>this._updateMessageBundle())]),this._updateMessageBundle()}destroy(){this._elevationAlignedGeometry=a(this._elevationAlignedGeometry),this._targetGeometry=a(this._targetGeometry),this._cutProjectionLines=a(this._cutProjectionLines),this._occludedCutProjectionLines=a(this._occludedCutProjectionLines),this._fillProjectionLines=a(this._fillProjectionLines),this._occludedFillProjectionLines=a(this._occludedFillProjectionLines),this._cutVolumeLabel=a(this._cutVolumeLabel),this._fillVolumeLabel=a(this._fillVolumeLabel),this._cutFillRenderNode.destroy()}_updateProjectionLines(e,t,i){if(this._cutProjectionLines.visible=i,this._occludedCutProjectionLines.visible=i,this._fillProjectionLines.visible=i,this._occludedFillProjectionLines.visible=i,!e||!t)return;const{renderCoordsHelper:s}=this.view,o=[],r=e.spatialReference,n=e.rings[0],a=n.length>1&&l(n[0],n[n.length-1]),c=n.length-(a?1:0);for(let l=0;l<c;++l){const e=n[l],i=f(C(),e[0],e[1],e[2]);s.toRenderCoords(i,r,i);const a=t.rings[0][l],c=f(C(),a[0],a[1],a[2]);s.toRenderCoords(c,r,c);const u=new M(i,c);o.push(u)}e.isClockwise(n)||o.reverse();const u=[],m=[],d=[],h=[],p=[],y=this.view.state.camera;for(let l=0;l<o.length;++l){const i=o[l],s=o[0===l?o.length-1:l-1],r=o[l===o.length-1?0:l+1],n=e.rings[0][l],a=t.rings[0][l],c=n[2]>a[2],g=new I(i,s,r,c);u.push(g),g.updateOccluded(y);const _=g.isOccluded;c?(_?d:m).push(i):(_?p:h).push(i)}this._projectionLines=u,this._cutProjectionLines.setGeometryFromSegments(m),this._occludedCutProjectionLines.setGeometryFromSegments(d),this._fillProjectionLines.setGeometryFromSegments(h),this._occludedFillProjectionLines.setGeometryFromSegments(p)}_updateProjectionLineOcclusion(e){const t=[],i=[],s=[],o=[];let r=!1,l=!1;for(const n of this._projectionLines){n.updateOccluded(e)&&(r||=n.isCut,l||=!n.isCut);const a=n.isOccluded;(n.isCut?a?i:t:a?o:s).push(n.segment)}l&&(this._fillProjectionLines.setGeometryFromSegments(s),this._occludedFillProjectionLines.setGeometryFromSegments(o)),r&&(this._cutProjectionLines.setGeometryFromSegments(t),this._occludedCutProjectionLines.setGeometryFromSegments(i))}_updateColors(e,t,i){const{geometryOutlineColor:s,cutColor:r,fillColor:l,cutColorMuted:n,fillColorMuted:a,cutProjectionLineColor:c,fillProjectionLineColor:u}=o;if(this._cutFillRenderNode.cutColor=i?r:n,this._cutFillRenderNode.fillColor=i?l:a,e){const e=t.toUnitRGBA();this._targetGeometry.color=e,this._cutProjectionLines.color=e,this._occludedCutProjectionLines.color=e,this._fillProjectionLines.color=e,this._occludedFillProjectionLines.color=e,this._cutFillRenderNode.borderColor=t}else{this._targetGeometry.color=s.toUnitRGBA();const e=(i?c:n).toUnitRGBA();this._cutProjectionLines.color=e,this._occludedCutProjectionLines.color=e;const t=(i?u:a).toUnitRGBA();this._fillProjectionLines.color=t,this._occludedFillProjectionLines.color=t,this._cutFillRenderNode.borderColor=s}}_updateLabels(e){const{effectiveDisplayUnits:t,labelAnchors:s,messages:o,unitsMessages:r,result:l,visible:n}=e;if(this._cutVolumeLabel.visible=n,this._fillVolumeLabel.visible=n,this._cutVolumeLabel.geometry=s?{type:"point",point:s.cut}:null,this._fillVolumeLabel.geometry=s?{type:"point",point:s.fill}:null,null==l||null==o||null==r)return this._cutVolumeLabel.text="-",void(this._fillVolumeLabel.text="-");const a=t.volume,c=i(o.labels.cut,{volume:k(r,l.cutVolume,a)}),u=i(o.labels.fill,{volume:k(r,l.fillVolume,a)});this._cutVolumeLabel.text=c,this._fillVolumeLabel.text=u}_updateCutFillVisibility(e){e?this._cutFillRenderNode.enable():this._cutFillRenderNode.disable()}_updateCutFillGeometry(){const{renderCoordsHelper:e}=this.view,{targetGeometry:t}=this.analysisViewData;if(!t?.extent)return;const{center:i}=t.extent,s=w(i.x,i.y,0),o=C();e.toRenderCoords(s,t.spatialReference,o);const r=this._getExtrudedVolume(t,this._extrusionHeight,s,o),l=this._getExtrudedVolume(t,-this._extrusionHeight,s,o);this._cutFillRenderNode.updateGeometries(r,l,o)}_getExtrudedVolume(e,t,i,s){const{renderCoordsHelper:o,spatialReference:r,elevationProvider:l}=this.view,n=C(),a=1===o.viewingMode;o.worldUpAtPosition(s,n);const c=E(e,l,o,this._elevationContext),{polygons:u,mapPositions:m,position:d}=c,h=u[0],p=h.count,y=g(h.mapPositions,h.holeIndices,3),f=y.length,v=6*p,j=V(v+f),L=V(f),b=P(3*v),w=P(3*v);U(d,m,y,h,b,null,w,null,j,L,t,n,a);const R=_(),A=_();if(G(r,i,R,o.spatialReference),A[12]=-R[12],A[13]=-R[13],A[14]=-R[14],F(b,b,A),"stockpile"===this.analysis.measureType)for(let g=0;g<w.length;g+=3)w[g]=n[0],w[g+1]=n[1],w[g+2]=n[2];return new N(b,L,j,w)}async _updateMessageBundle(){this.loadingMessages=!0;try{this.unitsMessages=await s("esri/core/t9n/Units"),this.messages=await s("esri/views/3d/analysis/VolumeMeasurement/t9n/VolumeMeasurementAnalysis")}finally{this.loadingMessages=!1}}};function k(e,t,i){if(!t||!e)return null;const s=h(t.value,t.unit,i),o=u(s);return c(e,t,s,o)}e([p({constructOnly:!0})],H.prototype,"view",void 0),e([p({constructOnly:!0})],H.prototype,"analysis",void 0),e([p({constructOnly:!0})],H.prototype,"analysisViewData",void 0),e([p()],H.prototype,"unitsMessages",void 0),e([p()],H.prototype,"messages",void 0),e([p()],H.prototype,"loadingMessages",void 0),e([p({readOnly:!0})],H.prototype,"visible",null),e([p()],H.prototype,"updating",null),e([p()],H.prototype,"hasUnsupportedError",null),H=e([y("esri.views.3d.analysis.VolumeMeasurement.VolumeMeasurementCutFillVisualization")],H);class I{constructor(e,t,i,s){this.segment=e,this.previous=t,this.next=i,this.isCut=s,this._isOccluded=!1,this._n1=C(),this._n2=C();const o=v(z,j(z,e.endRenderSpace,e.startRenderSpace));v(this._n1,L(this._n1,o,v(W,j(W,t.startRenderSpace,e.startRenderSpace)))),v(this._n2,L(this._n2,o,v(W,j(W,e.startRenderSpace,i.startRenderSpace)))),this._isConvex=n.normalize(R(this._n1,this._n2,o))<0}get isOccluded(){return this._isOccluded}updateOccluded(e){j(z,this.segment.startRenderSpace,e.eye);const t=b(this._n1,z)<0,i=b(this._n2,z)<0,s=this._isOccluded;return this._isOccluded=this._isConvex?t&&i:t||i,this._isOccluded!==s}}const z=C(),W=C();export{H as VolumeMeasurementCutFillVisualization};
|
|
@@ -4,5 +4,9 @@
|
|
|
4
4
|
* @since 5.0
|
|
5
5
|
*/
|
|
6
6
|
|
|
7
|
-
/**
|
|
7
|
+
/**
|
|
8
|
+
* Result returned when a volume measurement placement completes successfully.
|
|
9
|
+
*
|
|
10
|
+
* @since 5.0
|
|
11
|
+
*/
|
|
8
12
|
export interface VolumeMeasurementPlacementResult {}
|
|
@@ -2,4 +2,4 @@
|
|
|
2
2
|
All material copyright Esri, All Rights Reserved, unless otherwise specified.
|
|
3
3
|
See https://js.arcgis.com/5.0/esri/copyright.txt for details.
|
|
4
4
|
*/
|
|
5
|
-
import{
|
|
5
|
+
import{g as t,h as e,i as n,j as r,s as o}from"../../../../chunks/vec32.js";import{planeFromPoints as s}from"../../support/mathUtils.js";function a(t,s){e(s.center,0,0,0);for(let e=0;e<t.length;++e)n(s.center,s.center,t[e]);r(s.center,s.center,1/t.length);let a=0;for(let e=0;e<t.length;++e)a=Math.max(a,o(s.center,t[e]));s.radius=Math.sqrt(a)}function i(t,e){if(t.length<3)throw new Error("need at least 3 points to fit a plane");s(t[0],t[1],t[2],e)}function c(e,n){return t(e,n)+e[3]}function u(t){return"mouse"!==t.pointerType||0===t.button}export{i as bestFitPlane,a as boundingSphere,u as isPrimaryPointerAction,c as planePointDistance};
|
|
@@ -9,22 +9,44 @@ import type SliceAnalysisView3D from "./SliceAnalysisView3D.js";
|
|
|
9
9
|
import type ViewshedAnalysisView3D from "./ViewshedAnalysisView3D.js";
|
|
10
10
|
import type VolumeMeasurementAnalysisView3D from "./VolumeMeasurementAnalysisView3D.js";
|
|
11
11
|
|
|
12
|
-
/**
|
|
12
|
+
/**
|
|
13
|
+
* Maps each analysis type identifier to the corresponding 3D analysis view class.
|
|
14
|
+
*
|
|
15
|
+
* @since 5.0
|
|
16
|
+
*/
|
|
13
17
|
export interface AnalysisView3DMap {
|
|
18
|
+
/** @since 5.0 */
|
|
14
19
|
"area-measurement": AreaMeasurementAnalysisView3D;
|
|
20
|
+
/** @since 5.0 */
|
|
15
21
|
dimension: DimensionAnalysisView3D;
|
|
22
|
+
/** @since 5.0 */
|
|
16
23
|
"direct-line-measurement": DirectLineMeasurementAnalysisView3D;
|
|
24
|
+
/** @since 5.0 */
|
|
17
25
|
"distance-measurement": never;
|
|
26
|
+
/** @since 5.0 */
|
|
18
27
|
"elevation-profile": ElevationProfileAnalysisView3D;
|
|
28
|
+
/** @since 5.0 */
|
|
19
29
|
"line-of-sight": LineOfSightAnalysisView3D;
|
|
30
|
+
/** @since 5.0 */
|
|
20
31
|
"shadow-cast": ShadowCastAnalysisView3D;
|
|
32
|
+
/** @since 5.0 */
|
|
21
33
|
slice: SliceAnalysisView3D;
|
|
34
|
+
/** @since 5.0 */
|
|
22
35
|
viewshed: ViewshedAnalysisView3D;
|
|
36
|
+
/** @since 5.0 */
|
|
23
37
|
"volume-measurement": VolumeMeasurementAnalysisView3D;
|
|
24
38
|
}
|
|
25
39
|
|
|
26
|
-
/**
|
|
40
|
+
/**
|
|
41
|
+
* Resolves the 3D analysis view type for a given analysis instance.
|
|
42
|
+
*
|
|
43
|
+
* @since 5.0
|
|
44
|
+
*/
|
|
27
45
|
export type AnalysisView3DFor<AnalysisType extends Analysis> = AnalysisView3DMap[AnalysisType["type"]];
|
|
28
46
|
|
|
29
|
-
/**
|
|
47
|
+
/**
|
|
48
|
+
* Union of all possible analysis views that can be added to a [SceneView](https://developers.arcgis.com/javascript/latest/api-reference/esri-views-SceneView.html).
|
|
49
|
+
*
|
|
50
|
+
* @since 5.0
|
|
51
|
+
*/
|
|
30
52
|
export type AnalysisView3DUnion = AreaMeasurementAnalysisView3D | DimensionAnalysisView3D | DirectLineMeasurementAnalysisView3D | ElevationProfileAnalysisView3D | LineOfSightAnalysisView3D | ShadowCastAnalysisView3D | SliceAnalysisView3D | ViewshedAnalysisView3D | VolumeMeasurementAnalysisView3D;
|