@arcgis/core 4.22.0-next.20211205 → 4.22.1
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/PopupTemplate.js +1 -1
- package/assets/esri/core/workers/RemoteClient.js +1 -1
- package/assets/esri/core/workers/chunks/{44ccee36f8c74f4f134e.js → 025df54bafc05c183182.js} +1 -1
- package/assets/esri/core/workers/chunks/{23af0b02208e20d5c07e.js → 04adf8c6c5e8ad67aa06.js} +1 -1
- package/assets/esri/core/workers/chunks/0677ed519c51710d7629.js +1 -0
- package/assets/esri/core/workers/chunks/2174266668fa6f2df8cc.js +1 -0
- package/assets/esri/core/workers/chunks/25017204ffbd1bbac91f.js +1 -0
- package/assets/esri/core/workers/chunks/28f9b48b59bf1347facd.js +1 -0
- package/assets/esri/core/workers/chunks/2d97adeb48adeecd7607.js +1 -0
- package/assets/esri/core/workers/chunks/{52aa3b44bddb10caa343.js → 2f29fb12452d363a1b17.js} +1 -1
- package/assets/esri/core/workers/chunks/{96a62dc1e07f3ef20a30.js → 32efb77e3dabd2c11446.js} +1 -1
- package/assets/esri/core/workers/chunks/{6a1ce00bcb689ea95bcb.js → 3a4885bf1cfc82cf2b67.js} +1 -1
- package/assets/esri/core/workers/chunks/{ff9a9e705237c55f78ff.js → 49bf6ce6b31a0028cee1.js} +1 -1
- package/assets/esri/core/workers/chunks/{02ce52ca0084536bc066.js → 4f4cc4ebd68dbd5ee9c3.js} +1 -1
- package/assets/esri/core/workers/chunks/5a31dfbac9c7e15a4dc5.js +1 -0
- package/assets/esri/core/workers/chunks/60bfe5450b85b0d4605f.js +1 -0
- package/assets/esri/core/workers/chunks/{f3da8b797c8e1fcb1c21.js → 63161320a58a0b1702a2.js} +1 -1
- package/assets/esri/core/workers/chunks/{d7f77fe32bb2d69b5714.js → 762f45a7ecd40d564be2.js} +1 -1
- package/assets/esri/core/workers/chunks/7b12bf4be88ca0e14683.js +1 -0
- package/assets/esri/core/workers/chunks/{07bfb7bb4447aeacd87a.js → 7db1818ed9e834402e98.js} +1 -1
- package/assets/esri/core/workers/chunks/{8bc4ea821be16a752226.js → 8b98fc7d115469e6ae5d.js} +1 -1
- package/assets/esri/core/workers/chunks/{6210b23872c362f51b12.js → a3b7217566347ab595d0.js} +1 -1
- package/assets/esri/core/workers/chunks/{bc0b85bc1e5116836ba4.js → ac9b25ce30f2cd569944.js} +1 -1
- package/assets/esri/core/workers/chunks/{058955b87ce2aa1b1809.js → c535188091d83fd50d74.js} +1 -1
- package/assets/esri/core/workers/chunks/{4417dfcb2ba50ac9f199.js → d431b35c274b76150724.js} +1 -1
- package/assets/esri/core/workers/chunks/{5f2718cd77cbd5ba7920.js → da62f8159ec2fdbdeb58.js} +1 -1
- package/assets/esri/core/workers/chunks/{b6b46f8e6a7d8d3cef50.js → db00e63a7c4fdf635a8c.js} +1 -1
- package/assets/esri/core/workers/chunks/{489147cf21d55f47d0e6.js → e7117121160907a593d4.js} +1 -1
- package/assets/esri/core/workers/chunks/{44145763617ea985cce4.js → fa9c5dd90d19d4061b40.js} +1 -1
- package/assets/esri/widgets/Editor/t9n/Editor_ar.json +1 -1
- package/assets/esri/widgets/Editor/t9n/Editor_bg.json +1 -1
- package/assets/esri/widgets/Editor/t9n/Editor_bs.json +1 -1
- package/assets/esri/widgets/Editor/t9n/Editor_ca.json +1 -1
- package/assets/esri/widgets/Editor/t9n/Editor_cs.json +1 -1
- package/assets/esri/widgets/Editor/t9n/Editor_da.json +1 -1
- package/assets/esri/widgets/Editor/t9n/Editor_de.json +1 -1
- package/assets/esri/widgets/Editor/t9n/Editor_el.json +1 -1
- package/assets/esri/widgets/Editor/t9n/Editor_es.json +1 -1
- package/assets/esri/widgets/Editor/t9n/Editor_et.json +1 -1
- package/assets/esri/widgets/Editor/t9n/Editor_fi.json +1 -1
- package/assets/esri/widgets/Editor/t9n/Editor_fr.json +1 -1
- package/assets/esri/widgets/Editor/t9n/Editor_he.json +1 -1
- package/assets/esri/widgets/Editor/t9n/Editor_hr.json +1 -1
- package/assets/esri/widgets/Editor/t9n/Editor_hu.json +1 -1
- package/assets/esri/widgets/Editor/t9n/Editor_id.json +1 -1
- package/assets/esri/widgets/Editor/t9n/Editor_it.json +1 -1
- package/assets/esri/widgets/Editor/t9n/Editor_ja.json +1 -1
- package/assets/esri/widgets/Editor/t9n/Editor_ko.json +1 -1
- package/assets/esri/widgets/Editor/t9n/Editor_lt.json +1 -1
- package/assets/esri/widgets/Editor/t9n/Editor_lv.json +1 -1
- package/assets/esri/widgets/Editor/t9n/Editor_nb.json +1 -1
- package/assets/esri/widgets/Editor/t9n/Editor_nl.json +1 -1
- package/assets/esri/widgets/Editor/t9n/Editor_pl.json +1 -1
- package/assets/esri/widgets/Editor/t9n/Editor_pt-BR.json +1 -1
- package/assets/esri/widgets/Editor/t9n/Editor_pt-PT.json +1 -1
- package/assets/esri/widgets/Editor/t9n/Editor_ro.json +1 -1
- package/assets/esri/widgets/Editor/t9n/Editor_ru.json +1 -1
- package/assets/esri/widgets/Editor/t9n/Editor_sk.json +1 -1
- package/assets/esri/widgets/Editor/t9n/Editor_sl.json +1 -1
- package/assets/esri/widgets/Editor/t9n/Editor_sr.json +1 -1
- package/assets/esri/widgets/Editor/t9n/Editor_sv.json +1 -1
- package/assets/esri/widgets/Editor/t9n/Editor_th.json +1 -1
- package/assets/esri/widgets/Editor/t9n/Editor_tr.json +1 -1
- package/assets/esri/widgets/Editor/t9n/Editor_uk.json +1 -1
- package/assets/esri/widgets/Editor/t9n/Editor_vi.json +1 -1
- package/assets/esri/widgets/Editor/t9n/Editor_zh-CN.json +1 -1
- package/assets/esri/widgets/Editor/t9n/Editor_zh-HK.json +1 -1
- package/assets/esri/widgets/Editor/t9n/Editor_zh-TW.json +1 -1
- package/assets/esri/widgets/UtilityNetworkTrace/t9n/UtilityNetworkTrace_ar.json +1 -1
- package/assets/esri/widgets/UtilityNetworkTrace/t9n/UtilityNetworkTrace_bg.json +1 -1
- package/assets/esri/widgets/UtilityNetworkTrace/t9n/UtilityNetworkTrace_bs.json +1 -1
- package/assets/esri/widgets/UtilityNetworkTrace/t9n/UtilityNetworkTrace_ca.json +1 -1
- package/assets/esri/widgets/UtilityNetworkTrace/t9n/UtilityNetworkTrace_cs.json +1 -1
- package/assets/esri/widgets/UtilityNetworkTrace/t9n/UtilityNetworkTrace_da.json +1 -1
- package/assets/esri/widgets/UtilityNetworkTrace/t9n/UtilityNetworkTrace_de.json +1 -1
- package/assets/esri/widgets/UtilityNetworkTrace/t9n/UtilityNetworkTrace_el.json +1 -1
- package/assets/esri/widgets/UtilityNetworkTrace/t9n/UtilityNetworkTrace_es.json +1 -1
- package/assets/esri/widgets/UtilityNetworkTrace/t9n/UtilityNetworkTrace_et.json +1 -1
- package/assets/esri/widgets/UtilityNetworkTrace/t9n/UtilityNetworkTrace_fi.json +1 -1
- package/assets/esri/widgets/UtilityNetworkTrace/t9n/UtilityNetworkTrace_fr.json +1 -1
- package/assets/esri/widgets/UtilityNetworkTrace/t9n/UtilityNetworkTrace_he.json +1 -1
- package/assets/esri/widgets/UtilityNetworkTrace/t9n/UtilityNetworkTrace_hr.json +1 -1
- package/assets/esri/widgets/UtilityNetworkTrace/t9n/UtilityNetworkTrace_hu.json +1 -1
- package/assets/esri/widgets/UtilityNetworkTrace/t9n/UtilityNetworkTrace_id.json +1 -1
- package/assets/esri/widgets/UtilityNetworkTrace/t9n/UtilityNetworkTrace_it.json +1 -1
- package/assets/esri/widgets/UtilityNetworkTrace/t9n/UtilityNetworkTrace_ja.json +1 -1
- package/assets/esri/widgets/UtilityNetworkTrace/t9n/UtilityNetworkTrace_ko.json +1 -1
- package/assets/esri/widgets/UtilityNetworkTrace/t9n/UtilityNetworkTrace_lt.json +1 -1
- package/assets/esri/widgets/UtilityNetworkTrace/t9n/UtilityNetworkTrace_lv.json +1 -1
- package/assets/esri/widgets/UtilityNetworkTrace/t9n/UtilityNetworkTrace_nb.json +1 -1
- package/assets/esri/widgets/UtilityNetworkTrace/t9n/UtilityNetworkTrace_nl.json +1 -1
- package/assets/esri/widgets/UtilityNetworkTrace/t9n/UtilityNetworkTrace_pl.json +1 -1
- package/assets/esri/widgets/UtilityNetworkTrace/t9n/UtilityNetworkTrace_pt-BR.json +1 -1
- package/assets/esri/widgets/UtilityNetworkTrace/t9n/UtilityNetworkTrace_pt-PT.json +1 -1
- package/assets/esri/widgets/UtilityNetworkTrace/t9n/UtilityNetworkTrace_ro.json +1 -1
- package/assets/esri/widgets/UtilityNetworkTrace/t9n/UtilityNetworkTrace_ru.json +1 -1
- package/assets/esri/widgets/UtilityNetworkTrace/t9n/UtilityNetworkTrace_sk.json +1 -1
- package/assets/esri/widgets/UtilityNetworkTrace/t9n/UtilityNetworkTrace_sl.json +1 -1
- package/assets/esri/widgets/UtilityNetworkTrace/t9n/UtilityNetworkTrace_sr.json +1 -1
- package/assets/esri/widgets/UtilityNetworkTrace/t9n/UtilityNetworkTrace_sv.json +1 -1
- package/assets/esri/widgets/UtilityNetworkTrace/t9n/UtilityNetworkTrace_th.json +1 -1
- package/assets/esri/widgets/UtilityNetworkTrace/t9n/UtilityNetworkTrace_tr.json +1 -1
- package/assets/esri/widgets/UtilityNetworkTrace/t9n/UtilityNetworkTrace_uk.json +1 -1
- package/assets/esri/widgets/UtilityNetworkTrace/t9n/UtilityNetworkTrace_vi.json +1 -1
- package/assets/esri/widgets/UtilityNetworkTrace/t9n/UtilityNetworkTrace_zh-CN.json +1 -1
- package/assets/esri/widgets/UtilityNetworkTrace/t9n/UtilityNetworkTrace_zh-HK.json +1 -1
- package/assets/esri/widgets/UtilityNetworkTrace/t9n/UtilityNetworkTrace_zh-TW.json +1 -1
- package/chunks/Clouds.glsl.js +4 -4
- package/chunks/RibbonLine.glsl.js +55 -61
- package/config.js +1 -1
- package/copyright.txt +47 -19
- package/interfaces.d.ts +184 -47
- package/layers/CSVLayer.js +1 -1
- package/layers/GeoJSONLayer.js +1 -1
- package/layers/mixins/ArcGISImageService.js +1 -1
- package/layers/mixins/operationalLayers.js +1 -1
- package/layers/support/layersCreator.js +1 -1
- package/package.json +1 -1
- package/renderers/VectorFieldRenderer.js +1 -1
- package/renderers/support/RasterSymbolizer.js +1 -1
- package/renderers/support/rasterRendererHelper.js +1 -1
- package/rest/query/operations/query.js +1 -1
- package/smartMapping/raster/renderers/classBreaks.js +1 -1
- package/support/arcadeUtils.js +1 -1
- package/support/revision.js +1 -1
- package/views/2d/MapViewConstraints.js +1 -1
- package/views/2d/constraints/ZoomConstraint.js +1 -1
- package/views/2d/engine/Stage.js +1 -1
- package/views/2d/engine/webgl/collisions/CollisionEngine.js +1 -1
- package/views/2d/engine/webgl/collisions/CollisionGrid.js +1 -1
- package/views/2d/engine/webgl/shaders/sources/shaderRepository.js +1 -1
- package/views/2d/layers/FeatureLayerView2D.js +1 -1
- package/views/2d/layers/VectorTileLayerView2D.js +1 -1
- package/views/2d/layers/graphics/GraphicBoundsRenderer.js +1 -1
- package/views/2d/layers/graphics/GraphicStore.js +1 -1
- package/views/2d/layers/imagery/ImageryGraphicsView2D.js +1 -1
- package/views/3d/environment/Clouds.glsl.js +1 -1
- package/views/3d/environment/CloudsGenerator.js +1 -1
- package/views/3d/environment/NoiseTextureAtlas.js +1 -1
- package/views/MapView.js +1 -1
- package/views/MapViewBase.js +1 -1
- package/views/webgl/Program.js +1 -1
- package/widgets/Histogram.js +1 -1
- package/widgets/Legend/support/ActiveLayerInfo.js +1 -1
- package/widgets/Sketch/SketchViewModel.js +1 -1
- package/widgets/UtilityNetworkTrace.js +1 -1
- package/assets/esri/core/t9n/Units_no.json +0 -1
- package/assets/esri/core/workers/chunks/49bb222ee07a768e998d.js +0 -1
- package/assets/esri/core/workers/chunks/650f04de72c173beaebc.js +0 -1
- package/assets/esri/core/workers/chunks/aa57f2c380132c746730.js +0 -1
- package/assets/esri/core/workers/chunks/af6251cc7973b43a1523.js +0 -1
- package/assets/esri/core/workers/chunks/b17afdfe4450f69298ad.js +0 -1
- package/assets/esri/core/workers/chunks/bad899fd3564ec97f69b.js +0 -1
- package/assets/esri/core/workers/chunks/deba37055be7c2d7da26.js +0 -1
- package/assets/esri/core/workers/chunks/e02a3d456525e76ddb60.js +0 -1
- package/assets/esri/identity/t9n/identity_no.json +0 -1
- package/assets/esri/smartMapping/t9n/smartMapping_no.json +0 -1
- package/assets/esri/t9n/basemaps_no.json +0 -1
- package/assets/esri/t9n/common_no.json +0 -1
- package/assets/esri/widgets/AreaMeasurement2D/t9n/AreaMeasurement2D_no.json +0 -1
- package/assets/esri/widgets/AreaMeasurement3D/t9n/AreaMeasurement3D_no.json +0 -1
- package/assets/esri/widgets/Attachments/t9n/Attachments_no.json +0 -1
- package/assets/esri/widgets/Attribution/t9n/Attribution_no.json +0 -1
- package/assets/esri/widgets/BasemapGallery/t9n/BasemapGallery_no.json +0 -1
- package/assets/esri/widgets/BasemapLayerList/t9n/BasemapLayerList_no.json +0 -1
- package/assets/esri/widgets/BasemapToggle/t9n/BasemapToggle_no.json +0 -1
- package/assets/esri/widgets/Bookmarks/t9n/Bookmarks_no.json +0 -1
- package/assets/esri/widgets/BuildingExplorer/t9n/BuildingExplorer_no.json +0 -1
- package/assets/esri/widgets/Compass/t9n/Compass_no.json +0 -1
- package/assets/esri/widgets/CoordinateConversion/t9n/CoordinateConversion_no.json +0 -1
- package/assets/esri/widgets/Daylight/t9n/Daylight_no.json +0 -1
- package/assets/esri/widgets/DirectLineMeasurement3D/t9n/DirectLineMeasurement3D_no.json +0 -1
- package/assets/esri/widgets/Directions/t9n/Directions_no.json +0 -1
- package/assets/esri/widgets/Directions/t9n/Printout_no.json +0 -1
- package/assets/esri/widgets/DistanceMeasurement2D/t9n/DistanceMeasurement2D_no.json +0 -1
- package/assets/esri/widgets/Editor/t9n/Editor_no.json +0 -1
- package/assets/esri/widgets/ElevationProfile/t9n/ElevationProfile_no.json +0 -1
- package/assets/esri/widgets/Expand/t9n/Expand_no.json +0 -1
- package/assets/esri/widgets/Feature/t9n/Feature_no.json +0 -1
- package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_no.json +0 -1
- package/assets/esri/widgets/FeatureTable/t9n/FeatureTable_no.json +0 -1
- package/assets/esri/widgets/FeatureTemplates/t9n/FeatureTemplates_no.json +0 -1
- package/assets/esri/widgets/FloorFilter/t9n/FloorFilter_no.json +0 -1
- package/assets/esri/widgets/Fullscreen/t9n/Fullscreen_no.json +0 -1
- package/assets/esri/widgets/Histogram/t9n/Histogram_no.json +0 -1
- package/assets/esri/widgets/HistogramRangeSlider/t9n/HistogramRangeSlider_no.json +0 -1
- package/assets/esri/widgets/Home/t9n/Home_no.json +0 -1
- package/assets/esri/widgets/LayerList/t9n/LayerList_no.json +0 -1
- package/assets/esri/widgets/Legend/t9n/Legend_no.json +0 -1
- package/assets/esri/widgets/LineOfSight/t9n/LineOfSight_no.json +0 -1
- package/assets/esri/widgets/Locate/t9n/Locate_no.json +0 -1
- package/assets/esri/widgets/Measurement/t9n/Measurement_no.json +0 -1
- package/assets/esri/widgets/NavigationToggle/t9n/NavigationToggle_no.json +0 -1
- package/assets/esri/widgets/Popup/t9n/Popup_no.json +0 -1
- package/assets/esri/widgets/Print/t9n/Print_no.json +0 -1
- package/assets/esri/widgets/ScaleBar/t9n/ScaleBar_no.json +0 -1
- package/assets/esri/widgets/ScaleRangeSlider/t9n/ScaleRangeSlider_no.json +0 -1
- package/assets/esri/widgets/Search/t9n/Search_no.json +0 -1
- package/assets/esri/widgets/ShadowCast/t9n/ShadowCast_no.json +0 -1
- package/assets/esri/widgets/Sketch/t9n/Sketch_no.json +0 -1
- package/assets/esri/widgets/Slice/t9n/Slice_no.json +0 -1
- package/assets/esri/widgets/Slider/t9n/Slider_no.json +0 -1
- package/assets/esri/widgets/Swipe/t9n/Swipe_no.json +0 -1
- package/assets/esri/widgets/TableList/t9n/TableList_no.json +0 -1
- package/assets/esri/widgets/TimeSlider/t9n/TimeSlider_no.json +0 -1
- package/assets/esri/widgets/Track/t9n/Track_no.json +0 -1
- package/assets/esri/widgets/UtilityNetworkTrace/t9n/UtilityNetworkTrace_no.json +0 -1
- package/assets/esri/widgets/Zoom/t9n/Zoom_no.json +0 -1
- package/assets/esri/widgets/smartMapping/ClassedColorSlider/t9n/ClassedColorSlider_no.json +0 -1
- package/assets/esri/widgets/smartMapping/ClassedSizeSlider/t9n/ClassedSizeSlider_no.json +0 -1
- package/assets/esri/widgets/smartMapping/ColorSizeSlider/t9n/ColorSizeSlider_no.json +0 -1
- package/assets/esri/widgets/smartMapping/ColorSlider/t9n/ColorSlider_no.json +0 -1
- package/assets/esri/widgets/smartMapping/HeatmapSlider/t9n/HeatmapSlider_no.json +0 -1
- package/assets/esri/widgets/smartMapping/OpacitySlider/t9n/OpacitySlider_no.json +0 -1
- package/assets/esri/widgets/smartMapping/SizeSlider/t9n/SizeSlider_no.json +0 -1
- package/assets/esri/widgets/support/SelectionToolbar/t9n/SelectionToolbar_no.json +0 -1
- package/assets/esri/widgets/support/SnappingControls/t9n/SnappingControls_no.json +0 -1
- package/assets/esri/widgets/support/t9n/ColorPicker_no.json +0 -1
- package/assets/esri/widgets/support/t9n/DatePicker_no.json +0 -1
- package/assets/esri/widgets/support/t9n/TimePicker_no.json +0 -1
- package/assets/esri/widgets/support/t9n/timezone_no.json +0 -1
- package/assets/esri/widgets/support/t9n/uriUtils_no.json +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"widgetLabel":"
|
|
1
|
+
{"widgetLabel":"Theo dõi Mạng lưới Tiện ích","widgetDescription":"Một tiện ích để thực hiện theo dõi trong Mạng lưới Tiện ích.","globalStrings":{"selectTerminalPlaceholder":"Chọn Đầu cuối","remove":"Gỡ bỏ","locateFeature":"Định vị","zoomToFeature":"Phóng tới","clearResults":"Hủy","select":"Chọn","cancel":"Hủy","ok":"OK"},"inputsStrings":{"headerTabInputs":"Đầu vào","headerStartingPoint":"Điểm bắt đầu","startingPointHint":"Thêm điểm bắt đầu cho hoạt động theo dõi.","headerBarrier":"Rào cản","barrierButton":"Rào cản","barrierPointHint":"Thêm điểm rào cản cho hoạt động theo dõi.","barrierFilter":"Lọc rào cản","addPointOption":"Thêm một điểm","addPointHint":"Nhấp vào bản đồ để thêm điểm","removeAllPoints":"Xóa tất cả","selectTraces":"Chọn theo dõi"},"tracingStrings":{"traceOperation":"Loại theo dõi","runTrace":"Chạy"},"resultsStrings":{"headerTabResults":"Kết quả","resultsListOptions":"Tùy chọn","ellipsesOptions":"Tùy chọn","displayAttribute":"Hiển thị thuộc tính","sortBy":"Sắp xếp theo","startOverButton":"Xóa tất cả","startOverValidation":"Bạn có chắc không? Tất cả Đầu vào và Kết quả theo dõi sẽ bị mất.","highlightTrace":"Hiển thị đồ họa","noSelectionResults":"Không thể chọn đối tượng này. Bật để hiển thị đồ họa.","viewFeatures":"Đối tượng","selectFeatures":"Chọn các đối tượng","graphicColor":"Chọn màu sắc","functionHeader":"Chức năng","noValue":"Không có giá trị"},"alertsStrings":{"startingPointAlertHeader":"Thiếu điểm bắt đầu","startingPointAlert":"Thêm một điểm bắt đầu để chạy hoạt động theo dõi này.","selectTraceAlertHeader":"Chưa chọn loại theo dõi","selectTraceAlert":"Chọn một loại theo dõi để chạy.","NoRunAlertHeader":"Không có kết quả nào","noResultsInfo":"Đi đến tab Đầu vào để chọn loại theo dõi, thêm điểm bắt đầu và nhấp vào Chạy để xem kết quả.","traceExecuting":"Đang tiến hành theo dõi...","genericResultHeader":"Kết quả theo dõi","noAssetsFoundHeader":"Không thể thêm điểm","noAssetFound":"Điểm phải giao cắt với một đối tượng trên bản đồ.","clearResultsAlert":"Bạn có chắc không? Tất cả kết quả cho lần theo dõi này sẽ bị hủy bỏ.","noTraceSupported":"Bản đồ này không hỗ trợ việc theo dõi Mạng lưới Tiện ích. Xuất bản bản đồ web có Mạng lưới Tiện ích và Cấu hình Theo dõi được chia sẻ."}}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"widgetLabel":"
|
|
1
|
+
{"widgetLabel":"公共设施追踪","widgetDescription":"用于在公共设施网络中执行追踪的微件。","globalStrings":{"selectTerminalPlaceholder":"选择终端","remove":"移除","locateFeature":"定位","zoomToFeature":"缩放至","clearResults":"放弃","select":"选择","cancel":"取消","ok":"确定"},"inputsStrings":{"headerTabInputs":"输入","headerStartingPoint":"起点","startingPointHint":"添加追踪起点。","headerBarrier":"障碍","barrierButton":"障碍","barrierPointHint":"添加追踪障碍点。","barrierFilter":"过滤器障碍","addPointOption":"添加点","addPointHint":"单击地图添加点。","removeAllPoints":"全部移除","selectTraces":"选择轨迹"},"tracingStrings":{"traceOperation":"追踪类型","runTrace":"运行"},"resultsStrings":{"headerTabResults":"结果","resultsListOptions":"选项","ellipsesOptions":"选项","displayAttribute":"显示属性","sortBy":"排序方式","startOverButton":"全部清除","startOverValidation":"是否确定? 所有追踪“输入”和“结果”均将丢失。","highlightTrace":"显示图形","noSelectionResults":"无法选择要素。 启用以显示图形。","viewFeatures":"要素","selectFeatures":"选择要素","graphicColor":"选择颜色","functionHeader":"函数","noValue":"没有值"},"alertsStrings":{"startingPointAlertHeader":"起点缺失","startingPointAlert":"添加一个起点来运行此追踪。","selectTraceAlertHeader":"未选择追踪类型","selectTraceAlert":"选择要运行的追踪类型。","NoRunAlertHeader":"无可用结果","noResultsInfo":"转至“输入”选项卡以选择追踪类型,添加起点,然后单击“运行”来查看结果。","traceExecuting":"追踪进行中...","genericResultHeader":"追踪结果","noAssetsFoundHeader":"无法添加点","noAssetFound":"该点必须与地图上的要素相交。","clearResultsAlert":"是否确定? 将丢弃此追踪的所有结果。","noTraceSupported":"此地图不支持追踪公共设施网络。 发布具有公共设施网络和共享追踪配置的 web 地图。"}}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"widgetLabel":"
|
|
1
|
+
{"widgetLabel":"公用事業網路追蹤","widgetDescription":"在公用事業網路中執行追蹤的 widget。","globalStrings":{"selectTerminalPlaceholder":"選擇終端","remove":"移除","locateFeature":"定位","zoomToFeature":"縮放至","clearResults":"放棄","select":"選擇","cancel":"取消","ok":"確定"},"inputsStrings":{"headerTabInputs":"輸入","headerStartingPoint":"起點","startingPointHint":"新增追蹤的起點。","headerBarrier":"屏障","barrierButton":"屏障","barrierPointHint":"新增追蹤的屏障點。","barrierFilter":"篩選屏障","addPointOption":"新增一點","addPointHint":"按一下地圖以新增點","removeAllPoints":"全部移除","selectTraces":"選擇軌跡"},"tracingStrings":{"traceOperation":"追蹤類型","runTrace":"執行"},"resultsStrings":{"headerTabResults":"結果","resultsListOptions":"選項","ellipsesOptions":"選項","displayAttribute":"顯示屬性","sortBy":"排序方式","startOverButton":"全部清除","startOverValidation":"是否確定? 將遺失所有追蹤輸入和結果。","highlightTrace":"顯示圖形","noSelectionResults":"無法選擇圖徵。 啟用以改為顯示圖形。","viewFeatures":"圖徽","selectFeatures":"選擇圖徵","graphicColor":"選擇顏色","functionHeader":"函數","noValue":"沒有值"},"alertsStrings":{"startingPointAlertHeader":"起點遺失","startingPointAlert":"新增起點以執行此追蹤。","selectTraceAlertHeader":"未選擇追蹤類型","selectTraceAlert":"選擇要執行的追蹤類型。","NoRunAlertHeader":"無可用結果","noResultsInfo":"移至「輸入」頁籤以選擇追蹤類型,新增起點,再按一下「執行」以檢視結果。","traceExecuting":"追蹤進行中...","genericResultHeader":"追蹤結果","noAssetsFoundHeader":"無法新增點","noAssetFound":"點必須與地圖上的圖徵相交","clearResultsAlert":"是否確定? 將捨棄此追蹤的所有結果。","noTraceSupported":"此地圖不支援追蹤公用事業網路。 使用公用事業網路發佈 Web 地圖,並分享追蹤配置"}}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"widgetLabel":"
|
|
1
|
+
{"widgetLabel":"公用事業網路追蹤","widgetDescription":"在公用事業網路中執行追蹤的 widget。","globalStrings":{"selectTerminalPlaceholder":"選擇終端","remove":"移除","locateFeature":"定位","zoomToFeature":"縮放至","clearResults":"放棄","select":"選擇","cancel":"取消","ok":"確定"},"inputsStrings":{"headerTabInputs":"輸入","headerStartingPoint":"起點","startingPointHint":"新增追蹤的起點。","headerBarrier":"屏障","barrierButton":"屏障","barrierPointHint":"新增追蹤的屏障點。","barrierFilter":"篩選屏障","addPointOption":"新增一點","addPointHint":"按一下地圖以新增點","removeAllPoints":"全部移除","selectTraces":"選擇軌跡"},"tracingStrings":{"traceOperation":"追蹤類型","runTrace":"執行"},"resultsStrings":{"headerTabResults":"結果","resultsListOptions":"選項","ellipsesOptions":"選項","displayAttribute":"顯示屬性","sortBy":"排序方式","startOverButton":"全部清除","startOverValidation":"是否確定? 將遺失所有追蹤輸入和結果。","highlightTrace":"顯示圖形","noSelectionResults":"無法選擇圖徵。 啟用以改為顯示圖形。","viewFeatures":"圖徽","selectFeatures":"選擇圖徵","graphicColor":"選擇顏色","functionHeader":"函數","noValue":"沒有值"},"alertsStrings":{"startingPointAlertHeader":"起點遺失","startingPointAlert":"新增起點以執行此追蹤。","selectTraceAlertHeader":"未選擇追蹤類型","selectTraceAlert":"選擇要執行的追蹤類型。","NoRunAlertHeader":"無可用結果","noResultsInfo":"移至「輸入」頁籤以選擇追蹤類型,新增起點,再按一下「執行」以檢視結果。","traceExecuting":"追蹤進行中...","genericResultHeader":"追蹤結果","noAssetsFoundHeader":"無法新增點","noAssetFound":"點必須與地圖上的圖徵相交","clearResultsAlert":"是否確定? 將捨棄此追蹤的所有結果。","noTraceSupported":"此地圖不支援追蹤公用事業網路。 使用公用事業網路發佈 Web 地圖,並分享追蹤配置"}}
|
package/chunks/Clouds.glsl.js
CHANGED
|
@@ -2,10 +2,10 @@
|
|
|
2
2
|
All material copyright ESRI, All Rights Reserved, unless otherwise specified.
|
|
3
3
|
See https://js.arcgis.com/4.22/esri/copyright.txt for details.
|
|
4
4
|
*/
|
|
5
|
-
import{
|
|
5
|
+
import{ATLAS_SIZE as t,TILE_ROWS as e,TILE_SIZE as n}from"../views/3d/environment/NoiseTextureAtlas.js";import{glsl as a}from"../views/3d/webgl-engine/core/shaderModules/interfaces.js";import{ShaderBuilder as o}from"../views/3d/webgl-engine/core/shaderModules/ShaderBuilder.js";function i(i){const r=new o;return r.attributes.add("position","vec3"),r.fragment.uniforms.add("cloudRadius","float").add("halfCubeMapSize","float").add("power","float").add("sigmaE","float").add("density","float").add("cloudSize","float").add("detailSize","float").add("smoothness","float").add("cloudHeight","float").add("coverage","float").add("viewMatrix","mat3").add("cloudShapeTexture","sampler2D"),r.vertex.code.add(a`void main(void) {
|
|
6
6
|
gl_Position = vec4(position, 1.0);
|
|
7
|
-
}`),
|
|
8
|
-
const int STEPS = ${0===
|
|
7
|
+
}`),r.fragment.code.add(a`
|
|
8
|
+
const int STEPS = ${0===i.steps?a`16`:1===i.steps?a`100`:a`200`};
|
|
9
9
|
const int STEPS_LIGHT = 6;
|
|
10
10
|
const float stepL = 300.0 / float(STEPS_LIGHT);
|
|
11
11
|
|
|
@@ -22,4 +22,4 @@ gl_Position = vec4(position, 1.0);
|
|
|
22
22
|
|
|
23
23
|
float saturate(float x) {
|
|
24
24
|
return clamp(x, 0.0, 1.0);
|
|
25
|
-
}`),
|
|
25
|
+
}`),r.fragment.code.add(`\n float getCloudShape(vec3 pos, float pOffset) {\n const float textureWidth = float(${t});\n const float dataWidth = float(${t});\n const float tileRows = float(${e});\n const vec3 atlasDimensions = vec3(float(${n}), float(${n}), tileRows * tileRows);\n\n //Change from Y being height to Z being height\n vec3 p = pos.xzy;\n\n //Pixel coordinates of point in the 3D data\n vec3 coord = vec3(mod(p - pOffset * atlasDimensions, atlasDimensions));\n float f = fract(coord.z);\n float level = floor(coord.z);\n float tileY = floor(level / tileRows);\n float tileX = level - tileY * tileRows;\n\n //The data coordinates are offset by the x and y tile, the two boundary cells between each tile pair and the initial boundary cell on the first row/column\n vec2 offset = atlasDimensions.x * vec2(tileX, tileY) + 2.0 * vec2(tileX, tileY) + 1.0;\n vec2 pixel = coord.xy + offset;\n vec2 data = texture2D(cloudShapeTexture, mod(pixel, dataWidth) / textureWidth).xy;\n\n return 1.0 - mix(data.x, data.y, f);\n }`),r.fragment.code.add("\n float clouds(vec3 p) {\n float cloudVariations = getCloudShape(0.002 * p, 0.5);\n\n float cloud = saturate(0.5 * mix(0.0, 1.0, min(2.0 * coverage, 1.0)));\n cloud += (cloudVariations * 0.6 - 0.3) * ( -4.0 * (coverage * coverage - coverage));\n float heightFraction = saturate((length(p) - cloudRadius - cloudStart) / cloudHeight);\n\n //Round the bottom and top of the clouds\n cloud *= saturate(remap(heightFraction, 0.0, 0.25, 0.0, 1.0)) * saturate(remap(heightFraction, 0.75, 1.0, 1.0, 0.0));\n\n float shape = getCloudShape(cloudSize * p, 0.0);\n shape *= mix(0.0, 1.0, min(2.0 * (1.0 - coverage), 1.0));\n cloud = saturate(remap(cloud, shape, 1.0, 0.0, 1.0));\n\n if (cloud <= 0.0) {\n return 0.0;\n }\n\n return density * saturate(remap(cloud, smoothness * getCloudShape(detailSize * p, 0.0), 1.0, 0.0, 1.0));\n }"),r.fragment.code.add("\n vec2 sphereIntersections(vec3 start, vec3 dir, float radius) {\n float a = dot(dir, dir);\n float b = 2.0 * dot(dir, start);\n float c = dot(start, start) - (radius * radius);\n float d = (b * b) - 4.0 * a * c;\n\n if (d < 0.0) {\n return vec2(1e5, -1e5);\n }\n\n return vec2((-b - sqrt(d)) / (2.0 * a), (-b + sqrt(d)) / (2.0 * a));\n }\n\n float HenyeyGreenstein(float g, float costh) {\n return (1.0 / (4.0 * 3.1415)) * ((1.0 - g * g) / pow(1.0 + g * g - 2.0 * g * costh, 1.5));\n }\n "),r.fragment.code.add("\n vec3 multipleOctaves(float extinction, float mu, float stepL) {\n float attenuation = 1.0;\n float contribution = 1.0;\n float phaseAttenuation = 1.0;\n vec3 luminance = vec3(0);\n\n for (int i = 0; i < 4; i++) {\n float phase = mix(HenyeyGreenstein(0.0, mu), HenyeyGreenstein(0.3 * phaseAttenuation, mu), 0.7);\n luminance += contribution * phase * exp(-stepL * extinction * sigmaE * attenuation);\n attenuation *= 0.2;\n contribution *= 0.6;\n phaseAttenuation *= 0.5;\n }\n\n return luminance;\n }"),r.fragment.code.add("\n vec3 lightRay(vec3 org, vec3 p, float phaseFunction, float mu, vec3 sunDirection) {\n float lightRayDensity = clouds(p);\n lightRayDensity += clouds(p + sunDirection * 1.0 * stepL);\n lightRayDensity += clouds(p + sunDirection * 2.0 * stepL);\n lightRayDensity += clouds(p + sunDirection * 3.0 * stepL);\n lightRayDensity += clouds(p + sunDirection * 4.0 * stepL);\n lightRayDensity += clouds(p + sunDirection * 5.0 * stepL);\n\n vec3 beersLaw = multipleOctaves(lightRayDensity, mu, stepL);\n\n return mix(beersLaw * 2.0 * (1.0 - (exp(-stepL * lightRayDensity * 2.0 * sigmaE ))), beersLaw, 0.5 + 0.5 * mu);\n }"),r.fragment.code.add('\n vec3 mainRay(vec3 org, vec3 dir, vec3 sunDirection, float distToStart, float totalDistance, out float totalTransmittance) {\n\n // This is never true but having the if statement stops later loop unrolling, texture prefetching and WebGL context crashes\n if (dir.z < 0.0) {\n return vec3(0);\n }\n\n //Variable to track transmittance along view ray. Assume clear sky and attenuate light when encountering clouds.\n totalTransmittance = 1.0;\n\n float stepS = totalDistance / float(STEPS);\n float cameraHeight = length(org);\n\n //Alignment of view and light directions.\n float mu = 0.5 + 0.5 * dot(sunDirection, dir);\n float phaseFunction = mix(HenyeyGreenstein(-0.3, mu), HenyeyGreenstein(0.3, mu), 0.7);\n\n vec3 p = org + distToStart * dir;\n float dist = distToStart;\n vec3 color = vec3(0.0);\n\n for (int i = 0; i < STEPS; i++) {\n\n float sampleDensity = clouds(p);\n float sampleSigmaE = sampleDensity * sigmaE;\n\n if (sampleDensity > 0.0 ) {\n float ambient = mix((1.2), (1.6), saturate((length(p) - cloudRadius - cloudStart) / cloudHeight));\n\n vec3 luminance = sampleDensity * (ambient + power * phaseFunction * lightRay(org, p, phaseFunction, mu, sunDirection));\n float transmittance = exp(-sampleSigmaE * stepS);\n\n //Better energy conserving integration\n //"From Physically based sky, atmosphere and cloud rendering in Frostbite" 5.6\n color += totalTransmittance * (luminance - luminance * transmittance) / sampleSigmaE;\n\n totalTransmittance *= transmittance;\n\n //If ray combined transmittance is close to 0, nothing beyond this sample point is visible, so break early.\n if (totalTransmittance <= 0.001) {\n totalTransmittance = 0.0;\n break;\n }\n\n }\n\n dist += stepS;\n p = org + dir * dist;\n }\n\n return color;\n }'),r.fragment.code.add("\n void main() {\n vec3 rayDir = rayDirection(gl_FragCoord.xy);\n rayDir = normalize(viewMatrix * rayDir);\n\n vec3 viewPos = vec3(0, 0, cloudRadius + 1.0);\n\n bool hitsPlanet = rayDir.z < 0.0;\n\n if (hitsPlanet) {\n gl_FragColor = vec4(vec3(0), 1);\n return;\n }\n\n vec2 rayStartIntersect = sphereIntersections(viewPos, rayDir, cloudRadius + cloudStart);\n vec2 rayEndIntersect = sphereIntersections(viewPos, rayDir, cloudRadius + cloudStart + cloudHeight);\n float distToStart = rayStartIntersect.y;\n float totalDistance = rayEndIntersect.y - distToStart;\n\n float totalTransmittance = 1.0;\n vec3 sunDirection = normalize(vec3(0, 0, 1));\n vec3 col = 0.5 * mainRay(viewPos, rayDir, sunDirection, distToStart, totalDistance, totalTransmittance).rgb;\n\n gl_FragColor = vec4(col, totalTransmittance);\n }\n "),r}const r=Object.freeze({__proto__:null,build:i});export{r as C,i as b};
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
All material copyright ESRI, All Rights Reserved, unless otherwise specified.
|
|
3
3
|
See https://js.arcgis.com/4.22/esri/copyright.txt for details.
|
|
4
4
|
*/
|
|
5
|
-
import{Slice as e}from"../views/3d/webgl-engine/core/shaderLibrary/Slice.glsl.js";import{RibbonVertexPosition as t}from"../views/3d/webgl-engine/core/shaderLibrary/attributes/RibbonVertexPosition.glsl.js";import{OutputDepth as i}from"../views/3d/webgl-engine/core/shaderLibrary/output/OutputDepth.glsl.js";import{ReadLinearDepth as n}from"../views/3d/webgl-engine/core/shaderLibrary/output/ReadLinearDepth.glsl.js";import{LineStipple as
|
|
5
|
+
import{Slice as e}from"../views/3d/webgl-engine/core/shaderLibrary/Slice.glsl.js";import{RibbonVertexPosition as t}from"../views/3d/webgl-engine/core/shaderLibrary/attributes/RibbonVertexPosition.glsl.js";import{OutputDepth as i}from"../views/3d/webgl-engine/core/shaderLibrary/output/OutputDepth.glsl.js";import{ReadLinearDepth as n}from"../views/3d/webgl-engine/core/shaderLibrary/output/ReadLinearDepth.glsl.js";import{LineStipple as r}from"../views/3d/webgl-engine/core/shaderLibrary/shading/LineStipple.glsl.js";import{multipassTerrainTest as o}from"../views/3d/webgl-engine/core/shaderLibrary/shading/MultipassTerrainTest.glsl.js";import{PiUtils as a}from"../views/3d/webgl-engine/core/shaderLibrary/shading/PiUtils.glsl.js";import{symbolAlphaCutoff as s}from"../views/3d/webgl-engine/core/shaderLibrary/util/AlphaDiscard.glsl.js";import{ColorConversion as l}from"../views/3d/webgl-engine/core/shaderLibrary/util/ColorConversion.glsl.js";import{glsl as p}from"../views/3d/webgl-engine/core/shaderModules/interfaces.js";import{ShaderBuilder as d}from"../views/3d/webgl-engine/core/shaderModules/ShaderBuilder.js";const c=1;function v(v){const g=new d,m=v.stippleEnabled&&v.roundCaps,f=v.falloffEnabled||m,h=v.innerColorEnabled,u=v.stippleEnabled&&v.stippleScaleWithLineWidth||v.roundCaps,D=v.stippleEnabled&&v.stippleScaleWithLineWidth;return g.extensions.add("GL_OES_standard_derivatives"),g.include(a),g.include(t,v),g.include(r,{...v,stippleRequiresStretchMeasure:m}),1===v.output&&g.include(i,v),g.vertex.uniforms.add("proj","mat4").add("view","mat4").add("cameraNearFar","vec2").add("pixelRatio","float").add("miterLimit","float").add("screenSize","vec2"),g.attributes.add("position","vec3"),g.attributes.add("subdivisionFactor","float"),g.attributes.add("uv0","vec2"),g.attributes.add("auxpos1","vec3"),g.attributes.add("auxpos2","vec3"),g.varyings.add("vColor","vec4"),g.varyings.add("vpos","vec3"),g.varyings.add("linearDepth","float"),v.multipassTerrainEnabled&&g.varyings.add("depth","float"),u&&g.varyings.add("vLineWidth","float"),D&&g.varyings.add("vLineSizeInv","float"),h&&g.varyings.add("vLineDistance","float"),f&&g.varyings.add("vLineDistanceNorm","float"),v.falloffEnabled&&g.fragment.uniforms.add("falloff","float"),v.innerColorEnabled&&(g.fragment.uniforms.add("innerColor","vec4"),g.fragment.uniforms.add("innerWidth","float")),v.roundCaps&&g.varyings.add("vCapPosition","vec2"),m&&g.varyings.add("vStipplePatternStretch","float"),g.vertex.code.add(p`#define PERPENDICULAR(v) vec2(v.y, -v.x);
|
|
6
6
|
float interp(float ncp, vec4 a, vec4 b) {
|
|
7
7
|
return (-ncp - a.z) / (b.z - a.z);
|
|
8
8
|
}
|
|
@@ -11,11 +11,11 @@ float s = sin(a);
|
|
|
11
11
|
float c = cos(a);
|
|
12
12
|
mat2 m = mat2(c, -s, s, c);
|
|
13
13
|
return m * v;
|
|
14
|
-
}`),
|
|
14
|
+
}`),g.vertex.code.add(p`vec4 projectAndScale(vec4 pos) {
|
|
15
15
|
vec4 posNdc = proj * pos;
|
|
16
16
|
posNdc.xy *= screenSize / posNdc.w;
|
|
17
17
|
return posNdc;
|
|
18
|
-
}`),
|
|
18
|
+
}`),g.vertex.code.add(p`
|
|
19
19
|
void clipAndTransform(inout vec4 pos, inout vec4 prev, inout vec4 next, in bool isStartVertex) {
|
|
20
20
|
float vnp = cameraNearFar[0] * 0.99;
|
|
21
21
|
|
|
@@ -51,18 +51,19 @@ return posNdc;
|
|
|
51
51
|
}
|
|
52
52
|
}
|
|
53
53
|
|
|
54
|
-
${
|
|
54
|
+
${v.multipassTerrainEnabled?"depth = pos.z;":""}
|
|
55
55
|
linearDepth = (-pos.z - cameraNearFar[0]) / (cameraNearFar[1] - cameraNearFar[0]);
|
|
56
56
|
|
|
57
57
|
pos = projectAndScale(pos);
|
|
58
58
|
next = projectAndScale(next);
|
|
59
59
|
prev = projectAndScale(prev);
|
|
60
60
|
}
|
|
61
|
-
`),
|
|
61
|
+
`),g.vertex.code.add(p`
|
|
62
62
|
void main(void) {
|
|
63
63
|
// unpack values from uv0.y
|
|
64
64
|
bool isStartVertex = abs(abs(uv0.y)-3.0) == 1.0;
|
|
65
65
|
|
|
66
|
+
float coverage = 1.0;
|
|
66
67
|
vpos = position;
|
|
67
68
|
|
|
68
69
|
// Check for special value of uv0.y which is used by the Renderer when graphics
|
|
@@ -78,13 +79,19 @@ return posNdc;
|
|
|
78
79
|
float lineSize = getSize();
|
|
79
80
|
float lineWidth = lineSize * pixelRatio;
|
|
80
81
|
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
lineWidth += ${v}*pixelRatio;
|
|
84
|
-
}
|
|
82
|
+
${u?p`vLineWidth = lineWidth;`:""}
|
|
83
|
+
${D?p`vLineSizeInv = 1.0 / lineSize;`:""}
|
|
85
84
|
|
|
86
|
-
|
|
87
|
-
|
|
85
|
+
// convert sub-pixel coverage to alpha
|
|
86
|
+
if (lineWidth < 1.0) {
|
|
87
|
+
coverage = lineWidth;
|
|
88
|
+
lineWidth = 1.0;
|
|
89
|
+
}else{
|
|
90
|
+
// Ribbon lines cannot properly render non-integer sizes. Round width to integer size if
|
|
91
|
+
// larger than one for better quality. Note that we do render < 1 pixels more or less correctly
|
|
92
|
+
// so we only really care to round anything larger than 1.
|
|
93
|
+
lineWidth = floor(lineWidth + 0.5);
|
|
94
|
+
}
|
|
88
95
|
|
|
89
96
|
vec4 pos = view * vec4(position.xyz, 1.0);
|
|
90
97
|
vec4 prev = view * vec4(auxpos1.xyz, 1.0);
|
|
@@ -97,10 +104,10 @@ return posNdc;
|
|
|
97
104
|
|
|
98
105
|
float leftLen = length(left);
|
|
99
106
|
float rightLen = length(right);
|
|
100
|
-
`),
|
|
107
|
+
`),v.stippleEnabled&&g.vertex.code.add(p`float isEndVertex = float(!isStartVertex);
|
|
101
108
|
vec4 segmentInfo = mix(vec4(pos.xy, right), vec4(prev.xy, left), isEndVertex);
|
|
102
109
|
vec2 segmentOrigin = segmentInfo.xy;
|
|
103
|
-
vec2 segment = segmentInfo.zw;`),
|
|
110
|
+
vec2 segment = segmentInfo.zw;`),g.vertex.code.add(p`left = (leftLen > 0.001) ? left/leftLen : vec2(0.0, 0.0);
|
|
104
111
|
right = (rightLen > 0.001) ? right/rightLen : vec2(0.0, 0.0);
|
|
105
112
|
vec2 capDisplacementDir = vec2(0, 0);
|
|
106
113
|
vec2 joinDisplacementDir = vec2(0, 0);
|
|
@@ -116,7 +123,7 @@ if (!isOutside) {
|
|
|
116
123
|
displacementLen = min(displacementLen, min(leftLen, rightLen)/abs(nDotSeg));
|
|
117
124
|
}
|
|
118
125
|
}
|
|
119
|
-
if (isOutside && (displacementLen > miterLimit * lineWidth)) {`),
|
|
126
|
+
if (isOutside && (displacementLen > miterLimit * lineWidth)) {`),v.roundJoins?g.vertex.code.add(p`
|
|
120
127
|
vec2 startDir;
|
|
121
128
|
vec2 endDir;
|
|
122
129
|
|
|
@@ -138,11 +145,11 @@ if (isOutside && (displacementLen > miterLimit * lineWidth)) {`),f.roundJoins?m.
|
|
|
138
145
|
endDir = normalize(endDir);
|
|
139
146
|
endDir = PERPENDICULAR(endDir);
|
|
140
147
|
|
|
141
|
-
float factor = ${
|
|
148
|
+
float factor = ${v.stippleEnabled?p`min(1.0, subdivisionFactor * ${p.float((c+2)/(c+1))})`:p`subdivisionFactor`};
|
|
142
149
|
|
|
143
150
|
float rotationAngle = acos(clamp(dot(startDir, endDir), -1.0, 1.0));
|
|
144
151
|
joinDisplacementDir = rotate(startDir, -sign(uv0.y) * factor * rotationAngle);
|
|
145
|
-
`):
|
|
152
|
+
`):g.vertex.code.add(p`if (leftLen < 0.001) {
|
|
146
153
|
joinDisplacementDir = right;
|
|
147
154
|
}
|
|
148
155
|
else if (rightLen < 0.001) {
|
|
@@ -152,7 +159,7 @@ else {
|
|
|
152
159
|
joinDisplacementDir = (isStartVertex || subdivisionFactor > 0.0) ? right : left;
|
|
153
160
|
}
|
|
154
161
|
joinDisplacementDir = normalize(joinDisplacementDir);
|
|
155
|
-
joinDisplacementDir = PERPENDICULAR(joinDisplacementDir);`),
|
|
162
|
+
joinDisplacementDir = PERPENDICULAR(joinDisplacementDir);`),g.vertex.code.add(p`displacementLen = lineWidth;
|
|
156
163
|
}
|
|
157
164
|
} else {
|
|
158
165
|
if (leftLen < 0.001) {
|
|
@@ -169,33 +176,33 @@ joinDisplacementDir = PERPENDICULAR(joinDisplacementDir);
|
|
|
169
176
|
displacementLen = lineWidth;
|
|
170
177
|
capDisplacementDir = isStartVertex ? -right : left;
|
|
171
178
|
capDisplacementDir *= subdivisionFactor;
|
|
172
|
-
}`),
|
|
179
|
+
}`),g.vertex.code.add(p`
|
|
173
180
|
// Displacement (in pixels) caused by join/or cap
|
|
174
181
|
vec2 dpos = joinDisplacementDir * sign(uv0.y) * displacementLen + capDisplacementDir * displacementLen;
|
|
175
182
|
|
|
176
|
-
${
|
|
183
|
+
${f||h?p`float lineDistNorm = sign(uv0.y) * pos.w;`:""}
|
|
177
184
|
|
|
178
|
-
${
|
|
179
|
-
${
|
|
185
|
+
${h?p`vLineDistance = lineWidth * lineDistNorm;`:""}
|
|
186
|
+
${f?p`vLineDistanceNorm = lineDistNorm;`:""}
|
|
180
187
|
|
|
181
|
-
${
|
|
188
|
+
${v.roundCaps?p`vCapPosition = isJoin ? vec2(0.0) : dpos;`:""}
|
|
182
189
|
|
|
183
190
|
pos.xy += dpos;
|
|
184
|
-
`),
|
|
185
|
-
float worldToScreenRatio = computeWorldToScreenRatio(segmentCenter);`),
|
|
191
|
+
`),v.stippleEnabled&&(v.draped||g.vertex.code.add(p`vec3 segmentCenter = mix((auxpos2 + position) * 0.5, (position + auxpos1) * 0.5, isEndVertex);
|
|
192
|
+
float worldToScreenRatio = computeWorldToScreenRatio(segmentCenter);`),g.vertex.code.add(p`float segmentLengthScreenDouble = length(segment);
|
|
186
193
|
float segmentLengthScreen = segmentLengthScreenDouble * 0.5;
|
|
187
194
|
float discreteWorldToScreenRatio = discretizeWorldToScreenRatio(worldToScreenRatio);
|
|
188
|
-
float segmentLengthRender = length(mix(auxpos2 - position, position - auxpos1, isEndVertex));`),
|
|
189
|
-
float startPseudoScreen = uv0.x * discreteWorldToScreenRatio - mix(0.0, segmentLengthPseudoScreen, isEndVertex);`):
|
|
190
|
-
float segmentLengthPseudoScreen = segmentLengthRender * discreteWorldToScreenRatio;`),
|
|
191
|
-
float patternLength = ${
|
|
195
|
+
float segmentLengthRender = length(mix(auxpos2 - position, position - auxpos1, isEndVertex));`),v.draped?g.vertex.code.add(p`float segmentLengthPseudoScreen = segmentLengthScreen / pixelRatio * discreteWorldToScreenRatio / worldToScreenRatio;
|
|
196
|
+
float startPseudoScreen = uv0.x * discreteWorldToScreenRatio - mix(0.0, segmentLengthPseudoScreen, isEndVertex);`):g.vertex.code.add(p`float startPseudoScreen = mix(uv0.x, uv0.x - segmentLengthRender, isEndVertex) * discreteWorldToScreenRatio;
|
|
197
|
+
float segmentLengthPseudoScreen = segmentLengthRender * discreteWorldToScreenRatio;`),g.vertex.code.add(p`
|
|
198
|
+
float patternLength = ${v.stippleScaleWithLineWidth?"lineSize * ":""} stipplePatternPixelSize;
|
|
192
199
|
|
|
193
200
|
// Compute the coordinates at both start and end of the line segment, because we need both to clamp to in the fragment shader
|
|
194
201
|
// The 0.5 factor on the screen length is to correct for pixel ratio (it is calculated at double resolution)
|
|
195
|
-
${
|
|
202
|
+
${m?p`
|
|
196
203
|
vec3 stippleSegmentInfo = computeStippleDistanceLimits(startPseudoScreen, segmentLengthPseudoScreen, segmentLengthScreen, patternLength);
|
|
197
204
|
vStippleDistanceLimits = stippleSegmentInfo.xy;
|
|
198
|
-
vStipplePatternStretch = stippleSegmentInfo.z;`:
|
|
205
|
+
vStipplePatternStretch = stippleSegmentInfo.z;`:p`
|
|
199
206
|
vStippleDistanceLimits = computeStippleDistanceLimits(startPseudoScreen, segmentLengthPseudoScreen, segmentLengthScreen, patternLength);`}
|
|
200
207
|
|
|
201
208
|
vStippleDistance = mix(vStippleDistanceLimits.x, vStippleDistanceLimits.y, isEndVertex);
|
|
@@ -214,22 +221,23 @@ float segmentLengthPseudoScreen = segmentLengthRender * discreteWorldToScreenRat
|
|
|
214
221
|
// Cancel out perspective correct interpolation because we want this length the really represent the screen distance
|
|
215
222
|
vStippleDistanceLimits *= pos.w;
|
|
216
223
|
vStippleDistance *= pos.w;
|
|
217
|
-
`)),
|
|
224
|
+
`)),g.vertex.code.add(p`pos.xy = pos.xy / screenSize * pos.w;
|
|
218
225
|
vColor = getColor();
|
|
226
|
+
vColor.a *= coverage;
|
|
219
227
|
gl_Position = pos;
|
|
220
228
|
}
|
|
221
|
-
}`),
|
|
229
|
+
}`),v.multipassTerrainEnabled&&(g.fragment.include(n),g.include(o,v)),g.include(e,v),g.fragment.uniforms.add("intrinsicColor","vec4"),g.fragment.include(l),g.fragment.code.add(p`
|
|
222
230
|
void main() {
|
|
223
231
|
discardBySlice(vpos);
|
|
224
|
-
${
|
|
225
|
-
`),
|
|
232
|
+
${v.multipassTerrainEnabled?"terrainDepthTest(gl_FragCoord, depth);":""}
|
|
233
|
+
`),v.roundCaps&&g.fragment.code.add(p`
|
|
226
234
|
float fragmentRadius = length(vCapPosition);
|
|
227
235
|
float fragmentSDF = (fragmentRadius - vLineWidth) * 0.5; // Divide by 2 to transform from double pixel scale
|
|
228
236
|
float capCoverage = clamp(0.5 - fragmentSDF, 0.0, 1.0);
|
|
229
|
-
if (capCoverage < ${
|
|
237
|
+
if (capCoverage < ${p.float(s)}) {
|
|
230
238
|
discard;
|
|
231
239
|
}
|
|
232
|
-
`),
|
|
240
|
+
`),m?g.fragment.code.add(p`
|
|
233
241
|
vec2 stipplePosition = vec2(
|
|
234
242
|
max(1.0 - getStippleSDF() * 2.0 * vStipplePatternStretch, 0.0),
|
|
235
243
|
vLineDistanceNorm * gl_FragCoord.w
|
|
@@ -237,34 +245,20 @@ gl_Position = pos;
|
|
|
237
245
|
float stippleRadius = length(stipplePosition * vLineWidth);
|
|
238
246
|
float stippleCapSDF = (stippleRadius - vLineWidth) * 0.5; // Divide by 2 to transform from double pixel scale
|
|
239
247
|
float stippleCoverage = clamp(0.5 - stippleCapSDF, 0.0, 1.0);
|
|
240
|
-
float stippleAlpha = step(${
|
|
241
|
-
`):
|
|
242
|
-
vec4 color = intrinsicColor * vColor;`),
|
|
248
|
+
float stippleAlpha = step(${p.float(s)}, stippleCoverage);
|
|
249
|
+
`):g.fragment.code.add(p`float stippleAlpha = getStippleAlpha();`),g.fragment.code.add(p`discardByStippleAlpha(stippleAlpha, stippleAlphaColorDiscard);
|
|
250
|
+
vec4 color = intrinsicColor * vColor;`),g.fragment.uniforms.add("pixelRatio","float"),v.innerColorEnabled&&g.fragment.code.add(p`float distToInner = abs(vLineDistance * gl_FragCoord.w) - innerWidth;
|
|
243
251
|
float innerAA = clamp(0.5 - distToInner, 0.0, 1.0);
|
|
244
252
|
float innerAlpha = innerColor.a + color.a * (1.0 - innerColor.a);
|
|
245
|
-
color = mix(color, vec4(innerColor.rgb, innerAlpha), innerAA);`),
|
|
246
|
-
|
|
247
|
-
float value = abs(vLineDistance)*gl_FragCoord.w;
|
|
248
|
-
float feather = 1.0;
|
|
249
|
-
if( featherStartDistance > 1.5 ){
|
|
250
|
-
// if line is larger than a bit more than one pixel (hand tuned threshold),
|
|
251
|
-
// we apply a falloff between feather start and line width
|
|
252
|
-
feather = (value-featherStartDistance)/(vLineWidth-featherStartDistance);
|
|
253
|
-
}else{
|
|
254
|
-
// otherwise we do a falloff starting from the line center (this way lines smaller than one pixel
|
|
255
|
-
// will be alpha blended according to pixel coverage)
|
|
256
|
-
feather = value/vLineWidth;
|
|
257
|
-
}
|
|
258
|
-
finalColor.a *= 1.0 - clamp(feather, 0.0, 1.0);
|
|
259
|
-
`),f.falloffEnabled&&m.fragment.code.add(d`finalColor.a *= pow(max(0.0, 1.0 - abs(vLineDistanceNorm * gl_FragCoord.w)), falloff);`),m.fragment.code.add(d`
|
|
260
|
-
if (finalColor.a < ${d.float(s)}) {
|
|
253
|
+
color = mix(color, vec4(innerColor.rgb, innerAlpha), innerAA);`),g.fragment.code.add(p`vec4 finalColor = blendStipple(color, stippleAlpha);`),v.falloffEnabled&&g.fragment.code.add(p`finalColor.a *= pow(max(0.0, 1.0 - abs(vLineDistanceNorm * gl_FragCoord.w)), falloff);`),g.fragment.code.add(p`
|
|
254
|
+
if (finalColor.a < ${p.float(s)}) {
|
|
261
255
|
discard;
|
|
262
256
|
}
|
|
263
257
|
|
|
264
|
-
${7===
|
|
265
|
-
${0===
|
|
266
|
-
${0===
|
|
267
|
-
${4===
|
|
268
|
-
${1===
|
|
258
|
+
${7===v.output?p`gl_FragColor = vec4(finalColor.a);`:""}
|
|
259
|
+
${0===v.output?p`gl_FragColor = highlightSlice(finalColor, vpos);`:""}
|
|
260
|
+
${0===v.output&&v.OITEnabled?"gl_FragColor = premultiplyAlpha(gl_FragColor);":""}
|
|
261
|
+
${4===v.output?p`gl_FragColor = vec4(1.0);`:""}
|
|
262
|
+
${1===v.output?p`outputDepth(linearDepth);`:""}
|
|
269
263
|
}
|
|
270
|
-
`),
|
|
264
|
+
`),g}const g=Object.freeze({__proto__:null,NUM_ROUND_JOIN_SUBDIVISIONS:c,build:v});export{c as N,g as R,v as b};
|
package/config.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.22/esri/copyright.txt for details.
|
|
4
4
|
*/
|
|
5
|
-
import"./core/has.js";import{deepMerge as e}from"./core/object.js";
|
|
5
|
+
import"./core/has.js";import{deepMerge as e}from"./core/object.js";var s;const r={apiKey:void 0,applicationUrl:null==(s=globalThis.location)?void 0:s.href,assetsPath:"",fontsUrl:"https://static.arcgis.com/fonts",geometryService:null,geometryServiceUrl:"https://utility.arcgisonline.com/arcgis/rest/services/Geometry/GeometryServer",geoRSSServiceUrl:"https://utility.arcgis.com/sharing/rss",kmlServiceUrl:"https://utility.arcgis.com/sharing/kml",portalUrl:"https://www.arcgis.com",workers:{loaderConfig:{has:{},paths:{},map:{},packages:[]}},request:{httpsDomains:["arcgis.com","arcgisonline.com","esrikr.com","premiumservices.blackbridge.com","esripremium.accuweather.com","gbm.digitalglobe.com","firstlook.digitalglobe.com","msi.digitalglobe.com"],interceptors:[],maxUrlLength:2e3,proxyRules:[],proxyUrl:null,timeout:6e4,trustedServers:[],useIdentity:!0},log:{interceptors:[],level:null}};if(globalThis.esriConfig&&(e(r,globalThis.esriConfig,!0),delete r.has),!r.assetsPath){const e="4.22.1";r.assetsPath=`https://js.arcgis.com/${e.slice(0,-2)}/@arcgis/core/assets`}r.baseUrl&&console.warn("[esri.config]","baseUrl has been replaced by assetsPath"),Object.defineProperty(r,"baseUrl",{set(){console.warn("[esri.config]","baseUrl has been replaced by assetsPath")}}),r.request.corsEnabledServers=[],r.request.corsEnabledServers.push=function(){return console.warn("[esri.config]","request.corsEnabledServers is not supported and will be removed in a future release. See http://esriurl.com/cors8664"),0};export{r as default};
|
package/copyright.txt
CHANGED
|
@@ -1116,31 +1116,59 @@ OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|
|
1116
1116
|
|
|
1117
1117
|
esri/libs/i3s
|
|
1118
1118
|
|
|
1119
|
-
|
|
1119
|
+
RapidJSON
|
|
1120
|
+
https://github.com/Tencent/rapidjson/
|
|
1120
1121
|
|
|
1121
|
-
Copyright (
|
|
1122
|
+
Copyright (C) 2015 THL A29 Limited, a Tencent company, and Milo Yip. All rights reserved.
|
|
1122
1123
|
|
|
1123
1124
|
MIT License
|
|
1124
1125
|
|
|
1125
|
-
Permission is hereby granted, free of charge, to any person
|
|
1126
|
-
|
|
1127
|
-
|
|
1128
|
-
|
|
1129
|
-
|
|
1130
|
-
|
|
1131
|
-
furnished to do so, subject to the following conditions:
|
|
1126
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy of this
|
|
1127
|
+
software and associated documentation files (the "Software"), to deal in the Software
|
|
1128
|
+
without restriction, including without limitation the rights to use, copy, modify,
|
|
1129
|
+
merge, publish, distribute, sublicense, and/or sell copies of the Software, and to
|
|
1130
|
+
permit persons to whom the Software is furnished to do so, subject to the following
|
|
1131
|
+
conditions:
|
|
1132
1132
|
|
|
1133
|
-
The above copyright notice and this permission notice shall be
|
|
1134
|
-
|
|
1133
|
+
The above copyright notice and this permission notice shall be included in all copies
|
|
1134
|
+
or substantial portions of the Software.
|
|
1135
1135
|
|
|
1136
|
-
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
|
1137
|
-
|
|
1138
|
-
|
|
1139
|
-
|
|
1140
|
-
|
|
1141
|
-
|
|
1142
|
-
|
|
1143
|
-
|
|
1136
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
|
|
1137
|
+
INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
|
|
1138
|
+
PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
|
|
1139
|
+
HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF
|
|
1140
|
+
CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE
|
|
1141
|
+
OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|
1142
|
+
|
|
1143
|
+
-------------------------------------------------------------------------------
|
|
1144
|
+
|
|
1145
|
+
esri/libs/i3s
|
|
1146
|
+
|
|
1147
|
+
The msinttypes r29
|
|
1148
|
+
Copyright (c) 2006-2013 Alexander Chemeris
|
|
1149
|
+
All rights reserved.
|
|
1150
|
+
|
|
1151
|
+
Redistribution and use in source and binary forms, with or without modification, are
|
|
1152
|
+
permitted provided that the following conditions are met:
|
|
1153
|
+
|
|
1154
|
+
* Redistributions of source code must retain the above copyright notice, this list of
|
|
1155
|
+
conditions and the following disclaimer.
|
|
1156
|
+
* Redistributions in binary form must reproduce the above copyright notice, this list
|
|
1157
|
+
of conditions and the following disclaimer in the documentation and/or other materials
|
|
1158
|
+
provided with the distribution.
|
|
1159
|
+
* Neither the name of copyright holder nor the names of its contributors may be used
|
|
1160
|
+
to endorse or promote products derived from this software without specific prior
|
|
1161
|
+
written permission.
|
|
1162
|
+
|
|
1163
|
+
THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND ANY EXPRESS OR
|
|
1164
|
+
IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
|
1165
|
+
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL
|
|
1166
|
+
THE REGENTS AND CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
|
|
1167
|
+
EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
|
1168
|
+
SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
|
1169
|
+
HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR
|
|
1170
|
+
TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
|
1171
|
+
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
1144
1172
|
|
|
1145
1173
|
-------------------------------------------------------------------------------
|
|
1146
1174
|
|