@arcgis/core 6.0.0-next.22 → 6.0.0-next.24
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/Graphic.d.ts +47 -14
- package/PopupTemplate.js +1 -1
- package/WebScene.d.ts +3 -0
- package/analysis/LineOfSightAnalysis.d.ts +1 -1
- package/analysis/LineOfSightAnalysisObserver.d.ts +5 -4
- package/analysis/LineOfSightAnalysisTarget.d.ts +4 -4
- package/analysis/Viewshed.d.ts +4 -4
- package/arcade/functions/string.js +1 -1
- package/arcgisGlobal.d.ts +0 -5
- package/assets/esri/core/workers/RemoteClient.js +1 -1
- package/assets/esri/core/workers/chunks/{3c277a0f099d67090d07.js → 02335385b1476fe322eb.js} +1 -1
- package/assets/esri/core/workers/chunks/{db9921fbda556f142c4a.js → 04d55ed51e8b2683c4b4.js} +1 -1
- package/assets/esri/core/workers/chunks/{435b90168f79c5587a07.js → 04ecf15524ff3838c01c.js} +1 -1
- package/assets/esri/core/workers/chunks/{e2f42aec02bff33b25dd.js → 09300e74e5b014ce6269.js} +1 -1
- package/assets/esri/core/workers/chunks/{fcb86d24fc7e0666b564.js → 096b2bf1c0d69d27f20c.js} +1 -1
- package/assets/esri/core/workers/chunks/{612345f17f5eeb99ea8f.js → 0d9c4c6c571ce26d356b.js} +1 -1
- package/assets/esri/core/workers/chunks/{0f725cf79ce00e790a7d.js → 1168bc5c9f0a7e1f63a2.js} +1 -1
- package/assets/esri/core/workers/chunks/{4911ce62421a6c3320b0.js → 13c64087be3b2985a21b.js} +1 -1
- package/assets/esri/core/workers/chunks/{8e19629899a5becf8e19.js → 150e7a7bd5df25693da7.js} +1 -1
- package/assets/esri/core/workers/chunks/{12a7997a40c77f5c9160.js → 151e5799ede763a03ee2.js} +1 -1
- package/assets/esri/core/workers/chunks/{a64446a3328a7323e307.js → 173f89c55a5c79ff065b.js} +1 -1
- package/assets/esri/core/workers/chunks/{8715661a838361d4211a.js → 1b24a40c0fa197014873.js} +1 -1
- package/assets/esri/core/workers/chunks/{ca0d4ce453d8eb35467d.js → 277263466837e1673f56.js} +1 -1
- package/assets/esri/core/workers/chunks/{b1d989b72203113a06fe.js → 2a36fe3f3f257a779a1b.js} +1 -1
- package/assets/esri/core/workers/chunks/2c0cb214fedb29487eef.js +1 -0
- package/assets/esri/core/workers/chunks/{ffcb99693182a621a93e.js → 2cf8172be83b10b11bdc.js} +1 -1
- package/assets/esri/core/workers/chunks/{fcaf9450642fcef83286.js → 3048e74e6246324ce6fc.js} +1 -1
- package/assets/esri/core/workers/chunks/{95b82cbbe355266c65d7.js → 30af63b3b750142faadb.js} +1 -1
- package/assets/esri/core/workers/chunks/30dcf2cfb31cb70de7df.js +1 -0
- package/assets/esri/core/workers/chunks/{9f0a973a0dd28953ce25.js → 371e2ddb88cc6b9a41e8.js} +1 -1
- package/assets/esri/core/workers/chunks/3fd5c3cd8457ddc68798.js +1 -0
- package/assets/esri/core/workers/chunks/{62fec1816907f070f079.js → 3fe04f13215474accb09.js} +1 -1
- package/assets/esri/core/workers/chunks/{f47fe4433b05fca5c3ad.js → 42f6194633c2d879c8da.js} +1 -1
- package/assets/esri/core/workers/chunks/{cddc3e285f763ccf33c2.js → 4869e097261ded90b8bb.js} +1 -1
- package/assets/esri/core/workers/chunks/{d8a7eba588d374b2f961.js → 4bb9a5f4ca944d3fc206.js} +1 -1
- package/assets/esri/core/workers/chunks/{2e096537a3a5555a4a93.js → 4cb751dc8d00bdaeb04c.js} +1 -1
- package/assets/esri/core/workers/chunks/{8052da8be251c3ff2176.js → 4d93bed14945e3d34d5c.js} +1 -1
- package/assets/esri/core/workers/chunks/{65cb5e39c467a35621ca.js → 56e903ccef66cbe18f92.js} +1 -1
- package/assets/esri/core/workers/chunks/{44d5508042cacdfcac47.js → 58da3f8cf0f7f6a7e4fa.js} +1 -1
- package/assets/esri/core/workers/chunks/{bc915fb182d463d804e6.js → 5c04835b0b52461183cd.js} +1 -1
- package/assets/esri/core/workers/chunks/{7e8611cb709f105946f5.js → 6061232c96e11eb7b25d.js} +1 -1
- package/assets/esri/core/workers/chunks/{1e514e1c9aabefa04201.js → 64382363d6dc04ff1eac.js} +1 -1
- package/assets/esri/core/workers/chunks/{c82daefb193aae895bc0.js → 67e06d606c7fd2064adf.js} +1 -1
- package/assets/esri/core/workers/chunks/{434a8ba841a59e0deab9.js → 67e533748435253aaba6.js} +1 -1
- package/assets/esri/core/workers/chunks/{feb41abc03d677df6f73.js → 6b9961261241fdce0e94.js} +1 -1
- package/assets/esri/core/workers/chunks/{949bee7b304e625a7891.js → 6db0f8fe1402643fbe1a.js} +1 -1
- package/assets/esri/core/workers/chunks/{baed828b7846c0863289.js → 6f1d6453184e0a1530ad.js} +22 -18
- package/assets/esri/core/workers/chunks/6f897b4e7ddd1dd1672b.js +1 -0
- package/assets/esri/core/workers/chunks/{0049b66ccbfb168caa76.js → 7124ad8dc5ad40dc66f3.js} +1 -1
- package/assets/esri/core/workers/chunks/{6e107ce73633de8ac257.js → 72f4dad65e16a7d7c58f.js} +1 -1
- package/assets/esri/core/workers/chunks/{0df9a906f7823c23d426.js → 7566321c6a2913f2852b.js} +1 -1
- package/assets/esri/core/workers/chunks/{c4ddac23bd649d24f3f2.js → 75d551a449bba61ce238.js} +1 -1
- package/assets/esri/core/workers/chunks/{af349c7bc8ef41a0e1bd.js → 7748c2886d0122b40eeb.js} +1 -1
- package/assets/esri/core/workers/chunks/{b4c3ec081874b49ff89b.js → 78fbe330f16bdbdb886e.js} +1 -1
- package/assets/esri/core/workers/chunks/79483c05867ba1386f5a.js +1 -0
- package/assets/esri/core/workers/chunks/7b482afb9fd1229f5707.js +1 -0
- package/assets/esri/core/workers/chunks/7c631e2947243e2c9bde.js +1 -0
- package/assets/esri/core/workers/chunks/{814751e705c05099f864.js → 7c75a8ee266c36baa902.js} +1 -1
- package/assets/esri/core/workers/chunks/7db9e615e60d824eac1b.js +1 -0
- package/assets/esri/core/workers/chunks/{8a7b02037151767542f1.js → 7dbf4c7480bf9c72820d.js} +1 -1
- package/assets/esri/core/workers/chunks/{1b1d3f6916d2cb751435.js → 87177e0f82e8a6ae3189.js} +1 -1
- package/assets/esri/core/workers/chunks/{5cb26bbaa08114aec5ce.js → 89cc1a5539b82fb46216.js} +1 -1
- package/assets/esri/core/workers/chunks/8b5dcc4282772bf6b675.js +1 -0
- package/assets/esri/core/workers/chunks/{8c12269d26f5a4c753cb.js → 8ebaf5754e86a45b0497.js} +1 -1
- package/assets/esri/core/workers/chunks/{542e5640ea1b80ef801a.js → 9189dfe19a2a2ccd5173.js} +1 -1
- package/assets/esri/core/workers/chunks/{67a35155b8b4d36f171e.js → 926e0a3827eaf16ca8b4.js} +1 -1
- package/assets/esri/core/workers/chunks/{dc1761cba0454fda3cf9.js → 9630234267098115de4d.js} +1 -1
- package/assets/esri/core/workers/chunks/{10d80e793019dfb45ca2.js → 987424121cf30b0f3c50.js} +1 -1
- package/assets/esri/core/workers/chunks/9afc87474cef1fc4fe4a.js +1 -0
- package/assets/esri/core/workers/chunks/{facd1ff23203fed67686.js → 9b048f80c2d28d527373.js} +1 -1
- package/assets/esri/core/workers/chunks/9dd48e75b4e8d9811d81.js +1 -0
- package/assets/esri/core/workers/chunks/{ee08ae5b73439a1ff666.js → a163c6005aba3378edaa.js} +1 -1
- package/assets/esri/core/workers/chunks/a4b822ee45810c4c292a.js +1 -0
- package/assets/esri/core/workers/chunks/{092e311cb7aea92a6a26.js → acb265a22be5e12f38e5.js} +1 -1
- package/assets/esri/core/workers/chunks/{1a411ddae7a47015370c.js → acf4737ba509cbd73cce.js} +1 -1
- package/assets/esri/core/workers/chunks/ad96132bc89671e595f3.js +1 -0
- package/assets/esri/core/workers/chunks/{d247dd53788d512b9c9f.js → af3c6794334626b94f00.js} +1 -1
- package/assets/esri/core/workers/chunks/{532e9cda8ac3601d8892.js → b12acf1f694f82e00df9.js} +1 -1
- package/assets/esri/core/workers/chunks/{d08ff41e2a9bcd58b64a.js → ba3d5abff65aefcb8dee.js} +1 -1
- package/assets/esri/core/workers/chunks/{504184828048310a052c.js → bdc221d94300c225665a.js} +1 -1
- package/assets/esri/core/workers/chunks/c0eb27263f608dc3684b.js +1 -0
- package/assets/esri/core/workers/chunks/c2318c014e97ba519be8.js +1 -0
- package/assets/esri/core/workers/chunks/{7f8e327acad48c9e75ea.js → c62237c344e341619341.js} +1 -1
- package/assets/esri/core/workers/chunks/{a2ad3e620c98e2b2eb06.js → cd355baab983033c3ef0.js} +1 -1
- package/assets/esri/core/workers/chunks/{7be6d621a0d1e33dfff4.js → d070fcb73ce274ab80e4.js} +1 -1
- package/assets/esri/core/workers/chunks/{6d41444b46677aa762a7.js → db41490bd39d863305bf.js} +1 -1
- package/assets/esri/core/workers/chunks/{fc5a36e54929e03efa86.js → dba5f44c4e4a3f075df2.js} +1 -1
- package/assets/esri/core/workers/chunks/{3e30b96a8c75bd5b9ae2.js → ddc95cdac6c06fc4794c.js} +1 -1
- package/assets/esri/core/workers/chunks/{a5c8f9f5be4ef5063b42.js → df26ec0b508cf4716e0a.js} +1 -1
- package/assets/esri/core/workers/chunks/{f426da2210888cc264b4.js → e83f9abee611c5b80009.js} +1 -1
- package/assets/esri/core/workers/chunks/{8487727f1197cf7dbf50.js → ef12fa3574d4cbf8b084.js} +1 -1
- package/assets/esri/core/workers/chunks/f10c883eb26330e3421c.js +1 -0
- package/assets/esri/core/workers/chunks/f46e92c67986c8c09bdd.js +1 -0
- package/assets/esri/core/workers/chunks/{709e019885822b1f6f3e.js → f905f1a1aa4c123cbe83.js} +1 -1
- package/assets/esri/core/workers/chunks/{5b91e2dffdc84c006539.js → fb37f0848196c28b7fd7.js} +1 -1
- package/assets/esri/libs/librust-parquet/pkg/parquet_bg.wasm +0 -0
- package/assets/esri/libs/librust-text/pkg/text_bg.wasm +0 -0
- package/assets/esri/themes/base/_core.scss +0 -2
- package/assets/esri/themes/dark/main.css +1 -1
- package/assets/esri/themes/light/main.css +1 -1
- package/assets/esri/themes/light/view.css +1 -1
- package/chunks/Component.glsl.js +9 -12
- package/chunks/DefaultMaterial.glsl.js +4 -5
- package/chunks/MultiPathImpl.js +1 -1
- package/chunks/OperatorProximityGeodesic.js +1 -1
- package/chunks/Path.glsl.js +2 -4
- package/chunks/RealisticTree.glsl.js +3 -3
- package/chunks/SSAO.glsl.js +1 -2
- package/chunks/basis_encoder.js +1 -1
- package/chunks/basis_transcoder.js +1 -1
- package/chunks/draco_mesh_decoder.js +1 -1
- package/chunks/dxt_encoder.js +1 -1
- package/chunks/i3s.js +1 -1
- package/chunks/lclayout.js +1 -1
- package/chunks/lerc-wasm.js +1 -1
- package/chunks/libtess-f32.js +1 -1
- package/chunks/libtess-f64.js +1 -1
- package/chunks/lyr3DMain.js +1 -1
- package/chunks/lyr3DWorker.js +1 -1
- package/chunks/parquet.js +1 -1
- package/chunks/qb3-wasm.js +1 -1
- package/chunks/rbush.js +1 -1
- package/chunks/text.js +1 -1
- package/chunks/vxlLayer.js +1 -1
- package/config.js +1 -1
- package/core/workers/WorkerFallback.js +4 -2
- package/core/workers/workerFactory.js +1 -1
- package/core/workers/workers.js +4 -2
- package/geometry/support/clipRay.js +1 -1
- package/geometry/support/labelPoint.js +1 -1
- package/geometry/support/plane.js +1 -1
- package/graphic/AnnotationFeatureGraphicOrigin.d.ts +49 -9
- package/graphic/BuildingGraphicOrigin.d.ts +49 -0
- package/graphic/CSVGraphicOrigin.d.ts +42 -9
- package/graphic/CatalogGraphicOrigin.d.ts +42 -9
- package/graphic/DimensionFeatureGraphicOrigin.d.ts +42 -9
- package/graphic/FeatureGraphicOrigin.d.ts +42 -9
- package/graphic/GeoJSONGraphicOrigin.d.ts +42 -9
- package/graphic/GeoRSSGraphicOrigin.d.ts +42 -9
- package/graphic/GraphicOrigin.d.ts +52 -12
- package/graphic/ImageryGraphicOrigin.d.ts +42 -9
- package/graphic/ImageryTileGraphicOrigin.d.ts +42 -9
- package/graphic/KMLGraphicOrigin.d.ts +47 -10
- package/graphic/KnowledgeGraphGraphicOrigin.d.ts +49 -1
- package/graphic/LinkChartGraphicOrigin.d.ts +49 -1
- package/graphic/MapImageGraphicOrigin.d.ts +49 -1
- package/graphic/MapNotesGraphicOrigin.d.ts +48 -1
- package/graphic/OGCFeatureGraphicOrigin.d.ts +42 -9
- package/graphic/OrientedImageryGraphicOrigin.d.ts +42 -9
- package/graphic/ParquetGraphicOrigin.d.ts +42 -9
- package/graphic/PointCloudGraphicOrigin.d.ts +43 -0
- package/graphic/SceneGraphicOrigin.d.ts +43 -0
- package/graphic/SketchGraphicOrigin.d.ts +43 -0
- package/graphic/StreamGraphicOrigin.d.ts +43 -0
- package/graphic/SubtypeGroupGraphicOrigin.d.ts +49 -1
- package/graphic/TileGraphicOrigin.d.ts +49 -1
- package/graphic/VectorTileGraphicOrigin.d.ts +43 -14
- package/graphic/VoxelGraphicOrigin.d.ts +43 -0
- package/graphic/WCSGraphicOrigin.d.ts +43 -0
- package/graphic/WFSGraphicOrigin.d.ts +42 -9
- package/graphic/getGraphicOriginTitle.d.ts +21 -3
- package/interfaces.d.ts +0 -55
- package/kernel.js +1 -1
- package/layers/ElevationLayer.d.ts +6 -2
- package/layers/GaussianSplatLayer.d.ts +2 -1
- package/layers/GeoJSONLayer.d.ts +2 -107
- package/layers/IntegratedMeshLayer.js +1 -1
- package/layers/ParquetLayer.d.ts +24 -1
- package/layers/ParquetLayer.js +1 -1
- package/layers/SceneLayer.d.ts +40 -16
- package/layers/ViewshedLayer.d.ts +10 -4
- package/layers/WMSLayer.d.ts +2 -69
- package/layers/mixins/ReloadableLayer.js +1 -1
- package/layers/mixins/TemporalLayer.d.ts +70 -48
- package/layers/mixins/TiledImagery.d.ts +0 -11
- package/layers/orientedImagery/transformations/utils.js +1 -1
- package/layers/save/featureLayerUtils.js +1 -1
- package/layers/save/imageryUtils.js +1 -1
- package/layers/save/mapImageLayerUtils.js +1 -1
- package/layers/save/mediaLayerUtils.js +1 -1
- package/layers/save/parquetLayerUtils.js +2 -0
- package/layers/save/streamLayerUtils.js +1 -1
- package/layers/support/LabelClass.d.ts +8 -2
- package/layers/support/layersMapping.js +1 -1
- package/layers/support/rasterJobHelper.js +1 -1
- package/layers/video/VideoController.js +5 -5
- package/package.json +2 -2
- package/popup/content.d.ts +38 -1
- package/popup/content.js +1 -1
- package/portal/schemas/definitions.js +1 -1
- package/portal/schemas/webScene.js +1 -1
- package/rest/query/operations/pbfDehydratedFeatureSet.js +1 -1
- package/rest/query/operations/pbfFlatFeatureSet.js +1 -1
- package/rest/query/operations/pbfJSONFeatureSet.js +1 -1
- package/smartMapping/popup/support/clusterUtils.js +1 -1
- package/smartMapping/popup/support/utils.js +2 -2
- package/smartMapping/renderers/size.js +1 -1
- package/smartMapping/renderers/support/regenerateUtils.js +1 -1
- package/support/timeUtils.d.ts +11 -0
- package/undoredo/support/ApplySet.js +1 -1
- package/views/2d/engine/flow/ProcessingTimeEstimate.js +1 -1
- package/views/2d/engine/vectorTiles/VectorTileContainer.js +1 -1
- package/views/2d/engine/vectorTiles/buckets/SymbolBucket.js +1 -1
- package/views/2d/engine/webgl/GlyphWorker.js +1 -1
- package/views/2d/engine/webgl/mesh/templates/shapingUtils.js +1 -1
- package/views/2d/engine/webgl/shaderGraph/techniques/markers/MarkerMeshWriter.js +1 -1
- package/views/2d/layers/features/Processor.js +1 -1
- package/views/2d/layers/features/aggregation/GeohashSpatialIndex.js +1 -1
- package/views/2d/layers/features/aggregation/GridSpatialIndex.js +1 -1
- package/views/2d/layers/features/layerAdapters/CatalogFootprintLayerAdapter.js +1 -1
- package/views/2d/layers/features/layerAdapters/FeatureLayerAdapter.js +1 -1
- package/views/2d/layers/features/layerAdapters/InMemoryLayerAdapter.js +1 -1
- package/views/2d/layers/features/layerAdapters/KnowledgeGraphSublayerAdapter.js +1 -1
- package/views/2d/layers/features/layerAdapters/OGCFeatureLayerAdapter.js +1 -1
- package/views/2d/layers/features/layerAdapters/OrientedImageryLayerAdapter.js +1 -1
- package/views/2d/layers/features/layerAdapters/ParquetLayerAdapter.js +1 -1
- package/views/2d/layers/features/layerAdapters/StreamLayerAdapter.js +1 -1
- package/views/2d/layers/features/processor/AggregateStrategy.js +1 -1
- package/views/2d/layers/features/processor/FeatureUpdateStrategy.js +1 -1
- package/views/2d/layers/features/processor/bins/BinAdapter.js +1 -1
- package/views/2d/layers/features/processor/bins/BinLevelState.js +1 -1
- package/views/2d/layers/features/processor/clusters/ClusterAdapter.js +1 -1
- package/views/2d/layers/features/processor/clusters/ClusterLevelState.js +1 -1
- package/views/2d/layers/features/processor/tracks/TrackAdapter.js +1 -1
- package/views/2d/layers/features/processor/tracks/TrackLevelState.js +1 -1
- package/views/2d/layers/features/schema/processor/SimpleProcessorSchema.js +1 -1
- package/views/2d/layers/features/sources/strategies/chunks/ASourceChunk.js +1 -1
- package/views/2d/layers/features/sources/strategies/chunks/ByReferenceTileSourceChunk.js +1 -1
- package/views/2d/layers/features/sources/strategies/chunks/FeatureSnapshotSourceChunk.js +1 -1
- package/views/2d/layers/features/sources/strategies/chunks/Overrides.js +1 -1
- package/views/2d/layers/features/sources/strategies/chunks/ParquetSnapshotSourceChunk.js +1 -1
- package/views/2d/layers/features/sources/strategies/chunks/SourceChunkStore.js +1 -1
- package/views/2d/layers/features/sources/strategies/chunks/StreamSourceChunk.js +1 -1
- package/views/2d/layers/features/support/AttributeStore.js +1 -1
- package/views/2d/layers/features/support/FeatureFilterEvaluator.js +1 -1
- package/views/2d/layers/features/support/FeatureSetReader.js +1 -1
- package/views/2d/layers/features/support/GraphicsReader.js +1 -1
- package/views/2d/layers/graphics/GraphicsView2D.js +1 -1
- package/views/3d/environment/SunLighting.d.ts +0 -1
- package/views/3d/environment/SunLighting.js +1 -1
- package/views/3d/environment/VirtualLighting.d.ts +0 -1
- package/views/3d/environment/VirtualLighting.js +1 -1
- package/views/3d/input/handlers/ground/GroundDoubleClickMove.js +1 -1
- package/views/3d/interactive/editingTools/reshape/ReshapeOperation.js +1 -1
- package/views/3d/interactive/placementTools/GroundNavigationPlacementTool3D.js +1 -1
- package/views/3d/layers/IntegratedMesh3DTilesLayerView3D.js +1 -1
- package/views/3d/layers/SceneLayerGraphicsView3D.js +1 -1
- package/views/3d/layers/graphics/Deconflictor.js +1 -1
- package/views/3d/layers/graphics/ElevationAligners.js +1 -1
- package/views/3d/layers/graphics/Graphics3DCore.js +1 -1
- package/views/3d/layers/graphics/Graphics3DIconSymbolLayer.js +1 -1
- package/views/3d/layers/graphics/Graphics3DTextSymbolLayer.js +1 -1
- package/views/3d/layers/graphics/LabelParameters.js +1 -1
- package/views/3d/layers/graphics/Labeler.js +1 -1
- package/views/3d/layers/graphics/elevationAlignmentUtils.js +1 -1
- package/views/3d/layers/graphics/pointUtils.js +1 -1
- package/views/3d/layers/i3s/I3SIndex.js +1 -1
- package/views/3d/layers/i3s/I3SOverrides.js +1 -1
- package/views/3d/layers/support/Tiles3DBVH.js +1 -1
- package/views/3d/layers/support/featureTileQuery3D.js +1 -1
- package/views/3d/state/controllers/ZoomControllerLocal.js +1 -1
- package/views/3d/state/controllers/ZoomStepControllerLocal.js +1 -1
- package/views/3d/state/helpers/SceneIntersectionHelper.js +1 -1
- package/views/3d/state/utils/groundNavigationUtils.js +1 -1
- package/views/3d/state/utils/navigationUtils.js +1 -1
- package/views/3d/terrain/TerrainRenderer.js +1 -1
- package/views/3d/terrain/TerrainSurface.js +1 -1
- package/views/3d/webgl-engine/collections/Component/Material/Component.glsl.js +1 -1
- package/views/3d/webgl-engine/core/shaderLibrary/hud/HUD.glsl.js +1 -2
- package/views/3d/webgl-engine/core/shaderLibrary/shading/ScreenSpaceRayMarching.glsl.js +1 -2
- package/views/3d/webgl-engine/effects/glow/applyEmissiveGlow.glsl.js +9 -4
- package/views/3d/webgl-engine/effects/magnifier/Magnifier.js +1 -1
- package/views/3d/webgl-engine/effects/shadowAccumulation/ShadowCastRenderer.js +1 -1
- package/views/3d/webgl-engine/effects/snowcover/applySnow.glsl.js +18 -0
- package/views/3d/webgl-engine/lib/Intersector.js +1 -1
- package/views/3d/webgl-engine/lib/RenderingContext.js +1 -1
- package/views/3d/webgl-engine/lib/TextureRepository.js +1 -1
- package/views/3d/webgl-engine/lib/depthRangeUtils.js +1 -1
- package/views/3d/webgl-engine/lib/screenPolygonTriangleIntersections.js +1 -1
- package/views/3d/webgl-engine/materials/ColorMaterial.js +1 -1
- package/views/3d/webgl-engine/materials/DefaultMaterial.js +1 -1
- package/views/3d/webgl-engine/materials/Path.glsl.js +1 -1
- package/views/3d/webgl-engine/materials/PathMaterial.js +1 -1
- package/views/3d/webgl-engine/materials/RibbonLineMaterial.js +1 -1
- package/views/3d/webgl-engine/materials/TriangleMaterial.js +1 -1
- package/views/3d/webgl-engine/materials/internal/worldSizedRibbonLineIntersectionUtils.js +2 -0
- package/views/3d/webgl-engine/shaders/DefaultMaterial.glsl.js +1 -1
- package/views/3d/webgl-engine/shaders/RealisticTree.glsl.js +1 -1
- package/views/DOMContainer.js +1 -1
- package/views/draw/SegmentDrawAction.js +1 -1
- package/views/interactive/snapping/SnappingManagerPool.js +1 -1
- package/views/interactive/tooltip/content/TooltipContent.js +1 -1
- package/views/interactive/tooltip/fields/TooltipField.js +1 -1
- package/views/layers/LineOfSightLayerView.d.ts +2 -2
- package/views/layers/ViewshedLayerView.d.ts +2 -1
- package/views/support/LayerViewManager.js +1 -1
- package/views/support/ScheduledQueueProcessor.js +1 -1
- package/views/support/screenshotUtils.js +1 -1
- package/views/ui/UI.js +1 -1
- package/webdoc/support/webdocSaveUtils.js +1 -1
- package/webscene/Slide.d.ts +1 -2
- package/widgets/Editor/UpdateRecordWorkflow.js +1 -1
- package/widgets/Feature/FeatureExpression/FeatureExpressionViewModel.js +1 -1
- package/widgets/Feature/FeatureRelationship/FeatureRelationshipViewModel.js +1 -1
- package/widgets/FeatureForm/UtilityNetworkAssociationAddAssociationViewModel.js +1 -1
- package/widgets/FeatureTable/RelationshipColumn.js +1 -1
- package/widgets/FloorFilter/FloorFilterViewModel.js +1 -1
- package/widgets/Locate.d.ts +1 -1
- package/widgets/OrientedImageryViewer/ImageMeasurementWorker.js +1 -1
- package/widgets/OrientedImageryViewer/OrientedImageryViewerViewModel.js +1 -1
- package/widgets/OrientedImageryViewer/imageMeasurementUtils.js +1 -1
- package/widgets/OrientedImageryViewer/services/ImageMeasurementService.js +1 -1
- package/widgets/Search/SearchViewModel.js +1 -1
- package/widgets/Search/support/layerSearchUtils.js +1 -1
- package/widgets/Sketch/SketchViewModel.js +1 -1
- package/widgets/Sketch/support/PluginManager.js +1 -1
- package/widgets/UtilityNetworkTrace/UtilityNetworkTraceFeature.js +1 -1
- package/widgets/support/GeolocationPositioning.d.ts +1 -2
- package/assets/esri/core/workers/chunks/14d5d219e7fe017f23f0.js +0 -1
- package/assets/esri/core/workers/chunks/42045cf46497828cd3c0.js +0 -1
- package/assets/esri/core/workers/chunks/42753cf4965a94bc91ca.js +0 -1
- package/assets/esri/core/workers/chunks/42e985a576d7aaeed0cf.js +0 -1
- package/assets/esri/core/workers/chunks/5046214dd32029cb733d.js +0 -1
- package/assets/esri/core/workers/chunks/576248e9ae2654569420.js +0 -1
- package/assets/esri/core/workers/chunks/58865772bed48141a56a.js +0 -1
- package/assets/esri/core/workers/chunks/6059853ef3b6cddbe869.js +0 -1
- package/assets/esri/core/workers/chunks/72e6d594b7262430ae55.js +0 -1
- package/assets/esri/core/workers/chunks/7d11710e1586a3d75887.js +0 -1
- package/assets/esri/core/workers/chunks/8f74d92ac69714b9fd4e.js +0 -1
- package/assets/esri/core/workers/chunks/a09d2e1e2540921e4717.js +0 -1
- package/assets/esri/core/workers/chunks/a35c69a4751d28c39907.js +0 -1
- package/assets/esri/core/workers/chunks/a679207c3458cc0b1fec.js +0 -1
- package/assets/esri/core/workers/chunks/dfa5f1311806473e473f.js +0 -1
- package/assets/esri/core/workers/chunks/fc76aff0f7d95e517d8f.js +0 -1
- package/assets/esri/themes/base/widgets/_DirectionalPad.scss +0 -85
- package/assets/esri/widgets/DirectionalPad/t9n/messages.ar.json +0 -1
- package/assets/esri/widgets/DirectionalPad/t9n/messages.bg.json +0 -1
- package/assets/esri/widgets/DirectionalPad/t9n/messages.bs.json +0 -1
- package/assets/esri/widgets/DirectionalPad/t9n/messages.ca.json +0 -1
- package/assets/esri/widgets/DirectionalPad/t9n/messages.cs.json +0 -1
- package/assets/esri/widgets/DirectionalPad/t9n/messages.da.json +0 -1
- package/assets/esri/widgets/DirectionalPad/t9n/messages.de.json +0 -1
- package/assets/esri/widgets/DirectionalPad/t9n/messages.el.json +0 -1
- package/assets/esri/widgets/DirectionalPad/t9n/messages.en.json +0 -1
- package/assets/esri/widgets/DirectionalPad/t9n/messages.es.json +0 -1
- package/assets/esri/widgets/DirectionalPad/t9n/messages.et.json +0 -1
- package/assets/esri/widgets/DirectionalPad/t9n/messages.fi.json +0 -1
- package/assets/esri/widgets/DirectionalPad/t9n/messages.fr.json +0 -1
- package/assets/esri/widgets/DirectionalPad/t9n/messages.he.json +0 -1
- package/assets/esri/widgets/DirectionalPad/t9n/messages.hr.json +0 -1
- package/assets/esri/widgets/DirectionalPad/t9n/messages.hu.json +0 -1
- package/assets/esri/widgets/DirectionalPad/t9n/messages.id.json +0 -1
- package/assets/esri/widgets/DirectionalPad/t9n/messages.it.json +0 -1
- package/assets/esri/widgets/DirectionalPad/t9n/messages.ja.json +0 -1
- package/assets/esri/widgets/DirectionalPad/t9n/messages.ko.json +0 -1
- package/assets/esri/widgets/DirectionalPad/t9n/messages.lt.json +0 -1
- package/assets/esri/widgets/DirectionalPad/t9n/messages.lv.json +0 -1
- package/assets/esri/widgets/DirectionalPad/t9n/messages.nl.json +0 -1
- package/assets/esri/widgets/DirectionalPad/t9n/messages.no.json +0 -1
- package/assets/esri/widgets/DirectionalPad/t9n/messages.pl.json +0 -1
- package/assets/esri/widgets/DirectionalPad/t9n/messages.pt-BR.json +0 -1
- package/assets/esri/widgets/DirectionalPad/t9n/messages.pt-PT.json +0 -1
- package/assets/esri/widgets/DirectionalPad/t9n/messages.ro.json +0 -1
- package/assets/esri/widgets/DirectionalPad/t9n/messages.ru.json +0 -1
- package/assets/esri/widgets/DirectionalPad/t9n/messages.sk.json +0 -1
- package/assets/esri/widgets/DirectionalPad/t9n/messages.sl.json +0 -1
- package/assets/esri/widgets/DirectionalPad/t9n/messages.sr.json +0 -1
- package/assets/esri/widgets/DirectionalPad/t9n/messages.sv.json +0 -1
- package/assets/esri/widgets/DirectionalPad/t9n/messages.th.json +0 -1
- package/assets/esri/widgets/DirectionalPad/t9n/messages.tr.json +0 -1
- package/assets/esri/widgets/DirectionalPad/t9n/messages.uk.json +0 -1
- package/assets/esri/widgets/DirectionalPad/t9n/messages.vi.json +0 -1
- package/assets/esri/widgets/DirectionalPad/t9n/messages.zh-CN.json +0 -1
- package/assets/esri/widgets/DirectionalPad/t9n/messages.zh-HK.json +0 -1
- package/assets/esri/widgets/DirectionalPad/t9n/messages.zh-TW.json +0 -1
- package/assets/esri/widgets/Track/t9n/messages.ar.json +0 -1
- package/assets/esri/widgets/Track/t9n/messages.bg.json +0 -1
- package/assets/esri/widgets/Track/t9n/messages.bs.json +0 -1
- package/assets/esri/widgets/Track/t9n/messages.ca.json +0 -1
- package/assets/esri/widgets/Track/t9n/messages.cs.json +0 -1
- package/assets/esri/widgets/Track/t9n/messages.da.json +0 -1
- package/assets/esri/widgets/Track/t9n/messages.de.json +0 -1
- package/assets/esri/widgets/Track/t9n/messages.el.json +0 -1
- package/assets/esri/widgets/Track/t9n/messages.en.json +0 -1
- package/assets/esri/widgets/Track/t9n/messages.es.json +0 -1
- package/assets/esri/widgets/Track/t9n/messages.et.json +0 -1
- package/assets/esri/widgets/Track/t9n/messages.fi.json +0 -1
- package/assets/esri/widgets/Track/t9n/messages.fr.json +0 -1
- package/assets/esri/widgets/Track/t9n/messages.he.json +0 -1
- package/assets/esri/widgets/Track/t9n/messages.hr.json +0 -1
- package/assets/esri/widgets/Track/t9n/messages.hu.json +0 -1
- package/assets/esri/widgets/Track/t9n/messages.id.json +0 -1
- package/assets/esri/widgets/Track/t9n/messages.it.json +0 -1
- package/assets/esri/widgets/Track/t9n/messages.ja.json +0 -1
- package/assets/esri/widgets/Track/t9n/messages.ko.json +0 -1
- package/assets/esri/widgets/Track/t9n/messages.lt.json +0 -1
- package/assets/esri/widgets/Track/t9n/messages.lv.json +0 -1
- package/assets/esri/widgets/Track/t9n/messages.nl.json +0 -1
- package/assets/esri/widgets/Track/t9n/messages.no.json +0 -1
- package/assets/esri/widgets/Track/t9n/messages.pl.json +0 -1
- package/assets/esri/widgets/Track/t9n/messages.pt-BR.json +0 -1
- package/assets/esri/widgets/Track/t9n/messages.pt-PT.json +0 -1
- package/assets/esri/widgets/Track/t9n/messages.ro.json +0 -1
- package/assets/esri/widgets/Track/t9n/messages.ru.json +0 -1
- package/assets/esri/widgets/Track/t9n/messages.sk.json +0 -1
- package/assets/esri/widgets/Track/t9n/messages.sl.json +0 -1
- package/assets/esri/widgets/Track/t9n/messages.sr.json +0 -1
- package/assets/esri/widgets/Track/t9n/messages.sv.json +0 -1
- package/assets/esri/widgets/Track/t9n/messages.th.json +0 -1
- package/assets/esri/widgets/Track/t9n/messages.tr.json +0 -1
- package/assets/esri/widgets/Track/t9n/messages.uk.json +0 -1
- package/assets/esri/widgets/Track/t9n/messages.vi.json +0 -1
- package/assets/esri/widgets/Track/t9n/messages.zh-CN.json +0 -1
- package/assets/esri/widgets/Track/t9n/messages.zh-HK.json +0 -1
- package/assets/esri/widgets/Track/t9n/messages.zh-TW.json +0 -1
- package/views/2d/layers/features/FeatureSpatialIndex.js +0 -2
- package/views/2d/layers/features/support/FeatureSetReaderIndirect.js +0 -2
- package/views/3d/webgl-engine/effects/snowcover/SnowCover.glsl.js +0 -12
- package/widgets/DirectionalPad/DirectionalPadViewModel.d.ts +0 -85
- package/widgets/DirectionalPad/DirectionalPadViewModel.js +0 -2
- package/widgets/DirectionalPad/VisibleElements.d.ts +0 -40
- package/widgets/DirectionalPad/VisibleElements.js +0 -2
- package/widgets/DirectionalPad/constants.js +0 -2
- package/widgets/DirectionalPad/css.js +0 -2
- package/widgets/DirectionalPad/types.d.ts +0 -27
- package/widgets/DirectionalPad/utils.js +0 -2
- package/widgets/DirectionalPad.d.ts +0 -156
- package/widgets/DirectionalPad.js +0 -2
- package/widgets/Track/TrackViewModel.d.ts +0 -131
- package/widgets/Track/TrackViewModel.js +0 -2
- package/widgets/Track/types.d.ts +0 -6
- package/widgets/Track.d.ts +0 -278
- package/widgets/Track.js +0 -2
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/6.0/LICENSE.txt */
|
|
2
|
-
import has from"../../../../core/has.js";import{disposeMaybe as e}from"../../../../core/maybe.js";import{ScreenSpaceGeometry as t}from"../effects/ScreenSpaceGeometry.js";import{createEmptyTexture as n}from"./glUtil3D.js";import{IndexBufferCache as r}from"../materials/renderers/IndexBufferCache.js";import{TextureBufferCache as i}from"../materials/renderers/TextureBufferCache.js";import{VaoCache as a}from"../materials/renderers/VaoCache.js";import{VboCache as o}from"../materials/renderers/VboCache.js";import{RenderingContext as s}from"../../../webgl/RenderingContext.js";class c extends s{constructor(e,r){super(e,r),this.emptyTexture=n(this),this._vaoCaches=new Map,this._vboCaches=new Map,this._indexBufferCache=null,this._textureBufferCaches=new Map,this.debugBoundTechnique=``,this._refCount=1,this._newCache=r.newCache,this._screen=new t(this)}configure(e){super.configure(e),this._newCache=e.newCache,this._isAssumedMetalDriver=null}destroy(){this._vaoCaches.forEach(e=>e.dispose()),this._vaoCaches.clear(),this._vboCaches.forEach(e=>e.dispose()),this._vboCaches.clear(),this._indexBufferCache=e(this._indexBufferCache),this._textureBufferCaches.forEach(e=>e.dispose()),this._textureBufferCaches.clear()
|
|
2
|
+
import has from"../../../../core/has.js";import{disposeMaybe as e}from"../../../../core/maybe.js";import{ScreenSpaceGeometry as t}from"../effects/ScreenSpaceGeometry.js";import{createEmptyTexture as n}from"./glUtil3D.js";import{IndexBufferCache as r}from"../materials/renderers/IndexBufferCache.js";import{TextureBufferCache as i}from"../materials/renderers/TextureBufferCache.js";import{VaoCache as a}from"../materials/renderers/VaoCache.js";import{VboCache as o}from"../materials/renderers/VboCache.js";import{RenderingContext as s}from"../../../webgl/RenderingContext.js";class c extends s{constructor(e,r){super(e,r),this.emptyTexture=n(this),this._vaoCaches=new Map,this._vboCaches=new Map,this._indexBufferCache=null,this._textureBufferCaches=new Map,this.debugBoundTechnique=``,this._refCount=1,this._newCache=r.newCache,this._screen=new t(this)}configure(e){super.configure(e),this._newCache=e.newCache,this._isAssumedMetalDriver=null}destroy(){this._vaoCaches.forEach(e=>e.dispose()),this._vaoCaches.clear(),this._vboCaches.forEach(e=>e.dispose()),this._vboCaches.clear(),this._indexBufferCache=e(this._indexBufferCache),this._textureBufferCaches.forEach(e=>e.dispose()),this._textureBufferCaches.clear(),--this._refCount>0||this.dispose()}ref(){++this._refCount}get refCount(){return this._refCount}dispose(){this.emptyTexture.dispose(),this._screen.destroy(),this._screen=null,super.dispose(),this._vaoCaches.forEach(e=>e.dispose()),this._vaoCaches.clear(),this._vboCaches.forEach(e=>e.dispose()),this._vboCaches.clear(),this._indexBufferCache?.dispose(),this._indexBufferCache=null,this._textureBufferCaches.forEach(e=>e.dispose()),this._textureBufferCaches.clear()}get newCache(){return this._newCache}get screen(){return this._screen}getVaoCache(e){let t=JSON.stringify(e),n=this._vaoCaches.get(t);if(n)return n;let r=new a(this,e);return this._vaoCaches.set(t,r),r}getVboCache(e){let t=JSON.stringify(e),n=this._vboCaches.get(t);if(n)return n;let r=new o(this,e);return this._vboCaches.set(t,r),r}get indexBufferCache(){return this._indexBufferCache??=new r(this),this._indexBufferCache}getTextureBufferCache(e){let t=JSON.stringify(e),n=this._textureBufferCaches.get(t);if(n)return n;let r=new i(this,e);return this._textureBufferCaches.set(t,r),r}bindTechnique(e,t,n,r){return this.debugBoundTechnique=e.declaredClass,this.useProgram(e.program),this.setPipelineState(e.getPipeline(t,n)),e.program.bind(t),e.program.bindPass(t,n),r&&e.program.bindDraw(t,n,r),e.program}get isAssumedMetalDriver(){if(this._isAssumedMetalDriver==null&&(this._isAssumedMetalDriver=!!has(`ios`)||!!has(`safari`),!this._isAssumedMetalDriver&&has(`mac`)&&has(`chrome`))){let e=this.capabilities.rendererInfo?.getUnmaskedRenderer().toLowerCase(),t=e?.includes(`angle`)&&e?.includes(`metal`);this._isAssumedMetalDriver=t??!0}return this._isAssumedMetalDriver}get test(){}}export{c as RenderingContext};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/6.0/LICENSE.txt */
|
|
2
|
-
import{__decorate as e}from"tslib";import t from"../../../../core/Accessor.js";import{EventEmitter as n}from"../../../../core/Evented.js";import r from"../../../../core/Logger.js";import{isPromiseLike as i,isAbortError as a}from"../../../../core/promiseUtils.js";import{property as o,subclass as s}from"../../../../core/accessorSupport/decorators.js";import{isUpdatableTexture as c}from"./IManagedTexture.js";import{TextureUpdater as l}from"./TextureUpdater.js";import{TaskPriority as u}from"../../../support/Scheduler.js";let d=class extends t{constructor(e){super({}),this._stage=e,this._textures=new Map,this._loadingCount=0,this.events=new n,this.updater=new l,this._frameTask=e.view.resourceController.scheduler.registerTask(u.TEXTURE_UNLOAD)}normalizeCtorArgs(){return{}}destroy(){this._frameTask.remove(),this.updater.destroy(),this._textures.forEach(e=>e.unload())}get updating(){return this._loadingCount>0||this._frameTask.updating}acquire(e){let t=this._textures.get(e);return t?(t.ref(),t.loadingPromise??t):this._createNewRef(e)}update(){this.updater.run()&&this.events.emit(`changed`,0)}_createNewRef(e){let t=this._stage.getTexture(e);if(t==null)return null;let n=t.events.on(`unloaded`,()=>{n.remove(),this._onTextureUnloaded(t)}),o=new f(t,()=>{this._frameTask.schedule(()=>{o.isUnreferenced&&t.unload()})});return this._textures.set(e,o),o.ref(),t.loaded?(this._updateGLTexture(o,t.texture),c(t)&&this.updater.add(t),o):(this._loadingCount++,o.loadingPromise=this._stage.schedule(()=>{let e=t.load(this._stage.renderView.renderingContext),n=e=>(this._loadingCount--,o.loadingPromise=null,this._updateGLTexture(o,e),c(t)&&this.updater.add(t),o);return i(e)?e.then(n,e=>(t.unload(),this._loadingCount--,o.loadingPromise=null,a(e)||r.getLogger(this).error(e),null)):n(e)}),o.loadingPromise)}_updateGLTexture(e,t){e.texture=t,this.events.emit(`changed`,1)}_onTextureUnloaded(e){this._textures.delete(e.id),this.updater.remove(e)}};e([o()],d.prototype,`_loadingCount`,void 0),e([o()],d.prototype,`_frameTask`,void 0),e([o()],d.prototype,`updating`,null),d=e([s(`esri.views.3d.webgl-engine.lib.TextureRepository`)],d);class f{constructor(e,t){this._texture=e,this._release=t,this._refCount=0}get id(){return this._texture.id}get isUnreferenced(){return this._refCount===0}ref(){++this._refCount}release(){--this._refCount
|
|
2
|
+
import{__decorate as e}from"tslib";import t from"../../../../core/Accessor.js";import{EventEmitter as n}from"../../../../core/Evented.js";import r from"../../../../core/Logger.js";import{isPromiseLike as i,isAbortError as a}from"../../../../core/promiseUtils.js";import{property as o,subclass as s}from"../../../../core/accessorSupport/decorators.js";import{isUpdatableTexture as c}from"./IManagedTexture.js";import{TextureUpdater as l}from"./TextureUpdater.js";import{TaskPriority as u}from"../../../support/Scheduler.js";let d=class extends t{constructor(e){super({}),this._stage=e,this._textures=new Map,this._loadingCount=0,this.events=new n,this.updater=new l,this._frameTask=e.view.resourceController.scheduler.registerTask(u.TEXTURE_UNLOAD)}normalizeCtorArgs(){return{}}destroy(){this._frameTask.remove(),this.updater.destroy(),this._textures.forEach(e=>e.unload())}get updating(){return this._loadingCount>0||this._frameTask.updating}acquire(e){let t=this._textures.get(e);return t?(t.ref(),t.loadingPromise??t):this._createNewRef(e)}update(){this.updater.run()&&this.events.emit(`changed`,0)}_createNewRef(e){let t=this._stage.getTexture(e);if(t==null)return null;let n=t.events.on(`unloaded`,()=>{n.remove(),this._onTextureUnloaded(t)}),o=new f(t,()=>{this._frameTask.schedule(()=>{o.isUnreferenced&&t.unload()})});return this._textures.set(e,o),o.ref(),t.loaded?(this._updateGLTexture(o,t.texture),c(t)&&this.updater.add(t),o):(this._loadingCount++,o.loadingPromise=this._stage.schedule(()=>{let e=t.load(this._stage.renderView.renderingContext),n=e=>(this._loadingCount--,o.loadingPromise=null,this._updateGLTexture(o,e),c(t)&&this.updater.add(t),o);return i(e)?e.then(n,e=>(t.unload(),this._loadingCount--,o.loadingPromise=null,a(e)||r.getLogger(this).error(e),null)):n(e)}),o.loadingPromise)}_updateGLTexture(e,t){e.texture=t,this.events.emit(`changed`,1)}_onTextureUnloaded(e){this._textures.delete(e.id),this.updater.remove(e)}};e([o()],d.prototype,`_loadingCount`,void 0),e([o()],d.prototype,`_frameTask`,void 0),e([o()],d.prototype,`updating`,null),d=e([s(`esri.views.3d.webgl-engine.lib.TextureRepository`)],d);class f{constructor(e,t){this._texture=e,this._release=t,this._refCount=0}get id(){return this._texture.id}get isUnreferenced(){return this._refCount===0}ref(){++this._refCount}release(){--this._refCount,this._refCount>0||(this._refCount===0?this._release():(r.getLogger(`esri.views.3d.webgl-engine.lib.TextureRepository.RefCountedTextureImpl`).error(`Cannot dereference texture that has no references!`),this._refCount=0))}unload(){this._texture.unload()}}export{d as TextureRepository};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/6.0/LICENSE.txt */
|
|
2
|
-
import e from"../../../../core/PooledArray.js";import{fromTranslation as t,multiply as n}from"../../../../core/libs/gl-matrix-2/math/mat4.js";import{create as r}from"../../../../core/libs/gl-matrix-2/factories/mat4f64.js";import{transformMat4Z as i,transformMat4 as a}from"../../../../core/libs/gl-matrix-2/math/vec3.js";import{lerp as o}from"../../../../core/libs/gl-matrix-2/math/vec4.js";import{create as s}from"../../../../core/libs/gl-matrix-2/factories/vec4f64.js";import{intersectsSphere as c}from"../../../../geometry/support/frustumPlanes.js";import{Sphere as l}from"../../../../geometry/support/sphere.js";import{maxScale as u}from"../../support/mathUtils.js";import{DepthRange as d}from"./DepthRange.js";import{assert as f}from"./Util.js";function p(e,t,n,r){let i=0;if(!t.some(e=>e.material?(i+=e.numGeometries,i>=1e4):!1))return j.compute(e,t,r);let a=new d;return n.forEach(t=>a.union(m(e,t))),a}function m(e,t){if(!t.visible)return;let n=new d,r=t.getSpatialQueryAccelerator();return r?h(n,e,r):g(n,e,t.objects),n}function h(e,t,n){let{eye:r,viewForward:i,frustum:a}=t,o=e=>e.visible,s=n.objectCount;if(s<500)k.set(t.near,Math.min(e.near,t.far)),n.forEachInDepthRange(r,i,1,k,(n,r)=>{_(e,t,n),k.far=e.near,r.setRange(k)},a,o),k.set(Math.max(e.far,t.near),t.far),n.forEachInDepthRange(r,i,-1,k,(n,r)=>{_(e,t,n),k.near=e.far,r.setRange(k)},a,o);else{let r=Math.max(Math.min(s,500),Math.ceil(s*.1)),c=n.findClosest(i,1,a,o,r),l=n.findClosest(i,-1,a,o,r);c&&l&&(y(e,t,c.boundingVolumeWorldSpace.sphere),y(e,t,l.boundingVolumeWorldSpace.sphere))}}function g(e,t,n){A.clear(),n.forEach(e=>{e.visible&&e.geometries.length!==0&&A.add(e,t)})
|
|
2
|
+
import e from"../../../../core/PooledArray.js";import{fromTranslation as t,multiply as n}from"../../../../core/libs/gl-matrix-2/math/mat4.js";import{create as r}from"../../../../core/libs/gl-matrix-2/factories/mat4f64.js";import{transformMat4Z as i,transformMat4 as a}from"../../../../core/libs/gl-matrix-2/math/vec3.js";import{lerp as o}from"../../../../core/libs/gl-matrix-2/math/vec4.js";import{create as s}from"../../../../core/libs/gl-matrix-2/factories/vec4f64.js";import{intersectsSphere as c}from"../../../../geometry/support/frustumPlanes.js";import{Sphere as l}from"../../../../geometry/support/sphere.js";import{maxScale as u}from"../../support/mathUtils.js";import{DepthRange as d}from"./DepthRange.js";import{assert as f}from"./Util.js";function p(e,t,n,r){let i=0;if(!t.some(e=>e.material?(i+=e.numGeometries,i>=1e4):!1))return j.compute(e,t,r);let a=new d;return n.forEach(t=>a.union(m(e,t))),a}function m(e,t){if(!t.visible)return;let n=new d,r=t.getSpatialQueryAccelerator();return r?h(n,e,r):g(n,e,t.objects),n}function h(e,t,n){let{eye:r,viewForward:i,frustum:a}=t,o=e=>e.visible,s=n.objectCount;if(s<500)k.set(t.near,Math.min(e.near,t.far)),n.forEachInDepthRange(r,i,1,k,(n,r)=>{_(e,t,n),k.far=e.near,r.setRange(k)},a,o),k.set(Math.max(e.far,t.near),t.far),n.forEachInDepthRange(r,i,-1,k,(n,r)=>{_(e,t,n),k.near=e.far,r.setRange(k)},a,o);else{let r=Math.max(Math.min(s,500),Math.ceil(s*.1)),c=n.findClosest(i,1,a,o,r),l=n.findClosest(i,-1,a,o,r);c&&l&&(y(e,t,c.boundingVolumeWorldSpace.sphere),y(e,t,l.boundingVolumeWorldSpace.sphere))}}function g(e,t,n){A.clear(),n.forEach(e=>{e.visible&&e.geometries.length!==0&&A.add(e,t)}),A.empty||(A.sort(),k.set(t.near,Math.min(e.near,t.far)),A.forEachInDepthRange(k,1,(n,r)=>{r<e.near&&_(e,t,n)}),k.set(Math.max(e.far,t.near),t.far),A.forEachInDepthRange(k,-1,(t,n,r)=>{e.far=Math.max(e.far,r)}))}function _(e,r,i){if(!i.visible||!c(r.frustum,i.boundingVolumeWorldSpace.sphere))return;let a=i.transformation,o=O;i.geometries.forEach(i=>{i.type===0?n(o,a,i.transformation):t(o,i.localOrigin.vec3);let s=u(o);v(e,r,i.boundingInfo,o,s)})}function v(e,t,n,r,i){if(n==null)return;a(D.center,n.sphere.center,r);let{eye:o,viewForward:s}=t,l=s[0]*(D.center[0]-o[0])+s[1]*(D.center[1]-o[1])+s[2]*(D.center[2]-o[2]);if(D.radius=n.sphere.radius*i,!(l-D.radius>e.near&&l+D.radius<e.far)&&c(t.frustum,D)){if(n.sphere.radius>100&&n.children)for(let a of n.children)v(e,t,a,r,i);else M.unionDepthRangeWithAABB(e,t.viewProjectionMatrix,r,n.box)}}function y(e,t,n){let r=t.eye,i=t.viewForward,a=(n.center[0]-r[0])*i[0]+(n.center[1]-r[1])*i[1]+(n.center[2]-r[2])*i[2];e.near=Math.min(e.near,a-n.radius),e.far=Math.max(e.far,a+n.radius)}class b{constructor(){this._items=new e({allocator:e=>e||{object:null,distance:0,near:0,far:0},deallocator:e=>(e.object=null,e.distance=0,e.near=0,e.far=0,e)})}get length(){return this._items.length}get empty(){return this._items.length===0}clear(){this._items.clear()}add(e,t){let n=t.eye,r=t.viewForward,i=e.boundingVolumeWorldSpace.sphere,a=(i.center[0]-n[0])*r[0]+(i.center[1]-n[1])*r[1]+(i.center[2]-n[2])*r[2];if(!Number.isFinite(a))return;let o=this._items.pushNew();o.object=e,o.distance=a,o.near=a-i.radius,o.far=a+i.radius}sort(){this._items.sort((e,t)=>e.distance-t.distance)}forEachInDepthRange(e,t,n){if(t===1)for(let t=0;t<this._items.length;++t){let r=this._items.data[t];r.far<e.near||r.near>e.far||n(r.object,r.near,r.far)}else for(let t=this._items.length-1;t>=0;--t){let r=this._items.data[t];r.far<e.near||r.near>e.far||n(r.object,r.near,r.far)}}}class x{constructor(){this._geometries=[],this._near=[],this._far=[],this._nearCandidates=[],this._farCandidates=[],this._looseRange=new d(0,0)}compute(e,n,r){this._reset();let{viewMatrix:a}=e;n.forEach(e=>{e.forEachGeometry(e=>{if(!e.visible||r===0&&!e.castShadow)return;let t=e.boundingSphere,n=i(t.center,a),o=n-t.radius,s=n+t.radius;this._geometries.push(e),this._near.push(-s),this._far.push(-o)})});let o=new d;if(this._geometries.length===0)return o;for(let e=0;e<this._geometries.length;++e)this._near[e]>o.far&&(o.far=this._near[e]),this._near[e]>2&&this._far[e]<o.near&&(o.near=this._far[e]);let s=this._looseRange;s.near=Math.max(o.near*.5,2),s.far=o.far*2;let c=0,l=0;for(let e=0;e<this._geometries.length;++e)this._near[e]<o.near&&(this._near[e]>=s.near?o.near=this._near[e]:this._nearCandidates[c++]=e),this._far[e]>o.far&&(this._far[e]<=s.far?o.far=this._far[e]:this._farCandidates[l++]=e);if(this._nearCandidates.length===0&&this._farCandidates.length===0)return o;this._nearCandidates.sort((e,t)=>this._near[e]<this._near[t]?-1:+(this._near[e]>this._near[t])),this._farCandidates.sort((e,t)=>this._far[e]<this._far[t]?1:this._far[e]>this._far[t]?-1:0);for(let n=0;n<this._nearCandidates.length;++n){let r=this._nearCandidates[n];if(this._near[r]<o.near){let n=this._geometries[r],{boundingInfo:i}=n,a=n.type===0?n.shaderTransformation:t(O,n.localOrigin.vec3);this._includeNearBoundingInfoRec(e,i,a,o)}}for(let n=0;n<this._farCandidates.length;++n){let r=this._farCandidates[n];if(this._far[r]>o.far){let n=this._geometries[r],{boundingInfo:i}=n,a=n.type===0?n.shaderTransformation:t(O,n.localOrigin.vec3);this._includeFarBoundingInfoRec(e,i,a,o)}}return this._reset(),o}_reset(){this._geometries.length=0,this._near.length=0,this._far.length=0,this._nearCandidates.length=0,this._farCandidates.length=0}_isOutsideSidePlanes(e,t){let{center:n,radius:r}=e;return t[0][0]*n[0]+t[0][1]*n[1]+t[0][2]*n[2]+t[0][3]>r||t[1][0]*n[0]+t[1][1]*n[1]+t[1][2]*n[2]+t[1][3]>r||t[2][0]*n[0]+t[2][1]*n[1]+t[2][2]*n[2]+t[2][3]>r||t[3][0]*n[0]+t[3][1]*n[1]+t[3][2]*n[2]+t[3][3]>r}_includeNearBoundingInfoRec(e,t,n,r){if(t==null)return;a(D.center,t.sphere.center,n),D.radius=t.sphere.radius*u(n);let{frustum:o}=e;if(this._isOutsideSidePlanes(D,o))return;let s=D.radius,{viewMatrix:c}=e,l=i(D.center,c),d=l-s,f=l+s;if(!(-d<2)&&!(-f>=r.near)){if(-f>this._looseRange.near)r.near=-f;else{if(s>100){let i=t.children;if(i!==void 0){for(let t of i)this._includeNearBoundingInfoRec(e,t,n,r);return}}M.unionDepthRangeWithAABB(r,e.viewProjectionMatrix,n,t.box)}}}_includeFarBoundingInfoRec(e,t,n,r){if(t==null)return;a(D.center,t.sphere.center,n),D.radius=t.sphere.radius*u(n);let{frustum:o}=e;if(this._isOutsideSidePlanes(D,o))return;let{viewMatrix:s,viewProjectionMatrix:c}=e,l=i(D.center,s)-D.radius;if(!(-l<=r.far)){if(-l<this._looseRange.far)r.far=-l;else{if(D.radius>100){let i=t.children;if(i!==void 0){for(let t of i)this._includeFarBoundingInfoRec(e,t,n,r);return}}M.unionDepthRangeWithAABB(r,c,n,t.box)}}}}class S{constructor(){this._modelViewProj=r(),this._clipPosition=[s(),s(),s(),s(),s(),s(),s(),s()]}unionDepthRangeWithAABB(e,t,r,i){let a=this._modelViewProj;n(a,t,r);let o=!1;for(let e=0;e<8;++e){let t=this._clipPosition[e],n=e===0||e===3||e===4||e===7?i[0]:i[3],r=e===0||e===1||e===4||e===5?i[1]:i[4],o=e<4?i[2]:i[5];t[0]=a[0]*n+a[4]*r+a[8]*o+a[12],t[1]=a[1]*n+a[5]*r+a[9]*o+a[13],t[2]=a[2]*n+a[6]*r+a[10]*o+a[14],t[3]=a[3]*n+a[7]*r+a[11]*o+a[15]}for(let t=0;t<12;++t){let n=this._clipPosition[E[t][0]],r=this._clipPosition[E[t][1]],i=this._clipPosition[E[t][2]],a=C(n,r,i),s=!0;for(let e=0;e<a.length;++e)if(a[e][3]>=2){s=!1;break}if(!s){o=!0;for(let t=0;t<a.length;++t){let n=a[t][3];Number.isFinite(n)&&(e.near=Math.min(n,e.near),e.far=Math.max(n,e.far))}}}return o}}function C(e,t,n){let r=[e,t,n];for(let e=0;e<4;++e){let t=r;r=[];for(let n=0;n<t.length;++n){let i=t[n],a=t[(n+1)%t.length];w(a,e)?(w(i,e)||r.push(T(i,a,e)),r.push(a)):w(i,e)&&r.push(T(i,a,e))}}return r}function w(e,t){if(t===0)return e[0]>=-e[3];if(t===1)return e[1]>=-e[3];if(t===2)return e[0]<=e[3];if(t===3)return e[1]<=e[3];f(!1)}function T(e,t,n){let r=0;return n===0?r=(-e[3]-e[0])/(t[0]-e[0]+t[3]-e[3]):n===1?r=(-e[3]-e[1])/(t[1]-e[1]+t[3]-e[3]):n===2?r=(e[3]-e[0])/(t[0]-e[0]-t[3]+e[3]):n===3&&(r=(e[3]-e[1])/(t[1]-e[1]-t[3]+e[3])),o(s(),e,t,r)}const E=[[0,1,3],[2,3,1],[1,5,2],[6,2,5],[5,4,6],[7,6,4],[4,0,7],[3,7,0],[3,2,7],[6,7,2],[4,5,0],[1,0,5]],D=new l,O=r(),k=new d,A=new b,j=new x,M=new S;export{p as depthRangeFromScene};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/6.0/LICENSE.txt */
|
|
2
|
-
import e from"../../../../core/PooledArray.js";import{createScreenPointArray as t}from"../../../../core/screenUtils.js";import{distance as n,copy as r,set as i,transformMat4 as a,squaredDistance as o}from"../../../../core/libs/gl-matrix-2/math/vec3.js";import{create as s}from"../../../../core/libs/gl-matrix-2/factories/vec3f64.js";import{copy as c,create as l}from"../../../../geometry/support/aaBoundingBox.js";import{intersectsTransformedAabb as u}from"../../../../geometry/support/frustumPlanes.js";import{clipPolygon as d}from"../../../../geometry/support/plane.js";import{normalFromValues as f,closestPointFromValues as p}from"../../../../geometry/support/triangle.js";import{boundingInfoSubdivisionThreshold as m}from"./intersectionConstants.js";import{screenPolygonIntersectsTriangle as h}from"./screenPolygonOverlapUtils.js";class g{constructor(e){this.primitiveIndex=e}}class _{constructor(e){this.type=e,this.distance=1/0,this.renderDistance=1/0,this.primitiveIndex=0,this.hasNormal=!1,this.point=s(),this.normal=s()}reset(){this.distance=1/0,this.renderDistance=1/0,this.hasNormal=!1}update(e,t,n,i,a=e){this.distance=e,this.renderDistance=a,this.primitiveIndex=t,r(this.point,n),this.hasNormal=i!=null,i!=null&&r(this.normal,i)}updateIfCloserFromValues(e,t,n,r,i=e){i<this.renderDistance&&this.update(e,t,n,r,i)}updateIfCloser(e){let{distance:t,renderDistance:n,primitiveIndex:r,point:i,normal:a}=e;this.updateIfCloserFromValues(t,r,i,e.hasNormal?a:null,n)}get valid(){return Number.isFinite(this.distance)}}function v(e,t,n,r,i){if(!e.visible)return null;let a=new _(4),o;o=e.boundingInfo?b(e.readPrimitivePosition,e.boundingInfo,t,n,r,i):y(t,n,r,0,e.faceCount,e.readPrimitivePosition,i,null,0);for(let e of o)a.updateIfCloser(e);return a.valid?a:null}function*y(e,t,r,i,a,o,s,c=null,l=0){if(e.camera==null)return;let{camera:u,screenPolygonPrimitiveProcessor:
|
|
2
|
+
import e from"../../../../core/PooledArray.js";import{createScreenPointArray as t}from"../../../../core/screenUtils.js";import{distance as n,copy as r,set as i,transformMat4 as a,squaredDistance as o}from"../../../../core/libs/gl-matrix-2/math/vec3.js";import{create as s}from"../../../../core/libs/gl-matrix-2/factories/vec3f64.js";import{copy as c,create as l}from"../../../../geometry/support/aaBoundingBox.js";import{intersectsTransformedAabb as u}from"../../../../geometry/support/frustumPlanes.js";import{clipPolygon as d}from"../../../../geometry/support/plane.js";import{normalFromValues as f,closestPointFromValues as p}from"../../../../geometry/support/triangle.js";import{boundingInfoSubdivisionThreshold as m}from"./intersectionConstants.js";import{screenPolygonIntersectsTriangle as h}from"./screenPolygonOverlapUtils.js";class g{constructor(e){this.primitiveIndex=e}}class _{constructor(e){this.type=e,this.distance=1/0,this.renderDistance=1/0,this.primitiveIndex=0,this.hasNormal=!1,this.point=s(),this.normal=s()}reset(){this.distance=1/0,this.renderDistance=1/0,this.hasNormal=!1}update(e,t,n,i,a=e){this.distance=e,this.renderDistance=a,this.primitiveIndex=t,r(this.point,n),this.hasNormal=i!=null,i!=null&&r(this.normal,i)}updateIfCloserFromValues(e,t,n,r,i=e){i<this.renderDistance&&this.update(e,t,n,r,i)}updateIfCloser(e){let{distance:t,renderDistance:n,primitiveIndex:r,point:i,normal:a}=e;this.updateIfCloserFromValues(t,r,i,e.hasNormal?a:null,n)}get valid(){return Number.isFinite(this.distance)}}function v(e,t,n,r,i){if(!e.visible)return null;let a=new _(4),o;o=e.boundingInfo?b(e.readPrimitivePosition,e.boundingInfo,t,n,r,i):y(t,n,r,0,e.faceCount,e.readPrimitivePosition,i,null,0);for(let e of o)a.updateIfCloser(e);return a.valid?a:null}function*y(e,t,r,i,a,o,s,c=null,l=0){if(e.camera==null)return;let{camera:u,screenPolygonPrimitiveProcessor:d}=e;for(let e=i;e<a;++e){let i=(c?.[e]??e)+l,a=c==null?i:e,p=i*3;x(T[0],o,p+0,s,a,t),x(T[1],o,p+1,s,a,t),x(T[2],o,p+2,s,a,t);let m=j,h;N.reset();let g=E;for(let e of d.processTriangle(T))S(r,e,u,g)&&(C(u.eye,g,A),h??=f(j,T[0],T[1],T[2]),N.updateIfCloserFromValues(n(u.eye,A),i,A,h?m:null));N.valid&&(yield N)}}function*b(e,t,n,r,i,a){let o;if(a==null?o=u(i.broadPhaseFrustum,t.box,r):(c(w,t.box),a.applyToAabb(w),o=u(i.broadPhaseFrustum,w,r)),!o)return;let{primitiveIndices:s}=t,l=s.length;if(l>m){let o=t.children;if(o!==void 0){for(let t of o)yield*b(e,t,n,r,i,a);return}}yield*y(n,r,i,0,l,e,a,s,0)}function x(e,t,n,r,o,s){let[c,l,u]=t(e,n);r==null?i(e,c,l,u):r.applyToVertex(e,c,l,u,o),s&&a(e,e,s)}function S(e,t,n,r){if(r.length=0,d(n.frustum[4],t,()=>r.pushNew()),r.length<3)return!1;let i=D,a=O,o=k;n.projectToScreen(r.data[0],i),n.projectToScreen(r.data[1],a);for(let t=2;t<r.length;t++){if(n.projectToScreen(r.data[t],o),h(e,i,a,o))return!0;let s=a;a=o,o=s}return!1}function C(e,t,n){let i=1/0,a=t.at(0);for(let s=1;s<t.length-1;s++){p(M,e,a,t.at(s),t.at(s+1));let c=o(e,M);c<i&&(i=c,r(n,M))}}const w=l(),T=[s(),s(),s()],E=new e({allocator:e=>e??s()}),D=t(),O=t(),k=t(),A=s(),j=s(),M=s(),N=new _(4);export{g as DrapedHit,_ as Hit,y as forEachTriangleRangeScreenPolygonHit,S as intersectConvexPolygonWithScreenPolygon,v as intersectTriangleGeometryWithScreenPolygon};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/6.0/LICENSE.txt */
|
|
2
|
-
import{set as e,scale as t,add as n}from"../../../../core/libs/gl-matrix-2/math/vec3.js";import{fromValues as r,create as i}from"../../../../core/libs/gl-matrix-2/factories/vec3f64.js";import{ZEROS as a,fromValues as o}from"../../../../core/libs/gl-matrix-2/factories/vec4f64.js";import{center as s,scale as c}from"../../../../geometry/support/aaBoundingBox.js";import{BufferViewVec3f as l}from"../../../../geometry/support/buffer/BufferView.js";import{isColorOrOLID as u,isDepth as d,is2DGeometryOutput as f}from"../core/shaderLibrary/ShaderOutput.js";import p from"../lib/GLMaterial.js";import{intersectTriangleGeometry as m}from"../lib/RayIntersections.js";import{
|
|
2
|
+
import{set as e,scale as t,add as n}from"../../../../core/libs/gl-matrix-2/math/vec3.js";import{fromValues as r,create as i}from"../../../../core/libs/gl-matrix-2/factories/vec3f64.js";import{ZEROS as a,fromValues as o}from"../../../../core/libs/gl-matrix-2/factories/vec4f64.js";import{center as s,scale as c}from"../../../../geometry/support/aaBoundingBox.js";import{BufferViewVec3f as l}from"../../../../geometry/support/buffer/BufferView.js";import{isColorOrOLID as u,isDepth as d,is2DGeometryOutput as f}from"../core/shaderLibrary/ShaderOutput.js";import p from"../lib/GLMaterial.js";import{intersectTriangleGeometry as m}from"../lib/RayIntersections.js";import{intersectTriangleGeometryWithScreenPolygon as h}from"../lib/screenPolygonTriangleIntersections.js";import{assert as g}from"../lib/Util.js";import{applyPolygonOffsetToHit as _,intersectWithPolygonOffset as v}from"./intersectWithPolygonOffset.js";import{TriangleMaterial as y}from"./TriangleMaterial.js";import{VisualVariablePassParameters as b}from"./VisualVariablePassParameters.js";import{writeAttributes as x,writePosition as S}from"./internal/bufferWriterUtils.js";import{getLayout as C,ColorMaterialTechnique as w}from"../shaders/ColorMaterialTechnique.js";import{ColorMaterialTechniqueConfiguration as T}from"../shaders/ColorMaterialTechniqueConfiguration.js";import{alphaCutoff as E}from"../../../../webscene/support/AlphaCutoff.js";class D extends y{constructor(e){super(e,k),this._configuration=new T,this.supportsEdges=!0,this._pp0=r(0,0,1),this._pp1=r(0,0,0),this.produces=new Map([[2,e=>this._isOpaqueMaterialPass(e)],[3,e=>!this.parameters.shadingEnabled&&this._isOpaqueNoSSAODepthPass(e)],[4,e=>u(e)&&this.transparent&&this.parameters.writeDepth],[5,e=>!this.parameters.shadingEnabled&&d(e)&&this.transparent&&this.parameters.writeDepth],[8,e=>u(e)&&this.transparent&&!this.parameters.writeDepth],[18,e=>f(e)]])}updateConfiguration(e){super.updateConfiguration(e),this._configuration.cullFace=this.parameters.cullFace,this._configuration.hasVertexColors=this.parameters.hasVertexColors&&!this.parameters.vvColor,this._configuration.hasSlicePlane=this.parameters.hasSlicePlane,this._configuration.writeDepth=this.parameters.writeDepth,this._configuration.hasOccludees=e.hasOccludees,this._configuration.hasVVColor=!!this.parameters.vvColor,this._configuration.draped=this.parameters.draped,this._configuration.shadingEnabled=this.parameters.shadingEnabled,this._configuration.screenSizeEnabled=this.parameters.screenSizeEnabled,this._configuration.emissionSource=+!!this.emissions}get visible(){return this.parameters.color[3]>=E}get transparent(){return this.parameters.color[3]<1||this.parameters.forceTransparentMode}get emissions(){return this.parameters.emissiveStrength>0?this.transparent?2:1:0}intersectRay(e,t,n,r,i,a){if(!this.parameters.screenSizeEnabled)return super.intersectRay(e,t,n,r,i,a);this._intersectScreenSizeRay(e,n,r,i,a)}intersectRayDraped(e,t,n,r){if(!this.parameters.screenSizeEnabled)return super.intersectRayDraped(e,t,n,r);this._pp0[0]=this._pp1[0]=n[0],this._pp0[1]=this._pp1[1]=n[1],this._intersectScreenSizeRay(e,t,this._pp0,this._pp1,r)}intersectScreenPolygon(e,t,n,r){return this.parameters.screenSizeEnabled?_(h(e,n,t,r,this._createScreenSizeVertexDisplacement(e,n)),this._configuration,n.camera.eye):super.intersectScreenPolygon(e,t,n,r)}_intersectScreenSizeRay(e,t,n,r,i){m(e,t,n,r,this._createScreenSizeVertexDisplacement(e,t),v(i,this._configuration,n,r))}_createScreenSizeVertexDisplacement(r,i){let a=r.attributes.get(`offset`).data;return{applyToVertex:(r,o,s,c,l)=>{let u=e(j,a[l*3],a[l*3+1],a[l*3+2]);e(r,o,s,c);let d=this.parameters.screenSizeScale*(i.camera?.computeScreenPixelSizeAt(u)??1);return t(u,u,d),n(r,r,u),r},applyToAabb:e=>{let t=s(e,j);return c(e,this.parameters.screenSizeScale*(i.camera?.computeScreenPixelSizeAt(t)??1))}}}_isOpaqueMaterialPass(e){return e===10||u(e)&&!this.transparent}_isOpaqueNoSSAODepthPass(e){return d(e)&&this.parameters.writeDepth&&!this.transparent}createGLMaterial(e){return new O(e)}createBufferWriter(){return new A(C(this.parameters))}}class O extends p{beginSlot(e){return this.getTechnique(w,e)}}class k extends b{constructor(){super(...arguments),this.color=a,this.shadingTint=o(0,0,0,.25),this.forceTransparentMode=!1,this.writeDepth=!0,this.hasVertexColors=!1,this.polygonOffset=0,this.hasSlicePlane=!1,this.cullFace=0,this.draped=!1,this.shadingEnabled=!1,this.screenSizeEnabled=!1,this.screenSizeScale=14,this.useIndexing=!1}}class A{constructor(e){this.layout=e}elementCount(e){return e.get(`position`).indices.length}write(e,t,n,r){if(r==null)return;x(n,this.layout,e,t,r);let i=r.buffer.getField(`offset`,l);if(i&&n.has(`offset`)){let e=n.get(`offset`);g(e.size===3),S(e,t,i,r.offset)}}}const j=i();export{D as ColorMaterial,k as Parameters};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/6.0/LICENSE.txt */
|
|
2
|
-
import{exactEquals as e,subtract as t,add as n,set as r,copy as i,normalize as a,length as o,scale as s,dot as c,transformMat3 as l}from"../../../../core/libs/gl-matrix-2/math/vec3.js";import{ZEROS as u,create as d,fromValues as f}from"../../../../core/libs/gl-matrix-2/factories/vec3f64.js";import{setMin as p,getMin as m,setMax as h,getMax as g}from"../../../../geometry/support/aaBoundingBox.js";import{is3DGeometryOrShadowLike as _,isColor as v}from"../core/shaderLibrary/ShaderOutput.js";import{GLTextureMaterial as y}from"../lib/GLTextureMaterial.js";import{Material as b}from"../lib/Material.js";import{intersectTriangleGeometry as x}from"../lib/RayIntersections.js";import{
|
|
2
|
+
import{exactEquals as e,subtract as t,add as n,set as r,copy as i,normalize as a,length as o,scale as s,dot as c,transformMat3 as l}from"../../../../core/libs/gl-matrix-2/math/vec3.js";import{ZEROS as u,create as d,fromValues as f}from"../../../../core/libs/gl-matrix-2/factories/vec3f64.js";import{setMin as p,getMin as m,setMax as h,getMax as g}from"../../../../geometry/support/aaBoundingBox.js";import{is3DGeometryOrShadowLike as _,isColor as v}from"../core/shaderLibrary/ShaderOutput.js";import{GLTextureMaterial as y}from"../lib/GLTextureMaterial.js";import{Material as b}from"../lib/Material.js";import{intersectTriangleGeometry as x}from"../lib/RayIntersections.js";import{intersectTriangleGeometryWithScreenPolygon as S}from"../lib/screenPolygonTriangleIntersections.js";import{getVerticalOffsetObject3D as C}from"../lib/verticalOffsetUtils.js";import{DefaultBufferWriter as w}from"./DefaultBufferWriter.js";import{intersectWithPolygonOffset as T,applyPolygonOffsetToHit as E}from"./intersectWithPolygonOffset.js";import{verticalOffsetAtDistance as D}from"./internal/MaterialUtil.js";import{getLayout as O,DefaultMaterialPassParameters as k,DefaultMaterialTechnique as A}from"../shaders/DefaultMaterialTechnique.js";import{DefaultMaterialTechniqueConfiguration as j}from"../shaders/DefaultMaterialTechniqueConfiguration.js";import{RealisticTreeTechnique as M}from"../shaders/RealisticTreeTechnique.js";import{hasShadowHighlights as N}from"../shaders/ReceiveShadowsConfiguration.js";import{alphaCutoff as P}from"../../../../webscene/support/AlphaCutoff.js";class F extends b{constructor(e,t){super(e,L),this.materialType=`default`,this.supportsEdges=!0,this.intersectRayDraped=void 0,this.intersectScreenPolygonDraped=void 0,this.produces=new Map([[2,e=>_(e)&&!this.transparent],[4,e=>_(e)&&this.transparent]]),this._layout=O(this.parameters),this._configuration=new j(t.spherical)}isVisibleForOutput(e){return e===5||e===7||e===6?this.parameters.castShadows:!0}get visible(){let{layerOpacity:e,colorMixMode:t,opacity:n,externalColor:r}=this.parameters,i=t===`replace`?1:n,a=t===`ignore`||isNaN(r[3])?1:r[3];return e*i*a>=P}get _hasEmissiveBase(){return!!this.parameters.emissiveTextureId||!e(this.parameters.emissiveBaseColor,u)}get emissions(){return this.parameters.emissiveStrength>0&&(this.parameters.emissiveSource===0&&this._hasEmissiveBase||this.parameters.emissiveSource===1)?this.transparent?2:1:0}updateConfiguration(e){super.updateConfiguration(e);let{parameters:t,_configuration:n}=this;n.hasNormalTexture=t.hasNormalTexture,n.hasColorTexture=t.hasColorTexture,n.hasMetallicRoughnessTexture=t.hasMetallicRoughnessTexture,n.hasOcclusionTexture=t.hasOcclusionTexture;let{treeRendering:r,doubleSided:i,doubleSidedType:a}=t;n.hasVertexTangents=!r&&t.hasVertexTangents,n.instanced=t.instanced,n.instancedDoublePrecision=t.instancedDoublePrecision,n.hasVVColor=!!t.vvColor,n.hasVVSize=!!t.vvSize,n.hasVerticalOffset=t.verticalOffset!=null,n.hasScreenSizePerspective=t.screenSizePerspective!=null,n.hasSlicePlane=t.hasSlicePlane,n.alphaDiscardMode=t.textureAlphaMode,n.normalType=r?0:t.normalType,n.transparent=this.transparent,n.enableOITOffset=e.enableOITOffset,n.customDepthTest=t.customDepthTest??0,n.hasOccludees=e.hasOccludees,n.cullFace=t.hasSlicePlane?0:t.cullFace,n.hasModelTransformation=!r&&t.modelTransformation!=null,n.hasVertexColors=t.hasVertexColors,n.hasSymbolColors=t.hasSymbolColors,n.doubleSidedMode=r?2:i&&a===`normal`?1:i&&a===`winding-order`?2:0,n.instancedFeatureAttribute=t.instancedFeatureAttribute,n.instancedColor=t.instancedColor,v(e.output)?(n.receiveShadows=t.receiveShadows,n.hasShadowHighlights=N(n,e),n.receiveAmbientOcclusion=t.receiveAmbientOcclusion&&e.ssao!=null,n.receiveGlobalIllumination=t.receiveAmbientOcclusion&&e.globalIlluminationEnabled):n.receiveShadows=n.hasShadowHighlights=n.receiveAmbientOcclusion=n.receiveGlobalIllumination=!1,n.textureAlphaPremultiplied=!!t.textureAlphaPremultiplied,n.pbrMode=t.usePBR?t.unlit?7:t.isSchematic?2:1:0,n.emissionSource=t.emissionSource,n.offsetBackfaces=!!(this.transparent&&t.offsetTransparentBackfaces),n.snowCover=e.snowCover>0,n.hasColorTextureTransform=!!t.colorTextureTransformMatrix,n.hasNormalTextureTransform=!!t.normalTextureTransformMatrix,n.hasEmissionTextureTransform=!!t.emissiveTextureTransformMatrix,n.hasOcclusionTextureTransform=!!t.occlusionTextureTransformMatrix,n.hasMetallicRoughnessTextureTransform=!!t.metallicRoughnessTextureTransformMatrix}intersectRay(e,n,r,i,a,o){let s=this._getMaterialVerticalOffset(n,r);s!=null&&(i=t(R,i,s),a=t(z,a,s)),o=T(o,this._configuration,i,a),x(e,r,i,a,C(r.verticalOffset),o)}intersectScreenPolygon(e,t,n,r){return E(S(e,n,t,r,this._createScreenPolygonVertexDisplacement(t,n)),this._configuration,n.camera.eye)}createGLMaterial(e){return new I(e)}createBufferWriter(){return new w(this._layout)}get transparent(){let{drivenOpacity:e,opacity:t,externalColor:n,layerOpacity:r,texture:i,textureId:a,textureAlphaMode:o,colorMixMode:s}=this.parameters,c=n[3];return e||t<1&&s!==`replace`||c<1&&s!==`ignore`||r<1||(i!=null||a!=null)&&o!==1&&o!==2&&s!==`replace`}_createScreenPolygonVertexDisplacement(e,t){let r=this._getMaterialVerticalOffset(e,t);return r==null?null:{applyToVertex:(e,t,n,i)=>(e[0]=t+r[0],e[1]=n+r[1],e[2]=i+r[2],e),applyToAabb:e=>(p(e,n(G,m(e,G),r)),h(e,n(G,g(e,G),r)),e)}}_getMaterialVerticalOffset(e,n){if(this.parameters.verticalOffset==null)return null;let u=n.camera;r(H,e[12],e[13],e[14]);let d=null;switch(n.viewingMode){case 1:d=a(V,H);break;case 2:d=i(V,B)}let f=t(U,H,u.eye),p=o(f),m=s(f,f,1/p),h=null;this.parameters.screenSizePerspective&&(h=c(d,m));let g=D(u,p,this.parameters.verticalOffset,h??0,this.parameters.screenSizePerspective,null);return s(d,d,g),l(W,d,n.transform.inverseRotation)}}class I extends y{constructor(e){super({...e,...e.material.parameters})}beginSlot(e){this._material.setParameters({receiveShadows:e.shadowMap.enabled});let t=this._material.parameters;this.updateTexture(t.textureId);let n=e.camera.viewInverseTransposeMatrix;return r(t.origin,n[3],n[7],n[11]),this._material.setParameters(this.textureBindParameters),this.getTechnique(t.treeRendering?M:A,e)}}class L extends k{constructor(){super(...arguments),this.treeRendering=!1,this.useIndexing=!1,this.hasVertexTangents=!1,this.unlit=!1}get hasNormalTexture(){return!this.treeRendering&&!!this.normalTextureId}get hasColorTexture(){return!!this.textureId}get hasMetallicRoughnessTexture(){return!this.treeRendering&&!!this.metallicRoughnessTextureId}get hasOcclusionTexture(){return!this.treeRendering&&!!this.occlusionTextureId}get emissionSource(){return this.emissiveTextureId!=null&&this.emissiveSource===0?3:this.emissiveSource===0?2:1}get hasTextures(){return this.hasColorTexture||this.hasNormalTexture||this.hasMetallicRoughnessTexture||this.emissionSource===3||this.hasOcclusionTexture}}const R=d(),z=d(),B=f(0,0,1),V=d(),H=d(),U=d(),W=d(),G=d();export{I as DefaultGLMaterial,F as DefaultMaterial,L as DefaultMaterialParameters};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/6.0/LICENSE.txt */
|
|
2
|
-
import"../core/shaderLibrary/Offset.glsl.js";import"../core/shaderLibrary/ShaderOutput.js";import"../core/shaderLibrary/Slice.glsl.js";import"../core/shaderLibrary/Transform.glsl.js";import"../core/shaderLibrary/attributes/PathVertexPosition.glsl.js";import"../core/shaderLibrary/output/OutputDepth.glsl.js";import"../core/shaderLibrary/output/OutputHighlight.glsl.js";import"../core/shaderLibrary/shading/EvaluateAmbientOcclusion.glsl.js";import"../core/shaderLibrary/shading/EvaluateSceneLighting.glsl.js";import"../core/shaderLibrary/shading/lightingUniforms.js";import"../core/shaderLibrary/shading/Normals.glsl.js";import"../core/shaderLibrary/shading/NormalUtils.glsl.js";import"../core/shaderLibrary/shading/PhysicallyBasedRenderingParameters.glsl.js";import"../core/shaderLibrary/shading/readShadow.glsl.js";import"../core/shaderLibrary/util/cameraUniforms.js";import"../core/shaderLibrary/util/ColorConversion.glsl.js";import"../core/shaderLibrary/util/View.glsl.js";import"../core/shaderModules/Float3PassUniform.js";import"../core/shaderModules/FloatPassUniform.js";import"../core/shaderModules/glsl.js";import"../effects/snowcover/
|
|
2
|
+
import"../core/shaderLibrary/Offset.glsl.js";import"../core/shaderLibrary/ShaderOutput.js";import"../core/shaderLibrary/Slice.glsl.js";import"../core/shaderLibrary/Transform.glsl.js";import"../core/shaderLibrary/attributes/PathVertexPosition.glsl.js";import"../core/shaderLibrary/output/OutputDepth.glsl.js";import"../core/shaderLibrary/output/OutputHighlight.glsl.js";import"../core/shaderLibrary/shading/EvaluateAmbientOcclusion.glsl.js";import"../core/shaderLibrary/shading/EvaluateSceneLighting.glsl.js";import"../core/shaderLibrary/shading/lightingUniforms.js";import"../core/shaderLibrary/shading/Normals.glsl.js";import"../core/shaderLibrary/shading/NormalUtils.glsl.js";import"../core/shaderLibrary/shading/PhysicallyBasedRenderingParameters.glsl.js";import"../core/shaderLibrary/shading/readShadow.glsl.js";import"../core/shaderLibrary/util/cameraUniforms.js";import"../core/shaderLibrary/util/ColorConversion.glsl.js";import"../core/shaderLibrary/util/View.glsl.js";import"../core/shaderModules/Float3PassUniform.js";import"../core/shaderModules/FloatPassUniform.js";import"../core/shaderModules/glsl.js";import"../effects/snowcover/applySnow.glsl.js";import"../shaders/OutputColorHighlightOLID.glsl.js";import"../../../webgl/ShaderBuilder.js";export{b as build}from"../../../../chunks/Path.glsl.js";
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/6.0/LICENSE.txt */
|
|
2
|
-
import{BufferViewUint32 as e,BufferViewVec3f as t,BufferViewVec2Snorm16 as n,BufferViewSnorm16 as r,BufferViewFloat16 as i,BufferViewFloat as a,BufferViewVec2f as o,BufferViewVec4Unorm8 as s,BufferViewUnorm8 as c}from"../../../../geometry/support/buffer/BufferView.js";import{maxPathFrameIndex as l}from"../../layers/graphics/Graphics3DPathSymbolLayerConstants.js";import{isShadowLike as u,is3DGeometry as d,isColor as f}from"../core/shaderLibrary/ShaderOutput.js";import{olidEnabled as p}from"../effects/geometry/olidUtils.js";import m from"../lib/GLMaterial.js";import{offsetPathVertexInfoFrameIndex as h}from"../lib/PathVertexInfo.js";import{intersectTriangleGeometry as g}from"../lib/RayIntersections.js";import{
|
|
2
|
+
import{BufferViewUint32 as e,BufferViewVec3f as t,BufferViewVec2Snorm16 as n,BufferViewSnorm16 as r,BufferViewFloat16 as i,BufferViewFloat as a,BufferViewVec2f as o,BufferViewVec4Unorm8 as s,BufferViewUnorm8 as c}from"../../../../geometry/support/buffer/BufferView.js";import{maxPathFrameIndex as l}from"../../layers/graphics/Graphics3DPathSymbolLayerConstants.js";import{isShadowLike as u,is3DGeometry as d,isColor as f}from"../core/shaderLibrary/ShaderOutput.js";import{olidEnabled as p}from"../effects/geometry/olidUtils.js";import m from"../lib/GLMaterial.js";import{offsetPathVertexInfoFrameIndex as h}from"../lib/PathVertexInfo.js";import{intersectTriangleGeometry as g}from"../lib/RayIntersections.js";import{intersectTriangleGeometryWithScreenPolygon as _}from"../lib/screenPolygonTriangleIntersections.js";import{assert as v}from"../lib/Util.js";import{applyPolygonOffsetToHit as y}from"./intersectWithPolygonOffset.js";import{getLayout as b,getTextureLayout as x}from"./PathLayouts.js";import{PathPassParameters as S,PathTechnique as C}from"./PathTechnique.js";import{PathTechniqueConfiguration as w}from"./PathTechniqueConfiguration.js";import{TriangleMaterial as T}from"./TriangleMaterial.js";import{writeAttributes as E,writePosition as D,writeBufferVec2 as O,writeBufferInt16 as k,writeBufferFloat16 as A,writeBufferFloat as j,writeColor as M,writeBufferUint8 as N}from"./internal/bufferWriterUtils.js";import{hasShadowHighlights as P}from"../shaders/ReceiveShadowsConfiguration.js";import{alphaCutoff as F}from"../../../../webscene/support/AlphaCutoff.js";class I extends T{constructor(e,t){super(e,R),this.supportsEdges=!0,this.produces=new Map([[2,e=>(this.parameters.castShadows&&u(e)||d(e))&&!this.transparent],[4,e=>(this.parameters.castShadows&&u(e)||d(e))&&this.transparent]]),this._configuration=new w(t.spherical)}get emissions(){return this.parameters.emissiveStrength>0?this.transparent?2:1:0}updateConfiguration(e){super.updateConfiguration(e),this._configuration.hasVVSize=this.parameters.hasVVSize,this._configuration.hasVVColor=this.parameters.hasVVColor,this._configuration.hasVVOpacity=this.parameters.hasVVOpacity,this._configuration.hasSlicePlane=this.parameters.hasSlicePlane,this._configuration.transparent=this.transparent,this._configuration.hasOccludees=e.hasOccludees,this._configuration.cullFace=this.parameters.hasSlicePlane?0:this.parameters.cullFace,this._configuration.pathJoinType=this.parameters.pathJoinType,this._configuration.offsetBackfaces=this.transparent,f(e.output)?(this._configuration.receiveShadows=e.shadowMap.enabled,this._configuration.hasShadowHighlights=P(this._configuration,e),this._configuration.receiveAmbientOcclusion=e.ssao!=null,this._configuration.receiveGlobalIllumination=e.globalIlluminationEnabled):this._configuration.receiveShadows=this._configuration.hasShadowHighlights=this._configuration.receiveAmbientOcclusion=this._configuration.receiveGlobalIllumination=!1,this._configuration.pbrMode=this.parameters.usePBR?2:0,this._configuration.emissionSource=+!!this.emissions,this._configuration.snowCover=e.snowCover>0,this._configuration.upVectorAlignment=this.parameters.upVectorAlignment,this._configuration.pathCapType=this.parameters.pathCapType,this._configuration.pathProfileType=this.parameters.profile.type,this._configuration.hasPathSize=this.parameters.hasPathSize,this._configuration.hasPathColor=this.parameters.hasPathColor,this._configuration.hasPathOpacity=this.parameters.hasPathOpacity}isVisibleForOutput(e){return e===5||e===7||e===6?this.parameters.castShadows:!0}get visible(){return this.parameters.opacity>=F}intersectRay(e,t,n,r,i,a){g(e,n,r,i,null,a)}intersectRayDraped(){}intersectScreenPolygonDraped(){return null}intersectScreenPolygon(e,t,n,r){return y(_(e,n,t,r,null),this._configuration,n.camera.eye)}createBufferWriter(){return new z(b(),x(this.parameters))}createGLMaterial(e){return new L(e)}get transparent(){return this.parameters.drivenOpacity||this.parameters.opacity<1}}class L extends m{beginSlot(e){return this.getTechnique(C,e)}}class R extends S{constructor(){super(...arguments),this.polygonOffset=0,this.castShadows=!0,this.hasSlicePlane=!1,this.drivenOpacity=!1,this.usePBR=!1,this.upVectorAlignment=0,this.pathCapType=1,this.cullFace=2,this.pathJoinType=1}}class z{constructor(e,t){this.layout=e,this.textureBufferLayout=t,this.maxTextureBufferItemIndex=l}elementCount(e){return e.get(`pathVertexInfo`)?.indices.length??0}elementCountTextureBuffer(e){return e.get(`position`)?.indices.length??0}write(e,t,n,r,i,a){r!=null&&this._writeVertexBuffer(e,t,n,r,i),a!=null&&this._writeTextureBuffer(e,n,a)}_writeVertexBuffer(t,n,r,i,a){E(r,this.layout,t,n,i);let o=a?.from??0,s=i.buffer.getField(`pathVertexInfo`,e),c=r.get(`pathVertexInfo`);if(s&&c){v(c.size===1);let{data:e,stride:t,indices:n}=c;for(let r=0;r<n.length;++r){let a=e[t*n[r]];s.set(i.offset+r,h(a,o))}}}_writeTextureBuffer(e,l,u){let d=u.offset,f=u.buffer.getField(`position`,t),m=l.get(`position`);f&&m&&(v(m.size===3),D(m,e,f,d));let h=u.buffer.getField(`profileRight`,n),g=l.get(`profileRight`);h&&g&&(v(g.size===2),O(g,h,d));let _=u.buffer.getField(`profileUp`,n),y=l.get(`profileUp`);_&&y&&(v(y.size===2),O(y,_,d));let b=u.buffer.getField(`profileRotation`,r),x=l.get(`profileRotation`);b&&x&&(v(x.size===1),k(x,b,d));let S=u.buffer.getField(`pathRotationUp`,n),C=l.get(`pathRotationUp`);S&&C&&(v(C.size===2),O(C,S,d));let w=u.buffer.getField(`pathMaxStretchDistance`,i),T=l.get(`pathMaxStretchDistance`);w&&T&&(v(T.size===1),A(T,w,d));let E=u.buffer.getField(`sizeFeatureAttribute`,a),P=l.get(`sizeFeatureAttribute`);E&&P&&j(P,E,d);let F=u.buffer.getField(`size`,o),I=l.get(`size`);F&&I&&(v(I.size===2),O(I,F,d));let L=u.buffer.getField(`colorFeatureAttribute`,a),R=l.get(`colorFeatureAttribute`);L&&R&&j(R,L,d);let z=u.buffer.getField(`color`,s),B=l.get(`color`);z&&B&&M(B,4,z,d);let V=u.buffer.getField(`opacityFeatureAttribute`,a),H=l.get(`opacityFeatureAttribute`);V&&H&&j(H,V,d);let U=u.buffer.getField(`opacity`,c),W=l.get(`opacity`);if(U&&W&&(v(W.size===1),N(W,U,d)),p()){let e=u.buffer.getField(`olidColor`,s),t=m?.indices.length??0,n=l.get(`olidColor`);n&&e&&t&&M(n,4,e,d)}}}export{R as Parameters,z as PathBufferWriter,I as PathMaterial};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/6.0/LICENSE.txt */
|
|
2
|
-
import e from"../../../../core/Logger.js";import{clamp as t}from"../../../../core/mathUtils.js";import{createRenderScreenPointArray3 as n,createScreenPointArray as r}from"../../../../core/screenUtils.js";import{secondsFromMilliseconds as i,Seconds as a}from"../../../../core/time.js";import{copy as o,set as s}from"../../../../core/libs/gl-matrix-2/math/vec2.js";import{create as c}from"../../../../core/libs/gl-matrix-2/factories/vec2f64.js";import{set as l,subtract as u,dot as d,scale as f,add as p,copy as m,length as h,distance as g,lerp as _,transformMat4 as v,normalize as y}from"../../../../core/libs/gl-matrix-2/math/vec3.js";import{create as b}from"../../../../core/libs/gl-matrix-2/factories/vec3f64.js";import{ONES as x}from"../../../../core/libs/gl-matrix-2/factories/vec4f64.js";import{fromPoints as S,distance2 as C,closestLineSegmentPoint as w,projectPoint as T,projectPointFraction as E,create as D}from"../../../../geometry/support/lineSegment.js";import{fromPoints as O,signedDistance as k,getNormal as ee,create as A}from"../../../../geometry/support/plane.js";import{BufferViewVec3f as j,BufferViewFloat as M,BufferViewVec4Unorm8 as N,BufferViewVec4f16 as te,BufferViewUint32 as ne}from"../../../../geometry/support/buffer/BufferView.js";import{isHighlightOrOLID as re,isColor as ie,isDepth as ae,isColorHighlightOLIDOrDepth as oe,is2DGeometryOutput as se}from"../core/shaderLibrary/ShaderOutput.js";import{olidEnabled as ce}from"../effects/geometry/olidUtils.js";import le from"../lib/GLMaterial.js";import{LineMaterial as ue}from"../lib/LineMaterial.js";import{projectWorldLineSegmentToRenderScreen as de,screenPolygonIntersectsBufferedSegment as fe}from"../lib/screenPolygonOverlapUtils.js";import{Hit as pe,DrapedHit as me}from"../lib/screenPolygonTriangleIntersections.js";import{ScreenSizePerspectiveEvaluator as he}from"../lib/screenSizePerspectiveUtils.js";import{isTranslationMatrix as ge,assert as P}from"../lib/Util.js";import{isImagePattern as _e}from"./lineStippleUtils.js";import{VisualVariablePassParameters as ve}from"./VisualVariablePassParameters.js";import{writeColor as ye}from"./internal/bufferWriterUtils.js";import{n as be}from"../../../../chunks/RibbonLine.glsl.js";import{getLayout as xe,getTextureBufferLayout as Se}from"../shaders/RibbonLineLayouts.js";import{RibbonLineTechnique as Ce}from"../shaders/RibbonLineTechnique.js";import{RibbonLineTechniqueConfiguration as we}from"../shaders/RibbonLineTechniqueConfiguration.js";import{alphaCutoff as Te}from"../../../../webscene/support/AlphaCutoff.js";class Ee extends ue{constructor(e,t){super(e,Oe),this.produces=new Map([[2,e=>re(e)||ie(e)&&this.parameters.renderOccluded===8],[3,e=>ae(e)],[10,e=>oe(e)&&this.parameters.renderOccluded===8],[11,e=>oe(e)&&this.parameters.renderOccluded===8],[4,e=>ie(e)&&this.parameters.writeDepth&&this.parameters.renderOccluded!==8],[8,e=>ie(e)&&!this.parameters.writeDepth&&this.parameters.renderOccluded!==8],[18,e=>se(e)]]),this._configuration=new we(t.state.isGlobal),this._isAssumedMetalDriver=t.stage.renderer.renderContext.rctx.isAssumedMetalDriver}updateConfiguration(e){super.updateConfiguration(e),this._configuration.useFlatJoinVarying=!this._isAssumedMetalDriver;let t=this.parameters.stipplePattern!=null&&this.parameters.stippleTexture!=null&&e.output!==10,n=t&&this.parameters.isImagePattern()&&this._configuration.draped,r=this.parameters.usesWorldSizedWidth(n);this._configuration.polygonOffset=this.parameters.polygonOffset,this._configuration.stippleEnabled=t,this._configuration.stippleOffColorEnabled=t&&this.parameters.stippleOffColor!=null,this._configuration.stipplePreferContinuous=t&&this.parameters.stipplePreferContinuous,this._configuration.numJoinSubdivisions=Ne(this.parameters.join,t),this._configuration.hasSlicePlane=this.parameters.hasSlicePlane,this._configuration.roundJoins=this.parameters.join===`round`,this._configuration.capType=this.parameters.cap,this._configuration.applyMarkerOffset=this.parameters.markerParameters!=null&&Me(this.parameters.markerParameters),this._configuration.polygonOffsetIndex=this.parameters.polygonOffsetIndex,this._configuration.writeDepth=this.parameters.writeDepth,this._configuration.innerColorEnabled=this.parameters.innerWidth>0&&this.parameters.innerColor!=null,this._configuration.falloffEnabled=this.parameters.falloff>0,this._configuration.wireframe=this.parameters.wireframe,this._configuration.animation=this.parameters.animation,this._configuration.emissionSource=+!!this.emissions,this._configuration.hasScreenSizePerspective=!!this.parameters.screenSizePerspective&&!r,this._configuration.worldSized=r,this._configuration.imagePattern=n}get visible(){return this.parameters.color[3]>=Te||this.parameters.stipplePattern!=null&&(this.parameters.stippleOffColor?.[3]??0)>Te}get emissions(){return this.parameters.emissiveStrength>0?this.parameters.renderOccluded===8?1:2:0}setParameters(e,t){e.animation=this.parameters.animation,super.setParameters(e,t)}intersectRayDraped({attributes:e},n,r,i,a,o,s){if(!n.options.selectionMode)return;let c=this._getLineSize(e,!0),l=r[0],u=r[1],d=Ae(c,o,s,this.parameters.usesWorldSizedWidth()),f=Number.MAX_VALUE,p=0;for(let n of je(z,B,this.parameters,e)){let e=l-z[0],r=u-z[1],i=B[0]-z[0],a=B[1]-z[1],o=i*e+a*r,s=i*i+a*a,c=t(o/s,0,1),d=i*c-e,m=a*c-r,h=d*d+m*m;h<f&&(f=h,p=n)}f<d*d&&i(a.distance,a.renderDistance,a.normal,p)}intersectRay(t,n,r,i,a,s){let{options:c,camera:_,rayBegin:v,rayEnd:y}=r;if(!c.selectionMode||!t.visible||!_)return;if(!ge(n)){e.getLogger(`esri.views.3d.webgl-engine.materials.RibbonLineMaterial`).error(`intersection assumes a translation-only matrix`);return}let b=t.attributes,x=b.get(`position`).data,T=this._getLineSize(b),E=Ie;o(E,r.point);let D=T*_.pixelRatio,A=$*_.pixelRatio,j=D/2+A;l(X[0],E[0]-j,E[1]+j,0),l(X[1],E[0]+j,E[1]+j,0),l(X[2],E[0]+j,E[1]-j,0),l(X[3],E[0]-j,E[1]-j,0);for(let e=0;e<4;e++)if(!_.unprojectFromRenderScreen(X[e],Z[e]))return;O(_.eye,Z[0],Z[1],He),O(_.eye,Z[1],Z[2],Ue),O(_.eye,Z[2],Z[3],We),O(_.eye,Z[3],Z[0],Q);let M=Number.MAX_VALUE,N=0;for(let e of this._forEachTransformedLineSegment(L,R,x,n,I(this.parameters,b))){if(k(He,L)<0&&k(He,R)<0||k(Ue,L)<0&&k(Ue,R)<0||k(We,L)<0&&k(We,R)<0||k(Q,L)<0&&k(Q,R)<0)continue;let t=_.projectToRenderScreen(L,G),n=_.projectToRenderScreen(R,K);if(t==null||n==null)continue;if(t[2]<0&&n[2]>0){u(U,L,R);let e=_.frustum,n=-k(e[4],L)/d(U,ee(e[4]));if(f(U,U,n),p(L,L,U),!_.projectToRenderScreen(L,t))continue}else if(t[2]>0&&n[2]<0){u(U,R,L);let e=_.frustum,t=-k(e[4],R)/d(U,ee(e[4]));if(f(U,U,t),p(R,R,U),!_.projectToRenderScreen(R,n))continue}else if(t[2]<0&&n[2]<0)continue;t[2]=0,n[2]=0;let r=S(t,n,q),i=C(r,E);if(!(i>=M)){if(this.parameters.screenSizePerspective){let e=this.computeScreenSizePerspectiveWidth(r,L,R,E,_,T,A);if(i>=e*e)continue}M=i,m(ze,L),m(Be,R),N=e}}if(M<j*j){let e=Number.MAX_VALUE;if(w(S(ze,Be,q),S(v,y,Ve),W)){u(W,W,v);let t=h(W);f(W,W,1/t),e=t/g(v,y)}s(e,e,W,N)}}intersectScreenPolygon(t,n,r,i){let{options:a,camera:o,screenPolygonPrimitiveProcessor:s}=r;if(!a.selectionMode||!t.visible)return null;if(!ge(n))return e.getLogger(`esri.views.3d.webgl-engine.materials.RibbonLineMaterial`).error(`intersection assumes a translation-only matrix`),null;let c=t.attributes,l=c.get(`position`).data,u=this._getLineSize(c),d=$,f=d*o.pixelRatio,p=new pe(4);for(let e of this._forEachTransformedLineSegment(L,R,l,n,I(this.parameters,c)))for(let[t,n]of s.processLineSegment(Ke,L,R)){if(!de(o,t,n,G,K))continue;let r=S(G,K,q),a=u/2+d;this.parameters.screenSizePerspective&&(_(Ie,G,K,.5),a=Math.max(a,this.computeScreenSizePerspectiveWidth(r,t,n,Ie,o,u,f)/o.pixelRatio)),o.renderToScreen(G,Le),o.renderToScreen(K,Re),fe(i,Le,Re,a)&&(T(S(t,n,Ve),o.eye,V),p.updateIfCloserFromValues(g(o.eye,V),e,V,null))}return p}intersectScreenPolygonDraped({attributes:e},t,n,r,i,a){if(!n.options.selectionMode)return null;let o=Ae(this._getLineSize(e,!0),i,a,this.parameters.usesWorldSizedWidth());for(let n of je(z,B,this.parameters,e,t))if(fe(r,z,B,o))return new me(n);return null}createBufferWriter(){return new ke(xe(this.parameters),Se(this.parameters),this.parameters,this._isAssumedMetalDriver)}createGLMaterial(e){return new De(e)}validateParameters(e){e.join!==`miter`&&(e.miterLimit=0),e.markerParameters!=null&&(e.markerScale=e.markerParameters.width/e.width)}update(e){return this.parameters.hasAnimation?(this.setParameters({timeElapsed:i(e.time)},!1),e.dt!==0):!1}computeScreenSizePerspectiveWidth(e,t,n,r,i,a,o){let s=E(e,r);_(V,t,n,s),v(Fe,V,i.viewMatrix);let c=h(Fe),l=this.computeCameraAbsCosAngle(V,i,this._configuration.spherical);return Pe.update(l,c,this.parameters.screenSizePerspective,this.parameters.screenSizePerspectiveMinPixelReferenceSize),Pe.apply(a)*i.pixelRatio/2+o}computeCameraAbsCosAngle(e,t,n){return n?y(W,e):l(W,0,0,1),u(H,e,t.eye),y(H,H),Math.abs(d(W,H))}_getLineSize(e,n=!1){let r=this.parameters.width;if(this.parameters.vvSize){let i=e.get(`sizeFeatureAttribute`).data[0];Number.isNaN(i)?n&&(r*=this.parameters.vvSize.fallback[0]):r*=t(this.parameters.vvSize.offset[0]+i*this.parameters.vvSize.factor[0],this.parameters.vvSize.minSize[0],this.parameters.vvSize.maxSize[0])}else e.has(`size`)&&(r*=e.get(`size`).data[0]);return r}*_forEachTransformedLineSegment(e,t,n,r,i){let a=i?n.length-2:n.length-5;for(let i=0;i<a;i+=3){e[0]=n[i]+r[12],e[1]=n[i+1]+r[13],e[2]=n[i+2]+r[14];let a=(i+3)%n.length;t[0]=n[a]+r[12],t[1]=n[a+1]+r[13],t[2]=n[a+2]+r[14],yield i/3}}}class De extends le{constructor(){super(...arguments),this._stipplePattern=null}dispose(){super.dispose(),this._stippleTextures?.release(this._stipplePattern),this._stipplePattern=null}beginSlot(e){let{stipplePattern:t}=this._material.parameters;return this._stipplePattern!==t&&(this._material.setParameters({stippleTexture:this._stippleTextures.swap(t,this._stipplePattern)}),this._stipplePattern=t),this.getTechnique(Ce,e)}}class Oe extends ve{constructor(){super(...arguments),this._width=0,this.color=x,this.join=`miter`,this.cap=0,this.miterLimit=5,this.shadingEnabled=!1,this.writeDepth=!0,this.polygonOffset=0,this.polygonOffsetIndex=0,this.stippleTexture=null,this.stipplePreferContinuous=!0,this.markerParameters=null,this.markerScale=1,this.hasSlicePlane=!1,this.vvFastUpdate=!1,this.isClosed=!1,this.falloff=0,this.innerWidth=0,this.wireframe=!1,this.timeElapsed=a(0),this.animation=0,this.animationSpeed=1,this.trailLength=1,this.startTime=a(0),this.endTime=a(1/0),this.worldSized=!1}get width(){return this.isImagePattern()?this.stipplePattern.width:this._width}set width(e){this._width=e}get transparent(){return this.color[3]<1||this.hasAnimation||this.stipplePattern!=null&&(this.stippleOffColor?.[3]??0)<1}get hasAnimation(){return this.animation!==0}usesWorldSizedWidth(e=this.isImagePattern()){return this.worldSized||e}isImagePattern(){return _e(this.stipplePattern)&&this.stippleTexture!=null}}class ke{constructor(e,t,n,r){this.layout=e,this.textureBufferLayout=t,this._parameters=n,this._isAssumedMetalDriver=r,this.numJoinSubdivisions=Ne(this._parameters.join,this._parameters.stipplePattern!=null)}_isClosed(e){return I(this._parameters,e)}allocate(e){return this.layout.createBuffer(e)}elementCountTextureBuffer(e){return e.get(`position`).data.length/3+(this._isClosed(e)?3:2)}elementCount(e){let t=e.get(`position`).indices.length/2+1,n=this._isClosed(e),r=n?2:4,i=+!n,a=n?t:t-1,o=this.numJoinSubdivisions*2+(this._isAssumedMetalDriver?8:4);return r+=(a-i)*o,r+=2,this._parameters.wireframe&&(r=2+(r-2)*4),r}write(e,t,n,r,i,a){a!=null&&this._writeTextureBuffer(e,n,a),r!=null&&this._writeVertexBuffer(e,n,r,i)}_writeTextureBuffer(e,t,n){let r=t.get(`position`),i=r.data.length/3,a=this._isClosed(t),{buffer:o,offset:s}=n,c=o.getField(`position`,j),l=o.getField(`u0`,M),u=o.getField(`sizeFeatureAttribute`,M),d=o.getField(`size`,M),f=o.getField(`colorFeatureAttribute`,M),p=o.getField(`color`,N),h=o.getField(`olidColor`,N),_=o.getField(`timeStamps`,te),v=o.getField(`opacityFeatureAttribute`,M),y=t.get(`sizeFeatureAttribute`)?.data,b=t.get(`size`)?.data,x=t.get(`colorFeatureAttribute`)?.data,S=t.get(`color`)?.data,C=t.get(`opacityFeatureAttribute`)?.data,w=t.get(`distanceToStart`)?.data,T=t.get(`timeStamps`);P(c!==null,`Expected valid position field in texture buffer`),P(l!==null,`Expected valid u0 field in texture buffer`);let E=0;for(let t=0;t<i;++t){this._getTransformedPosition(Y,r.data,t,e),t>0&&(w==null?E+=g(J,Y):E=w[t]??E);let n=s+t+1;if(c.setVec(n,Y),l.set(n,E),m(J,Y),u&&u.set(n,y?.length===1?y[0]:y?.[t]??0),d&&d.set(n,b?.length===1?b[0]:b?.[t]??1),f&&f.set(n,x?.length===1?x[0]:x?.[t]??0),p){if(S!=null){let e=Math.min(t*4,S.length-4);p.setValues(n,S[e],S[e+1],S[e+2],S[e+3])}else p.setValues(n,1,1,1,1)}v&&v.set(n,C?.length===1?C[0]:C?.[t]??0)}if(_!=null&&T!=null){P(T.size===4);let e=T.data;for(let t=0;t<i;++t){let n=t*4,r=s+t+1;_.set(r,0,e[n]),_.set(r,1,e[n+1]),_.set(r,2,e[n+2]),_.set(r,3,e[n+3])}}if(a){let e=s,t=s+1,n=s+2,r=s+i,a=r+1,u=r+2;o.copyItem(r,e),o.copyItem(t,a),o.copyItem(n,u),c.getVec(r,J),c.getVec(t,Y);let d=w?.[i]??E+g(J,Y);l.set(a,d)}else{let e=s,t=s+1,n=s+i,r=n+1;o.copyItem(t,e),o.copyItem(n,r)}let D=t.get(`olidColor`);ce()&&D!=null&&h!=null&&ye(D,4,h,s)}_writeVertexBuffer(e,t,n,r){let{buffer:i,offset:a}=n,{layout:o}=this,s=t.get(`position`),c=s.indices,l=s.data.length/3,u=this._isClosed(t),d=l+(u?3:2);c&&c.length!==2*(l-1)&&console.warn(`RibbonLineMaterial does not support indices`);let f=i.getField(`textureElementIndex`,ne);P(f!=null,`Missing texture buffer index field`),P(r!=null,`Using a texture layout, but the texture range for this instance was not provided`);let p=r.from;P(r.numElements===d,`Expected number of elements in TextureBuffer to equal number of points`);let m=new Float32Array(i.buffer),h=new Float16Array(i.buffer),g=new Uint32Array(i.buffer),_=o.stride/4,v=a*_,y=v,b=m.BYTES_PER_ELEMENT/h.BYTES_PER_ELEMENT,x=(e,t,n,r=!1)=>{let i=n+1;g[v]=p+i,v++;let a=v*b;h[a++]=e,h[a++]=t+(r?Math.sign(t)*8:0),v=Math.ceil(a/b)};v+=_;let S=0,C=0;u?(S=0,C=l):(x(1,-4,0),x(1,4,0),S=1,C=l-1);let w=this._isAssumedMetalDriver;for(let e=S;e<C;e++){x(0,-1,e),x(0,1,e),w&&(x(0,-1,e,!0),x(0,1,e,!0));let t=this.numJoinSubdivisions;for(let n=0;n<t;++n){let r=(n+1)/(t+1);x(r,-1,e,w),x(r,1,e,w)}x(1,-2,e,w),x(1,2,e,w),w&&(x(1,-2,e),x(1,2,e))}u?(x(0,-1,C),x(0,1,C)):(x(0,-5,C),x(0,5,C)),F(m,y+_,m,y,_),v=F(m,v-_,m,v,_),this._parameters.wireframe&&this._addWireframeVertices(i,y,v,_)}_getTransformedPosition(e,t,n,r){let i=n*3;l(e,t[i+0],t[i+1],t[i+2]),r&&v(e,e,r)}_addWireframeVertices(e,t,n,r){let i=new Uint8Array(e.buffer,n*Float32Array.BYTES_PER_ELEMENT),a=new Uint8Array(e.buffer,t*Float32Array.BYTES_PER_ELEMENT,(n-t)*Float32Array.BYTES_PER_ELEMENT),o=r*Float32Array.BYTES_PER_ELEMENT,s=0,c=e=>s=F(a,e,i,s,o);for(let e=0;e<=a.length-4*o;e+=o*2)c(e),c(e+2*o),c(e+1*o),c(e+2*o),c(e+1*o),c(e+3*o)}}function F(e,t,n,r,i){for(let a=0;a<i;a++)n[r++]=e[t++];return r}function I(e,t){return e.isClosed?t.get(`position`).indices.length>2:!1}function Ae(e,t,n,r){return r?e/(2*n)+$*t:(e/2+$)*t}function*je(e,t,n,r,i){let a=r.get(`position`).data,c=I(n,r)?a.length-2:a.length-5,l=i?.[0]??0,u=i?.[1]??0;s(e,a[0]+l,a[1]+u);for(let n=3;n<c+3;n+=3){let r=n%a.length;s(t,a[r]+l,a[r+1]+u),yield n/3,o(e,t)}}function Me(e){return e.anchor===1&&e.hideOnShortSegments&&e.placement===`begin-end`&&e.worldSpace}function Ne(e,t){let n=+!!t;switch(e){case`miter`:case`bevel`:return n;case`round`:return be+n}}const Pe=new he,L=b(),R=b(),z=c(),B=c(),V=b(),Fe=b(),H=b(),U=b(),W=b(),Ie=b(),G=n(),K=n(),Le=r(),Re=r(),ze=b(),Be=b(),q=D(),Ve=D(),J=b(),Y=b(),X=[n(),n(),n(),n()],Z=[b(),b(),b(),b()],He=A(),Ue=A(),We=A(),Q=A(),$=4,Ge={getDrapedRibbonLineMaxDistance:Ae},Ke=[b(),b()];export{Oe as Parameters,Ee as RibbonLineMaterial,Ge as test};
|
|
2
|
+
import e from"../../../../core/Logger.js";import{clamp as t}from"../../../../core/mathUtils.js";import{createRenderScreenPointArray3 as n,createScreenPointArray as r}from"../../../../core/screenUtils.js";import{secondsFromMilliseconds as i,Seconds as a}from"../../../../core/time.js";import{copy as o,set as s}from"../../../../core/libs/gl-matrix-2/math/vec2.js";import{create as c}from"../../../../core/libs/gl-matrix-2/factories/vec2f64.js";import{set as l,subtract as u,dot as d,scale as f,add as p,copy as m,length as h,distance as g,lerp as _,transformMat4 as v,normalize as y}from"../../../../core/libs/gl-matrix-2/math/vec3.js";import{create as b}from"../../../../core/libs/gl-matrix-2/factories/vec3f64.js";import{ONES as x}from"../../../../core/libs/gl-matrix-2/factories/vec4f64.js";import{fromPoints as S,distance2 as C,closestLineSegmentPoint as w,projectPoint as T,projectPointFraction as E,create as D}from"../../../../geometry/support/lineSegment.js";import{fromPoints as O,signedDistance as k,getNormal as ee,create as A}from"../../../../geometry/support/plane.js";import{BufferViewVec3f as te,BufferViewFloat as j,BufferViewVec4Unorm8 as ne,BufferViewVec4f16 as re,BufferViewUint32 as ie}from"../../../../geometry/support/buffer/BufferView.js";import{isHighlightOrOLID as ae,isColor as M,isDepth as oe,isColorHighlightOLIDOrDepth as se,is2DGeometryOutput as ce}from"../core/shaderLibrary/ShaderOutput.js";import{olidEnabled as le}from"../effects/geometry/olidUtils.js";import ue from"../lib/GLMaterial.js";import{LineMaterial as de}from"../lib/LineMaterial.js";import{projectWorldLineSegmentToRenderScreen as fe,screenPolygonIntersectsBufferedSegment as pe}from"../lib/screenPolygonOverlapUtils.js";import{Hit as me,DrapedHit as he}from"../lib/screenPolygonTriangleIntersections.js";import{ScreenSizePerspectiveEvaluator as ge}from"../lib/screenSizePerspectiveUtils.js";import{isTranslationMatrix as _e,assert as N}from"../lib/Util.js";import{isImagePattern as ve}from"./lineStippleUtils.js";import{VisualVariablePassParameters as ye}from"./VisualVariablePassParameters.js";import{writeColor as be}from"./internal/bufferWriterUtils.js";import{intersectRayWithWorldSizedLineSegment as xe,intersectScreenPolygonWithWorldSizedLineSegment as Se}from"./internal/worldSizedRibbonLineIntersectionUtils.js";import{n as Ce}from"../../../../chunks/RibbonLine.glsl.js";import{getLayout as we,getTextureBufferLayout as Te}from"../shaders/RibbonLineLayouts.js";import{RibbonLineTechnique as Ee}from"../shaders/RibbonLineTechnique.js";import{RibbonLineTechniqueConfiguration as De}from"../shaders/RibbonLineTechniqueConfiguration.js";import{alphaCutoff as Oe}from"../../../../webscene/support/AlphaCutoff.js";class ke extends de{constructor(e,t){super(e,je),this.produces=new Map([[2,e=>ae(e)||M(e)&&this.parameters.renderOccluded===8],[3,e=>oe(e)],[10,e=>se(e)&&this.parameters.renderOccluded===8],[11,e=>se(e)&&this.parameters.renderOccluded===8],[4,e=>M(e)&&this.parameters.writeDepth&&this.parameters.renderOccluded!==8],[8,e=>M(e)&&!this.parameters.writeDepth&&this.parameters.renderOccluded!==8],[18,e=>ce(e)]]),this._configuration=new De(t.state.isGlobal),this._isAssumedMetalDriver=t.stage.renderer.renderContext.rctx.isAssumedMetalDriver}updateConfiguration(e){super.updateConfiguration(e),this._configuration.useFlatJoinVarying=!this._isAssumedMetalDriver;let t=this.parameters.stipplePattern!=null&&this.parameters.stippleTexture!=null&&e.output!==10,n=t&&this.parameters.isImagePattern()&&this._configuration.draped,r=this.parameters.usesWorldSizedWidth(n);this._configuration.polygonOffset=this.parameters.polygonOffset,this._configuration.stippleEnabled=t,this._configuration.stippleOffColorEnabled=t&&this.parameters.stippleOffColor!=null,this._configuration.stipplePreferContinuous=t&&this.parameters.stipplePreferContinuous,this._configuration.numJoinSubdivisions=Fe(this.parameters.join,t),this._configuration.hasSlicePlane=this.parameters.hasSlicePlane,this._configuration.roundJoins=this.parameters.join===`round`,this._configuration.capType=this.parameters.cap,this._configuration.applyMarkerOffset=this.parameters.markerParameters!=null&&Pe(this.parameters.markerParameters),this._configuration.polygonOffsetIndex=this.parameters.polygonOffsetIndex,this._configuration.writeDepth=this.parameters.writeDepth,this._configuration.innerColorEnabled=this.parameters.innerWidth>0&&this.parameters.innerColor!=null,this._configuration.falloffEnabled=this.parameters.falloff>0,this._configuration.wireframe=this.parameters.wireframe,this._configuration.animation=this.parameters.animation,this._configuration.emissionSource=+!!this.emissions,this._configuration.hasScreenSizePerspective=!!this.parameters.screenSizePerspective&&!r,this._configuration.worldSized=r,this._configuration.imagePattern=n}get visible(){return this.parameters.color[3]>=Oe||this.parameters.stipplePattern!=null&&(this.parameters.stippleOffColor?.[3]??0)>Oe}get emissions(){return this.parameters.emissiveStrength>0?this.parameters.renderOccluded===8?1:2:0}setParameters(e,t){e.animation=this.parameters.animation,super.setParameters(e,t)}intersectRayDraped({attributes:e},n,r,i,a,o,s){if(!n.options.selectionMode)return;let c=this._getLineSize(e,!0),l=r[0],u=r[1],d=I(c,o,s,this.parameters.usesWorldSizedWidth()),f=Number.MAX_VALUE,p=0;for(let n of Ne(z,B,this.parameters,e)){let e=l-z[0],r=u-z[1],i=B[0]-z[0],a=B[1]-z[1],o=i*e+a*r,s=i*i+a*a,c=t(o/s,0,1),d=i*c-e,m=a*c-r,h=d*d+m*m;h<f&&(f=h,p=n)}f<d*d&&i(a.distance,a.renderDistance,a.normal,p)}intersectRay(t,n,r,i,a,o){let{options:s,camera:c}=r;if(!s.selectionMode||!t.visible||!c)return;if(!_e(n)){e.getLogger(`esri.views.3d.webgl-engine.materials.RibbonLineMaterial`).error(`intersection assumes a translation-only matrix`);return}let l=this._getLineSize(t.attributes);this.parameters.worldSized?this._intersectRayWithWorldSizedLine(t,n,r,l,o):this._intersectRayWithScreenSizedLine(t,n,r,l,o)}_intersectRayWithScreenSizedLine(e,t,n,r,i){let{camera:a}=n,s=e.attributes,c=s.get(`position`).data,_=Re;o(_,n.point);let v=r*a.pixelRatio,y=$*a.pixelRatio,b=v/2+y;l(Y[0],_[0]-b,_[1]+b,0),l(Y[1],_[0]+b,_[1]+b,0),l(Y[2],_[0]+b,_[1]-b,0),l(Y[3],_[0]-b,_[1]-b,0);for(let e=0;e<4;e++)if(!a.unprojectFromRenderScreen(Y[e],X[e]))return;O(a.eye,X[0],X[1],Ke),O(a.eye,X[1],X[2],Z),O(a.eye,X[2],X[3],qe),O(a.eye,X[3],X[0],Q);let x=Number.MAX_VALUE,T=0;for(let e of this._forEachTransformedLineSegment(L,R,c,t,F(this.parameters,s))){if(k(Ke,L)<0&&k(Ke,R)<0||k(Z,L)<0&&k(Z,R)<0||k(qe,L)<0&&k(qe,R)<0||k(Q,L)<0&&k(Q,R)<0)continue;let t=a.projectToRenderScreen(L,G),n=a.projectToRenderScreen(R,K);if(t==null||n==null)continue;if(t[2]<0&&n[2]>0){u(U,L,R);let e=a.frustum,n=-k(e[4],L)/d(U,ee(e[4]));if(f(U,U,n),p(L,L,U),!a.projectToRenderScreen(L,t))continue}else if(t[2]>0&&n[2]<0){u(U,R,L);let e=a.frustum,t=-k(e[4],R)/d(U,ee(e[4]));if(f(U,U,t),p(R,R,U),!a.projectToRenderScreen(R,n))continue}else if(t[2]<0&&n[2]<0)continue;t[2]=0,n[2]=0;let i=S(t,n,We),o=C(i,_);if(!(o>=x)){if(this.parameters.screenSizePerspective){let e=this.computeScreenSizePerspectiveWidth(i,L,R,_,a,r,y);if(o>=e*e)continue}x=o,m(Ve,L),m(He,R),T=e}}if(x<b*b){let{rayBegin:e,rayEnd:t}=n,r=Number.MAX_VALUE;if(w(S(Ve,He,We),S(e,t,Ge),W)){u(W,W,e);let n=h(W);f(W,W,1/n),r=n/g(e,t)}i(r,r,W,T)}}_intersectRayWithWorldSizedLine(e,t,n,r,i){let{camera:a,ray:o,metersPerRenderUnit:s}=n,c=e.attributes,l=c.get(`position`).data,u=r/(2*s),d=1/0,f=0;for(let e of this._forEachTransformedLineSegment(L,R,l,t,F(this.parameters,c))){let t=xe(L,R,u,a,o,Ue);if(t!=null&&t<d&&(d=t,f=e,m(W,Ue),t===0))break}d<1/0&&i(d,d,W,f)}intersectScreenPolygon(t,n,r,i){let{options:a}=r;if(!a.selectionMode||!t.visible)return null;if(!_e(n))return e.getLogger(`esri.views.3d.webgl-engine.materials.RibbonLineMaterial`).error(`intersection assumes a translation-only matrix`),null;let o=this._getLineSize(t.attributes);return this.parameters.worldSized?this._intersectWorldSizedPolygon(t,n,r,i,o):this._intersectScreenSizedPolygon(t,n,r,i,o)}_intersectScreenSizedPolygon(e,t,n,r,i){let{camera:a,screenPolygonPrimitiveProcessor:o}=n,s=e.attributes,c=s.get(`position`).data,l=$,u=l*a.pixelRatio,d=new me(4);for(let e of this._forEachTransformedLineSegment(L,R,c,t,F(this.parameters,s)))for(let[t,n]of o.processLineSegment(Ye,L,R)){if(!fe(a,t,n,G,K))continue;let o=S(G,K,We),s=i/2+l;this.parameters.screenSizePerspective&&(_(Re,G,K,.5),s=Math.max(s,this.computeScreenSizePerspectiveWidth(o,t,n,Re,a,i,u)/a.pixelRatio)),a.renderToScreen(G,ze),a.renderToScreen(K,Be),pe(r,ze,Be,s)&&(T(S(t,n,Ge),a.eye,V),d.updateIfCloserFromValues(g(a.eye,V),e,V,null))}return d}_intersectWorldSizedPolygon(e,t,n,r,i){let{camera:a,screenPolygonPrimitiveProcessor:o,metersPerRenderUnit:s}=n,{attributes:c}=e,l=c.get(`position`).data,u=i/(2*s),d=new me(4);for(let e of this._forEachTransformedLineSegment(L,R,l,t,F(this.parameters,c)))for(let[t,n]of o.processLineSegment(Ye,L,R)){T(S(t,n,Ge),a.eye,V);let i=g(a.eye,V);d.valid&&i>=d.distance||Se(t,n,u,a,r)&&d.updateIfCloserFromValues(i,e,V,null)}return d}intersectScreenPolygonDraped({attributes:e},t,n,r,i,a){if(!n.options.selectionMode)return null;let o=I(this._getLineSize(e,!0),i,a,this.parameters.usesWorldSizedWidth());for(let n of Ne(z,B,this.parameters,e,t))if(pe(r,z,B,o))return new he(n);return null}createBufferWriter(){return new Me(we(this.parameters),Te(this.parameters),this.parameters,this._isAssumedMetalDriver)}createGLMaterial(e){return new Ae(e)}validateParameters(e){e.join!==`miter`&&(e.miterLimit=0),e.markerParameters!=null&&(e.markerScale=e.markerParameters.width/e.width)}update(e){return this.parameters.hasAnimation?(this.setParameters({timeElapsed:i(e.time)},!1),e.dt!==0):!1}computeScreenSizePerspectiveWidth(e,t,n,r,i,a,o){let s=E(e,r);_(V,t,n,s),v(Le,V,i.viewMatrix);let c=h(Le),l=this.computeCameraAbsCosAngle(V,i,this._configuration.spherical);return Ie.update(l,c,this.parameters.screenSizePerspective,this.parameters.screenSizePerspectiveMinPixelReferenceSize),Ie.apply(a)*i.pixelRatio/2+o}computeCameraAbsCosAngle(e,t,n){return n?y(W,e):l(W,0,0,1),u(H,e,t.eye),y(H,H),Math.abs(d(W,H))}_getLineSize(e,n=!1){let r=this.parameters.width;if(this.parameters.vvSize){let i=e.get(`sizeFeatureAttribute`).data[0];Number.isNaN(i)?n&&(r*=this.parameters.vvSize.fallback[0]):r*=t(this.parameters.vvSize.offset[0]+i*this.parameters.vvSize.factor[0],this.parameters.vvSize.minSize[0],this.parameters.vvSize.maxSize[0])}else e.has(`size`)&&(r*=e.get(`size`).data[0]);return r}*_forEachTransformedLineSegment(e,t,n,r,i){let a=i?n.length-2:n.length-5;for(let i=0;i<a;i+=3){e[0]=n[i]+r[12],e[1]=n[i+1]+r[13],e[2]=n[i+2]+r[14];let a=(i+3)%n.length;t[0]=n[a]+r[12],t[1]=n[a+1]+r[13],t[2]=n[a+2]+r[14],yield i/3}}}class Ae extends ue{constructor(){super(...arguments),this._stipplePattern=null}dispose(){super.dispose(),this._stippleTextures?.release(this._stipplePattern),this._stipplePattern=null}beginSlot(e){let{stipplePattern:t}=this._material.parameters;return this._stipplePattern!==t&&(this._material.setParameters({stippleTexture:this._stippleTextures.swap(t,this._stipplePattern)}),this._stipplePattern=t),this.getTechnique(Ee,e)}}class je extends ye{constructor(){super(...arguments),this._width=0,this.color=x,this.join=`miter`,this.cap=0,this.miterLimit=5,this.shadingEnabled=!1,this.writeDepth=!0,this.polygonOffset=0,this.polygonOffsetIndex=0,this.stippleTexture=null,this.stipplePreferContinuous=!0,this.markerParameters=null,this.markerScale=1,this.hasSlicePlane=!1,this.vvFastUpdate=!1,this.isClosed=!1,this.falloff=0,this.innerWidth=0,this.wireframe=!1,this.timeElapsed=a(0),this.animation=0,this.animationSpeed=1,this.trailLength=1,this.startTime=a(0),this.endTime=a(1/0),this.worldSized=!1}get width(){return this.isImagePattern()?this.stipplePattern.width:this._width}set width(e){this._width=e}get transparent(){return this.color[3]<1||this.hasAnimation||this.stipplePattern!=null&&(this.stippleOffColor?.[3]??0)<1}get hasAnimation(){return this.animation!==0}usesWorldSizedWidth(e=this.isImagePattern()){return this.worldSized||e}isImagePattern(){return ve(this.stipplePattern)&&this.stippleTexture!=null}}class Me{constructor(e,t,n,r){this.layout=e,this.textureBufferLayout=t,this._parameters=n,this._isAssumedMetalDriver=r,this.numJoinSubdivisions=Fe(this._parameters.join,this._parameters.stipplePattern!=null)}_isClosed(e){return F(this._parameters,e)}allocate(e){return this.layout.createBuffer(e)}elementCountTextureBuffer(e){return e.get(`position`).data.length/3+(this._isClosed(e)?3:2)}elementCount(e){let t=e.get(`position`).indices.length/2+1,n=this._isClosed(e),r=n?2:4,i=+!n,a=n?t:t-1,o=this.numJoinSubdivisions*2+(this._isAssumedMetalDriver?8:4);return r+=(a-i)*o,r+=2,this._parameters.wireframe&&(r=2+(r-2)*4),r}write(e,t,n,r,i,a){a!=null&&this._writeTextureBuffer(e,n,a),r!=null&&this._writeVertexBuffer(e,n,r,i)}_writeTextureBuffer(e,t,n){let r=t.get(`position`),i=r.data.length/3,a=this._isClosed(t),{buffer:o,offset:s}=n,c=o.getField(`position`,te),l=o.getField(`u0`,j),u=o.getField(`sizeFeatureAttribute`,j),d=o.getField(`size`,j),f=o.getField(`colorFeatureAttribute`,j),p=o.getField(`color`,ne),h=o.getField(`olidColor`,ne),_=o.getField(`timeStamps`,re),v=o.getField(`opacityFeatureAttribute`,j),y=t.get(`sizeFeatureAttribute`)?.data,b=t.get(`size`)?.data,x=t.get(`colorFeatureAttribute`)?.data,S=t.get(`color`)?.data,C=t.get(`opacityFeatureAttribute`)?.data,w=t.get(`distanceToStart`)?.data,T=t.get(`timeStamps`);N(c!==null,`Expected valid position field in texture buffer`),N(l!==null,`Expected valid u0 field in texture buffer`);let E=0;for(let t=0;t<i;++t){this._getTransformedPosition(J,r.data,t,e),t>0&&(w==null?E+=g(q,J):E=w[t]??E);let n=s+t+1;if(c.setVec(n,J),l.set(n,E),m(q,J),u&&u.set(n,y?.length===1?y[0]:y?.[t]??0),d&&d.set(n,b?.length===1?b[0]:b?.[t]??1),f&&f.set(n,x?.length===1?x[0]:x?.[t]??0),p){if(S!=null){let e=Math.min(t*4,S.length-4);p.setValues(n,S[e],S[e+1],S[e+2],S[e+3])}else p.setValues(n,1,1,1,1)}v&&v.set(n,C?.length===1?C[0]:C?.[t]??0)}if(_!=null&&T!=null){N(T.size===4);let e=T.data;for(let t=0;t<i;++t){let n=t*4,r=s+t+1;_.set(r,0,e[n]),_.set(r,1,e[n+1]),_.set(r,2,e[n+2]),_.set(r,3,e[n+3])}}if(a){let e=s,t=s+1,n=s+2,r=s+i,a=r+1,u=r+2;o.copyItem(r,e),o.copyItem(t,a),o.copyItem(n,u),c.getVec(r,q),c.getVec(t,J);let d=w?.[i]??E+g(q,J);l.set(a,d)}else{let e=s,t=s+1,n=s+i,r=n+1;o.copyItem(t,e),o.copyItem(n,r)}let D=t.get(`olidColor`);le()&&D!=null&&h!=null&&be(D,4,h,s)}_writeVertexBuffer(e,t,n,r){let{buffer:i,offset:a}=n,{layout:o}=this,s=t.get(`position`),c=s.indices,l=s.data.length/3,u=this._isClosed(t),d=l+(u?3:2);c&&c.length!==2*(l-1)&&console.warn(`RibbonLineMaterial does not support indices`);let f=i.getField(`textureElementIndex`,ie);N(f!=null,`Missing texture buffer index field`),N(r!=null,`Using a texture layout, but the texture range for this instance was not provided`);let p=r.from;N(r.numElements===d,`Expected number of elements in TextureBuffer to equal number of points`);let m=new Float32Array(i.buffer),h=new Float16Array(i.buffer),g=new Uint32Array(i.buffer),_=o.stride/4,v=a*_,y=v,b=m.BYTES_PER_ELEMENT/h.BYTES_PER_ELEMENT,x=(e,t,n,r=!1)=>{let i=n+1;g[v]=p+i,v++;let a=v*b;h[a++]=e,h[a++]=t+(r?Math.sign(t)*8:0),v=Math.ceil(a/b)};v+=_;let S=0,C=0;u?(S=0,C=l):(x(1,-4,0),x(1,4,0),S=1,C=l-1);let w=this._isAssumedMetalDriver;for(let e=S;e<C;e++){x(0,-1,e),x(0,1,e),w&&(x(0,-1,e,!0),x(0,1,e,!0));let t=this.numJoinSubdivisions;for(let n=0;n<t;++n){let r=(n+1)/(t+1);x(r,-1,e,w),x(r,1,e,w)}x(1,-2,e,w),x(1,2,e,w),w&&(x(1,-2,e),x(1,2,e))}u?(x(0,-1,C),x(0,1,C)):(x(0,-5,C),x(0,5,C)),P(m,y+_,m,y,_),v=P(m,v-_,m,v,_),this._parameters.wireframe&&this._addWireframeVertices(i,y,v,_)}_getTransformedPosition(e,t,n,r){let i=n*3;l(e,t[i+0],t[i+1],t[i+2]),r&&v(e,e,r)}_addWireframeVertices(e,t,n,r){let i=new Uint8Array(e.buffer,n*Float32Array.BYTES_PER_ELEMENT),a=new Uint8Array(e.buffer,t*Float32Array.BYTES_PER_ELEMENT,(n-t)*Float32Array.BYTES_PER_ELEMENT),o=r*Float32Array.BYTES_PER_ELEMENT,s=0,c=e=>s=P(a,e,i,s,o);for(let e=0;e<=a.length-4*o;e+=o*2)c(e),c(e+2*o),c(e+1*o),c(e+2*o),c(e+1*o),c(e+3*o)}}function P(e,t,n,r,i){for(let a=0;a<i;a++)n[r++]=e[t++];return r}function F(e,t){return e.isClosed?t.get(`position`).indices.length>2:!1}function I(e,t,n,r){return r?e/(2*n)+$*t:(e/2+$)*t}function*Ne(e,t,n,r,i){let a=r.get(`position`).data,c=F(n,r)?a.length-2:a.length-5,l=i?.[0]??0,u=i?.[1]??0;s(e,a[0]+l,a[1]+u);for(let n=3;n<c+3;n+=3){let r=n%a.length;s(t,a[r]+l,a[r+1]+u),yield n/3,o(e,t)}}function Pe(e){return e.anchor===1&&e.hideOnShortSegments&&e.placement===`begin-end`&&e.worldSpace}function Fe(e,t){let n=+!!t;switch(e){case`miter`:case`bevel`:return n;case`round`:return Ce+n}}const Ie=new ge,L=b(),R=b(),z=c(),B=c(),V=b(),Le=b(),H=b(),U=b(),W=b(),Re=b(),G=n(),K=n(),ze=r(),Be=r(),Ve=b(),He=b(),Ue=b(),We=D(),Ge=D(),q=b(),J=b(),Y=[n(),n(),n(),n()],X=[b(),b(),b(),b()],Ke=A(),Z=A(),qe=A(),Q=A(),$=4,Je={getDrapedRibbonLineMaxDistance:I},Ye=[b(),b()];export{je as Parameters,ke as RibbonLineMaterial,Je as test};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/6.0/LICENSE.txt */
|
|
2
|
-
import{Material as e,MaterialParameters as t}from"../lib/Material.js";import{intersectTriangleGeometryPolygon2D as n}from"../lib/PolygonIntersections2D.js";import{intersectTriangleGeometry as r,intersectTriangleGeometry2D as i}from"../lib/RayIntersections.js";import{
|
|
2
|
+
import{Material as e,MaterialParameters as t}from"../lib/Material.js";import{intersectTriangleGeometryPolygon2D as n}from"../lib/PolygonIntersections2D.js";import{intersectTriangleGeometry as r,intersectTriangleGeometry2D as i}from"../lib/RayIntersections.js";import{intersectTriangleGeometryWithScreenPolygon as a,DrapedHit as o}from"../lib/screenPolygonTriangleIntersections.js";import{intersectWithPolygonOffset as s,applyPolygonOffsetToHit as c}from"./intersectWithPolygonOffset.js";class l extends e{updateConfiguration(e){super.updateConfiguration(e),this._configuration.transparent=this.transparent,this._configuration.enableOITOffset=e.enableOITOffset,this._configuration.polygonOffset=this.parameters.polygonOffset}intersectRay(e,t,n,i,a,o){return o=s(o,this._configuration,i,a),r(e,n,i,a,null,o)}intersectRayDraped(e,t,n,r){return i(n[0],n[1],e,r)}intersectScreenPolygon(e,t,n,r){return c(a(e,n,t,r,null),this._configuration,n.camera.eye)}intersectScreenPolygonDraped(e,t,r,i){let a=n(i,t,e);return a===null?null:new o(a)}}class u extends t{constructor(){super(...arguments),this.polygonOffset=0}}export{l as TriangleMaterial,u as TriangleMaterialParameters};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
/* COPYRIGHT Esri - https://js.arcgis.com/6.0/LICENSE.txt */
|
|
2
|
+
import e from"../../../../../core/PooledArray.js";import{fromMat4 as t,transpose as n}from"../../../../../core/libs/gl-matrix-2/math/mat3.js";import{create as r}from"../../../../../core/libs/gl-matrix-2/factories/mat3f64.js";import{subtract as i,dot as a,scaleAndAdd as o,set as s,length as c,scale as l,transformMat4 as u,transformMat3 as d,cross as f,squaredLength as p,normalize as m,copy as h}from"../../../../../core/libs/gl-matrix-2/math/vec3.js";import{create as g}from"../../../../../core/libs/gl-matrix-2/factories/vec3f64.js";import{fromValues as _,create as v}from"../../../../../geometry/support/aaBoundingBox.js";import{fromValues as y,clipSlab as b,create as x,getStart as S}from"../../../../../geometry/support/clipRay.js";import{intersectsTransformedAabb as C}from"../../../../../geometry/support/frustumPlanes.js";import{clipClosedNegativeHalfspace as w}from"../../../../../geometry/support/plane.js";import{wrap as T}from"../../../../../geometry/support/ray.js";import{Sphere as E}from"../../../../../geometry/support/sphere.js";import{intersectConvexPolygonWithScreenPolygon as D}from"../../lib/screenPolygonTriangleIntersections.js";function O(e,t,n,r,c,l){y(c,0,1/0,W);for(let r of[0,1,2])if(!b(r,Math.min(e[r],t[r])-n,Math.max(e[r],t[r])+n,W))return null;if(!w(r.frustum[4],W)||!w(r.frustum[5],W))return null;let u=M(e,t,r,L,R,l);if(u===0)return null;i(B,c.origin,e);let d=a(B,l),f=a(c.direction,l),p=P(c.direction,l);if(Math.abs(f)>p){let e=-d/f;return e<W.c0||e>W.c1?null:(o(B,B,c.direction,e),I(a(B,L),a(B,R),u,n*n)?e:null)}if(Math.abs(d)>P(B,l))return null;let m=a(B,L),h=a(B,R),g=a(c.direction,L),_=a(c.direction,R);return s(W.ray.origin,m,h,0),s(W.ray.direction,g,_,0),!b(0,-n,u+n,W)||!b(1,-n,n,W)?null:k(W,u,n)}function k(e,t,n){let r=S(e,B);if(I(r[0],r[1],t,n*n))return e.c0;s(G.center,r[0]<0?0:t,0,0),G.radius=n;let i=e.ray.direction;if(!G.intersectRay(T(r,i),K))return null;let a=Math.abs(i[0])>Math.abs(i[1])?0:1,o=e.c0+(K[a]-r[a])/i[a];return o<=e.c1?o:null}function A(e,t,n,r,i){let a=N(e,t,n,q);if(!C(i.broadPhaseFrustum,a,null)||M(e,t,r,L,R,z)===0)return!1;let[s,c,l,u]=Y;return F(s,e,L,R,-n,-n),F(c,t,L,R,n,-n),F(l,t,L,R,n,n),F(u,e,L,R,-n,n),D(i,Y,r,Z)?(o(s,e,R,-n),o(c,t,R,-n),o(l,t,R,n),o(u,e,R,n),D(i,Y,r,Z)?!0:j(e,-n,L,R,r,i)||j(t,n,L,R,r,i)):!1}function j(e,t,n,r,i,a){let o=Math.abs(t);if(!C(a.broadPhaseFrustum,N(e,e,o,q),null))return!1;X.length=0,h(X.pushNew(),e),F(X.pushNew(),e,n,r,0,o);for(let[i,a]of J)F(X.pushNew(),e,n,r,i*t,a*o);return D(a,X,i,Z)}function M(e,r,a,o,h,g){i(o,r,e);let _=c(o);if(_===0)return 0;l(o,o,1/_);let v=a.viewMatrix;u(V,e,v),t(H,v),d(U,o,H);let y=a.projectionMatrix,b=y[11]*V[2]+y[15],x=y[11]*U[2],S=y[0]*(U[0]*b-V[0]*x),C=y[5]*(U[1]*b-V[1]*x),w=a.fullViewport,T=C*w[3]/(y[0]*w[2]),E=-S*w[2]/(y[5]*w[3]),D=Math.hypot(T,E);if(D===0)return 0;let O=T/D,k=E/D;return s(h,O,k,0),n(H,H),d(h,h,H),f(g,o,h),p(g)===0?0:(m(g,g),f(h,g,o),_)}function N(e,t,n,r){return _(Math.min(e[0],t[0])-n,Math.min(e[1],t[1])-n,Math.min(e[2],t[2])-n,Math.max(e[0],t[0])+n,Math.max(e[1],t[1])+n,Math.max(e[2],t[2])+n,r)}function P(e,t){return 16*2**-52*(Math.abs(e[0]*t[0])+Math.abs(e[1]*t[1])+Math.abs(e[2]*t[2]))}function F(e,t,n,r,i,a){o(e,t,n,i),o(e,e,r,a)}function I(e,t,n,r){let i=e<0?e:e>n?e-n:0;return i*i+t*t<=r}const L=g(),R=g(),z=g(),B=g(),V=g(),H=r(),U=g(),W=x(),G=new E,K=g(),q=v(),J=Array.from({length:3},(e,t)=>{let n=(t+1)*Math.PI/3;return t===2?[0,-1]:[Math.sin(n),Math.cos(n)]}),Y=[g(),g(),g(),g()],X=new e({allocator:e=>e??g()}),Z=new e({allocator:e=>e??g()});export{O as intersectRayWithWorldSizedLineSegment,A as intersectScreenPolygonWithWorldSizedLineSegment};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/6.0/LICENSE.txt */
|
|
2
|
-
import"../core/shaderLibrary/Offset.glsl.js";import"../core/shaderLibrary/ShaderOutput.js";import"../core/shaderLibrary/Slice.glsl.js";import"../core/shaderLibrary/Transform.glsl.js";import"../core/shaderLibrary/attributes/InstancedDoublePrecision.glsl.js";import"../core/shaderLibrary/attributes/NormalAttribute.glsl.js";import"../core/shaderLibrary/attributes/TextureCoordinateAttribute.glsl.js";import"../core/shaderLibrary/attributes/VertexNormal.glsl.js";import"../core/shaderLibrary/attributes/VerticalOffset.glsl.js";import"../core/shaderLibrary/default/DefaultMaterialAuxiliaryPasses.glsl.js";import"../core/shaderLibrary/default/DefaultMaterialExternalColor.glsl.js";import"../core/shaderLibrary/shading/ComputeNormalTexture.glsl.js";import"../core/shaderLibrary/shading/EvaluateAmbientOcclusion.glsl.js";import"../core/shaderLibrary/shading/EvaluateSceneLighting.glsl.js";import"../core/shaderLibrary/shading/lightingUniforms.js";import"../core/shaderLibrary/shading/Normals.glsl.js";import"../core/shaderLibrary/shading/NormalUtils.glsl.js";import"../core/shaderLibrary/shading/PhysicallyBasedRendering.glsl.js";import"../core/shaderLibrary/shading/PhysicallyBasedRenderingParameters.glsl.js";import"../core/shaderLibrary/shading/readShadow.glsl.js";import"../core/shaderLibrary/shading/TextureTransformUV.glsl.js";import"../core/shaderLibrary/shading/VisualVariables.glsl.js";import"../core/shaderLibrary/util/DiscardOrAdjustAlpha.glsl.js";import"../core/shaderLibrary/util/View.glsl.js";import"../core/shaderModules/Float3PassUniform.js";import"../core/shaderModules/glsl.js";import"../core/shaderModules/Texture2DPassUniform.js";import"../effects/snowcover/
|
|
2
|
+
import"../core/shaderLibrary/Offset.glsl.js";import"../core/shaderLibrary/ShaderOutput.js";import"../core/shaderLibrary/Slice.glsl.js";import"../core/shaderLibrary/Transform.glsl.js";import"../core/shaderLibrary/attributes/InstancedDoublePrecision.glsl.js";import"../core/shaderLibrary/attributes/NormalAttribute.glsl.js";import"../core/shaderLibrary/attributes/TextureCoordinateAttribute.glsl.js";import"../core/shaderLibrary/attributes/VertexNormal.glsl.js";import"../core/shaderLibrary/attributes/VerticalOffset.glsl.js";import"../core/shaderLibrary/default/DefaultMaterialAuxiliaryPasses.glsl.js";import"../core/shaderLibrary/default/DefaultMaterialExternalColor.glsl.js";import"../core/shaderLibrary/shading/ComputeNormalTexture.glsl.js";import"../core/shaderLibrary/shading/EvaluateAmbientOcclusion.glsl.js";import"../core/shaderLibrary/shading/EvaluateSceneLighting.glsl.js";import"../core/shaderLibrary/shading/lightingUniforms.js";import"../core/shaderLibrary/shading/Normals.glsl.js";import"../core/shaderLibrary/shading/NormalUtils.glsl.js";import"../core/shaderLibrary/shading/PhysicallyBasedRendering.glsl.js";import"../core/shaderLibrary/shading/PhysicallyBasedRenderingParameters.glsl.js";import"../core/shaderLibrary/shading/readShadow.glsl.js";import"../core/shaderLibrary/shading/TextureTransformUV.glsl.js";import"../core/shaderLibrary/shading/VisualVariables.glsl.js";import"../core/shaderLibrary/util/DiscardOrAdjustAlpha.glsl.js";import"../core/shaderLibrary/util/View.glsl.js";import"../core/shaderModules/Float3PassUniform.js";import"../core/shaderModules/glsl.js";import"../core/shaderModules/Texture2DPassUniform.js";import"../effects/snowcover/applySnow.glsl.js";import"./OutputColorHighlightOLID.glsl.js";import"../../../webgl/ShaderBuilder.js";export{b as build}from"../../../../chunks/DefaultMaterial.glsl.js";
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/6.0/LICENSE.txt */
|
|
2
|
-
import"../core/shaderLibrary/Offset.glsl.js";import"../core/shaderLibrary/ShaderOutput.js";import"../core/shaderLibrary/Slice.glsl.js";import"../core/shaderLibrary/Transform.glsl.js";import"../core/shaderLibrary/attributes/InstancedDoublePrecision.glsl.js";import"../core/shaderLibrary/attributes/NormalAttribute.glsl.js";import"../core/shaderLibrary/attributes/TextureCoordinateAttribute.glsl.js";import"../core/shaderLibrary/attributes/VerticalOffset.glsl.js";import"../core/shaderLibrary/default/DefaultMaterialAuxiliaryPasses.glsl.js";import"../core/shaderLibrary/default/DefaultMaterialExternalColor.glsl.js";import"../core/shaderLibrary/shading/EvaluateAmbientOcclusion.glsl.js";import"../core/shaderLibrary/shading/EvaluateSceneLighting.glsl.js";import"../core/shaderLibrary/shading/lightingUniforms.js";import"../core/shaderLibrary/shading/NormalUtils.glsl.js";import"../core/shaderLibrary/shading/PhysicallyBasedRendering.glsl.js";import"../core/shaderLibrary/shading/PhysicallyBasedRenderingParameters.glsl.js";import"../core/shaderLibrary/shading/readShadow.glsl.js";import"../core/shaderLibrary/shading/TextureTransformUV.glsl.js";import"../core/shaderLibrary/shading/VisualVariables.glsl.js";import"../core/shaderLibrary/util/DiscardOrAdjustAlpha.glsl.js";import"../core/shaderLibrary/util/View.glsl.js";import"../core/shaderModules/Float3PassUniform.js";import"../core/shaderModules/glsl.js";import"../core/shaderModules/Texture2DPassUniform.js";import"../effects/snowcover/
|
|
2
|
+
import"../core/shaderLibrary/Offset.glsl.js";import"../core/shaderLibrary/ShaderOutput.js";import"../core/shaderLibrary/Slice.glsl.js";import"../core/shaderLibrary/Transform.glsl.js";import"../core/shaderLibrary/attributes/InstancedDoublePrecision.glsl.js";import"../core/shaderLibrary/attributes/NormalAttribute.glsl.js";import"../core/shaderLibrary/attributes/TextureCoordinateAttribute.glsl.js";import"../core/shaderLibrary/attributes/VerticalOffset.glsl.js";import"../core/shaderLibrary/default/DefaultMaterialAuxiliaryPasses.glsl.js";import"../core/shaderLibrary/default/DefaultMaterialExternalColor.glsl.js";import"../core/shaderLibrary/shading/EvaluateAmbientOcclusion.glsl.js";import"../core/shaderLibrary/shading/EvaluateSceneLighting.glsl.js";import"../core/shaderLibrary/shading/lightingUniforms.js";import"../core/shaderLibrary/shading/NormalUtils.glsl.js";import"../core/shaderLibrary/shading/PhysicallyBasedRendering.glsl.js";import"../core/shaderLibrary/shading/PhysicallyBasedRenderingParameters.glsl.js";import"../core/shaderLibrary/shading/readShadow.glsl.js";import"../core/shaderLibrary/shading/TextureTransformUV.glsl.js";import"../core/shaderLibrary/shading/VisualVariables.glsl.js";import"../core/shaderLibrary/util/DiscardOrAdjustAlpha.glsl.js";import"../core/shaderLibrary/util/View.glsl.js";import"../core/shaderModules/Float3PassUniform.js";import"../core/shaderModules/glsl.js";import"../core/shaderModules/Texture2DPassUniform.js";import"../effects/snowcover/applySnow.glsl.js";import"./OutputColorHighlightOLID.glsl.js";import"../../../webgl/ShaderBuilder.js";export{b as build}from"../../../../chunks/RealisticTree.glsl.js";
|
package/views/DOMContainer.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/6.0/LICENSE.txt */
|
|
2
|
-
import{__decorate as e}from"tslib";import{byId as t,reparent as n}from"../core/domUtils.js";import{on as r}from"../core/events.js";import{makeHandle as i}from"../core/handleUtils.js";import a from"../core/Logger.js";import{destroyMaybe as o,removeMaybe as s}from"../core/maybe.js";import{watch as c,initial as l,syncAndInitial as u}from"../core/reactiveUtils.js";import{addFrameTask as d}from"../core/scheduling.js";import{property as f,subclass as p}from"../core/accessorSupport/decorators.js";import{Attribution as m}from"./Attribution.js";import h from"./overlay/FocusRegionOverlayItem.js";import g from"./overlay/ViewOverlay.js";const _=[0,0];function v(e){let t=(e.ownerDocument||window.document).defaultView,n=e.getBoundingClientRect();return _[0]=n.left+(t?.pageXOffset??0),_[1]=n.top+(t?.pageYOffset??0),_}function y(e){e&&(e.textContent=``,e.parentNode&&e.parentNode.removeChild(e))}const b=process.env.NODE_ENV===`test`,x=b?0:16,S=b?0:750,C=b?0:512,w={left:0,top:0,right:0,bottom:0},T={toggle:`KeyO`,resizeLarger:`ArrowUp`,resizeSmaller:`ArrowDown`,select:new Set([`Enter`,`Space`])},E=_=>{let b=_,E=class extends b{constructor(...e){super(...e),this._freqInfo={freq:x,time:S},this._overlayRenderTaskHandle=null,this._focusRegionOverlayItem=new h,this.aria={},this.attributionMode=null,this.height=0,this.focusRegionVisible=!1,this.focusRegionShortcutEnabled=!1,this.messagesCommon=null,this.overlay=null,this.position=null,this.resizing=!1,this.root=null,this.surface=null,this.suspended=!0,this.userContent=null,this.width=0,this.widthBreakpoint=null,this.addHandles([c(()=>[this.focusRegionVisible,this.overlay,this.ready],()=>this._syncFocusRegionOverlayItemVisibility(this.focusRegionVisible&&this.ready),{initial:!0}),c(()=>this.cursor,e=>{let{surface:t}=this;t&&t.setAttribute(`data-cursor`,e)}),c(()=>this.navigating,e=>{let{surface:t}=this;t&&t.setAttribute(`data-navigating`,e.toString())}),c(()=>[this.aria,this.surface],()=>this._updateAria(),{initial:!0}),c(()=>{let{left:e,top:t,right:n,bottom:r}=this.padding??w;return[this.width,this.height,e,t,n,r]},([e,t,n,r,i,a])=>{let{_focusRegionOverlayItem:o}=this;o.backgroundHeight=t,o.backgroundWidth=e,o.padding={left:n,top:r,right:i,bottom:a},o.updateBoxSize()})])}initialize(){let e=this;this.addHandles([c(()=>this.ui,(e,t)=>this._handleUIChange(e,t),l),e.on(`focus`,()=>this.notifyChange(`focused`)),e.on(`blur`,()=>this.notifyChange(`focused`)),e.on(`key-down`,t=>{let{shiftKey:n,altKey:r,code:i,defaultPrevented:a}=t.native,{toggle:o,resizeLarger:s,resizeSmaller:c,select:l}=T,u=this.focusRegionVisible&&n&&r&&(i===s||i===c);if(!t.repeat||u){if(!a&&n&&r&&i===o&&this.focusRegionShortcutEnabled)this._toggleFocusRegion(),t.preventDefault();else if(!a&&u){let{_focusRegionOverlayItem:e}=this;e.resizeBoxSize(i===s?50:-50),t.preventDefault(),t.native.stopPropagation(),t.stopPropagation()}else!a&&this.focusRegionVisible&&l.has(i)&&this._selectFocusRegion(t,e)}})])}destroy(){this.destroyed||(this.focusRegionVisible=!1,this._syncFocusRegionOverlayItemVisibility(!1),this.ui?.destroy(),this.container=null)}get attributionHeight(){return this._attribution?.height??0}get container(){return this._get(`container`)??null}set container(e){let r=this._get(`container`),i=t(e);if(!i&&typeof e==`string`&&a.getLogger(this).error(`#container`,`element with id '${e}' not found`),r===i)return;if(this._stopMeasuring(),this.removeHandles(`container`),r&&(r.classList.remove(`esri-view`),this._overlayRenderTaskHandle&&=(this._overlayRenderTaskHandle.remove(),null),this.overlay&&(this.overlay.destroy(),this._set(`overlay`,null)),this._attribution=o(this._attribution),this.root&&(y(this.root),this._set(`root`,null)),this.userContent&&(n(this.userContent,r),y(this.userContent),this._set(`userContent`,null))),!i){this._set(`width`,0),this._set(`height`,0),this._set(`position`,null),this._set(`suspended`,!0),this._set(`surface`,null),this._set(`container`,null);return}i.classList.add(`esri-view`);let f=document.createElement(`div`);f.className=`esri-view-user-storage`,n(i,f),i.appendChild(f),this._set(`userContent`,f);let p=document.createElement(`div`);p.className=`esri-view-root`,i.insertBefore(p,i.firstChild),this._set(`root`,p);let h=document.createElement(`div`);h.className=`esri-view-surface`,h.setAttribute(`role`,`application`),h.tabIndex=0,p.appendChild(h),this._set(`surface`,h);let _=new g;p.appendChild(_.surface),this._set(`overlay`,_),this._syncFocusRegionOverlayItemVisibility(!1),this.addHandles(c(()=>_.needsRender,e=>{this._overlayRenderTaskHandle=e&&!this._overlayRenderTaskHandle?d({render:()=>this.overlay?.render()}):s(this._overlayRenderTaskHandle)},l),`container`),this.addHandles([c(()=>({visible:this.attributionVisible,items:this.attributionItems,mode:this.attributionMode}),({visible:e,items:t,mode:n})=>{e?(this._attribution||=new m({attributionItems:this.attributionItems,mode:this.attributionMode}),this._attribution.appendBefore(p,this.ui?.container??null),this._attribution.attributionItems=t,this._attribution.mode=n):this._attribution=o(this._attribution)},u)],`container`),this.forceDOMReadyCycle(),this._set(`container`,i),this._startMeasuring()}get focused(){let e=document.activeElement===this.surface;return document.hasFocus()&&e}get focusRegion(){return this.focusRegionVisible?this._focusRegionOverlayItem.getScreenRect():null}get size(){return[this.width,this.height]}get ui(){return this._get(`ui`)}set ui(e){let t=this._get(`ui`);t!==e&&t?.destroy(),this._set(`ui`,e)}blur(){this.surface?.blur()}focus(){this.surface?.focus()}pageToContainer(e,t,n){let r=this.position;return e-=r?r[0]:0,t-=r?r[1]:0,n?(n[0]=e,n[1]=t):n=[e,t],n}containerToPage(e,t,n){let r=this.position;return e+=r?r[0]:0,t+=r?r[1]:0,n?(n[0]=e,n[1]=t):n=[e,t],n}_updateAria(){let{surface:e,aria:t}=this;e&&(e.ariaLabelledByElements=t?.labelledByElements??null,e.ariaDescribedByElements=t?.describedByElements??null,e.ariaLabel=t?.label??null,e.ariaDescription=t?.description??null)}_selectFocusRegion(e,t){let n=this._makeFocusRegionSelectEvent(e);t.emit(`focus-region-select`,n),e.preventDefault()}_makeFocusRegionSelectEvent(e){let t={type:`focus-region-select`,native:e.native,defaultPrevented:!1,preventDefault:()=>{t.defaultPrevented=!0},stopPropagation:()=>{e.stopPropagation()}};return t}_toggleFocusRegion(){this.focusRegionVisible=!this.focusRegionVisible}_updateFocusRegionOverlayItem(){let{_focusRegionOverlayItem:e}=this;e.backgroundHeight=this.height,e.backgroundWidth=this.width,e.padding=this.padding??w,e.updateBoxSize()}_syncFocusRegionOverlayItemVisibility(e){let{_focusRegionOverlayItem:t,overlay:n}=this,r=e;t.visible=r,n&&(n.removeItem(t),r&&(this._updateFocusRegionOverlayItem(),n.addItem(t)))}_handleUIChange(e,t){this.removeHandles(`ui`),t&&t!==e&&t.destroy(),e&&(e.view=this,this.addHandles(c(()=>this.root,t=>{if(!t)e.container=null;else{let n=document.createElement(`div`);t.insertBefore(n,this._attribution?.surface??null),e.container=n}},l),`ui`)),this._set(`ui`,e)}_stopMeasuring(){this.removeHandles(`measuring`),this._get(`resizing`)&&this._set(`resizing`,!1)}_startMeasuring(){let e=this._freqInfo;e.freq=x,e.time=S;let t=d({prepare:e=>{let n=this._measure(),r=this._freqInfo;r.time+=e.deltaTime,n&&(r.freq=x,this._get(`resizing`)||this._set(`resizing`,!0))
|
|
2
|
+
import{__decorate as e}from"tslib";import{byId as t,reparent as n}from"../core/domUtils.js";import{on as r}from"../core/events.js";import{makeHandle as i}from"../core/handleUtils.js";import a from"../core/Logger.js";import{destroyMaybe as o,removeMaybe as s}from"../core/maybe.js";import{watch as c,initial as l,syncAndInitial as u}from"../core/reactiveUtils.js";import{addFrameTask as d}from"../core/scheduling.js";import{property as f,subclass as p}from"../core/accessorSupport/decorators.js";import{Attribution as m}from"./Attribution.js";import h from"./overlay/FocusRegionOverlayItem.js";import g from"./overlay/ViewOverlay.js";const _=[0,0];function v(e){let t=(e.ownerDocument||window.document).defaultView,n=e.getBoundingClientRect();return _[0]=n.left+(t?.pageXOffset??0),_[1]=n.top+(t?.pageYOffset??0),_}function y(e){e&&(e.textContent=``,e.parentNode&&e.parentNode.removeChild(e))}const b=process.env.NODE_ENV===`test`,x=b?0:16,S=b?0:750,C=b?0:512,w={left:0,top:0,right:0,bottom:0},T={toggle:`KeyO`,resizeLarger:`ArrowUp`,resizeSmaller:`ArrowDown`,select:new Set([`Enter`,`Space`])},E=_=>{let b=_,E=class extends b{constructor(...e){super(...e),this._freqInfo={freq:x,time:S},this._overlayRenderTaskHandle=null,this._focusRegionOverlayItem=new h,this.aria={},this.attributionMode=null,this.height=0,this.focusRegionVisible=!1,this.focusRegionShortcutEnabled=!1,this.messagesCommon=null,this.overlay=null,this.position=null,this.resizing=!1,this.root=null,this.surface=null,this.suspended=!0,this.userContent=null,this.width=0,this.widthBreakpoint=null,this.addHandles([c(()=>[this.focusRegionVisible,this.overlay,this.ready],()=>this._syncFocusRegionOverlayItemVisibility(this.focusRegionVisible&&this.ready),{initial:!0}),c(()=>this.cursor,e=>{let{surface:t}=this;t&&t.setAttribute(`data-cursor`,e)}),c(()=>this.navigating,e=>{let{surface:t}=this;t&&t.setAttribute(`data-navigating`,e.toString())}),c(()=>[this.aria,this.surface],()=>this._updateAria(),{initial:!0}),c(()=>{let{left:e,top:t,right:n,bottom:r}=this.padding??w;return[this.width,this.height,e,t,n,r]},([e,t,n,r,i,a])=>{let{_focusRegionOverlayItem:o}=this;o.backgroundHeight=t,o.backgroundWidth=e,o.padding={left:n,top:r,right:i,bottom:a},o.updateBoxSize()})])}initialize(){let e=this;this.addHandles([c(()=>this.ui,(e,t)=>this._handleUIChange(e,t),l),e.on(`focus`,()=>this.notifyChange(`focused`)),e.on(`blur`,()=>this.notifyChange(`focused`)),e.on(`key-down`,t=>{let{shiftKey:n,altKey:r,code:i,defaultPrevented:a}=t.native,{toggle:o,resizeLarger:s,resizeSmaller:c,select:l}=T,u=this.focusRegionVisible&&n&&r&&(i===s||i===c);if(!t.repeat||u){if(!a&&n&&r&&i===o&&this.focusRegionShortcutEnabled)this._toggleFocusRegion(),t.preventDefault();else if(!a&&u){let{_focusRegionOverlayItem:e}=this;e.resizeBoxSize(i===s?50:-50),t.preventDefault(),t.native.stopPropagation(),t.stopPropagation()}else!a&&this.focusRegionVisible&&l.has(i)&&this._selectFocusRegion(t,e)}})])}destroy(){this.destroyed||(this.focusRegionVisible=!1,this._syncFocusRegionOverlayItemVisibility(!1),this.ui?.destroy(),this.container=null)}get attributionHeight(){return this._attribution?.height??0}get container(){return this._get(`container`)??null}set container(e){let r=this._get(`container`),i=t(e);if(!i&&typeof e==`string`&&a.getLogger(this).error(`#container`,`element with id '${e}' not found`),r===i)return;if(this._stopMeasuring(),this.removeHandles(`container`),r&&(r.classList.remove(`esri-view`),this._overlayRenderTaskHandle&&=(this._overlayRenderTaskHandle.remove(),null),this.overlay&&(this.overlay.destroy(),this._set(`overlay`,null)),this._attribution=o(this._attribution),this.root&&(y(this.root),this._set(`root`,null)),this.userContent&&(n(this.userContent,r),y(this.userContent),this._set(`userContent`,null))),!i){this._set(`width`,0),this._set(`height`,0),this._set(`position`,null),this._set(`suspended`,!0),this._set(`surface`,null),this._set(`container`,null);return}i.classList.add(`esri-view`);let f=document.createElement(`div`);f.className=`esri-view-user-storage`,n(i,f),i.appendChild(f),this._set(`userContent`,f);let p=document.createElement(`div`);p.className=`esri-view-root`,i.insertBefore(p,i.firstChild),this._set(`root`,p);let h=document.createElement(`div`);h.className=`esri-view-surface`,h.setAttribute(`role`,`application`),h.tabIndex=0,p.appendChild(h),this._set(`surface`,h);let _=new g;p.appendChild(_.surface),this._set(`overlay`,_),this._syncFocusRegionOverlayItemVisibility(!1),this.addHandles(c(()=>_.needsRender,e=>{this._overlayRenderTaskHandle=e&&!this._overlayRenderTaskHandle?d({render:()=>this.overlay?.render()}):s(this._overlayRenderTaskHandle)},l),`container`),this.addHandles([c(()=>({visible:this.attributionVisible,items:this.attributionItems,mode:this.attributionMode}),({visible:e,items:t,mode:n})=>{e?(this._attribution||=new m({attributionItems:this.attributionItems,mode:this.attributionMode}),this._attribution.appendBefore(p,this.ui?.container??null),this._attribution.attributionItems=t,this._attribution.mode=n):this._attribution=o(this._attribution)},u)],`container`),this.forceDOMReadyCycle(),this._set(`container`,i),this._startMeasuring()}get focused(){let e=document.activeElement===this.surface;return document.hasFocus()&&e}get focusRegion(){return this.focusRegionVisible?this._focusRegionOverlayItem.getScreenRect():null}get size(){return[this.width,this.height]}get ui(){return this._get(`ui`)}set ui(e){let t=this._get(`ui`);t!==e&&t?.destroy(),this._set(`ui`,e)}blur(){this.surface?.blur()}focus(){this.surface?.focus()}pageToContainer(e,t,n){let r=this.position;return e-=r?r[0]:0,t-=r?r[1]:0,n?(n[0]=e,n[1]=t):n=[e,t],n}containerToPage(e,t,n){let r=this.position;return e+=r?r[0]:0,t+=r?r[1]:0,n?(n[0]=e,n[1]=t):n=[e,t],n}_updateAria(){let{surface:e,aria:t}=this;e&&(e.ariaLabelledByElements=t?.labelledByElements??null,e.ariaDescribedByElements=t?.describedByElements??null,e.ariaLabel=t?.label??null,e.ariaDescription=t?.description??null)}_selectFocusRegion(e,t){let n=this._makeFocusRegionSelectEvent(e);t.emit(`focus-region-select`,n),e.preventDefault()}_makeFocusRegionSelectEvent(e){let t={type:`focus-region-select`,native:e.native,defaultPrevented:!1,preventDefault:()=>{t.defaultPrevented=!0},stopPropagation:()=>{e.stopPropagation()}};return t}_toggleFocusRegion(){this.focusRegionVisible=!this.focusRegionVisible}_updateFocusRegionOverlayItem(){let{_focusRegionOverlayItem:e}=this;e.backgroundHeight=this.height,e.backgroundWidth=this.width,e.padding=this.padding??w,e.updateBoxSize()}_syncFocusRegionOverlayItemVisibility(e){let{_focusRegionOverlayItem:t,overlay:n}=this,r=e;t.visible=r,n&&(n.removeItem(t),r&&(this._updateFocusRegionOverlayItem(),n.addItem(t)))}_handleUIChange(e,t){this.removeHandles(`ui`),t&&t!==e&&t.destroy(),e&&(e.view=this,this.addHandles(c(()=>this.root,t=>{if(!t)e.container=null;else{let n=document.createElement(`div`);t.insertBefore(n,this._attribution?.surface??null),e.container=n}},l),`ui`)),this._set(`ui`,e)}_stopMeasuring(){this.removeHandles(`measuring`),this._get(`resizing`)&&this._set(`resizing`,!1)}_startMeasuring(){let e=this._freqInfo;e.freq=x,e.time=S;let t=d({prepare:e=>{let n=this._measure(),r=this._freqInfo;r.time+=e.deltaTime,n&&(r.freq=x,this._get(`resizing`)||this._set(`resizing`,!0)),r.time<r.freq||(r.time=0,r.freq=this._position()||n?x:Math.min(S,r.freq*2),!n&&r.freq>=C&&(t.pause(),this._get(`resizing`)&&this._set(`resizing`,!1)))}}),n=new ResizeObserver(n=>{e.freq=x,e.time=S,t.resume()});this.container!=null&&n.observe(this.container);let a=i(()=>n.disconnect());this.addHandles([r(window,`resize`,()=>{e.freq=x,e.time=S,t.resume()}),a,t],`measuring`),this._measure(),this._position()}_measure(){let e=this.container,t=e?e.clientWidth:0,n=e?e.clientHeight:0;if(t===0||n===0)return this.suspended||this._set(`suspended`,!0),!1;let r=this.width,i=this.height;return t===r&&n===i?(this.suspended&&this._set(`suspended`,!1),!1):(this._set(`width`,t),this._set(`height`,n),this.suspended&&this._set(`suspended`,!1),this.emit(`resize`,{oldWidth:r,oldHeight:i,width:t,height:n}),!0)}_position(){let e=this.container,t=this.position,n=e&&v(e);return n&&(!t||n[0]!==t[0]||n[1]!==t[1])?(this._set(`position`,[n[0],n[1]]),!0):!1}forceDOMReadyCycle(){}};return e([f()],E.prototype,`_attribution`,void 0),e([f()],E.prototype,`aria`,void 0),e([f()],E.prototype,`attributionHeight`,null),e([f()],E.prototype,`attributionMode`,void 0),e([f()],E.prototype,`container`,null),e([f({readOnly:!0})],E.prototype,`focused`,null),e([f({readOnly:!0})],E.prototype,`height`,void 0),e([f()],E.prototype,`focusRegionVisible`,void 0),e([f()],E.prototype,`focusRegionShortcutEnabled`,void 0),e([f()],E.prototype,`focusRegion`,null),e([f()],E.prototype,`messagesCommon`,void 0),e([f({type:g})],E.prototype,`overlay`,void 0),e([f({readOnly:!0})],E.prototype,`position`,void 0),e([f({readOnly:!0})],E.prototype,`resizing`,void 0),e([f({readOnly:!0})],E.prototype,`root`,void 0),e([f({value:null,readOnly:!0})],E.prototype,`size`,null),e([f({readOnly:!0})],E.prototype,`surface`,void 0),e([f({readOnly:!0})],E.prototype,`suspended`,void 0),e([f({nonNullable:!0})],E.prototype,`ui`,null),e([f({readOnly:!0})],E.prototype,`userContent`,void 0),e([f({readOnly:!0})],E.prototype,`width`,void 0),e([f()],E.prototype,`widthBreakpoint`,void 0),E=e([p(`esri.views.DOMContainer`)],E),E};export{E as DOMContainer};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/6.0/LICENSE.txt */
|
|
2
|
-
import{__decorate as e}from"tslib";import{property as t,subclass as n}from"../../core/accessorSupport/decorators.js";import r from"../../geometry/Point.js";import i from"./CursorUpdateEvent.js";import a from"./DrawAction.js";import o from"./DrawCompleteEvent.js";import s from"./VertexAddEvent.js";import{createViewAlignedCoordinateSystem as c}from"./support/surfaceCoordinateSystems.js";import{ViewEventPriorities as l}from"../input/InputManager.js";import{sketchKeys as u}from"../interactive/keybindings.js";import{EditGeometry as d,Part as f}from"../interactive/editGeometry/EditGeometry.js";import{EditGeometryOperations as p}from"../interactive/editGeometry/EditGeometryOperations.js";import{createScreenPointFromEvent as m}from"../support/screenUtils.js";const h=[`freehand`,`click`];let g=class extends a{constructor(e){super(e),this._isDragging=!1,this._panEnabled=!1,this._addVertexOnPointerUp=!1,this._drawTool=null,this.viewAlignedCoordinateSystem=null,this.mode=`freehand`}initialize(){this.view.type===`2d`?this._addViewHandles():this.addResolvingPromise(this._addDrawTool())}destroy(){this._removeDrawTool(),this.emit(`destroy`)}complete(){this._completeDrawing()}_getGeometryZValue(){return this.hasZ&&this.vertices.length>0?this.vertices[0][2]:this.defaultZ}_addViewHandles(){this.mode===`click`?this.addHandles(this._getClickModeViewHandles()):this.addHandles(this._getDragModeViewHandles())}_getDragModeViewHandles(){return[this.view.on(`immediate-click`,e=>{e.stopPropagation(),e.mapPoint&&!this._panEnabled&&this.getCoordsFromScreenPoint(m(e))!=null&&(this._vertexAddHandler(e),this._drawCompleteHandler(e))},l.TOOL),this.view.on(`pointer-down`,e=>{this._shouldHandlePointerEvent(e)&&(this._abortSnapping()
|
|
2
|
+
import{__decorate as e}from"tslib";import{property as t,subclass as n}from"../../core/accessorSupport/decorators.js";import r from"../../geometry/Point.js";import i from"./CursorUpdateEvent.js";import a from"./DrawAction.js";import o from"./DrawCompleteEvent.js";import s from"./VertexAddEvent.js";import{createViewAlignedCoordinateSystem as c}from"./support/surfaceCoordinateSystems.js";import{ViewEventPriorities as l}from"../input/InputManager.js";import{sketchKeys as u}from"../interactive/keybindings.js";import{EditGeometry as d,Part as f}from"../interactive/editGeometry/EditGeometry.js";import{EditGeometryOperations as p}from"../interactive/editGeometry/EditGeometryOperations.js";import{createScreenPointFromEvent as m}from"../support/screenUtils.js";const h=[`freehand`,`click`];let g=class extends a{constructor(e){super(e),this._isDragging=!1,this._panEnabled=!1,this._addVertexOnPointerUp=!1,this._drawTool=null,this.viewAlignedCoordinateSystem=null,this.mode=`freehand`}initialize(){this.view.type===`2d`?this._addViewHandles():this.addResolvingPromise(this._addDrawTool())}destroy(){this._removeDrawTool(),this.emit(`destroy`)}complete(){this._completeDrawing()}_getGeometryZValue(){return this.hasZ&&this.vertices.length>0?this.vertices[0][2]:this.defaultZ}_addViewHandles(){this.mode===`click`?this.addHandles(this._getClickModeViewHandles()):this.addHandles(this._getDragModeViewHandles())}_getDragModeViewHandles(){return[this.view.on(`immediate-click`,e=>{e.stopPropagation(),e.mapPoint&&!this._panEnabled&&this.getCoordsFromScreenPoint(m(e))!=null&&(this._vertexAddHandler(e),this._drawCompleteHandler(e))},l.TOOL),this.view.on(`pointer-down`,e=>{this._shouldHandlePointerEvent(e)&&(this._abortSnapping(),this._panEnabled||(this._resetGeometry(),this._addVertexOnPointerUp=!0,this._cursorScreenPoint=m(e),this._activePointerId=e.pointerId,this._vertexAddHandler(e),this._isDragging=!1,e.pointerType===`touch`&&this._updateCursor()))},l.TOOL),this.view.on(`pointer-move`,e=>{this._abortSnapping(),this._activePointerId==null&&e.pointerType!==`touch`&&(this._cursorScreenPoint=m(e),this._updateCursor())},l.TOOL),this.view.on(`pointer-drag`,e=>{this._shouldHandlePointerEvent(e)&&(this._abortSnapping(),this._isDragging=!0,this._cursorScreenPoint=m(e),this._updateCursor())},l.TOOL),this.view.on(`pointer-up`,e=>{this._shouldHandlePointerEvent(e)&&this._addVertexOnPointerUp&&(this._abortSnapping(),this._activePointerId=null,this._isDragging&&this._vertexAddHandler(e),this._committedVertices.length===2&&this._drawCompleteHandler(e),this._isDragging=!1)},l.TOOL),this.view.on(`key-down`,e=>{e.key===u.complete&&this._cursorScreenPoint?(this._abortSnapping(),this._vertexAddHandler(e),this._drawCompleteHandler(e)):e.key===u.pan&&(this._panEnabled=!0)},l.TOOL),this.view.on(`key-up`,e=>{e.key===u.pan&&(this._panEnabled=!1)},l.TOOL),this.view.on(`drag`,e=>{this._activePointerId!=null&&e.stopPropagation()},l.TOOL),this.view.on(`drag`,[`Shift`],e=>{e.stopPropagation()},l.TOOL)]}_getClickModeViewHandles(){return[this.view.on(`pointer-down`,e=>{this._abortSnapping(),this._cursorScreenPoint=m(e),this._activePointerId=e.pointerId,this._isDragging=!1,e.pointerType===`touch`&&this._updateCursor()},l.TOOL),this.view.on(`pointer-move`,e=>{this._abortSnapping(),this._cursorScreenPoint=m(e),this._activePointerId==null&&e.pointerType!==`touch`&&this._updateCursor()},l.TOOL),this.view.on(`pointer-drag`,e=>{this._shouldHandlePointerEvent(e)&&(this._abortSnapping(),this._isDragging=!0)},l.TOOL),this.view.on(`pointer-up`,e=>{this._shouldHandlePointerEvent(e)&&(this._abortSnapping(),this._activePointerId=null,e.stopPropagation(),this._isDragging||this._vertexAddHandler(e),this.vertices.length===2&&!this._isDragging&&this._drawCompleteHandler(e),this._isDragging=!1)},l.TOOL),this.view.on(`key-down`,e=>{e.key===u.vertexAdd&&this._cursorScreenPoint&&(this._vertexAddHandler(e),this.vertices.length===2&&this._drawCompleteHandler(e)),e.key===u.complete&&this._cursorScreenPoint&&this.vertices.length===2&&(this._vertexAddHandler(e),this._drawCompleteHandler(e))},l.TOOL)]}async _addDrawTool(){let{LegacyDrawTool:e}=await import(`./LegacyDrawTool.js`),t=new e({view:this.view,elevationInfo:this.elevationInfo,hasZ:this.hasZ,geometryType:`segment`,mode:this.mode});this.destroyed?t.destroy():(this._drawTool=t,this.view.addAndActivateTool(t),this.addHandles([t.on(`vertex-add`,e=>{e.vertices.length===1&&this.emit(`vertex-add`,new s(this.view,e.vertices[0].vertexIndex,t.getVertexCoords()))}),t.on(`cursor-update`,e=>{e.vertices.length===1&&this.emit(`cursor-update`,new i(this.view,e.vertices[0].vertexIndex,t.getVertexCoords()))}),t.on(`complete`,e=>{this.emit(`draw-complete`,new o(t.getVertexCoords())),this._removeDrawTool()}),this.view.on(`key-down`,e=>{e.key===u.vertexAdd&&!e.repeat&&this.mode===`click`?t.drawOperation.numCommittedVertices>0?t.completeCreateOperation():t.drawOperation.commitStagedVertex():e.key===u.complete&&!e.repeat&&t.completeCreateOperation()},l.TOOL)]))}_removeDrawTool(){this._drawTool&&=(this.view.tools.remove(this._drawTool),null)}_addVertex(e){let t=this._coordinateHelper.arrayToVector(e);if(this._isDuplicateOfLastVertex(t))return;this._lastVertexUnsnapped=this._stagedVertexUnsnapped,this._popCursorVertex(),this._editGeometryOperations.appendVertexToFirstPart(t),this._committedVertices.length===1&&(this.viewAlignedCoordinateSystem=c(this.view,this._committedVertices[0]));let n=this._committedVertices.length-1,r=new s(this.view,n,this.vertices);this.emit(`vertex-add`,r)}_updateCursor(){if(this._popCursorVertex(),!this._cursorScreenPoint)return;let e=this.getCoordsAndPointFromScreenPoint(this._cursorScreenPoint);e!=null&&this._pushCursorVertex(e.vertex,()=>this.emit(`cursor-update`,new i(this.view,this._activeComponent.vertices.length,this.vertices,this._stagedVertex==null?null:new r(this._stagedVertex))))}_completeDrawing(){if(this._drawTool){this._drawTool.completeCreateOperation(),this.removeAllHandles();return}if(this._activePointerId=null,this._popCursorVertex(),this._cursorScreenPoint=null,this._isDragging=!1,this._abortSnapping(),this._snappingManager!=null&&this._snappingManager.doneSnapping(),this.vertices.length<1)return;let e=new o(this.vertices);this.emit(`draw-complete`,e),e.defaultPrevented||this.removeAllHandles()}_resetGeometry(){this._editGeometryOperations.destroy(),this._editGeometryOperations=new p(new d(`polygon`,this._coordinateHelper),2),this._activeComponent=new f(this._coordinateHelper.spatialReference,2),this._editGeometryOperations.data.parts.push(this._activeComponent)}};e([t({type:h})],g.prototype,`mode`,void 0),g=e([n(`esri.views.draw.SegmentDrawAction`)],g);const _=g;export{_ as default};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/6.0/LICENSE.txt */
|
|
2
|
-
import{makeHandle as e}from"../../../core/handleUtils.js";import{nextTick as t}from"../../../core/nextTick.js";import{makeAllLayerSnappingOptions as n,makePointPlacementSnappingOptions as r}from"./allLayerSnapping.js";import{SnappingManager as i}from"./SnappingManager.js";const a=new Map,o=new Map;function s(e){return l(e,a,r)}function c(e){return l(e,o,n)}function l(t,n,r){if(!n.has(t)){let e=r(t),a=new i({view:t,options:e.options});n.set(t,{referenceCount:0,snappingManager:a,remove:()=>{e.remove(),a.destroy()}})}let a=n.get(t);return a.referenceCount++,{snappingManager:a.snappingManager,...e(()=>u(t,n,a))}}function u(e,n,r){r.referenceCount
|
|
2
|
+
import{makeHandle as e}from"../../../core/handleUtils.js";import{nextTick as t}from"../../../core/nextTick.js";import{makeAllLayerSnappingOptions as n,makePointPlacementSnappingOptions as r}from"./allLayerSnapping.js";import{SnappingManager as i}from"./SnappingManager.js";const a=new Map,o=new Map;function s(e){return l(e,a,r)}function c(e){return l(e,o,n)}function l(t,n,r){if(!n.has(t)){let e=r(t),a=new i({view:t,options:e.options});n.set(t,{referenceCount:0,snappingManager:a,remove:()=>{e.remove(),a.destroy()}})}let a=n.get(t);return a.referenceCount++,{snappingManager:a.snappingManager,...e(()=>u(t,n,a))}}function u(e,n,r){r.referenceCount--,r.referenceCount>0||t(()=>{r.referenceCount===0&&(r.remove(),n.delete(e))})}export{s as acquireForFeaturePlacement,c as acquireForViewOptions};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/6.0/LICENSE.txt */
|
|
2
|
-
import{__decorate as e}from"tslib";import{prefersReducedMotion as t}from"../../../../core/a11yUtils.js";import{on as n}from"../../../../core/events.js";import"../../../../core/has.js";import{memoize as r}from"../../../../core/memoize.js";import{throwIfNotAbortError as i,throwIfAborted as a,after as o}from"../../../../core/promiseUtils.js";import{waitAnimationFrame as s,waitTick as c}from"../../../../core/scheduling.js";import{unitName as l}from"../../../../core/unitFormatUtils.js";import{defaultAreaUnit as u,defaultVerticalLengthUnit as d,defaultLengthUnit as f}from"../../../../core/units.js";import{property as p,subclass as m}from"../../../../core/accessorSupport/decorators.js";import{getDefaultUnitForView as h}from"../../../../support/getDefaultUnitForView.js";import{tooltipKeys as g}from"../../keybindings.js";import{table as _,contentHeader as v,contentHeaderSpacer as y,contentHeaderActions as b,contentInputMode as x,content as S,helpMessageText as C,helpMessageIcon as w,helpMessage as T,drawContentHeaderActions as E}from"../css.js";import{getFormatters as D}from"../fields/parsingAndFormattingUtils.js";import O from"../../../../widgets/Widget.js";import{loadCalciteComponents as k}from"../../../../widgets/support/componentsUtils.js";import{tsx as A,tsxFragment as j,classes as M,messageBundle as N}from"../../../../widgets/support/widget.js";const P=Symbol(`dragHandles`);let F=class extends O{constructor(){super(...arguments),this._focusAbortController=new AbortController,this._transitionInfo=null,this._mode=`feedback`,this._getFormatters=r(D),this._onHeaderPointerDown=e=>{let t=e.target;if(!(t instanceof HTMLElement)||t?.tagName?.toLowerCase()===`calcite-button`)return;this.removeHandles(P),e.preventDefault(),e.stopPropagation();let r=process.env.NODE_ENV!==`test`;r&&t.setPointerCapture(e.pointerId),this.tooltip.onDragStart(e.clientX,e.clientY),this.addHandles([n(t,`pointermove`,({clientX:e,clientY:t})=>{this.tooltip.onDrag(e,t)}),n(t,[`pointerup`,`pointercancel`],n=>{this.removeHandles(P),r&&t.releasePointerCapture(e.pointerId),this.tooltip.onDragEnd()}),n(t,`touchstart`,e=>e.preventDefault())],P)},this._onDiscard=()=>{this.destroyed||(this.tooltip.emit(`discard`),this.info.clearInputValues(),this.exitInputMode())},this._onCommit=(e,t)=>{if(this.destroyed)return;if(this.tooltip.emit(`commit`,{type:t}),t===`commit-and-exit`){this.exitInputMode();return}if(t===`commit-on-blur`)return;let n=this._getFocusableElements(),r=n.length,i=n.indexOf(e);if(i===-1){this.exitInputMode();return}let a=((i+(t===`commit-and-next`?1:-1))%r+r)%r;I(n.at(a))},this._onKeyDown=e=>{switch(e.code){case g.next:return this._onNextKey(e);case g.discard:return e.stopPropagation(),this._onDiscard()}}}get mode(){return this._mode}get _displayUnits(){let{displayUnits:e}=this.info.toolOptions.values,t=h(this.tooltip.view);return{length:e.length??t,verticalLength:e.verticalLength??t,area:e.area??t}}get _inputUnitInfos(){let e=this._messagesUnits,t=t=>({unit:t,abbreviation:l(e,t,`abbr`)}),{inputUnits:n}=this.info.toolOptions.values,r=h(this.tooltip.view),i=n.length??r,a=n.verticalLength??r,o=n.area??r;return{length:t(f(i)),verticalLength:t(d(a)),area:t(u(o)),angle:t(`degrees`)}}get _formatters(){return this._getFormatters(this._messagesUnits,this._displayUnits)}get _elevationModeContext(){let{elevationModeContext:e}=this.info;return e&&{get mode(){return e.mode},get disabled(){return e.disabled},onChange:t=>{for(let e of this.info.editableFields){let t=this.domNode?.querySelector(`[data-field-id="${e.id}"]`);e.dirty&&t&&e.onCommit(`commit-on-blur`,t,this.fieldContext)}this.info.editableFields.some(e=>e.invalid)||e.onChange(t)}}}get fieldContext(){return{formatters:this._formatters,inputUnitInfos:this._inputUnitInfos,messages:this._messagesTooltip,toolOptions:this.info.toolOptions,elevationModeContext:this._elevationModeContext,topLayerDisabled:this.topLayerDisabled,onCommit:this._onCommit,onDiscard:this._onDiscard}}render(){let{visibleElements:e}=this.info.toolOptions.tooltips,t=this._renderedContent,n=this._renderedActions,r=this._renderedHelpMessage,i=t.length>0,a=i||!!r,o=this.mode===`input`;return A(`div`,{class:M(S,o&&x),tabIndex:-1,onkeydown:this._onKeyDown},o&&a&&e.header?A(`div`,{class:v,"data-testid":`tooltip-header`,key:`header`,onpointerdown:this._onHeaderPointerDown},A(`calcite-button`,{appearance:`transparent`,"data-testid":`tooltip-back-button`,iconFlipRtl:`both`,iconStart:`chevron-left`,key:`discard-button`,kind:`neutral`,scale:`s`,tabIndex:-1,onclick:this._onDiscard}),n.length>0?A(j,null,A(`div`,{class:y,key:`spacer`}),A(`div`,{class:b,key:`actions`},n)):null):null,i?A(`div`,{class:_,key:`content`},...t):null,r)}destroy(){this._focusAbortController.abort(),this._transitionInfo?.transition.skipTransition()}_renderActions(){return null}loadDependencies(){return k({button:()=>import(`@esri/calcite-components/dist/components/calcite-button`),icon:()=>import(`@esri/calcite-components/dist/components/calcite-icon`),input:()=>import(`@esri/calcite-components/dist/components/calcite-input`)})}async enterInputMode(e,t){try{await this._transitionTo(`input`,t),await this._focusField(e)}catch(e){i(e)}}async exitInputMode({focusOnView:e=!0}={}){try{let{container:t,info:n}=this;n.clearInputValues();let r=e?t?.closest(`.esri-view`)?.querySelector(`.esri-view-surface`):null;await this._transitionTo(`feedback`),r instanceof HTMLElement&&r.focus()}catch(e){i(e)}}_onNextKey(e){let t=this._getFocusableElements(),n=t.at(0),r=t.at(-1);n&&r&&(e.shiftKey?document.activeElement===n&&(e.preventDefault(),e.stopPropagation(),I(r)):document.activeElement===r&&(e.preventDefault(),e.stopPropagation(),I(n)))}get _renderedContent(){return L(this._renderContent())}get _renderedActions(){return L(this._renderActions())}get _renderedHelpMessage(){let{toolOptions:e,visibleElements:t}=this.info;if(!t.helpMessage)return null;let n=e.tooltips.helpMessage??this._defaultHelpMessage;if(!n)return null;let r=e.tooltips.helpMessageIcon??`information`;return A(`div`,{class:T,key:`help-message`},r?A(`calcite-icon`,{class:w,icon:r,scale:`s`}):null,A(`div`,{class:C},n))}get _defaultHelpMessage(){let{helpMessage:e,viewType:t}=this.info;if(e==null)return null;let n=t===`3d`?`helpMessages3d`:`helpMessages2d`;return this._messagesTooltip?.sketch?.[n]?.[e]}async _focusField(e){this._focusAbortController?.abort(),this._focusAbortController=new AbortController;let{signal:t}=this._focusAbortController;await this._waitForInputs(),a(t);let n=this._getFocusableFields();await I(e?n.find(t=>t.getAttribute(`data-field-name`)===e):n.at(0))}async _transitionTo(e,n){if(this._mode===e&&!this._transitionInfo)return;if(this._transitionInfo?.mode===e)return this._transitionInfo.transition.finished;this._transitionInfo?.transition.skipTransition();let r=async()=>{this.destroyed||(this._mode=e,await c()
|
|
2
|
+
import{__decorate as e}from"tslib";import{prefersReducedMotion as t}from"../../../../core/a11yUtils.js";import{on as n}from"../../../../core/events.js";import"../../../../core/has.js";import{memoize as r}from"../../../../core/memoize.js";import{throwIfNotAbortError as i,throwIfAborted as a,after as o}from"../../../../core/promiseUtils.js";import{waitAnimationFrame as s,waitTick as c}from"../../../../core/scheduling.js";import{unitName as l}from"../../../../core/unitFormatUtils.js";import{defaultAreaUnit as u,defaultVerticalLengthUnit as d,defaultLengthUnit as f}from"../../../../core/units.js";import{property as p,subclass as m}from"../../../../core/accessorSupport/decorators.js";import{getDefaultUnitForView as h}from"../../../../support/getDefaultUnitForView.js";import{tooltipKeys as g}from"../../keybindings.js";import{table as _,contentHeader as v,contentHeaderSpacer as y,contentHeaderActions as b,contentInputMode as x,content as S,helpMessageText as C,helpMessageIcon as w,helpMessage as T,drawContentHeaderActions as E}from"../css.js";import{getFormatters as D}from"../fields/parsingAndFormattingUtils.js";import O from"../../../../widgets/Widget.js";import{loadCalciteComponents as k}from"../../../../widgets/support/componentsUtils.js";import{tsx as A,tsxFragment as j,classes as M,messageBundle as N}from"../../../../widgets/support/widget.js";const P=Symbol(`dragHandles`);let F=class extends O{constructor(){super(...arguments),this._focusAbortController=new AbortController,this._transitionInfo=null,this._mode=`feedback`,this._getFormatters=r(D),this._onHeaderPointerDown=e=>{let t=e.target;if(!(t instanceof HTMLElement)||t?.tagName?.toLowerCase()===`calcite-button`)return;this.removeHandles(P),e.preventDefault(),e.stopPropagation();let r=process.env.NODE_ENV!==`test`;r&&t.setPointerCapture(e.pointerId),this.tooltip.onDragStart(e.clientX,e.clientY),this.addHandles([n(t,`pointermove`,({clientX:e,clientY:t})=>{this.tooltip.onDrag(e,t)}),n(t,[`pointerup`,`pointercancel`],n=>{this.removeHandles(P),r&&t.releasePointerCapture(e.pointerId),this.tooltip.onDragEnd()}),n(t,`touchstart`,e=>e.preventDefault())],P)},this._onDiscard=()=>{this.destroyed||(this.tooltip.emit(`discard`),this.info.clearInputValues(),this.exitInputMode())},this._onCommit=(e,t)=>{if(this.destroyed)return;if(this.tooltip.emit(`commit`,{type:t}),t===`commit-and-exit`){this.exitInputMode();return}if(t===`commit-on-blur`)return;let n=this._getFocusableElements(),r=n.length,i=n.indexOf(e);if(i===-1){this.exitInputMode();return}let a=((i+(t===`commit-and-next`?1:-1))%r+r)%r;I(n.at(a))},this._onKeyDown=e=>{switch(e.code){case g.next:return this._onNextKey(e);case g.discard:return e.stopPropagation(),this._onDiscard()}}}get mode(){return this._mode}get _displayUnits(){let{displayUnits:e}=this.info.toolOptions.values,t=h(this.tooltip.view);return{length:e.length??t,verticalLength:e.verticalLength??t,area:e.area??t}}get _inputUnitInfos(){let e=this._messagesUnits,t=t=>({unit:t,abbreviation:l(e,t,`abbr`)}),{inputUnits:n}=this.info.toolOptions.values,r=h(this.tooltip.view),i=n.length??r,a=n.verticalLength??r,o=n.area??r;return{length:t(f(i)),verticalLength:t(d(a)),area:t(u(o)),angle:t(`degrees`)}}get _formatters(){return this._getFormatters(this._messagesUnits,this._displayUnits)}get _elevationModeContext(){let{elevationModeContext:e}=this.info;return e&&{get mode(){return e.mode},get disabled(){return e.disabled},onChange:t=>{for(let e of this.info.editableFields){let t=this.domNode?.querySelector(`[data-field-id="${e.id}"]`);e.dirty&&t&&e.onCommit(`commit-on-blur`,t,this.fieldContext)}this.info.editableFields.some(e=>e.invalid)||e.onChange(t)}}}get fieldContext(){return{formatters:this._formatters,inputUnitInfos:this._inputUnitInfos,messages:this._messagesTooltip,toolOptions:this.info.toolOptions,elevationModeContext:this._elevationModeContext,topLayerDisabled:this.topLayerDisabled,onCommit:this._onCommit,onDiscard:this._onDiscard}}render(){let{visibleElements:e}=this.info.toolOptions.tooltips,t=this._renderedContent,n=this._renderedActions,r=this._renderedHelpMessage,i=t.length>0,a=i||!!r,o=this.mode===`input`;return A(`div`,{class:M(S,o&&x),tabIndex:-1,onkeydown:this._onKeyDown},o&&a&&e.header?A(`div`,{class:v,"data-testid":`tooltip-header`,key:`header`,onpointerdown:this._onHeaderPointerDown},A(`calcite-button`,{appearance:`transparent`,"data-testid":`tooltip-back-button`,iconFlipRtl:`both`,iconStart:`chevron-left`,key:`discard-button`,kind:`neutral`,scale:`s`,tabIndex:-1,onclick:this._onDiscard}),n.length>0?A(j,null,A(`div`,{class:y,key:`spacer`}),A(`div`,{class:b,key:`actions`},n)):null):null,i?A(`div`,{class:_,key:`content`},...t):null,r)}destroy(){this._focusAbortController.abort(),this._transitionInfo?.transition.skipTransition()}_renderActions(){return null}loadDependencies(){return k({button:()=>import(`@esri/calcite-components/dist/components/calcite-button`),icon:()=>import(`@esri/calcite-components/dist/components/calcite-icon`),input:()=>import(`@esri/calcite-components/dist/components/calcite-input`)})}async enterInputMode(e,t){try{await this._transitionTo(`input`,t),await this._focusField(e)}catch(e){i(e)}}async exitInputMode({focusOnView:e=!0}={}){try{let{container:t,info:n}=this;n.clearInputValues();let r=e?t?.closest(`.esri-view`)?.querySelector(`.esri-view-surface`):null;await this._transitionTo(`feedback`),r instanceof HTMLElement&&r.focus()}catch(e){i(e)}}_onNextKey(e){let t=this._getFocusableElements(),n=t.at(0),r=t.at(-1);n&&r&&(e.shiftKey?document.activeElement===n&&(e.preventDefault(),e.stopPropagation(),I(r)):document.activeElement===r&&(e.preventDefault(),e.stopPropagation(),I(n)))}get _renderedContent(){return L(this._renderContent())}get _renderedActions(){return L(this._renderActions())}get _renderedHelpMessage(){let{toolOptions:e,visibleElements:t}=this.info;if(!t.helpMessage)return null;let n=e.tooltips.helpMessage??this._defaultHelpMessage;if(!n)return null;let r=e.tooltips.helpMessageIcon??`information`;return A(`div`,{class:T,key:`help-message`},r?A(`calcite-icon`,{class:w,icon:r,scale:`s`}):null,A(`div`,{class:C},n))}get _defaultHelpMessage(){let{helpMessage:e,viewType:t}=this.info;if(e==null)return null;let n=t===`3d`?`helpMessages3d`:`helpMessages2d`;return this._messagesTooltip?.sketch?.[n]?.[e]}async _focusField(e){this._focusAbortController?.abort(),this._focusAbortController=new AbortController;let{signal:t}=this._focusAbortController;await this._waitForInputs(),a(t);let n=this._getFocusableFields();await I(e?n.find(t=>t.getAttribute(`data-field-name`)===e):n.at(0))}async _transitionTo(e,n){if(this._mode===e&&!this._transitionInfo)return;if(this._transitionInfo?.mode===e)return this._transitionInfo.transition.finished;this._transitionInfo?.transition.skipTransition();let r=async()=>{this.destroyed||(this._mode=e,await c(),this.destroyed||(this.renderNow(),await c(),this.destroyed||n?.()))};if(process.env.NODE_ENV===`test`||!this.domNode?.firstChild||!document.startViewTransition||t()){await r();return}this.autoRenderingEnabled=!1;let i=this._transitionInfo={transition:document.startViewTransition(async()=>{this.destroyed||i!==this._transitionInfo||(this.autoRenderingEnabled=!0,await r())}),mode:e};try{await i.transition.finished}finally{i===this._transitionInfo&&(this._transitionInfo=null)}}async _waitForInputs(){let e=()=>Array.from(this.domNode?.querySelectorAll(`calcite-input`)??[]);for(;e().length===0;)await o(R);await s()}_getFocusableFields(){let e=Array.from(this.domNode?.querySelectorAll(`calcite-input:not([read-only]):not([disabled])`)??[]),t=Array.from(this.domNode?.querySelectorAll(`[data-tooltip-inline-control]:not([disabled])`)??[]);return[...e,...t]}_getFocusableElements(){let e=this.domNode?.querySelector(`.${E}`);return[...Array.from(e?.querySelectorAll(`.${b} calcite-button:not([disabled])`)??[]),...this._getFocusableFields()]}};e([N(`esri/core/t9n/Units`),p()],F.prototype,`_messagesUnits`,void 0),e([N(`esri/views/interactive/tooltip/t9n/Tooltip`),p()],F.prototype,`_messagesTooltip`,void 0),e([p()],F.prototype,`info`,void 0),e([p()],F.prototype,`tooltip`,void 0),e([p()],F.prototype,`_mode`,void 0),e([p()],F.prototype,`mode`,null),e([p()],F.prototype,`_displayUnits`,null),e([p()],F.prototype,`_inputUnitInfos`,null),e([p()],F.prototype,`_formatters`,null),e([p()],F.prototype,`_elevationModeContext`,null),e([p()],F.prototype,`fieldContext`,null),e([p()],F.prototype,`_renderedContent`,null),e([p()],F.prototype,`_renderedActions`,null),e([p()],F.prototype,`_renderedHelpMessage`,null),e([p()],F.prototype,`_defaultHelpMessage`,null),F=e([m(`esri.views.interactive.tooltip.content.TooltipContent`)],F);async function I(e){await e?.componentOnReady?.(),await e?.setFocus()}function L(e){return(Array.isArray(e)?e:[e]).flat(10).filter(e=>!!e)}const R=20;export{F as TooltipContent};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/6.0/LICENSE.txt */
|
|
2
|
-
import{__decorate as e}from"tslib";import t from"../../../../core/Accessor.js";import{generateUUID as n}from"../../../../core/uuid.js";import{property as r,subclass as i}from"../../../../core/accessorSupport/decorators.js";let a=class extends t{constructor(e){super(e),this.actual=null,this.lockable=!0,this.id=n(),this.inputValue=null,this.name=null,this.readOnly=!1,this.suffix=null,this.visible=!0,this.invalid=!1,this.unlockOnVertexPlacement=!0,this.displayOrder=0}get committed(){return this.lockable?this._get(`committed`):null}set committed(e){this.lockable&&this._set(`committed`,e)}get dirty(){return this.inputValue!=null}get lockDisabled(){return this.actual==null&&!this.dirty&&!this.locked}get locked(){return this.lockable&&this.committed!=null}onInput(e){this.inputValue=e,this.invalid=!1}onCommit(e,t,n){this.lockable?this._onCommitLockable(e,n):this._onCommitNonLockable(n)
|
|
2
|
+
import{__decorate as e}from"tslib";import t from"../../../../core/Accessor.js";import{generateUUID as n}from"../../../../core/uuid.js";import{property as r,subclass as i}from"../../../../core/accessorSupport/decorators.js";let a=class extends t{constructor(e){super(e),this.actual=null,this.lockable=!0,this.id=n(),this.inputValue=null,this.name=null,this.readOnly=!1,this.suffix=null,this.visible=!0,this.invalid=!1,this.unlockOnVertexPlacement=!0,this.displayOrder=0}get committed(){return this.lockable?this._get(`committed`):null}set committed(e){this.lockable&&this._set(`committed`,e)}get dirty(){return this.inputValue!=null}get lockDisabled(){return this.actual==null&&!this.dirty&&!this.locked}get locked(){return this.lockable&&this.committed!=null}onInput(e){this.inputValue=e,this.invalid=!1}onCommit(e,t,n){this.lockable?this._onCommitLockable(e,n):this._onCommitNonLockable(n),this.invalid&&e===`commit-and-exit`||n.onCommit(t,e)}_onCommitLockable(e,t){let{inputValue:n,locked:r}=this;r&&o(n)?this.unlock():(e===`commit-and-exit`&&!r||n!=null)&&this._parseInputAndLock(t)}_onCommitNonLockable(e){let{inputValue:t}=this;o(t)?this.lockable?this.setActual(null):this.clearInputValue():t!=null&&this._parseInputAndSetActual(e)}applyValue(e){this.lockable?this.lock(e):this.setActual(e)}clearInputValue(){this.inputValue=null,this.invalid=!1}setActual(e){this.actual=e,this.clearInputValue()}lock(e){this.lockable&&(this.committed=e??this.actual,this.clearInputValue())}unlock(){this.lockable&&(this.committed=null,this.clearInputValue())}toggleLock(e){this.lockable&&(this.locked?this.unlock():this._parseInputAndLock(e))}getSuffix(e){let{suffix:t}=this;return typeof t==`function`?t(e):t}getFormattedValue(e){let{actual:t,committed:n,format:r}=this;return n==null?t==null?null:r(t,e):r(n,e)}getRawDisplayValue(e){let{actual:t,committed:n,inputValue:r}=this;return r??(this.lockable&&n!=null?this.formatForInputMode(n,e):t==null?null:this.formatForInputMode(t,e))}_parseInputAndSetActual(e){let{inputValue:t}=this;if(t==null||o(t))return this.setActual(null);let n=this.parse(t,e);n==null?this.invalid=!0:this.setActual(n)}_parseInputAndLock(e){let{inputValue:t,actual:n}=this;if(o(t))return this.unlock();if(t==null)return this.lock(n);let r=this.parse(t,e);r==null?this.invalid=!0:this.lock(r)}};e([r()],a.prototype,`actual`,void 0),e([r()],a.prototype,`committed`,null),e([r()],a.prototype,`dirty`,null),e([r()],a.prototype,`lockDisabled`,null),e([r()],a.prototype,`format`,void 0),e([r()],a.prototype,`formatForInputMode`,void 0),e([r()],a.prototype,`lockable`,void 0),e([r()],a.prototype,`locked`,null),e([r()],a.prototype,`id`,void 0),e([r()],a.prototype,`inputValue`,void 0),e([r()],a.prototype,`name`,void 0),e([r()],a.prototype,`parse`,void 0),e([r()],a.prototype,`readOnly`,void 0),e([r()],a.prototype,`suffix`,void 0),e([r()],a.prototype,`title`,void 0),e([r()],a.prototype,`visible`,void 0),e([r()],a.prototype,`invalid`,void 0),e([r()],a.prototype,`unlockOnVertexPlacement`,void 0),e([r()],a.prototype,`displayOrder`,void 0),a=e([i(`esri.views.interactive.tooltip.fields.TooltipField`)],a);function o(e){return e!=null&&e.trim()===``}export{a as TooltipField};
|
|
@@ -11,8 +11,8 @@ export interface LineOfSightLayerViewProperties extends LayerViewProperties, Par
|
|
|
11
11
|
* Represents the [LayerView](https://developers.arcgis.com/javascript/latest/references/core/views/layers/LayerView/) of a [LineOfSightLayer](https://developers.arcgis.com/javascript/latest/references/core/layers/LineOfSightLayer/)
|
|
12
12
|
* after it has been added to a [Map](https://developers.arcgis.com/javascript/latest/references/core/Map/) in a [SceneView](https://developers.arcgis.com/javascript/latest/references/core/views/SceneView/).
|
|
13
13
|
*
|
|
14
|
-
* The line of sight layer view controls whether the [
|
|
15
|
-
* [LineOfSightLayer](https://developers.arcgis.com/javascript/latest/references/core/layers/LineOfSightLayer
|
|
14
|
+
* The line of sight layer view controls whether the [LineOfSightAnalysis](https://developers.arcgis.com/javascript/latest/references/core/analysis/LineOfSightAnalysis/) in its associated
|
|
15
|
+
* [LineOfSightLayer.analysis](https://developers.arcgis.com/javascript/latest/references/core/layers/LineOfSightLayer/#analysis) can be created or edited interactively.
|
|
16
16
|
*
|
|
17
17
|
* It allows to create an observer and/or targets interactively using the [place()](https://developers.arcgis.com/javascript/latest/references/core/views/layers/LineOfSightLayerView/#place) method, query the [results](https://developers.arcgis.com/javascript/latest/references/core/views/layers/LineOfSightLayerView/#results),
|
|
18
18
|
* or make an existing analysis editable by enabling the [interactive](https://developers.arcgis.com/javascript/latest/references/core/views/layers/LineOfSightLayerView/#interactive) property.
|
|
@@ -10,7 +10,7 @@ export interface ViewshedLayerViewProperties extends LayerViewProperties, Partia
|
|
|
10
10
|
* Represents the [LayerView](https://developers.arcgis.com/javascript/latest/references/core/views/layers/LayerView/) of a [ViewshedLayer](https://developers.arcgis.com/javascript/latest/references/core/layers/ViewshedLayer/)
|
|
11
11
|
* after it has been added to a [Map](https://developers.arcgis.com/javascript/latest/references/core/Map/) in a [SceneView](https://developers.arcgis.com/javascript/latest/references/core/views/SceneView/).
|
|
12
12
|
*
|
|
13
|
-
* The viewshed layer view controls whether the
|
|
13
|
+
* The viewshed layer view controls whether the [ViewshedAnalysis](https://developers.arcgis.com/javascript/latest/references/core/analysis/ViewshedAnalysis/) in its associated
|
|
14
14
|
* [ViewshedLayer.source](https://developers.arcgis.com/javascript/latest/references/core/layers/ViewshedLayer/#source) can be created or edited interactively.
|
|
15
15
|
*
|
|
16
16
|
* It allows to create new viewsheds interactively using the [place()](https://developers.arcgis.com/javascript/latest/references/core/views/layers/ViewshedLayerView/#place) method,
|
|
@@ -43,6 +43,7 @@ export interface ViewshedLayerViewProperties extends LayerViewProperties, Partia
|
|
|
43
43
|
* @see [Viewshed](https://developers.arcgis.com/javascript/latest/references/core/analysis/Viewshed/)
|
|
44
44
|
* @see [ViewshedAnalysis](https://developers.arcgis.com/javascript/latest/references/core/analysis/ViewshedAnalysis/)
|
|
45
45
|
* @see [ViewshedAnalysisView3D](https://developers.arcgis.com/javascript/latest/references/core/views/3d/analysis/ViewshedAnalysisView3D/)
|
|
46
|
+
* @see [ViewOptions](https://developers.arcgis.com/javascript/latest/references/core/views/interactive/options/ViewOptions/)
|
|
46
47
|
* @see [Sample - ViewshedLayer in slides](https://developers.arcgis.com/javascript/latest/sample-code/layers-viewshed/)
|
|
47
48
|
* @see [Async cancellation with AbortController](https://developers.arcgis.com/javascript/latest/async-cancellation-with-abortcontroller/)
|
|
48
49
|
*/
|