@arcgis/core 5.1.0-next.127 → 5.1.0-next.129

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 (658) hide show
  1. package/applications/Urban/editingSessionUtils.js +1 -1
  2. package/arcade/featureSetUtils.js +1 -1
  3. package/arcade/featureset/sources/FeatureLayerDynamic.js +1 -1
  4. package/arcade/featureset/sources/FeatureLayerParquet.js +2 -0
  5. package/arcade/featureset/support/FeatureSet.js +1 -1
  6. package/arcade/featureset/support/shared.js +1 -1
  7. package/arcade.d.ts +2 -1
  8. package/arcgisGlobal.d.ts +3 -1
  9. package/assets/esri/core/t9n/Units_ar.json +1 -1
  10. package/assets/esri/core/t9n/Units_bg.json +1 -1
  11. package/assets/esri/core/t9n/Units_bs.json +1 -1
  12. package/assets/esri/core/t9n/Units_ca.json +1 -1
  13. package/assets/esri/core/t9n/Units_cs.json +1 -1
  14. package/assets/esri/core/t9n/Units_da.json +1 -1
  15. package/assets/esri/core/t9n/Units_de.json +1 -1
  16. package/assets/esri/core/t9n/Units_el.json +1 -1
  17. package/assets/esri/core/t9n/Units_es.json +1 -1
  18. package/assets/esri/core/t9n/Units_et.json +1 -1
  19. package/assets/esri/core/t9n/Units_fi.json +1 -1
  20. package/assets/esri/core/t9n/Units_fr.json +1 -1
  21. package/assets/esri/core/t9n/Units_he.json +1 -1
  22. package/assets/esri/core/t9n/Units_hr.json +1 -1
  23. package/assets/esri/core/t9n/Units_hu.json +1 -1
  24. package/assets/esri/core/t9n/Units_id.json +1 -1
  25. package/assets/esri/core/t9n/Units_it.json +1 -1
  26. package/assets/esri/core/t9n/Units_ja.json +1 -1
  27. package/assets/esri/core/t9n/Units_ko.json +1 -1
  28. package/assets/esri/core/t9n/Units_lt.json +1 -1
  29. package/assets/esri/core/t9n/Units_lv.json +1 -1
  30. package/assets/esri/core/t9n/Units_nl.json +1 -1
  31. package/assets/esri/core/t9n/Units_no.json +1 -1
  32. package/assets/esri/core/t9n/Units_pl.json +1 -1
  33. package/assets/esri/core/t9n/Units_pt-BR.json +1 -1
  34. package/assets/esri/core/t9n/Units_pt-PT.json +1 -1
  35. package/assets/esri/core/t9n/Units_ro.json +1 -1
  36. package/assets/esri/core/t9n/Units_ru.json +1 -1
  37. package/assets/esri/core/t9n/Units_sk.json +1 -1
  38. package/assets/esri/core/t9n/Units_sl.json +1 -1
  39. package/assets/esri/core/t9n/Units_sr.json +1 -1
  40. package/assets/esri/core/t9n/Units_sv.json +1 -1
  41. package/assets/esri/core/t9n/Units_th.json +1 -1
  42. package/assets/esri/core/t9n/Units_tr.json +1 -1
  43. package/assets/esri/core/t9n/Units_uk.json +1 -1
  44. package/assets/esri/core/t9n/Units_vi.json +1 -1
  45. package/assets/esri/core/t9n/Units_zh-CN.json +1 -1
  46. package/assets/esri/core/t9n/Units_zh-HK.json +1 -1
  47. package/assets/esri/core/t9n/Units_zh-TW.json +1 -1
  48. package/assets/esri/core/workers/RemoteClient.js +1 -1
  49. package/assets/esri/core/workers/chunks/01ba5319cac3e0f14205.js +1 -0
  50. package/assets/esri/core/workers/chunks/0418b5c9d06f3585c035.js +2 -0
  51. package/assets/esri/core/workers/chunks/{b045bffb4f2eb9203183.js → 05e1f1628a3726eca03d.js} +1 -1
  52. package/assets/esri/core/workers/chunks/08dfe61c75f0032db4d4.js +1 -0
  53. package/assets/esri/core/workers/chunks/0b45d34938fa7862f746.js +1 -0
  54. package/assets/esri/core/workers/chunks/0e94786db78770868c63.js +2 -0
  55. package/assets/esri/core/workers/chunks/{81e3bd1a0634ddc2b833.js → 0f10d7d592c36ee2d1ea.js} +1 -1
  56. package/assets/esri/core/workers/chunks/{38cfedce779dd75bd217.js → 10b668186063770d63bd.js} +1 -1
  57. package/assets/esri/core/workers/chunks/11c3b1e8ca21ad62fdd1.js +1 -0
  58. package/assets/esri/core/workers/chunks/152193072c9d3487b47a.js +1 -0
  59. package/assets/esri/core/workers/chunks/{c187bc997bad61b6c6e9.js → 18d1ac2165a84c42e98f.js} +1 -1
  60. package/assets/esri/core/workers/chunks/{0b169bb1969f86232a1a.js → 1b03e10a6b721365acbb.js} +1 -1
  61. package/assets/esri/core/workers/chunks/1bd49e8d2657c72bf3f9.js +1 -0
  62. package/assets/esri/core/workers/chunks/1d2609ce6220b5af5526.js +1 -0
  63. package/assets/esri/core/workers/chunks/1d38b2fcd85ac9ebd7c6.js +1 -0
  64. package/assets/esri/core/workers/chunks/{c2cd80b712f29e8cbb8d.js → 1ff57bf19f021f5fd246.js} +1 -1
  65. package/assets/esri/core/workers/chunks/{287f1441819c345f389e.js → 268243ee64d001009f78.js} +1 -1
  66. package/assets/esri/core/workers/chunks/26aa8190ac439f634c5b.js +1 -0
  67. package/assets/esri/core/workers/chunks/{73c355b895fd6a34fcb8.js → 2a8d791aef3123e6a3c4.js} +1 -1
  68. package/assets/esri/core/workers/chunks/2b781de7b467c61849b2.js +1 -0
  69. package/assets/esri/core/workers/chunks/{0e774f14ba274832f390.js → 2f5970e87e1e77f8362b.js} +1 -1
  70. package/assets/esri/core/workers/chunks/317bf48a4d513a9a2ff3.js +2 -0
  71. package/assets/esri/core/workers/chunks/33838536a7436b1d449e.js +1 -0
  72. package/assets/esri/core/workers/chunks/{03e93c18efc67a25ca63.js → 35c4037b8eea067d9638.js} +1 -1
  73. package/assets/esri/core/workers/chunks/{640abe600fa069ed7640.js → 395736b49abaaa1c3405.js} +1 -1
  74. package/assets/esri/core/workers/chunks/39a10b2092a98083f4cf.js +1 -0
  75. package/assets/esri/core/workers/chunks/3b74749db78bcba2bc16.js +1 -0
  76. package/assets/esri/core/workers/chunks/3b9174de370b187a0985.js +1 -0
  77. package/assets/esri/core/workers/chunks/3bd32387af52fa48d747.js +1 -0
  78. package/assets/esri/core/workers/chunks/3d4ad7c728e02aa90551.js +1 -0
  79. package/assets/esri/core/workers/chunks/3d4bb539bf939fcdeef9.js +1 -0
  80. package/assets/esri/core/workers/chunks/3dc6e9494af16f7b8009.js +1 -0
  81. package/assets/esri/core/workers/chunks/{d36b407f5ad5eabac530.js → 4d43619c73721946441b.js} +29 -29
  82. package/assets/esri/core/workers/chunks/4e59e5a5d0ff887ff899.js +1 -0
  83. package/assets/esri/core/workers/chunks/4efef5fa8bf23aaf34cd.js +1 -0
  84. package/assets/esri/core/workers/chunks/511b9c12a7479d39dac0.js +1 -0
  85. package/assets/esri/core/workers/chunks/51a53011478e0cf96e0b.js +1 -0
  86. package/assets/esri/core/workers/chunks/5481af25fd46914498df.js +1 -0
  87. package/assets/esri/core/workers/chunks/599bd80379423c99799d.js +1 -0
  88. package/assets/esri/core/workers/chunks/609edb4da427ec37bcf7.js +1 -0
  89. package/assets/esri/core/workers/chunks/60d4a3f770bb1e01cd10.js +1 -0
  90. package/assets/esri/core/workers/chunks/65cc9a48ac95523f7aa8.js +1 -0
  91. package/assets/esri/core/workers/chunks/66392ff750c28064040a.js +1 -0
  92. package/assets/esri/core/workers/chunks/668d84dc512b3085a960.js +1 -0
  93. package/assets/esri/core/workers/chunks/68b77b36daae2b4b4237.js +1 -0
  94. package/assets/esri/core/workers/chunks/6a54dddafb6763bf287e.js +1 -0
  95. package/assets/esri/core/workers/chunks/{f0556a695d080454b8da.js → 6af021050d5d04be7a20.js} +1 -1
  96. package/assets/esri/core/workers/chunks/6f5a82388a5eb5fcf1b7.js +1 -0
  97. package/assets/esri/core/workers/chunks/70b5e0fce22122a7ccc2.js +1 -0
  98. package/assets/esri/core/workers/chunks/{8244b74e9c3a30d8d2f6.js → 7361ca78a605eda41a2f.js} +2 -2
  99. package/assets/esri/core/workers/chunks/73b0edabddbb72fe1104.js +1 -0
  100. package/assets/esri/core/workers/chunks/{8b0a01ebc86ab226f01f.js → 75b4c27ca02b124a713c.js} +1 -1
  101. package/assets/esri/core/workers/chunks/7a997ac153181a8f71ef.js +1 -0
  102. package/assets/esri/core/workers/chunks/7f849c8255140be6097f.js +1 -0
  103. package/assets/esri/core/workers/chunks/831455798b177678720c.js +1 -0
  104. package/assets/esri/core/workers/chunks/84a0bb53fcbd99b5aa0c.js +1 -0
  105. package/assets/esri/core/workers/chunks/{9331969046f2b277d620.js → 8a39dd585742960d3ca2.js} +1 -1
  106. package/assets/esri/core/workers/chunks/{5cb1b950249d651f3837.js → 8dcb3e77f76d8396706b.js} +1 -1
  107. package/assets/esri/core/workers/chunks/8f25d91ea7b99597124e.js +1 -0
  108. package/assets/esri/core/workers/chunks/92341f36a8b15f34bcca.js +1 -0
  109. package/assets/esri/core/workers/chunks/{bf706a5d065a357de51b.js → 993fee0e91303eb1f01f.js} +1 -1
  110. package/assets/esri/core/workers/chunks/9da1a514e042eb642d35.js +1 -0
  111. package/assets/esri/core/workers/chunks/9f93c29af2a18f7cb160.js +1 -0
  112. package/assets/esri/core/workers/chunks/{f25bb204cf6727f6fdef.js → a0876a52a3c2ad849370.js} +1 -1
  113. package/assets/esri/core/workers/chunks/a1509e2e7809b6754b4f.js +1 -0
  114. package/assets/esri/core/workers/chunks/a18cb809dd56c5537b3b.js +1 -0
  115. package/assets/esri/core/workers/chunks/{52175ff9e8c2c136f90a.js → a3ecde3794a7db3cf283.js} +1 -1
  116. package/assets/esri/core/workers/chunks/{bfd1aef8ac795e1ce227.js → a892b3be70f482bef0ba.js} +1 -1
  117. package/assets/esri/core/workers/chunks/a8ef7acb6d3d1f45e14c.js +1 -0
  118. package/assets/esri/core/workers/chunks/{1436e378d975345686aa.js → aac27340f93ab69f3a9c.js} +1 -1
  119. package/assets/esri/core/workers/chunks/ac16016964be3b684e98.js +30 -0
  120. package/assets/esri/core/workers/chunks/ac7ecd90330090c90005.js +1 -0
  121. package/assets/esri/core/workers/chunks/b076e0ca68ea80bc2559.js +1 -0
  122. package/assets/esri/core/workers/chunks/b1524f23e6cee5301a14.js +1 -0
  123. package/assets/esri/core/workers/chunks/{c983e5ce0ff952b65d7f.js → b2b342b06d502fc61ea5.js} +1 -1
  124. package/assets/esri/core/workers/chunks/{b7e363c14919698f5b65.js → b5017e83a99a8051f212.js} +1 -1
  125. package/assets/esri/core/workers/chunks/b75a4753cea6544da8bb.js +1 -0
  126. package/assets/esri/core/workers/chunks/b775a0d8894930af4983.js +1 -0
  127. package/assets/esri/core/workers/chunks/bb012e02ae197bd1d9de.js +1 -0
  128. package/assets/esri/core/workers/chunks/bbcad2fde838819ffc7b.js +1 -0
  129. package/assets/esri/core/workers/chunks/bc893c95c0ab7d4bb91e.js +1 -0
  130. package/assets/esri/core/workers/chunks/be1d2c3a61e6447fbbc7.js +1 -0
  131. package/assets/esri/core/workers/chunks/bf67e0f6064fb9d94ac8.js +1 -0
  132. package/assets/esri/core/workers/chunks/{97a654e8054302582a3b.js → bfa6f4c08e7571bb1f37.js} +1 -1
  133. package/assets/esri/core/workers/chunks/c2cbc2a920e6e199533a.js +1 -0
  134. package/assets/esri/core/workers/chunks/c9057b0ad2c2bae4a8ce.js +1 -0
  135. package/assets/esri/core/workers/chunks/cf9a132c4c37e62de3d7.js +1 -0
  136. package/assets/esri/core/workers/chunks/d2e94ecf08a56dd43311.js +1 -0
  137. package/assets/esri/core/workers/chunks/{03354e9256b2f77fd4f2.js → d6145cd7e7c5346f62ec.js} +1 -1
  138. package/assets/esri/core/workers/chunks/d6911e9453532501f460.js +1 -0
  139. package/assets/esri/core/workers/chunks/{886ae23a1d8fa21e531f.js → d750e4abeb777caa8c36.js} +1 -1
  140. package/assets/esri/core/workers/chunks/d7acbc2ddff4cee8a465.js +30 -0
  141. package/assets/esri/core/workers/chunks/d8242cf6fec7c7bb614c.js +261 -0
  142. package/assets/esri/core/workers/chunks/{d97c0c18202b8c578f8c.js → e5471373f89fd7cb9844.js} +1 -1
  143. package/assets/esri/core/workers/chunks/e9acc05b0cf9e05f31a8.js +1 -0
  144. package/assets/esri/core/workers/chunks/e9cd84ad0054e9fea448.js +1 -0
  145. package/assets/esri/core/workers/chunks/f321eaf3390ab443b14c.js +1 -0
  146. package/assets/esri/core/workers/chunks/f64241d613f56fbcd981.js +30 -0
  147. package/assets/esri/core/workers/chunks/f955b35337a08f9f747d.js +1 -0
  148. package/assets/esri/core/workers/chunks/{f75295cdd5e84eb97d5a.js → f9d583785b3b09ace222.js} +1 -1
  149. package/assets/esri/core/workers/chunks/fc4641f3c93f43c8c193.js +2 -0
  150. package/assets/esri/core/workers/chunks/fc73de97c618ca11eacb.js +1 -0
  151. package/assets/esri/core/workers/chunks/fe6385115d76e16e8da0.js +1 -0
  152. package/assets/esri/libs/parquet/pkg/bundle_bg.wasm +0 -0
  153. package/assets/esri/themes/base/widgets/_BatchAttributeForm.scss +62 -90
  154. package/assets/esri/themes/base/widgets/_OrientedImageryViewer.scss +0 -2
  155. package/assets/esri/themes/dark/main.css +1 -1
  156. package/assets/esri/themes/light/main.css +1 -1
  157. package/assets/esri/themes/light/view.css +1 -1
  158. package/assets/esri/views/3d/analysis/ShadowCast/t9n/ShadowCastAnalysis_ar.json +1 -1
  159. package/assets/esri/views/3d/analysis/ShadowCast/t9n/ShadowCastAnalysis_bg.json +1 -1
  160. package/assets/esri/views/3d/analysis/ShadowCast/t9n/ShadowCastAnalysis_bs.json +1 -1
  161. package/assets/esri/views/3d/analysis/ShadowCast/t9n/ShadowCastAnalysis_ca.json +1 -1
  162. package/assets/esri/views/3d/analysis/ShadowCast/t9n/ShadowCastAnalysis_cs.json +1 -1
  163. package/assets/esri/views/3d/analysis/ShadowCast/t9n/ShadowCastAnalysis_da.json +1 -1
  164. package/assets/esri/views/3d/analysis/ShadowCast/t9n/ShadowCastAnalysis_de.json +1 -1
  165. package/assets/esri/views/3d/analysis/ShadowCast/t9n/ShadowCastAnalysis_el.json +1 -1
  166. package/assets/esri/views/3d/analysis/ShadowCast/t9n/ShadowCastAnalysis_es.json +1 -1
  167. package/assets/esri/views/3d/analysis/ShadowCast/t9n/ShadowCastAnalysis_et.json +1 -1
  168. package/assets/esri/views/3d/analysis/ShadowCast/t9n/ShadowCastAnalysis_fi.json +1 -1
  169. package/assets/esri/views/3d/analysis/ShadowCast/t9n/ShadowCastAnalysis_fr.json +1 -1
  170. package/assets/esri/views/3d/analysis/ShadowCast/t9n/ShadowCastAnalysis_he.json +1 -1
  171. package/assets/esri/views/3d/analysis/ShadowCast/t9n/ShadowCastAnalysis_hr.json +1 -1
  172. package/assets/esri/views/3d/analysis/ShadowCast/t9n/ShadowCastAnalysis_hu.json +1 -1
  173. package/assets/esri/views/3d/analysis/ShadowCast/t9n/ShadowCastAnalysis_id.json +1 -1
  174. package/assets/esri/views/3d/analysis/ShadowCast/t9n/ShadowCastAnalysis_it.json +1 -1
  175. package/assets/esri/views/3d/analysis/ShadowCast/t9n/ShadowCastAnalysis_ja.json +1 -1
  176. package/assets/esri/views/3d/analysis/ShadowCast/t9n/ShadowCastAnalysis_ko.json +1 -1
  177. package/assets/esri/views/3d/analysis/ShadowCast/t9n/ShadowCastAnalysis_lt.json +1 -1
  178. package/assets/esri/views/3d/analysis/ShadowCast/t9n/ShadowCastAnalysis_lv.json +1 -1
  179. package/assets/esri/views/3d/analysis/ShadowCast/t9n/ShadowCastAnalysis_nl.json +1 -1
  180. package/assets/esri/views/3d/analysis/ShadowCast/t9n/ShadowCastAnalysis_no.json +1 -1
  181. package/assets/esri/views/3d/analysis/ShadowCast/t9n/ShadowCastAnalysis_pl.json +1 -1
  182. package/assets/esri/views/3d/analysis/ShadowCast/t9n/ShadowCastAnalysis_pt-BR.json +1 -1
  183. package/assets/esri/views/3d/analysis/ShadowCast/t9n/ShadowCastAnalysis_pt-PT.json +1 -1
  184. package/assets/esri/views/3d/analysis/ShadowCast/t9n/ShadowCastAnalysis_ro.json +1 -1
  185. package/assets/esri/views/3d/analysis/ShadowCast/t9n/ShadowCastAnalysis_ru.json +1 -1
  186. package/assets/esri/views/3d/analysis/ShadowCast/t9n/ShadowCastAnalysis_sk.json +1 -1
  187. package/assets/esri/views/3d/analysis/ShadowCast/t9n/ShadowCastAnalysis_sl.json +1 -1
  188. package/assets/esri/views/3d/analysis/ShadowCast/t9n/ShadowCastAnalysis_sr.json +1 -1
  189. package/assets/esri/views/3d/analysis/ShadowCast/t9n/ShadowCastAnalysis_sv.json +1 -1
  190. package/assets/esri/views/3d/analysis/ShadowCast/t9n/ShadowCastAnalysis_th.json +1 -1
  191. package/assets/esri/views/3d/analysis/ShadowCast/t9n/ShadowCastAnalysis_tr.json +1 -1
  192. package/assets/esri/views/3d/analysis/ShadowCast/t9n/ShadowCastAnalysis_uk.json +1 -1
  193. package/assets/esri/views/3d/analysis/ShadowCast/t9n/ShadowCastAnalysis_vi.json +1 -1
  194. package/assets/esri/views/3d/analysis/ShadowCast/t9n/ShadowCastAnalysis_zh-CN.json +1 -1
  195. package/assets/esri/views/3d/analysis/ShadowCast/t9n/ShadowCastAnalysis_zh-HK.json +1 -1
  196. package/assets/esri/views/3d/analysis/ShadowCast/t9n/ShadowCastAnalysis_zh-TW.json +1 -1
  197. package/assets/esri/widgets/BasemapGallery/t9n/BasemapGallery_ar.json +1 -1
  198. package/assets/esri/widgets/BasemapGallery/t9n/BasemapGallery_bg.json +1 -1
  199. package/assets/esri/widgets/BasemapGallery/t9n/BasemapGallery_bs.json +1 -1
  200. package/assets/esri/widgets/BasemapGallery/t9n/BasemapGallery_ca.json +1 -1
  201. package/assets/esri/widgets/BasemapGallery/t9n/BasemapGallery_cs.json +1 -1
  202. package/assets/esri/widgets/BasemapGallery/t9n/BasemapGallery_da.json +1 -1
  203. package/assets/esri/widgets/BasemapGallery/t9n/BasemapGallery_de.json +1 -1
  204. package/assets/esri/widgets/BasemapGallery/t9n/BasemapGallery_el.json +1 -1
  205. package/assets/esri/widgets/BasemapGallery/t9n/BasemapGallery_es.json +1 -1
  206. package/assets/esri/widgets/BasemapGallery/t9n/BasemapGallery_et.json +1 -1
  207. package/assets/esri/widgets/BasemapGallery/t9n/BasemapGallery_fi.json +1 -1
  208. package/assets/esri/widgets/BasemapGallery/t9n/BasemapGallery_fr.json +1 -1
  209. package/assets/esri/widgets/BasemapGallery/t9n/BasemapGallery_he.json +1 -1
  210. package/assets/esri/widgets/BasemapGallery/t9n/BasemapGallery_hr.json +1 -1
  211. package/assets/esri/widgets/BasemapGallery/t9n/BasemapGallery_hu.json +1 -1
  212. package/assets/esri/widgets/BasemapGallery/t9n/BasemapGallery_id.json +1 -1
  213. package/assets/esri/widgets/BasemapGallery/t9n/BasemapGallery_it.json +1 -1
  214. package/assets/esri/widgets/BasemapGallery/t9n/BasemapGallery_ja.json +1 -1
  215. package/assets/esri/widgets/BasemapGallery/t9n/BasemapGallery_ko.json +1 -1
  216. package/assets/esri/widgets/BasemapGallery/t9n/BasemapGallery_lt.json +1 -1
  217. package/assets/esri/widgets/BasemapGallery/t9n/BasemapGallery_lv.json +1 -1
  218. package/assets/esri/widgets/BasemapGallery/t9n/BasemapGallery_nl.json +1 -1
  219. package/assets/esri/widgets/BasemapGallery/t9n/BasemapGallery_no.json +1 -1
  220. package/assets/esri/widgets/BasemapGallery/t9n/BasemapGallery_pl.json +1 -1
  221. package/assets/esri/widgets/BasemapGallery/t9n/BasemapGallery_pt-BR.json +1 -1
  222. package/assets/esri/widgets/BasemapGallery/t9n/BasemapGallery_pt-PT.json +1 -1
  223. package/assets/esri/widgets/BasemapGallery/t9n/BasemapGallery_ro.json +1 -1
  224. package/assets/esri/widgets/BasemapGallery/t9n/BasemapGallery_ru.json +1 -1
  225. package/assets/esri/widgets/BasemapGallery/t9n/BasemapGallery_sk.json +1 -1
  226. package/assets/esri/widgets/BasemapGallery/t9n/BasemapGallery_sl.json +1 -1
  227. package/assets/esri/widgets/BasemapGallery/t9n/BasemapGallery_sr.json +1 -1
  228. package/assets/esri/widgets/BasemapGallery/t9n/BasemapGallery_sv.json +1 -1
  229. package/assets/esri/widgets/BasemapGallery/t9n/BasemapGallery_th.json +1 -1
  230. package/assets/esri/widgets/BasemapGallery/t9n/BasemapGallery_tr.json +1 -1
  231. package/assets/esri/widgets/BasemapGallery/t9n/BasemapGallery_uk.json +1 -1
  232. package/assets/esri/widgets/BasemapGallery/t9n/BasemapGallery_vi.json +1 -1
  233. package/assets/esri/widgets/BasemapGallery/t9n/BasemapGallery_zh-CN.json +1 -1
  234. package/assets/esri/widgets/BasemapGallery/t9n/BasemapGallery_zh-HK.json +1 -1
  235. package/assets/esri/widgets/BasemapGallery/t9n/BasemapGallery_zh-TW.json +1 -1
  236. package/assets/esri/widgets/BatchAttributeForm/t9n/BatchAttributeForm_ar.json +1 -1
  237. package/assets/esri/widgets/BatchAttributeForm/t9n/BatchAttributeForm_bg.json +1 -1
  238. package/assets/esri/widgets/BatchAttributeForm/t9n/BatchAttributeForm_bs.json +1 -1
  239. package/assets/esri/widgets/BatchAttributeForm/t9n/BatchAttributeForm_ca.json +1 -1
  240. package/assets/esri/widgets/BatchAttributeForm/t9n/BatchAttributeForm_cs.json +1 -1
  241. package/assets/esri/widgets/BatchAttributeForm/t9n/BatchAttributeForm_da.json +1 -1
  242. package/assets/esri/widgets/BatchAttributeForm/t9n/BatchAttributeForm_de.json +1 -1
  243. package/assets/esri/widgets/BatchAttributeForm/t9n/BatchAttributeForm_el.json +1 -1
  244. package/assets/esri/widgets/BatchAttributeForm/t9n/BatchAttributeForm_es.json +1 -1
  245. package/assets/esri/widgets/BatchAttributeForm/t9n/BatchAttributeForm_et.json +1 -1
  246. package/assets/esri/widgets/BatchAttributeForm/t9n/BatchAttributeForm_fi.json +1 -1
  247. package/assets/esri/widgets/BatchAttributeForm/t9n/BatchAttributeForm_fr.json +1 -1
  248. package/assets/esri/widgets/BatchAttributeForm/t9n/BatchAttributeForm_he.json +1 -1
  249. package/assets/esri/widgets/BatchAttributeForm/t9n/BatchAttributeForm_hr.json +1 -1
  250. package/assets/esri/widgets/BatchAttributeForm/t9n/BatchAttributeForm_hu.json +1 -1
  251. package/assets/esri/widgets/BatchAttributeForm/t9n/BatchAttributeForm_id.json +1 -1
  252. package/assets/esri/widgets/BatchAttributeForm/t9n/BatchAttributeForm_it.json +1 -1
  253. package/assets/esri/widgets/BatchAttributeForm/t9n/BatchAttributeForm_ja.json +1 -1
  254. package/assets/esri/widgets/BatchAttributeForm/t9n/BatchAttributeForm_ko.json +1 -1
  255. package/assets/esri/widgets/BatchAttributeForm/t9n/BatchAttributeForm_lt.json +1 -1
  256. package/assets/esri/widgets/BatchAttributeForm/t9n/BatchAttributeForm_lv.json +1 -1
  257. package/assets/esri/widgets/BatchAttributeForm/t9n/BatchAttributeForm_nl.json +1 -1
  258. package/assets/esri/widgets/BatchAttributeForm/t9n/BatchAttributeForm_no.json +1 -1
  259. package/assets/esri/widgets/BatchAttributeForm/t9n/BatchAttributeForm_pl.json +1 -1
  260. package/assets/esri/widgets/BatchAttributeForm/t9n/BatchAttributeForm_pt-BR.json +1 -1
  261. package/assets/esri/widgets/BatchAttributeForm/t9n/BatchAttributeForm_pt-PT.json +1 -1
  262. package/assets/esri/widgets/BatchAttributeForm/t9n/BatchAttributeForm_ro.json +1 -1
  263. package/assets/esri/widgets/BatchAttributeForm/t9n/BatchAttributeForm_ru.json +1 -1
  264. package/assets/esri/widgets/BatchAttributeForm/t9n/BatchAttributeForm_sk.json +1 -1
  265. package/assets/esri/widgets/BatchAttributeForm/t9n/BatchAttributeForm_sl.json +1 -1
  266. package/assets/esri/widgets/BatchAttributeForm/t9n/BatchAttributeForm_sr.json +1 -1
  267. package/assets/esri/widgets/BatchAttributeForm/t9n/BatchAttributeForm_sv.json +1 -1
  268. package/assets/esri/widgets/BatchAttributeForm/t9n/BatchAttributeForm_th.json +1 -1
  269. package/assets/esri/widgets/BatchAttributeForm/t9n/BatchAttributeForm_tr.json +1 -1
  270. package/assets/esri/widgets/BatchAttributeForm/t9n/BatchAttributeForm_uk.json +1 -1
  271. package/assets/esri/widgets/BatchAttributeForm/t9n/BatchAttributeForm_vi.json +1 -1
  272. package/assets/esri/widgets/BatchAttributeForm/t9n/BatchAttributeForm_zh-CN.json +1 -1
  273. package/assets/esri/widgets/BatchAttributeForm/t9n/BatchAttributeForm_zh-HK.json +1 -1
  274. package/assets/esri/widgets/BatchAttributeForm/t9n/BatchAttributeForm_zh-TW.json +1 -1
  275. package/assets/esri/widgets/FeatureTable/t9n/FeatureTable_ar.json +1 -1
  276. package/assets/esri/widgets/FeatureTable/t9n/FeatureTable_bg.json +1 -1
  277. package/assets/esri/widgets/FeatureTable/t9n/FeatureTable_bs.json +1 -1
  278. package/assets/esri/widgets/FeatureTable/t9n/FeatureTable_ca.json +1 -1
  279. package/assets/esri/widgets/FeatureTable/t9n/FeatureTable_cs.json +1 -1
  280. package/assets/esri/widgets/FeatureTable/t9n/FeatureTable_da.json +1 -1
  281. package/assets/esri/widgets/FeatureTable/t9n/FeatureTable_de.json +1 -1
  282. package/assets/esri/widgets/FeatureTable/t9n/FeatureTable_el.json +1 -1
  283. package/assets/esri/widgets/FeatureTable/t9n/FeatureTable_es.json +1 -1
  284. package/assets/esri/widgets/FeatureTable/t9n/FeatureTable_et.json +1 -1
  285. package/assets/esri/widgets/FeatureTable/t9n/FeatureTable_fi.json +1 -1
  286. package/assets/esri/widgets/FeatureTable/t9n/FeatureTable_fr.json +1 -1
  287. package/assets/esri/widgets/FeatureTable/t9n/FeatureTable_he.json +1 -1
  288. package/assets/esri/widgets/FeatureTable/t9n/FeatureTable_hr.json +1 -1
  289. package/assets/esri/widgets/FeatureTable/t9n/FeatureTable_hu.json +1 -1
  290. package/assets/esri/widgets/FeatureTable/t9n/FeatureTable_id.json +1 -1
  291. package/assets/esri/widgets/FeatureTable/t9n/FeatureTable_it.json +1 -1
  292. package/assets/esri/widgets/FeatureTable/t9n/FeatureTable_ja.json +1 -1
  293. package/assets/esri/widgets/FeatureTable/t9n/FeatureTable_ko.json +1 -1
  294. package/assets/esri/widgets/FeatureTable/t9n/FeatureTable_lt.json +1 -1
  295. package/assets/esri/widgets/FeatureTable/t9n/FeatureTable_lv.json +1 -1
  296. package/assets/esri/widgets/FeatureTable/t9n/FeatureTable_nl.json +1 -1
  297. package/assets/esri/widgets/FeatureTable/t9n/FeatureTable_no.json +1 -1
  298. package/assets/esri/widgets/FeatureTable/t9n/FeatureTable_pl.json +1 -1
  299. package/assets/esri/widgets/FeatureTable/t9n/FeatureTable_pt-BR.json +1 -1
  300. package/assets/esri/widgets/FeatureTable/t9n/FeatureTable_pt-PT.json +1 -1
  301. package/assets/esri/widgets/FeatureTable/t9n/FeatureTable_ro.json +1 -1
  302. package/assets/esri/widgets/FeatureTable/t9n/FeatureTable_ru.json +1 -1
  303. package/assets/esri/widgets/FeatureTable/t9n/FeatureTable_sk.json +1 -1
  304. package/assets/esri/widgets/FeatureTable/t9n/FeatureTable_sl.json +1 -1
  305. package/assets/esri/widgets/FeatureTable/t9n/FeatureTable_sr.json +1 -1
  306. package/assets/esri/widgets/FeatureTable/t9n/FeatureTable_sv.json +1 -1
  307. package/assets/esri/widgets/FeatureTable/t9n/FeatureTable_th.json +1 -1
  308. package/assets/esri/widgets/FeatureTable/t9n/FeatureTable_tr.json +1 -1
  309. package/assets/esri/widgets/FeatureTable/t9n/FeatureTable_uk.json +1 -1
  310. package/assets/esri/widgets/FeatureTable/t9n/FeatureTable_vi.json +1 -1
  311. package/assets/esri/widgets/FeatureTable/t9n/FeatureTable_zh-CN.json +1 -1
  312. package/assets/esri/widgets/FeatureTable/t9n/FeatureTable_zh-HK.json +1 -1
  313. package/assets/esri/widgets/FeatureTable/t9n/FeatureTable_zh-TW.json +1 -1
  314. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_ar.json +1 -1
  315. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_bg.json +1 -1
  316. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_bs.json +1 -1
  317. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_ca.json +1 -1
  318. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_cs.json +1 -1
  319. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_da.json +1 -1
  320. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_de.json +1 -1
  321. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_el.json +1 -1
  322. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_es.json +1 -1
  323. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_et.json +1 -1
  324. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_fi.json +1 -1
  325. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_fr.json +1 -1
  326. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_he.json +1 -1
  327. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_hr.json +1 -1
  328. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_hu.json +1 -1
  329. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_id.json +1 -1
  330. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_it.json +1 -1
  331. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_ja.json +1 -1
  332. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_ko.json +1 -1
  333. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_lt.json +1 -1
  334. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_lv.json +1 -1
  335. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_nl.json +1 -1
  336. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_no.json +1 -1
  337. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_pl.json +1 -1
  338. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_pt-BR.json +1 -1
  339. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_pt-PT.json +1 -1
  340. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_ro.json +1 -1
  341. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_ru.json +1 -1
  342. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_sk.json +1 -1
  343. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_sl.json +1 -1
  344. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_sr.json +1 -1
  345. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_sv.json +1 -1
  346. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_th.json +1 -1
  347. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_tr.json +1 -1
  348. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_uk.json +1 -1
  349. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_vi.json +1 -1
  350. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_zh-CN.json +1 -1
  351. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_zh-HK.json +1 -1
  352. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_zh-TW.json +1 -1
  353. package/assets/esri/widgets/VideoPlayer/t9n/VideoPlayer_ar.json +1 -1
  354. package/assets/esri/widgets/VideoPlayer/t9n/VideoPlayer_bg.json +1 -1
  355. package/assets/esri/widgets/VideoPlayer/t9n/VideoPlayer_bs.json +1 -1
  356. package/assets/esri/widgets/VideoPlayer/t9n/VideoPlayer_ca.json +1 -1
  357. package/assets/esri/widgets/VideoPlayer/t9n/VideoPlayer_cs.json +1 -1
  358. package/assets/esri/widgets/VideoPlayer/t9n/VideoPlayer_da.json +1 -1
  359. package/assets/esri/widgets/VideoPlayer/t9n/VideoPlayer_de.json +1 -1
  360. package/assets/esri/widgets/VideoPlayer/t9n/VideoPlayer_el.json +1 -1
  361. package/assets/esri/widgets/VideoPlayer/t9n/VideoPlayer_es.json +1 -1
  362. package/assets/esri/widgets/VideoPlayer/t9n/VideoPlayer_et.json +1 -1
  363. package/assets/esri/widgets/VideoPlayer/t9n/VideoPlayer_fi.json +1 -1
  364. package/assets/esri/widgets/VideoPlayer/t9n/VideoPlayer_fr.json +1 -1
  365. package/assets/esri/widgets/VideoPlayer/t9n/VideoPlayer_he.json +1 -1
  366. package/assets/esri/widgets/VideoPlayer/t9n/VideoPlayer_hr.json +1 -1
  367. package/assets/esri/widgets/VideoPlayer/t9n/VideoPlayer_hu.json +1 -1
  368. package/assets/esri/widgets/VideoPlayer/t9n/VideoPlayer_id.json +1 -1
  369. package/assets/esri/widgets/VideoPlayer/t9n/VideoPlayer_it.json +1 -1
  370. package/assets/esri/widgets/VideoPlayer/t9n/VideoPlayer_ja.json +1 -1
  371. package/assets/esri/widgets/VideoPlayer/t9n/VideoPlayer_ko.json +1 -1
  372. package/assets/esri/widgets/VideoPlayer/t9n/VideoPlayer_lt.json +1 -1
  373. package/assets/esri/widgets/VideoPlayer/t9n/VideoPlayer_lv.json +1 -1
  374. package/assets/esri/widgets/VideoPlayer/t9n/VideoPlayer_nl.json +1 -1
  375. package/assets/esri/widgets/VideoPlayer/t9n/VideoPlayer_no.json +1 -1
  376. package/assets/esri/widgets/VideoPlayer/t9n/VideoPlayer_pl.json +1 -1
  377. package/assets/esri/widgets/VideoPlayer/t9n/VideoPlayer_pt-BR.json +1 -1
  378. package/assets/esri/widgets/VideoPlayer/t9n/VideoPlayer_pt-PT.json +1 -1
  379. package/assets/esri/widgets/VideoPlayer/t9n/VideoPlayer_ro.json +1 -1
  380. package/assets/esri/widgets/VideoPlayer/t9n/VideoPlayer_ru.json +1 -1
  381. package/assets/esri/widgets/VideoPlayer/t9n/VideoPlayer_sk.json +1 -1
  382. package/assets/esri/widgets/VideoPlayer/t9n/VideoPlayer_sl.json +1 -1
  383. package/assets/esri/widgets/VideoPlayer/t9n/VideoPlayer_sr.json +1 -1
  384. package/assets/esri/widgets/VideoPlayer/t9n/VideoPlayer_sv.json +1 -1
  385. package/assets/esri/widgets/VideoPlayer/t9n/VideoPlayer_th.json +1 -1
  386. package/assets/esri/widgets/VideoPlayer/t9n/VideoPlayer_tr.json +1 -1
  387. package/assets/esri/widgets/VideoPlayer/t9n/VideoPlayer_uk.json +1 -1
  388. package/assets/esri/widgets/VideoPlayer/t9n/VideoPlayer_vi.json +1 -1
  389. package/assets/esri/widgets/VideoPlayer/t9n/VideoPlayer_zh-CN.json +1 -1
  390. package/assets/esri/widgets/VideoPlayer/t9n/VideoPlayer_zh-HK.json +1 -1
  391. package/assets/esri/widgets/VideoPlayer/t9n/VideoPlayer_zh-TW.json +1 -1
  392. package/chunks/ComponentShader.glsl.js +11 -11
  393. package/chunks/GaussianSplatComposition.glsl.js +1 -1
  394. package/chunks/GlobalIlluminationBlur.glsl.js +8 -8
  395. package/chunks/GlowComposition.glsl.js +1 -1
  396. package/chunks/OITBlend.glsl.js +1 -24
  397. package/chunks/OITBlendEmission.glsl.js +9 -9
  398. package/chunks/OITDimOpaque.glsl.js +3 -9
  399. package/chunks/bundle2.js +1 -1
  400. package/chunks/languageUtils.js +1 -1
  401. package/config.js +1 -1
  402. package/core/reactiveUtils.d.ts +410 -109
  403. package/core/screenUtils.js +1 -1
  404. package/editing/types.d.ts +2 -2
  405. package/form/elements/UtilityNetworkAssociationsElement.d.ts +0 -1
  406. package/geometry/support/aaBoundingRect.js +1 -1
  407. package/graphic/AnnotationFeatureGraphicOrigin.d.ts +5 -2
  408. package/graphic/AnnotationFeatureGraphicOrigin.js +1 -1
  409. package/graphic/DimensionFeatureGraphicOrigin.js +1 -1
  410. package/graphic/graphicOrigins.js +1 -1
  411. package/graphic/isAnnotationFeatureGraphicOrigin.d.ts +29 -0
  412. package/graphic/isAnnotationFeatureGraphicOrigin.js +2 -0
  413. package/graphic/isDimensionFeatureGraphicOrigin.d.ts +29 -0
  414. package/graphic/isDimensionFeatureGraphicOrigin.js +2 -0
  415. package/interfaces.d.ts +3 -3
  416. package/kernel.js +1 -1
  417. package/layers/AnnotationFeatureLayer.d.ts +73 -0
  418. package/layers/AnnotationFeatureLayer.js +1 -1
  419. package/layers/Lyr3DWasmPerSceneView.js +1 -1
  420. package/layers/ParquetLayer.js +1 -1
  421. package/layers/graphics/applyEditsUtils.js +1 -1
  422. package/layers/graphics/data/QueryEngine.js +1 -1
  423. package/layers/graphics/sources/MemorySource.js +1 -1
  424. package/layers/graphics/sources/ParquetSource.js +1 -1
  425. package/layers/graphics/sources/parquet/ParquetFileStatistics.js +1 -1
  426. package/layers/graphics/sources/support/ParquetSourceWorker.js +1 -1
  427. package/layers/graphics/sources/support/parquetIdUtils.js +1 -1
  428. package/layers/mixins/OperationalLayer.js +1 -1
  429. package/layers/support/{AnnotationSublayer.d.ts → AnnotationFeatureSublayer.d.ts} +12 -12
  430. package/layers/support/AnnotationFeatureSublayer.js +2 -0
  431. package/layers/support/ExportImageServiceParameters.js +1 -1
  432. package/layers/support/ParquetPortalItemData.js +1 -1
  433. package/layers/support/layerUtils.js +1 -1
  434. package/layers/support/layersMapping.js +1 -1
  435. package/layers/support/parquetUtils.js +1 -1
  436. package/package.json +4 -4
  437. package/popup/Feature.d.ts +57 -6
  438. package/popup/Features.d.ts +86 -7
  439. package/popup/content/UtilityNetworkAssociationsContent.d.ts +0 -1
  440. package/popup/support/UtilityNetworkAssociationType.d.ts +0 -1
  441. package/rest/print.js +1 -1
  442. package/smartMapping/renderers/location.js +1 -1
  443. package/smartMapping/renderers/predominance.js +1 -1
  444. package/smartMapping/renderers/support/regenerateUtils.js +1 -1
  445. package/smartMapping/renderers/support/rendererUtils.d.ts +3 -1
  446. package/smartMapping/renderers/support/rendererUtils.js +1 -1
  447. package/support/revision.js +1 -1
  448. package/symbols/WebStyleSymbol.js +1 -1
  449. package/symbols/support/symbolUtils.js +1 -1
  450. package/symbols/support/webStyleSymbolCache.js +2 -0
  451. package/undoredo/support/ApplySet.js +1 -1
  452. package/undoredo/support/ApplySetItem.js +1 -1
  453. package/views/2d/analysis/AreaMeasurement/AreaMeasurementTool.js +1 -1
  454. package/views/2d/engine/vectorTiles/VectorTileContainer.js +1 -1
  455. package/views/2d/engine/webgl/TextureManager.js +1 -1
  456. package/views/2d/engine/webgl/shaderGraph/techniques/animated/AAnimatedShader.js +1 -1
  457. package/views/2d/engine/webgl/shaderGraph/techniques/animated/AnimatedMarkerMeshWriter.js +1 -1
  458. package/views/2d/engine/webgl/shaderGraph/techniques/animated/attributes.js +1 -1
  459. package/views/2d/engine/webgl/shaderGraph/techniques/vectorTiles/VTLTechniqueBackground.js +1 -1
  460. package/views/2d/engine/webgl/shaders/sources/shaderRepository.js +1 -1
  461. package/views/2d/engine/webgl/util/AnnotationMatcher.js +1 -1
  462. package/views/2d/layers/features/layerAdapters/AnnotationLayerAdapter.js +1 -1
  463. package/views/2d/layers/support/annodime/annotationGraphic.js +1 -1
  464. package/views/2d/layers/support/annodime/cimAnnotations.js +1 -1
  465. package/views/2d/layers/support/annodime/utils.js +1 -1
  466. package/views/2d/support/hitTestUtils.js +1 -1
  467. package/views/2d/unitBezier.js +1 -1
  468. package/views/3d/interactive/visualElements/DrapedVisualElementResources.js +1 -1
  469. package/views/3d/layers/IntegratedMesh3DTilesLayerView3D.js +1 -1
  470. package/views/3d/layers/graphics/Graphics3DCore.js +1 -1
  471. package/views/3d/layers/graphics/Graphics3DIconSymbolLayer.js +1 -1
  472. package/views/3d/layers/graphics/Graphics3DSymbol.js +1 -1
  473. package/views/3d/layers/graphics/SymbolComplexity.js +1 -1
  474. package/views/3d/layers/graphics/defaultSymbolComplexity.js +1 -1
  475. package/views/3d/support/GaussianSplatSortWorker.js +1 -1
  476. package/views/3d/support/GaussianSplatWorkerHandle.js +1 -1
  477. package/views/3d/support/QualityProfile.js +1 -1
  478. package/views/3d/support/gaussianSplatting/GaussianSplatDataStore.js +1 -1
  479. package/views/3d/support/gaussianSplatting/GaussianSplatOrderTexture.js +1 -1
  480. package/views/3d/support/gaussianSplatting/GaussianSplatTextureAtlas.js +1 -1
  481. package/views/3d/webgl-engine/collections/Component/Material/ComponentShader.glsl.js +1 -1
  482. package/views/3d/webgl-engine/collections/Component/Material/ComponentTechnique.js +1 -1
  483. package/views/3d/webgl-engine/core/shaderLibrary/ShaderOutput.js +1 -1
  484. package/views/3d/webgl-engine/core/shaderLibrary/attributes/PathEvaluate.glsl.js +14 -6
  485. package/views/3d/webgl-engine/core/shaderLibrary/attributes/PathVertexPosition.glsl.js +2 -1
  486. package/views/3d/webgl-engine/core/shaderLibrary/shading/Gamma.glsl.js +2 -2
  487. package/views/3d/webgl-engine/core/shaderLibrary/util/EmissionDimming.glsl.js +1 -1
  488. package/views/3d/webgl-engine/core/shaderLibrary/util/GaussianSplatTextureFetch.glsl.js +6 -8
  489. package/views/3d/webgl-engine/core/shaderTechnique/ShaderTechniqueRepository.js +1 -1
  490. package/views/3d/webgl-engine/effects/fog/FogTechniqueConfiguration.js +1 -1
  491. package/views/3d/webgl-engine/effects/globalIllumination/GlobalIlluminationBlur.glsl.js +1 -1
  492. package/views/3d/webgl-engine/effects/glow/Glow.js +1 -1
  493. package/views/3d/webgl-engine/effects/glow/GlowBlurTechniqueConfiguration.js +1 -1
  494. package/views/3d/webgl-engine/effects/glow/GlowCompositionTechniqueConfiguration.js +1 -1
  495. package/views/3d/webgl-engine/effects/smaa/SMAA.js +1 -1
  496. package/views/3d/webgl-engine/effects/transparency/OITBlend.glsl.js +1 -1
  497. package/views/3d/webgl-engine/effects/transparency/OITBlend.js +1 -1
  498. package/views/3d/webgl-engine/effects/transparency/OITBlendEmission.glsl.js +1 -1
  499. package/views/3d/webgl-engine/effects/transparency/OITBlendEmissionTechnique.js +1 -1
  500. package/views/3d/webgl-engine/effects/transparency/OITBlendFragmentTechniqueConfiguration.js +2 -0
  501. package/views/3d/webgl-engine/effects/transparency/OITBlendTechnique.js +1 -1
  502. package/views/3d/webgl-engine/effects/transparency/OITBlendTechniqueConfiguration.js +1 -1
  503. package/views/3d/webgl-engine/effects/transparency/OITDimOpaque.glsl.js +1 -1
  504. package/views/3d/webgl-engine/effects/transparency/OITDimOpaqueTechnique.js +1 -1
  505. package/views/3d/webgl-engine/effects/transparency/oitBlendFragment.glsl.js +2 -0
  506. package/views/3d/webgl-engine/lib/Compositor.js +1 -1
  507. package/views/3d/webgl-engine/lib/GaussianSplatRenderNode.js +1 -1
  508. package/views/3d/webgl-engine/lib/Material.js +1 -1
  509. package/views/3d/webgl-engine/lib/OrderIndependentTransparency.js +1 -1
  510. package/views/3d/webgl-engine/lib/PathEvaluator.js +1 -1
  511. package/views/3d/webgl-engine/lib/Renderer.js +1 -1
  512. package/views/3d/webgl-engine/lib/lodRendering/LodComponentData.js +1 -1
  513. package/views/3d/webgl-engine/lib/lodRendering/LodLevel.js +1 -1
  514. package/views/3d/webgl-engine/lib/lodRendering/LodRenderer.js +1 -1
  515. package/views/3d/webgl-engine/materials/ColorMaterial.js +1 -1
  516. package/views/3d/webgl-engine/materials/DefaultMaterial.js +1 -1
  517. package/views/3d/webgl-engine/materials/PathMaterial.js +1 -1
  518. package/views/3d/webgl-engine/materials/PathTechnique.js +1 -1
  519. package/views/3d/webgl-engine/materials/PatternMaterial.js +1 -1
  520. package/views/3d/webgl-engine/materials/PolygonOffset.js +1 -1
  521. package/views/3d/webgl-engine/materials/RibbonLineMaterial.js +1 -1
  522. package/views/3d/webgl-engine/materials/renderers/MergedRenderer.js +1 -1
  523. package/views/3d/webgl-engine/shaders/GaussianSplatCompositionTechniqueConfiguration.js +1 -1
  524. package/views/3d/webgl-engine/shaders/HUDMaterialTechnique.js +1 -1
  525. package/views/3d/webgl-engine/shaders/OutputColorHighlightOLID.glsl.js +9 -10
  526. package/views/3d/webgl-engine/shaders/alphaCutoff.glsl.js +1 -1
  527. package/views/3d/webgl-engine/shaders/ditherNoise.glsl.js +1 -1
  528. package/views/3d/webgl-engine/shaders/oitResolution.glsl.js +1 -1
  529. package/views/LinkChartView.d.ts +3 -1
  530. package/views/View2D.d.ts +5 -4
  531. package/views/draw/support/editingSessionUtils.js +1 -1
  532. package/webdoc/support/writeUtils.js +1 -1
  533. package/webscene/support/AlphaCutoff.js +1 -1
  534. package/widgets/BatchAttributeForm/BatchAttributeFormViewModel.js +1 -1
  535. package/widgets/BatchAttributeForm/attachmentUtils.d.ts +9 -0
  536. package/widgets/BatchAttributeForm/attachmentUtils.js +1 -1
  537. package/widgets/BatchAttributeForm/css.js +1 -1
  538. package/widgets/BatchAttributeForm/inputs/AttachmentElementInput.d.ts +2 -2
  539. package/widgets/BatchAttributeForm/inputs/AttachmentElementInput.js +1 -1
  540. package/widgets/BatchAttributeForm/inputs/FieldInput.js +1 -1
  541. package/widgets/BatchAttributeForm/inputs/InputBase.js +1 -1
  542. package/widgets/BatchAttributeForm/inputs/RelationshipElementInput.js +1 -1
  543. package/widgets/BatchAttributeForm/inputs/support/attachmentValidationCriteriaState.d.ts +1 -1
  544. package/widgets/BatchAttributeForm/templates/support/createBatchFormTemplate.js +1 -1
  545. package/widgets/BatchAttributeForm/types.d.ts +91 -5
  546. package/widgets/BatchAttributeForm.js +1 -1
  547. package/widgets/Editor/CreateFeaturesWorkflow.js +1 -1
  548. package/widgets/Editor/Edits.js +1 -1
  549. package/widgets/Editor/MergeFeaturesWorkflow.js +1 -1
  550. package/widgets/Editor/SplitFeatureWorkflow.js +1 -1
  551. package/widgets/Editor/UpdateFeatureWorkflow.js +1 -1
  552. package/widgets/Editor/UpdateFeaturesWorkflow.js +1 -1
  553. package/widgets/Editor/support/SketchController.js +1 -1
  554. package/widgets/Editor/workflowUtils.js +1 -1
  555. package/widgets/Editor.js +1 -1
  556. package/widgets/Feature/FeatureViewModel.d.ts +0 -1
  557. package/widgets/FeatureForm/UtilityNetworkAssociationInput.d.ts +0 -1
  558. package/widgets/Features/FeaturesViewModel.d.ts +0 -1
  559. package/widgets/Legend/support/ActiveLayerInfo.js +1 -1
  560. package/widgets/OrientedImageryViewer/OrientedImageryViewerViewModel.js +1 -1
  561. package/widgets/OrientedImageryViewer.js +1 -1
  562. package/widgets/Print/PrintViewModel.d.ts +11 -1
  563. package/widgets/Print/PrintViewModel.js +1 -1
  564. package/widgets/Sketch/SketchViewModel.d.ts +10 -1
  565. package/widgets/Sketch/SketchViewModel.js +1 -1
  566. package/assets/components/assets/icon/orientedImageryFullSuperimpose16.json +0 -1
  567. package/assets/components/assets/icon/orientedImageryFullSuperimpose24.json +0 -1
  568. package/assets/components/assets/icon/orientedImageryFullSuperimpose32.json +0 -1
  569. package/assets/components/assets/icon/orientedImageryHalfSuperimpose16.json +0 -1
  570. package/assets/components/assets/icon/orientedImageryHalfSuperimpose24.json +0 -1
  571. package/assets/components/assets/icon/orientedImageryHalfSuperimpose32.json +0 -1
  572. package/assets/components/assets/icon/orientedImagerySceneOnly16.json +0 -1
  573. package/assets/components/assets/icon/orientedImagerySceneOnly24.json +0 -1
  574. package/assets/components/assets/icon/orientedImagerySceneOnly32.json +0 -1
  575. package/assets/components/assets/icon/parquetFeatureLayer16.json +0 -1
  576. package/assets/components/assets/icon/parquetFeatureLayer24.json +0 -1
  577. package/assets/components/assets/icon/parquetFeatureLayer32.json +0 -1
  578. package/assets/esri/core/workers/chunks/02a94efda13d9b683272.js +0 -1
  579. package/assets/esri/core/workers/chunks/0803f022b5191171bc9c.js +0 -1
  580. package/assets/esri/core/workers/chunks/0acf8df4e9556d05136c.js +0 -1
  581. package/assets/esri/core/workers/chunks/0ded58ccb83f624f1460.js +0 -1
  582. package/assets/esri/core/workers/chunks/152f1c08197955224ad3.js +0 -1
  583. package/assets/esri/core/workers/chunks/19dcae83be0fc0aced02.js +0 -1
  584. package/assets/esri/core/workers/chunks/1a95370ddc22729ab3c6.js +0 -1
  585. package/assets/esri/core/workers/chunks/23d50c4478f40a7d62bf.js +0 -1
  586. package/assets/esri/core/workers/chunks/2623cd08487fdc9a94f1.js +0 -1
  587. package/assets/esri/core/workers/chunks/2b00229c238aae70b948.js +0 -1
  588. package/assets/esri/core/workers/chunks/2b814bb51704a5b4fdc2.js +0 -30
  589. package/assets/esri/core/workers/chunks/30f1909c5ef1835b8507.js +0 -1
  590. package/assets/esri/core/workers/chunks/3172d7fc23787a287191.js +0 -1
  591. package/assets/esri/core/workers/chunks/39596715e84d0da2f803.js +0 -30
  592. package/assets/esri/core/workers/chunks/3bdef4b9f86711ae48b3.js +0 -2
  593. package/assets/esri/core/workers/chunks/426b8e1e2eef2460851d.js +0 -1
  594. package/assets/esri/core/workers/chunks/44e52fe98ffafe6a2807.js +0 -1
  595. package/assets/esri/core/workers/chunks/4d09ef7c57ab7f9782fe.js +0 -1
  596. package/assets/esri/core/workers/chunks/5022413f5a41b5d435ea.js +0 -1
  597. package/assets/esri/core/workers/chunks/52afd43bbe23e358efb5.js +0 -1
  598. package/assets/esri/core/workers/chunks/59a60fa09b19a0b2f473.js +0 -1
  599. package/assets/esri/core/workers/chunks/59dafa1e1340ea4043e6.js +0 -1
  600. package/assets/esri/core/workers/chunks/6284eafe2c3b45a0e72a.js +0 -1
  601. package/assets/esri/core/workers/chunks/65f02eca694cc1c9f5a7.js +0 -1
  602. package/assets/esri/core/workers/chunks/6cab67fc7044ee9b863b.js +0 -1
  603. package/assets/esri/core/workers/chunks/6d616b66fb32904b55a1.js +0 -1
  604. package/assets/esri/core/workers/chunks/6d696beddcc5fbed5875.js +0 -1
  605. package/assets/esri/core/workers/chunks/6f125b4ed06c0022dee6.js +0 -1
  606. package/assets/esri/core/workers/chunks/6f4825c3ef1fe202ab82.js +0 -1
  607. package/assets/esri/core/workers/chunks/6f7193b9ff5942c0d354.js +0 -1
  608. package/assets/esri/core/workers/chunks/70737052bab29fcaa120.js +0 -1
  609. package/assets/esri/core/workers/chunks/72d67cc3a382e83bf1a2.js +0 -1
  610. package/assets/esri/core/workers/chunks/7cadb872b9ca96eedca5.js +0 -1
  611. package/assets/esri/core/workers/chunks/8486ef6c7076baf0348b.js +0 -1
  612. package/assets/esri/core/workers/chunks/851705cf276eae8d4d37.js +0 -1
  613. package/assets/esri/core/workers/chunks/882ee7ed8a3a0215f9b9.js +0 -1
  614. package/assets/esri/core/workers/chunks/8c443c52c846a096a250.js +0 -1
  615. package/assets/esri/core/workers/chunks/972ba277a27704d28357.js +0 -1
  616. package/assets/esri/core/workers/chunks/97d2bdbea39cbcf8fd0f.js +0 -1
  617. package/assets/esri/core/workers/chunks/9d27cc631bab8aa7479e.js +0 -1
  618. package/assets/esri/core/workers/chunks/9d5f7573bfe3b051daf1.js +0 -1
  619. package/assets/esri/core/workers/chunks/a0c00c6fe60db49b3ab9.js +0 -1
  620. package/assets/esri/core/workers/chunks/a2d7e8147dee6642029a.js +0 -2
  621. package/assets/esri/core/workers/chunks/a643a4751bbf4430bde2.js +0 -262
  622. package/assets/esri/core/workers/chunks/a9003fe5975cd554ba24.js +0 -1
  623. package/assets/esri/core/workers/chunks/aa02458ceb839b555ee1.js +0 -1
  624. package/assets/esri/core/workers/chunks/ab62724b80b3c478a597.js +0 -1
  625. package/assets/esri/core/workers/chunks/b44cf254585210578eab.js +0 -1
  626. package/assets/esri/core/workers/chunks/b9935cc8e2bd4045058a.js +0 -1
  627. package/assets/esri/core/workers/chunks/c216cd5d6b5d4fe4bab3.js +0 -2
  628. package/assets/esri/core/workers/chunks/c2a65de34f6a6c89c652.js +0 -1
  629. package/assets/esri/core/workers/chunks/c32430e99e8cd6e5f688.js +0 -1
  630. package/assets/esri/core/workers/chunks/c6d0b4875b6b8d6bc25a.js +0 -1
  631. package/assets/esri/core/workers/chunks/c80fc1b3048e8d58a1f8.js +0 -1
  632. package/assets/esri/core/workers/chunks/ca8c08659d82019d775d.js +0 -1
  633. package/assets/esri/core/workers/chunks/cf8ce21dc649021e97f6.js +0 -1
  634. package/assets/esri/core/workers/chunks/d1ccc5f2d8892328ab01.js +0 -2
  635. package/assets/esri/core/workers/chunks/d41caf20c26f80385265.js +0 -1
  636. package/assets/esri/core/workers/chunks/d52864823067e57a719a.js +0 -1
  637. package/assets/esri/core/workers/chunks/d5c35a75fd4c41def420.js +0 -1
  638. package/assets/esri/core/workers/chunks/d9d0a07245ee5117d2a0.js +0 -1
  639. package/assets/esri/core/workers/chunks/dd920a6f6422fa213eba.js +0 -1
  640. package/assets/esri/core/workers/chunks/df18b0a653b328d8d052.js +0 -1
  641. package/assets/esri/core/workers/chunks/e1505ec80b068011bdc5.js +0 -1
  642. package/assets/esri/core/workers/chunks/e16710ef178d64606a55.js +0 -1
  643. package/assets/esri/core/workers/chunks/e33d2ede6c9f1527d51b.js +0 -1
  644. package/assets/esri/core/workers/chunks/e5ef06c205d34df1e4bc.js +0 -1
  645. package/assets/esri/core/workers/chunks/e912b515704e20313e53.js +0 -1
  646. package/assets/esri/core/workers/chunks/eabeaab5c4810f999a4d.js +0 -1
  647. package/assets/esri/core/workers/chunks/ec723f8777b935c5e81a.js +0 -1
  648. package/assets/esri/core/workers/chunks/f590db684d88e72bd79b.js +0 -1
  649. package/assets/esri/core/workers/chunks/f622ae3887c85535e8ab.js +0 -30
  650. package/assets/esri/core/workers/chunks/fa3faec65882c5b6f1a0.js +0 -1
  651. package/layers/support/AnnotationSublayer.js +0 -2
  652. package/views/3d/webgl-engine/effects/transparency/OITBlendEmissionTechniqueConfiguration.js +0 -2
  653. package/views/3d/webgl-engine/effects/transparency/OITDimOpaqueTechniqueConfiguration.js +0 -2
  654. /package/assets/esri/core/workers/chunks/{3bdef4b9f86711ae48b3.js.LICENSE.txt → 0418b5c9d06f3585c035.js.LICENSE.txt} +0 -0
  655. /package/assets/esri/core/workers/chunks/{c216cd5d6b5d4fe4bab3.js.LICENSE.txt → 0e94786db78770868c63.js.LICENSE.txt} +0 -0
  656. /package/assets/esri/core/workers/chunks/{d1ccc5f2d8892328ab01.js.LICENSE.txt → 317bf48a4d513a9a2ff3.js.LICENSE.txt} +0 -0
  657. /package/assets/esri/core/workers/chunks/{8244b74e9c3a30d8d2f6.js.LICENSE.txt → 7361ca78a605eda41a2f.js.LICENSE.txt} +0 -0
  658. /package/assets/esri/core/workers/chunks/{a2d7e8147dee6642029a.js.LICENSE.txt → fc4641f3c93f43c8c193.js.LICENSE.txt} +0 -0
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */
2
- import{result as e,createTask as t}from"../../../../core/asyncUtils.js";import r from"../../../../core/Error.js";import{clone as i}from"../../../../core/lang.js";import{abortMaybe as s,releaseMaybe as a}from"../../../../core/maybe.js";import{throwIfAbortError as o,throwIfAborted as n}from"../../../../core/promiseUtils.js";import{pt2px as l,px2pt as c}from"../../../../core/screenUtils.js";import{numericHash as h}from"../../../../core/string.js";import{dataComponents as u}from"../../../../core/urlUtils.js";import{fromValues as m,fromArray as d,create as p,ONES as _}from"../../../../core/libs/gl-matrix-2/factories/vec2f64.js";import{ZEROS as f,fromValues as y,create as g}from"../../../../core/libs/gl-matrix-2/factories/vec3f64.js";import{ONES as x,ZEROS as v}from"../../../../core/libs/gl-matrix-2/factories/vec4f64.js";import{projectPointToVector as b}from"../../../../geometry/projection/projectPointToVector.js";import{containsPoint as S}from"../../../../geometry/support/aaBoundingBox.js";import P from"../../../../layers/support/FieldsIndex.js";import{createRendererExpression as z}from"../../../../support/ArcadeExpression.js";import{CIMSymbolHelper as w}from"../../../../symbols/cim/CIMSymbolHelper.js";import{evaluateValueOrFunction as C}from"../../../../symbols/cim/utils.js";import{scaleCIMSymbol as O}from"../../../../symbols/support/cimSymbolUtils.js";import{defaultIconPrimitive as R}from"../../../../symbols/support/primitives.js";import M from"../../../../symbols/support/Symbol3DAnchorPosition2D.js";import{getIconHref as I}from"../../../../symbols/support/utils.js";import{transparentUnit as j}from"./constants.js";import{perObjectElevationAligner as E}from"./ElevationAligners.js";import{elevationModeChangeUpdateType as U,needsElevationUpdates2D as F}from"./elevationAlignmentUtils.js";import{Graphics3DDrapedGraphicLayer as T}from"./Graphics3DDrapedGraphicLayer.js";import{Graphics3DObject3DGraphicLayer as V}from"./Graphics3DObject3DGraphicLayer.js";import{Graphics3DSymbolLayer as D}from"./Graphics3DSymbolLayer.js";import{validateSymbolLayerSize as G}from"./graphicUtils.js";import{namedAnchorToHUDMaterialAnchorPos as A}from"./placementUtils.js";import{placePointOnGeometry as L,updateStageObjectGeometry as H,getLocalOriginForPoint as k,extendPointGraphicElevationContext as B,createStageObject as N}from"./pointUtils.js";import{hasTransparencyModeSymbol as $}from"./transparencyUtils.js";import{initFastSymbolUpdatesState as q,updateFastSymbolUpdatesState as J,evaluateModelTransformScale as Z,ConvertOptions as W}from"../support/FastSymbolUpdates.js";import{createTexture as K,requiresHalfTexelOffset as Q,defaultBoundingBox as X,defaultSymbolSizeRatio as Y,defaultTexSize as ee}from"../../support/engineContent/sdfPrimitives.js";import{drapedZ as te}from"../../terrain/OverlayRenderer.js";import{VerticalOffsetParameters as re}from"../../webgl-engine/core/shaderLibrary/attributes/VerticalOffset.glsl.js";import{createPointGeometry as ie}from"../../webgl-engine/lib/GeometryUtil.js";import{ManagedTexture as se}from"../../webgl-engine/lib/ManagedTexture.js";import{RenderGeometry as ae}from"../../webgl-engine/lib/RenderGeometry.js";import{HUDMaterial as oe}from"../../webgl-engine/materials/HUDMaterial.js";var ne;const le=y(0,0,1),ce=16,he=1.5,ue=[ee*Y,ee*Y];class me extends D{static{ne=$}static{this.PRIMITIVE_SIZE=ue}getCachedSize(){return{size:this._getIconSize()}}static{this.elevationModeChangeTypes={definedChanged:1,staysOnTheGround:0,onTheGroundChanged:2}}constructor(e,t,r,i){super(e,t,r,i,xe(t)),this._cimData=null,this._overrideHelperClass=null,this._arcadeInfo=null,this._cimSymbolMaterials=new Map,this._cimSymbolTextures=new Map,this._cimMaterialParametersInfo=null,this._cimScaleFactorOrFunction=null,this._size=[1,1],this._symbolTextureRatio=1,this._outlineSize=0,this._textureHandle=null,this._patchTask=null,this._elevationOptions={supportsOffsetAdjustment:!0,supportsOnTheGround:!0},this[ne]=!0}async doLoad(e){this._validateOrThrow();const t=this._prepareMaterialParameters(),r=this._getPrimitive();if(null!=r)this._prepareResourcesPrimitive(t,r);else{const r=I(this.symbolLayer),i=_e(r);null!=i?await this._prepareResourcesCIM(t,JSON.parse(i),e):await this._prepareResourcesHref(t,r,e)}}_validateOrThrow(){if(this._drivenProperties.size)return;const e=G(this._getIconSize());if(e)throw new r("graphics3diconsymbollayer:invalid-size",e)}_getIconSize(){const e=this.symbolLayer,t=Math.round(null!=e.size?l(e.size):ce);return this._drivenProperties.size?Math.max(t,64):t}_generateTextureCIM(e,t){const r=this._overrideHelperClass;let s=this._cimData;if(r&&s&&s.symbol||this.logger.error("Can't create texture, CIM data is undefined"),s.primitiveOverrides){s=i(s);const a=s.primitiveOverrides;r.evaluateOverrides(a,e,this._arcadeInfo.geometryType,null,null,t.layer.fieldsIndex),r.applyOverrides(s.symbol,a)}const a=h(JSON.stringify(s));let o=this._cimSymbolTextures.get(a);if(o)return o;const n=this._context.sharedResources.cimSymbolRasterizer,l=this._context.renderer&&"dictionary"===this._context.renderer.type?this._context.renderer.fieldMap:null;l&&r.applyDictionaryTextOverrides(s.symbol,e,l,null);const c=null!=this._cimScaleFactorOrFunction?C(this._cimScaleFactorOrFunction,e):1;1!==c&&s.symbol&&O(s.symbol,c,!0);const u=w.getEnvelope(s,null,n.resourceManager);if(u?.width&&u.height){const e=u.x+u.width/2,t=u.y+u.height/2,r=n.rasterize({type:"cim",data:s},u.width,u.height,e,t,1,"esriGeometryPoint",0,null,this._context.graphicsCoreOwner.view.state.rasterPixelRatio),i=new M({x:-u.x/u.width-.5,y:(u.height+u.y)/u.height-.5});this._cimMaterialParametersInfo.anchorPosition=fe("relative",i),o=new se(r,{width:r?.width??1,height:r?.height??1,reloadable:!0})}else o=new se(new ImageData(1,1),{width:1,height:1,reloadable:!0});return this._cimSymbolTextures.set(a,o),this._context.stage.addTexture(o),o}_prepareMaterialParameters(){const{symbolLayer:e,symbol:t,_context:r,_drivenProperties:i,view:s}=this,a=this.symbolLayer.occludedVisibility?.mode??"hidden";return{anchorPosition:fe(e.anchor,e.anchorPosition),rotation:e.angle,hasRotation:0!==e.angle||i.rotation,hasVertexRotation:i.rotation,occludedFragmentOpacity:"hidden"!==a?s.state.ensureOccludedFragmentOpacity():void 0,hasSlicePlane:r.slicePlaneEnabled,verticalOffset:de(t)?new re(t.verticalOffset):void 0,screenSizePerspective:r.screenSizePerspectiveEnabled?s.screenSizePerspective.parameters:void 0}}_prepareResourcesPrimitive(e,t){const r=this._getOutlineSize();if(pe(t)&&0===r)throw new Error("Nothing to render");if(this._outlineSize=r,e.color=this._getFillColor(),e.outlineColor=this._getOutlineColor(),e.outlineSize=this._outlineSize,null!=this._context.sharedResources.textures){const r=this._context.sharedResources.textures.fromData(`${t}-icon`,()=>K(t));this._textureHandle=r,e.textureId=r.managedTexture.id}e.textureIsSignedDistanceField=!0,e.sampleSignedDistanceFieldTexelCenter=Q(t),e.distanceFieldBoundingBox=X;const i=this._getIconSize();this._size=[i,i],this._symbolTextureRatio=1/Y,e.size=m(i*this._symbolTextureRatio,i*this._symbolTextureRatio),this._createMaterial(e)}async _prepareResourcesHref(t,i,s){this._outlineSize=this._getOutlineSize(),t.color=this._getFillColor(),t.outlineColor=this._getOutlineColor(),t.outlineSize=this._outlineSize,t.textureIsSignedDistanceField=!1;const a=this._getIconSize(),n=a*this._context.graphicsCoreOwner.view.state.rasterPixelRatio;if(null!=this._context.sharedResources.textures){const l=await e(this._context.sharedResources.textures.fromUrl(i,n,{signal:s}));if(!1===l.ok){o(l.error);throw new r("graphics3diconsymbollayer:request-failed",`Failed to load (Request for icon resource failed: ${i})`)}this._textureHandle=l.value;const c=l.value.managedTexture;this._size=ye(c,a),t.size=d(this._size),t.textureId=c.id}this._createMaterial(t)}async _prepareResourcesCIM(e,t,r){const{OverrideHelper:i}=await import("../../../../symbols/cim/OverrideHelper.js");if(this._overrideHelperClass=i,this._cimData=t,!this._context.sharedResources.cimSymbolRasterizer){const e=(await import("../../../../symbols/cim/CIMSymbolRasterizer.js")).CIMSymbolRasterizer;n(r),this._context.sharedResources.cimSymbolRasterizer??=new e(this._context.renderCoordsHelper.spatialReference)}const s=this._context.sharedResources.cimSymbolRasterizer,a=t,o=a?.symbol,l=[w.normalizeSymbolAndFetchResources(o,s.resourceManager,r)],c=this._context.layer.fields?this._context.layer.fields.map(e=>e.toJSON()):[],h=this._context.renderCoordsHelper.spatialReference;if(this._arcadeInfo={spatialReference:h,fields:c,geometryType:"esriGeometryPoint"},a?.primitiveOverrides&&l.push(i.createRenderExpressions(a.primitiveOverrides,this._arcadeInfo)),l.length>0&&(await Promise.all(l),n(r)),this._context.renderer&&"dictionary"===this._context.renderer.type&&this._context.renderer.scaleExpression){const e=this._context.renderer;if(e.scaleExpression){const t=e.scaleExpression,r=await z(t,this._context.layer.spatialReference),{default:i}=await import("../../../2d/arcade/callExpressionWithFeature.js"),s=new P(c);this._cimScaleFactorOrFunction=(e,t,a)=>{const o=i(r,e,{$view:a},"esriGeometryPoint",s,t);return null!==o?o:1}}}n(r),this._cimMaterialParametersInfo=e,this._cimMaterialParametersInfo.color=this._getFillColor(),this._cimMaterialParametersInfo.outlineColor=[0,0,0,0],this._cimMaterialParametersInfo.outlineSize=0,this._cimMaterialParametersInfo.textureIsSignedDistanceField=!1}_getPrimitive(){return ge(this.symbolLayer)}_getOutlineSize(){let e=0;const t=this.symbolLayer;if(null!=t.outline?.size)return Math.max(l(t.outline.size),0);return e=pe(this._getPrimitive())?he:0,Math.max(e,0)}_getOutlineColor(){const e=this._getLayerOpacity(),t=this.symbolLayer,r=t?.outline?.color;if(null!=r){const t=r.toUnitRGB(),i=r.a*e;return[t[0],t[1],t[2],i]}return[0,0,0,0]}_getFillColor(){if(pe(this._getPrimitive()))return j;const e=null==this._getPrimitive(),t=this._materialColor;return this._getCombinedOpacityAndColor(t,{hasIntrinsicColor:e})}get _materialColor(){return this.symbolLayer.material?.color}get _fastVisualVariableFallbackColor(){const e=this._materialColor;if(null==e){return null==this._getPrimitive()?x:v}return e.toUnitRGBA()}_getFallbackSize(){const e=this._getIconSize(),{symbolLayer:{size:t}}=this;return(null!=t?Math.round(l(t)):ce)/e}_createMaterial(e){const t=this._context.spherical;if(this._cimData){this._fastUpdates=null;let r=e.textureId?this._cimSymbolMaterials.get(e.textureId):null;return r||(r=new oe(e,t),this._cimSymbolMaterials.set(e.textureId??0,r)),r}return this._fastUpdates=q(this._context.renderer,this._fastVisualVariableConvertOptions()),this._fastUpdates&&(e={...e,...this._fastUpdates.materialParameters}),e.hasVertexColor=this._drivenProperties.color&&!this._fastUpdates?.visualVariables.color||this._drivenProperties.opacity&&!this._fastUpdates?.visualVariables.opacity,e.hasVertexSize=this._drivenProperties.size&&!this._fastUpdates?.visualVariables.size,e.focusAreaStyle=null,this._materials[0]=new oe(e,t),this._materials[1]=new oe(e,t,!0),e.focusAreaStyle=this._context.focusAreaStyle,this._materials[2]=new oe(e,t),this._materials[3]=new oe(e,t,!0),this._materials[0]}_setDrapingDependentMaterialParameters(){this.draped&&(this._forEachMaterial(e=>{e.setParameters({verticalOffset:null,screenSizePerspective:null,hasSlicePlane:!1,shaderPolygonOffset:0,draped:this.draped})}),this.layerOpacityChanged())}destroy(){super.destroy(),this._patchTask=s(this._patchTask),this._materials.length=0,this._cimSymbolMaterials.clear(),this._cimSymbolTextures.forEach(e=>this._context.stage.removeTexture(e)),this._cimSymbolTextures.clear(),this._textureHandle=a(this._textureHandle)}_getScaleFactor({size:e},t){if(!this._drivenProperties.size)return 1;if(null==e)return this._getFallbackSize();const[r,i,s]=e.output;return"symbol-value"===r?1:"number"==typeof r&&isFinite(r)?l(r)/t:"number"==typeof s&&isFinite(s)?l(s)/t:1}_getDrivenRotation(e){return this._drivenProperties.rotation?e.heading?.output??0:null}createGraphics3DGraphic(e){const t=e.graphic;if(!this._validateGeometry(t.geometry))return null;const r=L(t.geometry);if(null==r)return this.logger.warn(`unsupported geometry type for text symbol: ${t.geometry.type}`),null;let i;const s=this.view.focusAreasView?.containsGeometry(r)??!0;if(this._cimData){if(!this._cimData.symbol)return null;const r=this._context.graphicsCoreOwner.view.state.rasterPixelRatio,a=this._generateTextureCIM(t,e),o={textureId:a.id,focusAreaStyle:s?null:this._context.focusAreaStyle,size:m(a.parameters.width/r,a.parameters.height/r),...this._cimMaterialParametersInfo};i=this._createMaterial(o)}else i=this._materials[s?0:2];if(null==r)return this.logger.warn(`unsupported geometry type for icon symbol: ${t.geometry.type}`),null;const a=null==this._getPrimitive(),o=e.renderingInfo,n=this._hasDrivenColorOrOpacity?this._getDrivenUInt8Color(o,this._materialColor,a):null,l=this._getDrivenRotation(o);let c=null;if(!this._fastUpdates?.visualVariables.size){const e=this._size,t=e[0]>e[1]?e[0]:e[1];c=this._getScaleFactor(o,t)}const h=null!=c?m(c,c):null,u=this.createElevationContextForGraphic(t);return this.ensureDrapedStatus("on-the-ground"===u.mode)&&this._setDrapingDependentMaterialParameters(),this.draped?this._createAsOverlay(o,r,i,n,l,h,t.uid):this._createAs3DShape(o,r,i,n,l,h,u,t.uid)}terrainTransparencyChanged(){return this.draped}layerOpacityChanged(){const e=this._getFillColor(),t=this._getOutlineColor();this._forEachMaterial(r=>{r.setParameters({color:e}),r.setParameters({outlineColor:t})})}layerScreenSizePerspectiveChanged(){const e=this._context.screenSizePerspectiveEnabled&&!this.draped?this.view.screenSizePerspective.parameters:null;this._forEachMaterial(t=>{t.setParameters({screenSizePerspective:e})})}updateTransparentMode(e,t){const r=e.stageObject.geometries[0]?.material,i=this._materials.indexOf(r)<2,s=t?i?1:3:i?0:2,a=this._materials[s];a&&a!==r&&e.updateMaterial(a)}updateGeometry(e,t){const r=e.geometry;if(this.draped||!r||!this._validateGeometry(r))return!1;const{elevationContext:i,stageObject:s}=t;if(i.mode!==this.getGeometryElevationMode(r))return!1;const a=L(r);if(!a)return!1;i.updateFeatureExpressionFeature(e,this._context.layer);const o=H(s,this._context,a,i);if(null==o)return!1;const n=k(this._context,a);return s.geometries[0].localOrigin===n&&(t.alignedSampledElevation=o,B(t,a,this._context.elevationProvider),!0)}layerElevationInfoChanged(e,t,r){const i=this._elevationContext.mode,s=U(me.elevationModeChangeTypes,r,i);if(1!==s)return s;const a=F(i)||"absolute-height"===i;return this.updateGraphics3DGraphicElevationInfo(e,t,()=>a)}slicePlaneEnabledChanged(){return this.draped||this._forEachMaterial(e=>{e.setParameters({hasSlicePlane:this._context.slicePlaneEnabled})}),!0}physicalBasedRenderingChanged(){return!0}get pixelRatioChanged(){return null!=this._getPrimitive()}applyRendererDiff(e,t){for(const r in e.diff){if("visualVariables"!==r)return 0;if(!J(this._fastUpdates,t,this._fastVisualVariableConvertOptions()))return 0;{const e=this._fastUpdates;this._materials.forEach(t=>t?.setParameters(e.materialParameters))}}return 2}get needsUpdateFocus(){return!0}prepareSymbolLayerPatch(e){if(this._patchTask?.abort(),"partial"!==e.diff.type)return;const t=e.diff.diff;this._preparePatchResource(e,t),this._preparePatchRotation(e,t)}_preparePatchResource(i,l){if(!l.resource||"partial"!==l.resource.type)return;const c=l.resource.diff;if("complete"!==c?.href?.type)return;const h=c.href.newValue,{textures:u}=this._context.sharedResources;if(null==h||null==u||null!=_e(h))return;const m=this._getIconSize(),d=m*this._context.graphicsCoreOwner.view.state.pixelRatio;i.symbolLayerStatePatches.push(()=>{this._patchTask=s(this._patchTask),this._patchTask=t(t=>this._context.schedule(async(t,i)=>{const s=await e(u.fromUrl(h,d,{signal:i}));n(i);const l=!s.ok;if(l&&o(s.error),this._textureHandle=a(this._textureHandle),this._patchTask=null,l){this._forEachMaterial(e=>{e.visible=!1,e.setParameters({textureId:null})});const e=`Failed to load (Request for icon resource failed: ${h})`;return void this.logger.error(new r("graphics3diconsymbollayer:request-failed",e))}this._textureHandle=s.value;const c=s.value.managedTexture;this._size=ye(c,m),this._forEachMaterial(e=>{e.setParameters({textureId:c.id}),e.visible=!0})},t))}),delete c.href}_preparePatchRotation(e,t){if(!t.angle||"complete"!==t.angle.type)return;const r=t.angle.newValue??0,i=0!==r||this._drivenProperties.rotation;e.symbolLayerStatePatches.push(()=>{this._forEachMaterial(e=>e.setParameters({rotation:r,hasRotation:i}))}),delete t.angle}_defaultElevationInfoNoZ(){return ve}_createAs3DShape(e,t,r,i,s,a,o,n){const l=this.getFastUpdateAttrValues(e),c=this._context.layerViewUid,h=this._context.stage.renderView.getObjectAndLayerIdColor({graphicUid:n,layerViewUid:c}),u=ie(r,{normal:le,color:i,rotation:s,size:a,centerOffset:f,groundDistance:1,featureAttribute:l,olidColor:h}),m=N(this._context,t,u,o,n);if(null==m)return null;const d=new V(this,m.object,null,E,o);return d.setOccludedVisibilityMode(this.symbolLayer.occludedVisibility?.mode),d.hiddenIfDeconflicted=!0,d.alignedSampledElevation=m.sampledElevation,d.needsElevationUpdates=F(o.mode)||"absolute-height"===o.mode,d.getScreenSize=this._createScreenSizeGetter(a,l),d.calculateRelativeScreenBounds=e=>r.calculateRelativeScreenBounds(d.getScreenSize(),1,e),B(d,t,this._context.elevationProvider),d}_createAsOverlay(e,t,r,i,s,a,o){r.renderPriority=this._renderPriority;const n=g();b(t,n,this._context.overlaySR),n[2]=te;const l=this._context.clippingExtent;if(null!=l&&!S(l,n))return null;const c=this.getFastUpdateAttrValues(e),h=this._context.layerViewUid,u=this._context.stage.renderView.getObjectAndLayerIdColor({graphicUid:o,layerViewUid:h}),m=ie(r,{normal:le,position:n,color:i,rotation:s,size:a,featureAttribute:c,olidColor:u}),d=new ae(m,{layerViewUid:h,graphicUid:o}),p=new T(this,[d],null,this._context.drapeSourceRenderer);return p.getScreenSize=this._createScreenSizeGetter(a,c),p.calculateRelativeScreenBounds=e=>r.calculateRelativeScreenBounds(p.getScreenSize(),1,e),p}_createScreenSizeGetter(e,t){e??=_;const r=this._outlineSize+2;if(this._fastUpdates&&t){const i=e[0]*this._size[0],s=e[1]*this._size[1];return(e=p())=>{const[a,o]=Z(be,this._fastUpdates.materialParameters,t);return e[0]=a*i+r,e[1]=o*s+r,e}}const i=e[0]*this._size[0]+r,s=e[1]*this._size[1]+r;return(e=p())=>(e[0]=i,e[1]=s,e)}_fastVisualVariableConvertOptions(){const e=Math.max(this._size[0],this._size[1]),t=y(e,e,e),r=c(1),i=e*r,s=y(i,i,i),a=this._getFallbackSize();return new W({supports:{size:!0,color:!0,rotation:!0,opacity:!1},modelSize:t,symbolSize:s,unitInMeters:r,fallbackColor:this._fastVisualVariableFallbackColor,fallbackSize:y(a,a,a)})}_forEachMaterial(e){this._materials.forEach(e),this._cimSymbolMaterials.forEach(e)}test(){return{...super.test(),material:this._materials[0]}}}function de(e){return e&&"point-3d"===e.type&&e.hasVisibleVerticalOffset()}function pe(e){return null!=e&&("cross"===e||"x"===e)}function _e(e){const t=u(e);return"application/json"===t?.mediaType?t.data:void 0}function fe(e,t){return"relative"===e?m((t.x||0)+.5,.5-(t.y||0)):e in A?A[e]:A.center}function ye({parameters:e},t){const r=(e.width??1)/(e.height??1);return r>1?[t,Math.round(t/r)]:[Math.round(t*r),t]}function ge(e){return e.resource?.href?null:e.resource?.primitive??R}function xe(e){return 1===(e.material?.color?.a??0)&&null!=ge(e)}const ve={mode:"relative-to-ground",offset:0},be=g();export{me as Graphics3DIconSymbolLayer};
2
+ import{result as e,createTask as t}from"../../../../core/asyncUtils.js";import r from"../../../../core/Error.js";import{clone as i}from"../../../../core/lang.js";import{abortMaybe as s,releaseMaybe as a}from"../../../../core/maybe.js";import{throwIfAbortError as o,throwIfAborted as n}from"../../../../core/promiseUtils.js";import{pt2px as l,px2pt as c}from"../../../../core/screenUtils.js";import{numericHash as h}from"../../../../core/string.js";import{dataComponents as u}from"../../../../core/urlUtils.js";import{fromValues as m,fromArray as d,create as p,ONES as _}from"../../../../core/libs/gl-matrix-2/factories/vec2f64.js";import{ZEROS as f,fromValues as y,create as g}from"../../../../core/libs/gl-matrix-2/factories/vec3f64.js";import{ONES as x,ZEROS as v}from"../../../../core/libs/gl-matrix-2/factories/vec4f64.js";import{projectPointToVector as b}from"../../../../geometry/projection/projectPointToVector.js";import{containsPoint as S}from"../../../../geometry/support/aaBoundingBox.js";import P from"../../../../layers/support/FieldsIndex.js";import{createRendererExpression as z}from"../../../../support/ArcadeExpression.js";import{CIMSymbolHelper as w}from"../../../../symbols/cim/CIMSymbolHelper.js";import{evaluateValueOrFunction as C}from"../../../../symbols/cim/utils.js";import{scaleCIMSymbol as O}from"../../../../symbols/support/cimSymbolUtils.js";import{defaultIconPrimitive as M}from"../../../../symbols/support/primitives.js";import R from"../../../../symbols/support/Symbol3DAnchorPosition2D.js";import{getIconHref as I}from"../../../../symbols/support/utils.js";import{transparentUnit as j}from"./constants.js";import{perObjectElevationAligner as E}from"./ElevationAligners.js";import{elevationModeChangeUpdateType as F,needsElevationUpdates2D as T}from"./elevationAlignmentUtils.js";import{Graphics3DDrapedGraphicLayer as U}from"./Graphics3DDrapedGraphicLayer.js";import{Graphics3DObject3DGraphicLayer as V}from"./Graphics3DObject3DGraphicLayer.js";import{Graphics3DSymbolLayer as D}from"./Graphics3DSymbolLayer.js";import{validateSymbolLayerSize as G}from"./graphicUtils.js";import{namedAnchorToHUDMaterialAnchorPos as A}from"./placementUtils.js";import{placePointOnGeometry as L,updateStageObjectGeometry as H,getLocalOriginForPoint as k,extendPointGraphicElevationContext as B,createStageObject as N}from"./pointUtils.js";import{hasTransparencyModeSymbol as $}from"./transparencyUtils.js";import{initFastSymbolUpdatesState as q,updateFastSymbolUpdatesState as J,evaluateModelTransformScale as Z,ConvertOptions as W}from"../support/FastSymbolUpdates.js";import{createTexture as K,requiresHalfTexelOffset as Q,defaultBoundingBox as X,defaultSymbolSizeRatio as Y,defaultTexSize as ee}from"../../support/engineContent/sdfPrimitives.js";import{drapedZ as te}from"../../terrain/OverlayRenderer.js";import{VerticalOffsetParameters as re}from"../../webgl-engine/core/shaderLibrary/attributes/VerticalOffset.glsl.js";import{createPointGeometry as ie}from"../../webgl-engine/lib/GeometryUtil.js";import{ManagedTexture as se}from"../../webgl-engine/lib/ManagedTexture.js";import{RenderGeometry as ae}from"../../webgl-engine/lib/RenderGeometry.js";import{HUDMaterial as oe}from"../../webgl-engine/materials/HUDMaterial.js";var ne;const le=y(0,0,1),ce=16,he=1.5,ue=[ee*Y,ee*Y];class me extends D{static{ne=$}static{this.PRIMITIVE_SIZE=ue}getCachedSize(){return{size:this._getIconSize()}}static{this.elevationModeChangeTypes={definedChanged:1,staysOnTheGround:0,onTheGroundChanged:2}}constructor(e,t,r,i){super(e,t,r,i,xe(t)),this._cimData=null,this._overrideHelperClass=null,this._arcadeInfo=null,this._cimSymbolMaterials=new Map,this._cimSymbolTextures=new Map,this._cimMaterialParametersInfo=null,this._cimScaleFactorOrFunction=null,this._size=[1,1],this._symbolTextureRatio=1,this._outlineSize=0,this._textureHandle=null,this._patchTask=null,this._elevationOptions={supportsOffsetAdjustment:!0,supportsOnTheGround:!0},this[ne]=!0}async doLoad(e){this._validateOrThrow();const t=this._prepareMaterialParameters(),r=this._getPrimitive();if(null!=r)this._prepareResourcesPrimitive(t,r);else{const r=I(this.symbolLayer),i=_e(r);null!=i?await this._prepareResourcesCIM(t,JSON.parse(i),e):await this._prepareResourcesHref(t,r,e)}}_validateOrThrow(){if(this._drivenProperties.size)return;const e=G(this._getIconSize());if(e)throw new r("graphics3diconsymbollayer:invalid-size",e)}_getIconSize(){const e=this.symbolLayer,t=Math.round(null!=e.size?l(e.size):ce);return this._drivenProperties.size?Math.max(t,64):t}_generateTextureCIM(e,t){const r=this._overrideHelperClass;let s=this._cimData;if(r&&s&&s.symbol||this.logger.error("Can't create texture, CIM data is undefined"),s.primitiveOverrides){s=i(s);const a=s.primitiveOverrides;r.evaluateOverrides(a,e,this._arcadeInfo.geometryType,null,null,t.layer.fieldsIndex),r.applyOverrides(s.symbol,a)}const a=h(JSON.stringify(s));let o=this._cimSymbolTextures.get(a);if(o)return o;const n=this._context.sharedResources.cimSymbolRasterizer,l=this._context.renderer&&"dictionary"===this._context.renderer.type?this._context.renderer.fieldMap:null;l&&r.applyDictionaryTextOverrides(s.symbol,e,l,null);const c=null!=this._cimScaleFactorOrFunction?C(this._cimScaleFactorOrFunction,e):1;1!==c&&s.symbol&&O(s.symbol,c,!0);const u=w.getEnvelope(s,null,n.resourceManager);if(u?.width&&u.height){const e=u.x+u.width/2,t=u.y+u.height/2,r=n.rasterize({type:"cim",data:s},u.width,u.height,e,t,1,"esriGeometryPoint",0,null,this._context.graphicsCoreOwner.view.state.rasterPixelRatio),i=new R({x:-u.x/u.width-.5,y:(u.height+u.y)/u.height-.5});this._cimMaterialParametersInfo.anchorPosition=fe("relative",i),o=new se(r,{width:r?.width??1,height:r?.height??1,reloadable:!0})}else o=new se(new ImageData(1,1),{width:1,height:1,reloadable:!0});return this._cimSymbolTextures.set(a,o),this._context.stage.addTexture(o),o}_prepareMaterialParameters(){const{symbolLayer:e,symbol:t,_context:r,_drivenProperties:i,view:s}=this,a=this.symbolLayer.occludedVisibility?.mode??"hidden";return{anchorPosition:fe(e.anchor,e.anchorPosition),rotation:e.angle,hasRotation:0!==e.angle||i.rotation,hasVertexRotation:i.rotation,occludedFragmentOpacity:"hidden"!==a?s.state.ensureOccludedFragmentOpacity():void 0,hasSlicePlane:r.slicePlaneEnabled,verticalOffset:de(t)?new re(t.verticalOffset):void 0,screenSizePerspective:r.screenSizePerspectiveEnabled?s.screenSizePerspective.parameters:void 0}}_prepareResourcesPrimitive(e,t){const r=this._getOutlineSize();if(pe(t)&&0===r)throw new Error("Nothing to render");if(this._outlineSize=r,e.color=this._getFillColor(),e.outlineColor=this._getOutlineColor(),e.outlineSize=this._outlineSize,null!=this._context.sharedResources.textures){const r=this._context.sharedResources.textures.fromData(`${t}-icon`,()=>K(t));this._textureHandle=r,e.textureId=r.managedTexture.id}e.textureIsSignedDistanceField=!0,e.sampleSignedDistanceFieldTexelCenter=Q(t),e.distanceFieldBoundingBox=X;const i=this._getIconSize();this._size=[i,i],this._symbolTextureRatio=1/Y,e.size=m(i*this._symbolTextureRatio,i*this._symbolTextureRatio),this._createMaterials(e)}async _prepareResourcesHref(t,i,s){this._outlineSize=this._getOutlineSize(),t.color=this._getFillColor(),t.outlineColor=this._getOutlineColor(),t.outlineSize=this._outlineSize,t.textureIsSignedDistanceField=!1;const a=this._getIconSize(),n=a*this._context.graphicsCoreOwner.view.state.rasterPixelRatio;if(null!=this._context.sharedResources.textures){const l=await e(this._context.sharedResources.textures.fromUrl(i,n,{signal:s}));if(!1===l.ok){o(l.error);throw new r("graphics3diconsymbollayer:request-failed",`Failed to load (Request for icon resource failed: ${i})`)}this._textureHandle=l.value;const c=l.value.managedTexture;this._size=ye(c,a),t.size=d(this._size),t.textureId=c.id}this._createMaterials(t)}async _prepareResourcesCIM(e,t,r){const{OverrideHelper:i}=await import("../../../../symbols/cim/OverrideHelper.js");if(this._overrideHelperClass=i,this._cimData=t,!this._context.sharedResources.cimSymbolRasterizer){const e=(await import("../../../../symbols/cim/CIMSymbolRasterizer.js")).CIMSymbolRasterizer;n(r),this._context.sharedResources.cimSymbolRasterizer??=new e(this._context.renderCoordsHelper.spatialReference)}const s=this._context.sharedResources.cimSymbolRasterizer,a=t,o=a?.symbol,l=[w.normalizeSymbolAndFetchResources(o,s.resourceManager,r)],c=this._context.layer.fields?this._context.layer.fields.map(e=>e.toJSON()):[],h=this._context.renderCoordsHelper.spatialReference;if(this._arcadeInfo={spatialReference:h,fields:c,geometryType:"esriGeometryPoint"},a?.primitiveOverrides&&l.push(i.createRenderExpressions(a.primitiveOverrides,this._arcadeInfo)),l.length>0&&(await Promise.all(l),n(r)),this._context.renderer&&"dictionary"===this._context.renderer.type&&this._context.renderer.scaleExpression){const e=this._context.renderer;if(e.scaleExpression){const t=e.scaleExpression,r=await z(t,this._context.layer.spatialReference),{default:i}=await import("../../../2d/arcade/callExpressionWithFeature.js"),s=new P(c);this._cimScaleFactorOrFunction=(e,t,a)=>{const o=i(r,e,{$view:a},"esriGeometryPoint",s,t);return null!==o?o:1}}}n(r),this._cimMaterialParametersInfo=e,this._cimMaterialParametersInfo.color=this._getFillColor(),this._cimMaterialParametersInfo.outlineColor=[0,0,0,0],this._cimMaterialParametersInfo.outlineSize=0,this._cimMaterialParametersInfo.textureIsSignedDistanceField=!1}_getPrimitive(){return ge(this.symbolLayer)}_getOutlineSize(){let e=0;const t=this.symbolLayer;if(null!=t.outline?.size)return Math.max(l(t.outline.size),0);return e=pe(this._getPrimitive())?he:0,Math.max(e,0)}_getOutlineColor(){const e=this._getLayerOpacity(),t=this.symbolLayer,r=t?.outline?.color;if(null!=r){const t=r.toUnitRGB(),i=r.a*e;return[t[0],t[1],t[2],i]}return[0,0,0,0]}_getFillColor(){if(pe(this._getPrimitive()))return j;const e=null==this._getPrimitive(),t=this._materialColor;return this._getCombinedOpacityAndColor(t,{hasIntrinsicColor:e})}get _materialColor(){return this.symbolLayer.material?.color}get _fastVisualVariableFallbackColor(){const e=this._materialColor;if(null==e){return null==this._getPrimitive()?x:v}return e.toUnitRGBA()}_getFallbackSize(){const e=this._getIconSize(),{symbolLayer:{size:t}}=this;return(null!=t?Math.round(l(t)):ce)/e}_createCimMaterials(e){const t=e.textureId?this._cimSymbolMaterials.get(e.textureId):null;if(t)return t;const r=Se([],e,this._context.focusAreaStyle,this._context.spherical);return this._cimSymbolMaterials.set(e.textureId??0,r),r}_createMaterials(e){this._fastUpdates=q(this._context.renderer,this._fastVisualVariableConvertOptions()),this._fastUpdates&&(e={...e,...this._fastUpdates.materialParameters}),e.hasVertexColor=this._drivenProperties.color&&!this._fastUpdates?.visualVariables.color||this._drivenProperties.opacity&&!this._fastUpdates?.visualVariables.opacity,e.hasVertexSize=this._drivenProperties.size&&!this._fastUpdates?.visualVariables.size,Se(this._materials,e,this._context.focusAreaStyle,this._context.spherical)}_setDrapingDependentMaterialParameters(){this.draped&&(this._forEachMaterial(e=>{e.setParameters({verticalOffset:null,screenSizePerspective:null,hasSlicePlane:!1,shaderPolygonOffset:0,draped:this.draped})}),this.layerOpacityChanged())}destroy(){super.destroy(),this._patchTask=s(this._patchTask),this._materials.length=0,this._cimSymbolMaterials.clear(),this._cimSymbolTextures.forEach(e=>this._context.stage.removeTexture(e)),this._cimSymbolTextures.clear(),this._textureHandle=a(this._textureHandle)}_getScaleFactor({size:e},t){if(!this._drivenProperties.size)return 1;if(null==e)return this._getFallbackSize();const[r,i,s]=e.output;return"symbol-value"===r?1:"number"==typeof r&&isFinite(r)?l(r)/t:"number"==typeof s&&isFinite(s)?l(s)/t:1}_getDrivenRotation(e){return this._drivenProperties.rotation?e.heading?.output??0:null}createGraphics3DGraphic(e){const t=e.graphic;if(!this._validateGeometry(t.geometry))return null;const r=L(t.geometry);if(null==r)return this.logger.warn(`unsupported geometry type for text symbol: ${t.geometry.type}`),null;let i=this._materials;const s=this.view.focusAreasView?.containsGeometry(r)??!0;if(this._cimData){if(!this._cimData.symbol)return null;const r=this._context.graphicsCoreOwner.view.state.rasterPixelRatio,s=this._generateTextureCIM(t,e),a=m(s.parameters.width/r,s.parameters.height/r);i=this._createCimMaterials({textureId:s.id,size:a,...this._cimMaterialParametersInfo})}const a=i[s?0:2];if(null==r)return this.logger.warn(`unsupported geometry type for icon symbol: ${t.geometry.type}`),null;const o=null==this._getPrimitive(),n=e.renderingInfo,l=this._hasDrivenColorOrOpacity?this._getDrivenUInt8Color(n,this._materialColor,o):null,c=this._getDrivenRotation(n);let h=null;if(!this._fastUpdates?.visualVariables.size){const e=this._size,t=e[0]>e[1]?e[0]:e[1];h=this._getScaleFactor(n,t)}const u=null!=h?m(h,h):null,d=this.createElevationContextForGraphic(t);return this.ensureDrapedStatus("on-the-ground"===d.mode)&&this._setDrapingDependentMaterialParameters(),this.draped?this._createAsOverlay(n,r,a,l,c,u,t.uid):this._createAs3DShape(n,r,a,l,c,u,d,t.uid)}terrainTransparencyChanged(){return this.draped}layerOpacityChanged(){const e=this._getFillColor(),t=this._getOutlineColor();this._forEachMaterial(r=>{r.setParameters({color:e}),r.setParameters({outlineColor:t})})}layerScreenSizePerspectiveChanged(){const e=this._context.screenSizePerspectiveEnabled&&!this.draped?this.view.screenSizePerspective.parameters:null;this._forEachMaterial(t=>{t.setParameters({screenSizePerspective:e})})}updateTransparentMode(e,t){const r=e.stageObject.geometries[0]?.material,i=this._cimData?r?.parameters.textureId:null,s=i?this._cimSymbolMaterials.get(i):this._materials,a=(s?.indexOf(r)??-1)<2,o=t?a?1:3:a?0:2,n=s?.[o];n&&n!==r&&e.updateMaterial(n)}updateGeometry(e,t){const r=e.geometry;if(this.draped||!r||!this._validateGeometry(r))return!1;const{elevationContext:i,stageObject:s}=t;if(i.mode!==this.getGeometryElevationMode(r))return!1;const a=L(r);if(!a)return!1;i.updateFeatureExpressionFeature(e,this._context.layer);const o=H(s,this._context,a,i);if(null==o)return!1;const n=k(this._context,a);return s.geometries[0].localOrigin===n&&(t.alignedSampledElevation=o,B(t,a,this._context.elevationProvider),!0)}layerElevationInfoChanged(e,t,r){const i=this._elevationContext.mode,s=F(me.elevationModeChangeTypes,r,i);if(1!==s)return s;const a=T(i)||"absolute-height"===i;return this.updateGraphics3DGraphicElevationInfo(e,t,()=>a)}slicePlaneEnabledChanged(){return this.draped||this._forEachMaterial(e=>{e.setParameters({hasSlicePlane:this._context.slicePlaneEnabled})}),!0}physicalBasedRenderingChanged(){return!0}get pixelRatioChanged(){return null!=this._getPrimitive()}applyRendererDiff(e,t){for(const r in e.diff){if("visualVariables"!==r)return 0;if(!J(this._fastUpdates,t,this._fastVisualVariableConvertOptions()))return 0;{const e=this._fastUpdates;this._materials.forEach(t=>t?.setParameters(e.materialParameters))}}return 2}get needsUpdateFocus(){return!0}prepareSymbolLayerPatch(e){if(this._patchTask?.abort(),"partial"!==e.diff.type)return;const t=e.diff.diff;this._preparePatchResource(e,t),this._preparePatchRotation(e,t)}_preparePatchResource(i,l){if(!l.resource||"partial"!==l.resource.type)return;const c=l.resource.diff;if("complete"!==c?.href?.type)return;const h=c.href.newValue,{textures:u}=this._context.sharedResources;if(null==h||null==u||null!=_e(h))return;const m=this._getIconSize(),d=m*this._context.graphicsCoreOwner.view.state.pixelRatio;i.symbolLayerStatePatches.push(()=>{this._patchTask=s(this._patchTask),this._patchTask=t(t=>this._context.schedule(async(t,i)=>{const s=await e(u.fromUrl(h,d,{signal:i}));n(i);const l=!s.ok;if(l&&o(s.error),this._textureHandle=a(this._textureHandle),this._patchTask=null,l){this._forEachMaterial(e=>{e.visible=!1,e.setParameters({textureId:null})});const e=`Failed to load (Request for icon resource failed: ${h})`;return void this.logger.error(new r("graphics3diconsymbollayer:request-failed",e))}this._textureHandle=s.value;const c=s.value.managedTexture;this._size=ye(c,m),this._forEachMaterial(e=>{e.setParameters({textureId:c.id}),e.visible=!0})},t))}),delete c.href}_preparePatchRotation(e,t){if(!t.angle||"complete"!==t.angle.type)return;const r=t.angle.newValue??0,i=0!==r||this._drivenProperties.rotation;e.symbolLayerStatePatches.push(()=>{this._forEachMaterial(e=>e.setParameters({rotation:r,hasRotation:i}))}),delete t.angle}_defaultElevationInfoNoZ(){return ve}_createAs3DShape(e,t,r,i,s,a,o,n){const l=this.getFastUpdateAttrValues(e),c=this._context.layerViewUid,h=this._context.stage.renderView.getObjectAndLayerIdColor({graphicUid:n,layerViewUid:c}),u=ie(r,{normal:le,color:i,rotation:s,size:a,centerOffset:f,groundDistance:1,featureAttribute:l,olidColor:h}),m=N(this._context,t,u,o,n);if(null==m)return null;const d=new V(this,m.object,null,E,o);return d.setOccludedVisibilityMode(this.symbolLayer.occludedVisibility?.mode),d.hiddenIfDeconflicted=!0,d.alignedSampledElevation=m.sampledElevation,d.needsElevationUpdates=T(o.mode)||"absolute-height"===o.mode,d.getScreenSize=this._createScreenSizeGetter(a,l),d.calculateRelativeScreenBounds=e=>r.calculateRelativeScreenBounds(d.getScreenSize(),1,e),B(d,t,this._context.elevationProvider),d}_createAsOverlay(e,t,r,i,s,a,o){r.renderPriority=this._renderPriority;const n=g();b(t,n,this._context.overlaySR),n[2]=te;const l=this._context.clippingExtent;if(null!=l&&!S(l,n))return null;const c=this.getFastUpdateAttrValues(e),h=this._context.layerViewUid,u=this._context.stage.renderView.getObjectAndLayerIdColor({graphicUid:o,layerViewUid:h}),m=ie(r,{normal:le,position:n,color:i,rotation:s,size:a,featureAttribute:c,olidColor:u}),d=new ae(m,{layerViewUid:h,graphicUid:o}),p=new U(this,[d],null,this._context.drapeSourceRenderer);return p.getScreenSize=this._createScreenSizeGetter(a,c),p.calculateRelativeScreenBounds=e=>r.calculateRelativeScreenBounds(p.getScreenSize(),1,e),p}_createScreenSizeGetter(e,t){e??=_;const r=this._outlineSize+2;if(this._fastUpdates&&t){const i=e[0]*this._size[0],s=e[1]*this._size[1];return(e=p())=>{const[a,o]=Z(be,this._fastUpdates.materialParameters,t);return e[0]=a*i+r,e[1]=o*s+r,e}}const i=e[0]*this._size[0]+r,s=e[1]*this._size[1]+r;return(e=p())=>(e[0]=i,e[1]=s,e)}_fastVisualVariableConvertOptions(){const e=Math.max(this._size[0],this._size[1]),t=y(e,e,e),r=c(1),i=e*r,s=y(i,i,i),a=this._getFallbackSize();return new W({supports:{size:!0,color:!0,rotation:!0,opacity:!1},modelSize:t,symbolSize:s,unitInMeters:r,fallbackColor:this._fastVisualVariableFallbackColor,fallbackSize:y(a,a,a)})}_forEachMaterial(e){this._materials.forEach(e),this._cimSymbolMaterials.forEach(t=>t.forEach(e))}test(){return{...super.test(),material:this._materials[0]}}}function de(e){return e&&"point-3d"===e.type&&e.hasVisibleVerticalOffset()}function pe(e){return null!=e&&("cross"===e||"x"===e)}function _e(e){const t=u(e);return"application/json"===t?.mediaType?t.data:void 0}function fe(e,t){return"relative"===e?m((t.x||0)+.5,.5-(t.y||0)):e in A?A[e]:A.center}function ye({parameters:e},t){const r=(e.width??1)/(e.height??1);return r>1?[t,Math.round(t/r)]:[Math.round(t*r),t]}function ge(e){return e.resource?.href?null:e.resource?.primitive??M}function xe(e){return 1===(e.material?.color?.a??0)&&null!=ge(e)}const ve={mode:"relative-to-ground",offset:0},be=g();function Se(e,t,r,i){const s={...t,focusAreaStyle:r};return e[0]=new oe(t,i),e[1]=new oe(t,i,!0),e[2]=new oe(s,i),e[3]=new oe(s,i,!0),e}export{me as Graphics3DIconSymbolLayer};
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */
2
- import{isSome as e}from"../../../../core/arrayUtils.js";import{forEach as t}from"../../../../core/asyncUtils.js";import"../../../../core/has.js";import{onAbortOrThrow as r,throwIfAborted as s}from"../../../../core/promiseUtils.js";import{totalSymbolComplexities as o}from"./defaultSymbolComplexity.js";import{Graphics3DGraphic as a}from"./Graphics3DGraphic.js";import{Graphics3DObject3DGraphicLayer as i}from"./Graphics3DObject3DGraphicLayer.js";import{Graphics3DSymbolLayerCreationContext as n}from"./Graphics3DSymbolCreationContext.js";import{Loadable as l}from"./Loadable.js";import{getSymbolMemorySize as y}from"./symbolMemory.js";class h extends l{set symbol(e){this._symbol=e,e.symbolLayers.forEach((t,r)=>{const s=this.symbolLayers[r];null!=s&&(s.symbol=e,s.symbolLayer=t)})}get symbol(){return this._symbol}constructor(e,t,r){super(t.schedule),this._symbol=e,this._context=t,this._backgroundLayers=r,this._destroyed=!1,this.symbolLayers=new Array,this.referenced=0,this._extentPadding=0}async doLoad(e){let o=this._symbol.symbolLayers;this._extentPadding=0,this._backgroundLayers&&(o=this._backgroundLayers.concat(o));const a=o.length;for(;this.symbolLayers.length<o.length;)this.symbolLayers.push(null);this.symbolLayers.length=o.length;const i=[];if(!m){const{make:e}=await import("./Graphics3DSymbolLayerFactory.js");m=e}for(let t=0;t<a;t++){const s=o.at(t);if(!1===s.enabled)continue;c.renderPriority=1-(1+t)/a,c.renderPriorityStep=1/a,c.ignoreDrivers=s.ignoreDrivers;const n=m(this.symbol,s,this._context,c),l=r(e,()=>{this.symbolLayers[t]=null,n.destroy()});l&&i.push(l),this.symbolLayers[t]=n}if(await t(this.symbolLayers,async(e,t)=>{if(null!=e)try{await e.load(),this._extentPadding+=Math.max(this._extentPadding,e.extentPadding)}catch{this.symbolLayers[t]=null}}),i.forEach(e=>e.remove()),s(e),this.symbolLayers.length&&!this.symbolLayers.some(e=>!!e))throw new Error}getSymbolLayerSize(e){const t=this.symbolLayers[e];return null!=t?t.getCachedSize():null}get extentPadding(){return this._extentPadding}get symbologySnappingSupported(){return this.symbolLayers.some(e=>e?.queryForSnapping)}get needsUpdateFocus(){return this.symbolLayers.some(e=>!0===e?.needsUpdateFocus)}createGraphics3DGraphic(e,t){const{graphic:r}=e,s=this.symbolLayers.map(t=>t?.createGraphics3DGraphic(e)??null);return new a(r,t||this,s)}get complexity(){return o(this.symbolLayers.map(e=>e?.complexity))}globalPropertyChanged(e,t){const r=this.symbolLayers.length;for(let s=0;s<r;s++){const r=this.symbolLayers[s],o=e=>{const t=e.layers[s];return t instanceof i?t:null};if(null!=r&&!r.globalPropertyChanged(e,t,o))return!1}return!0}applyRendererDiff(e,t){return 1!==this.loadStatus?0:this.symbolLayers.reduce((r,s)=>0!==r&&null!=s?Math.min(r,s.applyRendererDiff(e,t)):r,2)}prepareSymbolPatch(e){if(2===this.loadStatus)return;if("partial"!==e.diff.type)return;const t=e.diff.diff;if(!t.symbolLayers||"partial"!==t.symbolLayers.type)return;const r=t.symbolLayers.diff;this.symbolLayers.forEach((t,s)=>{if(null==t)return;const o=r[s];if(o){const r={diff:o,graphics3DGraphicPatches:[],symbolLayerStatePatches:[]};t.prepareSymbolLayerPatch(r),e.symbolStatePatches.push(...r.symbolLayerStatePatches),r.graphics3DGraphicPatches.length&&e.graphics3DGraphicPatches.push((e,t)=>{const o=e.layers[s];null!=o&&r.graphics3DGraphicPatches.forEach(e=>e(o,t))})}})}updateGeometry(e){return this._updateGeometryOrTransform(e,(t,r)=>!!t.updateGeometry&&t.updateGeometry(e.graphic,r))}updateTransform(e,t,r,s){return this._updateGeometryOrTransform(e,(e,o)=>!!e.updateTransform&&e.updateTransform(o,t,r,s))}_updateGeometryOrTransform(e,t){for(let r=0;r<this.symbolLayers.length;r++){const s=this.symbolLayers[r];if(null==s)continue;const o=e.layers[r];if(!o||!t(s,o))return!1}return!0}onRemoveGraphic(e){for(let t=0;t<this.symbolLayers.length;t++){const r=this.symbolLayers[t];if(null==r)continue;const s=e.layers[t];null!=s&&r.onRemoveGraphic(s)}}getFastUpdateStatus(){let e=!1,t=!1;for(const r of this.symbolLayers)if(null!=r){if(0===r.loadStatus)return 3;r.isFastUpdatesEnabled()?t=!0:e=!0}return t?e?2:1:e?0:4}async queryForSnapping(t,r,o,a){const i=this.symbolLayers.filter(e).filter(e=>null!=e.queryForSnapping).map(e=>e.queryForSnapping(t,r,o,a)),n=await Promise.all(i);return s(a),n.flat()}destroy(){if(!this.destroyed){super.destroy();for(const e of this.symbolLayers)null!=e&&e.destroy();this.symbolLayers.length=0,this._destroyed=!0}}get destroyed(){return this._destroyed}get usedMemory(){return y(this)}}let m=null;const c=new n;export{h as Graphics3DSymbol};
2
+ import{isSome as t}from"../../../../core/arrayUtils.js";import{forEach as e}from"../../../../core/asyncUtils.js";import"../../../../core/has.js";import{onAbortOrThrow as r,throwIfAborted as s}from"../../../../core/promiseUtils.js";import{aggregateSymbolComplexity as o}from"./defaultSymbolComplexity.js";import{Graphics3DGraphic as a}from"./Graphics3DGraphic.js";import{Graphics3DObject3DGraphicLayer as i}from"./Graphics3DObject3DGraphicLayer.js";import{Graphics3DSymbolLayerCreationContext as n}from"./Graphics3DSymbolCreationContext.js";import{Loadable as l}from"./Loadable.js";import{AggregateSymbolComplexity as y}from"./SymbolComplexity.js";import{getSymbolMemorySize as h}from"./symbolMemory.js";class m extends l{set symbol(t){this._symbol=t,t.symbolLayers.forEach((e,r)=>{const s=this.symbolLayers[r];null!=s&&(s.symbol=t,s.symbolLayer=e)})}get symbol(){return this._symbol}constructor(t,e,r){super(e.schedule),this._symbol=t,this._context=e,this._backgroundLayers=r,this._destroyed=!1,this.symbolLayers=new Array,this.referenced=0,this._extentPadding=0}async doLoad(t){let o=this._symbol.symbolLayers;this._extentPadding=0,this._backgroundLayers&&(o=this._backgroundLayers.concat(o));const a=o.length;for(;this.symbolLayers.length<o.length;)this.symbolLayers.push(null);this.symbolLayers.length=o.length;const i=[];if(!c){const{make:t}=await import("./Graphics3DSymbolLayerFactory.js");c=t}for(let e=0;e<a;e++){const s=o.at(e);if(!1===s.enabled)continue;p.renderPriority=1-(1+e)/a,p.renderPriorityStep=1/a,p.ignoreDrivers=s.ignoreDrivers;const n=c(this.symbol,s,this._context,p),l=r(t,()=>{this.symbolLayers[e]=null,n.destroy()});l&&i.push(l),this.symbolLayers[e]=n}if(await e(this.symbolLayers,async(t,e)=>{if(null!=t)try{await t.load(),this._extentPadding+=Math.max(this._extentPadding,t.extentPadding)}catch{this.symbolLayers[e]=null}}),i.forEach(t=>t.remove()),s(t),this.symbolLayers.length&&!this.symbolLayers.some(t=>!!t))throw new Error}getSymbolLayerSize(t){const e=this.symbolLayers[t];return null!=e?e.getCachedSize():null}get extentPadding(){return this._extentPadding}get symbologySnappingSupported(){return this.symbolLayers.some(t=>t?.queryForSnapping)}get needsUpdateFocus(){return this.symbolLayers.some(t=>!0===t?.needsUpdateFocus)}createGraphics3DGraphic(t,e){const{graphic:r}=t,s=this.symbolLayers.map(e=>e?.createGraphics3DGraphic(t)??null);return new a(r,e||this,s)}get complexity(){const t=new y;return this.symbolLayers.forEach(e=>o(e?.complexity,t)),t}globalPropertyChanged(t,e){const r=this.symbolLayers.length;for(let s=0;s<r;s++){const r=this.symbolLayers[s],o=t=>{const e=t.layers[s];return e instanceof i?e:null};if(null!=r&&!r.globalPropertyChanged(t,e,o))return!1}return!0}applyRendererDiff(t,e){return 1!==this.loadStatus?0:this.symbolLayers.reduce((r,s)=>0!==r&&null!=s?Math.min(r,s.applyRendererDiff(t,e)):r,2)}prepareSymbolPatch(t){if(2===this.loadStatus)return;if("partial"!==t.diff.type)return;const e=t.diff.diff;if(!e.symbolLayers||"partial"!==e.symbolLayers.type)return;const r=e.symbolLayers.diff;this.symbolLayers.forEach((e,s)=>{if(null==e)return;const o=r[s];if(o){const r={diff:o,graphics3DGraphicPatches:[],symbolLayerStatePatches:[]};e.prepareSymbolLayerPatch(r),t.symbolStatePatches.push(...r.symbolLayerStatePatches),r.graphics3DGraphicPatches.length&&t.graphics3DGraphicPatches.push((t,e)=>{const o=t.layers[s];null!=o&&r.graphics3DGraphicPatches.forEach(t=>t(o,e))})}})}updateGeometry(t){return this._updateGeometryOrTransform(t,(e,r)=>!!e.updateGeometry&&e.updateGeometry(t.graphic,r))}updateTransform(t,e,r,s){return this._updateGeometryOrTransform(t,(t,o)=>!!t.updateTransform&&t.updateTransform(o,e,r,s))}_updateGeometryOrTransform(t,e){for(let r=0;r<this.symbolLayers.length;r++){const s=this.symbolLayers[r];if(null==s)continue;const o=t.layers[r];if(!o||!e(s,o))return!1}return!0}onRemoveGraphic(t){for(let e=0;e<this.symbolLayers.length;e++){const r=this.symbolLayers[e];if(null==r)continue;const s=t.layers[e];null!=s&&r.onRemoveGraphic(s)}}getFastUpdateStatus(){let t=!1,e=!1;for(const r of this.symbolLayers)if(null!=r){if(0===r.loadStatus)return 3;r.isFastUpdatesEnabled()?e=!0:t=!0}return e?t?2:1:t?0:4}async queryForSnapping(e,r,o,a){const i=this.symbolLayers.filter(t).filter(t=>null!=t.queryForSnapping).map(t=>t.queryForSnapping(e,r,o,a)),n=await Promise.all(i);return s(a),n.flat()}destroy(){if(!this.destroyed){super.destroy();for(const t of this.symbolLayers)null!=t&&t.destroy();this.symbolLayers.length=0,this._destroyed=!0}}get destroyed(){return this._destroyed}get usedMemory(){return h(this)}}let c=null;const p=new n;export{m as Graphics3DSymbol};
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */
2
- class e{constructor(e){this.estimated=!1,this.verticesPerFeature=e.verticesPerFeature??0,this.verticesPerCoordinate=e.verticesPerCoordinate??0,this.drawCallsPerFeature=e.drawCallsPerFeature??0,this.memory=e.memory??new a}}class t extends e{constructor(e){super(e),this.estimated=!0}}class s extends e{constructor(e,t){super(t),this.numComplexities=e}}class r extends t{constructor(e,t){super(t),this.numComplexities=e}}class a{constructor(){this.bytesPerFeature=0,this.bytesPerFeatureLabel=0,this.resourceBytes=0,this.draped={bytesPerFeature:0,bytesPerFeatureLabel:0}}}export{s as AggregateSymbolComplexity,r as EstimatedAggregateSymbolComplexity,t as EstimatedSymbolComplexity,e as SymbolComplexity,a as SymbolComplexityMemory};
2
+ class e{constructor(e){this.estimated=!1,this.verticesPerFeature=e?.verticesPerFeature??0,this.verticesPerCoordinate=e?.verticesPerCoordinate??0,this.drawCallsPerFeature=e?.drawCallsPerFeature??0,this.memory=e?.memory??new s}}class t extends e{constructor(e){super(e),this.estimated=!0}}class r extends e{constructor(e=0,t){super(t),this.numComplexities=e}}class s{constructor(){this.bytesPerFeature=0,this.bytesPerFeatureLabel=0,this.resourceBytes=0,this.draped={bytesPerFeature:0,bytesPerFeatureLabel:0}}}export{r as AggregateSymbolComplexity,t as EstimatedSymbolComplexity,e as SymbolComplexity,s as SymbolComplexityMemory};
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */
2
- import has from"../../../../core/has.js";import{defaultObjectPrimitive as e}from"../../../../symbols/support/primitives.js";import{pathNumCircleProfileSubdivisions as r,pathNumRoundJoinSubdivisions as t,pathNumRoundCapExtrusionSubdivisions as a}from"./Graphics3DPathSymbolLayerConstants.js";import{primitiveLodResources as s}from"./primitiveObjectSymbolUtils.js";import{EstimatedSymbolComplexity as u,SymbolComplexityMemory as o,EstimatedAggregateSymbolComplexity as b,AggregateSymbolComplexity as i,SymbolComplexity as y}from"./SymbolComplexity.js";import{hasEdges as n}from"../support/edgeUtils.js";import{DefaultMaterial as c}from"../../webgl-engine/materials/DefaultMaterial.js";const P=new u({});function l(e){if("web-style"===e.type)return P;return F(e.symbolLayers.toArray().map(r=>p(e,r)))}function F(e){let r=0,t=0,a=0,s=!1,u=0;const y=new o;for(const o of e)null!=o&&(r+=o.verticesPerFeature,t+=o.verticesPerCoordinate,a+=o.drawCallsPerFeature,y.bytesPerFeature+=o.memory.bytesPerFeature,y.bytesPerFeatureLabel+=o.memory.bytesPerFeatureLabel,y.resourceBytes+=o.memory.resourceBytes,y.draped.bytesPerFeature+=o.memory.bytesPerFeature,y.draped.bytesPerFeatureLabel+=o.memory.bytesPerFeatureLabel,s=s||o.estimated,++u);return s?new b(u,{verticesPerFeature:r,verticesPerCoordinate:t,drawCallsPerFeature:a,memory:y}):new i(u,{verticesPerFeature:r,verticesPerCoordinate:t,drawCallsPerFeature:a,memory:y})}function m(e){const r=F(e);return r.numComplexities>0&&(r.verticesPerFeature/=r.numComplexities,r.verticesPerCoordinate/=r.numComplexities,r.drawCallsPerFeature/=r.numComplexities,r.memory.bytesPerFeature/=r.numComplexities,r.memory.bytesPerFeatureLabel/=r.numComplexities,r.memory.resourceBytes/=r.numComplexities,r.memory.draped.bytesPerFeature/=r.numComplexities,r.memory.draped.bytesPerFeatureLabel/=r.numComplexities),r}const d={};function p(s,o){const b=L(s,o),i=n(o)?2:0;switch(o.type){case"extrude":return new y({verticesPerFeature:-12,verticesPerCoordinate:12,drawCallsPerFeature:i,memory:b});case"fill":if("mesh-3d"===s.type)return new y({drawCallsPerFeature:i,memory:b});if(null!=o.outline&&o.outline.size>0)return new y({verticesPerFeature:-12,verticesPerCoordinate:9,memory:b});case"water":return new y({verticesPerFeature:-6,verticesPerCoordinate:3,memory:b});case"line":return new y({verticesPerFeature:-6,verticesPerCoordinate:6,memory:b});case"object":return o.resource?.href?new u({verticesPerFeature:100,memory:b}):{...C(o.resource?.primitive??e),memory:b};case"path":{let e=0,s=0;switch(o.profile){case"circle":e=r;break;case"quad":e=4;break;default:return void o.profile}switch(o.join){case"round":s=t;break;case"miter":case"bevel":s=1;break;default:return}const u=2*e,i=e*s*2,n=i+u;let c=-2*i-u;switch(o.cap){case"none":break;case"butt":case"square":c+=2*(e-1);break;case"round":c+=2*(e*(a-1)*2+e);break;default:return}return new y({verticesPerFeature:c,verticesPerCoordinate:n,memory:b})}case"text":{const e="label-3d"===s.type?0:2;return new y({verticesPerFeature:6,memory:b,drawCallsPerFeature:e})}case"icon":return new y({verticesPerFeature:6,memory:b});default:return}}function L(e,r){const t="point-3d"===e.type;switch(r.type){case"extrude":return r.edges&&r.edges.size>0?w.EXTRUDE_EDGES:w.EXTRUDE;case"fill":return null!=r.outline&&r.outline.size>0?w.FILL_OUTLINE:w.FILL;case"water":return w.FILL;case"line":return"round"===r.join?w.LINE_ROUND:w.LINE_MITER;case"path":switch(r.join){case"round":switch(r.profile){case"circle":return w.PATH_ROUND_CIRCLE;case"quad":return w.PATH_ROUND_QUAD;default:return void r.profile}case"miter":case"bevel":switch(r.profile){case"circle":return w.PATH_MITER_CIRCLE;case"quad":return w.PATH_MITER_QUAD;default:return void r.profile}default:return}case"object":return t?w.OBJECT_POINT:w.OBJECT_POLYGON;case"icon":case"text":return t?w.ICON_POINT:w.ICON_POLYGON;default:return}}function C(e){const r=d[e];if(r)return r;const t=f(s(e,new c({},{spherical:!0})).levels);return d[e]=new y({verticesPerFeature:t}),d[e]}function f(e){return e.reduce((e,r,t)=>e+r.numVertices*(1/10**t),0)/e.reduce((e,r,t)=>e+1/10**t,0)}const w={ICON_POINT:{bytesPerFeature:2604,bytesPerFeatureLabel:3465,resourceBytes:0,draped:{bytesPerFeature:1781,bytesPerFeatureLabel:3456}},ICON_POLYGON:{bytesPerFeature:3198,bytesPerFeatureLabel:2941,resourceBytes:0,draped:{bytesPerFeature:2308,bytesPerFeatureLabel:3006}},OBJECT_POINT:{bytesPerFeature:877,bytesPerFeatureLabel:2952,resourceBytes:0,draped:{bytesPerFeature:877,bytesPerFeatureLabel:2952}},OBJECT_POLYGON:{bytesPerFeature:1307,bytesPerFeatureLabel:2520,resourceBytes:0,draped:{bytesPerFeature:1307,bytesPerFeatureLabel:2520}},LINE_MITER:{bytesPerFeature:2544,bytesPerFeatureLabel:2677,resourceBytes:0,draped:{bytesPerFeature:1924,bytesPerFeatureLabel:2664}},LINE_ROUND:{bytesPerFeature:2564,bytesPerFeatureLabel:2679,resourceBytes:0,draped:{bytesPerFeature:1928,bytesPerFeatureLabel:2673}},PATH_MITER_CIRCLE:{bytesPerFeature:13378,bytesPerFeatureLabel:2656,resourceBytes:0,draped:{bytesPerFeature:13378,bytesPerFeatureLabel:2656}},PATH_ROUND_CIRCLE:{bytesPerFeature:13524,bytesPerFeatureLabel:2686,resourceBytes:0,draped:{bytesPerFeature:13524,bytesPerFeatureLabel:2686}},PATH_MITER_QUAD:{bytesPerFeature:15185,bytesPerFeatureLabel:2993,resourceBytes:0,draped:{bytesPerFeature:15185,bytesPerFeatureLabel:2993}},PATH_ROUND_QUAD:{bytesPerFeature:13151,bytesPerFeatureLabel:2986,resourceBytes:0,draped:{bytesPerFeature:13151,bytesPerFeatureLabel:2986}},FILL:{bytesPerFeature:3514,bytesPerFeatureLabel:2845,resourceBytes:0,draped:{bytesPerFeature:2733,bytesPerFeatureLabel:2837}},FILL_OUTLINE:{bytesPerFeature:3618,bytesPerFeatureLabel:2593,resourceBytes:0,draped:{bytesPerFeature:2828,bytesPerFeatureLabel:2583}},EXTRUDE:{bytesPerFeature:5657,bytesPerFeatureLabel:2569,resourceBytes:0,draped:{bytesPerFeature:5657,bytesPerFeatureLabel:2569}},EXTRUDE_EDGES:{bytesPerFeature:3074,bytesPerFeatureLabel:2172,resourceBytes:0,draped:{bytesPerFeature:3074,bytesPerFeatureLabel:2172}}};if(has("esri-tests-disable-symbol-memory-estimators"))for(const E in w){const e=w[E];e.bytesPerFeature=0,e.bytesPerFeatureLabel=0,e.draped.bytesPerFeature=0,e.draped.bytesPerFeatureLabel=0}export{m as averageSymbolComplexities,l as defaultSymbolComplexity,p as defaultSymbolLayerComplexity,L as defaultSymbolLayerMemoryComplexity,P as emptySymbolComplexity,f as estimateNumVerticesForLods,w as memoryEstimators,F as totalSymbolComplexities};
2
+ import has from"../../../../core/has.js";import{defaultObjectPrimitive as e}from"../../../../symbols/support/primitives.js";import{pathNumCircleProfileSubdivisions as r,pathNumRoundJoinSubdivisions as t,pathNumRoundCapExtrusionSubdivisions as a}from"./Graphics3DPathSymbolLayerConstants.js";import{primitiveLodResources as s}from"./primitiveObjectSymbolUtils.js";import{EstimatedSymbolComplexity as u,AggregateSymbolComplexity as o,SymbolComplexity as b}from"./SymbolComplexity.js";import{hasEdges as y}from"../support/edgeUtils.js";import{DefaultMaterial as c}from"../../webgl-engine/materials/DefaultMaterial.js";const i=new u({});function P(e){if("web-style"===e.type)return i;const r=new o;return e.symbolLayers.forEach(t=>n(F(e,t),r)),r}function n(e,r){e&&(r.verticesPerFeature+=e.verticesPerFeature,r.verticesPerCoordinate+=e.verticesPerCoordinate,r.drawCallsPerFeature+=e.drawCallsPerFeature,r.memory.bytesPerFeature+=e.memory.bytesPerFeature,r.memory.bytesPerFeatureLabel+=e.memory.bytesPerFeatureLabel,r.memory.resourceBytes+=e.memory.resourceBytes,r.memory.draped.bytesPerFeature+=e.memory.bytesPerFeature,r.memory.draped.bytesPerFeatureLabel+=e.memory.bytesPerFeatureLabel,r.estimated||=e.estimated,r.numComplexities++)}const l={};function F(s,o){const c=d(s,o),i=y(o)?2:0;switch(o.type){case"extrude":return new b({verticesPerFeature:-12,verticesPerCoordinate:12,drawCallsPerFeature:i,memory:c});case"fill":if("mesh-3d"===s.type)return new b({drawCallsPerFeature:i,memory:c});if(null!=o.outline&&o.outline.size>0)return new b({verticesPerFeature:-12,verticesPerCoordinate:9,memory:c});case"water":return new b({verticesPerFeature:-6,verticesPerCoordinate:3,memory:c});case"line":return new b({verticesPerFeature:-6,verticesPerCoordinate:6,memory:c});case"object":return o.resource?.href?new u({verticesPerFeature:100,memory:c}):{...m(o.resource?.primitive??e),memory:c};case"path":{let e=0,s=0;switch(o.profile){case"circle":e=r;break;case"quad":e=4;break;default:return void o.profile}switch(o.join){case"round":s=t;break;case"miter":case"bevel":s=1;break;default:return}const u=2*e,y=e*s*2,i=y+u;let P=-2*y-u;switch(o.cap){case"none":break;case"butt":case"square":P+=2*(e-1);break;case"round":P+=2*(e*(a-1)*2+e);break;default:return}return new b({verticesPerFeature:P,verticesPerCoordinate:i,memory:c})}case"text":{const e="label-3d"===s.type?0:2;return new b({verticesPerFeature:6,memory:c,drawCallsPerFeature:e})}case"icon":return new b({verticesPerFeature:6,memory:c});default:return}}function d(e,r){const t="point-3d"===e.type;switch(r.type){case"extrude":return r.edges&&r.edges.size>0?p.EXTRUDE_EDGES:p.EXTRUDE;case"fill":return null!=r.outline&&r.outline.size>0?p.FILL_OUTLINE:p.FILL;case"water":return p.FILL;case"line":return"round"===r.join?p.LINE_ROUND:p.LINE_MITER;case"path":switch(r.join){case"round":switch(r.profile){case"circle":return p.PATH_ROUND_CIRCLE;case"quad":return p.PATH_ROUND_QUAD;default:return void r.profile}case"miter":case"bevel":switch(r.profile){case"circle":return p.PATH_MITER_CIRCLE;case"quad":return p.PATH_MITER_QUAD;default:return void r.profile}default:return}case"object":return t?p.OBJECT_POINT:p.OBJECT_POLYGON;case"icon":case"text":return t?p.ICON_POINT:p.ICON_POLYGON;default:return}}function m(e){const r=l[e];if(r)return r;const t=L(s(e,new c({},{spherical:!0})).levels);return l[e]=new b({verticesPerFeature:t}),l[e]}function L(e){return e.reduce((e,r,t)=>e+r.numVertices*(1/10**t),0)/e.reduce((e,r,t)=>e+1/10**t,0)}const p={ICON_POINT:{bytesPerFeature:2604,bytesPerFeatureLabel:3465,resourceBytes:0,draped:{bytesPerFeature:1781,bytesPerFeatureLabel:3456}},ICON_POLYGON:{bytesPerFeature:3198,bytesPerFeatureLabel:2941,resourceBytes:0,draped:{bytesPerFeature:2308,bytesPerFeatureLabel:3006}},OBJECT_POINT:{bytesPerFeature:877,bytesPerFeatureLabel:2952,resourceBytes:0,draped:{bytesPerFeature:877,bytesPerFeatureLabel:2952}},OBJECT_POLYGON:{bytesPerFeature:1307,bytesPerFeatureLabel:2520,resourceBytes:0,draped:{bytesPerFeature:1307,bytesPerFeatureLabel:2520}},LINE_MITER:{bytesPerFeature:2544,bytesPerFeatureLabel:2677,resourceBytes:0,draped:{bytesPerFeature:1924,bytesPerFeatureLabel:2664}},LINE_ROUND:{bytesPerFeature:2564,bytesPerFeatureLabel:2679,resourceBytes:0,draped:{bytesPerFeature:1928,bytesPerFeatureLabel:2673}},PATH_MITER_CIRCLE:{bytesPerFeature:13378,bytesPerFeatureLabel:2656,resourceBytes:0,draped:{bytesPerFeature:13378,bytesPerFeatureLabel:2656}},PATH_ROUND_CIRCLE:{bytesPerFeature:13524,bytesPerFeatureLabel:2686,resourceBytes:0,draped:{bytesPerFeature:13524,bytesPerFeatureLabel:2686}},PATH_MITER_QUAD:{bytesPerFeature:15185,bytesPerFeatureLabel:2993,resourceBytes:0,draped:{bytesPerFeature:15185,bytesPerFeatureLabel:2993}},PATH_ROUND_QUAD:{bytesPerFeature:13151,bytesPerFeatureLabel:2986,resourceBytes:0,draped:{bytesPerFeature:13151,bytesPerFeatureLabel:2986}},FILL:{bytesPerFeature:3514,bytesPerFeatureLabel:2845,resourceBytes:0,draped:{bytesPerFeature:2733,bytesPerFeatureLabel:2837}},FILL_OUTLINE:{bytesPerFeature:3618,bytesPerFeatureLabel:2593,resourceBytes:0,draped:{bytesPerFeature:2828,bytesPerFeatureLabel:2583}},EXTRUDE:{bytesPerFeature:5657,bytesPerFeatureLabel:2569,resourceBytes:0,draped:{bytesPerFeature:5657,bytesPerFeatureLabel:2569}},EXTRUDE_EDGES:{bytesPerFeature:3074,bytesPerFeatureLabel:2172,resourceBytes:0,draped:{bytesPerFeature:3074,bytesPerFeatureLabel:2172}}};if(has("esri-tests-disable-symbol-memory-estimators"))for(const f in p){const e=p[f];e.bytesPerFeature=0,e.bytesPerFeatureLabel=0,e.draped.bytesPerFeature=0,e.draped.bytesPerFeatureLabel=0}export{n as aggregateSymbolComplexity,P as defaultSymbolComplexity,F as defaultSymbolLayerComplexity,d as defaultSymbolLayerMemoryComplexity,i as emptySymbolComplexity,L as estimateNumVerticesForLods,p as memoryEstimators};
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */
2
- class t{constructor(t,e,n,s,r=!1){this.distances=t,this.atlasIndices=e,this.packedSortedAtlasIndices=n,this.numGaussians=s,this.preciseSort=r}}class e{constructor(t,e,n){this.distances=t,this.atlasIndices=e,this.packedSortedAtlasIndices=n}}let n=null,s=null,r=0,a=0;const i=10,c=20,l=.25,o=1.5,f=16777215,u=3;function h(t,e,n){if(t>f)throw new Error("Gaussian splat order texture index exceeds RGB8UI packing capacity");e[n]=255&t,e[n+1]=t>>>8&255,e[n+2]=t>>>16&255}function d(t,e){let n=Math.max(1,t);for(;n<e;)n=Math.ceil(n*o);return n}function b(t,e){t>r&&(r=d(r,t),n=new Uint32Array(r)),e>a&&(a=d(a,e),s=new Uint32Array(a)),s.fill(0,0,e)}function p(t,e,r){const a=t.length,o=Math.max(i,Math.min(c,Math.round(Math.log2(a/l)))),f=1+(1<<o);b(a,f);let d=t[0],p=t[0];for(let n=0;n<t.length;n++)d=Math.min(d,t[n]),p=Math.max(p,t[n]);const y=p-d;if(y<1e-6)for(let i=0;i<a;++i)n[i]=0,s[0]++;else{const e=(1<<o)/y;for(let r=0;r<a;r++){const a=(t[r]-d)*e>>>0;n[r]=a,s[a]++}}for(let n=1;n<f;n++)s[n]+=s[n-1];for(let i=0;i<a;i++){const t=n[i],a=--s[t];h(e[i],r,a*u)}}async function y(t){const{distances:n,atlasIndices:s,packedSortedAtlasIndices:r,preciseSort:a,numGaussians:i}=t,c=n.subarray(0,i),l=s.subarray(0,i),o=r.subarray(0,i*u);if(0===c.length||0===l.length||0===o.length)return{result:new e(n,s,r),transferList:[n.buffer,s.buffer,r.buffer]};if(a){const t=new Array(i);for(let e=0;e<i;e++)t[e]=e;t.sort((t,e)=>c[t]-c[e]||t-e);for(let e=0;e<i;e++)h(l[t[e]],o,e*u)}else p(c,l,o);return{result:new e(n,s,r),transferList:[n.buffer,s.buffer,r.buffer]}}function M(){g()}function g(){n=null,s=null,r=0,a=0}export{t as SplatSortWorkerInput,e as SplatSortWorkerOutput,g as clear,M as destroy,y as sort};
2
+ class t{constructor(t,s,n,e,r=!1){this.distances=t,this.atlasIndices=s,this.sortedAtlasIndices=n,this.numGaussians=e,this.preciseSort=r}}class s{constructor(t,s,n){this.distances=t,this.atlasIndices=s,this.sortedAtlasIndices=n}}let n=null,e=null,r=0,a=0;const l=10,i=20,o=.25,c=1.5;function f(t,s){let n=Math.max(1,t);for(;n<s;)n=Math.ceil(n*c);return n}function u(t,s){t>r&&(r=f(r,t),n=new Uint32Array(r)),s>a&&(a=f(a,s),e=new Uint32Array(a)),e.fill(0,0,s)}function h(t,s,r){const a=t.length,c=Math.max(l,Math.min(i,Math.round(Math.log2(a/o)))),f=1+(1<<c);u(a,f);let h=t[0],d=t[0];for(let n=0;n<t.length;n++)h=Math.min(h,t[n]),d=Math.max(d,t[n]);const b=d-h;if(b<1e-6)for(let l=0;l<a;++l)n[l]=0,e[0]++;else{const s=(1<<c)/b;for(let r=0;r<a;r++){const a=(t[r]-h)*s>>>0;n[r]=a,e[a]++}}for(let n=1;n<f;n++)e[n]+=e[n-1];for(let l=0;l<a;l++){const t=n[l];r[--e[t]]=s[l]}}async function d(t){const{distances:n,atlasIndices:e,sortedAtlasIndices:r,preciseSort:a,numGaussians:l}=t,i=n.subarray(0,l),o=e.subarray(0,l),c=r.subarray(0,l);if(0===i.length||0===o.length||0===c.length)return{result:new s(n,e,r),transferList:[n.buffer,e.buffer,r.buffer]};if(a){const t=new Array(l);for(let s=0;s<l;s++)t[s]=s;t.sort((t,s)=>i[t]-i[s]||t-s);for(let s=0;s<l;s++)c[s]=o[t[s]]}else h(i,o,c);return{result:new s(n,e,r),transferList:[n.buffer,e.buffer,r.buffer]}}function b(){M()}function M(){n=null,e=null,r=0,a=0}export{t as SplatSortWorkerInput,s as SplatSortWorkerOutput,M as clear,b as destroy,d as sort};
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */
2
- import{WorkerHandle as r}from"../../../core/workers/WorkerHandle.js";class e extends r{constructor(r){super("GaussianSplatSortWorker","sort",{sort:r=>[r.distances.buffer,r.atlasIndices.buffer,r.packedSortedAtlasIndices.buffer]},r,{strategy:"dedicated"})}sort(r,e){return this.invokeMethod("sort",r,e)}clear(){return this.broadcast({},"clear")}async destroyWorkerAndSelf(){await this.broadcast({},"destroy"),this.destroy()}}export{e as GaussianSplatSortWorkerHandle};
2
+ import{WorkerHandle as r}from"../../../core/workers/WorkerHandle.js";class s extends r{constructor(r){super("GaussianSplatSortWorker","sort",{sort:r=>[r.distances.buffer,r.atlasIndices.buffer,r.sortedAtlasIndices.buffer]},r,{strategy:"dedicated"})}sort(r,s){return this.invokeMethod("sort",r,s)}clear(){return this.broadcast({},"clear")}async destroyWorkerAndSelf(){await this.broadcast({},"destroy"),this.destroy()}}export{s as GaussianSplatSortWorkerHandle};
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */
2
- import has from"../../../core/has.js";import{Milliseconds as e}from"../../../core/time.js";function a(e){return t[e]}function i(){return has("esri-iPhone")?"low":"medium"}const o={reset(){const e=m();for(const a of Object.keys(e))t[a]=e[a]}},l={IPhone12Pro:120,GalaxyS20:200,FullHD:240,SurfacePro7:300,FullHDRetina:430},t=m();function m(){const a=!!has("esri-mobile"),i=!!has("ios"),o=e(400);return{low:{graphics3D:{maxTotalNumberOfFeatures:5e4,maxNumberOfDrawCalls:8e3,maxTotalNumberOfVertices:255e4,polygonLodFactor:.5,polylineLodFactor:1,snapshotAvailable:!1,skipHighSymbolLods:!0},heatmap:{pixelRatio:.125},sceneService:{objectLoDFactor:.2,pointLoDFactor:1,meshLoDFactor:.6,pointCloudLoDFactor:.5},gaussianSplat:{idleMinimumSplatPixelRadius:2,nonIdleMinimumSplatPixelRadius:4,idleMinimumOpacity:0,nonIdleMinimumOpacity:0,maximumNumberOfGaussians:1e6},flow:{maxTotalNumberOfStreamlines:5e3,maxTracingResolution:1024,transitionEnabled:!1},tiledSurface:{lodBias:-1,angledSplitBias:.5,vtlContentZoom:.75,elevationLevelDelta:3,reduceTileLevelDifferences:!0},fadeDuration:e(0),physicallyBasedRenderingEnabled:!1,maxTexturePixels:a?1048576:4194304,memoryLimit:200+l.IPhone12Pro,additionalCacheMemory:0,frameRate:0,maximumPixelRatio:1},medium:{graphics3D:{maxTotalNumberOfFeatures:15e4,maxNumberOfDrawCalls:17e3,maxTotalNumberOfVertices:625e4,polygonLodFactor:a?.8:1,polylineLodFactor:a?1.2:1.5,snapshotAvailable:!i,skipHighSymbolLods:!1},heatmap:{pixelRatio:.25},sceneService:{objectLoDFactor:1,pointLoDFactor:1,meshLoDFactor:1,pointCloudLoDFactor:1},gaussianSplat:{idleMinimumSplatPixelRadius:1,nonIdleMinimumSplatPixelRadius:1.5,idleMinimumOpacity:1,nonIdleMinimumOpacity:0,maximumNumberOfGaussians:2e6},flow:{maxTotalNumberOfStreamlines:2e4,maxTracingResolution:2048,transitionEnabled:!0},tiledSurface:{lodBias:0,angledSplitBias:1,vtlContentZoom:1.5,elevationLevelDelta:3,reduceTileLevelDifferences:!0},fadeDuration:o,physicallyBasedRenderingEnabled:!0,maxTexturePixels:a?4194304:4096**2,memoryLimit:a?600+l.GalaxyS20:750+l.FullHD,additionalCacheMemory:a?-100:150,frameRate:0,maximumPixelRatio:1},high:{graphics3D:{maxTotalNumberOfFeatures:3e5,maxNumberOfDrawCalls:17e3,maxTotalNumberOfVertices:125e5,polygonLodFactor:a?1.2:2,polylineLodFactor:a?1.2:2,snapshotAvailable:!i,skipHighSymbolLods:!1},heatmap:{pixelRatio:.5},sceneService:{objectLoDFactor:1,pointLoDFactor:1,meshLoDFactor:1,pointCloudLoDFactor:1},gaussianSplat:{idleMinimumSplatPixelRadius:.5,nonIdleMinimumSplatPixelRadius:1,idleMinimumOpacity:2,nonIdleMinimumOpacity:1,maximumNumberOfGaussians:4e6},flow:{maxTotalNumberOfStreamlines:2e4,maxTracingResolution:2048,transitionEnabled:!0},tiledSurface:{lodBias:0,angledSplitBias:1,vtlContentZoom:1.5,elevationLevelDelta:2,reduceTileLevelDifferences:!0},fadeDuration:o,physicallyBasedRenderingEnabled:!0,maxTexturePixels:a?4096**2:1/0,memoryLimit:a?900+l.SurfacePro7:1500+l.FullHDRetina,additionalCacheMemory:a?-150:0,frameRate:0,maximumPixelRatio:a?1:1/0}}}export{o as QualityProfileTest,i as getDefaultQualityProfileName,a as getQualityProfileSettings};
2
+ import has from"../../../core/has.js";import{Milliseconds as e}from"../../../core/time.js";function a(e){return t[e]}function i(){return has("esri-iPhone")?"low":"medium"}const o={reset(){const e=m();for(const a of Object.keys(e))t[a]=e[a]}},l={IPhone12Pro:120,GalaxyS20:200,FullHD:240,SurfacePro7:300,FullHDRetina:430},t=m();function m(){const a=!!has("esri-mobile"),i=!!has("ios"),o=e(400);return{low:{graphics3D:{maxTotalNumberOfFeatures:5e4,maxNumberOfDrawCalls:8e3,maxTotalNumberOfVertices:255e4,polygonLodFactor:.5,polylineLodFactor:1,snapshotAvailable:!1,skipHighSymbolLods:!0},heatmap:{pixelRatio:.125},sceneService:{objectLoDFactor:.2,pointLoDFactor:1,meshLoDFactor:.6,pointCloudLoDFactor:.5},gaussianSplat:{idleMinimumSplatPixelRadius:2,nonIdleMinimumSplatPixelRadius:2,idleMinimumOpacity:0,nonIdleMinimumOpacity:0,maximumNumberOfGaussians:1e6},flow:{maxTotalNumberOfStreamlines:5e3,maxTracingResolution:1024,transitionEnabled:!1},tiledSurface:{lodBias:-1,angledSplitBias:.5,vtlContentZoom:.75,elevationLevelDelta:3,reduceTileLevelDifferences:!0},fadeDuration:e(0),physicallyBasedRenderingEnabled:!1,maxTexturePixels:a?1048576:4194304,memoryLimit:200+l.IPhone12Pro,additionalCacheMemory:0,frameRate:0,maximumPixelRatio:1},medium:{graphics3D:{maxTotalNumberOfFeatures:15e4,maxNumberOfDrawCalls:17e3,maxTotalNumberOfVertices:625e4,polygonLodFactor:a?.8:1,polylineLodFactor:a?1.2:1.5,snapshotAvailable:!i,skipHighSymbolLods:!1},heatmap:{pixelRatio:.25},sceneService:{objectLoDFactor:1,pointLoDFactor:1,meshLoDFactor:1,pointCloudLoDFactor:1},gaussianSplat:{idleMinimumSplatPixelRadius:1,nonIdleMinimumSplatPixelRadius:1.5,idleMinimumOpacity:1,nonIdleMinimumOpacity:0,maximumNumberOfGaussians:2e6},flow:{maxTotalNumberOfStreamlines:2e4,maxTracingResolution:2048,transitionEnabled:!0},tiledSurface:{lodBias:0,angledSplitBias:1,vtlContentZoom:1.5,elevationLevelDelta:3,reduceTileLevelDifferences:!0},fadeDuration:o,physicallyBasedRenderingEnabled:!0,maxTexturePixels:a?4194304:4096**2,memoryLimit:a?600+l.GalaxyS20:750+l.FullHD,additionalCacheMemory:a?-100:150,frameRate:0,maximumPixelRatio:1},high:{graphics3D:{maxTotalNumberOfFeatures:3e5,maxNumberOfDrawCalls:17e3,maxTotalNumberOfVertices:125e5,polygonLodFactor:a?1.2:2,polylineLodFactor:a?1.2:2,snapshotAvailable:!i,skipHighSymbolLods:!1},heatmap:{pixelRatio:.5},sceneService:{objectLoDFactor:1,pointLoDFactor:1,meshLoDFactor:1,pointCloudLoDFactor:1},gaussianSplat:{idleMinimumSplatPixelRadius:.5,nonIdleMinimumSplatPixelRadius:1,idleMinimumOpacity:2,nonIdleMinimumOpacity:1,maximumNumberOfGaussians:4e6},flow:{maxTotalNumberOfStreamlines:2e4,maxTracingResolution:2048,transitionEnabled:!0},tiledSurface:{lodBias:0,angledSplitBias:1,vtlContentZoom:1.5,elevationLevelDelta:2,reduceTileLevelDifferences:!0},fadeDuration:o,physicallyBasedRenderingEnabled:!0,maxTexturePixels:a?4096**2:1/0,memoryLimit:a?900+l.SurfacePro7:1500+l.FullHDRetina,additionalCacheMemory:a?-150:0,frameRate:0,maximumPixelRatio:a?1:1/0}}}export{o as QualityProfileTest,i as getDefaultQualityProfileName,a as getQualityProfileSettings};
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */
2
- import{reallocGrowthFactor as e}from"../../../../core/arrayUtils.js";import{abortMaybe as t}from"../../../../core/maybe.js";import{estimateNumberArrayMemory as s}from"../../../../core/memoryEstimations.js";import{isAbortError as i}from"../../../../core/promiseUtils.js";import{signal as r}from"../../../../core/signal.js";import{Milliseconds as a,now as o}from"../../../../core/time.js";import{exactEquals as n,copy as l,normalize as h}from"../../../../core/libs/gl-matrix-2/math/vec3.js";import{create as u}from"../../../../core/libs/gl-matrix-2/factories/vec3f64.js";import{create as d,exactEquals as _,intersects as c,copy as p}from"../../../../geometry/support/aaBoundingBox.js";import{makeScheduleFunction as f}from"../../layers/support/makeScheduleFunction.js";import{GaussianSplatSortWorkerHandle as m}from"../GaussianSplatWorkerHandle.js";import{GaussianSplatFadeTexture as g}from"./GaussianSplatFadeTexture.js";import{GaussianSplatOrderTexture as T}from"./GaussianSplatOrderTexture.js";import{GaussianSplatTextureAtlas as b}from"./GaussianSplatTextureAtlas.js";import{DepthRange as S}from"../../webgl-engine/lib/DepthRange.js";import{TaskPriority as y}from"../../../support/Scheduler.js";class C{constructor(e,t){this._updating=r(!1),this._useDeterministicSort=!1,this._sortBufferMemory=0,this.visibleGaussians=0,this._visibleTileDepthRange=new S,this._previousVisibleTileDepthRangeEye=u(),this._previousVisibleTileDepthRangeViewForward=u(),this._previousVisibleTileDepthRangeClippingBox=d(),this._latestSortedGaussianTilesVersion=0,this._previousVisibleTileDepthRangeTilesVersion=-1,this._previousVisibleTileDepthRangeHasClippingBox=!1,this._bufferCapacity=0,this._requestedLyr3dVisibilityChange=0,this._latestCompletedLyr3dVisibilityChange=0,this._latestUpdatedGaussianTiles=new Array,this._latestSortedGaussianTiles=new Array,this._nextCommittedVisibleGaussianTiles=new Array,this._cameraDirectionNormalized=u(),this._frameTask=null,this._workerHandle=null,this._sortAbortController=null,this._isSorting=!1,this._pendingSortTask=!1,this._scheduledSortStartTimeout=null,this._lastSortStartTime=a(-1/0),this._sortInterval=a(80),this._renderer=e,this._onSortComplete=t,this._orderTexture=new T(this._renderer.renderingContext),this._fadingTexture=new g(this._renderer.renderingContext),this._textureAtlas=new b(this._renderer.renderingContext,this._renderer.view.resourceController.memoryController,this._renderer.fboCache);const{resourceController:s}=this._renderer.view;this._workerHandle=new m(f(s)),this._frameTask=s.scheduler.registerTask(y.GAUSSIAN_SPLAT_SORTING)}get textureAtlas(){return this._textureAtlas}get orderTexture(){return this._orderTexture}get fadingTexture(){return this._fadingTexture}get textureAtlasMemory(){return this._textureAtlas.usedMemory}get orderTextureMemory(){return this._orderTexture.usedMemory}get fadingTextureMemory(){return this._fadingTexture.usedMemory}get sortBufferMemory(){return this._sortBufferMemory}get usedMemory(){return this.textureAtlasMemory+this.orderTextureMemory+this.fadingTextureMemory+this.sortBufferMemory}queryVisibleTileDepthRange(e,t){if(0===this.visibleGaussians)return null;const{eye:s,viewForward:i}=e,r=s[0],a=s[1],o=s[2],h=i[0],u=i[1],d=i[2],f=this._visibleTileDepthRange;if(this._previousVisibleTileDepthRangeTilesVersion===this._latestSortedGaussianTilesVersion&&n(this._previousVisibleTileDepthRangeEye,s)&&n(this._previousVisibleTileDepthRangeViewForward,i)&&(null==t?!this._previousVisibleTileDepthRangeHasClippingBox:this._previousVisibleTileDepthRangeHasClippingBox&&_(this._previousVisibleTileDepthRangeClippingBox,t)))return f.near<=f.far?f:null;let m=1/0,g=-1/0;const T=this._latestSortedGaussianTiles;for(let n=0;n<T.length;n++){const e=T[n];if(null!=t){const s=e.boundingBox;if(!c(s,t))continue}const s=h*(e.obbCenterX-r)+u*(e.obbCenterY-a)+d*(e.obbCenterZ-o),i=e.paddedMbsRadius,l=s-i;l<m&&(m=l);const _=s+i;_>g&&(g=_)}const b=m<=g;return b?f.set(m,g):f.set(1/0,-1/0),this._previousVisibleTileDepthRangeTilesVersion=this._latestSortedGaussianTilesVersion,this._previousVisibleTileDepthRangeHasClippingBox=null!=t,l(this._previousVisibleTileDepthRangeEye,s),l(this._previousVisibleTileDepthRangeViewForward,i),null!=t&&p(this._previousVisibleTileDepthRangeClippingBox,t),b?f:null}updateGaussianVisibility(e,t){this._latestUpdatedGaussianTiles=e,this._requestedLyr3dVisibilityChange=t,this.requestSort()}get updating(){return this._updating.value}destroy(){this._sortAbortController=t(this._sortAbortController),this._pendingSortTask=!1,this._updating.value=!1,null!=this._scheduledSortStartTimeout&&(clearTimeout(this._scheduledSortStartTimeout),this._scheduledSortStartTimeout=null),this._frameTask.remove(),this._workerHandle?.destroyWorkerAndSelf(),this._textureAtlas.destroy(),this._orderTexture.destroy(),this._fadingTexture.destroy()}requestSort(){return this._updating.value=!0,!this._pendingSortTask&&(this._pendingSortTask=!0,this._scheduleSortStart(),!0)}_scheduleSortStart(){if(this._isSorting)return;const e=o()-this._lastSortStartTime,t=this._sortInterval-e;t<=0?this._startSortIfRequired():null==this._scheduledSortStartTimeout&&(this._scheduledSortStartTimeout=setTimeout(()=>{this._scheduledSortStartTimeout=null,this._pendingSortTask&&!this._isSorting&&this._scheduleSortStart()},t))}_startSortIfRequired(){if(this._isSorting||!this._pendingSortTask)return;const e=new AbortController;this._sortAbortController=e,this._isSorting=!0,this._pendingSortTask=!1,this._lastSortStartTime=o(),this._sortOnWorker(e.signal).finally(()=>{this._sortAbortController===e&&(this._sortAbortController=null),this._handleSortComplete()})}_handleSortComplete(){this._isSorting=!1,this._pendingSortTask?this._scheduleSortStart():this._updating.value=!1}_clearBuffersAndTextures(){this._atlasIndicesBuffer=void 0,this._packedSortedAtlasIndicesBuffer=void 0,this._distancesBuffer=void 0,this._bufferCapacity=0,this._sortBufferMemory=0,this._orderTexture.clear(),this._textureAtlas.clear()}_computeExpandedCapacity(t,s){let i=Math.max(1,t);for(;i<s;)i=Math.ceil(i*e);return i}_ensureSortBufferCapacities(e){if(this._bufferCapacity<e){const t=this._computeExpandedCapacity(this._bufferCapacity,e);this._atlasIndicesBuffer=new Uint32Array(t),this._packedSortedAtlasIndicesBuffer=new Uint8Array(t*T.bytesPerPackedGaussianIndex),this._distancesBuffer=new Float64Array(t),this._bufferCapacity=t,this._sortBufferMemory=s(this._atlasIndicesBuffer,this._packedSortedAtlasIndicesBuffer,this._distancesBuffer)}}_clearAllBuffersAndTextures(){this._clearBuffersAndTextures(),this._latestSortedGaussianTiles.length=0,this._nextCommittedVisibleGaussianTiles.length=0,this._previousVisibleTileDepthRangeTilesVersion=-1,this._workerHandle?.clear()}async _sortOnWorker(e){try{if(0===this._latestUpdatedGaussianTiles.length)return this.visibleGaussians=0,this._clearAllBuffersAndTextures(),this._latestCompletedLyr3dVisibilityChange=this._requestedLyr3dVisibilityChange,this._onSortComplete(this._latestSortedGaussianTiles,this._latestCompletedLyr3dVisibilityChange),void this._renderer.requestRender(1);this._useDeterministicSort&&this._latestUpdatedGaussianTiles.sort((e,t)=>e.obb.centerX-t.obb.centerX||e.obb.centerY-t.obb.centerY||e.obb.centerZ-t.obb.centerZ);const t=this._latestUpdatedGaussianTiles,s=t.length,i=this._requestedLyr3dVisibilityChange;let r=0;for(let e=0;e<s;e++)r+=t[e].gaussianCount;this._ensureSortBufferCapacities(r),this._textureAtlas.ensureTextureAtlas();const a=this._renderer.camera;h(this._cameraDirectionNormalized,a.ray.direction);const o=this._cameraDirectionNormalized[0],n=this._cameraDirectionNormalized[1],l=this._cameraDirectionNormalized[2];let u=0;const d=this._atlasIndicesBuffer,_=this._distancesBuffer,p=this._renderer.clippingBox,f=this._nextCommittedVisibleGaussianTiles;f.length=0;let m=0;const{frustum:g}=a,T=this._renderer.tileCullingRevision,b=g[0],S=g[1],y=g[2],C=g[3],x=g[4],V=g[5];for(let e=0;e<s;e++){const s=t[e],{gaussianAtlasIndices:i,relativePositions:r,obbCenterX:a,obbCenterY:h,obbCenterZ:g,paddedMbsRadius:v}=s,A=s.gaussianCount;if(s.cullingRevision!==T){let e=null==p||c(s.boundingBox,p);if(e){const t=1.5*v;e=b[0]*a+b[1]*h+b[2]*g+b[3]<t&&S[0]*a+S[1]*h+S[2]*g+S[3]<t&&y[0]*a+y[1]*h+y[2]*g+y[3]<t&&C[0]*a+C[1]*h+C[2]*g+C[3]<t&&x[0]*a+x[1]*h+x[2]*g+x[3]<t&&V[0]*a+V[1]*h+V[2]*g+V[3]<t}s.cullingRevision=T,s.cullingVisible=e}if(!s.cullingVisible)continue;d.set(i,u),f[m++]=s;const B=o*a+n*h+l*g,G=u+A;for(let e=u,t=0;e<G;e++,t+=3){const s=r[t],i=r[t+1],a=r[t+2];_[e]=s*o+i*n+a*l+B}u=G}if(f.length=m,0===u)return this.visibleGaussians=0,this._clearAllBuffersAndTextures(),this._latestCompletedLyr3dVisibilityChange=i,this._onSortComplete(this._latestSortedGaussianTiles,this._latestCompletedLyr3dVisibilityChange),void this._renderer.requestRender(1);const v={distances:this._distancesBuffer,atlasIndices:this._atlasIndicesBuffer,packedSortedAtlasIndices:this._packedSortedAtlasIndicesBuffer,numGaussians:u,preciseSort:this._useDeterministicSort},A=await(this._workerHandle?.sort(v,e));if(A&&(this._distancesBuffer=A.distances,this._atlasIndicesBuffer=A.atlasIndices,this._packedSortedAtlasIndicesBuffer=A.packedSortedAtlasIndices),e.aborted)return;const B=async e=>{this._orderTexture.setData(this._packedSortedAtlasIndicesBuffer,u);const t=this._latestSortedGaussianTiles;this._latestSortedGaussianTiles=f,this._nextCommittedVisibleGaussianTiles=t,this._latestSortedGaussianTilesVersion++,this._latestCompletedLyr3dVisibilityChange=i,this.visibleGaussians=u,this._onSortComplete(this._latestSortedGaussianTiles,this._latestCompletedLyr3dVisibilityChange),this._renderer.requestRender(1),e.madeProgress()};await this._frameTask.schedule(B,e)}catch(t){if(i(t))return}}set useDeterministicSort(e){this._useDeterministicSort=e}}export{C as GaussianSplatDataStore};
2
+ import{reallocGrowthFactor as e}from"../../../../core/arrayUtils.js";import{abortMaybe as t}from"../../../../core/maybe.js";import{estimateNumberArrayMemory as s}from"../../../../core/memoryEstimations.js";import{isAbortError as i}from"../../../../core/promiseUtils.js";import{signal as r}from"../../../../core/signal.js";import{Milliseconds as o,now as a}from"../../../../core/time.js";import{exactEquals as n,copy as l,normalize as h}from"../../../../core/libs/gl-matrix-2/math/vec3.js";import{create as u}from"../../../../core/libs/gl-matrix-2/factories/vec3f64.js";import{create as d,exactEquals as _,intersects as c,copy as p}from"../../../../geometry/support/aaBoundingBox.js";import{makeScheduleFunction as f}from"../../layers/support/makeScheduleFunction.js";import{GaussianSplatSortWorkerHandle as m}from"../GaussianSplatWorkerHandle.js";import{GaussianSplatFadeTexture as g}from"./GaussianSplatFadeTexture.js";import{GaussianSplatOrderTexture as T}from"./GaussianSplatOrderTexture.js";import{GaussianSplatTextureAtlas as b}from"./GaussianSplatTextureAtlas.js";import{DepthRange as S}from"../../webgl-engine/lib/DepthRange.js";import{TaskPriority as y}from"../../../support/Scheduler.js";class C{constructor(e,t){this._updating=r(!1),this._useDeterministicSort=!1,this._sortBufferMemory=0,this.visibleGaussians=0,this._visibleTileDepthRange=new S,this._previousVisibleTileDepthRangeEye=u(),this._previousVisibleTileDepthRangeViewForward=u(),this._previousVisibleTileDepthRangeClippingBox=d(),this._latestSortedGaussianTilesVersion=0,this._previousVisibleTileDepthRangeTilesVersion=-1,this._previousVisibleTileDepthRangeHasClippingBox=!1,this._bufferCapacity=0,this._requestedLyr3dVisibilityChange=0,this._latestCompletedLyr3dVisibilityChange=0,this._latestUpdatedGaussianTiles=new Array,this._latestSortedGaussianTiles=new Array,this._nextCommittedVisibleGaussianTiles=new Array,this._cameraDirectionNormalized=u(),this._frameTask=null,this._workerHandle=null,this._sortAbortController=null,this._isSorting=!1,this._pendingSortTask=!1,this._scheduledSortStartTimeout=null,this._lastSortStartTime=o(-1/0),this._sortInterval=o(80),this._renderer=e,this._onSortComplete=t,this._orderTexture=new T(this._renderer.renderingContext),this._fadingTexture=new g(this._renderer.renderingContext),this._textureAtlas=new b(this._renderer.renderingContext,this._renderer.view.resourceController.memoryController,this._renderer.fboCache);const{resourceController:s}=this._renderer.view;this._workerHandle=new m(f(s)),this._frameTask=s.scheduler.registerTask(y.GAUSSIAN_SPLAT_SORTING)}get textureAtlas(){return this._textureAtlas}get orderTexture(){return this._orderTexture}get fadingTexture(){return this._fadingTexture}get textureAtlasMemory(){return this._textureAtlas.usedMemory}get orderTextureMemory(){return this._orderTexture.usedMemory}get fadingTextureMemory(){return this._fadingTexture.usedMemory}get sortBufferMemory(){return this._sortBufferMemory}get usedMemory(){return this.textureAtlasMemory+this.orderTextureMemory+this.fadingTextureMemory+this.sortBufferMemory}queryVisibleTileDepthRange(e,t){if(0===this.visibleGaussians)return null;const{eye:s,viewForward:i}=e,r=s[0],o=s[1],a=s[2],h=i[0],u=i[1],d=i[2],f=this._visibleTileDepthRange;if(this._previousVisibleTileDepthRangeTilesVersion===this._latestSortedGaussianTilesVersion&&n(this._previousVisibleTileDepthRangeEye,s)&&n(this._previousVisibleTileDepthRangeViewForward,i)&&(null==t?!this._previousVisibleTileDepthRangeHasClippingBox:this._previousVisibleTileDepthRangeHasClippingBox&&_(this._previousVisibleTileDepthRangeClippingBox,t)))return f.near<=f.far?f:null;let m=1/0,g=-1/0;const T=this._latestSortedGaussianTiles;for(let n=0;n<T.length;n++){const e=T[n];if(null!=t){const s=e.boundingBox;if(!c(s,t))continue}const s=h*(e.obbCenterX-r)+u*(e.obbCenterY-o)+d*(e.obbCenterZ-a),i=e.paddedMbsRadius,l=s-i;l<m&&(m=l);const _=s+i;_>g&&(g=_)}const b=m<=g;return b?f.set(m,g):f.set(1/0,-1/0),this._previousVisibleTileDepthRangeTilesVersion=this._latestSortedGaussianTilesVersion,this._previousVisibleTileDepthRangeHasClippingBox=null!=t,l(this._previousVisibleTileDepthRangeEye,s),l(this._previousVisibleTileDepthRangeViewForward,i),null!=t&&p(this._previousVisibleTileDepthRangeClippingBox,t),b?f:null}updateGaussianVisibility(e,t){this._latestUpdatedGaussianTiles=e,this._requestedLyr3dVisibilityChange=t,this.requestSort()}get updating(){return this._updating.value}destroy(){this._sortAbortController=t(this._sortAbortController),this._pendingSortTask=!1,this._updating.value=!1,null!=this._scheduledSortStartTimeout&&(clearTimeout(this._scheduledSortStartTimeout),this._scheduledSortStartTimeout=null),this._frameTask.remove(),this._workerHandle?.destroyWorkerAndSelf(),this._textureAtlas.destroy(),this._orderTexture.destroy(),this._fadingTexture.destroy()}requestSort(){return this._updating.value=!0,!this._pendingSortTask&&(this._pendingSortTask=!0,this._scheduleSortStart(),!0)}_scheduleSortStart(){if(this._isSorting)return;const e=a()-this._lastSortStartTime,t=this._sortInterval-e;t<=0?this._startSortIfRequired():null==this._scheduledSortStartTimeout&&(this._scheduledSortStartTimeout=setTimeout(()=>{this._scheduledSortStartTimeout=null,this._pendingSortTask&&!this._isSorting&&this._scheduleSortStart()},t))}_startSortIfRequired(){if(this._isSorting||!this._pendingSortTask)return;const e=new AbortController;this._sortAbortController=e,this._isSorting=!0,this._pendingSortTask=!1,this._lastSortStartTime=a(),this._sortOnWorker(e.signal).finally(()=>{this._sortAbortController===e&&(this._sortAbortController=null),this._handleSortComplete()})}_handleSortComplete(){this._isSorting=!1,this._pendingSortTask?this._scheduleSortStart():this._updating.value=!1}_clearBuffersAndTextures(){this._atlasIndicesBuffer=void 0,this._sortedAtlasIndicesBuffer=void 0,this._distancesBuffer=void 0,this._bufferCapacity=0,this._sortBufferMemory=0,this._orderTexture.clear(),this._textureAtlas.clear()}_computeExpandedCapacity(t,s){let i=Math.max(1,t);for(;i<s;)i=Math.ceil(i*e);return i}_ensureSortBufferCapacities(e){if(this._bufferCapacity<e){const t=this._computeExpandedCapacity(this._bufferCapacity,e);this._atlasIndicesBuffer=new Uint32Array(t),this._sortedAtlasIndicesBuffer=new Uint32Array(t),this._distancesBuffer=new Float64Array(t),this._bufferCapacity=t,this._sortBufferMemory=s(this._atlasIndicesBuffer,this._sortedAtlasIndicesBuffer,this._distancesBuffer)}}_clearAllBuffersAndTextures(){this._clearBuffersAndTextures(),this._latestSortedGaussianTiles.length=0,this._nextCommittedVisibleGaussianTiles.length=0,this._previousVisibleTileDepthRangeTilesVersion=-1,this._workerHandle?.clear()}async _sortOnWorker(e){try{if(0===this._latestUpdatedGaussianTiles.length)return this.visibleGaussians=0,this._clearAllBuffersAndTextures(),this._latestCompletedLyr3dVisibilityChange=this._requestedLyr3dVisibilityChange,this._onSortComplete(this._latestSortedGaussianTiles,this._latestCompletedLyr3dVisibilityChange),void this._renderer.requestRender(1);this._useDeterministicSort&&this._latestUpdatedGaussianTiles.sort((e,t)=>e.obb.centerX-t.obb.centerX||e.obb.centerY-t.obb.centerY||e.obb.centerZ-t.obb.centerZ);const t=this._latestUpdatedGaussianTiles,s=t.length,i=this._requestedLyr3dVisibilityChange;let r=0;for(let e=0;e<s;e++)r+=t[e].gaussianCount;this._ensureSortBufferCapacities(r),this._textureAtlas.ensureTextureAtlas();const o=this._renderer.camera;h(this._cameraDirectionNormalized,o.ray.direction);const a=this._cameraDirectionNormalized[0],n=this._cameraDirectionNormalized[1],l=this._cameraDirectionNormalized[2];let u=0;const d=this._atlasIndicesBuffer,_=this._distancesBuffer,p=this._renderer.clippingBox,f=this._nextCommittedVisibleGaussianTiles;f.length=0;let m=0;const{frustum:g}=o,T=this._renderer.tileCullingRevision,b=g[0],S=g[1],y=g[2],C=g[3],x=g[4],V=g[5];for(let e=0;e<s;e++){const s=t[e],{gaussianAtlasIndices:i,relativePositions:r,obbCenterX:o,obbCenterY:h,obbCenterZ:g,paddedMbsRadius:v}=s,A=s.gaussianCount;if(s.cullingRevision!==T){let e=null==p||c(s.boundingBox,p);if(e){const t=1.5*v;e=b[0]*o+b[1]*h+b[2]*g+b[3]<t&&S[0]*o+S[1]*h+S[2]*g+S[3]<t&&y[0]*o+y[1]*h+y[2]*g+y[3]<t&&C[0]*o+C[1]*h+C[2]*g+C[3]<t&&x[0]*o+x[1]*h+x[2]*g+x[3]<t&&V[0]*o+V[1]*h+V[2]*g+V[3]<t}s.cullingRevision=T,s.cullingVisible=e}if(!s.cullingVisible)continue;d.set(i,u),f[m++]=s;const B=a*o+n*h+l*g,G=u+A;for(let e=u,t=0;e<G;e++,t+=3){const s=r[t],i=r[t+1],o=r[t+2];_[e]=s*a+i*n+o*l+B}u=G}if(f.length=m,0===u)return this.visibleGaussians=0,this._clearAllBuffersAndTextures(),this._latestCompletedLyr3dVisibilityChange=i,this._onSortComplete(this._latestSortedGaussianTiles,this._latestCompletedLyr3dVisibilityChange),void this._renderer.requestRender(1);const v={distances:this._distancesBuffer,atlasIndices:this._atlasIndicesBuffer,sortedAtlasIndices:this._sortedAtlasIndicesBuffer,numGaussians:u,preciseSort:this._useDeterministicSort},A=await(this._workerHandle?.sort(v,e));if(e.aborted)return;A&&(this._distancesBuffer=A.distances,this._atlasIndicesBuffer=A.atlasIndices,this._sortedAtlasIndicesBuffer=A.sortedAtlasIndices);const B=async e=>{this._orderTexture.setData(this._sortedAtlasIndicesBuffer,u);const t=this._latestSortedGaussianTiles;this._latestSortedGaussianTiles=f,this._nextCommittedVisibleGaussianTiles=t,this._latestSortedGaussianTilesVersion++,this._latestCompletedLyr3dVisibilityChange=i,this.visibleGaussians=u,this._onSortComplete(this._latestSortedGaussianTiles,this._latestCompletedLyr3dVisibilityChange),this._renderer.requestRender(1),e.madeProgress()};await this._frameTask.schedule(B,e)}catch(t){if(i(t))return}}set useDeterministicSort(e){this._useDeterministicSort=e}}export{C as GaussianSplatDataStore};
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */
2
- import{reallocGrowthFactor as e}from"../../../../core/arrayUtils.js";import{estimateNumberArrayMemory as t}from"../../../../core/memoryEstimations.js";import{fromValues as r}from"../../../../core/libs/gl-matrix-2/factories/vec2f64.js";import"../../../webgl/BufferObject.js";import"../../../webgl/FramebufferObject.js";import"../../../webgl/Program.js";import"../../../../core/has.js";import"../../../webgl/Renderbuffer.js";import i from"../../../webgl/Texture.js";import"../../../../core/Logger.js";import{PixelType as s,SizedPixelFormat as a}from"../../../webgl/enums.js";import"../../../webgl/Util.js";import{minExpectedGaussianCount as o}from"./GaussianSplatAtlasPages.js";import{TextureDescriptor as u}from"../../../webgl/TextureDescriptor.js";class d{static{this.bytesPerPackedGaussianIndex=3}constructor(e){this.texture=null,this._orderTextureCapacity=0,this._rctx=e}get usedMemory(){return(this.texture?.usedMemory??0)+t(this._packedUploadBuffer)}ensureCapacity(t){if(t<=0)return{textureWidth:0,rowCount:0,paddedSize:0};const r=this.texture;if(this._orderTextureCapacity>=t&&r?.hasWebGLTextureObject){const e=r.descriptor.width,i=Math.ceil(t/e);return{textureWidth:e,rowCount:i,paddedSize:e*i}}const d=Math.max(Math.ceil(t*e),o),[c,p]=this._evalTextureSize(d),n=c*p;this._orderTextureCapacity=n,this.texture?.dispose();const h=new u;h.width=c,h.height=p,h.pixelFormat=36248,h.dataType=s.UNSIGNED_BYTE,h.internalFormat=a.RGB8UI,h.wrapMode=33071,h.samplingMode=9728,h.unpackAlignment=1,h.isImmutable=!0,this.texture=new i(this._rctx,h);const l=Math.ceil(t/c);return{textureWidth:c,rowCount:l,paddedSize:c*l}}setData(e,t){const{textureWidth:r,rowCount:i,paddedSize:s}=this.ensureCapacity(t),a=s*d.bytesPerPackedGaussianIndex;if(e.length>=a)return void this.texture.updateData(0,0,0,r,i,e);(!this._packedUploadBuffer||this._packedUploadBuffer.length<a)&&(this._packedUploadBuffer=new Uint8Array(a));const o=this._packedUploadBuffer;o.set(e.subarray(0,t*d.bytesPerPackedGaussianIndex)),this.texture.updateData(0,0,0,r,i,o)}clear(){this._orderTextureCapacity=0,this._packedUploadBuffer=void 0,this.texture?.dispose(),this.texture=null}destroy(){this.clear()}_evalTextureSize(e){const t=Math.ceil(Math.sqrt(e)),i=Math.ceil(e/t);return r(t,i)}}export{d as GaussianSplatOrderTexture};
2
+ import{reallocGrowthFactor as t}from"../../../../core/arrayUtils.js";import{estimateNumberArrayMemory as e}from"../../../../core/memoryEstimations.js";import{fromValues as r}from"../../../../core/libs/gl-matrix-2/factories/vec2f64.js";import"../../../webgl/BufferObject.js";import"../../../webgl/FramebufferObject.js";import"../../../webgl/Program.js";import"../../../../core/has.js";import"../../../webgl/Renderbuffer.js";import i from"../../../webgl/Texture.js";import"../../../../core/Logger.js";import{PixelType as s,SizedPixelFormat as a}from"../../../webgl/enums.js";import"../../../webgl/Util.js";import{minExpectedGaussianCount as o}from"./GaussianSplatAtlasPages.js";import{TextureDescriptor as u}from"../../../webgl/TextureDescriptor.js";class d{constructor(t){this.texture=null,this._orderTextureCapacity=0,this._rctx=t}get usedMemory(){return(this.texture?.usedMemory??0)+e(this._uploadAtlasIndices)}ensureCapacity(e){if(e<=0)return{textureWidth:0,rowCount:0,paddedSize:0};const r=this.texture;if(this._orderTextureCapacity>=e&&r?.hasWebGLTextureObject){const t=r.descriptor.width,i=Math.ceil(e/t);return{textureWidth:t,rowCount:i,paddedSize:t*i}}const d=Math.max(Math.ceil(e*t),o),[l,c]=this._evalTextureSize(d),h=l*c;this._orderTextureCapacity=h,this.texture?.dispose();const n=new u;n.width=l,n.height=c,n.pixelFormat=36244,n.dataType=s.UNSIGNED_INT,n.internalFormat=a.R32UI,n.wrapMode=33071,n.samplingMode=9728,n.isImmutable=!0,this.texture=new i(this._rctx,n);const p=Math.ceil(e/l);return{textureWidth:l,rowCount:p,paddedSize:l*p}}setData(t,e){const{textureWidth:r,rowCount:i,paddedSize:s}=this.ensureCapacity(e);if(t.length>=s)return void this.texture.updateData(0,0,0,r,i,t);(!this._uploadAtlasIndices||this._uploadAtlasIndices.length<s)&&(this._uploadAtlasIndices=new Uint32Array(s));const a=this._uploadAtlasIndices;a.set(t.subarray(0,e)),this.texture.updateData(0,0,0,r,i,a)}clear(){this._orderTextureCapacity=0,this._uploadAtlasIndices=void 0,this.texture?.dispose(),this.texture=null}destroy(){this.clear()}_evalTextureSize(t){const e=Math.ceil(Math.sqrt(t)),i=Math.ceil(t/e);return r(e,i)}}export{d as GaussianSplatOrderTexture};
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */
2
- import{reallocGrowthFactor as t}from"../../../../core/arrayUtils.js";import{initialSplatAtlasTextureHeight as e,GaussianSplatAtlasPages as s,splatAtlasTextureWidth as r,elementsPerSplatPage as a}from"./GaussianSplatAtlasPages.js";import{GaussianSplatOrderTexture as i}from"./GaussianSplatOrderTexture.js";import{PixelType as l,SizedPixelFormat as u}from"../../../webgl/enums.js";import{DisposableFramebufferObject as o}from"../../../webgl/FramebufferObject.js";import h from"../../../webgl/Texture.js";import{TextureDescriptor as p}from"../../../webgl/TextureDescriptor.js";class c{constructor(t,r,a){this._splatAtlasTextureHeight=e,this.texture=null,this._rctx=t,this._fboCache=a,this.pageAllocator=new s,this._cache=r.newCache("gaussian texture cache",t=>t.dispose())}get usedMemory(){return this.texture?.usedMemory??0}ensureTextureAtlas(){if(this.texture?.hasWebGLTextureObject)return;this.texture=null;const t=this._cache.pop("splatTextureAtlas");if(t)return void(this.texture=t);const e=new p;e.height=this._splatAtlasTextureHeight,e.width=r,e.pixelFormat=36249,e.dataType=l.UNSIGNED_INT,e.internalFormat=u.RGBA32UI,e.samplingMode=9728,e.wrapMode=33071,e.isImmutable=!0,this.texture=new h(this._rctx,e),this._updatePageAllocator()}grow(){if(!this.texture)return this.ensureTextureAtlas(),!1;const e=Math.floor(this._splatAtlasTextureHeight*t),s=Math.min(e,x);if(s<=this._splatAtlasTextureHeight)return!1;if(s*r>this._rctx.parameters.maxPreferredTexturePixels)return!1;const a=new o(this._rctx,this.texture),i=this._fboCache.acquire(r,s,"gaussian splat atlas resize",12);return this._rctx.blitFramebuffer(a,i.fbo,16384,9728,0,0,r,this._splatAtlasTextureHeight,0,0,r,this._splatAtlasTextureHeight),this.texture=i.fbo?.detachColorTexture(),a.dispose(),i.dispose(),this._splatAtlasTextureHeight=s,this._updatePageAllocator(),!0}requestPage(){let t=this.pageAllocator.findFirstFreePage();return null===t&&this.grow()&&(t=this.pageAllocator.findFirstFreePage()),null!==t&&this.pageAllocator.allocate(t),t}freePage(t){this.pageAllocator.free(t)}update(t,e,s){this.ensureTextureAtlas(),this.texture.updateData(0,t,e,a,1,s)}_updatePageAllocator(){const t=r*this._splatAtlasTextureHeight/a;this.pageAllocator.pageCount!==t&&this.pageAllocator.resize(t)}clear(){this.texture&&(this._cache.put("splatTextureAtlas",this.texture),this.texture=null)}destroy(){this._cache.destroy(),this.texture?.dispose(),this.texture=null}}const x=2**(8*i.bytesPerPackedGaussianIndex)/r;export{c as GaussianSplatTextureAtlas};
2
+ import{reallocGrowthFactor as t}from"../../../../core/arrayUtils.js";import{initialSplatAtlasTextureHeight as e,GaussianSplatAtlasPages as s,splatAtlasTextureWidth as r,elementsPerSplatPage as a}from"./GaussianSplatAtlasPages.js";import{PixelType as i,SizedPixelFormat as l}from"../../../webgl/enums.js";import{DisposableFramebufferObject as o}from"../../../webgl/FramebufferObject.js";import u from"../../../webgl/Texture.js";import{TextureDescriptor as h}from"../../../webgl/TextureDescriptor.js";class c{constructor(t,r,a){this._splatAtlasTextureHeight=e,this.texture=null,this._rctx=t,this._fboCache=a,this.pageAllocator=new s,this._cache=r.newCache("gaussian texture cache",t=>t.dispose())}get usedMemory(){return this.texture?.usedMemory??0}ensureTextureAtlas(){if(this.texture?.hasWebGLTextureObject)return;this.texture=null;const t=this._cache.pop("splatTextureAtlas");if(t)return void(this.texture=t);const e=new h;e.height=this._splatAtlasTextureHeight,e.width=r,e.pixelFormat=36249,e.dataType=i.UNSIGNED_INT,e.internalFormat=l.RGBA32UI,e.samplingMode=9728,e.wrapMode=33071,e.isImmutable=!0,this.texture=new u(this._rctx,e),this._updatePageAllocator()}grow(){if(!this.texture)return this.ensureTextureAtlas(),!1;const e=Math.floor(this._splatAtlasTextureHeight*t);if(e*r>this._rctx.parameters.maxPreferredTexturePixels)return!1;const s=new o(this._rctx,this.texture),a=this._fboCache.acquire(r,e,"gaussian splat atlas resize",12);return this._rctx.blitFramebuffer(s,a.fbo,16384,9728,0,0,r,this._splatAtlasTextureHeight,0,0,r,this._splatAtlasTextureHeight),this.texture=a.fbo?.detachColorTexture(),s.dispose(),a.dispose(),this._splatAtlasTextureHeight=e,this._updatePageAllocator(),!0}requestPage(){let t=this.pageAllocator.findFirstFreePage();return null===t&&this.grow()&&(t=this.pageAllocator.findFirstFreePage()),null!==t&&this.pageAllocator.allocate(t),t}freePage(t){this.pageAllocator.free(t)}update(t,e,s){this.ensureTextureAtlas(),this.texture.updateData(0,t,e,a,1,s)}_updatePageAllocator(){const t=r*this._splatAtlasTextureHeight/a;this.pageAllocator.pageCount!==t&&this.pageAllocator.resize(t)}clear(){this.texture&&(this._cache.put("splatTextureAtlas",this.texture),this.texture=null)}destroy(){this._cache.destroy(),this.texture?.dispose(),this.texture=null}}export{c as GaussianSplatTextureAtlas};
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */
2
- import"./ComponentData.glsl.js";import"../../../core/shaderLibrary/ForwardLinearDepthToWriteShadowMap.glsl.js";import"../../../core/shaderLibrary/ShaderOutput.js";import"../../../core/shaderLibrary/Slice.glsl.js";import"../../../core/shaderLibrary/attributes/TextureCoordinateAttribute.glsl.js";import"../../../core/shaderLibrary/attributes/VertexColor.glsl.js";import"../../../core/shaderLibrary/attributes/VertexNormal.glsl.js";import"../../../core/shaderLibrary/attributes/VertexPosition.glsl.js";import"../../../core/shaderLibrary/output/OutputDepth.glsl.js";import"../../../core/shaderLibrary/output/OutputHighlight.glsl.js";import"../../../core/shaderLibrary/output/OutputHighlightOverlay.js";import"../../../core/shaderLibrary/output/ReadDepth.glsl.js";import"../../../core/shaderLibrary/shading/ComputeFragmentNormals.glsl.js";import"../../../core/shaderLibrary/shading/ComputeMaterialColor.glsl.js";import"../../../core/shaderLibrary/shading/ComputeNormalTexture.glsl.js";import"../../../core/shaderLibrary/shading/EvaluateSceneLighting.glsl.js";import"../../../core/shaderLibrary/shading/MainLighting.glsl.js";import"../../../core/shaderLibrary/shading/PhysicallyBasedRenderingParameters.glsl.js";import"../../../core/shaderLibrary/shading/PiUtils.glsl.js";import"../../../core/shaderLibrary/shading/ReadBaseColorTexture.glsl.js";import"../../../core/shaderLibrary/shading/ReadShadowMap.glsl.js";import"../../../core/shaderLibrary/terrain/Overlay.glsl.js";import"../../../core/shaderLibrary/util/DiscardOrAdjustAlpha.glsl.js";import"../../../core/shaderModules/BooleanDrawUniform.js";import"../../../core/shaderModules/glsl.js";import"../../../core/shaderModules/Texture2DBindUniform.js";import"../../../effects/snowcover/SnowCover.glsl.js";import"../../../shaders/OutputColorHighlightOLID.glsl.js";import"../../../shaders/SphereDepthInterpolate.glsl.js";import"../../../../../webgl/ShaderBuilder.js";import"../../../../../../webscene/support/AlphaCutoff.js";export{b as build}from"../../../../../../chunks/ComponentShader.glsl.js";
2
+ import"./ComponentData.glsl.js";import"../../../core/shaderLibrary/ForwardLinearDepthToWriteShadowMap.glsl.js";import"../../../core/shaderLibrary/ShaderOutput.js";import"../../../core/shaderLibrary/Slice.glsl.js";import"../../../core/shaderLibrary/attributes/TextureCoordinateAttribute.glsl.js";import"../../../core/shaderLibrary/attributes/VertexColor.glsl.js";import"../../../core/shaderLibrary/attributes/VertexNormal.glsl.js";import"../../../core/shaderLibrary/attributes/VertexPosition.glsl.js";import"../../../core/shaderLibrary/output/OutputDepth.glsl.js";import"../../../core/shaderLibrary/output/OutputHighlight.glsl.js";import"../../../core/shaderLibrary/output/OutputHighlightOverlay.js";import"../../../core/shaderLibrary/output/ReadDepth.glsl.js";import"../../../core/shaderLibrary/shading/ComputeFragmentNormals.glsl.js";import"../../../core/shaderLibrary/shading/ComputeMaterialColor.glsl.js";import"../../../core/shaderLibrary/shading/ComputeNormalTexture.glsl.js";import"../../../core/shaderLibrary/shading/EvaluateSceneLighting.glsl.js";import"../../../core/shaderLibrary/shading/MainLighting.glsl.js";import"../../../core/shaderLibrary/shading/PhysicallyBasedRenderingParameters.glsl.js";import"../../../core/shaderLibrary/shading/PiUtils.glsl.js";import"../../../core/shaderLibrary/shading/ReadBaseColorTexture.glsl.js";import"../../../core/shaderLibrary/shading/ReadShadowMap.glsl.js";import"../../../core/shaderLibrary/terrain/Overlay.glsl.js";import"../../../core/shaderLibrary/util/DiscardOrAdjustAlpha.glsl.js";import"../../../core/shaderModules/BooleanDrawUniform.js";import"../../../core/shaderModules/glsl.js";import"../../../core/shaderModules/Texture2DBindUniform.js";import"../../../effects/snowcover/SnowCover.glsl.js";import"../../../shaders/alphaCutoff.glsl.js";import"../../../shaders/OutputColorHighlightOLID.glsl.js";import"../../../shaders/SphereDepthInterpolate.glsl.js";import"../../../../../webgl/ShaderBuilder.js";export{b as build}from"../../../../../../chunks/ComponentShader.glsl.js";
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */
2
- import{__decorate as e}from"tslib";import{subclass as r}from"../../../../../../core/accessorSupport/decorators.js";import{C as t}from"../../../../../../chunks/ComponentShader.glsl.js";import{isOITColor as i,isOITFrontFace as o}from"../../../core/shaderLibrary/ShaderOutput.js";import{ReloadableShader as n}from"../../../core/shaderTechnique/ReloadableShader.js";import{ShaderTechnique as l}from"../../../core/shaderTechnique/ShaderTechnique.js";import{depthTest as s,blending as a}from"../../../lib/OrderIndependentTransparency.js";import{stencilBaseAllZeros as p,stencilWriteMaskOn as d,replaceBitWhenDepthTestPasses as m}from"../../../lib/StencilUtils.js";import{IndexGlLayout as u}from"../../../materials/DefaultLayouts.js";import{polygonOffset as c}from"../../../materials/PolygonOffset.js";import{makePipelineState as h,defaultColorWrite as f,defaultDepthWrite as g,premultipliedAlpha as b,cullingParams as j}from"../../../../../webgl/renderState.js";let P=class extends l{constructor(e,r,i){super(e,r,i.concat(u)),this.shader=new n(t,()=>import("./ComponentShader.glsl.js")),this.ignoreUnused=!0}getPipeline(e,r){return e.camera.aboveGround||null==this._belowGroundPipeline?super.getPipeline(e,r):this._belowGroundPipeline}initializePipeline(e){return this._belowGroundPipeline=0===e.integratedMeshMode?null:this._makePipeline(e,!0),this._makePipeline(e,!1)}_makePipeline(e,r){const{integratedMeshMode:t,output:n,transparent:l,cullFace:u,hasOccludees:P,renderOccluded:S}=e,w=0!==t,T=!i(n),O=o(n);let _=j(u);return r&&_&&(_={..._,mode:2304}),h({blending:S?b:l?a(n):null,culling:_,depthTest:S?null:s(n),depthWrite:S||!T&&!O?null:g,colorWrite:f,stencilWrite:!S&&w||P?d:null,stencilTest:w?m(1):P?p:null,polygonOffset:c(e)})}};P=e([r("esri.views.3d.webgl-engine.collections.Component.Material.ComponentTechnique")],P);export{P as ComponentTechnique};
2
+ import{__decorate as e}from"tslib";import{subclass as r}from"../../../../../../core/accessorSupport/decorators.js";import{C as t}from"../../../../../../chunks/ComponentShader.glsl.js";import{isOITColorAlpha as i,isOITFrontFace as o}from"../../../core/shaderLibrary/ShaderOutput.js";import{ReloadableShader as n}from"../../../core/shaderTechnique/ReloadableShader.js";import{ShaderTechnique as l}from"../../../core/shaderTechnique/ShaderTechnique.js";import{depthTest as s,blending as a}from"../../../lib/OrderIndependentTransparency.js";import{stencilBaseAllZeros as p,stencilWriteMaskOn as d,replaceBitWhenDepthTestPasses as m}from"../../../lib/StencilUtils.js";import{IndexGlLayout as u}from"../../../materials/DefaultLayouts.js";import{polygonOffset as c}from"../../../materials/PolygonOffset.js";import{makePipelineState as h,defaultColorWrite as f,defaultDepthWrite as g,premultipliedAlpha as b,cullingParams as j}from"../../../../../webgl/renderState.js";let P=class extends l{constructor(e,r,i){super(e,r,i.concat(u)),this.shader=new n(t,()=>import("./ComponentShader.glsl.js")),this.ignoreUnused=!0}getPipeline(e,r){return e.camera.aboveGround||null==this._belowGroundPipeline?super.getPipeline(e,r):this._belowGroundPipeline}initializePipeline(e){return this._belowGroundPipeline=0===e.integratedMeshMode?null:this._makePipeline(e,!0),this._makePipeline(e,!1)}_makePipeline(e,r){const{integratedMeshMode:t,output:n,transparent:l,cullFace:u,hasOccludees:P,renderOccluded:S}=e,w=0!==t,T=!i(n),O=o(n);let _=j(u);return r&&_&&(_={..._,mode:2304}),h({blending:S?b:l?a(n):null,culling:_,depthTest:S?null:s(n),depthWrite:S||!T&&!O?null:g,colorWrite:f,stencilWrite:!S&&w||P?d:null,stencilTest:w?m(1):P?p:null,polygonOffset:c(e)})}};P=e([r("esri.views.3d.webgl-engine.collections.Component.Material.ComponentTechnique")],P);export{P as ComponentTechnique};
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */
2
- function n(n){return 5===n||6===n||7===n}function r(r){return n(r)||8===r||9===r}function t(n){return d(n)||4===n}function u(n){return t(n)||r(n)}function e(n){return 10===n||11===n}function o(n){return p(n)||e(n)}function c(n){return 1===n}function f(n){return 2===n}function i(n){return c(n)||f(n)}function p(n){return 0===n||i(n)}function x(n){return 10===n}function a(n){return p(n)||11===n}function b(n){return p(n)||e(n)}function d(n){return b(n)||g(n)}function g(n){return 3===n}function h(n){return g(n)||r(n)}export{o as is2DGeometryOutput,t as is3DGeometry,u as is3DGeometryOrShadowLike,p as isColor,d as isColorHighlightOLIDOrDepth,b as isColorHighlightOrOLID,a as isColorOrOLID,g as isDepth,h as isDepthOrShadowLike,x as isHighlight,e as isHighlightOrOLID,i as isOIT,c as isOITColor,f as isOITFrontFace,n as isShadow,r as isShadowLike};
2
+ function n(n){return 5===n||6===n||7===n}function r(r){return n(r)||8===r||9===r}function t(n){return d(n)||4===n}function u(n){return t(n)||r(n)}function e(n){return 10===n||11===n}function o(n){return p(n)||e(n)}function c(n){return 1===n}function f(n){return 2===n}function i(n){return c(n)||f(n)}function p(n){return 0===n||i(n)}function x(n){return 10===n}function a(n){return p(n)||11===n}function b(n){return p(n)||e(n)}function d(n){return b(n)||g(n)}function g(n){return 3===n}function h(n){return g(n)||r(n)}export{o as is2DGeometryOutput,t as is3DGeometry,u as is3DGeometryOrShadowLike,p as isColor,d as isColorHighlightOLIDOrDepth,b as isColorHighlightOrOLID,a as isColorOrOLID,g as isDepth,h as isDepthOrShadowLike,x as isHighlight,e as isHighlightOrOLID,i as isOIT,c as isOITColorAlpha,f as isOITFrontFace,n as isShadow,r as isShadowLike};
@@ -41,6 +41,7 @@ ExtrusionFrame frame;
41
41
  vec2 profileVertex;
