@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{_ as e}from"../../../../../chunks/tslib.es6.js";import t from"../../../../../core/Accessor.js";import{equals as r,binaryIndexOf as s}from"../../../../../core/arrayUtils.js";import"../../../../../core/has.js";import n from"../../../../../core/Logger.js";import{clamp as i}from"../../../../../core/mathUtils.js";import{disposeMaybe as o,destroyMaybe as a}from"../../../../../core/maybe.js";import{isAbortError as c,onAbortOrThrow as l}from"../../../../../core/promiseUtils.js";import{property as d}from"../../../../../core/accessorSupport/decorators/property.js";import{subclass as h}from"../../../../../core/accessorSupport/decorators/subclass.js";import{fromMat4 as u,transpose as m,invert as g}from"../../../../../core/libs/gl-matrix-2/math/mat3.js";import{create as f}from"../../../../../core/libs/gl-matrix-2/factories/mat3f64.js";import{create as p}from"../../../../../core/libs/gl-matrix-2/factories/mat4f64.js";import{i as _,c as b,a as y,f as j}from"../../../../../chunks/vec32.js";import{create as O,clone as w}from"../../../../../core/libs/gl-matrix-2/factories/vec3f64.js";import{UpdatingHandles as E}from"../../../../../core/support/UpdatingHandles.js";import{a as v,g as x}from"../../../../../chunks/sphere.js";import{c as M}from"../../../../../chunks/vec33.js";import{ViewingMode as R}from"../../../../ViewingMode.js";import{encodeElevationOffset as T}from"../../collections/Component/Material/shader/ComponentData.glsl.js";import{TwoVectorPosition as A}from"../../core/util/TwoVectorPosition.js";import{Attribute as C}from"../Attribute.js";import{GridLocalOriginFactory as D}from"../GridLocalOriginFactory.js";import{applyToModelMatrix as P}from"../localOriginHelper.js";import{LocalOriginManager as U}from"../LocalOriginManager.js";import{Object3D as L}from"../Object3D.js";import{VertexArrayObject as k}from"../VertexArrayObject.js";import{VertexAttribute as I}from"../VertexAttribute.js";import{VertexLayout as S,EdgeInputBufferLayout as B,vertexAttributeLocations as V,glVertexLayout as q}from"./bufferLayouts.js";import{RegularEdgeBufferWriter as H,SilhouetteEdgeBufferWriter as G}from"./edgeBufferWriters.js";import{EdgeRenderer as N,lineWidthFractionFactor as W,extensionLengthOffset as z}from"./EdgeRenderer.js";import{EdgePassParameters as F}from"./EdgeShaderParameters.js";import{EdgeWorkerHandle as K}from"./EdgeWorkerHandle.js";import"./interfaces.js";import{generateStrokesTexture as J}from"./strokes.js";import{determineRendererType as Q,determineEdgeTransparency as X,determineObjectTransparency as Y,fillComponentBufferIndices as Z}from"./util.js";import{BufferManager as $}from"../TextureBackedBuffer/BufferManager.js";import{EdgeSilhouette as ee}from"../../shaders/sources/edgeRenderer/EdgeUtil.glsl.js";import{BufferObject as te}from"../../../../webgl/BufferObject.js";import{Usage as re}from"../../../../webgl/enums.js";const se=128;let ne=class extends t{constructor(e){super(e),this._updatingHandles=new E,this._objectEntries=new Map,this._pendingDeletions=new Map,this._renderers=new Map,this._gpuMemoryUsage=0,this._workerAbort=new AbortController,this._tmpModelPosition=O(),this._localOrigins=new U(new D(e.renderSR));const t=S.createBuffer(4);for(let r=0;r<4;r++)t.sideness.set(r,0,0===r||3===r?0:1),t.sideness.set(r,1,0===r||1===r?0:1);this._verticesBufferObject=te.createVertex(e.rctx,re.STATIC_DRAW,t.buffer)}initialize(){this._worker=new K(this.schedule),this._componentColorManager=new $(this.rctx,3)}destroy(){this.destroyed||(this._objectEntries.forEach((e=>this._discardObjectEntry(e))),this._objectEntries.clear(),this._pendingDeletions.forEach((e=>this._discardObjectEntry(e))),this._pendingDeletions.clear(),this._strokesTexture=o(this._strokesTexture),this._componentColorManager=a(this._componentColorManager),this._workerAbort.abort(),this._worker.destroy(),this._verticesBufferObject.dispose(),this._renderers.clear(),this._updatingHandles.destroy(),this._set("schedule",we))}get updating(){return this._updatingHandles.updating}get usedMemory(){return this._gpuMemoryUsage}shouldRender(){return this._renderers.size>0}async addComponentObject(e,t,r,s,n,i,o){if(this.hasObject(e))return this._getObjectMemoryUsage(e);let a;const c=new ae(null,new Promise((e=>a=e)),e.obb.center,e.obb.radius);this._objectEntries.set(e,c);const l=await this._updatingHandles.addPromise(this._addComponentGeometry(e.transform,c,t,r,s,n,i,o));return this.setNeedsRender(),a(),l}async addOrUpdateObject3D(e,t,r,s){if(this.destroyed)return void n.getLogger(this).warn("Attempt to add an object to a destroyed instance");const i=new AbortController;let o;const a=e.boundingVolumeWorldSpace.bounds,l=new ae(i,new Promise((e=>o=e)),v(a),x(a)),d=this._objectEntries.get(e);d&&(this._pendingDeletions.has(e)?this._discardObjectEntry(d):this._pendingDeletions.set(e,d)),this._objectEntries.set(e,l);try{const n=new Array;if(e.geometries.length>1&&oe(e))n.push(this._addObjectMergedGeometries(e,l,t,r,s));else for(const i of e.geometries)i.material.supportsEdges&&n.push(this._addGeometry(e,l,i,t,r,s));await this._updatingHandles.addPromise(Promise.all(n)),this._removePendingDeletion(e)}catch(h){c(h)?this._discardObjectEntry(l):this._removePendingDeletion(e)}finally{this.setNeedsRender(),o()}}removeObject(e){const t=this._objectEntries.get(e);this._objectEntries.delete(e),this._discardObjectEntry(t),this._removePendingDeletion(e)}_removePendingDeletion(e){const t=this._pendingDeletions.get(e);this._pendingDeletions.delete(e),this._discardObjectEntry(t)}async _getObjectEntry(e){const t=this._objectEntries.get(e);if(!t)throw new Error("no object");return await t.loaded,null==t.loaded?null:t}fastUpdateObject3DEdgesTransform(e){if(this.destroyed)return!1;const t=this._objectEntries.get(e);if(!t)return!1;const{geometries:r}=e,{renderables:s}=t;if(0===r.length||0===s.length)return!0;if(s.length>1)return!1;const[n]=s,i=n.transform;if(!(i instanceof de))return!1;const[o]=r;if(o.localOrigin!==i.origin.origin)return!1;const a=p(),c=this._computeModelTransformWithLocalOrigin(e,o,a);return n.transform=new de(a,c),this.setNeedsRender(),!0}_discardObjectEntry(e){e&&(e.abort?.abort(),e.renderables.length&&(e.renderables.forEach((e=>this._removeRenderable(e))),this.setNeedsRender()),e.loaded=null)}hasObject(e){return this._objectEntries.has(e)}async updateAllComponentOpacities(e,t){const r=await this._updatingHandles.addPromise(this._getObjectEntry(e));if(null==r)return;const s=Array.isArray(t)?e=>t[e]:()=>t;r.renderables.forEach((e=>{const t=e.components.meta.length;for(let r=0;r<t;r++){const t=s(r),n=e.components.meta[r],i=n.index;n.material.opacity=t,e.components.buffer.textureBuffer.setDataElement(i,1,3,255*t)}this._updateTransparency(e)})),this.setNeedsRender()}async _getObjectMemoryUsage(e){const t=await this._getObjectEntry(e);return t?t.renderables.reduce(((e,t)=>e+t.statistics.gpuMemoryUsage),0):0}async updateAllComponentMaterials(e,t,r,s){const n=e instanceof L,i=Q(t),o=N.getKey(i,r,n),a=await this._updatingHandles.addPromise(this._getObjectEntry(e));null!=a&&(a.renderables.forEach((e=>{if(o!==e.rendererKey){const t=this._renderers.get(e.rendererKey),s=this._acquireRenderer(i,r,n);t.removeRenderable(e),--t.refCount,e.rendererKey=o,s.addRenderable(e)}if(Array.isArray(t))for(let r=0;r<t.length;r++)e.components.meta[r].material=t[r];else e.components.meta[0].material=t;s&&me(e.components),this._updateTransparency(e)})),this.setNeedsRender())}async updateAllVerticalOffsets(e,t){const r=await this._updatingHandles.addPromise(this._getObjectEntry(e));null!=r&&this._updateAllVerticalOffsets(r,t)}_updateAllVerticalOffsets(e,t){e.renderables.forEach((e=>{const r=e.components.meta;for(let s=0;s<r.length;s++)e.components.meta[s].verticalOffset=t?.[s]??0;me(e.components)})),this.setNeedsRender()}async updateObjectVisibility(e,t){const r=await this._updatingHandles.addPromise(this._getObjectEntry(e));r&&(r.renderables.forEach((e=>e.visible=t)),this.setNeedsRender())}render(e,t){if(null==this._componentColorManager)return;this._localOrigins.updateViewMatrices(e.camera.viewMatrix);const r=e.camera.viewInverseTransposeMatrix,s=O(),n=new A;let i=0,o=0;if(this._renderers.forEach((r=>{0!==r.refCount?(++this.techniques.precompiling,r.forEachRenderable((t=>{t.visible&&(i+=t.statistics.averageEdgeLength,o++,t.regular&&r.acquireTechnique(e,!1).release(),t.silhouette&&r.acquireTechnique(e,!0).release())}),t),--this.techniques.precompiling):this._renderers.delete(r.key)})),this._componentColorManager.garbageCollect(),this._componentColorManager.updateTextures(),0===o)return;const a=new F(40*i/o,t);_(s,r[3],r[7],r[11]),n.set(s),b(a.transformWorldFromViewTH,n.high),b(a.transformWorldFromViewTL,n.low),u(a.transformViewFromCameraRelativeRS,e.camera.viewMatrix),m(Oe,a.transformViewFromCameraRelativeRS),g(a.transformNormalViewFromGlobal,Oe),a.transformProjFromView=e.camera.projectionMatrix,this._updateObjectCameraDistances(e),this._renderers.forEach((t=>{ge(t,e,a),fe(t,e,a)}))}_updateTransparency(e){const t=X(e.components.meta),r=Y(e.components.meta);t===e.edgeTransparency&&r===e.objectTransparency||(e.edgeTransparency=t,e.objectTransparency=r,this._renderers.get(e.rendererKey).setRenderablesDirty())}_computeModelTransformWithLocalOrigin(e,t,r){e.getCombinedShaderTransformation(t,r);const s=null!=t.localOrigin?this._localOrigins.register(t.localOrigin):this._localOrigins.acquire(_(this._tmpModelPosition,r[12],r[13],r[14]));return t.localOrigin=s.origin,P(s.origin.vec3,r),s}_createComponentBuffers(e){if(null==this._componentColorManager)return null;const t=new Array,r=this._componentColorManager.getBuffer(e.length);for(let n=0;n<e.length;n++){const s=e[n],i=r.acquireIndex();t.push({index:i,verticalOffset:0,material:s})}const s=new ce(r,t);return me(s),s}_extractEdges(e,t,r,s,n,i,o=i.length){return o<se&&(n=!0),this._worker.process({data:r,indices:i,indicesLength:o,writerSettings:t,skipDeduplicate:s},e,n)}_createRenderable(e,t,r,s,n){const i=t=>new le(new k(this.rctx,V,new Map([["vertices",q],["instances",t===ee.REGULAR?H.glLayout:G.glLayout]]),new Map([["vertices",this._verticesBufferObject],["instances",te.createVertex(this.rctx,re.STATIC_DRAW,t===ee.REGULAR?e.regular.instancesData.buffer:e.silhouette.instancesData.buffer)]])),t===ee.REGULAR?e.regular.lodInfo:e.silhouette.lodInfo),o=e.regular.lodInfo.lengths.length>0?i(ee.REGULAR):null,a=e.silhouette.lodInfo.lengths.length>0?i(ee.SILHOUETTE):null,c=(o?.vao.cachedMemory??0)+(a?.vao.cachedMemory??0);return new he(o,a,{gpuMemoryUsage:c,externalMemoryUsage:n,averageEdgeLength:e.averageEdgeLength},r,X(t.meta),Y(t.meta),t,s)}async _addGeometry(e,t,r,s,n,i){if(r.edgeIndicesLength<=0)return;const o=r.attributes.get(I.POSITION),a=p(),c=this._computeModelTransformWithLocalOrigin(e,r,a),l=new je(o,a,c);return this._addPositionData(t,l,r.edgeIndicesLength,s,n,i)}async _addPositionData(e,t,r,s,n,i=!1){if(null==e.loaded)return;const o=this._createComponentBuffers([s]);if(null==o)return;const a=this._acquireRenderer(s.type,n,!0),{modelTransform:c,origin:l}=t,d=t.position.indices,h=t.position,u=h.data.length/h.size,m=B.createBuffer(u);for(let p=0;p<u;p++)m.position.set(p,0,h.data[p*h.size]),m.position.set(p,1,h.data[p*h.size+1]),m.position.set(p,2,h.data[p*h.size+2]);Z(o.meta,[0,m.componentIndex.count],m.componentIndex);const g=await this._updatingHandles.addPromise(this._extractEdges(e.abort?.signal||this._workerAbort.signal,a.writerSettings,m,!1,i,d,r));if(null==e.loaded)return;const f=this._createRenderable(g,o,new de(c,l),a.key,!1);e.renderables.push(f),a.addRenderable(f),this._gpuMemoryUsage+=f.statistics.gpuMemoryUsage}async _addComponentGeometry(e,t,r,s,n,i,o,a){if(null==t.loaded)return 0;const c=this._createComponentBuffers(i);if(null==c)return 0;const l=Q(i),d=this._acquireRenderer(l,o||!1,!1),h=B.createBuffer(r.length/3);M(h.position.typedBuffer,r,h.position.typedBufferStride,3),Z(c.meta,n,h.componentIndex,s);const u=!0,m=d.writerSettings,g=await this._updatingHandles.addPromise(this._extractEdges(this._workerAbort.signal,m,h,u,!1,s));if(null==t.loaded)return 0;const f=this._createRenderable(g,c,e,d.key,!0);return t.renderables.push(f),d.addRenderable(f),this._updateAllVerticalOffsets(t,a),f.statistics.gpuMemoryUsage}async _addObjectMergedGeometries(e,t,r,s,n){const i=new Map;let o=0,a=0,c=null;const l=e.geometries.filter((e=>{if(e.edgeIndicesLength<=0||!e.material.supportsEdges)return!1;!c&&e.localOrigin&&(c=e);const t=e.attributes.get(I.POSITION);return a+=t.data.length/t.size,o+=e.edgeIndicesLength,!0}));if(0===l.length)return;const d=a>=65536?Uint32Array:Uint16Array,h=o?new d(o):null,u=[];let m=0;l.forEach((e=>{const t=e.attributes.get(I.POSITION),r=t.indices;let s=i.get(t.data);if(null==s){s=u.length/3;for(let e=0;e<t.data.length;e+=t.size)u.push(t.data[e]),u.push(t.data[e+1]),u.push(t.data[e+2]);i.set(t.data,s)}for(let n=0;n<e.edgeIndicesLength;n++)h[m++]=s+r[n]}));const g=c||e.geometries[0],f=p(),_=this._computeModelTransformWithLocalOrigin(e,g,f);for(let p=0;p<e.geometries.length;p++)e.geometries[p].localOrigin=_.origin;const b=new je(new C(u,h,3),f,_);await this._updatingHandles.addPromise(this._addPositionData(t,b,h.length,r,s,n))}_acquireRenderer(e,t,r){const s=N.getKey(e,t,r);let n=this._renderers.get(s);return null==this._strokesTexture&&(this._strokesTexture=J(this.rctx)),n||(n=new N(this.rctx,this.techniques,{type:e,hasSlicePlane:t,strokesTexture:this._strokesTexture,legacy:r,spherical:this.viewingMode===R.Global}),this._renderers.set(s,n)),++n.refCount,n}_removeRenderable(e){ie(e.regular),ie(e.silhouette);const t=this._renderers.get(e.rendererKey);if(t){t.removeRenderable(e),--t.refCount,this._localOrigins.release(e.transform.origin),this._gpuMemoryUsage-=e.statistics.externalMemoryUsage?0:e.statistics.gpuMemoryUsage;for(const t of e.components.meta)e.components.buffer.releaseIndex(t.index)}}_updateObjectCameraDistances(e){const t=e.camera.eye,r=e.camera.viewForward,s=O(),n=e=>{y(s,e.center,t);const n=j(s,r),i=e.radius,o=n<-i?1/0:n<i?0:n-i;e.renderables.forEach((e=>e.distanceToCamera=o))};this._objectEntries.forEach(n),this._pendingDeletions.forEach(n)}get test(){}};function ie(e){e?.vao&&(e.vao.vertexBuffers.get("instances")?.dispose(),e.vao.disposeVAOOnly(),e.vao=null)}function oe(e){let t=null,s=null;for(const n of e.geometries){if(n.material.supportsEdges){if(t){if(!r(t,n.transformation))return!1}else t=n.transformation;if(s||null==n.localOrigin){if(null!=s?.localOrigin&&null!=n.localOrigin&&s.localOrigin.id!==n.localOrigin.id)return!1}else s=n}}return!0}e([d({constructOnly:!0})],ne.prototype,"rctx",void 0),e([d({constructOnly:!0})],ne.prototype,"renderSR",void 0),e([d({constructOnly:!0})],ne.prototype,"viewingMode",void 0),e([d({constructOnly:!0})],ne.prototype,"techniques",void 0),e([d({constructOnly:!0})],ne.prototype,"setNeedsRender",void 0),e([d({constructOnly:!0})],ne.prototype,"schedule",void 0),e([d({readOnly:!0})],ne.prototype,"_updatingHandles",void 0),e([d({readOnly:!0})],ne.prototype,"updating",null),ne=e([h("esri.views.3d.webgl-engine.lib.edgeRendering.EdgeView")],ne);class ae{constructor(e,t,r,s){this.abort=e,this.radius=s,this.renderables=new Array;const n=e?l(e.signal,(()=>e.abort())):null;this.loaded=t,this.loaded.then((()=>{null!=this.loaded&&(this.loaded=!0),this.abort=null,n?.remove()})),this.center=w(r)}}class ce{constructor(e,t){this.buffer=e,this.meta=t}}class le{constructor(e,t){this.vao=e,this.lod=t}}class de{constructor(e,t){this.modelMatrix=e,this.origin=t}}class he{constructor(e,t,r,s,n,i,o,a){this.regular=e,this.silhouette=t,this.statistics=r,this.transform=s,this.edgeTransparency=n,this.objectTransparency=i,this.components=o,this.rendererKey=a,this.distanceToCamera=0,this.visible=!0}}class ue extends he{}function me(e){const{meta:t,buffer:r}=e,s=new Uint8Array(4);for(let n=0;n<t.length;n++){const e=t[n].material,o=t[n].index,a=i(Math.round(e.size*W),0,255),c=i(e.extensionLength,-128,255-z)+z,l=255*e.opacity,d=e.color,h=255*d[0],u=255*d[1],m=255*d[2],g=255*d[3];r.textureBuffer.setData(o,0,h,u,m,g),r.textureBuffer.setData(o,1,a,c,e.type,l),T(t[n].verticalOffset,s),r.textureBuffer.setData(o,2,s[0],s[1],s[2],s[3])}}function ge(e,t,r){let s,n;const i=r.transparency,o=t.camera.perScreenPixelRatio;e.forEachRenderable((i=>{if(!pe(i)||!i.visible)return;s??=e.acquireTechnique(t,!1),n??=e.rctx.bindTechnique(s,t,r);const a=ye(i.regular.lod.lengths,i.distanceToCamera,o);e.renderRegularEdges(n,i,r,t,a)}),i),s?.release()}function fe(e,t,r){let s,n;const i=r.transparency,o=t.camera.perScreenPixelRatio;e.forEachRenderable((i=>{if(!be(i)||!i.visible)return;s??=e.acquireTechnique(t,!0),n??=e.rctx.bindTechnique(s,t,r);const a=ye(i.silhouette.lod.lengths,i.distanceToCamera,o);e.renderSilhouetteEdges(n,i,r,t,a)}),i),s?.release()}function pe(e){return null!=e.regular}class _e extends he{}function be(e){return null!=e.silhouette}function ye(e,t,r){const n=t*r,i=s(e,n,!0);return-1===i?n<e[0]?e.length:0:e.length-i}class je{constructor(e,t,r){this.position=e,this.modelTransform=t,this.origin=r}}const Oe=f(),we=()=>Promise.reject();export{ne as EdgeView,de as LegacyTransform,ue as RegularRenderable,he as Renderable,_e as SilhouetteRenderable};
5
+ import{_ as e}from"../../../../../chunks/tslib.es6.js";import t from"../../../../../core/Accessor.js";import{equals as r,binaryIndexOf as s}from"../../../../../core/arrayUtils.js";import"../../../../../core/has.js";import n from"../../../../../core/Logger.js";import{clamp as i}from"../../../../../core/mathUtils.js";import{disposeMaybe as o,destroyMaybe as a}from"../../../../../core/maybe.js";import{isAbortError as c,onAbortOrThrow as l}from"../../../../../core/promiseUtils.js";import{property as d}from"../../../../../core/accessorSupport/decorators/property.js";import{subclass as h}from"../../../../../core/accessorSupport/decorators/subclass.js";import{fromMat4 as u,transpose as m,invert as g}from"../../../../../core/libs/gl-matrix-2/math/mat3.js";import{create as f}from"../../../../../core/libs/gl-matrix-2/factories/mat3f64.js";import{create as p}from"../../../../../core/libs/gl-matrix-2/factories/mat4f64.js";import{i as _,c as b,a as y,f as j}from"../../../../../chunks/vec32.js";import{create as O,clone as w}from"../../../../../core/libs/gl-matrix-2/factories/vec3f64.js";import{UpdatingHandles as E}from"../../../../../core/support/UpdatingHandles.js";import{a as v,g as x}from"../../../../../chunks/sphere.js";import{c as M}from"../../../../../chunks/vec33.js";import{ViewingMode as R}from"../../../../ViewingMode.js";import{encodeElevationOffset as T}from"../../collections/Component/Material/shader/ComponentData.glsl.js";import{TwoVectorPosition as A}from"../../core/util/TwoVectorPosition.js";import{Attribute as C}from"../Attribute.js";import{GridLocalOriginFactory as D}from"../GridLocalOriginFactory.js";import{applyToModelMatrix as P}from"../localOriginHelper.js";import{LocalOriginManager as U}from"../LocalOriginManager.js";import{Object3D as L}from"../Object3D.js";import{VertexArrayObject as k}from"../VertexArrayObject.js";import{VertexAttribute as I}from"../VertexAttribute.js";import{VertexLayout as S,EdgeInputBufferLayout as B,vertexAttributeLocations as V,glVertexLayout as q}from"./bufferLayouts.js";import{RegularEdgeBufferWriter as H,SilhouetteEdgeBufferWriter as G}from"./edgeBufferWriters.js";import{EdgeRenderer as N,lineWidthFractionFactor as W,extensionLengthOffset as z}from"./EdgeRenderer.js";import{EdgePassParameters as F}from"./EdgeShaderParameters.js";import{EdgeWorkerHandle as K}from"./EdgeWorkerHandle.js";import"./interfaces.js";import{generateStrokesTexture as J}from"./strokes.js";import{determineRendererType as Q,determineEdgeTransparency as X,determineObjectTransparency as Y,fillComponentBufferIndices as Z}from"./util.js";import{BufferManager as $}from"../TextureBackedBuffer/BufferManager.js";import{EdgeSilhouette as ee}from"../../shaders/sources/edgeRenderer/EdgeUtil.glsl.js";import{BufferObject as te}from"../../../../webgl/BufferObject.js";import{Usage as re}from"../../../../webgl/enums.js";const se=128;let ne=class extends t{constructor(e){super(e),this._updatingHandles=new E,this._objectEntries=new Map,this._pendingDeletions=new Map,this._renderers=new Map,this._gpuMemoryUsage=0,this._workerAbort=new AbortController,this._tmpModelPosition=O(),this._localOrigins=new U(new D(e.renderSR));const t=S.createBuffer(4);for(let r=0;r<4;r++)t.sideness.set(r,0,0===r||3===r?0:1),t.sideness.set(r,1,0===r||1===r?0:1);this._verticesBufferObject=te.createVertex(e.rctx,re.STATIC_DRAW,t.buffer)}initialize(){this._worker=new K(this.schedule),this._componentColorManager=new $(this.rctx,3)}destroy(){this.destroyed||(this._objectEntries.forEach((e=>this._discardObjectEntry(e))),this._objectEntries.clear(),this._pendingDeletions.forEach((e=>this._discardObjectEntry(e))),this._pendingDeletions.clear(),this._strokesTexture=o(this._strokesTexture),this._componentColorManager=a(this._componentColorManager),this._workerAbort.abort(),this._worker.destroy(),this._verticesBufferObject.dispose(),this._renderers.clear(),this._updatingHandles.destroy(),this._set("schedule",we))}get updating(){return this._updatingHandles.updating}get usedMemory(){return this._gpuMemoryUsage}shouldRender(){return this._renderers.size>0}async addComponentObject(e,t,r,s,n,i,o){if(this.hasObject(e))return this._getObjectMemoryUsage(e);let a;const c=new ae(null,new Promise((e=>a=e)),e.obb.center,e.obb.radius);this._objectEntries.set(e,c);const l=await this._updatingHandles.addPromise(this._addComponentGeometry(e.transform,c,t,r,s,n,i,o));return this.setNeedsRender(),a(),l}async addOrUpdateObject3D(e,t,r,s){if(this.destroyed)return void n.getLogger(this).warn("Attempt to add an object to a destroyed instance");const i=new AbortController;let o;const a=e.boundingVolumeWorldSpace.bounds,l=new ae(i,new Promise((e=>o=e)),v(a),x(a)),d=this._objectEntries.get(e);d&&(this._pendingDeletions.has(e)?this._discardObjectEntry(d):this._pendingDeletions.set(e,d)),this._objectEntries.set(e,l);try{const n=new Array;if(e.geometries.length>1&&oe(e))n.push(this._addObjectMergedGeometries(e,l,t,r,s));else for(const i of e.geometries)i.material.supportsEdges&&n.push(this._addGeometry(e,l,i,t,r,s));await this._updatingHandles.addPromise(Promise.all(n)),this._removePendingDeletion(e)}catch(h){c(h)?this._discardObjectEntry(l):this._removePendingDeletion(e)}finally{this.setNeedsRender(),o()}}removeObject(e){const t=this._objectEntries.get(e);this._objectEntries.delete(e),this._discardObjectEntry(t),this._removePendingDeletion(e)}_removePendingDeletion(e){const t=this._pendingDeletions.get(e);this._pendingDeletions.delete(e),this._discardObjectEntry(t)}async _getObjectEntry(e){const t=this._objectEntries.get(e);if(!t)throw new Error("no object");return await t.loaded,null==t.loaded?null:t}fastUpdateObject3DEdgesTransform(e){if(this.destroyed)return!1;const t=this._objectEntries.get(e);if(!t)return!1;const{geometries:r}=e,{renderables:s}=t;if(0===r.length||0===s.length)return!0;if(s.length>1)return!1;const[n]=s,i=n.transform;if(!(i instanceof de))return!1;const[o]=r;if(o.localOrigin!==i.origin.origin)return!1;const a=p(),c=this._computeModelTransformWithLocalOrigin(e,o,a);return n.transform=new de(a,c),this.setNeedsRender(),!0}_discardObjectEntry(e){e&&(e.abort?.abort(),e.renderables.length&&(e.renderables.forEach((e=>this._removeRenderable(e))),this.setNeedsRender()),e.loaded=null)}hasObject(e){return this._objectEntries.has(e)}async updateAllComponentOpacities(e,t){const r=await this._updatingHandles.addPromise(this._getObjectEntry(e));if(null==r)return;const s=Array.isArray(t)?e=>t[e]:()=>t;r.renderables.forEach((e=>{const t=e.components.meta.length;for(let r=0;r<t;r++){const t=s(r),n=e.components.meta[r],i=n.index;n.material.opacity=t,e.components.buffer.textureBuffer.setDataElement(i,1,3,255*t)}this._updateTransparency(e)})),this.setNeedsRender()}async _getObjectMemoryUsage(e){const t=await this._getObjectEntry(e);return t?t.renderables.reduce(((e,t)=>e+t.statistics.gpuMemoryUsage),0):0}async updateAllComponentMaterials(e,t,r,s){const n=e instanceof L,i=Q(t),o=N.getKey(i,r,n),a=await this._updatingHandles.addPromise(this._getObjectEntry(e));null!=a&&(a.renderables.forEach((e=>{if(o!==e.rendererKey){const t=this._renderers.get(e.rendererKey),s=this._acquireRenderer(i,r,n);t.removeRenderable(e),--t.refCount,e.rendererKey=o,s.addRenderable(e)}if(Array.isArray(t))for(let r=0;r<t.length;r++)e.components.meta[r].material=t[r];else e.components.meta[0].material=t;s&&me(e.components),this._updateTransparency(e)})),this.setNeedsRender())}async updateAllVerticalOffsets(e,t){const r=await this._updatingHandles.addPromise(this._getObjectEntry(e));null!=r&&this._updateAllVerticalOffsets(r,t)}_updateAllVerticalOffsets(e,t){e.renderables.forEach((e=>{const r=e.components.meta;for(let s=0;s<r.length;s++)e.components.meta[s].verticalOffset=t?.[s]??0;me(e.components)})),this.setNeedsRender()}async updateObjectVisibility(e,t){const r=await this._updatingHandles.addPromise(this._getObjectEntry(e));r&&(r.renderables.forEach((e=>e.visible=t)),this.setNeedsRender())}render(e,t){if(null==this._componentColorManager)return;this._localOrigins.updateViewMatrices(e.camera.viewMatrix);const r=e.camera.viewInverseTransposeMatrix,s=O(),n=new A;let i=0,o=0;if(this._renderers.forEach((r=>{0!==r.refCount?(++this.techniques.precompiling,r.forEachRenderable((t=>{t.visible&&(i+=t.statistics.averageEdgeLength,o++,t.regular&&r.acquireTechnique(e,!1),t.silhouette&&r.acquireTechnique(e,!0))}),t),--this.techniques.precompiling):this._renderers.delete(r.key)})),this._componentColorManager.garbageCollect(),this._componentColorManager.updateTextures(),0===o)return;const a=new F(40*i/o,t);_(s,r[3],r[7],r[11]),n.set(s),b(a.transformWorldFromViewTH,n.high),b(a.transformWorldFromViewTL,n.low),u(a.transformViewFromCameraRelativeRS,e.camera.viewMatrix),m(Oe,a.transformViewFromCameraRelativeRS),g(a.transformNormalViewFromGlobal,Oe),a.transformProjFromView=e.camera.projectionMatrix,this._updateObjectCameraDistances(e),this._renderers.forEach((t=>{ge(t,e,a),fe(t,e,a)}))}_updateTransparency(e){const t=X(e.components.meta),r=Y(e.components.meta);t===e.edgeTransparency&&r===e.objectTransparency||(e.edgeTransparency=t,e.objectTransparency=r,this._renderers.get(e.rendererKey).setRenderablesDirty())}_computeModelTransformWithLocalOrigin(e,t,r){e.getCombinedShaderTransformation(t,r);const s=null!=t.localOrigin?this._localOrigins.register(t.localOrigin):this._localOrigins.acquire(_(this._tmpModelPosition,r[12],r[13],r[14]));return t.localOrigin=s.origin,P(s.origin.vec3,r),s}_createComponentBuffers(e){if(null==this._componentColorManager)return null;const t=new Array,r=this._componentColorManager.getBuffer(e.length);for(let n=0;n<e.length;n++){const s=e[n],i=r.acquireIndex();t.push({index:i,verticalOffset:0,material:s})}const s=new ce(r,t);return me(s),s}_extractEdges(e,t,r,s,n,i,o=i.length){return o<se&&(n=!0),this._worker.process({data:r,indices:i,indicesLength:o,writerSettings:t,skipDeduplicate:s},e,n)}_createRenderable(e,t,r,s,n){const i=t=>new le(new k(this.rctx,V,new Map([["vertices",q],["instances",t===ee.REGULAR?H.glLayout:G.glLayout]]),new Map([["vertices",this._verticesBufferObject],["instances",te.createVertex(this.rctx,re.STATIC_DRAW,t===ee.REGULAR?e.regular.instancesData.buffer:e.silhouette.instancesData.buffer)]])),t===ee.REGULAR?e.regular.lodInfo:e.silhouette.lodInfo),o=e.regular.lodInfo.lengths.length>0?i(ee.REGULAR):null,a=e.silhouette.lodInfo.lengths.length>0?i(ee.SILHOUETTE):null,c=(o?.vao.cachedMemory??0)+(a?.vao.cachedMemory??0);return new he(o,a,{gpuMemoryUsage:c,externalMemoryUsage:n,averageEdgeLength:e.averageEdgeLength},r,X(t.meta),Y(t.meta),t,s)}async _addGeometry(e,t,r,s,n,i){if(r.edgeIndicesLength<=0)return;const o=r.attributes.get(I.POSITION),a=p(),c=this._computeModelTransformWithLocalOrigin(e,r,a),l=new je(o,a,c);return this._addPositionData(t,l,r.edgeIndicesLength,s,n,i)}async _addPositionData(e,t,r,s,n,i=!1){if(null==e.loaded)return;const o=this._createComponentBuffers([s]);if(null==o)return;const a=this._acquireRenderer(s.type,n,!0),{modelTransform:c,origin:l}=t,d=t.position.indices,h=t.position,u=h.data.length/h.size,m=B.createBuffer(u);for(let p=0;p<u;p++)m.position.set(p,0,h.data[p*h.size]),m.position.set(p,1,h.data[p*h.size+1]),m.position.set(p,2,h.data[p*h.size+2]);Z(o.meta,[0,m.componentIndex.count],m.componentIndex);const g=await this._updatingHandles.addPromise(this._extractEdges(e.abort?.signal||this._workerAbort.signal,a.writerSettings,m,!1,i,d,r));if(null==e.loaded)return;const f=this._createRenderable(g,o,new de(c,l),a.key,!1);e.renderables.push(f),a.addRenderable(f),this._gpuMemoryUsage+=f.statistics.gpuMemoryUsage}async _addComponentGeometry(e,t,r,s,n,i,o,a){if(null==t.loaded)return 0;const c=this._createComponentBuffers(i);if(null==c)return 0;const l=Q(i),d=this._acquireRenderer(l,o||!1,!1),h=B.createBuffer(r.length/3);M(h.position.typedBuffer,r,h.position.typedBufferStride,3),Z(c.meta,n,h.componentIndex,s);const u=!0,m=d.writerSettings,g=await this._updatingHandles.addPromise(this._extractEdges(this._workerAbort.signal,m,h,u,!1,s));if(null==t.loaded)return 0;const f=this._createRenderable(g,c,e,d.key,!0);return t.renderables.push(f),d.addRenderable(f),this._updateAllVerticalOffsets(t,a),f.statistics.gpuMemoryUsage}async _addObjectMergedGeometries(e,t,r,s,n){const i=new Map;let o=0,a=0,c=null;const l=e.geometries.filter((e=>{if(e.edgeIndicesLength<=0||!e.material.supportsEdges)return!1;!c&&e.localOrigin&&(c=e);const t=e.attributes.get(I.POSITION);return a+=t.data.length/t.size,o+=e.edgeIndicesLength,!0}));if(0===l.length)return;const d=a>=65536?Uint32Array:Uint16Array,h=o?new d(o):null,u=[];let m=0;l.forEach((e=>{const t=e.attributes.get(I.POSITION),r=t.indices;let s=i.get(t.data);if(null==s){s=u.length/3;for(let e=0;e<t.data.length;e+=t.size)u.push(t.data[e]),u.push(t.data[e+1]),u.push(t.data[e+2]);i.set(t.data,s)}for(let n=0;n<e.edgeIndicesLength;n++)h[m++]=s+r[n]}));const g=c||e.geometries[0],f=p(),_=this._computeModelTransformWithLocalOrigin(e,g,f);for(let p=0;p<e.geometries.length;p++)e.geometries[p].localOrigin=_.origin;const b=new je(new C(u,h,3),f,_);await this._updatingHandles.addPromise(this._addPositionData(t,b,h.length,r,s,n))}_acquireRenderer(e,t,r){const s=N.getKey(e,t,r);let n=this._renderers.get(s);return null==this._strokesTexture&&(this._strokesTexture=J(this.rctx)),n||(n=new N(this.rctx,this.techniques,{type:e,hasSlicePlane:t,strokesTexture:this._strokesTexture,legacy:r,spherical:this.viewingMode===R.Global}),this._renderers.set(s,n)),++n.refCount,n}_removeRenderable(e){ie(e.regular),ie(e.silhouette);const t=this._renderers.get(e.rendererKey);if(t){t.removeRenderable(e),--t.refCount,this._localOrigins.release(e.transform.origin),this._gpuMemoryUsage-=e.statistics.externalMemoryUsage?0:e.statistics.gpuMemoryUsage;for(const t of e.components.meta)e.components.buffer.releaseIndex(t.index)}}_updateObjectCameraDistances(e){const t=e.camera.eye,r=e.camera.viewForward,s=O(),n=e=>{y(s,e.center,t);const n=j(s,r),i=e.radius,o=n<-i?1/0:n<i?0:n-i;e.renderables.forEach((e=>e.distanceToCamera=o))};this._objectEntries.forEach(n),this._pendingDeletions.forEach(n)}get test(){}};function ie(e){e?.vao&&(e.vao.vertexBuffers.get("instances")?.dispose(),e.vao.disposeVAOOnly(),e.vao=null)}function oe(e){let t=null,s=null;for(const n of e.geometries){if(n.material.supportsEdges){if(t){if(!r(t,n.transformation))return!1}else t=n.transformation;if(s||null==n.localOrigin){if(null!=s?.localOrigin&&null!=n.localOrigin&&s.localOrigin.id!==n.localOrigin.id)return!1}else s=n}}return!0}e([d({constructOnly:!0})],ne.prototype,"rctx",void 0),e([d({constructOnly:!0})],ne.prototype,"renderSR",void 0),e([d({constructOnly:!0})],ne.prototype,"viewingMode",void 0),e([d({constructOnly:!0})],ne.prototype,"techniques",void 0),e([d({constructOnly:!0})],ne.prototype,"setNeedsRender",void 0),e([d({constructOnly:!0})],ne.prototype,"schedule",void 0),e([d({readOnly:!0})],ne.prototype,"_updatingHandles",void 0),e([d({readOnly:!0})],ne.prototype,"updating",null),ne=e([h("esri.views.3d.webgl-engine.lib.edgeRendering.EdgeView")],ne);class ae{constructor(e,t,r,s){this.abort=e,this.radius=s,this.renderables=new Array;const n=e?l(e.signal,(()=>e.abort())):null;this.loaded=t,this.loaded.then((()=>{null!=this.loaded&&(this.loaded=!0),this.abort=null,n?.remove()})),this.center=w(r)}}class ce{constructor(e,t){this.buffer=e,this.meta=t}}class le{constructor(e,t){this.vao=e,this.lod=t}}class de{constructor(e,t){this.modelMatrix=e,this.origin=t}}class he{constructor(e,t,r,s,n,i,o,a){this.regular=e,this.silhouette=t,this.statistics=r,this.transform=s,this.edgeTransparency=n,this.objectTransparency=i,this.components=o,this.rendererKey=a,this.distanceToCamera=0,this.visible=!0}}class ue extends he{}function me(e){const{meta:t,buffer:r}=e,s=new Uint8Array(4);for(let n=0;n<t.length;n++){const e=t[n].material,o=t[n].index,a=i(Math.round(e.size*W),0,255),c=i(e.extensionLength,-128,255-z)+z,l=255*e.opacity,d=e.color,h=255*d[0],u=255*d[1],m=255*d[2],g=255*d[3];r.textureBuffer.setData(o,0,h,u,m,g),r.textureBuffer.setData(o,1,a,c,e.type,l),T(t[n].verticalOffset,s),r.textureBuffer.setData(o,2,s[0],s[1],s[2],s[3])}}function ge(e,t,r){let s,n;const i=r.transparency,o=t.camera.perScreenPixelRatio;e.forEachRenderable((i=>{if(!pe(i)||!i.visible)return;s??=e.acquireTechnique(t,!1),n??=e.rctx.bindTechnique(s,t,r);const a=ye(i.regular.lod.lengths,i.distanceToCamera,o);e.renderRegularEdges(n,i,r,t,a)}),i)}function fe(e,t,r){let s,n;const i=r.transparency,o=t.camera.perScreenPixelRatio;e.forEachRenderable((i=>{if(!be(i)||!i.visible)return;s??=e.acquireTechnique(t,!0),n??=e.rctx.bindTechnique(s,t,r);const a=ye(i.silhouette.lod.lengths,i.distanceToCamera,o);e.renderSilhouetteEdges(n,i,r,t,a)}),i)}function pe(e){return null!=e.regular}class _e extends he{}function be(e){return null!=e.silhouette}function ye(e,t,r){const n=t*r,i=s(e,n,!0);return-1===i?n<e[0]?e.length:0:e.length-i}class je{constructor(e,t,r){this.position=e,this.modelTransform=t,this.origin=r}}const Oe=f(),we=()=>Promise.reject();export{ne as EdgeView,de as LegacyTransform,ue as RegularRenderable,he as Renderable,_e as SilhouetteRenderable};
@@ -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{fromValues as r}from"../../../../core/libs/gl-matrix-2/factories/vec2f64.js";import{fromValues as t}from"../../../../core/libs/gl-matrix-2/factories/vec4f64.js";import{isColor as e}from"../core/shaderLibrary/ShaderOutput.js";import{alphaCutoff as i}from"../core/shaderLibrary/util/AlphaCutoff.js";import s from"../lib/GLMaterial.js";import{MaterialParameters as o}from"../lib/Material.js";import{RenderSlot as a}from"../lib/RenderSlot.js";import{DefaultBufferWriter as n}from"./DefaultBufferWriter.js";import{PositionUVLayout as h}from"./DefaultLayouts.js";import{TriangleMaterial as p}from"./TriangleMaterial.js";import{CheckerBoardTechnique as f}from"../shaders/CheckerBoardTechnique.js";import{CheckerBoardTechniqueConfiguration as c}from"../shaders/CheckerBoardTechniqueConfiguration.js";class u extends p{constructor(r){super(r,m),this._configuration=new c,this.produces=new Map([[a.OPAQUE_MATERIAL,r=>e(r)&&!this.transparent],[a.TRANSPARENT_MATERIAL,r=>e(r)&&this.transparent&&this.parameters.writeDepth],[a.TRANSPARENT_MATERIAL_WITHOUT_DEPTH,r=>e(r)&&this.transparent&&!this.parameters.writeDepth]])}getConfiguration(r,t){return this._configuration.transparent=this.transparent,this._configuration.writeDepth=this.parameters.writeDepth,this._configuration.polygonOffset=this.parameters.polygonOffset,this._configuration.oitPass=t.oitPass,this._configuration.terrainDepthTest=t.terrainDepthTest,this._configuration.cullAboveTerrain=t.cullAboveTerrain,this._configuration}get visible(){return this.parameters.color1[3]>=i||this.parameters.color2[3]>=i}get transparent(){return this.parameters.color1[3]<1||this.parameters.color2[3]<1}createGLMaterial(r){return new l(r)}createBufferWriter(){return new n(h)}}class l extends s{beginSlot(r){return this.acquireTechnique(f,r)}}class m extends o{constructor(){super(...arguments),this.size=r(1,1),this.color1=t(.75,.75,.75,1),this.color2=t(.5,.5,.5,1),this.writeDepth=!0,this.polygonOffset=!1}}export{u as CheckerBoardMaterial,m as Parameters};
5
+ import{fromValues as r}from"../../../../core/libs/gl-matrix-2/factories/vec2f64.js";import{fromValues as t}from"../../../../core/libs/gl-matrix-2/factories/vec4f64.js";import{isColor as e}from"../core/shaderLibrary/ShaderOutput.js";import{alphaCutoff as i}from"../core/shaderLibrary/util/AlphaCutoff.js";import s from"../lib/GLMaterial.js";import{MaterialParameters as o}from"../lib/Material.js";import{RenderSlot as a}from"../lib/RenderSlot.js";import{DefaultBufferWriter as n}from"./DefaultBufferWriter.js";import{PositionUVLayout as h}from"./DefaultLayouts.js";import{TriangleMaterial as p}from"./TriangleMaterial.js";import{CheckerBoardTechnique as f}from"../shaders/CheckerBoardTechnique.js";import{CheckerBoardTechniqueConfiguration as c}from"../shaders/CheckerBoardTechniqueConfiguration.js";class l extends p{constructor(r){super(r,m),this._configuration=new c,this.produces=new Map([[a.OPAQUE_MATERIAL,r=>e(r)&&!this.transparent],[a.TRANSPARENT_MATERIAL,r=>e(r)&&this.transparent&&this.parameters.writeDepth],[a.TRANSPARENT_MATERIAL_WITHOUT_DEPTH,r=>e(r)&&this.transparent&&!this.parameters.writeDepth]])}getConfiguration(r,t){return this._configuration.transparent=this.transparent,this._configuration.writeDepth=this.parameters.writeDepth,this._configuration.polygonOffset=this.parameters.polygonOffset,this._configuration.oitPass=t.oitPass,this._configuration.terrainDepthTest=t.terrainDepthTest,this._configuration.cullAboveTerrain=t.cullAboveTerrain,this._configuration}get visible(){return this.parameters.color1[3]>=i||this.parameters.color2[3]>=i}get transparent(){return this.parameters.color1[3]<1||this.parameters.color2[3]<1}createGLMaterial(r){return new u(r)}createBufferWriter(){return new n(h)}}class u extends s{beginSlot(r){return this.getTechnique(f,r)}}class m extends o{constructor(){super(...arguments),this.size=r(1,1),this.color1=t(.75,.75,.75,1),this.color2=t(.5,.5,.5,1),this.writeDepth=!0,this.polygonOffset=!1}}export{l as CheckerBoardMaterial,m as Parameters};
@@ -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 t}from"../../../../core/libs/gl-matrix-2/factories/vec4f64.js";import{newLayout as r}from"../../support/buffer/InterleavedLayout.js";import{isColorOrColorEmissionOrOID as e,isDepth as s,is2DGeometryOutput as i,isColorOrColorEmission as a,ShaderOutput as o}from"../core/shaderLibrary/ShaderOutput.js";import{alphaCutoff as n}from"../core/shaderLibrary/util/AlphaCutoff.js";import{olidEnabled as h}from"../effects/geometry/olidUtils.js";import{CullFaceOptions as p}from"../lib/basicInterfaces.js";import l from"../lib/GLMaterial.js";import{OITPolygonOffsetLimit as u}from"../lib/OrderIndependentTransparency.js";import{RenderSlot as c}from"../lib/RenderSlot.js";import{VertexAttribute as f}from"../lib/VertexAttribute.js";import{DefaultBufferWriter as m}from"./DefaultBufferWriter.js";import{TriangleMaterial as _}from"./TriangleMaterial.js";import{VisualVariablePassParameters as T}from"./VisualVariablePassParameters.js";import{ColorMaterialTechnique as g}from"../shaders/ColorMaterialTechnique.js";import{ColorMaterialTechniqueConfiguration as O}from"../shaders/ColorMaterialTechniqueConfiguration.js";class A extends _{constructor(t){super(t,P),this._configuration=new O,this.supportsEdges=!0,this.produces=new Map([[c.OPAQUE_MATERIAL,t=>this._isOpaqueMaterialPass(t)],[c.OPAQUE_MATERIAL_WITHOUT_NORMALS,t=>this._isOpaqueNoSSAODepthPass(t)],[c.TRANSPARENT_MATERIAL,t=>e(t)&&this._transparent&&this.parameters.writeDepth],[c.TRANSPARENT_MATERIAL_WITHOUT_NORMALS,t=>s(t)&&this._transparent&&this.parameters.writeDepth],[c.TRANSPARENT_MATERIAL_WITHOUT_DEPTH,t=>e(t)&&this._transparent&&!this.parameters.writeDepth],[c.DRAPED_MATERIAL,t=>i(t)]])}getConfiguration(t,r){return this._configuration.output=t,this._configuration.cullFace=this.parameters.cullFace,this._configuration.hasVertexColors=this.parameters.hasVertexColors&&!this.parameters.vvColor,this._configuration.hasSlicePlane=this.parameters.hasSlicePlane,this._configuration.transparent=this._transparent,this._configuration.discardInvisibleFragments=this._transparent&&!this._isOpaquePass(t)&&this.parameters.discardInvisibleFragments,this._configuration.polygonOffset=this.parameters.polygonOffset,this._configuration.writeDepth=this.parameters.writeDepth,this._configuration.hasOccludees=r.hasOccludees,this._configuration.oitPass=r.oitPass,this._configuration.enableOffset=r.camera.relativeElevation<u,this._configuration.terrainDepthTest=r.terrainDepthTest&&a(t),this._configuration.cullAboveTerrain=r.cullAboveTerrain,this._configuration.vvColor=!!this.parameters.vvColor,this._configuration.draped=this.parameters.draped,this._configuration}get visible(){return this.parameters.color[3]>=n}get _transparent(){return this.parameters.color[3]<1||this.parameters.forceTransparentMode}_isOpaquePass(t){return this._isOpaqueMaterialPass(t)||this._isOpaqueNoSSAODepthPass(t)}_isOpaqueMaterialPass(t){return t===o.Highlight||e(t)&&!this._transparent}_isOpaqueNoSSAODepthPass(t){return s(t)&&this.parameters.writeDepth&&!this._transparent}createGLMaterial(t){return new d(t)}createBufferWriter(){const t=r().vec3f(f.POSITION);return h()&&t.vec4u8(f.OBJECTANDLAYERIDCOLOR),this.parameters.vvColor?t.f32(f.COLORFEATUREATTRIBUTE):t.vec4u8(f.COLOR),new m(t)}}class d extends l{beginSlot(t){return this.acquireTechnique(g,t)}}class P extends T{constructor(){super(...arguments),this.color=t,this.forceTransparentMode=!1,this.writeDepth=!0,this.hasVertexColors=!1,this.polygonOffset=!1,this.hasSlicePlane=!1,this.cullFace=p.None,this.draped=!1,this.discardInvisibleFragments=!1}}export{A as ColorMaterial,P as Parameters};
5
+ import{ZEROS as t}from"../../../../core/libs/gl-matrix-2/factories/vec4f64.js";import{newLayout as r}from"../../support/buffer/InterleavedLayout.js";import{isColorOrColorEmissionOrOID as e,isDepth as s,is2DGeometryOutput as i,isColorOrColorEmission as a,ShaderOutput as o}from"../core/shaderLibrary/ShaderOutput.js";import{alphaCutoff as n}from"../core/shaderLibrary/util/AlphaCutoff.js";import{olidEnabled as h}from"../effects/geometry/olidUtils.js";import{CullFaceOptions as p}from"../lib/basicInterfaces.js";import l from"../lib/GLMaterial.js";import{OITPolygonOffsetLimit as u}from"../lib/OrderIndependentTransparency.js";import{RenderSlot as c}from"../lib/RenderSlot.js";import{VertexAttribute as f}from"../lib/VertexAttribute.js";import{DefaultBufferWriter as m}from"./DefaultBufferWriter.js";import{TriangleMaterial as _}from"./TriangleMaterial.js";import{VisualVariablePassParameters as g}from"./VisualVariablePassParameters.js";import{ColorMaterialTechnique as T}from"../shaders/ColorMaterialTechnique.js";import{ColorMaterialTechniqueConfiguration as O}from"../shaders/ColorMaterialTechniqueConfiguration.js";class A extends _{constructor(t){super(t,P),this._configuration=new O,this.supportsEdges=!0,this.produces=new Map([[c.OPAQUE_MATERIAL,t=>this._isOpaqueMaterialPass(t)],[c.OPAQUE_MATERIAL_WITHOUT_NORMALS,t=>this._isOpaqueNoSSAODepthPass(t)],[c.TRANSPARENT_MATERIAL,t=>e(t)&&this._transparent&&this.parameters.writeDepth],[c.TRANSPARENT_MATERIAL_WITHOUT_NORMALS,t=>s(t)&&this._transparent&&this.parameters.writeDepth],[c.TRANSPARENT_MATERIAL_WITHOUT_DEPTH,t=>e(t)&&this._transparent&&!this.parameters.writeDepth],[c.DRAPED_MATERIAL,t=>i(t)]])}getConfiguration(t,r){return this._configuration.output=t,this._configuration.cullFace=this.parameters.cullFace,this._configuration.hasVertexColors=this.parameters.hasVertexColors&&!this.parameters.vvColor,this._configuration.hasSlicePlane=this.parameters.hasSlicePlane,this._configuration.transparent=this._transparent,this._configuration.discardInvisibleFragments=this._transparent&&!this._isOpaquePass(t)&&this.parameters.discardInvisibleFragments,this._configuration.polygonOffset=this.parameters.polygonOffset,this._configuration.writeDepth=this.parameters.writeDepth,this._configuration.hasOccludees=r.hasOccludees,this._configuration.oitPass=r.oitPass,this._configuration.enableOffset=r.camera.relativeElevation<u,this._configuration.terrainDepthTest=r.terrainDepthTest&&a(t),this._configuration.cullAboveTerrain=r.cullAboveTerrain,this._configuration.vvColor=!!this.parameters.vvColor,this._configuration.draped=this.parameters.draped,this._configuration}get visible(){return this.parameters.color[3]>=n}get _transparent(){return this.parameters.color[3]<1||this.parameters.forceTransparentMode}_isOpaquePass(t){return this._isOpaqueMaterialPass(t)||this._isOpaqueNoSSAODepthPass(t)}_isOpaqueMaterialPass(t){return t===o.Highlight||e(t)&&!this._transparent}_isOpaqueNoSSAODepthPass(t){return s(t)&&this.parameters.writeDepth&&!this._transparent}createGLMaterial(t){return new d(t)}createBufferWriter(){const t=r().vec3f(f.POSITION);return h()&&t.vec4u8(f.OBJECTANDLAYERIDCOLOR),this.parameters.vvColor?t.f32(f.COLORFEATUREATTRIBUTE):t.vec4u8(f.COLOR),new m(t)}}class d extends l{beginSlot(t){return this.getTechnique(T,t)}}class P extends g{constructor(){super(...arguments),this.color=t,this.forceTransparentMode=!1,this.writeDepth=!0,this.hasVertexColors=!1,this.polygonOffset=!1,this.hasSlicePlane=!1,this.cullFace=p.None,this.draped=!1,this.discardInvisibleFragments=!1}}export{A as ColorMaterial,P as Parameters};
@@ -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{p as e,i as r,c as t,n as i,d as s,l as a,h as o,f as n,q as c}from"../../../../chunks/vec32.js";import{ZEROS as l,create as u,fromValues as h}from"../../../../core/libs/gl-matrix-2/factories/vec3f64.js";import{ViewingMode as f}from"../../../ViewingMode.js";import{newLayout as m}from"../../support/buffer/InterleavedLayout.js";import{is3DGeometryOutputMRT as p,isShadowRelatedOutput as d,is3DGeometryOutput as g,ShaderOutput as T,isColorOrColorEmission as x}from"../core/shaderLibrary/ShaderOutput.js";import{NormalType as _}from"../core/shaderLibrary/attributes/NormalAttribute.glsl.js";import{EmissionSource as v}from"../core/shaderLibrary/output/Emissions.glsl.js";import{NormalsDoubleSidedMode as b}from"../core/shaderLibrary/shading/Normals.glsl.js";import{PBRMode as S}from"../core/shaderLibrary/shading/PhysicallyBasedRenderingParameters.glsl.js";import{alphaCutoff as O}from"../core/shaderLibrary/util/AlphaCutoff.js";import{olidEnabled as M}from"../effects/geometry/olidUtils.js";import{CullFaceOptions as w}from"../lib/basicInterfaces.js";import{GLTextureMaterial as R}from"../lib/GLTextureMaterial.js";import{Material as y}from"../lib/Material.js";import{OITPolygonOffsetLimit as C}from"../lib/OrderIndependentTransparency.js";import{intersectTriangleGeometry as A}from"../lib/RayIntersections.js";import{RenderSlot as I}from"../lib/RenderSlot.js";import{VertexAttribute as P}from"../lib/VertexAttribute.js";import{getVerticalOffsetObject3D as j}from"../lib/verticalOffsetUtils.js";import{DefaultBufferWriter as L}from"./DefaultBufferWriter.js";import{verticalOffsetAtDistance as D}from"./internal/MaterialUtil.js";import{DefaultMaterialTechnique as N,DefaultMaterialPassParameters as E}from"../shaders/DefaultMaterialTechnique.js";import{DefaultMaterialTechniqueConfiguration as V}from"../shaders/DefaultMaterialTechniqueConfiguration.js";import{RealisticTreeTechnique as B}from"../shaders/RealisticTreeTechnique.js";class q extends y{constructor(e,r){super(e,U),this.materialType="default",this.supportsEdges=!0,this.produces=new Map([[I.OPAQUE_MATERIAL,e=>(p(e)||d(e))&&!this.parameters.transparent],[I.TRANSPARENT_MATERIAL,e=>(p(e)||d(e))&&this.parameters.transparent&&this.parameters.writeDepth],[I.TRANSPARENT_MATERIAL_WITHOUT_DEPTH,e=>(g(e)||d(e))&&this.parameters.transparent&&!this.parameters.writeDepth]]),this._vertexBufferLayout=k(this.parameters),this._configuration=new V(r.spherical,r.doublePrecisionRequiresObfuscation)}isVisibleForOutput(e){return e!==T.Shadow&&e!==T.ShadowExcludeHighlight&&e!==T.ShadowHighlight||this.parameters.castShadows}get visible(){const e=this.parameters;if(e.layerOpacity<O)return!1;const{hasInstancedColor:r,hasVertexColors:t,hasSymbolColors:i,vvColor:s}=e,a=r||s||i,o="replace"===e.colorMixMode,n=e.opacity>=O;if(t&&a)return o||n;const c=e.externalColor&&e.externalColor[3]>=O;return t?o?c:n:a?o||n:o?c:n}get hasEmissions(){return!!this.parameters.emissiveTextureId||!e(this.parameters.emissiveFactor,l)}getConfiguration(e,r){const t=this.parameters,{treeRendering:i,doubleSided:s,doubleSidedType:a}=t;return this._configuration.output=e,this._configuration.hasNormalTexture=!i&&!!t.normalTextureId,this._configuration.hasColorTexture=!!t.textureId,this._configuration.hasVertexTangents=!i&&t.hasVertexTangents,this._configuration.instanced=t.isInstanced,this._configuration.instancedDoublePrecision=t.instancedDoublePrecision,this._configuration.vvSize=!!t.vvSize,this._configuration.hasVerticalOffset=null!=t.verticalOffset,this._configuration.hasScreenSizePerspective=null!=t.screenSizePerspective,this._configuration.hasSlicePlane=t.hasSlicePlane,this._configuration.alphaDiscardMode=t.textureAlphaMode,this._configuration.normalType=i?_.Attribute:t.normalType,this._configuration.transparent=t.transparent,this._configuration.writeDepth=t.writeDepth,null!=t.customDepthTest&&(this._configuration.customDepthTest=t.customDepthTest),this._configuration.hasOccludees=r.hasOccludees,this._configuration.cullFace=t.hasSlicePlane?w.None:t.cullFace,this._configuration.cullAboveTerrain=r.cullAboveTerrain,this._configuration.hasModelTransformation=!i&&null!=t.modelTransformation,this._configuration.hasVertexColors=t.hasVertexColors,this._configuration.hasSymbolColors=t.hasSymbolColors,this._configuration.doubleSidedMode=i?b.WindingOrder:s&&"normal"===a?b.View:s&&"winding-order"===a?b.WindingOrder:b.None,this._configuration.instancedColor=t.hasInstancedColor,x(e)?(this._configuration.terrainDepthTest=r.terrainDepthTest,this._configuration.receiveShadows=t.receiveShadows,this._configuration.receiveAmbientOcclusion=t.receiveAmbientOcclusion&&null!=r.ssao):(this._configuration.terrainDepthTest=!1,this._configuration.receiveShadows=this._configuration.receiveAmbientOcclusion=!1),this._configuration.vvColor=!!t.vvColor,this._configuration.textureAlphaPremultiplied=!!t.textureAlphaPremultiplied,this._configuration.pbrMode=t.usePBR?t.isSchematic?S.Schematic:S.Normal:S.Disabled,this._configuration.hasMetallicRoughnessTexture=!i&&!!t.metallicRoughnessTextureId,this._configuration.emissionSource=i?v.None:null!=t.emissiveTextureId?v.Texture:t.usePBR?v.Value:v.None,this._configuration.hasOcclusionTexture=!i&&!!t.occlusionTextureId,this._configuration.offsetBackfaces=!(!t.transparent||!t.offsetTransparentBackfaces),this._configuration.oitPass=r.oitPass,this._configuration.enableOffset=r.camera.relativeElevation<C,this._configuration.snowCover=W(r),this._configuration.hasColorTextureTransform=!!t.colorTextureTransformMatrix,this._configuration.hasNormalTextureTransform=!!t.normalTextureTransformMatrix,this._configuration.hasEmissionTextureTransform=!!t.emissiveTextureTransformMatrix,this._configuration.hasOcclusionTextureTransform=!!t.occlusionTextureTransformMatrix,this._configuration.hasMetallicRoughnessTextureTransform=!!t.metallicRoughnessTextureTransformMatrix,this._configuration}intersect(e,l,u,h,m,p){if(null!=this.parameters.verticalOffset){const e=u.camera;r(Q,l[12],l[13],l[14]);let p=null;switch(u.viewingMode){case f.Global:p=i(Y,Q);break;case f.Local:p=t(Y,H)}let d=0;const g=s(K,Q,e.eye),T=a(g),x=o(g,g,1/T);let _=null;this.parameters.screenSizePerspective&&(_=n(p,x)),d+=D(e,T,this.parameters.verticalOffset,_??0,this.parameters.screenSizePerspective),o(p,p,d),c(J,p,u.transform.inverseRotation),h=s(F,h,J),m=s(G,m,J)}A(e,u,h,m,j(u.verticalOffset),p)}createGLMaterial(e){return new z(e)}createBufferWriter(){return new L(this._vertexBufferLayout)}}class z extends R{constructor(e){super({...e,...e.material.parameters})}beginSlot(e){this._material.setParameters({receiveShadows:e.shadowMap.enabled});const t=this._material.parameters;this.updateTexture(t.textureId);const i=e.camera.viewInverseTransposeMatrix;return r(t.origin,i[3],i[7],i[11]),this._material.setParameters(this.textureBindParameters),this.acquireTechnique(t.treeRendering?B:N,e)}}class U extends E{constructor(){super(...arguments),this.initTextureTransparent=!1,this.treeRendering=!1,this.hasVertexTangents=!1}}function W(e){return null!=e.weather&&e.weatherVisible&&"snowy"===e.weather.type&&"enabled"===e.weather.snowCover}function k(e){const r=m().vec3f(P.POSITION);e.normalType===_.Compressed?r.vec2i16(P.NORMALCOMPRESSED,{glNormalized:!0}):r.vec3f(P.NORMAL),e.hasVertexTangents&&r.vec4f(P.TANGENT);return(e.textureId||e.normalTextureId||e.metallicRoughnessTextureId||e.emissiveTextureId||e.occlusionTextureId)&&r.vec2f(P.UV0),e.hasVertexColors&&r.vec4u8(P.COLOR),e.hasSymbolColors&&r.vec4u8(P.SYMBOLCOLOR),M()&&r.vec4u8(P.OBJECTANDLAYERIDCOLOR),r}const F=u(),G=u(),H=h(0,0,1),Y=u(),J=u(),Q=u(),K=u();export{z as DefaultGLMaterial,q as DefaultMaterial,U as DefaultMaterialParameters};
5
+ import{p as e,i as r,c as t,n as i,d as s,l as a,h as o,f as n,q as c}from"../../../../chunks/vec32.js";import{ZEROS as l,create as u,fromValues as h}from"../../../../core/libs/gl-matrix-2/factories/vec3f64.js";import{ViewingMode as f}from"../../../ViewingMode.js";import{newLayout as m}from"../../support/buffer/InterleavedLayout.js";import{is3DGeometryOutputMRT as p,isShadowRelatedOutput as d,is3DGeometryOutput as g,ShaderOutput as T,isColorOrColorEmission as x}from"../core/shaderLibrary/ShaderOutput.js";import{NormalType as _}from"../core/shaderLibrary/attributes/NormalAttribute.glsl.js";import{EmissionSource as v}from"../core/shaderLibrary/output/Emissions.glsl.js";import{NormalsDoubleSidedMode as b}from"../core/shaderLibrary/shading/Normals.glsl.js";import{PBRMode as S}from"../core/shaderLibrary/shading/PhysicallyBasedRenderingParameters.glsl.js";import{alphaCutoff as O}from"../core/shaderLibrary/util/AlphaCutoff.js";import{olidEnabled as M}from"../effects/geometry/olidUtils.js";import{CullFaceOptions as w}from"../lib/basicInterfaces.js";import{GLTextureMaterial as R}from"../lib/GLTextureMaterial.js";import{Material as y}from"../lib/Material.js";import{OITPolygonOffsetLimit as C}from"../lib/OrderIndependentTransparency.js";import{intersectTriangleGeometry as A}from"../lib/RayIntersections.js";import{RenderSlot as I}from"../lib/RenderSlot.js";import{VertexAttribute as P}from"../lib/VertexAttribute.js";import{getVerticalOffsetObject3D as j}from"../lib/verticalOffsetUtils.js";import{DefaultBufferWriter as L}from"./DefaultBufferWriter.js";import{verticalOffsetAtDistance as D}from"./internal/MaterialUtil.js";import{DefaultMaterialTechnique as N,DefaultMaterialPassParameters as E}from"../shaders/DefaultMaterialTechnique.js";import{DefaultMaterialTechniqueConfiguration as V}from"../shaders/DefaultMaterialTechniqueConfiguration.js";import{RealisticTreeTechnique as B}from"../shaders/RealisticTreeTechnique.js";class z extends y{constructor(e,r){super(e,U),this.materialType="default",this.supportsEdges=!0,this.produces=new Map([[I.OPAQUE_MATERIAL,e=>(p(e)||d(e))&&!this.parameters.transparent],[I.TRANSPARENT_MATERIAL,e=>(p(e)||d(e))&&this.parameters.transparent&&this.parameters.writeDepth],[I.TRANSPARENT_MATERIAL_WITHOUT_DEPTH,e=>(g(e)||d(e))&&this.parameters.transparent&&!this.parameters.writeDepth]]),this._vertexBufferLayout=k(this.parameters),this._configuration=new V(r.spherical,r.doublePrecisionRequiresObfuscation)}isVisibleForOutput(e){return e!==T.Shadow&&e!==T.ShadowExcludeHighlight&&e!==T.ShadowHighlight||this.parameters.castShadows}get visible(){const e=this.parameters;if(e.layerOpacity<O)return!1;const{hasInstancedColor:r,hasVertexColors:t,hasSymbolColors:i,vvColor:s}=e,a=r||s||i,o="replace"===e.colorMixMode,n=e.opacity>=O;if(t&&a)return o||n;const c=e.externalColor&&e.externalColor[3]>=O;return t?o?c:n:a?o||n:o?c:n}get hasEmissions(){return!!this.parameters.emissiveTextureId||!e(this.parameters.emissiveFactor,l)}getConfiguration(e,r){const t=this.parameters,{treeRendering:i,doubleSided:s,doubleSidedType:a}=t;return this._configuration.output=e,this._configuration.hasNormalTexture=!i&&!!t.normalTextureId,this._configuration.hasColorTexture=!!t.textureId,this._configuration.hasVertexTangents=!i&&t.hasVertexTangents,this._configuration.instanced=t.isInstanced,this._configuration.instancedDoublePrecision=t.instancedDoublePrecision,this._configuration.vvSize=!!t.vvSize,this._configuration.hasVerticalOffset=null!=t.verticalOffset,this._configuration.hasScreenSizePerspective=null!=t.screenSizePerspective,this._configuration.hasSlicePlane=t.hasSlicePlane,this._configuration.alphaDiscardMode=t.textureAlphaMode,this._configuration.normalType=i?_.Attribute:t.normalType,this._configuration.transparent=t.transparent,this._configuration.writeDepth=t.writeDepth,null!=t.customDepthTest&&(this._configuration.customDepthTest=t.customDepthTest),this._configuration.hasOccludees=r.hasOccludees,this._configuration.cullFace=t.hasSlicePlane?w.None:t.cullFace,this._configuration.cullAboveTerrain=r.cullAboveTerrain,this._configuration.hasModelTransformation=!i&&null!=t.modelTransformation,this._configuration.hasVertexColors=t.hasVertexColors,this._configuration.hasSymbolColors=t.hasSymbolColors,this._configuration.doubleSidedMode=i?b.WindingOrder:s&&"normal"===a?b.View:s&&"winding-order"===a?b.WindingOrder:b.None,this._configuration.instancedColor=t.hasInstancedColor,x(e)?(this._configuration.terrainDepthTest=r.terrainDepthTest,this._configuration.receiveShadows=t.receiveShadows,this._configuration.receiveAmbientOcclusion=t.receiveAmbientOcclusion&&null!=r.ssao):(this._configuration.terrainDepthTest=!1,this._configuration.receiveShadows=this._configuration.receiveAmbientOcclusion=!1),this._configuration.vvColor=!!t.vvColor,this._configuration.textureAlphaPremultiplied=!!t.textureAlphaPremultiplied,this._configuration.pbrMode=t.usePBR?t.isSchematic?S.Schematic:S.Normal:S.Disabled,this._configuration.hasMetallicRoughnessTexture=!i&&!!t.metallicRoughnessTextureId,this._configuration.emissionSource=i?v.None:null!=t.emissiveTextureId?v.Texture:t.usePBR?v.Value:v.None,this._configuration.hasOcclusionTexture=!i&&!!t.occlusionTextureId,this._configuration.offsetBackfaces=!(!t.transparent||!t.offsetTransparentBackfaces),this._configuration.oitPass=r.oitPass,this._configuration.enableOffset=r.camera.relativeElevation<C,this._configuration.snowCover=W(r),this._configuration.hasColorTextureTransform=!!t.colorTextureTransformMatrix,this._configuration.hasNormalTextureTransform=!!t.normalTextureTransformMatrix,this._configuration.hasEmissionTextureTransform=!!t.emissiveTextureTransformMatrix,this._configuration.hasOcclusionTextureTransform=!!t.occlusionTextureTransformMatrix,this._configuration.hasMetallicRoughnessTextureTransform=!!t.metallicRoughnessTextureTransformMatrix,this._configuration}intersect(e,l,u,h,m,p){if(null!=this.parameters.verticalOffset){const e=u.camera;r(Q,l[12],l[13],l[14]);let p=null;switch(u.viewingMode){case f.Global:p=i(Y,Q);break;case f.Local:p=t(Y,H)}let d=0;const g=s(K,Q,e.eye),T=a(g),x=o(g,g,1/T);let _=null;this.parameters.screenSizePerspective&&(_=n(p,x)),d+=D(e,T,this.parameters.verticalOffset,_??0,this.parameters.screenSizePerspective),o(p,p,d),c(J,p,u.transform.inverseRotation),h=s(F,h,J),m=s(G,m,J)}A(e,u,h,m,j(u.verticalOffset),p)}createGLMaterial(e){return new q(e)}createBufferWriter(){return new L(this._vertexBufferLayout)}}class q extends R{constructor(e){super({...e,...e.material.parameters})}beginSlot(e){this._material.setParameters({receiveShadows:e.shadowMap.enabled});const t=this._material.parameters;this.updateTexture(t.textureId);const i=e.camera.viewInverseTransposeMatrix;return r(t.origin,i[3],i[7],i[11]),this._material.setParameters(this.textureBindParameters),this.getTechnique(t.treeRendering?B:N,e)}}class U extends E{constructor(){super(...arguments),this.initTextureTransparent=!1,this.treeRendering=!1,this.hasVertexTangents=!1}}function W(e){return null!=e.weather&&e.weatherVisible&&"snowy"===e.weather.type&&"enabled"===e.weather.snowCover}function k(e){const r=m().vec3f(P.POSITION);e.normalType===_.Compressed?r.vec2i16(P.NORMALCOMPRESSED,{glNormalized:!0}):r.vec3f(P.NORMAL),e.hasVertexTangents&&r.vec4f(P.TANGENT);return(e.textureId||e.normalTextureId||e.metallicRoughnessTextureId||e.emissiveTextureId||e.occlusionTextureId)&&r.vec2f(P.UV0),e.hasVertexColors&&r.vec4u8(P.COLOR),e.hasSymbolColors&&r.vec4u8(P.SYMBOLCOLOR),M()&&r.vec4u8(P.OBJECTANDLAYERIDCOLOR),r}const F=u(),G=u(),H=h(0,0,1),Y=u(),J=u(),Q=u(),K=u();export{q as DefaultGLMaterial,z as DefaultMaterial,U as DefaultMaterialParameters};
@@ -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{ShaderOutput as t}from"../core/shaderLibrary/ShaderOutput.js";import{InstancedDoubleConfiguration as r}from"../core/shaderLibrary/attributes/InstancedDoubleConfiguration.js";import{BindType as s}from"../core/shaderTechnique/BindType.js";import{parameter as e}from"../core/shaderTechnique/ShaderTechniqueConfiguration.js";import{OITPass as i}from"../lib/OITPass.js";class a extends r{constructor(){super(...arguments),this.output=t.Color,this.oitPass=i.NONE,this.hasSlicePlane=!1,this.bindType=s.Pass,this.writeDepth=!0}}o([e({count:t.COUNT})],a.prototype,"output",void 0),o([e({count:i.COUNT})],a.prototype,"oitPass",void 0),o([e()],a.prototype,"hasSlicePlane",void 0);export{a as DefaultTechniqueConfiguration};
5
+ import{_ as o}from"../../../../chunks/tslib.es6.js";import{ShaderOutput as t}from"../core/shaderLibrary/ShaderOutput.js";import{InstancedDoubleConfiguration as r}from"../core/shaderLibrary/attributes/InstancedDoubleConfiguration.js";import{parameter as s}from"../core/shaderTechnique/ShaderTechniqueConfiguration.js";import{OITPass as e}from"../lib/OITPass.js";import{BindType as i}from"../../../webgl/BindType.js";class a extends r{constructor(){super(...arguments),this.output=t.Color,this.oitPass=e.NONE,this.hasSlicePlane=!1,this.bindType=i.Pass,this.writeDepth=!0}}o([s({count:t.COUNT})],a.prototype,"output",void 0),o([s({count:e.COUNT})],a.prototype,"oitPass",void 0),o([s()],a.prototype,"hasSlicePlane",void 0);export{a as DefaultTechniqueConfiguration};
@@ -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{clamp as e,deg2rad as t}from"../../../../core/mathUtils.js";import{fromMat4 as s}from"../../../../core/libs/gl-matrix-2/math/mat3.js";import{create as i}from"../../../../core/libs/gl-matrix-2/factories/mat3f64.js";import{invert as r}from"../../../../core/libs/gl-matrix-2/math/mat4.js";import{create as a}from"../../../../core/libs/gl-matrix-2/factories/mat4f64.js";import{set as o,rotate as n}from"../../../../core/libs/gl-matrix-2/math/vec2.js";import{create as c,fromValues as l}from"../../../../core/libs/gl-matrix-2/factories/vec2f64.js";import{i as f,t as h,n as p,d as u,h as m,c as d,l as g,j as O,g as S,q as T,f as b}from"../../../../chunks/vec32.js";import{create as v,fromValues as A}from"../../../../core/libs/gl-matrix-2/factories/vec3f64.js";import{fromArray as E,create as _,freeze as I}from"../../../../core/libs/gl-matrix-2/factories/vec4f64.js";import{isMat4 as R}from"../../../../core/libs/gl-matrix-2/types/mat4.js";import{create as C}from"../../../../geometry/support/aaBoundingRect.js";import{BufferViewVec4u8 as x}from"../../../../geometry/support/buffer/BufferView.js";import{evaluateModelTransformScale as P}from"../../layers/support/FastSymbolUpdates.js";import{debugFlags as y}from"../../support/debugFlags.js";import{newLayout as D}from"../../support/buffer/InterleavedLayout.js";import{isColorEmissionHighlightOrOID as F,isColorOrColorEmission as L}from"../core/shaderLibrary/ShaderOutput.js";import{HUDVerticalPixelOffset as j}from"../core/shaderLibrary/hud/HUD.glsl.js";import{alphaCutoff as N}from"../core/shaderLibrary/util/AlphaCutoff.js";import{olidEnabled as z}from"../effects/geometry/olidUtils.js";import{GLTextureMaterial as U,GLTextureMaterialBindParameters as M}from"../lib/GLTextureMaterial.js";import{Material as w,RenderOccludedFlag as V}from"../lib/Material.js";import{RenderSlot as B}from"../lib/RenderSlot.js";import{applyScaleFactor as q,applyPrecomputedScaleFactor as G,precomputeScaleFactor as H}from"../lib/screenSizePerspectiveUtils.js";import{assert as W}from"../lib/Util.js";import{VertexAttribute as X}from"../lib/VertexAttribute.js";import{ScaleInfo as Y}from"./ScaleInfo.js";import{writePosition as Z,writeNormal as k,writeColor as J,writeBufferFloat as K,writeBufferVec4 as Q,writeBufferVec4Zeros as $,writeObjectAndLayerIdColor as ee}from"./internal/bufferWriterUtils.js";import{verticalOffsetAtDistance as te}from"./internal/MaterialUtil.js";import{c as se}from"../../../../chunks/HUDMaterial.glsl.js";import{HUDMaterialTechnique as ie}from"../shaders/HUDMaterialTechnique.js";import{HUDMaterialTechniqueConfiguration as re}from"../shaders/HUDMaterialTechniqueConfiguration.js";class ae extends w{constructor(e,t){super(e,ye),this.produces=new Map([[B.HUD_MATERIAL,e=>F(e)&&!this.parameters.drawAsLabel],[B.LABEL_MATERIAL,e=>F(e)&&this.parameters.drawAsLabel],[B.OCCLUSION_PIXELS,()=>this.parameters.occlusionTest],[B.DRAPED_MATERIAL,e=>this.parameters.draped&&F(e)]]),this._visible=!0,this._configuration=new re(t)}getConfiguration(e,t){return this._configuration.output=e,this._configuration.hasSlicePlane=this.parameters.hasSlicePlane,this._configuration.hasVerticalOffset=!!this.parameters.verticalOffset,this._configuration.hasScreenSizePerspective=!!this.parameters.screenSizePerspective,this._configuration.screenCenterOffsetUnitsEnabled="screen"===this.parameters.centerOffsetUnits,this._configuration.hasPolygonOffset=this.parameters.polygonOffset,this._configuration.draped=this.parameters.draped,this._configuration.occlusionTestEnabled=this.parameters.occlusionTest,this._configuration.pixelSnappingEnabled=this.parameters.pixelSnappingEnabled,this._configuration.signedDistanceFieldEnabled=this.parameters.textureIsSignedDistanceField,this._configuration.sampleSignedDistanceFieldTexelCenter=this.parameters.sampleSignedDistanceFieldTexelCenter,this._configuration.hasRotation=this.parameters.hasRotation,this._configuration.vvSize=!!this.parameters.vvSize,this._configuration.vvColor=!!this.parameters.vvColor,this._configuration.occlusionPass=t.slot===B.OCCLUSION_PIXELS,this._configuration.occludedFragmentFade=this.parameters.occludedFragmentFade,this._configuration.horizonCullingEnabled=this.parameters.horizonCullingEnabled,this._configuration.isFocused=this.parameters.isFocused,this._configuration.depthTestEnabled=this.parameters.depthEnabled||t.slot===B.OCCLUSION_PIXELS,L(e)&&(this._configuration.debugDrawLabelBorder=!!y.LABELS_SHOW_BORDER),this._configuration.oitPass=t.oitPass,this._configuration.terrainDepthTest=t.terrainDepthTest,this._configuration.cullAboveTerrain=t.cullAboveTerrain,this._configuration}intersect(e,t,i,a,o,n){const{options:{selectionMode:c,hud:l,excludeLabels:S},point:T,camera:b}=i,{parameters:A}=this;if(!c||!l||S&&A.isLabel||!e.visible||!T)return;const{scaleX:E,scaleY:_}=this._getScreenScale(e,b.pixelRatio);s(Te,t),e.attributes.has(X.FEATUREATTRIBUTE)&&le(Te);const I=e.attributes.get(X.POSITION),R=e.attributes.get(X.SIZE),C=e.attributes.get(X.NORMAL),x=e.attributes.get(X.ROTATION),P=e.attributes.get(X.CENTEROFFSETANDDISTANCE);W(I.size>=3);const y=se(A),D="screen"===this.parameters.centerOffsetUnits;for(let s=0;s<I.data.length/I.size;s++){const e=s*I.size;f(pe,I.data[e],I.data[e+1],I.data[e+2]),h(pe,pe,t),h(pe,pe,b.viewMatrix);const a=s*P.size;if(f(Ae,P.data[a],P.data[a+1],P.data[a+2]),!D&&(pe[0]+=Ae[0],pe[1]+=Ae[1],0!==Ae[2])){const e=Ae[2];p(Ae,pe),u(pe,pe,m(Ae,Ae,e))}const o=s*C.size;if(f(ue,C.data[o],C.data[o+1],C.data[o+2]),ce(ue,Te,b,Ie),this._applyVerticalOffsetTransformationView(pe,Ie,b,he),b.applyProjection(pe,me),me[0]>-1){D&&(Ae[0]||Ae[1])&&(me[0]+=Ae[0]*b.pixelRatio,0!==Ae[1]&&(me[1]+=q(Ae[1],he.factorAlignment)*b.pixelRatio),b.unapplyProjection(me,pe)),me[0]+=this.parameters.screenOffset[0]*b.pixelRatio,me[1]+=this.parameters.screenOffset[1]*b.pixelRatio,me[0]=Math.floor(me[0]),me[1]=Math.floor(me[1]);const e=s*R.size;xe[0]=R.data[e],xe[1]=R.data[e+1],G(xe,he.factor,xe);const t=Re*b.pixelRatio;let a=0;if(A.textureIsSignedDistanceField){a=Math.min(A.outlineSize,.5*xe[0])*b.pixelRatio/2}xe[0]*=E,xe[1]*=_;const o=s*x.size,c=A.rotation+x.data[o];if(fe(T,me[0],me[1],xe,t,a,c,A,y)){const e=i.ray;if(h(ge,pe,r(ve,b.viewMatrix)),me[0]=T[0],me[1]=T[1],b.unprojectFromRenderScreen(me,pe)){const t=v();d(t,e.direction);const s=1/g(t);m(t,t,s);n(O(e.origin,pe)*s,t,-1,!0,1,ge)}}}}}intersectDraped(e,t,s,i,r,a){const o=e.attributes.get(X.POSITION),n=e.attributes.get(X.SIZE),c=e.attributes.get(X.ROTATION),l=this.parameters,f=se(l),{scaleX:h,scaleY:p}=this._getScreenScale(e,e.screenToWorldRatio),u=Ce*e.screenToWorldRatio;for(let m=0;m<o.data.length/o.size;m++){const t=m*o.size,s=o.data[t],d=o.data[t+1],g=m*n.size;xe[0]=n.data[g],xe[1]=n.data[g+1];let O=0;if(l.textureIsSignedDistanceField){O=Math.min(l.outlineSize,.5*xe[0])*e.screenToWorldRatio/2}xe[0]*=h,xe[1]*=p;const S=m*c.size,T=l.rotation+c.data[S];fe(i,s,d,xe,u,O,T,l,f)&&r(a.dist,a.normal,-1,!1)}}createBufferWriter(){return new Le}_updateScaleInfo(e,t,s){const i=this.parameters;null!=i.screenSizePerspective?H(s,t,i.screenSizePerspective,e.factor):(e.factor.scale=1,e.factor.factor=0,e.factor.minScaleFactor=0),null!=i.screenSizePerspectiveAlignment?H(s,t,i.screenSizePerspectiveAlignment,e.factorAlignment):(e.factorAlignment.factor=e.factor.factor,e.factorAlignment.scale=e.factor.scale,e.factorAlignment.minScaleFactor=e.factor.minScaleFactor)}applyShaderOffsetsView(e,t,s,i,r,a,o){const n=ce(t,s,r,Ie);return this._applyVerticalGroundOffsetView(e,n,r,o),this._applyVerticalOffsetTransformationView(o,n,r,a),this._applyPolygonOffsetView(o,n,i[3],r,o),this._applyCenterOffsetView(o,i,o),o}applyShaderOffsetsNDC(e,t,s,i,r){return this._applyCenterOffsetNDC(e,t,s,i),null!=r&&d(r,i),this._applyPolygonOffsetNDC(i,t,s,i),i}_applyPolygonOffsetView(t,s,i,r,a){const o=r.aboveGround?1:-1;let n=Math.sign(i);0===n&&(n=o);const c=o*n;if(this.parameters.shaderPolygonOffset<=0)return d(a,t);const l=e(Math.abs(s.cosAngle),.01,1),f=1-Math.sqrt(1-l*l)/l/r.viewport[2];return m(a,t,c>0?f:1/f),a}_applyVerticalGroundOffsetView(e,t,s,i){const r=g(e),a=s.aboveGround?1:-1,o=s.computeRenderPixelSizeAtDist(r)*j,n=m(pe,t.normal,a*o);return S(i,e,n),i}_applyVerticalOffsetTransformationView(e,t,s,i){const r=this.parameters;if(!r.verticalOffset?.screenLength){if(r.screenSizePerspective||r.screenSizePerspectiveAlignment){const s=g(e);this._updateScaleInfo(i,s,t.cosAngle)}else i.factor.scale=1,i.factorAlignment.scale=1;return e}const a=g(e),o=r.screenSizePerspectiveAlignment??r.screenSizePerspective,n=te(s,a,r.verticalOffset,t.cosAngle,o);return this._updateScaleInfo(i,a,t.cosAngle),m(t.normal,t.normal,n),S(e,e,t.normal)}_applyCenterOffsetView(e,t,s){const i="screen"!==this.parameters.centerOffsetUnits;return s!==e&&d(s,e),i&&(s[0]+=t[0],s[1]+=t[1],t[2]&&(p(ue,s),S(s,s,m(ue,ue,t[2])))),s}_applyCenterOffsetNDC(e,t,s,i){const r="screen"!==this.parameters.centerOffsetUnits;return i!==e&&d(i,e),r||(i[0]+=t[0]/s.fullWidth*2,i[1]+=t[1]/s.fullHeight*2),i}_applyPolygonOffsetNDC(e,t,s,i){const r=this.parameters.shaderPolygonOffset;if(e!==i&&d(i,e),r){const e=s.aboveGround?1:-1,a=e*Math.sign(t[3]);i[2]-=(a||e)*r}return i}set visible(e){this._visible=e}get visible(){const{color:e,outlineSize:t,outlineColor:s}=this.parameters,i=e[3]>=N||t>=N&&s[3]>=N;return this._visible&&i}createGLMaterial(e){return new oe(e)}calculateRelativeScreenBounds(e,t,s=C()){return ne(this.parameters,e,t,s),s[2]=s[0]+e[0],s[3]=s[1]+e[1],s}_getScreenScale(e,t){const s=e.attributes.get(X.FEATUREATTRIBUTE);if(null==s)return{scaleX:t,scaleY:t};const i=E(s.data,_e);return P(Ee,this.parameters,i),{scaleX:Ee[0]*t,scaleY:Ee[1]*t}}}class oe extends U{constructor(e){super({...e,...e.material.parameters})}beginSlot(e){return this.updateTexture(this._material.parameters.textureId),this._material.setParameters(this.textureBindParameters),this.acquireTechnique(ie,e)}}function ne(e,t,s,i){i[0]=e.anchorPosition[0]*-t[0]+e.screenOffset[0]*s,i[1]=e.anchorPosition[1]*-t[1]+e.screenOffset[1]*s}function ce(e,t,i,r){return R(t)&&(t=s(be,t)),T(r.normal,e,t),h(r.normal,r.normal,i.viewInverseTransposeMatrix),r.cosAngle=b(de,Pe),r}function le(e){const t=e[0],s=e[1],i=e[2],r=e[3],a=e[4],o=e[5],n=e[6],c=e[7],l=e[8],f=1/Math.sqrt(t*t+s*s+i*i),h=1/Math.sqrt(r*r+a*a+o*o),p=1/Math.sqrt(n*n+c*c+l*l);return e[0]=t*f,e[1]=s*f,e[2]=i*f,e[3]=r*h,e[4]=a*h,e[5]=o*h,e[6]=n*p,e[7]=c*p,e[8]=l*p,e}function fe(e,s,i,r,a,c,l,f,h){let p=s-a-r[0]*h[0],u=p+r[0]+2*a,m=i-a-r[1]*h[1],d=m+r[1]+2*a;const g=f.distanceFieldBoundingBox;return f.textureIsSignedDistanceField&&null!=g&&(p+=r[0]*g[0],m+=r[1]*g[1],u-=r[0]*(1-g[2]),d-=r[1]*(1-g[3]),p-=c,u+=c,m-=c,d+=c),o(Se,s,i),n(Oe,e,Se,t(l)),Oe[0]>p&&Oe[0]<u&&Oe[1]>m&&Oe[1]<d}const he=new Y,pe=v(),ue=v(),me=_(),de=v(),ge=v(),Oe=c(),Se=c(),Te=i(),be=i(),ve=a(),Ae=v(),Ee=v(),_e=_(),Ie={normal:de,cosAngle:0},Re=1,Ce=2,xe=[0,0],Pe=A(0,0,1);class ye extends M{constructor(){super(...arguments),this.renderOccluded=V.Occlude,this.isDecoration=!1,this.color=I(1,1,1,1),this.polygonOffset=!1,this.anchorPosition=l(.5,.5),this.screenOffset=[0,0],this.shaderPolygonOffset=1e-5,this.textureIsSignedDistanceField=!1,this.sampleSignedDistanceFieldTexelCenter=!1,this.outlineColor=I(1,1,1,1),this.outlineSize=0,this.rotation=0,this.hasRotation=!1,this.vvSizeEnabled=!1,this.vvSize=null,this.vvColor=null,this.vvOpacity=null,this.vvSymbolAnchor=null,this.vvSymbolRotationMatrix=null,this.hasSlicePlane=!1,this.pixelSnappingEnabled=!0,this.occlusionTest=!0,this.occludedFragmentFade=!1,this.horizonCullingEnabled=!1,this.centerOffsetUnits="world",this.drawAsLabel=!1,this.depthEnabled=!0,this.isFocused=!0,this.focusEffect="none",this.draped=!1,this.isLabel=!1}}const De=D().vec3f(X.POSITION).vec3f(X.NORMAL).vec2f(X.UV0).vec4u8(X.COLOR).vec2f(X.SIZE).f32(X.ROTATION).vec4f(X.CENTEROFFSETANDDISTANCE).vec4f(X.FEATUREATTRIBUTE),Fe=De.clone().vec4u8(X.OBJECTANDLAYERIDCOLOR);class Le{constructor(){this.vertexBufferLayout=z()?Fe:De}elementCount(e){return 6*e.get(X.POSITION).indices.length}write(e,t,s,i,r,a){Z(s.get(X.POSITION),e,r.position,a,6),k(s.get(X.NORMAL),t,r.normal,a,6);const o=s.get(X.UV0)?.data;let n=0,c=0,l=1,f=1;o&&o.length>=4&&(n=o[0],c=o[1],l=o[2],f=o[3]),l=Math.min(1.99999,l+1),f=Math.min(1.99999,f+1);let h=s.get(X.POSITION).indices.length,p=a;const u=r.uv0;for(let O=0;O<h;++O)u.set(p,0,n),u.set(p,1,c),p++,u.set(p,0,l),u.set(p,1,c),p++,u.set(p,0,l),u.set(p,1,f),p++,u.set(p,0,l),u.set(p,1,f),p++,u.set(p,0,n),u.set(p,1,f),p++,u.set(p,0,n),u.set(p,1,c),p++;J(s.get(X.COLOR),4,r.color,a,6);const{data:m,indices:d}=s.get(X.SIZE);h=d.length;const g=r.size;p=a;for(let O=0;O<h;++O){const e=m[2*d[O]],t=m[2*d[O]+1];for(let s=0;s<6;++s)g.set(p,0,e),g.set(p,1,t),p++}if(K(s.get(X.ROTATION),r.rotation,a,6),s.get(X.CENTEROFFSETANDDISTANCE)?Q(s.get(X.CENTEROFFSETANDDISTANCE),r.centerOffsetAndDistance,a,6):$(r.centerOffsetAndDistance,a,6*h),s.get(X.FEATUREATTRIBUTE)?Q(s.get(X.FEATUREATTRIBUTE),r.featureAttribute,a,6):$(r.featureAttribute,a,6*h),null!=i){const e=s.get(X.POSITION)?.indices;if(e){const t=e.length,s=r.getField(X.OBJECTANDLAYERIDCOLOR,x);ee(i,s,t,a,6)}}}}export{ae as HUDMaterial,ye as Parameters};
5
+ import{clamp as e,deg2rad as t}from"../../../../core/mathUtils.js";import{fromMat4 as s}from"../../../../core/libs/gl-matrix-2/math/mat3.js";import{create as i}from"../../../../core/libs/gl-matrix-2/factories/mat3f64.js";import{invert as r}from"../../../../core/libs/gl-matrix-2/math/mat4.js";import{create as a}from"../../../../core/libs/gl-matrix-2/factories/mat4f64.js";import{set as o,rotate as n}from"../../../../core/libs/gl-matrix-2/math/vec2.js";import{create as c,fromValues as l}from"../../../../core/libs/gl-matrix-2/factories/vec2f64.js";import{i as f,t as h,n as p,d as u,h as m,c as d,l as g,j as O,g as S,q as T,f as b}from"../../../../chunks/vec32.js";import{create as v,fromValues as A}from"../../../../core/libs/gl-matrix-2/factories/vec3f64.js";import{fromArray as E,create as _,freeze as I}from"../../../../core/libs/gl-matrix-2/factories/vec4f64.js";import{isMat4 as R}from"../../../../core/libs/gl-matrix-2/types/mat4.js";import{create as x}from"../../../../geometry/support/aaBoundingRect.js";import{BufferViewVec4u8 as C}from"../../../../geometry/support/buffer/BufferView.js";import{evaluateModelTransformScale as P}from"../../layers/support/FastSymbolUpdates.js";import{debugFlags as y}from"../../support/debugFlags.js";import{newLayout as D}from"../../support/buffer/InterleavedLayout.js";import{isColorEmissionHighlightOrOID as F,isColorOrColorEmission as L}from"../core/shaderLibrary/ShaderOutput.js";import{HUDVerticalPixelOffset as j}from"../core/shaderLibrary/hud/HUD.glsl.js";import{alphaCutoff as N}from"../core/shaderLibrary/util/AlphaCutoff.js";import{olidEnabled as z}from"../effects/geometry/olidUtils.js";import{GLTextureMaterial as U,GLTextureMaterialBindParameters as M}from"../lib/GLTextureMaterial.js";import{Material as w,RenderOccludedFlag as B}from"../lib/Material.js";import{RenderSlot as V}from"../lib/RenderSlot.js";import{applyScaleFactor as q,applyPrecomputedScaleFactor as G,precomputeScaleFactor as H}from"../lib/screenSizePerspectiveUtils.js";import{assert as W}from"../lib/Util.js";import{VertexAttribute as X}from"../lib/VertexAttribute.js";import{ScaleInfo as Y}from"./ScaleInfo.js";import{writePosition as Z,writeNormal as k,writeColor as J,writeBufferFloat as K,writeBufferVec4 as Q,writeBufferVec4Zeros as $,writeObjectAndLayerIdColor as ee}from"./internal/bufferWriterUtils.js";import{verticalOffsetAtDistance as te}from"./internal/MaterialUtil.js";import{c as se}from"../../../../chunks/HUDMaterial.glsl.js";import{HUDMaterialTechnique as ie}from"../shaders/HUDMaterialTechnique.js";import{HUDMaterialTechniqueConfiguration as re}from"../shaders/HUDMaterialTechniqueConfiguration.js";class ae extends w{constructor(e,t){super(e,ye),this.produces=new Map([[V.HUD_MATERIAL,e=>F(e)&&!this.parameters.drawAsLabel],[V.LABEL_MATERIAL,e=>F(e)&&this.parameters.drawAsLabel],[V.OCCLUSION_PIXELS,()=>this.parameters.occlusionTest],[V.DRAPED_MATERIAL,e=>this.parameters.draped&&F(e)]]),this._visible=!0,this._configuration=new re(t)}getConfiguration(e,t){return this._configuration.output=e,this._configuration.hasSlicePlane=this.parameters.hasSlicePlane,this._configuration.hasVerticalOffset=!!this.parameters.verticalOffset,this._configuration.hasScreenSizePerspective=!!this.parameters.screenSizePerspective,this._configuration.screenCenterOffsetUnitsEnabled="screen"===this.parameters.centerOffsetUnits,this._configuration.hasPolygonOffset=this.parameters.polygonOffset,this._configuration.draped=this.parameters.draped,this._configuration.occlusionTestEnabled=this.parameters.occlusionTest,this._configuration.pixelSnappingEnabled=this.parameters.pixelSnappingEnabled,this._configuration.signedDistanceFieldEnabled=this.parameters.textureIsSignedDistanceField,this._configuration.sampleSignedDistanceFieldTexelCenter=this.parameters.sampleSignedDistanceFieldTexelCenter,this._configuration.hasRotation=this.parameters.hasRotation,this._configuration.vvSize=!!this.parameters.vvSize,this._configuration.vvColor=!!this.parameters.vvColor,this._configuration.occlusionPass=t.slot===V.OCCLUSION_PIXELS,this._configuration.occludedFragmentFade=this.parameters.occludedFragmentFade,this._configuration.horizonCullingEnabled=this.parameters.horizonCullingEnabled,this._configuration.isFocused=this.parameters.isFocused,this._configuration.depthTestEnabled=this.parameters.depthEnabled||t.slot===V.OCCLUSION_PIXELS,L(e)&&(this._configuration.debugDrawLabelBorder=!!y.LABELS_SHOW_BORDER),this._configuration.oitPass=t.oitPass,this._configuration.terrainDepthTest=t.terrainDepthTest,this._configuration.cullAboveTerrain=t.cullAboveTerrain,this._configuration}intersect(e,t,i,a,o,n){const{options:{selectionMode:c,hud:l,excludeLabels:S},point:T,camera:b}=i,{parameters:A}=this;if(!c||!l||S&&A.isLabel||!e.visible||!T)return;const{scaleX:E,scaleY:_}=this._getScreenScale(e,b.pixelRatio);s(Te,t),e.attributes.has(X.FEATUREATTRIBUTE)&&le(Te);const I=e.attributes.get(X.POSITION),R=e.attributes.get(X.SIZE),x=e.attributes.get(X.NORMAL),C=e.attributes.get(X.ROTATION),P=e.attributes.get(X.CENTEROFFSETANDDISTANCE);W(I.size>=3);const y=se(A),D="screen"===this.parameters.centerOffsetUnits;for(let s=0;s<I.data.length/I.size;s++){const e=s*I.size;f(pe,I.data[e],I.data[e+1],I.data[e+2]),h(pe,pe,t),h(pe,pe,b.viewMatrix);const a=s*P.size;if(f(Ae,P.data[a],P.data[a+1],P.data[a+2]),!D&&(pe[0]+=Ae[0],pe[1]+=Ae[1],0!==Ae[2])){const e=Ae[2];p(Ae,pe),u(pe,pe,m(Ae,Ae,e))}const o=s*x.size;if(f(ue,x.data[o],x.data[o+1],x.data[o+2]),ce(ue,Te,b,Ie),this._applyVerticalOffsetTransformationView(pe,Ie,b,he),b.applyProjection(pe,me),me[0]>-1){D&&(Ae[0]||Ae[1])&&(me[0]+=Ae[0]*b.pixelRatio,0!==Ae[1]&&(me[1]+=q(Ae[1],he.factorAlignment)*b.pixelRatio),b.unapplyProjection(me,pe)),me[0]+=this.parameters.screenOffset[0]*b.pixelRatio,me[1]+=this.parameters.screenOffset[1]*b.pixelRatio,me[0]=Math.floor(me[0]),me[1]=Math.floor(me[1]);const e=s*R.size;Ce[0]=R.data[e],Ce[1]=R.data[e+1],G(Ce,he.factor,Ce);const t=Re*b.pixelRatio;let a=0;if(A.textureIsSignedDistanceField){a=Math.min(A.outlineSize,.5*Ce[0])*b.pixelRatio/2}Ce[0]*=E,Ce[1]*=_;const o=s*C.size,c=A.rotation+C.data[o];if(fe(T,me[0],me[1],Ce,t,a,c,A,y)){const e=i.ray;if(h(ge,pe,r(ve,b.viewMatrix)),me[0]=T[0],me[1]=T[1],b.unprojectFromRenderScreen(me,pe)){const t=v();d(t,e.direction);const s=1/g(t);m(t,t,s);n(O(e.origin,pe)*s,t,-1,!0,1,ge)}}}}}intersectDraped(e,t,s,i,r,a){const o=e.attributes.get(X.POSITION),n=e.attributes.get(X.SIZE),c=e.attributes.get(X.ROTATION),l=this.parameters,f=se(l),{scaleX:h,scaleY:p}=this._getScreenScale(e,e.screenToWorldRatio),u=xe*e.screenToWorldRatio;for(let m=0;m<o.data.length/o.size;m++){const t=m*o.size,s=o.data[t],d=o.data[t+1],g=m*n.size;Ce[0]=n.data[g],Ce[1]=n.data[g+1];let O=0;if(l.textureIsSignedDistanceField){O=Math.min(l.outlineSize,.5*Ce[0])*e.screenToWorldRatio/2}Ce[0]*=h,Ce[1]*=p;const S=m*c.size,T=l.rotation+c.data[S];fe(i,s,d,Ce,u,O,T,l,f)&&r(a.dist,a.normal,-1,!1)}}createBufferWriter(){return new Le}_updateScaleInfo(e,t,s){const i=this.parameters;null!=i.screenSizePerspective?H(s,t,i.screenSizePerspective,e.factor):(e.factor.scale=1,e.factor.factor=0,e.factor.minScaleFactor=0),null!=i.screenSizePerspectiveAlignment?H(s,t,i.screenSizePerspectiveAlignment,e.factorAlignment):(e.factorAlignment.factor=e.factor.factor,e.factorAlignment.scale=e.factor.scale,e.factorAlignment.minScaleFactor=e.factor.minScaleFactor)}applyShaderOffsetsView(e,t,s,i,r,a,o){const n=ce(t,s,r,Ie);return this._applyVerticalGroundOffsetView(e,n,r,o),this._applyVerticalOffsetTransformationView(o,n,r,a),this._applyPolygonOffsetView(o,n,i[3],r,o),this._applyCenterOffsetView(o,i,o),o}applyShaderOffsetsNDC(e,t,s,i,r){return this._applyCenterOffsetNDC(e,t,s,i),null!=r&&d(r,i),this._applyPolygonOffsetNDC(i,t,s,i),i}_applyPolygonOffsetView(t,s,i,r,a){const o=r.aboveGround?1:-1;let n=Math.sign(i);0===n&&(n=o);const c=o*n;if(this.parameters.shaderPolygonOffset<=0)return d(a,t);const l=e(Math.abs(s.cosAngle),.01,1),f=1-Math.sqrt(1-l*l)/l/r.viewport[2];return m(a,t,c>0?f:1/f),a}_applyVerticalGroundOffsetView(e,t,s,i){const r=g(e),a=s.aboveGround?1:-1,o=s.computeRenderPixelSizeAtDist(r)*j,n=m(pe,t.normal,a*o);return S(i,e,n),i}_applyVerticalOffsetTransformationView(e,t,s,i){const r=this.parameters;if(!r.verticalOffset?.screenLength){if(r.screenSizePerspective||r.screenSizePerspectiveAlignment){const s=g(e);this._updateScaleInfo(i,s,t.cosAngle)}else i.factor.scale=1,i.factorAlignment.scale=1;return e}const a=g(e),o=r.screenSizePerspectiveAlignment??r.screenSizePerspective,n=te(s,a,r.verticalOffset,t.cosAngle,o);return this._updateScaleInfo(i,a,t.cosAngle),m(t.normal,t.normal,n),S(e,e,t.normal)}_applyCenterOffsetView(e,t,s){const i="screen"!==this.parameters.centerOffsetUnits;return s!==e&&d(s,e),i&&(s[0]+=t[0],s[1]+=t[1],t[2]&&(p(ue,s),S(s,s,m(ue,ue,t[2])))),s}_applyCenterOffsetNDC(e,t,s,i){const r="screen"!==this.parameters.centerOffsetUnits;return i!==e&&d(i,e),r||(i[0]+=t[0]/s.fullWidth*2,i[1]+=t[1]/s.fullHeight*2),i}_applyPolygonOffsetNDC(e,t,s,i){const r=this.parameters.shaderPolygonOffset;if(e!==i&&d(i,e),r){const e=s.aboveGround?1:-1,a=e*Math.sign(t[3]);i[2]-=(a||e)*r}return i}set visible(e){this._visible=e}get visible(){const{color:e,outlineSize:t,outlineColor:s}=this.parameters,i=e[3]>=N||t>=N&&s[3]>=N;return this._visible&&i}createGLMaterial(e){return new oe(e)}calculateRelativeScreenBounds(e,t,s=x()){return ne(this.parameters,e,t,s),s[2]=s[0]+e[0],s[3]=s[1]+e[1],s}_getScreenScale(e,t){const s=e.attributes.get(X.FEATUREATTRIBUTE);if(null==s)return{scaleX:t,scaleY:t};const i=E(s.data,_e);return P(Ee,this.parameters,i),{scaleX:Ee[0]*t,scaleY:Ee[1]*t}}}class oe extends U{constructor(e){super({...e,...e.material.parameters})}beginSlot(e){return this.updateTexture(this._material.parameters.textureId),this._material.setParameters(this.textureBindParameters),this.getTechnique(ie,e)}}function ne(e,t,s,i){i[0]=e.anchorPosition[0]*-t[0]+e.screenOffset[0]*s,i[1]=e.anchorPosition[1]*-t[1]+e.screenOffset[1]*s}function ce(e,t,i,r){return R(t)&&(t=s(be,t)),T(r.normal,e,t),h(r.normal,r.normal,i.viewInverseTransposeMatrix),r.cosAngle=b(de,Pe),r}function le(e){const t=e[0],s=e[1],i=e[2],r=e[3],a=e[4],o=e[5],n=e[6],c=e[7],l=e[8],f=1/Math.sqrt(t*t+s*s+i*i),h=1/Math.sqrt(r*r+a*a+o*o),p=1/Math.sqrt(n*n+c*c+l*l);return e[0]=t*f,e[1]=s*f,e[2]=i*f,e[3]=r*h,e[4]=a*h,e[5]=o*h,e[6]=n*p,e[7]=c*p,e[8]=l*p,e}function fe(e,s,i,r,a,c,l,f,h){let p=s-a-r[0]*h[0],u=p+r[0]+2*a,m=i-a-r[1]*h[1],d=m+r[1]+2*a;const g=f.distanceFieldBoundingBox;return f.textureIsSignedDistanceField&&null!=g&&(p+=r[0]*g[0],m+=r[1]*g[1],u-=r[0]*(1-g[2]),d-=r[1]*(1-g[3]),p-=c,u+=c,m-=c,d+=c),o(Se,s,i),n(Oe,e,Se,t(l)),Oe[0]>p&&Oe[0]<u&&Oe[1]>m&&Oe[1]<d}const he=new Y,pe=v(),ue=v(),me=_(),de=v(),ge=v(),Oe=c(),Se=c(),Te=i(),be=i(),ve=a(),Ae=v(),Ee=v(),_e=_(),Ie={normal:de,cosAngle:0},Re=1,xe=2,Ce=[0,0],Pe=A(0,0,1);class ye extends M{constructor(){super(...arguments),this.renderOccluded=B.Occlude,this.isDecoration=!1,this.color=I(1,1,1,1),this.polygonOffset=!1,this.anchorPosition=l(.5,.5),this.screenOffset=[0,0],this.shaderPolygonOffset=1e-5,this.textureIsSignedDistanceField=!1,this.sampleSignedDistanceFieldTexelCenter=!1,this.outlineColor=I(1,1,1,1),this.outlineSize=0,this.distanceFieldBoundingBox=_(),this.rotation=0,this.hasRotation=!1,this.vvSizeEnabled=!1,this.vvSize=null,this.vvColor=null,this.vvOpacity=null,this.vvSymbolAnchor=null,this.vvSymbolRotationMatrix=null,this.hasSlicePlane=!1,this.pixelSnappingEnabled=!0,this.occlusionTest=!0,this.occludedFragmentFade=!1,this.horizonCullingEnabled=!1,this.centerOffsetUnits="world",this.drawAsLabel=!1,this.depthEnabled=!0,this.isFocused=!0,this.focusEffect="none",this.draped=!1,this.isLabel=!1}}const De=D().vec3f(X.POSITION).vec3f(X.NORMAL).vec2f(X.UV0).vec4u8(X.COLOR).vec2f(X.SIZE).f32(X.ROTATION).vec4f(X.CENTEROFFSETANDDISTANCE).vec4f(X.FEATUREATTRIBUTE),Fe=De.clone().vec4u8(X.OBJECTANDLAYERIDCOLOR);class Le{constructor(){this.vertexBufferLayout=z()?Fe:De}elementCount(e){return 6*e.get(X.POSITION).indices.length}write(e,t,s,i,r,a){Z(s.get(X.POSITION),e,r.position,a,6),k(s.get(X.NORMAL),t,r.normal,a,6);const o=s.get(X.UV0)?.data;let n=0,c=0,l=1,f=1;o&&o.length>=4&&(n=o[0],c=o[1],l=o[2],f=o[3]),l=Math.min(1.99999,l+1),f=Math.min(1.99999,f+1);let h=s.get(X.POSITION).indices.length,p=a;const u=r.uv0;for(let O=0;O<h;++O)u.set(p,0,n),u.set(p,1,c),p++,u.set(p,0,l),u.set(p,1,c),p++,u.set(p,0,l),u.set(p,1,f),p++,u.set(p,0,l),u.set(p,1,f),p++,u.set(p,0,n),u.set(p,1,f),p++,u.set(p,0,n),u.set(p,1,c),p++;J(s.get(X.COLOR),4,r.color,a,6);const{data:m,indices:d}=s.get(X.SIZE);h=d.length;const g=r.size;p=a;for(let O=0;O<h;++O){const e=m[2*d[O]],t=m[2*d[O]+1];for(let s=0;s<6;++s)g.set(p,0,e),g.set(p,1,t),p++}if(K(s.get(X.ROTATION),r.rotation,a,6),s.get(X.CENTEROFFSETANDDISTANCE)?Q(s.get(X.CENTEROFFSETANDDISTANCE),r.centerOffsetAndDistance,a,6):$(r.centerOffsetAndDistance,a,6*h),s.get(X.FEATUREATTRIBUTE)?Q(s.get(X.FEATUREATTRIBUTE),r.featureAttribute,a,6):$(r.featureAttribute,a,6*h),null!=i){const e=s.get(X.POSITION)?.indices;if(e){const t=e.length,s=r.getField(X.OBJECTANDLAYERIDCOLOR,C);ee(i,s,t,a,6)}}}}export{ae as HUDMaterial,ye as Parameters};
@@ -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{set as t,squaredDistance as e}from"../../../../core/libs/gl-matrix-2/math/vec2.js";import{create as r}from"../../../../core/libs/gl-matrix-2/factories/vec2f64.js";import{newLayout as s}from"../../support/buffer/InterleavedLayout.js";import{ShaderOutput as i}from"../core/shaderLibrary/ShaderOutput.js";import o from"../lib/GLMaterial.js";import{Material as a}from"../lib/Material.js";import{RenderSlot as n}from"../lib/RenderSlot.js";import{VertexAttribute as u}from"../lib/VertexAttribute.js";import{writePosition as l,writeBufferFloat as c}from"./internal/bufferWriterUtils.js";import{HeatmapDensityPassParameters as f,HeatmapDensityTechnique as m}from"../shaders/HeatmapDensityTechnique.js";import{HeatmapDensityTechniqueConfiguration as p}from"../shaders/HeatmapDensityTechniqueConfiguration.js";const h=2;class T extends f{constructor(){super(...arguments),this.isAttributeDriven=!1,this.usesHalfFloats=!1}}class d extends a{constructor(t){super(t,T),this.produces=new Map([[n.DRAPED_MATERIAL,t=>t===i.Color]]),this._configuration=new p}getConfiguration(){return this._configuration.isAttributeDriven=this.parameters.isAttributeDriven,this._configuration.usesHalfFloat=this.parameters.usesHalfFloats,this._configuration}get visible(){return!0}createGLMaterial(t){return new g(t)}intersect(){}intersectDraped(r,s,i,o,a,n){const l=r.attributes.get(u.POSITION),{parameters:c}=this,{searchRadius:f}=c,{screenToWorldRatio:m}=r,p=f*m+h*m,T=p*p,d=l.data.length/l.size;for(let u=0;u<d;u++){const r=u*l.size,s=t(j,l.data[r],l.data[r+1]);e(s,o)<T&&a(n.dist,n.normal,-1,!1)}}createBufferWriter(){return new b(this.parameters.isAttributeDriven?I:A)}}class g extends o{beginSlot(t){return this.acquireTechnique(m,t)}}class b{constructor(t){this.vertexBufferLayout=t}elementCount(t){return t.get(u.POSITION).indices.length*v}write(t,e,r,s,i,o){l(r.get(u.POSITION),t,i.position,o,v);const a=r.get(u.POSITION).indices.length,n=i.uv0;let f=o;for(let u=0;u<a;++u)n.setValues(f++,-1,-1),n.setValues(f++,1,-1),n.setValues(f++,1,1),n.setValues(f++,1,1),n.setValues(f++,-1,1),n.setValues(f++,-1,-1);const m=u.FEATUREATTRIBUTE in i?i.featureAttribute:null;m&&c(r.get(u.FEATUREATTRIBUTE),m,o,v)}}const A=s().vec3f(u.POSITION).vec2f(u.UV0),I=A.clone().f32(u.FEATUREATTRIBUTE),v=6,j=r();export{d as HeatmapDensityMaterial,T as Parameters};
5
+ import{set as t,squaredDistance as e}from"../../../../core/libs/gl-matrix-2/math/vec2.js";import{create as r}from"../../../../core/libs/gl-matrix-2/factories/vec2f64.js";import{newLayout as s}from"../../support/buffer/InterleavedLayout.js";import{ShaderOutput as i}from"../core/shaderLibrary/ShaderOutput.js";import o from"../lib/GLMaterial.js";import{Material as a}from"../lib/Material.js";import{RenderSlot as n}from"../lib/RenderSlot.js";import{VertexAttribute as u}from"../lib/VertexAttribute.js";import{writePosition as l,writeBufferFloat as c}from"./internal/bufferWriterUtils.js";import{HeatmapDensityPassParameters as f,HeatmapDensityTechnique as m}from"../shaders/HeatmapDensityTechnique.js";import{HeatmapDensityTechniqueConfiguration as p}from"../shaders/HeatmapDensityTechniqueConfiguration.js";const h=2;class T extends f{constructor(){super(...arguments),this.isAttributeDriven=!1,this.usesHalfFloats=!1}}class g extends a{constructor(t){super(t,T),this.produces=new Map([[n.DRAPED_MATERIAL,t=>t===i.Color]]),this._configuration=new p}getConfiguration(){return this._configuration.isAttributeDriven=this.parameters.isAttributeDriven,this._configuration.usesHalfFloat=this.parameters.usesHalfFloats,this._configuration}get visible(){return!0}createGLMaterial(t){return new d(t)}intersect(){}intersectDraped(r,s,i,o,a,n){const l=r.attributes.get(u.POSITION),{parameters:c}=this,{searchRadius:f}=c,{screenToWorldRatio:m}=r,p=f*m+h*m,T=p*p,g=l.data.length/l.size;for(let u=0;u<g;u++){const r=u*l.size,s=t(j,l.data[r],l.data[r+1]);e(s,o)<T&&a(n.dist,n.normal,-1,!1)}}createBufferWriter(){return new b(this.parameters.isAttributeDriven?I:A)}}class d extends o{beginSlot(t){return this.getTechnique(m,t)}}class b{constructor(t){this.vertexBufferLayout=t}elementCount(t){return t.get(u.POSITION).indices.length*v}write(t,e,r,s,i,o){l(r.get(u.POSITION),t,i.position,o,v);const a=r.get(u.POSITION).indices.length,n=i.uv0;let f=o;for(let u=0;u<a;++u)n.setValues(f++,-1,-1),n.setValues(f++,1,-1),n.setValues(f++,1,1),n.setValues(f++,1,1),n.setValues(f++,-1,1),n.setValues(f++,-1,-1);const m=u.FEATUREATTRIBUTE in i?i.featureAttribute:null;m&&c(r.get(u.FEATUREATTRIBUTE),m,o,v)}}const A=s().vec3f(u.POSITION).vec2f(u.UV0),I=A.clone().f32(u.FEATUREATTRIBUTE),v=6,j=r();export{g as HeatmapDensityMaterial,T as Parameters};
@@ -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{BufferViewFloat as e}from"../../../../geometry/support/buffer/BufferView.js";import{isHighlightOrOID as t,isColor as r}from"../core/shaderLibrary/ShaderOutput.js";import{CullFaceOptions as i}from"../lib/basicInterfaces.js";import{GLTextureMaterial as s}from"../lib/GLTextureMaterial.js";import{MaterialParameters as a}from"../lib/Material.js";import{OITPolygonOffsetLimit as o}from"../lib/OrderIndependentTransparency.js";import{RenderSlot as n}from"../lib/RenderSlot.js";import{assert as u}from"../lib/Util.js";import{VertexAttribute as c}from"../lib/VertexAttribute.js";import{DefaultBufferWriter as l}from"./DefaultBufferWriter.js";import{PositionUVLayout as p}from"./DefaultLayouts.js";import{TriangleMaterial as h}from"./TriangleMaterial.js";import{writeBufferFloat as f,writeDefaultAttribute as m}from"./internal/bufferWriterUtils.js";import{vertexAttributeLocations as T,ImageMaterialTechnique as g}from"../shaders/ImageMaterialTechnique.js";import{ImageMaterialTechniqueConfiguration as d}from"../shaders/ImageMaterialTechniqueConfiguration.js";class I extends h{constructor(e){super(e,b),this._configuration=new d,this.vertexAttributeLocations=T,this.supportsEdges=!0,this.produces=new Map([[n.OPAQUE_MATERIAL,e=>t(e)],[n.TRANSPARENT_MATERIAL,e=>r(e)&&this.parameters.writeDepth],[n.TRANSPARENT_MATERIAL_WITHOUT_DEPTH,e=>r(e)&&!this.parameters.writeDepth],[n.DRAPED_MATERIAL,e=>r(e)||t(e)]])}getConfiguration(e,t){return this._configuration.output=e,this._configuration.cullFace=this.parameters.cullFace,this._configuration.hasSlicePlane=this.parameters.hasSlicePlane,this._configuration.writeDepth=this.parameters.writeDepth,this._configuration.hasOccludees=t.hasOccludees,this._configuration.oitPass=t.oitPass,this._configuration.enableOffset=t.camera.relativeElevation<o,this._configuration.terrainDepthTest=t.terrainDepthTest,this._configuration.cullAboveTerrain=t.cullAboveTerrain,this._configuration.perspectiveInterpolation=this.parameters.perspectiveInterpolation,this._configuration}get visible(){return!0}createGLMaterial(e){return new _(e)}createBufferWriter(){const e=p.clone();return this.parameters.perspectiveInterpolation&&e.f32(c.PERSPECTIVEDIVIDE),new E(e)}}class _ extends s{constructor(e){super({...e,...e.material.parameters})}beginSlot(e){return this.updateTexture(this._material.parameters.textureId),this._material.setParameters(this.textureBindParameters),this.acquireTechnique(g,e)}}class E extends l{write(t,r,i,s,a,o){for(const n of this.vertexBufferLayout.fields.keys()){const s=i.get(n);if(s)if(n===c.PERSPECTIVEDIVIDE){u(1===s.size);const t=a.getField(n,e);t&&f(s,t,o)}else m(n,s,t,r,a,o)}}}class b extends a{constructor(){super(...arguments),this.writeDepth=!0,this.hasSlicePlane=!1,this.cullFace=i.None,this.opacity=1,this.textureId=null,this.initTextureTransparent=!0,this.perspectiveInterpolation=!1}}export{I as ImageMaterial,b as Parameters};
5
+ import{BufferViewFloat as e}from"../../../../geometry/support/buffer/BufferView.js";import{isHighlightOrOID as t,isColor as r}from"../core/shaderLibrary/ShaderOutput.js";import{CullFaceOptions as i}from"../lib/basicInterfaces.js";import{GLTextureMaterial as s}from"../lib/GLTextureMaterial.js";import{MaterialParameters as a}from"../lib/Material.js";import{OITPolygonOffsetLimit as o}from"../lib/OrderIndependentTransparency.js";import{RenderSlot as n}from"../lib/RenderSlot.js";import{assert as u}from"../lib/Util.js";import{VertexAttribute as l}from"../lib/VertexAttribute.js";import{DefaultBufferWriter as p}from"./DefaultBufferWriter.js";import{PositionUVLayout as c}from"./DefaultLayouts.js";import{TriangleMaterial as h}from"./TriangleMaterial.js";import{writeBufferFloat as f,writeDefaultAttribute as m}from"./internal/bufferWriterUtils.js";import{vertexAttributeLocations as T,ImageMaterialTechnique as g}from"../shaders/ImageMaterialTechnique.js";import{ImageMaterialTechniqueConfiguration as d}from"../shaders/ImageMaterialTechniqueConfiguration.js";class I extends h{constructor(e){super(e,b),this._configuration=new d,this.vertexAttributeLocations=T,this.supportsEdges=!0,this.produces=new Map([[n.OPAQUE_MATERIAL,e=>t(e)],[n.TRANSPARENT_MATERIAL,e=>r(e)&&this.parameters.writeDepth],[n.TRANSPARENT_MATERIAL_WITHOUT_DEPTH,e=>r(e)&&!this.parameters.writeDepth],[n.DRAPED_MATERIAL,e=>r(e)||t(e)]])}getConfiguration(e,t){return this._configuration.output=e,this._configuration.cullFace=this.parameters.cullFace,this._configuration.hasSlicePlane=this.parameters.hasSlicePlane,this._configuration.writeDepth=this.parameters.writeDepth,this._configuration.hasOccludees=t.hasOccludees,this._configuration.oitPass=t.oitPass,this._configuration.enableOffset=t.camera.relativeElevation<o,this._configuration.terrainDepthTest=t.terrainDepthTest,this._configuration.cullAboveTerrain=t.cullAboveTerrain,this._configuration.perspectiveInterpolation=this.parameters.perspectiveInterpolation,this._configuration}get visible(){return!0}createGLMaterial(e){return new _(e)}createBufferWriter(){const e=c.clone();return this.parameters.perspectiveInterpolation&&e.f32(l.PERSPECTIVEDIVIDE),new E(e)}}class _ extends s{constructor(e){super({...e,...e.material.parameters})}beginSlot(e){return this.updateTexture(this._material.parameters.textureId),this._material.setParameters(this.textureBindParameters),this.getTechnique(g,e)}}class E extends p{write(t,r,i,s,a,o){for(const n of this.vertexBufferLayout.fields.keys()){const s=i.get(n);if(s)if(n===l.PERSPECTIVEDIVIDE){u(1===s.size);const t=a.getField(n,e);t&&f(s,t,o)}else m(n,s,t,r,a,o)}}}class b extends a{constructor(){super(...arguments),this.writeDepth=!0,this.hasSlicePlane=!1,this.cullFace=i.None,this.opacity=1,this.textureId=null,this.initTextureTransparent=!0,this.perspectiveInterpolation=!1}}export{I as ImageMaterial,b as Parameters};
@@ -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{safeToString as e}from"../../../../core/string.js";import{fromValues as t}from"../../../../core/libs/gl-matrix-2/factories/vec2f32.js";import{fromValues as r}from"../../../../core/libs/gl-matrix-2/factories/vec4f64.js";import{newLayout as i}from"../../support/buffer/InterleavedLayout.js";import{isColorOrColorEmission as s}from"../core/shaderLibrary/ShaderOutput.js";import{alphaCutoff as n}from"../core/shaderLibrary/util/AlphaCutoff.js";import o from"../lib/GLMaterial.js";import{Material as a,MaterialParameters as c}from"../lib/Material.js";import{RenderSlot as l}from"../lib/RenderSlot.js";import{VertexAttribute as f}from"../lib/VertexAttribute.js";import{writePosition as h,writeNormal as u,writeBufferVec4 as m}from"./internal/bufferWriterUtils.js";import{LineCalloutTechnique as p}from"../shaders/LineCalloutTechnique.js";import{LineCalloutTechniqueConfiguration as d}from"../shaders/LineCalloutTechniqueConfiguration.js";class g extends a{constructor(e,t){super(e,T),this.produces=new Map([[l.LINE_CALLOUTS,e=>s(e)],[l.LINE_CALLOUTS_HUD_DEPTH,e=>s(e)]]),this._configuration=new d(t),this._uniqueMaterialIdentifier=O(this.parameters)}passParameters(){return this.parameters}getConfiguration(e,t){const r=t.slot===l.LINE_CALLOUTS_HUD_DEPTH;return this._configuration.occlusionTestEnabled=this.parameters.occlusionTest,this._configuration.hasVerticalOffset=null!=this.parameters.verticalOffset,this._configuration.hasScreenSizePerspective=null!=this.parameters.screenSizePerspective,this._configuration.hudDepth=r,this._configuration.hudDepthAlignStart=!!this.parameters.hudDepthAlignStart,this._configuration.screenCenterOffsetUnitsEnabled="screen"===this.parameters.centerOffsetUnits,this._configuration.hasSlicePlane=this.parameters.hasSlicePlane,this._configuration.terrainDepthTest=t.terrainDepthTest,this._configuration}get visible(){return this.parameters.color[3]>=n||(this.parameters.borderColor?.[3]??0)>=n}intersect(){}createGLMaterial(e){return new S(e)}createBufferWriter(){return new b}validateParameters(e){this._uniqueMaterialIdentifier=O(e)}get uniqueMaterialIdentifier(){return this._uniqueMaterialIdentifier}}function O({renderOccluded:t,isDecoration:r,horizontalScreenOffset:i,color:s,size:n,occlusionTest:o,shaderPolygonOffset:a,hudDepthAlignStart:c,centerOffsetUnits:l,hasSlicePlane:f,screenSizePerspective:h,verticalOffset:u,borderColor:m}){return e`${t}:${r}:${i}:[${s}]:${n}:${o}:${a}:${c}:${l}:${f}:${null!=h}:{${u.screenLength}:${u.minWorldLength}:${u.maxWorldLength}}:[${m}]`}class S extends o{beginSlot(e){return this.acquireTechnique(p,e)}}class T extends c{constructor(){super(...arguments),this.horizontalScreenOffset=0,this.color=r(0,0,0,1),this.size=1,this.occlusionTest=!1,this.shaderPolygonOffset=1e-5,this.hudDepthAlignStart=!1,this.centerOffsetUnits="world",this.hasSlicePlane=!1}}const L=i().vec3f(f.POSITION).vec3f(f.NORMAL).vec2f(f.UV0).vec4f(f.CENTEROFFSETANDDISTANCE),_=[t(0,0),t(1,0),t(0,1),t(1,0),t(1,1),t(0,1)];class b{constructor(){this.vertexBufferLayout=L}elementCount(e){return 6*e.get(f.POSITION).indices.length}write(e,t,r,i,s,n){h(r.get(f.POSITION),e,s.position,n,6),u(r.get(f.NORMAL),t,s.normal,n,6),m(r.get(f.CENTEROFFSETANDDISTANCE),s.centerOffsetAndDistance,n,6);for(let o=0;o<_.length;++o)s.uv0.setVec(n+o,_[o])}}export{g as LineCalloutMaterial,T as Parameters,O as uniqueMaterialIdentifier};
5
+ import{safeToString as e}from"../../../../core/string.js";import{fromValues as t}from"../../../../core/libs/gl-matrix-2/factories/vec2f32.js";import{fromValues as r}from"../../../../core/libs/gl-matrix-2/factories/vec4f64.js";import{newLayout as i}from"../../support/buffer/InterleavedLayout.js";import{isColorOrColorEmission as s}from"../core/shaderLibrary/ShaderOutput.js";import{alphaCutoff as n}from"../core/shaderLibrary/util/AlphaCutoff.js";import o from"../lib/GLMaterial.js";import{Material as a,MaterialParameters as c}from"../lib/Material.js";import{RenderSlot as l}from"../lib/RenderSlot.js";import{VertexAttribute as f}from"../lib/VertexAttribute.js";import{writePosition as h,writeNormal as u,writeBufferVec4 as m}from"./internal/bufferWriterUtils.js";import{LineCalloutTechnique as p}from"../shaders/LineCalloutTechnique.js";import{LineCalloutTechniqueConfiguration as d}from"../shaders/LineCalloutTechniqueConfiguration.js";class g extends a{constructor(e,t){super(e,T),this.produces=new Map([[l.LINE_CALLOUTS,e=>s(e)],[l.LINE_CALLOUTS_HUD_DEPTH,e=>s(e)]]),this._configuration=new d(t),this._uniqueMaterialIdentifier=O(this.parameters)}passParameters(){return this.parameters}getConfiguration(e,t){const r=t.slot===l.LINE_CALLOUTS_HUD_DEPTH;return this._configuration.occlusionTestEnabled=this.parameters.occlusionTest,this._configuration.hasVerticalOffset=null!=this.parameters.verticalOffset,this._configuration.hasScreenSizePerspective=null!=this.parameters.screenSizePerspective,this._configuration.hudDepth=r,this._configuration.hudDepthAlignStart=!!this.parameters.hudDepthAlignStart,this._configuration.screenCenterOffsetUnitsEnabled="screen"===this.parameters.centerOffsetUnits,this._configuration.hasSlicePlane=this.parameters.hasSlicePlane,this._configuration.terrainDepthTest=t.terrainDepthTest,this._configuration}get visible(){return this.parameters.color[3]>=n||(this.parameters.borderColor?.[3]??0)>=n}intersect(){}createGLMaterial(e){return new S(e)}createBufferWriter(){return new b}validateParameters(e){this._uniqueMaterialIdentifier=O(e)}get uniqueMaterialIdentifier(){return this._uniqueMaterialIdentifier}}function O({renderOccluded:t,isDecoration:r,horizontalScreenOffset:i,color:s,size:n,occlusionTest:o,shaderPolygonOffset:a,hudDepthAlignStart:c,centerOffsetUnits:l,hasSlicePlane:f,screenSizePerspective:h,verticalOffset:u,borderColor:m}){return e`${t}:${r}:${i}:[${s}]:${n}:${o}:${a}:${c}:${l}:${f}:${null!=h}:{${u.screenLength}:${u.minWorldLength}:${u.maxWorldLength}}:[${m}]`}class S extends o{beginSlot(e){return this.getTechnique(p,e)}}class T extends c{constructor(){super(...arguments),this.horizontalScreenOffset=0,this.color=r(0,0,0,1),this.size=1,this.occlusionTest=!1,this.shaderPolygonOffset=1e-5,this.hudDepthAlignStart=!1,this.centerOffsetUnits="world",this.hasSlicePlane=!1}}const L=i().vec3f(f.POSITION).vec3f(f.NORMAL).vec2f(f.UV0).vec4f(f.CENTEROFFSETANDDISTANCE),_=[t(0,0),t(1,0),t(0,1),t(1,0),t(1,1),t(0,1)];class b{constructor(){this.vertexBufferLayout=L}elementCount(e){return 6*e.get(f.POSITION).indices.length}write(e,t,r,i,s,n){h(r.get(f.POSITION),e,s.position,n,6),u(r.get(f.NORMAL),t,s.normal,n,6),m(r.get(f.CENTEROFFSETANDDISTANCE),s.centerOffsetAndDistance,n,6);for(let o=0;o<_.length;++o)s.uv0.setVec(n+o,_[o])}}export{g as LineCalloutMaterial,T as Parameters,O as uniqueMaterialIdentifier};
@@ -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{i as e,I as t,t as r}from"../../../../chunks/vec32.js";import{create as i}from"../../../../core/libs/gl-matrix-2/factories/vec3f64.js";import{newLayout as a}from"../../support/buffer/InterleavedLayout.js";import{ShaderOutput as s,isColor as n,isDepth as o,isColorHighlightOrDepth as h,isColorOrColorEmission as c}from"../core/shaderLibrary/ShaderOutput.js";import{alphaCutoff as m}from"../core/shaderLibrary/util/AlphaCutoff.js";import{GLTextureMaterial as p}from"../lib/GLTextureMaterial.js";import{Material as l,RenderOccludedFlag as u}from"../lib/Material.js";import{RenderSlot as T}from"../lib/RenderSlot.js";import{VertexAttribute as d}from"../lib/VertexAttribute.js";import{VisualVariablePassParameters as f}from"./VisualVariablePassParameters.js";import{vertexAttributeLocations as A,LineMarkerTechnique as _}from"../shaders/LineMarkerTechnique.js";import{LineMarkerTechniqueConfiguration as v,LineMarkerSpace as E,LineMarkerAnchor as O}from"../shaders/LineMarkerTechniqueConfiguration.js";import{CapType as g}from"../shaders/RibbonLineTechniqueConfiguration.js";class S extends l{constructor(e){super(e,I),this._configuration=new v,this.vertexAttributeLocations=A,this.produces=new Map([[T.OPAQUE_MATERIAL,e=>e===s.Highlight||n(e)&&this.parameters.renderOccluded===u.OccludeAndTransparentStencil],[T.OPAQUE_MATERIAL_WITHOUT_NORMALS,e=>o(e)],[T.OCCLUDER_MATERIAL,e=>h(e)&&this.parameters.renderOccluded===u.OccludeAndTransparentStencil],[T.TRANSPARENT_OCCLUDER_MATERIAL,e=>h(e)&&this.parameters.renderOccluded===u.OccludeAndTransparentStencil],[T.TRANSPARENT_MATERIAL,e=>n(e)&&this.parameters.writeDepth],[T.TRANSPARENT_MATERIAL_WITHOUT_DEPTH,e=>n(e)&&!this.parameters.writeDepth],[T.DRAPED_MATERIAL,e=>c(e)||e===s.Highlight]]),this._layout=this.createLayout()}getConfiguration(e,t){return this._configuration.output=e,this._configuration.space=t.slot===T.DRAPED_MATERIAL?E.Draped:this.parameters.worldSpace?E.World:E.Screen,this._configuration.hideOnShortSegments=this.parameters.hideOnShortSegments,this._configuration.hasCap=this.parameters.cap!==g.BUTT,this._configuration.anchor=this.parameters.anchor,this._configuration.hasTip=this.parameters.hasTip,this._configuration.hasSlicePlane=this.parameters.hasSlicePlane,this._configuration.hasOccludees=t.hasOccludees,this._configuration.writeDepth=this.parameters.writeDepth,this._configuration.vvSize=!!this.parameters.vvSize,this._configuration.vvColor=!!this.parameters.vvColor,this._configuration.vvOpacity=!!this.parameters.vvOpacity,this._configuration.occluder=this.parameters.renderOccluded===u.OccludeAndTransparentStencil,this._configuration.oitPass=t.oitPass,this._configuration.terrainDepthTest=t.terrainDepthTest&&c(e),this._configuration.cullAboveTerrain=t.cullAboveTerrain,this._configuration}get visible(){return this.parameters.color[3]>=m}intersect(){}createLayout(){const e=a().vec3f(d.POSITION).vec3f(d.PREVPOSITION).vec2f(d.UV0);return this.parameters.worldSpace&&e.vec3f(d.NORMAL),this.parameters.vvSize?e.f32(d.SIZEFEATUREATTRIBUTE):e.f32(d.SIZE),this.parameters.vvColor?e.f32(d.COLORFEATUREATTRIBUTE):e.vec4f(d.COLOR),this.parameters.vvOpacity&&e.f32(d.OPACITYFEATUREATTRIBUTE),e}createBufferWriter(){return new P(this._layout,this.parameters)}createGLMaterial(e){return new R(e)}}class R extends p{constructor(){super(...arguments),this._markerPrimitive=null}dispose(){super.dispose(),this._markerTextures.release(this._markerPrimitive),this._markerPrimitive=null}beginSlot(e){const t=this._material.parameters.markerPrimitive;return t!==this._markerPrimitive&&(this._material.setParameters({markerTexture:this._markerTextures.swap(t,this._markerPrimitive)}),this._markerPrimitive=t),this._material.setParameters(this.textureBindParameters),this.acquireTechnique(_,e)}}class I extends f{constructor(){super(...arguments),this.width=0,this.color=[1,1,1,1],this.markerPrimitive="arrow",this.placement="end",this.cap=g.BUTT,this.anchor=O.Center,this.hasTip=!1,this.worldSpace=!1,this.hideOnShortSegments=!1,this.writeDepth=!0,this.hasSlicePlane=!1,this.vvFastUpdate=!1,this.markerTexture=null}}class P{constructor(e,t){this.vertexBufferLayout=e,this._parameters=t}elementCount(){return"begin-end"===this._parameters.placement?12:6}write(i,a,s,n,o,h){const c=s.get(d.POSITION).data,m=c.length/3;let p=[1,0,0];const l=s.get(d.NORMAL);this._parameters.worldSpace&&null!=l&&(p=l.data);let u=1,T=0;this._parameters.vvSize?T=s.get(d.SIZEFEATUREATTRIBUTE).data[0]:s.has(d.SIZE)&&(u=s.get(d.SIZE).data[0]);let f=[1,1,1,1],A=0;this._parameters.vvColor?A=s.get(d.COLORFEATUREATTRIBUTE).data[0]:s.has(d.COLOR)&&(f=s.get(d.COLOR).data);let _=0;this._parameters.vvOpacity&&(_=s.get(d.OPACITYFEATUREATTRIBUTE).data[0]);const v=new Float32Array(o.buffer);let E=h*(this.vertexBufferLayout.stride/4);const O=(e,t,r,i)=>{if(v[E++]=e[0],v[E++]=e[1],v[E++]=e[2],v[E++]=t[0],v[E++]=t[1],v[E++]=t[2],v[E++]=r[0],v[E++]=r[1],this._parameters.worldSpace&&(v[E++]=p[0],v[E++]=p[1],v[E++]=p[2]),this._parameters.vvSize?v[E++]=T:v[E++]=u,this._parameters.vvColor)v[E++]=A;else{const e=Math.min(4*i,f.length-4);v[E++]=f[e],v[E++]=f[e+1],v[E++]=f[e+2],v[E++]=f[e+3]}this._parameters.vvOpacity&&(v[E++]=_)};let g;!function(e){e[e.ASCENDING=1]="ASCENDING",e[e.DESCENDING=-1]="DESCENDING"}(g||(g={}));const S=(a,s)=>{const n=e(L,c[3*a],c[3*a+1],c[3*a+2]),o=C;let h=a+s;do{e(o,c[3*h],c[3*h+1],c[3*h+2]),h+=s}while(t(n,o)&&h>=0&&h<m);i&&(r(n,n,i),r(o,o,i)),O(n,o,[-1,-1],a),O(n,o,[1,-1],a),O(n,o,[1,1],a),O(n,o,[-1,-1],a),O(n,o,[1,1],a),O(n,o,[-1,1],a)},R=this._parameters.placement;"begin"!==R&&"begin-end"!==R||S(0,g.ASCENDING),"end"!==R&&"begin-end"!==R||S(m-1,g.DESCENDING)}}const L=i(),C=i();export{S as LineMarkerMaterial,I as Parameters};
5
+ import{i as e,I as t,t as r}from"../../../../chunks/vec32.js";import{create as i}from"../../../../core/libs/gl-matrix-2/factories/vec3f64.js";import{newLayout as a}from"../../support/buffer/InterleavedLayout.js";import{ShaderOutput as s,isColor as n,isDepth as o,isColorHighlightOrDepth as h,isColorOrColorEmission as c}from"../core/shaderLibrary/ShaderOutput.js";import{alphaCutoff as m}from"../core/shaderLibrary/util/AlphaCutoff.js";import{GLTextureMaterial as p}from"../lib/GLTextureMaterial.js";import{Material as l,RenderOccludedFlag as u}from"../lib/Material.js";import{RenderSlot as T}from"../lib/RenderSlot.js";import{VertexAttribute as d}from"../lib/VertexAttribute.js";import{VisualVariablePassParameters as f}from"./VisualVariablePassParameters.js";import{vertexAttributeLocations as A,LineMarkerTechnique as _}from"../shaders/LineMarkerTechnique.js";import{LineMarkerTechniqueConfiguration as v,LineMarkerSpace as E,LineMarkerAnchor as g}from"../shaders/LineMarkerTechniqueConfiguration.js";import{CapType as O}from"../shaders/RibbonLineTechniqueConfiguration.js";class S extends l{constructor(e){super(e,I),this._configuration=new v,this.vertexAttributeLocations=A,this.produces=new Map([[T.OPAQUE_MATERIAL,e=>e===s.Highlight||n(e)&&this.parameters.renderOccluded===u.OccludeAndTransparentStencil],[T.OPAQUE_MATERIAL_WITHOUT_NORMALS,e=>o(e)],[T.OCCLUDER_MATERIAL,e=>h(e)&&this.parameters.renderOccluded===u.OccludeAndTransparentStencil],[T.TRANSPARENT_OCCLUDER_MATERIAL,e=>h(e)&&this.parameters.renderOccluded===u.OccludeAndTransparentStencil],[T.TRANSPARENT_MATERIAL,e=>n(e)&&this.parameters.writeDepth],[T.TRANSPARENT_MATERIAL_WITHOUT_DEPTH,e=>n(e)&&!this.parameters.writeDepth],[T.DRAPED_MATERIAL,e=>c(e)||e===s.Highlight]]),this._layout=this.createLayout()}getConfiguration(e,t){return this._configuration.output=e,this._configuration.space=t.slot===T.DRAPED_MATERIAL?E.Draped:this.parameters.worldSpace?E.World:E.Screen,this._configuration.hideOnShortSegments=this.parameters.hideOnShortSegments,this._configuration.hasCap=this.parameters.cap!==O.BUTT,this._configuration.anchor=this.parameters.anchor,this._configuration.hasTip=this.parameters.hasTip,this._configuration.hasSlicePlane=this.parameters.hasSlicePlane,this._configuration.hasOccludees=t.hasOccludees,this._configuration.writeDepth=this.parameters.writeDepth,this._configuration.vvSize=!!this.parameters.vvSize,this._configuration.vvColor=!!this.parameters.vvColor,this._configuration.vvOpacity=!!this.parameters.vvOpacity,this._configuration.occluder=this.parameters.renderOccluded===u.OccludeAndTransparentStencil,this._configuration.oitPass=t.oitPass,this._configuration.terrainDepthTest=t.terrainDepthTest&&c(e),this._configuration.cullAboveTerrain=t.cullAboveTerrain,this._configuration}get visible(){return this.parameters.color[3]>=m}intersect(){}createLayout(){const e=a().vec3f(d.POSITION).vec3f(d.PREVPOSITION).vec2f(d.UV0);return this.parameters.worldSpace&&e.vec3f(d.NORMAL),this.parameters.vvSize?e.f32(d.SIZEFEATUREATTRIBUTE):e.f32(d.SIZE),this.parameters.vvColor?e.f32(d.COLORFEATUREATTRIBUTE):e.vec4f(d.COLOR),this.parameters.vvOpacity&&e.f32(d.OPACITYFEATUREATTRIBUTE),e}createBufferWriter(){return new P(this._layout,this.parameters)}createGLMaterial(e){return new R(e)}}class R extends p{constructor(){super(...arguments),this._markerPrimitive=null}dispose(){super.dispose(),this._markerTextures.release(this._markerPrimitive),this._markerPrimitive=null}beginSlot(e){const t=this._material.parameters.markerPrimitive;return t!==this._markerPrimitive&&(this._material.setParameters({markerTexture:this._markerTextures.swap(t,this._markerPrimitive)}),this._markerPrimitive=t),this._material.setParameters(this.textureBindParameters),this.getTechnique(_,e)}}class I extends f{constructor(){super(...arguments),this.width=0,this.color=[1,1,1,1],this.markerPrimitive="arrow",this.placement="end",this.cap=O.BUTT,this.anchor=g.Center,this.hasTip=!1,this.worldSpace=!1,this.hideOnShortSegments=!1,this.writeDepth=!0,this.hasSlicePlane=!1,this.vvFastUpdate=!1,this.markerTexture=null}}class P{constructor(e,t){this.vertexBufferLayout=e,this._parameters=t}elementCount(){return"begin-end"===this._parameters.placement?12:6}write(i,a,s,n,o,h){const c=s.get(d.POSITION).data,m=c.length/3;let p=[1,0,0];const l=s.get(d.NORMAL);this._parameters.worldSpace&&null!=l&&(p=l.data);let u=1,T=0;this._parameters.vvSize?T=s.get(d.SIZEFEATUREATTRIBUTE).data[0]:s.has(d.SIZE)&&(u=s.get(d.SIZE).data[0]);let f=[1,1,1,1],A=0;this._parameters.vvColor?A=s.get(d.COLORFEATUREATTRIBUTE).data[0]:s.has(d.COLOR)&&(f=s.get(d.COLOR).data);let _=0;this._parameters.vvOpacity&&(_=s.get(d.OPACITYFEATUREATTRIBUTE).data[0]);const v=new Float32Array(o.buffer);let E=h*(this.vertexBufferLayout.stride/4);const g=(e,t,r,i)=>{if(v[E++]=e[0],v[E++]=e[1],v[E++]=e[2],v[E++]=t[0],v[E++]=t[1],v[E++]=t[2],v[E++]=r[0],v[E++]=r[1],this._parameters.worldSpace&&(v[E++]=p[0],v[E++]=p[1],v[E++]=p[2]),this._parameters.vvSize?v[E++]=T:v[E++]=u,this._parameters.vvColor)v[E++]=A;else{const e=Math.min(4*i,f.length-4);v[E++]=f[e],v[E++]=f[e+1],v[E++]=f[e+2],v[E++]=f[e+3]}this._parameters.vvOpacity&&(v[E++]=_)};let O;!function(e){e[e.ASCENDING=1]="ASCENDING",e[e.DESCENDING=-1]="DESCENDING"}(O||(O={}));const S=(a,s)=>{const n=e(L,c[3*a],c[3*a+1],c[3*a+2]),o=C;let h=a+s;do{e(o,c[3*h],c[3*h+1],c[3*h+2]),h+=s}while(t(n,o)&&h>=0&&h<m);i&&(r(n,n,i),r(o,o,i)),g(n,o,[-1,-1],a),g(n,o,[1,-1],a),g(n,o,[1,1],a),g(n,o,[-1,-1],a),g(n,o,[1,1],a),g(n,o,[-1,1],a)},R=this._parameters.placement;"begin"!==R&&"begin-end"!==R||S(0,O.ASCENDING),"end"!==R&&"begin-end"!==R||S(m-1,O.DESCENDING)}}const L=i(),C=i();export{S as LineMarkerMaterial,I as Parameters};
@@ -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{i as t,n as e,d as r,e as s,j as o,t as i}from"../../../../chunks/vec32.js";import{create as n}from"../../../../core/libs/gl-matrix-2/factories/vec3f64.js";import{fromValues as a}from"../../../../core/libs/gl-matrix-2/factories/vec4f64.js";import{newLayout as c}from"../../support/buffer/InterleavedLayout.js";import{isColorOrColorEmission as l}from"../core/shaderLibrary/ShaderOutput.js";import{alphaCutoff as u}from"../core/shaderLibrary/util/AlphaCutoff.js";import f from"../lib/GLMaterial.js";import{Material as p,MaterialParameters as h}from"../lib/Material.js";import{RenderSlot as m}from"../lib/RenderSlot.js";import{VertexAttribute as d}from"../lib/VertexAttribute.js";import{vertexAttributeLocations as g,MeasurementArrowTechnique as O}from"../shaders/MeasurementArrowTechnique.js";import{MeasurementArrowTechniqueConfiguration as A}from"../shaders/MeasurementArrowTechniqueConfiguration.js";class b extends p{constructor(t){super(t,T),this._configuration=new A,this.vertexAttributeLocations=g,this.produces=new Map([[m.OPAQUE_MATERIAL,t=>!this._transparent&&l(t)],[m.TRANSPARENT_MATERIAL_WITHOUT_DEPTH,t=>this._transparent&&l(t)]])}getConfiguration(t,e){return this._configuration.polygonOffsetEnabled=this.parameters.polygonOffset,this._configuration.transparent=this._transparent,this._configuration.oitPass=e.oitPass,this._configuration}get visible(){const{outlineColor:t,stripeEvenColor:e,stripeOddColor:r}=this.parameters;return t[3]>=u||e[3]>=u||r[3]>=u}intersect(){}createGLMaterial(t){return new v(t)}createBufferWriter(){return new E}get _transparent(){const{parameters:t}=this;return t.outlineColor[3]<1||t.stripeEvenColor[3]<1||t.stripeOddColor[3]<1}}class v extends f{beginSlot(t){return this.acquireTechnique(O,t)}}class T extends h{constructor(){super(...arguments),this.width=32,this.outlineSize=.2,this.outlineColor=a(1,.5,0,1),this.stripeEvenColor=a(1,1,1,1),this.stripeOddColor=a(1,.5,0,1),this.stripeLength=1,this.polygonOffset=!1}}const j=c().vec3f(d.POSITION).vec3f(d.NORMAL).vec2f(d.UV0).f32(d.LENGTH),C=n(),L=n(),_=n(),M=n(),w=n();class E{constructor(){this.vertexBufferLayout=j}elementCount(t){return 2*(t.get(d.POSITION).indices.length/2+1)}write(n,a,c,l,u,f){const{data:p,indices:h}=c.get(d.POSITION),m=c.get(d.NORMAL).data,g=p.length/3;h&&h.length!==2*(g-1)&&console.warn("MeasurementArrowMaterial does not support indices");const O=C,A=L,b=_,v=M,T=w,j=u.position,E=u.normal,I=u.uv0;let x=0;for(let d=0;d<g;++d){const c=3*d;if(t(O,p[c],p[c+1],p[c+2]),d<g-1){const o=3*(d+1);t(A,p[o],p[o+1],p[o+2]),t(T,m[o],m[o+1],m[o+2]),e(T,T),r(b,A,O),e(b,b),s(v,T,b),e(v,v)}const l=o(O,A);n&&a&&(i(O,O,n),i(A,A,n),i(v,v,a));const u=f+2*d,h=u+1;j.setVec(u,O),j.setVec(h,O),E.setVec(u,v),E.setVec(h,v),I.set(u,0,x),I.set(u,1,-1),I.set(h,0,x),I.set(h,1,1),d<g-1&&(x+=l)}const N=u.length;for(let t=0;t<2*g;++t)N.set(f+t,x)}}export{b as MeasurementArrowMaterial,T as Parameters};
5
+ import{i as t,n as e,d as r,e as s,j as o,t as i}from"../../../../chunks/vec32.js";import{create as n}from"../../../../core/libs/gl-matrix-2/factories/vec3f64.js";import{fromValues as a}from"../../../../core/libs/gl-matrix-2/factories/vec4f64.js";import{newLayout as c}from"../../support/buffer/InterleavedLayout.js";import{isColorOrColorEmission as l}from"../core/shaderLibrary/ShaderOutput.js";import{alphaCutoff as u}from"../core/shaderLibrary/util/AlphaCutoff.js";import f from"../lib/GLMaterial.js";import{Material as p,MaterialParameters as h}from"../lib/Material.js";import{RenderSlot as m}from"../lib/RenderSlot.js";import{VertexAttribute as d}from"../lib/VertexAttribute.js";import{vertexAttributeLocations as g,MeasurementArrowTechnique as O}from"../shaders/MeasurementArrowTechnique.js";import{MeasurementArrowTechniqueConfiguration as A}from"../shaders/MeasurementArrowTechniqueConfiguration.js";class b extends p{constructor(t){super(t,T),this._configuration=new A,this.vertexAttributeLocations=g,this.produces=new Map([[m.OPAQUE_MATERIAL,t=>!this._transparent&&l(t)],[m.TRANSPARENT_MATERIAL_WITHOUT_DEPTH,t=>this._transparent&&l(t)]])}getConfiguration(t,e){return this._configuration.polygonOffsetEnabled=this.parameters.polygonOffset,this._configuration.transparent=this._transparent,this._configuration.oitPass=e.oitPass,this._configuration}get visible(){const{outlineColor:t,stripeEvenColor:e,stripeOddColor:r}=this.parameters;return t[3]>=u||e[3]>=u||r[3]>=u}intersect(){}createGLMaterial(t){return new v(t)}createBufferWriter(){return new E}get _transparent(){const{parameters:t}=this;return t.outlineColor[3]<1||t.stripeEvenColor[3]<1||t.stripeOddColor[3]<1}}class v extends f{beginSlot(t){return this.getTechnique(O,t)}}class T extends h{constructor(){super(...arguments),this.width=32,this.outlineSize=.2,this.outlineColor=a(1,.5,0,1),this.stripeEvenColor=a(1,1,1,1),this.stripeOddColor=a(1,.5,0,1),this.stripeLength=1,this.polygonOffset=!1}}const j=c().vec3f(d.POSITION).vec3f(d.NORMAL).vec2f(d.UV0).f32(d.LENGTH),C=n(),L=n(),_=n(),M=n(),w=n();class E{constructor(){this.vertexBufferLayout=j}elementCount(t){return 2*(t.get(d.POSITION).indices.length/2+1)}write(n,a,c,l,u,f){const{data:p,indices:h}=c.get(d.POSITION),m=c.get(d.NORMAL).data,g=p.length/3;h&&h.length!==2*(g-1)&&console.warn("MeasurementArrowMaterial does not support indices");const O=C,A=L,b=_,v=M,T=w,j=u.position,E=u.normal,I=u.uv0;let x=0;for(let d=0;d<g;++d){const c=3*d;if(t(O,p[c],p[c+1],p[c+2]),d<g-1){const o=3*(d+1);t(A,p[o],p[o+1],p[o+2]),t(T,m[o],m[o+1],m[o+2]),e(T,T),r(b,A,O),e(b,b),s(v,T,b),e(v,v)}const l=o(O,A);n&&a&&(i(O,O,n),i(A,A,n),i(v,v,a));const u=f+2*d,h=u+1;j.setVec(u,O),j.setVec(h,O),E.setVec(u,v),E.setVec(h,v),I.set(u,0,x),I.set(u,1,-1),I.set(h,0,x),I.set(h,1,1),d<g-1&&(x+=l)}const N=u.length;for(let t=0;t<2*g;++t)N.set(f+t,x)}}export{b as MeasurementArrowMaterial,T as Parameters};
@@ -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{clamp as r}from"../../../../core/mathUtils.js";import{createRenderScreenPointArray3 as t}from"../../../../core/screenUtils.js";import{copy as o}from"../../../../core/libs/gl-matrix-2/math/vec2.js";import{i as s,d as i,f as a,h as n,g as c,c as m,l,j as u}from"../../../../chunks/vec32.js";import{create as f}from"../../../../core/libs/gl-matrix-2/factories/vec3f64.js";import{ONES as p}from"../../../../core/libs/gl-matrix-2/factories/vec4f64.js";import{PlaneIndex as h}from"../../../../geometry/support/frustum.js";import{create as g,distance2 as d,fromPoints as j,closestLineSegmentPoint as b}from"../../../../geometry/support/lineSegment.js";import{create as A,fromPoints as S,signedDistance as L,getNormal as x}from"../../../../geometry/support/plane.js";import{isColorHighlightOrOID as y}from"../core/shaderLibrary/ShaderOutput.js";import{alphaCutoff as N}from"../core/shaderLibrary/util/AlphaCutoff.js";import R from"../lib/GLMaterial.js";import{Material as v,MaterialParameters as E}from"../lib/Material.js";import{RenderSlot as M}from"../lib/RenderSlot.js";import{isTranslationMatrix as T}from"../lib/Util.js";import{VertexAttribute as _}from"../lib/VertexAttribute.js";import{DefaultBufferWriter as w}from"./DefaultBufferWriter.js";import{PositionColorLayout as O,PositionLayout as V}from"./DefaultLayouts.js";import{NativeLineTechnique as C}from"../shaders/NativeLineTechnique.js";import{NativeLineTechniqueConfiguration as P}from"../shaders/NativeLineTechniqueConfiguration.js";class U extends v{constructor(e){super(e,q),this._configuration=new P,this.produces=new Map([[M.OPAQUE_MATERIAL,e=>y(e)]])}getConfiguration(e,r){return this._configuration.output=e,this._configuration.hasSlicePlane=this.parameters.hasSlicePlane,this._configuration.hasVertexColors=this.parameters.hasVertexColors,this._configuration.transparent=this.parameters.color[3]<1||this.parameters.width<1,this._configuration.hasOccludees=r.hasOccludees,this._configuration}get visible(){return this.parameters.color[3]>=N}intersect(r,t,f,p,g,A){if(!f.options.selectionMode||!r.visible)return;if(!T(t))return void e.getLogger("esri.views.3d.webgl-engine.materials.NativeLineMaterial").error("intersection assumes a translation-only matrix");const y=r.attributes.get(_.POSITION).data,N=f.camera,R=H;o(R,f.point);const v=2;s(J[0],R[0]-v,R[1]+v,0),s(J[1],R[0]+v,R[1]+v,0),s(J[2],R[0]+v,R[1]-v,0),s(J[3],R[0]-v,R[1]-v,0);for(let e=0;e<4;e++)if(!N.unprojectFromRenderScreen(J[e],K[e]))return;S(N.eye,K[0],K[1],Y),S(N.eye,K[1],K[2],$),S(N.eye,K[2],K[3],ee),S(N.eye,K[3],K[0],re);let E=Number.MAX_VALUE,M=0;for(let e=0;e<y.length-5;e+=3){if(B[0]=y[e]+t[12],B[1]=y[e+1]+t[13],B[2]=y[e+2]+t[14],D[0]=y[e+3]+t[12],D[1]=y[e+4]+t[13],D[2]=y[e+5]+t[14],L(Y,B)<0&&L(Y,D)<0||L($,B)<0&&L($,D)<0||L(ee,B)<0&&L(ee,D)<0||L(re,B)<0&&L(re,D)<0)continue;if(N.projectToRenderScreen(B,G),N.projectToRenderScreen(D,k),G[2]<0&&k[2]>0){i(W,B,D);const e=N.frustum,r=-L(e[h.NEAR],B)/a(W,x(e[h.NEAR]));n(W,W,r),c(B,B,W),N.projectToRenderScreen(B,G)}else if(G[2]>0&&k[2]<0){i(W,D,B);const e=N.frustum,r=-L(e[h.NEAR],D)/a(W,x(e[h.NEAR]));n(W,W,r),c(D,D,W),N.projectToRenderScreen(D,k)}else if(G[2]<0&&k[2]<0)continue;G[2]=0,k[2]=0;const r=d(j(G,k,Z),R);r<E&&(E=r,m(F,B),m(Q,D),M=e/3)}const w=f.rayBegin,O=f.rayEnd;if(E<v*v){let e=Number.MAX_VALUE;if(b(j(F,Q,Z),j(w,O,z),X)){i(X,X,w);const r=l(X);n(X,X,1/r),e=r/u(w,O)}A(e,X,M,!1)}}intersectDraped(e,t,o,s,i,a){if(!o.options.selectionMode)return;const n=e.attributes.get(_.POSITION).data,c=e.attributes.get(_.SIZE),m=c?c.data[0]:0,l=s[0],u=s[1],f=((m+1)/2+4)*e.screenToWorldRatio;let p=Number.MAX_VALUE,h=0;for(let g=0;g<n.length-5;g+=3){const e=n[g],t=n[g+1],o=l-e,s=u-t,i=n[g+3]-e,a=n[g+4]-t,c=r((i*o+a*s)/(i*i+a*a),0,1),m=i*c-o,f=a*c-s,d=m*m+f*f;d<p&&(p=d,h=g/3)}p<f*f&&i(a.dist,a.normal,h,!1)}createGLMaterial(e){return new I(e)}createBufferWriter(){const e=this.parameters.hasVertexColors?O:V;return new w(e)}}class I extends R{beginSlot(e){return this.acquireTechnique(C,e)}}class q extends E{constructor(){super(...arguments),this.color=p,this.hasVertexColors=!1,this.hasSlicePlane=!1,this.width=1}}const B=f(),D=f(),W=f(),X=f(),G=t(),k=t(),F=f(),Q=f(),Z=g(),z=g(),H=f(),J=[t(),t(),t(),t()],K=[f(),f(),f(),f()],Y=A(),$=A(),ee=A(),re=A();export{U as NativeLineMaterial,q as Parameters};
5
+ import e from"../../../../core/Logger.js";import{clamp as r}from"../../../../core/mathUtils.js";import{createRenderScreenPointArray3 as t}from"../../../../core/screenUtils.js";import{copy as o}from"../../../../core/libs/gl-matrix-2/math/vec2.js";import{i as s,d as i,f as a,h as n,g as c,c as m,l,j as f}from"../../../../chunks/vec32.js";import{create as u}from"../../../../core/libs/gl-matrix-2/factories/vec3f64.js";import{ONES as p}from"../../../../core/libs/gl-matrix-2/factories/vec4f64.js";import{PlaneIndex as h}from"../../../../geometry/support/frustum.js";import{create as g,distance2 as d,fromPoints as j,closestLineSegmentPoint as b}from"../../../../geometry/support/lineSegment.js";import{create as A,fromPoints as S,signedDistance as L,getNormal as x}from"../../../../geometry/support/plane.js";import{isColorHighlightOrOID as y}from"../core/shaderLibrary/ShaderOutput.js";import{alphaCutoff as N}from"../core/shaderLibrary/util/AlphaCutoff.js";import R from"../lib/GLMaterial.js";import{Material as v,MaterialParameters as E}from"../lib/Material.js";import{RenderSlot as M}from"../lib/RenderSlot.js";import{isTranslationMatrix as T}from"../lib/Util.js";import{VertexAttribute as _}from"../lib/VertexAttribute.js";import{DefaultBufferWriter as w}from"./DefaultBufferWriter.js";import{PositionColorLayout as O,PositionLayout as V}from"./DefaultLayouts.js";import{NativeLineTechnique as C}from"../shaders/NativeLineTechnique.js";import{NativeLineTechniqueConfiguration as P}from"../shaders/NativeLineTechniqueConfiguration.js";class U extends v{constructor(e){super(e,q),this._configuration=new P,this.produces=new Map([[M.OPAQUE_MATERIAL,e=>y(e)]])}getConfiguration(e,r){return this._configuration.output=e,this._configuration.hasSlicePlane=this.parameters.hasSlicePlane,this._configuration.hasVertexColors=this.parameters.hasVertexColors,this._configuration.transparent=this.parameters.color[3]<1||this.parameters.width<1,this._configuration.hasOccludees=r.hasOccludees,this._configuration}get visible(){return this.parameters.color[3]>=N}intersect(r,t,u,p,g,A){if(!u.options.selectionMode||!r.visible)return;if(!T(t))return void e.getLogger("esri.views.3d.webgl-engine.materials.NativeLineMaterial").error("intersection assumes a translation-only matrix");const y=r.attributes.get(_.POSITION).data,N=u.camera,R=H;o(R,u.point);const v=2;s(J[0],R[0]-v,R[1]+v,0),s(J[1],R[0]+v,R[1]+v,0),s(J[2],R[0]+v,R[1]-v,0),s(J[3],R[0]-v,R[1]-v,0);for(let e=0;e<4;e++)if(!N.unprojectFromRenderScreen(J[e],K[e]))return;S(N.eye,K[0],K[1],Y),S(N.eye,K[1],K[2],$),S(N.eye,K[2],K[3],ee),S(N.eye,K[3],K[0],re);let E=Number.MAX_VALUE,M=0;for(let e=0;e<y.length-5;e+=3){if(B[0]=y[e]+t[12],B[1]=y[e+1]+t[13],B[2]=y[e+2]+t[14],D[0]=y[e+3]+t[12],D[1]=y[e+4]+t[13],D[2]=y[e+5]+t[14],L(Y,B)<0&&L(Y,D)<0||L($,B)<0&&L($,D)<0||L(ee,B)<0&&L(ee,D)<0||L(re,B)<0&&L(re,D)<0)continue;if(N.projectToRenderScreen(B,G),N.projectToRenderScreen(D,k),G[2]<0&&k[2]>0){i(W,B,D);const e=N.frustum,r=-L(e[h.NEAR],B)/a(W,x(e[h.NEAR]));n(W,W,r),c(B,B,W),N.projectToRenderScreen(B,G)}else if(G[2]>0&&k[2]<0){i(W,D,B);const e=N.frustum,r=-L(e[h.NEAR],D)/a(W,x(e[h.NEAR]));n(W,W,r),c(D,D,W),N.projectToRenderScreen(D,k)}else if(G[2]<0&&k[2]<0)continue;G[2]=0,k[2]=0;const r=d(j(G,k,Z),R);r<E&&(E=r,m(F,B),m(Q,D),M=e/3)}const w=u.rayBegin,O=u.rayEnd;if(E<v*v){let e=Number.MAX_VALUE;if(b(j(F,Q,Z),j(w,O,z),X)){i(X,X,w);const r=l(X);n(X,X,1/r),e=r/f(w,O)}A(e,X,M,!1)}}intersectDraped(e,t,o,s,i,a){if(!o.options.selectionMode)return;const n=e.attributes.get(_.POSITION).data,c=e.attributes.get(_.SIZE),m=c?c.data[0]:0,l=s[0],f=s[1],u=((m+1)/2+4)*e.screenToWorldRatio;let p=Number.MAX_VALUE,h=0;for(let g=0;g<n.length-5;g+=3){const e=n[g],t=n[g+1],o=l-e,s=f-t,i=n[g+3]-e,a=n[g+4]-t,c=r((i*o+a*s)/(i*i+a*a),0,1),m=i*c-o,u=a*c-s,d=m*m+u*u;d<p&&(p=d,h=g/3)}p<u*u&&i(a.dist,a.normal,h,!1)}createGLMaterial(e){return new I(e)}createBufferWriter(){const e=this.parameters.hasVertexColors?O:V;return new w(e)}}class I extends R{beginSlot(e){return this.getTechnique(C,e)}}class q extends E{constructor(){super(...arguments),this.color=p,this.hasVertexColors=!1,this.hasSlicePlane=!1,this.width=1}}const B=u(),D=u(),W=u(),X=u(),G=t(),k=t(),F=u(),Q=u(),Z=g(),z=g(),H=u(),J=[t(),t(),t(),t()],K=[u(),u(),u(),u()],Y=A(),$=A(),ee=A(),re=A();export{U as NativeLineMaterial,q as Parameters};
@@ -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{clamp as e}from"../../../../core/mathUtils.js";import{p as t}from"../../../../chunks/vec32.js";import{ZEROS as r}from"../../../../core/libs/gl-matrix-2/factories/vec3f64.js";import{fromValues as i}from"../../../../geometry/support/aaBoundingBox.js";import{newLayout as s}from"../../support/buffer/InterleavedLayout.js";import{isShadowRelatedOutput as a,is3DGeometryOutputMRT as o,isColorOrColorEmission as n,ShaderOutput as c}from"../core/shaderLibrary/ShaderOutput.js";import{EmissionSource as h}from"../core/shaderLibrary/output/Emissions.glsl.js";import{NormalsDoubleSidedMode as u}from"../core/shaderLibrary/shading/Normals.glsl.js";import{PBRMode as m}from"../core/shaderLibrary/shading/PhysicallyBasedRenderingParameters.glsl.js";import{alphaCutoff as p}from"../core/shaderLibrary/util/AlphaCutoff.js";import{olidEnabled as l}from"../effects/geometry/olidUtils.js";import f from"../lib/GLMaterial.js";import{Material as d}from"../lib/Material.js";import{isPathGeometry as b}from"../lib/PathGeometry.js";import{MeshIntersectionOptions as g,intersectAabbInvDir as v}from"../lib/RayIntersections.js";import{RenderSlot as S}from"../lib/RenderSlot.js";import{VertexAttribute as _}from"../lib/VertexAttribute.js";import{DefaultBufferWriter as A}from"./DefaultBufferWriter.js";import{vertexAttributeLocations as P,PathTechnique as R,PathPassParameters as j}from"./PathTechnique.js";import{PathTechniqueConfiguration as y}from"./PathTechniqueConfiguration.js";class L extends d{constructor(e,t){super(e,M),this._vertexBufferLayout=O(),this.vertexAttributeLocations=P,this.supportsEdges=!0,this.produces=new Map([[S.OPAQUE_MATERIAL,e=>(this.parameters.castShadows&&a(e)||o(e))&&!this.parameters.transparent],[S.TRANSPARENT_MATERIAL,e=>(this.parameters.castShadows&&a(e)||o(e))&&this.parameters.transparent]]),this._configuration=new y(t.spherical,t.doublePrecisionRequiresObfuscation)}get hasEmissions(){return!t(this.parameters.emissiveFactor,r)}getConfiguration(e,t){return this._configuration.output=e,this._configuration.vvSize=!!this.parameters.vvSize,this._configuration.vvColor=!!this.parameters.vvColor,this._configuration.vvOpacity=!!this.parameters.vvOpacity,this._configuration.hasSlicePlane=this.parameters.hasSlicePlane,this._configuration.transparent=this.parameters.transparent,this._configuration.hasOccludees=t.hasOccludees,n(e)?(this._configuration.doubleSidedMode=this.parameters.doubleSided&&"normal"===this.parameters.doubleSidedType?u.View:this.parameters.doubleSided&&"winding-order"===this.parameters.doubleSidedType?u.WindingOrder:u.None,this._configuration.receiveShadows=t.shadowMap.enabled,this._configuration.receiveAmbientOcclusion=null!=t.ssao):this._configuration.receiveShadows=this._configuration.receiveAmbientOcclusion=!1,this._configuration.pbrMode=this.parameters.usePBR?m.Schematic:m.Disabled,this._configuration.emissionSource=this.parameters.usePBR?h.Value:h.None,this._configuration.oitPass=t.oitPass,this._configuration.terrainDepthTest=t.terrainDepthTest,this._configuration.cullAboveTerrain=t.cullAboveTerrain,this._configuration}isVisibleForOutput(e){return e!==c.Shadow&&e!==c.ShadowExcludeHighlight&&e!==c.ShadowHighlight||this.parameters.castShadows}get visible(){return this.parameters.opacity>=p}intersect(t,r,s,a,o,n){const c=t;if(!b(c))return;const h=c.path,u=[this.parameters.size[0],this.parameters.size[1]];if(this.parameters.vvSize){const{offset:t,factor:r,minSize:i,maxSize:s}=this.parameters.vvSize,a=h.sizeAttributeValue;u[0]*=e(t[0]+a*r[0],i[0],s[0]),u[1]*=e(t[2]+a*r[2],i[2],s[2])}const m=new g(!1,s.options.normalRequired),p=Math.max(u[0],u[1]),l=t.boundingInfo;if(null==l)return void E(h,u,a,o,m,n);const f=i(l.bbMin[0]-p,l.bbMin[1]-p,l.bbMin[2]-p,l.bbMax[0]+p,l.bbMax[1]+p,l.bbMax[2]+p),d=[o[0]-a[0],o[1]-a[1],o[2]-a[2]],S=Math.sqrt(d[0]*d[0]+d[1]*d[1]+d[2]*d[2]),_=[S/d[0],S/d[1],S/d[2]];v(f,a,_,s.tolerance)&&E(h,u,a,o,m,n)}createBufferWriter(){return new A(this._vertexBufferLayout)}createGLMaterial(e){return new T(e)}}function O(){const e=s().vec3f(_.POSITION).vec4f(_.PROFILERIGHT).vec4f(_.PROFILEUP).vec4f(_.PROFILEVERTEXANDNORMAL).vec4f(_.FEATUREVALUE);return l()&&e.vec4u8(_.OBJECTANDLAYERIDCOLOR),e}class T extends f{beginSlot(e){return this.acquireTechnique(R,e)}}function E(e,t,r,i,s,a){e.baked.size&&e.baked.size[0]===t[0]&&e.baked.size[1]===t[1]||e.baked.bake(t),e.baked.intersect(r,i,s,a)}class M extends j{constructor(){super(...arguments),this.doubleSided=!1,this.doubleSidedType="normal",this.castShadows=!0,this.hasSlicePlane=!1,this.transparent=!1,this.usePBR=!1}}export{M as Parameters,L as PathMaterial};
5
+ import{clamp as e}from"../../../../core/mathUtils.js";import{p as t}from"../../../../chunks/vec32.js";import{ZEROS as r}from"../../../../core/libs/gl-matrix-2/factories/vec3f64.js";import{fromValues as i}from"../../../../geometry/support/aaBoundingBox.js";import{newLayout as s}from"../../support/buffer/InterleavedLayout.js";import{isShadowRelatedOutput as a,is3DGeometryOutputMRT as o,isColorOrColorEmission as n,ShaderOutput as h}from"../core/shaderLibrary/ShaderOutput.js";import{EmissionSource as c}from"../core/shaderLibrary/output/Emissions.glsl.js";import{NormalsDoubleSidedMode as u}from"../core/shaderLibrary/shading/Normals.glsl.js";import{PBRMode as m}from"../core/shaderLibrary/shading/PhysicallyBasedRenderingParameters.glsl.js";import{alphaCutoff as p}from"../core/shaderLibrary/util/AlphaCutoff.js";import{olidEnabled as l}from"../effects/geometry/olidUtils.js";import f from"../lib/GLMaterial.js";import{Material as d}from"../lib/Material.js";import{isPathGeometry as b}from"../lib/PathGeometry.js";import{MeshIntersectionOptions as g,intersectAabbInvDir as v}from"../lib/RayIntersections.js";import{RenderSlot as S}from"../lib/RenderSlot.js";import{VertexAttribute as _}from"../lib/VertexAttribute.js";import{DefaultBufferWriter as A}from"./DefaultBufferWriter.js";import{vertexAttributeLocations as P,PathTechnique as R,PathPassParameters as j}from"./PathTechnique.js";import{PathTechniqueConfiguration as y}from"./PathTechniqueConfiguration.js";class L extends d{constructor(e,t){super(e,M),this._vertexBufferLayout=O(),this.vertexAttributeLocations=P,this.supportsEdges=!0,this.produces=new Map([[S.OPAQUE_MATERIAL,e=>(this.parameters.castShadows&&a(e)||o(e))&&!this.parameters.transparent],[S.TRANSPARENT_MATERIAL,e=>(this.parameters.castShadows&&a(e)||o(e))&&this.parameters.transparent]]),this._configuration=new y(t.spherical,t.doublePrecisionRequiresObfuscation)}get hasEmissions(){return!t(this.parameters.emissiveFactor,r)}getConfiguration(e,t){return this._configuration.output=e,this._configuration.vvSize=!!this.parameters.vvSize,this._configuration.vvColor=!!this.parameters.vvColor,this._configuration.vvOpacity=!!this.parameters.vvOpacity,this._configuration.hasSlicePlane=this.parameters.hasSlicePlane,this._configuration.transparent=this.parameters.transparent,this._configuration.hasOccludees=t.hasOccludees,n(e)?(this._configuration.doubleSidedMode=this.parameters.doubleSided&&"normal"===this.parameters.doubleSidedType?u.View:this.parameters.doubleSided&&"winding-order"===this.parameters.doubleSidedType?u.WindingOrder:u.None,this._configuration.receiveShadows=t.shadowMap.enabled,this._configuration.receiveAmbientOcclusion=null!=t.ssao):this._configuration.receiveShadows=this._configuration.receiveAmbientOcclusion=!1,this._configuration.pbrMode=this.parameters.usePBR?m.Schematic:m.Disabled,this._configuration.emissionSource=this.parameters.usePBR?c.Value:c.None,this._configuration.oitPass=t.oitPass,this._configuration.terrainDepthTest=t.terrainDepthTest,this._configuration.cullAboveTerrain=t.cullAboveTerrain,this._configuration}isVisibleForOutput(e){return e!==h.Shadow&&e!==h.ShadowExcludeHighlight&&e!==h.ShadowHighlight||this.parameters.castShadows}get visible(){return this.parameters.opacity>=p}intersect(t,r,s,a,o,n){const h=t;if(!b(h))return;const c=h.path,u=[this.parameters.size[0],this.parameters.size[1]];if(this.parameters.vvSize){const{offset:t,factor:r,minSize:i,maxSize:s}=this.parameters.vvSize,a=c.sizeAttributeValue;u[0]*=e(t[0]+a*r[0],i[0],s[0]),u[1]*=e(t[2]+a*r[2],i[2],s[2])}const m=new g(!1,s.options.normalRequired),p=Math.max(u[0],u[1]),l=t.boundingInfo;if(null==l)return void E(c,u,a,o,m,n);const f=i(l.bbMin[0]-p,l.bbMin[1]-p,l.bbMin[2]-p,l.bbMax[0]+p,l.bbMax[1]+p,l.bbMax[2]+p),d=[o[0]-a[0],o[1]-a[1],o[2]-a[2]],S=Math.sqrt(d[0]*d[0]+d[1]*d[1]+d[2]*d[2]),_=[S/d[0],S/d[1],S/d[2]];v(f,a,_,s.tolerance)&&E(c,u,a,o,m,n)}createBufferWriter(){return new A(this._vertexBufferLayout)}createGLMaterial(e){return new T(e)}}function O(){const e=s().vec3f(_.POSITION).vec4f(_.PROFILERIGHT).vec4f(_.PROFILEUP).vec4f(_.PROFILEVERTEXANDNORMAL).vec4f(_.FEATUREVALUE);return l()&&e.vec4u8(_.OBJECTANDLAYERIDCOLOR),e}class T extends f{beginSlot(e){return this.getTechnique(R,e)}}function E(e,t,r,i,s,a){e.baked.size&&e.baked.size[0]===t[0]&&e.baked.size[1]===t[1]||e.baked.bake(t),e.baked.intersect(r,i,s,a)}class M extends j{constructor(){super(...arguments),this.doubleSided=!1,this.doubleSidedType="normal",this.castShadows=!0,this.hasSlicePlane=!1,this.transparent=!1,this.usePBR=!1}}export{M as Parameters,L as PathMaterial};
@@ -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{freeze as e,create as r,ZEROS as t}from"../../../../core/libs/gl-matrix-2/factories/vec3f64.js";import{isColorOrColorEmission as s,ShaderOutput as i}from"../core/shaderLibrary/ShaderOutput.js";import{PathVertexPositionPassParameters as l}from"../core/shaderLibrary/attributes/PathVertexPosition.glsl.js";import{NormalsDoubleSidedMode as o}from"../core/shaderLibrary/shading/Normals.glsl.js";import{ReloadableShaderModule as n}from"../core/shaderTechnique/ReloadableShaderModule.js";import{ShaderTechnique as a}from"../core/shaderTechnique/ShaderTechnique.js";import{OITPass as u}from"../lib/OITPass.js";import{blending as m,oitDepthTest as c,getDrawBuffers as h,OITPolygonOffset as p}from"../lib/OrderIndependentTransparency.js";import{stencilWriteMaskOn as d,stencilBaseAllZerosParams as f}from"../lib/StencilUtils.js";import{VertexAttribute as b}from"../lib/VertexAttribute.js";import{advancedMRRFactors as O}from"./pbrUtils.js";import{P as j}from"../../../../chunks/Path.glsl.js";import{SpecialDrawBuffers as P}from"../../../webgl/enums.js";import{makePipelineState as g,frontFaceCullingParams as E,defaultDepthWrite as T,defaultColorWrite as x}from"../../../webgl/renderState.js";class N extends l{constructor(){super(...arguments),this.ambient=e(.2,.2,.2),this.diffuse=e(.8,.8,.8),this.specular=e(0,0,0),this.opacity=1,this.origin=r(),this.modelTransformation=null,this.mrrFactors=O,this.emissiveFactor=t,this.texture=null,this.textureNormal=null,this.textureEmissive=null,this.textureOcclusion=null,this.textureMetallicRoughness=null}}class R extends a{constructor(e,r,t){super(e,r,new n(j,(()=>import("../shaders/Path.glsl.js"))),t,L)}initializePipeline(e){const{output:r,transparent:t,hasSlicePlane:l,doubleSidedMode:n,hasOccludees:a,oitPass:b}=e,O=b===u.NONE,j=b===u.FrontFace;return g({blending:s(r)&&t?m(b):null,culling:l&&!t&&n!==o.None?E:null,depthTest:{func:c(b)},depthWrite:O||j?T:null,drawBuffers:r===i.Depth?{buffers:[P.NONE]}:h(b,r),colorWrite:x,stencilWrite:a?d:null,stencilTest:a?f:null,polygonOffset:O||j?null:p})}}const L=new Map([[b.POSITION,0],[b.PROFILERIGHT,1],[b.PROFILEUP,2],[b.PROFILEVERTEXANDNORMAL,3],[b.FEATUREVALUE,4],[b.OBJECTANDLAYERIDCOLOR,5]]);export{N as PathPassParameters,R as PathTechnique,L as vertexAttributeLocations};
5
+ import{freeze as e,create as r,ZEROS as t}from"../../../../core/libs/gl-matrix-2/factories/vec3f64.js";import{isColorOrColorEmission as s,ShaderOutput as i}from"../core/shaderLibrary/ShaderOutput.js";import{PathVertexPositionPassParameters as l}from"../core/shaderLibrary/attributes/PathVertexPosition.glsl.js";import{NormalsDoubleSidedMode as o}from"../core/shaderLibrary/shading/Normals.glsl.js";import{ReloadableShaderModule as n}from"../core/shaderTechnique/ReloadableShaderModule.js";import{ShaderTechnique as a}from"../core/shaderTechnique/ShaderTechnique.js";import{OITPass as u}from"../lib/OITPass.js";import{blending as m,oitDepthTest as c,getDrawBuffers as h,OITPolygonOffset as p}from"../lib/OrderIndependentTransparency.js";import{stencilWriteMaskOn as d,stencilBaseAllZerosParams as f}from"../lib/StencilUtils.js";import{VertexAttribute as b}from"../lib/VertexAttribute.js";import{advancedMRRFactors as O}from"./pbrUtils.js";import{P as j}from"../../../../chunks/Path.glsl.js";import{SpecialDrawBuffers as P}from"../../../webgl/enums.js";import{makePipelineState as g,frontFaceCullingParams as E,defaultDepthWrite as T,defaultColorWrite as x}from"../../../webgl/renderState.js";class N extends l{constructor(){super(...arguments),this.ambient=e(.2,.2,.2),this.diffuse=e(.8,.8,.8),this.specular=e(0,0,0),this.opacity=1,this.origin=r(),this.modelTransformation=null,this.mrrFactors=O,this.emissiveFactor=t,this.texture=null,this.textureNormal=null,this.textureEmissive=null,this.textureOcclusion=null,this.textureMetallicRoughness=null}}class R extends a{constructor(e,r){super(e,r,new n(j,(()=>import("../shaders/Path.glsl.js"))),L)}initializePipeline(e){const{output:r,transparent:t,hasSlicePlane:l,doubleSidedMode:n,hasOccludees:a,oitPass:b}=e,O=b===u.NONE,j=b===u.FrontFace;return g({blending:s(r)&&t?m(b):null,culling:l&&!t&&n!==o.None?E:null,depthTest:{func:c(b)},depthWrite:O||j?T:null,drawBuffers:r===i.Depth?{buffers:[P.NONE]}:h(b,r),colorWrite:x,stencilWrite:a?d:null,stencilTest:a?f:null,polygonOffset:O||j?null:p})}}const L=new Map([[b.POSITION,0],[b.PROFILERIGHT,1],[b.PROFILEUP,2],[b.PROFILEVERTEXANDNORMAL,3],[b.FEATUREVALUE,4],[b.OBJECTANDLAYERIDCOLOR,5]]);export{N as PathPassParameters,R as PathTechnique,L as vertexAttributeLocations};
@@ -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{fromValues as e}from"../../../../core/libs/gl-matrix-2/factories/vec4f64.js";import{BufferViewMat3f as t,BufferViewVec4f as r}from"../../../../geometry/support/buffer/BufferView.js";import{newLayout as s}from"../../support/buffer/InterleavedLayout.js";import{isHighlightOrOID as i,isColorOrColorEmission as o,isDepth as a,isColorEmissionHighlightOrOID as n}from"../core/shaderLibrary/ShaderOutput.js";import{alphaCutoff as f}from"../core/shaderLibrary/util/AlphaCutoff.js";import{olidEnabled as c}from"../effects/geometry/olidUtils.js";import{CullFaceOptions as l}from"../lib/basicInterfaces.js";import u from"../lib/GLMaterial.js";import{OITPolygonOffsetLimit as h}from"../lib/OrderIndependentTransparency.js";import{RenderSlot as p}from"../lib/RenderSlot.js";import{assert as m}from"../lib/Util.js";import{VertexAttribute as d}from"../lib/VertexAttribute.js";import{DefaultBufferWriter as g}from"./DefaultBufferWriter.js";import{Style as A}from"./PatternStyle.js";import{TriangleMaterial as T}from"./TriangleMaterial.js";import{VisualVariablePassParameters as b}from"./VisualVariablePassParameters.js";import{writeDefaultAttributes as v,writeBufferVec4 as O}from"./internal/bufferWriterUtils.js";import{vertexAttributeLocationsOID as _,vertexAttributeLocations as j,PatternTechnique as C}from"../shaders/PatternTechnique.js";import{PatternTechniqueConfiguration as E}from"../shaders/PatternTechniqueConfiguration.js";class P extends T{constructor(e){super(e,I),this._configuration=new E,this.vertexAttributeLocations=c()?_:j,this.supportsEdges=!0,this.produces=new Map([[p.OPAQUE_MATERIAL,e=>i(e)],[p.TRANSPARENT_MATERIAL,e=>o(e)],[p.TRANSPARENT_MATERIAL_WITHOUT_NORMALS,e=>a(e)],[p.DRAPED_MATERIAL,e=>this.parameters.draped&&n(e)]])}getConfiguration(e,t){return this._configuration.output=e,this._configuration.cullFace=this.parameters.cullFace,this._configuration.hasVertexColors=this.parameters.hasVertexColors&&!this.parameters.vvColor,this._configuration.hasSlicePlane=this.parameters.hasSlicePlane,this._configuration.polygonOffset=this.parameters.polygonOffset,this._configuration.style=this.parameters.style,this._configuration.draped=this.parameters.draped,this._configuration.oitPass=t.oitPass,this._configuration.enableOffset=t.camera.relativeElevation<h,this._configuration.terrainDepthTest=t.terrainDepthTest&&o(e),this._configuration.cullAboveTerrain=t.cullAboveTerrain,this._configuration.vvColor=!!this.parameters.vvColor,this._configuration}get visible(){return this.parameters.color[3]>=f}createGLMaterial(e){return new R(e)}createBufferWriter(){const e=s().vec3f(d.POSITION).vec4f(d.UVMAPSPACE);return this.parameters.draped||e.mat3f(d.BOUNDINGRECT),this.parameters.vvColor?e.f32(d.COLORFEATUREATTRIBUTE):e.vec4u8(d.COLOR),c()&&e.vec4u8(d.OBJECTANDLAYERIDCOLOR),new y(e)}}class R extends u{beginSlot(e){return this.acquireTechnique(C,e)}}class y extends g{write(e,s,i,o,a,n){v(i,o,this.vertexBufferLayout,e,s,a,n);for(const f of this.vertexBufferLayout.fields.keys()){const s=i.get(f),o=s?.indices;if(s&&o)switch(f){case d.UVMAPSPACE:{m(4===s.size);const e=a.getField(f,r);e&&O(s,e,n);break}case d.BOUNDINGRECT:{m(9===s.size);const r=a.getField(f,t);r&&L(s,e,r,n);break}}}}}function L(e,t,r,s){const{data:i,indices:o}=e,a=t,n=r.typedBuffer,f=r.typedBufferStride,c=o.length;s*=f;for(let l=0;l<c;++l){const e=9*o[l],t=i[e],r=i[e+1],c=i[e+2];n[s]=a[0]*t+a[4]*r+a[8]*c+a[12],n[s+1]=a[1]*t+a[5]*r+a[9]*c+a[13],n[s+2]=a[2]*t+a[6]*r+a[10]*c+a[14];for(let o=3;o<9;++o)n[s+o]=i[e+o];s+=f}}class I extends b{constructor(){super(...arguments),this.color=e(1,1,1,1),this.hasVertexColors=!1,this.polygonOffset=!1,this.hasSlicePlane=!1,this.cullFace=l.None,this.hasOccludees=!1,this.style=A.Cross,this.draped=!0}}export{I as Parameters,P as PatternMaterial};
5
+ import{fromValues as t}from"../../../../core/libs/gl-matrix-2/factories/vec4f64.js";import{BufferViewMat3f as e,BufferViewVec4f as r}from"../../../../geometry/support/buffer/BufferView.js";import{newLayout as s}from"../../support/buffer/InterleavedLayout.js";import{isHighlightOrOID as i,isColorOrColorEmission as o,isDepth as a,isColorEmissionHighlightOrOID as n}from"../core/shaderLibrary/ShaderOutput.js";import{alphaCutoff as f}from"../core/shaderLibrary/util/AlphaCutoff.js";import{olidEnabled as l}from"../effects/geometry/olidUtils.js";import{CullFaceOptions as c}from"../lib/basicInterfaces.js";import u from"../lib/GLMaterial.js";import{OITPolygonOffsetLimit as h}from"../lib/OrderIndependentTransparency.js";import{RenderSlot as p}from"../lib/RenderSlot.js";import{assert as m}from"../lib/Util.js";import{VertexAttribute as d}from"../lib/VertexAttribute.js";import{DefaultBufferWriter as g}from"./DefaultBufferWriter.js";import{Style as A}from"./PatternStyle.js";import{TriangleMaterial as T}from"./TriangleMaterial.js";import{VisualVariablePassParameters as b}from"./VisualVariablePassParameters.js";import{writeDefaultAttributes as v,writeBufferVec4 as O}from"./internal/bufferWriterUtils.js";import{vertexAttributeLocationsOID as _,vertexAttributeLocations as j,PatternTechnique as C}from"../shaders/PatternTechnique.js";import{PatternTechniqueConfiguration as E}from"../shaders/PatternTechniqueConfiguration.js";class P extends T{constructor(t){super(t,I),this._configuration=new E,this.vertexAttributeLocations=l()?_:j,this.supportsEdges=!0,this.produces=new Map([[p.OPAQUE_MATERIAL,t=>i(t)],[p.TRANSPARENT_MATERIAL,t=>o(t)],[p.TRANSPARENT_MATERIAL_WITHOUT_NORMALS,t=>a(t)],[p.DRAPED_MATERIAL,t=>this.parameters.draped&&n(t)]])}getConfiguration(t,e){return this._configuration.output=t,this._configuration.cullFace=this.parameters.cullFace,this._configuration.hasVertexColors=this.parameters.hasVertexColors&&!this.parameters.vvColor,this._configuration.hasSlicePlane=this.parameters.hasSlicePlane,this._configuration.polygonOffset=this.parameters.polygonOffset,this._configuration.style=this.parameters.style,this._configuration.draped=this.parameters.draped,this._configuration.oitPass=e.oitPass,this._configuration.enableOffset=e.camera.relativeElevation<h,this._configuration.terrainDepthTest=e.terrainDepthTest&&o(t),this._configuration.cullAboveTerrain=e.cullAboveTerrain,this._configuration.vvColor=!!this.parameters.vvColor,this._configuration}get visible(){return this.parameters.color[3]>=f}createGLMaterial(t){return new R(t)}createBufferWriter(){const t=s().vec3f(d.POSITION).vec4f(d.UVMAPSPACE);return this.parameters.draped||t.mat3f(d.BOUNDINGRECT),this.parameters.vvColor?t.f32(d.COLORFEATUREATTRIBUTE):t.vec4u8(d.COLOR),l()&&t.vec4u8(d.OBJECTANDLAYERIDCOLOR),new y(t)}}class R extends u{beginSlot(t){return this.getTechnique(C,t)}}class y extends g{write(t,s,i,o,a,n){v(i,o,this.vertexBufferLayout,t,s,a,n);for(const f of this.vertexBufferLayout.fields.keys()){const s=i.get(f),o=s?.indices;if(s&&o)switch(f){case d.UVMAPSPACE:{m(4===s.size);const t=a.getField(f,r);t&&O(s,t,n);break}case d.BOUNDINGRECT:{m(9===s.size);const r=a.getField(f,e);r&&L(s,t,r,n);break}}}}}function L(t,e,r,s){const{data:i,indices:o}=t,a=e,n=r.typedBuffer,f=r.typedBufferStride,l=o.length;s*=f;for(let c=0;c<l;++c){const t=9*o[c],e=i[t],r=i[t+1],l=i[t+2];n[s]=a[0]*e+a[4]*r+a[8]*l+a[12],n[s+1]=a[1]*e+a[5]*r+a[9]*l+a[13],n[s+2]=a[2]*e+a[6]*r+a[10]*l+a[14];for(let o=3;o<9;++o)n[s+o]=i[t+o];s+=f}}class I extends b{constructor(){super(...arguments),this.color=t(1,1,1,1),this.hasVertexColors=!1,this.polygonOffset=!1,this.hasSlicePlane=!1,this.cullFace=c.None,this.hasOccludees=!1,this.style=A.Cross,this.draped=!0}}export{I as Parameters,P as PatternMaterial};
@@ -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{clamp as t}from"../../../../core/mathUtils.js";import{createRenderScreenPointArray3 as r}from"../../../../core/screenUtils.js";import{copy as i}from"../../../../core/libs/gl-matrix-2/math/vec2.js";import{i as s,d as a,f as n,h as o,g as l,c,l as p,j as h,t as u}from"../../../../chunks/vec32.js";import{create as f}from"../../../../core/libs/gl-matrix-2/factories/vec3f64.js";import{ONES as m}from"../../../../core/libs/gl-matrix-2/factories/vec4f64.js";import{PlaneIndex as T}from"../../../../geometry/support/frustum.js";import{create as d,distance2 as _,fromPoints as E,closestLineSegmentPoint as A}from"../../../../geometry/support/lineSegment.js";import{create as R,fromPoints as O,signedDistance as g,getNormal as I}from"../../../../geometry/support/plane.js";import{newLayout as S}from"../../support/buffer/InterleavedLayout.js";import{isHighlightOrOID as v,isColorOrColorEmission as P,isDepth as N,isColorEmissionHighlightOIDOrDepth as L,is2DGeometryOutput as b,ShaderOutput as C}from"../core/shaderLibrary/ShaderOutput.js";import{alphaCutoff as U}from"../core/shaderLibrary/util/AlphaCutoff.js";import{olidEnabled as y}from"../effects/geometry/olidUtils.js";import D from"../lib/GLMaterial.js";import{Material as j,RenderOccludedFlag as F}from"../lib/Material.js";import{RenderSlot as w}from"../lib/RenderSlot.js";import{isTranslationMatrix as M}from"../lib/Util.js";import{VertexAttribute as x}from"../lib/VertexAttribute.js";import{VisualVariablePassParameters as B}from"./VisualVariablePassParameters.js";import{LineMarkerAnchor as J}from"../shaders/LineMarkerTechniqueConfiguration.js";import{r as H}from"../../../../chunks/RibbonLine.glsl.js";import{vertexAttributeLocations as z,RibbonLineTechnique as G}from"../shaders/RibbonLineTechnique.js";import{RibbonLineTechniqueConfiguration as k,CapType as V}from"../shaders/RibbonLineTechniqueConfiguration.js";var Z;!function(e){e[e.LEFT_JOIN_START=-2]="LEFT_JOIN_START",e[e.LEFT_JOIN_END=-1]="LEFT_JOIN_END",e[e.LEFT_CAP_START=-4]="LEFT_CAP_START",e[e.LEFT_CAP_END=-5]="LEFT_CAP_END",e[e.RIGHT_JOIN_START=2]="RIGHT_JOIN_START",e[e.RIGHT_JOIN_END=1]="RIGHT_JOIN_END",e[e.RIGHT_CAP_START=4]="RIGHT_CAP_START",e[e.RIGHT_CAP_END=5]="RIGHT_CAP_END"}(Z||(Z={}));class W extends j{constructor(e){super(e,q),this._configuration=new k,this.vertexAttributeLocations=z,this.produces=new Map([[w.OPAQUE_MATERIAL,e=>v(e)||P(e)&&this.parameters.renderOccluded===F.OccludeAndTransparentStencil],[w.OPAQUE_MATERIAL_WITHOUT_NORMALS,e=>N(e)],[w.OCCLUDER_MATERIAL,e=>L(e)&&this.parameters.renderOccluded===F.OccludeAndTransparentStencil],[w.TRANSPARENT_OCCLUDER_MATERIAL,e=>L(e)&&this.parameters.renderOccluded===F.OccludeAndTransparentStencil],[w.TRANSPARENT_MATERIAL,e=>P(e)&&this.parameters.writeDepth&&this.parameters.renderOccluded!==F.OccludeAndTransparentStencil],[w.TRANSPARENT_MATERIAL_WITHOUT_DEPTH,e=>P(e)&&!this.parameters.writeDepth&&this.parameters.renderOccluded!==F.OccludeAndTransparentStencil],[w.DRAPED_MATERIAL,e=>b(e)]])}getConfiguration(e,t){this._configuration.output=e,this._configuration.oitPass=t.oitPass,this._configuration.draped=t.slot===w.DRAPED_MATERIAL;const r=null!=this.parameters.stipplePattern&&e!==C.Highlight;return this._configuration.stippleEnabled=r,this._configuration.stippleOffColorEnabled=r&&null!=this.parameters.stippleOffColor,this._configuration.stipplePreferContinuous=r&&this.parameters.stipplePreferContinuous,this._configuration.hasSlicePlane=this.parameters.hasSlicePlane,this._configuration.roundJoins="round"===this.parameters.join,this._configuration.capType=this.parameters.cap,this._configuration.applyMarkerOffset=null!=this.parameters.markerParameters&&$(this.parameters.markerParameters),this._configuration.hasPolygonOffset=this.parameters.hasPolygonOffset,this._configuration.writeDepth=this.parameters.writeDepth,this._configuration.vvSize=!!this.parameters.vvSize,this._configuration.vvColor=!!this.parameters.vvColor,this._configuration.vvOpacity=!!this.parameters.vvOpacity,this._configuration.innerColorEnabled=this.parameters.innerWidth>0&&null!=this.parameters.innerColor,this._configuration.falloffEnabled=this.parameters.falloff>0,this._configuration.hasOccludees=t.hasOccludees,this._configuration.occluder=this.parameters.renderOccluded===F.OccludeAndTransparentStencil,this._configuration.terrainDepthTest=t.terrainDepthTest&&P(e),this._configuration.cullAboveTerrain=t.cullAboveTerrain,this._configuration.wireframe=this.parameters.wireframe,this._configuration}get visible(){return this.parameters.color[3]>=U||null!=this.parameters.stipplePattern&&(this.parameters.stippleOffColor?.[3]??0)>U}intersectDraped({attributes:e,screenToWorldRatio:r},i,s,a,n,o){if(!s.options.selectionMode)return;const l=e.get(x.SIZE);let c=this.parameters.width;if(this.parameters.vvSize){const r=e.get(x.SIZEFEATUREATTRIBUTE).data[0];c*=t(this.parameters.vvSize.offset[0]+r*this.parameters.vvSize.factor[0],this.parameters.vvSize.minSize[0],this.parameters.vvSize.maxSize[0])}else l&&(c*=l.data[0]);const p=a[0],h=a[1],u=(c/2+4)*r;let f=Number.MAX_VALUE,m=0;const T=e.get(x.POSITION).data,d=K(this.parameters,e)?T.length-2:T.length-5;for(let _=0;_<d;_+=3){const e=T[_],r=T[_+1],i=(_+3)%T.length,s=p-e,a=h-r,n=T[i]-e,o=T[i+1]-r,l=t((n*s+o*a)/(n*n+o*o),0,1),c=n*l-s,u=o*l-a,d=c*c+u*u;d<f&&(f=d,m=_/3)}f<u*u&&n(o.dist,o.normal,m,!1)}intersect(r,u,f,m,d,R){if(!f.options.selectionMode||!r.visible)return;if(!M(u))return void e.getLogger("esri.views.3d.webgl-engine.materials.RibbonLineMaterial").error("intersection assumes a translation-only matrix");const S=r.attributes,v=S.get(x.POSITION).data;let P=this.parameters.width;if(this.parameters.vvSize){const e=S.get(x.SIZEFEATUREATTRIBUTE).data[0];P*=t(this.parameters.vvSize.offset[0]+e*this.parameters.vvSize.factor[0],this.parameters.vvSize.minSize[0],this.parameters.vvSize.maxSize[0])}else S.has(x.SIZE)&&(P*=S.get(x.SIZE).data[0]);const N=f.camera,L=se;i(L,f.point);const b=P*N.pixelRatio/2+4*N.pixelRatio;s(me[0],L[0]-b,L[1]+b,0),s(me[1],L[0]+b,L[1]+b,0),s(me[2],L[0]+b,L[1]-b,0),s(me[3],L[0]-b,L[1]-b,0);for(let e=0;e<4;e++)if(!N.unprojectFromRenderScreen(me[e],Te[e]))return;O(N.eye,Te[0],Te[1],de),O(N.eye,Te[1],Te[2],_e),O(N.eye,Te[2],Te[3],Ee),O(N.eye,Te[3],Te[0],Ae);let C=Number.MAX_VALUE,U=0;const y=K(this.parameters,S)?v.length-2:v.length-5;for(let e=0;e<y;e+=3){ee[0]=v[e]+u[12],ee[1]=v[e+1]+u[13],ee[2]=v[e+2]+u[14];const t=(e+3)%v.length;if(te[0]=v[t]+u[12],te[1]=v[t+1]+u[13],te[2]=v[t+2]+u[14],g(de,ee)<0&&g(de,te)<0||g(_e,ee)<0&&g(_e,te)<0||g(Ee,ee)<0&&g(Ee,te)<0||g(Ae,ee)<0&&g(Ae,te)<0)continue;if(N.projectToRenderScreen(ee,ae),N.projectToRenderScreen(te,ne),ae[2]<0&&ne[2]>0){a(re,ee,te);const e=N.frustum,t=-g(e[T.NEAR],ee)/n(re,I(e[T.NEAR]));o(re,re,t),l(ee,ee,re),N.projectToRenderScreen(ee,ae)}else if(ae[2]>0&&ne[2]<0){a(re,te,ee);const e=N.frustum,t=-g(e[T.NEAR],te)/n(re,I(e[T.NEAR]));o(re,re,t),l(te,te,re),N.projectToRenderScreen(te,ne)}else if(ae[2]<0&&ne[2]<0)continue;ae[2]=0,ne[2]=0;const r=_(E(ae,ne,ce),L);r<C&&(C=r,c(oe,ee),c(le,te),U=e/3)}const D=f.rayBegin,j=f.rayEnd;if(C<b*b){let e=Number.MAX_VALUE;if(A(E(oe,le,ce),E(D,j,pe),ie)){a(ie,ie,D);const t=p(ie);o(ie,ie,1/t),e=t/h(D,j)}R(e,ie,U,!1)}}get _layout(){const e=S().vec3f(x.POSITION).vec3f(x.PREVPOSITION).vec3f(x.NEXTPOSITION).f32(x.SUBDIVISIONFACTOR).vec2f(x.UV0);return this.parameters.vvSize?e.f32(x.SIZEFEATUREATTRIBUTE):e.f32(x.SIZE),this.parameters.vvColor?e.f32(x.COLORFEATUREATTRIBUTE):e.vec4f(x.COLOR),this.parameters.vvOpacity&&e.f32(x.OPACITYFEATUREATTRIBUTE),y()&&e.vec4u8(x.OBJECTANDLAYERIDCOLOR),e}createBufferWriter(){return new X(this._layout,this.parameters)}createGLMaterial(e){return new Y(e)}validateParameters(e){"miter"!==e.join&&(e.miterLimit=0),null!=e.markerParameters&&(e.markerScale=e.markerParameters.width/e.width)}}class Y extends D{constructor(){super(...arguments),this._stipplePattern=null}dispose(){super.dispose(),this._stippleTextures.release(this._stipplePattern),this._stipplePattern=null}beginSlot(e){const t=this._material.parameters.stipplePattern;return this._stipplePattern!==t&&(this._material.setParameters({stippleTexture:this._stippleTextures.swap(t,this._stipplePattern)}),this._stipplePattern=t),this.acquireTechnique(G,e)}}class q extends B{constructor(){super(...arguments),this.width=0,this.color=m,this.join="miter",this.cap=V.BUTT,this.miterLimit=5,this.writeDepth=!0,this.hasPolygonOffset=!1,this.stippleTexture=null,this.stipplePreferContinuous=!0,this.markerParameters=null,this.markerScale=1,this.hasSlicePlane=!1,this.vvFastUpdate=!1,this.isClosed=!1,this.falloff=0,this.innerWidth=0,this.wireframe=!1}get transparent(){return this.color[3]<1||null!=this.stipplePattern&&(this.stippleOffColor?.[3]??0)<1}}class X{constructor(e,t){this.vertexBufferLayout=e,this._parameters=t,this.numJoinSubdivisions=0;const r=t.stipplePattern?1:0;switch(this._parameters.join){case"miter":case"bevel":this.numJoinSubdivisions=r;break;case"round":this.numJoinSubdivisions=H+r}}_isClosed(e){return K(this._parameters,e)}allocate(e){return this.vertexBufferLayout.createBuffer(e)}elementCount(e){const t=2,r=e.get(x.POSITION).indices.length/2+1,i=this._isClosed(e);let s=i?2:2*t;return s+=((i?r:r-1)-(i?0:1))*(2*this.numJoinSubdivisions+4),s+=2,this._parameters.wireframe&&(s=2+4*(s-2)),s}write(e,t,r,i,a,n){const o=he,l=ue,p=fe,f=r.get(x.POSITION),m=f.indices,T=f.data.length/3,d=r.get(x.DISTANCETOSTART)?.data;m&&m.length!==2*(T-1)&&console.warn("RibbonLineMaterial does not support indices");const _=r.get(x.SIZEFEATUREATTRIBUTE)?.data[0]??r.get(x.SIZE)?.data[0]??1;let E=[1,1,1,1],A=0;const R=this.vertexBufferLayout.fields.has(x.COLORFEATUREATTRIBUTE);R?A=r.get(x.COLORFEATUREATTRIBUTE).data[0]:r.has(x.COLOR)&&(E=r.get(x.COLOR).data);const O=this.vertexBufferLayout.fields.has(x.OPACITYFEATUREATTRIBUTE),g=O?r.get(x.OPACITYFEATUREATTRIBUTE).data[0]:0,I=new Float32Array(a.buffer),S=y()?new Uint8Array(a.buffer):null,v=this.vertexBufferLayout.stride/4;let P=n*v;const N=P;let L=0;const b=d?(e,t,r)=>L=d[r]:(e,t,r)=>L+=h(e,t),C=(e,t,r,s,a,n,o)=>{if(I[P++]=t[0],I[P++]=t[1],I[P++]=t[2],I[P++]=e[0],I[P++]=e[1],I[P++]=e[2],I[P++]=r[0],I[P++]=r[1],I[P++]=r[2],I[P++]=s,I[P++]=o,I[P++]=a,I[P++]=_,R)I[P++]=A;else{const e=Math.min(4*n,E.length-4);I[P++]=E[e],I[P++]=E[e+1],I[P++]=E[e+2],I[P++]=E[e+3]}O&&(I[P++]=g),y()&&(i&&(S[4*P]=i[0],S[4*P+1]=i[1],S[4*P+2]=i[2],S[4*P+3]=i[3]),P++)};P+=v,s(l,f.data[0],f.data[1],f.data[2]),e&&u(l,l,e);const U=this._isClosed(r);if(U){const t=f.data.length-3;s(o,f.data[t],f.data[t+1],f.data[t+2]),e&&u(o,o,e)}else s(p,f.data[3],f.data[4],f.data[5]),e&&u(p,p,e),C(l,l,p,1,Z.LEFT_CAP_START,0,0),C(l,l,p,1,Z.RIGHT_CAP_START,0,0),c(o,l),c(l,p);const D=U?0:1,j=U?T:T-1;for(let h=D;h<j;h++){const t=(h+1)%T*3;s(p,f.data[t],f.data[t+1],f.data[t+2]),e&&u(p,p,e),b(o,l,h),C(o,l,p,0,Z.LEFT_JOIN_END,h,L),C(o,l,p,0,Z.RIGHT_JOIN_END,h,L);const r=this.numJoinSubdivisions;for(let e=0;e<r;++e){const t=(e+1)/(r+1);C(o,l,p,t,Z.LEFT_JOIN_END,h,L),C(o,l,p,t,Z.RIGHT_JOIN_END,h,L)}C(o,l,p,1,Z.LEFT_JOIN_START,h,L),C(o,l,p,1,Z.RIGHT_JOIN_START,h,L),c(o,l),c(l,p)}U?(s(p,f.data[3],f.data[4],f.data[5]),e&&u(p,p,e),L=b(o,l,j),C(o,l,p,0,Z.LEFT_JOIN_END,D,L),C(o,l,p,0,Z.RIGHT_JOIN_END,D,L)):(L=b(o,l,j),C(o,l,l,0,Z.LEFT_CAP_END,j,L),C(o,l,l,0,Z.RIGHT_CAP_END,j,L)),Q(I,N+v,I,N,v);P=Q(I,P-v,I,P,v),this._parameters.wireframe&&this._addWireframeVertices(a,N,P,v)}_addWireframeVertices(e,t,r,i){const s=new Float32Array(e.buffer,r*Float32Array.BYTES_PER_ELEMENT),a=new Float32Array(e.buffer,t*Float32Array.BYTES_PER_ELEMENT,r-t);let n=0;const o=e=>n=Q(a,e,s,n,i);for(let l=0;l<a.length-1;l+=2*i)o(l),o(l+2*i),o(l+1*i),o(l+2*i),o(l+1*i),o(l+3*i)}}function Q(e,t,r,i,s){for(let a=0;a<s;a++)r[i++]=e[t++];return i}function K(e,t){if(!e.isClosed)return!1;return t.get(x.POSITION).indices.length>2}function $(e){return e.anchor===J.Tip&&e.hideOnShortSegments&&"begin-end"===e.placement&&e.worldSpace}const ee=f(),te=f(),re=f(),ie=f(),se=f(),ae=r(),ne=r(),oe=f(),le=f(),ce=d(),pe=d(),he=f(),ue=f(),fe=f(),me=[r(),r(),r(),r()],Te=[f(),f(),f(),f()],de=R(),_e=R(),Ee=R(),Ae=R();export{q as Parameters,W as RibbonLineMaterial};
5
+ import e from"../../../../core/Logger.js";import{clamp as t}from"../../../../core/mathUtils.js";import{createRenderScreenPointArray3 as r}from"../../../../core/screenUtils.js";import{copy as i}from"../../../../core/libs/gl-matrix-2/math/vec2.js";import{i as s,d as a,f as n,h as o,g as l,c,l as p,j as h,t as f}from"../../../../chunks/vec32.js";import{create as m}from"../../../../core/libs/gl-matrix-2/factories/vec3f64.js";import{ONES as u}from"../../../../core/libs/gl-matrix-2/factories/vec4f64.js";import{PlaneIndex as T}from"../../../../geometry/support/frustum.js";import{create as d,distance2 as _,fromPoints as E,closestLineSegmentPoint as A}from"../../../../geometry/support/lineSegment.js";import{create as R,fromPoints as O,signedDistance as g,getNormal as I}from"../../../../geometry/support/plane.js";import{newLayout as S}from"../../support/buffer/InterleavedLayout.js";import{isHighlightOrOID as v,isColorOrColorEmission as P,isDepth as N,isColorEmissionHighlightOIDOrDepth as L,is2DGeometryOutput as b,ShaderOutput as C}from"../core/shaderLibrary/ShaderOutput.js";import{alphaCutoff as U}from"../core/shaderLibrary/util/AlphaCutoff.js";import{olidEnabled as y}from"../effects/geometry/olidUtils.js";import D from"../lib/GLMaterial.js";import{Material as j,RenderOccludedFlag as F}from"../lib/Material.js";import{RenderSlot as w}from"../lib/RenderSlot.js";import{isTranslationMatrix as M}from"../lib/Util.js";import{VertexAttribute as x}from"../lib/VertexAttribute.js";import{VisualVariablePassParameters as B}from"./VisualVariablePassParameters.js";import{LineMarkerAnchor as J}from"../shaders/LineMarkerTechniqueConfiguration.js";import{r as H}from"../../../../chunks/RibbonLine.glsl.js";import{vertexAttributeLocations as z,RibbonLineTechnique as G}from"../shaders/RibbonLineTechnique.js";import{RibbonLineTechniqueConfiguration as k,CapType as V}from"../shaders/RibbonLineTechniqueConfiguration.js";var Z;!function(e){e[e.LEFT_JOIN_START=-2]="LEFT_JOIN_START",e[e.LEFT_JOIN_END=-1]="LEFT_JOIN_END",e[e.LEFT_CAP_START=-4]="LEFT_CAP_START",e[e.LEFT_CAP_END=-5]="LEFT_CAP_END",e[e.RIGHT_JOIN_START=2]="RIGHT_JOIN_START",e[e.RIGHT_JOIN_END=1]="RIGHT_JOIN_END",e[e.RIGHT_CAP_START=4]="RIGHT_CAP_START",e[e.RIGHT_CAP_END=5]="RIGHT_CAP_END"}(Z||(Z={}));class W extends j{constructor(e){super(e,q),this._configuration=new k,this.vertexAttributeLocations=z,this.produces=new Map([[w.OPAQUE_MATERIAL,e=>v(e)||P(e)&&this.parameters.renderOccluded===F.OccludeAndTransparentStencil],[w.OPAQUE_MATERIAL_WITHOUT_NORMALS,e=>N(e)],[w.OCCLUDER_MATERIAL,e=>L(e)&&this.parameters.renderOccluded===F.OccludeAndTransparentStencil],[w.TRANSPARENT_OCCLUDER_MATERIAL,e=>L(e)&&this.parameters.renderOccluded===F.OccludeAndTransparentStencil],[w.TRANSPARENT_MATERIAL,e=>P(e)&&this.parameters.writeDepth&&this.parameters.renderOccluded!==F.OccludeAndTransparentStencil],[w.TRANSPARENT_MATERIAL_WITHOUT_DEPTH,e=>P(e)&&!this.parameters.writeDepth&&this.parameters.renderOccluded!==F.OccludeAndTransparentStencil],[w.DRAPED_MATERIAL,e=>b(e)]])}getConfiguration(e,t){this._configuration.output=e,this._configuration.oitPass=t.oitPass,this._configuration.draped=t.slot===w.DRAPED_MATERIAL;const r=null!=this.parameters.stipplePattern&&e!==C.Highlight;return this._configuration.stippleEnabled=r,this._configuration.stippleOffColorEnabled=r&&null!=this.parameters.stippleOffColor,this._configuration.stipplePreferContinuous=r&&this.parameters.stipplePreferContinuous,this._configuration.hasSlicePlane=this.parameters.hasSlicePlane,this._configuration.roundJoins="round"===this.parameters.join,this._configuration.capType=this.parameters.cap,this._configuration.applyMarkerOffset=null!=this.parameters.markerParameters&&$(this.parameters.markerParameters),this._configuration.hasPolygonOffset=this.parameters.hasPolygonOffset,this._configuration.writeDepth=this.parameters.writeDepth,this._configuration.vvSize=!!this.parameters.vvSize,this._configuration.vvColor=!!this.parameters.vvColor,this._configuration.vvOpacity=!!this.parameters.vvOpacity,this._configuration.innerColorEnabled=this.parameters.innerWidth>0&&null!=this.parameters.innerColor,this._configuration.falloffEnabled=this.parameters.falloff>0,this._configuration.hasOccludees=t.hasOccludees,this._configuration.occluder=this.parameters.renderOccluded===F.OccludeAndTransparentStencil,this._configuration.terrainDepthTest=t.terrainDepthTest&&P(e),this._configuration.cullAboveTerrain=t.cullAboveTerrain,this._configuration.wireframe=this.parameters.wireframe,this._configuration}get visible(){return this.parameters.color[3]>=U||null!=this.parameters.stipplePattern&&(this.parameters.stippleOffColor?.[3]??0)>U}intersectDraped({attributes:e,screenToWorldRatio:r},i,s,a,n,o){if(!s.options.selectionMode)return;const l=e.get(x.SIZE);let c=this.parameters.width;if(this.parameters.vvSize){const r=e.get(x.SIZEFEATUREATTRIBUTE).data[0];c*=t(this.parameters.vvSize.offset[0]+r*this.parameters.vvSize.factor[0],this.parameters.vvSize.minSize[0],this.parameters.vvSize.maxSize[0])}else l&&(c*=l.data[0]);const p=a[0],h=a[1],f=(c/2+4)*r;let m=Number.MAX_VALUE,u=0;const T=e.get(x.POSITION).data,d=K(this.parameters,e)?T.length-2:T.length-5;for(let _=0;_<d;_+=3){const e=T[_],r=T[_+1],i=(_+3)%T.length,s=p-e,a=h-r,n=T[i]-e,o=T[i+1]-r,l=t((n*s+o*a)/(n*n+o*o),0,1),c=n*l-s,f=o*l-a,d=c*c+f*f;d<m&&(m=d,u=_/3)}m<f*f&&n(o.dist,o.normal,u,!1)}intersect(r,f,m,u,d,R){if(!m.options.selectionMode||!r.visible)return;if(!M(f))return void e.getLogger("esri.views.3d.webgl-engine.materials.RibbonLineMaterial").error("intersection assumes a translation-only matrix");const S=r.attributes,v=S.get(x.POSITION).data;let P=this.parameters.width;if(this.parameters.vvSize){const e=S.get(x.SIZEFEATUREATTRIBUTE).data[0];P*=t(this.parameters.vvSize.offset[0]+e*this.parameters.vvSize.factor[0],this.parameters.vvSize.minSize[0],this.parameters.vvSize.maxSize[0])}else S.has(x.SIZE)&&(P*=S.get(x.SIZE).data[0]);const N=m.camera,L=se;i(L,m.point);const b=P*N.pixelRatio/2+4*N.pixelRatio;s(ue[0],L[0]-b,L[1]+b,0),s(ue[1],L[0]+b,L[1]+b,0),s(ue[2],L[0]+b,L[1]-b,0),s(ue[3],L[0]-b,L[1]-b,0);for(let e=0;e<4;e++)if(!N.unprojectFromRenderScreen(ue[e],Te[e]))return;O(N.eye,Te[0],Te[1],de),O(N.eye,Te[1],Te[2],_e),O(N.eye,Te[2],Te[3],Ee),O(N.eye,Te[3],Te[0],Ae);let C=Number.MAX_VALUE,U=0;const y=K(this.parameters,S)?v.length-2:v.length-5;for(let e=0;e<y;e+=3){ee[0]=v[e]+f[12],ee[1]=v[e+1]+f[13],ee[2]=v[e+2]+f[14];const t=(e+3)%v.length;if(te[0]=v[t]+f[12],te[1]=v[t+1]+f[13],te[2]=v[t+2]+f[14],g(de,ee)<0&&g(de,te)<0||g(_e,ee)<0&&g(_e,te)<0||g(Ee,ee)<0&&g(Ee,te)<0||g(Ae,ee)<0&&g(Ae,te)<0)continue;if(N.projectToRenderScreen(ee,ae),N.projectToRenderScreen(te,ne),ae[2]<0&&ne[2]>0){a(re,ee,te);const e=N.frustum,t=-g(e[T.NEAR],ee)/n(re,I(e[T.NEAR]));o(re,re,t),l(ee,ee,re),N.projectToRenderScreen(ee,ae)}else if(ae[2]>0&&ne[2]<0){a(re,te,ee);const e=N.frustum,t=-g(e[T.NEAR],te)/n(re,I(e[T.NEAR]));o(re,re,t),l(te,te,re),N.projectToRenderScreen(te,ne)}else if(ae[2]<0&&ne[2]<0)continue;ae[2]=0,ne[2]=0;const r=_(E(ae,ne,ce),L);r<C&&(C=r,c(oe,ee),c(le,te),U=e/3)}const D=m.rayBegin,j=m.rayEnd;if(C<b*b){let e=Number.MAX_VALUE;if(A(E(oe,le,ce),E(D,j,pe),ie)){a(ie,ie,D);const t=p(ie);o(ie,ie,1/t),e=t/h(D,j)}R(e,ie,U,!1)}}get _layout(){const e=S().vec3f(x.POSITION).vec3f(x.PREVPOSITION).vec3f(x.NEXTPOSITION).f32(x.SUBDIVISIONFACTOR).vec2f(x.UV0);return this.parameters.vvSize?e.f32(x.SIZEFEATUREATTRIBUTE):e.f32(x.SIZE),this.parameters.vvColor?e.f32(x.COLORFEATUREATTRIBUTE):e.vec4f(x.COLOR),this.parameters.vvOpacity&&e.f32(x.OPACITYFEATUREATTRIBUTE),y()&&e.vec4u8(x.OBJECTANDLAYERIDCOLOR),e}createBufferWriter(){return new X(this._layout,this.parameters)}createGLMaterial(e){return new Y(e)}validateParameters(e){"miter"!==e.join&&(e.miterLimit=0),null!=e.markerParameters&&(e.markerScale=e.markerParameters.width/e.width)}}class Y extends D{constructor(){super(...arguments),this._stipplePattern=null}dispose(){super.dispose(),this._stippleTextures.release(this._stipplePattern),this._stipplePattern=null}beginSlot(e){const t=this._material.parameters.stipplePattern;return this._stipplePattern!==t&&(this._material.setParameters({stippleTexture:this._stippleTextures.swap(t,this._stipplePattern)}),this._stipplePattern=t),this.getTechnique(G,e)}}class q extends B{constructor(){super(...arguments),this.width=0,this.color=u,this.join="miter",this.cap=V.BUTT,this.miterLimit=5,this.writeDepth=!0,this.hasPolygonOffset=!1,this.stippleTexture=null,this.stipplePreferContinuous=!0,this.markerParameters=null,this.markerScale=1,this.hasSlicePlane=!1,this.vvFastUpdate=!1,this.isClosed=!1,this.falloff=0,this.innerWidth=0,this.wireframe=!1}get transparent(){return this.color[3]<1||null!=this.stipplePattern&&(this.stippleOffColor?.[3]??0)<1}}class X{constructor(e,t){this.vertexBufferLayout=e,this._parameters=t,this.numJoinSubdivisions=0;const r=t.stipplePattern?1:0;switch(this._parameters.join){case"miter":case"bevel":this.numJoinSubdivisions=r;break;case"round":this.numJoinSubdivisions=H+r}}_isClosed(e){return K(this._parameters,e)}allocate(e){return this.vertexBufferLayout.createBuffer(e)}elementCount(e){const t=2,r=e.get(x.POSITION).indices.length/2+1,i=this._isClosed(e);let s=i?2:2*t;return s+=((i?r:r-1)-(i?0:1))*(2*this.numJoinSubdivisions+4),s+=2,this._parameters.wireframe&&(s=2+4*(s-2)),s}write(e,t,r,i,a,n){const o=he,l=fe,p=me,m=r.get(x.POSITION),u=m.indices,T=m.data.length/3,d=r.get(x.DISTANCETOSTART)?.data;u&&u.length!==2*(T-1)&&console.warn("RibbonLineMaterial does not support indices");const _=r.get(x.SIZEFEATUREATTRIBUTE)?.data[0]??r.get(x.SIZE)?.data[0]??1;let E=[1,1,1,1],A=0;const R=this.vertexBufferLayout.fields.has(x.COLORFEATUREATTRIBUTE);R?A=r.get(x.COLORFEATUREATTRIBUTE).data[0]:r.has(x.COLOR)&&(E=r.get(x.COLOR).data);const O=this.vertexBufferLayout.fields.has(x.OPACITYFEATUREATTRIBUTE),g=O?r.get(x.OPACITYFEATUREATTRIBUTE).data[0]:0,I=new Float32Array(a.buffer),S=y()?new Uint8Array(a.buffer):null,v=this.vertexBufferLayout.stride/4;let P=n*v;const N=P;let L=0;const b=d?(e,t,r)=>L=d[r]:(e,t,r)=>L+=h(e,t),C=(e,t,r,s,a,n,o)=>{if(I[P++]=t[0],I[P++]=t[1],I[P++]=t[2],I[P++]=e[0],I[P++]=e[1],I[P++]=e[2],I[P++]=r[0],I[P++]=r[1],I[P++]=r[2],I[P++]=s,I[P++]=o,I[P++]=a,I[P++]=_,R)I[P++]=A;else{const e=Math.min(4*n,E.length-4);I[P++]=E[e],I[P++]=E[e+1],I[P++]=E[e+2],I[P++]=E[e+3]}O&&(I[P++]=g),y()&&(i&&(S[4*P]=i[0],S[4*P+1]=i[1],S[4*P+2]=i[2],S[4*P+3]=i[3]),P++)};P+=v,s(l,m.data[0],m.data[1],m.data[2]),e&&f(l,l,e);const U=this._isClosed(r);if(U){const t=m.data.length-3;s(o,m.data[t],m.data[t+1],m.data[t+2]),e&&f(o,o,e)}else s(p,m.data[3],m.data[4],m.data[5]),e&&f(p,p,e),C(l,l,p,1,Z.LEFT_CAP_START,0,0),C(l,l,p,1,Z.RIGHT_CAP_START,0,0),c(o,l),c(l,p);const D=U?0:1,j=U?T:T-1;for(let h=D;h<j;h++){const t=(h+1)%T*3;s(p,m.data[t],m.data[t+1],m.data[t+2]),e&&f(p,p,e),b(o,l,h),C(o,l,p,0,Z.LEFT_JOIN_END,h,L),C(o,l,p,0,Z.RIGHT_JOIN_END,h,L);const r=this.numJoinSubdivisions;for(let e=0;e<r;++e){const t=(e+1)/(r+1);C(o,l,p,t,Z.LEFT_JOIN_END,h,L),C(o,l,p,t,Z.RIGHT_JOIN_END,h,L)}C(o,l,p,1,Z.LEFT_JOIN_START,h,L),C(o,l,p,1,Z.RIGHT_JOIN_START,h,L),c(o,l),c(l,p)}U?(s(p,m.data[3],m.data[4],m.data[5]),e&&f(p,p,e),L=b(o,l,j),C(o,l,p,0,Z.LEFT_JOIN_END,D,L),C(o,l,p,0,Z.RIGHT_JOIN_END,D,L)):(L=b(o,l,j),C(o,l,l,0,Z.LEFT_CAP_END,j,L),C(o,l,l,0,Z.RIGHT_CAP_END,j,L)),Q(I,N+v,I,N,v);P=Q(I,P-v,I,P,v),this._parameters.wireframe&&this._addWireframeVertices(a,N,P,v)}_addWireframeVertices(e,t,r,i){const s=new Float32Array(e.buffer,r*Float32Array.BYTES_PER_ELEMENT),a=new Float32Array(e.buffer,t*Float32Array.BYTES_PER_ELEMENT,r-t);let n=0;const o=e=>n=Q(a,e,s,n,i);for(let l=0;l<a.length-1;l+=2*i)o(l),o(l+2*i),o(l+1*i),o(l+2*i),o(l+1*i),o(l+3*i)}}function Q(e,t,r,i,s){for(let a=0;a<s;a++)r[i++]=e[t++];return i}function K(e,t){if(!e.isClosed)return!1;return t.get(x.POSITION).indices.length>2}function $(e){return e.anchor===J.Tip&&e.hideOnShortSegments&&"begin-end"===e.placement&&e.worldSpace}const ee=m(),te=m(),re=m(),ie=m(),se=m(),ae=r(),ne=r(),oe=m(),le=m(),ce=d(),pe=d(),he=m(),fe=m(),me=m(),ue=[r(),r(),r(),r()],Te=[m(),m(),m(),m()],de=R(),_e=R(),Ee=R(),Ae=R();export{q as Parameters,W as RibbonLineMaterial};