@arcgis/core 5.1.0-next.14 → 5.1.0-next.16

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.
Files changed (590) hide show
  1. package/Camera.d.ts +1 -1
  2. package/Ground.d.ts +7 -7
  3. package/PopupTemplate.d.ts +6 -6
  4. package/WebScene.d.ts +1 -1
  5. package/analysis/AreaMeasurementAnalysis.d.ts +1 -1
  6. package/analysis/DirectLineMeasurementAnalysis.d.ts +1 -1
  7. package/analysis/LengthDimension.d.ts +4 -4
  8. package/analysis/ShadowCastAnalysis.d.ts +3 -3
  9. package/analysis/SliceAnalysis.d.ts +1 -1
  10. package/analysis/SlicePlane.d.ts +1 -1
  11. package/assets/esri/core/t9n/Units_ar.json +1 -1
  12. package/assets/esri/core/t9n/Units_bg.json +1 -1
  13. package/assets/esri/core/t9n/Units_bs.json +1 -1
  14. package/assets/esri/core/t9n/Units_ca.json +1 -1
  15. package/assets/esri/core/t9n/Units_cs.json +1 -1
  16. package/assets/esri/core/t9n/Units_da.json +1 -1
  17. package/assets/esri/core/t9n/Units_de.json +1 -1
  18. package/assets/esri/core/t9n/Units_el.json +1 -1
  19. package/assets/esri/core/t9n/Units_es.json +1 -1
  20. package/assets/esri/core/t9n/Units_et.json +1 -1
  21. package/assets/esri/core/t9n/Units_fi.json +1 -1
  22. package/assets/esri/core/t9n/Units_fr.json +1 -1
  23. package/assets/esri/core/t9n/Units_he.json +1 -1
  24. package/assets/esri/core/t9n/Units_hr.json +1 -1
  25. package/assets/esri/core/t9n/Units_hu.json +1 -1
  26. package/assets/esri/core/t9n/Units_id.json +1 -1
  27. package/assets/esri/core/t9n/Units_it.json +1 -1
  28. package/assets/esri/core/t9n/Units_ja.json +1 -1
  29. package/assets/esri/core/t9n/Units_ko.json +1 -1
  30. package/assets/esri/core/t9n/Units_lt.json +1 -1
  31. package/assets/esri/core/t9n/Units_lv.json +1 -1
  32. package/assets/esri/core/t9n/Units_nl.json +1 -1
  33. package/assets/esri/core/t9n/Units_no.json +1 -1
  34. package/assets/esri/core/t9n/Units_pl.json +1 -1
  35. package/assets/esri/core/t9n/Units_pt-BR.json +1 -1
  36. package/assets/esri/core/t9n/Units_pt-PT.json +1 -1
  37. package/assets/esri/core/t9n/Units_ro.json +1 -1
  38. package/assets/esri/core/t9n/Units_ru.json +1 -1
  39. package/assets/esri/core/t9n/Units_sk.json +1 -1
  40. package/assets/esri/core/t9n/Units_sl.json +1 -1
  41. package/assets/esri/core/t9n/Units_sr.json +1 -1
  42. package/assets/esri/core/t9n/Units_sv.json +1 -1
  43. package/assets/esri/core/t9n/Units_th.json +1 -1
  44. package/assets/esri/core/t9n/Units_tr.json +1 -1
  45. package/assets/esri/core/t9n/Units_uk.json +1 -1
  46. package/assets/esri/core/t9n/Units_vi.json +1 -1
  47. package/assets/esri/core/t9n/Units_zh-CN.json +1 -1
  48. package/assets/esri/core/t9n/Units_zh-HK.json +1 -1
  49. package/assets/esri/core/t9n/Units_zh-TW.json +1 -1
  50. package/assets/esri/core/workers/RemoteClient.js +1 -1
  51. package/assets/esri/core/workers/chunks/07317f6b57c1314db442.js +1 -0
  52. package/assets/esri/core/workers/chunks/f17a301516f008abef3a.js +1 -0
  53. package/assets/esri/libs/lyr3d/lyr3DMain.wasm +0 -0
  54. package/assets/esri/libs/lyr3d/lyr3DWorker.wasm +0 -0
  55. package/assets/esri/widgets/Directions/t9n/Directions_ar.json +1 -1
  56. package/assets/esri/widgets/Directions/t9n/Directions_bg.json +1 -1
  57. package/assets/esri/widgets/Directions/t9n/Directions_bs.json +1 -1
  58. package/assets/esri/widgets/Directions/t9n/Directions_ca.json +1 -1
  59. package/assets/esri/widgets/Directions/t9n/Directions_cs.json +1 -1
  60. package/assets/esri/widgets/Directions/t9n/Directions_da.json +1 -1
  61. package/assets/esri/widgets/Directions/t9n/Directions_de.json +1 -1
  62. package/assets/esri/widgets/Directions/t9n/Directions_el.json +1 -1
  63. package/assets/esri/widgets/Directions/t9n/Directions_es.json +1 -1
  64. package/assets/esri/widgets/Directions/t9n/Directions_et.json +1 -1
  65. package/assets/esri/widgets/Directions/t9n/Directions_fi.json +1 -1
  66. package/assets/esri/widgets/Directions/t9n/Directions_fr.json +1 -1
  67. package/assets/esri/widgets/Directions/t9n/Directions_he.json +1 -1
  68. package/assets/esri/widgets/Directions/t9n/Directions_hr.json +1 -1
  69. package/assets/esri/widgets/Directions/t9n/Directions_hu.json +1 -1
  70. package/assets/esri/widgets/Directions/t9n/Directions_id.json +1 -1
  71. package/assets/esri/widgets/Directions/t9n/Directions_it.json +1 -1
  72. package/assets/esri/widgets/Directions/t9n/Directions_ja.json +1 -1
  73. package/assets/esri/widgets/Directions/t9n/Directions_ko.json +1 -1
  74. package/assets/esri/widgets/Directions/t9n/Directions_lt.json +1 -1
  75. package/assets/esri/widgets/Directions/t9n/Directions_lv.json +1 -1
  76. package/assets/esri/widgets/Directions/t9n/Directions_nl.json +1 -1
  77. package/assets/esri/widgets/Directions/t9n/Directions_no.json +1 -1
  78. package/assets/esri/widgets/Directions/t9n/Directions_pl.json +1 -1
  79. package/assets/esri/widgets/Directions/t9n/Directions_pt-BR.json +1 -1
  80. package/assets/esri/widgets/Directions/t9n/Directions_pt-PT.json +1 -1
  81. package/assets/esri/widgets/Directions/t9n/Directions_ro.json +1 -1
  82. package/assets/esri/widgets/Directions/t9n/Directions_ru.json +1 -1
  83. package/assets/esri/widgets/Directions/t9n/Directions_sk.json +1 -1
  84. package/assets/esri/widgets/Directions/t9n/Directions_sl.json +1 -1
  85. package/assets/esri/widgets/Directions/t9n/Directions_sr.json +1 -1
  86. package/assets/esri/widgets/Directions/t9n/Directions_sv.json +1 -1
  87. package/assets/esri/widgets/Directions/t9n/Directions_th.json +1 -1
  88. package/assets/esri/widgets/Directions/t9n/Directions_tr.json +1 -1
  89. package/assets/esri/widgets/Directions/t9n/Directions_uk.json +1 -1
  90. package/assets/esri/widgets/Directions/t9n/Directions_vi.json +1 -1
  91. package/assets/esri/widgets/Directions/t9n/Directions_zh-CN.json +1 -1
  92. package/assets/esri/widgets/Directions/t9n/Directions_zh-HK.json +1 -1
  93. package/assets/esri/widgets/Directions/t9n/Directions_zh-TW.json +1 -1
  94. package/assets/esri/widgets/Editor/t9n/Editor_ar.json +1 -1
  95. package/assets/esri/widgets/Editor/t9n/Editor_bg.json +1 -1
  96. package/assets/esri/widgets/Editor/t9n/Editor_bs.json +1 -1
  97. package/assets/esri/widgets/Editor/t9n/Editor_ca.json +1 -1
  98. package/assets/esri/widgets/Editor/t9n/Editor_cs.json +1 -1
  99. package/assets/esri/widgets/Editor/t9n/Editor_da.json +1 -1
  100. package/assets/esri/widgets/Editor/t9n/Editor_de.json +1 -1
  101. package/assets/esri/widgets/Editor/t9n/Editor_el.json +1 -1
  102. package/assets/esri/widgets/Editor/t9n/Editor_es.json +1 -1
  103. package/assets/esri/widgets/Editor/t9n/Editor_et.json +1 -1
  104. package/assets/esri/widgets/Editor/t9n/Editor_fi.json +1 -1
  105. package/assets/esri/widgets/Editor/t9n/Editor_fr.json +1 -1
  106. package/assets/esri/widgets/Editor/t9n/Editor_he.json +1 -1
  107. package/assets/esri/widgets/Editor/t9n/Editor_hr.json +1 -1
  108. package/assets/esri/widgets/Editor/t9n/Editor_hu.json +1 -1
  109. package/assets/esri/widgets/Editor/t9n/Editor_id.json +1 -1
  110. package/assets/esri/widgets/Editor/t9n/Editor_it.json +1 -1
  111. package/assets/esri/widgets/Editor/t9n/Editor_ja.json +1 -1
  112. package/assets/esri/widgets/Editor/t9n/Editor_ko.json +1 -1
  113. package/assets/esri/widgets/Editor/t9n/Editor_lt.json +1 -1
  114. package/assets/esri/widgets/Editor/t9n/Editor_lv.json +1 -1
  115. package/assets/esri/widgets/Editor/t9n/Editor_nl.json +1 -1
  116. package/assets/esri/widgets/Editor/t9n/Editor_no.json +1 -1
  117. package/assets/esri/widgets/Editor/t9n/Editor_pl.json +1 -1
  118. package/assets/esri/widgets/Editor/t9n/Editor_pt-BR.json +1 -1
  119. package/assets/esri/widgets/Editor/t9n/Editor_pt-PT.json +1 -1
  120. package/assets/esri/widgets/Editor/t9n/Editor_ro.json +1 -1
  121. package/assets/esri/widgets/Editor/t9n/Editor_ru.json +1 -1
  122. package/assets/esri/widgets/Editor/t9n/Editor_sk.json +1 -1
  123. package/assets/esri/widgets/Editor/t9n/Editor_sl.json +1 -1
  124. package/assets/esri/widgets/Editor/t9n/Editor_sr.json +1 -1
  125. package/assets/esri/widgets/Editor/t9n/Editor_sv.json +1 -1
  126. package/assets/esri/widgets/Editor/t9n/Editor_th.json +1 -1
  127. package/assets/esri/widgets/Editor/t9n/Editor_tr.json +1 -1
  128. package/assets/esri/widgets/Editor/t9n/Editor_uk.json +1 -1
  129. package/assets/esri/widgets/Editor/t9n/Editor_vi.json +1 -1
  130. package/assets/esri/widgets/Editor/t9n/Editor_zh-CN.json +1 -1
  131. package/assets/esri/widgets/Editor/t9n/Editor_zh-HK.json +1 -1
  132. package/assets/esri/widgets/Editor/t9n/Editor_zh-TW.json +1 -1
  133. package/assets/esri/widgets/FeatureTable/t9n/FeatureTable_ar.json +1 -1
  134. package/assets/esri/widgets/FeatureTable/t9n/FeatureTable_bg.json +1 -1
  135. package/assets/esri/widgets/FeatureTable/t9n/FeatureTable_bs.json +1 -1
  136. package/assets/esri/widgets/FeatureTable/t9n/FeatureTable_ca.json +1 -1
  137. package/assets/esri/widgets/FeatureTable/t9n/FeatureTable_cs.json +1 -1
  138. package/assets/esri/widgets/FeatureTable/t9n/FeatureTable_da.json +1 -1
  139. package/assets/esri/widgets/FeatureTable/t9n/FeatureTable_de.json +1 -1
  140. package/assets/esri/widgets/FeatureTable/t9n/FeatureTable_el.json +1 -1
  141. package/assets/esri/widgets/FeatureTable/t9n/FeatureTable_es.json +1 -1
  142. package/assets/esri/widgets/FeatureTable/t9n/FeatureTable_et.json +1 -1
  143. package/assets/esri/widgets/FeatureTable/t9n/FeatureTable_fi.json +1 -1
  144. package/assets/esri/widgets/FeatureTable/t9n/FeatureTable_fr.json +1 -1
  145. package/assets/esri/widgets/FeatureTable/t9n/FeatureTable_he.json +1 -1
  146. package/assets/esri/widgets/FeatureTable/t9n/FeatureTable_hr.json +1 -1
  147. package/assets/esri/widgets/FeatureTable/t9n/FeatureTable_hu.json +1 -1
  148. package/assets/esri/widgets/FeatureTable/t9n/FeatureTable_id.json +1 -1
  149. package/assets/esri/widgets/FeatureTable/t9n/FeatureTable_it.json +1 -1
  150. package/assets/esri/widgets/FeatureTable/t9n/FeatureTable_ja.json +1 -1
  151. package/assets/esri/widgets/FeatureTable/t9n/FeatureTable_ko.json +1 -1
  152. package/assets/esri/widgets/FeatureTable/t9n/FeatureTable_lt.json +1 -1
  153. package/assets/esri/widgets/FeatureTable/t9n/FeatureTable_lv.json +1 -1
  154. package/assets/esri/widgets/FeatureTable/t9n/FeatureTable_nl.json +1 -1
  155. package/assets/esri/widgets/FeatureTable/t9n/FeatureTable_no.json +1 -1
  156. package/assets/esri/widgets/FeatureTable/t9n/FeatureTable_pl.json +1 -1
  157. package/assets/esri/widgets/FeatureTable/t9n/FeatureTable_pt-BR.json +1 -1
  158. package/assets/esri/widgets/FeatureTable/t9n/FeatureTable_pt-PT.json +1 -1
  159. package/assets/esri/widgets/FeatureTable/t9n/FeatureTable_ro.json +1 -1
  160. package/assets/esri/widgets/FeatureTable/t9n/FeatureTable_ru.json +1 -1
  161. package/assets/esri/widgets/FeatureTable/t9n/FeatureTable_sk.json +1 -1
  162. package/assets/esri/widgets/FeatureTable/t9n/FeatureTable_sl.json +1 -1
  163. package/assets/esri/widgets/FeatureTable/t9n/FeatureTable_sr.json +1 -1
  164. package/assets/esri/widgets/FeatureTable/t9n/FeatureTable_sv.json +1 -1
  165. package/assets/esri/widgets/FeatureTable/t9n/FeatureTable_th.json +1 -1
  166. package/assets/esri/widgets/FeatureTable/t9n/FeatureTable_tr.json +1 -1
  167. package/assets/esri/widgets/FeatureTable/t9n/FeatureTable_uk.json +1 -1
  168. package/assets/esri/widgets/FeatureTable/t9n/FeatureTable_vi.json +1 -1
  169. package/assets/esri/widgets/FeatureTable/t9n/FeatureTable_zh-CN.json +1 -1
  170. package/assets/esri/widgets/FeatureTable/t9n/FeatureTable_zh-HK.json +1 -1
  171. package/assets/esri/widgets/FeatureTable/t9n/FeatureTable_zh-TW.json +1 -1
  172. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_ar.json +1 -1
  173. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_bg.json +1 -1
  174. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_bs.json +1 -1
  175. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_ca.json +1 -1
  176. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_cs.json +1 -1
  177. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_da.json +1 -1
  178. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_de.json +1 -1
  179. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_el.json +1 -1
  180. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_es.json +1 -1
  181. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_et.json +1 -1
  182. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_fi.json +1 -1
  183. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_fr.json +1 -1
  184. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_he.json +1 -1
  185. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_hr.json +1 -1
  186. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_hu.json +1 -1
  187. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_id.json +1 -1
  188. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_it.json +1 -1
  189. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_ja.json +1 -1
  190. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_ko.json +1 -1
  191. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_lt.json +1 -1
  192. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_lv.json +1 -1
  193. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_nl.json +1 -1
  194. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_no.json +1 -1
  195. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_pl.json +1 -1
  196. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_pt-BR.json +1 -1
  197. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_pt-PT.json +1 -1
  198. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_ro.json +1 -1
  199. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_ru.json +1 -1
  200. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_sk.json +1 -1
  201. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_sl.json +1 -1
  202. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_sr.json +1 -1
  203. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_sv.json +1 -1
  204. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_th.json +1 -1
  205. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_tr.json +1 -1
  206. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_uk.json +1 -1
  207. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_vi.json +1 -1
  208. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_zh-CN.json +1 -1
  209. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_zh-HK.json +1 -1
  210. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_zh-TW.json +1 -1
  211. package/assets/esri/widgets/Sketch/t9n/Sketch_ar.json +1 -1
  212. package/assets/esri/widgets/Sketch/t9n/Sketch_bg.json +1 -1
  213. package/assets/esri/widgets/Sketch/t9n/Sketch_bs.json +1 -1
  214. package/assets/esri/widgets/Sketch/t9n/Sketch_ca.json +1 -1
  215. package/assets/esri/widgets/Sketch/t9n/Sketch_cs.json +1 -1
  216. package/assets/esri/widgets/Sketch/t9n/Sketch_da.json +1 -1
  217. package/assets/esri/widgets/Sketch/t9n/Sketch_de.json +1 -1
  218. package/assets/esri/widgets/Sketch/t9n/Sketch_el.json +1 -1
  219. package/assets/esri/widgets/Sketch/t9n/Sketch_es.json +1 -1
  220. package/assets/esri/widgets/Sketch/t9n/Sketch_et.json +1 -1
  221. package/assets/esri/widgets/Sketch/t9n/Sketch_fi.json +1 -1
  222. package/assets/esri/widgets/Sketch/t9n/Sketch_fr.json +1 -1
  223. package/assets/esri/widgets/Sketch/t9n/Sketch_he.json +1 -1
  224. package/assets/esri/widgets/Sketch/t9n/Sketch_hr.json +1 -1
  225. package/assets/esri/widgets/Sketch/t9n/Sketch_hu.json +1 -1
  226. package/assets/esri/widgets/Sketch/t9n/Sketch_id.json +1 -1
  227. package/assets/esri/widgets/Sketch/t9n/Sketch_it.json +1 -1
  228. package/assets/esri/widgets/Sketch/t9n/Sketch_ja.json +1 -1
  229. package/assets/esri/widgets/Sketch/t9n/Sketch_ko.json +1 -1
  230. package/assets/esri/widgets/Sketch/t9n/Sketch_lt.json +1 -1
  231. package/assets/esri/widgets/Sketch/t9n/Sketch_lv.json +1 -1
  232. package/assets/esri/widgets/Sketch/t9n/Sketch_nl.json +1 -1
  233. package/assets/esri/widgets/Sketch/t9n/Sketch_no.json +1 -1
  234. package/assets/esri/widgets/Sketch/t9n/Sketch_pl.json +1 -1
  235. package/assets/esri/widgets/Sketch/t9n/Sketch_pt-BR.json +1 -1
  236. package/assets/esri/widgets/Sketch/t9n/Sketch_pt-PT.json +1 -1
  237. package/assets/esri/widgets/Sketch/t9n/Sketch_ro.json +1 -1
  238. package/assets/esri/widgets/Sketch/t9n/Sketch_ru.json +1 -1
  239. package/assets/esri/widgets/Sketch/t9n/Sketch_sk.json +1 -1
  240. package/assets/esri/widgets/Sketch/t9n/Sketch_sl.json +1 -1
  241. package/assets/esri/widgets/Sketch/t9n/Sketch_sr.json +1 -1
  242. package/assets/esri/widgets/Sketch/t9n/Sketch_sv.json +1 -1
  243. package/assets/esri/widgets/Sketch/t9n/Sketch_th.json +1 -1
  244. package/assets/esri/widgets/Sketch/t9n/Sketch_tr.json +1 -1
  245. package/assets/esri/widgets/Sketch/t9n/Sketch_uk.json +1 -1
  246. package/assets/esri/widgets/Sketch/t9n/Sketch_vi.json +1 -1
  247. package/assets/esri/widgets/Sketch/t9n/Sketch_zh-CN.json +1 -1
  248. package/assets/esri/widgets/Sketch/t9n/Sketch_zh-HK.json +1 -1
  249. package/assets/esri/widgets/Sketch/t9n/Sketch_zh-TW.json +1 -1
  250. package/assets/esri/widgets/support/SelectionList/t9n/SelectionList_ar.json +1 -1
  251. package/assets/esri/widgets/support/SelectionList/t9n/SelectionList_bg.json +1 -1
  252. package/assets/esri/widgets/support/SelectionList/t9n/SelectionList_bs.json +1 -1
  253. package/assets/esri/widgets/support/SelectionList/t9n/SelectionList_ca.json +1 -1
  254. package/assets/esri/widgets/support/SelectionList/t9n/SelectionList_cs.json +1 -1
  255. package/assets/esri/widgets/support/SelectionList/t9n/SelectionList_da.json +1 -1
  256. package/assets/esri/widgets/support/SelectionList/t9n/SelectionList_de.json +1 -1
  257. package/assets/esri/widgets/support/SelectionList/t9n/SelectionList_el.json +1 -1
  258. package/assets/esri/widgets/support/SelectionList/t9n/SelectionList_es.json +1 -1
  259. package/assets/esri/widgets/support/SelectionList/t9n/SelectionList_et.json +1 -1
  260. package/assets/esri/widgets/support/SelectionList/t9n/SelectionList_fi.json +1 -1
  261. package/assets/esri/widgets/support/SelectionList/t9n/SelectionList_fr.json +1 -1
  262. package/assets/esri/widgets/support/SelectionList/t9n/SelectionList_he.json +1 -1
  263. package/assets/esri/widgets/support/SelectionList/t9n/SelectionList_hr.json +1 -1
  264. package/assets/esri/widgets/support/SelectionList/t9n/SelectionList_hu.json +1 -1
  265. package/assets/esri/widgets/support/SelectionList/t9n/SelectionList_id.json +1 -1
  266. package/assets/esri/widgets/support/SelectionList/t9n/SelectionList_it.json +1 -1
  267. package/assets/esri/widgets/support/SelectionList/t9n/SelectionList_ja.json +1 -1
  268. package/assets/esri/widgets/support/SelectionList/t9n/SelectionList_ko.json +1 -1
  269. package/assets/esri/widgets/support/SelectionList/t9n/SelectionList_lt.json +1 -1
  270. package/assets/esri/widgets/support/SelectionList/t9n/SelectionList_lv.json +1 -1
  271. package/assets/esri/widgets/support/SelectionList/t9n/SelectionList_nl.json +1 -1
  272. package/assets/esri/widgets/support/SelectionList/t9n/SelectionList_no.json +1 -1
  273. package/assets/esri/widgets/support/SelectionList/t9n/SelectionList_pl.json +1 -1
  274. package/assets/esri/widgets/support/SelectionList/t9n/SelectionList_pt-BR.json +1 -1
  275. package/assets/esri/widgets/support/SelectionList/t9n/SelectionList_pt-PT.json +1 -1
  276. package/assets/esri/widgets/support/SelectionList/t9n/SelectionList_ro.json +1 -1
  277. package/assets/esri/widgets/support/SelectionList/t9n/SelectionList_ru.json +1 -1
  278. package/assets/esri/widgets/support/SelectionList/t9n/SelectionList_sk.json +1 -1
  279. package/assets/esri/widgets/support/SelectionList/t9n/SelectionList_sl.json +1 -1
  280. package/assets/esri/widgets/support/SelectionList/t9n/SelectionList_sr.json +1 -1
  281. package/assets/esri/widgets/support/SelectionList/t9n/SelectionList_sv.json +1 -1
  282. package/assets/esri/widgets/support/SelectionList/t9n/SelectionList_th.json +1 -1
  283. package/assets/esri/widgets/support/SelectionList/t9n/SelectionList_tr.json +1 -1
  284. package/assets/esri/widgets/support/SelectionList/t9n/SelectionList_uk.json +1 -1
  285. package/assets/esri/widgets/support/SelectionList/t9n/SelectionList_vi.json +1 -1
  286. package/assets/esri/widgets/support/SelectionList/t9n/SelectionList_zh-CN.json +1 -1
  287. package/assets/esri/widgets/support/SelectionList/t9n/SelectionList_zh-HK.json +1 -1
  288. package/assets/esri/widgets/support/SelectionList/t9n/SelectionList_zh-TW.json +1 -1
  289. package/chunks/Fog.glsl.js +1 -1
  290. package/config.js +1 -1
  291. package/core/sql/types.d.ts +398 -86
  292. package/effects/FocusAreas.d.ts +1 -1
  293. package/form/elements/FieldElement.d.ts +1 -1
  294. package/form/elements/GroupElement.d.ts +1 -1
  295. package/form/elements/TextElement.d.ts +1 -1
  296. package/form/elements/inputs/ComboBoxInput.d.ts +1 -1
  297. package/form/elements/inputs/RadioButtonsInput.d.ts +1 -1
  298. package/form/elements/inputs/SwitchInput.d.ts +1 -1
  299. package/geometry/Mesh.d.ts +7 -7
  300. package/geometry/operators/alphaShapeOperator.d.ts +1 -1
  301. package/geometry/operators/areaOperator.d.ts +1 -1
  302. package/geometry/operators/bufferOperator.d.ts +1 -1
  303. package/geometry/operators/centroidOperator.d.ts +1 -1
  304. package/geometry/operators/clipOperator.d.ts +1 -1
  305. package/geometry/operators/containsOperator.d.ts +1 -1
  306. package/geometry/operators/convexHullOperator.d.ts +1 -1
  307. package/geometry/operators/crossesOperator.d.ts +1 -1
  308. package/geometry/operators/cutOperator.d.ts +1 -1
  309. package/geometry/operators/densifyOperator.d.ts +1 -1
  310. package/geometry/operators/differenceOperator.d.ts +1 -1
  311. package/geometry/operators/disjointOperator.d.ts +1 -1
  312. package/geometry/operators/distanceOperator.d.ts +1 -1
  313. package/geometry/operators/generalizeOperator.d.ts +1 -1
  314. package/geometry/operators/geodesicProximityOperator.d.ts +1 -1
  315. package/geometry/operators/geodeticDistanceOperator.d.ts +1 -1
  316. package/geometry/operators/geodeticUtilsOperator.d.ts +2 -2
  317. package/geometry/operators/graphicBufferOperator.d.ts +1 -1
  318. package/geometry/operators/intersectionOperator.d.ts +1 -1
  319. package/geometry/operators/intersectsOperator.d.ts +1 -1
  320. package/geometry/operators/isNearOperator.d.ts +1 -1
  321. package/geometry/operators/lengthOperator.d.ts +1 -1
  322. package/geometry/operators/locateBetweenOperator.d.ts +1 -1
  323. package/geometry/operators/multiPartToSinglePartOperator.d.ts +1 -1
  324. package/geometry/operators/offsetOperator.d.ts +5 -5
  325. package/geometry/operators/overlapsOperator.d.ts +1 -1
  326. package/geometry/operators/proximityOperator.d.ts +1 -1
  327. package/geometry/operators/simplifyOGCOperator.d.ts +1 -1
  328. package/geometry/operators/simplifyOperator.d.ts +1 -1
  329. package/geometry/operators/support/Transformation.d.ts +6 -6
  330. package/geometry/operators/symmetricDifferenceOperator.d.ts +1 -1
  331. package/geometry/operators/touchesOperator.d.ts +1 -1
  332. package/geometry/operators/unionOperator.d.ts +1 -1
  333. package/geometry/operators/withinOperator.d.ts +1 -1
  334. package/geometry/support/MeshMaterialMetallicRoughness.d.ts +1 -1
  335. package/kernel.js +1 -1
  336. package/layers/BuildingSceneLayer.d.ts +4 -4
  337. package/layers/CSVLayer.d.ts +4 -4
  338. package/layers/CatalogLayer.d.ts +2 -2
  339. package/layers/ElevationLayer.d.ts +1 -1
  340. package/layers/FeatureLayer.d.ts +2 -2
  341. package/layers/GaussianSplatLayer.d.ts +77 -10
  342. package/layers/GeoJSONLayer.d.ts +3 -3
  343. package/layers/GeoRSSLayer.d.ts +1 -1
  344. package/layers/GraphicsLayer.d.ts +2 -2
  345. package/layers/ImageryLayer.d.ts +3 -3
  346. package/layers/ImageryTileLayer.d.ts +2 -2
  347. package/layers/IntegratedMesh3DTilesLayer.d.ts +6 -6
  348. package/layers/IntegratedMesh3DTilesLayer.js +1 -1
  349. package/layers/IntegratedMeshLayer.d.ts +7 -7
  350. package/layers/Layer.d.ts +2 -0
  351. package/layers/Lyr3DWasmPerSceneView.js +1 -1
  352. package/layers/MapImageLayer.d.ts +1 -1
  353. package/layers/MediaLayer.d.ts +1 -1
  354. package/layers/OGCFeatureLayer.d.ts +2 -2
  355. package/layers/PointCloudLayer.d.ts +1 -1
  356. package/layers/SceneLayer.d.ts +9 -9
  357. package/layers/StreamLayer.d.ts +2 -2
  358. package/layers/VectorTileLayer.d.ts +2 -2
  359. package/layers/VideoLayer.d.ts +1 -1
  360. package/layers/VoxelLayer.d.ts +8 -8
  361. package/layers/WFSLayer.d.ts +6 -6
  362. package/layers/catalog/CatalogFootprintLayer.d.ts +1 -1
  363. package/layers/mixins/BlendLayer.d.ts +6 -6
  364. package/layers/pointCloudFilters/PointCloudReturnFilter.d.ts +1 -1
  365. package/layers/pointCloudFilters/PointCloudValueFilter.d.ts +1 -1
  366. package/layers/support/DimensionalDefinition.d.ts +2 -2
  367. package/layers/support/FeatureEffect.d.ts +4 -4
  368. package/layers/support/FeatureFilter.d.ts +17 -17
  369. package/layers/support/FeatureReductionBinning.d.ts +1 -1
  370. package/layers/support/FeatureReductionCluster.d.ts +9 -9
  371. package/layers/support/FeatureReductionSelection.d.ts +1 -1
  372. package/layers/support/LabelClass.d.ts +2 -2
  373. package/layers/support/RasterFunction.d.ts +1 -1
  374. package/layers/support/SceneFilter.d.ts +2 -2
  375. package/layers/support/SceneModification.d.ts +3 -3
  376. package/layers/types.d.ts +24 -10
  377. package/package.json +1 -1
  378. package/popup/content/AttachmentsContent.d.ts +1 -1
  379. package/popup/content/BarChartMediaInfo.d.ts +1 -1
  380. package/popup/content/ColumnChartMediaInfo.d.ts +1 -1
  381. package/popup/content/FieldsContent.d.ts +1 -1
  382. package/popup/content/ImageMediaInfo.d.ts +1 -1
  383. package/popup/content/LineChartMediaInfo.d.ts +1 -1
  384. package/popup/content/MediaContent.d.ts +1 -1
  385. package/popup/content/PieChartMediaInfo.d.ts +1 -1
  386. package/popup/content/RelationshipContent.d.ts +1 -1
  387. package/popup/content/TextContent.d.ts +1 -1
  388. package/renderers/ClassBreaksRenderer.d.ts +1 -1
  389. package/renderers/DictionaryRenderer.d.ts +1 -1
  390. package/renderers/DotDensityRenderer.d.ts +3 -3
  391. package/renderers/FlowRenderer.d.ts +6 -6
  392. package/renderers/HeatmapRenderer.d.ts +3 -3
  393. package/renderers/PieChartRenderer.d.ts +1 -1
  394. package/renderers/RasterShadedReliefRenderer.d.ts +1 -1
  395. package/renderers/Renderer.d.ts +4 -4
  396. package/renderers/SimpleRenderer.d.ts +2 -2
  397. package/renderers/UniqueValueRenderer.d.ts +2 -2
  398. package/renderers/VectorFieldRenderer.d.ts +1 -1
  399. package/renderers/mixins/VisualVariablesMixin.d.ts +12 -12
  400. package/renderers/visualVariables/ColorVariable.d.ts +1 -1
  401. package/renderers/visualVariables/OpacityVariable.d.ts +1 -1
  402. package/renderers/visualVariables/RotationVariable.d.ts +1 -1
  403. package/renderers/visualVariables/SizeVariable.d.ts +1 -1
  404. package/renderers/visualVariables/VisualVariable.d.ts +1 -1
  405. package/rest/query/support/AttachmentInfo.d.ts +1 -1
  406. package/rest/support/AutoIntervalBinParameters.d.ts +1 -1
  407. package/rest/support/DateBinParameters.d.ts +1 -1
  408. package/rest/support/FixedBoundariesBinParameters.d.ts +1 -1
  409. package/rest/support/FixedIntervalBinParameters.d.ts +1 -1
  410. package/smartMapping/labels/clusters.d.ts +1 -1
  411. package/smartMapping/popup/clusters.d.ts +2 -2
  412. package/smartMapping/popup/templates.d.ts +1 -1
  413. package/smartMapping/raster/renderers/flow.d.ts +2 -2
  414. package/smartMapping/renderers/color.d.ts +12 -12
  415. package/smartMapping/renderers/predominance.d.ts +3 -3
  416. package/smartMapping/renderers/relationship.d.ts +15 -15
  417. package/smartMapping/renderers/univariateColorSize.d.ts +4 -4
  418. package/smartMapping/symbology/color.d.ts +4 -4
  419. package/smartMapping/symbology/flow.d.ts +2 -2
  420. package/smartMapping/symbology/types.d.ts +18 -18
  421. package/support/actions/ActionButton.d.ts +1 -1
  422. package/support/revision.js +1 -1
  423. package/symbols/CIMSymbol.d.ts +1 -1
  424. package/symbols/ExtrudeSymbol3DLayer.d.ts +1 -1
  425. package/symbols/FillSymbol3DLayer.d.ts +3 -3
  426. package/symbols/IconSymbol3DLayer.d.ts +1 -1
  427. package/symbols/LabelSymbol3D.d.ts +2 -2
  428. package/symbols/LineStyleMarker3D.d.ts +7 -7
  429. package/symbols/LineSymbol3D.d.ts +2 -2
  430. package/symbols/LineSymbol3DLayer.d.ts +7 -7
  431. package/symbols/LineSymbolMarker.d.ts +6 -6
  432. package/symbols/MarkerSymbol.d.ts +1 -1
  433. package/symbols/MeshSymbol3D.d.ts +2 -2
  434. package/symbols/ObjectSymbol3DLayer.d.ts +1 -1
  435. package/symbols/PathSymbol3DLayer.d.ts +14 -14
  436. package/symbols/PictureFillSymbol.d.ts +1 -1
  437. package/symbols/PictureMarkerSymbol.d.ts +1 -1
  438. package/symbols/PointSymbol3D.d.ts +3 -3
  439. package/symbols/PolygonSymbol3D.d.ts +7 -7
  440. package/symbols/SimpleFillSymbol.d.ts +8 -8
  441. package/symbols/SimpleLineSymbol.d.ts +20 -20
  442. package/symbols/SimpleMarkerSymbol.d.ts +7 -7
  443. package/symbols/Symbol3DLayer.d.ts +16 -16
  444. package/symbols/TextSymbol.d.ts +1 -1
  445. package/symbols/TextSymbol3DLayer.d.ts +1 -1
  446. package/symbols/WaterSymbol3DLayer.d.ts +3 -3
  447. package/symbols/WebStyleSymbol.d.ts +1 -1
  448. package/symbols/callouts/Callout3D.d.ts +1 -1
  449. package/symbols/callouts/LineCallout3D.d.ts +3 -3
  450. package/symbols/cim/types.d.ts +23 -23
  451. package/symbols/edges/Edges3D.d.ts +1 -1
  452. package/symbols/edges/SolidEdges3D.d.ts +1 -1
  453. package/symbols/patterns/LineStylePattern3D.d.ts +11 -11
  454. package/symbols/patterns/StylePattern3D.d.ts +8 -8
  455. package/symbols/support/ElevationInfo.d.ts +4 -4
  456. package/symbols/support/IconSymbol3DLayerResource.d.ts +6 -6
  457. package/symbols/support/ObjectSymbol3DLayerResource.d.ts +7 -7
  458. package/symbols/support/Symbol3DEmissive.d.ts +19 -6
  459. package/symbols/support/Symbol3DVerticalOffset.d.ts +2 -2
  460. package/versionManagement/VersionManagementService.d.ts +4 -0
  461. package/views/2d/engine/webgl/shaders/sources/shaderRepository.js +1 -1
  462. package/views/2d/layers/BaseLayerViewGL2D.d.ts +1 -1
  463. package/views/2d/layers/features/sources/strategies/chunks/SourceChunkStore.js +1 -1
  464. package/views/2d/types.d.ts +3 -3
  465. package/views/3d/environment/CloudyWeather.d.ts +1 -1
  466. package/views/3d/environment/Environment.d.ts +4 -4
  467. package/views/3d/environment/FoggyWeather.d.ts +1 -1
  468. package/views/3d/environment/RainyWeather.d.ts +1 -1
  469. package/views/3d/environment/SnowyWeather.d.ts +1 -1
  470. package/views/3d/environment/SunLighting.d.ts +1 -1
  471. package/views/3d/environment/SunnyWeather.d.ts +1 -1
  472. package/views/3d/environment/VirtualLighting.d.ts +1 -1
  473. package/views/3d/layers/IntegratedMesh3DTilesLayerView3D.js +1 -1
  474. package/views/3d/layers/graphics/Graphics3DLineCalloutSymbolLayer.js +1 -1
  475. package/views/3d/layers/graphics/polygonUtils.js +1 -1
  476. package/views/3d/support/gaussianSplatting/GaussianSplatDataStore.js +1 -1
  477. package/views/3d/support/gaussianSplatting/GaussianSplatOrderTexture.js +1 -1
  478. package/views/3d/webgl/RenderNode.d.ts +2 -2
  479. package/views/3d/webgl-engine/effects/glow/GlowRenderNode.js +1 -1
  480. package/views/3d/webgl-engine/materials/LineCalloutMaterial.js +1 -1
  481. package/views/3d/webgl-engine/materials/LineCalloutMaterialBaseInstance.js +2 -0
  482. package/views/3d/webgl-engine/materials/renderers/VaoWriter.js +1 -1
  483. package/views/3d/webgl-engine/shaders/LineCalloutTechnique.js +1 -1
  484. package/views/3d/webgl.d.ts +1 -1
  485. package/views/Magnifier.d.ts +3 -3
  486. package/views/MapView.d.ts +7 -7
  487. package/views/SceneView.d.ts +17 -17
  488. package/views/View.d.ts +2 -2
  489. package/views/interactive/sketch/SketchLabelOptions.d.ts +1 -1
  490. package/views/interactive/sketch/SketchTooltipOptions.d.ts +1 -1
  491. package/views/interactive/snapping/SnappingOptions.d.ts +7 -7
  492. package/views/support/HighlightOptions.d.ts +1 -1
  493. package/views/ui/DefaultUI.d.ts +2 -2
  494. package/views/webgl/BufferObject.js +1 -1
  495. package/views/webgl/RenderingContext.js +1 -1
  496. package/webscene/Environment.d.ts +16 -11
  497. package/webscene/Glow.d.ts +4 -2
  498. package/webscene/background/ColorBackground.d.ts +1 -1
  499. package/widgets/AreaMeasurement2D.d.ts +1 -1
  500. package/widgets/AreaMeasurement3D.d.ts +2 -2
  501. package/widgets/Attachments.d.ts +1 -1
  502. package/widgets/Attribution.d.ts +1 -1
  503. package/widgets/BasemapGallery.d.ts +1 -1
  504. package/widgets/BasemapLayerList.d.ts +3 -3
  505. package/widgets/BasemapToggle.d.ts +1 -1
  506. package/widgets/BatchAttributeForm/BatchAttributeFormViewModel.d.ts +1 -2
  507. package/widgets/BatchAttributeForm/inputs/BatchFormInputs.d.ts +0 -1
  508. package/widgets/BatchAttributeForm.d.ts +0 -2
  509. package/widgets/Bookmarks/BookmarksVisibleElements.d.ts +1 -1
  510. package/widgets/Bookmarks.d.ts +2 -2
  511. package/widgets/BuildingExplorer.d.ts +1 -1
  512. package/widgets/CatalogLayerList.d.ts +3 -3
  513. package/widgets/Compass.d.ts +2 -2
  514. package/widgets/CoordinateConversion.d.ts +1 -1
  515. package/widgets/Daylight.d.ts +5 -5
  516. package/widgets/DirectLineMeasurement3D.d.ts +2 -2
  517. package/widgets/Directions.d.ts +4 -4
  518. package/widgets/DistanceMeasurement2D.d.ts +1 -1
  519. package/widgets/Editor/CreateFeaturesWorkflow.d.ts +1 -1
  520. package/widgets/Editor/EditorViewModel.js +1 -1
  521. package/widgets/Editor.d.ts +8 -8
  522. package/widgets/ElevationProfile/ElevationProfileLineGround.d.ts +1 -1
  523. package/widgets/ElevationProfile/ElevationProfileLineInput.d.ts +1 -1
  524. package/widgets/ElevationProfile/ElevationProfileLineView.d.ts +1 -1
  525. package/widgets/ElevationProfile.d.ts +3 -3
  526. package/widgets/Expand.d.ts +1 -1
  527. package/widgets/FeatureForm.d.ts +1 -1
  528. package/widgets/FeatureTable/ActionColumn.d.ts +2 -2
  529. package/widgets/FeatureTable/AttachmentsColumn.d.ts +1 -1
  530. package/widgets/FeatureTable/FeatureTableViewModel.d.ts +3 -3
  531. package/widgets/FeatureTable/Grid/GroupColumn.d.ts +1 -1
  532. package/widgets/FeatureTable/RelationshipColumn.d.ts +1 -1
  533. package/widgets/FeatureTable/VisibleElements.d.ts +1 -1
  534. package/widgets/FeatureTable.d.ts +10 -10
  535. package/widgets/FeatureTemplates/FeatureTemplatesViewModel.d.ts +5 -5
  536. package/widgets/FeatureTemplates.d.ts +8 -8
  537. package/widgets/Features/FeaturesViewModel.d.ts +2 -2
  538. package/widgets/Features/FeaturesVisibleElements.d.ts +2 -2
  539. package/widgets/Features.d.ts +1 -1
  540. package/widgets/Histogram.d.ts +2 -2
  541. package/widgets/HistogramRangeSlider.d.ts +1 -1
  542. package/widgets/Home.d.ts +1 -1
  543. package/widgets/LayerList/ListItemPanel.d.ts +1 -1
  544. package/widgets/LayerList.d.ts +4 -4
  545. package/widgets/Legend.d.ts +8 -8
  546. package/widgets/LineOfSight.d.ts +1 -1
  547. package/widgets/Locate.d.ts +2 -2
  548. package/widgets/Measurement.d.ts +1 -1
  549. package/widgets/NavigationToggle/NavigationToggleViewModel.d.ts +1 -1
  550. package/widgets/NavigationToggle.d.ts +3 -3
  551. package/widgets/Popup/PopupVisibleElements.d.ts +2 -2
  552. package/widgets/Popup.d.ts +5 -5
  553. package/widgets/Print/CustomTemplate.d.ts +1 -1
  554. package/widgets/Print/TemplateOptions.d.ts +4 -4
  555. package/widgets/ScaleRangeSlider.d.ts +1 -1
  556. package/widgets/Search/SearchViewModel.d.ts +4 -4
  557. package/widgets/Search.d.ts +5 -5
  558. package/widgets/ShadowCast.d.ts +3 -3
  559. package/widgets/Sketch/SketchViewModel.d.ts +39 -39
  560. package/widgets/Sketch.d.ts +43 -43
  561. package/widgets/Slice.d.ts +2 -2
  562. package/widgets/Slider/SliderViewModel.d.ts +2 -2
  563. package/widgets/Slider.d.ts +9 -9
  564. package/widgets/Swipe/SwipeViewModel.d.ts +1 -1
  565. package/widgets/Swipe.d.ts +2 -2
  566. package/widgets/TableList/ListItemPanel.d.ts +1 -1
  567. package/widgets/TableList.d.ts +1 -1
  568. package/widgets/TimeSlider/TimeSliderViewModel.d.ts +8 -9
  569. package/widgets/TimeSlider/types.d.ts +1 -1
  570. package/widgets/TimeSlider.d.ts +11 -12
  571. package/widgets/Track.d.ts +2 -2
  572. package/widgets/UtilityNetworkAssociations.d.ts +3 -3
  573. package/widgets/UtilityNetworkTrace.d.ts +4 -4
  574. package/widgets/UtilityNetworkValidateTopology.d.ts +1 -1
  575. package/widgets/ValuePicker.d.ts +5 -5
  576. package/widgets/VideoPlayer.d.ts +1 -1
  577. package/widgets/smartMapping/ClassedColorSlider.d.ts +1 -1
  578. package/widgets/smartMapping/ClassedSizeSlider.d.ts +1 -1
  579. package/widgets/smartMapping/ColorSizeSlider.d.ts +2 -2
  580. package/widgets/smartMapping/ColorSlider.d.ts +1 -1
  581. package/widgets/smartMapping/HeatmapSlider.d.ts +1 -1
  582. package/widgets/smartMapping/OpacitySlider.d.ts +1 -1
  583. package/widgets/smartMapping/SizeSlider.d.ts +1 -1
  584. package/widgets/smartMapping/SmartMappingSliderBase.d.ts +4 -4
  585. package/widgets/smartMapping/SmartMappingSliderViewModel.d.ts +6 -6
  586. package/widgets/support/GridControls.d.ts +1 -1
  587. package/widgets/support/SnappingControls/VisibleElements.d.ts +1 -1
  588. package/widgets/support/SnappingControls.d.ts +6 -6
  589. package/assets/esri/core/workers/chunks/008887a8014b61f837ae.js +0 -1
  590. package/assets/esri/core/workers/chunks/7c01e5eaab97a9ae80ad.js +0 -1
