@arcgis/core 5.1.0-next.70 → 5.1.0-next.72

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 (699) hide show
  1. package/PopupTemplate.js +1 -1
  2. package/assets/components/assets/combobox/t9n/messages.ar.json +1 -1
  3. package/assets/components/assets/combobox/t9n/messages.bg.json +1 -1
  4. package/assets/components/assets/combobox/t9n/messages.bs.json +1 -1
  5. package/assets/components/assets/combobox/t9n/messages.ca.json +1 -1
  6. package/assets/components/assets/combobox/t9n/messages.cs.json +1 -1
  7. package/assets/components/assets/combobox/t9n/messages.da.json +1 -1
  8. package/assets/components/assets/combobox/t9n/messages.de.json +1 -1
  9. package/assets/components/assets/combobox/t9n/messages.el.json +1 -1
  10. package/assets/components/assets/combobox/t9n/messages.en.json +1 -1
  11. package/assets/components/assets/combobox/t9n/messages.es.json +1 -1
  12. package/assets/components/assets/combobox/t9n/messages.et.json +1 -1
  13. package/assets/components/assets/combobox/t9n/messages.fi.json +1 -1
  14. package/assets/components/assets/combobox/t9n/messages.fr.json +1 -1
  15. package/assets/components/assets/combobox/t9n/messages.he.json +1 -1
  16. package/assets/components/assets/combobox/t9n/messages.hr.json +1 -1
  17. package/assets/components/assets/combobox/t9n/messages.hu.json +1 -1
  18. package/assets/components/assets/combobox/t9n/messages.id.json +1 -1
  19. package/assets/components/assets/combobox/t9n/messages.it.json +1 -1
  20. package/assets/components/assets/combobox/t9n/messages.ja.json +1 -1
  21. package/assets/components/assets/combobox/t9n/messages.json +1 -1
  22. package/assets/components/assets/combobox/t9n/messages.ko.json +1 -1
  23. package/assets/components/assets/combobox/t9n/messages.lt.json +1 -1
  24. package/assets/components/assets/combobox/t9n/messages.lv.json +1 -1
  25. package/assets/components/assets/combobox/t9n/messages.nl.json +1 -1
  26. package/assets/components/assets/combobox/t9n/messages.no.json +1 -1
  27. package/assets/components/assets/combobox/t9n/messages.pl.json +1 -1
  28. package/assets/components/assets/combobox/t9n/messages.pt-BR.json +1 -1
  29. package/assets/components/assets/combobox/t9n/messages.pt-PT.json +1 -1
  30. package/assets/components/assets/combobox/t9n/messages.ro.json +1 -1
  31. package/assets/components/assets/combobox/t9n/messages.ru.json +1 -1
  32. package/assets/components/assets/combobox/t9n/messages.sk.json +1 -1
  33. package/assets/components/assets/combobox/t9n/messages.sl.json +1 -1
  34. package/assets/components/assets/combobox/t9n/messages.sr.json +1 -1
  35. package/assets/components/assets/combobox/t9n/messages.sv.json +1 -1
  36. package/assets/components/assets/combobox/t9n/messages.th.json +1 -1
  37. package/assets/components/assets/combobox/t9n/messages.tr.json +1 -1
  38. package/assets/components/assets/combobox/t9n/messages.uk.json +1 -1
  39. package/assets/components/assets/combobox/t9n/messages.vi.json +1 -1
  40. package/assets/components/assets/combobox/t9n/messages.zh-CN.json +1 -1
  41. package/assets/components/assets/combobox/t9n/messages.zh-HK.json +1 -1
  42. package/assets/components/assets/combobox/t9n/messages.zh-TW.json +1 -1
  43. package/assets/components/assets/icon/addToLivestreamVideoLayer16.json +1 -0
  44. package/assets/components/assets/icon/addToLivestreamVideoLayer24.json +1 -0
  45. package/assets/components/assets/icon/addToLivestreamVideoLayer32.json +1 -0
  46. package/assets/components/assets/icon/addToVideoLayer16.json +1 -0
  47. package/assets/components/assets/icon/addToVideoLayer24.json +1 -0
  48. package/assets/components/assets/icon/addToVideoLayer32.json +1 -0
  49. package/assets/components/assets/icon/arcgisQuickcapture16.json +1 -0
  50. package/assets/components/assets/icon/arcgisQuickcapture24.json +1 -0
  51. package/assets/components/assets/icon/arcgisQuickcapture32.json +1 -0
  52. package/assets/components/assets/icon/arcgisSurvey12316.json +1 -0
  53. package/assets/components/assets/icon/arcgisSurvey12324.json +1 -0
  54. package/assets/components/assets/icon/arcgisSurvey12332.json +1 -0
  55. package/assets/components/assets/icon/bicycleTravelMode16.json +1 -0
  56. package/assets/components/assets/icon/bicycleTravelMode16F.json +1 -0
  57. package/assets/components/assets/icon/bicycleTravelMode24.json +1 -0
  58. package/assets/components/assets/icon/bicycleTravelMode24F.json +1 -0
  59. package/assets/components/assets/icon/bicycleTravelMode32.json +1 -0
  60. package/assets/components/assets/icon/bicycleTravelMode32F.json +1 -0
  61. package/assets/components/assets/icon/busTravelMode16.json +1 -0
  62. package/assets/components/assets/icon/busTravelMode16F.json +1 -0
  63. package/assets/components/assets/icon/busTravelMode24.json +1 -0
  64. package/assets/components/assets/icon/busTravelMode24F.json +1 -0
  65. package/assets/components/assets/icon/busTravelMode32.json +1 -0
  66. package/assets/components/assets/icon/busTravelMode32F.json +1 -0
  67. package/assets/components/assets/icon/carTravelMode16.json +1 -0
  68. package/assets/components/assets/icon/carTravelMode16F.json +1 -0
  69. package/assets/components/assets/icon/carTravelMode24.json +1 -0
  70. package/assets/components/assets/icon/carTravelMode24F.json +1 -0
  71. package/assets/components/assets/icon/carTravelMode32.json +1 -0
  72. package/assets/components/assets/icon/carTravelMode32F.json +1 -0
  73. package/assets/components/assets/icon/conditionalRulesDown16.json +1 -0
  74. package/assets/components/assets/icon/conditionalRulesDown24.json +1 -0
  75. package/assets/components/assets/icon/conditionalRulesDown32.json +1 -0
  76. package/assets/components/assets/icon/emergency16.json +1 -0
  77. package/assets/components/assets/icon/emergency16F.json +1 -0
  78. package/assets/components/assets/icon/emergency24.json +1 -0
  79. package/assets/components/assets/icon/emergency24F.json +1 -0
  80. package/assets/components/assets/icon/emergency32.json +1 -0
  81. package/assets/components/assets/icon/emergency32F.json +1 -0
  82. package/assets/components/assets/icon/eyedropper16.json +1 -1
  83. package/assets/components/assets/icon/eyedropper24.json +1 -1
  84. package/assets/components/assets/icon/eyedropper32.json +1 -1
  85. package/assets/components/assets/icon/featureDetailsSet16.json +1 -0
  86. package/assets/components/assets/icon/featureDetailsSet24.json +1 -0
  87. package/assets/components/assets/icon/featureDetailsSet32.json +1 -0
  88. package/assets/components/assets/icon/fileBim16.json +1 -0
  89. package/assets/components/assets/icon/fileBim24.json +1 -0
  90. package/assets/components/assets/icon/fileBim32.json +1 -0
  91. package/assets/components/assets/icon/fileDwg16.json +1 -0
  92. package/assets/components/assets/icon/fileDwg24.json +1 -0
  93. package/assets/components/assets/icon/fileDwg32.json +1 -0
  94. package/assets/components/assets/icon/fileRvt16.json +1 -0
  95. package/assets/components/assets/icon/fileRvt24.json +1 -0
  96. package/assets/components/assets/icon/fileRvt32.json +1 -0
  97. package/assets/components/assets/icon/gradient16.json +1 -0
  98. package/assets/components/assets/icon/gradient24.json +1 -0
  99. package/assets/components/assets/icon/gradient32.json +1 -0
  100. package/assets/components/assets/icon/layerStreamSetting16.json +1 -0
  101. package/assets/components/assets/icon/layerStreamSetting24.json +1 -0
  102. package/assets/components/assets/icon/layerStreamSetting32.json +1 -0
  103. package/assets/components/assets/icon/mopedTravelMode16.json +1 -0
  104. package/assets/components/assets/icon/mopedTravelMode16F.json +1 -0
  105. package/assets/components/assets/icon/mopedTravelMode24.json +1 -0
  106. package/assets/components/assets/icon/mopedTravelMode24F.json +1 -0
  107. package/assets/components/assets/icon/mopedTravelMode32.json +1 -0
  108. package/assets/components/assets/icon/mopedTravelMode32F.json +1 -0
  109. package/assets/components/assets/icon/motorcycleTravelMode16.json +1 -0
  110. package/assets/components/assets/icon/motorcycleTravelMode16F.json +1 -0
  111. package/assets/components/assets/icon/motorcycleTravelMode24.json +1 -0
  112. package/assets/components/assets/icon/motorcycleTravelMode24F.json +1 -0
  113. package/assets/components/assets/icon/motorcycleTravelMode32.json +1 -0
  114. package/assets/components/assets/icon/motorcycleTravelMode32F.json +1 -0
  115. package/assets/components/assets/icon/publish16.json +1 -0
  116. package/assets/components/assets/icon/publish24.json +1 -0
  117. package/assets/components/assets/icon/publish32.json +1 -0
  118. package/assets/components/assets/icon/scooterTravelMode16.json +1 -0
  119. package/assets/components/assets/icon/scooterTravelMode16F.json +1 -0
  120. package/assets/components/assets/icon/scooterTravelMode24.json +1 -0
  121. package/assets/components/assets/icon/scooterTravelMode24F.json +1 -0
  122. package/assets/components/assets/icon/scooterTravelMode32.json +1 -0
  123. package/assets/components/assets/icon/scooterTravelMode32F.json +1 -0
  124. package/assets/components/assets/icon/shuttleTravelMode16.json +1 -0
  125. package/assets/components/assets/icon/shuttleTravelMode16F.json +1 -0
  126. package/assets/components/assets/icon/shuttleTravelMode24.json +1 -0
  127. package/assets/components/assets/icon/shuttleTravelMode24F.json +1 -0
  128. package/assets/components/assets/icon/shuttleTravelMode32.json +1 -0
  129. package/assets/components/assets/icon/shuttleTravelMode32F.json +1 -0
  130. package/assets/components/assets/icon/strollerTravelMode16.json +1 -0
  131. package/assets/components/assets/icon/strollerTravelMode16F.json +1 -0
  132. package/assets/components/assets/icon/strollerTravelMode24.json +1 -0
  133. package/assets/components/assets/icon/strollerTravelMode24F.json +1 -0
  134. package/assets/components/assets/icon/strollerTravelMode32.json +1 -0
  135. package/assets/components/assets/icon/strollerTravelMode32F.json +1 -0
  136. package/assets/components/assets/icon/trainTravelMode16.json +1 -0
  137. package/assets/components/assets/icon/trainTravelMode16F.json +1 -0
  138. package/assets/components/assets/icon/trainTravelMode24.json +1 -0
  139. package/assets/components/assets/icon/trainTravelMode24F.json +1 -0
  140. package/assets/components/assets/icon/trainTravelMode32.json +1 -0
  141. package/assets/components/assets/icon/trainTravelMode32F.json +1 -0
  142. package/assets/components/assets/icon/tramTravelMode16.json +1 -0
  143. package/assets/components/assets/icon/tramTravelMode16F.json +1 -0
  144. package/assets/components/assets/icon/tramTravelMode24.json +1 -0
  145. package/assets/components/assets/icon/tramTravelMode24F.json +1 -0
  146. package/assets/components/assets/icon/tramTravelMode32.json +1 -0
  147. package/assets/components/assets/icon/tramTravelMode32F.json +1 -0
  148. package/assets/components/assets/icon/truckTravelMode16.json +1 -0
  149. package/assets/components/assets/icon/truckTravelMode16F.json +1 -0
  150. package/assets/components/assets/icon/truckTravelMode24.json +1 -0
  151. package/assets/components/assets/icon/truckTravelMode24F.json +1 -0
  152. package/assets/components/assets/icon/truckTravelMode32.json +1 -0
  153. package/assets/components/assets/icon/truckTravelMode32F.json +1 -0
  154. package/assets/components/assets/icon/velocityServer16.json +1 -0
  155. package/assets/components/assets/icon/velocityServer24.json +1 -0
  156. package/assets/components/assets/icon/velocityServer32.json +1 -0
  157. package/assets/components/assets/icon/walkingTravelMode16.json +1 -0
  158. package/assets/components/assets/icon/walkingTravelMode16F.json +1 -0
  159. package/assets/components/assets/icon/walkingTravelMode24.json +1 -0
  160. package/assets/components/assets/icon/walkingTravelMode24F.json +1 -0
  161. package/assets/components/assets/icon/walkingTravelMode32.json +1 -0
  162. package/assets/components/assets/icon/walkingTravelMode32F.json +1 -0
  163. package/assets/components/assets/icon/wheelchairTravelMode16.json +1 -0
  164. package/assets/components/assets/icon/wheelchairTravelMode16F.json +1 -0
  165. package/assets/components/assets/icon/wheelchairTravelMode24.json +1 -0
  166. package/assets/components/assets/icon/wheelchairTravelMode24F.json +1 -0
  167. package/assets/components/assets/icon/wheelchairTravelMode32.json +1 -0
  168. package/assets/components/assets/icon/wheelchairTravelMode32F.json +1 -0
  169. package/assets/esri/core/workers/RemoteClient.js +1 -1
  170. package/assets/esri/core/workers/chunks/003fd7745966fe03510c.js +1 -0
  171. package/assets/esri/core/workers/chunks/00bae4b7e179336e0362.js +1 -0
  172. package/assets/esri/core/workers/chunks/026d3fa331caec1ea3d2.js +1 -0
  173. package/assets/esri/core/workers/chunks/027c3ea756db68e51f0a.js +1 -0
  174. package/assets/esri/core/workers/chunks/{81b2985b83be8f8f1090.js → 02876e434dc91c42b2f4.js} +1 -1
  175. package/assets/esri/core/workers/chunks/041c372e98a6fba90b36.js +1 -0
  176. package/assets/esri/core/workers/chunks/0783890816bac45277b9.js +1 -0
  177. package/assets/esri/core/workers/chunks/07aac6245a0d1adbb2d4.js +1 -0
  178. package/assets/esri/core/workers/chunks/0839da55707f7c4cf780.js +1 -0
  179. package/assets/esri/core/workers/chunks/0b1454a77a6a682541dc.js +2 -0
  180. package/assets/esri/core/workers/chunks/{d82b543c96f09ded3bf9.js.LICENSE.txt → 0b1454a77a6a682541dc.js.LICENSE.txt} +6 -1
  181. package/assets/esri/core/workers/chunks/0c00e5e4bd18467bcecd.js +1 -0
  182. package/assets/esri/core/workers/chunks/{478879ba965798f61bf3.js → 0d96e39380fd84cea9ba.js} +1 -1
  183. package/assets/esri/core/workers/chunks/0dad0bca8d58b2c63d22.js +1 -0
  184. package/assets/esri/core/workers/chunks/0ef93722524620023f69.js +1 -0
  185. package/assets/esri/core/workers/chunks/{03e20ac54d6f141b5001.js → 11241781baaed346af52.js} +1 -1
  186. package/assets/esri/core/workers/chunks/127cd8fee3717a473fc5.js +1 -0
  187. package/assets/esri/core/workers/chunks/1286f41f245ef22b3a26.js +1 -0
  188. package/assets/esri/core/workers/chunks/161d60fdac2013c15543.js +1 -0
  189. package/assets/esri/core/workers/chunks/1661684357912726a72a.js +1 -0
  190. package/assets/esri/core/workers/chunks/168de44a789d1cecc1f8.js +1 -0
  191. package/assets/esri/core/workers/chunks/1961b59756933e0a82f2.js +1 -0
  192. package/assets/esri/core/workers/chunks/1c7183551f5269bdcf13.js +30 -0
  193. package/assets/esri/core/workers/chunks/1d9560eb8b21b9e76616.js +1 -0
  194. package/assets/esri/core/workers/chunks/1d9d7915cf7449e5d468.js +1 -0
  195. package/assets/esri/core/workers/chunks/{b364ec104dd59faa41b6.js → 1f82a0f134ea912fc686.js} +1 -1
  196. package/assets/esri/core/workers/chunks/1f85646936200a399c15.js +1 -0
  197. package/assets/esri/core/workers/chunks/2171aaa147aa4d9fc5b5.js +1 -0
  198. package/assets/esri/core/workers/chunks/235cb82952a18ff8d206.js +1 -0
  199. package/assets/esri/core/workers/chunks/260d4571722cb1ff1366.js +1 -0
  200. package/assets/esri/core/workers/chunks/266ba61b72a278d93a26.js +1 -0
  201. package/assets/esri/core/workers/chunks/27b80c386cebadcaca3c.js +1 -0
  202. package/assets/esri/core/workers/chunks/29d3890a5a43d934067a.js +1 -0
  203. package/assets/esri/core/workers/chunks/{333a0038d782d8a34d58.js → 2abf124e2956e4f76688.js} +1 -1
  204. package/assets/esri/core/workers/chunks/2f17438d215bea3ce70f.js +1 -0
  205. package/assets/esri/core/workers/chunks/30e710ec4d22c43d4e7e.js +1 -0
  206. package/assets/esri/core/workers/chunks/356cb86606b8c674f947.js +1 -0
  207. package/assets/esri/core/workers/chunks/3697e51e1e4cf442f39a.js +1 -0
  208. package/assets/esri/core/workers/chunks/398e0dd2bc7e1ab84831.js +1 -0
  209. package/assets/esri/core/workers/chunks/3a58708217a9c11836ab.js +1 -0
  210. package/assets/esri/core/workers/chunks/3b1052aa30af3f6186cc.js +1 -0
  211. package/assets/esri/core/workers/chunks/3bbf684ee2484eb44c9f.js +1 -0
  212. package/assets/esri/core/workers/chunks/3cd9bd20e75ba4d5b294.js +1 -0
  213. package/assets/esri/core/workers/chunks/3e87e3ad857d72f6ecbb.js +1 -0
  214. package/assets/esri/core/workers/chunks/3ea5a18b264628dc37f0.js +1 -0
  215. package/assets/esri/core/workers/chunks/41809c16544ec25120fa.js +1 -0
  216. package/assets/esri/core/workers/chunks/41913575dd45c65d645e.js +1 -0
  217. package/assets/esri/core/workers/chunks/427dec43ef2d67467699.js +1 -0
  218. package/assets/esri/core/workers/chunks/42e483fde18f12da32a6.js +1 -0
  219. package/assets/esri/core/workers/chunks/43ab44d37bc0ea97ef98.js +1 -0
  220. package/assets/esri/core/workers/chunks/{746b3e98bad32c366a27.js → 444f0f51b3ee0b9845a5.js} +1 -1
  221. package/assets/esri/core/workers/chunks/46e622857ba92a72a317.js +1 -0
  222. package/assets/esri/core/workers/chunks/47f2113357b2aa4f4f37.js +1 -0
  223. package/assets/esri/core/workers/chunks/488ed9584b527ec47be3.js +1 -0
  224. package/assets/esri/core/workers/chunks/4ad32580e0c0699fde1f.js +1 -0
  225. package/assets/esri/core/workers/chunks/4d0f793dee4ad919221b.js +1 -0
  226. package/assets/esri/core/workers/chunks/{f209a7076d67cbf4d205.js → 4e676e888a935c507d90.js} +1 -1
  227. package/assets/esri/core/workers/chunks/4eed175277eb0df3c821.js +1 -0
  228. package/assets/esri/core/workers/chunks/50d5d6654ada9f28345d.js +1 -0
  229. package/assets/esri/core/workers/chunks/54c6e870262469d0d702.js +1 -0
  230. package/assets/esri/core/workers/chunks/54d07eadf113f0e4e506.js +1 -0
  231. package/assets/esri/core/workers/chunks/54ed37ec9682ea739deb.js +1 -0
  232. package/assets/esri/core/workers/chunks/55369c5bd65bcaf78da1.js +1 -0
  233. package/assets/esri/core/workers/chunks/56fd3da911c2c4511e5d.js +1 -0
  234. package/assets/esri/core/workers/chunks/58c79e15ca95238a4b43.js +1 -0
  235. package/assets/esri/core/workers/chunks/59592bb25f226865e88a.js +1 -0
  236. package/assets/esri/core/workers/chunks/5a4d7ba6dc1d4b41d80d.js +1 -0
  237. package/assets/esri/core/workers/chunks/5d55b4449bcb24cd72b6.js +1 -0
  238. package/assets/esri/core/workers/chunks/5d8fe41a3c06ddb4094b.js +1 -0
  239. package/assets/esri/core/workers/chunks/5ef37f37e405b3bb5450.js +1 -0
  240. package/assets/esri/core/workers/chunks/608d707fd9d9f9088473.js +1 -0
  241. package/assets/esri/core/workers/chunks/61ef14e42bc09b787d89.js +1 -0
  242. package/assets/esri/core/workers/chunks/628f56c09838eb9c573b.js +1 -0
  243. package/assets/esri/core/workers/chunks/656d6963e8f837fbf28f.js +1 -0
  244. package/assets/esri/core/workers/chunks/68b47a5a50e0b5fffca2.js +1 -0
  245. package/assets/esri/core/workers/chunks/6a0352d20596ca3f4b64.js +1 -0
  246. package/assets/esri/core/workers/chunks/6c7ff968bd4fc816442d.js +1 -0
  247. package/assets/esri/core/workers/chunks/6dac8dfcd63fc757ae2d.js +1 -0
  248. package/assets/esri/core/workers/chunks/6e526c06825ecc6c99c0.js +1 -0
  249. package/assets/esri/core/workers/chunks/6e70e922331704b92a08.js +1 -0
  250. package/assets/esri/core/workers/chunks/6ea8b0d68881d16a2432.js +1 -0
  251. package/assets/esri/core/workers/chunks/6f67c9f68101a084b683.js +30 -0
  252. package/assets/esri/core/workers/chunks/6f9ea461c268c421f9c9.js +1 -0
  253. package/assets/esri/core/workers/chunks/7027d93dc5a4595d70c6.js +1 -0
  254. package/assets/esri/core/workers/chunks/70b35b2446558d5280e3.js +1 -0
  255. package/assets/esri/core/workers/chunks/728ad5bbbcbf88d6249f.js +1 -0
  256. package/assets/esri/core/workers/chunks/7349cb45a93e6916f115.js +1 -0
  257. package/assets/esri/core/workers/chunks/74be994d789c57031631.js +1 -0
  258. package/assets/esri/core/workers/chunks/751609831b283903ba48.js +1 -0
  259. package/assets/esri/core/workers/chunks/76edaeaf8fe344bb77a8.js +1 -0
  260. package/assets/esri/core/workers/chunks/76fe5b821d6b54db5721.js +1 -0
  261. package/assets/esri/core/workers/chunks/7bacdd65a6cc4d284e0a.js +2 -0
  262. package/assets/esri/core/workers/chunks/7c7c11c0fde8b63e330b.js +1 -0
  263. package/assets/esri/core/workers/chunks/7e6ccf9f3e756186e93e.js +1 -0
  264. package/assets/esri/core/workers/chunks/81d30c9062ad0120a863.js +1 -0
  265. package/assets/esri/core/workers/chunks/824051af00e7a1f05ed0.js +1 -0
  266. package/assets/esri/core/workers/chunks/84772b023d04e415f17f.js +1 -0
  267. package/assets/esri/core/workers/chunks/85edbb072a2ce6c1bb30.js +2 -0
  268. package/assets/esri/core/workers/chunks/{2d2c10c31cc1460dd96a.js → 88827e23f8938342781c.js} +1 -1
  269. package/assets/esri/core/workers/chunks/88b480a1d1fb01778798.js +267 -0
  270. package/assets/esri/core/workers/chunks/88c5f7c712c6b89b5109.js +1 -0
  271. package/assets/esri/core/workers/chunks/88e469b82d2594f23649.js +1 -0
  272. package/assets/esri/core/workers/chunks/8a14e3db28c403b046cf.js +1 -0
  273. package/assets/esri/core/workers/chunks/8a48a6760c33ed50b650.js +1 -0
  274. package/assets/esri/core/workers/chunks/8a664451845a47048859.js +1 -0
  275. package/assets/esri/core/workers/chunks/8a8242e7cc7e6a9e7876.js +1 -0
  276. package/assets/esri/core/workers/chunks/8acee3fba488f202f82f.js +1 -0
  277. package/assets/esri/core/workers/chunks/8b73f4d2f99c0b54cced.js +1 -0
  278. package/assets/esri/core/workers/chunks/91a0227a64a944af3286.js +596 -0
  279. package/assets/esri/core/workers/chunks/943cf0653a2b7de16a4f.js +1 -0
  280. package/assets/esri/core/workers/chunks/9444ed8ea117861ae89b.js +1 -0
  281. package/assets/esri/core/workers/chunks/9482a6d7baa24bbf5693.js +1 -0
  282. package/assets/esri/core/workers/chunks/96bba4d93a32ad34a1c8.js +1 -0
  283. package/assets/esri/core/workers/chunks/9a38fd68b02b617c45d3.js +1 -0
  284. package/assets/esri/core/workers/chunks/{e0a63b5861e8c975097e.js → 9aaf78b831f8739bc127.js} +1 -1
  285. package/assets/esri/core/workers/chunks/{4d378d4e021a33b0047e.js → 9be4438ce2c7180adadf.js} +1 -1
  286. package/assets/esri/core/workers/chunks/9d434360dfce1e49b7b9.js +1 -0
  287. package/assets/esri/core/workers/chunks/9f4b97204def91567e3c.js +1 -0
  288. package/assets/esri/core/workers/chunks/a169d9fe66b5865911d9.js +1 -0
  289. package/assets/esri/core/workers/chunks/a37c28e3c4a2be9fd1d5.js +1 -0
  290. package/assets/esri/core/workers/chunks/a37fc886227365f7ecd5.js +1 -0
  291. package/assets/esri/core/workers/chunks/a5d8d6f3c0c8de474efd.js +1 -0
  292. package/assets/esri/core/workers/chunks/a65d576e90179a2b5400.js +1 -0
  293. package/assets/esri/core/workers/chunks/a8d7f59927bdad564141.js +1 -0
  294. package/assets/esri/core/workers/chunks/{678c9f15712cf3d3bb9e.js → aa1a3a849aba84cf585b.js} +1 -1
  295. package/assets/esri/core/workers/chunks/abc06d10c7ac8ba5b0e4.js +1 -0
  296. package/assets/esri/core/workers/chunks/abe22ae8ee0dcc9efbb7.js +1 -0
  297. package/assets/esri/core/workers/chunks/ae0a572cbbdd9815ee2e.js +1 -0
  298. package/assets/esri/core/workers/chunks/af5db0372d526e592fcc.js +1 -0
  299. package/assets/esri/core/workers/chunks/b1a21a4d7d73ad7d0e47.js +1 -0
  300. package/assets/esri/core/workers/chunks/b2983f521d8c96becd8a.js +1 -0
  301. package/assets/esri/core/workers/chunks/{915a5e8aecf25f3bc72b.js → b475f5492c6e3fd4cca8.js} +1 -1
  302. package/assets/esri/core/workers/chunks/b495f14d90abe8d1a558.js +1 -0
  303. package/assets/esri/core/workers/chunks/{f11ea0d3de93ec0392af.js → b54b7cc6b23a70fed700.js} +1 -1
  304. package/assets/esri/core/workers/chunks/b702279c48f3009f6dd8.js +1 -0
  305. package/assets/esri/core/workers/chunks/b79058f5bda6fcac22f8.js +1 -0
  306. package/assets/esri/core/workers/chunks/b801631b58e6fc6cec8a.js +1 -0
  307. package/assets/esri/core/workers/chunks/b92794def31592a6a25f.js +1 -0
  308. package/assets/esri/core/workers/chunks/bc53ce9a643f82d516c2.js +1 -0
  309. package/assets/esri/core/workers/chunks/be1d6a571f76933dfbb0.js +1 -0
  310. package/assets/esri/core/workers/chunks/bea70be8e38b8c83ccd2.js +1 -0
  311. package/assets/esri/core/workers/chunks/bfcdc5c315131aae34d8.js +1 -0
  312. package/assets/esri/core/workers/chunks/c0f624a2ca0d07ef8f8c.js +1 -0
  313. package/assets/esri/core/workers/chunks/c1189316d24fb4cdb2a0.js +1 -0
  314. package/assets/esri/core/workers/chunks/c1838822b096d5f36a8b.js +1 -0
  315. package/assets/esri/core/workers/chunks/c3381b9a36299210ee47.js +1 -0
  316. package/assets/esri/core/workers/chunks/c46a4adea39636a96d03.js +1 -0
  317. package/assets/esri/core/workers/chunks/{c2882a9e67124b7c18be.js → c503c79ba5761f7abbeb.js} +1 -1
  318. package/assets/esri/core/workers/chunks/c6030271bd6d39b6e1db.js +1 -0
  319. package/assets/esri/core/workers/chunks/c9065cee85eb8dde6a42.js +1 -0
  320. package/assets/esri/core/workers/chunks/c961aff385e38b081204.js +1 -0
  321. package/assets/esri/core/workers/chunks/cb5e4b9b4a59c2622eb5.js +1 -0
  322. package/assets/esri/core/workers/chunks/cca095f0c623e037002d.js +1 -0
  323. package/assets/esri/core/workers/chunks/ce2aa75e084ee56f5e29.js +1 -0
  324. package/assets/esri/core/workers/chunks/cf826787ab8d4b27ad80.js +1 -0
  325. package/assets/esri/core/workers/chunks/d05a7ce6c1d4b883ed4c.js +30 -0
  326. package/assets/esri/core/workers/chunks/d201a5dff18a5bb467ab.js +1 -0
  327. package/assets/esri/core/workers/chunks/d2aa75816e84b1e7fd25.js +1 -0
  328. package/assets/esri/core/workers/chunks/d4a9eb4470cc6a1f67fc.js +2 -0
  329. package/assets/esri/core/workers/chunks/{8ccf2f65d8ed3c48ffff.js → d950d5c2844206502ff0.js} +1 -1
  330. package/assets/esri/core/workers/chunks/db3c484bfa607dec6050.js +1 -0
  331. package/assets/esri/core/workers/chunks/db588bf3256e95c977b7.js +1 -0
  332. package/assets/esri/core/workers/chunks/dbc9249dae41096d750d.js +1 -0
  333. package/assets/esri/core/workers/chunks/dcc719e15b2e0cce1f3b.js +1 -0
  334. package/assets/esri/core/workers/chunks/{6bb090f3e5c18604cb39.js → dd5b362bded458afa2d6.js} +1 -1
  335. package/assets/esri/core/workers/chunks/de583214195eff13cb00.js +1140 -0
  336. package/assets/esri/core/workers/chunks/dec6d41d614105e6fd93.js +1 -0
  337. package/assets/esri/core/workers/chunks/df8143b72ef94806c992.js +1 -0
  338. package/assets/esri/core/workers/chunks/dfdd474fddcd1d6091ce.js +1 -0
  339. package/assets/esri/core/workers/chunks/e0b47b08ae2c36c76fa2.js +1 -0
  340. package/assets/esri/core/workers/chunks/e235ea4293d5d463acfb.js +1 -0
  341. package/assets/esri/core/workers/chunks/e43486113aaf72ac4dc1.js +1 -0
  342. package/assets/esri/core/workers/chunks/ea4c3393c5757e309a71.js +1 -0
  343. package/assets/esri/core/workers/chunks/ed216ddeb7f59f510bd0.js +1 -0
  344. package/assets/esri/core/workers/chunks/ef8886dff54063928bcb.js +1 -0
  345. package/assets/esri/core/workers/chunks/f05932aea4eb267cba4d.js +1 -0
  346. package/assets/esri/core/workers/chunks/f09a41ad239d467d9438.js +2 -0
  347. package/assets/esri/core/workers/chunks/f1673e723b336204ad77.js +1 -0
  348. package/assets/esri/core/workers/chunks/f5223ffb3be548c9b0a1.js +1 -0
  349. package/assets/esri/core/workers/chunks/f52443cd203e687551da.js +1 -0
  350. package/assets/esri/core/workers/chunks/f6912532aae1638cbe8f.js +1 -0
  351. package/assets/esri/core/workers/chunks/fae147d03ed723ab234d.js +1 -0
  352. package/assets/esri/core/workers/chunks/ffcd4fca7f67e1f943f1.js +1 -0
  353. package/assets/esri/themes/dark/main.css +1 -1
  354. package/assets/esri/themes/light/main.css +1 -1
  355. package/assets/esri/themes/light/view.css +1 -1
  356. package/chunks/CheckerBoard.glsl.js +3 -5
  357. package/chunks/ColorMaterial.glsl.js +4 -6
  358. package/chunks/ComponentShader.glsl.js +42 -44
  359. package/chunks/DefaultMaterial.glsl.js +21 -23
  360. package/chunks/EdgeShader.glsl.js +9 -11
  361. package/chunks/GaussianSplat.glsl.js +8 -8
  362. package/chunks/ImageMaterial.glsl.js +5 -7
  363. package/chunks/LineCallout.glsl.js +9 -12
  364. package/chunks/LineMarker.glsl.js +24 -26
  365. package/chunks/OITDim.glsl.js +3 -4
  366. package/chunks/Path.glsl.js +15 -17
  367. package/chunks/Pattern.glsl.js +25 -27
  368. package/chunks/RealisticTree.glsl.js +11 -13
  369. package/chunks/RibbonLine.glsl.js +42 -45
  370. package/chunks/ShadedColorMaterial.glsl.js +8 -9
  371. package/chunks/Water.glsl.js +18 -20
  372. package/config.js +1 -1
  373. package/core/workers/WorkerHandle.js +1 -1
  374. package/geometry/Mesh.js +1 -1
  375. package/geometry/support/DoubleArray.js +1 -1
  376. package/geometry/support/triangulationUtilsDeprecated.js +1 -1
  377. package/kernel.js +1 -1
  378. package/layers/VoxelWasmPerSceneView.js +1 -1
  379. package/layers/graphics/FlatFeature.js +1 -1
  380. package/layers/graphics/FlatFeatureSet.js +1 -1
  381. package/layers/graphics/OptimizedFeature.js +1 -1
  382. package/layers/graphics/data/AttributesBuilder.js +1 -1
  383. package/layers/graphics/data/QueryEngineResult.js +1 -1
  384. package/layers/graphics/data/flatFeatureQueryEngineAdapter.js +1 -1
  385. package/layers/graphics/data/optimizedFeatureQueryEngineAdapter.js +1 -1
  386. package/layers/graphics/featureConversionUtils.js +1 -1
  387. package/layers/support/LabelClass.js +1 -1
  388. package/layers/support/featureLayerUtils.js +1 -1
  389. package/layers/support/labelUtils.js +1 -1
  390. package/layers/video/videoUtils.js +1 -1
  391. package/package.json +3 -3
  392. package/popup/Feature.d.ts +2 -0
  393. package/popup/Feature.js +1 -1
  394. package/popup/actions.js +1 -1
  395. package/popupTemplateUtils.js +2 -0
  396. package/renderers/visualVariables/SizeVariable.js +1 -1
  397. package/renderers/visualVariables/support/sizeVariableUtils.js +1 -1
  398. package/rest/query/operations/pbfFeatureServiceParser.js +1 -1
  399. package/rest/support/OutDistance.js +2 -0
  400. package/rest/support/Query.js +1 -1
  401. package/smartMapping/statistics/support/utils.js +1 -1
  402. package/smartMapping/support/adapters/InMemoryLayerAdapter.js +1 -1
  403. package/support/arcadeUtils.js +1 -1
  404. package/support/revision.js +1 -1
  405. package/views/2d/engine/webgl/shaderGraph/techniques/mesh/MeshWriter.js +1 -1
  406. package/views/2d/engine/webgl/shaders/sources/shaderRepository.js +1 -1
  407. package/views/2d/layers/FeatureLikeLayerView2D.js +1 -1
  408. package/views/2d/layers/ImageryLayerView2D.js +1 -1
  409. package/views/2d/layers/ImageryTileLayerView2D.js +1 -1
  410. package/views/2d/layers/features/layerAdapters/CatalogFootprintLayerAdapter.js +1 -1
  411. package/views/2d/layers/features/layerAdapters/FeatureLayerAdapter.js +1 -1
  412. package/views/2d/layers/features/layerAdapters/InMemoryLayerAdapter.js +1 -1
  413. package/views/2d/layers/features/layerAdapters/KnowledgeGraphSublayerAdapter.js +1 -1
  414. package/views/2d/layers/features/layerAdapters/OGCFeatureLayerAdapter.js +1 -1
  415. package/views/2d/layers/features/layerAdapters/OrientedImageryLayerAdapter.js +1 -1
  416. package/views/2d/layers/features/layerAdapters/SubtypeGroupLayerAdapter.js +1 -1
  417. package/views/2d/layers/features/support/FeatureSetReader.js +1 -1
  418. package/views/2d/layers/features/support/FeatureSetReaderPBF.js +1 -1
  419. package/views/2d/layers/imagery/BaseImageryTileSubView2D.js +1 -1
  420. package/views/2d/layers/imagery/ImageryView2D.js +1 -1
  421. package/views/2d/layers/imagery/VectorFieldView2D.js +1 -1
  422. package/views/3d/FocusAreasView.js +1 -1
  423. package/views/3d/analysis/AreaMeasurement/support/AreaMeasurementController.js +1 -1
  424. package/views/3d/analysis/AreaMeasurement/support/MeasurementData.js +1 -1
  425. package/views/3d/analysis/VolumeMeasurement/VolumeMeasurementCutFillController.js +1 -1
  426. package/views/3d/analysis/VolumeMeasurement/VolumeMeasurementCutFillVisualization.js +1 -1
  427. package/views/3d/layers/BuildingComponentSublayerView3D.js +1 -1
  428. package/views/3d/layers/FeatureLikeLayerView3D.js +1 -1
  429. package/views/3d/layers/IntegratedMeshNormals.js +1 -1
  430. package/views/3d/layers/SceneLayerGraphicsView3D.js +1 -1
  431. package/views/3d/layers/StreamLayerView3D.js +1 -1
  432. package/views/3d/layers/graphics/Graphics3DExtrudeSymbolLayer.js +1 -1
  433. package/views/3d/layers/graphics/Graphics3DGraphicsPipeline.js +1 -1
  434. package/views/3d/layers/graphics/Graphics3DPolygonFillSymbolLayer.js +1 -1
  435. package/views/3d/layers/graphics/Graphics3DSymbolLayer.js +1 -1
  436. package/views/3d/layers/graphics/Graphics3DWaterSymbolLayer.js +1 -1
  437. package/views/3d/layers/graphics/featureExpressionInfoUtils.js +1 -1
  438. package/views/3d/layers/graphics/polygonUtils.js +1 -1
  439. package/views/3d/layers/graphics/tessellationUtils.js +1 -1
  440. package/views/3d/layers/i3s/I3SQueryEngine.js +1 -1
  441. package/views/3d/state/ViewStateManager.js +1 -1
  442. package/views/3d/support/renderInfoUtils/polygon.js +1 -1
  443. package/views/3d/support/renderInfoUtils/polygonDeprecated.js +1 -1
  444. package/views/3d/terrain/OverlayRenderer.js +1 -1
  445. package/views/3d/terrain/PatchRenderData.js +1 -1
  446. package/views/3d/terrain/TerrainRenderer.js +1 -1
  447. package/views/3d/webgl-engine/collections/Component/ComponentObjectCollection.js +1 -1
  448. package/views/3d/webgl-engine/collections/Component/Material/ComponentMaterial.js +1 -1
  449. package/views/3d/webgl-engine/collections/Component/Material/ComponentMaterialGlobalParameters.js +1 -1
  450. package/views/3d/webgl-engine/collections/Component/Material/ComponentMaterialRepository.js +1 -1
  451. package/views/3d/webgl-engine/collections/Component/Material/ComponentShader.glsl.js +1 -1
  452. package/views/3d/webgl-engine/core/renderPasses/RenderPassManager.js +1 -1
  453. package/views/3d/webgl-engine/core/shaderLibrary/hud/HUD.glsl.js +20 -32
  454. package/views/3d/webgl-engine/core/shaderLibrary/shading/VisualVariables.glsl.js +5 -3
  455. package/views/3d/webgl-engine/core/shaderLibrary/terrain/Overlay.glsl.js +1 -1
  456. package/views/3d/webgl-engine/core/shaderLibrary/util/EmissionDimming.glsl.js +1 -1
  457. package/views/3d/webgl-engine/effects/RenderPluginManager.js +1 -1
  458. package/views/3d/webgl-engine/effects/geometry/RenderOccludedRenderNode.js +1 -1
  459. package/views/3d/webgl-engine/lib/BindParameters.js +1 -1
  460. package/views/3d/webgl-engine/lib/Compositor.js +1 -1
  461. package/views/3d/webgl-engine/lib/GaussianSplatRenderNode.js +1 -1
  462. package/views/3d/webgl-engine/lib/OrderIndependentTransparency.js +1 -1
  463. package/views/3d/webgl-engine/lib/RenderFeature.js +1 -1
  464. package/views/3d/webgl-engine/lib/Renderer.js +1 -1
  465. package/views/3d/webgl-engine/lib/SamplerRepository.js +2 -0
  466. package/views/3d/webgl-engine/lib/SortedRenderGeometryRenderer.js +1 -1
  467. package/views/3d/webgl-engine/lib/Viewshed.js +1 -1
  468. package/views/3d/webgl-engine/lib/edgeRendering/EdgeRenderer.js +1 -1
  469. package/views/3d/webgl-engine/lib/edgeRendering/EdgeShader.glsl.js +1 -1
  470. package/views/3d/webgl-engine/lib/edgeRendering/EdgeShaderTechniqueConfiguration.js +1 -1
  471. package/views/3d/webgl-engine/materials/CheckerBoardMaterial.js +1 -1
  472. package/views/3d/webgl-engine/materials/ColorMaterial.js +1 -1
  473. package/views/3d/webgl-engine/materials/DefaultMaterial.js +1 -1
  474. package/views/3d/webgl-engine/materials/HUDMaterial.js +1 -1
  475. package/views/3d/webgl-engine/materials/HeatmapDensityMaterial.js +1 -1
  476. package/views/3d/webgl-engine/materials/ImageMaterial.js +1 -1
  477. package/views/3d/webgl-engine/materials/LineCalloutMaterial.js +1 -1
  478. package/views/3d/webgl-engine/materials/LineMarkerMaterial.js +1 -1
  479. package/views/3d/webgl-engine/materials/MeasurementArrowMaterial.js +1 -1
  480. package/views/3d/webgl-engine/materials/Path.glsl.js +1 -1
  481. package/views/3d/webgl-engine/materials/PathMaterial.js +1 -1
  482. package/views/3d/webgl-engine/materials/PathTechniqueConfiguration.js +1 -1
  483. package/views/3d/webgl-engine/materials/PatternMaterial.js +1 -1
  484. package/views/3d/webgl-engine/materials/RibbonLineMaterial.js +1 -1
  485. package/views/3d/webgl-engine/materials/ShadedColorMaterial.js +1 -1
  486. package/views/3d/webgl-engine/materials/SlicePlaneMaterial.js +1 -1
  487. package/views/3d/webgl-engine/materials/Water.glsl.js +1 -1
  488. package/views/3d/webgl-engine/materials/WaterMaterial.js +1 -1
  489. package/views/3d/webgl-engine/materials/WaterTechniqueConfiguration.js +1 -1
  490. package/views/3d/webgl-engine/shaders/CheckerBoard.glsl.js +1 -1
  491. package/views/3d/webgl-engine/shaders/CheckerBoardTechniqueConfiguration.js +1 -1
  492. package/views/3d/webgl-engine/shaders/ColorMaterial.glsl.js +1 -1
  493. package/views/3d/webgl-engine/shaders/ColorMaterialTechniqueConfiguration.js +1 -1
  494. package/views/3d/webgl-engine/shaders/DefaultMaterial.glsl.js +1 -1
  495. package/views/3d/webgl-engine/shaders/DefaultMaterialTechniqueConfiguration.js +1 -1
  496. package/views/3d/webgl-engine/shaders/GaussianSplat.glsl.js +1 -1
  497. package/views/3d/webgl-engine/shaders/GaussianSplatTechniqueConfiguration.js +1 -1
  498. package/views/3d/webgl-engine/shaders/HUDMaterialTechniqueConfiguration.js +1 -1
  499. package/views/3d/webgl-engine/shaders/ImageMaterial.glsl.js +1 -1
  500. package/views/3d/webgl-engine/shaders/ImageMaterialTechniqueConfiguration.js +1 -1
  501. package/views/3d/webgl-engine/shaders/LineCallout.glsl.js +1 -1
  502. package/views/3d/webgl-engine/shaders/LineCalloutTechnique.js +1 -1
  503. package/views/3d/webgl-engine/shaders/LineCalloutTechniqueConfiguration.js +1 -1
  504. package/views/3d/webgl-engine/shaders/LineMarker.glsl.js +1 -1
  505. package/views/3d/webgl-engine/shaders/LineMarkerTechnique.js +1 -1
  506. package/views/3d/webgl-engine/shaders/LineMarkerTechniqueConfiguration.js +1 -1
  507. package/views/3d/webgl-engine/shaders/Pattern.glsl.js +1 -1
  508. package/views/3d/webgl-engine/shaders/PatternTechniqueConfiguration.js +1 -1
  509. package/views/3d/webgl-engine/shaders/RealisticTree.glsl.js +1 -1
  510. package/views/3d/webgl-engine/shaders/RibbonLine.glsl.js +1 -1
  511. package/views/3d/webgl-engine/shaders/RibbonLineTechnique.js +1 -1
  512. package/views/3d/webgl-engine/shaders/RibbonLineTechniqueConfiguration.js +1 -1
  513. package/views/3d/webgl-engine/shaders/ShadedColorMaterial.glsl.js +1 -1
  514. package/views/3d/webgl-engine/shaders/ShadedColorMaterialTechniqueConfiguration.js +1 -1
  515. package/views/3d/webgl-engine/statistics/RendererPerformanceInfo.js +1 -1
  516. package/views/VideoView.js +1 -1
  517. package/views/ViewAnimation.d.ts +2 -21
  518. package/views/interactive/tooltip/content/TooltipContent.js +1 -1
  519. package/views/layers/FeatureLikeLayerView.js +1 -1
  520. package/views/support/rasterHitTestUtils.js +2 -0
  521. package/views/video/VideoOperationalDataView.js +1 -1
  522. package/views/webgl/Sampler.js +1 -1
  523. package/views/webgl/ShaderBuilder.js +1 -1
  524. package/widgets/FeatureTable/FeatureTableViewModel.d.ts +19 -3
  525. package/widgets/FeatureTable/FeatureTableViewModel.js +1 -1
  526. package/widgets/FeatureTable/Grid/GridViewModel.js +1 -1
  527. package/widgets/FeatureTable/VisibleElements.d.ts +15 -1
  528. package/widgets/FeatureTable/VisibleElements.js +1 -1
  529. package/widgets/FeatureTable/support/FeatureStore.js +1 -1
  530. package/widgets/FeatureTable.d.ts +15 -1
  531. package/widgets/FeatureTable.js +1 -1
  532. package/widgets/Search/SearchViewModel.js +1 -1
  533. package/widgets/support/widgetUtils.js +1 -1
  534. package/assets/esri/core/workers/chunks/01be1315c60810651783.js +0 -1
  535. package/assets/esri/core/workers/chunks/0dd12d6af0cf7707109c.js +0 -2
  536. package/assets/esri/core/workers/chunks/0e2e4cb34ac6aac88ebf.js +0 -1
  537. package/assets/esri/core/workers/chunks/155f57fe9886ef322e2a.js +0 -1
  538. package/assets/esri/core/workers/chunks/170f4d83555d238e365b.js +0 -1
  539. package/assets/esri/core/workers/chunks/171cca726a763c770469.js +0 -1
  540. package/assets/esri/core/workers/chunks/1761dc5799850ca7b66c.js +0 -1
  541. package/assets/esri/core/workers/chunks/17d54e77001ccb48a258.js +0 -1
  542. package/assets/esri/core/workers/chunks/19afacc9a741038e4bfb.js +0 -1
  543. package/assets/esri/core/workers/chunks/1a198c9e17f7a058669e.js +0 -1
  544. package/assets/esri/core/workers/chunks/1ae4e43a399e1974f106.js +0 -1
  545. package/assets/esri/core/workers/chunks/1c742bfe3b0aa51823d1.js +0 -1
  546. package/assets/esri/core/workers/chunks/1d8777266fb1c5cfca55.js +0 -1
  547. package/assets/esri/core/workers/chunks/1f76c06af4682c85bc21.js +0 -1
  548. package/assets/esri/core/workers/chunks/205e957ffd7e95f530f7.js +0 -1
  549. package/assets/esri/core/workers/chunks/20e715e3aeb1c3265901.js +0 -1
  550. package/assets/esri/core/workers/chunks/210629f3c28d4339c655.js +0 -1
  551. package/assets/esri/core/workers/chunks/21a8e2a11ffacc226e2b.js +0 -1
  552. package/assets/esri/core/workers/chunks/27643750dce502fedef3.js +0 -1
  553. package/assets/esri/core/workers/chunks/29b1a4ce7646b403008e.js +0 -1
  554. package/assets/esri/core/workers/chunks/2a65bbe6c63c384cbf5f.js +0 -1
  555. package/assets/esri/core/workers/chunks/2fa69ca3ba8c442dd7d6.js +0 -1
  556. package/assets/esri/core/workers/chunks/314140e2e9b813191907.js +0 -1
  557. package/assets/esri/core/workers/chunks/3158a3487d3e8a61b680.js +0 -1
  558. package/assets/esri/core/workers/chunks/35217befc8f9882d139e.js +0 -1
  559. package/assets/esri/core/workers/chunks/38328a785365c4783b1e.js +0 -1
  560. package/assets/esri/core/workers/chunks/3a2ecb883fdb5c598544.js +0 -30
  561. package/assets/esri/core/workers/chunks/3eef3c2e94aa2a00d76a.js +0 -1
  562. package/assets/esri/core/workers/chunks/40d6ad030614099155cd.js +0 -1414
  563. package/assets/esri/core/workers/chunks/41396724040180d2537f.js +0 -1
  564. package/assets/esri/core/workers/chunks/41e59d75ccb51a238739.js +0 -1
  565. package/assets/esri/core/workers/chunks/44016e1176629c36bc11.js +0 -1
  566. package/assets/esri/core/workers/chunks/453280ea87a696a4df81.js +0 -1
  567. package/assets/esri/core/workers/chunks/499b899bf88aaf29230d.js +0 -1
  568. package/assets/esri/core/workers/chunks/4b0d6309abf273f1f79f.js +0 -1
  569. package/assets/esri/core/workers/chunks/4e07827ab870c65377d3.js +0 -1
  570. package/assets/esri/core/workers/chunks/51852ef71ac04954fdae.js +0 -1
  571. package/assets/esri/core/workers/chunks/53b797e384be9628fc94.js +0 -1
  572. package/assets/esri/core/workers/chunks/549a51dedcc49f366e53.js +0 -1
  573. package/assets/esri/core/workers/chunks/54c0306082d30d59cba2.js +0 -1
  574. package/assets/esri/core/workers/chunks/56c7d7c7217557375fb6.js +0 -1
  575. package/assets/esri/core/workers/chunks/57cdd5d4ae073d5ca725.js +0 -1
  576. package/assets/esri/core/workers/chunks/5a1d975b3e9e6b7eff67.js +0 -1
  577. package/assets/esri/core/workers/chunks/5b9257c5359fa05f4f28.js +0 -1
  578. package/assets/esri/core/workers/chunks/5d574079f0e96e883aab.js +0 -1
  579. package/assets/esri/core/workers/chunks/5d967bcf71c05ddb1ab6.js +0 -1
  580. package/assets/esri/core/workers/chunks/5f6942ac94acd7842926.js +0 -1
  581. package/assets/esri/core/workers/chunks/60d0f8a949b130baff81.js +0 -1
  582. package/assets/esri/core/workers/chunks/61778185d702da468b00.js +0 -1
  583. package/assets/esri/core/workers/chunks/61b49cdaf288f36f9288.js +0 -1
  584. package/assets/esri/core/workers/chunks/621ea864e2774f160d1c.js +0 -1
  585. package/assets/esri/core/workers/chunks/679086351352756b33c9.js +0 -1
  586. package/assets/esri/core/workers/chunks/681e97ebbf9c69c410c6.js +0 -1
  587. package/assets/esri/core/workers/chunks/69644b8a6ce340ca1159.js +0 -1
  588. package/assets/esri/core/workers/chunks/6a567755b67c06d16f21.js +0 -1
  589. package/assets/esri/core/workers/chunks/6e7bb6d3e739527116a4.js +0 -1
  590. package/assets/esri/core/workers/chunks/70263c2182dc43046742.js +0 -1
  591. package/assets/esri/core/workers/chunks/71326d16b5cc35c3ff7f.js +0 -1
  592. package/assets/esri/core/workers/chunks/73a045061e69a22b6869.js +0 -1
  593. package/assets/esri/core/workers/chunks/73e000cc3c4da10e9937.js +0 -1
  594. package/assets/esri/core/workers/chunks/75669912cddcb5db52c8.js +0 -1
  595. package/assets/esri/core/workers/chunks/78fbfc03d9b827c3f767.js +0 -1
  596. package/assets/esri/core/workers/chunks/7d0350f459844162d3a7.js +0 -1
  597. package/assets/esri/core/workers/chunks/7e39e9d4d68843b60e4c.js +0 -1
  598. package/assets/esri/core/workers/chunks/823127b23bec07e1f9d0.js +0 -2
  599. package/assets/esri/core/workers/chunks/84eb889b9cce35dac2e5.js +0 -1
  600. package/assets/esri/core/workers/chunks/854fe80272b59fafc2e9.js +0 -1
  601. package/assets/esri/core/workers/chunks/861817be5e050e9522ab.js +0 -1
  602. package/assets/esri/core/workers/chunks/888f6387e795d45a7ad3.js +0 -2
  603. package/assets/esri/core/workers/chunks/891d97d0da6361d63679.js +0 -1
  604. package/assets/esri/core/workers/chunks/8969788c57bcc11bf77b.js +0 -1
  605. package/assets/esri/core/workers/chunks/8d6da6573d07385f4ed5.js +0 -1
  606. package/assets/esri/core/workers/chunks/8ede12f54b215c52cf3c.js +0 -1
  607. package/assets/esri/core/workers/chunks/8fb336c2066113300d0d.js +0 -1
  608. package/assets/esri/core/workers/chunks/8fed6becd107d2ed9bbd.js +0 -1
  609. package/assets/esri/core/workers/chunks/97062996e1e4196cfa7c.js +0 -1
  610. package/assets/esri/core/workers/chunks/97210bcb5e3cf3ac961b.js +0 -1
  611. package/assets/esri/core/workers/chunks/9a235c92f21df2c17aa8.js +0 -1
  612. package/assets/esri/core/workers/chunks/9c819ebdc98ed8b6afcf.js +0 -1
  613. package/assets/esri/core/workers/chunks/9d7ffd83f69d6e639f09.js +0 -1
  614. package/assets/esri/core/workers/chunks/9dfd00972c12a4adc15d.js +0 -1
  615. package/assets/esri/core/workers/chunks/9f1f5fb648302c43ad12.js +0 -1
  616. package/assets/esri/core/workers/chunks/9fab410b9fa668dc498b.js +0 -1
  617. package/assets/esri/core/workers/chunks/a061a17b62686f945e81.js +0 -1
  618. package/assets/esri/core/workers/chunks/a30815a0155a3b8790b4.js +0 -1
  619. package/assets/esri/core/workers/chunks/a43decc8ede8b4910553.js +0 -1
  620. package/assets/esri/core/workers/chunks/a462aa1c7b68efad6906.js +0 -1
  621. package/assets/esri/core/workers/chunks/a4b6fdbc995be03d2afb.js +0 -1
  622. package/assets/esri/core/workers/chunks/a520f83ae0c3c3e78858.js +0 -1
  623. package/assets/esri/core/workers/chunks/a5d9dbb1fef8c4465943.js +0 -1
  624. package/assets/esri/core/workers/chunks/a73e8b80760dc88f926f.js +0 -1
  625. package/assets/esri/core/workers/chunks/a96692514dcaa50340dd.js +0 -1
  626. package/assets/esri/core/workers/chunks/aa7aaeae31ddb259e55e.js +0 -1
  627. package/assets/esri/core/workers/chunks/b014f0b2385dc82dc683.js +0 -2
  628. package/assets/esri/core/workers/chunks/b2120c4c56656be941ae.js +0 -1
  629. package/assets/esri/core/workers/chunks/b3950d5f1f3352521504.js +0 -1
  630. package/assets/esri/core/workers/chunks/b3f0600729227b458a75.js +0 -1
  631. package/assets/esri/core/workers/chunks/b8005b1996f42dee8237.js +0 -1
  632. package/assets/esri/core/workers/chunks/b85c9ceeece1bae67a16.js +0 -1
  633. package/assets/esri/core/workers/chunks/b8a11d32a4847513619b.js +0 -1
  634. package/assets/esri/core/workers/chunks/b8acb6c2538053c01cc6.js +0 -1
  635. package/assets/esri/core/workers/chunks/b8e85b7d5eed6e7c79b5.js +0 -1
  636. package/assets/esri/core/workers/chunks/bbaf1d9835671c0165ca.js +0 -1
  637. package/assets/esri/core/workers/chunks/bbdf27bc34fadbe8e6fe.js +0 -1
  638. package/assets/esri/core/workers/chunks/bc2c7cb99e227ddbd3a6.js +0 -1
  639. package/assets/esri/core/workers/chunks/bc85bb82cfcbc216fa31.js +0 -1
  640. package/assets/esri/core/workers/chunks/bcefdf9753d9d2f6f1be.js +0 -1
  641. package/assets/esri/core/workers/chunks/be42fe0b7ba0e27030b2.js +0 -1
  642. package/assets/esri/core/workers/chunks/be4d13088a557b7de4b1.js +0 -1
  643. package/assets/esri/core/workers/chunks/be61ea8e1883b915bbb1.js +0 -1
  644. package/assets/esri/core/workers/chunks/bf758d57091fa534c1f8.js +0 -1
  645. package/assets/esri/core/workers/chunks/bfd516c37fb717e14d71.js +0 -1
  646. package/assets/esri/core/workers/chunks/c22945637a40355fbe61.js +0 -1
  647. package/assets/esri/core/workers/chunks/c25a58d9f94aaa96957d.js +0 -1
  648. package/assets/esri/core/workers/chunks/c6a43f748dbf8bac4bb5.js +0 -1
  649. package/assets/esri/core/workers/chunks/c79827f879d1d58d3f1b.js +0 -1
  650. package/assets/esri/core/workers/chunks/c7ca47f5d4b2f3885239.js +0 -1
  651. package/assets/esri/core/workers/chunks/cb903ccbce87172a0757.js +0 -1
  652. package/assets/esri/core/workers/chunks/cda2e445eb2ac269abdf.js +0 -1
  653. package/assets/esri/core/workers/chunks/d024278a1c2aa7d22be3.js +0 -1
  654. package/assets/esri/core/workers/chunks/d264aed5dbe09e34040f.js +0 -1
  655. package/assets/esri/core/workers/chunks/d315098b038a96084ff5.js +0 -1
  656. package/assets/esri/core/workers/chunks/d4e55eb75fa4d3ac1e84.js +0 -1
  657. package/assets/esri/core/workers/chunks/d5c7ebfd5c2ca635a7a8.js +0 -1
  658. package/assets/esri/core/workers/chunks/d635f97b7b82a37482d6.js +0 -1
  659. package/assets/esri/core/workers/chunks/d7b92bd9198dd3b27eb5.js +0 -1
  660. package/assets/esri/core/workers/chunks/d816d1a4220d827faf63.js +0 -1
  661. package/assets/esri/core/workers/chunks/d82b543c96f09ded3bf9.js +0 -2
  662. package/assets/esri/core/workers/chunks/d8dde0d1759e009b8373.js +0 -1
  663. package/assets/esri/core/workers/chunks/da0a61f73d45ea9e71fc.js +0 -1
  664. package/assets/esri/core/workers/chunks/e305ced975d885c28e7e.js +0 -1
  665. package/assets/esri/core/workers/chunks/e3a73d9acebccd3ba49b.js +0 -1
  666. package/assets/esri/core/workers/chunks/e3c60b7df2740e600066.js +0 -1
  667. package/assets/esri/core/workers/chunks/e5801b0f3893d4d4f5b0.js +0 -1
  668. package/assets/esri/core/workers/chunks/e59f5dc8c85bcea66e98.js +0 -1
  669. package/assets/esri/core/workers/chunks/e611cd03eee4fae7c413.js +0 -1
  670. package/assets/esri/core/workers/chunks/e62d08f5488a74cbda82.js +0 -1
  671. package/assets/esri/core/workers/chunks/e64a92b6f4075616f40f.js +0 -1
  672. package/assets/esri/core/workers/chunks/e67bdd8bf38ebe89a344.js +0 -1
  673. package/assets/esri/core/workers/chunks/e78b442417f6a903b9b1.js +0 -1
  674. package/assets/esri/core/workers/chunks/e9dd60d0220036545ebb.js +0 -1
  675. package/assets/esri/core/workers/chunks/ea6d3b7c7d720aa7bc94.js +0 -1
  676. package/assets/esri/core/workers/chunks/edc2e87968c958bc852b.js +0 -1
  677. package/assets/esri/core/workers/chunks/ef0fe4e1a9e960a74c60.js +0 -1
  678. package/assets/esri/core/workers/chunks/ef9d74f8d5a502fda809.js +0 -1
  679. package/assets/esri/core/workers/chunks/efbbcf467b2a27a92b85.js +0 -1
  680. package/assets/esri/core/workers/chunks/f09446b9ff937a84d6d3.js +0 -1
  681. package/assets/esri/core/workers/chunks/f0bc5e8e44d53b73d431.js +0 -1
  682. package/assets/esri/core/workers/chunks/f201edf9b68717a6106d.js +0 -1
  683. package/assets/esri/core/workers/chunks/f59f1db572be1f19887f.js +0 -1
  684. package/assets/esri/core/workers/chunks/f9cde38cb56c547e87e5.js +0 -1
  685. package/assets/esri/core/workers/chunks/fb9a889ec9fd23739a14.js +0 -1
  686. package/assets/esri/core/workers/chunks/fc64ae69581e4c38fa8a.js +0 -1
  687. package/assets/esri/core/workers/chunks/fd6bbe47773bbd9f7dd9.js +0 -1
  688. package/assets/esri/core/workers/chunks/fe1b67ab7748a3aef231.js +0 -1
  689. package/assets/esri/core/workers/chunks/fe3b42eadcdd9ba54f05.js +0 -1
  690. package/chunks/HUDCompositing.glsl.js +0 -2
  691. package/views/3d/webgl-engine/core/shaderLibrary/shading/MultipassGeometryTest.glsl.js +0 -5
  692. package/views/3d/webgl-engine/core/shaderLibrary/shading/TerrainDepthTest.glsl.js +0 -8
  693. package/views/3d/webgl-engine/effects/fboFormatUtils.js +0 -2
  694. package/views/3d/webgl-engine/shaders/HUDCompositing.glsl.js +0 -2
  695. package/views/3d/webgl-engine/shaders/HUDCompositingTechnique.js +0 -2
  696. /package/assets/esri/core/workers/chunks/{0dd12d6af0cf7707109c.js.LICENSE.txt → 7bacdd65a6cc4d284e0a.js.LICENSE.txt} +0 -0
  697. /package/assets/esri/core/workers/chunks/{823127b23bec07e1f9d0.js.LICENSE.txt → 85edbb072a2ce6c1bb30.js.LICENSE.txt} +0 -0
  698. /package/assets/esri/core/workers/chunks/{888f6387e795d45a7ad3.js.LICENSE.txt → d4a9eb4470cc6a1f67fc.js.LICENSE.txt} +0 -0
  699. /package/assets/esri/core/workers/chunks/{b014f0b2385dc82dc683.js.LICENSE.txt → f09a41ad239d467d9438.js.LICENSE.txt} +0 -0
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */
2
- import{__decorate as e}from"tslib";import t from"../../../../core/Error.js";import{destroyMaybe as r}from"../../../../core/maybe.js";import{EsriPromise as i}from"../../../../core/Promise.js";import{initial as s,watch as o,sync as n,whenOnce as l}from"../../../../core/reactiveUtils.js";import{property as a,subclass as p}from"../../../../core/accessorSupport/decorators.js";import{UpdatingHandles as h}from"../../../../core/support/UpdatingHandles.js";import{FeatureTileController3D as u}from"../../../../layers/graphics/controllers/FeatureTileController3D.js";import{symbolHasExtrudeSymbolLayer as d}from"../../../../symbols/support/utils.js";import{elevationAlignPointsInFeatures as c}from"./elevationAlignPointsInFeatures.js";import{Graphics3DFeatureProcessor as y}from"./Graphics3DFeatureProcessor.js";import{QueryEngine as g}from"./QueryEngine.js";import{QueryEngineContext as m}from"./QueryEngineContext.js";import{queryForSymbologySnapping as f}from"./queryForSymbologySnapping.js";import{HeatmapFeatureProcessor as w}from"../support/HeatmapFeatureProcessor.js";import{LayerViewPerformanceInfo as E}from"../support/LayerViewPerformanceInfo.js";import{hasLayerBasedScaleVisibility as b}from"../../../support/layerViewUtils.js";import{TaskPriority as V}from"../../../support/Scheduler.js";let F=class extends i{constructor(e){super(e),this._dataUpdatingState=0,this.graphicsQuery={queryForSymbologySnapping:async(e,t)=>this.symbologySnappingSupported?f(this.graphics3DProcessor,e,t):{candidates:[],sourceCandidateIndices:[]},executeQuery:(e,t)=>this.queryEngine.executeQuery(e,t),executeQueryForIds:(e,t)=>this.queryEngine.executeQueryForIds(e,t),executeQueryForCount:(e,t)=>this.queryEngine.executeQueryForCount(e,t),executeQueryForExtent:(e,t)=>this.queryEngine.executeQueryForExtent(e,t),executeQueryForLatestObservations:(e,t)=>this.queryEngine.executeQueryForLatestObservations(e,t),executeAttributeBinsQuery:(e,t)=>this.queryEngine.executeAttributeBinsQuery(e,t)},this.controller=null,this.updatingHandles=new h,this._controllerCreated=!1,this._pendingController=null}initialize(){this.addResolvingPromise(this._initializeController()),this.updatingHandles.add(()=>this.layer.renderer,e=>this._recreateProcessor(e),s),this.updatingHandles.add(()=>this.updatePolicy,e=>this.processor.preferredUpdatePolicy=e),this.updatingHandles.add(()=>this.layerView.availableFields,()=>this.queryEngine?.clear());const{layer:e,view:t,hasM:r,hasZ:i}=this,{spatialReference:o,resourceController:n}=t,l=new m(o,e,n,()=>this.processor.featureStore,i,r,()=>this.layerView.availableFields);this.queryEngine=new g({context:l,priority:V.FEATURE_QUERY_ENGINE})}destroy(){this.removeAllHandles(),this.updatingHandles.destroy(),this._destroyPendingController(),this.controller=r(this.controller),this.processor=r(this.processor),this.queryEngine=r(this.queryEngine),this.loadedGraphics=null}_destroyPendingController(){this._pendingController=r(this._pendingController)}get updating(){return this.updatingHandles.updating||!this._controllerCreated||this.controller?.updating||this.processor?.updating}get legendEnabled(){return this.processor.legendEnabled}get layer(){return this.layerView.layer}get layerViewUid(){return this.layerView.uid}get view(){return this.layerView.view}get hasZ(){return this.layerView.hasZ}get hasM(){return this.layerView.hasM}get fullOpacity(){return this.layerView.fullOpacity}get suspended(){return this.layerView.suspended}get filter(){return"filter"in this.layerView?this.layerView.filter:null}get effectiveDisplayFilter(){return"effectiveDisplayFilter"in this.layerView?this.layerView.effectiveDisplayFilter:null}get highlightIds(){return"highlightIds"in this.layerView?this.layerView.highlightIds:null}get slicePlaneEnabled(){return this.layerView.slicePlaneEnabled}get featureSpatialReference(){return"featureSpatialReference"in this.layerView?this.layerView.featureSpatialReference:null}get graphics3DProcessor(){return"graphics-3d"===this.processor?.type?this.processor:null}get heatmapProcessor(){return"heatmap"===this.processor?.type?this.processor:null}get hasAllFeatures(){return!(!this.controller||!("hasAllFeatures"in this.controller))&&this.controller.hasAllFeatures}get hasAllFeaturesInView(){return!(!this.controller||!("hasAllFeaturesInView"in this.controller))&&this.controller.hasAllFeaturesInView}get hasFullGeometries(){return!(!this.controller||!("hasFullGeometries"in this.controller))&&this.controller.hasFullGeometries}get symbologySnappingSupported(){return this.layer?.renderer?.symbols?.some(d)??!1}get updatePolicy(){return 1}get scaleVisibilitySuspended(){return this.processor?.scaleVisibilitySuspended}get timeExtent(){return"timeExtent"in this.layerView?this.layerView.timeExtent:null}get dataUpdating(){return 0!==this._dataUpdatingState}get suspendInfo(){return this.processor?.suspendInfo??{}}forEachGraphic(e){this.loadedGraphics.forEach(e)}findGraphic(e){return this.loadedGraphics.find(e)}queryObjectIds(e,t){return this.layerView.queryObjectIds(e,t)}whenGraphicBounds(e,t){return this.processor?.whenGraphicBounds(e,t)}computeAttachmentOrigin(e,t){return this.processor?.computeAttachmentOrigin(e,t)}async elevationAlignPointsInFeatures(e,r){const i=this.graphics3DProcessor;if(null==i)throw new t("featurelayerview3d:missing-processor","A Graphics3D processor is needed to resolve graphics elevation.");return c(this.view,this.layer,e=>i.getGraphics3DGraphicByObjectId(e),e,r)}highlightByGraphics(e,t){return this.processor.highlightByGraphics(e,t)}highlightByObjectIds(e,t){return this.processor.highlightByObjectIds(e,this.layer.objectIdField,t)}maskOccludee(e){return this.processor.maskOccludee(e)}notifyContentGeometryUpdate(){this.layerView.emit("visible-geometry-changed")}async _initializeController(){const e=this.createController();this._pendingController=e,this._setupDataUpdating(e),await e.when(),this._setControllerWhenInitialized(e)}_setupDataUpdating(e){"dataUpdating"in e&&this.addHandles([o(()=>e.dataUpdating,e=>{e&&0===this._dataUpdatingState?this._dataUpdatingState=1:e||1!==this._dataUpdatingState||(this._dataUpdatingState=0)},n),o(()=>!!this.graphics3DProcessor?.dataUpdating,t=>{t&&1===this._dataUpdatingState?this._dataUpdatingState=2:t||2!==this._dataUpdatingState||(this._dataUpdatingState=e.dataUpdating?1:0)},n)])}async _setControllerWhenInitialized(e){try{await this.when()}catch(t){}this._controllerCreated=!0,this.isResolved()&&!this.destroyed?(await l(()=>this.view?.groundView?.ready),this.beforeSetController(e),this._pendingController=null,this.controller=e,this.loadedGraphics=e.graphics):this._destroyPendingController()}_recreateProcessor(e){const t="heatmap"===e?.type,r="heatmap"===this.processor?.type,i=this.processor;if(i&&t===r)return;const s=t?new w({owner:this}):new y({owner:this,frustumVisibilityEnabled:!0,scaleVisibilityEnabled:!b(),filterVisibilityEnabled:!0,timeExtentEnabled:!0,elevationAlignmentEnabled:!0,elevationFeatureExpressionEnabled:!0,preferredUpdatePolicy:this.updatePolicy,updateClippingExtent:e=>this._updateClippingExtent(e)});this.processor=s,i?.destroy(),this.queryEngine?.clear(),this.addResolvingPromise(s.when())}_updateClippingExtent(e){if(this.clippingExtent=e,!this.controller)return!1;switch(this.controller.type){case"stream":return!1;case"feature-tile-3d":return this.controller.extent=e,!0}}get usedMemory(){return this.processor?.usedMemory??0}get performanceInfo(){const e=this.controller instanceof u?this.controller:null;return new E(this.usedMemory,this.loadedGraphics?.length,e?.serviceDataCount??-1,e?.maximumNumberOfFeatures??-1,0,this.processor.performanceInfo)}};e([a()],F.prototype,"updating",null),e([a()],F.prototype,"legendEnabled",null),e([a()],F.prototype,"layerView",void 0),e([a()],F.prototype,"layer",null),e([a()],F.prototype,"layerViewUid",null),e([a()],F.prototype,"view",null),e([a()],F.prototype,"hasZ",null),e([a()],F.prototype,"hasM",null),e([a()],F.prototype,"fullOpacity",null),e([a()],F.prototype,"suspended",null),e([a()],F.prototype,"filter",null),e([a()],F.prototype,"effectiveDisplayFilter",null),e([a()],F.prototype,"highlightIds",null),e([a()],F.prototype,"slicePlaneEnabled",null),e([a()],F.prototype,"featureSpatialReference",null),e([a()],F.prototype,"loadedGraphics",void 0),e([a()],F.prototype,"graphics3DProcessor",null),e([a()],F.prototype,"heatmapProcessor",null),e([a()],F.prototype,"hasAllFeatures",null),e([a()],F.prototype,"hasAllFeaturesInView",null),e([a()],F.prototype,"hasFullGeometries",null),e([a()],F.prototype,"symbologySnappingSupported",null),e([a()],F.prototype,"updatePolicy",null),e([a()],F.prototype,"scaleVisibilitySuspended",null),e([a()],F.prototype,"timeExtent",null),e([a()],F.prototype,"_dataUpdatingState",void 0),e([a({readOnly:!0})],F.prototype,"dataUpdating",null),e([a()],F.prototype,"controller",void 0),e([a()],F.prototype,"processor",void 0),e([a()],F.prototype,"updatingHandles",void 0),e([a()],F.prototype,"_controllerCreated",void 0),F=e([p("esri.views.3d.layers.graphics.Graphics3DGraphicsPipeline")],F);export{F as Graphics3DGraphicsPipeline};
2
+ import{__decorate as e}from"tslib";import t from"../../../../core/Error.js";import{destroyMaybe as r}from"../../../../core/maybe.js";import{EsriPromise as i}from"../../../../core/Promise.js";import{initial as s,sync as o,watch as n,whenOnce as l}from"../../../../core/reactiveUtils.js";import{property as a,subclass as p}from"../../../../core/accessorSupport/decorators.js";import{UpdatingHandles as h}from"../../../../core/support/UpdatingHandles.js";import{FeatureTileController3D as u}from"../../../../layers/graphics/controllers/FeatureTileController3D.js";import{symbolHasExtrudeSymbolLayer as d}from"../../../../symbols/support/utils.js";import{elevationAlignPointsInFeatures as c}from"./elevationAlignPointsInFeatures.js";import{Graphics3DFeatureProcessor as y}from"./Graphics3DFeatureProcessor.js";import{QueryEngine as g}from"./QueryEngine.js";import{QueryEngineContext as m}from"./QueryEngineContext.js";import{queryForSymbologySnapping as f}from"./queryForSymbologySnapping.js";import{HeatmapFeatureProcessor as w}from"../support/HeatmapFeatureProcessor.js";import{LayerViewPerformanceInfo as E}from"../support/LayerViewPerformanceInfo.js";import{hasLayerBasedScaleVisibility as b}from"../../../support/layerViewUtils.js";import{TaskPriority as V}from"../../../support/Scheduler.js";let F=class extends i{constructor(e){super(e),this._dataUpdatingState=0,this.graphicsQuery={queryForSymbologySnapping:async(e,t)=>this.symbologySnappingSupported?f(this.graphics3DProcessor,e,t):{candidates:[],sourceCandidateIndices:[]},executeQuery:(e,t)=>this.queryEngine.executeQuery(e,t),executeQueryForIds:(e,t)=>this.queryEngine.executeQueryForIds(e,t),executeQueryForCount:(e,t)=>this.queryEngine.executeQueryForCount(e,t),executeQueryForExtent:(e,t)=>this.queryEngine.executeQueryForExtent(e,t),executeQueryForLatestObservations:(e,t)=>this.queryEngine.executeQueryForLatestObservations(e,t),executeAttributeBinsQuery:(e,t)=>this.queryEngine.executeAttributeBinsQuery(e,t)},this.controller=null,this.updatingHandles=new h,this._controllerCreated=!1,this._pendingController=null}initialize(){this.addResolvingPromise(this._initializeController()),this.updatingHandles.add(()=>this.layer.renderer,e=>this._recreateProcessor(e),s),this.updatingHandles.add(()=>this.updatePolicy,e=>this.processor.preferredUpdatePolicy=e),this.updatingHandles.add(()=>this.layerView.availableFields,()=>this.queryEngine?.clear(),o);const{layer:e,view:t,hasM:r,hasZ:i}=this,{spatialReference:n,resourceController:l}=t,a=new m(n,e,l,()=>this.processor.featureStore,i,r,()=>this.layerView.availableFields);this.queryEngine=new g({context:a,priority:V.FEATURE_QUERY_ENGINE})}destroy(){this.removeAllHandles(),this.updatingHandles.destroy(),this._destroyPendingController(),this.controller=r(this.controller),this.processor=r(this.processor),this.queryEngine=r(this.queryEngine),this.loadedGraphics=null}_destroyPendingController(){this._pendingController=r(this._pendingController)}get updating(){return this.updatingHandles.updating||!this._controllerCreated||this.controller?.updating||this.processor?.updating}get legendEnabled(){return this.processor.legendEnabled}get layer(){return this.layerView.layer}get layerViewUid(){return this.layerView.uid}get view(){return this.layerView.view}get hasZ(){return this.layerView.hasZ}get hasM(){return this.layerView.hasM}get fullOpacity(){return this.layerView.fullOpacity}get suspended(){return this.layerView.suspended}get filter(){return"filter"in this.layerView?this.layerView.filter:null}get effectiveDisplayFilter(){return"effectiveDisplayFilter"in this.layerView?this.layerView.effectiveDisplayFilter:null}get highlightIds(){return"highlightIds"in this.layerView?this.layerView.highlightIds:null}get slicePlaneEnabled(){return this.layerView.slicePlaneEnabled}get featureSpatialReference(){return"featureSpatialReference"in this.layerView?this.layerView.featureSpatialReference:null}get graphics3DProcessor(){return"graphics-3d"===this.processor?.type?this.processor:null}get heatmapProcessor(){return"heatmap"===this.processor?.type?this.processor:null}get hasAllFeatures(){return!(!this.controller||!("hasAllFeatures"in this.controller))&&this.controller.hasAllFeatures}get hasAllFeaturesInView(){return!(!this.controller||!("hasAllFeaturesInView"in this.controller))&&this.controller.hasAllFeaturesInView}get hasFullGeometries(){return!(!this.controller||!("hasFullGeometries"in this.controller))&&this.controller.hasFullGeometries}get symbologySnappingSupported(){return this.layer?.renderer?.symbols?.some(d)??!1}get updatePolicy(){return 1}get scaleVisibilitySuspended(){return this.processor?.scaleVisibilitySuspended}get timeExtent(){return"timeExtent"in this.layerView?this.layerView.timeExtent:null}get dataUpdating(){return 0!==this._dataUpdatingState}get suspendInfo(){return this.processor?.suspendInfo??{}}forEachGraphic(e){this.loadedGraphics.forEach(e)}findGraphic(e){return this.loadedGraphics.find(e)}queryObjectIds(e,t){return this.layerView.queryObjectIds(e,t)}whenGraphicBounds(e,t){return this.processor?.whenGraphicBounds(e,t)}computeAttachmentOrigin(e,t){return this.processor?.computeAttachmentOrigin(e,t)}async elevationAlignPointsInFeatures(e,r){const i=this.graphics3DProcessor;if(null==i)throw new t("featurelayerview3d:missing-processor","A Graphics3D processor is needed to resolve graphics elevation.");return c(this.view,this.layer,e=>i.getGraphics3DGraphicByObjectId(e),e,r)}highlightByGraphics(e,t){return this.processor.highlightByGraphics(e,t)}highlightByObjectIds(e,t){return this.processor.highlightByObjectIds(e,this.layer.objectIdField,t)}maskOccludee(e){return this.processor.maskOccludee(e)}notifyContentGeometryUpdate(){this.layerView.emit("visible-geometry-changed")}async _initializeController(){const e=this.createController();this._pendingController=e,this._setupDataUpdating(e),await e.when(),this._setControllerWhenInitialized(e)}_setupDataUpdating(e){"dataUpdating"in e&&this.addHandles([n(()=>e.dataUpdating,e=>{e&&0===this._dataUpdatingState?this._dataUpdatingState=1:e||1!==this._dataUpdatingState||(this._dataUpdatingState=0)},o),n(()=>!!this.graphics3DProcessor?.dataUpdating,t=>{t&&1===this._dataUpdatingState?this._dataUpdatingState=2:t||2!==this._dataUpdatingState||(this._dataUpdatingState=e.dataUpdating?1:0)},o)])}async _setControllerWhenInitialized(e){try{await this.when()}catch(t){}this._controllerCreated=!0,this.isResolved()&&!this.destroyed?(await l(()=>this.view?.groundView?.ready),this.beforeSetController(e),this._pendingController=null,this.controller=e,this.loadedGraphics=e.graphics):this._destroyPendingController()}_recreateProcessor(e){const t="heatmap"===e?.type,r="heatmap"===this.processor?.type,i=this.processor;if(i&&t===r)return;const s=t?new w({owner:this}):new y({owner:this,frustumVisibilityEnabled:!0,scaleVisibilityEnabled:!b(),filterVisibilityEnabled:!0,timeExtentEnabled:!0,elevationAlignmentEnabled:!0,elevationFeatureExpressionEnabled:!0,preferredUpdatePolicy:this.updatePolicy,updateClippingExtent:e=>this._updateClippingExtent(e)});this.processor=s,i?.destroy(),this.queryEngine?.clear(),this.addResolvingPromise(s.when())}_updateClippingExtent(e){if(this.clippingExtent=e,!this.controller)return!1;switch(this.controller.type){case"stream":return!1;case"feature-tile-3d":return this.controller.extent=e,!0}}get usedMemory(){return this.processor?.usedMemory??0}get performanceInfo(){const e=this.controller instanceof u?this.controller:null;return new E(this.usedMemory,this.loadedGraphics?.length,e?.serviceDataCount??-1,e?.maximumNumberOfFeatures??-1,0,this.processor.performanceInfo)}};e([a()],F.prototype,"updating",null),e([a()],F.prototype,"legendEnabled",null),e([a()],F.prototype,"layerView",void 0),e([a()],F.prototype,"layer",null),e([a()],F.prototype,"layerViewUid",null),e([a()],F.prototype,"view",null),e([a()],F.prototype,"hasZ",null),e([a()],F.prototype,"hasM",null),e([a()],F.prototype,"fullOpacity",null),e([a()],F.prototype,"suspended",null),e([a()],F.prototype,"filter",null),e([a()],F.prototype,"effectiveDisplayFilter",null),e([a()],F.prototype,"highlightIds",null),e([a()],F.prototype,"slicePlaneEnabled",null),e([a()],F.prototype,"featureSpatialReference",null),e([a()],F.prototype,"loadedGraphics",void 0),e([a()],F.prototype,"graphics3DProcessor",null),e([a()],F.prototype,"heatmapProcessor",null),e([a()],F.prototype,"hasAllFeatures",null),e([a()],F.prototype,"hasAllFeaturesInView",null),e([a()],F.prototype,"hasFullGeometries",null),e([a()],F.prototype,"symbologySnappingSupported",null),e([a()],F.prototype,"updatePolicy",null),e([a()],F.prototype,"scaleVisibilitySuspended",null),e([a()],F.prototype,"timeExtent",null),e([a()],F.prototype,"_dataUpdatingState",void 0),e([a({readOnly:!0})],F.prototype,"dataUpdating",null),e([a()],F.prototype,"controller",void 0),e([a()],F.prototype,"processor",void 0),e([a()],F.prototype,"updatingHandles",void 0),e([a()],F.prototype,"_controllerCreated",void 0),F=e([p("esri.views.3d.layers.graphics.Graphics3DGraphicsPipeline")],F);export{F as Graphics3DGraphicsPipeline};
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */
2
- import has from"../../../../core/has.js";import{pt2px as e}from"../../../../core/screenUtils.js";import{e as t}from"../../../../chunks/earcut.js";import{ZEROS as r}from"../../../../core/libs/gl-matrix-2/factories/vec4f64.js";import{fromBuffer as i,intersectsClippingArea as s,empty as o,expandWithAABB as n,create as a}from"../../../../geometry/support/aaBoundingBox.js";import{newDoubleArray as l}from"../../../../geometry/support/DoubleArray.js";import{newFloatArray as c,floatSubArray as p}from"../../../../geometry/support/FloatArray.js";import{elevationModeChangeUpdateType as h,needsElevationUpdates2D as u}from"./elevationAlignmentUtils.js";import{Graphics3DDrapedGraphicLayer as d}from"./Graphics3DDrapedGraphicLayer.js";import{Graphics3DObject3DGraphicLayer as m}from"./Graphics3DObject3DGraphicLayer.js";import{Graphics3DSymbolLayer as _}from"./Graphics3DSymbolLayer.js";import{mixinColorAndOpacity as g}from"./graphicUtils.js";import{parseCapType as y,computeSymbolLayerIndex as f}from"./lineUtils.js";import{geometryAsPolygon as v,createIndices3D as b,createColorGeometry as S,PolygonCreationDataBase as x}from"./polygonUtils.js";import{initFastSymbolUpdatesState as C,updateFastSymbolUpdatesState as P,getAttributeValue as D,ConvertOptions as O}from"../support/FastSymbolUpdates.js";import{createMaterial as U,uvElevationAligner as j}from"../support/patternUtils.js";import{createMapSpaceUVCoords as w,createMapSpaceUVCoordsDraped as G}from"../support/uvUtils.js";import{createGeometry as A}from"../../support/engineContent/line.js";import{polygonToRenderInfo as E,polygonToRenderInfoDraped as L}from"../../support/renderInfoUtils/polygonDeprecated.js";import{Object3D as M}from"../../webgl-engine/lib/Object3D.js";import{RenderGeometry as V}from"../../webgl-engine/lib/RenderGeometry.js";import{isScreenSizePerspectiveEnabled as R}from"../../webgl-engine/lib/screenSizePerspectiveUtils.js";import{getStipplePatternForLinePattern as I}from"../../webgl-engine/materials/lineStippleUtils.js";import{PatternMaterial as z}from"../../webgl-engine/materials/PatternMaterial.js";import{RibbonLineMaterial as B}from"../../webgl-engine/materials/RibbonLineMaterial.js";const F=["polyline","polygon","extent"];class T extends _{static{this.elevationModeChangeTypes={definedChanged:2,staysOnTheGround:0,onTheGroundChanged:2}}constructor(e,t,r,i){super(e,t,r,i,J(t)),this._needsUV=!1,this._materials=[]}async doLoad(){this._fastUpdates=C(this._context.renderer,this._vvConvertOptions)}get _materialColor(){return this.symbolLayer.material?.color}get _emissiveStrength(){if(has("enable-feature:emissive-on-none-volumetrics")){const e=this.symbolLayer.material?.emissive;return("color"===e?.source?e?.strength:void 0)??0}return 0}_createMaterials(){if(this._materials.length>0)return;const t=this._materialColor,r=this._getCombinedOpacityAndColor(t);this._materials[0]=U(this.symbolLayer,{color:r,forceTransparentMode:this.needsDrivenTransparentPass,discardInvisibleFragments:!0,hasVertexColors:this._drivenProperties.color||this._drivenProperties.opacity,draped:this.draped,hasSlicePlane:this._context.slicePlaneEnabled,emissiveStrength:this._emissiveStrength,...this._fastUpdates?.materialParameters}),this._needsUV=this._materials[0]instanceof z;const i=this.symbolLayer.outline;if(q(i)){const t=I(i.pattern);this._materials[1]=new B({width:e(i.size),color:this._getOutlineColor(),polygonOffset:3,polygonOffsetIndex:f(this._renderPriority,this._renderPriorityStep),hasSlicePlane:this._context.slicePlaneEnabled,isClosed:!0,stipplePattern:t,cap:y(i.patternCap||"butt"),screenSizePerspective:this._outlineScreenSizePerspective},this.view.state.isGlobal)}}get _outlineScreenSizePerspective(){return!this.draped&&R(this._context.layer.screenSizePerspectiveEnabled)?this.view.screenSizePerspective.parameters:null}createGraphics3DGraphic(e){const t=e.graphic;if(!this._validateGeometry(t.geometry,F,this.symbolLayer.type))return null;const r=this._getDrivenUInt8Color(e.renderingInfo,this._materialColor,!1),i=this.createElevationContextForGraphic(t);return this.ensureDrapedStatus("on-the-ground"===i.mode),this._createMaterials(),this.draped?this._createAsOverlay(e.renderingInfo,t,r):this._createAs3DShape(e.renderingInfo,t,r,i)}applyRendererDiff(e,t){for(const r in e.diff){if("visualVariables"!==r)return 0;if(!P(this._fastUpdates,t,this._vvConvertOptions))return 0;this._materials[0]?.setParameters(this._fastUpdates.materialParameters)}return 2}layerOpacityChanged(){if(null!=this._materials[0]){const e=this._materials[0].parameters.color,t=this._materialColor,r=this._getCombinedOpacity(t);this._materials[0].setParameters({color:[e[0],e[1],e[2],r],forceTransparentMode:this.needsDrivenTransparentPass})}if(null!=this._materials[1]){const e=this._materials[1].parameters.color;this._materials[1].setParameters({color:[e[0],e[1],e[2],this._getOutlineOpacity()]})}}layerScreenSizePerspectiveChanged(){this._materials[1]?.setParameters({screenSizePerspective:this._outlineScreenSizePerspective})}layerElevationInfoChanged(e,t,r){const i=this._elevationContext.mode,s=h(T.elevationModeChangeTypes,r,i);if(1!==s)return s;const o=u(i);return this.updateGraphics3DGraphicElevationInfo(e,t,()=>o)}slicePlaneEnabledChanged(){if(this._materials[0]?.setParameters({hasSlicePlane:this._context.slicePlaneEnabled}),this._materials[1]){const e={hasSlicePlane:this._context.slicePlaneEnabled};this._materials[1].setParameters(e)}return!0}physicalBasedRenderingChanged(){return!0}_createAs3DShape(e,t,r,i){const s=v(t.geometry);if(!s)return null;const o=E(s,this._context.elevationProvider,this._context.renderCoordsHelper,i),n=new k(o,r,this._context.layerViewUid,t.uid),a=n.renderData.position.length/3;if(this._needsUV&&(n.uvMapSpace=c(4*a,!0),n.boundingRect=l(9),w(n.uvMapSpace,n.boundingRect,n.renderData.position,this._context.renderCoordsHelper)),n.olidColor=this._context.stage.renderView?.getObjectAndLayerIdColor(n),this._createAs3DShapeFill(e,n),this._materials[1]&&this._createAs3DShapeOutline(n),this._logGeometryCreationWarnings(n.renderData,s.rings,"rings","FillSymbol3DLayer"),0===n.outGeometries.length)return null;const p=new M({geometries:n.outGeometries,castShadow:!1,layerViewUid:this._context.layerViewUid,graphicUid:t.uid}),h=new m(this,p,null,j,i);return h.alignedSampledElevation=n.renderData.sampledElevation,h.needsElevationUpdates=u(i.mode),h}_createAs3DShapeFill(e,t){const r=t.renderData.polygons;for(const{position:o,mapPositions:n,holeIndices:a,index:l,count:c}of r){if(null!=this._context.clippingExtent&&(i(n,H),!s(H,this._context.clippingExtent)))continue;const r=b(n,a,this._context.elevationProvider.spatialReference);if(0===r.length)continue;const h=this._fastUpdates?.visualVariables.color,u=S({material:this._materials[0],indices:r,mapPositions:n,attributeData:{position:o,color:h?null:t.color,colorFeature:h?D(h,e.color):null,uvMapSpace:this._needsUV?p(t.uvMapSpace,4*l,4*c):null,boundingRect:this._needsUV?t.boundingRect:null,olidColor:t.olidColor}});t.outGeometries.push(u)}}_createAs3DShapeOutline(e){if(null==this._materials[1])return;const t=e.renderData.outlines;for(const{mapPositions:r,position:o}of t){if(null!=this._context.clippingExtent&&(i(r,H),!s(H,this._context.clippingExtent)))continue;const t=A(this._materials[1],{overlayInfo:null,removeDuplicateStartEnd:!0,mapPositions:r,attributeData:{position:o}},e.olidColor);e.outGeometries.push(t)}}_createAsOverlay(e,t,r){const i=v(t.geometry);if(null==i)return null;this._materials[0].renderPriority=this._renderPriority+this._renderPriorityStep/2,null!=this._materials[1]&&(this._materials[1].renderPriority=this._renderPriority);const s=L(i,this._context.overlaySR),n=new W(s,r,this._context.layerViewUid,t.uid),a=n.renderData.position.length/3;return this._needsUV&&(n.uvMapSpace=c(4*a,!0),G(n.uvMapSpace,n.renderData.position,this._context.overlaySR,this._context.graphicsCoreOwner.view.state.viewingMode)),n.outBoundingBox=o(),n.olidColor=this._context.stage.renderView?.getObjectAndLayerIdColor(n),this._createAsOverlayFill(e,n),this._materials[1]&&this._createAsOverlayOutline(n),this._logGeometryCreationWarnings(n.renderData,i.rings,"rings","FillSymbol3DLayer"),0===n.outGeometries.length?null:new d(this,n.outGeometries,n.outBoundingBox,this._context.drapeSourceRenderer)}_createAsOverlayFill(e,r){const o=r.renderData.polygons;for(const{position:a,holeIndices:l,index:c,count:h}of o){const o=i(a,H);if(!s(o,this._context.clippingExtent))continue;const u=t(a,l,3);if(0===u.length)continue;n(r.outBoundingBox,o);const d=this._fastUpdates?.visualVariables.color,m=S({material:this._materials[0],indices:u,attributeData:{position:a,color:d?null:r.color,colorFeature:d?D(d,e.color):null,uvMapSpace:this._needsUV?p(r.uvMapSpace,4*c,4*h):null,olidColor:r.olidColor}});r.outGeometries.push(new V(m,r))}}_createAsOverlayOutline(e){if(null==this._materials[1])return;const t=e.renderData.outlines;for(let r=0;r<t.length;++r){const{position:o}=t[r];if(i(o,H),!s(H,this._context.clippingExtent))continue;n(e.outBoundingBox,H);const a=A(this._materials[1],{overlayInfo:{spatialReference:this._context.overlaySR,renderCoordsHelper:this._context.renderCoordsHelper},removeDuplicateStartEnd:!0,attributeData:{position:o}},e.olidColor);e.outGeometries.push(new V(a,e))}}_getOutlineOpacity(){const e=this.symbolLayer?.outline?.color;return(this.draped?1:this._getLayerOpacity())*(null!=e?e.a:0)}_getOutlineColor(){const e=this.symbolLayer?.outline?.color,t=this._getOutlineOpacity();return g(e?.toUnitRGB(),t)}test(){return{...super.test(),createAsOverlay:(e,t,r)=>this._createAsOverlay(e,t,r),createAs3DShape:(e,t,r,i)=>this._createAs3DShape(e,t,r,i)}}get _vvConvertOptions(){return new O({supports:{size:!1,color:!0,rotation:!1,opacity:!1},fallbackColor:this._materialColor?.toUnitRGBA()??r})}}const H=a();class k extends x{constructor(e,t,r,i){super(e,r,i),this.color=t}}class W extends x{constructor(e,t,r,i){super(e,r,i),this.color=t}}function q(e){return null!=e?.size&&e.size>0&&null!=e.color&&(null==e.pattern||"style"!==e.pattern.type||"none"!==e.pattern.style)}function J(e){return 1===(e.material?.color?.a??0)}export{T as Graphics3DPolygonFillSymbolLayer};
2
+ import has from"../../../../core/has.js";import{pt2px as e}from"../../../../core/screenUtils.js";import{ZEROS as t}from"../../../../core/libs/gl-matrix-2/factories/vec4f64.js";import{fromBuffer as r,intersectsClippingArea as i,empty as s,expandWithAABB as o,create as n}from"../../../../geometry/support/aaBoundingBox.js";import{newDoubleArray as a}from"../../../../geometry/support/DoubleArray.js";import{newFloatArray as l}from"../../../../geometry/support/FloatArray.js";import{elevationModeChangeUpdateType as c,needsElevationUpdates2D as p}from"./elevationAlignmentUtils.js";import{Graphics3DDrapedGraphicLayer as h}from"./Graphics3DDrapedGraphicLayer.js";import{Graphics3DObject3DGraphicLayer as u}from"./Graphics3DObject3DGraphicLayer.js";import{Graphics3DSymbolLayer as d}from"./Graphics3DSymbolLayer.js";import{mixinColorAndOpacity as m}from"./graphicUtils.js";import{parseCapType as _,computeSymbolLayerIndex as g}from"./lineUtils.js";import{geometryAsPolygon as y,createColorGeometry as f,PolygonCreationDataBase as v}from"./polygonUtils.js";import{initFastSymbolUpdatesState as x,updateFastSymbolUpdatesState as S,getAttributeValue as b,ConvertOptions as C}from"../support/FastSymbolUpdates.js";import{createMaterial as P,uvElevationAligner as D}from"../support/patternUtils.js";import{createMapSpaceUVCoords as O,createMapSpaceUVCoordsDraped as U}from"../support/uvUtils.js";import{createGeometry as j}from"../../support/engineContent/line.js";import{loadTessellationUtils as w,preloadedPolygonToRenderInfoElevationAligned as G,preloadedPolygonToRenderInfoDraped as A}from"../../support/renderInfoUtils/polygon.js";import{Object3D as E}from"../../webgl-engine/lib/Object3D.js";import{RenderGeometry as I}from"../../webgl-engine/lib/RenderGeometry.js";import{isScreenSizePerspectiveEnabled as V}from"../../webgl-engine/lib/screenSizePerspectiveUtils.js";import{getStipplePatternForLinePattern as L}from"../../webgl-engine/materials/lineStippleUtils.js";import{PatternMaterial as M}from"../../webgl-engine/materials/PatternMaterial.js";import{RibbonLineMaterial as R}from"../../webgl-engine/materials/RibbonLineMaterial.js";const z=["polyline","polygon","extent"];class B extends d{static{this.elevationModeChangeTypes={definedChanged:2,staysOnTheGround:0,onTheGroundChanged:2}}constructor(e,t,r,i){super(e,t,r,i,k(t)),this._needsUV=!1,this._materials=[]}async doLoad(){this._fastUpdates=x(this._context.renderer,this._vvConvertOptions),await w()}get _materialColor(){return this.symbolLayer.material?.color}get _emissiveStrength(){if(has("enable-feature:emissive-on-none-volumetrics")){const e=this.symbolLayer.material?.emissive;return("color"===e?.source?e?.strength:void 0)??0}return 0}_createMaterials(){if(this._materials.length>0)return;const t=this._materialColor,r=this._getCombinedOpacityAndColor(t);this._materials[0]=P(this.symbolLayer,{color:r,forceTransparentMode:this.needsDrivenTransparentPass,discardInvisibleFragments:!0,hasVertexColors:this._drivenProperties.color||this._drivenProperties.opacity,draped:this.draped,hasSlicePlane:this._context.slicePlaneEnabled,emissiveStrength:this._emissiveStrength,...this._fastUpdates?.materialParameters}),this._needsUV=this._materials[0]instanceof M;const i=this.symbolLayer.outline;if(W(i)){const t=L(i.pattern);this._materials[1]=new R({width:e(i.size),color:this._getOutlineColor(),polygonOffset:3,polygonOffsetIndex:g(this._renderPriority,this._renderPriorityStep),hasSlicePlane:this._context.slicePlaneEnabled,isClosed:!0,stipplePattern:t,cap:_(i.patternCap||"butt"),screenSizePerspective:this._outlineScreenSizePerspective},this.view.state.isGlobal)}}get _outlineScreenSizePerspective(){return!this.draped&&V(this._context.layer.screenSizePerspectiveEnabled)?this.view.screenSizePerspective.parameters:null}createGraphics3DGraphic(e){const t=e.graphic;if(!this._validateGeometry(t.geometry,z,this.symbolLayer.type))return null;const r=this._getDrivenUInt8Color(e.renderingInfo,this._materialColor,!1),i=this.createElevationContextForGraphic(t);return this.ensureDrapedStatus("on-the-ground"===i.mode),this._createMaterials(),this.draped?this._createAsOverlay(e.renderingInfo,t,r):this._createAs3DShape(e.renderingInfo,t,r,i)}applyRendererDiff(e,t){for(const r in e.diff){if("visualVariables"!==r)return 0;if(!S(this._fastUpdates,t,this._vvConvertOptions))return 0;this._materials[0]?.setParameters(this._fastUpdates.materialParameters)}return 2}layerOpacityChanged(){if(null!=this._materials[0]){const e=this._materials[0].parameters.color,t=this._materialColor,r=this._getCombinedOpacity(t);this._materials[0].setParameters({color:[e[0],e[1],e[2],r],forceTransparentMode:this.needsDrivenTransparentPass})}if(null!=this._materials[1]){const e=this._materials[1].parameters.color;this._materials[1].setParameters({color:[e[0],e[1],e[2],this._getOutlineOpacity()]})}}layerScreenSizePerspectiveChanged(){this._materials[1]?.setParameters({screenSizePerspective:this._outlineScreenSizePerspective})}layerElevationInfoChanged(e,t,r){const i=this._elevationContext.mode,s=c(B.elevationModeChangeTypes,r,i);if(1!==s)return s;const o=p(i);return this.updateGraphics3DGraphicElevationInfo(e,t,()=>o)}slicePlaneEnabledChanged(){if(this._materials[0]?.setParameters({hasSlicePlane:this._context.slicePlaneEnabled}),this._materials[1]){const e={hasSlicePlane:this._context.slicePlaneEnabled};this._materials[1].setParameters(e)}return!0}physicalBasedRenderingChanged(){return!0}_createAs3DShape(e,t,r,i){const s=y(t.geometry);if(!s)return null;const o=G(s,this._context.elevationProvider,this._context.renderCoordsHelper,i,{projectIfNearlyVertical:!0,outlineOutput:"vertex-data"});if(null==o)return null;const n=new T(o,r,this._context.layerViewUid,t.uid),c=n.renderData.vertexCount;if(this._needsUV&&(n.uvMapSpace=l(4*c,!0),n.boundingRect=a(9),O(n.uvMapSpace,n.boundingRect,n.renderData.positions,this._context.renderCoordsHelper)),n.olidColor=this._context.stage.renderView?.getObjectAndLayerIdColor(n),this._createAs3DShapeFill(e,n),this._materials[1]&&this._createAs3DShapeOutline(n),this._logGeometryCreationWarnings(n.renderData,s.rings,"rings","FillSymbol3DLayer"),0===n.outGeometries.length)return null;const h=new E({geometries:n.outGeometries,castShadow:!1,layerViewUid:this._context.layerViewUid,graphicUid:t.uid}),d=new u(this,h,null,D,i);return d.alignedSampledElevation=n.renderData.sampledElevation,d.needsElevationUpdates=p(i.mode),d}_createAs3DShapeFill(e,t){const{mapPositions:s,positions:o,polygonIndices:n,polygonIndexCount:a}=t.renderData;if(0===a)return;if(null!=this._context.clippingExtent&&(r(s,F),!i(F,this._context.clippingExtent)))return;const l=this._fastUpdates?.visualVariables.color,c=f({material:this._materials[0],indices:n,mapPositions:s,attributeData:{position:o,color:l?null:t.color,colorFeature:l?b(l,e.color):null,uvMapSpace:this._needsUV?t.uvMapSpace:null,boundingRect:this._needsUV?t.boundingRect:null,olidColor:t.olidColor}});t.outGeometries.push(c)}_createAs3DShapeOutline(e){if(null==this._materials[1])return;const{outline:t}=e.renderData;if("vertex-data"!==t.output)return;const{outlines:s}=t;if(null!=s&&0!==s.length)for(const{mapPositions:o,position:n}of s){if(null!=this._context.clippingExtent&&(r(o,F),!i(F,this._context.clippingExtent)))continue;const t=j(this._materials[1],{overlayInfo:null,removeDuplicateStartEnd:!0,mapPositions:o,attributeData:{position:n}},e.olidColor);e.outGeometries.push(t)}}_createAsOverlay(e,t,r){const i=y(t.geometry);if(null==i)return null;this._materials[0].renderPriority=this._renderPriority+this._renderPriorityStep/2,null!=this._materials[1]&&(this._materials[1].renderPriority=this._renderPriority);const o=A(i,{drapedSpatialReference:this._context.overlaySR,outlineOutput:"vertex-data"});if(null==o)return null;const n=new H(o,r,this._context.layerViewUid,t.uid);return this._needsUV&&(n.uvMapSpace=l(4*n.renderData.vertexCount,!0),U(n.uvMapSpace,n.renderData.positions,this._context.overlaySR,this._context.graphicsCoreOwner.view.state.viewingMode)),n.outBoundingBox=s(),n.olidColor=this._context.stage.renderView?.getObjectAndLayerIdColor(n),this._createAsOverlayFill(e,n),this._materials[1]&&this._createAsOverlayOutline(n),this._logGeometryCreationWarnings(n.renderData,i.rings,"rings","FillSymbol3DLayer"),new h(this,n.outGeometries,n.outBoundingBox,this._context.drapeSourceRenderer)}_createAsOverlayFill(e,t){const{positions:s,polygonIndices:n,polygonIndexCount:a}=t.renderData;if(0===a)return;const l=r(s,F);if(!i(l,this._context.clippingExtent))return;o(t.outBoundingBox,l);const c=this._fastUpdates?.visualVariables.color,p=f({material:this._materials[0],indices:n,attributeData:{position:s,color:c?null:t.color,colorFeature:c?b(c,e.color):null,uvMapSpace:this._needsUV?t.uvMapSpace:null,olidColor:t.olidColor}});t.outGeometries.push(new I(p,t))}_createAsOverlayOutline(e){if(null==this._materials[1])return;const{outline:t}=e.renderData;if("vertex-data"!==t.output)return;const{outlines:s}=t;for(const{position:n}of s){if(r(n,F),!i(F,this._context.clippingExtent))continue;o(e.outBoundingBox,F);const t=j(this._materials[1],{overlayInfo:{spatialReference:this._context.overlaySR,renderCoordsHelper:this._context.renderCoordsHelper},removeDuplicateStartEnd:!0,attributeData:{position:n}},e.olidColor);e.outGeometries.push(new I(t,e))}}_getOutlineOpacity(){const e=this.symbolLayer?.outline?.color;return(this.draped?1:this._getLayerOpacity())*(null!=e?e.a:0)}_getOutlineColor(){const e=this.symbolLayer?.outline?.color,t=this._getOutlineOpacity();return m(e?.toUnitRGB(),t)}test(){return{...super.test(),createAsOverlay:(e,t,r)=>this._createAsOverlay(e,t,r),createAs3DShape:(e,t,r,i)=>this._createAs3DShape(e,t,r,i)}}get _vvConvertOptions(){return new C({supports:{size:!1,color:!0,rotation:!1,opacity:!1},fallbackColor:this._materialColor?.toUnitRGBA()??t})}}const F=n();class T extends v{constructor(e,t,r,i){super(e,r,i),this.color=t}}class H extends v{constructor(e,t,r,i){super(e,r,i),this.color=t}}function W(e){return null!=e?.size&&e.size>0&&null!=e.color&&(null==e.pattern||"style"!==e.pattern.type||"none"!==e.pattern.style)}function k(e){return 1===(e.material?.color?.a??0)}export{B as Graphics3DPolygonFillSymbolLayer};
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */
2
- import e from"../../../../core/Logger.js";import{ONES as t}from"../../../../core/libs/gl-matrix-2/factories/vec3f64.js";import{copy as r,scale as i}from"../../../../core/libs/gl-matrix-2/math/vec4.js";import{ONES as o,ZEROS as n,fromArray as s,fromValues as a}from"../../../../core/libs/gl-matrix-2/factories/vec4f64.js";import{closeRings as l}from"../../../../geometry/support/coordsUtils.js";import{defaultSymbolLayerComplexity as p}from"./defaultSymbolComplexity.js";import{ElevationContext as c}from"./ElevationContext.js";import{zeroContext as u}from"./featureExpressionInfoUtils.js";import{mixinColorAndOpacity as d}from"./graphicUtils.js";import{Loadable as h}from"./Loadable.js";import{getSizeAttributeValue as y,getAttributeValue as f}from"../support/FastSymbolUpdates.js";import{encodeNaNUInt8 as g}from"../support/symbolColorUtils.js";const v=()=>e.getLogger("esri.views.3d.layers.graphics.Graphics3DSymbolLayer");class m extends h{constructor(e,t,r,i,o=!0){super(r.schedule),this.symbol=e,this.symbolLayer=t,this._context=r,this._drivenOpacityFallbackAlwaysOpaque=o,this.ignoreDrivers=!1,this._drivenProperties={color:!1,opacity:!1,opacityAlwaysOpaque:!0,size:!1,rotation:!1},this._materials=[],this.logger=v(),this._elevationOptions={supportsOffsetAdjustment:!1,supportsOnTheGround:!0},this.skipHighSymbolLodsChanged=!0,this._renderPriority=i.renderPriority,this._renderPriorityStep=i.renderPriorityStep,this._elevationContext=new c,this.updateComplexity(),this.ignoreDrivers=i.ignoreDrivers,this.ignoreDrivers||(this._drivenProperties=_(this._context.renderer,o)),this._updateElevationContext()}destroy(){this.complexity=null,this._materials.length=0,super.destroy()}get view(){return this._context.stage.view}getCachedSize(){return null}get extentPadding(){return 0}get materials(){return this._materials}get estimatedMemory(){const{complexity:e}=this;if(null==e)return 0;return(this.draped?e.memory.draped:e.memory).bytesPerFeature}get usedMemory(){return this.estimatedMemory}_drivenPropertiesChanged(e){if(this.ignoreDrivers)return!1;const t=this._drivenProperties,r=_(e,this._drivenOpacityFallbackAlwaysOpaque);return r.color!==t.color||r.opacity!==t.opacity||r.opacityAlwaysOpaque!==t.opacityAlwaysOpaque||r.size!==t.size||r.rotation!==t.rotation}get needsDrivenTransparentPass(){return this._hasDrivenColorOrOpacity&&!this._drivenProperties.opacityAlwaysOpaque}get _hasDrivenColorOrOpacity(){return this._drivenProperties.color||this._drivenProperties.opacity}_logGeometryCreationWarnings(e,t,r,i){const o=e.projectionSuccess,n="polygons"in e?e.polygons:null,s=`${i} geometry failed to be created`;o?!this._logGeometryValidationWarnings(t,r,i)&&0===n?.length&&"rings"===r&&t.length>0&&t[0].length>2&&v().warnOncePerTick(`${s} (filled rings should use clockwise winding - try reversing the order of vertices)`):v().warnOncePerTick(`${s} (failed to project geometry to view spatial reference)`)}get needsUpdateFocus(){return!1}_logGeometryValidationWarnings(e,t,r){const i=`${r} geometry failed to be created`;return!e.length||1===e.length&&!e[0].length?(v().warnOncePerTick(`${i} (no ${t} were defined)`),!0):(!Array.isArray(e)||!Array.isArray(e[0]))&&(v().warnOncePerTick(`${i} (${t} should be defined as a 2D array)`),!0)}_validateGeometry(e,t=null,r=null){if(null!=t&&!t.includes(e.type))return this.logger.warn("unsupported geometry type for "+r+` symbol: ${e.type}`),!1;switch(e.type){case"point":{const t=e;if(!isFinite(t.x)||!isFinite(t.y))return v().warn("point coordinate is not a valid number, graphic skipped"),!1;break}case"polygon":l(e)}return!0}_defaultElevationInfoNoZ(){return x}_defaultElevationInfoZ(){return C}_updateElevationContext(){null!=this._elevationInfoOverride?(this._elevationContext.setFromElevationInfo(this._elevationInfoOverride),this._elevationContext.setFeatureExpressionInfoContext(null)):this._context.layer.elevationInfo?(this._elevationContext.setFromElevationInfo(this._context.layer.elevationInfo),this._elevationContext.setFeatureExpressionInfoContext(this._context.featureExpressionInfoContext)):this._elevationContext.reset()}getDefaultElevationInfo(e){return e.hasZ?this._defaultElevationInfoZ():this._defaultElevationInfoNoZ()}getGeometryElevationMode(e,t=this.getDefaultElevationInfo(e)){return this._elevationContext.mode||t.mode}setElevationInfoOverride(e){this._elevationInfoOverride=e,this._updateElevationContext()}createElevationContextForGraphic(e){const t=new c;return this.updateElevationContextForGraphic(t,e),t}updateElevationContextForGraphic(e,t){const r=t.geometry,i=this.getDefaultElevationInfo(r);e.unit=null!=this._elevationContext.unit?this._elevationContext.unit:i.unit,e.mode=this.getGeometryElevationMode(r,i),e.offsetMeters=this._elevationContext.meterUnitOffset??i.offset??0;const o=!this._elevationOptions.supportsOnTheGround&&"on-the-ground"===e.mode;o&&(e.mode="relative-to-ground",e.offsetMeters=0);const n=o?u:this._elevationContext.featureExpressionInfoContext;n?e.updateFeatureExpressionInfoContextForGraphic(n,t,this._context.layer):e.setFeatureExpressionInfoContext(null)}prepareSymbolLayerPatch(e){}onRemoveGraphic(e){}_getLayerOpacity(){if(this._context.graphicsCoreOwner&&"fullOpacity"in this._context.graphicsCoreOwner)return this._context.graphicsCoreOwner.fullOpacity??0;const e=this._context.layer.opacity;return e??1}_getCombinedOpacity(e,t=b){const r=this.draped?1:this._getLayerOpacity();return this._drivenProperties.color?r:e?r*(this._drivenProperties.opacity?1:e.a):t.hasIntrinsicColor?r:0}_getCombinedOpacityAndColor(e,r=b){const i=this._getCombinedOpacity(e,r);if(this._drivenProperties.color)return d(null,i);const o=e?.toUnitRGB()??t;return d(o,i)}_getDrivenUInt8Color({color:e,opacity:t},r,i){const{color:s,opacity:a}=this._drivenProperties,l=r?.toUnitRGBA()??(i?o:n),p=s?e?.output??l:null,c=e||r||i,u=s?null:l[3];return d(p,a&&c?t?.output??u:null,255)}_getDrivenUInt8ColorWithNaNSupport({color:e,opacity:t},o,n){const l=o?s(o.toUnitRGBA()):a(NaN,NaN,NaN,n?NaN:0);return this._drivenProperties.color&&null!=e&&r(l,e.output),this._drivenProperties.opacity&&null!=t&&(l[3]=t.output),i(l,l,255),g(l,l)}isFastUpdatesEnabled(){return null!=this._fastUpdates}updateComplexity(){this.complexity=this.computeComplexity()}computeComplexity(){return p(this.symbol,this.symbolLayer)}globalPropertyChanged(e,t,r){switch(e){case"opacity":return this.layerOpacityChanged(t,r),!0;case"screenSizePerspectiveEnabled":return this.layerScreenSizePerspectiveChanged(t,r),!0;case"elevationInfo":{const e=this._elevationContext.mode;this._updateElevationContext();return 2!==this.layerElevationInfoChanged(t,r,e)}case"slicePlaneEnabled":return this.slicePlaneEnabledChanged(t,r);case"physicalBasedRenderingEnabled":return this.physicalBasedRenderingChanged();case"pixelRatio":return this.pixelRatioChanged;case"skipHighSymbolLods":return this.skipHighSymbolLodsChanged;case"terrainTransparency":return this.terrainTransparencyChanged();default:return!1}}terrainTransparencyChanged(){return!0}get pixelRatioChanged(){return!0}updateGraphics3DGraphicElevationInfo(e,t,r){let i=1;return e?.forEach(e=>{const o=t(e);if(null!=o){const t=e.graphic;this.updateElevationContextForGraphic(o.elevationContext,t),o.needsElevationUpdates=r(o.elevationContext.mode)}else i=2}),i}applyRendererDiff(e,t){return 0}getFastUpdateAttrValues(e){if(!this._fastUpdates)return null;const t=this._fastUpdates.visualVariables,r=y(t.size,e.size),i=f(t.color,e.color),o=f(t.opacity,e.opacity);return a(r,i,o,0)}get draped(){return this._draped}ensureDrapedStatus(e){return null==this._draped?(this._draped=e,!0):(e!==this.draped&&v().warnOnce("A symbol can only produce either draped or non-draped visualizations. Use two separate symbol instances for draped and non-draped graphics if necessary."),!1)}test(){const e=()=>({size:this._fastUpdates?.visualVariables.size?.source??null,color:this._fastUpdates?.visualVariables.color?.source??null,opacity:this._fastUpdates?.visualVariables.opacity?.source??null,rotation:this._fastUpdates?.visualVariables.rotation?.source??null});return{drivenProperties:this._drivenProperties,getVisVarFields:e}}}function _(e,t){const r={color:!1,opacity:!1,opacityAlwaysOpaque:t,size:!1,rotation:!1};return e&&"visualVariables"in e&&e.visualVariables&&e.visualVariables.forEach(e=>{switch(e.type){case"color":if(r.color=!0,e.stops)for(let t=0;t<e.stops.length;t++){const i=e.stops[t].color;i&&i.a<1&&(r.opacityAlwaysOpaque=!1)}break;case"opacity":r.opacity=!0,r.opacityAlwaysOpaque=!1;break;case"size":r.size=!0;break;case"rotation":r.rotation=!0}}),r}const x={mode:"on-the-ground",offset:0,unit:"meters"},C={mode:"absolute-height",offset:0,unit:"meters"},b={hasIntrinsicColor:!1},O=a(NaN,NaN,NaN,NaN);export{m as Graphics3DSymbolLayer,_ as getDrivenProperties,O as nanFallbackColor};
2
+ import e from"../../../../core/Logger.js";import{ONES as t}from"../../../../core/libs/gl-matrix-2/factories/vec3f64.js";import{copy as r,scale as o}from"../../../../core/libs/gl-matrix-2/math/vec4.js";import{ONES as i,ZEROS as n,fromArray as s,fromValues as a}from"../../../../core/libs/gl-matrix-2/factories/vec4f64.js";import{closeRings as l}from"../../../../geometry/support/coordsUtils.js";import{defaultSymbolLayerComplexity as p}from"./defaultSymbolComplexity.js";import{ElevationContext as c}from"./ElevationContext.js";import{zeroContext as u}from"./featureExpressionInfoUtils.js";import{mixinColorAndOpacity as d}from"./graphicUtils.js";import{Loadable as h}from"./Loadable.js";import{getSizeAttributeValue as y,getAttributeValue as g}from"../support/FastSymbolUpdates.js";import{encodeNaNUInt8 as f}from"../support/symbolColorUtils.js";const v=()=>e.getLogger("esri.views.3d.layers.graphics.Graphics3DSymbolLayer");class m extends h{constructor(e,t,r,o,i=!0){super(r.schedule),this.symbol=e,this.symbolLayer=t,this._context=r,this._drivenOpacityFallbackAlwaysOpaque=i,this.ignoreDrivers=!1,this._drivenProperties={color:!1,opacity:!1,opacityAlwaysOpaque:!0,size:!1,rotation:!1},this._materials=[],this.logger=v(),this._elevationOptions={supportsOffsetAdjustment:!1,supportsOnTheGround:!0},this.skipHighSymbolLodsChanged=!0,this._renderPriority=o.renderPriority,this._renderPriorityStep=o.renderPriorityStep,this._elevationContext=new c,this.updateComplexity(),this.ignoreDrivers=o.ignoreDrivers,this.ignoreDrivers||(this._drivenProperties=_(this._context.renderer,i)),this._updateElevationContext()}destroy(){this.complexity=null,this._materials.length=0,super.destroy()}get view(){return this._context.stage.view}getCachedSize(){return null}get extentPadding(){return 0}get materials(){return this._materials}get estimatedMemory(){const{complexity:e}=this;if(null==e)return 0;return(this.draped?e.memory.draped:e.memory).bytesPerFeature}get usedMemory(){return this.estimatedMemory}_drivenPropertiesChanged(e){if(this.ignoreDrivers)return!1;const t=this._drivenProperties,r=_(e,this._drivenOpacityFallbackAlwaysOpaque);return r.color!==t.color||r.opacity!==t.opacity||r.opacityAlwaysOpaque!==t.opacityAlwaysOpaque||r.size!==t.size||r.rotation!==t.rotation}get needsDrivenTransparentPass(){return this._hasDrivenColorOrOpacity&&!this._drivenProperties.opacityAlwaysOpaque}get _hasDrivenColorOrOpacity(){return this._drivenProperties.color||this._drivenProperties.opacity}_logGeometryCreationWarnings(e,t,r,o){const i=e.projectionSuccess,n="polygons"in e?e.polygons:"polygonIndices"in e?e.polygonIndices:null,s=`${o} geometry failed to be created`;i?!this._logGeometryValidationWarnings(t,r,o)&&0===n?.length&&"rings"===r&&t.length>0&&t[0].length>2&&v().warnOncePerTick(`${s} (filled rings should use clockwise winding - try reversing the order of vertices)`):v().warnOncePerTick(`${s} (failed to project geometry to view spatial reference)`)}get needsUpdateFocus(){return!1}_logGeometryValidationWarnings(e,t,r){const o=`${r} geometry failed to be created`;return!e.length||1===e.length&&!e[0].length?(v().warnOncePerTick(`${o} (no ${t} were defined)`),!0):(!Array.isArray(e)||!Array.isArray(e[0]))&&(v().warnOncePerTick(`${o} (${t} should be defined as a 2D array)`),!0)}_validateGeometry(e,t=null,r=null){if(null!=t&&!t.includes(e.type))return this.logger.warn("unsupported geometry type for "+r+` symbol: ${e.type}`),!1;switch(e.type){case"point":{const t=e;if(!isFinite(t.x)||!isFinite(t.y))return v().warn("point coordinate is not a valid number, graphic skipped"),!1;break}case"polygon":l(e)}return!0}_defaultElevationInfoNoZ(){return x}_defaultElevationInfoZ(){return C}_updateElevationContext(){null!=this._elevationInfoOverride?(this._elevationContext.setFromElevationInfo(this._elevationInfoOverride),this._elevationContext.setFeatureExpressionInfoContext(null)):this._context.layer.elevationInfo?(this._elevationContext.setFromElevationInfo(this._context.layer.elevationInfo),this._elevationContext.setFeatureExpressionInfoContext(this._context.featureExpressionInfoContext)):this._elevationContext.reset()}getDefaultElevationInfo(e){return e.hasZ?this._defaultElevationInfoZ():this._defaultElevationInfoNoZ()}getGeometryElevationMode(e,t=this.getDefaultElevationInfo(e)){return this._elevationContext.mode||t.mode}setElevationInfoOverride(e){this._elevationInfoOverride=e,this._updateElevationContext()}createElevationContextForGraphic(e){const t=new c;return this.updateElevationContextForGraphic(t,e),t}updateElevationContextForGraphic(e,t){const r=t.geometry,o=this.getDefaultElevationInfo(r);e.unit=null!=this._elevationContext.unit?this._elevationContext.unit:o.unit,e.mode=this.getGeometryElevationMode(r,o),e.offsetMeters=this._elevationContext.meterUnitOffset??o.offset??0;const i=!this._elevationOptions.supportsOnTheGround&&"on-the-ground"===e.mode;i&&(e.mode="relative-to-ground",e.offsetMeters=0);const n=i?u:this._elevationContext.featureExpressionInfoContext;n?e.updateFeatureExpressionInfoContextForGraphic(n,t,this._context.layer):e.setFeatureExpressionInfoContext(null)}prepareSymbolLayerPatch(e){}onRemoveGraphic(e){}_getLayerOpacity(){if(this._context.graphicsCoreOwner&&"fullOpacity"in this._context.graphicsCoreOwner)return this._context.graphicsCoreOwner.fullOpacity??0;const e=this._context.layer.opacity;return e??1}_getCombinedOpacity(e,t=b){const r=this.draped?1:this._getLayerOpacity();return this._drivenProperties.color?r:e?r*(this._drivenProperties.opacity?1:e.a):t.hasIntrinsicColor?r:0}_getCombinedOpacityAndColor(e,r=b){const o=this._getCombinedOpacity(e,r);if(this._drivenProperties.color)return d(null,o);const i=e?.toUnitRGB()??t;return d(i,o)}_getDrivenUInt8Color({color:e,opacity:t},r,o){const{color:s,opacity:a}=this._drivenProperties,l=r?.toUnitRGBA()??(o?i:n),p=s?e?.output??l:null,c=e||r||o,u=s?null:l[3];return d(p,a&&c?t?.output??u:null,255)}_getDrivenUInt8ColorWithNaNSupport({color:e,opacity:t},i,n){const l=i?s(i.toUnitRGBA()):a(NaN,NaN,NaN,n?NaN:0);return this._drivenProperties.color&&null!=e&&r(l,e.output),this._drivenProperties.opacity&&null!=t&&(l[3]=t.output),o(l,l,255),f(l,l)}isFastUpdatesEnabled(){return null!=this._fastUpdates}updateComplexity(){this.complexity=this.computeComplexity()}computeComplexity(){return p(this.symbol,this.symbolLayer)}globalPropertyChanged(e,t,r){switch(e){case"opacity":return this.layerOpacityChanged(t,r),!0;case"screenSizePerspectiveEnabled":return this.layerScreenSizePerspectiveChanged(t,r),!0;case"elevationInfo":{const e=this._elevationContext.mode;this._updateElevationContext();return 2!==this.layerElevationInfoChanged(t,r,e)}case"slicePlaneEnabled":return this.slicePlaneEnabledChanged(t,r);case"physicalBasedRenderingEnabled":return this.physicalBasedRenderingChanged();case"pixelRatio":return this.pixelRatioChanged;case"skipHighSymbolLods":return this.skipHighSymbolLodsChanged;case"terrainTransparency":return this.terrainTransparencyChanged();default:return!1}}terrainTransparencyChanged(){return!0}get pixelRatioChanged(){return!0}updateGraphics3DGraphicElevationInfo(e,t,r){let o=1;return e?.forEach(e=>{const i=t(e);if(null!=i){const t=e.graphic;this.updateElevationContextForGraphic(i.elevationContext,t),i.needsElevationUpdates=r(i.elevationContext.mode)}else o=2}),o}applyRendererDiff(e,t){return 0}getFastUpdateAttrValues(e){if(!this._fastUpdates)return null;const t=this._fastUpdates.visualVariables,r=y(t.size,e.size),o=g(t.color,e.color),i=g(t.opacity,e.opacity);return a(r,o,i,0)}get draped(){return this._draped}ensureDrapedStatus(e){return null==this._draped?(this._draped=e,!0):(e!==this.draped&&v().warnOnce("A symbol can only produce either draped or non-draped visualizations. Use two separate symbol instances for draped and non-draped graphics if necessary."),!1)}test(){const e=()=>({size:this._fastUpdates?.visualVariables.size?.source??null,color:this._fastUpdates?.visualVariables.color?.source??null,opacity:this._fastUpdates?.visualVariables.opacity?.source??null,rotation:this._fastUpdates?.visualVariables.rotation?.source??null});return{drivenProperties:this._drivenProperties,getVisVarFields:e}}}function _(e,t){const r={color:!1,opacity:!1,opacityAlwaysOpaque:t,size:!1,rotation:!1};return e&&"visualVariables"in e&&e.visualVariables&&e.visualVariables.forEach(e=>{switch(e.type){case"color":if(r.color=!0,e.stops)for(let t=0;t<e.stops.length;t++){const o=e.stops[t].color;o&&o.a<1&&(r.opacityAlwaysOpaque=!1)}break;case"opacity":r.opacity=!0,r.opacityAlwaysOpaque=!1;break;case"size":r.size=!0;break;case"rotation":r.rotation=!0}}),r}const x={mode:"on-the-ground",offset:0,unit:"meters"},C={mode:"absolute-height",offset:0,unit:"meters"},b={hasIntrinsicColor:!1},O=a(NaN,NaN,NaN,NaN);export{m as Graphics3DSymbolLayer,_ as getDrivenProperties,O as nanFallbackColor};
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */
2
- import{getMetersPerUnitForSR as e}from"../../../../core/units.js";import{e as t}from"../../../../chunks/earcut.js";import{set as r}from"../../../../core/libs/gl-matrix-2/math/vec2.js";import{fromValues as i,create as o}from"../../../../core/libs/gl-matrix-2/factories/vec2f64.js";import{scale as n}from"../../../../core/libs/gl-matrix-2/math/vec4.js";import{toRadian as s}from"../../../../core/libs/gl-matrix-2/math/common.js";import{fromBuffer as a,intersectsClippingArea as l,empty as c,expandWithAABB as h,create as p}from"../../../../geometry/support/aaBoundingBox.js";import{empty as m,expandPointInPlace as u,create as d}from"../../../../geometry/support/aaBoundingRect.js";import{newFloatArray as g,floatSubArray as y}from"../../../../geometry/support/FloatArray.js";import{perVertexElevationAligner as f}from"./ElevationAligners.js";import{elevationModeChangeUpdateType as x,needsElevationUpdates2D as v}from"./elevationAlignmentUtils.js";import{Graphics3DDrapedGraphicLayer as _}from"./Graphics3DDrapedGraphicLayer.js";import{Graphics3DObject3DGraphicLayer as b}from"./Graphics3DObject3DGraphicLayer.js";import{Graphics3DSymbolLayer as w}from"./Graphics3DSymbolLayer.js";import{geometryAsPolygon as D,createWaterGeometry as S,PolygonCreationDataBase as C}from"./polygonUtils.js";import{polygonToRenderInfo as G,polygonToRenderInfoDraped as j}from"../../support/renderInfoUtils/polygonDeprecated.js";import{Object3D as P}from"../../webgl-engine/lib/Object3D.js";import{RenderGeometry as L}from"../../webgl-engine/lib/RenderGeometry.js";import{Parameters as O,WaterMaterial as A}from"../../webgl-engine/materials/WaterMaterial.js";import{wavePresets as E}from"../../webgl-engine/materials/internal/waterMaterialUtils.js";const T=["polyline","polygon","extent"];class U extends w{static{this.unitSizeOfTexture=100}static{this.elevationModeChangeTypes={definedChanged:2,staysOnTheGround:0,onTheGroundChanged:2}}constructor(e,t,r,i){super(e,t,r,i)}async doLoad(){}createGraphics3DGraphic(e){const t=e.graphic;if(!this._validateGeometry(t.geometry,T,this.symbolLayer.type))return null;const r=this.createElevationContextForGraphic(t);return this.ensureDrapedStatus("on-the-ground"===r.mode),this.ensureMaterial(),this.draped?this._createAsOverlay(t):this._createAs3DShape(t,r,t.uid)}ensureMaterial(){if(this._materials[0])return;const e=new O,t=this.symbolLayer.color.toUnitRGBA();t[3]*=this._getLayerOpacity(),e.color=t,e.transparent=t[3]<1||this.needsDrivenTransparentPass,e.waveDirection=null!=this.symbolLayer.waveDirection?B(this.symbolLayer.waveDirection):i(0,0);const r=this.symbolLayer.waveStrength+"-"+this.symbolLayer.waterbodySize,o=E[r];e.waveStrength=o.waveStrength,e.waveTextureRepeat=o.textureRepeat,e.waveVelocity=o.waveVelocity,e.flowStrength=o.perturbationStrength,e.hasSlicePlane=this._context.slicePlaneEnabled,e.draped=this.draped,e.useIndexing=!0,this._materials[0]=new A(e,this._context)}layerOpacityChanged(){if(null==this._materials[0])return;const e=this._materials[0].parameters.color,t=this.symbolLayer.color.a*this._getLayerOpacity(),r=t<1||this.needsDrivenTransparentPass;this._materials[0].setParameters({color:[e[0],e[1],e[2],t],transparent:r})}layerScreenSizePerspectiveChanged(){}layerElevationInfoChanged(e,t,r){const i=this._elevationContext.mode,o=x(U.elevationModeChangeTypes,r,i);if(1!==o)return o;const n=v(i);return this.updateGraphics3DGraphicElevationInfo(e,t,()=>n)}slicePlaneEnabledChanged(){return this._materials[0]?.setParameters({hasSlicePlane:this._context.slicePlaneEnabled}),!0}physicalBasedRenderingChanged(){return!0}get needsDrivenTransparentPass(){return!1}_createAs3DShape(e,t,r){const i=D(e.geometry);if(null==i)return null;const o=G(i,this._context.elevationProvider,this._context.renderCoordsHelper,t),n=o.position.length/3,s=g(2*n);M(s,o.mapPositions,n,this._context.elevationProvider.spatialReference);const a=new W(o,s,this._context.layerViewUid,e.uid);if(a.olidColor=this._context.stage.renderView?.getObjectAndLayerIdColor(a),this._create3DShapeGeometries(a),this._logGeometryCreationWarnings(a.renderData,i.rings,"rings","WaterSymbol3DLayer"),0===a.outGeometries.length)return null;const l=new P({geometries:a.outGeometries,castShadow:!1,layerViewUid:this._context.layerViewUid,graphicUid:r}),c=new b(this,l,null,f,t);return c.alignedSampledElevation=a.renderData.sampledElevation,c.needsElevationUpdates=v(t.mode),c}_create3DShapeGeometries(e){const r=e.renderData.polygons,i=e.uvCoords;for(const{count:o,index:n,position:s,mapPositions:c,holeIndices:h}of r){if(null!=this._context.clippingExtent&&(a(c,z),!l(z,this._context.clippingExtent)))continue;const r=t(c,h,3);if(0===r.length)continue;const p=y(i,2*n,2*o),m=S({material:this._materials[0],indices:r,mapPositions:c,attributeData:{position:s,uv0:p}},e.olidColor);e.outGeometries.push(m)}}_createAsOverlay(e){const t=D(e.geometry);if(null==t)return null;this._materials[0].renderPriority=this._renderPriority;const r=j(t,this._context.overlaySR),i=r.position.length/3,o=g(2*i);M(o,r.position,i,this._context.overlaySR);const n=new F(r,o,this._context.layerViewUid,e.uid);return n.olidColor=this._context.stage.renderView?.getObjectAndLayerIdColor(n),n.outBoundingBox=c(),this._createAsOverlayWater(n),this._logGeometryCreationWarnings(n.renderData,t.rings,"rings","WaterSymbol3DLayer"),0===n.outGeometries.length?null:new _(this,n.outGeometries,n.outBoundingBox,this._context.drapeSourceRenderer)}_createAsOverlayWater(e){const r=e.uvCoords,i=e.renderData.polygons;for(const{position:o,holeIndices:n,index:s,count:c}of i){if(a(o,z),!l(z,this._context.clippingExtent))continue;h(e.outBoundingBox,z);const i=t(o,n,3);if(0===i.length)continue;const p=y(r,2*s,2*c),m=S({material:this._materials[0],indices:i,attributeData:{position:o,uv0:p}},e.olidColor);e.outGeometries.push(new L(m,e))}}test(){return{...super.test(),create3DShape:e=>this._createAs3DShape(e.graphic,e.elevationContext,e.graphicUid),ensureMaterial:()=>this.ensureMaterial()}}}function B(e){const t=o(),r=s(e);return t[0]=Math.sin(r),t[1]=Math.cos(r),t}function M(t,i,o,s){const a=e(s);m(I);for(let e=0;e<o;e++)r(V,i[3*e],i[3*e+1]),u(I,V);n(I,I,a);const l=I[0]%U.unitSizeOfTexture,c=I[1]%U.unitSizeOfTexture;R[0]=I[0]-l,R[1]=I[1]-c;for(let e=0;e<o;e++)t[2*e]=(i[3*e]*a-R[0])/U.unitSizeOfTexture,t[2*e+1]=(i[3*e+1]*a-R[1])/U.unitSizeOfTexture}const R=o(),I=d(),V=o(),z=p();class W extends C{constructor(e,t,r,i){super(e,r,i),this.uvCoords=t}}class F extends C{constructor(e,t,r,i){super(e,r,i),this.uvCoords=t}}export{U as Graphics3DWaterSymbolLayer,B as headingVectorFromAngle};
2
+ import{getMetersPerUnitForSR as e}from"../../../../core/units.js";import{set as t}from"../../../../core/libs/gl-matrix-2/math/vec2.js";import{fromValues as r,create as i}from"../../../../core/libs/gl-matrix-2/factories/vec2f64.js";import{scale as o}from"../../../../core/libs/gl-matrix-2/math/vec4.js";import{toRadian as n}from"../../../../core/libs/gl-matrix-2/math/common.js";import{fromBuffer as s,intersectsClippingArea as a,empty as l,expandWithAABB as c,create as h}from"../../../../geometry/support/aaBoundingBox.js";import{empty as p,expandPointInPlace as u,create as m}from"../../../../geometry/support/aaBoundingRect.js";import{newFloatArray as d}from"../../../../geometry/support/FloatArray.js";import{perVertexElevationAligner as g}from"./ElevationAligners.js";import{elevationModeChangeUpdateType as y,needsElevationUpdates2D as f}from"./elevationAlignmentUtils.js";import{Graphics3DDrapedGraphicLayer as x}from"./Graphics3DDrapedGraphicLayer.js";import{Graphics3DObject3DGraphicLayer as v}from"./Graphics3DObject3DGraphicLayer.js";import{Graphics3DSymbolLayer as _}from"./Graphics3DSymbolLayer.js";import{geometryAsPolygon as w,createWaterGeometry as D,PolygonCreationDataBase as b}from"./polygonUtils.js";import{loadTessellationUtils as S,preloadedPolygonToRenderInfoElevationAligned as C,preloadedPolygonToRenderInfoDraped as G}from"../../support/renderInfoUtils/polygon.js";import{Object3D as j}from"../../webgl-engine/lib/Object3D.js";import{RenderGeometry as P}from"../../webgl-engine/lib/RenderGeometry.js";import{Parameters as L,WaterMaterial as O}from"../../webgl-engine/materials/WaterMaterial.js";import{wavePresets as A}from"../../webgl-engine/materials/internal/waterMaterialUtils.js";const E=["polyline","polygon","extent"];class T extends _{static{this.unitSizeOfTexture=100}static{this.elevationModeChangeTypes={definedChanged:2,staysOnTheGround:0,onTheGroundChanged:2}}constructor(e,t,r,i){super(e,t,r,i)}async doLoad(){await S()}createGraphics3DGraphic(e){const t=e.graphic;if(!this._validateGeometry(t.geometry,E,this.symbolLayer.type))return null;const r=this.createElevationContextForGraphic(t);return this.ensureDrapedStatus("on-the-ground"===r.mode),this.ensureMaterial(),this.draped?this._createAsOverlay(t):this._createAs3DShape(t,r,t.uid)}ensureMaterial(){if(this._materials[0])return;const e=new L,t=this.symbolLayer.color.toUnitRGBA();t[3]*=this._getLayerOpacity(),e.color=t,e.transparent=t[3]<1||this.needsDrivenTransparentPass,e.waveDirection=null!=this.symbolLayer.waveDirection?U(this.symbolLayer.waveDirection):r(0,0);const i=this.symbolLayer.waveStrength+"-"+this.symbolLayer.waterbodySize,o=A[i];e.waveStrength=o.waveStrength,e.waveTextureRepeat=o.textureRepeat,e.waveVelocity=o.waveVelocity,e.flowStrength=o.perturbationStrength,e.hasSlicePlane=this._context.slicePlaneEnabled,e.draped=this.draped,e.useIndexing=!0,this._materials[0]=new O(e,this._context)}layerOpacityChanged(){if(null==this._materials[0])return;const e=this._materials[0].parameters.color,t=this.symbolLayer.color.a*this._getLayerOpacity(),r=t<1||this.needsDrivenTransparentPass;this._materials[0].setParameters({color:[e[0],e[1],e[2],t],transparent:r})}layerScreenSizePerspectiveChanged(){}layerElevationInfoChanged(e,t,r){const i=this._elevationContext.mode,o=y(T.elevationModeChangeTypes,r,i);if(1!==o)return o;const n=f(i);return this.updateGraphics3DGraphicElevationInfo(e,t,()=>n)}slicePlaneEnabledChanged(){return this._materials[0]?.setParameters({hasSlicePlane:this._context.slicePlaneEnabled}),!0}physicalBasedRenderingChanged(){return!0}get needsDrivenTransparentPass(){return!1}_createAs3DShape(e,t,r){const i=w(e.geometry);if(null==i)return null;const o=C(i,this._context.elevationProvider,this._context.renderCoordsHelper,t);if(null==o)return null;const n=o.vertexCount,s=d(2*n);B(s,o.mapPositions,n,this._context.elevationProvider.spatialReference);const a=new z(o,s,this._context.layerViewUid,e.uid);if(a.olidColor=this._context.stage.renderView?.getObjectAndLayerIdColor(a),this._create3DShapeGeometries(a),this._logGeometryCreationWarnings(a.renderData,i.rings,"rings","WaterSymbol3DLayer"),0===a.outGeometries.length)return null;const l=new j({geometries:a.outGeometries,castShadow:!1,layerViewUid:this._context.layerViewUid,graphicUid:r}),c=new v(this,l,null,g,t);return c.alignedSampledElevation=a.renderData.sampledElevation,c.needsElevationUpdates=f(t.mode),c}_create3DShapeGeometries(e){const{positions:t,mapPositions:r,polygonIndices:i}=e.renderData;if(0===e.renderData.polygonIndexCount)return;const o=e.uvCoords;if(null!=this._context.clippingExtent&&(s(r,V),!a(V,this._context.clippingExtent)))return;const n=D({material:this._materials[0],indices:i,mapPositions:r,attributeData:{position:t,uv0:o}},e.olidColor);e.outGeometries.push(n)}_createAsOverlay(e){const t=w(e.geometry);if(null==t)return null;this._materials[0].renderPriority=this._renderPriority;const r=G(t,{drapedSpatialReference:this._context.overlaySR});if(null==r)return null;const i=r.vertexCount,o=d(2*i);B(o,r.positions,i,this._context.overlaySR);const n=new W(r,o,this._context.layerViewUid,e.uid);return n.olidColor=this._context.stage.renderView?.getObjectAndLayerIdColor(n),n.outBoundingBox=l(),this._createAsOverlayWater(n),this._logGeometryCreationWarnings(n.renderData,t.rings,"rings","WaterSymbol3DLayer"),0===n.outGeometries.length?null:new x(this,n.outGeometries,n.outBoundingBox,this._context.drapeSourceRenderer)}_createAsOverlayWater(e){const t=e.uvCoords,{positions:r,polygonIndices:i}=e.renderData;if(s(r,V),!a(V,this._context.clippingExtent))return;if(c(e.outBoundingBox,V),0===e.renderData.polygonIndexCount)return;const o=D({material:this._materials[0],indices:i,attributeData:{position:r,uv0:t}},e.olidColor);e.outGeometries.push(new P(o,e))}test(){return{...super.test(),create3DShape:e=>this._createAs3DShape(e.graphic,e.elevationContext,e.graphicUid),ensureMaterial:()=>this.ensureMaterial()}}}function U(e){const t=i(),r=n(e);return t[0]=Math.sin(r),t[1]=Math.cos(r),t}function B(r,i,n,s){const a=e(s);p(I);for(let e=0;e<n;e++)t(M,i[3*e],i[3*e+1]),u(I,M);o(I,I,a);const l=I[0]%T.unitSizeOfTexture,c=I[1]%T.unitSizeOfTexture;R[0]=I[0]-l,R[1]=I[1]-c;for(let e=0;e<n;e++)r[2*e]=(i[3*e]*a-R[0])/T.unitSizeOfTexture,r[2*e+1]=(i[3*e+1]*a-R[1])/T.unitSizeOfTexture}const R=i(),I=m(),M=i(),V=h();class z extends b{constructor(e,t,r,i){super(e,r,i),this.uvCoords=t}}class W extends b{constructor(e,t,r,i){super(e,r,i),this.uvCoords=t}}export{T as Graphics3DWaterSymbolLayer,U as headingVectorFromAngle};
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */
2
- import e from"../../../../core/Logger.js";import{throwIfAborted as t}from"../../../../core/promiseUtils.js";import{hydrateGeometry as r}from"../../../../layers/graphics/hydratedFeatures.js";import{loadArcade as n}from"../../../../support/loadArcade.js";const c=()=>e.getLogger("esri.views.3d.layers.graphics.featureExpressionInfoUtils");function o(e){return{cachedResult:e.cachedResult,arcade:e.arcade?{func:e.arcade.func,context:e.arcade.modules.arcadeUtils.createExecContext(null,{sr:e.arcade.context.spatialReference}),modules:e.arcade.modules}:null}}function u(e){const t=e?.expression;if("string"==typeof t){const e=m(t);if(null!=e)return{cachedResult:e}}return null}async function a(e,r,c,o){const u=e?.expression;if("string"!=typeof u)return null;const a=m(u);if(null!=a)return{cachedResult:a};const s=await n();t(c);const l=s.arcadeUtils,i=l.createSyntaxTree(u);return l.dependsOnView(i)?(null!=o&&o.error("Expressions containing '$view' are not supported on ElevationInfo"),{cachedResult:0}):{arcade:{func:l.createFunction(i),context:l.createExecContext(null,{sr:r}),modules:s}}}function s(e,t,r){return e.arcadeUtils.createFeature(t.attributes,t.geometry,r)}function l(e,t){if(null!=e&&!p(e)){if(!t||!e.arcade)return void c().errorOncePerTick("Arcade support required but not provided");const n=t;n._geometry&&(n._geometry=r(n._geometry)),e.arcade.modules.arcadeUtils.updateExecContext(e.arcade.context,t)}}function i(e){if(null!=e){if(p(e))return e.cachedResult;const t=e.arcade;let r=t?.modules.arcadeUtils.executeFunction(t.func,t.context);return"number"!=typeof r&&(e.cachedResult=0,r=0),r}return 0}function d(e,t=!1){let r=e?.featureExpressionInfo;const n=r?.expression;return t||"0"===n||(r=null),r??null}const f={cachedResult:0};function p(e){return null!=e.cachedResult}function m(e){return"0"===e?0:null}export{o as clone,a as createContext,u as createContextWithoutExpressionSupport,s as createFeature,i as execute,d as extractExpressionInfo,l as setContextFeature,f as zeroContext};
2
+ import e from"../../../../core/Logger.js";import{throwIfAborted as t}from"../../../../core/promiseUtils.js";import{hydrateGeometry as r}from"../../../../layers/graphics/hydratedFeatures.js";import{loadArcade as n}from"../../../../support/loadArcade.js";const c=()=>e.getLogger("esri.views.3d.layers.graphics.featureExpressionInfoUtils");function o(e){return{cachedResult:e.cachedResult,arcade:e.arcade?{func:e.arcade.func,context:e.arcade.modules.arcadeUtils.createExecContext(null,{sr:e.arcade.context.spatialReference}),modules:e.arcade.modules}:null}}function u(e){const t=e?.expression;if("string"==typeof t){const e=m(t);if(null!=e)return{cachedResult:e}}return null}async function s(e,r,c,o){const u=e?.expression;if("string"!=typeof u)return null;const s=m(u);if(null!=s)return{cachedResult:s};const a=await n();t(c);const l=a.arcadeUtils,i=l.createSyntaxTree(u);if(!i)return null;if(l.dependsOnView(i))return null!=o&&o.error("Expressions containing '$view' are not supported on ElevationInfo"),{cachedResult:0};const d=l.createFunction(i);if(!d)return null;return{arcade:{modules:a,func:d,context:l.createExecContext(null,{sr:r})}}}function a(e,t,r){return e.arcadeUtils.createFeature(t.attributes,t.geometry,r)}function l(e,t){if(null!=e&&!p(e)){if(!t||!e.arcade)return void c().errorOncePerTick("Arcade support required but not provided");const n=t;n._geometry&&(n._geometry=r(n._geometry)),e.arcade.modules.arcadeUtils.updateExecContext(e.arcade.context,t)}}function i(e){if(null!=e){if(p(e))return e.cachedResult;const t=e.arcade;let r=t?.modules.arcadeUtils.executeFunction(t.func,t.context);return"number"!=typeof r&&(e.cachedResult=0,r=0),r}return 0}function d(e,t=!1){let r=e?.featureExpressionInfo;const n=r?.expression;return t||"0"===n||(r=null),r??null}const f={cachedResult:0};function p(e){return null!=e.cachedResult}function m(e){return"0"===e?0:null}export{o as clone,s as createContext,u as createContextWithoutExpressionSupport,a as createFeature,i as execute,d as extractExpressionInfo,l as setContextFeature,f as zeroContext};
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */
2
- import{e as t}from"../../../../chunks/earcut.js";import e from"../../../../geometry/Extent.js";import o from"../../../../geometry/Polygon.js";import{getContinuousIndexArray as i,getZeroIndexArray as r}from"../../../../geometry/support/Indices.js";import{leastSignificantAxis as a}from"../../../../geometry/support/polygonUtils.js";import{Attribute as n}from"../../webgl-engine/lib/Attribute.js";import{Geometry as u}from"../../webgl-engine/lib/Geometry.js";function s(e,o,i){const r=(o.length>0?o[0]:e.length/3)-1,n=a(e,r,i);if(2!==n){e=e.slice();for(let t=0;t<e.length;t+=3)e[t+n]=e[t+2]}return t(e,o,3)}function l(t){const e=t.attributeData.position.length/3,o=i(e),a=[["position",new n(t.attributeData.position,o,3,!0)]],{boundingRect:s}=t.attributeData,l=null!=s,p=l?[0]:r(e);return null!=t.attributeData.colorFeature?a.push(["colorFeatureAttribute",new n([t.attributeData.colorFeature],p,1,!0)]):t.attributeData.color&&a.push(["color",new n(t.attributeData.color,p,4,!0)]),t.attributeData.uvMapSpace&&a.push(["uvMapSpace",new n(t.attributeData.uvMapSpace,o,4,!0)]),l&&a.push(["boundingRect",new n(s,p,9,!0)]),new u(t.material,a,t.mapPositions,0,t.attributeData.olidColor,void 0,void 0,t.indices)}function p(t,e=null){const o=t.attributeData.position.length/3,r=i(o),a=[["position",new n(t.attributeData.position,r,3,!0)],["uv0",new n(t.attributeData.uv0,r,2,!0)]];return new u(t.material,a,t.mapPositions,0,e,void 0,void 0,t.indices)}function c(t){switch(t.type){case"extent":if(t instanceof e)return o.fromExtent(t);break;case"polygon":return t}return null}class m{constructor(t,e,o){this.renderData=t,this.layerViewUid=e,this.graphicUid=o,this.outGeometries=new Array}}export{m as PolygonCreationDataBase,l as createColorGeometry,s as createIndices3D,p as createWaterGeometry,c as geometryAsPolygon};
2
+ import t from"../../../../geometry/Extent.js";import e from"../../../../geometry/Polygon.js";import{getContinuousIndexArray as i,getZeroIndexArray as o}from"../../../../geometry/support/Indices.js";import{Attribute as a}from"../../webgl-engine/lib/Attribute.js";import{Geometry as r}from"../../webgl-engine/lib/Geometry.js";function n(t){const e=t.attributeData.position.length/3,n=i(e),u=[["position",new a(t.attributeData.position,n,3,!0)]],{boundingRect:s}=t.attributeData,p=null!=s,l=p?[0]:o(e);return null!=t.attributeData.colorFeature?u.push(["colorFeatureAttribute",new a([t.attributeData.colorFeature],l,1,!0)]):t.attributeData.color&&u.push(["color",new a(t.attributeData.color,l,4,!0)]),t.attributeData.uvMapSpace&&u.push(["uvMapSpace",new a(t.attributeData.uvMapSpace,n,4,!0)]),p&&u.push(["boundingRect",new a(s,l,9,!0)]),new r(t.material,u,t.mapPositions,0,t.attributeData.olidColor,void 0,void 0,t.indices)}function u(t,e=null){const o=t.attributeData.position.length/3,n=i(o),u=[["position",new a(t.attributeData.position,n,3,!0)],["uv0",new a(t.attributeData.uv0,n,2,!0)]];return new r(t.material,u,t.mapPositions,0,e,void 0,void 0,t.indices)}function s(i){switch(i.type){case"extent":if(i instanceof t)return e.fromExtent(i);break;case"polygon":return i}return null}class p{constructor(t,e,i){this.renderData=t,this.layerViewUid=e,this.graphicUid=i,this.outGeometries=new Array}}export{p as PolygonCreationDataBase,n as createColorGeometry,u as createWaterGeometry,s as geometryAsPolygon};
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */
2
- import"../../../../core/has.js";import"../../../../core/Logger.js";import{trackAccess as t}from"../../../../core/accessorSupport/tracking.js";import{SimpleObservable as n}from"../../../../core/accessorSupport/tracking/SimpleObservable.js";import{e}from"../../../../chunks/earcut.js";import{loadLibtessF64 as o,isLibtessF64Loaded as s,triangulateIndexedF64 as i}from"../../../../geometry/libtess.js";import{isClockwise as r}from"../../../../geometry/support/coordsUtils.js";import{newDoubleArray as l,doubleSubArray as u}from"../../../../geometry/support/DoubleArray.js";import{compactMeshIndices as c,newIndexArray as h}from"../../../../geometry/support/Indices.js";import{leastSignificantAxis as g}from"../../../../geometry/support/polygonUtils.js";const f=1e-5,p=100,d={method:"auto",projectionAxis:void 0,outlines:void 0};function a(t,n){const{hasZ:e,ccwRingsAsHoles:o,spatialReference:s}=n,i=n.axis??m(t,e,s),r=t.length,c=new Array(r),h=new Array(r),g=new Array(r),f=t.reduce((t,n)=>t+n.length,0);let p=0,d=0,a=0;const x=l(3*f);let L=0;for(let l=r-1;l>=0;l--){const n=t[l];if(U(n,e)<3)continue;const s=!!o&&y(n,e,i);if(s&&1!==r)c[p++]=n;else{let t=n.length;for(let n=0;n<p;++n)t+=c[n].length;const o={index:L,pathLengths:new Array(p+1),count:t,holeIndices:new Array(p)};o.pathLengths[0]=n.length,n.length>0&&(g[a++]={index:L,count:n.length}),L=s?S(n,n.length-1,-1,x,L,n.length,e):S(n,0,1,x,L,n.length,e);for(let n=0;n<p;++n){const t=c[n];o.holeIndices[n]=L,o.pathLengths[n+1]=t.length,t.length>0&&(g[a++]={index:L,count:t.length}),L=S(t,0,1,x,L,t.length,e)}p=0,o.count>0&&(h[d++]=o)}}h.length=d,g.length=a;return{positions:3*L===x.length?x:u(x,0,3*L),polygons:h,outlines:g}}function m(t,n,e){if(!n)return 2;const o=t.map(t=>{const o=U(t,n);return o<3?2:g(t,o,e)}),s=o[0];return o.every(t=>t===s)?s:2}function y(t,n,e){if(!n)return!r(t);if(t.length<3)return!1;switch(e){case 0:return!r(t,1,2);case 1:return!r(t,0,2);case 2:return!r(t,0,1)}}const x=new n;function L(n,e){const o=j(n,e);if(o.succeeded)return{pending:null,result:o};return"libtess-not-loaded"===o.message?(t(x),{pending:v(),result:null}):{pending:null,result:o}}async function v(){try{await o(),x.notify()}catch(t){throw t}}function j(t,n){const e={...d,...n},{projectionAxis:o}=e,s=null!=o&&2!==o;s&&I(t.positions,o,2);const i=w(t,e);if(s){const n=i.succeeded?i.positions:null;null!=n&&n!==t.positions&&I(n,2,o),I(t.positions,2,o)}return i.succeeded,i}function w(t,n){if("libtess"===n.method||"auto"===n.method&&B(t)>p)return A(t,n);const o=Array();let s=0;for(const l of t.polygons){const i=k(t.positions,l),r=(l.holeIndices??[]).map(t=>t-l.index),u=r.length>0?r:null,c=e(i,u,3),h=e.deviation(i,r,3,c);if("auto"===n.method&&h>f)return A(t,n);for(let t=0;t<c.length;t++)o.push(c[t]+l.index);s=Math.max(s,h)}const{outlineIndexBuffer:i,outlineRingLengths:r}=null!=n.outlines?b(n.outlines,t.positions):{outlineIndexBuffer:void 0,outlineRingLengths:void 0};return{succeeded:!0,positions:t.positions,indices:c(o),outlineIndexBuffer:i,outlineRingLengths:r,vertexCount:t.positions.length/3,method:"earcut",deviation:s}}function A(t,n){if(!s())return D("libtess-not-loaded");const e=null!=n.outlines,o=R(t.polygons),{vertices:r,indices:l,outlineIndices:u,outlineRingLengths:c}=i(t.positions,o,3,e);return r.length%3!=0?D("positions-not-multiple-of-3"):{succeeded:!0,positions:r,indices:l,outlineIndexBuffer:e?u:void 0,outlineRingLengths:e?c:void 0,vertexCount:r.length/3,method:"libtess"}}function I(t,n,e){for(let o=0;o<t.length;o+=3){const s=t[o+n];t[o+n]=t[o+e],t[o+e]=s}}function b(t,n){const e=h(t.length);let o=0;for(let r=0;r<t.length;r++){const s=t[r],i=s.count;if(i<=0){e[r]=0;continue}const l=3*s.index,u=3*(s.index+i-1),c=i>1&&n[l]===n[u]&&n[l+1]===n[u+1]&&n[l+2]===n[u+2]?i-1:i,h=c>0?c+1:0;e[r]=h,o+=h}const s=h(o);let i=0;for(let r=0;r<t.length;r++){const n=e[r];if(0===n)continue;const o=t[r].index,l=n-1;for(let t=0;t<l;t++)s[i++]=o+t;s[i++]=o}return{outlineIndexBuffer:s,outlineRingLengths:e}}function R(t){const n=t.reduce((t,n)=>t+n.pathLengths.length,0),e=new Array(n);let o=0;for(let s=0;s<t.length;s++){const n=t[s].pathLengths;for(let t=0;t<n.length;t++)e[o++]=n[t]}return e}function B(t){return t.polygons.reduce((t,n)=>{if(null==n.holeIndices)return t;if(0===n.pathLengths.length)return t;let e=0;for(let o=0;o<n.pathLengths.length;o++)e+=n.pathLengths[o];return t+(e-n.pathLengths[0])},0)}function k(t,{index:n,count:e}){return u(t,3*n,3*e)}function S(t,n,e,o,s,i,r){s*=3;for(let l=0;l<i;++l){const i=t[n];o[s++]=i[0],o[s++]=i[1],o[s++]=r&&null!=i[2]?i[2]:0,n+=e}return s/3}function C(t,n){const e=t.length;if(e<2)return!1;const o=t[0],s=t[e-1];return o[0]===s[0]&&o[1]===s[1]&&(!n||o[2]===s[2])}function U(t,n){return C(t,n)?t.length-1:t.length}function D(t){return{succeeded:!1,message:t}}export{m as axisFromRings,y as isCounterClockwise,v as load,a as ringsToOutlinedTessellationInfo,j as tessellate,L as tessellateOrLoad};
2
+ import"../../../../core/has.js";import"../../../../core/Logger.js";import{trackAccess as t}from"../../../../core/accessorSupport/tracking.js";import{SimpleObservable as n}from"../../../../core/accessorSupport/tracking/SimpleObservable.js";import{e}from"../../../../chunks/earcut.js";import{loadLibtessF64 as o,isLibtessF64Loaded as s,triangulateIndexedF64 as i}from"../../../../geometry/libtess.js";import{isClockwise as r}from"../../../../geometry/support/coordsUtils.js";import{newDoubleArray as l,doubleSubArray as u}from"../../../../geometry/support/DoubleArray.js";import{compactMeshIndices as c,newIndexArray as h}from"../../../../geometry/support/Indices.js";import{leastSignificantAxis as g}from"../../../../geometry/support/polygonUtils.js";const f=1e-5,d=100,p={method:"auto",projectionAxis:void 0,outlines:void 0};function a(t,n){const{hasZ:e,ccwRingsAsHoles:o,spatialReference:s}=n,i=n.axis??m(t,e,s),r=t.length,c=new Array(r),h=new Array(r),g=new Array(r),f=t.reduce((t,n)=>t+n.length,0);let d=0,p=0,a=0;const y=l(3*f);let L=0;for(let l=r-1;l>=0;l--){const n=t[l],s=U(n,e);if(s<3){s>1&&(g[a++]={index:L,count:n.length},L=S(n,0,1,y,L,n.length,e));continue}const u=!!o&&x(n,e,i);if(u&&1!==r)c[d++]=n;else{let t=n.length;for(let n=0;n<d;++n)t+=c[n].length;const o={index:L,pathLengths:new Array(d+1),count:t,holeIndices:new Array(d)};o.pathLengths[0]=n.length,n.length>0&&(g[a++]={index:L,count:n.length}),L=u?S(n,n.length-1,-1,y,L,n.length,e):S(n,0,1,y,L,n.length,e);for(let n=0;n<d;++n){const t=c[n];o.holeIndices[n]=L,o.pathLengths[n+1]=t.length,t.length>0&&(g[a++]={index:L,count:t.length}),L=S(t,0,1,y,L,t.length,e)}d=0,o.count>0&&(h[p++]=o)}}h.length=p,g.length=a;return{positions:3*L===y.length?y:u(y,0,3*L),polygons:h,outlines:g}}function m(t,n,e){if(!n)return 2;const o=t.map(t=>{const o=U(t,n);return o<3?2:g(t,o,e)}),s=o[0];return o.every(t=>t===s)?s:2}function x(t,n,e){if(!n)return!r(t);if(t.length<3)return!1;switch(e){case 0:return!r(t,1,2);case 1:return!r(t,0,2);case 2:return!r(t,0,1)}}const y=new n;function L(n,e){const o=j(n,e);if(o.succeeded)return o;return"libtess-not-loaded"===o.message?(t(y),v()):o}async function v(){try{await o(),y.notify()}catch(t){throw t}}function j(t,n){const e={...p,...n},{projectionAxis:o}=e,s=null!=o&&2!==o;s&&I(t.positions,o,2);const i=w(t,e);if(s){const n=i.succeeded?i.positions:null;null!=n&&n!==t.positions&&I(n,2,o),I(t.positions,2,o)}return i.succeeded,i}function w(t,n){if("libtess"===n.method||"auto"===n.method&&B(t)>d)return A(t,n);const o=Array();let s=0;for(const l of t.polygons){const i=k(t.positions,l),r=(l.holeIndices??[]).map(t=>t-l.index),u=r.length>0?r:null,c=e(i,u,3),h=e.deviation(i,r,3,c);if("auto"===n.method&&h>f)return A(t,n);for(let t=0;t<c.length;t++)o.push(c[t]+l.index);s=Math.max(s,h)}const{outlineIndexBuffer:i,outlineRingLengths:r}=null!=n.outlines?b(n.outlines,t.positions):{outlineIndexBuffer:void 0,outlineRingLengths:void 0};return{succeeded:!0,positions:t.positions,indices:c(o),outlineIndexBuffer:i,outlineRingLengths:r,vertexCount:t.positions.length/3,method:"earcut",deviation:s}}function A(t,n){if(!s())return D("libtess-not-loaded");const e=null!=n.outlines,o=R(t.polygons),{vertices:r,indices:l,outlineIndices:u,outlineRingLengths:c}=i(t.positions,o,3,e);return r.length%3!=0?D("positions-not-multiple-of-3"):{succeeded:!0,positions:r,indices:l,outlineIndexBuffer:e?u:void 0,outlineRingLengths:e?c:void 0,vertexCount:r.length/3,method:"libtess"}}function I(t,n,e){for(let o=0;o<t.length;o+=3){const s=t[o+n];t[o+n]=t[o+e],t[o+e]=s}}function b(t,n){const e=h(t.length);let o=0;for(let r=0;r<t.length;r++){const s=t[r],i=s.count;if(i<=0){e[r]=0;continue}const l=3*s.index,u=3*(s.index+i-1),c=i>1&&n[l]===n[u]&&n[l+1]===n[u+1]&&n[l+2]===n[u+2]?i-1:i,h=c>0?c+1:0;e[r]=h,o+=h}const s=h(o);let i=0;for(let r=0;r<t.length;r++){const n=e[r];if(0===n)continue;const o=t[r].index,l=n-1;for(let t=0;t<l;t++)s[i++]=o+t;s[i++]=o}return{outlineIndexBuffer:s,outlineRingLengths:e}}function R(t){const n=t.reduce((t,n)=>t+n.pathLengths.length,0),e=new Array(n);let o=0;for(let s=0;s<t.length;s++){const n=t[s].pathLengths;for(let t=0;t<n.length;t++)e[o++]=n[t]}return e}function B(t){return t.polygons.reduce((t,n)=>{if(null==n.holeIndices)return t;if(0===n.pathLengths.length)return t;let e=0;for(let o=0;o<n.pathLengths.length;o++)e+=n.pathLengths[o];return t+(e-n.pathLengths[0])},0)}function k(t,{index:n,count:e}){return u(t,3*n,3*e)}function S(t,n,e,o,s,i,r){s*=3;for(let l=0;l<i;++l){const i=t[n];o[s++]=i[0],o[s++]=i[1],o[s++]=r&&null!=i[2]?i[2]:0,n+=e}return s/3}function C(t,n){const e=t.length;if(e<2)return!1;const o=t[0],s=t[e-1];return o[0]===s[0]&&o[1]===s[1]&&(!n||o[2]===s[2])}function U(t,n){return C(t,n)?t.length-1:t.length}function D(t){return{succeeded:!1,message:t}}export{m as axisFromRings,x as isCounterClockwise,v as load,a as ringsToOutlinedTessellationInfo,j as tessellate,L as tessellateOrLoad};
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */
2
- import{__decorate as e}from"tslib";import t from"../../../../core/Accessor.js";import{destroyMaybe as r}from"../../../../core/maybe.js";import{property as n,subclass as s}from"../../../../core/accessorSupport/decorators.js";import i from"../../../../geometry/Extent.js";import{fallbackObjectIDAttribute as a}from"../../../../layers/LayerConstants.js";import{QueryEngine as o}from"../../../../layers/graphics/data/QueryEngine.js";import u from"../../../../layers/support/FieldsIndex.js";import y from"../../../../rest/support/FeatureSet.js";import l from"../../../../rest/support/Query.js";const c=o;let p=class extends t{constructor(e){super(e)}initialize(){this.addHandles(this.layerView.on("visible-geometry-changed",()=>this.spatialIndex.events.emit("changed")))}destroy(){this._dataQueryEngineInstance=r(this._dataQueryEngineInstance),this._set("layerView",null)}get spatialReference(){return this.layerView.view.spatialReference}get layer(){return this.layerView.i3slayer}get defaultQueryJSON(){return new l({outSpatialReference:this.spatialReference}).toJSON()}get _dataQueryEngine(){return this._ensureDataQueryEngine()}async executeQueryForCount(e,t){return this._dataQueryEngine.executeQueryForCount(this._ensureQueryJSON(e),t)}async executeQueryForExtent(e,t){const{count:r,extent:n}=await this._dataQueryEngine.executeQueryForExtent(this._ensureQueryJSON(e),t);return{count:r,extent:i.fromJSON(n)}}async executeQueryForIds(e,t){return this._dataQueryEngine.executeQueryForIds(this._ensureQueryJSON(e),t)}async executeQuery(e,t){const r=this._ensureQueryJSON(e),n=await this._dataQueryEngine.executeQuery(r,t);if(e?.returnGeometry){const{processQueryGeometries:e}=await import("./I3SQueryResultGeometry.js");return e(this.layerView,n)}return y.fromJSON(n)}_ensureQueryJSON(e){return null==e?this.defaultQueryJSON:e.toJSON()}_ensureDataQueryEngine(){if(this._dataQueryEngineInstance)return this._dataQueryEngineInstance;const e=this.layer.objectIdField||a,t="esriGeometryPolygon",r=this.layer.fieldsIndex?.toJSON()||new u([]),n=this.layerView.view.resourceController.scheduler,s=this.spatialReference.toJSON(),i=this.priority,o=this.spatialIndex;return this._dataQueryEngineInstance=new c({hasZ:!0,hasM:!1,geometryType:t,fieldsIndex:r,timeInfo:null,spatialReference:s,featureIdInfo:{type:"object-id",fieldName:e},featureStore:o,scheduler:n,priority:i}),this._dataQueryEngineInstance}};e([n({constructOnly:!0})],p.prototype,"layerView",void 0),e([n({constructOnly:!0})],p.prototype,"priority",void 0),e([n({constructOnly:!0})],p.prototype,"spatialIndex",void 0),e([n()],p.prototype,"spatialReference",null),e([n()],p.prototype,"layer",null),e([n()],p.prototype,"defaultQueryJSON",null),p=e([s("esri.views.3d.layers.i3s.I3SQueryEngine")],p);export{p as I3SQueryEngine};
2
+ import{__decorate as e}from"tslib";import t from"../../../../core/Accessor.js";import{destroyMaybe as r}from"../../../../core/maybe.js";import{watch as s,sync as n}from"../../../../core/reactiveUtils.js";import{property as i,subclass as a}from"../../../../core/accessorSupport/decorators.js";import o from"../../../../geometry/Extent.js";import{fallbackObjectIDAttribute as u}from"../../../../layers/LayerConstants.js";import{QueryEngine as y}from"../../../../layers/graphics/data/QueryEngine.js";import l from"../../../../layers/support/FieldsIndex.js";import c from"../../../../rest/support/FeatureSet.js";import d from"../../../../rest/support/Query.js";const p=y;let h=class extends t{constructor(e){super(e)}initialize(){this.addHandles(this.layerView.on("visible-geometry-changed",()=>this.spatialIndex.events.emit("changed"))),this.addHandles(s(()=>this.layerView.availableFields,()=>this._dataQueryEngineInstance=r(this._dataQueryEngineInstance),n))}destroy(){this._dataQueryEngineInstance=r(this._dataQueryEngineInstance),this._set("layerView",null)}get spatialReference(){return this.layerView.view.spatialReference}get layer(){return this.layerView.i3slayer}get defaultQueryJSON(){return new d({outSpatialReference:this.spatialReference}).toJSON()}get _dataQueryEngine(){return this._ensureDataQueryEngine()}async executeQueryForCount(e,t){return this._dataQueryEngine.executeQueryForCount(this._ensureQueryJSON(e),t)}async executeQueryForExtent(e,t){const{count:r,extent:s}=await this._dataQueryEngine.executeQueryForExtent(this._ensureQueryJSON(e),t);return{count:r,extent:o.fromJSON(s)}}async executeQueryForIds(e,t){return this._dataQueryEngine.executeQueryForIds(this._ensureQueryJSON(e),t)}async executeQuery(e,t){const r=this._ensureQueryJSON(e),s=await this._dataQueryEngine.executeQuery(r,t);if(e?.returnGeometry){const{processQueryGeometries:e}=await import("./I3SQueryResultGeometry.js");return e(this.layerView,s)}return c.fromJSON(s)}_ensureQueryJSON(e){return null==e?this.defaultQueryJSON:e.toJSON()}_ensureDataQueryEngine(){if(this._dataQueryEngineInstance)return this._dataQueryEngineInstance;const e=this.layer.objectIdField||u,t="esriGeometryPolygon",r=this.layer.fieldsIndex?.toJSON()||new l([]),s=this.layerView.view.resourceController.scheduler,n=this.spatialReference.toJSON(),i=this.priority,a=this.spatialIndex,o=this.layerView.availableFields??[];return this._dataQueryEngineInstance=new p({hasZ:!0,hasM:!1,geometryType:t,fieldsIndex:r,timeInfo:null,spatialReference:n,featureIdInfo:{type:"object-id",fieldName:e},featureStore:a,scheduler:s,priority:i,availableFields:o}),this._dataQueryEngineInstance}};e([i({constructOnly:!0})],h.prototype,"layerView",void 0),e([i({constructOnly:!0})],h.prototype,"priority",void 0),e([i({constructOnly:!0})],h.prototype,"spatialIndex",void 0),e([i()],h.prototype,"spatialReference",null),e([i()],h.prototype,"layer",null),e([i()],h.prototype,"defaultQueryJSON",null),h=e([a("esri.views.3d.layers.i3s.I3SQueryEngine")],h);export{h as I3SQueryEngine};
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */
2
- import{__decorate as e}from"tslib";import t from"../../../Camera.js";import i from"../../../Viewpoint.js";import r from"../../../core/Accessor.js";import a from"../../../core/Logger.js";import{destroyMaybe as s}from"../../../core/maybe.js";import{on as n,watch as o,sync as h,when as l}from"../../../core/reactiveUtils.js";import{addFrameTask as c}from"../../../core/scheduling.js";import{createScreenPoint as p}from"../../../core/screenUtils.js";import{Milliseconds as m}from"../../../core/time.js";import{property as d,subclass as v}from"../../../core/accessorSupport/decorators.js";import{runUntracked as u}from"../../../core/accessorSupport/tracking.js";import{squaredDistance as w}from"../../../core/libs/gl-matrix-2/math/vec3.js";import{fromArray as g}from"../../../core/libs/gl-matrix-2/factories/vec3f64.js";import{set as _}from"../../../core/libs/gl-matrix-2/math/vec4.js";import{create as f}from"../../../core/libs/gl-matrix-2/factories/vec4f64.js";import y from"../../../geometry/Extent.js";import C from"../../../geometry/Point.js";import x from"../../../geometry/Polygon.js";import{isLoadedOrLoadFor as R,requiresLoad as S}from"../../../geometry/projectionUtils.js";import{fromRenderCamera as P,toRenderCamera as O}from"../webgl.js";import{applyAll as b}from"../camera/constraintUtils.js";import{cameraOnContentAlongViewDirection as T,surfaceElevationBelowRenderLocation as j}from"../camera/intersectionUtils.js";import{ConstraintsManager as z}from"./ConstraintsManager.js";import{Frustum as M}from"./Frustum.js";import{GoToOperation as I}from"./GoToOperation.js";import{SurfaceCollisionCorrectionController as H}from"./controllers/SurfaceCollisionCorrectionController.js";import{toArea as V,toExtent as B,applyTiltAdjustToScale as L,scaleToZoom as D,fromExtentSync as E,getObserverForPointAtDistanceSync as U,viewScaleToCameraDistance as k,zoomToScale as A}from"../support/cameraUtils.js";import{fromCamera as F,toCameraSync as N}from"../support/viewpointUtils.js";import G from"../webgl/RenderCamera.js";import{PropertiesPool as q}from"../../support/PropertiesPool.js";import{ensureAttachmentMaxSize as W}from"../../webgl/FramebufferObject.js";let Z=class extends r{constructor(e){super(e),this.ready=!1,this._windowDevicePixelRatio=1,this._devicePixelRatioOverride=null,this._idleTimeout=re,this.test={viewStateManager:this,contentCameraResetState:new Map,setDevicePixelRatio:e=>this._devicePixelRatioOverride=e,getDevicePixelRatioOverride:()=>this._devicePixelRatioOverride,renderState:null,get maximumPixelRatio(){return this.viewStateManager.view.qualitySettings.maximumPixelRatio},get updatingIgnoreRenderState(){return null!=this.renderState},get idleTimeoutEnabled(){return this.viewStateManager._idleTimeout>0},set idleTimeoutEnabled(e){this.viewStateManager._idleTimeout=e?re:0}},this._propertiesPool=new q({frustum:()=>new M(null)},this),this._cameraSetByUser=!1,this._gotoOperation=null,this._cameraChangeTime=0,this._tmpCanvasSize=new J}initialize(){this._cameraChangeTime=performance.now(),this.addHandles([n(()=>this.view.state.events,"before-camera-change",({camera:e})=>e&&this._updateElevation(e)),o(()=>this.view.state?.camera,(e,t)=>this._cameraChangedHandler(e,t),h)]),l(()=>this.view.state?.camera,e=>this._updateElevation(e),{once:!0,sync:!0}),this.addHandles([c({prepare:e=>this._prepareFrame(e.time)}),o(()=>this.view.state.cameraController,()=>{this._cameraSetByUser=!0,this.removeHandles(te)}),n(()=>this.view.state.events,"camera-projection-changed",()=>this.notifyChange("scale"))])}destroy(){this.exit(),this._propertiesPool=s(this._propertiesPool)}get camera(){const e=this._get("camera");if(!this.ready)return e;const{view:t}=this,i=t.state.camera;return u(()=>{const r=P(t,i,Y);return r&&e&&r.equals(e)?e:r.clone()})}set camera(e){if(this._updatePropertyBeforeReady("camera",e))return;this.view.elevationProvider.enableCache(!0);const t=O(this.view,e);t?this.setStateCamera(t,{applyConstraints:!1})||a.getLogger(this).warnOnce("#camera=","There is a currently active camera controller that has priority."):a.getLogger(this).error("#camera=","Invalid camera",e),this.view.elevationProvider.enableCache(!1)}get contentCamera(){const e=this._get("contentCamera");if(!this.ready)return e;const{view:t}=this,i=t.state.contentCamera;return u(()=>{const r=P(t,i,Y);return r&&e&&r.equals(e)?e:r.clone()})}set contentCamera(e){if(this._updatePropertyBeforeReady("contentCamera",e))return;const t=O(this.view,e);this.view.state.contentCamera=null!=t?t:null}installContentCameraReset(e){if(this.removeHandles(ie),this.test.contentCameraResetState.clear(),!this.view.state.fixedContentCamera)return!1;const t=this.zoom,i=this.view.state.camera.distance**2,r=g(this.view.state.camera.center),a=e.sticky?this.contentCamera.clone():null;return this.addHandles([o(()=>this.contentCamera,()=>{e.sticky||(this.removeHandles(ie),this.test.contentCameraResetState.clear())}),o(()=>this.zoom,e=>{void 0!==e&&void 0!==t&&(this.test.contentCameraResetState.set("view.zoom",Math.abs(e-t)/2),Math.abs(e-t)>2?this.contentCamera=null:this.view.state.fixedContentCamera||(this.contentCamera=a))}),o(()=>this.view.state.camera,e=>{const t=w(r,e.center);this.test.contentCameraResetState.set("camera.center",t/i),t>i?this.contentCamera=null:this.view.state.fixedContentCamera||(this.contentCamera=a)})],ie),!0}get center(){return this.ready?this.view.pointsOfInterest.centerOnContent.location:this._get("center")}set center(e){this._updatePropertyBeforeReady("center",e)||(e?this.isCompatible(e)?this.setStateCamera(this._centerToCamera(e),{applyConstraints:!0})?this.view.pointsOfInterest.centerOnContent.runTask():a.getLogger(this).error("#center=","Invalid center",e):a.getLogger(this).error("#center=","Center has an incompatible spatial reference (center: "+(e.spatialReference?e.spatialReference.wkid:"none")+", view: "+this.view.spatialReference?.wkid+")",e):a.getLogger(this).error("#center=","Center may not be null or undefined"))}get visibleArea(){if(!this.ready){const e=this._get("extent");return e?x.fromExtent(e):null}return V(this.view,this.view.pointsOfInterest.focus.renderLocation)}get extent(){if(!this.ready)return this._get("extent");const e=this.view,t=B(e,e.state.camera,e.pointsOfInterest.centerOnContent.renderLocation);return null!=t?t:this._get("extent")}set extent(e){this._updatePropertyBeforeReady("extent",e)||(e?this.isCompatible(e)?this.setStateCamera(this._extentToCamera(e),{applyConstraints:!0})||a.getLogger(this).error("#extent=","Invalid extent",e):a.getLogger(this).error("#extent=","Extent has an incompatible spatial reference (extent: "+(e.spatialReference?e.spatialReference.wkid:"none")+", view: "+this.view.spatialReference?.wkid+")",e):a.getLogger(this).error("#extent=","Extent may not be null or undefined"))}get frustum(){const e=this._propertiesPool.get("frustum");return e.renderCoordsHelper=this.view.renderCoordsHelper,e.update(this.view.state.camera),e}get constraintsManager(){return this._constraintsManager}get _initialViewpoint(){const e=this.view.map;return e&&"initialViewProperties"in e?e.initialViewProperties?.viewpoint:void 0}get hasInitialView(){return!!this._initialViewpoint}get scale(){if(!this.ready)return this._get("scale");const e=this.view.basemapTerrain.tilingScheme,t=this.view.pointsOfInterest.cameraOnSurface.scale;return e&&t?L(this.view,t,this.view.state.contentCamera,e):this._get("scale")}set scale(e){this._updatePropertyBeforeReady("scale",e)||this.setStateCamera(this._scaleToCamera(e),{applyConstraints:!0})||a.getLogger(this).error("#scale=","Invalid scale",e)}get padding(){if(!this.ready)return this._get("padding");const e=this.view.state.camera,t=e.padding,i=e.pixelRatio,r=this._get("padding"),a=Math.round(t[0]/i),s=Math.round(t[1]/i),n=Math.round(t[2]/i),o=Math.round(t[3]/i);return null!=r&&r.top===a&&r.right===s&&r.bottom===n&&r.left===o?r:{top:a,right:s,bottom:n,left:o}}set padding(e){this._updatePropertyBeforeReady("padding",e)||(this._paddingToArray(e,this.view.state.camera.pixelRatio,ee),this.view.state.updateCamera(e=>e.padding=ee))}_paddingToArray(e,t,i){e?_(i,e.top||0,e.right||0,e.bottom||0,e.left||0):_(i,0,0,0,0);for(let r=0;r<4;r++)i[r]=Math.round(i[r]*t)}get screenCenter(){const e=this.padding;return p((this.view.width-(e.left+e.right))/2+e.left,(this.view.height-(e.top+e.bottom))/2+e.top)}get viewpoint(){return this.ready?F(this.view,this.camera):this._get("viewpoint")}set viewpoint(e){if(!this._updatePropertyBeforeReady("viewpoint",e))if(e){if(!this.isCompatible(e)){const t=null!=e.camera?e.camera.position:e.targetGeometry,i=null!=t&&t.spatialReference;return void a.getLogger(this).error("#viewpoint=","Viewpoint has an incompatible spatial reference (viewpoint: "+(i?i.wkid:"none")+", view: "+this.view.spatialReference?.wkid+")",e)}this.setStateCamera(this._viewpointToCamera(e),{applyConstraints:!e.camera})||a.getLogger(this).error("#viewpoint=","Invalid viewpoint",e)}else a.getLogger(this).error("#viewpoint=","Viewpoint may not be null or undefined")}get zoom(){return this.ready?D(this.view,this.scale):this._get("zoom")}set zoom(e){this._updatePropertyBeforeReady("zoom",e)||void 0===e||this.setStateCamera(this._zoomToCamera(e),{applyConstraints:!0})||a.getLogger(this).error("#zoom=","Invalid zoom",e)}_computeCanvasSize(){if(this._devicePixelRatioOverride)return this.view.state.contentPixelRatio=this._devicePixelRatioOverride,this._tmpCanvasSize.width=Math.round(this.view.surface.clientWidth*this._devicePixelRatioOverride),this._tmpCanvasSize.height=Math.round(this.view.surface.clientHeight*this._devicePixelRatioOverride),this._tmpCanvasSize.pixelRatio=this._devicePixelRatioOverride,this._tmpCanvasSize;const e=Math.min(this._windowDevicePixelRatio,this.view.qualitySettings.maximumPixelRatio),t=(this._useDevicePixelResolution()?this._windowDevicePixelRatio:e)*this.view.resolutionScale;this._tmpCanvasSize.width=Math.round(this.view.surface.clientWidth*t),this._tmpCanvasSize.height=Math.round(this.view.surface.clientHeight*t);const i=this.view.stage.renderView.renderingContext?.parameters.maxTextureSize;return i&&W(this._tmpCanvasSize,i),this._tmpCanvasSize.pixelRatio=this._tmpCanvasSize.width>0?this._tmpCanvasSize.width/this.view.surface.clientWidth*.5+this._tmpCanvasSize.height/this.view.surface.clientHeight*.5:t,this.view.state&&(this.view.state.contentPixelRatio=Math.min(this._windowDevicePixelRatio,this.view.qualitySettings.maximumPixelRatio)),this._tmpCanvasSize}get _rasterPixelRatio(){return null!=this._devicePixelRatioOverride?this._devicePixelRatioOverride:this._useDevicePixelResolution(2)?this._windowDevicePixelRatio:Math.min(this._windowDevicePixelRatio,this.view.qualitySettings.maximumPixelRatio)}_useDevicePixelResolution(e){return this.view?.stage?.renderer.isFeatureEnabled(9,e)??!1}preinit(e){return!(this._isOverridden("center")&&!R(this.center.spatialReference,e))&&(!(this._isOverridden("camera")&&!R(this.camera.position.spatialReference,e))&&(!(this._isOverridden("extent")&&!R(this.extent.spatialReference,e))&&!!(!this._isOverridden("viewpoint")||R(this.viewpoint.targetGeometry?.spatialReference,e)&&R(this.viewpoint.camera?.position?.spatialReference,e))))}init(){this._constraintsManager=new z({view:this.view}),this._prepareFrame(m(0));const e=this._getInitialProperties();this._cameraSetByUser=!1,this._set("ready",!0);for(const t of e)this.set(t.name,t.value);if(!this._cameraSetByUser){const e=this._initialViewpoint||this.view.initialExtent;e&&this.isCompatible(e)?this._setInitialView(e):2===this.view.state.viewingMode&&this.addHandles(l(()=>this.view.groundView.ready,()=>{this.removeHandles(te),this._setInitialView(this.view.dataExtent)},{once:!0,initial:!0}),te)}}exit(){this._cancelGoToOperation(),this.ready&&(this._override("padding",this.padding),this._set("ready",!1),this._clearOverride("hasInitialView"),this._cameraSetByUser=!1,this.removeHandles(te),this._constraintsManager=s(this._constraintsManager))}async goTo(e,t){return t={animate:this.view.state.animationsEnabled,...t},null!=this._gotoOperation&&this._gotoOperation.abort(t.animate),this._gotoOperation=new I(e,t,this.view),this.view.resourceController.scheduler.stopFrame(),this._gotoOperation.promise}debugSetCameraOnContent(){this.setStateCamera(T(this.view),{applyConstraints:!1})}step(e){const t=this.view.state?.cameraController;t?.stepController&&this.view.state.updateCamera(i=>t.stepController(e,i))}_cancelGoToOperation(){null!=this._gotoOperation&&(this._gotoOperation.abort(),this._gotoOperation=null)}_getInitialProperties(){const e=new Set,t=[];for(const{propertyName:i,overrides:r}of Q){const a=e.has(i),s=this._isOverridden(i);!a&&s&&t.push({name:i,value:this._get(i)}),this._clearOverride(i),(a||s)&&r.forEach(t=>e.add(t))}return t}_setInitialView(e){if(null==e||this._cameraSetByUser)return;if(e instanceof t)return void this.setStateCamera(O(this.view,e),{applyConstraints:!1});if(e instanceof i){if(e.targetGeometry instanceof y){const t=E(this.view,e.targetGeometry,0,.5,0);return void(null!=t&&this.setStateCamera(O(this.view,t),{applyConstraints:!0}))}const t={applyConstraints:!e.camera},i=this._viewpointToCamera(e);return void this.setStateCamera(i,t)}const r=E(this.view,e,0,.5,0);null!=r&&this.setStateCamera(O(this.view,r),{applyConstraints:!0})}_updatePropertyBeforeReady(e,t){return!this.ready&&(this._override(e,t),t&&K.has(e)&&this._override("hasInitialView",!0),!0)}isCompatible(e){return null!=e&&(e instanceof i?e.camera?this.isCompatible(e.camera):this.isCompatible(e.targetGeometry):e instanceof t?this.isCompatible(e.position):e.spatialReference&&!S(e.spatialReference,this.view.spatialReference))}_getPreservingHeadingTilt(e=X){return this._cameraSetByUser?(e.heading=this.camera.heading,e.tilt=this.camera.tilt):(e.heading=0,e.tilt=.5),e}_centerPointAtDistanceToCamera(e,t,i=$){const{heading:r,tilt:a}=this._getPreservingHeadingTilt(),s=U(this.view,r,a,e,t,1);return null==s?null:(i.copyFrom(this.view.state.camera),i.eye=s.eye,i.center=s.center,i.up=s.up,i)}_centerToCamera(e){let t;if(e.hasZ)t=this.view.state.camera.distance;else{const{centerOnContent:e}=this.view.pointsOfInterest;e.runTask(),t=e.distance}return this._centerPointAtDistanceToCamera(e,t)}_extentToCamera(e){const{heading:t,tilt:i}=this._getPreservingHeadingTilt(),r=E(this.view,e,t,i,1,Y);return r?O(this.view,r):null}_scaleToCamera(e){if(null==e)return null;const t=this.view,i=t.pointsOfInterest.centerOnContent;i.runTask();const r=i.renderLocation,a=t.pointsOfInterest.cameraOnSurface.renderLocation,s=k(t,e,r,a);return this._centerPointAtDistanceToCamera(r,s)}_zoomToCamera(e){return this._scaleToCamera(A(this.view,e))}_viewpointToCamera(e){return O(this.view,N(this.view,e))}setStateCamera(e,t){return!(null==e||!this.view.state.stopActiveCameraController())&&(this._cameraSetByUser=!0,t.doNotCancelGoToOperation||this._cancelGoToOperation(),this.view.state.updateCamera(i=>{t.positionAndOrientationOnly?(i.eye=e.eye,i.center=e.center,i.up=e.up,i.fov=e.fov):i.copyFrom(e),t.applyConstraints&&b(this.view,i)}),t.applyConstraints||(this.view.state.cameraController=new H({view:this.view,desiredCamera:e})),!0)}_prepareFrame(e){const{surface:t,canvas:i,stage:r}=this.view;if(!t||!i||!r||r.destroyed||r.destroying)return;this._windowDevicePixelRatio=window.devicePixelRatio;const a=this._computeCanvasSize();if(0!==a.width&&0!==a.height&&(i.width===a.width&&i.height===a.height||(i.width=a.width,i.height=a.height),this.view.state)){const t=this.view.state.camera;t.fullWidth===a.width&&t.fullHeight===a.height&&t.pixelRatio===a.pixelRatio||($.copyFrom(t),$.pixelRatio!==a.pixelRatio&&(this._paddingToArray(this.padding,a.pixelRatio,ee),$.padding=ee),$.fullWidth=a.width,$.fullHeight=a.height,$.pixelRatio=a.pixelRatio,this.view.state.camera=$),this._updateState(),this.view.state.occludedFragmentOpacity?.update(this.view,this.view.state.mode,e)}}_updateElevation(e){const t=this.view.renderCoordsHelper?.getAltitude(e.eye)??0,i=this.view.basemapTerrain?.spatialReference,r=i?j(this.view,e.eye):0;e.relativeElevation=t-r}_updateState(){null!=this.test.renderState?this.view.state.mode=this.test.renderState:this.view.animation?this.view.state.mode=0:this.view.interacting?this.view.state.mode=1:(0===this.view.state.mode&&(this._cameraChangeTime=0),performance.now()-this._cameraChangeTime<this._idleTimeout?this.view.state.mode=1:this.view.state.mode=2),this.view.state.rasterPixelRatio=this._rasterPixelRatio}_cameraChangedHandler(e,t){e&&t&&e.almostEquals(t)||(this._cameraChangeTime=performance.now(),this._updateState())}};e([d({type:t})],Z.prototype,"camera",null),e([d({type:t})],Z.prototype,"contentCamera",null),e([d({type:C})],Z.prototype,"center",null),e([d()],Z.prototype,"visibleArea",null),e([d({type:y})],Z.prototype,"extent",null),e([d({readOnly:!0})],Z.prototype,"frustum",null),e([d()],Z.prototype,"_constraintsManager",void 0),e([d({readOnly:!0})],Z.prototype,"constraintsManager",null),e([d()],Z.prototype,"_initialViewpoint",null),e([d({readOnly:!0})],Z.prototype,"hasInitialView",null),e([d({readOnly:!0,type:Boolean})],Z.prototype,"ready",void 0),e([d({type:Number})],Z.prototype,"scale",null),e([d()],Z.prototype,"padding",null),e([d({readOnly:!0})],Z.prototype,"screenCenter",null),e([d({constructOnly:!0})],Z.prototype,"view",void 0),e([d({type:i})],Z.prototype,"viewpoint",null),e([d({type:Number})],Z.prototype,"zoom",null),e([d({readOnly:!0})],Z.prototype,"_rasterPixelRatio",null),e([d({readOnly:!0})],Z.prototype,"_useDevicePixelResolution",null),e([d()],Z.prototype,"_windowDevicePixelRatio",void 0),e([d()],Z.prototype,"_devicePixelRatioOverride",void 0),Z=e([v("esri.views.3d.state.ViewStateManager")],Z);class J{constructor(){this.width=0,this.height=0,this.pixelRatio=1}}const K=new Set(["camera","viewpoint","extent","scale","center","zoom"]),Q=[{propertyName:"camera",overrides:["viewpoint"]},{propertyName:"viewpoint",overrides:["extent"]},{propertyName:"extent",overrides:["center","scale"]},{propertyName:"center",overrides:[]},{propertyName:"scale",overrides:["zoom"]},{propertyName:"zoom",overrides:[]},{propertyName:"padding",overrides:[]}],X={heading:0,tilt:0};let Y=new t,$=new G;const ee=f(),te="pending-initial-view",ie="content-camera-reset",re=300,ae=100;function se(){Y=new t,$=new G}export{Z as ViewStateManager,se as cleanupViewStateManager,ae as interactingTimeout};
2
+ import{__decorate as e}from"tslib";import t from"../../../Camera.js";import i from"../../../Viewpoint.js";import r from"../../../core/Accessor.js";import a from"../../../core/Logger.js";import{destroyMaybe as s}from"../../../core/maybe.js";import{on as n,watch as o,sync as h,when as l}from"../../../core/reactiveUtils.js";import{addFrameTask as c}from"../../../core/scheduling.js";import{createScreenPoint as p}from"../../../core/screenUtils.js";import{Milliseconds as m}from"../../../core/time.js";import{property as d,subclass as v}from"../../../core/accessorSupport/decorators.js";import{runUntracked as u}from"../../../core/accessorSupport/tracking.js";import{squaredDistance as w}from"../../../core/libs/gl-matrix-2/math/vec3.js";import{fromArray as g}from"../../../core/libs/gl-matrix-2/factories/vec3f64.js";import{set as _}from"../../../core/libs/gl-matrix-2/math/vec4.js";import{create as f}from"../../../core/libs/gl-matrix-2/factories/vec4f64.js";import y from"../../../geometry/Extent.js";import C from"../../../geometry/Point.js";import x from"../../../geometry/Polygon.js";import{isLoadedOrLoadFor as R,requiresLoad as S}from"../../../geometry/projectionUtils.js";import{fromRenderCamera as P,toRenderCamera as O}from"../webgl.js";import{applyAll as b}from"../camera/constraintUtils.js";import{cameraOnContentAlongViewDirection as T,surfaceElevationBelowRenderLocation as j}from"../camera/intersectionUtils.js";import{ConstraintsManager as z}from"./ConstraintsManager.js";import{Frustum as M}from"./Frustum.js";import{GoToOperation as I}from"./GoToOperation.js";import{SurfaceCollisionCorrectionController as H}from"./controllers/SurfaceCollisionCorrectionController.js";import{toArea as V,toExtent as B,applyTiltAdjustToScale as L,scaleToZoom as D,fromExtentSync as E,getObserverForPointAtDistanceSync as U,viewScaleToCameraDistance as k,zoomToScale as A}from"../support/cameraUtils.js";import{fromCamera as F,toCameraSync as N}from"../support/viewpointUtils.js";import G from"../webgl/RenderCamera.js";import{PropertiesPool as q}from"../../support/PropertiesPool.js";import{ensureAttachmentMaxSize as W}from"../../webgl/FramebufferObject.js";let Z=class extends r{constructor(e){super(e),this.ready=!1,this._windowDevicePixelRatio=1,this._devicePixelRatioOverride=null,this._idleTimeout=re,this.test={viewStateManager:this,contentCameraResetState:new Map,setDevicePixelRatio:e=>this._devicePixelRatioOverride=e,getDevicePixelRatioOverride:()=>this._devicePixelRatioOverride,renderState:null,get maximumPixelRatio(){return this.viewStateManager.view.qualitySettings.maximumPixelRatio},get updatingIgnoreRenderState(){return null!=this.renderState},get idleTimeoutEnabled(){return this.viewStateManager._idleTimeout>0},set idleTimeoutEnabled(e){this.viewStateManager._idleTimeout=e?re:0}},this._propertiesPool=new q({frustum:()=>new M(null)},this),this._cameraSetByUser=!1,this._gotoOperation=null,this._cameraChangeTime=0,this._tmpCanvasSize=new J}initialize(){this._cameraChangeTime=performance.now(),this.addHandles([n(()=>this.view.state.events,"before-camera-change",({camera:e})=>e&&this._updateElevation(e)),o(()=>this.view.state?.camera,(e,t)=>this._cameraChangedHandler(e,t),h)]),l(()=>this.view.state?.camera,e=>this._updateElevation(e),{once:!0,sync:!0}),this.addHandles([c({prepare:e=>this._prepareFrame(e.time)}),o(()=>this.view.state.cameraController,()=>{this._cameraSetByUser=!0,this.removeHandles(te)}),n(()=>this.view.state.events,"camera-projection-changed",()=>this.notifyChange("scale"))])}destroy(){this.exit(),this._propertiesPool=s(this._propertiesPool)}get camera(){const e=this._get("camera");if(!this.ready)return e;const{view:t}=this,i=t.state.camera;return u(()=>{const r=P(t,i,Y);return r&&e&&r.equals(e)?e:r.clone()})}set camera(e){if(this._updatePropertyBeforeReady("camera",e))return;this.view.elevationProvider.enableCache(!0);const t=O(this.view,e);t?this.setStateCamera(t,{applyConstraints:!1})||a.getLogger(this).warnOnce("#camera=","There is a currently active camera controller that has priority."):a.getLogger(this).error("#camera=","Invalid camera",e),this.view.elevationProvider.enableCache(!1)}get contentCamera(){const e=this._get("contentCamera");if(!this.ready)return e;const{view:t}=this,i=t.state.contentCamera;return u(()=>{const r=P(t,i,Y);return r&&e&&r.equals(e)?e:r.clone()})}set contentCamera(e){if(this._updatePropertyBeforeReady("contentCamera",e))return;const t=O(this.view,e);this.view.state.contentCamera=null!=t?t:null}installContentCameraReset(e){if(this.removeHandles(ie),this.test.contentCameraResetState.clear(),!this.view.state.fixedContentCamera)return!1;const t=this.zoom,i=this.view.state.camera.distance**2,r=g(this.view.state.camera.center),a=e.sticky?this.contentCamera.clone():null;return this.addHandles([o(()=>this.contentCamera,()=>{e.sticky||(this.removeHandles(ie),this.test.contentCameraResetState.clear())}),o(()=>this.zoom,e=>{void 0!==e&&void 0!==t&&(this.test.contentCameraResetState.set("view.zoom",Math.abs(e-t)/2),Math.abs(e-t)>2?this.contentCamera=null:this.view.state.fixedContentCamera||(this.contentCamera=a))}),o(()=>this.view.state.camera,e=>{const t=w(r,e.center);this.test.contentCameraResetState.set("camera.center",t/i),t>i?this.contentCamera=null:this.view.state.fixedContentCamera||(this.contentCamera=a)})],ie),!0}get center(){return this.ready?this.view.pointsOfInterest.centerOnContent.location:this._get("center")}set center(e){this._updatePropertyBeforeReady("center",e)||(e?this.isCompatible(e)?this.setStateCamera(this._centerToCamera(e),{applyConstraints:!0})?this.view.pointsOfInterest.centerOnContent.runTask():a.getLogger(this).error("#center=","Invalid center",e):a.getLogger(this).error("#center=","Center has an incompatible spatial reference (center: "+(e.spatialReference?e.spatialReference.wkid:"none")+", view: "+this.view.spatialReference?.wkid+")",e):a.getLogger(this).error("#center=","Center may not be null or undefined"))}get visibleArea(){if(!this.ready){const e=this._get("extent");return e?x.fromExtent(e):null}return V(this.view,this.view.pointsOfInterest.focus.renderLocation)}get extent(){if(!this.ready)return this._get("extent");const e=this.view,t=B(e,e.state.camera,e.pointsOfInterest.centerOnContent.renderLocation);return null!=t?t:this._get("extent")}set extent(e){this._updatePropertyBeforeReady("extent",e)||(e?this.isCompatible(e)?this.setStateCamera(this._extentToCamera(e),{applyConstraints:!0})||a.getLogger(this).error("#extent=","Invalid extent",e):a.getLogger(this).error("#extent=","Extent has an incompatible spatial reference (extent: "+(e.spatialReference?e.spatialReference.wkid:"none")+", view: "+this.view.spatialReference?.wkid+")",e):a.getLogger(this).error("#extent=","Extent may not be null or undefined"))}get frustum(){const e=this._propertiesPool.get("frustum");return e.renderCoordsHelper=this.view.renderCoordsHelper,e.update(this.view.state.camera),e}get constraintsManager(){return this._constraintsManager}get _initialViewpoint(){const e=this.view.map;return e&&"initialViewProperties"in e?e.initialViewProperties?.viewpoint:void 0}get hasInitialView(){return!!this._initialViewpoint}get scale(){if(!this.ready)return this._get("scale");const e=this.view.basemapTerrain.tilingScheme,t=this.view.pointsOfInterest.cameraOnSurface.scale;return e&&t?L(this.view,t,this.view.state.contentCamera,e):this._get("scale")}set scale(e){this._updatePropertyBeforeReady("scale",e)||this.setStateCamera(this._scaleToCamera(e),{applyConstraints:!0})||a.getLogger(this).error("#scale=","Invalid scale",e)}get padding(){if(!this.ready)return this._get("padding");const e=this.view.state.camera,t=e.padding,i=e.pixelRatio,r=this._get("padding"),a=Math.round(t[0]/i),s=Math.round(t[1]/i),n=Math.round(t[2]/i),o=Math.round(t[3]/i);return null!=r&&r.top===a&&r.right===s&&r.bottom===n&&r.left===o?r:{top:a,right:s,bottom:n,left:o}}set padding(e){this._updatePropertyBeforeReady("padding",e)||(this._paddingToArray(e,this.view.state.camera.pixelRatio,ee),this.view.state.updateCamera(e=>e.padding=ee))}_paddingToArray(e,t,i){e?_(i,e.top||0,e.right||0,e.bottom||0,e.left||0):_(i,0,0,0,0);for(let r=0;r<4;r++)i[r]=Math.round(i[r]*t)}get screenCenter(){const e=this.padding;return p((this.view.width-(e.left+e.right))/2+e.left,(this.view.height-(e.top+e.bottom))/2+e.top)}get viewpoint(){return this.ready?F(this.view,this.camera):this._get("viewpoint")}set viewpoint(e){if(!this._updatePropertyBeforeReady("viewpoint",e))if(e){if(!this.isCompatible(e)){const t=null!=e.camera?e.camera.position:e.targetGeometry,i=null!=t&&t.spatialReference;return void a.getLogger(this).error("#viewpoint=","Viewpoint has an incompatible spatial reference (viewpoint: "+(i?i.wkid:"none")+", view: "+this.view.spatialReference?.wkid+")",e)}this.setStateCamera(this._viewpointToCamera(e),{applyConstraints:!e.camera})||a.getLogger(this).error("#viewpoint=","Invalid viewpoint",e)}else a.getLogger(this).error("#viewpoint=","Viewpoint may not be null or undefined")}get zoom(){return this.ready?D(this.view,this.scale):this._get("zoom")}set zoom(e){this._updatePropertyBeforeReady("zoom",e)||void 0===e||this.setStateCamera(this._zoomToCamera(e),{applyConstraints:!0})||a.getLogger(this).error("#zoom=","Invalid zoom",e)}_computeCanvasSize(){if(this._devicePixelRatioOverride)return this.view.state.contentPixelRatio=this._devicePixelRatioOverride,this._tmpCanvasSize.width=Math.round(this.view.surface.clientWidth*this._devicePixelRatioOverride),this._tmpCanvasSize.height=Math.round(this.view.surface.clientHeight*this._devicePixelRatioOverride),this._tmpCanvasSize.pixelRatio=this._devicePixelRatioOverride,this._tmpCanvasSize;const e=Math.min(this._windowDevicePixelRatio,this.view.qualitySettings.maximumPixelRatio),t=(this._useDevicePixelResolution()?this._windowDevicePixelRatio:e)*this.view.resolutionScale;this._tmpCanvasSize.width=Math.round(this.view.surface.clientWidth*t),this._tmpCanvasSize.height=Math.round(this.view.surface.clientHeight*t);const i=this.view.stage.renderView.renderingContext?.parameters.maxTextureSize;return i&&W(this._tmpCanvasSize,i),this._tmpCanvasSize.pixelRatio=this._tmpCanvasSize.width>0?this._tmpCanvasSize.width/this.view.surface.clientWidth*.5+this._tmpCanvasSize.height/this.view.surface.clientHeight*.5:t,this.view.state&&(this.view.state.contentPixelRatio=Math.min(this._windowDevicePixelRatio,this.view.qualitySettings.maximumPixelRatio)),this._tmpCanvasSize}get _rasterPixelRatio(){return null!=this._devicePixelRatioOverride?this._devicePixelRatioOverride:this._useDevicePixelResolution(2)?this._windowDevicePixelRatio:Math.min(this._windowDevicePixelRatio,this.view.qualitySettings.maximumPixelRatio)}_useDevicePixelResolution(e){return this.view?.stage?.renderer.isFeatureEnabled(8,e)??!1}preinit(e){return!(this._isOverridden("center")&&!R(this.center.spatialReference,e))&&(!(this._isOverridden("camera")&&!R(this.camera.position.spatialReference,e))&&(!(this._isOverridden("extent")&&!R(this.extent.spatialReference,e))&&!!(!this._isOverridden("viewpoint")||R(this.viewpoint.targetGeometry?.spatialReference,e)&&R(this.viewpoint.camera?.position?.spatialReference,e))))}init(){this._constraintsManager=new z({view:this.view}),this._prepareFrame(m(0));const e=this._getInitialProperties();this._cameraSetByUser=!1,this._set("ready",!0);for(const t of e)this.set(t.name,t.value);if(!this._cameraSetByUser){const e=this._initialViewpoint||this.view.initialExtent;e&&this.isCompatible(e)?this._setInitialView(e):2===this.view.state.viewingMode&&this.addHandles(l(()=>this.view.groundView.ready,()=>{this.removeHandles(te),this._setInitialView(this.view.dataExtent)},{once:!0,initial:!0}),te)}}exit(){this._cancelGoToOperation(),this.ready&&(this._override("padding",this.padding),this._set("ready",!1),this._clearOverride("hasInitialView"),this._cameraSetByUser=!1,this.removeHandles(te),this._constraintsManager=s(this._constraintsManager))}async goTo(e,t){return t={animate:this.view.state.animationsEnabled,...t},null!=this._gotoOperation&&this._gotoOperation.abort(t.animate),this._gotoOperation=new I(e,t,this.view),this.view.resourceController.scheduler.stopFrame(),this._gotoOperation.promise}debugSetCameraOnContent(){this.setStateCamera(T(this.view),{applyConstraints:!1})}step(e){const t=this.view.state?.cameraController;t?.stepController&&this.view.state.updateCamera(i=>t.stepController(e,i))}_cancelGoToOperation(){null!=this._gotoOperation&&(this._gotoOperation.abort(),this._gotoOperation=null)}_getInitialProperties(){const e=new Set,t=[];for(const{propertyName:i,overrides:r}of Q){const a=e.has(i),s=this._isOverridden(i);!a&&s&&t.push({name:i,value:this._get(i)}),this._clearOverride(i),(a||s)&&r.forEach(t=>e.add(t))}return t}_setInitialView(e){if(null==e||this._cameraSetByUser)return;if(e instanceof t)return void this.setStateCamera(O(this.view,e),{applyConstraints:!1});if(e instanceof i){if(e.targetGeometry instanceof y){const t=E(this.view,e.targetGeometry,0,.5,0);return void(null!=t&&this.setStateCamera(O(this.view,t),{applyConstraints:!0}))}const t={applyConstraints:!e.camera},i=this._viewpointToCamera(e);return void this.setStateCamera(i,t)}const r=E(this.view,e,0,.5,0);null!=r&&this.setStateCamera(O(this.view,r),{applyConstraints:!0})}_updatePropertyBeforeReady(e,t){return!this.ready&&(this._override(e,t),t&&K.has(e)&&this._override("hasInitialView",!0),!0)}isCompatible(e){return null!=e&&(e instanceof i?e.camera?this.isCompatible(e.camera):this.isCompatible(e.targetGeometry):e instanceof t?this.isCompatible(e.position):e.spatialReference&&!S(e.spatialReference,this.view.spatialReference))}_getPreservingHeadingTilt(e=X){return this._cameraSetByUser?(e.heading=this.camera.heading,e.tilt=this.camera.tilt):(e.heading=0,e.tilt=.5),e}_centerPointAtDistanceToCamera(e,t,i=$){const{heading:r,tilt:a}=this._getPreservingHeadingTilt(),s=U(this.view,r,a,e,t,1);return null==s?null:(i.copyFrom(this.view.state.camera),i.eye=s.eye,i.center=s.center,i.up=s.up,i)}_centerToCamera(e){let t;if(e.hasZ)t=this.view.state.camera.distance;else{const{centerOnContent:e}=this.view.pointsOfInterest;e.runTask(),t=e.distance}return this._centerPointAtDistanceToCamera(e,t)}_extentToCamera(e){const{heading:t,tilt:i}=this._getPreservingHeadingTilt(),r=E(this.view,e,t,i,1,Y);return r?O(this.view,r):null}_scaleToCamera(e){if(null==e)return null;const t=this.view,i=t.pointsOfInterest.centerOnContent;i.runTask();const r=i.renderLocation,a=t.pointsOfInterest.cameraOnSurface.renderLocation,s=k(t,e,r,a);return this._centerPointAtDistanceToCamera(r,s)}_zoomToCamera(e){return this._scaleToCamera(A(this.view,e))}_viewpointToCamera(e){return O(this.view,N(this.view,e))}setStateCamera(e,t){return!(null==e||!this.view.state.stopActiveCameraController())&&(this._cameraSetByUser=!0,t.doNotCancelGoToOperation||this._cancelGoToOperation(),this.view.state.updateCamera(i=>{t.positionAndOrientationOnly?(i.eye=e.eye,i.center=e.center,i.up=e.up,i.fov=e.fov):i.copyFrom(e),t.applyConstraints&&b(this.view,i)}),t.applyConstraints||(this.view.state.cameraController=new H({view:this.view,desiredCamera:e})),!0)}_prepareFrame(e){const{surface:t,canvas:i,stage:r}=this.view;if(!t||!i||!r||r.destroyed||r.destroying)return;this._windowDevicePixelRatio=window.devicePixelRatio;const a=this._computeCanvasSize();if(0!==a.width&&0!==a.height&&(i.width===a.width&&i.height===a.height||(i.width=a.width,i.height=a.height),this.view.state)){const t=this.view.state.camera;t.fullWidth===a.width&&t.fullHeight===a.height&&t.pixelRatio===a.pixelRatio||($.copyFrom(t),$.pixelRatio!==a.pixelRatio&&(this._paddingToArray(this.padding,a.pixelRatio,ee),$.padding=ee),$.fullWidth=a.width,$.fullHeight=a.height,$.pixelRatio=a.pixelRatio,this.view.state.camera=$),this._updateState(),this.view.state.occludedFragmentOpacity?.update(this.view,this.view.state.mode,e)}}_updateElevation(e){const t=this.view.renderCoordsHelper?.getAltitude(e.eye)??0,i=this.view.basemapTerrain?.spatialReference,r=i?j(this.view,e.eye):0;e.relativeElevation=t-r}_updateState(){null!=this.test.renderState?this.view.state.mode=this.test.renderState:this.view.animation?this.view.state.mode=0:this.view.interacting?this.view.state.mode=1:(0===this.view.state.mode&&(this._cameraChangeTime=0),performance.now()-this._cameraChangeTime<this._idleTimeout?this.view.state.mode=1:this.view.state.mode=2),this.view.state.rasterPixelRatio=this._rasterPixelRatio}_cameraChangedHandler(e,t){e&&t&&e.almostEquals(t)||(this._cameraChangeTime=performance.now(),this._updateState())}};e([d({type:t})],Z.prototype,"camera",null),e([d({type:t})],Z.prototype,"contentCamera",null),e([d({type:C})],Z.prototype,"center",null),e([d()],Z.prototype,"visibleArea",null),e([d({type:y})],Z.prototype,"extent",null),e([d({readOnly:!0})],Z.prototype,"frustum",null),e([d()],Z.prototype,"_constraintsManager",void 0),e([d({readOnly:!0})],Z.prototype,"constraintsManager",null),e([d()],Z.prototype,"_initialViewpoint",null),e([d({readOnly:!0})],Z.prototype,"hasInitialView",null),e([d({readOnly:!0,type:Boolean})],Z.prototype,"ready",void 0),e([d({type:Number})],Z.prototype,"scale",null),e([d()],Z.prototype,"padding",null),e([d({readOnly:!0})],Z.prototype,"screenCenter",null),e([d({constructOnly:!0})],Z.prototype,"view",void 0),e([d({type:i})],Z.prototype,"viewpoint",null),e([d({type:Number})],Z.prototype,"zoom",null),e([d({readOnly:!0})],Z.prototype,"_rasterPixelRatio",null),e([d({readOnly:!0})],Z.prototype,"_useDevicePixelResolution",null),e([d()],Z.prototype,"_windowDevicePixelRatio",void 0),e([d()],Z.prototype,"_devicePixelRatioOverride",void 0),Z=e([v("esri.views.3d.state.ViewStateManager")],Z);class J{constructor(){this.width=0,this.height=0,this.pixelRatio=1}}const K=new Set(["camera","viewpoint","extent","scale","center","zoom"]),Q=[{propertyName:"camera",overrides:["viewpoint"]},{propertyName:"viewpoint",overrides:["extent"]},{propertyName:"extent",overrides:["center","scale"]},{propertyName:"center",overrides:[]},{propertyName:"scale",overrides:["zoom"]},{propertyName:"zoom",overrides:[]},{propertyName:"padding",overrides:[]}],X={heading:0,tilt:0};let Y=new t,$=new G;const ee=f(),te="pending-initial-view",ie="content-camera-reset",re=300,ae=100;function se(){Y=new t,$=new G}export{Z as ViewStateManager,se as cleanupViewStateManager,ae as interactingTimeout};
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */
2
- import{projectBuffer as e}from"../../../../geometry/projection/projectBuffer.js";import{newDoubleArray as t,doubleSubArray as n}from"../../../../geometry/support/DoubleArray.js";import{applyPerVertexElevationAlignment as s}from"../../layers/graphics/elevationAlignmentUtils.js";import{axisFromRings as i,ringsToOutlinedTessellationInfo as o,tessellateOrLoad as l,load as r}from"../../layers/graphics/tessellationUtils.js";import{drapedZ as u}from"../../terrain/OverlayRenderer.js";async function c(){return r()}class a{constructor(e,t,n,s){this.positions=e,this.polygonIndices=t,this.outline=n,this.projectionSuccess=s,this.count=e.length/3}get vertexCount(){return this.positions.length/3}get polygonIndexCount(){return this.polygonIndices.length}get outlineIndexCount(){const{outline:e}=this;if("tessellated-indices"!==e.output)return 0;let t=0;for(let n=0;n<e.outlineIndices.length;n++)t+=y(e.outlineIndices[n]);return t}get outlineSegmentCount(){const{outline:e}=this;if("tessellated-indices"!==e.output)return 0;let t=0;for(let n=0;n<e.outlineIndices.length;n++){const s=y(e.outlineIndices[n]);s>1&&(t+=s)}return t}}class p extends a{}class d extends a{}class f extends a{constructor(e,t,n,s,i,o){super(e,n,s,i),this.mapPositions=t,this.sampledElevation=o}}function g(e,t){const{projectIfNearlyVertical:n=!1,outlineOutput:s="none"}=t??{},r="tessellated-indices"===s,u=i(e.rings,!!e.hasZ,e.spatialReference),c=o(e.rings,{hasZ:!!e.hasZ,ccwRingsAsHoles:!0,spatialReference:e.spatialReference,axis:u}),{pending:a,result:p}=l(c,{projectionAxis:n?u:void 0,outlines:r?c.outlines:void 0});if(a||!p.succeeded)return null;let f={output:"none"};if("vertex-data"===s){const e=p.positions!==c.positions?c.positions:c.positions.slice();f={output:"vertex-data",outlines:m(c.outlines,e)}}else"tessellated-indices"===s&&(f=R(p));return new d(p.positions,p.indices,f,!0)}function h(t,n){const{drapedSpatialReference:s,projectIfNearlyVertical:r=!1,outlineOutput:c="none"}=n,a=i(t.rings,!1,t.spatialReference),d=o(t.rings,{hasZ:!1,ccwRingsAsHoles:!0,spatialReference:t.spatialReference,axis:a}),f="none"!==c,g=e(d.positions,t.spatialReference,0,d.positions,s,0),{pending:h,result:x}=l(d,{projectionAxis:r?a:void 0,outlines:f?d.outlines:void 0});if(h||!x.succeeded)return null;const{positions:v,indices:y}=x;for(let e=2;e<v.length;e+=3)v[e]=u;let j={output:"none"};if("vertex-data"===c){if(v!==d.positions)for(let t=2;t<d.positions.length;t+=3)d.positions[t]=u;const e=v!==d.positions?d.positions:d.positions.slice();j={output:"vertex-data",outlines:m(d.outlines,e)}}else"tessellated-indices"===c&&(j=R(x));return new p(v,y,j,g)}function x(e,n,r,u,c){const{projectIfNearlyVertical:a=!1,outlineOutput:p="none"}=c??{},d="none"!==p,g=!!e.hasZ&&"on-the-ground"!==u.mode,h=i(e.rings,g,e.spatialReference),x=o(e.rings,{hasZ:g,ccwRingsAsHoles:!0,spatialReference:e.spatialReference,axis:h}),{pending:m,result:y}=l(x,{projectionAxis:a?h:void 0,outlines:d?x.outlines:void 0});if(m||!y.succeeded)return null;const{positions:j,vertexCount:I}=y,w=t(j.length),A=s(j,e.spatialReference,0,w,0,j,0,I,n,r,u);let Z={output:"none"};"vertex-data"===p?Z={output:"vertex-data",outlines:v(y,w)}:"tessellated-indices"===p&&(Z=R(y));const C=null!=A;return new f(j,w,y.indices,Z,C,A)}function m(e,t,s=null){return e.filter(({count:e})=>e>1).map(({index:e,count:i})=>{const o=3*e,l=3*i;return null!=s?new I(e,i,n(t,o,l),n(s,o,l)):new j(e,i,n(t,o,l))})}function R(e){const{outlineIndexBuffer:t,outlineRingLengths:n}=e;if(null==t||null==n)return{output:"none"};const s=new Array(n.length);let i=0;for(let o=0;o<n.length;o++){const e=n[o],l=t.slice(i,i+e);s[o]=l,i+=e}return{output:"tessellated-indices",outlineIndices:s}}function v(e,s){const{outlineIndexBuffer:i,outlineRingLengths:o,positions:l}=e;if(null==i||null==o)return[];let r=0;for(let t=0;t<o.length;t++)r+=o[t]-1;const u=t(3*r),c=t(3*r),a=new Array;let p=0,d=0;for(let t=0;t<o.length;t++){const e=o[t],r=e-1;for(let t=0;t<r;t++){const e=3*i[p+t],n=3*(d+t);u[n]=l[e],u[n+1]=l[e+1],u[n+2]=l[e+2],c[n]=s[e],c[n+1]=s[e+1],c[n+2]=s[e+2]}a.push(new I(d,r,n(u,3*d,3*r),n(c,3*d,3*r))),p+=e,d+=r}return a}function y(e,t=0,n=e.length){return n>1&&e[t]===e[t+n-1]?n-1:n}class j{constructor(e,t,n){this.index=e,this.count=t,this.position=n}}class I extends j{constructor(e,t,n,s){super(e,t,n),this.mapPositions=s}}export{I as OutlineVertexData,j as OutlineVertexDataDraped,a as PolygonRenderInfoBase,p as PolygonRenderInfoDraped,f as PolygonRenderInfoElevationAligned,d as PolygonRenderInfoNotElevationAligned,c as load,h as polygonToRenderInfoDraped,x as polygonToRenderInfoElevationAligned,g as polygonToRenderInfoNotElevationAligned,R as splitOutlineIndexRings,v as tessellatedOutlineIndicesToVertexData};
2
+ import{isPromiseLike as e}from"../../../../core/promiseUtils.js";import{projectBuffer as t}from"../../../../geometry/projection/projectBuffer.js";import{doubleSubArray as n,newDoubleArray as s}from"../../../../geometry/support/DoubleArray.js";import{applyPerVertexElevationAlignment as o}from"../../layers/graphics/elevationAlignmentUtils.js";import{axisFromRings as i,ringsToOutlinedTessellationInfo as r,tessellateOrLoad as l,load as u}from"../../layers/graphics/tessellationUtils.js";import{drapedZ as c}from"../../terrain/OverlayRenderer.js";async function a(){return u()}class p{constructor(e,t,n,s){this.positions=e,this.polygonIndices=t,this.outline=n,this.projectionSuccess=s,this.count=e.length/3}get vertexCount(){return this.positions.length/3}get polygonIndexCount(){return this.polygonIndices.length}get outlineIndexCount(){const{outline:e}=this;if("tessellated-indices"!==e.output)return 0;let t=0;for(let n=0;n<e.outlineIndices.length;n++)t+=A(e.outlineIndices[n]);return t}get outlineSegmentCount(){const{outline:e}=this;if("tessellated-indices"!==e.output)return 0;let t=0;for(let n=0;n<e.outlineIndices.length;n++){const s=A(e.outlineIndices[n]);s>1&&(t+=s)}return t}}class d extends p{}class f extends p{}class h extends p{constructor(e,t,n,s,o,i){super(e,n,s,o),this.mapPositions=t,this.sampledElevation=i}}function g(t,n){const s=R(t,n);return e(s)?null:s}function m(t,n,s,o,i){const r=j(t,n,s,o,i);return e(r)?null:r}function x(t,n){const s=v(t,n);return e(s)?null:s}function R(t,n){const{projectIfNearlyVertical:s=!1,outlineOutput:o="none",method:u="auto"}=n??{},c="tessellated-indices"===o,a=i(t.rings,!!t.hasZ,t.spatialReference),p=r(t.rings,{hasZ:!!t.hasZ,ccwRingsAsHoles:!0,spatialReference:t.spatialReference,axis:a}),d=l(p,{projectionAxis:s?a:void 0,outlines:c?p.outlines:void 0,method:u});if(e(d))return d;if(!d.succeeded)return null;let h={output:"none"};if("vertex-data"===o){const e=d.positions!==p.positions?p.positions:p.positions.slice();h={output:"vertex-data",outlines:y(p.outlines,e)}}else"tessellated-indices"===o&&(h=I(d));return new f(d.positions,d.indices,h,!0)}function v(n,s){const{drapedSpatialReference:o,projectIfNearlyVertical:u=!1,outlineOutput:a="none",method:p="auto"}=s,f=i(n.rings,!1,n.spatialReference),h=r(n.rings,{hasZ:!1,ccwRingsAsHoles:!0,spatialReference:n.spatialReference,axis:f}),g="none"!==a,m=t(h.positions,n.spatialReference,0,h.positions,o,0),x=l(h,{projectionAxis:u?f:void 0,outlines:g?h.outlines:void 0,method:p});if(e(x))return x;if(!x.succeeded)return null;const{positions:R,indices:v}=x;for(let e=2;e<R.length;e+=3)R[e]=c;let j={output:"none"};if("vertex-data"===a){if(R!==h.positions)for(let t=2;t<h.positions.length;t+=3)h.positions[t]=c;const e=R!==h.positions?h.positions:h.positions.slice();j={output:"vertex-data",outlines:y(h.outlines,e)}}else"tessellated-indices"===a&&(j=I(x));return new d(R,v,j,m)}function j(t,n,u,c,a){const{projectIfNearlyVertical:p=!1,outlineOutput:d="none",method:f="auto"}=a??{},g="none"!==d,m=!!t.hasZ&&"on-the-ground"!==c.mode,x=i(t.rings,m,t.spatialReference),R=r(t.rings,{hasZ:m,ccwRingsAsHoles:!0,spatialReference:t.spatialReference,axis:x}),v=l(R,{projectionAxis:p?x:void 0,outlines:g?R.outlines:void 0,method:f});if(e(v))return v;if(!v.succeeded)return null;const{positions:j,vertexCount:y}=v,A=s(j.length),Z=o(j,t.spatialReference,0,A,0,j,0,y,n,u,c);let C={output:"none"};"vertex-data"===d?C={output:"vertex-data",outlines:w(v,A)}:"tessellated-indices"===d&&(C=I(v));const O=null!=Z;return new h(j,A,v.indices,C,O,Z)}function y(e,t,s=null){return e.filter(({count:e})=>e>1).map(({index:e,count:o})=>{const i=3*e,r=3*o;return null!=s?new C(e,o,n(t,i,r),n(s,i,r)):new Z(e,o,n(t,i,r))})}function I(e){const{outlineIndexBuffer:t,outlineRingLengths:n}=e;if(null==t||null==n)return{output:"none"};const s=new Array(n.length);let o=0;for(let i=0;i<n.length;i++){const e=n[i],r=t.slice(o,o+e);s[i]=r,o+=e}return{output:"tessellated-indices",outlineIndices:s}}function w(e,t){const{outlineIndexBuffer:o,outlineRingLengths:i,positions:r}=e;if(null==o||null==i)return[];let l=0;for(let n=0;n<i.length;n++)l+=i[n]-1;const u=s(3*l),c=s(3*l),a=new Array;let p=0,d=0;for(let s=0;s<i.length;s++){const e=i[s],l=e-1;for(let n=0;n<l;n++){const e=3*o[p+n],s=3*(d+n);u[s]=r[e],u[s+1]=r[e+1],u[s+2]=r[e+2],c[s]=t[e],c[s+1]=t[e+1],c[s+2]=t[e+2]}a.push(new C(d,l,n(u,3*d,3*l),n(c,3*d,3*l))),p+=e,d+=l}return a}function A(e,t=0,n=e.length){return n>1&&e[t]===e[t+n-1]?n-1:n}class Z{constructor(e,t,n){this.index=e,this.count=t,this.position=n}}class C extends Z{constructor(e,t,n,s){super(e,t,n),this.mapPositions=s}}export{C as OutlineVertexData,Z as OutlineVertexDataDraped,p as PolygonRenderInfoBase,d as PolygonRenderInfoDraped,h as PolygonRenderInfoElevationAligned,f as PolygonRenderInfoNotElevationAligned,a as loadTessellationUtils,v as polygonToRenderInfoDraped,j as polygonToRenderInfoElevationAligned,R as polygonToRenderInfoNotElevationAligned,x as preloadedPolygonToRenderInfoDraped,m as preloadedPolygonToRenderInfoElevationAligned,g as preloadedPolygonToRenderInfoNotElevationAligned,I as splitOutlineIndexRings,w as tessellatedOutlineIndicesToVertexData};
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */
2
- import{projectBuffer as t}from"../../../../geometry/projection/projectBuffer.js";import{newDoubleArray as o,doubleSubArray as s}from"../../../../geometry/support/DoubleArray.js";import{ringsToTriangulationInfo as n}from"../../../../geometry/support/triangulationUtilsDeprecated.js";import{applyPerVertexElevationAlignment as i}from"../../layers/graphics/elevationAlignmentUtils.js";import{drapedZ as e}from"../../terrain/OverlayRenderer.js";function r(t,s,e,r){const p=n(t.rings,!!t.hasZ&&"on-the-ground"!==r.mode,1,t.spatialReference),u=o(p.position.length),a=i(p.position,t.spatialReference,0,u,0,p.position,0,p.position.length/3,s,e,r),h=null!=a;return new g(p.position,u,l(p.polygons,p.position,u),c(p.outlines,p.position,u),h,a)}function p(o,s){const i=n(o.rings,!1,1,o.spatialReference),r=t(i.position,o.spatialReference,0,i.position,s,0);for(let t=2;t<i.position.length;t+=3)i.position[t]=e;const p=l(i.polygons,i.position),u=c(i.outlines,i.position);return new m(i.position,p,u,r)}function c(t,o,n=null){return t.filter(({count:t})=>t>1).map(({index:t,count:i})=>{const e=3*t,r=3*i;return null!=n?new a(t,i,s(o,e,r),s(n,e,r)):new u(t,i,s(o,e,r))})}function l(t,o,n=null){const i=new Array;for(const{index:e,count:r,holeIndices:p,pathLengths:c}of t){if(r<=1)continue;const t=3*e,l=3*r,u=p.map(t=>t-e),a=null!=n?new h(e,r,s(o,3*e,3*r),s(n,t,l),u,c):new f(e,r,s(o,3*e,3*r),u,c);i.push(a)}return i}class u{constructor(t,o,s){this.index=t,this.count=o,this.position=s}}class a extends u{constructor(t,o,s,n){super(t,o,s),this.mapPositions=n}}class h extends a{constructor(t,o,s,n,i,e){super(t,o,s,n),this.holeIndices=i,this.pathLengths=e}}class f extends u{constructor(t,o,s,n,i){super(t,o,s),this.holeIndices=n,this.pathLengths=i}}class m{constructor(t,o,s,n){this.position=t,this.polygons=o,this.outlines=s,this.projectionSuccess=n}}class g{constructor(t,o,s,n,i,e){this.position=t,this.mapPositions=o,this.polygons=s,this.outlines=n,this.projectionSuccess=i,this.sampledElevation=e}}export{a as OutlineVertexData,u as OutlineVertexDataDraped,g as PolygonRenderInfo,m as PolygonRenderInfoDraped,h as PolygonVertexData,f as PolygonVertexDataDraped,c as outlineIndexAndCountsToVertexData,r as polygonToRenderInfo,p as polygonToRenderInfoDraped};
2
+ import{projectBuffer as t}from"../../../../geometry/projection/projectBuffer.js";import{doubleSubArray as o,newDoubleArray as s}from"../../../../geometry/support/DoubleArray.js";import{ringsToTriangulationInfo as n}from"../../../../geometry/support/triangulationUtilsDeprecated.js";import{applyPerVertexElevationAlignment as i}from"../../layers/graphics/elevationAlignmentUtils.js";import{drapedZ as e}from"../../terrain/OverlayRenderer.js";function r(t,o,e,r){const p=n(t.rings,!!t.hasZ&&"on-the-ground"!==r.mode,1,t.spatialReference),u=s(p.position.length),a=i(p.position,t.spatialReference,0,u,0,p.position,0,p.position.length/3,o,e,r),h=null!=a;return new g(p.position,u,l(p.polygons,p.position,u),c(p.outlines,p.position,u),h,a)}function p(o,s){const i=n(o.rings,!1,1,o.spatialReference),r=t(i.position,o.spatialReference,0,i.position,s,0);for(let t=2;t<i.position.length;t+=3)i.position[t]=e;const p=l(i.polygons,i.position),u=c(i.outlines,i.position);return new m(i.position,p,u,r)}function c(t,s,n=null){return t.filter(({count:t})=>t>1).map(({index:t,count:i})=>{const e=3*t,r=3*i;return null!=n?new a(t,i,o(s,e,r),o(n,e,r)):new u(t,i,o(s,e,r))})}function l(t,s,n=null){const i=new Array;for(const{index:e,count:r,holeIndices:p,pathLengths:c}of t){if(r<=1)continue;const t=3*e,l=3*r,u=p.map(t=>t-e),a=null!=n?new h(e,r,o(s,3*e,3*r),o(n,t,l),u,c):new f(e,r,o(s,3*e,3*r),u,c);i.push(a)}return i}class u{constructor(t,o,s){this.index=t,this.count=o,this.position=s}}class a extends u{constructor(t,o,s,n){super(t,o,s),this.mapPositions=n}}class h extends a{constructor(t,o,s,n,i,e){super(t,o,s,n),this.holeIndices=i,this.pathLengths=e}}class f extends u{constructor(t,o,s,n,i){super(t,o,s),this.holeIndices=n,this.pathLengths=i}}class m{constructor(t,o,s,n){this.position=t,this.polygons=o,this.outlines=s,this.projectionSuccess=n}}class g{constructor(t,o,s,n,i,e){this.position=t,this.mapPositions=o,this.polygons=s,this.outlines=n,this.projectionSuccess=i,this.sampledElevation=e}}export{a as OutlineVertexData,u as OutlineVertexDataDraped,g as PolygonRenderInfo,m as PolygonRenderInfoDraped,h as PolygonVertexData,f as PolygonVertexDataDraped,c as outlineIndexAndCountsToVertexData,r as polygonToRenderInfo,p as polygonToRenderInfoDraped};
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */
2
- import{__decorate as e}from"tslib";import{unique as r}from"../../../core/arrayUtils.js";import{EventEmitter as t}from"../../../core/Evented.js";import"../../../core/has.js";import{someMap as s,everyMap as i}from"../../../core/MapUtils.js";import{disposeMaybe as n}from"../../../core/maybe.js";import o from"../../../core/PooledArray.js";import{watch as a,syncAndInitial as h,on as d,initial as l}from"../../../core/reactiveUtils.js";import{someSet as c}from"../../../core/SetUtils.js";import{property as u,subclass as p}from"../../../core/accessorSupport/decorators.js";import{ortho as _,fromTranslation as g}from"../../../core/libs/gl-matrix-2/math/mat4.js";import{set as m}from"../../../core/libs/gl-matrix-2/math/vec3.js";import{ones as y}from"../../../core/libs/gl-matrix-2/factories/vec3f64.js";import{debugFlags as f}from"../support/debugFlags.js";import{Overlay as R}from"./Overlay.js";import{OverlayRenderTargets as v}from"./OverlayRenderTargets.js";import w from"../webgl/RenderCamera.js";import{SyncRenderPlugin as x}from"../webgl-engine/effects/RenderPlugin.js";import{trackHighlightOptions as T,renderHighlightBuffer as b}from"../webgl-engine/effects/highlight/Highlight.js";import{GLMaterialRepository as S}from"../webgl-engine/lib/GLMaterialRepository.js";import{GridLocalOriginFactory as O}from"../webgl-engine/lib/GridLocalOriginFactory.js";import{RenderContext as D,defaultRenderOccludedMask as C}from"../webgl-engine/lib/RenderContext.js";import{ShadowMap as P}from"../webgl-engine/lib/ShadowMap.js";import{T as j}from"../../../chunks/Texture.glsl.js";import{TextureTechnique as E}from"../webgl-engine/lib/TextureTechnique.js";import{TextureTechniqueConfiguration as F}from"../webgl-engine/lib/TextureTechniqueConfiguration.js";import{AmbientLight as M}from"../webgl-engine/lighting/Lightsources.js";import{O as W}from"../../../chunks/OverlayCompositing.glsl.js";import{OverlayCompositingTechnique as V}from"../webgl-engine/shaders/OverlayCompositingTechnique.js";import{TaskPriority as q}from"../../support/Scheduler.js";import A from"../../webgl/Texture.js";import{TextureDescriptor as G}from"../../webgl/TextureDescriptor.js";let k=class extends x{constructor(e){super(e),this._overlays=null,this._renderTargets=null,this._overlayParameters=new W,this.hasHighlights=!1,this.renderOccludedFlags=1,this._hasWater=!1,this._renderers=new Map,this._sortedDrapeSourceRenderersDirty=!1,this._sortedRenderers=new o,this._passParameters=new j,this._screenToWorldRatio=1,this._localOriginFactory=null,this.unloadedMemory=0,this.ignoresMemoryFactor=!1,this._camera=new w,this.events=new t,this.longitudeCyclical=null,this.produces=new Map([[19,e=>10!==e||this.hasHighlights],[20,()=>this._hasWater]]),this._hasTargetWithoutRasterImage=!1,this._hasDrapedFeatureSource=!1,this._hasDrapedRasterSource=!1,this._hasDrapedFlowSource=!1;const{state:r,stage:s}=e.parent.view,i=s.renderer.fboCache,n=s.renderView.renderingContext,a=s.renderView.techniques;this._renderContext=new D(n,new P(i,r.viewingMode),a)}initialize(){const e=this._view,r=e.stage.renderView.waterTextures;this.addHandles([a(()=>r.updating,()=>this.events.emit("content-changed"),h),a(()=>this._spatialReference,e=>this._localOriginFactory=new O(e),h),d(()=>e.allLayerViews,"after-changes",()=>this._sortedDrapeSourceRenderersDirty=!0),a(()=>T(e.state.highlights),()=>this._sortedDrapeSourceRenderersDirty=!0,l),a(()=>e.state.highlights,e=>{this._bindParameters.highlights=e},l),e.resourceController.scheduler.registerTask(q.OVERLAY_RENDERER,this)]);const t=this._camera;t.near=1,t.far=1e4,t.relativeElevation=null,this._bindParameters.slot=19,this._bindParameters.camera=t,this._bindParameters.updateLighting(new M(y()),0,0,0)}destroy(){this._renderers.forEach(e=>e.destroy()),this._renderers.clear(),this._passParameters.texture=n(this._passParameters.texture),this.disposeOverlays(),this._renderContext.destroy(),this._sortedRenderers.prune()}get _bindParameters(){return this._renderContext.bind}get _rctx(){return this._stage.renderView.renderingContext}get _view(){return this.parent.view}get _stage(){return this.parent.view.stage}get _spatialReference(){return this.parent.spatialReference}get _techniques(){return this._stage.renderView.techniques}get rctx(){return this._rctx}get materials(){return this._pluginContext.materials}get screenToWorldRatio(){return this._screenToWorldRatio}get localOriginFactory(){return this._localOriginFactory}set time(e){this._renderContext.time=e}get pluginContext(){return this._pluginContext}initializeRenderContext(e){const r=new S(this._view.stage.renderView.textures,this._techniques,()=>{this._onMaterialOrContentChanged(),this.events.emit("content-changed"),this.notifyChange("updating"),this.notifyChange("isEmpty")},()=>this.events.emit("content-changed"));this._pluginContext={...e,materials:r},this._techniques.precompile(V)}uninitializeRenderContext(){}acquireTechniques(){return[]}render(){}get updating(){return this._sortedDrapeSourceRenderersDirty||s(this._renderers,e=>e.updating||e.canCompact)}get hasOverlays(){return null!=this._overlays&&null!=this._renderTargets}getMaterialRenderer(e){for(const r of this._renderers.values()){const t=r.getMaterialRenderer(e);if(t)return t}return null}get layers(){return this._sortedDrapeSourceRenderersDirty&&this._updateSortedDrapeSourceRenderers(),r(this._sortedRenderers.map(e=>e.drapeSource.layer).filter(e=>!!e))}registerDrapeSource(e,r){const t=this._renderers.get(e);null!=t&&t.destroy(),this._renderers.set(e,r),this._sortedDrapeSourceRenderersDirty=!0,"fullOpacity"in e&&this.addHandles(a(()=>e.fullOpacity,()=>this.events.emit("content-changed")),e)}removeDrapeSourceRenderer(e){if(null==e)return;const r=this._renderers.get(e);null!=r&&(this._sortedDrapeSourceRenderersDirty=!0,this._renderers.delete(e),this.removeHandles(e),r.destroy())}computeValidity(){return this._renderTargets?.computeValidity()??0}releaseRenderTargets(e){this._renderTargets?.dispose(e)}get overlays(){return this._overlays??[]}ensureDrapeTargets(e){this._hasTargetWithoutRasterImage=!!this._overlays&&c(e,e=>1===e.drapeTargetType)}ensureDrapeSources(e){this._overlays?(this._hasDrapedFeatureSource=c(e,e=>1===e.drapeSourceType),this._hasDrapedRasterSource=c(e,e=>0===e.drapeSourceType),this._hasDrapedFlowSource=c(e,e=>2===e.drapeSourceType)):this._hasDrapedFeatureSource=this._hasDrapedRasterSource=this._hasDrapedFlowSource=!1}get _needsColorWithoutRasterImage(){return this._hasDrapedRasterSource&&this._hasDrapedFeatureSource&&this._hasTargetWithoutRasterImage}ensureOverlays(e,r,t=this._bindParameters.overlayStretch){null==this._overlays&&(this._renderTargets=new v(this._stage.renderer.fboCache),this._overlays=[new R,new R]),this.ensureDrapeTargets(e),this.ensureDrapeSources(r),this._bindParameters.overlayStretch=t}disposeOverlays(){this._overlays=null,this._renderTargets?.dispose(1),this._renderTargets=null,this.events.emit("textures-disposed")}_useOverlayColorInsteadOfColorNoRasterImage(e){return 1===e&&!this._needsColorWithoutRasterImage&&this._hasDrapedFeatureSource}getTexture(e){const r=this._useOverlayColorInsteadOfColorNoRasterImage(e);return this._renderTargets?.getTexture(r?0:e)}get readyToRun(){return this.updating}runTask(e){this._processDrapeSources(()=>!0,e)}_onMaterialOrContentChanged(){this.renderOccludedFlags=s(this._renderers,e=>e.hasOccluders)?H:1}_processDrapeSources(e,r){let t=!1;for(const[s,i]of this._renderers){if(r?.done)break;(s.destroyed||e(s))&&(i.commitChanges()&&(t=!0,r?.madeProgress()))}this._sortedDrapeSourceRenderersDirty&&(this._sortedDrapeSourceRenderersDirty=!1,t=!0,this._updateSortedDrapeSourceRenderers(),r?.madeProgress()),r&&this.compact(r),t&&(null!=this._overlays&&0===this._renderers.size&&this.disposeOverlays(),this.notifyChange("updating"),this.notifyChange("isEmpty"),this._onMaterialOrContentChanged(),this.hasHighlights=s(this._renderers,e=>e.hasHighlights),this.events.emit("content-changed"))}compact(e){let r=!1;for(const t of this._renderers.values()){if(e.done)break;r=t.compact(e)||r}return r&&this.notifyChange("updating"),r}hasHighlight(e){return s(this._renderers,r=>r.hasHighlight(e))}processSyncDrapeSources(){this._processDrapeSources(e=>1===e.updatePolicy)}get isEmpty(){return!f.OVERLAY_DRAW_DEBUG_TEXTURE&&i(this._renderers,e=>e.isEmpty)}get hasWater(){const e=s(this._renderers,({hasWater:e})=>e);return e!==this._hasWater&&(this._hasWater=e,this.events.emit("has-water")),this._hasWater}renders(e){if(f.OVERLAY_DRAW_DEBUG_TEXTURE&&4!==e&&2!==e)return!0;if(!this._overlays)return!1;const r=this._overlays[0];for(const i of this._overlays)i.setupGeometryViews(this.longitudeCyclical);if(!r.hasSomeSizedView())return!1;const t=this._setOutput(this._renderTargets?.targets.find(r=>r.content===e)?.output??0);++this._techniques.precompiling;const s=this._sortedRenderers.some(({renderer:e})=>e.precompile(this._renderContext));return--this._techniques.precompiling,this._setOutput(t),s}_setOutput(e){const r=this._bindParameters.output;return this._bindParameters.output=e,this._bindParameters.slot=4===e?20:19,r}get mode(){return this.isEmpty?0:this.hasWater&&this.renders(3)?2:this._renderTargets?.getTexture(0)?1:0}updateAnimation(e){let r=!1;return this._renderers.forEach(t=>r=t.updateAnimation(e)||r),r&&this.parent.requestRender(0),r}updateDrapeSourceOrder(){this._sortedDrapeSourceRenderersDirty=!0}precompileShaders(e){if(!this._overlays||!this._renderTargets)return!1;const r=this._bindParameters;r.alignPixelEnabled=e.alignPixelEnabled,++this._techniques.precompiling;for(const t of this._renderTargets.targets){if(1===t.content&&!this._needsColorWithoutRasterImage)continue;const{output:e}=t;this._setOutput(e),10===e&&(r.highlightMixTexture=r.highlights.length>1?this._rctx.emptyTexture:null);const s=this._renderContext.renderOccludedMask;4===t.content&&(this._renderContext.renderOccludedMask=H),this._sortedRenderers.forAll(({drapeSource:e,renderer:r})=>{1===t.content&&0===e.drapeSourceType||4===t.content&&r.hasOnlyOccluders||r.precompile(this._renderContext)}),this._renderContext.renderOccludedMask=s,r.highlightMixTexture=null}return--this._techniques.precompiling,!0}drawOverlays(e,r){if(!this._overlays||!this._renderTargets)return;for(const s of this._overlays)s.setupGeometryViews(this.longitudeCyclical);this._bindParameters.alignPixelEnabled=e.alignPixelEnabled;const t=this.allSourcesOccluders;for(const s of this._renderTargets.targets){if(!(0===s.content&&this._hasDrapedFlowSource)&&!s.handleRenderRequest(r)||1===s.content&&!this._needsColorWithoutRasterImage||4===s.content&&t)continue;const e=this._drawTarget(0,s),i=this._drawTarget(1,s);(e||i)&&s.fbo.generateMipMap()}}_drawTarget(e,r){const t=this._overlays[e],s=t.canvasGeometries;if(0===s.numViews)return!1;const i=this._view.state.contentPixelRatio;this._screenToWorldRatio=i*t.mapUnitsPerPixel/this._bindParameters.overlayStretch;const{output:n,content:o}=r;if(this.isEmpty||4===n&&!this.hasWater||!t.hasSomeSizedView())return!1;const{_rctx:a,_camera:h,_renderContext:d,_bindParameters:l}=this;if(h.pixelRatio=t.pixelRatio*i,this._setOutput(n),l.screenToWorldRatio=this._screenToWorldRatio,l.screenToPCSRatio=this._screenToWorldRatio*this.parent.worldToPCSRatio,4===o&&(d.renderOccludedMask=H),!this.renders(o))return d.renderOccludedMask=C,!1;const{resolution:c}=t,u=0===e,p=u?0:c;a.setViewport(p,0,c,c),this._bindTargetFBO(r),u&&(10===n?a.gl.clearBufferuiv(a.gl.COLOR,0,[0,0,0,0]):(a.setClearColor(0,0,0,0),a.clear(16384)));if(f.OVERLAY_DRAW_DEBUG_TEXTURE&&4!==o&&2!==o){this._techniques.precompile(E,L);const r=this._techniques.get(E,L);for(let i=0;i<s.numViews;i++)this._setViewParameters(s.extents[i],t),this._ensureDebugPatternResources(t.resolution,U[e]),a.bindTechnique(r,l,this._passParameters),a.screen.draw()}if(10===n){const{fboCache:t}=this._stage.renderer,s=this._resolution;this._bindTargetFBO(r),b(a,t,s,s,l,()=>this._renderAllGeometry(e,r),p)}else this._renderAllGeometry(e,r);return a.bindFramebuffer(null),d.renderOccludedMask=C,!0}get allSourcesOccluders(){return i(this._renderers,e=>e.hasOnlyOccluders)}_renderAllGeometry(e,r){const t=this._overlays[e],s=t.canvasGeometries;this._sortedRenderers.forAll(({drapeSource:i,renderer:n})=>{if(1===r.content&&0===i.drapeSourceType)return;const{fullOpacity:o}=i,a=null!=o&&o<1&&0===r.output&&this._bindTemporaryFBO();for(let e=0;e<s.numViews;e++)this._setViewParameters(s.extents[e],t),n.render(this._renderContext);if(a){this._bindTargetFBO(r),this._overlayParameters.texture=a.getTexture(),this._overlayParameters.opacity=o,this._overlayParameters.overlayIndex=e;const t=this._techniques.get(V);this._rctx.bindTechnique(t,this._bindParameters,this._overlayParameters),this._rctx.screen.draw(),a.release()}})}_bindTargetFBO(e){const r=this._resolution,t=2*r;e.fbo.ensureFramebuffer(t,r),e.fbo.bind(this._rctx)}_bindTemporaryFBO(){const e=this._resolution,r=2*e,t=this._stage.renderer.fboCache,s=t.acquire(r,e,"overlay tmp");return t.rctx.bindFramebuffer(s.fbo),t.rctx.clear(16384),s}get _resolution(){return this._overlays?.[0].resolution??0}notifyContentChanged(){this.events.emit("content-changed")}intersect(e,r,t,s){this._sortedDrapeSourceRenderersDirty&&this._updateSortedDrapeSourceRenderers();let i=0;for(const{renderer:n}of this._sortedRenderers)i=n.intersect?.(e,r,t,s,i)??i}_updateSortedDrapeSourceRenderers(){if(this._sortedRenderers.clear(),0===this._renderers.size)return;const e=this._view.map.allLayers.map(e=>e.uid),r=e.length;this._renderers.forEach((t,s)=>{const i=e.indexOf(s.layer?.uid),n=i>=0,o=s.renderGroup??(n?0:1),a=s.drapeSourcePriorityOffset??0,h=r*o+(n?i:0)+a;this._sortedRenderers.push(new I(s,t,h))}),this._sortedRenderers.sort((e,r)=>e.index-r.index)}_setViewParameters(e,r){const t=this._camera;t.viewport=[0,0,r.resolution,r.resolution],_(t.projectionMatrix,0,e[2]-e[0],0,e[3]-e[1],t.near,t.far),g(t.viewMatrix,[-e[0],-e[1],0])}_ensureDebugPatternResources(e,r){if(m(this._passParameters.color,r[0],r[1],r[2]),this._passParameters.texture)return;const t=new Uint8Array(e*e*4);let s=0;for(let n=0;n<e;n++)for(let r=0;r<e;r++){const i=Math.floor(r/10),o=Math.floor(n/10);i<2||o<2||10*i>e-20||10*o>e-20?(t[s++]=255,t[s++]=255,t[s++]=255,t[s++]=255):(t[s++]=255,t[s++]=255,t[s++]=255,t[s++]=1&i&&1&o?1&r^1&n?0:255:1&i^1&o?0:128)}const i=new G(e);i.samplingMode=9728,this._passParameters.texture=new A(this._rctx,i,t)}get test(){}};e([u()],k.prototype,"hasHighlights",void 0),e([u()],k.prototype,"renderOccludedFlags",void 0),e([u()],k.prototype,"_sortedDrapeSourceRenderersDirty",void 0),e([u({constructOnly:!0})],k.prototype,"parent",void 0),e([u({readOnly:!0})],k.prototype,"_techniques",null),e([u({type:Boolean,readOnly:!0})],k.prototype,"updating",null),e([u()],k.prototype,"isEmpty",null),k=e([p("esri.views.3d.terrain.OverlayRenderer")],k);class I{constructor(e,r,t){this.drapeSource=e,this.renderer=r,this.index=t}}const U=[[1,.5,.5],[.5,.5,1]],B=-2,H=4,L=new F;L.hasAlpha=!0;export{k as OverlayRenderer,B as drapedZ,H as overlayRenderOccludedFlag};
2
+ import{__decorate as e}from"tslib";import{unique as r}from"../../../core/arrayUtils.js";import{EventEmitter as t}from"../../../core/Evented.js";import"../../../core/has.js";import{someMap as s,everyMap as i}from"../../../core/MapUtils.js";import{disposeMaybe as n}from"../../../core/maybe.js";import o from"../../../core/PooledArray.js";import{watch as a,syncAndInitial as h,on as d,initial as l}from"../../../core/reactiveUtils.js";import{someSet as c}from"../../../core/SetUtils.js";import{property as u,subclass as p}from"../../../core/accessorSupport/decorators.js";import{ortho as _,fromTranslation as g}from"../../../core/libs/gl-matrix-2/math/mat4.js";import{set as m}from"../../../core/libs/gl-matrix-2/math/vec3.js";import{ones as y}from"../../../core/libs/gl-matrix-2/factories/vec3f64.js";import{debugFlags as f}from"../support/debugFlags.js";import{Overlay as R}from"./Overlay.js";import{OverlayRenderTargets as v}from"./OverlayRenderTargets.js";import w from"../webgl/RenderCamera.js";import{SyncRenderPlugin as x}from"../webgl-engine/effects/RenderPlugin.js";import{trackHighlightOptions as T,renderHighlightBuffer as b}from"../webgl-engine/effects/highlight/Highlight.js";import{GLMaterialRepository as S}from"../webgl-engine/lib/GLMaterialRepository.js";import{GridLocalOriginFactory as O}from"../webgl-engine/lib/GridLocalOriginFactory.js";import{RenderContext as D,defaultRenderOccludedMask as C}from"../webgl-engine/lib/RenderContext.js";import{ShadowMap as P}from"../webgl-engine/lib/ShadowMap.js";import{T as j}from"../../../chunks/Texture.glsl.js";import{TextureTechnique as E}from"../webgl-engine/lib/TextureTechnique.js";import{TextureTechniqueConfiguration as F}from"../webgl-engine/lib/TextureTechniqueConfiguration.js";import{AmbientLight as M}from"../webgl-engine/lighting/Lightsources.js";import{O as W}from"../../../chunks/OverlayCompositing.glsl.js";import{OverlayCompositingTechnique as V}from"../webgl-engine/shaders/OverlayCompositingTechnique.js";import{TaskPriority as q}from"../../support/Scheduler.js";import A from"../../webgl/Texture.js";import{TextureDescriptor as G}from"../../webgl/TextureDescriptor.js";let k=class extends x{constructor(e){super(e),this._overlays=null,this._renderTargets=null,this._overlayParameters=new W,this.hasHighlights=!1,this.renderOccludedFlags=1,this._hasWater=!1,this._renderers=new Map,this._sortedDrapeSourceRenderersDirty=!1,this._sortedRenderers=new o,this._passParameters=new j,this._screenToWorldRatio=1,this._localOriginFactory=null,this.unloadedMemory=0,this.ignoresMemoryFactor=!1,this._camera=new w,this.events=new t,this.longitudeCyclical=null,this.produces=new Map([[18,e=>10!==e||this.hasHighlights],[19,()=>this._hasWater]]),this._hasTargetWithoutRasterImage=!1,this._hasDrapedFeatureSource=!1,this._hasDrapedRasterSource=!1,this._hasDrapedFlowSource=!1;const{state:r,stage:s}=e.parent.view,i=s.renderer.fboCache,n=s.renderView.renderingContext,a=s.renderView.techniques;this._renderContext=new D(n,new P(i,r.viewingMode),a)}initialize(){const e=this._view,r=e.stage.renderView.waterTextures;this.addHandles([a(()=>r.updating,()=>this.events.emit("content-changed"),h),a(()=>this._spatialReference,e=>this._localOriginFactory=new O(e),h),d(()=>e.allLayerViews,"after-changes",()=>this._sortedDrapeSourceRenderersDirty=!0),a(()=>T(e.state.highlights),()=>this._sortedDrapeSourceRenderersDirty=!0,l),a(()=>e.state.highlights,e=>{this._bindParameters.highlights=e},l),e.resourceController.scheduler.registerTask(q.OVERLAY_RENDERER,this)]);const t=this._camera;t.near=1,t.far=1e4,t.relativeElevation=null,this._bindParameters.slot=18,this._bindParameters.camera=t,this._bindParameters.updateLighting(new M(y()),0,0,0)}destroy(){this._renderers.forEach(e=>e.destroy()),this._renderers.clear(),this._passParameters.texture=n(this._passParameters.texture),this.disposeOverlays(),this._renderContext.destroy(),this._sortedRenderers.prune()}get _bindParameters(){return this._renderContext.bind}get _rctx(){return this._stage.renderView.renderingContext}get _view(){return this.parent.view}get _stage(){return this.parent.view.stage}get _spatialReference(){return this.parent.spatialReference}get _techniques(){return this._stage.renderView.techniques}get rctx(){return this._rctx}get materials(){return this._pluginContext.materials}get screenToWorldRatio(){return this._screenToWorldRatio}get localOriginFactory(){return this._localOriginFactory}set time(e){this._renderContext.time=e}get pluginContext(){return this._pluginContext}initializeRenderContext(e){const r=new S(this._view.stage.renderView.textures,this._techniques,()=>{this._onMaterialOrContentChanged(),this.events.emit("content-changed"),this.notifyChange("updating"),this.notifyChange("isEmpty")},()=>this.events.emit("content-changed"));this._pluginContext={...e,materials:r},this._techniques.precompile(V)}uninitializeRenderContext(){}acquireTechniques(){return[]}render(){}get updating(){return this._sortedDrapeSourceRenderersDirty||s(this._renderers,e=>e.updating||e.canCompact)}get hasOverlays(){return null!=this._overlays&&null!=this._renderTargets}getMaterialRenderer(e){for(const r of this._renderers.values()){const t=r.getMaterialRenderer(e);if(t)return t}return null}get layers(){return this._sortedDrapeSourceRenderersDirty&&this._updateSortedDrapeSourceRenderers(),r(this._sortedRenderers.map(e=>e.drapeSource.layer).filter(e=>!!e))}registerDrapeSource(e,r){const t=this._renderers.get(e);null!=t&&t.destroy(),this._renderers.set(e,r),this._sortedDrapeSourceRenderersDirty=!0,"fullOpacity"in e&&this.addHandles(a(()=>e.fullOpacity,()=>this.events.emit("content-changed")),e)}removeDrapeSourceRenderer(e){if(null==e)return;const r=this._renderers.get(e);null!=r&&(this._sortedDrapeSourceRenderersDirty=!0,this._renderers.delete(e),this.removeHandles(e),r.destroy())}computeValidity(){return this._renderTargets?.computeValidity()??0}releaseRenderTargets(e){this._renderTargets?.dispose(e)}get overlays(){return this._overlays??[]}ensureDrapeTargets(e){this._hasTargetWithoutRasterImage=!!this._overlays&&c(e,e=>1===e.drapeTargetType)}ensureDrapeSources(e){this._overlays?(this._hasDrapedFeatureSource=c(e,e=>1===e.drapeSourceType),this._hasDrapedRasterSource=c(e,e=>0===e.drapeSourceType),this._hasDrapedFlowSource=c(e,e=>2===e.drapeSourceType)):this._hasDrapedFeatureSource=this._hasDrapedRasterSource=this._hasDrapedFlowSource=!1}get _needsColorWithoutRasterImage(){return this._hasDrapedRasterSource&&this._hasDrapedFeatureSource&&this._hasTargetWithoutRasterImage}ensureOverlays(e,r,t=this._bindParameters.overlayStretch){null==this._overlays&&(this._renderTargets=new v(this._stage.renderer.fboCache),this._overlays=[new R,new R]),this.ensureDrapeTargets(e),this.ensureDrapeSources(r),this._bindParameters.overlayStretch=t}disposeOverlays(){this._overlays=null,this._renderTargets?.dispose(1),this._renderTargets=null,this.events.emit("textures-disposed")}_useOverlayColorInsteadOfColorNoRasterImage(e){return 1===e&&!this._needsColorWithoutRasterImage&&this._hasDrapedFeatureSource}getTexture(e){const r=this._useOverlayColorInsteadOfColorNoRasterImage(e);return this._renderTargets?.getTexture(r?0:e)}get readyToRun(){return this.updating}runTask(e){this._processDrapeSources(()=>!0,e)}_onMaterialOrContentChanged(){this.renderOccludedFlags=s(this._renderers,e=>e.hasOccluders)?H:1}_processDrapeSources(e,r){let t=!1;for(const[s,i]of this._renderers){if(r?.done)break;(s.destroyed||e(s))&&(i.commitChanges()&&(t=!0,r?.madeProgress()))}this._sortedDrapeSourceRenderersDirty&&(this._sortedDrapeSourceRenderersDirty=!1,t=!0,this._updateSortedDrapeSourceRenderers(),r?.madeProgress()),r&&this.compact(r),t&&(null!=this._overlays&&0===this._renderers.size&&this.disposeOverlays(),this.notifyChange("updating"),this.notifyChange("isEmpty"),this._onMaterialOrContentChanged(),this.hasHighlights=s(this._renderers,e=>e.hasHighlights),this.events.emit("content-changed"))}compact(e){let r=!1;for(const t of this._renderers.values()){if(e.done)break;r=t.compact(e)||r}return r&&this.notifyChange("updating"),r}hasHighlight(e){return s(this._renderers,r=>r.hasHighlight(e))}processSyncDrapeSources(){this._processDrapeSources(e=>1===e.updatePolicy)}get isEmpty(){return!f.OVERLAY_DRAW_DEBUG_TEXTURE&&i(this._renderers,e=>e.isEmpty)}get hasWater(){const e=s(this._renderers,({hasWater:e})=>e);return e!==this._hasWater&&(this._hasWater=e,this.events.emit("has-water")),this._hasWater}renders(e){if(f.OVERLAY_DRAW_DEBUG_TEXTURE&&4!==e&&2!==e)return!0;if(!this._overlays)return!1;const r=this._overlays[0];for(const i of this._overlays)i.setupGeometryViews(this.longitudeCyclical);if(!r.hasSomeSizedView())return!1;const t=this._setOutput(this._renderTargets?.targets.find(r=>r.content===e)?.output??0);++this._techniques.precompiling;const s=this._sortedRenderers.some(({renderer:e})=>e.precompile(this._renderContext));return--this._techniques.precompiling,this._setOutput(t),s}_setOutput(e){const r=this._bindParameters.output;return this._bindParameters.output=e,this._bindParameters.slot=4===e?19:18,r}get mode(){return this.isEmpty?0:this.hasWater&&this.renders(3)?2:this._renderTargets?.getTexture(0)?1:0}updateAnimation(e){let r=!1;return this._renderers.forEach(t=>r=t.updateAnimation(e)||r),r&&this.parent.requestRender(0),r}updateDrapeSourceOrder(){this._sortedDrapeSourceRenderersDirty=!0}precompileShaders(e){if(!this._overlays||!this._renderTargets)return!1;const r=this._bindParameters;r.alignPixelEnabled=e.alignPixelEnabled,++this._techniques.precompiling;for(const t of this._renderTargets.targets){if(1===t.content&&!this._needsColorWithoutRasterImage)continue;const{output:e}=t;this._setOutput(e),10===e&&(r.highlightMixTexture=r.highlights.length>1?this._rctx.emptyTexture:null);const s=this._renderContext.renderOccludedMask;4===t.content&&(this._renderContext.renderOccludedMask=H),this._sortedRenderers.forAll(({drapeSource:e,renderer:r})=>{1===t.content&&0===e.drapeSourceType||4===t.content&&r.hasOnlyOccluders||r.precompile(this._renderContext)}),this._renderContext.renderOccludedMask=s,r.highlightMixTexture=null}return--this._techniques.precompiling,!0}drawOverlays(e,r){if(!this._overlays||!this._renderTargets)return;for(const s of this._overlays)s.setupGeometryViews(this.longitudeCyclical);this._bindParameters.alignPixelEnabled=e.alignPixelEnabled;const t=this.allSourcesOccluders;for(const s of this._renderTargets.targets){if(!(0===s.content&&this._hasDrapedFlowSource)&&!s.handleRenderRequest(r)||1===s.content&&!this._needsColorWithoutRasterImage||4===s.content&&t)continue;const e=this._drawTarget(0,s),i=this._drawTarget(1,s);(e||i)&&s.fbo.generateMipMap()}}_drawTarget(e,r){const t=this._overlays[e],s=t.canvasGeometries;if(0===s.numViews)return!1;const i=this._view.state.contentPixelRatio;this._screenToWorldRatio=i*t.mapUnitsPerPixel/this._bindParameters.overlayStretch;const{output:n,content:o}=r;if(this.isEmpty||4===n&&!this.hasWater||!t.hasSomeSizedView())return!1;const{_rctx:a,_camera:h,_renderContext:d,_bindParameters:l}=this;if(h.pixelRatio=t.pixelRatio*i,this._setOutput(n),l.screenToWorldRatio=this._screenToWorldRatio,l.screenToPCSRatio=this._screenToWorldRatio*this.parent.worldToPCSRatio,4===o&&(d.renderOccludedMask=H),!this.renders(o))return d.renderOccludedMask=C,!1;const{resolution:c}=t,u=0===e,p=u?0:c;a.setViewport(p,0,c,c),this._bindTargetFBO(r),u&&(10===n?a.gl.clearBufferuiv(a.gl.COLOR,0,[0,0,0,0]):(a.setClearColor(0,0,0,0),a.clear(16384)));if(f.OVERLAY_DRAW_DEBUG_TEXTURE&&4!==o&&2!==o){this._techniques.precompile(E,L);const r=this._techniques.get(E,L);for(let i=0;i<s.numViews;i++)this._setViewParameters(s.extents[i],t),this._ensureDebugPatternResources(t.resolution,U[e]),a.bindTechnique(r,l,this._passParameters),a.screen.draw()}if(10===n){const{fboCache:t}=this._stage.renderer,s=this._resolution;this._bindTargetFBO(r),b(a,t,s,s,l,()=>this._renderAllGeometry(e,r),p)}else this._renderAllGeometry(e,r);return a.bindFramebuffer(null),d.renderOccludedMask=C,!0}get allSourcesOccluders(){return i(this._renderers,e=>e.hasOnlyOccluders)}_renderAllGeometry(e,r){const t=this._overlays[e],s=t.canvasGeometries;this._sortedRenderers.forAll(({drapeSource:i,renderer:n})=>{if(1===r.content&&0===i.drapeSourceType)return;const{fullOpacity:o}=i,a=null!=o&&o<1&&0===r.output&&this._bindTemporaryFBO();for(let e=0;e<s.numViews;e++)this._setViewParameters(s.extents[e],t),n.render(this._renderContext);if(a){this._bindTargetFBO(r),this._overlayParameters.texture=a.getTexture(),this._overlayParameters.opacity=o,this._overlayParameters.overlayIndex=e;const t=this._techniques.get(V);this._rctx.bindTechnique(t,this._bindParameters,this._overlayParameters),this._rctx.screen.draw(),a.release()}})}_bindTargetFBO(e){const r=this._resolution,t=2*r;e.fbo.ensureFramebuffer(t,r),e.fbo.bind(this._rctx)}_bindTemporaryFBO(){const e=this._resolution,r=2*e,t=this._stage.renderer.fboCache,s=t.acquire(r,e,"overlay tmp");return t.rctx.bindFramebuffer(s.fbo),t.rctx.clear(16384),s}get _resolution(){return this._overlays?.[0].resolution??0}notifyContentChanged(){this.events.emit("content-changed")}intersect(e,r,t,s){this._sortedDrapeSourceRenderersDirty&&this._updateSortedDrapeSourceRenderers();let i=0;for(const{renderer:n}of this._sortedRenderers)i=n.intersect?.(e,r,t,s,i)??i}_updateSortedDrapeSourceRenderers(){if(this._sortedRenderers.clear(),0===this._renderers.size)return;const e=this._view.map.allLayers.map(e=>e.uid),r=e.length;this._renderers.forEach((t,s)=>{const i=e.indexOf(s.layer?.uid),n=i>=0,o=s.renderGroup??(n?0:1),a=s.drapeSourcePriorityOffset??0,h=r*o+(n?i:0)+a;this._sortedRenderers.push(new I(s,t,h))}),this._sortedRenderers.sort((e,r)=>e.index-r.index)}_setViewParameters(e,r){const t=this._camera;t.viewport=[0,0,r.resolution,r.resolution],_(t.projectionMatrix,0,e[2]-e[0],0,e[3]-e[1],t.near,t.far),g(t.viewMatrix,[-e[0],-e[1],0])}_ensureDebugPatternResources(e,r){if(m(this._passParameters.color,r[0],r[1],r[2]),this._passParameters.texture)return;const t=new Uint8Array(e*e*4);let s=0;for(let n=0;n<e;n++)for(let r=0;r<e;r++){const i=Math.floor(r/10),o=Math.floor(n/10);i<2||o<2||10*i>e-20||10*o>e-20?(t[s++]=255,t[s++]=255,t[s++]=255,t[s++]=255):(t[s++]=255,t[s++]=255,t[s++]=255,t[s++]=1&i&&1&o?1&r^1&n?0:255:1&i^1&o?0:128)}const i=new G(e);i.samplingMode=9728,this._passParameters.texture=new A(this._rctx,i,t)}get test(){}};e([u()],k.prototype,"hasHighlights",void 0),e([u()],k.prototype,"renderOccludedFlags",void 0),e([u()],k.prototype,"_sortedDrapeSourceRenderersDirty",void 0),e([u({constructOnly:!0})],k.prototype,"parent",void 0),e([u({readOnly:!0})],k.prototype,"_techniques",null),e([u({type:Boolean,readOnly:!0})],k.prototype,"updating",null),e([u()],k.prototype,"isEmpty",null),k=e([p("esri.views.3d.terrain.OverlayRenderer")],k);class I{constructor(e,r,t){this.drapeSource=e,this.renderer=r,this.index=t}}const U=[[1,.5,.5],[.5,.5,1]],B=-2,H=4,L=new F;L.hasAlpha=!0;export{k as OverlayRenderer,B as drapedZ,H as overlayRenderOccludedFlag};