@arcgis/core 4.25.0-next.20220919 → 4.25.0-next.20220921
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/AggregateGraphic.js +1 -1
- package/assets/esri/core/workers/RemoteClient.js +1 -1
- package/assets/esri/core/workers/chunks/{9f31ab2247c9defb882c.js → 01ac91fc0bc6b4d4e3c6.js} +1 -1
- package/assets/esri/core/workers/chunks/{d26108352874af0b6762.js → 053564e659222e8f0efb.js} +1 -1
- package/assets/esri/core/workers/chunks/1c65fd714f637ac1ee8c.js +1 -0
- package/assets/esri/core/workers/chunks/{8588cbecb8e808f451fe.js → 249e32af1f2d433fae4c.js} +1 -1
- package/assets/esri/core/workers/chunks/{5b16b30ac3166f33e81e.js → 26690f4ec1f3cb8099c2.js} +1 -1
- package/assets/esri/core/workers/chunks/{be93b0cef85665446944.js → 274b4cdf6c8d77e8a2e6.js} +1 -1
- package/assets/esri/core/workers/chunks/{52dcfd6b8b1dfa864e44.js → 2cae0ec5f60ab42a49aa.js} +1 -1
- package/assets/esri/core/workers/chunks/43e4560d65e5ddeeef6f.js +1 -0
- package/assets/esri/core/workers/chunks/{f436c86f86236ea7ea04.js → 4641e10e0e8e9d257521.js} +1 -1
- package/assets/esri/core/workers/chunks/{7a45333de9ded92619c2.js → 466008f793c2e11e854c.js} +1 -1
- package/assets/esri/core/workers/chunks/{c9d655675552dcf6cef7.js → 4a699b41072ee88f0956.js} +1 -1
- package/assets/esri/core/workers/chunks/{14ea96e398f4842abe4e.js → 4fdd18f5cdaa0d82ebc1.js} +1 -1
- package/assets/esri/core/workers/chunks/{9662da3e1e37f3445186.js → 562b9619b8ee13734813.js} +1 -1
- package/assets/esri/core/workers/chunks/{5c1a5615c865c10209c2.js → 5880fa48bad79a7c93ab.js} +1 -1
- package/assets/esri/core/workers/chunks/58824250492b89ec24ea.js +1 -0
- package/assets/esri/core/workers/chunks/64a6b837f1d5d7ad7619.js +1 -0
- package/assets/esri/core/workers/chunks/{421241543afbc9a619ea.js → 64de93865088bbe0398f.js} +1 -1
- package/assets/esri/core/workers/chunks/{99d56a707039d645622c.js → 6a20d8740ec2a5b2c579.js} +1 -1
- package/assets/esri/core/workers/chunks/{8bab21bc6164a593278f.js → 771b92e524802de840ba.js} +1 -1
- package/assets/esri/core/workers/chunks/{dbb1bf97c85848bb8ce1.js → 7ce250cc6fbe68aef50d.js} +32 -32
- package/assets/esri/core/workers/chunks/{2c4938512dd726a177dd.js → 7fab18074b130b71a648.js} +1 -1
- package/assets/esri/core/workers/chunks/{f67357b3c6c591c9da5e.js → 872f1cb3596fb80e387f.js} +1 -1
- package/assets/esri/core/workers/chunks/{3ee81834b3217720cb48.js → 8874e69378a27d155f9d.js} +1 -1
- package/assets/esri/core/workers/chunks/{31de71018575457155e5.js → 8ee3da8677255b8c8709.js} +1 -1
- package/assets/esri/core/workers/chunks/{2e44aee22e70857b893c.js → 93631b10452b0e0189b3.js} +1 -1
- package/assets/esri/core/workers/chunks/{cb2dc84d972469445da6.js → 95cd9edca50ea163d50f.js} +1 -1
- package/assets/esri/core/workers/chunks/{d31bbb13af45ce8e45dc.js → acf9f753741b677afb44.js} +1 -1
- package/assets/esri/core/workers/chunks/{1455944edeba1560eb07.js → afdafa77f5ca1b9e3acc.js} +1 -1
- package/assets/esri/core/workers/chunks/{cf3e1ac63580bc495ea6.js → b4da35f1093f3731f9ac.js} +1 -1
- package/assets/esri/core/workers/chunks/{09f4296dcb80e3ae4b3d.js → b8eba8c9d5424a7ae5f2.js} +1 -1
- package/assets/esri/core/workers/chunks/bb0d86937faf0cd7d16d.js +1 -0
- package/assets/esri/core/workers/chunks/bf3e80023e156d5906c7.js +1 -0
- package/assets/esri/core/workers/chunks/{8ba83fee56dd4f306d87.js → c2a6ac7046134f725cf3.js} +1 -1
- package/assets/esri/core/workers/chunks/{5d3fabe66e1bce1b30fb.js → cc7569489b572b8b3b53.js} +1 -1
- package/assets/esri/core/workers/chunks/{fddd4ea487788e003fb1.js → d09f06eb4157a7c2c8ab.js} +1 -1
- package/assets/esri/core/workers/chunks/d1be3ab7846e3a555b6c.js +1 -0
- package/assets/esri/core/workers/chunks/e064035f959d68e9603f.js +1 -0
- package/assets/esri/core/workers/chunks/{d92975e56a1290255252.js → e09df62cf35d636b0975.js} +1 -1
- package/assets/esri/core/workers/chunks/{674fa5b93704ef08c9e8.js → e0c763e05feb1c2093ba.js} +1 -1
- package/assets/esri/core/workers/chunks/e20e99f8f76f5002437e.js +1 -0
- package/assets/esri/core/workers/chunks/{51289d2f5277af4023e9.js → ed33e019bc7775db2e50.js} +1 -1
- package/assets/esri/core/workers/chunks/ef95d6ab7b1c032ab4ad.js +1 -0
- package/assets/esri/core/workers/chunks/{48aa432e1bf60c68de14.js → f0c4b408a0b88adf6576.js} +1 -1
- package/assets/esri/core/workers/chunks/{169f4354a375db5de121.js → ffcbcb928b6cb8c596ad.js} +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_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/widgets/_Daylight.scss +1 -0
- package/assets/esri/themes/base/widgets/_Directions.scss +1 -2
- package/assets/esri/themes/dark/main.css +1 -1
- package/assets/esri/themes/light/main.css +1 -1
- package/assets/esri/themes/light/view.css +1 -1
- package/assets/esri/widgets/Feature/t9n/Feature_ar.json +1 -1
- package/assets/esri/widgets/Feature/t9n/Feature_bg.json +1 -1
- package/assets/esri/widgets/Feature/t9n/Feature_bs.json +1 -1
- package/assets/esri/widgets/Feature/t9n/Feature_ca.json +1 -1
- package/assets/esri/widgets/Feature/t9n/Feature_cs.json +1 -1
- package/assets/esri/widgets/Feature/t9n/Feature_da.json +1 -1
- package/assets/esri/widgets/Feature/t9n/Feature_de.json +1 -1
- package/assets/esri/widgets/Feature/t9n/Feature_el.json +1 -1
- package/assets/esri/widgets/Feature/t9n/Feature_es.json +1 -1
- package/assets/esri/widgets/Feature/t9n/Feature_et.json +1 -1
- package/assets/esri/widgets/Feature/t9n/Feature_fi.json +1 -1
- package/assets/esri/widgets/Feature/t9n/Feature_fr.json +1 -1
- package/assets/esri/widgets/Feature/t9n/Feature_he.json +1 -1
- package/assets/esri/widgets/Feature/t9n/Feature_hr.json +1 -1
- package/assets/esri/widgets/Feature/t9n/Feature_hu.json +1 -1
- package/assets/esri/widgets/Feature/t9n/Feature_id.json +1 -1
- package/assets/esri/widgets/Feature/t9n/Feature_it.json +1 -1
- package/assets/esri/widgets/Feature/t9n/Feature_ja.json +1 -1
- package/assets/esri/widgets/Feature/t9n/Feature_ko.json +1 -1
- package/assets/esri/widgets/Feature/t9n/Feature_lt.json +1 -1
- package/assets/esri/widgets/Feature/t9n/Feature_lv.json +1 -1
- package/assets/esri/widgets/Feature/t9n/Feature_nb.json +1 -1
- package/assets/esri/widgets/Feature/t9n/Feature_nl.json +1 -1
- package/assets/esri/widgets/Feature/t9n/Feature_pl.json +1 -1
- package/assets/esri/widgets/Feature/t9n/Feature_pt-BR.json +1 -1
- package/assets/esri/widgets/Feature/t9n/Feature_pt-PT.json +1 -1
- package/assets/esri/widgets/Feature/t9n/Feature_ro.json +1 -1
- package/assets/esri/widgets/Feature/t9n/Feature_ru.json +1 -1
- package/assets/esri/widgets/Feature/t9n/Feature_sk.json +1 -1
- package/assets/esri/widgets/Feature/t9n/Feature_sl.json +1 -1
- package/assets/esri/widgets/Feature/t9n/Feature_sr.json +1 -1
- package/assets/esri/widgets/Feature/t9n/Feature_sv.json +1 -1
- package/assets/esri/widgets/Feature/t9n/Feature_th.json +1 -1
- package/assets/esri/widgets/Feature/t9n/Feature_tr.json +1 -1
- package/assets/esri/widgets/Feature/t9n/Feature_uk.json +1 -1
- package/assets/esri/widgets/Feature/t9n/Feature_vi.json +1 -1
- package/assets/esri/widgets/Feature/t9n/Feature_zh-CN.json +1 -1
- package/assets/esri/widgets/Feature/t9n/Feature_zh-HK.json +1 -1
- package/assets/esri/widgets/Feature/t9n/Feature_zh-TW.json +1 -1
- package/assets/esri/widgets/FeatureTable/t9n/FeatureTable_ar.json +1 -1
- package/assets/esri/widgets/FeatureTable/t9n/FeatureTable_bg.json +1 -1
- package/assets/esri/widgets/FeatureTable/t9n/FeatureTable_bs.json +1 -1
- package/assets/esri/widgets/FeatureTable/t9n/FeatureTable_ca.json +1 -1
- package/assets/esri/widgets/FeatureTable/t9n/FeatureTable_cs.json +1 -1
- package/assets/esri/widgets/FeatureTable/t9n/FeatureTable_da.json +1 -1
- package/assets/esri/widgets/FeatureTable/t9n/FeatureTable_de.json +1 -1
- package/assets/esri/widgets/FeatureTable/t9n/FeatureTable_el.json +1 -1
- package/assets/esri/widgets/FeatureTable/t9n/FeatureTable_es.json +1 -1
- package/assets/esri/widgets/FeatureTable/t9n/FeatureTable_et.json +1 -1
- package/assets/esri/widgets/FeatureTable/t9n/FeatureTable_fi.json +1 -1
- package/assets/esri/widgets/FeatureTable/t9n/FeatureTable_fr.json +1 -1
- package/assets/esri/widgets/FeatureTable/t9n/FeatureTable_he.json +1 -1
- package/assets/esri/widgets/FeatureTable/t9n/FeatureTable_hr.json +1 -1
- package/assets/esri/widgets/FeatureTable/t9n/FeatureTable_hu.json +1 -1
- package/assets/esri/widgets/FeatureTable/t9n/FeatureTable_id.json +1 -1
- package/assets/esri/widgets/FeatureTable/t9n/FeatureTable_it.json +1 -1
- package/assets/esri/widgets/FeatureTable/t9n/FeatureTable_ja.json +1 -1
- package/assets/esri/widgets/FeatureTable/t9n/FeatureTable_ko.json +1 -1
- package/assets/esri/widgets/FeatureTable/t9n/FeatureTable_lt.json +1 -1
- package/assets/esri/widgets/FeatureTable/t9n/FeatureTable_lv.json +1 -1
- package/assets/esri/widgets/FeatureTable/t9n/FeatureTable_nb.json +1 -1
- package/assets/esri/widgets/FeatureTable/t9n/FeatureTable_nl.json +1 -1
- package/assets/esri/widgets/FeatureTable/t9n/FeatureTable_pl.json +1 -1
- package/assets/esri/widgets/FeatureTable/t9n/FeatureTable_pt-BR.json +1 -1
- package/assets/esri/widgets/FeatureTable/t9n/FeatureTable_pt-PT.json +1 -1
- package/assets/esri/widgets/FeatureTable/t9n/FeatureTable_ro.json +1 -1
- package/assets/esri/widgets/FeatureTable/t9n/FeatureTable_ru.json +1 -1
- package/assets/esri/widgets/FeatureTable/t9n/FeatureTable_sk.json +1 -1
- package/assets/esri/widgets/FeatureTable/t9n/FeatureTable_sl.json +1 -1
- package/assets/esri/widgets/FeatureTable/t9n/FeatureTable_sr.json +1 -1
- package/assets/esri/widgets/FeatureTable/t9n/FeatureTable_sv.json +1 -1
- package/assets/esri/widgets/FeatureTable/t9n/FeatureTable_th.json +1 -1
- package/assets/esri/widgets/FeatureTable/t9n/FeatureTable_tr.json +1 -1
- package/assets/esri/widgets/FeatureTable/t9n/FeatureTable_uk.json +1 -1
- package/assets/esri/widgets/FeatureTable/t9n/FeatureTable_vi.json +1 -1
- package/assets/esri/widgets/FeatureTable/t9n/FeatureTable_zh-CN.json +1 -1
- package/assets/esri/widgets/FeatureTable/t9n/FeatureTable_zh-HK.json +1 -1
- package/assets/esri/widgets/FeatureTable/t9n/FeatureTable_zh-TW.json +1 -1
- package/assets/esri/widgets/Popup/t9n/Popup_ar.json +1 -1
- package/assets/esri/widgets/Popup/t9n/Popup_bg.json +1 -1
- package/assets/esri/widgets/Popup/t9n/Popup_bs.json +1 -1
- package/assets/esri/widgets/Popup/t9n/Popup_ca.json +1 -1
- package/assets/esri/widgets/Popup/t9n/Popup_cs.json +1 -1
- package/assets/esri/widgets/Popup/t9n/Popup_da.json +1 -1
- package/assets/esri/widgets/Popup/t9n/Popup_de.json +1 -1
- package/assets/esri/widgets/Popup/t9n/Popup_el.json +1 -1
- package/assets/esri/widgets/Popup/t9n/Popup_es.json +1 -1
- package/assets/esri/widgets/Popup/t9n/Popup_et.json +1 -1
- package/assets/esri/widgets/Popup/t9n/Popup_fi.json +1 -1
- package/assets/esri/widgets/Popup/t9n/Popup_fr.json +1 -1
- package/assets/esri/widgets/Popup/t9n/Popup_he.json +1 -1
- package/assets/esri/widgets/Popup/t9n/Popup_hr.json +1 -1
- package/assets/esri/widgets/Popup/t9n/Popup_hu.json +1 -1
- package/assets/esri/widgets/Popup/t9n/Popup_id.json +1 -1
- package/assets/esri/widgets/Popup/t9n/Popup_it.json +1 -1
- package/assets/esri/widgets/Popup/t9n/Popup_ja.json +1 -1
- package/assets/esri/widgets/Popup/t9n/Popup_ko.json +1 -1
- package/assets/esri/widgets/Popup/t9n/Popup_lt.json +1 -1
- package/assets/esri/widgets/Popup/t9n/Popup_lv.json +1 -1
- package/assets/esri/widgets/Popup/t9n/Popup_nb.json +1 -1
- package/assets/esri/widgets/Popup/t9n/Popup_nl.json +1 -1
- package/assets/esri/widgets/Popup/t9n/Popup_pl.json +1 -1
- package/assets/esri/widgets/Popup/t9n/Popup_pt-BR.json +1 -1
- package/assets/esri/widgets/Popup/t9n/Popup_pt-PT.json +1 -1
- package/assets/esri/widgets/Popup/t9n/Popup_ro.json +1 -1
- package/assets/esri/widgets/Popup/t9n/Popup_ru.json +1 -1
- package/assets/esri/widgets/Popup/t9n/Popup_sk.json +1 -1
- package/assets/esri/widgets/Popup/t9n/Popup_sl.json +1 -1
- package/assets/esri/widgets/Popup/t9n/Popup_sr.json +1 -1
- package/assets/esri/widgets/Popup/t9n/Popup_sv.json +1 -1
- package/assets/esri/widgets/Popup/t9n/Popup_th.json +1 -1
- package/assets/esri/widgets/Popup/t9n/Popup_tr.json +1 -1
- package/assets/esri/widgets/Popup/t9n/Popup_uk.json +1 -1
- package/assets/esri/widgets/Popup/t9n/Popup_vi.json +1 -1
- package/assets/esri/widgets/Popup/t9n/Popup_zh-CN.json +1 -1
- package/assets/esri/widgets/Popup/t9n/Popup_zh-HK.json +1 -1
- package/assets/esri/widgets/Popup/t9n/Popup_zh-TW.json +1 -1
- package/assets/esri/widgets/support/t9n/DatePicker_ar.json +1 -1
- package/assets/esri/widgets/support/t9n/DatePicker_bg.json +1 -1
- package/assets/esri/widgets/support/t9n/DatePicker_bs.json +1 -1
- package/assets/esri/widgets/support/t9n/DatePicker_ca.json +1 -1
- package/assets/esri/widgets/support/t9n/DatePicker_cs.json +1 -1
- package/assets/esri/widgets/support/t9n/DatePicker_da.json +1 -1
- package/assets/esri/widgets/support/t9n/DatePicker_de.json +1 -1
- package/assets/esri/widgets/support/t9n/DatePicker_el.json +1 -1
- package/assets/esri/widgets/support/t9n/DatePicker_es.json +1 -1
- package/assets/esri/widgets/support/t9n/DatePicker_et.json +1 -1
- package/assets/esri/widgets/support/t9n/DatePicker_fi.json +1 -1
- package/assets/esri/widgets/support/t9n/DatePicker_fr.json +1 -1
- package/assets/esri/widgets/support/t9n/DatePicker_he.json +1 -1
- package/assets/esri/widgets/support/t9n/DatePicker_hr.json +1 -1
- package/assets/esri/widgets/support/t9n/DatePicker_hu.json +1 -1
- package/assets/esri/widgets/support/t9n/DatePicker_id.json +1 -1
- package/assets/esri/widgets/support/t9n/DatePicker_it.json +1 -1
- package/assets/esri/widgets/support/t9n/DatePicker_ja.json +1 -1
- package/assets/esri/widgets/support/t9n/DatePicker_ko.json +1 -1
- package/assets/esri/widgets/support/t9n/DatePicker_lt.json +1 -1
- package/assets/esri/widgets/support/t9n/DatePicker_lv.json +1 -1
- package/assets/esri/widgets/support/t9n/DatePicker_nb.json +1 -1
- package/assets/esri/widgets/support/t9n/DatePicker_nl.json +1 -1
- package/assets/esri/widgets/support/t9n/DatePicker_pl.json +1 -1
- package/assets/esri/widgets/support/t9n/DatePicker_pt-BR.json +1 -1
- package/assets/esri/widgets/support/t9n/DatePicker_pt-PT.json +1 -1
- package/assets/esri/widgets/support/t9n/DatePicker_ro.json +1 -1
- package/assets/esri/widgets/support/t9n/DatePicker_ru.json +1 -1
- package/assets/esri/widgets/support/t9n/DatePicker_sk.json +1 -1
- package/assets/esri/widgets/support/t9n/DatePicker_sl.json +1 -1
- package/assets/esri/widgets/support/t9n/DatePicker_sr.json +1 -1
- package/assets/esri/widgets/support/t9n/DatePicker_sv.json +1 -1
- package/assets/esri/widgets/support/t9n/DatePicker_th.json +1 -1
- package/assets/esri/widgets/support/t9n/DatePicker_tr.json +1 -1
- package/assets/esri/widgets/support/t9n/DatePicker_uk.json +1 -1
- package/assets/esri/widgets/support/t9n/DatePicker_vi.json +1 -1
- package/assets/esri/widgets/support/t9n/DatePicker_zh-CN.json +1 -1
- package/assets/esri/widgets/support/t9n/DatePicker_zh-HK.json +1 -1
- package/assets/esri/widgets/support/t9n/DatePicker_zh-TW.json +1 -1
- package/assets/esri/widgets/support/t9n/TimePicker_ar.json +1 -1
- package/assets/esri/widgets/support/t9n/TimePicker_bg.json +1 -1
- package/assets/esri/widgets/support/t9n/TimePicker_bs.json +1 -1
- package/assets/esri/widgets/support/t9n/TimePicker_ca.json +1 -1
- package/assets/esri/widgets/support/t9n/TimePicker_cs.json +1 -1
- package/assets/esri/widgets/support/t9n/TimePicker_da.json +1 -1
- package/assets/esri/widgets/support/t9n/TimePicker_de.json +1 -1
- package/assets/esri/widgets/support/t9n/TimePicker_el.json +1 -1
- package/assets/esri/widgets/support/t9n/TimePicker_es.json +1 -1
- package/assets/esri/widgets/support/t9n/TimePicker_et.json +1 -1
- package/assets/esri/widgets/support/t9n/TimePicker_fi.json +1 -1
- package/assets/esri/widgets/support/t9n/TimePicker_fr.json +1 -1
- package/assets/esri/widgets/support/t9n/TimePicker_he.json +1 -1
- package/assets/esri/widgets/support/t9n/TimePicker_hr.json +1 -1
- package/assets/esri/widgets/support/t9n/TimePicker_hu.json +1 -1
- package/assets/esri/widgets/support/t9n/TimePicker_id.json +1 -1
- package/assets/esri/widgets/support/t9n/TimePicker_it.json +1 -1
- package/assets/esri/widgets/support/t9n/TimePicker_ja.json +1 -1
- package/assets/esri/widgets/support/t9n/TimePicker_ko.json +1 -1
- package/assets/esri/widgets/support/t9n/TimePicker_lt.json +1 -1
- package/assets/esri/widgets/support/t9n/TimePicker_lv.json +1 -1
- package/assets/esri/widgets/support/t9n/TimePicker_nb.json +1 -1
- package/assets/esri/widgets/support/t9n/TimePicker_nl.json +1 -1
- package/assets/esri/widgets/support/t9n/TimePicker_pl.json +1 -1
- package/assets/esri/widgets/support/t9n/TimePicker_pt-BR.json +1 -1
- package/assets/esri/widgets/support/t9n/TimePicker_pt-PT.json +1 -1
- package/assets/esri/widgets/support/t9n/TimePicker_ro.json +1 -1
- package/assets/esri/widgets/support/t9n/TimePicker_ru.json +1 -1
- package/assets/esri/widgets/support/t9n/TimePicker_sk.json +1 -1
- package/assets/esri/widgets/support/t9n/TimePicker_sl.json +1 -1
- package/assets/esri/widgets/support/t9n/TimePicker_sr.json +1 -1
- package/assets/esri/widgets/support/t9n/TimePicker_sv.json +1 -1
- package/assets/esri/widgets/support/t9n/TimePicker_th.json +1 -1
- package/assets/esri/widgets/support/t9n/TimePicker_tr.json +1 -1
- package/assets/esri/widgets/support/t9n/TimePicker_uk.json +1 -1
- package/assets/esri/widgets/support/t9n/TimePicker_vi.json +1 -1
- package/assets/esri/widgets/support/t9n/TimePicker_zh-CN.json +1 -1
- package/assets/esri/widgets/support/t9n/TimePicker_zh-HK.json +1 -1
- package/assets/esri/widgets/support/t9n/TimePicker_zh-TW.json +1 -1
- package/chunks/CheckerBoard.glsl.js +3 -3
- package/chunks/ColorMaterial.glsl.js +5 -5
- package/chunks/ComponentShader.glsl.js +1 -1
- package/chunks/Compositing.glsl.js +4 -19
- package/chunks/DefaultMaterial.glsl.js +2 -2
- package/chunks/HUDCompositing.glsl.js +7 -0
- package/chunks/HeatmapDensity.glsl.js +4 -4
- package/chunks/ImageMaterial.glsl.js +1 -1
- package/chunks/Laserlines.glsl.js +5 -5
- package/chunks/LineMarker.glsl.js +1 -1
- package/chunks/MeasurementArrow.glsl.js +3 -3
- package/chunks/NativeLine.glsl.js +1 -1
- package/chunks/OITCompositing.glsl.js +13 -0
- package/chunks/OverlayCompositing.glsl.js +8 -0
- package/chunks/Path.glsl.js +3 -3
- package/chunks/Pattern.glsl.js +1 -1
- package/chunks/Precipitation.glsl.js +3 -3
- package/chunks/RealisticTree.glsl.js +2 -2
- package/chunks/RibbonLine.glsl.js +25 -25
- package/chunks/ShadedColorMaterial.glsl.js +1 -1
- package/chunks/ShadowHighlight.glsl.js +1 -1
- package/chunks/SlicePlaneMaterial.glsl.js +2 -2
- package/chunks/Terrain.glsl.js +4 -4
- package/chunks/WaterSurface.glsl.js +1 -1
- package/chunks/ar.js +1 -1
- package/chunks/bg_BG.js +1 -1
- package/chunks/boundedPlane.js +1 -1
- package/chunks/bs_BA.js +1 -1
- package/chunks/ca_ES.js +1 -1
- package/chunks/cameraUtilsPlanar.js +1 -1
- package/chunks/cameraUtilsSpherical.js +1 -1
- package/chunks/cs_CZ.js +1 -1
- package/chunks/da_DK.js +1 -1
- package/chunks/de_CH.js +1 -1
- package/chunks/de_DE.js +1 -1
- package/chunks/el_GR.js +1 -1
- package/chunks/en_CA.js +1 -1
- package/chunks/en_US.js +1 -1
- package/chunks/es_ES.js +1 -1
- package/chunks/et_EE.js +1 -1
- package/chunks/fi_FI.js +1 -1
- package/chunks/fr_FR.js +1 -1
- package/chunks/he_IL.js +1 -1
- package/chunks/hr_HR.js +1 -1
- package/chunks/hu_HU.js +1 -1
- package/chunks/id_ID.js +1 -1
- package/chunks/index.js +1 -1
- package/chunks/it_IT.js +1 -1
- package/chunks/ja_JP.js +1 -1
- package/chunks/ko_KR.js +1 -1
- package/chunks/lt_LT.js +1 -1
- package/chunks/lv_LV.js +1 -1
- package/chunks/mat3.js +1 -1
- package/chunks/nb_NO.js +1 -1
- package/chunks/nl_NL.js +1 -1
- package/chunks/pl_PL.js +1 -1
- package/chunks/pt_BR.js +1 -1
- package/chunks/pt_PT.js +1 -1
- package/chunks/quat.js +1 -1
- package/chunks/quat2.js +1 -1
- package/chunks/quatf64.js +1 -1
- package/chunks/ro_RO.js +1 -1
- package/chunks/ru_RU.js +1 -1
- package/chunks/sk_SK.js +1 -1
- package/chunks/sl_SL.js +1 -1
- package/chunks/sphere.js +1 -1
- package/chunks/sr_RS.js +1 -1
- package/chunks/sv_SE.js +1 -1
- package/chunks/th_TH.js +1 -1
- package/chunks/tr_TR.js +1 -1
- package/chunks/uk_UA.js +1 -1
- package/chunks/vec3.js +1 -1
- package/chunks/vec3f32.js +1 -1
- package/chunks/vec4f64.js +1 -1
- package/chunks/vi_VN.js +1 -1
- package/chunks/zh_Hans.js +1 -1
- package/chunks/zh_Hant.js +1 -1
- package/core/VectorStack.js +1 -1
- package/core/libs/gl-matrix-2/factories/quatf64.js +1 -1
- package/core/libs/gl-matrix-2/factories/vec3f32.js +1 -1
- package/core/libs/gl-matrix-2/factories/vec4f64.js +1 -1
- package/core/libs/gl-matrix-2/math/mat3.js +1 -1
- package/core/libs/gl-matrix-2/math/quat.js +1 -1
- package/core/libs/gl-matrix-2/math/vec3.js +1 -1
- package/core/perspectiveUtils.js +1 -1
- package/core/workers/workerFactory.js +1 -1
- package/geohash/GeohashTree.js +1 -1
- package/geometry/support/MeshTransform.js +1 -1
- package/geometry/support/axisAngle.js +1 -1
- package/geometry/support/axisAngleDegrees.js +1 -1
- package/geometry/support/lineSegment.js +1 -1
- package/geometry/support/meshUtils/exporters/gltf/gltf.js +1 -1
- package/geometry/support/meshUtils/exporters/gltf/node.js +1 -1
- package/geometry/support/meshUtils/georeference.js +1 -1
- package/geometry/support/meshUtils/loadGLTFMesh.js +1 -1
- package/geometry/support/meshUtils/projection.js +1 -1
- package/geometry/support/meshUtils/rotate.js +1 -1
- package/geometry/support/plane.js +1 -1
- package/interfaces.d.ts +70 -0
- package/layers/VoxelWasmPerSceneView.js +1 -1
- package/layers/buildingSublayers/BuildingComponentSublayer.js +1 -1
- package/layers/graphics/featureConversionUtils.js +1 -1
- package/layers/mixins/EditBusLayer.js +1 -1
- package/layers/mixins/OperationalLayer.js +1 -1
- package/layers/support/AggregateField.js +1 -1
- package/layers/support/ControlPointsGeoreference.js +1 -1
- package/layers/support/ExportImageServiceParameters.js +1 -1
- package/layers/support/OutStatistic.js +1 -1
- package/layers/support/VoxelVolume.js +1 -1
- package/layers/support/voxelPlaneUtils.js +1 -1
- package/package.json +1 -1
- package/rest/support/AggregateFeatureSet.js +5 -0
- package/support/revision.js +1 -1
- package/views/2d/ViewState.js +1 -1
- package/views/2d/engine/flow/FlowDisplayObject.js +1 -1
- package/views/2d/engine/imagery/RasterVFTile.js +1 -1
- package/views/2d/engine/vectorTiles/VectorTile.js +1 -1
- package/views/2d/engine/webgl/OverlayContainer.js +1 -1
- package/views/2d/engine/webgl/TiledDisplayObject.js +1 -1
- package/views/2d/engine/webgl/WGLTile.js +1 -1
- package/views/2d/engine/webgl/WorldExtentClipRenderer.js +1 -1
- package/views/2d/layers/FeatureLayerView2D.js +1 -1
- package/views/2d/layers/ImageryLayerView2D.js +1 -1
- package/views/2d/layers/LayerView2D.js +1 -1
- package/views/2d/layers/features/controllers/FeatureController2D.js +1 -1
- package/views/2d/layers/features/schemaUtils.js +1 -1
- package/views/2d/layers/features/support/BinStore.js +1 -1
- package/views/2d/layers/features/support/ClusterStore.js +1 -1
- package/views/2d/layers/graphics/GraphicBoundsRenderer.js +1 -1
- package/views/2d/layers/imagery/ImageryView2D.js +1 -1
- package/views/2d/layers/support/DebugOverlay.js +1 -1
- package/views/2d/layers/support/ExportStrategy.js +1 -1
- package/views/2d/layers/support/FeatureLayerProxy.js +1 -1
- package/views/2d/layers/support/clusterUtils.js +1 -1
- package/views/3d/analysis/AreaMeasurement/support/MeasurementData.js +1 -1
- package/views/3d/analysis/Dimensioning/DimensioningTool.js +1 -1
- package/views/3d/analysis/Dimensioning/LengthDimensionComputation.js +1 -1
- package/views/3d/analysis/Dimensioning/LengthDimensionSubTool.js +1 -1
- package/views/3d/analysis/Dimensioning/LengthDimensionVisualization.js +1 -1
- package/views/3d/analysis/Dimensioning/lengthDimensionUtils.js +1 -1
- package/views/3d/analysis/LineOfSight/LineOfSightController.js +1 -1
- package/views/3d/analysis/Slice/SliceTool.js +1 -1
- package/views/3d/analysis/Slice/sliceToolConfig.js +1 -1
- package/views/3d/analysis/Slice/sliceToolUtils.js +1 -1
- package/views/3d/camera/constraintUtils/distance.js +1 -1
- package/views/3d/camera/constraintUtils/tilt.js +1 -1
- package/views/3d/environment/CloudsComposition.js +1 -1
- package/views/3d/environment/CloudsCompositionParameters.js +1 -1
- package/views/3d/environment/CloudsGenerator.js +1 -1
- package/views/3d/environment/CloudsPresets.js +1 -1
- package/views/3d/environment/EnvironmentRenderer.js +1 -1
- package/views/3d/environment/Fog.js +1 -1
- package/views/3d/environment/PanoramicAtmosphere.js +1 -1
- package/views/3d/environment/Precipitation.js +1 -1
- package/views/3d/environment/SceneViewEnvironmentManager.js +1 -1
- package/views/3d/environment/SimpleAtmosphere.js +1 -1
- package/views/3d/environment/weatherUtils.js +1 -1
- package/views/3d/externalRenderers/ExternalRendererStore.js +1 -1
- package/views/3d/externalRenderers/RenderContext.js +1 -1
- package/views/3d/glTF/internal/Resource.js +1 -1
- package/views/3d/interactive/Manipulator3D.js +1 -1
- package/views/3d/interactive/editingTools/reshapeGraphic/edgeOffsetUtils.js +1 -1
- package/views/3d/interactive/editingTools/settings.js +1 -1
- package/views/3d/interactive/editingTools/transformGraphic/ExtentTransformTool.js +1 -1
- package/views/3d/interactive/editingTools/transformGraphic/GraphicScaleRotateTransform.js +1 -1
- package/views/3d/interactive/manipulatorUtils.js +1 -1
- package/views/3d/interactive/visualElements/ExtendedLineVisualElement.js +1 -1
- package/views/3d/interactive/visualElements/LineVisualElement.js +1 -1
- package/views/3d/interactive/visualElements/ParallelLineVisualElement.js +1 -1
- package/views/3d/layers/BuildingComponentSublayerView3D.js +1 -1
- package/views/3d/layers/I3SMeshView3D.js +1 -1
- package/views/3d/layers/ImageryLayerView3D.js +1 -1
- package/views/3d/layers/PointCloudLayerView3D.js +1 -1
- package/views/3d/layers/PointCloudWorker.js +1 -1
- package/views/3d/layers/SceneLayerGraphicsView3D.js +1 -1
- package/views/3d/layers/graphics/Deconflictor.js +1 -1
- package/views/3d/layers/graphics/Graphics3DCore.js +1 -1
- package/views/3d/layers/graphics/Graphics3DExtrudeSymbolLayer.js +1 -1
- package/views/3d/layers/graphics/Graphics3DFeatureProcessor.js +1 -1
- package/views/3d/layers/graphics/Graphics3DLodInstanceGraphicLayer.js +1 -1
- package/views/3d/layers/graphics/Graphics3DObject3DGraphicLayer.js +1 -1
- package/views/3d/layers/graphics/Graphics3DObjectSymbolLayer.js +1 -1
- package/views/3d/layers/graphics/Graphics3DPathSymbolLayer.js +1 -1
- package/views/3d/layers/graphics/elevationAlignPointsInFeatures.js +1 -1
- package/views/3d/layers/graphics/objectResourceUtils.js +1 -1
- package/views/3d/layers/i3s/I3SElevationProvider.js +1 -1
- package/views/3d/layers/i3s/I3SIndex.js +1 -1
- package/views/3d/layers/i3s/I3SUtil.js +1 -1
- package/views/3d/layers/i3s/I3SViewportQueries.js +1 -1
- package/views/3d/layers/i3s/PointRenderer.js +1 -1
- package/views/3d/layers/support/FeatureTileVisibility3D.js +1 -1
- package/views/3d/layers/support/I3STreeDebugger.js +1 -1
- package/views/3d/layers/support/edgeUtils.js +1 -1
- package/views/3d/layers/support/uvUtils.js +1 -1
- package/views/3d/state/Frustum.js +1 -1
- package/views/3d/state/controllers/GamepadKeyboardController.js +1 -1
- package/views/3d/state/controllers/RotateController.js +1 -1
- package/views/3d/state/controllers/global/PinchAndPanController.js +1 -1
- package/views/3d/state/controllers/local/PinchAndPanController.js +1 -1
- package/views/3d/state/controllers/local/ZoomController.js +1 -1
- package/views/3d/state/controllers/momentum/ZoomPlanarMomentumController.js +1 -1
- package/views/3d/state/utils/navigationUtils.js +1 -1
- package/views/3d/support/FrustumExtentIntersection.js +1 -1
- package/views/3d/support/orientedBoundingBox.js +1 -1
- package/views/3d/support/pointsOfInterest/CameraOnSurface.js +1 -1
- package/views/3d/support/pointsOfInterest/CenterOnSurface.js +1 -1
- package/views/3d/support/pointsOfInterest/PointsOfInterest.js +1 -1
- package/views/3d/support/sunUtils.js +1 -1
- package/views/3d/terrain/OverlayManager.js +1 -1
- package/views/3d/terrain/OverlayRenderer.js +1 -1
- package/views/3d/terrain/PatchRenderData.js +1 -1
- package/views/3d/terrain/TerrainRenderer.js +1 -1
- package/views/3d/terrain/TerrainSurface.js +1 -1
- package/views/3d/terrain/Tile.js +1 -1
- package/views/3d/webgl-engine/collections/Component/ComponentObjectCollection.js +1 -1
- package/views/3d/webgl-engine/collections/Component/DepthRange.js +1 -1
- package/views/3d/webgl-engine/collections/Component/Material/ComponentMaterial.js +1 -1
- package/views/3d/webgl-engine/core/renderPasses/RenderPassManager.js +1 -1
- package/views/3d/webgl-engine/core/shaderLibrary/Slice.glsl.js +1 -1
- package/views/3d/webgl-engine/core/shaderLibrary/attributes/InstancedDoublePrecision.glsl.js +1 -1
- package/views/3d/webgl-engine/core/shaderLibrary/attributes/VertexPosition.glsl.js +2 -2
- package/views/3d/webgl-engine/core/shaderLibrary/default/DefaultMaterialAuxiliaryPasses.glsl.js +6 -6
- package/views/3d/webgl-engine/core/shaderLibrary/hud/HUD.glsl.js +2 -2
- package/views/3d/webgl-engine/core/shaderLibrary/shading/EvaluateSceneLighting.glsl.js +13 -13
- package/views/3d/webgl-engine/core/shaderLibrary/shading/MainLighting.glsl.js +1 -1
- package/views/3d/webgl-engine/core/shaderLibrary/util/CloudsParallaxShading.glsl.js +9 -9
- package/views/3d/webgl-engine/core/shaderLibrary/util/View.glsl.js +1 -1
- package/views/3d/webgl-engine/core/shaderTechnique/ShaderTechniqueRepository.js +1 -1
- package/views/3d/webgl-engine/core/util/TwoVectorPosition.js +1 -1
- package/views/3d/webgl-engine/lib/AnimationTimer.js +1 -1
- package/views/3d/webgl-engine/lib/BindParameters.js +1 -1
- package/views/3d/webgl-engine/lib/Camera.js +1 -1
- package/views/3d/webgl-engine/lib/CompositingHelper.js +1 -1
- package/views/3d/webgl-engine/lib/GeometryRecord.js +1 -1
- package/views/3d/webgl-engine/lib/GeometryUtil.js +1 -1
- package/views/3d/webgl-engine/lib/Highlight.js +1 -1
- package/views/3d/webgl-engine/lib/Intersector.js +1 -1
- package/views/3d/webgl-engine/lib/Object3D.js +1 -1
- package/views/3d/webgl-engine/lib/ObjectAndLayerIdRenderHelper.js +1 -1
- package/views/3d/webgl-engine/lib/OffscreenRendering.js +1 -1
- package/views/3d/webgl-engine/lib/RenderGeometry.js +1 -1
- package/views/3d/webgl-engine/lib/Renderer.js +1 -1
- package/views/3d/webgl-engine/lib/ShadowMap.js +1 -1
- package/views/3d/webgl-engine/lib/Update.js +5 -0
- package/views/3d/webgl-engine/lib/depthRangeUtils.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/lib/edgeRendering/edgePreprocessing.js +1 -1
- package/views/3d/webgl-engine/lib/lodRendering/InstanceData.js +1 -1
- package/views/3d/webgl-engine/lib/lodRendering/InstanceOctree.js +1 -1
- package/views/3d/webgl-engine/lib/lodRendering/LodRenderer.js +1 -1
- package/views/3d/webgl-engine/lib/pathGeometryUtils.js +1 -1
- package/views/3d/webgl-engine/lib/verticalOffsetUtils.js +1 -1
- package/views/3d/webgl-engine/lighting/SceneLighting.js +1 -1
- package/views/3d/webgl-engine/lighting/SphericalHarmonics.js +1 -1
- package/views/3d/webgl-engine/materials/HUDMaterial.js +1 -1
- package/views/3d/webgl-engine/materials/LineMarkerMaterial.js +1 -1
- package/views/3d/webgl-engine/materials/MeasurementArrowMaterial.js +1 -1
- package/views/3d/webgl-engine/materials/NativeLineMaterial.js +1 -1
- package/views/3d/webgl-engine/materials/RibbonLineMaterial.js +1 -1
- package/views/3d/webgl-engine/materials/WaterGLMaterial.js +1 -1
- package/views/3d/webgl-engine/parts/RenderView.js +1 -1
- package/views/3d/webgl-engine/parts/ScreenshotManager.js +1 -1
- package/views/3d/webgl-engine/shaders/Compositing.glsl.js +1 -1
- package/views/3d/webgl-engine/shaders/CompositingTechnique.js +1 -1
- package/views/3d/webgl-engine/shaders/CompositingTechniqueConfiguration.js +1 -1
- package/views/3d/webgl-engine/shaders/HUDCompositing.glsl.js +5 -0
- package/views/3d/webgl-engine/shaders/HUDCompositingTechnique.js +5 -0
- package/views/3d/webgl-engine/shaders/OITCompositing.glsl.js +5 -0
- package/views/3d/webgl-engine/shaders/OITCompositingTechnique.js +5 -0
- package/views/3d/webgl-engine/shaders/OverlayCompositing.glsl.js +5 -0
- package/views/3d/webgl-engine/shaders/OverlayCompositingTechnique.js +5 -0
- package/views/3d/webgl-engine/shaders/TerrainTechniqueConfiguration.js +1 -1
- package/views/SceneView.js +1 -1
- package/views/draw/support/surfaceCoordinateSystems.js +1 -1
- package/views/interactive/coordinateHelper.js +1 -1
- package/views/interactive/editGeometry/operations/OffsetEdgeVertex.js +1 -1
- package/views/interactive/editGeometry/support/editPlaneUtils.js +1 -1
- package/views/interactive/snapping/LineSnapper.js +1 -1
- package/views/interactive/snapping/ParallelLineSnapper.js +1 -1
- package/views/interactive/snapping/RightAngleSnapper.js +1 -1
- package/views/interactive/snapping/RightAngleTriangleSnapper.js +1 -1
- package/views/interactive/snapping/SnappingAlgorithm.js +1 -1
- package/views/interactive/snapping/SnappingManager.js +1 -1
- package/views/interactive/snapping/featureSources/FeatureCollectionSnappingSource.js +1 -1
- package/views/interactive/snapping/featureSources/FeatureServiceSnappingSource.js +1 -1
- package/views/interactive/snapping/featureSources/GraphicsSnappingSource.js +1 -1
- package/views/interactive/snapping/featureSources/SnappingCandidateElevationAligner.js +1 -1
- package/views/interactive/snapping/featureSources/SnappingResultElevationFilter.js +1 -1
- package/views/interactive/snapping/featureSources/featureServiceSource/FeatureServiceSnappingSourceWorker.js +1 -1
- package/views/interactive/snapping/featureSources/featureServiceSource/FeatureServiceSnappingSourceWorkerHandle.js +1 -1
- package/views/interactive/snapping/featureSources/sceneLayerSource/SceneLayerSnappingSourceWorker.js +1 -1
- package/views/interactive/snapping/featureSources/snappingResultElevationUtils.js +5 -0
- package/views/interactive/snapping/snappingUtils.js +1 -1
- package/views/layers/FeatureLayerView.js +1 -1
- package/views/navigation/PanSphericalMomentumEstimator.js +1 -1
- package/views/support/Scheduler.js +1 -1
- package/views/support/euclideanAreaMeasurementUtils.js +1 -1
- package/views/support/geometry3dUtils.js +1 -1
- package/widgets/Directions/support/resources.js +1 -1
- package/widgets/Directions.js +1 -1
- package/widgets/ElevationProfile/support/ProfileLines3D.js +1 -1
- package/widgets/ElevationProfile/support/constants.js +1 -1
- package/widgets/Feature/FeatureRelationship/FeatureRelationshipViewModel.js +1 -1
- package/widgets/Feature/FeatureRelationship.js +1 -1
- package/widgets/Legend/LegendViewModel.js +1 -1
- package/widgets/Legend/support/ActiveLayerInfo.js +1 -1
- package/widgets/Weather/LabeledSlider.js +1 -1
- package/widgets/Weather.js +1 -1
- package/assets/esri/core/workers/chunks/0059699bf824f851d51c.js +0 -1
- package/assets/esri/core/workers/chunks/01a6005569d0820992a0.js +0 -1
- package/assets/esri/core/workers/chunks/2eb547a0be305f2c816c.js +0 -1
- package/assets/esri/core/workers/chunks/36dd5654df5c7f00406d.js +0 -1
- package/assets/esri/core/workers/chunks/36e0a0d5f86b2b4b88f9.js +0 -1
- package/assets/esri/core/workers/chunks/8b8a813f5e6d6551a816.js +0 -1
- package/assets/esri/core/workers/chunks/bf84189bd9bf3de81df9.js +0 -1
- package/assets/esri/core/workers/chunks/cd7f5c3d328166f28f59.js +0 -1
- package/assets/esri/core/workers/chunks/de128d8a643b4297940b.js +0 -1
- package/assets/esri/core/workers/chunks/e208d9c34f5db4481441.js +0 -1
package/views/3d/webgl-engine/core/shaderLibrary/default/DefaultMaterialAuxiliaryPasses.glsl.js
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
All material copyright ESRI, All Rights Reserved, unless otherwise specified.
|
|
3
3
|
See https://js.arcgis.com/4.25/esri/copyright.txt for details.
|
|
4
4
|
*/
|
|
5
|
-
import{isSome as o}from"../../../../../../core/maybe.js";import{I as r}from"../../../../../../chunks/mat4f64.js";import{addNearFar as e}from"../ForwardLinearDepth.glsl.js";import{ShaderOutput as t}from"../ShaderOutput.js";import{SliceDraw as i}from"../Slice.glsl.js";import{Transform as a}from"../Transform.glsl.js";import{NormalAttribute as s,NormalAttributeType as l}from"../attributes/NormalAttribute.glsl.js";import{ObjectAndLayerIdColor as d}from"../attributes/ObjectAndLayerIdColor.glsl.js";import{TextureCoordinateAttribute as n}from"../attributes/TextureCoordinateAttribute.glsl.js";import{VertexNormal as
|
|
5
|
+
import{isSome as o}from"../../../../../../core/maybe.js";import{I as r}from"../../../../../../chunks/mat4f64.js";import{addNearFar as e}from"../ForwardLinearDepth.glsl.js";import{ShaderOutput as t}from"../ShaderOutput.js";import{SliceDraw as i}from"../Slice.glsl.js";import{Transform as a}from"../Transform.glsl.js";import{NormalAttribute as s,NormalAttributeType as l}from"../attributes/NormalAttribute.glsl.js";import{ObjectAndLayerIdColor as d}from"../attributes/ObjectAndLayerIdColor.glsl.js";import{TextureCoordinateAttribute as n}from"../attributes/TextureCoordinateAttribute.glsl.js";import{VertexNormal as c}from"../attributes/VertexNormal.glsl.js";import{OutputDepth as u}from"../output/OutputDepth.glsl.js";import{OutputHighlight as m}from"../output/OutputHighlight.glsl.js";import{VisualVariables as p}from"../shading/VisualVariables.glsl.js";import{DiscardOrAdjustAlphaPass as v}from"../util/AlphaDiscard.glsl.js";import{addProjViewLocalOrigin as f}from"../util/View.glsl.js";import{glsl as g}from"../../shaderModules/interfaces.js";import{Matrix4PassUniform as h}from"../../shaderModules/Matrix4PassUniform.js";import{Texture2DPassUniform as x}from"../../shaderModules/Texture2DPassUniform.js";import{AlphaDiscardMode as j}from"../../../lib/basicInterfaces.js";function b(b,O){const{vertex:w,fragment:C}=b,T=O.hasModelTransformation;T&&w.uniforms.add(new h("model",(e=>o(e.modelTransformation)?e.modelTransformation:r)));const V=O.hasColorTexture&&O.alphaDiscardMode!==j.Opaque;switch(O.output){case t.Depth:case t.Shadow:case t.ShadowHighlight:case t.ShadowExludeHighlight:case t.ObjectAndLayerIdColor:f(w,O),b.include(a,O),b.include(n,O),b.include(p,O),b.include(u,O),b.include(i,O),b.include(d,O),e(b),b.varyings.add("depth","float"),V&&C.uniforms.add(new x("tex",(o=>o.texture))),w.code.add(g`
|
|
6
6
|
void main(void) {
|
|
7
7
|
vpos = calculateVPos();
|
|
8
8
|
vpos = subtractOrigin(vpos);
|
|
@@ -11,7 +11,7 @@ import{isSome as o}from"../../../../../../core/maybe.js";import{I as r}from"../.
|
|
|
11
11
|
forwardTextureCoordinates();
|
|
12
12
|
forwardObjectAndLayerIdColor();
|
|
13
13
|
}
|
|
14
|
-
`),b.include(v,O),C.add(g`
|
|
14
|
+
`),b.include(v,O),C.code.add(g`
|
|
15
15
|
void main(void) {
|
|
16
16
|
discardBySlice(vpos);
|
|
17
17
|
${V?g`
|
|
@@ -19,7 +19,7 @@ import{isSome as o}from"../../../../../../core/maybe.js";import{I as r}from"../.
|
|
|
19
19
|
discardOrAdjustAlpha(texColor);`:""}
|
|
20
20
|
${O.output===t.ObjectAndLayerIdColor?g`outputObjectAndLayerIdColor();`:g`outputDepth(depth);`}
|
|
21
21
|
}
|
|
22
|
-
`);break;case t.Normal:f(
|
|
22
|
+
`);break;case t.Normal:f(w,O),b.include(a,O),b.include(s,O),b.include(c,O),b.include(n,O),b.include(p,O),V&&C.uniforms.add(new x("tex",(o=>o.texture))),b.varyings.add("vPositionView","vec3"),w.code.add(g`
|
|
23
23
|
void main(void) {
|
|
24
24
|
vpos = calculateVPos();
|
|
25
25
|
vpos = subtractOrigin(vpos);
|
|
@@ -29,7 +29,7 @@ import{isSome as o}from"../../../../../../core/maybe.js";import{I as r}from"../.
|
|
|
29
29
|
gl_Position = transformPosition(proj, view, ${T?"model,":""} vpos);
|
|
30
30
|
forwardTextureCoordinates();
|
|
31
31
|
}
|
|
32
|
-
`),b.include(i,O),b.include(v,O),C.add(g`
|
|
32
|
+
`),b.include(i,O),b.include(v,O),C.code.add(g`
|
|
33
33
|
void main() {
|
|
34
34
|
discardBySlice(vpos);
|
|
35
35
|
${V?g`
|
|
@@ -42,7 +42,7 @@ import{isSome as o}from"../../../../../../core/maybe.js";import{I as r}from"../.
|
|
|
42
42
|
if (gl_FrontFacing == false) normal = -normal;`}
|
|
43
43
|
gl_FragColor = vec4(vec3(0.5) + 0.5 * normal, 1.0);
|
|
44
44
|
}
|
|
45
|
-
`);break;case t.Highlight:f(
|
|
45
|
+
`);break;case t.Highlight:f(w,O),b.include(a,O),b.include(n,O),b.include(p,O),V&&C.uniforms.add(new x("tex",(o=>o.texture))),w.code.add(g`
|
|
46
46
|
void main(void) {
|
|
47
47
|
vpos = calculateVPos();
|
|
48
48
|
vpos = subtractOrigin(vpos);
|
|
@@ -50,7 +50,7 @@ import{isSome as o}from"../../../../../../core/maybe.js";import{I as r}from"../.
|
|
|
50
50
|
gl_Position = transformPosition(proj, view, ${T?"model,":""} vpos);
|
|
51
51
|
forwardTextureCoordinates();
|
|
52
52
|
}
|
|
53
|
-
`),b.include(i,O),b.include(v,O),b.include(
|
|
53
|
+
`),b.include(i,O),b.include(v,O),b.include(m),C.code.add(g`
|
|
54
54
|
void main() {
|
|
55
55
|
discardBySlice(vpos);
|
|
56
56
|
${V?g`
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
All material copyright ESRI, All Rights Reserved, unless otherwise specified.
|
|
3
3
|
See https://js.arcgis.com/4.25/esri/copyright.txt for details.
|
|
4
4
|
*/
|
|
5
|
-
import{addVerticalOffset as e}from"../attributes/VerticalOffset.glsl.js";import{HUDTransparentRenderStyle as t}from"./HUDUniforms.js";import{ScreenSizePerspective as o,addScreenSizePerspectiveAlignment as a}from"../util/ScreenSizePerspective.glsl.js";import{addProjViewLocalOrigin as i,addCameraPosition as r,addViewNormal as s}from"../util/View.glsl.js";import{Float4PassUniform as n}from"../../shaderModules/Float4PassUniform.js";import{FloatPassUniform as l}from"../../shaderModules/FloatPassUniform.js";import{glsl as c}from"../../shaderModules/interfaces.js";import{Texture2DPassUniform as f}from"../../shaderModules/Texture2DPassUniform.js";import{VertexAttribute as d}from"../../../lib/VertexAttribute.js";var p;function u(u,v){u.include(o),u.attributes.add(d.POSITION,"vec3"),u.attributes.add(d.NORMAL,"vec3"),u.attributes.add(d.AUXPOS1,"vec4");const m=u.vertex;i(
|
|
5
|
+
import{addVerticalOffset as e}from"../attributes/VerticalOffset.glsl.js";import{HUDTransparentRenderStyle as t}from"./HUDUniforms.js";import{ScreenSizePerspective as o,addScreenSizePerspectiveAlignment as a}from"../util/ScreenSizePerspective.glsl.js";import{addProjViewLocalOrigin as i,addCameraPosition as r,addViewNormal as s}from"../util/View.glsl.js";import{Float4PassUniform as n}from"../../shaderModules/Float4PassUniform.js";import{FloatPassUniform as l}from"../../shaderModules/FloatPassUniform.js";import{glsl as c}from"../../shaderModules/interfaces.js";import{Texture2DPassUniform as f}from"../../shaderModules/Texture2DPassUniform.js";import{VertexAttribute as d}from"../../../lib/VertexAttribute.js";var p;function u(u,v){u.include(o),u.attributes.add(d.POSITION,"vec3"),u.attributes.add(d.NORMAL,"vec3"),u.attributes.add(d.AUXPOS1,"vec4");const m=u.vertex;i(m,v),r(m,v),m.uniforms.add([new n("viewport",((e,t)=>t.camera.fullViewport)),new l("polygonOffset",(e=>e.shaderPolygonOffset)),new l("cameraGroundRelative",((e,t)=>t.camera.aboveGround?1:-1)),new l("renderTransparentlyOccludedHUD",((e,o)=>o.renderTransparentlyOccludedHUD===t.Occluded?1:o.renderTransparentlyOccludedHUD===t.NotOccluded?0:.75)),new f("hudVisibilityTexture",((e,t)=>t.hudVisibilityTexture))]),v.hasVerticalOffset&&e(m),m.constants.add("smallOffsetAngle","float",.984807753012208),m.code.add(c`struct ProjectHUDAux {
|
|
6
6
|
vec3 posModel;
|
|
7
7
|
vec3 posView;
|
|
8
8
|
vec3 vnormal;
|
|
@@ -26,7 +26,7 @@ posView /= factor;
|
|
|
26
26
|
}
|
|
27
27
|
}
|
|
28
28
|
return groundRelative;
|
|
29
|
-
}`),v.isDraped&&!v.hasVerticalOffset||s(
|
|
29
|
+
}`),v.isDraped&&!v.hasVerticalOffset||s(m),v.isDraped||(m.uniforms.add(new l("perDistancePixelRatio",((e,t)=>Math.tan(t.camera.fovY/2)/(t.camera.fullViewport[2]/2)))),m.code.add(c`void applyHUDVerticalGroundOffset(vec3 normalModel, inout vec3 posModel, inout vec3 posView) {
|
|
30
30
|
float distanceToCamera = length(posView);
|
|
31
31
|
float pixelOffset = distanceToCamera * perDistancePixelRatio * 0.5;
|
|
32
32
|
vec3 modelOffset = normalModel * cameraGroundRelative * pixelOffset;
|
|
@@ -2,19 +2,19 @@
|
|
|
2
2
|
All material copyright ESRI, All Rights Reserved, unless otherwise specified.
|
|
3
3
|
See https://js.arcgis.com/4.25/esri/copyright.txt for details.
|
|
4
4
|
*/
|
|
5
|
-
import{
|
|
5
|
+
import{neverReached as i}from"../../../../../../core/compilerUtils.js";import{EvaluateAmbientLighting as n}from"./EvaluateAmbientLighting.glsl.js";import{EvaluateAmbientOcclusion as t}from"./EvaluateAmbientOcclusion.glsl.js";import{addMainLightDirection as e,addMainLightIntensity as o,MainLighting as a}from"./MainLighting.glsl.js";import{PhysicallyBasedRendering as r}from"./PhysicallyBasedRendering.glsl.js";import{PBRMode as l}from"./PhysicallyBasedRenderingParameters.glsl.js";import{PiUtils as d}from"./PiUtils.glsl.js";import{BooleanPassUniform as c}from"../../shaderModules/BooleanPassUniform.js";import{FloatPassUniform as s}from"../../shaderModules/FloatPassUniform.js";import{glsl as m}from"../../shaderModules/interfaces.js";import{ambientBoost as g}from"../../../lighting/SceneLighting.js";function h(i){i.constants.add("ambientBoostFactor","float",g)}function u(i){i.uniforms.add(new s("lightingGlobalFactor",((i,n)=>n.lighting.globalFactor)))}function p(g,p){const v=g.fragment;switch(g.include(t,p),p.pbrMode!==l.Disabled&&g.include(r,p),g.include(n,p),g.include(d),v.code.add(m`
|
|
6
6
|
const float GAMMA_SRGB = 2.1;
|
|
7
7
|
const float INV_GAMMA_SRGB = 0.4761904;
|
|
8
|
-
${
|
|
9
|
-
`),
|
|
8
|
+
${p.pbrMode===l.Disabled?"":"const vec3 GROUND_REFLECTANCE = vec3(0.2);"}
|
|
9
|
+
`),h(v),u(v),e(v),v.code.add(m`
|
|
10
10
|
float additionalDirectedAmbientLight(vec3 vPosWorld) {
|
|
11
|
-
float vndl = dot(${
|
|
11
|
+
float vndl = dot(${p.spherical?m`normalize(vPosWorld)`:m`vec3(0.0, 0.0, 1.0)`}, lightingMainDirection);
|
|
12
12
|
return smoothstep(0.0, 1.0, clamp(vndl * 2.5, 0.0, 1.0));
|
|
13
13
|
}
|
|
14
|
-
`),o(
|
|
14
|
+
`),o(v),v.code.add(m`vec3 evaluateAdditionalLighting(float ambientOcclusion, vec3 vPosWorld) {
|
|
15
15
|
float additionalAmbientScale = additionalDirectedAmbientLight(vPosWorld);
|
|
16
16
|
return (1.0 - ambientOcclusion) * additionalAmbientScale * ambientBoostFactor * lightingGlobalFactor * lightingMainIntensity;
|
|
17
|
-
}`),
|
|
17
|
+
}`),p.pbrMode){case l.Disabled:case l.WaterOnIntegratedMesh:case l.Water:g.include(a,p),v.code.add(m`vec3 evaluateSceneLighting(vec3 normalWorld, vec3 albedo, float shadow, float ssao, vec3 additionalLight)
|
|
18
18
|
{
|
|
19
19
|
vec3 mainLighting = evaluateMainLighting(normalWorld, shadow);
|
|
20
20
|
vec3 ambientLighting = calculateAmbientIrradiance(normalWorld, ssao);
|
|
@@ -23,7 +23,7 @@ vec3 totalLight = mainLighting + ambientLighting + additionalLight;
|
|
|
23
23
|
totalLight = min(totalLight, vec3(PI));
|
|
24
24
|
vec3 outColor = vec3((albedoLinear / PI) * totalLight);
|
|
25
25
|
return pow(outColor, vec3(INV_GAMMA_SRGB));
|
|
26
|
-
}`)
|
|
26
|
+
}`);break;case l.Normal:case l.Schematic:v.code.add(m`const float fillLightIntensity = 0.25;
|
|
27
27
|
const float horizonLightDiffusion = 0.4;
|
|
28
28
|
const float additionalAmbientIrradianceFactor = 0.02;
|
|
29
29
|
vec3 evaluateSceneLightingPBR(vec3 normal, vec3 albedo, float shadow, float ssao, vec3 additionalLight, vec3 viewDir, vec3 normalGround, vec3 mrr, vec3 _emission, float additionalAmbientIrradiance)
|
|
@@ -42,16 +42,16 @@ inputs.RdotNG = clamp(dot(reflectedView, normalGround), -1.0, 1.0);
|
|
|
42
42
|
inputs.albedoLinear = pow(albedo, vec3(GAMMA_SRGB));
|
|
43
43
|
inputs.ssao = ssao;
|
|
44
44
|
inputs.metalness = mrr[0];
|
|
45
|
-
inputs.roughness = clamp(mrr[1] * mrr[1], 0.001, 0.99);`),
|
|
45
|
+
inputs.roughness = clamp(mrr[1] * mrr[1], 0.001, 0.99);`),v.code.add(m`inputs.f0 = (0.16 * mrr[2] * mrr[2]) * (1.0 - inputs.metalness) + inputs.albedoLinear * inputs.metalness;
|
|
46
46
|
inputs.f90 = vec3(clamp(dot(inputs.f0, vec3(50.0 * 0.33)), 0.0, 1.0));
|
|
47
|
-
inputs.diffuseColor = inputs.albedoLinear * (vec3(1.0) - inputs.f0) * (1.0 - inputs.metalness);`),
|
|
47
|
+
inputs.diffuseColor = inputs.albedoLinear * (vec3(1.0) - inputs.f0) * (1.0 - inputs.metalness);`),p.useFillLights?v.uniforms.add(new c("hasFillLights",((i,n)=>n.enableFillLights))):v.constants.add("hasFillLights","bool",!1),v.code.add(m`vec3 ambientDir = vec3(5.0 * normalGround[1] - normalGround[0] * normalGround[2], - 5.0 * normalGround[0] - normalGround[2] * normalGround[1], normalGround[1] * normalGround[1] + normalGround[0] * normalGround[0]);
|
|
48
48
|
ambientDir = ambientDir != vec3(0.0)? normalize(ambientDir) : normalize(vec3(5.0, -1.0, 0.0));
|
|
49
49
|
inputs.NdotAmbDir = hasFillLights ? abs(dot(normal, ambientDir)) : 1.0;
|
|
50
50
|
vec3 mainLightIrradianceComponent = inputs.NdotL * (1.0 - shadow) * lightingMainIntensity;
|
|
51
51
|
vec3 fillLightsIrradianceComponent = inputs.NdotAmbDir * lightingMainIntensity * fillLightIntensity;
|
|
52
52
|
vec3 ambientLightIrradianceComponent = calculateAmbientIrradiance(normal, ssao) + additionalLight;
|
|
53
53
|
inputs.skyIrradianceToSurface = ambientLightIrradianceComponent + mainLightIrradianceComponent + fillLightsIrradianceComponent ;
|
|
54
|
-
inputs.groundIrradianceToSurface = GROUND_REFLECTANCE * ambientLightIrradianceComponent + mainLightIrradianceComponent + fillLightsIrradianceComponent ;`),
|
|
54
|
+
inputs.groundIrradianceToSurface = GROUND_REFLECTANCE * ambientLightIrradianceComponent + mainLightIrradianceComponent + fillLightsIrradianceComponent ;`),v.uniforms.add([new s("lightingSpecularStrength",((i,n)=>n.lighting.mainLight.specularStrength)),new s("lightingEnvironmentStrength",((i,n)=>n.lighting.mainLight.environmentStrength))]),v.code.add(m`vec3 horizonRingDir = inputs.RdotNG * normalGround - reflectedView;
|
|
55
55
|
vec3 horizonRingH = normalize(viewDirection + horizonRingDir);
|
|
56
56
|
inputs.NdotH_Horizon = dot(normal, horizonRingH);
|
|
57
57
|
vec3 mainLightRadianceComponent = lightingSpecularStrength * normalDistribution(inputs.NdotH, inputs.roughness) * lightingMainIntensity * (1.0 - shadow);
|
|
@@ -59,12 +59,12 @@ vec3 horizonLightRadianceComponent = lightingEnvironmentStrength * normalDistrib
|
|
|
59
59
|
vec3 ambientLightRadianceComponent = lightingEnvironmentStrength * calculateAmbientRadiance(ssao) + additionalLight;
|
|
60
60
|
inputs.skyRadianceToSurface = ambientLightRadianceComponent + mainLightRadianceComponent + horizonLightRadianceComponent;
|
|
61
61
|
inputs.groundRadianceToSurface = GROUND_REFLECTANCE * (ambientLightRadianceComponent + horizonLightRadianceComponent) + mainLightRadianceComponent;
|
|
62
|
-
inputs.averageAmbientRadiance = ambientLightIrradianceComponent[1] * (1.0 + GROUND_REFLECTANCE[1]);`),
|
|
62
|
+
inputs.averageAmbientRadiance = ambientLightIrradianceComponent[1] * (1.0 + GROUND_REFLECTANCE[1]);`),v.code.add(m`
|
|
63
63
|
vec3 reflectedColorComponent = evaluateEnvironmentIllumination(inputs);
|
|
64
64
|
vec3 additionalMaterialReflectanceComponent = inputs.albedoLinear * additionalAmbientIrradiance;
|
|
65
65
|
vec3 emissionComponent = pow(_emission, vec3(GAMMA_SRGB));
|
|
66
66
|
vec3 outColorLinear = reflectedColorComponent + additionalMaterialReflectanceComponent + emissionComponent;
|
|
67
|
-
${
|
|
67
|
+
${p.pbrMode===l.Schematic?m`vec3 outColor = pow(max(vec3(0.0), outColorLinear - 0.005 * inputs.averageAmbientRadiance), vec3(INV_GAMMA_SRGB));`:m`vec3 outColor = pow(blackLevelSoftCompression(outColorLinear, inputs), vec3(INV_GAMMA_SRGB));`}
|
|
68
68
|
return outColor;
|
|
69
69
|
}
|
|
70
|
-
`))}export{
|
|
70
|
+
`);break;default:i(p.pbrMode);case l.COUNT:}}export{p as EvaluateSceneLighting,h as addAmbientBoostFactor,u as addLightingGlobalFactor};
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
All material copyright ESRI, All Rights Reserved, unless otherwise specified.
|
|
3
3
|
See https://js.arcgis.com/4.25/esri/copyright.txt for details.
|
|
4
4
|
*/
|
|
5
|
-
import{Float3PassUniform as i}from"../../shaderModules/Float3PassUniform.js";import{FloatPassUniform as n}from"../../shaderModules/FloatPassUniform.js";import{glsl as t}from"../../shaderModules/interfaces.js";function o(n){n.uniforms.add(new i("lightingMainDirection",((i,n)=>n.lighting.
|
|
5
|
+
import{Float3PassUniform as i}from"../../shaderModules/Float3PassUniform.js";import{FloatPassUniform as n}from"../../shaderModules/FloatPassUniform.js";import{glsl as t}from"../../shaderModules/interfaces.js";function o(n){n.uniforms.add(new i("lightingMainDirection",((i,n)=>n.lighting.mainLight.direction)))}function a(n){n.uniforms.add(new i("lightingMainIntensity",((i,n)=>n.lighting.mainLight.intensity)))}function g(i,t){const{fragment:o}=i;t.useLegacyTerrainShading?o.uniforms.add(new n("lightingFixedFactor",((i,n)=>n.lighting.noonFactor*(1-n.lighting.globalFactor)))):o.constants.add("lightingFixedFactor","float",0)}function l(i,n){const l=i.fragment;o(l),a(l),g(i,n),l.code.add(t`vec3 evaluateMainLighting(vec3 normal_global, float shadowing) {
|
|
6
6
|
float dotVal = clamp(dot(normal_global, lightingMainDirection), 0.0, 1.0);
|
|
7
7
|
dotVal = mix(dotVal, 1.0, lightingFixedFactor);
|
|
8
8
|
return lightingMainIntensity * ((1.0 - shadowing) * dotVal);
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
All material copyright ESRI, All Rights Reserved, unless otherwise specified.
|
|
3
3
|
See https://js.arcgis.com/4.25/esri/copyright.txt for details.
|
|
4
4
|
*/
|
|
5
|
-
import{clamp as o}from"../../../../../../core/mathUtils.js";import{isSome as a}from"../../../../../../core/maybe.js";import{earth as t}from"../../../../../../geometry/support/Ellipsoid.js";import{FadeInOutStages as e}from"../../../../environment/CloudsCompositionParameters.js";import{CloudsTextureChannels as r,CloudsRenderingStages as
|
|
5
|
+
import{clamp as o}from"../../../../../../core/mathUtils.js";import{isSome as a}from"../../../../../../core/maybe.js";import{earth as t}from"../../../../../../geometry/support/Ellipsoid.js";import{FadeInOutStages as e}from"../../../../environment/CloudsCompositionParameters.js";import{CloudsTextureChannels as r,CloudsRenderingStages as d}from"../../../../environment/CloudsData.js";import{addMainLightDirection as i,addMainLightIntensity as n}from"../shading/MainLighting.glsl.js";import{BooleanPassUniform as c}from"../../shaderModules/BooleanPassUniform.js";import{Float3PassUniform as l}from"../../shaderModules/Float3PassUniform.js";import{FloatPassUniform as s}from"../../shaderModules/FloatPassUniform.js";import{glsl as u}from"../../shaderModules/interfaces.js";import{Matrix4PassUniform as C}from"../../shaderModules/Matrix4PassUniform.js";import{TextureCubePassUniform as m}from"../../shaderModules/TextureCubePassUniform.js";function v(v){const h=v.fragment;h.uniforms.add([new C("rotationMatrixClouds",((o,a)=>a.cloudsFade.parallax.transform)),new C("rotationMatrixCloudsCrossFade",((o,a)=>a.cloudsFade.parallaxNew.transform)),new l("anchorPosition",((o,a)=>a.cloudsFade.parallax.anchorPointClouds)),new l("anchorPositionCrossFade",((o,a)=>a.cloudsFade.parallaxNew.anchorPointClouds)),new s("cloudsHeight",((o,a)=>a.cloudsFade.parallax.cloudsHeight)),new s("radiusCurvatureCorrectionFactor",((o,a)=>a.cloudsFade.parallax.radiusCurvatureCorrectionFactor)),new s("totalFadeInOut",((a,t)=>t.cloudsFade.fadeInOut.stage===e.FINISHED?t.cloudsFade.fadeInOutHeight.factor+Math.max(o(t.cloudsFade.fadeIn.factor,0,1)):t.cloudsFade.fadeInOutHeight.factor+Math.max(o(t.cloudsFade.fadeInOut.factor,0,1)))),new s("crossFadeAnchorFactor",((a,t)=>o(t.cloudsFade.crossFade.factor,0,1))),new m("cubeMap",((o,t)=>a(t.cloudsFade.data)?t.cloudsFade.data.cubeMap.colorTexture:null)),new c("crossFade",((o,a)=>a.cloudsFade.crossFade.enabled)),new c("readChannelsRG",((o,a)=>a.cloudsFade.readChannels===r.RG)),new c("fadeTextureChannels",((o,a)=>a.cloudsFade.renderingStage===d.FADING_TEXTURE_CHANNELS))]),h.constants.add("planetRadius","float",t.radius),h.code.add(u`vec3 intersectWithCloudLayer(vec3 dir, vec3 cameraPosition, vec3 spherePos)
|
|
6
6
|
{
|
|
7
7
|
float radiusClouds = planetRadius + cloudsHeight;
|
|
8
8
|
float B = 2.0 * dot(cameraPosition, dir);
|
|
@@ -12,14 +12,14 @@ float pointIntDist = max(0.0, 0.5 *(-B + sqrt(det)));
|
|
|
12
12
|
vec3 intersectionPont = cameraPosition + dir * pointIntDist;
|
|
13
13
|
intersectionPont = intersectionPont - spherePos;
|
|
14
14
|
return intersectionPont;
|
|
15
|
-
}`),
|
|
15
|
+
}`),h.code.add(u`vec3 correctForPlanetCurvature(vec3 dir)
|
|
16
16
|
{
|
|
17
17
|
dir.z = dir.z*(1.-radiusCurvatureCorrectionFactor) + radiusCurvatureCorrectionFactor;
|
|
18
18
|
return dir;
|
|
19
|
-
}`),
|
|
19
|
+
}`),h.code.add(u`vec3 rotateDirectionToAnchorPoint(mat4 rotMat, vec3 inVec)
|
|
20
20
|
{
|
|
21
21
|
return (rotMat * vec4(inVec, 0.0)).xyz;
|
|
22
|
-
}`),
|
|
22
|
+
}`),i(h),n(h),h.code.add(u`const float SUNSET_TRANSITION_FACTOR = 0.3;
|
|
23
23
|
const vec3 RIM_COLOR = vec3(0.28, 0.175, 0.035);
|
|
24
24
|
const float RIM_SCATTERING_FACTOR = 140.0;
|
|
25
25
|
const float BACKLIGHT_FACTOR = 0.2;
|
|
@@ -39,7 +39,7 @@ float rimLightIntensity = 0.5 + 0.5 *pow(max(upDotLight, 0.0), 0.35);
|
|
|
39
39
|
vec3 directSunScattering = RIM_COLOR * rimLightIntensity * (pow(dirDotLight, RIM_SCATTERING_FACTOR)) * scatteringMod;
|
|
40
40
|
float additionalLight = BACKLIGHT_FACTOR * pow(dirDotLight, BACKLIGHT_SCATTERING_FACTOR) * (1. - pow(sunsetTransition, BACKLIGHT_TRANSITION_FACTOR)) ;
|
|
41
41
|
return vec3(baseCloudColor * (1. + additionalLight) + directSunScattering);
|
|
42
|
-
}`),
|
|
42
|
+
}`),h.code.add(u`vec4 getCloudData(vec3 rayDir, bool readOtherChannel)
|
|
43
43
|
{
|
|
44
44
|
vec4 cloudData = textureCube(cubeMap, rayDir);
|
|
45
45
|
float mu = dot(rayDir, vec3(0, 0, 1));
|
|
@@ -53,7 +53,7 @@ if (length(cloudData) == 0.0) {
|
|
|
53
53
|
return vec4(cloudData.rgb, 1.0);
|
|
54
54
|
}
|
|
55
55
|
return cloudData;
|
|
56
|
-
}`),
|
|
56
|
+
}`),h.code.add(u`vec4 renderCloudsNoFade(vec3 worldRay, vec3 cameraPosition)
|
|
57
57
|
{
|
|
58
58
|
vec3 intersectionPoint = intersectWithCloudLayer(normalize(worldRay), cameraPosition, anchorPosition);
|
|
59
59
|
vec3 worldRayRotated = rotateDirectionToAnchorPoint(rotationMatrixClouds, normalize(intersectionPoint));
|
|
@@ -64,7 +64,7 @@ if (length(cloudData.rgb) == 0.0) {
|
|
|
64
64
|
totalTransmittance = 1.0;
|
|
65
65
|
}
|
|
66
66
|
return vec4(calculateCloudColor(cameraPosition, normalize(-worldRay), cloudData), totalTransmittance);
|
|
67
|
-
}`),
|
|
67
|
+
}`),h.code.add(u`vec4 renderCloudsCrossFade(vec3 worldRay, vec3 cameraPosition)
|
|
68
68
|
{
|
|
69
69
|
vec3 intersectionPoint = intersectWithCloudLayer(normalize(worldRay), cameraPosition, anchorPosition);
|
|
70
70
|
vec3 worldRayRotated = rotateDirectionToAnchorPoint(rotationMatrixClouds, normalize(intersectionPoint));
|
|
@@ -82,7 +82,7 @@ if (length(cloudColor.rgb) == 0.0) {
|
|
|
82
82
|
totalTransmittance = 1.0;
|
|
83
83
|
}
|
|
84
84
|
return vec4(cloudColor.rgb, totalTransmittance);
|
|
85
|
-
}`),
|
|
85
|
+
}`),h.code.add(u`vec4 renderClouds(vec3 worldRay, vec3 cameraPosition)
|
|
86
86
|
{
|
|
87
87
|
return crossFade ? renderCloudsCrossFade(worldRay, cameraPosition) : renderCloudsNoFade(worldRay, cameraPosition);
|
|
88
|
-
}`)}export{
|
|
88
|
+
}`)}export{v as CloudsParallaxShading};
|
|
@@ -2,4 +2,4 @@
|
|
|
2
2
|
All material copyright ESRI, All Rights Reserved, unless otherwise specified.
|
|
3
3
|
See https://js.arcgis.com/4.25/esri/copyright.txt for details.
|
|
4
4
|
*/
|
|
5
|
-
import{v as r}from"../../../../../../chunks/mat4.js";import{c as e}from"../../../../../../chunks/mat4f32.js";import{s as a}from"../../../../../../chunks/vec3.js";import{Z as i,c as
|
|
5
|
+
import{v as r}from"../../../../../../chunks/mat4.js";import{c as e}from"../../../../../../chunks/mat4f32.js";import{s as a}from"../../../../../../chunks/vec3.js";import{Z as i,c as o}from"../../../../../../chunks/vec3f64.js";import{Float3DrawUniform as s}from"../../shaderModules/Float3DrawUniform.js";import{Float3PassUniform as n}from"../../shaderModules/Float3PassUniform.js";import{Matrix4DrawUniform as m}from"../../shaderModules/Matrix4DrawUniform.js";import{Matrix4PassUniform as t}from"../../shaderModules/Matrix4PassUniform.js";function c(r,e){e.instancedDoublePrecision?r.constants.add("cameraPosition","vec3",i):r.uniforms.add(new s("cameraPosition",((r,e)=>a(w,e.camera.viewInverseTransposeMatrix[3]-r.origin[0],e.camera.viewInverseTransposeMatrix[7]-r.origin[1],e.camera.viewInverseTransposeMatrix[11]-r.origin[2]))))}function v(e,i){if(!i.instancedDoublePrecision)return void e.uniforms.add([new t("proj",((r,e)=>e.camera.projectionMatrix)),new m("view",((e,a)=>r(f,a.camera.viewMatrix,e.origin))),new s("localOrigin",(r=>r.origin))]);const o=r=>a(w,r.camera.viewInverseTransposeMatrix[3],r.camera.viewInverseTransposeMatrix[7],r.camera.viewInverseTransposeMatrix[11]);e.uniforms.add([new t("proj",((r,e)=>e.camera.projectionMatrix)),new t("view",((e,a)=>r(f,a.camera.viewMatrix,o(a)))),new n("localOrigin",((r,e)=>o(e)))])}const f=e(),w=o();function d(r){r.uniforms.add(new t("viewNormal",((r,e)=>e.camera.viewInverseTransposeMatrix)))}export{c as addCameraPosition,v as addProjViewLocalOrigin,d as addViewNormal};
|
|
@@ -2,4 +2,4 @@
|
|
|
2
2
|
All material copyright ESRI, All Rights Reserved, unless otherwise specified.
|
|
3
3
|
See https://js.arcgis.com/4.25/esri/copyright.txt for details.
|
|
4
4
|
*/
|
|
5
|
-
import{isNone as e,isSome as t}from"../../../../../core/maybe.js";import{NestedMap as r}from"../../../../../core/NestedMap.js";class
|
|
5
|
+
import{isNone as e,isSome as t}from"../../../../../core/maybe.js";import{NestedMap as r}from"../../../../../core/NestedMap.js";import{ShaderTechniqueConfiguration as s}from"./ShaderTechniqueConfiguration.js";class n{constructor(e){this._context=e,this._perConstructorInstances=new r,this._frameCounter=0,this._keepAliveFrameCount=c}get viewingMode(){return this._context.viewingMode}get constructionContext(){return this._context}dispose(){this._perConstructorInstances.forEach((e=>e.forEach((e=>e.technique.destroy())))),this._perConstructorInstances.clear()}acquire(t,r=i){const s=r.key;let n=this._perConstructorInstances.get(t,s);if(e(n)){const e=new t(this._context,r,(()=>this.release(e)));n=new o(e),this._perConstructorInstances.set(t,s,n)}return++n.refCount,n.technique}releaseAndAcquire(e,r,s){if(t(s)){if(r.key===s.key)return s;this.release(s)}return this.acquire(e,r)}release(t){if(e(t)||this._perConstructorInstances.empty)return;const r=this._perConstructorInstances.get(t.constructor,t.key);e(r)||(--r.refCount,0===r.refCount&&(r.refZeroFrame=this._frameCounter))}frameUpdate(){this._frameCounter++,this._keepAliveFrameCount!==c&&this._perConstructorInstances.forEach(((e,t)=>{e.forEach(((e,r)=>{0===e.refCount&&e.refZeroFrame+this._keepAliveFrameCount<this._frameCounter&&(e.technique.destroy(),this._perConstructorInstances.delete(t,r))}))}))}async reloadAll(){const e=new Array;this._perConstructorInstances.forEach(((t,r)=>{const s=async(e,t)=>{const r=t.shader;r&&(await r.reload(),e.forEach((e=>e.technique.reload(this._context))))};e.push(s(t,r))})),await Promise.all(e)}}class o{constructor(e){this.technique=e,this.refCount=0,this.refZeroFrame=0}}const c=-1,i=new s;export{n as ShaderTechniqueRepository};
|
|
@@ -2,4 +2,4 @@
|
|
|
2
2
|
All material copyright ESRI, All Rights Reserved, unless otherwise specified.
|
|
3
3
|
See https://js.arcgis.com/4.25/esri/copyright.txt for details.
|
|
4
4
|
*/
|
|
5
|
-
import{c as s,
|
|
5
|
+
import{c as s,p as t,s as h,a as e,g as i}from"../../../../../chunks/vec3.js";import{b as o}from"../../../../../chunks/vec3f32.js";import{c as r}from"../../../../../chunks/vec3f64.js";class c{constructor(s){this._low=o(),this._high=o(),s&&this.set(s)}get low(){return this._low}get high(){return this._high}set(h){const e=this._low,i=this._high;s(e,h),t(i,h,e)}setElements(s,t,e){h(n,s,t,e),this.set(n)}get(s){return e(s,this._low,this._high)}getLowScaled(s){return i(s,this._low,1)}}const n=r();export{c as TwoVectorPosition};
|
|
@@ -2,4 +2,4 @@
|
|
|
2
2
|
All material copyright ESRI, All Rights Reserved, unless otherwise specified.
|
|
3
3
|
See https://js.arcgis.com/4.25/esri/copyright.txt for details.
|
|
4
4
|
*/
|
|
5
|
-
import{
|
|
5
|
+
import{Milliseconds as t}from"../../../../core/time.js";class e{constructor(){this.enabled=!0,this._time=t(0)}get time(){return this._time}advance(t){return this._time!==t.time&&(this._time=t.time,!0)}}export{e as AnimationTimer};
|
|
@@ -2,4 +2,4 @@
|
|
|
2
2
|
All material copyright ESRI, All Rights Reserved, unless otherwise specified.
|
|
3
3
|
See https://js.arcgis.com/4.25/esri/copyright.txt for details.
|
|
4
4
|
*/
|
|
5
|
-
import{a as
|
|
5
|
+
import{a as i}from"../../../../chunks/vec2f64.js";import{CloudsFadeParameters as t}from"../../environment/CloudsCompositionParameters.js";import{MultipassGeometryUniforms as s}from"../core/shaderLibrary/shading/MultipassGeometryTest.glsl.js";import{MultipassTerrainUniforms as e}from"../core/shaderLibrary/shading/MultipassTerrainTest.glsl.js";import{SSRUniforms as r}from"../core/shaderLibrary/shading/ScreenSpaceReflections.glsl.js";import{RenderSlot as h}from"./RenderSlot.js";import{SceneLighting as n}from"../lighting/SceneLighting.js";class g{constructor(g,a,o){this.shadowMap=g,this.ssaoHelper=a,this.slicePlane=o,this.slot=h.OPAQUE_MATERIAL,this.hasOccludees=!1,this.enableFillLights=!0,this._inverseViewport=i(),this.oldLighting=new n,this.newLighting=new n,this._fadedLighting=new n,this._lighting=this.newLighting,this.ssr=new r,this.multipassTerrain=new e,this.multipassGeometry=new s,this.overlays=[],this.cloudsFade=new t}get camera(){return this._camera}set camera(i){this._camera=this.ssr.camera=i,this._inverseViewport[0]=1/i.fullViewport[2],this._inverseViewport[1]=1/i.fullViewport[3]}get inverseViewport(){return this._inverseViewport}get lighting(){return this._lighting}get lightingFading(){return this._lighting===this._fadedLighting}fadeLighting(i){const{oldLighting:t,newLighting:s}=this;i>=1?this._lighting=s:(this._fadedLighting.lerpLighting(t,s,i),this._lighting=this._fadedLighting)}}export{g as BindParameters};
|
|
@@ -2,4 +2,4 @@
|
|
|
2
2
|
All material copyright ESRI, All Rights Reserved, unless otherwise specified.
|
|
3
3
|
See https://js.arcgis.com/4.25/esri/copyright.txt for details.
|
|
4
4
|
*/
|
|
5
|
-
import t from"../../../../core/Logger.js";import{lerp as i}from"../../../../core/mathUtils.js";import{isSome as e,isNone as r}from"../../../../core/maybe.js";import{createScreenPointArray as s,createRenderScreenPointArray3 as h}from"../../../../core/screenUtils.js";import{c as o,m as n,p as a,a as _,t as p,q as u}from"../../../../chunks/mat4.js";import{c as v}from"../../../../chunks/mat4f64.js";import{c,m as w}from"../../../../chunks/vec2.js";import{f as l}from"../../../../chunks/vec2f64.js";import{c as d,b as y,i as g,k as m,y as f,e as D,D as x,E as j,g as M,l as T,s as P,f as R,n as F,r as O}from"../../../../chunks/vec3.js";import{c as V,a as I,f as S}from"../../../../chunks/vec3f64.js";import{c as E,g as L,i as b,t as H}from"../../../../chunks/vec4.js";import{f as k,c as B}from"../../../../chunks/vec4f64.js";import{create as G,copy as U,fromMatrix as A}from"../../../../geometry/support/frustum.js";import{create as C}from"../../../../geometry/support/ray.js";import{projectPointSignedLength as z}from"../../../../geometry/support/vector.js";import{ViewingMode as W}from"../../../ViewingMode.js";import{fovd2fovx as X,fovx2fovd as Y,fovd2fovy as q,fovy2fovd as N}from"./Util.js";class J{constructor(t=null,i=null,r=null){this._viewUp=V(),this._viewForward=V(),this._viewRight=V(),this._ray=C(),this._viewport=k(0,0,1,1),this._padding=k(0,0,0,0),this._fov=55/180*Math.PI,this._nearFar=l(1,1e3),this._viewDirty=!0,this._viewMatrix=v(),this._projectionDirty=!0,this._projectionMatrix=v(),this._viewProjectionDirty=!0,this._viewProjectionMatrix=v(),this._viewInverseTransposeMatrixDirty=!0,this._viewInverseTransposeMatrix=v(),this._inverseProjectionDirty=!0,this._inverseProjectionMatrix=null,this._frustumDirty=!0,this._frustum=G(),this._fullViewport=B(),this._pixelRatio=1,this.relativeElevation=0,e(t)&&d(this._ray.origin,t),this._center=e(i)?I(i):V(),this._up=e(r)?I(r):S(0,0,1)}get pixelRatio(){return this._pixelRatio}set pixelRatio(t){this._pixelRatio=t>0?t:1}get eye(){return this._ray.origin}set eye(t){this._compareAndSetView(t,this._ray.origin)}get center(){return this._center}set center(t){this._compareAndSetView(t,this._center)}get ray(){return y(this._ray.direction,this.center,this.eye),this._ray}get up(){return this._up}set up(t){this._compareAndSetView(t,this._up)}get viewMatrix(){return this._ensureViewClean(),this._viewMatrix}set viewMatrix(t){o(this._viewMatrix,t),this._viewDirty=!1,this._viewInverseTransposeMatrixDirty=!0,this._viewProjectionDirty=!0,this._frustumDirty=!0}get viewForward(){return this._ensureViewClean(),this._viewForward}get viewUp(){return this._ensureViewClean(),this._viewUp}get viewRight(){return this._ensureViewClean(),this._viewRight}get nearFar(){return this._nearFar}get near(){return this._nearFar[0]}set near(t){this._nearFar[0]!==t&&(this._nearFar[0]=t,this._projectionDirty=!0,this._inverseProjectionDirty=!0,this._viewProjectionDirty=!0,this._frustumDirty=!0)}get far(){return this._nearFar[1]}set far(t){this._nearFar[1]!==t&&(this._nearFar[1]=t,this._projectionDirty=!0,this._inverseProjectionDirty=!0,this._viewProjectionDirty=!0,this._frustumDirty=!0)}get viewport(){return this._viewport}set viewport(t){this.x=t[0],this.y=t[1],this.width=t[2],this.height=t[3]}get x(){return this._viewport[0]}set x(t){t+=this._padding[it.LEFT],this._viewport[0]!==t&&(this._viewport[0]=t,this._projectionDirty=!0,this._inverseProjectionDirty=!0,this._viewProjectionDirty=!0,this._frustumDirty=!0)}get y(){return this._viewport[1]}set y(t){t+=this._padding[it.BOTTOM],this._viewport[1]!==t&&(this._viewport[1]=t,this._projectionDirty=!0,this._inverseProjectionDirty=!0,this._viewProjectionDirty=!0,this._frustumDirty=!0)}get width(){return this._viewport[2]}set width(t){this._viewport[2]!==t&&(this._viewport[2]=t,this._projectionDirty=!0,this._inverseProjectionDirty=!0,this._viewProjectionDirty=!0,this._frustumDirty=!0)}get height(){return this._viewport[3]}set height(t){this._viewport[3]!==t&&(this._viewport[3]=t,this._projectionDirty=!0,this._inverseProjectionDirty=!0,this._viewProjectionDirty=!0,this._frustumDirty=!0)}get fullWidth(){return this._viewport[2]+this._padding[it.RIGHT]+this._padding[it.LEFT]}set fullWidth(t){this.width=t-(this._padding[it.RIGHT]+this._padding[it.LEFT])}get fullHeight(){return this._viewport[3]+this._padding[it.TOP]+this._padding[it.BOTTOM]}set fullHeight(t){this.height=t-(this._padding[it.TOP]+this._padding[it.BOTTOM])}get fullViewport(){return this._fullViewport[0]=this._viewport[0]-this._padding[it.LEFT],this._fullViewport[1]=this._viewport[1]-this._padding[it.BOTTOM],this._fullViewport[2]=this.fullWidth,this._fullViewport[3]=this.fullHeight,this._fullViewport}get aspect(){return this.width/this.height}get padding(){return this._padding}set padding(t){this._padding[it.TOP]===t[it.TOP]&&this._padding[it.RIGHT]===t[it.RIGHT]&&this._padding[it.BOTTOM]===t[it.BOTTOM]&&this._padding[it.LEFT]===t[it.LEFT]||(this._viewport[0]+=t[it.LEFT]-this._padding[it.LEFT],this._viewport[1]+=t[it.BOTTOM]-this._padding[it.BOTTOM],this._viewport[2]-=t[it.RIGHT]+t[it.LEFT]-(this._padding[it.RIGHT]+this._padding[it.LEFT]),this._viewport[3]-=t[it.TOP]+t[it.BOTTOM]-(this._padding[it.TOP]+this._padding[it.BOTTOM]),E(this._padding,t),this._projectionDirty=!0,this._inverseProjectionDirty=!0,this._viewProjectionDirty=!0,this._frustumDirty=!0)}get viewProjectionMatrix(){return this._viewProjectionDirty&&(n(this._viewProjectionMatrix,this.projectionMatrix,this.viewMatrix),this._viewProjectionDirty=!1),this._viewProjectionMatrix}get projectionMatrix(){if(this._projectionDirty){const t=this.width,i=this.height,e=this.near*Math.tan(this.fovY/2),r=e*this.aspect;a(this._projectionMatrix,-r*(1+2*this._padding[it.LEFT]/t),r*(1+2*this._padding[it.RIGHT]/t),-e*(1+2*this._padding[it.BOTTOM]/i),e*(1+2*this._padding[it.TOP]/i),this.near,this.far),this._projectionDirty=!1}return this._projectionMatrix}get inverseProjectionMatrix(){return r(this._inverseProjectionMatrix)&&(this._inverseProjectionMatrix=v()),this._inverseProjectionDirty&&_(this._inverseProjectionMatrix,this.projectionMatrix),this._inverseProjectionMatrix}set projectionMatrix(t){o(this._projectionMatrix,t),this._projectionDirty=!1,this._inverseProjectionDirty=!0,this._viewProjectionDirty=!0,this._frustumDirty=!0}get fov(){return this._fov}set fov(t){this._fov=t,this._projectionDirty=!0,this._inverseProjectionDirty=!0,this._viewProjectionDirty=!0,this._frustumDirty=!0}get fovX(){return X(this._fov,this.width,this.height)}set fovX(t){this._fov=Y(t,this.width,this.height),this._projectionDirty=!0,this._inverseProjectionDirty=!0,this._viewProjectionDirty=!0,this._frustumDirty=!0}get fovY(){return q(this._fov,this.width,this.height)}set fovY(t){this._fov=N(t,this.width,this.height),this._projectionDirty=!0,this._inverseProjectionDirty=!0,this._viewProjectionDirty=!0,this._frustumDirty=!0}get distance(){return g(this._center,this.eye)}get frustum(){return this._recomputeFrustum(),this._frustum}get viewInverseTransposeMatrix(){return(this._viewInverseTransposeMatrixDirty||this._viewDirty)&&(_(this._viewInverseTransposeMatrix,this.viewMatrix),p(this._viewInverseTransposeMatrix,this._viewInverseTransposeMatrix),this._viewInverseTransposeMatrixDirty=!1),this._viewInverseTransposeMatrix}depthNDCToWorld(t){const i=2*t-1;return 2*this.near*this.far/(this.far+this.near-i*(this.far-this.near))}get perRenderPixelRatio(){return Math.tan(this.fovX/2)/(this.width/2)}get perScreenPixelRatio(){return this.perRenderPixelRatio*this._pixelRatio}get aboveGround(){return null!=this.relativeElevation&&this.relativeElevation>=0}copyFrom(t){d(this._ray.origin,t.eye),d(this._center,t.center),d(this._up,t.up),E(this._viewport,t.viewport),E(this._padding,t.padding),c(this._nearFar,t.nearFar),this._fov=t.fov,this.relativeElevation=t.relativeElevation;const i=t;return this._viewDirty=i._viewDirty,this._viewDirty||(o(this._viewMatrix,t.viewMatrix),d(this._viewRight,t.viewRight),d(this._viewUp,t.viewUp),d(this._viewForward,t.viewForward)),i._projectionDirty?this._projectionDirty=!0:(o(this._projectionMatrix,t.projectionMatrix),this._projectionDirty=!1),this._viewProjectionDirty=!0,this._inverseProjectionDirty=!0,this._frustumDirty=i._frustumDirty,this._frustumDirty||(U(this._frustum,t.frustum),this._frustumDirty=!1),i._viewInverseTransposeMatrixDirty?this._viewInverseTransposeMatrixDirty=!0:(o(this._viewInverseTransposeMatrix,t.viewInverseTransposeMatrix),this._viewInverseTransposeMatrixDirty=!1),E(this._fullViewport,t.fullViewport),this._pixelRatio=t.pixelRatio,this}copyViewFrom(t){this.eye=t.eye,this.center=t.center,this.up=t.up}clone(){return(new J).copyFrom(this)}equals(t){return m(this.eye,t.eye)&&m(this._center,t.center)&&m(this._up,t.up)&&L(this._viewport,t.viewport)&&L(this._padding,t.padding)&&w(this._nearFar,t.nearFar)&&this._fov===t.fov&&this._pixelRatio===t.pixelRatio&&this.relativeElevation===t.relativeElevation}almostEquals(t){if(this._pixelRatio!==t.pixelRatio||Math.abs(t.fov-this._fov)>=.001)return!1;const i=5e-4,e=1-1e-10;f(Z,t.eye,t.center),f($,this.eye,this._center);const r=D(Z,$),s=x(Z),h=x($);return r*r>=e*s*h&&j(t.eye,this.eye)<Math.max(s,h)*i*i&&b(t.padding,this._padding)<.5&&b(t.viewport,this._viewport)<.5}computeRenderPixelSizeAt(t){return this.computeRenderPixelSizeAtDist(this._viewDirectionDistance(t))}computeRenderPixelSizeAtDist(t){return t*this.perRenderPixelRatio}computeScreenPixelSizeAt(t){return this.computeScreenPixelSizeAtDist(this._viewDirectionDistance(t))}_viewDirectionDistance(t){return Math.abs(z(this.viewForward,y(Z,t,this.eye)))}computeScreenPixelSizeAtDist(t){return t*this.perScreenPixelRatio}computeDistanceFromRadius(t,i){return t/Math.tan(Math.min(this.fovX,this.fovY)/(2*(i||1)))}getScreenCenter(t=s()){return t[0]=(this.padding[it.LEFT]+this.width/2)/this._pixelRatio,t[1]=(this.padding[it.TOP]+this.height/2)/this._pixelRatio,t}getRenderCenter(t,i=.5,e=.5){return t[0]=this.padding[it.LEFT]+this.width*i,t[1]=this.padding[it.BOTTOM]+this.height*e,t[2]=.5,t}setGLViewport(t){const i=this.viewport,e=this.padding;t.setViewport(i[0]-e[3],i[1]-e[2],i[2]+e[1]+e[3],i[3]+e[0]+e[2])}applyProjection(t,e){t!==K&&d(K,t),K[3]=1,H(K,K,this.projectionMatrix);const r=Math.abs(K[3]);M(K,K,1/r);const s=this.fullViewport;e[0]=i(0,s[0]+s[2],.5+.5*K[0]),e[1]=i(0,s[1]+s[3],.5+.5*K[1]),e[2]=.5*(K[2]+1),e[3]=r}unapplyProjection(t,i){const e=this.fullViewport;K[0]=(t[0]/(e[0]+e[2])*2-1)*t[3],K[1]=(t[1]/(e[1]+e[3])*2-1)*t[3],K[2]=(2*t[2]-1)*t[3],K[3]=t[3],H(K,K,this.inverseProjectionMatrix),i[0]=K[0],i[1]=K[1],i[2]=K[2]}projectToScreen(t,i){this.projectToRenderScreen(t,tt),this.renderToScreen(tt,i)}projectToRenderScreen(t,e){if(K[0]=t[0],K[1]=t[1],K[2]=t[2],K[3]=1,H(K,K,this.viewProjectionMatrix),0===K[3])return null;M(K,K,1/Math.abs(K[3]));const r=this.fullViewport;return"x"in e?(e.x=i(0,r[0]+r[2],.5+.5*K[0]),e.y=i(0,r[1]+r[3],.5+.5*K[1])):(e[0]=i(0,r[0]+r[2],.5+.5*K[0]),e[1]=i(0,r[1]+r[3],.5+.5*K[1]),e.length>2&&(e[2]=.5*(K[2]+1))),e}unprojectFromScreen(t,i){return this.unprojectFromRenderScreen(this.screenToRender(t,tt),i)}unprojectFromRenderScreen(t,i){if(n(Q,this.projectionMatrix,this.viewMatrix),!_(Q,Q))return null;const e=this.fullViewport;return K[0]=2*(t[0]-e[0])/e[2]-1,K[1]=2*(t[1]-e[1])/e[3]-1,K[2]=2*t[2]-1,K[3]=1,H(K,K,Q),0===K[3]?null:(i[0]=K[0]/K[3],i[1]=K[1]/K[3],i[2]=K[2]/K[3],i)}constrainWindowSize(t,i,e,r=e){const s=t*this._pixelRatio,h=i*this._pixelRatio,o=Math.max(s-e/2,0),n=Math.max(this.fullHeight-h-r/2,0),a=-Math.min(s-e/2,0),_=-Math.min(this.fullHeight-h-r/2,0);return[o,n,e-a- -Math.min(this.fullWidth-s-e/2,0),r-_- -Math.min(h-r/2,0)]}computeUp(t){t===W.Global?this._computeUpGlobal():this._computeUpLocal()}screenToRender(t,i){const e=t[0]*this._pixelRatio,r=this.fullHeight-t[1]*this._pixelRatio;return i[0]=e,i[1]=r,i}renderToScreen(t,i){const e=t[0]/this._pixelRatio,r=(this.fullHeight-t[1])/this._pixelRatio;i[0]=e,i[1]=r}_computeUpGlobal(){y(Z,this.center,this.eye);const t=T(this.center);t<1?(P(this._up,0,0,1),this._markViewDirty()):Math.abs(D(Z,this.center))>.9999*T(Z)*t||(R(this._up,Z,this.center),R(this._up,this._up,Z),F(this._up,this._up),this._markViewDirty())}_computeUpLocal(){O(Z,this.eye,this.center),Math.abs(Z[2])<=.9999&&(M(Z,Z,Z[2]),P(this._up,-Z[0],-Z[1],1-Z[2]),F(this._up,this._up),this._markViewDirty())}_compareAndSetView(i,e){"number"==typeof i[0]&&isFinite(i[0])&&"number"==typeof i[1]&&isFinite(i[1])&&"number"==typeof i[2]&&isFinite(i[2])?m(i,e)||(d(e,i),this._markViewDirty()):t.getLogger("esri.views.3d.webgl-engine.lib.Camera").warn("Camera vector contains invalid number, ignoring value")}_markViewDirty(){this._viewDirty=!0,this._frustumDirty=!0,this._viewProjectionDirty=!0}_recomputeFrustum(){this._frustumDirty&&(A(this.viewMatrix,this.projectionMatrix,this._frustum),this._frustumDirty=!1)}_ensureViewClean(){this._viewDirty&&(u(this._viewMatrix,this.eye,this._center,this._up),P(this._viewForward,-this._viewMatrix[2],-this._viewMatrix[6],-this._viewMatrix[10]),P(this._viewUp,this._viewMatrix[1],this._viewMatrix[5],this._viewMatrix[9]),P(this._viewRight,this._viewMatrix[0],this._viewMatrix[4],this._viewMatrix[8]),this._viewDirty=!1,this._viewInverseTransposeMatrixDirty=!0)}}const K=B(),Q=v(),Z=V(),$=V(),tt=h();var it;!function(t){t[t.TOP=0]="TOP",t[t.RIGHT=1]="RIGHT",t[t.BOTTOM=2]="BOTTOM",t[t.LEFT=3]="LEFT"}(it||(it={}));export{J as Camera,it as PaddingSide};
|
|
5
|
+
import t from"../../../../core/Logger.js";import{lerp as i}from"../../../../core/mathUtils.js";import{isSome as e,isNone as r}from"../../../../core/maybe.js";import{createScreenPointArray as s,createRenderScreenPointArray3 as h}from"../../../../core/screenUtils.js";import{c as o,m as n,p as a,a as _,t as p,q as u}from"../../../../chunks/mat4.js";import{c as v}from"../../../../chunks/mat4f64.js";import{c,m as w}from"../../../../chunks/vec2.js";import{f as l}from"../../../../chunks/vec2f64.js";import{c as d,b as y,i as g,w as m,p as f,e as D,D as x,E as j,g as M,l as T,s as P,f as R,n as F,A as O}from"../../../../chunks/vec3.js";import{c as V,a as I,f as S}from"../../../../chunks/vec3f64.js";import{c as E,g as L,i as b,t as H}from"../../../../chunks/vec4.js";import{f as B,c as G}from"../../../../chunks/vec4f64.js";import{create as U,copy as k,fromMatrix as A}from"../../../../geometry/support/frustum.js";import{create as C}from"../../../../geometry/support/ray.js";import{projectPointSignedLength as z}from"../../../../geometry/support/vector.js";import{ViewingMode as W}from"../../../ViewingMode.js";import{fovd2fovx as X,fovx2fovd as Y,fovd2fovy as q,fovy2fovd as N}from"./Util.js";class J{constructor(t=null,i=null,r=null){this._viewUp=V(),this._viewForward=V(),this._viewRight=V(),this._ray=C(),this._viewport=B(0,0,1,1),this._padding=B(0,0,0,0),this._fov=55/180*Math.PI,this._nearFar=l(1,1e3),this._viewDirty=!0,this._viewMatrix=v(),this._projectionDirty=!0,this._projectionMatrix=v(),this._viewProjectionDirty=!0,this._viewProjectionMatrix=v(),this._viewInverseTransposeMatrixDirty=!0,this._viewInverseTransposeMatrix=v(),this._inverseProjectionDirty=!0,this._inverseProjectionMatrix=null,this._frustumDirty=!0,this._frustum=U(),this._fullViewport=G(),this._pixelRatio=1,this.relativeElevation=0,e(t)&&d(this._ray.origin,t),this._center=e(i)?I(i):V(),this._up=e(r)?I(r):S(0,0,1)}get pixelRatio(){return this._pixelRatio}set pixelRatio(t){this._pixelRatio=t>0?t:1}get eye(){return this._ray.origin}set eye(t){this._compareAndSetView(t,this._ray.origin)}get center(){return this._center}set center(t){this._compareAndSetView(t,this._center)}get ray(){return y(this._ray.direction,this.center,this.eye),this._ray}get up(){return this._up}set up(t){this._compareAndSetView(t,this._up)}get viewMatrix(){return this._ensureViewClean(),this._viewMatrix}set viewMatrix(t){o(this._viewMatrix,t),this._viewDirty=!1,this._viewInverseTransposeMatrixDirty=!0,this._viewProjectionDirty=!0,this._frustumDirty=!0}get viewForward(){return this._ensureViewClean(),this._viewForward}get viewUp(){return this._ensureViewClean(),this._viewUp}get viewRight(){return this._ensureViewClean(),this._viewRight}get nearFar(){return this._nearFar}get near(){return this._nearFar[0]}set near(t){this._nearFar[0]!==t&&(this._nearFar[0]=t,this._projectionDirty=!0,this._inverseProjectionDirty=!0,this._viewProjectionDirty=!0,this._frustumDirty=!0)}get far(){return this._nearFar[1]}set far(t){this._nearFar[1]!==t&&(this._nearFar[1]=t,this._projectionDirty=!0,this._inverseProjectionDirty=!0,this._viewProjectionDirty=!0,this._frustumDirty=!0)}get viewport(){return this._viewport}set viewport(t){this.x=t[0],this.y=t[1],this.width=t[2],this.height=t[3]}get x(){return this._viewport[0]}set x(t){t+=this._padding[it.LEFT],this._viewport[0]!==t&&(this._viewport[0]=t,this._projectionDirty=!0,this._inverseProjectionDirty=!0,this._viewProjectionDirty=!0,this._frustumDirty=!0)}get y(){return this._viewport[1]}set y(t){t+=this._padding[it.BOTTOM],this._viewport[1]!==t&&(this._viewport[1]=t,this._projectionDirty=!0,this._inverseProjectionDirty=!0,this._viewProjectionDirty=!0,this._frustumDirty=!0)}get width(){return this._viewport[2]}set width(t){this._viewport[2]!==t&&(this._viewport[2]=t,this._projectionDirty=!0,this._inverseProjectionDirty=!0,this._viewProjectionDirty=!0,this._frustumDirty=!0)}get height(){return this._viewport[3]}set height(t){this._viewport[3]!==t&&(this._viewport[3]=t,this._projectionDirty=!0,this._inverseProjectionDirty=!0,this._viewProjectionDirty=!0,this._frustumDirty=!0)}get fullWidth(){return this._viewport[2]+this._padding[it.RIGHT]+this._padding[it.LEFT]}set fullWidth(t){this.width=t-(this._padding[it.RIGHT]+this._padding[it.LEFT])}get fullHeight(){return this._viewport[3]+this._padding[it.TOP]+this._padding[it.BOTTOM]}set fullHeight(t){this.height=t-(this._padding[it.TOP]+this._padding[it.BOTTOM])}get fullViewport(){return this._fullViewport[0]=this._viewport[0]-this._padding[it.LEFT],this._fullViewport[1]=this._viewport[1]-this._padding[it.BOTTOM],this._fullViewport[2]=this.fullWidth,this._fullViewport[3]=this.fullHeight,this._fullViewport}get aspect(){return this.width/this.height}get padding(){return this._padding}set padding(t){this._padding[it.TOP]===t[it.TOP]&&this._padding[it.RIGHT]===t[it.RIGHT]&&this._padding[it.BOTTOM]===t[it.BOTTOM]&&this._padding[it.LEFT]===t[it.LEFT]||(this._viewport[0]+=t[it.LEFT]-this._padding[it.LEFT],this._viewport[1]+=t[it.BOTTOM]-this._padding[it.BOTTOM],this._viewport[2]-=t[it.RIGHT]+t[it.LEFT]-(this._padding[it.RIGHT]+this._padding[it.LEFT]),this._viewport[3]-=t[it.TOP]+t[it.BOTTOM]-(this._padding[it.TOP]+this._padding[it.BOTTOM]),E(this._padding,t),this._projectionDirty=!0,this._inverseProjectionDirty=!0,this._viewProjectionDirty=!0,this._frustumDirty=!0)}get viewProjectionMatrix(){return this._viewProjectionDirty&&(n(this._viewProjectionMatrix,this.projectionMatrix,this.viewMatrix),this._viewProjectionDirty=!1),this._viewProjectionMatrix}get projectionMatrix(){if(this._projectionDirty){const t=this.width,i=this.height,e=this.near*Math.tan(this.fovY/2),r=e*this.aspect;a(this._projectionMatrix,-r*(1+2*this._padding[it.LEFT]/t),r*(1+2*this._padding[it.RIGHT]/t),-e*(1+2*this._padding[it.BOTTOM]/i),e*(1+2*this._padding[it.TOP]/i),this.near,this.far),this._projectionDirty=!1}return this._projectionMatrix}get inverseProjectionMatrix(){return r(this._inverseProjectionMatrix)&&(this._inverseProjectionMatrix=v()),this._inverseProjectionDirty&&_(this._inverseProjectionMatrix,this.projectionMatrix),this._inverseProjectionMatrix}set projectionMatrix(t){o(this._projectionMatrix,t),this._projectionDirty=!1,this._inverseProjectionDirty=!0,this._viewProjectionDirty=!0,this._frustumDirty=!0}get fov(){return this._fov}set fov(t){this._fov=t,this._projectionDirty=!0,this._inverseProjectionDirty=!0,this._viewProjectionDirty=!0,this._frustumDirty=!0}get fovX(){return X(this._fov,this.width,this.height)}set fovX(t){this._fov=Y(t,this.width,this.height),this._projectionDirty=!0,this._inverseProjectionDirty=!0,this._viewProjectionDirty=!0,this._frustumDirty=!0}get fovY(){return q(this._fov,this.width,this.height)}set fovY(t){this._fov=N(t,this.width,this.height),this._projectionDirty=!0,this._inverseProjectionDirty=!0,this._viewProjectionDirty=!0,this._frustumDirty=!0}get distance(){return g(this._center,this.eye)}get frustum(){return this._recomputeFrustum(),this._frustum}get viewInverseTransposeMatrix(){return(this._viewInverseTransposeMatrixDirty||this._viewDirty)&&(_(this._viewInverseTransposeMatrix,this.viewMatrix),p(this._viewInverseTransposeMatrix,this._viewInverseTransposeMatrix),this._viewInverseTransposeMatrixDirty=!1),this._viewInverseTransposeMatrix}depthNDCToWorld(t){const i=2*t-1;return 2*this.near*this.far/(this.far+this.near-i*(this.far-this.near))}get perRenderPixelRatio(){return Math.tan(this.fovX/2)/(this.width/2)}get perScreenPixelRatio(){return this.perRenderPixelRatio*this._pixelRatio}get aboveGround(){return null!=this.relativeElevation&&this.relativeElevation>=0}copyFrom(t){d(this._ray.origin,t.eye),d(this._center,t.center),d(this._up,t.up),E(this._viewport,t.viewport),E(this._padding,t.padding),c(this._nearFar,t.nearFar),this._fov=t.fov,this.relativeElevation=t.relativeElevation;const i=t;return this._viewDirty=i._viewDirty,this._viewDirty||(o(this._viewMatrix,t.viewMatrix),d(this._viewRight,t.viewRight),d(this._viewUp,t.viewUp),d(this._viewForward,t.viewForward)),i._projectionDirty?this._projectionDirty=!0:(o(this._projectionMatrix,t.projectionMatrix),this._projectionDirty=!1),this._viewProjectionDirty=!0,this._inverseProjectionDirty=!0,this._frustumDirty=i._frustumDirty,this._frustumDirty||(k(this._frustum,t.frustum),this._frustumDirty=!1),i._viewInverseTransposeMatrixDirty?this._viewInverseTransposeMatrixDirty=!0:(o(this._viewInverseTransposeMatrix,t.viewInverseTransposeMatrix),this._viewInverseTransposeMatrixDirty=!1),E(this._fullViewport,t.fullViewport),this._pixelRatio=t.pixelRatio,this}copyViewFrom(t){this.eye=t.eye,this.center=t.center,this.up=t.up}clone(){return(new J).copyFrom(this)}equals(t){return m(this.eye,t.eye)&&m(this._center,t.center)&&m(this._up,t.up)&&L(this._viewport,t.viewport)&&L(this._padding,t.padding)&&w(this._nearFar,t.nearFar)&&this._fov===t.fov&&this._pixelRatio===t.pixelRatio&&this.relativeElevation===t.relativeElevation}almostEquals(t){if(this._pixelRatio!==t.pixelRatio||Math.abs(t.fov-this._fov)>=.001)return!1;const i=5e-4,e=1-1e-10;f(Z,t.eye,t.center),f($,this.eye,this._center);const r=D(Z,$),s=x(Z),h=x($);return r*r>=e*s*h&&j(t.eye,this.eye)<Math.max(s,h)*i*i&&b(t.padding,this._padding)<.5&&b(t.viewport,this._viewport)<.5}computeRenderPixelSizeAt(t){return this.computeRenderPixelSizeAtDist(this._viewDirectionDistance(t))}computeRenderPixelSizeAtDist(t){return t*this.perRenderPixelRatio}computeScreenPixelSizeAt(t){return this.computeScreenPixelSizeAtDist(this._viewDirectionDistance(t))}_viewDirectionDistance(t){return Math.abs(z(this.viewForward,y(Z,t,this.eye)))}computeScreenPixelSizeAtDist(t){return t*this.perScreenPixelRatio}computeDistanceFromRadius(t,i){return t/Math.tan(Math.min(this.fovX,this.fovY)/(2*(i||1)))}getScreenCenter(t=s()){return t[0]=(this.padding[it.LEFT]+this.width/2)/this._pixelRatio,t[1]=(this.padding[it.TOP]+this.height/2)/this._pixelRatio,t}getRenderCenter(t,i=.5,e=.5){return t[0]=this.padding[it.LEFT]+this.width*i,t[1]=this.padding[it.BOTTOM]+this.height*e,t[2]=.5,t}setGLViewport(t){const i=this.viewport,e=this.padding;t.setViewport(i[0]-e[3],i[1]-e[2],i[2]+e[1]+e[3],i[3]+e[0]+e[2])}applyProjection(t,e){t!==K&&d(K,t),K[3]=1,H(K,K,this.projectionMatrix);const r=Math.abs(K[3]);M(K,K,1/r);const s=this.fullViewport;e[0]=i(0,s[0]+s[2],.5+.5*K[0]),e[1]=i(0,s[1]+s[3],.5+.5*K[1]),e[2]=.5*(K[2]+1),e[3]=r}unapplyProjection(t,i){const e=this.fullViewport;K[0]=(t[0]/(e[0]+e[2])*2-1)*t[3],K[1]=(t[1]/(e[1]+e[3])*2-1)*t[3],K[2]=(2*t[2]-1)*t[3],K[3]=t[3],H(K,K,this.inverseProjectionMatrix),i[0]=K[0],i[1]=K[1],i[2]=K[2]}projectToScreen(t,i){this.projectToRenderScreen(t,tt),this.renderToScreen(tt,i)}projectToRenderScreen(t,e){if(K[0]=t[0],K[1]=t[1],K[2]=t[2],K[3]=1,H(K,K,this.viewProjectionMatrix),0===K[3])return null;M(K,K,1/Math.abs(K[3]));const r=this.fullViewport;return"x"in e?(e.x=i(0,r[0]+r[2],.5+.5*K[0]),e.y=i(0,r[1]+r[3],.5+.5*K[1])):(e[0]=i(0,r[0]+r[2],.5+.5*K[0]),e[1]=i(0,r[1]+r[3],.5+.5*K[1]),e.length>2&&(e[2]=.5*(K[2]+1))),e}unprojectFromScreen(t,i){return this.unprojectFromRenderScreen(this.screenToRender(t,tt),i)}unprojectFromRenderScreen(t,i){if(n(Q,this.projectionMatrix,this.viewMatrix),!_(Q,Q))return null;const e=this.fullViewport;return K[0]=2*(t[0]-e[0])/e[2]-1,K[1]=2*(t[1]-e[1])/e[3]-1,K[2]=2*t[2]-1,K[3]=1,H(K,K,Q),0===K[3]?null:(i[0]=K[0]/K[3],i[1]=K[1]/K[3],i[2]=K[2]/K[3],i)}constrainWindowSize(t,i,e,r=e){const s=t*this._pixelRatio,h=i*this._pixelRatio,o=Math.max(s-e/2,0),n=Math.max(this.fullHeight-h-r/2,0),a=-Math.min(s-e/2,0),_=-Math.min(this.fullHeight-h-r/2,0);return[o,n,e-a- -Math.min(this.fullWidth-s-e/2,0),r-_- -Math.min(h-r/2,0)]}computeUp(t){t===W.Global?this._computeUpGlobal():this._computeUpLocal()}screenToRender(t,i){const e=t[0]*this._pixelRatio,r=this.fullHeight-t[1]*this._pixelRatio;return i[0]=e,i[1]=r,i}renderToScreen(t,i){const e=t[0]/this._pixelRatio,r=(this.fullHeight-t[1])/this._pixelRatio;i[0]=e,i[1]=r}_computeUpGlobal(){y(Z,this.center,this.eye);const t=T(this.center);t<1?(P(this._up,0,0,1),this._markViewDirty()):Math.abs(D(Z,this.center))>.9999*T(Z)*t||(R(this._up,Z,this.center),R(this._up,this._up,Z),F(this._up,this._up),this._markViewDirty())}_computeUpLocal(){O(Z,this.eye,this.center),Math.abs(Z[2])<=.9999&&(M(Z,Z,Z[2]),P(this._up,-Z[0],-Z[1],1-Z[2]),F(this._up,this._up),this._markViewDirty())}_compareAndSetView(i,e){"number"==typeof i[0]&&isFinite(i[0])&&"number"==typeof i[1]&&isFinite(i[1])&&"number"==typeof i[2]&&isFinite(i[2])?m(i,e)||(d(e,i),this._markViewDirty()):t.getLogger("esri.views.3d.webgl-engine.lib.Camera").warn("Camera vector contains invalid number, ignoring value")}_markViewDirty(){this._viewDirty=!0,this._frustumDirty=!0,this._viewProjectionDirty=!0}_recomputeFrustum(){this._frustumDirty&&(A(this.viewMatrix,this.projectionMatrix,this._frustum),this._frustumDirty=!1)}_ensureViewClean(){this._viewDirty&&(u(this._viewMatrix,this.eye,this._center,this._up),P(this._viewForward,-this._viewMatrix[2],-this._viewMatrix[6],-this._viewMatrix[10]),P(this._viewUp,this._viewMatrix[1],this._viewMatrix[5],this._viewMatrix[9]),P(this._viewRight,this._viewMatrix[0],this._viewMatrix[4],this._viewMatrix[8]),this._viewDirty=!1,this._viewInverseTransposeMatrixDirty=!0)}}const K=G(),Q=v(),Z=V(),$=V(),tt=h();var it;!function(t){t[t.TOP=0]="TOP",t[t.RIGHT=1]="RIGHT",t[t.BOTTOM=2]="BOTTOM",t[t.LEFT=3]="LEFT"}(it||(it={}));export{J as Camera,it as PaddingSide};
|
|
@@ -2,4 +2,4 @@
|
|
|
2
2
|
All material copyright ESRI, All Rights Reserved, unless otherwise specified.
|
|
3
3
|
See https://js.arcgis.com/4.25/esri/copyright.txt for details.
|
|
4
4
|
*/
|
|
5
|
-
import{disposeMaybe as
|
|
5
|
+
import{disposeMaybe as e,isNone as s}from"../../../../core/maybe.js";import{createQuadVAO as t}from"./glUtil3D.js";import{C as r}from"../../../../chunks/Compositing.glsl.js";import{CompositingTechnique as i}from"../shaders/CompositingTechnique.js";import{CompositingTechniqueConfiguration as o,AlphaMode as a}from"../shaders/CompositingTechniqueConfiguration.js";import{H as h}from"../../../../chunks/HUDCompositing.glsl.js";import{HUDCompositingTechnique as n}from"../shaders/HUDCompositingTechnique.js";import{O as m}from"../../../../chunks/OITCompositing.glsl.js";import{OITCompositingTechnique as c}from"../shaders/OITCompositingTechnique.js";import{O as _}from"../../../../chunks/OverlayCompositing.glsl.js";import{OverlayCompositingTechnique as u}from"../shaders/OverlayCompositingTechnique.js";import{PrimitiveType as p}from"../../../webgl/enums.js";import{vertexCount as l}from"../../../webgl/Util.js";class y{constructor(e,s){this._rctx=e,this._techniqueRepository=s,this._configuration=new o,this._passParameters=new r,this._oitParameters=new m,this._hudParameters=new h,this._overlayParameters=new _}dispose(){this._vao=e(this._vao)}compositeOIT(e,s,t,r){this._oitParameters.colorTexture=s,this._oitParameters.alphaTexture=t,this._oitParameters.frontFaceTexture=r;const i=this._rctx,o=this._techniqueRepository.acquire(c);i.bindTechnique(o,this._oitParameters,e);const a=this._ensureVAO();i.bindVAO(a),i.drawArrays(p.TRIANGLE_STRIP,0,l(a,"geometry")),o.release()}compositeHUD(e,s){this._hudParameters.texture=s;const t=this._rctx,r=this._techniqueRepository.acquire(n);t.bindTechnique(r,this._hudParameters,e);const i=this._ensureVAO();t.bindVAO(i),t.drawArrays(p.TRIANGLE_STRIP,0,l(i,"geometry")),r.release()}compositeOverlay(e,s,t,r){this._overlayParameters.texture=s,this._overlayParameters.opacity=t,this._overlayParameters.overlayIndex=r;const i=this._rctx,o=this._techniqueRepository.acquire(u);i.bindTechnique(o,this._overlayParameters,e);const a=this._ensureVAO();i.bindVAO(a),i.drawArrays(p.TRIANGLE_STRIP,0,l(a,"geometry")),o.release()}composite(e,s,t=a.None,r=1){const o=this._rctx;this._configuration.alphaMode=t,this._configuration.hasOpacityFactor=1!==r,this._passParameters.texture=s,this._passParameters.opacity=r;const h=this._techniqueRepository.acquire(i,this._configuration);o.bindTechnique(h,this._passParameters,e);const n=this._ensureVAO();o.bindVAO(n),o.drawArrays(p.TRIANGLE_STRIP,0,l(n,"geometry")),h.release()}_ensureVAO(){return s(this._vao)&&(this._vao=t(this._rctx)),this._vao}}export{y 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.25/esri/copyright.txt for details.
|
|
4
4
|
*/
|
|
5
|
-
import{isSome as t}from"../../../../core/maybe.js";import r from"../../../../core/ObjectPool.js";import{generateUID as s}from"../../../../core/uid.js";import{
|
|
5
|
+
import{isSome as t}from"../../../../core/maybe.js";import r from"../../../../core/ObjectPool.js";import{generateUID as s}from"../../../../core/uid.js";import{v as i}from"../../../../chunks/vec3.js";class o{constructor(){this._disposed=!1}get disposed(){return this._disposed}get shaderTransformation(){return this._shaderTransformation}acquire(t,r,i,o,e,a){this.id=s(),this.geometry=t,this.material=r,this.transformation=i,this.instanceParameters=o,this.origin=e,this._shaderTransformation=a,this._disposed=!1}release(){this._disposed=!1}dispose(){this._disposed=!0}getStaticTransformation(){return this.transformation}getShaderTransformation(){return t(this._shaderTransformation)?this._shaderTransformation(this.transformation):this.transformation}computeAttachmentOrigin(t){return!!(this.material.computeAttachmentOrigin?this.material.computeAttachmentOrigin(this.geometry,t):this.geometry.computeAttachmentOrigin(t))&&(i(t,t,this.getStaticTransformation()),!0)}}o.pool=new r(o);export{o as GeometryRecord};
|
|
@@ -2,4 +2,4 @@
|
|
|
2
2
|
All material copyright ESRI, All Rights Reserved, unless otherwise specified.
|
|
3
3
|
See https://js.arcgis.com/4.25/esri/copyright.txt for details.
|
|
4
4
|
*/
|
|
5
|
-
import{b as t,f as e,n,g as s,a,e as r,s as o,c as l,m as u}from"../../../../chunks/vec3.js";import{f as c,c as i,b as h}from"../../../../chunks/vec3f32.js";import{c as f}from"../../../../chunks/vec3f64.js";import{create as O,fromPositionAndNormal as p,intersectRay as A}from"../../../../geometry/support/plane.js";import{wrap as I}from"../../../../geometry/support/ray.js";import{PrimitiveType as M}from"./basicInterfaces.js";import{Vec3Compact as g}from"./BufferVectorMath.js";import{Geometry as y}from"./Geometry.js";import{generateDefaultIndexArray as d}from"./Indices.js";import{assert as N}from"./Util.js";import{VertexAttribute as w}from"./VertexAttribute.js";const P=g;var m,S,z;!function(t){const e=.5,n=[[-e,-e,e],[e,-e,e],[e,e,e],[-e,e,e],[-e,-e,-e],[e,-e,-e],[e,e,-e],[-e,e,-e]],s=[0,0,1,-1,0,0,1,0,0,0,-1,0,0,1,0,0,0,-1],a=[0,0,1,0,1,1,0,1],r=[0,1,2,2,3,0,4,0,3,3,7,4,1,5,6,6,2,1,1,0,4,4,5,1,3,2,6,6,7,3,5,4,7,7,6,5],o=new Array(36);for(let c=0;c<6;c++)for(let t=0;t<6;t++)o[6*c+t]=c;const l=new Array(36);for(let c=0;c<6;c++)l[6*c+0]=0,l[6*c+1]=1,l[6*c+2]=2,l[6*c+3]=2,l[6*c+4]=3,l[6*c+5]=0;function u(t){Array.isArray(t)||(t=[t,t,t]);const e=new Array(24);for(let s=0;s<8;s++)e[3*s]=n[s][0]*t[0],e[3*s+1]=n[s][1]*t[1],e[3*s+2]=n[s][2]*t[2];return new y([[w.POSITION,{size:3,data:e,exclusive:!0}],[w.NORMAL,{size:3,data:s}],[w.UV0,{size:2,data:a}]],[[w.POSITION,r],[w.NORMAL,o],[w.UV0,l]])}t.createGeometry=u}(m||(m={})),function(t){const e=.5,n=[[-e,0,-e],[e,0,-e],[e,0,e],[-e,0,e],[0,-e,0],[0,e,0]],s=[0,1,-1,1,1,0,0,1,1,-1,1,0,0,-1,-1,1,-1,0,0,-1,1,-1,-1,0],a=[5,1,0,5,2,1,5,3,2,5,0,3,4,0,1,4,1,2,4,2,3,4,3,0],r=[0,0,0,1,1,1,2,2,2,3,3,3,4,4,4,5,5,5,6,6,6,7,7,7];function o(t){Array.isArray(t)||(t=[t,t,t]);const e=new Array(18);for(let s=0;s<6;s++)e[3*s]=n[s][0]*t[0],e[3*s+1]=n[s][1]*t[1],e[3*s+2]=n[s][2]*t[2];return new y([[w.POSITION,{size:3,data:e,exclusive:!0}],[w.NORMAL,{size:3,data:s}]],[[w.POSITION,a],[w.NORMAL,r]])}t.createGeometry=o}(S||(S={})),function(s){const a=.5,r=0,o=c(-a,r,-a),l=c(a,r,-a),u=c(0,r,a),h=c(0,r+a,0),f=i(),O=i(),p=i(),A=i(),I=i();t(f,o,h),t(O,o,l),e(p,f,O),n(p,p),t(f,l,h),t(O,l,u),e(A,f,O),n(A,A),t(f,u,h),t(O,u,o),e(I,f,O),n(I,I);const M=[o,l,u,h],g=[0,-1,0,p[0],p[1],p[2],A[0],A[1],A[2],I[0],I[1],I[2]],d=[0,1,2,3,1,0,3,2,1,3,0,2],N=[0,0,0,1,1,1,2,2,2,3,3,3];function P(t){Array.isArray(t)||(t=[t,t,t]);const e=new Array(12);for(let n=0;n<4;n++)e[3*n]=M[n][0]*t[0],e[3*n+1]=M[n][1]*t[1],e[3*n+2]=M[n][2]*t[2];return new y([[w.POSITION,{size:3,data:e,exclusive:!0}],[w.NORMAL,{size:3,data:g}]],[[w.POSITION,d],[w.NORMAL,N]])}s.createGeometry=P}(z||(z={}));const v=m.createGeometry,x=S.createGeometry,L=z.createGeometry;function T(t,e,n,s={uv:!0}){const a=-Math.PI,r=2*Math.PI,o=-Math.PI/2,l=Math.PI,u=Math.max(3,Math.floor(e)),c=Math.max(2,Math.floor(n)),i=(u+1)*(c+1),h=new Float32Array(3*i),f=new Float32Array(3*i),O=new Float32Array(2*i),p=[];let A=0;for(let y=0;y<=c;y++){const e=[],n=y/c,s=o+n*l,i=Math.cos(s);for(let o=0;o<=u;o++){const l=o/u,c=a+l*r,p=Math.cos(c)*i,I=Math.sin(s),M=-Math.sin(c)*i;h[3*A]=p*t,h[3*A+1]=I*t,h[3*A+2]=M*t,f[3*A]=p,f[3*A+1]=I,f[3*A+2]=M,O[2*A]=l,O[2*A+1]=n,e.push(A),++A}p.push(e)}const I=new Array;for(let y=0;y<c;y++)for(let t=0;t<u;t++){const e=p[y][t],n=p[y][t+1],s=p[y+1][t+1],a=p[y+1][t];0===y?(I.push(e),I.push(s),I.push(a)):y===c-1?(I.push(e),I.push(n),I.push(s)):(I.push(e),I.push(n),I.push(s),I.push(s),I.push(a),I.push(e))}const M=[[w.POSITION,I],[w.NORMAL,I]],g=[[w.POSITION,{size:3,data:h,exclusive:!0}],[w.NORMAL,{size:3,data:f,exclusive:!0}]];return s.uv&&(g.push([w.UV0,{size:2,data:O,exclusive:!0}]),M.push([w.UV0,I])),s.offset&&(M[0][0]=w.OFFSET,g[0][0]=w.OFFSET,M.push([w.POSITION,new Array(I.length).fill(0)]),g.push([w.POSITION,{size:3,data:Float64Array.from(s.offset),exclusive:!0}])),new y(g,M)}function R(t,e,n){const s=t;let a,r;if(n)a=[0,-1,0,1,0,0,0,0,1,-1,0,0,0,0,-1,0,1,0],r=[0,1,2,0,2,3,0,3,4,0,4,1,1,5,2,2,5,3,3,5,4,4,5,1];else{const t=s*(1+Math.sqrt(5))/2;a=[-s,t,0,s,t,0,-s,-t,0,s,-t,0,0,-s,t,0,s,t,0,-s,-t,0,s,-t,t,0,-s,t,0,s,-t,0,-s,-t,0,s],r=[0,11,5,0,5,1,0,1,7,0,7,10,0,10,11,1,5,9,5,11,4,11,10,2,10,7,6,7,1,8,3,9,4,3,4,2,3,2,6,3,6,8,3,8,9,4,9,5,2,4,11,6,2,10,8,6,7,9,8,1]}for(let h=0;h<a.length;h+=3)P.scale(a,h,t/P.length(a,h));let o={};function l(e,n){e>n&&([e,n]=[n,e]);const s=e.toString()+"."+n.toString();if(o[s])return o[s];let r=a.length;return a.length+=3,P.add(a,3*e,a,3*n,a,r),P.scale(a,r,t/P.length(a,r)),r/=3,o[s]=r,r}for(let h=0;h<e;h++){const t=r.length,e=new Array(4*t);for(let n=0;n<t;n+=3){const t=r[n],s=r[n+1],a=r[n+2],o=l(t,s),u=l(s,a),c=l(a,t),i=4*n;e[i]=t,e[i+1]=o,e[i+2]=c,e[i+3]=s,e[i+4]=u,e[i+5]=o,e[i+6]=a,e[i+7]=c,e[i+8]=u,e[i+9]=o,e[i+10]=u,e[i+11]=c}r=e,o={}}const u=new Float32Array(a);for(let h=0;h<u.length;h+=3)P.normalize(u,h);const c=[[w.POSITION,r],[w.NORMAL,r]],i=[[w.POSITION,{size:3,data:new Float32Array(a),exclusive:!0}],[w.NORMAL,{size:3,data:u,exclusive:!0}]];return new y(i,c)}function b(t,e,n,s,a,r,o,l){const u=e?[e[0],e[1],e[2]]:[0,0,0],c=t?[t[0],t[1],t[2]]:[0,0,1];r=r||[0,0];const i=n?[255*n[0],255*n[1],255*n[2],n.length>3?255*n[3]:255]:[255,255,255,255],h=null!=s&&2===s.length?s:[1,1],f=[[w.POSITION,{size:3,data:u,exclusive:!0}],[w.NORMAL,{size:3,data:c,exclusive:!0}],[w.UV0,{size:r.length,data:r}],[w.COLOR,{size:4,data:i,exclusive:!0}],[w.SIZE,{size:2,data:h}]];if(null!=a){const t=new Float32Array([a[0],a[1],a[2],a[3]]);f.push([w.AUXPOS1,{size:4,data:t}])}if(null!=o){const t=new Float32Array([o[0],o[1],o[2],o[3]]);f.push([w.AUXPOS2,{size:4,data:t}])}return new y(f,null,M.Point,l)}function F(t,e,n,s,a,r,o,l){if(null!=t){const{data:e}=l.getMutableAttribute(w.NORMAL);e[0]=t[0],e[1]=t[1],e[2]=t[2]}if(null!=e){const{data:t}=l.getMutableAttribute(w.POSITION);t[0]=e[0],t[1]=e[1],t[2]=e[2]}if(null!=n){const{data:t}=l.getMutableAttribute(w.COLOR);t[0]=n[0],t[1]=n[1],t[2]=n[2],t[3]=n[3]}if(null!=s){const{data:t}=l.getMutableAttribute(w.SIZE);t[0]=s[0],t[1]=s[1]}if(null!=a){const{data:t}=l.getMutableAttribute(w.AUXPOS1);t[0]=a[0],t[1]=a[1],t[2]=a[2],t[3]=a[3]}if(null!=r){const{data:t}=l.getMutableAttribute(w.UV0);t[0]=r[0],t[1]=r[1]}if(null!=o){const{data:t}=l.getMutableAttribute(w.AUXPOS2);t[0]=o[0],t[1]=o[1],t[2]=o[2],t[3]=o[3]}}function U(t,e){const n=new Float32Array(3*t.length),s=new Float32Array(e?3*t.length:3),a=new Array(t.length),r=new Array(t.length).fill(0);for(let c=0;c<t.length;c++)n[3*c]=t[c][0],n[3*c+1]=t[c][1],n[3*c+2]=t[c][2],e&&(s[3*c]=e[c][0],s[3*c+1]=e[c][1],s[3*c+2]=e[c][2]),a[c]=c;e||(s[0]=0,s[1]=1,s[2]=0);const o=[0,0],l=[[w.POSITION,a],[w.NORMAL,e?a:r],[w.UV0,r]],u=[[w.POSITION,{size:3,data:n,exclusive:!0}],[w.NORMAL,{size:3,data:s,exclusive:!0}],[w.UV0,{size:2,data:o,exclusive:!0}]];return new y(u,l,M.Point)}function V(){const t=[0,0,0,0,0,100,100,0,0],e=[0,1,2],n=[0,1,0],s=[0,0,0],a=[0,0],r=[0,0,0],o=[[w.POSITION,e],[w.NORMAL,s],[w.UV0,r]],l=[[w.POSITION,{size:3,data:t,exclusive:!0}],[w.NORMAL,{size:3,data:n,exclusive:!0}],[w.UV0,{size:2,data:a,exclusive:!0}]];return new y(l,o)}const j=[[-1,-1,0],[1,-1,0],[1,1,0],[-1,1,0]];function G(t=j){const e=new Array(12);for(let c=0;c<4;c++)for(let n=0;n<3;n++)e[3*c+n]=t[c][n];const n=[0,1,2,2,3,0],s=[0,0,1],a=[0,0,0,0,0,0],r=[0,0,1,0,1,1,0,1],o=[255,255,255,255],l=[[w.POSITION,n],[w.NORMAL,a],[w.UV0,n],[w.COLOR,a]],u=[[w.POSITION,{size:3,data:e,exclusive:!0}],[w.NORMAL,{size:3,data:s,exclusive:!0}],[w.UV0,{size:2,data:r,exclusive:!0}],[w.COLOR,{size:4,data:o,exclusive:!0}]];return new y(u,l)}function C(t,e,n,s,a=!0,r=!0){let o=0;const l=e,u=t;let i=c(0,o,0),h=c(0,o+u,0),f=c(0,-1,0),O=c(0,1,0);s&&(o=u,h=c(0,0,0),i=c(0,o,0),f=c(0,1,0),O=c(0,-1,0));const p=[h,i],A=[f,O],I=n+2,M=Math.sqrt(u*u+l*l);if(s)for(let y=n-1;y>=0;y--){const t=y*(2*Math.PI/n),e=c(Math.cos(t)*l,o,Math.sin(t)*l);p.push(e);const s=c(u*Math.cos(t)/M,-l/M,u*Math.sin(t)/M);A.push(s)}else for(let y=0;y<n;y++){const t=y*(2*Math.PI/n),e=c(Math.cos(t)*l,o,Math.sin(t)*l);p.push(e);const s=c(u*Math.cos(t)/M,l/M,u*Math.sin(t)/M);A.push(s)}const g=new Array,d=new Array;if(a){for(let t=3;t<p.length;t++)g.push(1),g.push(t-1),g.push(t),d.push(0),d.push(0),d.push(0);g.push(p.length-1),g.push(2),g.push(1),d.push(0),d.push(0),d.push(0)}if(r){for(let t=3;t<p.length;t++)g.push(t),g.push(t-1),g.push(0),d.push(t),d.push(t-1),d.push(1);g.push(0),g.push(2),g.push(p.length-1),d.push(1),d.push(2),d.push(A.length-1)}const N=new Float32Array(3*I);for(let c=0;c<I;c++)N[3*c]=p[c][0],N[3*c+1]=p[c][1],N[3*c+2]=p[c][2];const P=new Float32Array(3*I);for(let c=0;c<I;c++)P[3*c]=A[c][0],P[3*c+1]=A[c][1],P[3*c+2]=A[c][2];const m=[[w.POSITION,g],[w.NORMAL,d]],S=[[w.POSITION,{size:3,data:N,exclusive:!0}],[w.NORMAL,{size:3,data:P,exclusive:!0}]];return new y(S,m)}function E(t,l,u,f,O,p){const A=f?h(f):c(1,0,0),I=O?h(O):c(0,0,0);p=p??!0;const M=i();n(M,A);const g=i();s(g,M,Math.abs(t));const d=i();s(d,g,-.5),a(d,d,I);const N=c(0,1,0);Math.abs(1-r(M,N))<.2&&o(N,0,0,1);const P=i();e(P,M,N),n(P,P),e(N,P,M);const m=2*u+(p?2:0),S=u+(p?2:0),z=new Float32Array(3*m),v=new Float32Array(3*S),x=new Float32Array(2*m),L=new Array(3*u*(p?4:2)),T=new Array(3*u*(p?4:2));p&&(z[3*(m-2)+0]=d[0],z[3*(m-2)+1]=d[1],z[3*(m-2)+2]=d[2],x[2*(m-2)]=0,x[2*(m-2)+1]=0,z[3*(m-1)+0]=z[3*(m-2)+0]+g[0],z[3*(m-1)+1]=z[3*(m-2)+1]+g[1],z[3*(m-1)+2]=z[3*(m-2)+2]+g[2],x[2*(m-1)]=1,x[2*(m-1)+1]=1,v[3*(S-2)+0]=-M[0],v[3*(S-2)+1]=-M[1],v[3*(S-2)+2]=-M[2],v[3*(S-1)+0]=M[0],v[3*(S-1)+1]=M[1],v[3*(S-1)+2]=M[2]);const R=(t,e,n)=>{L[t]=e,T[t]=n};let b=0;const F=i(),U=i();for(let e=0;e<u;e++){const t=e*(2*Math.PI/u);s(F,N,Math.sin(t)),s(U,P,Math.cos(t)),a(F,F,U),v[3*e+0]=F[0],v[3*e+1]=F[1],v[3*e+2]=F[2],s(F,F,l),a(F,F,d),z[3*e+0]=F[0],z[3*e+1]=F[1],z[3*e+2]=F[2],x[2*e+0]=e/u,x[2*e+1]=0,z[3*(e+u)+0]=z[3*e+0]+g[0],z[3*(e+u)+1]=z[3*e+1]+g[1],z[3*(e+u)+2]=z[3*e+2]+g[2],x[2*(e+u)+0]=e/u,x[2*e+1]=1;const n=(e+1)%u;R(b++,e,e),R(b++,e+u,e),R(b++,n,n),R(b++,n,n),R(b++,e+u,e),R(b++,n+u,n)}if(p){for(let t=0;t<u;t++){const e=(t+1)%u;R(b++,m-2,S-2),R(b++,t,S-2),R(b++,e,S-2)}for(let t=0;t<u;t++){const e=(t+1)%u;R(b++,t+u,S-1),R(b++,m-1,S-1),R(b++,e+u,S-1)}}const V=[[w.POSITION,L],[w.NORMAL,T],[w.UV0,L]],j=[[w.POSITION,{size:3,data:z,exclusive:!0}],[w.NORMAL,{size:3,data:v,exclusive:!0}],[w.UV0,{size:2,data:x,exclusive:!0}]];return new y(j,V)}function X(t,e,n,s,a){n=n||10,s=null==s||s,N(t.length>1);const r=[[0,0,0]],o=[],l=[];for(let u=0;u<n;u++){o.push([0,-u-1,-(u+1)%n-1]);const t=u/n*2*Math.PI;l.push([Math.cos(t)*e,Math.sin(t)*e])}return k(l,t,r,o,s,a)}function k(r,u,h,M,g,d=c(0,0,0)){const N=r.length,P=new Float32Array(u.length*N*3+(6*h.length||0)),m=new Float32Array(u.length*N*3+(h?6:0)),S=new Array,z=new Array;let v=0,x=0;const L=i(),T=i(),R=i(),b=i(),F=i(),U=i(),V=i(),j=f(),G=i(),C=i(),E=i(),X=i(),k=i(),q=O();o(G,0,1,0),t(T,u[1],u[0]),n(T,T),g?(a(j,u[0],d),n(R,j)):o(R,0,0,1),J(T,R,G,G,F,R,K),l(b,R),l(X,F);for(let t=0;t<h.length;t++)s(U,F,h[t][0]),s(j,R,h[t][2]),a(U,U,j),a(U,U,u[0]),P[v++]=U[0],P[v++]=U[1],P[v++]=U[2];m[x++]=-T[0],m[x++]=-T[1],m[x++]=-T[2];for(let t=0;t<M.length;t++)S.push(M[t][0]>0?M[t][0]:-M[t][0]-1+h.length),S.push(M[t][1]>0?M[t][1]:-M[t][1]-1+h.length),S.push(M[t][2]>0?M[t][2]:-M[t][2]-1+h.length),z.push(0),z.push(0),z.push(0);let Z=h.length;const B=h.length-1;for(let o=0;o<u.length;o++){let c=!1;if(o>0){l(L,T),o<u.length-1?(t(T,u[o+1],u[o]),n(T,T)):c=!0,a(C,L,T),n(C,C),a(E,u[o-1],b),p(u[o],C,q);A(q,I(E,L),j)?(t(j,j,u[o]),n(R,j),e(F,C,R),n(F,F)):J(C,b,X,G,F,R,K),l(b,R),l(X,F)}g&&(a(j,u[o],d),n(k,j));for(let t=0;t<N;t++)if(s(U,F,r[t][0]),s(j,R,r[t][1]),a(U,U,j),n(V,U),m[x++]=V[0],m[x++]=V[1],m[x++]=V[2],a(U,U,u[o]),P[v++]=U[0],P[v++]=U[1],P[v++]=U[2],!c){const e=(t+1)%N;S.push(Z+t),S.push(Z+N+t),S.push(Z+e),S.push(Z+e),S.push(Z+N+t),S.push(Z+N+e);for(let t=0;t<6;t++){const e=S.length-6;z.push(S[e+t]-B)}}Z+=N}const D=u[u.length-1];for(let t=0;t<h.length;t++)s(U,F,h[t][0]),s(j,R,h[t][1]),a(U,U,j),a(U,U,D),P[v++]=U[0],P[v++]=U[1],P[v++]=U[2];const H=x/3;m[x++]=T[0],m[x++]=T[1],m[x++]=T[2];const Q=Z-N;for(let t=0;t<M.length;t++)S.push(M[t][0]>=0?Z+M[t][0]:-M[t][0]-1+Q),S.push(M[t][2]>=0?Z+M[t][2]:-M[t][2]-1+Q),S.push(M[t][1]>=0?Z+M[t][1]:-M[t][1]-1+Q),z.push(H),z.push(H),z.push(H);const W=[[w.POSITION,S],[w.NORMAL,z]],Y=[[w.POSITION,{size:3,data:P,exclusive:!0}],[w.NORMAL,{size:3,data:m,exclusive:!0}]];return new y(Y,W)}function q(t,e,n){N(t.length>1,"createPolylineGeometry(): polyline needs at least 2 points"),N(3===t[0].length,"createPolylineGeometry(): malformed vertex"),N(null==e||e.length===t.length,"createPolylineGeometry: need same number of points and normals"),N(null==e||3===e[0].length,"createPolylineGeometry(): malformed normal");const s=new Float64Array(3*t.length),a=new Array(2*(t.length-1));let r=0,o=0;for(let c=0;c<t.length;c++){for(let e=0;e<3;e++)s[r++]=t[c][e];c>0&&(a[o++]=c-1,a[o++]=c)}const l=[],u=[];if(l.push([w.POSITION,a]),u.push([w.POSITION,{size:3,data:s,exclusive:!0}]),e){const n=new Float32Array(3*e.length);let s=0;for(let a=0;a<t.length;a++)for(let t=0;t<3;t++)n[s++]=e[a][t];l.push([w.NORMAL,a]),u.push([w.NORMAL,{size:3,data:n,exclusive:!0}])}return n&&(u.push([w.COLOR,{size:4,data:n}]),l.push([w.COLOR,d(n.length/4)])),new y(u,l,M.Line)}function Z(t,e,n,s,a=0){const r=new Array(18),o=[[-e,a,s/2],[n,a,s/2],[0,t+a,s/2],[-e,a,-s/2],[n,a,-s/2],[0,t+a,-s/2]],l=[0,1,2,3,0,2,2,5,3,1,4,5,5,2,1,1,0,3,3,4,1,4,3,5];for(let u=0;u<6;u++)r[3*u]=o[u][0],r[3*u+1]=o[u][1],r[3*u+2]=o[u][2];return new y([[w.POSITION,{size:3,data:r,exclusive:!0}]],[[w.POSITION,l]])}function B(t,e){const n=t.getMutableAttribute(w.POSITION).data;for(let s=0;s<n.length;s+=3){const t=n[s],a=n[s+1],r=n[s+2];o(Q,t,a,r),u(Q,Q,e),n[s]=Q[0],n[s+1]=Q[1],n[s+2]=Q[2]}}function D(t,e=t){const n=t.vertexAttributes,s=n.get(w.POSITION).data,a=n.get(w.NORMAL).data;if(a){const t=e.getMutableAttribute(w.NORMAL).data;for(let e=0;e<a.length;e+=3){const n=a[e+1];t[e+1]=-a[e+2],t[e+2]=n}}if(s){const t=e.getMutableAttribute(w.POSITION).data;for(let e=0;e<s.length;e+=3){const n=s[e+1];t[e+1]=-s[e+2],t[e+2]=n}}return e}function H(t,s,a,o,l){return!(Math.abs(r(s,t))>l)&&(e(a,t,s),n(a,a),e(o,a,t),n(o,o),!0)}function J(t,e,n,s,a,r,o){return H(t,e,a,r,o)||H(t,n,a,r,o)||H(t,s,a,r,o)}const K=.99619469809,Q=i();export{D as cgToGIS,v as createBoxGeometry,C as createConeGeometry,E as createCylinderGeometry,x as createDiamondGeometry,Z as createExtrudedTriangle,k as createPathExtrusionGeometry,U as createPointArrayGeometry,b as createPointGeometry,R as createPolySphereGeometry,q as createPolylineGeometry,T as createSphereGeometry,G as createSquareGeometry,L as createTetrahedronGeometry,V as createTriangleGeometry,X as createTubeGeometry,H as makeOrthoBasisDirUp,J as makeOrthoBasisDirUpFallback,B as transformInPlace,F as updatePointGeometry};
|
|
5
|
+
import{b as t,f as e,n,g as s,a,e as r,s as o,c as l,v as u}from"../../../../chunks/vec3.js";import{f as c,b as i,a as h}from"../../../../chunks/vec3f32.js";import{c as f}from"../../../../chunks/vec3f64.js";import{create as O,fromPositionAndNormal as p,intersectRay as A}from"../../../../geometry/support/plane.js";import{wrap as I}from"../../../../geometry/support/ray.js";import{PrimitiveType as M}from"./basicInterfaces.js";import{Vec3Compact as g}from"./BufferVectorMath.js";import{Geometry as y}from"./Geometry.js";import{generateDefaultIndexArray as d}from"./Indices.js";import{assert as N}from"./Util.js";import{VertexAttribute as w}from"./VertexAttribute.js";const P=g;var m,S,z;!function(t){const e=.5,n=[[-e,-e,e],[e,-e,e],[e,e,e],[-e,e,e],[-e,-e,-e],[e,-e,-e],[e,e,-e],[-e,e,-e]],s=[0,0,1,-1,0,0,1,0,0,0,-1,0,0,1,0,0,0,-1],a=[0,0,1,0,1,1,0,1],r=[0,1,2,2,3,0,4,0,3,3,7,4,1,5,6,6,2,1,1,0,4,4,5,1,3,2,6,6,7,3,5,4,7,7,6,5],o=new Array(36);for(let c=0;c<6;c++)for(let t=0;t<6;t++)o[6*c+t]=c;const l=new Array(36);for(let c=0;c<6;c++)l[6*c+0]=0,l[6*c+1]=1,l[6*c+2]=2,l[6*c+3]=2,l[6*c+4]=3,l[6*c+5]=0;function u(t){Array.isArray(t)||(t=[t,t,t]);const e=new Array(24);for(let s=0;s<8;s++)e[3*s]=n[s][0]*t[0],e[3*s+1]=n[s][1]*t[1],e[3*s+2]=n[s][2]*t[2];return new y([[w.POSITION,{size:3,data:e,exclusive:!0}],[w.NORMAL,{size:3,data:s}],[w.UV0,{size:2,data:a}]],[[w.POSITION,r],[w.NORMAL,o],[w.UV0,l]])}t.createGeometry=u}(m||(m={})),function(t){const e=.5,n=[[-e,0,-e],[e,0,-e],[e,0,e],[-e,0,e],[0,-e,0],[0,e,0]],s=[0,1,-1,1,1,0,0,1,1,-1,1,0,0,-1,-1,1,-1,0,0,-1,1,-1,-1,0],a=[5,1,0,5,2,1,5,3,2,5,0,3,4,0,1,4,1,2,4,2,3,4,3,0],r=[0,0,0,1,1,1,2,2,2,3,3,3,4,4,4,5,5,5,6,6,6,7,7,7];function o(t){Array.isArray(t)||(t=[t,t,t]);const e=new Array(18);for(let s=0;s<6;s++)e[3*s]=n[s][0]*t[0],e[3*s+1]=n[s][1]*t[1],e[3*s+2]=n[s][2]*t[2];return new y([[w.POSITION,{size:3,data:e,exclusive:!0}],[w.NORMAL,{size:3,data:s}]],[[w.POSITION,a],[w.NORMAL,r]])}t.createGeometry=o}(S||(S={})),function(s){const a=.5,r=0,o=c(-a,r,-a),l=c(a,r,-a),u=c(0,r,a),h=c(0,r+a,0),f=i(),O=i(),p=i(),A=i(),I=i();t(f,o,h),t(O,o,l),e(p,f,O),n(p,p),t(f,l,h),t(O,l,u),e(A,f,O),n(A,A),t(f,u,h),t(O,u,o),e(I,f,O),n(I,I);const M=[o,l,u,h],g=[0,-1,0,p[0],p[1],p[2],A[0],A[1],A[2],I[0],I[1],I[2]],d=[0,1,2,3,1,0,3,2,1,3,0,2],N=[0,0,0,1,1,1,2,2,2,3,3,3];function P(t){Array.isArray(t)||(t=[t,t,t]);const e=new Array(12);for(let n=0;n<4;n++)e[3*n]=M[n][0]*t[0],e[3*n+1]=M[n][1]*t[1],e[3*n+2]=M[n][2]*t[2];return new y([[w.POSITION,{size:3,data:e,exclusive:!0}],[w.NORMAL,{size:3,data:g}]],[[w.POSITION,d],[w.NORMAL,N]])}s.createGeometry=P}(z||(z={}));const v=m.createGeometry,x=S.createGeometry,L=z.createGeometry;function T(t,e,n,s={uv:!0}){const a=-Math.PI,r=2*Math.PI,o=-Math.PI/2,l=Math.PI,u=Math.max(3,Math.floor(e)),c=Math.max(2,Math.floor(n)),i=(u+1)*(c+1),h=new Float32Array(3*i),f=new Float32Array(3*i),O=new Float32Array(2*i),p=[];let A=0;for(let y=0;y<=c;y++){const e=[],n=y/c,s=o+n*l,i=Math.cos(s);for(let o=0;o<=u;o++){const l=o/u,c=a+l*r,p=Math.cos(c)*i,I=Math.sin(s),M=-Math.sin(c)*i;h[3*A]=p*t,h[3*A+1]=I*t,h[3*A+2]=M*t,f[3*A]=p,f[3*A+1]=I,f[3*A+2]=M,O[2*A]=l,O[2*A+1]=n,e.push(A),++A}p.push(e)}const I=new Array;for(let y=0;y<c;y++)for(let t=0;t<u;t++){const e=p[y][t],n=p[y][t+1],s=p[y+1][t+1],a=p[y+1][t];0===y?(I.push(e),I.push(s),I.push(a)):y===c-1?(I.push(e),I.push(n),I.push(s)):(I.push(e),I.push(n),I.push(s),I.push(s),I.push(a),I.push(e))}const M=[[w.POSITION,I],[w.NORMAL,I]],g=[[w.POSITION,{size:3,data:h,exclusive:!0}],[w.NORMAL,{size:3,data:f,exclusive:!0}]];return s.uv&&(g.push([w.UV0,{size:2,data:O,exclusive:!0}]),M.push([w.UV0,I])),s.offset&&(M[0][0]=w.OFFSET,g[0][0]=w.OFFSET,M.push([w.POSITION,new Array(I.length).fill(0)]),g.push([w.POSITION,{size:3,data:Float64Array.from(s.offset),exclusive:!0}])),new y(g,M)}function R(t,e,n){const s=t;let a,r;if(n)a=[0,-1,0,1,0,0,0,0,1,-1,0,0,0,0,-1,0,1,0],r=[0,1,2,0,2,3,0,3,4,0,4,1,1,5,2,2,5,3,3,5,4,4,5,1];else{const t=s*(1+Math.sqrt(5))/2;a=[-s,t,0,s,t,0,-s,-t,0,s,-t,0,0,-s,t,0,s,t,0,-s,-t,0,s,-t,t,0,-s,t,0,s,-t,0,-s,-t,0,s],r=[0,11,5,0,5,1,0,1,7,0,7,10,0,10,11,1,5,9,5,11,4,11,10,2,10,7,6,7,1,8,3,9,4,3,4,2,3,2,6,3,6,8,3,8,9,4,9,5,2,4,11,6,2,10,8,6,7,9,8,1]}for(let h=0;h<a.length;h+=3)P.scale(a,h,t/P.length(a,h));let o={};function l(e,n){e>n&&([e,n]=[n,e]);const s=e.toString()+"."+n.toString();if(o[s])return o[s];let r=a.length;return a.length+=3,P.add(a,3*e,a,3*n,a,r),P.scale(a,r,t/P.length(a,r)),r/=3,o[s]=r,r}for(let h=0;h<e;h++){const t=r.length,e=new Array(4*t);for(let n=0;n<t;n+=3){const t=r[n],s=r[n+1],a=r[n+2],o=l(t,s),u=l(s,a),c=l(a,t),i=4*n;e[i]=t,e[i+1]=o,e[i+2]=c,e[i+3]=s,e[i+4]=u,e[i+5]=o,e[i+6]=a,e[i+7]=c,e[i+8]=u,e[i+9]=o,e[i+10]=u,e[i+11]=c}r=e,o={}}const u=new Float32Array(a);for(let h=0;h<u.length;h+=3)P.normalize(u,h);const c=[[w.POSITION,r],[w.NORMAL,r]],i=[[w.POSITION,{size:3,data:new Float32Array(a),exclusive:!0}],[w.NORMAL,{size:3,data:u,exclusive:!0}]];return new y(i,c)}function b(t,e,n,s,a,r,o,l){const u=e?[e[0],e[1],e[2]]:[0,0,0],c=t?[t[0],t[1],t[2]]:[0,0,1];r=r||[0,0];const i=n?[255*n[0],255*n[1],255*n[2],n.length>3?255*n[3]:255]:[255,255,255,255],h=null!=s&&2===s.length?s:[1,1],f=[[w.POSITION,{size:3,data:u,exclusive:!0}],[w.NORMAL,{size:3,data:c,exclusive:!0}],[w.UV0,{size:r.length,data:r}],[w.COLOR,{size:4,data:i,exclusive:!0}],[w.SIZE,{size:2,data:h}]];if(null!=a){const t=new Float32Array([a[0],a[1],a[2],a[3]]);f.push([w.AUXPOS1,{size:4,data:t}])}if(null!=o){const t=new Float32Array([o[0],o[1],o[2],o[3]]);f.push([w.AUXPOS2,{size:4,data:t}])}return new y(f,null,M.Point,l)}function F(t,e,n,s,a,r,o,l){if(null!=t){const{data:e}=l.getMutableAttribute(w.NORMAL);e[0]=t[0],e[1]=t[1],e[2]=t[2]}if(null!=e){const{data:t}=l.getMutableAttribute(w.POSITION);t[0]=e[0],t[1]=e[1],t[2]=e[2]}if(null!=n){const{data:t}=l.getMutableAttribute(w.COLOR);t[0]=n[0],t[1]=n[1],t[2]=n[2],t[3]=n[3]}if(null!=s){const{data:t}=l.getMutableAttribute(w.SIZE);t[0]=s[0],t[1]=s[1]}if(null!=a){const{data:t}=l.getMutableAttribute(w.AUXPOS1);t[0]=a[0],t[1]=a[1],t[2]=a[2],t[3]=a[3]}if(null!=r){const{data:t}=l.getMutableAttribute(w.UV0);t[0]=r[0],t[1]=r[1]}if(null!=o){const{data:t}=l.getMutableAttribute(w.AUXPOS2);t[0]=o[0],t[1]=o[1],t[2]=o[2],t[3]=o[3]}}function U(t,e){const n=new Float32Array(3*t.length),s=new Float32Array(e?3*t.length:3),a=new Array(t.length),r=new Array(t.length).fill(0);for(let c=0;c<t.length;c++)n[3*c]=t[c][0],n[3*c+1]=t[c][1],n[3*c+2]=t[c][2],e&&(s[3*c]=e[c][0],s[3*c+1]=e[c][1],s[3*c+2]=e[c][2]),a[c]=c;e||(s[0]=0,s[1]=1,s[2]=0);const o=[0,0],l=[[w.POSITION,a],[w.NORMAL,e?a:r],[w.UV0,r]],u=[[w.POSITION,{size:3,data:n,exclusive:!0}],[w.NORMAL,{size:3,data:s,exclusive:!0}],[w.UV0,{size:2,data:o,exclusive:!0}]];return new y(u,l,M.Point)}function V(){const t=[0,0,0,0,0,100,100,0,0],e=[0,1,2],n=[0,1,0],s=[0,0,0],a=[0,0],r=[0,0,0],o=[[w.POSITION,e],[w.NORMAL,s],[w.UV0,r]],l=[[w.POSITION,{size:3,data:t,exclusive:!0}],[w.NORMAL,{size:3,data:n,exclusive:!0}],[w.UV0,{size:2,data:a,exclusive:!0}]];return new y(l,o)}const j=[[-1,-1,0],[1,-1,0],[1,1,0],[-1,1,0]];function G(t=j){const e=new Array(12);for(let c=0;c<4;c++)for(let n=0;n<3;n++)e[3*c+n]=t[c][n];const n=[0,1,2,2,3,0],s=[0,0,1],a=[0,0,0,0,0,0],r=[0,0,1,0,1,1,0,1],o=[255,255,255,255],l=[[w.POSITION,n],[w.NORMAL,a],[w.UV0,n],[w.COLOR,a]],u=[[w.POSITION,{size:3,data:e,exclusive:!0}],[w.NORMAL,{size:3,data:s,exclusive:!0}],[w.UV0,{size:2,data:r,exclusive:!0}],[w.COLOR,{size:4,data:o,exclusive:!0}]];return new y(u,l)}function C(t,e,n,s,a=!0,r=!0){let o=0;const l=e,u=t;let i=c(0,o,0),h=c(0,o+u,0),f=c(0,-1,0),O=c(0,1,0);s&&(o=u,h=c(0,0,0),i=c(0,o,0),f=c(0,1,0),O=c(0,-1,0));const p=[h,i],A=[f,O],I=n+2,M=Math.sqrt(u*u+l*l);if(s)for(let y=n-1;y>=0;y--){const t=y*(2*Math.PI/n),e=c(Math.cos(t)*l,o,Math.sin(t)*l);p.push(e);const s=c(u*Math.cos(t)/M,-l/M,u*Math.sin(t)/M);A.push(s)}else for(let y=0;y<n;y++){const t=y*(2*Math.PI/n),e=c(Math.cos(t)*l,o,Math.sin(t)*l);p.push(e);const s=c(u*Math.cos(t)/M,l/M,u*Math.sin(t)/M);A.push(s)}const g=new Array,d=new Array;if(a){for(let t=3;t<p.length;t++)g.push(1),g.push(t-1),g.push(t),d.push(0),d.push(0),d.push(0);g.push(p.length-1),g.push(2),g.push(1),d.push(0),d.push(0),d.push(0)}if(r){for(let t=3;t<p.length;t++)g.push(t),g.push(t-1),g.push(0),d.push(t),d.push(t-1),d.push(1);g.push(0),g.push(2),g.push(p.length-1),d.push(1),d.push(2),d.push(A.length-1)}const N=new Float32Array(3*I);for(let c=0;c<I;c++)N[3*c]=p[c][0],N[3*c+1]=p[c][1],N[3*c+2]=p[c][2];const P=new Float32Array(3*I);for(let c=0;c<I;c++)P[3*c]=A[c][0],P[3*c+1]=A[c][1],P[3*c+2]=A[c][2];const m=[[w.POSITION,g],[w.NORMAL,d]],S=[[w.POSITION,{size:3,data:N,exclusive:!0}],[w.NORMAL,{size:3,data:P,exclusive:!0}]];return new y(S,m)}function E(t,l,u,f,O,p){const A=f?h(f):c(1,0,0),I=O?h(O):c(0,0,0);p=p??!0;const M=i();n(M,A);const g=i();s(g,M,Math.abs(t));const d=i();s(d,g,-.5),a(d,d,I);const N=c(0,1,0);Math.abs(1-r(M,N))<.2&&o(N,0,0,1);const P=i();e(P,M,N),n(P,P),e(N,P,M);const m=2*u+(p?2:0),S=u+(p?2:0),z=new Float32Array(3*m),v=new Float32Array(3*S),x=new Float32Array(2*m),L=new Array(3*u*(p?4:2)),T=new Array(3*u*(p?4:2));p&&(z[3*(m-2)+0]=d[0],z[3*(m-2)+1]=d[1],z[3*(m-2)+2]=d[2],x[2*(m-2)]=0,x[2*(m-2)+1]=0,z[3*(m-1)+0]=z[3*(m-2)+0]+g[0],z[3*(m-1)+1]=z[3*(m-2)+1]+g[1],z[3*(m-1)+2]=z[3*(m-2)+2]+g[2],x[2*(m-1)]=1,x[2*(m-1)+1]=1,v[3*(S-2)+0]=-M[0],v[3*(S-2)+1]=-M[1],v[3*(S-2)+2]=-M[2],v[3*(S-1)+0]=M[0],v[3*(S-1)+1]=M[1],v[3*(S-1)+2]=M[2]);const R=(t,e,n)=>{L[t]=e,T[t]=n};let b=0;const F=i(),U=i();for(let e=0;e<u;e++){const t=e*(2*Math.PI/u);s(F,N,Math.sin(t)),s(U,P,Math.cos(t)),a(F,F,U),v[3*e+0]=F[0],v[3*e+1]=F[1],v[3*e+2]=F[2],s(F,F,l),a(F,F,d),z[3*e+0]=F[0],z[3*e+1]=F[1],z[3*e+2]=F[2],x[2*e+0]=e/u,x[2*e+1]=0,z[3*(e+u)+0]=z[3*e+0]+g[0],z[3*(e+u)+1]=z[3*e+1]+g[1],z[3*(e+u)+2]=z[3*e+2]+g[2],x[2*(e+u)+0]=e/u,x[2*e+1]=1;const n=(e+1)%u;R(b++,e,e),R(b++,e+u,e),R(b++,n,n),R(b++,n,n),R(b++,e+u,e),R(b++,n+u,n)}if(p){for(let t=0;t<u;t++){const e=(t+1)%u;R(b++,m-2,S-2),R(b++,t,S-2),R(b++,e,S-2)}for(let t=0;t<u;t++){const e=(t+1)%u;R(b++,t+u,S-1),R(b++,m-1,S-1),R(b++,e+u,S-1)}}const V=[[w.POSITION,L],[w.NORMAL,T],[w.UV0,L]],j=[[w.POSITION,{size:3,data:z,exclusive:!0}],[w.NORMAL,{size:3,data:v,exclusive:!0}],[w.UV0,{size:2,data:x,exclusive:!0}]];return new y(j,V)}function X(t,e,n,s,a){n=n||10,s=null==s||s,N(t.length>1);const r=[[0,0,0]],o=[],l=[];for(let u=0;u<n;u++){o.push([0,-u-1,-(u+1)%n-1]);const t=u/n*2*Math.PI;l.push([Math.cos(t)*e,Math.sin(t)*e])}return k(l,t,r,o,s,a)}function k(r,u,h,M,g,d=c(0,0,0)){const N=r.length,P=new Float32Array(u.length*N*3+(6*h.length||0)),m=new Float32Array(u.length*N*3+(h?6:0)),S=new Array,z=new Array;let v=0,x=0;const L=i(),T=i(),R=i(),b=i(),F=i(),U=i(),V=i(),j=f(),G=i(),C=i(),E=i(),X=i(),k=i(),q=O();o(G,0,1,0),t(T,u[1],u[0]),n(T,T),g?(a(j,u[0],d),n(R,j)):o(R,0,0,1),J(T,R,G,G,F,R,K),l(b,R),l(X,F);for(let t=0;t<h.length;t++)s(U,F,h[t][0]),s(j,R,h[t][2]),a(U,U,j),a(U,U,u[0]),P[v++]=U[0],P[v++]=U[1],P[v++]=U[2];m[x++]=-T[0],m[x++]=-T[1],m[x++]=-T[2];for(let t=0;t<M.length;t++)S.push(M[t][0]>0?M[t][0]:-M[t][0]-1+h.length),S.push(M[t][1]>0?M[t][1]:-M[t][1]-1+h.length),S.push(M[t][2]>0?M[t][2]:-M[t][2]-1+h.length),z.push(0),z.push(0),z.push(0);let Z=h.length;const B=h.length-1;for(let o=0;o<u.length;o++){let c=!1;if(o>0){l(L,T),o<u.length-1?(t(T,u[o+1],u[o]),n(T,T)):c=!0,a(C,L,T),n(C,C),a(E,u[o-1],b),p(u[o],C,q);A(q,I(E,L),j)?(t(j,j,u[o]),n(R,j),e(F,C,R),n(F,F)):J(C,b,X,G,F,R,K),l(b,R),l(X,F)}g&&(a(j,u[o],d),n(k,j));for(let t=0;t<N;t++)if(s(U,F,r[t][0]),s(j,R,r[t][1]),a(U,U,j),n(V,U),m[x++]=V[0],m[x++]=V[1],m[x++]=V[2],a(U,U,u[o]),P[v++]=U[0],P[v++]=U[1],P[v++]=U[2],!c){const e=(t+1)%N;S.push(Z+t),S.push(Z+N+t),S.push(Z+e),S.push(Z+e),S.push(Z+N+t),S.push(Z+N+e);for(let t=0;t<6;t++){const e=S.length-6;z.push(S[e+t]-B)}}Z+=N}const D=u[u.length-1];for(let t=0;t<h.length;t++)s(U,F,h[t][0]),s(j,R,h[t][1]),a(U,U,j),a(U,U,D),P[v++]=U[0],P[v++]=U[1],P[v++]=U[2];const H=x/3;m[x++]=T[0],m[x++]=T[1],m[x++]=T[2];const Q=Z-N;for(let t=0;t<M.length;t++)S.push(M[t][0]>=0?Z+M[t][0]:-M[t][0]-1+Q),S.push(M[t][2]>=0?Z+M[t][2]:-M[t][2]-1+Q),S.push(M[t][1]>=0?Z+M[t][1]:-M[t][1]-1+Q),z.push(H),z.push(H),z.push(H);const W=[[w.POSITION,S],[w.NORMAL,z]],Y=[[w.POSITION,{size:3,data:P,exclusive:!0}],[w.NORMAL,{size:3,data:m,exclusive:!0}]];return new y(Y,W)}function q(t,e,n){N(t.length>1,"createPolylineGeometry(): polyline needs at least 2 points"),N(3===t[0].length,"createPolylineGeometry(): malformed vertex"),N(null==e||e.length===t.length,"createPolylineGeometry: need same number of points and normals"),N(null==e||3===e[0].length,"createPolylineGeometry(): malformed normal");const s=new Float64Array(3*t.length),a=new Array(2*(t.length-1));let r=0,o=0;for(let c=0;c<t.length;c++){for(let e=0;e<3;e++)s[r++]=t[c][e];c>0&&(a[o++]=c-1,a[o++]=c)}const l=[],u=[];if(l.push([w.POSITION,a]),u.push([w.POSITION,{size:3,data:s,exclusive:!0}]),e){const n=new Float32Array(3*e.length);let s=0;for(let a=0;a<t.length;a++)for(let t=0;t<3;t++)n[s++]=e[a][t];l.push([w.NORMAL,a]),u.push([w.NORMAL,{size:3,data:n,exclusive:!0}])}return n&&(u.push([w.COLOR,{size:4,data:n}]),l.push([w.COLOR,d(n.length/4)])),new y(u,l,M.Line)}function Z(t,e,n,s,a=0){const r=new Array(18),o=[[-e,a,s/2],[n,a,s/2],[0,t+a,s/2],[-e,a,-s/2],[n,a,-s/2],[0,t+a,-s/2]],l=[0,1,2,3,0,2,2,5,3,1,4,5,5,2,1,1,0,3,3,4,1,4,3,5];for(let u=0;u<6;u++)r[3*u]=o[u][0],r[3*u+1]=o[u][1],r[3*u+2]=o[u][2];return new y([[w.POSITION,{size:3,data:r,exclusive:!0}]],[[w.POSITION,l]])}function B(t,e){const n=t.getMutableAttribute(w.POSITION).data;for(let s=0;s<n.length;s+=3){const t=n[s],a=n[s+1],r=n[s+2];o(Q,t,a,r),u(Q,Q,e),n[s]=Q[0],n[s+1]=Q[1],n[s+2]=Q[2]}}function D(t,e=t){const n=t.vertexAttributes,s=n.get(w.POSITION).data,a=n.get(w.NORMAL).data;if(a){const t=e.getMutableAttribute(w.NORMAL).data;for(let e=0;e<a.length;e+=3){const n=a[e+1];t[e+1]=-a[e+2],t[e+2]=n}}if(s){const t=e.getMutableAttribute(w.POSITION).data;for(let e=0;e<s.length;e+=3){const n=s[e+1];t[e+1]=-s[e+2],t[e+2]=n}}return e}function H(t,s,a,o,l){return!(Math.abs(r(s,t))>l)&&(e(a,t,s),n(a,a),e(o,a,t),n(o,o),!0)}function J(t,e,n,s,a,r,o){return H(t,e,a,r,o)||H(t,n,a,r,o)||H(t,s,a,r,o)}const K=.99619469809,Q=i();export{D as cgToGIS,v as createBoxGeometry,C as createConeGeometry,E as createCylinderGeometry,x as createDiamondGeometry,Z as createExtrudedTriangle,k as createPathExtrusionGeometry,U as createPointArrayGeometry,b as createPointGeometry,R as createPolySphereGeometry,q as createPolylineGeometry,T as createSphereGeometry,G as createSquareGeometry,L as createTetrahedronGeometry,V as createTriangleGeometry,X as createTubeGeometry,H as makeOrthoBasisDirUp,J as makeOrthoBasisDirUpFallback,B as transformInPlace,F as updatePointGeometry};
|
|
@@ -2,4 +2,4 @@
|
|
|
2
2
|
All material copyright ESRI, All Rights Reserved, unless otherwise specified.
|
|
3
3
|
See https://js.arcgis.com/4.25/esri/copyright.txt for details.
|
|
4
4
|
*/
|
|
5
|
-
import{releaseMaybe as e,disposeMaybe as t,isSome as r}from"../../../../core/maybe.js";import{s as i}from"../../../../chunks/vec2.js";import{c as s}from"../../../../chunks/vec4.js";import{c as a}from"../../../../chunks/vec4f64.js";import{
|
|
5
|
+
import{releaseMaybe as e,disposeMaybe as t,isSome as r}from"../../../../core/maybe.js";import{s as i}from"../../../../chunks/vec2.js";import{c as s}from"../../../../chunks/vec4.js";import{c as a}from"../../../../chunks/vec4f64.js";import{Default3D as o}from"./DefaultVertexAttributeLocations.js";import{Pos2Tex as h}from"./DefaultVertexBufferLayouts.js";import{createQuadVAO as l}from"./glUtil3D.js";import{VertexArrayObject as p}from"./VertexArrayObject.js";import{HighlightApplyTechnique as u}from"../shaders/HighlightApplyTechnique.js";import{H as m}from"../../../../chunks/HighlightBlur.glsl.js";import{HighlightBlurTechnique as c}from"../shaders/HighlightBlurTechnique.js";import{H as _}from"../../../../chunks/HighlightDownsample.glsl.js";import{HighlightDownsampleTechnique as n}from"../shaders/HighlightDownsampleTechnique.js";import{HighlightPassParameters as g}from"../shaders/HighlightPassParameters.js";import{BufferObject as d}from"../../../webgl/BufferObject.js";import{TargetType as b,DepthStencilTargetType as w,TextureType as T,PixelFormat as v,PixelType as f,TextureSamplingMode as M,TextureWrapMode as q,ClearBufferBit as x,Usage as P,PrimitiveType as F}from"../../../webgl/enums.js";import{FramebufferObject as R}from"../../../webgl/FramebufferObject.js";import{vertexCount as y}from"../../../webgl/Util.js";const A=32;class D{constructor(e,t){this._techniqueRep=e,this._rctx=t,this._viewportToRestore=a(),this._passParameters=new g,this._downsampleDrawParameters=new _,this._blurDrawParameters=new m,this._grid={coverageMipmap:null,vao:null,verticalCellCount:0,horizontalCellCount:0,cellPixelSize:0,mipmapLevels:0,viewportWidth:0,viewportHeight:0}}_assertResources(){if(this._quadVAO)return;this._quadVAO=l(this._rctx);const e={colorTarget:b.TEXTURE,depthStencilTarget:w.NONE,width:0,height:0},t={target:T.TEXTURE_2D,pixelFormat:v.RGBA,dataType:f.UNSIGNED_BYTE,samplingMode:M.LINEAR,wrapMode:q.CLAMP_TO_EDGE,width:0,height:0};this._blur0Fbo=new R(this._rctx,e,t),this._blur1Fbo=new R(this._rctx,e,t),this._blurTechnique=this._techniqueRep.acquire(c),this._downsampleTechnique=this._techniqueRep.acquire(n),this._applyTechnique=this._techniqueRep.acquire(u)}dispose(){if(this._blurTechnique=e(this._blurTechnique),this._downsampleTechnique=e(this._downsampleTechnique),this._applyTechnique=e(this._applyTechnique),this._grid.coverageMipmap)for(let e=1;e<this._grid.coverageMipmap.length;e++)this._grid.coverageMipmap[e].dispose();this._grid.vao&&this._grid.vao.dispose(!0),this._quadVAO&&(this._quadVAO.dispose(!0),this._quadVAO=null),this._blur0Fbo=t(this._blur0Fbo),this._blur1Fbo=t(this._blur1Fbo)}setDefaultOptions(e){this._passParameters={...new g,...e}}render(e,t,r){this._passParameters.highlightColorTexture=t.colorTexture,this._assertResources();const a=e.camera;s(this._viewportToRestore,a.fullViewport);const o=a.fullWidth,h=a.fullHeight,l=a.pixelRatio,p=Math.ceil(o/l),u=Math.ceil(h/l);this._blur0Fbo.resize(p,u),this._blur1Fbo.resize(p,u);const m=this._rctx;m.bindVAO(this._quadVAO);let c=null;this._gridUpdateResources(t,A),this._gridComputeMipmap(e),this._passParameters.coverageTexture=this._grid.coverageMipmap[this._grid.mipmapLevels].colorTexture,c=this._grid.vao;const _=m.bindTechnique(this._blurTechnique,this._passParameters,e);m.bindVAO(c),m.bindFramebuffer(this._blur0Fbo),m.setViewport(0,0,p,u),m.setClearColor(0,0,0,0),m.clear(x.COLOR_BUFFER_BIT),this._blurDrawParameters.blurInputTexture=t.colorTexture,i(this._blurDrawParameters.blurSize,1/p,0),_.bindDraw(this._blurDrawParameters,e,this._passParameters),m.drawArrays(this._blurTechnique.primitiveType,0,y(c,"geometry")),m.bindFramebuffer(this._blur1Fbo),m.clear(x.COLOR_BUFFER_BIT),this._blurDrawParameters.blurInputTexture=this._blur0Fbo.colorTexture,i(this._blurDrawParameters.blurSize,0,1/u),_.bindDraw(this._blurDrawParameters,e,this._passParameters),m.drawArrays(this._blurTechnique.primitiveType,0,y(c,"geometry")),m.bindFramebuffer(r),m.setViewport(this._viewportToRestore[0],this._viewportToRestore[1],this._viewportToRestore[2],this._viewportToRestore[3]),this._passParameters.blurColorTexture=this._blur1Fbo.colorTexture,m.bindTechnique(this._applyTechnique,this._passParameters,e),m.drawArrays(this._applyTechnique.primitiveType,0,y(c,"geometry")),m.bindVAO(null)}_gridUpdateResources(e,t){const r=this._rctx,i=this._grid;let s=!1;if(null===i.coverageMipmap&&(i.coverageMipmap=[e],s=!0),i.viewportWidth===e.width&&i.viewportHeight===e.height||(s=!0,i.viewportWidth=e.width,i.viewportHeight=e.height),i.coverageMipmap[0]=e,i.cellPixelSize!==t&&(i.cellPixelSize=t,s=!0),s){for(let e=1;e<i.coverageMipmap.length;e++)i.coverageMipmap[e].dispose();i.mipmapLevels=Math.ceil(Math.log(i.cellPixelSize)*Math.LOG2E),i.coverageMipmap.length=i.mipmapLevels+1;for(let e=0;e<i.mipmapLevels;e++){const t=i.coverageMipmap[e],s={target:T.TEXTURE_2D,pixelFormat:v.RGB,dataType:f.UNSIGNED_SHORT_5_6_5,samplingMode:M.LINEAR,wrapMode:q.CLAMP_TO_EDGE,width:Math.ceil(t.width/2),height:Math.ceil(t.height/2)},a={colorTarget:b.TEXTURE,depthStencilTarget:w.NONE,width:Math.ceil(t.width/2),height:Math.ceil(t.height/2)};i.coverageMipmap[e+1]=new R(r,a,s)}}const a=Math.ceil(e.height/i.cellPixelSize),l=Math.ceil(e.width/i.cellPixelSize);if(!i.vao||i.verticalCellCount!==a||i.horizontalCellCount!==l){i.verticalCellCount=a,i.horizontalCellCount=l;const e=a+1,t=l+1,s=1/a,u=1/l,m=6,c=4,_=new Float32Array(m*c*e*t);let n=0;for(let r=0;r<e;r++)for(let e=0;e<t;e++)_[n+0]=(e-.5)*u*2-1,_[n+1]=(r-.5)*s*2-1,_[n+2]=e*u,_[n+3]=r*s,_[n+4]=(e+.5)*u*2-1,_[n+5]=(r-.5)*s*2-1,_[n+6]=e*u,_[n+7]=r*s,_[n+8]=(e-.5)*u*2-1,_[n+9]=(r+.5)*s*2-1,_[n+10]=e*u,_[n+11]=r*s,_[n+12]=(e-.5)*u*2-1,_[n+13]=(r+.5)*s*2-1,_[n+14]=e*u,_[n+15]=r*s,_[n+16]=(e+.5)*u*2-1,_[n+17]=(r-.5)*s*2-1,_[n+18]=e*u,_[n+19]=r*s,_[n+20]=(e+.5)*u*2-1,_[n+21]=(r+.5)*s*2-1,_[n+22]=e*u,_[n+23]=r*s,n+=m*c;i.vao&&i.vao.dispose(!0),i.vao=new p(r,o,{geometry:h},{geometry:d.createVertex(r,P.STATIC_DRAW,_)})}}_gridComputeMipmap(e){const t=this._rctx,r=this._grid,s=t.bindTechnique(this._downsampleTechnique,this._passParameters,e);t.bindVAO(this._quadVAO);for(let a=0;a<r.mipmapLevels;a++){t.bindFramebuffer(r.coverageMipmap[a+1]);const o=r.coverageMipmap[a+1].width,h=r.coverageMipmap[a+1].height;this._downsampleDrawParameters.inputTexture=r.coverageMipmap[a].colorTexture,i(this._downsampleDrawParameters.invFramebufferDim,1/o,1/h),s.bindDraw(this._downsampleDrawParameters,e,this._passParameters),t.setViewport(0,0,o,h),t.drawArrays(F.TRIANGLE_STRIP,0,y(this._quadVAO,"geometry"))}}get gpuMemoryUsage(){let e=(r(this._blur0Fbo)?this._blur0Fbo.gpuMemoryUsage:0)+(r(this._blur1Fbo)?this._blur1Fbo.gpuMemoryUsage:0);if(this._grid.coverageMipmap)for(const t of this._grid.coverageMipmap)e+=t.gpuMemoryUsage;return e}get test(){return{coverage:this._grid.coverageMipmap,blur:[this._blur0Fbo,this._blur1Fbo]}}}export{D as Highlight};
|
|
@@ -2,4 +2,4 @@
|
|
|
2
2
|
All material copyright ESRI, All Rights Reserved, unless otherwise specified.
|
|
3
3
|
See https://js.arcgis.com/4.25/esri/copyright.txt for details.
|
|
4
4
|
*/
|
|
5
|
-
import{isSome as t,unwrapOr as r}from"../../../../core/maybe.js";import{c as s}from"../../../../chunks/mat4.js";import{c as i,I as e}from"../../../../chunks/mat4f64.js";import{a,
|
|
5
|
+
import{isSome as t,unwrapOr as r}from"../../../../core/maybe.js";import{c as s}from"../../../../chunks/mat4.js";import{c as i,I as e}from"../../../../chunks/mat4f64.js";import{a,v as n,g as o,l as h,c as d,n as c}from"../../../../chunks/vec3.js";import{c as l,U as m}from"../../../../chunks/vec3f64.js";import{t as f}from"../../../../chunks/vec4.js";import{c as y}from"../../../../chunks/vec4f64.js";import{create as u,fromPoints as p,copy as g}from"../../../../geometry/support/ray.js";import{ViewingMode as _}from"../../../ViewingMode.js";import{IntersectorOptions as O,StoreResults as L,IntersectorType as j}from"./IntersectorInterfaces.js";import{isValidIntersectorResult as v}from"./intersectorUtils.js";import{IntersectorTransform as E,getVerticalOffsetObject3D as w}from"./verticalOffsetUtils.js";import{isInstanceHidden as b}from"../materials/renderers/utils.js";const A=1e-5;class T{constructor(t){this.options=new O,this._results=new I,this.transform=new E,this.tolerance=A,this.verticalOffset=null,this._ray=u(),this._rayEnd=l(),this._rayBeginTransformed=l(),this._rayEndTransformed=l(),this.viewingMode=t??_.Global}get results(){return this._results}get ray(){return this._ray}get rayBegin(){return this._ray.origin}get rayEnd(){return this._rayEnd}reset(t,r,s){this.resetWithRay(p(t,r,this._ray),s)}resetWithRay(t,r){this.camera=r,t!==this._ray&&g(t,this._ray),0!==this.options.verticalOffset?this.viewingMode===_.Local?this._ray.origin[2]-=this.options.verticalOffset:this.verticalOffset=this.options.verticalOffset:this.verticalOffset=null,a(this._rayEnd,this._ray.origin,this._ray.direction),this._results.init(this._ray)}intersect(r=null,s,i,e,a){this.point=s,this.filterPredicate=e,this.tolerance=i??A;const n=w(this.verticalOffset);if(t(r)&&r.length>0){const s=a?t=>{a(t)&&this.intersectObject(t)}:t=>{this.intersectObject(t)};for(const i of r){const r=i.getSpatialQueryAccelerator&&i.getSpatialQueryAccelerator();t(r)?(t(n)?r.forEachAlongRayWithVerticalOffset(this._ray.origin,this._ray.direction,s,n):r.forEachAlongRay(this._ray.origin,this._ray.direction,s),this.options.selectionMode&&this.options.hud&&r.forEachDegenerateObject(s)):i.objects.forAll((t=>s(t)))}}this.sortResults()}intersectObject(r){const s=r.geometryRecords;if(!s)return;const i=r.transformation,a=w(this.verticalOffset);for(const o of s){const{geometry:s,material:h,instanceParameters:d}=o;if(b(d))continue;const c=s.id;this.transform.setAndInvalidateLazyTransforms(i,o.getShaderTransformation()),n(this._rayBeginTransformed,this.rayBegin,this.transform.inverse),n(this._rayEndTransformed,this.rayEnd,this.transform.inverse);const l=this.transform.transform;t(a)&&(a.objectTransform=this.transform),h.intersect(s,d,this.transform.transform,this,this._rayBeginTransformed,this._rayEndTransformed,((s,i,a,n,o,h)=>{if(s>=0){if(t(this.filterPredicate)&&!this.filterPredicate(this._ray.origin,this._rayEnd,s))return;const d=n?this._results.hud:this._results,m=n?n=>{const d={object:r,geometryId:c,triangleNr:a,center:t(h)?[h[0],h[1],h[2]]:null};n.set(j.HUD,d,s,i,e,o)}:t=>t.set(j.OBJECT,{object:r,geometryId:c,triangleNr:a},s,i,l,o);if((null==d.min.drapedLayerOrder||o>=d.min.drapedLayerOrder)&&(null==d.min.dist||s<d.min.dist)&&m(d.min),this.options.store!==L.MIN&&(null==d.max.drapedLayerOrder||o<d.max.drapedLayerOrder)&&(null==d.max.dist||s>d.max.dist)&&m(d.max),this.options.store===L.ALL)if(n){const t=new M(this._ray);m(t),this._results.hud.all.push(t)}else{const t=new N(this._ray);m(t),this._results.all.push(t)}}}),o.shaderTransformation)}}sortResults(t=this._results.all){t.sort(((t,s)=>t.dist!==s.dist?r(t.dist,0)-r(s.dist,0):t.drapedLayerOrder!==s.drapedLayerOrder?r(t.drapedLayerOrder,Number.MAX_VALUE)-r(s.drapedLayerOrder,Number.MAX_VALUE):r(s.drapedLayerGraphicOrder,Number.MIN_VALUE)-r(t.drapedLayerGraphicOrder,Number.MIN_VALUE)))}}function x(t){return new T(t)}class I{constructor(){this.min=new N(u()),this.max=new N(u()),this.hud={min:new M(u()),max:new M(u()),all:new Array},this.ground=new N(u()),this.all=[]}init(t){this.min.init(t),this.max.init(t),this.ground.init(t),this.all.length=0,this.hud.min.init(t),this.hud.max.init(t),this.hud.all.length=0}}class N{constructor(t){this.intersector=j.OBJECT,this.normal=l(),this.transformation=i(),this._ray=u(),this.init(t)}get ray(){return this._ray}get distanceInRenderSpace(){return t(this.dist)?(o(B,this.ray.direction,this.dist),h(B)):null}getIntersectionPoint(t){return!!v(this)&&(o(B,this.ray.direction,this.dist),a(t,this.ray.origin,B),!0)}getTransformedNormal(t){return d(R,this.normal),R[3]=0,f(R,R,this.transformation),d(t,R),c(t,t)}init(t){this.dist=null,this.target=null,this.drapedLayerOrder=null,this.drapedLayerGraphicOrder=null,this.intersector=j.OBJECT,g(t,this._ray)}set(t,i,a,n,o,h,c){this.intersector=t,this.dist=a,d(this.normal,r(n,m)),s(this.transformation,r(o,e)),this.target=i,this.drapedLayerOrder=h,this.drapedLayerGraphicOrder=c}copy(t){g(t.ray,this._ray),this.intersector=t.intersector,this.dist=t.dist,this.target=t.target,this.drapedLayerOrder=t.drapedLayerOrder,this.drapedLayerGraphicOrder=t.drapedLayerGraphicOrder,d(this.normal,t.normal),s(this.transformation,t.transformation)}}class M extends N{constructor(){super(...arguments),this.intersector=j.HUD}}function U(t){return new N(t)}const B=l(),R=y();export{A as DEFAULT_TOLERANCE,x as newIntersector,U as newIntersectorResult};
|