@@ -150,7 +150,7 @@ export type LayerView2DFor<TLayer extends Layer> = LayerView2DMap[TLayer["type"]
150
150
  * and will not need to be transformed by the same transform used for the geographic position. A common convention
151
151
  * is to express the offset in points or pixels and code the vertex shader accordingly.
152
152
  *
153
- * ![tessellation-helpers-extrusion](https://developers.arcgis.com/javascript/latest/assets/img/apiref/layers/tessellation-helpers-extrusion.png)
153
+ * ![tessellation-helpers-extrusion](https://developers.arcgis.com/javascript/latest/assets/images/apiref/layers/tessellation-helpers-extrusion.png)
154
154
  *
155
155
  * **Texture coordinates (uTexcoord, vTexcoord)**
156
156
  * The texture coordinates associated to this vertex.
@@ -161,13 +161,13 @@ export type LayerView2DFor<TLayer extends Layer> = LayerView2DMap[TLayer["type"]
161
161
  * upper right one; for [Polyline](https://developers.arcgis.com/javascript/latest/references/core/geometry/Polyline/) the start cap is made of two vertices with texture
162
162
  * coordinates (0, 0) and (0, 1) while the end cap is associated to (1, 0) and (1, 1).
163
163
  *
164
- * ![tessellation-helpers-uv](https://developers.arcgis.com/javascript/latest/assets/img/apiref/layers/tessellation-helpers-uv.png)
164
+ * ![tessellation-helpers-uv](https://developers.arcgis.com/javascript/latest/assets/images/apiref/layers/tessellation-helpers-uv.png)
165
165
  *
166
166
  * **Distance**
167
167
  * Valid only for [Polyline](https://developers.arcgis.com/javascript/latest/references/core/geometry/Polyline/); it is the distance, in map units, from the beginning of the
168
168
  * polyline to this vertex.
169
169
  *
170
- * ![tessellation-helpers-distance](https://developers.arcgis.com/javascript/latest/assets/img/apiref/layers/tessellation-helpers-distance.png)
170
+ * ![tessellation-helpers-distance](https://developers.arcgis.com/javascript/latest/assets/images/apiref/layers/tessellation-helpers-distance.png)
171
171
  *
172
172
  * @since 5.0
173
173
  */
@@ -5,7 +5,7 @@ export interface CloudyWeatherProperties extends Partial<Pick<CloudyWeather, "cl
5
5
  /**
6
6
  * The CloudyWeather class allows you to change the weather conditions in the scene to cloudy weather.
7
7
  *
8
- * ![scene-atmosphere](https://developers.arcgis.com/javascript/latest/assets/img/apiref/views/scene-weather-cloudy.png)
8
+ * ![scene-atmosphere](https://developers.arcgis.com/javascript/latest/assets/images/apiref/views/scene-weather-cloudy.png)
9
9
  *
10
10
  * Example:
11
11
  * ```js
@@ -11,8 +11,8 @@ export interface EnvironmentProperties extends WebSceneEnvironmentProperties {
11
11
  *
12
12
  * Known Value | Example
13
13
  * ------------|---------
14
- * [SunLighting](https://developers.arcgis.com/javascript/latest/references/core/views/3d/environment/SunLighting/) | ![scene-sun-lighting](https://developers.arcgis.com/javascript/latest/assets/img/apiref/views/SunLighting.jpg)
15
- * [VirtualLighting](https://developers.arcgis.com/javascript/latest/references/core/views/3d/environment/VirtualLighting/) | ![scene-virtual-lighting](https://developers.arcgis.com/javascript/latest/assets/img/apiref/views/VirtualLighting.jpg)
14
+ * [SunLighting](https://developers.arcgis.com/javascript/latest/references/core/views/3d/environment/SunLighting/) | ![scene-sun-lighting](https://developers.arcgis.com/javascript/latest/assets/images/apiref/views/SunLighting.jpg)
15
+ * [VirtualLighting](https://developers.arcgis.com/javascript/latest/references/core/views/3d/environment/VirtualLighting/) | ![scene-virtual-lighting](https://developers.arcgis.com/javascript/latest/assets/images/apiref/views/VirtualLighting.jpg)
16
16
  *
17
17
  * @since 5.0
18
18
  */
@@ -28,8 +28,8 @@ export default class Environment extends WebSceneEnvironment {
28
28
  *
29
29
  * Known Value | Example
30
30
  * ------------|---------
31
- * [SunLighting](https://developers.arcgis.com/javascript/latest/references/core/views/3d/environment/SunLighting/) | ![scene-sun-lighting](https://developers.arcgis.com/javascript/latest/assets/img/apiref/views/SunLighting.jpg)
32
- * [VirtualLighting](https://developers.arcgis.com/javascript/latest/references/core/views/3d/environment/VirtualLighting/) | ![scene-virtual-lighting](https://developers.arcgis.com/javascript/latest/assets/img/apiref/views/VirtualLighting.jpg)
31
+ * [SunLighting](https://developers.arcgis.com/javascript/latest/references/core/views/3d/environment/SunLighting/) | ![scene-sun-lighting](https://developers.arcgis.com/javascript/latest/assets/images/apiref/views/SunLighting.jpg)
32
+ * [VirtualLighting](https://developers.arcgis.com/javascript/latest/references/core/views/3d/environment/VirtualLighting/) | ![scene-virtual-lighting](https://developers.arcgis.com/javascript/latest/assets/images/apiref/views/VirtualLighting.jpg)
33
33
  *
34
34
  * @since 5.0
35
35
  */
@@ -5,7 +5,7 @@ export interface FoggyWeatherProperties extends Partial<Pick<FoggyWeather, "fogS
5
5
  /**
6
6
  * The FoggyWeather class allows you to change the weather conditions in the scene to foggy weather.
7
7
  *
8
- * ![scene-atmosphere](https://developers.arcgis.com/javascript/latest/assets/img/apiref/views/scene-weather-foggy.png)
8
+ * ![scene-atmosphere](https://developers.arcgis.com/javascript/latest/assets/images/apiref/views/scene-weather-foggy.png)
9
9
  *
10
10
  * Example:
11
11
  * ```js
@@ -5,7 +5,7 @@ export interface RainyWeatherProperties extends Partial<Pick<RainyWeather, "clou
5
5
  /**
6
6
  * The RainyWeather class allows you to change the weather conditions in the scene to rainy weather.
7
7
  *
8
- * ![scene-atmosphere](https://developers.arcgis.com/javascript/latest/assets/img/apiref/views/scene-weather-rainy.png)
8
+ * ![scene-atmosphere](https://developers.arcgis.com/javascript/latest/assets/images/apiref/views/scene-weather-rainy.png)
9
9
  *
10
10
  * Example:
11
11
  * ```js
@@ -5,7 +5,7 @@ export interface SnowyWeatherProperties extends Partial<Pick<SnowyWeather, "clou
5
5
  /**
6
6
  * The SnowyWeather class allows you to change the weather conditions in the scene to snowy weather.
7
7
  *
8
- * ![scene-atmosphere](https://developers.arcgis.com/javascript/latest/assets/img/apiref/views/scene-weather-snowy.png)
8
+ * ![scene-atmosphere](https://developers.arcgis.com/javascript/latest/assets/images/apiref/views/scene-weather-snowy.png)
9
9
  *
10
10
  * Example:
11
11
  * ```js
@@ -16,7 +16,7 @@ export interface SunLightingProperties extends WebSceneSunLightingProperties, Pa
16
16
  /**
17
17
  * The SunLighting class allows you to change the lighting in the scene to sunlight. The position of the light is set to the sun's location.
18
18
  *
19
- * ![scene-lightings](https://developers.arcgis.com/javascript/latest/assets/img/apiref/views/virtualLightCombined.png)
19
+ * ![scene-lightings](https://developers.arcgis.com/javascript/latest/assets/images/apiref/views/virtualLightCombined.png)
20
20
  *
21
21
  * Example:
22
22
  * ```js
@@ -5,7 +5,7 @@ export interface SunnyWeatherProperties extends Partial<Pick<SunnyWeather, "clou
5
5
  /**
6
6
  * The SunnyWeather class allows you to change the weather conditions in the scene to sunny weather.
7
7
  *
8
- * ![scene-atmosphere](https://developers.arcgis.com/javascript/latest/assets/img/apiref/views/scene-weather-sunny.png)
8
+ * ![scene-atmosphere](https://developers.arcgis.com/javascript/latest/assets/images/apiref/views/scene-weather-sunny.png)
9
9
  *
10
10
  * Example:
11
11
  * ```js
@@ -8,7 +8,7 @@ export interface VirtualLightingProperties extends WebSceneVirtualLightingProper
8
8
  * The VirtualLighting class allows you to change the lighting in the scene to virtual light. The position of the light
9
9
  * follows the camera and has a slight top-right offset in respect to the camera.
10
10
  *
11
- * ![scene-lightings](https://developers.arcgis.com/javascript/latest/assets/img/apiref/views/virtualLightCombined.png)
11
+ * ![scene-lightings](https://developers.arcgis.com/javascript/latest/assets/images/apiref/views/virtualLightCombined.png)
12
12
  *
13
13
  * Example:
14
14
  * ```js
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */
2
- import{__decorate as e}from"tslib";import has from"../../../core/has.js";import t from"../../../core/Logger.js";import{destroyMaybe as i,removeMaybe as s}from"../../../core/maybe.js";import{throwIfAborted as r}from"../../../core/promiseUtils.js";import{initial as o,watch as n,when as a}from"../../../core/reactiveUtils.js";import{schedule as l}from"../../../core/scheduling.js";import{property as c,subclass as d}from"../../../core/accessorSupport/decorators.js";import{fromMat4 as h,invert as m,fromQuat as u}from"../../../core/libs/gl-matrix-2/math/mat3.js";import{create as p,IDENTITY as f}from"../../../core/libs/gl-matrix-2/factories/mat3f64.js";import{create as b}from"../../../core/libs/gl-matrix-2/factories/mat4f64.js";import{fromValues as y}from"../../../core/libs/gl-matrix-2/factories/quatf64.js";import{normalize as g,sub as _,dot as v,add as w,length as j,transformMat3 as x,set as C,abs as M,max as E}from"../../../core/libs/gl-matrix-2/math/vec3.js";import{create as O,freeze as T,fromValues as R,clone as U,ZEROS as V}from"../../../core/libs/gl-matrix-2/factories/vec3f64.js";import{ONES as S,clone as A,fromValues as H}from"../../../core/libs/gl-matrix-2/factories/vec4f64.js";import{isMoon as L,isMars as k,getReferenceEllipsoid as P,SphericalECEFSpatialReferenceLike as I}from"../../../geometry/ellipsoidUtils.js";import{computeTranslationToOriginAndRotation as F}from"../../../geometry/projection/computeTranslationToOriginAndRotation.js";import{localLinearScaleFactors as D}from"../../../geometry/projection/localLinearScaleFactors.js";import{projectVectorToVector as G}from"../../../geometry/projection/projectVectorToVector.js";import{create as B}from"../../../geometry/support/aaBoundingRect.js";import{getContinuousIndexArray as z}from"../../../geometry/support/Indices.js";import{isCGCS2000 as N}from"../../../geometry/support/spatialReferenceUtils.js";import{BufferViewVec2f as q,BufferViewVec4f as W,BufferViewVec4u8 as $,BufferViewVec4u16 as Z,BufferViewVec3f as J,BufferViewVec3u8 as X,BufferViewVec3u16 as Y,BufferViewInt16 as K,BufferViewUint32 as Q,BufferViewUint16 as ee}from"../../../geometry/support/buffer/BufferView.js";import te from"../../../layers/support/SceneModification.js";import{getElevationOffsetInMeters as ie}from"../../../support/elevationInfoUtils.js";import{addNormals as se}from"./IntegratedMeshNormals.js";import{LayerView3D as re}from"./LayerView3D.js";import{Lyr3DViewPerformanceInfo as oe}from"./Lyr3DViewPerformanceInfo.js";import{addLayerViewToWasm as ne,removeLayerViewFromWasm as ae,getLyr3DWasm as le}from"./Lyr3DWasm.js";import{toWasmModification as ce}from"./SceneLayerWorkerHandle.js";import{LayerElevationProvider as de}from"./i3s/LayerElevationProvider.js";import{IntegratedMesh3DTilesLayerView3DSymbol as he}from"./support/integratedMesh3DTilesLayerViewInstanceUtils.js";import{primTypeConversion as me,alphaModeConversion as ue,faceCullingConversion as pe,wrapModeConversion as fe,lyr3DTypeToByteSize as be}from"./support/lyr3dTypeConversions.js";import{Tiles3DMeshIntersectionHandler as ye}from"./support/Tiles3DMeshIntersectionHandler.js";import{Frustum as ge}from"../state/Frustum.js";import{ElevationRange as _e}from"../support/ElevationRange.js";import{toBoundingRect as ve}from"../support/extentUtils.js";import{Obb as we,compute as je}from"../support/orientedBoundingBox.js";import{glLayout as xe}from"../support/buffer/glUtil.js";import{VertexBufferLayoutCreationParameters as Ce,createVertexBufferLayout as Me,ComponentGeometryParameters as Ee,SourceGeometry as Oe}from"../webgl-engine/collections/Component/SourceGeometry.js";import{Transform as Te}from"../webgl-engine/collections/Component/Transform.js";import{RenderTexture as Re}from"../webgl-engine/core/material/RenderTexture.js";import{Vertices as Ue,Attribute as Ve}from"../webgl-engine/lib/Attribute.js";import{ManagedTexture as Se}from"../webgl-engine/lib/ManagedTexture.js";import{compressAndTransformNormals as Ae}from"../webgl-engine/lib/Normals.js";import{advancedMRRFactors as He}from"../webgl-engine/materials/pbrUtils.js";import{writeAttribute as Le,writeBufferVec2 as ke}from"../webgl-engine/materials/internal/bufferWriterUtils.js";import Pe from"../../layers/LayerView.js";import{spatialReferenceIncompatibleError as Ie,isInEffectiveScaleRange as Fe,validateScaleRange as De}from"../../support/layerViewUtils.js";import{TaskPriority as Ge}from"../../support/Scheduler.js";import{TextureCompressionTracker as Be}from"../../support/TextureCompressionTracker.js";import{alphaCutoff as ze}from"../../../webscene/support/AlphaCutoff.js";var Ne;let qe=class extends(re(Pe)){static{Ne=he}constructor(e){super(e),this[Ne]=!0,this.type="integrated-mesh-3dtiles",this._modifications=new Array,this._visibleGeometryChangedSchedulerHandle=null,this._wasmLayerId=-1,this.ignoresMemoryFactor=!1,this._usedMemory=0,this._cacheMemory=0,this.drapeTargetType=1,this._replacesTerrain=!1,this._isUsedAsGroundLayer=!1,this._applySSAO=!has("disable-feature:im-ssao"),this._shadeNormals=!!has("enable-feature:im-shading"),this._lyrHandleToObjects=new Map,this._visibleObjects=new Set,this._loadedObjects=new Set,this._compressionTracker=new Be,this._dbgFlags=new Set;const t=e.view.resourceController;this._memCache=t.memoryController.newCache(`IM3DTiles-${this.uid}`,e=>this._deletePerObjectData(e)),this._replacesTerrain=e.layer.replacesTerrain,this._isUsedAsGroundLayer=e.layer.isUsedAsGroundLayer,this._frameTask=t.scheduler.registerTask(Ge.TILES3D),this._frustum=new ge(e.view.renderCoordsHelper)}tryRecycleWith(e,t){return this.canRecycleWith(e)?e.load(t).then(()=>{r(t);const i=this.layer.queryElevationCallback;this.layer=e,this.layer.queryElevationCallback=i}):null}canRecycleWith(e){return e.url===this.layer.url&&"integrated-mesh-3dtiles"===e.type&&e.replacesTerrain===this._replacesTerrain&&e.isUsedAsGroundLayer===this._isUsedAsGroundLayer}initialize(){this._dbgFlags.add(3),this._dbg(2,"Tiles3DLayerView3D initialize() called");const{view:e}=this;if(this._updatingHandles.add(()=>this.layer.modifications,()=>this._loadModifications(),o),!this._canProjectWithoutEngine())throw Ie("layer",this.layer.spatialReference.wkid,e.renderSpatialReference?.wkid);const t=ne(this).then(t=>{this._wasmLayerId=t,this._intersectionHandler=new ye(this),e.sceneIntersectionHelper.addIntersectionHandler(this._intersectionHandler),this._updatingHandles.add(()=>this.slicePlaneEnabled,e=>this._slicePlaneEnabledChange(e)),this._updatingHandles.add(()=>this._modifications,()=>this._modificationsChanged()),this._updatingHandles.add(()=>this.fullOpacity,()=>this._opacityChange()),this._updatingHandles.add(()=>e.clippingArea,()=>this._clippingAreaChanged(),o),this._updatingHandles.add(()=>e.state.contentCamera,()=>this._cameraChanged(),o),this._elevationProvider=new de({view:e,layerElevationSource:this,intersectionHandler:this._intersectionHandler});const i=this._replacesTerrain?0:1;e.elevationProvider.register(i,this._elevationProvider),e.overlayManager.registerDrapeTarget(this),this.addHandles([n(()=>this.layer.elevationInfo,e=>this._elevationInfoChanged(e)),a(()=>this.fullOpacity,()=>this._opacityChange()),n(()=>this.suspended,e=>this._wasm?.setEnabled(this,!e),o)])});this.layer.queryElevationCallback=(e,t)=>this._wasm.queryElevation(this,e,t),this.addHandles(n(()=>this.view.qualitySettings.memoryLimit,e=>this._memCache.maxSize=Math.ceil(rt*e*1048576),o)),this.addResolvingPromise(t)}destroy(){this._dbg(2,"Tiles3DLayerView3D destroy() called"),ae(this),this.layer.queryElevationCallback=null,this._intersectionHandler&&(this.view.sceneIntersectionHelper.removeIntersectionHandler(this._intersectionHandler),this._intersectionHandler=null),this._elevationProvider&&(this._elevationProvider.notifyObjectsChangedFunctional(e=>this.forEachComponentObject(t=>e(t.obb))),this.view.elevationProvider.unregister(this._elevationProvider),this._elevationProvider=null),this.view.overlayManager.unregisterDrapeTarget(this),this._lyrHandleToObjects.forEach(e=>this.freeObject(e)),this._lyrHandleToObjects.clear(),this._visibleObjects.clear(),this._loadedObjects.clear(),this._usedMemory=0,this._cacheMemory=0,this._memCache.destroy(),this._frameTask.remove(),this._updatingHandles=i(this._updatingHandles),this.emit("visible-geometry-changed"),this._visibleGeometryChangedSchedulerHandle=s(this._visibleGeometryChangedSchedulerHandle)}get fullOpacity(){return this.layer.replacesTerrain&&has("enable-feature:oit-ground")?this.view.map.ground.opacity:1}get hasModifications(){return this._modifications&&this._modifications.length>0}_opacityChange(){const{fullOpacity:e}=this;this.forEachComponentObject(t=>this._collection.updateObjectOpacity(t,e))}_cameraChanged(){const e=this._frustum;e.update(this.view.state.contentCamera);const t=this._visibleObjects;let i=!1;this._loadedObjects.forEach(s=>{const r=s.obb?.intersectsFrustum(e)??!1;r!==s.isVisible&&(s.isVisible=r,r?t.add(s):t.delete(s),s.componentObjects.forEach(e=>this._collection.setObjectVisibility(e,r)),i||=this._isVisibileElevationRangeModifiedByChangedTileVisbility(r,s.elevationRange))}),i&&this._setVisibleElevationRangeDirty()}intersect(e,t,i,s){this._intersectionHandler.intersect(e,t,i,s,null,!1)}get ready(){return!this.layer.replacesTerrain||!!this._wasm?.isTerrainReady}_modificationsChanged(){const e=this.layer.spatialReference,t=ce(this._layerClippingArea,this._modifications,e);this._wasm?.setMeshModifications(this,t)}_clippingAreaChanged(){const e=this.layer.spatialReference,t=B();this._layerClippingArea=ve(this.view.clippingArea,t,e)?t:null,this._modificationsChanged()}_visibleGeometryChanged(){this._visibleGeometryChangedSchedulerHandle??=l(()=>{this.emit("visible-geometry-changed"),this._visibleGeometryChangedSchedulerHandle=null})}_slicePlaneEnabledChange(e){this._intersectionHandler&&(this._intersectionHandler.slicePlaneEnabled=e&&!this.layer.replacesTerrain),this.forEachComponentObject(t=>this._collection.updateMaterial(t,{slicePlaneEnabled:e}))}_elevationInfoChanged(e){this._wasm?.setLayerOffset(this,ie(e))}get _wasm(){return le(this.view)}get wasmLayerId(){return this._wasmLayerId}get usedMemory(){return this._usedMemory}get unloadedMemory(){return 0}get cachedMemory(){return this._cacheMemory}get visibleAtCurrentScale(){return this.layer.isUsedAsGroundLayer||Fe(this.layer.effectiveScaleRange,this.view.scale)}canResume(){const e=this.layer&&"effectiveScaleRange"in this.layer?this.layer.effectiveScaleRange:null;return this.visible&&this.layer?.loaded&&this.parent&&!this.parent.suspended&&this.view?.ready&&(this.layer.isUsedAsGroundLayer||De(e)&&this.visibleAtCurrentScale)&&this.visibleAtCurrentTimeExtent||!1}get performanceInfo(){let e=0,t=0,i=0,s=0,r=0,o=0;return this._lyrHandleToObjects.forEach(n=>{n.isLoaded?(e+=n.textureMemoryUsage,t+=n.vboMemoryUsage,r++):(i+=n.textureMemoryUsage,s+=n.vboMemoryUsage,o++)}),new oe(this.usedMemory,r,o,Ze(t),Ze(e),Ze(s),Ze(i))}_canProjectWithoutEngine(){if(this.view.state.isLocal){const e=this.view.renderSpatialReference?.isWebMercator?3857:this.view.renderSpatialReference?.wkid??-1;if(3857!==e&&32662!==e)return!1}return!0}get _stage(){return this.view.stage}get _collection(){return this._stage.renderView.componentObjectCollection}get elevationProvider(){return this._elevationProvider}get elevationOffset(){return ie(this.layer.elevationInfo)}get elevationRange(){const e=this.fullExtent;return e?.zmin&&e?.zmax?new _e(e.zmin,e.zmax):null}getElevationRange(e){return this._intersectionHandler.getElevationRange(e)}get visibleElevationRange(){const e=new _e;0===this._visibleObjects.size?e.setElevationRangeValues(0,0):(e.setElevationRangeValues(1/0,-1/0),this._forEachRelevantVisibleTile(t=>e.expandElevationRange(t.elevationRange)),e.minElevation===1/0&&e.setElevationRangeValues(0,0));const t=this._get("visibleElevationRange");return t&&t.minElevation===e.minElevation&&t.maxElevation===e.maxElevation?t:e}_setVisibleElevationRangeDirty(){this.notifyChange("visibleElevationRange")}_forEachRelevantVisibleTile(e){const{view:t}=this,{spatialReference:i}=t,s=i.isWGS84||i.isWebMercator||N(i)||L(i)||k(i);if(this.view.state.isGlobal||!s)return this.forEachVisibleTile(e);const r=P(i).radius,{eye:o,viewForward:n,near:a}=t.state.camera,l=g(O(),n),c=500,d=Math.max(o[2],c),h=d+r,m=Math.sqrt(h**2-r**2),u=Math.abs(Math.atan2(m,r))*r,p=d>.5*r?.5*Math.PI*r:u,f=O();this.forEachVisibleTile(t=>{const{mbsRadius:i,mbsCenter:s}=t;if(i<0)return;_(f,s,o);const r=v(f,l);Math.abs(r)<p&&r+i>a&&r-i<p&&e(t)})}get fullExtent(){return this.layer.fullExtent}forEachComponentObject(e){this._forEachObject(this._lyrHandleToObjects.values(),e)}forEachVisibleTile(e){for(const t of this._visibleObjects)e(t)}forEachTile(e){for(const t of this._loadedObjects)e(t)}forEachVisibleComponentObject(e){this._forEachObject(this._visibleObjects,e)}_forEachObject(e,t){for(const{componentObjects:i}of e)for(const e of i)t(e)}isUpdating(){const e=this._wasm;return this._wasmLayerId>=0&&null!=e&&(e.isUpdating(this._wasmLayerId)||this._compressionTracker.compressing)}updatingFlagChanged(){this.notifyChange("updating")}async createRenderable(e){return this._frameTask.schedule(()=>this._createRenderable(e))}async _createRenderable(e){if(this.destroyed){const e=`IntegratedMesh3DTilesLayerView3D[${this.layer?.title}]: createRenderable called on destroyed instance`;throw new Error(e)}const{meshData:t}=e;if(null==t.data)throw new Error("meshData.data undefined");if(t.desc=JSON.parse(t.desc),null==t.desc)throw new Error("meshData.desc undefined");const i=T(...t.desc.origin),s=this.view.basemapTerrain.spatialReference;let r=f;if(this.view.state.isGlobal){const e=b();F(I,i,e,s),r=h(p(),e)}const o=O(),n=Ye(t.desc.obb);let a=0;const l={textureMemoryUsage:0},c=new Array,d=new Map,u=t.desc.prims.length,y=new Array,g=new _e;try{const e=this.view.state.isGlobal,h=e?P(this.view.spatialReference).radius:0,b=O();for(let y=0;y<u;y++){const u=t.desc.prims[y];this._dbg(2,JSON.stringify(u));if(null==me[u.ptype]||null==t.data){this._dbg(2,"[Unsupported Feature] Unsupported primitive mode ("+u.ptype+"). Skipping primitive.");continue}const _=t.desc?.materials&&null!=u.materialId?t.desc.materials[u.materialId]:null,v=null!=_?_.lightingModel:"Unlit",{positionView:M,positionAttr:E,normalsView:T,normalsAttr:V,colorAttr:L,texCoord0Attr:k,indicesView:P}=this.getBufferViews(u,t.data.buffer,r);if(null==E||null==M||null==P)continue;const I=M.count,F=(e,t)=>!e||e.data.length/e.size===I||(this._dbg(3,`${t} !== numPos. Skipping primitive.`),!1);if(!F(k,"numTexcoord")||!F(L,"numColors")||!F(V,"normals"))continue;const B=new Ce(null!=L,null!=T,k?1:0),z=Me(B);for(let t=0;t<M.count;t++){M.getVec(t,o),w(o,o,i);const s=e?j(o)-h:o[2];g.expandElevationRangeValues(s,s)}if(n){et(n,b,new Ue(E.data,3),i)}const N=n?.clone()??Xe(E,i);if(r!==f)for(let e=0;e<M.count;e++)M.getVec(e,o),x(o,o,r),M.setVec(e,o);const W=z.createBuffer(I);if(Le("position",E,null,null,W,0),null!=k){const e=W.getField("uv0",q);ke(k,e,0)}null!=L&&Le("color",L,null,null,W,0),null!=V&&Le("normalCompressed",V,null,null,W,0);const $=new Uint32Array([0,P.typedBuffer.length]),Z=xe(z),J=this._shadeNormals||this.layer.replacesTerrain,X=se(new Uint8Array(W.buffer),P.typedBuffer,Z,J),Y=new Ee(Z,J?2:0,B.textureCoordinateType,r!==f),K=new Oe({interleavedVertexData:X.data,vertexCount:X.data.byteLength/Z[0].stride,indexData:X.indices},{positions:M.typedBuffer,indices:P.typedBuffer},$,Y),Q=this.view.renderSpatialReference,ee=O(),te=[1,1,1];D(i,Q,te,s)||this._dbg(3,"Unsupported coordinate system for IM overlay"),G(i,Q,ee,s);let ie=Promise.resolve(Qe),re=S,oe=ze,ne=null,ae=null,le=null,ce=null,de=null,he=1,fe=!1,be=2,ye=!1,ge=R(0,0,0);const _e=U(He),ve="Pbr"===v;if(_){const e=e=>this._getTexture(e,t,d,l);ne=e(_.baseColorTex),de=ve?e(_.metalTex):null,ae=ve?e(_.emissiveTex):null,ce=ve?e(_.occlusionTex):null,le=ve?e(_.normalTex):null;const i=[ne,de,ae,ce,le].map(e=>e?.loadPromise??null);ie=Promise.all(i),re=A(_.baseColorFactor),oe=_.alphaCutoff??ze,ve&&(C(_e,_.metallicFactor,_.roughnessFactor,0),_.emissiveFactor&&(ge=_.emissiveFactor)),he=ue[_.alphaMode],fe=_.isDoubleSided,be=pe[_.faceCulling??"NotSet"],ye=this.layer.replacesTerrain}const we=ie.then(()=>()=>{if(this.destroyed){const e="Trying to add object to destroyed layer view";throw this._dbg(3,`${e} !== numPos. Skipping primitive.`),new Error(e)}ne||console.error("No colour texture 1");const e=r===f?f:m(p(),r)??f,t=this._collection.createObject({toMapSpace:H(ee[0],ee[1],te[0],te[1]),transform:new Te(i,e),obb:N,geometry:K,elevationAlignable:!1},{isIntegratedMesh:!0,baseColor:re,textureAlphaCutoff:oe,mrrFactors:_e,baseColorTexture:ne,metallicRoughnessTexture:de,normalTexture:le,occlusionTexture:ce,emissionTexture:ae,hasParametersFromSource:!1,sphereDepthInterpolate:this.layer.hasGoogleUrl,alphaDiscardMode:he,doubleSided:fe,cullFace:be,isGround:ye,emissiveBaseColor:ge,usePBR:ve,slicePlaneEnabled:this.slicePlaneEnabled,opacity:this.fullOpacity,polygonOffsetEnabled:!1,ellipsoidMode:1,applySSAO:this._applySSAO});return l.textureMemoryUsage+=ne?.texture?.usedMemory??0,ve&&(l.textureMemoryUsage+=(de?.texture?.usedMemory??0)+(ae?.texture?.usedMemory??0)+(ce?.texture?.usedMemory??0)+(le?.texture?.usedMemory??0)),a+=this._collection.getObjectGPUMemoryUsage(t),t});c.push(we)}if(y.push(...await Promise.all(c)),this.destroyed){throw new Error("IntegratedMesh3DTilesLayerView3D: createRenderable object destroyed during call")}}catch(k){throw d.forEach(e=>this._stage.removeTexture(e)),k}const _=y.map(e=>e()),v=new Array;d.forEach(e=>v.push(e));const{fullExtent:M}=this.layer;M?.hasZ&&M.zmax&&M.zmin&&(g.minElevation=Math.max(g.minElevation,M.zmin),g.maxElevation=Math.min(g.maxElevation,M.zmax));const E=_.reduceRight((e,t)=>e+t.intersectionGeometry.usedMemory,0),V=new $e(e.handle,_,v,E,a,l.textureMemoryUsage,n,e.stableNodeId,e.nodeDepth,g);this._lyrHandleToObjects.set(e.handle,V),this._memCache.put(Ke(V.handle),V);const{usedMemory:L}=V;return this._cacheMemory+=L,{memUsageBytes:L}}freeRenderable(e){const t=this._lyrHandleToObjects.get(e);t?(t.isLoaded?(this._loadedObjects.delete(t),this._visibleObjects.delete(t),this._usedMemory-=t.usedMemory):this._cacheMemory-=t.usedMemory,this.freeObject(t),this._lyrHandleToObjects.delete(e)):this._dbg(3,`freeRendedrable on non-existent renderable ${e}`)}freeObject(e){const t=Ke(e.handle);this._memCache.pop(t),e.textures.forEach(e=>this._stage.removeTexture(e)),e.componentObjects.forEach(e=>this._collection.destroyObject(e))}setRenderableVisibility(e,t,i){if(this.destroyed||this.destroying)return;const s=this._frustum,r=new Array;let o=!1,n=!1;for(let a=0;a<i;++a){if(!t[a])continue;const i=e[a],l=this._lyrHandleToObjects.get(i);if(l){if(l.isLoaded){this._dbg(3,`Already loaded object marked loaded again ${l.stableNodeId}`);continue}o=!0,l.isLoaded=!0,this._loadedObjects.add(l),this._usedMemory+=l.usedMemory,this._cacheMemory-=l.usedMemory;const e=l.obb?.intersectsFrustum(s)??!0;l.isVisible=e,e&&(this._visibleObjects.add(l),n||=this._isVisibileElevationRangeModifiedByChangedTileVisbility(e,l.elevationRange)),e&&l.obb&&r.push(l.obb),l.componentObjects.forEach(t=>{this._collection.setObjectVisibility(t,e)}),this._memCache.pop(Ke(i))}else this._dbg(3,`Tried to mark Non existent object ${i} as loaded`)}for(let a=0;a<i;++a){const i=e[a];if(t[a])continue;const s=this._lyrHandleToObjects.get(i);if(s){if(!s.isLoaded){this._dbg(3,`Tried to unload not-loaded object ${s.stableNodeId}`);continue}const e=this._visibleObjects.delete(s);s.isVisible=!1,s.isLoaded=!1,this._loadedObjects.delete(s),e&&(this._visibleGeometryChanged(),n||=this._isVisibileElevationRangeModifiedByChangedTileVisbility(!1,s.elevationRange)),this._usedMemory-=s.usedMemory,this._cacheMemory+=s.usedMemory,e&&s.obb&&r.push(s.obb),s.componentObjects.forEach(e=>{this._collection.setObjectVisibility(e,!1)}),this._memCache.put(Ke(i),s)}else this._dbg(3,`Tried to mark Non existent object ${i} as not loaded`)}o&&this._visibleGeometryChanged(),this._elevationProvider.notifyObjectsChanged(r),n&&this._setVisibleElevationRangeDirty()}setLodPixelThreshold(e){this._wasm?.setLodPixelThreshold(this,e)}_isVisibileElevationRangeModifiedByChangedTileVisbility(e,t){const{visibleElevationRange:i}=this,{minElevation:s,maxElevation:r}=t;return e?s<i.minElevation||r>i.maxElevation:s===i.minElevation||r===i.maxElevation}_getTexture(e,t,i,s){const r=e&&t.desc?.images?.[e.imageId];if(!r||!t.data?.buffer)return null;const o=i.get(r)??this._createTexture(e,t,i,s);return o?new Re(this._stage.renderView.textures,o.id):null}_createTexture(e,t,i,s){const r=e&&t.desc?.images?.[e.imageId];if(!r||!t.data?.buffer)return null;const o=this._stage,{renderView:n}=o,a=n.renderingContext.parameters.maxMaxAnisotropy,l=!!r.mipCount||a>1,c=fe[e.wrapMode??"None"];let d=r.alpha?6408:6407;const h=new Uint8Array(t.data.buffer,r.data.byteOffset,r.data.byteCount);let m=null,u=null,p=null;switch(r.format){case"Raw":"R8"===r.pixelFormat?(m=h,d=6403,u=""):"Rgb8"===r.pixelFormat?(m=h,d=6407,u=""):"Rgba8"===r.pixelFormat&&(m=h,d=6408,u="");break;case"Dxt1":m=h,d=6407,u="image/vnd-ms.dds";break;case"Dxt5":m=h,d=6408,u="image/vnd-ms.dds";break;case"Basis":m=h,d=6407,u="image/ktx2";break;case"Png":u="image/png",p=document.createElement("img");break;case"Jpeg":u="image/jpeg",p=document.createElement("img");break;case"Etc2":u="image/ktx",p=document.createElement("img");break;case"Astc":this._dbg(3,"Astc texture not supported");break;case"Pvrtc":this._dbg(3,"Pvrtc texture not supported")}if(p&&u){const e=new Blob([h],{type:u});p.src=URL.createObjectURL(e),m=p}if(m&&null!=u){const e=has("enable-feature:esri-compress-IM-textures")?{compressionTracker:this._compressionTracker,compressionCallback:e=>{e&&e>0&&(s.textureMemoryUsage-=e)}}:void 0,t=new Se(m,{mipmap:l,maxAnisotropy:a,encoding:u,wrap:c,pixelFormat:d,compressionOptions:e,noUnpackFlip:!0,width:r.mip0Width,height:r.mip0Height});return this._stage.addTexture(t),i.set(r,t),t}return null}getBufferViews(e,t,i){let s,r,o,n,a,l,c,d=null;for(let m=0;m<e.atrbs.length;m++){const c=e.atrbs[m],{view:u}=c,p=void 0,f=u.byteOffset+u.byteCount,b=u.byteCount/be[u.type],y=z(b);try{switch(c.sem){case"Position":3!==u.ncomp||"F32"!==u.type?this._dbg(3,"[Unsupported Feature] Unsupported view for Position ("+u+")"):(s=new J(t,u.byteOffset,p,f),r=new Ve(s.typedBuffer,y,3));break;case"Normal":if(3!==u.ncomp||"F32"!==u.type)this._dbg(3,"[Unsupported Feature] Unsupported view for Normal ("+u+")");else{const e=new J(t,u.byteOffset,p,f),s=Ae(e.typedBuffer,i);a=new K(s.buffer),l=new Ve(a.typedBuffer,y,2)}break;case"TexCoord":2!==u.ncomp||"F32"!==u.type?this._dbg(3,"[Unsupported Feature] Unsupported view for Texcoord ("+u+")"):void 0===n&&(n=new Ve(new q(t,u.byteOffset,p,f).typedBuffer,y,2));break;case"Color":4===u.ncomp?("F32"===u.type&&(d=new W(t,u.byteOffset,p,f)),"U8"===u.type&&(d=new $(t,u.byteOffset,p,f)),"U16"===u.type&&(d=new Z(t,u.byteOffset,p,f))):3===u.ncomp&&("F32"===u.type&&(d=new J(t,u.byteOffset,p,f)),"U8"===u.type&&(d=new X(t,u.byteOffset,p,f)),"U16"===u.type&&(d=new Y(t,u.byteOffset,p,f))),null==d?this._dbg(2,"[Unsupported Feature] Unsupported view for Color ("+u+")"):o=new Ve(d.typedBuffer,y,u.ncomp);break;case"FeatureIndex":break;default:this._dbg(2,"[Unsupported Feature] Unsupported semantic ("+c.sem+"). Skipping vertex attribute.")}}catch(h){this._dbg(2,"Error Creating buffer ("+h+"). Skipping vertex attribute.")}}if(e.index){const i=e.index.view,s=void 0,r=i.byteOffset+i.byteCount;switch(e.index.view.type){case"U16":c=new ee(t,i.byteOffset,s,r);break;case"U32":c=new Q(t,i.byteOffset,s,r);break;default:this._dbg(3,"[Unsupported Feature] index type not supported ("+i.type+").")}}if(null==c&&null!=s){const e=s.count;c=c=e<65535?new ee(new Uint16Array(e).buffer):new Q(new Uint32Array(e).buffer);for(let t=0;t<e;t++)c.set(t,t)}return{positionView:s,positionAttr:r,colorAttr:o,texCoord0Attr:n,indicesView:c,normalsView:a,normalsAttr:l}}_loadModifications(){if(this.removeHandles("modifications"),null==this.layer.modifications)return void(this._modifications=[]);const e=this.layer.modifications;this.addHandles(this._updatingHandles.addOnCollectionChange(()=>e,()=>{this._modifications=e.filter(e=>!(this.layer.isUsedAsGroundLayer&&"replace"!==e.type)).toArray(),this._modifications.length<e.length&&t.getLogger(this).info("Ground layers only support replace modifications. Other modification types have been ignored.")},o),"modifications")}_deletePerObjectData(e){this._wasm?.onRenderableEvicted(this,e.handle,e.usedMemory),this.freeRenderable(e.handle)}_dbg(e,i){this._dbgFlags.has(e)&&(3===e?t.getLogger(this).error(i):t.getLogger(this).warn(i))}};e([c()],qe.prototype,"fullOpacity",null),e([c({readOnly:!0})],qe.prototype,"ready",null),e([c({type:[te]})],qe.prototype,"_modifications",void 0),e([c()],qe.prototype,"_visibleGeometryChangedSchedulerHandle",void 0),e([c()],qe.prototype,"layer",void 0),e([c({readOnly:!0})],qe.prototype,"visibleAtCurrentScale",null),e([c({readOnly:!0})],qe.prototype,"_collection",null),e([c()],qe.prototype,"elevationOffset",null),e([c({readOnly:!0})],qe.prototype,"visibleElevationRange",null),qe=e([d("esri.views.3d.layers.IntegratedMesh3DTilesLayerView3D")],qe);const We=qe;class $e{constructor(e,t,i,s,r,o,n,a,l,c){this.handle=e,this.componentObjects=t,this.textures=i,this.cpuMemoryUsage=s,this.vboMemoryUsage=r,this.textureMemoryUsage=o,this.obb=n,this.stableNodeId=a,this.nodeDepth=l,this.elevationRange=c,this.isLoaded=!1,this.isVisible=!1;const d=O();n?.getCenter(d),this._obbCenterX=d[0],this._obbCenterY=d[1],this._obbCenterZ=d[2];const h=n?.radius??-1;this._obbRadius=h,this._obbRadiusSquared=h*h;const m=n?.halfSize;this._obbShortestHalfsize=m?Math.min(m[0],m[1],m[2]):0}get usedMemory(){return this.textureMemoryUsage+this.vboMemoryUsage+this.cpuMemoryUsage}get mbsRadius(){return this._obbRadius}get mbsCenter(){return this.obb?.center??V}boundingVolumeIntersectsRay(e,t){if(!this.obb)return!0;const{_obbCenterX:i,_obbCenterY:s,_obbCenterZ:r}=this,o=i-e[0],n=s-e[1],a=r-e[2],l=o*t[0]+n*t[1]+a*t[2];return o*o+n*n+a*a-l*l<=this._obbRadiusSquared&&this.obb.intersectRay(e,t)}boundingVolumeIntersectsSphere(e){const t=this._obbRadius;if(t<0)return!0;const i=e.center,s=e.radius,r=t+s,o=this._obbCenterX-i[0];if(o>r)return!1;const n=this._obbCenterY-i[1];if(n>r)return!1;const a=this._obbCenterZ-i[2];if(a>r)return!1;const l=o*o+n*n+a*a;if(l>r*r)return!1;if(l<=(this._obbShortestHalfsize+s)**2)return!0;return Math.sqrt(l)+t<=s||(this.obb?.intersectSphere(e)??!0)}}function Ze(e){return Math.round(e/1048.576)/1e3}const Je=O();function Xe(e,t){const i=je(e);return w(Je,i.center,t),i.center=Je,i}function Ye(e){return e?new we(e.center,e.halfSize,y(...e.quaternion)):null}function Ke(e){return`${e}`}const Qe=new Array;function et(e,t,i,s){const{center:r}=e,o=u(st,e.quaternionConjugate),n=x(tt,r,o),{data:a}=i,l=a.length/i.stride,c=it;for(let d=0;d<l;++d){const e=3*d;for(let t=0;t<3;++t)c[t]=a[e+t]+s[t];x(c,c,o),_(c,c,n),M(c,c),E(t,t,c)}e.halfSize=t}const tt=O(),it=O(),st=p(),rt=.2;export{We as default};
2
+ import{__decorate as e}from"tslib";import has from"../../../core/has.js";import t from"../../../core/Logger.js";import{destroyMaybe as i,removeMaybe as s}from"../../../core/maybe.js";import{throwIfAborted as r}from"../../../core/promiseUtils.js";import{initial as o,watch as n,when as a}from"../../../core/reactiveUtils.js";import{schedule as l}from"../../../core/scheduling.js";import{property as c,subclass as d}from"../../../core/accessorSupport/decorators.js";import{fromMat4 as h,invert as m,fromQuat as u}from"../../../core/libs/gl-matrix-2/math/mat3.js";import{create as p,IDENTITY as f}from"../../../core/libs/gl-matrix-2/factories/mat3f64.js";import{create as b}from"../../../core/libs/gl-matrix-2/factories/mat4f64.js";import{fromValues as y}from"../../../core/libs/gl-matrix-2/factories/quatf64.js";import{normalize as g,sub as _,dot as v,add as w,length as j,transformMat3 as x,set as C,abs as M,max as E}from"../../../core/libs/gl-matrix-2/math/vec3.js";import{create as O,freeze as T,fromValues as R,clone as U,ZEROS as V}from"../../../core/libs/gl-matrix-2/factories/vec3f64.js";import{ONES as S,clone as A,fromValues as H}from"../../../core/libs/gl-matrix-2/factories/vec4f64.js";import{isMoon as L,isMars as k,getReferenceEllipsoid as P,SphericalECEFSpatialReferenceLike as I}from"../../../geometry/ellipsoidUtils.js";import{computeTranslationToOriginAndRotation as F}from"../../../geometry/projection/computeTranslationToOriginAndRotation.js";import{localLinearScaleFactors as D}from"../../../geometry/projection/localLinearScaleFactors.js";import{projectVectorToVector as G}from"../../../geometry/projection/projectVectorToVector.js";import{create as B}from"../../../geometry/support/aaBoundingRect.js";import{getContinuousIndexArray as z}from"../../../geometry/support/Indices.js";import{isCGCS2000 as N}from"../../../geometry/support/spatialReferenceUtils.js";import{BufferViewVec2f as q,BufferViewVec4f as W,BufferViewVec4u8 as $,BufferViewVec4u16 as Z,BufferViewVec3f as J,BufferViewVec3u8 as X,BufferViewVec3u16 as Y,BufferViewInt16 as K,BufferViewUint32 as Q,BufferViewUint16 as ee}from"../../../geometry/support/buffer/BufferView.js";import te from"../../../layers/support/SceneModification.js";import{getElevationOffsetInMeters as ie}from"../../../support/elevationInfoUtils.js";import{addNormals as se}from"./IntegratedMeshNormals.js";import{LayerView3D as re}from"./LayerView3D.js";import{Lyr3DViewPerformanceInfo as oe}from"./Lyr3DViewPerformanceInfo.js";import{addLayerViewToWasm as ne,removeLayerViewFromWasm as ae,getLyr3DWasm as le}from"./Lyr3DWasm.js";import{toWasmModification as ce}from"./SceneLayerWorkerHandle.js";import{LayerElevationProvider as de}from"./i3s/LayerElevationProvider.js";import{IntegratedMesh3DTilesLayerView3DSymbol as he}from"./support/integratedMesh3DTilesLayerViewInstanceUtils.js";import{primTypeConversion as me,alphaModeConversion as ue,faceCullingConversion as pe,wrapModeConversion as fe,lyr3DTypeToByteSize as be}from"./support/lyr3dTypeConversions.js";import{Tiles3DMeshIntersectionHandler as ye}from"./support/Tiles3DMeshIntersectionHandler.js";import{Frustum as ge}from"../state/Frustum.js";import{ElevationRange as _e}from"../support/ElevationRange.js";import{toBoundingRect as ve}from"../support/extentUtils.js";import{Obb as we,compute as je}from"../support/orientedBoundingBox.js";import{glLayout as xe}from"../support/buffer/glUtil.js";import{VertexBufferLayoutCreationParameters as Ce,createVertexBufferLayout as Me,ComponentGeometryParameters as Ee,SourceGeometry as Oe}from"../webgl-engine/collections/Component/SourceGeometry.js";import{Transform as Te}from"../webgl-engine/collections/Component/Transform.js";import{RenderTexture as Re}from"../webgl-engine/core/material/RenderTexture.js";import{Vertices as Ue,Attribute as Ve}from"../webgl-engine/lib/Attribute.js";import{ManagedTexture as Se}from"../webgl-engine/lib/ManagedTexture.js";import{compressAndTransformNormals as Ae}from"../webgl-engine/lib/Normals.js";import{advancedMRRFactors as He}from"../webgl-engine/materials/pbrUtils.js";import{writeAttribute as Le,writeBufferVec2 as ke}from"../webgl-engine/materials/internal/bufferWriterUtils.js";import Pe from"../../layers/LayerView.js";import{spatialReferenceIncompatibleError as Ie,isInEffectiveScaleRange as Fe,validateScaleRange as De}from"../../support/layerViewUtils.js";import{TaskPriority as Ge}from"../../support/Scheduler.js";import{TextureCompressionTracker as Be}from"../../support/TextureCompressionTracker.js";import{alphaCutoff as ze}from"../../../webscene/support/AlphaCutoff.js";var Ne;let qe=class extends(re(Pe)){static{Ne=he}constructor(e){super(e),this[Ne]=!0,this.type="integrated-mesh-3dtiles",this._modifications=new Array,this._visibleGeometryChangedSchedulerHandle=null,this._wasmLayerId=-1,this.ignoresMemoryFactor=!1,this._usedMemory=0,this._cacheMemory=0,this.drapeTargetType=1,this._replacesTerrain=!1,this._isUsedAsGroundLayer=!1,this._applySSAO=!has("disable-feature:im-ssao"),this._shadeNormals=!!has("enable-feature:im-shading"),this._lyrHandleToObjects=new Map,this._visibleObjects=new Set,this._loadedObjects=new Set,this._compressionTracker=new Be,this._dbgFlags=new Set;const t=e.view.resourceController;this._memCache=t.memoryController.newCache(`IM3DTiles-${this.uid}`,e=>this._deletePerObjectData(e)),this._replacesTerrain=e.layer.replacesTerrain,this._isUsedAsGroundLayer=e.layer.isUsedAsGroundLayer,this._frameTask=t.scheduler.registerTask(Ge.TILES3D),this._frustum=new ge(e.view.renderCoordsHelper)}tryRecycleWith(e,t){return this.canRecycleWith(e)?e.load(t).then(()=>{r(t);const i=this.layer.queryElevationCallback;this.layer=e,this.layer.queryElevationCallback=i}):null}canRecycleWith(e){return e.url===this.layer.url&&"integrated-mesh-3dtiles"===e.type&&e.replacesTerrain===this._replacesTerrain&&e.isUsedAsGroundLayer===this._isUsedAsGroundLayer}initialize(){this._dbg(2,"Tiles3DLayerView3D initialize() called");const{view:e}=this;if(this._updatingHandles.add(()=>this.layer.modifications,()=>this._loadModifications(),o),!this._canProjectWithoutEngine())throw Ie("layer",this.layer.spatialReference.wkid,e.renderSpatialReference?.wkid);const t=ne(this).then(t=>{this._wasmLayerId=t,this._intersectionHandler=new ye(this),e.sceneIntersectionHelper.addIntersectionHandler(this._intersectionHandler),this._updatingHandles.add(()=>this.slicePlaneEnabled,e=>this._slicePlaneEnabledChange(e)),this._updatingHandles.add(()=>this._modifications,()=>this._modificationsChanged()),this._updatingHandles.add(()=>this.fullOpacity,()=>this._opacityChange()),this._updatingHandles.add(()=>e.clippingArea,()=>this._clippingAreaChanged(),o),this._updatingHandles.add(()=>e.state.contentCamera,()=>this._cameraChanged(),o),this._elevationProvider=new de({view:e,layerElevationSource:this,intersectionHandler:this._intersectionHandler});const i=this._replacesTerrain?0:1;e.elevationProvider.register(i,this._elevationProvider),e.overlayManager.registerDrapeTarget(this),this.addHandles([n(()=>this.layer.elevationInfo,e=>this._elevationInfoChanged(e)),a(()=>this.fullOpacity,()=>this._opacityChange()),n(()=>this.suspended,e=>this._wasm?.setEnabled(this,!e),o)])});this.layer.queryElevationCallback=(e,t)=>this._wasm.queryElevation(this,e,t),this.addHandles(n(()=>this.view.qualitySettings.memoryLimit,e=>this._memCache.maxSize=Math.ceil(rt*e*1048576),o)),this.addResolvingPromise(t)}destroy(){this._dbg(2,"Tiles3DLayerView3D destroy() called"),ae(this),this.layer.queryElevationCallback=null,this._intersectionHandler&&(this.view.sceneIntersectionHelper.removeIntersectionHandler(this._intersectionHandler),this._intersectionHandler=null),this._elevationProvider&&(this._elevationProvider.notifyObjectsChangedFunctional(e=>this.forEachComponentObject(t=>e(t.obb))),this.view.elevationProvider.unregister(this._elevationProvider),this._elevationProvider=null),this.view.overlayManager.unregisterDrapeTarget(this),this._lyrHandleToObjects.forEach(e=>this.freeObject(e)),this._lyrHandleToObjects.clear(),this._visibleObjects.clear(),this._loadedObjects.clear(),this._usedMemory=0,this._cacheMemory=0,this._memCache.destroy(),this._frameTask.remove(),this._updatingHandles=i(this._updatingHandles),this.emit("visible-geometry-changed"),this._visibleGeometryChangedSchedulerHandle=s(this._visibleGeometryChangedSchedulerHandle)}get fullOpacity(){return this.layer.replacesTerrain&&has("enable-feature:oit-ground")?this.view.map.ground.opacity:1}get hasModifications(){return this._modifications&&this._modifications.length>0}_opacityChange(){const{fullOpacity:e}=this;this.forEachComponentObject(t=>this._collection.updateObjectOpacity(t,e))}_cameraChanged(){const e=this._frustum;e.update(this.view.state.contentCamera);const t=this._visibleObjects;let i=!1;this._loadedObjects.forEach(s=>{const r=s.obb?.intersectsFrustum(e)??!1;r!==s.isVisible&&(s.isVisible=r,r?t.add(s):t.delete(s),s.componentObjects.forEach(e=>this._collection.setObjectVisibility(e,r)),i||=this._isVisibileElevationRangeModifiedByChangedTileVisbility(r,s.elevationRange))}),i&&this._setVisibleElevationRangeDirty()}intersect(e,t,i,s){this._intersectionHandler.intersect(e,t,i,s,null,!1)}get ready(){return!this.layer.replacesTerrain||!!this._wasm?.isTerrainReady}_modificationsChanged(){const e=this.layer.spatialReference,t=ce(this._layerClippingArea,this._modifications,e);this._wasm?.setMeshModifications(this,t)}_clippingAreaChanged(){const e=this.layer.spatialReference,t=B();this._layerClippingArea=ve(this.view.clippingArea,t,e)?t:null,this._modificationsChanged()}_visibleGeometryChanged(){this._visibleGeometryChangedSchedulerHandle??=l(()=>{this.emit("visible-geometry-changed"),this._visibleGeometryChangedSchedulerHandle=null})}_slicePlaneEnabledChange(e){this._intersectionHandler&&(this._intersectionHandler.slicePlaneEnabled=e&&!this.layer.replacesTerrain),this.forEachComponentObject(t=>this._collection.updateMaterial(t,{slicePlaneEnabled:e}))}_elevationInfoChanged(e){this._wasm?.setLayerOffset(this,ie(e))}get _wasm(){return le(this.view)}get wasmLayerId(){return this._wasmLayerId}get usedMemory(){return this._usedMemory}get unloadedMemory(){return 0}get cachedMemory(){return this._cacheMemory}get visibleAtCurrentScale(){return this.layer.isUsedAsGroundLayer||Fe(this.layer.effectiveScaleRange,this.view.scale)}canResume(){const e=this.layer&&"effectiveScaleRange"in this.layer?this.layer.effectiveScaleRange:null;return this.visible&&this.layer?.loaded&&this.parent&&!this.parent.suspended&&this.view?.ready&&(this.layer.isUsedAsGroundLayer||De(e)&&this.visibleAtCurrentScale)&&this.visibleAtCurrentTimeExtent||!1}get performanceInfo(){let e=0,t=0,i=0,s=0,r=0,o=0;return this._lyrHandleToObjects.forEach(n=>{n.isLoaded?(e+=n.textureMemoryUsage,t+=n.vboMemoryUsage,r++):(i+=n.textureMemoryUsage,s+=n.vboMemoryUsage,o++)}),new oe(this.usedMemory,r,o,Ze(t),Ze(e),Ze(s),Ze(i))}_canProjectWithoutEngine(){if(this.view.state.isLocal){const e=this.view.renderSpatialReference?.isWebMercator?3857:this.view.renderSpatialReference?.wkid??-1;if(3857!==e&&32662!==e)return!1}return!0}get _stage(){return this.view.stage}get _collection(){return this._stage.renderView.componentObjectCollection}get elevationProvider(){return this._elevationProvider}get elevationOffset(){return ie(this.layer.elevationInfo)}get elevationRange(){const e=this.fullExtent;return e?.zmin&&e?.zmax?new _e(e.zmin,e.zmax):null}getElevationRange(e){return this._intersectionHandler.getElevationRange(e)}get visibleElevationRange(){const e=new _e;0===this._visibleObjects.size?e.setElevationRangeValues(0,0):(e.setElevationRangeValues(1/0,-1/0),this._forEachRelevantVisibleTile(t=>e.expandElevationRange(t.elevationRange)),e.minElevation===1/0&&e.setElevationRangeValues(0,0));const t=this._get("visibleElevationRange");return t&&t.minElevation===e.minElevation&&t.maxElevation===e.maxElevation?t:e}_setVisibleElevationRangeDirty(){this.notifyChange("visibleElevationRange")}_forEachRelevantVisibleTile(e){const{view:t}=this,{spatialReference:i}=t,s=i.isWGS84||i.isWebMercator||N(i)||L(i)||k(i);if(this.view.state.isGlobal||!s)return this.forEachVisibleTile(e);const r=P(i).radius,{eye:o,viewForward:n,near:a}=t.state.camera,l=g(O(),n),c=500,d=Math.max(o[2],c),h=d+r,m=Math.sqrt(h**2-r**2),u=Math.abs(Math.atan2(m,r))*r,p=d>.5*r?.5*Math.PI*r:u,f=O();this.forEachVisibleTile(t=>{const{mbsRadius:i,mbsCenter:s}=t;if(i<0)return;_(f,s,o);const r=v(f,l);Math.abs(r)<p&&r+i>a&&r-i<p&&e(t)})}get fullExtent(){return this.layer.fullExtent}forEachComponentObject(e){this._forEachObject(this._lyrHandleToObjects.values(),e)}forEachVisibleTile(e){for(const t of this._visibleObjects)e(t)}forEachTile(e){for(const t of this._loadedObjects)e(t)}forEachVisibleComponentObject(e){this._forEachObject(this._visibleObjects,e)}_forEachObject(e,t){for(const{componentObjects:i}of e)for(const e of i)t(e)}isUpdating(){const e=this._wasm;return this._wasmLayerId>=0&&null!=e&&(e.isUpdating(this._wasmLayerId)||this._compressionTracker.compressing)}updatingFlagChanged(){this.notifyChange("updating")}async createRenderable(e){return this._frameTask.schedule(()=>this._createRenderable(e))}async _createRenderable(e){if(this.destroyed){const e=`IntegratedMesh3DTilesLayerView3D[${this.layer?.title}]: createRenderable called on destroyed instance`;throw this._dbg(3,e),new Error(e)}const{meshData:t}=e;if(null==t.data)throw new Error("meshData.data undefined");if(t.desc=JSON.parse(t.desc),null==t.desc)throw new Error("meshData.desc undefined");const i=T(...t.desc.origin),s=this.view.basemapTerrain.spatialReference;let r=f;if(this.view.state.isGlobal){const e=b();F(I,i,e,s),r=h(p(),e)}const o=O(),n=Ye(t.desc.obb);let a=0;const l={textureMemoryUsage:0},c=new Array,d=new Map,u=t.desc.prims.length,y=new Array,g=new _e;try{const e=this.view.state.isGlobal,h=e?P(this.view.spatialReference).radius:0,b=O();for(let y=0;y<u;y++){const u=t.desc.prims[y];this._dbg(2,JSON.stringify(u));if(null==me[u.ptype]||null==t.data){this._dbg(2,"[Unsupported Feature] Unsupported primitive mode ("+u.ptype+"). Skipping primitive.");continue}const _=t.desc?.materials&&null!=u.materialId?t.desc.materials[u.materialId]:null,v=null!=_?_.lightingModel:"Unlit",{positionView:M,positionAttr:E,normalsView:T,normalsAttr:V,colorAttr:L,texCoord0Attr:k,indicesView:P}=this.getBufferViews(u,t.data.buffer,r);if(null==E||null==M||null==P)continue;const I=M.count,F=(e,t)=>!e||e.data.length/e.size===I||(this._dbg(3,`${t} !== numPos. Skipping primitive.`),!1);if(!F(k,"numTexcoord")||!F(L,"numColors")||!F(V,"normals"))continue;const B=new Ce(null!=L,null!=T,k?1:0),z=Me(B);for(let t=0;t<M.count;t++){M.getVec(t,o),w(o,o,i);const s=e?j(o)-h:o[2];g.expandElevationRangeValues(s,s)}if(n){et(n,b,new Ue(E.data,3),i)}const N=n?.clone()??Xe(E,i);if(r!==f)for(let e=0;e<M.count;e++)M.getVec(e,o),x(o,o,r),M.setVec(e,o);const W=z.createBuffer(I);if(Le("position",E,null,null,W,0),null!=k){const e=W.getField("uv0",q);ke(k,e,0)}null!=L&&Le("color",L,null,null,W,0),null!=V&&Le("normalCompressed",V,null,null,W,0);const $=new Uint32Array([0,P.typedBuffer.length]),Z=xe(z),J=this._shadeNormals||this.layer.replacesTerrain,X=se(new Uint8Array(W.buffer),P.typedBuffer,Z,J),Y=new Ee(Z,J?2:0,B.textureCoordinateType,r!==f),K=new Oe({interleavedVertexData:X.data,vertexCount:X.data.byteLength/Z[0].stride,indexData:X.indices},{positions:M.typedBuffer,indices:P.typedBuffer},$,Y),Q=this.view.renderSpatialReference,ee=O(),te=[1,1,1];D(i,Q,te,s)||this._dbg(3,"Unsupported coordinate system for IM overlay"),G(i,Q,ee,s);let ie=Promise.resolve(Qe),re=S,oe=ze,ne=null,ae=null,le=null,ce=null,de=null,he=1,fe=!1,be=2,ye=!1,ge=R(0,0,0);const _e=U(He),ve="Pbr"===v;if(_){const e=e=>this._getTexture(e,t,d,l);ne=e(_.baseColorTex),de=ve?e(_.metalTex):null,ae=ve?e(_.emissiveTex):null,ce=ve?e(_.occlusionTex):null,le=ve?e(_.normalTex):null;const i=[ne,de,ae,ce,le].map(e=>e?.loadPromise??null);ie=Promise.all(i),re=A(_.baseColorFactor),oe=_.alphaCutoff??ze,ve&&(C(_e,_.metallicFactor,_.roughnessFactor,0),_.emissiveFactor&&(ge=_.emissiveFactor)),he=ue[_.alphaMode],fe=_.isDoubleSided,be=pe[_.faceCulling??"NotSet"],ye=this.layer.replacesTerrain}const we=ie.then(()=>()=>{if(this.destroyed){const e="Trying to add object to destroyed layer view";throw this._dbg(3,`${e} !== numPos. Skipping primitive.`),new Error(e)}ne||this._dbg(3,"No colour texture 1");const e=r===f?f:m(p(),r)??f,t=this._collection.createObject({toMapSpace:H(ee[0],ee[1],te[0],te[1]),transform:new Te(i,e),obb:N,geometry:K,elevationAlignable:!1},{isIntegratedMesh:!0,baseColor:re,textureAlphaCutoff:oe,mrrFactors:_e,baseColorTexture:ne,metallicRoughnessTexture:de,normalTexture:le,occlusionTexture:ce,emissionTexture:ae,hasParametersFromSource:!1,sphereDepthInterpolate:this.layer.hasGoogleUrl,alphaDiscardMode:he,doubleSided:fe,cullFace:be,isGround:ye,emissiveBaseColor:ge,usePBR:ve,slicePlaneEnabled:this.slicePlaneEnabled,opacity:this.fullOpacity,polygonOffsetEnabled:!1,ellipsoidMode:1,applySSAO:this._applySSAO});return l.textureMemoryUsage+=ne?.texture?.usedMemory??0,ve&&(l.textureMemoryUsage+=(de?.texture?.usedMemory??0)+(ae?.texture?.usedMemory??0)+(ce?.texture?.usedMemory??0)+(le?.texture?.usedMemory??0)),a+=this._collection.getObjectGPUMemoryUsage(t),t});c.push(we)}if(y.push(...await Promise.all(c)),this.destroyed){const e="IntegratedMesh3DTilesLayerView3D: createRenderable object destroyed during call";throw this._dbg(3,e),new Error(e)}}catch(k){throw d.forEach(e=>this._stage.removeTexture(e)),k}const _=y.map(e=>e()),v=new Array;d.forEach(e=>v.push(e));const{fullExtent:M}=this.layer;M?.hasZ&&M.zmax&&M.zmin&&(g.minElevation=Math.max(g.minElevation,M.zmin),g.maxElevation=Math.min(g.maxElevation,M.zmax));const E=_.reduceRight((e,t)=>e+t.intersectionGeometry.usedMemory,0),V=new $e(e.handle,_,v,E,a,l.textureMemoryUsage,n,e.stableNodeId,e.nodeDepth,g);this._lyrHandleToObjects.set(e.handle,V),this._memCache.put(Ke(V.handle),V);const{usedMemory:L}=V;return this._cacheMemory+=L,{memUsageBytes:L}}freeRenderable(e){const t=this._lyrHandleToObjects.get(e);t?(t.isLoaded?(this._loadedObjects.delete(t),this._visibleObjects.delete(t),this._usedMemory-=t.usedMemory):this._cacheMemory-=t.usedMemory,this.freeObject(t),this._lyrHandleToObjects.delete(e)):this._dbg(3,`freeRendedrable on non-existent renderable ${e}`)}freeObject(e){const t=Ke(e.handle);this._memCache.pop(t),e.textures.forEach(e=>this._stage.removeTexture(e)),e.componentObjects.forEach(e=>this._collection.destroyObject(e))}setRenderableVisibility(e,t,i){if(this.destroyed||this.destroying)return;const s=this._frustum,r=new Array;let o=!1,n=!1;for(let a=0;a<i;++a){if(!t[a])continue;const i=e[a],l=this._lyrHandleToObjects.get(i);if(l){if(l.isLoaded){this._dbg(3,`Already loaded object marked loaded again ${l.stableNodeId}`);continue}o=!0,l.isLoaded=!0,this._loadedObjects.add(l),this._usedMemory+=l.usedMemory,this._cacheMemory-=l.usedMemory;const e=l.obb?.intersectsFrustum(s)??!0;l.isVisible=e,e&&(this._visibleObjects.add(l),n||=this._isVisibileElevationRangeModifiedByChangedTileVisbility(e,l.elevationRange)),e&&l.obb&&r.push(l.obb),l.componentObjects.forEach(t=>{this._collection.setObjectVisibility(t,e)}),this._memCache.pop(Ke(i))}else this._dbg(3,`Tried to mark Non existent object ${i} as loaded`)}for(let a=0;a<i;++a){const i=e[a];if(t[a])continue;const s=this._lyrHandleToObjects.get(i);if(s){if(!s.isLoaded){this._dbg(3,`Tried to unload not-loaded object ${s.stableNodeId}`);continue}const e=this._visibleObjects.delete(s);s.isVisible=!1,s.isLoaded=!1,this._loadedObjects.delete(s),e&&(this._visibleGeometryChanged(),n||=this._isVisibileElevationRangeModifiedByChangedTileVisbility(!1,s.elevationRange)),this._usedMemory-=s.usedMemory,this._cacheMemory+=s.usedMemory,e&&s.obb&&r.push(s.obb),s.componentObjects.forEach(e=>{this._collection.setObjectVisibility(e,!1)}),this._memCache.put(Ke(i),s)}else this._dbg(3,`Tried to mark Non existent object ${i} as not loaded`)}o&&this._visibleGeometryChanged(),this._elevationProvider.notifyObjectsChanged(r),n&&this._setVisibleElevationRangeDirty()}setLodPixelThreshold(e){this._wasm?.setLodPixelThreshold(this,e)}_isVisibileElevationRangeModifiedByChangedTileVisbility(e,t){const{visibleElevationRange:i}=this,{minElevation:s,maxElevation:r}=t;return e?s<i.minElevation||r>i.maxElevation:s===i.minElevation||r===i.maxElevation}_getTexture(e,t,i,s){const r=e&&t.desc?.images?.[e.imageId];if(!r||!t.data?.buffer)return null;const o=i.get(r)??this._createTexture(e,t,i,s);return o?new Re(this._stage.renderView.textures,o.id):null}_createTexture(e,t,i,s){const r=e&&t.desc?.images?.[e.imageId];if(!r||!t.data?.buffer)return null;const o=this._stage,{renderView:n}=o,a=n.renderingContext.parameters.maxMaxAnisotropy,l=!!r.mipCount||a>1,c=fe[e.wrapMode??"None"];let d=r.alpha?6408:6407;const h=new Uint8Array(t.data.buffer,r.data.byteOffset,r.data.byteCount);let m=null,u=null,p=null;switch(r.format){case"Raw":"R8"===r.pixelFormat?(m=h,d=6403,u=""):"Rgb8"===r.pixelFormat?(m=h,d=6407,u=""):"Rgba8"===r.pixelFormat&&(m=h,d=6408,u="");break;case"Dxt1":m=h,d=6407,u="image/vnd-ms.dds";break;case"Dxt5":m=h,d=6408,u="image/vnd-ms.dds";break;case"Basis":m=h,d=6407,u="image/ktx2";break;case"Png":u="image/png",p=document.createElement("img");break;case"Jpeg":u="image/jpeg",p=document.createElement("img");break;case"Etc2":u="image/ktx",p=document.createElement("img");break;case"Astc":this._dbg(3,"Astc texture not supported");break;case"Pvrtc":this._dbg(3,"Pvrtc texture not supported")}if(p&&u){const e=new Blob([h],{type:u});p.src=URL.createObjectURL(e),m=p}if(m&&null!=u){const e=has("enable-feature:esri-compress-IM-textures")?{compressionTracker:this._compressionTracker,compressionCallback:e=>{e&&e>0&&(s.textureMemoryUsage-=e)}}:void 0,t=new Se(m,{mipmap:l,maxAnisotropy:a,encoding:u,wrap:c,pixelFormat:d,compressionOptions:e,noUnpackFlip:!0,width:r.mip0Width,height:r.mip0Height});return this._stage.addTexture(t),i.set(r,t),t}return null}getBufferViews(e,t,i){let s,r,o,n,a,l,c,d=null;for(let m=0;m<e.atrbs.length;m++){const c=e.atrbs[m],{view:u}=c,p=void 0,f=u.byteOffset+u.byteCount,b=u.byteCount/be[u.type],y=z(b);try{switch(c.sem){case"Position":3!==u.ncomp||"F32"!==u.type?this._dbg(3,"[Unsupported Feature] Unsupported view for Position ("+u+")"):(s=new J(t,u.byteOffset,p,f),r=new Ve(s.typedBuffer,y,3));break;case"Normal":if(3!==u.ncomp||"F32"!==u.type)this._dbg(3,"[Unsupported Feature] Unsupported view for Normal ("+u+")");else{const e=new J(t,u.byteOffset,p,f),s=Ae(e.typedBuffer,i);a=new K(s.buffer),l=new Ve(a.typedBuffer,y,2)}break;case"TexCoord":2!==u.ncomp||"F32"!==u.type?this._dbg(3,"[Unsupported Feature] Unsupported view for Texcoord ("+u+")"):void 0===n&&(n=new Ve(new q(t,u.byteOffset,p,f).typedBuffer,y,2));break;case"Color":4===u.ncomp?("F32"===u.type&&(d=new W(t,u.byteOffset,p,f)),"U8"===u.type&&(d=new $(t,u.byteOffset,p,f)),"U16"===u.type&&(d=new Z(t,u.byteOffset,p,f))):3===u.ncomp&&("F32"===u.type&&(d=new J(t,u.byteOffset,p,f)),"U8"===u.type&&(d=new X(t,u.byteOffset,p,f)),"U16"===u.type&&(d=new Y(t,u.byteOffset,p,f))),null==d?this._dbg(2,"[Unsupported Feature] Unsupported view for Color ("+u+")"):o=new Ve(d.typedBuffer,y,u.ncomp);break;case"FeatureIndex":break;default:this._dbg(2,"[Unsupported Feature] Unsupported semantic ("+c.sem+"). Skipping vertex attribute.")}}catch(h){this._dbg(2,"Error Creating buffer ("+h+"). Skipping vertex attribute.")}}if(e.index){const i=e.index.view,s=void 0,r=i.byteOffset+i.byteCount;switch(e.index.view.type){case"U16":c=new ee(t,i.byteOffset,s,r);break;case"U32":c=new Q(t,i.byteOffset,s,r);break;default:this._dbg(3,"[Unsupported Feature] index type not supported ("+i.type+").")}}if(null==c&&null!=s){const e=s.count;c=c=e<65535?new ee(new Uint16Array(e).buffer):new Q(new Uint32Array(e).buffer);for(let t=0;t<e;t++)c.set(t,t)}return{positionView:s,positionAttr:r,colorAttr:o,texCoord0Attr:n,indicesView:c,normalsView:a,normalsAttr:l}}_loadModifications(){if(this.removeHandles("modifications"),null==this.layer.modifications)return void(this._modifications=[]);const e=this.layer.modifications;this.addHandles(this._updatingHandles.addOnCollectionChange(()=>e,()=>{this._modifications=e.filter(e=>!(this.layer.isUsedAsGroundLayer&&"replace"!==e.type)).toArray(),this._modifications.length<e.length&&t.getLogger(this).info("Ground layers only support replace modifications. Other modification types have been ignored.")},o),"modifications")}_deletePerObjectData(e){this._wasm?.onRenderableEvicted(this,e.handle,e.usedMemory),this.freeRenderable(e.handle)}_dbg(e,i){this._dbgFlags.has(e)&&(3===e?t.getLogger(this).error(i):t.getLogger(this).warn(i))}};e([c()],qe.prototype,"fullOpacity",null),e([c({readOnly:!0})],qe.prototype,"ready",null),e([c({type:[te]})],qe.prototype,"_modifications",void 0),e([c()],qe.prototype,"_visibleGeometryChangedSchedulerHandle",void 0),e([c()],qe.prototype,"layer",void 0),e([c({readOnly:!0})],qe.prototype,"visibleAtCurrentScale",null),e([c({readOnly:!0})],qe.prototype,"_collection",null),e([c()],qe.prototype,"elevationOffset",null),e([c({readOnly:!0})],qe.prototype,"visibleElevationRange",null),qe=e([d("esri.views.3d.layers.IntegratedMesh3DTilesLayerView3D")],qe);const We=qe;class $e{constructor(e,t,i,s,r,o,n,a,l,c){this.handle=e,this.componentObjects=t,this.textures=i,this.cpuMemoryUsage=s,this.vboMemoryUsage=r,this.textureMemoryUsage=o,this.obb=n,this.stableNodeId=a,this.nodeDepth=l,this.elevationRange=c,this.isLoaded=!1,this.isVisible=!1;const d=O();n?.getCenter(d),this._obbCenterX=d[0],this._obbCenterY=d[1],this._obbCenterZ=d[2];const h=n?.radius??-1;this._obbRadius=h,this._obbRadiusSquared=h*h;const m=n?.halfSize;this._obbShortestHalfsize=m?Math.min(m[0],m[1],m[2]):0}get usedMemory(){return this.textureMemoryUsage+this.vboMemoryUsage+this.cpuMemoryUsage}get mbsRadius(){return this._obbRadius}get mbsCenter(){return this.obb?.center??V}boundingVolumeIntersectsRay(e,t){if(!this.obb)return!0;const{_obbCenterX:i,_obbCenterY:s,_obbCenterZ:r}=this,o=i-e[0],n=s-e[1],a=r-e[2],l=o*t[0]+n*t[1]+a*t[2];return o*o+n*n+a*a-l*l<=this._obbRadiusSquared&&this.obb.intersectRay(e,t)}boundingVolumeIntersectsSphere(e){const t=this._obbRadius;if(t<0)return!0;const i=e.center,s=e.radius,r=t+s,o=this._obbCenterX-i[0];if(o>r)return!1;const n=this._obbCenterY-i[1];if(n>r)return!1;const a=this._obbCenterZ-i[2];if(a>r)return!1;const l=o*o+n*n+a*a;if(l>r*r)return!1;if(l<=(this._obbShortestHalfsize+s)**2)return!0;return Math.sqrt(l)+t<=s||(this.obb?.intersectSphere(e)??!0)}}function Ze(e){return Math.round(e/1048.576)/1e3}const Je=O();function Xe(e,t){const i=je(e);return w(Je,i.center,t),i.center=Je,i}function Ye(e){return e?new we(e.center,e.halfSize,y(...e.quaternion)):null}function Ke(e){return`${e}`}const Qe=new Array;function et(e,t,i,s){const{center:r}=e,o=u(st,e.quaternionConjugate),n=x(tt,r,o),{data:a}=i,l=a.length/i.stride,c=it;for(let d=0;d<l;++d){const e=3*d;for(let t=0;t<3;++t)c[t]=a[e+t]+s[t];x(c,c,o),_(c,c,n),M(c,c),E(t,t,c)}e.halfSize=t}const tt=O(),it=O(),st=p(),rt=.2;export{We as default};
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */
2
- import{pt2px as e}from"../../../../core/screenUtils.js";import{create as t}from"../../../../core/libs/gl-matrix-2/factories/vec3f64.js";import{ZEROS as r}from"../../../../core/libs/gl-matrix-2/factories/vec4f64.js";import{RenderingInfo as n}from"../../../../renderers/support/RenderingInfo.js";import{textSymbolLayerSupportsVerticalOffset as i}from"../../../../symbols/callouts/calloutUtils.js";import{perObjectElevationAligner as s}from"./ElevationAligners.js";import{elevationModeChangeUpdateType as a,needsElevationUpdates2D as o}from"./elevationAlignmentUtils.js";import{Graphics3DGraphicCreationContext as l}from"./Graphics3DGraphicCreationContext.js";import{Graphics3DObject3DGraphicLayer as c}from"./Graphics3DObject3DGraphicLayer.js";import{Graphics3DObjectMetadata as h}from"./Graphics3DObjectMetadata.js";import{Graphics3DSymbolLayer as p}from"./Graphics3DSymbolLayer.js";import{computeCentroid as d}from"./graphicUtils.js";import{createStageObject as m,extendPointGraphicElevationContext as f}from"./pointUtils.js";import{SymbolComplexity as u}from"./SymbolComplexity.js";import{isObjectSymbol3DLayer as g,isTextSymbol3DLayer as v}from"../support/layerUtils.js";import{Attribute as y}from"../../webgl-engine/lib/Attribute.js";import{Geometry as x}from"../../webgl-engine/lib/Geometry.js";import{LineCalloutMaterial as _,Parameters as b,uniqueMaterialIdentifier as O}from"../../webgl-engine/materials/LineCalloutMaterial.js";class C extends p{static{this.elevationModeChangeTypes={definedChanged:1,staysOnTheGround:1,onTheGroundChanged:2}}constructor(e,t){super(e,null,t,G),this._elevationOptions={supportsOffsetAdjustment:!0,supportsOnTheGround:!1},this.ensureDrapedStatus(!1)}async doLoad(){this._materials[0]=new _(this._materialParameters,this._context.spherical)}_perInstanceMaterialParameters(e){const t=this._materialParameters;return t.horizontalScreenOffset=e.horizontalScreenOffset??0,t.centerOffsetUnits=e.centerOffsetUnits||"world",t}get _materialParameters(){const t=new b,n=this.symbol,i=n.callout;if(i.color){const e=i.color.toUnitRGBA();e[3]*=this._getLayerOpacity(),t.color=e}else t.color=r;if(t.size=e(i.size||0),n.verticalOffset){const{screenLength:r,minWorldLength:i,maxWorldLength:s}=n.verticalOffset;t.verticalOffset={screenLength:e(r),minWorldLength:i||0,maxWorldLength:null!=s?s:1/0}}t.borderColor=null!=i.border?.color?i.border.color.toUnitRGBA():null;const s=n.symbolLayers.at(0),a=g(s),o="label-3d"===n.type;return t.useVisibilityPixel=!1,a&&(t.shaderPolygonOffset=0),t.hudDepthAlignStart=o,t.hasSlicePlane=this._context.slicePlaneEnabled,t.screenSizePerspective=this._context.screenSizePerspectiveEnabled?this.view.screenSizePerspective.parameters:null,t}_defaultElevationInfoNoZ(){return w}createGraphics3DGraphic(e,t){const r=e.renderingInfo,n=e.graphic,s=this.createElevationContextForGraphic(n,r.elevationOffset||0),a=r.symbol,o="on-the-ground"===this._elevationContext.mode&&("cim"===a.type||!a.symbolLayers.some(e=>g(e)||v(e)));if("label-3d"!==a.type&&o)return null;if("point-3d"===a.type&&a.symbolLayers.every(e=>"text"===e.type&&!i(e)))return null;const l=d(n.geometry);return null==l?null:this._createAs3DShape(l,s,r,n.uid,t)}layerOpacityChanged(){this._materials[0]?.setParameters(this._materialParameters)}layerScreenSizePerspectiveChanged(){const e=this._context.screenSizePerspectiveEnabled?this.view.screenSizePerspective.parameters:null;this._materials[0]?.setParameters({screenSizePerspective:e})}layerElevationInfoChanged(e,t,r){const n=this._elevationContext.mode,i=a(C.elevationModeChangeTypes,r,n);return 1!==i||e?.forEach(e=>{const r=t(e);null!=r&&this.graphics3DGraphicLayerElevationInfoChanged(e.graphic,r)}),i}slicePlaneEnabledChanged(){return this._materials[0]?.setParameters({hasSlicePlane:this._context.slicePlaneEnabled}),!0}physicalBasedRenderingChanged(){return!0}createElevationContextForGraphic(e,t=0){const r=super.createElevationContextForGraphic(e);return r.addOffsetRenderUnits(t),r}updateElevationContextForGraphic(e,t,r=0){super.updateElevationContextForGraphic(e,t),e.addOffsetRenderUnits(r)}graphics3DGraphicLayerElevationInfoChanged(e,t){const{elevationContext:r,metadata:n}=t;this.updateElevationContextForGraphic(r,e,n?.elevationOffset??0),t.needsElevationUpdates=o(r.mode)}computeComplexity(){return new u({verticesPerFeature:6})}_getOrCreateMaterial(e,t){const r=this._perInstanceMaterialParameters(e),n=O(r);if(n===this._materials[0]?.uniqueMaterialIdentifier)return this._materials[0];if(t){let e=t.get(n);return null==e&&(e=new _(r,this._context.spherical),t.set(n,e)),e}return new _(r,this._context.spherical)}_createAs3DShape(e,t,r,n,i){const a=this._context.layerViewUid,l=this._context.stage.renderView.getObjectAndLayerIdColor({graphicUid:n,layerViewUid:a}),p=this._getOrCreateMaterial(r,i),d=new x(p,P(r),null,1,l),u=m(this._context,e,d,t,n);if(null==u)return null;const g=new c(this,u.object,null,s,t);return g.hiddenIfDeconflicted=!0,g.metadata=new h(r.elevationOffset),g.alignedSampledElevation=u.sampledElevation,g.needsElevationUpdates=o(t.mode),f(g,e,this._context.elevationProvider),g}}function P(e){const{translation:t,centerOffset:r,groundDistance:n}=e,i=new y(t?[t[0],t[1],t[2]]:[0,0,0],j,3,!0),s=new y(r?[r[0],r[1],r[2]]:[0,0,0],j,3,!0),a=new y(null!=n?[n]:[1],j,1,!0);return[["position",i],["normal",new y([0,0,1],j,3,!0)],["centerOffset",s],["groundDistance",a]]}const j=[0],w={mode:"relative-to-ground",offset:0},G={ignoreDrivers:!0,renderPriority:0,renderPriorityStep:1};class E extends n{constructor(e,r,n=t(),i=t(),s=0,a=0,o="world",l=0){super(e,r),this.translation=n,this.centerOffset=i,this.groundDistance=s,this.horizontalScreenOffset=a,this.centerOffsetUnits=o,this.elevationOffset=l}}class S extends l{}export{C as Graphics3DLineCalloutSymbolLayer,S as LineCalloutCreationContext,E as LineCalloutSymbolLayerRenderingInfo};
2
+ import{pt2px as e}from"../../../../core/screenUtils.js";import{create as t}from"../../../../core/libs/gl-matrix-2/factories/vec3f64.js";import{ZEROS as r}from"../../../../core/libs/gl-matrix-2/factories/vec4f64.js";import{RenderingInfo as n}from"../../../../renderers/support/RenderingInfo.js";import{textSymbolLayerSupportsVerticalOffset as i}from"../../../../symbols/callouts/calloutUtils.js";import{perObjectElevationAligner as s}from"./ElevationAligners.js";import{elevationModeChangeUpdateType as a,needsElevationUpdates2D as o}from"./elevationAlignmentUtils.js";import{Graphics3DGraphicCreationContext as l}from"./Graphics3DGraphicCreationContext.js";import{Graphics3DObject3DGraphicLayer as c}from"./Graphics3DObject3DGraphicLayer.js";import{Graphics3DObjectMetadata as h}from"./Graphics3DObjectMetadata.js";import{Graphics3DSymbolLayer as p}from"./Graphics3DSymbolLayer.js";import{computeCentroid as m}from"./graphicUtils.js";import{createStageObject as d,extendPointGraphicElevationContext as f}from"./pointUtils.js";import{SymbolComplexity as u}from"./SymbolComplexity.js";import{isObjectSymbol3DLayer as g,isTextSymbol3DLayer as v}from"../support/layerUtils.js";import{Attribute as y}from"../../webgl-engine/lib/Attribute.js";import{Geometry as x}from"../../webgl-engine/lib/Geometry.js";import{LineCalloutMaterial as b,Parameters as _,uniqueMaterialIdentifier as C}from"../../webgl-engine/materials/LineCalloutMaterial.js";import{getLineCalloutMaterialBaseInstance as O}from"../../webgl-engine/materials/LineCalloutMaterialBaseInstance.js";class P extends p{static{this.elevationModeChangeTypes={definedChanged:1,staysOnTheGround:1,onTheGroundChanged:2}}constructor(e,t){super(e,null,t,E),this._elevationOptions={supportsOffsetAdjustment:!0,supportsOnTheGround:!1},this.ensureDrapedStatus(!1)}async doLoad(){this._materials[0]=new b(this._materialParameters,this._context.spherical)}_perInstanceMaterialParameters(e){const t=this._materialParameters;return t.horizontalScreenOffset=e.horizontalScreenOffset??0,t.centerOffsetUnits=e.centerOffsetUnits||"world",t}get _materialParameters(){const t=new _,n=this.symbol,i=n.callout;if(i.color){const e=i.color.toUnitRGBA();e[3]*=this._getLayerOpacity(),t.color=e}else t.color=r;if(t.size=e(i.size||0),n.verticalOffset){const{screenLength:r,minWorldLength:i,maxWorldLength:s}=n.verticalOffset;t.verticalOffset={screenLength:e(r),minWorldLength:i||0,maxWorldLength:null!=s?s:1/0}}t.borderColor=null!=i.border?.color?i.border.color.toUnitRGBA():null;const s=n.symbolLayers.at(0),a=g(s),o="label-3d"===n.type;return t.useVisibilityPixel=!1,a&&(t.shaderPolygonOffset=0),t.hudDepthAlignStart=o,t.hasSlicePlane=this._context.slicePlaneEnabled,t.screenSizePerspective=this._context.screenSizePerspectiveEnabled?this.view.screenSizePerspective.parameters:null,t}_defaultElevationInfoNoZ(){return G}createGraphics3DGraphic(e,t){const r=e.renderingInfo,n=e.graphic,s=this.createElevationContextForGraphic(n,r.elevationOffset||0),a=r.symbol,o="on-the-ground"===this._elevationContext.mode&&("cim"===a.type||!a.symbolLayers.some(e=>g(e)||v(e)));if("label-3d"!==a.type&&o)return null;if("point-3d"===a.type&&a.symbolLayers.every(e=>"text"===e.type&&!i(e)))return null;const l=m(n.geometry);return null==l?null:this._createAs3DShape(l,s,r,n.uid,t)}layerOpacityChanged(){this._materials[0]?.setParameters(this._materialParameters)}layerScreenSizePerspectiveChanged(){const e=this._context.screenSizePerspectiveEnabled?this.view.screenSizePerspective.parameters:null;this._materials[0]?.setParameters({screenSizePerspective:e})}layerElevationInfoChanged(e,t,r){const n=this._elevationContext.mode,i=a(P.elevationModeChangeTypes,r,n);return 1!==i||e?.forEach(e=>{const r=t(e);null!=r&&this.graphics3DGraphicLayerElevationInfoChanged(e.graphic,r)}),i}slicePlaneEnabledChanged(){return this._materials[0]?.setParameters({hasSlicePlane:this._context.slicePlaneEnabled}),!0}physicalBasedRenderingChanged(){return!0}createElevationContextForGraphic(e,t=0){const r=super.createElevationContextForGraphic(e);return r.addOffsetRenderUnits(t),r}updateElevationContextForGraphic(e,t,r=0){super.updateElevationContextForGraphic(e,t),e.addOffsetRenderUnits(r)}graphics3DGraphicLayerElevationInfoChanged(e,t){const{elevationContext:r,metadata:n}=t;this.updateElevationContextForGraphic(r,e,n?.elevationOffset??0),t.needsElevationUpdates=o(r.mode)}computeComplexity(){return new u({verticesPerFeature:6})}_getOrCreateMaterial(e,t){const r=this._perInstanceMaterialParameters(e),n=C(r);if(n===this._materials[0]?.uniqueMaterialIdentifier)return this._materials[0];if(t){let e=t.get(n);return null==e&&(e=new b(r,this._context.spherical),t.set(n,e)),e}return new b(r,this._context.spherical)}_createAs3DShape(e,t,r,n,i){const a=this._context.layerViewUid,l=this._context.stage.renderView.getObjectAndLayerIdColor({graphicUid:n,layerViewUid:a}),p=this._getOrCreateMaterial(r,i),m=new x(p,j(r),null,1,l,void 0,O()),u=d(this._context,e,m,t,n);if(null==u)return null;const g=new c(this,u.object,null,s,t);return g.hiddenIfDeconflicted=!0,g.metadata=new h(r.elevationOffset),g.alignedSampledElevation=u.sampledElevation,g.needsElevationUpdates=o(t.mode),f(g,e,this._context.elevationProvider),g}}function j(e){const{translation:t,centerOffset:r,groundDistance:n}=e,i=new y(t?[t[0],t[1],t[2]]:[0,0,0],w,3,!0),s=new y(r?[r[0],r[1],r[2]]:[0,0,0],w,3,!0),a=new y(null!=n?[n]:[1],w,1,!0);return[["position",i],["normal",new y([0,0,1],w,3,!0)],["centerOffset",s],["groundDistance",a]]}const w=[0],G={mode:"relative-to-ground",offset:0},E={ignoreDrivers:!0,renderPriority:0,renderPriorityStep:1};class S extends n{constructor(e,r,n=t(),i=t(),s=0,a=0,o="world",l=0){super(e,r),this.translation=n,this.centerOffset=i,this.groundDistance=s,this.horizontalScreenOffset=a,this.centerOffsetUnits=o,this.elevationOffset=l}}class L extends l{}export{P as Graphics3DLineCalloutSymbolLayer,L as LineCalloutCreationContext,S as LineCalloutSymbolLayerRenderingInfo};
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */
2
- import{e as t}from"../../../../chunks/earcut.js";import e from"../../../../geometry/Extent.js";import i from"../../../../geometry/Polygon.js";import{getZeroIndexArray as r}from"../../../../geometry/support/Indices.js";import{leastSignificantAxis as o}from"../../../../geometry/support/polygonUtils.js";import{Attribute as n}from"../../webgl-engine/lib/Attribute.js";import{Geometry as a}from"../../webgl-engine/lib/Geometry.js";function u(e,i,r){const n=(i.length>0?i[0]:e.length/3)-1,a=o(e,n,r);if(2!==a){e=e.slice();for(let t=0;t<e.length;t+=3)e[t+a]=e[t+2]}return t(e,i,3)}function s(t){const e=[["position",new n(t.attributeData.position,t.indices,3,!0)]],i=r(t.indices.length);return null!=t.attributeData.colorFeature?e.push(["colorFeatureAttribute",new n([t.attributeData.colorFeature],i,1,!0)]):t.attributeData.color&&e.push(["color",new n(t.attributeData.color,i,4,!0)]),t.attributeData.uvMapSpace&&e.push(["uvMapSpace",new n(t.attributeData.uvMapSpace,t.indices,4,!0)]),t.attributeData.boundingRect&&e.push(["boundingRect",new n(t.attributeData.boundingRect,[0],9,!0)]),new a(t.material,e,t.mapPositions,0,t.attributeData.olidColor)}function c(t,e=null){const i=[["position",new n(t.attributeData.position,t.indices,3,!0)],["uv0",new n(t.attributeData.uv0,t.indices,2,!0)]];return new a(t.material,i,t.mapPositions,0,e)}function l(t){switch(t.type){case"extent":if(t instanceof e)return i.fromExtent(t);break;case"polygon":return t}return null}class p{constructor(t,e,i){this.renderData=t,this.layerViewUid=e,this.graphicUid=i,this.outGeometries=new Array}}export{p as PolygonCreationDataBase,s as createColorGeometry,u as createIndices3D,c as createWaterGeometry,l as geometryAsPolygon};
2
+ import{e as t}from"../../../../chunks/earcut.js";import e from"../../../../geometry/Extent.js";import r from"../../../../geometry/Polygon.js";import{getZeroIndexArray as i}from"../../../../geometry/support/Indices.js";import{leastSignificantAxis as o}from"../../../../geometry/support/polygonUtils.js";import{Attribute as n}from"../../webgl-engine/lib/Attribute.js";import{Geometry as a}from"../../webgl-engine/lib/Geometry.js";function u(e,r,i){const n=(r.length>0?r[0]:e.length/3)-1,a=o(e,n,i);if(2!==a){e=e.slice();for(let t=0;t<e.length;t+=3)e[t+a]=e[t+2]}return t(e,r,3)}function s(t){const e=[["position",new n(t.attributeData.position,t.indices,3,!0)]],{boundingRect:r}=t.attributeData,o=null!=r,u=o?[0]:i(t.indices.length);return null!=t.attributeData.colorFeature?e.push(["colorFeatureAttribute",new n([t.attributeData.colorFeature],u,1,!0)]):t.attributeData.color&&e.push(["color",new n(t.attributeData.color,u,4,!0)]),t.attributeData.uvMapSpace&&e.push(["uvMapSpace",new n(t.attributeData.uvMapSpace,t.indices,4,!0)]),o&&e.push(["boundingRect",new n(r,u,9,!0)]),new a(t.material,e,t.mapPositions,0,t.attributeData.olidColor)}function c(t,e=null){const r=[["position",new n(t.attributeData.position,t.indices,3,!0)],["uv0",new n(t.attributeData.uv0,t.indices,2,!0)]];return new a(t.material,r,t.mapPositions,0,e)}function l(t){switch(t.type){case"extent":if(t instanceof e)return r.fromExtent(t);break;case"polygon":return t}return null}class p{constructor(t,e,r){this.renderData=t,this.layerViewUid=e,this.graphicUid=r,this.outGeometries=new Array}}export{p as PolygonCreationDataBase,s as createColorGeometry,u as createIndices3D,c as createWaterGeometry,l as geometryAsPolygon};
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */
2
- import{reallocGrowthFactor as e}from"../../../../core/arrayUtils.js";import{signal as r}from"../../../../core/signal.js";import{normalize as t}from"../../../../core/libs/gl-matrix-2/math/vec3.js";import{create as s}from"../../../../core/libs/gl-matrix-2/factories/vec3f64.js";import{intersectsSphere as i}from"../../../../geometry/support/frustum.js";import{Sphere as n}from"../../../../geometry/support/sphere.js";import{makeScheduleFunction as a}from"../../layers/support/makeScheduleFunction.js";import{GaussianSplatSortWorkerHandle as o}from"../GaussianSplatWorkerHandle.js";import{GaussianSplatFadeTexture as u}from"./GaussianSplatFadeTexture.js";import{GaussianSplatOrderTexture as h}from"./GaussianSplatOrderTexture.js";import{GaussianSplatTextureAtlas as d}from"./GaussianSplatTextureAtlas.js";import{TaskPriority as l}from"../../../support/Scheduler.js";class _{constructor(e){this._updating=r(!1),this._useDeterministicSort=!1,this.visibleGaussians=0,this._visibleGaussianTiles=new Array,this._workerHandle=null,this._isSorting=!1,this._pendingSortTask=!1,this._bufferCapacity=0,this._minimumBoundingSphere=new n,this._cameraDirectionNormalized=s(),this._frameTask=null,this._renderer=e,this._orderTexture=new h(this._renderer.renderingContext),this._fadingTexture=new u(this._renderer.renderingContext),this._textureAtlas=new d(this._renderer.renderingContext,this._renderer.view.resourceController.memoryController,this._renderer.fboCache);const{resourceController:t}=this._renderer.view;this._workerHandle=new o(a(t)),this._frameTask=t.scheduler.registerTask(l.GAUSSIAN_SPLAT_SORTING)}get textureAtlas(){return this._textureAtlas}get orderTexture(){return this._orderTexture}get fadingTexture(){return this._fadingTexture}get visibleGaussianTiles(){return this._visibleGaussianTiles}forEachTile(e){for(const r of this._visibleGaussianTiles)e(r)}updateGaussianVisibility(e){this._visibleGaussianTiles=e,this.requestSort()}get updating(){return this._updating.value}destroy(){this._pendingSortTask=!1,this._frameTask.remove(),this._workerHandle?.destroyWorkerAndSelf(),this._textureAtlas.destroy(),this._orderTexture.destroy(),this._fadingTexture.destroy()}requestSort(){this._updating.value=!0,this._isSorting?this._pendingSortTask=!0:(this._isSorting=!0,this._pendingSortTask=!1,this._sortOnWorker().then(()=>this._handleSortComplete()).catch(()=>this._handleSortComplete()))}_handleSortComplete(){this._isSorting=!1,this._pendingSortTask?this.requestSort():this._updating.value=!1}_clearBuffersAndTextures(){this._bufferCapacity=0,this._orderTexture.clear(),this._textureAtlas.clear()}_ensureBufferCapacity(r){if(this._bufferCapacity<r){const t=Math.ceil(r*e);this._atlasIndicesBuffer=new Uint32Array(t),this._sortedAtlasIndicesBuffer=new Uint32Array(t),this._distancesBuffer=new Float64Array(t),this._sortOrderBuffer=new Uint32Array(t),this._bufferCapacity=t}}async _sortOnWorker(){if(0===this._visibleGaussianTiles.length)return this.visibleGaussians=0,this._clearBuffersAndTextures(),void this._renderer.requestRender(1);this._useDeterministicSort&&this._visibleGaussianTiles.sort((e,r)=>e.obb.centerX-r.obb.centerX||e.obb.centerY-r.obb.centerY||e.obb.centerZ-r.obb.centerZ);let e=this._visibleGaussianTiles.reduce((e,r)=>e+r.gaussianAtlasIndices.length,0);this._ensureBufferCapacity(e),this._textureAtlas.ensureTextureAtlas();const{frustum:r}=this._renderer.camera;t(this._cameraDirectionNormalized,this._renderer.camera.ray.direction);const s=this._cameraDirectionNormalized[0],n=this._cameraDirectionNormalized[1],a=this._cameraDirectionNormalized[2];let o=0;const u=1.5;if(this.forEachTile(t=>{const{gaussianAtlasIndices:h,positions:d}=t;if(this._minimumBoundingSphere.center=t.obb.center,this._minimumBoundingSphere.radius=(t.obb.radius+t.maxScale)*u,i(r,this._minimumBoundingSphere))for(let e=0;e<h.length;e++){this._atlasIndicesBuffer[o]=h[e];const r=3*e,t=d[r],i=d[r+1],u=d[r+2];this._distancesBuffer[o]=t*s+i*n+u*a,this._sortOrderBuffer[o]=o,o++}else e-=h.length}),0===e)return this.visibleGaussians=0,this._clearBuffersAndTextures(),void this._renderer.requestRender(1);const h={distances:this._distancesBuffer,sortOrderIndices:this._sortOrderBuffer,numGaussians:e,preciseSort:this._useDeterministicSort};await(this._workerHandle?.sort(h).then(e=>{this._distancesBuffer=e.distances,this._sortOrderBuffer=e.sortedOrderIndices}));const d=async r=>{const t=this._sortedAtlasIndicesBuffer.subarray(0,e);for(let s=0;s<e;s++)t[s]=this._atlasIndicesBuffer[this._sortOrderBuffer[s]];this._orderTexture.setData(t,e),this.visibleGaussians=e,this._renderer.requestRender(1),r.madeProgress()};await this._frameTask.schedule(d)}set useDeterministicSort(e){this._useDeterministicSort=e}}export{_ as GaussianSplatDataStore};
2
+ import{reallocGrowthFactor as e}from"../../../../core/arrayUtils.js";import{signal as t}from"../../../../core/signal.js";import{normalize as r}from"../../../../core/libs/gl-matrix-2/math/vec3.js";import{create as s}from"../../../../core/libs/gl-matrix-2/factories/vec3f64.js";import{intersectsSphere as i}from"../../../../geometry/support/frustum.js";import{Sphere as n}from"../../../../geometry/support/sphere.js";import{makeScheduleFunction as a}from"../../layers/support/makeScheduleFunction.js";import{GaussianSplatSortWorkerHandle as o}from"../GaussianSplatWorkerHandle.js";import{GaussianSplatFadeTexture as u}from"./GaussianSplatFadeTexture.js";import{GaussianSplatOrderTexture as h}from"./GaussianSplatOrderTexture.js";import{GaussianSplatTextureAtlas as d}from"./GaussianSplatTextureAtlas.js";import{TaskPriority as l}from"../../../support/Scheduler.js";class c{constructor(e){this._updating=t(!1),this._useDeterministicSort=!1,this.visibleGaussians=0,this._visibleGaussianTiles=new Array,this._workerHandle=null,this._isSorting=!1,this._pendingSortTask=!1,this._bufferCapacity=0,this._minimumBoundingSphere=new n,this._cameraDirectionNormalized=s(),this._frameTask=null,this._renderer=e,this._orderTexture=new h(this._renderer.renderingContext),this._fadingTexture=new u(this._renderer.renderingContext),this._textureAtlas=new d(this._renderer.renderingContext,this._renderer.view.resourceController.memoryController,this._renderer.fboCache);const{resourceController:r}=this._renderer.view;this._workerHandle=new o(a(r)),this._frameTask=r.scheduler.registerTask(l.GAUSSIAN_SPLAT_SORTING)}get textureAtlas(){return this._textureAtlas}get orderTexture(){return this._orderTexture}get fadingTexture(){return this._fadingTexture}get visibleGaussianTiles(){return this._visibleGaussianTiles}forEachTile(e){for(const t of this._visibleGaussianTiles)e(t)}updateGaussianVisibility(e){this._visibleGaussianTiles=e,this.requestSort()}get updating(){return this._updating.value}destroy(){this._pendingSortTask=!1,this._frameTask.remove(),this._workerHandle?.destroyWorkerAndSelf(),this._textureAtlas.destroy(),this._orderTexture.destroy(),this._fadingTexture.destroy()}requestSort(){this._updating.value=!0,this._isSorting?this._pendingSortTask=!0:(this._isSorting=!0,this._pendingSortTask=!1,this._sortOnWorker().then(()=>this._handleSortComplete()).catch(()=>this._handleSortComplete()))}_handleSortComplete(){this._isSorting=!1,this._pendingSortTask?this.requestSort():this._updating.value=!1}_clearBuffersAndTextures(){this._bufferCapacity=0,this._orderTexture.clear(),this._textureAtlas.clear()}_ensureSortBufferCapacities(t){if(this._bufferCapacity<t){const r=Math.ceil(t*e);this._atlasIndicesBuffer=new Uint32Array(r),this._distancesBuffer=new Float64Array(r),this._sortOrderBuffer=new Uint32Array(r),this._bufferCapacity=r}}_ensureSortedAtlasIndicesBufferCapacity(t){if(!(t<=0)&&(!this._sortedAtlasIndicesBuffer||this._sortedAtlasIndicesBuffer.length<t)){const r=Math.ceil(t*e);this._sortedAtlasIndicesBuffer=new Uint32Array(r)}}async _sortOnWorker(){if(0===this._visibleGaussianTiles.length)return this.visibleGaussians=0,this._clearBuffersAndTextures(),void this._renderer.requestRender(1);this._useDeterministicSort&&this._visibleGaussianTiles.sort((e,t)=>e.obb.centerX-t.obb.centerX||e.obb.centerY-t.obb.centerY||e.obb.centerZ-t.obb.centerZ);let e=this._visibleGaussianTiles.reduce((e,t)=>e+t.gaussianAtlasIndices.length,0);this._ensureSortBufferCapacities(e),this._textureAtlas.ensureTextureAtlas();const{frustum:t}=this._renderer.camera;r(this._cameraDirectionNormalized,this._renderer.camera.ray.direction);const s=this._cameraDirectionNormalized[0],n=this._cameraDirectionNormalized[1],a=this._cameraDirectionNormalized[2];let o=0;const u=1.5;if(this.forEachTile(r=>{const{gaussianAtlasIndices:h,positions:d}=r;if(this._minimumBoundingSphere.center=r.obb.center,this._minimumBoundingSphere.radius=(r.obb.radius+r.maxScale)*u,i(t,this._minimumBoundingSphere))for(let e=0;e<h.length;e++){this._atlasIndicesBuffer[o]=h[e];const t=3*e,r=d[t],i=d[t+1],u=d[t+2];this._distancesBuffer[o]=r*s+i*n+u*a,this._sortOrderBuffer[o]=o,o++}else e-=h.length}),0===e)return this.visibleGaussians=0,this._clearBuffersAndTextures(),void this._renderer.requestRender(1);const h={distances:this._distancesBuffer,sortOrderIndices:this._sortOrderBuffer,numGaussians:e,preciseSort:this._useDeterministicSort};await(this._workerHandle?.sort(h).then(e=>{this._distancesBuffer=e.distances,this._sortOrderBuffer=e.sortedOrderIndices}));const d=async t=>{const{paddedSize:r}=this._orderTexture.ensureCapacity(e);this._ensureSortedAtlasIndicesBufferCapacity(r);const s=this._atlasIndicesBuffer,i=this._sortOrderBuffer,n=this._sortedAtlasIndicesBuffer;for(let a=0;a<e;a++)n[a]=s[i[a]];this._orderTexture.setData(n,e),this.visibleGaussians=e,this._renderer.requestRender(1),t.madeProgress()};await this._frameTask.schedule(d)}set useDeterministicSort(e){this._useDeterministicSort=e}}export{c as GaussianSplatDataStore};
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */
2
- import{reallocGrowthFactor as t}from"../../../../core/arrayUtils.js";import{fromValues as e}from"../../../../core/libs/gl-matrix-2/factories/vec2f64.js";import"../../../webgl/BufferObject.js";import"../../../webgl/FramebufferObject.js";import"../../../webgl/Program.js";import"../../../../core/has.js";import"../../../webgl/Renderbuffer.js";import r from"../../../webgl/Texture.js";import"../../../../core/Logger.js";import{PixelType as i,SizedPixelFormat as s}from"../../../webgl/enums.js";import"../../../webgl/Util.js";import{minExpectedGaussianCount as a}from"./GaussianSplatAtlasPages.js";import{TextureDescriptor as o}from"../../../webgl/TextureDescriptor.js";class u{constructor(t){this.texture=null,this._orderTextureCapacity=0,this._rctx=t}ensureCapacity(e){if(this._orderTextureCapacity>=e)return;const u=Math.max(Math.ceil(e*t),a),[p,c]=this._evalTextureSize(u),h=p*c;this._orderBuffer=new Uint32Array(h),this._orderTextureCapacity=h,this.texture?.dispose();const l=new o;l.width=p,l.height=c,l.pixelFormat=36244,l.dataType=i.UNSIGNED_INT,l.internalFormat=s.R32UI,l.wrapMode=33071,l.samplingMode=9728,l.isImmutable=!0,this.texture=new r(this._rctx,l),this._orderTextureCapacity=h}setData(t,e){this.ensureCapacity(e),this._orderBuffer.set(t);const r=this.texture.descriptor.width,i=Math.ceil(e/r),s=r*i;this.texture.updateData(0,0,0,r,i,this._orderBuffer.subarray(0,s))}clear(){this._orderTextureCapacity=0,this.texture?.dispose(),this.texture=null}destroy(){this.texture?.dispose()}_evalTextureSize(t){const r=Math.ceil(Math.sqrt(t)),i=Math.ceil(t/r);return e(r,i)}}export{u as GaussianSplatOrderTexture};
2
+ import{reallocGrowthFactor as t}from"../../../../core/arrayUtils.js";import{fromValues as e}from"../../../../core/libs/gl-matrix-2/factories/vec2f64.js";import"../../../webgl/BufferObject.js";import"../../../webgl/FramebufferObject.js";import"../../../webgl/Program.js";import"../../../../core/has.js";import"../../../webgl/Renderbuffer.js";import r from"../../../webgl/Texture.js";import"../../../../core/Logger.js";import{PixelType as i,SizedPixelFormat as s}from"../../../webgl/enums.js";import"../../../webgl/Util.js";import{minExpectedGaussianCount as a}from"./GaussianSplatAtlasPages.js";import{TextureDescriptor as o}from"../../../webgl/TextureDescriptor.js";class u{constructor(t){this.texture=null,this._orderTextureCapacity=0,this._rctx=t}ensureCapacity(e){if(e<=0)return{textureWidth:0,rowCount:0,paddedSize:0};if(this._orderTextureCapacity>=e&&this.texture){const t=this.texture.descriptor.width,r=Math.ceil(e/t);return{textureWidth:t,rowCount:r,paddedSize:t*r}}const u=Math.max(Math.ceil(e*t),a),[p,h]=this._evalTextureSize(u),c=p*h;this._orderTextureCapacity=c,this.texture?.dispose();const d=new o;d.width=p,d.height=h,d.pixelFormat=36244,d.dataType=i.UNSIGNED_INT,d.internalFormat=s.R32UI,d.wrapMode=33071,d.samplingMode=9728,d.isImmutable=!0,this.texture=new r(this._rctx,d);const l=Math.ceil(e/p);return{textureWidth:p,rowCount:l,paddedSize:p*l}}setData(t,e){const{textureWidth:r,rowCount:i,paddedSize:s}=this.ensureCapacity(e);if(t.length>=s)return void this.texture.updateData(0,0,0,r,i,t);const a=new Uint32Array(s);a.set(t.subarray(0,e)),this.texture.updateData(0,0,0,r,i,a)}clear(){this._orderTextureCapacity=0,this.texture?.dispose(),this.texture=null}destroy(){this.texture?.dispose()}_evalTextureSize(t){const r=Math.ceil(Math.sqrt(t)),i=Math.ceil(t/r);return e(r,i)}}export{u as GaussianSplatOrderTexture};
@@ -112,7 +112,7 @@ export interface RenderNodeProperties extends Partial<Pick<RenderNode, "produces
112
112
  * <span id="render-node-input-images"></span>
113
113
  * | composite-color | composite-color depth attachment | highlights | normals |
114
114
  * | --------------- | -------------------------------- | ---------- | ------- |
115
- * | <img src="https://developers.arcgis.com/javascript/latest/assets/img/apiref/views/3d/rendernodeCompositeColor.png" style="width:200px;"/> | <img src="https://developers.arcgis.com/javascript/latest/assets/img/apiref/views/3d/rendernodeCompositeColorDepth.png" style="width:200px;"/> | <img src="https://developers.arcgis.com/javascript/latest/assets/img/apiref/views/3d/rendernodeHighlight.png" style="width:200px;"/> | <img src="https://developers.arcgis.com/javascript/latest/assets/img/apiref/views/3d/rendernodeNormals.png" style="width:200px;"/> |
115
+ * | <img src="https://developers.arcgis.com/javascript/latest/assets/images/apiref/views/3d/rendernodeCompositeColor.png" style="width:200px;"/> | <img src="https://developers.arcgis.com/javascript/latest/assets/images/apiref/views/3d/rendernodeCompositeColorDepth.png" style="width:200px;"/> | <img src="https://developers.arcgis.com/javascript/latest/assets/images/apiref/views/3d/rendernodeHighlight.png" style="width:200px;"/> | <img src="https://developers.arcgis.com/javascript/latest/assets/images/apiref/views/3d/rendernodeNormals.png" style="width:200px;"/> |
116
116
  *
117
117
  * If one of the required inputs is not available then this [RenderNode](https://developers.arcgis.com/javascript/latest/references/core/views/3d/webgl/RenderNode/) will be
118
118
  * skipped during the frame. For example, a custom [RenderNode](https://developers.arcgis.com/javascript/latest/references/core/views/3d/webgl/RenderNode/) using highlights as
@@ -151,7 +151,7 @@ export interface RenderNodeProperties extends Partial<Pick<RenderNode, "produces
151
151
  * drawn as a perfect sphere with a radius of 6378137, so the unit of the coordinate system should be considered
152
152
  * meters.
153
153
  *
154
- * ![rendernode-global-coordinate-system](https://developers.arcgis.com/javascript/latest/assets/img/apiref/views/3d/externalRenderers-global-coordinate-system.png)
154
+ * ![rendernode-global-coordinate-system](https://developers.arcgis.com/javascript/latest/assets/images/apiref/views/3d/externalRenderers-global-coordinate-system.png)
155
155
  *
156
156
  * You can use [toRenderCoordinates()](https://developers.arcgis.com/javascript/latest/references/core/views/3d/webgl/#toRenderCoordinates)
157
157
  * and [fromRenderCoordinates()](https://developers.arcgis.com/javascript/latest/references/core/views/3d/webgl/#fromRenderCoordinates) to transform to
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */
2
- import{__decorate as t}from"tslib";import{lerp as e}from"../../../../../core/mathUtils.js";import{watch as i,syncAndInitial as s}from"../../../../../core/reactiveUtils.js";import{property as r,subclass as o}from"../../../../../core/accessorSupport/decorators.js";import{length as a}from"../../../../../core/libs/gl-matrix-2/math/vec3.js";import{ZEROS as n}from"../../../../../core/libs/gl-matrix-2/factories/vec4f32.js";import{getReferenceEllipsoid as h}from"../../../../../geometry/ellipsoidUtils.js";import{InternalRenderCategory as c}from"../../../webgl.js";import{TransparentEnvironment as m}from"../TransparentEnvironment.js";import{G as l}from"../../../../../chunks/GlowBlur.glsl.js";import{GlowBlurTechnique as p}from"./GlowBlurTechnique.js";import{GlowBlurTechniqueConfiguration as u}from"./GlowBlurTechniqueConfiguration.js";import{G as g,a as _,m as d}from"../../../../../chunks/GlowComposition.glsl.js";import{GlowCompositionTechnique as f}from"./GlowCompositionTechnique.js";import{GlowCompositionTechniqueConfiguration as w}from"./GlowCompositionTechniqueConfiguration.js";import{ColorAttachment1 as b,DepthStencilAttachment as P}from"../../../../webgl/enums.js";let T=class extends m{constructor(t){super(t),this.consumes={required:[c.TRANSPARENT_ENVIRONMENT,"emissive"]},this.produces=c.TRANSPARENT_ENVIRONMENT,this._blurHorizontalConfiguration=new u,this._blurVerticalConfiguration=new u,this._compositionConfiguration=new w,this._compositionParameters=new g,this._blurParameters=new l,this._blurScalePerLod=3.06,this._logicalBlurRadius=.0037,this._mode=0,this._intensity=.5,this._scatteringFactors={realistic:new _([.8,.12,.05,.02,.01,0]),maximumFog:new _([0,0,.06,.12,.25,.57]),cartographicMin:new _([.4,.18,.25,.12,.05,0],!1),cartographicDefault:new _([1.17,1.08,.78,.4,.26,.11],!1),cartographicMax:new _([3.59,3.9,2.46,1.4,.93,.44],!1)},this._glowResults=new Array;const e=h(t.view.spatialReference);this._atmosphereRadius=e.radius+e.atmosphereHeight;t.view.stage.renderView.techniques.precompile(f,this._compositionConfiguration),this._compositionParameters.minDisperse=new _([.8,.12,.05,.02,.01,0])}initialize(){this.addHandles([i(()=>this._updateFogParameters(),()=>{},s),i(()=>this._updateParameters(),()=>{},s)])}_updateParameters(){const t=this.view.environment.lighting.glow;this._mode=null==t?this.view.environment.atmosphereEnabled?0:2:1,t&&(this._intensity=t.intensity),this._compositionParameters.minDisperse&&(this._compositionParameters.minDisperse.presets=this.getPreset(this._mode)),this.precompile(),this.requestRender(1)}_updateFogParameters(){const t=this.view.environment.weather;"sunny"===t.type||"cloudy"===t.type?this._compositionParameters.distanceModifier=0:this._compositionParameters.distanceModifier="foggy"===t.type?e(3e-5,.005,t.fogStrength**3):e(4e-6,2e-4,(t.precipitation??0)**3),this._compositionParameters.maxDisperse=this._scatteringFactors.maximumFog,this.requestRender(1)}precompile(){this.techniques.precompile(p,this._blurHorizontalConfiguration),this._blurVerticalConfiguration.glowStage=1,this.techniques.precompile(p,this._blurVerticalConfiguration),this._compositionConfiguration.blurEnabled=!0,this.techniques.precompile(f,this._compositionConfiguration),this._compositionConfiguration.blurEnabled=!1,this.techniques.precompile(f,this._compositionConfiguration)}render(t){const e=t.find(({name:t})=>t===c.TRANSPARENT_ENVIRONMENT),i=e.getAttachment(b);if(!i?.attachment)return e;const s=2!==this._mode;this._compositionConfiguration.blurEnabled=s;const r=e.getAttachment(P);if(!s){const t=this.techniques.get(f,this._compositionConfiguration);if(!t.compiled)return this.requestRender(1),e;const s=e.getTexture(),o=this.fboCache,{fullWidth:a,fullHeight:n}=this.bindParameters.camera,h=this.renderingContext,c=o.acquire(s.descriptor.width,s.descriptor.height,this.produces);return this._prepareFBO(c,a,n),this._compositionParameters.color=s,this._compositionParameters.emission=i.attachment,h.bindTechnique(t,this.bindParameters,this._compositionParameters),h.screen.draw(),c.attachDepth(r),c.attachColor(i,b),c}const o=this.techniques.get(p,this._blurHorizontalConfiguration),n=this.techniques.get(p,this._blurVerticalConfiguration),h=this.techniques.get(f,this._compositionConfiguration);if(!o.compiled||!n.compiled||!h.compiled)return this.requestRender(1),e;const m=e.getTexture(),l=this.fboCache,{fullWidth:u,fullHeight:g}=this.bindParameters.camera,_=this.renderingContext;let d=i.attachment,w=Math.ceil(u/2),T=Math.ceil(g/2);const C=5;this._blurParameters.blurRadius=this._logicalBlurRadius;for(let a=0;a<C;a++){const t=l.acquire(w,T,"glow horizontal",8);this._blurParameters.emissionsToDownsample=d,this._prepareFBO(t,w,T),_.bindTechnique(o,this.bindParameters,this._blurParameters),_.screen.draw();const e=l.acquire(w,T,"glow vertical",8);this._blurParameters.emissionsToDownsample=t.getTexture(),this._prepareFBO(e,w,T),_.bindTechnique(n,this.bindParameters,this._blurParameters),_.screen.draw(),t.release(),this._glowResults[a]=e,w=Math.ceil(w/2),T=Math.ceil(T/2),d=this._glowResults[a].getTexture(),this._blurParameters.blurRadius*=this._blurScalePerLod}const R=this.bindParameters.camera,q=a(R.eye);this._compositionParameters.atmosphereC=q**2-this._atmosphereRadius**2,this._compositionParameters.color=m,this._compositionParameters.emission=i.attachment,this._compositionParameters.lodTexture0=this._glowResults[0].getTexture(),this._compositionParameters.lodTexture1=this._glowResults[1].getTexture(),this._compositionParameters.lodTexture2=this._glowResults[2].getTexture(),this._compositionParameters.lodTexture3=this._glowResults[3].getTexture(),this._compositionParameters.lodTexture4=this._glowResults[4].getTexture();const x=l.acquire(m.descriptor.width,m.descriptor.height,this.produces);return x.acquireColor(b,8,"emissive glow"),this._prepareFBO(x,u,g,!0),_.bindTechnique(h,this.bindParameters,this._compositionParameters),_.screen.draw(),this._glowResults.forEach(t=>t.release()),x.attachDepth(r),x}getPreset(t){return 0===t?this._scatteringFactors.realistic.presets:this._intensity<=.5?d(this._scatteringFactors.cartographicMin.presets,this._scatteringFactors.cartographicDefault.presets,2*this._intensity):d(this._scatteringFactors.cartographicDefault.presets,this._scatteringFactors.cartographicMax.presets,2*(this._intensity-.5))}_prepareFBO(t,e,i,s=!1){const r=this.renderingContext;r.bindFramebuffer(t.fbo),r.setViewport(0,0,e,i),r.setClearColor(0,0,0,0),r.clear(16384),s&&r.clearBuffer(1,n)}get test(){return{compositionParameters:this._compositionParameters,blurParameters:this._blurParameters,setBlurLodCombination:t=>{this._compositionParameters.dispersionWeight=t},getPresets:this.getPreset(this._mode),setMinDisperse:(t,e)=>{0===this._mode?this._scatteringFactors.realistic.presets[t]=e:(this._scatteringFactors.cartographicMin.presets[t]=e,this._scatteringFactors.cartographicMax.presets[t]=e)},toggleTonemapping:t=>{this._compositionConfiguration.tonemappingEnabled=t,this.requestRender(1)}}}};t([r()],T.prototype,"consumes",void 0),t([r()],T.prototype,"produces",void 0),T=t([o("esri.views.3d.webgl-engine.effects.glow.GlowRenderNode")],T);export{T as GlowRenderNode};
2
+ import{__decorate as t}from"tslib";import{lerp as e}from"../../../../../core/mathUtils.js";import{watch as i,syncAndInitial as s}from"../../../../../core/reactiveUtils.js";import{property as r,subclass as o}from"../../../../../core/accessorSupport/decorators.js";import{length as a}from"../../../../../core/libs/gl-matrix-2/math/vec3.js";import{ZEROS as n}from"../../../../../core/libs/gl-matrix-2/factories/vec4f32.js";import{getReferenceEllipsoid as h}from"../../../../../geometry/ellipsoidUtils.js";import{InternalRenderCategory as c}from"../../../webgl.js";import{TransparentEnvironment as m}from"../TransparentEnvironment.js";import{G as l}from"../../../../../chunks/GlowBlur.glsl.js";import{GlowBlurTechnique as p}from"./GlowBlurTechnique.js";import{GlowBlurTechniqueConfiguration as u}from"./GlowBlurTechniqueConfiguration.js";import{G as g,a as _,m as d}from"../../../../../chunks/GlowComposition.glsl.js";import{GlowCompositionTechnique as f}from"./GlowCompositionTechnique.js";import{GlowCompositionTechniqueConfiguration as w}from"./GlowCompositionTechniqueConfiguration.js";import{ColorAttachment1 as b,DepthStencilAttachment as P}from"../../../../webgl/enums.js";let T=class extends m{constructor(t){super(t),this.consumes={required:[c.TRANSPARENT_ENVIRONMENT,"emissive"]},this.produces=c.TRANSPARENT_ENVIRONMENT,this._blurHorizontalConfiguration=new u,this._blurVerticalConfiguration=new u,this._compositionConfiguration=new w,this._compositionParameters=new g,this._blurParameters=new l,this._blurScalePerLod=3.06,this._logicalBlurRadius=.0037,this._mode=0,this._intensity=.5,this._scatteringFactors={realistic:new _([.8,.12,.05,.02,.01,0]),maximumFog:new _([0,.27,.6,1.05,1.58,2.1],!1),cartographicMin:new _([.4,.18,.25,.12,.05,0],!1),cartographicDefault:new _([1.17,1.08,.78,.4,.26,.11],!1),cartographicMax:new _([3.59,3.9,2.46,1.4,.93,.44],!1)},this._glowResults=new Array;const e=h(t.view.spatialReference);this._atmosphereRadius=e.radius+e.atmosphereHeight;t.view.stage.renderView.techniques.precompile(f,this._compositionConfiguration),this._compositionParameters.minDisperse=new _([.8,.12,.05,.02,.01,0])}initialize(){this.addHandles([i(()=>this._updateFogParameters(),()=>{},s),i(()=>this._updateParameters(),()=>{},s)])}_updateParameters(){const t=this.view.environment.lighting.glow;this._mode=null==t?this.view.environment.atmosphereEnabled?0:2:1,t&&(this._intensity=t.intensity),this._compositionParameters.minDisperse&&(this._compositionParameters.minDisperse.presets=this.getPreset(this._mode)),this.precompile(),this.requestRender(1)}_updateFogParameters(){const t=this.view.environment.weather;"sunny"===t.type||"cloudy"===t.type?this._compositionParameters.distanceModifier=0:this._compositionParameters.distanceModifier="foggy"===t.type?e(3e-5,.005,t.fogStrength**3):e(4e-6,2e-4,(t.precipitation??0)**3),this._compositionParameters.maxDisperse=this._scatteringFactors.maximumFog,this.requestRender(1)}precompile(){this.techniques.precompile(p,this._blurHorizontalConfiguration),this._blurVerticalConfiguration.glowStage=1,this.techniques.precompile(p,this._blurVerticalConfiguration),this._compositionConfiguration.blurEnabled=!0,this.techniques.precompile(f,this._compositionConfiguration),this._compositionConfiguration.blurEnabled=!1,this.techniques.precompile(f,this._compositionConfiguration)}render(t){const e=t.find(({name:t})=>t===c.TRANSPARENT_ENVIRONMENT),i=e.getAttachment(b);if(!i?.attachment)return e;const s=2!==this._mode;this._compositionConfiguration.blurEnabled=s;const r=e.getAttachment(P);if(!s){const t=this.techniques.get(f,this._compositionConfiguration);if(!t.compiled)return this.requestRender(1),e;const s=e.getTexture(),o=this.fboCache,{fullWidth:a,fullHeight:n}=this.bindParameters.camera,h=this.renderingContext,c=o.acquire(s.descriptor.width,s.descriptor.height,this.produces);return this._prepareFBO(c,a,n),this._compositionParameters.color=s,this._compositionParameters.emission=i.attachment,h.bindTechnique(t,this.bindParameters,this._compositionParameters),h.screen.draw(),c.attachDepth(r),c.attachColor(i,b),c}const o=this.techniques.get(p,this._blurHorizontalConfiguration),n=this.techniques.get(p,this._blurVerticalConfiguration),h=this.techniques.get(f,this._compositionConfiguration);if(!o.compiled||!n.compiled||!h.compiled)return this.requestRender(1),e;const m=e.getTexture(),l=this.fboCache,{fullWidth:u,fullHeight:g}=this.bindParameters.camera,_=this.renderingContext;let d=i.attachment,w=Math.ceil(u/2),T=Math.ceil(g/2);const C=5;this._blurParameters.blurRadius=this._logicalBlurRadius;for(let a=0;a<C;a++){const t=l.acquire(w,T,"glow horizontal",8);this._blurParameters.emissionsToDownsample=d,this._prepareFBO(t,w,T),_.bindTechnique(o,this.bindParameters,this._blurParameters),_.screen.draw();const e=l.acquire(w,T,"glow vertical",8);this._blurParameters.emissionsToDownsample=t.getTexture(),this._prepareFBO(e,w,T),_.bindTechnique(n,this.bindParameters,this._blurParameters),_.screen.draw(),t.release(),this._glowResults[a]=e,w=Math.ceil(w/2),T=Math.ceil(T/2),d=this._glowResults[a].getTexture(),this._blurParameters.blurRadius*=this._blurScalePerLod}const R=this.bindParameters.camera,q=a(R.eye);this._compositionParameters.atmosphereC=q**2-this._atmosphereRadius**2,this._compositionParameters.color=m,this._compositionParameters.emission=i.attachment,this._compositionParameters.lodTexture0=this._glowResults[0].getTexture(),this._compositionParameters.lodTexture1=this._glowResults[1].getTexture(),this._compositionParameters.lodTexture2=this._glowResults[2].getTexture(),this._compositionParameters.lodTexture3=this._glowResults[3].getTexture(),this._compositionParameters.lodTexture4=this._glowResults[4].getTexture();const x=l.acquire(m.descriptor.width,m.descriptor.height,this.produces);return x.acquireColor(b,8,"emissive glow"),this._prepareFBO(x,u,g,!0),_.bindTechnique(h,this.bindParameters,this._compositionParameters),_.screen.draw(),this._glowResults.forEach(t=>t.release()),x.attachDepth(r),x}getPreset(t){return 0===t?this._scatteringFactors.realistic.presets:this._intensity<=.5?d(this._scatteringFactors.cartographicMin.presets,this._scatteringFactors.cartographicDefault.presets,2*this._intensity):d(this._scatteringFactors.cartographicDefault.presets,this._scatteringFactors.cartographicMax.presets,2*(this._intensity-.5))}_prepareFBO(t,e,i,s=!1){const r=this.renderingContext;r.bindFramebuffer(t.fbo),r.setViewport(0,0,e,i),r.setClearColor(0,0,0,0),r.clear(16384),s&&r.clearBuffer(1,n)}get test(){return{compositionParameters:this._compositionParameters,blurParameters:this._blurParameters,setBlurLodCombination:t=>{this._compositionParameters.dispersionWeight=t},getPresets:this.getPreset(this._mode),setMinDisperse:(t,e)=>{0===this._mode?this._scatteringFactors.realistic.presets[t]=e:(this._scatteringFactors.cartographicMin.presets[t]=e,this._scatteringFactors.cartographicMax.presets[t]=e)},toggleTonemapping:t=>{this._compositionConfiguration.tonemappingEnabled=t,this.requestRender(1)}}}};t([r()],T.prototype,"consumes",void 0),t([r()],T.prototype,"produces",void 0),T=t([o("esri.views.3d.webgl-engine.effects.glow.GlowRenderNode")],T);export{T as GlowRenderNode};
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */
2
- import{safeToString as e}from"../../../../core/string.js";import{fromValues as t}from"../../../../core/libs/gl-matrix-2/factories/vec2f32.js";import{fromValues as r}from"../../../../core/libs/gl-matrix-2/factories/vec4f64.js";import{isColor as i}from"../core/shaderLibrary/ShaderOutput.js";import s from"../lib/GLMaterial.js";import{Material as n,MaterialParameters as o}from"../lib/Material.js";import{writePosition as a,writeNormal as l,writeBufferVec3 as c,writeBufferFloat as h}from"./internal/bufferWriterUtils.js";import{LineCalloutTechnique as u,layout as f}from"../shaders/LineCalloutTechnique.js";import{LineCalloutTechniqueConfiguration as p}from"../shaders/LineCalloutTechniqueConfiguration.js";import{alphaCutoff as g}from"../../../../webscene/support/AlphaCutoff.js";class m extends n{constructor(e,t){super(e,S),this.intersectDraped=void 0,this.produces=new Map([[17,e=>i(e)],[18,e=>i(e)]]),this._configuration=new p(t),this._uniqueMaterialIdentifier=d(this.parameters)}passParameters(){return this.parameters}getConfiguration(e,t){return super.getConfiguration(e,t,this._configuration),this._configuration.useVisibilityPixel=this.parameters.useVisibilityPixel,this._configuration.hasVerticalOffset=null!=this.parameters.verticalOffset,this._configuration.hasScreenSizePerspective=null!=this.parameters.screenSizePerspective,this._configuration.hudDepth=18===t.slot,this._configuration.hudDepthAlignStart=!!this.parameters.hudDepthAlignStart,this._configuration.screenCenterOffsetUnitsEnabled="screen"===this.parameters.centerOffsetUnits,this._configuration.hasSlicePlane=this.parameters.hasSlicePlane,this._configuration.terrainDepthTest=t.terrainDepthTest,this._configuration}get visible(){return this.parameters.color[3]>=g||(this.parameters.borderColor?.[3]??0)>=g}intersect(){}createGLMaterial(e){return new b(e)}createBufferWriter(){return new P}validateParameters(e){this._uniqueMaterialIdentifier=d(e)}get uniqueMaterialIdentifier(){return this._uniqueMaterialIdentifier}}function d({renderOccluded:t,isDecoration:r,horizontalScreenOffset:i,color:s,size:n,useVisibilityPixel:o,shaderPolygonOffset:a,hudDepthAlignStart:l,centerOffsetUnits:c,hasSlicePlane:h,screenSizePerspective:u,verticalOffset:f,borderColor:p}){return e`${t}:${r}:${i}:[${s}]:${n}:${o}:${a}:${l}:${c}:${h}:${null!=u}:{${f?.screenLength}:${f?.minWorldLength}:${f?.maxWorldLength}}:[${p}]`}class b extends s{beginSlot(e){return this.getTechnique(u,e)}}class S extends o{constructor(){super(...arguments),this.horizontalScreenOffset=0,this.color=r(0,0,0,1),this.size=1,this.useVisibilityPixel=!1,this.shaderPolygonOffset=1e-5,this.hudDepthAlignStart=!1,this.centerOffsetUnits="world",this.hasSlicePlane=!1}}const O=[t(0,0),t(1,0),t(0,1),t(1,0),t(1,1),t(0,1)];class P{constructor(){this.layout=f}elementCount(e){return 6*e.get("position").indices.length}write(e,t,r,i,s,n){a(r.get("position"),e,s.position,n,6),l(r.get("normal"),t,s.normal,n,6),c(r.get("centerOffset"),s.centerOffset,n,6),h(r.get("groundDistance"),s.groundDistance,n,6);for(let o=0;o<O.length;++o)s.uv0.setVec(n+o,O[o]);return null}}export{m as LineCalloutMaterial,S as Parameters,d as uniqueMaterialIdentifier};
2
+ import{safeToString as e}from"../../../../core/string.js";import{fromValues as t}from"../../../../core/libs/gl-matrix-2/factories/vec4f64.js";import{isColor as i}from"../core/shaderLibrary/ShaderOutput.js";import r from"../lib/GLMaterial.js";import{Material as s,MaterialParameters as n}from"../lib/Material.js";import{writeBufferVec2 as a,writePosition as o,writeNormal as l,writeBufferVec3 as u,writeBufferFloat as c}from"./internal/bufferWriterUtils.js";import{LineCalloutTechnique as h,layout as f,baseLayout as p}from"../shaders/LineCalloutTechnique.js";import{LineCalloutTechniqueConfiguration as g}from"../shaders/LineCalloutTechniqueConfiguration.js";import{alphaCutoff as m}from"../../../../webscene/support/AlphaCutoff.js";class d extends s{constructor(e,t){super(e,O),this.intersectDraped=void 0,this.produces=new Map([[17,e=>i(e)],[18,e=>i(e)]]),this._configuration=new g(t),this._uniqueMaterialIdentifier=b(this.parameters)}passParameters(){return this.parameters}getConfiguration(e,t){return super.getConfiguration(e,t,this._configuration),this._configuration.useVisibilityPixel=this.parameters.useVisibilityPixel,this._configuration.hasVerticalOffset=null!=this.parameters.verticalOffset,this._configuration.hasScreenSizePerspective=null!=this.parameters.screenSizePerspective,this._configuration.hudDepth=18===t.slot,this._configuration.hudDepthAlignStart=!!this.parameters.hudDepthAlignStart,this._configuration.screenCenterOffsetUnitsEnabled="screen"===this.parameters.centerOffsetUnits,this._configuration.hasSlicePlane=this.parameters.hasSlicePlane,this._configuration.terrainDepthTest=t.terrainDepthTest,this._configuration}get visible(){return this.parameters.color[3]>=m||(this.parameters.borderColor?.[3]??0)>=m}intersect(){}createGLMaterial(e){return new S(e)}createBufferWriter(){return new P}validateParameters(e){this._uniqueMaterialIdentifier=b(e)}get uniqueMaterialIdentifier(){return this._uniqueMaterialIdentifier}}function b({renderOccluded:t,isDecoration:i,horizontalScreenOffset:r,color:s,size:n,useVisibilityPixel:a,shaderPolygonOffset:o,hudDepthAlignStart:l,centerOffsetUnits:u,hasSlicePlane:c,screenSizePerspective:h,verticalOffset:f,borderColor:p}){return e`${t}:${i}:${r}:[${s}]:${n}:${a}:${o}:${l}:${u}:${c}:${null!=h}:{${f?.screenLength}:${f?.minWorldLength}:${f?.maxWorldLength}}:[${p}]`}class S extends r{beginSlot(e){return this.getTechnique(h,e)}}class O extends n{constructor(){super(...arguments),this.horizontalScreenOffset=0,this.color=t(0,0,0,1),this.size=1,this.useVisibilityPixel=!1,this.shaderPolygonOffset=1e-5,this.hudDepthAlignStart=!1,this.centerOffsetUnits="world",this.hasSlicePlane=!1}}class P{constructor(){this.layout=f,this.baseInstanceLayout=p}elementCount(e){return e.get("position").indices.length}elementCountBaseInstance(e){return e.get("uv0").indices.length}writeBaseInstance(e,t){const{uv0:i}=t;a(e.get("uv0"),i,0)}write(e,t,i,r,s,n){return o(i.get("position"),e,s.position,n),l(i.get("normal"),t,s.normal,n),u(i.get("centerOffset"),s.centerOffset,n),c(i.get("groundDistance"),s.groundDistance,n),null}}export{d as LineCalloutMaterial,O as Parameters,b as uniqueMaterialIdentifier};
@@ -0,0 +1,2 @@
1
+ /* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */
2
+ import{Attribute as t}from"../lib/Attribute.js";import{GeometryBaseInstance as n}from"../lib/GeometryBaseInstance.js";function e(){return o??=r(),o}function r(){const e=0,r=255,o=new t([e,e,e,r,r,e,r,r],[0,1,2,3],2,!0);return new n([["uv0",o]])}let o=null;export{e as getLineCalloutMaterialBaseInstance};
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */
2
- import{nextHighestPowerOfTwo as t}from"../../../../../core/mathUtils.js";import{disposeMaybe as e}from"../../../../../core/maybe.js";import{copy as r,invert as o,transpose as s}from"../../../../../core/libs/gl-matrix-2/math/mat4.js";import{create as n}from"../../../../../core/libs/gl-matrix-2/factories/mat4f64.js";import{glLayout as a}from"../../../support/buffer/glUtil.js";import{VertexArrayObject as f}from"../../lib/VertexArrayObject.js";import{getMaxItemCount as i,getMaxByteSize as u}from"../../lib/TextureBackedBuffer/TextureBackedBufferUtils.js";import{TextureBuffer as c}from"../../lib/TextureBackedBuffer/TextureBuffer.js";import{bufferRangePool as m}from"./BufferRange.js";import{DrawCommand as g}from"./DrawCommand.js";import{BaseInstanceData as l}from"./PerBaseInstanceData.js";import{VertexBuffer as h}from"../../../../webgl/VertexBuffer.js";class y{constructor(t,e){this._rctx=e;const r=t.createBufferWriter();this._bufferWriter=r,this._vaoCache=e.getVaoCache(a(r.layout));const o=["geometry"];"textureBufferLayout"in r&&null!=r.textureBufferLayout&&o.push("texture"),this.targetBuffers=o}maxElements(t){if("texture"===t){const t=this._targetLayout("texture");return null==t?0:i(this._rctx,t)}return Math.floor(x/this._targetStrideBytes(t))}_targetStrideBytes(t){return this._targetLayout(t)?.stride??0}_targetLayout(t){return"geometry"===t?this._bufferWriter.layout:"baseInstance"===t?this._bufferWriter.baseInstanceLayout:this._bufferWriter.textureBufferLayout}evaluateBufferAllocation(t,e,r,o){const s=this._targetStrideBytes("geometry"),n=e.reduce((t,{geometry:e})=>t+this.vertexElementCount(e),0),a=r.reduce((t,{geometry:e})=>t+this.vertexElementCount(e),0),f=Math.min((t+n-a)*s,x),i=o.vao?.buffer("geometry"),u=i?.sizeBytes??0;return f>b&&f<u/2?0:f>u?1:2}deleteBuffer(t){if(t.isInstanced)return t.instancedCommandVAOs?.dispose(),t.vao?.buffer("geometry")?.dispose(),t.vao?.disposeVAOOnly(),void(t.vao=null);this._vaoCache.deleteVao(t.vao),t.vaoEndElement=0,t.textureBuffer=e(t.textureBuffer),t.textureEndElement=0}createBaseInstanceData(t){const{_bufferWriter:e}=this;if(null==t||null==e.baseInstanceLayout||null==e.writeBaseInstance||null==e.elementCountBaseInstance)return null;const r=this._targetLayout("baseInstance"),o=e.elementCountBaseInstance(t.attributes),s=o*r.stride,n=new h(this._rctx,a(r));n.setSize(Math.ceil(s));const f=S(s),i=r.createView(f.buffer);e.writeBaseInstance(t.attributes,i),n.setSubData(f,0,0,s);const u=new g;return u.first=0,u.count=o,new l(t,n,u)}_allocateInstanceBuffer(t){const e=this._bufferWriter.layout,r=t*this._targetStrideBytes("geometry"),o=new h(this._rctx,a(e,1));return o.setSize(v(r)),o}_createInstancedVao(t,e){return new f(this._rctx,new Map([["baseInstance",t],["geometry",e]]))}reallocateBuffer(t,e,r){if(this.deleteBuffer(e),null!=t){const o=t.baseInstanceBuffer,s=this._allocateInstanceBuffer(r.geometry);e.vao=this._createInstancedVao(o,s)}else{const t=r.geometry*this._targetStrideBytes("geometry");e.vao=this._vaoCache.newVao(v(t))}const o=this._targetLayout("texture");if(null!=o){const t=v(r.texture*o.stride),s=Math.ceil(t/o.stride);e.textureBuffer=new c(this._rctx,o,s)}e.vaoEndElement=Math.floor((e.vao?.getByteLength("geometry")??0)/this._targetStrideBytes("geometry")),e.textureEndElement=e.textureBuffer?.itemCount??0}elementCount(t,e){const{attributes:r}=t;return"geometry"===e?this._bufferWriter.elementCount(r):"baseInstance"===e?this._bufferWriter.elementCountBaseInstance?.(r)??0:this._bufferWriter.elementCountTextureBuffer?.(r)??0}vertexElementCount(t){return this._bufferWriter.elementCount(t.attributes)}textureElementCount(t){return this._bufferWriter.elementCountTextureBuffer?.(t.attributes)??0}canGrow(t,e){const r=this.targetBuffers.map(r=>this._evaluateTargetBufferGrowth(r,t,e));return r.every(({canGrow:t})=>t)&&r.some(({needsToGrow:t})=>t)}_evaluateTargetBufferGrowth(t,e,r){const o=this._targetLayout(t),s=e.getTargetBuffer(t);if(null==o||null==s)return{needsToGrow:null!=o,canGrow:!0};return{needsToGrow:r[t]*o.stride>s.sizeBytes,canGrow:"geometry"===t?s.sizeBytes<v(x-b):s.sizeBytes<u(this._rctx,o)}}clearHoles(t,e){for(const r of this.targetBuffers){const o=this._targetStrideBytes(r),s=t[r],n=s.reduce((t,e)=>Math.max(t,e.numElements),0)*o,a=S(n);a.fill(0,0,n);for(const t of s)this._setTargetSubData(r,e,o,t,a)}}clearHolesMetal(t,e,r){const{targetBuffers:o}=this,s={};let n=0;for(const i of o){const t=e[i].numElements*this._targetStrideBytes(i);s[i]=n,n+=t}const a=S(n);a.fill(0,0,n);const f={};for(const i of o)f[i]=this._targetLayout(i)?.createView(a.buffer,s[i]);for(const i of t){const t=i.targetRanges.geometry;if(!(t.from>=e.geometry.from&&t.to<=e.geometry.to))continue;const r={};for(const s of o)r[s]=i.targetRanges[s].from-e[s].from;this._writeGeometry(i.geometry,f,r,i.targetRanges)}for(const i of o)this._setTargetSubData(i,r,this._targetStrideBytes(i),e[i],a,s[i])}writeRandomInstances(t,e,r){const{targetBuffers:o}=this,s={},n={},a={},f={};let i=0;for(const g of o)s[g]=t[g]*this._targetStrideBytes(g),n[g]=i,a[g]=0,f[g]=m.acquire(0,0),i+=s[g];const u=S(i),c={};for(const m of o)c[m]=this._targetLayout(m)?.createView(u.buffer,n[m]);for(const m of e){for(const t of o){const e=m.targetRanges[t],o=f[t];o.to===e.from||(o.numElements>0&&this._setTargetSubData(t,r,this._targetStrideBytes(t),f[t],u,n[t]),o.from=e.from,a[t]=0)}this._writeGeometry(m.geometry,c,a,m.targetRanges);for(const t of o){const e=m.targetRanges[t];a[t]+=e.numElements,f[t].to=e.to}}for(const g of o){const t=f[g];t.numElements>0&&this._setTargetSubData(g,r,this._targetStrideBytes(g),t,u,n[g]),m.release(f[g])}}writeInstanceRangeMetal(t,e,r){const{targetBuffers:o}=this,s={},n={};let a=0;for(const u of o)s[u]=t[u].numElements*this._targetStrideBytes(u),n[u]=a,a+=s[u];const f=S(a),i={};for(const u of o)i[u]=this._targetLayout(u)?.createView(f.buffer,n[u]);f.fill(0,0,a);for(const u of e){const e=u.targetRanges.geometry;if(!(e.from>=t.geometry.from&&e.to<=t.geometry.to))continue;const r={},s={};for(const n of o){const e=u.targetRanges[n];r[n]=e.from-t[n].from,s[n]=e}this._writeGeometry(u.geometry,i,r,s)}for(const u of o)t[u].numElements>0&&this._setTargetSubData(u,r,this._targetStrideBytes(u),t[u],f,n[u])}rebuildInstances(t,e,r){const{targetBuffers:o}=this,s={},n={},a={};let f=0;for(const c of o)s[c]=t[c]*this._targetStrideBytes(c),n[c]=f,f+=s[c],a[c]=0;const i=S(f),u={};for(const c of o)u[c]=this._targetLayout(c)?.createView(i.buffer,n[c]);for(const c of e){const t={},e={};for(const r of o){t[r]=a[r],a[r]+=this.elementCount(c.geometry.geometry,r);const o=c.targetRanges[r];o.from=t[r],o.to=a[r],e[r]=o}this._writeGeometry(c.geometry,u,t,e)}for(const c of o){const t=m.acquire(0,a[c]);this._setTargetSubData(c,r,this._targetStrideBytes(c),t,i,n[c]),m.release(t)}return a}updateInstance(t,e){const{targetBuffers:r}=this,o={},s={};let n=0;for(const u of r){const e=this._targetStrideBytes(u);o[u]=this.elementCount(t.geometry.geometry,u)*e,s[u]=n,n+=o[u]}const a=S(n),f={},i={};for(const u of r)i[u]=0,f[u]=this._targetLayout(u)?.createView(a.buffer,s[u]);this._writeGeometry(t.geometry,f,i,t.targetRanges);for(const u of r)this._setTargetSubData(u,e,this._targetStrideBytes(u),t.targetRanges[u],a,s[u])}updateInstancesMetal(t){const{targetBuffers:e}=this;for(const[r,o]of t){const t={};for(const r of e)t[r]=m.acquire(1/0,-1/0);for(const r of o)for(const o of e){const e=t[o],s=r.targetRanges[o];e.from=Math.min(e.from,s.from),e.to=Math.max(e.to,s.to)}this.writeInstanceRangeMetal(t,r.instances.values(),r);for(const r of e)m.release(t[r])}}_writeGeometry(t,e,n,a){const{_bufferWriter:f}=this;null!=f&&(r(B,t.transformation),B[12]-=t.localOrigin.vec3[0],B[13]-=t.localOrigin.vec3[1],B[14]-=t.localOrigin.vec3[2],o(_,B),s(_,_),f.write(B,_,t.geometry.attributes,t.geometry.olidColor,e.geometry,n.geometry,a.texture),null!=e.texture&&f.writeTextureBuffer&&f.writeTextureBuffer(B,_,t.geometry.attributes,e.texture,n.texture))}_setTargetSubData(t,e,r,o,s,n=0){if("geometry"===t){const a=e.getTargetBuffer(t);a?.setSubData(s,o.from*r,n,o.numElements*r)}else if("texture"===t){const r=e.getTargetBuffer(t);r?.setSubData(s.buffer,o.from,n,o.numElements)}}static prune(){w=new Uint8Array(b)}}const B=n(),_=n(),b=262144,d=1024,x=16777216;let w=new Uint8Array(b);function S(t){return w.byteLength<t&&(w=new Uint8Array(t)),w}function v(e){return e<=d?d:e<b?t(e):Math.max(Math.min(Math.ceil(1.5*e/b)*b,x),e)}export{y as VaoWriter};
2
+ import{nextHighestPowerOfTwo as t}from"../../../../../core/mathUtils.js";import{disposeMaybe as e}from"../../../../../core/maybe.js";import{copy as r,invert as o,transpose as s}from"../../../../../core/libs/gl-matrix-2/math/mat4.js";import{create as n}from"../../../../../core/libs/gl-matrix-2/factories/mat4f64.js";import{glLayout as a}from"../../../support/buffer/glUtil.js";import{VertexArrayObject as f}from"../../lib/VertexArrayObject.js";import{getMaxItemCount as i,getMaxByteSize as u}from"../../lib/TextureBackedBuffer/TextureBackedBufferUtils.js";import{TextureBuffer as c}from"../../lib/TextureBackedBuffer/TextureBuffer.js";import{bufferRangePool as m}from"./BufferRange.js";import{DrawCommand as l}from"./DrawCommand.js";import{BaseInstanceData as g}from"./PerBaseInstanceData.js";import{VertexBuffer as h}from"../../../../webgl/VertexBuffer.js";class y{constructor(t,e){this._rctx=e;const r=t.createBufferWriter();this._bufferWriter=r,this._vaoCache=e.getVaoCache(a(r.layout));const o=["geometry"];"textureBufferLayout"in r&&null!=r.textureBufferLayout&&o.push("texture"),this.targetBuffers=o}maxElements(t){if("texture"===t){const t=this._targetLayout("texture");return null==t?0:i(this._rctx,t)}return Math.floor(x/this._targetStrideBytes(t))}_targetStrideBytes(t){return this._targetLayout(t)?.stride??0}_targetLayout(t){return"geometry"===t?this._bufferWriter.layout:"baseInstance"===t?this._bufferWriter.baseInstanceLayout:this._bufferWriter.textureBufferLayout}evaluateBufferAllocation(t,e,r,o){const s=this._targetStrideBytes("geometry"),n=e.reduce((t,{geometry:e})=>t+this.vertexElementCount(e),0),a=r.reduce((t,{geometry:e})=>t+this.vertexElementCount(e),0),f=Math.min((t+n-a)*s,x),i=o.vao?.buffer("geometry"),u=i?.sizeBytes??0;return f>b&&f<u/2?0:f>u?1:2}deleteBuffer(t){if(t.isInstanced)return t.instancedCommandVAOs?.dispose(),t.vao?.buffer("geometry")?.dispose(),t.vao?.disposeVAOOnly(),void(t.vao=null);this._vaoCache.deleteVao(t.vao),t.vaoEndElement=0,t.textureBuffer=e(t.textureBuffer),t.textureEndElement=0}createBaseInstanceData(t){const{_bufferWriter:e}=this;if(null==t||null==e.baseInstanceLayout||null==e.writeBaseInstance||null==e.elementCountBaseInstance)return null;const r=this._targetLayout("baseInstance"),o=e.elementCountBaseInstance(t.attributes),s=o*r.stride,n=new h(this._rctx,a(r));n.setSize(Math.ceil(s));const f=S(s),i=r.createView(f.buffer);e.writeBaseInstance(t.attributes,i),n.setSubData(f,0,0,s);const u=new l;return u.first=0,u.count=o,new g(t,n,u)}_allocateInstanceBuffer(t){const e=this._bufferWriter.layout,r=t*this._targetStrideBytes("geometry"),o=new h(this._rctx,a(e,1));return o.setSize(I(r)),o}_createInstancedVao(t,e){return new f(this._rctx,new Map([["baseInstance",t],["geometry",e]]))}reallocateBuffer(t,e,r){if(this.deleteBuffer(e),null!=t){const o=t.baseInstanceBuffer,s=this._allocateInstanceBuffer(r.geometry);e.vao=this._createInstancedVao(o,s)}else{const t=r.geometry*this._targetStrideBytes("geometry");e.vao=this._vaoCache.newVao(I(t))}const o=this._targetLayout("texture");if(null!=o){const t=I(r.texture*o.stride),s=Math.ceil(t/o.stride);e.textureBuffer=new c(this._rctx,o,s)}e.vaoEndElement=Math.floor((e.vao?.getByteLength("geometry")??0)/this._targetStrideBytes("geometry")),e.textureEndElement=e.textureBuffer?.itemCount??0}elementCount(t,e){const{attributes:r}=t;return"geometry"===e?this._bufferWriter.elementCount(r):"baseInstance"===e?this._bufferWriter.elementCountBaseInstance?.(r)??0:this._bufferWriter.elementCountTextureBuffer?.(r)??0}vertexElementCount(t){return this._bufferWriter.elementCount(t.attributes)}textureElementCount(t){return this._bufferWriter.elementCountTextureBuffer?.(t.attributes)??0}canGrow(t,e){const r=this.targetBuffers.map(r=>this._evaluateTargetBufferGrowth(r,t,e));return r.every(({canGrow:t})=>t)&&r.some(({needsToGrow:t})=>t)}_evaluateTargetBufferGrowth(t,e,r){const o=this._targetLayout(t),s=e.getTargetBuffer(t);if(null==o||null==s)return{needsToGrow:null!=o,canGrow:!0};return{needsToGrow:r[t]*o.stride>s.sizeBytes,canGrow:"geometry"===t?s.sizeBytes<I(x-b):s.sizeBytes<u(this._rctx,o)}}clearHoles(t,e){for(const r of this.targetBuffers){const o=this._targetStrideBytes(r),s=t[r],n=s.reduce((t,e)=>Math.max(t,e.numElements),0)*o,a=S(n);a.fill(0,0,n);for(const t of s)this._setTargetSubData(r,e,o,t,a)}}clearHolesMetal(t,e,r){const{targetBuffers:o}=this,s={};let n=0;for(const i of o){const t=e[i].numElements*this._targetStrideBytes(i);s[i]=n,n+=v(t)}const a=S(n);a.fill(0,0,n);const f={};for(const i of o)f[i]=this._targetLayout(i)?.createView(a.buffer,s[i]);for(const i of t){const t=i.targetRanges.geometry;if(!(t.from>=e.geometry.from&&t.to<=e.geometry.to))continue;const r={};for(const s of o)r[s]=i.targetRanges[s].from-e[s].from;this._writeGeometry(i.geometry,f,r,i.targetRanges)}for(const i of o)this._setTargetSubData(i,r,this._targetStrideBytes(i),e[i],a,s[i])}writeRandomInstances(t,e,r){const{targetBuffers:o}=this,s={},n={},a={},f={};let i=0;for(const l of o)s[l]=t[l]*this._targetStrideBytes(l),n[l]=i,a[l]=0,f[l]=m.acquire(0,0),i+=v(s[l]);const u=S(i),c={};for(const m of o)c[m]=this._targetLayout(m)?.createView(u.buffer,n[m]);for(const m of e){for(const t of o){const e=m.targetRanges[t],o=f[t];o.to===e.from||(o.numElements>0&&this._setTargetSubData(t,r,this._targetStrideBytes(t),f[t],u,n[t]),o.from=e.from,a[t]=0)}this._writeGeometry(m.geometry,c,a,m.targetRanges);for(const t of o){const e=m.targetRanges[t];a[t]+=e.numElements,f[t].to=e.to}}for(const l of o){const t=f[l];t.numElements>0&&this._setTargetSubData(l,r,this._targetStrideBytes(l),t,u,n[l]),m.release(f[l])}}writeInstanceRangeMetal(t,e,r){const{targetBuffers:o}=this,s={},n={};let a=0;for(const u of o)s[u]=t[u].numElements*this._targetStrideBytes(u),n[u]=a,a+=v(s[u]);const f=S(a),i={};for(const u of o)i[u]=this._targetLayout(u)?.createView(f.buffer,n[u]);f.fill(0,0,a);for(const u of e){const e=u.targetRanges.geometry;if(!(e.from>=t.geometry.from&&e.to<=t.geometry.to))continue;const r={},s={};for(const n of o){const e=u.targetRanges[n];r[n]=e.from-t[n].from,s[n]=e}this._writeGeometry(u.geometry,i,r,s)}for(const u of o)t[u].numElements>0&&this._setTargetSubData(u,r,this._targetStrideBytes(u),t[u],f,n[u])}rebuildInstances(t,e,r){const{targetBuffers:o}=this,s={},n={},a={};let f=0;for(const c of o)s[c]=t[c]*this._targetStrideBytes(c),n[c]=f,f+=v(s[c]),a[c]=0;const i=S(f),u={};for(const c of o)u[c]=this._targetLayout(c)?.createView(i.buffer,n[c]);for(const c of e){const t={},e={};for(const r of o){t[r]=a[r],a[r]+=this.elementCount(c.geometry.geometry,r);const o=c.targetRanges[r];o.from=t[r],o.to=a[r],e[r]=o}this._writeGeometry(c.geometry,u,t,e)}for(const c of o){const t=m.acquire(0,a[c]);this._setTargetSubData(c,r,this._targetStrideBytes(c),t,i,n[c]),m.release(t)}return a}updateInstance(t,e){const{targetBuffers:r}=this,o={},s={};let n=0;for(const u of r){const e=this._targetStrideBytes(u);o[u]=this.elementCount(t.geometry.geometry,u)*e,s[u]=n,n+=v(o[u])}const a=S(n),f={},i={};for(const u of r)i[u]=0,f[u]=this._targetLayout(u)?.createView(a.buffer,s[u]);this._writeGeometry(t.geometry,f,i,t.targetRanges);for(const u of r)this._setTargetSubData(u,e,this._targetStrideBytes(u),t.targetRanges[u],a,s[u])}updateInstancesMetal(t){const{targetBuffers:e}=this;for(const[r,o]of t){const t={};for(const r of e)t[r]=m.acquire(1/0,-1/0);for(const r of o)for(const o of e){const e=t[o],s=r.targetRanges[o];e.from=Math.min(e.from,s.from),e.to=Math.max(e.to,s.to)}this.writeInstanceRangeMetal(t,r.instances.values(),r);for(const r of e)m.release(t[r])}}_writeGeometry(t,e,n,a){const{_bufferWriter:f}=this;null!=f&&(r(B,t.transformation),B[12]-=t.localOrigin.vec3[0],B[13]-=t.localOrigin.vec3[1],B[14]-=t.localOrigin.vec3[2],o(_,B),s(_,_),f.write(B,_,t.geometry.attributes,t.geometry.olidColor,e.geometry,n.geometry,a.texture),null!=e.texture&&f.writeTextureBuffer&&f.writeTextureBuffer(B,_,t.geometry.attributes,e.texture,n.texture))}_setTargetSubData(t,e,r,o,s,n=0){if("geometry"===t){const a=e.getTargetBuffer(t);a?.setSubData(s,o.from*r,n,o.numElements*r)}else if("texture"===t){const r=e.getTargetBuffer(t);r?.setSubData(s.buffer,o.from,n,o.numElements)}}static prune(){w=new Uint8Array(b)}}const B=n(),_=n(),b=262144,d=1024,x=16777216;let w=new Uint8Array(b);function S(t){return w.byteLength<t&&(w=new Uint8Array(t)),w}function v(t){return 4*Math.ceil(t/4)}function I(e){return e<=d?d:e<b?t(e):Math.max(Math.min(Math.ceil(1.5*e/b)*b,x),e)}export{y as VaoWriter};
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */
2
- import{__decorate as e}from"tslib";import{subclass as r}from"../../../../core/accessorSupport/decorators.js";import{glLayout as t}from"../../support/buffer/glUtil.js";import{newLayout as s}from"../../support/buffer/InterleavedLayout.js";import{ReloadableShader as o}from"../core/shaderTechnique/ReloadableShader.js";import{ShaderTechnique as i}from"../core/shaderTechnique/ShaderTechnique.js";import{drawBuffers as n,depthWrite as p,depthTest as a,blending as l}from"../lib/OrderIndependentTransparency.js";import{L as c}from"../../../../chunks/LineCallout.glsl.js";import{makePipelineState as d,defaultDepthWrite as f,defaultColorWrite as u}from"../../../webgl/renderState.js";let m=class extends i{constructor(e,r){super(e,r,t(h)),this.shader=new o(c,()=>import("./LineCallout.glsl.js"))}initializePipeline(e){const{hudDepth:r,terrainDepthTest:t,oitPass:s,hasEmission:o}=e,i=t?519:513;return d(r?{depthTest:{func:i},depthWrite:f}:{blending:l(s,!0),depthTest:a(s,i),colorWrite:u,depthWrite:p(e),drawBuffers:n(s,o)})}};m=e([r("esri.views.3d.webgl-engine.shaders.LineCalloutTechnique")],m);const h=s().vec3f("position").vec3f("normal").vec2f16("uv0").vec3f("centerOffset").f32("groundDistance");export{m as LineCalloutTechnique,h as layout};
2
+ import{__decorate as e}from"tslib";import{subclass as r}from"../../../../core/accessorSupport/decorators.js";import{glLayout as t}from"../../support/buffer/glUtil.js";import{newLayout as o}from"../../support/buffer/InterleavedLayout.js";import{ReloadableShader as s}from"../core/shaderTechnique/ReloadableShader.js";import{ShaderTechnique as i}from"../core/shaderTechnique/ShaderTechnique.js";import{drawBuffers as n,depthWrite as p,depthTest as a,blending as l}from"../lib/OrderIndependentTransparency.js";import{L as c}from"../../../../chunks/LineCallout.glsl.js";import{PrimitiveType as m}from"../../../webgl/enums.js";import{makePipelineState as d,defaultDepthWrite as u,defaultColorWrite as f}from"../../../webgl/renderState.js";let h=class extends i{constructor(e,r){super(e,r,t(T).concat(t(g))),this.shader=new s(c,()=>import("./LineCallout.glsl.js")),this.primitiveType=m.TRIANGLE_STRIP}initializePipeline(e){const{hudDepth:r,terrainDepthTest:t,oitPass:o,hasEmission:s}=e,i=t?519:513;return d(r?{depthTest:{func:i},depthWrite:u}:{blending:l(o,!0),depthTest:a(o,i),colorWrite:f,depthWrite:p(e),drawBuffers:n(o,s)})}};h=e([r("esri.views.3d.webgl-engine.shaders.LineCalloutTechnique")],h);const T=o().vec2u8("uv0",{glNormalized:!0}),g=o().vec3f("position").vec3f("normal").vec3f("centerOffset").f32("groundDistance");export{h as LineCalloutTechnique,T as baseLayout,g as layout};
@@ -161,7 +161,7 @@ export function fromRenderCoordinates<T1 extends ArrayLike<number>, T2 extends A
161
161
  * * Y: Northing
162
162
  * * Z: Elevation
163
163
  *
164
- * ![externalRenderers-renderCoordinateTransformAt](https://developers.arcgis.com/javascript/latest/assets/img/apiref/views/3d/externalRenderers-renderCoordinateTransformAt.png)
164
+ * ![externalRenderers-renderCoordinateTransformAt](https://developers.arcgis.com/javascript/latest/assets/images/apiref/views/3d/externalRenderers-renderCoordinateTransformAt.png)
165
165
  *
166
166
  * When [view.viewingMode](https://developers.arcgis.com/javascript/latest/references/core/views/SceneView/#viewingMode) is `global`, a linear
167
167
  * transformation does not take the curvature of the globe or other non-linear projection aspects into account. Thus,
@@ -8,19 +8,19 @@ export interface MagnifierProperties extends Partial<Pick<Magnifier, "factor" |
8
8
  * as a magnified image. An instance of this class can be accessed through
9
9
  * either [MapView.magnifier](https://developers.arcgis.com/javascript/latest/references/core/views/MapView/#magnifier) or [SceneView.magnifier](https://developers.arcgis.com/javascript/latest/references/core/views/SceneView/#magnifier).
10
10
  *
11
- * ![magnifier-overlay](https://developers.arcgis.com/javascript/latest/assets/img/apiref/views/magnifier/magnifier-overlay.png)
11
+ * ![magnifier-overlay](https://developers.arcgis.com/javascript/latest/assets/images/apiref/views/magnifier/magnifier-overlay.png)
12
12
  *
13
13
  * As you can see in the screenshot above, the Magnifier utilizes a default overlay image of a magnifier
14
14
  * glass. The overlay image is set using the [overlayUrl](https://developers.arcgis.com/javascript/latest/references/core/views/Magnifier/#overlayUrl) property. You can disable the overlay image by setting the [overlayEnabled](https://developers.arcgis.com/javascript/latest/references/core/views/Magnifier/#overlayEnabled) to `false`. The following
15
15
  * demonstrates using a Magnifier without an overlay image.
16
16
  *
17
- * ![magnifier-no-overlay](https://developers.arcgis.com/javascript/latest/assets/img/apiref/views/magnifier/magnifier-no-overlay.png)
17
+ * ![magnifier-no-overlay](https://developers.arcgis.com/javascript/latest/assets/images/apiref/views/magnifier/magnifier-no-overlay.png)
18
18
  *
19
19
  * The Magnifier contains a default mask image, which is set using the [maskUrl](https://developers.arcgis.com/javascript/latest/references/core/views/Magnifier/#maskUrl), and determines the visible area of the magnified image. Be default, the magnified area
20
20
  * is in the shape of a circle. The following demonstrates an example of a mask image set in the shape of a square. Note that the `overlayEnabled` was set
21
21
  * to `false` in this example as well to hide the overlay image, and only display the magnified area.
22
22
  *
23
- * ![magnifier-maskUrl](https://developers.arcgis.com/javascript/latest/assets/img/apiref/views/magnifier/magnifier-maskUrl.png)
23
+ * ![magnifier-maskUrl](https://developers.arcgis.com/javascript/latest/assets/images/apiref/views/magnifier/magnifier-maskUrl.png)
24
24
  *
25
25
  * @since 4.19
26
26
  * @see [MapView.magnifier](https://developers.arcgis.com/javascript/latest/references/core/views/MapView/#magnifier)