@arcgis/core 5.2.0-next.80 → 5.2.0-next.82

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 (495) hide show
  1. package/applications/Components/imageryUtils.d.ts +5 -3
  2. package/assets/esri/core/workers/RemoteClient.js +1 -1
  3. package/assets/esri/core/workers/chunks/004966b5bf60a8a80b8c.js +1 -0
  4. package/assets/esri/core/workers/chunks/027af54888befb209aaa.js +1 -0
  5. package/assets/esri/core/workers/chunks/03cf74b2e488eb144ad5.js +1 -0
  6. package/assets/esri/core/workers/chunks/{913fb883455aeac8582b.js → 04f5ff688785a4bd3b03.js} +1 -1
  7. package/assets/esri/core/workers/chunks/055802283f7e01ee87fb.js +1 -0
  8. package/assets/esri/core/workers/chunks/06df9ce870360cda06c7.js +1 -0
  9. package/assets/esri/core/workers/chunks/{08ec5461af74356e7570.js → 075eb62465edb9cbf907.js} +1 -1
  10. package/assets/esri/core/workers/chunks/{5fe9eea35ddb428efd8b.js → 0b26c01a1190e8fd63fb.js} +1 -1
  11. package/assets/esri/core/workers/chunks/{24729603dcdbd95fd01e.js → 0d982abff7c9496f7890.js} +1 -1
  12. package/assets/esri/core/workers/chunks/0fd7590e545864f5fff4.js +1 -0
  13. package/assets/esri/core/workers/chunks/{b9d1bb106737a05290e1.js → 104d74bc36c28c519396.js} +1 -1
  14. package/assets/esri/core/workers/chunks/10ac92dcd3738ec23dfb.js +1 -0
  15. package/assets/esri/core/workers/chunks/11d911f70bf0ca252c19.js +1 -0
  16. package/assets/esri/core/workers/chunks/1352b5c6767e5421bc02.js +1 -0
  17. package/assets/esri/core/workers/chunks/1354b8442c2c501238f1.js +1 -0
  18. package/assets/esri/core/workers/chunks/1438f571f738e83b4d1c.js +1 -0
  19. package/assets/esri/core/workers/chunks/14469f664fd5ede469fc.js +1 -0
  20. package/assets/esri/core/workers/chunks/14511c92cbbc26d80c86.js +1 -0
  21. package/assets/esri/core/workers/chunks/14be79c4cc6137c7db95.js +1 -0
  22. package/assets/esri/core/workers/chunks/{ef47a5da641cb0d33fdf.js → 197a6d561f77ac74283a.js} +1 -1
  23. package/assets/esri/core/workers/chunks/19dac19122eeeb5e36b2.js +1 -0
  24. package/assets/esri/core/workers/chunks/{e4e5a171a4874c5af4a4.js → 1a7d2912c8eac8c83c70.js} +1 -1
  25. package/assets/esri/core/workers/chunks/{b9c61b20bbc91cb63036.js → 1c3861297f65ee1ca5d0.js} +1 -1
  26. package/assets/esri/core/workers/chunks/1d1cfe0bee506d34268e.js +1 -0
  27. package/assets/esri/core/workers/chunks/20db27d9828397d0b37a.js +1 -0
  28. package/assets/esri/core/workers/chunks/2161cf64601f28bbe72d.js +1 -0
  29. package/assets/esri/core/workers/chunks/218ddad849745d652a28.js +1 -0
  30. package/assets/esri/core/workers/chunks/{5b70295da76d9227f64b.js → 22c477147421e68f7f00.js} +1 -1
  31. package/assets/esri/core/workers/chunks/24944b625ed8dcd904f0.js +1 -0
  32. package/assets/esri/core/workers/chunks/25696c194457e42b3bdc.js +1 -0
  33. package/assets/esri/core/workers/chunks/25f6d5604a7959afd5a5.js +1 -0
  34. package/assets/esri/core/workers/chunks/26c12804a0d801df29bf.js +1 -0
  35. package/assets/esri/core/workers/chunks/{67ebde34377f98d17cda.js → 26c8ed0aef59ed6d5267.js} +1 -1
  36. package/assets/esri/core/workers/chunks/{c1e5ffe9a251be5a0744.js → 278760d194203dd27fc3.js} +1 -1
  37. package/assets/esri/core/workers/chunks/28b576663ed4570ec825.js +1 -0
  38. package/assets/esri/core/workers/chunks/{841c81c280114412c95b.js → 2a4c91b006de1ceba539.js} +1 -1
  39. package/assets/esri/core/workers/chunks/2b299aec2a758bcd9731.js +1 -0
  40. package/assets/esri/core/workers/chunks/2d1c0d80a9843567df8d.js +1 -0
  41. package/assets/esri/core/workers/chunks/{b084829a3fd709dc47a8.js → 2d683ac4a993ec5fd6f6.js} +1 -1
  42. package/assets/esri/core/workers/chunks/2d6e1bf7c1981bed4357.js +1 -0
  43. package/assets/esri/core/workers/chunks/{a8ec5b85c2fa6fb4f391.js → 30b40ee875d46e6fde02.js} +1 -1
  44. package/assets/esri/core/workers/chunks/31b3744f71750e512d4e.js +1 -0
  45. package/assets/esri/core/workers/chunks/3239c7994019f15e261d.js +1 -0
  46. package/assets/esri/core/workers/chunks/{d520d407043bc52e5410.js → 3336ad383c184dd07bb3.js} +1 -1
  47. package/assets/esri/core/workers/chunks/{c29df43817278f674707.js → 33aaa5a49e396a0aca47.js} +1 -1
  48. package/assets/esri/core/workers/chunks/{7529c0fcfb83998e63db.js → 34f6093d2c00e3584037.js} +1 -1
  49. package/assets/esri/core/workers/chunks/36265e5f6d396eadf0be.js +1 -0
  50. package/assets/esri/core/workers/chunks/{0ae0483b72f5e8d00d55.js → 3715d6b295016eeb5031.js} +1 -1
  51. package/assets/esri/core/workers/chunks/3851ebf3548e2763b24f.js +1 -0
  52. package/assets/esri/core/workers/chunks/3a4b117af89dab5153eb.js +1 -0
  53. package/assets/esri/core/workers/chunks/3a9ef47122e10cecd3a4.js +1 -0
  54. package/assets/esri/core/workers/chunks/3f0625c31dd46b563160.js +1 -0
  55. package/assets/esri/core/workers/chunks/40b842d055b87e442156.js +1 -0
  56. package/assets/esri/core/workers/chunks/{c37b28f200b704ae6002.js → 4239d64f067417e0643c.js} +1 -1
  57. package/assets/esri/core/workers/chunks/43122c435497228a7583.js +1 -0
  58. package/assets/esri/core/workers/chunks/44d13f65465646e5f6e9.js +1 -0
  59. package/assets/esri/core/workers/chunks/463b7952a4825541eb13.js +1 -0
  60. package/assets/esri/core/workers/chunks/{345510a95e893fa8040a.js → 469e72ab6cd44272f474.js} +1 -1
  61. package/assets/esri/core/workers/chunks/{bd88228f781a0399d8bd.js → 49e37f653b81f9e4f7cc.js} +1 -1
  62. package/assets/esri/core/workers/chunks/4c5200e22b8a723f53f9.js +1 -0
  63. package/assets/esri/core/workers/chunks/4cf2c33494cb75942511.js +1 -0
  64. package/assets/esri/core/workers/chunks/{2bcb7e43578124538c3c.js → 4d672110aee304692f60.js} +1 -1
  65. package/assets/esri/core/workers/chunks/4f36596280142be1c666.js +1 -0
  66. package/assets/esri/core/workers/chunks/50e6e43ea98cb0d05d91.js +1 -0
  67. package/assets/esri/core/workers/chunks/{8e374ce47256a567ae11.js → 519745cf844c76452a46.js} +1 -1
  68. package/assets/esri/core/workers/chunks/52042fd36f4a572938f0.js +1 -0
  69. package/assets/esri/core/workers/chunks/{3b14ed3184743df336a6.js → 53d80202b5f43542d45b.js} +1 -1
  70. package/assets/esri/core/workers/chunks/54524cc4328f31d8c25d.js +1 -0
  71. package/assets/esri/core/workers/chunks/5515005e8893bd551aaf.js +1 -0
  72. package/assets/esri/core/workers/chunks/563a4d6788ad66b676e4.js +1 -0
  73. package/assets/esri/core/workers/chunks/{eee1fd629619021ea279.js → 56a6c7abfb4d88ea1bb5.js} +1 -1
  74. package/assets/esri/core/workers/chunks/58d10928959ae1e2e8d9.js +1 -0
  75. package/assets/esri/core/workers/chunks/598221c7054415b84904.js +1 -0
  76. package/assets/esri/core/workers/chunks/59f0a2bd40b033ce77e4.js +1 -0
  77. package/assets/esri/core/workers/chunks/{38660a8cc3623c854d88.js → 5a006ff759fad9fc25cb.js} +1 -1
  78. package/assets/esri/core/workers/chunks/{087bd698b80ca0cea71e.js → 5aadfd11df6618883c5d.js} +1 -1
  79. package/assets/esri/core/workers/chunks/5b60fc95757b2a53558a.js +1 -0
  80. package/assets/esri/core/workers/chunks/5c634b3e6dc76299b1df.js +1 -0
  81. package/assets/esri/core/workers/chunks/5d30accf1dcda0c70f95.js +1 -0
  82. package/assets/esri/core/workers/chunks/605da92d28e067f4a4c6.js +1 -0
  83. package/assets/esri/core/workers/chunks/61f230e50787abbfc8ba.js +1 -0
  84. package/assets/esri/core/workers/chunks/6270acb7545be2c5126f.js +1 -0
  85. package/assets/esri/core/workers/chunks/{f3bbebedad51f776bb98.js → 62992c3d98c20f611b7b.js} +1 -1
  86. package/assets/esri/core/workers/chunks/{ac87be2210f868524996.js → 629f60ee49e0dcfb7165.js} +1 -1
  87. package/assets/esri/core/workers/chunks/645d5db85f84b1f19b59.js +1 -0
  88. package/assets/esri/core/workers/chunks/{1f888f026b004447772c.js → 657528eb6a3d3b3cb631.js} +1 -1
  89. package/assets/esri/core/workers/chunks/66292e98b4111ea3658d.js +1 -0
  90. package/assets/esri/core/workers/chunks/680496660b2aaa710099.js +1 -0
  91. package/assets/esri/core/workers/chunks/{ee63c693f2539f3bfa17.js → 6c389e9646a48c26da20.js} +2 -2
  92. package/assets/esri/core/workers/chunks/{2d1ae18a28491b00091d.js → 6db4a4f9a9ce7cc738d0.js} +1 -1
  93. package/assets/esri/core/workers/chunks/6eb28086dc28f6d144ec.js +1 -0
  94. package/assets/esri/core/workers/chunks/{702b2381acf4d1f90094.js → 6f08c8a1e8e3ffd0a96a.js} +1 -1
  95. package/assets/esri/core/workers/chunks/6f4ee60e89d154e7b1c4.js +1 -0
  96. package/assets/esri/core/workers/chunks/7230d74ef720431cc75e.js +1 -0
  97. package/assets/esri/core/workers/chunks/73a8a3baf0fed803ef4f.js +1 -0
  98. package/assets/esri/core/workers/chunks/{4d7a3b3aaf876da0891b.js → 76e6d894c33221369895.js} +1 -1
  99. package/assets/esri/core/workers/chunks/7833a82d5bac2aed565e.js +1 -0
  100. package/assets/esri/core/workers/chunks/7a05f5b0848dd11d2f4f.js +1 -0
  101. package/assets/esri/core/workers/chunks/{4c82f5f23004f905a18f.js → 7b605ed92e65083da35f.js} +1 -1
  102. package/assets/esri/core/workers/chunks/7bd8ebb321ecf1f06496.js +1 -0
  103. package/assets/esri/core/workers/chunks/7d5877eede2f552dea9f.js +1 -0
  104. package/assets/esri/core/workers/chunks/7eb94fc75926bc739233.js +1 -0
  105. package/assets/esri/core/workers/chunks/809349086117f199b7a5.js +1 -0
  106. package/assets/esri/core/workers/chunks/82e62a54b350e7a325f7.js +1 -0
  107. package/assets/esri/core/workers/chunks/836c458a7eb96391cfda.js +1 -0
  108. package/assets/esri/core/workers/chunks/83a77d3f45c8c21cec45.js +1 -0
  109. package/assets/esri/core/workers/chunks/851a5a0262dc8dcb67eb.js +1 -0
  110. package/assets/esri/core/workers/chunks/865f9adc591056458b6b.js +1 -0
  111. package/assets/esri/core/workers/chunks/88771a75adcbd54c4fac.js +1 -0
  112. package/assets/esri/core/workers/chunks/8c6a60d96c73982febd2.js +1 -0
  113. package/assets/esri/core/workers/chunks/{619aa1381296172ff47b.js → 8e19b2ce9868a9a08da0.js} +1 -1
  114. package/assets/esri/core/workers/chunks/8ea28a4b1afe8bb2d313.js +1 -0
  115. package/assets/esri/core/workers/chunks/911f3a1b8dd4bc5c9782.js +1 -0
  116. package/assets/esri/core/workers/chunks/{40693ee558a1eb1e93f4.js → 918577ea025f67ebe372.js} +1 -1
  117. package/assets/esri/core/workers/chunks/{fe71a0604f0928113419.js → 958e161634b5bfd50625.js} +1 -1
  118. package/assets/esri/core/workers/chunks/95ff342e5c29bf91a765.js +1 -0
  119. package/assets/esri/core/workers/chunks/97162bbbedb02e42d0b8.js +1 -0
  120. package/assets/esri/core/workers/chunks/{680dd7b7638465eb33de.js → 98739b6e7904045edbab.js} +1 -1
  121. package/assets/esri/core/workers/chunks/99966339b061eb9945b8.js +1 -0
  122. package/assets/esri/core/workers/chunks/9aa41d098eeda01ded3a.js +1 -0
  123. package/assets/esri/core/workers/chunks/{315031323e11a18154e3.js → 9c04233d18a9585b5bfe.js} +1 -1
  124. package/assets/esri/core/workers/chunks/9c7afe90495766bba37f.js +1 -0
  125. package/assets/esri/core/workers/chunks/{69b9a327f23e052fced7.js → 9d5d7289a9e23efc7f73.js} +1 -1
  126. package/assets/esri/core/workers/chunks/9e49a6ce4a133476092f.js +1 -0
  127. package/assets/esri/core/workers/chunks/9e840a71906c4deef776.js +1 -0
  128. package/assets/esri/core/workers/chunks/a1bf2111fee455b16e6a.js +29 -0
  129. package/assets/esri/core/workers/chunks/{910c93bbbf8113a4a51f.js → a2a231a671ff578b7b01.js} +1 -1
  130. package/assets/esri/core/workers/chunks/a2fd945659ce052f99d2.js +1 -0
  131. package/assets/esri/core/workers/chunks/{16929524565a677db4dc.js → a406a41a2f117247f1ef.js} +1 -1
  132. package/assets/esri/core/workers/chunks/a4b63162615a485b08dc.js +1 -0
  133. package/assets/esri/core/workers/chunks/a9a1061cdf82b372835f.js +1 -0
  134. package/assets/esri/core/workers/chunks/ab10388dcc17a665ac3b.js +2 -0
  135. package/assets/esri/core/workers/chunks/ac9a3dfd02160e43fc8a.js +2 -0
  136. package/assets/esri/core/workers/chunks/af88f8dd1a53e4740aa6.js +1 -0
  137. package/assets/esri/core/workers/chunks/{2b3f76e03b7a28fc4453.js → b09e9ac5fd928e69b053.js} +1 -1
  138. package/assets/esri/core/workers/chunks/{6c982779d6d47ec99899.js → b0a9a770b735440846cd.js} +1 -1
  139. package/assets/esri/core/workers/chunks/b2d6fd436981c890152f.js +1 -0
  140. package/assets/esri/core/workers/chunks/b3034fbcbe77ef9e7c20.js +1 -0
  141. package/assets/esri/core/workers/chunks/b4b4fe06364bea9b0750.js +1 -0
  142. package/assets/esri/core/workers/chunks/b661aae7e3ce955a783e.js +1 -0
  143. package/assets/esri/core/workers/chunks/b7bcc2d0b0fa8e703c83.js +1 -0
  144. package/assets/esri/core/workers/chunks/{75fc0b1db8e2e3fd2458.js → b8548eb7680abeaf3cd1.js} +1 -1
  145. package/assets/esri/core/workers/chunks/b9db8d059c2ea39518e7.js +1 -0
  146. package/assets/esri/core/workers/chunks/ba67aaa08e4f11e1140a.js +1 -0
  147. package/assets/esri/core/workers/chunks/ba8777844fef6ed3ac2b.js +1 -0
  148. package/assets/esri/core/workers/chunks/ba99a650ea64f5024185.js +1 -0
  149. package/assets/esri/core/workers/chunks/{e421dee5d8b030e79ffb.js → bbeb61d9302323bae9fb.js} +1 -1
  150. package/assets/esri/core/workers/chunks/bbfd2b4af8e498b61af9.js +1 -0
  151. package/assets/esri/core/workers/chunks/{cada52d719c35d40958a.js → bd1c870694edd25bf8aa.js} +1 -1
  152. package/assets/esri/core/workers/chunks/c1f125594e684c1b4ffc.js +1 -0
  153. package/assets/esri/core/workers/chunks/c30b6bbabd05e4976fba.js +1 -0
  154. package/assets/esri/core/workers/chunks/c456abf5ee2a1ad5cc5b.js +1 -0
  155. package/assets/esri/core/workers/chunks/c61e94806b37ca3dd549.js +2 -0
  156. package/assets/esri/core/workers/chunks/c71368cd64f240da1743.js +1 -0
  157. package/assets/esri/core/workers/chunks/c899457f19b749516275.js +1 -0
  158. package/assets/esri/core/workers/chunks/c8d83f71326222b98608.js +1 -0
  159. package/assets/esri/core/workers/chunks/c9653a15324ca53d50e7.js +1 -0
  160. package/assets/esri/core/workers/chunks/{9937920e7993814d0b2c.js → ca695ab000a1e8765d69.js} +1 -1
  161. package/assets/esri/core/workers/chunks/cc1a00694cc9f7c606d6.js +1 -0
  162. package/assets/esri/core/workers/chunks/{b792857a178da2dd77d6.js → cc419e1c5c1dee7ec972.js} +1 -1
  163. package/assets/esri/core/workers/chunks/{2ce845c990bb4d701362.js → cc817c9d3f8e8f8c56e4.js} +1 -1
  164. package/assets/esri/core/workers/chunks/cdd4aeaa3f30bc4ea93a.js +1 -0
  165. package/assets/esri/core/workers/chunks/cf6799fd008d0d7016f7.js +1 -0
  166. package/assets/esri/core/workers/chunks/cfcb258b7e464f219434.js +1 -0
  167. package/assets/esri/core/workers/chunks/d0c8630177d3a4e316f1.js +2 -0
  168. package/assets/esri/core/workers/chunks/{ac59218847e5ef4c4160.js → d0e00f0bb7b9435e170d.js} +1 -1
  169. package/assets/esri/core/workers/chunks/{33e293836f5d28dc5d62.js → d13eeff678972a245d5d.js} +1 -1
  170. package/assets/esri/core/workers/chunks/d1aa87d846a884492b47.js +1 -0
  171. package/assets/esri/core/workers/chunks/{0179949495c87466b428.js → d3a183d90f1ccc8da2bb.js} +10 -10
  172. package/assets/esri/core/workers/chunks/d433bfa2abf2ca8239ba.js +1 -0
  173. package/assets/esri/core/workers/chunks/d4cc8eef64b8c84217a5.js +1 -0
  174. package/assets/esri/core/workers/chunks/{2740f755c3a322cbd477.js → d672c2a1c8eddd235171.js} +1 -1
  175. package/assets/esri/core/workers/chunks/{24006cea112d657f053a.js → da233362b06b6db375f1.js} +1 -1
  176. package/assets/esri/core/workers/chunks/da6134c7883531f21afe.js +1 -0
  177. package/assets/esri/core/workers/chunks/dbc36b85413fae52b56d.js +1 -0
  178. package/assets/esri/core/workers/chunks/dd91824692bec809909c.js +1 -0
  179. package/assets/esri/core/workers/chunks/dd9af4ddefa0b998aa4b.js +1 -0
  180. package/assets/esri/core/workers/chunks/e2ceddd6bcdabec77cc7.js +1 -0
  181. package/assets/esri/core/workers/chunks/e3eab61815ef1c521a6c.js +1 -0
  182. package/assets/esri/core/workers/chunks/e706c37b44e98fbcb5f7.js +1 -0
  183. package/assets/esri/core/workers/chunks/ead4143d811aab610e00.js +2 -0
  184. package/assets/esri/core/workers/chunks/ef269dd559c1c79957e5.js +1 -0
  185. package/assets/esri/core/workers/chunks/efaa455beeefbf97a4c5.js +1 -0
  186. package/assets/esri/core/workers/chunks/f0692e10af5983f6ad93.js +1 -0
  187. package/assets/esri/core/workers/chunks/f16b6cd6b325eb600e82.js +1 -0
  188. package/assets/esri/core/workers/chunks/f1d0208c6b09c1c4b248.js +1 -0
  189. package/assets/esri/core/workers/chunks/f1fa377e8fa53b02876f.js +1 -0
  190. package/assets/esri/core/workers/chunks/{ebb722118a220c92efc3.js → f248131df4eaa5291623.js} +1 -1
  191. package/assets/esri/core/workers/chunks/f762f0f6c83748d8e328.js +1 -0
  192. package/assets/esri/core/workers/chunks/{b9bdb1f05e904c3655e4.js → f834aa732c3f06525089.js} +1 -1
  193. package/assets/esri/core/workers/chunks/{fb12d3c63fcac8391e06.js → fa29b5064d6626cfc019.js} +1 -1
  194. package/assets/esri/core/workers/chunks/fa7a6906598d1002abfd.js +1 -0
  195. package/assets/esri/core/workers/chunks/{e9e4b27ba06a29e6340c.js → faf14281a74a06fa1f30.js} +1 -1
  196. package/assets/esri/core/workers/chunks/fb86b334bfca4670dcfa.js +1 -0
  197. package/assets/esri/core/workers/chunks/{1ef28d4457c8c943ad19.js → fbede01a363895b6381f.js} +1 -1
  198. package/assets/esri/core/workers/chunks/{073f1d5f89875c6aefb1.js → fc1aeea22f8c9d63864a.js} +1 -1
  199. package/assets/esri/core/workers/chunks/fcf7299e2ee904ab9882.js +1 -0
  200. package/assets/esri/core/workers/chunks/{9230ad807020fc2bbf8e.js → fe06cc2f90b2d551e4c1.js} +1 -1
  201. package/assets/esri/core/workers/chunks/{8a3289e15e0ce92e3813.js → fe335441ea233cb0fad5.js} +1 -1
  202. package/assets/esri/core/workers/chunks/{d7b6985984071e78c764.js → ffad5fd9c5e98f4fe2c3.js} +1 -1
  203. package/assets/esri/core/workers/chunks/ffe2cbfea38b92a231d6.js +1 -0
  204. package/assets/esri/geometry/support/pe-wasm.wasm +0 -0
  205. package/chunks/Bufferer-CclWhXVb.js +1 -1
  206. package/chunks/Distance2DCalculator-DjIp2uQi.js +1 -1
  207. package/chunks/EmissionComposite.glsl.js +7 -1
  208. package/chunks/Envelope.js +1 -1
  209. package/chunks/GaussianSplat.glsl.js +8 -8
  210. package/chunks/GaussianSplatDepth.glsl.js +4 -4
  211. package/chunks/GeodeticDistanceCalculator-zRp89-dW.js +1 -1
  212. package/chunks/GeodeticUtils.js +1 -1
  213. package/chunks/GeographicTransformation.js +2 -0
  214. package/chunks/Geometry.js +1 -1
  215. package/chunks/MultiPathImpl.js +1 -1
  216. package/chunks/OperatorCrosses.js +1 -1
  217. package/chunks/OperatorCut.js +1 -1
  218. package/chunks/OperatorGeodesicBuffer.js +1 -1
  219. package/chunks/OperatorGeodeticArea.js +1 -1
  220. package/chunks/OperatorGeodeticDensifyByLength.js +1 -1
  221. package/chunks/OperatorGeodeticLength.js +1 -1
  222. package/chunks/OperatorGraphicBuffer.js +1 -1
  223. package/chunks/OperatorIntegrate.js +1 -1
  224. package/chunks/OperatorIntersects.js +1 -1
  225. package/chunks/OperatorMultiPartToSinglePart.js +1 -1
  226. package/chunks/OperatorOverlaps.js +1 -1
  227. package/chunks/OperatorProject.js +1 -1
  228. package/chunks/OperatorProximity.js +1 -1
  229. package/chunks/OperatorProximityGeodesic.js +1 -1
  230. package/chunks/OperatorShapePreservingLength.js +1 -1
  231. package/chunks/OperatorShapePreservingProject.js +1 -1
  232. package/chunks/OperatorSimplifyOGC.js +1 -1
  233. package/chunks/OperatorTouches.js +1 -1
  234. package/chunks/OperatorWithin.js +1 -1
  235. package/chunks/Point2D.js +1 -1
  236. package/chunks/ProjectionTransformation.js +1 -1
  237. package/chunks/SideCalculator2D-DX0718xq.js +1 -1
  238. package/chunks/SpatialReference.js +1 -1
  239. package/chunks/UnitFactory.js +2 -0
  240. package/chunks/containsOperator.js +1 -1
  241. package/chunks/disjointOperator.js +1 -1
  242. package/chunks/equalsOperator.js +1 -1
  243. package/chunks/pe-wasm.js +1 -1
  244. package/chunks/relateOperator.js +1 -1
  245. package/config.js +1 -1
  246. package/geometry/operators/containsOperator.js +1 -1
  247. package/geometry/operators/disjointOperator.js +1 -1
  248. package/geometry/operators/gx/geodeticUtils.js +1 -1
  249. package/geometry/operators/gx/operatorAutoComplete.js +1 -1
  250. package/geometry/operators/gx/operatorBuffer.js +1 -1
  251. package/geometry/operators/gx/operatorDifference.js +1 -1
  252. package/geometry/operators/gx/operatorGeodesicBuffer.js +1 -1
  253. package/geometry/operators/gx/operatorGeodeticArea.js +1 -1
  254. package/geometry/operators/gx/operatorGeodeticDensify.js +1 -1
  255. package/geometry/operators/gx/operatorGeodeticDistance.js +1 -1
  256. package/geometry/operators/gx/operatorGeodeticLength.js +1 -1
  257. package/geometry/operators/gx/operatorIntersection.js +1 -1
  258. package/geometry/operators/gx/operatorLabelPoint.js +1 -1
  259. package/geometry/operators/gx/operatorLinesToPolygons.js +1 -1
  260. package/geometry/operators/gx/operatorPolygonOverlay.js +1 -1
  261. package/geometry/operators/gx/operatorProject.js +1 -1
  262. package/geometry/operators/gx/operatorProximityGeodesic.js +1 -1
  263. package/geometry/operators/gx/operatorShapePreservingProject.js +1 -1
  264. package/geometry/operators/gx/operatorSimplify.js +1 -1
  265. package/geometry/operators/gx/operatorSinglePartToMultiPart.js +1 -1
  266. package/geometry/operators/gx/operatorSymmetricDifference.js +1 -1
  267. package/geometry/operators/gx/operatorUnion.js +1 -1
  268. package/geometry/operators/json/containsOperator.js +1 -1
  269. package/geometry/operators/json/disjointOperator.js +1 -1
  270. package/geometry/operators/projectOperator.js +1 -1
  271. package/geometry/operators/reshapeOperator.js +1 -1
  272. package/geometry/operators/support/GeographicTransformation.d.ts +7 -0
  273. package/geometry/operators/support/GeographicTransformation.js +1 -1
  274. package/geometry/operators/support/GeographicTransformationStep.d.ts +7 -1
  275. package/geometry/operators/support/GeographicTransformationStep.js +1 -1
  276. package/geometry/operators/support/geographicTransformationUtils.d.ts +13 -2
  277. package/geometry/operators/support/geographicTransformationUtils.js +1 -1
  278. package/geometry/operators/support/initNoPeFactory.js +1 -1
  279. package/geometry/operators/support/jsonConverter.js +1 -1
  280. package/geometry/operators/support/projectionTransformation.js +1 -1
  281. package/geometry/projection/projectionUtilsState.js +2 -0
  282. package/geometry/projectionUtils.js +1 -1
  283. package/geometry/support/geometryUtils.js +1 -1
  284. package/kernel.js +1 -1
  285. package/layers/raster/datasets/MRFRaster.js +1 -1
  286. package/layers/raster/formats/JpgPlus.js +1 -1
  287. package/layers/raster/formats/RasterCodec.js +1 -1
  288. package/layers/raster/types.d.ts +65 -0
  289. package/layers/support/AggregateField.d.ts +9 -3
  290. package/layers/support/FeatureReductionCluster.d.ts +16 -6
  291. package/layers/support/I3SExtractChanges.js +2 -0
  292. package/package.json +3 -3
  293. package/renderers/support/AuthoringInfo.d.ts +8 -3
  294. package/support/revision.js +1 -1
  295. package/symbols/cim/cimAnalyzer.js +1 -1
  296. package/symbols/cim/effects/EffectRadial.js +1 -1
  297. package/views/2d/engine/vectorTiles/decluttering/SymbolRepository.js +1 -1
  298. package/views/2d/engine/webgl/mesh/templates/segmentUtils.js +1 -1
  299. package/views/2d/engine/webgl/shaderGraph/techniques/fill/FillMeshWriter.js +1 -1
  300. package/views/2d/engine/webgl/shaderGraph/techniques/fill/GradientFillMeshWriter.js +1 -1
  301. package/views/2d/engine/webgl/shaderGraph/techniques/line/LineMeshWriter.js +1 -1
  302. package/views/2d/engine/webgl/shaderGraph/techniques/mesh/MeshWriter.js +1 -1
  303. package/views/2d/layers/MediaLayerView2D.js +1 -1
  304. package/views/2d/layers/features/schema/processor/symbols/ComplexSymbolSchema.js +1 -1
  305. package/views/3d/GroundView3D.js +1 -1
  306. package/views/3d/analysis/LineOfSight/LineOfSightDrawToolRenderer.js +1 -1
  307. package/views/3d/analysis/LineOfSight/LineOfSightEditTool.js +1 -1
  308. package/views/3d/analysis/LineOfSight/LineOfSightInteractionVisuals.js +1 -1
  309. package/views/3d/analysis/LineOfSight/LineOfSightItemTool.js +1 -1
  310. package/views/3d/layers/BuildingComponentSublayerView3D.js +1 -1
  311. package/views/3d/layers/BuildingSceneLayerView3D.js +1 -1
  312. package/views/3d/layers/I3SMeshView3D.js +1 -1
  313. package/views/3d/layers/IntegratedMesh3DTilesLayerView3D.js +1 -1
  314. package/views/3d/layers/IntegratedMeshLayerView3D.js +1 -1
  315. package/views/3d/layers/SceneLayerGraphicsView3D.js +1 -1
  316. package/views/3d/layers/SceneLayerView3D.js +1 -1
  317. package/views/3d/layers/graphics/Graphics3DFrustumVisibility.js +1 -1
  318. package/views/3d/layers/i3s/I3SOverrides.js +1 -1
  319. package/views/3d/state/controllers/PinchAndPanControllerGlobal.js +1 -1
  320. package/views/3d/state/controllers/PinchAndPanControllerLocal.js +1 -1
  321. package/views/3d/state/controllers/RotateController.js +1 -1
  322. package/views/3d/state/controllers/ZoomControllerGlobal.js +1 -1
  323. package/views/3d/state/controllers/ZoomControllerLocal.js +1 -1
  324. package/views/3d/state/controllers/ZoomStepControllerLocal.js +1 -1
  325. package/views/3d/state/helpers/SceneIntersectionHelper.js +1 -1
  326. package/views/3d/support/PBFDecoder.js +1 -1
  327. package/views/3d/support/QualityProfile.js +1 -1
  328. package/views/3d/support/QualitySettings.js +1 -1
  329. package/views/3d/support/gaussianSplatting/GaussianSplatFadeHelper.js +1 -1
  330. package/views/3d/terrain/PlanarPatch.js +1 -1
  331. package/views/3d/terrain/Tile.js +1 -1
  332. package/views/3d/webgl-engine/Stage.js +1 -1
  333. package/views/3d/webgl-engine/lib/BasisUtil.js +1 -1
  334. package/views/3d/webgl-engine/lib/EmissionComposite.glsl.js +1 -1
  335. package/views/3d/webgl-engine/lib/EmissionComposite.js +1 -1
  336. package/views/3d/webgl-engine/lib/EmissionCompositeTechnique.js +1 -1
  337. package/views/3d/webgl-engine/lib/GaussianSplatRenderUtils.js +1 -1
  338. package/views/3d/webgl-engine/lib/GaussianSplatRenderer.js +1 -1
  339. package/views/3d/webgl-engine/shaders/GaussianSplatDepthPolicy.js +1 -1
  340. package/views/3d/webgl-engine/shaders/GaussianSplatPass.glsl.js +50 -22
  341. package/views/MapView.d.ts +0 -60
  342. package/views/View2D.d.ts +59 -1
  343. package/views/analysis/ElevationProfile/ElevationProfileController.js +1 -1
  344. package/views/draw/support/managers/InteractiveHandleManager.js +1 -1
  345. package/views/support/GroundElevationSampler.js +1 -1
  346. package/widgets/BatchAttributeForm/expressions/ExpressionsManager.js +1 -1
  347. package/widgets/BatchAttributeForm/expressions/expressionUtils.js +1 -1
  348. package/widgets/ElevationProfile/ElevationProfileViewModel.js +1 -1
  349. package/widgets/Legend/support/sizeRampUtils.js +1 -1
  350. package/widgets/Legend/support/utils.js +1 -1
  351. package/widgets/OrientedImageryViewer/OrientedImageryViewerViewModel.js +1 -1
  352. package/widgets/OrientedImageryViewer/components/ImageLocationViewModel.js +1 -1
  353. package/widgets/OrientedImageryViewer/components/ImageLocationWidget.js +1 -1
  354. package/widgets/OrientedImageryViewer.js +1 -1
  355. package/assets/esri/core/workers/chunks/04105d83556409489835.js +0 -1
  356. package/assets/esri/core/workers/chunks/05b6b2c0b76afb100e33.js +0 -1
  357. package/assets/esri/core/workers/chunks/0909816f13d25cacf250.js +0 -1
  358. package/assets/esri/core/workers/chunks/0933203eee15ea50e123.js +0 -1
  359. package/assets/esri/core/workers/chunks/0b18de5147d76b68896f.js +0 -1
  360. package/assets/esri/core/workers/chunks/0d9d33f29124d464a4cb.js +0 -1
  361. package/assets/esri/core/workers/chunks/0d9fe49812554e7d7ba7.js +0 -1
  362. package/assets/esri/core/workers/chunks/0da5b27b070ab780f8b3.js +0 -1
  363. package/assets/esri/core/workers/chunks/0e333aced8b23aa49a0e.js +0 -1
  364. package/assets/esri/core/workers/chunks/0eaa8265a4cd64297545.js +0 -1
  365. package/assets/esri/core/workers/chunks/1142f8e9c80207d6bdae.js +0 -1
  366. package/assets/esri/core/workers/chunks/118ccfa2d685764752ee.js +0 -1
  367. package/assets/esri/core/workers/chunks/12a64eca4c571926d9d4.js +0 -1
  368. package/assets/esri/core/workers/chunks/1642fa1263d8f4a45101.js +0 -1
  369. package/assets/esri/core/workers/chunks/16a04fc184728d66e6e1.js +0 -1
  370. package/assets/esri/core/workers/chunks/18e0e993c0c39c962e61.js +0 -1
  371. package/assets/esri/core/workers/chunks/19233d0016e5b154c5ce.js +0 -1
  372. package/assets/esri/core/workers/chunks/1a467da4c0b33f655199.js +0 -1
  373. package/assets/esri/core/workers/chunks/1ac8a7a129ba33e05a24.js +0 -1
  374. package/assets/esri/core/workers/chunks/1d92d53186debd52e753.js +0 -1
  375. package/assets/esri/core/workers/chunks/1dba93abe84d30f05d8d.js +0 -1
  376. package/assets/esri/core/workers/chunks/2033e6d42453e4e67048.js +0 -1
  377. package/assets/esri/core/workers/chunks/20b54e7872d967f3be32.js +0 -1
  378. package/assets/esri/core/workers/chunks/2501d9459f6d14c797e5.js +0 -1
  379. package/assets/esri/core/workers/chunks/253c231b5a52f1d2d3a5.js +0 -1
  380. package/assets/esri/core/workers/chunks/257f1e8316877f611e11.js +0 -1
  381. package/assets/esri/core/workers/chunks/28924f31f5ba8ebdc60a.js +0 -1
  382. package/assets/esri/core/workers/chunks/28b09fe50b855a1d8a3f.js +0 -1
  383. package/assets/esri/core/workers/chunks/2b0558c1716425974563.js +0 -2
  384. package/assets/esri/core/workers/chunks/2e7c830b5b1fe406169f.js +0 -1
  385. package/assets/esri/core/workers/chunks/2f4ed8a63d57636a4ebe.js +0 -1
  386. package/assets/esri/core/workers/chunks/393f79843d5a78c1cc37.js +0 -1
  387. package/assets/esri/core/workers/chunks/3958d92c737b3a2a3bc2.js +0 -1
  388. package/assets/esri/core/workers/chunks/3978f00a03e97645b276.js +0 -1
  389. package/assets/esri/core/workers/chunks/3b5c5356353f1a2303a0.js +0 -1
  390. package/assets/esri/core/workers/chunks/40e48b720d89cd067892.js +0 -1
  391. package/assets/esri/core/workers/chunks/436d51b9f1b1b5abc4bc.js +0 -1
  392. package/assets/esri/core/workers/chunks/44a786aba84918f2b247.js +0 -1
  393. package/assets/esri/core/workers/chunks/463747a822499dd933ef.js +0 -1
  394. package/assets/esri/core/workers/chunks/484b251fbcbffcb58323.js +0 -1
  395. package/assets/esri/core/workers/chunks/495f90fe3d0ad32bb82d.js +0 -1
  396. package/assets/esri/core/workers/chunks/49a3888bf9e2481642ac.js +0 -1
  397. package/assets/esri/core/workers/chunks/4ce57dd39075e8fb357c.js +0 -1
  398. package/assets/esri/core/workers/chunks/5459ba8fdeb2370bb52b.js +0 -1
  399. package/assets/esri/core/workers/chunks/55924fb0de05e727f5e3.js +0 -1
  400. package/assets/esri/core/workers/chunks/55dda957c79fb285185f.js +0 -1
  401. package/assets/esri/core/workers/chunks/56e6d8c4a9ed893ce951.js +0 -1
  402. package/assets/esri/core/workers/chunks/57159bcac86d660dcceb.js +0 -1
  403. package/assets/esri/core/workers/chunks/58026fc30d8a0ded4102.js +0 -1
  404. package/assets/esri/core/workers/chunks/5eb29f0068f1c839d05e.js +0 -1
  405. package/assets/esri/core/workers/chunks/5f553da48d0ccbbfcd3c.js +0 -2
  406. package/assets/esri/core/workers/chunks/5fb76575575fe8cfb1f0.js +0 -1
  407. package/assets/esri/core/workers/chunks/6072c63a5da4366e9942.js +0 -1
  408. package/assets/esri/core/workers/chunks/626a715fdec93e188e0c.js +0 -1
  409. package/assets/esri/core/workers/chunks/6525c925bb91facb3575.js +0 -1
  410. package/assets/esri/core/workers/chunks/6529b5cc3ac6baa29fff.js +0 -2
  411. package/assets/esri/core/workers/chunks/65d1e338612e59063eba.js +0 -1
  412. package/assets/esri/core/workers/chunks/66e60351aacbd162775f.js +0 -1
  413. package/assets/esri/core/workers/chunks/694371f51c52a7a94da4.js +0 -1
  414. package/assets/esri/core/workers/chunks/69b0dcd7bcd8ec42e2c3.js +0 -1
  415. package/assets/esri/core/workers/chunks/7260e63252fa5452dc22.js +0 -1
  416. package/assets/esri/core/workers/chunks/72eb0ac55026a4f5d6a7.js +0 -1
  417. package/assets/esri/core/workers/chunks/79429c8be5da85713200.js +0 -1
  418. package/assets/esri/core/workers/chunks/79c0a966f7d11d3c217f.js +0 -1
  419. package/assets/esri/core/workers/chunks/7b470d6ad182548b9e95.js +0 -1
  420. package/assets/esri/core/workers/chunks/7b862a074816c099b9ff.js +0 -1
  421. package/assets/esri/core/workers/chunks/7baa363b3b0a442a63d2.js +0 -1
  422. package/assets/esri/core/workers/chunks/7d8eb4dbea1916320f74.js +0 -1
  423. package/assets/esri/core/workers/chunks/7ddf9b2718dd047f15e6.js +0 -1
  424. package/assets/esri/core/workers/chunks/835af7b4fd92cb4e7af0.js +0 -1
  425. package/assets/esri/core/workers/chunks/8566449c39eba55147f5.js +0 -1
  426. package/assets/esri/core/workers/chunks/864691186c449ca2c3db.js +0 -1
  427. package/assets/esri/core/workers/chunks/88d5541679e77117bf03.js +0 -1
  428. package/assets/esri/core/workers/chunks/88fd698b940dadcc6dc5.js +0 -1
  429. package/assets/esri/core/workers/chunks/894ebc64b698e5d7604b.js +0 -1
  430. package/assets/esri/core/workers/chunks/8be707044d992ef5f1d8.js +0 -1
  431. package/assets/esri/core/workers/chunks/8c1bddc88cc5f4251021.js +0 -1
  432. package/assets/esri/core/workers/chunks/8eecc6df6511c8830f5d.js +0 -1
  433. package/assets/esri/core/workers/chunks/8f0d4aec8bd3cbfefc40.js +0 -1
  434. package/assets/esri/core/workers/chunks/8fea514aada1195c8f30.js +0 -1
  435. package/assets/esri/core/workers/chunks/9234a293d61e134f121f.js +0 -1
  436. package/assets/esri/core/workers/chunks/94bf7f0da6ad3f7ea277.js +0 -1
  437. package/assets/esri/core/workers/chunks/987594539981483a7c5e.js +0 -1
  438. package/assets/esri/core/workers/chunks/995a433936fc90d41634.js +0 -2
  439. package/assets/esri/core/workers/chunks/9bbff8237540409610b3.js +0 -1
  440. package/assets/esri/core/workers/chunks/9e1392a0c608a13ab036.js +0 -1
  441. package/assets/esri/core/workers/chunks/9f1211d2267fb7673c4d.js +0 -1
  442. package/assets/esri/core/workers/chunks/a486d99f9879f94151ba.js +0 -1
  443. package/assets/esri/core/workers/chunks/a50421fe79f264ae3619.js +0 -1
  444. package/assets/esri/core/workers/chunks/a5c115fc53edb52ce1de.js +0 -1
  445. package/assets/esri/core/workers/chunks/a739e617fc461014ad1f.js +0 -1
  446. package/assets/esri/core/workers/chunks/aa21031c8f12ca438eaa.js +0 -1
  447. package/assets/esri/core/workers/chunks/ad27689b231e282b7620.js +0 -1
  448. package/assets/esri/core/workers/chunks/aed16c3e26652960ad3f.js +0 -1
  449. package/assets/esri/core/workers/chunks/af6e8c961fd768fa7be3.js +0 -1
  450. package/assets/esri/core/workers/chunks/b3a1a93c6dc9247cb048.js +0 -1
  451. package/assets/esri/core/workers/chunks/b4abf82b8ac974a55ae1.js +0 -1
  452. package/assets/esri/core/workers/chunks/b8cd81d8fcc78d272130.js +0 -1
  453. package/assets/esri/core/workers/chunks/b9a1046ca2cd0cca5da5.js +0 -1
  454. package/assets/esri/core/workers/chunks/b9d6f89f9b8e9d1bc787.js +0 -1
  455. package/assets/esri/core/workers/chunks/bab5f4b2424b487b87ac.js +0 -1
  456. package/assets/esri/core/workers/chunks/c02b3b8b71205f6ce290.js +0 -1
  457. package/assets/esri/core/workers/chunks/c17dda6fadb8bfad0d51.js +0 -1
  458. package/assets/esri/core/workers/chunks/c21212c356f65244e34e.js +0 -1
  459. package/assets/esri/core/workers/chunks/c374e5d5980db74c4aca.js +0 -1
  460. package/assets/esri/core/workers/chunks/c6bf17b5ff6ec4b980a1.js +0 -1
  461. package/assets/esri/core/workers/chunks/c99dcc17fbd7acd2ad2e.js +0 -1
  462. package/assets/esri/core/workers/chunks/ce481eeb27ea9c1782ae.js +0 -1
  463. package/assets/esri/core/workers/chunks/cec1c87eb3749276ced4.js +0 -1
  464. package/assets/esri/core/workers/chunks/cef02ed3942c010da2e8.js +0 -29
  465. package/assets/esri/core/workers/chunks/cfdbc48f58433a3d5fc3.js +0 -1
  466. package/assets/esri/core/workers/chunks/d456520e4b119a2816b6.js +0 -1
  467. package/assets/esri/core/workers/chunks/d8da31bfe2bc4174e5aa.js +0 -1
  468. package/assets/esri/core/workers/chunks/da1c9257793c2817f40f.js +0 -1
  469. package/assets/esri/core/workers/chunks/dc0c3109b7558b4fe016.js +0 -1
  470. package/assets/esri/core/workers/chunks/ddd8f6154e265dbb6f9f.js +0 -1
  471. package/assets/esri/core/workers/chunks/de601f0d5a2a282d2efd.js +0 -1
  472. package/assets/esri/core/workers/chunks/e227eb44cd139fe2bc1b.js +0 -1
  473. package/assets/esri/core/workers/chunks/e2ddfc96ddba92302e0c.js +0 -1
  474. package/assets/esri/core/workers/chunks/e61ab8ef30bbe788b9d7.js +0 -1
  475. package/assets/esri/core/workers/chunks/e89e6eea380ca2c13b64.js +0 -1
  476. package/assets/esri/core/workers/chunks/e9d352d030dcad1619a6.js +0 -1
  477. package/assets/esri/core/workers/chunks/eb95464bd017fb839510.js +0 -1
  478. package/assets/esri/core/workers/chunks/ed4ac5568dc2815b066d.js +0 -1
  479. package/assets/esri/core/workers/chunks/ed564358cc7b3ee463a3.js +0 -1
  480. package/assets/esri/core/workers/chunks/ef2e0a014c982d9c7ca4.js +0 -1
  481. package/assets/esri/core/workers/chunks/ef9489d1dccb817460bb.js +0 -2
  482. package/assets/esri/core/workers/chunks/f086c6d229fb34a9d7f9.js +0 -1
  483. package/assets/esri/core/workers/chunks/f35e749bb5be39880cbe.js +0 -1
  484. package/assets/esri/core/workers/chunks/f4bc563c71c478d3912f.js +0 -1
  485. package/assets/esri/core/workers/chunks/f6150b51a9430691a040.js +0 -1
  486. package/assets/esri/core/workers/chunks/f6f7d885b4d6080e3f58.js +0 -1
  487. package/assets/esri/core/workers/chunks/f95870bb4d8e4e13e69e.js +0 -1
  488. package/assets/esri/core/workers/chunks/fa59f10ed0f182a2a7f3.js +0 -1
  489. package/assets/esri/core/workers/chunks/fc9065d0cd6285fe0f0d.js +0 -1
  490. /package/assets/esri/core/workers/chunks/{2b0558c1716425974563.js.LICENSE.txt → 6c389e9646a48c26da20.js.LICENSE.txt} +0 -0
  491. /package/assets/esri/core/workers/chunks/{995a433936fc90d41634.js.LICENSE.txt → ab10388dcc17a665ac3b.js.LICENSE.txt} +0 -0
  492. /package/assets/esri/core/workers/chunks/{ef9489d1dccb817460bb.js.LICENSE.txt → ac9a3dfd02160e43fc8a.js.LICENSE.txt} +0 -0
  493. /package/assets/esri/core/workers/chunks/{ee63c693f2539f3bfa17.js.LICENSE.txt → c61e94806b37ca3dd549.js.LICENSE.txt} +0 -0
  494. /package/assets/esri/core/workers/chunks/{5f553da48d0ccbbfcd3c.js.LICENSE.txt → d0c8630177d3a4e316f1.js.LICENSE.txt} +0 -0
  495. /package/assets/esri/core/workers/chunks/{6529b5cc3ac6baa29fff.js.LICENSE.txt → ead4143d811aab610e00.js.LICENSE.txt} +0 -0
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.2/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: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};
2
+ import has from"../../../core/has.js";import{Milliseconds as e}from"../../../core/time.js";function a(e){return l[e]}function i(){return has("esri-iPhone")?"low":"medium"}const o={reset(){const e=m();for(const a of Object.keys(e))l[a]=e[a]}},t={IPhone12Pro:120,GalaxyS20:200,FullHD:240,SurfacePro7:300,FullHDRetina:430},l=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:{minimumPixelRadius:2,minimumOpacity: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+t.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:{minimumPixelRadius:1,minimumOpacity:1,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+t.GalaxyS20:750+t.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:{minimumPixelRadius:.5,minimumOpacity:2,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+t.SurfacePro7:1500+t.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.2/LICENSE.txt */
2
- import{__decorate as t}from"tslib";import e from"../../../core/Accessor.js";import{Milliseconds as o}from"../../../core/time.js";import{property as i,subclass as s}from"../../../core/accessorSupport/decorators.js";let r=class extends e{constructor(t={}){super(t),this.minTotalNumberOfFeatures=2e3,this.maxTotalNumberOfFeatures=5e4,this.maxNumberOfDrawCalls=17e3,this.maxTotalNumberOfVertices=17e5,this.snapshotAvailable=!0,this.polygonLodFactor=1,this.polylineLodFactor=1,this.skipHighSymbolLods=!1}};t([i()],r.prototype,"maxTotalNumberOfFeatures",void 0),t([i()],r.prototype,"maxNumberOfDrawCalls",void 0),t([i()],r.prototype,"maxTotalNumberOfVertices",void 0),t([i()],r.prototype,"snapshotAvailable",void 0),t([i()],r.prototype,"polygonLodFactor",void 0),t([i()],r.prototype,"polylineLodFactor",void 0),t([i()],r.prototype,"skipHighSymbolLods",void 0),r=t([s("esri.views.3d.support.QualitySettings.Graphics3DSettings")],r);let a=class extends e{constructor(t={}){super(t),this.objectLoDFactor=1,this.pointLoDFactor=1,this.meshLoDFactor=1,this.pointCloudLoDFactor=1}};t([i()],a.prototype,"objectLoDFactor",void 0),t([i()],a.prototype,"pointLoDFactor",void 0),t([i()],a.prototype,"meshLoDFactor",void 0),t([i()],a.prototype,"pointCloudLoDFactor",void 0),a=t([s("esri.views.3d.support.QualitySettings.SceneServiceSettings")],a);let p=class extends e{constructor(t={}){super(t),this.lodBias=0,this.angledSplitBias=1,this.vtlContentZoom=1,this.elevationLevelDelta=3,this.reduceTileLevelDifferences=!0}};t([i()],p.prototype,"lodBias",void 0),t([i()],p.prototype,"angledSplitBias",void 0),t([i()],p.prototype,"vtlContentZoom",void 0),t([i()],p.prototype,"elevationLevelDelta",void 0),t([i()],p.prototype,"reduceTileLevelDifferences",void 0),p=t([s("esri.views.3d.support.QualitySettings.TiledSurfaceSettings")],p);let l=class extends e{constructor(t={}){super(t),this.idleMinimumSplatPixelRadius=1,this.nonIdleMinimumSplatPixelRadius=2,this.idleMinimumOpacity=1,this.nonIdleMinimumOpacity=0,this.maximumNumberOfGaussians=2e6}};t([i()],l.prototype,"idleMinimumSplatPixelRadius",void 0),t([i()],l.prototype,"nonIdleMinimumSplatPixelRadius",void 0),t([i()],l.prototype,"idleMinimumOpacity",void 0),t([i()],l.prototype,"nonIdleMinimumOpacity",void 0),t([i()],l.prototype,"maximumNumberOfGaussians",void 0),l=t([s("esri.views.3d.support.QualitySettings.GaussianSplatSettings")],l);let n=class extends e{constructor(t={}){super(t),this.pixelRatio=1}};t([i()],n.prototype,"pixelRatio",void 0),n=t([s("esri.views.3d.support.QualitySettings.HeatmapSettings")],n);let d=class extends e{constructor(){super(...arguments),this.maxTotalNumberOfStreamlines=1e5,this.maxTracingResolution=2048,this.transitionEnabled=!0}};t([i()],d.prototype,"maxTotalNumberOfStreamlines",void 0),t([i()],d.prototype,"maxTracingResolution",void 0),t([i()],d.prototype,"transitionEnabled",void 0),d=t([s("esri.views.3d.support.QualitySettings.FlowSettings")],d);let m=class extends e{constructor(t){super(t),this.graphics3D=new r,this.sceneService=new a,this.tiledSurface=new p,this.gaussianSplat=new l,this.heatmap=new n,this.flow=new d,this.fadeDuration=o(400),this.physicallyBasedRenderingEnabled=!1,this.maxTexturePixels=1/0,this.memoryLimit=750,this.additionalCacheMemory=0,this.frameRate=0,this.maximumPixelRatio=1/0}};t([i({type:r})],m.prototype,"graphics3D",void 0),t([i({type:a})],m.prototype,"sceneService",void 0),t([i({type:p})],m.prototype,"tiledSurface",void 0),t([i({type:l})],m.prototype,"gaussianSplat",void 0),t([i({type:n})],m.prototype,"heatmap",void 0),t([i({type:d})],m.prototype,"flow",void 0),t([i()],m.prototype,"fadeDuration",void 0),t([i()],m.prototype,"physicallyBasedRenderingEnabled",void 0),t([i()],m.prototype,"maxTexturePixels",void 0),t([i()],m.prototype,"memoryLimit",void 0),t([i()],m.prototype,"additionalCacheMemory",void 0),t([i()],m.prototype,"frameRate",void 0),t([i()],m.prototype,"maximumPixelRatio",void 0),m=t([s("esri.views.3d.support.QualitySettings")],m);const u=m;export{u as default};
2
+ import{__decorate as t}from"tslib";import e from"../../../core/Accessor.js";import{Milliseconds as o}from"../../../core/time.js";import{property as i,subclass as s}from"../../../core/accessorSupport/decorators.js";let r=class extends e{constructor(t={}){super(t),this.minTotalNumberOfFeatures=2e3,this.maxTotalNumberOfFeatures=5e4,this.maxNumberOfDrawCalls=17e3,this.maxTotalNumberOfVertices=17e5,this.snapshotAvailable=!0,this.polygonLodFactor=1,this.polylineLodFactor=1,this.skipHighSymbolLods=!1}};t([i()],r.prototype,"maxTotalNumberOfFeatures",void 0),t([i()],r.prototype,"maxNumberOfDrawCalls",void 0),t([i()],r.prototype,"maxTotalNumberOfVertices",void 0),t([i()],r.prototype,"snapshotAvailable",void 0),t([i()],r.prototype,"polygonLodFactor",void 0),t([i()],r.prototype,"polylineLodFactor",void 0),t([i()],r.prototype,"skipHighSymbolLods",void 0),r=t([s("esri.views.3d.support.QualitySettings.Graphics3DSettings")],r);let a=class extends e{constructor(t={}){super(t),this.objectLoDFactor=1,this.pointLoDFactor=1,this.meshLoDFactor=1,this.pointCloudLoDFactor=1}};t([i()],a.prototype,"objectLoDFactor",void 0),t([i()],a.prototype,"pointLoDFactor",void 0),t([i()],a.prototype,"meshLoDFactor",void 0),t([i()],a.prototype,"pointCloudLoDFactor",void 0),a=t([s("esri.views.3d.support.QualitySettings.SceneServiceSettings")],a);let p=class extends e{constructor(t={}){super(t),this.lodBias=0,this.angledSplitBias=1,this.vtlContentZoom=1,this.elevationLevelDelta=3,this.reduceTileLevelDifferences=!0}};t([i()],p.prototype,"lodBias",void 0),t([i()],p.prototype,"angledSplitBias",void 0),t([i()],p.prototype,"vtlContentZoom",void 0),t([i()],p.prototype,"elevationLevelDelta",void 0),t([i()],p.prototype,"reduceTileLevelDifferences",void 0),p=t([s("esri.views.3d.support.QualitySettings.TiledSurfaceSettings")],p);let l=class extends e{constructor(t={}){super(t),this.minimumPixelRadius=1,this.minimumOpacity=1,this.maximumNumberOfGaussians=2e6}};t([i()],l.prototype,"minimumPixelRadius",void 0),t([i()],l.prototype,"minimumOpacity",void 0),t([i()],l.prototype,"maximumNumberOfGaussians",void 0),l=t([s("esri.views.3d.support.QualitySettings.GaussianSplatSettings")],l);let n=class extends e{constructor(t={}){super(t),this.pixelRatio=1}};t([i()],n.prototype,"pixelRatio",void 0),n=t([s("esri.views.3d.support.QualitySettings.HeatmapSettings")],n);let d=class extends e{constructor(){super(...arguments),this.maxTotalNumberOfStreamlines=1e5,this.maxTracingResolution=2048,this.transitionEnabled=!0}};t([i()],d.prototype,"maxTotalNumberOfStreamlines",void 0),t([i()],d.prototype,"maxTracingResolution",void 0),t([i()],d.prototype,"transitionEnabled",void 0),d=t([s("esri.views.3d.support.QualitySettings.FlowSettings")],d);let m=class extends e{constructor(t){super(t),this.graphics3D=new r,this.sceneService=new a,this.tiledSurface=new p,this.gaussianSplat=new l,this.heatmap=new n,this.flow=new d,this.fadeDuration=o(400),this.physicallyBasedRenderingEnabled=!1,this.maxTexturePixels=1/0,this.memoryLimit=750,this.additionalCacheMemory=0,this.frameRate=0,this.maximumPixelRatio=1/0}};t([i({type:r})],m.prototype,"graphics3D",void 0),t([i({type:a})],m.prototype,"sceneService",void 0),t([i({type:p})],m.prototype,"tiledSurface",void 0),t([i({type:l})],m.prototype,"gaussianSplat",void 0),t([i({type:n})],m.prototype,"heatmap",void 0),t([i({type:d})],m.prototype,"flow",void 0),t([i()],m.prototype,"fadeDuration",void 0),t([i()],m.prototype,"physicallyBasedRenderingEnabled",void 0),t([i()],m.prototype,"maxTexturePixels",void 0),t([i()],m.prototype,"memoryLimit",void 0),t([i()],m.prototype,"additionalCacheMemory",void 0),t([i()],m.prototype,"frameRate",void 0),t([i()],m.prototype,"maximumPixelRatio",void 0),m=t([s("esri.views.3d.support.QualitySettings")],m);const u=m;export{u as default};
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
2
- import{signal as i}from"../../../../core/signal.js";import{Milliseconds as e}from"../../../../core/time.js";import{getGaussianSplatAlphaCutoffValue as t}from"../../webgl-engine/shaders/GaussianSplatTechniqueConfiguration.js";class a{static{this.fadeInEase=i=>i*(2-i)}static{this.fadeOutEase=i=>i*i}static{this.inverseFadeInEase=i=>1-Math.sqrt(1-i)}static{this.inverseFadeOutEase=i=>Math.sqrt(1-i)}static{this.minimumFadeDuration=e(80)}static{this.resetFadeDurationInterval=e(1e3)}constructor(t){this._view=t,this._numFadingTiles=i(0),this._tmpFullyFadedOutTiles=new Array,this._visibilityUpdatePending=!1,this._previousNumFadingTiles=0,this._lastStoppedFading=e(0),this._currentFadeDuration=this.baseFadeDuration}get numFadingTiles(){return this._numFadingTiles.value}updateForFrame(i){if(i!==this._lastUpdatedFrameStart){if(this._lastUpdatedFrameStart=i,0===this.numFadingTiles)this._previousFrameStart=null;else{const t=e(null==this._previousFrameStart?0:i-this._previousFrameStart);this.updateAllTileFading(t),this._previousFrameStart=i}this._view.updateFadingTexture()}}fadeTile(i,e,t){const a=this._getTargetOpacity(e);if(i.fadeDirection=e,!this.fadingEnabled)return void this._instantTileFading(i,a);const s=i.opacityModifier;if(s!==a){const a=this._getFadeProgressFromOpacity(s,e);this._startTileFading(i,a,t)}else this._stopTileFading(i)}updateAllTileFading(i){const e=this._tmpFullyFadedOutTiles;e.length=0,this._view.tileHandles.forEach(t=>{this._updateTileFading(t,i)&&e.push(t)});e.length>0&&(this._view.notifyTileObbsChanged(e),this._visibilityUpdatePending=!0),0===this._numFadingTiles.value&&this._visibilityUpdatePending&&(this._visibilityUpdatePending=!1,this._view.updateGaussians()),this._numFadingTiles.value>0&&this._view.view.stage?.renderView.requestRender(2)}onFadeDurationChanged(i){0===i&&this.numFadingTiles>0&&this._instantlyFullyFadeAllTiles()}isTileFadingOut(i){return null!=i.fadeProgress&&1===i.fadeDirection}onTileDiscarded(i){null!=i.fadeProgress&&(this._numFadingTiles.value--,0===this._numFadingTiles.value&&(this._lastStoppedFading=e(performance.now())))}updateFadeDuration(){if(this.numFadingTiles&&this.numFadingTiles>=this._previousNumFadingTiles){const i=.95*this._currentFadeDuration;this._currentFadeDuration=e(Math.max(i,a.minimumFadeDuration))}else 0===this.numFadingTiles&&performance.now()-this._lastStoppedFading>a.resetFadeDurationInterval&&(this._currentFadeDuration=this.baseFadeDuration);return this._previousNumFadingTiles=this.numFadingTiles,this._currentFadeDuration}get updating(){return this._numFadingTiles.value>0}get baseFadeDuration(){return this._view.view.qualitySettings.fadeDuration}get fadingEnabled(){return 0!==this.baseFadeDuration}_startTileFading(i,e,t){null==i.fadeProgress&&this._numFadingTiles.value++,i.fadeDuration=t,i.fadeProgress=e}_stopTileFading(i){null!=i.fadeProgress&&(1===i.fadeDirection&&this._onTileFullyFadedOut(i),this._numFadingTiles.value--,0===this._numFadingTiles.value&&(this._lastStoppedFading=e(performance.now())),i.fadeDuration=null,i.fadeProgress=null)}_updateTileFading(i,e){const{fadeProgress:t,fadeDirection:s}=i;if(null==t)return!1;const n=this._fadeDirectionToSign(s),d=i.fadeDuration,r=this._getTargetOpacity(s),l=e/Math.abs(d||1),u=Math.min(t+l,1),o=r-n*(1-(0===s?a.fadeInEase:a.fadeOutEase)(u)),h=1===u||this._tileReachedFadeOutCutoff(i,o);if(i.opacityModifier=h?r:o,h){const e=1===s;return this._stopTileFading(i),this._updateOpacityModifier(i),e}return i.fadeProgress=u,this._updateOpacityModifier(i),!1}_updateOpacityModifier(i){for(let e=0;e<i.pageIds.length;e++){const t=i.pageIds[e];this._view.data.fadingTexture.updateBuffer(i.opacityModifier,t)}}_tileReachedFadeOutCutoff(i,e){if(1!==i.fadeDirection)return!1;const a=t(this._view.view.qualitySettings.gaussianSplat.nonIdleMinimumOpacity);return e*i.maxGaussianOpacity<=a}_instantTileFading(i,e){i.fadeDuration=null,i.fadeProgress=null,i.opacityModifier=e,this._updateOpacityModifier(i),1===i.fadeDirection&&this._onTileFullyFadedOut(i)}_instantlyFullyFadeAllTiles(){const i=this._tmpFullyFadedOutTiles;i.length=0,this._view.tileHandles.forEach(e=>{if(null!=e.fadeProgress){const t=1===e.fadeDirection;this._instantTileFading(e,this._getTargetOpacity(e.fadeDirection)),t&&i.push(e)}});const e=i.length>0;e&&(this._visibilityUpdatePending=!0),this._numFadingTiles.value=0,this._visibilityUpdatePending&&(this._visibilityUpdatePending=!1,this._view.updateGaussians()),e&&this._view.notifyTileObbsChanged(i)}_onTileFullyFadedOut(i){i.lifecycleState=0,this._view.moveTileToCache(i)}_fadeDirectionToSign(i){return 0===i?1:-1}_getTargetOpacity(i){return 0===i?1:0}_getFadeProgressFromOpacity(i,e){const t=Math.max(0,Math.min(i,1));return 0===e?a.inverseFadeInEase(t):a.inverseFadeOutEase(t)}}export{a as GaussianSplatFadeHelper};
2
+ import{signal as i}from"../../../../core/signal.js";import{Milliseconds as e}from"../../../../core/time.js";import{getGaussianSplatAlphaCutoffValue as t}from"../../webgl-engine/shaders/GaussianSplatTechniqueConfiguration.js";class a{static{this.fadeInEase=i=>i*(2-i)}static{this.fadeOutEase=i=>i*i}static{this.inverseFadeInEase=i=>1-Math.sqrt(1-i)}static{this.inverseFadeOutEase=i=>Math.sqrt(1-i)}static{this.minimumFadeDuration=e(80)}static{this.resetFadeDurationInterval=e(1e3)}constructor(t){this._view=t,this._numFadingTiles=i(0),this._tmpFullyFadedOutTiles=new Array,this._visibilityUpdatePending=!1,this._previousNumFadingTiles=0,this._lastStoppedFading=e(0),this._currentFadeDuration=this.baseFadeDuration}get numFadingTiles(){return this._numFadingTiles.value}updateForFrame(i){if(i!==this._lastUpdatedFrameStart){if(this._lastUpdatedFrameStart=i,0===this.numFadingTiles)this._previousFrameStart=null;else{const t=e(null==this._previousFrameStart?0:i-this._previousFrameStart);this.updateAllTileFading(t),this._previousFrameStart=i}this._view.updateFadingTexture()}}fadeTile(i,e,t){const a=this._getTargetOpacity(e);if(i.fadeDirection=e,!this.fadingEnabled)return void this._instantTileFading(i,a);const s=i.opacityModifier;if(s!==a){const a=this._getFadeProgressFromOpacity(s,e);this._startTileFading(i,a,t)}else this._stopTileFading(i)}updateAllTileFading(i){const e=this._tmpFullyFadedOutTiles;e.length=0,this._view.tileHandles.forEach(t=>{this._updateTileFading(t,i)&&e.push(t)});e.length>0&&(this._view.notifyTileObbsChanged(e),this._visibilityUpdatePending=!0),0===this._numFadingTiles.value&&this._visibilityUpdatePending&&(this._visibilityUpdatePending=!1,this._view.updateGaussians()),this._numFadingTiles.value>0&&this._view.view.stage?.renderView.requestRender(2)}onFadeDurationChanged(i){0===i&&this.numFadingTiles>0&&this._instantlyFullyFadeAllTiles()}isTileFadingOut(i){return null!=i.fadeProgress&&1===i.fadeDirection}onTileDiscarded(i){null!=i.fadeProgress&&(this._numFadingTiles.value--,0===this._numFadingTiles.value&&(this._lastStoppedFading=e(performance.now())))}updateFadeDuration(){if(this.numFadingTiles&&this.numFadingTiles>=this._previousNumFadingTiles){const i=.95*this._currentFadeDuration;this._currentFadeDuration=e(Math.max(i,a.minimumFadeDuration))}else 0===this.numFadingTiles&&performance.now()-this._lastStoppedFading>a.resetFadeDurationInterval&&(this._currentFadeDuration=this.baseFadeDuration);return this._previousNumFadingTiles=this.numFadingTiles,this._currentFadeDuration}get updating(){return this._numFadingTiles.value>0}get baseFadeDuration(){return this._view.view.qualitySettings.fadeDuration}get fadingEnabled(){return 0!==this.baseFadeDuration}_startTileFading(i,e,t){null==i.fadeProgress&&this._numFadingTiles.value++,i.fadeDuration=t,i.fadeProgress=e}_stopTileFading(i){null!=i.fadeProgress&&(1===i.fadeDirection&&this._onTileFullyFadedOut(i),this._numFadingTiles.value--,0===this._numFadingTiles.value&&(this._lastStoppedFading=e(performance.now())),i.fadeDuration=null,i.fadeProgress=null)}_updateTileFading(i,e){const{fadeProgress:t,fadeDirection:s}=i;if(null==t)return!1;const n=this._fadeDirectionToSign(s),r=i.fadeDuration,d=this._getTargetOpacity(s),l=e/Math.abs(r||1),u=Math.min(t+l,1),o=d-n*(1-(0===s?a.fadeInEase:a.fadeOutEase)(u)),h=1===u||this._tileReachedFadeOutCutoff(i,o);if(i.opacityModifier=h?d:o,h){const e=1===s;return this._stopTileFading(i),this._updateOpacityModifier(i),e}return i.fadeProgress=u,this._updateOpacityModifier(i),!1}_updateOpacityModifier(i){for(let e=0;e<i.pageIds.length;e++){const t=i.pageIds[e];this._view.data.fadingTexture.updateBuffer(i.opacityModifier,t)}}_tileReachedFadeOutCutoff(i,e){if(1!==i.fadeDirection)return!1;const a=t(this._view.view.qualitySettings.gaussianSplat.minimumOpacity);return e*i.maxGaussianOpacity<=a}_instantTileFading(i,e){i.fadeDuration=null,i.fadeProgress=null,i.opacityModifier=e,this._updateOpacityModifier(i),1===i.fadeDirection&&this._onTileFullyFadedOut(i)}_instantlyFullyFadeAllTiles(){const i=this._tmpFullyFadedOutTiles;i.length=0,this._view.tileHandles.forEach(e=>{if(null!=e.fadeProgress){const t=1===e.fadeDirection;this._instantTileFading(e,this._getTargetOpacity(e.fadeDirection)),t&&i.push(e)}});const e=i.length>0;e&&(this._visibilityUpdatePending=!0),this._numFadingTiles.value=0,this._visibilityUpdatePending&&(this._visibilityUpdatePending=!1,this._view.updateGaussians()),e&&this._view.notifyTileObbsChanged(i)}_onTileFullyFadedOut(i){i.lifecycleState=0,this._view.moveTileToCache(i)}_fadeDirectionToSign(i){return 0===i?1:-1}_getTargetOpacity(i){return 0===i?1:0}_getFadeProgressFromOpacity(i,e){const t=Math.max(0,Math.min(i,1));return 0===e?a.inverseFadeInEase(t):a.inverseFadeOutEase(t)}}export{a as GaussianSplatFadeHelper};
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
2
- import{fromValues as e,create as t}from"../../../core/libs/gl-matrix-2/factories/vec3f64.js";import r from"../../../geometry/SpatialReference.js";import{projectVectorToVector as o}from"../../../geometry/projection/projectVectorToVector.js";import{wrap as i}from"../../../geometry/support/aaBoundingBox.js";import{create as n}from"../../../geometry/support/aaBoundingRect.js";import{isPlateCarree as s}from"../../../geometry/support/spatialReferenceUtils.js";import{createPlanarGlobePatch as a,updateEdgesAndCornersPlanar as u,updateEdgeElevationsAndResolutionsPlanar as l}from"./PatchGeometryFactory.js";import{Tile as h}from"./Tile.js";import{intersectAabbInvDirBefore as d}from"../webgl-engine/lib/RayIntersections.js";class m extends h{constructor(e,t,r,o,i){super(),this._horizontalScaleFactor=1,this._extentInRenderSR=n(),this._baseUsedMemory=900,this._subtreeGeometryElevationBoundMin=0,this._subtreeGeometryElevationBoundMax=0,this.init(e,t,r,o,i)}init(t,i,n,a,u){super.init(t,i,n,a,u);const l=u.view.renderSpatialReference,h=u.spatialReference,d=null!=l&&s(l)&&null!=h&&h.isGeographic?this.ellipsoid.radius*Math.PI/180:1;this._horizontalScaleFactor=d;const{isWebMercatorOnPlateCarree:m}=u,c=this._extentInRenderSR,p=this.extent;if(m){const t=e(p[0],p[1],0);o(t,r.WebMercator,t,r.PlateCarree);const i=e(p[2],p[3],0);o(i,r.WebMercator,i,r.PlateCarree),c[0]=t[0],c[1]=t[1],c[2]=i[0],c[3]=i[1]}else for(let e=0;e<4;++e)c[e]=p[e]*d;this.centerAtSeaLevel[0]=.5*(c[0]+c[2]),this.centerAtSeaLevel[1]=.5*(c[1]+c[3]),this.centerAtSeaLevel[2]=0,this._edgeLen=Math.max(c[2]-c[0],c[3]-c[1]),this._edgeLen2=this._edgeLen*this._edgeLen,this.updateRadiusAndCenter()}updateRadiusAndCenter(){this._updateCenter();const e=this._extentInRenderSR,t=.5*(e[2]-e[0]),r=.5*(e[3]-e[1]),o=Math.sqrt(t*t+r*r),i=.5*(this.elevationBoundsMax-this.elevationBoundsMin),n=Math.max(o,i);this._center[1].radius=n}_calculateFrustumVisibility(e){const t=this._aabb(),r=t[0],o=t[1],i=t[2],n=t[3],s=t[4],a=t[5];let u=!0;for(let l=0;l<6;l++){const t=e[l],h=t[0],d=t[1],m=t[2],c=t[3];if(h*(h>0?r:n)+d*(d>0?o:s)+m*(m>0?i:a)+c>=0)return 2;u=u&&h*(h<0?r:n)+d*(d<0?o:s)+m*(m<0?i:a)+c<=0}return u?0:1}_aabb(){const e=this._extentInRenderSR;return i(e[0],e[1],Math.min(this.elevationBoundsMin,this._subtreeGeometryElevationBoundMin),e[2],e[3],Math.max(this.elevationBoundsMax,this._subtreeGeometryElevationBoundMax))}intersectsRay(e,t,r,o){return c[0]=1/t[0],c[1]=1/t[1],c[2]=1/t[2],d(this._aabb(),e,c,r,o)}createGeometry(){a(this.renderData),this._updateSubtreeGeometryElevationsBounds(),this.setMemoryDirty()}_updateSubtreeGeometryElevationsBounds(){const e=this._subtreeGeometryElevationBoundMin,t=this._subtreeGeometryElevationBoundMax,r=this.renderData;let o=e,i=t;if(r){const e=r.geometry.boundingBox;o=e[2],i=e[5]}else if(!this.leaf){o=1/0,i=-1/0;for(const e of this.children){const t=e;o=Math.min(o,t._subtreeGeometryElevationBoundMin),i=Math.max(i,t._subtreeGeometryElevationBoundMax)}}if(o!==this._subtreeGeometryElevationBoundMin||i!==this._subtreeGeometryElevationBoundMax){this._subtreeGeometryElevationBoundMin=o,this._subtreeGeometryElevationBoundMax=i;const e=this.parent;e?._updateSubtreeGeometryElevationsBounds()}}get minimumVerticesPerSide(){return this.level<9?3:2}updateEdgeElevations(){u(this.renderData),this._updateSubtreeGeometryElevationsBounds()}updateEdgeElevationsAndResolutions(){l(this.renderData),this._updateSubtreeGeometryElevationsBounds()}get horizontalScale(){return this._horizontalScaleFactor}}const c=t();export{m as PlanarPatch};
2
+ import{fromValues as e,create as t}from"../../../core/libs/gl-matrix-2/factories/vec3f64.js";import r from"../../../geometry/SpatialReference.js";import{projectVectorToVector as i}from"../../../geometry/projection/projectVectorToVector.js";import{wrap as o}from"../../../geometry/support/aaBoundingBox.js";import{create as s}from"../../../geometry/support/aaBoundingRect.js";import{isPlateCarree as n}from"../../../geometry/support/spatialReferenceUtils.js";import{createPlanarGlobePatch as a,updateEdgesAndCornersPlanar as u,updateEdgeElevationsAndResolutionsPlanar as l}from"./PatchGeometryFactory.js";import{Tile as h}from"./Tile.js";import{intersectAabbInvDirBefore as d}from"../webgl-engine/lib/RayIntersections.js";class m extends h{constructor(e,t,r,i,o){super(),this._horizontalScaleFactor=1,this._extentInRenderSR=s(),this._baseUsedMemory=900,this._subtreeGeometryElevationBoundMin=0,this._subtreeGeometryElevationBoundMax=0,this.init(e,t,r,i,o)}init(t,o,s,a,u){super.init(t,o,s,a,u);const l=u.view.renderSpatialReference,h=u.spatialReference,d=null!=l&&n(l)&&null!=h&&h.isGeographic?this.ellipsoid.radius*Math.PI/180:1;this._horizontalScaleFactor=d;const{isWebMercatorOnPlateCarree:m}=u,c=this._extentInRenderSR,p=this.extent;if(m){const t=e(p[0],p[1],0);i(t,r.WebMercator,t,r.PlateCarree);const o=e(p[2],p[3],0);i(o,r.WebMercator,o,r.PlateCarree),c[0]=t[0],c[1]=t[1],c[2]=o[0],c[3]=o[1]}else for(let e=0;e<4;++e)c[e]=p[e]*d;this.centerAtSeaLevel[0]=.5*(c[0]+c[2]),this.centerAtSeaLevel[1]=.5*(c[1]+c[3]),this.centerAtSeaLevel[2]=0,this._edgeLen=Math.max(c[2]-c[0],c[3]-c[1]),this._edgeLen2=this._edgeLen*this._edgeLen,this.updateRadiusAndCenter()}updateRadiusAndCenter(){this._updateCenter();const e=this._extentInRenderSR,t=.5*(e[2]-e[0]),r=.5*(e[3]-e[1]),i=Math.sqrt(t*t+r*r),o=.5*(this.elevationBoundsMax-this.elevationBoundsMin),s=Math.max(i,o);this._center[1].radius=s}_calculateFrustumVisibility(e){const t=this._aabb(),r=t[0],i=t[1],o=t[2],s=t[3],n=t[4],a=t[5];let u=!0;for(let l=0;l<6;l++){const t=e[l],h=t[0],d=t[1],m=t[2],c=t[3];if(h*(h>0?r:s)+d*(d>0?i:n)+m*(m>0?o:a)+c>=0)return 2;u=u&&h*(h<0?r:s)+d*(d<0?i:n)+m*(m<0?o:a)+c<=0}return u?0:1}_aabb(){const e=this._extentInRenderSR;return o(e[0],e[1],Math.min(this.elevationBoundsMin,this._subtreeGeometryElevationBoundMin),e[2],e[3],Math.max(this.elevationBoundsMax,this._subtreeGeometryElevationBoundMax))}intersectsRay(e,t,r,i){return c[0]=1/t[0],c[1]=1/t[1],c[2]=1/t[2],d(this._aabb(),e,c,r,i)}createGeometry(){a(this.renderData),this._updateSubtreeGeometryElevationsBounds(),this.setMemoryDirty()}_updateSubtreeGeometryElevationsBounds(){const e=this._subtreeGeometryElevationBoundMin,t=this._subtreeGeometryElevationBoundMax,r=this.renderData;let i=e,o=t;if(r){const e=r.geometry.boundingBox;i=e[2],o=e[5]}else if(!this.leaf){i=1/0,o=-1/0;for(const e of this.children){const t=e;i=Math.min(i,t._subtreeGeometryElevationBoundMin),o=Math.max(o,t._subtreeGeometryElevationBoundMax)}}if(i!==this._subtreeGeometryElevationBoundMin||o!==this._subtreeGeometryElevationBoundMax){this._subtreeGeometryElevationBoundMin=i,this._subtreeGeometryElevationBoundMax=o,this.updateVisibility();const e=this.parent;e?._updateSubtreeGeometryElevationsBounds()}}get minimumVerticesPerSide(){return this.level<9?3:2}updateEdgeElevations(){u(this.renderData),this._updateSubtreeGeometryElevationsBounds()}updateEdgeElevationsAndResolutions(){l(this.renderData),this._updateSubtreeGeometryElevationsBounds()}get horizontalScale(){return this._horizontalScaleFactor}}const c=t();export{m as PlanarPatch};
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
2
- import{toConst as e}from"../../../core/compilerUtils.js";import"../../../core/has.js";import{clamp as t}from"../../../core/mathUtils.js";import{abortMaybe as i}from"../../../core/maybe.js";import s from"../../../core/ObjectPool.js";import{subtract as n,squaredLength as r,dot as a,scale as l,add as o,length as h,copy as u}from"../../../core/libs/gl-matrix-2/math/vec3.js";import{create as d,unitZ as c}from"../../../core/libs/gl-matrix-2/factories/vec3f64.js";import{getReferenceEllipsoid as g}from"../../../geometry/ellipsoidUtils.js";import{create as p,equals as f,rectangleContainsRectangleCyclicalAware as _,rectanglesIntersectCyclicalAware as m,width as y,height as v}from"../../../geometry/support/aaBoundingRect.js";import{Sphere as M}from"../../../geometry/support/sphere.js";import{isGroupLayer as A}from"../../../layers/support/layerUtils.js";import{isLayerViewWithFlowRenderer as x}from"../support/flowUtils.js";import{ElevationBounds as D}from"./ElevationBounds.js";import{ElevationTileAgent as L,isElevationTileAgent as S}from"./ElevationTileAgent.js";import{LayerClasses as b}from"./LayerClass.js";import{MapDataCacheItem as j}from"./MapDataCacheItem.js";import{MapTileAgent as I,isMapTileAgent as U}from"./MapTileAgent.js";import{maxPatchTesselation as T}from"./TerrainConst.js";import{isVectorTile as C,isTileTexture as B,isRasterTile as E,isCreateBitmapResult as w}from"./TerrainData.js";import{weakAssert as P,isBlendableLayerView as R,oppositeCorner as q,internalAssert as O,enableTerrainInternalChecks as V,neighborEdgeIndices as N,oppositeEdge as G,neighborCornerIndices as k,almostEquals as F,enableWaterproofTests as z,isNorth as W,isSouth as J,isWest as H,isEast as $,isWestCorner as X,isNorthCorner as Y}from"./terrainUtils.js";import{tileAgentDone as Q}from"./TileAgent.js";import{TilePerLayerInfo as K}from"./TilePerLayerInfo.js";import{fallsWithinLayerView as Z}from"./tileUtils.js";const ee=.1;class te{constructor(){this._lij=[0,0,0],this._children=[null,null,null,null],this._pendingUpdates=0,this._dirty=!0,this._previouslyRendered=!1,this._lastElevationSourceUpdateRequestSignature=null,this.extent=p(),this._elevationBoundsMin=NaN,this._elevationBoundsMax=0,this.layerInfo=[[],[]],this.extentInRadians=p(),this.centerAtSeaLevel=d(),this._center=[d(),new M,d()],this.up=c(),this._withinClippingArea=!0,this._intersectsClippingArea=!0,this._maxTesselation=0,this._usedMemory=0,this._rasterTileMemory=0,this._vectorTileMemory=0,this._mapDataRefCount=0,this.screenDepth=0,this.renderOrder=0,this._edgeLen=0,this._edgeLen2=0,this._curvatureHeight=0,this.onCompressionFinished=()=>{this.setPendingUpdate(16),this.setMemoryDirty()},this.extentMidX=0,this.extentMidY=0,this.distanceToPOI=-1,this._lastPOI=d(),this.maxLevelDeltaNeighborCount=0,this.unmergableChildCount=0}get lij(){return this._lij}get spatialReference(){return this._surface.spatialReference??this._surface.tilingScheme.spatialReference}get isDisposed(){return null==this._surface}get elevationLevelDelta(){return this._surface.getElevationLevelDelta(this.level)}_setPendingUpdateForDescendants(){const e=this._children;if(e[0])for(const t of e)t.renderData&&(t.setPendingUpdate(16),t.setMemoryDirty()),t._setPendingUpdateForDescendants()}static prune(){ne.prune(0),re.prune(0),K.prune()}get _cached(){return!this.leaf&&this._mapDataRefCount<=0}get withinClippingArea(){return this._withinClippingArea}get intersectsClippingArea(){return this._intersectsClippingArea}get clippingArea(){return this._clippingArea}get parent(){return this._parent}get children(){return this._children}get surface(){return this._surface}get elevationBoundsMin(){return this._elevationBoundsMin}get elevationBoundsMax(){return this._elevationBoundsMax}get level(){return this._lij[0]}get key(){return`${this._lij[0]}/${this._lij[1]}/${this._lij[2]}`}get edgeLen(){return this._edgeLen}get radius(){return this._center[1].radius}get visible(){return this._dirty&&this.computeVisibility(),this._visible}get frustumVisibility(){return this._dirty&&this.computeVisibility(),this._frustumVisibility}computeVisibility(){this._dirty=!1;const e=this.parent,t=e?.frustumVisibility??1;this._frustumVisibility=0===t?0:2===t&&this._elevationBoundsMin>=e._elevationBoundsMin&&this._elevationBoundsMax<=e._elevationBoundsMax?2:this._calculateFrustumVisibility(this.surface.frustum);const i=2!==this._frustumVisibility&&this._intersectsClippingArea;i!==this._visible&&(this._visible=i,this._surface.emit("tiles-visibility-changed"),this._surface.renderer.setDirty(),this.updateAgentSuspension())}get _loadable(){return this.visible||this._surface.view.state.fixedContentCamera}get rendered(){const e=!!this.renderData;return e!==this._previouslyRendered&&(this._surface.emit("tiles-visibility-changed"),this._previouslyRendered=e,this._surface.renderer.setDirty()),e}init(e,t,i,s,n){this._lij[0]=e,this._lij[1]=t,this._lij[2]=i,this.ellipsoid=g(n.tilingScheme.spatialReference),n.tilingScheme.getExtent(e,t,i,this.extent),n.tilingScheme.convertExtentToRadians(this.extent,this.extentInRadians),this.extentMidX=.5*(this.extent[0]+this.extent[2]),this.extentMidY=.5*(this.extent[1]+this.extent[3]),this._withinClippingArea=!0,this._intersectsClippingArea=!0,this._clippingArea=null,this._mapDataRefCount=0,n.upsampleMapCache.pop(this.key),this._edgeLen=0,this._edgeLen2=0,this._center[1].radius=0,this.elevationLevel=e,this._lastElevationSourceUpdateRequestSignature=null,s&&!Number.isNaN(s.elevationBoundsMin)?(this._elevationBoundsMin=s.elevationBoundsMin,this._elevationBoundsMax=s.elevationBoundsMax):(this._elevationBoundsMin=0,this._elevationBoundsMax=0),this._pendingUpdates=0,this.renderData=null,this.screenDepth=0,this._visible=!1,this._previouslyRendered=!1,this._parent=s,this.clearChildren(),this._surface=n,this.updateVisibility(),this.maxLevelDeltaNeighborCount=0,this.unmergableChildCount=0;for(const r of b){const e=n.numLayers(r),t=this.layerInfo[r];for(const i of t)i.release();t.length=e;for(let i=0;i<e;i++)t[i]=K.acquire(this._surface.upsampleInfoPool),0===r&&this.findElevationBoundsForLayer(i,-1)}this.computeElevationBounds(),this._maxTesselation=Math.min(n.tilingScheme.pixelSize,T)}dispose(){P(!this.renderData,"tile.renderData was not unloaded"),this._surface?.upsampleMapCache.pop(this.key),this.layerInfo.forEach(e=>{e.forEach(e=>e.release()),e.length=0}),this._surface=this._parent=null,this.clearChildren(),this.setMemoryDirty()}refMapData(){++this._mapDataRefCount,this._cached||this._surface.upsampleMapCache.pop(this.key)}unrefMapData(){--this._mapDataRefCount,this._cached&&this.cachedMemory>0&&this._surface.upsampleMapCache.put(this.key,new j(e(this)))}setMemoryDirty(){this._usedMemory=0}get usedMemory(){return this._ensureUsedMemory()+(this._cached?0:this.mapDataMemory)}get cachedMemory(){return this._ensureUsedMemory(),null==this._surface?this.usedMemory:this._cached?this.mapDataMemory:0}get mapDataMemory(){return this._rasterTileMemory+this._vectorTileMemory}get _cpuImageMemorySize(){const e=4,t=this._surface.tilingScheme.pixelSize;return t*t*e}_ensureUsedMemory(){if(this._usedMemory>0)return this._vectorTileMemory=this.layerInfo[1].reduce((e,{data:t})=>e+(C(t)?t.usedMemoryPerReference:0),0),this._usedMemory;this._usedMemory=this._baseUsedMemory,this._rasterTileMemory=0,this._vectorTileMemory=0;for(const{data:e}of this.layerInfo[1])C(e)?this._vectorTileMemory+=e.usedMemoryPerReference:this._rasterTileMemory+=this.getTerrainDataMemory(e);for(const e of this.layerInfo[0])this._usedMemory+=e.data?this._cpuImageMemorySize:0;return this.renderData&&(this._usedMemory+=this.renderData.estimatedGeometryMemoryUsage,this._rasterTileMemory+=this.renderData.texture?.usedMemory??0),this._cached&&this._surface.upsampleMapCache.updateSize(this.key),this._usedMemory}getUsedMemoryForLayer(e,t){const i=this.layerInfo[e][t];return i?.data?1===e?this._cached?0:this.getTerrainDataMemory(i.data):0===e?this._cpuImageMemorySize:0:0}getTerrainDataMemory(e){return B(e)?e.texture.usedMemory:E(e)?e.memoryUsage:C(e)?e.usedMemoryPerReference:w(e)?this._cpuImageMemorySize:0}updateScreenDepth(e){const[t,i,s]=this._center[1].center,n=e,r=n[2]*t+n[6]*i+n[10]*s+n[14];this.screenDepth=r<0?0:r/(n[3]*t+n[7]*i+n[11]*s+n[15])}shouldSplit(e,t,i){if(!this.visible)return 0;if(e.frustum&&(!this._intersectsClippingArea||2===this._calculateFrustumVisibility(e.frustum)))return 0;const s=this.level;n(ce,this._center[1].center,t);let u=r(ce),d=ce,c=this._center[1].center;n(ge,this._center[0],t);const g=r(ge);g<u&&(u=g,d=ge,c=this._center[0]),n(pe,this._center[2],t);const p=r(pe);if(p<u&&(u=p,d=pe,c=this._center[2]),this._edgeLen2>u&&s<e.maxLod)return 1;const f=Math.sqrt(u),_=e.fovX*f*2,m=this._edgeLen/_,y=()=>{if(s<e.maxLod)return this.elevationLevel=s,0;const t=s+Math.ceil(-Math.log2(e.relativeWidthLimit/m));return t!==this.elevationLevel?(this.elevationLevel=t,2):0},v=null!=i?i-s:1/0;if(v<=.5)return y();const M=a(this.up,ce),A=this._elevationBoundsMax-this._elevationBoundsMin,x=A/this.edgeLen;if(e.aboveGround&&M>0&&x<.001){if(M/f-Math.sin(this._curvatureHeight/(this.edgeLen*Math.SQRT1_2)*Math.PI)-x>0)return y()}const D=null!=i?3-Math.min(v,2):1;if(m*D<e.relativeWidthLimit||s>=e.maxLod)return y();if(s<7)return 1;l(fe,this.up,M),n(fe,fe,d);const L=r(fe);if(L<=this.radius*this.radius)return 1;l(fe,fe,this.radius/Math.sqrt(L)),o(fe,fe,c),n(fe,t,fe);const S=Math.min(1,(Math.abs(a(fe,this.up))+.5*A+this._curvatureHeight)/h(fe)),b=ee/e.angledSplitBias,j=e.fovY*f*2;return S*(this._edgeLen/j*D)<b*e.relativeHeightLimit?y():1}needsElevationSourceUpdate(){const e=this.renderData?.geometryState.samplerDataSourceLevels;if(null==e)return!1;const t=Math.max(this.elevationLevel-this.elevationLevelDelta,0);return e.some(e=>e>t)&&this._lastElevationSourceUpdateRequestSignature!==this._elevationSourceUpdateRequestSignature(e)}markElevationSourceUpdateRequested(){const e=this.renderData?.geometryState.samplerDataSourceLevels;this._lastElevationSourceUpdateRequestSignature=null!=e?this._elevationSourceUpdateRequestSignature(e):null}_elevationSourceUpdateRequestSignature(e){return`${Math.max(this.elevationLevel-this.elevationLevelDelta,0)}:${e.join(",")}`}createChildren(){const e=this._children,t=this.lij[0]+1,i=2*this.lij[1],s=2*this.lij[2];return e[0]=this.surface.createTile(t,i,s,this),e[1]=this.surface.createTile(t,i,s+1,this),e[2]=this.surface.createTile(t,i+1,s,this),e[3]=this.surface.createTile(t,i+1,s+1,this),e}clearChildren(){this._children[0]=this._children[1]=this._children[2]=this._children[3]=null}get loaded(){return this.renderData?.hasGeometry??!1}get hasGeometryState(){return null!=this.renderData?.geometryState}load(){this.refMapData();for(const e of b)this._createOrUpdateAgents(0,e);this.surface.renderer.loadTile(this)}unload(){this.renderData&&this.unrefMapData(),this.surface.renderer.unloadTile(this);for(const e of b){const t=this.layerInfo[e];for(const e of t)e.loadingAgent&&e.loadingAgent!==Q&&(se(e.loadingAgent),e.loadingAgent=null),e.pendingUpdates=0}this.resetPendingUpdate(8),this.resetPendingUpdate(16),this.resetPendingUpdate(32)}unloadMapData(){const e=this.layerInfo[1];for(const t of e)t.loadingAgent&&t.loadingAgent!==Q&&(se(t.loadingAgent),t.loadingAgent=null),t.pendingUpdates=0,t.invalidateSourceData();this.renderData?.releaseTexture(),this.setMemoryDirty()}updateClippingStatus(e){if(f(e,this._clippingArea))return!1;const t=this._intersectsClippingArea,i=this._withinClippingArea;null!=e?(this._intersectsClippingArea=this.intersectsExtent(e),this._withinClippingArea=this._isWithinExtent(e)):(this._intersectsClippingArea=!0,this._withinClippingArea=!0),this._clippingArea=e,this.updateVisibility();const s=i&&this._withinClippingArea,n=!(i||t||this._withinClippingArea||this._intersectsClippingArea);return!this.renderData||s||n||this.setPendingUpdate(8),!0}updateVisibility(){this._dirty=!0,this._surface.setTileTreeDirty(!1)}getLayerInfo(e,t){return this.layerInfo[t][e]}hasLayerData(e,t){const i=this.layerInfo[t][e];return!(!i?.data||i.dataInvalidated)}get updating(){if(this.hasPendingUpdates)return!0;for(const e of b){const t=this.layerInfo[e];for(const e of t)if(e.loadingAgent&&e.loadingAgent!==Q&&e.loadingAgent.updating)return!0}return!1}_isSuspended(e){return!!this.hasPendingUpdate(1)||0!==e&&!this._loadable}get hasPendingUpdates(){return 0!==this._pendingUpdates}hasPendingUpdate(e){return(this._pendingUpdates&e)===e}setPendingUpdate(e){const t=this._pendingUpdates;return this._pendingUpdates|=e,1===e||4===e?this._surface.setTileTreeDirty(!0):this._surface.requestUpdate(),t!==this._pendingUpdates}resetPendingUpdate(e){return!!this.hasPendingUpdate(e)&&(this._pendingUpdates&=~e,!0)}requestLayerData(e,t,s){const n=this.layerInfo[t][e];if(n.waitingAgents.has(s))return console.warn("agent already requested this piece of map data (tile %s, agent tile %s, layer: %d/%d)",this._lij.toString(),s.tile.lij.toString(),t,e),!0;if(n.waitingAgents.push(s),n.data&&!n.dataInvalidated){console.warn("agent requested existing data (tile %s, agent tile %s, layer: %d/%d)",this._lij.toString(),s.tile.lij.toString(),t,e);const i=C(n.data);return s.dataArrived(this,i),!0}if(n.requestPromise)return!0;i(n.requestAbort),n.requestAbort=new AbortController;const r=this._surface.requestTileData(this,e,t,{signal:n.requestAbort.signal});if(!r)return n.requestAbort=null,!1;const a=()=>{n.requestPromise===r&&(n.requestPromise=null,n.requestAbort=null)};return n.requestPromise=r,r.then(a,a),!0}get leaf(){return null==this._children[0]}hasLij(e){return this._lij[0]===e[0]&&this._lij[1]===e[1]&&this._lij[2]===e[2]}findByLij(e){if(this.hasLij(e))return this;const t=this._children;if(!t[0])return null;return t[0].findByLij(e)||t[1].findByLij(e)||t[2].findByLij(e)||t[3].findByLij(e)}distanceToSquared(e){return r(n(fe,this._center[1].center,e))}containsPoint(e){const t=this.extent;return e[0]>=t[0]&&e[1]>=t[1]&&e[0]<=t[2]&&e[1]<=t[3]}containsPointXY(e,t){const i=this.extent;return e>=i[0]&&t>=i[1]&&e<=i[2]&&t<=i[3]}unrequestLayerData(e,t,i){const s=this.layerInfo[t][e],n=s.waitingAgents,r=null!=n.removeUnordered(i);P(r,"agent has not requested this piece of map data"),n.length<1&&(s.abortRequest(),this.setMemoryDirty())}dataArrived(e,t,i){const s=C(i),n=this.layerInfo[t][e];n.data=i,n.dataInvalidated=!1,n.waitingAgents.forAll(e=>e.dataArrived(this,s)),n.waitingAgents.clear(),this.setMemoryDirty()}dataMissing(e,t){const i=this.layerInfo[t][e];i.dataMissing=!0,i.waitingAgents.forAll(e=>e.dataMissing()),i.waitingAgents.clear(),this.setMemoryDirty()}updateRenderData(e,t,i){switch(i&&this.forEachLoadedNeighbor(i=>i.updateRenderData(e,t)),e){case 1:return this._updateTexture(t);case 0:return this._updateGeometry()}}_updateTexture(e){this.renderData&&(this.resetPendingUpdate(0===e?16:32),this.setPendingUpdate(0===e?32:16))}_updateGeometry(){this.setPendingUpdate(8);for(const e of this.layerInfo[0])e.pendingUpdates|=8}invalidateLayerData(e,t){this.layerInfo[t][e].invalidateSourceData()}computeElevationBounds(){const e=this._elevationBoundsMin,t=this._elevationBoundsMax;let i=1/0,s=-1/0;const n=this.layerInfo[0];let r=!0;for(const a of n)null!=a.elevationBounds&&(i=Math.min(i,a.elevationBounds.minElevation),s=Math.max(s,a.elevationBounds.maxElevation),a.elevationBounds.hasNoDataValues||(r=!1));r&&(i=Math.min(i,0),s=Math.max(s,0)),e===i&&t===s||(this._elevationBoundsMin=i,this._elevationBoundsMax=s,this.updateRadiusAndCenter(),this._surface.setTileTreeDirty(!1))}_updateCenter(){const e=this._elevationBoundsMin,t=this._elevationBoundsMax,i=.5*(e+t),s=this._center;l(fe,this.up,i),o(s[1].center,this.centerAtSeaLevel,fe),l(fe,this.up,e),o(s[0],this.centerAtSeaLevel,fe),l(fe,this.up,t),o(s[2],this.centerAtSeaLevel,fe)}findElevationBoundsForLayer(e,t){const i=this.layerInfo[0][e],s=this.elevationLevelDelta,n=Math.max(this.elevationLevel-s,0),r=i.elevationBounds;if(null!=r&&r.level>=t&&r.level<=n)return;const a=this._surface.layerViewByIndex(e,0);if(!Z(this,a))return;const l=ae;let o=!1;const h=i.data;if(h&&h.level<=n){const e=i.data;l.minElevation=e.samplerData.data.minValue,l.maxElevation=e.samplerData.data.maxValue,l.hasNoDataValues=e.samplerData.data.hasNoDataValues,l.level=this.level,o=!0}else{let t,i,r=0;for(let a=this._parent;a&&(!i||r<s)&&(r=this.elevationLevel-a.level,t=i||t,i=a.layerInfo[0][e].data,!(!i&&t&&a.level<=n));a=a.parent);i=i||t,i&&(i.computeMinMaxValue(this._lij[0],this._lij[1],this._lij[2],l),l.minElevation!==1/0&&(l.level=i.level,o=!0))}o&&(null==i.elevationBounds&&(i.elevationBounds=new D),i.elevationBounds.copyFrom(l))}modifyLayers(e,t,i){const s=this.layerInfo[i];for(const a of s)a.loadingAgent&&a.loadingAgent!==Q&&(se(a.loadingAgent),a.loadingAgent=null),a.waitingAgents.clear();for(let a=0;a<s.length;++a)void 0===e[a]&&s[a].release();const n=new Array(...s),r=t.length;s.length=r;for(let a=0;a<r;a++){const e=t[a];s[a]=e>-1?n[e]:K.acquire(this._surface.upsampleInfoPool)}this.setMemoryDirty()}restartAgents(e){this.renderData&&(this._createOrUpdateAgents(0,e),this.updateRenderData(e,0))}updateAgents(e){if(this.renderData){const t=this.layerInfo[e];for(const e of t)e.loadingAgent===Q&&(e.loadingAgent=null);this._createOrUpdateAgents(0,e)}}updateAgentSuspension(){for(const e of b){const t=this._isSuspended(e);for(const i of this.layerInfo[e])i.loadingAgent&&i.loadingAgent!==Q&&(i.loadingAgent.setSuspension(t),i.loadingAgent===Q&&this.updateRenderData(e,0))}}removeLayerAgent(e,t){const i=this.layerInfo[t][e];i.loadingAgent&&i.loadingAgent!==Q&&i.loadingAgent.dispose(),i.loadingAgent=null}agentDone(e,t){const i=this.layerInfo[t][e];i.loadingAgent=Q,i.data||null!=i.upsampleInfo||this._createOrUpdateAgents(e+1,t)}_hasBlendableAncestor(e){return"normal"!==e.blendMode||A(e.parent)&&this._hasBlendableAncestor(e.parent)}_hasBlendModes(e,t,i){for(let s=e;s<t;++s){const e=this._surface.layerViewByIndex(s,i);if(R(e)&&"normal"!==e?.layer?.blendMode||A(e?.layer?.parent)&&this._hasBlendableAncestor(e?.layer?.parent))return!0}return!1}_createOrUpdateAgents(e,t){const i=this.layerInfo[t];if(0===i.length)return;const s=this._isSuspended(t);let n=!1;for(let r=e;r<i.length;++r){const a=i[r],l=this._surface.layerViewByIndex(r,t);let o=!1;n&&!x(l)||(a.loadingAgent?Z(this,l)?(a.loadingAgent!==Q&&a.loadingAgent.setSuspension(s),a.loadingAgent!==Q&&(o=a.loadingAgent.update())):a.dispose():Z(this,l)&&(a.loadingAgent=ie(this,r,t,s),o=a.loadingAgent.startLoading(),o?a.loadingAgent===Q&&this.setPendingUpdate(8):(se(a.loadingAgent),a.loadingAgent=Q)),a.loadingAgent===Q&&this.updateRenderData(t,0),!l.destroyed&&!this._hasBlendModes(e,i.length,t)&&o&&l.isOpaque&&(n||=!0))}}_isWithinExtent(e){const t=this.extent;return t[0]>=e[0]&&e[2]>=t[2]&&t[1]>=e[1]&&e[3]>=t[3]}intersectsExtent(e){const t=this.extent;return t[2]>=e[0]&&e[2]>=t[0]&&t[3]>=e[1]&&e[3]>=t[1]}getElevationVerticesPerSide(e){const i=this.elevationLevel-this.level,s=Math.max(this.level-e,this.elevationLevelDelta-i),n=t(1+(this._maxTesselation>>s),2,this._maxTesselation+1),r=this.minimumVerticesPerSide;return Math.max(n,r)}_findLIJ(e,t){if(!e)return null;const{rootTiles:i}=this.surface;if(null!=i)for(const s of i)if(le(s,e)){let i=s,n=e[0]-i.level-1;for(;n>=0&&!i.leaf&&!t(i);){const t=e[1]>>n&1,s=e[2]>>n&1;i=i.children[2*t+s],n--}return t(i)?i:null}return null}findNeighborTile(e,t){const i=this._lij,s=this._getNeighborLIJ(i,e);return s?oe(i,s)?t(this)?this:null:this._findLIJ(s,t):null}findCorner(e,t){const i=1===e?1:7===e?0:5===e?2:3;let s=this;for(;s.children[0]&&(!t||!t(s));)s=s.children[i];return s}findNeighborCornerTileExact(e,t){return this.findNeighborTile(e,e=>t(e)||e.level===this.level)?.findCorner(q(e),t)||null}forAllSubtreeOnSide(e,t){const i=0===e?[0,1]:1===e?[1]:2===e?[1,3]:3===e?[3]:4===e?[2,3]:5===e?[2]:6===e?[0,2]:[0],s=e=>{const n=e.children;!t(e)&&n[0]&&i.forEach(e=>s(n[e]))};s(this)}getNeighborEdgeStartVertexIndex(e,t){if(!t)return 0;const i=this.level-t.level;if(O(!V||i>=0),0===i)return 0;const s=2**i,n=!(1&~e),r=n?0:1,a=t.lij[r+1]*s,l=this._lij[r+1],o=l-a,h=n?s-1-o:o;return V&&(O(a<=l&&l<a+s),O(0<=h&&h<s)),h}forEachLoadedNeighbor(e){const t=this.level,i=e=>e.level===t||e.loaded;N.forEach(t=>{const s=this.findNeighborTile(t,i);null!=s&&s!==this&&s.forAllSubtreeOnSide(G(t),i=>!!i.loaded&&(e(i,t),!0))}),k.forEach(t=>{const s=this.findNeighborTile(t,i)?.findCorner(q(t),e=>e.loaded);O(!s||he(this,s,t)),s?.loaded&&e(s,t)})}_getNeighborLIJ(e,t){const i=W(t)?-1:J(t)?1:0,s=H(t)?-1:$(t)?1:0,n=[e[0],e[1]+i,e[2]+s];return n[1]<0?null:this.surface.isGlobal?this._wrapLIJ(n):n[2]<0?null:n}_wrapLIJ(e){return!e||e[1]<0||e[1]>=2**e[0]?null:this.surface.wrapEastWest(e)}isEdgeNeighbor(e,t){if(null==e)return!1;if(0===this.level&&0===e.level){if(this._eastEnd&&e._westEnd&&2===t)return!0;if(this._westEnd&&e._eastEnd&&6===t)return!0}const i=Math.max(1e-6*(this.extent[2]-this.extent[0]),1);switch(t){case 0:return F(this.extent[3],e.extent[1],i);case 4:return F(this.extent[1],e.extent[3],i);case 2:return F(this.extent[2],e.extent[0],i)||F(this.extent[2],-e.extent[0],i);case 6:return F(this.extent[0],e.extent[2],i)||F(this.extent[0],-e.extent[2],i)}}get _eastEnd(){return this._lij[2]===this.surface.lijEastEnd(this.level)-1}get _westEnd(){return 0===this._lij[2]}checkGeometryWaterproofness(){z&&(O(this.loaded),this.renderData?.checkGeometryWaterproofness())}shouldHaveNeighbor(e){const t=this.extent,{rootTilesExtent:i}=this._surface,s=.25*(t[2]-t[0]);if(W(e)&&t[3]+s>=i[3])return!1;if(J(e)&&t[1]-s<=i[1])return!1;const n=this.surface.isGlobal;return!(!n&&H(e)&&t[0]-s<=i[0])&&!(!n&&$(e)&&t[2]+s>=i[2])}updateDistanceToPOI(e){const t=this._lastPOI;if(this.distanceToPOI>=0&&t[0]===e[0]&&t[1]===e[1]&&t[2]===e[2])return;u(this._lastPOI,e);const i=this._center[1].center,s=e[0]-i[0],n=e[1]-i[1],r=e[2]-i[2];this.distanceToPOI=s*s+n*n+r*r}updateOverlayParameters(e){const{renderData:t}=this;if(!t)return;const{overlays:i,longitudeCyclical:s}=e,n=t.overlay;if(0===i.length)this._clearTileOverlayData(0,n),this._clearTileOverlayData(1,n);else{const[e,t]=i,r=this.extent;_(e.extent,r,s)||m(r,e.extent,s)||m(r,t.extent,s)?(this._setOverlayData(i,s,r,0,n),this._setOverlayData(i,s,r,1,n)):(this._clearTileOverlayData(0,n),this._clearTileOverlayData(1,n))}}_setOverlayData(e,t,i,s,n){const r=e[s].extent,a=y(r),l=v(r);let o=i[0];if(t){o=t.minimalMonotonic(r[0],o);const e=t.minimalMonotonic(r[0],i[2]);o>e&&(o=e-(i[2]-i[0]))}if(0===a||0===l)return void n.setOffsetAndScale(s,0,0,1,1);const h=y(i)/a,u=v(i)/l,d=(o-r[0])/a,c=(i[1]-r[1])/l;n.setOffsetAndScale(s,d,c,h,u)}_clearTileOverlayData(e,t){t.setOffsetAndScale(e,-1,-1,-1,-1)}}function ie(e,t,i,s){const n=0===i?re.acquire():ne.acquire();return n.init(e,t,i,s),n}function se(e){e.dispose(),S(e)?re.release(e):U(e)&&ne.release(e)}const ne=new s(()=>new I),re=new s(()=>new L),ae=new D;function le(e,t){const i=e.lij,s=t[0]-i[0];return!(s<0)&&(t[1]>>s===i[1]&&t[2]>>s===i[2])}function oe(e,t){return e[0]===t[0]&&e[1]===t[1]&&e[2]===t[2]}function he(e,t,i){return null!=e&&null!=t&&t!==e&&(e.level>=t.level?ue(e,t,i):ue(t,e,q(i)))}function ue(e,t,i){O(e.level>=t.level);const s=X(i),n=Y(i),r=e.extent,a=t.extent,l=[s?r[0]:r[2],n?r[3]:r[1]],o=[s?a[2]:a[0],n?a[1]:a[3]],h=1e-5*(r[2]-r[0]),u=F(l[0],o[0],h)||e.surface.isGlobal&&F(l[0],-o[0],h),d=F(l[1],o[1],h);if(u&&d)return!0;if(e.level===t.level)return O(!1),!1;if(!u&&!d)return O(!1),!1;const c=u?de(a[1],a[3],r[1],r[3],h):de(a[0],a[2],r[0],r[2],h);return O(c),c}function de(e,t,i,s,n){return e-n<=i&&i<=s&&s<=t+n}const ce=d(),ge=d(),pe=d(),fe=d();export{te as Tile,he as isCornerNeighbor,oe as lijEquals};
2
+ import{toConst as e}from"../../../core/compilerUtils.js";import"../../../core/has.js";import{clamp as t}from"../../../core/mathUtils.js";import{abortMaybe as i}from"../../../core/maybe.js";import s from"../../../core/ObjectPool.js";import{subtract as n,squaredLength as r,dot as a,scale as l,add as o,length as h,copy as u}from"../../../core/libs/gl-matrix-2/math/vec3.js";import{create as d,unitZ as c}from"../../../core/libs/gl-matrix-2/factories/vec3f64.js";import{getReferenceEllipsoid as g}from"../../../geometry/ellipsoidUtils.js";import{create as p,equals as f,rectangleContainsRectangleCyclicalAware as _,rectanglesIntersectCyclicalAware as m,width as y,height as v}from"../../../geometry/support/aaBoundingRect.js";import{Sphere as M}from"../../../geometry/support/sphere.js";import{isGroupLayer as A}from"../../../layers/support/layerUtils.js";import{isLayerViewWithFlowRenderer as x}from"../support/flowUtils.js";import{ElevationBounds as D}from"./ElevationBounds.js";import{ElevationTileAgent as b,isElevationTileAgent as L}from"./ElevationTileAgent.js";import{LayerClasses as S}from"./LayerClass.js";import{MapDataCacheItem as j}from"./MapDataCacheItem.js";import{MapTileAgent as I,isMapTileAgent as U}from"./MapTileAgent.js";import{maxPatchTesselation as T}from"./TerrainConst.js";import{isVectorTile as C,isTileTexture as B,isRasterTile as w,isCreateBitmapResult as E}from"./TerrainData.js";import{weakAssert as P,isBlendableLayerView as R,oppositeCorner as q,internalAssert as V,enableTerrainInternalChecks as O,neighborEdgeIndices as N,oppositeEdge as G,neighborCornerIndices as k,almostEquals as F,enableWaterproofTests as z,isNorth as W,isSouth as J,isWest as $,isEast as H,isWestCorner as X,isNorthCorner as Y}from"./terrainUtils.js";import{tileAgentDone as Q}from"./TileAgent.js";import{TilePerLayerInfo as K}from"./TilePerLayerInfo.js";import{fallsWithinLayerView as Z}from"./tileUtils.js";const ee=.1;class te{constructor(){this._lij=[0,0,0],this._children=[null,null,null,null],this._pendingUpdates=0,this._dirty=!0,this._previouslyRendered=!1,this._lastElevationSourceUpdateRequestSignature=null,this.extent=p(),this._elevationBoundsMin=NaN,this._elevationBoundsMax=0,this.layerInfo=[[],[]],this.extentInRadians=p(),this.centerAtSeaLevel=d(),this._center=[d(),new M,d()],this.up=c(),this._withinClippingArea=!0,this._intersectsClippingArea=!0,this._maxTesselation=0,this._usedMemory=0,this._rasterTileMemory=0,this._vectorTileMemory=0,this._mapDataRefCount=0,this.screenDepth=0,this.renderOrder=0,this._edgeLen=0,this._edgeLen2=0,this._curvatureHeight=0,this.onCompressionFinished=()=>{this.setPendingUpdate(16),this.setMemoryDirty()},this.extentMidX=0,this.extentMidY=0,this.distanceToPOI=-1,this._lastPOI=d(),this.maxLevelDeltaNeighborCount=0,this.unmergableChildCount=0}get lij(){return this._lij}get spatialReference(){return this._surface.spatialReference??this._surface.tilingScheme.spatialReference}get isDisposed(){return null==this._surface}get elevationLevelDelta(){return this._surface.getElevationLevelDelta(this.level)}_setPendingUpdateForDescendants(){const e=this._children;if(e[0])for(const t of e)t.renderData&&(t.setPendingUpdate(16),t.setMemoryDirty()),t._setPendingUpdateForDescendants()}static prune(){ne.prune(0),re.prune(0),K.prune()}get _cached(){return!this.leaf&&this._mapDataRefCount<=0}get withinClippingArea(){return this._withinClippingArea}get intersectsClippingArea(){return this._intersectsClippingArea}get clippingArea(){return this._clippingArea}get parent(){return this._parent}get children(){return this._children}get surface(){return this._surface}get elevationBoundsMin(){return this._elevationBoundsMin}get elevationBoundsMax(){return this._elevationBoundsMax}get level(){return this._lij[0]}get key(){return`${this._lij[0]}/${this._lij[1]}/${this._lij[2]}`}get edgeLen(){return this._edgeLen}get radius(){return this._center[1].radius}get visible(){return this._dirty&&this.computeVisibility(),this._visible}get frustumVisibility(){return this._dirty&&this.computeVisibility(),this._frustumVisibility}checkVisibility(e){if(this._dirty)return null;const t=this._calculateVisibility(e);if(this._frustumVisibility!==t||this._visible!==(2!==t&&this._intersectsClippingArea))throw new Error(`Assertion failed: waterproof.visibility-cache-mismatch: Tile[${this.lij}]`);return t}computeVisibility(){this._dirty=!1;const e=this.parent?.frustumVisibility??1;this._frustumVisibility=this._calculateVisibility(e);const t=2!==this._frustumVisibility&&this._intersectsClippingArea;t!==this._visible&&(this._visible=t,this._surface.emit("tiles-visibility-changed"),this._surface.renderer.setDirty(),this.updateAgentSuspension())}_calculateVisibility(e){const t=this.parent;return 0===e?0:null!=t&&2===e&&this._elevationBoundsMin>=t._elevationBoundsMin&&this._elevationBoundsMax<=t._elevationBoundsMax?2:this._calculateFrustumVisibility(this.surface.frustum)}get _loadable(){return this.visible||this._surface.view.state.fixedContentCamera}get rendered(){const e=!!this.renderData;return e!==this._previouslyRendered&&(this._surface.emit("tiles-visibility-changed"),this._previouslyRendered=e,this._surface.renderer.setDirty()),e}init(e,t,i,s,n){this._lij[0]=e,this._lij[1]=t,this._lij[2]=i,this.ellipsoid=g(n.tilingScheme.spatialReference),n.tilingScheme.getExtent(e,t,i,this.extent),n.tilingScheme.convertExtentToRadians(this.extent,this.extentInRadians),this.extentMidX=.5*(this.extent[0]+this.extent[2]),this.extentMidY=.5*(this.extent[1]+this.extent[3]),this._withinClippingArea=!0,this._intersectsClippingArea=!0,this._clippingArea=null,this._mapDataRefCount=0,n.upsampleMapCache.pop(this.key),this._edgeLen=0,this._edgeLen2=0,this._center[1].radius=0,this.elevationLevel=e,this._lastElevationSourceUpdateRequestSignature=null,s&&!Number.isNaN(s.elevationBoundsMin)?(this._elevationBoundsMin=s.elevationBoundsMin,this._elevationBoundsMax=s.elevationBoundsMax):(this._elevationBoundsMin=0,this._elevationBoundsMax=0),this._pendingUpdates=0,this.renderData=null,this.screenDepth=0,this._visible=!1,this._previouslyRendered=!1,this._parent=s,this.clearChildren(),this._surface=n,this.updateVisibility(),this.maxLevelDeltaNeighborCount=0,this.unmergableChildCount=0;for(const r of S){const e=n.numLayers(r),t=this.layerInfo[r];for(const i of t)i.release();t.length=e;for(let i=0;i<e;i++)t[i]=K.acquire(this._surface.upsampleInfoPool),0===r&&this.findElevationBoundsForLayer(i,-1)}this.computeElevationBounds(),this._maxTesselation=Math.min(n.tilingScheme.pixelSize,T)}dispose(){P(!this.renderData,"tile.renderData was not unloaded"),this._surface?.upsampleMapCache.pop(this.key),this.layerInfo.forEach(e=>{e.forEach(e=>e.release()),e.length=0}),this._surface=this._parent=null,this.clearChildren(),this.setMemoryDirty()}refMapData(){++this._mapDataRefCount,this._cached||this._surface.upsampleMapCache.pop(this.key)}unrefMapData(){--this._mapDataRefCount,this._cached&&this.cachedMemory>0&&this._surface.upsampleMapCache.put(this.key,new j(e(this)))}setMemoryDirty(){this._usedMemory=0}get usedMemory(){return this._ensureUsedMemory()+(this._cached?0:this.mapDataMemory)}get cachedMemory(){return this._ensureUsedMemory(),null==this._surface?this.usedMemory:this._cached?this.mapDataMemory:0}get mapDataMemory(){return this._rasterTileMemory+this._vectorTileMemory}get _cpuImageMemorySize(){const e=4,t=this._surface.tilingScheme.pixelSize;return t*t*e}_ensureUsedMemory(){if(this._usedMemory>0)return this._vectorTileMemory=this.layerInfo[1].reduce((e,{data:t})=>e+(C(t)?t.usedMemoryPerReference:0),0),this._usedMemory;this._usedMemory=this._baseUsedMemory,this._rasterTileMemory=0,this._vectorTileMemory=0;for(const{data:e}of this.layerInfo[1])C(e)?this._vectorTileMemory+=e.usedMemoryPerReference:this._rasterTileMemory+=this.getTerrainDataMemory(e);for(const e of this.layerInfo[0])this._usedMemory+=e.data?this._cpuImageMemorySize:0;return this.renderData&&(this._usedMemory+=this.renderData.estimatedGeometryMemoryUsage,this._rasterTileMemory+=this.renderData.texture?.usedMemory??0),this._cached&&this._surface.upsampleMapCache.updateSize(this.key),this._usedMemory}getUsedMemoryForLayer(e,t){const i=this.layerInfo[e][t];return i?.data?1===e?this._cached?0:this.getTerrainDataMemory(i.data):0===e?this._cpuImageMemorySize:0:0}getTerrainDataMemory(e){return B(e)?e.texture.usedMemory:w(e)?e.memoryUsage:C(e)?e.usedMemoryPerReference:E(e)?this._cpuImageMemorySize:0}updateScreenDepth(e){const[t,i,s]=this._center[1].center,n=e,r=n[2]*t+n[6]*i+n[10]*s+n[14];this.screenDepth=r<0?0:r/(n[3]*t+n[7]*i+n[11]*s+n[15])}shouldSplit(e,t,i){if(!this.visible)return 0;if(e.frustum&&(!this._intersectsClippingArea||2===this._calculateFrustumVisibility(e.frustum)))return 0;const s=this.level;n(ce,this._center[1].center,t);let u=r(ce),d=ce,c=this._center[1].center;n(ge,this._center[0],t);const g=r(ge);g<u&&(u=g,d=ge,c=this._center[0]),n(pe,this._center[2],t);const p=r(pe);if(p<u&&(u=p,d=pe,c=this._center[2]),this._edgeLen2>u&&s<e.maxLod)return 1;const f=Math.sqrt(u),_=e.fovX*f*2,m=this._edgeLen/_,y=()=>{if(s<e.maxLod)return this.elevationLevel=s,0;const t=s+Math.ceil(-Math.log2(e.relativeWidthLimit/m));return t!==this.elevationLevel?(this.elevationLevel=t,2):0},v=null!=i?i-s:1/0;if(v<=.5)return y();const M=a(this.up,ce),A=this._elevationBoundsMax-this._elevationBoundsMin,x=A/this.edgeLen;if(e.aboveGround&&M>0&&x<.001){if(M/f-Math.sin(this._curvatureHeight/(this.edgeLen*Math.SQRT1_2)*Math.PI)-x>0)return y()}const D=null!=i?3-Math.min(v,2):1;if(m*D<e.relativeWidthLimit||s>=e.maxLod)return y();if(s<7)return 1;l(fe,this.up,M),n(fe,fe,d);const b=r(fe);if(b<=this.radius*this.radius)return 1;l(fe,fe,this.radius/Math.sqrt(b)),o(fe,fe,c),n(fe,t,fe);const L=Math.min(1,(Math.abs(a(fe,this.up))+.5*A+this._curvatureHeight)/h(fe)),S=ee/e.angledSplitBias,j=e.fovY*f*2;return L*(this._edgeLen/j*D)<S*e.relativeHeightLimit?y():1}needsElevationSourceUpdate(){const e=this.renderData?.geometryState.samplerDataSourceLevels;if(null==e)return!1;const t=Math.max(this.elevationLevel-this.elevationLevelDelta,0);return e.some(e=>e>t)&&this._lastElevationSourceUpdateRequestSignature!==this._elevationSourceUpdateRequestSignature(e)}markElevationSourceUpdateRequested(){const e=this.renderData?.geometryState.samplerDataSourceLevels;this._lastElevationSourceUpdateRequestSignature=null!=e?this._elevationSourceUpdateRequestSignature(e):null}_elevationSourceUpdateRequestSignature(e){return`${Math.max(this.elevationLevel-this.elevationLevelDelta,0)}:${e.join(",")}`}createChildren(){const e=this._children,t=this.lij[0]+1,i=2*this.lij[1],s=2*this.lij[2];return e[0]=this.surface.createTile(t,i,s,this),e[1]=this.surface.createTile(t,i,s+1,this),e[2]=this.surface.createTile(t,i+1,s,this),e[3]=this.surface.createTile(t,i+1,s+1,this),e}clearChildren(){this._children[0]=this._children[1]=this._children[2]=this._children[3]=null}get loaded(){return this.renderData?.hasGeometry??!1}get hasGeometryState(){return null!=this.renderData?.geometryState}load(){this.refMapData();for(const e of S)this._createOrUpdateAgents(0,e);this.surface.renderer.loadTile(this)}unload(){this.renderData&&this.unrefMapData(),this.surface.renderer.unloadTile(this);for(const e of S){const t=this.layerInfo[e];for(const e of t)e.loadingAgent&&e.loadingAgent!==Q&&(se(e.loadingAgent),e.loadingAgent=null),e.pendingUpdates=0}this.resetPendingUpdate(8),this.resetPendingUpdate(16),this.resetPendingUpdate(32)}unloadMapData(){const e=this.layerInfo[1];for(const t of e)t.loadingAgent&&t.loadingAgent!==Q&&(se(t.loadingAgent),t.loadingAgent=null),t.pendingUpdates=0,t.invalidateSourceData();this.renderData?.releaseTexture(),this.setMemoryDirty()}updateClippingStatus(e){if(f(e,this._clippingArea))return!1;const t=this._intersectsClippingArea,i=this._withinClippingArea;null!=e?(this._intersectsClippingArea=this.intersectsExtent(e),this._withinClippingArea=this._isWithinExtent(e)):(this._intersectsClippingArea=!0,this._withinClippingArea=!0),this._clippingArea=e,this.updateVisibility();const s=i&&this._withinClippingArea,n=!(i||t||this._withinClippingArea||this._intersectsClippingArea);return!this.renderData||s||n||this.setPendingUpdate(8),!0}updateVisibility(){this._dirty=!0,this._surface.setTileTreeDirty(!1)}getLayerInfo(e,t){return this.layerInfo[t][e]}hasLayerData(e,t){const i=this.layerInfo[t][e];return!(!i?.data||i.dataInvalidated)}get updating(){if(this.hasPendingUpdates)return!0;for(const e of S){const t=this.layerInfo[e];for(const e of t)if(e.loadingAgent&&e.loadingAgent!==Q&&e.loadingAgent.updating)return!0}return!1}_isSuspended(e){return!!this.hasPendingUpdate(1)||0!==e&&!this._loadable}get hasPendingUpdates(){return 0!==this._pendingUpdates}hasPendingUpdate(e){return(this._pendingUpdates&e)===e}setPendingUpdate(e){const t=this._pendingUpdates;return this._pendingUpdates|=e,1===e||4===e?this._surface.setTileTreeDirty(!0):this._surface.requestUpdate(),t!==this._pendingUpdates}resetPendingUpdate(e){return!!this.hasPendingUpdate(e)&&(this._pendingUpdates&=~e,!0)}requestLayerData(e,t,s){const n=this.layerInfo[t][e];if(n.waitingAgents.has(s))return console.warn("agent already requested this piece of map data (tile %s, agent tile %s, layer: %d/%d)",this._lij.toString(),s.tile.lij.toString(),t,e),!0;if(n.waitingAgents.push(s),n.data&&!n.dataInvalidated){console.warn("agent requested existing data (tile %s, agent tile %s, layer: %d/%d)",this._lij.toString(),s.tile.lij.toString(),t,e);const i=C(n.data);return s.dataArrived(this,i),!0}if(n.requestPromise)return!0;i(n.requestAbort),n.requestAbort=new AbortController;const r=this._surface.requestTileData(this,e,t,{signal:n.requestAbort.signal});if(!r)return n.requestAbort=null,!1;const a=()=>{n.requestPromise===r&&(n.requestPromise=null,n.requestAbort=null)};return n.requestPromise=r,r.then(a,a),!0}get leaf(){return null==this._children[0]}hasLij(e){return this._lij[0]===e[0]&&this._lij[1]===e[1]&&this._lij[2]===e[2]}findByLij(e){if(this.hasLij(e))return this;const t=this._children;if(!t[0])return null;return t[0].findByLij(e)||t[1].findByLij(e)||t[2].findByLij(e)||t[3].findByLij(e)}distanceToSquared(e){return r(n(fe,this._center[1].center,e))}containsPoint(e){const t=this.extent;return e[0]>=t[0]&&e[1]>=t[1]&&e[0]<=t[2]&&e[1]<=t[3]}containsPointXY(e,t){const i=this.extent;return e>=i[0]&&t>=i[1]&&e<=i[2]&&t<=i[3]}unrequestLayerData(e,t,i){const s=this.layerInfo[t][e],n=s.waitingAgents,r=null!=n.removeUnordered(i);P(r,"agent has not requested this piece of map data"),n.length<1&&(s.abortRequest(),this.setMemoryDirty())}dataArrived(e,t,i){const s=C(i),n=this.layerInfo[t][e];n.data=i,n.dataInvalidated=!1,n.waitingAgents.forAll(e=>e.dataArrived(this,s)),n.waitingAgents.clear(),this.setMemoryDirty()}dataMissing(e,t){const i=this.layerInfo[t][e];i.dataMissing=!0,i.waitingAgents.forAll(e=>e.dataMissing()),i.waitingAgents.clear(),this.setMemoryDirty()}updateRenderData(e,t,i){switch(i&&this.forEachLoadedNeighbor(i=>i.updateRenderData(e,t)),e){case 1:return this._updateTexture(t);case 0:return this._updateGeometry()}}_updateTexture(e){this.renderData&&(this.resetPendingUpdate(0===e?16:32),this.setPendingUpdate(0===e?32:16))}_updateGeometry(){this.setPendingUpdate(8);for(const e of this.layerInfo[0])e.pendingUpdates|=8}invalidateLayerData(e,t){this.layerInfo[t][e].invalidateSourceData()}computeElevationBounds(){const e=this._elevationBoundsMin,t=this._elevationBoundsMax;let i=1/0,s=-1/0;const n=this.layerInfo[0];let r=!0;for(const a of n)null!=a.elevationBounds&&(i=Math.min(i,a.elevationBounds.minElevation),s=Math.max(s,a.elevationBounds.maxElevation),a.elevationBounds.hasNoDataValues||(r=!1));r&&(i=Math.min(i,0),s=Math.max(s,0)),e===i&&t===s||(this._elevationBoundsMin=i,this._elevationBoundsMax=s,this.updateRadiusAndCenter(),this._surface.setTileTreeDirty(!1))}_updateCenter(){const e=this._elevationBoundsMin,t=this._elevationBoundsMax,i=.5*(e+t),s=this._center;l(fe,this.up,i),o(s[1].center,this.centerAtSeaLevel,fe),l(fe,this.up,e),o(s[0],this.centerAtSeaLevel,fe),l(fe,this.up,t),o(s[2],this.centerAtSeaLevel,fe)}findElevationBoundsForLayer(e,t){const i=this.layerInfo[0][e],s=this.elevationLevelDelta,n=Math.max(this.elevationLevel-s,0),r=i.elevationBounds;if(null!=r&&r.level>t&&r.level<=n)return;const a=this._surface.layerViewByIndex(e,0);if(!Z(this,a))return;const l=ae;let o=!1;const h=i.data;if(h&&h.level<=n){const e=i.data;l.minElevation=e.samplerData.data.minValue,l.maxElevation=e.samplerData.data.maxValue,l.hasNoDataValues=e.samplerData.data.hasNoDataValues,l.level=this.level,o=!0}else{let t,i,r=0;for(let a=this._parent;a&&(!i||r<s)&&(r=this.elevationLevel-a.level,t=i||t,i=a.layerInfo[0][e].data,!(!i&&t&&a.level<=n));a=a.parent);i=i||t,i&&(i.computeMinMaxValue(this._lij[0],this._lij[1],this._lij[2],l),l.minElevation!==1/0&&(l.level=i.level,o=!0))}o&&(null==i.elevationBounds&&(i.elevationBounds=new D),i.elevationBounds.copyFrom(l))}modifyLayers(e,t,i){const s=this.layerInfo[i];for(const a of s)a.loadingAgent&&a.loadingAgent!==Q&&(se(a.loadingAgent),a.loadingAgent=null),a.waitingAgents.clear();for(let a=0;a<s.length;++a)void 0===e[a]&&s[a].release();const n=new Array(...s),r=t.length;s.length=r;for(let a=0;a<r;a++){const e=t[a];s[a]=e>-1?n[e]:K.acquire(this._surface.upsampleInfoPool)}this.setMemoryDirty()}restartAgents(e){this.renderData&&(this._createOrUpdateAgents(0,e),this.updateRenderData(e,0))}updateAgents(e){if(this.renderData){const t=this.layerInfo[e];for(const e of t)e.loadingAgent===Q&&(e.loadingAgent=null);this._createOrUpdateAgents(0,e)}}updateAgentSuspension(){for(const e of S){const t=this._isSuspended(e);for(const i of this.layerInfo[e])i.loadingAgent&&i.loadingAgent!==Q&&(i.loadingAgent.setSuspension(t),i.loadingAgent===Q&&this.updateRenderData(e,0))}}removeLayerAgent(e,t){const i=this.layerInfo[t][e];i.loadingAgent&&i.loadingAgent!==Q&&i.loadingAgent.dispose(),i.loadingAgent=null}agentDone(e,t){const i=this.layerInfo[t][e];i.loadingAgent=Q,i.data||null!=i.upsampleInfo||this._createOrUpdateAgents(e+1,t)}_hasBlendableAncestor(e){return"normal"!==e.blendMode||A(e.parent)&&this._hasBlendableAncestor(e.parent)}_hasBlendModes(e,t,i){for(let s=e;s<t;++s){const e=this._surface.layerViewByIndex(s,i);if(R(e)&&"normal"!==e?.layer?.blendMode||A(e?.layer?.parent)&&this._hasBlendableAncestor(e?.layer?.parent))return!0}return!1}_createOrUpdateAgents(e,t){const i=this.layerInfo[t];if(0===i.length)return;const s=this._isSuspended(t);let n=!1;for(let r=e;r<i.length;++r){const a=i[r],l=this._surface.layerViewByIndex(r,t);let o=!1;n&&!x(l)||(a.loadingAgent?Z(this,l)?(a.loadingAgent!==Q&&a.loadingAgent.setSuspension(s),a.loadingAgent!==Q&&(o=a.loadingAgent.update())):a.dispose():Z(this,l)&&(a.loadingAgent=ie(this,r,t,s),o=a.loadingAgent.startLoading(),o?a.loadingAgent===Q&&this.setPendingUpdate(8):(se(a.loadingAgent),a.loadingAgent=Q)),a.loadingAgent===Q&&this.updateRenderData(t,0),!l.destroyed&&!this._hasBlendModes(e,i.length,t)&&o&&l.isOpaque&&(n||=!0))}}_isWithinExtent(e){const t=this.extent;return t[0]>=e[0]&&e[2]>=t[2]&&t[1]>=e[1]&&e[3]>=t[3]}intersectsExtent(e){const t=this.extent;return t[2]>=e[0]&&e[2]>=t[0]&&t[3]>=e[1]&&e[3]>=t[1]}getElevationVerticesPerSide(e){const i=this.elevationLevel-this.level,s=Math.max(this.level-e,this.elevationLevelDelta-i),n=t(1+(this._maxTesselation>>s),2,this._maxTesselation+1),r=this.minimumVerticesPerSide;return Math.max(n,r)}_findLIJ(e,t){if(!e)return null;const{rootTiles:i}=this.surface;if(null!=i)for(const s of i)if(le(s,e)){let i=s,n=e[0]-i.level-1;for(;n>=0&&!i.leaf&&!t(i);){const t=e[1]>>n&1,s=e[2]>>n&1;i=i.children[2*t+s],n--}return t(i)?i:null}return null}findNeighborTile(e,t){const i=this._lij,s=this._getNeighborLIJ(i,e);return s?oe(i,s)?t(this)?this:null:this._findLIJ(s,t):null}findCorner(e,t){const i=1===e?1:7===e?0:5===e?2:3;let s=this;for(;s.children[0]&&(!t||!t(s));)s=s.children[i];return s}findNeighborCornerTileExact(e,t){return this.findNeighborTile(e,e=>t(e)||e.level===this.level)?.findCorner(q(e),t)||null}forAllSubtreeOnSide(e,t){const i=0===e?[0,1]:1===e?[1]:2===e?[1,3]:3===e?[3]:4===e?[2,3]:5===e?[2]:6===e?[0,2]:[0],s=e=>{const n=e.children;!t(e)&&n[0]&&i.forEach(e=>s(n[e]))};s(this)}getNeighborEdgeStartVertexIndex(e,t){if(!t)return 0;const i=this.level-t.level;if(V(!O||i>=0),0===i)return 0;const s=2**i,n=!(1&~e),r=n?0:1,a=t.lij[r+1]*s,l=this._lij[r+1],o=l-a,h=n?s-1-o:o;return O&&(V(a<=l&&l<a+s),V(0<=h&&h<s)),h}forEachLoadedNeighbor(e){const t=this.level,i=e=>e.level===t||e.loaded;N.forEach(t=>{const s=this.findNeighborTile(t,i);null!=s&&s!==this&&s.forAllSubtreeOnSide(G(t),i=>!!i.loaded&&(e(i,t),!0))}),k.forEach(t=>{const s=this.findNeighborTile(t,i)?.findCorner(q(t),e=>e.loaded);V(!s||he(this,s,t)),s?.loaded&&e(s,t)})}_getNeighborLIJ(e,t){const i=W(t)?-1:J(t)?1:0,s=$(t)?-1:H(t)?1:0,n=[e[0],e[1]+i,e[2]+s];return n[1]<0?null:this.surface.isGlobal?this._wrapLIJ(n):n[2]<0?null:n}_wrapLIJ(e){return!e||e[1]<0||e[1]>=2**e[0]?null:this.surface.wrapEastWest(e)}isEdgeNeighbor(e,t){if(null==e)return!1;if(0===this.level&&0===e.level){if(this._eastEnd&&e._westEnd&&2===t)return!0;if(this._westEnd&&e._eastEnd&&6===t)return!0}const i=Math.max(1e-6*(this.extent[2]-this.extent[0]),1);switch(t){case 0:return F(this.extent[3],e.extent[1],i);case 4:return F(this.extent[1],e.extent[3],i);case 2:return F(this.extent[2],e.extent[0],i)||F(this.extent[2],-e.extent[0],i);case 6:return F(this.extent[0],e.extent[2],i)||F(this.extent[0],-e.extent[2],i)}}get _eastEnd(){return this._lij[2]===this.surface.lijEastEnd(this.level)-1}get _westEnd(){return 0===this._lij[2]}checkGeometryWaterproofness(){z&&(V(this.loaded),this.renderData?.checkGeometryWaterproofness())}shouldHaveNeighbor(e){const t=this.extent,{rootTilesExtent:i}=this._surface,s=.25*(t[2]-t[0]);if(W(e)&&t[3]+s>=i[3])return!1;if(J(e)&&t[1]-s<=i[1])return!1;const n=this.surface.isGlobal;return!(!n&&$(e)&&t[0]-s<=i[0])&&!(!n&&H(e)&&t[2]+s>=i[2])}updateDistanceToPOI(e){const t=this._lastPOI;if(this.distanceToPOI>=0&&t[0]===e[0]&&t[1]===e[1]&&t[2]===e[2])return;u(this._lastPOI,e);const i=this._center[1].center,s=e[0]-i[0],n=e[1]-i[1],r=e[2]-i[2];this.distanceToPOI=s*s+n*n+r*r}updateOverlayParameters(e){const{renderData:t}=this;if(!t)return;const{overlays:i,longitudeCyclical:s}=e,n=t.overlay;if(0===i.length)this._clearTileOverlayData(0,n),this._clearTileOverlayData(1,n);else{const[e,t]=i,r=this.extent;_(e.extent,r,s)||m(r,e.extent,s)||m(r,t.extent,s)?(this._setOverlayData(i,s,r,0,n),this._setOverlayData(i,s,r,1,n)):(this._clearTileOverlayData(0,n),this._clearTileOverlayData(1,n))}}_setOverlayData(e,t,i,s,n){const r=e[s].extent,a=y(r),l=v(r);let o=i[0];if(t){o=t.minimalMonotonic(r[0],o);const e=t.minimalMonotonic(r[0],i[2]);o>e&&(o=e-(i[2]-i[0]))}if(0===a||0===l)return void n.setOffsetAndScale(s,0,0,1,1);const h=y(i)/a,u=v(i)/l,d=(o-r[0])/a,c=(i[1]-r[1])/l;n.setOffsetAndScale(s,d,c,h,u)}_clearTileOverlayData(e,t){t.setOffsetAndScale(e,-1,-1,-1,-1)}}function ie(e,t,i,s){const n=0===i?re.acquire():ne.acquire();return n.init(e,t,i,s),n}function se(e){e.dispose(),L(e)?re.release(e):U(e)&&ne.release(e)}const ne=new s(()=>new I),re=new s(()=>new b),ae=new D;function le(e,t){const i=e.lij,s=t[0]-i[0];return!(s<0)&&(t[1]>>s===i[1]&&t[2]>>s===i[2])}function oe(e,t){return e[0]===t[0]&&e[1]===t[1]&&e[2]===t[2]}function he(e,t,i){return null!=e&&null!=t&&t!==e&&(e.level>=t.level?ue(e,t,i):ue(t,e,q(i)))}function ue(e,t,i){V(e.level>=t.level);const s=X(i),n=Y(i),r=e.extent,a=t.extent,l=[s?r[0]:r[2],n?r[3]:r[1]],o=[s?a[2]:a[0],n?a[1]:a[3]],h=1e-5*(r[2]-r[0]),u=F(l[0],o[0],h)||e.surface.isGlobal&&F(l[0],-o[0],h),d=F(l[1],o[1],h);if(u&&d)return!0;if(e.level===t.level)return V(!1),!1;if(!u&&!d)return V(!1),!1;const c=u?de(a[1],a[3],r[1],r[3],h):de(a[0],a[2],r[0],r[2],h);return V(c),c}function de(e,t,i,s,n){return e-n<=i&&i<=s&&s<=t+n}const ce=d(),ge=d(),pe=d(),fe=d();export{te as Tile,he as isCornerNeighbor,oe as lijEquals};
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
2
- import{__decorate as e}from"tslib";import t from"../../../core/Accessor.js";import{removeUnordered as r}from"../../../core/arrayUtils.js";import{toConst as s}from"../../../core/compilerUtils.js";import"../../../core/has.js";import{destroyMaybe as i}from"../../../core/maybe.js";import{isPromiseLike as n}from"../../../core/promiseUtils.js";import{signal as o}from"../../../core/signal.js";import{property as d,subclass as a}from"../../../core/accessorSupport/decorators.js";import{isIntersectionHandler as h}from"../state/helpers/SceneIntersectionHelper.js";import{debugFlags as l}from"../support/debugFlags.js";import{TextureCollection as c}from"../support/TextureCollection.js";import{ChangeSet as y}from"./lib/ChangeSet.js";import{Model as m}from"./parts/Model.js";import{RenderView as u}from"./parts/RenderView.js";import{TaskPriority as p,noBudget as _}from"../../support/Scheduler.js";import{Yield as g}from"../../support/Yield.js";let S=class extends t{constructor(e){super(e),this._model=new m,this._canCompact=o(!1),this._layers=new Array,this._asyncChangeSet=new y,this._syncChangeSet=new y,this._layerSyncSet=new Set,this._textures=new c(this,e.view.resourceController.scheduler),this._frameTask=e.view.resourceController.scheduler.registerTask(p.STAGE,this),this.addHandles(this._frameTask)}initialize(){try{this._renderView=new u({view:this.view},this)}catch(e){return void console.error("Failed to initialize render view",e)}}destroy(){this.removeAllHandles(),this._textures.destroy(),this._set("textures",null),this._renderView=i(this._renderView),this._set("renderView",null),this._layers.length=0,this._model=null,this._set("renderer",null),this.options.canvas=null,this._set("options",null)}get viewingMode(){return this.view.state.viewingMode}get updating(){if(this.destroyed||this.destroying)return!1;const e=this.readyToRun||this.renderView.updating||this._frameTask.updating||this.textures.updating;return e&&l.UPDATING&&console.log(" Stage:",this.readyToRun,this.renderView.updating,this._frameTask.updating,this.textures.updating),e}get renderView(){return this._renderView}get renderer(){return this.renderView?.renderer}get textures(){return this._textures}addTexture(e){this._model.addTexture(e),this.renderView.requestRender()}removeTexture(e){null!=e&&!this.destroyed&&this._model.hasTexture(e)&&(this._model.removeTexture(e),this.renderView.requestRender())}addTextures(e){null!=e&&(this._model.addTextures(e),this.renderView.requestRender())}removeTextures(e){null!=e&&(this._model?.removeTextures(e),this.renderView.requestRender())}forEachTexture(e){this._model.forEachTexture(e)}getTexture(e){return this._model.getTexture(e)}addLayer(e){this._layers.includes(e)||(this._model.addLayer(e),this._layers.push(e),this._model.dirtySet.layerAdded(e),this.renderView.requestRender())}removeLayer(e){null!=e&&!this.destroyed&&this._model.hasLayer(s(e))&&(this._model.dirtySet.layerRemoved(e),this.commitLayer(e),r(this._layers,e),this._model.dirtySet.assertLayerClean(e.id),this._model.removeLayer(e),this.renderView.requestRender())}getLayer(e){return this._model.getLayer(e)}handleEvent(e,t){this.destroyed||(this._model.dirtySet[e](t),this.renderView.requestRender())}get readyToRun(){return this._model.dirtySet.dirty||!this._asyncChangeSet.empty||this._canCompact.value}runTask(e){if(this._frameTask.processQueue(e),this._commit(e),this.renderer.compact(e),this._canCompact.value=this.renderer.canCompact,!e.hasProgressed)return g}compact(e){return this._canCompact.value=!1,this.renderer.compact(e)}_commit(e){const t=this._model.dirtySet;this._asyncChangeSet.empty||e.done||(this.renderer.commit(this._asyncChangeSet,e),this.renderView.requestRender(),e.madeProgress()),this._layers.forEach(r=>{if(e.done)return;const s=this._layerSyncSet.has(r.id)||1===r.updatePolicy,i=s?this._syncChangeSet:this._asyncChangeSet;t.commitLayer(r.id,i),this._layerSyncSet.delete(r.id),i.empty||(this.renderer.commit(i,s?_:e),this.renderView.requestRender(),e.madeProgress())}),this._syncChangeSet.empty||(this.renderer.commit(this._syncChangeSet,_),this.renderView.requestRender(),e.madeProgress()),this._layers.forEach(r=>{e.done||this._layerSyncSet.has(r.id)||0!==r.updatePolicy||(t.commitLayer(r.id,this._asyncChangeSet),this._asyncChangeSet.empty||(this.renderer.commit(this._asyncChangeSet,e),this.renderView.requestRender(),e.madeProgress()))}),this._layerSyncSet.clear(),this.notifyChange("readyToRun")}commitSyncLayers(){const e=this._model.dirtySet;this._layers.forEach(t=>{this._layerSyncSet.has(t.id)||1===t.updatePolicy?(e.commitLayer(t.id,this._syncChangeSet),this._layerSyncSet.delete(t.id)):e.commitSyncUpdates(t.id,this._syncChangeSet)});for(const t of this._layerSyncSet)e.commitLayer(t,this._syncChangeSet);this._layerSyncSet.clear(),this._syncChangeSet.empty||(this.renderer.commit(this._syncChangeSet,_),this.renderView.requestRender())}commitLayer(e){this._model.dirtySet.commitLayer(e.id,this._syncChangeSet),this._layerSyncSet.delete(e.id),this._syncChangeSet.empty||(this.renderer.commit(this._syncChangeSet,_),this.renderView.requestRender())}schedule(e,t){return this._frameTask.schedule(e,t)}reschedule(e,t){return this._frameTask.reschedule(e,t)}syncLayer(e){this._layerSyncSet.add(e),this.renderView.requestRender()}get layers(){return this._layers}addRenderPlugin(e,t){const r=this.renderer.plugins.add(e,t),s=()=>{h(e)&&this.view.sceneIntersectionHelper.addIntersectionHandler(e)};if(n(r))return r.then(s);s()}removeRenderPlugin(e){this.destroyed||(h(e)&&this.view.sceneIntersectionHelper.removeIntersectionHandler(e),this.renderer.plugins.remove(e))}get test(){}};e([d({constructOnly:!0})],S.prototype,"view",void 0),e([d({constructOnly:!0})],S.prototype,"options",void 0),e([d({constructOnly:!0})],S.prototype,"container",void 0),e([d({readOnly:!0})],S.prototype,"viewingMode",null),e([d({readOnly:!0})],S.prototype,"updating",null),e([d({readOnly:!0})],S.prototype,"renderView",null),e([d({readOnly:!0})],S.prototype,"renderer",null),e([d({readOnly:!0})],S.prototype,"textures",null),e([d({readOnly:!0})],S.prototype,"readyToRun",null),S=e([a("esri.views.3d.webgl-engine.Stage")],S);export{S as Stage};
2
+ import{__decorate as e}from"tslib";import t from"../../../core/Accessor.js";import{removeUnordered as r}from"../../../core/arrayUtils.js";import{toConst as s}from"../../../core/compilerUtils.js";import"../../../core/has.js";import{destroyMaybe as i}from"../../../core/maybe.js";import{isPromiseLike as n}from"../../../core/promiseUtils.js";import{signal as o}from"../../../core/signal.js";import{property as d,subclass as a}from"../../../core/accessorSupport/decorators.js";import{isIntersectionHandler as h}from"../state/helpers/SceneIntersectionHelper.js";import{debugFlags as l}from"../support/debugFlags.js";import{TextureCollection as c}from"../support/TextureCollection.js";import{ChangeSet as m}from"./lib/ChangeSet.js";import{Model as y}from"./parts/Model.js";import{RenderView as u}from"./parts/RenderView.js";import{TaskPriority as p,noBudget as _}from"../../support/Scheduler.js";import{Yield as g}from"../../support/Yield.js";let S=class extends t{constructor(e){super(e),this._model=new y,this._canCompact=o(!1),this._layers=new Array,this._asyncChangeSet=new m,this._syncChangeSet=new m,this._layerSyncSet=new Set,this._textures=new c(this,e.view.resourceController.scheduler),this._frameTask=e.view.resourceController.scheduler.registerTask(p.STAGE,this),this.addHandles(this._frameTask)}initialize(){try{this._renderView=new u({view:this.view},this)}catch(e){return void console.error("Failed to initialize render view",e)}}destroy(){this.removeAllHandles(),this._textures.destroy(),this._set("textures",null),this._renderView=i(this._renderView),this._set("renderView",null),this._layers.length=0,this._model=null,this._set("renderer",null),this.options.canvas=null,this._set("options",null)}get viewingMode(){return this.view.state.viewingMode}get updating(){if(this.destroyed||this.destroying)return!1;const e=this.readyToRun||this.renderView.updating||this._frameTask.updating||this.textures.updating;return e&&l.UPDATING&&console.log(" Stage:",this.readyToRun,this.renderView.updating,this._frameTask.updating,this.textures.updating),e}get renderView(){return this._renderView}get renderer(){return this.renderView?.renderer}get textures(){return this._textures}addTexture(e){this._model.addTexture(e),this.renderView.requestRender()}removeTexture(e){null!=e&&!this.destroyed&&this._model.hasTexture(e)&&(this._model.removeTexture(e),this.renderView.requestRender())}addTextures(e){null!=e&&(this._model.addTextures(e),this.renderView.requestRender())}removeTextures(e){null!=e&&(this._model?.removeTextures(e),this.renderView.requestRender())}forEachTexture(e){this._model.forEachTexture(e)}getTexture(e){return this._model.getTexture(e)}addLayer(e){this._layers.includes(e)||(this._model.addLayer(e),this._layers.push(e),this._model.dirtySet.layerAdded(e),this.renderView.requestRender())}removeLayer(e){null!=e&&!this.destroyed&&this._model.hasLayer(s(e))&&(this._model.dirtySet.layerRemoved(e),this.commitLayer(e),r(this._layers,e),this._model.dirtySet.assertLayerClean(e.id),this._model.removeLayer(e),this.renderView.requestRender())}getLayer(e){return this._model.getLayer(e)}handleEvent(e,t){this.destroyed||(this._model.dirtySet[e](t),this.renderView.requestRender())}get readyToRun(){return this._model.dirtySet.dirty||!this._asyncChangeSet.empty||this._canCompact.value}runTask(e){if(this._frameTask.processQueue(e),this._commit(e),this.renderer.compact(e),this._canCompact.value=this.renderer.canCompact,!e.hasProgressed)return g}compact(e){return this._canCompact.value=!1,this.renderer.compact(e)}_commit(e){const t=this._model.dirtySet;this._asyncChangeSet.empty||e.done||(this.renderer.commit(this._asyncChangeSet,e),this.renderView.requestRender(),e.madeProgress()),this._layers.forEach(r=>{if(e.done)return;const s=this._layerSyncSet.has(r.id)||1===r.updatePolicy,i=s?this._syncChangeSet:this._asyncChangeSet;t.commitLayer(r.id,i),this._layerSyncSet.delete(r.id),i.empty||(this.renderer.commit(i,s?_:e),this.renderView.requestRender(),e.madeProgress())}),this._syncChangeSet.empty||(this.renderer.commit(this._syncChangeSet,_),this.renderView.requestRender(),e.madeProgress()),this._layers.forEach(r=>{e.done||this._layerSyncSet.has(r.id)||0!==r.updatePolicy||(t.commitLayer(r.id,this._asyncChangeSet),this._asyncChangeSet.empty||(this.renderer.commit(this._asyncChangeSet,e),this.renderView.requestRender(),e.madeProgress()))}),this._layerSyncSet.clear(),this.notifyChange("readyToRun")}commitSyncLayers(){const e=this._model.dirtySet;this._layers.forEach(t=>{this._layerSyncSet.has(t.id)||1===t.updatePolicy?(e.commitLayer(t.id,this._syncChangeSet),this._layerSyncSet.delete(t.id)):e.commitSyncUpdates(t.id,this._syncChangeSet)});for(const t of this._layerSyncSet)e.commitLayer(t,this._syncChangeSet);this._layerSyncSet.clear(),this._syncChangeSet.empty||(this.renderer.commit(this._syncChangeSet,_),this.renderView.requestRender())}commitLayer(e){this._model.dirtySet.commitLayer(e.id,this._syncChangeSet),this._layerSyncSet.delete(e.id),this._syncChangeSet.empty||(this.renderer.commit(this._syncChangeSet,_),this.renderView.requestRender())}schedule(e,t){return this._frameTask.schedule(e,t)}reschedule(e,t){return this._frameTask.reschedule(e,t)}scheduleGenerator(e,t){return this._frameTask.scheduleGenerator(e,t)}syncLayer(e){this._layerSyncSet.add(e),this.renderView.requestRender()}get layers(){return this._layers}addRenderPlugin(e,t){const r=this.renderer.plugins.add(e,t),s=()=>{h(e)&&this.view.sceneIntersectionHelper.addIntersectionHandler(e)};if(n(r))return r.then(s);s()}removeRenderPlugin(e){this.destroyed||(h(e)&&this.view.sceneIntersectionHelper.removeIntersectionHandler(e),this.renderer.plugins.remove(e))}get test(){}};e([d({constructOnly:!0})],S.prototype,"view",void 0),e([d({constructOnly:!0})],S.prototype,"options",void 0),e([d({constructOnly:!0})],S.prototype,"container",void 0),e([d({readOnly:!0})],S.prototype,"viewingMode",null),e([d({readOnly:!0})],S.prototype,"updating",null),e([d({readOnly:!0})],S.prototype,"renderView",null),e([d({readOnly:!0})],S.prototype,"renderer",null),e([d({readOnly:!0})],S.prototype,"textures",null),e([d({readOnly:!0})],S.prototype,"readyToRun",null),S=e([a("esri.views.3d.webgl-engine.Stage")],S);export{S as Stage};
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
2
- import e from"../../../../core/Logger.js";import{getBasisTranscoder as t}from"../../../../libs/basisu/BasisUTranscoder.js";import{CompressedTextureFormat as n}from"../../../webgl/enums.js";import r from"../../../webgl/Texture.js";import{getFormatBytesPerElement as i}from"../../../webgl/Util.js";const s=()=>e.getLogger("esri.views.3d.webgl-engine.lib.BasisUtil");let a=null,l=null;const o=16,u=0,g=1,c=2,m=3,h=5,f=7,p=8,d=9,T=10,w=14,E=1481919403,S=3140563232,C=169478669,_=67305985;async function M(){return null==l&&(l=t(),a=await l),l}function y(e,t){if(null==a)return e.byteLength;const n=new a.BasisFile(new Uint8Array(e)),r=R(n)?b(n.getNumLevels(0),n.getHasAlpha(),n.getImageWidth(0,0),n.getImageHeight(0,0),t):0;return n.close(),n.delete(),r}function A(e,t){if(null==a)return e.byteLength;const n=new a.KTX2File(new Uint8Array(e)),r=B(n)?b(n.getLevels(),n.getHasAlpha(),n.getWidth(),n.getHeight(),t):0;return n.close(),n.delete(),r}function b(e,t,r,s,a){const l=i(t?n.COMPRESSED_RGBA8_ETC2_EAC:n.COMPRESSED_RGB8_ETC2),o=a&&e>1?(4**e-1)/(3*4**(e-1)):1;return Math.ceil(r*s*l*o)}function R(e){return e.getNumImages()>=1&&!e.isUASTC()}function B(e){return e.getFaces()>=1&&(e.isETC1S()||e.isUASTC())}async function U(e,t,n){null==a&&(a=await M());const r=new a.BasisFile(new Uint8Array(n));if(!R(r))return null;r.startTranscoding();const i=D(e,t,r.getNumLevels(0),r.getHasAlpha(),r.getImageWidth(0,0),r.getImageHeight(0,0),(e,t)=>r.getImageTranscodedSizeInBytes(0,e,t),(e,t,n)=>r.transcodeImage(n,0,e,t,0,0));return r.close(),r.delete(),i}async function I(e,t,n){null==a&&(a=await M());const r=new a.KTX2File(new Uint8Array(n));if(!B(r))return null;r.startTranscoding();const i=D(e,t,r.getLevels(),r.getHasAlpha(),r.getWidth(),r.getHeight(),(e,t)=>r.getImageTranscodedSizeInBytes(e,0,0,t),(e,t,n)=>r.transcodeImage(n,e,0,0,t,0,-1,-1));return r.close(),r.delete(),i}function D(e,t,i,s,a,l,o,u){const{compressedTextureETC:g,compressedTextureS3TC:c}=e.capabilities,[m,h]=g?s?[1,n.COMPRESSED_RGBA8_ETC2_EAC]:[0,n.COMPRESSED_RGB8_ETC2]:c?s?[3,n.COMPRESSED_RGBA_S3TC_DXT5_EXT]:[2,n.COMPRESSED_RGB_S3TC_DXT1_EXT]:[13,6408],f=t.hasMipmap?i:Math.min(1,i),p=[];for(let n=0;n<f;n++)p.push(new Uint8Array(o(n,m))),u(n,m,p[n]);return t.internalFormat=h,t.hasMipmap=p.length>1,t.samplingMode=t.hasMipmap?9987:9729,t.width=a,t.height=l,new r(e,t,{type:"compressed",levels:p})}function v(e,t,n){const i=x(n,t.hasMipmap??!1);if(null==i)throw new Error("KTX1 texture data is null");const{textureData:s,internalFormat:a,width:l,height:o}=i;return t.samplingMode=s.levels.length>1?9987:9729,t.hasMipmap=s.levels.length>1,t.internalFormat=a,t.width=l,t.height=o,new r(e,t,s)}function x(e,t){const r=new Uint32Array(e.buffer,e.byteOffset,o);if(r[u]!==E||r[g]!==S||r[c]!==C)return s().error("Invalid magic number in KTX1 header"),null;if(r[m]!==_||1!==r[h]||r[f]!==n.COMPRESSED_RGB8_ETC2||6407!==r[p])return s().error("Unsupported KTX1 image"),null;const i=r[f];let a=1,l=r[d],M=r[T];if(3&l||3&M)return null;const y=l,A=M;let b,R;!1!==t&&(a=Math.max(1,r[w]));let B=e.byteOffset+4*o;const U=[];for(let n=0;n<a;++n)R=(e[B]|e[B+1]<<8|e[B+2]<<16|e[B+3]<<24)>>>0,B+=4,b=new Uint8Array(e.buffer,B,R),U.push(b),B+=R,l=Math.max(1,l>>1),M=Math.max(1,M>>1);return{textureData:{type:"compressed",levels:U},internalFormat:i,width:y,height:A}}export{B as checkKTX2,x as createKTX1TextureData,U as createTextureBasis,v as createTextureKTX1,I as createTextureKTX2,y as estimateMemoryBasis,A as estimateMemoryKTX2,M as loadBasisTranscoder};
2
+ import e from"../../../../core/Logger.js";import{getBasisTranscoder as t}from"../../../../libs/basisu/BasisUTranscoder.js";import{CompressedTextureFormat as n,SizedPixelFormat as r}from"../../../webgl/enums.js";import a from"../../../webgl/Texture.js";import{getFormatBytesPerElement as i}from"../../../webgl/Util.js";const s=()=>e.getLogger("esri.views.3d.webgl-engine.lib.BasisUtil");let l=null,o=null;const u=16,g=0,m=1,c=2,h=3,f=5,p=7,E=8,d=9,T=10,S=14,w=1481919403,_=3140563232,C=169478669,A=67305985,F=2;async function b(){return null==o&&(o=t(),l=await o),o}function M(e,t){if(null==l)return e.byteLength;const n=new l.BasisFile(new Uint8Array(e)),r=B(n)?y(n.getNumLevels(0),n.getHasAlpha(),n.getImageWidth(0,0),n.getImageHeight(0,0),t):0;return n.close(),n.delete(),r}function R(e,t){if(null==l)return e.byteLength;const n=new l.KTX2File(new Uint8Array(e)),r=D(n)?y(n.getLevels(),n.getHasAlpha(),n.getWidth(),n.getHeight(),t):0;return n.close(),n.delete(),r}function y(e,t,r,a,s){const l=i(t?n.COMPRESSED_RGBA8_ETC2_EAC:n.COMPRESSED_RGB8_ETC2),o=s&&e>1?(4**e-1)/(3*4**(e-1)):1;return Math.ceil(r*a*l*o)}function B(e){return e.getNumImages()>=1&&!e.isUASTC()}function D(e){return e.getFaces()>=1&&(e.isETC1S()||e.isUASTC())}function U(e,t,a,i){return e?a?{basisFormat:1,internalFormat:i?n.COMPRESSED_SRGB8_ALPHA8_ETC2_EAC:n.COMPRESSED_RGBA8_ETC2_EAC}:{basisFormat:0,internalFormat:i?n.COMPRESSED_SRGB8_ETC2:n.COMPRESSED_RGB8_ETC2}:t?a?{basisFormat:3,internalFormat:n.COMPRESSED_RGBA_S3TC_DXT5_EXT}:{basisFormat:2,internalFormat:n.COMPRESSED_RGB_S3TC_DXT1_EXT}:{basisFormat:13,internalFormat:i?r.SRGB8_ALPHA8:6408}}async function I(e,t,n){null==l&&(l=await b());const r=new l.BasisFile(new Uint8Array(n));if(!B(r))return null;r.startTranscoding();const a=P(e,t,r.getNumLevels(0),r.getHasAlpha(),r.getImageWidth(0,0),r.getImageHeight(0,0),(e,t)=>r.getImageTranscodedSizeInBytes(0,e,t),(e,t,n)=>r.transcodeImage(n,0,e,t,0,0));return r.close(),r.delete(),a}async function O(e,t,n,r=!1){null==l&&(l=await b());const a=new l.KTX2File(new Uint8Array(n));if(!D(a))return null;const i=r&&a.getDFDTransferFunc()===F;a.startTranscoding();const s=P(e,t,a.getLevels(),a.getHasAlpha(),a.getWidth(),a.getHeight(),(e,t)=>a.getImageTranscodedSizeInBytes(e,0,0,t),(e,t,n)=>a.transcodeImage(n,e,0,0,t,0,-1,-1),i);return a.close(),a.delete(),s}function P(e,t,n,r,i,s,l,o,u=!1){const{compressedTextureETC:g,compressedTextureS3TC:m}=e.capabilities,{basisFormat:c,internalFormat:h}=U(null!=g,null!=m,r,u),f=t.hasMipmap?n:Math.min(1,n),p=[];for(let a=0;a<f;a++)p.push(new Uint8Array(l(a,c))),o(a,c,p[a]);return t.internalFormat=h,t.hasMipmap=p.length>1,t.samplingMode=t.hasMipmap?9987:9729,t.width=i,t.height=s,new a(e,t,{type:"compressed",levels:p})}function v(e,t,n){const r=x(n,t.hasMipmap??!1);if(null==r)throw new Error("KTX1 texture data is null");const{textureData:i,internalFormat:s,width:l,height:o}=r;return t.samplingMode=i.levels.length>1?9987:9729,t.hasMipmap=i.levels.length>1,t.internalFormat=s,t.width=l,t.height=o,new a(e,t,i)}function x(e,t){const r=new Uint32Array(e.buffer,e.byteOffset,u);if(r[g]!==w||r[m]!==_||r[c]!==C)return s().error("Invalid magic number in KTX1 header"),null;if(r[h]!==A||1!==r[f]||r[p]!==n.COMPRESSED_RGB8_ETC2||6407!==r[E])return s().error("Unsupported KTX1 image"),null;const a=r[p];let i=1,l=r[d],o=r[T];if(3&l||3&o)return null;const F=l,b=o;let M,R;!1!==t&&(i=Math.max(1,r[S]));let y=e.byteOffset+4*u;const B=[];for(let n=0;n<i;++n)R=(e[y]|e[y+1]<<8|e[y+2]<<16|e[y+3]<<24)>>>0,y+=4,M=new Uint8Array(e.buffer,y,R),B.push(M),y+=R,l=Math.max(1,l>>1),o=Math.max(1,o>>1);return{textureData:{type:"compressed",levels:B},internalFormat:a,width:F,height:b}}export{D as checkKTX2,x as createKTX1TextureData,I as createTextureBasis,v as createTextureKTX1,O as createTextureKTX2,M as estimateMemoryBasis,R as estimateMemoryKTX2,b as loadBasisTranscoder,U as selectBasisTextureFormats};
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
2
- import"../core/shaderLibrary/ScreenSpacePass.glsl.js";import"../core/shaderModules/FloatPassUniform.js";import"../core/shaderModules/Texture2DPassUniform.js";import"../shaders/ToneMapping.glsl.js";import"../../../webgl/NoParameters.js";import"../../../webgl/ShaderBuilder.js";export{E as EmissionCompositePassParameters,b as build}from"../../../../chunks/EmissionComposite.glsl.js";
2
+ import"../core/shaderLibrary/ScreenSpacePass.glsl.js";import"../core/shaderLibrary/shading/Gamma.glsl.js";import"../core/shaderModules/FloatPassUniform.js";import"../core/shaderModules/glsl.js";import"../core/shaderModules/Texture2DPassUniform.js";import"../shaders/ToneMapping.glsl.js";import"../../../webgl/NoParameters.js";import"../../../webgl/ShaderBuilder.js";export{E as EmissionCompositePassParameters,b as build}from"../../../../chunks/EmissionComposite.glsl.js";
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
2
- import{__decorate as s}from"tslib";import{watch as e,syncAndInitial as r}from"../../../../core/reactiveUtils.js";import{property as t}from"../../../../core/accessorSupport/decorators/property.js";import{subclass as i}from"../../../../core/accessorSupport/decorators/subclass.js";import{RenderNodeOutput as o}from"../../webgl.js";import a from"../../webgl/RenderNode.js";import{E as m}from"../../../../chunks/EmissionComposite.glsl.js";import{EmissionCompositeTechnique as n}from"./EmissionCompositeTechnique.js";import{floatBlendReductionFactor as p}from"../shaders/floatBlendScale.glsl.js";import{ColorAttachment1 as c,SizedPixelFormat as d}from"../../../webgl/enums.js";let h=class extends a{constructor(){super(...arguments),this.produces=o.COMPOSITE,this.consumes={required:[o.COMPOSITE,"emissive"]},this._passParameters=new m}initialize(){this.addHandles([e(()=>0!==this.bindParameters.emissions,s=>this.produces=s?o.COMPOSITE:"disabled",r)])}precompile(){this.techniques.precompile(n)}render(){const s=this.input,e=s.obtainAttachment(c);if(!e?.attachment)return s;this._passParameters.emission=e.attachment,this._passParameters.inputScale=this._passParameters.emission?.descriptor.internalFormat===d.RGBA8?p:1;const r=this.renderingContext,t=this.techniques.get(n);return this.bindRenderTarget(),r.bindTechnique(t,this.bindParameters,this._passParameters),r.screen.draw(),s.attachColor(e,c),e?.release(),s}};s([t()],h.prototype,"produces",void 0),s([t()],h.prototype,"consumes",void 0),h=s([i("esri.views.3d.webgl-engine.lib.EmissionComposite")],h);export{h as EmissionComposite};
2
+ import{__decorate as e}from"tslib";import{watch as s,syncAndInitial as t}from"../../../../core/reactiveUtils.js";import{property as r}from"../../../../core/accessorSupport/decorators/property.js";import{subclass as i}from"../../../../core/accessorSupport/decorators/subclass.js";import{RenderNodeOutput as o}from"../../webgl.js";import a from"../../webgl/RenderNode.js";import{E as m}from"../../../../chunks/EmissionComposite.glsl.js";import{EmissionCompositeTechnique as n}from"./EmissionCompositeTechnique.js";import{floatBlendReductionFactor as p}from"../shaders/floatBlendScale.glsl.js";import{ColorAttachment1 as c,ColorAttachment0 as h,SizedPixelFormat as d}from"../../../webgl/enums.js";let l=class extends a{constructor(){super(...arguments),this.produces=o.COMPOSITE,this.consumes={required:[o.COMPOSITE,"emissive"]},this._passParameters=new m}initialize(){this.addHandles([s(()=>0!==this.bindParameters.emissions,e=>this.produces=e?o.COMPOSITE:"disabled",t)])}precompile(){this.techniques.precompile(n)}render(){const e=this.input,s=e.getAttachment(c);if(!s?.attachment)return e;this._passParameters.color=e.getAttachment(h)?.attachment,this._passParameters.emission=s.attachment,this._passParameters.inputScale=this._passParameters.emission?.descriptor.internalFormat===d.RGBA8?p:1;const t=this.renderingContext,r=this.techniques.get(n),i=this.acquireOutputFramebuffer();return t.clear(16384),t.bindTechnique(r,this.bindParameters,this._passParameters),t.screen.draw(),i.moveAttachments(e),i}};e([r()],l.prototype,"produces",void 0),e([r()],l.prototype,"consumes",void 0),l=e([i("esri.views.3d.webgl-engine.lib.EmissionComposite")],l);export{l as EmissionComposite};
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
2
- import{__decorate as e}from"tslib";import{subclass as s}from"../../../../core/accessorSupport/decorators/subclass.js";import{ReloadableShader as r}from"../core/shaderTechnique/ReloadableShader.js";import{ShaderTechnique as o}from"../core/shaderTechnique/ShaderTechnique.js";import{a as i}from"../../../../chunks/EmissionComposite.glsl.js";import{makePipelineState as t,add as m,defaultColorWrite as n}from"../../../webgl/renderState.js";let l=class extends o{constructor(){super(...arguments),this.shader=new r(i,()=>import("./EmissionComposite.glsl.js"))}initializePipeline(){return t({colorWrite:n,blending:m})}};l=e([s("esri.views.3d.webgl-engine.lib.EmissionCompositeTechnique")],l);export{l as EmissionCompositeTechnique};
2
+ import{__decorate as e}from"tslib";import{subclass as s}from"../../../../core/accessorSupport/decorators/subclass.js";import{ReloadableShader as r}from"../core/shaderTechnique/ReloadableShader.js";import{ShaderTechnique as o}from"../core/shaderTechnique/ShaderTechnique.js";import{a as i}from"../../../../chunks/EmissionComposite.glsl.js";import{makePipelineState as t,defaultColorWrite as m}from"../../../webgl/renderState.js";let n=class extends o{constructor(){super(...arguments),this.shader=new r(i,()=>import("./EmissionComposite.glsl.js"))}initializePipeline(){return t({colorWrite:m})}};n=e([s("esri.views.3d.webgl-engine.lib.EmissionCompositeTechnique")],n);export{n as EmissionCompositeTechnique};
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
2
- import{set as t}from"../../../../core/libs/gl-matrix-2/math/vec2.js";import{copy as e,scale as a,floor as i,subtract as l,set as r}from"../../../../core/libs/gl-matrix-2/math/vec3.js";import{positiveInfinity as n}from"../../../../geometry/support/aaBoundingBox.js";function o(t){return t.visibleGaussians>0&&null!=t.orderTexture.texture&&null!=t.textureAtlas.texture&&null!=t.headerTexture.texture}function s(a,i,l){u(a,i,l,l.eye),a.splatFading=i.data.fadingTexture.texture;const{fullHeight:r,fullWidth:n}=l,o=Math.tan(.5*l.fovY),s=o/r*n;t(a.tanFov,s,o),a.focalLength=r/(2*o),e(a.origin,l.eye)}function u(t,e,o,s){const u=e.data;t.splatOrder=u.orderTexture.texture,t.splatAtlas=u.textureAtlas.texture,t.splatHeader=u.headerTexture.texture;const{fullHeight:x,fullWidth:c}=o,d=e.view.qualitySettings.gaussianSplat,p=2===e.view.state.mode?d.idleMinimumSplatPixelRadius:d.nonIdleMinimumSplatPixelRadius;t.minSplatRadius=p*Math.sqrt(c*x)/Math.sqrt(2073600),a(t.tileCameraPosition,s,1/m),i(t.tileCameraPosition,t.tileCameraPosition),a(t.cameraDelta,t.tileCameraPosition,m),l(t.cameraDelta,s,t.cameraDelta),t.slicePlaneLocalOrigin=s;const g=e.clippingBox||n,[f,h,v,M,P,C]=g,[R,S,T]=s;r(t.clipMinCameraRelative,f-R,h-S,v-T),r(t.clipMaxCameraRelative,M-R,P-S,C-T)}const m=2.048;export{o as canRenderGaussianSplats,m as gaussianSplatTileSize,s as prepareGaussianSplatPerspectiveParameters,u as prepareGaussianSplatRenderParameters};
2
+ import{set as t}from"../../../../core/libs/gl-matrix-2/math/vec2.js";import{copy as e,scale as a,floor as i,subtract as r,set as l}from"../../../../core/libs/gl-matrix-2/math/vec3.js";import{positiveInfinity as o}from"../../../../geometry/support/aaBoundingBox.js";function n(t){return t.visibleGaussians>0&&null!=t.orderTexture.texture&&null!=t.textureAtlas.texture&&null!=t.headerTexture.texture}function s(a,i,r){u(a,i,r,r.eye),a.splatFading=i.data.fadingTexture.texture;const{fullHeight:l,fullWidth:o}=r,n=Math.tan(.5*r.fovY),s=n/l*o;t(a.tanFov,s,n),a.focalLength=l/(2*n),e(a.origin,r.eye)}function u(t,e,n,s){const u=e.data;t.splatOrder=u.orderTexture.texture,t.splatAtlas=u.textureAtlas.texture,t.splatHeader=u.headerTexture.texture;const{fullHeight:c,fullWidth:x}=n,p=e.view.qualitySettings.gaussianSplat.minimumPixelRadius;t.minSplatRadius=p*Math.sqrt(x*c)/Math.sqrt(2073600),a(t.tileCameraPosition,s,1/m),i(t.tileCameraPosition,t.tileCameraPosition),a(t.cameraDelta,t.tileCameraPosition,m),r(t.cameraDelta,s,t.cameraDelta),t.slicePlaneLocalOrigin=s;const d=e.clippingBox||o,[g,f,h,v,C,P]=d,[M,T,y]=s;l(t.clipMinCameraRelative,g-M,f-T,h-y),l(t.clipMaxCameraRelative,v-M,C-T,P-y)}const m=2.048;export{n as canRenderGaussianSplats,m as gaussianSplatTileSize,s as prepareGaussianSplatPerspectiveParameters,u as prepareGaussianSplatRenderParameters};
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
2
- import{__decorate as e}from"tslib";import{watch as i}from"../../../../core/reactiveUtils.js";import{property as t,subclass as s}from"../../../../core/accessorSupport/decorators.js";import{copy as r}from"../../../../core/libs/gl-matrix-2/math/vec3.js";import{create as a}from"../../../../core/libs/gl-matrix-2/factories/vec3f64.js";import{create as o,set as n,positiveInfinity as h,equals as l}from"../../../../geometry/support/aaBoundingBox.js";import{InternalRenderCategory as u}from"../../webgl.js";import{addWraparound as c}from"../../layers/i3s/I3SUtil.js";import p from"../../webgl/RenderNode.js";import{canRenderGaussianSplats as m,prepareGaussianSplatPerspectiveParameters as d}from"./GaussianSplatRenderUtils.js";import{G as _}from"../../../../chunks/GaussianSplatComposition.glsl.js";import{GaussianSplatCompositionTechnique as g}from"../shaders/GaussianSplatCompositionTechnique.js";import{GaussianSplatCompositionTechniqueConfiguration as f}from"../shaders/GaussianSplatCompositionTechniqueConfiguration.js";import{G as C}from"../../../../chunks/GaussianSplatDepthComposition.glsl.js";import{GaussianSplatDepthCompositionTechnique as b}from"../shaders/GaussianSplatDepthCompositionTechnique.js";import{GaussianSplatPassParameters as P}from"../shaders/GaussianSplatPassParameters.js";import{GaussianSplatTechnique as S}from"../shaders/GaussianSplatTechnique.js";import{GaussianSplatTechniqueConfiguration as q}from"../shaders/GaussianSplatTechniqueConfiguration.js";import{ColorAttachment1 as v,DepthStencilAttachment as w,PrimitiveType as R}from"../../../webgl/enums.js";let x=class extends p{constructor(e){super(e),this.consumes={required:[u.GAUSSIAN_SPLAT]},this.produces=u.GAUSSIAN_SPLAT,this._slicePlaneEnabled=!1,this.layerView=null,this._passParameters=new P,this._compositionPassParameters=new _,this._depthCompositionPassParameters=new C,this._compositionConfiguration=new f,this._clipBox=o(),this._previousSortRequestCameraDirection=a(),this._cameraSortDirty=!1,this._tileCullingRevision=0,this._sortRequestDirectionEpsilon=.01,this._configuration=new q(e.view.state.isGlobal),n(this._clipBox,h)}async initialize(){this.addHandles([i(()=>this.view.state.camera,()=>this._onCameraChange()),i(()=>2===this.view.state.mode,e=>{e&&this._cameraSortDirty&&this._requestCameraSort(this.view.state.camera.ray.direction),this.requestRender(1)})])}precompile(){this._canRender&&(this._updateConfigurations(),this._compositionConfiguration.useFloatBlend=this.bindParameters.useFloatBlend.value,this._compositionConfiguration.hasEmission=this.bindParameters.hasOpaqueEmission,this.techniques.precompile(S,this._configuration),this.techniques.precompile(g,this._compositionConfiguration),this.techniques.precompile(b))}render(){const e=this.input;if(this._updateConfigurations(),this._fadeHelper.updateForFrame(this.view.stage.renderView.renderer.renderContext.time),!this._canRender)return e;const i=e.getAttachment(v);this._compositionConfiguration.useFloatBlend=this.bindParameters.useFloatBlend.value,this._compositionConfiguration.hasEmission=null!=i;const{fullWidth:t,fullHeight:s}=this.bindParameters.camera;this._prepareParameters();const r=this.renderingContext,a=this.fboCache,o=a.acquire(t,s,"gaussian color output"),n=e.getAttachment(w);o.attachDepth(n);const h=this.techniques.get(S,this._configuration);this._renderGaussianColorAndDepth(o,h);const l=a.acquire(t,s,this.produces);this._depthCompositionPassParameters.splatDepth=o.getTexture(v),l.attachDepth(e.getAttachment(w)),r.bindFramebuffer(l.fbo);const u=this.techniques.get(b);r.bindTechnique(u,this.bindParameters,this._depthCompositionPassParameters),r.screen.draw(),this._compositionPassParameters.color=e.getTexture(),this._compositionPassParameters.splatColor=o.getTexture(),i?(l.acquireColor(v,8,"emissive"),this._compositionPassParameters.emission=e.getTexture(v)):this._compositionPassParameters.emission=null,r.bindFramebuffer(l.fbo);const c=this.techniques.get(g,this._compositionConfiguration);return r.bindTechnique(c,this.bindParameters,this._compositionPassParameters),r.screen.draw(),o.release(),l}get slicePlaneEnabled(){return this._slicePlaneEnabled}set slicePlaneEnabled(e){this._slicePlaneEnabled!==e&&(this._slicePlaneEnabled=e,this.requestRender(1))}set clippingBox(e){const i=e||h;this._hasSameClipBox(i)||(n(this._clipBox,i),this._tileCullingRevision=c(this._tileCullingRevision,1),this._data.requestSort(),this.requestRender(1))}get clippingBox(){return this._clippingEnabled?this._clipBox:null}get tileCullingRevision(){return this._tileCullingRevision}get _clippingEnabled(){return!l(this._clipBox,h,(e,i)=>e===i)}get _isIdle(){return 2===this.view.state.mode}get _data(){return this.layerView.data}get _canRender(){return m(this._data)}get _fadeHelper(){return this.layerView.fadeHelper}_updateConfigurations(){const{idleMinimumOpacity:e,nonIdleMinimumOpacity:i}=this.view.qualitySettings.gaussianSplat;this._configuration.alphaCutoff=this._isIdle?e:i,this._configuration.fadingEnabled=this._fadeHelper.fadingEnabled,this._configuration.receiveShadows=this.bindParameters.shadowMap.ready,this._configuration.hasShadowHighlights=this._configuration.receiveShadows&&this.bindParameters.hasShadowHighlights,this._configuration.clippingEnabled=this._clippingEnabled,this._configuration.hasSlicePlane=this._slicePlaneEnabled&&null!=this.bindParameters.slicePlane,this._configuration.needsFragmentPosition=this._configuration.receiveShadows||this._configuration.clippingEnabled||this._configuration.hasSlicePlane}_onCameraChange(){this._tileCullingRevision=c(this._tileCullingRevision,1);const e=this.view.state.camera.ray.direction;this._cameraSortDirty=!0,(this._isIdle||this._shouldRequestSort(e))&&this._requestCameraSort(e)}_shouldRequestSort(e){return Math.abs(e[0]-this._previousSortRequestCameraDirection[0])>this._sortRequestDirectionEpsilon||Math.abs(e[1]-this._previousSortRequestCameraDirection[1])>this._sortRequestDirectionEpsilon||Math.abs(e[2]-this._previousSortRequestCameraDirection[2])>this._sortRequestDirectionEpsilon}_requestCameraSort(e){this._data.requestSort(),r(this._previousSortRequestCameraDirection,e),this._cameraSortDirty=!1}_prepareParameters(){d(this._passParameters,this.layerView,this.camera)}_hasSameClipBox(e){return l(this._clipBox,e,(e,i)=>e===i)}_renderGaussianColorAndDepth(e,i){const t=this.renderingContext;e.acquireColor(v,5,"gaussian depth output"),t.bindFramebuffer(e.fbo),t.setClearColor(0,0,0,0),t.clear(16384),this.renderingContext.bindTechnique(i,this.bindParameters,this._passParameters),this.renderingContext.drawArraysInstanced(R.TRIANGLE_STRIP,0,4,this._data.visibleGaussians)}};e([t()],x.prototype,"consumes",void 0),e([t()],x.prototype,"produces",void 0),e([t({constructOnly:!0})],x.prototype,"layerView",void 0),x=e([s("esri.views.3d.webgl-engine.lib.GaussianSplatRenderer")],x);export{x as GaussianSplatRenderer};
2
+ import{__decorate as e}from"tslib";import{watch as i}from"../../../../core/reactiveUtils.js";import{property as t,subclass as s}from"../../../../core/accessorSupport/decorators.js";import{copy as r}from"../../../../core/libs/gl-matrix-2/math/vec3.js";import{create as a}from"../../../../core/libs/gl-matrix-2/factories/vec3f64.js";import{create as o,set as n,positiveInfinity as h,equals as l}from"../../../../geometry/support/aaBoundingBox.js";import{InternalRenderCategory as u}from"../../webgl.js";import{addWraparound as c}from"../../layers/i3s/I3SUtil.js";import p from"../../webgl/RenderNode.js";import{canRenderGaussianSplats as m,prepareGaussianSplatPerspectiveParameters as d}from"./GaussianSplatRenderUtils.js";import{G as _}from"../../../../chunks/GaussianSplatComposition.glsl.js";import{GaussianSplatCompositionTechnique as g}from"../shaders/GaussianSplatCompositionTechnique.js";import{GaussianSplatCompositionTechniqueConfiguration as f}from"../shaders/GaussianSplatCompositionTechniqueConfiguration.js";import{G as C}from"../../../../chunks/GaussianSplatDepthComposition.glsl.js";import{GaussianSplatDepthCompositionTechnique as b}from"../shaders/GaussianSplatDepthCompositionTechnique.js";import{GaussianSplatPassParameters as P}from"../shaders/GaussianSplatPassParameters.js";import{GaussianSplatTechnique as S}from"../shaders/GaussianSplatTechnique.js";import{GaussianSplatTechniqueConfiguration as q}from"../shaders/GaussianSplatTechniqueConfiguration.js";import{ColorAttachment1 as v,DepthStencilAttachment as w,PrimitiveType as R}from"../../../webgl/enums.js";let x=class extends p{constructor(e){super(e),this.consumes={required:[u.GAUSSIAN_SPLAT]},this.produces=u.GAUSSIAN_SPLAT,this._slicePlaneEnabled=!1,this.layerView=null,this._passParameters=new P,this._compositionPassParameters=new _,this._depthCompositionPassParameters=new C,this._compositionConfiguration=new f,this._clipBox=o(),this._previousSortRequestCameraDirection=a(),this._cameraSortDirty=!1,this._tileCullingRevision=0,this._sortRequestDirectionEpsilon=.01,this._configuration=new q(e.view.state.isGlobal),n(this._clipBox,h)}async initialize(){this.addHandles([i(()=>this.view.state.camera,()=>this._onCameraChange()),i(()=>2===this.view.state.mode,e=>{e&&this._cameraSortDirty&&this._requestCameraSort(this.view.state.camera.ray.direction),this.requestRender(1)})])}precompile(){this._canRender&&(this._updateConfigurations(),this._compositionConfiguration.useFloatBlend=this.bindParameters.useFloatBlend.value,this._compositionConfiguration.hasEmission=this.bindParameters.hasOpaqueEmission,this.techniques.precompile(S,this._configuration),this.techniques.precompile(g,this._compositionConfiguration),this.techniques.precompile(b))}render(){const e=this.input;if(this._updateConfigurations(),this._fadeHelper.updateForFrame(this.view.stage.renderView.renderer.renderContext.time),!this._canRender)return e;const i=e.getAttachment(v);this._compositionConfiguration.useFloatBlend=this.bindParameters.useFloatBlend.value,this._compositionConfiguration.hasEmission=null!=i;const{fullWidth:t,fullHeight:s}=this.bindParameters.camera;this._prepareParameters();const r=this.renderingContext,a=this.fboCache,o=a.acquire(t,s,"gaussian color output"),n=e.getAttachment(w);o.attachDepth(n);const h=this.techniques.get(S,this._configuration);this._renderGaussianColorAndDepth(o,h);const l=a.acquire(t,s,this.produces);this._depthCompositionPassParameters.splatDepth=o.getTexture(v),l.attachDepth(e.getAttachment(w)),r.bindFramebuffer(l.fbo);const u=this.techniques.get(b);r.bindTechnique(u,this.bindParameters,this._depthCompositionPassParameters),r.screen.draw(),this._compositionPassParameters.color=e.getTexture(),this._compositionPassParameters.splatColor=o.getTexture(),i?(l.acquireColor(v,8,"emissive"),this._compositionPassParameters.emission=e.getTexture(v)):this._compositionPassParameters.emission=null,r.bindFramebuffer(l.fbo);const c=this.techniques.get(g,this._compositionConfiguration);return r.bindTechnique(c,this.bindParameters,this._compositionPassParameters),r.screen.draw(),o.release(),l}get slicePlaneEnabled(){return this._slicePlaneEnabled}set slicePlaneEnabled(e){this._slicePlaneEnabled!==e&&(this._slicePlaneEnabled=e,this.requestRender(1))}set clippingBox(e){const i=e||h;this._hasSameClipBox(i)||(n(this._clipBox,i),this._tileCullingRevision=c(this._tileCullingRevision,1),this._data.requestSort(),this.requestRender(1))}get clippingBox(){return this._clippingEnabled?this._clipBox:null}get tileCullingRevision(){return this._tileCullingRevision}get _clippingEnabled(){return!l(this._clipBox,h,(e,i)=>e===i)}get _isIdle(){return 2===this.view.state.mode}get _data(){return this.layerView.data}get _canRender(){return m(this._data)}get _fadeHelper(){return this.layerView.fadeHelper}_updateConfigurations(){this._configuration.alphaCutoff=this.view.qualitySettings.gaussianSplat.minimumOpacity,this._configuration.fadingEnabled=this._fadeHelper.fadingEnabled,this._configuration.receiveShadows=this.bindParameters.shadowMap.ready,this._configuration.hasShadowHighlights=this._configuration.receiveShadows&&this.bindParameters.hasShadowHighlights,this._configuration.clippingEnabled=this._clippingEnabled,this._configuration.hasSlicePlane=this._slicePlaneEnabled&&null!=this.bindParameters.slicePlane,this._configuration.needsFragmentPosition=this._configuration.receiveShadows||this._configuration.clippingEnabled||this._configuration.hasSlicePlane}_onCameraChange(){this._tileCullingRevision=c(this._tileCullingRevision,1);const e=this.view.state.camera.ray.direction;this._cameraSortDirty=!0,(this._isIdle||this._shouldRequestSort(e))&&this._requestCameraSort(e)}_shouldRequestSort(e){return Math.abs(e[0]-this._previousSortRequestCameraDirection[0])>this._sortRequestDirectionEpsilon||Math.abs(e[1]-this._previousSortRequestCameraDirection[1])>this._sortRequestDirectionEpsilon||Math.abs(e[2]-this._previousSortRequestCameraDirection[2])>this._sortRequestDirectionEpsilon}_requestCameraSort(e){this._data.requestSort(),r(this._previousSortRequestCameraDirection,e),this._cameraSortDirty=!1}_prepareParameters(){d(this._passParameters,this.layerView,this.camera)}_hasSameClipBox(e){return l(this._clipBox,e,(e,i)=>e===i)}_renderGaussianColorAndDepth(e,i){const t=this.renderingContext;e.acquireColor(v,5,"gaussian depth output"),t.bindFramebuffer(e.fbo),t.setClearColor(0,0,0,0),t.clear(16384),this.renderingContext.bindTechnique(i,this.bindParameters,this._passParameters),this.renderingContext.drawArraysInstanced(R.TRIANGLE_STRIP,0,4,this._data.visibleGaussians)}};e([t()],x.prototype,"consumes",void 0),e([t()],x.prototype,"produces",void 0),e([t({constructOnly:!0})],x.prototype,"layerView",void 0),x=e([s("esri.views.3d.webgl-engine.lib.GaussianSplatRenderer")],x);export{x as GaussianSplatRenderer};
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
2
- const a=.25,t=80*15259e-9,e={direct:{alphaCutoff:a,depthBias:t},accumulated:{alphaCutoff:.5,depthBias:4*t},viewshed:{alphaCutoff:.5,depthBias:4*t}};export{e as gaussianSplatDepthPolicy,a as gaussianSplatFirstHitAlpha};
2
+ const a=.25,t=80*15259e-9,e={direct:{alphaCutoff:a,depthBias:t},accumulated:{alphaCutoff:.5,depthBias:4*t},viewshed:{alphaCutoff:.25,depthBias:8*t}};export{e as gaussianSplatDepthPolicy,a as gaussianSplatFirstHitAlpha};
@@ -1,17 +1,30 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
2
- import{set as e}from"../../../../core/libs/gl-matrix-2/math/vec2.js";import{create as a}from"../../../../core/libs/gl-matrix-2/factories/vec2f64.js";import{RejectBySlicePass as i}from"../core/shaderLibrary/Slice.glsl.js";import{positionOutsideClipSpace as n}from"../core/shaderLibrary/shading/PositionOutsideClipSpace.js";import{GaussianSplatCovariance as t}from"../core/shaderLibrary/util/GaussianSplatCovariance.glsl.js";import{GaussianSplatEvaluation as o}from"../core/shaderLibrary/util/GaussianSplatEvaluation.glsl.js";import{GaussianSplatTextureFetch as r}from"../core/shaderLibrary/util/GaussianSplatTextureFetch.glsl.js";import{GaussianSplatUnpacking as s}from"../core/shaderLibrary/util/GaussianSplatUnpacking.glsl.js";import{QuaternionToRotationMatrix as c}from"../core/shaderLibrary/util/QuaternionToRotationMatrix.glsl.js";import{Float2BindUniform as l}from"../core/shaderModules/Float2BindUniform.js";import{Float2PassUniform as u}from"../core/shaderModules/Float2PassUniform.js";import{Float3PassUniform as d}from"../core/shaderModules/Float3PassUniform.js";import{FloatPassUniform as m}from"../core/shaderModules/FloatPassUniform.js";import{glsl as p,If as f}from"../core/shaderModules/glsl.js";import{Matrix4BindUniform as v}from"../core/shaderModules/Matrix4BindUniform.js";import{Texture2DUintPassUniform as g}from"../core/shaderModules/Texture2DUintPassUniform.js";function x(a,n){const{clippingEnabled:u,needsFragmentPosition:f}=n,{fragment:x,varyings:P,vertex:h}=a;P.add("conic","vec3"),P.add("gaussianLogAlphaCutoff","float"),P.add("offsetFromCenter","vec2"),f&&P.add("fragmentPositionCameraRelative","vec3"),h.uniforms.add(new g("splatOrderTexture",e=>e.splatOrder),new g("splatAtlasTexture",e=>e.splatAtlas),new g("splatHeaderTexture",e=>e.splatHeader),new m("minSplatRadius",e=>e.minSplatRadius),new l("inverseScreenSize",({camera:a})=>e(F,1/a.fullWidth,1/a.fullHeight)),new v("proj",e=>e.camera.projectionMatrix),new v("view",e=>e.camera.viewMatrix),new l("nearFar",e=>e.camera.nearFar)),u&&(h.uniforms.add(new d("clipMin",e=>e.clipMinCameraRelative),new d("clipMax",e=>e.clipMaxCameraRelative)),f&&x.uniforms.add(new d("clipMin",e=>e.clipMinCameraRelative),new d("clipMax",e=>e.clipMaxCameraRelative))),h.include(s),h.include(r),h.include(c),h.include(t),h.include(o),h.include(i,n),x.include(o),f&&x.include(i,n),x.main.add(p`
3
- ${j(n)}
4
- `)}function P(e,a){e.include(x,a),e.vertex.uniforms.add(new m("focalLength",e=>e.focalLength),new u("tanFov",e=>e.tanFov))}function h(e){e.uniforms.add(new g("splatFadingTexture",e=>e.splatFading)),e.code.add(p`float applyGaussianSplatFading(float opacity, uint gaussianIndex) {
2
+ import{set as a}from"../../../../core/libs/gl-matrix-2/math/vec2.js";import{create as e}from"../../../../core/libs/gl-matrix-2/factories/vec2f64.js";import{RejectBySlicePass as i}from"../core/shaderLibrary/Slice.glsl.js";import{DepthConversion as n}from"../core/shaderLibrary/output/DepthConversion.glsl.js";import{positionOutsideClipSpace as r}from"../core/shaderLibrary/shading/PositionOutsideClipSpace.js";import{GaussianSplatCovariance as o}from"../core/shaderLibrary/util/GaussianSplatCovariance.glsl.js";import{GaussianSplatEvaluation as t}from"../core/shaderLibrary/util/GaussianSplatEvaluation.glsl.js";import{GaussianSplatTextureFetch as s}from"../core/shaderLibrary/util/GaussianSplatTextureFetch.glsl.js";import{GaussianSplatUnpacking as c}from"../core/shaderLibrary/util/GaussianSplatUnpacking.glsl.js";import{QuaternionToRotationMatrix as l}from"../core/shaderLibrary/util/QuaternionToRotationMatrix.glsl.js";import{Float2BindUniform as v}from"../core/shaderModules/Float2BindUniform.js";import{Float2PassUniform as u}from"../core/shaderModules/Float2PassUniform.js";import{Float3PassUniform as d}from"../core/shaderModules/Float3PassUniform.js";import{FloatPassUniform as m}from"../core/shaderModules/FloatPassUniform.js";import{glsl as p,If as f}from"../core/shaderModules/glsl.js";import{Matrix4BindUniform as y}from"../core/shaderModules/Matrix4BindUniform.js";import{Texture2DUintPassUniform as g}from"../core/shaderModules/Texture2DUintPassUniform.js";function x(e,n){const{clippingEnabled:r,needsFragmentPosition:u}=n,{fragment:f,varyings:x,vertex:C}=e;x.add("conic","vec3"),x.add("gaussianLogAlphaCutoff","float"),x.add("offsetFromCenter","vec2"),u&&x.add("fragmentPositionCameraRelative","vec3"),C.uniforms.add(new g("splatOrderTexture",a=>a.splatOrder),new g("splatAtlasTexture",a=>a.splatAtlas),new g("splatHeaderTexture",a=>a.splatHeader),new m("minSplatRadius",a=>a.minSplatRadius),new v("inverseScreenSize",({camera:e})=>a(F,1/e.fullWidth,1/e.fullHeight)),new y("proj",a=>a.camera.projectionMatrix),new y("view",a=>a.camera.viewMatrix),new v("nearFar",a=>a.camera.nearFar)),r&&(C.uniforms.add(new d("clipMin",a=>a.clipMinCameraRelative),new d("clipMax",a=>a.clipMaxCameraRelative)),u&&f.uniforms.add(new d("clipMin",a=>a.clipMinCameraRelative),new d("clipMax",a=>a.clipMaxCameraRelative))),C.include(c),C.include(s),C.include(l),C.include(o),C.include(t),C.include(i,n),f.include(t),u&&f.include(i,n),f.main.add(p`
3
+ ${z(n)}
4
+ `)}function C(a,e){a.include(x,e),a.vertex.uniforms.add(new m("focalLength",a=>a.focalLength),new u("tanFov",a=>a.tanFov)),a.include(P),a.varyings.add("rayDirectionWorld","vec3"),a.vertex.uniforms.add(new y("inverseProjectionMatrix",({camera:a})=>a.inverseProjectionMatrix)),a.fragment.include(n),a.fragment.code.add(p`float gaussianSplatDepth() {
5
+ float rayDepth = gaussianSplatRayDepth(rayDirectionWorld, rayGaussianCenter);
6
+ return delinearizeDepth(-rayDepth);
7
+ }`)}function P(a){a.varyings.add("rayGaussianCenter","vec3"),a.varyings.add("rayGaussianInverseCovarianceA","vec3"),a.varyings.add("rayGaussianInverseCovarianceB","vec3"),a.fragment.code.add(p`vec3 multiplyRayGaussianInverseCovariance(vec3 value) {
8
+ return vec3(
9
+ rayGaussianInverseCovarianceA.x * value.x + rayGaussianInverseCovarianceA.y * value.y + rayGaussianInverseCovarianceA.z * value.z,
10
+ rayGaussianInverseCovarianceA.y * value.x + rayGaussianInverseCovarianceB.x * value.y + rayGaussianInverseCovarianceB.y * value.z,
11
+ rayGaussianInverseCovarianceA.z * value.x + rayGaussianInverseCovarianceB.y * value.y + rayGaussianInverseCovarianceB.z * value.z
12
+ );
13
+ }
14
+ float gaussianSplatRayDepth(vec3 rayWorld, vec3 gaussianCenter) {
15
+ vec3 inverseCovarianceRay = multiplyRayGaussianInverseCovariance(rayWorld);
16
+ return dot(gaussianCenter, inverseCovarianceRay) / dot(rayWorld, inverseCovarianceRay);
17
+ }`)}function h(a){a.uniforms.add(new g("splatFadingTexture",a=>a.splatFading)),a.code.add(p`float applyGaussianSplatFading(float opacity, uint gaussianIndex) {
5
18
  uint pageIndex = fetchGaussianPageIndex(gaussianIndex);
6
19
  uint fadingTextureWidth = uint(textureSize(splatFadingTexture, 0).x);
7
20
  uint fadeX = pageIndex % fadingTextureWidth;
8
21
  uint fadeY = pageIndex / fadingTextureWidth;
9
22
  uint opacityModifier = texelFetch(splatFadingTexture, ivec2(fadeX, fadeY), 0).r;
10
23
  return opacity * float(opacityModifier) / 255.0;
11
- }`)}function y(e,a){const{clippingEnabled:i,hasSlicePlane:t}=e;return p`
12
- gl_Position = ${n};
24
+ }`)}function R(a,e){const{clippingEnabled:i,hasSlicePlane:n}=a;return p`
25
+ gl_Position = ${r};
13
26
 
14
- if (opacity < ${a}) {
27
+ if (opacity < ${e}) {
15
28
  return;
16
29
  }
17
30
 
@@ -24,7 +37,7 @@ return opacity * float(opacityModifier) / 255.0;
24
37
  }
25
38
  `)}
26
39
 
27
- ${f(t,p`
40
+ ${f(n,p`
28
41
  if (rejectBySlice(cameraRelativePosition)) {
29
42
  return;
30
43
  }
@@ -35,23 +48,33 @@ return opacity * float(opacityModifier) / 255.0;
35
48
  if (viewPos.z > -nearFar.x || viewPos.z < -nearFar.y) {
36
49
  return;
37
50
  }
38
- `}const R=p`vec3 covarianceA;
51
+ `}const w=p`vec3 covarianceA;
39
52
  vec3 covarianceB;
40
53
  computePackedGaussianCovariance3D(packedGaussian, covarianceA, covarianceB);
41
- float covariance3D[6] = float[6](covarianceA.x, covarianceA.y, covarianceA.z, covarianceB.x, covarianceB.y, covarianceB.z);`;function M(e,a){return p`
54
+ float covariance3D[6] = float[6](covarianceA.x, covarianceA.y, covarianceA.z, covarianceB.x, covarianceB.y, covarianceB.z);`;function G(a){return p`
55
+ mat3 covarianceMatrix = mat3(
56
+ covariance3D[0], covariance3D[1], covariance3D[2],
57
+ covariance3D[1], covariance3D[3], covariance3D[4],
58
+ covariance3D[2], covariance3D[4], covariance3D[5]
59
+ );
60
+ mat3 inverseCovariance = inverse(covarianceMatrix);
61
+ rayGaussianCenter = ${a};
62
+ rayGaussianInverseCovarianceA = vec3(inverseCovariance[0][0], inverseCovariance[0][1], inverseCovariance[0][2]);
63
+ rayGaussianInverseCovarianceB = vec3(inverseCovariance[1][1], inverseCovariance[1][2], inverseCovariance[2][2]);
64
+ `}function M(a,e){return p`
42
65
  float determinant = computeGaussianCovarianceDeterminant(covariance2D);
43
66
  if (determinant <= 0.0) {
44
67
  return;
45
68
  }
46
69
 
47
70
  vec2 eigenvalues = computeGaussianCovarianceEigenvalues(covariance2D);
48
- gaussianLogAlphaCutoff = ${e};
71
+ gaussianLogAlphaCutoff = ${a};
49
72
  float gaussianEllipseThreshold = computeGaussianEllipseThreshold(gaussianLogAlphaCutoff);
50
73
  vec2 axisLengths = computeGaussianAxisLengths(eigenvalues, gaussianEllipseThreshold);
51
74
  vec2 screenRadii = computeGaussianScreenRadii(covariance2D, gaussianEllipseThreshold);
52
75
  float maxRadius = max(axisLengths.x, axisLengths.y);
53
76
 
54
- if (rejectGaussianByMinimumRadius(maxRadius, ${a}, minSplatRadius)) {
77
+ if (rejectGaussianByMinimumRadius(maxRadius, ${e}, minSplatRadius)) {
55
78
  return;
56
79
  }
57
80
  `}const S=p`vec2 clipSpacePixelScale = 2.0 * inverseScreenSize;
@@ -59,37 +82,42 @@ if (rejectGaussianByScreenBounds(ndcPos.xy, screenRadii, clipSpacePixelScale)) {
59
82
  return;
60
83
  }
61
84
  offsetFromCenter = computeGaussianQuadOffset(covariance2D, eigenvalues, axisLengths, gl_VertexID);
62
- conic = computeGaussianConic(covariance2D, determinant);`;function C(e,a){return p`
63
- ${y(e,p.float(a))}
85
+ conic = computeGaussianConic(covariance2D, determinant);`;function D(a,e){return p`
86
+ ${R(a,p.float(e))}
64
87
 
65
- ${R}
88
+ ${w}
89
+ ${G("cameraRelativePosition")}
66
90
  vec3 covariance2D = computeGaussianCovariance2D(viewPos.xyz, focalLength, tanFov, covariance3D, view);
67
91
  float minimumRadiusOpacity = opacity;
68
92
  float opacityScale = regularizeGaussianCovariance(covariance2D);
69
93
  opacity *= opacityScale;
70
- if (opacity < ${p.float(a)}) {
94
+ if (opacity < ${p.float(e)}) {
71
95
  return;
72
96
  }
73
97
 
74
- ${M(`${p.float(Math.log(a))} - log(opacity)`,"minimumRadiusOpacity")}
98
+ ${M(`${p.float(Math.log(e))} - log(opacity)`,"minimumRadiusOpacity")}
75
99
 
76
- ${w(e)}
77
- `}function w(e){return p`
100
+ ${j(a)}
101
+ `}function j(a){return p`
78
102
  vec4 projPos = proj * viewPos;
79
103
  float invW = 1.0 / (projPos.w + 1e-7);
80
104
  vec3 ndcPos = projPos.xyz * invW;
81
105
  ${S}
82
106
 
83
- ${f(e.needsFragmentPosition,p`
107
+ ${f(a.needsFragmentPosition,p`
84
108
  float viewSpacePixelScale = -viewPos.z / focalLength;
85
109
  vec3 fragmentViewOffset = vec3(offsetFromCenter * viewSpacePixelScale, 0.0);
86
110
  fragmentPositionCameraRelative = cameraRelativePosition + transpose(mat3(view)) * fragmentViewOffset;
87
111
  `)}
88
112
 
89
113
  vec2 quadClipPosition = ndcPos.xy + offsetFromCenter * clipSpacePixelScale - inverseScreenSize;
114
+ vec4 rayViewPoint = inverseProjectionMatrix * vec4(quadClipPosition, -1.0, 1.0);
115
+ vec3 rayView = rayViewPoint.xyz / rayViewPoint.w;
116
+ rayView /= -rayView.z;
117
+ rayDirectionWorld = transpose(mat3(view)) * rayView;
90
118
  gl_Position = vec4(quadClipPosition, ndcPos.z, 1.0);
91
- `}function j(e){const{clippingEnabled:a,needsFragmentPosition:i,hasSlicePlane:n}=e;return p`
92
- ${f(i&&a,p`
119
+ `}function z(a){const{clippingEnabled:e,needsFragmentPosition:i,hasSlicePlane:n}=a;return p`
120
+ ${f(i&&e,p`
93
121
  if (fragmentPositionCameraRelative.x < clipMin.x || fragmentPositionCameraRelative.y < clipMin.y || fragmentPositionCameraRelative.z < clipMin.z ||
94
122
  fragmentPositionCameraRelative.x > clipMax.x || fragmentPositionCameraRelative.y > clipMax.y || fragmentPositionCameraRelative.z > clipMax.z) {
95
123
  discard;
@@ -101,4 +129,4 @@ conic = computeGaussianConic(covariance2D, determinant);`;function C(e,a){return
101
129
  if (gaussianExponent > 0.0 || gaussianExponent < gaussianLogAlphaCutoff) {
102
130
  discard;
103
131
  }
104
- `}const F=a();export{h as GaussianSplatFading,x as GaussianSplatPass,P as GaussianSplatPerspectivePass,M as gaussianSplatComputeEllipse,S as gaussianSplatComputeQuad,y as gaussianSplatCullAndTransformVertex,C as gaussianSplatPerspectiveVertex,R as gaussianSplatUnpackCovariance3D};
132
+ `}const F=e();export{h as GaussianSplatFading,x as GaussianSplatPass,C as GaussianSplatPerspectivePass,M as gaussianSplatComputeEllipse,S as gaussianSplatComputeQuad,R as gaussianSplatCullAndTransformVertex,D as gaussianSplatPerspectiveVertex,w as gaussianSplatUnpackCovariance3D};