@arcgis/core 4.28.0-rc.0 → 4.28.0-rc.2
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/arcade/featureset/sources/FeatureLayerDynamic.js +1 -1
- package/arcade/featureset/sources/FeatureLayerMemory.js +1 -1
- package/arcade/featureset/sources/FeatureLayerRelated.js +1 -1
- package/arcade/featureset/support/FeatureSet.js +1 -1
- package/arcade/functions/featuresetbase.js +1 -1
- package/arcade/treeAnalysis.js +1 -1
- package/assets/components/assets/icon/addConstant16.json +1 -0
- package/assets/components/assets/icon/addConstant24.json +1 -0
- package/assets/components/assets/icon/addConstant32.json +1 -0
- package/assets/components/assets/icon/addRasterVariable16.json +1 -0
- package/assets/components/assets/icon/addRasterVariable24.json +1 -0
- package/assets/components/assets/icon/addRasterVariable32.json +1 -0
- package/assets/components/assets/icon/addRasters16.json +1 -0
- package/assets/components/assets/icon/addRasters24.json +1 -0
- package/assets/components/assets/icon/addRasters32.json +1 -0
- package/assets/components/assets/icon/alertOffCircle16F.json +1 -0
- package/assets/components/assets/icon/alertOffCircle24F.json +1 -0
- package/assets/components/assets/icon/alertOffCircle32F.json +1 -0
- package/assets/components/assets/icon/boxChartSeries16.json +1 -0
- package/assets/components/assets/icon/boxChartSeries24.json +1 -0
- package/assets/components/assets/icon/boxChartSeries32.json +1 -0
- package/assets/components/assets/icon/breakRecurrence16.json +1 -0
- package/assets/components/assets/icon/breakRecurrence24.json +1 -0
- package/assets/components/assets/icon/breakRecurrence32.json +1 -0
- package/assets/components/assets/icon/bulletPoint16.json +1 -1
- package/assets/components/assets/icon/bulletPoint24.json +1 -1
- package/assets/components/assets/icon/bulletPoint32.json +1 -1
- package/assets/components/assets/icon/bulletPointLarge16.json +1 -0
- package/assets/components/assets/icon/bulletPointLarge24.json +1 -0
- package/assets/components/assets/icon/bulletPointLarge32.json +1 -0
- package/assets/components/assets/icon/chevronEnd16.json +1 -0
- package/assets/components/assets/icon/chevronEnd24.json +1 -0
- package/assets/components/assets/icon/chevronEnd32.json +1 -0
- package/assets/components/assets/icon/chevronStart16.json +1 -0
- package/assets/components/assets/icon/chevronStart24.json +1 -0
- package/assets/components/assets/icon/chevronStart32.json +1 -0
- package/assets/components/assets/icon/configureGridUnit16.json +1 -0
- package/assets/components/assets/icon/configureGridUnit24.json +1 -0
- package/assets/components/assets/icon/configureGridUnit32.json +1 -0
- package/assets/components/assets/icon/dimensionsUnit16.json +1 -0
- package/assets/components/assets/icon/dimensionsUnit24.json +1 -0
- package/assets/components/assets/icon/dimensionsUnit32.json +1 -0
- package/assets/components/assets/icon/dimensionsWall16.json +1 -0
- package/assets/components/assets/icon/dimensionsWall24.json +1 -0
- package/assets/components/assets/icon/dimensionsWall32.json +1 -0
- package/assets/components/assets/icon/flipVertical16.json +1 -0
- package/assets/components/assets/icon/flipVertical24.json +1 -0
- package/assets/components/assets/icon/flipVertical32.json +1 -0
- package/assets/components/assets/icon/imageCollectionExplorer16.json +1 -0
- package/assets/components/assets/icon/imageCollectionExplorer24.json +1 -0
- package/assets/components/assets/icon/imageCollectionExplorer32.json +1 -0
- package/assets/components/assets/icon/imageMagnifyingGlass16.json +1 -0
- package/assets/components/assets/icon/imageMagnifyingGlass24.json +1 -0
- package/assets/components/assets/icon/imageMagnifyingGlass32.json +1 -0
- package/assets/components/assets/icon/launch216.json +1 -0
- package/assets/components/assets/icon/launch224.json +1 -0
- package/assets/components/assets/icon/launch232.json +1 -0
- package/assets/components/assets/icon/mergeDetails16.json +1 -0
- package/assets/components/assets/icon/mergeDetails24.json +1 -0
- package/assets/components/assets/icon/mergeDetails32.json +1 -0
- package/assets/components/assets/icon/mergeUnits16.json +1 -0
- package/assets/components/assets/icon/mergeUnits24.json +1 -0
- package/assets/components/assets/icon/mergeUnits32.json +1 -0
- package/assets/components/assets/icon/minusCircle16F.json +1 -0
- package/assets/components/assets/icon/minusCircle24F.json +1 -0
- package/assets/components/assets/icon/minusCircle32F.json +1 -0
- package/assets/components/assets/icon/polygonSelect16.json +1 -0
- package/assets/components/assets/icon/polygonSelect24.json +1 -0
- package/assets/components/assets/icon/polygonSelect32.json +1 -0
- package/assets/components/assets/icon/projectMission16.json +1 -0
- package/assets/components/assets/icon/projectMission24.json +1 -0
- package/assets/components/assets/icon/projectMission32.json +1 -0
- package/assets/components/assets/icon/projectTemplate16.json +1 -0
- package/assets/components/assets/icon/projectTemplate24.json +1 -0
- package/assets/components/assets/icon/projectTemplate32.json +1 -0
- package/assets/components/assets/icon/properties16.json +1 -0
- package/assets/components/assets/icon/properties24.json +1 -0
- package/assets/components/assets/icon/properties32.json +1 -0
- package/assets/components/assets/icon/saveAs16.json +1 -0
- package/assets/components/assets/icon/saveAs24.json +1 -0
- package/assets/components/assets/icon/saveAs32.json +1 -0
- package/assets/components/assets/icon/splitUnits16.json +1 -0
- package/assets/components/assets/icon/splitUnits24.json +1 -0
- package/assets/components/assets/icon/splitUnits32.json +1 -0
- package/assets/components/assets/icon/storage16.json +1 -0
- package/assets/components/assets/icon/storage24.json +1 -0
- package/assets/components/assets/icon/storage32.json +1 -0
- package/assets/components/assets/panel/t9n/messages.json +3 -1
- package/assets/components/assets/panel/t9n/messages_ar.json +3 -1
- package/assets/components/assets/panel/t9n/messages_bg.json +3 -1
- package/assets/components/assets/panel/t9n/messages_bs.json +3 -1
- package/assets/components/assets/panel/t9n/messages_ca.json +3 -1
- package/assets/components/assets/panel/t9n/messages_cs.json +3 -1
- package/assets/components/assets/panel/t9n/messages_da.json +3 -1
- package/assets/components/assets/panel/t9n/messages_de.json +3 -1
- package/assets/components/assets/panel/t9n/messages_el.json +3 -1
- package/assets/components/assets/panel/t9n/messages_en.json +3 -1
- package/assets/components/assets/panel/t9n/messages_es.json +3 -1
- package/assets/components/assets/panel/t9n/messages_et.json +3 -1
- package/assets/components/assets/panel/t9n/messages_fi.json +3 -1
- package/assets/components/assets/panel/t9n/messages_fr.json +3 -1
- package/assets/components/assets/panel/t9n/messages_he.json +3 -1
- package/assets/components/assets/panel/t9n/messages_hr.json +3 -1
- package/assets/components/assets/panel/t9n/messages_hu.json +3 -1
- package/assets/components/assets/panel/t9n/messages_id.json +3 -1
- package/assets/components/assets/panel/t9n/messages_it.json +3 -1
- package/assets/components/assets/panel/t9n/messages_ja.json +3 -1
- package/assets/components/assets/panel/t9n/messages_ko.json +3 -1
- package/assets/components/assets/panel/t9n/messages_lt.json +3 -1
- package/assets/components/assets/panel/t9n/messages_lv.json +3 -1
- package/assets/components/assets/panel/t9n/messages_nl.json +3 -1
- package/assets/components/assets/panel/t9n/messages_no.json +3 -1
- package/assets/components/assets/panel/t9n/messages_pl.json +3 -1
- package/assets/components/assets/panel/t9n/messages_pt-BR.json +3 -1
- package/assets/components/assets/panel/t9n/messages_pt-PT.json +3 -1
- package/assets/components/assets/panel/t9n/messages_ro.json +3 -1
- package/assets/components/assets/panel/t9n/messages_ru.json +3 -1
- package/assets/components/assets/panel/t9n/messages_sk.json +3 -1
- package/assets/components/assets/panel/t9n/messages_sl.json +3 -1
- package/assets/components/assets/panel/t9n/messages_sr.json +3 -1
- package/assets/components/assets/panel/t9n/messages_sv.json +3 -1
- package/assets/components/assets/panel/t9n/messages_th.json +3 -1
- package/assets/components/assets/panel/t9n/messages_tr.json +3 -1
- package/assets/components/assets/panel/t9n/messages_uk.json +3 -1
- package/assets/components/assets/panel/t9n/messages_vi.json +3 -1
- package/assets/components/assets/panel/t9n/messages_zh-CN.json +3 -1
- package/assets/components/assets/panel/t9n/messages_zh-HK.json +3 -1
- package/assets/components/assets/panel/t9n/messages_zh-TW.json +3 -1
- package/assets/components/assets/table/t9n/messages_ar.json +5 -5
- package/assets/components/assets/table/t9n/messages_bg.json +5 -5
- package/assets/components/assets/table/t9n/messages_bs.json +5 -5
- package/assets/components/assets/table/t9n/messages_ca.json +5 -5
- package/assets/components/assets/table/t9n/messages_cs.json +5 -5
- package/assets/components/assets/table/t9n/messages_da.json +5 -5
- package/assets/components/assets/table/t9n/messages_de.json +5 -5
- package/assets/components/assets/table/t9n/messages_el.json +5 -5
- package/assets/components/assets/table/t9n/messages_es.json +5 -5
- package/assets/components/assets/table/t9n/messages_et.json +5 -5
- package/assets/components/assets/table/t9n/messages_fi.json +5 -5
- package/assets/components/assets/table/t9n/messages_fr.json +4 -4
- package/assets/components/assets/table/t9n/messages_he.json +5 -5
- package/assets/components/assets/table/t9n/messages_hr.json +5 -5
- package/assets/components/assets/table/t9n/messages_hu.json +5 -5
- package/assets/components/assets/table/t9n/messages_id.json +5 -5
- package/assets/components/assets/table/t9n/messages_it.json +5 -5
- package/assets/components/assets/table/t9n/messages_ja.json +5 -5
- package/assets/components/assets/table/t9n/messages_ko.json +5 -5
- package/assets/components/assets/table/t9n/messages_lt.json +5 -5
- package/assets/components/assets/table/t9n/messages_lv.json +5 -5
- package/assets/components/assets/table/t9n/messages_nl.json +5 -5
- package/assets/components/assets/table/t9n/messages_no.json +5 -5
- package/assets/components/assets/table/t9n/messages_pl.json +5 -5
- package/assets/components/assets/table/t9n/messages_pt-BR.json +5 -5
- package/assets/components/assets/table/t9n/messages_pt-PT.json +5 -5
- package/assets/components/assets/table/t9n/messages_ro.json +5 -5
- package/assets/components/assets/table/t9n/messages_ru.json +5 -5
- package/assets/components/assets/table/t9n/messages_sk.json +5 -5
- package/assets/components/assets/table/t9n/messages_sl.json +5 -5
- package/assets/components/assets/table/t9n/messages_sr.json +5 -5
- package/assets/components/assets/table/t9n/messages_sv.json +5 -5
- package/assets/components/assets/table/t9n/messages_th.json +5 -5
- package/assets/components/assets/table/t9n/messages_tr.json +5 -5
- package/assets/components/assets/table/t9n/messages_uk.json +5 -5
- package/assets/components/assets/table/t9n/messages_vi.json +5 -5
- package/assets/components/assets/table/t9n/messages_zh-CN.json +5 -5
- package/assets/components/assets/table/t9n/messages_zh-HK.json +5 -5
- package/assets/components/assets/table/t9n/messages_zh-TW.json +5 -5
- package/assets/components/assets/table-cell/t9n/messages_ar.json +5 -5
- package/assets/components/assets/table-cell/t9n/messages_bg.json +5 -5
- package/assets/components/assets/table-cell/t9n/messages_bs.json +5 -5
- package/assets/components/assets/table-cell/t9n/messages_ca.json +5 -5
- package/assets/components/assets/table-cell/t9n/messages_cs.json +5 -5
- package/assets/components/assets/table-cell/t9n/messages_da.json +5 -5
- package/assets/components/assets/table-cell/t9n/messages_de.json +5 -5
- package/assets/components/assets/table-cell/t9n/messages_el.json +5 -5
- package/assets/components/assets/table-cell/t9n/messages_es.json +5 -5
- package/assets/components/assets/table-cell/t9n/messages_et.json +5 -5
- package/assets/components/assets/table-cell/t9n/messages_fi.json +5 -5
- package/assets/components/assets/table-cell/t9n/messages_fr.json +5 -5
- package/assets/components/assets/table-cell/t9n/messages_he.json +5 -5
- package/assets/components/assets/table-cell/t9n/messages_hr.json +5 -5
- package/assets/components/assets/table-cell/t9n/messages_hu.json +5 -5
- package/assets/components/assets/table-cell/t9n/messages_id.json +5 -5
- package/assets/components/assets/table-cell/t9n/messages_it.json +5 -5
- package/assets/components/assets/table-cell/t9n/messages_ja.json +5 -5
- package/assets/components/assets/table-cell/t9n/messages_ko.json +5 -5
- package/assets/components/assets/table-cell/t9n/messages_lt.json +5 -5
- package/assets/components/assets/table-cell/t9n/messages_lv.json +5 -5
- package/assets/components/assets/table-cell/t9n/messages_nl.json +5 -5
- package/assets/components/assets/table-cell/t9n/messages_no.json +5 -5
- package/assets/components/assets/table-cell/t9n/messages_pl.json +5 -5
- package/assets/components/assets/table-cell/t9n/messages_pt-BR.json +5 -5
- package/assets/components/assets/table-cell/t9n/messages_pt-PT.json +5 -5
- package/assets/components/assets/table-cell/t9n/messages_ro.json +5 -5
- package/assets/components/assets/table-cell/t9n/messages_ru.json +5 -5
- package/assets/components/assets/table-cell/t9n/messages_sk.json +5 -5
- package/assets/components/assets/table-cell/t9n/messages_sl.json +5 -5
- package/assets/components/assets/table-cell/t9n/messages_sr.json +5 -5
- package/assets/components/assets/table-cell/t9n/messages_sv.json +5 -5
- package/assets/components/assets/table-cell/t9n/messages_th.json +5 -5
- package/assets/components/assets/table-cell/t9n/messages_tr.json +5 -5
- package/assets/components/assets/table-cell/t9n/messages_uk.json +5 -5
- package/assets/components/assets/table-cell/t9n/messages_vi.json +5 -5
- package/assets/components/assets/table-cell/t9n/messages_zh-CN.json +5 -5
- package/assets/components/assets/table-cell/t9n/messages_zh-HK.json +5 -5
- package/assets/components/assets/table-cell/t9n/messages_zh-TW.json +5 -5
- package/assets/components/assets/table-header/t9n/messages_ar.json +6 -6
- package/assets/components/assets/table-header/t9n/messages_bg.json +6 -6
- package/assets/components/assets/table-header/t9n/messages_bs.json +6 -6
- package/assets/components/assets/table-header/t9n/messages_ca.json +6 -6
- package/assets/components/assets/table-header/t9n/messages_cs.json +6 -6
- package/assets/components/assets/table-header/t9n/messages_da.json +6 -6
- package/assets/components/assets/table-header/t9n/messages_de.json +6 -6
- package/assets/components/assets/table-header/t9n/messages_el.json +6 -6
- package/assets/components/assets/table-header/t9n/messages_es.json +6 -6
- package/assets/components/assets/table-header/t9n/messages_et.json +6 -6
- package/assets/components/assets/table-header/t9n/messages_fi.json +6 -6
- package/assets/components/assets/table-header/t9n/messages_fr.json +6 -6
- package/assets/components/assets/table-header/t9n/messages_he.json +6 -6
- package/assets/components/assets/table-header/t9n/messages_hr.json +6 -6
- package/assets/components/assets/table-header/t9n/messages_hu.json +6 -6
- package/assets/components/assets/table-header/t9n/messages_id.json +6 -6
- package/assets/components/assets/table-header/t9n/messages_it.json +6 -6
- package/assets/components/assets/table-header/t9n/messages_ja.json +6 -6
- package/assets/components/assets/table-header/t9n/messages_ko.json +6 -6
- package/assets/components/assets/table-header/t9n/messages_lt.json +6 -6
- package/assets/components/assets/table-header/t9n/messages_lv.json +6 -6
- package/assets/components/assets/table-header/t9n/messages_nl.json +6 -6
- package/assets/components/assets/table-header/t9n/messages_no.json +6 -6
- package/assets/components/assets/table-header/t9n/messages_pl.json +6 -6
- package/assets/components/assets/table-header/t9n/messages_pt-BR.json +6 -6
- package/assets/components/assets/table-header/t9n/messages_pt-PT.json +6 -6
- package/assets/components/assets/table-header/t9n/messages_ro.json +6 -6
- package/assets/components/assets/table-header/t9n/messages_ru.json +6 -6
- package/assets/components/assets/table-header/t9n/messages_sk.json +6 -6
- package/assets/components/assets/table-header/t9n/messages_sl.json +6 -6
- package/assets/components/assets/table-header/t9n/messages_sr.json +6 -6
- package/assets/components/assets/table-header/t9n/messages_sv.json +6 -6
- package/assets/components/assets/table-header/t9n/messages_th.json +6 -6
- package/assets/components/assets/table-header/t9n/messages_tr.json +6 -6
- package/assets/components/assets/table-header/t9n/messages_uk.json +6 -6
- package/assets/components/assets/table-header/t9n/messages_vi.json +6 -6
- package/assets/components/assets/table-header/t9n/messages_zh-CN.json +6 -6
- package/assets/components/assets/table-header/t9n/messages_zh-HK.json +6 -6
- package/assets/components/assets/table-header/t9n/messages_zh-TW.json +6 -6
- package/assets/components/assets/time-picker/t9n/messages_ar.json +3 -0
- package/assets/components/assets/time-picker/t9n/messages_bg.json +3 -0
- package/assets/components/assets/time-picker/t9n/messages_bs.json +3 -0
- package/assets/components/assets/time-picker/t9n/messages_ca.json +3 -0
- package/assets/components/assets/time-picker/t9n/messages_cs.json +3 -0
- package/assets/components/assets/time-picker/t9n/messages_da.json +3 -0
- package/assets/components/assets/time-picker/t9n/messages_de.json +3 -0
- package/assets/components/assets/time-picker/t9n/messages_el.json +3 -0
- package/assets/components/assets/time-picker/t9n/messages_es.json +3 -0
- package/assets/components/assets/time-picker/t9n/messages_et.json +3 -0
- package/assets/components/assets/time-picker/t9n/messages_fi.json +3 -0
- package/assets/components/assets/time-picker/t9n/messages_fr.json +3 -0
- package/assets/components/assets/time-picker/t9n/messages_he.json +3 -0
- package/assets/components/assets/time-picker/t9n/messages_hr.json +3 -0
- package/assets/components/assets/time-picker/t9n/messages_hu.json +3 -0
- package/assets/components/assets/time-picker/t9n/messages_id.json +3 -0
- package/assets/components/assets/time-picker/t9n/messages_it.json +3 -0
- package/assets/components/assets/time-picker/t9n/messages_ja.json +3 -0
- package/assets/components/assets/time-picker/t9n/messages_ko.json +3 -0
- package/assets/components/assets/time-picker/t9n/messages_lt.json +3 -0
- package/assets/components/assets/time-picker/t9n/messages_lv.json +3 -0
- package/assets/components/assets/time-picker/t9n/messages_nl.json +3 -0
- package/assets/components/assets/time-picker/t9n/messages_no.json +3 -0
- package/assets/components/assets/time-picker/t9n/messages_pl.json +3 -0
- package/assets/components/assets/time-picker/t9n/messages_pt-BR.json +3 -0
- package/assets/components/assets/time-picker/t9n/messages_pt-PT.json +3 -0
- package/assets/components/assets/time-picker/t9n/messages_ro.json +3 -0
- package/assets/components/assets/time-picker/t9n/messages_ru.json +3 -0
- package/assets/components/assets/time-picker/t9n/messages_sk.json +3 -0
- package/assets/components/assets/time-picker/t9n/messages_sl.json +3 -0
- package/assets/components/assets/time-picker/t9n/messages_sr.json +3 -0
- package/assets/components/assets/time-picker/t9n/messages_sv.json +3 -0
- package/assets/components/assets/time-picker/t9n/messages_th.json +3 -0
- package/assets/components/assets/time-picker/t9n/messages_tr.json +3 -0
- package/assets/components/assets/time-picker/t9n/messages_uk.json +3 -0
- package/assets/components/assets/time-picker/t9n/messages_vi.json +3 -0
- package/assets/components/assets/time-picker/t9n/messages_zh-CN.json +3 -0
- package/assets/components/assets/time-picker/t9n/messages_zh-HK.json +3 -0
- package/assets/components/assets/time-picker/t9n/messages_zh-TW.json +3 -0
- package/assets/esri/core/workers/RemoteClient.js +1 -1
- package/assets/esri/core/workers/chunks/00da3c16741a9bc47f3a.js +1 -0
- package/assets/esri/core/workers/chunks/020825b9c12f2b6386a7.js +1 -0
- package/assets/esri/core/workers/chunks/07adca463da5554e514d.js +1 -0
- package/assets/esri/core/workers/chunks/07c1783baf9b19b4876a.js +1 -0
- package/assets/esri/core/workers/chunks/08a98e85e86ce560d005.js +1 -0
- package/assets/esri/core/workers/chunks/0e354096ad8817971eed.js +1 -0
- package/assets/esri/core/workers/chunks/0e4646d14fa0775bf463.js +1 -0
- package/assets/esri/core/workers/chunks/0ea41f142793edb99d3a.js +1 -0
- package/assets/esri/core/workers/chunks/10dc578a90e1194c8720.js +1 -0
- package/assets/esri/core/workers/chunks/18e0c5bfeb1aa7213dfa.js +1 -0
- package/assets/esri/core/workers/chunks/19c9966f74d287750aaa.js +1 -0
- package/assets/esri/core/workers/chunks/1a65d9b9f823d1e8b315.js +1 -0
- package/assets/esri/core/workers/chunks/1eb5468c7cf653338d53.js +1 -0
- package/assets/esri/core/workers/chunks/1f30ea1a598ddd2e5df3.js +1 -0
- package/assets/esri/core/workers/chunks/{40c00b352618c7839f7e.js → 1f87f22e00e3218661c6.js} +1 -1
- package/assets/esri/core/workers/chunks/1fc3b526e881ada30420.js +1 -0
- package/assets/esri/core/workers/chunks/2304b7456ced997904f6.js +1 -0
- package/assets/esri/core/workers/chunks/2d92df1e3ba4f05e0510.js +1 -0
- package/assets/esri/core/workers/chunks/31cb4c73764555b40328.js +1 -0
- package/assets/esri/core/workers/chunks/32bd6a343ea49c331e1f.js +1 -0
- package/assets/esri/core/workers/chunks/3491f1945d9c06d8b2c7.js +1 -0
- package/assets/esri/core/workers/chunks/366cf9bba6989342e447.js +1 -0
- package/assets/esri/core/workers/chunks/37edbd9b05bfdb2e645d.js +1 -0
- package/assets/esri/core/workers/chunks/3c5a112a9b58770a5242.js +1 -0
- package/assets/esri/core/workers/chunks/41778f8c49febe1f9404.js +1 -0
- package/assets/esri/core/workers/chunks/430ec9f5949b31959893.js +1 -0
- package/assets/esri/core/workers/chunks/43575b9acf9819f195f9.js +1 -0
- package/assets/esri/core/workers/chunks/43f7d9366d06d69e7c50.js +1 -0
- package/assets/esri/core/workers/chunks/{e8c7cc974420c0b92d0e.js → 4672504d6fe649da19f2.js} +1 -1
- package/assets/esri/core/workers/chunks/4e813f112a428b4acf0e.js +1 -0
- package/assets/esri/core/workers/chunks/{e93442c6d92229f3a4b0.js → 51b8913dff24e693bd25.js} +1 -1
- package/assets/esri/core/workers/chunks/5386b166f2e5dc0d9143.js +1 -0
- package/assets/esri/core/workers/chunks/562eafa5090827ebb7ec.js +1 -0
- package/assets/esri/core/workers/chunks/56a61a8bff08ae273de4.js +1 -0
- package/assets/esri/core/workers/chunks/580e7d3cbf6797a50ded.js +1 -0
- package/assets/esri/core/workers/chunks/5e8f02da4eae41f57383.js +1 -0
- package/assets/esri/core/workers/chunks/6046be598e8c673eeb1f.js +1 -0
- package/assets/esri/core/workers/chunks/61dec8399919b278b636.js +1 -0
- package/assets/esri/core/workers/chunks/6334a8a7b671d4042108.js +1 -0
- package/assets/esri/core/workers/chunks/6747503826bfc94bc6c0.js +1 -0
- package/assets/esri/core/workers/chunks/6867ed1860afb7aac536.js +1 -0
- package/assets/esri/core/workers/chunks/69c1c850af7ee33258e0.js +1 -0
- package/assets/esri/core/workers/chunks/70aa04b09143b7dd2ecb.js +1 -0
- package/assets/esri/core/workers/chunks/7388fd97e7b1a2142744.js +1 -0
- package/assets/esri/core/workers/chunks/7648f3341b7dff2825c3.js +1 -0
- package/assets/esri/core/workers/chunks/768271a12dc7e1781447.js +1 -0
- package/assets/esri/core/workers/chunks/{efb17a298363beca5209.js → 7756ed853b4ba54cd081.js} +1 -1
- package/assets/esri/core/workers/chunks/7f3bc7a2de59e485f22f.js +1 -0
- package/assets/esri/core/workers/chunks/7f433e25f3892475d5dc.js +1 -0
- package/assets/esri/core/workers/chunks/80bf6cf1bef17215bca4.js +1 -0
- package/assets/esri/core/workers/chunks/83d063b7ce768e9ab3de.js +1 -0
- package/assets/esri/core/workers/chunks/83f7e22a12d90ef93e62.js +1 -0
- package/assets/esri/core/workers/chunks/{4cc680fe4c9c39d2f853.js → 8a7fa4e8b0d14da7c9eb.js} +1 -1
- package/assets/esri/core/workers/chunks/92d8f75e616afa5c761e.js +1 -0
- package/assets/esri/core/workers/chunks/99fd09dd42b75a932e84.js +1 -0
- package/assets/esri/core/workers/chunks/{f0664a24f2c3705747a5.js → 9c77d69a13ec22cdd760.js} +1 -1
- package/assets/esri/core/workers/chunks/a360534e89a337871921.js +1 -0
- package/assets/esri/core/workers/chunks/a4341ec0fe89b865d849.js +1 -0
- package/assets/esri/core/workers/chunks/a821fa1870b83fed5d31.js +1 -0
- package/assets/esri/core/workers/chunks/a8e4726c1db23324eb54.js +1 -0
- package/assets/esri/core/workers/chunks/abcfe3bda6f40318b092.js +1 -0
- package/assets/esri/core/workers/chunks/ac3e429d43f80c596ec8.js +1 -0
- package/assets/esri/core/workers/chunks/ac53b5479dd229fa4f7d.js +1 -0
- package/assets/esri/core/workers/chunks/adf6bcf2447c95aeb440.js +1 -0
- package/assets/esri/core/workers/chunks/aeb3efa91165dd3d2493.js.LICENSE.txt +1 -1
- package/assets/esri/core/workers/chunks/b03eaba5fa75d6ef834a.js +1 -0
- package/assets/esri/core/workers/chunks/b251d8a856dc8b9406e0.js +1 -0
- package/assets/esri/core/workers/chunks/b3f5e97b47e896c6008a.js +1 -0
- package/assets/esri/core/workers/chunks/b6cc8d7dcc710231fe72.js +1 -0
- package/assets/esri/core/workers/chunks/b7c81a5bbcdd94b8a7f6.js +1 -0
- package/assets/esri/core/workers/chunks/b9a726f3bbad6fd4d65a.js +1 -0
- package/assets/esri/core/workers/chunks/c416df0668f6c596095f.js +1 -0
- package/assets/esri/core/workers/chunks/c447f4bf0e5f012f8f9b.js +1 -0
- package/assets/esri/core/workers/chunks/c7bd63103f101c09b1ea.js +1 -0
- package/assets/esri/core/workers/chunks/ca3d5803cdf035d7389d.js +1 -0
- package/assets/esri/core/workers/chunks/cb4b17f5cf96a9e36781.js +1 -0
- package/assets/esri/core/workers/chunks/cbddfcf57f72428a6992.js +1 -0
- package/assets/esri/core/workers/chunks/cc86c8c88124d916e1b3.js +1 -0
- package/assets/esri/core/workers/chunks/d0119dff8771e749436a.js +1 -0
- package/assets/esri/core/workers/chunks/d07235ce2765a25b9be4.js +1 -0
- package/assets/esri/core/workers/chunks/d0f903f2257eb96f7789.js +1 -0
- package/assets/esri/core/workers/chunks/d153a8b71111165fc891.js +1 -0
- package/assets/esri/core/workers/chunks/d213024012b1a019bfde.js +1 -0
- package/assets/esri/core/workers/chunks/d5fec54e98c8622349a4.js +1 -0
- package/assets/esri/core/workers/chunks/d878bb6409df183ea0ce.js +1 -0
- package/assets/esri/core/workers/chunks/da124ccd18d2745195fe.js +1 -0
- package/assets/esri/core/workers/chunks/dd55151bfac60b0deaac.js +1 -0
- package/assets/esri/core/workers/chunks/e06cd10b6f8f363b5131.js +1 -0
- package/assets/esri/core/workers/chunks/e5352dc8983d06d4ee0f.js +1 -0
- package/assets/esri/core/workers/chunks/e67c4b7ad06d8404895a.js +1 -0
- package/assets/esri/core/workers/chunks/e810336a4292ea6076a6.js +1 -0
- package/assets/esri/core/workers/chunks/{18ab9cc85a1a7988fdfd.js → ea9ae9d2aef01af90896.js} +1 -1
- package/assets/esri/core/workers/chunks/ef757269fb3fe0e74ef8.js +1 -0
- package/assets/esri/core/workers/chunks/f0d342303fc20e266d27.js +1 -0
- package/assets/esri/core/workers/chunks/f73563b23fd8dc6cf2fe.js +1 -0
- package/assets/esri/core/workers/chunks/f85107720159b855a469.js +1 -0
- package/assets/esri/core/workers/chunks/fbc57985d55b5fbe1e8a.js +1 -0
- package/assets/esri/core/workers/chunks/fc95b1a36ed68b851400.js +1 -0
- package/assets/esri/core/workers/chunks/{7cf7f2b991a7cbdad2ce.js → fd28400141a6751327ae.js} +1 -1
- package/assets/esri/t9n/common.json +1 -1
- package/assets/esri/t9n/common_ar.json +1 -1
- package/assets/esri/t9n/common_bg.json +1 -1
- package/assets/esri/t9n/common_bs.json +1 -1
- package/assets/esri/t9n/common_ca.json +1 -1
- package/assets/esri/t9n/common_cs.json +1 -1
- package/assets/esri/t9n/common_da.json +1 -1
- package/assets/esri/t9n/common_de.json +1 -1
- package/assets/esri/t9n/common_el.json +1 -1
- package/assets/esri/t9n/common_en.json +1 -1
- package/assets/esri/t9n/common_es.json +1 -1
- package/assets/esri/t9n/common_et.json +1 -1
- package/assets/esri/t9n/common_fi.json +1 -1
- package/assets/esri/t9n/common_fr.json +1 -1
- package/assets/esri/t9n/common_he.json +1 -1
- package/assets/esri/t9n/common_hr.json +1 -1
- package/assets/esri/t9n/common_hu.json +1 -1
- package/assets/esri/t9n/common_id.json +1 -1
- package/assets/esri/t9n/common_it.json +1 -1
- package/assets/esri/t9n/common_ja.json +1 -1
- package/assets/esri/t9n/common_ko.json +1 -1
- package/assets/esri/t9n/common_lt.json +1 -1
- package/assets/esri/t9n/common_lv.json +1 -1
- package/assets/esri/t9n/common_nb.json +1 -1
- package/assets/esri/t9n/common_nl.json +1 -1
- package/assets/esri/t9n/common_pl.json +1 -1
- package/assets/esri/t9n/common_pt-BR.json +1 -1
- package/assets/esri/t9n/common_pt-PT.json +1 -1
- package/assets/esri/t9n/common_ro.json +1 -1
- package/assets/esri/t9n/common_ru.json +1 -1
- package/assets/esri/t9n/common_sk.json +1 -1
- package/assets/esri/t9n/common_sl.json +1 -1
- package/assets/esri/t9n/common_sr.json +1 -1
- package/assets/esri/t9n/common_sv.json +1 -1
- package/assets/esri/t9n/common_th.json +1 -1
- package/assets/esri/t9n/common_tr.json +1 -1
- package/assets/esri/t9n/common_uk.json +1 -1
- package/assets/esri/t9n/common_vi.json +1 -1
- package/assets/esri/t9n/common_zh-CN.json +1 -1
- package/assets/esri/t9n/common_zh-HK.json +1 -1
- package/assets/esri/t9n/common_zh-TW.json +1 -1
- package/assets/esri/themes/base/_core.scss +2 -0
- package/assets/esri/themes/base/widgets/_DatePicker.scss +4 -0
- package/assets/esri/themes/base/widgets/_FeatureForm.scss +10 -14
- package/assets/esri/themes/base/widgets/_Features.scss +1 -1
- package/assets/esri/themes/base/widgets/_ScaleRangeSlider.scss +1 -1
- package/assets/esri/themes/base/widgets/_TimeZoneLabel.scss +46 -0
- package/assets/esri/themes/base/widgets/_Tooltip.scss +1 -1
- package/assets/esri/themes/base/widgets/_UtilityNetworkTrace.scss +4 -0
- package/assets/esri/themes/dark/main.css +1 -1
- package/assets/esri/themes/light/main.css +1 -1
- package/assets/esri/themes/light/view.css +1 -1
- package/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/FeatureForm/t9n/FeatureForm_ar.json +1 -1
- package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_bg.json +1 -1
- package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_bs.json +1 -1
- package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_ca.json +1 -1
- package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_cs.json +1 -1
- package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_da.json +1 -1
- package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_de.json +1 -1
- package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_el.json +1 -1
- package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_es.json +1 -1
- package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_et.json +1 -1
- package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_fi.json +1 -1
- package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_fr.json +1 -1
- package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_he.json +1 -1
- package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_hr.json +1 -1
- package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_hu.json +1 -1
- package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_id.json +1 -1
- package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_it.json +1 -1
- package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_ja.json +1 -1
- package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_ko.json +1 -1
- package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_lt.json +1 -1
- package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_lv.json +1 -1
- package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_nb.json +1 -1
- package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_nl.json +1 -1
- package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_pl.json +1 -1
- package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_pt-BR.json +1 -1
- package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_pt-PT.json +1 -1
- package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_ro.json +1 -1
- package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_ru.json +1 -1
- package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_sk.json +1 -1
- package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_sl.json +1 -1
- package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_sr.json +1 -1
- package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_sv.json +1 -1
- package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_th.json +1 -1
- package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_tr.json +1 -1
- package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_uk.json +1 -1
- package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_vi.json +1 -1
- package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_zh-CN.json +1 -1
- package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_zh-HK.json +1 -1
- package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_zh-TW.json +1 -1
- package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_ar.json +1 -1
- package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_bg.json +1 -1
- package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_bs.json +1 -1
- package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_ca.json +1 -1
- package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_cs.json +1 -1
- package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_da.json +1 -1
- package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_de.json +1 -1
- package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_el.json +1 -1
- package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_es.json +1 -1
- package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_et.json +1 -1
- package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_fi.json +1 -1
- package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_fr.json +1 -1
- package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_he.json +1 -1
- package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_hr.json +1 -1
- package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_hu.json +1 -1
- package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_id.json +1 -1
- package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_it.json +1 -1
- package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_ja.json +1 -1
- package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_ko.json +1 -1
- package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_lt.json +1 -1
- package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_lv.json +1 -1
- package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_nb.json +1 -1
- package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_nl.json +1 -1
- package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_pl.json +1 -1
- package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_pt-BR.json +1 -1
- package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_pt-PT.json +1 -1
- package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_ro.json +1 -1
- package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_ru.json +1 -1
- package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_sk.json +1 -1
- package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_sl.json +1 -1
- package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_sr.json +1 -1
- package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_sv.json +1 -1
- package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_th.json +1 -1
- package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_tr.json +1 -1
- package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_uk.json +1 -1
- package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_vi.json +1 -1
- package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_zh-CN.json +1 -1
- package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_zh-HK.json +1 -1
- package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_zh-TW.json +1 -1
- package/assets/esri/widgets/ScaleRangeSlider/t9n/ScaleRangeSlider_ar.json +1 -1
- package/assets/esri/widgets/ScaleRangeSlider/t9n/ScaleRangeSlider_bg.json +1 -1
- package/assets/esri/widgets/ScaleRangeSlider/t9n/ScaleRangeSlider_bs.json +1 -1
- package/assets/esri/widgets/ScaleRangeSlider/t9n/ScaleRangeSlider_ca.json +1 -1
- package/assets/esri/widgets/ScaleRangeSlider/t9n/ScaleRangeSlider_cs.json +1 -1
- package/assets/esri/widgets/ScaleRangeSlider/t9n/ScaleRangeSlider_da.json +1 -1
- package/assets/esri/widgets/ScaleRangeSlider/t9n/ScaleRangeSlider_de.json +1 -1
- package/assets/esri/widgets/ScaleRangeSlider/t9n/ScaleRangeSlider_el.json +1 -1
- package/assets/esri/widgets/ScaleRangeSlider/t9n/ScaleRangeSlider_es.json +1 -1
- package/assets/esri/widgets/ScaleRangeSlider/t9n/ScaleRangeSlider_et.json +1 -1
- package/assets/esri/widgets/ScaleRangeSlider/t9n/ScaleRangeSlider_fi.json +1 -1
- package/assets/esri/widgets/ScaleRangeSlider/t9n/ScaleRangeSlider_fr.json +1 -1
- package/assets/esri/widgets/ScaleRangeSlider/t9n/ScaleRangeSlider_he.json +1 -1
- package/assets/esri/widgets/ScaleRangeSlider/t9n/ScaleRangeSlider_hr.json +1 -1
- package/assets/esri/widgets/ScaleRangeSlider/t9n/ScaleRangeSlider_hu.json +1 -1
- package/assets/esri/widgets/ScaleRangeSlider/t9n/ScaleRangeSlider_id.json +1 -1
- package/assets/esri/widgets/ScaleRangeSlider/t9n/ScaleRangeSlider_it.json +1 -1
- package/assets/esri/widgets/ScaleRangeSlider/t9n/ScaleRangeSlider_ja.json +1 -1
- package/assets/esri/widgets/ScaleRangeSlider/t9n/ScaleRangeSlider_ko.json +1 -1
- package/assets/esri/widgets/ScaleRangeSlider/t9n/ScaleRangeSlider_lt.json +1 -1
- package/assets/esri/widgets/ScaleRangeSlider/t9n/ScaleRangeSlider_lv.json +1 -1
- package/assets/esri/widgets/ScaleRangeSlider/t9n/ScaleRangeSlider_nb.json +1 -1
- package/assets/esri/widgets/ScaleRangeSlider/t9n/ScaleRangeSlider_nl.json +1 -1
- package/assets/esri/widgets/ScaleRangeSlider/t9n/ScaleRangeSlider_pl.json +1 -1
- package/assets/esri/widgets/ScaleRangeSlider/t9n/ScaleRangeSlider_pt-BR.json +1 -1
- package/assets/esri/widgets/ScaleRangeSlider/t9n/ScaleRangeSlider_pt-PT.json +1 -1
- package/assets/esri/widgets/ScaleRangeSlider/t9n/ScaleRangeSlider_ro.json +1 -1
- package/assets/esri/widgets/ScaleRangeSlider/t9n/ScaleRangeSlider_ru.json +1 -1
- package/assets/esri/widgets/ScaleRangeSlider/t9n/ScaleRangeSlider_sk.json +1 -1
- package/assets/esri/widgets/ScaleRangeSlider/t9n/ScaleRangeSlider_sl.json +1 -1
- package/assets/esri/widgets/ScaleRangeSlider/t9n/ScaleRangeSlider_sr.json +1 -1
- package/assets/esri/widgets/ScaleRangeSlider/t9n/ScaleRangeSlider_sv.json +1 -1
- package/assets/esri/widgets/ScaleRangeSlider/t9n/ScaleRangeSlider_th.json +1 -1
- package/assets/esri/widgets/ScaleRangeSlider/t9n/ScaleRangeSlider_tr.json +1 -1
- package/assets/esri/widgets/ScaleRangeSlider/t9n/ScaleRangeSlider_uk.json +1 -1
- package/assets/esri/widgets/ScaleRangeSlider/t9n/ScaleRangeSlider_vi.json +1 -1
- package/assets/esri/widgets/ScaleRangeSlider/t9n/ScaleRangeSlider_zh-CN.json +1 -1
- package/assets/esri/widgets/ScaleRangeSlider/t9n/ScaleRangeSlider_zh-HK.json +1 -1
- package/assets/esri/widgets/ScaleRangeSlider/t9n/ScaleRangeSlider_zh-TW.json +1 -1
- package/assets/esri/widgets/TimeZoneLabel/t9n/TimeZoneLabel_ar.json +1 -1
- package/assets/esri/widgets/TimeZoneLabel/t9n/TimeZoneLabel_bg.json +1 -1
- package/assets/esri/widgets/TimeZoneLabel/t9n/TimeZoneLabel_bs.json +1 -1
- package/assets/esri/widgets/TimeZoneLabel/t9n/TimeZoneLabel_ca.json +1 -1
- package/assets/esri/widgets/TimeZoneLabel/t9n/TimeZoneLabel_cs.json +1 -1
- package/assets/esri/widgets/TimeZoneLabel/t9n/TimeZoneLabel_da.json +1 -1
- package/assets/esri/widgets/TimeZoneLabel/t9n/TimeZoneLabel_de.json +1 -1
- package/assets/esri/widgets/TimeZoneLabel/t9n/TimeZoneLabel_el.json +1 -1
- package/assets/esri/widgets/TimeZoneLabel/t9n/TimeZoneLabel_es.json +1 -1
- package/assets/esri/widgets/TimeZoneLabel/t9n/TimeZoneLabel_et.json +1 -1
- package/assets/esri/widgets/TimeZoneLabel/t9n/TimeZoneLabel_fi.json +1 -1
- package/assets/esri/widgets/TimeZoneLabel/t9n/TimeZoneLabel_fr.json +1 -1
- package/assets/esri/widgets/TimeZoneLabel/t9n/TimeZoneLabel_he.json +1 -1
- package/assets/esri/widgets/TimeZoneLabel/t9n/TimeZoneLabel_hr.json +1 -1
- package/assets/esri/widgets/TimeZoneLabel/t9n/TimeZoneLabel_hu.json +1 -1
- package/assets/esri/widgets/TimeZoneLabel/t9n/TimeZoneLabel_id.json +1 -1
- package/assets/esri/widgets/TimeZoneLabel/t9n/TimeZoneLabel_it.json +1 -1
- package/assets/esri/widgets/TimeZoneLabel/t9n/TimeZoneLabel_ja.json +1 -1
- package/assets/esri/widgets/TimeZoneLabel/t9n/TimeZoneLabel_ko.json +1 -1
- package/assets/esri/widgets/TimeZoneLabel/t9n/TimeZoneLabel_lt.json +1 -1
- package/assets/esri/widgets/TimeZoneLabel/t9n/TimeZoneLabel_lv.json +1 -1
- package/assets/esri/widgets/TimeZoneLabel/t9n/TimeZoneLabel_nb.json +1 -1
- package/assets/esri/widgets/TimeZoneLabel/t9n/TimeZoneLabel_nl.json +1 -1
- package/assets/esri/widgets/TimeZoneLabel/t9n/TimeZoneLabel_pl.json +1 -1
- package/assets/esri/widgets/TimeZoneLabel/t9n/TimeZoneLabel_pt-BR.json +1 -1
- package/assets/esri/widgets/TimeZoneLabel/t9n/TimeZoneLabel_pt-PT.json +1 -1
- package/assets/esri/widgets/TimeZoneLabel/t9n/TimeZoneLabel_ro.json +1 -1
- package/assets/esri/widgets/TimeZoneLabel/t9n/TimeZoneLabel_ru.json +1 -1
- package/assets/esri/widgets/TimeZoneLabel/t9n/TimeZoneLabel_sk.json +1 -1
- package/assets/esri/widgets/TimeZoneLabel/t9n/TimeZoneLabel_sl.json +1 -1
- package/assets/esri/widgets/TimeZoneLabel/t9n/TimeZoneLabel_sr.json +1 -1
- package/assets/esri/widgets/TimeZoneLabel/t9n/TimeZoneLabel_sv.json +1 -1
- package/assets/esri/widgets/TimeZoneLabel/t9n/TimeZoneLabel_th.json +1 -1
- package/assets/esri/widgets/TimeZoneLabel/t9n/TimeZoneLabel_tr.json +1 -1
- package/assets/esri/widgets/TimeZoneLabel/t9n/TimeZoneLabel_uk.json +1 -1
- package/assets/esri/widgets/TimeZoneLabel/t9n/TimeZoneLabel_vi.json +1 -1
- package/assets/esri/widgets/TimeZoneLabel/t9n/TimeZoneLabel_zh-CN.json +1 -1
- package/assets/esri/widgets/TimeZoneLabel/t9n/TimeZoneLabel_zh-HK.json +1 -1
- package/assets/esri/widgets/TimeZoneLabel/t9n/TimeZoneLabel_zh-TW.json +1 -1
- package/assets/esri/widgets/UtilityNetworkAssociations/t9n/UtilityNetworkAssociations_ar.json +1 -1
- package/assets/esri/widgets/UtilityNetworkAssociations/t9n/UtilityNetworkAssociations_bg.json +1 -1
- package/assets/esri/widgets/UtilityNetworkAssociations/t9n/UtilityNetworkAssociations_bs.json +1 -1
- package/assets/esri/widgets/UtilityNetworkAssociations/t9n/UtilityNetworkAssociations_ca.json +1 -1
- package/assets/esri/widgets/UtilityNetworkAssociations/t9n/UtilityNetworkAssociations_cs.json +1 -1
- package/assets/esri/widgets/UtilityNetworkAssociations/t9n/UtilityNetworkAssociations_da.json +1 -1
- package/assets/esri/widgets/UtilityNetworkAssociations/t9n/UtilityNetworkAssociations_de.json +1 -1
- package/assets/esri/widgets/UtilityNetworkAssociations/t9n/UtilityNetworkAssociations_el.json +1 -1
- package/assets/esri/widgets/UtilityNetworkAssociations/t9n/UtilityNetworkAssociations_es.json +1 -1
- package/assets/esri/widgets/UtilityNetworkAssociations/t9n/UtilityNetworkAssociations_et.json +1 -1
- package/assets/esri/widgets/UtilityNetworkAssociations/t9n/UtilityNetworkAssociations_fi.json +1 -1
- package/assets/esri/widgets/UtilityNetworkAssociations/t9n/UtilityNetworkAssociations_fr.json +1 -1
- package/assets/esri/widgets/UtilityNetworkAssociations/t9n/UtilityNetworkAssociations_he.json +1 -1
- package/assets/esri/widgets/UtilityNetworkAssociations/t9n/UtilityNetworkAssociations_hr.json +1 -1
- package/assets/esri/widgets/UtilityNetworkAssociations/t9n/UtilityNetworkAssociations_hu.json +1 -1
- package/assets/esri/widgets/UtilityNetworkAssociations/t9n/UtilityNetworkAssociations_id.json +1 -1
- package/assets/esri/widgets/UtilityNetworkAssociations/t9n/UtilityNetworkAssociations_it.json +1 -1
- package/assets/esri/widgets/UtilityNetworkAssociations/t9n/UtilityNetworkAssociations_ja.json +1 -1
- package/assets/esri/widgets/UtilityNetworkAssociations/t9n/UtilityNetworkAssociations_ko.json +1 -1
- package/assets/esri/widgets/UtilityNetworkAssociations/t9n/UtilityNetworkAssociations_lt.json +1 -1
- package/assets/esri/widgets/UtilityNetworkAssociations/t9n/UtilityNetworkAssociations_lv.json +1 -1
- package/assets/esri/widgets/UtilityNetworkAssociations/t9n/UtilityNetworkAssociations_nb.json +1 -1
- package/assets/esri/widgets/UtilityNetworkAssociations/t9n/UtilityNetworkAssociations_nl.json +1 -1
- package/assets/esri/widgets/UtilityNetworkAssociations/t9n/UtilityNetworkAssociations_pl.json +1 -1
- package/assets/esri/widgets/UtilityNetworkAssociations/t9n/UtilityNetworkAssociations_pt-BR.json +1 -1
- package/assets/esri/widgets/UtilityNetworkAssociations/t9n/UtilityNetworkAssociations_pt-PT.json +1 -1
- package/assets/esri/widgets/UtilityNetworkAssociations/t9n/UtilityNetworkAssociations_ro.json +1 -1
- package/assets/esri/widgets/UtilityNetworkAssociations/t9n/UtilityNetworkAssociations_ru.json +1 -1
- package/assets/esri/widgets/UtilityNetworkAssociations/t9n/UtilityNetworkAssociations_sk.json +1 -1
- package/assets/esri/widgets/UtilityNetworkAssociations/t9n/UtilityNetworkAssociations_sl.json +1 -1
- package/assets/esri/widgets/UtilityNetworkAssociations/t9n/UtilityNetworkAssociations_sr.json +1 -1
- package/assets/esri/widgets/UtilityNetworkAssociations/t9n/UtilityNetworkAssociations_sv.json +1 -1
- package/assets/esri/widgets/UtilityNetworkAssociations/t9n/UtilityNetworkAssociations_th.json +1 -1
- package/assets/esri/widgets/UtilityNetworkAssociations/t9n/UtilityNetworkAssociations_tr.json +1 -1
- package/assets/esri/widgets/UtilityNetworkAssociations/t9n/UtilityNetworkAssociations_uk.json +1 -1
- package/assets/esri/widgets/UtilityNetworkAssociations/t9n/UtilityNetworkAssociations_vi.json +1 -1
- package/assets/esri/widgets/UtilityNetworkAssociations/t9n/UtilityNetworkAssociations_zh-CN.json +1 -1
- package/assets/esri/widgets/UtilityNetworkAssociations/t9n/UtilityNetworkAssociations_zh-HK.json +1 -1
- package/assets/esri/widgets/UtilityNetworkAssociations/t9n/UtilityNetworkAssociations_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/assets/esri/widgets/UtilityNetworkValidateTopology/t9n/UtilityNetworkValidateTopology_ar.json +1 -1
- package/assets/esri/widgets/UtilityNetworkValidateTopology/t9n/UtilityNetworkValidateTopology_bg.json +1 -1
- package/assets/esri/widgets/UtilityNetworkValidateTopology/t9n/UtilityNetworkValidateTopology_bs.json +1 -1
- package/assets/esri/widgets/UtilityNetworkValidateTopology/t9n/UtilityNetworkValidateTopology_ca.json +1 -1
- package/assets/esri/widgets/UtilityNetworkValidateTopology/t9n/UtilityNetworkValidateTopology_cs.json +1 -1
- package/assets/esri/widgets/UtilityNetworkValidateTopology/t9n/UtilityNetworkValidateTopology_da.json +1 -1
- package/assets/esri/widgets/UtilityNetworkValidateTopology/t9n/UtilityNetworkValidateTopology_de.json +1 -1
- package/assets/esri/widgets/UtilityNetworkValidateTopology/t9n/UtilityNetworkValidateTopology_el.json +1 -1
- package/assets/esri/widgets/UtilityNetworkValidateTopology/t9n/UtilityNetworkValidateTopology_es.json +1 -1
- package/assets/esri/widgets/UtilityNetworkValidateTopology/t9n/UtilityNetworkValidateTopology_et.json +1 -1
- package/assets/esri/widgets/UtilityNetworkValidateTopology/t9n/UtilityNetworkValidateTopology_fi.json +1 -1
- package/assets/esri/widgets/UtilityNetworkValidateTopology/t9n/UtilityNetworkValidateTopology_fr.json +1 -1
- package/assets/esri/widgets/UtilityNetworkValidateTopology/t9n/UtilityNetworkValidateTopology_he.json +1 -1
- package/assets/esri/widgets/UtilityNetworkValidateTopology/t9n/UtilityNetworkValidateTopology_hr.json +1 -1
- package/assets/esri/widgets/UtilityNetworkValidateTopology/t9n/UtilityNetworkValidateTopology_hu.json +1 -1
- package/assets/esri/widgets/UtilityNetworkValidateTopology/t9n/UtilityNetworkValidateTopology_id.json +1 -1
- package/assets/esri/widgets/UtilityNetworkValidateTopology/t9n/UtilityNetworkValidateTopology_it.json +1 -1
- package/assets/esri/widgets/UtilityNetworkValidateTopology/t9n/UtilityNetworkValidateTopology_ja.json +1 -1
- package/assets/esri/widgets/UtilityNetworkValidateTopology/t9n/UtilityNetworkValidateTopology_ko.json +1 -1
- package/assets/esri/widgets/UtilityNetworkValidateTopology/t9n/UtilityNetworkValidateTopology_lt.json +1 -1
- package/assets/esri/widgets/UtilityNetworkValidateTopology/t9n/UtilityNetworkValidateTopology_lv.json +1 -1
- package/assets/esri/widgets/UtilityNetworkValidateTopology/t9n/UtilityNetworkValidateTopology_nb.json +1 -1
- package/assets/esri/widgets/UtilityNetworkValidateTopology/t9n/UtilityNetworkValidateTopology_nl.json +1 -1
- package/assets/esri/widgets/UtilityNetworkValidateTopology/t9n/UtilityNetworkValidateTopology_pl.json +1 -1
- package/assets/esri/widgets/UtilityNetworkValidateTopology/t9n/UtilityNetworkValidateTopology_pt-BR.json +1 -1
- package/assets/esri/widgets/UtilityNetworkValidateTopology/t9n/UtilityNetworkValidateTopology_pt-PT.json +1 -1
- package/assets/esri/widgets/UtilityNetworkValidateTopology/t9n/UtilityNetworkValidateTopology_ro.json +1 -1
- package/assets/esri/widgets/UtilityNetworkValidateTopology/t9n/UtilityNetworkValidateTopology_ru.json +1 -1
- package/assets/esri/widgets/UtilityNetworkValidateTopology/t9n/UtilityNetworkValidateTopology_sk.json +1 -1
- package/assets/esri/widgets/UtilityNetworkValidateTopology/t9n/UtilityNetworkValidateTopology_sl.json +1 -1
- package/assets/esri/widgets/UtilityNetworkValidateTopology/t9n/UtilityNetworkValidateTopology_sr.json +1 -1
- package/assets/esri/widgets/UtilityNetworkValidateTopology/t9n/UtilityNetworkValidateTopology_sv.json +1 -1
- package/assets/esri/widgets/UtilityNetworkValidateTopology/t9n/UtilityNetworkValidateTopology_th.json +1 -1
- package/assets/esri/widgets/UtilityNetworkValidateTopology/t9n/UtilityNetworkValidateTopology_tr.json +1 -1
- package/assets/esri/widgets/UtilityNetworkValidateTopology/t9n/UtilityNetworkValidateTopology_uk.json +1 -1
- package/assets/esri/widgets/UtilityNetworkValidateTopology/t9n/UtilityNetworkValidateTopology_vi.json +1 -1
- package/assets/esri/widgets/UtilityNetworkValidateTopology/t9n/UtilityNetworkValidateTopology_zh-CN.json +1 -1
- package/assets/esri/widgets/UtilityNetworkValidateTopology/t9n/UtilityNetworkValidateTopology_zh-HK.json +1 -1
- package/assets/esri/widgets/UtilityNetworkValidateTopology/t9n/UtilityNetworkValidateTopology_zh-TW.json +1 -1
- package/assets/esri/widgets/support/SketchTooltipControls/t9n/SketchTooltipControls_ar.json +1 -1
- package/assets/esri/widgets/support/SketchTooltipControls/t9n/SketchTooltipControls_bg.json +1 -1
- package/assets/esri/widgets/support/SketchTooltipControls/t9n/SketchTooltipControls_bs.json +1 -1
- package/assets/esri/widgets/support/SketchTooltipControls/t9n/SketchTooltipControls_ca.json +1 -1
- package/assets/esri/widgets/support/SketchTooltipControls/t9n/SketchTooltipControls_cs.json +1 -1
- package/assets/esri/widgets/support/SketchTooltipControls/t9n/SketchTooltipControls_da.json +1 -1
- package/assets/esri/widgets/support/SketchTooltipControls/t9n/SketchTooltipControls_de.json +1 -1
- package/assets/esri/widgets/support/SketchTooltipControls/t9n/SketchTooltipControls_el.json +1 -1
- package/assets/esri/widgets/support/SketchTooltipControls/t9n/SketchTooltipControls_es.json +1 -1
- package/assets/esri/widgets/support/SketchTooltipControls/t9n/SketchTooltipControls_et.json +1 -1
- package/assets/esri/widgets/support/SketchTooltipControls/t9n/SketchTooltipControls_fi.json +1 -1
- package/assets/esri/widgets/support/SketchTooltipControls/t9n/SketchTooltipControls_fr.json +1 -1
- package/assets/esri/widgets/support/SketchTooltipControls/t9n/SketchTooltipControls_he.json +1 -1
- package/assets/esri/widgets/support/SketchTooltipControls/t9n/SketchTooltipControls_hr.json +1 -1
- package/assets/esri/widgets/support/SketchTooltipControls/t9n/SketchTooltipControls_hu.json +1 -1
- package/assets/esri/widgets/support/SketchTooltipControls/t9n/SketchTooltipControls_id.json +1 -1
- package/assets/esri/widgets/support/SketchTooltipControls/t9n/SketchTooltipControls_it.json +1 -1
- package/assets/esri/widgets/support/SketchTooltipControls/t9n/SketchTooltipControls_ja.json +1 -1
- package/assets/esri/widgets/support/SketchTooltipControls/t9n/SketchTooltipControls_ko.json +1 -1
- package/assets/esri/widgets/support/SketchTooltipControls/t9n/SketchTooltipControls_lt.json +1 -1
- package/assets/esri/widgets/support/SketchTooltipControls/t9n/SketchTooltipControls_lv.json +1 -1
- package/assets/esri/widgets/support/SketchTooltipControls/t9n/SketchTooltipControls_nb.json +1 -1
- package/assets/esri/widgets/support/SketchTooltipControls/t9n/SketchTooltipControls_nl.json +1 -1
- package/assets/esri/widgets/support/SketchTooltipControls/t9n/SketchTooltipControls_pl.json +1 -1
- package/assets/esri/widgets/support/SketchTooltipControls/t9n/SketchTooltipControls_pt-BR.json +1 -1
- package/assets/esri/widgets/support/SketchTooltipControls/t9n/SketchTooltipControls_pt-PT.json +1 -1
- package/assets/esri/widgets/support/SketchTooltipControls/t9n/SketchTooltipControls_ro.json +1 -1
- package/assets/esri/widgets/support/SketchTooltipControls/t9n/SketchTooltipControls_ru.json +1 -1
- package/assets/esri/widgets/support/SketchTooltipControls/t9n/SketchTooltipControls_sk.json +1 -1
- package/assets/esri/widgets/support/SketchTooltipControls/t9n/SketchTooltipControls_sl.json +1 -1
- package/assets/esri/widgets/support/SketchTooltipControls/t9n/SketchTooltipControls_sr.json +1 -1
- package/assets/esri/widgets/support/SketchTooltipControls/t9n/SketchTooltipControls_sv.json +1 -1
- package/assets/esri/widgets/support/SketchTooltipControls/t9n/SketchTooltipControls_th.json +1 -1
- package/assets/esri/widgets/support/SketchTooltipControls/t9n/SketchTooltipControls_tr.json +1 -1
- package/assets/esri/widgets/support/SketchTooltipControls/t9n/SketchTooltipControls_uk.json +1 -1
- package/assets/esri/widgets/support/SketchTooltipControls/t9n/SketchTooltipControls_vi.json +1 -1
- package/assets/esri/widgets/support/SketchTooltipControls/t9n/SketchTooltipControls_zh-CN.json +1 -1
- package/assets/esri/widgets/support/SketchTooltipControls/t9n/SketchTooltipControls_zh-HK.json +1 -1
- package/assets/esri/widgets/support/SketchTooltipControls/t9n/SketchTooltipControls_zh-TW.json +1 -1
- package/chunks/ComponentShader.glsl.js +27 -27
- package/chunks/HighlightApply.glsl.js +6 -7
- package/chunks/HighlightBlur.glsl.js +5 -6
- package/chunks/HighlightDownsample.glsl.js +8 -8
- package/chunks/languageUtils.js +1 -1
- package/core/MemCache.js +1 -1
- package/core/MemCachePool.js +1 -1
- package/core/colorUtils.js +1 -1
- package/core/sql/WhereClauseCache.js +1 -1
- package/geometry/GeometryCursor.js +1 -1
- package/geometry/support/meshUtils/loadExternal.js +1 -1
- package/interfaces.d.ts +320 -46
- package/intl/date.js +1 -1
- package/kernel.js +1 -1
- package/layers/GroupLayer.js +1 -1
- package/layers/MapNotesLayer.js +1 -1
- package/layers/SceneLayer.js +1 -1
- package/layers/graphics/controllers/I3SOnDemandController.js +1 -1
- package/layers/graphics/data/AttributesBuilder.js +1 -1
- package/layers/graphics/data/FeatureStore.js +1 -1
- package/layers/graphics/data/QueryEngine.js +1 -1
- package/layers/graphics/data/QueryEngineResult.js +1 -1
- package/layers/graphics/data/attributeSupport.js +1 -1
- package/layers/graphics/data/geometryUtils.js +5 -0
- package/layers/graphics/data/queryUtils.js +5 -0
- package/layers/graphics/data/queryValidationUtils.js +5 -0
- package/layers/graphics/data/spatialQuerySupport.js +1 -1
- package/layers/graphics/editingSupport.js +1 -1
- package/layers/graphics/sources/FeatureLayerSource.js +1 -1
- package/layers/graphics/sources/csv/csv.js +1 -1
- package/layers/graphics/sources/geojson/GeoJSONSourceWorker.js +1 -1
- package/layers/graphics/sources/support/MemorySourceWorker.js +1 -1
- package/layers/graphics/sources/support/sourceUtils.js +1 -1
- package/layers/ogc/wfsUtils.js +1 -1
- package/layers/support/Field.js +1 -1
- package/layers/support/FieldsIndex.js +1 -1
- package/layers/support/LayerContingentValuesCache.js +1 -1
- package/layers/support/fieldProperties.js +1 -1
- package/layers/support/fieldUtils.js +1 -1
- package/layers/support/imageryRendererUtils.js +1 -1
- package/layers/support/labelFormatUtils.js +1 -1
- package/layers/support/rasterFormats/Lerc.js +1 -1
- package/layers/support/rasterFormats/RasterCodec.js +1 -1
- package/layers/support/rasterFormats/pixelRangeUtils.js +1 -1
- package/package.json +2 -2
- package/renderers/UniqueValueRenderer.js +1 -1
- package/renderers/support/utils.js +1 -1
- package/rest/featureService/FeatureService.js +1 -1
- package/rest/query/operations/query.js +1 -1
- package/smartMapping/labels/clusters.js +1 -1
- package/smartMapping/popup/support/clusterUtils.js +1 -1
- package/smartMapping/renderers/color.js +1 -1
- package/smartMapping/renderers/opacity.js +1 -1
- package/smartMapping/renderers/size.js +1 -1
- package/smartMapping/renderers/support/utils.js +1 -1
- package/smartMapping/renderers/type.js +1 -1
- package/smartMapping/renderers/univariateColorSize.js +1 -1
- package/smartMapping/statistics/histogram.js +1 -1
- package/smartMapping/statistics/summaryStatistics.js +1 -1
- package/smartMapping/statistics/support/statsWorker.js +1 -1
- package/smartMapping/statistics/support/utils.js +1 -1
- package/smartMapping/support/adapters/FeatureLayerAdapter.js +1 -1
- package/smartMapping/support/adapters/FeatureLayerBinningAdapter.js +1 -1
- package/smartMapping/support/adapters/InMemoryLayerAdapter.js +1 -1
- package/smartMapping/support/adapters/OGCFeatureLayerAdapter.js +1 -1
- package/smartMapping/support/adapters/SceneLayerAdapter.js +1 -1
- package/smartMapping/support/adapters/StreamLayerAdapter.js +1 -1
- package/smartMapping/support/adapters/support/utils.js +1 -1
- package/smartMapping/support/clusterUtils.js +1 -1
- package/smartMapping/support/utils.js +1 -1
- package/support/revision.js +1 -1
- package/symbols/cim/CIMSymbolHelper.js +1 -1
- package/symbols/cim/effects/EffectDashes.js +1 -1
- package/symbols/support/previewCIMSymbol.js +1 -1
- package/time/timeZoneUtils.js +1 -1
- package/versionManagement/VersionManagementService.js +1 -1
- package/views/2d/engine/BitmapContainer.js +1 -1
- package/views/2d/engine/BitmapTile.js +1 -1
- package/views/2d/engine/Container.js +1 -1
- package/views/2d/engine/DisplayObject.js +1 -1
- package/views/2d/engine/FeatureContainer.js +1 -1
- package/views/2d/engine/Stage.js +1 -1
- package/views/2d/engine/flow/FlowContainer.js +1 -1
- package/views/2d/engine/imagery/RasterVFContainer.js +1 -1
- package/views/2d/engine/vectorTiles/RenderBucket.js +1 -1
- package/views/2d/engine/webgl/OverlayContainer.js +1 -1
- package/views/2d/engine/webgl/Painter.js +1 -1
- package/views/2d/engine/webgl/TileContainer.js +1 -1
- package/views/2d/engine/webgl/WGLContainer.js +1 -1
- package/views/2d/input/handlers/KeyPan.js +1 -1
- package/views/2d/layers/GroupLayerView2D.js +1 -1
- package/views/2d/layers/ImageryLayerView2D.js +1 -1
- package/views/2d/layers/ImageryTileLayerView2D.js +1 -1
- package/views/2d/layers/MapNotesLayerView2D.js +1 -1
- package/views/2d/layers/features/controllers/FeatureController2D.js +1 -1
- package/views/2d/layers/features/support/FeatureFilter.js +1 -1
- package/views/2d/viewpointUtils.js +1 -1
- package/views/3d/analysis/AreaMeasurement/support/AreaMeasurementVisualization.js +1 -1
- package/views/3d/analysis/DirectLineMeasurement/DirectLineMeasurementVisualization.js +1 -1
- package/views/3d/glTF/internal/Resource.js +1 -1
- package/views/3d/interactive/editingTools/transformGraphic/GraphicScaleRotateTransform.js +1 -1
- package/views/3d/layers/I3SMeshView3D.js +1 -1
- package/views/3d/layers/graphics/Graphics3DCore.js +1 -1
- package/views/3d/layers/graphics/Graphics3DFeatureProcessor.js +1 -1
- package/views/3d/layers/i3s/I3SOverrides.js +1 -1
- package/views/3d/layers/i3s/I3SQueryEngine.js +1 -1
- package/views/3d/layers/i3s/I3SViewportQueries.js +1 -1
- package/views/3d/support/buffer/InterleavedLayout.js +1 -1
- package/views/3d/terrain/PlanarPatch.js +1 -1
- package/views/3d/terrain/SphericalPatch.js +1 -1
- package/views/3d/terrain/TerrainSurface.js +1 -1
- package/views/3d/terrain/Tile.js +1 -1
- package/views/3d/terrain/TileRenderer.js +1 -1
- package/views/3d/terrain/TileTexture.js +1 -1
- package/views/3d/webgl-engine/collections/Component/Material/ComponentMaterial.js +1 -1
- package/views/3d/webgl-engine/collections/Component/Material/shader/VertexDiscardByOpacity.glsl.js +1 -1
- package/views/3d/webgl-engine/core/FBOCache.js +1 -1
- package/views/3d/webgl-engine/core/shaderLibrary/hud/HUD.glsl.js +54 -33
- package/views/3d/webgl-engine/core/shaderLibrary/hud/HUDOcclusionPass.glsl.js +1 -2
- package/views/3d/webgl-engine/core/shaderLibrary/shading/ScreenSpaceReflections.glsl.js +1 -1
- package/views/3d/webgl-engine/effects/highlight/Highlight.js +1 -1
- package/views/3d/webgl-engine/effects/highlight/HighlightPassParameters.js +1 -1
- package/views/3d/webgl-engine/lib/Renderer.js +1 -1
- package/views/3d/webgl-engine/lib/TextRenderer.js +1 -1
- package/views/3d/webgl-engine/lib/edgeRendering/EdgeRenderer.js +1 -1
- package/views/3d/webgl-engine/lib/edgeRendering/EdgeView.js +1 -1
- package/views/3d/webgl-engine/materials/HUDMaterial.js +1 -1
- package/views/3d/webgl-engine/materials/LineCalloutMaterial.js +1 -1
- package/views/3d/webgl-engine/materials/renderers/MergedRenderer.js +1 -1
- package/views/3d/webgl-engine/shaders/HUDMaterialTechniqueConfiguration.js +1 -1
- package/views/3d/webgl-engine/shaders/HighlightApply.glsl.js +1 -1
- package/views/3d/webgl-engine/shaders/HighlightBlur.glsl.js +1 -1
- package/views/3d/webgl-engine/shaders/HighlightDownsample.glsl.js +1 -1
- package/views/3d/webgl-engine/shaders/LineCalloutTechniqueConfiguration.js +1 -1
- package/views/DOMContainer.js +1 -1
- package/views/interactive/SegmentLabels.js +1 -1
- package/views/interactive/snapping/featureSources/featureServiceSource/FeatureServiceTiledFetcher.js +1 -1
- package/views/overlay/TextOverlayItem.js +1 -1
- package/views/webgl/VertexArrayObject.js +1 -1
- package/webdoc/webdocLoadUtils.js +1 -1
- package/widgets/AreaMeasurement2D/AreaMeasurement2DTool.js +1 -1
- package/widgets/DistanceMeasurement2D/DistanceMeasurement2DTool.js +1 -1
- package/widgets/Editor/CreateFeaturesWorkflow.js +1 -1
- package/widgets/Editor/CreateFeaturesWorkflowData.js +1 -1
- package/widgets/Editor/EditorViewModel.js +1 -1
- package/widgets/Editor/UpdateFeatureWorkflow.js +1 -1
- package/widgets/Editor/UpdateRecordWorkflow.js +1 -1
- package/widgets/Editor/UpdateWorkflow.js +1 -1
- package/widgets/Editor/workflowUtils.js +1 -1
- package/widgets/Editor.js +1 -1
- package/widgets/Feature/FeatureRelationship/FeatureRelationshipViewModel.js +1 -1
- package/widgets/Feature/FeatureViewModel.js +1 -1
- package/widgets/Feature/support/featureUtils.js +1 -1
- package/widgets/FeatureForm/FeatureFormViewModel.js +1 -1
- package/widgets/FeatureForm/FieldInput.js +1 -1
- package/widgets/FeatureForm/InputBase.js +1 -1
- package/widgets/FeatureForm/RelationshipInput.js +1 -1
- package/widgets/FeatureForm/css.js +1 -1
- package/widgets/FeatureForm/featureFormUtils.js +1 -1
- package/widgets/FeatureForm.js +1 -1
- package/widgets/FeatureTable/FeatureTableViewModel.js +1 -1
- package/widgets/FeatureTable/FieldColumn.js +1 -1
- package/widgets/Features/FeaturesViewModel.js +1 -1
- package/widgets/Features/css.js +1 -1
- package/widgets/Features.js +1 -1
- package/widgets/Legend/LegendViewModel.js +1 -1
- package/widgets/Legend/support/ActiveLayerInfo.js +1 -1
- package/widgets/Legend/support/utils.js +1 -1
- package/widgets/LineOfSight.js +1 -1
- package/widgets/OrientedImageryViewer.d.ts +4 -0
- package/widgets/Popup/actionUtils.js +1 -1
- package/widgets/ScaleRangeSlider.js +1 -1
- package/widgets/TimeZoneLabel/TimeZoneLabelViewModel.js +5 -0
- package/widgets/TimeZoneLabel/css.js +5 -0
- package/widgets/TimeZoneLabel.d.ts +4 -0
- package/widgets/TimeZoneLabel.js +5 -0
- package/widgets/UtilityNetworkAssociations/UtilityNetworkAssociationsViewModel.js +1 -1
- package/widgets/UtilityNetworkTrace/UtilityNetworkTraceViewModel.js +1 -1
- package/widgets/UtilityNetworkTrace/support/GeometryHandler.js +1 -1
- package/widgets/UtilityNetworkTrace/support/ResultAreaHandler.js +1 -1
- package/widgets/UtilityNetworkTrace.js +1 -1
- package/widgets/UtilityNetworkValidateTopology/UtilityNetworkValidateTopologyViewModel.js +1 -1
- package/widgets/support/SnappingControls/SnappingControlsViewModel.js +1 -1
- package/assets/esri/core/workers/chunks/02120d192eafd7612475.js +0 -1
- package/assets/esri/core/workers/chunks/089e59445bd0b1131ffb.js +0 -1
- package/assets/esri/core/workers/chunks/0b539dacc5c72399ab32.js +0 -1
- package/assets/esri/core/workers/chunks/0bb57b54897fb4381b46.js +0 -1
- package/assets/esri/core/workers/chunks/0beebbb0c6dad0e742d7.js +0 -1
- package/assets/esri/core/workers/chunks/0d77c9c97301a4ee4167.js +0 -1
- package/assets/esri/core/workers/chunks/0d8ca51043c7784aed96.js +0 -1
- package/assets/esri/core/workers/chunks/112e89da628bdea5355c.js +0 -1
- package/assets/esri/core/workers/chunks/121a9e148509f2fe2210.js +0 -1
- package/assets/esri/core/workers/chunks/1586929658af88f6f961.js +0 -1
- package/assets/esri/core/workers/chunks/1856d16d738f44f58084.js +0 -1
- package/assets/esri/core/workers/chunks/1a36703ebe934749646e.js +0 -1
- package/assets/esri/core/workers/chunks/24a0cf405195421c0d06.js +0 -1
- package/assets/esri/core/workers/chunks/24c504585da8e44f956f.js +0 -1
- package/assets/esri/core/workers/chunks/24ff267cf253feac22de.js +0 -1
- package/assets/esri/core/workers/chunks/2561c2bd5a0826dedcb1.js +0 -1
- package/assets/esri/core/workers/chunks/2832161454babb40614b.js +0 -1
- package/assets/esri/core/workers/chunks/29cab345819ec02ed60a.js +0 -1
- package/assets/esri/core/workers/chunks/2f8e71dac98135bbc3e6.js +0 -1
- package/assets/esri/core/workers/chunks/36ab90fb34b9716a9983.js +0 -1
- package/assets/esri/core/workers/chunks/3e40c8402ff7a8fe48b9.js +0 -1
- package/assets/esri/core/workers/chunks/3ea0b872436fce84b927.js +0 -1
- package/assets/esri/core/workers/chunks/40633064c290dc2af9ea.js +0 -1
- package/assets/esri/core/workers/chunks/4108445c4a653772c5ee.js +0 -1
- package/assets/esri/core/workers/chunks/42ec4c80b0c2944cd65c.js +0 -1
- package/assets/esri/core/workers/chunks/432a009e756643f59cb4.js +0 -1
- package/assets/esri/core/workers/chunks/44a3d01b7daa46584ed9.js +0 -1
- package/assets/esri/core/workers/chunks/44b870cb53ba68b17c32.js +0 -1
- package/assets/esri/core/workers/chunks/4736188659a62488c777.js +0 -1
- package/assets/esri/core/workers/chunks/4763831c8815fed636f7.js +0 -1
- package/assets/esri/core/workers/chunks/4d81aa50d90f5701a343.js +0 -1
- package/assets/esri/core/workers/chunks/4e6bf1efe3b0b474cbb4.js +0 -1
- package/assets/esri/core/workers/chunks/526ae87737777154c3f3.js +0 -1
- package/assets/esri/core/workers/chunks/52cef7cd3aaaa4f45c94.js +0 -1
- package/assets/esri/core/workers/chunks/53859d0bd8bb14af2d4d.js +0 -1
- package/assets/esri/core/workers/chunks/593d7f17090b74945345.js +0 -1
- package/assets/esri/core/workers/chunks/5a3ccc0a19ac8fa9e524.js +0 -1
- package/assets/esri/core/workers/chunks/5baae5acd184e87d5dc4.js +0 -1
- package/assets/esri/core/workers/chunks/5bdd2a3422fe52aa2c65.js +0 -1
- package/assets/esri/core/workers/chunks/66ba749ab0a631bbfdec.js +0 -1
- package/assets/esri/core/workers/chunks/69da907a92901f0fb391.js +0 -1
- package/assets/esri/core/workers/chunks/6b14d89d689a21014aec.js +0 -1
- package/assets/esri/core/workers/chunks/6b1856303d1562f05100.js +0 -1
- package/assets/esri/core/workers/chunks/6b7b5544ed1f9a84623f.js +0 -1
- package/assets/esri/core/workers/chunks/6ce986f4213df8a2d934.js +0 -1
- package/assets/esri/core/workers/chunks/784ffd52315a4d55d683.js +0 -1
- package/assets/esri/core/workers/chunks/785d9a9a933314551b10.js +0 -1
- package/assets/esri/core/workers/chunks/84870178173951ad6c2b.js +0 -1
- package/assets/esri/core/workers/chunks/88d43db03cc11cbffa68.js +0 -1
- package/assets/esri/core/workers/chunks/8e4c4ba900a90373217f.js +0 -1
- package/assets/esri/core/workers/chunks/8f3680fee85a05839489.js +0 -1
- package/assets/esri/core/workers/chunks/902b672a3475ec83b58b.js +0 -1
- package/assets/esri/core/workers/chunks/943ea851c1b07af91172.js +0 -1
- package/assets/esri/core/workers/chunks/97aecf210938015cc7a3.js +0 -1
- package/assets/esri/core/workers/chunks/9a5e3b0cc8536f79c377.js +0 -1
- package/assets/esri/core/workers/chunks/9f8207c82a17508a87a8.js +0 -1
- package/assets/esri/core/workers/chunks/a01ffe03b1465c21b9e6.js +0 -1
- package/assets/esri/core/workers/chunks/a298c9031962951e55a9.js +0 -1
- package/assets/esri/core/workers/chunks/a5a7bbdd8298016535bc.js +0 -1
- package/assets/esri/core/workers/chunks/aa453ae526a233cedf0c.js +0 -1
- package/assets/esri/core/workers/chunks/ab5ffcf0db724d40f714.js +0 -1
- package/assets/esri/core/workers/chunks/ad38e456a7cee940a165.js +0 -1
- package/assets/esri/core/workers/chunks/adfbc168be8c49b51e1b.js +0 -1
- package/assets/esri/core/workers/chunks/ae3ea5fa813aec0db5e1.js +0 -1
- package/assets/esri/core/workers/chunks/ae59e10b225f08f38487.js +0 -1
- package/assets/esri/core/workers/chunks/b030cf4b00e42337dc89.js +0 -1
- package/assets/esri/core/workers/chunks/b0526633a93ef69ec47b.js +0 -1
- package/assets/esri/core/workers/chunks/b0d6e6e489aaa331861c.js +0 -1
- package/assets/esri/core/workers/chunks/b0ddb503463328531d8f.js +0 -1
- package/assets/esri/core/workers/chunks/b1a8024bf8cdd0cd3884.js +0 -1
- package/assets/esri/core/workers/chunks/b4f31d291c05b5f8ddac.js +0 -1
- package/assets/esri/core/workers/chunks/b99bc08a01e9250b0a31.js +0 -1
- package/assets/esri/core/workers/chunks/be57692d4b9ff6cd4c02.js +0 -1
- package/assets/esri/core/workers/chunks/c260ad3434bb00ba64a7.js +0 -1
- package/assets/esri/core/workers/chunks/c459c8d8630eb4b955b1.js +0 -1
- package/assets/esri/core/workers/chunks/c5acddea13fd01912e79.js +0 -1
- package/assets/esri/core/workers/chunks/c92e75b79aff7b505b31.js +0 -1
- package/assets/esri/core/workers/chunks/ca85e88dad30b5f2956b.js +0 -1
- package/assets/esri/core/workers/chunks/ce3bb546a729f0ccf696.js +0 -1
- package/assets/esri/core/workers/chunks/cfd63bd57eea2caa4bcb.js +0 -1
- package/assets/esri/core/workers/chunks/d60d5f006375f7fcc88c.js +0 -1
- package/assets/esri/core/workers/chunks/d6ded127949160103f69.js +0 -1
- package/assets/esri/core/workers/chunks/d95eed98316e59f8f35d.js +0 -1
- package/assets/esri/core/workers/chunks/dca925a0d73f967f6897.js +0 -1
- package/assets/esri/core/workers/chunks/e0b49c5eb5427656e835.js +0 -1
- package/assets/esri/core/workers/chunks/e52d5a48e83d8df36f92.js +0 -1
- package/assets/esri/core/workers/chunks/e8688b6cc3b3c1010b43.js +0 -1
- package/assets/esri/core/workers/chunks/eb4bfafe821daeb4bb6e.js +0 -1
- package/assets/esri/core/workers/chunks/eda86faa708cfe4c9f9a.js +0 -1
- package/assets/esri/core/workers/chunks/f2718e260f594537f7fd.js +0 -1
- package/assets/esri/core/workers/chunks/f57100e3dfc7f087c3ad.js +0 -1
- package/assets/esri/core/workers/chunks/f5fd2ee5878c63777c51.js +0 -1
- package/assets/esri/core/workers/chunks/f6b7036114b1d754fdd9.js +0 -1
- package/assets/esri/core/workers/chunks/f6c0680c535c5a3c73ee.js +0 -1
- package/layers/graphics/data/utils.js +0 -5
- package/layers/graphics/sources/support/QueryEngineBuildLayer.js +0 -5
- package/views/2d/engine/webgl/GroupContainer.js +0 -5
- package/views/3d/analysis/DimensionAnalysisView3D.d.ts +0 -4
|
@@ -2,4 +2,4 @@
|
|
|
2
2
|
All material copyright ESRI, All Rights Reserved, unless otherwise specified.
|
|
3
3
|
See https://js.arcgis.com/4.28/esri/copyright.txt for details.
|
|
4
4
|
*/
|
|
5
|
-
import{lerp as t}from"../../../core/mathUtils.js";import{n as e,s,g as i,i as o,k as n,b as r,j as l,r as a,u as h}from"../../../chunks/vec3.js";import{c as u}from"../../../chunks/vec3f64.js";import{lonLatToSphericalPCPF as c}from"../../../geometry/projection/lonLatToSphericalPCPF.js";import{newDoubleArray as d}from"../../../geometry/support/DoubleArray.js";import{intersectsSphere as p,NumPlanes as f,PlaneIndex as m}from"../../../geometry/support/frustum.js";import{c as g}from"../../../chunks/sphere.js";import{PatchType as $}from"./interfaces.js";import{TileFrustumVisibility as _}from"./ITile.js";import{createSphericalGlobePatch as v,updateCornerSpherical as x,updateEdgesAndCornersSpherical as M}from"./PatchGeometryFactory.js";import{enableTerrainInternalChecks as j,internalAssert as b,almostEquals as S}from"./terrainUtils.js";import{Tile as T,CenterPosition as E}from"./Tile.js";import{compareTilesByLij as H}from"./tileUtils.js";class D extends T{
|
|
5
|
+
import{lerp as t}from"../../../core/mathUtils.js";import{n as e,s,g as i,i as o,k as n,b as r,j as l,r as a,u as h}from"../../../chunks/vec3.js";import{c as u}from"../../../chunks/vec3f64.js";import{lonLatToSphericalPCPF as c}from"../../../geometry/projection/lonLatToSphericalPCPF.js";import{newDoubleArray as d}from"../../../geometry/support/DoubleArray.js";import{intersectsSphere as p,NumPlanes as f,PlaneIndex as m}from"../../../geometry/support/frustum.js";import{c as g}from"../../../chunks/sphere.js";import{PatchType as $}from"./interfaces.js";import{TileFrustumVisibility as _}from"./ITile.js";import{createSphericalGlobePatch as v,updateCornerSpherical as x,updateEdgesAndCornersSpherical as M}from"./PatchGeometryFactory.js";import{enableTerrainInternalChecks as j,internalAssert as b,almostEquals as S}from"./terrainUtils.js";import{Tile as T,CenterPosition as E}from"./Tile.js";import{compareTilesByLij as H}from"./tileUtils.js";class D extends T{constructor(t,e,s,i,o){super(),this._convexHull=new Array(24),this._boundingSphere=g(),this._baseUsedMemory=1816,this.init(t,e,s,i,o)}init(s,i,o,n,r){super.init(s,i,o,n,r);const l=this.ellipsoid.radius,a=this.extentInRadians[0],h=this.extentInRadians[1],u=this.extentInRadians[2],d=this.extentInRadians[3],p=t(h,d,.5),f=t(a,u,.5),m=0===s?0:Math.min(Math.abs(h),Math.abs(d));this._edgeLen=(u-a)*Math.cos(m)*l,this._edgeLen2=this._edgeLen*this._edgeLen,this._curvatureHeight=l-Math.sqrt(l*l-this._edgeLen2/4),c(this.centerAtSeaLevel,f,p,this.ellipsoid.radius),e(this.up,this.centerAtSeaLevel),this.updateRadiusAndCenter()}updateRadiusAndCenter(){this._updateBoundingVolumes();const t=this._center;if(0===this.lij[0])s(t[E.MIDDLE],0,0,0),s(t[E.TOP],0,0,0),s(t[E.BOTTOM],0,0,0),t[E.MIDDLE][3]=this.ellipsoid.radius+this.elevationBounds[1];else{this._updateCenter();const e=t[E.MIDDLE],s=this.convexHull;let i=0;for(let t=0;t<8;++t)i=Math.max(i,L(e,s,3*t));t[E.MIDDLE][3]=Math.sqrt(i)}}_calculateFrustumVisibilityStatus(t){if(!p(t,this._boundingSphere))return _.OUTSIDE;if(this.lij[0]<10)return _.INTERSECTS;const e=this.convexHull,s=this.surface.view.state.camera.near;let i=!0;for(let o=0;o<f;o++){const n=o===m.NEAR,r=t[o],l=r[0],a=r[1],h=r[2],u=r[3]-(n?s:0);let c=!1;for(let t=0;t<8;++t){const s=3*t;if(l*e[s]+a*e[s+1]+h*e[s+2]+u<0){if(c=!0,!i)break}else i=!1}if(!c)return _.OUTSIDE}return i?_.INSIDE:_.INTERSECTS}computeElevationBounds(){super.computeElevationBounds(),this._updateBoundingVolumes()}createGeometry(){v(this.renderData,this._getPatchType()),this._updateBoundingVolumes(),this.setMemoryDirty()}_updateBoundingVolumes(){this._updateConvexHull(),this._updateBoundingSphere(),j&&this._checkBVs()}_updateBoundingSphere(){const t=this._boundingSphere,e=t,r=this.elevationBounds,l=this.ellipsoid.radius,a=r[1];if(0===this.level)s(e,0,0,0),t[3]=l+a;else{const s=this.extentInRadians,a=.5*(s[0]+s[2]),h=s[1],u=s[3];R(O,a,h,l),R(P,a,u,l),i(e,O,P);const c=.5*(r[0]+r[1]);o(e,e,(l+c)/n(e));const d=this.convexHull;let p=0;const f=(t,e)=>{const s=t[0]-d[3*e],i=t[1]-d[3*e+1],o=t[2]-d[3*e+2];return Math.sqrt(s*s+i*i+o*o)};for(let t=0;t<8;++t){const s=f(e,t);p=Math.max(p,s)}const m=p;t[3]=m+2}}_updateConvexHull(){const t=this.extentInRadians,s=this.ellipsoid.radius;if(0===this.level)return;const a=this.elevationBounds,c=this._getPatchType(),d=this.surface.isWebMercator,p=d&&c===$.HAS_NORTH_POLE,f=d&&c===$.HAS_SOUTH_POLE,m=f||p,g=Math.PI/2,_=t[0],v=t[2],x=f?-g:t[1],M=p?g:t[3],j=.5*(_+v),T=a[0],E=s+(m?Math.min(0,T-1):T),H=(t,e,s)=>R(t,e,s,E),D=u(),I=u(),L=u(),y=u();H(D,_,x),H(I,_,M),H(L,v,M),H(y,v,x);const O=(t,e)=>{for(let s=0;s<3;++s)this._convexHull[3*e+s]=t[s]};O(D,0),O(I,1),O(L,2),O(y,3);const P=a[1],A=s+(m?Math.max(0,P+1):P),C=u(),V=u(),k=u();R(V,j,M,E),R(k,j,x,E),i(C,V,k),e(C,C);const N=u(),U=u(),F=(t,s)=>{h(U,t,s),e(U,U);const n=-l(t,N)/l(U,N);b(n>=0),o(U,U,n),i(t,t,U)};if(2**this.lij[0]>2*this.lij[1]){const t=k,s=u();r(s,B,t),e(s,s),r(N,t,s),e(N,N),b(S(l(N,t)/n(t),0)),F(D,I),F(y,L),O(D,0),O(y,3)}else if(2**this.lij[0]!==2*this.lij[1]){const t=V,s=u();r(s,B,t),e(s,s),r(N,s,t),e(N,N),F(I,D),F(L,y),O(I,1),O(L,2)}const q=(t,e)=>{const s=A/l(e,C);for(let i=0;i<3;++i)this._convexHull[3*t+i]=e[i]*s};q(4,D),q(5,I),q(6,L),q(7,y)}_getPatchType(){const t=this.lij[1],e=0===t,s=t===(1<<this.level)-1;return e?s?$.HAS_BOTH_POLES:$.HAS_NORTH_POLE:s?$.HAS_SOUTH_POLE:$.REGULAR}intersectsRay(t,e,s,i){const o=this._boundingSphere,n=o[3]+s,r=e[0]*e[0]+e[1]*e[1]+e[2]*e[2],l=o[0]-t[0],a=o[1]-t[1],h=o[2]-t[2],u=(l*e[0]+a*e[1]+h*e[2])/r,c=e[0]*u-l,d=e[1]*u-a,p=e[2]*u-h;return c*c+d*d+p*p<n*n}getDefaultVerticesPerSide(){return this.level<I.length?I[this.level]+1:2}updateCornerElevations(){x(this.renderData),this._updateBoundingVolumes()}updateEdgeElevations(){M(this.renderData),this._updateBoundingVolumes()}_checkBVs(){if(!j)return;if(this.level<=2)return;const t=this._boundingSphere,s=t[3],o=t,c=u(),p=this.ellipsoid.radius,f=this.elevationBounds;f[1],f[0];const m=p+f[0],g=1,$=0,_=this._center[E.MIDDLE][3],v=this.convexHull,x=(t,e)=>{for(let s=0;s<3;++s)t[s]=v[3*e+s]};{const t=u(),s=u(),i=u(),o=u(),n=u(),a=(a,u,c,d)=>{x(s,a),x(i,u),x(o,c),h(s,s,i),h(o,o,i),r(t,s,o),e(t,t);const p=l(t,i);x(n,d);const f=l(t,n),m=Math.abs(f-p);b(S(m,0),`Non coplanar ${a},${u},${c},${d} diff = ${m}`)};a(0,1,2,3),a(4,5,6,7),a(0,1,4,5),a(1,2,5,6),a(2,3,6,7),a(3,0,7,4)}const M=d(24),T=(t,e,s)=>{const i=4*t;for(let o=0;o<3;++o)M[i+o]=e[o];M[i+3]=s},D=u(),I=u(),L=u(),B=u(),O=(t,s,i,o)=>{x(D,s),x(I,i),x(L,o),h(D,D,I),e(D,D),h(L,L,I),e(L,L),r(B,D,L),e(B,B);const n=l(B,I);T(t,B,n)};O(0,0,1,2),O(1,1,0,4),O(2,1,5,2),O(3,3,2,6),O(4,4,0,3),O(5,4,6,5);const P=1,A=(t,e,s,i)=>{const o=4*t;return M[o]*e+M[o+1]*s+M[o+2]*i-M[o+3]},C=(t,e,s,i)=>A(t,e,s,i)>=-P,V=(t,e)=>C(t,e[0],e[1],e[2]),k=2**this.lij[0]>2*this.lij[1],N=(t,e,i)=>Math.sqrt(y(t,e,i,o[0],o[1],o[2]))<s,U=t=>N(t[0],t[1],t[2]),F=(t,e)=>N(t[e],t[e+1],t[e+2]),q=this.extentInRadians,w=.5*(q[0]+q[2]),G=q[1],z=q[3],W=u(),J=u();R(W,w,z,m),R(J,w,G,m);const K=k?"Upper":"Lower";let Q=!0;for(let e=0;e<6;++e){for(let t=0;t<8;++t){const s=3*t,i=C(e,v[s],v[s+1],v[s+2]);Q&&=i,b(i,`Tile[${this.lij}] Convex hull point ${t} outside of plane ${e}`)}b(V(e,J),`Tile[${this.lij}] (${K}) bottom mid outside of plane ${e}`),b(V(e,W),`Tile[${this.lij}] (${K}) top mid outside of plane ${e}`)}b(Q,"Not all convex hull points are inside convex hull polyhedron"),b(U(J),`Tile[${this.lij}] (${K}) bottom mid outside of bounding sphere`),b(U(W),`Tile[${this.lij}] (${K}) top mid outside of bounding sphere`);for(let e=0;e<8;++e){const t=F(v,3*e);b(t,`Tile[${this.lij}] Convex hull point ${e} outside of bounding sphere`)}for(let e=0;e<6;++e)for(let t=0;t<8;++t){const s=3*t;C(e,v[s],v[s+1],v[s+2])||console.error(`Tile[${this.lij}] Convex hull point ${t} outside of plane ${e}`)}const X=this.extentInRadians,Y=Math.max(X[2]-X[0],X[3]-X[1]),Z=Math.round(Y*p),tt=this.renderData;if(!tt)return;const{geometry:et,localOrigin:st}=tt,it=et.vertexAttributes?.position;if(!it)return;const ot=it.count,nt=u(),rt=et.numVerticesPerSide-2,lt=rt*rt,at=tt.geometryState.neighborData,ht=at.edgeResolutions.reduce(((t,e)=>t+e+1),0);for(let e=0;e<ot;++e){const t=e<lt,r=!t&&e<lt+ht;let l=!1,h=-1;if(r){let t=lt;for(let s=0;s<4;++s){const i=at.edgeResolutions[s];if(e===t||e===t+i-1){l=!0;break}if(t+=i,e<t){h=s;break}}}const u=r?at.edgePeerNeighbors[h]:null,d=r&&u&&H(this,u)>0;it.getVec(e,c),i(nt,c,st);const m=n(nt)-p;let v=0,x=!1;const M=f[0]-m,j=m-f[1],b=M>g,S=j>g,T=b||S,E=()=>{const s=t?"internal":r&&!l?"edge":l?"corner":"pole";return`Tile[${this.lij}].vertex[${e}]:${s}`+(b?"(below)":S?"(above)":"")+(d?"(Neighbor)":"")},D=a(nt,o);if(D>=s+$){const t=D-s;T||(console.error(`${E()} is out of the bounding sphere by ${t.toFixed(0)} / ${s.toFixed(0)}[tol=${$}] h=${m.toFixed(0)} / [${f[0].toFixed(0)}..${f[1].toFixed(0)}] (${(t/s).toFixed(0)})`),x=!0)}for(let i=0;i<6;++i)if(!C(i,nt[0],nt[1],nt[2])){const t=A(i,nt[0],nt[1],nt[2]),o=e%rt,n=(e-o)/rt;0===i&&M||5===i&&j||(console.error(`${E()} (${o},${n})|${rt}] is out of the bounding trapezoid plane ${i} h=${Math.round(m)} / [${Math.round(f[0])}..${Math.round(f[1])}] dist=${Math.round(t)} radii = ${Math.round(s)}/${Math.round(_)}} : maxL = ${Z}`),++v)}if(x||v>0)break}}get convexHull(){return this._convexHull}}const I=[128,64,64,32,16,8,8,4];function L(t,e,s){return y(t[0],t[1],t[2],e[s],e[s+1],e[s+2])}function y(t,e,s,i,o,n){const r=i-t,l=o-e,a=n-s;return r*r+l*l+a*a}const R=(t,e,s,i)=>{const o=Math.cos(e),n=Math.sin(e),r=Math.cos(s),l=Math.sin(s);t[0]=i*r*o,t[1]=i*r*n,t[2]=i*l},B=[0,0,1],O=u(),P=u();export{D as SphericalPatch};
|
|
@@ -2,4 +2,4 @@
|
|
|
2
2
|
All material copyright ESRI, All Rights Reserved, unless otherwise specified.
|
|
3
3
|
See https://js.arcgis.com/4.28/esri/copyright.txt for details.
|
|
4
4
|
*/
|
|
5
|
-
import{_ as e}from"../../../chunks/tslib.es6.js";import t from"../../../Color.js";import i from"../../../core/Accessor.js";import{difference as r}from"../../../core/arrayUtils.js";import s from"../../../core/CollectionFlattener.js";import a from"../../../core/Evented.js";import n from"../../../core/Logger.js";import{clamp as l}from"../../../core/mathUtils.js";import{releaseMaybe as o,destroyMaybe as h}from"../../../core/maybe.js";import{MemCachePool as d}from"../../../core/MemCachePool.js";import p from"../../../core/ObjectPool.js";import u from"../../../core/PooledArray.js";import{throwIfAborted as c,isAbortError as _,isAborted as g,createAbortError as m}from"../../../core/promiseUtils.js";import{watch as T,syncAndInitial as y,sync as f,initial as v}from"../../../core/reactiveUtils.js";import{property as E}from"../../../core/accessorSupport/decorators/property.js";import"../../../core/accessorSupport/ensureType.js";import"../../../core/has.js";import{subclass as S}from"../../../core/accessorSupport/decorators/subclass.js";import{m as w}from"../../../chunks/mat4.js";import{a as L}from"../../../chunks/mat4f64.js";import{c as D}from"../../../chunks/vec3.js";import{c as P}from"../../../chunks/vec3f64.js";import{c as b}from"../../../chunks/vec4f64.js";import{UpdatingHandles as x}from"../../../core/support/UpdatingHandles.js";import{getReferenceEllipsoid as U}from"../../../geometry/ellipsoidUtils.js";import R from"../../../geometry/SpatialReference.js";import{projectPointToVector as C}from"../../../geometry/projection/projectPointToVector.js";import{projectVectorToVector as M}from"../../../geometry/projection/projectVectorToVector.js";import{create as j,equals as A,intersection as I,empty as O,expand as V,intersectsSphere as B}from"../../../geometry/support/aaBoundingRect.js";import{create as k,copy as N}from"../../../geometry/support/frustum.js";import{isPlateCarree as q}from"../../../geometry/support/spatialReferenceUtils.js";import{isRefreshableLayer as F}from"../../../layers/mixins/RefreshableLayer.js";import{ElevationQueryTileCache as G}from"../../../layers/support/ElevationQueryTileCache.js";import{ElevationTileData as W}from"../../../layers/support/ElevationTileData.js";import{isBaseLayer as H}from"../../../layers/support/layerUtils.js";import{acquireDecoder as Q}from"../../../layers/support/LercDecoder.js";import{printAllocations as z}from"../../2d/engine/vectorTiles/VectorTile.js";import{directionToHeadingTilt as X}from"../support/cameraUtils.js";import{debugFlags as Y}from"../support/debugFlags.js";import{toBoundingRect as K}from"../support/extentUtils.js";import{ClientType as $}from"../support/index.js";import{updatingProgress as J}from"../support/updatingProperties.js";import{ElevationBounds as Z}from"./ElevationBounds.js";import{ElevationData as ee,sampleElevation as te}from"./ElevationData.js";import{create as ie}from"./ExtentHelper.js";import{LODSnapping as re,TextureUpdate as se}from"./interfaces.js";import{LayerClass as ae,LayerClasses as ne}from"./LayerClass.js";import{OverlayManager as le}from"./OverlayManager.js";import{PlanarPatch as oe}from"./PlanarPatch.js";import{RenderOrder as he}from"./RenderOrder.js";import{ScaleRangeQueries as de}from"./ScaleRangeQueries.js";import{SphericalPatch as pe}from"./SphericalPatch.js";import{SplitLimits as ue}from"./SplitLimits.js";import{maxRootTiles as ce,tooManyRootTilesAfterChangeError as _e,tooManyRootTilesForLayerError as ge,maxMemoryLodBias as me,elevationNodataValue as Te}from"./TerrainConst.js";import{TerrainRenderer as ye,TransparencyMode as fe}from"./TerrainRenderer.js";import ve from"./TerrainSurfacePerformanceInfo.js";import{weakAssert as Ee,internalAssert as Se,oppositeEdge as we,isSurfaceLayerView as Le,isGroupLayerView as De,isMapTileLayerView as Pe,isBlendableLayerView as be,isElevationLayerView as xe,isVectorTileLayerView as Ue,useFetchTileForLayer as Re,isImageryTileLayerView as Ce,isTileLayerView as Me,releaseTileData as je,neighborCornerIndices as Ae,oppositeCorner as Ie,neighborEdgeIndices as Oe,enableTerrainInternalChecks as Ve,enableWaterproofnessTests as Be,enableInternalTerrainChecks as ke,enableTerrainWaterproofnessChecks as Ne}from"./terrainUtils.js";import{Tile as qe}from"./Tile.js";import{printAllocations as Fe}from"./TilePerLayerInfo.js";import{TileUpdate as Ge}from"./TileUpdate.js";import{IteratorPreorder as We,IteratorPostorder as He,compareTilesByLij as Qe,hasLoadableSiblings as ze,sortTilesByPOI as Xe,sortTiles as Ye}from"./tileUtils.js";import{TilingSchemeLogic as Ke}from"./TilingSchemeLogic.js";import{UpsampleInfo as $e}from"./UpsampleInfo.js";import{isCompositeBlendMode as Je,blendModeFromString as Ze}from"../webgl-engine/core/shaderLibrary/output/BlendOptions.js";import{PBRMode as et}from"../webgl-engine/core/shaderLibrary/shading/PhysicallyBasedRenderingParameters.glsl.js";import{RenderRequestType as tt}from"../webgl-engine/lib/basicInterfaces.js";import{RenderState as it}from"../../support/RenderState.js";import{ImmediateTask as rt,TaskPriority as st,noBudget as at}from"../../support/Scheduler.js";var nt;let lt=nt=class extends(a.EventedMixin(i)){constructor(e){super(e),this._scaleRangeQueries=new de,this._iteratorPool=new p(We,(e=>e.remove=()=>this._iteratorPool.release(e))),this._postorderIterator=new He,this._hasPendingUpdates=!1,this._pendingUpdates=0,this._asyncWorkItems=0,this._allTilesDirty=!0,this._allTilesSorted=!0,this._usedMemory=null,this._performanceInfo=new ve,this._viewChanged=!1,this._inFrameTask=!1,this._viewChangeUpdateDirty=!1,this._eyePosRenderSR=P(),this._eyePosSurfaceSR=P(),this._splitLimits=new ue,this._frustum=k(),this._viewProjectionMatrix=L(),this._layerViews=[new Array,new Array],this._layerIndexByUid=[new Map,new Map],this._basemapLayerViewHandles=new Map,this._watchUpdatingTracking=new x,this._frameTask=rt,this._allTiles=new u,this._upsampleInfoPool=new p($e),this._shouldEmitChangeEvent=!1,this._rootTilesExtent=j(),this.updatingProgress=.5,this._maxNumUpdating=1,this.maxTextureScale=1.2,this._spatialReference=R.WebMercator,this.visibleElevationBounds=new Z(1/0,-1/0),this.rootTileElevationBounds=new Z(1/0,-1/0),this._updatingRootTiles=!1,this._pendingTilesForElevationUpdateEvent=new Set,this._pendingTilesToUpdate=new Set,this.totalGeometryUpdates=0,this.totalTileUpdates=0,this.oneBatchPerFrameTask=!0,this._layerViewsDirty=!1,this.unloadedMemory=0,this.ignoresMemoryFactor=!1,this._isWebMercator=!1,this._isWebMercatorOnPlateeCarree=!1,this.overlayManager=new le({...e,surface:this}),this._isGlobal=!e.view?.state?.isLocal,this._tileConstructor=this._isGlobal?pe:oe}initialize(){const e=this.view,t=e.resourceController;this._lercDecoder=Q(t);const i=t.memoryController;this._tilePool=new d(((e,t)=>i.newCache(e,t)),yt),this._upsampleMapCache=i.newCache("terrain-upsample",(e=>e.unloadMapData())),this._elevationQueryCache=new G(i.newCache("elevation-query"));const r=this.overlayManager;this._renderer=new ye(r.renderer,e._stage,this._allTiles,U(e.spatialReference).radius,i),this.addHandles([T((()=>r.rendersOccluded),(e=>this._renderer.setRenderOccludedOverlay(e))),T((()=>r.renderer.isEmpty),(()=>this._evaluateTransparency())),T((()=>this.renderer.visible),(e=>this.suspended=!e))],"overlayManager"),this.addHandles([T((()=>this.baseOpacity),(()=>{this._handleLayerViewChanges(),this._updateTileTextures(this._evaluateTransparency()?se.UNFADED:se.IMMEDIATE)}),y),T((()=>this.hasCompositeBlendMode),(()=>this._updateTileTextures(this._evaluateTransparency()?se.UNFADED:se.IMMEDIATE)),y),T((()=>this.backgroundColor),(e=>{this._handleLayerViewChanges(),this._renderer.updateTileBackground(e)}),y),T((()=>this.snapLevel),(()=>this._viewChanged=!0),f),T((()=>this.view.pointsOfInterest),(e=>{this._renderer.pointsOfInterest=e,this._watchUpdatingTracking.removeAll(),e&&this._watchUpdatingTracking.add((()=>e.focus.renderLocation),(()=>this._allTilesSorted=!1))})),T((()=>Y.TERRAIN_TILE_TREE_SHOW_TILES),(t=>{t&&!this._treeDebugger?import("../layers/support/TerrainTileTree3DDebugger.js").then((({TerrainTileTree3DDebugger:t})=>{!this._treeDebugger&&Y.TERRAIN_TILE_TREE_SHOW_TILES&&(this._treeDebugger=new t({view:e}))})):t||(this._treeDebugger=h(this._treeDebugger))}),v)]);const{spatialReference:a}=e;this._extentHelper=ie(this.viewingMode,{layers:e.map.allLayers,layerViews:e.allLayerViews,viewSpatialReference:a});const n=new s({getCollections:()=>e.defaultsFromMap?.mapCollections?.map((({layers:e})=>e)),getChildrenFunction:e=>e&&"layers"in e?e.layers:null}),l=new Ke({layers:n,extentHelper:this._extentHelper,viewingMode:this.viewingMode,viewSpatialReference:a});this._set("tilingSchemeLogic",l),this._updateTilingScheme(),this._elevationDataRequester=t.createStreamDataRequester($.ELEVATION),this._mapDataRequester=t.createStreamDataRequester($.BASEMAP);const o=t.scheduler;this._frameTask=o.registerTask(st.TERRAIN_SURFACE,this),this.addHandles([T((()=>this._extentHelper.stencilEnabledExtents),(e=>this._renderer.setStencilEnabledLayerExtents(e)),v),T((()=>this.tilingSchemeLogic.tilingScheme),(()=>this._updateTilingScheme()),f),T((()=>this.extent),(()=>this._updateRootTiles()),v),e.on("resize",(()=>this._viewChangeUpdate())),T((()=>{const t=e.state;return[this._lodBias,this.lodSnapping,e.quality,t.camera,t.contentCamera,t.fixedContentCamera]}),(()=>this._viewChangeUpdate()),y),T((()=>e.qualitySettings?.tiledSurface?.textureFadeDuration),(e=>this._renderer.textureFadingEnabled=e>0),v),T((()=>e.qualitySettings?.physicallyBasedRenderingEnabled),(e=>this._renderer.pbrMode=e?et.Terrain:et.Disabled),v),T((()=>this._userClippingExtent),(()=>this._updateClippingExtent()),f)]),this.addHandles(e.allLayerViews.on("after-changes",(()=>this._layerViewsDirty=!0))),this._layerViewsDirty=!0,this._handleLayerViewChanges()}destroy(){this._frameTask.remove(),this._watchUpdatingTracking.destroy(),this._lercDecoder=o(this._lercDecoder),this._removeAllTiles(),this._set("tilingSchemeLogic",h(this.tilingSchemeLogic)),this._basemapLayerViewHandles.forEach(((e,t)=>this._unregisterTiledLayerView(t))),this._elevationDataRequester=null,this._mapDataRequester=null,this._set("overlayManager",h(this.overlayManager)),this._tilePool=h(this._tilePool),qe.prune(),this._treeDebugger=h(this._treeDebugger),this._renderer=h(this._renderer),this._iteratorPool=h(this._iteratorPool),this._upsampleMapCache=h(this._upsampleMapCache),this._elevationQueryCache=h(this._elevationQueryCache),this._set("view",null),this._extentHelper=h(this._extentHelper),this._upsampleInfoPool=h(this._upsampleInfoPool),z(),Fe()}get renderer(){return this._renderer}get frustum(){return this._frustum}get snapLevel(){if(this.lodSnapping===re.ON){const e=this.view,t=this.tilingScheme,i=e.pointsOfInterest?.cameraOnSurface?.scale;if(t&&i){const r=e.state.contentCamera;let s=X(e,r.eye,r.viewForward,r.up).tilt;s>90&&(s=180-s);const a=2*(s/90)**2,n=t.levelAtScale(i)-a,l=Math.min(n+e.qualitySettings.tiledSurface.lodBias,this._splitLimits.maxLod||1/0);return l<=0?null:l}}return null}get lodSnapping(){return this.view.qualitySettings.tiledSurface.reduceTileLevelDifferences?re.ON:re.OFF}get upsampleInfoPool(){return this._upsampleInfoPool}get upsampleMapCache(){return this._upsampleMapCache}get elevationQueryCache(){return this._elevationQueryCache}get mapTileRequester(){return this._mapDataRequester}get _userClippingExtent(){const{spatialReference:e}=this,{clippingArea:t}=this.view;if(null==t||null==e)return null;const i=j(),r=K(t,i,e)?i:null,s=this._get("extent");return A(r,s)?s:r}get rootTilesExtent(){return this._rootTilesExtent}get extent(){const e=I(this.groundExtent,this._userClippingExtent,j()),t=this._get("extent");return A(e,t)?t:e}get groundExtent(){return null!=this._tilingSchemeExtent?this._tilingSchemeExtent:this._rootTilesExtent}get _tilingSchemeExtent(){return this.tilingSchemeLogic?.extent}get updating(){return this._hasPendingUpdates||(this._maxNumUpdating=1),!!((this.running||this._watchUpdatingTracking?.updating||this._asyncWorkItems>0)&&this.ready&&!this.suspended||this.overlayManager?.updating)}get running(){return(this._hasPendingUpdates||this._viewChanged||this._allTilesDirty||!this._allTilesSorted||this._layerViewsDirty||this._scaleRangeQueries.updating||this._frameTask.updating)&&this.ready&&!this.suspended}get updatingProgressValue(){return this._maxNumUpdating=Math.max(this._pendingUpdates,this._maxNumUpdating),1-this._pendingUpdates/this._maxNumUpdating}get baseOpacity(){return this.view?.map?.ground?.opacity??1}set baseOpacity(e){this.view.map.ground.opacity=e}get viewingMode(){return this.view.state.viewingMode}get ready(){return null!=this._rootTiles}set renderOrder(e){this._renderer.renderOrder=e,this._set("renderOrder",e)}get rootTiles(){return this._rootTiles}get spatialReference(){return this.tilingScheme?.spatialReference??null}get backgroundColor(){return this.view?.map?.ground?.surfaceColor}set backgroundColor(e){this.view.map.ground.surfaceColor=e}set slicePlaneEnabled(e){this._renderer.slicePlaneEnabled=e,this._set("slicePlaneEnabled",e),this._evaluateTransparency()}get tilingSchemeLocked(){return this.tilingSchemeLogic?.tilingSchemeLocked??!1}get wireframe(){return this._renderer?.wireframe}set wireframe(e){e!==this._renderer.wireframe&&(this._renderer.wireframe=e,this._updateAllTileGeometries())}get opaque(){return this._renderer.transparency===fe.Opaque}set suspended(e){this._set("suspended",e),this._viewChangeUpdate()}get textureFadeDuration(){return this.view.qualitySettings.tiledSurface.textureFadeDuration??0}intersect(e,t,i,r){this._renderer.intersect(e,t,i,r)}getElevation(e,t,i,r){const s=this._rootTiles;if(!s?.length)return null;if(0===s[0].layerInfo[ae.ELEVATION].length)return null;const a=ut;if(a[0]=e,a[1]=t,a[2]=i,!M(a,r,a,this._spatialReference))return n.getLogger(this).error("TerrainSurface.getElevation(): could not project given point to tiling scheme coordinate system"),null;return Tt(s,a[0],a[1])}getElevations(e,t,i){const r=this._rootTiles,s=r?r[0].layerInfo[ae.ELEVATION].length:0;if(r?.length&&0!==s)for(let a=0;a<t;++a){const t=3*a;i(a,Tt(r,e[t],e[t+1]))}else for(let a=0;a<t;++a)i(a,null)}getScale(e){if(!this.tilingScheme)return null;if(!C(e,ut,this.spatialReference))return n.getLogger(this).error("TerrainSurface.getScale(): could not project given point to tiling scheme coordinate system"),null;const t=this._rootTiles;if(null!=t)for(const i of t)if(i?.containsPoint(ut)){let e=i;for(;e.children[0]&&!e.rendered;){const t=e.children[0].extent;let i=0;ut[0]>t[2]&&(i+=1),ut[1]<t[1]&&(i+=2),e=e.children[i]}return this._getLodBiasCorrectedScale(e.level)}return 1/0}getSphereElevationBounds(e,t){if(ut[0]=e[0],ut[1]=e[1],ut[2]=e[2],ut[3]=e[3],!M(ut,t,ut,this.tilingScheme?.spatialReference))return n.getLogger(this).error("TerrainSurface.getSphereElevationBounds(): could not project given point to tiling scheme coordinate system"),null;let i=1/0,r=-1/0;const s=e=>{if(e&&B(e.extent,ut))if(e.isLeaf||e.rendered)i=Math.min(i,e.elevationBounds[0]),r=Math.max(r,e.elevationBounds[1]);else for(const t of e.children)s(t)},a=this._rootTiles;if(null!=a)for(const n of a)s(n);return{min:i,max:r}}getRootElevationBounds(){return{min:this.rootTileElevationBounds.min,max:this.rootTileElevationBounds.max}}getSphereScale(e,t){if(!this.tilingScheme)return null;if(!C(e,ut,this.spatialReference))return n.getLogger(this).error("TerrainSurface.getSphereScale(): could not project given point to tiling scheme coordinate system"),null;ut[3]=t;let i=null;const r=e=>{if(e&&B(e.extent,ut)){const t=e.children;if(t[0]&&!e.rendered)for(const e of t)r(e);else{const t=this._getLodBiasCorrectedScale(e.level);i=null==i?t:Math.min(i,t)}}},s=this._rootTiles;if(null!=s)for(const a of s)r(a);return i}queryVisibleScaleRange(e,t,i,r){const s=t?this.tilingScheme.levelAtScale(t):0,a=i?this.tilingScheme.levelAtScale(i):1/0,n=this._lodBias;this._scaleRangeQueries.queryVisibleLevelRange(e,s+n,a+n,r)}_evaluateTransparency(){const e=this.baseOpacity,t=this.overlayManager.renderer.isEmpty,i=this._renderer.transparency,r=this._allSurfaceLayersTransparent()?t?fe.Empty:fe.TransparentWithDraped:e>=1&&!this.hasCompositeBlendMode&&!this._renderer.slicePlaneEnabled?fe.Opaque:fe.Semitransparent,s=i!==r;return s&&(this._renderer.transparency=r,this.view?._stage?.renderer.setParameters({terrainTransparency:this._renderer.transparency})),s}_updateTilingScheme(){const e=this.tilingSchemeLogic.tilingScheme;if(!(e!==this.tilingScheme))return;Ee(!!e,"tiling scheme cannot be reset to undefined"),this._isGlobal=!this.view?.state?.isLocal,this.tilingScheme&&this._removeAllTiles();const t=e?.spatialReference??R.WebMercator;this._spatialReference=t,this._isWebMercator=!!t?.isWebMercator,this._isWebMercatorOnPlateeCarree=this._isWebMercator&&q(this.view?.renderSpatialReference),this._set("tilingScheme",e),this._updateClippingExtent(),e&&(this._updateTiledLayers(),this._renderer.setTileSize(e.pixelSize),this.overlayManager.setSpatialReference(e.spatialReference),this._updateRootTiles())}_acquireTile(e,t,i,r){const s=this._tilePool.pop(nt._tileMemcacheKey);return s?(s.init(e,t,i,r,this),s):new this._tileConstructor(e,t,i,r,this)}get updatingRootTiles(){return this._updatingRootTiles}_updateRootTiles(){const{extent:e,tilingScheme:t}=this;if(!t)return;const i=ct;let s=t.rootTilesInExtent(e,i,5*ce);if(null!=this._rootTiles){if(s.length>ce)return void n.getLogger(this).warn(_e);const e=this._rootTiles.map((e=>e.lij)),t=r(e,s,ht);if(this._updatingRootTiles=!0,t.removed.length>0||t.added.length>0){const e=this._rootTiles.filter((e=>!(t.removed.findIndex((t=>ht(t,e.lij)))>-1)||(this._purgeTile(e),!1)));t.added.forEach((t=>e.push(this._newRootTile(t)))),this._setRootTiles(e)}}else this._updatingRootTiles=!0,s.length>ce&&(n.getLogger(this).warn(ge),s=t.rootTilesInExtent(e,i,ce)),this._setRootTiles(s.map((e=>this._newRootTile(e))));A(i,this._rootTilesExtent)||(this._rootTilesExtent=j(i)),this.renderer.visible=!0,this._viewChangeUpdate(),this.overlayManager.setPlacementDirty(),this.notifyChange("ready"),this._updateAllTileGeometries(),this._updatingRootTiles=!1,this.checkAllTilesWaterproofness()}_updateAllTileGeometries(){const e=this._allTiles.filter((e=>e.isLoaded&&e.intersectsClippingArea));e.forEach((e=>this._renderer.updateTileGeometryState(e))),e.forEach((e=>e.renderData.updateNeighborData())),this._updateTilesGeometries(e),this._pendingTilesToUpdate.clear()}_updateTilesGeometries(e){if(0===e.length)return;e.sort(Qe);const t=this.renderer;e.forEach((e=>t.updateGeometryIfNeeded(e))),e.forEach((e=>this._pendingTilesForElevationUpdateEvent.add(e)))}_shouldSplit(e){return e.shouldSplit(this._splitLimits,this._eyePosRenderSR,this.snapLevel)===Ge.SPLIT}_newRootTile(e){const t=this._acquireTile(0,e[1],e[2],null);return this._shouldSplit(t)&&t.setPendingUpdate(Ge.SPLIT),this._loadTile(t),this._markTileToUpdate(t),this._updateRootTileElevationBounds(),t}_setRootTiles(e){if(this._rootTiles=e,this._allTiles.clear(),null!=e){const t=this._iteratorPool.acquire();for(t.reset(e);!t.done;)this._allTiles.push(t.next());t.remove()}this._renderer.setRootTiles(this._rootTiles),this._updateTilesVisibility(e)}_runViewChangeUpdateIfDirty(){this._viewChangeUpdateDirty&&(this._viewChangeUpdateDirty=!1,this._viewChangeUpdate())}_viewChangeUpdate(){this.view&&!this.suspended&&this.tilingScheme&&this.renderer.visible&&(this._inFrameTask?this._viewChangeUpdateDirty=!0:(this._viewChangeUpdateDirty=!1,this._updateViewDependentParameters(),this._updateTilesVisibility(this._rootTiles)))}_updateClippingStatus(e){e.updateClippingStatus(this.extent)&&e.resetPendingUpdate(Ge.GEOMETRY)&&this._updateTileGeometryState(e)}_updateTilesVisibility(e){if(null==e)return;const t=ze(e),i=this.visibleElevationBounds;let r=t?i.min:1/0,s=t?i.max:-1/0;const a=this.extent,n=this._viewProjectionMatrix;this.setTileTreeDirty();const l=this._iteratorPool.acquire();for(l.reset(e);!l.done;){const e=l.next();e.updateClippingStatus(a)&&e.resetPendingUpdate(Ge.GEOMETRY)&&this._updateTileGeometryState(e),e.setPendingUpdate(Ge.RENDERDATA),e.computeVisibility(),e.updateScreenDepth(n),e.renderData&&(r=Math.min(e.elevationBounds[0],r),s=Math.max(e.elevationBounds[1],s))}l.remove(),this._viewChanged=!0,this._allTilesDirty=!0,this._batchUpdatePendingTileGeometries(),isFinite(r)&&isFinite(s)&&(i.min!==r||i.max!==s)&&(this.visibleElevationBounds=new Z(r,s))}_updateRootTileElevationBounds(){let e=1/0,t=-1/0;const i=this._rootTiles;null!=i&&i.forEach((({elevationBounds:i})=>{e=Math.min(e,i[0]),t=Math.max(t,i[1])}));const r=this.rootTileElevationBounds;r.min===e&&r.max===t||(this.rootTileElevationBounds=new Z(e,t))}_updateViewDependentParameters(){const{camera:e,contentCamera:t}=this.view.state,i=Math.tan(.5*t.fovX),r=Math.tan(.5*t.fovY),s=this.tilingScheme.pixelSize,a=2**-this._lodBias*e.pixelRatio;this._splitLimits.aboveGround=e.aboveGround,this._splitLimits.fovX=i,this._splitLimits.fovY=r,this._splitLimits.relativeWidthLimit=s/e.width*this.maxTextureScale*a,this._splitLimits.relativeHeightLimit=s/e.height*this.maxTextureScale*a,this._splitLimits.maxLod=this.tilingScheme.getMaxLod(),this._splitLimits.angledSplitBias=this.view.qualitySettings.tiledSurface.angledSplitBias,this.view.state.fixedContentCamera?this._splitLimits.frustum=N(this._splitLimits.frustum??k(),t.frustum):this._splitLimits.frustum=null,N(this._frustum,e.frustum),w(this._viewProjectionMatrix,t.projectionMatrix,t.viewMatrix),D(this._eyePosRenderSR,t.eye),M(e.eye,this.view.renderSpatialReference,this._eyePosSurfaceSR,this.spatialReference)}_updateRenderData(e){e.rendered&&!e.shouldLoad&&(dt(e)?this._loadChildren(e):pt(e)&&this._loadParent(e))}_updateTileGeometryState(e){e.updateVisibility();this._renderer.updateTileGeometryState(e)&&this._markTileToUpdate(e),this._usedMemory=null}_markAllTileNeighborsForGeometryUpdate(e){const t=this._pendingTilesToUpdate;e.forEachLoadedNeighbor((e=>t.add(e)))}_updateTileTexture(e,t){const i=e.resetPendingUpdate(Ge.TEXTURE_FADING)?Ge.TEXTURE_FADING:!!e.resetPendingUpdate(Ge.TEXTURE_NOFADING)&&Ge.TEXTURE_NOFADING;i&&(this._renderer.updateTileTexture(e,i),this._usedMemory=null,t.madeProgress())}_emitElevationUpdateEventForTiles(){if(!this._shouldEmitChangeEvent)return;const e=gt.extent;O(e),this._pendingTilesForElevationUpdateEvent.forEach((t=>V(e,t.extent,e))),this._pendingTilesForElevationUpdateEvent.clear(),gt.spatialReference=this.spatialReference,this.emit("elevation-change",gt),this._shouldEmitChangeEvent=!1}runTask(e){this._handleLayerViewChanges(e),this._frameTask.processQueue(e),this.renderer.processScaleRangeQueries(this._scaleRangeQueries,e),this._inFrameTask=!0,this._pendingUpdates=0,this._hasPendingUpdates=!1,this._updateAllTilesStatus(e),this._sortTiles(e);const t=!this.view.state.fixedContentCamera;this._mergeAndSplit(e,t),this._updateElevation(e),this._updateTextures(e),t||this._mergeAndSplit(e,!0),this._inFrameTask=!1,this._runViewChangeUpdateIfDirty(),this._batchUpdatePendingTileGeometries(),this._emitElevationUpdateEventForTiles(),e.done&&e.hasProgressed&&this.requestUpdate(),this.notifyChange("updatingProgressValue")}_updateAllTilesStatus(e){if(!this._viewChanged||!this._rootTiles||e.done)return;this._viewChanged=!1;const t=this._iteratorPool.acquire();t.reset(this._rootTiles);const i=this.snapLevel,r=this._splitLimits,s=this._eyePosRenderSR;for(;!t.done;){const e=t.next(),a=e.shouldSplit(r,s,i);if(a!==Ge.SPLIT){if(e.resetPendingUpdate(Ge.SPLIT)&&e.updateAgentSuspension(),a===Ge.ELEVATION&&e.updateAgents(ae.ELEVATION),t.skipSubtree(),!e.isLeaf){e.setPendingUpdate(Ge.MERGE),e.resetPendingUpdate(Ge.SPLIT);const t=this._iteratorPool.acquire();t.resetOne(e);const i=this._viewProjectionMatrix;for(let e=t.next();!t.done;e=t.next())this._updateClippingStatus(e),e.updateVisibility(),e.updateScreenDepth(i);t.remove()}}else e.resetPendingUpdate(Ge.MERGE),e.isLeaf&&(e.setPendingUpdate(Ge.SPLIT),t.skipSubtree()),e.rendered&&e.setPendingUpdate(Ge.RENDERDATA)}t.remove(),this.requestUpdate(),(this.shortBatches||!this.oneBatchPerFrameTask)&&this._batchUpdatePendingTileGeometries(),e.madeProgress()}_sortTiles(e){e.done||this._allTilesSorted||(Xe(this._allTiles,this.view.pointsOfInterest.focus.renderLocation),this._allTilesSorted=!0,this._treeDebugger&&this._treeDebugger.update(),e.madeProgress())}_markTileToUpdate(e){Se(e.isLoaded),e.intersectsClippingArea&&(this._pendingTilesToUpdate.add(e),this._markAllTileNeighborsForGeometryUpdate(e))}_batchUpdatePendingTileGeometries(){const e=this._pendingTilesToUpdate;if(0===e.size)return;const t=Array.from(this._pendingTilesToUpdate.keys()).filter((e=>e.isLoaded&&e.intersectsClippingArea)),i=(i,r)=>{!r?.isLoaded||!r.intersectsClippingArea||r.level<i.level||e.has(r)||(e.add(r),t.push(r),r.renderData.updateNeighborData())};t.sort(Qe);const r=t.length;for(let s=0;s<r;++s){const r=t[s];Se(r.isLoaded),Se(r.intersectsClippingArea);const a=r.renderData;a.updateNeighborData();const n=a._dirtyEdgeResolutions,l=a.geometryState.neighborData.cornerPeerNeighbors,o=e=>{const t=Ae[e];i(r,l[e]?.findCorner(Ie(t),(e=>e.isLoaded)))};for(let t=0;t<4;++t)if(n&1<<t){const s=a.geometryState.neighborData.edgePeerNeighbors[t];s&&s?.level>=r.level&&s.forAllSubtreeOnSide(we(Oe[t]),(t=>!(!t.isLoaded||!t.intersectsClippingArea)&&(Se(e.has(t)||Qe(r,t)<0),i(r,t),!0))),o((t+1)%4),o(t)}}e.clear(),this._updateTilesGeometries(t),this._shouldEmitChangeEvent=!0,Ve&&Be&&this.checkAllTilesWaterproofness()}_mergeAndSplit(e,t){if(this.suspended||e.done||!this._allTilesDirty)return;this._allTilesDirty=!1,this.requestUpdate();let i=!1;const r=this.view.state.fixedContentCamera;let s=!1;for(;!e.done;){s=!0;let a=!1;const n=!this._allTiles.some((s=>{if(!i&&!r&&!s.visible)return e.done;let n=s;if(s.resetPendingUpdate(Ge.MERGE)){if(!t)return s.setPendingUpdate(Ge.MERGE),e.done;for(;n.parent?.resetPendingUpdate(Ge.MERGE);)n=n.parent;this._mergeTile(n),a=!0,e.madeProgress()}else s.resetPendingUpdate(Ge.SPLIT)&&(this._splitTile(s),a=!0,e.madeProgress());return!e.done&&n===s&&s.resetPendingUpdate(Ge.RENDERDATA)&&(this._updateRenderData(s),e.madeProgress()),e.done}));if(a&&(this._allTilesSorted=!1,this._allTilesDirty=!0),n){if(!i){i=!0;continue}if(!a)break}else this._allTilesDirty=!0}s?e.madeProgress():this._allTilesDirty=!0,!this.oneBatchPerFrameTask&&this._batchUpdatePendingTileGeometries(),this._sortTiles(e)}_updateElevation(e){e.done||(this._allTiles.some((t=>(t.resetPendingUpdate(Ge.GEOMETRY)&&(this._updateTileGeometryState(t),this._updateTileTexture(t,e),this.shortBatches&&this._batchUpdatePendingTileGeometries(),e.madeProgress()),e.done))),!this.oneBatchPerFrameTask&&this._batchUpdatePendingTileGeometries())}_updateTextures(e){e.done||this._allTiles.some((t=>(this._updateTileTexture(t,e),e.done)))}_updateClippingExtent(){this.spatialReference&&(this.updateTileOverlayParams(tt.UPDATE),this.overlayManager.setPlacementDirty(),this._updateRootTiles())}get _lodBias(){const e=this.view.quality;return this.view.qualitySettings.tiledSurface.lodBias-(1-e)*me}_getLodBiasCorrectedScale(e){const t=this.tilingScheme.levels,i=l(e-this._lodBias,0,t.length-1),r=i-Math.floor(i);return t[Math.floor(i)].scale*(1-r)+t[Math.ceil(i)].scale*r}_removeAllTiles(){null!=this._rootTiles&&(this._rootTiles.forEach((e=>this._purgeTile(e))),this._setRootTiles(null),this.notifyChange("ready")),this._allTiles.clear(),this.renderer.visible=!1}_purgeDescendantTiles(e){if(!e.children[0])return!1;let t=!1;for(let i=0;i<4;++i)t=this._purgeTile(e.children[i])||t;return e.unsetChildren(),t}_purgeTile(e){const t=this._purgeDescendantTiles(e)||e.rendered;return this._allTiles.removeUnordered(e),this._unloadTile(e),this._tilePool.put(nt._tileMemcacheKey,e),t}_unloadTile(e){this._pendingTilesToUpdate.delete(e),this._pendingTilesForElevationUpdateEvent.delete(e),e.unload(this._renderer)}_splitTile(e){Ee(e.isLeaf,"tile that is already split should not be split again!");const t=e.level+1,i=2*e.lij[1],r=2*e.lij[2];e.setChildren(this._createTile(t,i,r,e),this._createTile(t,i,r+1,e),this._createTile(t,i+1,r,e),this._createTile(t,i+1,r+1,e)),e.setPendingUpdate(Ge.RENDERDATA),e.updateAgentSuspension(),this._allTiles.pushArray(e.children),this._allTilesDirty=!0,++this._performanceInfo.numSplit}_emitTileScaleChange(e,t=e.level){mt.spatialReference=this.spatialReference,mt.extent=e.extent,mt.scale=this._getLodBiasCorrectedScale(t),this.emit("scale-change",mt)}_createTile(e,t,i,r){Ee(!!r,"_createTile sanity check");const s=this._acquireTile(e,t,i,r);return s.updateClippingStatus(this.extent),s.updateScreenDepth(this._viewProjectionMatrix),this._shouldSplit(s)&&s.setPendingUpdate(Ge.SPLIT),s}get shortBatches(){return this.view.state.mode!==it.IDLE}_mergeTile(e){Ee(!e.hasPendingUpdate(Ge.SPLIT),"_mergeTile sanity check"),this._purgeDescendantTiles(e)&&(Ee(!e.renderData,"_mergeTile sanity check"),this._loadTile(e),this._markTileToUpdate(e),this._emitTileScaleChange(e),this.shortBatches&&this._batchUpdatePendingTileGeometries()),this._allTilesDirty=!0,++this._performanceInfo.numMerged}_loadChildren(e){Ee(e.rendered,"parent should be rendered"),this._unloadTile(e);const t=e.children;t.forEach((e=>this._loadTile(e))),t.forEach((e=>this._pendingTilesToUpdate.add(e))),this._markAllTileNeighborsForGeometryUpdate(e),this._emitTileScaleChange(e,e.level+1),this.shortBatches&&this._batchUpdatePendingTileGeometries()}_loadParent(e){const t=e.parent;this._unloadChildren(t),this._loadTile(t),this._markTileToUpdate(t),this._emitTileScaleChange(t,t.level),this.shortBatches&&this._batchUpdatePendingTileGeometries()}_unloadChildren(e){const t=e.children;if(t[0])for(let i=0;i<4;++i){const e=t[i];this._unloadChildren(e),this._unloadTile(e)}}_loadTile(e){e.load(),e.setPendingUpdate(Ge.RENDERDATA),this.requestUpdate(),this._allTilesDirty=!0,this.overlayManager&&this.overlayManager.hasOverlays&&this.overlayManager.setTileParameters(e)}_elevationDataArrived(e,t,i){const r=new ee(e.lij,e.extent,i);e.dataArrived(t,ae.ELEVATION,r);const s=[e],a=e.level,n=this._iteratorPool.acquire();for(n.reset(s);!n.done;){const e=n.next();e.findElevationBoundsForLayer(t,a),e.computeElevationBounds()}0===a&&this._updateRootTileElevationBounds(),n.remove(),this._updateTilesVisibility(s)}_handleLayerViewChanges(e=at){if(!this._layerViewsDirty)return;this._layerViewsDirty=!1;let t=!1;const i=new Set;let r=-1;for(const s of this.view.allLayerViews.items)if(i.add(s.uid),Le(s)||De(s))if(this._basemapLayerViewHandles.has(s.uid)&&!De(s)){const e=this._layerClassFromLayerView(s),i=this._getLayerIdxByUID(e,s.uid);null!=i&&((i<r||null==r)&&(t=!0),r=i)}else this._registerTiledLayerView(s),s.layer.loaded&&(t=!0);this._basemapLayerViewHandles.forEach(((e,r)=>{i.has(r)||(this._unregisterTiledLayerView(r),t=!0)})),t&&this._updateTiledLayers(),this.hasCompositeBlendMode=this._hasCompositeBlendMode(),this._evaluateTransparency(),e.madeProgress()}_allSurfaceLayersTransparent(){let e=0===this.view.map?.ground?.opacity;for(const t of this.view.allLayerViews.items)if(Pe(t)&&!H(t.layer)&&0!==t.fullOpacity)return e=!1,e;return e}_hasCompositeBlendMode(){for(const e of this.view.allLayerViews.items)if((be(e)||De(e))&&Je(Ze[e.layer.blendMode]))return!0;return!1}_layerClassFromLayerView(e){return xe(e)?ae.ELEVATION:ae.MAP}_registerTiledLayerView(e){const t=[];if((be(e)||De(e))&&t.push(T((()=>e.layer.blendMode),(()=>{this.hasCompositeBlendMode=this._hasCompositeBlendMode(),this._updateTileTextures(se.UNFADED)}))),!De(e)){const i=this._layerClassFromLayerView(e);t.push(T((()=>e.suspended),(()=>this._updateTiledLayers()))),t.push(T((()=>e.fullOpacity),(()=>this._updateTileTextures(se.UNFADED)))),t.push(T((()=>"effectiveScaleRange"in e.layer?e.layer.effectiveScaleRange:null),(()=>this._restartAllAgents(i)))),t.push(e.on("data-changed",(()=>{const t=this._getLayerIdxByUID(i,e.uid);null!=t&&this._invalidateLayerData(t,i)})))}this._unregisterTiledLayerView(e.uid),this._basemapLayerViewHandles.set(e.uid,t)}_unregisterTiledLayerView(e){const t=this._basemapLayerViewHandles.get(e);if(t){for(const e of t)e.remove();this._basemapLayerViewHandles.delete(e)}}_updateTiledLayers(){if(!this.tilingScheme||this.view.suspended)return;const e=this.view.allLayerViews,t=[[],[]];let i=null;e.forEach((e=>{if(!e.layer||e.suspended||!Le(e)||!e.fullExtent)return;const r=this._layerClassFromLayerView(e);if(r===ae.MAP){const t=e.displayLevelRange.maxLevel;t!==1/0&&(null===i||t>i)&&(i=t)}t[r].push(e)}));for(const r of ne){const e=this._layerViews[r],i=t[r];i.reverse();const s=i.length;let a=e.length!==s;const n=new Array(s),l=new Array(e.length);this._layerIndexByUid[r].clear();for(let t=0;t<s;t++){const s=i[t].uid;this._layerIndexByUid[r].set(s,t);const o=e.indexOf(i[t]);n[t]=o,t!==o&&(a=!0),o>-1&&(l[o]=t)}if(a){const e=this._postorderIterator;for(e.reset(this._rootTiles);!e.done;)e.next().modifyLayers(l,n,r);this._layerViews[r]=i,this._restartAllAgents(r),this._updateTilesVisibility(this._rootTiles)}}this.tilingScheme.ensureMaxLod(i)&&this._viewChangeUpdate()}_restartAllAgents(e){const t=this._postorderIterator;for(t.reset(this._rootTiles);!t.done;){const i=t.next();i.restartAgents(e),e===ae.ELEVATION&&i.computeElevationBounds()}this._updateRootTileElevationBounds()}layerViewByIndex(e,t){return this._layerViews[t][e]}numLayers(e){return this._layerViews[e].length}_updateTileTextures(e){this._allTiles.forAll((t=>{t.updateAgents(ae.MAP),e===se.IMMEDIATE?this.renderer.updateTileTexture(t,Ge.TEXTURE_NOFADING):t.updateRenderData(ae.MAP,e)})),this._evaluateTransparency()}_invalidateLayerData(e,t){this._allTiles.forAll((i=>i.removeLayerAgent(e,t))),this._allTiles.forAll((i=>i.invalidateLayerData(e,t)))}setTileTreeDirty(){this._allTilesDirty=!0}requestRender(e=tt.UPDATE){this.renderer.setNeedsRender(e)}requestUpdate(){1==++this._pendingUpdates&&(this._hasPendingUpdates=!0)}requestTileData(e,t,i,r){const s=this.layerViewByIndex(t,i),a=s.layer;return!a.tilemapCache||Ue(s)?this._requestTileData(e,i,s,r):(++this._asyncWorkItems,a.tilemapCache.fetchAvailability(e.lij[0],e.lij[1],e.lij[2],{...r,timeout:6e3}).then((()=>--this._asyncWorkItems)).catch((t=>{throw--this._asyncWorkItems,c(r),_(t)||this._dataMissing(e,i,s,{notInTilemap:!0}),t})).then((()=>this._frameTask.schedule((()=>this._requestTileData(e,i,s,r)),r.signal))))}_requestTileData(e,t,i,r){return t===ae.ELEVATION?xe(i)?this._requestElevationTileData(e,i,r):Promise.reject():Pe(i)?this._requestMapTileData(e,i,r):Promise.reject()}_requestElevationTileData(e,t,i){++this._asyncWorkItems;const r=r=>{if(g(i))return;const s=this._layerIndexByUid[ae.ELEVATION].get(t.uid);null!=s?(this._usedMemory=null,this.requestUpdate(),this._elevationDataArrived(e,s,r)):n.getLogger(this).warn("TerrainSurface: received data from unknown layer %d %s",ae.ELEVATION,e.lij.toString())},s=i=>{_(i)||(this._dataMissing(e,ae.ELEVATION,t,i),this.requestUpdate())};if(Re(t.layer))return t.layer.fetchTile(e.lij[0],e.lij[1],e.lij[2],{noDataValue:Te,signal:i.signal}).then((e=>{if(!g(i))return this._frameTask.schedule((()=>r(e)),i.signal,s);n.getLogger(this).warnOnce("A call to fetchTile resolved even though the request was aborted. fetchTile should not resolve if options.signal.aborted is true.")}),s).finally((()=>{--this._asyncWorkItems}));const a=t.getTileUrl(e.lij[0],e.lij[1],e.lij[2]);return this._elevationDataRequester.request(a,"binary",i).then((e=>this._lercDecoder.decode(e,{noDataValue:Te},i.signal))).then((e=>{e?r(new W(e)):s(new Error("LERC decoding failed"))}),s).finally((()=>{--this._asyncWorkItems}))}_requestMapTileData(e,t,i){++this._asyncWorkItems;const r=(r,s)=>{--this._asyncWorkItems,je(s),g(i)||(this._dataMissing(e,ae.MAP,t,r),this.requestUpdate())},s=e=>t=>r(t,e),a=r=>this._frameTask.schedule((()=>{--this._asyncWorkItems,this.requestUpdate(),g(i)?je(r):this._mapTileDataArrived(e,t,r)}),i.signal,s(r)).catch(s(r)),l=(e,t=null)=>this._frameTask.schedule((()=>r(e,t)));if(Ue(t)){const r=t.schemaHelper.getLevelRowColumn(e.lij);return t.fetchTile(r[0],r[1],r[2],i).then(a,l)}if(Ce(t))return t.fetchTile(e.lij[0],e.lij[1],e.lij[2],i).then(a,l);if(Me(t)&&Re(t.layer))return t.layer.fetchTile(e.lij[0],e.lij[1],e.lij[2],i).then((e=>{if(g(i))return n.getLogger(this).warnOnce("A call to fetchTile resolved even though the request was aborted. fetchTile should not resolve if options.signal.aborted is true."),void l(m());a(e)}),l);let o=t.getTileUrl(e.lij[0],e.lij[1],e.lij[2]);F(t.layer)&&t.layer.refreshTimestamp&&(o+=`${o.includes("?")?"&":"?"}_ts=${t.layer.refreshTimestamp}`);const h=t.hasMixedImageFormats?"image+type":"image";return this._mapDataRequester.request(o,h,i).then(a,l)}_mapTileDataArrived(e,t,i){const r=this._getLayerIdxByUID(ae.MAP,t.uid);null!=r?e.dataArrived(r,ae.MAP,i):(je(i),n.getLogger(this).warn("TerrainSurface: received data from unknown layer"))}_getLayerIdxByUID(e,t){return this._layerIndexByUid[e].get(t)}_dataMissing(e,t,i,r){const s=this._getLayerIdxByUID(t,i.uid);null!=s?e.dataMissing(s,t,r):n.getLogger(this).warn("TerrainSurface: received data from unknown layer")}updateTileOverlayParams(e){this._rootTiles&&this.overlayManager&&(this._allTiles.forAll((e=>{e.renderData&&this.overlayManager.setTileParameters(e)})),this._renderer.setNeedsRender(e))}get performanceInfo(){const e=this._performanceInfo;return e.numNodes=this._allTiles.length,e.numLeaves=e.numVisible=e.numRendered=e.numLoadedPerLevel.length=e.numRenderedPerLevel.length=0,this._allTiles.forAll((t=>{t.isLeaf&&e.numLeaves++;const i=t.level;t.renderData&&(e.numLoadedPerLevel[i]=(e.numLoadedPerLevel[i]||0)+1),t.visible&&(e.numVisible++,t.rendered&&(e.numRenderedPerLevel[i]=(e.numRenderedPerLevel[i]||0)+1,e.numRendered++))})),e}get usedMemory(){return this.tilingScheme?(null==this._usedMemory&&(this._usedMemory=this._recalculateUsedMemory()),this._usedMemory??0):0}_recalculateUsedMemory(){return this.tilingScheme?Math.round(this._allTiles.reduce(((e,t)=>e+t.usedMemory),0)):null}getUsedMemoryForLayerView(e){let t=0;const i=this._layerClassFromLayerView(e),r=this._getLayerIdxByUID(i,e.uid);return null!=r&&this._allTiles.forAll((e=>t+=e.getUsedMemoryForLayer(i,r))),t}getTile(e){if(null==e||null==this._rootTiles)return null;const t=e.split("/").map((e=>+e));if(0===t[0])return this._rootTiles.find((e=>e.lij[1]===t[1]&&e.lij[2]===t[2]));const i=2**t[0],r=Math.floor(t[1]/i),s=Math.floor(t[2]/i);let a;if(this._rootTiles.some((e=>e.lij[1]===r&&e.lij[2]===s&&(a=e,!0))),a){let e=1<<t[0]-1;for(;a.lij[0]<t[0];){let i=t[1]&e?2:0;if((t[2]&e)>0&&i++,!a.children[i])return null;a=a.children[i],e>>=1}return Ee(a.lij[0]===t[0]&&a.lij[1]===t[1]&&a.lij[2]===t[2],"not the right tile?"),a}return null}get renderPatchBorders(){return this._renderer.renderPatchBorders}set renderPatchBorders(e){this._renderer.renderPatchBorders=e}get visualizeNormals(){return this._renderer.visualizeNormals}set visualizeNormals(e){this._renderer.visualizeNormals=e}get renderingDisabled(){return this._renderer.renderingDisabled}set renderingDisabled(e){this._renderer.renderingDisabled=e}get test(){const e=this;return{renderer:e._renderer,lercDecoder:e._lercDecoder,forceReload:()=>{null!=e._rootTiles&&e._rootTiles.length>0&&(e._mergeTile(e._rootTiles[0]),e._viewChangeUpdate())},getTiles:()=>e._allTiles.toArray(),getRenderedTiles(){_t.clear(),e._allTiles.forAll((e=>{e.visible&&e.rendered&&_t.push(e)}));const t=_t.toArray();return Ye(e.renderOrder,t),t},lockTilingScheme(t,i){e._extentHelper.defaultTiledLayersExtent=i,e.tilingSchemeLogic.test.lockTilingScheme(t)}}}checkAllTilesWaterproofness(){if(!Be)return;const e=this._rootTiles;if(null==e)return;const t=e=>e?.renderData?.geometry?.indices?.length>0,i=(e,i)=>{t(e)&&console.error("Tile[",e.lij,"] has geometry although parent[",i.lij,"] has geom")},r=e=>{if(e.intersectsClippingArea)if(e.renderData&&!e.renderData.geometryState&&console.error("Tile[",e.lij,"] has renderData but not geometryState"),e.renderData&&!e.renderData.geometry&&console.error("Tile[",e.lij,"] has renderData but not geometryInfo"),!e.renderData?.geometry||(e.renderData.geometry.indices?.length??0)>0||console.error("Tile[",e.lij,"] has renderData but no indices - geometryInfo: ",e.renderData.geometry),t(e)){e.checkGeometryWaterproofness();for(const t of e.children)i(t,e)}else if(e.isLeaf)console.error("Tile[",e.lij,"] has no geometry and no children, from root to leaf");else for(const t of e.children)r(t)},s=e=>{const t=e.parent?.visible??!0,i=e.visible;e.computeVisibility();const r=e.visible;if(i!==r&&t&&console.error(" Tile[",e.lij,"] has out of date visibility: ",i," instead of ",r),!e.isLeaf)for(const a of e.children)s(a)};for(const a of e)r(a),s(a)}get isGlobal(){return this._isGlobal}get isWebMercator(){return this._isWebMercator}get isWebMercatorOnPlateeCarree(){return this._isWebMercatorOnPlateeCarree}isEastEndWrap(e){return this.isGlobal&&e[2]===this.lijEastEnd(e[0])-1}isWestEndWrap(e){return this.isGlobal&&0===e[2]}lijEastEnd(e){return 2**(e+(null!=this.spatialReference&&this.spatialReference.isGeographic?1:0))}wrapEastWest(e){const t=this.lijEastEnd(e[0]),i=e[2];if(0<=i&&i<t)return e;if(!this.isGlobal)return null;const r=(i+(i<0?t:0))%t;return[e[0],e[1],r]}enableInternalChecks(e){ke(e)}enableWaterproofnessChecks(e){Ne(e)}};lt._tileMemcacheKey="TerrainTileMemcache",e([E()],lt.prototype,"_renderer",void 0),e([E({constructOnly:!0})],lt.prototype,"_scaleRangeQueries",void 0),e([E({constructOnly:!0})],lt.prototype,"view",void 0),e([E({constructOnly:!0})],lt.prototype,"overlayManager",void 0),e([E()],lt.prototype,"_hasPendingUpdates",void 0),e([E()],lt.prototype,"_asyncWorkItems",void 0),e([E()],lt.prototype,"_allTilesDirty",void 0),e([E()],lt.prototype,"_allTilesSorted",void 0),e([E()],lt.prototype,"_viewChanged",void 0),e([E()],lt.prototype,"_splitLimits",void 0),e([E({readOnly:!0})],lt.prototype,"_watchUpdatingTracking",void 0),e([E()],lt.prototype,"_frameTask",void 0),e([E({readOnly:!0})],lt.prototype,"snapLevel",null),e([E({readOnly:!0})],lt.prototype,"lodSnapping",null),e([E()],lt.prototype,"_userClippingExtent",null),e([E()],lt.prototype,"_rootTilesExtent",void 0),e([E({readOnly:!0})],lt.prototype,"extent",null),e([E({readOnly:!0})],lt.prototype,"groundExtent",null),e([E({readOnly:!0})],lt.prototype,"_tilingSchemeExtent",null),e([E({readOnly:!0})],lt.prototype,"updating",null),e([E({readOnly:!0})],lt.prototype,"running",null),e([E(J)],lt.prototype,"updatingProgress",void 0),e([E({readOnly:!0})],lt.prototype,"updatingProgressValue",null),e([E()],lt.prototype,"_maxNumUpdating",void 0),e([E()],lt.prototype,"baseOpacity",null),e([E()],lt.prototype,"hasCompositeBlendMode",void 0),e([E({readOnly:!0})],lt.prototype,"viewingMode",null),e([E()],lt.prototype,"maxTextureScale",void 0),e([E({readOnly:!0})],lt.prototype,"ready",null),e([E({value:he.FRONT_TO_BACK})],lt.prototype,"renderOrder",null),e([E({readOnly:!0})],lt.prototype,"rootTiles",null),e([E()],lt.prototype,"_rootTiles",void 0),e([E({readOnly:!0})],lt.prototype,"spatialReference",null),e([E({type:t})],lt.prototype,"backgroundColor",null),e([E({value:!1})],lt.prototype,"slicePlaneEnabled",null),e([E({readOnly:!0})],lt.prototype,"tilingScheme",void 0),e([E({readOnly:!0})],lt.prototype,"tilingSchemeLocked",null),e([E({readOnly:!0})],lt.prototype,"tilingSchemeLogic",void 0),e([E()],lt.prototype,"wireframe",null),e([E({value:!1})],lt.prototype,"suspended",null),e([E()],lt.prototype,"textureFadeDuration",null),e([E()],lt.prototype,"visibleElevationBounds",void 0),e([E()],lt.prototype,"rootTileElevationBounds",void 0),e([E()],lt.prototype,"_layerViewsDirty",void 0),e([E()],lt.prototype,"renderPatchBorders",null),e([E()],lt.prototype,"visualizeNormals",null),e([E()],lt.prototype,"renderingDisabled",null),lt=nt=e([S("esri.views.3d.terrain.TerrainSurface")],lt);const ot=lt;function ht(e,t){return e[0]===t[0]&&e[1]===t[1]&&e[2]===t[2]}function dt(e){const t=e.children;if(!t[0])return!1;for(const i of t)if(i.shouldLoad)return!0;for(const i of t)if(dt(i))return!0;return!1}function pt(e){return e.isLeaf&&(e.parent?.shouldLoad??!1)}const ut=b(),ct=j(),_t=new u,gt={spatialReference:null,extent:j(),context:"ground"},mt={spatialReference:null,extent:null,scale:0};function Tt(e,t,i){for(const r of e){if(!r.containsPointXY(t,i))continue;let e=r;for(;e&&!e.renderData;){const r=(t>e.extentMidX?1:0)+(i<e.extentMidY?2:0);e=e.children[r]}const s=e?.renderData?.geometryState.samplerData??null;return te(t,i,s)}return null}const yt="TerrainTileObject";export{ot as default};
|
|
5
|
+
import{_ as e}from"../../../chunks/tslib.es6.js";import t from"../../../Color.js";import i from"../../../core/Accessor.js";import{difference as r}from"../../../core/arrayUtils.js";import s from"../../../core/CollectionFlattener.js";import a from"../../../core/Evented.js";import n from"../../../core/Logger.js";import{clamp as l}from"../../../core/mathUtils.js";import{releaseMaybe as o,destroyMaybe as h}from"../../../core/maybe.js";import{MemCachePool as d}from"../../../core/MemCachePool.js";import p from"../../../core/ObjectPool.js";import u from"../../../core/PooledArray.js";import{throwIfAborted as c,isAbortError as _,isAborted as g,createAbortError as m}from"../../../core/promiseUtils.js";import{watch as T,syncAndInitial as y,sync as f,initial as v}from"../../../core/reactiveUtils.js";import{property as E}from"../../../core/accessorSupport/decorators/property.js";import"../../../core/accessorSupport/ensureType.js";import"../../../core/has.js";import{subclass as S}from"../../../core/accessorSupport/decorators/subclass.js";import{m as w}from"../../../chunks/mat4.js";import{a as L}from"../../../chunks/mat4f64.js";import{c as D}from"../../../chunks/vec3.js";import{c as P}from"../../../chunks/vec3f64.js";import{c as x}from"../../../chunks/vec4f64.js";import{UpdatingHandles as R}from"../../../core/support/UpdatingHandles.js";import{getReferenceEllipsoid as C}from"../../../geometry/ellipsoidUtils.js";import b from"../../../geometry/SpatialReference.js";import{projectPointToVector as U}from"../../../geometry/projection/projectPointToVector.js";import{projectVectorToVector as M}from"../../../geometry/projection/projectVectorToVector.js";import{create as j,equals as A,intersection as I,empty as B,expand as V,intersectsSphere as O}from"../../../geometry/support/aaBoundingRect.js";import{create as k,copy as N}from"../../../geometry/support/frustum.js";import{isPlateCarree as q}from"../../../geometry/support/spatialReferenceUtils.js";import{isRefreshableLayer as F}from"../../../layers/mixins/RefreshableLayer.js";import{ElevationQueryTileCache as G}from"../../../layers/support/ElevationQueryTileCache.js";import{ElevationTileData as W}from"../../../layers/support/ElevationTileData.js";import{isBaseLayer as H}from"../../../layers/support/layerUtils.js";import{acquireDecoder as Q}from"../../../layers/support/LercDecoder.js";import{printAllocations as z}from"../../2d/engine/vectorTiles/VectorTile.js";import{directionToHeadingTilt as X}from"../support/cameraUtils.js";import{debugFlags as Y}from"../support/debugFlags.js";import{toBoundingRect as K}from"../support/extentUtils.js";import{ClientType as $}from"../support/index.js";import{updatingProgress as J}from"../support/updatingProperties.js";import{ElevationBounds as Z}from"./ElevationBounds.js";import{ElevationData as ee,sampleElevation as te}from"./ElevationData.js";import{create as ie}from"./ExtentHelper.js";import{LODSnapping as re,TextureUpdate as se}from"./interfaces.js";import{LayerClass as ae,LayerClasses as ne}from"./LayerClass.js";import{OverlayManager as le}from"./OverlayManager.js";import{PlanarPatch as oe}from"./PlanarPatch.js";import{RenderOrder as he}from"./RenderOrder.js";import{ScaleRangeQueries as de}from"./ScaleRangeQueries.js";import{SphericalPatch as pe}from"./SphericalPatch.js";import{SplitLimits as ue}from"./SplitLimits.js";import{maxRootTiles as ce,tooManyRootTilesAfterChangeError as _e,tooManyRootTilesForLayerError as ge,maxMemoryLodBias as me,elevationNodataValue as Te}from"./TerrainConst.js";import{TerrainRenderer as ye,TransparencyMode as fe}from"./TerrainRenderer.js";import ve from"./TerrainSurfacePerformanceInfo.js";import{weakAssert as Ee,internalAssert as Se,oppositeEdge as we,isSurfaceLayerView as Le,isGroupLayerView as De,isMapTileLayerView as Pe,isBlendableLayerView as xe,isElevationLayerView as Re,isVectorTileLayerView as Ce,useFetchTileForLayer as be,isImageryTileLayerView as Ue,isTileLayerView as Me,releaseTileData as je,neighborCornerIndices as Ae,oppositeCorner as Ie,neighborEdgeIndices as Be,enableTerrainInternalChecks as Ve,enableWaterproofnessTests as Oe,enableInternalTerrainChecks as ke,enableTerrainWaterproofnessChecks as Ne}from"./terrainUtils.js";import{Tile as qe}from"./Tile.js";import{printAllocations as Fe}from"./TilePerLayerInfo.js";import{TileUpdate as Ge}from"./TileUpdate.js";import{IteratorPreorder as We,IteratorPostorder as He,compareTilesByLij as Qe,hasLoadableSiblings as ze,sortTilesByPOI as Xe,sortTiles as Ye}from"./tileUtils.js";import{TilingSchemeLogic as Ke}from"./TilingSchemeLogic.js";import{UpsampleInfo as $e}from"./UpsampleInfo.js";import{isCompositeBlendMode as Je,blendModeFromString as Ze}from"../webgl-engine/core/shaderLibrary/output/BlendOptions.js";import{PBRMode as et}from"../webgl-engine/core/shaderLibrary/shading/PhysicallyBasedRenderingParameters.glsl.js";import{RenderRequestType as tt}from"../webgl-engine/lib/basicInterfaces.js";import{RenderState as it}from"../../support/RenderState.js";import{ImmediateTask as rt,TaskPriority as st,noBudget as at}from"../../support/Scheduler.js";var nt;let lt=nt=class extends(a.EventedMixin(i)){constructor(e){super(e),this._scaleRangeQueries=new de,this._iteratorPool=new p(We,(e=>e.remove=()=>this._iteratorPool.release(e))),this._postorderIterator=new He,this._hasPendingUpdates=!1,this._pendingUpdates=0,this._asyncWorkItems=0,this._allTilesDirty=!0,this._allTilesSorted=!0,this._usedMemory=null,this._performanceInfo=new ve,this._viewChanged=!1,this._inFrameTask=!1,this._viewChangeUpdateDirty=!1,this._eyePosRenderSR=P(),this._eyePosSurfaceSR=P(),this._splitLimits=new ue,this._frustum=k(),this._viewProjectionMatrix=L(),this._layerViews=[new Array,new Array],this._layerIndexByUid=[new Map,new Map],this._basemapLayerViewHandles=new Map,this._watchUpdatingTracking=new R,this._frameTask=rt,this._allTiles=new u,this._upsampleInfoPool=new p($e),this._shouldEmitChangeEvent=!1,this._rootTilesExtent=j(),this.updatingProgress=.5,this._maxNumUpdating=1,this.maxTextureScale=1.2,this._spatialReference=b.WebMercator,this.visibleElevationBounds=new Z(1/0,-1/0),this.rootTileElevationBounds=new Z(1/0,-1/0),this._updatingRootTiles=!1,this._pendingTilesForElevationUpdateEvent=new Set,this._pendingTilesToUpdate=new Set,this.totalGeometryUpdates=0,this.totalTileUpdates=0,this._oneBatchPerFrameTask=!0,this._layerViewsDirty=!1,this.unloadedMemory=0,this.ignoresMemoryFactor=!1,this._isWebMercator=!1,this._isWebMercatorOnPlateeCarree=!1,this.overlayManager=new le({...e,surface:this}),this._isGlobal=!e.view?.state?.isLocal,this._tileConstructor=this._isGlobal?pe:oe}initialize(){const e=this.view,t=e.resourceController;this._lercDecoder=Q(t);const i=t.memoryController;this._tileCache=new d(((e,t)=>i.newCache(e,t)),"terrain-tile"),this._upsampleMapCache=i.newCache("terrain-upsample",(e=>e.unloadMapData())),this._elevationQueryCache=new G(i.newCache("elevation-query"));const r=this.overlayManager;this._renderer=new ye(r.renderer,e._stage,this._allTiles,C(e.spatialReference).radius,i),this.addHandles([T((()=>r.rendersOccluded),(e=>this._renderer.setRenderOccludedOverlay(e))),T((()=>r.renderer.isEmpty),(()=>this._evaluateTransparency())),T((()=>this.renderer.visible),(e=>this.suspended=!e))],"overlayManager"),this.addHandles([T((()=>this.baseOpacity),(()=>{this._handleLayerViewChanges(),this._updateTileTextures(this._evaluateTransparency()?se.UNFADED:se.IMMEDIATE)}),y),T((()=>this.hasCompositeBlendMode),(()=>this._updateTileTextures(this._evaluateTransparency()?se.UNFADED:se.IMMEDIATE)),y),T((()=>this.backgroundColor),((e,t)=>{e?.equals(t)||(this._handleLayerViewChanges(),this._renderer.updateTileBackground(e))}),f),T((()=>this.snapLevel),(()=>this._viewChanged=!0),f),T((()=>this.view.pointsOfInterest),(e=>{this._renderer.pointsOfInterest=e,this._watchUpdatingTracking.removeAll(),e&&this._watchUpdatingTracking.add((()=>e.focus.renderLocation),(()=>this._allTilesSorted=!1))})),T((()=>Y.TERRAIN_TILE_TREE_SHOW_TILES),(t=>{t&&!this._treeDebugger?import("../layers/support/TerrainTileTree3DDebugger.js").then((({TerrainTileTree3DDebugger:t})=>{!this._treeDebugger&&Y.TERRAIN_TILE_TREE_SHOW_TILES&&(this._treeDebugger=new t({view:e}))})):t||(this._treeDebugger=h(this._treeDebugger))}),v)]);const{spatialReference:a}=e;this._extentHelper=ie(this.viewingMode,{layers:e.map.allLayers,layerViews:e.allLayerViews,viewSpatialReference:a});const n=new s({getCollections:()=>e.defaultsFromMap?.mapCollections?.map((({layers:e})=>e)),getChildrenFunction:e=>e&&"layers"in e?e.layers:null}),l=new Ke({layers:n,extentHelper:this._extentHelper,viewingMode:this.viewingMode,viewSpatialReference:a});this._set("tilingSchemeLogic",l),this._updateTilingScheme(),this._elevationDataRequester=t.createStreamDataRequester($.ELEVATION),this._mapDataRequester=t.createStreamDataRequester($.BASEMAP);const o=t.scheduler;this._frameTask=o.registerTask(st.TERRAIN_SURFACE,this),this.addHandles([T((()=>this._extentHelper.stencilEnabledExtents),(e=>this._renderer.setStencilEnabledLayerExtents(e)),v),T((()=>this.tilingSchemeLogic.tilingScheme),(()=>this._updateTilingScheme()),f),T((()=>this.extent),(()=>this._updateRootTiles()),v),e.on("resize",(()=>this._viewChangeUpdate())),T((()=>{const t=e.state;return[this._lodBias,this.lodSnapping,e.quality,t.camera,t.contentCamera,t.fixedContentCamera]}),(()=>this._viewChangeUpdate()),y),T((()=>e.qualitySettings?.tiledSurface?.textureFadeDuration),(e=>this._renderer.textureFadingEnabled=e>0),v),T((()=>e.qualitySettings?.physicallyBasedRenderingEnabled),(e=>this._renderer.pbrMode=e?et.Terrain:et.Disabled),v),T((()=>this._userClippingExtent),(()=>this._updateClippingExtent()),f)]),this.addHandles(e.allLayerViews.on("after-changes",(()=>this._layerViewsDirty=!0))),this._layerViewsDirty=!0,this._handleLayerViewChanges(),this._renderer.updateTileBackground(this.backgroundColor)}destroy(){this._frameTask.remove(),this._watchUpdatingTracking.destroy(),this._lercDecoder=o(this._lercDecoder),this._removeAllTiles(),this._set("tilingSchemeLogic",h(this.tilingSchemeLogic)),this._basemapLayerViewHandles.forEach(((e,t)=>this._unregisterTiledLayerView(t))),this._elevationDataRequester=null,this._mapDataRequester=null,this._set("overlayManager",h(this.overlayManager)),this._tileCache=h(this._tileCache),qe.prune(),this._treeDebugger=h(this._treeDebugger),this._renderer=h(this._renderer),this._iteratorPool=h(this._iteratorPool),this._upsampleMapCache=h(this._upsampleMapCache),this._elevationQueryCache=h(this._elevationQueryCache),this._set("view",null),this._extentHelper=h(this._extentHelper),this._upsampleInfoPool=h(this._upsampleInfoPool),z(),Fe()}get renderer(){return this._renderer}get frustum(){return this._frustum}get snapLevel(){if(this.lodSnapping===re.ON){const e=this.view,t=this.tilingScheme,i=e.pointsOfInterest?.cameraOnSurface?.scale;if(t&&i){const r=e.state.contentCamera;let s=X(e,r.eye,r.viewForward,r.up).tilt;s>90&&(s=180-s);const a=2*(s/90)**2,n=t.levelAtScale(i)-a,l=Math.min(n+e.qualitySettings.tiledSurface.lodBias,this._splitLimits.maxLod||1/0);return l<=0?null:l}}return null}get lodSnapping(){return this.view.qualitySettings.tiledSurface.reduceTileLevelDifferences?re.ON:re.OFF}get upsampleInfoPool(){return this._upsampleInfoPool}get upsampleMapCache(){return this._upsampleMapCache}get elevationQueryCache(){return this._elevationQueryCache}get mapTileRequester(){return this._mapDataRequester}get _userClippingExtent(){const{spatialReference:e}=this,{clippingArea:t}=this.view;if(null==t||null==e)return null;const i=j(),r=K(t,i,e)?i:null,s=this._get("extent");return A(r,s)?s:r}get rootTilesExtent(){return this._rootTilesExtent}get extent(){const e=I(this.groundExtent,this._userClippingExtent,j()),t=this._get("extent");return A(e,t)?t:e}get groundExtent(){return null!=this._tilingSchemeExtent?this._tilingSchemeExtent:this._rootTilesExtent}get _tilingSchemeExtent(){return this.tilingSchemeLogic?.extent}get updating(){return this._hasPendingUpdates||(this._maxNumUpdating=1),!!((this.running||this._watchUpdatingTracking?.updating||this._asyncWorkItems>0)&&this.ready&&!this.suspended||this.overlayManager?.updating)}get running(){return(this._hasPendingUpdates||this._viewChanged||this._allTilesDirty||!this._allTilesSorted||this._layerViewsDirty||this._scaleRangeQueries.updating||this._frameTask.updating)&&this.ready&&!this.suspended}get updatingProgressValue(){return this._maxNumUpdating=Math.max(this._pendingUpdates,this._maxNumUpdating),1-this._pendingUpdates/this._maxNumUpdating}get baseOpacity(){return this.view?.map?.ground?.opacity??1}set baseOpacity(e){this.view.map.ground.opacity=e}get viewingMode(){return this.view.state.viewingMode}get ready(){return null!=this._rootTiles}set renderOrder(e){this._renderer.renderOrder=e,this._set("renderOrder",e)}get rootTiles(){return this._rootTiles}get spatialReference(){return this.tilingScheme?.spatialReference??null}get backgroundColor(){return this.view?.map?.ground?.surfaceColor}set backgroundColor(e){this.view.map.ground.surfaceColor=e}set slicePlaneEnabled(e){this._renderer.slicePlaneEnabled=e,this._set("slicePlaneEnabled",e),this._evaluateTransparency()}get tilingSchemeLocked(){return this.tilingSchemeLogic?.tilingSchemeLocked??!1}get wireframe(){return this._renderer?.wireframe}set wireframe(e){e!==this._renderer.wireframe&&(this._renderer.wireframe=e,this._updateAllTileGeometries())}get opaque(){return this._renderer.transparency===fe.Opaque}set suspended(e){this._set("suspended",e),this._viewChangeUpdate()}get textureFadeDuration(){return this.view.qualitySettings.tiledSurface.textureFadeDuration??0}intersect(e,t,i,r){this._renderer.intersect(e,t,i,r)}getElevation(e,t,i,r){const s=this._rootTiles;if(!s?.length)return null;if(0===s[0].layerInfo[ae.ELEVATION].length)return null;const a=ut;if(a[0]=e,a[1]=t,a[2]=i,!M(a,r,a,this._spatialReference))return n.getLogger(this).error("TerrainSurface.getElevation(): could not project given point to tiling scheme coordinate system"),null;return Tt(s,a[0],a[1])}getElevations(e,t,i){const r=this._rootTiles,s=r?r[0].layerInfo[ae.ELEVATION].length:0;if(r?.length&&0!==s)for(let a=0;a<t;++a){const t=3*a;i(a,Tt(r,e[t],e[t+1]))}else for(let a=0;a<t;++a)i(a,null)}getScale(e){if(!this.tilingScheme)return null;if(!U(e,ut,this.spatialReference))return n.getLogger(this).error("TerrainSurface.getScale(): could not project given point to tiling scheme coordinate system"),null;const t=this._rootTiles;if(null!=t)for(const i of t)if(i?.containsPoint(ut)){let e=i;for(;e.children[0]&&!e.rendered;){const t=e.children[0].extent;let i=0;ut[0]>t[2]&&(i+=1),ut[1]<t[1]&&(i+=2),e=e.children[i]}return this._getLodBiasCorrectedScale(e.level)}return 1/0}getSphereElevationBounds(e,t){if(ut[0]=e[0],ut[1]=e[1],ut[2]=e[2],ut[3]=e[3],!M(ut,t,ut,this.tilingScheme?.spatialReference))return n.getLogger(this).error("TerrainSurface.getSphereElevationBounds(): could not project given point to tiling scheme coordinate system"),null;let i=1/0,r=-1/0;const s=e=>{if(e&&O(e.extent,ut))if(e.isLeaf||e.rendered)i=Math.min(i,e.elevationBounds[0]),r=Math.max(r,e.elevationBounds[1]);else for(const t of e.children)s(t)},a=this._rootTiles;if(null!=a)for(const n of a)s(n);return{min:i,max:r}}getRootElevationBounds(){return{min:this.rootTileElevationBounds.min,max:this.rootTileElevationBounds.max}}getSphereScale(e,t){if(!this.tilingScheme)return null;if(!U(e,ut,this.spatialReference))return n.getLogger(this).error("TerrainSurface.getSphereScale(): could not project given point to tiling scheme coordinate system"),null;ut[3]=t;let i=null;const r=e=>{if(e&&O(e.extent,ut)){const t=e.children;if(t[0]&&!e.rendered)for(const e of t)r(e);else{const t=this._getLodBiasCorrectedScale(e.level);i=null==i?t:Math.min(i,t)}}},s=this._rootTiles;if(null!=s)for(const a of s)r(a);return i}queryVisibleScaleRange(e,t,i,r){const s=t?this.tilingScheme.levelAtScale(t):0,a=i?this.tilingScheme.levelAtScale(i):1/0,n=this._lodBias;this._scaleRangeQueries.queryVisibleLevelRange(e,s+n,a+n,r)}_evaluateTransparency(){const e=this.baseOpacity,t=this.overlayManager.renderer.isEmpty,i=this._renderer.transparency,r=this._allSurfaceLayersTransparent()?t?fe.Empty:fe.TransparentWithDraped:e>=1&&!this.hasCompositeBlendMode&&!this._renderer.slicePlaneEnabled?fe.Opaque:fe.Semitransparent,s=i!==r;return s&&(this._renderer.transparency=r,this.view?._stage?.renderer.setParameters({terrainTransparency:this._renderer.transparency})),s}_updateTilingScheme(){const e=this.tilingSchemeLogic.tilingScheme;if(!(e!==this.tilingScheme))return;Ee(!!e,"tiling scheme cannot be reset to undefined"),this._isGlobal=!this.view?.state?.isLocal,this.tilingScheme&&this._removeAllTiles();const t=e?.spatialReference??b.WebMercator;this._spatialReference=t,this._isWebMercator=!!t?.isWebMercator,this._isWebMercatorOnPlateeCarree=this._isWebMercator&&q(this.view?.renderSpatialReference),this._set("tilingScheme",e),this._updateClippingExtent(),e&&(this._updateTiledLayers(),this._renderer.setTileSize(e.pixelSize),this.overlayManager.setSpatialReference(e.spatialReference),this._updateRootTiles())}_acquireTile(e,t,i,r){const s=this._tileCache.pop(nt._tileMemcacheKey);return s?(s.init(e,t,i,r,this),s):new this._tileConstructor(e,t,i,r,this)}get updatingRootTiles(){return this._updatingRootTiles}_updateRootTiles(){const{extent:e,tilingScheme:t}=this;if(!t)return;const i=ct;let s=t.rootTilesInExtent(e,i,5*ce);if(null!=this._rootTiles){if(s.length>ce)return void n.getLogger(this).warn(_e);const e=this._rootTiles.map((e=>e.lij)),t=r(e,s,ht);if(this._updatingRootTiles=!0,t.removed.length>0||t.added.length>0){const e=this._rootTiles.filter((e=>!(t.removed.findIndex((t=>ht(t,e.lij)))>-1)||(this._purgeTile(e),!1)));t.added.forEach((t=>e.push(this._newRootTile(t)))),this._setRootTiles(e)}}else this._updatingRootTiles=!0,s.length>ce&&(n.getLogger(this).warn(ge),s=t.rootTilesInExtent(e,i,ce)),this._setRootTiles(s.map((e=>this._newRootTile(e))));A(i,this._rootTilesExtent)||(this._rootTilesExtent=j(i)),this.renderer.visible=!0,this._viewChangeUpdate(),this.overlayManager.setPlacementDirty(),this.notifyChange("ready"),this._updateAllTileGeometries(),this._updatingRootTiles=!1,this.checkAllTilesWaterproofness()}_updateAllTileGeometries(){const e=this._allTiles.filter((e=>e.isLoaded&&e.intersectsClippingArea));e.forEach((e=>this._renderer.updateTileGeometryState(e))),e.forEach((e=>e.renderData.updateNeighborData())),this._updateTilesGeometries(e),this._pendingTilesToUpdate.clear()}_updateTilesGeometries(e){if(0===e.length)return;e.sort(Qe);const t=this.renderer;e.forEach((e=>t.updateGeometryIfNeeded(e))),e.forEach((e=>this._pendingTilesForElevationUpdateEvent.add(e)))}_shouldSplit(e){return e.shouldSplit(this._splitLimits,this._eyePosRenderSR,this.snapLevel)===Ge.SPLIT}_newRootTile(e){const t=this._acquireTile(0,e[1],e[2],null);return this._shouldSplit(t)&&t.setPendingUpdate(Ge.SPLIT),this._loadTile(t),this._markTileToUpdate(t),this._updateRootTileElevationBounds(),t}_setRootTiles(e){if(this._rootTiles=e,this._allTiles.clear(),null!=e){const t=this._iteratorPool.acquire();for(t.reset(e);!t.done;)this._allTiles.push(t.next());t.remove()}this._renderer.setRootTiles(this._rootTiles),this._updateTilesVisibility(e)}_runViewChangeUpdateIfDirty(){this._viewChangeUpdateDirty&&(this._viewChangeUpdateDirty=!1,this._viewChangeUpdate())}_viewChangeUpdate(){this.view&&!this.suspended&&this.tilingScheme&&this.renderer.visible&&(this._inFrameTask?this._viewChangeUpdateDirty=!0:(this._viewChangeUpdateDirty=!1,this._updateViewDependentParameters(),this._updateTilesVisibility(this._rootTiles)))}_updateClippingStatus(e){e.updateClippingStatus(this.extent)&&e.resetPendingUpdate(Ge.GEOMETRY)&&this._updateTileGeometryState(e)}_updateTilesVisibility(e){if(null==e)return;const t=ze(e),i=this.visibleElevationBounds;let r=t?i.min:1/0,s=t?i.max:-1/0;const a=this.extent,n=this._viewProjectionMatrix;this.setTileTreeDirty();const l=this._iteratorPool.acquire();for(l.reset(e);!l.done;){const e=l.next();e.updateClippingStatus(a)&&e.resetPendingUpdate(Ge.GEOMETRY)&&this._updateTileGeometryState(e),e.setPendingUpdate(Ge.RENDERDATA),e.computeVisibility(),e.updateScreenDepth(n),e.renderData&&(r=Math.min(e.elevationBounds[0],r),s=Math.max(e.elevationBounds[1],s))}l.remove(),this._viewChanged=!0,this._allTilesDirty=!0,this._updatePendingTileGeometries(),isFinite(r)&&isFinite(s)&&(i.min!==r||i.max!==s)&&(this.visibleElevationBounds=new Z(r,s))}_updateRootTileElevationBounds(){let e=1/0,t=-1/0;const i=this._rootTiles;null!=i&&i.forEach((({elevationBounds:i})=>{e=Math.min(e,i[0]),t=Math.max(t,i[1])}));const r=this.rootTileElevationBounds;r.min===e&&r.max===t||(this.rootTileElevationBounds=new Z(e,t))}_updateViewDependentParameters(){const{camera:e,contentCamera:t}=this.view.state,i=Math.tan(.5*t.fovX),r=Math.tan(.5*t.fovY),s=this.tilingScheme.pixelSize,a=2**-this._lodBias*e.pixelRatio;this._splitLimits.aboveGround=e.aboveGround,this._splitLimits.fovX=i,this._splitLimits.fovY=r,this._splitLimits.relativeWidthLimit=s/e.width*this.maxTextureScale*a,this._splitLimits.relativeHeightLimit=s/e.height*this.maxTextureScale*a,this._splitLimits.maxLod=this.tilingScheme.getMaxLod(),this._splitLimits.angledSplitBias=this.view.qualitySettings.tiledSurface.angledSplitBias,this.view.state.fixedContentCamera?this._splitLimits.frustum=N(this._splitLimits.frustum??k(),t.frustum):this._splitLimits.frustum=null,N(this._frustum,e.frustum),w(this._viewProjectionMatrix,t.projectionMatrix,t.viewMatrix),D(this._eyePosRenderSR,t.eye),M(e.eye,this.view.renderSpatialReference,this._eyePosSurfaceSR,this.spatialReference)}_updateRenderData(e){e.rendered&&!e.shouldLoad&&(dt(e)?this._loadChildren(e):pt(e)&&this._loadParent(e))}_updateTileGeometryState(e){e.updateVisibility();this._renderer.updateTileGeometryState(e)&&this._markTileToUpdate(e),this._usedMemory=null}_markAllTileNeighborsForGeometryUpdate(e){e.forEachLoadedNeighbor((e=>this._pendingTilesToUpdate.add(e)))}_updateTileTexture(e,t){const i=e.resetPendingUpdate(Ge.TEXTURE_FADING)?Ge.TEXTURE_FADING:!!e.resetPendingUpdate(Ge.TEXTURE_NOFADING)&&Ge.TEXTURE_NOFADING;i&&(this._renderer.updateTileTexture(e,i),this._usedMemory=null,t.madeProgress())}_emitElevationUpdateEventForTiles(){if(!this._shouldEmitChangeEvent)return;const e=gt.extent;B(e),this._pendingTilesForElevationUpdateEvent.forEach((t=>V(e,t.extent,e))),this._pendingTilesForElevationUpdateEvent.clear(),gt.spatialReference=this.spatialReference,this.emit("elevation-change",gt),this._shouldEmitChangeEvent=!1}runTask(e){this._handleLayerViewChanges(e),this._frameTask.processQueue(e),this.renderer.processScaleRangeQueries(this._scaleRangeQueries,e),this._inFrameTask=!0,this._pendingUpdates=0,this._hasPendingUpdates=!1,this._updateAllTilesStatus(e),this._sortTiles(e);const t=!this.view.state.fixedContentCamera;this._mergeAndSplit(e,t),this._updateElevation(e),this._updateTextures(e),t||this._mergeAndSplit(e,!0),this._inFrameTask=!1,this._runViewChangeUpdateIfDirty(),this._updatePendingTileGeometries(),this._emitElevationUpdateEventForTiles(),e.done&&e.hasProgressed&&this.requestUpdate(),this.notifyChange("updatingProgressValue")}_updateAllTilesStatus(e){if(!this._viewChanged||!this._rootTiles||e.done)return;this._viewChanged=!1;const t=this._iteratorPool.acquire();t.reset(this._rootTiles);const i=this.snapLevel,r=this._splitLimits,s=this._eyePosRenderSR;for(;!t.done;){const e=t.next(),a=e.shouldSplit(r,s,i);if(a!==Ge.SPLIT){if(e.resetPendingUpdate(Ge.SPLIT)&&e.updateAgentSuspension(),a===Ge.ELEVATION&&e.updateAgents(ae.ELEVATION),t.skipSubtree(),!e.isLeaf){e.setPendingUpdate(Ge.MERGE),e.resetPendingUpdate(Ge.SPLIT);const t=this._iteratorPool.acquire();t.resetOne(e);const i=this._viewProjectionMatrix;for(let e=t.next();!t.done;e=t.next())this._updateClippingStatus(e),e.updateVisibility(),e.updateScreenDepth(i);t.remove()}}else e.resetPendingUpdate(Ge.MERGE),e.isLeaf&&(e.setPendingUpdate(Ge.SPLIT),t.skipSubtree()),e.rendered&&e.setPendingUpdate(Ge.RENDERDATA)}t.remove(),this.requestUpdate(),(this._shortBatches||!this._oneBatchPerFrameTask)&&this._updatePendingTileGeometries(),e.madeProgress()}_sortTiles(e){e.done||this._allTilesSorted||(Xe(this._allTiles,this.view.pointsOfInterest.focus.renderLocation),this._allTilesSorted=!0,this._treeDebugger&&this._treeDebugger.update(),e.madeProgress())}_markTileToUpdate(e){Se(e.isLoaded),e.intersectsClippingArea&&(this._pendingTilesToUpdate.add(e),this._markAllTileNeighborsForGeometryUpdate(e))}_updatePendingTileGeometries(){const e=this._pendingTilesToUpdate,t=Array.from(e.keys()).filter((e=>e.isLoaded&&e.intersectsClippingArea));if(0===t.length)return void e.clear();const i=(i,r)=>{!r?.isLoaded||!r.intersectsClippingArea||r.level<i.level||e.has(r)||(e.add(r),t.push(r),r.renderData.updateNeighborData())};t.sort(Qe);const r=t.length;for(let s=0;s<r;++s){const r=t[s];Se(r.isLoaded),Se(r.intersectsClippingArea);const a=r.renderData;a.updateNeighborData();const n=a._dirtyEdgeResolutions,l=a.geometryState.neighborData.cornerPeerNeighbors,o=e=>{const t=Ae[e];i(r,l[e]?.findCorner(Ie(t),(e=>e.isLoaded)))};for(let t=0;t<4;++t)if(n&1<<t){const s=a.geometryState.neighborData.edgePeerNeighbors[t];s&&s?.level>=r.level&&s.forAllSubtreeOnSide(we(Be[t]),(t=>!(!t.isLoaded||!t.intersectsClippingArea)&&(Se(e.has(t)||Qe(r,t)<0),i(r,t),!0))),o((t+1)%4),o(t)}}e.clear(),this._updateTilesGeometries(t),this._shouldEmitChangeEvent=!0,Ve&&Oe&&this.checkAllTilesWaterproofness()}_mergeAndSplit(e,t){if(this.suspended||e.done||!this._allTilesDirty)return;this._allTilesDirty=!1,this.requestUpdate();let i=!1;const r=this.view.state.fixedContentCamera;let s=!1;for(;!e.done;){s=!0;let a=!1;const n=!this._allTiles.some((s=>{if(!i&&!r&&!s.visible)return e.done;let n=s;if(s.resetPendingUpdate(Ge.MERGE)){if(!t)return s.setPendingUpdate(Ge.MERGE),e.done;for(;n.parent?.resetPendingUpdate(Ge.MERGE);)n=n.parent;this._mergeTile(n),a=!0,e.madeProgress()}else s.resetPendingUpdate(Ge.SPLIT)&&(this._splitTile(s),a=!0,e.madeProgress());return!e.done&&n===s&&s.resetPendingUpdate(Ge.RENDERDATA)&&(this._updateRenderData(s),e.madeProgress()),e.done}));if(a&&(this._allTilesSorted=!1,this._allTilesDirty=!0),n){if(!i){i=!0;continue}if(!a)break}else this._allTilesDirty=!0}s?e.madeProgress():this._allTilesDirty=!0,!this._oneBatchPerFrameTask&&this._updatePendingTileGeometries(),this._sortTiles(e)}_updateElevation(e){e.done||(this._allTiles.some((t=>(t.resetPendingUpdate(Ge.GEOMETRY)&&(this._updateTileGeometryState(t),this._updateTileTexture(t,e),this._shortBatches&&this._updatePendingTileGeometries(),e.madeProgress()),e.done))),!this._oneBatchPerFrameTask&&this._updatePendingTileGeometries())}_updateTextures(e){e.done||this._allTiles.some((t=>(this._updateTileTexture(t,e),e.done)))}_updateClippingExtent(){this.spatialReference&&(this.updateTileOverlayParams(tt.UPDATE),this.overlayManager.setPlacementDirty(),this._updateRootTiles())}get _lodBias(){const e=this.view.quality;return this.view.qualitySettings.tiledSurface.lodBias-(1-e)*me}_getLodBiasCorrectedScale(e){const t=this.tilingScheme.levels,i=l(e-this._lodBias,0,t.length-1),r=i-Math.floor(i);return t[Math.floor(i)].scale*(1-r)+t[Math.ceil(i)].scale*r}_removeAllTiles(){null!=this._rootTiles&&(this._rootTiles.forEach((e=>this._purgeTile(e))),this._setRootTiles(null),this.notifyChange("ready")),this._allTiles.clear(),this.renderer.visible=!1}_purgeDescendantTiles(e){if(!e.children[0])return!1;let t=!1;for(let i=0;i<4;++i)t=this._purgeTile(e.children[i])||t;return e.unsetChildren(),t}_purgeTile(e){const t=this._purgeDescendantTiles(e)||e.rendered;return this._allTiles.removeUnordered(e),this._unloadTile(e),this._tileCache.put(nt._tileMemcacheKey,e),t}_unloadTile(e){this._pendingTilesToUpdate.delete(e),this._pendingTilesForElevationUpdateEvent.delete(e),e.unload(this._renderer)}_splitTile(e){Ee(e.isLeaf,"tile that is already split should not be split again!");const t=e.level+1,i=2*e.lij[1],r=2*e.lij[2];e.setChildren(this._createTile(t,i,r,e),this._createTile(t,i,r+1,e),this._createTile(t,i+1,r,e),this._createTile(t,i+1,r+1,e)),e.setPendingUpdate(Ge.RENDERDATA),e.updateAgentSuspension(),this._allTiles.pushArray(e.children),this._allTilesDirty=!0,++this._performanceInfo.numSplit}_emitTileScaleChange(e,t=e.level){mt.spatialReference=this.spatialReference,mt.extent=e.extent,mt.scale=this._getLodBiasCorrectedScale(t),this.emit("scale-change",mt)}_createTile(e,t,i,r){Ee(!!r,"_createTile sanity check");const s=this._acquireTile(e,t,i,r);return s.updateClippingStatus(this.extent),s.updateScreenDepth(this._viewProjectionMatrix),this._shouldSplit(s)&&s.setPendingUpdate(Ge.SPLIT),s}get _shortBatches(){return this.view.state.mode!==it.IDLE}_mergeTile(e){Ee(!e.hasPendingUpdate(Ge.SPLIT),"_mergeTile sanity check"),this._purgeDescendantTiles(e)&&(Ee(!e.renderData,"_mergeTile sanity check"),this._loadTile(e),this._markTileToUpdate(e),this._emitTileScaleChange(e),this._shortBatches&&this._updatePendingTileGeometries()),this._allTilesDirty=!0,++this._performanceInfo.numMerged}_loadChildren(e){Ee(e.rendered,"parent should be rendered"),this._unloadTile(e);const t=e.children;t.forEach((e=>this._loadTile(e))),t.forEach((e=>this._pendingTilesToUpdate.add(e))),this._markAllTileNeighborsForGeometryUpdate(e),this._emitTileScaleChange(e,e.level+1),this._shortBatches&&this._updatePendingTileGeometries()}_loadParent(e){const t=e.parent;this._unloadChildren(t),this._loadTile(t),this._markTileToUpdate(t),this._emitTileScaleChange(t,t.level),this._shortBatches&&this._updatePendingTileGeometries()}_unloadChildren(e){const t=e.children;if(t[0])for(let i=0;i<4;++i){const e=t[i];this._unloadChildren(e),this._unloadTile(e)}}_loadTile(e){e.load(),e.setPendingUpdate(Ge.RENDERDATA),this.requestUpdate(),this._allTilesDirty=!0,this.overlayManager&&this.overlayManager.hasOverlays&&this.overlayManager.setTileParameters(e)}_elevationDataArrived(e,t,i){const r=new ee(e.lij,e.extent,i);e.dataArrived(t,ae.ELEVATION,r);const s=[e],a=e.level,n=this._iteratorPool.acquire();for(n.reset(s);!n.done;){const e=n.next();e.findElevationBoundsForLayer(t,a),e.computeElevationBounds()}0===a&&this._updateRootTileElevationBounds(),n.remove(),this._updateTilesVisibility(s)}_handleLayerViewChanges(e=at){if(!this._layerViewsDirty)return;this._layerViewsDirty=!1;let t=!1;const i=new Set;let r=-1;for(const s of this.view.allLayerViews.items)if(i.add(s.uid),Le(s)||De(s))if(this._basemapLayerViewHandles.has(s.uid)&&!De(s)){const e=this._layerClassFromLayerView(s),i=this._getLayerIdxByUID(e,s.uid);null!=i&&((i<r||null==r)&&(t=!0),r=i)}else this._registerTiledLayerView(s),s.layer.loaded&&(t=!0);this._basemapLayerViewHandles.forEach(((e,r)=>{i.has(r)||(this._unregisterTiledLayerView(r),t=!0)})),t&&this._updateTiledLayers(),this.hasCompositeBlendMode=this._hasCompositeBlendMode(),this._evaluateTransparency(),e.madeProgress()}_allSurfaceLayersTransparent(){let e=0===this.view.map?.ground?.opacity;for(const t of this.view.allLayerViews.items)if(Pe(t)&&!H(t.layer)&&0!==t.fullOpacity)return e=!1,e;return e}_hasCompositeBlendMode(){for(const e of this.view.allLayerViews.items)if((xe(e)||De(e))&&Je(Ze[e.layer.blendMode]))return!0;return!1}_layerClassFromLayerView(e){return Re(e)?ae.ELEVATION:ae.MAP}_registerTiledLayerView(e){const t=[];if((xe(e)||De(e))&&t.push(T((()=>e.layer.blendMode),(()=>{this.hasCompositeBlendMode=this._hasCompositeBlendMode(),this._updateTileTextures(se.UNFADED)}))),!De(e)){const i=this._layerClassFromLayerView(e);t.push(T((()=>e.suspended),(()=>this._updateTiledLayers()))),t.push(T((()=>e.fullOpacity),(()=>this._updateTileTextures(se.UNFADED)))),t.push(T((()=>"effectiveScaleRange"in e.layer?e.layer.effectiveScaleRange:null),(()=>this._restartAllAgents(i)))),t.push(e.on("data-changed",(()=>{const t=this._getLayerIdxByUID(i,e.uid);null!=t&&this._invalidateLayerData(t,i)})))}this._unregisterTiledLayerView(e.uid),this._basemapLayerViewHandles.set(e.uid,t)}_unregisterTiledLayerView(e){const t=this._basemapLayerViewHandles.get(e);if(t){for(const e of t)e.remove();this._basemapLayerViewHandles.delete(e)}}_updateTiledLayers(){if(!this.tilingScheme||this.view.suspended)return;const e=this.view.allLayerViews,t=[[],[]];let i=null;e.forEach((e=>{if(!e.layer||e.suspended||!Le(e)||!e.fullExtent)return;const r=this._layerClassFromLayerView(e);if(r===ae.MAP){const t=e.displayLevelRange.maxLevel;t!==1/0&&(null===i||t>i)&&(i=t)}t[r].push(e)}));for(const r of ne){const e=this._layerViews[r],i=t[r];i.reverse();const s=i.length;let a=e.length!==s;const n=new Array(s),l=new Array(e.length);this._layerIndexByUid[r].clear();for(let t=0;t<s;t++){const s=i[t].uid;this._layerIndexByUid[r].set(s,t);const o=e.indexOf(i[t]);n[t]=o,t!==o&&(a=!0),o>-1&&(l[o]=t)}if(a){const e=this._postorderIterator;for(e.reset(this._rootTiles);!e.done;)e.next().modifyLayers(l,n,r);this._layerViews[r]=i,this._restartAllAgents(r),this._updateTilesVisibility(this._rootTiles)}}this.tilingScheme.ensureMaxLod(i)&&this._viewChangeUpdate()}_restartAllAgents(e){const t=this._postorderIterator;for(t.reset(this._rootTiles);!t.done;){const i=t.next();i.restartAgents(e),e===ae.ELEVATION&&i.computeElevationBounds()}this._updateRootTileElevationBounds()}layerViewByIndex(e,t){return this._layerViews[t][e]}numLayers(e){return this._layerViews[e].length}_updateTileTextures(e){this._allTiles.forAll((t=>{t.updateAgents(ae.MAP),e===se.IMMEDIATE?this.renderer.updateTileTexture(t,Ge.TEXTURE_NOFADING):t.updateRenderData(ae.MAP,e)})),this._evaluateTransparency()}_invalidateLayerData(e,t){this._allTiles.forAll((i=>i.removeLayerAgent(e,t))),this._allTiles.forAll((i=>i.invalidateLayerData(e,t)))}setTileTreeDirty(){this._allTilesDirty=!0}requestRender(e=tt.UPDATE){this.renderer.setNeedsRender(e)}requestUpdate(){1==++this._pendingUpdates&&(this._hasPendingUpdates=!0)}requestTileData(e,t,i,r){const s=this.layerViewByIndex(t,i),a=s.layer;return!a.tilemapCache||Ce(s)?this._requestTileData(e,i,s,r):(++this._asyncWorkItems,a.tilemapCache.fetchAvailability(e.lij[0],e.lij[1],e.lij[2],{...r,timeout:6e3}).then((()=>--this._asyncWorkItems)).catch((t=>{throw--this._asyncWorkItems,c(r),_(t)||this._dataMissing(e,i,s,{notInTilemap:!0}),t})).then((()=>this._frameTask.schedule((()=>this._requestTileData(e,i,s,r)),r.signal))))}_requestTileData(e,t,i,r){return t===ae.ELEVATION?Re(i)?this._requestElevationTileData(e,i,r):Promise.reject():Pe(i)?this._requestMapTileData(e,i,r):Promise.reject()}_requestElevationTileData(e,t,i){++this._asyncWorkItems;const r=r=>{if(g(i))return;const s=this._layerIndexByUid[ae.ELEVATION].get(t.uid);null!=s?(this._usedMemory=null,this.requestUpdate(),this._elevationDataArrived(e,s,r)):n.getLogger(this).warn("TerrainSurface: received data from unknown layer %d %s",ae.ELEVATION,e.lij.toString())},s=i=>{_(i)||(this._dataMissing(e,ae.ELEVATION,t,i),this.requestUpdate())};if(be(t.layer))return t.layer.fetchTile(e.lij[0],e.lij[1],e.lij[2],{noDataValue:Te,signal:i.signal}).then((e=>{if(!g(i))return this._frameTask.schedule((()=>r(e)),i.signal,s);n.getLogger(this).warnOnce("A call to fetchTile resolved even though the request was aborted. fetchTile should not resolve if options.signal.aborted is true.")}),s).finally((()=>{--this._asyncWorkItems}));const a=t.getTileUrl(e.lij[0],e.lij[1],e.lij[2]);return this._elevationDataRequester.request(a,"binary",i).then((e=>this._lercDecoder.decode(e,{noDataValue:Te},i.signal))).then((e=>{e?r(new W(e)):s(new Error("LERC decoding failed"))}),s).finally((()=>{--this._asyncWorkItems}))}_requestMapTileData(e,t,i){++this._asyncWorkItems;const r=(r,s)=>{--this._asyncWorkItems,je(s),g(i)||(this._dataMissing(e,ae.MAP,t,r),this.requestUpdate())},s=e=>t=>r(t,e),a=r=>this._frameTask.schedule((()=>{--this._asyncWorkItems,this.requestUpdate(),g(i)?je(r):this._mapTileDataArrived(e,t,r)}),i.signal,s(r)).catch(s(r)),l=(e,t=null)=>this._frameTask.schedule((()=>r(e,t)));if(Ce(t)){const r=t.schemaHelper.getLevelRowColumn(e.lij);return t.fetchTile(r[0],r[1],r[2],i).then(a,l)}if(Ue(t))return t.fetchTile(e.lij[0],e.lij[1],e.lij[2],i).then(a,l);if(Me(t)&&be(t.layer))return t.layer.fetchTile(e.lij[0],e.lij[1],e.lij[2],i).then((e=>{if(g(i))return n.getLogger(this).warnOnce("A call to fetchTile resolved even though the request was aborted. fetchTile should not resolve if options.signal.aborted is true."),void l(m());a(e)}),l);let o=t.getTileUrl(e.lij[0],e.lij[1],e.lij[2]);F(t.layer)&&t.layer.refreshTimestamp&&(o+=`${o.includes("?")?"&":"?"}_ts=${t.layer.refreshTimestamp}`);const h=t.hasMixedImageFormats?"image+type":"image";return this._mapDataRequester.request(o,h,i).then(a,l)}_mapTileDataArrived(e,t,i){const r=this._getLayerIdxByUID(ae.MAP,t.uid);null!=r?e.dataArrived(r,ae.MAP,i):(je(i),n.getLogger(this).warn("TerrainSurface: received data from unknown layer"))}_getLayerIdxByUID(e,t){return this._layerIndexByUid[e].get(t)}_dataMissing(e,t,i,r){const s=this._getLayerIdxByUID(t,i.uid);null!=s?e.dataMissing(s,t,r):n.getLogger(this).warn("TerrainSurface: received data from unknown layer")}updateTileOverlayParams(e){this._rootTiles&&this.overlayManager&&(this._allTiles.forAll((e=>{e.renderData&&this.overlayManager.setTileParameters(e)})),this._renderer.setNeedsRender(e))}get performanceInfo(){const e=this._performanceInfo;return e.numNodes=this._allTiles.length,e.numLeaves=e.numVisible=e.numRendered=e.numLoadedPerLevel.length=e.numRenderedPerLevel.length=0,this._allTiles.forAll((t=>{t.isLeaf&&e.numLeaves++;const i=t.level;t.renderData&&(e.numLoadedPerLevel[i]=(e.numLoadedPerLevel[i]||0)+1),t.visible&&(e.numVisible++,t.rendered&&(e.numRenderedPerLevel[i]=(e.numRenderedPerLevel[i]||0)+1,e.numRendered++))})),e}get usedMemory(){return this.tilingScheme?(null==this._usedMemory&&(this._usedMemory=this._recalculateUsedMemory()),this._usedMemory??0):0}_recalculateUsedMemory(){return this.tilingScheme?Math.round(this._allTiles.reduce(((e,t)=>e+t.usedMemory),0)):null}getUsedMemoryForLayerView(e){let t=0;const i=this._layerClassFromLayerView(e),r=this._getLayerIdxByUID(i,e.uid);return null!=r&&this._allTiles.forAll((e=>t+=e.getUsedMemoryForLayer(i,r))),t}getTile(e){if(null==e||null==this._rootTiles)return null;const t=e.split("/").map((e=>+e));if(0===t[0])return this._rootTiles.find((e=>e.lij[1]===t[1]&&e.lij[2]===t[2]));const i=2**t[0],r=Math.floor(t[1]/i),s=Math.floor(t[2]/i);let a;if(this._rootTiles.some((e=>e.lij[1]===r&&e.lij[2]===s&&(a=e,!0))),a){let e=1<<t[0]-1;for(;a.lij[0]<t[0];){let i=t[1]&e?2:0;if((t[2]&e)>0&&i++,!a.children[i])return null;a=a.children[i],e>>=1}return Ee(a.lij[0]===t[0]&&a.lij[1]===t[1]&&a.lij[2]===t[2],"not the right tile?"),a}return null}get renderPatchBorders(){return this._renderer.renderPatchBorders}set renderPatchBorders(e){this._renderer.renderPatchBorders=e}get visualizeNormals(){return this._renderer.visualizeNormals}set visualizeNormals(e){this._renderer.visualizeNormals=e}get renderingDisabled(){return this._renderer.renderingDisabled}set renderingDisabled(e){this._renderer.renderingDisabled=e}get test(){const e=this;return{renderer:e._renderer,lercDecoder:e._lercDecoder,forceReload:()=>{null!=e._rootTiles&&e._rootTiles.length>0&&(e._mergeTile(e._rootTiles[0]),e._viewChangeUpdate())},getTiles:()=>e._allTiles.toArray(),getRenderedTiles(){_t.clear(),e._allTiles.forAll((e=>{e.visible&&e.rendered&&_t.push(e)}));const t=_t.toArray();return Ye(e.renderOrder,t),t},lockTilingScheme(t,i){e._extentHelper.defaultTiledLayersExtent=i,e.tilingSchemeLogic.test.lockTilingScheme(t)}}}checkAllTilesWaterproofness(){if(!Oe)return;const e=this._rootTiles;if(null==e)return;const t=e=>e?.renderData?.geometry?.indices?.length>0,i=(e,i)=>{t(e)&&console.error("Tile[",e.lij,"] has geometry although parent[",i.lij,"] has geom")},r=e=>{if(e.intersectsClippingArea)if(e.renderData&&!e.renderData.geometryState&&console.error("Tile[",e.lij,"] has renderData but not geometryState"),e.renderData&&!e.renderData.geometry&&console.error("Tile[",e.lij,"] has renderData but not geometryInfo"),!e.renderData?.geometry||(e.renderData.geometry.indices?.length??0)>0||console.error("Tile[",e.lij,"] has renderData but no indices - geometryInfo: ",e.renderData.geometry),t(e)){e.checkGeometryWaterproofness();for(const t of e.children)i(t,e)}else if(e.isLeaf)console.error("Tile[",e.lij,"] has no geometry and no children, from root to leaf");else for(const t of e.children)r(t)},s=e=>{const t=e.parent?.visible??!0,i=e.visible;e.computeVisibility();const r=e.visible;if(i!==r&&t&&console.error(" Tile[",e.lij,"] has out of date visibility: ",i," instead of ",r),!e.isLeaf)for(const a of e.children)s(a)};for(const a of e)r(a),s(a)}get isGlobal(){return this._isGlobal}get isWebMercator(){return this._isWebMercator}get isWebMercatorOnPlateeCarree(){return this._isWebMercatorOnPlateeCarree}isEastEndWrap(e){return this.isGlobal&&e[2]===this.lijEastEnd(e[0])-1}isWestEndWrap(e){return this.isGlobal&&0===e[2]}lijEastEnd(e){return 2**(e+(null!=this.spatialReference&&this.spatialReference.isGeographic?1:0))}wrapEastWest(e){const t=this.lijEastEnd(e[0]),i=e[2];if(0<=i&&i<t)return e;if(!this.isGlobal)return null;const r=(i+(i<0?t:0))%t;return[e[0],e[1],r]}enableInternalChecks(e){ke(e)}enableWaterproofnessChecks(e){Ne(e)}};lt._tileMemcacheKey="TerrainTileMemcache",e([E()],lt.prototype,"_renderer",void 0),e([E({constructOnly:!0})],lt.prototype,"_scaleRangeQueries",void 0),e([E({constructOnly:!0})],lt.prototype,"view",void 0),e([E({constructOnly:!0})],lt.prototype,"overlayManager",void 0),e([E()],lt.prototype,"_hasPendingUpdates",void 0),e([E()],lt.prototype,"_asyncWorkItems",void 0),e([E()],lt.prototype,"_allTilesDirty",void 0),e([E()],lt.prototype,"_allTilesSorted",void 0),e([E()],lt.prototype,"_viewChanged",void 0),e([E()],lt.prototype,"_splitLimits",void 0),e([E({readOnly:!0})],lt.prototype,"_watchUpdatingTracking",void 0),e([E()],lt.prototype,"_frameTask",void 0),e([E({readOnly:!0})],lt.prototype,"snapLevel",null),e([E({readOnly:!0})],lt.prototype,"lodSnapping",null),e([E()],lt.prototype,"_userClippingExtent",null),e([E()],lt.prototype,"_rootTilesExtent",void 0),e([E({readOnly:!0})],lt.prototype,"extent",null),e([E({readOnly:!0})],lt.prototype,"groundExtent",null),e([E({readOnly:!0})],lt.prototype,"_tilingSchemeExtent",null),e([E({readOnly:!0})],lt.prototype,"updating",null),e([E({readOnly:!0})],lt.prototype,"running",null),e([E(J)],lt.prototype,"updatingProgress",void 0),e([E({readOnly:!0})],lt.prototype,"updatingProgressValue",null),e([E()],lt.prototype,"_maxNumUpdating",void 0),e([E()],lt.prototype,"baseOpacity",null),e([E()],lt.prototype,"hasCompositeBlendMode",void 0),e([E({readOnly:!0})],lt.prototype,"viewingMode",null),e([E()],lt.prototype,"maxTextureScale",void 0),e([E({readOnly:!0})],lt.prototype,"ready",null),e([E({value:he.FRONT_TO_BACK})],lt.prototype,"renderOrder",null),e([E({readOnly:!0})],lt.prototype,"rootTiles",null),e([E()],lt.prototype,"_rootTiles",void 0),e([E({readOnly:!0})],lt.prototype,"spatialReference",null),e([E({type:t})],lt.prototype,"backgroundColor",null),e([E({value:!1})],lt.prototype,"slicePlaneEnabled",null),e([E({readOnly:!0})],lt.prototype,"tilingScheme",void 0),e([E({readOnly:!0})],lt.prototype,"tilingSchemeLocked",null),e([E({readOnly:!0})],lt.prototype,"tilingSchemeLogic",void 0),e([E()],lt.prototype,"wireframe",null),e([E({value:!1})],lt.prototype,"suspended",null),e([E()],lt.prototype,"textureFadeDuration",null),e([E()],lt.prototype,"visibleElevationBounds",void 0),e([E()],lt.prototype,"rootTileElevationBounds",void 0),e([E()],lt.prototype,"_layerViewsDirty",void 0),e([E()],lt.prototype,"renderPatchBorders",null),e([E()],lt.prototype,"visualizeNormals",null),e([E()],lt.prototype,"renderingDisabled",null),lt=nt=e([S("esri.views.3d.terrain.TerrainSurface")],lt);const ot=lt;function ht(e,t){return e[0]===t[0]&&e[1]===t[1]&&e[2]===t[2]}function dt(e){const t=e.children;if(!t[0])return!1;for(const i of t)if(i.shouldLoad)return!0;for(const i of t)if(dt(i))return!0;return!1}function pt(e){return e.isLeaf&&(e.parent?.shouldLoad??!1)}const ut=x(),ct=j(),_t=new u,gt={spatialReference:null,extent:j(),context:"ground"},mt={spatialReference:null,extent:null,scale:0};function Tt(e,t,i){for(const r of e){if(!r.containsPointXY(t,i))continue;let e=r;for(;e&&!e.renderData;){const r=(t>e.extentMidX?1:0)+(i<e.extentMidY?2:0);e=e.children[r]}const s=e?.renderData?.geometryState.samplerData??null;return te(t,i,s)}return null}export{ot as default};
|
package/views/3d/terrain/Tile.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.28/esri/copyright.txt for details.
|
|
4
4
|
*/
|
|
5
|
-
import{clamp as e}from"../../../core/mathUtils.js";import{abortMaybe as t}from"../../../core/maybe.js";import i from"../../../core/ObjectPool.js";import{j as s,s as n}from"../../../chunks/vec2.js";import{a as r}from"../../../chunks/vec2f64.js";import{f as a,m as o,j as l,i as h,g as u,l as d,c}from"../../../chunks/vec3.js";import{c as g,u as p}from"../../../chunks/vec3f64.js";import{g as f}from"../../../chunks/common.js";import{getReferenceEllipsoid as m}from"../../../geometry/ellipsoidUtils.js";import{create as _,equals as y}from"../../../geometry/support/aaBoundingRect.js";import{c as A}from"../../../chunks/sphere.js";import{isGroupLayer as T}from"../../../layers/support/layerUtils.js";import{VectorTile as E}from"../../2d/engine/vectorTiles/VectorTile.js";import{ImageWithType as v}from"../support/StreamDataLoader.js";import{ElevationBounds as I}from"./ElevationBounds.js";import{ElevationTileAgent as M}from"./ElevationTileAgent.js";import{TextureUpdate as D}from"./interfaces.js";import{TileFrustumVisibility as L,NeighborIndex as x}from"./ITile.js";import{LayerClasses as S,LayerClass as O}from"./LayerClass.js";import{MapTileAgent as j}from"./MapTileAgent.js";import{RasterTile as N}from"./RasterTile.js";import{maxPatchTesselation as U,getElevationDesiredResolutionLevel as b}from"./TerrainConst.js";import{weakAssert as C,getLayerWithExtentRange as P,isBlendableLayerView as B,oppositeCorner as R,internalAssert as V,enableTerrainInternalChecks as w,neighborEdgeIndices as G,oppositeEdge as W,neighborCornerIndices as q,isNorth as F,isSouth as H,isWest as k,isEast as X,enableWaterproofnessTests as Y,almostEquals as z,isWestCorner as $,isNorthCorner as J}from"./terrainUtils.js";import{tileAgentDone as Q}from"./TileAgent.js";import{TilePerLayerInfo as K}from"./TilePerLayerInfo.js";import Z from"./TileTexture.js";import{TileUpdate as ee}from"./TileUpdate.js";import{fallsWithinLayer as te}from"./tileUtils.js";const ie=.1;class se{constructor(){this.lij=[0,0,0],this._children=[null,null,null,null],this._pendingUpdates=0,this.renderData=null,this._dirty=!0,this._previouslyRendered=!1,this.extent=_(),this._elevationBounds=r(),this.layerInfo=[[],[]],this.extentInRadians=_(),this.centerAtSeaLevel=g(),this._center=[g(),A(),g()],this.up=p(),this._isWithinClippingArea=!0,this._intersectsClippingArea=!0,this._maxTesselation=0,this._usedMemory=null,this._mapTileMemoryInternal=0,this._mapDataRefCount=0,this.screenDepth=0,this.renderOrder=0,this._edgeLen=0,this._edgeLen2=0,this._curvatureHeight=0,this.extentMidX=0,this.extentMidY=0,this.distanceToPOI=-1,this._lastPOI=g()}static prune(){ae.prune(0),oe.prune(0),K.prune()}get _isCached(){return!this.shouldLoad&&this._mapDataRefCount<=0}get maxTesselation(){return this._maxTesselation}get isWithinClippingArea(){return this._isWithinClippingArea}get intersectsClippingArea(){return this._intersectsClippingArea}get clippingArea(){return this._clippingArea}get parent(){return this._parent}get children(){return this._children}get surface(){return this._surface}get elevationBounds(){return this._elevationBounds}get level(){return this.lij[0]}get key(){return`${this.lij[0]}/${this.lij[1]}/${this.lij[2]}`}get edgeLen(){return this._edgeLen}get radius(){return this._center[he.MIDDLE][3]}get visible(){return this._dirty&&this.computeVisibility(),this._visible}get frustumVisibility(){return this._dirty&&this.computeVisibility(),this._frustumVisibility}computeVisibility(){this._dirty=!1;const e=this.parent,t=e?.frustumVisibility??L.INTERSECTS;this._frustumVisibility=t===L.INSIDE?L.INSIDE:t===L.OUTSIDE?L.OUTSIDE:this._calculateFrustumVisibilityStatus(this.surface.frustum);const i=this._frustumVisibility!==L.OUTSIDE&&this._intersectsClippingArea;i!==this._visible&&(this._visible=i,this._surface.emit("tiles-visibility-changed"),this._surface.renderer.setDirty(),this.updateAgentSuspension())}get loadable(){return this.visible||this._surface.view.state.fixedContentCamera}get rendered(){const e=!!this.renderData;return e!==this._previouslyRendered&&(this._surface.emit("tiles-visibility-changed"),this._previouslyRendered=e,this._surface.renderer.setDirty()),e}get shouldLoad(){return this.isLeaf}init(e,t,i,r,a){this.lij[0]=e,this.lij[1]=t,this.lij[2]=i,this.ellipsoid=m(a.tilingScheme.spatialReference),a.tilingScheme.getExtent(e,t,i,this.extent),a.tilingScheme.convertExtentToRadians(this.extent,this.extentInRadians),this.extentMidX=.5*(this.extent[0]+this.extent[2]),this.extentMidY=.5*(this.extent[1]+this.extent[3]),this._isWithinClippingArea=!0,this._intersectsClippingArea=!0,this._clippingArea=null,this._mapDataRefCount=0,a.upsampleMapCache.pop(this.key),this._edgeLen=0,this._edgeLen2=0,this._center[he.MIDDLE][3]=0,this.elevationLevel=e,r&&r.elevationBounds?s(this._elevationBounds,r.elevationBounds):n(this._elevationBounds,0,0),this._pendingUpdates=0,this.renderData=null,this.screenDepth=0,this._visible=!1,this._previouslyRendered=!1,this._parent=r,this.unsetChildren(),this._surface=a,this.updateVisibility();for(const s of S){const e=a.numLayers(s),t=this.layerInfo[s];for(const i of t)i.release();t.length=e;for(let i=0;i<e;i++)t[i]=K.acquire(this._surface.upsampleInfoPool),s===O.ELEVATION&&this.findElevationBoundsForLayer(i,-1)}this.computeElevationBounds(),this._maxTesselation=Math.min(a.tilingScheme.pixelSize,U)}dispose(){C(!this.renderData,"tile.renderData was not unloaded"),this._surface.upsampleMapCache.pop(this.key);for(const e of S){for(const t of this.layerInfo[e])t.release();this.layerInfo[e].length=0}this._parent=null;for(let e=0;e<4;++e)this._children[e]=null;this._surface=null,this.setMemoryDirty()}refMapData(){++this._mapDataRefCount,this._isCached||this._surface.upsampleMapCache.pop(this.key)}unrefMapData(){if(--this._mapDataRefCount,this._isCached){this.setMemoryDirty();const e=this._cachedMemory;e>0&&this._surface.upsampleMapCache.put(this.key,this,e)}}setMemoryDirty(){this._usedMemory=null}get usedMemory(){return this._ensureUsedMemory()+(this._isCached?0:this._mapTileMemoryInternal)}get _cachedMemory(){return this._isCached?this._mapTileMemory:0}get _mapTileMemory(){return this._ensureUsedMemory(),this.layerInfo[O.MAP].reduce(((e,t)=>e+(t instanceof E?t.memoryUsed/t.referenced:0)),this._mapTileMemoryInternal)}get _cpuImageMemorySize(){const e=4,t=this._surface.tilingScheme.pixelSize;return t*t*e}_ensureUsedMemory(){if(null!=this._usedMemory)return this._usedMemory;this._usedMemory=0,this._mapTileMemoryInternal=0;let e=0;for(const{data:i}of this.layerInfo[O.MAP])i instanceof E?e+=this._getTerrainDataMemory(i):this._mapTileMemoryInternal+=this._getTerrainDataMemory(i);const t=this._cpuImageMemorySize;for(const i of this.layerInfo[O.ELEVATION])this._usedMemory+=i.data?t:0;return this.renderData&&(this._usedMemory+=this.renderData.estimatedGeometryMemoryUsage,this._mapTileMemoryInternal+=this.renderData.texture?.memoryUsage??0),this._isCached&&this._surface.upsampleMapCache.updateSize(this.key,this,this._mapTileMemoryInternal+e),this._usedMemory}getUsedMemoryForLayer(e,t){const i=this.layerInfo[e][t];return i?.data?e===O.MAP?this._isCached?0:this._getTerrainDataMemory(i.data):e===O.ELEVATION?this._cpuImageMemorySize:0:0}_getTerrainDataMemory(e){return e instanceof Z?e.texture.gpuMemoryUsage:e instanceof HTMLImageElement||e instanceof v?this._cpuImageMemorySize:e instanceof N?e.memoryUsage:e instanceof E?e.memoryUsed/e.referenced:0}updateScreenDepth(e){const t=this._center[he.MIDDLE],i=e,s=t[0],n=t[1],r=t[2],a=i[2]*s+i[6]*n+i[10]*r+i[14];this.screenDepth=a<0?0:a/(i[3]*s+i[7]*n+i[11]*r+i[15])}shouldSplit(e,t,i){if(!this.visible)return ee.NONE;if(e.frustum&&(!this._intersectsClippingArea||this._calculateFrustumVisibilityStatus(e.frustum)===L.OUTSIDE))return ee.NONE;const s=this.level;a(me,this._center[he.MIDDLE],t);let n=o(me),r=me,c=he.MIDDLE;a(_e,this._center[he.TOP],t);const g=o(_e);g<n&&(n=g,r=_e,c=he.TOP),a(ye,this._center[he.BOTTOM],t);const p=o(ye);if(p<n&&(n=p,r=ye,c=he.BOTTOM),this._edgeLen2>n&&s<e.maxLod)return ee.SPLIT;const f=null!=i?i-s:1/0,m=Math.sqrt(n),_=e.fovX*m*2,y=this._edgeLen/_,A=()=>{if(s<e.maxLod)return this.elevationLevel=s,ee.NONE;const t=s+Math.ceil(-Math.log2(e.relativeWidthLimit/y));return t!==this.elevationLevel?(this.elevationLevel=t,ee.ELEVATION):ee.NONE};if(f<=.5)return A();const T=l(this.up,me),E=this._elevationBounds[1]-this._elevationBounds[0],v=E/this.edgeLen;if(e.aboveGround&&T>0&&v<.001){if(T/m-Math.sin(this._curvatureHeight/(this.edgeLen*Math.SQRT1_2)*Math.PI)-v>0)return ee.NONE}const I=null!=i?3-Math.min(f,2):1;if(y*I<e.relativeWidthLimit||s>=e.maxLod)return A();if(s<7)return ee.SPLIT;h(Ae,this.up,T),a(Ae,Ae,r);const M=o(Ae);if(M<=this.radius*this.radius)return ee.SPLIT;h(Ae,Ae,this.radius/Math.sqrt(M)),u(Ae,Ae,this._center[c]),a(Ae,t,Ae);const D=Math.min(1,(Math.abs(l(Ae,this.up))+.5*E+this._curvatureHeight)/d(Ae)),x=ie/e.angledSplitBias,S=e.fovY*m*2;return D*(this._edgeLen/S*I)<x*e.relativeHeightLimit?ee.NONE:ee.SPLIT}setChildren(e,t,i,s){C(!!(e&&t&&i&&s),"Null child passed"),this._children[0]=e,this._children[1]=t,this._children[2]=i,this._children[3]=s}unsetChildren(){this._children[0]=null,this._children[1]=null,this._children[2]=null,this._children[3]=null}get isLoaded(){return this.renderData?.hasGeometry??!1}load(){this.refMapData();for(const e of S)this._createOrUpdateAgents(0,e);this.surface.renderer.loadTile(this)}unload(e){e.unloadTile(this);for(const t of S){const e=this.layerInfo[t];for(const t of e)t.loadingAgent&&t.loadingAgent!==Q&&(re(t.loadingAgent),t.loadingAgent=null),t.pendingUpdates=0}this.resetPendingUpdate(ee.GEOMETRY),this.resetPendingUpdate(ee.TEXTURE_NOFADING),this.resetPendingUpdate(ee.TEXTURE_FADING),this.unrefMapData()}unloadMapData(){const e=this.layerInfo[O.MAP];for(const t of e)t.loadingAgent&&t.loadingAgent!==Q&&(re(t.loadingAgent),t.loadingAgent=null),t.pendingUpdates=0;this.renderData&&this.renderData.releaseTexture(),this.setMemoryDirty()}updateClippingStatus(e){if(y(e,this._clippingArea))return!1;const t=this._intersectsClippingArea,i=this._isWithinClippingArea;null!=e?(this._intersectsClippingArea=this.intersectsExtent(e),this._isWithinClippingArea=this._isWithinExtent(e)):(this._intersectsClippingArea=!0,this._isWithinClippingArea=!0),this._clippingArea=e,this.updateVisibility();const s=i&&this._isWithinClippingArea,n=!(i||t||this._isWithinClippingArea||this._intersectsClippingArea);return!this.renderData||s||n||this.setPendingUpdate(ee.GEOMETRY),!0}updateVisibility(){this._dirty=!0,this._surface.setTileTreeDirty()}getLayerInfo(e,t){return this.layerInfo[t][e]}hasLayerData(e,t){const i=this.layerInfo[t][e];return!(!i?.data||i.dataInvalidated)}get updating(){if(this.hasPendingUpdates)return!0;for(const e of S){const t=this.layerInfo[e];for(const e of t)if(e.loadingAgent&&e.loadingAgent!==Q&&e.loadingAgent.updating)return!0}return!1}_isSuspended(e){return!!this.hasPendingUpdate(ee.SPLIT)||e!==O.ELEVATION&&!this.loadable}get hasPendingUpdates(){return 0!==this._pendingUpdates}hasPendingUpdate(e){return(this._pendingUpdates&e)===e}setPendingUpdate(e){this._pendingUpdates|=e,e===ee.SPLIT||e===ee.MERGE?this._surface.setTileTreeDirty():this._surface.requestUpdate()}resetPendingUpdate(e){return!!this.hasPendingUpdate(e)&&(this._pendingUpdates&=~e,!0)}requestLayerData(e,i,s){const n=this.layerInfo[i][e];if(n.waitingAgents.has(s))return console.warn("agent already requested this piece of map data (tile %s, agent tile %s, layer: %d/%d)",this.lij.toString(),s.tile.lij.toString(),i,e),!0;if(n.waitingAgents.push(s),n.data&&!n.dataInvalidated){console.warn("agent requested existing data (tile %s, agent tile %s, layer: %d/%d)",this.lij.toString(),s.tile.lij.toString(),i,e);const t=n.data&&"type"in n.data&&"vector-tile"===n.data.type;return s.dataArrived(this,t),!0}if(n.requestPromise)return!0;t(n.requestAbort),n.requestAbort=new AbortController;const r=this._surface.requestTileData(this,e,i,n.requestAbort);if(!r)return n.requestAbort=null,!1;const a=()=>{n.requestPromise===r&&(n.requestPromise=null,n.requestAbort=null)};return n.requestPromise=r,r.then(a,a),!0}get isLeaf(){return null==this._children[0]}hasLij(e){return this.lij[0]===e[0]&&this.lij[1]===e[1]&&this.lij[2]===e[2]}findByLij(e){if(this.hasLij(e))return this;const t=this._children;if(!t[0])return null;return t[0].findByLij(e)||t[1].findByLij(e)||t[2].findByLij(e)||t[3].findByLij(e)}distanceToSquared(e){return o(a(Ae,this._center[he.MIDDLE],e))}containsPoint(e){const t=this.extent;return e[0]>=t[0]&&e[1]>=t[1]&&e[0]<=t[2]&&e[1]<=t[3]}containsPointXY(e,t){const i=this.extent;return e>=i[0]&&t>=i[1]&&e<=i[2]&&t<=i[3]}unrequestLayerData(e,t,i){const s=this.layerInfo[t][e],n=s.waitingAgents,r=null!=n.removeUnordered(i);C(r,"agent has not requested this piece of map data"),n.length<1&&(s.abortRequest(),this.setMemoryDirty())}dataArrived(e,t,i){const s=null!=i&&"type"in i&&"vector-tile"===i.type,n=this.layerInfo[t][e];n.data=i,n.dataInvalidated=!1,n.waitingAgents.forAll((e=>e.dataArrived(this,s))),n.waitingAgents.clear(),this.setMemoryDirty()}dataMissing(e,t,i){i.notInTilemap||console.error(`Tile ${this.lij.toString()} layer ${t}/${e} error ${i}`);const s=this.layerInfo[t][e];s.dataMissing=!0,s.waitingAgents.forAll((e=>e.dataMissing())),s.waitingAgents.clear(),this.setMemoryDirty()}updateRenderData(e,t,i){switch(i&&this.forEachLoadedNeighbor((i=>i.updateRenderData(e,t))),e){case O.MAP:return this._updateTexture(t);case O.ELEVATION:return this._updateGeometry()}}_updateTexture(e){this.renderData&&(this.resetPendingUpdate(e===D.FADING?ee.TEXTURE_NOFADING:ee.TEXTURE_FADING),this.setPendingUpdate(e===D.FADING?ee.TEXTURE_FADING:ee.TEXTURE_NOFADING))}_updateGeometry(){this.setPendingUpdate(ee.GEOMETRY);for(const e of this.layerInfo[O.ELEVATION])e.pendingUpdates|=ee.GEOMETRY}invalidateLayerData(e,t){this.layerInfo[t][e].invalidateSourceData(),this.restartAgents(t)}computeElevationBounds(){const e=this._elevationBounds,t=e[0],i=e[1];n(e,1/0,-1/0);const s=this.layerInfo[O.ELEVATION];let r=!0;for(const n of s)null!=n.elevationBounds&&(e[0]=Math.min(e[0],n.elevationBounds.min),e[1]=Math.max(e[1],n.elevationBounds.max),n.elevationBounds.hasNoDataValues||(r=!1));r&&(e[0]=Math.min(e[0],0),e[1]=Math.max(e[1],0)),t===e[0]&&i===e[1]||(this.updateRadiusAndCenter(),this._surface.setTileTreeDirty())}_updateCenter(){const e=this._elevationBounds,t=.5*(e[0]+e[1]),i=this._center;h(Ae,this.up,t),u(i[he.MIDDLE],this.centerAtSeaLevel,Ae),h(Ae,this.up,e[0]),u(i[he.TOP],this.centerAtSeaLevel,Ae),h(Ae,this.up,e[1]),u(i[he.BOTTOM],this.centerAtSeaLevel,Ae)}findElevationBoundsForLayer(e,t){const i=this.layerInfo[O.ELEVATION][e],s=b(this.level),n=Math.max(this.elevationLevel-s,0),r=i.elevationBounds;if(null!=r&&r.level>=t&&r.level<=n)return;const a=this._surface.layerViewByIndex(e,O.ELEVATION),o=P(a);if(!te(this,o,!1))return;const l=le;let h=!1;const u=i.data;if(u&&u.level<=n){const e=i.data;l.min=e.samplerData.data.minValue,l.max=e.samplerData.data.maxValue,l.hasNoDataValues=e.samplerData.data.hasNoDataValues,l.level=this.level,h=!0}else{let t,i,r=0;for(let a=this._parent;a&&(!i||r<s)&&(r=this.elevationLevel-a.level,t=i||t,i=a.layerInfo[O.ELEVATION][e].data,!(!i&&t&&a.level<=n));a=a.parent);i=i||t,i&&(i.computeMinMaxValue(this.lij[0],this.lij[1],this.lij[2],l),l.min!==1/0&&(l.level=i.level,h=!0))}h&&(null==i.elevationBounds&&(i.elevationBounds=new I),i.elevationBounds.copyFrom(l))}modifyLayers(e,t,i){const s=this.layerInfo[i];for(const a of s)a.loadingAgent&&a.loadingAgent!==Q&&(re(a.loadingAgent),a.loadingAgent=null),a.waitingAgents.clear();for(let a=0;a<s.length;++a)void 0===e[a]&&s[a].release();const n=new Array(...s),r=t.length;s.length=r;for(let a=0;a<r;a++){const e=t[a];s[a]=e>-1?n[e]:K.acquire(this._surface.upsampleInfoPool)}this.setMemoryDirty()}restartAgents(e){this.renderData&&(this._createOrUpdateAgents(0,e),this.updateRenderData(e,D.FADING))}updateAgents(e){if(this.renderData){const t=this.layerInfo[e];for(const e of t)e.loadingAgent===Q&&(e.loadingAgent=null);this._createOrUpdateAgents(0,e)}}updateAgentSuspension(){for(const e of S){const t=this._isSuspended(e);for(const i of this.layerInfo[e])i.loadingAgent&&i.loadingAgent!==Q&&(i.loadingAgent.setSuspension(t),i.loadingAgent===Q&&this.updateRenderData(e,D.FADING))}}removeLayerAgent(e,t){const i=this.layerInfo[t][e];i.loadingAgent&&i.loadingAgent!==Q&&i.loadingAgent.dispose(),i.loadingAgent=null}agentDone(e,t){const i=this.layerInfo[t][e];i.loadingAgent=Q,i.data||null!=i.upsampleInfo||this._createOrUpdateAgents(e+1,t)}_hasBlendableAncestor(e){return"normal"!==e.blendMode||T(e.parent)&&this._hasBlendableAncestor(e.parent)}_hasBlendModes(e,t,i){for(let s=e;s<t;++s){const e=this._surface.layerViewByIndex(s,i);if(B(e)&&"normal"!==e?.layer?.blendMode||T(e?.layer?.parent)&&this._hasBlendableAncestor(e?.layer?.parent))return!0}return!1}_createOrUpdateAgents(e,t){const i=this.layerInfo[t];if(0===i.length)return;const s=this._isSuspended(t);for(let n=e;n<i.length;++n){const r=i[n];let a=!1;const o=this._surface.layerViewByIndex(n,t),l=P(o);if(r.loadingAgent?te(this,l,!1)?(r.loadingAgent!==Q&&r.loadingAgent.setSuspension(s),r.loadingAgent!==Q&&(a=r.loadingAgent.update())):r.dispose():te(this,l,!1)&&(r.loadingAgent=ne(this,n,t,s),a=r.loadingAgent.startLoading(),a?r.loadingAgent===Q&&this.setPendingUpdate(ee.GEOMETRY):(re(r.loadingAgent),r.loadingAgent=Q)),r.loadingAgent===Q&&this.updateRenderData(t,D.FADING),!this._hasBlendModes(e,i.length,t)&&a&&o.isOpaque)return}}_isWithinExtent(e){const t=this.extent;return t[0]>=e[0]&&e[2]>=t[2]&&t[1]>=e[1]&&e[3]>=t[3]}intersectsExtent(e){const t=this.extent;return t[2]>=e[0]&&e[2]>=t[0]&&t[3]>=e[1]&&e[3]>=t[1]}getElevationVerticesPerSide(t){const i=this.elevationLevel-this.level,s=Math.max(this.level-t,b(this.level)-i),n=e(1+(this.maxTesselation>>s),2,this.maxTesselation+1),r=this.getDefaultVerticesPerSide();return Math.max(n,r)}get test(){return{cachedMemory:this._cachedMemory}}_findLIJ(e,t){if(!e)return null;const i=this.surface.rootTiles;if(null!=i)for(const s of i)if(ue(s,e)){let i=s,n=e[0]-i.level-1;for(;n>=0&&!i.isLeaf&&!t(i);){const t=e[1]>>n&1,s=e[2]>>n&1;i=i.children[2*t+s],n--}return t(i)?i:null}return null}findNeighborTile(e,t){const i=this.lij,s=this.getNeighborLIJ(i,e);return s?de(i,s)?t(this)?this:null:this._findLIJ(s,t):null}findCorner(e,t){const i=e===x.NORTH_EAST?1:e===x.NORTH_WEST?0:e===x.SOUTH_WEST?2:3;let s=this;for(;s.children[0]&&(!t||!t(s));)s=s.children[i];return s}findNeighborCornerTileExact(e,t){return this.findNeighborTile(e,(e=>t(e)||e.level===this.level))?.findCorner(R(e),t)||null}forAllSubtreeOnSide(e,t){const i=e===x.NORTH?[0,1]:e===x.NORTH_EAST?[1]:e===x.EAST?[1,3]:e===x.SOUTH_EAST?[3]:e===x.SOUTH?[2,3]:e===x.SOUTH_WEST?[2]:e===x.WEST?[0,2]:[0],s=e=>{const n=e.children;!t(e)&&n[0]&&i.forEach((e=>s(n[e])))};s(this)}getNeighborEdgeStartVertexIndex(e,t){if(!t)return 0;const i=this.level-t.level;if(V(!w||i>=0),0===i)return 0;const s=2**i,n=1==(1&e),r=n?0:1,a=t.lij[r+1]*s,o=this.lij[r+1],l=o-a,h=n?s-1-l:l;return w&&(V(a<=o&&o<a+s),V(0<=h&&h<s)),h}forEachLoadedNeighbor(e){const t=this.level,i=e=>e.level===t||e.isLoaded;G.forEach((t=>{const s=this.findNeighborTile(t,i);null!=s&&s!==this&&s.forAllSubtreeOnSide(W(t),(i=>!!i.isLoaded&&(e(i,t),!0)))})),q.forEach((t=>{const s=this.findNeighborTile(t,i)?.findCorner(R(t),(e=>e.isLoaded));V(!s||ge(this,s,t)),s?.isLoaded&&e(s,t)}))}getNeighborLIJ(e,t){const i=F(t)?-1:H(t)?1:0,s=k(t)?-1:X(t)?1:0,n=[e[0],e[1]+i,e[2]+s];return n[1]<0?null:this.surface.isGlobal?this.wrapLIJ(n):n[2]<0?null:n}wrapLIJ(e){return!e||e[1]<0||e[1]>=2**e[0]?null:this.surface.wrapEastWest(e)}get westNeighborWestExtent(){return this.extent[0]*(this.isWestEnd?-1:1)}get eastNeighborEastExtent(){return this.extent[2]*(this.isEastEnd?-1:1)}get isEastEnd(){return this.lij[2]===this.surface.lijEastEnd(this.level)-1}get isWestEnd(){return 0===this.lij[2]}get isNorthEnd(){return 0===this.lij[1]}get isSouthEnd(){const e=this.surface.extent,t=e?.[1]??null;return null!=t&&this.extent[1]+f()>=t}checkGeometryWaterproofness(){Y&&(V(this.isLoaded),this.renderData?.checkGeometryWaterproofness())}shouldHaveNeighbor(e){const t=this.extent,i=this.surface.rootTilesExtent,s=.25*(t[2]-t[0]);if(F(e)&&t[3]+s>=i[3])return!1;if(H(e)&&t[1]-s<=i[1])return!1;const n=this.surface.isGlobal;return!(!n&&k(e)&&t[0]-s<=i[0])&&!(!n&&X(e)&&t[2]+s>=i[2])}updateDistanceToPOI(e){const t=this._lastPOI;if(this.distanceToPOI>=0&&t[0]===e[0]&&t[1]===e[1]&&t[2]===e[2])return;c(this._lastPOI,e);const i=this._center[he.MIDDLE],s=e[0]-i[0],n=e[1]-i[1],r=e[2]-i[2];this.distanceToPOI=s*s+n*n+r*r}}function ne(e,t,i,s){const n=i===O.ELEVATION?oe.acquire():ae.acquire();return n.init(e,t,i,s),n}function re(e){e.dispose(),e instanceof M?oe.release(e):e instanceof j&&ae.release(e)}const ae=new i(j),oe=new i(M),le=new I;var he;function ue(e,t){const i=e.level,s=t[0];if(i>s)return!1;const n=s-i,r=Math.floor(t[1]/2**n),a=Math.floor(t[2]/2**n);return r===e.lij[1]&&a===e.lij[2]}function de(e,t){return e[0]===t[0]&&e[1]===t[1]&&e[2]===t[2]}function ce(e,t,i){if(null==e||null==t)return!1;if(0===e.level&&0===t.level){if(e.isEastEnd&&t.isWestEnd&&i===x.EAST)return!0;if(e.isWestEnd&&t.isEastEnd&&i===x.WEST)return!0}const s=Math.max(1e-6*(e.extent[2]-e.extent[0]),1);switch(i){case x.NORTH:return z(e.extent[3],t.extent[1],s);case x.SOUTH:return z(e.extent[1],t.extent[3],s);case x.EAST:return z(e.extent[2],t.extent[0],s)||z(e.extent[2],-t.extent[0],s);case x.WEST:return z(e.extent[0],t.extent[2],s)||z(e.extent[0],-t.extent[2],s)}}function ge(e,t,i){return null!=e&&null!=t&&t!==e&&(e.level>=t.level?pe(e,t,i):pe(t,e,R(i)))}function pe(e,t,i){V(e.level>=t.level);const s=$(i),n=J(i),r=e.extent,a=t.extent,o=[s?r[0]:r[2],n?r[3]:r[1]],l=[s?a[2]:a[0],n?a[1]:a[3]],h=1e-5*(r[2]-r[0]),u=z(o[0],l[0],h)||e.surface.isGlobal&&z(o[0],-l[0],h),d=z(o[1],l[1],h);if(u&&d)return!0;if(e.level===t.level)return V(!1),!1;if(!u&&!d)return V(!1),!1;const c=u?fe(a[1],a[3],r[1],r[3],h):fe(a[0],a[2],r[0],r[2],h);return V(c),c}function fe(e,t,i,s,n){return e-n<=i&&i<=s&&s<=t+n}!function(e){e[e.TOP=0]="TOP",e[e.MIDDLE=1]="MIDDLE",e[e.BOTTOM=2]="BOTTOM"}(he||(he={}));const me=g(),_e=g(),ye=g(),Ae=g();export{he as CenterPosition,se as Tile,ge as isCornerNeighbor,ce as isEdgeNeighbor};
|
|
5
|
+
import{clamp as e}from"../../../core/mathUtils.js";import{abortMaybe as t}from"../../../core/maybe.js";import i from"../../../core/ObjectPool.js";import{j as s,s as n}from"../../../chunks/vec2.js";import{a as r}from"../../../chunks/vec2f64.js";import{f as a,m as o,j as l,i as h,g as u,l as d,c}from"../../../chunks/vec3.js";import{c as g,u as p}from"../../../chunks/vec3f64.js";import{g as f}from"../../../chunks/common.js";import{getReferenceEllipsoid as m}from"../../../geometry/ellipsoidUtils.js";import{create as _,equals as y}from"../../../geometry/support/aaBoundingRect.js";import{c as A}from"../../../chunks/sphere.js";import{isGroupLayer as T}from"../../../layers/support/layerUtils.js";import{VectorTile as E}from"../../2d/engine/vectorTiles/VectorTile.js";import{ImageWithType as v}from"../support/StreamDataLoader.js";import{ElevationBounds as I}from"./ElevationBounds.js";import{ElevationTileAgent as M}from"./ElevationTileAgent.js";import{TextureUpdate as D}from"./interfaces.js";import{TileFrustumVisibility as L,NeighborIndex as x}from"./ITile.js";import{LayerClasses as S,LayerClass as O}from"./LayerClass.js";import{MapTileAgent as j}from"./MapTileAgent.js";import{RasterTile as N}from"./RasterTile.js";import{maxPatchTesselation as U,getElevationDesiredResolutionLevel as b}from"./TerrainConst.js";import{weakAssert as C,getLayerWithExtentRange as P,isBlendableLayerView as B,oppositeCorner as R,internalAssert as V,enableTerrainInternalChecks as w,neighborEdgeIndices as G,oppositeEdge as W,neighborCornerIndices as q,isNorth as F,isSouth as H,isWest as k,isEast as X,enableWaterproofnessTests as Y,almostEquals as z,isWestCorner as $,isNorthCorner as J}from"./terrainUtils.js";import{tileAgentDone as Q}from"./TileAgent.js";import{TilePerLayerInfo as K}from"./TilePerLayerInfo.js";import Z from"./TileTexture.js";import{TileUpdate as ee}from"./TileUpdate.js";import{fallsWithinLayer as te}from"./tileUtils.js";const ie=.1;class se{constructor(){this.lij=[0,0,0],this._children=[null,null,null,null],this._pendingUpdates=0,this.renderData=null,this._dirty=!0,this._previouslyRendered=!1,this.extent=_(),this._elevationBounds=r(),this.layerInfo=[[],[]],this.extentInRadians=_(),this.centerAtSeaLevel=g(),this._center=[g(),A(),g()],this.up=p(),this._isWithinClippingArea=!0,this._intersectsClippingArea=!0,this._maxTesselation=0,this._usedMemory=null,this._mapTileMemoryInternal=0,this._mapDataRefCount=0,this.screenDepth=0,this.renderOrder=0,this._edgeLen=0,this._edgeLen2=0,this._curvatureHeight=0,this.extentMidX=0,this.extentMidY=0,this.distanceToPOI=-1,this._lastPOI=g()}static prune(){ae.prune(0),oe.prune(0),K.prune()}get _isCached(){return!this.shouldLoad&&this._mapDataRefCount<=0}get maxTesselation(){return this._maxTesselation}get isWithinClippingArea(){return this._isWithinClippingArea}get intersectsClippingArea(){return this._intersectsClippingArea}get clippingArea(){return this._clippingArea}get parent(){return this._parent}get children(){return this._children}get surface(){return this._surface}get elevationBounds(){return this._elevationBounds}get level(){return this.lij[0]}get key(){return`${this.lij[0]}/${this.lij[1]}/${this.lij[2]}`}get edgeLen(){return this._edgeLen}get radius(){return this._center[he.MIDDLE][3]}get visible(){return this._dirty&&this.computeVisibility(),this._visible}get frustumVisibility(){return this._dirty&&this.computeVisibility(),this._frustumVisibility}computeVisibility(){this._dirty=!1;const e=this.parent,t=e?.frustumVisibility??L.INTERSECTS;this._frustumVisibility=t===L.INSIDE?L.INSIDE:t===L.OUTSIDE?L.OUTSIDE:this._calculateFrustumVisibilityStatus(this.surface.frustum);const i=this._frustumVisibility!==L.OUTSIDE&&this._intersectsClippingArea;i!==this._visible&&(this._visible=i,this._surface.emit("tiles-visibility-changed"),this._surface.renderer.setDirty(),this.updateAgentSuspension())}get loadable(){return this.visible||this._surface.view.state.fixedContentCamera}get rendered(){const e=!!this.renderData;return e!==this._previouslyRendered&&(this._surface.emit("tiles-visibility-changed"),this._previouslyRendered=e,this._surface.renderer.setDirty()),e}get shouldLoad(){return this.isLeaf}init(e,t,i,r,a){this.lij[0]=e,this.lij[1]=t,this.lij[2]=i,this.ellipsoid=m(a.tilingScheme.spatialReference),a.tilingScheme.getExtent(e,t,i,this.extent),a.tilingScheme.convertExtentToRadians(this.extent,this.extentInRadians),this.extentMidX=.5*(this.extent[0]+this.extent[2]),this.extentMidY=.5*(this.extent[1]+this.extent[3]),this._isWithinClippingArea=!0,this._intersectsClippingArea=!0,this._clippingArea=null,this._mapDataRefCount=0,a.upsampleMapCache.pop(this.key),this._edgeLen=0,this._edgeLen2=0,this._center[he.MIDDLE][3]=0,this.elevationLevel=e,r&&r.elevationBounds?s(this._elevationBounds,r.elevationBounds):n(this._elevationBounds,0,0),this._pendingUpdates=0,this.renderData=null,this.screenDepth=0,this._visible=!1,this._previouslyRendered=!1,this._parent=r,this.unsetChildren(),this._surface=a,this.updateVisibility();for(const s of S){const e=a.numLayers(s),t=this.layerInfo[s];for(const i of t)i.release();t.length=e;for(let i=0;i<e;i++)t[i]=K.acquire(this._surface.upsampleInfoPool),s===O.ELEVATION&&this.findElevationBoundsForLayer(i,-1)}this.computeElevationBounds(),this._maxTesselation=Math.min(a.tilingScheme.pixelSize,U)}dispose(){C(!this.renderData,"tile.renderData was not unloaded"),this._surface.upsampleMapCache.pop(this.key);for(const e of S){for(const t of this.layerInfo[e])t.release();this.layerInfo[e].length=0}this._parent=null;for(let e=0;e<4;++e)this._children[e]=null;this._surface=null,this.setMemoryDirty()}refMapData(){++this._mapDataRefCount,this._isCached||this._surface.upsampleMapCache.pop(this.key)}unrefMapData(){if(--this._mapDataRefCount,this._isCached){this.setMemoryDirty();const e=this._cachedMemory;e>0&&this._surface.upsampleMapCache.put(this.key,this,e)}}setMemoryDirty(){this._usedMemory=null}get usedMemory(){return this._ensureUsedMemory()+(this._isCached?0:this._mapTileMemoryInternal)}get _cachedMemory(){return this._isCached?this._mapTileMemory:0}get _mapTileMemory(){return this._ensureUsedMemory(),this.layerInfo[O.MAP].reduce(((e,t)=>e+(t instanceof E?t.memoryUsed/t.referenced:0)),this._mapTileMemoryInternal)}get _cpuImageMemorySize(){const e=4,t=this._surface.tilingScheme.pixelSize;return t*t*e}_ensureUsedMemory(){if(null!=this._usedMemory)return this._usedMemory;this._usedMemory=this._baseUsedMemory,this._mapTileMemoryInternal=0;let e=0;for(const{data:i}of this.layerInfo[O.MAP])i instanceof E?e+=this._getTerrainDataMemory(i):this._mapTileMemoryInternal+=this._getTerrainDataMemory(i);const t=this._cpuImageMemorySize;for(const i of this.layerInfo[O.ELEVATION])this._usedMemory+=i.data?t:0;return this.renderData&&(this._usedMemory+=this.renderData.estimatedGeometryMemoryUsage,this._mapTileMemoryInternal+=this.renderData.texture?.usedMemory??0),this._isCached&&this._surface.upsampleMapCache.updateSize(this.key,this,this._mapTileMemoryInternal+e),this._usedMemory}getUsedMemoryForLayer(e,t){const i=this.layerInfo[e][t];return i?.data?e===O.MAP?this._isCached?0:this._getTerrainDataMemory(i.data):e===O.ELEVATION?this._cpuImageMemorySize:0:0}_getTerrainDataMemory(e){return e instanceof Z?e.texture.gpuMemoryUsage:e instanceof HTMLImageElement||e instanceof v?this._cpuImageMemorySize:e instanceof N?e.memoryUsage:e instanceof E?e.memoryUsed/e.referenced:0}updateScreenDepth(e){const t=this._center[he.MIDDLE],i=e,s=t[0],n=t[1],r=t[2],a=i[2]*s+i[6]*n+i[10]*r+i[14];this.screenDepth=a<0?0:a/(i[3]*s+i[7]*n+i[11]*r+i[15])}shouldSplit(e,t,i){if(!this.visible)return ee.NONE;if(e.frustum&&(!this._intersectsClippingArea||this._calculateFrustumVisibilityStatus(e.frustum)===L.OUTSIDE))return ee.NONE;const s=this.level;a(me,this._center[he.MIDDLE],t);let n=o(me),r=me,c=he.MIDDLE;a(_e,this._center[he.TOP],t);const g=o(_e);g<n&&(n=g,r=_e,c=he.TOP),a(ye,this._center[he.BOTTOM],t);const p=o(ye);if(p<n&&(n=p,r=ye,c=he.BOTTOM),this._edgeLen2>n&&s<e.maxLod)return ee.SPLIT;const f=null!=i?i-s:1/0,m=Math.sqrt(n),_=e.fovX*m*2,y=this._edgeLen/_,A=()=>{if(s<e.maxLod)return this.elevationLevel=s,ee.NONE;const t=s+Math.ceil(-Math.log2(e.relativeWidthLimit/y));return t!==this.elevationLevel?(this.elevationLevel=t,ee.ELEVATION):ee.NONE};if(f<=.5)return A();const T=l(this.up,me),E=this._elevationBounds[1]-this._elevationBounds[0],v=E/this.edgeLen;if(e.aboveGround&&T>0&&v<.001){if(T/m-Math.sin(this._curvatureHeight/(this.edgeLen*Math.SQRT1_2)*Math.PI)-v>0)return ee.NONE}const I=null!=i?3-Math.min(f,2):1;if(y*I<e.relativeWidthLimit||s>=e.maxLod)return A();if(s<7)return ee.SPLIT;h(Ae,this.up,T),a(Ae,Ae,r);const M=o(Ae);if(M<=this.radius*this.radius)return ee.SPLIT;h(Ae,Ae,this.radius/Math.sqrt(M)),u(Ae,Ae,this._center[c]),a(Ae,t,Ae);const D=Math.min(1,(Math.abs(l(Ae,this.up))+.5*E+this._curvatureHeight)/d(Ae)),x=ie/e.angledSplitBias,S=e.fovY*m*2;return D*(this._edgeLen/S*I)<x*e.relativeHeightLimit?ee.NONE:ee.SPLIT}setChildren(e,t,i,s){C(!!(e&&t&&i&&s),"Null child passed"),this._children[0]=e,this._children[1]=t,this._children[2]=i,this._children[3]=s}unsetChildren(){this._children[0]=null,this._children[1]=null,this._children[2]=null,this._children[3]=null}get isLoaded(){return this.renderData?.hasGeometry??!1}load(){this.refMapData();for(const e of S)this._createOrUpdateAgents(0,e);this.surface.renderer.loadTile(this)}unload(e){e.unloadTile(this);for(const t of S){const e=this.layerInfo[t];for(const t of e)t.loadingAgent&&t.loadingAgent!==Q&&(re(t.loadingAgent),t.loadingAgent=null),t.pendingUpdates=0}this.resetPendingUpdate(ee.GEOMETRY),this.resetPendingUpdate(ee.TEXTURE_NOFADING),this.resetPendingUpdate(ee.TEXTURE_FADING),this.unrefMapData()}unloadMapData(){const e=this.layerInfo[O.MAP];for(const t of e)t.loadingAgent&&t.loadingAgent!==Q&&(re(t.loadingAgent),t.loadingAgent=null),t.pendingUpdates=0;this.renderData&&this.renderData.releaseTexture(),this.setMemoryDirty()}updateClippingStatus(e){if(y(e,this._clippingArea))return!1;const t=this._intersectsClippingArea,i=this._isWithinClippingArea;null!=e?(this._intersectsClippingArea=this.intersectsExtent(e),this._isWithinClippingArea=this._isWithinExtent(e)):(this._intersectsClippingArea=!0,this._isWithinClippingArea=!0),this._clippingArea=e,this.updateVisibility();const s=i&&this._isWithinClippingArea,n=!(i||t||this._isWithinClippingArea||this._intersectsClippingArea);return!this.renderData||s||n||this.setPendingUpdate(ee.GEOMETRY),!0}updateVisibility(){this._dirty=!0,this._surface.setTileTreeDirty()}getLayerInfo(e,t){return this.layerInfo[t][e]}hasLayerData(e,t){const i=this.layerInfo[t][e];return!(!i?.data||i.dataInvalidated)}get updating(){if(this.hasPendingUpdates)return!0;for(const e of S){const t=this.layerInfo[e];for(const e of t)if(e.loadingAgent&&e.loadingAgent!==Q&&e.loadingAgent.updating)return!0}return!1}_isSuspended(e){return!!this.hasPendingUpdate(ee.SPLIT)||e!==O.ELEVATION&&!this.loadable}get hasPendingUpdates(){return 0!==this._pendingUpdates}hasPendingUpdate(e){return(this._pendingUpdates&e)===e}setPendingUpdate(e){this._pendingUpdates|=e,e===ee.SPLIT||e===ee.MERGE?this._surface.setTileTreeDirty():this._surface.requestUpdate()}resetPendingUpdate(e){return!!this.hasPendingUpdate(e)&&(this._pendingUpdates&=~e,!0)}requestLayerData(e,i,s){const n=this.layerInfo[i][e];if(n.waitingAgents.has(s))return console.warn("agent already requested this piece of map data (tile %s, agent tile %s, layer: %d/%d)",this.lij.toString(),s.tile.lij.toString(),i,e),!0;if(n.waitingAgents.push(s),n.data&&!n.dataInvalidated){console.warn("agent requested existing data (tile %s, agent tile %s, layer: %d/%d)",this.lij.toString(),s.tile.lij.toString(),i,e);const t=n.data&&"type"in n.data&&"vector-tile"===n.data.type;return s.dataArrived(this,t),!0}if(n.requestPromise)return!0;t(n.requestAbort),n.requestAbort=new AbortController;const r=this._surface.requestTileData(this,e,i,n.requestAbort);if(!r)return n.requestAbort=null,!1;const a=()=>{n.requestPromise===r&&(n.requestPromise=null,n.requestAbort=null)};return n.requestPromise=r,r.then(a,a),!0}get isLeaf(){return null==this._children[0]}hasLij(e){return this.lij[0]===e[0]&&this.lij[1]===e[1]&&this.lij[2]===e[2]}findByLij(e){if(this.hasLij(e))return this;const t=this._children;if(!t[0])return null;return t[0].findByLij(e)||t[1].findByLij(e)||t[2].findByLij(e)||t[3].findByLij(e)}distanceToSquared(e){return o(a(Ae,this._center[he.MIDDLE],e))}containsPoint(e){const t=this.extent;return e[0]>=t[0]&&e[1]>=t[1]&&e[0]<=t[2]&&e[1]<=t[3]}containsPointXY(e,t){const i=this.extent;return e>=i[0]&&t>=i[1]&&e<=i[2]&&t<=i[3]}unrequestLayerData(e,t,i){const s=this.layerInfo[t][e],n=s.waitingAgents,r=null!=n.removeUnordered(i);C(r,"agent has not requested this piece of map data"),n.length<1&&(s.abortRequest(),this.setMemoryDirty())}dataArrived(e,t,i){const s=null!=i&&"type"in i&&"vector-tile"===i.type,n=this.layerInfo[t][e];n.data=i,n.dataInvalidated=!1,n.waitingAgents.forAll((e=>e.dataArrived(this,s))),n.waitingAgents.clear(),this.setMemoryDirty()}dataMissing(e,t,i){i.notInTilemap||console.error(`Tile ${this.lij.toString()} layer ${t}/${e} error ${i}`);const s=this.layerInfo[t][e];s.dataMissing=!0,s.waitingAgents.forAll((e=>e.dataMissing())),s.waitingAgents.clear(),this.setMemoryDirty()}updateRenderData(e,t,i){switch(i&&this.forEachLoadedNeighbor((i=>i.updateRenderData(e,t))),e){case O.MAP:return this._updateTexture(t);case O.ELEVATION:return this._updateGeometry()}}_updateTexture(e){this.renderData&&(this.resetPendingUpdate(e===D.FADING?ee.TEXTURE_NOFADING:ee.TEXTURE_FADING),this.setPendingUpdate(e===D.FADING?ee.TEXTURE_FADING:ee.TEXTURE_NOFADING))}_updateGeometry(){this.setPendingUpdate(ee.GEOMETRY);for(const e of this.layerInfo[O.ELEVATION])e.pendingUpdates|=ee.GEOMETRY}invalidateLayerData(e,t){this.layerInfo[t][e].invalidateSourceData(),this.restartAgents(t)}computeElevationBounds(){const e=this._elevationBounds,t=e[0],i=e[1];n(e,1/0,-1/0);const s=this.layerInfo[O.ELEVATION];let r=!0;for(const n of s)null!=n.elevationBounds&&(e[0]=Math.min(e[0],n.elevationBounds.min),e[1]=Math.max(e[1],n.elevationBounds.max),n.elevationBounds.hasNoDataValues||(r=!1));r&&(e[0]=Math.min(e[0],0),e[1]=Math.max(e[1],0)),t===e[0]&&i===e[1]||(this.updateRadiusAndCenter(),this._surface.setTileTreeDirty())}_updateCenter(){const e=this._elevationBounds,t=.5*(e[0]+e[1]),i=this._center;h(Ae,this.up,t),u(i[he.MIDDLE],this.centerAtSeaLevel,Ae),h(Ae,this.up,e[0]),u(i[he.TOP],this.centerAtSeaLevel,Ae),h(Ae,this.up,e[1]),u(i[he.BOTTOM],this.centerAtSeaLevel,Ae)}findElevationBoundsForLayer(e,t){const i=this.layerInfo[O.ELEVATION][e],s=b(this.level),n=Math.max(this.elevationLevel-s,0),r=i.elevationBounds;if(null!=r&&r.level>=t&&r.level<=n)return;const a=this._surface.layerViewByIndex(e,O.ELEVATION),o=P(a);if(!te(this,o,!1))return;const l=le;let h=!1;const u=i.data;if(u&&u.level<=n){const e=i.data;l.min=e.samplerData.data.minValue,l.max=e.samplerData.data.maxValue,l.hasNoDataValues=e.samplerData.data.hasNoDataValues,l.level=this.level,h=!0}else{let t,i,r=0;for(let a=this._parent;a&&(!i||r<s)&&(r=this.elevationLevel-a.level,t=i||t,i=a.layerInfo[O.ELEVATION][e].data,!(!i&&t&&a.level<=n));a=a.parent);i=i||t,i&&(i.computeMinMaxValue(this.lij[0],this.lij[1],this.lij[2],l),l.min!==1/0&&(l.level=i.level,h=!0))}h&&(null==i.elevationBounds&&(i.elevationBounds=new I),i.elevationBounds.copyFrom(l))}modifyLayers(e,t,i){const s=this.layerInfo[i];for(const a of s)a.loadingAgent&&a.loadingAgent!==Q&&(re(a.loadingAgent),a.loadingAgent=null),a.waitingAgents.clear();for(let a=0;a<s.length;++a)void 0===e[a]&&s[a].release();const n=new Array(...s),r=t.length;s.length=r;for(let a=0;a<r;a++){const e=t[a];s[a]=e>-1?n[e]:K.acquire(this._surface.upsampleInfoPool)}this.setMemoryDirty()}restartAgents(e){this.renderData&&(this._createOrUpdateAgents(0,e),this.updateRenderData(e,D.FADING))}updateAgents(e){if(this.renderData){const t=this.layerInfo[e];for(const e of t)e.loadingAgent===Q&&(e.loadingAgent=null);this._createOrUpdateAgents(0,e)}}updateAgentSuspension(){for(const e of S){const t=this._isSuspended(e);for(const i of this.layerInfo[e])i.loadingAgent&&i.loadingAgent!==Q&&(i.loadingAgent.setSuspension(t),i.loadingAgent===Q&&this.updateRenderData(e,D.FADING))}}removeLayerAgent(e,t){const i=this.layerInfo[t][e];i.loadingAgent&&i.loadingAgent!==Q&&i.loadingAgent.dispose(),i.loadingAgent=null}agentDone(e,t){const i=this.layerInfo[t][e];i.loadingAgent=Q,i.data||null!=i.upsampleInfo||this._createOrUpdateAgents(e+1,t)}_hasBlendableAncestor(e){return"normal"!==e.blendMode||T(e.parent)&&this._hasBlendableAncestor(e.parent)}_hasBlendModes(e,t,i){for(let s=e;s<t;++s){const e=this._surface.layerViewByIndex(s,i);if(B(e)&&"normal"!==e?.layer?.blendMode||T(e?.layer?.parent)&&this._hasBlendableAncestor(e?.layer?.parent))return!0}return!1}_createOrUpdateAgents(e,t){const i=this.layerInfo[t];if(0===i.length)return;const s=this._isSuspended(t);for(let n=e;n<i.length;++n){const r=i[n];let a=!1;const o=this._surface.layerViewByIndex(n,t),l=P(o);if(r.loadingAgent?te(this,l,!1)?(r.loadingAgent!==Q&&r.loadingAgent.setSuspension(s),r.loadingAgent!==Q&&(a=r.loadingAgent.update())):r.dispose():te(this,l,!1)&&(r.loadingAgent=ne(this,n,t,s),a=r.loadingAgent.startLoading(),a?r.loadingAgent===Q&&this.setPendingUpdate(ee.GEOMETRY):(re(r.loadingAgent),r.loadingAgent=Q)),r.loadingAgent===Q&&this.updateRenderData(t,D.FADING),!this._hasBlendModes(e,i.length,t)&&a&&o.isOpaque)return}}_isWithinExtent(e){const t=this.extent;return t[0]>=e[0]&&e[2]>=t[2]&&t[1]>=e[1]&&e[3]>=t[3]}intersectsExtent(e){const t=this.extent;return t[2]>=e[0]&&e[2]>=t[0]&&t[3]>=e[1]&&e[3]>=t[1]}getElevationVerticesPerSide(t){const i=this.elevationLevel-this.level,s=Math.max(this.level-t,b(this.level)-i),n=e(1+(this.maxTesselation>>s),2,this.maxTesselation+1),r=this.getDefaultVerticesPerSide();return Math.max(n,r)}get test(){return{cachedMemory:this._cachedMemory}}_findLIJ(e,t){if(!e)return null;const i=this.surface.rootTiles;if(null!=i)for(const s of i)if(ue(s,e)){let i=s,n=e[0]-i.level-1;for(;n>=0&&!i.isLeaf&&!t(i);){const t=e[1]>>n&1,s=e[2]>>n&1;i=i.children[2*t+s],n--}return t(i)?i:null}return null}findNeighborTile(e,t){const i=this.lij,s=this.getNeighborLIJ(i,e);return s?de(i,s)?t(this)?this:null:this._findLIJ(s,t):null}findCorner(e,t){const i=e===x.NORTH_EAST?1:e===x.NORTH_WEST?0:e===x.SOUTH_WEST?2:3;let s=this;for(;s.children[0]&&(!t||!t(s));)s=s.children[i];return s}findNeighborCornerTileExact(e,t){return this.findNeighborTile(e,(e=>t(e)||e.level===this.level))?.findCorner(R(e),t)||null}forAllSubtreeOnSide(e,t){const i=e===x.NORTH?[0,1]:e===x.NORTH_EAST?[1]:e===x.EAST?[1,3]:e===x.SOUTH_EAST?[3]:e===x.SOUTH?[2,3]:e===x.SOUTH_WEST?[2]:e===x.WEST?[0,2]:[0],s=e=>{const n=e.children;!t(e)&&n[0]&&i.forEach((e=>s(n[e])))};s(this)}getNeighborEdgeStartVertexIndex(e,t){if(!t)return 0;const i=this.level-t.level;if(V(!w||i>=0),0===i)return 0;const s=2**i,n=1==(1&e),r=n?0:1,a=t.lij[r+1]*s,o=this.lij[r+1],l=o-a,h=n?s-1-l:l;return w&&(V(a<=o&&o<a+s),V(0<=h&&h<s)),h}forEachLoadedNeighbor(e){const t=this.level,i=e=>e.level===t||e.isLoaded;G.forEach((t=>{const s=this.findNeighborTile(t,i);null!=s&&s!==this&&s.forAllSubtreeOnSide(W(t),(i=>!!i.isLoaded&&(e(i,t),!0)))})),q.forEach((t=>{const s=this.findNeighborTile(t,i)?.findCorner(R(t),(e=>e.isLoaded));V(!s||ge(this,s,t)),s?.isLoaded&&e(s,t)}))}getNeighborLIJ(e,t){const i=F(t)?-1:H(t)?1:0,s=k(t)?-1:X(t)?1:0,n=[e[0],e[1]+i,e[2]+s];return n[1]<0?null:this.surface.isGlobal?this.wrapLIJ(n):n[2]<0?null:n}wrapLIJ(e){return!e||e[1]<0||e[1]>=2**e[0]?null:this.surface.wrapEastWest(e)}get westNeighborWestExtent(){return this.extent[0]*(this.isWestEnd?-1:1)}get eastNeighborEastExtent(){return this.extent[2]*(this.isEastEnd?-1:1)}get isEastEnd(){return this.lij[2]===this.surface.lijEastEnd(this.level)-1}get isWestEnd(){return 0===this.lij[2]}get isNorthEnd(){return 0===this.lij[1]}get isSouthEnd(){const e=this.surface.extent,t=e?.[1]??null;return null!=t&&this.extent[1]+f()>=t}checkGeometryWaterproofness(){Y&&(V(this.isLoaded),this.renderData?.checkGeometryWaterproofness())}shouldHaveNeighbor(e){const t=this.extent,i=this.surface.rootTilesExtent,s=.25*(t[2]-t[0]);if(F(e)&&t[3]+s>=i[3])return!1;if(H(e)&&t[1]-s<=i[1])return!1;const n=this.surface.isGlobal;return!(!n&&k(e)&&t[0]-s<=i[0])&&!(!n&&X(e)&&t[2]+s>=i[2])}updateDistanceToPOI(e){const t=this._lastPOI;if(this.distanceToPOI>=0&&t[0]===e[0]&&t[1]===e[1]&&t[2]===e[2])return;c(this._lastPOI,e);const i=this._center[he.MIDDLE],s=e[0]-i[0],n=e[1]-i[1],r=e[2]-i[2];this.distanceToPOI=s*s+n*n+r*r}}function ne(e,t,i,s){const n=i===O.ELEVATION?oe.acquire():ae.acquire();return n.init(e,t,i,s),n}function re(e){e.dispose(),e instanceof M?oe.release(e):e instanceof j&&ae.release(e)}const ae=new i(j),oe=new i(M),le=new I;var he;function ue(e,t){const i=e.level,s=t[0];if(i>s)return!1;const n=s-i,r=Math.floor(t[1]/2**n),a=Math.floor(t[2]/2**n);return r===e.lij[1]&&a===e.lij[2]}function de(e,t){return e[0]===t[0]&&e[1]===t[1]&&e[2]===t[2]}function ce(e,t,i){if(null==e||null==t)return!1;if(0===e.level&&0===t.level){if(e.isEastEnd&&t.isWestEnd&&i===x.EAST)return!0;if(e.isWestEnd&&t.isEastEnd&&i===x.WEST)return!0}const s=Math.max(1e-6*(e.extent[2]-e.extent[0]),1);switch(i){case x.NORTH:return z(e.extent[3],t.extent[1],s);case x.SOUTH:return z(e.extent[1],t.extent[3],s);case x.EAST:return z(e.extent[2],t.extent[0],s)||z(e.extent[2],-t.extent[0],s);case x.WEST:return z(e.extent[0],t.extent[2],s)||z(e.extent[0],-t.extent[2],s)}}function ge(e,t,i){return null!=e&&null!=t&&t!==e&&(e.level>=t.level?pe(e,t,i):pe(t,e,R(i)))}function pe(e,t,i){V(e.level>=t.level);const s=$(i),n=J(i),r=e.extent,a=t.extent,o=[s?r[0]:r[2],n?r[3]:r[1]],l=[s?a[2]:a[0],n?a[1]:a[3]],h=1e-5*(r[2]-r[0]),u=z(o[0],l[0],h)||e.surface.isGlobal&&z(o[0],-l[0],h),d=z(o[1],l[1],h);if(u&&d)return!0;if(e.level===t.level)return V(!1),!1;if(!u&&!d)return V(!1),!1;const c=u?fe(a[1],a[3],r[1],r[3],h):fe(a[0],a[2],r[0],r[2],h);return V(c),c}function fe(e,t,i,s,n){return e-n<=i&&i<=s&&s<=t+n}!function(e){e[e.TOP=0]="TOP",e[e.MIDDLE=1]="MIDDLE",e[e.BOTTOM=2]="BOTTOM"}(he||(he={}));const me=g(),_e=g(),ye=g(),Ae=g();export{he as CenterPosition,se as Tile,ge as isCornerNeighbor,ce as isEdgeNeighbor};
|
|
@@ -2,4 +2,4 @@
|
|
|
2
2
|
All material copyright ESRI, All Rights Reserved, unless otherwise specified.
|
|
3
3
|
See https://js.arcgis.com/4.28/esri/copyright.txt for details.
|
|
4
4
|
*/
|
|
5
|
-
import{disposeMaybe as e,releaseMaybe as t}from"../../../core/maybe.js";import{s as r,j as s}from"../../../chunks/vec2.js";import{Z as o}from"../../../chunks/vec2f64.js";import{isBaseLayer as a,isGroupLayer as i}from"../../../layers/support/layerUtils.js";import{isImageWithType as n}from"../support/StreamDataLoader.js";import{BlendLayersPassParameters as
|
|
5
|
+
import{disposeMaybe as e,releaseMaybe as t}from"../../../core/maybe.js";import{s as r,j as s}from"../../../chunks/vec2.js";import{Z as o}from"../../../chunks/vec2f64.js";import{isBaseLayer as a,isGroupLayer as i}from"../../../layers/support/layerUtils.js";import{isImageWithType as n}from"../support/StreamDataLoader.js";import{BlendLayersPassParameters as u}from"./BlendLayersTechnique.js";import{TextureUpdate as c}from"./interfaces.js";import{NeighborIndex as l}from"./ITile.js";import{LayerClass as p}from"./LayerClass.js";import{isBlendableLayerView as h,isVectorTileLayerView as d,isVectorTileRenderInfo as m,isImageryTileRenderInfo as _,isRasterTileRenderInfo as f,isTextureTileRenderInfo as y,isVectorTilePerLayerInfo as T}from"./terrainUtils.js";import{ActivationTime as g}from"./TextureFader.js";import{TextureReference as b}from"./TextureReference.js";import{TileCompositor as x}from"./TileCompositor.js";import{TileRenderInfo as I}from"./TileRenderInfo.js";import w from"./TileTexture.js";import{TileUpdate as k}from"./TileUpdate.js";import{blendModeFromString as P}from"../webgl-engine/core/shaderLibrary/output/BlendOptions.js";import{BlendLayersOutput as A,BaseOpacityMode as O}from"../webgl-engine/core/shaderLibrary/terrain/TileBackground.glsl.js";import{createEmptyTexture as R}from"../webgl-engine/lib/glUtil3D.js";import{TextureSamplingMode as E,TextureWrapMode as M,PixelFormat as D}from"../../webgl/enums.js";import{Texture as L}from"../../webgl/Texture.js";import{TextureDescriptor as j}from"../../webgl/TextureDescriptor.js";class N{constructor(e,t,r,s,o,a){this.start=e,this.end=t,this.blendMode=r,this.opacity=s,this.output=o,this.baseOpacity=a}}class C{constructor(e,t,r,s){this._rctx=e,this.tileSize=t,this._techniques=r,this._cache=s,this._passParameters=new u,this._backgroundTexture=null,this._backgroundColor=null,this._backgroundDirty=!1,this._maxAnisotropy=this._rctx.parameters.maxMaxAnisotropy,this._composition=new x(this._rctx,this._techniques),this._ensureBackgroundTexture(this.tileSize)}dispose(){this._composition=e(this._composition),this._backgroundTexture=t(this._backgroundTexture)}get backgroundIsGrid(){return null==this._backgroundColor}get backgroundColor(){return this._backgroundColor}updateTileTexture(e,t){if(!e.renderData)return;const r=e.surface,s=r.baseOpacity;let o=0,n=0,u=this.tileSize,c=!1,l=!1;const m=r.view.state.contentPixelRatio;let _=!1;F.clear(),q.length=0;const f=e.layerInfo[p.MAP];let y=0,T=null;for(;y<f.length;y++){const t=r.layerViewByIndex(y,p.MAP),g=t.layer.opacity,b=t.fullOpacity;if(l=l||a(t.layer),h(t)){let e="normal"!==t.layer.blendMode;if(i(t.layer.parent)){const r=S(t.layer.parent);null!=r&&""!==r&&(e=U(t.layer.parent)||e)}e&&(_=e,c=!1)}if(0===g&&!_){f[y].pendingUpdates&=~(k.TEXTURE_NOFADING&k.TEXTURE_FADING);continue}++n;const x=d(t),I=B(e,y,x);if(I){if(f[y].pendingUpdates&=~(k.TEXTURE_NOFADING&k.TEXTURE_FADING),i(t.layer.parent)){const e=S(t.layer.parent);null!=e&&""!==e&&G(t.layer.parent,y)}x?u=Math.max(u,this.tileSize*m):1===s&&1===b&&(t.isOpaque||this._dataToTexture(I)&&I.sourceLayerInfo.data.descriptor.isOpaque)&&(c=!0),++o,null===T&&(T=y)}}const g=u/this.tileSize;0!==o&&null!==T?1===o&&!_&&this._useLayerTexture(e,T)||this._composeMapLayers(e,t,y-1,l,u,g,!c||_,F,_):this._useBackgroundTexture(e,n)}_ensureBackgroundTexture(e){return null==this._backgroundTexture&&(this._backgroundTexture=this._buildTexture(e,!1),this._backgroundDirty=!0),this._backgroundDirty&&(this._composition.bind(e),this._passParameters.offset=o,this._passParameters.scale=1,this._passParameters.opacity=1,this.backgroundColor&&(this._passParameters.backgroundColor=this.backgroundColor),this._composition.drawBackground(this._passParameters,null!=this.backgroundColor),this._composition.copyFBOToTexture(this._backgroundTexture),this._composition.unbind(),this._backgroundDirty=!1),this._backgroundTexture}_useBackgroundTexture(e,t){const r=this._ensureBackgroundTexture(this.tileSize);let s=g.Immediate;(e.surface.view.layerViewManager.updating||t>0)&&(s=g.Delayed);const o=e.renderData;null==o.textureReference&&(s=g.Immediate),o.setTextureReference(new b(r,c.FADING,z,e.surface.baseOpacity,0,1),s)}_useLayerTexture(e,t){const r=e.surface.layerViewByIndex(t,p.MAP),s=a(r.layer),o=s?e.surface.baseOpacity:1,i=s?1:e.surface.baseOpacity,n=r.fullOpacity,u=B(e,t,!1);return!!this._dataToTexture(u)&&(e.renderData.setTextureReference(new b(u.sourceLayerInfo.data,c.FADING,u,o,i,n)),!0)}_composeMapLayers(e,t,r,s,i,n,u,c,l){this._composition.ensureBuffer(i);const f=e.surface.baseOpacity;let y=!1,T=E.LINEAR_MIPMAP_LINEAR,g=!1,x=0;for(let b=r;b>=0;b--){const t=e.surface.layerViewByIndex(b,p.MAP),r=d(t),I=B(e,b,r),w=t.layer.opacity;if(!I||0===w&&!l)continue;const k=!a(t.layer)&&!y;k&&(y=!0);let R=!1;c.forEach((e=>{e.start===b&&(e.output=s?A.Composite:u&&k?this.backgroundIsGrid?A.GridComposite:A.ColorComposite:A.Composite,e.baseOpacity=k?f:1,q.push(e),this._composition.openGroup(i),R=!0)})),this._passParameters.baseOpacity=k&&!R&&f<1?f:1;const M=this._passParameters.baseOpacity<1?O.Required:O.NotRequired,D=0===x,L=R?A.GroupBackgroundComposite:u&&D?this.backgroundIsGrid?A.GridComposite:A.ColorComposite:A.Composite,j=P[h(t)?t.layer.blendMode:"normal"];for(this._passParameters.opacity=w,m(I)?g=this._composition.drawVectorData(this._passParameters,L,i,j,M,I,n,this.tileSize,g):_(I)?(this._composition.drawImageryTileData(this._passParameters,L,i,j,M,I),this._hasNearestInterpolation(I)&&(T=E.NEAREST)):this._dataToTexture(I)&&(this._passParameters.texture=I.sourceLayerInfo.data.texture,this._passParameters.offset=I.offset,this._passParameters.scale=I.scale,this._composition.drawRasterData(this._passParameters,L,i,j,M));q.length>0&&q[q.length-1].end===b;){const e=q.pop();this._passParameters.baseOpacity=e.baseOpacity;const t=this._passParameters.baseOpacity<1?O.Required:O.NotRequired;this._passParameters.opacity=e.opacity,this._passParameters.offset=o,this._passParameters.scale=1,this._composition.drawGroup(this._passParameters,e.output,i,P[e.blendMode],t)}x++}const I=e.renderData,w=l||y&&f<1,k=I.ensureTexture(i,w,(()=>this._buildTexture(i,w,T)));this._composition.copyFBOToTexture(k),this._composition.unbind(),I.setTextureReference(new b(k,t,z,y?1:f,0,1))}_hasNearestInterpolation(e){const t=e.sourceLayerInfo.data;return!!t.source&&"nearest"===t.interpolation}_dataToTexture(e){if(f(e)){const t=e.sourceLayerInfo;t.data=this._buildTexture(t.data,!0),e.tile.setMemoryDirty()}return y(e)}setBackground(e){this._backgroundColor!==e&&(this._backgroundColor=e,this._backgroundDirty=!0)}_buildTexture(e,t,r=E.LINEAR_MIPMAP_LINEAR){if(null==e)return null;const s=new j;s.wrapMode=M.CLAMP_TO_EDGE,s.samplingMode=r,s.maxAnisotropy=this._maxAnisotropy,s.preMultiplyAlpha=!0,s.flipped=!0,s.hasMipmap=!0,t||(s.pixelFormat=D.RGB);const o=this._rctx;let a;if("number"==typeof e){s.width=s.height=e;const t=`${e} ${s.pixelFormat}`;a=this._cache.pop(t),a?a.retain():a=new w(new L(o,s),this._cache)}else if(n(e)){s.isOpaque=e.isOpaque,s.isOpaque&&(s.pixelFormat=D.RGB);const t=`${e} ${s.pixelFormat}`;a=this._cache.pop(t),a?(a.retain(),a.texture.setData(e.image)):a=new w(new L(o,s,e.image),this._cache),e.release()}else try{s.width=e.width,s.height=e.height,a=new w(new L(o,s,e))}catch(u){a=new w(R(o)),console.warn("TileRenderer: failed to execute 'texImage2D', cross-origin image may not be loaded.")}const i=o.bindTexture(a.texture,L.TEXTURE_UNIT_FOR_UPDATES);return a.generateMipmap(),o.bindTexture(i,L.TEXTURE_UNIT_FOR_UPDATES),a}get test(){return{backgroundTexture:this._backgroundTexture}}}function B(e,t,o){v.layerIndex=t,v.vtlNeighborInfos.clear();const a=e.layerInfo[p.MAP][t];if(r(v.offset,0,0),v.tile=e,v.scale=1,v.sourceLod=e.lij,v.sourceLayerInfo=a,v.isVTLBackground=o,a.data)return o&&e.forEachLoadedNeighbor(((r,s)=>{if(r.level!==e.level)return;const o=r.layerInfo[p.MAP][t];if(!T(o)||a.data===o.data)return;const i=v.vtlNeighborInfos.pushNew();i.offset=H[s],i.sourceLod=r.lij,i.sourceLayerInfo=o})),v;const i=a.upsampleInfo;if(i){const e=i.tile.layerInfo[p.MAP][t];return v.tile=i.tile,s(v.offset,i.offset),v.scale=i.scale,v.sourceLod=i.tile.lij,v.sourceLayerInfo=e,v}return o?v:null}function S(e){return e.uid}function U(e){let t="normal"!==e.blendMode;return i(e.parent)&&(t=U(e.parent)||t),t}function G(e,t){i(e.parent)&&G(e.parent,t);const r=S(e);if(null!=r&&""!==r){const s=F.get(r);s?s.start=t:F.set(r,new N(t,t,e.blendMode,e.opacity,A.Composite,1))}}const F=new Map,q=new Array,v=new I,z={offset:[0,0],scale:1},H=new Array;H[l.NORTH]=[0,-1],H[l.NORTH_EAST]=[-1,-1],H[l.EAST]=[-1,0],H[l.SOUTH_EAST]=[-1,1],H[l.SOUTH]=[0,1],H[l.SOUTH_WEST]=[1,1],H[l.WEST]=[1,0],H[l.NORTH_WEST]=[1,-1];export{N as GroupInfo,C as TileRenderer};
|
|
@@ -2,4 +2,4 @@
|
|
|
2
2
|
All material copyright ESRI, All Rights Reserved, unless otherwise specified.
|
|
3
3
|
See https://js.arcgis.com/4.28/esri/copyright.txt for details.
|
|
4
4
|
*/
|
|
5
|
-
class t{constructor(t,e){this._texture=t,this._cache=e,this.type="tile-texture",this._refCount=1}retain(){++this._refCount}release(){if(--this._refCount,0===this._refCount)if(this._cache){const t=`${this._texture.descriptor.width} ${this._texture.descriptor.pixelFormat}`;this._cache.put(t,this)}else this.dispose()}dispose(){this._texture.dispose()}get texture(){return this._texture}generateMipmap(){this._texture.generateMipmap()}get descriptor(){return this._texture.descriptor}get
|
|
5
|
+
class t{constructor(t,e){this._texture=t,this._cache=e,this.type="tile-texture",this._refCount=1}retain(){++this._refCount}release(){if(--this._refCount,0===this._refCount)if(this._cache){const t=`${this._texture.descriptor.width} ${this._texture.descriptor.pixelFormat}`;this._cache.put(t,this)}else this.dispose()}dispose(){this._texture.dispose()}get texture(){return this._texture}generateMipmap(){this._texture.generateMipmap()}get descriptor(){return this._texture.descriptor}get usedMemory(){return this._texture.gpuMemoryUsage}}export{t 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.28/esri/copyright.txt for details.
|
|
4
4
|
*/
|
|
5
|
-
import{_ as e}from"../../../../../../chunks/tslib.es6.js";import{releaseMaybe as t}from"../../../../../../core/maybe.js";import{d as r,t as o}from"../../../../../../chunks/mat3.js";import{a as s}from"../../../../../../chunks/mat3f32.js";import{b as a}from"../../../../../../chunks/mat3f64.js";import{H as i}from"../../../../../../chunks/vec3.js";import{e as l,f as n}from"../../../../../../chunks/vec3f64.js";import{v as u}from"../../../../../../chunks/vec4.js";import{f as h}from"../../../../../../chunks/vec4f64.js";import{ColorMixModeEnum as p}from"../../../../layers/support/symbolColorUtils.js";import{OverlayContent as c}from"../../../../terrain/OverlayContent.js";import{ComponentTechnique as d}from"./ComponentTechnique.js";import{ComponentTechniqueConfiguration as m,IntegratedMeshMode as y}from"./ComponentTechniqueConfiguration.js";import{ComponentDataType as g}from"./shader/ComponentData.glsl.js";import{VertexDiscardMode as x}from"./shader/VertexDiscardByOpacity.glsl.js";import{MaterialBase as f,parameter as T,parameterBlock as v,MaterialParameterBlock as b}from"../../../core/material/MaterialBase.js";import{RenderPassIdentifier as M}from"../../../core/renderPasses/AllRenderPasses.js";import{ShaderOutput as O}from"../../../core/shaderLibrary/ShaderOutput.js";import{NormalType as C}from"../../../core/shaderLibrary/attributes/NormalAttribute.glsl.js";import{NormalsDoubleSidedMode as w}from"../../../core/shaderLibrary/shading/Normals.glsl.js";import{PBRMode as
|
|
5
|
+
import{_ as e}from"../../../../../../chunks/tslib.es6.js";import{releaseMaybe as t}from"../../../../../../core/maybe.js";import{d as r,t as o}from"../../../../../../chunks/mat3.js";import{a as s}from"../../../../../../chunks/mat3f32.js";import{b as a}from"../../../../../../chunks/mat3f64.js";import{H as i}from"../../../../../../chunks/vec3.js";import{e as l,f as n}from"../../../../../../chunks/vec3f64.js";import{v as u}from"../../../../../../chunks/vec4.js";import{f as h}from"../../../../../../chunks/vec4f64.js";import{ColorMixModeEnum as p}from"../../../../layers/support/symbolColorUtils.js";import{OverlayContent as c}from"../../../../terrain/OverlayContent.js";import{ComponentTechnique as d}from"./ComponentTechnique.js";import{ComponentTechniqueConfiguration as m,IntegratedMeshMode as y}from"./ComponentTechniqueConfiguration.js";import{ComponentDataType as g}from"./shader/ComponentData.glsl.js";import{VertexDiscardMode as x}from"./shader/VertexDiscardByOpacity.glsl.js";import{MaterialBase as f,parameter as T,parameterBlock as v,MaterialParameterBlock as b}from"../../../core/material/MaterialBase.js";import{RenderPassIdentifier as M}from"../../../core/renderPasses/AllRenderPasses.js";import{ShaderOutput as O}from"../../../core/shaderLibrary/ShaderOutput.js";import{NormalType as C}from"../../../core/shaderLibrary/attributes/NormalAttribute.glsl.js";import{NormalsDoubleSidedMode as w}from"../../../core/shaderLibrary/shading/Normals.glsl.js";import{PBRMode as S}from"../../../core/shaderLibrary/shading/PhysicallyBasedRenderingParameters.glsl.js";import{defaultMaskAlphaCutoff as P}from"../../../core/shaderLibrary/util/AlphaCutoff.js";import{EllipsoidMode as j}from"../../../core/shaderLibrary/util/EllipsoidMode.js";import{TwoVectorPosition as q}from"../../../core/util/TwoVectorPosition.js";import{AlphaDiscardMode as N,CullFaceOptions as A}from"../../../lib/basicInterfaces.js";import{TransparencyPassType as D}from"../../../lib/TransparencyPassType.js";import{defaultAdvancedMRRFactors as R}from"../../../materials/pbrUtils.js";class F extends f{constructor(e,t){super(),this.toMapSpace=t,this.baseColor=h(1,1,1,1),this.usePBR=!1,this.hasParametersFromSource=!1,this.mrrFactors=l(R),this.emissiveFactor=n(0,0,0),this.baseColorTexture=null,this.metallicRoughnessTexture=null,this.emissionTexture=null,this.occlusionTexture=null,this.normalTexture=null,this.objectOpacity=1,this.commonMaterialParameters=new W,this.componentParameters=new _,this.textureAlphaCutoff=P,this.alphaDiscardMode=N.Opaque,this.isIntegratedMesh=!1,this.polygonOffsetEnabled=!1,this.ellipsoidMode=j.Earth,this.hasOccludees=!1,this._techniqueConfiguration=new m;const i=new q(e.position),u=s(e.rotationScale);r(u,u),this.transformNormalGlobalFromModel=a(o(u,u)),this.transformWorldFromModelTL=i.low,this.transformWorldFromModelTH=i.high,this.transformWorldFromModelRS=e.rotationScale}dispose(){this._technique=t(this._technique),this.baseColorTexture=null,this.metallicRoughnessTexture=null,this.emissionTexture=null,this.occlusionTexture=null,this.normalTexture=null}get texture(){return null!=this.baseColorTexture?this.baseColorTexture.glTexture:null}get textureMetallicRoughness(){return null!=this.metallicRoughnessTexture?this.metallicRoughnessTexture.glTexture:null}get textureEmissive(){return null!=this.emissionTexture?this.emissionTexture.glTexture:null}get textureOcclusion(){return null!=this.occlusionTexture?this.occlusionTexture.glTexture:null}get textureNormal(){return null!=this.normalTexture?this.normalTexture.glTexture:null}prepareTechnique(e,t,r,o){const s=this._techniqueConfiguration;s.hasVertexColors=o.colors,s.hasNormals=o.normals,s.textureCoordinateType=o.textureCoordinates,s.hasMetallicRoughnessTexture=null!=this.metallicRoughnessTexture,s.hasEmissionTexture=null!=this.emissionTexture,s.hasOcclusionTexture=null!=this.occlusionTexture,s.hasNormalTexture=null!=this.normalTexture,s.transparencyPassType=t.identifier===M.Material&&null!=r.transparencyPassType?r.transparencyPassType:D.NONE,s.multipassEnabled=t.identifier===M.Material&&r.multipassEnabled,s.cullAboveGround=t.identifier===M.Material&&r.multipassTerrain.cullAboveGround,s.ellipsoidMode=this.ellipsoidMode,s.componentData=this.componentParameters.type,s.cullFace=this.commonMaterialParameters.cullFace,s.doubleSidedMode=this.commonMaterialParameters.doubleSided?w.View:w.None,s.hasColorTexture=null!=this.baseColorTexture;const a=this._computeWhichMaterialPass();if(s.blendingEnabled=a===k.Transparent||a===k.OpaqueAndTransparent,s.alphaDiscardMode=this.alphaDiscardMode,s.integratedMeshMode=this.isIntegratedMesh?V(r)?L(r)?y.ColorOverlayWithWater:y.ColorOverlay:y.NoOverlay:y.None,s.hasPolygonOffset=this.polygonOffsetEnabled,s.pbrMode=s.integratedMeshMode===y.ColorOverlayWithWater?S.WaterOnIntegratedMesh:this.usePBR?this.hasParametersFromSource?S.Schematic:S.Normal:S.Disabled,s.normalType=s.integratedMeshMode===y.None?s.hasNormals?C.Compressed:C.ScreenDerivative:C.Ground,s.hasSlicePlane=null!=r.slicePlane&&this.commonMaterialParameters.hasSlicePlane,t.identifier===M.ShadowMap)s.output=O.Shadow,s.vertexDiscardMode=x.None;else if(t.identifier===M.Highlight)s.output=O.Highlight,s.vertexDiscardMode=x.None;else{switch(a===k.OpaqueAndTransparent?s.vertexDiscardMode=t.transparent?x.Opaque:x.Transparent:s.vertexDiscardMode=x.None,s.output=t.output,s.receiveAmbientOcclusion=!1,s.receiveShadows=!1,t.output){case O.Color:s.receiveAmbientOcclusion=null!=r.ssao,s.hasOccludees=r.hasOccludees,s.receiveShadows=r.shadowMap.ready,s.hasScreenSpaceReflections=null!=r.ssr.lastFrameColor,s.hasCloudsReflections=null!=r.cloudsFade.data;break;case O.Alpha:s.hasOccludees=r.hasOccludees;break;case O.ObjectAndLayerIdColor:s.objectAndLayerIdColor=!0}s.snowCover=this.hasSnowCover(r)}return this._technique=e.releaseAndAcquire(d,s,this._technique),this._setClean(),this._technique}hasSnowCover(e){return null!=e.weather&&e.weatherVisible&&"snowy"===e.weather.type&&"enabled"===e.weather.snowCover}submit(e,t,r){if(0===this.objectOpacity)return;const o=r.renderable.geometry,s=r.components,a=r.renderable.meta.cameraDepthSquared,i=s.geometryRanges,l=s.highlightRanges,n=s.defaultShadowMapRanges;switch(this._computeWhichMaterialPass()){case k.Opaque:e.materialOpaque.submitDraw(this,o,i,a);break;case k.Transparent:e.materialTransparent.submitDraw(this,o,i,a);break;case k.OpaqueAndTransparent:e.materialOpaque.submitDraw(this,o,i,a),e.materialTransparent.submitDraw(this,o,i,a);break;case k.IntegratedMesh:e.materialIntegratedMesh.submitDraw(this,o,i,a),B(t)&&e.highlightIntegratedMesh.submitDraw(this,o,i,a)}const u=this.componentParameters.castShadows!==I.None;u&&e.shadowMap.submitDraw(this,o,i,a),null!=l&&(e.highlight.submitDraw(this,o,l,a),u&&e.highlightShadowMap.submitDraw(this,o,l,a)),u&&null!=n&&e.defaultShadowMap.submitDraw(this,o,n,a)}_computeWhichMaterialPass(){return this.isIntegratedMesh?k.IntegratedMesh:this.objectOpacity<1?k.Transparent:this.componentParameters.opaqueOverride===I.All?k.Opaque:this.baseColor[3]<1||this.alphaDiscardMode===N.Blend||this.alphaDiscardMode===N.MaskBlend?k.Transparent:this.componentParameters.transparent===I.None?k.Opaque:this.componentParameters.transparent===I.All?k.Transparent:k.OpaqueAndTransparent}}var k,I;e([T({vectorOps:u})],F.prototype,"baseColor",void 0),e([T()],F.prototype,"usePBR",void 0),e([T()],F.prototype,"hasParametersFromSource",void 0),e([T({vectorOps:i})],F.prototype,"mrrFactors",void 0),e([T({vectorOps:i})],F.prototype,"emissiveFactor",void 0),e([T({dispose:!0})],F.prototype,"baseColorTexture",void 0),e([T({dispose:!0})],F.prototype,"metallicRoughnessTexture",void 0),e([T({dispose:!0})],F.prototype,"emissionTexture",void 0),e([T({dispose:!0})],F.prototype,"occlusionTexture",void 0),e([T({dispose:!0})],F.prototype,"normalTexture",void 0),e([T()],F.prototype,"objectOpacity",void 0),e([v()],F.prototype,"commonMaterialParameters",void 0),e([v()],F.prototype,"componentParameters",void 0),e([T()],F.prototype,"textureAlphaCutoff",void 0),e([T()],F.prototype,"alphaDiscardMode",void 0),e([T()],F.prototype,"isIntegratedMesh",void 0),e([T()],F.prototype,"polygonOffsetEnabled",void 0),e([T()],F.prototype,"ellipsoidMode",void 0),e([T()],F.prototype,"hasOccludees",void 0),function(e){e[e.Opaque=0]="Opaque",e[e.Transparent=1]="Transparent",e[e.OpaqueAndTransparent=2]="OpaqueAndTransparent",e[e.IntegratedMesh=3]="IntegratedMesh"}(k||(k={}));class W extends b{constructor(){super(...arguments),this.doubleSided=!1,this.cullFace=A.Back,this.hasSlicePlane=!0}}e([T()],W.prototype,"doubleSided",void 0),e([T()],W.prototype,"cullFace",void 0),e([T()],W.prototype,"hasSlicePlane",void 0);class _ extends b{constructor(){super(...arguments),this.externalColor=h(1,1,1,1),this.externalColorMixMode=p.Multiply,this.castShadows=I.All}get transparent(){return this.externalColor[3]<1?I.All:I.None}get opaqueOverride(){return this.externalColorMixMode===p.Replace&&1===this.externalColor[3]?I.All:I.None}get visible(){return this.externalColor[3]>0?I.All:I.None}get type(){return g.Uniform}}e([T({vectorOps:u})],_.prototype,"externalColor",void 0),e([T()],_.prototype,"externalColorMixMode",void 0),e([T()],_.prototype,"castShadows",void 0),function(e){e[e.All=0]="All",e[e.Some=1]="Some",e[e.None=2]="None"}(I||(I={}));class E extends b{constructor(){super(...arguments),this.texture=null,this.transparent=I.None,this.opaqueOverride=I.None,this.castShadows=I.None}get type(){return g.Varying}}function B(e){return null!=e.overlay?.getTexture(c.Highlight)}function L(e){return null!=e.overlay?.getTexture(c.WaterNormal)}function V(e){return null!=e.overlay?.getTexture(c.ColorNoRasterImage)}e([T()],E.prototype,"texture",void 0),e([T()],E.prototype,"transparent",void 0),e([T()],E.prototype,"opaqueOverride",void 0),e([T()],E.prototype,"castShadows",void 0);export{W as CommonMaterialParameters,F as ComponentMaterial,I as ComponentParameterSummary,_ as ComponentParametersUniform,E as ComponentParametersVarying};
|
package/views/3d/webgl-engine/collections/Component/Material/shader/VertexDiscardByOpacity.glsl.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.28/esri/copyright.txt for details.
|
|
4
4
|
*/
|
|
5
|
-
import{
|
|
5
|
+
import{neverReached as e}from"../../../../../../../core/compilerUtils.js";import{glsl as a}from"../../../../core/shaderModules/interfaces.js";var r;function c(c,i){const t=c.vertex;switch(t.code.add(a`#define VERTEX_DISCARD_CUTOFF (1.0 - 1.0 / 255.0)`),i.vertexDiscardMode){case r.None:t.code.add(a`#define vertexDiscardByOpacity(_opacity_) {}`);break;case r.Opaque:t.code.add(a`#define vertexDiscardByOpacity(_opacity_) { if (_opacity_ > VERTEX_DISCARD_CUTOFF) { gl_Position = vec4(1e38, 1e38, 1e38, 1.0); return; } }`);break;case r.Transparent:t.code.add(a`#define vertexDiscardByOpacity(_opacity_) { if (_opacity_ <= VERTEX_DISCARD_CUTOFF) { gl_Position = vec4(1e38, 1e38, 1e38, 1.0); return; } }`);break;case r.COUNT:break;default:e(i.vertexDiscardMode)}}!function(e){e[e.None=0]="None",e[e.Transparent=1]="Transparent",e[e.Opaque=2]="Opaque",e[e.COUNT=3]="COUNT"}(r||(r={}));export{c as VertexDiscardByOpacity,r as VertexDiscardMode};
|
|
@@ -2,4 +2,4 @@
|
|
|
2
2
|
All material copyright ESRI, All Rights Reserved, unless otherwise specified.
|
|
3
3
|
See https://js.arcgis.com/4.28/esri/copyright.txt for details.
|
|
4
4
|
*/
|
|
5
|
-
import{releaseMaybe as e}from"../../../../core/maybe.js";import{MemCachePool as t}from"../../../../core/MemCachePool.js";import{PixelFormat as r,SizedPixelFormat as o,TextureWrapMode as a,PixelType as s,TextureSamplingMode as h,RenderbufferFormat as c,ColorAttachment as i}from"../../../webgl/enums.js";import{FramebufferObject as n}from"../../../webgl/FramebufferObject.js";import{Renderbuffer as l}from"../../../webgl/Renderbuffer.js";import{RenderbufferDescriptor as _}from"../../../webgl/RenderbufferDescriptor.js";import{Texture as p}from"../../../webgl/Texture.js";import{TextureDescriptor as
|
|
5
|
+
import{releaseMaybe as e}from"../../../../core/maybe.js";import{MemCachePool as t}from"../../../../core/MemCachePool.js";import{PixelFormat as r,SizedPixelFormat as o,TextureWrapMode as a,PixelType as s,TextureSamplingMode as h,RenderbufferFormat as c,ColorAttachment as i}from"../../../webgl/enums.js";import{FramebufferObject as n}from"../../../webgl/FramebufferObject.js";import{Renderbuffer as l}from"../../../webgl/Renderbuffer.js";import{RenderbufferDescriptor as _}from"../../../webgl/RenderbufferDescriptor.js";import{Texture as p}from"../../../webgl/Texture.js";import{TextureDescriptor as d}from"../../../webgl/TextureDescriptor.js";class u{constructor(e){this.rctx=e,this._peakMemoryUsage=0,this._allocatedMemory=new Set,this._cache=new t(e.newCache,"FBOCache"),this._depthCache=new t(e.newCache,"DepthAttachmentCache"),this._colorCache=new t(e.newCache,"ColorAttachmentCache")}destroy(){this._cache.destroy(),this._depthCache.destroy(),this._colorCache.destroy()}resetPeakMemoryUsage(){this._peakMemoryUsage=this._accumulateMemory()}get peakMemoryUsage(){return this._peakMemoryUsage}acquire(e,t,r){const o=D(e,t,r),a=this._cache.pop(o)||new E(new n(this.rctx,{...y[e],width:t,height:r}),(e=>(a.releaseDepth(),a.depth=this._acquireDepth(e,a.fbo.width,a.fbo.height),a.fbo.attachDepthStencil(a.depth.attachment),a)),((e,o)=>{const s=this._acquireColor(e,t,r);return a.colors??=new Map,a.colors.set(o,s),a.fbo.attachColorTexture(s.attachment,o),a}));return a.release=()=>{this._allocatedMemory.delete(a),a.releaseDepth(),this._cache.put(o,a),a.release=()=>console.log(`Double FBO release in ${(new Error).stack}`)},this.rctx.unbindTexture(a.fbo.colorTexture),this._trackHandle(a)}acquireDepth(e,t,r){return this._acquireDepth(e,t,r)}_acquireDepth(e,t,r){const o=D(e,t,r),a=this._depthCache.pop(o);if(a)return this._trackHandle(a);const s=e===x.DEPTH_STENCIL_TEXTURE?new T(new p(this.rctx,{...B[e],width:t,height:r}),(()=>{this._allocatedMemory.delete(s),this._depthCache.put(o,s)})):new T(new l(this.rctx,{...B[e],width:t,height:r}),(()=>{this._allocatedMemory.delete(s),this._depthCache.put(o,s)}));return this._trackHandle(s)}_acquireColor(e,t,r){const o=D(e,t,r),a=this._colorCache.pop(o);if(a)return this._trackHandle(a);const s=new M(new p(this.rctx,{...y[e],width:t,height:r}),(()=>{this._allocatedMemory.delete(s),this._colorCache.put(o,s)}));return this._trackHandle(s)}_trackHandle(e){return this._allocatedMemory.add(e),this._peakMemoryUsage=Math.max(this._peakMemoryUsage,this._accumulateMemory()),e}_accumulateMemory(){return Array.from(this._allocatedMemory.values()).reduce(((e,t)=>e+("colorTexture"in t?t.colorTexture?.gpuMemoryUsage??0:t.usedMemory)),0)}}class E{constructor(e,t,r){this.fbo=e,this.acquireDepth=t,this.acquireColor=r,this.release=()=>{}}dispose(){this.fbo.dispose()}releaseDepth(){this.fbo.detachDepthStencilTexture(),this.fbo.detachDepthStencilBuffer(),this.depth=e(this.depth)}detachDepth(){const e=this.depth;return this.depth=void 0,this.fbo.detachDepthStencilTexture(),this.fbo.detachDepthStencilBuffer(),e}attachDepth(e){return this.releaseDepth(),e&&(this.fbo.attachDepthStencil(e.attachment),this.depth=e),this}releaseColor(t){this.fbo.detachColorTexture(t);const r=this.colors?.get(t);this.colors?.delete(t),e(r)}get colorTexture(){return this.fbo?.colorTexture}getColorTexture(e=i.COLOR_ATTACHMENT0){return this.fbo?.getColorTexture(e)}get usedMemory(){return this.fbo.gpuMemoryUsage}}class m{constructor(e,t){this.attachment=e,this.release=t}dispose(){this.attachment.dispose()}get usedMemory(){return this.attachment.gpuMemoryUsage}}class T extends m{}class M extends m{constructor(e,t){super(e,t),this.attachment=e,this.release=t}}function D(e,t,r){return`${e}x${t}x${r}`}var R;!function(e){e[e.RED=0]="RED",e[e.RG=1]="RG",e[e.RGBA4=2]="RGBA4",e[e.RGBA=3]="RGBA",e[e.RGBA_MIPMAP=4]="RGBA_MIPMAP",e[e.R16F=5]="R16F",e[e.RGBA16F=6]="RGBA16F"}(R||(R={}));const w=new d;w.pixelFormat=r.RED,w.internalFormat=o.R8,w.wrapMode=a.CLAMP_TO_EDGE;const C=new d;C.pixelFormat=r.RG,C.internalFormat=o.RG8,C.wrapMode=a.CLAMP_TO_EDGE;const F=new d;F.internalFormat=o.RGBA4,F.dataType=s.UNSIGNED_SHORT_4_4_4_4,F.wrapMode=a.CLAMP_TO_EDGE;const f=new d;f.wrapMode=a.CLAMP_TO_EDGE;const A=new d;A.wrapMode=a.CLAMP_TO_EDGE,A.samplingMode=h.LINEAR_MIPMAP_LINEAR,A.hasMipmap=!0,A.maxAnisotropy=8;const g=new d;g.pixelFormat=r.RED,g.dataType=s.HALF_FLOAT,g.internalFormat=o.R16F,g.samplingMode=h.NEAREST;const P=new d;P.dataType=s.HALF_FLOAT,P.internalFormat=o.RGBA16F,P.samplingMode=h.NEAREST;const y={[R.RED]:w,[R.RG]:C,[R.RGBA4]:F,[R.RGBA]:f,[R.RGBA_MIPMAP]:A,[R.R16F]:g,[R.RGBA16F]:P};var x;!function(e){e[e.DEPTH_STENCIL_TEXTURE=0]="DEPTH_STENCIL_TEXTURE",e[e.DEPTH_STENCIL_BUFFER=1]="DEPTH_STENCIL_BUFFER",e[e.DEPTH24_BUFFER=2]="DEPTH24_BUFFER",e[e.DEPTH16_BUFFER=3]="DEPTH16_BUFFER"}(x||(x={}));const b=new d;b.pixelFormat=r.DEPTH_STENCIL,b.dataType=s.UNSIGNED_INT_24_8,b.samplingMode=h.NEAREST,b.wrapMode=a.CLAMP_TO_EDGE;const B={[x.DEPTH_STENCIL_TEXTURE]:b,[x.DEPTH_STENCIL_BUFFER]:new _(c.DEPTH24_STENCIL8,4),[x.DEPTH24_BUFFER]:new _(c.DEPTH_COMPONENT24,4),[x.DEPTH16_BUFFER]:new _(c.DEPTH_COMPONENT16,4)};export{R as ColorFormat,x as DepthFormat,u as FBOCache};
|