@arcgis/core 5.2.0-next.5 → 5.2.0-next.6

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 (849) hide show
  1. package/analysis/SliceAnalysis.d.ts +1 -1
  2. package/applications/Components/analysisUtils.d.ts +24 -0
  3. package/applications/Components/analysisUtils.js +1 -1
  4. package/arcade/Dictionary.js +1 -1
  5. package/arcade/Feature.js +1 -1
  6. package/arcade/Pixel.js +1 -1
  7. package/arcade/Voxel.js +1 -1
  8. package/arcade/arcade.js +1 -1
  9. package/arcade/arcadeAsyncRuntime.js +1 -1
  10. package/arcade/arcadeCompiler.js +1 -1
  11. package/arcade/arcadeRuntime.js +1 -1
  12. package/arcade/containerUtils.js +1 -1
  13. package/arcade/debug.js +1 -1
  14. package/arcade/deepClone.js +1 -1
  15. package/arcade/featureSetUtils.js +1 -1
  16. package/arcade/featureset/actions/GroupBy.js +1 -1
  17. package/arcade/featureset/actions/OrderBy.js +1 -1
  18. package/arcade/functions/convertdirection.js +1 -1
  19. package/arcade/functions/date.js +1 -1
  20. package/arcade/functions/feature.js +1 -1
  21. package/arcade/functions/featuresetbase.js +1 -1
  22. package/arcade/functions/featuresetgeom.js +1 -1
  23. package/arcade/functions/featuresetstats.js +1 -1
  24. package/arcade/functions/featuresetstring.js +1 -1
  25. package/arcade/functions/fieldStats.js +1 -1
  26. package/arcade/functions/geomasync.js +1 -1
  27. package/arcade/functions/geometry.js +1 -1
  28. package/arcade/functions/geomsync.js +1 -1
  29. package/arcade/functions/knowledgegraph.js +1 -1
  30. package/arcade/functions/maths.js +1 -1
  31. package/arcade/functions/stats.js +1 -1
  32. package/arcade/functions/string.js +1 -1
  33. package/arcade/functions/track.js +1 -1
  34. package/arcade/geometry/constructors.js +1 -1
  35. package/arcade/geometry/functions.js +1 -1
  36. package/arcade/geometry/operators.js +1 -1
  37. package/arcade/languageUtils.js +1 -1
  38. package/assets/components/assets/icon/orientedImageryFullSuperimpose16.json +1 -0
  39. package/assets/components/assets/icon/orientedImageryFullSuperimpose24.json +1 -0
  40. package/assets/components/assets/icon/orientedImageryFullSuperimpose32.json +1 -0
  41. package/assets/components/assets/icon/orientedImageryHalfSuperimpose16.json +1 -0
  42. package/assets/components/assets/icon/orientedImageryHalfSuperimpose24.json +1 -0
  43. package/assets/components/assets/icon/orientedImageryHalfSuperimpose32.json +1 -0
  44. package/assets/components/assets/icon/orientedImagerySceneOnly16.json +1 -0
  45. package/assets/components/assets/icon/orientedImagerySceneOnly24.json +1 -0
  46. package/assets/components/assets/icon/orientedImagerySceneOnly32.json +1 -0
  47. package/assets/components/assets/icon/parquetFeatureLayer16.json +1 -0
  48. package/assets/components/assets/icon/parquetFeatureLayer24.json +1 -0
  49. package/assets/components/assets/icon/parquetFeatureLayer32.json +1 -0
  50. package/assets/esri/core/workers/RemoteClient.js +1 -1
  51. package/assets/esri/core/workers/chunks/013708f40f811158d42c.js +1 -0
  52. package/assets/esri/core/workers/chunks/{544174c33628846284a1.js → 07a242ea908aa8e2ba28.js} +1 -1
  53. package/assets/esri/core/workers/chunks/{7e0daf0864005cdd63c5.js → 0a780a883abfcdf0b900.js} +1 -1
  54. package/assets/esri/core/workers/chunks/0d9d33f29124d464a4cb.js +1 -0
  55. package/assets/esri/core/workers/chunks/{325bfac7cfa28a6d568f.js → 0e774f14ba274832f390.js} +1 -1
  56. package/assets/esri/core/workers/chunks/119d352dd586f2bb61ec.js +1 -0
  57. package/assets/esri/core/workers/chunks/{8cbaaea72f4ca2f023be.js → 129fdd1636e67997337c.js} +1 -1
  58. package/assets/esri/core/workers/chunks/130784a27661de6b52a5.js +1 -0
  59. package/assets/esri/core/workers/chunks/{942e527b9b92999886c7.js → 145364aa20b4435294c2.js} +1 -1
  60. package/assets/esri/core/workers/chunks/14c6419568d8a7a15cd6.js +1 -0
  61. package/assets/esri/core/workers/chunks/153dc2a0b08a0e44a881.js +1 -0
  62. package/assets/esri/core/workers/chunks/{9a3344f1dd22c425b8cc.js → 1595dc499a06b23b6a96.js} +1 -1
  63. package/assets/esri/core/workers/chunks/{6c97b5bc408f051606d2.js → 166a0df6e37627e18976.js} +1 -1
  64. package/assets/esri/core/workers/chunks/168be2eac0fa3c67ae27.js +1 -0
  65. package/assets/esri/core/workers/chunks/{cf3036711bbe6095eaed.js → 16b90d8f628a412ba4ba.js} +1 -1
  66. package/assets/esri/core/workers/chunks/{aea8e0577fb48d5c9577.js → 181e948d076a9a7aae8a.js} +1 -1
  67. package/assets/esri/core/workers/chunks/{176e676879666f784599.js → 18e7784f13a57a75585a.js} +1 -1
  68. package/assets/esri/core/workers/chunks/{d66f68a811c90739951a.js → 1c029b03ed836f393a50.js} +1 -1
  69. package/assets/esri/core/workers/chunks/{e6e15e9e890b864fb395.js → 1c1515e020e32e177b54.js} +1 -1
  70. package/assets/esri/core/workers/chunks/{0aaee272520c6e5bb617.js → 1c64e10f966e26af6fed.js} +1 -1
  71. package/assets/esri/core/workers/chunks/{b5d0898406c7d6e6a717.js → 1dacc0b64bd27ce2de3a.js} +1 -1
  72. package/assets/esri/core/workers/chunks/{a0b6eef4890cc61609dc.js → 1ddbf5f507ac153234be.js} +1 -1
  73. package/assets/esri/core/workers/chunks/1eeb1edca0ad5db6917c.js +1 -0
  74. package/assets/esri/core/workers/chunks/1f55d60d3adc31283296.js +1 -0
  75. package/assets/esri/core/workers/chunks/{425c04b26a6ec6d04b08.js → 201007cf1a91e2b126fc.js} +1 -1
  76. package/assets/esri/core/workers/chunks/20d0adc678f11981059c.js +1 -0
  77. package/assets/esri/core/workers/chunks/20e2d11f6de438ee883e.js +1 -0
  78. package/assets/esri/core/workers/chunks/{696967c8c6f53b94f851.js → 227eff8aa4a6f5f03bc2.js} +1 -1
  79. package/assets/esri/core/workers/chunks/24646a1176ce34039155.js +1 -0
  80. package/assets/esri/core/workers/chunks/24647e7424798dccdaf5.js +1 -0
  81. package/assets/esri/core/workers/chunks/{7601408e242dca1d25bd.js → 249616ea2d90d40a8299.js} +1 -1
  82. package/assets/esri/core/workers/chunks/{55d168c13491fcdfb284.js → 24eaf1349ffe10e616e6.js} +1 -1
  83. package/assets/esri/core/workers/chunks/{9250615c78f8570a9cda.js → 29615df388a0df022d8c.js} +1 -1
  84. package/assets/esri/core/workers/chunks/{a320c69bc7528ff0d0cf.js → 2c8584ec1c3c9fd5aba2.js} +1 -1
  85. package/assets/esri/core/workers/chunks/{6ca81e34854ce7ec6f6e.js → 2ce845c990bb4d701362.js} +1 -1
  86. package/assets/esri/core/workers/chunks/2d374cc8c54a722a7afe.js +1 -0
  87. package/assets/esri/core/workers/chunks/{0bd2b035c6ee89c725f9.js → 31442f25d550ead58fc4.js} +1 -1
  88. package/assets/esri/core/workers/chunks/319ff04282dc8ae38b56.js +2 -0
  89. package/assets/esri/core/workers/chunks/{8b8b63be961eb73250a0.js → 32323b0e0fcecd8f640e.js} +1 -1
  90. package/assets/esri/core/workers/chunks/33b4f5dfe1a16b59b010.js +1 -0
  91. package/assets/esri/core/workers/chunks/3402fb9c596b582311c7.js +1 -0
  92. package/assets/esri/core/workers/chunks/359d3acb3953e64e5a78.js +1 -0
  93. package/assets/esri/core/workers/chunks/388e71e8f2ec41bfa5a9.js +1 -0
  94. package/assets/esri/core/workers/chunks/{dd58bc675b85b4d90afa.js → 39974d1e5d3820ef1680.js} +1 -1
  95. package/assets/esri/core/workers/chunks/3a6678ee9990d7e83e15.js +1 -0
  96. package/assets/esri/core/workers/chunks/3aacaa1be5efeac23a37.js +1 -0
  97. package/assets/esri/core/workers/chunks/{2562d8905bd05ef6fd07.js → 3b3986276e70297d573b.js} +1 -1
  98. package/assets/esri/core/workers/chunks/{d19600336cb6023d3e34.js → 3b765a8cac9e92f644f2.js} +1 -1
  99. package/assets/esri/core/workers/chunks/{b7a0a5b895ddd2d3d038.js → 3df5394b17e9659ecb8f.js} +1 -1
  100. package/assets/esri/core/workers/chunks/3e012cd3ca4451f89f59.js +1 -0
  101. package/assets/esri/core/workers/chunks/3e3134e4bc34d4e07179.js +30 -0
  102. package/assets/esri/core/workers/chunks/{c06ae3a6ecc4a4fc67b2.js → 40910c69307e2d2d3f28.js} +1 -1
  103. package/assets/esri/core/workers/chunks/428561df7ba6f02e2d80.js +1 -0
  104. package/assets/esri/core/workers/chunks/{0881929a4a457f94f317.js → 4301cb9670fa7c907460.js} +1 -1
  105. package/assets/esri/core/workers/chunks/{299b4eecd0288348c971.js → 45323491f9005629c602.js} +1 -1
  106. package/assets/esri/core/workers/chunks/46d0a25d33b5b328cfce.js +1 -0
  107. package/assets/esri/core/workers/chunks/46d3ddf62fa7a76dd57d.js +1 -0
  108. package/assets/esri/core/workers/chunks/{51816d79c6be15e4bfcf.js → 46fbd519cc1a37923bfc.js} +1 -1
  109. package/assets/esri/core/workers/chunks/{d9d716bfd0aab30b6caf.js → 47656ec12401e53f4bd3.js} +1 -1
  110. package/assets/esri/core/workers/chunks/{c0d7e4afbad0b20e2502.js → 47dd2bfecc5c4b5f10f0.js} +1 -1
  111. package/assets/esri/core/workers/chunks/{f7698c855800e0af3038.js → 4845df00f6ebcce6ea3e.js} +1 -1
  112. package/assets/esri/core/workers/chunks/49f6c9e9980b8c624fd7.js +1 -0
  113. package/assets/esri/core/workers/chunks/4a23b27bfbcfa08fd9a7.js +1 -0
  114. package/assets/esri/core/workers/chunks/{8b5ee6be52e892fbd325.js → 4a9dd9f8aa98882218f3.js} +1 -1
  115. package/assets/esri/core/workers/chunks/4c54cb80c4dc9bbbd395.js +1 -0
  116. package/assets/esri/core/workers/chunks/{7c292f7b181f3b93352b.js → 4ef53455c8bc6efee80e.js} +1 -1
  117. package/assets/esri/core/workers/chunks/50dc9893e13396f5e35d.js +2 -0
  118. package/assets/esri/core/workers/chunks/{169c9eb6cd000e067c4b.js → 51ee6102f5f4840a5b47.js} +1 -1
  119. package/assets/esri/core/workers/chunks/{a0296e6d6c37b861c5fb.js → 5359ff9492383c5bd9b1.js} +1 -1
  120. package/assets/esri/core/workers/chunks/{728ad5bbbcbf88d6249f.js → 537c5dd4cd0a067199d1.js} +1 -1
  121. package/assets/esri/core/workers/chunks/54d7f07e3348ddb6d9a2.js +1 -0
  122. package/assets/esri/core/workers/chunks/{48440a071a37590846ff.js → 54dad475dc806a38c287.js} +1 -1
  123. package/assets/esri/core/workers/chunks/5500dc39e11a0057ae16.js +1 -0
  124. package/assets/esri/core/workers/chunks/{2b2a09ce14d00b4b1187.js → 58155f24f8ed6aca7a21.js} +1 -1
  125. package/assets/esri/core/workers/chunks/{224a9f39876aa426a9bc.js → 5838f46d341d2fde42ee.js} +1 -1
  126. package/assets/esri/core/workers/chunks/{47d49777a3b3cd8e18bd.js → 58994b6bfcda5f2ada80.js} +1 -1
  127. package/assets/esri/core/workers/chunks/592a599f514de373dead.js +1 -0
  128. package/assets/esri/core/workers/chunks/{1ff61d8a8ea060e78b83.js → 5aba23584e0b230c75f5.js} +1 -1
  129. package/assets/esri/core/workers/chunks/{566c36032b456ec5b5d7.js → 5abe34bb0110694f7b42.js} +1 -1
  130. package/assets/esri/core/workers/chunks/{7dc2c21d61ba66a3f461.js → 5b238f9c345f10c5c2fa.js} +1 -1
  131. package/assets/esri/core/workers/chunks/5f9bacee6fbf9ac1bca0.js +1 -0
  132. package/assets/esri/core/workers/chunks/60915a3708a34da1977e.js +1 -0
  133. package/assets/esri/core/workers/chunks/62206d5d497b95fc4caf.js +1 -0
  134. package/assets/esri/core/workers/chunks/{69a1cbf0af059548f96a.js → 64daa2a714e59d22bbd4.js} +1 -1
  135. package/assets/esri/core/workers/chunks/65520a443e3811255bea.js +1 -0
  136. package/assets/esri/core/workers/chunks/6637f19b82555738a1d5.js +1 -0
  137. package/assets/esri/core/workers/chunks/{7c86099ed17f420b0489.js → 67ebde34377f98d17cda.js} +1 -1
  138. package/assets/esri/core/workers/chunks/6af77529c977d034d287.js +1 -0
  139. package/assets/esri/core/workers/chunks/{cdef9c3f80588ae45a04.js → 6c9933f948efd7923aa1.js} +1 -1
  140. package/assets/esri/core/workers/chunks/{fe2325efd0d8ad8369ed.js → 6cab67fc7044ee9b863b.js} +1 -1
  141. package/assets/esri/core/workers/chunks/{f239a8ecad8b692d5eaa.js → 6db274f6767102a39021.js} +1 -1
  142. package/assets/esri/core/workers/chunks/{aea384f4d88121da8f54.js → 6f0341cfa4c68e6e60b3.js} +1 -1
  143. package/assets/esri/core/workers/chunks/737de87bfb9b5f5a9c6c.js +1 -0
  144. package/assets/esri/core/workers/chunks/{558606a1af22e4a0d536.js → 73c355b895fd6a34fcb8.js} +1 -1
  145. package/assets/esri/core/workers/chunks/{85bba0db8a7a5fc1be44.js → 7601278ebced0c0c31cf.js} +1 -1
  146. package/assets/esri/core/workers/chunks/{b09ae8eb5e97fb27382f.js → 76589434d573111a8fb4.js} +1 -1
  147. package/assets/esri/core/workers/chunks/{1f3a676e7a4eae5ad566.js → 767ea5b455b3823afd09.js} +1 -1
  148. package/assets/esri/core/workers/chunks/79f2d4b3af5776ec2045.js +1 -0
  149. package/assets/esri/core/workers/chunks/{c8dedc010fcc2382af24.js → 7b564226def99fcf79d8.js} +1 -1
  150. package/assets/esri/core/workers/chunks/7cadb872b9ca96eedca5.js +1 -0
  151. package/assets/esri/core/workers/chunks/7ed3d6c72f23c628df3b.js +1 -0
  152. package/assets/esri/core/workers/chunks/{ed939fd5d3827a3f70e0.js → 81e3bd1a0634ddc2b833.js} +1 -1
  153. package/assets/esri/core/workers/chunks/8244b74e9c3a30d8d2f6.js +2 -0
  154. package/assets/esri/core/workers/chunks/{062aadf426fe97a76bbb.js → 8351012ceb466f01b8fd.js} +1 -1
  155. package/assets/esri/core/workers/chunks/8407c91cce31e087b41b.js +1 -0
  156. package/assets/esri/core/workers/chunks/{24acf3dd541347c2b297.js → 882ee7ed8a3a0215f9b9.js} +1 -1
  157. package/assets/esri/core/workers/chunks/{98b4408e12684e37b395.js → 8a48a6760c33ed50b650.js} +1 -1
  158. package/assets/esri/core/workers/chunks/8bdca6f06c8b5fedd917.js +1 -0
  159. package/assets/esri/core/workers/chunks/8c5a41ae68775bac3446.js +1 -0
  160. package/assets/esri/core/workers/chunks/8e1865392681d390ab2e.js +1 -0
  161. package/assets/esri/core/workers/chunks/{7a823bb1b72764897dd5.js → 8f94c90fdb0333da2d0f.js} +1 -1
  162. package/assets/esri/core/workers/chunks/9482a6d7baa24bbf5693.js +1 -0
  163. package/assets/esri/core/workers/chunks/94fac056e14caed09682.js +1 -0
  164. package/assets/esri/core/workers/chunks/{f931d560f3f14598f454.js → 9dcfaca1f4fa8c8026ac.js} +1 -1
  165. package/assets/esri/core/workers/chunks/{5570d47533efab56c732.js → 9f4681713f03365a2a53.js} +1 -1
  166. package/assets/esri/core/workers/chunks/a0fa60a24e58f7a47e41.js +1 -0
  167. package/assets/esri/core/workers/chunks/{b32a13972cb3de652339.js → a320998f18922a35899f.js} +1 -1
  168. package/assets/esri/core/workers/chunks/{aa55923ca939a0d4606c.js → a3a28c4887f802e8d96d.js} +1 -1
  169. package/assets/esri/core/workers/chunks/a806ac351ef5da04c250.js +1 -0
  170. package/assets/esri/core/workers/chunks/{8795c4895df229cb471c.js → ab94c9f62462d7a98f6a.js} +1 -1
  171. package/assets/esri/core/workers/chunks/{2a8f198f6c272f92bad5.js → abdb05754c50776c3edd.js} +1 -1
  172. package/assets/esri/core/workers/chunks/{988e91cc6cf88c34c2de.js → ace1899a8e5162b4018d.js} +1 -1
  173. package/assets/esri/core/workers/chunks/ad488985824fbb830ed6.js +1 -0
  174. package/assets/esri/core/workers/chunks/af8ef6701631ed5e5b80.js +1 -0
  175. package/assets/esri/core/workers/chunks/{a95398214e530f896a2d.js → af96cbc4fb7bef726635.js} +1 -1
  176. package/assets/esri/core/workers/chunks/b08a1255dacf6cfcf139.js +640 -0
  177. package/assets/esri/core/workers/chunks/b098469e0010a6b44df9.js +1 -0
  178. package/assets/esri/core/workers/chunks/{170f8dc97614e9609443.js → b0ac4b0b7aec70cfe6eb.js} +1 -1
  179. package/assets/esri/core/workers/chunks/{4e97c01698ef36cc5e0e.js → b1f1271434af302938e8.js} +1 -1
  180. package/assets/esri/core/workers/chunks/{2f925a424b60b4a5e8e5.js → b803e7b0d489bb628d72.js} +1 -1
  181. package/assets/esri/core/workers/chunks/bb24972603fb35dd8dcf.js +1 -0
  182. package/assets/esri/core/workers/chunks/bca6abc185dedec0f41b.js +1 -0
  183. package/assets/esri/core/workers/chunks/{79b64a52ff57c40c7800.js → bf706a5d065a357de51b.js} +1 -1
  184. package/assets/esri/core/workers/chunks/bfbd1ca28ed2f263e58f.js +1 -0
  185. package/assets/esri/core/workers/chunks/c1189316d24fb4cdb2a0.js +1 -0
  186. package/assets/esri/core/workers/chunks/c216cd5d6b5d4fe4bab3.js +2 -0
  187. package/assets/esri/core/workers/chunks/{d21bf107698fef03125e.js → c27cb2a83a1d2e004501.js} +1 -1
  188. package/assets/esri/core/workers/chunks/c44be4aaba829e6d149d.js +1 -0
  189. package/assets/esri/core/workers/chunks/c83fea0d0ebd0d8e43fd.js +1 -0
  190. package/assets/esri/core/workers/chunks/ca4245414d8ecd217f9d.js +1 -0
  191. package/assets/esri/core/workers/chunks/ca7d4d76a6bf5a3046cd.js +1 -0
  192. package/assets/esri/core/workers/chunks/cb8c4d8334fab9bd9a04.js +1 -0
  193. package/assets/esri/core/workers/chunks/{7a3b05e25de2ff150f38.js → cc479daacd2cf715baa8.js} +1 -1
  194. package/assets/esri/core/workers/chunks/{c1ffb879e0283fb2815f.js → cc62e5095e328bed3e01.js} +1 -1
  195. package/assets/esri/core/workers/chunks/{8d4881c879c86b353e08.js → cda99b543a0e1979346c.js} +1 -1
  196. package/assets/esri/core/workers/chunks/{a53a3e5548fef65a2710.js → cf826787ab8d4b27ad80.js} +1 -1
  197. package/assets/esri/core/workers/chunks/{d6d87bfa9e6d233385a9.js → d1ac98f48bb6d43d97c8.js} +2 -2
  198. package/assets/esri/core/workers/chunks/{1252da05832e576d4def.js → d1ccc5f2d8892328ab01.js} +2 -2
  199. package/assets/esri/core/workers/chunks/d1d135a54233092ad637.js +1 -0
  200. package/assets/esri/core/workers/chunks/d35c475f004367e333eb.js +1 -0
  201. package/assets/esri/core/workers/chunks/{b44f1d08784f2e50c853.js → d3af51a6d9014ff46170.js} +1 -1
  202. package/assets/esri/core/workers/chunks/d561dc933d8fe1672d85.js +1 -0
  203. package/assets/esri/core/workers/chunks/d56780290e0218d3e9de.js +1 -0
  204. package/assets/esri/core/workers/chunks/{bbaf8baa3ca6195467e4.js → d64613209a9eb1eafb11.js} +1 -1
  205. package/assets/esri/core/workers/chunks/{cb26966cc205bd338c76.js → d81291dac1932350eccd.js} +1 -1
  206. package/assets/esri/core/workers/chunks/dddb57ff637643ccfc87.js +1 -0
  207. package/assets/esri/core/workers/chunks/{0ded5c114cbb7574f2f4.js → dfeddb7b17fa9eaae64c.js} +1 -1
  208. package/assets/esri/core/workers/chunks/e178cd0e9178d6716410.js +1 -0
  209. package/assets/esri/core/workers/chunks/{7f54d3835c0ce573a942.js → e25bcfdd8f20f8a08b19.js} +1 -1
  210. package/assets/esri/core/workers/chunks/{e0bd550b10dd402c48f1.js → e38836bfcc7a15a2fd1f.js} +1 -1
  211. package/assets/esri/core/workers/chunks/e3b713a590cce6245ee2.js +1 -0
  212. package/assets/esri/core/workers/chunks/{a40003dfe3c081d1a1d2.js → e638391801ad83fe4a68.js} +1 -1
  213. package/assets/esri/core/workers/chunks/{0b76534b60014d74ecb9.js → e7712467db46e1385cf4.js} +1 -1
  214. package/assets/esri/core/workers/chunks/e785f76c1a75cb1d1e1f.js +1 -0
  215. package/assets/esri/core/workers/chunks/{76a9b64fd573775bf6cd.js → e82488b9b3bb0c1dedb4.js} +1 -1
  216. package/assets/esri/core/workers/chunks/{15fa8b5b472131aaa68e.js → e92698f50089484c4901.js} +1 -1
  217. package/assets/esri/core/workers/chunks/e9dcc3e9dbafe9bbed84.js +1 -0
  218. package/assets/esri/core/workers/chunks/ed2cb60e4f17f46fb78d.js +1 -0
  219. package/assets/esri/core/workers/chunks/edcde00495727d506c46.js +1 -0
  220. package/assets/esri/core/workers/chunks/{86a767c2b0b1e37ff493.js → eedee0af459e6b8a6116.js} +1 -1
  221. package/assets/esri/core/workers/chunks/{009250a7bded12099dd1.js → f1fb2f12371f4c562079.js} +1 -1
  222. package/assets/esri/core/workers/chunks/{466c250537415f12eb59.js → f31a8e76f1dde23c0900.js} +1 -1
  223. package/assets/esri/core/workers/chunks/f3dfe1bd1146a6927407.js +1 -0
  224. package/assets/esri/core/workers/chunks/{6b5d2df9123dfe7e00b3.js → f563dd6cace047108b3c.js} +1 -1
  225. package/assets/esri/core/workers/chunks/{6a53c8db554be55c5885.js → f5a2c28dc26c065ea355.js} +31 -21
  226. package/assets/esri/core/workers/chunks/f60292d97bcdbf19165b.js +1 -0
  227. package/assets/esri/core/workers/chunks/f79bd469b25099a31274.js +1 -0
  228. package/assets/esri/core/workers/chunks/f9e22cf59e2e2782d70f.js +1 -0
  229. package/assets/esri/core/workers/chunks/fce7995c26953bfd8d3d.js +1 -0
  230. package/assets/esri/core/workers/chunks/{e227ae2c1a63e30e62d9.js → ff48334528d2554db4fe.js} +1 -1
  231. package/assets/esri/themes/base/widgets/_BatchAttributeForm.scss +18 -14
  232. package/assets/esri/themes/base/widgets/_Grid.scss +3 -3
  233. package/assets/esri/themes/dark/main.css +1 -1
  234. package/assets/esri/themes/light/main.css +1 -1
  235. package/assets/esri/themes/light/view.css +1 -1
  236. package/chunks/AtmosphereCompositing.glsl.js +1 -1
  237. package/chunks/Bufferer-Dw9Qi4T1.js +1 -1
  238. package/chunks/Centroid-DZi-eb9F.js +1 -1
  239. package/chunks/Clouds.glsl.js +1 -1
  240. package/chunks/Compositing.glsl.js +1 -1
  241. package/chunks/CutFillComposition.glsl.js +1 -1
  242. package/chunks/CutFillDepth.glsl.js +1 -1
  243. package/chunks/CutFillMask.glsl.js +1 -1
  244. package/chunks/CutFillReduction.glsl.js +1 -1
  245. package/chunks/CutFillTargetDepth.glsl.js +1 -1
  246. package/chunks/Distance2DCalculator-CXhBP-8I.js +1 -1
  247. package/chunks/Envelope.js +1 -1
  248. package/chunks/Envelope2D.js +1 -1
  249. package/chunks/FlatGeometry.js +1 -1
  250. package/chunks/FocusAreaColor.glsl.js +1 -1
  251. package/chunks/FocusAreaMask.glsl.js +1 -1
  252. package/chunks/Fog.glsl.js +1 -1
  253. package/chunks/GaussianSplat.glsl.js +1 -1
  254. package/chunks/GaussianSplatShadow.glsl.js +1 -1
  255. package/chunks/GeodeticDistanceCalculator-Ce-woMPw.js +1 -1
  256. package/chunks/GeodeticUtils.js +1 -1
  257. package/chunks/Geometry.js +1 -1
  258. package/chunks/GeometryCleaner-BEJM7I4l.js +1 -1
  259. package/chunks/GlobalIllumination.glsl.js +20 -19
  260. package/chunks/GlobalIlluminationBlur.glsl.js +15 -12
  261. package/chunks/GlobalIlluminationUpscale.glsl.js +4 -3
  262. package/chunks/GlowBlur.glsl.js +1 -1
  263. package/chunks/GlowComposition.glsl.js +1 -1
  264. package/chunks/HazeCompositing.glsl.js +1 -1
  265. package/chunks/HighlightBlur.glsl.js +1 -1
  266. package/chunks/HighlightDownsample.glsl.js +1 -1
  267. package/chunks/Magnifier.glsl.js +1 -1
  268. package/chunks/MultiPathImpl.js +1 -1
  269. package/chunks/NoiseTextureAtlas.glsl.js +1 -1
  270. package/chunks/OITBlend.glsl.js +2 -2
  271. package/chunks/OITBlendEmission.glsl.js +1 -1
  272. package/chunks/OITDimOpaque.glsl.js +1 -1
  273. package/chunks/OperatorClip.js +1 -1
  274. package/chunks/OperatorCrosses.js +1 -1
  275. package/chunks/OperatorCut.js +1 -1
  276. package/chunks/OperatorDensify.js +1 -1
  277. package/chunks/OperatorGeneralize.js +1 -1
  278. package/chunks/OperatorGeodesicBuffer.js +1 -1
  279. package/chunks/OperatorGeodeticArea.js +1 -1
  280. package/chunks/OperatorGeodeticDensifyByLength.js +1 -1
  281. package/chunks/OperatorGeodeticDistance.js +1 -1
  282. package/chunks/OperatorGeodeticLength.js +1 -1
  283. package/chunks/OperatorIntegrate.js +1 -1
  284. package/chunks/OperatorIntersects.js +1 -1
  285. package/chunks/OperatorMultiPartToSinglePart.js +1 -1
  286. package/chunks/OperatorOverlaps.js +1 -1
  287. package/chunks/OperatorProject.js +1 -1
  288. package/chunks/OperatorProximity.js +1 -1
  289. package/chunks/OperatorProximityGeodesic.js +1 -1
  290. package/chunks/OperatorShapePreservingDensify.js +1 -1
  291. package/chunks/OperatorShapePreservingLength.js +1 -1
  292. package/chunks/OperatorShapePreservingProject.js +1 -1
  293. package/chunks/OperatorSimplifyOGC.js +1 -1
  294. package/chunks/OperatorTouches.js +1 -1
  295. package/chunks/OperatorWithin.js +1 -1
  296. package/chunks/OverlayCompositing.glsl.js +1 -1
  297. package/chunks/Point2D.js +1 -1
  298. package/chunks/PointRenderer.glsl.js +1 -1
  299. package/chunks/ProjectionTransformation.js +1 -1
  300. package/chunks/RasterColorizer.glsl.js +1 -1
  301. package/chunks/ShadowCastAccumulate.glsl.js +1 -1
  302. package/chunks/ShadowCastVisualize.glsl.js +2 -2
  303. package/chunks/SideCalculator2D-BNwb5gvz.js +1 -1
  304. package/chunks/SimpleAtmosphere.glsl.js +1 -1
  305. package/chunks/SpatialReference.js +1 -1
  306. package/chunks/Terrain.glsl.js +1 -1
  307. package/chunks/Texture.glsl.js +1 -1
  308. package/chunks/Transformation2D.js +1 -1
  309. package/chunks/Viewshed.glsl.js +1 -1
  310. package/chunks/aiServices.js +1 -1
  311. package/chunks/arcade.js +1 -1
  312. package/chunks/array.js +1 -1
  313. package/chunks/boundedPlane.js +1 -1
  314. package/chunks/bundle.js +1 -1
  315. package/chunks/bundle2.js +1 -1
  316. package/chunks/constants.js +1 -1
  317. package/chunks/containsOperator.js +1 -1
  318. package/chunks/disjointOperator.js +1 -1
  319. package/chunks/distanceOperator.js +1 -1
  320. package/chunks/equalsOperator.js +1 -1
  321. package/chunks/languageUtils.js +1 -1
  322. package/chunks/pe.js +1 -1
  323. package/chunks/persistableUrlUtils.js +1 -1
  324. package/chunks/relateOperator.js +1 -1
  325. package/chunks/symmetricDifferenceOperator.js +1 -1
  326. package/chunks/unionOperator.js +1 -1
  327. package/chunks/vec2.js +1 -1
  328. package/chunks/vec3.js +1 -1
  329. package/chunks/vec4.js +1 -1
  330. package/config.js +1 -1
  331. package/core/accessorSupport/decorators/persistable.js +1 -1
  332. package/core/mapCollectionUtils.js +1 -1
  333. package/core/quantityFormatUtils.js +1 -1
  334. package/core/unitFormatUtils.js +1 -1
  335. package/editing/sharedTemplates/templateDefinitions/FeatureTemplateDefinition.js +1 -1
  336. package/editing/sharedTemplates/templateDefinitions/GroupTemplateDefinition.js +1 -1
  337. package/editing/sharedTemplates/templateDefinitions/PresetTemplateDefinition.js +1 -1
  338. package/effects/FocusArea.js +1 -1
  339. package/geometry/Circle.js +1 -1
  340. package/geometry/coordinateFormatter.js +1 -1
  341. package/geometry/geodesicUtils.js +1 -1
  342. package/geometry/operators/extendOperator.js +1 -1
  343. package/geometry/operators/gx/geodeticUtils.js +1 -1
  344. package/geometry/operators/gx/operatorAffineTransform.js +1 -1
  345. package/geometry/operators/gx/operatorAlphaShape.js +1 -1
  346. package/geometry/operators/gx/operatorAutoComplete.js +1 -1
  347. package/geometry/operators/gx/operatorBoundary.js +1 -1
  348. package/geometry/operators/gx/operatorBuffer.js +1 -1
  349. package/geometry/operators/gx/operatorConvexHull.js +1 -1
  350. package/geometry/operators/gx/operatorDifference.js +1 -1
  351. package/geometry/operators/gx/operatorGeodesicBuffer.js +1 -1
  352. package/geometry/operators/gx/operatorGeodeticArea.js +1 -1
  353. package/geometry/operators/gx/operatorGeodeticDensify.js +1 -1
  354. package/geometry/operators/gx/operatorGeodeticDistance.js +1 -1
  355. package/geometry/operators/gx/operatorGeodeticLength.js +1 -1
  356. package/geometry/operators/gx/operatorGraphicBuffer.js +1 -1
  357. package/geometry/operators/gx/operatorIntersection.js +1 -1
  358. package/geometry/operators/gx/operatorLabelPoint.js +1 -1
  359. package/geometry/operators/gx/operatorLinesToPolygons.js +1 -1
  360. package/geometry/operators/gx/operatorLocateBetween.js +1 -1
  361. package/geometry/operators/gx/operatorMinimumBoundingCircle.js +1 -1
  362. package/geometry/operators/gx/operatorOffset.js +1 -1
  363. package/geometry/operators/gx/operatorPolygonOverlay.js +1 -1
  364. package/geometry/operators/gx/operatorPolygonSlicer.js +1 -1
  365. package/geometry/operators/gx/operatorProject.js +1 -1
  366. package/geometry/operators/gx/operatorProximityGeodesic.js +1 -1
  367. package/geometry/operators/gx/operatorShapePreservingProject.js +1 -1
  368. package/geometry/operators/gx/operatorSimplify.js +1 -1
  369. package/geometry/operators/gx/operatorSinglePartToMultiPart.js +1 -1
  370. package/geometry/operators/gx/operatorSymmetricDifference.js +1 -1
  371. package/geometry/operators/gx/operatorUnion.js +1 -1
  372. package/geometry/operators/isNearOperator.js +1 -1
  373. package/geometry/operators/json/containsOperator.js +1 -1
  374. package/geometry/operators/json/disjointOperator.js +1 -1
  375. package/geometry/operators/locateBetweenOperator.js +1 -1
  376. package/geometry/operators/offsetOperator.js +1 -1
  377. package/geometry/operators/reshapeOperator.js +1 -1
  378. package/geometry/operators/support/apiConverter.js +1 -1
  379. package/geometry/operators/support/geographicTransformationUtils.js +1 -1
  380. package/geometry/operators/support/initNoPeFactory.js +1 -1
  381. package/geometry/operators/support/jsonConverter.js +1 -1
  382. package/geometry/operators/support/projectionTransformation.js +1 -1
  383. package/geometry/operators/symmetricDifferenceOperator.js +1 -1
  384. package/geometry/operators/unionOperator.js +1 -1
  385. package/geometry/pe.js +1 -1
  386. package/geometry/support/MeshTexture.js +1 -1
  387. package/geometry/support/boundedPlane.js +1 -1
  388. package/geometry/support/buffer/math/vec3.js +1 -1
  389. package/geometry/support/buffer/math/vec4.js +1 -1
  390. package/geometry/support/buffer/utils/vec2.js +1 -1
  391. package/geometry/support/coordinateSystem.js +1 -1
  392. package/geometry/support/frustum.js +1 -1
  393. package/geometry/support/meshUtils/extent.js +1 -1
  394. package/geometry/support/meshUtils/loadGLTFMesh.js +1 -1
  395. package/geometry/support/meshUtils/projection.js +1 -1
  396. package/geometry/support/meshUtils/vertexSpaceConversion.js +1 -1
  397. package/geometry/support/spatialReferenceUtils.js +1 -1
  398. package/kernel.js +1 -1
  399. package/layers/FeatureLayer.d.ts +1 -1
  400. package/layers/FeatureLayer.js +1 -1
  401. package/layers/IntegratedMesh3DTilesLayer.js +1 -1
  402. package/layers/IntegratedMeshLayer.js +1 -1
  403. package/layers/KnowledgeGraphLayer.js +1 -1
  404. package/layers/MediaLayer.d.ts +1 -1
  405. package/layers/SceneLayer.d.ts +2 -2
  406. package/layers/UnsupportedLayer.d.ts +10 -2
  407. package/layers/VectorTileLayer.d.ts +2 -2
  408. package/layers/graphics/controllers/I3SOnDemandController.js +1 -1
  409. package/layers/mixins/ArcGISImageService.js +1 -1
  410. package/layers/mixins/BlendLayer.d.ts +1 -1
  411. package/layers/orientedImagery/transformations/utils.js +1 -1
  412. package/layers/raster/functions/rasterProjectionHelper.js +1 -1
  413. package/layers/save/featureLayerUtils.js +1 -1
  414. package/layers/support/FeatureFilter.d.ts +1 -1
  415. package/layers/support/FeatureReductionSelection.d.ts +1 -1
  416. package/layers/support/ImageElement.js +1 -1
  417. package/layers/support/ParquetFilesData.js +1 -1
  418. package/layers/support/RasterJobHandler.js +1 -1
  419. package/layers/support/RasterWorker.js +1 -1
  420. package/layers/support/SceneFilter.js +1 -1
  421. package/layers/support/arcgisLayers.js +1 -1
  422. package/layers/support/fetchService.js +1 -1
  423. package/layers/support/layerUtils.js +1 -1
  424. package/layers/support/layersLoader.js +1 -1
  425. package/libs/parquet/loadParquetModule.js +1 -1
  426. package/libs/text/loadTextModule.js +1 -1
  427. package/linkChart/LinkChartProperties.js +1 -1
  428. package/package.json +3 -3
  429. package/portal/PortalItem.js +1 -1
  430. package/renderers/FlowRenderer.d.ts +2 -2
  431. package/renderers/UniqueValueRenderer.js +1 -1
  432. package/rest/support/IdentifyParameters.js +1 -1
  433. package/rest/support/IdentifyResult.js +1 -1
  434. package/smartMapping/raster/renderers/flow.d.ts +2 -2
  435. package/smartMapping/renderers/type.js +1 -1
  436. package/smartMapping/renderers/univariateColorSize.js +1 -1
  437. package/smartMapping/symbology/flow.d.ts +2 -2
  438. package/smartMapping/symbology/types.d.ts +2 -2
  439. package/support/arcadeUtils.js +1 -1
  440. package/support/persistableUrlUtils.js +1 -1
  441. package/support/revision.js +1 -1
  442. package/symbols/Symbol3D.js +1 -1
  443. package/symbols/cim/CIMSymbolDrawHelper.js +1 -1
  444. package/symbols/cim/CIMSymbolHelper.js +1 -1
  445. package/symbols/support/IconSymbol3DLayerResource.js +1 -1
  446. package/symbols/support/Symbol3DVerticalOffset.d.ts +2 -2
  447. package/symbols/support/previewSymbol2D.js +1 -1
  448. package/symbols/support/urlUtils.js +1 -1
  449. package/symbols/support/webStyleSymbolUtils.js +1 -1
  450. package/views/2d/ViewStateManager.js +1 -1
  451. package/views/2d/engine/vectorTiles/shaders/VTLBackgroundMaterial.js +1 -1
  452. package/views/2d/engine/webgl/shaderGraph/graph/glsl.js +1 -1
  453. package/views/2d/engine/webgl/shaderGraph/techniques/animated/AAnimatedPolyShader.js +1 -1
  454. package/views/2d/engine/webgl/shaderGraph/techniques/animated/AAnimatedShader.js +1 -1
  455. package/views/2d/engine/webgl/shaderGraph/techniques/animated/AnimatedFillShader.js +1 -1
  456. package/views/2d/engine/webgl/shaderGraph/techniques/animated/AnimatedLineShader.js +1 -1
  457. package/views/2d/engine/webgl/shaderGraph/techniques/animated/AnimatedMarkerShader.js +1 -1
  458. package/views/2d/engine/webgl/shaderGraph/techniques/dotDensity/DotDensityPointShader.js +1 -1
  459. package/views/2d/engine/webgl/shaderGraph/techniques/dotDensity/DotDensityPolygonShader.js +1 -1
  460. package/views/2d/engine/webgl/shaderGraph/techniques/markers/MarkerShader.js +1 -1
  461. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/AFeatureShader.js +1 -1
  462. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/BlendShader.js +1 -1
  463. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/BlitShader.js +1 -1
  464. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/BloomShader.js +1 -1
  465. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/BlurShader.js +1 -1
  466. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/ClipShader.js +1 -1
  467. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/ColorizeShader.js +1 -1
  468. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/ComplexFillShader.js +1 -1
  469. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/ComplexOutlineFillShader.js +1 -1
  470. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/DropShadowShader.js +1 -1
  471. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/FillShader.js +1 -1
  472. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/GradientFillShader.js +1 -1
  473. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/GradientStrokeShader.js +1 -1
  474. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/GridShader.js +1 -1
  475. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/HeatmapAccumulateShader.js +1 -1
  476. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/HeatmapResolveShader.js +1 -1
  477. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/LineShader.js +1 -1
  478. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/MagnifierShader.js +1 -1
  479. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/OpacityShader.js +1 -1
  480. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/OutlineFillShader.js +1 -1
  481. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/OverlayShader.js +1 -1
  482. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/PatternFillShader.js +1 -1
  483. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/PatternOutlineFillShader.js +1 -1
  484. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/PostProcessingShader.js +1 -1
  485. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/TexturedLineShader.js +1 -1
  486. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/TileDebugInfoShader.js +1 -1
  487. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/TileStencilShader.js +1 -1
  488. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/VideoScreenShader.js +1 -1
  489. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/flow/FlowImageryShader.js +1 -1
  490. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/flow/FlowParticlesShader.js +1 -1
  491. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/flow/FlowStreamlinesShader.js +1 -1
  492. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/flow/FlowUtils.js +1 -1
  493. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/hittestUtils.js +1 -1
  494. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/raster/processor/MultiRasterMixin.js +1 -1
  495. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/utils.js +1 -1
  496. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/vvUtils.js +1 -1
  497. package/views/2d/engine/webgl/shaderGraph/techniques/text/TextShader.js +1 -1
  498. package/views/2d/engine/webgl/shaders/sources/shaderRepository.js +1 -1
  499. package/views/2d/interactive/editingTools/TransformTool.js +1 -1
  500. package/views/2d/interactive/editingTools/manipulations/ScaleManipulation.js +1 -1
  501. package/views/2d/layers/BaseLayerView2D.d.ts +19 -3
  502. package/views/2d/layers/BaseLayerViewGL2D.d.ts +19 -3
  503. package/views/2d/layers/FeatureLikeLayerView2D.js +1 -1
  504. package/views/2d/layers/features/FeaturePipelineWorker.js +1 -1
  505. package/views/2d/layers/features/Processor.js +1 -1
  506. package/views/2d/layers/features/processor/AProcessorStrategy.js +1 -1
  507. package/views/2d/layers/features/processor/ClusterStrategy.js +1 -1
  508. package/views/2d/layers/features/sources/strategies/ParquetTileLoadStrategy.js +1 -1
  509. package/views/2d/layers/features/support/FeatureSetReaderParquet.js +1 -1
  510. package/views/2d/layers/graphics/GraphicsView2D.js +1 -1
  511. package/views/2d/navigation/ZoomBox.js +1 -1
  512. package/views/2d/navigation/actions/Pan.js +1 -1
  513. package/views/2d/navigation/actions/Pinch.js +1 -1
  514. package/views/2d/navigation/actions/Rotate.js +1 -1
  515. package/views/3d/analysis/AnalysisView3D.js +1 -1
  516. package/views/3d/analysis/Dimension/lengthDimensionUtils.js +1 -1
  517. package/views/3d/analysis/DirectLineMeasurement/DirectLineMeasurementVisualization.js +1 -1
  518. package/views/3d/analysis/LineOfSight/LineOfSightAuthoringUtils.js +1 -1
  519. package/views/3d/analysis/LineOfSight/LineOfSightController.js +1 -1
  520. package/views/3d/analysis/LineOfSight/LineOfSightRayIntersector.js +1 -1
  521. package/views/3d/analysis/LineOfSight/LineOfSightTool.js +1 -1
  522. package/views/3d/analysis/LineOfSightAnalysisResult.js +1 -1
  523. package/views/3d/analysis/ShadowCast/ShadowCastTooltip.js +1 -1
  524. package/views/3d/analysis/ShadowCastAnalysisView3D.js +1 -1
  525. package/views/3d/analysis/Slice/SliceController.js +1 -1
  526. package/views/3d/analysis/Slice/SliceTool.js +1 -1
  527. package/views/3d/analysis/Slice/sliceToolUtils.js +1 -1
  528. package/views/3d/analysis/Viewshed/ViewshedDrawToolRenderer.js +1 -1
  529. package/views/3d/analysis/Viewshed/ViewshedFieldOfViewManipulation.js +1 -1
  530. package/views/3d/analysis/Viewshed/ViewshedPlacementController.js +1 -1
  531. package/views/3d/analysis/Viewshed/ViewshedPlacementOperation.js +1 -1
  532. package/views/3d/analysis/Viewshed/ViewshedScaleOrientManipulation.js +1 -1
  533. package/views/3d/analysis/Viewshed/ViewshedSubTool.js +1 -1
  534. package/views/3d/analysis/Viewshed/ViewshedSubVisualization.js +1 -1
  535. package/views/3d/analysis/Viewshed/ViewshedTool.js +1 -1
  536. package/views/3d/analysis/Viewshed/ViewshedTool2.js +1 -1
  537. package/views/3d/analysis/Viewshed/placementUtils.js +1 -1
  538. package/views/3d/analysis/Viewshed/viewshedToolManipulatorUtils.js +1 -1
  539. package/views/3d/analysis/Viewshed/viewshedToolUtils.js +1 -1
  540. package/views/3d/analysis/ViewshedAnalysisView3D.js +1 -1
  541. package/views/3d/analysis/VolumeMeasurement/VolumeMeasurementCutFillController.js +1 -1
  542. package/views/3d/analysis/VolumeMeasurement/VolumeMeasurementCutFillVisualization.js +1 -1
  543. package/views/3d/analysis/VolumeMeasurement/VolumeMeasurementError.d.ts +1 -1
  544. package/views/3d/analysis/VolumeMeasurement/VolumeMeasurementResult.js +1 -1
  545. package/views/3d/analysis/VolumeMeasurement/VolumeMeasurementShiftTool.js +1 -1
  546. package/views/3d/analysis/VolumeMeasurement/VolumeMeasurementTool.js +1 -1
  547. package/views/3d/focusAreaUtils.js +1 -1
  548. package/views/3d/interactive/editingTools/transform/extentTransform/ExtentRotate.js +1 -1
  549. package/views/3d/interactive/editingTools/transform/extentTransform/ExtentScale.js +1 -1
  550. package/views/3d/interactive/editingTools/transform/extentTransform/extentUtils.js +1 -1
  551. package/views/3d/interactive/measurementTools/areaMeasurement3D/AreaMeasurement3DTool.js +1 -1
  552. package/views/3d/interactive/measurementTools/directLineMeasurement3D/DirectLineMeasurement3DTool.js +1 -1
  553. package/views/3d/layers/BuildingComponentSublayerView3D.js +1 -1
  554. package/views/3d/layers/DrapedSubView3D.js +1 -1
  555. package/views/3d/layers/FlowSubView3D.js +1 -1
  556. package/views/3d/layers/GaussianSplatLayerView3D.js +1 -1
  557. package/views/3d/layers/I3SMeshView3D.js +1 -1
  558. package/views/3d/layers/I3SMeshViewLabeler.js +1 -1
  559. package/views/3d/layers/ImagerySubView3D.js +1 -1
  560. package/views/3d/layers/IntegratedMesh3DTilesLayerView3D.js +1 -1
  561. package/views/3d/layers/PointCloudLayerView3D.js +1 -1
  562. package/views/3d/layers/PointCloudWorker.js +1 -1
  563. package/views/3d/layers/SceneLayerGraphicsView3D.js +1 -1
  564. package/views/3d/layers/SceneLayerWorker.js +1 -1
  565. package/views/3d/layers/SubView3D.js +1 -1
  566. package/views/3d/layers/graphics/Deconflictor.js +1 -1
  567. package/views/3d/layers/graphics/Graphics3DExtrudeSymbolLayer.js +1 -1
  568. package/views/3d/layers/graphics/Graphics3DMeshFillSymbolLayer.js +1 -1
  569. package/views/3d/layers/graphics/GraphicsDeconflictor.js +1 -1
  570. package/views/3d/layers/graphics/objectResourceUtils.js +1 -1
  571. package/views/3d/layers/i3s/I3SGeometryUtil.js +1 -1
  572. package/views/3d/layers/i3s/I3SIndex.js +1 -1
  573. package/views/3d/layers/i3s/I3SQueryFeatureStore.js +1 -1
  574. package/views/3d/layers/i3s/I3SViewportQueries.js +1 -1
  575. package/views/3d/layers/i3s/LayerElevationProvider.js +1 -1
  576. package/views/3d/layers/i3s/LoDUtil.js +1 -1
  577. package/views/3d/layers/i3s/PointCloudRenderer.js +1 -1
  578. package/views/3d/layers/i3s/meshUtils.js +1 -1
  579. package/views/3d/layers/support/FeatureTile.js +1 -1
  580. package/views/3d/layers/support/FeatureTileFetcher3D.js +1 -1
  581. package/views/3d/layers/support/FeatureTileMeasurements3D.js +1 -1
  582. package/views/3d/layers/support/FeatureTileVisibility3D.js +1 -1
  583. package/views/3d/layers/support/I3STreeDebugger.js +1 -1
  584. package/views/3d/layers/support/MediaLayerInteractionOptions.js +1 -1
  585. package/views/3d/layers/support/MediaLayerInteractionReshapeOptions.js +1 -1
  586. package/views/3d/layers/support/edgeUtils.js +1 -1
  587. package/views/3d/state/ScreenSizePerspective.js +1 -1
  588. package/views/3d/state/controllers/ZoomControllerGlobal.js +1 -1
  589. package/views/3d/state/controllers/ZoomStepControllerGlobal.js +1 -1
  590. package/views/3d/state/utils/navigationUtils.js +1 -1
  591. package/views/3d/support/ViewSlice.js +1 -1
  592. package/views/3d/support/dito.js +1 -1
  593. package/views/3d/support/flow/FlowSubViewExtent3D.js +1 -1
  594. package/views/3d/support/flow/FlowSubViewTiles3D.js +1 -1
  595. package/views/3d/support/gaussianSplatting/GaussianTile.js +1 -1
  596. package/views/3d/support/orientedBoundingBox.js +1 -1
  597. package/views/3d/support/sunUtils.js +1 -1
  598. package/views/3d/terrain/OverlayRenderer.js +1 -1
  599. package/views/3d/terrain/RasterColorizer.glsl.js +1 -1
  600. package/views/3d/terrain/RasterTile.js +1 -1
  601. package/views/3d/terrain/TerrainRenderer.js +1 -1
  602. package/views/3d/webgl/RenderCamera.js +1 -1
  603. package/views/3d/webgl/RenderNode.js +1 -1
  604. package/views/3d/webgl-engine/collections/Component/ComponentObjectCollection.js +1 -1
  605. package/views/3d/webgl-engine/collections/Component/DepthRange.js +1 -1
  606. package/views/3d/webgl-engine/effects/atmosphere/ChapmanAtmosphere.js +1 -1
  607. package/views/3d/webgl-engine/effects/atmosphere/LocalAtmosphere.js +1 -1
  608. package/views/3d/webgl-engine/effects/atmosphere/MarsAtmosphere.js +1 -1
  609. package/views/3d/webgl-engine/effects/atmosphere/SimpleAtmosphere.glsl.js +1 -1
  610. package/views/3d/webgl-engine/effects/blit/Blit.js +1 -1
  611. package/views/3d/webgl-engine/effects/clouds/Clouds.glsl.js +1 -1
  612. package/views/3d/webgl-engine/effects/clouds/CloudsRenderer.js +1 -1
  613. package/views/3d/webgl-engine/effects/clouds/CloudsTechnique.js +1 -1
  614. package/views/3d/webgl-engine/effects/clouds/NoiseTextureAtlas.glsl.js +1 -1
  615. package/views/3d/webgl-engine/effects/clouds/NoiseTextureAtlas.js +1 -1
  616. package/views/3d/webgl-engine/effects/clouds/NoiseTextureAtlasTechnique.js +1 -1
  617. package/views/3d/webgl-engine/effects/focusArea/FocusAreaColor.glsl.js +1 -1
  618. package/views/3d/webgl-engine/effects/focusArea/FocusAreaColorNode.js +1 -1
  619. package/views/3d/webgl-engine/effects/focusArea/FocusAreaColorTechnique.js +1 -1
  620. package/views/3d/webgl-engine/effects/focusArea/FocusAreaMask.glsl.js +1 -1
  621. package/views/3d/webgl-engine/effects/focusArea/FocusAreaMaskNode.js +1 -1
  622. package/views/3d/webgl-engine/effects/focusArea/FocusAreaMaskTechnique.js +1 -1
  623. package/views/3d/webgl-engine/effects/fog/Fog.glsl.js +1 -1
  624. package/views/3d/webgl-engine/effects/fog/Fog.js +1 -1
  625. package/views/3d/webgl-engine/effects/fog/FogTechnique.js +1 -1
  626. package/views/3d/webgl-engine/effects/globalIllumination/GlobalIllumination.glsl.js +1 -1
  627. package/views/3d/webgl-engine/effects/globalIllumination/GlobalIllumination.js +1 -1
  628. package/views/3d/webgl-engine/effects/globalIllumination/GlobalIlluminationBlur.glsl.js +1 -1
  629. package/views/3d/webgl-engine/effects/globalIllumination/GlobalIlluminationBlurTechnique.js +1 -1
  630. package/views/3d/webgl-engine/effects/globalIllumination/GlobalIlluminationColorQuantization.glsl.js +7 -0
  631. package/views/3d/webgl-engine/effects/globalIllumination/GlobalIlluminationTechnique.js +1 -1
  632. package/views/3d/webgl-engine/effects/globalIllumination/GlobalIlluminationTechniqueConfiguration.js +1 -1
  633. package/views/3d/webgl-engine/effects/globalIllumination/GlobalIlluminationUpscale.glsl.js +1 -1
  634. package/views/3d/webgl-engine/effects/globalIllumination/GlobalIlluminationUpscaleTechnique.js +1 -1
  635. package/views/3d/webgl-engine/effects/glow/Glow.js +1 -1
  636. package/views/3d/webgl-engine/effects/glow/GlowBlur.glsl.js +1 -1
  637. package/views/3d/webgl-engine/effects/glow/GlowBlurTechnique.js +1 -1
  638. package/views/3d/webgl-engine/effects/glow/GlowComposition.glsl.js +1 -1
  639. package/views/3d/webgl-engine/effects/glow/GlowCompositionTechnique.js +1 -1
  640. package/views/3d/webgl-engine/effects/haze/Haze.js +1 -1
  641. package/views/3d/webgl-engine/effects/haze/HazeCompositing.glsl.js +1 -1
  642. package/views/3d/webgl-engine/effects/haze/HazeCompositingTechnique.js +1 -1
  643. package/views/3d/webgl-engine/effects/highlight/Highlight.js +1 -1
  644. package/views/3d/webgl-engine/effects/highlight/HighlightBlur.glsl.js +1 -1
  645. package/views/3d/webgl-engine/effects/highlight/HighlightBlurTechnique.js +1 -1
  646. package/views/3d/webgl-engine/effects/highlight/HighlightDownsample.glsl.js +1 -1
  647. package/views/3d/webgl-engine/effects/highlight/HighlightDownsampleTechnique.js +1 -1
  648. package/views/3d/webgl-engine/effects/magnifier/Magnifier.glsl.js +1 -1
  649. package/views/3d/webgl-engine/effects/magnifier/Magnifier.js +1 -1
  650. package/views/3d/webgl-engine/effects/magnifier/MagnifierTechnique.js +1 -1
  651. package/views/3d/webgl-engine/effects/transparency/OITBlend.glsl.js +1 -1
  652. package/views/3d/webgl-engine/effects/transparency/OITBlend.js +1 -1
  653. package/views/3d/webgl-engine/effects/transparency/OITBlendTechnique.js +1 -1
  654. package/views/3d/webgl-engine/effects/transparency/OITDimOpaque.glsl.js +1 -1
  655. package/views/3d/webgl-engine/effects/transparency/OITDimOpaqueTechnique.js +1 -1
  656. package/views/3d/webgl-engine/lib/Compositor.js +1 -1
  657. package/views/3d/webgl-engine/lib/CutFillComputationRenderNode.js +1 -1
  658. package/views/3d/webgl-engine/lib/CutFillVisualizationRenderNode.js +1 -1
  659. package/views/3d/webgl-engine/lib/GaussianSplatRenderNode.js +1 -1
  660. package/views/3d/webgl-engine/lib/GaussianSplatShadowRenderNode.js +1 -1
  661. package/views/3d/webgl-engine/lib/ShadowAccumulator.js +1 -1
  662. package/views/3d/webgl-engine/lib/ShadowCastRenderer.js +1 -1
  663. package/views/3d/webgl-engine/lib/SliceHelper.js +1 -1
  664. package/views/3d/webgl-engine/lib/Texture.glsl.js +1 -1
  665. package/views/3d/webgl-engine/lib/TextureTechnique.js +1 -1
  666. package/views/3d/webgl-engine/lib/Viewshed.js +1 -1
  667. package/views/3d/webgl-engine/lib/edgeRendering/EdgeView.js +1 -1
  668. package/views/3d/webgl-engine/lib/intersectorUtils.js +1 -1
  669. package/views/3d/webgl-engine/materials/RibbonLineMaterial.js +1 -1
  670. package/views/3d/webgl-engine/shaders/AtmosphereCompositing.glsl.js +1 -1
  671. package/views/3d/webgl-engine/shaders/AtmosphereCompositingTechnique.js +1 -1
  672. package/views/3d/webgl-engine/shaders/Compositing.glsl.js +1 -1
  673. package/views/3d/webgl-engine/shaders/CompositingTechnique.js +1 -1
  674. package/views/3d/webgl-engine/shaders/CutFillComposition.glsl.js +1 -1
  675. package/views/3d/webgl-engine/shaders/CutFillCompositionTechnique.js +1 -1
  676. package/views/3d/webgl-engine/shaders/CutFillDepth.glsl.js +1 -1
  677. package/views/3d/webgl-engine/shaders/CutFillDepthTechnique.js +1 -1
  678. package/views/3d/webgl-engine/shaders/CutFillDepthTechniqueConfiguration.js +1 -1
  679. package/views/3d/webgl-engine/shaders/CutFillMask.glsl.js +1 -1
  680. package/views/3d/webgl-engine/shaders/CutFillMaskTechnique.js +1 -1
  681. package/views/3d/webgl-engine/shaders/CutFillReduction.glsl.js +1 -1
  682. package/views/3d/webgl-engine/shaders/CutFillReductionTechnique.js +1 -1
  683. package/views/3d/webgl-engine/shaders/CutFillReductionTechniqueConfiguration.js +1 -1
  684. package/views/3d/webgl-engine/shaders/CutFillTargetDepth.glsl.js +1 -1
  685. package/views/3d/webgl-engine/shaders/CutFillTargetDepthTechnique.js +1 -1
  686. package/views/3d/webgl-engine/shaders/GaussianSplat.glsl.js +1 -1
  687. package/views/3d/webgl-engine/shaders/GaussianSplatCompositionTechniqueConfiguration.js +1 -1
  688. package/views/3d/webgl-engine/shaders/GaussianSplatShadow.glsl.js +1 -1
  689. package/views/3d/webgl-engine/shaders/GaussianSplatShadowTechnique.js +1 -1
  690. package/views/3d/webgl-engine/shaders/GaussianSplatTechnique.js +1 -1
  691. package/views/3d/webgl-engine/shaders/OverlayCompositing.glsl.js +1 -1
  692. package/views/3d/webgl-engine/shaders/OverlayCompositingTechnique.js +1 -1
  693. package/views/3d/webgl-engine/shaders/PointRenderer.glsl.js +1 -1
  694. package/views/3d/webgl-engine/shaders/PointRendererTechnique.js +1 -1
  695. package/views/3d/webgl-engine/shaders/ShadowCastAccumulate.glsl.js +1 -1
  696. package/views/3d/webgl-engine/shaders/ShadowCastAccumulateTechnique.js +1 -1
  697. package/views/3d/webgl-engine/shaders/ShadowCastMaskTechnique.js +1 -1
  698. package/views/3d/webgl-engine/shaders/ShadowCastVisualize.glsl.js +1 -1
  699. package/views/3d/webgl-engine/shaders/ShadowCastVisualizeTechnique.js +1 -1
  700. package/views/3d/webgl-engine/shaders/Terrain.glsl.js +1 -1
  701. package/views/3d/webgl-engine/shaders/TerrainTechnique.js +1 -1
  702. package/views/3d/webgl-engine/shaders/Viewshed.glsl.js +1 -1
  703. package/views/3d/webgl-engine/shaders/ViewshedTechnique.js +1 -1
  704. package/views/SceneView.d.ts +1 -1
  705. package/views/Theme.js +1 -1
  706. package/views/View.js +1 -1
  707. package/views/analysis/ElevationProfile/ElevationProfileChart.js +1 -1
  708. package/views/analysis/ElevationProfile/ElevationProfileError.d.ts +1 -1
  709. package/views/analysis/LengthDimensionResult.js +1 -1
  710. package/views/draw/drawSurfaces.js +1 -1
  711. package/views/interactive/Tooltip.js +1 -1
  712. package/views/interactive/editGeometry/support/editPlaneUtils.js +1 -1
  713. package/views/interactive/sketch/SketchLabelOptions.js +1 -1
  714. package/views/interactive/sketch/SketchTooltipOptions.d.ts +1 -1
  715. package/views/interactive/sketch/constraints.js +1 -1
  716. package/views/interactive/sketch/normalizedPoint.js +1 -1
  717. package/views/interactive/snapping/SnappingOptions.d.ts +3 -3
  718. package/views/interactive/snapping/featureSources/featureServiceSource/tileUtils.js +1 -1
  719. package/views/interactive/support/utils.js +1 -1
  720. package/views/interactive/tooltip/components/DrawHeaderActions.js +1 -1
  721. package/views/interactive/tooltip/content/TooltipContent.js +1 -1
  722. package/views/interactive/tooltip/fields/fields.js +1 -1
  723. package/views/interactive/tooltip/fields/parsingAndFormattingUtils.js +1 -1
  724. package/views/interactive/tooltip/tooltipCommonUtils.js +1 -1
  725. package/views/layers/BuildingComponentSublayerView.js +1 -1
  726. package/views/layers/FeatureLikeLayerView.d.ts +1 -1
  727. package/views/layers/FeatureLikeLayerView.js +1 -1
  728. package/views/layers/GroupLayerView.js +1 -1
  729. package/views/layers/SceneLayerView.js +1 -1
  730. package/views/overlay/CrosshairOverlayItem.js +1 -1
  731. package/views/overlay/LineOverlayItem.js +1 -1
  732. package/views/support/angularMeasurementUtils.js +1 -1
  733. package/views/support/euclideanLengthMeasurementUtils.js +1 -1
  734. package/views/support/flow/dataUtils.js +1 -1
  735. package/views/support/geometry2dUtils.js +1 -1
  736. package/views/support/geometry3dUtils.js +1 -1
  737. package/views/webgl/RenderingContext.js +1 -1
  738. package/widgets/BatchAttributeForm/BatchAttributeFormViewModel.d.ts +30 -2
  739. package/widgets/BatchAttributeForm/BatchAttributeFormViewModel.js +1 -1
  740. package/widgets/BatchAttributeForm/css.js +1 -1
  741. package/widgets/BatchAttributeForm/inputs/FieldInput.d.ts +0 -5
  742. package/widgets/BatchAttributeForm/inputs/FieldInput.js +1 -1
  743. package/widgets/BatchAttributeForm/inputs/support/inputUtils.js +1 -1
  744. package/widgets/BatchAttributeForm/rendered-content/RelationshipDetails.js +1 -1
  745. package/widgets/BatchAttributeForm/types.d.ts +68 -1
  746. package/widgets/BatchAttributeForm.js +1 -1
  747. package/widgets/BuildingExplorer/BuildingLevelPicker/BuildingLevelPicker.js +1 -1
  748. package/widgets/BuildingExplorer/BuildingLevelPicker/constants.js +1 -1
  749. package/widgets/Daylight.d.ts +1 -1
  750. package/widgets/Directions/DirectionsViewModel.js +1 -1
  751. package/widgets/Editor/components/Settings.js +1 -1
  752. package/widgets/Editor.d.ts +8 -8
  753. package/widgets/ElevationProfile.d.ts +1 -1
  754. package/widgets/FeatureTable/ActionColumn.d.ts +1 -1
  755. package/widgets/FeatureTable/FieldColumn.d.ts +14 -1
  756. package/widgets/Histogram/HistogramViewModel.js +1 -1
  757. package/widgets/ShadowCast/ShadowCastViewModel.js +1 -1
  758. package/widgets/Sketch/SketchViewModel.d.ts +38 -38
  759. package/widgets/Sketch.d.ts +39 -39
  760. package/widgets/Sketch.js +1 -1
  761. package/widgets/Slice.d.ts +1 -1
  762. package/widgets/UtilityNetworkTrace.d.ts +1 -1
  763. package/widgets/UtilityNetworkValidateTopology.d.ts +1 -1
  764. package/widgets/support/ContingentValuesManager.js +1 -1
  765. package/assets/esri/core/workers/chunks/069459519477bb3dc91b.js +0 -1
  766. package/assets/esri/core/workers/chunks/0b445c1cf281f158c1f1.js +0 -1
  767. package/assets/esri/core/workers/chunks/0e9804ece1fd2d59751b.js +0 -1
  768. package/assets/esri/core/workers/chunks/115664cb7d7b22a315bb.js +0 -1
  769. package/assets/esri/core/workers/chunks/123a67e84ed68b96ac59.js +0 -1
  770. package/assets/esri/core/workers/chunks/163ce1be8bfe20e77f97.js +0 -1
  771. package/assets/esri/core/workers/chunks/18201119828664373165.js +0 -1
  772. package/assets/esri/core/workers/chunks/18ebf1d3ed05c8057f7d.js +0 -1
  773. package/assets/esri/core/workers/chunks/19f07c8d0f32ec889861.js +0 -1
  774. package/assets/esri/core/workers/chunks/1bd8a7f92a428eedb22e.js +0 -1
  775. package/assets/esri/core/workers/chunks/1f537c05c2f643acb5e7.js +0 -1
  776. package/assets/esri/core/workers/chunks/241aeff6afd074ce105b.js +0 -1
  777. package/assets/esri/core/workers/chunks/2855357a2c1f2ab03fb7.js +0 -1
  778. package/assets/esri/core/workers/chunks/2e8db0f05df2e38a14e1.js +0 -2
  779. package/assets/esri/core/workers/chunks/30e191d36aa95823c018.js +0 -1
  780. package/assets/esri/core/workers/chunks/315bf08dff4757ffbed3.js +0 -1
  781. package/assets/esri/core/workers/chunks/31c01885ee6d70a2bde2.js +0 -1
  782. package/assets/esri/core/workers/chunks/3292b3883f203637b5a7.js +0 -1
  783. package/assets/esri/core/workers/chunks/32f24a66f684de3c243d.js +0 -1
  784. package/assets/esri/core/workers/chunks/35527a01d61cabbfd33e.js +0 -1
  785. package/assets/esri/core/workers/chunks/3aebbed6d4fd1b993a35.js +0 -1
  786. package/assets/esri/core/workers/chunks/3f1d533efe4300d19e6a.js +0 -1
  787. package/assets/esri/core/workers/chunks/413d2fa54508e6f42c74.js +0 -1
  788. package/assets/esri/core/workers/chunks/4325fa92dafca465ae26.js +0 -1
  789. package/assets/esri/core/workers/chunks/4364a3e706294bb6ae41.js +0 -1
  790. package/assets/esri/core/workers/chunks/438f35d41c6851736818.js +0 -30
  791. package/assets/esri/core/workers/chunks/453c9e8d438d061e1736.js +0 -1
  792. package/assets/esri/core/workers/chunks/479e34b0abc10499bd3a.js +0 -1
  793. package/assets/esri/core/workers/chunks/49675e77a351abda2728.js +0 -1
  794. package/assets/esri/core/workers/chunks/4cdf80e2e60501dd4756.js +0 -1
  795. package/assets/esri/core/workers/chunks/51edfe21d4c6ee22c83d.js +0 -1
  796. package/assets/esri/core/workers/chunks/5524a71d1abc9568ce26.js +0 -1
  797. package/assets/esri/core/workers/chunks/557e39e5156b313597f9.js +0 -1
  798. package/assets/esri/core/workers/chunks/55b765c72d13b3b911f9.js +0 -1
  799. package/assets/esri/core/workers/chunks/5dc86a3a40d16b576bb5.js +0 -1
  800. package/assets/esri/core/workers/chunks/6182d39e2095d4460b88.js +0 -1
  801. package/assets/esri/core/workers/chunks/621d71d26bd20e296138.js +0 -1
  802. package/assets/esri/core/workers/chunks/67dffb896b6ef4b2038b.js +0 -1
  803. package/assets/esri/core/workers/chunks/694f9571e2723d3d4b02.js +0 -1
  804. package/assets/esri/core/workers/chunks/69ad5930ff6040c6c561.js +0 -1
  805. package/assets/esri/core/workers/chunks/6af88bb722bbb37db198.js +0 -2
  806. package/assets/esri/core/workers/chunks/70d8f5bdb452cee41536.js +0 -2
  807. package/assets/esri/core/workers/chunks/728151d24334027af635.js +0 -1
  808. package/assets/esri/core/workers/chunks/78af4b7a379c40f497a7.js +0 -1
  809. package/assets/esri/core/workers/chunks/7f1fcddc8dd42a1b67d9.js +0 -1
  810. package/assets/esri/core/workers/chunks/86443e47ad99e555753a.js +0 -1
  811. package/assets/esri/core/workers/chunks/86f2de7dda7992ae706c.js +0 -1
  812. package/assets/esri/core/workers/chunks/895114ccd2603830960f.js +0 -1
  813. package/assets/esri/core/workers/chunks/927c8ca7fd385b28a1b7.js +0 -640
  814. package/assets/esri/core/workers/chunks/95d82c619dcbec2e1050.js +0 -1
  815. package/assets/esri/core/workers/chunks/979bab62cad788180770.js +0 -1
  816. package/assets/esri/core/workers/chunks/9d70247d820085a2c190.js +0 -1
  817. package/assets/esri/core/workers/chunks/a0aaf14c8f9a007d88ac.js +0 -1
  818. package/assets/esri/core/workers/chunks/a0fce639319d59becd01.js +0 -2
  819. package/assets/esri/core/workers/chunks/aa03f770178693167aa0.js +0 -1
  820. package/assets/esri/core/workers/chunks/aea439d4c2308f88b295.js +0 -1
  821. package/assets/esri/core/workers/chunks/af45110f07e4b5162bae.js +0 -1
  822. package/assets/esri/core/workers/chunks/b0c647af49c9d563b852.js +0 -1
  823. package/assets/esri/core/workers/chunks/b640651c7d86cfe654bf.js +0 -1
  824. package/assets/esri/core/workers/chunks/b78fb24b47d9f31f18c6.js +0 -1
  825. package/assets/esri/core/workers/chunks/b8dda9e55caba0e2b4c2.js +0 -1
  826. package/assets/esri/core/workers/chunks/ba693317ed3939587f30.js +0 -1
  827. package/assets/esri/core/workers/chunks/c13c532fe38ddc5d7ca6.js +0 -1
  828. package/assets/esri/core/workers/chunks/c4872cf3b71d00f450e1.js +0 -1
  829. package/assets/esri/core/workers/chunks/c5b7ff8650235c464dbf.js +0 -1
  830. package/assets/esri/core/workers/chunks/caf80facb0322be054ab.js +0 -1
  831. package/assets/esri/core/workers/chunks/cc48354c54358777e996.js +0 -1
  832. package/assets/esri/core/workers/chunks/d5423df247be82fa085a.js +0 -1
  833. package/assets/esri/core/workers/chunks/d598d08dbf2796742e8c.js +0 -1
  834. package/assets/esri/core/workers/chunks/da4f7d7099ba88f31f45.js +0 -1
  835. package/assets/esri/core/workers/chunks/dbb1ac41fd5da4fd849b.js +0 -1
  836. package/assets/esri/core/workers/chunks/dc259eed58fde3f5cb5c.js +0 -1
  837. package/assets/esri/core/workers/chunks/e0036fa0324a96a88248.js +0 -1
  838. package/assets/esri/core/workers/chunks/e29d182460564c2a52ad.js +0 -1
  839. package/assets/esri/core/workers/chunks/eda083e9d12e45da0a7b.js +0 -1
  840. package/assets/esri/core/workers/chunks/f0b5c140a5ba174572b6.js +0 -1
  841. package/assets/esri/core/workers/chunks/f286680e363eefdf27df.js +0 -1
  842. package/assets/esri/core/workers/chunks/fa3138dd8139008b430d.js +0 -1
  843. package/assets/esri/core/workers/chunks/fb0afb41a3d87d59f574.js +0 -1
  844. package/assets/esri/core/workers/chunks/fc9fbc8e4e459edf4e37.js +0 -1
  845. /package/assets/esri/core/workers/chunks/{6af88bb722bbb37db198.js.LICENSE.txt → 319ff04282dc8ae38b56.js.LICENSE.txt} +0 -0
  846. /package/assets/esri/core/workers/chunks/{70d8f5bdb452cee41536.js.LICENSE.txt → 50dc9893e13396f5e35d.js.LICENSE.txt} +0 -0
  847. /package/assets/esri/core/workers/chunks/{2e8db0f05df2e38a14e1.js.LICENSE.txt → 8244b74e9c3a30d8d2f6.js.LICENSE.txt} +0 -0
  848. /package/assets/esri/core/workers/chunks/{a0fce639319d59becd01.js.LICENSE.txt → c216cd5d6b5d4fe4bab3.js.LICENSE.txt} +0 -0
  849. /package/assets/esri/core/workers/chunks/{1252da05832e576d4def.js.LICENSE.txt → d1ccc5f2d8892328ab01.js.LICENSE.txt} +0 -0
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
2
- import{__decorate as e}from"tslib";import"../../../../../core/has.js";import{releaseMaybe as t,disposeMaybe as r}from"../../../../../core/maybe.js";import{watch as i,initial as s}from"../../../../../core/reactiveUtils.js";import{property as o,subclass as h}from"../../../../../core/accessorSupport/decorators.js";import{set as n}from"../../../../../core/libs/gl-matrix-2/math/vec2.js";import{InternalRenderCategory as l}from"../../../webgl.js";import a from"../../../webgl/RenderNode.js";import{HighlightApplyTechnique as g}from"./HighlightApplyTechnique.js";import{a as u}from"../../../../../chunks/HighlightBlur.glsl.js";import{HighlightBlurTechnique as c}from"./HighlightBlurTechnique.js";import{a as m,g as d}from"../../../../../chunks/HighlightDownsample.glsl.js";import{HighlightDownsampleTechnique as p}from"./HighlightDownsampleTechnique.js";import{HighlightPassParameters as f}from"./HighlightPassParameters.js";import{HighlightToSingleTechnique as b}from"./HighlightToSingleTechnique.js";import{NoVertex as w}from"../../lib/DefaultVertexBufferLayouts.js";import{VertexArrayObject as x}from"../../lib/VertexArrayObject.js";import{BufferObject as T}from"../../../../webgl/BufferObject.js";import{ColorAttachment0 as C,PrimitiveType as _,DataType as v}from"../../../../webgl/enums.js";import O from"../../../../webgl/Texture.js";import{TextureDescriptor as j}from"../../../../webgl/TextureDescriptor.js";import{VertexBuffer as H}from"../../../../webgl/VertexBuffer.js";let P=class extends a{constructor(){super(...arguments),this.produces=l.HIGHLIGHT_COLOR,this.consumes={required:[l.HIGHLIGHT_COLOR,"highlights"]},this._downsampleDrawParameters=new m,this._passParameters=new f,this._highlightBlurDrawParameters=new u,this._grid=new q}initialize(){this.addHandles([i(()=>this._updateOptionsTexture(),()=>{},s)])}destroy(){this._grid.coverage=t(this._grid.coverage),this._grid.vao=r(this._grid.vao),this._passParameters.highlightOptionsTexture=t(this._passParameters.highlightOptionsTexture)}_updateOptionsTexture(){if(null==this._passParameters.highlightOptionsTexture){const e=new j(16,2);e.internalFormat=6408,e.samplingMode=9728,this._passParameters.highlightOptionsTexture=new O(this.renderingContext,e,null)}this._passParameters.highlightOptionsTexture.setData(D(this.view.state.highlights)),this.requestRender(1)}render(e){const t=e.find(({name:e})=>e===l.HIGHLIGHT_COLOR),{techniques:r,bindParameters:i,fboCache:s,_passParameters:o,renderingContext:h}=this;if(!i.decorations)return t;const a=r.getCompiled(p),u=r.getCompiled(b),m=r.getCompiled(c),d=r.getCompiled(g);if(!(a&&d&&m&&u))return this.requestRender(1),t;const f=e.find(({name:e})=>"highlights"===e).getTexture();o.highlightTexture=f;const w=this._prepareAndDownSample(f),{width:x,height:T}=f.descriptor;o.highlightTexture=f;const{camera:_}=i,{fullWidth:v,fullHeight:O,pixelRatio:j,fullViewport:H}=_,P=Math.ceil(v/j),q=Math.ceil(O/j),{_highlightBlurDrawParameters:D}=this,y=this.view.stage.renderView.renderer,{highlights:I}=i;for(let l=0;l<I.length;++l){const{name:e}=I[l];if(!y.hasHighlight(e))continue;o.highlightLevel=l,h.setClearColor(0,0,0,0);const r=s.acquire(x,T,"single highlight",2);h.bindFramebuffer(r.fbo),h.setViewport(0,0,x,T),h.clear(16384),h.bindTechnique(u,i,o),this._renderGrid(w),D.blurInput=r.getTexture(),n(D.blurSize,1/P,0);const a=s.acquire(P,q,"single highlight blur",2);h.unbindTexture(a.fbo?.colorTexture),h.bindFramebuffer(a.fbo),h.setViewport(0,0,P,q),h.clear(16384),h.bindTechnique(m,i,o,D),this._renderGrid(w),r.release(),n(D.blurSize,0,1/q),o.highlightBlurTexture=a.getTexture(),h.bindFramebuffer(t.fbo),h.setDrawBuffers([C]),h.setViewport4fv(H),h.bindTechnique(d,i,o,D),this._renderGrid(w),a.release()}return o.coverageTexture=o.highlightTexture=null,t}_prepareAndDownSample(e){this._gridUpdateResources(e);const t=this.techniques.get(p),r=this._gridComputeCoverage(t,e),{horizontalCellCount:i,verticalCellCount:s}=r,o=this._passParameters;return o.horizontalCellCount=i,o.verticalCellCount=s,o.coverageTexture=r.coverage?.getTexture(),r}_renderGrid(e){const t=e.verticalCellCount*e.horizontalCellCount;this.renderingContext.bindVAO(e.vao),this.renderingContext.drawElementsInstanced(_.TRIANGLES,6,v.UNSIGNED_BYTE,0,t)}_gridUpdateResources(e){const t=this._grid,{width:r,height:i}=e.descriptor;if(t.horizontalCellCount=Math.ceil(r/d),t.verticalCellCount=Math.ceil(i/d),t.vao)return;const s=this.renderingContext,o=T.createIndex(s,35044,R);t.vao=new x(s,new H(s,w),o)}_gridComputeCoverage(e,t){const r=this.renderingContext,i=this._grid,s=t.descriptor,o=Math.ceil(s.width/d),h=Math.ceil(s.height/d);this._downsampleDrawParameters.input=t;const{highlights:n}=this.bindParameters;i.coverage?.release();const l=this.fboCache.acquire(o,h,"highlight coverage",n.length>L?3:1);return i.coverage=l,r.bindFramebuffer(l.fbo),r.bindTechnique(e,this.bindParameters,this._passParameters,this._downsampleDrawParameters),r.setViewport(0,0,o,h),r.screen.draw(),i}get test(){}};e([o()],P.prototype,"produces",void 0),e([o()],P.prototype,"consumes",void 0),P=e([h("esri.views.3d.webgl-engine.effects.highlight.Highlight")],P);class q{constructor(){this.coverage=null,this.vao=null,this.verticalCellCount=0,this.horizontalCellCount=0,this.viewportWidth=0,this.viewportHeight=0}}function D(e){const t=new Uint8Array(128);let r=0;for(const i of e){const e=4*r,s=4*r+64;++r;const{color:o}=i,h=i.haloColor??o;t[e+0]=o.r,t[e+1]=o.g,t[e+2]=o.b,t[e+3]=i.fillOpacity*o.a*255,t[s+0]=h.r,t[s+1]=h.g,t[s+2]=h.b,t[s+3]=i.haloOpacity*h.a*255}return t}let y=0;function I(e){let t=0;for(const i of e){const{name:e}=i;t+=e.length;const{color:r,fillOpacity:s,haloColor:o,haloOpacity:h}=i;t+=r.r+r.g+r.b+r.a+s,t+=o?o.r+o.g+o.b+o.a+h:0}const r=e.at(0);if(r){const{shadowOpacity:e,shadowDifference:i,shadowColor:s}=r;t+=e+i+s.r+s.g+s.b+s.a}return y+++(t>=0?0:1)}const R=new Uint8Array([0,1,2,2,1,3]);function G(e,t,r,i,s,o,h=0){const{highlights:l}=s,a=l.length>1?t.acquire(r,i,"highlight mix",l.length>L?3:1):null,{gl:g}=e;if(a){const t=e.boundFramebuffer;e.bindFramebuffer(a.fbo),g.clearBufferuiv(g.COLOR,0,[0,0,0,0]),e.bindFramebuffer(t)}const u=a?.getTexture();s.highlightMixTexture=u,n(s.highlightMixOrigin,h,0),l.forEach((t,n)=>{if(n>0){const t=O.TEXTURE_UNIT_FOR_UPDATES;e.bindTexture(u,t),e.setActiveTexture(t),g.copyTexSubImage2D(3553,0,0,0,h,0,r,i),e.bindTexture(null,t)}e.clear(256),s.highlightLevel=n,o()}),s.highlightLevel=null,s.highlightMixTexture=null,a?.release()}const L=4;export{P as Highlight,L as maxHighlightsPerChannel,G as renderHighlightBuffer,I as trackHighlightOptions};
2
+ import{__decorate as e}from"tslib";import"../../../../../core/has.js";import{releaseMaybe as t,disposeMaybe as r}from"../../../../../core/maybe.js";import{watch as i,initial as s}from"../../../../../core/reactiveUtils.js";import{property as o,subclass as h}from"../../../../../core/accessorSupport/decorators.js";import{set as n}from"../../../../../core/libs/gl-matrix-2/math/vec2.js";import{InternalRenderCategory as l}from"../../../webgl.js";import a from"../../../webgl/RenderNode.js";import{HighlightApplyTechnique as g}from"./HighlightApplyTechnique.js";import{H as u}from"../../../../../chunks/HighlightBlur.glsl.js";import{HighlightBlurTechnique as c}from"./HighlightBlurTechnique.js";import{H as m,g as d}from"../../../../../chunks/HighlightDownsample.glsl.js";import{HighlightDownsampleTechnique as p}from"./HighlightDownsampleTechnique.js";import{HighlightPassParameters as f}from"./HighlightPassParameters.js";import{HighlightToSingleTechnique as b}from"./HighlightToSingleTechnique.js";import{NoVertex as w}from"../../lib/DefaultVertexBufferLayouts.js";import{VertexArrayObject as x}from"../../lib/VertexArrayObject.js";import{BufferObject as T}from"../../../../webgl/BufferObject.js";import{ColorAttachment0 as C,PrimitiveType as _,DataType as v}from"../../../../webgl/enums.js";import O from"../../../../webgl/Texture.js";import{TextureDescriptor as j}from"../../../../webgl/TextureDescriptor.js";import{VertexBuffer as H}from"../../../../webgl/VertexBuffer.js";let P=class extends a{constructor(){super(...arguments),this.produces=l.HIGHLIGHT_COLOR,this.consumes={required:[l.HIGHLIGHT_COLOR,"highlights"]},this._downsampleDrawParameters=new m,this._passParameters=new f,this._highlightBlurDrawParameters=new u,this._grid=new q}initialize(){this.addHandles([i(()=>this._updateOptionsTexture(),()=>{},s)])}destroy(){this._grid.coverage=t(this._grid.coverage),this._grid.vao=r(this._grid.vao),this._passParameters.highlightOptionsTexture=t(this._passParameters.highlightOptionsTexture)}_updateOptionsTexture(){if(null==this._passParameters.highlightOptionsTexture){const e=new j(16,2);e.internalFormat=6408,e.samplingMode=9728,this._passParameters.highlightOptionsTexture=new O(this.renderingContext,e,null)}this._passParameters.highlightOptionsTexture.setData(D(this.view.state.highlights)),this.requestRender(1)}render(e){const t=e.find(({name:e})=>e===l.HIGHLIGHT_COLOR),{techniques:r,bindParameters:i,fboCache:s,_passParameters:o,renderingContext:h}=this;if(!i.decorations)return t;const a=r.getCompiled(p),u=r.getCompiled(b),m=r.getCompiled(c),d=r.getCompiled(g);if(!(a&&d&&m&&u))return this.requestRender(1),t;const f=e.find(({name:e})=>"highlights"===e).getTexture();o.highlightTexture=f;const w=this._prepareAndDownSample(f),{width:x,height:T}=f.descriptor;o.highlightTexture=f;const{camera:_}=i,{fullWidth:v,fullHeight:O,pixelRatio:j,fullViewport:H}=_,P=Math.ceil(v/j),q=Math.ceil(O/j),{_highlightBlurDrawParameters:D}=this,y=this.view.stage.renderView.renderer,{highlights:I}=i;for(let l=0;l<I.length;++l){const{name:e}=I[l];if(!y.hasHighlight(e))continue;o.highlightLevel=l,h.setClearColor(0,0,0,0);const r=s.acquire(x,T,"single highlight",2);h.bindFramebuffer(r.fbo),h.setViewport(0,0,x,T),h.clear(16384),h.bindTechnique(u,i,o),this._renderGrid(w),D.blurInput=r.getTexture(),n(D.blurSize,1/P,0);const a=s.acquire(P,q,"single highlight blur",2);h.unbindTexture(a.fbo?.colorTexture),h.bindFramebuffer(a.fbo),h.setViewport(0,0,P,q),h.clear(16384),h.bindTechnique(m,i,o,D),this._renderGrid(w),r.release(),n(D.blurSize,0,1/q),o.highlightBlurTexture=a.getTexture(),h.bindFramebuffer(t.fbo),h.setDrawBuffers([C]),h.setViewport4fv(H),h.bindTechnique(d,i,o,D),this._renderGrid(w),a.release()}return o.coverageTexture=o.highlightTexture=null,t}_prepareAndDownSample(e){this._gridUpdateResources(e);const t=this.techniques.get(p),r=this._gridComputeCoverage(t,e),{horizontalCellCount:i,verticalCellCount:s}=r,o=this._passParameters;return o.horizontalCellCount=i,o.verticalCellCount=s,o.coverageTexture=r.coverage?.getTexture(),r}_renderGrid(e){const t=e.verticalCellCount*e.horizontalCellCount;this.renderingContext.bindVAO(e.vao),this.renderingContext.drawElementsInstanced(_.TRIANGLES,6,v.UNSIGNED_BYTE,0,t)}_gridUpdateResources(e){const t=this._grid,{width:r,height:i}=e.descriptor;if(t.horizontalCellCount=Math.ceil(r/d),t.verticalCellCount=Math.ceil(i/d),t.vao)return;const s=this.renderingContext,o=T.createIndex(s,35044,R);t.vao=new x(s,new H(s,w),o)}_gridComputeCoverage(e,t){const r=this.renderingContext,i=this._grid,s=t.descriptor,o=Math.ceil(s.width/d),h=Math.ceil(s.height/d);this._downsampleDrawParameters.input=t;const{highlights:n}=this.bindParameters;i.coverage?.release();const l=this.fboCache.acquire(o,h,"highlight coverage",n.length>L?3:1);return i.coverage=l,r.bindFramebuffer(l.fbo),r.bindTechnique(e,this.bindParameters,this._passParameters,this._downsampleDrawParameters),r.setViewport(0,0,o,h),r.screen.draw(),i}get test(){}};e([o()],P.prototype,"produces",void 0),e([o()],P.prototype,"consumes",void 0),P=e([h("esri.views.3d.webgl-engine.effects.highlight.Highlight")],P);class q{constructor(){this.coverage=null,this.vao=null,this.verticalCellCount=0,this.horizontalCellCount=0,this.viewportWidth=0,this.viewportHeight=0}}function D(e){const t=new Uint8Array(128);let r=0;for(const i of e){const e=4*r,s=4*r+64;++r;const{color:o}=i,h=i.haloColor??o;t[e+0]=o.r,t[e+1]=o.g,t[e+2]=o.b,t[e+3]=i.fillOpacity*o.a*255,t[s+0]=h.r,t[s+1]=h.g,t[s+2]=h.b,t[s+3]=i.haloOpacity*h.a*255}return t}let y=0;function I(e){let t=0;for(const i of e){const{name:e}=i;t+=e.length;const{color:r,fillOpacity:s,haloColor:o,haloOpacity:h}=i;t+=r.r+r.g+r.b+r.a+s,t+=o?o.r+o.g+o.b+o.a+h:0}const r=e.at(0);if(r){const{shadowOpacity:e,shadowDifference:i,shadowColor:s}=r;t+=e+i+s.r+s.g+s.b+s.a}return y+++(t>=0?0:1)}const R=new Uint8Array([0,1,2,2,1,3]);function G(e,t,r,i,s,o,h=0){const{highlights:l}=s,a=l.length>1?t.acquire(r,i,"highlight mix",l.length>L?3:1):null,{gl:g}=e;if(a){const t=e.boundFramebuffer;e.bindFramebuffer(a.fbo),g.clearBufferuiv(g.COLOR,0,[0,0,0,0]),e.bindFramebuffer(t)}const u=a?.getTexture();s.highlightMixTexture=u,n(s.highlightMixOrigin,h,0),l.forEach((t,n)=>{if(n>0){const t=O.TEXTURE_UNIT_FOR_UPDATES;e.bindTexture(u,t),e.setActiveTexture(t),g.copyTexSubImage2D(3553,0,0,0,h,0,r,i),e.bindTexture(null,t)}e.clear(256),s.highlightLevel=n,o()}),s.highlightLevel=null,s.highlightMixTexture=null,a?.release()}const L=4;export{P as Highlight,L as maxHighlightsPerChannel,G as renderHighlightBuffer,I as trackHighlightOptions};
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
2
- import"../../../../../core/libs/gl-matrix-2/factories/vec2f64.js";import"../../core/shaderLibrary/HighlightCellGridScreenSpacePass.glsl.js";import"../../core/shaderModules/Float2DrawUniform.js";import"../../core/shaderModules/glsl.js";import"../../core/shaderModules/Texture2DDrawUniform.js";import"../../../../webgl/NoParameters.js";import"../../../../webgl/ShaderBuilder.js";export{a as HighlightBlurDrawParameters,b as build}from"../../../../../chunks/HighlightBlur.glsl.js";
2
+ import"../../../../../core/libs/gl-matrix-2/factories/vec2f64.js";import"../../core/shaderLibrary/HighlightCellGridScreenSpacePass.glsl.js";import"../../core/shaderModules/Float2DrawUniform.js";import"../../core/shaderModules/glsl.js";import"../../core/shaderModules/Texture2DDrawUniform.js";import"../../../../webgl/NoParameters.js";import"../../../../webgl/ShaderBuilder.js";export{H as HighlightBlurDrawParameters,b as build}from"../../../../../chunks/HighlightBlur.glsl.js";
@@ -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 r}from"../../../../../core/accessorSupport/decorators.js";import{ReloadableShader as i}from"../../core/shaderTechnique/ReloadableShader.js";import{ShaderTechnique as t}from"../../core/shaderTechnique/ShaderTechnique.js";import{H as o}from"../../../../../chunks/HighlightBlur.glsl.js";import{NoVertex as s}from"../../lib/DefaultVertexBufferLayouts.js";import{makePipelineState as l,defaultColorWrite as h}from"../../../../webgl/renderState.js";let c=class extends t{constructor(e,r){super(e,r,s),this.shader=new i(o,()=>import("./HighlightBlur.glsl.js"))}initializePipeline(){return l({colorWrite:h})}};c=e([r("esri.views.3d.webgl-engine.effects.highlight.HighlightBlurTechnique")],c);export{c as HighlightBlurTechnique};
2
+ import{__decorate as e}from"tslib";import{subclass as r}from"../../../../../core/accessorSupport/decorators.js";import{ReloadableShader as i}from"../../core/shaderTechnique/ReloadableShader.js";import{ShaderTechnique as t}from"../../core/shaderTechnique/ShaderTechnique.js";import{a as o}from"../../../../../chunks/HighlightBlur.glsl.js";import{NoVertex as s}from"../../lib/DefaultVertexBufferLayouts.js";import{makePipelineState as l,defaultColorWrite as h}from"../../../../webgl/renderState.js";let a=class extends t{constructor(e,r){super(e,r,s),this.shader=new i(o,()=>import("./HighlightBlur.glsl.js"))}initializePipeline(){return l({colorWrite:h})}};a=e([r("esri.views.3d.webgl-engine.effects.highlight.HighlightBlurTechnique")],a);export{a as HighlightBlurTechnique};
@@ -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/glsl.js";import"../../core/shaderModules/Texture2DUintPassUniform.js";import"../../../../webgl/NoParameters.js";import"../../../../webgl/ShaderBuilder.js";export{a as HighlightDownsampleDrawParameters,b as blurSize,c as build,g as gridCellPixelSize,o as outlineSize}from"../../../../../chunks/HighlightDownsample.glsl.js";
2
+ import"../../core/shaderLibrary/ScreenSpacePass.glsl.js";import"../../core/shaderModules/glsl.js";import"../../core/shaderModules/Texture2DUintPassUniform.js";import"../../../../webgl/NoParameters.js";import"../../../../webgl/ShaderBuilder.js";export{H as HighlightDownsampleDrawParameters,b as blurSize,c as build,g as gridCellPixelSize,o as outlineSize}from"../../../../../chunks/HighlightDownsample.glsl.js";
@@ -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 r}from"../../../../../core/accessorSupport/decorators.js";import{ReloadableShader as i}from"../../core/shaderTechnique/ReloadableShader.js";import{ShaderTechnique as o}from"../../core/shaderTechnique/ShaderTechnique.js";import{H as s}from"../../../../../chunks/HighlightDownsample.glsl.js";import{makePipelineState as t,defaultColorWrite as l}from"../../../../webgl/renderState.js";let h=class extends o{constructor(){super(...arguments),this.shader=new i(s,()=>import("./HighlightDownsample.glsl.js"))}initializePipeline(){return t({colorWrite:l})}};h=e([r("esri.views.3d.webgl-engine.effects.highlight.HighlightDownsampleTechnique")],h);export{h as HighlightDownsampleTechnique};
2
+ import{__decorate as e}from"tslib";import{subclass as r}from"../../../../../core/accessorSupport/decorators.js";import{ReloadableShader as i}from"../../core/shaderTechnique/ReloadableShader.js";import{ShaderTechnique as o}from"../../core/shaderTechnique/ShaderTechnique.js";import{a as s}from"../../../../../chunks/HighlightDownsample.glsl.js";import{makePipelineState as t,defaultColorWrite as l}from"../../../../webgl/renderState.js";let h=class extends o{constructor(){super(...arguments),this.shader=new i(s,()=>import("./HighlightDownsample.glsl.js"))}initializePipeline(){return t({colorWrite:l})}};h=e([r("esri.views.3d.webgl-engine.effects.highlight.HighlightDownsampleTechnique")],h);export{h as HighlightDownsampleTechnique};
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
2
- import"../../../../../core/screenUtils.js";import"../../../../../core/libs/gl-matrix-2/math/vec4.js";import"../../../../../core/libs/gl-matrix-2/factories/vec4f64.js";import"../../core/shaderModules/BooleanPassUniform.js";import"../../core/shaderModules/Float4PassUniform.js";import"../../core/shaderModules/glsl.js";import"../../core/shaderModules/Texture2DPassUniform.js";import"../../../../webgl/NoParameters.js";import"../../../../webgl/ShaderBuilder.js";export{a as MagnifierPassParameters,b as build}from"../../../../../chunks/Magnifier.glsl.js";
2
+ import"../../../../../core/screenUtils.js";import"../../../../../core/libs/gl-matrix-2/math/vec4.js";import"../../../../../core/libs/gl-matrix-2/factories/vec4f64.js";import"../../core/shaderModules/BooleanPassUniform.js";import"../../core/shaderModules/Float4PassUniform.js";import"../../core/shaderModules/glsl.js";import"../../core/shaderModules/Texture2DPassUniform.js";import"../../../../webgl/NoParameters.js";import"../../../../webgl/ShaderBuilder.js";export{M as MagnifierPassParameters,b as build}from"../../../../../chunks/Magnifier.glsl.js";
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
2
- import{__decorate as e}from"tslib";import{createTask as s}from"../../../../../core/asyncUtils.js";import{clamp as i}from"../../../../../core/mathUtils.js";import{disposeMaybe as r}from"../../../../../core/maybe.js";import{watch as t,syncAndInitial as a}from"../../../../../core/reactiveUtils.js";import{createScreenPointArray as o,createRenderScreenPointArray as m,screenPointObjectToArray as n}from"../../../../../core/screenUtils.js";import{isSVG as h}from"../../../../../core/urlUtils.js";import{property as l,subclass as u}from"../../../../../core/accessorSupport/decorators.js";import{requestImage as p}from"../../../../../request/image.js";import{InternalRenderCategory as c}from"../../../webgl.js";import _ from"../../../webgl/RenderNode.js";import{a as g}from"../../../../../chunks/Magnifier.glsl.js";import{MagnifierTechnique as d}from"./MagnifierTechnique.js";import{createQuadVAO as f}from"../../lib/glUtil3D.js";import{loadMagnifierResources as v}from"../../../../magnifier/resources.js";import{ColorAttachment0 as T,PrimitiveType as k}from"../../../../webgl/enums.js";import P from"../../../../webgl/Texture.js";import{TextureDescriptor as y}from"../../../../webgl/TextureDescriptor.js";let x=class extends _{constructor(){super(...arguments),this.produces=c.MAGNIFIER,this.consumes={required:[c.MAGNIFIER]},this._imageSources=null,this._imageLoadTask=null,this._passParameters=new g,this._magnifier=null,this._tmpScreenPoint=o(),this._tmpRenderPoint=m()}initialize(){this.addHandles([t(()=>this.view.magnifier,e=>this._update(e),a)])}_update(e){if(e===this._magnifier)return;this.removeAllHandles(),this._magnifier=e;const s=()=>{const e=this._validMagnifier;e?(this._loadResources(e),this.produces=c.MAGNIFIER):this.produces="disabled",this.requestRender()};this._magnifier&&this.addHandles(t(()=>this._magnifier?.version,s)),s()}get _validMagnifier(){return this._magnifier?.visible&&this._magnifier?.position&&this._magnifier?.size>0?this._magnifier:null}get _factor(){return this._magnifier?.factor||1}destroy(){this._magnifier=null,null!=this._imageLoadTask&&(this._imageLoadTask.task.abort(),this._imageLoadTask=null),this._disposeTextures(),this._vao=r(this._vao)}_disposeTextures(){this._passParameters.mask=r(this._passParameters.mask),this._passParameters.overlay=r(this._passParameters.overlay),this._passParameters.input=r(this._passParameters.input)}render(e){const s=this._validMagnifier,r=e.find(({name:e})=>e===c.MAGNIFIER);if(null==s)return r;if(null==this._imageSources)return this.requestRender(1),r;const t=this.renderingContext,a=this.camera.pixelRatio,o=Math.ceil(a*s.size);this._vao??=f(t,0,0,1);const m=this.techniques.getCompiled(d);if(this._ensureTextureResources(t,o),!m||!this._passParameters.input)return this.requestRender(1),r;const h=Math.ceil(1/this._factor*o),l=this._passParameters.input;l.resize(h,h),n(s.position,this._tmpScreenPoint);const u=this.camera.screenToRender(this._tmpScreenPoint,this._tmpRenderPoint),p=this.camera.fullWidth,_=this.camera.fullHeight,g=.5*h,v=.5*h;u[0]=i(u[0],g,p-g-1),u[1]=i(u[1],v,_-v-1);const P=Math.floor(u[0]-g),y=Math.floor(u[1]-v);t.bindFramebuffer(r.fbo);return m.program.bindTexture("textureInput",l),t.gl.copyTexImage2D(l.descriptor.target,0,l.descriptor.pixelFormat,P,y,h,h,0),this._passParameters.magnifier=s,t.bindTechnique(m,this.bindParameters,this._passParameters),t.setDrawBuffers([T]),t.bindVAO(this._vao),t.drawArrays(k.TRIANGLE_STRIP,0,4),r}_loadResources(e){const{maskUrl:i,overlayUrl:r}=e;this._imageLoadTask?.maskUrl===i&&this._imageLoadTask?.overlayUrl===r||(this._imageLoadTask?.task.abort(),this._imageLoadTask=this._imageSources=null),this._imageSources||this._imageLoadTask||(this._imageLoadTask={maskUrl:i,overlayUrl:r,task:s(async e=>{const s=null==i||null==r?v(e):null,t=null!=i?p(i,{signal:e}):s.then(e=>e.mask),a=null!=r?p(r,{signal:e}):s.then(e=>e.overlay);this._imageSources={mask:await t,overlay:await a}})})}_ensureTextureResources(e,s){null==this._imageSources||this._passParameters.size===s&&this._passParameters.input&&this._passParameters.mask&&this._passParameters.overlay||(this._disposeTextures(),this._imageSources.overlay.width=this._imageSources.mask.width=s,this._imageSources.overlay.height=this._imageSources.mask.height=s,this._passParameters.overlay=new P(e,this._createTextureDescriptor(s,6408,this._imageSources.overlay),this._imageSources.overlay),this._passParameters.mask=new P(e,this._createTextureDescriptor(s,6406,this._imageSources.mask),this._imageSources.mask),this._passParameters.input=new P(e,this._createTextureDescriptor(s,6408,null)))}_createTextureDescriptor(e,s,i){const r=this.renderingContext,t=new y(e);return t.pixelFormat=t.internalFormat=s,t.wrapMode=33071,t.flipped=!!i,t.preMultiplyAlpha=!(6408!==s||!i||h(i.src)&&r.driverTest.svgPremultipliesAlpha.result),t}};e([l()],x.prototype,"produces",void 0),e([l()],x.prototype,"consumes",void 0),e([l()],x.prototype,"_imageSources",void 0),e([l()],x.prototype,"_imageLoadTask",void 0),x=e([u("esri.views.3d.webgl-engine.effects.magnifier.Magnifier")],x);export{x as Magnifier};
2
+ import{__decorate as e}from"tslib";import{createTask as s}from"../../../../../core/asyncUtils.js";import{clamp as i}from"../../../../../core/mathUtils.js";import{disposeMaybe as r}from"../../../../../core/maybe.js";import{watch as t,syncAndInitial as a}from"../../../../../core/reactiveUtils.js";import{createScreenPointArray as o,createRenderScreenPointArray as m,screenPointObjectToArray as n}from"../../../../../core/screenUtils.js";import{isSVG as h}from"../../../../../core/urlUtils.js";import{property as l,subclass as u}from"../../../../../core/accessorSupport/decorators.js";import{requestImage as p}from"../../../../../request/image.js";import{InternalRenderCategory as c}from"../../../webgl.js";import _ from"../../../webgl/RenderNode.js";import{M as g}from"../../../../../chunks/Magnifier.glsl.js";import{MagnifierTechnique as d}from"./MagnifierTechnique.js";import{createQuadVAO as f}from"../../lib/glUtil3D.js";import{loadMagnifierResources as v}from"../../../../magnifier/resources.js";import{ColorAttachment0 as T,PrimitiveType as k}from"../../../../webgl/enums.js";import P from"../../../../webgl/Texture.js";import{TextureDescriptor as y}from"../../../../webgl/TextureDescriptor.js";let x=class extends _{constructor(){super(...arguments),this.produces=c.MAGNIFIER,this.consumes={required:[c.MAGNIFIER]},this._imageSources=null,this._imageLoadTask=null,this._passParameters=new g,this._magnifier=null,this._tmpScreenPoint=o(),this._tmpRenderPoint=m()}initialize(){this.addHandles([t(()=>this.view.magnifier,e=>this._update(e),a)])}_update(e){if(e===this._magnifier)return;this.removeAllHandles(),this._magnifier=e;const s=()=>{const e=this._validMagnifier;e?(this._loadResources(e),this.produces=c.MAGNIFIER):this.produces="disabled",this.requestRender()};this._magnifier&&this.addHandles(t(()=>this._magnifier?.version,s)),s()}get _validMagnifier(){return this._magnifier?.visible&&this._magnifier?.position&&this._magnifier?.size>0?this._magnifier:null}get _factor(){return this._magnifier?.factor||1}destroy(){this._magnifier=null,null!=this._imageLoadTask&&(this._imageLoadTask.task.abort(),this._imageLoadTask=null),this._disposeTextures(),this._vao=r(this._vao)}_disposeTextures(){this._passParameters.mask=r(this._passParameters.mask),this._passParameters.overlay=r(this._passParameters.overlay),this._passParameters.input=r(this._passParameters.input)}render(e){const s=this._validMagnifier,r=e.find(({name:e})=>e===c.MAGNIFIER);if(null==s)return r;if(null==this._imageSources)return this.requestRender(1),r;const t=this.renderingContext,a=this.camera.pixelRatio,o=Math.ceil(a*s.size);this._vao??=f(t,0,0,1);const m=this.techniques.getCompiled(d);if(this._ensureTextureResources(t,o),!m||!this._passParameters.input)return this.requestRender(1),r;const h=Math.ceil(1/this._factor*o),l=this._passParameters.input;l.resize(h,h),n(s.position,this._tmpScreenPoint);const u=this.camera.screenToRender(this._tmpScreenPoint,this._tmpRenderPoint),p=this.camera.fullWidth,_=this.camera.fullHeight,g=.5*h,v=.5*h;u[0]=i(u[0],g,p-g-1),u[1]=i(u[1],v,_-v-1);const P=Math.floor(u[0]-g),y=Math.floor(u[1]-v);t.bindFramebuffer(r.fbo);return m.program.bindTexture("textureInput",l),t.gl.copyTexImage2D(l.descriptor.target,0,l.descriptor.pixelFormat,P,y,h,h,0),this._passParameters.magnifier=s,t.bindTechnique(m,this.bindParameters,this._passParameters),t.setDrawBuffers([T]),t.bindVAO(this._vao),t.drawArrays(k.TRIANGLE_STRIP,0,4),r}_loadResources(e){const{maskUrl:i,overlayUrl:r}=e;this._imageLoadTask?.maskUrl===i&&this._imageLoadTask?.overlayUrl===r||(this._imageLoadTask?.task.abort(),this._imageLoadTask=this._imageSources=null),this._imageSources||this._imageLoadTask||(this._imageLoadTask={maskUrl:i,overlayUrl:r,task:s(async e=>{const s=null==i||null==r?v(e):null,t=null!=i?p(i,{signal:e}):s.then(e=>e.mask),a=null!=r?p(r,{signal:e}):s.then(e=>e.overlay);this._imageSources={mask:await t,overlay:await a}})})}_ensureTextureResources(e,s){null==this._imageSources||this._passParameters.size===s&&this._passParameters.input&&this._passParameters.mask&&this._passParameters.overlay||(this._disposeTextures(),this._imageSources.overlay.width=this._imageSources.mask.width=s,this._imageSources.overlay.height=this._imageSources.mask.height=s,this._passParameters.overlay=new P(e,this._createTextureDescriptor(s,6408,this._imageSources.overlay),this._imageSources.overlay),this._passParameters.mask=new P(e,this._createTextureDescriptor(s,6406,this._imageSources.mask),this._imageSources.mask),this._passParameters.input=new P(e,this._createTextureDescriptor(s,6408,null)))}_createTextureDescriptor(e,s,i){const r=this.renderingContext,t=new y(e);return t.pixelFormat=t.internalFormat=s,t.wrapMode=33071,t.flipped=!!i,t.preMultiplyAlpha=!(6408!==s||!i||h(i.src)&&r.driverTest.svgPremultipliesAlpha.result),t}};e([l()],x.prototype,"produces",void 0),e([l()],x.prototype,"consumes",void 0),e([l()],x.prototype,"_imageSources",void 0),e([l()],x.prototype,"_imageLoadTask",void 0),x=e([u("esri.views.3d.webgl-engine.effects.magnifier.Magnifier")],x);export{x as Magnifier};
@@ -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 r}from"../../../../../core/accessorSupport/decorators.js";import{ReloadableShader as i}from"../../core/shaderTechnique/ReloadableShader.js";import{ShaderTechnique as s}from"../../core/shaderTechnique/ShaderTechnique.js";import{M as t}from"../../../../../chunks/Magnifier.glsl.js";import{PrimitiveType as o}from"../../../../webgl/enums.js";import{makePipelineState as n,defaultColorWrite as l,premultipliedAlpha as m}from"../../../../webgl/renderState.js";let a=class extends s{constructor(){super(...arguments),this.shader=new i(t,()=>import("./Magnifier.glsl.js")),this.primitiveType=o.TRIANGLE_STRIP}initializePipeline(){return n({blending:m,depthTest:null,depthWrite:null,colorWrite:l})}};a=e([r("esri.views.3d.webgl-engine.effects.magnifier.MagnifierTechnique")],a);export{a as MagnifierTechnique};
2
+ import{__decorate as e}from"tslib";import{subclass as r}from"../../../../../core/accessorSupport/decorators.js";import{ReloadableShader as i}from"../../core/shaderTechnique/ReloadableShader.js";import{ShaderTechnique as s}from"../../core/shaderTechnique/ShaderTechnique.js";import{a as t}from"../../../../../chunks/Magnifier.glsl.js";import{PrimitiveType as o}from"../../../../webgl/enums.js";import{makePipelineState as n,defaultColorWrite as l,premultipliedAlpha as a}from"../../../../webgl/renderState.js";let m=class extends s{constructor(){super(...arguments),this.shader=new i(t,()=>import("./Magnifier.glsl.js")),this.primitiveType=o.TRIANGLE_STRIP}initializePipeline(){return n({blending:a,depthTest:null,depthWrite:null,colorWrite:l})}};m=e([r("esri.views.3d.webgl-engine.effects.magnifier.MagnifierTechnique")],m);export{m as MagnifierTechnique};
@@ -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/glsl.js";import"../../core/shaderModules/Texture2DPassUniform.js";import"../../../../../chunks/OITDimOpaque.glsl.js";import"../../shaders/alphaCutoff.glsl.js";import"../../shaders/oitResolution.glsl.js";import"../../../../webgl/ShaderBuilder.js";export{a as OITBlendPassParameters,b as build}from"../../../../../chunks/OITBlend.glsl.js";
2
+ import"../../core/shaderLibrary/ScreenSpacePass.glsl.js";import"../../core/shaderModules/glsl.js";import"../../core/shaderModules/Texture2DPassUniform.js";import"../../../../../chunks/OITDimOpaque.glsl.js";import"../../shaders/alphaCutoff.glsl.js";import"../../shaders/oitResolution.glsl.js";import"../../../../webgl/ShaderBuilder.js";export{O as OITBlendPassParameters,b as build}from"../../../../../chunks/OITBlend.glsl.js";
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
2
- import{a as e}from"../../../../../chunks/OITBlend.glsl.js";import{OITBlendEmissionTechnique as i}from"./OITBlendEmissionTechnique.js";import{OITBlendEmissionTechniqueConfiguration as t}from"./OITBlendEmissionTechniqueConfiguration.js";import{OITBlendTechnique as s}from"./OITBlendTechnique.js";import{OITBlendTechniqueConfiguration as n}from"./OITBlendTechniqueConfiguration.js";import{OITDimOpaqueTechnique as r}from"./OITDimOpaqueTechnique.js";import{OITDimOpaqueTechniqueConfiguration as o}from"./OITDimOpaqueTechniqueConfiguration.js";import{ColorAttachment2 as a,ColorAttachment1 as u,DrawBufferNone as c,ColorAttachment0 as h}from"../../../../webgl/enums.js";class m{constructor(i){this._techniques=i,this._parameters=new e,this._configuration=new n,this._dimConfiguration=new o,this._dimTransparentConfiguration=new t}precompile({useFloatBlend:e,emissions:t},n,o){this._configuration.useFloatBlend=e.value,this._configuration.computeHudOcclusion=n,this._configuration.frontFaceMask=1===o,this._techniques.precompile(s,this._configuration),0!==t&&2!==t&&0===o&&(this._dimConfiguration.useFloatBlend=e.value,this._techniques.precompile(r,this._dimConfiguration)),0!==t&&0===o&&(this._dimTransparentConfiguration.useFloatBlend=e.value,this._techniques.precompile(i,this._dimTransparentConfiguration))}blend(e,t,n,o,m,f,l){if(this._configuration.useFloatBlend=o.useFloatBlend.value,this._configuration.computeHudOcclusion=f,this._configuration.frontFaceMask=1===l,this._parameters.colorTexture=t.getTexture(),this._parameters.alphaTexture=t.getTexture(m?a:u),this._parameters.frontFaceTexture=n.getTexture(),m&&(this._dimConfiguration.useFloatBlend=o.useFloatBlend.value,0===l&&2!==o.emissions)){const i=this._techniques.get(r,this._dimConfiguration);e.bindTechnique(i,o,this._parameters);const t=e.setDrawBuffers([c,u]);e.screen.draw(),e.setDrawBuffers(t)}const p=this._techniques.get(s,this._configuration);if(e.bindTechnique(p,o,this._parameters),m){const i=e.setDrawBuffers([h]);e.screen.draw(),e.setDrawBuffers(i)}else e.screen.draw();if(m&&0===l){this._parameters.emissionTexture=t.getTexture(u),this._parameters.emissionFrontFaceTexture=n.getTexture(u),this._dimTransparentConfiguration.useFloatBlend=o.useFloatBlend.value;const s=this._techniques.get(i,this._dimTransparentConfiguration);e.bindTechnique(s,o,this._parameters);const r=e.setDrawBuffers([c,u]);e.screen.draw(),e.setDrawBuffers(r)}}}export{m as OITBlend};
2
+ import{O as e}from"../../../../../chunks/OITBlend.glsl.js";import{OITBlendEmissionTechnique as i}from"./OITBlendEmissionTechnique.js";import{OITBlendEmissionTechniqueConfiguration as t}from"./OITBlendEmissionTechniqueConfiguration.js";import{OITBlendTechnique as s}from"./OITBlendTechnique.js";import{OITBlendTechniqueConfiguration as n}from"./OITBlendTechniqueConfiguration.js";import{OITDimOpaqueTechnique as r}from"./OITDimOpaqueTechnique.js";import{OITDimOpaqueTechniqueConfiguration as o}from"./OITDimOpaqueTechniqueConfiguration.js";import{ColorAttachment2 as a,ColorAttachment1 as u,DrawBufferNone as c,ColorAttachment0 as h}from"../../../../webgl/enums.js";class m{constructor(i){this._techniques=i,this._parameters=new e,this._configuration=new n,this._dimConfiguration=new o,this._dimTransparentConfiguration=new t}precompile({useFloatBlend:e,emissions:t},n,o){this._configuration.useFloatBlend=e.value,this._configuration.computeHudOcclusion=n,this._configuration.frontFaceMask=1===o,this._techniques.precompile(s,this._configuration),0!==t&&2!==t&&0===o&&(this._dimConfiguration.useFloatBlend=e.value,this._techniques.precompile(r,this._dimConfiguration)),0!==t&&0===o&&(this._dimTransparentConfiguration.useFloatBlend=e.value,this._techniques.precompile(i,this._dimTransparentConfiguration))}blend(e,t,n,o,m,f,l){if(this._configuration.useFloatBlend=o.useFloatBlend.value,this._configuration.computeHudOcclusion=f,this._configuration.frontFaceMask=1===l,this._parameters.colorTexture=t.getTexture(),this._parameters.alphaTexture=t.getTexture(m?a:u),this._parameters.frontFaceTexture=n.getTexture(),m&&(this._dimConfiguration.useFloatBlend=o.useFloatBlend.value,0===l&&2!==o.emissions)){const i=this._techniques.get(r,this._dimConfiguration);e.bindTechnique(i,o,this._parameters);const t=e.setDrawBuffers([c,u]);e.screen.draw(),e.setDrawBuffers(t)}const p=this._techniques.get(s,this._configuration);if(e.bindTechnique(p,o,this._parameters),m){const i=e.setDrawBuffers([h]);e.screen.draw(),e.setDrawBuffers(i)}else e.screen.draw();if(m&&0===l){this._parameters.emissionTexture=t.getTexture(u),this._parameters.emissionFrontFaceTexture=n.getTexture(u),this._dimTransparentConfiguration.useFloatBlend=o.useFloatBlend.value;const s=this._techniques.get(i,this._dimTransparentConfiguration);e.bindTechnique(s,o,this._parameters);const r=e.setDrawBuffers([c,u]);e.screen.draw(),e.setDrawBuffers(r)}}}export{m as OITBlend};
@@ -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 r}from"../../../../../core/accessorSupport/decorators.js";import{ReloadableShader as s}from"../../core/shaderTechnique/ReloadableShader.js";import{ShaderTechnique as o}from"../../core/shaderTechnique/ShaderTechnique.js";import{O as i}from"../../../../../chunks/OITBlend.glsl.js";import{makePipelineState as t,defaultColorWrite as n,unpremultipliedAlphaToPremultipliedAlpha as l}from"../../../../webgl/renderState.js";let c=class extends o{constructor(){super(...arguments),this.shader=new s(i,()=>import("./OITBlend.glsl.js"))}initializePipeline(){return t({blending:l,colorWrite:n})}};c=e([r("esri.views.3d.webgl-engine.effects.transparency.OITBlendTechnique")],c);export{c as OITBlendTechnique};
2
+ import{__decorate as e}from"tslib";import{subclass as r}from"../../../../../core/accessorSupport/decorators.js";import{ReloadableShader as s}from"../../core/shaderTechnique/ReloadableShader.js";import{ShaderTechnique as o}from"../../core/shaderTechnique/ShaderTechnique.js";import{a as i}from"../../../../../chunks/OITBlend.glsl.js";import{makePipelineState as t,defaultColorWrite as n,unpremultipliedAlphaToPremultipliedAlpha as l}from"../../../../webgl/renderState.js";let c=class extends o{constructor(){super(...arguments),this.shader=new s(i,()=>import("./OITBlend.glsl.js"))}initializePipeline(){return t({blending:l,colorWrite:n})}};c=e([r("esri.views.3d.webgl-engine.effects.transparency.OITBlendTechnique")],c);export{c as OITBlendTechnique};
@@ -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/shaderLibrary/util/EmissionDimming.glsl.js";import"../../core/shaderModules/glsl.js";import"../../core/shaderModules/Texture2DPassUniform.js";import"../../shaders/alphaCutoff.glsl.js";import"../../shaders/oitResolution.glsl.js";import"../../../../webgl/NoParameters.js";import"../../../../webgl/ShaderBuilder.js";export{a as OITDimOpaquePassParameters,b as build}from"../../../../../chunks/OITDimOpaque.glsl.js";
2
+ import"../../core/shaderLibrary/ScreenSpacePass.glsl.js";import"../../core/shaderLibrary/util/EmissionDimming.glsl.js";import"../../core/shaderModules/glsl.js";import"../../core/shaderModules/Texture2DPassUniform.js";import"../../shaders/alphaCutoff.glsl.js";import"../../shaders/oitResolution.glsl.js";import"../../../../webgl/NoParameters.js";import"../../../../webgl/ShaderBuilder.js";export{O as OITDimOpaquePassParameters,b as build}from"../../../../../chunks/OITDimOpaque.glsl.js";
@@ -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 r}from"../../../../../core/accessorSupport/decorators.js";import{ReloadableShader as i}from"../../core/shaderTechnique/ReloadableShader.js";import{ShaderTechnique as s}from"../../core/shaderTechnique/ShaderTechnique.js";import{O as o}from"../../../../../chunks/OITDimOpaque.glsl.js";import{makePipelineState as t,defaultColorWrite as a,modulateDestination as n}from"../../../../webgl/renderState.js";let c=class extends s{constructor(){super(...arguments),this.shader=new i(o,()=>import("./OITDimOpaque.glsl.js"))}initializePipeline(){return t({blending:n,colorWrite:a})}};c=e([r("esri.views.3d.webgl-engine.effects.transparency.OITDimOpaqueTechnique")],c);export{c as OITDimOpaqueTechnique};
2
+ import{__decorate as e}from"tslib";import{subclass as r}from"../../../../../core/accessorSupport/decorators.js";import{ReloadableShader as i}from"../../core/shaderTechnique/ReloadableShader.js";import{ShaderTechnique as s}from"../../core/shaderTechnique/ShaderTechnique.js";import{a as o}from"../../../../../chunks/OITDimOpaque.glsl.js";import{makePipelineState as t,defaultColorWrite as a,modulateDestination as n}from"../../../../webgl/renderState.js";let c=class extends s{constructor(){super(...arguments),this.shader=new i(o,()=>import("./OITDimOpaque.glsl.js"))}initializePipeline(){return t({blending:n,colorWrite:a})}};c=e([r("esri.views.3d.webgl-engine.effects.transparency.OITDimOpaqueTechnique")],c);export{c as OITDimOpaqueTechnique};
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
2
- import{a as i}from"../../../../chunks/Compositing.glsl.js";import{CompositingTechnique as s}from"../shaders/CompositingTechnique.js";import{CompositingTechniqueConfiguration as t}from"../shaders/CompositingTechniqueConfiguration.js";class o{constructor(s,o){this._rctx=s,this._techniques=o,this._configuration=new t,this._passParameters=new i}precompile(i,t,o){this._configuration.blendEmissive=o,i&&(this._configuration.mode=2,this._techniques.precompile(s,this._configuration)),t&&(this._configuration.mode=1,this._techniques.precompile(s,this._configuration)),this._configuration.mode=3,this._techniques.getCompiled(s,this._configuration)}compositePreMultipliedAlpha(i,s,t=i.hasEmission){this._composite(i,s,2,t)}composite(i,s){this._composite(i,s,1,i.hasEmission)}blitDepthToLinearDepth(i,s){this._composite(i,s,3)}_composite(i,t,o,e=!1){this._configuration.mode=o,this._configuration.blendEmissive=e,this._passParameters.texture=t;const n=this._techniques.get(s,this._configuration);this._rctx.bindTechnique(n,i,this._passParameters),this._rctx.screen.draw()}}export{o as Compositor};
2
+ import{C as i}from"../../../../chunks/Compositing.glsl.js";import{CompositingTechnique as s}from"../shaders/CompositingTechnique.js";import{CompositingTechniqueConfiguration as t}from"../shaders/CompositingTechniqueConfiguration.js";class o{constructor(s,o){this._rctx=s,this._techniques=o,this._configuration=new t,this._passParameters=new i}precompile(i,t,o){this._configuration.blendEmissive=o,i&&(this._configuration.mode=2,this._techniques.precompile(s,this._configuration)),t&&(this._configuration.mode=1,this._techniques.precompile(s,this._configuration)),this._configuration.mode=3,this._techniques.getCompiled(s,this._configuration)}compositePreMultipliedAlpha(i,s,t=i.hasEmission){this._composite(i,s,2,t)}composite(i,s){this._composite(i,s,1,i.hasEmission)}blitDepthToLinearDepth(i,s){this._composite(i,s,3)}_composite(i,t,o,e=!1){this._configuration.mode=o,this._configuration.blendEmissive=e,this._passParameters.texture=t;const n=this._techniques.get(s,this._configuration);this._rctx.bindTechnique(n,i,this._passParameters),this._rctx.screen.draw()}}export{o as Compositor};
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
2
- import{__decorate as t}from"tslib";import{nextPowerOfTwo as e}from"../../../../core/mathUtils.js";import{disposeMaybe as i,destroyMaybe as r}from"../../../../core/maybe.js";import{property as s,subclass as h}from"../../../../core/accessorSupport/decorators.js";import{ortho as o}from"../../../../core/libs/gl-matrix-2/math/mat4.js";import{set as n}from"../../../../core/libs/gl-matrix-2/math/vec2.js";import{create as a}from"../../../../core/libs/gl-matrix-2/factories/vec2f64.js";import{create as u}from"../../../../core/libs/gl-matrix-2/factories/vec3f64.js";import{UNIT_X as c,ZEROS as l}from"../../../../core/libs/gl-matrix-2/factories/vec4f64.js";import{RenderNodeOutput as d,InternalRenderCategory as p}from"../../webgl.js";import{Frustum as _}from"../../state/Frustum.js";import{glLayout as m}from"../../support/buffer/glUtil.js";import{newLayout as f}from"../../support/buffer/InterleavedLayout.js";import g from"../../webgl/RenderCamera.js";import C from"../../webgl/RenderNode.js";import{ShaderOutputConfiguration as F}from"../core/shaderLibrary/ShaderOutputConfiguration.js";import{VertexArrayObject as w}from"./VertexArrayObject.js";import{a as x}from"../../../../chunks/CutFillDepth.glsl.js";import{CutFillDepthTechnique as R}from"../shaders/CutFillDepthTechnique.js";import{CutFillDepthTechniqueConfiguration as T}from"../shaders/CutFillDepthTechniqueConfiguration.js";import{a as P}from"../../../../chunks/CutFillReduction.glsl.js";import{CutFillReductionTechnique as y}from"../shaders/CutFillReductionTechnique.js";import{CutFillReductionTechniqueConfiguration as b}from"../shaders/CutFillReductionTechniqueConfiguration.js";import{a as B}from"../../../../chunks/CutFillTargetDepth.glsl.js";import{CutFillTargetDepthTechnique as D}from"../shaders/CutFillTargetDepthTechnique.js";import{ImmediateTask as j,TaskPriority as E}from"../../../support/Scheduler.js";import{Yield as S}from"../../../support/Yield.js";import{PrimitiveType as q,DataType as O}from"../../../webgl/enums.js";import{Sync as v}from"../../../webgl/Sync.js";import{VertexBuffer as V}from"../../../webgl/VertexBuffer.js";let A=class extends C{constructor(t){super(t),this.consumes={required:[d.TRANSPARENT]},this.produces=p.CUTFILL_COMPUTATION,this._cutFillTargetDepthConfiguration=new F,this._cutFillDepthConfiguration=new T,this._cutFillReductionConfiguration=new b,this._cutFillTargetDepthParameters=new B,this._cutFillDepthParameters=new x,this._cutFillReductionParameters=new P,this.needsRender=!1,this.readyToRun=!1,this.done=!0,this._frameTask=j,this._result=new k,this._localOrigin=u(),this._maxTextureSize=512,this._width=0,this._height=0,this._reducedWidth=0,this._reducedHeight=0,this._depthFormat=14,this._colorFormat=11,this._numChannels=2,this._targetGeometryVao=null,this._numReductions=3,this._reductionPasses=0,this._pixelBufferSize=0,this._pixelBufferOffset=0,this._perReductionPixelBufferSize=0}initialize(){this._frameTask=this.view.resourceController.scheduler.registerTask(E.VOLUME_MEASUREMENT,this),this.addHandles(this._frameTask),this._maxTextureSize=Math.min(this._maxTextureSize,this.fboCache.rctx.parameters.maxTextureSize),this._cutFillTargetDepthConfiguration.output=9,this._frustum=new _(this.view.renderCoordsHelper)}destroy(){this._targetGeometryVao=i(this._targetGeometryVao);const t=this.gl;this._sync=r(this._sync),this._pixelBuffer&&(t.deleteBuffer(this._pixelBuffer),this._pixelBuffer=null,this._pixelBufferSize=0)}precompile(){this.view.stage.renderer.precompileCutFillOrthographicReferenceDepth()}render(t){const e=t.find(({name:t})=>t===this.produces);if(!this._orthographicCamera||!this._targetGeometryVao||!this.needsRender||this._sync)return e;const i=this.techniques.getCompiled(D,this._cutFillTargetDepthConfiguration);this._cutFillDepthConfiguration.preparePass=0;const r=this.techniques.getCompiled(R,this._cutFillDepthConfiguration);this._cutFillDepthConfiguration.preparePass=1;const s=this.techniques.getCompiled(R,this._cutFillDepthConfiguration);this._cutFillReductionConfiguration.reductionPass=0;const h=this.techniques.getCompiled(y,this._cutFillReductionConfiguration);this._cutFillReductionConfiguration.reductionPass=1;const o=this.techniques.getCompiled(y,this._cutFillReductionConfiguration);this._cutFillReductionConfiguration.reductionPass=2;const n=this.techniques.getCompiled(y,this._cutFillReductionConfiguration);if(!(i&&r&&s&&h&&o&&n))return this.requestRender(1),e;this.needsRender=!1;const a=this.renderingContext,u=this.fboCache,d=this.gl,p=a.getViewport(),_=u.acquire(this._width,this._height,"cutfill reference depth",this._depthFormat);a.bindFramebuffer(_.fbo),a.setViewport(0,0,this._width,this._height),a.clear(1280),this.view.stage.renderer.renderCutFillOrthographicReferenceDepth(this._orthographicCamera);const m=u.acquire(this._width,this._height,"cutfill target depth",this._depthFormat);a.bindFramebuffer(m.fbo),a.setViewport(0,0,this._width,this._height),a.setClearDepth(1),a.clear(256),this._cutFillTargetDepthParameters.origin=this._localOrigin,this._cutFillTargetDepthParameters.cutFillCamera=this._orthographicCamera,a.bindTechnique(i,this.bindParameters,this._cutFillTargetDepthParameters),a.bindVAO(this._targetGeometryVao),a.drawArrays(q.TRIANGLES,0,this._targetGeometryVao.vertexCount("geometry"));const f=u.acquire(this._width,this._height,"cutfill reduction even",this._colorFormat),g=u.acquire(this._width,this._height,"cutfill reduction odd",this._colorFormat);return this._cutFillDepthParameters.referenceDepthTexture=_.depthTexture,this._cutFillDepthParameters.targetDepthTexture=m.depthTexture,this._pixelBuffer||(this._pixelBuffer=d.createBuffer()),d.bindBuffer(d.PIXEL_PACK_BUFFER,this._pixelBuffer),d.bufferData(d.PIXEL_PACK_BUFFER,this._pixelBufferSize,d.STREAM_READ),this._prepareFBO(f,this.width,this.height),a.bindTechnique(r,this.bindParameters,this._cutFillDepthParameters),a.screen.draw(),this._runPyramidReduction(f,g,h),this._prepareFBO(f,this.width,this.height,c),a.bindTechnique(s,this.bindParameters,this._cutFillDepthParameters),a.screen.draw(),this._runPyramidReduction(f,g,o),this._prepareFBO(f,this.width,this.height,l),a.bindTechnique(s,this.bindParameters,this._cutFillDepthParameters),a.screen.draw(),this._runPyramidReduction(f,g,n),_.release(),m.release(),f.release(),g.release(),d.bindBuffer(d.PIXEL_PACK_BUFFER,null),a.setViewport(p.x,p.y,p.width,p.height),this._sync=new v(d),setTimeout(()=>this.readyToRun=!0,0),e}update(t,i){if(!this.done)return;this.done=!1;const r=this.renderingContext,{cameraDimensions:{width:s,height:h},localOriginRenderSpace:o}=t,n=this._maxTextureSize,a=h/s,u=s>h?n:n/a,c=s>h?n*a:n;this._width=e(u),this._height=e(c);const l=[this._width,this._height];this._orthographicCamera=this._createCamera(t,l),this._frustum?.update(this._orthographicCamera),this._updateTargetVao(r,i),this._localOrigin=o,this._reductionPasses=Math.ceil(Math.log2(Math.min(this._width,this._height))),this._reducedWidth=Math.ceil(this._width/2**this._reductionPasses),this._reducedHeight=Math.ceil(this._height/2**this._reductionPasses),this._perReductionPixelBufferSize=this._reducedWidth*this._reducedHeight*this._numChannels*4,this._pixelBufferSize=this._perReductionPixelBufferSize*this._numReductions,this._pixelBufferOffset=0,this.needsRender=!0,this.requestRender(1)}runTask(){if(!this._sync)return void(this.readyToRun=!1);try{if(!this._sync.poll())return S}catch(e){return this.readyToRun=!1,void(this._sync=r(this._sync))}this.readyToRun=!1,this._sync=r(this._sync);const t=this.gl;this._cpuBuffer=new Float32Array(this._pixelBufferSize/4),t.bindBuffer(t.PIXEL_PACK_BUFFER,this._pixelBuffer),t.getBufferSubData(t.PIXEL_PACK_BUFFER,0,this._cpuBuffer),t.bindBuffer(t.PIXEL_PACK_BUFFER,null),this._updateResults(this._cpuBuffer),this.done=!0}getResult(){return this._result}get frustum(){return this._frustum}get width(){return this._width}get height(){return this._height}get updating(){return this.readyToRun||!this.done||this._frameTask.updating}_runPyramidReduction(t,e,i){const r=this.renderingContext,s=this.gl;let h=this._width,o=this._height;for(let n=0;n<this._reductionPasses;n++)h=Math.ceil(h/2),o=Math.ceil(o/2),this._cutFillReductionParameters.depthTexture=t.getTexture(),this._prepareFBO(e,h,o),r.bindTechnique(i,this.bindParameters,this._cutFillReductionParameters),r.screen.draw(),[t,e]=[e,t];s.readPixels(0,0,h,o,33319,O.FLOAT,this._pixelBufferOffset),this._pixelBufferOffset+=this._perReductionPixelBufferSize}_updateResults(t){const e=new U(0,1,a()),i=new U(0,0,a());for(let r=0;r<this._reducedWidth;r++)for(let s=0;s<this._reducedHeight;s++){let h=(r+s*this._reducedWidth)*this._numChannels;const o=this._reducedWidth*this._reducedHeight*this._numChannels;e.totalDepth+=t[h],i.totalDepth+=t[h+1],h+=o;const n=t[h];n<e.depthExtremum&&(e.depthExtremum=n,M(e.depthExtremumCoords,t[h+1],this._width)),h+=o;const a=t[h];a>i.depthExtremum&&(i.depthExtremum=a,M(i.depthExtremumCoords,t[h+1],this._width))}this._result=new k(this._width,this._height,e,i)}_prepareFBO(t,e,i,r=l){const s=this.renderingContext;s.bindFramebuffer(t.fbo),s.setViewport(0,0,e,i),s.setClearColor(r[0],r[1],r[2],r[3]),s.clear(16384)}_createCamera(t,e){const{cameraPositionRenderSpace:i,localOriginRenderSpace:r,northVector:s,cameraDimensions:{width:h,height:n},cameraNearFar:{near:a,far:u}}=t,c=new g({eye:i,center:r,up:s,near:a,far:u});return c.viewport=[0,0,e[0],e[1]],o(c.projectionMatrix,-h/2,h/2,-n/2,n/2,a,u),c}_updateTargetVao(t,e){this._targetGeometryVao=i(this._targetGeometryVao);const r=e.indices.length,s=z.createBuffer(r),h=s.position,{positions:o,indices:n}=e;for(let i=0;i<n.length;++i){const t=3*n[i];h.set(i,0,o[t]),h.set(i,1,o[t+1]),h.set(i,2,o[t+2])}const a=new V(t,m(z),s.buffer);this._targetGeometryVao=new w(t,a)}};t([s()],A.prototype,"consumes",void 0),t([s()],A.prototype,"produces",void 0),t([s()],A.prototype,"needsRender",void 0),t([s()],A.prototype,"readyToRun",void 0),t([s()],A.prototype,"done",void 0),t([s()],A.prototype,"updating",null),t([s()],A.prototype,"_frameTask",void 0),A=t([h("esri.views.3d.webgl-engine.lib.CutFillComputationRenderNode")],A);const z=f().vec3f("position").freeze();function M(t,e,i){const r=e%i,s=Math.floor(e/i);n(t,r,s)}class L{constructor(t,e){this.positions=t,this.indices=e}}class U{constructor(t,e,i){this.totalDepth=t,this.depthExtremum=e,this.depthExtremumCoords=i}}class k{constructor(t=0,e=0,i=new U(0,1,a()),r=new U(0,0,a())){this.width=t,this.height=e,this.cut=i,this.fill=r}}export{A as CutFillComputationRenderNode,k as CutFillComputationResult,U as CutFillDepthResult,L as TargetGeometryRenderInfo};
2
+ import{__decorate as t}from"tslib";import{nextPowerOfTwo as e}from"../../../../core/mathUtils.js";import{disposeMaybe as i,destroyMaybe as r}from"../../../../core/maybe.js";import{property as s,subclass as h}from"../../../../core/accessorSupport/decorators.js";import{ortho as o}from"../../../../core/libs/gl-matrix-2/math/mat4.js";import{set as n}from"../../../../core/libs/gl-matrix-2/math/vec2.js";import{create as a}from"../../../../core/libs/gl-matrix-2/factories/vec2f64.js";import{create as u}from"../../../../core/libs/gl-matrix-2/factories/vec3f64.js";import{UNIT_X as c,ZEROS as l}from"../../../../core/libs/gl-matrix-2/factories/vec4f64.js";import{RenderNodeOutput as d,InternalRenderCategory as p}from"../../webgl.js";import{Frustum as _}from"../../state/Frustum.js";import{glLayout as m}from"../../support/buffer/glUtil.js";import{newLayout as f}from"../../support/buffer/InterleavedLayout.js";import g from"../../webgl/RenderCamera.js";import C from"../../webgl/RenderNode.js";import{ShaderOutputConfiguration as F}from"../core/shaderLibrary/ShaderOutputConfiguration.js";import{VertexArrayObject as w}from"./VertexArrayObject.js";import{C as x}from"../../../../chunks/CutFillDepth.glsl.js";import{CutFillDepthTechnique as R}from"../shaders/CutFillDepthTechnique.js";import{CutFillDepthTechniqueConfiguration as T}from"../shaders/CutFillDepthTechniqueConfiguration.js";import{C as P}from"../../../../chunks/CutFillReduction.glsl.js";import{CutFillReductionTechnique as y}from"../shaders/CutFillReductionTechnique.js";import{CutFillReductionTechniqueConfiguration as b}from"../shaders/CutFillReductionTechniqueConfiguration.js";import{C as B}from"../../../../chunks/CutFillTargetDepth.glsl.js";import{CutFillTargetDepthTechnique as D}from"../shaders/CutFillTargetDepthTechnique.js";import{ImmediateTask as j,TaskPriority as E}from"../../../support/Scheduler.js";import{Yield as S}from"../../../support/Yield.js";import{PrimitiveType as q,DataType as O}from"../../../webgl/enums.js";import{Sync as v}from"../../../webgl/Sync.js";import{VertexBuffer as V}from"../../../webgl/VertexBuffer.js";let A=class extends C{constructor(t){super(t),this.consumes={required:[d.TRANSPARENT]},this.produces=p.CUTFILL_COMPUTATION,this._cutFillTargetDepthConfiguration=new F,this._cutFillDepthConfiguration=new T,this._cutFillReductionConfiguration=new b,this._cutFillTargetDepthParameters=new B,this._cutFillDepthParameters=new x,this._cutFillReductionParameters=new P,this.needsRender=!1,this.readyToRun=!1,this.done=!0,this._frameTask=j,this._result=new k,this._localOrigin=u(),this._maxTextureSize=512,this._width=0,this._height=0,this._reducedWidth=0,this._reducedHeight=0,this._depthFormat=14,this._colorFormat=11,this._numChannels=2,this._targetGeometryVao=null,this._numReductions=3,this._reductionPasses=0,this._pixelBufferSize=0,this._pixelBufferOffset=0,this._perReductionPixelBufferSize=0}initialize(){this._frameTask=this.view.resourceController.scheduler.registerTask(E.VOLUME_MEASUREMENT,this),this.addHandles(this._frameTask),this._maxTextureSize=Math.min(this._maxTextureSize,this.fboCache.rctx.parameters.maxTextureSize),this._cutFillTargetDepthConfiguration.output=9,this._frustum=new _(this.view.renderCoordsHelper)}destroy(){this._targetGeometryVao=i(this._targetGeometryVao);const t=this.gl;this._sync=r(this._sync),this._pixelBuffer&&(t.deleteBuffer(this._pixelBuffer),this._pixelBuffer=null,this._pixelBufferSize=0)}precompile(){this.view.stage.renderer.precompileCutFillOrthographicReferenceDepth()}render(t){const e=t.find(({name:t})=>t===this.produces);if(!this._orthographicCamera||!this._targetGeometryVao||!this.needsRender||this._sync)return e;const i=this.techniques.getCompiled(D,this._cutFillTargetDepthConfiguration);this._cutFillDepthConfiguration.preparePass=0;const r=this.techniques.getCompiled(R,this._cutFillDepthConfiguration);this._cutFillDepthConfiguration.preparePass=1;const s=this.techniques.getCompiled(R,this._cutFillDepthConfiguration);this._cutFillReductionConfiguration.reductionPass=0;const h=this.techniques.getCompiled(y,this._cutFillReductionConfiguration);this._cutFillReductionConfiguration.reductionPass=1;const o=this.techniques.getCompiled(y,this._cutFillReductionConfiguration);this._cutFillReductionConfiguration.reductionPass=2;const n=this.techniques.getCompiled(y,this._cutFillReductionConfiguration);if(!(i&&r&&s&&h&&o&&n))return this.requestRender(1),e;this.needsRender=!1;const a=this.renderingContext,u=this.fboCache,d=this.gl,p=a.getViewport(),_=u.acquire(this._width,this._height,"cutfill reference depth",this._depthFormat);a.bindFramebuffer(_.fbo),a.setViewport(0,0,this._width,this._height),a.clear(1280),this.view.stage.renderer.renderCutFillOrthographicReferenceDepth(this._orthographicCamera);const m=u.acquire(this._width,this._height,"cutfill target depth",this._depthFormat);a.bindFramebuffer(m.fbo),a.setViewport(0,0,this._width,this._height),a.setClearDepth(1),a.clear(256),this._cutFillTargetDepthParameters.origin=this._localOrigin,this._cutFillTargetDepthParameters.cutFillCamera=this._orthographicCamera,a.bindTechnique(i,this.bindParameters,this._cutFillTargetDepthParameters),a.bindVAO(this._targetGeometryVao),a.drawArrays(q.TRIANGLES,0,this._targetGeometryVao.vertexCount("geometry"));const f=u.acquire(this._width,this._height,"cutfill reduction even",this._colorFormat),g=u.acquire(this._width,this._height,"cutfill reduction odd",this._colorFormat);return this._cutFillDepthParameters.referenceDepthTexture=_.depthTexture,this._cutFillDepthParameters.targetDepthTexture=m.depthTexture,this._pixelBuffer||(this._pixelBuffer=d.createBuffer()),d.bindBuffer(d.PIXEL_PACK_BUFFER,this._pixelBuffer),d.bufferData(d.PIXEL_PACK_BUFFER,this._pixelBufferSize,d.STREAM_READ),this._prepareFBO(f,this.width,this.height),a.bindTechnique(r,this.bindParameters,this._cutFillDepthParameters),a.screen.draw(),this._runPyramidReduction(f,g,h),this._prepareFBO(f,this.width,this.height,c),a.bindTechnique(s,this.bindParameters,this._cutFillDepthParameters),a.screen.draw(),this._runPyramidReduction(f,g,o),this._prepareFBO(f,this.width,this.height,l),a.bindTechnique(s,this.bindParameters,this._cutFillDepthParameters),a.screen.draw(),this._runPyramidReduction(f,g,n),_.release(),m.release(),f.release(),g.release(),d.bindBuffer(d.PIXEL_PACK_BUFFER,null),a.setViewport(p.x,p.y,p.width,p.height),this._sync=new v(d),setTimeout(()=>this.readyToRun=!0,0),e}update(t,i){if(!this.done)return;this.done=!1;const r=this.renderingContext,{cameraDimensions:{width:s,height:h},localOriginRenderSpace:o}=t,n=this._maxTextureSize,a=h/s,u=s>h?n:n/a,c=s>h?n*a:n;this._width=e(u),this._height=e(c);const l=[this._width,this._height];this._orthographicCamera=this._createCamera(t,l),this._frustum?.update(this._orthographicCamera),this._updateTargetVao(r,i),this._localOrigin=o,this._reductionPasses=Math.ceil(Math.log2(Math.min(this._width,this._height))),this._reducedWidth=Math.ceil(this._width/2**this._reductionPasses),this._reducedHeight=Math.ceil(this._height/2**this._reductionPasses),this._perReductionPixelBufferSize=this._reducedWidth*this._reducedHeight*this._numChannels*4,this._pixelBufferSize=this._perReductionPixelBufferSize*this._numReductions,this._pixelBufferOffset=0,this.needsRender=!0,this.requestRender(1)}runTask(){if(!this._sync)return void(this.readyToRun=!1);try{if(!this._sync.poll())return S}catch(e){return this.readyToRun=!1,void(this._sync=r(this._sync))}this.readyToRun=!1,this._sync=r(this._sync);const t=this.gl;this._cpuBuffer=new Float32Array(this._pixelBufferSize/4),t.bindBuffer(t.PIXEL_PACK_BUFFER,this._pixelBuffer),t.getBufferSubData(t.PIXEL_PACK_BUFFER,0,this._cpuBuffer),t.bindBuffer(t.PIXEL_PACK_BUFFER,null),this._updateResults(this._cpuBuffer),this.done=!0}getResult(){return this._result}get frustum(){return this._frustum}get width(){return this._width}get height(){return this._height}get updating(){return this.readyToRun||!this.done||this._frameTask.updating}_runPyramidReduction(t,e,i){const r=this.renderingContext,s=this.gl;let h=this._width,o=this._height;for(let n=0;n<this._reductionPasses;n++)h=Math.ceil(h/2),o=Math.ceil(o/2),this._cutFillReductionParameters.depthTexture=t.getTexture(),this._prepareFBO(e,h,o),r.bindTechnique(i,this.bindParameters,this._cutFillReductionParameters),r.screen.draw(),[t,e]=[e,t];s.readPixels(0,0,h,o,33319,O.FLOAT,this._pixelBufferOffset),this._pixelBufferOffset+=this._perReductionPixelBufferSize}_updateResults(t){const e=new U(0,1,a()),i=new U(0,0,a());for(let r=0;r<this._reducedWidth;r++)for(let s=0;s<this._reducedHeight;s++){let h=(r+s*this._reducedWidth)*this._numChannels;const o=this._reducedWidth*this._reducedHeight*this._numChannels;e.totalDepth+=t[h],i.totalDepth+=t[h+1],h+=o;const n=t[h];n<e.depthExtremum&&(e.depthExtremum=n,M(e.depthExtremumCoords,t[h+1],this._width)),h+=o;const a=t[h];a>i.depthExtremum&&(i.depthExtremum=a,M(i.depthExtremumCoords,t[h+1],this._width))}this._result=new k(this._width,this._height,e,i)}_prepareFBO(t,e,i,r=l){const s=this.renderingContext;s.bindFramebuffer(t.fbo),s.setViewport(0,0,e,i),s.setClearColor(r[0],r[1],r[2],r[3]),s.clear(16384)}_createCamera(t,e){const{cameraPositionRenderSpace:i,localOriginRenderSpace:r,northVector:s,cameraDimensions:{width:h,height:n},cameraNearFar:{near:a,far:u}}=t,c=new g({eye:i,center:r,up:s,near:a,far:u});return c.viewport=[0,0,e[0],e[1]],o(c.projectionMatrix,-h/2,h/2,-n/2,n/2,a,u),c}_updateTargetVao(t,e){this._targetGeometryVao=i(this._targetGeometryVao);const r=e.indices.length,s=z.createBuffer(r),h=s.position,{positions:o,indices:n}=e;for(let i=0;i<n.length;++i){const t=3*n[i];h.set(i,0,o[t]),h.set(i,1,o[t+1]),h.set(i,2,o[t+2])}const a=new V(t,m(z),s.buffer);this._targetGeometryVao=new w(t,a)}};t([s()],A.prototype,"consumes",void 0),t([s()],A.prototype,"produces",void 0),t([s()],A.prototype,"needsRender",void 0),t([s()],A.prototype,"readyToRun",void 0),t([s()],A.prototype,"done",void 0),t([s()],A.prototype,"updating",null),t([s()],A.prototype,"_frameTask",void 0),A=t([h("esri.views.3d.webgl-engine.lib.CutFillComputationRenderNode")],A);const z=f().vec3f("position").freeze();function M(t,e,i){const r=e%i,s=Math.floor(e/i);n(t,r,s)}class L{constructor(t,e){this.positions=t,this.indices=e}}class U{constructor(t,e,i){this.totalDepth=t,this.depthExtremum=e,this.depthExtremumCoords=i}}class k{constructor(t=0,e=0,i=new U(0,1,a()),r=new U(0,0,a())){this.width=t,this.height=e,this.cut=i,this.fill=r}}export{A as CutFillComputationRenderNode,k as CutFillComputationResult,U as CutFillDepthResult,L as TargetGeometryRenderInfo};
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
2
- import{__decorate as e}from"tslib";import{disposeMaybe as t}from"../../../../core/maybe.js";import{watch as i,syncAndInitial as s}from"../../../../core/reactiveUtils.js";import{property as o,subclass as r}from"../../../../core/accessorSupport/decorators.js";import{copy as a}from"../../../../core/libs/gl-matrix-2/math/vec3.js";import{InternalRenderCategory as l}from"../../webgl.js";import{glLayout as u}from"../../support/buffer/glUtil.js";import{newLayout as n}from"../../support/buffer/InterleavedLayout.js";import c from"../../webgl/RenderNode.js";import{VertexArrayObject as m}from"./VertexArrayObject.js";import{a as h}from"../../../../chunks/CutFillComposition.glsl.js";import{CutFillCompositionTechnique as d}from"../shaders/CutFillCompositionTechnique.js";import{a as f}from"../../../../chunks/CutFillMask.glsl.js";import{CutFillMaskTechnique as p}from"../shaders/CutFillMaskTechnique.js";import{DefaultMaterialPassParameters as C,DefaultMaterialDrawParameters as _,DefaultMaterialTechnique as b}from"../shaders/DefaultMaterialTechnique.js";import{DefaultMaterialTechniqueConfiguration as g}from"../shaders/DefaultMaterialTechniqueConfiguration.js";import{DepthStencilAttachment as V,PrimitiveType as v}from"../../../webgl/enums.js";import{noParameters as T}from"../../../webgl/NoParameters.js";import{VertexBuffer as w}from"../../../webgl/VertexBuffer.js";let F=class extends c{constructor(e){super(e),this.consumes={required:[l.CUTFILL_COLOR,l.GROUND_DEPTH]},this.produces=l.CUTFILL_COLOR,this.measureType="cut-fill",this._vaoCut=null,this._vaoFill=null,this._maskParameters=new f,this._cutVolumeParameters=new C,this._fillVolumeParameters=new C,this._compositeParameters=new h,this._drawParameters=new _;const t=1===e.view.state.viewingMode;this._cutVolumeConfiguration=new g(t),this._cutVolumeConfiguration.customDepthTest=2,this._cutVolumeConfiguration.writeDepth=!1,this._cutVolumeConfiguration.cullFace=1,this._cutVolumeConfiguration.doubleSidedMode=2,this._fillVolumeConfiguration=new g(t),this._fillVolumeConfiguration.customDepthTest=1,this._fillVolumeConfiguration.cullFace=2}initialize(){this.addHandles([i(()=>[this.cutColor,this.fillColor],()=>this._updateColors(),s),i(()=>this.measureType,()=>this.requestRender(1),s)])}destroy(){this._disposeVaos()}render(e){"cut-fill"===this.measureType?(this._cutVolumeConfiguration.cullFace=1,this._cutVolumeConfiguration.doubleSidedMode=2):(this._cutVolumeConfiguration.cullFace=0,this._cutVolumeConfiguration.doubleSidedMode=0);const t=this.techniques.getCompiled(b,this._cutVolumeConfiguration),i=this.techniques.getCompiled(b,this._fillVolumeConfiguration),s=this.techniques.getCompiled(p),o=this.techniques.getCompiled(d),r=e.find(({name:e})=>e===this.produces);if(!this._vaoCut||!this._vaoFill)return r;const a=this._vaoCut.vertexCount("geometry"),u=this._vaoFill.vertexCount("geometry");if(!(t&&i&&s&&o))return this.requestRender(1),r;const n=this.bindParameters,c=n.camera,m=c.fullViewport[2],h=c.fullViewport[3],f=this.renderingContext,C=this.fboCache,_=e.find(({name:e})=>e===l.GROUND_DEPTH),g=C.acquire(m,h,"cutfill color mask",2);g.attachDepth(_.getAttachment(V)),f.bindFramebuffer(g.fbo),f.setClearColor(0,0,0,1),f.clear(17408),f.setViewport(0,0,m,h),f.bindTechnique(s,n,T,this._maskParameters),f.setFaceCullingEnabled(!1),f.setStencilTestEnabled(!0),f.setStencilOpSeparate(1028,7680,34055,7680),f.setStencilOpSeparate(1029,7680,34056,7680),f.setDepthWriteEnabled(!1),f.bindVAO(this._vaoCut),f.setDepthTestEnabled(!0),f.setStencilWriteMask(255),f.setStencilFunction(519,0,255),f.setColorMask(!1,!1,!1,!1),f.drawArrays(v.TRIANGLES,0,a),f.setDepthTestEnabled(!1),f.setStencilWriteMask(0),f.setStencilFunction(517,0,255),f.setColorMask(!0,!1,!1,!1),f.drawArrays(v.TRIANGLES,0,a),f.bindVAO(this._vaoFill),f.setDepthTestEnabled(!0),f.setStencilWriteMask(255),f.setStencilFunction(519,0,255),f.setColorMask(!1,!0,!1,!1),f.drawArrays(v.TRIANGLES,0,u);const w=C.acquire(m,h,"cutfill color cut volume",5);w.acquireDepth(14),f.blitFramebuffer(r.fbo,w.fbo,256),f.bindFramebuffer(w.fbo),f.setClearColor(0,0,0,0),f.clear(16384),f.setColorMask(!0,!0,!0,!0),f.bindTechnique(t,this.bindParameters,this._cutVolumeParameters,this._drawParameters),f.bindVAO(this._vaoCut),f.drawArrays(v.TRIANGLES,0,a);const F=C.acquire(m,h,"cutfill color fill volume",5);F.acquireDepth(14),f.blitFramebuffer(r.fbo,F.fbo,256),f.bindFramebuffer(F.fbo),f.setClearColor(0,0,0,0),f.clear(16384),f.setColorMask(!0,!0,!0,!0),f.bindTechnique(i,this.bindParameters,this._fillVolumeParameters,this._drawParameters),f.bindVAO(this._vaoFill),f.drawArrays(v.TRIANGLES,0,u);const P=this.fboCache.acquire(m,h,this.produces);return f.bindFramebuffer(P.fbo),this._compositeParameters.color=r.getTexture(),this._compositeParameters.cutVolume=w.getTexture(),this._compositeParameters.fillVolume=F.getTexture(),this._compositeParameters.cutFillMask=g.getTexture(),this._compositeParameters.sceneDepth=r.getTexture(V),this._compositeParameters.referenceDepth=_.getTexture(V),this.borderColor.toUnitRGBA(this._compositeParameters.borderColor),f.bindTechnique(o,n,this._compositeParameters),f.screen.draw(),g.release(),w.release(),F.release(),P.attachDepth(r.getAttachment(V)),P}enable(){this.produces=l.CUTFILL_COLOR,this.requestRender(1)}disable(){this.produces="disabled",this.requestRender(1)}updateGeometries(e,t,i){this._disposeVaos(),this._vaoCut=this._createVao(e),this._vaoFill=this._createVao(t),this._maskParameters.origin=i,a(this._drawParameters.origin,i),this.requestRender(1)}_updateColors(){this._cutVolumeParameters.diffuse=this.cutColor.toUnitRGB(),this._cutVolumeParameters.opacity=this.cutColor.a,this._fillVolumeParameters.diffuse=this.fillColor.toUnitRGB(),this._fillVolumeParameters.opacity=this.fillColor.a,this.requestRender(1)}_createVao(e){const{vertices:t,normals:i,indicesBottom:s,indicesExtruded:o}=e,r=s.length+o.length,a=this.renderingContext,l=P.createBuffer(r),{position:n,normal:c}=l;let h=0;for(let u=0;u<s.length;u++){const e=3*s[u];n.set(h,0,t[e]),n.set(h,1,t[e+1]),n.set(h,2,t[e+2]),c.set(h,0,i[e]),c.set(h,1,i[e+1]),c.set(h,2,i[e+2]),h++}for(let u=0;u<o.length;u++){const e=3*o[u];n.set(h,0,t[e]),n.set(h,1,t[e+1]),n.set(h,2,t[e+2]),c.set(h,0,i[e]),c.set(h,1,i[e+1]),c.set(h,2,i[e+2]),h++}const d=new w(a,u(P),l.buffer);return new m(a,d)}_disposeVaos(){this._vaoCut=t(this._vaoCut),this._vaoFill=t(this._vaoFill)}};e([o()],F.prototype,"consumes",void 0),e([o()],F.prototype,"produces",void 0),e([o()],F.prototype,"cutColor",void 0),e([o()],F.prototype,"fillColor",void 0),e([o()],F.prototype,"borderColor",void 0),e([o()],F.prototype,"measureType",void 0),F=e([r("esri.views.3d.webgl-engine.lib.CutFillVisualizationRenderNode")],F);const P=n().vec3f("position").vec3f("normal").freeze();class q{constructor(e,t,i,s){this.vertices=e,this.indicesBottom=t,this.indicesExtruded=i,this.normals=s}}export{F as CutFillVisualizationRenderNode,q as VolumeGeometry};
2
+ import{__decorate as e}from"tslib";import{disposeMaybe as t}from"../../../../core/maybe.js";import{watch as i,syncAndInitial as s}from"../../../../core/reactiveUtils.js";import{property as o,subclass as r}from"../../../../core/accessorSupport/decorators.js";import{copy as a}from"../../../../core/libs/gl-matrix-2/math/vec3.js";import{InternalRenderCategory as l}from"../../webgl.js";import{glLayout as u}from"../../support/buffer/glUtil.js";import{newLayout as n}from"../../support/buffer/InterleavedLayout.js";import c from"../../webgl/RenderNode.js";import{VertexArrayObject as m}from"./VertexArrayObject.js";import{C as h}from"../../../../chunks/CutFillComposition.glsl.js";import{CutFillCompositionTechnique as d}from"../shaders/CutFillCompositionTechnique.js";import{C as f}from"../../../../chunks/CutFillMask.glsl.js";import{CutFillMaskTechnique as p}from"../shaders/CutFillMaskTechnique.js";import{DefaultMaterialPassParameters as C,DefaultMaterialDrawParameters as _,DefaultMaterialTechnique as b}from"../shaders/DefaultMaterialTechnique.js";import{DefaultMaterialTechniqueConfiguration as g}from"../shaders/DefaultMaterialTechniqueConfiguration.js";import{DepthStencilAttachment as V,PrimitiveType as v}from"../../../webgl/enums.js";import{noParameters as T}from"../../../webgl/NoParameters.js";import{VertexBuffer as w}from"../../../webgl/VertexBuffer.js";let F=class extends c{constructor(e){super(e),this.consumes={required:[l.CUTFILL_COLOR,l.GROUND_DEPTH]},this.produces=l.CUTFILL_COLOR,this.measureType="cut-fill",this._vaoCut=null,this._vaoFill=null,this._maskParameters=new f,this._cutVolumeParameters=new C,this._fillVolumeParameters=new C,this._compositeParameters=new h,this._drawParameters=new _;const t=1===e.view.state.viewingMode;this._cutVolumeConfiguration=new g(t),this._cutVolumeConfiguration.customDepthTest=2,this._cutVolumeConfiguration.writeDepth=!1,this._cutVolumeConfiguration.cullFace=1,this._cutVolumeConfiguration.doubleSidedMode=2,this._fillVolumeConfiguration=new g(t),this._fillVolumeConfiguration.customDepthTest=1,this._fillVolumeConfiguration.cullFace=2}initialize(){this.addHandles([i(()=>[this.cutColor,this.fillColor],()=>this._updateColors(),s),i(()=>this.measureType,()=>this.requestRender(1),s)])}destroy(){this._disposeVaos()}render(e){"cut-fill"===this.measureType?(this._cutVolumeConfiguration.cullFace=1,this._cutVolumeConfiguration.doubleSidedMode=2):(this._cutVolumeConfiguration.cullFace=0,this._cutVolumeConfiguration.doubleSidedMode=0);const t=this.techniques.getCompiled(b,this._cutVolumeConfiguration),i=this.techniques.getCompiled(b,this._fillVolumeConfiguration),s=this.techniques.getCompiled(p),o=this.techniques.getCompiled(d),r=e.find(({name:e})=>e===this.produces);if(!this._vaoCut||!this._vaoFill)return r;const a=this._vaoCut.vertexCount("geometry"),u=this._vaoFill.vertexCount("geometry");if(!(t&&i&&s&&o))return this.requestRender(1),r;const n=this.bindParameters,c=n.camera,m=c.fullViewport[2],h=c.fullViewport[3],f=this.renderingContext,C=this.fboCache,_=e.find(({name:e})=>e===l.GROUND_DEPTH),g=C.acquire(m,h,"cutfill color mask",2);g.attachDepth(_.getAttachment(V)),f.bindFramebuffer(g.fbo),f.setClearColor(0,0,0,1),f.clear(17408),f.setViewport(0,0,m,h),f.bindTechnique(s,n,T,this._maskParameters),f.setFaceCullingEnabled(!1),f.setStencilTestEnabled(!0),f.setStencilOpSeparate(1028,7680,34055,7680),f.setStencilOpSeparate(1029,7680,34056,7680),f.setDepthWriteEnabled(!1),f.bindVAO(this._vaoCut),f.setDepthTestEnabled(!0),f.setStencilWriteMask(255),f.setStencilFunction(519,0,255),f.setColorMask(!1,!1,!1,!1),f.drawArrays(v.TRIANGLES,0,a),f.setDepthTestEnabled(!1),f.setStencilWriteMask(0),f.setStencilFunction(517,0,255),f.setColorMask(!0,!1,!1,!1),f.drawArrays(v.TRIANGLES,0,a),f.bindVAO(this._vaoFill),f.setDepthTestEnabled(!0),f.setStencilWriteMask(255),f.setStencilFunction(519,0,255),f.setColorMask(!1,!0,!1,!1),f.drawArrays(v.TRIANGLES,0,u);const w=C.acquire(m,h,"cutfill color cut volume",5);w.acquireDepth(14),f.blitFramebuffer(r.fbo,w.fbo,256),f.bindFramebuffer(w.fbo),f.setClearColor(0,0,0,0),f.clear(16384),f.setColorMask(!0,!0,!0,!0),f.bindTechnique(t,this.bindParameters,this._cutVolumeParameters,this._drawParameters),f.bindVAO(this._vaoCut),f.drawArrays(v.TRIANGLES,0,a);const F=C.acquire(m,h,"cutfill color fill volume",5);F.acquireDepth(14),f.blitFramebuffer(r.fbo,F.fbo,256),f.bindFramebuffer(F.fbo),f.setClearColor(0,0,0,0),f.clear(16384),f.setColorMask(!0,!0,!0,!0),f.bindTechnique(i,this.bindParameters,this._fillVolumeParameters,this._drawParameters),f.bindVAO(this._vaoFill),f.drawArrays(v.TRIANGLES,0,u);const P=this.fboCache.acquire(m,h,this.produces);return f.bindFramebuffer(P.fbo),this._compositeParameters.color=r.getTexture(),this._compositeParameters.cutVolume=w.getTexture(),this._compositeParameters.fillVolume=F.getTexture(),this._compositeParameters.cutFillMask=g.getTexture(),this._compositeParameters.sceneDepth=r.getTexture(V),this._compositeParameters.referenceDepth=_.getTexture(V),this.borderColor.toUnitRGBA(this._compositeParameters.borderColor),f.bindTechnique(o,n,this._compositeParameters),f.screen.draw(),g.release(),w.release(),F.release(),P.attachDepth(r.getAttachment(V)),P}enable(){this.produces=l.CUTFILL_COLOR,this.requestRender(1)}disable(){this.produces="disabled",this.requestRender(1)}updateGeometries(e,t,i){this._disposeVaos(),this._vaoCut=this._createVao(e),this._vaoFill=this._createVao(t),this._maskParameters.origin=i,a(this._drawParameters.origin,i),this.requestRender(1)}_updateColors(){this._cutVolumeParameters.diffuse=this.cutColor.toUnitRGB(),this._cutVolumeParameters.opacity=this.cutColor.a,this._fillVolumeParameters.diffuse=this.fillColor.toUnitRGB(),this._fillVolumeParameters.opacity=this.fillColor.a,this.requestRender(1)}_createVao(e){const{vertices:t,normals:i,indicesBottom:s,indicesExtruded:o}=e,r=s.length+o.length,a=this.renderingContext,l=P.createBuffer(r),{position:n,normal:c}=l;let h=0;for(let u=0;u<s.length;u++){const e=3*s[u];n.set(h,0,t[e]),n.set(h,1,t[e+1]),n.set(h,2,t[e+2]),c.set(h,0,i[e]),c.set(h,1,i[e+1]),c.set(h,2,i[e+2]),h++}for(let u=0;u<o.length;u++){const e=3*o[u];n.set(h,0,t[e]),n.set(h,1,t[e+1]),n.set(h,2,t[e+2]),c.set(h,0,i[e]),c.set(h,1,i[e+1]),c.set(h,2,i[e+2]),h++}const d=new w(a,u(P),l.buffer);return new m(a,d)}_disposeVaos(){this._vaoCut=t(this._vaoCut),this._vaoFill=t(this._vaoFill)}};e([o()],F.prototype,"consumes",void 0),e([o()],F.prototype,"produces",void 0),e([o()],F.prototype,"cutColor",void 0),e([o()],F.prototype,"fillColor",void 0),e([o()],F.prototype,"borderColor",void 0),e([o()],F.prototype,"measureType",void 0),F=e([r("esri.views.3d.webgl-engine.lib.CutFillVisualizationRenderNode")],F);const P=n().vec3f("position").vec3f("normal").freeze();class q{constructor(e,t,i,s){this.vertices=e,this.indicesBottom=t,this.indicesExtruded=i,this.normals=s}}export{F as CutFillVisualizationRenderNode,q as VolumeGeometry};
@@ -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 t}from"../../../../core/reactiveUtils.js";import{property as i,subclass as s}from"../../../../core/accessorSupport/decorators.js";import{set as a}from"../../../../core/libs/gl-matrix-2/math/vec2.js";import{copy as r,set as n,scale as o,floor as h,subtract as l}from"../../../../core/libs/gl-matrix-2/math/vec3.js";import{create as p}from"../../../../core/libs/gl-matrix-2/factories/vec3f64.js";import{create as u,set as m,positiveInfinity as c,equals as d}from"../../../../geometry/support/aaBoundingBox.js";import{InternalRenderCategory as _}from"../../webgl.js";import{addWraparound as g}from"../../layers/i3s/I3SUtil.js";import C from"../../webgl/RenderNode.js";import{a as f}from"../../../../chunks/GaussianSplat.glsl.js";import{G as P}from"../../../../chunks/GaussianSplatComposition.glsl.js";import{GaussianSplatCompositionTechnique as b}from"../shaders/GaussianSplatCompositionTechnique.js";import{GaussianSplatCompositionTechniqueConfiguration as v}from"../shaders/GaussianSplatCompositionTechniqueConfiguration.js";import{G as S}from"../../../../chunks/GaussianSplatDepthComposition.glsl.js";import{GaussianSplatDepthCompositionTechnique as x}from"../shaders/GaussianSplatDepthCompositionTechnique.js";import{GaussianSplatTechnique as q}from"../shaders/GaussianSplatTechnique.js";import{GaussianSplatTechniqueConfiguration as w}from"../shaders/GaussianSplatTechniqueConfiguration.js";import{ColorAttachment1 as R,DepthStencilAttachment as D,PrimitiveType as E}from"../../../webgl/enums.js";var y;let T=class extends C{static{y=this}constructor(e){super(e),this.produces=_.GAUSSIAN_SPLAT,this._slicePlaneEnabled=!1,this.layerView=null,this._passParameters=new f,this._compositionPassParameters=new P,this._depthCompositionPassParameters=new S,this._compositionConfiguration=new v,this._clipBox=u(),this._previousCameraDirection=p(),this._previousSortRequestCameraDirection=p(),this._tileCullingRevision=0,this._sortRequestDirectionEpsilon=.01,this._directionChangeEpsilon=.001,this._configuration=new w(e.view.state.isGlobal),m(this._clipBox,c)}async initialize(){this.addHandles([t(()=>this.view.state.camera,()=>this._onCameraChange()),t(()=>2===this.view.state.mode,()=>this.requestRender(1))])}render(e){const t=e.find(({name:e})=>e===this.produces);if(this._updateConfigurations(),this._handleFading(),!this._data.visibleGaussians||!this._data.orderTexture.texture||!this._data.textureAtlas.texture)return t;const i=t.getAttachment(R);this._compositionConfiguration.hasEmission=null!=i;const s=this.techniques.getCompiled(q,this._configuration),a=this.techniques.getCompiled(b,this._compositionConfiguration),r=this.techniques.getCompiled(x);if(!s||!r||!a)return this.requestRender(1),t;const{fullWidth:n,fullHeight:o}=this.bindParameters.camera;this._prepareParameters(o,n);const h=this.renderingContext,l=this.fboCache,p=l.acquire(n,o,"gaussian color output"),u=t.getAttachment(D);p.attachDepth(u),this._renderGaussianColorAndDepth(p,s);const m=l.acquire(n,o,this.produces);return this._depthCompositionPassParameters.splatDepth=p.getTexture(R),m.attachDepth(t.getAttachment(D)),h.bindFramebuffer(m.fbo),h.bindTechnique(r,this.bindParameters,this._depthCompositionPassParameters),h.screen.draw(),this._compositionPassParameters.color=t.getTexture(),this._compositionPassParameters.splatColor=p.getTexture(),i?(m.acquireColor(R,8,"emissive"),this._compositionPassParameters.emission=t.getTexture(R)):this._compositionPassParameters.emission=null,h.bindFramebuffer(m.fbo),h.bindTechnique(a,this.bindParameters,this._compositionPassParameters),h.screen.draw(),p.release(),m}get slicePlaneEnabled(){return this._slicePlaneEnabled}set slicePlaneEnabled(e){this._slicePlaneEnabled!==e&&(this._slicePlaneEnabled=e,this.requestRender(1))}set clippingBox(e){const t=e||c;this._hasSameClipBox(t)||(m(this._clipBox,t),this._tileCullingRevision=g(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!d(this._clipBox,c,(e,t)=>e===t)}get _isIdle(){return 2===this.view.state.mode}get _data(){return this.layerView.data}get _fadeHelper(){return this.layerView.fadeHelper}_updateConfigurations(){const{idleMinimumOpacity:e,nonIdleMinimumOpacity:t}=this.view.qualitySettings.gaussianSplat;this._configuration.alphaCutoff=this._isIdle?e:t,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}_onCameraChange(){this._tileCullingRevision=g(this._tileCullingRevision,1);const e=this.view.state.camera.ray.direction;if(!this._directionChanged(e))return;if(r(this._previousCameraDirection,e),!this._shouldRequestSort(e))return;this._data.requestSort()&&r(this._previousSortRequestCameraDirection,e)}_directionChanged(e){return Math.abs(e[0]-this._previousCameraDirection[0])>this._directionChangeEpsilon||Math.abs(e[1]-this._previousCameraDirection[1])>this._directionChangeEpsilon||Math.abs(e[2]-this._previousCameraDirection[2])>this._directionChangeEpsilon}_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}_prepareParameters(e,t){this._passParameters.splatOrder=this._data.orderTexture.texture,this._passParameters.splatFading=this._data.fadingTexture.texture,this._passParameters.splatAtlas=this._data.textureAtlas.texture;const i=Math.tan(.5*this.camera.fovY),s=i/e*t;a(this._passParameters.tanFov,s,i),this._passParameters.focalLength=e/(2*i);const n=this.view.qualitySettings.gaussianSplat,o=this._isIdle?n.idleMinimumSplatPixelRadius:n.nonIdleMinimumSplatPixelRadius;this._passParameters.minSplatRadius=o*Math.sqrt(t*e)/Math.sqrt(2073600),r(this._passParameters.origin,this.bindParameters.camera.eye),this._prepareHighPrecisionCameraPosition(),this._updateSlicePlaneLocalOrigin(),this._updateClipUniforms()}_updateClipUniforms(){const e=this.clippingBox||c,[t,i,s,a,r,o]=e,[h,l,p]=this.camera.eye,{clipMinCameraRelative:u,clipMaxCameraRelative:m}=this._passParameters;n(u,t-h,i-l,s-p),n(m,a-h,r-l,o-p)}_updateSlicePlaneLocalOrigin(){this._passParameters.slicePlaneLocalOrigin=this.camera.eye}_hasSameClipBox(e){return d(this._clipBox,e,(e,t)=>e===t)}_renderGaussianColorAndDepth(e,t){const i=this.renderingContext;e.acquireColor(R,5,"gaussian depth output"),i.bindFramebuffer(e.fbo),i.setClearColor(0,0,0,0),i.clear(16384),this.renderingContext.bindTechnique(t,this.bindParameters,this._passParameters),this.renderingContext.drawArraysInstanced(E.TRIANGLE_STRIP,0,4,this._data.visibleGaussians)}_prepareHighPrecisionCameraPosition(){o(this._passParameters.tileCameraPosition,this.camera.eye,1/y.tileSize),h(this._passParameters.tileCameraPosition,this._passParameters.tileCameraPosition),o(this._passParameters.cameraDelta,this._passParameters.tileCameraPosition,y.tileSize),l(this._passParameters.cameraDelta,this.camera.eye,this._passParameters.cameraDelta)}_handleFading(){if(0===this._fadeHelper.numFadingTiles)return void(this._previousFrameStart=null);this._previousFrameStart??=this.view.stage.renderer.renderContext.time;const e=this.view.stage?.renderer.renderContext.time-this._previousFrameStart;this._fadeHelper.updateAllTileFading(e),this._previousFrameStart=this.view.stage.renderer.renderContext.time,this._data.fadingTexture.updateTexture(this._data.textureAtlas.pageAllocator.pageCount)}static{this.tileSize=2.048}};e([i()],T.prototype,"produces",void 0),e([i({constructOnly:!0})],T.prototype,"layerView",void 0),T=y=e([s("esri.views.3d.webgl-engine.lib.GaussianSplatRenderNode")],T);export{T as GaussianSplatRenderNode};
2
+ import{__decorate as e}from"tslib";import{watch as t}from"../../../../core/reactiveUtils.js";import{property as i,subclass as s}from"../../../../core/accessorSupport/decorators.js";import{set as a}from"../../../../core/libs/gl-matrix-2/math/vec2.js";import{copy as r,set as n,scale as o,floor as h,subtract as l}from"../../../../core/libs/gl-matrix-2/math/vec3.js";import{create as p}from"../../../../core/libs/gl-matrix-2/factories/vec3f64.js";import{create as u,set as m,positiveInfinity as c,equals as d}from"../../../../geometry/support/aaBoundingBox.js";import{InternalRenderCategory as _}from"../../webgl.js";import{addWraparound as g}from"../../layers/i3s/I3SUtil.js";import C from"../../webgl/RenderNode.js";import{G as f}from"../../../../chunks/GaussianSplat.glsl.js";import{G as P}from"../../../../chunks/GaussianSplatComposition.glsl.js";import{GaussianSplatCompositionTechnique as b}from"../shaders/GaussianSplatCompositionTechnique.js";import{GaussianSplatCompositionTechniqueConfiguration as v}from"../shaders/GaussianSplatCompositionTechniqueConfiguration.js";import{G as S}from"../../../../chunks/GaussianSplatDepthComposition.glsl.js";import{GaussianSplatDepthCompositionTechnique as x}from"../shaders/GaussianSplatDepthCompositionTechnique.js";import{GaussianSplatTechnique as q}from"../shaders/GaussianSplatTechnique.js";import{GaussianSplatTechniqueConfiguration as w}from"../shaders/GaussianSplatTechniqueConfiguration.js";import{ColorAttachment1 as R,DepthStencilAttachment as D,PrimitiveType as E}from"../../../webgl/enums.js";var y;let T=class extends C{static{y=this}constructor(e){super(e),this.produces=_.GAUSSIAN_SPLAT,this._slicePlaneEnabled=!1,this.layerView=null,this._passParameters=new f,this._compositionPassParameters=new P,this._depthCompositionPassParameters=new S,this._compositionConfiguration=new v,this._clipBox=u(),this._previousCameraDirection=p(),this._previousSortRequestCameraDirection=p(),this._tileCullingRevision=0,this._sortRequestDirectionEpsilon=.01,this._directionChangeEpsilon=.001,this._configuration=new w(e.view.state.isGlobal),m(this._clipBox,c)}async initialize(){this.addHandles([t(()=>this.view.state.camera,()=>this._onCameraChange()),t(()=>2===this.view.state.mode,()=>this.requestRender(1))])}render(e){const t=e.find(({name:e})=>e===this.produces);if(this._updateConfigurations(),this._handleFading(),!this._data.visibleGaussians||!this._data.orderTexture.texture||!this._data.textureAtlas.texture)return t;const i=t.getAttachment(R);this._compositionConfiguration.hasEmission=null!=i;const s=this.techniques.getCompiled(q,this._configuration),a=this.techniques.getCompiled(b,this._compositionConfiguration),r=this.techniques.getCompiled(x);if(!s||!r||!a)return this.requestRender(1),t;const{fullWidth:n,fullHeight:o}=this.bindParameters.camera;this._prepareParameters(o,n);const h=this.renderingContext,l=this.fboCache,p=l.acquire(n,o,"gaussian color output"),u=t.getAttachment(D);p.attachDepth(u),this._renderGaussianColorAndDepth(p,s);const m=l.acquire(n,o,this.produces);return this._depthCompositionPassParameters.splatDepth=p.getTexture(R),m.attachDepth(t.getAttachment(D)),h.bindFramebuffer(m.fbo),h.bindTechnique(r,this.bindParameters,this._depthCompositionPassParameters),h.screen.draw(),this._compositionPassParameters.color=t.getTexture(),this._compositionPassParameters.splatColor=p.getTexture(),i?(m.acquireColor(R,8,"emissive"),this._compositionPassParameters.emission=t.getTexture(R)):this._compositionPassParameters.emission=null,h.bindFramebuffer(m.fbo),h.bindTechnique(a,this.bindParameters,this._compositionPassParameters),h.screen.draw(),p.release(),m}get slicePlaneEnabled(){return this._slicePlaneEnabled}set slicePlaneEnabled(e){this._slicePlaneEnabled!==e&&(this._slicePlaneEnabled=e,this.requestRender(1))}set clippingBox(e){const t=e||c;this._hasSameClipBox(t)||(m(this._clipBox,t),this._tileCullingRevision=g(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!d(this._clipBox,c,(e,t)=>e===t)}get _isIdle(){return 2===this.view.state.mode}get _data(){return this.layerView.data}get _fadeHelper(){return this.layerView.fadeHelper}_updateConfigurations(){const{idleMinimumOpacity:e,nonIdleMinimumOpacity:t}=this.view.qualitySettings.gaussianSplat;this._configuration.alphaCutoff=this._isIdle?e:t,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}_onCameraChange(){this._tileCullingRevision=g(this._tileCullingRevision,1);const e=this.view.state.camera.ray.direction;if(!this._directionChanged(e))return;if(r(this._previousCameraDirection,e),!this._shouldRequestSort(e))return;this._data.requestSort()&&r(this._previousSortRequestCameraDirection,e)}_directionChanged(e){return Math.abs(e[0]-this._previousCameraDirection[0])>this._directionChangeEpsilon||Math.abs(e[1]-this._previousCameraDirection[1])>this._directionChangeEpsilon||Math.abs(e[2]-this._previousCameraDirection[2])>this._directionChangeEpsilon}_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}_prepareParameters(e,t){this._passParameters.splatOrder=this._data.orderTexture.texture,this._passParameters.splatFading=this._data.fadingTexture.texture,this._passParameters.splatAtlas=this._data.textureAtlas.texture;const i=Math.tan(.5*this.camera.fovY),s=i/e*t;a(this._passParameters.tanFov,s,i),this._passParameters.focalLength=e/(2*i);const n=this.view.qualitySettings.gaussianSplat,o=this._isIdle?n.idleMinimumSplatPixelRadius:n.nonIdleMinimumSplatPixelRadius;this._passParameters.minSplatRadius=o*Math.sqrt(t*e)/Math.sqrt(2073600),r(this._passParameters.origin,this.bindParameters.camera.eye),this._prepareHighPrecisionCameraPosition(),this._updateSlicePlaneLocalOrigin(),this._updateClipUniforms()}_updateClipUniforms(){const e=this.clippingBox||c,[t,i,s,a,r,o]=e,[h,l,p]=this.camera.eye,{clipMinCameraRelative:u,clipMaxCameraRelative:m}=this._passParameters;n(u,t-h,i-l,s-p),n(m,a-h,r-l,o-p)}_updateSlicePlaneLocalOrigin(){this._passParameters.slicePlaneLocalOrigin=this.camera.eye}_hasSameClipBox(e){return d(this._clipBox,e,(e,t)=>e===t)}_renderGaussianColorAndDepth(e,t){const i=this.renderingContext;e.acquireColor(R,5,"gaussian depth output"),i.bindFramebuffer(e.fbo),i.setClearColor(0,0,0,0),i.clear(16384),this.renderingContext.bindTechnique(t,this.bindParameters,this._passParameters),this.renderingContext.drawArraysInstanced(E.TRIANGLE_STRIP,0,4,this._data.visibleGaussians)}_prepareHighPrecisionCameraPosition(){o(this._passParameters.tileCameraPosition,this.camera.eye,1/y.tileSize),h(this._passParameters.tileCameraPosition,this._passParameters.tileCameraPosition),o(this._passParameters.cameraDelta,this._passParameters.tileCameraPosition,y.tileSize),l(this._passParameters.cameraDelta,this.camera.eye,this._passParameters.cameraDelta)}_handleFading(){if(0===this._fadeHelper.numFadingTiles)return void(this._previousFrameStart=null);this._previousFrameStart??=this.view.stage.renderer.renderContext.time;const e=this.view.stage?.renderer.renderContext.time-this._previousFrameStart;this._fadeHelper.updateAllTileFading(e),this._previousFrameStart=this.view.stage.renderer.renderContext.time,this._data.fadingTexture.updateTexture(this._data.textureAtlas.pageAllocator.pageCount)}static{this.tileSize=2.048}};e([i()],T.prototype,"produces",void 0),e([i({constructOnly:!0})],T.prototype,"layerView",void 0),T=y=e([s("esri.views.3d.webgl-engine.lib.GaussianSplatRenderNode")],T);export{T as GaussianSplatRenderNode};
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
2
- import{__decorate as e}from"tslib";import{property as i,subclass as t}from"../../../../core/accessorSupport/decorators.js";import{set as a,scale as s,floor as r,subtract as o}from"../../../../core/libs/gl-matrix-2/math/vec3.js";import{create as n}from"../../../../core/libs/gl-matrix-2/factories/vec3f64.js";import{positiveInfinity as l}from"../../../../geometry/support/aaBoundingBox.js";import{InternalRenderCategory as p}from"../../webgl.js";import h from"../../webgl/RenderNode.js";import{GaussianSplatRenderNode as m}from"./GaussianSplatRenderNode.js";import{a as d}from"../../../../chunks/GaussianSplatShadow.glsl.js";import{GaussianSplatShadowTechnique as u}from"../shaders/GaussianSplatShadowTechnique.js";import{GaussianSplatTechniqueConfiguration as c}from"../shaders/GaussianSplatTechniqueConfiguration.js";import{PrimitiveType as _}from"../../../webgl/enums.js";let P=class extends h{constructor(e){super(e),this.produces=p.SHADOW_CASTERS,this.layerView=null,this._passParameters=new d,this._cameraPosition=n(),this._configuration=new c(e.view.state.isGlobal)}render(){const e=this.bindRenderTarget();return this._render(),e}queryDepthRange(e){return this.layerView.suspended?null:this._data.queryVisibleTileDepthRange(e,this.layerView.clippingBox)}get _data(){return this.layerView.data}get _clippingEnabled(){return null!=this.layerView.clippingBox}get _isIdle(){return 2===this.view.state.mode}_render(){const e=this._data;if(this.layerView.suspended||0===e.visibleGaussians||!e.orderTexture.texture||!e.textureAtlas.texture)return;this._updateShadowConfigurations();const i=this.techniques.getCompiled(u,this._configuration);i?(this._prepareShadowParameters(this.bindParameters.camera),this.renderingContext.bindTechnique(i,this.bindParameters,this._passParameters),this.renderingContext.drawArraysInstanced(_.TRIANGLE_STRIP,0,4,e.visibleGaussians)):this.requestRender(1)}_updateShadowConfigurations(){this._configuration.clippingEnabled=this._clippingEnabled,this._configuration.hasSlicePlane=this.layerView.slicePlaneEnabled&&null!=this.bindParameters.slicePlane,this._configuration.output=this.bindParameters.output}_prepareShadowParameters(e){const i=this._data;this._passParameters.splatOrder=i.orderTexture.texture,this._passParameters.splatAtlas=i.textureAtlas.texture;const{fullHeight:t,fullWidth:a}=e,s=this.view.qualitySettings.gaussianSplat,r=this._isIdle?s.idleMinimumSplatPixelRadius:s.nonIdleMinimumSplatPixelRadius;this._passParameters.minSplatRadius=r*Math.sqrt(a*t)/Math.sqrt(2073600),this._updateShadowCameraPosition(e),this._prepareShadowHighPrecisionCameraPosition(),this._passParameters.slicePlaneLocalOrigin=this._cameraPosition,this._updateShadowClipUniforms()}_updateShadowClipUniforms(){const e=this.layerView.clippingBox||l,[i,t,s,r,o,n]=e,[p,h,m]=this._cameraPosition,{clipMinCameraRelative:d,clipMaxCameraRelative:u}=this._passParameters;a(d,i-p,t-h,s-m),a(u,r-p,o-h,n-m)}_prepareShadowHighPrecisionCameraPosition(){s(this._passParameters.tileCameraPosition,this._cameraPosition,1/m.tileSize),r(this._passParameters.tileCameraPosition,this._passParameters.tileCameraPosition),s(this._passParameters.cameraDelta,this._passParameters.tileCameraPosition,m.tileSize),o(this._passParameters.cameraDelta,this._cameraPosition,this._passParameters.cameraDelta)}_updateShadowCameraPosition(e){const i=e.viewInverseTransposeMatrix;a(this._cameraPosition,i[3],i[7],i[11])}};e([i()],P.prototype,"produces",void 0),e([i({constructOnly:!0})],P.prototype,"layerView",void 0),P=e([t("esri.views.3d.webgl-engine.lib.GaussianSplatShadowRenderNode")],P);export{P as GaussianSplatShadowRenderNode};
2
+ import{__decorate as e}from"tslib";import{property as i,subclass as t}from"../../../../core/accessorSupport/decorators.js";import{set as s,scale as a,floor as r,subtract as o}from"../../../../core/libs/gl-matrix-2/math/vec3.js";import{create as n}from"../../../../core/libs/gl-matrix-2/factories/vec3f64.js";import{positiveInfinity as l}from"../../../../geometry/support/aaBoundingBox.js";import{InternalRenderCategory as p}from"../../webgl.js";import h from"../../webgl/RenderNode.js";import{GaussianSplatRenderNode as m}from"./GaussianSplatRenderNode.js";import{G as d}from"../../../../chunks/GaussianSplatShadow.glsl.js";import{GaussianSplatShadowTechnique as u}from"../shaders/GaussianSplatShadowTechnique.js";import{GaussianSplatTechniqueConfiguration as c}from"../shaders/GaussianSplatTechniqueConfiguration.js";import{PrimitiveType as _}from"../../../webgl/enums.js";let P=class extends h{constructor(e){super(e),this.produces=p.SHADOW_CASTERS,this.layerView=null,this._passParameters=new d,this._cameraPosition=n(),this._configuration=new c(e.view.state.isGlobal)}render(){const e=this.bindRenderTarget();return this._render(),e}queryDepthRange(e){return this.layerView.suspended?null:this._data.queryVisibleTileDepthRange(e,this.layerView.clippingBox)}get _data(){return this.layerView.data}get _clippingEnabled(){return null!=this.layerView.clippingBox}get _isIdle(){return 2===this.view.state.mode}_render(){const e=this._data;if(this.layerView.suspended||0===e.visibleGaussians||!e.orderTexture.texture||!e.textureAtlas.texture)return;this._updateShadowConfigurations();const i=this.techniques.getCompiled(u,this._configuration);i?(this._prepareShadowParameters(this.bindParameters.camera),this.renderingContext.bindTechnique(i,this.bindParameters,this._passParameters),this.renderingContext.drawArraysInstanced(_.TRIANGLE_STRIP,0,4,e.visibleGaussians)):this.requestRender(1)}_updateShadowConfigurations(){this._configuration.clippingEnabled=this._clippingEnabled,this._configuration.hasSlicePlane=this.layerView.slicePlaneEnabled&&null!=this.bindParameters.slicePlane,this._configuration.output=this.bindParameters.output}_prepareShadowParameters(e){const i=this._data;this._passParameters.splatOrder=i.orderTexture.texture,this._passParameters.splatAtlas=i.textureAtlas.texture;const{fullHeight:t,fullWidth:s}=e,a=this.view.qualitySettings.gaussianSplat,r=this._isIdle?a.idleMinimumSplatPixelRadius:a.nonIdleMinimumSplatPixelRadius;this._passParameters.minSplatRadius=r*Math.sqrt(s*t)/Math.sqrt(2073600),this._updateShadowCameraPosition(e),this._prepareShadowHighPrecisionCameraPosition(),this._passParameters.slicePlaneLocalOrigin=this._cameraPosition,this._updateShadowClipUniforms()}_updateShadowClipUniforms(){const e=this.layerView.clippingBox||l,[i,t,a,r,o,n]=e,[p,h,m]=this._cameraPosition,{clipMinCameraRelative:d,clipMaxCameraRelative:u}=this._passParameters;s(d,i-p,t-h,a-m),s(u,r-p,o-h,n-m)}_prepareShadowHighPrecisionCameraPosition(){a(this._passParameters.tileCameraPosition,this._cameraPosition,1/m.tileSize),r(this._passParameters.tileCameraPosition,this._passParameters.tileCameraPosition),a(this._passParameters.cameraDelta,this._passParameters.tileCameraPosition,m.tileSize),o(this._passParameters.cameraDelta,this._cameraPosition,this._passParameters.cameraDelta)}_updateShadowCameraPosition(e){const i=e.viewInverseTransposeMatrix;s(this._cameraPosition,i[3],i[7],i[11])}};e([i()],P.prototype,"produces",void 0),e([i({constructOnly:!0})],P.prototype,"layerView",void 0),P=e([t("esri.views.3d.webgl-engine.lib.GaussianSplatShadowRenderNode")],P);export{P as GaussianSplatShadowRenderNode};
@@ -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{sliceEquals as i}from"../../../../core/arrayUtils.js";import"../../../../core/has.js";import{smoothstep as r}from"../../../../core/mathUtils.js";import{releaseMaybe as s,disposeMaybe as a}from"../../../../core/maybe.js";import{watch as o,sync as n}from"../../../../core/reactiveUtils.js";import{signal as h}from"../../../../core/signal.js";import{property as c,subclass as u}from"../../../../core/accessorSupport/decorators.js";import{copy as l,equals as m}from"../../../../core/libs/gl-matrix-2/math/vec3.js";import{create as _}from"../../../../core/libs/gl-matrix-2/factories/vec3f64.js";import{ReadShadowMapPassParameters as d}from"../core/shaderLibrary/shading/ReadShadowMap.glsl.js";import{a as p}from"../../../../chunks/FocusAreaMask.glsl.js";import{volumeToVao as f}from"../effects/focusArea/focusAreaMaskUtils.js";import{BindParameters as g}from"./BindParameters.js";import{DepthRange as b}from"./DepthRange.js";import{createQuadVAO as v}from"./glUtil3D.js";import{ShadowCastRenderer as y,shadowCastDisabledElevationThreshold as S,shadowCastDisableElevationMax as w,shadowCastDisableElevationMin as A}from"./ShadowCastRenderer.js";import{ShadowMap as F}from"./ShadowMap.js";import{a as C}from"../../../../chunks/ShadowCastAccumulate.glsl.js";import{ShadowCastAccumulateTechnique as R}from"../shaders/ShadowCastAccumulateTechnique.js";import{ShadowCastAccumulateTechniqueConfiguration as x}from"../shaders/ShadowCastAccumulateTechniqueConfiguration.js";import{ShadowCastClearTechnique as P}from"../shaders/ShadowCastClearTechnique.js";import{ShadowCastMaskTechnique as q}from"../shaders/ShadowCastMaskTechnique.js";import{TaskPriority as V}from"../../../support/Scheduler.js";import{PrimitiveType as j,DepthStencilAttachment as H,PixelType as D}from"../../../webgl/enums.js";import{DisposableFramebufferObject as T}from"../../../webgl/FramebufferObject.js";import{noParameters as M}from"../../../webgl/NoParameters.js";let E=class extends t{constructor(e,t,i,r,a,h){super({}),this._fbos=e,this._techniques=t,this._stage=i,this._prepareForShadowMapPass=r,this._renderToShadowMap=a,this._requestRender=h,this._analysisVolumeGeometry=null,this._primarySet=new U(new x(0),()=>this._requestRenderIfEnabled()),this._contextSet=new U(new x(1),()=>this._requestRenderIfEnabled()),this._passParameters=new d,this._maskParameters=new p,this._volumeVao=null,this._volumeVertexCount=0,this._depthRange=b.Zero,this._enabled=!1,this._previewing=!1,this._shadowAccumulatorKey=Symbol("shadowAccumulator"),this._bindParameters=new g(e.rctx,new F(e,i.viewingMode)),this._bindParameters.shadowMap.enabled=!0,this._vao=v(e.rctx),this._accumulationRenderer=new y(e,t,this,h),this._tmpReadFbo=new T(e.rctx);const c=this._stage.view.resourceController.scheduler;this.addHandles([c.registerTask(V.SHADOW_ACCUMULATOR,this),o(()=>this._previewing,e=>{e?this._invalidateAccumulationSets():this._requestRenderIfEnabled()},n),o(()=>this._numActive,()=>this._numActiveChanged(),n),o(()=>this.readyToRun,e=>{e||(this._bindParameters.depth=s(this._bindParameters.depth),this.notifyChange("canAccumulate"))})],this._shadowAccumulatorKey)}destroy(){this._disable(),this.removeHandles(this._shadowAccumulatorKey),this._accumulationRenderer=a(this._accumulationRenderer),this._fboHandle=a(this._fboHandle),this._vao=a(this._vao),this._volumeVao=a(this._volumeVao),this._tmpReadFbo=a(this._tmpReadFbo),this._bindParameters.destroy();for(const e of this._accumulationSets())e.destroy();this._contextSet=null,this._primarySet=null}*_accumulationSets(){yield this._primarySet,yield this._contextSet}get computedSamples(){return[this._primarySet.progress,this._contextSet.progress]}get shadowCastTexture(){return this._fboHandle?.getTexture()}get accumulating(){return this.active&&this._previewing||this._refining}get _refining(){return this.active&&!this._doneAccumulating&&!this._previewing}get active(){return this._enabled&&[...this._accumulationSets()].some(e=>e.active)}get canAccumulate(){return null!=this._bindParameters.depth&&this._depthRange!==b.Zero&&this._opacityFromElevation>S}get _doneAccumulating(){return[...this._accumulationSets()].every(e=>e.doneAccumulating)}get _opacityFromElevation(){return this._accumulationRenderer.opacityFromElevation}set _opacityFromElevation(e){this._accumulationRenderer.opacityFromElevation=e}get _numActive(){return[...this._accumulationSets()].reduce((e,t)=>e+(t.active?1:0),0)}get _colorFormat(){return 2===this._numActive?2:0}get readyToRun(){return this._refining&&this.canAccumulate&&[...this._accumulationSets()].some(e=>e.running)}get _analysisVolume(){return this._analysisVolumeGeometry}set _analysisVolume(e){if(this._analysisVolumeGeometry===e)return;this._invalidateAccumulationSets(),this._analysisVolumeGeometry=e,this._volumeVao=a(this._volumeVao),this._volumeVertexCount=0;const t=null!=e;for(const a of this._accumulationSets())a.configuration.useMask=t;if(!t)return;const i=e.geometryVolume,{vao:r,vertexCount:s}=f(this._rctx,i);this._volumeVao=r,this._volumeVertexCount=s}runTask(e){this._clearBuffersOnAccumulationStart(),this._prepareForShadowMapPass(this._bindParameters);let t=!1;for(const i of this._accumulationSets())this._runTaskForSet(i,e)&&(t=!0);t&&this._requestRender()}_runTaskForSet(e,t){let i=!1;for(;!t.done&&!e.doneAccumulating;)this._accumulateShadow(e),t.madeProgress(),i=!0;return i}get requiresDepth(){return this.accumulating||null!=this._volumeVao}renderAccumulation(e,t){return!!this._enabled&&(this._updateCamera(e.camera),this._bindParameters.contentCamera=e.contentCamera,e.depth?.retain(),this._bindParameters.depth?.release(),this._bindParameters.depth=e.depth,this._passParameters.origin=this._bindParameters.camera.center,this.notifyChange("canAccumulate"),!!this.canAccumulate&&(this._renderAreaMask(),!!this.accumulating&&(this._previewing||t?(this._clearFramebuffer(),this._reset()):this._clearBuffersOnAccumulationStart(),this._accumulateSetsForRenderFrame(t))))}_renderAreaMask(){const e=this._techniques.getCompiled(q),t=this._volumeVao,i=this._volumeVertexCount,r=this._fboHandle,s=this._analysisVolume;if(r?.detachDepth(),!e||!t||i<1||!r||!s)return;r.acquireDepth(14);const a=this._rctx,o=this._bindParameters,n=o.depth,h=this._tmpReadFbo;h.attachDepthStencil(n?.attachment),a.blitFramebuffer(h,r.fbo,256),h.detachDepthStencilTexture(),a.bindFramebuffer(r.fbo),a.setClearStencil(0),a.clear(1024),a.setViewport(0,0,o.camera.width,o.camera.height);const c=a.bindTechnique(e,o,M);this._maskParameters.origin=s.origin,c.bindDraw(o,M,this._maskParameters),a.bindVAO(t),a.drawArrays(j.TRIANGLES,0,i)}_clearBuffersOnAccumulationStart(){if([...this._accumulationSets()].every(e=>0===e.progress))this._clearFramebuffer();else for(const e of this._accumulationSets())0===e.progress&&this._clearFramebufferForSet(this._fboHandle,e)}_accumulateSetsForRenderFrame(e){let t=!1;for(const i of this._accumulationSets())this._accumulateSetForRenderFrame(i,e)&&(t=!0);return t&&this._requestRender(),t}_accumulateSetForRenderFrame(e,t){let i=t?e.sampleCount:Math.min(k,e.sampleCount);i-=e.progress;for(let r=0;r<i;++r)this._accumulateShadow(e);return i>0}precompilePrepass(){if(this.accumulating){for(const e of this._accumulationSets())this._techniques.precompile(R,e.configuration),this._techniques.precompile(P,e.configuration);this._techniques.precompile(q)}}precompile(){this._accumulationRenderer.precompile()}render(e){const t=this._fboHandle?.getAttachment(H);this._accumulationRenderer.render(e,t)}setParameters(e){void 0!==e.previewing&&(this._previewing=e.previewing),void 0!==e.lightDirections&&(this._primarySet.lightDirections=e.lightDirections),void 0!==e.lightDirectionsContext&&(this._contextSet.lightDirections=e.lightDirectionsContext),!0===e.enabled?this._enable():!1===e.enabled&&this._disable(),void 0!==e.analysisVolume&&(this._analysisVolume=e.analysisVolume),this._accumulationRenderer.setOptions(e)}readAccumulatedShadow(e,t){const i=this._primarySet.progress;return!this.active||!this._fboHandle||i<1||e<0||e>=this._fboHandle.fbo.width||t<0||t>=this._fboHandle.fbo.height?0:(this._fboHandle.fbo.readPixels(e,t,1,1,6408,D.UNSIGNED_BYTE,O),O[0]/i)}_numActiveChanged(){if(!this._enabled||!this._fboHandle)return;const e=2===this._numActive,{width:t,height:i}=this._fboHandle.fbo,r=this._createFBO(t,i);e&&(this._clearFramebuffer(r),this._contextSet.reset()),this._rctx.blitFramebuffer(this._fboHandle.fbo,r.fbo),this._fboHandle.dispose(),this._fboHandle=r,this._requestRender()}_enable(){this._enabled||(this._enabled=!0,this._invalidateAccumulationSets())}_disable(){this._enabled&&(this._fboHandle=a(this._fboHandle),this._enabled=!1,this._requestRender())}_createFBO(e,t){return this._fbos.acquire(e,t,"shadow accumulation",this._colorFormat)}_invalidateAccumulationSets(){for(const e of this._accumulationSets())e.reset();this._requestRenderIfEnabled()}_reset(){for(const e of this._accumulationSets())e.reset()}_clearFramebuffer(e=this._fboHandle){e&&(this._rctx.bindFramebuffer(e.fbo),this._rctx.setClearColor(0,0,0,0),this._rctx.clear(16384))}_clearFramebufferForSet(e,t){if(!e)return;const i=this._techniques.get(P,t.configuration);this._rctx.bindFramebuffer(e.fbo),this._rctx.bindTechnique(i,this._bindParameters,this._passParameters),this._rctx.bindVAO(this._vao),this._rctx.drawArrays(i.primitiveType,0,this._vao.vertexCount("geometry"))}_accumulateShadow(e){this._renderToShadowMap(this._bindParameters,e.lightDirections[e.progress++],this._depthRange);const t=this._techniques.get(R,e.configuration);this._rctx.bindFramebuffer(this._fboHandle?.fbo),this._rctx.bindTechnique(t,this._bindParameters,this._passParameters),this._rctx.bindVAO(this._vao),this._rctx.drawArrays(t.primitiveType,0,this._vao.vertexCount("geometry"))}_isAccumulationValid(e){return this._fboHandle?.fbo.width===e.fullWidth&&this._fboHandle?.fbo.height===e.fullHeight}_updateCamera(e){const t=this._bindParameters.camera;e.equals(t)||t.copyFrom(e),this._isAccumulationValid(e)||(this._fboHandle?.release(),this._fboHandle=this._createFBO(e.fullWidth,e.fullHeight),this._reset()),this._opacityFromElevation=1-r(A,w,e.relativeElevation)}_requestRenderIfEnabled(){this._enabled&&this._requestRender()}get _rctx(){return this._fbos.rctx}updateDepthRange(e){this._depthRange.equals(e)||(this._depthRange=e,this._invalidateAccumulationSets())}get test(){}};e([c()],E.prototype,"_refining",null),e([c()],E.prototype,"active",null),e([c()],E.prototype,"canAccumulate",null),e([c()],E.prototype,"_doneAccumulating",null),e([c()],E.prototype,"_opacityFromElevation",null),e([c()],E.prototype,"_numActive",null),e([c()],E.prototype,"_colorFormat",null),e([c()],E.prototype,"readyToRun",null),e([c()],E.prototype,"_depthRange",void 0),e([c()],E.prototype,"_enabled",void 0),e([c()],E.prototype,"_previewing",void 0),e([c()],E.prototype,"_accumulationRenderer",void 0),E=e([u("esri.views.3d.webgl-engine.lib.ShadowAccumulator")],E);const k=6,O=new Uint8Array(4);class U{constructor(e,t){this.configuration=e,this._notifyChange=t,this._cachedLightDirections=[],this._progress=h(0),this._sampleCount=h(0)}get progress(){return this._progress.value}set progress(e){this._progress.value=e}get sampleCount(){return this._sampleCount.value}get doneAccumulating(){return this.progress>=this.sampleCount}get running(){return this.progress>0}get active(){return this.sampleCount>0}get lightDirections(){return this._cachedLightDirections}set lightDirections(e){const t=this._cachedLightDirections,r=Math.min(C,e.length);if(!i(t,0,t.length,e,0,r,m)){t.length=r,this._sampleCount.value=r;for(let i=0;i<r;++i)t[i]=l(t[i]??_(),e[i]);this.reset(),this._notifyChange()}}destroy(){this._cachedLightDirections.length=0,this._sampleCount.value=0}reset(){this.progress=0}precompile(e){e.precompile(R,this.configuration),e.precompile(P,this.configuration)}}export{E as ShadowAccumulator};
2
+ import{__decorate as e}from"tslib";import t from"../../../../core/Accessor.js";import{sliceEquals as i}from"../../../../core/arrayUtils.js";import"../../../../core/has.js";import{smoothstep as r}from"../../../../core/mathUtils.js";import{releaseMaybe as s,disposeMaybe as a}from"../../../../core/maybe.js";import{watch as o,sync as n}from"../../../../core/reactiveUtils.js";import{signal as h}from"../../../../core/signal.js";import{property as c,subclass as u}from"../../../../core/accessorSupport/decorators.js";import{copy as l,equals as m}from"../../../../core/libs/gl-matrix-2/math/vec3.js";import{create as _}from"../../../../core/libs/gl-matrix-2/factories/vec3f64.js";import{ReadShadowMapPassParameters as d}from"../core/shaderLibrary/shading/ReadShadowMap.glsl.js";import{F as p}from"../../../../chunks/FocusAreaMask.glsl.js";import{volumeToVao as f}from"../effects/focusArea/focusAreaMaskUtils.js";import{BindParameters as g}from"./BindParameters.js";import{DepthRange as b}from"./DepthRange.js";import{createQuadVAO as v}from"./glUtil3D.js";import{ShadowCastRenderer as y,shadowCastDisabledElevationThreshold as S,shadowCastDisableElevationMax as w,shadowCastDisableElevationMin as A}from"./ShadowCastRenderer.js";import{ShadowMap as F}from"./ShadowMap.js";import{S as C}from"../../../../chunks/ShadowCastAccumulate.glsl.js";import{ShadowCastAccumulateTechnique as R}from"../shaders/ShadowCastAccumulateTechnique.js";import{ShadowCastAccumulateTechniqueConfiguration as x}from"../shaders/ShadowCastAccumulateTechniqueConfiguration.js";import{ShadowCastClearTechnique as P}from"../shaders/ShadowCastClearTechnique.js";import{ShadowCastMaskTechnique as q}from"../shaders/ShadowCastMaskTechnique.js";import{TaskPriority as V}from"../../../support/Scheduler.js";import{PrimitiveType as j,DepthStencilAttachment as H,PixelType as D}from"../../../webgl/enums.js";import{DisposableFramebufferObject as T}from"../../../webgl/FramebufferObject.js";import{noParameters as M}from"../../../webgl/NoParameters.js";let E=class extends t{constructor(e,t,i,r,a,h){super({}),this._fbos=e,this._techniques=t,this._stage=i,this._prepareForShadowMapPass=r,this._renderToShadowMap=a,this._requestRender=h,this._analysisVolumeGeometry=null,this._primarySet=new U(new x(0),()=>this._requestRenderIfEnabled()),this._contextSet=new U(new x(1),()=>this._requestRenderIfEnabled()),this._passParameters=new d,this._maskParameters=new p,this._volumeVao=null,this._volumeVertexCount=0,this._depthRange=b.Zero,this._enabled=!1,this._previewing=!1,this._shadowAccumulatorKey=Symbol("shadowAccumulator"),this._bindParameters=new g(e.rctx,new F(e,i.viewingMode)),this._bindParameters.shadowMap.enabled=!0,this._vao=v(e.rctx),this._accumulationRenderer=new y(e,t,this,h),this._tmpReadFbo=new T(e.rctx);const c=this._stage.view.resourceController.scheduler;this.addHandles([c.registerTask(V.SHADOW_ACCUMULATOR,this),o(()=>this._previewing,e=>{e?this._invalidateAccumulationSets():this._requestRenderIfEnabled()},n),o(()=>this._numActive,()=>this._numActiveChanged(),n),o(()=>this.readyToRun,e=>{e||(this._bindParameters.depth=s(this._bindParameters.depth),this.notifyChange("canAccumulate"))})],this._shadowAccumulatorKey)}destroy(){this._disable(),this.removeHandles(this._shadowAccumulatorKey),this._accumulationRenderer=a(this._accumulationRenderer),this._fboHandle=a(this._fboHandle),this._vao=a(this._vao),this._volumeVao=a(this._volumeVao),this._tmpReadFbo=a(this._tmpReadFbo),this._bindParameters.destroy();for(const e of this._accumulationSets())e.destroy();this._contextSet=null,this._primarySet=null}*_accumulationSets(){yield this._primarySet,yield this._contextSet}get computedSamples(){return[this._primarySet.progress,this._contextSet.progress]}get shadowCastTexture(){return this._fboHandle?.getTexture()}get accumulating(){return this.active&&this._previewing||this._refining}get _refining(){return this.active&&!this._doneAccumulating&&!this._previewing}get active(){return this._enabled&&[...this._accumulationSets()].some(e=>e.active)}get canAccumulate(){return null!=this._bindParameters.depth&&this._depthRange!==b.Zero&&this._opacityFromElevation>S}get _doneAccumulating(){return[...this._accumulationSets()].every(e=>e.doneAccumulating)}get _opacityFromElevation(){return this._accumulationRenderer.opacityFromElevation}set _opacityFromElevation(e){this._accumulationRenderer.opacityFromElevation=e}get _numActive(){return[...this._accumulationSets()].reduce((e,t)=>e+(t.active?1:0),0)}get _colorFormat(){return 2===this._numActive?2:0}get readyToRun(){return this._refining&&this.canAccumulate&&[...this._accumulationSets()].some(e=>e.running)}get _analysisVolume(){return this._analysisVolumeGeometry}set _analysisVolume(e){if(this._analysisVolumeGeometry===e)return;this._invalidateAccumulationSets(),this._analysisVolumeGeometry=e,this._volumeVao=a(this._volumeVao),this._volumeVertexCount=0;const t=null!=e;for(const a of this._accumulationSets())a.configuration.useMask=t;if(!t)return;const i=e.geometryVolume,{vao:r,vertexCount:s}=f(this._rctx,i);this._volumeVao=r,this._volumeVertexCount=s}runTask(e){this._clearBuffersOnAccumulationStart(),this._prepareForShadowMapPass(this._bindParameters);let t=!1;for(const i of this._accumulationSets())this._runTaskForSet(i,e)&&(t=!0);t&&this._requestRender()}_runTaskForSet(e,t){let i=!1;for(;!t.done&&!e.doneAccumulating;)this._accumulateShadow(e),t.madeProgress(),i=!0;return i}get requiresDepth(){return this.accumulating||null!=this._volumeVao}renderAccumulation(e,t){return!!this._enabled&&(this._updateCamera(e.camera),this._bindParameters.contentCamera=e.contentCamera,e.depth?.retain(),this._bindParameters.depth?.release(),this._bindParameters.depth=e.depth,this._passParameters.origin=this._bindParameters.camera.center,this.notifyChange("canAccumulate"),!!this.canAccumulate&&(this._renderAreaMask(),!!this.accumulating&&(this._previewing||t?(this._clearFramebuffer(),this._reset()):this._clearBuffersOnAccumulationStart(),this._accumulateSetsForRenderFrame(t))))}_renderAreaMask(){const e=this._techniques.getCompiled(q),t=this._volumeVao,i=this._volumeVertexCount,r=this._fboHandle,s=this._analysisVolume;if(r?.detachDepth(),!e||!t||i<1||!r||!s)return;r.acquireDepth(14);const a=this._rctx,o=this._bindParameters,n=o.depth,h=this._tmpReadFbo;h.attachDepthStencil(n?.attachment),a.blitFramebuffer(h,r.fbo,256),h.detachDepthStencilTexture(),a.bindFramebuffer(r.fbo),a.setClearStencil(0),a.clear(1024),a.setViewport(0,0,o.camera.width,o.camera.height);const c=a.bindTechnique(e,o,M);this._maskParameters.origin=s.origin,c.bindDraw(o,M,this._maskParameters),a.bindVAO(t),a.drawArrays(j.TRIANGLES,0,i)}_clearBuffersOnAccumulationStart(){if([...this._accumulationSets()].every(e=>0===e.progress))this._clearFramebuffer();else for(const e of this._accumulationSets())0===e.progress&&this._clearFramebufferForSet(this._fboHandle,e)}_accumulateSetsForRenderFrame(e){let t=!1;for(const i of this._accumulationSets())this._accumulateSetForRenderFrame(i,e)&&(t=!0);return t&&this._requestRender(),t}_accumulateSetForRenderFrame(e,t){let i=t?e.sampleCount:Math.min(k,e.sampleCount);i-=e.progress;for(let r=0;r<i;++r)this._accumulateShadow(e);return i>0}precompilePrepass(){if(this.accumulating){for(const e of this._accumulationSets())this._techniques.precompile(R,e.configuration),this._techniques.precompile(P,e.configuration);this._techniques.precompile(q)}}precompile(){this._accumulationRenderer.precompile()}render(e){const t=this._fboHandle?.getAttachment(H);this._accumulationRenderer.render(e,t)}setParameters(e){void 0!==e.previewing&&(this._previewing=e.previewing),void 0!==e.lightDirections&&(this._primarySet.lightDirections=e.lightDirections),void 0!==e.lightDirectionsContext&&(this._contextSet.lightDirections=e.lightDirectionsContext),!0===e.enabled?this._enable():!1===e.enabled&&this._disable(),void 0!==e.analysisVolume&&(this._analysisVolume=e.analysisVolume),this._accumulationRenderer.setOptions(e)}readAccumulatedShadow(e,t){const i=this._primarySet.progress;return!this.active||!this._fboHandle||i<1||e<0||e>=this._fboHandle.fbo.width||t<0||t>=this._fboHandle.fbo.height?0:(this._fboHandle.fbo.readPixels(e,t,1,1,6408,D.UNSIGNED_BYTE,O),O[0]/i)}_numActiveChanged(){if(!this._enabled||!this._fboHandle)return;const e=2===this._numActive,{width:t,height:i}=this._fboHandle.fbo,r=this._createFBO(t,i);e&&(this._clearFramebuffer(r),this._contextSet.reset()),this._rctx.blitFramebuffer(this._fboHandle.fbo,r.fbo),this._fboHandle.dispose(),this._fboHandle=r,this._requestRender()}_enable(){this._enabled||(this._enabled=!0,this._invalidateAccumulationSets())}_disable(){this._enabled&&(this._fboHandle=a(this._fboHandle),this._enabled=!1,this._requestRender())}_createFBO(e,t){return this._fbos.acquire(e,t,"shadow accumulation",this._colorFormat)}_invalidateAccumulationSets(){for(const e of this._accumulationSets())e.reset();this._requestRenderIfEnabled()}_reset(){for(const e of this._accumulationSets())e.reset()}_clearFramebuffer(e=this._fboHandle){e&&(this._rctx.bindFramebuffer(e.fbo),this._rctx.setClearColor(0,0,0,0),this._rctx.clear(16384))}_clearFramebufferForSet(e,t){if(!e)return;const i=this._techniques.get(P,t.configuration);this._rctx.bindFramebuffer(e.fbo),this._rctx.bindTechnique(i,this._bindParameters,this._passParameters),this._rctx.bindVAO(this._vao),this._rctx.drawArrays(i.primitiveType,0,this._vao.vertexCount("geometry"))}_accumulateShadow(e){this._renderToShadowMap(this._bindParameters,e.lightDirections[e.progress++],this._depthRange);const t=this._techniques.get(R,e.configuration);this._rctx.bindFramebuffer(this._fboHandle?.fbo),this._rctx.bindTechnique(t,this._bindParameters,this._passParameters),this._rctx.bindVAO(this._vao),this._rctx.drawArrays(t.primitiveType,0,this._vao.vertexCount("geometry"))}_isAccumulationValid(e){return this._fboHandle?.fbo.width===e.fullWidth&&this._fboHandle?.fbo.height===e.fullHeight}_updateCamera(e){const t=this._bindParameters.camera;e.equals(t)||t.copyFrom(e),this._isAccumulationValid(e)||(this._fboHandle?.release(),this._fboHandle=this._createFBO(e.fullWidth,e.fullHeight),this._reset()),this._opacityFromElevation=1-r(A,w,e.relativeElevation)}_requestRenderIfEnabled(){this._enabled&&this._requestRender()}get _rctx(){return this._fbos.rctx}updateDepthRange(e){this._depthRange.equals(e)||(this._depthRange=e,this._invalidateAccumulationSets())}get test(){}};e([c()],E.prototype,"_refining",null),e([c()],E.prototype,"active",null),e([c()],E.prototype,"canAccumulate",null),e([c()],E.prototype,"_doneAccumulating",null),e([c()],E.prototype,"_opacityFromElevation",null),e([c()],E.prototype,"_numActive",null),e([c()],E.prototype,"_colorFormat",null),e([c()],E.prototype,"readyToRun",null),e([c()],E.prototype,"_depthRange",void 0),e([c()],E.prototype,"_enabled",void 0),e([c()],E.prototype,"_previewing",void 0),e([c()],E.prototype,"_accumulationRenderer",void 0),E=e([u("esri.views.3d.webgl-engine.lib.ShadowAccumulator")],E);const k=6,O=new Uint8Array(4);class U{constructor(e,t){this.configuration=e,this._notifyChange=t,this._cachedLightDirections=[],this._progress=h(0),this._sampleCount=h(0)}get progress(){return this._progress.value}set progress(e){this._progress.value=e}get sampleCount(){return this._sampleCount.value}get doneAccumulating(){return this.progress>=this.sampleCount}get running(){return this.progress>0}get active(){return this.sampleCount>0}get lightDirections(){return this._cachedLightDirections}set lightDirections(e){const t=this._cachedLightDirections,r=Math.min(C,e.length);if(!i(t,0,t.length,e,0,r,m)){t.length=r,this._sampleCount.value=r;for(let i=0;i<r;++i)t[i]=l(t[i]??_(),e[i]);this.reset(),this._notifyChange()}}destroy(){this._cachedLightDirections.length=0,this._sampleCount.value=0}reset(){this.progress=0}precompile(e){e.precompile(R,this.configuration),e.precompile(P,this.configuration)}}export{E as ShadowAccumulator};
@@ -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{equals as s}from"../../../../core/arrayUtils.js";import{disposeMaybe as i}from"../../../../core/maybe.js";import{property as r,subclass as a}from"../../../../core/accessorSupport/decorators.js";import{exactEquals as o,copy as n,equals as h}from"../../../../core/libs/gl-matrix-2/math/vec4.js";import{createQuadVAO as l}from"./glUtil3D.js";import{vvColorNumber as d}from"../materials/VisualVariablePassParameters.js";import{a as _}from"../../../../chunks/ShadowCastVisualize.glsl.js";import{ShadowCastVisualizeTechnique as m}from"../shaders/ShadowCastVisualizeTechnique.js";import{ShadowCastVisualizeTechniqueConfiguration as u}from"../shaders/ShadowCastVisualizeTechniqueConfiguration.js";import{ColorAttachment0 as p}from"../../../webgl/enums.js";const c=4e4,b=5e4,f=1/512;let g=class extends t{constructor(e,t,s,i){super({}),this._fbos=e,this._techniques=t,this._data=s,this._requestRender=i,this._configuration=new u,this._enabled=!1,this._passParameters=new _(this._data),this._vao=l(e.rctx)}dispose(){this._stop(),this._vao=i(this._vao)}precompile(){this._showVisualization&&this._techniques.precompile(m,this._configuration)}render(e,t){if(!this._showVisualization)return;const[s,i]=this._data.computedSamples;this._passParameters.sampleScale=[s?1/s:0,i?1/i:0];const r=this._techniques.get(m,this._configuration),a=null!=t,o=this._rctx.boundFramebuffer;let n=null;a&&(n=this._fbos.acquire(e.camera.width,e.camera.height,"shadow cast masked draw"),n.attachDepth(t),this._rctx.bindFramebuffer(n.fbo),this._rctx.blitFramebuffer(o,n.fbo,16384)),this._rctx.bindVAO(this._vao),this._rctx.bindTechnique(r,e,this._passParameters),this._rctx.setDrawBuffers([p]),this._rctx.drawArrays(r.primitiveType,0,this._vao.vertexCount("geometry")),null!=n&&(this._rctx.bindFramebuffer(o),this._rctx.blitFramebuffer(n.fbo,o,16384),n.detachDepth(),n.release())}get _rctx(){return this._fbos.rctx}setOptions(e){void 0!==e.enabled&&this._setEnabled(e.enabled),void 0!==e.thresholdColor&&this._setThresholdColor(e.thresholdColor),void 0!==e.gradientColorRamp&&this._setGradientColorRamp(e.gradientColorRamp),void 0!==e.bandedGradientColorRamp&&this._setBandedGradientColorRamp(e.bandedGradientColorRamp),void 0!==e.threshold&&(this._threshold=e.threshold),void 0!==e.rendersSunlight&&(this._rendersSunlight=e.rendersSunlight),void 0!==e.visualization&&(this._visualization=e.visualization),void 0!==e.bandSize&&(this._bandSize=e.bandSize),void 0!==e.analysisVolume&&(this._configuration.useMask=null!==e.analysisVolume)}get opacityFromElevation(){return this._passParameters.opacityFromElevation}set opacityFromElevation(e){this._passParameters.opacityFromElevation!==e&&(this._passParameters.opacityFromElevation=e,this.notifyChange("opacityFromElevation"))}get _showVisualization(){return this._enabled&&(this._data.computedSamples[0]>0||this._data.computedSamples[1]>0)&&this.opacityFromElevation>f}get _threshold(){return this._passParameters.threshold}set _threshold(e){this._threshold!==e&&(this._passParameters.threshold=e,this._requestRenderIfEnabled())}get _rendersSunlight(){return this._configuration.rendersSunlight}set _rendersSunlight(e){this._rendersSunlight!==e&&(this._configuration.rendersSunlight=e,this._requestRenderIfEnabled())}get _visualization(){return this._configuration.visualization}set _visualization(e){e!==this._visualization&&(this._configuration.visualization=e,this._requestRenderIfEnabled())}get _bandSize(){return this._passParameters.bandSize}set _bandSize(e){e!==this._bandSize&&(this._passParameters.bandSize=e,this._requestRenderIfEnabled())}_setThresholdColor(e){const t=this._passParameters.thresholdColor;o(e,t)||(n(this._passParameters.thresholdColor,e),this._requestRenderIfEnabled())}_setGradientColorRamp(e){e.length>d&&(e=e.slice(0,d));v(this._passParameters.gradientColorRamp,e)||(this._passParameters.gradientColorRamp=e,this._requestRenderIfEnabled())}_setBandedGradientColorRamp(e){e.length>d&&(e=e.slice(0,d));v(this._passParameters.bandedGradientColorRamp,e)||(this._passParameters.bandedGradientColorRamp=e,this._requestRenderIfEnabled())}_setEnabled(e){e!==this._enabled&&(e?this._start():this._stop())}_requestRenderIfEnabled(){this._enabled&&this._requestRender()}_start(){this._enabled=!0,this._requestRender()}_stop(){this._enabled=!1,this._requestRender()}};function v(e,t){return s(e,t,([e,t],[s,i])=>e===s&&h(t,i))}e([r()],g.prototype,"opacityFromElevation",null),g=e([a("esri.views.3d.webgl-engine.lib.ShadowCastRenderer")],g);export{g as ShadowCastRenderer,b as shadowCastDisableElevationMax,c as shadowCastDisableElevationMin,f as shadowCastDisabledElevationThreshold};
2
+ import{__decorate as e}from"tslib";import t from"../../../../core/Accessor.js";import{equals as s}from"../../../../core/arrayUtils.js";import{disposeMaybe as i}from"../../../../core/maybe.js";import{property as r,subclass as a}from"../../../../core/accessorSupport/decorators.js";import{exactEquals as o,copy as n,equals as h}from"../../../../core/libs/gl-matrix-2/math/vec4.js";import{createQuadVAO as l}from"./glUtil3D.js";import{vvColorNumber as d}from"../materials/VisualVariablePassParameters.js";import{S as _}from"../../../../chunks/ShadowCastVisualize.glsl.js";import{ShadowCastVisualizeTechnique as m}from"../shaders/ShadowCastVisualizeTechnique.js";import{ShadowCastVisualizeTechniqueConfiguration as u}from"../shaders/ShadowCastVisualizeTechniqueConfiguration.js";import{ColorAttachment0 as p}from"../../../webgl/enums.js";const c=4e4,b=5e4,f=1/512;let g=class extends t{constructor(e,t,s,i){super({}),this._fbos=e,this._techniques=t,this._data=s,this._requestRender=i,this._configuration=new u,this._enabled=!1,this._passParameters=new _(this._data),this._vao=l(e.rctx)}dispose(){this._stop(),this._vao=i(this._vao)}precompile(){this._showVisualization&&this._techniques.precompile(m,this._configuration)}render(e,t){if(!this._showVisualization)return;const[s,i]=this._data.computedSamples;this._passParameters.sampleScale=[s?1/s:0,i?1/i:0];const r=this._techniques.get(m,this._configuration),a=null!=t,o=this._rctx.boundFramebuffer;let n=null;a&&(n=this._fbos.acquire(e.camera.width,e.camera.height,"shadow cast masked draw"),n.attachDepth(t),this._rctx.bindFramebuffer(n.fbo),this._rctx.blitFramebuffer(o,n.fbo,16384)),this._rctx.bindVAO(this._vao),this._rctx.bindTechnique(r,e,this._passParameters),this._rctx.setDrawBuffers([p]),this._rctx.drawArrays(r.primitiveType,0,this._vao.vertexCount("geometry")),null!=n&&(this._rctx.bindFramebuffer(o),this._rctx.blitFramebuffer(n.fbo,o,16384),n.detachDepth(),n.release())}get _rctx(){return this._fbos.rctx}setOptions(e){void 0!==e.enabled&&this._setEnabled(e.enabled),void 0!==e.thresholdColor&&this._setThresholdColor(e.thresholdColor),void 0!==e.gradientColorRamp&&this._setGradientColorRamp(e.gradientColorRamp),void 0!==e.bandedGradientColorRamp&&this._setBandedGradientColorRamp(e.bandedGradientColorRamp),void 0!==e.threshold&&(this._threshold=e.threshold),void 0!==e.rendersSunlight&&(this._rendersSunlight=e.rendersSunlight),void 0!==e.visualization&&(this._visualization=e.visualization),void 0!==e.bandSize&&(this._bandSize=e.bandSize),void 0!==e.analysisVolume&&(this._configuration.useMask=null!==e.analysisVolume)}get opacityFromElevation(){return this._passParameters.opacityFromElevation}set opacityFromElevation(e){this._passParameters.opacityFromElevation!==e&&(this._passParameters.opacityFromElevation=e,this.notifyChange("opacityFromElevation"))}get _showVisualization(){return this._enabled&&(this._data.computedSamples[0]>0||this._data.computedSamples[1]>0)&&this.opacityFromElevation>f}get _threshold(){return this._passParameters.threshold}set _threshold(e){this._threshold!==e&&(this._passParameters.threshold=e,this._requestRenderIfEnabled())}get _rendersSunlight(){return this._configuration.rendersSunlight}set _rendersSunlight(e){this._rendersSunlight!==e&&(this._configuration.rendersSunlight=e,this._requestRenderIfEnabled())}get _visualization(){return this._configuration.visualization}set _visualization(e){e!==this._visualization&&(this._configuration.visualization=e,this._requestRenderIfEnabled())}get _bandSize(){return this._passParameters.bandSize}set _bandSize(e){e!==this._bandSize&&(this._passParameters.bandSize=e,this._requestRenderIfEnabled())}_setThresholdColor(e){const t=this._passParameters.thresholdColor;o(e,t)||(n(this._passParameters.thresholdColor,e),this._requestRenderIfEnabled())}_setGradientColorRamp(e){e.length>d&&(e=e.slice(0,d));v(this._passParameters.gradientColorRamp,e)||(this._passParameters.gradientColorRamp=e,this._requestRenderIfEnabled())}_setBandedGradientColorRamp(e){e.length>d&&(e=e.slice(0,d));v(this._passParameters.bandedGradientColorRamp,e)||(this._passParameters.bandedGradientColorRamp=e,this._requestRenderIfEnabled())}_setEnabled(e){e!==this._enabled&&(e?this._start():this._stop())}_requestRenderIfEnabled(){this._enabled&&this._requestRender()}_start(){this._enabled=!0,this._requestRender()}_stop(){this._enabled=!1,this._requestRender()}};function v(e,t){return s(e,t,([e,t],[s,i])=>e===s&&h(t,i))}e([r()],g.prototype,"opacityFromElevation",null),g=e([a("esri.views.3d.webgl-engine.lib.ShadowCastRenderer")],g);export{g as ShadowCastRenderer,b as shadowCastDisableElevationMax,c as shadowCastDisableElevationMin,f as shadowCastDisabledElevationThreshold};
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
2
- import{i as t,n as s,g as e}from"../../../../chunks/boundedPlane.js";const i=t();class n{constructor(){this._plane=t(),this._isDecoration=!0}get plane(){return this._plane}get isDecoration(){return this._isDecoration}update({plane:t,isDecoration:n}){let a=!1;return this._isDecoration!==n&&(this._isDecoration=n,a=!0),t??=i,s(t,this._plane)?a:(e(t,this._plane),!0)}}export{n as default};
2
+ import{c as t,g as s,a as e}from"../../../../chunks/boundedPlane.js";const a=t();class i{constructor(){this._plane=t(),this._isDecoration=!0}get plane(){return this._plane}get isDecoration(){return this._isDecoration}update({plane:t,isDecoration:i}){let n=!1;return this._isDecoration!==i&&(this._isDecoration=i,n=!0),t??=a,s(t,this._plane)?n:(e(t,this._plane),!0)}}export{i as default};
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
2
- import"../../../../core/libs/gl-matrix-2/factories/vec3f64.js";import"../core/shaderLibrary/ScreenSpacePass.glsl.js";import"../core/shaderModules/Float3PassUniform.js";import"../core/shaderModules/glsl.js";import"../core/shaderModules/Texture2DPassUniform.js";import"../../../webgl/NoParameters.js";import"../../../webgl/ShaderBuilder.js";export{a as TexturePassParameters,b as build}from"../../../../chunks/Texture.glsl.js";
2
+ import"../../../../core/libs/gl-matrix-2/factories/vec3f64.js";import"../core/shaderLibrary/ScreenSpacePass.glsl.js";import"../core/shaderModules/Float3PassUniform.js";import"../core/shaderModules/glsl.js";import"../core/shaderModules/Texture2DPassUniform.js";import"../../../webgl/NoParameters.js";import"../../../webgl/ShaderBuilder.js";export{T as TexturePassParameters,b as build}from"../../../../chunks/Texture.glsl.js";
@@ -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 r}from"../../../../core/accessorSupport/decorators.js";import{ReloadableShader as o}from"../core/shaderTechnique/ReloadableShader.js";import{ShaderTechnique as i}from"../core/shaderTechnique/ShaderTechnique.js";import{T as s}from"../../../../chunks/Texture.glsl.js";import{makePipelineState as t,defaultColorWrite as l,unpremultipliedAlphaToPremultipliedAlpha as c}from"../../../webgl/renderState.js";let n=class extends i{constructor(){super(...arguments),this.shader=new o(s,()=>import("./Texture.glsl.js"))}initializePipeline(e){return e.hasAlpha?t({blending:c,colorWrite:l}):t({colorWrite:l})}};n=e([r("esri.views.3d.webgl-engine.lib.TextureTechnique")],n);export{n as TextureTechnique};
2
+ import{__decorate as e}from"tslib";import{subclass as r}from"../../../../core/accessorSupport/decorators.js";import{ReloadableShader as o}from"../core/shaderTechnique/ReloadableShader.js";import{ShaderTechnique as i}from"../core/shaderTechnique/ShaderTechnique.js";import{a as s}from"../../../../chunks/Texture.glsl.js";import{makePipelineState as t,defaultColorWrite as l,unpremultipliedAlphaToPremultipliedAlpha as a}from"../../../webgl/renderState.js";let c=class extends i{constructor(){super(...arguments),this.shader=new o(s,()=>import("./Texture.glsl.js"))}initializePipeline(e){return e.hasAlpha?t({blending:a,colorWrite:l}):t({colorWrite:l})}};c=e([r("esri.views.3d.webgl-engine.lib.TextureTechnique")],c);export{c as TextureTechnique};
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
2
- import{__decorate as e}from"tslib";import s from"../../../../core/Collection.js";import{deg2rad as t}from"../../../../core/mathUtils.js";import{disposeMaybe as i}from"../../../../core/maybe.js";import{watch as r,initial as a,when as o,sync as n}from"../../../../core/reactiveUtils.js";import{property as h,subclass as d}from"../../../../core/accessorSupport/decorators.js";import{translate as c,fromTranslation as p,scale as l,mul as w}from"../../../../core/libs/gl-matrix-2/math/mat4.js";import{create as m}from"../../../../core/libs/gl-matrix-2/factories/mat4f64.js";import{sub as f,distance as u}from"../../../../core/libs/gl-matrix-2/math/vec3.js";import{create as v,fromValues as g}from"../../../../core/libs/gl-matrix-2/factories/vec3f64.js";import{Sphere as _}from"../../../../geometry/support/sphere.js";import{InternalRenderCategory as V}from"../../webgl.js";import b from"../../webgl/RenderNode.js";import{ViewshedShadowMap as M}from"./ViewshedShadowMap.js";import{a as S}from"../../../../chunks/Viewshed.glsl.js";import{ViewshedTechnique as y}from"../shaders/ViewshedTechnique.js";import{ColorAttachment0 as j}from"../../../webgl/enums.js";let x=class extends b{get shadowMap(){return this._shadowMap}get hasViewsheds(){return this._viewsheds.length>0}get _contentPixelRatio(){return this.view.state.contentPixelRatio}get _viewshedsInView(){return this._viewsheds.items.filter(e=>P(this.view,e))}constructor(e){super(e),this.isDecoration=!1,this._passParameters=new S,this._viewsheds=new s,this._shadowMap=null,this.consumes={required:[V.VIEWSHED,"normals"]},this.produces=V.VIEWSHED}initialize(){this._shadowMap=new M(this.fboCache),this.addHandles([r(()=>this.view.resolutionScale,e=>{const s=this._shadowMap;s&&(s.settings.textureSizeQuality=e)},a),o(()=>!this.hasViewsheds,()=>this._shadowMap?.dispose()),r(()=>this._viewshedsInView.map(e=>[e.elevationAlignedObserverRenderSpace,e.heading,e.tilt,e.farDistance,e.horizontalFieldOfView,e.verticalFieldOfView]),()=>this.requestRender(1),n)])}destroy(){this._shadowMap=i(this._shadowMap)}precompile(){if(this.hasViewsheds)for(const e of this._viewshedsInView)if(this._shadowMap?.isActive(e))return void this.view.stage.renderer.precompileViewshedShadowMap()}render(e){const s=this.bindParameters,t=this.renderingContext,i=e.find(({name:e})=>e===V.VIEWSHED);if(!this.hasViewsheds||this.isDecoration&&!s.decorations)return i;const r=this.techniques.getCompiled(y);if(!r)return this.requestRender(1),i;const a=this.view.stage.renderer.isFeatureEnabled(6);this._passParameters.shadowMap=this._shadowMap??this._passParameters.shadowMap,this._passParameters.normals=e.find(({name:e})=>"normals"===e)?.getTexture();const o=i.obtainDepthTexture();for(const n of this._viewshedsInView){if(!this._renderShadowCubeMap(s,n,a)||!this._shadowMap?.ready)continue;const e=this._setupViewshedParameters(n,s.camera);t.bindFramebuffer(i.fbo),t.bindTechnique(r,s,e),t.setDrawBuffers([j]),t.screen.draw()}return this.shadowMap?.dispose(),i.attachDepth(o),o?.release(),i}updateViewsheds(e){const s=this._viewsheds,{removes:t,adds:i}=e;if(t&&(Array.isArray(t)?s.removeMany(t):s.remove(t)),i)if(Array.isArray(i)){const e=i.filter(e=>!s.includes(e));s.addMany(e)}else s.includes(i)||s.add(i)}_renderShadowCubeMap(e,s,t){const i=this._shadowMap;if(!i)return!1;const r=this.view.basemapTerrain.hasStencilEnabledExtents,a=i.start(e.camera,s,t,this._contentPixelRatio,r);return a&&i.faces.forEach(e=>this.view.stage.renderer.renderViewshedShadowMap(e)),i.finish(),a}_setupViewshedParameters(e,s){const i=this._shadowMap;if(!i)return this._passParameters;const r=this._passParameters,a=e.effectiveObserverRenderSpace;r.localOrigin=a,r.observerOffset=f(D,e.elevationAlignedObserverRenderSpace,e.effectiveObserverRenderSpace),r.fovs=[t(e.horizontalFieldOfView),t(e.verticalFieldOfView)],r.headingAndTilt=[t(e.heading),t(e.tiltParallelToSurface)],r.upVector=e.tiltedUpVector;const o=A(e.elevationAlignedTargetRenderSpace,a);r.targetVector=o;const n=new Array,h=new Array;for(let t=0;t<i.numActiveFaces;t++)c(E,i.viewshedViewMatrices[t],a),n.push(...E),R(i.viewshedProjectionMatrices[t],E,I),h.push(...I);return r.viewMatrices=n,r.projectionMatrices=h,r.volumeOffset=this.selectedViewshed?.()===e.viewshed?O(e,this.view,s.eye):0,r}get test(){return{viewsheds:this._viewsheds,shadowMap:this._shadowMap,viewshedsInView:this._viewshedsInView}}};function A(e,s){const t=v();return f(t,e,s)}function R(e,s,t){const i=g(.5,.5,.5);return p(t,i),l(t,t,i),w(t,t,e),w(t,t,s),t}function P(e,s){const t=new _(s.elevationAlignedObserverRenderSpace,s.farDistanceRenderSpace);return!!e.ready&&e.frustum.intersectsSphere(t)}function O(e,s,t){if(null==e)return 0;const{elevationAlignedObserverRenderSpace:i,elevationAlignedTargetRenderSpace:r}=e,a=u(t,i)>u(t,r)?e.observer:e.target;return s.pixelSizeAt(a)}e([h()],x.prototype,"selectedViewshed",void 0),e([h()],x.prototype,"isDecoration",void 0),e([h()],x.prototype,"shadowMap",null),e([h()],x.prototype,"hasViewsheds",null),e([h()],x.prototype,"_contentPixelRatio",null),e([h()],x.prototype,"_viewshedsInView",null),e([h()],x.prototype,"consumes",void 0),e([h()],x.prototype,"produces",void 0),x=e([d("esri.views.3d.webgl-engine.lib.Viewshed")],x);const D=v(),E=m(),I=m();export{x as Viewshed,O as computeOffsetScale};
2
+ import{__decorate as e}from"tslib";import s from"../../../../core/Collection.js";import{deg2rad as t}from"../../../../core/mathUtils.js";import{disposeMaybe as i}from"../../../../core/maybe.js";import{watch as r,initial as a,when as o,sync as n}from"../../../../core/reactiveUtils.js";import{property as h,subclass as d}from"../../../../core/accessorSupport/decorators.js";import{translate as c,fromTranslation as p,scale as l,mul as w}from"../../../../core/libs/gl-matrix-2/math/mat4.js";import{create as m}from"../../../../core/libs/gl-matrix-2/factories/mat4f64.js";import{sub as f,distance as u}from"../../../../core/libs/gl-matrix-2/math/vec3.js";import{create as v,fromValues as g}from"../../../../core/libs/gl-matrix-2/factories/vec3f64.js";import{Sphere as _}from"../../../../geometry/support/sphere.js";import{InternalRenderCategory as V}from"../../webgl.js";import b from"../../webgl/RenderNode.js";import{ViewshedShadowMap as M}from"./ViewshedShadowMap.js";import{V as S}from"../../../../chunks/Viewshed.glsl.js";import{ViewshedTechnique as y}from"../shaders/ViewshedTechnique.js";import{ColorAttachment0 as j}from"../../../webgl/enums.js";let x=class extends b{get shadowMap(){return this._shadowMap}get hasViewsheds(){return this._viewsheds.length>0}get _contentPixelRatio(){return this.view.state.contentPixelRatio}get _viewshedsInView(){return this._viewsheds.items.filter(e=>P(this.view,e))}constructor(e){super(e),this.isDecoration=!1,this._passParameters=new S,this._viewsheds=new s,this._shadowMap=null,this.consumes={required:[V.VIEWSHED,"normals"]},this.produces=V.VIEWSHED}initialize(){this._shadowMap=new M(this.fboCache),this.addHandles([r(()=>this.view.resolutionScale,e=>{const s=this._shadowMap;s&&(s.settings.textureSizeQuality=e)},a),o(()=>!this.hasViewsheds,()=>this._shadowMap?.dispose()),r(()=>this._viewshedsInView.map(e=>[e.elevationAlignedObserverRenderSpace,e.heading,e.tilt,e.farDistance,e.horizontalFieldOfView,e.verticalFieldOfView]),()=>this.requestRender(1),n)])}destroy(){this._shadowMap=i(this._shadowMap)}precompile(){if(this.hasViewsheds)for(const e of this._viewshedsInView)if(this._shadowMap?.isActive(e))return void this.view.stage.renderer.precompileViewshedShadowMap()}render(e){const s=this.bindParameters,t=this.renderingContext,i=e.find(({name:e})=>e===V.VIEWSHED);if(!this.hasViewsheds||this.isDecoration&&!s.decorations)return i;const r=this.techniques.getCompiled(y);if(!r)return this.requestRender(1),i;const a=this.view.stage.renderer.isFeatureEnabled(6);this._passParameters.shadowMap=this._shadowMap??this._passParameters.shadowMap,this._passParameters.normals=e.find(({name:e})=>"normals"===e)?.getTexture();const o=i.obtainDepthTexture();for(const n of this._viewshedsInView){if(!this._renderShadowCubeMap(s,n,a)||!this._shadowMap?.ready)continue;const e=this._setupViewshedParameters(n,s.camera);t.bindFramebuffer(i.fbo),t.bindTechnique(r,s,e),t.setDrawBuffers([j]),t.screen.draw()}return this.shadowMap?.dispose(),i.attachDepth(o),o?.release(),i}updateViewsheds(e){const s=this._viewsheds,{removes:t,adds:i}=e;if(t&&(Array.isArray(t)?s.removeMany(t):s.remove(t)),i)if(Array.isArray(i)){const e=i.filter(e=>!s.includes(e));s.addMany(e)}else s.includes(i)||s.add(i)}_renderShadowCubeMap(e,s,t){const i=this._shadowMap;if(!i)return!1;const r=this.view.basemapTerrain.hasStencilEnabledExtents,a=i.start(e.camera,s,t,this._contentPixelRatio,r);return a&&i.faces.forEach(e=>this.view.stage.renderer.renderViewshedShadowMap(e)),i.finish(),a}_setupViewshedParameters(e,s){const i=this._shadowMap;if(!i)return this._passParameters;const r=this._passParameters,a=e.effectiveObserverRenderSpace;r.localOrigin=a,r.observerOffset=f(D,e.elevationAlignedObserverRenderSpace,e.effectiveObserverRenderSpace),r.fovs=[t(e.horizontalFieldOfView),t(e.verticalFieldOfView)],r.headingAndTilt=[t(e.heading),t(e.tiltParallelToSurface)],r.upVector=e.tiltedUpVector;const o=A(e.elevationAlignedTargetRenderSpace,a);r.targetVector=o;const n=new Array,h=new Array;for(let t=0;t<i.numActiveFaces;t++)c(E,i.viewshedViewMatrices[t],a),n.push(...E),R(i.viewshedProjectionMatrices[t],E,I),h.push(...I);return r.viewMatrices=n,r.projectionMatrices=h,r.volumeOffset=this.selectedViewshed?.()===e.viewshed?O(e,this.view,s.eye):0,r}get test(){return{viewsheds:this._viewsheds,shadowMap:this._shadowMap,viewshedsInView:this._viewshedsInView}}};function A(e,s){const t=v();return f(t,e,s)}function R(e,s,t){const i=g(.5,.5,.5);return p(t,i),l(t,t,i),w(t,t,e),w(t,t,s),t}function P(e,s){const t=new _(s.elevationAlignedObserverRenderSpace,s.farDistanceRenderSpace);return!!e.ready&&e.frustum.intersectsSphere(t)}function O(e,s,t){if(null==e)return 0;const{elevationAlignedObserverRenderSpace:i,elevationAlignedTargetRenderSpace:r}=e,a=u(t,i)>u(t,r)?e.observer:e.target;return s.pixelSizeAt(a)}e([h()],x.prototype,"selectedViewshed",void 0),e([h()],x.prototype,"isDecoration",void 0),e([h()],x.prototype,"shadowMap",null),e([h()],x.prototype,"hasViewsheds",null),e([h()],x.prototype,"_contentPixelRatio",null),e([h()],x.prototype,"_viewshedsInView",null),e([h()],x.prototype,"consumes",void 0),e([h()],x.prototype,"produces",void 0),x=e([d("esri.views.3d.webgl-engine.lib.Viewshed")],x);const D=v(),E=m(),I=m();export{x as Viewshed,O as computeOffsetScale};