42
42
  vec2 profileNormal;
43
43
  vec2 rotationRight;
44
+ float maxDistance;
44
45
  float capPositionOffset;
45
46
  float capNormalOffset;
46
47
  bool isCap;
@@ -57,12 +58,12 @@ return vec2(1., 0.);
57
58
  vec2 profileVertex = pathProfileVertices[vertexInfo.sourceIndex];
58
59
  vec2 profileNormal = pathProfileNormals[vertexInfo.sourceIndex];
59
60
  float profileRotation = getProfileRotation();
60
- vec2 pathRotationRight = getPathRotationRight(${f(u,l`frame`)});
61
+ vec2 rotationRight = getPathRotationRight(${f(u,l`frame`)});
61
62
  bool isBevel = abs(profileRotation) >= angleCutoff;
62
63
 
63
64
  // determine if the current profile vertex is on the inside or outside of the rotationAxis
64
65
  // this determines if the geometry folds inwards or is bend outwards
65
- float b = dot(profileVertex, pathRotationRight);
66
+ float b = dot(profileVertex, rotationRight);
66
67
  bool isBend = b * profileRotation >= 0.;
67
68
 
68
69
  bool isBevelBend = isBevel && isBend;
@@ -82,19 +83,21 @@ return vec2(1., 0.);
82
83
  profileVertex = applyMiterStretch(
83
84
  profileVertex,
84
85
  profileRotation${f(u,l`,
85
- pathRotationRight`)}
86
+ rotationRight`)}
86
87
  );
87
88
  }
88
89
 
89
- vec2 rotationRight = isBend
90
- ? vec2(0.)
91
- : pathRotationRight * getMaxStretchDistance();
90
+ rotationRight = isBend ? vec2(0.) : rotationRight;
91
+ float maxDistance = isBend
92
+ ? 0.
93
+ : getMaxStretchDistance();
92
94
 
93
95
  return ExtrudedVertex(
94
96
  frame,
95
97
  profileVertex,
96
98
  profileNormal,
97
99
  rotationRight,
100
+ maxDistance,
98
101
  0.,
99
102
  0.,
100
103
  false
@@ -112,6 +115,7 @@ return vec2(1., 0.);
112
115
  profileVertex,
113
116
  profileNormal,
114
117
  vec2(0.),
118
+ 0.,
115
119
  profilePlaneVertexOffset,
116
120
  0.,
117
121
  true
@@ -130,6 +134,7 @@ return vec2(1., 0.);
130
134
  profileVertex,
131
135
  normal,
132
136
  vec2(0.),
137
+ 0.,
133
138
  profilePlaneOffset,
134
139
  normalOffset,
135
140
  true
@@ -149,6 +154,7 @@ frame,
149
154
  polePosition,
150
155
  poleNormal,
151
156
  vec2(0.),
157
+ 0.,
152
158
  offsetScale,
153
159
  normalOffset,
154
160
  true
@@ -179,6 +185,7 @@ frame,
179
185
  poleVertex,
180
186
  profileNormal,
181
187
  vec2(0.),
188
+ 0.,
182
189
  offsetScale * t2,
183
190
  normalOffset,
184
191
  true
@@ -218,6 +225,7 @@ true
218
225
  vec2(0.),
219
226
  0.,
220
227
  0.,
228
+ 0.,
221
229
  false
222
230
  );
223
231
  }
@@ -101,7 +101,8 @@ vec3 offset = right * profileVertex.x + up * profileVertex.y + forward * positio
101
101
  return origin + offset;
102
102
  }
103
103
  vec2 rotationRight = extrudedVertex.rotationRight;
104
- float maxDistance = length(rotationRight);`),h.code.add(u`rotationRight = maxDistance > 0.0 ? normalize(rotationRight) : vec2(0, 0);
104
+ float maxDistance = extrudedVertex.maxDistance;`),h.code.add(u`rotationRight *= size;
105
+ rotationRight = length(rotationRight) > 0.0 ? normalize(rotationRight) : vec2(0, 0);
105
106
  float rx = dot(profileVertex, rotationRight);
106
107
  if (abs(rx) > maxDistance) {
107
108
  vec2 rotationUp = vec2(-rotationRight.y, rotationRight.x);
@@ -1,5 +1,5 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */
2
- import{colorGamma as o}from"../../../../../../colorUtils.js";import{glsl as e}from"../../shaderModules/glsl.js";function r(r){r.constants.add("GAMMA","float",o).constants.add("INV_GAMMA","float",1/o).code.add(e`vec3 delinearizeGamma(vec3 color) {
2
+ import{colorGamma as o,invColorGamma as e}from"../../../../../../colorUtils.js";import{glsl as r}from"../../shaderModules/glsl.js";function a(a){a.constants.add("GAMMA","float",o).constants.add("INV_GAMMA","float",e).code.add(r`vec3 delinearizeGamma(vec3 color) {
3
3
  return pow(color, vec3(INV_GAMMA));
4
4
  }
5
5
  vec4 delinearizeGamma(vec4 color) {
@@ -7,4 +7,4 @@ return vec4(delinearizeGamma(color.rgb), color.a);
7
7
  }
8
8
  vec3 linearizeGamma(vec3 color) {
9
9
  return pow(color, vec3(GAMMA));
10
- }`)}export{r as Gamma};
10
+ }`)}export{a as Gamma};
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */
2
- import{ColorConversion as o}from"./ColorConversion.glsl.js";function r(r){r.include(o),r.code.add("\n vec3 emissionDimming(in vec3 srcColor, float srcAlpha) {\n srcColor = rgb2hsv(srcColor);\n srcColor.b = 1.0;\n return hsv2rgb(srcColor) * srcAlpha;\n }\n ")}export{r as emissionDimming};
2
+ import{ColorConversion as o}from"./ColorConversion.glsl.js";import{If as r}from"../../shaderModules/glsl.js";import{oitResolution as l}from"../../../shaders/oitResolution.glsl.js";function s(s,n){s.include(o),s.include(l,n),s.code.add(`\n vec3 emissionDimming(in vec3 srcColor, float srcAlpha) {\n srcColor = rgb2hsv(srcColor);\n ${r(!n.useFloatBlend,"if(srcColor.b < floatBlendOutputScale) return vec3(srcAlpha);")}\n srcColor.b = 1.0;\n return hsv2rgb(srcColor) * srcAlpha;\n }\n `)}export{s as emissionDimming};
@@ -5,22 +5,20 @@ import{splatAtlasTextureWidth as e,elementsPerSplatPage as a}from"../../../../su
5
5
  uint x = instanceID % orderTextureWidth;
6
6
  uint y = instanceID / orderTextureWidth;
7
7
 
8
- uvec4 packedGaussianIndex = texelFetch(splatOrderTexture, ivec2(x, y), 0);
9
-
10
- return packedGaussianIndex.r | (packedGaussianIndex.g << 8u) | (packedGaussianIndex.b << 16u);
8
+ return texelFetch(splatOrderTexture, ivec2(x, y), 0).r;
11
9
  }
12
10
 
13
11
  uvec4 fetchPackedGaussian(uint gaussianIndex) {
14
- uint gaussianIndexX = gaussianIndex & ${s}u;
15
- uint gaussianIndexY = gaussianIndex >> ${t}u;
12
+ uint gaussianIndexX = gaussianIndex & ${t}u;
13
+ uint gaussianIndexY = gaussianIndex >> ${s}u;
16
14
 
17
15
  return texelFetch(splatAtlasTexture, ivec2(gaussianIndexX, gaussianIndexY), 0);
18
16
  }
19
17
 
20
18
  uvec4 fetchPackedGaussianHeader(uint gaussianIndex) {
21
19
  uint headerIndex = gaussianIndex | ${u}u;
22
- uint headerIndexX = headerIndex & ${s}u;
23
- uint headerIndexY = headerIndex >> ${t}u;
20
+ uint headerIndexX = headerIndex & ${t}u;
21
+ uint headerIndexY = headerIndex >> ${s}u;
24
22
 
25
23
  return texelFetch(splatAtlasTexture, ivec2(headerIndexX, headerIndexY), 0);
26
24
  }
@@ -35,4 +33,4 @@ import{splatAtlasTextureWidth as e,elementsPerSplatPage as a}from"../../../../su
35
33
  uint fetchGaussianPageIndex(uint gaussianIndex) {
36
34
  return gaussianIndex >> ${d}u;
37
35
  }
38
- `)}const s=""+(e-1),t=`${Math.log2(e)}`,u=""+(a-1),d=`${Math.log2(a)}`;export{i as GaussianSplatTextureFetch};
36
+ `)}const t=""+(e-1),s=`${Math.log2(e)}`,u=""+(a-1),d=`${Math.log2(a)}`;export{i as GaussianSplatTextureFetch};
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */
2
- import e from"../../../../../core/Error.js";import"../../../../../core/has.js";import{NestedMap as t}from"../../../../../core/NestedMap.js";import{ShaderTechniqueConfiguration as i}from"./ShaderTechniqueConfiguration.js";class r{constructor(e){this._context=e,this._debug=null,this._precompiling=this._debug?0:1,this._cache=new t,this._frame=0,this._debug&&"stackTraceLimit"in Error&&(Error.stackTraceLimit=50)}destroy(){this._cache.forAll(([e])=>e.destroy()),this._cache.clear(),this._context=null}get context(){return this._context}get precompiling(){return this._precompiling}set precompiling(e){this._precompiling=e,0===e&&this.context.rctx.gl.flush()}precompile(e,t=c){++this.precompiling,this.get(e,t),--this.precompiling}get(t,i=c,r){const n=i.key.code;let s=this._cache.get(t,n)?.[0];if(null==s){if(s=new t(this.context,i,r),this._debug){if(0===this._precompiling){const r=`Uncached ${s.declaredClass} compile in ${(new Error).stack}\n for configuration\n${i.decode()}`+this._debugCachedConfigurations(i,t);throw console.log(r),new e("shader:uncached-compile",r)}this._debug.set(s,new o(i,(new Error).stack))}this._cache.set(t,n,[s,this._frame])}return s}getCompiled(e,t=c,i){++this.precompiling;const r=this.get(e,t,i);return--this.precompiling,r.compiled?r:null}frameUpdate(){this._debug&&(this._cache.forAll(([t],i)=>{if(!t.unused||t.ignoreUnused)return;const r=this._debug?.get(t),o=`Unused ${t.declaredClass} for\n${r?.configuration.decode(t.key)} \nfrom\n${r?.stack}`+this._debugCachedConfigurations(r?.configuration,i);throw console.log(o),new e("shader:unused-precompile",o)}),++this._frame)}async reloadAll(){const e=new Array;this._cache.forEach(t=>e.push(n(t))),await Promise.all(e)}_debugCachedConfigurations(e,t){if(!e)return"";const i=this._cache.getInner(t);if(i?.size){let t="\n\n cached configurations:\n";return t+=Array.from(i.values()).map(([t,i])=>`at frame ${i}: ${e.decode(t.key)}`).sort().join("\n\n"),t}return""}}class o{constructor(e,t){this.configuration=e,this.stack=t}}async function n(e){let t=!0;e.forEach(async([e])=>{await e.reload(t),t=!1})}const c=new i;export{c as NoConfiguration,r as ShaderTechniqueRepository};
2
+ import e from"../../../../../core/Error.js";import"../../../../../core/has.js";import{NestedMap as t}from"../../../../../core/NestedMap.js";import{ShaderTechniqueConfiguration as i}from"./ShaderTechniqueConfiguration.js";class r{constructor(e){this._context=e,this._debug=null,this._precompiling=this._debug?0:1,this._cache=new t,this._frame=0,this._debug&&"stackTraceLimit"in Error&&(Error.stackTraceLimit=50)}destroy(){this._cache.forAll(([e])=>e.destroy()),this._cache.clear(),this._context=null}get context(){return this._context}get precompiling(){return this._precompiling}set precompiling(e){this._precompiling=e,0===e&&this.context.rctx.gl.flush()}precompile(e,t=c){++this.precompiling,this.get(e,t),--this.precompiling}get(t,i=c,r){const n=i.key.code;let s=this._cache.get(t,n)?.[0];if(null==s){if(s=new t(this.context,i,r),this._debug){if(0===this._precompiling){const r=`Uncached ${s.declaredClass} compile in ${(new Error).stack}\n for configuration\n${i.decode()}`+this._debugCachedConfigurations(i,t);throw console.log(r),new e("shader:uncached-compile",r)}this._debug.set(s,new o(i,(new Error).stack))}this._cache.set(t,n,[s,this._frame])}return s}getCompiled(e,t=c,i){++this.precompiling;const r=this.get(e,t,i);return--this.precompiling,r.compiled?r:null}frameUpdate(){this._debug&&(this._cache.forAll(([t],i)=>{if(!t.unused||t.ignoreUnused)return;const r=this._debug?.get(t),o=`Unused ${t.declaredClass} for\n${r?.configuration.decode(t.key)}\n at frame ${this._frame} from\n${r?.stack}`+this._debugCachedConfigurations(r?.configuration,i);throw console.log(o,t.compiled),new e("shader:unused-precompile",o)}),++this._frame)}async reloadAll(){const e=new Array;this._cache.forEach(t=>e.push(n(t))),await Promise.all(e)}_debugCachedConfigurations(e,t){if(!e)return"";const i=this._cache.getInner(t);if(i?.size){let t="\n\n cached configurations:\n";return t+=Array.from(i.values()).map(([t,i])=>`at frame ${i}: ${e.decode(t.key)}`).sort().join("\n\n"),t}return""}}class o{constructor(e,t){this.configuration=e,this.stack=t}}async function n(e){let t=!0;e.forEach(async([e])=>{await e.reload(t),t=!1})}const c=new i;export{c as NoConfiguration,r as ShaderTechniqueRepository};
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */
2
- import{__decorate as e}from"tslib";import{parameter as o,ShaderTechniqueConfiguration as s}from"../../core/shaderTechnique/ShaderTechniqueConfiguration.js";class t extends s{constructor(){super(...arguments),this.useFloatBlend=!0,this.hasEmissive=!1}}e([o()],t.prototype,"useFloatBlend",void 0),e([o()],t.prototype,"hasEmissive",void 0);export{t as FogTechniqueConfiguration};
2
+ import{__decorate as s}from"tslib";import{parameter as o}from"../../core/shaderTechnique/ShaderTechniqueConfiguration.js";import{OITResolutionConfiguration as e}from"../../shaders/oitResolution.glsl.js";class i extends e{constructor(){super(...arguments),this.hasEmissive=!1}}s([o()],i.prototype,"hasEmissive",void 0);export{i as FogTechniqueConfiguration};
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */
2
- import"../../../../../core/libs/gl-matrix-2/factories/vec2f64.js";import"../../core/shaderLibrary/ScreenSpacePass.glsl.js";import"../../core/shaderLibrary/output/ReadDepth.glsl.js";import"../../core/shaderLibrary/shading/GlobalIlluminationWeights.glsl.js";import"../../core/shaderLibrary/util/CameraSpace.glsl.js";import"../../core/shaderModules/BooleanBindUniform.js";import"../../core/shaderModules/Float2DrawUniform.js";import"../../core/shaderModules/FloatPassUniform.js";import"../../core/shaderModules/glsl.js";import"../../core/shaderModules/Texture2DDrawUniform.js";import"../../core/shaderModules/Texture2DPassUniform.js";import"./GlobalIlluminationColorQuantization.glsl.js";import"../../shaders/ditherNoise.glsl.js";import"../../../../webgl/NoParameters.js";import"../../../../webgl/ShaderBuilder.js";export{G as GlobalIlluminationBlurDrawParameters,b as build}from"../../../../../chunks/GlobalIlluminationBlur.glsl.js";
2
+ import"../../../../../core/libs/gl-matrix-2/factories/vec2f64.js";import"../../core/shaderLibrary/ScreenSpacePass.glsl.js";import"../../core/shaderLibrary/output/ReadDepth.glsl.js";import"../../core/shaderLibrary/shading/GlobalIlluminationWeights.glsl.js";import"../../core/shaderLibrary/util/CameraSpace.glsl.js";import"../../core/shaderModules/BooleanBindUniform.js";import"../../core/shaderModules/Float2DrawUniform.js";import"../../core/shaderModules/FloatPassUniform.js";import"../../core/shaderModules/glsl.js";import"../../core/shaderModules/Texture2DDrawUniform.js";import"../../core/shaderModules/Texture2DPassUniform.js";import"./GlobalIlluminationColorQuantization.glsl.js";import"../../shaders/ditherNoise.glsl.js";import"../../shaders/oitResolution.glsl.js";import"../../../../webgl/NoParameters.js";import"../../../../webgl/ShaderBuilder.js";export{G as GlobalIlluminationBlurDrawParameters,b as build}from"../../../../../chunks/GlobalIlluminationBlur.glsl.js";
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */
2
- import{__decorate as t}from"tslib";import{releaseMaybe as e}from"../../../../../core/maybe.js";import{watch as r,syncAndInitial as i}from"../../../../../core/reactiveUtils.js";import{property as s,subclass as o}from"../../../../../core/accessorSupport/decorators.js";import{set as a}from"../../../../../core/libs/gl-matrix-2/math/vec2.js";import{length as n}from"../../../../../core/libs/gl-matrix-2/math/vec3.js";import{ZEROS as l}from"../../../../../core/libs/gl-matrix-2/factories/vec4f32.js";import{getReferenceEllipsoid as h}from"../../../../../geometry/ellipsoidUtils.js";import{InternalRenderCategory as m}from"../../../webgl.js";import{TransparentEnvironment as c}from"../TransparentEnvironment.js";import{G as u}from"../../../../../chunks/GlowBlur.glsl.js";import{GlowBlurTechnique as p}from"./GlowBlurTechnique.js";import{GlowBlurTechniqueConfiguration as _}from"./GlowBlurTechniqueConfiguration.js";import{G as d,a as g,m as b}from"../../../../../chunks/GlowComposition.glsl.js";import{GlowCompositionTechnique as f}from"./GlowCompositionTechnique.js";import{GlowCompositionTechniqueConfiguration as P}from"./GlowCompositionTechniqueConfiguration.js";import{floatBlendReductionFactor as w}from"../../shaders/oitResolution.glsl.js";import{ColorAttachment1 as C,DepthStencilAttachment as T}from"../../../../webgl/enums.js";let v=class extends c{constructor(t){super(t),this.consumes={required:[m.TRANSPARENT_ENVIRONMENT,"emissive"]},this.produces=m.TRANSPARENT_ENVIRONMENT,this._mode=0,this._intensity=.5,this._scatteringFactors={realistic:new d([.8,.12,.05,.02,.01,0],1),cartographicMin:new d([.4,.18,.25,.12,.05,0],1),cartographicDefault:new d([1.17,1.08,.78,.4,.26,.11],4),cartographicMax:new d([3.59,3.9,2.46,1.4,.93,.44],13)},this._blurHorizontalConfiguration=new _,this._blurVerticalConfiguration=new _,this._compositeConfiguration=new P,this._compositionParameters=new g,this._blurParameters=new u,this._blurScalePerLod=3.06,this._logicalBlurRadius=.0037;const e=h(t.view.spatialReference);this._atmosphereRadius=e.radius+e.atmosphereHeight,this._blurVerticalConfiguration.glowStage=1}initialize(){this.addHandles([r(()=>this._updateParameters(),()=>{},i)])}_updateParameters(){const t=this.view.environment.lighting.glow;this._mode=null==t?this.view.environment.atmosphereEnabled?0:2:1,t&&(this._intensity=t.intensity),this._compositionParameters.minDisperse.preset=this._preset,this.requestRender(1)}render(t){const r=t.find(({name:t})=>t===m.TRANSPARENT_ENVIRONMENT),i=r.getAttachment(C);if(!i?.attachment)return r;const s=r.getTexture(),o=r.getAttachment(T),a=this.fboCache,{fullWidth:l,fullHeight:h}=this.bindParameters.camera,c=this.renderingContext;this._compositeConfiguration.useFloatBlend=this._blurHorizontalConfiguration.useFloatBlend=this._blurVerticalConfiguration.useFloatBlend=this.bindParameters.useFloatBlend.value,this._compositionParameters.fogOpacity=this.view.stage.renderView.fog?.strength??0,this._compositionParameters.color=s,this._compositionParameters.emission=i.attachment,this._compositeConfiguration.blurEnabled=2!==this._mode;const u=this.techniques.getCompiled(p,this._blurHorizontalConfiguration),_=this.techniques.getCompiled(p,this._blurVerticalConfiguration),d=this.techniques.getCompiled(f,this._compositeConfiguration);if(!u||!_||!d)return this.requestRender(1),r;if(!this._compositeConfiguration.blurEnabled){const t=a.acquire(s.descriptor.width,s.descriptor.height,this.produces);return this._setupFBO(t,l,h),c.bindTechnique(d,this.bindParameters,this._compositionParameters),c.screen.draw(),t.attachDepth(o),t.attachColor(i,C),t}const g=this.camera,b=n(g.eye);this._compositionParameters.atmosphereC=b**2-this._atmosphereRadius**2,this._renderGlowMipMap(u,_);const P=a.acquire(s.descriptor.width,s.descriptor.height,this.produces);return P.acquireColor(C,this.bindParameters.useFloatBlend.value?8:5,"emissive glow"),this._setupFBO(P,l,h,!0),c.bindTechnique(d,this.bindParameters,this._compositionParameters),c.screen.draw(),this._compositionParameters.lodTexture=e(this._compositionParameters.lodTexture),P.attachDepth(o),P}_renderGlowMipMap(t,e){const r=this.fboCache,{fullWidth:i,fullHeight:s}=this.camera,o=this.renderingContext,n=5;this._blurParameters.input=this._compositionParameters.emission,this._blurParameters.inputScale=w,this._blurParameters.level=0,this._blurParameters.blurRadius=this._logicalBlurRadius,a(this._blurParameters.size,.5*i,.5*s);let l=Math.floor(this._blurParameters.size[0]),h=Math.floor(this._blurParameters.size[1]);const m=r.acquire(l,h,"glow horizontal",8);for(this._compositionParameters.lodTexture=r.acquire(l,h,"glow mipmap",9);l>1&&h>1&&this._blurParameters.level<n;)this._setupFBO(m,l,h),o.bindTechnique(t,this.bindParameters,this._blurParameters),o.screen.draw(),r.debugCallback?.(`glow horizontal ${this._blurParameters.level}`,m.fbo),this._blurParameters.inputScale=1,this._blurParameters.input=m.getTexture(),this._setupFBO(this._compositionParameters.lodTexture,l,h,!1,this._blurParameters.level),o.bindTechnique(e,this.bindParameters,this._blurParameters),o.screen.draw(),r.debugCallback?.(this._compositionParameters.lodTexture.name,this._compositionParameters.lodTexture.fbo),a(this._blurParameters.size,.5*l,.5*h),l=Math.floor(this._blurParameters.size[0]),h=Math.floor(this._blurParameters.size[1]),this._blurParameters.input=this._compositionParameters.lodTexture.getTexture(),this._blurParameters.blurRadius*=this._blurScalePerLod,++this._blurParameters.level;m.release(),this._compositionParameters.lodTexture.fbo.level=0}get _preset(){return 0===this._mode?this._scatteringFactors.realistic.preset:this._intensity<=.5?b(this._scatteringFactors.cartographicMin.preset,this._scatteringFactors.cartographicDefault.preset,2*this._intensity):b(this._scatteringFactors.cartographicDefault.preset,this._scatteringFactors.cartographicMax.preset,2*(this._intensity-.5))}_setupFBO(t,e,r,i=!1,s=0){t.fbo.level=s;const o=this.renderingContext;o.bindFramebuffer(t.fbo),o.setViewport(0,0,e,r),o.setClearColor(0,0,0,0),o.clear(16384),i&&o.clearBuffer(1,l)}get test(){return{compositionParameters:this._compositionParameters,blurParameters:this._blurParameters,preset:this._preset,setMinDisperse:(t,e)=>{0===this._mode?this._scatteringFactors.realistic.preset[t]=e:(this._scatteringFactors.cartographicMin.preset[t]=e,this._scatteringFactors.cartographicMax.preset[t]=e)}}}};t([s()],v.prototype,"consumes",void 0),t([s()],v.prototype,"produces",void 0),v=t([o("esri.views.3d.webgl-engine.effects.glow.Glow")],v);export{v as Glow};
2
+ import{__decorate as t}from"tslib";import{releaseMaybe as e}from"../../../../../core/maybe.js";import{watch as i,syncAndInitial as r}from"../../../../../core/reactiveUtils.js";import{property as s,subclass as o}from"../../../../../core/accessorSupport/decorators.js";import{set as a}from"../../../../../core/libs/gl-matrix-2/math/vec2.js";import{length as n}from"../../../../../core/libs/gl-matrix-2/math/vec3.js";import{ZEROS as h}from"../../../../../core/libs/gl-matrix-2/factories/vec4f32.js";import{getReferenceEllipsoid as l}from"../../../../../geometry/ellipsoidUtils.js";import{InternalRenderCategory as c}from"../../../webgl.js";import{TransparentEnvironment as m}from"../TransparentEnvironment.js";import{G as u}from"../../../../../chunks/GlowBlur.glsl.js";import{GlowBlurTechnique as p}from"./GlowBlurTechnique.js";import{GlowBlurTechniqueConfiguration as _}from"./GlowBlurTechniqueConfiguration.js";import{G as g,a as d,m as b}from"../../../../../chunks/GlowComposition.glsl.js";import{GlowCompositionTechnique as f}from"./GlowCompositionTechnique.js";import{GlowCompositionTechniqueConfiguration as P}from"./GlowCompositionTechniqueConfiguration.js";import{floatBlendReductionFactor as w}from"../../shaders/oitResolution.glsl.js";import{ColorAttachment1 as C,DepthStencilAttachment as T}from"../../../../webgl/enums.js";let v=class extends m{constructor(t){super(t),this.consumes={required:[c.TRANSPARENT_ENVIRONMENT,"emissive"]},this.produces=c.TRANSPARENT_ENVIRONMENT,this._scatteringFactors={realistic:new g([.8,.12,.05,.02,.01,0],1),cartographicMin:new g([.4,.18,.25,.12,.05,0],1),cartographicDefault:new g([1.17,1.08,.78,.4,.26,.11],4),cartographicMax:new g([3.59,3.9,2.46,1.4,.93,.44],13)},this._blurHorizontalConfiguration=new _,this._blurVerticalConfiguration=new _,this._compositeConfiguration=new P,this._compositionParameters=new d,this._blurParameters=new u,this._blurScalePerLod=3.06,this._logicalBlurRadius=.0037;const e=l(t.view.spatialReference);this._atmosphereRadius=e.radius+e.atmosphereHeight,this._blurVerticalConfiguration.glowStage=1}initialize(){this.addHandles([i(()=>this._updateParameters(),()=>{},r)])}_updateParameters(){this._compositionParameters.minDisperse.preset=this._preset,this.requestRender(1)}_updateConfigurations(){this._compositeConfiguration.useFloatBlend=this._blurHorizontalConfiguration.useFloatBlend=this._blurVerticalConfiguration.useFloatBlend=this.bindParameters.useFloatBlend.value,this._compositeConfiguration.blurEnabled=2!==this._mode}precompile(){this._updateConfigurations(),this._compositeConfiguration.blurEnabled&&(this.techniques.precompile(p,this._blurHorizontalConfiguration),this.techniques.precompile(p,this._blurVerticalConfiguration)),this.techniques.precompile(f,this._compositeConfiguration)}render(t){const i=t.find(({name:t})=>t===c.TRANSPARENT_ENVIRONMENT),r=i.getAttachment(C);if(!r?.attachment)return i;const s=i.getTexture(),o=i.getAttachment(T),a=this.fboCache,{fullWidth:h,fullHeight:l}=this.bindParameters.camera,m=this.renderingContext;if(this._updateConfigurations(),this._compositionParameters.fogOpacity=this.view.stage.renderView.fog?.strength??0,this._compositionParameters.color=s,this._compositionParameters.emission=r.attachment,!this._compositeConfiguration.blurEnabled){const t=a.acquire(s.descriptor.width,s.descriptor.height,this.produces);this._setupFBO(t,h,l);const e=this.techniques.get(f,this._compositeConfiguration);return m.bindTechnique(e,this.bindParameters,this._compositionParameters),m.screen.draw(),t.attachDepth(o),t.attachColor(r,C),t}const u=this.camera,p=n(u.eye);this._compositionParameters.atmosphereC=p**2-this._atmosphereRadius**2,this._renderGlowMipMap();const _=a.acquire(s.descriptor.width,s.descriptor.height,this.produces);_.acquireColor(C,this.bindParameters.useFloatBlend.value?8:5,"emissive glow"),this._setupFBO(_,h,l,!0);const g=this.techniques.get(f,this._compositeConfiguration);return m.bindTechnique(g,this.bindParameters,this._compositionParameters),m.screen.draw(),this._compositionParameters.lodTexture=e(this._compositionParameters.lodTexture),_.attachDepth(o),_}_renderGlowMipMap(){const t=this.fboCache,{fullWidth:e,fullHeight:i}=this.camera,r=this.renderingContext,s=5,o=this.techniques.get(p,this._blurHorizontalConfiguration),n=this.techniques.get(p,this._blurVerticalConfiguration);this._blurParameters.input=this._compositionParameters.emission,this._blurParameters.inputScale=w,this._blurParameters.level=0,this._blurParameters.blurRadius=this._logicalBlurRadius,a(this._blurParameters.size,.5*e,.5*i);let h=Math.floor(this._blurParameters.size[0]),l=Math.floor(this._blurParameters.size[1]);const c=t.acquire(h,l,"glow horizontal",8);for(this._compositionParameters.lodTexture=t.acquire(h,l,"glow mipmap",9);h>1&&l>1&&this._blurParameters.level<s;)this._setupFBO(c,h,l),r.bindTechnique(o,this.bindParameters,this._blurParameters),r.screen.draw(),t.debugCallback?.(`glow horizontal ${this._blurParameters.level}`,c.fbo),this._blurParameters.inputScale=1,this._blurParameters.input=c.getTexture(),this._setupFBO(this._compositionParameters.lodTexture,h,l,!1,this._blurParameters.level),r.bindTechnique(n,this.bindParameters,this._blurParameters),r.screen.draw(),t.debugCallback?.(this._compositionParameters.lodTexture.name,this._compositionParameters.lodTexture.fbo),a(this._blurParameters.size,.5*h,.5*l),h=Math.floor(this._blurParameters.size[0]),l=Math.floor(this._blurParameters.size[1]),this._blurParameters.input=this._compositionParameters.lodTexture.getTexture(),this._blurParameters.blurRadius*=this._blurScalePerLod,++this._blurParameters.level;c.release(),this._compositionParameters.lodTexture.fbo.level=0}get _preset(){return 0===this._mode?this._scatteringFactors.realistic.preset:this._intensity<=.5?b(this._scatteringFactors.cartographicMin.preset,this._scatteringFactors.cartographicDefault.preset,2*this._intensity):b(this._scatteringFactors.cartographicDefault.preset,this._scatteringFactors.cartographicMax.preset,2*(this._intensity-.5))}get _mode(){return null==this.view.environment.lighting.glow?this.view.environment.atmosphereEnabled?0:2:1}get _intensity(){return this.view.environment.lighting.glow?.intensity??0}_setupFBO(t,e,i,r=!1,s=0){t.fbo.level=s;const o=this.renderingContext;o.bindFramebuffer(t.fbo),o.setViewport(0,0,e,i),o.setClearColor(0,0,0,0),o.clear(16384),r&&o.clearBuffer(1,h)}get test(){return{compositionParameters:this._compositionParameters,blurParameters:this._blurParameters,preset:this._preset,setMinDisperse:(t,e)=>{0===this._mode?this._scatteringFactors.realistic.preset[t]=e:(this._scatteringFactors.cartographicMin.preset[t]=e,this._scatteringFactors.cartographicMax.preset[t]=e)}}}};t([s()],v.prototype,"consumes",void 0),t([s()],v.prototype,"produces",void 0),v=t([o("esri.views.3d.webgl-engine.effects.glow.Glow")],v);export{v as Glow};