@arcgis/core 4.23.0-next.20220131 → 4.23.0-next.20220205
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.js +1 -1
- package/TimeExtent.js +1 -1
- package/assets/components/assets/calcite-date-picker/nls/pt-BR.json +31 -0
- package/assets/components/assets/calcite-date-picker/nls/pt-PT.json +3 -3
- package/assets/components/assets/calcite-icon/clipboard16.json +1 -0
- package/assets/components/assets/calcite-icon/clipboard24.json +1 -0
- package/assets/components/assets/calcite-icon/clipboard32.json +1 -0
- package/assets/components/assets/calcite-icon/folders16.json +1 -0
- package/assets/components/assets/calcite-icon/folders24.json +1 -0
- package/assets/components/assets/calcite-icon/folders32.json +1 -0
- package/assets/components/assets/calcite-icon/initiative16.json +1 -0
- package/assets/components/assets/calcite-icon/initiative24.json +1 -0
- package/assets/components/assets/calcite-icon/initiative32.json +1 -0
- package/assets/components/assets/calcite-icon/initiativeTemplate16.json +1 -0
- package/assets/components/assets/calcite-icon/initiativeTemplate24.json +1 -0
- package/assets/components/assets/calcite-icon/initiativeTemplate32.json +1 -0
- package/assets/components/assets/calcite-icon/multipleVariables16.json +1 -0
- package/assets/components/assets/calcite-icon/multipleVariables24.json +1 -0
- package/assets/components/assets/calcite-icon/multipleVariables32.json +1 -0
- package/assets/components/assets/calcite-icon/paletteCheck16.json +1 -0
- package/assets/components/assets/calcite-icon/paletteCheck24.json +1 -0
- package/assets/components/assets/calcite-icon/paletteCheck32.json +1 -0
- package/assets/components/assets/calcite-icon/pentagon16.json +1 -0
- package/assets/components/assets/calcite-icon/pentagon24.json +1 -0
- package/assets/components/assets/calcite-icon/pentagon32.json +1 -0
- package/assets/components/assets/calcite-icon/puzzlePiece16.json +1 -0
- package/assets/components/assets/calcite-icon/puzzlePiece24.json +1 -0
- package/assets/components/assets/calcite-icon/puzzlePiece32.json +1 -0
- package/assets/components/assets/calcite-icon/ribbonRosette16.json +1 -0
- package/assets/components/assets/calcite-icon/ribbonRosette24.json +1 -0
- package/assets/components/assets/calcite-icon/ribbonRosette32.json +1 -0
- package/assets/components/assets/calcite-icon/speechBubbleExclamation16.json +1 -0
- package/assets/components/assets/calcite-icon/speechBubbleExclamation24.json +1 -0
- package/assets/components/assets/calcite-icon/speechBubbleExclamation32.json +1 -0
- package/assets/components/assets/calcite-icon/survey16.json +1 -0
- package/assets/components/assets/calcite-icon/survey24.json +1 -0
- package/assets/components/assets/calcite-icon/survey32.json +1 -0
- package/assets/esri/core/workers/RemoteClient.js +1 -1
- package/assets/esri/core/workers/chunks/{7a5f5acfbd4ca1a5c1f3.js → 06116433eb6e669f146b.js} +1 -1
- package/assets/esri/core/workers/chunks/0a4401a148c3cb73d6ff.js +1 -0
- package/assets/esri/core/workers/chunks/{83d00afae4406ec78bc9.js → 0c6be307709523eb8a05.js} +1 -1
- package/assets/esri/core/workers/chunks/{e0c8d61c7a85ce15499a.js → 0d9adefd00c44585be2e.js} +1 -1
- package/assets/esri/core/workers/chunks/{44f0c3663b293afbd172.js → 0e09691edb44641de5f0.js} +1 -1
- package/assets/esri/core/workers/chunks/0e215fa28a0448169132.js +1 -0
- package/assets/esri/core/workers/chunks/{391e96192d1ec4e55ce2.js → 101b4f02f0572afb666f.js} +1 -1
- package/assets/esri/core/workers/chunks/{db3c729ce0c0b2690dc9.js → 1180ffd523c6292bc04e.js} +1 -1
- package/assets/esri/core/workers/chunks/{826c983100569586b61f.js → 1571e8213feb518ff100.js} +1 -1
- package/assets/esri/core/workers/chunks/{929c9b7cdab7c4ca3d87.js → 17c51f5a13f471e6656a.js} +1 -1
- package/assets/esri/core/workers/chunks/{37c03cfc19086ce631c6.js → 18a8b9e2f6bd89827189.js} +1 -1
- package/assets/esri/core/workers/chunks/{ed0bcc66fb1e0ee75a4b.js → 1f34957ef42e5b5977d0.js} +1 -1
- package/assets/esri/core/workers/chunks/236de5f0476f6080ee62.js +1 -0
- package/assets/esri/core/workers/chunks/288ca064cd0472439276.js +1 -0
- package/assets/esri/core/workers/chunks/29aa6046534a43d7ce19.js +1 -0
- package/assets/esri/core/workers/chunks/2e1291cd831592216446.js +1 -0
- package/assets/esri/core/workers/chunks/{68a59ce98177d8513337.js → 3403cb53e4e60923c5fc.js} +1 -1
- package/assets/esri/core/workers/chunks/34bed896b68993cabaa1.js +1 -0
- package/assets/esri/core/workers/chunks/{99619fcb772807c74f3b.js → 444829a840b8ded16fd7.js} +1 -1
- package/assets/esri/core/workers/chunks/467b5faa1c90d9821609.js +1 -0
- package/assets/esri/core/workers/chunks/49353182a16218a84251.js +1 -0
- package/assets/esri/core/workers/chunks/{fc046a15466c25d081ff.js → 4a2e93b12d60e8d92491.js} +1 -1
- package/assets/esri/core/workers/chunks/4de996ebc432f5e149bc.js +1 -0
- package/assets/esri/core/workers/chunks/50976921acf7bd636123.js +1 -0
- package/assets/esri/core/workers/chunks/5144ef135e0deb48c7bf.js +1 -0
- package/assets/esri/core/workers/chunks/584bbb675ed225f68171.js +1 -0
- package/assets/esri/core/workers/chunks/5a90d121ba79613cc2aa.js +1 -0
- package/assets/esri/core/workers/chunks/5b286f3f3deea10bdd91.js +1 -0
- package/assets/esri/core/workers/chunks/{0463ba46df855a92b9c0.js → 65ccd204ec3053687a77.js} +1 -1
- package/assets/esri/core/workers/chunks/{1f8c6a179e39fd4c5e6f.js → 6a2b8d6a9bada45ab66d.js} +1 -1
- package/assets/esri/core/workers/chunks/6be326edd9829781d926.js +1 -0
- package/assets/esri/core/workers/chunks/6ea99a6e21b09674f6b3.js +1 -0
- package/assets/esri/core/workers/chunks/{5bcb3240b3c005e5fe72.js → 7215af7810d15e89aa5a.js} +1 -1
- package/assets/esri/core/workers/chunks/7509c1693ffedc0fa018.js +1 -0
- package/assets/esri/core/workers/chunks/7b0b75878370b3475fe5.js +1 -0
- package/assets/esri/core/workers/chunks/{bfedd6ebff817c9b31c0.js → 7b618c449d793aacd874.js} +1 -1
- package/assets/esri/core/workers/chunks/{2460f3b6ada6ae900dec.js → 7c0ff01f081c7e9050d2.js} +1 -1
- package/assets/esri/core/workers/chunks/806a7db0084214a53c79.js +1 -0
- package/assets/esri/core/workers/chunks/{8fa0a14165d43ffe87a5.js → 8325b577f52936f86cff.js} +1 -1
- package/assets/esri/core/workers/chunks/84d8e77d78d0d5134083.js +1 -0
- package/assets/esri/core/workers/chunks/{dd13772a5e2eccc6a2bc.js → 8598f762f15ca68d52b7.js} +1 -1
- package/assets/esri/core/workers/chunks/85b1ae51da3689bccf92.js +1 -0
- package/assets/esri/core/workers/chunks/873b0cbd343dc71755ed.js +1 -0
- package/assets/esri/core/workers/chunks/8804b8489eeab888275b.js +1 -0
- package/assets/esri/core/workers/chunks/{5ec98f4ddac707d0fbd1.js → 88815d533808aabb1fa9.js} +1 -1
- package/assets/esri/core/workers/chunks/8c8c0ecdf44fdbb56000.js +1 -0
- package/assets/esri/core/workers/chunks/{f2124f4d0f2b8a91f0ea.js → 90c5edcd8a609224ce55.js} +1 -1
- package/assets/esri/core/workers/chunks/{bac9fc90e6756e211160.js → 94d9951509c0db09547a.js} +1 -1
- package/assets/esri/core/workers/chunks/996d6ae7f2e2273f9bce.js +1 -0
- package/assets/esri/core/workers/chunks/{c1135cb02ec46c491459.js → 9ce961bc390202c87941.js} +1 -1
- package/assets/esri/core/workers/chunks/9fbc7d2e0326be41b382.js +1 -0
- package/assets/esri/core/workers/chunks/a363fb40096679b011f6.js +1 -0
- package/assets/esri/core/workers/chunks/a41522b0a853b85c8269.js +1 -0
- package/assets/esri/core/workers/chunks/a763c11d2b02b3ec36ad.js +1 -0
- package/assets/esri/core/workers/chunks/{aeaa1667c2d9f1b3366b.js → a85ed251d3d3668e474f.js} +1 -1
- package/assets/esri/core/workers/chunks/{69fd99b7c76e9992ccf3.js → b32bf9808cb4be3a6bd0.js} +1 -1
- package/assets/esri/core/workers/chunks/b33a6fbbc8de2969b1ca.js +1 -0
- package/assets/esri/core/workers/chunks/b548e6b3add4154ac4e6.js +1 -0
- package/assets/esri/core/workers/chunks/b6c55bdd8c957b062bc1.js +1 -0
- package/assets/esri/core/workers/chunks/b90509b2088fd444fc39.js +1 -0
- package/assets/esri/core/workers/chunks/{b9e9cb354822c6d995a4.js → bea473dba8e57617a71d.js} +1 -1
- package/assets/esri/core/workers/chunks/{0d02c6ad1f4688bfa374.js → bf7c44644fe7b0aa60cf.js} +1 -1
- package/assets/esri/core/workers/chunks/c1a70f025e90d97fac6d.js +1 -0
- package/assets/esri/core/workers/chunks/{d72488db62fcf39447b6.js → c23d965a55215168a1a2.js} +1 -1
- package/assets/esri/core/workers/chunks/c3192cfe115ce354ffbc.js +1 -0
- package/assets/esri/core/workers/chunks/c3d768801f2f6cb9d5d0.js +1 -0
- package/assets/esri/core/workers/chunks/d09a0b2dc3a6fc10fa41.js +1 -0
- package/assets/esri/core/workers/chunks/d21526570300597aa6ae.js +1 -0
- package/assets/esri/core/workers/chunks/d2ffb0f21363c0d3d2a9.js +1 -0
- package/assets/esri/core/workers/chunks/{ec10151a2a95e95a0bb5.js → d304fe0ac836afd46e3d.js} +1 -1
- package/assets/esri/core/workers/chunks/{37a7bd30352b1309b8f8.js → d3f05b8e4bd53eb1eb9d.js} +1 -1
- package/assets/esri/core/workers/chunks/{17de7a324dfa7f57ad5d.js → d780e946149b1c3d1246.js} +1 -1
- package/assets/esri/core/workers/chunks/dc037f1496bb4aa40d10.js +1 -0
- package/assets/esri/core/workers/chunks/{8cbb04a9065aa3756638.js → dc04a8ba6c770bdc2bd4.js} +1 -1
- package/assets/esri/core/workers/chunks/dd5a71818a989a6edb00.js +1 -0
- package/assets/esri/core/workers/chunks/{89820b200ee44e678af5.js → dd891a98105904f8a06b.js} +1 -1
- package/assets/esri/core/workers/chunks/e17edd48179d41ddf1e7.js +1 -0
- package/assets/esri/core/workers/chunks/e323086de328a164f7f0.js +1 -0
- package/assets/esri/core/workers/chunks/ea50a6a994e5ee578d97.js +1 -0
- package/assets/esri/core/workers/chunks/{655b55ac0cd533d7e9d7.js → ecf074743183c1749581.js} +1 -1
- package/assets/esri/core/workers/chunks/f067b4fc65b835437afd.js +1 -0
- package/assets/esri/core/workers/chunks/f0e5c82e9c4fbe3c9d0a.js +1 -0
- package/assets/esri/core/workers/chunks/f96b24c075771d028e20.js +1 -0
- package/assets/esri/core/workers/chunks/{5790d171072b3c7d108f.js → f9a6de00c628538f07f6.js} +1 -1
- package/assets/esri/core/workers/chunks/{2c607d30ff8ca1b61286.js → fe0c3b7c9b428d9c3f25.js} +1 -1
- package/assets/esri/core/workers/chunks/{49a1a633bb0d93764aae.js → fffea9587ec14c6d34e8.js} +1 -1
- package/assets/esri/themes/base/_mixins.scss +1 -1
- package/assets/esri/themes/base/widgets/_Directions.scss +0 -6
- package/assets/esri/themes/base/widgets/_Legend.scss +8 -7
- package/assets/esri/themes/dark/main.css +1 -1
- package/assets/esri/themes/dark-blue/main.css +1 -1
- package/assets/esri/themes/dark-green/main.css +1 -1
- package/assets/esri/themes/dark-purple/main.css +1 -1
- package/assets/esri/themes/dark-red/main.css +1 -1
- package/assets/esri/themes/light/main.css +1 -1
- package/assets/esri/themes/light/view.css +1 -1
- package/assets/esri/themes/light-blue/main.css +1 -1
- package/assets/esri/themes/light-green/main.css +1 -1
- package/assets/esri/themes/light-purple/main.css +1 -1
- package/assets/esri/themes/light-red/main.css +1 -1
- package/assets/esri/widgets/Directions/t9n/Directions.json +1 -1
- package/assets/esri/widgets/Directions/t9n/Directions_ar.json +1 -1
- package/assets/esri/widgets/Directions/t9n/Directions_bg.json +1 -1
- package/assets/esri/widgets/Directions/t9n/Directions_bs.json +1 -1
- package/assets/esri/widgets/Directions/t9n/Directions_ca.json +1 -1
- package/assets/esri/widgets/Directions/t9n/Directions_cs.json +1 -1
- package/assets/esri/widgets/Directions/t9n/Directions_da.json +1 -1
- package/assets/esri/widgets/Directions/t9n/Directions_de.json +1 -1
- package/assets/esri/widgets/Directions/t9n/Directions_el.json +1 -1
- package/assets/esri/widgets/Directions/t9n/Directions_en.json +1 -1
- package/assets/esri/widgets/Directions/t9n/Directions_es.json +1 -1
- package/assets/esri/widgets/Directions/t9n/Directions_et.json +1 -1
- package/assets/esri/widgets/Directions/t9n/Directions_fi.json +1 -1
- package/assets/esri/widgets/Directions/t9n/Directions_fr.json +1 -1
- package/assets/esri/widgets/Directions/t9n/Directions_he.json +1 -1
- package/assets/esri/widgets/Directions/t9n/Directions_hr.json +1 -1
- package/assets/esri/widgets/Directions/t9n/Directions_hu.json +1 -1
- package/assets/esri/widgets/Directions/t9n/Directions_id.json +1 -1
- package/assets/esri/widgets/Directions/t9n/Directions_it.json +1 -1
- package/assets/esri/widgets/Directions/t9n/Directions_ja.json +1 -1
- package/assets/esri/widgets/Directions/t9n/Directions_ko.json +1 -1
- package/assets/esri/widgets/Directions/t9n/Directions_lt.json +1 -1
- package/assets/esri/widgets/Directions/t9n/Directions_lv.json +1 -1
- package/assets/esri/widgets/Directions/t9n/Directions_nb.json +1 -1
- package/assets/esri/widgets/Directions/t9n/Directions_nl.json +1 -1
- package/assets/esri/widgets/Directions/t9n/Directions_pl.json +1 -1
- package/assets/esri/widgets/Directions/t9n/Directions_pt-BR.json +1 -1
- package/assets/esri/widgets/Directions/t9n/Directions_pt-PT.json +1 -1
- package/assets/esri/widgets/Directions/t9n/Directions_ro.json +1 -1
- package/assets/esri/widgets/Directions/t9n/Directions_ru.json +1 -1
- package/assets/esri/widgets/Directions/t9n/Directions_sk.json +1 -1
- package/assets/esri/widgets/Directions/t9n/Directions_sl.json +1 -1
- package/assets/esri/widgets/Directions/t9n/Directions_sr.json +1 -1
- package/assets/esri/widgets/Directions/t9n/Directions_sv.json +1 -1
- package/assets/esri/widgets/Directions/t9n/Directions_th.json +1 -1
- package/assets/esri/widgets/Directions/t9n/Directions_tr.json +1 -1
- package/assets/esri/widgets/Directions/t9n/Directions_uk.json +1 -1
- package/assets/esri/widgets/Directions/t9n/Directions_vi.json +1 -1
- package/assets/esri/widgets/Directions/t9n/Directions_zh-CN.json +1 -1
- package/assets/esri/widgets/Directions/t9n/Directions_zh-HK.json +1 -1
- package/assets/esri/widgets/Directions/t9n/Directions_zh-TW.json +1 -1
- package/chunks/Fog.glsl.js +12 -24
- package/chunks/Heatmap.glsl.js +10 -0
- package/chunks/HeatmapDensity.glsl.js +21 -0
- package/chunks/Precipitation.glsl.js +2 -2
- package/core/maybe.js +1 -1
- package/core/promiseUtils.js +1 -1
- package/interfaces.d.ts +2432 -231
- package/layers/ImageryTileLayer.js +1 -1
- package/layers/graphics/data/optimizedFeatureQueryEngineAdapter.js +1 -1
- package/layers/graphics/featureConversionUtils.js +1 -1
- package/layers/mixins/ArcGISImageService.js +1 -1
- package/layers/support/imageryRendererUtils.js +1 -1
- package/layers/support/rasterFunctions/pixelUtils.js +1 -1
- package/layers/support/rasterFunctions/vectorFieldUtils.js +1 -1
- package/package.json +2 -2
- package/rasterRenderers.js +1 -1
- package/renderers/DictionaryRenderer.js +1 -1
- package/renderers/FlowRenderer.d.ts +4 -0
- package/renderers/FlowRenderer.js +5 -0
- package/renderers/support/DictionaryLoader.js +5 -0
- package/renderers/support/RasterSymbolizer.js +1 -1
- package/renderers/support/rasterRendererHelper.js +1 -1
- package/renderers/support/rendererConversion.js +1 -1
- package/rest/geoprocessor/GPOptions.js +1 -1
- package/rest/print.js +1 -1
- package/rest/support/DirectionLine.js +1 -1
- package/rest/support/DirectionPoint.js +1 -1
- package/rest/support/FeatureSet.js +1 -1
- package/rest/support/LegendLayer.js +1 -1
- package/rest/support/LinearUnit.js +1 -1
- package/rest/support/PointBarrier.js +1 -1
- package/rest/support/PolygonBarrier.js +1 -1
- package/rest/support/PolylineBarrier.js +1 -1
- package/rest/support/RasterData.js +1 -1
- package/smartMapping/raster/renderers/flow.js +5 -0
- package/smartMapping/raster/support/utils.js +1 -1
- package/support/basemapUtils.js +1 -1
- package/support/featureFlags.js +1 -1
- package/support/revision.js +1 -1
- package/symbols/TextSymbol3DLayer.js +1 -1
- package/symbols/cim/effects/EffectArrow.js +1 -1
- package/symbols/support/Symbol3DHalo.js +1 -1
- package/symbols/support/Symbol3DTextBackground.js +5 -0
- package/symbols/support/previewSymbol2D.js +1 -1
- package/symbols/support/svgUtils.js +1 -1
- package/tasks/Geoprocessor.js +1 -1
- package/views/2d/FrameTask.js +1 -1
- package/views/2d/ViewState.js +1 -1
- package/views/2d/constraints/GeometryConstraint.js +1 -1
- package/views/2d/engine/BitmapTileContainer.js +1 -1
- package/views/2d/engine/DisplayObject.js +1 -1
- package/views/2d/engine/RasterTileContainer.js +1 -1
- package/views/2d/engine/RasterVFContainer.js +5 -0
- package/views/2d/engine/RasterVFDisplayObject.js +1 -1
- package/views/2d/engine/RasterVFTileContainer.js +1 -1
- package/views/2d/engine/Stage.js +1 -1
- package/views/2d/engine/flow/BrushFlow.js +1 -1
- package/views/2d/engine/flow/FlowDisplayData.js +1 -1
- package/views/2d/engine/flow/FlowGLResources.js +1 -1
- package/views/2d/engine/flow/FlowStyle.js +1 -1
- package/views/2d/engine/flow/FlowView2D.js +5 -0
- package/views/2d/engine/flow/dataUtils.js +1 -1
- package/views/2d/engine/flow/flowRendererUtils.js +5 -0
- package/views/2d/engine/webgl/AttributeStoreView.js +1 -1
- package/views/2d/engine/webgl/brushes/raster/BrushVectorField.js +1 -1
- package/views/2d/engine/webgl/cpuMapped/Buffer.js +1 -1
- package/views/2d/engine/webgl/mesh/templates/WGLBaseTextTemplate.js +1 -1
- package/views/2d/engine/webgl/shaders/sources/shaderRepository.js +1 -1
- package/views/2d/engine/webgl/util/Matcher.js +1 -1
- package/views/2d/input/handlers/DragPan.js +1 -1
- package/views/2d/layers/FeatureLayerView2D.js +1 -1
- package/views/2d/layers/ImageryLayerView2D.js +1 -1
- package/views/2d/layers/ImageryTileLayerView2D.js +1 -1
- package/views/2d/layers/KMLLayerView2D.js +1 -1
- package/views/2d/layers/LayerView2D.js +1 -1
- package/views/2d/layers/MapImageLayerView2D.js +1 -1
- package/views/2d/layers/TileLayerView2D.js +1 -1
- package/views/2d/layers/WMSLayerView2D.js +1 -1
- package/views/2d/layers/WMTSLayerView2D.js +1 -1
- package/views/2d/layers/features/Pipeline.js +1 -1
- package/views/2d/layers/features/createSymbolSchema.js +5 -0
- package/views/2d/layers/features/processors/HeatmapProcessor.js +1 -1
- package/views/2d/layers/features/processors/SymbolProcessor.js +1 -1
- package/views/2d/layers/features/schemaUtils.js +1 -1
- package/views/2d/layers/features/support/AttributeStore.js +1 -1
- package/views/2d/layers/features/support/ClusterStore.js +1 -1
- package/views/2d/layers/features/support/FeatureSetReaderJSON.js +1 -1
- package/views/2d/layers/features/tileRenderers/SymbolTileRenderer.js +1 -1
- package/views/2d/layers/graphics/GraphicsView2D.js +1 -1
- package/views/2d/layers/imagery/BaseImageryTileSubView2D.js +1 -1
- package/views/2d/layers/imagery/ImageryTileView2D.js +1 -1
- package/views/2d/layers/imagery/ImageryVFStrategy.js +5 -0
- package/views/2d/layers/imagery/ImageryView2D.js +1 -1
- package/views/2d/layers/imagery/VectorFieldTileView2D.js +1 -1
- package/views/2d/layers/imagery/VectorFieldView2D.js +5 -0
- package/views/2d/layers/support/FeatureCommandQueue.js +1 -1
- package/views/2d/navigation/MapViewNavigation.js +1 -1
- package/views/2d/navigation/actions/Pan.js +1 -1
- package/views/2d/viewpointUtils.js +1 -1
- package/views/3d/environment/EnvironmentRenderer.js +1 -1
- package/views/3d/environment/Fog.js +1 -1
- package/views/3d/environment/Precipitation.js +1 -1
- package/views/3d/environment/PrecipitationTechnique.js +1 -1
- package/views/3d/environment/SceneViewEnvironment.js +1 -1
- package/views/3d/environment/SimpleAtmosphere.js +1 -1
- package/views/3d/environment/weather.js +1 -1
- package/views/3d/interactive/analysisTools/lineOfSight/LineOfSightTool.js +1 -1
- package/views/3d/layerViewModuleImportUtils.js +1 -1
- package/views/3d/layers/FeatureLikeLayerView3D.js +1 -1
- package/views/3d/layers/GraphicsLayerView3D.js +1 -1
- package/views/3d/layers/IRouteLayerView3D.js +4 -0
- package/views/3d/layers/RouteLayerView3D.js +5 -0
- package/views/3d/layers/VectorTileLayerView3D.js +1 -1
- package/views/3d/layers/VoxelLayerView3D.js +1 -1
- package/views/3d/layers/graphics/Graphics3DFeatureProcessor.js +1 -1
- package/views/3d/layers/graphics/Graphics3DTextSymbolLayer.js +1 -1
- package/views/3d/layers/graphics/Graphics3DWebStyleSymbol.js +1 -1
- package/views/3d/layers/graphics/GraphicsProcessor.js +1 -1
- package/views/3d/layers/graphics/Labeler.js +1 -1
- package/views/3d/layers/graphics/graphicUtils.js +1 -1
- package/views/3d/layers/graphics/labelPlacement.js +1 -1
- package/views/3d/layers/support/HeatmapFeatureProcessor.js +1 -1
- package/views/3d/terrain/OverlayRenderer.js +1 -1
- package/views/3d/terrain/terrainUtils.js +1 -1
- package/views/3d/webgl-engine/lib/DrapedHeatmapRenderer.js +5 -0
- package/views/3d/webgl-engine/lib/TextRenderParameters.js +1 -1
- package/views/3d/webgl-engine/lib/TextRenderer.js +1 -1
- package/views/3d/webgl-engine/lib/TextTexture.js +1 -1
- package/views/3d/webgl-engine/materials/HeatmapDensityMaterial.js +5 -0
- package/views/3d/webgl-engine/shaders/Heatmap.glsl.js +5 -0
- package/views/3d/webgl-engine/shaders/HeatmapDensity.glsl.js +5 -0
- package/views/3d/webgl-engine/shaders/HeatmapDensityTechnique.js +5 -0
- package/views/3d/webgl-engine/shaders/HeatmapTechnique.js +5 -0
- package/views/MapView.js +1 -1
- package/views/ToolViewManager.js +1 -1
- package/views/View.js +1 -1
- package/views/draw/support/Box.js +1 -1
- package/views/draw/support/GraphicMover.js +1 -1
- package/views/draw/support/HighlightHelper.js +5 -0
- package/views/draw/support/Reshape.js +1 -1
- package/views/draw/support/layerUtils.js +1 -1
- package/views/interactive/InteractiveToolBase.js +1 -1
- package/views/support/WatchUpdatingTracking.js +1 -1
- package/views/support/projectionUtils.js +1 -1
- package/views/webgl/RenderingContext.js +1 -1
- package/views/webgl/enums.js +1 -1
- package/widgets/BasemapGallery/BasemapGalleryViewModel.js +1 -1
- package/widgets/BasemapGallery/support/BasemapGalleryItem.js +1 -1
- package/widgets/BasemapToggle/BasemapToggleViewModel.js +1 -1
- package/widgets/BasemapToggle.js +1 -1
- package/widgets/Directions/support/resources.js +1 -1
- package/widgets/Directions.js +1 -1
- package/widgets/FeatureTable/FeatureTableViewModel.js +1 -1
- package/widgets/FeatureTable/Grid/Grid.js +1 -1
- package/widgets/FeatureTable/support/FeatureStore.js +1 -1
- package/widgets/FeatureTable.js +1 -1
- package/widgets/Legend/styles/Card.js +1 -1
- package/widgets/Legend/support/ActiveLayerInfo.js +1 -1
- package/widgets/Legend/support/sizeRampUtils.js +1 -1
- package/widgets/ShadowCast/ShadowCastViewModel.js +1 -1
- package/widgets/Sketch/SketchViewModel.js +1 -1
- package/widgets/Sketch.js +1 -1
- package/widgets/TimeSlider.js +1 -1
- package/widgets/Weather/WeatherViewModel.js +1 -1
- package/widgets/Weather.js +1 -1
- package/widgets/Widget.js +1 -1
- package/widgets/support/InteractiveAnalysisViewModel.js +1 -1
- package/widgets/support/vnodeCache.js +5 -0
- package/widgets/support/widgetUtils.js +1 -1
- package/assets/esri/core/workers/chunks/0453fad5cb819797b4f6.js +0 -1
- package/assets/esri/core/workers/chunks/0c15d77d8e817cf45a9a.js +0 -1
- package/assets/esri/core/workers/chunks/0cd0a6eef51fc5b9ea61.js +0 -1
- package/assets/esri/core/workers/chunks/0d684f16f37d5dc385dd.js +0 -1
- package/assets/esri/core/workers/chunks/16b6d0f8378582c051c3.js +0 -1
- package/assets/esri/core/workers/chunks/1877ab1b6a115dbba1c5.js +0 -1
- package/assets/esri/core/workers/chunks/197ec52641aed20029c6.js +0 -1
- package/assets/esri/core/workers/chunks/1b2a961f776a0b57e57a.js +0 -1
- package/assets/esri/core/workers/chunks/1b3fd66577b19aa5f2b6.js +0 -1
- package/assets/esri/core/workers/chunks/1c733b7db092a2a88ef3.js +0 -1
- package/assets/esri/core/workers/chunks/2629adf79e7fd9f25f07.js +0 -1
- package/assets/esri/core/workers/chunks/27474b007988855bea9d.js +0 -1
- package/assets/esri/core/workers/chunks/2b25fc7945a187c2bb9d.js +0 -1
- package/assets/esri/core/workers/chunks/34b59d7099904dcb28b5.js +0 -1
- package/assets/esri/core/workers/chunks/422537fc3df707bb62c9.js +0 -1
- package/assets/esri/core/workers/chunks/483d5d8593d96d0f0b15.js +0 -1
- package/assets/esri/core/workers/chunks/4ba6de8aa7e2960bad49.js +0 -1
- package/assets/esri/core/workers/chunks/4be35af7d6babbfe9d84.js +0 -1
- package/assets/esri/core/workers/chunks/5457962a70bd3c557a75.js +0 -1
- package/assets/esri/core/workers/chunks/57856b4a9b8784a69844.js +0 -1
- package/assets/esri/core/workers/chunks/57b349d1dbc0bed75b79.js +0 -1
- package/assets/esri/core/workers/chunks/5d11b97b667921d67ae7.js +0 -1
- package/assets/esri/core/workers/chunks/5dbe555a5a662ff3d9ce.js +0 -1
- package/assets/esri/core/workers/chunks/64b7e8d812ea8fcf269e.js +0 -1
- package/assets/esri/core/workers/chunks/75d812955a473d0e8960.js +0 -1
- package/assets/esri/core/workers/chunks/94515fb3ef38067eeadd.js +0 -1
- package/assets/esri/core/workers/chunks/952980635afc7ec81804.js +0 -1
- package/assets/esri/core/workers/chunks/96f148a556a2418038de.js +0 -1
- package/assets/esri/core/workers/chunks/9876a1bae350795fab36.js +0 -1
- package/assets/esri/core/workers/chunks/a1930e4f035bc9aa1ae5.js +0 -1
- package/assets/esri/core/workers/chunks/a8692bffb76444c34760.js +0 -1
- package/assets/esri/core/workers/chunks/b3f5e91116112b0b612a.js +0 -1
- package/assets/esri/core/workers/chunks/ba762bcfd74af0bb8218.js +0 -1
- package/assets/esri/core/workers/chunks/be588873c16770ceb9ef.js +0 -1
- package/assets/esri/core/workers/chunks/bf6dda4a2af14c4b7716.js +0 -1
- package/assets/esri/core/workers/chunks/c2253a9f29c1aabb2b75.js +0 -1
- package/assets/esri/core/workers/chunks/c984b3040e120e502b11.js +0 -1
- package/assets/esri/core/workers/chunks/cdbc005eebec1503b99d.js +0 -1
- package/assets/esri/core/workers/chunks/d04fca5d46cca02500b7.js +0 -1
- package/assets/esri/core/workers/chunks/d1fe53b597351dc58305.js +0 -1
- package/assets/esri/core/workers/chunks/d98dab12b71912fa397b.js +0 -1
- package/assets/esri/core/workers/chunks/dedc333a61081772ca7b.js +0 -1
- package/assets/esri/core/workers/chunks/e218bde41ffbcc5194f5.js +0 -1
- package/assets/esri/core/workers/chunks/e287f49184d076af17e2.js +0 -1
- package/assets/esri/core/workers/chunks/e9e5196b44b6923be1a3.js +0 -1
- package/assets/esri/core/workers/chunks/ea595b0df5050eda2a13.js +0 -1
- package/assets/esri/core/workers/chunks/eb82ff10cef2bde6e57f.js +0 -1
- package/assets/esri/core/workers/chunks/ee6e0db58dc64410e687.js +0 -1
- package/assets/esri/core/workers/chunks/f0a9f161805fc7a30fc5.js +0 -1
- package/renderers/AnimatedFlowRenderer.d.ts +0 -4
- package/renderers/AnimatedFlowRenderer.js +0 -5
- package/views/2d/engine/flow/AnimatedFlowView2D.js +0 -5
- package/views/2d/engine/flow/animatedFlowRendererUtils.js +0 -5
- package/views/2d/layers/imagery/ImageryGraphicsView2D.js +0 -5
package/views/2d/engine/Stage.js
CHANGED
|
@@ -2,4 +2,4 @@
|
|
|
2
2
|
All material copyright ESRI, All Rights Reserved, unless otherwise specified.
|
|
3
3
|
See https://js.arcgis.com/4.23/esri/copyright.txt for details.
|
|
4
4
|
*/
|
|
5
|
-
import e from"../../../core/Error.js";import{on as t}from"../../../core/events.js";import i from"../../../core/has.js";import{isSome as r}from"../../../core/maybe.js";import{addFrameTask as s}from"../../../core/scheduling.js";import{init as n}from"../../../core/watchUtils.js";import{t as a}from"../../../chunks/common.js";import{a as o,r as h}from"../../../chunks/mat2d.js";import{c as l}from"../../../chunks/mat2df64.js";import{c as d}from"../../../chunks/mat3f32.js";import{s as c,t as p}from"../../../chunks/vec2.js";import{a as m}from"../../../chunks/vec2f64.js";import _ from"../../../symbols/cim/CIMResourceManager.js";import{Container as u}from"./Container.js";import{WGLDrawPhase as g}from"./webgl/enums.js";import f from"./webgl/Painter.js";import{Profiler as b}from"./webgl/Profiler.js";import{stencil as R}from"./webgl/shaders/StencilPrograms.js";import{Timeline as w}from"../support/Timeline.js";import{resampleHermite as O,encodeResult as E,createEmptyImageData as F}from"../../support/screenshotUtils.js";import{BufferObject as T}from"../../webgl/BufferObject.js";import{createContextOrErrorHTML as y}from"../../webgl/context-util.js";import{TargetType as C,DepthStencilTargetType as x,StencilOperation as B,CompareFunction as P,PrimitiveType as S,DataType as j,TextureSamplingMode as L,PixelFormat as A,PixelType as D,Usage as v}from"../../webgl/enums.js";import{FramebufferObject as k}from"../../webgl/FramebufferObject.js";import{createProgram as M}from"../../webgl/ProgramTemplate.js";import{RenderingContext as H}from"../../webgl/RenderingContext.js";import{VertexArrayObject as I}from"../../webgl/VertexArrayObject.js";import{VertexElementDescriptor as U}from"../../webgl/VertexElementDescriptor.js";const W=2e3;class q extends u{constructor(n,a){super(),this._trash=new Set,this._clipData=new Float32Array(8),this._upperLeft=m(),this._upperRight=m(),this._lowerLeft=m(),this._lowerRight=m(),this._mat2=l(),this._clipRendererInitialized=!1,this._renderRemainingTime=0,this._lastFrameRenderTime=0,this.renderRequested=!1,this.stage=this,this._stationary=!0;const{canvas:o=document.createElement("canvas"),alpha:h=!0,stencil:d=!0,contextOptions:c={}}=a;this._canvas=o;const p=y("2d",o,{alpha:h,antialias:!1,depth:!0,stencil:d});this.context=new H(r(p)?p:null,c),this.resourceManager=new _,this.painter=new f(this.context,this,this.resourceManager),i("esri-2d-profiler")&&(this._debugOutput=document.createElement("div"),this._debugOutput.setAttribute("style","margin: 24px 64px; position: absolute; color: red;"),n.appendChild(this._debugOutput)),this._renderParameters={drawPhase:0,state:this.state,pixelRatio:window.devicePixelRatio,stationary:!1,globalOpacity:1,blendMode:null,deltaTime:-1,time:0,inFadeTransition:!1,effects:null,context:this.context,painter:this.painter,timeline:a.timeline||new w,renderingOptions:a.renderingOptions,requireFBO:!1,profiler:new b(this.context,this._debugOutput),dataUploadCounter:0},this._taskHandle=s({render:e=>this.renderFrame(e)}),this._taskHandle.pause(),this._lostWebGLContextHandle=t(o,"webglcontextlost",(()=>{this.emit("webgl-error",{error:new e("webgl-context-lost")})})),o.setAttribute("style","width: 100%; height:100%; display:block;"),n.appendChild(o)}destroy(){this.removeAllChildren(),this._emptyTrash(),this._taskHandle.remove(),this._taskHandle=null,this._boundFBO=null,this._clipFBO&&(this._clipFBO.dispose(),this._clipFBO=null),this._clipVAO&&(this._clipVAO.dispose(),this._clipVAO=null,this._clipVBO=null),this._clipStencilProgram&&(this._clipStencilProgram.dispose(),this._clipStencilProgram=null),this._lostWebGLContextHandle&&(this._lostWebGLContextHandle.remove(),this._lostWebGLContextHandle=null),this._canvas.parentNode&&this._canvas.parentNode.removeChild(this._canvas),this._debugOutput&&this._debugOutput.parentNode&&this._debugOutput.parentNode.removeChild(this._debugOutput),this.highlightOptions=null,this.resourceManager.destroy(),this.painter.dispose(),this.context.dispose(),this._canvas=null}get background(){return this._background}set background(e){this._background=e,this.requestRender()}get highlightOptions(){return this._highlightOptions}set highlightOptions(e){this._highlightOptionsHandle&&(this._highlightOptionsHandle.remove(),this._highlightOptionsHandle=null),this._highlightOptions=e,this._highlightOptions&&(this._highlightOptionsHandle=n(this._highlightOptions,"version",(()=>{this.painter.setHighlightOptions(e),this.requestRender()})))}get renderingOptions(){return this._renderingOptions}set renderingOptions(e){this._renderingOptions=e,this.requestRender()}get state(){return this._state}set state(e){this._state=e,this.requestRender()}get stationary(){return this._stationary}set stationary(e){this._stationary!==e&&(this._stationary=e,this.requestRender())}trashDisplayObject(e){this._trash.add(e),this.requestRender()}untrashDisplayObject(e){return this._trash.delete(e)}requestRender(){this._renderRemainingTime=W,this.renderRequested||(this.renderRequested=!0,this.emit("will-render"),this._taskHandle.resume())}renderFrame(e){const t=this._lastFrameRenderTime?e.time-this._lastFrameRenderTime:0;this._renderRemainingTime-=t,this._renderRemainingTime<=0&&this._taskHandle.pause(),this._lastFrameRenderTime=e.time,this.renderRequested=!1,this._renderParameters.state=this._state,this._renderParameters.stationary=this.stationary,this._renderParameters.pixelRatio=window.devicePixelRatio,this._renderParameters.globalOpacity=1,this._renderParameters.time=e.time,this._renderParameters.deltaTime=e.deltaTime,this._renderParameters.effects=null,this.processRender(this._renderParameters),this._emptyTrash(),this.emit("post-render")}_createTransforms(){return{dvs:d()}}renderChildren(e){for(const t of this.children)t.beforeRender(e);this._renderChildren(this.children,e);for(const t of this.children)t.afterRender(e)}_renderChildren(e,t){const r=this.context;t.profiler.recordStart("drawLayers"),t.dataUploadCounter=0,this._beforeRenderChildren(t),t.drawPhase=g.MAP,this.painter.beforeRenderLayers(r,this.background);for(const i of e)i.processRender(t);this.painter.renderLayers(r),t.drawPhase=g.HIGHLIGHT,this.painter.beforeRenderLayers(r);for(const i of e)i.processRender(t);this.painter.renderLayers(r);if(this._isLabelDrawPhaseRequired(e)){t.drawPhase=g.LABEL,this.painter.beforeRenderLayers(r);for(const i of e)i.processRender(t);this.painter.renderLayers(r)}if(i("esri-tiles-debug")){t.drawPhase=g.DEBUG,this.painter.beforeRenderLayers(r);for(const i of e)i.processRender(t);this.painter.renderLayers(r)}t.profiler.recordEnd("drawLayers"),this._afterRenderChildren()}_beforeRenderChildren(e){const{context:t}=this,{state:i,pixelRatio:r}=e;t.setClearDepth(1),t.setClearColor(0,0,0,0),t.clear(t.gl.COLOR_BUFFER_BIT|t.gl.DEPTH_BUFFER_BIT);const{size:s,rotation:n}=i,l=Math.round(s[0]*r),d=Math.round(s[1]*r);this._boundFBO=t.getBoundFramebufferObject();if(!(i.spatialReference&&(i.spatialReference._isWrappable?i.spatialReference._isWrappable():i.spatialReference.isWrappable)))return void(this._clipFrame=!1);const m=a(n),_=Math.abs(Math.cos(m)),u=Math.abs(Math.sin(m)),g=Math.round(l*_+d*u),f=Math.round(i.worldScreenWidth);if(g<=f)return void(this._clipFrame=!1);this._clipFBO&&this._clipFBO.width===l&&this._clipFBO.height===d||(this._clipFBO=new k(t,{colorTarget:C.TEXTURE,depthStencilTarget:x.DEPTH_STENCIL_RENDER_BUFFER,width:l,height:d}));const b=(this.state.padding.left-this.state.padding.right)/2,R=(this.state.padding.bottom-this.state.padding.top)/2,w=.5*l,O=.5*d,E=1/l,F=1/d,T=f*r*.5,y=.5*(l*u+d*_),B=this._upperLeft,P=this._upperRight,S=this._lowerLeft,j=this._lowerRight;c(B,-T,-y),c(P,T,-y),c(S,-T,y),c(j,T,y),o(this._mat2,[w+b,O-R]),0!==n&&h(this._mat2,this._mat2,m),p(B,B,this._mat2),p(P,P,this._mat2),p(S,S,this._mat2),p(j,j,this._mat2);const L=this._clipData;L.set([2*S[0]*E-1,2*(d-S[1])*F-1,2*j[0]*E-1,2*(d-j[1])*F-1,2*B[0]*E-1,2*(d-B[1])*F-1,2*P[0]*E-1,2*(d-P[1])*F-1]),this._clipRendererInitialized||this._initializeClipRenderer(t),this._clipVBO.setData(L),this._boundFBO=t.getBoundFramebufferObject(),t.bindFramebuffer(this._clipFBO),t.setDepthWriteEnabled(!0),t.setStencilWriteMask(255),t.setClearColor(0,0,0,0),t.setClearDepth(1),t.setClearStencil(0),t.clear(t.gl.COLOR_BUFFER_BIT|t.gl.DEPTH_BUFFER_BIT|t.gl.STENCIL_BUFFER_BIT),t.setDepthWriteEnabled(!1),this._clipFrame=!0}_afterRenderChildren(){const e=this.context;if(e.logIno(),this._clipFrame&&this._clipRendererInitialized){if(e.bindFramebuffer(this._boundFBO),this._boundFBO=null,e.bindVAO(this._clipVAO),e.useProgram(this._clipStencilProgram),e.setDepthWriteEnabled(!1),e.setDepthTestEnabled(!1),e.setStencilTestEnabled(!0),e.setBlendingEnabled(!1),e.setColorMask(!1,!1,!1,!1),e.setStencilOp(B.KEEP,B.KEEP,B.REPLACE),e.setStencilWriteMask(255),e.setStencilFunction(P.ALWAYS,1,255),e.drawElements(S.TRIANGLES,6,j.UNSIGNED_SHORT,0),e.bindVAO(),e.setColorMask(!0,!0,!0,!0),null!=this.background){const{r:t,g:i,b:r,a:s}=this.background.color;e.setClearColor(s*t/255,s*i/255,s*r/255,s)}else e.setClearColor(0,0,0,0);e.clear(e.gl.COLOR_BUFFER_BIT),e.setBlendingEnabled(!0),e.setStencilFunction(P.EQUAL,1,255),this.painter.blitTexture(e,this._clipFBO.colorTexture,L.NEAREST,1),e.setStencilTestEnabled(!1)}}doRender(e){const t=this.context,{state:i,pixelRatio:r}=e;this._resizeCanvas(e),t.setViewport(0,0,r*i.size[0],r*i.size[1]),t.setDepthWriteEnabled(!0),t.setStencilWriteMask(255),super.doRender(e)}async takeScreenshot(e){const{framebufferWidth:t,framebufferHeight:i}={framebufferWidth:Math.round(this._renderParameters.state.size[0]*e.resolutionScale),framebufferHeight:Math.round(this._renderParameters.state.size[1]*e.resolutionScale)},r=1,s=this.context,n=this._state.clone();if(null!=e.rotation){const t=n.viewpoint;n.viewpoint.rotation=e.rotation,n.viewpoint=t}const a={...this._renderParameters,drawPhase:null,globalOpacity:1,stationary:!0,state:n,pixelRatio:r,time:Date.now(),deltaTime:0,blendMode:null,effects:null,inFadeTransition:!1},o=new k(s,{colorTarget:C.TEXTURE,depthStencilTarget:x.DEPTH_STENCIL_RENDER_BUFFER,width:t,height:i}),h=s.getBoundFramebufferObject(),l=s.getViewport();s.bindFramebuffer(o),s.setViewport(0,0,t,i),this._renderChildren(e.children,a);const d=this._readbackScreenshot(o,{...e.cropArea,y:i-(e.cropArea.y+e.cropArea.height)});s.bindFramebuffer(h),s.setViewport(l.x,l.y,l.width,l.height),this.requestRender();const c=await d;let p;1===e.outputScale?p=c:(p=new ImageData(Math.round(c.width*e.outputScale),Math.round(c.height*e.outputScale)),O(c,p,!0));return E(p,{format:e.format,quality:e.quality,rotation:0,disableDecorations:!1},document.createElement("canvas"),{flipY:!0,premultipliedAlpha:!0})}async _readbackScreenshot(e,t){const i=F(t.width,t.height,document.createElement("canvas"));return await e.readPixelsAsync(t.x,t.y,t.width,t.height,A.RGBA,D.UNSIGNED_BYTE,new Uint8Array(i.data.buffer)),i}_resizeCanvas(e){const t=this._canvas,i=t.style,{state:{size:r},pixelRatio:s}=e,n=r[0],a=r[1],o=Math.round(n*s),h=Math.round(a*s);t.width===o&&t.height===h||(t.width=o,t.height=h),i.width=n+"px",i.height=a+"px"}_initializeClipRenderer(e){if(this._clipRendererInitialized)return!0;const t=M(e,R);if(!t)return!1;const i=T.createVertex(e,v.STREAM_DRAW,this._clipData),r=new Uint16Array([0,1,2,2,1,3]),s=T.createIndex(e,v.STATIC_DRAW,r),n=R.attributes,a={geometry:[new U("a_pos",2,j.FLOAT,0,8)]},o=new I(e,n,a,{geometry:i},s);return this._clipStencilProgram=t,this._clipVBO=i,this._clipVAO=o,this._clipRendererInitialized=!0,!0}_emptyTrash(){for(;this._trash.size>0;){const e=Array.from(this._trash);this._trash.clear();for(const t of e)t.processDetach()}}_isLabelDrawPhaseRequired(e){let t=!1;for(const i of e){if(!(i instanceof u)){t=t||!1;break}if(i.hasLabels)return!0;t=t||this._isLabelDrawPhaseRequired(i.children)}return t}}export{W as EXTRA_RENDER_TIME,q as Stage};
|
|
5
|
+
import e from"../../../core/Error.js";import{on as t}from"../../../core/events.js";import i from"../../../core/has.js";import{isSome as r}from"../../../core/maybe.js";import{addFrameTask as s}from"../../../core/scheduling.js";import{init as n}from"../../../core/watchUtils.js";import{t as a}from"../../../chunks/common.js";import{a as o,r as h}from"../../../chunks/mat2d.js";import{c as l}from"../../../chunks/mat2df64.js";import{c as d}from"../../../chunks/mat3f32.js";import{s as c,t as p}from"../../../chunks/vec2.js";import{a as m}from"../../../chunks/vec2f64.js";import u from"../../../symbols/cim/CIMResourceManager.js";import{Container as _}from"./Container.js";import{WGLDrawPhase as g}from"./webgl/enums.js";import f from"./webgl/Painter.js";import{Profiler as b}from"./webgl/Profiler.js";import{stencil as R}from"./webgl/shaders/StencilPrograms.js";import{Timeline as w}from"../support/Timeline.js";import{resampleHermite as O,encodeResult as E,createEmptyImageData as F}from"../../support/screenshotUtils.js";import{BufferObject as T}from"../../webgl/BufferObject.js";import{createContextOrErrorHTML as y}from"../../webgl/context-util.js";import{TargetType as C,DepthStencilTargetType as x,StencilOperation as B,CompareFunction as P,PrimitiveType as S,DataType as j,TextureSamplingMode as L,PixelFormat as A,PixelType as v,Usage as D}from"../../webgl/enums.js";import{FramebufferObject as k}from"../../webgl/FramebufferObject.js";import{createProgram as M}from"../../webgl/ProgramTemplate.js";import{RenderingContext as H}from"../../webgl/RenderingContext.js";import{VertexArrayObject as I}from"../../webgl/VertexArrayObject.js";import{VertexElementDescriptor as U}from"../../webgl/VertexElementDescriptor.js";const q=2e3;class W extends _{constructor(n,a){super(),this._trash=new Set,this._clipData=new Float32Array(8),this._upperLeft=m(),this._upperRight=m(),this._lowerLeft=m(),this._lowerRight=m(),this._mat2=l(),this._clipRendererInitialized=!1,this._renderRemainingTime=0,this._lastFrameRenderTime=0,this.renderRequested=!1,this.stage=this,this._stationary=!0;const{canvas:o=document.createElement("canvas"),alpha:h=!0,stencil:d=!0,contextOptions:c={}}=a;this._canvas=o;const p=y("2d",o,{alpha:h,antialias:!1,depth:!0,stencil:d});this.context=new H(r(p)?p:null,c),this.resourceManager=new u,this.painter=new f(this.context,this,this.resourceManager),i("esri-2d-profiler")&&(this._debugOutput=document.createElement("div"),this._debugOutput.setAttribute("style","margin: 24px 64px; position: absolute; color: red;"),n.appendChild(this._debugOutput)),this._renderParameters={drawPhase:0,state:this.state,pixelRatio:window.devicePixelRatio,stationary:!1,globalOpacity:1,blendMode:null,deltaTime:-1,time:0,inFadeTransition:!1,effects:null,context:this.context,painter:this.painter,timeline:a.timeline||new w,renderingOptions:a.renderingOptions,requireFBO:!1,profiler:new b(this.context,this._debugOutput),dataUploadCounter:0},this._taskHandle=s({render:e=>this.renderFrame(e)}),this._taskHandle.pause(),this._lostWebGLContextHandle=t(o,"webglcontextlost",(()=>{this.emit("webgl-error",{error:new e("webgl-context-lost")})})),o.setAttribute("style","width: 100%; height:100%; display:block;"),n.appendChild(o)}destroy(){this.removeAllChildren(),this._emptyTrash(),this._taskHandle.remove(),this._taskHandle=null,this._boundFBO=null,this._clipFBO&&(this._clipFBO.dispose(),this._clipFBO=null),this._clipVAO&&(this._clipVAO.dispose(),this._clipVAO=null,this._clipVBO=null),this._clipStencilProgram&&(this._clipStencilProgram.dispose(),this._clipStencilProgram=null),this._lostWebGLContextHandle&&(this._lostWebGLContextHandle.remove(),this._lostWebGLContextHandle=null),this._canvas.parentNode&&this._canvas.parentNode.removeChild(this._canvas),this._debugOutput&&this._debugOutput.parentNode&&this._debugOutput.parentNode.removeChild(this._debugOutput),this.highlightOptions=null,this.resourceManager.destroy(),this.painter.dispose(),this.context.dispose(),this._canvas=null}get background(){return this._background}set background(e){this._background=e,this.requestRender()}get highlightOptions(){return this._highlightOptions}set highlightOptions(e){this._highlightOptionsHandle&&(this._highlightOptionsHandle.remove(),this._highlightOptionsHandle=null),this._highlightOptions=e,this._highlightOptions&&(this._highlightOptionsHandle=n(this._highlightOptions,"version",(()=>{this.painter.setHighlightOptions(e),this.requestRender()})))}get renderingOptions(){return this._renderingOptions}set renderingOptions(e){this._renderingOptions=e,this.requestRender()}get state(){return this._state}set state(e){this._state=e,this.requestRender()}get stationary(){return this._stationary}set stationary(e){this._stationary!==e&&(this._stationary=e,this.requestRender())}trashDisplayObject(e){this._trash.add(e),this.requestRender()}untrashDisplayObject(e){return this._trash.delete(e)}requestRender(){this._renderRemainingTime=q,this.renderRequested||(this.renderRequested=!0,this.emit("will-render"),this._taskHandle.resume())}renderFrame(e){const t=this._lastFrameRenderTime?e.time-this._lastFrameRenderTime:0;this._renderRemainingTime-=t,this._renderRemainingTime<=0&&this._taskHandle.pause(),this._lastFrameRenderTime=e.time,this.renderRequested=!1,this._renderParameters.state=this._state,this._renderParameters.stationary=this.stationary,this._renderParameters.pixelRatio=window.devicePixelRatio,this._renderParameters.globalOpacity=1,this._renderParameters.time=e.time,this._renderParameters.deltaTime=e.deltaTime,this._renderParameters.effects=null,this.processRender(this._renderParameters),this._emptyTrash(),this.emit("post-render")}_createTransforms(){return{dvs:d()}}renderChildren(e){for(const t of this.children)t.beforeRender(e);this._renderChildren(this.children,e);for(const t of this.children)t.afterRender(e)}_renderChildren(e,t){const r=this.context;t.profiler.recordStart("drawLayers"),t.dataUploadCounter=0,this._beforeRenderChildren(t),t.drawPhase=g.MAP,this.painter.beforeRenderLayers(r,this.background);for(const i of e)i.processRender(t);this.painter.renderLayers(r),t.drawPhase=g.HIGHLIGHT,this.painter.beforeRenderLayers(r);for(const i of e)i.processRender(t);this.painter.renderLayers(r);if(this._isLabelDrawPhaseRequired(e)){t.drawPhase=g.LABEL,this.painter.beforeRenderLayers(r);for(const i of e)i.processRender(t);this.painter.renderLayers(r)}if(i("esri-tiles-debug")){t.drawPhase=g.DEBUG,this.painter.beforeRenderLayers(r);for(const i of e)i.processRender(t);this.painter.renderLayers(r)}t.profiler.recordEnd("drawLayers"),this._afterRenderChildren()}_beforeRenderChildren(e){const{context:t}=this,{state:i,pixelRatio:r}=e;t.setClearDepth(1),t.setClearColor(0,0,0,0),t.clear(t.gl.COLOR_BUFFER_BIT|t.gl.DEPTH_BUFFER_BIT);const{size:s,rotation:n}=i,l=Math.round(s[0]*r),d=Math.round(s[1]*r);this._boundFBO=t.getBoundFramebufferObject();if(!i.spatialReference.isWrappable)return void(this._clipFrame=!1);const m=a(n),u=Math.abs(Math.cos(m)),_=Math.abs(Math.sin(m)),g=Math.round(l*u+d*_),f=Math.round(i.worldScreenWidth);if(g<=f)return void(this._clipFrame=!1);this._clipFBO&&this._clipFBO.width===l&&this._clipFBO.height===d||(this._clipFBO=new k(t,{colorTarget:C.TEXTURE,depthStencilTarget:x.DEPTH_STENCIL_RENDER_BUFFER,width:l,height:d}));const b=(this.state.padding.left-this.state.padding.right)/2,R=(this.state.padding.bottom-this.state.padding.top)/2,w=.5*l,O=.5*d,E=1/l,F=1/d,T=f*r*.5,y=.5*(l*_+d*u),B=this._upperLeft,P=this._upperRight,S=this._lowerLeft,j=this._lowerRight;c(B,-T,-y),c(P,T,-y),c(S,-T,y),c(j,T,y),o(this._mat2,[w+b,O-R]),0!==n&&h(this._mat2,this._mat2,m),p(B,B,this._mat2),p(P,P,this._mat2),p(S,S,this._mat2),p(j,j,this._mat2);const L=this._clipData;L.set([2*S[0]*E-1,2*(d-S[1])*F-1,2*j[0]*E-1,2*(d-j[1])*F-1,2*B[0]*E-1,2*(d-B[1])*F-1,2*P[0]*E-1,2*(d-P[1])*F-1]),this._clipRendererInitialized||this._initializeClipRenderer(t),this._clipVBO.setData(L),this._boundFBO=t.getBoundFramebufferObject(),t.bindFramebuffer(this._clipFBO),t.setDepthWriteEnabled(!0),t.setStencilWriteMask(255),t.setClearColor(0,0,0,0),t.setClearDepth(1),t.setClearStencil(0),t.clear(t.gl.COLOR_BUFFER_BIT|t.gl.DEPTH_BUFFER_BIT|t.gl.STENCIL_BUFFER_BIT),t.setDepthWriteEnabled(!1),this._clipFrame=!0}_afterRenderChildren(){const e=this.context;if(e.logIno(),this._clipFrame&&this._clipRendererInitialized){if(e.bindFramebuffer(this._boundFBO),this._boundFBO=null,e.bindVAO(this._clipVAO),e.useProgram(this._clipStencilProgram),e.setDepthWriteEnabled(!1),e.setDepthTestEnabled(!1),e.setStencilTestEnabled(!0),e.setBlendingEnabled(!1),e.setColorMask(!1,!1,!1,!1),e.setStencilOp(B.KEEP,B.KEEP,B.REPLACE),e.setStencilWriteMask(255),e.setStencilFunction(P.ALWAYS,1,255),e.drawElements(S.TRIANGLES,6,j.UNSIGNED_SHORT,0),e.bindVAO(),e.setColorMask(!0,!0,!0,!0),null!=this.background){const{r:t,g:i,b:r,a:s}=this.background.color;e.setClearColor(s*t/255,s*i/255,s*r/255,s)}else e.setClearColor(0,0,0,0);e.clear(e.gl.COLOR_BUFFER_BIT),e.setBlendingEnabled(!0),e.setStencilFunction(P.EQUAL,1,255),this.painter.blitTexture(e,this._clipFBO.colorTexture,L.NEAREST,1),e.setStencilTestEnabled(!1)}}doRender(e){const t=this.context,{state:i,pixelRatio:r}=e;this._resizeCanvas(e),t.setViewport(0,0,r*i.size[0],r*i.size[1]),t.setDepthWriteEnabled(!0),t.setStencilWriteMask(255),super.doRender(e)}async takeScreenshot(e){const{framebufferWidth:t,framebufferHeight:i}={framebufferWidth:Math.round(this._renderParameters.state.size[0]*e.resolutionScale),framebufferHeight:Math.round(this._renderParameters.state.size[1]*e.resolutionScale)},r=1,s=this.context,n=this._state.clone();if(null!=e.rotation){const t=n.viewpoint;n.viewpoint.rotation=e.rotation,n.viewpoint=t}const a={...this._renderParameters,drawPhase:null,globalOpacity:1,stationary:!0,state:n,pixelRatio:r,time:performance.now(),deltaTime:0,blendMode:null,effects:null,inFadeTransition:!1},o=new k(s,{colorTarget:C.TEXTURE,depthStencilTarget:x.DEPTH_STENCIL_RENDER_BUFFER,width:t,height:i}),h=s.getBoundFramebufferObject(),l=s.getViewport();s.bindFramebuffer(o),s.setViewport(0,0,t,i),this._renderChildren(e.children,a);const d=this._readbackScreenshot(o,{...e.cropArea,y:i-(e.cropArea.y+e.cropArea.height)});s.bindFramebuffer(h),s.setViewport(l.x,l.y,l.width,l.height),this.requestRender();const c=await d;let p;1===e.outputScale?p=c:(p=new ImageData(Math.round(c.width*e.outputScale),Math.round(c.height*e.outputScale)),O(c,p,!0));return E(p,{format:e.format,quality:e.quality,rotation:0,disableDecorations:!1},document.createElement("canvas"),{flipY:!0,premultipliedAlpha:!0})}async _readbackScreenshot(e,t){const i=F(t.width,t.height,document.createElement("canvas"));return await e.readPixelsAsync(t.x,t.y,t.width,t.height,A.RGBA,v.UNSIGNED_BYTE,new Uint8Array(i.data.buffer)),i}_resizeCanvas(e){const t=this._canvas,i=t.style,{state:{size:r},pixelRatio:s}=e,n=r[0],a=r[1],o=Math.round(n*s),h=Math.round(a*s);t.width===o&&t.height===h||(t.width=o,t.height=h),i.width=n+"px",i.height=a+"px"}_initializeClipRenderer(e){if(this._clipRendererInitialized)return!0;const t=M(e,R);if(!t)return!1;const i=T.createVertex(e,D.STREAM_DRAW,this._clipData),r=new Uint16Array([0,1,2,2,1,3]),s=T.createIndex(e,D.STATIC_DRAW,r),n=R.attributes,a={geometry:[new U("a_pos",2,j.FLOAT,0,8)]},o=new I(e,n,a,{geometry:i},s);return this._clipStencilProgram=t,this._clipVBO=i,this._clipVAO=o,this._clipRendererInitialized=!0,!0}_emptyTrash(){for(;this._trash.size>0;){const e=Array.from(this._trash);this._trash.clear();for(const t of e)t.processDetach()}}_isLabelDrawPhaseRequired(e){let t=!1;for(const i of e){if(!(i instanceof _)){t=t||!1;break}if(i.hasLabels)return!0;t=t||this._isLabelDrawPhaseRequired(i.children)}return t}}export{q as EXTRA_RENDER_TIME,W as Stage};
|
|
@@ -2,4 +2,4 @@
|
|
|
2
2
|
All material copyright ESRI, All Rights Reserved, unless otherwise specified.
|
|
3
3
|
See https://js.arcgis.com/4.23/esri/copyright.txt for details.
|
|
4
4
|
*/
|
|
5
|
-
import{isNone as e}from"../../../../core/maybe.js";import t from"../webgl/brushes/WGLBrush.js";import{
|
|
5
|
+
import{isNone as e}from"../../../../core/maybe.js";import t from"../webgl/brushes/WGLBrush.js";import{CompareFunction as n,BlendFactor as r,PrimitiveType as a,DataType as s}from"../../../webgl/enums.js";class i extends t{dispose(){}prepareState(e){const{context:t}=e;t.setColorMask(!0,!0,!0,!0),t.setStencilFunction(n.EQUAL,0,255)}draw(t,n){const{context:i}=t,{displayData:o}=n;if(e(o))return;if("loaded"===o.state.name&&o.prepareForRendering(i),"attached"!==o.state.name)return;const f=o.state.resources;i.setFaceCullingEnabled(!1),i.setBlendingEnabled(!0),i.setBlendFunctionSeparate(r.ONE,r.ONE_MINUS_SRC_ALPHA,r.ONE,r.ONE);const d=[];"ramp"===f.values.lineColor.kind&&d.push("vvLineColor"),"ramp"===f.values.lineOpacity.kind&&d.push("vvLineOpacity"),"ramp"===f.values.lineRenderWidth.kind&&d.push("vvLineRenderWidth");const u=t.painter.materialManager.getProgram(t,{vsPath:"raster/flow",fsPath:"raster/flow",attributes:f.locations},d);i.useProgram(u),u.setUniform1f("u_time",t.time/1e3),u.setUniform1f("u_fadeDuration",o.flowStyle.renderSettings.fadeDuration),u.setUniform1f("u_lineSpeed",o.flowStyle.renderSettings.lineSpeed),u.setUniformMatrix3fv("u_dvsMat3",n.transforms.dvs),u.setUniformMatrix3fv("u_displayViewMat3",t.state.displayViewMat3),l(u,"lineColor","vec3",o.flowStyle.renderSettings.lineColor),l(u,"lineOpacity","float",o.flowStyle.renderSettings.lineOpacity),l(u,"lineRenderWidth","float",o.flowStyle.renderSettings.lineRenderWidth),i.bindVAO(f.vertexArray),i.drawElements(a.TRIANGLES,f.indexBuffer.size,s.UNSIGNED_INT,0),o.flowStyle.animated&&n.requestRender()}}function o(e,t,n,r){switch(t){case"int":e.setUniform1iv(n,r);break;case"float":e.setUniform1fv(n,r);break;case"vec2":e.setUniform2fv(n,r);break;case"vec3":e.setUniform3fv(n,r);break;case"vec4":e.setUniform4fv(n,r)}}function l(e,t,n,r){"constant"===r.kind?o(e,n,`u_${t}`,r.value):(o(e,"float",`u_${t}_stops`,r.stops),o(e,n,`u_${t}_values`,r.values),o(e,"int",`u_${t}_count`,[r.count]))}export{i as default};
|
|
@@ -2,4 +2,4 @@
|
|
|
2
2
|
All material copyright ESRI, All Rights Reserved, unless otherwise specified.
|
|
3
3
|
See https://js.arcgis.com/4.23/esri/copyright.txt for details.
|
|
4
4
|
*/
|
|
5
|
-
import e from"../../../../core/Logger.js";const t=e.getLogger("esri.views.2d.engine.flow.FlowDisplayData");class s{constructor(e,t,s,a){this.state={name:"created"},this.flowStyle=e,this.extent=t,this.size=s,this.pixelRatio=a}async load(){const e=new AbortController;this.state={name:"loading",abortController:e};const t=await this.flowStyle.loadResources({extent:this.extent,size:this.size,pixelRatio:this.pixelRatio},e.signal);this.state={name:"loaded",resources:t}}prepareForRendering(e
|
|
5
|
+
import e from"../../../../core/Logger.js";const t=e.getLogger("esri.views.2d.engine.flow.FlowDisplayData");class s{constructor(e,t,s,a){this.state={name:"created"},this.flowStyle=e,this.extent=t,this.size=s,this.pixelRatio=a}async load(){const e=new AbortController;this.state={name:"loading",abortController:e};const t=await this.flowStyle.loadResources({extent:this.extent,size:this.size,pixelRatio:this.pixelRatio},e.signal);this.state={name:"loaded",resources:t}}prepareForRendering(e){if("loaded"!==this.state.name)return void t.error("Only loaded resources can be attached.");const s=this.state.resources;s.prepareForRendering(e),this.state={name:"attached",resources:s}}destroy(){if("loading"===this.state.name)return this.state.abortController.abort(),void(this.state={name:"detached"});"attached"===this.state.name&&(this.state.resources.detach(),this.state={name:"detached"})}update(e){if(!this.flowStyle.areResourcesCompatible(e.flowStyle))return!1;return!(!this.extent.equals(e.extent)||this.size[0]!==e.size[0]||this.size[1]!==e.size[1]||this.pixelRatio!==e.pixelRatio)&&(this.flowStyle=e.flowStyle,!0)}}export{s as default};
|
|
@@ -2,4 +2,4 @@
|
|
|
2
2
|
All material copyright ESRI, All Rights Reserved, unless otherwise specified.
|
|
3
3
|
See https://js.arcgis.com/4.23/esri/copyright.txt for details.
|
|
4
4
|
*/
|
|
5
|
-
import{BufferObject as e}from"../../../webgl/BufferObject.js";import{Usage as
|
|
5
|
+
import{BufferObject as e}from"../../../webgl/BufferObject.js";import{DataType as t,Usage as r}from"../../../webgl/enums.js";import{VertexArrayObject as s}from"../../../webgl/VertexArrayObject.js";import{VertexElementDescriptor as i}from"../../../webgl/VertexElementDescriptor.js";const a=new Map;a.set("a_positionAndSide",0),a.set("a_timeInfo",1),a.set("a_extrude",2),a.set("a_speed",3);const n={geometry:[new i("a_positionAndSide",3,t.FLOAT,0,36),new i("a_timeInfo",3,t.FLOAT,12,36),new i("a_extrude",2,t.FLOAT,24,36),new i("a_speed",1,t.FLOAT,32,36)]};class o{constructor(e,t,r){this.values=r,this._vertexData=e,this._indexData=t}prepareForRendering(t){const i=e.createVertex(t,r.STATIC_DRAW,this._vertexData),o=e.createIndex(t,r.STATIC_DRAW,this._indexData),d=new s(t,a,n,{geometry:i},o);this.vertexBuffer=i,this.indexBuffer=o,this.vertexArray=d,this._vertexData=null,this._indexData=null}detach(){this.vertexArray.dispose(),this.vertexBuffer.dispose(),this.indexBuffer.dispose()}get locations(){return a}}export{o as default};
|
|
@@ -2,4 +2,4 @@
|
|
|
2
2
|
All material copyright ESRI, All Rights Reserved, unless otherwise specified.
|
|
3
3
|
See https://js.arcgis.com/4.23/esri/copyright.txt for details.
|
|
4
4
|
*/
|
|
5
|
-
import{throwIfAborted as e}from"../../../../core/promiseUtils.js";import
|
|
5
|
+
import{throwIfAborted as e}from"../../../../core/promiseUtils.js";import r from"./FlowGLResources.js";import{createFlowRendererSettings as t}from"./flowRendererUtils.js";class i{constructor(e,r,i){this._loadImagery=e,this._createStreamlinesMesh=r,this._rendererSettings=t(i)}get animated(){return this._rendererSettings.lineSpeed>0}get renderSettings(){return this._rendererSettings}areResourcesCompatible(e){let r=!0;return r=r&&e._loadImagery===this._loadImagery,r=r&&e._createStreamlinesMesh===this._createStreamlinesMesh,r=r&&e._rendererSettings.verticesPerLine===this._rendererSettings.verticesPerLine,r=r&&e._rendererSettings.segmentLength===this._rendererSettings.segmentLength,r=r&&e._rendererSettings.lineSpacing===this._rendererSettings.lineSpacing,r=r&&e._rendererSettings.density===this._rendererSettings.density,r=r&&e._rendererSettings.smoothing===this._rendererSettings.smoothing,r=r&&e._rendererSettings.velocityScale===this._rendererSettings.velocityScale,r=r&&e._rendererSettings.minWeightThreshold===this._rendererSettings.minWeightThreshold,r=r&&e._rendererSettings.minSpeedThreshold===this._rendererSettings.minSpeedThreshold,r=r&&e._rendererSettings.mergeLines===this._rendererSettings.mergeLines,r=r&&e._rendererSettings.velocityScale===this._rendererSettings.velocityScale,r=r&&e._rendererSettings.interpolate===this._rendererSettings.interpolate,r=r&&e._rendererSettings.lineColor.kind===this._rendererSettings.lineColor.kind,r=r&&e._rendererSettings.lineOpacity.kind===this._rendererSettings.lineOpacity.kind,r=r&&e._rendererSettings.lineRenderWidth.kind===this._rendererSettings.lineRenderWidth.kind,r&&this._rendererSettings.mergeLines&&(r=e._rendererSettings.lineCollisionWidth===this._rendererSettings.lineCollisionWidth),!!r}async loadResources(t,i){const{extent:n,size:s}=t;e(i);const d=await this._loadImagery(n,s[0],s[1],i),{vertexData:g,indexData:l}=await this._createStreamlinesMesh(this._rendererSettings,d,i);return new r(g,l,{lineColor:this._rendererSettings.lineColor,lineOpacity:this._rendererSettings.lineOpacity,lineRenderWidth:this._rendererSettings.lineRenderWidth})}}export{i as default};
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
/*
|
|
2
|
+
All material copyright ESRI, All Rights Reserved, unless otherwise specified.
|
|
3
|
+
See https://js.arcgis.com/4.23/esri/copyright.txt for details.
|
|
4
|
+
*/
|
|
5
|
+
import{_ as e}from"../../../../chunks/tslib.es6.js";import t from"../../../../Graphic.js";import r from"../../../../core/Accessor.js";import{property as s}from"../../../../core/accessorSupport/decorators/property.js";import"../../../../core/arrayUtils.js";import"../../../../core/has.js";import"../../../../core/accessorSupport/ensureType.js";import{subclass as o}from"../../../../core/accessorSupport/decorators/subclass.js";import{loadImagery as a}from"./dataUtils.js";import i from"./FlowContainer.js";import n from"./FlowStrategy.js";import l from"./FlowStyle.js";let p=class extends r{constructor(){super(...arguments),this._loadImagery=(e,t,r,s)=>a(this.layer,e,t,r,s),this._createStreamlinesMesh=(e,t,r)=>this.layer.createStreamlinesMesh({flowData:t,rendererSettings:e},{signal:r}),this.attached=!1,this.container=null,this.layer=null,this.type="flow",this.redrawOrRefetch=async()=>{this._rendererChanged()}}get updating(){return!this._strategy||this._strategy.updating}attach(){this.container=new i,this._strategy=new n({flowContainer:this.container}),this._rendererChanged()}detach(){this._strategy.destroy(),this.container.removeAllChildren(),this.container=null}update(e){e.stationary?this._strategy.update(e):this.layerView.requestUpdate()}hitTest(e){return new t({attributes:{},geometry:e.clone(),layer:this.layer})}moveEnd(){}async doRefresh(){}_rendererChanged(){if("flow"!==this.layer.renderer.type)return;const e=new l(this._loadImagery,this._createStreamlinesMesh,this.layer.renderer);this.container.flowStyle=e,this.layerView.requestUpdate()}};e([s()],p.prototype,"_strategy",void 0),e([s()],p.prototype,"attached",void 0),e([s()],p.prototype,"container",void 0),e([s()],p.prototype,"layer",void 0),e([s()],p.prototype,"layerView",void 0),e([s()],p.prototype,"type",void 0),e([s()],p.prototype,"updating",null),p=e([o("esri.views.2d.engine.flow.AnimatedFlowView2D")],p);const h=p;export{h as default};
|
|
@@ -2,4 +2,4 @@
|
|
|
2
2
|
All material copyright ESRI, All Rights Reserved, unless otherwise specified.
|
|
3
3
|
See https://js.arcgis.com/4.23/esri/copyright.txt for details.
|
|
4
4
|
*/
|
|
5
|
-
import"../../../../geometry.js";import t from"../../../../core/Logger.js";import{deg2rad as e}from"../../../../core/mathUtils.js";import{isNone as n}from"../../../../core/maybe.js";import{throwIfAborted as r}from"../../../../core/promiseUtils.js";import o from"../../../../core/RandomLCG.js";import{getInfo as i}from"../../../../geometry/support/spatialReferenceUtils.js";import a from"../../../../geometry/Extent.js";const l=t.getLogger("esri.views.2d.engine.flow.dataUtils"),s=
|
|
5
|
+
import"../../../../geometry.js";import t from"../../../../core/Logger.js";import{deg2rad as e}from"../../../../core/mathUtils.js";import{isNone as n}from"../../../../core/maybe.js";import{throwIfAborted as r}from"../../../../core/promiseUtils.js";import o from"../../../../core/RandomLCG.js";import{getInfo as i}from"../../../../geometry/support/spatialReferenceUtils.js";import a from"../../../../geometry/Extent.js";const l=t.getLogger("esri.views.2d.engine.flow.dataUtils"),s=9;async function c(t,e,n){const o=performance.now(),i=h(t,e),a=performance.now(),s=u(t,i,e.width,e.height),c=performance.now(),f=m(s,!0),d=performance.now(),g=w(f),p=performance.now();if(t.profile){const t={"_createFlowFieldFromData()":Math.round(a-o),"_getStreamlines()":Math.round(c-a),"createAnimatedLinesData()":Math.round(d-c),"createLinesMesh()":Math.round(p-d),"Total elapsed time":Math.round(p-o)};l.info("createStreamlinesMesh profile",t)}return await Promise.resolve(),r(n),g}function h(t,e){const n=d(e.data,e.width,e.height,t.smoothing);if(t.interpolate){return(t,r)=>{const o=Math.floor(t),i=Math.floor(r);if(o<0||o>=e.width)return[0,0];if(i<0||i>=e.height)return[0,0];const a=t-o,l=r-i,s=o,c=i,h=o<e.width-1?o+1:o,f=i<e.height-1?i+1:i,u=n[2*(c*e.width+s)],d=n[2*(c*e.width+h)],m=n[2*(f*e.width+s)],w=n[2*(f*e.width+h)],g=n[2*(c*e.width+s)+1],p=n[2*(c*e.width+h)+1];return[(u*(1-l)+m*l)*(1-a)+(d*(1-l)+w*l)*a,(g*(1-l)+n[2*(f*e.width+s)+1]*l)*(1-a)+(p*(1-l)+n[2*(f*e.width+h)+1]*l)*a]}}return(t,r)=>{const o=Math.round(t),i=Math.round(r);return o<0||o>=e.width||i<0||i>=e.height?[0,0]:[n[2*(i*e.width+o)+0],n[2*(i*e.width+o)+1]]}}function f(t,e,n,r,o,i,a,l,s){const c=[];let h=n,f=r,u=0,[d,m]=e(h,f);d*=t.velocityScale,m*=t.velocityScale;const w=Math.sqrt(d*d+m*m);let g,p;c.push({x:h,y:f,t:u,speed:w});for(let y=0;y<t.verticesPerLine;y++){let[n,r]=e(h,f);n*=t.velocityScale,r*=t.velocityScale;const d=Math.sqrt(n*n+r*r);if(d<t.minSpeedThreshold)return c;const m=n/d,w=r/d;h+=m*t.segmentLength,f+=w*t.segmentLength;if(u+=t.segmentLength/d,Math.acos(m*g+w*p)>t.maxTurnAngle)return c;if(t.mergeLines){const t=Math.round(h*s),e=Math.round(f*s);if(t<0||t>a-1||e<0||e>l-1)return c;const n=i[e*a+t];if(-1!==n&&n!==o)return c;i[e*a+t]=o}c.push({x:h,y:f,t:u,speed:d}),g=m,p=w}return c}function u(t,e,n,r){const i=[],a=new o,l=1/Math.max(t.lineCollisionWidth,1),s=Math.round(n*l),c=Math.round(r*l),h=new Int32Array(s*c);for(let o=0;o<h.length;o++)h[o]=-1;const u=[];for(let o=0;o<r;o+=t.lineSpacing)for(let e=0;e<n;e+=t.lineSpacing)u.push({x:e,y:o,sort:a.getFloat()});u.sort(((t,e)=>t.sort-e.sort));for(const{x:o,y:d}of u)if(a.getFloat()<t.density){const n=f(t,e,o,d,i.length,h,s,c,l);if(n.length<2)continue;i.push(n)}return i}function d(t,e,n,r){if(0===r)return t;const o=Math.round(3*r),i=new Array(2*o+1);let a=0;for(let c=-o;c<=o;c++){const t=Math.exp(-c*c/(r*r));i[c+o]=t,a+=t}for(let c=-o;c<=o;c++)i[c+o]/=a;const l=new Float32Array(t.length);for(let c=0;c<n;c++)for(let n=0;n<e;n++){let r=0,a=0;for(let l=-o;l<=o;l++){if(n+l<0||n+l>=e)continue;const s=i[l+o];r+=s*t[2*(c*e+(n+l))+0],a+=s*t[2*(c*e+(n+l))+1]}l[2*(c*e+n)+0]=r,l[2*(c*e+n)+1]=a}const s=new Float32Array(t.length);for(let c=0;c<e;c++)for(let t=0;t<n;t++){let r=0,a=0;for(let s=-o;s<=o;s++){if(t+s<0||t+s>=n)continue;const h=i[s+o];r+=h*l[2*((t+s)*e+c)+0],a+=h*l[2*((t+s)*e+c)+1]}s[2*(t*e+c)+0]=r,s[2*(t*e+c)+1]=a}return s}function m(t,e){const n=new o,r=t.reduce(((t,e)=>t+e.length),0),i=new Float32Array(4*r),a=new Array(t.length);let l=0,s=0;for(const o of t){const t=l;for(const e of o)i[4*l+0]=e.x,i[4*l+1]=e.y,i[4*l+2]=e.t,i[4*l+3]=e.speed,l++;a[s++]={startVertex:t,numberOfVertices:o.length,totalTime:o[o.length-1].t,timeSeed:e?n.getFloat():0}}return{lineVertices:i,lineDescriptors:a}}function w(t,e=10){const{lineVertices:n,lineDescriptors:r}=t;let o=0,i=0;for(const s of r){o+=2*s.numberOfVertices;i+=6*(s.numberOfVertices-1)}const a=new Float32Array(o*s),l=new Uint32Array(i);let c=0,h=0;function f(){l[h++]=c-2,l[h++]=c,l[h++]=c-1,l[h++]=c,l[h++]=c+1,l[h++]=c-1}function u(t,e,n,r,o,i,l,h){const f=c*s;let u=0;a[f+u++]=t,a[f+u++]=e,a[f+u++]=1,a[f+u++]=n,a[f+u++]=i,a[f+u++]=l,a[f+u++]=r/2,a[f+u++]=o/2,a[f+u++]=h,c++,a[f+u++]=t,a[f+u++]=e,a[f+u++]=-1,a[f+u++]=n,a[f+u++]=i,a[f+u++]=l,a[f+u++]=-r/2,a[f+u++]=-o/2,a[f+u++]=h,c++}for(const s of r){const{totalTime:t,timeSeed:r}=s;let o=null,i=null,a=null,l=null,c=null,h=null;for(let d=0;d<s.numberOfVertices;d++){const m=n[4*(s.startVertex+d)+0],w=n[4*(s.startVertex+d)+1],g=n[4*(s.startVertex+d)+2],p=n[4*(s.startVertex+d)+3];let y=null,x=null,M=null,A=null;if(d>0){y=m-o,x=w-i;const n=Math.sqrt(y*y+x*x);if(y/=n,x/=n,d>1){let t=y+c,n=x+h;const r=Math.sqrt(t*t+n*n);t/=r,n/=r;const o=Math.min(1/(t*y+n*x),e);t*=o,n*=o,M=-n,A=t}else M=-x,A=y;null!==M&&null!==A&&(u(o,i,a,M,A,t,r,p),f())}o=m,i=w,a=g,c=y,h=x,l=p}u(o,i,a,-h,c,t,r,l)}return{vertexData:a,indexData:l}}function g(t,n){const r=n.pixels,{width:o,height:i}=n,a=new Float32Array(o*i*2);if("vector-uv"===t)for(let e=0;e<o*i;e++)a[2*e+0]=r[0][e],a[2*e+1]=-r[1][e];else if("vector-magdir"===t)for(let l=0;l<o*i;l++){const t=r[0][l],n=e(r[1][l]),o=Math.cos(n-Math.PI/2),i=Math.sin(n-Math.PI/2);a[2*l+0]=o*t,a[2*l+1]=i*t}return{data:a,width:o,height:i}}async function p(t,e,n,r,o){const l=i(e.spatialReference);if(!l)return y(t,e,n,r,o);const[s,c]=l.valid,h=c-s,f=Math.ceil(e.width/h),u=e.width/f,d=Math.round(n/f);let m=e.xmin;const w=[];for(let i=0;i<f;i++){const n=new a({xmin:m,xmax:m+u,ymin:e.ymin,ymax:e.ymax,spatialReference:e.spatialReference});w.push(y(t,n,d,r,o)),m+=u}const g=await Promise.all(w),p={data:new Float32Array(n*r*2),width:n,height:r};let x=0;for(const i of g){for(let t=0;t<i.height;t++)for(let e=0;e<i.width;e++)x+e>=n||(p.data[2*(t*n+x+e)+0]=i.data[2*(t*i.width+e)+0],p.data[2*(t*n+x+e)+1]=i.data[2*(t*i.width+e)+1]);x+=i.width}return p}async function y(t,e,r,o,i){if("imagery"===t.type){await t.load({signal:i});const a=t.rasterInfo.dataType,l=await t.fetchImage(e,r,o,{signal:i});return!l||n(l.pixelData)||n(l.pixelData.pixelBlock)?{data:new Float32Array(r*o*2),width:r,height:o}:g(a,l.pixelData.pixelBlock)}await t.load({signal:i});const a=t.rasterInfo.dataType,l=await t.fetchPixels(e,r,o,{signal:i});return!l||n(l.pixelBlock)?{data:new Float32Array(r*o*2),width:r,height:o}:g(a,l.pixelBlock)}export{m as createAnimatedLinesData,w as createLinesMesh,c as createStreamlinesMesh,y as fetchPart,p as loadImagery};
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
/*
|
|
2
|
+
All material copyright ESRI, All Rights Reserved, unless otherwise specified.
|
|
3
|
+
See https://js.arcgis.com/4.23/esri/copyright.txt for details.
|
|
4
|
+
*/
|
|
5
|
+
import{pt2px as e}from"../../../../core/screenUtils.js";function t(t){const o=s(t),r=n(o),l=2*r,u=Math.round(e(t.maxPathLength)/l)+1,p=r,c=10,h=i(t),f=a(t),{flowSpeed:d,trailLength:g,density:m}=t;return{lineRenderWidth:o,segmentLength:l,verticesPerLine:u,lineCollisionWidth:p,lineSpacing:c,lineColor:h,lineOpacity:f,lineSpeed:d,fadeDuration:g,density:m,smoothing:e(t.smoothing),velocityScale:"flow-from"===t.flowRepresentation?1:-1,minWeightThreshold:.001,minSpeedThreshold:.001,maxTurnAngle:1,mergeLines:!0,interpolate:!0,profile:!1}}function n(e){return"constant"===e.kind?e.value[0]:e.values[e.values.length-1]}function o(e){const t=e.toRgba();return[t[0]/255,t[1]/255,t[2]/255]}function s(t){if(!t.hasVisualVariables("size"))return{kind:"constant",value:[e(t.trailWidth)]};const n=t.getVisualVariablesForType("size")[0],o=[],s=[];let i;if(n.stops){for(const e of n.stops)o.push(e.value),s.push(e.size);i=n.stops.length}else o.push(n.minDataValue,n.maxDataValue),s.push(n.minSize,n.maxSize),i=2;return{kind:"ramp",stops:o,values:s,count:i}}function i(e){if(!e.hasVisualVariables("color"))return{kind:"constant",value:o(e.color)};const t=e.getVisualVariablesForType("color")[0],n=[],s=[];for(const i of t.stops)n.push(i.value),Array.prototype.push.apply(s,o(i.color));return{kind:"ramp",stops:n,values:s,count:t.stops.length}}function a(e){if(!e.hasVisualVariables("opacity"))return{kind:"constant",value:[1]};const t=e.getVisualVariablesForType("opacity")[0],n=[],o=[];for(const s of t.stops)n.push(s.value),o.push(s.opacity);return{kind:"ramp",stops:n,values:o,count:t.stops.length}}export{t as createFlowRendererSettings};
|
|
@@ -2,4 +2,4 @@
|
|
|
2
2
|
All material copyright ESRI, All Rights Reserved, unless otherwise specified.
|
|
3
3
|
See https://js.arcgis.com/4.23/esri/copyright.txt for details.
|
|
4
4
|
*/
|
|
5
|
-
import t from"../../../../core/Error.js";import e from"../../../../core/has.js";import i from"../../../../core/Logger.js";import{isNone as s,mapMany as r,isSome as a,
|
|
5
|
+
import t from"../../../../core/Error.js";import e from"../../../../core/has.js";import i from"../../../../core/Logger.js";import{isNone as s,mapMany as r,isSome as a,applySome as h,unwrap as d,forEachSome as n,mapOr as o,unwrapOr as u}from"../../../../core/maybe.js";import{createResolver as l}from"../../../../core/promiseUtils.js";import{ATTRIBUTE_DATA_VV as p,TEXTURE_BINDING_ATTRIBUTE_DATA_0 as _,TEXTURE_BINDING_ATTRIBUTE_DATA_1 as x,TEXTURE_BINDING_ATTRIBUTE_DATA_2 as c,TEXTURE_BINDING_ATTRIBUTE_DATA_3 as g}from"./definitions.js";import{getDisplayIdTexel as f}from"./DisplayId.js";import{getPixelArrayCtor as T,getPixelBytes as b}from"./Utils.js";import{createDebugLogger as m,DEBUG_ATTR_UPDATES as y}from"./util/debug.js";import{TextureWrapMode as w,PixelFormat as z,PixelType as E,TextureSamplingMode as U,TextureType as D,TargetType as S,DepthStencilTargetType as A}from"../../../webgl/enums.js";import{FramebufferObject as j}from"../../../webgl/FramebufferObject.js";import{Texture as k}from"../../../webgl/Texture.js";const M=i.getLogger("esri.views.2d.engine.webgl.AttributeStoreView"),N=m(y,M);class O{constructor(t,e,i){this._texture=null,this._lastTexture=null,this._fbos={},this.texelSize=4;const{buffer:s,pixelType:r,textureOnly:a}=t,h=T(r);this.shared=i,this.pixelType=r,this.size=e,this.textureOnly=a,a||(this.data=new h(d(s))),this._resetRange()}destroy(){h(this._texture,(t=>t.dispose()));for(const t in this._fbos)h(this._fbos[t],(e=>{"0"===t&&e.detachColorTexture(),e.dispose()})),this._fbos[t]=null;this._texture=null}get _textureDesc(){return{target:D.TEXTURE_2D,wrapMode:w.CLAMP_TO_EDGE,pixelFormat:z.RGBA,dataType:this.pixelType,samplingMode:U.NEAREST,width:this.size,height:this.size}}setData(t,e,i){const s=f(t),r=d(this.data),a=s*this.texelSize+e;!r||a>=r.length||(r[a]=i,this.dirtyStart=Math.min(this.dirtyStart,s),this.dirtyEnd=Math.max(this.dirtyEnd,s))}getData(t,e){if(s(this.data))return null;const i=f(t)*this.texelSize+e;return!this.data||i>=this.data.length?null:this.data[i]}getTexture(t){return u(this._texture,(()=>this._initTexture(t)))}getFBO(t,e=0){if(s(this._fbos[e])){const i={colorTarget:S.TEXTURE,depthStencilTarget:A.NONE},s=0===e?this.getTexture(t):this._textureDesc;this._fbos[e]=new j(t,i,s)}return this._fbos[e]}get locked(){return!(this.pixelType!==E.UNSIGNED_BYTE||!this.shared||this.textureOnly||!e("esri-atomics")||!this.data)&&1===Atomics.load(this.data,0)}get hasDirty(){const t=this.dirtyStart;return this.dirtyEnd>=t}updateTexture(e,i){if(!this.locked){try{const i=this.dirtyStart,s=this.dirtyEnd;if(!this.hasDirty)return;this._resetRange();const r=d(this.data).buffer,a=this.getTexture(e),h=4,n=(i-i%this.size)/this.size,o=(s-s%this.size)/this.size,u=n,l=this.size,p=o,_=n*this.size*h,x=(l+p*this.size)*h-_,c=T(this.pixelType),g=new c(r,_*c.BYTES_PER_ELEMENT,x),f=this.size,b=p-u+1;if(b>this.size)return void M.error(new t("mapview-webgl","Out-of-bounds index when updating AttributeData"));a.updateData(0,0,u,f,b,g)}catch(s){}i()}}update(t){const{data:e,start:i,end:s}=t;if(a(e)){const s=this.data,r=i*this.texelSize;for(let i=0;i<e.length;i++){const a=1<<i%this.texelSize;t.layout&a&&(s[r+i]=e[i])}}this.dirtyStart=Math.min(this.dirtyStart,i),this.dirtyEnd=Math.max(this.dirtyEnd,s)}resize(t,e){const i=this.size;if(this.size=e,this.textureOnly)return void(i!==this.size&&(this._lastTexture=this._texture,this._texture=null));const s=T(this.pixelType);this.destroy(),this.data=new s(d(t.buffer))}_resetRange(){this.dirtyStart=2147483647,this.dirtyEnd=0}_initTexture(t){const e=new k(t,this._textureDesc,u(this.data,void 0));if(a(this._lastTexture)&&this._fbos[0]){const i=this._lastTexture.descriptor.width,s=this._lastTexture.descriptor.height,r=this._lastTexture.descriptor.dataType,a=this._lastTexture.descriptor.pixelFormat,h=this.getFBO(t),d=b(r),n=new(T(r))(new ArrayBuffer(i*s*d*this.texelSize)),o=t.getBoundFramebufferObject(),{x:u,y:l,width:p,height:_}=t.getViewport();t.bindFramebuffer(h),h.readPixels(0,0,i,s,a,r,n),e.updateData(0,0,0,2*i,s/2,n),t.setViewport(u,l,p,_),t.bindFramebuffer(o)}return this.destroy(),this._texture=e,this._texture}}class F{constructor(t){this._onUpdate=t,this._initialized=!1,this._forceNextUpload=!1,this._locked=!1}initialize(t){const{blocks:e,shared:i,size:h}=t;if(this.shared=i,this.size=h,N("Initializing AttributeStoreView",t),s(this._data))this._data=r(e,(t=>new O(t,h,i)));else for(let r=0;r<this._data.length;r++){const t=this._data[r],d=e[r];a(d)&&(s(t)?this._data[r]=new O(d,h,i):t.resize(d,h))}this._initialized=!0}destroy(){h(this._data,(t=>r(t,(t=>t.destroy())))),h(this._defaultTexture,(t=>t.dispose()))}isEmpty(){const t=this._data;return s(t)}isUpdating(){const t=a(this._pendingAttributeUpdate),i=t;return e("esri-2d-log-updating")&&console.log(`Updating AttributeStoreView ${i}\n -> hasPendingUpdate ${t}`),i}getBlock(t){if(s(this._data))return null;return this._data[t]}setLabelMinZoom(t,e){this.setData(t,0,1,e)}getLabelMinZoom(t){return this.getData(t,0,1,255)}getFilterFlags(t){return this.getData(t,0,0,0)}getVVSize(t){return this.getData(t,p,0,0)}getData(t,e,i,r){if(!this._data)return 0;const h=d(this._data)[e];if(s(h))return 0;const n=h.getData(t,i);return a(n)?n:r}setData(t,e,i,s){const r=d(this._data)[e];d(r).setData(t,i,s)}lockTextureUpload(){this._locked=!0}unlockTextureUpload(){this._locked=!1}forceTextureUpload(){this._forceNextUpload=!0}async requestUpdate(e){if(this._pendingAttributeUpdate)return void M.error(new t("mapview-webgl","Tried to update attribute data with a pending update"));const i=l();return N("AttributeStoreView Update Requested",e),this._pendingAttributeUpdate={data:e,resolver:i},i.promise}update(){if(this._initialized&&a(this._pendingAttributeUpdate)){const{data:t,resolver:e}=this._pendingAttributeUpdate,i=d(this._data);for(let s=0;s<t.blocks.length;s++){const e=t.blocks[s],r=i[s];h(r,(t=>h(e,(e=>{N(`Updating block ${s}`,e),t.update(e)}))))}this._pendingAttributeUpdate=null,e(),this._onUpdate()}}bindTextures(t,e=!0){this.update();const i=this._getDefaultTexture(t);if(!this._initialized)return t.bindTexture(i,_),void(e&&(t.bindTexture(i,x),t.bindTexture(i,c),t.bindTexture(i,g)));const s=d(this._data);this._locked&&!this._forceNextUpload||(n(s,(e=>e.updateTexture(t,(()=>this._onUpdate())))),this._forceNextUpload=!1),t.bindTexture(o(s[0],i,(e=>e.getTexture(t))),_),e&&(t.bindTexture(o(s[1],i,(e=>e.getTexture(t))),x),t.bindTexture(o(s[2],i,(e=>e.getTexture(t))),c),t.bindTexture(o(s[3],i,(e=>e.getTexture(t))),g))}_getDefaultTexture(t){if(s(this._defaultTexture)){const e={wrapMode:w.CLAMP_TO_EDGE,pixelFormat:z.RGBA,dataType:E.UNSIGNED_BYTE,samplingMode:U.NEAREST,width:1,height:1};this._defaultTexture=new k(t,e,new Uint8Array(4))}return this._defaultTexture}}export{F as AttributeStoreView};
|
|
@@ -2,4 +2,4 @@
|
|
|
2
2
|
All material copyright ESRI, All Rights Reserved, unless otherwise specified.
|
|
3
3
|
See https://js.arcgis.com/4.23/esri/copyright.txt for details.
|
|
4
4
|
*/
|
|
5
|
-
import{isNone as e}from"../../../../../../core/maybe.js";import a from"../WGLBrush.js";import{BlendFactor as t,StencilOperation as r,CompareFunction as s,PrimitiveType as o,DataType as n}from"../../../../../webgl/enums.js";const i=new Float32Array([.27058823529411763,.4588235294117647,.7098039215686275,1,.396078431372549,.5372549019607843,.7215686274509804,1,.5176470588235295,.6196078431372549,.7294117647058823,1,.6352941176470588,.7058823529411765,.7411764705882353,1,.7529411764705882,.8,.7450980392156863,1,.8705882352941177,.8901960784313725,.7490196078431373,1,1,1,.7490196078431373,1,1,.8627450980392157,.6313725490196078,1,.9803921568627451,.7254901960784313,.5176470588235295,1,.9607843137254902,.596078431372549,.4117647058823529,1,.9294117647058824,.4588235294117647,.3176470588235294,1,.9098039215686274,.08235294117647059,.08235294117647059,1]),
|
|
5
|
+
import{isNone as e}from"../../../../../../core/maybe.js";import a from"../WGLBrush.js";import{BlendFactor as t,StencilOperation as r,CompareFunction as s,PrimitiveType as o,DataType as n}from"../../../../../webgl/enums.js";const i=new Float32Array([.27058823529411763,.4588235294117647,.7098039215686275,1,.396078431372549,.5372549019607843,.7215686274509804,1,.5176470588235295,.6196078431372549,.7294117647058823,1,.6352941176470588,.7058823529411765,.7411764705882353,1,.7529411764705882,.8,.7450980392156863,1,.8705882352941177,.8901960784313725,.7490196078431373,1,1,1,.7490196078431373,1,1,.8627450980392157,.6313725490196078,1,.9803921568627451,.7254901960784313,.5176470588235295,1,.9607843137254902,.596078431372549,.4117647058823529,1,.9294117647058824,.4588235294117647,.3176470588235294,1,.9098039215686274,.08235294117647059,.08235294117647059,1]),l={beaufort_ft:i,beaufort_m:i,beaufort_km:i,beaufort_mi:i,beaufort_kn:new Float32Array([.1568627450980392,.5725490196078431,.7803921568627451,1,.34901960784313724,.6352941176470588,.7294117647058823,1,.5058823529411764,.7019607843137254,.6705882352941176,1,.6274509803921569,.7607843137254902,.6078431372549019,1,.7490196078431373,.8313725490196079,.5411764705882353,1,.8549019607843137,.9019607843137255,.4666666666666667,1,.9803921568627451,.9803921568627451,.39215686274509803,1,.9882352941176471,.8352941176470589,.3254901960784314,1,.9882352941176471,.7019607843137254,.4,1,.9803921568627451,.5529411764705883,.20392156862745098,1,.9686274509803922,.43137254901960786,.16470588235294117,1,.9411764705882353,.2784313725490196,.11372549019607843,1]),classified_arrow:new Float32Array([.2196078431372549,.6588235294117647,0,1,.5450980392156862,1.2117647058823529,0,1,1,1,0,1,1,.5019607843137255,0,1,1,0,0,1]),ocean_current_m:new Float32Array([.3058823529411765,.10196078431372549,.6,1,.7019607843137254,.10588235294117647,.10196078431372549,1,.792156862745098,.5019607843137255,.10196078431372549,1,.6941176470588235,.6941176470588235,.6941176470588235,1]),ocean_current_kn:new Float32Array([0,0,0,1,0,.1450980392156863,.39215686274509803,1,.3058823529411765,.10196078431372549,.6,1,.592156862745098,0,.39215686274509803,1,.7019607843137254,.10588235294117647,.10196078431372549,1,.6941176470588235,.3058823529411765,.10196078431372549,1,.792156862745098,.5019607843137255,.10196078431372549,1,.6941176470588235,.7019607843137254,.20392156862745098,1,.6941176470588235,.6941176470588235,.6941176470588235,1]),single_arrow:new Float32Array([0,92/255,230/255,1]),wind_speed:new Float32Array([0,0,0,1])};class c extends a{constructor(){super(...arguments),this._desc={magdir:{vsPath:"raster/magdir",fsPath:"raster/magdir",attributes:new Map([["a_pos",0],["a_offset",1],["a_vv",2]])},scalar:{vsPath:"raster/scalar",fsPath:"raster/scalar",attributes:new Map([["a_pos",0],["a_offset",1],["a_vv",2]])}}}dispose(){}prepareState({context:e},a){e.setBlendingEnabled(!0),e.setBlendFunctionSeparate(t.ONE,t.ONE_MINUS_SRC_ALPHA,t.ONE,t.ONE_MINUS_SRC_ALPHA),e.setColorMask(!0,!0,!0,!0),e.setStencilWriteMask(0),e.setStencilTestEnabled(!0),e.setStencilOp(r.KEEP,r.KEEP,r.REPLACE),e.setStencilFunction(s.EQUAL,a.stencilRef,255)}draw(a,t){if(e(t.source)||0===t.source.validPixelCount)return;const{timeline:r}=a;if(r.begin(this.name),t.updateVectorFieldVAO(a),"scalar"===a.renderPass){const e=t.vaoData.scalar;e&&this._drawScalars(a,t,e.vao,e.elementCount)}else{const e=t.vaoData.magdir;e&&this._drawTriangles(a,t,e.vao,e.elementCount)}r.end(this.name)}_drawTriangles(e,a,t,r){const{context:s,painter:i}=e,{symbolizerParameters:c}=a,m=c.dataRange?["dataRange"]:[];"geographic"===c.rotationType&&m.push("rotationGeographic");const d=i.materialManager.getProgram(e,this._desc.magdir,m);s.useProgram(d);const{coordScale:f,opacity:_,transforms:u}=a;d.setUniform2fv("u_coordScale",f),d.setUniform1f("u_opacity",_),d.setUniformMatrix3fv("u_dvsMat3",u.dvs);const{style:g,dataRange:p,rotation:y,symbolPercentRange:S}=c;d.setUniform4fv("u_colors",l[g]||l.single_arrow),d.setUniform2fv("u_dataRange",p),d.setUniform1f("u_rotation",y),d.setUniform2fv("u_symbolPercentRange",S);const v=this._getSymbolSize(e,a);d.setUniform2fv("u_symbolSize",v),s.bindVAO(t),s.drawElements(o.TRIANGLES,r,n.UNSIGNED_INT,0)}_drawScalars(e,a,t,r){const{context:s,painter:i}=e,{symbolizerParameters:l}=a,c=[];"wind_speed"===l.style?c.push("innerCircle"):l.dataRange&&c.push("dataRange"),"geographic"===l.rotationType&&c.push("rotationGeographic");const m=i.materialManager.getProgram(e,this._desc.scalar,c);s.useProgram(m);const{coordScale:d,opacity:f,transforms:_}=a;m.setUniform2fv("u_coordScale",d),m.setUniform1f("u_opacity",f),m.setUniformMatrix3fv("u_dvsMat3",_.dvs);const{dataRange:u,symbolPercentRange:g}=l;m.setUniform2fv("u_dataRange",u),m.setUniform2fv("u_symbolPercentRange",g);const p=this._getSymbolSize(e,a);m.setUniform2fv("u_symbolSize",p),s.bindVAO(t),s.drawElements(o.TRIANGLES,r,n.UNSIGNED_INT,0)}_getSymbolSize(e,a){const t=a.key?2**(e.displayLevel-a.key.level):a.resolution/e.state.resolution,{symbolTileSize:r}=a.symbolizerParameters;return[r/(Math.round((a.width-a.offset[0])/r)*r)/t,r/(Math.round((a.height-a.offset[1])/r)*r)/t]}}export{c as default};
|
|
@@ -2,4 +2,4 @@
|
|
|
2
2
|
All material copyright ESRI, All Rights Reserved, unless otherwise specified.
|
|
3
3
|
See https://js.arcgis.com/4.23/esri/copyright.txt for details.
|
|
4
4
|
*/
|
|
5
|
-
import{
|
|
5
|
+
import{applySome as t,isSome as i,unwrapOrThrow as s,isNone as r}from"../../../../../core/maybe.js";import{TypedBuffer as e}from"../BufferPool.js";import{FreeList as h}from"./FreeList.js";import{BufferObject as n}from"../../../../webgl/BufferObject.js";import{Usage as a}from"../../../../webgl/enums.js";const d=1.25,u=32767,c=u<<16|u;class p{constructor(t,i,s){const r=e.create(i*s*Uint32Array.BYTES_PER_ELEMENT);this.strideInt=s,this.bufferType=t,this.dirty={start:1/0,end:0},this.gpu=null,this._cpu=r,this.clear()}get elementSize(){return this._cpu.length/this.strideInt}destroy(){t(this.gpu,(t=>t.dispose())),t(this._cpu,(t=>t.destroy())),t(this._cpu2,(t=>t.destroy()))}clear(){this.dirty.start=1/0,this.dirty.end=0,this.freeList=new h({start:0,end:this._cpu.length/this.strideInt}),this.fillPointer=0}ensure(t){if(this.maxAvailableSpace()>=t)return;if(t*this.strideInt>this._cpu.length-this.fillPointer){i(this.gpu)&&(this.gpu=null);const s=this._cpu.length/this.strideInt,r=Math.round((s+t)*d),e=r*this.strideInt;this._cpu.expand(e*Uint32Array.BYTES_PER_ELEMENT),this.freeList.free(s,r-s)}}set(t,i){this._cpu.array[t]!==i&&(this._cpu.array[t]=i,this.dirty.start=Math.min(t,this.dirty.start),this.dirty.end=Math.max(t,this.dirty.end))}getBuffer(){if(!this._cpu2){const t=this._cpu.slice();this._cpu2=t}return this._cpu2.length!==this._cpu.length&&this._cpu2.expand(this._cpu.length*this._cpu.array.BYTES_PER_ELEMENT),this._cpu2.set(this._cpu),this._cpu2}get bufferSize(){return this._cpu.length/this.strideInt}maxAvailableSpace(){return this.freeList.maxAvailableSpace()}insert(t,i,r,e){const h=r*this.strideInt,n=i*this.strideInt*Uint32Array.BYTES_PER_ELEMENT,a=new Uint32Array(t,n,h),d=s(this.freeList.firstFit(r),"First fit region must be defined")*this.strideInt,u=h,c=d/this.strideInt-i;if(0!==e)for(let s=0;s<a.length;s++)a[s]+=e;return this._cpu.array.set(a,d),this.dirty.start=Math.min(this.dirty.start,d),this.dirty.end=Math.max(this.dirty.end,d+u),this.fillPointer=Math.max(this.fillPointer,d+u),c}free(t,i,s){const r=t*this.strideInt,e=(t+i)*this.strideInt;if(!0===s)for(let h=t;h!==t+i;h++)this._cpu.array[h*this.strideInt]=c;this.dirty.start=Math.min(this.dirty.start,r),this.dirty.end=Math.max(this.dirty.end,e),this.freeList.free(t,i)}upload(t){if(this.dirty.end){if(r(this.gpu))return this.gpu=this._createBuffer(t),this.dirty.start=1/0,void(this.dirty.end=0);this.gpu.setSubDataFromView(this._cpu.array,this.dirty.start,this.dirty.start,this.dirty.end),this.dirty.start=1/0,this.dirty.end=0}}_createBuffer(t){const i=a.DYNAMIC_DRAW;return"index"===this.bufferType?n.createIndex(t,i,this._cpu.array):n.createVertex(t,i,this._cpu.array)}}export{p as Buffer};
|
|
@@ -2,4 +2,4 @@
|
|
|
2
2
|
All material copyright ESRI, All Rights Reserved, unless otherwise specified.
|
|
3
3
|
See https://js.arcgis.com/4.23/esri/copyright.txt for details.
|
|
4
4
|
*/
|
|
5
|
-
import{
|
|
5
|
+
import{applySome as e,isNone as t,isSome as i,unwrap as r}from"../../../../../../core/maybe.js";import{pt2px as s}from"../../../../../../core/screenUtils.js";import{deltaDecodeGeometry as o,convertFromGeometry as n}from"../../../../../../layers/graphics/featureConversionUtils.js";import{CIMMarkerPlacementHelper as h}from"../../../../../../symbols/cim/placements/CIMMarkerPlacementHelper.js";import{MAGIC_LABEL_LINE_HEIGHT as a}from"../../definitions.js";import{WGLGeometryType as x}from"../../enums.js";import{i8888to32 as l,i1616to32 as m}from"../../number.js";import{MaterialKeyBase as d}from"../../materialKey/MaterialKey.js";import{shapeGlyphs as c}from"./shapingUtils.js";const f=8,_=_=>class extends _{constructor(...e){super(...e),this._isCIM=!1,this._vertexBoundsScale=1,this.geometryType=x.TEXT,this._aux=l(0,0,this._referenceSize,this._bitset)}bindTextInfo(t,i){t&&t.length?this._shapingInfo=e(t,(e=>c(e,i,{scale:this._scale,angle:this._angle,xOffset:this._xOffset,yOffset:this._yOffset,hAlign:this._xAlignD,vAlign:this._yAlignD,maxLineWidth:Math.max(32,Math.min(this._lineWidth,512)),lineHeight:a*Math.max(.25,Math.min(this._lineHeight,4)),decoration:this._decoration,isCIM:this._isCIM}))):this._shapingInfo=null}_write(e,t,i,r){const s=t.getDisplayId();this._writeGeometry(e,t,s,i,r)}_writeGeometry(e,r,s,h,a){const x=this._shapingInfo;if(t(x))return;if(i(this._textPlacement)){const t=null!=a?a:r.readLegacyGeometryForDisplay();return this._writePlacedText(e,s,t,x,h)}const l=a?o(n(a),2):"esriGeometryPolygon"===r.geometryType?r.readCentroid():r.readGeometryForDisplay();if(!t(l)){if(l.isPoint){const[t,i]=l.coords;if(!e.hasAggregates&&e.hasPixelBufferEnabled&&(t<0||t>=512||i<0||i>=512))return;return this._writeGlyphs(e,s,{x:t,y:i},x)}l.forEachVertex(((t,i)=>this._writeGlyphs(e,s,{x:t,y:i},x)))}}_writePlacedText(e,t,i,o,n){const a=r(this._textPlacement),x=h.getPlacement(i,a,s(1),n.geometryEngine);if(!x)return;let l=x.next();for(;null!=l;){const i=l.getAngle();o.setRotation(i);const r=l.tx,s=l.ty;r<0||r>=512||s<0||s>=512?l=x.next():(this._writeGlyphs(e,t,{x:r,y:s},o),o.setRotation(-i),l=x.next())}}_writeGlyphs(e,t,i,r){const s=d.load(this._materialKey),o=m(Math.round(f*i.x),Math.round(f*i.y)),n=this._vertexBoundsScale,h=r.bounds,a=2*Math.max(h.width,h.height);for(const x of r.glyphs)s.textureBinding=x.textureBinding,e.recordStart(t,s.data,this.geometryType,!0),e.vertexBounds(i.x+h.x+this._xOffset,i.y+h.y-this._yOffset,a*n,a*n),this._writeVertices(e,t,o,x),e.recordEnd()}_writeGlyph(e,t,i,r,s){const o=d.load(this._materialKey),n=m(Math.round(f*i),Math.round(f*r));o.textureBinding=s.textureBinding,e.recordStart(t,o.data,this.geometryType,!0);const h=s.bounds,a=this._vertexBoundsScale;e.vertexBounds(i+h.x*a,r+h.y*a,h.width*a,h.height*a),this._writeVertices(e,t,n,s),e.recordEnd()}_writeVertices(e,t,i,r){const s=e.vertexCount();this._writeVertexCommon(e,t,i,r),e.vertexWrite(r.offsets.upperLeft),e.vertexWrite(r.texcoords.upperLeft),e.vertexEnd(),this._writeVertexCommon(e,t,i,r),e.vertexWrite(r.offsets.upperRight),e.vertexWrite(r.texcoords.upperRight),e.vertexEnd(),this._writeVertexCommon(e,t,i,r),e.vertexWrite(r.offsets.lowerLeft),e.vertexWrite(r.texcoords.lowerLeft),e.vertexEnd(),this._writeVertexCommon(e,t,i,r),e.vertexWrite(r.offsets.lowerRight),e.vertexWrite(r.texcoords.lowerRight),e.vertexEnd(),e.indexWrite(s+0),e.indexWrite(s+1),e.indexWrite(s+2),e.indexWrite(s+1),e.indexWrite(s+3),e.indexWrite(s+2)}_writeVertexCommon(e,t,i,r){const s=this._color,o=this._haloColor,n=l(0,0,this._referenceSize,this._bitset),h=l(0,0,this._size,this._haloSize);e.vertexWrite(i),e.vertexWrite(t),e.vertexWrite(s),e.vertexWrite(o),e.vertexWrite(h),e.vertexWrite(n),e.vertexWrite(this._minMaxZoom)}};export{_ as default};
|