@arcgis/core 4.32.0-next.20250129 → 4.32.0-next.20250131

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 (1122) hide show
  1. package/WebScene.js +1 -1
  2. package/applications/Components/SelectionOperation.d.ts +1 -2
  3. package/applications/Components/SketchTooltipControls.d.ts +1 -2
  4. package/applications/Components/basemapUtils.d.ts +1 -2
  5. package/applications/Components/drawUtils.d.ts +1 -2
  6. package/applications/Components/fontUtils.d.ts +1 -2
  7. package/applications/Components/getDefaultUnits.d.ts +1 -2
  8. package/applications/Components/gfxUtils.d.ts +1 -2
  9. package/applications/Components/layerOriginUtils.d.ts +4 -2
  10. package/applications/Components/layersEffectsJsonUtils.d.ts +1 -2
  11. package/applications/Components/previewSymbol2D.d.ts +1 -2
  12. package/applications/Components/reactiveUtils.d.ts +1 -2
  13. package/applications/Components/styleUtils.d.ts +1 -2
  14. package/applications/Components/svgUtils.d.ts +3 -2
  15. package/applications/Components/webStyleSymbolUtils.d.ts +1 -2
  16. package/applications/Excalibur/videoViewUtils.d.ts +1 -2
  17. package/applications/ExperienceBuilder/sketchUtils.d.ts +3 -2
  18. package/applications/KnowledgeStudio/generalSharedKgUtils.d.ts +2 -2
  19. package/applications/KnowledgeStudio/layerInternalAccessUtils.d.ts +3 -2
  20. package/applications/KnowledgeStudio/resourceSerializationUtils.d.ts +4 -2
  21. package/applications/MapViewer/mediaUtils.d.ts +2 -2
  22. package/applications/MapViewer/templateUtils.d.ts +4 -2
  23. package/applications/SceneViewer/colorUtils.d.ts +1 -2
  24. package/applications/SceneViewer/devEnvironmentUtils.d.ts +3 -2
  25. package/applications/SceneViewer/layerUtils.d.ts +2 -2
  26. package/applications/SceneViewer/sceneViewerUtils.d.ts +15 -2
  27. package/applications/SceneViewer/symbolUtils.d.ts +1 -2
  28. package/applications/Urban/meshUtils.d.ts +1 -2
  29. package/applications/WebEditor/sketchUtils.d.ts +2 -2
  30. package/arcade.d.ts +2 -2
  31. package/assets/components/assets/icon/hammerCoin16.json +1 -0
  32. package/assets/components/assets/icon/hammerCoin24.json +1 -0
  33. package/assets/components/assets/icon/hammerCoin32.json +1 -0
  34. package/assets/components/assets/icon/hammerLock16.json +1 -0
  35. package/assets/components/assets/icon/hammerLock24.json +1 -0
  36. package/assets/components/assets/icon/hammerLock32.json +1 -0
  37. package/assets/esri/core/workers/RemoteClient.js +1 -1
  38. package/assets/esri/core/workers/chunks/{474c4f4c3b8649a807d9.js → 07c5f3fc475c57f5a7a7.js} +1 -1
  39. package/assets/esri/core/workers/chunks/{41f7287832d407f13ce5.js → 09b77f82c22530b44daa.js} +1 -1
  40. package/assets/esri/core/workers/chunks/22e11a8abc70b6571a2b.js +1 -0
  41. package/assets/esri/core/workers/chunks/{6eb829a7959df2269b0e.js → 24c94f97a76646d415ae.js} +1 -1
  42. package/assets/esri/core/workers/chunks/25c8cc30faade043c8dc.js.LICENSE.txt +1 -1
  43. package/assets/esri/core/workers/chunks/2ff63a71213f618377d6.js +1 -0
  44. package/assets/esri/core/workers/chunks/308ec51ff4a66f7fcb0d.js.LICENSE.txt +1 -1
  45. package/assets/esri/core/workers/chunks/34d464dacee52739c98c.js +1 -0
  46. package/assets/esri/core/workers/chunks/380d37ceb8cf52bad190.js +1 -0
  47. package/assets/esri/core/workers/chunks/39e38aab86dcee3f79be.js +1 -0
  48. package/assets/esri/core/workers/chunks/{1e17b693f2d974c3de2d.js → 3ec51b75d1a86dad6cb1.js} +1 -1
  49. package/assets/esri/core/workers/chunks/4263eee3247aaf4e64bf.js +1 -0
  50. package/assets/esri/core/workers/chunks/{b6440ddc595ba2ba8f8e.js → 448ee44c7f594e5b2551.js} +1 -1
  51. package/assets/esri/core/workers/chunks/476205ee4414ed80666a.js +1 -0
  52. package/assets/esri/core/workers/chunks/4b56c0c109e10d7409b8.js +1 -0
  53. package/assets/esri/core/workers/chunks/4da62cfe5e97fbc99306.js +1 -0
  54. package/assets/esri/core/workers/chunks/{1e1306527fb38c5894eb.js → 5a536de1ecae424bad05.js} +1 -1
  55. package/assets/esri/core/workers/chunks/{b65dcdf5818ee04aa7e0.js → 5adeb979f178944b9ce5.js} +1 -1
  56. package/assets/esri/core/workers/chunks/{f09c95c3d79205ee5a84.js → 5e9bf6d0db82526b8a8c.js} +5 -5
  57. package/assets/esri/core/workers/chunks/{429d19f4b59d9d265c2c.js → 6e25742ceedea7fb1b97.js} +1 -1
  58. package/assets/esri/core/workers/chunks/6e8905f20101c1f4509d.js.LICENSE.txt +1 -1
  59. package/assets/esri/core/workers/chunks/{a6e96d0d9ac3224c8f00.js → 6ef2514a6b7bbfb8e37d.js} +1 -1
  60. package/assets/esri/core/workers/chunks/72cf9192292e5c85c6df.js.LICENSE.txt +1 -1
  61. package/assets/esri/core/workers/chunks/{a591906154e12eb4fa43.js → 7810579a5a780933cdc9.js} +1 -1
  62. package/assets/esri/core/workers/chunks/{fa0d968733d581bc2e4d.js → 7d120f8b01fe719eb257.js} +1 -1
  63. package/assets/esri/core/workers/chunks/{09a897c342a45ef9125c.js → 7d3a441d2eb18d709ef9.js} +2 -2
  64. package/assets/esri/core/workers/chunks/{09a897c342a45ef9125c.js.LICENSE.txt → 7d3a441d2eb18d709ef9.js.LICENSE.txt} +1 -1
  65. package/assets/esri/core/workers/chunks/{d81fea1d36e7c2fbdffd.js → 881ddbdeb40336208e90.js} +1 -1
  66. package/assets/esri/core/workers/chunks/{ec9d5af8887854e821c8.js → 88cbaa91c495d86f4bb0.js} +1 -1
  67. package/assets/esri/core/workers/chunks/af2a70d33afb12bb536f.js +972 -0
  68. package/assets/esri/core/workers/chunks/b21b152fa15896577242.js.LICENSE.txt +1 -1
  69. package/assets/esri/core/workers/chunks/{4253b2802abb84afc428.js → b68bddd0c4ca91493543.js} +1 -1
  70. package/assets/esri/core/workers/chunks/bf9bc52a3c559108c19a.js +2 -0
  71. package/assets/esri/core/workers/chunks/{9b687465cc3863e14b29.js.LICENSE.txt → bf9bc52a3c559108c19a.js.LICENSE.txt} +1 -1
  72. package/assets/esri/core/workers/chunks/c249ad935f54d3b49ae3.js +1 -0
  73. package/assets/esri/core/workers/chunks/c4b0e3f7dcad6c7ea620.js +314 -0
  74. package/assets/esri/core/workers/chunks/c94ec324ecad77c53a87.js +1 -0
  75. package/assets/esri/core/workers/chunks/d1678945cf6a58f76863.js +1 -0
  76. package/assets/esri/core/workers/chunks/{9ed1691eab19dfb1cf04.js → d1718ad93e3271b0525e.js} +1 -1
  77. package/assets/esri/core/workers/chunks/d599ba865da87b487b1b.js +1 -0
  78. package/assets/esri/core/workers/chunks/dd46ec81cebe1a0a7b9c.js +1 -0
  79. package/assets/esri/core/workers/chunks/debfb75a94b66b58cbbc.js +1 -0
  80. package/assets/esri/core/workers/chunks/{c6135d2548d4a31298eb.js → e0de91eacf3a3b7eda55.js} +4 -4
  81. package/assets/esri/core/workers/chunks/e444ec05a8a1dfbd21a8.js +1 -0
  82. package/assets/esri/core/workers/chunks/{b84c28fe94b3cd7b480d.js → e4651d577d297386268e.js} +1 -1
  83. package/assets/esri/core/workers/chunks/{c80507443f896dbfaba6.js → e4b80c8f4c45fd78bde1.js} +1 -1
  84. package/assets/esri/core/workers/chunks/f8367c21fa91435c7c53.js +1 -0
  85. package/assets/esri/core/workers/chunks/{d4760e583dfac95dc8a1.js → ffa2b9d70830aed03a8f.js} +1 -1
  86. package/assets/esri/themes/base/_Ui.scss +6 -0
  87. package/assets/esri/themes/base/_core.scss +4 -0
  88. package/assets/esri/themes/base/_mixins.scss +0 -7
  89. package/assets/esri/themes/base/widgets/_BasemapLayerList.scss +0 -4
  90. package/assets/esri/themes/base/widgets/_BatchAttributeForm.scss +7 -2
  91. package/assets/esri/themes/base/widgets/_Bookmarks.scss +0 -4
  92. package/assets/esri/themes/base/widgets/_CatalogLayerList.scss +0 -4
  93. package/assets/esri/themes/base/widgets/_Features.scss +0 -4
  94. package/assets/esri/themes/base/widgets/_FilterBuilder.scss +24 -0
  95. package/assets/esri/themes/base/widgets/_FilterCondition.scss +12 -0
  96. package/assets/esri/themes/base/widgets/_LayerList.scss +0 -4
  97. package/assets/esri/themes/base/widgets/_OrientedImageryViewer.scss +1 -1
  98. package/assets/esri/themes/base/widgets/_TableList.scss +0 -4
  99. package/assets/esri/themes/dark/main.css +1 -1
  100. package/assets/esri/themes/light/main.css +1 -1
  101. package/assets/esri/themes/light/view.css +1 -1
  102. package/assets/esri/views/interactive/tooltip/t9n/Tooltip.json +1 -1
  103. package/assets/esri/views/interactive/tooltip/t9n/Tooltip_ar.json +1 -1
  104. package/assets/esri/views/interactive/tooltip/t9n/Tooltip_bg.json +1 -1
  105. package/assets/esri/views/interactive/tooltip/t9n/Tooltip_bs.json +1 -1
  106. package/assets/esri/views/interactive/tooltip/t9n/Tooltip_ca.json +1 -1
  107. package/assets/esri/views/interactive/tooltip/t9n/Tooltip_cs.json +1 -1
  108. package/assets/esri/views/interactive/tooltip/t9n/Tooltip_da.json +1 -1
  109. package/assets/esri/views/interactive/tooltip/t9n/Tooltip_de.json +1 -1
  110. package/assets/esri/views/interactive/tooltip/t9n/Tooltip_el.json +1 -1
  111. package/assets/esri/views/interactive/tooltip/t9n/Tooltip_en.json +1 -1
  112. package/assets/esri/views/interactive/tooltip/t9n/Tooltip_es.json +1 -1
  113. package/assets/esri/views/interactive/tooltip/t9n/Tooltip_et.json +1 -1
  114. package/assets/esri/views/interactive/tooltip/t9n/Tooltip_fi.json +1 -1
  115. package/assets/esri/views/interactive/tooltip/t9n/Tooltip_fr.json +1 -1
  116. package/assets/esri/views/interactive/tooltip/t9n/Tooltip_he.json +1 -1
  117. package/assets/esri/views/interactive/tooltip/t9n/Tooltip_hr.json +1 -1
  118. package/assets/esri/views/interactive/tooltip/t9n/Tooltip_hu.json +1 -1
  119. package/assets/esri/views/interactive/tooltip/t9n/Tooltip_id.json +1 -1
  120. package/assets/esri/views/interactive/tooltip/t9n/Tooltip_it.json +1 -1
  121. package/assets/esri/views/interactive/tooltip/t9n/Tooltip_ja.json +1 -1
  122. package/assets/esri/views/interactive/tooltip/t9n/Tooltip_ko.json +1 -1
  123. package/assets/esri/views/interactive/tooltip/t9n/Tooltip_lt.json +1 -1
  124. package/assets/esri/views/interactive/tooltip/t9n/Tooltip_lv.json +1 -1
  125. package/assets/esri/views/interactive/tooltip/t9n/Tooltip_nl.json +1 -1
  126. package/assets/esri/views/interactive/tooltip/t9n/Tooltip_no.json +1 -1
  127. package/assets/esri/views/interactive/tooltip/t9n/Tooltip_pl.json +1 -1
  128. package/assets/esri/views/interactive/tooltip/t9n/Tooltip_pt-BR.json +1 -1
  129. package/assets/esri/views/interactive/tooltip/t9n/Tooltip_pt-PT.json +1 -1
  130. package/assets/esri/views/interactive/tooltip/t9n/Tooltip_ro.json +1 -1
  131. package/assets/esri/views/interactive/tooltip/t9n/Tooltip_ru.json +1 -1
  132. package/assets/esri/views/interactive/tooltip/t9n/Tooltip_sk.json +1 -1
  133. package/assets/esri/views/interactive/tooltip/t9n/Tooltip_sl.json +1 -1
  134. package/assets/esri/views/interactive/tooltip/t9n/Tooltip_sr.json +1 -1
  135. package/assets/esri/views/interactive/tooltip/t9n/Tooltip_sv.json +1 -1
  136. package/assets/esri/views/interactive/tooltip/t9n/Tooltip_th.json +1 -1
  137. package/assets/esri/views/interactive/tooltip/t9n/Tooltip_tr.json +1 -1
  138. package/assets/esri/views/interactive/tooltip/t9n/Tooltip_uk.json +1 -1
  139. package/assets/esri/views/interactive/tooltip/t9n/Tooltip_vi.json +1 -1
  140. package/assets/esri/views/interactive/tooltip/t9n/Tooltip_zh-CN.json +1 -1
  141. package/assets/esri/views/interactive/tooltip/t9n/Tooltip_zh-HK.json +1 -1
  142. package/assets/esri/views/interactive/tooltip/t9n/Tooltip_zh-TW.json +1 -1
  143. package/assets/esri/widgets/BatchAttributeForm/t9n/BatchAttributeForm.json +1 -1
  144. package/assets/esri/widgets/BatchAttributeForm/t9n/BatchAttributeForm_ar.json +1 -1
  145. package/assets/esri/widgets/BatchAttributeForm/t9n/BatchAttributeForm_bg.json +1 -1
  146. package/assets/esri/widgets/BatchAttributeForm/t9n/BatchAttributeForm_bs.json +1 -1
  147. package/assets/esri/widgets/BatchAttributeForm/t9n/BatchAttributeForm_ca.json +1 -1
  148. package/assets/esri/widgets/BatchAttributeForm/t9n/BatchAttributeForm_cs.json +1 -1
  149. package/assets/esri/widgets/BatchAttributeForm/t9n/BatchAttributeForm_da.json +1 -1
  150. package/assets/esri/widgets/BatchAttributeForm/t9n/BatchAttributeForm_de.json +1 -1
  151. package/assets/esri/widgets/BatchAttributeForm/t9n/BatchAttributeForm_el.json +1 -1
  152. package/assets/esri/widgets/BatchAttributeForm/t9n/BatchAttributeForm_en.json +1 -1
  153. package/assets/esri/widgets/BatchAttributeForm/t9n/BatchAttributeForm_es.json +1 -1
  154. package/assets/esri/widgets/BatchAttributeForm/t9n/BatchAttributeForm_et.json +1 -1
  155. package/assets/esri/widgets/BatchAttributeForm/t9n/BatchAttributeForm_fi.json +1 -1
  156. package/assets/esri/widgets/BatchAttributeForm/t9n/BatchAttributeForm_fr.json +1 -1
  157. package/assets/esri/widgets/BatchAttributeForm/t9n/BatchAttributeForm_he.json +1 -1
  158. package/assets/esri/widgets/BatchAttributeForm/t9n/BatchAttributeForm_hr.json +1 -1
  159. package/assets/esri/widgets/BatchAttributeForm/t9n/BatchAttributeForm_hu.json +1 -1
  160. package/assets/esri/widgets/BatchAttributeForm/t9n/BatchAttributeForm_id.json +1 -1
  161. package/assets/esri/widgets/BatchAttributeForm/t9n/BatchAttributeForm_it.json +1 -1
  162. package/assets/esri/widgets/BatchAttributeForm/t9n/BatchAttributeForm_ja.json +1 -1
  163. package/assets/esri/widgets/BatchAttributeForm/t9n/BatchAttributeForm_ko.json +1 -1
  164. package/assets/esri/widgets/BatchAttributeForm/t9n/BatchAttributeForm_lt.json +1 -1
  165. package/assets/esri/widgets/BatchAttributeForm/t9n/BatchAttributeForm_lv.json +1 -1
  166. package/assets/esri/widgets/BatchAttributeForm/t9n/BatchAttributeForm_nl.json +1 -1
  167. package/assets/esri/widgets/BatchAttributeForm/t9n/BatchAttributeForm_no.json +1 -1
  168. package/assets/esri/widgets/BatchAttributeForm/t9n/BatchAttributeForm_pl.json +1 -1
  169. package/assets/esri/widgets/BatchAttributeForm/t9n/BatchAttributeForm_pt-BR.json +1 -1
  170. package/assets/esri/widgets/BatchAttributeForm/t9n/BatchAttributeForm_pt-PT.json +1 -1
  171. package/assets/esri/widgets/BatchAttributeForm/t9n/BatchAttributeForm_ro.json +1 -1
  172. package/assets/esri/widgets/BatchAttributeForm/t9n/BatchAttributeForm_ru.json +1 -1
  173. package/assets/esri/widgets/BatchAttributeForm/t9n/BatchAttributeForm_sk.json +1 -1
  174. package/assets/esri/widgets/BatchAttributeForm/t9n/BatchAttributeForm_sl.json +1 -1
  175. package/assets/esri/widgets/BatchAttributeForm/t9n/BatchAttributeForm_sr.json +1 -1
  176. package/assets/esri/widgets/BatchAttributeForm/t9n/BatchAttributeForm_sv.json +1 -1
  177. package/assets/esri/widgets/BatchAttributeForm/t9n/BatchAttributeForm_th.json +1 -1
  178. package/assets/esri/widgets/BatchAttributeForm/t9n/BatchAttributeForm_tr.json +1 -1
  179. package/assets/esri/widgets/BatchAttributeForm/t9n/BatchAttributeForm_uk.json +1 -1
  180. package/assets/esri/widgets/BatchAttributeForm/t9n/BatchAttributeForm_vi.json +1 -1
  181. package/assets/esri/widgets/BatchAttributeForm/t9n/BatchAttributeForm_zh-CN.json +1 -1
  182. package/assets/esri/widgets/BatchAttributeForm/t9n/BatchAttributeForm_zh-HK.json +1 -1
  183. package/assets/esri/widgets/BatchAttributeForm/t9n/BatchAttributeForm_zh-TW.json +1 -1
  184. package/assets/esri/widgets/Directions/t9n/Directions.json +1 -1
  185. package/assets/esri/widgets/Directions/t9n/Directions_ar.json +1 -1
  186. package/assets/esri/widgets/Directions/t9n/Directions_bg.json +1 -1
  187. package/assets/esri/widgets/Directions/t9n/Directions_bs.json +1 -1
  188. package/assets/esri/widgets/Directions/t9n/Directions_ca.json +1 -1
  189. package/assets/esri/widgets/Directions/t9n/Directions_cs.json +1 -1
  190. package/assets/esri/widgets/Directions/t9n/Directions_da.json +1 -1
  191. package/assets/esri/widgets/Directions/t9n/Directions_de.json +1 -1
  192. package/assets/esri/widgets/Directions/t9n/Directions_el.json +1 -1
  193. package/assets/esri/widgets/Directions/t9n/Directions_en.json +1 -1
  194. package/assets/esri/widgets/Directions/t9n/Directions_es.json +1 -1
  195. package/assets/esri/widgets/Directions/t9n/Directions_et.json +1 -1
  196. package/assets/esri/widgets/Directions/t9n/Directions_fi.json +1 -1
  197. package/assets/esri/widgets/Directions/t9n/Directions_fr.json +1 -1
  198. package/assets/esri/widgets/Directions/t9n/Directions_he.json +1 -1
  199. package/assets/esri/widgets/Directions/t9n/Directions_hr.json +1 -1
  200. package/assets/esri/widgets/Directions/t9n/Directions_hu.json +1 -1
  201. package/assets/esri/widgets/Directions/t9n/Directions_id.json +1 -1
  202. package/assets/esri/widgets/Directions/t9n/Directions_it.json +1 -1
  203. package/assets/esri/widgets/Directions/t9n/Directions_ja.json +1 -1
  204. package/assets/esri/widgets/Directions/t9n/Directions_ko.json +1 -1
  205. package/assets/esri/widgets/Directions/t9n/Directions_lt.json +1 -1
  206. package/assets/esri/widgets/Directions/t9n/Directions_lv.json +1 -1
  207. package/assets/esri/widgets/Directions/t9n/Directions_nl.json +1 -1
  208. package/assets/esri/widgets/Directions/t9n/Directions_no.json +1 -1
  209. package/assets/esri/widgets/Directions/t9n/Directions_pl.json +1 -1
  210. package/assets/esri/widgets/Directions/t9n/Directions_pt-BR.json +1 -1
  211. package/assets/esri/widgets/Directions/t9n/Directions_pt-PT.json +1 -1
  212. package/assets/esri/widgets/Directions/t9n/Directions_ro.json +1 -1
  213. package/assets/esri/widgets/Directions/t9n/Directions_ru.json +1 -1
  214. package/assets/esri/widgets/Directions/t9n/Directions_sk.json +1 -1
  215. package/assets/esri/widgets/Directions/t9n/Directions_sl.json +1 -1
  216. package/assets/esri/widgets/Directions/t9n/Directions_sr.json +1 -1
  217. package/assets/esri/widgets/Directions/t9n/Directions_sv.json +1 -1
  218. package/assets/esri/widgets/Directions/t9n/Directions_th.json +1 -1
  219. package/assets/esri/widgets/Directions/t9n/Directions_tr.json +1 -1
  220. package/assets/esri/widgets/Directions/t9n/Directions_uk.json +1 -1
  221. package/assets/esri/widgets/Directions/t9n/Directions_vi.json +1 -1
  222. package/assets/esri/widgets/Directions/t9n/Directions_zh-CN.json +1 -1
  223. package/assets/esri/widgets/Directions/t9n/Directions_zh-HK.json +1 -1
  224. package/assets/esri/widgets/Directions/t9n/Directions_zh-TW.json +1 -1
  225. package/assets/esri/widgets/Editor/t9n/Editor.json +1 -1
  226. package/assets/esri/widgets/Editor/t9n/Editor_ar.json +1 -1
  227. package/assets/esri/widgets/Editor/t9n/Editor_bg.json +1 -1
  228. package/assets/esri/widgets/Editor/t9n/Editor_bs.json +1 -1
  229. package/assets/esri/widgets/Editor/t9n/Editor_ca.json +1 -1
  230. package/assets/esri/widgets/Editor/t9n/Editor_cs.json +1 -1
  231. package/assets/esri/widgets/Editor/t9n/Editor_da.json +1 -1
  232. package/assets/esri/widgets/Editor/t9n/Editor_de.json +1 -1
  233. package/assets/esri/widgets/Editor/t9n/Editor_el.json +1 -1
  234. package/assets/esri/widgets/Editor/t9n/Editor_en.json +1 -1
  235. package/assets/esri/widgets/Editor/t9n/Editor_es.json +1 -1
  236. package/assets/esri/widgets/Editor/t9n/Editor_et.json +1 -1
  237. package/assets/esri/widgets/Editor/t9n/Editor_fi.json +1 -1
  238. package/assets/esri/widgets/Editor/t9n/Editor_fr.json +1 -1
  239. package/assets/esri/widgets/Editor/t9n/Editor_he.json +1 -1
  240. package/assets/esri/widgets/Editor/t9n/Editor_hr.json +1 -1
  241. package/assets/esri/widgets/Editor/t9n/Editor_hu.json +1 -1
  242. package/assets/esri/widgets/Editor/t9n/Editor_id.json +1 -1
  243. package/assets/esri/widgets/Editor/t9n/Editor_it.json +1 -1
  244. package/assets/esri/widgets/Editor/t9n/Editor_ja.json +1 -1
  245. package/assets/esri/widgets/Editor/t9n/Editor_ko.json +1 -1
  246. package/assets/esri/widgets/Editor/t9n/Editor_lt.json +1 -1
  247. package/assets/esri/widgets/Editor/t9n/Editor_lv.json +1 -1
  248. package/assets/esri/widgets/Editor/t9n/Editor_nl.json +1 -1
  249. package/assets/esri/widgets/Editor/t9n/Editor_no.json +1 -1
  250. package/assets/esri/widgets/Editor/t9n/Editor_pl.json +1 -1
  251. package/assets/esri/widgets/Editor/t9n/Editor_pt-BR.json +1 -1
  252. package/assets/esri/widgets/Editor/t9n/Editor_pt-PT.json +1 -1
  253. package/assets/esri/widgets/Editor/t9n/Editor_ro.json +1 -1
  254. package/assets/esri/widgets/Editor/t9n/Editor_ru.json +1 -1
  255. package/assets/esri/widgets/Editor/t9n/Editor_sk.json +1 -1
  256. package/assets/esri/widgets/Editor/t9n/Editor_sl.json +1 -1
  257. package/assets/esri/widgets/Editor/t9n/Editor_sr.json +1 -1
  258. package/assets/esri/widgets/Editor/t9n/Editor_sv.json +1 -1
  259. package/assets/esri/widgets/Editor/t9n/Editor_th.json +1 -1
  260. package/assets/esri/widgets/Editor/t9n/Editor_tr.json +1 -1
  261. package/assets/esri/widgets/Editor/t9n/Editor_uk.json +1 -1
  262. package/assets/esri/widgets/Editor/t9n/Editor_vi.json +1 -1
  263. package/assets/esri/widgets/Editor/t9n/Editor_zh-CN.json +1 -1
  264. package/assets/esri/widgets/Editor/t9n/Editor_zh-HK.json +1 -1
  265. package/assets/esri/widgets/Editor/t9n/Editor_zh-TW.json +1 -1
  266. package/assets/esri/widgets/FeatureForm/t9n/FeatureForm.json +1 -1
  267. package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_ar.json +1 -1
  268. package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_bg.json +1 -1
  269. package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_bs.json +1 -1
  270. package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_ca.json +1 -1
  271. package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_cs.json +1 -1
  272. package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_da.json +1 -1
  273. package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_de.json +1 -1
  274. package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_el.json +1 -1
  275. package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_en.json +1 -1
  276. package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_es.json +1 -1
  277. package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_et.json +1 -1
  278. package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_fi.json +1 -1
  279. package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_fr.json +1 -1
  280. package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_he.json +1 -1
  281. package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_hr.json +1 -1
  282. package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_hu.json +1 -1
  283. package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_id.json +1 -1
  284. package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_it.json +1 -1
  285. package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_ja.json +1 -1
  286. package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_ko.json +1 -1
  287. package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_lt.json +1 -1
  288. package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_lv.json +1 -1
  289. package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_nl.json +1 -1
  290. package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_no.json +1 -1
  291. package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_pl.json +1 -1
  292. package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_pt-BR.json +1 -1
  293. package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_pt-PT.json +1 -1
  294. package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_ro.json +1 -1
  295. package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_ru.json +1 -1
  296. package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_sk.json +1 -1
  297. package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_sl.json +1 -1
  298. package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_sr.json +1 -1
  299. package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_sv.json +1 -1
  300. package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_th.json +1 -1
  301. package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_tr.json +1 -1
  302. package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_uk.json +1 -1
  303. package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_vi.json +1 -1
  304. package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_zh-CN.json +1 -1
  305. package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_zh-HK.json +1 -1
  306. package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_zh-TW.json +1 -1
  307. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer.json +1 -1
  308. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_ar.json +1 -1
  309. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_bg.json +1 -1
  310. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_bs.json +1 -1
  311. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_ca.json +1 -1
  312. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_cs.json +1 -1
  313. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_da.json +1 -1
  314. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_de.json +1 -1
  315. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_el.json +1 -1
  316. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_en.json +1 -1
  317. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_es.json +1 -1
  318. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_et.json +1 -1
  319. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_fi.json +1 -1
  320. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_fr.json +1 -1
  321. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_he.json +1 -1
  322. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_hr.json +1 -1
  323. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_hu.json +1 -1
  324. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_id.json +1 -1
  325. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_it.json +1 -1
  326. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_ja.json +1 -1
  327. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_ko.json +1 -1
  328. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_lt.json +1 -1
  329. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_lv.json +1 -1
  330. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_nl.json +1 -1
  331. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_no.json +1 -1
  332. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_pl.json +1 -1
  333. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_pt-BR.json +1 -1
  334. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_pt-PT.json +1 -1
  335. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_ro.json +1 -1
  336. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_ru.json +1 -1
  337. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_sk.json +1 -1
  338. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_sl.json +1 -1
  339. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_sr.json +1 -1
  340. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_sv.json +1 -1
  341. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_th.json +1 -1
  342. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_tr.json +1 -1
  343. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_uk.json +1 -1
  344. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_vi.json +1 -1
  345. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_zh-CN.json +1 -1
  346. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_zh-HK.json +1 -1
  347. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_zh-TW.json +1 -1
  348. package/assets/esri/widgets/support/FilterBuilder/t9n/FilterBuilder.json +1 -0
  349. package/assets/esri/widgets/support/FilterBuilder/t9n/FilterBuilder_en.json +1 -0
  350. package/assets/esri/widgets/support/FilterCondition/t9n/FilterCondition.json +1 -0
  351. package/assets/esri/widgets/support/FilterCondition/t9n/FilterCondition_en.json +1 -0
  352. package/chunks/AtmosphereCompositing.glsl.js +2 -2
  353. package/chunks/BlendLayers.glsl.js +1 -1
  354. package/chunks/BlendWeights.glsl.js +1 -1
  355. package/chunks/BloomBlur.glsl.js +23 -23
  356. package/chunks/BloomComposition.glsl.js +3 -3
  357. package/chunks/BloomDepthAdjust.glsl.js +2 -2
  358. package/chunks/Blur.glsl.js +1 -1
  359. package/chunks/ChapmanAtmosphere.glsl.js +2 -2
  360. package/chunks/CheckerBoard.glsl.js +2 -2
  361. package/chunks/Clouds.glsl.js +14 -14
  362. package/chunks/CloudsComposition.glsl.js +1 -1
  363. package/chunks/ColorMaterial.glsl.js +1 -1
  364. package/chunks/ComponentShader.glsl.js +4 -4
  365. package/chunks/Compositing.glsl.js +2 -2
  366. package/chunks/DefaultMaterial.glsl.js +16 -15
  367. package/chunks/EdgeDetect.glsl.js +2 -2
  368. package/chunks/EdgeShader.glsl.js +2 -2
  369. package/chunks/FocusAreaColor.glsl.js +2 -2
  370. package/chunks/FocusAreaMask.glsl.js +1 -1
  371. package/chunks/Fog.glsl.js +3 -3
  372. package/chunks/HUDCompositing.glsl.js +1 -1
  373. package/chunks/HUDMaterial.glsl.js +24 -24
  374. package/chunks/Haze.glsl.js +3 -3
  375. package/chunks/HazeCompositing.glsl.js +2 -2
  376. package/chunks/Heatmap.glsl.js +1 -1
  377. package/chunks/HeatmapDensity.glsl.js +5 -5
  378. package/chunks/HighlightApply.glsl.js +2 -2
  379. package/chunks/HighlightDownsample.glsl.js +2 -2
  380. package/chunks/HighlightToSingle.glsl.js +2 -2
  381. package/chunks/ImageMaterial.glsl.js +4 -4
  382. package/chunks/LaserlinePath.glsl.js +1 -1
  383. package/chunks/Laserlines.glsl.js +1 -1
  384. package/chunks/LineCallout.glsl.js +1 -1
  385. package/chunks/LineMarker.glsl.js +8 -8
  386. package/chunks/Magnifier.glsl.js +4 -4
  387. package/chunks/MeasurementArrow.glsl.js +2 -2
  388. package/chunks/NativeLine.glsl.js +4 -4
  389. package/chunks/NoiseTextureAtlas.glsl.js +34 -34
  390. package/chunks/OITBlend.glsl.js +3 -3
  391. package/chunks/OverlayCompositing.glsl.js +1 -1
  392. package/chunks/Path.glsl.js +9 -9
  393. package/chunks/Pattern.glsl.js +3 -3
  394. package/chunks/PointRenderer.glsl.js +1 -1
  395. package/chunks/Precipitation.glsl.js +1 -1
  396. package/chunks/RasterColorizer.glsl.js +9 -9
  397. package/chunks/RealisticTree.glsl.js +3 -3
  398. package/chunks/RibbonLine.glsl.js +32 -32
  399. package/chunks/SSAO.glsl.js +2 -2
  400. package/chunks/SSAOBlur.glsl.js +1 -1
  401. package/chunks/ShadedColorMaterial.glsl.js +3 -3
  402. package/chunks/ShadowCastAccumulate.glsl.js +2 -2
  403. package/chunks/ShadowCastVisualize.glsl.js +4 -4
  404. package/chunks/ShadowHighlight.glsl.js +2 -2
  405. package/chunks/SimpleAtmosphere.glsl.js +8 -8
  406. package/chunks/SingleHighlightApply.glsl.js +1 -1
  407. package/chunks/SingleHighlightBlur.glsl.js +6 -7
  408. package/chunks/SlicePlaneMaterial.glsl.js +2 -2
  409. package/chunks/Stars.glsl.js +2 -2
  410. package/chunks/Terrain.glsl.js +2 -2
  411. package/chunks/TextureOnly.glsl.js +2 -2
  412. package/chunks/Viewshed.glsl.js +2 -2
  413. package/chunks/WaterSurface.glsl.js +7 -7
  414. package/core/accessorSupport/decorators.d.ts +4 -2
  415. package/core/jsonMap.js +1 -1
  416. package/core/lang.d.ts +1 -2
  417. package/core/libs/gl-matrix-2/factories/vec2f64.js +1 -1
  418. package/core/promiseUtils.d.ts +5 -2
  419. package/core/quantity.d.ts +3 -2
  420. package/core/reactiveUtils.d.ts +5 -2
  421. package/core/scheduling.d.ts +2 -2
  422. package/core/sql.d.ts +1 -2
  423. package/core/units.d.ts +9 -2
  424. package/core/urlUtils.d.ts +5 -2
  425. package/core/workers.d.ts +1 -2
  426. package/editing/templateUtils.js +1 -1
  427. package/form/elements/inputs.d.ts +21 -2
  428. package/form/elements.d.ts +13 -2
  429. package/geometry/coordinateFormatter.d.ts +11 -2
  430. package/geometry/geometryEngine.d.ts +37 -2
  431. package/geometry/geometryEngineAsync.d.ts +37 -2
  432. package/geometry/operators/affineTransformOperator.d.ts +3 -2
  433. package/geometry/operators/alphaShapeOperator.d.ts +3 -2
  434. package/geometry/operators/areaOperator.d.ts +2 -2
  435. package/geometry/operators/autoCompleteOperator.d.ts +2 -2
  436. package/geometry/operators/boundaryOperator.d.ts +3 -2
  437. package/geometry/operators/bufferOperator.d.ts +3 -2
  438. package/geometry/operators/centroidOperator.d.ts +2 -2
  439. package/geometry/operators/clipOperator.d.ts +3 -2
  440. package/geometry/operators/containsOperator.d.ts +3 -2
  441. package/geometry/operators/convexHullOperator.d.ts +4 -2
  442. package/geometry/operators/crossesOperator.d.ts +3 -2
  443. package/geometry/operators/cutOperator.d.ts +2 -2
  444. package/geometry/operators/densifyOperator.d.ts +3 -2
  445. package/geometry/operators/differenceOperator.d.ts +3 -2
  446. package/geometry/operators/disjointOperator.d.ts +3 -2
  447. package/geometry/operators/distanceOperator.d.ts +2 -2
  448. package/geometry/operators/equalsOperator.d.ts +3 -2
  449. package/geometry/operators/extendOperator.d.ts +2 -2
  450. package/geometry/operators/generalizeOperator.d.ts +3 -2
  451. package/geometry/operators/geodesicBufferOperator.d.ts +5 -2
  452. package/geometry/operators/geodesicProximityOperator.d.ts +6 -2
  453. package/geometry/operators/geodeticAreaOperator.d.ts +4 -2
  454. package/geometry/operators/geodeticDensifyOperator.d.ts +5 -2
  455. package/geometry/operators/geodeticDistanceOperator.d.ts +4 -2
  456. package/geometry/operators/geodeticLengthOperator.d.ts +4 -2
  457. package/geometry/operators/graphicBufferOperator.d.ts +2 -2
  458. package/geometry/operators/integrateOperator.d.ts +2 -2
  459. package/geometry/operators/intersectionOperator.d.ts +4 -2
  460. package/geometry/operators/intersectsOperator.d.ts +3 -2
  461. package/geometry/operators/isNearOperator.d.ts +2 -2
  462. package/geometry/operators/labelPointOperator.d.ts +3 -2
  463. package/geometry/operators/lengthOperator.d.ts +2 -2
  464. package/geometry/operators/linesToPolygonsOperator.d.ts +2 -2
  465. package/geometry/operators/locateBetweenOperator.d.ts +2 -2
  466. package/geometry/operators/minimumBoundingCircleOperator.d.ts +3 -2
  467. package/geometry/operators/multiPartToSinglePartOperator.d.ts +2 -2
  468. package/geometry/operators/offsetOperator.d.ts +3 -2
  469. package/geometry/operators/overlapsOperator.d.ts +3 -2
  470. package/geometry/operators/polygonOverlayOperator.d.ts +2 -2
  471. package/geometry/operators/polygonSlicerOperator.d.ts +4 -2
  472. package/geometry/operators/projectOperator.d.ts +5 -2
  473. package/geometry/operators/proximityOperator.d.ts +4 -2
  474. package/geometry/operators/relateOperator.d.ts +4 -2
  475. package/geometry/operators/reshapeOperator.d.ts +2 -2
  476. package/geometry/operators/shapePreservingProjectOperator.d.ts +5 -2
  477. package/geometry/operators/simplifyOperator.d.ts +4 -2
  478. package/geometry/operators/support/geographicTransformationUtils.d.ts +4 -2
  479. package/geometry/operators/symmetricDifferenceOperator.d.ts +3 -2
  480. package/geometry/operators/touchesOperator.d.ts +3 -2
  481. package/geometry/operators/unionOperator.d.ts +3 -2
  482. package/geometry/operators/withinOperator.d.ts +3 -2
  483. package/geometry/projection.d.ts +5 -2
  484. package/geometry/support/geodesicUtils.d.ts +5 -2
  485. package/geometry/support/jsonUtils.d.ts +2 -2
  486. package/geometry/support/meshUtils.d.ts +6 -2
  487. package/geometry/support/normalizeUtils.d.ts +2 -2
  488. package/geometry/support/typeUtils.js +1 -1
  489. package/geometry/support/webMercatorUtils.d.ts +6 -2
  490. package/geometry.d.ts +13 -2
  491. package/interfaces.d.ts +292 -126
  492. package/intl.d.ts +16 -2
  493. package/kernel.d.ts +2 -2
  494. package/layers/FeatureLayer.js +1 -1
  495. package/layers/LinkChartLayer.js +1 -1
  496. package/layers/catalog/catalogUtils.d.ts +2 -2
  497. package/layers/graphics/OptimizedGeometry.js +1 -1
  498. package/layers/graphics/dehydratedFeatures.js +1 -1
  499. package/layers/graphics/sources/ParquetSource.js +1 -1
  500. package/layers/knowledgeGraph/KnowledgeGraphSublayer.js +1 -1
  501. package/layers/knowledgeGraph/cypherUtils.d.ts +1 -2
  502. package/layers/knowledgeGraph/layerUtils.js +1 -1
  503. package/layers/knowledgeGraph/supportUtils.d.ts +4 -2
  504. package/layers/mixins/APIKeyMixin.d.ts +1 -1
  505. package/layers/mixins/ArcGISCachedService.d.ts +1 -1
  506. package/layers/mixins/ArcGISImageService.d.ts +1 -1
  507. package/layers/mixins/ArcGISMapService.d.ts +1 -1
  508. package/layers/mixins/BlendLayer.d.ts +1 -1
  509. package/layers/mixins/CustomParametersMixin.d.ts +1 -1
  510. package/layers/mixins/DisplayFilteredLayer.d.ts +1 -1
  511. package/layers/mixins/FeatureEffectLayer.d.ts +1 -1
  512. package/layers/mixins/FeatureLayerBase.d.ts +1 -1
  513. package/layers/mixins/FeatureReductionLayer.d.ts +1 -1
  514. package/layers/mixins/ImageryTileMixin.d.ts +1 -1
  515. package/layers/mixins/OperationalLayer.d.ts +1 -1
  516. package/layers/mixins/OrderedLayer.d.ts +1 -1
  517. package/layers/mixins/PortalLayer.d.ts +1 -1
  518. package/layers/mixins/PublishableLayer.d.ts +1 -1
  519. package/layers/mixins/RasterPresetRendererMixin.d.ts +1 -1
  520. package/layers/mixins/RefreshableLayer.d.ts +1 -1
  521. package/layers/mixins/ScaleRangeLayer.d.ts +1 -1
  522. package/layers/mixins/SceneService.d.ts +1 -1
  523. package/layers/mixins/SublayersOwner.d.ts +1 -1
  524. package/layers/mixins/TemporalLayer.d.ts +1 -1
  525. package/layers/mixins/TemporalSceneLayer.d.ts +1 -1
  526. package/layers/ogc/wcsUtils.d.ts +1 -2
  527. package/layers/ogc/wfsUtils.d.ts +2 -2
  528. package/layers/orientedImagery/transformations/imageToWorld.d.ts +1 -2
  529. package/layers/orientedImagery/transformations/utils.js +1 -1
  530. package/layers/orientedImagery/transformations/worldToImage.d.ts +1 -2
  531. package/layers/support/Sublayer.js +1 -1
  532. package/layers/support/arcadeUtils.d.ts +1 -2
  533. package/layers/support/csvUtils.d.ts +1 -2
  534. package/layers/support/domainUtils.js +1 -1
  535. package/layers/support/fieldUtils.d.ts +8 -2
  536. package/layers/support/parquetLayerUtils.js +1 -1
  537. package/layers/support/rasterFunctionConstants.d.ts +15 -2
  538. package/layers/support/rasterFunctionUtils.d.ts +105 -2
  539. package/libs/linkchartlayout/LinkChartLayout.js +1 -1
  540. package/package.json +3 -3
  541. package/pointCloudRenderers.d.ts +9 -2
  542. package/popup/content.d.ts +17 -2
  543. package/popup/support/UtilityNetworkAssociationType.js +1 -1
  544. package/rasterRenderers.d.ts +14 -2
  545. package/renderers/mixins/VisualVariablesMixin.d.ts +1 -1
  546. package/renderers/support/jsonUtils.d.ts +1 -2
  547. package/renderers/support/utils.d.ts +2 -2
  548. package/renderers.d.ts +16 -2
  549. package/rest/closestFacility.d.ts +1 -2
  550. package/rest/featureService/utils.d.ts +1 -2
  551. package/rest/find.d.ts +1 -2
  552. package/rest/geometryService.d.ts +21 -2
  553. package/rest/geoprocessor.d.ts +2 -2
  554. package/rest/identify.d.ts +1 -2
  555. package/rest/imageService.d.ts +19 -2
  556. package/rest/knowledgeGraphService.d.ts +11 -2
  557. package/rest/locator.d.ts +4 -2
  558. package/rest/networkService.d.ts +1 -2
  559. package/rest/networks/queryAssociations.d.ts +1 -2
  560. package/rest/networks/synthesizeAssociationGeometries.d.ts +1 -2
  561. package/rest/networks/trace.d.ts +1 -2
  562. package/rest/places.d.ts +3 -2
  563. package/rest/print.d.ts +2 -2
  564. package/rest/query.d.ts +11 -2
  565. package/rest/route.d.ts +1 -2
  566. package/rest/serviceArea.d.ts +1 -2
  567. package/rest/symbolService.d.ts +1 -2
  568. package/smartMapping/labels/bins.d.ts +1 -2
  569. package/smartMapping/labels/clusters.d.ts +1 -2
  570. package/smartMapping/popup/clusters.d.ts +1 -2
  571. package/smartMapping/popup/templates.d.ts +1 -2
  572. package/smartMapping/raster/renderers/classBreaks.d.ts +1 -2
  573. package/smartMapping/raster/renderers/colormap.d.ts +1 -2
  574. package/smartMapping/raster/renderers/flow.d.ts +1 -2
  575. package/smartMapping/raster/renderers/rgb.d.ts +1 -2
  576. package/smartMapping/raster/renderers/shadedRelief.d.ts +1 -2
  577. package/smartMapping/raster/renderers/stretch.d.ts +1 -2
  578. package/smartMapping/raster/renderers/uniqueValue.d.ts +1 -2
  579. package/smartMapping/raster/renderers/vectorField.d.ts +1 -2
  580. package/smartMapping/raster/support/colorRamps.d.ts +5 -2
  581. package/smartMapping/raster/support/utils.d.ts +2 -2
  582. package/smartMapping/renderers/color.d.ts +6 -2
  583. package/smartMapping/renderers/dotDensity.d.ts +1 -2
  584. package/smartMapping/renderers/dotDensity.js +1 -1
  585. package/smartMapping/renderers/heatmap.d.ts +2 -2
  586. package/smartMapping/renderers/heatmap.js +1 -1
  587. package/smartMapping/renderers/location.d.ts +1 -2
  588. package/smartMapping/renderers/opacity.d.ts +1 -2
  589. package/smartMapping/renderers/pieChart.d.ts +2 -2
  590. package/smartMapping/renderers/predominance.d.ts +1 -2
  591. package/smartMapping/renderers/relationship.d.ts +2 -2
  592. package/smartMapping/renderers/size.d.ts +5 -2
  593. package/smartMapping/renderers/support/rendererUtils.d.ts +1 -2
  594. package/smartMapping/renderers/type.d.ts +2 -2
  595. package/smartMapping/renderers/univariateColorSize.d.ts +2 -2
  596. package/smartMapping/statistics/heatmapStatistics.js +1 -1
  597. package/smartMapping/statistics/summaryStatisticsForAttributes.js +1 -1
  598. package/smartMapping/statistics/support/ageUtils.d.ts +1 -2
  599. package/smartMapping/statistics/support/predominanceUtils.d.ts +1 -2
  600. package/smartMapping/support/adapters/FeatureLayerAdapter.js +1 -1
  601. package/smartMapping/support/adapters/support/layerUtils.js +1 -1
  602. package/smartMapping/support/adapters/support/utils.js +1 -1
  603. package/smartMapping/support/utils.js +1 -1
  604. package/smartMapping/symbology/color.d.ts +7 -2
  605. package/smartMapping/symbology/dotDensity.d.ts +4 -2
  606. package/smartMapping/symbology/flow.d.ts +5 -2
  607. package/smartMapping/symbology/heatmap.d.ts +5 -2
  608. package/smartMapping/symbology/location.d.ts +3 -2
  609. package/smartMapping/symbology/pieChart.d.ts +5 -2
  610. package/smartMapping/symbology/predominance.d.ts +5 -2
  611. package/smartMapping/symbology/relationship.d.ts +5 -2
  612. package/smartMapping/symbology/size.d.ts +3 -2
  613. package/smartMapping/symbology/support/colorRamps.d.ts +4 -2
  614. package/smartMapping/symbology/type.d.ts +5 -2
  615. package/support/LayersMixin.d.ts +1 -1
  616. package/support/TablesMixin.d.ts +1 -1
  617. package/support/basemapDefinitions.js +1 -1
  618. package/support/featureFlags.js +1 -1
  619. package/support/popupUtils.d.ts +4 -2
  620. package/support/revision.js +1 -1
  621. package/support/timeUtils.d.ts +3 -2
  622. package/symbols/support/cimConversionUtils.d.ts +1 -2
  623. package/symbols/support/cimSymbolUtils.d.ts +6 -2
  624. package/symbols/support/jsonUtils.d.ts +1 -2
  625. package/symbols/support/symbolUtils.d.ts +7 -2
  626. package/symbols.d.ts +51 -2
  627. package/tables/elements.d.ts +9 -2
  628. package/unionTypes.d.ts +12 -2
  629. package/versionManagement/utils.d.ts +2 -2
  630. package/versionManagement/versionAdapters/utils.d.ts +2 -2
  631. package/views/2d/engine/webgl/shaderGraph/GraphShaderModule.js +1 -1
  632. package/views/2d/engine/webgl/shaderGraph/graph/ShaderGraphContext.js +1 -1
  633. package/views/2d/engine/webgl/shaderGraph/techniques/dotDensity/DotDensityPointShader.js +1 -1
  634. package/views/2d/engine/webgl/shaderGraph/techniques/dotDensity/DotDensityPolygonShader.js +1 -1
  635. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/AFeatureShader.js +1 -1
  636. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/BitmapShader.js +1 -1
  637. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/BlendShader.js +1 -1
  638. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/GridShader.js +1 -1
  639. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/HeatmapResolveShader.js +1 -1
  640. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/MagnifierShader.js +1 -1
  641. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/OpacityShader.js +1 -1
  642. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/OverlayShader.js +1 -1
  643. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/TestShader.js +1 -1
  644. package/views/2d/layers/FeatureLayerView2D.js +1 -1
  645. package/views/2d/layers/MediaLayerView2D.js +1 -1
  646. package/views/2d/layers/TileLayerView2D.js +1 -1
  647. package/views/2d/layers/features/layerAdapters/ParquetLayerAdapter.js +1 -1
  648. package/views/2d/layers/features/layerAdapters/SubtypeGroupLayerAdapter.js +1 -1
  649. package/views/2d/layers/features/layerAdapters/geometryUtils.js +1 -1
  650. package/views/2d/layers/features/sources/FeatureSourceQueryInfo.js +1 -1
  651. package/views/2d/layers/features/sources/strategies/AFetchLoadStrategy.js +1 -1
  652. package/views/2d/layers/features/sources/strategies/DrillDownTileLoadStrategy.js +1 -1
  653. package/views/2d/layers/features/sources/strategies/PagedTileLoadStrategy.js +1 -1
  654. package/views/2d/layers/features/sources/strategies/SnapshotLoadStrategy.js +1 -1
  655. package/views/2d/layers/features/support/FeatureSetReader.js +1 -1
  656. package/views/2d/layers/features/support/FeatureSetReaderIndirect.js +1 -1
  657. package/views/2d/layers/features/support/FeatureSetReaderPBF.js +1 -1
  658. package/views/2d/layers/features/support/FeatureSetReaderParquet.js +1 -1
  659. package/views/3d/environment/ChapmanApproximation.glsl.js +3 -3
  660. package/views/3d/environment/ChapmanAtmosphere.glsl.js +1 -1
  661. package/views/3d/environment/ChapmanAtmosphere.js +1 -1
  662. package/views/3d/environment/ChapmanAtmosphereTechnique.js +1 -1
  663. package/views/3d/environment/ChapmanRaymarching.glsl.js +4 -4
  664. package/views/3d/environment/Clouds.glsl.js +1 -1
  665. package/views/3d/environment/CloudsComposition.glsl.js +1 -1
  666. package/views/3d/environment/CloudsComposition.js +1 -1
  667. package/views/3d/environment/CloudsCompositionTechnique.js +1 -1
  668. package/views/3d/environment/CloudsRenderer.js +1 -1
  669. package/views/3d/environment/CloudsTechnique.js +1 -1
  670. package/views/3d/environment/EnvironmentRenderer.js +1 -1
  671. package/views/3d/environment/Fog.glsl.js +1 -1
  672. package/views/3d/environment/Fog.js +1 -1
  673. package/views/3d/environment/FogTechnique.js +1 -1
  674. package/views/3d/environment/LocalAtmosphere.js +1 -1
  675. package/views/3d/environment/MarsAtmosphere.js +1 -1
  676. package/views/3d/environment/NoiseTextureAtlas.glsl.js +1 -1
  677. package/views/3d/environment/NoiseTextureAtlas.js +1 -1
  678. package/views/3d/environment/NoiseTextureAtlasTechnique.js +1 -1
  679. package/views/3d/environment/Precipitation.glsl.js +1 -1
  680. package/views/3d/environment/Precipitation.js +1 -1
  681. package/views/3d/environment/PrecipitationTechnique.js +1 -1
  682. package/views/3d/environment/SimpleAtmosphere.glsl.js +1 -1
  683. package/views/3d/environment/SimpleAtmosphereTechnique.js +1 -1
  684. package/views/3d/interactive/editingTools/media/ControlPointOperations.js +1 -1
  685. package/views/3d/interactive/visualElements/LaserlineVisualElement.js +1 -1
  686. package/views/3d/interactive/visualElements/PointVisualElement.js +1 -1
  687. package/views/3d/layers/SceneLayerWorker.js +1 -1
  688. package/views/3d/layers/graphics/Graphics3DIconSymbolLayer.js +1 -1
  689. package/views/3d/layers/graphics/Labeler.js +1 -1
  690. package/views/3d/layers/graphics/pipeline/Feature3DPipelineWorker.js +1 -1
  691. package/views/3d/layers/graphics/pipeline/Feature3DPipelineWorkerHandle.js +1 -1
  692. package/views/3d/layers/graphics/pipeline/Tile.js +1 -1
  693. package/views/3d/layers/graphics/pipeline/Tile3DManager.js +1 -1
  694. package/views/3d/layers/graphics/pipeline/featureData/FeatureData.js +1 -1
  695. package/views/3d/layers/graphics/pipeline/featureData/FeatureDataStore.js +1 -1
  696. package/views/3d/layers/graphics/pipeline/featureSet/PBFPointFeatureSetView.js +1 -1
  697. package/views/3d/layers/graphics/pipeline/featureSet/TiledFeatureStore.js +1 -1
  698. package/views/3d/layers/graphics/pipeline/fetching/Tile3DFetcher.js +1 -1
  699. package/views/3d/layers/graphics/pipeline/rendering/FeaturePipelineRenderManager.js +1 -1
  700. package/views/3d/layers/graphics/wosrLoader.js +1 -1
  701. package/views/3d/layers/i3s/PointCloudRenderer.js +1 -1
  702. package/views/3d/layers/support/FastSymbolUpdates.js +1 -1
  703. package/views/3d/layers/support/FeatureTileMeasurements3D.js +1 -1
  704. package/views/3d/layers/support/FeatureTileTree3D.js +1 -1
  705. package/views/3d/layers/support/FeatureTileVisibility3D.js +1 -1
  706. package/views/3d/layers/support/MediaLayerInteraction.js +1 -1
  707. package/views/3d/layers/support/MediaLayerInteractionOptions.js +1 -1
  708. package/views/3d/support/PBFDecoder.js +1 -1
  709. package/views/3d/support/engineContent/sdfPrimitives.js +1 -1
  710. package/views/3d/terrain/BlendLayersTechnique.js +1 -1
  711. package/views/3d/terrain/OverlayRenderer.js +1 -1
  712. package/views/3d/terrain/RasterColorizerTechnique.js +1 -1
  713. package/views/3d/terrain/TerrainRenderer.js +1 -1
  714. package/views/3d/terrain/TileCompositor.js +1 -1
  715. package/views/3d/webgl/RenderNode.js +1 -1
  716. package/views/3d/webgl-engine/collections/Component/Material/ComponentMaterial.js +1 -1
  717. package/views/3d/webgl-engine/collections/Component/Material/ComponentTechnique.js +1 -1
  718. package/views/3d/webgl-engine/collections/Component/Material/ComponentTechniqueConfiguration.js +1 -1
  719. package/views/3d/webgl-engine/collections/Component/Material/shader/ComponentData.glsl.js +10 -10
  720. package/views/3d/webgl-engine/collections/Component/Material/shader/ComponentShader.glsl.js +1 -1
  721. package/views/3d/webgl-engine/collections/Component/Material/shader/DecodeSymbolColor.glsl.js +2 -2
  722. package/views/3d/webgl-engine/collections/Component/SourceGeometry.js +1 -1
  723. package/views/3d/webgl-engine/core/material/MaterialBase.js +1 -1
  724. package/views/3d/webgl-engine/core/renderPasses/RenderPassManager.js +1 -1
  725. package/views/3d/webgl-engine/core/shaderLibrary/ForwardLinearDepth.glsl.js +1 -1
  726. package/views/3d/webgl-engine/core/shaderLibrary/HighlightCellGridScreenSpacePass.glsl.js +1 -1
  727. package/views/3d/webgl-engine/core/shaderLibrary/HighlightReadBitmap.glsl.js +2 -2
  728. package/views/3d/webgl-engine/core/shaderLibrary/Laserline.glsl.js +3 -3
  729. package/views/3d/webgl-engine/core/shaderLibrary/NormalFromDepth.glsl.js +1 -1
  730. package/views/3d/webgl-engine/core/shaderLibrary/Offset.glsl.js +2 -2
  731. package/views/3d/webgl-engine/core/shaderLibrary/ScreenSizeScaling.glsl.js +1 -1
  732. package/views/3d/webgl-engine/core/shaderLibrary/ScreenSpacePass.glsl.js +2 -2
  733. package/views/3d/webgl-engine/core/shaderLibrary/Slice.glsl.js +3 -3
  734. package/views/3d/webgl-engine/core/shaderLibrary/Transform.glsl.js +1 -1
  735. package/views/3d/webgl-engine/core/shaderLibrary/attributes/InstancedDoublePrecision.glsl.js +9 -9
  736. package/views/3d/webgl-engine/core/shaderLibrary/attributes/NormalAttribute.glsl.js +1 -1
  737. package/views/3d/webgl-engine/core/shaderLibrary/attributes/ObjectAndLayerIdColor.glsl.js +1 -1
  738. package/views/3d/webgl-engine/core/shaderLibrary/attributes/PathVertexPosition.glsl.js +1 -1
  739. package/views/3d/webgl-engine/core/shaderLibrary/attributes/PositionAttribute.glsl.js +1 -1
  740. package/views/3d/webgl-engine/core/shaderLibrary/attributes/RibbonVertexPosition.glsl.js +1 -1
  741. package/views/3d/webgl-engine/core/shaderLibrary/attributes/SymbolColor.glsl.js +2 -2
  742. package/views/3d/webgl-engine/core/shaderLibrary/attributes/TextureCoordinateAttribute.glsl.js +1 -1
  743. package/views/3d/webgl-engine/core/shaderLibrary/attributes/VertexColor.glsl.js +1 -1
  744. package/views/3d/webgl-engine/core/shaderLibrary/attributes/VertexNormal.glsl.js +1 -1
  745. package/views/3d/webgl-engine/core/shaderLibrary/attributes/VertexPosition.glsl.js +2 -2
  746. package/views/3d/webgl-engine/core/shaderLibrary/attributes/VertexTangent.glsl.js +1 -1
  747. package/views/3d/webgl-engine/core/shaderLibrary/attributes/VertexTextureCoordinates.glsl.js +2 -2
  748. package/views/3d/webgl-engine/core/shaderLibrary/attributes/VerticalOffset.glsl.js +2 -2
  749. package/views/3d/webgl-engine/core/shaderLibrary/default/DefaultMaterialAuxiliaryPasses.glsl.js +1 -1
  750. package/views/3d/webgl-engine/core/shaderLibrary/hud/AlignPixel.glsl.js +3 -3
  751. package/views/3d/webgl-engine/core/shaderLibrary/hud/HUD.glsl.js +2 -2
  752. package/views/3d/webgl-engine/core/shaderLibrary/hud/HUDOcclusionPass.glsl.js +1 -1
  753. package/views/3d/webgl-engine/core/shaderLibrary/hud/HUDVisibility.glsl.js +1 -1
  754. package/views/3d/webgl-engine/core/shaderLibrary/output/Emissions.glsl.js +3 -3
  755. package/views/3d/webgl-engine/core/shaderLibrary/output/OutputDepth.glsl.js +1 -1
  756. package/views/3d/webgl-engine/core/shaderLibrary/output/OutputHighlight.glsl.js +3 -3
  757. package/views/3d/webgl-engine/core/shaderLibrary/output/ReadDepth.glsl.js +2 -2
  758. package/views/3d/webgl-engine/core/shaderLibrary/raster/Colormap.glsl.js +1 -1
  759. package/views/3d/webgl-engine/core/shaderLibrary/raster/Common.glsl.js +2 -2
  760. package/views/3d/webgl-engine/core/shaderLibrary/raster/Projection.glsl.js +1 -1
  761. package/views/3d/webgl-engine/core/shaderLibrary/raster/RasterColorizer.glsl.js +1 -1
  762. package/views/3d/webgl-engine/core/shaderLibrary/shading/AnalyticalSkyModel.glsl.js +1 -1
  763. package/views/3d/webgl-engine/core/shaderLibrary/shading/ComputeFragmentNormals.glsl.js +1 -1
  764. package/views/3d/webgl-engine/core/shaderLibrary/shading/ComputeMaterialColor.glsl.js +1 -1
  765. package/views/3d/webgl-engine/core/shaderLibrary/shading/ComputeNormalTexture.glsl.js +2 -2
  766. package/views/3d/webgl-engine/core/shaderLibrary/shading/EvaluateAmbientLighting.glsl.js +4 -4
  767. package/views/3d/webgl-engine/core/shaderLibrary/shading/EvaluateAmbientOcclusion.glsl.js +1 -1
  768. package/views/3d/webgl-engine/core/shaderLibrary/shading/EvaluateSceneLighting.glsl.js +1 -1
  769. package/views/3d/webgl-engine/core/shaderLibrary/shading/FoamRendering.glsl.js +1 -1
  770. package/views/3d/webgl-engine/core/shaderLibrary/shading/Gamma.glsl.js +4 -4
  771. package/views/3d/webgl-engine/core/shaderLibrary/shading/LineStipple.glsl.js +1 -1
  772. package/views/3d/webgl-engine/core/shaderLibrary/shading/MainLighting.glsl.js +2 -2
  773. package/views/3d/webgl-engine/core/shaderLibrary/shading/MarkerSizing.glsl.js +1 -1
  774. package/views/3d/webgl-engine/core/shaderLibrary/shading/MultipassGeometryTest.glsl.js +1 -1
  775. package/views/3d/webgl-engine/core/shaderLibrary/shading/NormalUtils.glsl.js +1 -1
  776. package/views/3d/webgl-engine/core/shaderLibrary/shading/Normals.glsl.js +1 -1
  777. package/views/3d/webgl-engine/core/shaderLibrary/shading/PhysicallyBasedRendering.glsl.js +1 -1
  778. package/views/3d/webgl-engine/core/shaderLibrary/shading/PhysicallyBasedRenderingParameters.glsl.js +7 -7
  779. package/views/3d/webgl-engine/core/shaderLibrary/shading/ReadBaseColorTexture.glsl.js +2 -2
  780. package/views/3d/webgl-engine/core/shaderLibrary/shading/ReadShadowMap.glsl.js +1 -1
  781. package/views/3d/webgl-engine/core/shaderLibrary/shading/ScreenSpaceReflections.glsl.js +1 -1
  782. package/views/3d/webgl-engine/core/shaderLibrary/shading/TerrainDepthTest.glsl.js +2 -2
  783. package/views/3d/webgl-engine/core/shaderLibrary/shading/TextureTransformUV.glsl.js +1 -1
  784. package/views/3d/webgl-engine/core/shaderLibrary/shading/VisualVariables.glsl.js +1 -1
  785. package/views/3d/webgl-engine/core/shaderLibrary/shading/Water.glsl.js +1 -1
  786. package/views/3d/webgl-engine/core/shaderLibrary/shading/WaterDistortion.glsl.js +1 -1
  787. package/views/3d/webgl-engine/core/shaderLibrary/terrain/BackgroundGrid.glsl.js +1 -1
  788. package/views/3d/webgl-engine/core/shaderLibrary/terrain/Overlay.glsl.js +3 -3
  789. package/views/3d/webgl-engine/core/shaderLibrary/terrain/TerrainTexture.glsl.js +1 -1
  790. package/views/3d/webgl-engine/core/shaderLibrary/terrain/TileBackground.glsl.js +6 -6
  791. package/views/3d/webgl-engine/core/shaderLibrary/terrain/TileComposite.glsl.js +1 -1
  792. package/views/3d/webgl-engine/core/shaderLibrary/util/BlendLayers.glsl.js +1 -1
  793. package/views/3d/webgl-engine/core/shaderLibrary/util/BlendModes.glsl.js +1 -1
  794. package/views/3d/webgl-engine/core/shaderLibrary/util/CameraSpace.glsl.js +2 -2
  795. package/views/3d/webgl-engine/core/shaderLibrary/util/CloudsParallaxShading.glsl.js +3 -3
  796. package/views/3d/webgl-engine/core/shaderLibrary/util/ColorConversion.glsl.js +1 -1
  797. package/views/3d/webgl-engine/core/shaderLibrary/util/DiscardOrAdjustAlpha.glsl.js +1 -1
  798. package/views/3d/webgl-engine/core/shaderLibrary/util/DoublePrecision.glsl.js +1 -1
  799. package/views/3d/webgl-engine/core/shaderLibrary/util/IsNaN.glsl.js +2 -2
  800. package/views/3d/webgl-engine/core/shaderLibrary/util/LocalFromScreenSpace.glsl.js +2 -2
  801. package/views/3d/webgl-engine/core/shaderLibrary/util/MixExternalColor.glsl.js +1 -1
  802. package/views/3d/webgl-engine/core/shaderLibrary/util/RgbaFloat16Encoding.glsl.js +1 -1
  803. package/views/3d/webgl-engine/core/shaderLibrary/util/RgbaFloatEncoding.glsl.js +1 -1
  804. package/views/3d/webgl-engine/core/shaderLibrary/util/ScreenSizePerspective.glsl.js +1 -1
  805. package/views/3d/webgl-engine/core/shaderLibrary/util/TextureAtlasLookup.glsl.js +1 -1
  806. package/views/3d/webgl-engine/core/shaderLibrary/util/TextureOnly.glsl.js +1 -1
  807. package/views/3d/webgl-engine/core/shaderModules/BooleanBindUniform.js +1 -1
  808. package/views/3d/webgl-engine/core/shaderModules/BooleanPassUniform.js +1 -1
  809. package/views/3d/webgl-engine/core/shaderModules/Float2BindUniform.js +1 -1
  810. package/views/3d/webgl-engine/core/shaderModules/Float2DrawUniform.js +1 -1
  811. package/views/3d/webgl-engine/core/shaderModules/Float2PassUniform.js +1 -1
  812. package/views/3d/webgl-engine/core/shaderModules/Float3BindUniform.js +1 -1
  813. package/views/3d/webgl-engine/core/shaderModules/Float3DrawUniform.js +1 -1
  814. package/views/3d/webgl-engine/core/shaderModules/Float3PassUniform.js +1 -1
  815. package/views/3d/webgl-engine/core/shaderModules/Float4BindUniform.js +1 -1
  816. package/views/3d/webgl-engine/core/shaderModules/Float4DrawUniform.js +1 -1
  817. package/views/3d/webgl-engine/core/shaderModules/Float4PassUniform.js +1 -1
  818. package/views/3d/webgl-engine/core/shaderModules/Float4sPassUniform.js +1 -1
  819. package/views/3d/webgl-engine/core/shaderModules/FloatBindUniform.js +1 -1
  820. package/views/3d/webgl-engine/core/shaderModules/FloatDrawUniform.js +1 -1
  821. package/views/3d/webgl-engine/core/shaderModules/FloatPassUniform.js +1 -1
  822. package/views/3d/webgl-engine/core/shaderModules/FloatsPassUniform.js +1 -1
  823. package/views/3d/webgl-engine/core/shaderModules/Integer2BindUniform.js +1 -1
  824. package/views/3d/webgl-engine/core/shaderModules/Integer2PassUniform.js +1 -1
  825. package/views/3d/webgl-engine/core/shaderModules/IntegerBindUniform.js +1 -1
  826. package/views/3d/webgl-engine/core/shaderModules/IntegerDrawUniform.js +1 -1
  827. package/views/3d/webgl-engine/core/shaderModules/IntegerPassUniform.js +1 -1
  828. package/views/3d/webgl-engine/core/shaderModules/Matrix3DrawUniform.js +1 -1
  829. package/views/3d/webgl-engine/core/shaderModules/Matrix3PassUniform.js +1 -1
  830. package/views/3d/webgl-engine/core/shaderModules/Matrix4BindUniform.js +1 -1
  831. package/views/3d/webgl-engine/core/shaderModules/Matrix4DrawUniform.js +1 -1
  832. package/views/3d/webgl-engine/core/shaderModules/Matrix4PassUniform.js +1 -1
  833. package/views/3d/webgl-engine/core/shaderModules/Matrix4sDrawUniform.js +1 -1
  834. package/views/3d/webgl-engine/core/shaderModules/Matrix4sPassUniform.js +1 -1
  835. package/views/3d/webgl-engine/core/shaderModules/Texture2DBindUniform.js +1 -1
  836. package/views/3d/webgl-engine/core/shaderModules/Texture2DDrawUniform.js +1 -1
  837. package/views/3d/webgl-engine/core/shaderModules/Texture2DPassUniform.js +1 -1
  838. package/views/3d/webgl-engine/core/shaderModules/TextureCubeBindUniform.js +1 -1
  839. package/views/3d/webgl-engine/core/shaderModules/glsl.js +5 -0
  840. package/views/3d/webgl-engine/core/shaderTechnique/ShaderTechnique.js +1 -1
  841. package/views/3d/webgl-engine/core/shaderTechnique/ShaderTechniqueConfiguration.js +1 -1
  842. package/views/3d/webgl-engine/core/shaderTechnique/ShaderTechniqueRepository.js +1 -1
  843. package/views/3d/webgl-engine/effects/OpaqueEnvironment.js +1 -1
  844. package/views/3d/webgl-engine/effects/RenderPlugin.js +1 -1
  845. package/views/3d/webgl-engine/effects/RenderPluginManager.js +1 -1
  846. package/views/3d/webgl-engine/effects/TransparentEnvironment.js +1 -1
  847. package/views/3d/webgl-engine/effects/blit/Blit.js +1 -1
  848. package/views/3d/webgl-engine/effects/bloom/BloomBlur.glsl.js +1 -1
  849. package/views/3d/webgl-engine/effects/bloom/BloomBlurTechnique.js +1 -1
  850. package/views/3d/webgl-engine/effects/bloom/BloomComposition.glsl.js +1 -1
  851. package/views/3d/webgl-engine/effects/bloom/BloomCompositionTechnique.js +1 -1
  852. package/views/3d/webgl-engine/effects/bloom/BloomDepthAdjust.glsl.js +1 -1
  853. package/views/3d/webgl-engine/effects/bloom/BloomDepthAdjustTechnique.js +1 -1
  854. package/views/3d/webgl-engine/effects/bloom/BloomRenderNode.js +1 -1
  855. package/views/3d/webgl-engine/effects/debug/RenderNodeVisualizerNode.js +1 -1
  856. package/views/3d/webgl-engine/effects/focusArea/FocusAreaColorNode.js +5 -0
  857. package/views/3d/webgl-engine/effects/focusArea/FocusAreaColorTechnique.js +1 -1
  858. package/views/3d/webgl-engine/effects/focusArea/FocusAreaMaskNode.js +5 -0
  859. package/views/3d/webgl-engine/effects/focusArea/FocusAreaMaskTechnique.js +1 -1
  860. package/views/3d/webgl-engine/effects/geometry/RenderOccludedRenderNode.js +1 -1
  861. package/views/3d/webgl-engine/effects/haze/Haze.glsl.js +1 -1
  862. package/views/3d/webgl-engine/effects/haze/Haze.js +1 -1
  863. package/views/3d/webgl-engine/effects/haze/HazeCompositing.glsl.js +1 -1
  864. package/views/3d/webgl-engine/effects/haze/HazeCompositingTechnique.js +1 -1
  865. package/views/3d/webgl-engine/effects/haze/HazeTechnique.js +1 -1
  866. package/views/3d/webgl-engine/effects/highlight/Highlight.js +1 -1
  867. package/views/3d/webgl-engine/effects/highlight/HighlightApplyTechnique.js +1 -1
  868. package/views/3d/webgl-engine/effects/highlight/HighlightDownsampleTechnique.js +1 -1
  869. package/views/3d/webgl-engine/effects/highlight/HighlightPassParameters.js +1 -1
  870. package/views/3d/webgl-engine/effects/highlight/HighlightToSingleTechnique.js +1 -1
  871. package/views/3d/webgl-engine/effects/highlight/ShadowHighlight.js +1 -1
  872. package/views/3d/webgl-engine/effects/highlight/ShadowHighlightTechnique.js +1 -1
  873. package/views/3d/webgl-engine/effects/highlight/SingleHighlightApplyTechnique.js +1 -1
  874. package/views/3d/webgl-engine/effects/highlight/SingleHighlightBlurTechnique.js +1 -1
  875. package/views/3d/webgl-engine/effects/laserlines/LaserLineRenderer.js +1 -1
  876. package/views/3d/webgl-engine/effects/laserlines/LaserlinePathTechnique.js +1 -1
  877. package/views/3d/webgl-engine/effects/laserlines/LaserlineTechnique.js +1 -1
  878. package/views/3d/webgl-engine/effects/magnifier/Magnifier.js +1 -1
  879. package/views/3d/webgl-engine/effects/magnifier/MagnifierTechnique.js +1 -1
  880. package/views/3d/webgl-engine/effects/smaa/SMAA.js +1 -1
  881. package/views/3d/webgl-engine/effects/smaa/SMAABlendWeightsTechnique.js +1 -1
  882. package/views/3d/webgl-engine/effects/smaa/SMAABlurTechnique.js +1 -1
  883. package/views/3d/webgl-engine/effects/smaa/SMAAEdgeDetectTechnique.js +1 -1
  884. package/views/3d/webgl-engine/effects/smaa/SMAAPassParameters.js +1 -1
  885. package/views/3d/webgl-engine/effects/ssao/SSAO.js +1 -1
  886. package/views/3d/webgl-engine/effects/ssao/SSAOBlurTechnique.js +1 -1
  887. package/views/3d/webgl-engine/effects/ssao/SSAOParameters.js +1 -1
  888. package/views/3d/webgl-engine/effects/ssao/SSAOTechnique.js +1 -1
  889. package/views/3d/webgl-engine/effects/stars/Stars.glsl.js +1 -1
  890. package/views/3d/webgl-engine/effects/stars/Stars.js +1 -1
  891. package/views/3d/webgl-engine/effects/stars/StarsTechnique.js +1 -1
  892. package/views/3d/webgl-engine/effects/transparency/OITBlend.glsl.js +1 -1
  893. package/views/3d/webgl-engine/effects/transparency/OITBlend.js +1 -1
  894. package/views/3d/webgl-engine/effects/transparency/OITBlendTechnique.js +1 -1
  895. package/views/3d/webgl-engine/lib/CompositingHelper.js +1 -1
  896. package/views/3d/webgl-engine/lib/DrapedHeatmapRenderer.js +1 -1
  897. package/views/3d/webgl-engine/lib/GLMaterial.js +1 -1
  898. package/views/3d/webgl-engine/lib/GLTextureMaterial.js +1 -1
  899. package/views/3d/webgl-engine/lib/Material.js +1 -1
  900. package/views/3d/webgl-engine/lib/Program.js +1 -1
  901. package/views/3d/webgl-engine/lib/Renderer.js +1 -1
  902. package/views/3d/webgl-engine/lib/ShadowAccumulator.js +1 -1
  903. package/views/3d/webgl-engine/lib/ShadowCastRenderer.js +1 -1
  904. package/views/3d/webgl-engine/lib/SortedRenderGeometryRenderer.js +1 -1
  905. package/views/3d/webgl-engine/lib/TextureCompressionWorker.js +1 -1
  906. package/views/3d/webgl-engine/lib/TextureCompressionWorkerHandle.js +1 -1
  907. package/views/3d/webgl-engine/lib/TextureRepository.js +1 -1
  908. package/views/3d/webgl-engine/lib/TextureTechnique.js +1 -1
  909. package/views/3d/webgl-engine/lib/Viewshed.js +1 -1
  910. package/views/3d/webgl-engine/lib/edgeRendering/EdgeRenderer.js +1 -1
  911. package/views/3d/webgl-engine/lib/edgeRendering/EdgeShaderTechnique.js +1 -1
  912. package/views/3d/webgl-engine/lib/edgeRendering/EdgeView.js +1 -1
  913. package/views/3d/webgl-engine/materials/CheckerBoardMaterial.js +1 -1
  914. package/views/3d/webgl-engine/materials/ColorMaterial.js +1 -1
  915. package/views/3d/webgl-engine/materials/DefaultMaterial.js +1 -1
  916. package/views/3d/webgl-engine/materials/DefaultTechniqueConfiguration.js +1 -1
  917. package/views/3d/webgl-engine/materials/HUDMaterial.js +1 -1
  918. package/views/3d/webgl-engine/materials/HeatmapDensityMaterial.js +1 -1
  919. package/views/3d/webgl-engine/materials/ImageMaterial.js +1 -1
  920. package/views/3d/webgl-engine/materials/LineCalloutMaterial.js +1 -1
  921. package/views/3d/webgl-engine/materials/LineMarkerMaterial.js +1 -1
  922. package/views/3d/webgl-engine/materials/MeasurementArrowMaterial.js +1 -1
  923. package/views/3d/webgl-engine/materials/NativeLineMaterial.js +1 -1
  924. package/views/3d/webgl-engine/materials/PathMaterial.js +1 -1
  925. package/views/3d/webgl-engine/materials/PathTechnique.js +1 -1
  926. package/views/3d/webgl-engine/materials/PatternMaterial.js +1 -1
  927. package/views/3d/webgl-engine/materials/RibbonLineMaterial.js +1 -1
  928. package/views/3d/webgl-engine/materials/ShadedColorMaterial.js +1 -1
  929. package/views/3d/webgl-engine/materials/SlicePlaneMaterial.js +1 -1
  930. package/views/3d/webgl-engine/materials/WaterGLMaterial.js +1 -1
  931. package/views/3d/webgl-engine/materials/WaterTechnique.js +1 -1
  932. package/views/3d/webgl-engine/materials/internal/WaterTextureRepository.js +1 -1
  933. package/views/3d/webgl-engine/parts/RenderView.js +1 -1
  934. package/views/3d/webgl-engine/shaders/AtmosphereCompositing.glsl.js +1 -1
  935. package/views/3d/webgl-engine/shaders/AtmosphereCompositingTechnique.js +1 -1
  936. package/views/3d/webgl-engine/shaders/BlendWeights.glsl.js +1 -1
  937. package/views/3d/webgl-engine/shaders/Blur.glsl.js +1 -1
  938. package/views/3d/webgl-engine/shaders/CheckerBoard.glsl.js +1 -1
  939. package/views/3d/webgl-engine/shaders/CheckerBoardTechnique.js +1 -1
  940. package/views/3d/webgl-engine/shaders/ColorMaterial.glsl.js +1 -1
  941. package/views/3d/webgl-engine/shaders/ColorMaterialTechnique.js +1 -1
  942. package/views/3d/webgl-engine/shaders/Compositing.glsl.js +1 -1
  943. package/views/3d/webgl-engine/shaders/CompositingTechnique.js +1 -1
  944. package/views/3d/webgl-engine/shaders/DefaultMaterial.glsl.js +1 -1
  945. package/views/3d/webgl-engine/shaders/DefaultMaterialTechnique.js +1 -1
  946. package/views/3d/webgl-engine/shaders/EdgeDetect.glsl.js +1 -1
  947. package/views/3d/webgl-engine/shaders/FocusAreaColor.glsl.js +1 -1
  948. package/views/3d/webgl-engine/shaders/FocusAreaMask.glsl.js +1 -1
  949. package/views/3d/webgl-engine/shaders/HUDCompositing.glsl.js +1 -1
  950. package/views/3d/webgl-engine/shaders/HUDCompositingTechnique.js +1 -1
  951. package/views/3d/webgl-engine/shaders/HUDMaterial.glsl.js +1 -1
  952. package/views/3d/webgl-engine/shaders/HUDMaterialTechnique.js +1 -1
  953. package/views/3d/webgl-engine/shaders/Heatmap.glsl.js +1 -1
  954. package/views/3d/webgl-engine/shaders/HeatmapDensity.glsl.js +1 -1
  955. package/views/3d/webgl-engine/shaders/HeatmapDensityTechnique.js +1 -1
  956. package/views/3d/webgl-engine/shaders/HeatmapTechnique.js +1 -1
  957. package/views/3d/webgl-engine/shaders/HighlightApply.glsl.js +1 -1
  958. package/views/3d/webgl-engine/shaders/HighlightDownsample.glsl.js +1 -1
  959. package/views/3d/webgl-engine/shaders/HighlightToSingle.glsl.js +1 -1
  960. package/views/3d/webgl-engine/shaders/ImageMaterial.glsl.js +1 -1
  961. package/views/3d/webgl-engine/shaders/ImageMaterialTechnique.js +1 -1
  962. package/views/3d/webgl-engine/shaders/LaserlinePath.glsl.js +1 -1
  963. package/views/3d/webgl-engine/shaders/Laserlines.glsl.js +1 -1
  964. package/views/3d/webgl-engine/shaders/LineCallout.glsl.js +1 -1
  965. package/views/3d/webgl-engine/shaders/LineCalloutTechnique.js +1 -1
  966. package/views/3d/webgl-engine/shaders/LineMarker.glsl.js +1 -1
  967. package/views/3d/webgl-engine/shaders/LineMarkerTechnique.js +1 -1
  968. package/views/3d/webgl-engine/shaders/Magnifier.glsl.js +1 -1
  969. package/views/3d/webgl-engine/shaders/MeasurementArrow.glsl.js +1 -1
  970. package/views/3d/webgl-engine/shaders/MeasurementArrowTechnique.js +1 -1
  971. package/views/3d/webgl-engine/shaders/NativeLine.glsl.js +1 -1
  972. package/views/3d/webgl-engine/shaders/NativeLineTechnique.js +1 -1
  973. package/views/3d/webgl-engine/shaders/OutputColorHighlightOID.glsl.js +7 -7
  974. package/views/3d/webgl-engine/shaders/OverlayCompositing.glsl.js +1 -1
  975. package/views/3d/webgl-engine/shaders/OverlayCompositingTechnique.js +1 -1
  976. package/views/3d/webgl-engine/shaders/Path.glsl.js +1 -1
  977. package/views/3d/webgl-engine/shaders/Pattern.glsl.js +1 -1
  978. package/views/3d/webgl-engine/shaders/PatternTechnique.js +1 -1
  979. package/views/3d/webgl-engine/shaders/PointRenderer.glsl.js +1 -1
  980. package/views/3d/webgl-engine/shaders/PointRendererTechnique.js +1 -1
  981. package/views/3d/webgl-engine/shaders/RealisticTree.glsl.js +1 -1
  982. package/views/3d/webgl-engine/shaders/RealisticTreeTechnique.js +1 -1
  983. package/views/3d/webgl-engine/shaders/RibbonLine.glsl.js +1 -1
  984. package/views/3d/webgl-engine/shaders/RibbonLineTechnique.js +1 -1
  985. package/views/3d/webgl-engine/shaders/SSAO.glsl.js +1 -1
  986. package/views/3d/webgl-engine/shaders/SSAOBlur.glsl.js +1 -1
  987. package/views/3d/webgl-engine/shaders/ScreenSpacePassAtmosphere.glsl.js +1 -1
  988. package/views/3d/webgl-engine/shaders/ShadedColorMaterial.glsl.js +1 -1
  989. package/views/3d/webgl-engine/shaders/ShadedColorMaterialTechnique.js +1 -1
  990. package/views/3d/webgl-engine/shaders/ShadowCastAccumulate.glsl.js +1 -1
  991. package/views/3d/webgl-engine/shaders/ShadowCastAccumulateTechnique.js +1 -1
  992. package/views/3d/webgl-engine/shaders/ShadowCastVisualize.glsl.js +1 -1
  993. package/views/3d/webgl-engine/shaders/ShadowCastVisualizeTechnique.js +1 -1
  994. package/views/3d/webgl-engine/shaders/ShadowHighlight.glsl.js +1 -1
  995. package/views/3d/webgl-engine/shaders/SingleHighlightApply.glsl.js +1 -1
  996. package/views/3d/webgl-engine/shaders/SingleHighlightBlur.glsl.js +1 -1
  997. package/views/3d/webgl-engine/shaders/SlicePlaneMaterial.glsl.js +1 -1
  998. package/views/3d/webgl-engine/shaders/SlicePlaneMaterialTechnique.js +1 -1
  999. package/views/3d/webgl-engine/shaders/SphereIntersect.glsl.js +2 -2
  1000. package/views/3d/webgl-engine/shaders/Terrain.glsl.js +1 -1
  1001. package/views/3d/webgl-engine/shaders/TerrainTechnique.js +1 -1
  1002. package/views/3d/webgl-engine/shaders/ToneMapping.glsl.js +1 -1
  1003. package/views/3d/webgl-engine/shaders/Viewshed.glsl.js +1 -1
  1004. package/views/3d/webgl-engine/shaders/ViewshedTechnique.js +1 -1
  1005. package/views/3d/webgl-engine/shaders/WaterSurface.glsl.js +1 -1
  1006. package/views/3d/webgl-engine/shaders/sources/edgeRenderer/AdjustProjectedPosition.glsl.js +2 -2
  1007. package/views/3d/webgl-engine/shaders/sources/edgeRenderer/DiscardNonSilhouetteEdges.glsl.js +4 -4
  1008. package/views/3d/webgl-engine/shaders/sources/edgeRenderer/DistanceFalloff.glsl.js +2 -2
  1009. package/views/3d/webgl-engine/shaders/sources/edgeRenderer/EdgeShader.glsl.js +1 -1
  1010. package/views/3d/webgl-engine/shaders/sources/edgeRenderer/EdgeUtil.glsl.js +1 -1
  1011. package/views/3d/webgl-engine/shaders/sources/edgeRenderer/LineAmplitude.glsl.js +3 -3
  1012. package/views/3d/webgl-engine/shaders/sources/edgeRenderer/LineOffset.glsl.js +7 -7
  1013. package/views/3d/webgl-engine/shaders/sources/edgeRenderer/UnpackAttributes.glsl.js +7 -7
  1014. package/views/3d/webgl.d.ts +3 -2
  1015. package/views/3d/webgl.js +1 -1
  1016. package/views/BreakpointsOwner.d.ts +1 -1
  1017. package/views/DOMContainer.d.ts +1 -1
  1018. package/views/FocusAreas.js +1 -1
  1019. package/views/PopupView.d.ts +1 -1
  1020. package/views/draw/DrawGraphicTool.js +1 -1
  1021. package/views/draw/DrawOperation.js +1 -1
  1022. package/views/draw/support/Box.js +1 -1
  1023. package/views/draw/support/helpMessageUtils.js +1 -1
  1024. package/views/draw/support/tooltipUtils.js +1 -1
  1025. package/views/interactive/keybindings.js +1 -1
  1026. package/views/interactive/tooltip/content/tooltipContentFactory.js +1 -1
  1027. package/views/interactive/tooltip/infos/DrawCircleTooltipInfo.js +1 -1
  1028. package/views/interactive/tooltip/infos/DrawMultipointTooltipInfo.js +5 -0
  1029. package/views/interactive/tooltip/infos/DrawRectangleTooltipInfo.js +1 -1
  1030. package/views/layers/FeatureLayerView.js +1 -1
  1031. package/views/layers/MediaLayerView.js +1 -1
  1032. package/views/support/colorUtils.d.ts +2 -2
  1033. package/views/webgl/NoParameters.js +5 -0
  1034. package/views/webgl/ShaderBuilder.js +5 -0
  1035. package/views/webgl/Texture.js +1 -1
  1036. package/views/webgl/Uniform.js +5 -0
  1037. package/views/webgl/testAppleAmdDrawArrays.js +1 -1
  1038. package/widgets/Attachments/AttachmentsViewModel.js +1 -1
  1039. package/widgets/BatchAttributeForm/BatchAttributeFormViewModel.js +1 -1
  1040. package/widgets/BatchAttributeForm/batchAttributeFormUtils.js +1 -1
  1041. package/widgets/BatchAttributeForm/expressions/ExpressionsManager.js +1 -1
  1042. package/widgets/BatchAttributeForm/expressions/ExpressionsModel.js +1 -1
  1043. package/widgets/BatchAttributeForm/inputs/EditableInput.js +1 -1
  1044. package/widgets/BatchAttributeForm/inputs/FieldInput.js +1 -1
  1045. package/widgets/BatchAttributeForm/inputs/GroupInput.js +1 -1
  1046. package/widgets/BatchAttributeForm/inputs/InputBase.js +1 -1
  1047. package/widgets/BatchAttributeForm/inputs/support/createBatchFormInputs.js +1 -1
  1048. package/widgets/BatchAttributeForm/inputs/support/inputUtils.js +1 -1
  1049. package/widgets/BatchAttributeForm/templates/BatchFormTemplate.js +1 -1
  1050. package/widgets/BatchAttributeForm/templates/FieldElementTemplate.js +1 -1
  1051. package/widgets/BatchAttributeForm/templates/GroupElementTemplate.js +1 -1
  1052. package/widgets/BatchAttributeForm/templates/support/createBatchFormTemplate.js +1 -1
  1053. package/widgets/BatchAttributeForm/templates/support/hashElementTemplate.js +1 -1
  1054. package/widgets/BatchAttributeForm.js +1 -1
  1055. package/widgets/Editor/CreateFeaturesWorkflow.js +1 -1
  1056. package/widgets/Editor/EditorViewModel.js +1 -1
  1057. package/widgets/Editor/UpdateWorkflow.js +1 -1
  1058. package/widgets/Editor/UpdateWorkflowData.js +1 -1
  1059. package/widgets/Editor/components/UpdateFeaturePanelContent.js +1 -1
  1060. package/widgets/Editor.js +1 -1
  1061. package/widgets/Feature.js +1 -1
  1062. package/widgets/FeatureForm/FeatureFormUtilityNetworkAssociations/AssociationDetails.js +5 -0
  1063. package/widgets/FeatureForm/FeatureFormUtilityNetworkAssociations/FeatureFormUtilityNetworkAssociationList.js +1 -1
  1064. package/widgets/FeatureForm/FeatureFormUtilityNetworkAssociations/FeatureFormUtilityNetworkAssociationSettings.js +1 -1
  1065. package/widgets/FeatureForm/FeatureFormViewModel.js +1 -1
  1066. package/widgets/FeatureForm/FieldInput.js +1 -1
  1067. package/widgets/FeatureForm/UtilityNetworkAssociationInput.js +1 -1
  1068. package/widgets/FeatureForm.js +1 -1
  1069. package/widgets/FeatureTable/support/FeatureStore.js +1 -1
  1070. package/widgets/LinkChartLayoutSwitcher/LinkChartLayoutSwitcherViewModel.d.ts +4 -0
  1071. package/widgets/LinkChartLayoutSwitcher/LinkChartLayoutSwitcherViewModel.js +1 -1
  1072. package/widgets/OrientedImageryViewer/OrientedImageryViewerViewModel.js +1 -1
  1073. package/widgets/OrientedImageryViewer/adapters/sketch/MeasurementAdapter.js +1 -1
  1074. package/widgets/OrientedImageryViewer/components/ImageLocationWidget.js +5 -0
  1075. package/widgets/OrientedImageryViewer/components/ImageOverlays.js +1 -1
  1076. package/widgets/OrientedImageryViewer/imageMeasurementUtils.js +1 -1
  1077. package/widgets/OrientedImageryViewer/mixins/ImageMeasurementMixin.js +1 -1
  1078. package/widgets/OrientedImageryViewer/mixins/SketchHandlerMixin.js +1 -1
  1079. package/widgets/OrientedImageryViewer.js +1 -1
  1080. package/widgets/PanoramicViewer/PanoramicViewerViewModel.js +1 -1
  1081. package/widgets/Print.js +1 -1
  1082. package/widgets/Search.js +1 -1
  1083. package/widgets/ShadowCast/ShadowCastViewModel.js +1 -1
  1084. package/widgets/Swipe/SwipeViewModel.js +1 -1
  1085. package/widgets/UtilityNetworkTrace.js +1 -1
  1086. package/widgets/smartMapping/support/utils.d.ts +3 -2
  1087. package/widgets/support/FilterBuilder/FilterBuilderViewModel.js +5 -0
  1088. package/widgets/support/FilterBuilder.js +5 -0
  1089. package/widgets/support/FilterCondition/FilterConditionViewModel.js +5 -0
  1090. package/widgets/support/FilterCondition/conditionUtils.js +5 -0
  1091. package/widgets/support/FilterCondition.js +5 -0
  1092. package/widgets/support/UtilityNetworkAssociations/UtilityNetworkAssociationsViewModel.js +1 -1
  1093. package/widgets/support/UtilityNetworkAssociations/utilityNetworkUtils.js +1 -1
  1094. package/widgets/support/widget.d.ts +8 -2
  1095. package/assets/esri/core/workers/chunks/1557446aa4525705a5b2.js +0 -1
  1096. package/assets/esri/core/workers/chunks/2cf8677005dd2127f5eb.js +0 -1
  1097. package/assets/esri/core/workers/chunks/31b9faaa539fdc639a0a.js +0 -1
  1098. package/assets/esri/core/workers/chunks/349f31a1fb489fbfe60d.js +0 -1
  1099. package/assets/esri/core/workers/chunks/34b31091e172e910d750.js +0 -1
  1100. package/assets/esri/core/workers/chunks/4020c753fcbbb9f1c731.js +0 -1
  1101. package/assets/esri/core/workers/chunks/48a1b63291c62bc78a41.js +0 -1
  1102. package/assets/esri/core/workers/chunks/48e6f5571042aaffe543.js +0 -314
  1103. package/assets/esri/core/workers/chunks/5bb175106aee21025bc2.js +0 -1
  1104. package/assets/esri/core/workers/chunks/5c57aa9fdc4e1bab61ac.js +0 -1
  1105. package/assets/esri/core/workers/chunks/7719fe672ea74cdc87be.js +0 -1
  1106. package/assets/esri/core/workers/chunks/7ae1f26ded268099f429.js +0 -1
  1107. package/assets/esri/core/workers/chunks/99c0b133c97abf4c2eec.js +0 -1
  1108. package/assets/esri/core/workers/chunks/9a30ad773c22bde61c64.js +0 -1
  1109. package/assets/esri/core/workers/chunks/9b687465cc3863e14b29.js +0 -2
  1110. package/assets/esri/core/workers/chunks/b5ee6c203f536bdb6708.js +0 -1
  1111. package/assets/esri/core/workers/chunks/c12bdf6fd7f631e3f79e.js +0 -971
  1112. package/assets/esri/core/workers/chunks/c58f559eb68035ebe3da.js +0 -1
  1113. package/assets/esri/core/workers/chunks/d2403fc8f4c723301144.js +0 -1
  1114. package/assets/esri/core/workers/chunks/e7913ec1b4f9da490ba3.js +0 -1
  1115. package/views/2d/engine/webgl/shaderGraph/ShaderBuilder2D.js +0 -5
  1116. package/views/3d/webgl-engine/core/shaderModules/ShaderBuilder.js +0 -5
  1117. package/views/3d/webgl-engine/core/shaderModules/Uniform.js +0 -5
  1118. package/views/3d/webgl-engine/core/shaderModules/interfaces.js +0 -5
  1119. package/views/3d/webgl-engine/effects/focusArea/FocusAreaRenderNode.js +0 -5
  1120. package/views/3d/webgl-engine/effects/focusArea/FocusAreaRenderNodeColorEffects.js +0 -5
  1121. package/views/3d/webgl-engine/effects/focusArea/FocusAreaRenderNodeGeometryMasking.js +0 -5
  1122. /package/views/{3d/webgl-engine/core/shaderTechnique → webgl}/BindType.js +0 -0
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.32/esri/copyright.txt for details.
4
4
  */
5
- import"../../../../core/has.js";import{clamp as e}from"../../../../core/mathUtils.js";import{fromMat4 as t}from"../../../../core/libs/gl-matrix-2/math/mat3.js";import{create as o}from"../../../../core/libs/gl-matrix-2/factories/mat3f64.js";import{identity as i,copy as n,set as s,multiply as r,scale as l,translate as a,rotateZ as f,rotateX as u,rotateY as c}from"../../../../core/libs/gl-matrix-2/math/mat4.js";import{create as p}from"../../../../core/libs/gl-matrix-2/factories/mat4f64.js";import{i as d}from"../../../../chunks/vec32.js";import{create as z}from"../../../../core/libs/gl-matrix-2/factories/vec3f64.js";import{meterIn as m}from"../../../../renderers/support/lengthUtils.js";import{isStringOrNull as v,isString as S,isNumber as h}from"../../../../support/guards.js";import{debugFlags as y}from"../../support/debugFlags.js";import{NoParameters as x}from"../../webgl-engine/core/shaderModules/interfaces.js";var g,b;!function(e){e[e.Undefined=0]="Undefined",e[e.DefinedSize=1]="DefinedSize",e[e.DefinedScale=2]="DefinedScale"}(g||(g={})),function(e){e[e.Undefined=0]="Undefined",e[e.DefinedAngle=1]="DefinedAngle"}(b||(b={}));class C{constructor(e){this.field=e}}class D extends C{constructor(e){super(e),this.minSize=[0,0,0],this.maxSize=[0,0,0],this.offset=[0,0,0],this.factor=[0,0,0],this.type=[g.Undefined,g.Undefined,g.Undefined]}}class U extends C{constructor(e){super(e),this.colors=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],this.values=[0,0,0,0,0,0,0,0]}}class w extends C{constructor(e){super(e),this.values=[0,0,0,0,0,0,0,0],this.opacityValues=[0,0,0,0,0,0,0,0]}}class V extends C{constructor(e){super(e),this.offset=[0,0,0],this.factor=[1,1,1],this.type=[0,0,0]}}class M{}function j(e){return null!=e}function A(e,t){e&&e.push(t)}function I(e,t,o,i=p()){const n=e||0,s=t||0,r=o||0;return 0!==n&&f(i,i,-n/180*Math.PI),0!==s&&u(i,i,s/180*Math.PI),0!==r&&c(i,i,r/180*Math.PI),i}function T(e,t,o,i,n){const s=e.minSize,r=e.maxSize;if(e.useSymbolValue){const e=i.symbolSize[o];return t.minSize[o]=e,t.maxSize[o]=e,t.offset[o]=t.minSize[o],t.factor[o]=0,t.type[o]=g.DefinedSize,!0}if(j(e.field))return j(e.stops)?2===e.stops.length&&h(e.stops[0].size)&&h(e.stops[1].size)?(F(e.stops[0].size,e.stops[1].size,e.stops[0].value,e.stops[1].value,t,o),t.type[o]=g.DefinedSize,!0):(A(n,"Could not convert size info: stops only supported with 2 elements"),!1):h(s)&&h(r)&&j(e.minDataValue)&&j(e.maxDataValue)?(F(s,r,e.minDataValue,e.maxDataValue,t,o),t.type[o]=g.DefinedSize,!0):"unknown"===e.valueUnit?(A(n,"Could not convert size info: proportional size not supported"),!1):null!=m[e.valueUnit]?(t.minSize[o]=-1/0,t.maxSize[o]=1/0,t.offset[o]=0,t.factor[o]=1/m[e.valueUnit],t.type[o]=g.DefinedSize,!0):(A(n,"Could not convert size info: scale-dependent size not supported"),!1);if(!j(e.field)){if(e.stops?.[0]&&h(e.stops[0].size))return t.minSize[o]=e.stops[0].size,t.maxSize[o]=e.stops[0].size,t.offset[o]=t.minSize[o],t.factor[o]=0,t.type[o]=g.DefinedSize,!0;if(h(s))return t.minSize[o]=s,t.maxSize[o]=s,t.offset[o]=s,t.factor[o]=0,t.type[o]=g.DefinedSize,!0}return A(n,"Could not convert size info: unsupported variant of sizeInfo"),!1}function F(e,t,o,i,n,s){const r=Math.abs(i-o)>0?(t-e)/(i-o):0;n.minSize[s]=r>0?e:t,n.maxSize[s]=r>0?t:e,n.offset[s]=e-o*r,n.factor[s]=r}function P(e,t,o,i){if(e.normalizationField||e.valueRepresentation)return A(i,"Could not convert size info: unsupported property"),null;if(!v(e.field))return A(i,"Could not convert size info: field is not a string"),null;if(t.size){if(e.field)if(t.size.field){if(e.field!==t.size.field)return A(i,"Could not convert size info: multiple fields in use"),null}else t.size.field=e.field}else t.size=new D(e.field);let n;switch(e.axis){case"width":return n=T(e,t.size,0,o,i),n?t:null;case"height":return n=T(e,t.size,2,o,i),n?t:null;case"depth":return n=T(e,t.size,1,o,i),n?t:null;case"width-and-depth":return n=T(e,t.size,0,o,i),n&&T(e,t.size,1,o,i),n?t:null;case null:case void 0:case"all":return n=T(e,t.size,0,o,i),n=n&&T(e,t.size,1,o,i),n=n&&T(e,t.size,2,o,i),n?t:null;default:return A(i,`Could not convert size info: unknown axis "${e.axis}""`),null}}function R(e,t,o){for(let n=0;n<3;++n){let o=t.unitInMeters;e.type[n]===g.DefinedSize&&(o*=t.modelSize[n],e.type[n]=g.DefinedScale),e.minSize[n]=e.minSize[n]/o,e.maxSize[n]=e.maxSize[n]/o,e.offset[n]=e.offset[n]/o,e.factor[n]=e.factor[n]/o}let i;if(e.type[0]!==g.Undefined)i=0;else if(e.type[1]!==g.Undefined)i=1;else{if(e.type[2]===g.Undefined)return A(o,"No size axis contains a valid size or scale"),!1;i=2}for(let n=0;n<3;++n)e.type[n]===g.Undefined&&(e.minSize[n]=e.minSize[i],e.maxSize[n]=e.maxSize[i],e.offset[n]=e.offset[i],e.factor[n]=e.factor[i],e.type[n]=e.type[i]);return!0}function k(e,t,o){e[4*t]=o.r/255,e[4*t+1]=o.g/255,e[4*t+2]=o.b/255,e[4*t+3]=o.a}function E(e,t,o){if(e.normalizationField)return A(o,"Could not convert color info: unsupported property"),null;if(S(e.field)){if(!e.stops)return A(o,"Could not convert color info: missing stops or colors"),null;{if(e.stops.length>8)return A(o,"Could not convert color info: too many color stops"),null;t.color=new U(e.field);const i=e.stops;for(let e=0;e<8;++e){const o=i[Math.min(e,i.length-1)];t.color.values[e]=o.value,k(t.color.colors,e,o.color)}}}else{if(!(e.stops&&e.stops.length>=0))return A(o,"Could not convert color info: no field and no colors/stops"),null;{const o=e.stops&&e.stops.length>=0&&e.stops[0].color;t.color={field:null,values:[0,0,0,0,0,0,0,0],colors:[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]};for(let e=0;e<8;e++)t.color.values[e]=1/0,k(t.color.colors,e,o)}}return t}function _(e,t,o){if(e.normalizationField)return A(o,"Could not convert opacity info: unsupported property"),null;if(S(e.field)){if(!e.stops)return A(o,"Could not convert opacity info: missing stops or opacities"),null;{if(e.stops.length>8)return A(o,"Could not convert opacity info: too many opacity stops"),null;t.opacity=new w(e.field);const i=e.stops;for(let e=0;e<8;++e){const o=i[Math.min(e,i.length-1)];t.opacity.values[e]=o.value,t.opacity.opacityValues[e]=o.opacity}}}else{if(!(e.stops&&e.stops.length>=0))return A(o,"Could not convert opacity info: no field and no opacities/stops"),null;{const o=e.stops&&e.stops.length>=0?e.stops[0].opacity:0;t.opacity={field:null,values:[0,0,0,0,0,0,0,0],opacityValues:[0,0,0,0,0,0,0,0]};for(let e=0;e<8;e++)t.opacity.values[e]=1/0,t.opacity.opacityValues[e]=o}}return t}function q(e,t,o){const i=2===o&&"arithmetic"===e.rotationType;t.offset[o]=i?90:0,t.factor[o]=i?-1:1,t.type[o]=1}function $(e,t,o){if(!S(e.field))return A(o,"Could not convert rotation info: field is not a string"),null;if(t.rotation){if(e.field)if(t.rotation.field){if(e.field!==t.rotation.field)return A(o,"Could not convert rotation info: multiple fields in use"),null}else t.rotation.field=e.field}else t.rotation={field:e.field,offset:[0,0,0],factor:[1,1,1],type:[0,0,0]};switch(e.axis){case"tilt":return q(e,t.rotation,0),t;case"roll":return q(e,t.rotation,1),t;case null:case void 0:case"heading":return q(e,t.rotation,2),t;default:return A(o,`Could not convert rotation info: unknown axis "${e.axis}""`),null}}class B{constructor(e,t=[1,1,1],o=[1,1,1],i=1,n=[0,0,0],s=[1,1,1],r=[0,0,0]){this.supports=e,this.modelSize=t,this.symbolSize=o,this.unitInMeters=i,this.anchor=n,this.scale=s,this.rotation=r}}function L(e,t,o){if(!e)return null;const i=e.reduce(((e,i)=>{if(!e)return e;if(i.valueExpression)return A(o,"Could not convert visual variables: arcade expressions not supported"),null;switch(i.type){case"size":return t.supports.size?P(i,e,t,o):e;case"color":return t.supports.color?E(i,e,o):e;case"opacity":return t.supports.opacity?_(i,e,o):null;case"rotation":return t.supports.rotation?$(i,e,o):e;default:return null}}),new M);return!(e.length>0&&i)||i.size||i.color||i.opacity||i.rotation?i?.size&&!R(i.size,t,o)?null:i:null}class N{constructor(e,t,o){this.visualVariables=e,this.materialParameters=t,this.requiresShaderTransformation=o}}function O(e,t){if(!e)return null;if(y.TESTS_DISABLE_FAST_UPDATES)return null;const o=L(e.visualVariables,t);return o?new N(o,K(o,t),!!o.size):null}function G(e,t,o){if(!t||!e)return!1;const i=e.visualVariables,n=L(t.visualVariables,o);return!!n&&(!!(H(i.size,n.size,"size")&&H(i.color,n.color,"color")&&H(i.rotation,n.rotation,"rotation")&&H(i.opacity,n.opacity,"opacity"))&&(e.visualVariables=n,e.materialParameters=K(n,o),e.requiresShaderTransformation=!!n.size,!0))}function H(e,t,o){if(!!e!=!!t)return!1;if(e&&e.field!==t?.field)return!1;if(e&&"rotation"===o){const o=e,i=t;for(let e=0;e<3;e++)if(o.type[e]!==i.type[e]||o.offset[e]!==i.offset[e]||o.factor[e]!==i.factor[e])return!1}return!0}class J extends x{constructor(e){super(),this.vvSize=e?.size??null,this.vvColor=e?.color??null,this.vvOpacity=e?.opacity??null}}function K(e,n){const s=new J(e);return s.vvSize&&(s.vvSymbolAnchor=n.anchor,i(ee),I(n.rotation[2],n.rotation[0],n.rotation[1],ee),s.vvSymbolRotationMatrix=s.vvSymbolRotationMatrix||o(),t(s.vvSymbolRotationMatrix,ee)),s}function Q(t,o,i){if(!t.vvSize)return i;n(Y,i);const f=t.vvSymbolRotationMatrix;s(ee,f[0],f[1],f[2],0,f[3],f[4],f[5],0,f[6],f[7],f[8],0,0,0,0,1),r(Y,Y,ee);for(let n=0;n<3;++n){const i=t.vvSize.offset[n]+o[0]*t.vvSize.factor[n];Z[n]=e(i,t.vvSize.minSize[n],t.vvSize.maxSize[n])}return l(Y,Y,Z),a(Y,Y,t.vvSymbolAnchor),Y}function W(t,o,i){if(!o.vvSize)return d(t,1,1,1),t;for(let n=0;n<3;++n){const s=o.vvSize.offset[n]+i[0]*o.vvSize.factor[n];t[n]=e(s,o.vvSize.minSize[n],o.vvSize.maxSize[n])}return t}function X(e,t){const o=null==e?0:t.attributes[e];return"number"==typeof o&&isFinite(o)?o:0}const Y=p(),Z=z(),ee=p();export{B as ConvertOptions,U as FastColorInfo,w as FastOpacityInfo,V as FastRotationInfo,b as FastRotationType,D as FastSizeInfo,g as FastSizeType,N as FastSymbolUpdatesState,M as FastVisualVariables,J as VisualVariablesParameters,L as convertVisualVariables,Q as evaluateModelTransform,W as evaluateModelTransformScale,X as getAttributeValue,K as getMaterialParameters,O as initFastSymbolUpdatesState,G as updateFastSymbolUpdatesState};
5
+ import"../../../../core/has.js";import{clamp as e}from"../../../../core/mathUtils.js";import{fromMat4 as t}from"../../../../core/libs/gl-matrix-2/math/mat3.js";import{create as o}from"../../../../core/libs/gl-matrix-2/factories/mat3f64.js";import{identity as i,copy as n,set as s,multiply as r,scale as l,translate as a,rotateZ as f,rotateX as u,rotateY as c}from"../../../../core/libs/gl-matrix-2/math/mat4.js";import{create as p}from"../../../../core/libs/gl-matrix-2/factories/mat4f64.js";import{i as d}from"../../../../chunks/vec32.js";import{create as z}from"../../../../core/libs/gl-matrix-2/factories/vec3f64.js";import{meterIn as m}from"../../../../renderers/support/lengthUtils.js";import{isStringOrNull as v,isString as S,isNumber as h}from"../../../../support/guards.js";import{debugFlags as y}from"../../support/debugFlags.js";import{NoParameters as x}from"../../../webgl/NoParameters.js";var g,b;!function(e){e[e.Undefined=0]="Undefined",e[e.DefinedSize=1]="DefinedSize",e[e.DefinedScale=2]="DefinedScale"}(g||(g={})),function(e){e[e.Undefined=0]="Undefined",e[e.DefinedAngle=1]="DefinedAngle"}(b||(b={}));class C{constructor(e){this.field=e}}class D extends C{constructor(e){super(e),this.minSize=[0,0,0],this.maxSize=[0,0,0],this.offset=[0,0,0],this.factor=[0,0,0],this.type=[g.Undefined,g.Undefined,g.Undefined]}}class U extends C{constructor(e){super(e),this.colors=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],this.values=[0,0,0,0,0,0,0,0]}}class w extends C{constructor(e){super(e),this.values=[0,0,0,0,0,0,0,0],this.opacityValues=[0,0,0,0,0,0,0,0]}}class V extends C{constructor(e){super(e),this.offset=[0,0,0],this.factor=[1,1,1],this.type=[0,0,0]}}class j{}function M(e){return null!=e}function A(e,t){e&&e.push(t)}function I(e,t,o,i=p()){const n=e||0,s=t||0,r=o||0;return 0!==n&&f(i,i,-n/180*Math.PI),0!==s&&u(i,i,s/180*Math.PI),0!==r&&c(i,i,r/180*Math.PI),i}function P(e,t,o,i,n){const s=e.minSize,r=e.maxSize;if(e.useSymbolValue){const e=i.symbolSize[o];return t.minSize[o]=e,t.maxSize[o]=e,t.offset[o]=t.minSize[o],t.factor[o]=0,t.type[o]=g.DefinedSize,!0}if(M(e.field))return M(e.stops)?2===e.stops.length&&h(e.stops[0].size)&&h(e.stops[1].size)?(T(e.stops[0].size,e.stops[1].size,e.stops[0].value,e.stops[1].value,t,o),t.type[o]=g.DefinedSize,!0):(A(n,"Could not convert size info: stops only supported with 2 elements"),!1):h(s)&&h(r)&&M(e.minDataValue)&&M(e.maxDataValue)?(T(s,r,e.minDataValue,e.maxDataValue,t,o),t.type[o]=g.DefinedSize,!0):"unknown"===e.valueUnit?(A(n,"Could not convert size info: proportional size not supported"),!1):null!=m[e.valueUnit]?(t.minSize[o]=-1/0,t.maxSize[o]=1/0,t.offset[o]=0,t.factor[o]=1/m[e.valueUnit],t.type[o]=g.DefinedSize,!0):(A(n,"Could not convert size info: scale-dependent size not supported"),!1);if(!M(e.field)){if(e.stops?.[0]&&h(e.stops[0].size))return t.minSize[o]=e.stops[0].size,t.maxSize[o]=e.stops[0].size,t.offset[o]=t.minSize[o],t.factor[o]=0,t.type[o]=g.DefinedSize,!0;if(h(s))return t.minSize[o]=s,t.maxSize[o]=s,t.offset[o]=s,t.factor[o]=0,t.type[o]=g.DefinedSize,!0}return A(n,"Could not convert size info: unsupported variant of sizeInfo"),!1}function T(e,t,o,i,n,s){const r=Math.abs(i-o)>0?(t-e)/(i-o):0;n.minSize[s]=r>0?e:t,n.maxSize[s]=r>0?t:e,n.offset[s]=e-o*r,n.factor[s]=r}function F(e,t,o,i){if(e.normalizationField||e.valueRepresentation)return A(i,"Could not convert size info: unsupported property"),null;if(!v(e.field))return A(i,"Could not convert size info: field is not a string"),null;if(t.size){if(e.field)if(t.size.field){if(e.field!==t.size.field)return A(i,"Could not convert size info: multiple fields in use"),null}else t.size.field=e.field}else t.size=new D(e.field);let n;switch(e.axis){case"width":return n=P(e,t.size,0,o,i),n?t:null;case"height":return n=P(e,t.size,2,o,i),n?t:null;case"depth":return n=P(e,t.size,1,o,i),n?t:null;case"width-and-depth":return n=P(e,t.size,0,o,i),n&&P(e,t.size,1,o,i),n?t:null;case null:case void 0:case"all":return n=P(e,t.size,0,o,i),n=n&&P(e,t.size,1,o,i),n=n&&P(e,t.size,2,o,i),n?t:null;default:return A(i,`Could not convert size info: unknown axis "${e.axis}""`),null}}function R(e,t,o){for(let n=0;n<3;++n){let o=t.unitInMeters;e.type[n]===g.DefinedSize&&(o*=t.modelSize[n],e.type[n]=g.DefinedScale),e.minSize[n]=e.minSize[n]/o,e.maxSize[n]=e.maxSize[n]/o,e.offset[n]=e.offset[n]/o,e.factor[n]=e.factor[n]/o}let i;if(e.type[0]!==g.Undefined)i=0;else if(e.type[1]!==g.Undefined)i=1;else{if(e.type[2]===g.Undefined)return A(o,"No size axis contains a valid size or scale"),!1;i=2}for(let n=0;n<3;++n)e.type[n]===g.Undefined&&(e.minSize[n]=e.minSize[i],e.maxSize[n]=e.maxSize[i],e.offset[n]=e.offset[i],e.factor[n]=e.factor[i],e.type[n]=e.type[i]);return!0}function k(e,t,o){e[4*t]=o.r/255,e[4*t+1]=o.g/255,e[4*t+2]=o.b/255,e[4*t+3]=o.a}function E(e,t,o){if(e.normalizationField)return A(o,"Could not convert color info: unsupported property"),null;if(S(e.field)){if(!e.stops)return A(o,"Could not convert color info: missing stops or colors"),null;{if(e.stops.length>8)return A(o,"Could not convert color info: too many color stops"),null;t.color=new U(e.field);const i=e.stops;for(let e=0;e<8;++e){const o=i[Math.min(e,i.length-1)];t.color.values[e]=o.value,k(t.color.colors,e,o.color)}}}else{if(!(e.stops&&e.stops.length>=0))return A(o,"Could not convert color info: no field and no colors/stops"),null;{const o=e.stops&&e.stops.length>=0&&e.stops[0].color;t.color={field:null,values:[0,0,0,0,0,0,0,0],colors:[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]};for(let e=0;e<8;e++)t.color.values[e]=1/0,k(t.color.colors,e,o)}}return t}function _(e,t,o){if(e.normalizationField)return A(o,"Could not convert opacity info: unsupported property"),null;if(S(e.field)){if(!e.stops)return A(o,"Could not convert opacity info: missing stops or opacities"),null;{if(e.stops.length>8)return A(o,"Could not convert opacity info: too many opacity stops"),null;t.opacity=new w(e.field);const i=e.stops;for(let e=0;e<8;++e){const o=i[Math.min(e,i.length-1)];t.opacity.values[e]=o.value,t.opacity.opacityValues[e]=o.opacity}}}else{if(!(e.stops&&e.stops.length>=0))return A(o,"Could not convert opacity info: no field and no opacities/stops"),null;{const o=e.stops&&e.stops.length>=0?e.stops[0].opacity:0;t.opacity={field:null,values:[0,0,0,0,0,0,0,0],opacityValues:[0,0,0,0,0,0,0,0]};for(let e=0;e<8;e++)t.opacity.values[e]=1/0,t.opacity.opacityValues[e]=o}}return t}function q(e,t,o){const i=2===o&&"arithmetic"===e.rotationType;t.offset[o]=i?90:0,t.factor[o]=i?-1:1,t.type[o]=1}function N(e,t,o){if(!S(e.field))return A(o,"Could not convert rotation info: field is not a string"),null;if(t.rotation){if(e.field)if(t.rotation.field){if(e.field!==t.rotation.field)return A(o,"Could not convert rotation info: multiple fields in use"),null}else t.rotation.field=e.field}else t.rotation={field:e.field,offset:[0,0,0],factor:[1,1,1],type:[0,0,0]};switch(e.axis){case"tilt":return q(e,t.rotation,0),t;case"roll":return q(e,t.rotation,1),t;case null:case void 0:case"heading":return q(e,t.rotation,2),t;default:return A(o,`Could not convert rotation info: unknown axis "${e.axis}""`),null}}class ${constructor(e,t=[1,1,1],o=[1,1,1],i=1,n=[0,0,0],s=[1,1,1],r=[0,0,0]){this.supports=e,this.modelSize=t,this.symbolSize=o,this.unitInMeters=i,this.anchor=n,this.scale=s,this.rotation=r}}function B(e,t,o){if(!e)return null;const i=e.reduce(((e,i)=>{if(!e)return e;if(i.valueExpression)return A(o,"Could not convert visual variables: arcade expressions not supported"),null;switch(i.type){case"size":return t.supports.size?F(i,e,t,o):e;case"color":return t.supports.color?E(i,e,o):e;case"opacity":return t.supports.opacity?_(i,e,o):null;case"rotation":return t.supports.rotation?N(i,e,o):e;default:return null}}),new j);return!(e.length>0&&i)||i.size||i.color||i.opacity||i.rotation?i?.size&&!R(i.size,t,o)?null:i:null}class L{constructor(e,t,o){this.visualVariables=e,this.materialParameters=t,this.requiresShaderTransformation=o}}function O(e,t){if(!e)return null;if(y.TESTS_DISABLE_FAST_UPDATES)return null;const o=B(e.visualVariables,t);return o?new L(o,K(o,t),!!o.size):null}function G(e,t,o){if(!t||!e)return!1;const i=e.visualVariables,n=B(t.visualVariables,o);return!!n&&(!!(H(i.size,n.size,"size")&&H(i.color,n.color,"color")&&H(i.rotation,n.rotation,"rotation")&&H(i.opacity,n.opacity,"opacity"))&&(e.visualVariables=n,e.materialParameters=K(n,o),e.requiresShaderTransformation=!!n.size,!0))}function H(e,t,o){if(!!e!=!!t)return!1;if(e&&e.field!==t?.field)return!1;if(e&&"rotation"===o){const o=e,i=t;for(let e=0;e<3;e++)if(o.type[e]!==i.type[e]||o.offset[e]!==i.offset[e]||o.factor[e]!==i.factor[e])return!1}return!0}class J extends x{constructor(e){super(),this.vvSize=e?.size??null,this.vvColor=e?.color??null,this.vvOpacity=e?.opacity??null}}function K(e,n){const s=new J(e);return s.vvSize&&(s.vvSymbolAnchor=n.anchor,i(ee),I(n.rotation[2],n.rotation[0],n.rotation[1],ee),s.vvSymbolRotationMatrix=s.vvSymbolRotationMatrix||o(),t(s.vvSymbolRotationMatrix,ee)),s}function Q(t,o,i){if(!t.vvSize)return i;n(Y,i);const f=t.vvSymbolRotationMatrix;s(ee,f[0],f[1],f[2],0,f[3],f[4],f[5],0,f[6],f[7],f[8],0,0,0,0,1),r(Y,Y,ee);for(let n=0;n<3;++n){const i=t.vvSize.offset[n]+o[0]*t.vvSize.factor[n];Z[n]=e(i,t.vvSize.minSize[n],t.vvSize.maxSize[n])}return l(Y,Y,Z),a(Y,Y,t.vvSymbolAnchor),Y}function W(t,o,i){if(!o.vvSize)return d(t,1,1,1),t;for(let n=0;n<3;++n){const s=o.vvSize.offset[n]+i[0]*o.vvSize.factor[n];t[n]=e(s,o.vvSize.minSize[n],o.vvSize.maxSize[n])}return t}function X(e,t){const o=null==e?0:t.attributes[e];return"number"==typeof o&&isFinite(o)?o:0}const Y=p(),Z=z(),ee=p();export{$ as ConvertOptions,U as FastColorInfo,w as FastOpacityInfo,V as FastRotationInfo,b as FastRotationType,D as FastSizeInfo,g as FastSizeType,L as FastSymbolUpdatesState,j as FastVisualVariables,J as VisualVariablesParameters,B as convertVisualVariables,Q as evaluateModelTransform,W as evaluateModelTransformScale,X as getAttributeValue,K as getMaterialParameters,O as initFastSymbolUpdatesState,G as updateFastSymbolUpdatesState};
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.32/esri/copyright.txt for details.
4
4
  */
5
- import{H as e,i as t,n as i,f as s,h as o,c as r,G as a}from"../../../../chunks/vec32.js";import{create as l,freeze as n,ZEROS as d}from"../../../../core/libs/gl-matrix-2/factories/vec3f64.js";import{distance as c}from"../../../../geometry/support/aaBoundingRect.js";import{intersectsPoint as h}from"../../../../geometry/support/frustum.js";import{fromValues as m}from"../../../../geometry/support/ray.js";import{ViewingMode as p}from"../../../ViewingMode.js";import{FeatureTileVisibility3D as u,minTileLOD as _}from"./FeatureTileVisibility3D.js";import f from"../../webgl/RenderCamera.js";class v{constructor(e,t,i){this._renderCoordsHelper=e,this._tilingScheme=t,this._camera=new f,this._surfaceElevation=0,this._focusOnMap=[0,0],this._visibility=new u(e,i)}set opaqueGround(e){this._visibility.opaqueGround=e}setup(e,t,i){this._camera.copyFrom(e),this._surfaceElevation=i,this._focusOnMap[0]=t.x,this._focusOnMap[1]=t.y,this._visibility.setup(this._camera)}done(){this._visibility.done()}update(e){const{measures:t,extent:i,level:s}=e;t.visible=this._visibility.compute(e),t.distance=c(i,this._focusOnMap),t.mergeable=!0,t.lodLevel=_,t.splitPriority=Math.max(0,_-s),t.visible&&(this._isGlobal?this._updateSplitAndLodGlobal(e):this._updateSplitAndLodLocal(e))}_updateSplitAndLodGlobal(r){const a=r.level,l=this._renderCoordsHelper,{eye:n,fov:d}=this._camera,c=l.referenceEllipsoid.radius,h=e(n)-c;if(2*Math.atan(c/h)<d&&h>0)return void(r.measures.lodLevel=Math.max(a,_));const m=M,{extent:p}=r,{_surfaceElevation:u}=this;t(m[0],p[0],p[1],u),t(m[1],p[2],p[1],u),t(m[2],p[2],p[3],u),t(m[3],p[0],p[3],u);const f=t(y,.5*(p[0]+p[2]),.5*(p[1]+p[3]),u),v=this._tilingScheme.spatialReference;for(let e=0;e<4;++e)l.toRenderCoords(m[e],v,m[e]);l.toRenderCoords(f,v,f);const b=i(L.direction,f),x=s(n,b),S=o(g,b,x);this._updateSplitAndLod(r,m,f,S)}_updateSplitAndLodLocal(e){const i=M,{extent:s}=e,{_surfaceElevation:o}=this;t(i[0],s[0],s[1],o),t(i[1],s[2],s[1],o),t(i[2],s[2],s[3],o),t(i[3],s[0],s[3],o);const a=this._tilingScheme.spatialReference;for(let t=0;t<4;++t)this._renderCoordsHelper.toRenderCoords(i[t],a,i[t]);const l=t(y,.5*(i[0][0]+i[2][0]),.5*(i[0][1]+i[2][1]),.25*(i[0][2]+i[1][2]+i[2][2]+i[3][2])),n=t(b,l[0],l[1],0),{eye:d,far:c}=this._camera,h=t(g,n[0],n[1],d[2]);t(L.origin,n[0],n[1],d[2]-2*c),r(L.direction,x),this._updateSplitAndLod(e,i,l,h)}_updateSplitAndLod(e,t,i,o){const r=Math.max(a(t[0],t[2]),a(t[1],t[3]),a(t[0],i)+a(i,t[2])),{eye:l,near:n,fov:d,viewForward:c,width:m,height:p,pixelRatio:u,frustum:_}=this._camera,f=s(l,c),v=s(i,c)-f,M=a(i,l);let y=v,b=v,g=M,x=M;const L=(e,t)=>t<n?1:Math.sqrt(e*e-t*t)/t;let C=L(M,v);for(const h of t){const e=s(h,c)-f;y=Math.min(y,e),b=Math.max(b,e);const t=a(h,l);x=Math.max(x,t),g=Math.min(g,t);const i=L(t,e);C=Math.min(C,i)}if(b<n)return void(e.measures.lodLevel=0);const G=Math.cos(.5*d),R=a(l,o);C>G&&R>j*r&&(b=w*x,y=w*g);const A=.5*Math.sqrt(m*m+p*p)/u,E=2*Math.tan(.5*d),H=e=>Math.max(n,e)*S/A*E,q=e.level,O=r*2**q,P=H(y),F=Math.ceil(Math.log2(Math.max(1,O/P)));if(e.measures.lodLevel=Math.max(F,e.measures.lodLevel),e.measures.splitPriority+=e.measures.lodLevel-q,q<F){const i=+h(_,t[0])+ +h(_,t[1])+ +h(_,t[2])+ +h(_,t[3]);e.measures.splitPriority+=i}const V=H(b)/P;V>2.5&&(e.measures.splitPriority+=V)}get _isGlobal(){return this._renderCoordsHelper.viewingMode===p.Global}}const M=[l(),l(),l(),l()],y=l(),b=l(),g=l(),x=n(0,0,1),L=m(d,x),S=300,j=.5,w=2;export{v as FeatureTileMeasurements3D};
5
+ import{H as e,i as t,n as i,f as s,h as o,c as r,G as a}from"../../../../chunks/vec32.js";import{create as l,freeze as n,ZEROS as d}from"../../../../core/libs/gl-matrix-2/factories/vec3f64.js";import{distance as c}from"../../../../geometry/support/aaBoundingRect.js";import{intersectsPoint as h}from"../../../../geometry/support/frustum.js";import{fromValues as m}from"../../../../geometry/support/ray.js";import{ViewingMode as p}from"../../../ViewingMode.js";import{FeatureTileVisibility3D as u,minTileLOD as _}from"./FeatureTileVisibility3D.js";import f from"../../webgl/RenderCamera.js";class v{constructor(e,t,i){this._renderCoordsHelper=e,this._tilingScheme=t,this._camera=new f,this._surfaceElevation=0,this._focusOnMap=[0,0],this._visibility=new u(e,i)}set opaqueGround(e){this._visibility.opaqueGround=e}setup(e,t,i){this._camera.copyFrom(e),this._surfaceElevation=i,this._focusOnMap[0]=t.x,this._focusOnMap[1]=t.y,this._visibility.setup(this._camera)}done(){this._visibility.done()}update(e){const{measures:t,extent:i,level:s}=e;t.visible=this._visibility.compute(e),t.distance=c(i,this._focusOnMap),t.mergeable=!0,t.lodLevel=_,t.splitPriority=Math.max(0,_-s),t.visible&&(this._isGlobal?this._updateSplitAndLodGlobal(e):this._updateSplitAndLodLocal(e))}_updateSplitAndLodGlobal(r){const a=r.level,l=this._renderCoordsHelper,{eye:n,fov:d}=this._camera,c=l.referenceEllipsoid.radius,h=e(n)-c;if(2*Math.atan(c/h)<d&&h>0)return void(r.measures.lodLevel=Math.max(a,_));const m=M,{extent:p}=r,{_surfaceElevation:u}=this;t(m[0],p[0],p[1],u),t(m[1],p[2],p[1],u),t(m[2],p[2],p[3],u),t(m[3],p[0],p[3],u);const f=t(y,.5*(p[0]+p[2]),.5*(p[1]+p[3]),u),v=this._tilingScheme.spatialReference;for(let e=0;e<4;++e)l.toRenderCoords(m[e],v,m[e]);l.toRenderCoords(f,v,f);const b=i(L.direction,f),x=s(n,b),S=o(g,b,x);this._updateSplitAndLod(r,m,f,S)}_updateSplitAndLodLocal(e){const i=M,{extent:s}=e,{_surfaceElevation:o}=this;t(i[0],s[0],s[1],o),t(i[1],s[2],s[1],o),t(i[2],s[2],s[3],o),t(i[3],s[0],s[3],o);const a=this._tilingScheme.spatialReference;for(let t=0;t<4;++t)this._renderCoordsHelper.toRenderCoords(i[t],a,i[t]);const l=t(y,.5*(i[0][0]+i[2][0]),.5*(i[0][1]+i[2][1]),.25*(i[0][2]+i[1][2]+i[2][2]+i[3][2])),n=t(b,l[0],l[1],0),{eye:d,far:c}=this._camera,h=t(g,n[0],n[1],d[2]);t(L.origin,n[0],n[1],d[2]-2*c),r(L.direction,x),this._updateSplitAndLod(e,i,l,h)}_updateSplitAndLod(e,t,i,o){const r=Math.max(a(t[0],t[2]),a(t[1],t[3]),a(t[0],i)+a(i,t[2]),a(t[1],i)+a(i,t[3])),{eye:l,near:n,fov:d,viewForward:c,width:m,height:p,pixelRatio:u,frustum:_}=this._camera,f=s(l,c),v=s(i,c)-f,M=a(i,l);let y=v,b=v,g=M,x=M;const L=(e,t)=>t<n?1:Math.sqrt(e*e-t*t)/t;let C=L(M,v);for(const h of t){const e=s(h,c)-f;y=Math.min(y,e),b=Math.max(b,e);const t=a(h,l);x=Math.max(x,t),g=Math.min(g,t);const i=L(t,e);C=Math.min(C,i)}if(b<n)return void(e.measures.lodLevel=0);const G=Math.cos(.5*d),R=a(l,o);C>G&&R>j*r&&(b=w*x,y=w*g);const A=.5*Math.sqrt(m*m+p*p)/u,E=2*Math.tan(.5*d),H=e=>Math.max(n,e)*S/A*E,q=e.level,O=r*2**q*Math.max(1,E),P=H(y),F=Math.ceil(Math.log2(Math.max(1,O/P)));if(e.measures.lodLevel=Math.max(F,e.measures.lodLevel),e.measures.splitPriority+=e.measures.lodLevel-q,q<F){const i=+h(_,t[0])+ +h(_,t[1])+ +h(_,t[2])+ +h(_,t[3]);e.measures.splitPriority+=i}const V=H(b)/P;V>2.5&&(e.measures.splitPriority+=V)}get _isGlobal(){return this._renderCoordsHelper.viewingMode===p.Global}}const M=[l(),l(),l(),l()],y=l(),b=l(),g=l(),x=n(0,0,1),L=m(d,x),S=312,j=.5,w=2;export{v as FeatureTileMeasurements3D};
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.32/esri/copyright.txt for details.
4
4
  */
5
- import{_ as e}from"../../../../chunks/tslib.es6.js";import t from"../../../../core/Accessor.js";import s from"../../../../core/Collection.js";import{makeHandle as i}from"../../../../core/handleUtils.js";import"../../../../core/has.js";import r from"../../../../core/Logger.js";import{removeMaybe as o}from"../../../../core/maybe.js";import n from"../../../../core/PooledArray.js";import{watch as l,syncAndInitial as a,sync as u}from"../../../../core/reactiveUtils.js";import{signal as h}from"../../../../core/signal.js";import{generateUID as d}from"../../../../core/uid.js";import{property as c}from"../../../../core/accessorSupport/decorators/property.js";import"../../../../core/RandomLCG.js";import{subclass as m}from"../../../../core/accessorSupport/decorators/subclass.js";import{create as p,intersects as _}from"../../../../geometry/support/aaBoundingRect.js";import{FeatureTileDescriptor as f,getFeatureTileId as g}from"./FeatureTileDescriptor.js";import{FeatureTileMeasurements3D as T}from"./FeatureTileMeasurements3D.js";import{toBoundingRect as y}from"../../support/extentUtils.js";import{TaskPriority as v,noBudget as E}from"../../../support/Scheduler.js";const w=60;let S=class extends t{constructor(e){super(e),this.tiles=new s,this.tileSize=512,this._idToTile=new Map,this._clients=new Set,this._dirty=h(!1),this._pendingTiles=h(null),this._newTiles=new n,this._tests=!1,this._measurements=new T(e.renderCoordsHelper,e.tilingSchemeOwner.tilingScheme,this._opaqueGround)}initialize(){const e=()=>this._setDirty(),t=()=>this._reset();this.addHandles([l((()=>this.tileSize),t,a),l((()=>this.cameraOnSurface?.location),e,a),l((()=>this.viewState?.contentCamera),e,a),l((()=>this.focus?.location),e,a),l((()=>this.terrain?.baseOpacity??1),e),l((()=>this.tilingScheme),(e=>{this._reset(),this._measurements=new T(this.renderCoordsHelper,e,this._opaqueGround)}),u),l((()=>this._opaqueGround),(e=>this._measurements.opaqueGround=e),u)]),this._frameWorker=this.scheduler?.registerTask(v.FEATURE_TILE_TREE,this)}destroy(){this._frameWorker=o(this._frameWorker)}get tilingScheme(){const e=this.tilingSchemeOwner.tilingScheme;if(!e)return null;return e.clone()}set filterExtent(e){if(null!=e&&!e.spatialReference.equals(this.viewState.spatialReference))return void r.getLogger(this).error("#extent","extent spatial reference needs to be in the same spatial reference as the view");const t=this._get("filterExtent");if(t===e||null!=t&&e&&t.equals(e))return;const s=null!=e?e.clone():null;this._set("filterExtent",s),this._setDirty()}get _filterExtentRect(){if(null==this.filterExtent)return null;const e=p();return y(this.filterExtent,e,this.tilingScheme.spatialReference),e}get _rootTileIds(){const{tilingScheme:e}=this;return this._filterExtentRect&&e?e.rootTilesInExtent(this._filterExtentRect):[[0,0,0]]}set suspended(e){e!==this._get("suspended")&&(this._set("suspended",e),this._setDirty())}get updating(){return this._dirty.value||!!this._pendingTiles.value}addClient(){const e=d();return this._clients.add(e),1===this._clients.size&&this._setDirty(),i((()=>this._removeClient(e)))}_removeClient(e){this._clients.delete(e),this._hasClients||this._clear()}get _hasClients(){return this._clients.size>0}get _opaqueGround(){return 1===(this.terrain?.baseOpacity??1)}_setDirty(){this._hasClients&&!this.suspended&&(this._frameWorker?this._dirty.value=!0:this.runTask(E))}_clear(){this.tiles.removeAll(),this._idToTile.clear(),this._reset(),this._dirty.value=!1}get running(){return this.updating}_reset(){this._newTiles.clear(),this._pendingTiles.value=null,this._setDirty()}_getRootTiles(){const e=this.tilingScheme;return this._rootTileIds.map((t=>new f(t[0],t[1],t[2],e)))}runTask(e){e=this._tests?E:e,this._dirty.value=!1,this._pendingTiles.value||(this._startUpdate(e),null!=this._frameWorker&&(this._frameWorker.priority=v.FEATURE_TILE_TREE_ACTIVE)),this._splitPendingTiles(e),this._pendingTiles.value||null==this._frameWorker||(this._frameWorker.priority=v.FEATURE_TILE_TREE)}_startUpdate(e){if(this.suspended)return;if(!this.tilingScheme)return void this._clear();const{_measurements:t,_filterExtentRect:s,_newTiles:i}=this;t.setup(this.viewState.contentCamera,this.focus.location,this.cameraOnSurface.location.z??0),this._pendingTiles.value=this._getRootTiles().filter((e=>{if(t.update(e),e.measures.visible&&(!s||_(e.extent,s))){if(e.measures.splitPriority>0)return!0;i.push(e)}return!1})).sort(x),this._newTiles.clear(),e.madeProgress()}_splitPendingTiles(e){const t=this._pendingTiles.value;if(!t)return;const{tilingScheme:s,_filterExtentRect:i,_newTiles:r,_measurements:o}=this;for(;t.length>0&&this._tileBudgetExceeded<1;){const n=t.pop();if(e.madeProgress(),n.measures.splitPriority>0){s.ensureMaxLod(n.level+1);const e=n.createChildren();for(const s of e)o.update(s),!s.measures.visible||i&&!_(s.extent,i)||(s.measures.splitPriority>0?t.push(s):r.push(s));t.sort(x),this._tileBudgetExceeded>=1&&(this._mergeNewTiles(),this._tileBudgetExceeded>=1&&this._mergeNewTiles(!0))}else r.push(n);if(e.done)return}r.pushArray(t),this._pendingTiles.value=null,this._updateTiles(),r.clear(),o.done()}get _tileBudgetExceeded(){return Math.max(0,(this._newTiles.length+(this._pendingTiles.value?.length??0))/w-1)}_mergeNewTiles(e=!1){const{_newTiles:t,_measurements:s}=this,i=new Map(t.map((e=>[e.id,e])));let r=!1;return i.forEach((o=>{const n=o.lij;if(n[1]%2!=0||n[2]%2!=0||n[0]<=1)return;const l=o.measures.lodLevel;let a=l;const u=i.get(g(n[0],n[1]+1,n[2]));let h=Math.abs((u?.measures.lodLevel??0)-l),d=0===h||e&&u?.measures.mergeable&&h<=1;if(!u||!d)return;a+=u.measures.lodLevel;const c=i.get(g(n[0],n[1],n[2]+1));if(h=Math.abs((c?.measures.lodLevel??0)-l),d=0===h||e&&c?.measures.mergeable&&h<=1,!c||!d)return;a+=c.measures.lodLevel;const m=i.get(g(n[0],n[1]+1,n[2]+1));if(h=Math.abs((m?.measures.lodLevel??0)-l),d=0===h||e&&m?.measures.mergeable&&h<=1,!m||!d)return;a+=m.measures.lodLevel,t.removeUnordered(o),t.removeUnordered(u),t.removeUnordered(c),t.removeUnordered(m);const p=new f(n[0]-1,n[1]/2,n[2]/2,this.tilingScheme);s.update(p),p.measures.visible=!0,p.measures.lodLevel=a/4,p.measures.mergeable=!1,t.push(p),r=!0})),r}_updateTiles(){for(;this._mergeNewTiles(););for(;this._tileBudgetExceeded&&this._mergeNewTiles(!0););for(const s of this.tiles.items)s.used=!1;const e=this._newTiles.filter((e=>{const t=this._idToTile.get(e.id);return t?(t.measures={...e.measures},t.used=!0):this._idToTile.set(e.id,e),!t})),t=this.tiles.items.filter((e=>!e.used&&(this._idToTile.delete(e.id),!0)));this.tiles.removeMany(t),this.tiles.addMany(e),this._sortTiles(),this.tiles.emit("change")}_sortTiles(){this.viewState.fixedContentCamera||this.tiles.sort(((e,t)=>e.measures.distance-t.measures.distance)),this.tiles.forEach(((e,t)=>e.loadPriority=t))}};function x(e,t){return e.lodLevelDelta-t.lodLevelDelta||e.measures.splitPriority-t.measures.splitPriority||t.measures.distance-e.measures.distance}e([c({constructOnly:!0})],S.prototype,"scheduler",void 0),e([c({constructOnly:!0})],S.prototype,"renderCoordsHelper",void 0),e([c({constructOnly:!0})],S.prototype,"tilingSchemeOwner",void 0),e([c({constructOnly:!0})],S.prototype,"cameraOnSurface",void 0),e([c({constructOnly:!0})],S.prototype,"focus",void 0),e([c({constructOnly:!0})],S.prototype,"viewState",void 0),e([c({constructOnly:!0})],S.prototype,"terrain",void 0),e([c()],S.prototype,"tiles",void 0),e([c()],S.prototype,"tileSize",void 0),e([c({readOnly:!0})],S.prototype,"tilingScheme",null),e([c()],S.prototype,"filterExtent",null),e([c({readOnly:!0})],S.prototype,"_filterExtentRect",null),e([c({readOnly:!0})],S.prototype,"_rootTileIds",null),e([c({value:!1})],S.prototype,"suspended",null),e([c({readOnly:!0})],S.prototype,"updating",null),S=e([m("esri.views.3d.layers.support.FeatureTileTree3D")],S);export{S as FeatureTileTree3D};
5
+ import{_ as e}from"../../../../chunks/tslib.es6.js";import t from"../../../../core/Accessor.js";import s from"../../../../core/Collection.js";import{makeHandle as i}from"../../../../core/handleUtils.js";import"../../../../core/has.js";import r from"../../../../core/Logger.js";import{removeMaybe as o}from"../../../../core/maybe.js";import l from"../../../../core/PooledArray.js";import{watch as n,syncAndInitial as a,sync as u}from"../../../../core/reactiveUtils.js";import{signal as h}from"../../../../core/signal.js";import{generateUID as d}from"../../../../core/uid.js";import{property as c}from"../../../../core/accessorSupport/decorators/property.js";import"../../../../core/RandomLCG.js";import{subclass as m}from"../../../../core/accessorSupport/decorators/subclass.js";import{create as p,intersects as _}from"../../../../geometry/support/aaBoundingRect.js";import{FeatureTileDescriptor as f,getFeatureTileId as g}from"./FeatureTileDescriptor.js";import{FeatureTileMeasurements3D as T}from"./FeatureTileMeasurements3D.js";import{maxLODLevelDelta as y}from"./FeatureTileVisibility3D.js";import{toBoundingRect as v}from"../../support/extentUtils.js";import{TaskPriority as E,noBudget as w}from"../../../support/Scheduler.js";const S=60;let x=class extends t{constructor(e){super(e),this.tiles=new s,this.tileSize=512,this._idToTile=new Map,this._clients=new Set,this._dirty=h(!1),this._pendingTiles=h(null),this._newTiles=new l,this._tests=!1,this._measurements=new T(e.renderCoordsHelper,e.tilingSchemeOwner.tilingScheme,this._opaqueGround)}initialize(){const e=()=>this._setDirty(),t=()=>this._reset();this.addHandles([n((()=>this.tileSize),t,a),n((()=>this.cameraOnSurface?.location),e,a),n((()=>this.viewState?.contentCamera),e,a),n((()=>this.focus?.location),e,a),n((()=>this.terrain?.baseOpacity??1),e),n((()=>this.tilingScheme),(e=>{this._reset(),this._measurements=new T(this.renderCoordsHelper,e,this._opaqueGround)}),u),n((()=>this._opaqueGround),(e=>this._measurements.opaqueGround=e),u)]),this._frameWorker=this.scheduler?.registerTask(E.FEATURE_TILE_TREE,this)}destroy(){this._frameWorker=o(this._frameWorker)}get tilingScheme(){const e=this.tilingSchemeOwner.tilingScheme;if(!e)return null;return e.clone()}set filterExtent(e){if(null!=e&&!e.spatialReference.equals(this.viewState.spatialReference))return void r.getLogger(this).error("#extent","extent spatial reference needs to be in the same spatial reference as the view");const t=this._get("filterExtent");if(t===e||null!=t&&e&&t.equals(e))return;const s=null!=e?e.clone():null;this._set("filterExtent",s),this._setDirty()}get _filterExtentRect(){if(null==this.filterExtent)return null;const e=p();return v(this.filterExtent,e,this.tilingScheme.spatialReference),e}get _rootTileIds(){const{tilingScheme:e}=this;return this._filterExtentRect&&e?e.rootTilesInExtent(this._filterExtentRect):[[0,0,0]]}set suspended(e){e!==this._get("suspended")&&(this._set("suspended",e),this._setDirty())}get updating(){return this._dirty.value||!!this._pendingTiles.value}addClient(){const e=d();return this._clients.add(e),1===this._clients.size&&this._setDirty(),i((()=>this._removeClient(e)))}_removeClient(e){this._clients.delete(e),this._hasClients||this._clear()}get _hasClients(){return this._clients.size>0}get _opaqueGround(){return 1===(this.terrain?.baseOpacity??1)}_setDirty(){this._hasClients&&!this.suspended&&(this._frameWorker?this._dirty.value=!0:this.runTask(w))}_clear(){this.tiles.removeAll(),this._idToTile.clear(),this._reset(),this._dirty.value=!1}get running(){return this.updating}_reset(){this._newTiles.clear(),this._pendingTiles.value=null,this._setDirty()}_getRootTiles(){const e=this.tilingScheme;return this._rootTileIds.map((t=>new f(t[0],t[1],t[2],e)))}runTask(e){e=this._tests?w:e,this._dirty.value=!1,this._pendingTiles.value||(this._startUpdate(e),null!=this._frameWorker&&(this._frameWorker.priority=E.FEATURE_TILE_TREE_ACTIVE)),this._splitPendingTiles(e),this._pendingTiles.value||null==this._frameWorker||(this._frameWorker.priority=E.FEATURE_TILE_TREE)}_startUpdate(e){if(this.suspended)return;if(!this.tilingScheme)return void this._clear();const{_measurements:t,_filterExtentRect:s,_newTiles:i}=this;t.setup(this.viewState.contentCamera,this.focus.location,this.cameraOnSurface.location.z??0),this._pendingTiles.value=this._getRootTiles().filter((e=>{if(t.update(e),e.measures.visible&&(!s||_(e.extent,s))){if(e.measures.splitPriority>0)return!0;i.push(e)}return!1})).sort(j),this._newTiles.clear(),e.madeProgress()}_splitPendingTiles(e){const t=this._pendingTiles.value;if(!t)return;const{tilingScheme:s,_filterExtentRect:i,_newTiles:r,_measurements:o}=this;for(;t.length>0&&this._tileBudgetExceeded<1;){const l=t.pop();if(e.madeProgress(),l.measures.splitPriority>0){s.ensureMaxLod(l.level+1);const e=l.createChildren();for(const s of e)o.update(s),!s.measures.visible||i&&!_(s.extent,i)||(s.measures.splitPriority>0?t.push(s):r.push(s));t.sort(j),this._tileBudgetExceeded>=1&&(this._mergeNewTiles(),this._tileBudgetExceeded>=1&&this._mergeNewTiles(!0))}else r.push(l);if(e.done)return}r.pushArray(t),this._pendingTiles.value=null,this._updateTiles(),r.clear(),o.done()}get _tileBudgetExceeded(){return Math.max(0,(this._newTiles.length+(this._pendingTiles.value?.length??0))/S-1)}_mergeNewTiles(e=!1){const{_newTiles:t,_measurements:s}=this,i=new Map(t.map((e=>[e.id,e])));let r=!1;return i.forEach((o=>{const{lij:l,measures:n}=o;if(!n.mergeable||l[1]%2!=0||l[2]%2!=0||l[0]<=1||o.lodLevelDelta>=y)return;const a=n.lodLevel;let u=a,h=!0;const d=i.get(g(l[0],l[1]+1,l[2]));let c=Math.abs((d?.measures.lodLevel??0)-a),m=0===c||e&&d?.measures.mergeable&&c<=1;if(!d||!m)return;u+=d.measures.lodLevel,h&&=0===c;const p=i.get(g(l[0],l[1],l[2]+1));if(c=Math.abs((p?.measures.lodLevel??0)-a),m=0===c||e&&p?.measures.mergeable&&c<=1,!p||!m)return;u+=p.measures.lodLevel,h&&=0===c;const _=i.get(g(l[0],l[1]+1,l[2]+1));if(c=Math.abs((_?.measures.lodLevel??0)-a),m=0===c||e&&_?.measures.mergeable&&c<=1,!_||!m)return;u+=_.measures.lodLevel,h&&=0===c,t.removeUnordered(o),t.removeUnordered(d),t.removeUnordered(p),t.removeUnordered(_);const T=new f(l[0]-1,l[1]/2,l[2]/2,this.tilingScheme);s.update(T),T.measures.visible=!0,T.measures.lodLevel=u/4,T.measures.mergeable=h,t.push(T),r=!0})),r}_updateTiles(){for(;this._mergeNewTiles(););for(;this._tileBudgetExceeded&&this._mergeNewTiles(!0););for(const s of this.tiles.items)s.used=!1;const e=this._newTiles.filter((e=>{const t=this._idToTile.get(e.id);return t?(t.measures={...e.measures},t.used=!0):this._idToTile.set(e.id,e),!t})),t=this.tiles.items.filter((e=>!e.used&&(this._idToTile.delete(e.id),!0)));this.tiles.removeMany(t),this.tiles.addMany(e),this._sortTiles(),this.tiles.emit("change")}_sortTiles(){this.viewState.fixedContentCamera||this.tiles.sort(((e,t)=>e.measures.distance-t.measures.distance)),this.tiles.forEach(((e,t)=>e.loadPriority=t))}};function j(e,t){return e.lodLevelDelta-t.lodLevelDelta||e.measures.splitPriority-t.measures.splitPriority||t.measures.distance-e.measures.distance}e([c({constructOnly:!0})],x.prototype,"scheduler",void 0),e([c({constructOnly:!0})],x.prototype,"renderCoordsHelper",void 0),e([c({constructOnly:!0})],x.prototype,"tilingSchemeOwner",void 0),e([c({constructOnly:!0})],x.prototype,"cameraOnSurface",void 0),e([c({constructOnly:!0})],x.prototype,"focus",void 0),e([c({constructOnly:!0})],x.prototype,"viewState",void 0),e([c({constructOnly:!0})],x.prototype,"terrain",void 0),e([c()],x.prototype,"tiles",void 0),e([c()],x.prototype,"tileSize",void 0),e([c({readOnly:!0})],x.prototype,"tilingScheme",null),e([c()],x.prototype,"filterExtent",null),e([c({readOnly:!0})],x.prototype,"_filterExtentRect",null),e([c({readOnly:!0})],x.prototype,"_rootTileIds",null),e([c({value:!1})],x.prototype,"suspended",null),e([c({readOnly:!0})],x.prototype,"updating",null),x=e([m("esri.views.3d.layers.support.FeatureTileTree3D")],x);export{x as FeatureTileTree3D};
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.32/esri/copyright.txt for details.
4
4
  */
5
- import{n as t,c as r,a as n,f as e,b as s,i as o,G as i,e as u,g as c,h as f,H as a}from"../../../../chunks/vec32.js";import{create as h,freeze as l,fromValues as m}from"../../../../core/libs/gl-matrix-2/factories/vec3f64.js";import{getReferenceEllipsoid as p}from"../../../../geometry/ellipsoidUtils.js";import{getSphericalPCPF as d}from"../../../../geometry/spatialReferenceEllipsoidUtils.js";import{projectBuffer as _}from"../../../../geometry/projection/projectBuffer.js";import{projectVec3Array as g}from"../../../../geometry/projection/projectVec3Array.js";import{PlaneIndex as b}from"../../../../geometry/support/frustum.js";import{fromValues as M,signedDistance as F}from"../../../../geometry/support/plane.js";import{ViewingMode as R}from"../../../ViewingMode.js";import{Frustum as S}from"../../state/Frustum.js";class G{constructor(t,r){this._renderCoordsHelper=t,this.opaqueGround=r,this._cache=new Map,this._cameraForward=h(),this._cameraEye=h(),this._cameraFovY=55*Math.PI/180,this._frustumBoundingSphereCenter=h(),this._frustumBoundingSphereRadius=0,this._frustum=new S(t),this._renderSR=t.spatialReference;const n=d(this._renderSR);this._renderSREllipsoidRadius=p(n).radius}setup(n){this._aboveGround=n.aboveGround,this._frustum.update(n),t(this._cameraForward,n.viewForward),r(this._cameraEye,n.eye),this._cameraFovY=n.fovY,this._updateFrustumBoundingSphere()}done(){this._cache.clear()}compute(t){if(this._cache.has(t.id))return this._cache.get(t.id);const r=this._isVisibleInFrustum(t);return this._cache.set(t.id,r),r}_isVisibleInFrustum(t){return this._renderCoordsHelper.viewingMode===R.Local?this._isTileVisibleInFrustumLocal(t):this._isTileVisibleInFrustumGlobal(t)}_updateFrustumBoundingSphere(){const r=this._frustum,o=r.origin,i=U;t(i,r.direction);const u=r.points,c=W;n(c,u[4],o);const f=.5*e(c,c)/e(i,c),a=this._frustumBoundingSphereCenter;s(a,o,i,f);const h=1+f;this._frustumBoundingSphereRadius=h}_isTileVisibleInFrustumLocal(t){const r=t.spatialReference,u=t.extent,c=this._renderSR;if(E[0]=u[0],E[1]=u[1],E[2]=0,E[3]=u[2],E[4]=u[3],E[5]=0,!_(E,r,0,E,c,0))return!1;o(C[0],E[0],E[1],0),o(C[1],E[3],E[1],0),o(C[2],E[3],E[4],0),o(C[3],E[0],E[4],0),o(P,.5*(E[0]+E[3]),.5*(E[1]+E[4]),.5*(E[2]+E[5]));const f=St,a=.5*i(C[0],C[2]),h=this._frustum,l=this._frustumBoundingSphereRadius,m=this._frustumBoundingSphereCenter,p=D;n(p,m,P);const d=e(f,p),g=z;s(g,P,f,d);if(i(g,m)>a+l)return!1;const b=this._cameraForward,M=e(b,St),F=this._cameraFovY,R=this._cameraEye;if(Math.abs(M)<Math.abs(Math.cos(.5*F))){let t=!0;const r=o(Gt,b[0],b[1],0),n=e(R,r);for(let s=0;s<4;++s){const o=C[s];if(e(o,r)-n>0){t=!1;break}}if(t)return!1}{const t=C[0],r=C[2];if(t[0]<=R[0]&&R[0]<=r[0]&&t[1]<=R[1]&&R[1]<=r[1])return!0}const S=x,G=this.opaqueGround&&this._aboveGround,j=this.opaqueGround&&!this._aboveGround,v=Math.min(j?bt:1/0,d+l),B=Math.max(G?-430:-1/0,d-l);for(let n=0;n<4;++n)s(S[n],C[n],f,v),s(S[n+4],C[n],f,B);if(I(h.planes,S,8))return!1;if(T(h.planes,S,8))return!0;for(let n=0;n<4;++n){const t=S[n],r=S[n+4];if(jt(h.planes,t,r))return!0;const e=S[(n+1)%4];if(jt(h.planes,t,e))return!0;const s=S[4+(n+1)%4];if(jt(h.planes,r,s))return!0}if(yt[0][3]=+C[0][0],yt[1][3]=-C[2][0],yt[2][3]=+C[0][1],yt[3][3]=-C[2][1],yt[4][3]=+B,yt[5][3]=-v,T(yt,h.points))return!0;if(T(yt,h.points))return!0;for(let n=0;n<4;++n){const t=R,r=h.points[n+4];if(vt(yt,t,r))return!0;const e=h.points[4+(n+1)%4];if(vt(yt,r,e))return!0}return!1}_isTileVisibleInFrustumGlobal(r){if(r.level<V)return!0;const l=r.spatialReference,p=r.extent,d=this.opaqueGround&&this._aboveGround,_=this.opaqueGround&&!this._aboveGround,b=C,M=.5*(p[0]+p[2]);if(o(b[0],p[0],p[1],0),o(b[1],p[2],p[1],0),o(b[2],p[2],p[3],0),o(b[3],p[0],p[3],0),o(b[4],M,p[1],0),o(b[5],M,p[3],0),!g(b,l,0,b,this._renderSR,0,6))return!1;const R=b[0][2]>0,S=b[3][2]<0,G=R||S,y=this._renderSREllipsoidRadius;if(G){const t=m(0,0,1),r=H;j(r,t,b[0]);const n=L;if(j(n,t,b[1]),R){const e=k,s=b[4],o=Y;j(o,s,t),j(e,o,s);const i=b[0];u(i,r,e),B(i,y);const c=b[1];u(c,n,e),B(c,y)}else if(S){const e=k,s=b[5],o=Y;j(o,s,t),j(e,s,o);const i=b[3];u(i,e,r),B(i,y);const c=b[2];u(c,e,n),B(c,y)}}const w=P;{const r=n(X,b[3],b[0]);t(r,r);const o=c(Z,b[0],b[3]);f(o,o,.5);const i=-e(o,r),u=c($,b[0],b[1]);f(u,u,.5);const a=c(tt,b[2],b[3]);f(a,a,.5);const h=n(rt,a,u);t(h,h);const l=-(i+e(r,u))/e(r,h);s(w,u,h,l),B(w,y)}const T=this._frustumBoundingSphereRadius,x=this._frustumBoundingSphereCenter,E=this._frustum,U=E.planes,W=O;t(W,w);const z=e(b[0],W)/a(b[0]),D=E.origin,it=E.points;let pt=!1;if(d){{pt=!0;const r=t(h(),D);for(let s=0;s<4;++s){const o=it[4+s],i=n(h(),o,D);t(i,i);const c=u(h(),r,i);t(c,c);const f=u(h(),i,c);t(f,f);if(e(D,f)>y){pt=!1;break}}}if(pt){if(e(D,W)<y*z-bt)return!1}const r=t(Mt,E.origin);if(e(r,W)<0)return!1;{const r=t(Ft,E.direction);if(e(r,W)>Rt)return!1}}const dt=Math.sqrt(1-z*z);if(dt>.9)return!0;let _t=!1;{const t=e(W,x),r=a(x);if(r<=T&&!U.some((t=>F(t,J)>0))){if(!d)return!0;_t=!0}const n=t/r;if(!_t&&t<=0){if(-t>T)return!1}const s=T/r;if(Math.sqrt(1-n*n)*Math.sqrt(1-s*s)-s*n>dt)return!1}if(!pt){if(b.some((t=>E.intersectsPoint(t))))return!0;if(E.intersectsPoint(w))return!0}const St=K;n(St,x,J);const Gt=e(St,W),jt=A;f(jt,W,Gt);const vt=i(jt,x),Bt=l.isWGS84,yt=r.lij,wt=Bt&&yt[2]===2**yt[0]-1,It=Bt&&0===yt[2],Tt=It?ht:wt?ft:ut,Vt=It?lt:wt?at:ct;if(!_t){const t=b,r=mt,n=nt,e=et,s=J;for(const o of Tt){const i=t[o];if(v(n,t[(o+1)%4],i),v(e,s,i),j(r,e,n),q(r,it,1))return!1}}let qt=null;if(!d&&Gt<1.01*T){const t=2.5*T;if(vt>z*t+T)return!1;const r=Q,n=t/z;for(let e=0;e<4;++e)f(r[e],b[e],n/y);o(r[4],0,0,0),qt=r}else{const t=(_?y+bt:Gt+T)/z,r=d?y-bt:(Gt-T)/z,n=N;for(let e=0;e<4;++e){const s=b[e];f(n[e],s,r/y),f(n[e+4],s,t/y)}qt=n}if(I(U,qt,qt.length))return!1;const xt=E.lines,Et=st,Ct=ot;for(const e of xt){t(Ct,e.direction);for(const r of Vt){const e=qt[r];if(t(Et,e),gt(Ct,Et,qt,it))return!1;const s=(r+1)%4;if(d){const r=qt[s];if(n(Et,r,e),t(Et,Et),gt(Ct,Et,qt,it))return!1}if(_){const e=qt[4+r],o=qt[4+s];if(n(Et,o,e),t(Et,Et),gt(Ct,Et,qt,it))return!1}}}return!0}}function j(r,n,e){return u(r,n,e),t(r,r),r}function v(r,e,s){return n(r,e,s),t(r,r),r}function B(t,r){return f(t,t,r/a(t)),t}const y=[b.LEFT,b.RIGHT,b.BOTTOM,b.TOP,b.FAR];function w(t,r,n){for(let e=0;e<n;++e)if(F(t,r[e])<=0)return!1;return!0}function I(t,r,n){for(const e of y)if(w(t[e],r,n))return!0;return!1}function T(t,r,n=r.length){for(let e=0;e<n;++e){const n=r[e];let s=!0;for(const r of t){if(F(r,n)>0){s=!1;break}}if(s)return!0}return!1}const V=2;function q(t,r,n){for(const s of r)if(e(s,t)<n)return!1;return!0}const x=[h(),h(),h(),h(),h(),h(),h(),h()],E=[0,0,0,0,0,0],C=[h(),h(),h(),h(),h(),h()],P=h(),k=h(),H=h(),L=h(),Y=h(),O=h(),A=h(),U=h(),W=h(),z=h(),D=h(),J=l(0,0,0),K=h(),N=[h(),h(),h(),h(),h(),h(),h(),h()],Q=[h(),h(),h(),h(),h()],X=h(),Z=h(),$=h(),tt=h(),rt=h(),nt=h(),et=h(),st=h(),ot=h(),it=h(),ut=[0,1,2,3],ct=[0,1,2,3],ft=[0,1,3],at=[0,1,3],ht=[1,2,3],lt=[1,2,3],mt=h();function pt(t,r,n){let s=1/0,o=-1/0;for(const i of n){const t=e(r,i);s=Math.min(s,t),o=Math.max(o,t)}t[0]=s,t[1]=o}function dt(t,r,n,s){let o=1/0,i=-1/0;for(const u of s){const s=e(n,u);if(o=Math.min(o,s),i=Math.max(i,s),o<=r&&i>=t)return!1}return!0}const _t=[0,0];function gt(t,r,n,e){if(0===n.length||0===e.length)return!0;const s=it;j(s,t,r);const o=e[0]<n[0],i=o?n:e,u=_t;return pt(u,s,o?e:n),dt(u[0],u[1],s,i)}const bt=430,Mt=h(),Ft=h(),Rt=Math.cos(.25*Math.PI),St=m(0,0,1),Gt=h();function jt(t,r,n){const e={t0:0,t1:1};for(const s of y){if(!Bt(t[s],r,n,e))return!1}return e.t0<e.t1}function vt(t,r,n){const e={t0:0,t1:1};for(const s of t){if(!Bt(s,r,n,e))return!1}return e.t0<e.t1}function Bt(t,r,n,e){let{t0:s,t1:o}=e;const i=F(t,r),u=F(t,n);if(i>=0&&u>=0)return!1;if(i<0&&u>=0){const t=-i/(u-i);if(t<s)return!1;t<o&&(o=t)}else if(i>=0&&u<0){const t=i/(i-u);if(t>o)return!1;t>s&&(s=t)}return e.t0=s,e.t1=o,!0}const yt=[M(-1,0,0,1),M(1,0,0,-1),M(0,-1,0,1),M(0,1,0,-1),M(0,0,-1,1),M(0,0,1,-1)];export{G as FeatureTileVisibility3D,T as isAnyVertexInPolyhedron,I as isConvexHullOutsideOfFrustum,V as minTileLOD};
5
+ import{n as t,c as r,a as n,f as e,b as s,i as o,G as i,e as u,g as c,h as f,H as a}from"../../../../chunks/vec32.js";import{create as h,freeze as l,fromValues as m}from"../../../../core/libs/gl-matrix-2/factories/vec3f64.js";import{getReferenceEllipsoid as p}from"../../../../geometry/ellipsoidUtils.js";import{getSphericalPCPF as d}from"../../../../geometry/spatialReferenceEllipsoidUtils.js";import{projectBuffer as _}from"../../../../geometry/projection/projectBuffer.js";import{projectVec3Array as g}from"../../../../geometry/projection/projectVec3Array.js";import{PlaneIndex as b}from"../../../../geometry/support/frustum.js";import{fromValues as M,signedDistance as F}from"../../../../geometry/support/plane.js";import{ViewingMode as R}from"../../../ViewingMode.js";import{Frustum as S}from"../../state/Frustum.js";class G{constructor(t,r){this._renderCoordsHelper=t,this.opaqueGround=r,this._cache=new Map,this._cameraForward=h(),this._cameraEye=h(),this._cameraFovY=55*Math.PI/180,this._frustumBoundingSphereCenter=h(),this._frustumBoundingSphereRadius=0,this._frustum=new S(t),this._renderSR=t.spatialReference;const n=d(this._renderSR);this._renderSREllipsoidRadius=p(n).radius}setup(n){this._aboveGround=n.aboveGround,this._frustum.update(n),t(this._cameraForward,n.viewForward),r(this._cameraEye,n.eye),this._cameraFovY=n.fovY,this._updateFrustumBoundingSphere()}done(){this._cache.clear()}compute(t){if(this._cache.has(t.id))return this._cache.get(t.id);const r=this._isVisibleInFrustum(t);return this._cache.set(t.id,r),r}_isVisibleInFrustum(t){return this._renderCoordsHelper.viewingMode===R.Local?this._isTileVisibleInFrustumLocal(t):this._isTileVisibleInFrustumGlobal(t)}_updateFrustumBoundingSphere(){const r=this._frustum,o=r.origin,i=W;t(i,r.direction);const u=r.points,c=z;n(c,u[4],o);const f=.5*e(c,c)/e(i,c),a=this._frustumBoundingSphereCenter;s(a,o,i,f);const h=1+f;this._frustumBoundingSphereRadius=h}_isTileVisibleInFrustumLocal(t){const r=t.spatialReference,u=t.extent,c=this._renderSR;if(C[0]=u[0],C[1]=u[1],C[2]=0,C[3]=u[2],C[4]=u[3],C[5]=0,!_(C,r,0,C,c,0))return!1;o(P[0],C[0],C[1],0),o(P[1],C[3],C[1],0),o(P[2],C[3],C[4],0),o(P[3],C[0],C[4],0),o(k,.5*(C[0]+C[3]),.5*(C[1]+C[4]),.5*(C[2]+C[5]));const f=Gt,a=.5*i(P[0],P[2]),h=this._frustum,l=this._frustumBoundingSphereRadius,m=this._frustumBoundingSphereCenter,p=J;n(p,m,k);const d=e(f,p),g=D;s(g,k,f,d);if(i(g,m)>a+l)return!1;const b=this._cameraForward,M=e(b,Gt),F=this._cameraFovY,R=this._cameraEye;if(Math.abs(M)<Math.abs(Math.cos(.5*F))){let t=!0;const r=o(jt,b[0],b[1],0),n=e(R,r);for(let s=0;s<4;++s){const o=P[s];if(e(o,r)-n>0){t=!1;break}}if(t)return!1}{const t=P[0],r=P[2];if(t[0]<=R[0]&&R[0]<=r[0]&&t[1]<=R[1]&&R[1]<=r[1])return!0}const S=E,G=this.opaqueGround&&this._aboveGround,j=this.opaqueGround&&!this._aboveGround,v=Math.min(j?Mt:1/0,d+l),B=Math.max(G?-430:-1/0,d-l);for(let n=0;n<4;++n)s(S[n],P[n],f,v),s(S[n+4],P[n],f,B);if(I(h.planes,S,8))return!1;if(T(h.planes,S,8))return!0;for(let n=0;n<4;++n){const t=S[n],r=S[n+4];if(vt(h.planes,t,r))return!0;const e=S[(n+1)%4];if(vt(h.planes,t,e))return!0;const s=S[4+(n+1)%4];if(vt(h.planes,r,s))return!0}if(wt[0][3]=+P[0][0],wt[1][3]=-P[2][0],wt[2][3]=+P[0][1],wt[3][3]=-P[2][1],wt[4][3]=+B,wt[5][3]=-v,T(wt,h.points))return!0;if(T(wt,h.points))return!0;for(let n=0;n<4;++n){const t=R,r=h.points[n+4];if(Bt(wt,t,r))return!0;const e=h.points[4+(n+1)%4];if(Bt(wt,r,e))return!0}return!1}_isTileVisibleInFrustumGlobal(r){if(r.level<V)return!0;const l=r.spatialReference,m=r.extent,p=this.opaqueGround&&this._aboveGround,d=this.opaqueGround&&!this._aboveGround,_=P,b=.5*(m[0]+m[2]);if(o(_[0],m[0],m[1],0),o(_[1],m[2],m[1],0),o(_[2],m[2],m[3],0),o(_[3],m[0],m[3],0),o(_[4],b,m[1],0),o(_[5],b,m[3],0),!g(_,l,0,_,this._renderSR,0,6))return!1;const M=_[0][2]>0,R=_[3][2]<0,S=M||R,G=this._renderSREllipsoidRadius;if(S){const t=L;j(t,It,_[0]);const r=Y;if(j(r,It,_[1]),M){const n=H,e=_[4],s=O;j(s,e,It),j(n,s,e);const o=_[0];u(o,t,n),B(o,G);const i=_[1];u(i,r,n),B(i,G)}else if(R){const n=H,e=_[5],s=O;j(s,e,It),j(n,e,s);const o=_[3];u(o,n,t),B(o,G);const i=_[2];u(i,n,r),B(i,G)}}const y=k,w=n(Z,_[3],_[0]);t(w,w);const T=c($,_[0],_[3]);f(T,T,.5);const q=-e(T,w),E=c(tt,_[0],_[1]);f(E,E,.5);const C=c(rt,_[2],_[3]);f(C,C,.5);const W=n(nt,C,E);t(W,W);const z=-(q+e(w,E))/e(w,W);s(y,E,W,z),B(y,G);const D=this._frustumBoundingSphereRadius,J=this._frustumBoundingSphereCenter,ut=this._frustum,dt=ut.planes,_t=A;t(_t,y);const gt=e(_[0],_t)/a(_[0]),Gt=ut.origin,jt=ut.points;let vt=!1;if(p){{vt=!0;const r=t(Ft,Gt);for(let s=0;s<4;++s){const o=jt[4+s],i=n(h(),o,Gt);t(i,i);const c=u(h(),r,i);t(c,c);const f=u(h(),i,c);t(f,f);if(e(Gt,f)>G){vt=!1;break}}}if(vt){if(e(Gt,_t)<G*gt-Mt)return!1}const r=t(Ft,ut.origin);if(e(r,_t)<0)return!1;{const r=t(Rt,ut.direction);if(e(r,_t)>St)return!1}}const Bt=Math.sqrt(1-gt*gt);if(Bt>.9)return!0;let yt=!1;const wt=e(_t,J),Tt=a(J);if(Tt<=D&&!dt.some((t=>F(t,K)>0))){if(!p)return!0;yt=!0}const Vt=wt/Tt;if(!yt&&wt<=0){if(-wt>D)return!1}const qt=D/Tt;if(Math.sqrt(1-Vt*Vt)*Math.sqrt(1-qt*qt)-qt*Vt>Bt)return!1;if(!vt){if(_.some((t=>ut.intersectsPoint(t))))return!0;if(ut.intersectsPoint(y))return!0}const xt=N;n(xt,J,K);const Et=e(xt,_t),Ct=U;f(Ct,_t,Et);const Pt=i(Ct,J),kt=l.isWGS84,Ht=r.lij,Lt=kt&&Ht[2]===2**Ht[0]-1,Yt=kt&&0===Ht[2],Ot=Yt?lt:Lt?at:ct,At=Yt?mt:Lt?ht:ft;if(!yt){const t=_,r=pt,n=et,e=st,s=K;for(const o of Ot){const i=t[o];if(v(n,t[(o+1)%4],i),v(e,s,i),j(r,e,n),x(r,jt,1))return!1}}let Ut=null;if(!p&&Et<1.01*D){const t=2.5*D;if(Pt>gt*t+D)return!1;const r=X,n=t/gt;for(let e=0;e<4;++e)f(r[e],_[e],n/G);o(r[4],0,0,0),Ut=r}else{const t=(d?G+Mt:Et+D)/gt,r=p?G-Mt:(Et-D)/gt,n=Q;for(let e=0;e<4;++e){const s=_[e];f(n[e],s,r/G),f(n[e+4],s,t/G)}Ut=n}if(I(dt,Ut,Ut.length))return!1;const Wt=ut.lines,zt=ot,Dt=it;for(const e of Wt){t(Dt,e.direction);for(const r of At){const e=Ut[r];if(t(zt,e),bt(Dt,zt,Ut,jt))return!1;const s=(r+1)%4;if(p){const r=Ut[s];if(n(zt,r,e),t(zt,zt),bt(Dt,zt,Ut,jt))return!1}if(d){const e=Ut[4+r],o=Ut[4+s];if(n(zt,o,e),t(zt,zt),bt(Dt,zt,Ut,jt))return!1}}}return!0}}function j(r,n,e){return u(r,n,e),t(r,r),r}function v(r,e,s){return n(r,e,s),t(r,r),r}function B(t,r){return f(t,t,r/a(t)),t}const y=[b.LEFT,b.RIGHT,b.BOTTOM,b.TOP,b.FAR];function w(t,r,n){for(let e=0;e<n;++e)if(F(t,r[e])<=0)return!1;return!0}function I(t,r,n){for(const e of y)if(w(t[e],r,n))return!0;return!1}function T(t,r,n=r.length){for(let e=0;e<n;++e){const n=r[e];let s=!0;for(const r of t){if(F(r,n)>0){s=!1;break}}if(s)return!0}return!1}const V=2,q=4;function x(t,r,n){for(const s of r)if(e(s,t)<n)return!1;return!0}const E=[h(),h(),h(),h(),h(),h(),h(),h()],C=[0,0,0,0,0,0],P=[h(),h(),h(),h(),h(),h()],k=h(),H=h(),L=h(),Y=h(),O=h(),A=h(),U=h(),W=h(),z=h(),D=h(),J=h(),K=l(0,0,0),N=h(),Q=[h(),h(),h(),h(),h(),h(),h(),h()],X=[h(),h(),h(),h(),h()],Z=h(),$=h(),tt=h(),rt=h(),nt=h(),et=h(),st=h(),ot=h(),it=h(),ut=h(),ct=[0,1,2,3],ft=[0,1,2,3],at=[0,1,3],ht=[0,1,3],lt=[1,2,3],mt=[1,2,3],pt=h();function dt(t,r,n){let s=1/0,o=-1/0;for(const i of n){const t=e(r,i);s=Math.min(s,t),o=Math.max(o,t)}t[0]=s,t[1]=o}function _t(t,r,n,s){let o=1/0,i=-1/0;for(const u of s){const s=e(n,u);if(o=Math.min(o,s),i=Math.max(i,s),o<=r&&i>=t)return!1}return!0}const gt=[0,0];function bt(t,r,n,e){if(0===n.length||0===e.length)return!0;const s=ut;j(s,t,r);const o=e[0]<n[0],i=o?n:e,u=gt;return dt(u,s,o?e:n),_t(u[0],u[1],s,i)}const Mt=430,Ft=h(),Rt=h(),St=Math.cos(.25*Math.PI),Gt=m(0,0,1),jt=h();function vt(t,r,n){const e={t0:0,t1:1};for(const s of y){if(!yt(t[s],r,n,e))return!1}return e.t0<e.t1}function Bt(t,r,n){const e={t0:0,t1:1};for(const s of t){if(!yt(s,r,n,e))return!1}return e.t0<e.t1}function yt(t,r,n,e){let{t0:s,t1:o}=e;const i=F(t,r),u=F(t,n);if(i>=0&&u>=0)return!1;if(i<0&&u>=0){const t=-i/(u-i);if(t<s)return!1;t<o&&(o=t)}else if(i>=0&&u<0){const t=i/(i-u);if(t>o)return!1;t>s&&(s=t)}return e.t0=s,e.t1=o,!0}const wt=[M(-1,0,0,1),M(1,0,0,-1),M(0,-1,0,1),M(0,1,0,-1),M(0,0,-1,1),M(0,0,1,-1)],It=l(0,0,1);export{G as FeatureTileVisibility3D,T as isAnyVertexInPolyhedron,I as isConvexHullOutsideOfFrustum,q as maxLODLevelDelta,V as minTileLOD};
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.32/esri/copyright.txt for details.
4
4
  */
5
- import{_ as e}from"../../../../chunks/tslib.es6.js";import t from"../../../../core/Accessor.js";import{destroyHandle as o,makeHandle as i}from"../../../../core/handleUtils.js";import{deg2rad as s}from"../../../../core/mathUtils.js";import{abortMaybe as r,destroyMaybe as n}from"../../../../core/maybe.js";import{debounce as a}from"../../../../core/promiseUtils.js";import{initial as l}from"../../../../core/reactiveUtils.js";import{getMetersPerUnitForSR as d}from"../../../../core/unitUtils.js";import{property as c}from"../../../../core/accessorSupport/decorators/property.js";import"../../../../core/has.js";import"../../../../core/Logger.js";import"../../../../core/RandomLCG.js";import{subclass as p}from"../../../../core/accessorSupport/decorators/subclass.js";import{fromRotation as h}from"../../../../core/libs/gl-matrix-2/math/mat2d.js";import{create as m}from"../../../../core/libs/gl-matrix-2/factories/mat2df64.js";import{set as _,transformMat2d as u}from"../../../../core/libs/gl-matrix-2/math/vec2.js";import{create as y}from"../../../../core/libs/gl-matrix-2/factories/vec2f64.js";import{UpdatingHandles as g}from"../../../../core/support/UpdatingHandles.js";import{ViewEventPriorities as f}from"../../../input/InputManager.js";import{mediaKeys as v,KeyBindings as b}from"../../../interactive/keybindings.js";import{acquire as T}from"../../../interactive/snapping/SnappingManagerPool.js";const j=Symbol(),w=Symbol(),E=1,M=10;let O=class extends t{get updating(){return this._updatingHandles.updating}get _preferredInteractionTool(){return this.options?.tool??"transform"}get _toolType(){switch(this._preferredInteractionTool){case"transform":return"transform-3d";case"reshape":return"reshape-3d"}}get _validatedSelectedElement(){const e=this.selectedElement;if(!e)return null;const{layer:{source:t}}=this;return t?"hasElement"in t?t.hasElement(e)?e:null:t===e?e:null:null}constructor(e){super(e),this.enabled=!1,this._updatingHandles=new g,this._isOpacityToggled=!1,this._factor=E,this._tool=null,this._object=null,this._createToolAbortController=null,this._onPointerMove=a((async e=>{const t=await this._updatingHandles.addPromise(this._findElementAtScreenPoint(e));this.destroyed||(this.removeHandles(w),t&&t!==this.selectedElement&&(this.view.cursor="pointer",this.addHandles(i((()=>this.view.cursor=null)),w)))})),this._tmpMat2=m(),this._tmpVec2=y()}destroy(){this._createToolAbortController=r(this._createToolAbortController)}initialize(){this.addHandles([o(this._updatingHandles),this._updatingHandles.add((()=>this.enabled),(e=>this._enableDisable(e)),l),this._updatingHandles.add((()=>this._preferredInteractionTool),(e=>this._preferredInteractionToolChanged(e)))])}_enableDisable(e){if(!e)return void this.removeHandles(j);this._dynamicImports();const{view:t}=this,o=new b;o.add(v.undo,(()=>{this._object?.operations?.undo(),this._object?.emit("modified-externally")})),o.add(v.redo,(()=>{this._object?.operations?.redo(),this._object?.emit("modified-externally")})),o.addToggle(v.preserveAspectRatio,(e=>{"transform-3d"===this._tool?.type&&(this._tool.preserveAspectRatio="key-down"===e.type)})),o.addToggle(v.modifySourcePoints,(e=>{const t=this._object?.operations;t&&"modifySource"in t&&(t.modifySource="key-down"===e.type)})),o.addToggle(v.rotateIncrements,(e=>{"transform-3d"===this._tool?.type&&(this._tool.snapRotation="key-down"===e.type)})),o.add(v.toggleOpacity,(()=>{const e=this._object?.element;e&&(e.opacity*=this._isOpacityToggled?2:.5,this._isOpacityToggled=!this._isOpacityToggled)})),o.add(v.moveUp,(()=>this._move(0,this._factor))),o.add(v.moveDown,(()=>this._move(0,-this._factor))),o.add(v.moveRight,(()=>this._move(this._factor,0))),o.add(v.moveLeft,(()=>this._move(-this._factor,0))),o.addToggle(v.factorModifier,(e=>this._factor="key-down"===e.type?M:E)),this._isOpacityToggled=!1,this.addHandles([o.register(t,f.TOOL),i((()=>{this._isOpacityToggled&&this.selectedElement&&(this.selectedElement.opacity*=2,this._isOpacityToggled=!1)})),t.on("immediate-click",(e=>this._onClick(e)),f.TOOL),t.on("pointer-move",(e=>this._onPointerMove(e).catch((()=>{}))),f.TOOL),this._updatingHandles.add((()=>this._validatedSelectedElement),((e,t)=>{t&&e!==t&&this._isOpacityToggled&&(t.opacity*=2,this._isOpacityToggled=!1),this._selectedElementChanged(e)}),l),i((()=>{t.cursor=null,this._removeTool()}))],j)}async _onClick(e){await this._updatingHandles.addPromise(e.async((async()=>{const t=await this._findElementAtScreenPoint(e);this.destroyed||(t&&e.stopPropagation(),this.selectedElement=t,this.selectedElement&&(this.view.cursor=null))})))}async _selectedElementChanged(e){e?.georeference?this._object?.element!==e&&await this._updatingHandles.addPromise(this._recreateTool()):this._removeTool()}async _recreateTool(){this._createToolAbortController=r(this._createToolAbortController),this._removeTool();const e=this._validatedSelectedElement;if(!e)return;const t=new AbortController;this._createToolAbortController=t;const{ManipulatedObject3DMediaElement:o,ExtentTransformTool:s,ReshapeTool3D:a}=await this._dynamicImports();if(t.signal.aborted)return;const{view:l,layer:d,_toolType:c}=this;switch(this._object=new o({view:l,layer:d,element:e,tool:this._preferredInteractionTool}),c){case"transform-3d":{this._tool=new s({view:l,object:this._object});const e=l.inputManager;e.isModifierKeyDown(v.rotateIncrements.key)&&(this._tool.snapRotation=!0),e.isModifierKeyDown(v.preserveAspectRatio.key)&&(this._tool.preserveAspectRatio=!0)}break;case"reshape-3d":{const e=T(l);this.addHandles(e,this._tool);const{snappingManager:t}=e;this._tool=new a({view:l,object:this._object,enableMidpoints:!1,enableZShape:!1,snappingManager:t,enableMoveObject:!1,autoHideManipulators:!0,enableDeleteVertices:!1,sketchOptions:{tooltips:{enabled:!0,inputEnabled:!0,visibleElements:{area:!1}}}})}}this.addHandles([i((()=>{this._object=n(this._object),this._tool&&(l.tools.remove(this._tool),this._tool=null)}))],this._tool),l.addAndActivateTool(this._tool)}_preferredInteractionToolChanged(e){const{_tool:t}=this;if(!t)return;if(this._toolType!==t.type)return void this._updatingHandles.addPromise(this._recreateTool());const{_object:o}=this;o&&(o.tool=e)}async _dynamicImports(){const[{ManipulatedObject3DMediaElement:e},{ExtentTransformTool:t,ReshapeTool3D:o}]=await Promise.all([import("../../interactive/editingTools/ManipulatedObject3DMediaElement.js"),import("../../interactive/editingTools.js")]);return{ManipulatedObject3DMediaElement:e,ExtentTransformTool:t,ReshapeTool3D:o}}async _findElementAtScreenPoint(e){const t=(await this.view.hitTest(e,{include:[this.layer]})).results[0];return"media"===t?.type?t.element:null}_removeTool(){this._tool&&this.removeHandles(this._tool)}_move(e,t){const{view:o,_object:i}=this,r=i?.operations;if(!r)return;const n=o.overlayPixelSizeInMapUnits(o.pointsOfInterest.focus.location)*d(o.spatialReference)/d(r.data.spatialReference),{_tmpMat2:a,_tmpVec2:l}=this,c=h(a,s(360-this.view.camera.heading)),p=_(l,n*e,n*t);u(p,p,c),r.move(p[0],p[1],0),i.emit("modified-externally")}};e([c({constructOnly:!0})],O.prototype,"view",void 0),e([c({constructOnly:!0})],O.prototype,"layer",void 0),e([c()],O.prototype,"selectedElement",void 0),e([c()],O.prototype,"enabled",void 0),e([c()],O.prototype,"options",void 0),e([c()],O.prototype,"updating",null),e([c()],O.prototype,"_preferredInteractionTool",null),e([c()],O.prototype,"_validatedSelectedElement",null),O=e([p("esri.views.3d.layers.support.MediaLayerInteraction")],O);export{O as MediaLayerInteraction};
5
+ import{_ as e}from"../../../../chunks/tslib.es6.js";import t from"../../../../core/Accessor.js";import{destroyHandle as o,makeHandle as i}from"../../../../core/handleUtils.js";import{deg2rad as s}from"../../../../core/mathUtils.js";import{abortMaybe as r,destroyMaybe as n}from"../../../../core/maybe.js";import{debounce as a}from"../../../../core/promiseUtils.js";import{initial as l,watch as d,syncAndInitial as c}from"../../../../core/reactiveUtils.js";import{getMetersPerUnitForSR as p}from"../../../../core/unitUtils.js";import{property as h}from"../../../../core/accessorSupport/decorators/property.js";import"../../../../core/has.js";import"../../../../core/Logger.js";import"../../../../core/RandomLCG.js";import{subclass as m}from"../../../../core/accessorSupport/decorators/subclass.js";import{fromRotation as _}from"../../../../core/libs/gl-matrix-2/math/mat2d.js";import{create as u}from"../../../../core/libs/gl-matrix-2/factories/mat2df64.js";import{set as g,transformMat2d as y}from"../../../../core/libs/gl-matrix-2/math/vec2.js";import{create as f}from"../../../../core/libs/gl-matrix-2/factories/vec2f64.js";import{UpdatingHandles as v}from"../../../../core/support/UpdatingHandles.js";import{ControlPointOperations as T}from"../../interactive/editingTools/media/ControlPointOperations.js";import{ViewEventPriorities as b}from"../../../input/InputManager.js";import{mediaKeys as j,KeyBindings as w}from"../../../interactive/keybindings.js";import{acquire as E}from"../../../interactive/snapping/SnappingManagerPool.js";const O=Symbol(),P=Symbol(),S=1,M=10;let H=class extends t{get editSourcePoints(){return!!this.options?.reshapeOptions.editSourcePoints!==this._isEditSourcePointsToggled}get updating(){return this._updatingHandles.updating}get _preferredInteractionTool(){return this.options?.tool??"transform"}get _toolType(){switch(this._preferredInteractionTool){case"transform":return"transform-3d";case"reshape":return"reshape-3d"}}get _validatedSelectedElement(){const e=this.selectedElement;if(!e)return null;const{layer:{source:t}}=this;return t?"hasElement"in t?t.hasElement(e)?e:null:t===e?e:null:null}constructor(e){super(e),this.enabled=!1,this._isEditSourcePointsToggled=!1,this._updatingHandles=new v,this._isOpacityToggled=!1,this._factor=S,this._tool=null,this._object=null,this._createToolAbortController=null,this._onPointerMove=a((async e=>{const t=await this._updatingHandles.addPromise(this._findElementAtScreenPoint(e));this.destroyed||(this.removeHandles(P),t&&t!==this.selectedElement&&(this.view.cursor="pointer",this.addHandles(i((()=>this.view.cursor=null)),P)))})),this._tmpMat2=u(),this._tmpVec2=f()}destroy(){this._createToolAbortController=r(this._createToolAbortController)}initialize(){this.addHandles([o(this._updatingHandles),this._updatingHandles.add((()=>this.enabled),(e=>this._enableDisable(e)),l),this._updatingHandles.add((()=>this._preferredInteractionTool),(e=>this._preferredInteractionToolChanged(e)))])}_enableDisable(e){if(!e)return void this.removeHandles(O);this._dynamicImports();const{view:t}=this,o=new w;o.add(j.undo,(()=>{this._object?.operations?.undo(),this._object?.emit("modified-externally")})),o.add(j.redo,(()=>{this._object?.operations?.redo(),this._object?.emit("modified-externally")})),o.addToggle(j.preserveAspectRatio,(e=>{"transform-3d"===this._tool?.type&&(this._tool.preserveAspectRatio="key-down"===e.type)})),o.addToggle(j.editSourcePoints,(e=>{"reshape-3d"===this._tool?.type&&(this._isEditSourcePointsToggled="key-down"===e.type)})),o.addToggle(j.rotateIncrements,(e=>{"transform-3d"===this._tool?.type&&(this._tool.snapRotation="key-down"===e.type)})),o.add(j.toggleOpacity,(()=>{const e=this._object?.element;e&&(e.opacity*=this._isOpacityToggled?2:.5,this._isOpacityToggled=!this._isOpacityToggled)})),o.add(j.moveUp,(()=>this._move(0,this._factor))),o.add(j.moveDown,(()=>this._move(0,-this._factor))),o.add(j.moveRight,(()=>this._move(this._factor,0))),o.add(j.moveLeft,(()=>this._move(-this._factor,0))),o.addToggle(j.factorModifier,(e=>this._factor="key-down"===e.type?M:S)),this._isOpacityToggled=!1,this.addHandles([o.register(t,b.TOOL),i((()=>{this._isOpacityToggled&&this.selectedElement&&(this.selectedElement.opacity*=2,this._isOpacityToggled=!1)})),t.on("immediate-click",(e=>this._onClick(e)),b.TOOL),t.on("pointer-move",(e=>this._onPointerMove(e).catch((()=>{}))),b.TOOL),this._updatingHandles.add((()=>this._validatedSelectedElement),((e,t)=>{t&&e!==t&&this._isOpacityToggled&&(t.opacity*=2,this._isOpacityToggled=!1),this._selectedElementChanged(e)}),l),i((()=>{t.cursor=null,this._removeTool()}))],O)}async _onClick(e){await this._updatingHandles.addPromise(e.async((async()=>{const t=await this._findElementAtScreenPoint(e);this.destroyed||(t&&e.stopPropagation(),this.selectedElement=t,this.selectedElement&&(this.view.cursor=null))})))}async _selectedElementChanged(e){e?.georeference?this._object?.element!==e&&await this._updatingHandles.addPromise(this._recreateTool()):this._removeTool()}async _recreateTool(){this._createToolAbortController=r(this._createToolAbortController),this._removeTool();const e=this._validatedSelectedElement;if(!e)return;const t=new AbortController;this._createToolAbortController=t;const{ManipulatedObject3DMediaElement:o,ExtentTransformTool:s,ReshapeTool3D:a}=await this._dynamicImports();if(t.signal.aborted)return;const{view:l,layer:p,_toolType:h}=this;switch(this._object=new o({view:l,layer:p,element:e,tool:this._preferredInteractionTool}),h){case"transform-3d":{this._tool=new s({view:l,object:this._object});const e=l.inputManager;e.isModifierKeyDown(j.rotateIncrements.key)&&(this._tool.snapRotation=!0),e.isModifierKeyDown(j.preserveAspectRatio.key)&&(this._tool.preserveAspectRatio=!0)}break;case"reshape-3d":{const e=E(l),{snappingManager:t}=e;this._tool=new a({view:l,object:this._object,enableMidpoints:!1,enableZShape:!1,snappingManager:t,enableMoveObject:!1,autoHideManipulators:!0,enableDeleteVertices:!1,sketchOptions:{tooltips:{enabled:!0,inputEnabled:!0,visibleElements:{area:!1}}}}),this.addHandles([e,d((()=>({editSourcePoints:this.editSourcePoints,operations:this._object?.operations})),(e=>{e.operations instanceof T&&(e.operations.editSourcePoints=e.editSourcePoints)}),c)],this._tool)}}this.addHandles([i((()=>{this._object=n(this._object),this._tool&&(l.tools.remove(this._tool),this._tool=null)}))],this._tool),l.addAndActivateTool(this._tool)}_preferredInteractionToolChanged(e){const{_tool:t}=this;if(!t)return;if(this._toolType!==t.type)return void this._updatingHandles.addPromise(this._recreateTool());const{_object:o}=this;o&&(o.tool=e)}async _dynamicImports(){const[{ManipulatedObject3DMediaElement:e},{ExtentTransformTool:t,ReshapeTool3D:o}]=await Promise.all([import("../../interactive/editingTools/ManipulatedObject3DMediaElement.js"),import("../../interactive/editingTools.js")]);return{ManipulatedObject3DMediaElement:e,ExtentTransformTool:t,ReshapeTool3D:o}}async _findElementAtScreenPoint(e){const t=(await this.view.hitTest(e,{include:[this.layer]})).results[0];return"media"===t?.type?t.element:null}_removeTool(){this._tool&&this.removeHandles(this._tool)}_move(e,t){const{view:o,_object:i}=this,r=i?.operations;if(!r)return;const n=o.overlayPixelSizeInMapUnits(o.pointsOfInterest.focus.location)*p(o.spatialReference)/p(r.data.spatialReference),{_tmpMat2:a,_tmpVec2:l}=this,d=_(a,s(360-this.view.camera.heading)),c=g(l,n*e,n*t);y(c,c,d),r.move(c[0],c[1],0),i.emit("modified-externally")}};e([h({constructOnly:!0})],H.prototype,"view",void 0),e([h({constructOnly:!0})],H.prototype,"layer",void 0),e([h()],H.prototype,"selectedElement",void 0),e([h()],H.prototype,"enabled",void 0),e([h()],H.prototype,"options",void 0),e([h()],H.prototype,"editSourcePoints",null),e([h()],H.prototype,"_isEditSourcePointsToggled",void 0),e([h()],H.prototype,"updating",null),e([h()],H.prototype,"_preferredInteractionTool",null),e([h()],H.prototype,"_validatedSelectedElement",null),H=e([m("esri.views.3d.layers.support.MediaLayerInteraction")],H);export{H as MediaLayerInteraction};
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.32/esri/copyright.txt for details.
4
4
  */
5
- import{_ as o}from"../../../../chunks/tslib.es6.js";import r from"../../../../core/Accessor.js";import{property as s}from"../../../../core/accessorSupport/decorators/property.js";import"../../../../core/has.js";import"../../../../core/Logger.js";import"../../../../core/RandomLCG.js";import{subclass as t}from"../../../../core/accessorSupport/decorators/subclass.js";let e=class extends r{constructor(){super(...arguments),this.tool="transform"}};o([s()],e.prototype,"tool",void 0),e=o([t("esri.views.3d.layers.support.MediaLayerInteractionOptions")],e);export{e as MediaLayerInteractionOptions};
5
+ import{_ as o}from"../../../../chunks/tslib.es6.js";import r from"../../../../core/Accessor.js";import{property as s}from"../../../../core/accessorSupport/decorators/property.js";import"../../../../core/has.js";import"../../../../core/Logger.js";import"../../../../core/RandomLCG.js";import{subclass as e}from"../../../../core/accessorSupport/decorators/subclass.js";let t=class extends r{constructor(o){super(o),this.editSourcePoints=!1}};o([s()],t.prototype,"editSourcePoints",void 0),t=o([e("esri.views.3d.layers.support.MediaLayerInteractionOptions.ReshapeOptions")],t);let p=class extends r{constructor(o){super(o),this.tool="transform",this.reshapeOptions=new t}};o([s()],p.prototype,"tool",void 0),o([s({type:t})],p.prototype,"reshapeOptions",void 0),p=o([e("esri.views.3d.layers.support.MediaLayerInteractionOptions")],p);export{p as MediaLayerInteractionOptions};
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.32/esri/copyright.txt for details.
4
4
  */
5
- import{nativeArrayMaxSize as e}from"../../../core/typedArrayUtil.js";import{generateUID as r}from"../../../core/uid.js";import{WorkerHandle as s}from"../../../core/workers/WorkerHandle.js";import t from"../../../geometry/SpatialReference.js";import o from"../../../layers/support/Field.js";class n{constructor(e){this._controller=e,this._handle=new c((r=>e.schedule(r)))}destroy(){this._handle.destroy()}invoke(e,s){return e.buffer&&0!==e.buffer.byteLength?(e.options.sourceSpatialReference&&e.options.sourceSpatialReference instanceof t&&(e.options={...e.options,sourceSpatialReference:e.options.sourceSpatialReference.toJSON()}),this._handle.invoke(e,s).then((e=>{let s=0,n=0;const c=t.fromJSON(e.spatialReference);e.spatialReference=c;const i=async t=>{const l=e.fields;if(l)for(;s<l.length;)if(l[s]=o.fromJSON(l[s]),s++,t.madeProgress())return this._controller.reschedule((e=>i(e)));const p=e.features;for(;n<p.length;){const e=p[n];++n,e.uid=r();const s=e.geometry;if(null!=s&&(s.spatialReference=c,a(s),t.madeProgress()))return this._controller.reschedule((e=>i(e)))}return e};return this._controller.schedule((e=>i(e)))}))):Promise.resolve(null)}}function a(r){switch(r.type){case"polyline":r.paths.reduce(((e,r)=>e+r.length),0)<e&&(r.paths=r.hasZ||r.hasM?r.paths.map((e=>e.map((e=>[e[0],e[1],e[2]])))):r.paths.map((e=>e.map((e=>[e[0],e[1]])))));break;case"polygon":r.rings.reduce(((e,r)=>e+r.length),0)<e&&(r.rings=r.hasZ||r.hasM?r.rings.map((e=>e.map((e=>[e[0],e[1],e[2]])))):r.rings.map((e=>e.map((e=>[e[0],e[1]])))))}}class c extends s{constructor(e){super("PBFDecoderWorker","_parseFeatureQuery",{_parseFeatureQuery:e=>[e.buffer]},e)}}export{n as PBFDecoder};
5
+ import{generateUID as e}from"../../../core/uid.js";import{WorkerHandle as r}from"../../../core/workers/WorkerHandle.js";import s from"../../../geometry/SpatialReference.js";import o from"../../../layers/support/Field.js";class t{constructor(e){this._controller=e,this._handle=new n((r=>e.schedule(r)))}destroy(){this._handle.destroy()}invoke(r,t){return r.buffer&&0!==r.buffer.byteLength?(r.options.sourceSpatialReference&&r.options.sourceSpatialReference instanceof s&&(r.options={...r.options,sourceSpatialReference:r.options.sourceSpatialReference.toJSON()}),this._handle.invoke(r,t).then((r=>{let t=0,n=0;const i=s.fromJSON(r.spatialReference);r.spatialReference=i;const p=async s=>{const c=r.fields;if(c)for(;t<c.length;)if(c[t]=o.fromJSON(c[t]),t++,s.madeProgress())return this._controller.reschedule((e=>p(e)));const l=r.features;for(;n<l.length;){const r=l[n];++n,r.uid=e();const o=r.geometry;if(null!=o&&(o.spatialReference=i,a(o),s.madeProgress()))return this._controller.reschedule((e=>p(e)))}return r};return this._controller.schedule((e=>p(e)))}))):Promise.resolve(null)}}function a(e){switch(e.type){case"polyline":e.paths=e.hasZ&&e.hasM?e.paths.map((e=>e.map((e=>[e[0],e[1],e[2],e[3]])))):e.hasZ||e.hasM?e.paths.map((e=>e.map((e=>[e[0],e[1],e[2]])))):e.paths.map((e=>e.map((e=>[e[0],e[1]]))));break;case"polygon":e.rings=e.hasZ&&e.hasM?e.rings.map((e=>e.map((e=>[e[0],e[1],e[2],e[3]])))):e.hasZ||e.hasM?e.rings.map((e=>e.map((e=>[e[0],e[1],e[2]])))):e.rings.map((e=>e.map((e=>[e[0],e[1]]))))}}class n extends r{constructor(e){super("PBFDecoderWorker","_parseFeatureQuery",{_parseFeatureQuery:e=>[e.buffer]},e)}}export{t as PBFDecoder};
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.32/esri/copyright.txt for details.
4
4
  */
5
- import"../../../../core/has.js";import{packFloatRGBA as t}from"../../../../core/floatRGBA.js";import{Texture as r}from"../../webgl-engine/lib/Texture.js";import{TextureWrapMode as n}from"../../../webgl/enums.js";const e=128,o=.5;function a(t){return"cross"===t||"x"===t}function u(t,a=e,u=a*o,s=0){const i=c(t,a,u,s);return new r(i,{mipmap:!1,wrap:{s:n.CLAMP_TO_EDGE,t:n.CLAMP_TO_EDGE},width:a,height:a,components:4,noUnpackFlip:!0,reloadable:!0})}function c(t,r=e,n=r*o,a=0){switch(t){case"circle":default:return s(r,n);case"square":return i(r,n);case"cross":return h(r,n,a);case"x":return M(r,n,a);case"kite":return f(r,n);case"triangle":return l(r,n);case"arrow":return m(r,n)}}function s(t,r){const n=t/2-.5;return x(t,T(n,n,r/2))}function i(t,r){return p(t,r,!1)}function f(t,r){return p(t,r,!0)}function h(t,r,n=0){return b(t,r,!1,n)}function M(t,r,n=0){return b(t,r,!0,n)}function l(t,r){return x(t,w(t/2,r,r/2))}function m(t,r){const n=r,e=r/2,o=t/2,a=.8*n,u=T(o,(t-r)/2-a,Math.sqrt(a*a+e*e)),c=w(o,n,e);return x(t,((t,r)=>Math.max(c(t,r),-u(t,r))))}function p(t,r,n){return n&&(r/=Math.SQRT2),x(t,((e,o)=>{let a=e-.5*t+.25,u=.5*t-o-.75;if(n){const t=(a+u)/Math.SQRT2;u=(u-a)/Math.SQRT2,a=t}return Math.max(Math.abs(a),Math.abs(u))-.5*r}))}function b(t,r,n,e=0){r-=e,n&&(r*=Math.SQRT2);const o=.5*r;return x(t,((r,a)=>{let u,c=r-.5*t,s=.5*t-a-1;if(n){const t=(c+s)/Math.SQRT2;s=(s-c)/Math.SQRT2,c=t}return c=Math.abs(c),s=Math.abs(s),u=c>s?c>o?Math.sqrt((c-o)*(c-o)+s*s):s:s>o?Math.sqrt(c*c+(s-o)*(s-o)):c,u-=e/2,u}))}function T(t,r,n){return(e,o)=>{const a=e-t,u=o-r;return Math.sqrt(a*a+u*u)-n}}function w(t,r,n){const e=Math.sqrt(r*r+n*n);return(o,a)=>{const u=Math.abs(o-t)-n,c=a-t+r/2+.75,s=(r*u+n*c)/e,i=-c;return Math.max(s,i)}}function x(r,n){const e=new Uint8Array(4*r*r);for(let o=0;o<r;o++)for(let a=0;a<r;a++){const u=a+r*o;let c=n(a,o);c=c/r+.5,t(c,e,4*u)}return e}export{m as createArrow,s as createCircle,h as createCross,f as createKite,c as createPrimitive,i as createSquare,u as createTexture,l as createTriangle,M as createX,o as defaultSymbolSizeRatio,e as defaultTexSize,a as requiresHalfTexelOffset};
5
+ import"../../../../core/has.js";import{packFloatRGBA as t}from"../../../../core/floatRGBA.js";import{freeze as r}from"../../../../core/libs/gl-matrix-2/factories/vec4f64.js";import{Texture as n}from"../../webgl-engine/lib/Texture.js";import{TextureWrapMode as e}from"../../../webgl/enums.js";const o=128,a=.5,c=r(a/2,a/2,1-a/2,1-a/2);function s(t){return"cross"===t||"x"===t}function u(t,r=o,c=r*a,s=0){const u=i(t,r,c,s);return new n(u,{mipmap:!1,wrap:{s:e.CLAMP_TO_EDGE,t:e.CLAMP_TO_EDGE},width:r,height:r,components:4,noUnpackFlip:!0,reloadable:!0})}function i(t,r=o,n=r*a,e=0){switch(t){case"circle":default:return f(r,n);case"square":return h(r,n);case"cross":return l(r,n,e);case"x":return m(r,n,e);case"kite":return M(r,n);case"triangle":return p(r,n);case"arrow":return b(r,n)}}function f(t,r){const n=t/2-.5;return g(t,x(n,n,r/2))}function h(t,r){return T(t,r,!1)}function M(t,r){return T(t,r,!0)}function l(t,r,n=0){return w(t,r,!1,n)}function m(t,r,n=0){return w(t,r,!0,n)}function p(t,r){return g(t,R(t/2,r,r/2))}function b(t,r){const n=r,e=r/2,o=t/2,a=.8*n,c=x(o,(t-r)/2-a,Math.sqrt(a*a+e*e)),s=R(o,n,e);return g(t,((t,r)=>Math.max(s(t,r),-c(t,r))))}function T(t,r,n){return n&&(r/=Math.SQRT2),g(t,((e,o)=>{let a=e-.5*t+.25,c=.5*t-o-.75;if(n){const t=(a+c)/Math.SQRT2;c=(c-a)/Math.SQRT2,a=t}return Math.max(Math.abs(a),Math.abs(c))-.5*r}))}function w(t,r,n,e=0){r-=e,n&&(r*=Math.SQRT2);const o=.5*r;return g(t,((r,a)=>{let c,s=r-.5*t,u=.5*t-a-1;if(n){const t=(s+u)/Math.SQRT2;u=(u-s)/Math.SQRT2,s=t}return s=Math.abs(s),u=Math.abs(u),c=s>u?s>o?Math.sqrt((s-o)*(s-o)+u*u):u:u>o?Math.sqrt(s*s+(u-o)*(u-o)):s,c-=e/2,c}))}function x(t,r,n){return(e,o)=>{const a=e-t,c=o-r;return Math.sqrt(a*a+c*c)-n}}function R(t,r,n){const e=Math.sqrt(r*r+n*n);return(o,a)=>{const c=Math.abs(o-t)-n,s=a-t+r/2+.75,u=(r*c+n*s)/e,i=-s;return Math.max(u,i)}}function g(r,n){const e=new Uint8Array(4*r*r);for(let o=0;o<r;o++)for(let a=0;a<r;a++){const c=a+r*o;let s=n(a,o);s=s/r+.5,t(s,e,4*c)}return e}export{b as createArrow,f as createCircle,l as createCross,M as createKite,i as createPrimitive,h as createSquare,u as createTexture,p as createTriangle,m as createX,c as defaultBoundingBox,a as defaultSymbolSizeRatio,o as defaultTexSize,s as requiresHalfTexelOffset};
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.32/esri/copyright.txt for details.
4
4
  */
5
- import{ZEROS as e}from"../../../core/libs/gl-matrix-2/factories/vec3f64.js";import{TileCompositePassParameters as r}from"../webgl-engine/core/shaderLibrary/terrain/TileComposite.glsl.js";import{B as s}from"../../../chunks/BlendLayers.glsl.js";import{ReloadableShaderModule as o}from"../webgl-engine/core/shaderTechnique/ReloadableShaderModule.js";import{ShaderTechnique as i}from"../webgl-engine/core/shaderTechnique/ShaderTechnique.js";class t extends r{constructor(){super(...arguments),this.opacity=1,this.baseOpacity=1,this.texture=null,this.fboTexture=null,this.backgroundColor=e}}class l extends i{constructor(e,r,i){super(e,r,new o(s,(()=>import("../webgl-engine/core/shaderLibrary/util/BlendLayers.glsl.js"))),i)}}export{t as BlendLayersPassParameters,l as BlendLayersTechnique};
5
+ import{ZEROS as e}from"../../../core/libs/gl-matrix-2/factories/vec3f64.js";import{TileCompositePassParameters as r}from"../webgl-engine/core/shaderLibrary/terrain/TileComposite.glsl.js";import{B as s}from"../../../chunks/BlendLayers.glsl.js";import{ReloadableShaderModule as o}from"../webgl-engine/core/shaderTechnique/ReloadableShaderModule.js";import{ShaderTechnique as i}from"../webgl-engine/core/shaderTechnique/ShaderTechnique.js";class t extends r{constructor(){super(...arguments),this.opacity=1,this.baseOpacity=1,this.texture=null,this.fboTexture=null,this.backgroundColor=e}}class l extends i{constructor(e,r){super(e,r,new o(s,(()=>import("../webgl-engine/core/shaderLibrary/util/BlendLayers.glsl.js"))))}}export{t as BlendLayersPassParameters,l as BlendLayersTechnique};
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.32/esri/copyright.txt for details.
4
4
  */
5
- import{_ as e}from"../../../chunks/tslib.es6.js";import r from"../../../core/Evented.js";import"../../../core/has.js";import{someMap as t}from"../../../core/MapUtils.js";import{disposeMaybe as s}from"../../../core/maybe.js";import i from"../../../core/PooledArray.js";import{watch as o,syncAndInitial as n,on as a,initial as h}from"../../../core/reactiveUtils.js";import{someSet as d}from"../../../core/SetUtils.js";import{property as l}from"../../../core/accessorSupport/decorators/property.js";import"../../../core/Logger.js";import"../../../core/RandomLCG.js";import{subclass as c}from"../../../core/accessorSupport/decorators/subclass.js";import{ortho as u,fromTranslation as p}from"../../../core/libs/gl-matrix-2/math/mat4.js";import{i as g}from"../../../chunks/vec32.js";import{ones as _}from"../../../core/libs/gl-matrix-2/factories/vec3f64.js";import{DrapeTargetType as m,DrapeSourceType as y,DrapedRenderGroup as f}from"../layers/interfaces.js";import{debugFlags as R}from"../support/debugFlags.js";import{OverlayIndex as w}from"./interfaces.js";import{Overlay as T}from"./Overlay.js";import{OverlayContent as b}from"./OverlayContent.js";import{OverlayRenderTargets as v}from"./OverlayRenderTargets.js";import D from"../webgl/RenderCamera.js";import{ShaderOutput as x}from"../webgl-engine/core/shaderLibrary/ShaderOutput.js";import{OverlayMode as O}from"../webgl-engine/core/shaderLibrary/terrain/Overlay.glsl.js";import{T as S}from"../../../chunks/TextureOnly.glsl.js";import{SyncRenderPlugin as C}from"../webgl-engine/effects/RenderPlugin.js";import{trackHighlightOptions as E,renderHighlightBuffer as P}from"../webgl-engine/effects/highlight/Highlight.js";import{GLMaterialRepository as j}from"../webgl-engine/lib/GLMaterialRepository.js";import{GridLocalOriginFactory as A}from"../webgl-engine/lib/GridLocalOriginFactory.js";import{RenderOccludedFlag as M}from"../webgl-engine/lib/Material.js";import{OITPass as W}from"../webgl-engine/lib/OITPass.js";import{OverlayRenderContext as I,defaultRenderOccludedMask as q}from"../webgl-engine/lib/RenderContext.js";import{RenderSlot as F}from"../webgl-engine/lib/RenderSlot.js";import{ShadowMap as L}from"../webgl-engine/lib/ShadowMap.js";import{TextureTechnique as N}from"../webgl-engine/lib/TextureTechnique.js";import{TextureTechniqueConfiguration as V}from"../webgl-engine/lib/TextureTechniqueConfiguration.js";import{Update as H}from"../webgl-engine/lib/Update.js";import{UpdatePolicy as k}from"../webgl-engine/lib/UpdatePolicy.js";import{AmbientLight as G}from"../webgl-engine/lighting/Lightsources.js";import{O as U}from"../../../chunks/OverlayCompositing.glsl.js";import{OverlayCompositingTechnique as B}from"../webgl-engine/shaders/OverlayCompositingTechnique.js";import{TaskPriority as z,noBudget as Y}from"../../support/Scheduler.js";import{FramebufferBit as X,TextureSamplingMode as J}from"../../webgl/enums.js";import{Texture as K}from"../../webgl/Texture.js";import{TextureDescriptor as Q}from"../../webgl/TextureDescriptor.js";let Z=class extends C{constructor(e){super(e),this._overlays=null,this._renderTargets=null,this._overlayParameters=new U,this.hasHighlights=!1,this._hasWater=!1,this._renderers=new Map,this._sortedDrapeSourceRenderersDirty=!1,this._sortedRenderers=new i,this._passParameters=new S,this._materials=null,this._screenToWorldRatio=1,this._localOriginFactory=null,this.unloadedMemory=0,this.ignoresMemoryFactor=!1,this._camera=new D,this.worldToPCSRatio=1,this.events=new r,this.longitudeCyclical=null,this.produces=new Map([[F.DRAPED_MATERIAL,e=>e!==x.Highlight||this.hasHighlights],[F.DRAPED_WATER,()=>this._hasWater]]),this._hasTargetWithoutRasterImage=!1,this._hasDrapedFeatureSource=!1,this._hasDrapedRasterSource=!1}initialize(){const{view:e}=this,{_stage:r}=e,t=r.renderer.fboCache,s=r.renderView,{waterTextures:i,textures:d}=s;this._renderContext=new I(this._rctx,new L(t,e.state.viewingMode)),this.addHandles([o((()=>i.updating),(()=>this.events.emit("content-changed")),n),o((()=>this.spatialReference),(e=>this._localOriginFactory=new A(e)),n),a((()=>this.view.allLayerViews),"after-changes",(()=>this._sortedDrapeSourceRenderersDirty=!0)),o((()=>E(this.view.state.highlights)),(()=>this._sortedDrapeSourceRenderersDirty=!0),h),o((()=>this.view.state.highlights),(e=>{this._bindParameters.highlights=e,this._bindParameters.highlightOrderMap=this.view.state.highlightOrderMap,this._updateHighlights()}),h)]),this._materials=new j(d,this._techniques,(()=>{this.notifyChange("rendersOccludedDraped"),this.events.emit("content-changed"),this.notifyChange("updating"),this.notifyChange("isEmpty")}),(()=>this.events.emit("content-changed")));const{_bindParameters:l,_camera:c}=this;l.slot=F.DRAPED_MATERIAL,l.mainDepth=null,c.near=1,c.far=1e4,c.relativeElevation=null,l.camera=this._camera,l.oitPass=W.NONE,l.updateLighting([new G(_())],0,0,H.Immediate),this.addHandles(this.view.resourceController.scheduler.registerTask(z.STAGE,this))}destroy(){this._renderers.forEach((e=>e.destroy())),this._renderers.clear(),this._passParameters.texture=s(this._passParameters.texture),this.disposeOverlays()}get _bindParameters(){return this._renderContext.bind}get _rctx(){return this.view._stage.renderView.renderingContext}get _techniques(){return this.view._stage.renderView.techniques}get rctx(){return this._rctx}get materials(){return this._materials}get screenToWorldRatio(){return this._screenToWorldRatio}get localOriginFactory(){return this._localOriginFactory}get pluginContext(){return this._pluginContext}initializeRenderContext(e){this._pluginContext=e,this._techniques.precompile(B)}uninitializeRenderContext(){}acquireTechniques(){return[]}render(){}get updating(){return this._sortedDrapeSourceRenderersDirty||t(this._renderers,(e=>e.updating))}get hasOverlays(){return null!=this._overlays&&null!=this._renderTargets}getMaterialRenderer(e){for(const r of this._renderers.values()){const t=r.getMaterialRenderer(e);if(t)return t}return null}get layers(){return this._sortedDrapeSourceRenderersDirty&&this._updateSortedDrapeSourceRenderers(),this._sortedRenderers.map((e=>e.drapeSource.layer)).filter((e=>!!e))}_updateHighlights(){const e=this.view.state;this._renderers.forEach((r=>r.updateHighlights(e.highlightOrderMap)))}createDrapeSourceRenderer(e,r,t){const s=this._renderers.get(e);null!=s&&s.destroy();const i=new r({...t,rendererContext:this,drapeSource:e});return this._renderers.set(e,i),this._sortedDrapeSourceRenderersDirty=!0,"fullOpacity"in e&&this.addHandles(o((()=>e.fullOpacity),(()=>this.events.emit("content-changed"))),e),i}removeDrapeSourceRenderer(e){if(null==e)return;const r=this._renderers.get(e);null!=r&&(this._sortedDrapeSourceRenderersDirty=!0,this._renderers.delete(e),this.removeHandles(e),r.destroy())}computeValidity(){return this._renderTargets?.computeValidity()??0}releaseRenderTargets(){this._renderTargets?.dispose()}get overlays(){return this._overlays??[]}ensureDrapeTargets(e){this._hasTargetWithoutRasterImage=!!this._overlays&&d(e,(e=>e.drapeTargetType===m.WithoutRasterImage))}ensureDrapeSources(e){this._overlays?(this._hasDrapedFeatureSource=d(e,(e=>e.drapeSourceType===y.Features)),this._hasDrapedRasterSource=d(e,(e=>e.drapeSourceType===y.RasterImage))):this._hasDrapedFeatureSource=this._hasDrapedRasterSource=!1}get _needsColorWithoutRasterImage(){return this._hasDrapedRasterSource&&this._hasDrapedFeatureSource&&this._hasTargetWithoutRasterImage}ensureOverlays(e,r,t=this._bindParameters.overlayStretch){null==this._overlays&&(this._renderTargets=new v(this.view._stage.renderer.fboCache),this._overlays=[new T,new T]),this.ensureDrapeTargets(e),this.ensureDrapeSources(r),this._bindParameters.overlayStretch=t}disposeOverlays(){this._overlays=null,this._renderTargets=s(this._renderTargets),this.events.emit("textures-disposed")}getTexture(e){if(null!=e)return e===b.ColorNoRasterImage&&!this._needsColorWithoutRasterImage&&this._hasDrapedFeatureSource?this._renderTargets?.getTexture(b.Color):this._renderTargets?.getTexture(e)}get running(){return this.updating}runTask(e){this._processDrapeSources(e,(()=>!0))}_processDrapeSources(e,r){let s=!1;for(const[t,i]of this._renderers){if(e.done)break;(t.destroyed||r(t))&&(i.commitChanges(this.view.state.highlightOrderMap)&&(s=!0,e.madeProgress()))}this._sortedDrapeSourceRenderersDirty&&(this._sortedDrapeSourceRenderersDirty=!1,s=!0,this._updateSortedDrapeSourceRenderers()),s&&(null!=this._overlays&&0===this._renderers.size&&this.disposeOverlays(),this.notifyChange("updating"),this.notifyChange("isEmpty"),this.events.emit("content-changed"),this.hasHighlights=t(this._renderers,(e=>e.hasHighlights)),this.notifyChange("rendersOccludedDraped"))}hasHighlightOptions(e){return t(this._renderers,(r=>r.hasHighlightOptions(e)))}processSyncDrapeSources(){this._processDrapeSources(Y,(e=>e.updatePolicy===k.SYNC))}get isEmpty(){return!R.OVERLAY_DRAW_DEBUG_TEXTURE&&!t(this._renderers,(e=>!e.isEmpty))}get hasWater(){const e=t(this._renderers,(e=>e.hasWater));return e!==this._hasWater&&(this._hasWater=e,this.events.emit("has-water")),this._hasWater}get rendersOccludedDraped(){const e=this._renderContext.renderOccludedMask;this._renderContext.renderOccludedMask=te,++this._techniques.precompiling;const r=this._sortedRenderers.some((({renderer:e})=>e.precompile(this._renderContext)));return--this._techniques.precompiling,this._renderContext.renderOccludedMask=e,r}renders(e){if(R.OVERLAY_DRAW_DEBUG_TEXTURE&&e!==b.Occluded&&e!==b.Highlight)return!0;++this._techniques.precompiling;const r=this._sortedRenderers.some((({renderer:e})=>e.precompile(this._renderContext)));return--this._techniques.precompiling,r}get mode(){return this.isEmpty?O.Disabled:this.hasWater&&this.renders(b.WaterNormal)?O.EnabledWithWater:this._renderTargets?.getTexture(b.Color)?O.Enabled:O.Disabled}updateAnimation(e){let r=!1;return this._renderers.forEach((t=>r=t.updateAnimation(e)||r)),r}updateDrapeSourceOrder(){this._sortedDrapeSourceRenderersDirty=!0}precompileShaders(e){if(this._renderTargets){this._bindParameters.alignPixelEnabled=e.alignPixelEnabled,++this._techniques.precompiling;for(const e of this._renderTargets.targets){if(e.content===b.ColorNoRasterImage&&!this._needsColorWithoutRasterImage)continue;const r=e.output;this._renderContext.output=r,this._bindParameters.slot=r===x.Normal?F.DRAPED_WATER:F.DRAPED_MATERIAL,e.content===b.Occluded&&(this._renderContext.renderOccludedMask=te),this._sortedRenderers.forAll((({drapeSource:r,renderer:t})=>{e.content===b.ColorNoRasterImage&&r.drapeSourceType===y.RasterImage||t.precompile(this._renderContext)})),this._renderContext.renderOccludedMask=q}--this._techniques.precompiling}}drawOverlays(e){if(this._overlays&&this._renderTargets){for(const e of this._overlays)this.longitudeCyclical?e.setupGeometryViewsCyclical(this.longitudeCyclical):e.setupGeometryView();this._bindParameters.alignPixelEnabled=e.alignPixelEnabled;for(const e of this._renderTargets.targets){if(e.content===b.ColorNoRasterImage&&!this._needsColorWithoutRasterImage)continue;const r=this._drawTarget(w.INNER,e),t=this._drawTarget(w.OUTER,e);(r||t)&&e.fbo.generateMipMap()}}}_drawTarget(e,r){const t=this._overlays[e],s=t.canvasGeometries;if(0===s.numViews)return!1;const i=this.view.state.contentPixelRatio;this._screenToWorldRatio=i*t.mapUnitsPerPixel/this._bindParameters.overlayStretch;const o=r.output;if(this.isEmpty||o===x.Normal&&!this.hasWater||!t.hasSomeSizedView())return!1;const{_rctx:n,_camera:a,_renderContext:h,_bindParameters:d}=this;if(a.pixelRatio=t.pixelRatio*i,h.output=o,d.screenToWorldRatio=this._screenToWorldRatio,d.screenToPCSRatio=this._screenToWorldRatio*this.worldToPCSRatio,d.slot=o===x.Normal?F.DRAPED_WATER:F.DRAPED_MATERIAL,r.content===b.Occluded&&(h.renderOccludedMask=te),!this.renders(r.content))return h.renderOccludedMask=q,!1;const{resolution:l}=t,c=e===w.INNER?0:l;n.setViewport(c,0,l,l),this._bindTargetFBO(r),e===w.INNER&&(n.setClearColor(0,0,0,0),n.clear(X.COLOR));if(R.OVERLAY_DRAW_DEBUG_TEXTURE&&r.content!==b.Occluded&&r.content!==b.Highlight){this._techniques.precompile(N,se);const r=this._techniques.acquire(N,se);for(let i=0;i<s.numViews;i++)this._setViewParameters(s.extents[i],t),this._ensureDebugPatternResources(t.resolution,ee[e]),n.bindTechnique(r,d,this._passParameters),n.screen.draw();r.release()}if(r.output===x.Highlight){const{fboCache:t}=this.view._stage.renderer,s=this._resolution;this._bindTargetFBO(r),P(n,t,{width:s,height:s},d,(()=>this._renderAllGeometry(e,r)),c)}else this._renderAllGeometry(e,r);return n.bindFramebuffer(null),h.renderOccludedMask=q,!0}_renderAllGeometry(e,r){const t=this._overlays[e],s=t.canvasGeometries;this._sortedRenderers.forAll((({drapeSource:i,renderer:o})=>{if(r.content===b.ColorNoRasterImage&&i.drapeSourceType===y.RasterImage)return;const{fullOpacity:n}=i,a=null!=n&&n<1&&r.output===x.Color&&this._bindTemporaryFBO();for(let e=0;e<s.numViews;e++)this._setViewParameters(s.extents[e],t),o.render(this._renderContext);if(a){this._bindTargetFBO(r),this._overlayParameters.texture=a.getTexture(),this._overlayParameters.opacity=n,this._overlayParameters.overlayIndex=e;const t=this._techniques.acquire(B);this._rctx.bindTechnique(t,this._bindParameters,this._overlayParameters),this._rctx.screen.draw(),t.release(),a.release()}}))}_bindTargetFBO(e){const r=this._resolution,t=2*r;e.fbo.bind(this._rctx,t,r)}_bindTemporaryFBO(){const e=this._resolution,r=2*e,t=this.view._stage.renderer.fboCache,s=t.acquire(r,e,"overlay tmp");return t.rctx.bindFramebuffer(s.fbo),t.rctx.clear(X.COLOR),s}get _resolution(){return this._overlays?.[w.INNER].resolution??0}notifyContentChanged(){this.events.emit("content-changed")}intersect(e,r,t,s){this._sortedDrapeSourceRenderersDirty&&this._updateSortedDrapeSourceRenderers();let i=0;for(const{renderer:o}of this._sortedRenderers)i=o.intersect?.(e,r,t,s,i)??i}_updateSortedDrapeSourceRenderers(){if(this._sortedRenderers.clear(),0===this._renderers.size)return;const e=this.view.map.allLayers,r=e.length;this._renderers.forEach(((t,s)=>{const i=e.indexOf(s.layer),o=i>=0,n=s.renderGroup??(o?f.MapLayer:f.ViewLayer),a=r*n+(o?i:0);this._sortedRenderers.push(new $(s,t,a))})),this._sortedRenderers.sort(((e,r)=>e.index-r.index))}_setViewParameters(e,r){const t=this._camera;t.viewport=[0,0,r.resolution,r.resolution],u(t.projectionMatrix,0,e[2]-e[0],0,e[3]-e[1],t.near,t.far),p(t.viewMatrix,[-e[0],-e[1],0])}_ensureDebugPatternResources(e,r){if(g(this._passParameters.color,r[0],r[1],r[2]),this._passParameters.texture)return;const t=new Uint8Array(e*e*4);let s=0;for(let o=0;o<e;o++)for(let r=0;r<e;r++){const i=Math.floor(r/10),n=Math.floor(o/10);i<2||n<2||10*i>e-20||10*n>e-20?(t[s++]=255,t[s++]=255,t[s++]=255,t[s++]=255):(t[s++]=255,t[s++]=255,t[s++]=255,t[s++]=1&i&&1&n?1&r^1&o?0:255:1&i^1&n?0:128)}const i=new Q(e);i.samplingMode=J.NEAREST,this._passParameters.texture=new K(this._rctx,i,t)}get test(){}};e([l()],Z.prototype,"hasHighlights",void 0),e([l()],Z.prototype,"_sortedDrapeSourceRenderersDirty",void 0),e([l({constructOnly:!0})],Z.prototype,"view",void 0),e([l({readOnly:!0})],Z.prototype,"_techniques",null),e([l()],Z.prototype,"worldToPCSRatio",void 0),e([l()],Z.prototype,"spatialReference",void 0),e([l({type:Boolean,readOnly:!0})],Z.prototype,"updating",null),e([l()],Z.prototype,"isEmpty",null),e([l({readOnly:!0})],Z.prototype,"rendersOccludedDraped",null),Z=e([c("esri.views.3d.terrain.OverlayRenderer")],Z);class ${constructor(e,r,t){this.drapeSource=e,this.renderer=r,this.index=t}}const ee=[[1,.5,.5],[.5,.5,1]],re=-2,te=M.OccludeAndTransparent,se=new V;se.hasAlpha=!0;export{Z as OverlayRenderer,re as drapedZ,te as overlayRenderOccludedFlag};
5
+ import{_ as e}from"../../../chunks/tslib.es6.js";import r from"../../../core/Evented.js";import"../../../core/has.js";import{someMap as t}from"../../../core/MapUtils.js";import{disposeMaybe as s}from"../../../core/maybe.js";import i from"../../../core/PooledArray.js";import{watch as o,syncAndInitial as n,on as a,initial as h}from"../../../core/reactiveUtils.js";import{someSet as d}from"../../../core/SetUtils.js";import{property as l}from"../../../core/accessorSupport/decorators/property.js";import"../../../core/Logger.js";import"../../../core/RandomLCG.js";import{subclass as c}from"../../../core/accessorSupport/decorators/subclass.js";import{ortho as u,fromTranslation as p}from"../../../core/libs/gl-matrix-2/math/mat4.js";import{i as g}from"../../../chunks/vec32.js";import{ones as _}from"../../../core/libs/gl-matrix-2/factories/vec3f64.js";import{DrapeTargetType as m,DrapeSourceType as y,DrapedRenderGroup as f}from"../layers/interfaces.js";import{debugFlags as R}from"../support/debugFlags.js";import{OverlayIndex as w}from"./interfaces.js";import{Overlay as T}from"./Overlay.js";import{OverlayContent as b}from"./OverlayContent.js";import{OverlayRenderTargets as v}from"./OverlayRenderTargets.js";import D from"../webgl/RenderCamera.js";import{ShaderOutput as x}from"../webgl-engine/core/shaderLibrary/ShaderOutput.js";import{OverlayMode as O}from"../webgl-engine/core/shaderLibrary/terrain/Overlay.glsl.js";import{T as S}from"../../../chunks/TextureOnly.glsl.js";import{SyncRenderPlugin as C}from"../webgl-engine/effects/RenderPlugin.js";import{trackHighlightOptions as E,renderHighlightBuffer as P}from"../webgl-engine/effects/highlight/Highlight.js";import{GLMaterialRepository as j}from"../webgl-engine/lib/GLMaterialRepository.js";import{GridLocalOriginFactory as A}from"../webgl-engine/lib/GridLocalOriginFactory.js";import{RenderOccludedFlag as M}from"../webgl-engine/lib/Material.js";import{OITPass as W}from"../webgl-engine/lib/OITPass.js";import{OverlayRenderContext as I,defaultRenderOccludedMask as q}from"../webgl-engine/lib/RenderContext.js";import{RenderSlot as F}from"../webgl-engine/lib/RenderSlot.js";import{ShadowMap as L}from"../webgl-engine/lib/ShadowMap.js";import{TextureTechnique as N}from"../webgl-engine/lib/TextureTechnique.js";import{TextureTechniqueConfiguration as V}from"../webgl-engine/lib/TextureTechniqueConfiguration.js";import{Update as H}from"../webgl-engine/lib/Update.js";import{UpdatePolicy as k}from"../webgl-engine/lib/UpdatePolicy.js";import{AmbientLight as G}from"../webgl-engine/lighting/Lightsources.js";import{O as U}from"../../../chunks/OverlayCompositing.glsl.js";import{OverlayCompositingTechnique as B}from"../webgl-engine/shaders/OverlayCompositingTechnique.js";import{TaskPriority as z,noBudget as Y}from"../../support/Scheduler.js";import{FramebufferBit as X,TextureSamplingMode as J}from"../../webgl/enums.js";import{Texture as K}from"../../webgl/Texture.js";import{TextureDescriptor as Q}from"../../webgl/TextureDescriptor.js";let Z=class extends C{constructor(e){super(e),this._overlays=null,this._renderTargets=null,this._overlayParameters=new U,this.hasHighlights=!1,this._hasWater=!1,this._renderers=new Map,this._sortedDrapeSourceRenderersDirty=!1,this._sortedRenderers=new i,this._passParameters=new S,this._materials=null,this._screenToWorldRatio=1,this._localOriginFactory=null,this.unloadedMemory=0,this.ignoresMemoryFactor=!1,this._camera=new D,this.worldToPCSRatio=1,this.events=new r,this.longitudeCyclical=null,this.produces=new Map([[F.DRAPED_MATERIAL,e=>e!==x.Highlight||this.hasHighlights],[F.DRAPED_WATER,()=>this._hasWater]]),this._hasTargetWithoutRasterImage=!1,this._hasDrapedFeatureSource=!1,this._hasDrapedRasterSource=!1}initialize(){const{view:e}=this,{_stage:r}=e,t=r.renderer.fboCache,s=r.renderView,{waterTextures:i,textures:d}=s;this._renderContext=new I(this._rctx,new L(t,e.state.viewingMode)),this.addHandles([o((()=>i.updating),(()=>this.events.emit("content-changed")),n),o((()=>this.spatialReference),(e=>this._localOriginFactory=new A(e)),n),a((()=>this.view.allLayerViews),"after-changes",(()=>this._sortedDrapeSourceRenderersDirty=!0)),o((()=>E(this.view.state.highlights)),(()=>this._sortedDrapeSourceRenderersDirty=!0),h),o((()=>this.view.state.highlights),(e=>{this._bindParameters.highlights=e,this._bindParameters.highlightOrderMap=this.view.state.highlightOrderMap,this._updateHighlights()}),h)]),this._materials=new j(d,this._techniques,(()=>{this.notifyChange("rendersOccludedDraped"),this.events.emit("content-changed"),this.notifyChange("updating"),this.notifyChange("isEmpty")}),(()=>this.events.emit("content-changed")));const{_bindParameters:l,_camera:c}=this;l.slot=F.DRAPED_MATERIAL,l.mainDepth=null,c.near=1,c.far=1e4,c.relativeElevation=null,l.camera=this._camera,l.oitPass=W.NONE,l.updateLighting([new G(_())],0,0,H.Immediate),this.addHandles(this.view.resourceController.scheduler.registerTask(z.STAGE,this))}destroy(){this._renderers.forEach((e=>e.destroy())),this._renderers.clear(),this._passParameters.texture=s(this._passParameters.texture),this.disposeOverlays()}get _bindParameters(){return this._renderContext.bind}get _rctx(){return this.view._stage.renderView.renderingContext}get _techniques(){return this.view._stage.renderView.techniques}get rctx(){return this._rctx}get materials(){return this._materials}get screenToWorldRatio(){return this._screenToWorldRatio}get localOriginFactory(){return this._localOriginFactory}get pluginContext(){return this._pluginContext}initializeRenderContext(e){this._pluginContext=e,this._techniques.precompile(B)}uninitializeRenderContext(){}acquireTechniques(){return[]}render(){}get updating(){return this._sortedDrapeSourceRenderersDirty||t(this._renderers,(e=>e.updating))}get hasOverlays(){return null!=this._overlays&&null!=this._renderTargets}getMaterialRenderer(e){for(const r of this._renderers.values()){const t=r.getMaterialRenderer(e);if(t)return t}return null}get layers(){return this._sortedDrapeSourceRenderersDirty&&this._updateSortedDrapeSourceRenderers(),this._sortedRenderers.map((e=>e.drapeSource.layer)).filter((e=>!!e))}_updateHighlights(){const e=this.view.state;this._renderers.forEach((r=>r.updateHighlights(e.highlightOrderMap)))}createDrapeSourceRenderer(e,r,t){const s=this._renderers.get(e);null!=s&&s.destroy();const i=new r({...t,rendererContext:this,drapeSource:e});return this._renderers.set(e,i),this._sortedDrapeSourceRenderersDirty=!0,"fullOpacity"in e&&this.addHandles(o((()=>e.fullOpacity),(()=>this.events.emit("content-changed"))),e),i}removeDrapeSourceRenderer(e){if(null==e)return;const r=this._renderers.get(e);null!=r&&(this._sortedDrapeSourceRenderersDirty=!0,this._renderers.delete(e),this.removeHandles(e),r.destroy())}computeValidity(){return this._renderTargets?.computeValidity()??0}releaseRenderTargets(){this._renderTargets?.dispose()}get overlays(){return this._overlays??[]}ensureDrapeTargets(e){this._hasTargetWithoutRasterImage=!!this._overlays&&d(e,(e=>e.drapeTargetType===m.WithoutRasterImage))}ensureDrapeSources(e){this._overlays?(this._hasDrapedFeatureSource=d(e,(e=>e.drapeSourceType===y.Features)),this._hasDrapedRasterSource=d(e,(e=>e.drapeSourceType===y.RasterImage))):this._hasDrapedFeatureSource=this._hasDrapedRasterSource=!1}get _needsColorWithoutRasterImage(){return this._hasDrapedRasterSource&&this._hasDrapedFeatureSource&&this._hasTargetWithoutRasterImage}ensureOverlays(e,r,t=this._bindParameters.overlayStretch){null==this._overlays&&(this._renderTargets=new v(this.view._stage.renderer.fboCache),this._overlays=[new T,new T]),this.ensureDrapeTargets(e),this.ensureDrapeSources(r),this._bindParameters.overlayStretch=t}disposeOverlays(){this._overlays=null,this._renderTargets=s(this._renderTargets),this.events.emit("textures-disposed")}getTexture(e){if(null!=e)return e===b.ColorNoRasterImage&&!this._needsColorWithoutRasterImage&&this._hasDrapedFeatureSource?this._renderTargets?.getTexture(b.Color):this._renderTargets?.getTexture(e)}get running(){return this.updating}runTask(e){this._processDrapeSources(e,(()=>!0))}_processDrapeSources(e,r){let s=!1;for(const[t,i]of this._renderers){if(e.done)break;(t.destroyed||r(t))&&(i.commitChanges(this.view.state.highlightOrderMap)&&(s=!0,e.madeProgress()))}this._sortedDrapeSourceRenderersDirty&&(this._sortedDrapeSourceRenderersDirty=!1,s=!0,this._updateSortedDrapeSourceRenderers()),s&&(null!=this._overlays&&0===this._renderers.size&&this.disposeOverlays(),this.notifyChange("updating"),this.notifyChange("isEmpty"),this.events.emit("content-changed"),this.hasHighlights=t(this._renderers,(e=>e.hasHighlights)),this.notifyChange("rendersOccludedDraped"))}hasHighlightOptions(e){return t(this._renderers,(r=>r.hasHighlightOptions(e)))}processSyncDrapeSources(){this._processDrapeSources(Y,(e=>e.updatePolicy===k.SYNC))}get isEmpty(){return!R.OVERLAY_DRAW_DEBUG_TEXTURE&&!t(this._renderers,(e=>!e.isEmpty))}get hasWater(){const e=t(this._renderers,(e=>e.hasWater));return e!==this._hasWater&&(this._hasWater=e,this.events.emit("has-water")),this._hasWater}get rendersOccludedDraped(){const e=this._renderContext.renderOccludedMask;this._renderContext.renderOccludedMask=te,++this._techniques.precompiling;const r=this._sortedRenderers.some((({renderer:e})=>e.precompile(this._renderContext)));return--this._techniques.precompiling,this._renderContext.renderOccludedMask=e,r}renders(e){if(R.OVERLAY_DRAW_DEBUG_TEXTURE&&e!==b.Occluded&&e!==b.Highlight)return!0;++this._techniques.precompiling;const r=this._sortedRenderers.some((({renderer:e})=>e.precompile(this._renderContext)));return--this._techniques.precompiling,r}get mode(){return this.isEmpty?O.Disabled:this.hasWater&&this.renders(b.WaterNormal)?O.EnabledWithWater:this._renderTargets?.getTexture(b.Color)?O.Enabled:O.Disabled}updateAnimation(e){let r=!1;return this._renderers.forEach((t=>r=t.updateAnimation(e)||r)),r}updateDrapeSourceOrder(){this._sortedDrapeSourceRenderersDirty=!0}precompileShaders(e){if(this._renderTargets){this._bindParameters.alignPixelEnabled=e.alignPixelEnabled,++this._techniques.precompiling;for(const e of this._renderTargets.targets){if(e.content===b.ColorNoRasterImage&&!this._needsColorWithoutRasterImage)continue;const r=e.output;this._renderContext.output=r,this._bindParameters.slot=r===x.Normal?F.DRAPED_WATER:F.DRAPED_MATERIAL,e.content===b.Occluded&&(this._renderContext.renderOccludedMask=te),this._sortedRenderers.forAll((({drapeSource:r,renderer:t})=>{e.content===b.ColorNoRasterImage&&r.drapeSourceType===y.RasterImage||t.precompile(this._renderContext)})),this._renderContext.renderOccludedMask=q}--this._techniques.precompiling}}drawOverlays(e){if(this._overlays&&this._renderTargets){for(const e of this._overlays)this.longitudeCyclical?e.setupGeometryViewsCyclical(this.longitudeCyclical):e.setupGeometryView();this._bindParameters.alignPixelEnabled=e.alignPixelEnabled;for(const e of this._renderTargets.targets){if(e.content===b.ColorNoRasterImage&&!this._needsColorWithoutRasterImage)continue;const r=this._drawTarget(w.INNER,e),t=this._drawTarget(w.OUTER,e);(r||t)&&e.fbo.generateMipMap()}}}_drawTarget(e,r){const t=this._overlays[e],s=t.canvasGeometries;if(0===s.numViews)return!1;const i=this.view.state.contentPixelRatio;this._screenToWorldRatio=i*t.mapUnitsPerPixel/this._bindParameters.overlayStretch;const o=r.output;if(this.isEmpty||o===x.Normal&&!this.hasWater||!t.hasSomeSizedView())return!1;const{_rctx:n,_camera:a,_renderContext:h,_bindParameters:d}=this;if(a.pixelRatio=t.pixelRatio*i,h.output=o,d.screenToWorldRatio=this._screenToWorldRatio,d.screenToPCSRatio=this._screenToWorldRatio*this.worldToPCSRatio,d.slot=o===x.Normal?F.DRAPED_WATER:F.DRAPED_MATERIAL,r.content===b.Occluded&&(h.renderOccludedMask=te),!this.renders(r.content))return h.renderOccludedMask=q,!1;const{resolution:l}=t,c=e===w.INNER?0:l;n.setViewport(c,0,l,l),this._bindTargetFBO(r),e===w.INNER&&(n.setClearColor(0,0,0,0),n.clear(X.COLOR));if(R.OVERLAY_DRAW_DEBUG_TEXTURE&&r.content!==b.Occluded&&r.content!==b.Highlight){this._techniques.precompile(N,se);const r=this._techniques.get(N,se);for(let i=0;i<s.numViews;i++)this._setViewParameters(s.extents[i],t),this._ensureDebugPatternResources(t.resolution,ee[e]),n.bindTechnique(r,d,this._passParameters),n.screen.draw()}if(r.output===x.Highlight){const{fboCache:t}=this.view._stage.renderer,s=this._resolution;this._bindTargetFBO(r),P(n,t,{width:s,height:s},d,(()=>this._renderAllGeometry(e,r)),c)}else this._renderAllGeometry(e,r);return n.bindFramebuffer(null),h.renderOccludedMask=q,!0}_renderAllGeometry(e,r){const t=this._overlays[e],s=t.canvasGeometries;this._sortedRenderers.forAll((({drapeSource:i,renderer:o})=>{if(r.content===b.ColorNoRasterImage&&i.drapeSourceType===y.RasterImage)return;const{fullOpacity:n}=i,a=null!=n&&n<1&&r.output===x.Color&&this._bindTemporaryFBO();for(let e=0;e<s.numViews;e++)this._setViewParameters(s.extents[e],t),o.render(this._renderContext);if(a){this._bindTargetFBO(r),this._overlayParameters.texture=a.getTexture(),this._overlayParameters.opacity=n,this._overlayParameters.overlayIndex=e;const t=this._techniques.get(B);this._rctx.bindTechnique(t,this._bindParameters,this._overlayParameters),this._rctx.screen.draw(),a.release()}}))}_bindTargetFBO(e){const r=this._resolution,t=2*r;e.fbo.bind(this._rctx,t,r)}_bindTemporaryFBO(){const e=this._resolution,r=2*e,t=this.view._stage.renderer.fboCache,s=t.acquire(r,e,"overlay tmp");return t.rctx.bindFramebuffer(s.fbo),t.rctx.clear(X.COLOR),s}get _resolution(){return this._overlays?.[w.INNER].resolution??0}notifyContentChanged(){this.events.emit("content-changed")}intersect(e,r,t,s){this._sortedDrapeSourceRenderersDirty&&this._updateSortedDrapeSourceRenderers();let i=0;for(const{renderer:o}of this._sortedRenderers)i=o.intersect?.(e,r,t,s,i)??i}_updateSortedDrapeSourceRenderers(){if(this._sortedRenderers.clear(),0===this._renderers.size)return;const e=this.view.map.allLayers,r=e.length;this._renderers.forEach(((t,s)=>{const i=e.indexOf(s.layer),o=i>=0,n=s.renderGroup??(o?f.MapLayer:f.ViewLayer),a=r*n+(o?i:0);this._sortedRenderers.push(new $(s,t,a))})),this._sortedRenderers.sort(((e,r)=>e.index-r.index))}_setViewParameters(e,r){const t=this._camera;t.viewport=[0,0,r.resolution,r.resolution],u(t.projectionMatrix,0,e[2]-e[0],0,e[3]-e[1],t.near,t.far),p(t.viewMatrix,[-e[0],-e[1],0])}_ensureDebugPatternResources(e,r){if(g(this._passParameters.color,r[0],r[1],r[2]),this._passParameters.texture)return;const t=new Uint8Array(e*e*4);let s=0;for(let o=0;o<e;o++)for(let r=0;r<e;r++){const i=Math.floor(r/10),n=Math.floor(o/10);i<2||n<2||10*i>e-20||10*n>e-20?(t[s++]=255,t[s++]=255,t[s++]=255,t[s++]=255):(t[s++]=255,t[s++]=255,t[s++]=255,t[s++]=1&i&&1&n?1&r^1&o?0:255:1&i^1&n?0:128)}const i=new Q(e);i.samplingMode=J.NEAREST,this._passParameters.texture=new K(this._rctx,i,t)}get test(){}};e([l()],Z.prototype,"hasHighlights",void 0),e([l()],Z.prototype,"_sortedDrapeSourceRenderersDirty",void 0),e([l({constructOnly:!0})],Z.prototype,"view",void 0),e([l({readOnly:!0})],Z.prototype,"_techniques",null),e([l()],Z.prototype,"worldToPCSRatio",void 0),e([l()],Z.prototype,"spatialReference",void 0),e([l({type:Boolean,readOnly:!0})],Z.prototype,"updating",null),e([l()],Z.prototype,"isEmpty",null),e([l({readOnly:!0})],Z.prototype,"rendersOccludedDraped",null),Z=e([c("esri.views.3d.terrain.OverlayRenderer")],Z);class ${constructor(e,r,t){this.drapeSource=e,this.renderer=r,this.index=t}}const ee=[[1,.5,.5],[.5,.5,1]],re=-2,te=M.OccludeAndTransparent,se=new V;se.hasAlpha=!0;export{Z as OverlayRenderer,re as drapedZ,te as overlayRenderOccludedFlag};
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.32/esri/copyright.txt for details.
4
4
  */
5
- import{R as e}from"../../../chunks/RasterColorizer.glsl.js";import{ReloadableShaderModule as r}from"../webgl-engine/core/shaderTechnique/ReloadableShaderModule.js";import{ShaderTechnique as o}from"../webgl-engine/core/shaderTechnique/ShaderTechnique.js";class s extends o{constructor(o,s,a){super(o,s,new r(e,(()=>import("../webgl-engine/core/shaderLibrary/raster/RasterColorizer.glsl.js"))),a)}}export{s as RasterColorizerTechnique};
5
+ import{R as e}from"../../../chunks/RasterColorizer.glsl.js";import{ReloadableShaderModule as r}from"../webgl-engine/core/shaderTechnique/ReloadableShaderModule.js";import{ShaderTechnique as o}from"../webgl-engine/core/shaderTechnique/ShaderTechnique.js";class s extends o{constructor(o,s){super(o,s,new r(e,(()=>import("../webgl-engine/core/shaderLibrary/raster/RasterColorizer.glsl.js"))))}}export{s as RasterColorizerTechnique};
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.32/esri/copyright.txt for details.
4
4
  */
5
- import{_ as e}from"../../../chunks/tslib.es6.js";import t from"../../../Color.js";import has from"../../../core/has.js";import{disposeMaybe as i}from"../../../core/maybe.js";import{MemCachePool as r}from"../../../core/MemCachePool.js";import s from"../../../core/ObjectPool.js";import{watch as n,sync as o}from"../../../core/reactiveUtils.js";import{property as a}from"../../../core/accessorSupport/decorators/property.js";import"../../../core/Logger.js";import"../../../core/RandomLCG.js";import{subclass as l}from"../../../core/accessorSupport/decorators/subclass.js";import{IDENTITY as c}from"../../../core/libs/gl-matrix-2/factories/mat4f64.js";import{d,i as h,f as u}from"../../../chunks/vec32.js";import{ZEROS as g,fromValues as p,create as _}from"../../../core/libs/gl-matrix-2/factories/vec3f64.js";import{fromValues as f,ZEROS as m}from"../../../core/libs/gl-matrix-2/factories/vec4f64.js";import{create as b,set as y}from"../../../geometry/support/aaBoundingBox.js";import{BufferViewVec3f as T}from"../../../geometry/support/buffer/BufferView.js";import{ViewingMode as R}from"../../ViewingMode.js";import{TextureUpdate as x}from"./interfaces.js";import{LayerClass as O}from"./LayerClass.js";import{OverlayContent as v}from"./OverlayContent.js";import{overlayRenderOccludedFlag as w}from"./OverlayRenderer.js";import{PatchRenderData as P}from"./PatchRenderData.js";import{RenderOrder as D}from"./RenderOrder.js";import{TerrainAttributesCache as S}from"./TerrainAttributesCache.js";import{enableTerrainInternalChecks as C}from"./terrainUtils.js";import{TileRenderer as E}from"./TileRenderer.js";import{TileUpdate as A}from"./TileUpdate.js";import{IteratorPreorder as j,sortTiles as N,compareTiles as B}from"./tileUtils.js";import{TransparencyMode as I}from"./TransparencyMode.js";import{componentMinimalSizeForIntersectionData as q,ComponentIntersectionData as F}from"../webgl-engine/collections/Component/ComponentIntersectionData.js";import{ShaderOutput as U}from"../webgl-engine/core/shaderLibrary/ShaderOutput.js";import{TileBlendInput as G}from"../webgl-engine/core/shaderLibrary/terrain/TileBlendInput.js";import{SyncRenderPlugin as M,ConsumesDepth as L,ConsumesNone as k}from"../webgl-engine/effects/RenderPlugin.js";import{Vertices as z}from"../webgl-engine/lib/Attribute.js";import{RenderRequestType as V}from"../webgl-engine/lib/basicInterfaces.js";import{createEmptyTexture as H}from"../webgl-engine/lib/glUtil3D.js";import{newIntersectorResult as Y}from"../webgl-engine/lib/Intersector.js";import{IntersectorType as Q,StoreResults as W}from"../webgl-engine/lib/IntersectorInterfaces.js";import{RenderOccludedFlag as X}from"../webgl-engine/lib/Material.js";import{intersectAabbInvDirBefore as K,intersectTriangles as Z,MeshIntersectionOptions as J}from"../webgl-engine/lib/RayIntersections.js";import{RenderSlot as $}from"../webgl-engine/lib/RenderSlot.js";import{getSettings as ee}from"../webgl-engine/lib/screenSizePerspectiveUtils.js";import{VertexAttribute as te}from"../webgl-engine/lib/VertexAttribute.js";import{terrainId as ie,getVerticalOffsetTerrain as re}from"../webgl-engine/lib/verticalOffsetUtils.js";import{DrawParameters as se}from"../webgl-engine/materials/DrawParameters.js";import{T as ne}from"../../../chunks/Terrain.glsl.js";import{TerrainTechnique as oe}from"../webgl-engine/shaders/TerrainTechnique.js";import{TerrainTechniqueConfiguration as ae}from"../webgl-engine/shaders/TerrainTechniqueConfiguration.js";import{PrimitiveType as le}from"../../webgl/enums.js";const ce=7,de=10,he=b();let ue=class extends M{get _isGlobal(){return this._stage.viewingMode===R.Global}get _techniques(){return this._context.techniques}get _rctx(){return this._context.renderContext.rctx}constructor(e,t,i,n,o){super({}),this._overlayRenderer=e,this._stage=t,this._allTiles=i,this._ellipsoidRadius=n,this.type=Q.TERRAIN,this.isGround=!0,this._passParameters=new ne,this._drawParameters=new se,this._renderDataPool=new s(P),this._visiblePatchesByOrigin=new Map,this._allPatchesByOrigin=new Map,this._patchesByOriginDirty=!0,this._patchSortingDirty=!0,this._tileIterator=new j,this._castShadows=!1,this._inViewshed=!1,this._emptyTex=null,this._tileRenderer=null,this._stencilEnabledLayerExtents=new Array,this._numTilesRendered=0,this._numTilesCulled=0,this._numOriginsRendered=0,this.renderOccludedFlags=X.Occlude,this.produces=new Map([[$.OPAQUE_TERRAIN,()=>this._produces()&&this.transparency===I.Opaque],[$.TRANSPARENT_TERRAIN,()=>this._produces()&&(this.transparency===I.Transparent||this.transparency===I.InvisibleWithDraped)],[$.OCCLUDED_TERRAIN,()=>this._produces()]]),this._tileSize=256,this._configuration=new ae(t.viewingMode===R.Global),this._tileTextureCache=new r(((e,t)=>o.newCache(e,t)),"TileTexture"),this.tileGeometryCache=new S(o)}normalizeCtorArgs(){return{}}initialize(){this._stage.addRenderPlugin(this),this.addHandles(n((()=>this._overlayRenderer.rendersOccludedDraped),(e=>{this.renderOccludedFlags=e?w:X.Occlude,this.setNeedsRender()}),o))}destroy(){this._stage.removeRenderPlugin(this),this._tileTextureCache.destroy(),this.tileGeometryCache.destroy()}_produces(){return this.visible&&!!this._rootTiles&&!this.renderingDisabled}consumes(){return this._overlayRenderer.hasWater?L:k}set renderingDisabled(e){this._set("renderingDisabled",!!e),this.setDirty()}set visible(e){this._set("visible",!!e),this.setDirty()}updateHeading(e){this._tileRenderer?.updateHeading(e)}set transparency(e){this._configuration.transparencyMode!==e&&(this._configuration.transparencyMode=e,this.setNeedsRender())}get transparency(){return this._configuration.transparencyMode}get tileRenderer(){return this._tileRenderer}get texturesBeingCompressed(){return this._tileRenderer?this._tileRenderer?.texturesBeingCompressed:null}get renderPatchBorders(){return this._configuration.tileBorders}set renderPatchBorders(e){this._configuration.tileBorders!==e&&(this._configuration.tileBorders=e,this.setNeedsRender(),this.notifyChange("renderPatchBorders"))}get visualizeNormals(){return this._configuration.visualizeNormals}set visualizeNormals(e){this._configuration.visualizeNormals!==e&&(this._configuration.visualizeNormals=e,this.setNeedsRender(),this.notifyChange("visualizeNormals"))}get cullBackFaces(){return this._configuration.backfaceCullingEnabled}set cullBackFaces(e){this._configuration.backfaceCullingEnabled!==e&&(this._configuration.backfaceCullingEnabled=e,this.notifyChange("cullBackFaces"),this.setNeedsRender())}set renderOrder(e){this._set("renderOrder",e),this._setSortingDirty()}get layerUid(){return ie}get slicePlaneEnabled(){return this._configuration.hasSlicePlane}set slicePlaneEnabled(e){this._configuration.hasSlicePlane!==e&&(this._configuration.hasSlicePlane=e,this.setNeedsRender())}set textureFadingEnabled(e){this._configuration.textureFadingEnabled!==e&&(this._configuration.textureFadingEnabled=e,this.setNeedsRender())}set pbrMode(e){this._configuration.pbrMode!==e&&(this._configuration.pbrMode=e,this.setNeedsRender())}setDebugScreenSizePerspective(e){this._configuration.screenSizePerspective!==e&&(this._configuration.screenSizePerspective=e,this.setNeedsRender())}setRootTiles(e){this._rootTiles=e,this.setDirty()}setStencilEnabledLayerExtents(e){this._stencilEnabledLayerExtents=e,this._setSortingDirty()}set tileSize(e){this._tileSize=e,null!=this._tileRenderer&&(this._tileRenderer.tileSize=e),this.setDirty()}get tileSize(){return this._tileSize}_ensureRenderData(e){e.renderData||(e.renderData=this._renderDataPool.acquire(),e.renderData.init(e,this._getLocalOriginOfTile(e)))}loadTile(e){this._ensureRenderData(e),this.updateTileGeometryState(e),this.reuseTextureFromParent(e)||this.updateTileTexture(e,A.TEXTURE_FADING)}reuseTextureFromParent(e){const t=e.parent;if(!t)return!1;const i=f(1&e.lij[2]?.5:0,1&e.lij[1]?0:.5,.5,.5);return t.renderData?.reuseTexture(e.renderData,i)??!1}updateTileTexture(e,t){null!=this._tileRenderer&&(this._tileRenderer.updateTileTexture(e,t===A.TEXTURE_FADING?x.FADING:x.UNFADED),this.setNeedsRender(),e.resetPendingUpdate(t))}updateTileGeometryState(e){for(const i of e.layerInfo[O.ELEVATION])i.pendingUpdates&=~A.GEOMETRY;e.resetPendingUpdate(A.GEOMETRY);const t=e.renderData.updateGeometryState();return t&&this.setDirty(),t}updateGeometryIfNeeded(e){e.loaded&&e.renderData.updateGeometryIfNeeded(this._rctx)}unloadTile(e){const t=e.renderData;t&&(t.releaseGeometry(),this._renderDataPool.release(t),t.clear(),e.renderData=null,e.setMemoryDirty(),this.setDirty())}_getLocalOriginOfTile(e){const t=de-ce,i=Math.max(0,Math.floor((e.level-t)/ce)*ce);if(this._isGlobal&&0===i)return g;for(;e.parent&&e.level>i;)e=e.parent;return e.centerAtSeaLevel}getStats(){return{numTilesRendered:this._numTilesRendered,numTilesCulled:this._numTilesCulled,numOriginsRendered:this._numOriginsRendered}}set wireframe(e){this._get("wireframe")!==e&&(this._set("wireframe",e),this.setNeedsRender())}setDirty(e=V.UPDATE){this._patchesByOriginDirty=!0,this._context.requestRender(e)}_setSortingDirty(e=V.UPDATE){this._patchSortingDirty=!0,this._context.requestRender(e)}setNeedsRender(e=V.UPDATE){this._context.requestRender(e)}initializeRenderContext(e){this._context=e,this._tileRenderer=new E({rctx:this._rctx,tileSize:this._tileSize,techniques:this._techniques,cache:this._tileTextureCache}),this.updateTileBackground(),this._emptyTex=H(this._rctx)}uninitializeRenderContext(){this._emptyTex=i(this._emptyTex),this._tileRenderer=i(this._tileRenderer)}intersect(e,t,i,r){if(!this._rootTiles||e.options.selectOpaqueTerrainOnly&&e.options.selectionMode&&this.transparency!==I.Opaque)return;const s=ge,n=pe;d(s,r,i),h(n,1/s[0],1/s[1],1/s[2]);const o=e.results.min,a=e.results.max,l=e.results.ground,g=e.options.store===W.MIN,p=!!e.results.ground.target,_=re(e.verticalOffset),f=e.tolerance;let m,b=g&&null!=o.dist?o.dist:1/0;const R=e.options,x=R.normalRequired||!R.backfacesTerrain,O=new J(!1,x),v=h=>{const p=h.renderData;if(!p?.vao)return;const v=p.geometry;y(he,v.boundingBox);const w=p.localOrigin;null!=_&&(_.localOrigin=w,_.applyToAabb(he));const P=he;if(_e[0]=i[0]-w[0],_e[1]=i[1]-w[1],_e[2]=i[2]-w[2],!K(P,_e,n,f,b))return;const D=(e,t,i)=>{e.set(this.type,h,t,i,c),b=g&&null!=o.dist?o.dist:1/0},S=(n,c,d)=>{if((!x||null!=d)&&n>=0&&(R.backfacesTerrain||u(d,s)<0)&&(R.invisibleTerrain||!R.selectionMode||null==t||t(i,r,n))){if((null==l.dist||n<l.dist)&&D(l,n,d),R.isFiltered)return;R.store===W.ALL&&(null==m?(m=Y(e.ray),D(m,n,d),e.results.all.push(m)):n<m.dist&&D(m,n,d)),(null==o.dist||n<o.dist)&&D(o,n,d),R.store!==W.MIN&&(null==a.dist||n>a.dist)&&D(a,n,d)}},C=fe;d(C,r,w);const{indices:E,indexCount:A}=v,j=v.vertexAttributes,N=j.getField(te.POSITION,T),B=new z(N.typedBuffer,3,j.stride/4),I=A/3;if(!_&&I>q){const e=h.renderData;null==e.intersectionData&&(e.intersectionData=new F(E,0,I,B)),e.intersectionData.intersectRay(_e,C,O,S)}else Z(_e,C,0,I,E,B,_,O,S)},w=this._rootTiles;if(null!=w){(()=>{const t=this._tileIterator;t.reset(w);const r=e.options.invisibleTerrain;for(let e=t.next();e;e=t.next())!(e.visible||r&&e.intersectsClippingArea)||null==_&&!e.intersectsRay(i,s,f,b)||p&&this._useStencilForTile(e)?t.skipSubtree():v(e)})()}}processScaleRangeQueries(e,t){if(!t.done)for(this._updatePatchGroups();e.updating&&!t.done;){e.prepare();for(const t of this._visiblePatchesByOrigin.values())for(const i of t)null!=i.renderData?.textureReference&&e.queriesForTile(i);e.process(),t.madeProgress()}}acquireTechniques(e){const t=!!has("enable-feature:terrain-shadows")&&e.bind.shadowMap.enabled;t!==this._castShadows&&(this._castShadows=t,this._patchesByOriginDirty=!0);const i=e.bind.viewshedEnabled;if(this._inViewshed!==i&&(this._inViewshed=i,this._patchesByOriginDirty=!0),e.bind.slot===$.OCCLUDED_TERRAIN){if(!(e.renderOccludedMask&w))return null}else{const t=this.transparency===I.Opaque?$.OPAQUE_TERRAIN:$.TRANSPARENT_TERRAIN;if(e.bind.slot!==t)return null}if(this.transparency===I.Invisible)return null;switch(this._configuration.screenSpaceReflections=this._configuration.cloudReflections=this._configuration.receiveShadows=this._configuration.receiveAmbientOcclusion=!1,this._configuration.overlayMode=this._overlayRenderer.mode,e.output){case U.Color:case U.ColorEmission:return this._configuration.screenSpaceReflections=null!=e.bind.ssr.lastFrameColor,this._configuration.cloudReflections=null!=e.bind.clouds.data,this._configuration.receiveShadows=e.bind.shadowMap.ready,this._configuration.receiveAmbientOcclusion=null!=e.bind.ssao,this._acquireTechnique(e.output,e.bind.slot===$.OCCLUDED_TERRAIN);case U.Shadow:case U.ShadowExcludeHighlight:return this._castShadows?this._acquireTechnique(U.Shadow,!1):null;case U.ViewshedShadow:return this._inViewshed?this._acquireTechnique(U.ViewshedShadow,!1):null;case U.Depth:case U.Normal:return this._acquireTechnique(e.output,!1);case U.ObjectAndLayerIdColor:return this._acquireTechnique(U.ObjectAndLayerIdColor,!1);case U.Highlight:return this._overlayRenderer.hasHighlights?this._acquireTechnique(U.Highlight,!1):null}return null}render(e,t){switch(this._updatePatchGroups(),t.useStencil=!1,e.output){case U.Color:case U.ColorEmission:{const i=e.bind.slot===$.OCCLUDED_TERRAIN?v.Occluded:v.Color;this._renderMaterialPass(e,t,i);break}case U.Depth:case U.Normal:this._renderAuxiliaryPass(e,t,v.Color,this._visiblePatchesByOrigin);break;case U.Highlight:{const i=e.bind.highlight?.name;i&&this._overlayRenderer.hasHighlights&&this._overlayRenderer.renders(v.Highlight)&&this._overlayRenderer.hasHighlightOptions(i)&&this._renderAuxiliaryPass(e,t,v.Highlight,this._visiblePatchesByOrigin);break}case U.Shadow:case U.ShadowExcludeHighlight:case U.ViewshedShadow:this._renderAuxiliaryPass(e,t,null,this._allPatchesByOrigin);break;case U.ObjectAndLayerIdColor:this._renderAuxiliaryPass(e,t,v.ObjectAndLayerIdColor,this._visiblePatchesByOrigin)}}updateTileBackground(e){if(null==this._tileRenderer)return;const i=this._tileRenderer;let r;if(null!=e){const i=t.toUnitRGBA(e);r=p(i[0]||0,i[1]||0,i[2]||0)}i.setBackground(r),this._allTiles.forAll((e=>i.updateTileTexture(e,x.FADING))),this._configuration.tileBlendInput=i.backgroundIsGrid?G.GridComposite:null!=i.backgroundColor?G.ColorComposite:G.LayerOnly,this.setNeedsRender()}_updatePatchGroups(){if(this._patchesByOriginDirty&&(this._rebuildPatchGroups(),this._patchesByOriginDirty=!1,this._patchSortingDirty=!0),this._patchSortingDirty&&this.renderOrder!==D.NONE){const e=Array.from(this._visiblePatchesByOrigin.values()),t=this._stencilEnabledLayerExtents;for(const i of e)N(this.renderOrder,i,t);e.sort(((e,t)=>B(e[0],t[0],this.renderOrder))),this._visiblePatchesByOrigin=new Map(e.map((e=>[e[0].renderData.localOrigin,e]))),this._patchSortingDirty=!1}}_rebuildPatchGroups(){const e=this._rootTiles;if(null!=e){e[0]?.surface.checkAllTilesWaterproofness(),this._visiblePatchesByOrigin.clear(),this._allPatchesByOrigin.clear();for(const t of e)this._rebuildPatchGroupsForRootTile(t)}}_rebuildPatchGroupsForRootTile(e){const t=this._tileIterator;for(t.resetOne(e);!t.done;){const e=t.next(),i=e.renderData;if(!i){this._numTilesCulled++;continue}const r=i.localOrigin;if(this._castShadows||this._inViewshed){let t=this._allPatchesByOrigin.get(r);t||(t=[],this._allPatchesByOrigin.set(r,t)),t.push(e)}if(!e.visible){this._numTilesCulled++,t.skipSubtree();continue}let s=this._visiblePatchesByOrigin.get(r);s||(s=[],this._visiblePatchesByOrigin.set(r,s)),s.push(e),t.skipSubtree()}}_useStencilForTile(e){for(const t of this._stencilEnabledLayerExtents)if(e.intersectsExtent(t))return!0;return!1}_renderAuxiliaryPass(e,t,i,r){const s=e.rctx;this._passParameters.overlayContent=i,s.bindTechnique(t,e.bind,this._passParameters);const n=this._stencilEnabledLayerExtents.length>0;r.forEach((r=>{this._drawParameters.origin=r[0].renderData.localOrigin,t.program.bindDraw(e.bind,this._passParameters,this._drawParameters);for(let s=0;s<r.length;s++)this._renderPatch(e,t,r[s],le.TRIANGLES,n,i)})),e.rctx.bindVAO(null)}_renderMaterialPass(e,t,i){const{rctx:r}=e;this._passParameters.overlayContent=i,r.bindTechnique(t,e.bind,this._passParameters),this._numTilesRendered=0,this._numTilesCulled=0,this._numOriginsRendered=0;const s=e.bind.camera,n=t.program;if(this._configuration.screenSizePerspective&&this.pointsOfInterest){const e=ee(this._stage.viewingMode,this._ellipsoidRadius),t=this.pointsOfInterest.centerOnSurfaceFrequent.distance;e.update({distance:t,fovY:s.fovY})}const o=this._stencilEnabledLayerExtents.length>0,a=i===v.Occluded;a&&(n.bindTexture("tex",this._emptyTex),n.setUniform3fv("textureOpacities",g),n.setUniform4fv("texOffsetAndScale",m));const l=null!=this._tileRenderer?.backgroundColor?this._tileRenderer.backgroundColor:g;this._configuration.tileBlendInput===G.ColorComposite&&n.setUniform3fv("backgroundColor",l);const c=this.wireframe?le.LINES:le.TRIANGLES;this._configuration.textureFadingEnabled&&n.bindTexture("texNext",this._emptyTex);const d=this._visiblePatchesByOrigin;for(const h of d.values()){const r=h[0].renderData.localOrigin;this._drawParameters.origin=r,t.program.bindDraw(e.bind,this._passParameters,this._drawParameters),this._numOriginsRendered++;for(const s of h){const r=s.renderData,l=r.textureReference;if(null!=l){if(!a){n.setUniform4fv("texOffsetAndScale",l.offsetAndScale),n.bindTexture("tex",l.texture.texture);const e=r.textureFadeFactor,t=e<1?r.nextTextureReference:null;this._configuration.textureFadingEnabled&&null!=t&&e<1?(n.setUniform1f("fadeFactor",e),n.setUniform4fv("nextTexOffsetAndScale",t.offsetAndScale),n.setUniform3fv("nextTexOpacities",t.opacities),n.bindTexture("texNext",t.texture.texture)):n.setUniform1f("fadeFactor",1),r.textureIsFading&&this.setNeedsRender(),n.setUniform3fv("textureOpacities",l.opacities)}this._renderPatch(e,t,s,c,o,i),s.renderOrder=this._numTilesRendered,this._numTilesRendered++}}}e.rctx.bindVAO(null)}_renderPatch(e,t,i,r,s,n){const o=i.renderData,a=o.vao,l=a?.indexBuffer;if(!a||null==l)return void(C&&console.error("Rendered tile with no indices: ",i.lij," : ",o));const c=t.program;null==n||this._overlayRenderer.isEmpty||this._bindOverlayPatchData(c,o.overlay),s&&(t.useStencil=this._useStencilForTile(i),e.rctx.setPipelineState(t.getPipeline()));const d=o.geometry.indexCount;e.rctx.bindVAO(a),c.assertCompatibleVertexAttributeLocations(a),e.rctx.drawElements(r,d,l.indexType,0)}_bindOverlayPatchData(e,t){e.setUniform4fv("overlayTexOffset",t.offsets),e.setUniform4fv("overlayTexScale",t.scales)}_acquireTechnique(e,t){return this._configuration.output=e,this._configuration.renderOccluded=t,this._techniques.acquire(oe,this._configuration)}get test(){}hasHighlightOptions(e){return this._overlayRenderer.hasHighlightOptions(e)}};e([a({readOnly:!0})],ue.prototype,"_isGlobal",null),e([a()],ue.prototype,"renderOccludedFlags",void 0),e([a({value:!1})],ue.prototype,"renderingDisabled",null),e([a({value:!0})],ue.prototype,"visible",null),e([a()],ue.prototype,"texturesBeingCompressed",null),e([a()],ue.prototype,"renderPatchBorders",null),e([a()],ue.prototype,"visualizeNormals",null),e([a()],ue.prototype,"cullBackFaces",null),e([a({value:D.FRONT_TO_BACK})],ue.prototype,"renderOrder",null),e([a()],ue.prototype,"wireframe",null),ue=e([l("esri.views.3d.terrain.TerrainRenderer")],ue);const ge=_(),pe=_(),_e=_(),fe=_();export{ue as TerrainRenderer};
5
+ import{_ as e}from"../../../chunks/tslib.es6.js";import t from"../../../Color.js";import has from"../../../core/has.js";import{disposeMaybe as i}from"../../../core/maybe.js";import{MemCachePool as r}from"../../../core/MemCachePool.js";import s from"../../../core/ObjectPool.js";import{watch as n,sync as o}from"../../../core/reactiveUtils.js";import{property as a}from"../../../core/accessorSupport/decorators/property.js";import"../../../core/Logger.js";import"../../../core/RandomLCG.js";import{subclass as l}from"../../../core/accessorSupport/decorators/subclass.js";import{IDENTITY as c}from"../../../core/libs/gl-matrix-2/factories/mat4f64.js";import{d,i as h,f as u}from"../../../chunks/vec32.js";import{ZEROS as g,fromValues as p,create as _}from"../../../core/libs/gl-matrix-2/factories/vec3f64.js";import{fromValues as f,ZEROS as m}from"../../../core/libs/gl-matrix-2/factories/vec4f64.js";import{create as b,set as y}from"../../../geometry/support/aaBoundingBox.js";import{BufferViewVec3f as T}from"../../../geometry/support/buffer/BufferView.js";import{ViewingMode as R}from"../../ViewingMode.js";import{TextureUpdate as x}from"./interfaces.js";import{LayerClass as O}from"./LayerClass.js";import{OverlayContent as v}from"./OverlayContent.js";import{overlayRenderOccludedFlag as w}from"./OverlayRenderer.js";import{PatchRenderData as P}from"./PatchRenderData.js";import{RenderOrder as D}from"./RenderOrder.js";import{TerrainAttributesCache as S}from"./TerrainAttributesCache.js";import{enableTerrainInternalChecks as C}from"./terrainUtils.js";import{TileRenderer as E}from"./TileRenderer.js";import{TileUpdate as A}from"./TileUpdate.js";import{IteratorPreorder as j,sortTiles as N,compareTiles as B}from"./tileUtils.js";import{TransparencyMode as I}from"./TransparencyMode.js";import{componentMinimalSizeForIntersectionData as q,ComponentIntersectionData as F}from"../webgl-engine/collections/Component/ComponentIntersectionData.js";import{ShaderOutput as U}from"../webgl-engine/core/shaderLibrary/ShaderOutput.js";import{TileBlendInput as G}from"../webgl-engine/core/shaderLibrary/terrain/TileBlendInput.js";import{SyncRenderPlugin as M,ConsumesDepth as L,ConsumesNone as k}from"../webgl-engine/effects/RenderPlugin.js";import{Vertices as z}from"../webgl-engine/lib/Attribute.js";import{RenderRequestType as V}from"../webgl-engine/lib/basicInterfaces.js";import{createEmptyTexture as H}from"../webgl-engine/lib/glUtil3D.js";import{newIntersectorResult as Y}from"../webgl-engine/lib/Intersector.js";import{IntersectorType as Q,StoreResults as W}from"../webgl-engine/lib/IntersectorInterfaces.js";import{RenderOccludedFlag as X}from"../webgl-engine/lib/Material.js";import{intersectAabbInvDirBefore as K,intersectTriangles as Z,MeshIntersectionOptions as J}from"../webgl-engine/lib/RayIntersections.js";import{RenderSlot as $}from"../webgl-engine/lib/RenderSlot.js";import{getSettings as ee}from"../webgl-engine/lib/screenSizePerspectiveUtils.js";import{VertexAttribute as te}from"../webgl-engine/lib/VertexAttribute.js";import{terrainId as ie,getVerticalOffsetTerrain as re}from"../webgl-engine/lib/verticalOffsetUtils.js";import{DrawParameters as se}from"../webgl-engine/materials/DrawParameters.js";import{T as ne}from"../../../chunks/Terrain.glsl.js";import{TerrainTechnique as oe}from"../webgl-engine/shaders/TerrainTechnique.js";import{TerrainTechniqueConfiguration as ae}from"../webgl-engine/shaders/TerrainTechniqueConfiguration.js";import{PrimitiveType as le}from"../../webgl/enums.js";const ce=7,de=10,he=b();let ue=class extends M{get _isGlobal(){return this._stage.viewingMode===R.Global}get _techniques(){return this._context.techniques}get _rctx(){return this._context.renderContext.rctx}constructor(e,t,i,n,o){super({}),this._overlayRenderer=e,this._stage=t,this._allTiles=i,this._ellipsoidRadius=n,this.type=Q.TERRAIN,this.isGround=!0,this._passParameters=new ne,this._drawParameters=new se,this._renderDataPool=new s(P),this._visiblePatchesByOrigin=new Map,this._allPatchesByOrigin=new Map,this._patchesByOriginDirty=!0,this._patchSortingDirty=!0,this._tileIterator=new j,this._castShadows=!1,this._inViewshed=!1,this._emptyTex=null,this._tileRenderer=null,this._stencilEnabledLayerExtents=new Array,this._numTilesRendered=0,this._numTilesCulled=0,this._numOriginsRendered=0,this.renderOccludedFlags=X.Occlude,this.produces=new Map([[$.OPAQUE_TERRAIN,()=>this._produces()&&this.transparency===I.Opaque],[$.TRANSPARENT_TERRAIN,()=>this._produces()&&(this.transparency===I.Transparent||this.transparency===I.InvisibleWithDraped)],[$.OCCLUDED_TERRAIN,()=>this._produces()]]),this._tileSize=256,this._configuration=new ae(t.viewingMode===R.Global),this._tileTextureCache=new r(((e,t)=>o.newCache(e,t)),"TileTexture"),this.tileGeometryCache=new S(o)}normalizeCtorArgs(){return{}}initialize(){this._stage.addRenderPlugin(this),this.addHandles(n((()=>this._overlayRenderer.rendersOccludedDraped),(e=>{this.renderOccludedFlags=e?w:X.Occlude,this.setNeedsRender()}),o))}destroy(){this._stage.removeRenderPlugin(this),this._tileTextureCache.destroy(),this.tileGeometryCache.destroy()}_produces(){return this.visible&&!!this._rootTiles&&!this.renderingDisabled}consumes(){return this._overlayRenderer.hasWater?L:k}set renderingDisabled(e){this._set("renderingDisabled",!!e),this.setDirty()}set visible(e){this._set("visible",!!e),this.setDirty()}updateHeading(e){this._tileRenderer?.updateHeading(e)}set transparency(e){this._configuration.transparencyMode!==e&&(this._configuration.transparencyMode=e,this.setNeedsRender())}get transparency(){return this._configuration.transparencyMode}get tileRenderer(){return this._tileRenderer}get texturesBeingCompressed(){return this._tileRenderer?this._tileRenderer?.texturesBeingCompressed:null}get renderPatchBorders(){return this._configuration.tileBorders}set renderPatchBorders(e){this._configuration.tileBorders!==e&&(this._configuration.tileBorders=e,this.setNeedsRender(),this.notifyChange("renderPatchBorders"))}get visualizeNormals(){return this._configuration.visualizeNormals}set visualizeNormals(e){this._configuration.visualizeNormals!==e&&(this._configuration.visualizeNormals=e,this.setNeedsRender(),this.notifyChange("visualizeNormals"))}get cullBackFaces(){return this._configuration.backfaceCullingEnabled}set cullBackFaces(e){this._configuration.backfaceCullingEnabled!==e&&(this._configuration.backfaceCullingEnabled=e,this.notifyChange("cullBackFaces"),this.setNeedsRender())}set renderOrder(e){this._set("renderOrder",e),this._setSortingDirty()}get layerUid(){return ie}get slicePlaneEnabled(){return this._configuration.hasSlicePlane}set slicePlaneEnabled(e){this._configuration.hasSlicePlane!==e&&(this._configuration.hasSlicePlane=e,this.setNeedsRender())}set textureFadingEnabled(e){this._configuration.textureFadingEnabled!==e&&(this._configuration.textureFadingEnabled=e,this.setNeedsRender())}set pbrMode(e){this._configuration.pbrMode!==e&&(this._configuration.pbrMode=e,this.setNeedsRender())}setDebugScreenSizePerspective(e){this._configuration.screenSizePerspective!==e&&(this._configuration.screenSizePerspective=e,this.setNeedsRender())}setRootTiles(e){this._rootTiles=e,this.setDirty()}setStencilEnabledLayerExtents(e){this._stencilEnabledLayerExtents=e,this._setSortingDirty()}set tileSize(e){this._tileSize=e,null!=this._tileRenderer&&(this._tileRenderer.tileSize=e),this.setDirty()}get tileSize(){return this._tileSize}_ensureRenderData(e){e.renderData||(e.renderData=this._renderDataPool.acquire(),e.renderData.init(e,this._getLocalOriginOfTile(e)))}loadTile(e){this._ensureRenderData(e),this.updateTileGeometryState(e),this.reuseTextureFromParent(e)||this.updateTileTexture(e,A.TEXTURE_FADING)}reuseTextureFromParent(e){const t=e.parent;if(!t)return!1;const i=f(1&e.lij[2]?.5:0,1&e.lij[1]?0:.5,.5,.5);return t.renderData?.reuseTexture(e.renderData,i)??!1}updateTileTexture(e,t){null!=this._tileRenderer&&(this._tileRenderer.updateTileTexture(e,t===A.TEXTURE_FADING?x.FADING:x.UNFADED),this.setNeedsRender(),e.resetPendingUpdate(t))}updateTileGeometryState(e){for(const i of e.layerInfo[O.ELEVATION])i.pendingUpdates&=~A.GEOMETRY;e.resetPendingUpdate(A.GEOMETRY);const t=e.renderData.updateGeometryState();return t&&this.setDirty(),t}updateGeometryIfNeeded(e){e.loaded&&e.renderData.updateGeometryIfNeeded(this._rctx)}unloadTile(e){const t=e.renderData;t&&(t.releaseGeometry(),this._renderDataPool.release(t),t.clear(),e.renderData=null,e.setMemoryDirty(),this.setDirty())}_getLocalOriginOfTile(e){const t=de-ce,i=Math.max(0,Math.floor((e.level-t)/ce)*ce);if(this._isGlobal&&0===i)return g;for(;e.parent&&e.level>i;)e=e.parent;return e.centerAtSeaLevel}getStats(){return{numTilesRendered:this._numTilesRendered,numTilesCulled:this._numTilesCulled,numOriginsRendered:this._numOriginsRendered}}set wireframe(e){this._get("wireframe")!==e&&(this._set("wireframe",e),this.setNeedsRender())}setDirty(e=V.UPDATE){this._patchesByOriginDirty=!0,this._context.requestRender(e)}_setSortingDirty(e=V.UPDATE){this._patchSortingDirty=!0,this._context.requestRender(e)}setNeedsRender(e=V.UPDATE){this._context.requestRender(e)}initializeRenderContext(e){this._context=e,this._tileRenderer=new E({rctx:this._rctx,tileSize:this._tileSize,techniques:this._techniques,cache:this._tileTextureCache}),this.updateTileBackground(),this._emptyTex=H(this._rctx)}uninitializeRenderContext(){this._emptyTex=i(this._emptyTex),this._tileRenderer=i(this._tileRenderer)}intersect(e,t,i,r){if(!this._rootTiles||e.options.selectOpaqueTerrainOnly&&e.options.selectionMode&&this.transparency!==I.Opaque)return;const s=ge,n=pe;d(s,r,i),h(n,1/s[0],1/s[1],1/s[2]);const o=e.results.min,a=e.results.max,l=e.results.ground,g=e.options.store===W.MIN,p=!!e.results.ground.target,_=re(e.verticalOffset),f=e.tolerance;let m,b=g&&null!=o.dist?o.dist:1/0;const R=e.options,x=R.normalRequired||!R.backfacesTerrain,O=new J(!1,x),v=h=>{const p=h.renderData;if(!p?.vao)return;const v=p.geometry;y(he,v.boundingBox);const w=p.localOrigin;null!=_&&(_.localOrigin=w,_.applyToAabb(he));const P=he;if(_e[0]=i[0]-w[0],_e[1]=i[1]-w[1],_e[2]=i[2]-w[2],!K(P,_e,n,f,b))return;const D=(e,t,i)=>{e.set(this.type,h,t,i,c),b=g&&null!=o.dist?o.dist:1/0},S=(n,c,d)=>{if((!x||null!=d)&&n>=0&&(R.backfacesTerrain||u(d,s)<0)&&(R.invisibleTerrain||!R.selectionMode||null==t||t(i,r,n))){if((null==l.dist||n<l.dist)&&D(l,n,d),R.isFiltered)return;R.store===W.ALL&&(null==m?(m=Y(e.ray),D(m,n,d),e.results.all.push(m)):n<m.dist&&D(m,n,d)),(null==o.dist||n<o.dist)&&D(o,n,d),R.store!==W.MIN&&(null==a.dist||n>a.dist)&&D(a,n,d)}},C=fe;d(C,r,w);const{indices:E,indexCount:A}=v,j=v.vertexAttributes,N=j.getField(te.POSITION,T),B=new z(N.typedBuffer,3,j.stride/4),I=A/3;if(!_&&I>q){const e=h.renderData;null==e.intersectionData&&(e.intersectionData=new F(E,0,I,B)),e.intersectionData.intersectRay(_e,C,O,S)}else Z(_e,C,0,I,E,B,_,O,S)},w=this._rootTiles;if(null!=w){(()=>{const t=this._tileIterator;t.reset(w);const r=e.options.invisibleTerrain;for(let e=t.next();e;e=t.next())!(e.visible||r&&e.intersectsClippingArea)||null==_&&!e.intersectsRay(i,s,f,b)||p&&this._useStencilForTile(e)?t.skipSubtree():v(e)})()}}processScaleRangeQueries(e,t){if(!t.done)for(this._updatePatchGroups();e.updating&&!t.done;){e.prepare();for(const t of this._visiblePatchesByOrigin.values())for(const i of t)null!=i.renderData?.textureReference&&e.queriesForTile(i);e.process(),t.madeProgress()}}acquireTechniques(e){const t=!!has("enable-feature:terrain-shadows")&&e.bind.shadowMap.enabled;t!==this._castShadows&&(this._castShadows=t,this._patchesByOriginDirty=!0);const i=e.bind.viewshedEnabled;if(this._inViewshed!==i&&(this._inViewshed=i,this._patchesByOriginDirty=!0),e.bind.slot===$.OCCLUDED_TERRAIN){if(!(e.renderOccludedMask&w))return null}else{const t=this.transparency===I.Opaque?$.OPAQUE_TERRAIN:$.TRANSPARENT_TERRAIN;if(e.bind.slot!==t)return null}if(this.transparency===I.Invisible)return null;switch(this._configuration.screenSpaceReflections=this._configuration.cloudReflections=this._configuration.receiveShadows=this._configuration.receiveAmbientOcclusion=!1,this._configuration.overlayMode=this._overlayRenderer.mode,e.output){case U.Color:case U.ColorEmission:return this._configuration.screenSpaceReflections=null!=e.bind.ssr.lastFrameColor,this._configuration.cloudReflections=null!=e.bind.clouds.data,this._configuration.receiveShadows=e.bind.shadowMap.ready,this._configuration.receiveAmbientOcclusion=null!=e.bind.ssao,this._acquireTechnique(e.output,e.bind.slot===$.OCCLUDED_TERRAIN);case U.Shadow:case U.ShadowExcludeHighlight:return this._castShadows?this._acquireTechnique(U.Shadow,!1):null;case U.ViewshedShadow:return this._inViewshed?this._acquireTechnique(U.ViewshedShadow,!1):null;case U.Depth:case U.Normal:return this._acquireTechnique(e.output,!1);case U.ObjectAndLayerIdColor:return this._acquireTechnique(U.ObjectAndLayerIdColor,!1);case U.Highlight:return this._overlayRenderer.hasHighlights?this._acquireTechnique(U.Highlight,!1):null}return null}render(e,t){switch(this._updatePatchGroups(),t.useStencil=!1,e.output){case U.Color:case U.ColorEmission:{const i=e.bind.slot===$.OCCLUDED_TERRAIN?v.Occluded:v.Color;this._renderMaterialPass(e,t,i);break}case U.Depth:case U.Normal:this._renderAuxiliaryPass(e,t,v.Color,this._visiblePatchesByOrigin);break;case U.Highlight:{const i=e.bind.highlight?.name;i&&this._overlayRenderer.hasHighlights&&this._overlayRenderer.renders(v.Highlight)&&this._overlayRenderer.hasHighlightOptions(i)&&this._renderAuxiliaryPass(e,t,v.Highlight,this._visiblePatchesByOrigin);break}case U.Shadow:case U.ShadowExcludeHighlight:case U.ViewshedShadow:this._renderAuxiliaryPass(e,t,null,this._allPatchesByOrigin);break;case U.ObjectAndLayerIdColor:this._renderAuxiliaryPass(e,t,v.ObjectAndLayerIdColor,this._visiblePatchesByOrigin)}}updateTileBackground(e){if(null==this._tileRenderer)return;const i=this._tileRenderer;let r;if(null!=e){const i=t.toUnitRGBA(e);r=p(i[0]||0,i[1]||0,i[2]||0)}i.setBackground(r),this._allTiles.forAll((e=>i.updateTileTexture(e,x.FADING))),this._configuration.tileBlendInput=i.backgroundIsGrid?G.GridComposite:null!=i.backgroundColor?G.ColorComposite:G.LayerOnly,this.setNeedsRender()}_updatePatchGroups(){if(this._patchesByOriginDirty&&(this._rebuildPatchGroups(),this._patchesByOriginDirty=!1,this._patchSortingDirty=!0),this._patchSortingDirty&&this.renderOrder!==D.NONE){const e=Array.from(this._visiblePatchesByOrigin.values()),t=this._stencilEnabledLayerExtents;for(const i of e)N(this.renderOrder,i,t);e.sort(((e,t)=>B(e[0],t[0],this.renderOrder))),this._visiblePatchesByOrigin=new Map(e.map((e=>[e[0].renderData.localOrigin,e]))),this._patchSortingDirty=!1}}_rebuildPatchGroups(){const e=this._rootTiles;if(null!=e){e[0]?.surface.checkAllTilesWaterproofness(),this._visiblePatchesByOrigin.clear(),this._allPatchesByOrigin.clear();for(const t of e)this._rebuildPatchGroupsForRootTile(t)}}_rebuildPatchGroupsForRootTile(e){const t=this._tileIterator;for(t.resetOne(e);!t.done;){const e=t.next(),i=e.renderData;if(!i){this._numTilesCulled++;continue}const r=i.localOrigin;if(this._castShadows||this._inViewshed){let t=this._allPatchesByOrigin.get(r);t||(t=[],this._allPatchesByOrigin.set(r,t)),t.push(e)}if(!e.visible){this._numTilesCulled++,t.skipSubtree();continue}let s=this._visiblePatchesByOrigin.get(r);s||(s=[],this._visiblePatchesByOrigin.set(r,s)),s.push(e),t.skipSubtree()}}_useStencilForTile(e){for(const t of this._stencilEnabledLayerExtents)if(e.intersectsExtent(t))return!0;return!1}_renderAuxiliaryPass(e,t,i,r){const s=e.rctx;this._passParameters.overlayContent=i,s.bindTechnique(t,e.bind,this._passParameters);const n=this._stencilEnabledLayerExtents.length>0;r.forEach((r=>{this._drawParameters.origin=r[0].renderData.localOrigin,t.program.bindDraw(e.bind,this._passParameters,this._drawParameters);for(let s=0;s<r.length;s++)this._renderPatch(e,t,r[s],le.TRIANGLES,n,i)})),e.rctx.bindVAO(null)}_renderMaterialPass(e,t,i){const{rctx:r}=e;this._passParameters.overlayContent=i,r.bindTechnique(t,e.bind,this._passParameters),this._numTilesRendered=0,this._numTilesCulled=0,this._numOriginsRendered=0;const s=e.bind.camera,n=t.program;if(this._configuration.screenSizePerspective&&this.pointsOfInterest){const e=ee(this._stage.viewingMode,this._ellipsoidRadius),t=this.pointsOfInterest.centerOnSurfaceFrequent.distance;e.update({distance:t,fovY:s.fovY})}const o=this._stencilEnabledLayerExtents.length>0,a=i===v.Occluded;a&&(n.bindTexture("tex",this._emptyTex),n.setUniform3fv("textureOpacities",g),n.setUniform4fv("texOffsetAndScale",m));const l=null!=this._tileRenderer?.backgroundColor?this._tileRenderer.backgroundColor:g;this._configuration.tileBlendInput===G.ColorComposite&&n.setUniform3fv("backgroundColor",l);const c=this.wireframe?le.LINES:le.TRIANGLES;this._configuration.textureFadingEnabled&&n.bindTexture("texNext",this._emptyTex);const d=this._visiblePatchesByOrigin;for(const h of d.values()){const r=h[0].renderData.localOrigin;this._drawParameters.origin=r,t.program.bindDraw(e.bind,this._passParameters,this._drawParameters),this._numOriginsRendered++;for(const s of h){const r=s.renderData,l=r.textureReference;if(null!=l){if(!a){n.setUniform4fv("texOffsetAndScale",l.offsetAndScale),n.bindTexture("tex",l.texture.texture);const e=r.textureFadeFactor,t=e<1?r.nextTextureReference:null;this._configuration.textureFadingEnabled&&null!=t&&e<1?(n.setUniform1f("fadeFactor",e),n.setUniform4fv("nextTexOffsetAndScale",t.offsetAndScale),n.setUniform3fv("nextTexOpacities",t.opacities),n.bindTexture("texNext",t.texture.texture)):n.setUniform1f("fadeFactor",1),r.textureIsFading&&this.setNeedsRender(),n.setUniform3fv("textureOpacities",l.opacities)}this._renderPatch(e,t,s,c,o,i),s.renderOrder=this._numTilesRendered,this._numTilesRendered++}}}e.rctx.bindVAO(null)}_renderPatch(e,t,i,r,s,n){const o=i.renderData,a=o.vao,l=a?.indexBuffer;if(!a||null==l)return void(C&&console.error("Rendered tile with no indices: ",i.lij," : ",o));const c=t.program;null==n||this._overlayRenderer.isEmpty||this._bindOverlayPatchData(c,o.overlay),s&&(t.useStencil=this._useStencilForTile(i),e.rctx.setPipelineState(t.getPipeline()));const d=o.geometry.indexCount;e.rctx.bindVAO(a),c.assertCompatibleVertexAttributeLocations(a),e.rctx.drawElements(r,d,l.indexType,0)}_bindOverlayPatchData(e,t){e.setUniform4fv("overlayTexOffset",t.offsets),e.setUniform4fv("overlayTexScale",t.scales)}_acquireTechnique(e,t){return this._configuration.output=e,this._configuration.renderOccluded=t,this._techniques.get(oe,this._configuration)}get test(){}hasHighlightOptions(e){return this._overlayRenderer.hasHighlightOptions(e)}};e([a({readOnly:!0})],ue.prototype,"_isGlobal",null),e([a()],ue.prototype,"renderOccludedFlags",void 0),e([a({value:!1})],ue.prototype,"renderingDisabled",null),e([a({value:!0})],ue.prototype,"visible",null),e([a()],ue.prototype,"texturesBeingCompressed",null),e([a()],ue.prototype,"renderPatchBorders",null),e([a()],ue.prototype,"visualizeNormals",null),e([a()],ue.prototype,"cullBackFaces",null),e([a({value:D.FRONT_TO_BACK})],ue.prototype,"renderOrder",null),e([a()],ue.prototype,"wireframe",null),ue=e([l("esri.views.3d.terrain.TerrainRenderer")],ue);const ge=_(),pe=_(),_e=_(),fe=_();export{ue as TerrainRenderer};
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.32/esri/copyright.txt for details.
4
4
  */
5
- import e from"../../../core/Logger.js";import{disposeMaybe as r}from"../../../core/maybe.js";import{ZEROS as t}from"../../../core/libs/gl-matrix-2/factories/vec2f64.js";import{RasterColorizerStretchType as i}from"../../2d/engine/imagery/enums.js";import{VectorTileRendererHelper3D as s}from"../../2d/engine/vectorTiles/VectorTileRendererHelper3D.js";import{BlendLayersTechnique as o}from"./BlendLayersTechnique.js";import{BlendLayersTechniqueConfiguration as n}from"./BlendLayersTechniqueConfiguration.js";import{LayerClass as a}from"./LayerClass.js";import{RasterColorizerTechnique as l}from"./RasterColorizerTechnique.js";import{RasterColorizerTechniqueConfiguration as h}from"./RasterColorizerTechniqueConfiguration.js";import{MultiSizeFramebuffer as c}from"./support/MultiSizeFramebuffer.js";import{LayerBlendMode as u}from"../webgl-engine/core/shaderLibrary/output/BlendOptions.js";import{BaseOpacityMode as d}from"../webgl-engine/core/shaderLibrary/terrain/BaseOpacityMode.js";import{BlendLayersOutput as _}from"../webgl-engine/core/shaderLibrary/terrain/BlendLayersOutput.js";import{PremultipliedAlphaSource as f}from"../webgl-engine/core/shaderLibrary/terrain/PremultipliedAlphaSource.js";import{a as p}from"../../../chunks/BlendLayers.glsl.js";import{BindParameters as m}from"../webgl-engine/lib/BindParameters.js";import{createQuadVAO as b,Layout as g}from"../webgl-engine/lib/glUtil3D.js";import{PrimitiveType as y,FramebufferBit as T,TextureType as C}from"../../webgl/enums.js";import{Texture as x}from"../../webgl/Texture.js";import{vertexCount as q}from"../../webgl/Util.js";const B=()=>e.getLogger("esri.views.3d.terrain");class O{constructor(e,r){this._rctx=e,this._techniques=r,this._fbos=[],this._vectorTileHelper=new s,this._bindParameters=new m(null),this._blendLayersTechniqueConfig=new n,this._current=0,this._lastUsedIds=new Array,this._lastCreatedBufferId=0,this._onHoldIds=new Array,this._vaoQuad=b(this._rctx,g.Pos2Tex)}dispose(){this._fbos.forEach(r),this._fbos=null,this._vtFBO=r(this._vtFBO),this._vaoQuad=r(this._vaoQuad),this._vectorTileHelper=r(this._vectorTileHelper)}updateHeading(e){this._vectorTileHelper?.updateHeading(e)}_acquireBlendLayersTechnique(e,r,t,i=f.Off,s=p.BelowLayer){return this._blendLayersTechniqueConfig.output=r,this._blendLayersTechniqueConfig.blendMode=e,this._blendLayersTechniqueConfig.baseOpacityMode=t,this._blendLayersTechniqueConfig.premultipliedSource=i,this._blendLayersTechniqueConfig.background=s,this._techniques.precompile(o,this._blendLayersTechniqueConfig),this._techniques.acquire(o,this._blendLayersTechniqueConfig)}drawBackground(e,r){const t=this._acquireBlendLayersTechnique(u.Normal,r?_.ColorComposite:_.GridComposite,d.NotRequired,f.Off,p.Only),i=this._rctx.bindTechnique(t,this._bindParameters,e);this._render(i),t.release()}_render(e){this._rctx.bindVAO(this._vaoQuad),e.assertCompatibleVertexAttributeLocations(this._vaoQuad),this._rctx.drawArrays(y.TRIANGLE_STRIP,0,q(this._vaoQuad,"geometry"))}drawGroup(e,r,t,i,s=f.On){r===_.Composite&&(e.fboTexture=this._fbos[this.getLastOnHoldId()].get(t).colorTexture),e.texture=this.currentFBO(t).colorTexture,this.closeGroup(t);const o=e.baseOpacity<1?d.Required:d.NotRequired,n=this._acquireBlendLayersTechnique(i,r,o,s),a=this._rctx.bindTechnique(n,this._bindParameters,e);this._render(a),n.release()}drawImageData(e,r,t,i,s=f.Off){if(null==e.texture)return;const o=e.baseOpacity<1?d.Required:d.NotRequired;e.fboTexture=r===_.GroupBackgroundComposite||i===u.Normal&&o===d.NotRequired&&s===f.Off?null:this.switch(t).colorTexture;const n=this._acquireBlendLayersTechnique(i,r,o,s),a=this._rctx.bindTechnique(n,this._bindParameters,e);this._render(a),n.release()}drawRasterData(e,r,t,i,s){const o=s.sourceLayerInfo.data;if(!o.source)return;if(s.tile.surface.layerViewByIndex(s.layerIndex,a.MAP).ensureSymbolizerParameters(o),!o.bind(this._rctx))return;const n=e.baseOpacity<1?d.Required:d.NotRequired;e.fboTexture=i===u.Normal&&n===d.NotRequired?null:this.switch(t).colorTexture;const l=this._acquireRasterColorizerTechnique(o,r,i,n);o.opacity=e.opacity;const h=o.getUniforms();h.scale=s.scale,h.offset=s.offset,h.backgroundColor=e.backgroundColor,h.fboTexture=e.fboTexture,h.baseOpacity=e.baseOpacity;const c=this._rctx.bindTechnique(l,this._bindParameters,h);this._render(c),l.release()}_acquireRasterColorizerTechnique(e,r,t,s){const o=e.symbolizerParameters,n=["stretch","lut","hillshade"].indexOf(o.type);return null==this._rasterColorizerConfig&&(this._rasterColorizerConfig=new h,this._rctx.gl.getExtension("WEBGL_color_buffer_float"),this._rctx.gl.getExtension("OES_texture_float")),this._rasterColorizerConfig.output=r,this._rasterColorizerConfig.blendMode=t,this._rasterColorizerConfig.baseOpacityMode=s,this._rasterColorizerConfig.colorizerType=n,this._rasterColorizerConfig.applyColormap=!!o.colormap,this._rasterColorizerConfig.requireBilinearWithNN=e.isBilinearWithStretchColorRamp,this._rasterColorizerConfig.stretchType=e.hasStretchTypeNone()?i.Noop:i.PerBand,this._techniques.precompile(l,this._rasterColorizerConfig),this._techniques.acquire(l,this._rasterColorizerConfig)}drawVectorData(e,r,i,s,o,n,l,h){const p=this._rctx,m=o.sourceLayerInfo.data,b=o.tile.surface.layerViewByIndex(o.layerIndex,a.MAP),g=e.baseOpacity<1?d.Required:d.NotRequired,y=g===d.Required||e.opacity<1||s!==u.Normal||r!==_.Composite,C=y?f.On:f.Off,x=this._acquireBlendLayersTechnique(s,r,g,C);p.setPipelineState(x.getPipeline());let q=null,O=null;y?(O=this.currentFBO(i),null==this._vtFBO&&(this._vtFBO=new c(this._rctx)),q=this._vtFBO.get(i),p.bindFramebuffer(q),this._clearCurrentFBO()):h&&p.clear(T.DEPTH);try{this._vectorTileHelper.renderBackground(p,o.sourceLod,b.painter,b.layer.styleRepository,b.schemaHelper,Math.round(1/o.scale),o.offset,l,n,b.contentZoom),m&&this._vectorTileHelper.renderContent(p,o.sourceLod,m,o.vtlNeighborInfos,b.painter,b.layer.styleRepository,b.schemaHelper,Math.round(1/o.scale),o.offset,l,n,b.contentZoom)}catch(L){B().warnOnce("A render call containing vector tiles did not resolve correctly.",L)}return x.release(),!q||(p.bindFramebuffer(O),e.texture=q.colorTexture,e.offset=t,e.scale=1,this.drawImageData(e,r,i,s,C),h)}copyFBOToTexture(e){const r=this._rctx,t=r.bindTexture(e.texture,x.TEXTURE_UNIT_FOR_UPDATES),i=e.descriptor;r.gl.copyTexImage2D(C.TEXTURE_2D,0,i.pixelFormat,0,0,i.width,i.height,0),e.generateMipmap(),r.bindTexture(t,x.TEXTURE_UNIT_FOR_UPDATES)}_clearCurrentFBO(){this._rctx.setStencilWriteMask(255),this._rctx.setClearColor(0,0,0,0),this._rctx.setClearDepth(1),this._rctx.setClearStencil(0),this._rctx.clear(T.COLOR|T.DEPTH|T.STENCIL)}_initFBO(e,r,t){this._rctx.bindFramebuffer(e),t&&(this._rctx.setViewport(0,0,r,r),this._clearCurrentFBO())}ensureBuffer(e){this._lastUsedIds.length=0,this._lastUsedIds.push(1),this._lastCreatedBufferId=1,this._onHoldIds.length=0,this.bind(e)}bind(e,r=0,t=!0){if(this._current=r,r>=this._fbos.length)for(let i=this._fbos.length;i<=r;i++)this._fbos.push(new c(this._rctx));this._initFBO(this._fbos[r].get(e),e,t)}_bindNextFreeBuffer(e){this._lastUsedIds.length>0?this.bind(e,this._lastUsedIds.pop()):(this._lastCreatedBufferId++,this.bind(e,this._lastCreatedBufferId))}openGroup(e){this._onHoldIds.push(this._current),this._bindNextFreeBuffer(e)}switch(e){const r=this.currentFBO(e),t=this._current;return this._bindNextFreeBuffer(e),this._lastUsedIds.push(t),r}getLastOnHoldId(){return this._onHoldIds[this._onHoldIds.length-1]}closeGroup(e){const r=this._current;this._bindNextFreeBuffer(e),this._lastUsedIds.push(r),this._lastUsedIds.push(this._onHoldIds.pop())}unbind(){this._rctx.bindFramebuffer(null)}currentFBO(e){return this._fbos[this._current].get(e)}}export{O as TileCompositor};
5
+ import e from"../../../core/Logger.js";import{disposeMaybe as r}from"../../../core/maybe.js";import{ZEROS as t}from"../../../core/libs/gl-matrix-2/factories/vec2f64.js";import{RasterColorizerStretchType as i}from"../../2d/engine/imagery/enums.js";import{VectorTileRendererHelper3D as s}from"../../2d/engine/vectorTiles/VectorTileRendererHelper3D.js";import{BlendLayersTechnique as o}from"./BlendLayersTechnique.js";import{BlendLayersTechniqueConfiguration as n}from"./BlendLayersTechniqueConfiguration.js";import{LayerClass as a}from"./LayerClass.js";import{RasterColorizerTechnique as l}from"./RasterColorizerTechnique.js";import{RasterColorizerTechniqueConfiguration as h}from"./RasterColorizerTechniqueConfiguration.js";import{MultiSizeFramebuffer as c}from"./support/MultiSizeFramebuffer.js";import{LayerBlendMode as u}from"../webgl-engine/core/shaderLibrary/output/BlendOptions.js";import{BaseOpacityMode as d}from"../webgl-engine/core/shaderLibrary/terrain/BaseOpacityMode.js";import{BlendLayersOutput as _}from"../webgl-engine/core/shaderLibrary/terrain/BlendLayersOutput.js";import{PremultipliedAlphaSource as f}from"../webgl-engine/core/shaderLibrary/terrain/PremultipliedAlphaSource.js";import{a as p}from"../../../chunks/BlendLayers.glsl.js";import{BindParameters as m}from"../webgl-engine/lib/BindParameters.js";import{createQuadVAO as b,Layout as g}from"../webgl-engine/lib/glUtil3D.js";import{PrimitiveType as y,FramebufferBit as T,TextureType as C}from"../../webgl/enums.js";import{Texture as x}from"../../webgl/Texture.js";import{vertexCount as q}from"../../webgl/Util.js";const B=()=>e.getLogger("esri.views.3d.terrain");class O{constructor(e,r){this._rctx=e,this._techniques=r,this._fbos=[],this._vectorTileHelper=new s,this._bindParameters=new m(null),this._blendLayersTechniqueConfig=new n,this._current=0,this._lastUsedIds=new Array,this._lastCreatedBufferId=0,this._onHoldIds=new Array,this._vaoQuad=b(this._rctx,g.Pos2Tex)}dispose(){this._fbos.forEach(r),this._fbos=null,this._vtFBO=r(this._vtFBO),this._vaoQuad=r(this._vaoQuad),this._vectorTileHelper=r(this._vectorTileHelper)}updateHeading(e){this._vectorTileHelper?.updateHeading(e)}_acquireBlendLayersTechnique(e,r,t,i=f.Off,s=p.BelowLayer){return this._blendLayersTechniqueConfig.output=r,this._blendLayersTechniqueConfig.blendMode=e,this._blendLayersTechniqueConfig.baseOpacityMode=t,this._blendLayersTechniqueConfig.premultipliedSource=i,this._blendLayersTechniqueConfig.background=s,this._techniques.precompile(o,this._blendLayersTechniqueConfig),this._techniques.get(o,this._blendLayersTechniqueConfig)}drawBackground(e,r){const t=this._acquireBlendLayersTechnique(u.Normal,r?_.ColorComposite:_.GridComposite,d.NotRequired,f.Off,p.Only),i=this._rctx.bindTechnique(t,this._bindParameters,e);this._render(i)}_render(e){this._rctx.bindVAO(this._vaoQuad),e.assertCompatibleVertexAttributeLocations(this._vaoQuad),this._rctx.drawArrays(y.TRIANGLE_STRIP,0,q(this._vaoQuad,"geometry"))}drawGroup(e,r,t,i,s=f.On){r===_.Composite&&(e.fboTexture=this._fbos[this.getLastOnHoldId()].get(t).colorTexture),e.texture=this.currentFBO(t).colorTexture,this.closeGroup(t);const o=e.baseOpacity<1?d.Required:d.NotRequired,n=this._acquireBlendLayersTechnique(i,r,o,s),a=this._rctx.bindTechnique(n,this._bindParameters,e);this._render(a)}drawImageData(e,r,t,i,s=f.Off){if(null==e.texture)return;const o=e.baseOpacity<1?d.Required:d.NotRequired;e.fboTexture=r===_.GroupBackgroundComposite||i===u.Normal&&o===d.NotRequired&&s===f.Off?null:this.switch(t).colorTexture;const n=this._acquireBlendLayersTechnique(i,r,o,s),a=this._rctx.bindTechnique(n,this._bindParameters,e);this._render(a)}drawRasterData(e,r,t,i,s){const o=s.sourceLayerInfo.data;if(!o.source)return;if(s.tile.surface.layerViewByIndex(s.layerIndex,a.MAP).ensureSymbolizerParameters(o),!o.bind(this._rctx))return;const n=e.baseOpacity<1?d.Required:d.NotRequired;e.fboTexture=i===u.Normal&&n===d.NotRequired?null:this.switch(t).colorTexture;const l=this._acquireRasterColorizerTechnique(o,r,i,n);o.opacity=e.opacity;const h=o.getUniforms();h.scale=s.scale,h.offset=s.offset,h.backgroundColor=e.backgroundColor,h.fboTexture=e.fboTexture,h.baseOpacity=e.baseOpacity;const c=this._rctx.bindTechnique(l,this._bindParameters,h);this._render(c)}_acquireRasterColorizerTechnique(e,r,t,s){const o=e.symbolizerParameters,n=["stretch","lut","hillshade"].indexOf(o.type);return null==this._rasterColorizerConfig&&(this._rasterColorizerConfig=new h,this._rctx.gl.getExtension("WEBGL_color_buffer_float"),this._rctx.gl.getExtension("OES_texture_float")),this._rasterColorizerConfig.output=r,this._rasterColorizerConfig.blendMode=t,this._rasterColorizerConfig.baseOpacityMode=s,this._rasterColorizerConfig.colorizerType=n,this._rasterColorizerConfig.applyColormap=!!o.colormap,this._rasterColorizerConfig.requireBilinearWithNN=e.isBilinearWithStretchColorRamp,this._rasterColorizerConfig.stretchType=e.hasStretchTypeNone()?i.Noop:i.PerBand,this._techniques.precompile(l,this._rasterColorizerConfig),this._techniques.get(l,this._rasterColorizerConfig)}drawVectorData(e,r,i,s,o,n,l,h){const p=this._rctx,m=o.sourceLayerInfo.data,b=o.tile.surface.layerViewByIndex(o.layerIndex,a.MAP),g=e.baseOpacity<1?d.Required:d.NotRequired,y=g===d.Required||e.opacity<1||s!==u.Normal||r!==_.Composite,C=y?f.On:f.Off,x=this._acquireBlendLayersTechnique(s,r,g,C);p.setPipelineState(x.getPipeline());let q=null,O=null;y?(O=this.currentFBO(i),null==this._vtFBO&&(this._vtFBO=new c(this._rctx)),q=this._vtFBO.get(i),p.bindFramebuffer(q),this._clearCurrentFBO()):h&&p.clear(T.DEPTH);try{this._vectorTileHelper.renderBackground(p,o.sourceLod,b.painter,b.layer.styleRepository,b.schemaHelper,Math.round(1/o.scale),o.offset,l,n,b.contentZoom),m&&this._vectorTileHelper.renderContent(p,o.sourceLod,m,o.vtlNeighborInfos,b.painter,b.layer.styleRepository,b.schemaHelper,Math.round(1/o.scale),o.offset,l,n,b.contentZoom)}catch(L){B().warnOnce("A render call containing vector tiles did not resolve correctly.",L)}return!q||(p.bindFramebuffer(O),e.texture=q.colorTexture,e.offset=t,e.scale=1,this.drawImageData(e,r,i,s,C),h)}copyFBOToTexture(e){const r=this._rctx,t=r.bindTexture(e.texture,x.TEXTURE_UNIT_FOR_UPDATES),i=e.descriptor;r.gl.copyTexImage2D(C.TEXTURE_2D,0,i.pixelFormat,0,0,i.width,i.height,0),e.generateMipmap(),r.bindTexture(t,x.TEXTURE_UNIT_FOR_UPDATES)}_clearCurrentFBO(){this._rctx.setStencilWriteMask(255),this._rctx.setClearColor(0,0,0,0),this._rctx.setClearDepth(1),this._rctx.setClearStencil(0),this._rctx.clear(T.COLOR|T.DEPTH|T.STENCIL)}_initFBO(e,r,t){this._rctx.bindFramebuffer(e),t&&(this._rctx.setViewport(0,0,r,r),this._clearCurrentFBO())}ensureBuffer(e){this._lastUsedIds.length=0,this._lastUsedIds.push(1),this._lastCreatedBufferId=1,this._onHoldIds.length=0,this.bind(e)}bind(e,r=0,t=!0){if(this._current=r,r>=this._fbos.length)for(let i=this._fbos.length;i<=r;i++)this._fbos.push(new c(this._rctx));this._initFBO(this._fbos[r].get(e),e,t)}_bindNextFreeBuffer(e){this._lastUsedIds.length>0?this.bind(e,this._lastUsedIds.pop()):(this._lastCreatedBufferId++,this.bind(e,this._lastCreatedBufferId))}openGroup(e){this._onHoldIds.push(this._current),this._bindNextFreeBuffer(e)}switch(e){const r=this.currentFBO(e),t=this._current;return this._bindNextFreeBuffer(e),this._lastUsedIds.push(t),r}getLastOnHoldId(){return this._onHoldIds[this._onHoldIds.length-1]}closeGroup(e){const r=this._current;this._bindNextFreeBuffer(e),this._lastUsedIds.push(r),this._lastUsedIds.push(this._onHoldIds.pop())}unbind(){this._rctx.bindFramebuffer(null)}currentFBO(e){return this._fbos[this._current].get(e)}}export{O as TileCompositor};
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.32/esri/copyright.txt for details.
4
4
  */
5
- import{_ as e}from"../../../chunks/tslib.es6.js";import r from"../../../core/Accessor.js";import t from"../../../core/Error.js";import{watch as i,initial as s}from"../../../core/reactiveUtils.js";import{property as n}from"../../../core/accessorSupport/decorators/property.js";import{subclass as o}from"../../../core/accessorSupport/decorators/subclass.js";import{RenderCategory as d}from"../webgl.js";import{RenderRequestType as a}from"../webgl-engine/lib/basicInterfaces.js";let u=class extends r{constructor(e){super(e),this.view=null,this.consumes={required:[]},this.produces=d.COMPOSITE,this.requireGeometryDepth=!1,this._dirty=!0}initialize(){this.addHandles([i((()=>this.view.ready),(e=>{e&&this.view._stage?.renderer.addRenderNode(this)}),s)])}destroy(){this.view._stage?.renderer?.removeRenderNode(this)}precompile(){}render(){throw new t("RenderNode:render-function-not-implemented","render() is not implemented.")}get camera(){return this.view.state.camera.clone()}get sunLight(){return this.bindParameters.lighting.legacy}get gl(){return this.view._stage.renderView.renderingContext.gl}acquireOutputFramebuffer(){const e=this._frameBuffer?.getTexture()?.descriptor,r=this.view._stage.renderer.fboCache.acquire(e?.width??640,e?.height??480,this.produces);return r.fbo?.initializeAndBind(),r}bindRenderTarget(){return this._frameBuffer?.fbo?.initializeAndBind(),this._frameBuffer}requestRender(e){e===a.UPDATE&&this.view._stage?.renderView.requestRender(e),this._dirty=!0}resetWebGLState(){this.renderingContext.resetState(),this.renderingContext.bindFramebuffer(this._frameBuffer?.fbo)}get fboCache(){return this.view._stage.renderer.fboCache}get bindParameters(){return this.renderContext.bind}get renderingContext(){return this.view._stage.renderView.renderingContext}get renderContext(){return this.view._stage?.renderer.renderContext}updateAnimation(e){return!!this._dirty&&(this._dirty=!1,!0)}doRender(e){this._frameBuffer=e.find((({name:e})=>e===this.produces));try{return this.render(e)}finally{this._frameBuffer=null}}};e([n({constructOnly:!0})],u.prototype,"view",void 0),e([n({constructOnly:!0})],u.prototype,"consumes",void 0),e([n()],u.prototype,"produces",void 0),u=e([o("esri.views.3d.webgl.RenderNode")],u);const c=u;export{c as default};
5
+ import{_ as e}from"../../../chunks/tslib.es6.js";import r from"../../../core/Accessor.js";import t from"../../../core/Error.js";import{watch as i,initial as s}from"../../../core/reactiveUtils.js";import{property as n}from"../../../core/accessorSupport/decorators/property.js";import{subclass as o}from"../../../core/accessorSupport/decorators/subclass.js";import{RenderCategory as d}from"../webgl.js";import{RenderRequestType as a}from"../webgl-engine/lib/basicInterfaces.js";let u=class extends r{constructor(e){super(e),this.view=null,this.consumes={required:[]},this.produces=d.COMPOSITE,this.requireGeometryDepth=!1,this._dirty=!0}initialize(){this.addHandles([i((()=>this.view.ready),(e=>{e&&this.view._stage?.renderer.addRenderNode(this)}),s)])}destroy(){this.view._stage?.renderer?.removeRenderNode(this)}precompile(){}render(){throw new t("RenderNode:render-function-not-implemented","render() is not implemented.")}get camera(){return this.view.state.camera.clone()}get sunLight(){return this.bindParameters.lighting.legacy}get gl(){return this.view._stage.renderView.renderingContext.gl}get techniques(){return this.view._stage.renderView.techniques}acquireOutputFramebuffer(){const e=this._frameBuffer?.getTexture()?.descriptor,r=this.view._stage.renderer.fboCache.acquire(e?.width??640,e?.height??480,this.produces);return r.fbo?.initializeAndBind(),r}bindRenderTarget(){return this._frameBuffer?.fbo?.initializeAndBind(),this._frameBuffer}requestRender(e){e===a.UPDATE&&this.view._stage?.renderView.requestRender(e),this._dirty=!0}resetWebGLState(){this.renderingContext.resetState(),this.renderingContext.bindFramebuffer(this._frameBuffer?.fbo)}get fboCache(){return this.view._stage.renderer.fboCache}get bindParameters(){return this.renderContext.bind}get renderingContext(){return this.view._stage.renderView.renderingContext}get renderContext(){return this.view._stage?.renderer.renderContext}updateAnimation(e){return!!this._dirty&&(this._dirty=!1,!0)}doRender(e){this._frameBuffer=e.find((({name:e})=>e===this.produces));try{return this.render(e)}finally{this._frameBuffer=null}}};e([n({constructOnly:!0})],u.prototype,"view",void 0),e([n({constructOnly:!0})],u.prototype,"consumes",void 0),e([n()],u.prototype,"produces",void 0),e([n({readOnly:!0})],u.prototype,"techniques",null),u=e([o("esri.views.3d.webgl.RenderNode")],u);const h=u;export{h as default};