@arcgis/core 4.34.0-next.25 → 4.34.0-next.27

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 (1653) hide show
  1. package/Color.js +1 -1
  2. package/README.md +5 -5
  3. package/UndoRedo.js +1 -1
  4. package/WebDocument2D.js +1 -1
  5. package/WebScene.js +1 -1
  6. package/analysis/LengthDimension.js +1 -1
  7. package/analysis/VolumeMeasurement/volumeMeasurementUtils.js +1 -1
  8. package/analysis/VolumeMeasurementAnalysis.js +1 -1
  9. package/analysis/dimensionUtils.js +1 -1
  10. package/analysis/featureReferenceUtils.js +1 -1
  11. package/applications/Components/imageryUtils.d.ts +5 -0
  12. package/applications/Components/imageryUtils.js +1 -1
  13. package/applications/KnowledgeStudio/resourceSerializationUtils.js +1 -1
  14. package/arcade/ArcadeDate.js +1 -1
  15. package/arcade/ArcadeModuleResolver.js +1 -1
  16. package/arcade/Dictionary.js +1 -1
  17. package/arcade/Feature.js +1 -1
  18. package/arcade/Voxel.js +1 -1
  19. package/arcade/arcadeAsyncRuntime.js +1 -1
  20. package/arcade/arcadeCompiler.js +1 -1
  21. package/arcade/arcadeEnvironment.js +1 -1
  22. package/arcade/arcadeRuntime.js +1 -1
  23. package/arcade/containerUtils.js +1 -1
  24. package/arcade/enum.js +1 -1
  25. package/arcade/executionError.js +1 -1
  26. package/arcade/featureSetUtils.js +1 -1
  27. package/arcade/featureset/actions/Adapted.js +1 -1
  28. package/arcade/featureset/actions/AttributeFilter.js +1 -1
  29. package/arcade/featureset/actions/GroupBy.js +1 -1
  30. package/arcade/featureset/actions/OrderBy.js +1 -1
  31. package/arcade/featureset/actions/SpatialFilter.js +1 -1
  32. package/arcade/featureset/actions/Top.js +1 -1
  33. package/arcade/featureset/sources/Empty.js +1 -1
  34. package/arcade/featureset/sources/FeatureLayerDynamic.js +1 -1
  35. package/arcade/featureset/sources/FeatureLayerMemory.js +1 -1
  36. package/arcade/featureset/sources/FeatureLayerRelated.js +1 -1
  37. package/arcade/featureset/support/FeatureSet.js +1 -1
  38. package/arcade/featureset/support/StatsField.js +1 -1
  39. package/arcade/featureset/support/errorsupport.js +1 -1
  40. package/arcade/featureset/support/shared.js +1 -1
  41. package/arcade/featureset/support/sqlUtils.js +1 -1
  42. package/arcade/featureset/support/stats.js +1 -1
  43. package/arcade/functions/convertdirection.js +1 -1
  44. package/arcade/functions/date.js +1 -1
  45. package/arcade/functions/feature.js +1 -1
  46. package/arcade/functions/featuresetbase.js +1 -1
  47. package/arcade/functions/featuresetgeom.js +1 -1
  48. package/arcade/functions/featuresetstats.js +1 -1
  49. package/arcade/functions/featuresetstring.js +1 -1
  50. package/arcade/functions/geomasync.js +1 -1
  51. package/arcade/functions/geometry.js +1 -1
  52. package/arcade/functions/geomsync.js +1 -1
  53. package/arcade/functions/knowledgegraph.js +1 -1
  54. package/arcade/functions/stats.js +1 -1
  55. package/arcade/functions/string.js +1 -1
  56. package/arcade/geometry/constructors.js +1 -1
  57. package/arcade/geometry/functions.js +1 -1
  58. package/arcade/geometry/unitConversion.js +1 -1
  59. package/arcade/validation/arcadeValidator.js +1 -1
  60. package/arcade/validation/diagnosticMessages.js +1 -1
  61. package/arcade/validation/types.js +0 -1
  62. package/assets/esri/core/workers/RemoteClient.js +1 -1
  63. package/assets/esri/core/workers/chunks/006b5b465f6ec1463743.js +1 -0
  64. package/assets/esri/core/workers/chunks/03ee4d63aa8de44958ab.js +1 -0
  65. package/assets/esri/core/workers/chunks/{3b80b01551d124534a1b.js → 075431aacc19f4f50e61.js} +1 -1
  66. package/assets/esri/core/workers/chunks/083575552e530a6471c1.js +1 -0
  67. package/assets/esri/core/workers/chunks/{e7f5ff5318c144baa4e9.js → 09063e2b6f92f8b8d6df.js} +1 -1
  68. package/assets/esri/core/workers/chunks/0c6f498e25b68d33f89e.js +1 -0
  69. package/assets/esri/core/workers/chunks/11a7e7ff2b6d040b7257.js +1 -0
  70. package/assets/esri/core/workers/chunks/147c1537e39e0a9f57c0.js +1 -0
  71. package/assets/esri/core/workers/chunks/16fbf04c039d1ea34f3d.js +1 -0
  72. package/assets/esri/core/workers/chunks/1859a11df9f579b993d7.js +1 -0
  73. package/assets/esri/core/workers/chunks/1aff43dad2302677b4f4.js +1 -0
  74. package/assets/esri/core/workers/chunks/24ce3d21ddd15da614dd.js +1 -0
  75. package/assets/esri/core/workers/chunks/277941bec15525dbd3a0.js +1 -0
  76. package/assets/esri/core/workers/chunks/28ca93c78798caf2e3f9.js +1 -0
  77. package/assets/esri/core/workers/chunks/2a37e4e361a47fb4e7a8.js +1 -0
  78. package/assets/esri/core/workers/chunks/2cfe4370834b754d8a6c.js +1 -0
  79. package/assets/esri/core/workers/chunks/{36648facd56ee91afc7c.js → 2d354cb311fa41b22d2e.js} +1 -1
  80. package/assets/esri/core/workers/chunks/{820cf4337b248a0cb63c.js → 2de5fcc52f45260b8f64.js} +1 -1
  81. package/assets/esri/core/workers/chunks/2f89b85af0f5b523824b.js +1 -0
  82. package/assets/esri/core/workers/chunks/3149a86cd25684dcb0b3.js +1 -0
  83. package/assets/esri/core/workers/chunks/33903a91c2a08b870623.js +1 -0
  84. package/assets/esri/core/workers/chunks/37f6562f5a3aeb5cf623.js +1 -0
  85. package/assets/esri/core/workers/chunks/381305de6f3ddb89f1ca.js +1 -0
  86. package/assets/esri/core/workers/chunks/386ab72a45102c2d47f2.js +1 -0
  87. package/assets/esri/core/workers/chunks/39756213796d0fe119e7.js +1 -0
  88. package/assets/esri/core/workers/chunks/3e731761df43a50d4884.js +1 -0
  89. package/assets/esri/core/workers/chunks/3fe7be535affae31de7e.js +1 -0
  90. package/assets/esri/core/workers/chunks/{4a720f2ed4eb96c3bd1c.js → 3fe84dceab7a9e6783d5.js} +1 -1
  91. package/assets/esri/core/workers/chunks/41071e672dcddec47492.js +1 -0
  92. package/assets/esri/core/workers/chunks/{109ef17dd4f9430bb686.js → 4171bfbaddf06c23cc5e.js} +1 -1
  93. package/assets/esri/core/workers/chunks/{bf3fc71881aa559fc931.js → 421ab3c4db4235951e36.js} +1 -1
  94. package/assets/esri/core/workers/chunks/45121b7258333c8ebbdb.js +1 -0
  95. package/assets/esri/core/workers/chunks/46bf33ed96014e632e3f.js +1 -0
  96. package/assets/esri/core/workers/chunks/4721614c4d81d535505b.js +1 -0
  97. package/assets/esri/core/workers/chunks/{472c677a74d779ce62d7.js → 473190fe656a40cafd40.js} +1 -1
  98. package/assets/esri/core/workers/chunks/4778acd0cfaf0cebeec7.js +1 -0
  99. package/assets/esri/core/workers/chunks/4784af2b04fafacfcc1b.js +1 -0
  100. package/assets/esri/core/workers/chunks/4bc639cbb28eb75233be.js +1 -0
  101. package/assets/esri/core/workers/chunks/4c715d54f5734511adbd.js +1 -0
  102. package/assets/esri/core/workers/chunks/4cb6f77fe23962ef264b.js +1 -0
  103. package/assets/esri/core/workers/chunks/{5ef3256c32c4b622bd11.js → 4d884390288b1380ab2a.js} +1 -1
  104. package/assets/esri/core/workers/chunks/4f63b8236c734551c3f0.js +1 -0
  105. package/assets/esri/core/workers/chunks/4fa81a7137737fa29623.js +1 -0
  106. package/assets/esri/core/workers/chunks/51b97f67c8dbfb932170.js +1 -0
  107. package/assets/esri/core/workers/chunks/5227a05a244d6af746f0.js +1 -0
  108. package/assets/esri/core/workers/chunks/{97324f030738fc0d456b.js → 54a30a1ae25eff0c2bdc.js} +1 -1
  109. package/assets/esri/core/workers/chunks/{6e9b4bfe2a1497c96100.js → 56742c5b310b3c989f4d.js} +1 -1
  110. package/assets/esri/core/workers/chunks/{06cdbccc9f325dcc303d.js → 5934944d3532cc27c046.js} +1 -1
  111. package/assets/esri/core/workers/chunks/{40fc7c43feaeef8b814d.js → 5ac49ddc11e89a755470.js} +1 -1
  112. package/assets/esri/core/workers/chunks/5ba2e074d42493f6eac9.js +1 -0
  113. package/assets/esri/core/workers/chunks/{856739d12ee9d7154683.js → 5f239972cb95afdfa77a.js} +1 -1
  114. package/assets/esri/core/workers/chunks/60d0fc02f37c6b328d31.js +1 -0
  115. package/assets/esri/core/workers/chunks/61e4aa939915e9cd1e8d.js +1 -0
  116. package/assets/esri/core/workers/chunks/630d55eea98469a361d4.js +1 -0
  117. package/assets/esri/core/workers/chunks/{395f589b0929e37ba674.js → 66f1c9a82c2c960bb86c.js} +1 -1
  118. package/assets/esri/core/workers/chunks/679018fd319a9bebeb88.js +1 -0
  119. package/assets/esri/core/workers/chunks/{d7d5f7fea2bf77f43754.js → 6878d504d776abf8089b.js} +1 -1
  120. package/assets/esri/core/workers/chunks/6963ded8428cc8d51d85.js +1 -0
  121. package/assets/esri/core/workers/chunks/6a0777cf1270fcab4574.js +1 -0
  122. package/assets/esri/core/workers/chunks/6b6ab092f578b20c8e56.js +1 -0
  123. package/assets/esri/core/workers/chunks/6c3ae96c6ef764fb9552.js +1 -0
  124. package/assets/esri/core/workers/chunks/6d786fac4bb5efcb7acc.js +1 -0
  125. package/assets/esri/core/workers/chunks/706d8e0561b810613308.js +1 -0
  126. package/assets/esri/core/workers/chunks/72a50a2845ab211868f2.js +1 -0
  127. package/assets/esri/core/workers/chunks/730554e5d6018d2e9e9e.js +1 -0
  128. package/assets/esri/core/workers/chunks/7b5bb94eb8705a84d45c.js +1 -0
  129. package/assets/esri/core/workers/chunks/7bd672e534cde0d5787d.js +1 -0
  130. package/assets/esri/core/workers/chunks/{66affa0ee7fda288df11.js → 7e746427375e83fc4351.js} +1 -1
  131. package/assets/esri/core/workers/chunks/{cefb063f93c4310a3888.js → 80dc4c6c549d3711af5c.js} +1 -1
  132. package/assets/esri/core/workers/chunks/812cf236acb08bbfa54e.js +1 -0
  133. package/assets/esri/core/workers/chunks/81d82c8c8bd8d79c6420.js +1 -0
  134. package/assets/esri/core/workers/chunks/8664ed88a2c52751e590.js +1 -0
  135. package/assets/esri/core/workers/chunks/8684dcf89344aaeaf97a.js +1 -0
  136. package/assets/esri/core/workers/chunks/8772982f0760a7770290.js +1 -0
  137. package/assets/esri/core/workers/chunks/87df7cb4faf37d68bcbc.js +1 -0
  138. package/assets/esri/core/workers/chunks/8b33efbde3e96be88eb9.js +1 -0
  139. package/assets/esri/core/workers/chunks/8d914ea9b18b32fd62b8.js +1 -0
  140. package/assets/esri/core/workers/chunks/9046a792395da28fa8f7.js +1 -0
  141. package/assets/esri/core/workers/chunks/92a372a96245c083e8d6.js +1 -0
  142. package/assets/esri/core/workers/chunks/9322160387e5c3c968cd.js +346 -0
  143. package/assets/esri/core/workers/chunks/937c93e536ea932257eb.js +1 -0
  144. package/assets/esri/core/workers/chunks/93a068bb3b0a4b918821.js +1 -0
  145. package/assets/esri/core/workers/chunks/{a8a5cdd70db90273a3fc.js → 94a3474e3f45efa4a4fe.js} +1 -1
  146. package/assets/esri/core/workers/chunks/9723512bc9db4a301c72.js +1 -0
  147. package/assets/esri/core/workers/chunks/97a56b058f8472fec1b2.js +1 -0
  148. package/assets/esri/core/workers/chunks/{86abfce1f2ac93cc4d54.js → 987c816176c40ff62027.js} +1 -1
  149. package/assets/esri/core/workers/chunks/9a8669dd3a7a2996d3e4.js +1 -0
  150. package/assets/esri/core/workers/chunks/{30fae1f066dc3cd781f1.js → 9af47a4da3a0b84f1add.js} +1 -1
  151. package/assets/esri/core/workers/chunks/9b7d8f00655e9c1469de.js +1 -0
  152. package/assets/esri/core/workers/chunks/9c5745d9e9eeff98bb1d.js +1 -0
  153. package/assets/esri/core/workers/chunks/{1d27701832ea139fcc20.js → 9d18e772aef0b7027995.js} +1 -1
  154. package/assets/esri/core/workers/chunks/{7cfba5cec425221962e8.js → a150401f60342f9873f8.js} +1 -1
  155. package/assets/esri/core/workers/chunks/a24d1572c67f27ceced4.js +1 -0
  156. package/assets/esri/core/workers/chunks/a2bfb7b2f3f909dc5e59.js +1 -0
  157. package/assets/esri/core/workers/chunks/a3f0e977cc7001645cce.js +1 -0
  158. package/assets/esri/core/workers/chunks/a5310ff0bd5efb33cae6.js +1 -0
  159. package/assets/esri/core/workers/chunks/a9d83a442d8d7a376fc0.js +1 -0
  160. package/assets/esri/core/workers/chunks/aa585903d55773a85c84.js +1 -0
  161. package/assets/esri/core/workers/chunks/aa8df507839b17003872.js +1 -0
  162. package/assets/esri/core/workers/chunks/ac03c31de26bbbec056e.js +1 -0
  163. package/assets/esri/core/workers/chunks/ac7023eccf5fdbbcdc0d.js +1 -0
  164. package/assets/esri/core/workers/chunks/adf2572b971796522693.js +1 -0
  165. package/assets/esri/core/workers/chunks/ae75bfa90eb530d5954e.js +1 -0
  166. package/assets/esri/core/workers/chunks/afb7e346779adefa4b05.js +1 -0
  167. package/assets/esri/core/workers/chunks/b13dc7ac1f442059cff7.js +1 -0
  168. package/assets/esri/core/workers/chunks/b3f6a783a8ac879ff1e4.js +1 -0
  169. package/assets/esri/core/workers/chunks/b50841f898d4eb420b73.js +1 -0
  170. package/assets/esri/core/workers/chunks/b8853c9a65d642be0457.js +1 -0
  171. package/assets/esri/core/workers/chunks/b89aacec211c66e3a011.js +1 -0
  172. package/assets/esri/core/workers/chunks/{567385709e18ace93b1e.js → b9435bbb89339fb0efe7.js} +1 -1
  173. package/assets/esri/core/workers/chunks/bd6c6acf23db2a2e8ef8.js +1 -0
  174. package/assets/esri/core/workers/chunks/bdb7d6273c457b5193fc.js +1 -0
  175. package/assets/esri/core/workers/chunks/be1b83077f6c775ffd17.js +1 -0
  176. package/assets/esri/core/workers/chunks/{d2986ddd390227feac85.js → bfa8a2523b35ee698709.js} +1 -1
  177. package/assets/esri/core/workers/chunks/c01dfbcea25387c6a781.js +1 -0
  178. package/assets/esri/core/workers/chunks/{a7a5b89c2bb69f3af59c.js → c4c26753fb144838e9bf.js} +1 -1
  179. package/assets/esri/core/workers/chunks/{41d07f5a550f242d964e.js → c87bb42f825c39f9cce3.js} +1 -1
  180. package/assets/esri/core/workers/chunks/c97df44df42c6de8ffc5.js +1 -0
  181. package/assets/esri/core/workers/chunks/c9fe9792312f0161ef5a.js +1 -0
  182. package/assets/esri/core/workers/chunks/caeaa73cef54c69bfb8d.js +1 -0
  183. package/assets/esri/core/workers/chunks/cc097863f03902c75496.js +1 -0
  184. package/assets/esri/core/workers/chunks/ce0683921ccefc580018.js +1 -0
  185. package/assets/esri/core/workers/chunks/ce1a4368741f1ddc53fe.js +1 -0
  186. package/assets/esri/core/workers/chunks/cf5f18700facaa0c8170.js +1 -0
  187. package/assets/esri/core/workers/chunks/cf6a564fa3126add1664.js +1 -0
  188. package/assets/esri/core/workers/chunks/cf93b17f57cbc03f802e.js +1 -0
  189. package/assets/esri/core/workers/chunks/cffd73e94061823317ee.js +1 -0
  190. package/assets/esri/core/workers/chunks/d3b932ff2299c89c2582.js +1 -0
  191. package/assets/esri/core/workers/chunks/d52e8c2065f2767cd6f9.js +1 -0
  192. package/assets/esri/core/workers/chunks/{35aef6fd08b50c4d7dd3.js → d59a729c79e6ed434152.js} +1 -1
  193. package/assets/esri/core/workers/chunks/d88935ae5669d14c5b29.js +1 -0
  194. package/assets/esri/core/workers/chunks/{5a9b27f2b343cd5b0852.js → da82ed1d2012d0cd883b.js} +1 -1
  195. package/assets/esri/core/workers/chunks/e03930dd9ce55b903906.js +1 -0
  196. package/assets/esri/core/workers/chunks/e302a3a9a6cf1f48455d.js +1 -0
  197. package/assets/esri/core/workers/chunks/e506c9158bd0b5174f18.js +1009 -0
  198. package/assets/esri/core/workers/chunks/e5d06f87eb8b52d10dfc.js +1 -0
  199. package/assets/esri/core/workers/chunks/e5fef2b5b6da2377703c.js +1 -0
  200. package/assets/esri/core/workers/chunks/e6009ddd28cc5b8752b2.js +1 -0
  201. package/assets/esri/core/workers/chunks/e6872460241fee0a561a.js +1 -0
  202. package/assets/esri/core/workers/chunks/e6e4e2fb9568319c6207.js +1 -0
  203. package/assets/esri/core/workers/chunks/e799433770e4303fcd9c.js +1 -0
  204. package/assets/esri/core/workers/chunks/e7cbd1b5e4cb32851a5c.js +1 -0
  205. package/assets/esri/core/workers/chunks/ecd673eccf89643df07a.js +2 -0
  206. package/assets/esri/core/workers/chunks/{d1aeb9fe9eb573beefcc.js → edc4f230a5bdf928f9fd.js} +2 -2
  207. package/assets/esri/core/workers/chunks/edd9f70247daaef2f0b9.js +1 -0
  208. package/assets/esri/core/workers/chunks/ee0596d6d66225b04465.js +1 -0
  209. package/assets/esri/core/workers/chunks/f318f3289684f9112431.js +1 -0
  210. package/assets/esri/core/workers/chunks/f3c011455136b6c85803.js +1 -0
  211. package/assets/esri/core/workers/chunks/f3d784052b8357408394.js +1 -0
  212. package/assets/esri/core/workers/chunks/{5284d46aecd6fe0345b8.js → f5e9f29cc132208c91be.js} +1 -1
  213. package/assets/esri/core/workers/chunks/f95edcb0664039bbe73f.js +1 -0
  214. package/assets/esri/core/workers/chunks/fb84fa28978a1820a725.js +1 -0
  215. package/assets/esri/core/workers/chunks/{c11efbf098866c927607.js → ffc4703dcdc792ddaa9c.js} +1 -1
  216. package/assets/esri/libs/i3s/i3s.wasm +0 -0
  217. package/chunks/BlendLayers.glsl.js +1 -1
  218. package/chunks/BloomBlur.glsl.js +8 -8
  219. package/chunks/CheckerBoard.glsl.js +3 -3
  220. package/chunks/Clouds.glsl.js +15 -15
  221. package/chunks/CloudsComposition.glsl.js +2 -2
  222. package/chunks/ColorMaterial.glsl.js +4 -4
  223. package/chunks/ComponentShader.glsl.js +36 -36
  224. package/chunks/Compositing.glsl.js +4 -4
  225. package/chunks/DefaultMaterial.glsl.js +23 -23
  226. package/chunks/EdgeShader.glsl.js +9 -9
  227. package/chunks/FocusAreaColor.glsl.js +3 -3
  228. package/chunks/FocusAreaMask.glsl.js +2 -2
  229. package/chunks/HUDMaterial.glsl.js +44 -44
  230. package/chunks/HeatmapDensity.glsl.js +6 -6
  231. package/chunks/ImageMaterial.glsl.js +4 -4
  232. package/chunks/LaserlinePath.glsl.js +6 -6
  233. package/chunks/LineCallout.glsl.js +5 -5
  234. package/chunks/LineMarker.glsl.js +29 -29
  235. package/chunks/Magnifier.glsl.js +2 -2
  236. package/chunks/MeasurementArrow.glsl.js +6 -6
  237. package/chunks/NativeLine.glsl.js +7 -7
  238. package/chunks/NoiseTextureAtlas.glsl.js +34 -34
  239. package/chunks/OverlayCompositing.glsl.js +2 -2
  240. package/chunks/Path.glsl.js +16 -16
  241. package/chunks/Pattern.glsl.js +22 -22
  242. package/chunks/PointRenderer.glsl.js +4 -4
  243. package/chunks/Precipitation.glsl.js +7 -7
  244. package/chunks/RasterColorizer.glsl.js +11 -11
  245. package/chunks/RealisticTree.glsl.js +16 -16
  246. package/chunks/RibbonLine.glsl.js +36 -36
  247. package/chunks/ShadedColorMaterial.glsl.js +7 -7
  248. package/chunks/ShadowCastAccumulate.glsl.js +4 -4
  249. package/chunks/ShadowCastClear.glsl.js +1 -1
  250. package/chunks/ShadowCastVisualize.glsl.js +11 -11
  251. package/chunks/ShadowHighlight.glsl.js +3 -3
  252. package/chunks/SimpleAtmosphere.glsl.js +9 -9
  253. package/chunks/SlicePlaneMaterial.glsl.js +3 -3
  254. package/chunks/Stars.glsl.js +2 -2
  255. package/chunks/Terrain.glsl.js +32 -32
  256. package/chunks/WaterSurface.glsl.js +16 -16
  257. package/chunks/aiServices.js +1 -1
  258. package/chunks/arcade.js +1 -1
  259. package/chunks/array.js +1 -1
  260. package/chunks/boundedPlane.js +1 -1
  261. package/chunks/cameraUtilsPlanar.js +1 -1
  262. package/chunks/cameraUtilsSpherical.js +1 -1
  263. package/chunks/i3s.js +1 -1
  264. package/chunks/languageUtils.js +1 -1
  265. package/chunks/persistableUrlUtils.js +1 -1
  266. package/chunks/sphere.js +1 -1
  267. package/config.js +1 -1
  268. package/core/ByteSizeUnit.js +0 -1
  269. package/core/Clonable.js +1 -1
  270. package/core/Collection.js +1 -1
  271. package/core/Loadable.js +1 -1
  272. package/core/MemCache.js +1 -1
  273. package/core/MemCachePool.js +1 -1
  274. package/core/MultiOriginJSONSupport.js +1 -1
  275. package/core/ObservableChangesType.js +0 -1
  276. package/core/PooledArray.js +1 -1
  277. package/core/Promise.js +1 -1
  278. package/core/accessorSupport/DefaultsStore.js +1 -1
  279. package/core/accessorSupport/MultiOriginStore.js +1 -1
  280. package/core/accessorSupport/Properties.js +1 -1
  281. package/core/accessorSupport/Property.js +1 -1
  282. package/core/accessorSupport/PropertyOrigin.js +1 -1
  283. package/core/accessorSupport/Store.js +1 -1
  284. package/core/accessorSupport/decorators/persistable.js +1 -1
  285. package/core/accessorSupport/defaultsStoreUtils.js +1 -1
  286. package/core/accessorSupport/overrideDefaultsFrom.js +1 -1
  287. package/core/accessorSupport/testSupport.js +1 -1
  288. package/core/accessorSupport/watch.js +1 -1
  289. package/core/accessorSupport/write.js +1 -1
  290. package/core/collectionUtils.js +1 -1
  291. package/core/colorUtils.js +1 -1
  292. package/core/heapSort.js +5 -0
  293. package/core/mathUtils.js +1 -1
  294. package/core/pbf.js +1 -1
  295. package/core/sql/AggregateFunctions.js +1 -1
  296. package/core/sql/SqlInterval.js +1 -1
  297. package/core/sql/StandardizedFunctions.js +1 -1
  298. package/core/sql/WhereClause.js +1 -1
  299. package/core/sql/errorSupport.js +1 -1
  300. package/core/sql/sqlArithmeticUtils.js +1 -1
  301. package/core/sql/sqlCompareUtils.js +1 -1
  302. package/core/sql/sqlDateParsingUtils.js +1 -1
  303. package/core/support/OwningCollection.js +1 -1
  304. package/core/unitFormatUtils.js +1 -1
  305. package/editing/sharedTemplates/executor/builders/pointAtAllVerticesOfLine.js +1 -1
  306. package/editing/sharedTemplates/executor/builders/pointAtBeginningOfLine.js +1 -1
  307. package/editing/sharedTemplates/executor/builders/pointAtBeginningOfRadial.js +1 -1
  308. package/editing/sharedTemplates/executor/builders/pointAtEndOfLine.js +1 -1
  309. package/editing/sharedTemplates/executor/builders/pointAtInteriorVertices.js +1 -1
  310. package/editing/sharedTemplates/executor/builders/pointAtNotBeginningOfLine.js +1 -1
  311. package/editing/sharedTemplates/executor/builders/pointAtNotEndOfLine.js +1 -1
  312. package/editing/sharedTemplates/executor/builders/support/offsetUtils.js +1 -1
  313. package/editing/sharedTemplates/executor/createTemplateExecutor.js +1 -1
  314. package/geometry/projection/computeTranslationToOriginAndRotation.js +1 -1
  315. package/geometry/projection/localLinearScaleFactors.js +1 -1
  316. package/geometry/projection/projectBoundingSphere.js +1 -1
  317. package/geometry/projection/projectors.js +1 -1
  318. package/geometry/support/Axis.js +0 -1
  319. package/geometry/support/SupportedGCSWkids.js +0 -1
  320. package/geometry/support/TileClipper.js +1 -1
  321. package/geometry/support/boundedPlane.js +1 -1
  322. package/geometry/support/coordinateSystem.js +1 -1
  323. package/geometry/support/coordsUtils.js +1 -1
  324. package/geometry/support/frustum.js +1 -1
  325. package/geometry/support/heightModelInfoUtils.js +1 -1
  326. package/geometry/support/meshUtils/exporters/gltf/bufferview.js +1 -1
  327. package/geometry/support/meshUtils/exporters/gltf/glb.js +1 -1
  328. package/geometry/support/meshUtils/exporters/gltf/gltf.js +1 -1
  329. package/geometry/support/meshUtils/exporters/gltf/gltfexport.js +1 -1
  330. package/geometry/support/meshUtils/exporters/gltf/gltftypes.js +0 -1
  331. package/geometry/support/meshUtils/exporters/gltf/types.js +0 -1
  332. package/geometry/support/meshUtils/loadGLTFMesh.js +1 -1
  333. package/geometry/support/meshUtils/projection.js +1 -1
  334. package/geometry/support/meshUtils/vertexSpaceConversion.js +1 -1
  335. package/geometry/support/plane.js +1 -1
  336. package/geometry/support/planetGCSUtils.js +1 -1
  337. package/geometry/support/polygonExtentClipping.js +1 -1
  338. package/geometry/support/polygonUtils.js +1 -1
  339. package/geometry/support/spatialReferenceUtils.js +1 -1
  340. package/geometry/support/sphere.js +1 -1
  341. package/geometry/support/triangulationUtils.js +1 -1
  342. package/interfaces.d.ts +116 -22
  343. package/kernel.js +1 -1
  344. package/layers/BuildingSceneLayer.js +1 -1
  345. package/layers/FeatureLayer.js +1 -1
  346. package/layers/GroupLayer.js +1 -1
  347. package/layers/ILyr3DWasmPerSceneView.js +1 -1
  348. package/layers/ImageryLayer.js +1 -1
  349. package/layers/ImageryTileLayer.js +1 -1
  350. package/layers/IntegratedMeshLayer.js +1 -1
  351. package/layers/KnowledgeGraphLayer.js +1 -1
  352. package/layers/LinkChartLayer.js +1 -1
  353. package/layers/Lyr3DWasmPerSceneView.js +1 -1
  354. package/layers/MapImageLayer.js +1 -1
  355. package/layers/MediaLayer.js +1 -1
  356. package/layers/OrientedImageryLayer.js +1 -1
  357. package/layers/PointCloudLayer.js +1 -1
  358. package/layers/SceneLayer.js +1 -1
  359. package/layers/StreamLayer.js +1 -1
  360. package/layers/SubtypeGroupLayer.js +1 -1
  361. package/layers/VideoLayer.js +1 -1
  362. package/layers/VoxelWasmPerSceneView.js +1 -1
  363. package/layers/WCSLayer.js +1 -1
  364. package/layers/catalog/CatalogFootprintLayer.js +1 -1
  365. package/layers/graphics/controllers/I3SOnDemandController.js +1 -1
  366. package/layers/graphics/sources/connections/WebSocketConnection.js +1 -1
  367. package/layers/graphics/sources/interfaces.js +0 -1
  368. package/layers/knowledgeGraph/KnowledgeGraphSublayer.js +1 -1
  369. package/layers/mixins/ArcGISImageService.js +1 -1
  370. package/layers/mixins/ArcGISMapService.js +1 -1
  371. package/layers/mixins/FeatureLayerBase.js +1 -1
  372. package/layers/mixins/SceneService.js +1 -1
  373. package/layers/mixins/SublayersOwner.js +1 -1
  374. package/layers/ogc/ogcFeatureUtils.js +1 -1
  375. package/layers/orientedImagery/core/ExposurePoint.js +1 -1
  376. package/layers/orientedImagery/core/cameraOrientationRegistry.js +1 -1
  377. package/layers/orientedImagery/core/utils.js +1 -1
  378. package/layers/orientedImagery/enums/CameraOrientationType.js +0 -1
  379. package/layers/orientedImagery/transformations/updateElevationUtils.js +1 -1
  380. package/layers/orientedImagery/transformations/utils.js +1 -1
  381. package/layers/support/ImageElement.js +1 -1
  382. package/layers/support/RasterJobHandler.js +1 -1
  383. package/layers/support/RasterWorker.js +1 -1
  384. package/layers/support/Sublayer.js +1 -1
  385. package/layers/support/TileInfo.js +1 -1
  386. package/layers/support/TilemapCache.js +1 -1
  387. package/layers/support/domainUtils.js +1 -1
  388. package/layers/support/fieldUtils.js +1 -1
  389. package/layers/support/layerOriginUtils.js +1 -1
  390. package/layers/support/mediaUtils.js +1 -1
  391. package/layers/support/rasterDatasets/pixelReader.js +1 -1
  392. package/layers/support/rasterFunctions/ExtractBandFunction.js +1 -1
  393. package/layers/support/rasterFunctions/ExtractBandFunctionArguments.js +1 -1
  394. package/layers/support/rasterFunctions/MaskFunction.js +1 -1
  395. package/layers/support/rasterFunctions/MaskFunctionArguments.js +1 -1
  396. package/layers/support/rasterFunctions/pixelUtils.js +1 -1
  397. package/layers/support/rasterFunctions/rasterProjectionHelper.js +1 -1
  398. package/layers/support/rasterFunctions/stretchUtils.js +1 -1
  399. package/layers/support/streamLayerUtils.js +1 -1
  400. package/layers/support/sublayerUtils.js +1 -1
  401. package/layers/support/wmtsUtils.js +1 -1
  402. package/layers/voxel/VoxelTransferFunctionStyle.js +1 -1
  403. package/libs/basisu/TextureFormat.js +0 -1
  404. package/libs/i3s/I3SModule.js +1 -1
  405. package/libs/i3s/enums.js +0 -1
  406. package/libs/linkchartlayout/LinkChartLayout.js +1 -1
  407. package/libs/lyr3d/enums.js +0 -1
  408. package/libs/vxl/enums.js +0 -1
  409. package/networks/RulesTable.js +1 -1
  410. package/networks/UtilityNetwork.js +1 -1
  411. package/networks/support/UtilityNetworkLookupHelper.js +1 -1
  412. package/networks/support/typeUtils.js +1 -1
  413. package/networks/support/utils.js +1 -1
  414. package/package.json +3 -3
  415. package/renderers/support/DictionaryLoader.js +1 -1
  416. package/renderers/visualVariables/SizeVariable.js +1 -1
  417. package/renderers/visualVariables/support/sizeVariableUtils.js +1 -1
  418. package/renderers/visualVariables/support/visualVariableUtils.js +1 -1
  419. package/rest/knowledgeGraph/ProtoFeatureCollection.js +1 -1
  420. package/rest/knowledgeGraph/wasmInterface/KnowledgeWasmInterface.js +0 -1
  421. package/rest/knowledgeGraph/wasmInterface/WasmClientDataInterfaces.js +0 -1
  422. package/rest/knowledgeGraph/wasmInterface/WasmQueryWrapperInterfaces.js +1 -1
  423. package/rest/knowledgeGraph/wasmInterface/WasmSerializedLayerData.js +1 -1
  424. package/rest/knowledgeGraph/wasmInterface/wasmToClientDataFactories.js +1 -1
  425. package/rest/knowledgeGraph/wasmInterface/wasmToGeometryFactories.js +1 -1
  426. package/rest/knowledgeGraph/wasmInterface/wasmToQueryResponseObjFactories.js +1 -1
  427. package/rest/print.js +1 -1
  428. package/rest/support/meshFeatureSet.js +1 -1
  429. package/smartMapping/renderers/color.js +1 -1
  430. package/smartMapping/renderers/dotDensity.js +1 -1
  431. package/smartMapping/renderers/heatmap.js +1 -1
  432. package/smartMapping/renderers/pieChart.js +1 -1
  433. package/smartMapping/renderers/size.js +1 -1
  434. package/smartMapping/renderers/support/referenceSizeUtils.js +1 -1
  435. package/smartMapping/renderers/support/spikeUtils.js +1 -1
  436. package/smartMapping/renderers/type.js +1 -1
  437. package/smartMapping/statistics/heatmapStatistics.js +1 -1
  438. package/smartMapping/statistics/histogram.js +1 -1
  439. package/smartMapping/statistics/summaryStatistics.js +1 -1
  440. package/smartMapping/statistics/summaryStatisticsForAttributes.js +1 -1
  441. package/smartMapping/statistics/uniqueValues.js +1 -1
  442. package/smartMapping/support/adapters/support/layerUtils.js +1 -1
  443. package/support/persistableUrlUtils.js +1 -1
  444. package/support/revision.js +1 -1
  445. package/symbols/WaterSymbol3DLayer.js +1 -1
  446. package/symbols/cim/CIMEffects.js +1 -1
  447. package/symbols/cim/CIMSymbolDrawHelper.js +1 -1
  448. package/symbols/cim/CIMSymbolHelper.js +1 -1
  449. package/symbols/cim/CurveHelper.js +1 -1
  450. package/symbols/cim/GeometryWalker.js +1 -1
  451. package/symbols/cim/animationUtils.js +1 -1
  452. package/symbols/cim/cimAnalyzer.js +1 -1
  453. package/symbols/cim/defaultCIMValues.js +1 -1
  454. package/symbols/cim/effects/EffectArrow.js +1 -1
  455. package/symbols/cim/effects/EffectBuffer.js +1 -1
  456. package/symbols/cim/effects/EffectControlMeasureLine.js +1 -1
  457. package/symbols/cim/effects/EffectDashes.js +1 -1
  458. package/symbols/cim/effects/EffectDonut.js +1 -1
  459. package/symbols/cim/effects/EffectEnclosingPolygon.js +1 -1
  460. package/symbols/cim/effects/EffectOffset.js +1 -1
  461. package/symbols/cim/effects/EffectWave.js +1 -1
  462. package/symbols/cim/enums.js +0 -1
  463. package/symbols/cim/placements/PlacementAlongLineSameSize.js +1 -1
  464. package/symbols/cim/placements/PlacementAtExtremities.js +1 -1
  465. package/symbols/cim/placements/PlacementAtRatioPositions.js +1 -1
  466. package/symbols/cim/placements/PlacementInsidePolygon.js +1 -1
  467. package/symbols/cim/placements/PlacementOnLine.js +1 -1
  468. package/symbols/cim/placements/PlacementPolygonCenter.js +1 -1
  469. package/symbols/support/materialUtils.js +1 -1
  470. package/symbols/support/previewCIMSymbol.js +1 -1
  471. package/symbols/support/previewSymbol2D.js +1 -1
  472. package/symbols/support/previewSymbol3D.js +1 -1
  473. package/symbols/support/previewUtils.js +1 -1
  474. package/symbols/support/previewWebStyleSymbol.js +1 -1
  475. package/symbols/support/symbolUtils.js +1 -1
  476. package/undoredo/OperationStatus.js +0 -1
  477. package/undoredo/UndoRedoError.js +1 -1
  478. package/undoredo/UndoableOperation.js +1 -1
  479. package/views/2d/FrameTask.js +1 -1
  480. package/views/2d/LabelManager.js +1 -1
  481. package/views/2d/engine/AFeatureContainer.js +1 -1
  482. package/views/2d/engine/Bitmap.js +1 -1
  483. package/views/2d/engine/BitmapContainer.js +1 -1
  484. package/views/2d/engine/BitmapTileContainer.js +1 -1
  485. package/views/2d/engine/ParentChildStage.js +1 -1
  486. package/views/2d/engine/Stage.js +1 -1
  487. package/views/2d/engine/flow/BrushFlow.js +1 -1
  488. package/views/2d/engine/flow/FlowContainer.js +1 -1
  489. package/views/2d/engine/flow/styles/Imagery.js +1 -1
  490. package/views/2d/engine/flow/styles/Particles.js +1 -1
  491. package/views/2d/engine/flow/styles/Streamlines.js +1 -1
  492. package/views/2d/engine/imagery/BrushVectorField.js +1 -1
  493. package/views/2d/engine/imagery/RasterBitmap.js +1 -1
  494. package/views/2d/engine/imagery/RasterTileContainer.js +1 -1
  495. package/views/2d/engine/imagery/RasterVFContainer.js +1 -1
  496. package/views/2d/engine/imagery/RasterVFDisplayObject.js +1 -1
  497. package/views/2d/engine/imagery/RasterVFTileContainer.js +1 -1
  498. package/views/2d/engine/imagery/enums.js +0 -1
  499. package/views/2d/engine/vectorTiles/Feature.js +1 -1
  500. package/views/2d/engine/vectorTiles/GlyphMosaic.js +1 -1
  501. package/views/2d/engine/vectorTiles/Placement.js +1 -1
  502. package/views/2d/engine/vectorTiles/RenderBucket.js +1 -1
  503. package/views/2d/engine/vectorTiles/SpriteMosaic.js +1 -1
  504. package/views/2d/engine/vectorTiles/TileHandler.js +1 -1
  505. package/views/2d/engine/vectorTiles/TileParser.js +1 -1
  506. package/views/2d/engine/vectorTiles/VTLPainter3D.js +1 -1
  507. package/views/2d/engine/vectorTiles/VectorTile.js +1 -1
  508. package/views/2d/engine/vectorTiles/VectorTileContainer.js +1 -1
  509. package/views/2d/engine/vectorTiles/VectorTileFeatureIndex.js +1 -1
  510. package/views/2d/engine/vectorTiles/VectorTileRendererHelper3D.js +1 -1
  511. package/views/2d/engine/vectorTiles/WorkerTile.js +1 -1
  512. package/views/2d/engine/vectorTiles/WorkerTileHandler.js +1 -1
  513. package/views/2d/engine/vectorTiles/buckets/CircleBucket.js +1 -1
  514. package/views/2d/engine/vectorTiles/buckets/FillBucket.js +1 -1
  515. package/views/2d/engine/vectorTiles/buckets/LineBucket.js +1 -1
  516. package/views/2d/engine/vectorTiles/buckets/SymbolBucket.js +1 -1
  517. package/views/2d/engine/vectorTiles/decluttering/CollisionJob.js +1 -1
  518. package/views/2d/engine/vectorTiles/decluttering/SymbolFader.js +1 -1
  519. package/views/2d/engine/vectorTiles/decluttering/jobsUtil.js +1 -1
  520. package/views/2d/engine/vectorTiles/decluttering/util.js +1 -1
  521. package/views/2d/engine/vectorTiles/enums.js +0 -1
  522. package/views/2d/engine/vectorTiles/expression/expression.js +1 -1
  523. package/views/2d/engine/vectorTiles/shaders/VTLCircleMaterial.js +1 -1
  524. package/views/2d/engine/vectorTiles/shaders/VTLFillMaterial.js +1 -1
  525. package/views/2d/engine/vectorTiles/shaders/VTLLineMaterial.js +1 -1
  526. package/views/2d/engine/vectorTiles/shaders/VTLMaterial.js +1 -1
  527. package/views/2d/engine/vectorTiles/shaders/VTLMaterialManager.js +1 -1
  528. package/views/2d/engine/vectorTiles/shaders/VTLSymbolMaterial.js +1 -1
  529. package/views/2d/engine/vectorTiles/shaders/enums.js +0 -1
  530. package/views/2d/engine/vectorTiles/style/StyleDefinition.js +1 -1
  531. package/views/2d/engine/vectorTiles/style/StyleLayer.js +1 -1
  532. package/views/2d/engine/vectorTiles/style/StyleRepository.js +1 -1
  533. package/views/2d/engine/webgl/AttributeStoreView.js +1 -1
  534. package/views/2d/engine/webgl/BitBlitRenderer.js +1 -1
  535. package/views/2d/engine/webgl/FeatureDisplayList.js +1 -1
  536. package/views/2d/engine/webgl/FeatureTile.js +1 -1
  537. package/views/2d/engine/webgl/GlyphMosaic.js +1 -1
  538. package/views/2d/engine/webgl/Mesh2D.js +1 -1
  539. package/views/2d/engine/webgl/Overlay.js +1 -1
  540. package/views/2d/engine/webgl/OverlayContainer.js +1 -1
  541. package/views/2d/engine/webgl/OverlayMultipoint.js +1 -1
  542. package/views/2d/engine/webgl/Painter.js +1 -1
  543. package/views/2d/engine/webgl/SpriteMosaic.js +1 -1
  544. package/views/2d/engine/webgl/TextureManager.js +1 -1
  545. package/views/2d/engine/webgl/TileContainer.js +1 -1
  546. package/views/2d/engine/webgl/TurboLine.js +1 -1
  547. package/views/2d/engine/webgl/Utils.js +1 -1
  548. package/views/2d/engine/webgl/VertexStream.js +1 -1
  549. package/views/2d/engine/webgl/VideoScreenRenderer.js +1 -1
  550. package/views/2d/engine/webgl/WGLContainer.js +1 -1
  551. package/views/2d/engine/webgl/WorldExtentClipRenderer.js +1 -1
  552. package/views/2d/engine/webgl/alignmentUtils.js +1 -1
  553. package/views/2d/engine/webgl/animatedFormats/utils.js +1 -1
  554. package/views/2d/engine/webgl/animations/instructions.js +1 -1
  555. package/views/2d/engine/webgl/animations/store/AnimationStore.js +1 -1
  556. package/views/2d/engine/webgl/brushes/BrushClip.js +1 -1
  557. package/views/2d/engine/webgl/brushes/WGLBrushStencil.js +1 -1
  558. package/views/2d/engine/webgl/brushes/WGLBrushTileDebugInfo.js +1 -1
  559. package/views/2d/engine/webgl/brushes/WGLBrushVTLBackground.js +1 -1
  560. package/views/2d/engine/webgl/brushes/WGLBrushVTLCircle.js +1 -1
  561. package/views/2d/engine/webgl/brushes/WGLBrushVTLFill.js +1 -1
  562. package/views/2d/engine/webgl/brushes/WGLBrushVTLLine.js +1 -1
  563. package/views/2d/engine/webgl/brushes/WGLBrushVTLSymbol.js +1 -1
  564. package/views/2d/engine/webgl/collisions/LabelMetric.js +1 -1
  565. package/views/2d/engine/webgl/cpuMapped/Buffer.js +1 -1
  566. package/views/2d/engine/webgl/definitions.js +1 -1
  567. package/views/2d/engine/webgl/effects/FeatureEffect.js +1 -1
  568. package/views/2d/engine/webgl/effects/HighlightEffect.js +1 -1
  569. package/views/2d/engine/webgl/effects/HittestEffect.js +1 -1
  570. package/views/2d/engine/webgl/effects/highlight/HighlightGradient.js +1 -1
  571. package/views/2d/engine/webgl/effects/highlight/HighlightRenderer.js +1 -1
  572. package/views/2d/engine/webgl/effects/highlight/HighlightSurfaces.js +1 -1
  573. package/views/2d/engine/webgl/effects/post-processing/Bloom.js +1 -1
  574. package/views/2d/engine/webgl/effects/post-processing/Blur.js +1 -1
  575. package/views/2d/engine/webgl/effects/post-processing/Colorize.js +1 -1
  576. package/views/2d/engine/webgl/effects/post-processing/DropShadow.js +1 -1
  577. package/views/2d/engine/webgl/effects/post-processing/Opacity.js +1 -1
  578. package/views/2d/engine/webgl/enums.js +0 -1
  579. package/views/2d/engine/webgl/mesh/templates/shapingUtils.js +1 -1
  580. package/views/2d/engine/webgl/mesh/templates/templateUtils.js +1 -1
  581. package/views/2d/engine/webgl/meshing/Mesh.js +1 -1
  582. package/views/2d/engine/webgl/painter/RenderPass.js +1 -1
  583. package/views/2d/engine/webgl/shaderGraph/techniques/FeatureTechnique.js +1 -1
  584. package/views/2d/engine/webgl/shaderGraph/techniques/Technique.js +1 -1
  585. package/views/2d/engine/webgl/shaderGraph/techniques/TechniqueType.js +0 -1
  586. package/views/2d/engine/webgl/shaderGraph/techniques/TestTechnique.js +1 -1
  587. package/views/2d/engine/webgl/shaderGraph/techniques/animated/AAnimatedPolyShader.js +1 -1
  588. package/views/2d/engine/webgl/shaderGraph/techniques/animated/AAnimatedShader.js +1 -1
  589. package/views/2d/engine/webgl/shaderGraph/techniques/animated/AnimatedLineShader.js +1 -1
  590. package/views/2d/engine/webgl/shaderGraph/techniques/animated/AnimatedMarkerMeshWriter.js +1 -1
  591. package/views/2d/engine/webgl/shaderGraph/techniques/animated/AnimatedMarkerShader.js +1 -1
  592. package/views/2d/engine/webgl/shaderGraph/techniques/animated/AnimatedPolyMeshWriters.js +1 -1
  593. package/views/2d/engine/webgl/shaderGraph/techniques/animated/AnimatedTechniques.js +1 -1
  594. package/views/2d/engine/webgl/shaderGraph/techniques/animated/enums.js +0 -1
  595. package/views/2d/engine/webgl/shaderGraph/techniques/bitmap/BitmapTechnique.js +1 -1
  596. package/views/2d/engine/webgl/shaderGraph/techniques/blend/BlendTechnique.js +1 -1
  597. package/views/2d/engine/webgl/shaderGraph/techniques/dotDensity/DotDensityResources.js +1 -1
  598. package/views/2d/engine/webgl/shaderGraph/techniques/dotDensity/DotDensityTechnique.js +1 -1
  599. package/views/2d/engine/webgl/shaderGraph/techniques/featureTechniqueUtils.js +1 -1
  600. package/views/2d/engine/webgl/shaderGraph/techniques/fill/ComplexFillTechnique.js +1 -1
  601. package/views/2d/engine/webgl/shaderGraph/techniques/fill/ComplexOutlineFillTechnique.js +1 -1
  602. package/views/2d/engine/webgl/shaderGraph/techniques/fill/FillTechnique.js +1 -1
  603. package/views/2d/engine/webgl/shaderGraph/techniques/fill/GradientFillMeshWriter.js +1 -1
  604. package/views/2d/engine/webgl/shaderGraph/techniques/fill/GradientFillTechnique.js +1 -1
  605. package/views/2d/engine/webgl/shaderGraph/techniques/fill/GradientSizeHelper.js +1 -1
  606. package/views/2d/engine/webgl/shaderGraph/techniques/fill/OutlineFillTechnique.js +1 -1
  607. package/views/2d/engine/webgl/shaderGraph/techniques/fill/PatternFillTechnique.js +1 -1
  608. package/views/2d/engine/webgl/shaderGraph/techniques/fill/PatternOutlineFillTechnique.js +1 -1
  609. package/views/2d/engine/webgl/shaderGraph/techniques/fill/meshWriterUtils.js +1 -1
  610. package/views/2d/engine/webgl/shaderGraph/techniques/grid/GridTechnique.js +1 -1
  611. package/views/2d/engine/webgl/shaderGraph/techniques/heatmap/HeatmapResources.js +1 -1
  612. package/views/2d/engine/webgl/shaderGraph/techniques/heatmap/HeatmapTechnique.js +1 -1
  613. package/views/2d/engine/webgl/shaderGraph/techniques/labels/LabelTechnique.js +1 -1
  614. package/views/2d/engine/webgl/shaderGraph/techniques/line/GradientStrokeMeshWriter.js +1 -1
  615. package/views/2d/engine/webgl/shaderGraph/techniques/line/GradientStrokeTechnique.js +1 -1
  616. package/views/2d/engine/webgl/shaderGraph/techniques/line/LineTechnique.js +1 -1
  617. package/views/2d/engine/webgl/shaderGraph/techniques/line/TexturedLineMeshWriter.js +1 -1
  618. package/views/2d/engine/webgl/shaderGraph/techniques/line/TexturedLineTechnique.js +1 -1
  619. package/views/2d/engine/webgl/shaderGraph/techniques/magnifier/MagnifierTechnique.js +1 -1
  620. package/views/2d/engine/webgl/shaderGraph/techniques/markers/ComputedMarkerParams.js +1 -1
  621. package/views/2d/engine/webgl/shaderGraph/techniques/markers/MarkerMeshWriter.js +1 -1
  622. package/views/2d/engine/webgl/shaderGraph/techniques/markers/MarkerTechnique.js +1 -1
  623. package/views/2d/engine/webgl/shaderGraph/techniques/mesh/MeshWriterRegistry.js +1 -1
  624. package/views/2d/engine/webgl/shaderGraph/techniques/overlay/OverlayTechnique.js +1 -1
  625. package/views/2d/engine/webgl/shaderGraph/techniques/pieChart/PieChartTechnique.js +1 -1
  626. package/views/2d/engine/webgl/shaderGraph/techniques/raster/RasterColorizerTechnique.js +1 -1
  627. package/views/2d/engine/webgl/shaderGraph/techniques/raster/RasterProcessorTechnique.js +1 -1
  628. package/views/2d/engine/webgl/shaderGraph/techniques/raster/processor/AspectTechnique.js +1 -1
  629. package/views/2d/engine/webgl/shaderGraph/techniques/raster/processor/BandArithmeticTechnique.js +1 -1
  630. package/views/2d/engine/webgl/shaderGraph/techniques/raster/processor/BaseRasterProcessorTechnique.js +1 -1
  631. package/views/2d/engine/webgl/shaderGraph/techniques/raster/processor/ColormapToRGBTechnique.js +1 -1
  632. package/views/2d/engine/webgl/shaderGraph/techniques/raster/processor/CompositeBandTechnique.js +1 -1
  633. package/views/2d/engine/webgl/shaderGraph/techniques/raster/processor/ComputeChangeTechnique.js +1 -1
  634. package/views/2d/engine/webgl/shaderGraph/techniques/raster/processor/ContrastBrightnessTechnique.js +1 -1
  635. package/views/2d/engine/webgl/shaderGraph/techniques/raster/processor/ConvolutionTechnique.js +1 -1
  636. package/views/2d/engine/webgl/shaderGraph/techniques/raster/processor/CurvatureTechnique.js +1 -1
  637. package/views/2d/engine/webgl/shaderGraph/techniques/raster/processor/ExtractBandTechnique.js +1 -1
  638. package/views/2d/engine/webgl/shaderGraph/techniques/raster/processor/FocalStatisticsTechnique.js +1 -1
  639. package/views/2d/engine/webgl/shaderGraph/techniques/raster/processor/GrayscaleTechnique.js +1 -1
  640. package/views/2d/engine/webgl/shaderGraph/techniques/raster/processor/HillshadeTechnique.js +1 -1
  641. package/views/2d/engine/webgl/shaderGraph/techniques/raster/processor/LocalTechnique.js +1 -1
  642. package/views/2d/engine/webgl/shaderGraph/techniques/raster/processor/MaskTechnique.js +1 -1
  643. package/views/2d/engine/webgl/shaderGraph/techniques/raster/processor/NDVITechnique.js +1 -1
  644. package/views/2d/engine/webgl/shaderGraph/techniques/raster/processor/RemapTechnique.js +1 -1
  645. package/views/2d/engine/webgl/shaderGraph/techniques/raster/processor/ReprojectTechnique.js +1 -1
  646. package/views/2d/engine/webgl/shaderGraph/techniques/raster/processor/ShadedReliefTechnique.js +1 -1
  647. package/views/2d/engine/webgl/shaderGraph/techniques/raster/processor/SlopeTechnique.js +1 -1
  648. package/views/2d/engine/webgl/shaderGraph/techniques/raster/processor/StretchTechnique.js +1 -1
  649. package/views/2d/engine/webgl/shaderGraph/techniques/raster/processor/textureUtils.js +1 -1
  650. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/VisualVariableRotation.js +1 -1
  651. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/constants.js +1 -1
  652. package/views/2d/engine/webgl/shaderGraph/techniques/text/TextShader.js +1 -1
  653. package/views/2d/engine/webgl/shaderGraph/techniques/text/TextTechnique.js +1 -1
  654. package/views/2d/engine/webgl/shaderGraph/techniques/videoScreenRenderer/VideoScreenTechnique.js +1 -1
  655. package/views/2d/engine/webgl/util/createMatcher.js +1 -1
  656. package/views/2d/grid/GridView2D.js +1 -1
  657. package/views/2d/input/handlers/KeyZoom.js +1 -1
  658. package/views/2d/interactive/SnappingVisualizer2D.js +1 -1
  659. package/views/2d/interactive/editingTools/ControlPointsTransformTool.js +1 -1
  660. package/views/2d/interactive/editingTools/TransformTool.js +1 -1
  661. package/views/2d/interactive/editingTools/manipulations/DragManipulation.js +1 -1
  662. package/views/2d/interactive/editingTools/manipulations/Manipulation.js +1 -1
  663. package/views/2d/interactive/editingTools/manipulations/RotateManipulation.js +1 -1
  664. package/views/2d/interactive/editingTools/manipulations/ScaleManipulation.js +1 -1
  665. package/views/2d/layers/FeatureLayerView2D.js +1 -1
  666. package/views/2d/layers/ImageryLayerView2D.js +1 -1
  667. package/views/2d/layers/MediaLayerView2D.js +1 -1
  668. package/views/2d/layers/TileLayerView2D.js +1 -1
  669. package/views/2d/layers/VectorTileLayerView2D.js +1 -1
  670. package/views/2d/layers/features/FeatureContainer.js +1 -1
  671. package/views/2d/layers/features/RenderState.js +1 -1
  672. package/views/2d/layers/features/processor/TrackStrategy.js +1 -1
  673. package/views/2d/layers/features/schema/processor/SimpleProcessorSchema.js +1 -1
  674. package/views/2d/layers/features/schema/processor/StorageSchema.js +1 -1
  675. package/views/2d/layers/features/schema/processor/VisualVariablesSchema.js +1 -1
  676. package/views/2d/layers/features/schema/processor/symbols/ComplexSymbolSchema.js +1 -1
  677. package/views/2d/layers/features/schema/processor/symbols/SymbolSchema.js +1 -1
  678. package/views/2d/layers/features/schema/processor/symbols/utils.js +1 -1
  679. package/views/2d/layers/features/support/AttributeStore.js +1 -1
  680. package/views/2d/layers/graphics/AGraphicContainer.js +1 -1
  681. package/views/2d/layers/graphics/GraphicBoundsRenderer.js +1 -1
  682. package/views/2d/layers/graphics/GraphicContainer.js +1 -1
  683. package/views/2d/layers/graphics/HighlightGraphicContainer.js +1 -1
  684. package/views/2d/layers/imagery/ImageryView2D.js +1 -1
  685. package/views/2d/layers/support/DebugOverlay.js +1 -1
  686. package/views/2d/layers/support/DisplayGL.js +1 -1
  687. package/views/2d/layers/support/visualVariableSimpleUtils.js +1 -1
  688. package/views/2d/magnifier/MagnifierView2D.js +1 -1
  689. package/views/2d/tiling/FeatureTileSubscriptionManager.js +1 -1
  690. package/views/2d/tiling/enums.js +0 -1
  691. package/views/3d/FocusAreasView.js +1 -1
  692. package/views/3d/analysis/AnalysisViewManager3D.js +1 -1
  693. package/views/3d/analysis/AreaMeasurement/support/AreaMeasurementVisualization.js +1 -1
  694. package/views/3d/analysis/AreaMeasurement/support/MeasurementData.js +1 -1
  695. package/views/3d/analysis/AreaMeasurementAnalysisView3D.js +1 -1
  696. package/views/3d/analysis/Dimension/DimensionController.js +1 -1
  697. package/views/3d/analysis/Dimension/DimensionTool.js +1 -1
  698. package/views/3d/analysis/Dimension/DimensionVisualization.js +1 -1
  699. package/views/3d/analysis/Dimension/LengthDimensionSubTool.js +1 -1
  700. package/views/3d/analysis/Dimension/LengthDimensionVisualization.js +1 -1
  701. package/views/3d/analysis/Dimension/lengthDimensionConstraintUtils.js +1 -1
  702. package/views/3d/analysis/Dimension/lengthDimensionManipulatorUtils.js +1 -1
  703. package/views/3d/analysis/Dimension/lengthDimensionUtils.js +1 -1
  704. package/views/3d/analysis/DirectLineMeasurement/DirectLineMeasurementController.js +1 -1
  705. package/views/3d/analysis/DirectLineMeasurement/DirectLineMeasurementVisualization.js +1 -1
  706. package/views/3d/analysis/DirectLineMeasurement/interfaces.js +0 -1
  707. package/views/3d/analysis/DirectLineMeasurementAnalysisView3D.js +1 -1
  708. package/views/3d/analysis/LineOfSight/LineOfSightController.js +1 -1
  709. package/views/3d/analysis/LineOfSight/LineOfSightManipulators.js +1 -1
  710. package/views/3d/analysis/LineOfSight/LineOfSightRayIntersector.js +1 -1
  711. package/views/3d/analysis/LineOfSight/LineOfSightTool.js +1 -1
  712. package/views/3d/analysis/LineOfSight/LineOfSightVisualization.js +1 -1
  713. package/views/3d/analysis/Slice/ResizeManipulator.js +1 -1
  714. package/views/3d/analysis/Slice/RotateManipulator.js +1 -1
  715. package/views/3d/analysis/Slice/ShiftManipulator.js +1 -1
  716. package/views/3d/analysis/Slice/SliceController.js +1 -1
  717. package/views/3d/analysis/Slice/SliceTool.js +1 -1
  718. package/views/3d/analysis/Slice/sliceToolUtils.js +1 -1
  719. package/views/3d/analysis/Viewshed/ArrowManipulator.js +1 -1
  720. package/views/3d/analysis/Viewshed/FieldOfViewManipulation.js +1 -1
  721. package/views/3d/analysis/Viewshed/ScaleOrientManipulation.js +1 -1
  722. package/views/3d/analysis/Viewshed/ViewshedConfiguration.js +1 -1
  723. package/views/3d/analysis/Viewshed/ViewshedTool.js +1 -1
  724. package/views/3d/analysis/Viewshed/ViewshedVisualization.js +1 -1
  725. package/views/3d/analysis/ViewshedAnalysisView3D.js +1 -1
  726. package/views/3d/analysis/VolumeMeasurement/CutFillVolumeMeasurementController.js +1 -1
  727. package/views/3d/analysis/interfaces.js +0 -1
  728. package/views/3d/animation/pointToPoint/Camera.js +1 -1
  729. package/views/3d/camera/constraintUtils/ConstraintOptions.js +1 -1
  730. package/views/3d/camera/constraintUtils/ConstraintTypes.js +0 -1
  731. package/views/3d/camera/constraintUtils/InteractionType.js +0 -1
  732. package/views/3d/camera/constraintUtils/TiltMode.js +0 -1
  733. package/views/3d/camera/constraintUtils/altitude.js +1 -1
  734. package/views/3d/camera/constraintUtils/common.js +1 -1
  735. package/views/3d/camera/constraintUtils/distance.js +1 -1
  736. package/views/3d/camera/constraintUtils/surfaceCollision.js +1 -1
  737. package/views/3d/camera/constraintUtils/tilt.js +1 -1
  738. package/views/3d/camera/constraintUtils.js +1 -1
  739. package/views/3d/environment/ChapmanAtmosphere.js +1 -1
  740. package/views/3d/environment/ChapmanAtmosphereTechnique.js +1 -1
  741. package/views/3d/environment/Clouds.glsl.js +1 -1
  742. package/views/3d/environment/Clouds.js +1 -1
  743. package/views/3d/environment/CloudsComposition.glsl.js +1 -1
  744. package/views/3d/environment/CloudsComposition.js +1 -1
  745. package/views/3d/environment/CloudsCompositionTechnique.js +1 -1
  746. package/views/3d/environment/CloudsParameters.js +1 -1
  747. package/views/3d/environment/CloudsPresets.js +1 -1
  748. package/views/3d/environment/CloudsRenderer.js +1 -1
  749. package/views/3d/environment/CloudsTechnique.js +1 -1
  750. package/views/3d/environment/CloudsTechniqueConfiguration.js +1 -1
  751. package/views/3d/environment/EnvironmentManager.js +1 -1
  752. package/views/3d/environment/EnvironmentRenderer.js +1 -1
  753. package/views/3d/environment/Fog.js +1 -1
  754. package/views/3d/environment/FogTechnique.js +1 -1
  755. package/views/3d/environment/LocalAtmosphere.js +1 -1
  756. package/views/3d/environment/MarsAtmosphere.js +1 -1
  757. package/views/3d/environment/NoiseTextureAtlas.glsl.js +1 -1
  758. package/views/3d/environment/NoiseTextureAtlas.js +1 -1
  759. package/views/3d/environment/NoiseTextureAtlasConfiguration.js +1 -1
  760. package/views/3d/environment/NoiseTextureAtlasTechnique.js +1 -1
  761. package/views/3d/environment/Precipitation.glsl.js +1 -1
  762. package/views/3d/environment/Precipitation.js +1 -1
  763. package/views/3d/environment/PrecipitationTechnique.js +1 -1
  764. package/views/3d/environment/PrecipitationTechniqueConfiguration.js +1 -1
  765. package/views/3d/environment/SimpleAtmosphere.glsl.js +1 -1
  766. package/views/3d/environment/SimpleAtmosphereTechnique.js +1 -1
  767. package/views/3d/environment/SimpleAtmosphereTechniqueConfiguration.js +1 -1
  768. package/views/3d/glTF/DefaultLoadingContext.js +1 -1
  769. package/views/3d/glTF/LoaderResult.js +1 -1
  770. package/views/3d/glTF/internal/Resource.js +1 -1
  771. package/views/3d/glTF/internal/enums.js +0 -1
  772. package/views/3d/glTF/internal/fillDefaults.js +1 -1
  773. package/views/3d/glTF/internal/resourceUtils.js +1 -1
  774. package/views/3d/glTF/loader.js +1 -1
  775. package/views/3d/input/SceneInputManager.js +1 -1
  776. package/views/3d/input/handlers/DragRotate.js +1 -1
  777. package/views/3d/input/handlers/GamepadNavigation.js +1 -1
  778. package/views/3d/input/handlers/KeyboardNavigation.js +1 -1
  779. package/views/3d/input/handlers/MouseWheelZoom.js +1 -1
  780. package/views/3d/input/handlers/TwoFingerTilt.js +1 -1
  781. package/views/3d/interactive/Manipulator3D.js +1 -1
  782. package/views/3d/interactive/RenderObject.js +1 -1
  783. package/views/3d/interactive/SnappingVisualizer3D.js +1 -1
  784. package/views/3d/interactive/editingTools/GrabbingState.js +0 -1
  785. package/views/3d/interactive/editingTools/ManipulatedObject3DGraphic.js +1 -1
  786. package/views/3d/interactive/editingTools/ManipulatorState.js +1 -1
  787. package/views/3d/interactive/editingTools/ManipulatorType.js +0 -1
  788. package/views/3d/interactive/editingTools/dragEventPipeline3D.js +1 -1
  789. package/views/3d/interactive/editingTools/draw/DrawGraphicTool3D.js +1 -1
  790. package/views/3d/interactive/editingTools/isSupportedObjectUtils.js +1 -1
  791. package/views/3d/interactive/editingTools/lineObjectVisualElementUtils.js +1 -1
  792. package/views/3d/interactive/editingTools/manipulations/MoveManipulation.js +1 -1
  793. package/views/3d/interactive/editingTools/manipulations/MoveXYAxisManipulation.js +1 -1
  794. package/views/3d/interactive/editingTools/manipulations/MoveXYDiscManipulation.js +1 -1
  795. package/views/3d/interactive/editingTools/manipulations/MoveXYObjectManipulation.js +1 -1
  796. package/views/3d/interactive/editingTools/manipulations/MoveZManipulation.js +1 -1
  797. package/views/3d/interactive/editingTools/media/ControlPointOperations.js +1 -1
  798. package/views/3d/interactive/editingTools/meshFastUpdateUtils.js +1 -1
  799. package/views/3d/interactive/editingTools/move/MoveTool3D.js +1 -1
  800. package/views/3d/interactive/editingTools/move/isSupportedObject.js +1 -1
  801. package/views/3d/interactive/editingTools/originGeometryVisualElementUtils.js +1 -1
  802. package/views/3d/interactive/editingTools/reshape/ReshapeOperation.js +1 -1
  803. package/views/3d/interactive/editingTools/reshape/edgeOffsetUtils.js +1 -1
  804. package/views/3d/interactive/editingTools/reshape/isSupportedObject.js +1 -1
  805. package/views/3d/interactive/editingTools/reshape/reshapeTooltipUtils3D.js +1 -1
  806. package/views/3d/interactive/editingTools/settings.js +1 -1
  807. package/views/3d/interactive/editingTools/tooltipUtils3D.js +1 -1
  808. package/views/3d/interactive/editingTools/transform/ExtentTransformTool.js +1 -1
  809. package/views/3d/interactive/editingTools/transform/ScaleRotateTransform.js +1 -1
  810. package/views/3d/interactive/editingTools/transform/TransformTool3D.js +1 -1
  811. package/views/3d/interactive/editingTools/transform/extentTransform/ExtentMove.js +1 -1
  812. package/views/3d/interactive/editingTools/transform/extentTransform/ExtentRotate.js +1 -1
  813. package/views/3d/interactive/editingTools/transform/extentTransform/ExtentScale.js +1 -1
  814. package/views/3d/interactive/editingTools/transform/extentTransform/extentUtils.js +1 -1
  815. package/views/3d/interactive/editingTools/transform/isSupportedGraphic.js +1 -1
  816. package/views/3d/interactive/manipulatorUtils.js +1 -1
  817. package/views/3d/interactive/measurementTools/directLineMeasurement3D/DirectLineMeasurement3DTool.js +1 -1
  818. package/views/3d/interactive/measurementTools/directLineMeasurement3D/DirectLineMeasurement3DView.js +1 -1
  819. package/views/3d/interactive/visualElements/DrapedVisualElementResources.js +1 -1
  820. package/views/3d/interactive/visualElements/ExtendedLineVisualElement.js +1 -1
  821. package/views/3d/interactive/visualElements/LineVisualElement.js +1 -1
  822. package/views/3d/interactive/visualElements/MarkerVisualElement.js +1 -1
  823. package/views/3d/interactive/visualElements/MeasurementAreaVisualElement.js +1 -1
  824. package/views/3d/interactive/visualElements/MeasurementArrowVisualElement.js +1 -1
  825. package/views/3d/interactive/visualElements/Object3DVisualElement.js +1 -1
  826. package/views/3d/interactive/visualElements/OutlineVisualElement.js +1 -1
  827. package/views/3d/interactive/visualElements/ParallelLineVisualElement.js +1 -1
  828. package/views/3d/interactive/visualElements/PointVisualElement.js +1 -1
  829. package/views/3d/interactive/visualElements/RightAngleQuadVisualElement.js +1 -1
  830. package/views/3d/interactive/visualElements/SlicePlaneVisualElement.js +1 -1
  831. package/views/3d/interactive/visualElements/VerticesVisualElement.js +1 -1
  832. package/views/3d/interactive/visualElements/ViewshedShapeVisualElement.js +1 -1
  833. package/views/3d/interactive/visualElements/VisualElementResources.js +1 -1
  834. package/views/3d/layers/BuildingComponentSublayerView3D.js +1 -1
  835. package/views/3d/layers/DrapedSubView3D.js +1 -1
  836. package/views/3d/layers/ElevationLayerView3D.js +1 -1
  837. package/views/3d/layers/FeatureLayerViewBase3D.js +1 -1
  838. package/views/3d/layers/FeatureLikeLayerView3D.js +1 -1
  839. package/views/3d/layers/GraphicsLayerView3D.js +1 -1
  840. package/views/3d/layers/I3SMeshView3D.js +1 -1
  841. package/views/3d/layers/I3SMeshViewLabeler.js +1 -1
  842. package/views/3d/layers/I3SMeshWorkerHandle.js +1 -1
  843. package/views/3d/layers/II3SMeshView3D.js +0 -1
  844. package/views/3d/layers/IntegratedMesh3DTilesLayerView3D.js +1 -1
  845. package/views/3d/layers/IntegratedMeshLayerView3D.js +1 -1
  846. package/views/3d/layers/Lyr3DWorker.js +1 -1
  847. package/views/3d/layers/MediaLayerView3D.js +1 -1
  848. package/views/3d/layers/PointCloudLayerView3D.js +1 -1
  849. package/views/3d/layers/RouteLayerView3D.js +1 -1
  850. package/views/3d/layers/SceneLayerGraphicsView3D.js +1 -1
  851. package/views/3d/layers/SceneLayerView3D.js +1 -1
  852. package/views/3d/layers/SceneLayerWorker.js +1 -1
  853. package/views/3d/layers/StreamLayerView3D.js +1 -1
  854. package/views/3d/layers/VoxelLayerView3D.js +1 -1
  855. package/views/3d/layers/graphics/DeconflictAABR.js +1 -1
  856. package/views/3d/layers/graphics/Deconflictor.js +1 -1
  857. package/views/3d/layers/graphics/ElevationAligners.js +1 -1
  858. package/views/3d/layers/graphics/FeatureGraphics3DGraphicsPipeline.js +1 -1
  859. package/views/3d/layers/graphics/Graphics3DCore.js +1 -1
  860. package/views/3d/layers/graphics/Graphics3DDrapedGraphicLayer.js +1 -1
  861. package/views/3d/layers/graphics/Graphics3DElevationAlignment.js +1 -1
  862. package/views/3d/layers/graphics/Graphics3DExtrudeSymbolLayer.js +1 -1
  863. package/views/3d/layers/graphics/Graphics3DFeatureProcessor.js +1 -1
  864. package/views/3d/layers/graphics/Graphics3DGraphic.js +1 -1
  865. package/views/3d/layers/graphics/Graphics3DGraphicsPipeline.js +1 -1
  866. package/views/3d/layers/graphics/Graphics3DIconSymbolLayer.js +1 -1
  867. package/views/3d/layers/graphics/Graphics3DLineCalloutSymbolLayer.js +1 -1
  868. package/views/3d/layers/graphics/Graphics3DLineSymbolLayer.js +1 -1
  869. package/views/3d/layers/graphics/Graphics3DLodInstanceGraphicLayer.js +1 -1
  870. package/views/3d/layers/graphics/Graphics3DMeshFillSymbolLayer.js +1 -1
  871. package/views/3d/layers/graphics/Graphics3DObject3DGraphicLayer.js +1 -1
  872. package/views/3d/layers/graphics/Graphics3DObjectStateSet.js +1 -1
  873. package/views/3d/layers/graphics/Graphics3DObjectSymbolLayer.js +1 -1
  874. package/views/3d/layers/graphics/Graphics3DPathSymbolLayer.js +1 -1
  875. package/views/3d/layers/graphics/Graphics3DPolygonFillSymbolLayer.js +1 -1
  876. package/views/3d/layers/graphics/Graphics3DScaleVisibility.js +1 -1
  877. package/views/3d/layers/graphics/Graphics3DSymbol.js +1 -1
  878. package/views/3d/layers/graphics/Graphics3DSymbolCreationContext.js +1 -1
  879. package/views/3d/layers/graphics/Graphics3DSymbolLayer.js +1 -1
  880. package/views/3d/layers/graphics/Graphics3DTextSymbolLayer.js +1 -1
  881. package/views/3d/layers/graphics/Graphics3DWaterSymbolLayer.js +1 -1
  882. package/views/3d/layers/graphics/Graphics3DWebStyleSymbol.js +1 -1
  883. package/views/3d/layers/graphics/GraphicsDeconflictor.js +1 -1
  884. package/views/3d/layers/graphics/GraphicsProcessor.js +1 -1
  885. package/views/3d/layers/graphics/LabelDeconflictor.js +1 -1
  886. package/views/3d/layers/graphics/Labeler.js +1 -1
  887. package/views/3d/layers/graphics/Loadable.js +1 -1
  888. package/views/3d/layers/graphics/defaultSymbolComplexity.js +1 -1
  889. package/views/3d/layers/graphics/elevationAlignmentUtils.js +1 -1
  890. package/views/3d/layers/graphics/enums.js +0 -1
  891. package/views/3d/layers/graphics/interfaces.js +0 -1
  892. package/views/3d/layers/graphics/lineUtils.js +1 -1
  893. package/views/3d/layers/graphics/objectResourceUtils.js +1 -1
  894. package/views/3d/layers/graphics/pipeline/Feature3DPipeline.js +1 -1
  895. package/views/3d/layers/graphics/pipeline/rendering/DirectRenderer.js +1 -1
  896. package/views/3d/layers/graphics/pipeline/rendering/FeaturePipelineRenderManager.js +1 -1
  897. package/views/3d/layers/graphics/pipeline/rendering/LodRenderer.js +1 -1
  898. package/views/3d/layers/graphics/pipeline/rendering/RenderCommandContext.js +1 -1
  899. package/views/3d/layers/graphics/pipeline/symbolization/IconSymbolLayerRenderer.js +1 -1
  900. package/views/3d/layers/graphics/pipeline/symbolization/ObjectSymbolLayerRenderer.js +1 -1
  901. package/views/3d/layers/graphics/pipeline/symbolization/primitiveObjectUtils.js +1 -1
  902. package/views/3d/layers/graphics/placementUtils.js +1 -1
  903. package/views/3d/layers/graphics/polygonUtils.js +1 -1
  904. package/views/3d/layers/graphics/wosrLoader.js +1 -1
  905. package/views/3d/layers/i3s/BuildingFilterUtil.js +1 -1
  906. package/views/3d/layers/i3s/Highlights.js +1 -1
  907. package/views/3d/layers/i3s/I3SAsyncElevationUpdater.js +1 -1
  908. package/views/3d/layers/i3s/I3SBinaryReader.js +1 -1
  909. package/views/3d/layers/i3s/I3SClientMaterialUtil.js +1 -1
  910. package/views/3d/layers/i3s/I3SCrossfadeHelper.js +1 -1
  911. package/views/3d/layers/i3s/I3SIndex.js +1 -1
  912. package/views/3d/layers/i3s/I3SIntersectionHandler.js +1 -1
  913. package/views/3d/layers/i3s/I3SLodHandling.js +1 -1
  914. package/views/3d/layers/i3s/I3SMaterialUtil.js +1 -1
  915. package/views/3d/layers/i3s/I3SMeshViewFilter.js +1 -1
  916. package/views/3d/layers/i3s/I3SNode.js +1 -1
  917. package/views/3d/layers/i3s/I3SNodeLoader.js +1 -1
  918. package/views/3d/layers/i3s/I3SOverrides.js +1 -1
  919. package/views/3d/layers/i3s/I3SQueryFeatureStore.js +1 -1
  920. package/views/3d/layers/i3s/I3SUtil.js +1 -1
  921. package/views/3d/layers/i3s/I3SViewportQueries.js +1 -1
  922. package/views/3d/layers/i3s/IDBCache.js +1 -1
  923. package/views/3d/layers/i3s/Intersector.js +1 -1
  924. package/views/3d/layers/i3s/LayerElevationProvider.js +1 -1
  925. package/views/3d/layers/i3s/PointCloudRenderer.js +1 -1
  926. package/views/3d/layers/i3s/SymbologyInfo.js +1 -1
  927. package/views/3d/layers/i3s/enums.js +1 -1
  928. package/views/3d/layers/i3s/featureEditing.js +1 -1
  929. package/views/3d/layers/interfaces.js +0 -1
  930. package/views/3d/layers/support/FastSymbolUpdates.js +1 -1
  931. package/views/3d/layers/support/FeatureTile.js +1 -1
  932. package/views/3d/layers/support/FeatureTileFetcher3D.js +1 -1
  933. package/views/3d/layers/support/FeatureTileMeasurements3D.js +1 -1
  934. package/views/3d/layers/support/FeatureTileVisibility3D.js +1 -1
  935. package/views/3d/layers/support/HeatmapFeatureProcessor.js +1 -1
  936. package/views/3d/layers/support/I3SLayerView.js +0 -1
  937. package/views/3d/layers/support/StageLayerElevationProvider.js +1 -1
  938. package/views/3d/layers/support/Tiles3DIntersectionHandler.js +1 -1
  939. package/views/3d/layers/support/edgeUtils.js +1 -1
  940. package/views/3d/layers/support/fetchTile.js +1 -1
  941. package/views/3d/layers/support/lyr3dTypeConversions.js +1 -1
  942. package/views/3d/layers/support/overlayImageUtils.js +1 -1
  943. package/views/3d/layers/support/patternUtils.js +1 -1
  944. package/views/3d/layers/support/symbolColorUtils.js +1 -1
  945. package/views/3d/layers/support/uvUtils.js +1 -1
  946. package/views/3d/state/Constraints.js +1 -1
  947. package/views/3d/state/ConstraintsManager.js +1 -1
  948. package/views/3d/state/Frustum.js +1 -1
  949. package/views/3d/state/GoToOperation.js +1 -1
  950. package/views/3d/state/NearFarHeuristic.js +1 -1
  951. package/views/3d/state/SurfaceCollisionConstraint.js +1 -1
  952. package/views/3d/state/ViewState.js +1 -1
  953. package/views/3d/state/ViewStateManager.js +1 -1
  954. package/views/3d/state/controllers/AnimationController.js +1 -1
  955. package/views/3d/state/controllers/CameraController.js +1 -1
  956. package/views/3d/state/controllers/FovController.js +1 -1
  957. package/views/3d/state/controllers/GamepadKeyboardController.js +1 -1
  958. package/views/3d/state/controllers/InteractiveController.js +1 -1
  959. package/views/3d/state/controllers/PinchAndPanControllerGlobal.js +1 -1
  960. package/views/3d/state/controllers/PinchAndPanControllerLocal.js +1 -1
  961. package/views/3d/state/controllers/RotateController.js +1 -1
  962. package/views/3d/state/controllers/SurfaceCollisionCorrectionController.js +1 -1
  963. package/views/3d/state/controllers/ZoomControllerGlobal.js +1 -1
  964. package/views/3d/state/controllers/ZoomControllerLocal.js +1 -1
  965. package/views/3d/state/controllers/ZoomStepControllerGlobal.js +1 -1
  966. package/views/3d/state/controllers/ZoomStepControllerLocal.js +1 -1
  967. package/views/3d/state/controllers/momentum/MomentumController.js +1 -1
  968. package/views/3d/state/controllers/momentum/PanPlanarMomentumController.js +1 -1
  969. package/views/3d/state/controllers/momentum/PanSphericalMomentumController.js +1 -1
  970. package/views/3d/state/controllers/momentum/RotationMomentumController.js +1 -1
  971. package/views/3d/state/controllers/momentum/ZoomPlanarMomentumController.js +1 -1
  972. package/views/3d/state/controllers/momentum/ZoomSphericalMomentumController.js +1 -1
  973. package/views/3d/state/helpers/SceneIntersectionHelper.js +1 -1
  974. package/views/3d/state/utils/navigationUtils.js +1 -1
  975. package/views/3d/support/EventedSet.js +1 -1
  976. package/views/3d/support/FrustumExtentIntersection.js +1 -1
  977. package/views/3d/support/MemoryController.js +1 -1
  978. package/views/3d/support/RenderCoordsHelper.js +1 -1
  979. package/views/3d/support/ResourceController.js +1 -1
  980. package/views/3d/support/SceneViewPerformanceInfo.js +1 -1
  981. package/views/3d/support/SharedSymbolResources.js +1 -1
  982. package/views/3d/support/StreamDataLoader.js +1 -1
  983. package/views/3d/support/StreamTextureCollection.js +1 -1
  984. package/views/3d/support/ViewSlice.js +1 -1
  985. package/views/3d/support/cameraUtils.js +1 -1
  986. package/views/3d/support/cameraUtilsPlanar.js +1 -1
  987. package/views/3d/support/cameraUtilsSpherical.js +1 -1
  988. package/views/3d/support/downloadSlots.js +5 -0
  989. package/views/3d/support/engineContent/line.js +1 -1
  990. package/views/3d/support/engineContent/marker.js +1 -1
  991. package/views/3d/support/engineContent/sdfPrimitives.js +1 -1
  992. package/views/3d/support/enums.js +4 -0
  993. package/views/3d/support/flow/FlowSubViewTiles3D.js +1 -1
  994. package/views/3d/support/flow/StreamlinesResources3D.js +1 -1
  995. package/views/3d/support/flow/geometryUtils.js +1 -1
  996. package/views/3d/support/hitTest.js +1 -1
  997. package/views/3d/support/orientedBoundingBox.js +1 -1
  998. package/views/3d/support/pointsOfInterest/CameraOnSurface.js +1 -1
  999. package/views/3d/support/pointsOfInterest/Focus.js +1 -1
  1000. package/views/3d/support/pointsOfInterest/PointsOfInterest.js +1 -1
  1001. package/views/3d/support/popupHitTest.js +1 -1
  1002. package/views/3d/support/renderInfoUtils/line.js +1 -1
  1003. package/views/3d/support/renderInfoUtils/polygon.js +1 -1
  1004. package/views/3d/support/sunUtils.js +1 -1
  1005. package/views/3d/support/viewpointUtils.js +1 -1
  1006. package/views/3d/terrain/BlendLayersTechniqueConfiguration.js +1 -1
  1007. package/views/3d/terrain/BlendModeTechniqueConfiguration.js +1 -1
  1008. package/views/3d/terrain/ExtentHelper.js +1 -1
  1009. package/views/3d/terrain/Intersector.js +1 -1
  1010. package/views/3d/terrain/LayerClass.js +1 -1
  1011. package/views/3d/terrain/NeighborIndex.js +0 -1
  1012. package/views/3d/terrain/OverlayContent.js +0 -1
  1013. package/views/3d/terrain/OverlayManager.js +1 -1
  1014. package/views/3d/terrain/OverlayRenderTargets.js +1 -1
  1015. package/views/3d/terrain/OverlayRenderer.js +1 -1
  1016. package/views/3d/terrain/PatchGeometryFactory.js +1 -1
  1017. package/views/3d/terrain/PatchRenderData.js +1 -1
  1018. package/views/3d/terrain/PlanarPatch.js +1 -1
  1019. package/views/3d/terrain/RasterColorizerTechniqueConfiguration.js +1 -1
  1020. package/views/3d/terrain/RasterTile.js +1 -1
  1021. package/views/3d/terrain/RenderOrder.js +0 -1
  1022. package/views/3d/terrain/SphericalPatch.js +1 -1
  1023. package/views/3d/terrain/TerrainAttributes.js +1 -1
  1024. package/views/3d/terrain/TerrainRenderer.js +1 -1
  1025. package/views/3d/terrain/TerrainSurface.js +1 -1
  1026. package/views/3d/terrain/TextureFader.js +1 -1
  1027. package/views/3d/terrain/Tile.js +1 -1
  1028. package/views/3d/terrain/TileAgent.js +1 -1
  1029. package/views/3d/terrain/TileBlendTechniqueConfiguration.js +1 -1
  1030. package/views/3d/terrain/TileCompositor.js +1 -1
  1031. package/views/3d/terrain/TileFrustumVisibility.js +0 -1
  1032. package/views/3d/terrain/TilePerLayerInfo.js +1 -1
  1033. package/views/3d/terrain/TileRenderer.js +1 -1
  1034. package/views/3d/terrain/TileUpdate.js +0 -1
  1035. package/views/3d/terrain/TilingSchemeLogic.js +1 -1
  1036. package/views/3d/terrain/TransparencyMode.js +0 -1
  1037. package/views/3d/terrain/interfaces.js +0 -1
  1038. package/views/3d/terrain/terrainUtils.js +1 -1
  1039. package/views/3d/terrain/tileUtils.js +1 -1
  1040. package/views/3d/webgl/ManagedColorAttachment.js +1 -1
  1041. package/views/3d/webgl/ManagedDepthAttachment.js +1 -1
  1042. package/views/3d/webgl/ManagedDepthTexture.js +1 -1
  1043. package/views/3d/webgl/ManagedFBO.js +1 -1
  1044. package/views/3d/webgl/ManagedFBOResource.js +1 -1
  1045. package/views/3d/webgl/RenderCamera.js +1 -1
  1046. package/views/3d/webgl/RenderNode.js +1 -1
  1047. package/views/3d/webgl-engine/Stage.js +1 -1
  1048. package/views/3d/webgl-engine/collections/Component/ComponentObjectCollection.js +1 -1
  1049. package/views/3d/webgl-engine/collections/Component/IntersectionGeometry.js +1 -1
  1050. package/views/3d/webgl-engine/collections/Component/Material/ComponentMaterial.js +1 -1
  1051. package/views/3d/webgl-engine/collections/Component/Material/ComponentTechnique.js +1 -1
  1052. package/views/3d/webgl-engine/collections/Component/Material/ComponentTechniqueConfiguration.js +1 -1
  1053. package/views/3d/webgl-engine/collections/Component/Material/shader/ComponentData.glsl.js +10 -10
  1054. package/views/3d/webgl-engine/collections/Component/Material/shader/ComponentShader.glsl.js +1 -1
  1055. package/views/3d/webgl-engine/collections/Component/Material/shader/DecodeSymbolColor.glsl.js +6 -6
  1056. package/views/3d/webgl-engine/collections/Component/Material/shader/VertexDiscardMode.js +0 -1
  1057. package/views/3d/webgl-engine/collections/Component/SourceGeometry.js +1 -1
  1058. package/views/3d/webgl-engine/collections/Component/UniformComponentParameters.js +1 -1
  1059. package/views/3d/webgl-engine/core/FBOCache.js +1 -1
  1060. package/views/3d/webgl-engine/core/FBOCacheFormats.js +1 -1
  1061. package/views/3d/webgl-engine/core/renderPasses/AllRenderPasses.js +1 -1
  1062. package/views/3d/webgl-engine/core/renderPasses/RenderPass.js +1 -1
  1063. package/views/3d/webgl-engine/core/renderPasses/RenderPassIdentifier.js +0 -1
  1064. package/views/3d/webgl-engine/core/renderPasses/RenderPassManager.js +1 -1
  1065. package/views/3d/webgl-engine/core/shaderLibrary/ForwardLinearDepth.glsl.js +3 -3
  1066. package/views/3d/webgl-engine/core/shaderLibrary/ScreenSpacePass.glsl.js +3 -3
  1067. package/views/3d/webgl-engine/core/shaderLibrary/ShaderOutput.js +1 -1
  1068. package/views/3d/webgl-engine/core/shaderLibrary/ShaderOutputConfiguration.js +1 -1
  1069. package/views/3d/webgl-engine/core/shaderLibrary/attributes/InstanceColor.glsl.js +4 -4
  1070. package/views/3d/webgl-engine/core/shaderLibrary/attributes/InstancedDoublePrecision.glsl.js +10 -10
  1071. package/views/3d/webgl-engine/core/shaderLibrary/attributes/NormalAttribute.glsl.js +4 -4
  1072. package/views/3d/webgl-engine/core/shaderLibrary/attributes/ObjectAndLayerIdColor.glsl.js +4 -4
  1073. package/views/3d/webgl-engine/core/shaderLibrary/attributes/PathVertexPosition.glsl.js +6 -6
  1074. package/views/3d/webgl-engine/core/shaderLibrary/attributes/RibbonVertexPosition.glsl.js +8 -8
  1075. package/views/3d/webgl-engine/core/shaderLibrary/attributes/SymbolColor.glsl.js +5 -5
  1076. package/views/3d/webgl-engine/core/shaderLibrary/attributes/TextureCoordinateAttribute.glsl.js +2 -2
  1077. package/views/3d/webgl-engine/core/shaderLibrary/attributes/VertexColor.glsl.js +3 -3
  1078. package/views/3d/webgl-engine/core/shaderLibrary/attributes/VertexNormal.glsl.js +2 -2
  1079. package/views/3d/webgl-engine/core/shaderLibrary/attributes/VertexPosition.glsl.js +5 -5
  1080. package/views/3d/webgl-engine/core/shaderLibrary/attributes/VertexTextureCoordinates.glsl.js +3 -3
  1081. package/views/3d/webgl-engine/core/shaderLibrary/default/DefaultMaterialAuxiliaryPasses.glsl.js +15 -15
  1082. package/views/3d/webgl-engine/core/shaderLibrary/hud/HUD.glsl.js +14 -14
  1083. package/views/3d/webgl-engine/core/shaderLibrary/hud/HUDRenderStyle.js +0 -1
  1084. package/views/3d/webgl-engine/core/shaderLibrary/hud/HUDVisibility.glsl.js +1 -1
  1085. package/views/3d/webgl-engine/core/shaderLibrary/output/BlendOptions.js +1 -1
  1086. package/views/3d/webgl-engine/core/shaderLibrary/output/Emissions.glsl.js +4 -4
  1087. package/views/3d/webgl-engine/core/shaderLibrary/output/OutputDepth.glsl.js +2 -2
  1088. package/views/3d/webgl-engine/core/shaderLibrary/output/OutputHighlight.glsl.js +6 -6
  1089. package/views/3d/webgl-engine/core/shaderLibrary/output/OutputHighlightOverlay.js +2 -2
  1090. package/views/3d/webgl-engine/core/shaderLibrary/raster/RasterColorizer.glsl.js +1 -1
  1091. package/views/3d/webgl-engine/core/shaderLibrary/shading/ComputeFragmentNormals.glsl.js +6 -6
  1092. package/views/3d/webgl-engine/core/shaderLibrary/shading/ComputeNormalTexture.glsl.js +7 -7
  1093. package/views/3d/webgl-engine/core/shaderLibrary/shading/EvaluateAmbientLighting.glsl.js +5 -5
  1094. package/views/3d/webgl-engine/core/shaderLibrary/shading/EvaluateSceneLighting.glsl.js +15 -15
  1095. package/views/3d/webgl-engine/core/shaderLibrary/shading/MarkerSizing.glsl.js +3 -3
  1096. package/views/3d/webgl-engine/core/shaderLibrary/shading/Normals.glsl.js +5 -5
  1097. package/views/3d/webgl-engine/core/shaderLibrary/shading/PhysicallyBasedRendering.glsl.js +11 -11
  1098. package/views/3d/webgl-engine/core/shaderLibrary/shading/PhysicallyBasedRenderingParameters.glsl.js +10 -10
  1099. package/views/3d/webgl-engine/core/shaderLibrary/shading/ReadBaseColorTexture.glsl.js +2 -2
  1100. package/views/3d/webgl-engine/core/shaderLibrary/shading/TextureTransformUV.glsl.js +6 -6
  1101. package/views/3d/webgl-engine/core/shaderLibrary/shading/VisualVariables.glsl.js +8 -8
  1102. package/views/3d/webgl-engine/core/shaderLibrary/terrain/BaseOpacityMode.js +0 -1
  1103. package/views/3d/webgl-engine/core/shaderLibrary/terrain/BlendLayersOutput.js +0 -1
  1104. package/views/3d/webgl-engine/core/shaderLibrary/terrain/Overlay.glsl.js +7 -7
  1105. package/views/3d/webgl-engine/core/shaderLibrary/terrain/PremultipliedAlphaSource.js +0 -1
  1106. package/views/3d/webgl-engine/core/shaderLibrary/terrain/TerrainTexture.glsl.js +8 -8
  1107. package/views/3d/webgl-engine/core/shaderLibrary/terrain/TileBackground.glsl.js +6 -6
  1108. package/views/3d/webgl-engine/core/shaderLibrary/terrain/TileBlendInput.js +0 -1
  1109. package/views/3d/webgl-engine/core/shaderLibrary/terrain/TileComposite.glsl.js +2 -2
  1110. package/views/3d/webgl-engine/core/shaderLibrary/util/BlendLayers.glsl.js +1 -1
  1111. package/views/3d/webgl-engine/core/shaderLibrary/util/BlendModes.glsl.js +23 -23
  1112. package/views/3d/webgl-engine/core/shaderLibrary/util/CloudsParallaxShading.glsl.js +10 -10
  1113. package/views/3d/webgl-engine/core/shaderLibrary/util/DiscardOrAdjustAlpha.glsl.js +3 -3
  1114. package/views/3d/webgl-engine/core/shaderLibrary/util/EllipsoidMode.js +1 -1
  1115. package/views/3d/webgl-engine/core/shaderLibrary/util/MixExternalColor.glsl.js +6 -6
  1116. package/views/3d/webgl-engine/core/shaderModules/BooleanBindUniform.js +1 -1
  1117. package/views/3d/webgl-engine/core/shaderModules/BooleanPassUniform.js +1 -1
  1118. package/views/3d/webgl-engine/core/shaderModules/Float2BindUniform.js +1 -1
  1119. package/views/3d/webgl-engine/core/shaderModules/Float2DrawUniform.js +1 -1
  1120. package/views/3d/webgl-engine/core/shaderModules/Float2PassUniform.js +1 -1
  1121. package/views/3d/webgl-engine/core/shaderModules/Float3BindUniform.js +1 -1
  1122. package/views/3d/webgl-engine/core/shaderModules/Float3DrawUniform.js +1 -1
  1123. package/views/3d/webgl-engine/core/shaderModules/Float3PassUniform.js +1 -1
  1124. package/views/3d/webgl-engine/core/shaderModules/Float4BindUniform.js +1 -1
  1125. package/views/3d/webgl-engine/core/shaderModules/Float4DrawUniform.js +1 -1
  1126. package/views/3d/webgl-engine/core/shaderModules/Float4PassUniform.js +1 -1
  1127. package/views/3d/webgl-engine/core/shaderModules/Float4sPassUniform.js +1 -1
  1128. package/views/3d/webgl-engine/core/shaderModules/FloatBindUniform.js +1 -1
  1129. package/views/3d/webgl-engine/core/shaderModules/FloatDrawUniform.js +1 -1
  1130. package/views/3d/webgl-engine/core/shaderModules/FloatPassUniform.js +1 -1
  1131. package/views/3d/webgl-engine/core/shaderModules/FloatsPassUniform.js +1 -1
  1132. package/views/3d/webgl-engine/core/shaderModules/Integer2BindUniform.js +1 -1
  1133. package/views/3d/webgl-engine/core/shaderModules/Integer2PassUniform.js +1 -1
  1134. package/views/3d/webgl-engine/core/shaderModules/IntegerBindUniform.js +1 -1
  1135. package/views/3d/webgl-engine/core/shaderModules/IntegerDrawUniform.js +1 -1
  1136. package/views/3d/webgl-engine/core/shaderModules/IntegerPassUniform.js +1 -1
  1137. package/views/3d/webgl-engine/core/shaderModules/Matrix3DrawUniform.js +1 -1
  1138. package/views/3d/webgl-engine/core/shaderModules/Matrix3PassUniform.js +1 -1
  1139. package/views/3d/webgl-engine/core/shaderModules/Matrix4BindUniform.js +1 -1
  1140. package/views/3d/webgl-engine/core/shaderModules/Matrix4DrawUniform.js +1 -1
  1141. package/views/3d/webgl-engine/core/shaderModules/Matrix4PassUniform.js +1 -1
  1142. package/views/3d/webgl-engine/core/shaderModules/Matrix4sDrawUniform.js +1 -1
  1143. package/views/3d/webgl-engine/core/shaderModules/Matrix4sPassUniform.js +1 -1
  1144. package/views/3d/webgl-engine/core/shaderModules/Texture2DArrayBindUniform.js +1 -1
  1145. package/views/3d/webgl-engine/core/shaderModules/Texture2DBindUniform.js +1 -1
  1146. package/views/3d/webgl-engine/core/shaderModules/Texture2DDrawUniform.js +1 -1
  1147. package/views/3d/webgl-engine/core/shaderModules/Texture2DPassUniform.js +1 -1
  1148. package/views/3d/webgl-engine/core/shaderModules/Texture2DShadowBindUniform.js +1 -1
  1149. package/views/3d/webgl-engine/core/shaderModules/Texture2DUintBindUniform.js +1 -1
  1150. package/views/3d/webgl-engine/core/shaderModules/Texture2DUintPassUniform.js +1 -1
  1151. package/views/3d/webgl-engine/core/shaderTechnique/ShaderTechnique.js +1 -1
  1152. package/views/3d/webgl-engine/core/shaderTechnique/ShaderTechniqueConstructionContext.js +1 -1
  1153. package/views/3d/webgl-engine/core/shaderTechnique/ShaderTechniqueRepository.js +1 -1
  1154. package/views/3d/webgl-engine/effects/OpaqueEnvironment.js +1 -1
  1155. package/views/3d/webgl-engine/effects/RenderPlugin.js +1 -1
  1156. package/views/3d/webgl-engine/effects/RenderPluginManager.js +1 -1
  1157. package/views/3d/webgl-engine/effects/ScreenSpaceGeometry.js +1 -1
  1158. package/views/3d/webgl-engine/effects/TransparentEnvironment.js +1 -1
  1159. package/views/3d/webgl-engine/effects/blit/Blit.js +1 -1
  1160. package/views/3d/webgl-engine/effects/bloom/BloomBlur.glsl.js +1 -1
  1161. package/views/3d/webgl-engine/effects/bloom/BloomBlurTechnique.js +1 -1
  1162. package/views/3d/webgl-engine/effects/bloom/BloomBlurTechniqueConfiguration.js +1 -1
  1163. package/views/3d/webgl-engine/effects/bloom/BloomRenderNode.js +1 -1
  1164. package/views/3d/webgl-engine/effects/debug/RenderNodeVisualizerNode.js +4 -4
  1165. package/views/3d/webgl-engine/effects/focusArea/FocusAreaColorNode.js +1 -1
  1166. package/views/3d/webgl-engine/effects/focusArea/FocusAreaEffect.js +0 -1
  1167. package/views/3d/webgl-engine/effects/focusArea/FocusAreaMaskNode.js +1 -1
  1168. package/views/3d/webgl-engine/effects/focusArea/FocusAreaMaskTechnique.js +1 -1
  1169. package/views/3d/webgl-engine/effects/focusArea/FocusAreaOutlineItem.js +1 -1
  1170. package/views/3d/webgl-engine/effects/geometry/ObjectAndLayerIDRenderNode.js +1 -1
  1171. package/views/3d/webgl-engine/effects/geometry/RenderOccludedRenderNode.js +1 -1
  1172. package/views/3d/webgl-engine/effects/haze/Haze.js +1 -1
  1173. package/views/3d/webgl-engine/effects/haze/HazeCompositingTechnique.js +1 -1
  1174. package/views/3d/webgl-engine/effects/haze/HazeTechnique.js +1 -1
  1175. package/views/3d/webgl-engine/effects/highlight/Highlight.js +1 -1
  1176. package/views/3d/webgl-engine/effects/highlight/ShadowHighlight.js +1 -1
  1177. package/views/3d/webgl-engine/effects/laserlines/LaserLineRenderer.js +1 -1
  1178. package/views/3d/webgl-engine/effects/laserlines/LaserlinePathData.js +1 -1
  1179. package/views/3d/webgl-engine/effects/laserlines/LaserlinePathTechnique.js +1 -1
  1180. package/views/3d/webgl-engine/effects/magnifier/Magnifier.js +1 -1
  1181. package/views/3d/webgl-engine/effects/smaa/SMAA.js +1 -1
  1182. package/views/3d/webgl-engine/effects/ssao/SSAO.js +1 -1
  1183. package/views/3d/webgl-engine/effects/stars/Stars.glsl.js +1 -1
  1184. package/views/3d/webgl-engine/effects/stars/Stars.js +1 -1
  1185. package/views/3d/webgl-engine/effects/stars/StarsTechnique.js +1 -1
  1186. package/views/3d/webgl-engine/lib/BasisUtil.js +1 -1
  1187. package/views/3d/webgl-engine/lib/BindParameters.js +1 -1
  1188. package/views/3d/webgl-engine/lib/CompositingHelper.js +1 -1
  1189. package/views/3d/webgl-engine/lib/DDSUtil.js +1 -1
  1190. package/views/3d/webgl-engine/lib/DefaultVertexAttributeLocations.js +1 -1
  1191. package/views/3d/webgl-engine/lib/DefaultVertexBufferLayouts.js +1 -1
  1192. package/views/3d/webgl-engine/lib/DrapedHeatmapRenderer.js +1 -1
  1193. package/views/3d/webgl-engine/lib/GLMaterial.js +1 -1
  1194. package/views/3d/webgl-engine/lib/GLMaterials.js +1 -1
  1195. package/views/3d/webgl-engine/lib/GLTextureMaterial.js +1 -1
  1196. package/views/3d/webgl-engine/lib/GPUPointOcclusionQuery.js +1 -1
  1197. package/views/3d/webgl-engine/lib/Geometry.js +1 -1
  1198. package/views/3d/webgl-engine/lib/GeometryUtil.js +1 -1
  1199. package/views/3d/webgl-engine/lib/GridLocalOriginFactory.js +1 -1
  1200. package/views/3d/webgl-engine/lib/HUDIntersectorResult.js +1 -1
  1201. package/views/3d/webgl-engine/lib/IntersectableGeometry.js +0 -1
  1202. package/views/3d/webgl-engine/lib/Intersector.js +1 -1
  1203. package/views/3d/webgl-engine/lib/IntersectorInterfaces.js +1 -1
  1204. package/views/3d/webgl-engine/lib/IntersectorResult.js +1 -1
  1205. package/views/3d/webgl-engine/lib/IntersectorType.js +0 -1
  1206. package/views/3d/webgl-engine/lib/MainFramebuffer.js +1 -1
  1207. package/views/3d/webgl-engine/lib/Material.js +1 -1
  1208. package/views/3d/webgl-engine/lib/ModelDirtySet.js +1 -1
  1209. package/views/3d/webgl-engine/lib/ModelDirtyTypes.js +0 -1
  1210. package/views/3d/webgl-engine/lib/OITPass.js +0 -1
  1211. package/views/3d/webgl-engine/lib/Object3D.js +1 -1
  1212. package/views/3d/webgl-engine/lib/Object3DStateID.js +1 -1
  1213. package/views/3d/webgl-engine/lib/Object3DStateSet.js +1 -1
  1214. package/views/3d/webgl-engine/lib/ObjectIntersectorResult.js +1 -1
  1215. package/views/3d/webgl-engine/lib/Octree.js +1 -1
  1216. package/views/3d/webgl-engine/lib/OrderIndependentTransparency.js +1 -1
  1217. package/views/3d/webgl-engine/lib/Path.js +1 -1
  1218. package/views/3d/webgl-engine/lib/PathGeometry.js +1 -1
  1219. package/views/3d/webgl-engine/lib/PathGeometryData.js +1 -1
  1220. package/views/3d/webgl-engine/lib/PathVertex.js +1 -1
  1221. package/views/3d/webgl-engine/lib/RayIntersections.js +1 -1
  1222. package/views/3d/webgl-engine/lib/RenderContext.js +1 -1
  1223. package/views/3d/webgl-engine/lib/RenderFeature.js +1 -1
  1224. package/views/3d/webgl-engine/lib/RenderSlot.js +0 -1
  1225. package/views/3d/webgl-engine/lib/Renderer.js +1 -1
  1226. package/views/3d/webgl-engine/lib/RendererBase.js +1 -1
  1227. package/views/3d/webgl-engine/lib/RenderingContext.js +1 -1
  1228. package/views/3d/webgl-engine/lib/ShadowAccumulator.js +1 -1
  1229. package/views/3d/webgl-engine/lib/ShadowMap.js +1 -1
  1230. package/views/3d/webgl-engine/lib/SliceHelper.js +1 -1
  1231. package/views/3d/webgl-engine/lib/SortedRenderGeometryRenderer.js +1 -1
  1232. package/views/3d/webgl-engine/lib/StencilUtils.js +1 -1
  1233. package/views/3d/webgl-engine/lib/TextRenderer.js +1 -1
  1234. package/views/3d/webgl-engine/lib/TextTextureAtlas.js +1 -1
  1235. package/views/3d/webgl-engine/lib/TextTextureFactory.js +1 -1
  1236. package/views/3d/webgl-engine/lib/Texture.js +1 -1
  1237. package/views/3d/webgl-engine/lib/TextureBackedBuffer/TextureBackedBuffer.js +1 -1
  1238. package/views/3d/webgl-engine/lib/TextureRepository.js +1 -1
  1239. package/views/3d/webgl-engine/lib/Update.js +0 -1
  1240. package/views/3d/webgl-engine/lib/UpdatePolicy.js +0 -1
  1241. package/views/3d/webgl-engine/lib/VertexAttribute.js +1 -1
  1242. package/views/3d/webgl-engine/lib/Viewshed.js +1 -1
  1243. package/views/3d/webgl-engine/lib/ViewshedShadowMap.js +1 -1
  1244. package/views/3d/webgl-engine/lib/WebGLLayer.js +1 -1
  1245. package/views/3d/webgl-engine/lib/basicInterfaces.js +0 -1
  1246. package/views/3d/webgl-engine/lib/bufferVectorMath.js +5 -0
  1247. package/views/3d/webgl-engine/lib/depthRangeUtils.js +1 -1
  1248. package/views/3d/webgl-engine/lib/edgeRendering/EdgeRenderer.js +1 -1
  1249. package/views/3d/webgl-engine/lib/edgeRendering/EdgeShaderTechnique.js +1 -1
  1250. package/views/3d/webgl-engine/lib/edgeRendering/EdgeShaderTechniqueConfiguration.js +1 -1
  1251. package/views/3d/webgl-engine/lib/edgeRendering/EdgeView.js +1 -1
  1252. package/views/3d/webgl-engine/lib/edgeRendering/bufferLayouts.js +1 -1
  1253. package/views/3d/webgl-engine/lib/edgeRendering/edgeProcessing.js +1 -1
  1254. package/views/3d/webgl-engine/lib/edgeRendering/interfaces.js +0 -1
  1255. package/views/3d/webgl-engine/lib/edgeRendering/strokes.js +1 -1
  1256. package/views/3d/webgl-engine/lib/edgeRendering/util.js +1 -1
  1257. package/views/3d/webgl-engine/lib/glUtil3D.js +1 -1
  1258. package/views/3d/webgl-engine/lib/lodRendering/BackedBufferObject.js +1 -1
  1259. package/views/3d/webgl-engine/lib/lodRendering/InstanceData.js +1 -1
  1260. package/views/3d/webgl-engine/lib/lodRendering/Intersector.js +1 -1
  1261. package/views/3d/webgl-engine/lib/lodRendering/LodComponentData.js +1 -1
  1262. package/views/3d/webgl-engine/lib/lodRendering/LodRenderer.js +1 -1
  1263. package/views/3d/webgl-engine/lib/lodRendering/LodResources.js +1 -1
  1264. package/views/3d/webgl-engine/lib/lodRendering/RenderInstanceData.js +1 -1
  1265. package/views/3d/webgl-engine/lib/rendererUtils.js +1 -1
  1266. package/views/3d/webgl-engine/lib/screenSizePerspectiveUtils.js +1 -1
  1267. package/views/3d/webgl-engine/lib/verticalOffsetUtils.js +1 -1
  1268. package/views/3d/webgl-engine/materials/CheckerBoardMaterial.js +1 -1
  1269. package/views/3d/webgl-engine/materials/ColorMaterial.js +1 -1
  1270. package/views/3d/webgl-engine/materials/DefaultBufferWriter.js +1 -1
  1271. package/views/3d/webgl-engine/materials/DefaultLayouts.js +1 -1
  1272. package/views/3d/webgl-engine/materials/DefaultMaterial.js +1 -1
  1273. package/views/3d/webgl-engine/materials/DefaultTechniqueConfiguration.js +1 -1
  1274. package/views/3d/webgl-engine/materials/HUDMaterial.js +1 -1
  1275. package/views/3d/webgl-engine/materials/HeatmapDensityMaterial.js +1 -1
  1276. package/views/3d/webgl-engine/materials/ImageMaterial.js +1 -1
  1277. package/views/3d/webgl-engine/materials/LineCalloutMaterial.js +1 -1
  1278. package/views/3d/webgl-engine/materials/LineMarkerMaterial.js +1 -1
  1279. package/views/3d/webgl-engine/materials/MeasurementArrowMaterial.js +1 -1
  1280. package/views/3d/webgl-engine/materials/NativeLineMaterial.js +1 -1
  1281. package/views/3d/webgl-engine/materials/PathMaterial.js +1 -1
  1282. package/views/3d/webgl-engine/materials/PathTechnique.js +1 -1
  1283. package/views/3d/webgl-engine/materials/PathTechniqueConfiguration.js +1 -1
  1284. package/views/3d/webgl-engine/materials/PatternMaterial.js +1 -1
  1285. package/views/3d/webgl-engine/materials/PatternStyle.js +0 -1
  1286. package/views/3d/webgl-engine/materials/RibbonLineMaterial.js +1 -1
  1287. package/views/3d/webgl-engine/materials/ShadedColorMaterial.js +1 -1
  1288. package/views/3d/webgl-engine/materials/SlicePlaneMaterial.js +1 -1
  1289. package/views/3d/webgl-engine/materials/VisualVariablePassParameters.js +1 -1
  1290. package/views/3d/webgl-engine/materials/WaterMaterial.js +1 -1
  1291. package/views/3d/webgl-engine/materials/WaterTechnique.js +1 -1
  1292. package/views/3d/webgl-engine/materials/WaterTechniqueConfiguration.js +1 -1
  1293. package/views/3d/webgl-engine/materials/internal/WaterTextureRepository.js +1 -1
  1294. package/views/3d/webgl-engine/materials/internal/bufferWriterUtils.js +1 -1
  1295. package/views/3d/webgl-engine/materials/renderers/MergedRenderer.js +1 -1
  1296. package/views/3d/webgl-engine/materials/renderers/VaoCache.js +1 -1
  1297. package/views/3d/webgl-engine/materials/stippleTextureRepository.js +1 -1
  1298. package/views/3d/webgl-engine/parts/RenderView.js +1 -1
  1299. package/views/3d/webgl-engine/parts/ScreenshotManager.js +1 -1
  1300. package/views/3d/webgl-engine/shaders/AnimatedLine.glsl.js +4 -4
  1301. package/views/3d/webgl-engine/shaders/AtmosphereCompositingTechnique.js +1 -1
  1302. package/views/3d/webgl-engine/shaders/CheckerBoard.glsl.js +1 -1
  1303. package/views/3d/webgl-engine/shaders/CheckerBoardTechnique.js +1 -1
  1304. package/views/3d/webgl-engine/shaders/CheckerBoardTechniqueConfiguration.js +1 -1
  1305. package/views/3d/webgl-engine/shaders/ColorMaterial.glsl.js +1 -1
  1306. package/views/3d/webgl-engine/shaders/ColorMaterialTechnique.js +1 -1
  1307. package/views/3d/webgl-engine/shaders/ColorMaterialTechniqueConfiguration.js +1 -1
  1308. package/views/3d/webgl-engine/shaders/Compositing.glsl.js +1 -1
  1309. package/views/3d/webgl-engine/shaders/CompositingTechnique.js +1 -1
  1310. package/views/3d/webgl-engine/shaders/CompositingTechniqueConfiguration.js +1 -1
  1311. package/views/3d/webgl-engine/shaders/DefaultMaterial.glsl.js +1 -1
  1312. package/views/3d/webgl-engine/shaders/DefaultMaterialTechnique.js +1 -1
  1313. package/views/3d/webgl-engine/shaders/DefaultMaterialTechniqueConfiguration.js +1 -1
  1314. package/views/3d/webgl-engine/shaders/FocusAreaColor.glsl.js +1 -1
  1315. package/views/3d/webgl-engine/shaders/FocusAreaMask.glsl.js +1 -1
  1316. package/views/3d/webgl-engine/shaders/HUDMaterial.glsl.js +1 -1
  1317. package/views/3d/webgl-engine/shaders/HUDMaterialTechnique.js +1 -1
  1318. package/views/3d/webgl-engine/shaders/HUDMaterialTechniqueConfiguration.js +1 -1
  1319. package/views/3d/webgl-engine/shaders/HeatmapDensity.glsl.js +1 -1
  1320. package/views/3d/webgl-engine/shaders/ImageMaterial.glsl.js +1 -1
  1321. package/views/3d/webgl-engine/shaders/ImageMaterialTechnique.js +1 -1
  1322. package/views/3d/webgl-engine/shaders/ImageMaterialTechniqueConfiguration.js +1 -1
  1323. package/views/3d/webgl-engine/shaders/LaserlinePath.glsl.js +1 -1
  1324. package/views/3d/webgl-engine/shaders/LineCallout.glsl.js +1 -1
  1325. package/views/3d/webgl-engine/shaders/LineCalloutTechnique.js +1 -1
  1326. package/views/3d/webgl-engine/shaders/LineMarker.glsl.js +1 -1
  1327. package/views/3d/webgl-engine/shaders/LineMarkerTechnique.js +1 -1
  1328. package/views/3d/webgl-engine/shaders/LineMarkerTechniqueConfiguration.js +1 -1
  1329. package/views/3d/webgl-engine/shaders/Magnifier.glsl.js +1 -1
  1330. package/views/3d/webgl-engine/shaders/MeasurementArrow.glsl.js +1 -1
  1331. package/views/3d/webgl-engine/shaders/MeasurementArrowTechnique.js +1 -1
  1332. package/views/3d/webgl-engine/shaders/NativeLine.glsl.js +1 -1
  1333. package/views/3d/webgl-engine/shaders/OutputColorHighlightOID.glsl.js +9 -9
  1334. package/views/3d/webgl-engine/shaders/OverlayCompositing.glsl.js +1 -1
  1335. package/views/3d/webgl-engine/shaders/Pattern.glsl.js +1 -1
  1336. package/views/3d/webgl-engine/shaders/PatternTechnique.js +1 -1
  1337. package/views/3d/webgl-engine/shaders/PatternTechniqueConfiguration.js +1 -1
  1338. package/views/3d/webgl-engine/shaders/PointRenderer.glsl.js +1 -1
  1339. package/views/3d/webgl-engine/shaders/PointRendererTechnique.js +1 -1
  1340. package/views/3d/webgl-engine/shaders/RealisticTree.glsl.js +1 -1
  1341. package/views/3d/webgl-engine/shaders/RibbonLine.glsl.js +1 -1
  1342. package/views/3d/webgl-engine/shaders/RibbonLineTechnique.js +1 -1
  1343. package/views/3d/webgl-engine/shaders/RibbonLineTechniqueConfiguration.js +1 -1
  1344. package/views/3d/webgl-engine/shaders/ScreenSpacePassAtmosphere.glsl.js +4 -4
  1345. package/views/3d/webgl-engine/shaders/ShadedColorMaterial.glsl.js +1 -1
  1346. package/views/3d/webgl-engine/shaders/ShadedColorMaterialTechnique.js +1 -1
  1347. package/views/3d/webgl-engine/shaders/ShadedColorMaterialTechniqueConfiguration.js +1 -1
  1348. package/views/3d/webgl-engine/shaders/ShadowCastAccumulate.glsl.js +1 -1
  1349. package/views/3d/webgl-engine/shaders/ShadowCastAccumulateTechnique.js +1 -1
  1350. package/views/3d/webgl-engine/shaders/ShadowCastAccumulateTechniqueConfiguration.js +1 -1
  1351. package/views/3d/webgl-engine/shaders/ShadowCastClear.glsl.js +1 -1
  1352. package/views/3d/webgl-engine/shaders/ShadowCastClearTechnique.js +1 -1
  1353. package/views/3d/webgl-engine/shaders/ShadowCastVisualize.glsl.js +1 -1
  1354. package/views/3d/webgl-engine/shaders/ShadowCastVisualizeTechniqueConfiguration.js +1 -1
  1355. package/views/3d/webgl-engine/shaders/ShadowHighlight.glsl.js +1 -1
  1356. package/views/3d/webgl-engine/shaders/SlicePlaneMaterial.glsl.js +1 -1
  1357. package/views/3d/webgl-engine/shaders/SlicePlaneMaterialTechnique.js +1 -1
  1358. package/views/3d/webgl-engine/shaders/Terrain.glsl.js +1 -1
  1359. package/views/3d/webgl-engine/shaders/TerrainTechnique.js +1 -1
  1360. package/views/3d/webgl-engine/shaders/TerrainTechniqueConfiguration.js +1 -1
  1361. package/views/3d/webgl-engine/shaders/WaterSurface.glsl.js +1 -1
  1362. package/views/3d/webgl-engine/shaders/sources/edgeRenderer/EdgeShader.glsl.js +1 -1
  1363. package/views/3d/webgl-engine/shaders/sources/edgeRenderer/EdgeUtil.glsl.js +17 -17
  1364. package/views/3d/webgl-engine/shaders/sources/edgeRenderer/LineAmplitude.glsl.js +4 -4
  1365. package/views/3d/webgl-engine/shaders/sources/edgeRenderer/LineOffset.glsl.js +8 -8
  1366. package/views/3d/webgl-engine/shaders/sources/edgeRenderer/UnpackAttributes.glsl.js +7 -7
  1367. package/views/SceneView.js +1 -1
  1368. package/views/ToolViewManager.js +1 -1
  1369. package/views/VideoView.js +1 -1
  1370. package/views/ViewingMode.js +1 -1
  1371. package/views/draw/DrawAction.js +1 -1
  1372. package/views/draw/DrawOperation.js +1 -1
  1373. package/views/draw/SegmentDrawAction.js +1 -1
  1374. package/views/draw/support/Reshape.js +1 -1
  1375. package/views/draw/support/surfaceCoordinateSystems.js +1 -1
  1376. package/views/input/IViewEvents.js +0 -1
  1377. package/views/input/InputManager.js +1 -1
  1378. package/views/input/ViewEvents.js +1 -1
  1379. package/views/input/recognizers/Drag.js +1 -1
  1380. package/views/interactive/InteractiveToolBase.js +1 -1
  1381. package/views/interactive/ManipulatorCollection.js +1 -1
  1382. package/views/interactive/SegmentLabels.js +1 -1
  1383. package/views/interactive/ToolIntersector.js +1 -1
  1384. package/views/interactive/coordinateHelper.js +1 -1
  1385. package/views/interactive/editGeometry/EditGeometryOperations.js +1 -1
  1386. package/views/interactive/editGeometry/interfaces.js +0 -1
  1387. package/views/interactive/editGeometry/operations/OffsetEdgeVertex.js +1 -1
  1388. package/views/interactive/editGeometry/operations/RotateVertex.js +1 -1
  1389. package/views/interactive/editGeometry/operations/ScaleVertex.js +1 -1
  1390. package/views/interactive/editGeometry/operations/UpdateVertices.js +1 -1
  1391. package/views/interactive/editGeometry/support/editPlaneUtils.js +1 -1
  1392. package/views/interactive/editGeometry/unnormalizationHelper.js +1 -1
  1393. package/views/interactive/interactiveToolUtils.js +1 -1
  1394. package/views/interactive/interfaces.js +0 -1
  1395. package/views/interactive/sketch/SketchValueOptions.js +1 -1
  1396. package/views/interactive/sketch/constraintUtils.js +1 -1
  1397. package/views/interactive/sketch/constraints.js +1 -1
  1398. package/views/interactive/sketch/normalizedPoint.js +1 -1
  1399. package/views/interactive/snapping/FeatureSnappingEngine.js +1 -1
  1400. package/views/interactive/snapping/LineSnapper.js +1 -1
  1401. package/views/interactive/snapping/RightAngleSnapper.js +1 -1
  1402. package/views/interactive/snapping/SelfSnappingEngine.js +1 -1
  1403. package/views/interactive/snapping/SnappingDomain.js +0 -1
  1404. package/views/interactive/snapping/SnappingManager.js +1 -1
  1405. package/views/interactive/snapping/candidates/DrapedEdgeSnappingCandidate.js +1 -1
  1406. package/views/interactive/snapping/candidates/EdgeSnappingCandidate.js +1 -1
  1407. package/views/interactive/snapping/candidates/FeatureSnappingCandidate.js +1 -1
  1408. package/views/interactive/snapping/candidates/IntersectionSnappingCandidate.js +1 -1
  1409. package/views/interactive/snapping/candidates/LineSnappingCandidate.js +1 -1
  1410. package/views/interactive/snapping/candidates/ParallelLineSnappingCandidate.js +1 -1
  1411. package/views/interactive/snapping/candidates/RightAngleSnappingCandidate.js +1 -1
  1412. package/views/interactive/snapping/candidates/RightAngleTriangleSnappingCandidate.js +1 -1
  1413. package/views/interactive/snapping/featureSources/featureServiceSource/FeatureServiceTileStore.js +1 -1
  1414. package/views/interactive/snapping/featureSources/featureServiceSource/FeatureServiceTiledFetcher.js +1 -1
  1415. package/views/interactive/snapping/featureSources/featureServiceSource/PendingFeatureTile.js +1 -1
  1416. package/views/interactive/snapping/featureSources/featureServiceSource/tileUtils.js +1 -1
  1417. package/views/interactive/snapping/hints/IntersectionSnappingHint.js +1 -1
  1418. package/views/interactive/snapping/hints/LineSnappingHint.js +1 -1
  1419. package/views/interactive/snapping/hints/ParallelSnappingHint.js +1 -1
  1420. package/views/interactive/snapping/hints/RightAngleSnappingHint.js +1 -1
  1421. package/views/interactive/snapping/snappingUtils.js +1 -1
  1422. package/views/interactive/tooltip/fields/fields.js +1 -1
  1423. package/views/layers/LayerView.js +1 -1
  1424. package/views/layers/support/editableLayerViews.js +1 -1
  1425. package/views/support/DefaultsFromMap.js +1 -1
  1426. package/views/support/LayerLayerViewInfo.js +1 -1
  1427. package/views/support/LayerViewManager.js +1 -1
  1428. package/views/support/PixelHighlightOptions.js +5 -0
  1429. package/views/support/RenderState.js +0 -1
  1430. package/views/support/Scheduler.js +1 -1
  1431. package/views/support/TextureCompressionWorker.js +1 -1
  1432. package/views/support/TextureCompressionWorkerHandle.js +1 -1
  1433. package/views/support/angularMeasurementUtils.js +1 -1
  1434. package/views/support/euclideanLengthMeasurementUtils.js +1 -1
  1435. package/views/support/geometry2dUtils.js +1 -1
  1436. package/views/support/geometry3dUtils.js +1 -1
  1437. package/views/support/imageReprojection.js +1 -1
  1438. package/views/support/spatialReferenceSupport.js +1 -1
  1439. package/views/ui/UI.js +1 -1
  1440. package/views/webgl/AppleAmdDriverHelper.js +1 -1
  1441. package/views/webgl/BindType.js +0 -1
  1442. package/views/webgl/BufferObject.js +1 -1
  1443. package/views/webgl/ContextState.js +1 -1
  1444. package/views/webgl/FBOAttachmentType.js +0 -1
  1445. package/views/webgl/FramebufferObject.js +1 -1
  1446. package/views/webgl/Program.js +1 -1
  1447. package/views/webgl/Renderbuffer.js +1 -1
  1448. package/views/webgl/RenderingContext.js +1 -1
  1449. package/views/webgl/ShaderBuilder.js +1 -1
  1450. package/views/webgl/ShaderTranspiler.js +1 -1
  1451. package/views/webgl/Texture.js +1 -1
  1452. package/views/webgl/TextureDescriptor.js +1 -1
  1453. package/views/webgl/Uniform.js +1 -1
  1454. package/views/webgl/UniformBufferObject.js +1 -1
  1455. package/views/webgl/Util.js +1 -1
  1456. package/views/webgl/ValidatedTextureDescriptor.js +1 -1
  1457. package/views/webgl/checkWebGLError.js +1 -1
  1458. package/views/webgl/enums.js +1 -1
  1459. package/views/webgl/heatmapTextureUtils.js +1 -1
  1460. package/views/webgl/rasterUtils.js +1 -1
  1461. package/views/webgl/renderState.js +1 -1
  1462. package/views/webgl/storageLayouts.js +1 -1
  1463. package/views/webgl/testAppleAmdDrawArrays.js +1 -1
  1464. package/views/webgl/testFloatBufferBlend.js +1 -1
  1465. package/views/webgl/testSVGPremultipliedAlpha.js +1 -1
  1466. package/views/webgl/textureUtils.js +1 -1
  1467. package/webdoc/interfaces.js +0 -1
  1468. package/widgets/AreaMeasurement2D/AreaMeasurement2DTool.js +1 -1
  1469. package/widgets/BasemapGallery/support/basemapCompatibilityUtils.js +1 -1
  1470. package/widgets/BatchAttributeForm/BatchAttributeFormViewModel.js +1 -1
  1471. package/widgets/BatchAttributeForm/batchAttributeFormUtils.js +1 -1
  1472. package/widgets/BatchAttributeForm/inputs/FieldInput.js +1 -1
  1473. package/widgets/BatchAttributeForm/inputs/InputBase.js +1 -1
  1474. package/widgets/BatchAttributeForm/inputs/support/inputUtils.js +1 -1
  1475. package/widgets/BatchAttributeForm.js +1 -1
  1476. package/widgets/Daylight/DaylightViewModel.js +1 -1
  1477. package/widgets/Daylight/support/daylightUtils.js +1 -1
  1478. package/widgets/Directions/DirectionsViewModel.js +1 -1
  1479. package/widgets/DistanceMeasurement2D/DistanceMeasurement2DTool.js +1 -1
  1480. package/widgets/Editor/workflowUtils.js +1 -1
  1481. package/widgets/ElevationProfile/ElevationProfileInteraction.js +1 -1
  1482. package/widgets/ElevationProfile/ElevationProfileLineView.js +1 -1
  1483. package/widgets/ElevationProfile/ElevationProfileTool.js +1 -1
  1484. package/widgets/ElevationProfile/ElevationProfileViewModel.js +1 -1
  1485. package/widgets/ElevationProfile/support/ElevationProfileView2D.js +1 -1
  1486. package/widgets/ElevationProfile/support/ElevationProfileView3D.js +1 -1
  1487. package/widgets/ElevationProfile/support/InputRepresentation3D.js +1 -1
  1488. package/widgets/ElevationProfile/support/ProfileGenerationError.js +1 -1
  1489. package/widgets/ElevationProfile/support/constants.js +1 -1
  1490. package/widgets/ElevationProfile/support/geometryUtils.js +1 -1
  1491. package/widgets/ElevationProfile/support/profileUtils.js +1 -1
  1492. package/widgets/ElevationProfile.js +1 -1
  1493. package/widgets/Feature/FeatureUtilityNetworkAssociations.js +1 -1
  1494. package/widgets/FeatureForm/FieldInput.js +1 -1
  1495. package/widgets/FeatureForm/featureFormUtils.js +1 -1
  1496. package/widgets/Legend/support/ActiveLayerInfo.js +1 -1
  1497. package/widgets/OrientedImageryViewer/OrientedImageryViewerViewModel.js +1 -1
  1498. package/widgets/OrientedImageryViewer/components/ImageLocationWidget.js +1 -1
  1499. package/widgets/OrientedImageryViewer.js +1 -1
  1500. package/widgets/Print/PrintViewModel.js +1 -1
  1501. package/widgets/Print/utils.js +1 -1
  1502. package/widgets/Print.js +1 -1
  1503. package/widgets/ScaleRangeSlider/scalePreviewUtils.js +1 -1
  1504. package/widgets/ShadowCast/DurationMode.js +0 -1
  1505. package/widgets/ShadowCast/DurationOptions.js +1 -1
  1506. package/widgets/ShadowCast/ShadowCastState.js +0 -1
  1507. package/widgets/ShadowCast/ShadowCastViewModel.js +1 -1
  1508. package/widgets/ShadowCast/ShadowTooltipViewModel.js +1 -1
  1509. package/widgets/ShadowCast/ShadowVisualizationType.js +1 -1
  1510. package/widgets/ShadowCast/components/DurationConfigurator.js +1 -1
  1511. package/widgets/ShadowCast.js +1 -1
  1512. package/widgets/Sketch/SketchViewModel.js +1 -1
  1513. package/widgets/Sketch/support/sketchUtils.js +1 -1
  1514. package/widgets/Sketch.js +1 -1
  1515. package/widgets/UtilityNetworkTrace/UtilityNetworkTraceFeature.js +1 -1
  1516. package/widgets/Weather/WeatherViewModel.js +1 -1
  1517. package/widgets/Weather/enums.js +0 -1
  1518. package/widgets/Weather.js +1 -1
  1519. package/widgets/Widget.js +1 -1
  1520. package/widgets/support/AnalysisViewModel.js +1 -1
  1521. package/widgets/support/forms/formUtils.js +1 -1
  1522. package/widgets/support/uriUtils.js +1 -1
  1523. package/assets/esri/core/workers/chunks/026fbeb0ff5b9e6c74df.js +0 -1
  1524. package/assets/esri/core/workers/chunks/03bef3f4b6b09b1e864b.js +0 -1
  1525. package/assets/esri/core/workers/chunks/07613c89255bdab6b7c6.js +0 -1
  1526. package/assets/esri/core/workers/chunks/09618761df5c4fdd52a0.js +0 -1
  1527. package/assets/esri/core/workers/chunks/0ae00339991f5387203e.js +0 -1
  1528. package/assets/esri/core/workers/chunks/0b4b294f3ce74fde5620.js +0 -1
  1529. package/assets/esri/core/workers/chunks/0becc660e8ee6c5d02b5.js +0 -1
  1530. package/assets/esri/core/workers/chunks/0e96a3b7228f1ff8e6c5.js +0 -1
  1531. package/assets/esri/core/workers/chunks/12723e79b996969e304e.js +0 -1
  1532. package/assets/esri/core/workers/chunks/12a16f0fd77371d61c2a.js +0 -1
  1533. package/assets/esri/core/workers/chunks/15064c3b21b325d5c2f6.js +0 -1
  1534. package/assets/esri/core/workers/chunks/1597aca21334cab3b802.js +0 -1
  1535. package/assets/esri/core/workers/chunks/196564ad230bef6b59cf.js +0 -1
  1536. package/assets/esri/core/workers/chunks/19f8d551cbebc11db1eb.js +0 -1
  1537. package/assets/esri/core/workers/chunks/1ceee047e3fa617b0600.js +0 -1
  1538. package/assets/esri/core/workers/chunks/1cf0fae3f2e848a2a738.js +0 -1
  1539. package/assets/esri/core/workers/chunks/1f296f85becf1ca6714d.js +0 -1
  1540. package/assets/esri/core/workers/chunks/1f8d7bd44d53c30df383.js +0 -1
  1541. package/assets/esri/core/workers/chunks/1fabb5ec59da698c1618.js +0 -1
  1542. package/assets/esri/core/workers/chunks/20bcd2e6cf02e057ad7d.js +0 -1
  1543. package/assets/esri/core/workers/chunks/219b2911668db120452b.js +0 -1
  1544. package/assets/esri/core/workers/chunks/24fe862b607ec927e07f.js +0 -1
  1545. package/assets/esri/core/workers/chunks/29ae5723fa35aa73ff9b.js +0 -1
  1546. package/assets/esri/core/workers/chunks/2a6df3f0a166eb886554.js +0 -1
  1547. package/assets/esri/core/workers/chunks/2b4b073254fe8b6a081c.js +0 -1
  1548. package/assets/esri/core/workers/chunks/30293b88501b5d6162fc.js +0 -1
  1549. package/assets/esri/core/workers/chunks/31533f5e8b76b307f61c.js +0 -1
  1550. package/assets/esri/core/workers/chunks/347117e61e1c6edd074f.js +0 -1
  1551. package/assets/esri/core/workers/chunks/3616eb2607843524483f.js +0 -1
  1552. package/assets/esri/core/workers/chunks/3629d5e1a8e9bece0ed8.js +0 -1
  1553. package/assets/esri/core/workers/chunks/3793f282ddaccd3465f2.js +0 -1
  1554. package/assets/esri/core/workers/chunks/394477e88be0c6790f02.js +0 -1
  1555. package/assets/esri/core/workers/chunks/3be9ec0503a669bcfce6.js +0 -1
  1556. package/assets/esri/core/workers/chunks/3c9cf06ac6aa1db6c4f6.js +0 -1
  1557. package/assets/esri/core/workers/chunks/3d020f2e454c1e4babee.js +0 -1
  1558. package/assets/esri/core/workers/chunks/3ed7d19bbbad6c4a1cba.js +0 -1
  1559. package/assets/esri/core/workers/chunks/42cddc8f8c8d73e22ee2.js +0 -1
  1560. package/assets/esri/core/workers/chunks/437a4100a837ee16df7c.js +0 -1
  1561. package/assets/esri/core/workers/chunks/4405c765786c895365fb.js +0 -42
  1562. package/assets/esri/core/workers/chunks/453e536f566d80a9863b.js +0 -1
  1563. package/assets/esri/core/workers/chunks/4b68b6985430c42316b7.js +0 -1
  1564. package/assets/esri/core/workers/chunks/4ce671bc4d36387b55fa.js +0 -1
  1565. package/assets/esri/core/workers/chunks/4cea5170939c8d363ef7.js +0 -1
  1566. package/assets/esri/core/workers/chunks/4f14e78d0560050c1a81.js +0 -1
  1567. package/assets/esri/core/workers/chunks/4f691962b96e78cbe1a9.js +0 -1
  1568. package/assets/esri/core/workers/chunks/51cfa2f70ec222e1582b.js +0 -1
  1569. package/assets/esri/core/workers/chunks/5253cca467fe9bc0a210.js +0 -1
  1570. package/assets/esri/core/workers/chunks/55c903d93b15f4e723d4.js +0 -1
  1571. package/assets/esri/core/workers/chunks/585031826294d5130813.js +0 -1
  1572. package/assets/esri/core/workers/chunks/5b276962c46c57155166.js +0 -1
  1573. package/assets/esri/core/workers/chunks/5bfcb3d87380e7f85b08.js +0 -1
  1574. package/assets/esri/core/workers/chunks/60aeb7a5ccd8bc71be02.js +0 -1
  1575. package/assets/esri/core/workers/chunks/63966066a963e9a1fb14.js +0 -1
  1576. package/assets/esri/core/workers/chunks/63f50ff2ae94f684d56b.js +0 -1
  1577. package/assets/esri/core/workers/chunks/66757fc16316a5c50e1e.js +0 -1
  1578. package/assets/esri/core/workers/chunks/6a14af239b400b0976c5.js +0 -1
  1579. package/assets/esri/core/workers/chunks/6a1cf6b0ffdf6080b5c4.js +0 -1
  1580. package/assets/esri/core/workers/chunks/6b4e66eb0cb37f293cf8.js +0 -1
  1581. package/assets/esri/core/workers/chunks/6c33ecffbc783cb8f944.js +0 -1
  1582. package/assets/esri/core/workers/chunks/6ce4327f63e6eb92bba8.js +0 -1
  1583. package/assets/esri/core/workers/chunks/6deaa08e3a61a455e564.js +0 -1
  1584. package/assets/esri/core/workers/chunks/6efc3d120c9c2c09cb06.js +0 -1
  1585. package/assets/esri/core/workers/chunks/6f9f32b7de59b4d9cd97.js +0 -2
  1586. package/assets/esri/core/workers/chunks/7338ce95bceb2c7fab87.js +0 -1
  1587. package/assets/esri/core/workers/chunks/771012f129890f9a089c.js +0 -1
  1588. package/assets/esri/core/workers/chunks/780ff9314f26ae62f75f.js +0 -1
  1589. package/assets/esri/core/workers/chunks/7a08d6d8e5e430658f3a.js +0 -1
  1590. package/assets/esri/core/workers/chunks/7a5a1d01a89383faf4fd.js +0 -1
  1591. package/assets/esri/core/workers/chunks/7d0c4e1518a6a63a3f87.js +0 -1
  1592. package/assets/esri/core/workers/chunks/8000e2e80fff7752e761.js +0 -1
  1593. package/assets/esri/core/workers/chunks/875c6293767602763bc0.js +0 -1
  1594. package/assets/esri/core/workers/chunks/8894483b91bcda845b6f.js +0 -1
  1595. package/assets/esri/core/workers/chunks/92737419b66894799a34.js +0 -1
  1596. package/assets/esri/core/workers/chunks/9511e55e4fabb3235eac.js +0 -1
  1597. package/assets/esri/core/workers/chunks/9a78cb291c966f8ddda6.js +0 -1009
  1598. package/assets/esri/core/workers/chunks/9f8341caab3b1d02f387.js +0 -1
  1599. package/assets/esri/core/workers/chunks/a08d018d8c137fc4ca17.js +0 -1
  1600. package/assets/esri/core/workers/chunks/a0abe3e54c8a20cafeb3.js +0 -1
  1601. package/assets/esri/core/workers/chunks/a22e5b2874647fe0d31a.js +0 -1
  1602. package/assets/esri/core/workers/chunks/a55338add265d330124b.js +0 -1
  1603. package/assets/esri/core/workers/chunks/ac93b3f1ff15a95d926c.js +0 -1
  1604. package/assets/esri/core/workers/chunks/afe4fd3b1b3521712edd.js +0 -1
  1605. package/assets/esri/core/workers/chunks/b37f3c416cefc1a6ea2c.js +0 -1
  1606. package/assets/esri/core/workers/chunks/b4512d62b6cb26fc6b25.js +0 -1
  1607. package/assets/esri/core/workers/chunks/b6b8272a74a5c24a6b86.js +0 -1
  1608. package/assets/esri/core/workers/chunks/b9f66d735a7e63417b3d.js +0 -1
  1609. package/assets/esri/core/workers/chunks/bbc2a4976d044b990193.js +0 -1
  1610. package/assets/esri/core/workers/chunks/bbf2c31d217de1b8ba6e.js +0 -1
  1611. package/assets/esri/core/workers/chunks/befba7ceeb26a38732c1.js +0 -1
  1612. package/assets/esri/core/workers/chunks/c0517d02c99128fe603f.js +0 -1
  1613. package/assets/esri/core/workers/chunks/c19421707257fc93acb9.js +0 -1
  1614. package/assets/esri/core/workers/chunks/c1fb5290e0e259b74389.js +0 -1
  1615. package/assets/esri/core/workers/chunks/c25e28aab5bee30722cb.js +0 -1
  1616. package/assets/esri/core/workers/chunks/c2faddd504c2355ac46e.js +0 -1
  1617. package/assets/esri/core/workers/chunks/c361bf4d41a1843d4640.js +0 -1
  1618. package/assets/esri/core/workers/chunks/c51099eab5a99c88e5de.js +0 -1
  1619. package/assets/esri/core/workers/chunks/c56b05a8be498b6f3ee7.js +0 -1
  1620. package/assets/esri/core/workers/chunks/c82e78590c2fabc67609.js +0 -1
  1621. package/assets/esri/core/workers/chunks/c9e580867f7ac17be329.js +0 -1
  1622. package/assets/esri/core/workers/chunks/cafcb46d723d38b377a9.js +0 -1
  1623. package/assets/esri/core/workers/chunks/cb81d448ed6bad205346.js +0 -1
  1624. package/assets/esri/core/workers/chunks/ce291074b0cbebcaf27b.js +0 -1
  1625. package/assets/esri/core/workers/chunks/ce48207997af9605b0f7.js +0 -1
  1626. package/assets/esri/core/workers/chunks/d08a523b548e892e1222.js +0 -1
  1627. package/assets/esri/core/workers/chunks/d29ae64703a947bfb83b.js +0 -1
  1628. package/assets/esri/core/workers/chunks/d6241c7736d4a86f201f.js +0 -1
  1629. package/assets/esri/core/workers/chunks/d683a97620cd606fa019.js +0 -1
  1630. package/assets/esri/core/workers/chunks/d81260303a11d3fbe940.js +0 -1
  1631. package/assets/esri/core/workers/chunks/d9a23fb0c6c936d5e8ec.js +0 -1
  1632. package/assets/esri/core/workers/chunks/d9f311ac82ae8dabff8f.js +0 -1
  1633. package/assets/esri/core/workers/chunks/de1457b07f4e263f1524.js +0 -1
  1634. package/assets/esri/core/workers/chunks/e06096e532a8dbb31491.js +0 -1
  1635. package/assets/esri/core/workers/chunks/e547318638c8f496c1a0.js +0 -1
  1636. package/assets/esri/core/workers/chunks/e6a97f9b6f7be8076f85.js +0 -1
  1637. package/assets/esri/core/workers/chunks/e8e993fb8697b8f3e0c7.js +0 -346
  1638. package/assets/esri/core/workers/chunks/ef7fdd5306588c4b4ad2.js +0 -1
  1639. package/assets/esri/core/workers/chunks/f291ccf9da6aa7d7ae23.js +0 -1
  1640. package/assets/esri/core/workers/chunks/f328c933bc0367938d70.js +0 -1
  1641. package/assets/esri/core/workers/chunks/f61a8cc7e2b198e521ba.js +0 -1
  1642. package/assets/esri/core/workers/chunks/f9442a281cb91c64c7cd.js +0 -1
  1643. package/assets/esri/core/workers/chunks/fad577be78560ed6f4f8.js +0 -1
  1644. package/assets/esri/core/workers/chunks/fb785bc38323cce6e549.js +0 -1
  1645. package/assets/esri/core/workers/chunks/fbf3240b36718fa5dc76.js +0 -1
  1646. package/assets/esri/core/workers/chunks/fdd48334ff0ec2fa484b.js +0 -1
  1647. package/assets/esri/core/workers/chunks/fe73e74e3e4278aedcc3.js +0 -1
  1648. package/core/HeapSort.js +0 -5
  1649. package/geometry/support/meshUtils/exporters/gltf/index.js +0 -5
  1650. package/views/3d/support/index.js +0 -5
  1651. package/views/3d/webgl-engine/lib/BufferVectorMath.js +0 -5
  1652. /package/assets/esri/core/workers/chunks/{6f9f32b7de59b4d9cd97.js.LICENSE.txt → ecd673eccf89643df07a.js.LICENSE.txt} +0 -0
  1653. /package/assets/esri/core/workers/chunks/{d1aeb9fe9eb573beefcc.js.LICENSE.txt → edc4f230a5bdf928f9fd.js.LICENSE.txt} +0 -0
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.34/esri/copyright.txt for details.
4
4
  */
5
- import{_ as e}from"../../../chunks/tslib.es6.js";import t from"../../../Color.js";import has from"../../../core/has.js";import{disposeMaybe as i}from"../../../core/maybe.js";import{MemCachePool as r}from"../../../core/MemCachePool.js";import s from"../../../core/ObjectPool.js";import{watch as n,sync as a}from"../../../core/reactiveUtils.js";import{property as o}from"../../../core/accessorSupport/decorators/property.js";import"../../../core/Logger.js";import"../../../core/RandomLCG.js";import{subclass as l}from"../../../core/accessorSupport/decorators/subclass.js";import{d as c,i as d,e as h}from"../../../chunks/vec32.js";import{ZEROS as u,create as g,fromValues as p}from"../../../core/libs/gl-matrix-2/factories/vec3f64.js";import{fromValues as _,ZEROS as f}from"../../../core/libs/gl-matrix-2/factories/vec4f64.js";import{create as m,set as b}from"../../../geometry/support/aaBoundingBox.js";import{BufferViewVec3f as y}from"../../../geometry/support/buffer/BufferView.js";import{ViewingMode as T}from"../../ViewingMode.js";import{TextureUpdate as O}from"./interfaces.js";import{LayerClass as R}from"./LayerClass.js";import{OverlayContent as x}from"./OverlayContent.js";import{overlayRenderOccludedFlag as v}from"./OverlayRenderer.js";import{PatchRenderData as w}from"./PatchRenderData.js";import{RenderOrder as D}from"./RenderOrder.js";import{TerrainAttributesCache as P}from"./TerrainAttributesCache.js";import{enableTerrainInternalChecks as S}from"./terrainUtils.js";import{TileRenderer as C}from"./TileRenderer.js";import{TileUpdate as E}from"./TileUpdate.js";import{IteratorPreorder as j,sortTiles as A,compareTiles as N}from"./tileUtils.js";import{TransparencyMode as B}from"./TransparencyMode.js";import{componentMinimalSizeForIntersectionData as I,ComponentIntersectionData as U}from"../webgl-engine/collections/Component/ComponentIntersectionData.js";import{ShaderOutput as G}from"../webgl-engine/core/shaderLibrary/ShaderOutput.js";import{TileBlendInput as F}from"../webgl-engine/core/shaderLibrary/terrain/TileBlendInput.js";import{SyncRenderPlugin as q,ConsumesDepth as M,ConsumesNone as L}from"../webgl-engine/effects/RenderPlugin.js";import{Vertices as k}from"../webgl-engine/lib/Attribute.js";import{RenderRequestType as z}from"../webgl-engine/lib/basicInterfaces.js";import{StoreResults as V}from"../webgl-engine/lib/IntersectorInterfaces.js";import{IntersectorResult as H}from"../webgl-engine/lib/IntersectorResult.js";import{IntersectorType as Y}from"../webgl-engine/lib/IntersectorType.js";import{RenderOccludedFlag as Q}from"../webgl-engine/lib/Material.js";import{intersectAabbInvDirBefore as W,MeshIntersectionOptions as X,intersectTriangles as K}from"../webgl-engine/lib/RayIntersections.js";import{RenderSlot as Z}from"../webgl-engine/lib/RenderSlot.js";import{getSettings as J}from"../webgl-engine/lib/screenSizePerspectiveUtils.js";import{VertexAttribute as $}from"../webgl-engine/lib/VertexAttribute.js";import{terrainId as ee,getVerticalOffsetTerrain as te}from"../webgl-engine/lib/verticalOffsetUtils.js";import{DrawParameters as ie}from"../webgl-engine/materials/DrawParameters.js";import{T as re}from"../../../chunks/Terrain.glsl.js";import{TerrainTechnique as se}from"../webgl-engine/shaders/TerrainTechnique.js";import{TerrainTechniqueConfiguration as ne}from"../webgl-engine/shaders/TerrainTechniqueConfiguration.js";import{PrimitiveType as ae}from"../../webgl/enums.js";const oe=7,le=10,ce=m();let de=class extends q{get _isGlobal(){return this._stage.viewingMode===T.Global}get _techniques(){return this._context.techniques}get _rctx(){return this._context.renderContext.rctx}constructor(e,t,i,n,a,o){super({}),this._overlayRenderer=e,this._stage=t,this._allTiles=i,this._ellipsoidRadius=n,this._compressionTracker=a,this.type=Y.TERRAIN,this.isGround=!0,this._passParameters=new re,this._drawParameters=new ie,this._renderDataPool=new s(w),this._visiblePatchesByOrigin=new Map,this._allPatchesByOrigin=new Map,this._patchesByOriginDirty=!0,this._patchSortingDirty=!0,this._tileIterator=new j,this._castShadows=!1,this._inViewshed=!1,this._tileRenderer=null,this._stencilEnabledLayerExtents=new Array,this._numTilesRendered=0,this._numTilesCulled=0,this._numOriginsRendered=0,this.renderOccludedFlags=Q.Occlude,this.produces=new Map([[Z.OPAQUE_TERRAIN,()=>this._produces()&&this.transparency===B.Opaque],[Z.TRANSPARENT_TERRAIN,()=>this._produces()&&(this.transparency===B.Transparent||this.transparency===B.InvisibleWithDraped)],[Z.OCCLUDED_GROUND,()=>this._produces()&&this.renderOccludedFlags===v]]),this._tileSize=256,this._configuration=new ne(t.viewingMode===T.Global),this._tileTextureCache=new r((e,t)=>o.newCache(e,t),"TileTexture"),this.tileGeometryCache=new P(o)}normalizeCtorArgs(){return{}}initialize(){this._stage.addRenderPlugin(this),this.addHandles(n(()=>this._overlayRenderer.rendersOccludedDraped,e=>{this.renderOccludedFlags=e?v:Q.Occlude,this.setNeedsRender()},a))}destroy(){this._stage.removeRenderPlugin(this),this._tileTextureCache.destroy(),this.tileGeometryCache.destroy(),this._allTiles.prune(),this._tileRenderer=null}_produces(){return this.visible&&!!this._rootTiles&&!this.renderingDisabled}consumes(){return this._overlayRenderer.hasWater?M:L}set renderingDisabled(e){this._set("renderingDisabled",!!e),this.setDirty()}set visible(e){this._set("visible",!!e),this.setDirty()}updateHeading(e){this._tileRenderer?.updateHeading(e)}set transparency(e){this._configuration.transparencyMode!==e&&(this._configuration.transparencyMode=e,this.setNeedsRender())}get transparency(){return this._configuration.transparencyMode}get renderPatchBorders(){return this._configuration.tileBorders}set renderPatchBorders(e){this._configuration.tileBorders!==e&&(this._configuration.tileBorders=e,this.setNeedsRender(),this.notifyChange("renderPatchBorders"))}get visualizeNormals(){return this._configuration.visualizeNormals}set visualizeNormals(e){this._configuration.visualizeNormals!==e&&(this._configuration.visualizeNormals=e,this.setNeedsRender(),this.notifyChange("visualizeNormals"))}get cullBackFaces(){return this._configuration.backfaceCullingEnabled}set cullBackFaces(e){this._configuration.backfaceCullingEnabled!==e&&(this._configuration.backfaceCullingEnabled=e,this.notifyChange("cullBackFaces"),this.setNeedsRender())}set renderOrder(e){this._set("renderOrder",e),this._setSortingDirty()}get layerViewUid(){return ee}get slicePlaneEnabled(){return this._configuration.hasSlicePlane}set slicePlaneEnabled(e){this._configuration.hasSlicePlane!==e&&(this._configuration.hasSlicePlane=e,this.setNeedsRender())}set textureFadingEnabled(e){this._configuration.textureFadingEnabled!==e&&(this._configuration.textureFadingEnabled=e,this.setNeedsRender())}set pbrMode(e){this._configuration.pbrMode!==e&&(this._configuration.pbrMode=e,this.setNeedsRender())}setDebugScreenSizePerspective(e){this._configuration.screenSizePerspective!==e&&(this._configuration.screenSizePerspective=e,this.setNeedsRender())}setRootTiles(e){this._rootTiles=e,this.setDirty()}setStencilEnabledLayerExtents(e){this._stencilEnabledLayerExtents=e,this._setSortingDirty()}set tileSize(e){this._tileSize=e,null!=this._tileRenderer&&(this._tileRenderer.tileSize=e),this.setDirty()}get tileSize(){return this._tileSize}_ensureRenderData(e){e.renderData||(e.renderData=this._renderDataPool.acquire(),e.renderData.init(e,this._getLocalOriginOfTile(e)))}loadTile(e){this._ensureRenderData(e),this.updateTileGeometryState(e),this.reuseTextureFromParent(e)||this.updateTileTexture(e,E.TEXTURE_FADING)}reuseTextureFromParent(e){const t=e.parent;if(!t)return!1;const i=_(1&e.lij[2]?.5:0,1&e.lij[1]?0:.5,.5,.5);return t.renderData?.reuseTexture(e.renderData,i)??!1}updateTileTexture(e,t){null!=this._tileRenderer&&(this._tileRenderer.updateTileTexture(e,t===E.TEXTURE_FADING?O.FADING:O.UNFADED),this.setNeedsRender(),e.resetPendingUpdate(t))}updateTileGeometryState(e){for(const i of e.layerInfo[R.ELEVATION])i.pendingUpdates&=~E.GEOMETRY;e.resetPendingUpdate(E.GEOMETRY);const t=e.renderData.updateGeometryState();return t&&this.setDirty(),t}updateGeometryIfNeeded(e){e.loaded&&e.renderData.updateGeometryIfNeeded(this._rctx)}unloadTile(e){const t=e.renderData;t&&(t.releaseGeometry(),this._renderDataPool.release(t),t.clear(),e.renderData=null,e.setMemoryDirty(),this.setDirty())}_getLocalOriginOfTile(e){const t=le-oe,i=Math.max(0,Math.floor((e.level-t)/oe)*oe);if(this._isGlobal&&0===i)return u;for(;e.parent&&e.level>i;)e=e.parent;return e.centerAtSeaLevel}getStats(){return{numTilesRendered:this._numTilesRendered,numTilesCulled:this._numTilesCulled,numOriginsRendered:this._numOriginsRendered}}set wireframe(e){this._get("wireframe")!==e&&(this._set("wireframe",e),this.setNeedsRender())}setDirty(e=z.UPDATE){this._patchesByOriginDirty=!0,this._context.requestRender(e)}_setSortingDirty(e=z.UPDATE){this._patchSortingDirty=!0,this._context.requestRender(e)}setNeedsRender(e=z.UPDATE){this._context.requestRender(e)}initializeRenderContext(e){this._context=e,this._tileRenderer=new C(this._rctx,this._tileSize,this._techniques,this._tileTextureCache,this._compressionTracker),this.updateTileBackground()}uninitializeRenderContext(){this._tileRenderer=i(this._tileRenderer)}intersect(e,t,i,r){if(!this._rootTiles||e.options.selectOpaqueTerrainOnly&&e.options.selectionMode&&this.transparency!==B.Opaque)return;const s=he,n=ue;c(s,r,i),d(n,1/s[0],1/s[1],1/s[2]);const a=e.results.min,o=e.results.max,l=e.results.ground,u=e.options.store===V.MIN,g=!!e.results.ground.target,p=te(e.verticalOffset),_=e.tolerance;let f,m=u&&null!=a.distance?a.distance:1/0;const T=e.options,O=T.normalRequired||!T.backfacesTerrain,R=new X(!1,O),x=d=>{const g=d.renderData;if(!g?.vao)return;const x=g.geometry;b(ce,x.boundingBox);const v=g.localOrigin;null!=p&&(p.localOrigin=v,p.applyToAabb(ce));const w=ce;if(ge[0]=i[0]-v[0],ge[1]=i[1]-v[1],ge[2]=i[2]-v[2],!W(w,ge,n,_,m))return;const D=(e,t,i)=>{e.set(this.type,d,t,i),m=u&&null!=a.distance?a.distance:1/0},P=(n,c,d)=>{if((!O||null!=d)&&n>=0&&(T.backfacesTerrain||h(d,s)<0)&&(T.invisibleTerrain||!T.selectionMode||null==t||t(i,r,n))){if((null==l.distance||n<l.distance)&&D(l,n,d),T.isFiltered)return;T.store===V.ALL&&(null==f?(f=new H(e.ray),D(f,n,d),e.results.all.push(f)):n<f.distance&&D(f,n,d)),(null==a.distance||n<a.distance)&&D(a,n,d),T.store!==V.MIN&&(null==o.distance||n>o.distance)&&D(o,n,d)}},S=pe;c(S,r,v);const{indices:C,indexCount:E}=x,j=x.vertexAttributes,A=j.getField($.POSITION,y),N=new k(A.typedBuffer,3,j.stride/4),B=E/3;if(!p&&B>I){const e=d.renderData;null==e.intersectionData&&(e.intersectionData=new U(C,0,B,N)),e.intersectionData.intersectRay(ge,S,R,P)}else K(ge,S,0,B,C,N,p,R,P)},v=this._rootTiles;if(null!=v){(()=>{const t=this._tileIterator;t.reset(v);const r=e.options.invisibleTerrain;for(let e=t.next();e;e=t.next())!(e.visible||r&&e.intersectsClippingArea)||null==p&&!e.intersectsRay(i,s,_,m)||g&&this._useStencilForTile(e)?t.skipSubtree():x(e)})()}}processScaleRangeQueries(e,t){if(!t.done&&e)for(this._updatePatchGroups();e.updating&&!t.done;){e.prepare();for(const t of this._visiblePatchesByOrigin.values())for(const i of t)null!=i.renderData?.textureReference&&e.queriesForTile(i);e.process(),t.madeProgress()}}acquireTechniques(e){const t=!!has("enable-feature:terrain-shadows")&&e.bind.shadowMap.enabled;t!==this._castShadows&&(this._castShadows=t,this._patchesByOriginDirty=!0);const i=e.bind.viewshedEnabled;if(this._inViewshed!==i&&(this._inViewshed=i,this._patchesByOriginDirty=!0),e.bind.slot===Z.OCCLUDED_GROUND){if(0===(e.renderOccludedMask&v))return null}else{const t=this.transparency===B.Opaque?Z.OPAQUE_TERRAIN:Z.TRANSPARENT_TERRAIN;if(e.bind.slot!==t)return null}if(this.transparency===B.Invisible)return null;const r=this._configuration;switch(r.screenSpaceReflections=r.cloudReflections=r.receiveShadows=r.receiveAmbientOcclusion=r.renderOccluded=r.hasHighlightMixTexture=!1,r.overlayMode=this._overlayRenderer.mode,e.output){case G.Color:case G.ColorEmission:{r.screenSpaceReflections=null!=e.bind.ssr.lastFrameColor,r.cloudReflections=null!=e.bind.clouds.data,r.receiveShadows=e.bind.shadowMap.ready;const t=e.bind.slot===Z.OCCLUDED_GROUND;return r.renderOccluded=t,r.receiveAmbientOcclusion=!t&&null!=e.bind.ssao,this._acquireTechnique(e.output)}case G.Shadow:case G.ShadowExcludeHighlight:return this._castShadows?this._acquireTechnique(G.Shadow):null;case G.ViewshedShadow:return this._inViewshed?this._acquireTechnique(G.ViewshedShadow):null;case G.Depth:case G.Normal:return this._acquireTechnique(e.output);case G.ObjectAndLayerIdColor:return this._acquireTechnique(G.ObjectAndLayerIdColor);case G.Highlight:return r.hasHighlightMixTexture=null!=e.bind.highlightMixTexture,this._overlayRenderer.hasHighlights?this._acquireTechnique(G.Highlight):null}return null}render(e,t){switch(this._updatePatchGroups(),t.useStencil=!1,e.output){case G.Color:case G.ColorEmission:{const i=e.bind.slot!==Z.OCCLUDED_GROUND||e.bind.overlay?.allSourcesOccludees?x.Color:x.Occluded;this._renderMaterialPass(e,t,i);break}case G.Depth:case G.Normal:this._renderAuxiliaryPass(e,t,x.Color,this._visiblePatchesByOrigin);break;case G.Highlight:{const i=e.bind.highlight?.name;i&&this._overlayRenderer.hasHighlights&&this._overlayRenderer.renders(x.Highlight)&&this._overlayRenderer.hasHighlight(i)&&this._renderAuxiliaryPass(e,t,x.Highlight,this._visiblePatchesByOrigin);break}case G.Shadow:case G.ShadowExcludeHighlight:case G.ViewshedShadow:this._renderAuxiliaryPass(e,t,null,this._allPatchesByOrigin);break;case G.ObjectAndLayerIdColor:this._renderAuxiliaryPass(e,t,x.ObjectAndLayerIdColor,this._visiblePatchesByOrigin)}}updateTileBackground(e){if(null==this._tileRenderer)return;const i=this._tileRenderer;let r;if(null!=e){const i=t.toUnitRGBA(e);r=p(i[0]||0,i[1]||0,i[2]||0)}i.setBackground(r),this._allTiles.forAll(e=>i.updateTileTexture(e,O.FADING)),this._configuration.tileBlendInput=i.backgroundIsGrid?F.GridComposite:null!=i.backgroundColor?F.ColorComposite:F.LayerOnly,this.setNeedsRender()}_updatePatchGroups(){if(this._patchesByOriginDirty&&(this._rebuildPatchGroups(),this._patchesByOriginDirty=!1,this._patchSortingDirty=!0),this._patchSortingDirty&&this.renderOrder!==D.NONE){const e=Array.from(this._visiblePatchesByOrigin.values()),t=this._stencilEnabledLayerExtents;for(const i of e)A(this.renderOrder,i,t);e.sort((e,t)=>N(e[0],t[0],this.renderOrder)),this._visiblePatchesByOrigin=new Map(e.map(e=>[e[0].renderData.localOrigin,e])),this._patchSortingDirty=!1}}_rebuildPatchGroups(){const e=this._rootTiles;if(null!=e){e[0]?.surface.checkAllTilesWaterproofness(),this._visiblePatchesByOrigin.clear(),this._allPatchesByOrigin.clear();for(const t of e)this._rebuildPatchGroupsForRootTile(t)}}_rebuildPatchGroupsForRootTile(e){const t=this._tileIterator;for(t.resetOne(e);!t.done;){const e=t.next(),i=e.renderData;if(!i){this._numTilesCulled++;continue}const r=i.localOrigin;if(this._castShadows||this._inViewshed){let t=this._allPatchesByOrigin.get(r);t||(t=[],this._allPatchesByOrigin.set(r,t)),t.push(e)}if(!e.visible){this._numTilesCulled++,t.skipSubtree();continue}let s=this._visiblePatchesByOrigin.get(r);s||(s=[],this._visiblePatchesByOrigin.set(r,s)),s.push(e),t.skipSubtree()}}_useStencilForTile(e){for(const t of this._stencilEnabledLayerExtents)if(e.intersectsExtent(t))return!0;return!1}_renderAuxiliaryPass(e,t,i,r){const s=e.rctx;this._passParameters.overlayContent=i,s.bindTechnique(t,e.bind,this._passParameters);const n=this._stencilEnabledLayerExtents.length>0;r.forEach(r=>{this._drawParameters.origin=r[0].renderData.localOrigin,t.program.bindDraw(e.bind,this._passParameters,this._drawParameters);for(let s=0;s<r.length;s++)this._renderPatch(e,t,r[s],ae.TRIANGLES,n,i)}),e.rctx.bindVAO(null)}_renderMaterialPass(e,t,i){const{rctx:r}=e;this._passParameters.overlayContent=i,r.bindTechnique(t,e.bind,this._passParameters),this._numTilesRendered=0,this._numTilesCulled=0,this._numOriginsRendered=0;const s=e.bind.camera,n=t.program;if(this._configuration.screenSizePerspective&&this.pointsOfInterest){const e=J(this._stage.viewingMode,this._ellipsoidRadius),t=this.pointsOfInterest.centerOnSurfaceFrequent.distance;e.update({distance:t,fovY:s.fovY})}const a=this._stencilEnabledLayerExtents.length>0,o=e.bind.slot===Z.OCCLUDED_GROUND;o&&(n.bindTexture("tex",r.emptyTexture),n.setUniform3fv("textureOpacities",u),n.setUniform4fv("texOffsetAndScale",f));const l=null!=this._tileRenderer?.backgroundColor?this._tileRenderer.backgroundColor:u;this._configuration.tileBlendInput===F.ColorComposite&&n.setUniform3fv("backgroundColor",l);const c=this.wireframe?ae.LINES:ae.TRIANGLES;this._configuration.textureFadingEnabled&&n.bindTexture("texNext",r.emptyTexture);const d=this._visiblePatchesByOrigin;for(const h of d.values()){const r=h[0].renderData.localOrigin;this._drawParameters.origin=r,t.program.bindDraw(e.bind,this._passParameters,this._drawParameters),this._numOriginsRendered++;for(const s of h){const r=s.renderData,l=r.textureReference;if(null!=l){if(!o){n.setUniform4fv("texOffsetAndScale",l.offsetAndScale),n.bindTexture("tex",l.texture.texture);const e=r.textureFadeFactor,t=e<1?r.nextTextureReference:null;this._configuration.textureFadingEnabled&&t&&e<1?(n.setUniform1f("fadeFactor",e),n.setUniform4fv("nextTexOffsetAndScale",t.offsetAndScale),n.setUniform3fv("nextTexOpacities",t.opacities),n.bindTexture("texNext",t.texture.texture)):n.setUniform1f("fadeFactor",1),r.textureIsFading&&this.setNeedsRender(),n.setUniform3fv("textureOpacities",l.opacities)}this._renderPatch(e,t,s,c,a,i),s.renderOrder=this._numTilesRendered,this._numTilesRendered++}}}e.rctx.bindVAO(null)}_renderPatch(e,t,i,r,s,n){const a=i.renderData,o=a.vao,l=o?.indexBuffer;if(!o||null==l)return void(S&&console.error("Rendered tile with no indices: ",i.lij," : ",a));const c=t.program;null==n||this._overlayRenderer.isEmpty||this._bindOverlayPatchData(c,a.overlay),s&&(t.useStencil=this._useStencilForTile(i),e.rctx.setPipelineState(t.getPipeline()));const d=a.geometry.indexCount;e.rctx.bindVAO(o),c.assertCompatibleVertexAttributeLocations(o),e.rctx.drawElements(r,d,l.indexType,0)}_bindOverlayPatchData(e,t){e.setUniform4fv("overlayTexOffset",t.offsets),e.setUniform4fv("overlayTexScale",t.scales)}_acquireTechnique(e){return this._configuration.output=e,this._techniques.get(se,this._configuration)}get test(){}hasHighlight(e){return this._overlayRenderer.hasHighlight(e)}};e([o({readOnly:!0})],de.prototype,"_isGlobal",null),e([o()],de.prototype,"renderOccludedFlags",void 0),e([o({value:!1})],de.prototype,"renderingDisabled",null),e([o({value:!0})],de.prototype,"visible",null),e([o()],de.prototype,"renderPatchBorders",null),e([o()],de.prototype,"visualizeNormals",null),e([o()],de.prototype,"cullBackFaces",null),e([o({value:D.FRONT_TO_BACK})],de.prototype,"renderOrder",null),e([o()],de.prototype,"wireframe",null),de=e([l("esri.views.3d.terrain.TerrainRenderer")],de);const he=g(),ue=g(),ge=g(),pe=g();export{de as TerrainRenderer};
5
+ import{_ as e}from"../../../chunks/tslib.es6.js";import t from"../../../Color.js";import has from"../../../core/has.js";import{disposeMaybe as i}from"../../../core/maybe.js";import{MemCachePool as r}from"../../../core/MemCachePool.js";import s from"../../../core/ObjectPool.js";import{watch as n,sync as a}from"../../../core/reactiveUtils.js";import{property as o}from"../../../core/accessorSupport/decorators/property.js";import"../../../core/Logger.js";import"../../../core/RandomLCG.js";import{subclass as l}from"../../../core/accessorSupport/decorators/subclass.js";import{d as c,i as d,e as h}from"../../../chunks/vec32.js";import{ZEROS as u,create as _,fromValues as g}from"../../../core/libs/gl-matrix-2/factories/vec3f64.js";import{fromValues as p,ZEROS as f}from"../../../core/libs/gl-matrix-2/factories/vec4f64.js";import{create as m,set as y}from"../../../geometry/support/aaBoundingBox.js";import{BufferViewVec3f as b}from"../../../geometry/support/buffer/BufferView.js";import{overlayRenderOccludedFlag as x}from"./OverlayRenderer.js";import{PatchRenderData as T}from"./PatchRenderData.js";import{TerrainAttributesCache as v}from"./TerrainAttributesCache.js";import{enableTerrainInternalChecks as R}from"./terrainUtils.js";import{TileRenderer as O}from"./TileRenderer.js";import{IteratorPreorder as P,sortTiles as w,compareTiles as S}from"./tileUtils.js";import{componentMinimalSizeForIntersectionData as D,ComponentIntersectionData as B}from"../webgl-engine/collections/Component/ComponentIntersectionData.js";import{getOverlayContentForOutputTerrain as C}from"../webgl-engine/core/shaderLibrary/terrain/Overlay.glsl.js";import{SyncRenderPlugin as j,ConsumesDepth as E,ConsumesNone as q}from"../webgl-engine/effects/RenderPlugin.js";import{Vertices as F}from"../webgl-engine/lib/Attribute.js";import{IntersectorResult as k}from"../webgl-engine/lib/IntersectorResult.js";import{intersectAabbInvDirBefore as A,MeshIntersectionOptions as M,intersectTriangles as N}from"../webgl-engine/lib/RayIntersections.js";import{getSettings as G}from"../webgl-engine/lib/screenSizePerspectiveUtils.js";import{terrainId as z,getVerticalOffsetTerrain as U}from"../webgl-engine/lib/verticalOffsetUtils.js";import{DrawParameters as I}from"../webgl-engine/materials/DrawParameters.js";import{T as L}from"../../../chunks/Terrain.glsl.js";import{TerrainTechnique as V}from"../webgl-engine/shaders/TerrainTechnique.js";import{TerrainTechniqueConfiguration as H}from"../webgl-engine/shaders/TerrainTechniqueConfiguration.js";import{PrimitiveType as W}from"../../webgl/enums.js";const Y=7,Q=10,Z=m();let J=class extends j{get _isGlobal(){return 1===this._stage.viewingMode}get _techniques(){return this._context.techniques}get _rctx(){return this._context.renderContext.rctx}constructor(e,t,i,n,a,o){super({}),this._overlayRenderer=e,this._stage=t,this._allTiles=i,this._ellipsoidRadius=n,this._compressionTracker=a,this.type=2,this.isGround=!0,this._passParameters=new L,this._drawParameters=new I,this._renderDataPool=new s(T),this._visiblePatchesByOrigin=new Map,this._allPatchesByOrigin=new Map,this._patchesByOriginDirty=!0,this._patchSortingDirty=!0,this._tileIterator=new P,this._castShadows=!1,this._inViewshed=!1,this._tileRenderer=null,this._stencilEnabledLayerExtents=new Array,this._numTilesRendered=0,this._numTilesCulled=0,this._numOriginsRendered=0,this.renderOccludedFlags=1,this.produces=new Map([[1,()=>this._produces()&&0===this.transparency],[6,()=>this._produces()&&(1===this.transparency||2===this.transparency)],[8,()=>this._produces()&&this.renderOccludedFlags===x]]),this._tileSize=256,this._configuration=new H(1===t.viewingMode),this._tileTextureCache=new r((e,t)=>o.newCache(e,t),"TileTexture"),this.tileGeometryCache=new v(o)}normalizeCtorArgs(){return{}}initialize(){this._stage.addRenderPlugin(this),this.addHandles(n(()=>this._overlayRenderer.renderOccludedFlags,e=>{this.renderOccludedFlags=e,this.setNeedsRender()},a))}destroy(){this._stage.removeRenderPlugin(this),this._tileTextureCache.destroy(),this.tileGeometryCache.destroy(),this._allTiles.prune(),this._tileRenderer=null}_produces(){return this.visible&&!!this._rootTiles&&!this.renderingDisabled}consumes(){return this._overlayRenderer.hasWater?E:q}set renderingDisabled(e){this._set("renderingDisabled",!!e),this.setDirty()}set visible(e){this._set("visible",!!e),this.setDirty()}updateHeading(e){this._tileRenderer?.updateHeading(e)}set transparency(e){this._configuration.transparencyMode!==e&&(this._configuration.transparencyMode=e,this.setNeedsRender())}get transparency(){return this._configuration.transparencyMode}get renderPatchBorders(){return this._configuration.tileBorders}set renderPatchBorders(e){this._configuration.tileBorders!==e&&(this._configuration.tileBorders=e,this.setNeedsRender(),this.notifyChange("renderPatchBorders"))}get visualizeNormals(){return this._configuration.visualizeNormals}set visualizeNormals(e){this._configuration.visualizeNormals!==e&&(this._configuration.visualizeNormals=e,this.setNeedsRender(),this.notifyChange("visualizeNormals"))}get cullBackFaces(){return this._configuration.backfaceCullingEnabled}set cullBackFaces(e){this._configuration.backfaceCullingEnabled!==e&&(this._configuration.backfaceCullingEnabled=e,this.notifyChange("cullBackFaces"),this.setNeedsRender())}set renderOrder(e){this._set("renderOrder",e),this._setSortingDirty()}get layerViewUid(){return z}get slicePlaneEnabled(){return this._configuration.hasSlicePlane}set slicePlaneEnabled(e){this._configuration.hasSlicePlane!==e&&(this._configuration.hasSlicePlane=e,this.setNeedsRender())}set textureFadingEnabled(e){this._configuration.textureFadingEnabled!==e&&(this._configuration.textureFadingEnabled=e,this.setNeedsRender())}set pbrMode(e){this._configuration.pbrMode!==e&&(this._configuration.pbrMode=e,this.setNeedsRender())}setDebugScreenSizePerspective(e){this._configuration.screenSizePerspective!==e&&(this._configuration.screenSizePerspective=e,this.setNeedsRender())}setRootTiles(e){this._rootTiles=e,this.setDirty()}setStencilEnabledLayerExtents(e){this._stencilEnabledLayerExtents=e,this._setSortingDirty()}set tileSize(e){this._tileSize=e,null!=this._tileRenderer&&(this._tileRenderer.tileSize=e),this.setDirty()}get tileSize(){return this._tileSize}_ensureRenderData(e){e.renderData||(e.renderData=this._renderDataPool.acquire(),e.renderData.init(e,this._getLocalOriginOfTile(e)))}loadTile(e){this._ensureRenderData(e),this.updateTileGeometryState(e),this.reuseTextureFromParent(e)||this.updateTileTexture(e,32)}reuseTextureFromParent(e){const t=e.parent;if(!t)return!1;const i=p(1&e.lij[2]?.5:0,1&e.lij[1]?0:.5,.5,.5);return t.renderData?.reuseTexture(e.renderData,i)??!1}updateTileTexture(e,t){null!=this._tileRenderer&&(this._tileRenderer.updateTileTexture(e,32===t?0:2),this.setNeedsRender(),e.resetPendingUpdate(t))}updateTileGeometryState(e){for(const i of e.layerInfo[0])i.pendingUpdates&=-9;e.resetPendingUpdate(8);const t=e.renderData.updateGeometryState();return t&&this.setDirty(),t}updateGeometryIfNeeded(e){e.loaded&&e.renderData.updateGeometryIfNeeded(this._rctx)}unloadTile(e){const t=e.renderData;t&&(t.releaseGeometry(),this._renderDataPool.release(t),t.clear(),e.renderData=null,e.setMemoryDirty(),this.setDirty())}_getLocalOriginOfTile(e){const t=Q-Y,i=Math.max(0,Math.floor((e.level-t)/Y)*Y);if(this._isGlobal&&0===i)return u;for(;e.parent&&e.level>i;)e=e.parent;return e.centerAtSeaLevel}getStats(){return{numTilesRendered:this._numTilesRendered,numTilesCulled:this._numTilesCulled,numOriginsRendered:this._numOriginsRendered}}set wireframe(e){this._get("wireframe")!==e&&(this._set("wireframe",e),this.setNeedsRender())}setDirty(e=1){this._patchesByOriginDirty=!0,this._context.requestRender(e)}_setSortingDirty(e=1){this._patchSortingDirty=!0,this._context.requestRender(e)}setNeedsRender(e=1){this._context.requestRender(e)}initializeRenderContext(e){this._context=e,this._tileRenderer=new O(this._rctx,this._tileSize,this._techniques,this._tileTextureCache,this._compressionTracker),this.updateTileBackground()}uninitializeRenderContext(){this._tileRenderer=i(this._tileRenderer)}intersect(e,t,i,r){if(!this._rootTiles||e.options.selectOpaqueTerrainOnly&&e.options.selectionMode&&0!==this.transparency)return;const s=K,n=X;c(s,r,i),d(n,1/s[0],1/s[1],1/s[2]);const a=e.results.min,o=e.results.max,l=e.results.ground,u=0===e.options.store,_=!!e.results.ground.target,g=U(e.verticalOffset),p=e.tolerance;let f,m=u&&null!=a.distance?a.distance:1/0;const x=e.options,T=x.normalRequired||!x.backfacesTerrain,v=new M(!1,T),R=d=>{const _=d.renderData;if(!_?.vao)return;const R=_.geometry;y(Z,R.boundingBox);const O=_.localOrigin;null!=g&&(g.localOrigin=O,g.applyToAabb(Z));const P=Z;if($[0]=i[0]-O[0],$[1]=i[1]-O[1],$[2]=i[2]-O[2],!A(P,$,n,p,m))return;const w=(e,t,i)=>{e.set(this.type,d,t,i),m=u&&null!=a.distance?a.distance:1/0},S=(n,c,d)=>{if((!T||null!=d)&&n>=0&&(x.backfacesTerrain||h(d,s)<0)&&(x.invisibleTerrain||!x.selectionMode||null==t||t(i,r,n))){if((null==l.distance||n<l.distance)&&w(l,n,d),x.isFiltered)return;2===x.store&&(null==f?(f=new k(e.ray),w(f,n,d),e.results.all.push(f)):n<f.distance&&w(f,n,d)),(null==a.distance||n<a.distance)&&w(a,n,d),0!==x.store&&(null==o.distance||n>o.distance)&&w(o,n,d)}},C=ee;c(C,r,O);const{indices:j,indexCount:E}=R,q=R.vertexAttributes,M=q.getField("position",b),G=new F(M.typedBuffer,3,q.stride/4),z=E/3;if(!g&&z>D){const e=d.renderData;null==e.intersectionData&&(e.intersectionData=new B(j,0,z,G)),e.intersectionData.intersectRay($,C,v,S)}else N($,C,0,z,j,G,g,v,S)},O=this._rootTiles;if(null!=O){(()=>{const t=this._tileIterator;t.reset(O);const r=e.options.invisibleTerrain;for(let e=t.next();e;e=t.next())!(e.visible||r&&e.intersectsClippingArea)||null==g&&!e.intersectsRay(i,s,p,m)||_&&this._useStencilForTile(e)?t.skipSubtree():R(e)})()}}processScaleRangeQueries(e,t){if(!t.done&&e)for(this._updatePatchGroups();e.updating&&!t.done;){e.prepare();for(const t of this._visiblePatchesByOrigin.values())for(const i of t)null!=i.renderData?.textureReference&&e.queriesForTile(i);e.process(),t.madeProgress()}}acquireTechniques(e){const t=!!has("enable-feature:terrain-shadows")&&e.bind.shadowMap.enabled;t!==this._castShadows&&(this._castShadows=t,this._patchesByOriginDirty=!0);const i=e.bind.viewshedEnabled;if(this._inViewshed!==i&&(this._inViewshed=i,this._patchesByOriginDirty=!0),8===e.bind.slot){if(0===(e.renderOccludedMask&x))return null}else{const t=0===this.transparency?1:6;if(e.bind.slot!==t)return null}if(3===this.transparency)return null;const r=this._configuration;switch(r.screenSpaceReflections=r.cloudReflections=r.receiveShadows=r.receiveAmbientOcclusion=r.renderOccluded=r.hasHighlightMixTexture=!1,r.overlayMode=this._overlayRenderer.mode,e.output){case 0:case 1:{r.screenSpaceReflections=null!=e.bind.ssr.lastFrameColor,r.cloudReflections=null!=e.bind.clouds.data,r.receiveShadows=e.bind.shadowMap.ready;const t=8===e.bind.slot;return r.renderOccluded=t,r.receiveAmbientOcclusion=!t&&null!=e.bind.ssao,this._acquireTechnique(e.output)}case 4:case 6:return this._castShadows?this._acquireTechnique(4):null;case 7:return this._inViewshed?this._acquireTechnique(7):null;case 2:case 3:return this._acquireTechnique(e.output);case 9:return this._acquireTechnique(9);case 8:return r.hasHighlightMixTexture=null!=e.bind.highlightMixTexture,this._overlayRenderer.hasHighlights?this._acquireTechnique(8):null}return null}render(e,t){switch(this._updatePatchGroups(),t.useStencil=!1,this._passParameters.overlayContent=C(e.output,e.bind),e.output){case 0:case 1:this._renderMaterialPass(e,t);break;case 2:case 3:case 9:this._renderAuxiliaryPass(e,t,this._visiblePatchesByOrigin);break;case 8:{const i=e.bind.highlight?.name;i&&this._overlayRenderer.hasHighlights&&this._overlayRenderer.renders(2)&&this._overlayRenderer.hasHighlight(i)&&this._renderAuxiliaryPass(e,t,this._visiblePatchesByOrigin);break}case 4:case 6:case 7:this._renderAuxiliaryPass(e,t,this._allPatchesByOrigin)}}updateTileBackground(e){if(null==this._tileRenderer)return;const i=this._tileRenderer;let r;if(null!=e){const i=t.toUnitRGBA(e);r=g(i[0]||0,i[1]||0,i[2]||0)}i.setBackground(r),this._allTiles.forAll(e=>i.updateTileTexture(e,0)),this._configuration.tileBlendInput=i.backgroundIsGrid?2:null!=i.backgroundColor?1:0,this.setNeedsRender()}_updatePatchGroups(){if(this._patchesByOriginDirty&&(this._rebuildPatchGroups(),this._patchesByOriginDirty=!1,this._patchSortingDirty=!0),this._patchSortingDirty&&0!==this.renderOrder){const e=Array.from(this._visiblePatchesByOrigin.values()),t=this._stencilEnabledLayerExtents;for(const i of e)w(this.renderOrder,i,t);e.sort((e,t)=>S(e[0],t[0],this.renderOrder)),this._visiblePatchesByOrigin=new Map(e.map(e=>[e[0].renderData.localOrigin,e])),this._patchSortingDirty=!1}}_rebuildPatchGroups(){const e=this._rootTiles;if(null!=e){e[0]?.surface.checkAllTilesWaterproofness(),this._visiblePatchesByOrigin.clear(),this._allPatchesByOrigin.clear();for(const t of e)this._rebuildPatchGroupsForRootTile(t)}}_rebuildPatchGroupsForRootTile(e){const t=this._tileIterator;for(t.resetOne(e);!t.done;){const e=t.next(),i=e.renderData;if(!i){this._numTilesCulled++;continue}const r=i.localOrigin;if(this._castShadows||this._inViewshed){let t=this._allPatchesByOrigin.get(r);t||(t=[],this._allPatchesByOrigin.set(r,t)),t.push(e)}if(!e.visible){this._numTilesCulled++,t.skipSubtree();continue}let s=this._visiblePatchesByOrigin.get(r);s||(s=[],this._visiblePatchesByOrigin.set(r,s)),s.push(e),t.skipSubtree()}}_useStencilForTile(e){for(const t of this._stencilEnabledLayerExtents)if(e.intersectsExtent(t))return!0;return!1}_renderAuxiliaryPass(e,t,i){const{rctx:r,bind:s}=e;r.bindTechnique(t,s,this._passParameters);const n=this._stencilEnabledLayerExtents.length>0;i.forEach(e=>{this._drawParameters.origin=e[0].renderData.localOrigin,t.program.bindDraw(s,this._passParameters,this._drawParameters);for(let i=0;i<e.length;i++)this._renderPatch(r,t,e[i],W.TRIANGLES,n,null===this._passParameters.overlayContent)}),r.bindVAO(null)}_renderMaterialPass(e,t){const{rctx:i,bind:r}=e;i.bindTechnique(t,r,this._passParameters),this._numTilesRendered=0,this._numTilesCulled=0,this._numOriginsRendered=0;const s=r.camera,n=t.program;if(this._configuration.screenSizePerspective&&this.pointsOfInterest){const e=G(this._stage.viewingMode,this._ellipsoidRadius),t=this.pointsOfInterest.centerOnSurfaceFrequent.distance;e.update({distance:t,fovY:s.fovY})}const a=this._stencilEnabledLayerExtents.length>0,o=8===r.slot;o&&(n.bindTexture("tex",i.emptyTexture),n.setUniform3fv("textureOpacities",u),n.setUniform4fv("texOffsetAndScale",f));const l=null!=this._tileRenderer?.backgroundColor?this._tileRenderer.backgroundColor:u;1===this._configuration.tileBlendInput&&n.setUniform3fv("backgroundColor",l);const c=this.wireframe?W.LINES:W.TRIANGLES;this._configuration.textureFadingEnabled&&n.bindTexture("texNext",i.emptyTexture);const d=this._visiblePatchesByOrigin;for(const h of d.values()){const e=h[0].renderData.localOrigin;this._drawParameters.origin=e,t.program.bindDraw(r,this._passParameters,this._drawParameters),this._numOriginsRendered++;for(const r of h){const e=r.renderData,s=e.textureReference;if(null!=s){if(!o){n.setUniform4fv("texOffsetAndScale",s.offsetAndScale),n.bindTexture("tex",s.texture.texture);const t=e.textureFadeFactor,i=t<1?e.nextTextureReference:null;this._configuration.textureFadingEnabled&&i&&t<1?(n.setUniform1f("fadeFactor",t),n.setUniform4fv("nextTexOffsetAndScale",i.offsetAndScale),n.setUniform3fv("nextTexOpacities",i.opacities),n.bindTexture("texNext",i.texture.texture)):n.setUniform1f("fadeFactor",1),e.textureIsFading&&this.setNeedsRender(),n.setUniform3fv("textureOpacities",s.opacities)}this._renderPatch(i,t,r,c,a),r.renderOrder=this._numTilesRendered,this._numTilesRendered++}}}i.bindVAO(null)}_renderPatch(e,t,i,r,s,n=!1){const a=i.renderData,o=a.vao,l=o?.indexBuffer;if(!o||null==l)return void(R&&console.error("Rendered tile with no indices: ",i.lij," : ",a));const c=t.program;n||this._overlayRenderer.isEmpty||this._bindOverlayPatchData(c,a.overlay),s&&(t.useStencil=this._useStencilForTile(i),e.setPipelineState(t.getPipeline()));const d=a.geometry.indexCount;e.bindVAO(o),c.assertCompatibleVertexAttributeLocations(o),e.drawElements(r,d,l.indexType,0)}_bindOverlayPatchData(e,t){e.setUniform4fv("overlayTexOffset",t.offsets),e.setUniform4fv("overlayTexScale",t.scales)}_acquireTechnique(e){return this._configuration.output=e,this._techniques.get(V,this._configuration)}get test(){}hasHighlight(e){return this._overlayRenderer.hasHighlight(e)}};e([o({readOnly:!0})],J.prototype,"_isGlobal",null),e([o()],J.prototype,"renderOccludedFlags",void 0),e([o({value:!1})],J.prototype,"renderingDisabled",null),e([o({value:!0})],J.prototype,"visible",null),e([o()],J.prototype,"renderPatchBorders",null),e([o()],J.prototype,"visualizeNormals",null),e([o()],J.prototype,"cullBackFaces",null),e([o({value:1})],J.prototype,"renderOrder",null),e([o()],J.prototype,"wireframe",null),J=e([l("esri.views.3d.terrain.TerrainRenderer")],J);const K=_(),X=_(),$=_(),ee=_();export{J as TerrainRenderer};
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.34/esri/copyright.txt for details.
4
4
  */
5
- import{_ as e}from"../../../chunks/tslib.es6.js";import t from"../../../Color.js";import i from"../../../core/Accessor.js";import{difference as r}from"../../../core/arrayUtils.js";import s from"../../../core/CollectionFlattener.js";import{toConst as a}from"../../../core/compilerUtils.js";import n from"../../../core/Evented.js";import"../../../core/has.js";import l from"../../../core/Logger.js";import{clamp as o}from"../../../core/mathUtils.js";import{destroyMaybe as h}from"../../../core/maybe.js";import{MemCachePool as d}from"../../../core/MemCachePool.js";import p from"../../../core/ObjectPool.js";import u from"../../../core/PooledArray.js";import{throwIfAborted as c,isAbortError as g,isAborted as m}from"../../../core/promiseUtils.js";import{watch as _,syncAndInitial as f,sync as T,initial as y}from"../../../core/reactiveUtils.js";import{getMetersPerUnitForSR as v}from"../../../core/unitUtils.js";import{property as E}from"../../../core/accessorSupport/decorators/property.js";import{subclass as S}from"../../../core/accessorSupport/decorators/subclass.js";import{i as w,c as C}from"../../../chunks/vec32.js";import{create as b}from"../../../core/libs/gl-matrix-2/factories/vec3f64.js";import{UpdatingHandles as L}from"../../../core/support/UpdatingHandles.js";import{getReferenceEllipsoid as P}from"../../../geometry/ellipsoidUtils.js";import M from"../../../geometry/SpatialReference.js";import{getProjector as x}from"../../../geometry/projection/projectors.js";import{projectPointToVector as D}from"../../../geometry/projection/projectPointToVector.js";import{projectVectorToVector as U}from"../../../geometry/projection/projectVectorToVector.js";import{create as R,equals as I,intersection as j,intersectsSphere as A,empty as V,expand as B}from"../../../geometry/support/aaBoundingRect.js";import{create as k,copy as N}from"../../../geometry/support/frustum.js";import{isPlateCarree as O}from"../../../geometry/support/spatialReferenceUtils.js";import{h as G,c as F,a as q}from"../../../chunks/sphere.js";import{ElevationQueryTileCache as W}from"../../../layers/support/ElevationQueryTileCache.js";import{isBaseLayer as $}from"../../../layers/support/layerUtils.js";import{debugFlags as H}from"../support/debugFlags.js";import{ElevationRange as Q}from"../support/ElevationRange.js";import{ElevationUpdateEvent as z}from"../support/ElevationUpdateEvent.js";import{toBoundingRect as X}from"../support/extentUtils.js";import{ClientType as Y}from"../support/index.js";import{updatingProgress as K}from"../support/updatingProperties.js";import{ElevationBounds as J}from"./ElevationBounds.js";import{ElevationData as Z,sampleElevation as ee}from"./ElevationData.js";import{create as te}from"./ExtentHelper.js";import{TextureUpdate as ie}from"./interfaces.js";import{LayerClass as re,LayerClasses as se}from"./LayerClass.js";import{OverlayManager as ae}from"./OverlayManager.js";import{PlanarPatch as ne}from"./PlanarPatch.js";import{RenderOrder as le}from"./RenderOrder.js";import{ScaleRangeQueries as oe}from"./ScaleRangeQueries.js";import{SphericalPatch as he}from"./SphericalPatch.js";import{SplitLimits as de}from"./SplitLimits.js";import{maxRootTiles as pe,tooManyRootTilesAfterChangeError as ue,tooManyRootTilesForLayerError as ce,maxTileNeighborLevelDelta as ge,maxMemoryLodBias as me}from"./TerrainConst.js";import{TerrainRenderer as _e}from"./TerrainRenderer.js";import fe from"./TerrainSurfacePerformanceInfo.js";import{weakAssert as Te,isVectorTileLayerView as ye,neighborEdgeIndices as ve,internalAssert as Ee,oppositeEdge as Se,isSurfaceLayerView as we,isGroupLayerView as Ce,isMapTileLayerView as be,isBlendableLayerView as Le,isElevationLayerView as Pe,releaseTerrainData as Me,enableTerrainInternalChecks as xe,oppositeCorner as De,enableWaterproofTests as Ue,enableInternalTerrainChecks as Re,enableTerrainWaterproofChecks as Ie,neighborCornerIndices as je}from"./terrainUtils.js";import{Tile as Ae,lijEquals as Ve}from"./Tile.js";import{printAllocations as Be}from"./TilePerLayerInfo.js";import{TileUpdate as ke}from"./TileUpdate.js";import{IteratorPreorder as Ne,IteratorPostorder as Oe,compareTilesByLij as Ge,hasLoadableSiblings as Fe,sortTilesByPOI as qe}from"./tileUtils.js";import{TilingSchemeLogic as We}from"./TilingSchemeLogic.js";import{TransparencyMode as $e}from"./TransparencyMode.js";import{UpsampleInfo as He}from"./UpsampleInfo.js";import{isCompositeBlendMode as Qe,blendModeFromString as ze}from"../webgl-engine/core/shaderLibrary/output/BlendOptions.js";import{PBRMode as Xe}from"../webgl-engine/core/shaderLibrary/shading/PhysicallyBasedRenderingParameters.glsl.js";import{RenderRequestType as Ye}from"../webgl-engine/lib/basicInterfaces.js";import{hasLayerBasedScaleVisibility as Ke}from"../../support/layerViewUtils.js";import{RenderState as Je}from"../../support/RenderState.js";import{ImmediateTask as Ze,TaskPriority as et,noBudget as tt}from"../../support/Scheduler.js";import{TextureCompressionTracker as it}from"../../support/TextureCompressionTracker.js";import{Yield as rt}from"../../support/Yield.js";var st;let at=class extends(n.EventedMixin(i)){static{st=this}get allTiles(){return a(this._allTiles)}get demResolution(){const{_allTiles:e,tilingScheme:t}=this;if(0===e.length)return{min:1,max:1};const i=v(t.spatialReference);let r=Number.POSITIVE_INFINITY,s=Number.NEGATIVE_INFINITY;for(const a of e){const e=t.resolutionAtLevel(a.level)*i;r=Math.min(r,e),s=Math.max(s,e)}return{min:r,max:s}}constructor(e){super(e),this.terrainTextureCompressionTracker=new it,this._iteratorPool=new p(Ne,e=>e.remove=()=>this._iteratorPool.release(e)),this._postorderIterator=new Oe,this._hasPendingUpdates=!1,this._pendingUpdates=0,this._asyncWorkItems=0,this._allTilesDirty=!0,this._allTilesSorted=!0,this._usedMemory=null,this._performanceInfo=new fe,this._viewChanged=!1,this.heading=0,this._inFrameTask=!1,this._viewChangeUpdateDirty=!1,this._eyePosRenderSR=b(),this._eyePosSurfaceSR=b(),this._splitLimits=new de,this._frustum=k(),this._layerViews=[new Array,new Array],this._layerIndexByUid=[new Map,new Map],this._basemapLayerViewHandles=new Map,this._watchUpdatingTracking=new L,this._frameTask=Ze,this._allTiles=new u,this._upsampleInfoPool=new p(He),this._shouldEmitChangeEvent=!1,this._rootTilesExtent=R(),this.updatingProgress=.5,this._maxNumUpdating=1,this.maxTextureScale=1.2,this._spatialReference=M.WebMercator,this._elevationProjectorCache=new Map,this.visibleElevationBounds=new J(1/0,-1/0),this.rootTileElevationBounds=new J(1/0,-1/0),this._projectorCache=new Map,this._radiusModifier=Math.cos(Math.PI/16/16),this._tilingSchemeSpatialReference=null,this._updatingRootTiles=!1,this._pendingTilesForElevationUpdateEvent=new Set,this._pendingTilesToUpdate=new Set,this.totalGeometryUpdates=0,this.totalTileUpdates=0,this._oneBatchPerFrameTask=!0,this._layerViewsDirty=!1,this.unloadedMemory=0,this.ignoresMemoryFactor=!1,this._isWebMercator=!1,this._isWebMercatorOnPlateCarree=!1;const t=e.view;this.overlayManager=new ae({...e,surface:this}),this._isGlobal=!t.state?.isLocal,this._isGeographic=this._spatialReference?.isGeographic??!1,this._tileConstructor=this._isGlobal?he:ne,this._ellipsoid=P(t.spatialReference),this._renderer=new _e(this.overlayManager.renderer,t.stage,this._allTiles,this._ellipsoid.radius,this.terrainTextureCompressionTracker,t.resourceController.memoryController),Ke()||(this._scaleRangeQueries=new oe)}initialize(){const e=this.view,t=e.resourceController,i=t.memoryController;this._tileCache=new d((e,t)=>i.newCache(e,t),"terrain-tile"),this._upsampleMapCache=i.newCache("terrain-upsample",e=>e.unloadMapData()),this._elevationQueryCache=new W(i.newCache("elevation-query"));const r=this.overlayManager;this.addHandles([_(()=>r.renderer.isEmpty,()=>this._evaluateTransparency()),_(()=>this.renderer.visible,e=>this.suspended=!e),_(()=>this.heading,e=>{this._renderer.updateHeading(e),this._updateTileTextures(ie.FADING)}),_(()=>({heading:e.camera?.heading,state:e.state?.mode}),({heading:e,state:t})=>{if(null==e)return;if(this.isGlobal&&this.isGeographic||this.isWebMercatorOnPlateCarree)return void(this.heading=90*Math.round(e/90)%360);const i=Math.round(e)%360,r=Math.abs(i-this.heading);(t===Je.IDLE||Math.min(r,360-r)>=30)&&(this.heading=i)})],"overlayManager"),this.addHandles([_(()=>this.baseOpacity,()=>{this._handleLayerViewChanges(),this._updateTileTextures(this._evaluateTransparency()?ie.UNFADED:ie.IMMEDIATE)},f),_(()=>this.hasCompositeBlendMode,()=>this._updateTileTextures(this._evaluateTransparency()?ie.UNFADED:ie.IMMEDIATE),f),_(()=>this.backgroundColor,(e,t)=>{e?.equals(t)||(this._handleLayerViewChanges(),this._renderer.updateTileBackground(e))},T),_(()=>this.snapLevel,()=>this._viewChanged=!0,T),_(()=>this.view.pointsOfInterest,e=>{this._renderer.pointsOfInterest=e,this._watchUpdatingTracking.removeAll(),e&&this._watchUpdatingTracking.add(()=>e.focus.renderLocation,()=>this._allTilesSorted=!1)}),_(()=>H.TERRAIN_TILE_TREE_SHOW_TILES,t=>{t&&!this._treeDebugger?import("../layers/support/TerrainTileTree3DDebugger.js").then(({TerrainTileTree3DDebugger:t})=>{!this._treeDebugger&&H.TERRAIN_TILE_TREE_SHOW_TILES&&(this._treeDebugger=new t({view:e}))}):t||(this._treeDebugger=h(this._treeDebugger))},y)]);const{spatialReference:a}=e;this._extentHelper=te(this.viewingMode,{layers:e.map.allLayers,layerViews:e.allLayerViews,viewSpatialReference:a});const n=new s({getCollections:()=>e.defaultsFromMap?.mapCollections?.map(({layers:e})=>e),getChildrenFunction:e=>e&&"layers"in e?e.layers:null}),l=new We({layers:n,extentHelper:this._extentHelper,viewingMode:this.viewingMode,viewSpatialReference:a});this._set("tilingSchemeLogic",l),this._updateTilingScheme(),this._elevationDataRequester=t.createStreamDataRequester(Y.ELEVATION),this._mapDataRequester=t.createStreamDataRequester(Y.BASEMAP);const o=t.scheduler;this._frameTask=o.registerTask(et.TERRAIN_SURFACE,this),this.addHandles([_(()=>this._extentHelper.stencilEnabledExtents,e=>this._renderer.setStencilEnabledLayerExtents(e),y),_(()=>this.tilingSchemeLogic.tilingScheme,()=>this._updateTilingScheme(),T),_(()=>this.extent,()=>this._updateRootTiles(),y),e.on("resize",()=>this._viewChangeUpdate()),_(()=>{const t=e.state;return[this._lodBias,this.lodSnappingEnabled,e.quality,t.camera,t.contentCamera,t.fixedContentCamera]},()=>this._viewChangeUpdate(),f),_(()=>e.qualitySettings?.fadeDuration,e=>this._renderer.textureFadingEnabled=e>0,y),_(()=>e.qualitySettings?.physicallyBasedRenderingEnabled,e=>this._renderer.pbrMode=e?Xe.Simplified:Xe.Disabled,y),_(()=>e.qualitySettings?.tiledSurface.elevationLevelDelta,()=>this._updateAllTileGeometries()),_(()=>this._userClippingExtent,()=>this._updateClippingExtent(),T)]),this.addHandles(e.allLayerViews.on("after-changes",()=>this._layerViewsDirty=!0)),this._layerViewsDirty=!0,this._handleLayerViewChanges(),this._renderer.updateTileBackground(this.backgroundColor)}destroy(){this._frameTask.remove(),this._watchUpdatingTracking.destroy(),this._removeAllTiles(),this._set("tilingSchemeLogic",h(this.tilingSchemeLogic)),this._basemapLayerViewHandles.forEach((e,t)=>this._unregisterTiledLayerView(t)),this._elevationDataRequester=null,this._mapDataRequester=null,this._set("overlayManager",h(this.overlayManager)),this._tileCache=h(this._tileCache),this._allTiles.prune(),Ae.prune(),this._treeDebugger=h(this._treeDebugger),this._renderer.destroy(),this._iteratorPool=h(this._iteratorPool),this._upsampleMapCache=h(this._upsampleMapCache),this._elevationQueryCache=h(this._elevationQueryCache),this._set("view",null),this._extentHelper=h(this._extentHelper),this._upsampleInfoPool=h(this._upsampleInfoPool),Be(),this._layerViews.forEach(e=>e.length=0)}get renderer(){return this._renderer}get frustum(){return this._frustum}get snapLevel(){if(this.lodSnappingEnabled){const{view:e,tilingScheme:t}=this,i=e.scale;if(t&&i){const r=t.levelAtScale(i)+e.qualitySettings.tiledSurface.lodBias,s=t.getMaxLod();return r<=0?null:Math.min(r,s||1/0)}}return null}get lodSnappingEnabled(){return this.view.qualitySettings.tiledSurface.reduceTileLevelDifferences}get upsampleInfoPool(){return this._upsampleInfoPool}get upsampleMapCache(){return this._upsampleMapCache}get elevationQueryCache(){return this._elevationQueryCache}get hasStencilEnabledExtents(){return this._extentHelper.stencilEnabledExtents.length>0}get _userClippingExtent(){const{spatialReference:e}=this,{clippingArea:t}=this.view;if(null==t||null==e)return null;const i=R(),r=X(t,i,e)?i:null,s=this._get("extent");return I(r,s)?s:r}get rootTilesExtent(){return this._rootTilesExtent}get extent(){const e=j(this.groundExtent,this._userClippingExtent,R()),t=this._get("extent");return I(e,t)?t:e}get groundExtent(){return null!=this._tilingSchemeExtent?this._tilingSchemeExtent:this._rootTilesExtent}get _tilingSchemeExtent(){return this.tilingSchemeLogic?.extent}get updating(){return this._hasPendingUpdates||(this._maxNumUpdating=1),!!((this.running||this._watchUpdatingTracking?.updating||this._asyncWorkItems>0)&&this.ready&&!this.suspended||this.overlayManager?.updating||this.terrainTextureCompressionTracker.compressing)}get running(){return(this._hasPendingUpdates||this._viewChanged||this._allTilesDirty||!this._allTilesSorted||this._layerViewsDirty||this._scaleRangeQueries?.updating||this._frameTask.updating)&&this.ready&&!this.suspended}get updatingProgressValue(){return this._maxNumUpdating=Math.max(this._pendingUpdates,this._maxNumUpdating),1-this._pendingUpdates/this._maxNumUpdating}get baseOpacity(){return this.view?.map?.ground?.opacity??1}set baseOpacity(e){this.view.map.ground.opacity=e}get viewingMode(){return this.view.state.viewingMode}get ready(){return null!=this._rootTiles}set renderOrder(e){this._renderer.renderOrder=e,this._set("renderOrder",e)}get rootTiles(){return this._rootTiles}get spatialReference(){return this.tilingScheme?.spatialReference??null}get backgroundColor(){return this.view?.map?.ground?.surfaceColor}set backgroundColor(e){this.view.map.ground.surfaceColor=e}set slicePlaneEnabled(e){this._renderer.slicePlaneEnabled=e,this._set("slicePlaneEnabled",e),this._evaluateTransparency()}get tilingSchemeLocked(){return this.tilingSchemeLogic?.tilingSchemeLocked??!1}get wireframe(){return this._renderer?.wireframe}set wireframe(e){e!==this._renderer.wireframe&&(this._renderer.wireframe=e,this._updateAllTileGeometries())}get opaque(){return this._renderer.transparency===$e.Opaque}get invisible(){return this._renderer.transparency===$e.Invisible}set suspended(e){this._set("suspended",e),this._viewChangeUpdate()}get fadeDuration(){return this.view.qualitySettings.fadeDuration??0}intersect(e,t,i,r){this._renderer.intersect(e,t,i,r)}getElevationLevelDelta(e){return e<4?3:this.view.qualitySettings.tiledSurface.elevationLevelDelta}getElevation(e,t,i,r){const s=this._rootTiles;if(!s?.length)return null;if(0===s[0].layerInfo[re.ELEVATION].length)return null;let a=this._elevationProjectorCache.get(r);if(void 0===a&&(a=x(r,this._spatialReference)??null,this._elevationProjectorCache.set(r,a)),null==a)return l.getLogger(this).error("TerrainSurface.getElevation(): could not project given point to tiling scheme coordinate system"),null;const n=w(lt,e,t,i);a(n,0,n,0);return ct(s,n[0],n[1])}getElevations(e,t,i){const r=this._rootTiles,s=r?r[0].layerInfo[re.ELEVATION].length:0;if(r?.length&&0!==s)for(let a=0;a<t;++a){const t=3*a;i(a,ct(r,e[t],e[t+1]))}else for(let a=0;a<t;++a)i(a,null)}getLayerIndexByUID(e,t){return this._layerIndexByUid[e].get(t)}getScale(e){if(!this.tilingScheme)return null;if(!D(e,lt,this.spatialReference))return l.getLogger(this).error("TerrainSurface.getScale(): could not project given point to tiling scheme coordinate system"),null;const t=this._rootTiles;if(null!=t)for(const i of t)if(i?.containsPoint(lt)){let e=i;for(;e.children[0]&&!e.rendered;){const t=e.children[0].extent;let i=0;lt[0]>t[2]&&(i+=1),lt[1]<t[1]&&(i+=2),e=e.children[i]}return this._getLodBiasCorrectedScale(e.level)}return 1/0}_ensureProjector(e){const t=this._projectorCache.get(e);if(t)return t;const i=x(e,this._tilingSchemeSpatialReference)??null;return this._projectorCache.set(e,i),i}getSphereElevationBounds(e,t){const i=this._ensureProjector(t);if(null==i)return l.getLogger(this).error("TerrainSurface.getSphereElevationBounds(): could not project given point to tiling scheme coordinate system"),null;G(e,ot);const r=q(ot);i(r,0,r,0);const s=new Q,a=this._rootTiles;if(null!=a){const e=[];for(const i of a)e.push(i);let t=0;for(;t<e.length;){const i=e[t];if(++t,!A(i.extent,ot))continue;const r=i.children;if(null==r[0]||i.rendered)s.expandElevationRangeValues(i.elevationBoundsMin,i.elevationBoundsMax);else for(const t of r)e.push(t)}}return s}getRootElevationBounds(){return new Q(this.rootTileElevationBounds.min,this.rootTileElevationBounds.max)}getLowerBoundRadius(){const e=(this._ellipsoid.radius+this.visibleElevationBounds.min)*this._radiusModifier;return Math.min(e,this._ellipsoid.radius)}getSphereScale(e,t){if(!this.tilingScheme)return null;if(!D(e,q(ot),this.spatialReference))return l.getLogger(this).error("TerrainSurface.getSphereScale(): could not project given point to tiling scheme coordinate system"),null;ot[3]=t;let i=null;const r=e=>{if(e&&A(e.extent,ot)){const t=e.children;if(t[0]&&!e.rendered)for(const e of t)r(e);else{const t=this._getLodBiasCorrectedScale(e.level);i=null==i?t:Math.min(i,t)}}},s=this._rootTiles;if(null!=s)for(const a of s)r(a);return i}queryVisibleScaleRange(e,t,i,r){if(!this._scaleRangeQueries)return;const s=t?this.tilingScheme.levelAtScale(t):0,a=i?this.tilingScheme.levelAtScale(i):1/0,n=this._lodBias;this._scaleRangeQueries.queryVisibleLevelRange(e,s+n,a+n,r)}_evaluateTransparency(){const e=this.baseOpacity,t=this.overlayManager.renderer.isEmpty,i=this._renderer.transparency,r=this._isFullyTransparent?t?$e.Invisible:$e.InvisibleWithDraped:e>=1&&!this.hasCompositeBlendMode&&!this._renderer.slicePlaneEnabled?$e.Opaque:$e.Transparent;return this._renderer.transparency=r,i!==r}_updateTilingScheme(){const e=this.tilingSchemeLogic.tilingScheme;if(!(e!==this.tilingScheme))return;Te(!!e,"tiling scheme cannot be reset to undefined"),this._isGlobal=!this.view?.state?.isLocal,this.tilingScheme&&this._removeAllTiles();const t=e?.spatialReference??M.WebMercator;this._spatialReference=t,this._isWebMercator=!!t?.isWebMercator,this._isWebMercatorOnPlateCarree=this._isWebMercator&&O(this.view?.renderSpatialReference),this._isGeographic=t?.isGeographic??!1,this._set("tilingScheme",e),this._tilingSchemeSpatialReference=this.tilingScheme?.spatialReference,this._projectorCache.clear(),this._updateClippingExtent(),e&&(this._updateTiledLayers(),this._renderer.tileSize=e.pixelSize,this.overlayManager.spatialReference=e.spatialReference,this._updateRootTiles())}static{this._tileMemcacheKey="TerrainTileMemcache"}_acquireTile(e,t,i,r){const s=this._tileCache.pop(st._tileMemcacheKey);return s?(s.init(e,t,i,r,this),s):new this._tileConstructor(e,t,i,r,this)}get updatingRootTiles(){return this._updatingRootTiles}_updateRootTiles(){const{extent:e,tilingScheme:t}=this;if(!t)return;const i=ht;let s=t.rootTilesInExtent(e,i,5*pe);if(null!=this._rootTiles){if(s.length>pe)return void l.getLogger(this).warn(ue);const e=this._rootTiles.map(e=>e.lij),t=r(e,s,Ve);if(this._updatingRootTiles=!0,t.removed.length>0||t.added.length>0){const e=this._rootTiles.filter(e=>!(t.removed.findIndex(t=>Ve(t,e.lij))>-1)||(this._purgeTile(e),!1));t.added.forEach(t=>e.push(this._newRootTile(t))),this._setRootTiles(e)}}else this._updatingRootTiles=!0,s.length>pe&&(l.getLogger(this).warn(ce),s=t.rootTilesInExtent(e,i,pe)),this._setRootTiles(s.map(e=>this._newRootTile(e)));I(i,this._rootTilesExtent)||(this._rootTilesExtent=R(i)),this.renderer.visible=!0,this._viewChangeUpdate(),this.overlayManager.setPlacementDirty(),this.notifyChange("ready"),this._updateAllTileGeometries(),this._updatingRootTiles=!1,this.checkAllTilesWaterproofness()}_updateAllTileGeometries(){const e=this._allTiles.filter(e=>e.loaded&&e.intersectsClippingArea);e.sort(Ge),e.forEach(e=>this._renderer.updateTileGeometryState(e)),e.forEach(e=>e.renderData.updateNeighborData()),this._updateTilesGeometries(e),this._pendingTilesToUpdate.clear()}_updateTilesGeometries(e){if(0===e.length)return;e.sort(Ge);const t=this.renderer;e.forEach(e=>t.updateGeometryIfNeeded(e)),e.forEach(e=>this._pendingTilesForElevationUpdateEvent.add(e))}_shouldSplit(e){return e.shouldSplit(this._splitLimits,this._eyePosRenderSR,this.snapLevel)===ke.SPLIT}_newRootTile(e){const t=this._acquireTile(0,e[1],e[2],null);return this._shouldSplit(t)&&t.setPendingUpdate(ke.SPLIT),this._loadTile(t),this._markTileToUpdate(t),this._updateRootTileElevationBounds(),t}_setRootTiles(e){if(this._rootTiles=e,this._allTiles.clear(),null!=e){const t=this._iteratorPool.acquire();for(t.reset(e);!t.done;)this._allTiles.push(t.next());t.remove()}this._renderer.setRootTiles(this._rootTiles),this._updateTilesVisibility(e),this.notifyChange("demResolution"),this.emit("tiles-changed",{allTiles:this.allTiles})}_runViewChangeUpdateIfDirty(){this._viewChangeUpdateDirty&&(this._viewChangeUpdateDirty=!1,this._viewChangeUpdate())}_viewChangeUpdate(){this.view&&!this.suspended&&this.tilingScheme&&this.renderer.visible&&(this._inFrameTask?this._viewChangeUpdateDirty=!0:(this._viewChangeUpdateDirty=!1,this._updateViewDependentParameters(),this._updateTilesVisibility(this._rootTiles)))}_updateClippingStatus(e){e.updateClippingStatus(this.extent)&&e.resetPendingUpdate(ke.GEOMETRY)&&this._updateTileGeometryState(e)}_updateTilesVisibility(e){if(null==e)return;const t=Fe(e),i=this.visibleElevationBounds;let r=t?i.min:1/0,s=t?i.max:-1/0;const a=this.extent,n=this.view.state.contentCamera.viewProjectionMatrix;this.setTileTreeDirty();const l=this._iteratorPool.acquire();for(l.reset(e);!l.done;){const e=l.next();e.updateClippingStatus(a)&&e.resetPendingUpdate(ke.GEOMETRY)&&this._updateTileGeometryState(e),e.computeVisibility(),e.updateScreenDepth(n),e.renderData&&(r=Math.min(e.elevationBoundsMin,r),s=Math.max(e.elevationBoundsMax,s))}l.remove(),this._viewChanged=!0,this._allTilesDirty=!0,this._updatePendingTileGeometries(),isFinite(r)&&isFinite(s)&&(i.min!==r||i.max!==s)&&(this.visibleElevationBounds=new J(r,s))}_updateRootTileElevationBounds(){let e=1/0,t=-1/0;const i=this._rootTiles;null!=i&&i.forEach(({elevationBoundsMin:i,elevationBoundsMax:r})=>{e=Math.min(e,i),t=Math.max(t,r)});const r=this.rootTileElevationBounds;r.min===e&&r.max===t||(this.rootTileElevationBounds=new J(e,t))}_updateViewDependentParameters(){const{camera:e,contentCamera:t}=this.view.state,i=Math.tan(.5*t.fovX),r=Math.tan(.5*t.fovY),s=this.tilingScheme.pixelSize,a=2**-this._lodBias*e.pixelRatio;this._splitLimits.aboveGround=e.aboveGround,this._splitLimits.fovX=i,this._splitLimits.fovY=r,this._splitLimits.relativeWidthLimit=s/e.width*this.maxTextureScale*a,this._splitLimits.relativeHeightLimit=s/e.height*this.maxTextureScale*a,this._splitLimits.maxLod=this.tilingScheme.getMaxLod(),this._splitLimits.angledSplitBias=this.view.qualitySettings.tiledSurface.angledSplitBias,this.view.state.fixedContentCamera?this._splitLimits.frustum=N(this._splitLimits.frustum??k(),t.frustum):this._splitLimits.frustum=null,N(this._frustum,e.frustum),C(this._eyePosRenderSR,t.eye),U(e.eye,this.view.renderSpatialReference,this._eyePosSurfaceSR,this.spatialReference)}_updateTileGeometryState(e){e.updateVisibility();this._renderer.updateTileGeometryState(e)&&this._markTileToUpdate(e),this.setMemoryDirty()}_markAllTileNeighborsForUpdate(e){e.forEachLoadedNeighbor(e=>{this._layerViews[re.MAP].some(ye)&&e.setPendingUpdate(ke.TEXTURE_FADING),this._pendingTilesToUpdate.add(e)})}_updateTileTexture(e,t){const i=e.resetPendingUpdate(ke.TEXTURE_FADING)?ke.TEXTURE_FADING:!!e.resetPendingUpdate(ke.TEXTURE_NOFADING)&&ke.TEXTURE_NOFADING;i&&(this._renderer.updateTileTexture(e,i),this._usedMemory=null,t.madeProgress())}_emitElevationUpdateEventForTiles(){if(!this._shouldEmitChangeEvent)return;const e=pt.extent;V(e),this._pendingTilesForElevationUpdateEvent.forEach(t=>B(e,t.extent,e)),this._pendingTilesForElevationUpdateEvent.clear(),pt.spatialReference=this.spatialReference,this.emit("elevation-change",pt),this._shouldEmitChangeEvent=!1}runTask(e){this._handleLayerViewChanges(e),this._frameTask.processQueue(e),this.renderer.processScaleRangeQueries(this._scaleRangeQueries,e),this._inFrameTask=!0,this._pendingUpdates=0,this._hasPendingUpdates=!1,this._updateAllTilesStatus(e),this._sortTiles(e);const t=!this.view.state.fixedContentCamera;if(this._mergeAndSplit(e,t),this._updateElevation(e),this._updateTextures(e),t||this._mergeAndSplit(e,!0),this._inFrameTask=!1,this._runViewChangeUpdateIfDirty(),this._updatePendingTileGeometries(),this._emitElevationUpdateEventForTiles(),e.done&&e.hasProgressed&&this.requestUpdate(),this.notifyChange("updatingProgressValue"),xe&&this._checkTileInvariant(),!e.hasProgressed)return rt}_checkTileInvariant(){const e=new Map;this._allTiles.forAll(t=>e.set(t,new Set)),this._allTiles.forAll(t=>{if(Te(t.rendered===t.leaf,` rendered ${t.rendered} != ${t.leaf} leaf`),!t.leaf){const e=e=>0===e.unmergableChildCount&&0===e.maxLevelDeltaNeighborCount,i=t.children.reduce((t,i)=>t+(e(i)?0:1),0);if(Te(t.unmergableChildCount===i,` Tile[${t.lij.toString()}] unmergeable child count mismatch: actual ${t.unmergableChildCount} vs ${i}`),t.hasPendingUpdate(ke.MERGE)){Te(!t.hasPendingUpdate(ke.SPLIT),"Tile can be both split and merge at the same time");for(const e of t.children)Te(e.leaf||e.hasPendingUpdate(ke.MERGE),"Child of tile to merge must also merge")}}for(let i=0;i<4;++i){if(t.rendered){const e=t.renderData?.geometryState.edgePeerNeighbors[i];if(null!=e){{const r=t.level-e.level<=ge;r||(console.log(`tile level delta [${t.lij.toString()}] vs [${e.lij.toString()}] > ${ge} (edge[${i}])`),Te(r,`tile level delta [${t.level}] vs [${e.level}] > ${ge}`))}Te(t.level-e.level<=ge,`Max tile lod delta exceeded: [${t.lij.toString()}] vs [${e.lij.toString()}]`)}}const r=t.level-ge,s=e=>e.leaf||e.level===t.level,a=t.findNeighborTile(ve[i],s);if(null!=a){if(t.leaf&&t.level>=ge){let i=a;for(;t.level-i.level<ge;)i=i.parent;const s=[r,t.lij[1]>>ge,t.lij[2]>>ge];if(!Ve(s,i.lij)){const r=e.get(i);Te(!r.has(t),"Cannot already have neighbor"),r.add(t)}}Te(a.rendered||a.level===t.level,"Non-same-level-neighbor of rendered must be rendered"),Te(t.level-a.level<=ge,`Tile level delta [${t.level}] vs [${a.level}] > ${ge}`)}}}),this._allTiles.forAll(t=>{const i=t.maxLevelDeltaNeighborCount,r=e.get(t);Te(i===r.size,`Tile[${t.lij.toString()}] merge-blocker mismatch: actual ${i} vs ${r.size}`)})}_updateAllTilesStatus(e){if(!this._viewChanged||!this._rootTiles||e.done)return;this._viewChanged=!1;const t=new gt(this._allTiles.length);t.pushAll(this._rootTiles);const i=this.snapLevel,r=this._splitLimits,s=this._eyePosRenderSR;this._allTiles.forAll(e=>{e.maxLevelDeltaNeighborCount=0,e.unmergableChildCount=0});const a=this.view.state.contentCamera.viewProjectionMatrix;for(;!t.empty;){const e=t.pop(),n=e.parent,l=null!=n&&n.hasPendingUpdate(ke.MERGE),o=l?ke.MERGE:e.shouldSplit(r,s,i),h=o===ke.SPLIT;e.leaf?mt(e,h):t.pushAll(e.children),l?(e.resetPendingUpdate(ke.SPLIT),e.leaf||e.setPendingUpdate(ke.MERGE),this._updateClippingStatus(e),e.updateVisibility(),e.updateScreenDepth(a)):h?(e.resetPendingUpdate(ke.MERGE),e.leaf&&e.setPendingUpdate(ke.SPLIT)):(e.resetPendingUpdate(ke.SPLIT)&&e.updateAgentSuspension(),o===ke.ELEVATION&&e.updateAgents(re.ELEVATION),e.leaf||(e.setPendingUpdate(ke.MERGE),e.resetPendingUpdate(ke.SPLIT)))}this.requestUpdate(),(this._shortBatches||!this._oneBatchPerFrameTask)&&this._updatePendingTileGeometries(),e.madeProgress()}_sortTiles(e){e.done||this._allTilesSorted||(qe(this._allTiles,this.view.pointsOfInterest.focus.renderLocation),this._allTilesSorted=!0,this._treeDebugger&&this._treeDebugger.update(),e.madeProgress())}_markTileToUpdate(e){Ee(e.loaded),e.intersectsClippingArea&&(this._pendingTilesToUpdate.add(e),this._markAllTileNeighborsForUpdate(e))}_updatePendingTileGeometries(){const e=this._pendingTilesToUpdate,t=Array.from(e.keys()).filter(e=>e.loaded&&e.intersectsClippingArea);if(0===t.length)return void e.clear();const i=(i,r)=>{!r?.loaded||!r.intersectsClippingArea||r.level<i.level||e.has(r)||(e.add(r),t.push(r),r.renderData.updateNeighborData())};t.sort(Ge);const r=t.length;for(let s=0;s<r;++s){const r=t[s];Ee(r.loaded),Ee(r.intersectsClippingArea);const a=r.renderData;a.updateNeighborData();const n=a.dirtyEdgeResolutions,l=a.geometryState,o=e=>{const t=je[e];i(r,l.cornerPeerNeighbors[e]?.findCorner(De(t),e=>e.loaded))};for(let t=0;t<4;++t)if(n&1<<t){const s=a.geometryState.edgePeerNeighbors[t];s&&s?.level>=r.level&&s.forAllSubtreeOnSide(Se(ve[t]),t=>!(!t.loaded||!t.intersectsClippingArea)&&(Ee(e.has(t)||Ge(r,t)<0),i(r,t),!0)),o((t+1)%4),o(t)}}e.clear(),this._updateTilesGeometries(t),this._shouldEmitChangeEvent=!0,xe&&Ue&&this.checkAllTilesWaterproofness()}_mergeAndSplit(e,t){if(this.suspended||e.done||!this._allTilesDirty)return;this._allTilesDirty=!1,this.requestUpdate();let i=!1;const r=this.view.state.fixedContentCamera;let s=!1;for(;!e.done;){s=!0;let a=!1;const n=!this._allTiles.some(s=>{if(!i&&!r&&!s.visible)return e.done;let n=s;if(s.hasPendingUpdate(ke.MERGE)){if(!t||s.unmergableChildCount>0)return e.done;for(s.resetPendingUpdate(ke.MERGE);null!=n.parent&&0===n.parent.unmergableChildCount&&n.parent.resetPendingUpdate(ke.MERGE);)n=n.parent;this._mergeTile(n),a=!0,e.madeProgress()}else if(s.resetPendingUpdate(ke.SPLIT)){let t=!0;const i=s.level;if(i>=ge){const e=e=>e.leaf||i-e.level<ge;for(let r=0;r<4;++r){const a=s.findNeighborTile(ve[r],e);null!=a&&i-a.level===ge&&(t=!1,xe&&(Ee(a.leaf),Ee(a.hasPendingUpdate(ke.SPLIT))))}}t?(this._splitTile(s),e.madeProgress(),a=!0):s.setPendingUpdate(ke.SPLIT)}return e.done});if(a&&(this._allTilesSorted=!1,this._allTilesDirty=!0,!this._oneBatchPerFrameTask&&this._updatePendingTileGeometries()),n){if(!i){i=!0;continue}if(!a)break}else this._allTilesDirty=!0}s?e.madeProgress():this._allTilesDirty=!0,!this._oneBatchPerFrameTask&&this._updatePendingTileGeometries(),this._sortTiles(e)}_updateElevation(e){e.done||(this._allTiles.some(t=>(t.resetPendingUpdate(ke.GEOMETRY)&&(this._updateTileGeometryState(t),this._shortBatches&&this._updatePendingTileGeometries(),e.madeProgress()),e.done)),!this._oneBatchPerFrameTask&&this._updatePendingTileGeometries())}_updateTextures(e){e.done||this._allTiles.some(t=>(this._updateTileTexture(t,e),e.done))}_updateClippingExtent(){this.spatialReference&&(this.overlayManager?.updateOverlayParameters(Ye.UPDATE),this.overlayManager.setPlacementDirty(),this._updateRootTiles())}get _lodBias(){const e=this.view.quality;return this.view.qualitySettings.tiledSurface.lodBias-(1-e)*me}_getLodBiasCorrectedScale(e){const t=this.tilingScheme.levels,i=o(e-this._lodBias,0,t.length-1),r=i-Math.floor(i);return t[Math.floor(i)].scale*(1-r)+t[Math.ceil(i)].scale*r}_removeAllTiles(){null!=this._rootTiles&&(this._rootTiles.forEach(e=>this._purgeTile(e)),this._setRootTiles(null),this.notifyChange("ready")),this._allTiles.clear(),this.notifyChange("demResolution"),this.emit("tiles-changed",{allTiles:this.allTiles}),this.renderer.visible=!1}_purgeSubtree(e){const t=e.children;t[0]&&(this._purgeTile(t[0]),this._purgeTile(t[1]),this._purgeTile(t[2]),this._purgeTile(t[3]),e.clearChildren())}_purgeTile(e){e.leaf?ft(e):this._purgeSubtree(e),this._allTiles.removeUnordered(e),this._unloadTile(e),e.dispose(),this._tileCache.put(st._tileMemcacheKey,e),this.notifyChange("demResolution"),this.emit("tiles-changed",{allTiles:this.allTiles})}_unloadTile(e){this._pendingTilesToUpdate.delete(e),this._pendingTilesForElevationUpdateEvent.delete(e),e.unload()}_splitTile(e){Te(e.leaf,"Tile that is already split should not be split again!"),Te(e.rendered,"Tile marked to split is not rendered"),ft(e);const t=e.createChildren();this._allTiles.pushArray(t),this.notifyChange("demResolution"),this.emit("tiles-changed",{allTiles:this.allTiles}),e.updateAgentSuspension(),Te(e.rendered,"parent should be rendered"),t.forEach(e=>this._loadTile(e)),t.forEach(e=>this._pendingTilesToUpdate.add(e)),this._unloadTile(e),this._markAllTileNeighborsForUpdate(e),this._emitTileScaleChange(e,e.level+1),this._allTilesDirty=!0,this._shortBatches&&this._updatePendingTileGeometries(),t.forEach(e=>mt(e,e.hasPendingUpdate(ke.SPLIT))),++this._performanceInfo.numSplit}_emitTileScaleChange(e,t=e.level){ut.spatialReference=this.spatialReference,ut.extent=e.extent,ut.scale=this._getLodBiasCorrectedScale(t),this.emit("scale-change",ut)}createTile(e,t,i,r){Te(!!r,"createTile sanity check");const s=this._acquireTile(e,t,i,r);return s.updateClippingStatus(this.extent),s.updateScreenDepth(this.view.state.contentCamera.viewProjectionMatrix),this._shouldSplit(s)&&s.setPendingUpdate(ke.SPLIT),s}get _shortBatches(){return this.view.state.mode!==Je.IDLE}_mergeTile(e){Te(!e.hasPendingUpdate(ke.SPLIT),"_mergeTile sanity check"),Te(!e.leaf,"Cannot merge a leaf"),e.leaf||(this._purgeSubtree(e),Te(!e.renderData,"Merging tile with existing render data?"),this._loadTile(e),this._markTileToUpdate(e),this._emitTileScaleChange(e),this._shortBatches&&this._updatePendingTileGeometries(),mt(e,!1),this._allTilesDirty=!0,++this._performanceInfo.numMerged)}_loadTile(e){e.load(),this.requestUpdate(),this._allTilesDirty=!0,this.overlayManager?.hasOverlays&&this.overlayManager.updateTileOverlayParameters(e)}_handleLayerViewChanges(e=tt){if(!this._layerViewsDirty)return;this._layerViewsDirty=!1;let t=!1;const i=new Set;let r=-1;for(let s=this.view.allLayerViews.length-1;s>=0;s--){const e=this.view.allLayerViews.items[s];if(i.add(e.uid),we(e)||Ce(e))if(this._basemapLayerViewHandles.has(e.uid)&&!Ce(e)){const i=this._layerClassFromLayerView(e),s=this.getLayerIndexByUID(i,e.uid);null!=s&&((s<r||null==r)&&(t=!0),r=s)}else this._registerTiledLayerView(e),e.layer.loaded&&(t=!0)}this._basemapLayerViewHandles.forEach((e,r)=>{i.has(r)||(this._unregisterTiledLayerView(r),t=!0)}),t&&this._updateTiledLayers(),this.hasCompositeBlendMode=this._hasCompositeBlendMode(),this._evaluateTransparency(),e.madeProgress()}get _isFullyTransparent(){if(this.view.map?.ground?.opacity>0)return!1;for(const e of this.view.allLayerViews.items)if(be(e)&&!$(e.layer)&&0!==e.fullOpacity)return!1;return!0}_hasCompositeBlendMode(){for(const e of this.view.allLayerViews.items)if((Le(e)||Ce(e))&&Qe(ze[e.layer.blendMode]))return!0;return!1}_layerClassFromLayerView(e){return Pe(e)?re.ELEVATION:re.MAP}_registerTiledLayerView(e){const t=[];if((Le(e)||Ce(e))&&t.push(_(()=>e.layer.blendMode,()=>{this.hasCompositeBlendMode=this._hasCompositeBlendMode(),this._updateTileTextures(ie.UNFADED)})),!Ce(e)){const i=this._layerClassFromLayerView(e);t.push(_(()=>e.suspended,()=>this._updateTiledLayers())),t.push(_(()=>e.fullOpacity,()=>this._updateTileTextures(ie.UNFADED))),t.push(_(()=>"effectiveScaleRange"in e.layer?e.layer.effectiveScaleRange:null,()=>this._restartAllAgents(i))),t.push(e.on("data-changed",()=>{const t=this.getLayerIndexByUID(i,e.uid);null!=t&&this._invalidateLayerData(t,i)}))}this._unregisterTiledLayerView(e.uid),this._basemapLayerViewHandles.set(e.uid,t)}_unregisterTiledLayerView(e){const t=this._basemapLayerViewHandles.get(e);if(t){for(const e of t)e.remove();this._basemapLayerViewHandles.delete(e)}}_updateTiledLayers(){if(!this.tilingScheme||this.view.suspended)return;const e=this.view.allLayerViews,t=[[],[]];let i=null;e.forEach(e=>{if(!e.layer||e.suspended||!we(e)||!e.fullExtent)return;const r=this._layerClassFromLayerView(e);if(r===re.MAP){const t=e.displayLevelRange.maxLevel;t!==1/0&&(null===i||t>i)&&(i=t)}t[r].push(e)});for(const r of se){const e=this._layerViews[r],i=t[r];i.reverse();const s=i.length;let a=e.length!==s;const n=new Array(s),l=new Array(e.length);this._layerIndexByUid[r].clear();for(let t=0;t<s;t++){const s=i[t].uid;this._layerIndexByUid[r].set(s,t);const o=e.indexOf(i[t]);n[t]=o,t!==o&&(a=!0),o>-1&&(l[o]=t)}if(a){const e=this._postorderIterator;for(e.reset(this._rootTiles);!e.done;)e.next().modifyLayers(l,n,r);this._layerViews[r]=i,this._restartAllAgents(r),this._updateTilesVisibility(this._rootTiles)}}this.tilingScheme.ensureMaxLod(i)&&(this._viewChangeUpdate(),this.notifyChange("tilingScheme"))}_restartAllAgents(e){const t=this._postorderIterator;for(t.reset(this._rootTiles);!t.done;){const i=t.next();i.restartAgents(e),e===re.ELEVATION&&i.computeElevationBounds()}this._updateRootTileElevationBounds()}layerViewByIndex(e,t){return this._layerViews[t][e]}numLayers(e){return this._layerViews[e].length}_updateTileTextures(e){this._allTiles.forAll(t=>{t.updateAgents(re.MAP),e===ie.IMMEDIATE?this.renderer.updateTileTexture(t,ke.TEXTURE_NOFADING):t.updateRenderData(re.MAP,e)}),this._evaluateTransparency()}_invalidateLayerData(e,t){this._allTiles.forAll(i=>i.removeLayerAgent(e,t)),this._allTiles.forAll(i=>i.invalidateLayerData(e,t))}setTileTreeDirty(){this._allTilesDirty=!0}requestRender(e=Ye.UPDATE){this.renderer.setNeedsRender(e)}requestUpdate(){1===++this._pendingUpdates&&(this._hasPendingUpdates=!0)}requestTileData(e,t,i,r){const s=this.layerViewByIndex(t,i),a=s.layer;return!a.tilemapCache||ye(s)?this._requestTileData(e,i,s,r):(++this._asyncWorkItems,a.tilemapCache.fetchAvailability(e.level,e.lij[1],e.lij[2],{...r,timeout:6e3}).then(()=>--this._asyncWorkItems).catch(t=>{throw--this._asyncWorkItems,c(r),g(t)||this._dataMissing(e,i,s),t}).then(()=>this._frameTask.schedule(()=>this._requestTileData(e,i,s,r),r.signal)))}_requestTileData(e,t,i,r){if(this.destroying)return Promise.resolve();const s=t===re.ELEVATION;return r.requester??=s?this._elevationDataRequester:this._mapDataRequester,s?Pe(i)?this._requestElevationTileData(e,i,r):Promise.reject():be(i)?this._requestMapTileData(e,i,r):Promise.reject()}_requestElevationTileData(e,t,i){++this._asyncWorkItems;const r=r=>{!m(i)&&r&&(this.setMemoryDirty(),this.requestUpdate(),this._elevationDataArrived(e,t,r))},s=i=>{g(i)||(l.getLogger(this).error(`Tile ${e.lij.toString()} layer ${re.ELEVATION}/${t.uid} error ${i}`),this._dataMissing(e,re.ELEVATION,t),this.requestUpdate())};return t.fetchElevationTile(e,i).then(e=>this._frameTask.schedule(()=>r(e)),s).finally(()=>--this._asyncWorkItems)}_elevationDataArrived(e,t,i){const r=this._layerIndexByUid[re.ELEVATION].get(t.uid);if(null==r)return void l.getLogger(this).warn("TerrainSurface: received data from unknown layer %d %s",re.ELEVATION,e.lij.toString());const s=new Z(e.lij,e.extent,i);e.dataArrived(r,re.ELEVATION,s),this.emit("tile-data-changed",{tile:e,layerIndex:r,layerClass:re.ELEVATION});const a=[e],n=e.level,o=this._iteratorPool.acquire();for(o.reset(a);!o.done;){const e=o.next();e.findElevationBoundsForLayer(r,n),e.computeElevationBounds()}0===n&&this._updateRootTileElevationBounds(),o.remove(),this._updateTilesVisibility(a)}_requestMapTileData(e,t,i){++this._asyncWorkItems;const r=(r,s)=>{Me(s),m(i)||(console.error(`Tile ${e.lij.toString()} layer ${re.MAP}/${t.uid} error ${r}`),this._dataMissing(e,re.MAP,t),this.requestUpdate())},s=e=>t=>r(t,e),a=r=>this._frameTask.schedule(()=>{this.requestUpdate(),m(i)?Me(r):this._mapTileDataArrived(e,t,r)},i.signal,s(r)).catch(s(r)),n=(e,t=null)=>this._frameTask.schedule(()=>r(e,t));return t.fetchTile(e.lij,i).then(a,n).finally(()=>--this._asyncWorkItems)}_mapTileDataArrived(e,t,i){const r=this.getLayerIndexByUID(re.MAP,t.uid);if(null==r)return Me(i),void l.getLogger(this).warn("TerrainSurface: received data from unknown layer");e.dataArrived(r,re.MAP,i),this.emit("tile-data-changed",{tile:e,layerIndex:r,layerClass:re.MAP})}_dataMissing(e,t,i){const r=this.getLayerIndexByUID(t,i.uid);null!=r?(e.dataMissing(r,t),this.emit("tile-data-changed",{tile:e,layerIndex:r,layerClass:t})):l.getLogger(this).warn("TerrainSurface: received data from unknown layer")}get performanceInfo(){const e=this._performanceInfo;return e.numNodes=this._allTiles.length,e.numLeaves=e.numVisible=e.numRendered=e.numLoadedPerLevel.length=e.numRenderedPerLevel.length=0,this._allTiles.forAll(t=>{t.leaf&&e.numLeaves++;const i=t.level;t.renderData&&(e.numLoadedPerLevel[i]=(e.numLoadedPerLevel[i]||0)+1),t.visible&&(e.numVisible++,t.rendered&&(e.numRenderedPerLevel[i]=(e.numRenderedPerLevel[i]||0)+1,e.numRendered++))}),e}setMemoryDirty(){this._usedMemory=null}get usedMemory(){return this.tilingScheme?(null==this._usedMemory&&(this._usedMemory=this._recalculateUsedMemory()),this._usedMemory??0):0}_recalculateUsedMemory(){return this.tilingScheme?Math.round(this._allTiles.reduce((e,t)=>e+t.usedMemory,0)):null}getUsedMemoryForLayerView(e){let t=0;const i=this._layerClassFromLayerView(e),r=this.getLayerIndexByUID(i,e.uid);return null!=r&&this._allTiles.forAll(e=>t+=e.getUsedMemoryForLayer(i,r)),t}get renderPatchBorders(){return this._renderer.renderPatchBorders}set renderPatchBorders(e){this._renderer.renderPatchBorders=e}get visualizeNormals(){return this._renderer.visualizeNormals}set visualizeNormals(e){this._renderer.visualizeNormals=e}get renderingDisabled(){return this._renderer.renderingDisabled}set renderingDisabled(e){this._renderer.renderingDisabled=e}get test(){}checkAllTilesWaterproofness(){if(!Ue)return;const e=this._rootTiles;if(null==e)return;const t=e=>e?.renderData?.geometry?.indices?.length>0,i=(e,i)=>{t(e)&&console.error("Tile[",e.lij,"] has geometry although parent[",i.lij,"] has geom")},r=e=>{if(e.intersectsClippingArea)if(e.renderData&&!e.renderData.geometryState&&console.error("Tile[",e.lij,"] has renderData but not geometryState"),e.renderData&&!e.renderData.geometry&&console.error("Tile[",e.lij,"] has renderData but not geometryInfo"),!e.renderData?.geometry||(e.renderData.geometry.indices?.length??0)>0||console.error("Tile[",e.lij,"] has renderData but no indices - geometryInfo: ",e.renderData.geometry),t(e)){e.checkGeometryWaterproofness();for(const t of e.children)i(t,e)}else if(e.leaf)console.error("Tile[",e.lij,"] has no geometry and no children, from root to leaf");else for(const t of e.children)r(t)},s=e=>{const t=e.parent?.visible??!0,i=e.visible;e.computeVisibility();const r=e.visible;if(i!==r&&t&&console.error(" Tile[",e.lij,"] has out of date visibility: ",i," instead of ",r),!e.leaf)for(const a of e.children)s(a)};for(const a of e)r(a),s(a)}get isGlobal(){return this._isGlobal}get isGeographic(){return this._isGeographic}get isWebMercator(){return this._isWebMercator}get isWebMercatorOnPlateCarree(){return this._isWebMercatorOnPlateCarree}isEastEndWrap(e){return this._isGlobal&&e[2]===this.lijEastEnd(e[0])-1}isWestEndWrap(e){return this._isGlobal&&0===e[2]}lijEastEnd(e){return 1<<e+(this._isGeographic?1:0)}wrapEastWest(e){const t=this.lijEastEnd(e[0]),i=e[2];if(0<=i&&i<t)return e;if(!this._isGlobal)return null;const r=(i+(i<0?t:0))%t;return[e[0],e[1],r]}enableInternalChecks(e){Re(e)}enableWaterproofnessChecks(e){Ie(e)}static cleanupTerrainSurface(){dt.prune()}};e([E()],at.prototype,"_renderer",void 0),e([E({constructOnly:!0})],at.prototype,"_scaleRangeQueries",void 0),e([E({constructOnly:!0})],at.prototype,"view",void 0),e([E({constructOnly:!0})],at.prototype,"overlayManager",void 0),e([E({constructOnly:!0})],at.prototype,"terrainTextureCompressionTracker",void 0),e([E()],at.prototype,"_hasPendingUpdates",void 0),e([E()],at.prototype,"_asyncWorkItems",void 0),e([E()],at.prototype,"_allTilesDirty",void 0),e([E()],at.prototype,"_allTilesSorted",void 0),e([E()],at.prototype,"_viewChanged",void 0),e([E({type:Number})],at.prototype,"heading",void 0),e([E()],at.prototype,"_splitLimits",void 0),e([E({readOnly:!0})],at.prototype,"_watchUpdatingTracking",void 0),e([E()],at.prototype,"_frameTask",void 0),e([E()],at.prototype,"demResolution",null),e([E({readOnly:!0})],at.prototype,"snapLevel",null),e([E({readOnly:!0})],at.prototype,"lodSnappingEnabled",null),e([E()],at.prototype,"_userClippingExtent",null),e([E()],at.prototype,"_rootTilesExtent",void 0),e([E({readOnly:!0})],at.prototype,"extent",null),e([E({readOnly:!0})],at.prototype,"groundExtent",null),e([E({readOnly:!0})],at.prototype,"_tilingSchemeExtent",null),e([E({readOnly:!0})],at.prototype,"updating",null),e([E({readOnly:!0})],at.prototype,"running",null),e([E(K)],at.prototype,"updatingProgress",void 0),e([E({readOnly:!0})],at.prototype,"updatingProgressValue",null),e([E()],at.prototype,"_maxNumUpdating",void 0),e([E()],at.prototype,"baseOpacity",null),e([E()],at.prototype,"hasCompositeBlendMode",void 0),e([E({readOnly:!0})],at.prototype,"viewingMode",null),e([E()],at.prototype,"maxTextureScale",void 0),e([E({readOnly:!0})],at.prototype,"ready",null),e([E({value:le.FRONT_TO_BACK})],at.prototype,"renderOrder",null),e([E({readOnly:!0})],at.prototype,"rootTiles",null),e([E()],at.prototype,"_rootTiles",void 0),e([E({readOnly:!0})],at.prototype,"spatialReference",null),e([E({type:t})],at.prototype,"backgroundColor",null),e([E({value:!1})],at.prototype,"slicePlaneEnabled",null),e([E({readOnly:!0})],at.prototype,"tilingScheme",void 0),e([E({readOnly:!0})],at.prototype,"tilingSchemeLocked",null),e([E({readOnly:!0})],at.prototype,"tilingSchemeLogic",void 0),e([E()],at.prototype,"wireframe",null),e([E({value:!1})],at.prototype,"suspended",null),e([E()],at.prototype,"fadeDuration",null),e([E()],at.prototype,"visibleElevationBounds",void 0),e([E()],at.prototype,"rootTileElevationBounds",void 0),e([E()],at.prototype,"_layerViewsDirty",void 0),e([E()],at.prototype,"renderPatchBorders",null),e([E()],at.prototype,"visualizeNormals",null),e([E()],at.prototype,"renderingDisabled",null),at=st=e([S("esri.views.3d.terrain.TerrainSurface")],at);const nt=at,lt=b(),ot=F(),ht=R(),dt=new u,pt=new z("ground"),ut={spatialReference:null,extent:null,scale:0};function ct(e,t,i){for(const r of e){if(!r.containsPointXY(t,i))continue;let e=r;for(;e&&!e.renderData;){const r=(t>e.extentMidX?1:0)+(i<e.extentMidY?2:0);e=e.children[r]}const s=e?.renderData?.geometryState.samplerData??null;return ee(t,i,s)}return null}class gt{constructor(e){this.capacity=e,this._head=0,this._tail=0,this._data=new Array(e)}push(e){const t=this._tail;if(!(t<this.capacity))throw new Error("Queue full");this._data[t]=e,this._tail=t+1}pushAll(e){const t=e.length;if(0===t)return;const i=this._tail;if(!(i+t<=this.capacity))throw new Error("Queue full");for(let r=0;r<t;++r)this._data[i+r]=e[r];this._tail=i+t}pop(){const e=this._head;if(e<this._tail){const t=this._data[e];return this._head=e+1,t}}get empty(){return this._head>=this._tail}get full(){return this._tail>=this._data.length}}function mt(e,t){!e.leaf||e.level<ge||yt(e,e=>{t&&_t(e);const i=Tt(e);if(e.maxLevelDeltaNeighborCount++,i){let t=e.parent;for(;t;){const e=Tt(t);if(t.unmergableChildCount++,!e)break;t=t.parent}}})}function _t(e){if(e.hasPendingUpdate(ke.SPLIT))return;let t=e.parent;for(;t?.resetPendingUpdate(ke.MERGE);)t=t.parent;e.resetPendingUpdate(ke.MERGE),e.leaf&&e.setPendingUpdate(ke.SPLIT),e.level<ge||yt(e,e=>{_t(e)})}function ft(e){e.level<ge||yt(e,e=>{if(e.maxLevelDeltaNeighborCount--,0===e.maxLevelDeltaNeighborCount&&0===e.unmergableChildCount){let t=e.parent;for(;t&&(t.unmergableChildCount--,Tt(t));)t=t.parent}})}function Tt(e){return 0===e.maxLevelDeltaNeighborCount&&0===e.unmergableChildCount}function yt(e,t){if(e.level<ge)return;const i=e.level-ge,r=e.lij[1]>>ge,s=e.lij[2]>>ge,a=e=>e.leaf||e.level===i;for(let n=0;n<4;++n){const l=e.findNeighborTile(ve[n],a);if(!l||l.level!==i)continue;const o=l.lij;o[1]===r&&o[2]===s||t(l)}}export{nt as default};
5
+ import{_ as e}from"../../../chunks/tslib.es6.js";import t from"../../../Color.js";import i from"../../../core/Accessor.js";import{difference as r}from"../../../core/arrayUtils.js";import s from"../../../core/CollectionFlattener.js";import{toConst as a}from"../../../core/compilerUtils.js";import n from"../../../core/Evented.js";import"../../../core/has.js";import l from"../../../core/Logger.js";import{clamp as o}from"../../../core/mathUtils.js";import{destroyMaybe as h}from"../../../core/maybe.js";import{MemCachePool as d}from"../../../core/MemCachePool.js";import u from"../../../core/ObjectPool.js";import p from"../../../core/PooledArray.js";import{throwIfAborted as c,isAbortError as g,isAborted as _}from"../../../core/promiseUtils.js";import{watch as m,syncAndInitial as f,sync as y,initial as T}from"../../../core/reactiveUtils.js";import{getMetersPerUnitForSR as v}from"../../../core/unitUtils.js";import{property as w}from"../../../core/accessorSupport/decorators/property.js";import{subclass as S}from"../../../core/accessorSupport/decorators/subclass.js";import{i as C,c as b}from"../../../chunks/vec32.js";import{create as x}from"../../../core/libs/gl-matrix-2/factories/vec3f64.js";import{UpdatingHandles as E}from"../../../core/support/UpdatingHandles.js";import{getReferenceEllipsoid as L}from"../../../geometry/ellipsoidUtils.js";import P from"../../../geometry/SpatialReference.js";import{getProjector as U}from"../../../geometry/projection/projectors.js";import{projectPointToVector as M}from"../../../geometry/projection/projectPointToVector.js";import{projectVectorToVector as D}from"../../../geometry/projection/projectVectorToVector.js";import{create as j,equals as R,intersection as B,intersectsSphere as I,empty as k,expand as A}from"../../../geometry/support/aaBoundingRect.js";import{create as V,copy as O}from"../../../geometry/support/frustum.js";import{isPlateCarree as q}from"../../../geometry/support/spatialReferenceUtils.js";import{h as G,c as N,a as F}from"../../../chunks/sphere.js";import{ElevationQueryTileCache as W}from"../../../layers/support/ElevationQueryTileCache.js";import{isBaseLayer as H}from"../../../layers/support/layerUtils.js";import{debugFlags as $}from"../support/debugFlags.js";import{ElevationRange as Q}from"../support/ElevationRange.js";import{ElevationUpdateEvent as z}from"../support/ElevationUpdateEvent.js";import{toBoundingRect as Y}from"../support/extentUtils.js";import{updatingProgress as X}from"../support/updatingProperties.js";import{ElevationBounds as K}from"./ElevationBounds.js";import{ElevationData as J,sampleElevation as Z}from"./ElevationData.js";import{create as ee}from"./ExtentHelper.js";import{LayerClasses as te}from"./LayerClass.js";import{OverlayManager as ie}from"./OverlayManager.js";import{PlanarPatch as re}from"./PlanarPatch.js";import{ScaleRangeQueries as se}from"./ScaleRangeQueries.js";import{SphericalPatch as ae}from"./SphericalPatch.js";import{SplitLimits as ne}from"./SplitLimits.js";import{maxRootTiles as le,tooManyRootTilesAfterChangeError as oe,tooManyRootTilesForLayerError as he,maxTileNeighborLevelDelta as de,maxMemoryLodBias as ue}from"./TerrainConst.js";import{TerrainRenderer as pe}from"./TerrainRenderer.js";import ce from"./TerrainSurfacePerformanceInfo.js";import{weakAssert as ge,isVectorTileLayerView as _e,neighborEdgeIndices as me,internalAssert as fe,oppositeEdge as ye,isSurfaceLayerView as Te,isGroupLayerView as ve,isMapTileLayerView as we,isBlendableLayerView as Se,isElevationLayerView as Ce,releaseTerrainData as be,enableTerrainInternalChecks as xe,oppositeCorner as Ee,enableWaterproofTests as Le,enableInternalTerrainChecks as Pe,enableTerrainWaterproofChecks as Ue,neighborCornerIndices as Me}from"./terrainUtils.js";import{Tile as De,lijEquals as je}from"./Tile.js";import{printAllocations as Re}from"./TilePerLayerInfo.js";import{IteratorPreorder as Be,IteratorPostorder as Ie,compareTilesByLij as ke,hasLoadableSiblings as Ae,sortTilesByPOI as Ve}from"./tileUtils.js";import{TilingSchemeLogic as Oe}from"./TilingSchemeLogic.js";import{UpsampleInfo as qe}from"./UpsampleInfo.js";import{isCompositeBlendMode as Ge,blendModeFromString as Ne}from"../webgl-engine/core/shaderLibrary/output/BlendOptions.js";import{hasLayerBasedScaleVisibility as Fe}from"../../support/layerViewUtils.js";import{ImmediateTask as We,TaskPriority as He,noBudget as $e}from"../../support/Scheduler.js";import{TextureCompressionTracker as Qe}from"../../support/TextureCompressionTracker.js";import{Yield as ze}from"../../support/Yield.js";var Ye;let Xe=class extends(n.EventedMixin(i)){static{Ye=this}get allTiles(){return a(this._allTiles)}get demResolution(){const{_allTiles:e,tilingScheme:t}=this;if(0===e.length)return{min:1,max:1};const i=v(t.spatialReference);let r=Number.POSITIVE_INFINITY,s=Number.NEGATIVE_INFINITY;for(const a of e){const e=t.resolutionAtLevel(a.level)*i;r=Math.min(r,e),s=Math.max(s,e)}return{min:r,max:s}}constructor(e){super(e),this.terrainTextureCompressionTracker=new Qe,this._iteratorPool=new u(Be,e=>e.remove=()=>this._iteratorPool.release(e)),this._postorderIterator=new Ie,this._hasPendingUpdates=!1,this._pendingUpdates=0,this._asyncWorkItems=0,this._allTilesDirty=!0,this._allTilesSorted=!0,this._usedMemory=null,this._performanceInfo=new ce,this._viewChanged=!1,this.heading=0,this._inFrameTask=!1,this._viewChangeUpdateDirty=!1,this._eyePosRenderSR=x(),this._eyePosSurfaceSR=x(),this._splitLimits=new ne,this._frustum=V(),this._layerViews=[new Array,new Array],this._layerIndexByUid=[new Map,new Map],this._basemapLayerViewHandles=new Map,this._watchUpdatingTracking=new E,this._frameTask=We,this._allTiles=new p,this._upsampleInfoPool=new u(qe),this._shouldEmitChangeEvent=!1,this._rootTilesExtent=j(),this.updatingProgress=.5,this._maxNumUpdating=1,this.maxTextureScale=1.2,this._spatialReference=P.WebMercator,this._elevationProjectorCache=new Map,this.visibleElevationBounds=new K(1/0,-1/0),this.rootTileElevationBounds=new K(1/0,-1/0),this._projectorCache=new Map,this._radiusModifier=Math.cos(Math.PI/16/16),this._tilingSchemeSpatialReference=null,this._updatingRootTiles=!1,this._pendingTilesForElevationUpdateEvent=new Set,this._pendingTilesToUpdate=new Set,this.totalGeometryUpdates=0,this.totalTileUpdates=0,this._oneBatchPerFrameTask=!0,this._layerViewsDirty=!1,this.unloadedMemory=0,this.ignoresMemoryFactor=!1,this._isWebMercator=!1,this._isWebMercatorOnPlateCarree=!1;const t=e.view;this.overlayManager=new ie({...e,surface:this}),this._isGlobal=!t.state?.isLocal,this._isGeographic=this._spatialReference?.isGeographic??!1,this._tileConstructor=this._isGlobal?ae:re,this._ellipsoid=L(t.spatialReference),this._renderer=new pe(this.overlayManager.renderer,t.stage,this._allTiles,this._ellipsoid.radius,this.terrainTextureCompressionTracker,t.resourceController.memoryController),Fe()||(this._scaleRangeQueries=new se)}initialize(){const e=this.view,t=e.resourceController,i=t.memoryController;this._tileCache=new d((e,t)=>i.newCache(e,t),"terrain-tile"),this._upsampleMapCache=i.newCache("terrain-upsample",e=>e.unloadMapData()),this._elevationQueryCache=new W(i.newCache("elevation-query"));const r=this.overlayManager;this.addHandles([m(()=>r.renderer.isEmpty,()=>this._evaluateTransparency()),m(()=>this.renderer.visible,e=>this.suspended=!e),m(()=>this.heading,e=>{this._renderer.updateHeading(e),this._updateTileTextures(0)}),m(()=>({heading:e.camera?.heading,state:e.state?.mode}),({heading:e,state:t})=>{if(null==e)return;if(this.isGlobal&&this.isGeographic||this.isWebMercatorOnPlateCarree)return void(this.heading=90*Math.round(e/90)%360);const i=Math.round(e)%360,r=Math.abs(i-this.heading);(2===t||Math.min(r,360-r)>=30)&&(this.heading=i)})],"overlayManager"),this.addHandles([m(()=>this.baseOpacity,()=>{this._handleLayerViewChanges(),this._updateTileTextures(this._evaluateTransparency()?2:1)},f),m(()=>this.hasCompositeBlendMode,()=>this._updateTileTextures(this._evaluateTransparency()?2:1),f),m(()=>this.backgroundColor,(e,t)=>{e?.equals(t)||(this._handleLayerViewChanges(),this._renderer.updateTileBackground(e))},y),m(()=>this.snapLevel,()=>this._viewChanged=!0,y),m(()=>this.view.pointsOfInterest,e=>{this._renderer.pointsOfInterest=e,this._watchUpdatingTracking.removeAll(),e&&this._watchUpdatingTracking.add(()=>e.focus?.renderLocation,()=>this._allTilesSorted=!1)}),m(()=>$.TERRAIN_TILE_TREE_SHOW_TILES,t=>{t&&!this._treeDebugger?import("../layers/support/TerrainTileTree3DDebugger.js").then(({TerrainTileTree3DDebugger:t})=>{!this._treeDebugger&&$.TERRAIN_TILE_TREE_SHOW_TILES&&(this._treeDebugger=new t({view:e}))}):t||(this._treeDebugger=h(this._treeDebugger))},T)]);const{spatialReference:a}=e;this._extentHelper=ee(this.viewingMode,{layers:e.map.allLayers,layerViews:e.allLayerViews,viewSpatialReference:a});const n=new s({getCollections:()=>e.defaultsFromMap?.mapCollections?.map(({layers:e})=>e),getChildrenFunction:e=>e&&"layers"in e?e.layers:null}),l=new Oe({layers:n,extentHelper:this._extentHelper,viewingMode:this.viewingMode,viewSpatialReference:a});this._set("tilingSchemeLogic",l),this._updateTilingScheme(),this._elevationDataRequester=t.createStreamDataRequester(0),this._mapDataRequester=t.createStreamDataRequester(1);const o=t.scheduler;this._frameTask=o.registerTask(He.TERRAIN_SURFACE,this),this.addHandles([m(()=>this._extentHelper.stencilEnabledExtents,e=>this._renderer.setStencilEnabledLayerExtents(e),T),m(()=>this.tilingSchemeLogic.tilingScheme,()=>this._updateTilingScheme(),y),m(()=>this.extent,()=>this._updateRootTiles(),T),e.on("resize",()=>this._viewChangeUpdate()),m(()=>{const t=e.state;return[this._lodBias,this.lodSnappingEnabled,e.quality,t.camera,t.contentCamera,t.fixedContentCamera]},()=>this._viewChangeUpdate(),f),m(()=>e.qualitySettings?.fadeDuration,e=>this._renderer.textureFadingEnabled=e>0,T),m(()=>e.qualitySettings?.physicallyBasedRenderingEnabled,e=>this._renderer.pbrMode=e?5:0,T),m(()=>e.qualitySettings?.tiledSurface.elevationLevelDelta,()=>this._updateAllTileGeometries()),m(()=>this._userClippingExtent,()=>this._updateClippingExtent(),y)]),this.addHandles(e.allLayerViews.on("after-changes",()=>this._layerViewsDirty=!0)),this._layerViewsDirty=!0,this._handleLayerViewChanges(),this._renderer.updateTileBackground(this.backgroundColor)}clearHandles(){this._watchUpdatingTracking?.removeAll(),this.removeAllHandles(),this._basemapLayerViewHandles.forEach((e,t)=>this._unregisterTiledLayerView(t)),this._basemapLayerViewHandles.clear()}destroy(){this._frameTask.remove(),this._frameTask=We,this._watchUpdatingTracking?.destroy(),this._removeAllTiles(),this._set("tilingSchemeLogic",h(this.tilingSchemeLogic)),this._basemapLayerViewHandles.forEach((e,t)=>this._unregisterTiledLayerView(t)),this._basemapLayerViewHandles.clear(),this._elevationDataRequester=null,this._mapDataRequester=null,this._set("overlayManager",h(this.overlayManager)),this._tileCache=h(this._tileCache),this._allTiles.prune(),De.prune(),this._treeDebugger=h(this._treeDebugger),this._renderer.destroy(),this._renderer=null,this._iteratorPool=h(this._iteratorPool),this._upsampleMapCache=h(this._upsampleMapCache),this._elevationQueryCache=h(this._elevationQueryCache),this._set("view",null),this._extentHelper=h(this._extentHelper),this._upsampleInfoPool=h(this._upsampleInfoPool),Re(),this._layerViews.forEach(e=>e.length=0),this._performanceInfo=null}get renderer(){return this._renderer}get frustum(){return this._frustum}get snapLevel(){if(this.lodSnappingEnabled){const{view:e,tilingScheme:t}=this,i=e.scale;if(t&&i){const r=t.levelAtScale(i)+e.qualitySettings.tiledSurface.lodBias,s=t.getMaxLod();return r<=0?null:Math.min(r,s||1/0)}}return null}get lodSnappingEnabled(){return this.view.qualitySettings.tiledSurface.reduceTileLevelDifferences}get upsampleInfoPool(){return this._upsampleInfoPool}get upsampleMapCache(){return this._upsampleMapCache}get elevationQueryCache(){return this._elevationQueryCache}get hasStencilEnabledExtents(){return this._extentHelper.stencilEnabledExtents.length>0}get _userClippingExtent(){const{spatialReference:e}=this,{clippingArea:t}=this.view;if(null==t||null==e)return null;const i=j(),r=Y(t,i,e)?i:null,s=this._get("extent");return R(r,s)?s:r}get rootTilesExtent(){return this._rootTilesExtent}get extent(){const e=B(this.groundExtent,this._userClippingExtent,j()),t=this._get("extent");return R(e,t)?t:e}get groundExtent(){return null!=this._tilingSchemeExtent?this._tilingSchemeExtent:this._rootTilesExtent}get _tilingSchemeExtent(){return this.tilingSchemeLogic?.extent}get updating(){return this._hasPendingUpdates||(this._maxNumUpdating=1),!!((this.running||this._watchUpdatingTracking?.updating||this._asyncWorkItems>0)&&this.ready&&!this.suspended||this.overlayManager?.updating||this.terrainTextureCompressionTracker.compressing)}get running(){return(this._hasPendingUpdates||this._viewChanged||this._allTilesDirty||!this._allTilesSorted||this._layerViewsDirty||this._scaleRangeQueries?.updating||this._frameTask.updating)&&this.ready&&!this.suspended}get updatingProgressValue(){return this._maxNumUpdating=Math.max(this._pendingUpdates,this._maxNumUpdating),1-this._pendingUpdates/this._maxNumUpdating}get baseOpacity(){return this.view?.map?.ground?.opacity??1}set baseOpacity(e){this.view.map.ground.opacity=e}get viewingMode(){return this.view.state.viewingMode}get ready(){return null!=this._rootTiles}set renderOrder(e){this._renderer.renderOrder=e,this._set("renderOrder",e)}get rootTiles(){return this._rootTiles}get spatialReference(){return this.tilingScheme?.spatialReference??null}get backgroundColor(){return this.view?.map?.ground?.surfaceColor}set backgroundColor(e){this.view.map.ground.surfaceColor=e}set slicePlaneEnabled(e){this._renderer.slicePlaneEnabled=e,this._set("slicePlaneEnabled",e),this._evaluateTransparency()}get tilingSchemeLocked(){return this.tilingSchemeLogic?.tilingSchemeLocked??!1}get wireframe(){return this._renderer?.wireframe}set wireframe(e){e!==this._renderer.wireframe&&(this._renderer.wireframe=e,this._updateAllTileGeometries())}get opaque(){return 0===this._renderer.transparency}get invisible(){return 3===this._renderer.transparency}set suspended(e){this._set("suspended",e),this._viewChangeUpdate()}get fadeDuration(){return this.view.qualitySettings.fadeDuration??0}intersect(e,t,i,r){this._renderer.intersect(e,t,i,r)}getElevationLevelDelta(e){return e<4?3:this.view.qualitySettings.tiledSurface.elevationLevelDelta}getElevation(e,t,i,r){const s=this._rootTiles;if(!s?.length)return null;if(0===s[0].layerInfo[0].length)return null;let a=this._elevationProjectorCache.get(r);if(void 0===a&&(a=U(r,this._spatialReference)??null,this._elevationProjectorCache.set(r,a)),null==a)return l.getLogger(this).error("TerrainSurface.getElevation(): could not project given point to tiling scheme coordinate system"),null;const n=C(Je,e,t,i);a(n,0,n,0);return st(s,n[0],n[1])}getElevations(e,t,i){const r=this._rootTiles,s=r?r[0].layerInfo[0].length:0;if(r?.length&&0!==s)for(let a=0;a<t;++a){const t=3*a;i(a,st(r,e[t],e[t+1]))}else for(let a=0;a<t;++a)i(a,null)}getLayerIndexByUID(e,t){return this._layerIndexByUid[e].get(t)}getScale(e){if(!this.tilingScheme)return null;if(!M(e,Je,this.spatialReference))return l.getLogger(this).error("TerrainSurface.getScale(): could not project given point to tiling scheme coordinate system"),null;const t=this._rootTiles;if(null!=t)for(const i of t)if(i?.containsPoint(Je)){let e=i;for(;e.children[0]&&!e.rendered;){const t=e.children[0].extent;let i=0;Je[0]>t[2]&&(i+=1),Je[1]<t[1]&&(i+=2),e=e.children[i]}return this._getLodBiasCorrectedScale(e.level)}return 1/0}_ensureProjector(e){const t=this._projectorCache.get(e);if(t)return t;const i=U(e,this._tilingSchemeSpatialReference)??null;return this._projectorCache.set(e,i),i}getSphereElevationBounds(e,t){const i=this._ensureProjector(t);if(null==i)return l.getLogger(this).error("TerrainSurface.getSphereElevationBounds(): could not project given point to tiling scheme coordinate system"),null;G(e,Ze);const r=F(Ze);i(r,0,r,0);const s=new Q,a=this._rootTiles;if(null!=a){const e=[];for(const i of a)e.push(i);let t=0;for(;t<e.length;){const i=e[t];if(++t,!I(i.extent,Ze))continue;const r=i.children;if(null==r[0]||i.rendered)s.expandElevationRangeValues(i.elevationBoundsMin,i.elevationBoundsMax);else for(const t of r)e.push(t)}}return s}getRootElevationBounds(){return new Q(this.rootTileElevationBounds.min,this.rootTileElevationBounds.max)}getLowerBoundRadius(){const e=(this._ellipsoid.radius+this.visibleElevationBounds.min)*this._radiusModifier;return Math.min(e,this._ellipsoid.radius)}getSphereScale(e,t){if(!this.tilingScheme)return null;if(!M(e,F(Ze),this.spatialReference))return l.getLogger(this).error("TerrainSurface.getSphereScale(): could not project given point to tiling scheme coordinate system"),null;Ze[3]=t;let i=null;const r=e=>{if(e&&I(e.extent,Ze)){const t=e.children;if(t[0]&&!e.rendered)for(const e of t)r(e);else{const t=this._getLodBiasCorrectedScale(e.level);i=null==i?t:Math.min(i,t)}}},s=this._rootTiles;if(null!=s)for(const a of s)r(a);return i}queryVisibleScaleRange(e,t,i,r){if(!this._scaleRangeQueries)return;const s=t?this.tilingScheme.levelAtScale(t):0,a=i?this.tilingScheme.levelAtScale(i):1/0,n=this._lodBias;this._scaleRangeQueries.queryVisibleLevelRange(e,s+n,a+n,r)}_evaluateTransparency(){const e=this.baseOpacity,t=this.overlayManager.renderer.isEmpty,i=this._renderer.transparency,r=this._isFullyTransparent?t?3:2:e>=1&&!this.hasCompositeBlendMode&&!this._renderer.slicePlaneEnabled?0:1;return this._renderer.transparency=r,i!==r}_updateTilingScheme(){const e=this.tilingSchemeLogic.tilingScheme;if(!(e!==this.tilingScheme))return;ge(!!e,"tiling scheme cannot be reset to undefined"),this._isGlobal=!this.view?.state?.isLocal,this.tilingScheme&&this._removeAllTiles();const t=e?.spatialReference??P.WebMercator;this._spatialReference=t,this._isWebMercator=!!t?.isWebMercator,this._isWebMercatorOnPlateCarree=this._isWebMercator&&q(this.view?.renderSpatialReference),this._isGeographic=t?.isGeographic??!1,this._set("tilingScheme",e),this._tilingSchemeSpatialReference=this.tilingScheme?.spatialReference,this._projectorCache.clear(),this._updateClippingExtent(),e&&(this._updateTiledLayers(),this._renderer.tileSize=e.pixelSize,this.overlayManager.spatialReference=e.spatialReference,this._updateRootTiles())}static{this._tileMemcacheKey="TerrainTileMemcache"}_acquireTile(e,t,i,r){const s=this._tileCache.pop(Ye._tileMemcacheKey);return s?(s.init(e,t,i,r,this),s):new this._tileConstructor(e,t,i,r,this)}get updatingRootTiles(){return this._updatingRootTiles}_updateRootTiles(){const{extent:e,tilingScheme:t}=this;if(!t)return;const i=et;let s=t.rootTilesInExtent(e,i,5*le);if(null!=this._rootTiles){if(s.length>le)return void l.getLogger(this).warn(oe);const e=this._rootTiles.map(e=>e.lij),t=r(e,s,je);if(this._updatingRootTiles=!0,t.removed.length>0||t.added.length>0){const e=this._rootTiles.filter(e=>!(t.removed.findIndex(t=>je(t,e.lij))>-1)||(this._purgeTile(e),!1));t.added.forEach(t=>e.push(this._newRootTile(t))),this._setRootTiles(e)}}else this._updatingRootTiles=!0,s.length>le&&(l.getLogger(this).warn(he),s=t.rootTilesInExtent(e,i,le)),this._setRootTiles(s.map(e=>this._newRootTile(e)));R(i,this._rootTilesExtent)||(this._rootTilesExtent=j(i)),this.renderer.visible=!0,this._viewChangeUpdate(),this.overlayManager.setPlacementDirty(),this.notifyChange("ready"),this._updateAllTileGeometries(),this._updatingRootTiles=!1,this.checkAllTilesWaterproofness()}_updateAllTileGeometries(){const e=this._allTiles.filter(e=>e.loaded&&e.intersectsClippingArea);e.sort(ke),e.forEach(e=>this._renderer.updateTileGeometryState(e)),e.forEach(e=>e.renderData.updateNeighborData()),this._updateTilesGeometries(e),this._pendingTilesToUpdate.clear()}_updateTilesGeometries(e){if(0===e.length)return;e.sort(ke);const t=this.renderer;e.forEach(e=>t.updateGeometryIfNeeded(e)),e.forEach(e=>this._pendingTilesForElevationUpdateEvent.add(e))}_shouldSplit(e){return 1===e.shouldSplit(this._splitLimits,this._eyePosRenderSR,this.snapLevel)}_newRootTile(e){const t=this._acquireTile(0,e[1],e[2],null);return this._shouldSplit(t)&&t.setPendingUpdate(1),this._loadTile(t),this._markTileToUpdate(t),this._updateRootTileElevationBounds(),t}_setRootTiles(e){if(this._rootTiles=e,this._allTiles.clear(),null!=e){const t=this._iteratorPool.acquire();for(t.reset(e);!t.done;)this._allTiles.push(t.next());t.remove()}this._renderer.setRootTiles(this._rootTiles),this._updateTilesVisibility(e),this.notifyChange("demResolution"),this.emit("tiles-changed",{allTiles:this.allTiles})}_runViewChangeUpdateIfDirty(){this._viewChangeUpdateDirty&&(this._viewChangeUpdateDirty=!1,this._viewChangeUpdate())}_viewChangeUpdate(){this.view&&!this.suspended&&this.tilingScheme&&this.renderer.visible&&(this._inFrameTask?this._viewChangeUpdateDirty=!0:(this._viewChangeUpdateDirty=!1,this._updateViewDependentParameters(),this._updateTilesVisibility(this._rootTiles)))}_updateClippingStatus(e){e.updateClippingStatus(this.extent)&&e.resetPendingUpdate(8)&&this._updateTileGeometryState(e)}_updateTilesVisibility(e){if(null==e)return;const t=Ae(e),i=this.visibleElevationBounds;let r=t?i.min:1/0,s=t?i.max:-1/0;const a=this.extent,n=this.view.state.contentCamera.viewProjectionMatrix;this.setTileTreeDirty();const l=this._iteratorPool.acquire();for(l.reset(e);!l.done;){const e=l.next();e.updateClippingStatus(a)&&e.resetPendingUpdate(8)&&this._updateTileGeometryState(e),e.computeVisibility(),e.updateScreenDepth(n),e.renderData&&(r=Math.min(e.elevationBoundsMin,r),s=Math.max(e.elevationBoundsMax,s))}l.remove(),this._viewChanged=!0,this._allTilesDirty=!0,this._updatePendingTileGeometries(),isFinite(r)&&isFinite(s)&&(i.min!==r||i.max!==s)&&(this.visibleElevationBounds=new K(r,s))}_updateRootTileElevationBounds(){let e=1/0,t=-1/0;const i=this._rootTiles;null!=i&&i.forEach(({elevationBoundsMin:i,elevationBoundsMax:r})=>{e=Math.min(e,i),t=Math.max(t,r)});const r=this.rootTileElevationBounds;r.min===e&&r.max===t||(this.rootTileElevationBounds=new K(e,t))}_updateViewDependentParameters(){const{camera:e,contentCamera:t}=this.view.state,i=Math.tan(.5*t.fovX),r=Math.tan(.5*t.fovY),s=this.tilingScheme.pixelSize,a=2**-this._lodBias*e.pixelRatio;this._splitLimits.aboveGround=e.aboveGround,this._splitLimits.fovX=i,this._splitLimits.fovY=r,this._splitLimits.relativeWidthLimit=s/e.width*this.maxTextureScale*a,this._splitLimits.relativeHeightLimit=s/e.height*this.maxTextureScale*a,this._splitLimits.maxLod=this.tilingScheme.getMaxLod(),this._splitLimits.angledSplitBias=this.view.qualitySettings.tiledSurface.angledSplitBias,this.view.state.fixedContentCamera?this._splitLimits.frustum=O(this._splitLimits.frustum??V(),t.frustum):this._splitLimits.frustum=null,O(this._frustum,e.frustum),b(this._eyePosRenderSR,t.eye),D(e.eye,this.view.renderSpatialReference,this._eyePosSurfaceSR,this.spatialReference)}_updateTileGeometryState(e){e.updateVisibility();this._renderer.updateTileGeometryState(e)&&this._markTileToUpdate(e),this.setMemoryDirty()}_markAllTileNeighborsForUpdate(e){e.forEachLoadedNeighbor(e=>{this._layerViews[1].some(_e)&&e.setPendingUpdate(32),this._pendingTilesToUpdate.add(e)})}_updateTileTexture(e,t){const i=e.resetPendingUpdate(32)?32:!!e.resetPendingUpdate(16)&&16;i&&(this._renderer.updateTileTexture(e,i),this._usedMemory=null,t.madeProgress())}_emitElevationUpdateEventForTiles(){if(!this._shouldEmitChangeEvent)return;const e=it.extent;k(e),this._pendingTilesForElevationUpdateEvent.forEach(t=>A(e,t.extent,e)),this._pendingTilesForElevationUpdateEvent.clear(),it.spatialReference=this.spatialReference,this.emit("elevation-change",it),this._shouldEmitChangeEvent=!1}runTask(e){this._handleLayerViewChanges(e),this._frameTask.processQueue(e),this.renderer.processScaleRangeQueries(this._scaleRangeQueries,e),this._inFrameTask=!0,this._pendingUpdates=0,this._hasPendingUpdates=!1,this._updateAllTilesStatus(e),this._sortTiles(e);const t=!this.view.state.fixedContentCamera;if(this._mergeAndSplit(e,t),this._updateElevation(e),this._updateTextures(e),t||this._mergeAndSplit(e,!0),this._inFrameTask=!1,this._runViewChangeUpdateIfDirty(),this._updatePendingTileGeometries(),this._emitElevationUpdateEventForTiles(),e.done&&e.hasProgressed&&this.requestUpdate(),this.notifyChange("updatingProgressValue"),xe&&this._checkTileInvariant(),!e.hasProgressed)return ze}_checkTileInvariant(){const e=new Map;this._allTiles.forAll(t=>e.set(t,new Set)),this._allTiles.forAll(t=>{if(ge(t.rendered===t.leaf,` rendered ${t.rendered} != ${t.leaf} leaf`),!t.leaf){const e=e=>0===e.unmergableChildCount&&0===e.maxLevelDeltaNeighborCount,i=t.children.reduce((t,i)=>t+(e(i)?0:1),0);if(ge(t.unmergableChildCount===i,` Tile[${t.lij.toString()}] unmergeable child count mismatch: actual ${t.unmergableChildCount} vs ${i}`),t.hasPendingUpdate(4)){ge(!t.hasPendingUpdate(1),"Tile can be both split and merge at the same time");for(const e of t.children)ge(e.leaf||e.hasPendingUpdate(4),"Child of tile to merge must also merge")}}for(let i=0;i<4;++i){if(t.rendered){const e=t.renderData?.geometryState.edgePeerNeighbors[i];if(null!=e){{const r=t.level-e.level<=de;r||(console.log(`tile level delta [${t.lij.toString()}] vs [${e.lij.toString()}] > ${de} (edge[${i}])`),ge(r,`tile level delta [${t.level}] vs [${e.level}] > ${de}`))}ge(t.level-e.level<=de,`Max tile lod delta exceeded: [${t.lij.toString()}] vs [${e.lij.toString()}]`)}}const r=t.level-de,s=e=>e.leaf||e.level===t.level,a=t.findNeighborTile(me[i],s);if(null!=a){if(t.leaf&&t.level>=de){let i=a;for(;t.level-i.level<de;)i=i.parent;const s=[r,t.lij[1]>>de,t.lij[2]>>de];if(!je(s,i.lij)){const r=e.get(i);ge(!r.has(t),"Cannot already have neighbor"),r.add(t)}}ge(a.rendered||a.level===t.level,"Non-same-level-neighbor of rendered must be rendered"),ge(t.level-a.level<=de,`Tile level delta [${t.level}] vs [${a.level}] > ${de}`)}}}),this._allTiles.forAll(t=>{const i=t.maxLevelDeltaNeighborCount,r=e.get(t);ge(i===r.size,`Tile[${t.lij.toString()}] merge-blocker mismatch: actual ${i} vs ${r.size}`)})}_updateAllTilesStatus(e){if(!this._viewChanged||!this._rootTiles||e.done)return;this._viewChanged=!1;const t=new at(this._allTiles.length);t.pushAll(this._rootTiles);const i=this.snapLevel,r=this._splitLimits,s=this._eyePosRenderSR;this._allTiles.forAll(e=>{e.maxLevelDeltaNeighborCount=0,e.unmergableChildCount=0});const a=this.view.state.contentCamera.viewProjectionMatrix;for(;!t.empty;){const e=t.pop(),n=e.parent,l=null!=n&&n.hasPendingUpdate(4),o=l?4:e.shouldSplit(r,s,i),h=1===o;e.leaf?nt(e,h):t.pushAll(e.children),l?(e.resetPendingUpdate(1),e.leaf||e.setPendingUpdate(4),this._updateClippingStatus(e),e.updateVisibility(),e.updateScreenDepth(a)):h?(e.resetPendingUpdate(4),e.leaf&&e.setPendingUpdate(1)):(e.resetPendingUpdate(1)&&e.updateAgentSuspension(),2===o&&e.updateAgents(0),e.leaf||(e.setPendingUpdate(4),e.resetPendingUpdate(1)))}this.requestUpdate(),(this._shortBatches||!this._oneBatchPerFrameTask)&&this._updatePendingTileGeometries(),e.madeProgress()}_sortTiles(e){e.done||this._allTilesSorted||!this.view.pointsOfInterest?.focus||(Ve(this._allTiles,this.view.pointsOfInterest.focus.renderLocation),this._allTilesSorted=!0,this._treeDebugger&&this._treeDebugger.update(),e.madeProgress())}_markTileToUpdate(e){fe(e.loaded),e.intersectsClippingArea&&(this._pendingTilesToUpdate.add(e),this._markAllTileNeighborsForUpdate(e))}_updatePendingTileGeometries(){const e=this._pendingTilesToUpdate,t=Array.from(e.keys()).filter(e=>e.loaded&&e.intersectsClippingArea);if(0===t.length)return void e.clear();const i=(i,r)=>{!r?.loaded||!r.intersectsClippingArea||r.level<i.level||e.has(r)||(e.add(r),t.push(r),r.renderData.updateNeighborData())};t.sort(ke);const r=t.length;for(let s=0;s<r;++s){const r=t[s];fe(r.loaded),fe(r.intersectsClippingArea);const a=r.renderData;a.updateNeighborData();const n=a.dirtyEdgeResolutions,l=a.geometryState,o=e=>{const t=Me[e];i(r,l.cornerPeerNeighbors[e]?.findCorner(Ee(t),e=>e.loaded))};for(let t=0;t<4;++t)if(n&1<<t){const s=a.geometryState.edgePeerNeighbors[t];s&&s?.level>=r.level&&s.forAllSubtreeOnSide(ye(me[t]),t=>!(!t.loaded||!t.intersectsClippingArea)&&(fe(e.has(t)||ke(r,t)<0),i(r,t),!0)),o((t+1)%4),o(t)}}e.clear(),this._updateTilesGeometries(t),this._shouldEmitChangeEvent=!0,xe&&Le&&this.checkAllTilesWaterproofness()}_mergeAndSplit(e,t){if(this.suspended||e.done||!this._allTilesDirty)return;this._allTilesDirty=!1,this.requestUpdate();let i=!1;const r=this.view.state.fixedContentCamera;let s=!1;for(;!e.done;){s=!0;let a=!1;const n=!this._allTiles.some(s=>{if(!i&&!r&&!s.visible)return e.done;let n=s;if(s.hasPendingUpdate(4)){if(!t||s.unmergableChildCount>0)return e.done;for(s.resetPendingUpdate(4);null!=n.parent&&0===n.parent.unmergableChildCount&&n.parent.resetPendingUpdate(4);)n=n.parent;this._mergeTile(n),a=!0,e.madeProgress()}else if(s.resetPendingUpdate(1)){let t=!0;const i=s.level;if(i>=de){const e=e=>e.leaf||i-e.level<de;for(let r=0;r<4;++r){const a=s.findNeighborTile(me[r],e);null!=a&&i-a.level===de&&(t=!1,xe&&(fe(a.leaf),fe(a.hasPendingUpdate(1))))}}t?(this._splitTile(s),e.madeProgress(),a=!0):s.setPendingUpdate(1)}return e.done});if(a&&(this._allTilesSorted=!1,this._allTilesDirty=!0,!this._oneBatchPerFrameTask&&this._updatePendingTileGeometries()),n){if(!i){i=!0;continue}if(!a)break}else this._allTilesDirty=!0}s?e.madeProgress():this._allTilesDirty=!0,!this._oneBatchPerFrameTask&&this._updatePendingTileGeometries(),this._sortTiles(e)}_updateElevation(e){e.done||(this._allTiles.some(t=>(t.resetPendingUpdate(8)&&(this._updateTileGeometryState(t),this._shortBatches&&this._updatePendingTileGeometries(),e.madeProgress()),e.done)),!this._oneBatchPerFrameTask&&this._updatePendingTileGeometries())}_updateTextures(e){e.done||this._allTiles.some(t=>(this._updateTileTexture(t,e),e.done))}_updateClippingExtent(){this.spatialReference&&(this.overlayManager?.updateOverlayParameters(1),this.overlayManager.setPlacementDirty(),this._updateRootTiles())}get _lodBias(){const e=this.view.quality;return this.view.qualitySettings.tiledSurface.lodBias-(1-e)*ue}_getLodBiasCorrectedScale(e){const t=this.tilingScheme.levels,i=o(e-this._lodBias,0,t.length-1),r=i-Math.floor(i);return t[Math.floor(i)].scale*(1-r)+t[Math.ceil(i)].scale*r}_removeAllTiles(){null!=this._rootTiles&&(this._rootTiles.forEach(e=>this._purgeTile(e)),this._setRootTiles(null),this.notifyChange("ready")),this._allTiles.clear(),this.notifyChange("demResolution"),this.emit("tiles-changed",{allTiles:this.allTiles}),this.renderer.visible=!1}_purgeSubtree(e){const t=e.children;t[0]&&(this._purgeTile(t[0]),this._purgeTile(t[1]),this._purgeTile(t[2]),this._purgeTile(t[3]),e.clearChildren())}_purgeTile(e){e.leaf?ot(e):this._purgeSubtree(e),this._allTiles.removeUnordered(e),this._unloadTile(e),e.dispose(),this._tileCache.put(Ye._tileMemcacheKey,e),this.notifyChange("demResolution"),this.emit("tiles-changed",{allTiles:this.allTiles})}_unloadTile(e){this._pendingTilesToUpdate.delete(e),this._pendingTilesForElevationUpdateEvent.delete(e),e.unload()}_splitTile(e){ge(e.leaf,"Tile that is already split should not be split again!"),ge(e.rendered,"Tile marked to split is not rendered"),ot(e);const t=e.createChildren();this._allTiles.pushArray(t),this.notifyChange("demResolution"),this.emit("tiles-changed",{allTiles:this.allTiles}),e.updateAgentSuspension(),ge(e.rendered,"parent should be rendered"),t.forEach(e=>this._loadTile(e)),t.forEach(e=>this._pendingTilesToUpdate.add(e)),this._unloadTile(e),this._markAllTileNeighborsForUpdate(e),this._emitTileScaleChange(e,e.level+1),this._allTilesDirty=!0,this._shortBatches&&this._updatePendingTileGeometries(),t.forEach(e=>nt(e,e.hasPendingUpdate(1))),++this._performanceInfo.numSplit}_emitTileScaleChange(e,t=e.level){rt.spatialReference=this.spatialReference,rt.extent=e.extent,rt.scale=this._getLodBiasCorrectedScale(t),this.emit("scale-change",rt)}createTile(e,t,i,r){ge(!!r,"createTile sanity check");const s=this._acquireTile(e,t,i,r);return s.updateClippingStatus(this.extent),s.updateScreenDepth(this.view.state.contentCamera.viewProjectionMatrix),this._shouldSplit(s)&&s.setPendingUpdate(1),s}get _shortBatches(){return 2!==this.view.state.mode}_mergeTile(e){ge(!e.hasPendingUpdate(1),"_mergeTile sanity check"),ge(!e.leaf,"Cannot merge a leaf"),e.leaf||(this._purgeSubtree(e),ge(!e.renderData,"Merging tile with existing render data?"),this._loadTile(e),this._markTileToUpdate(e),this._emitTileScaleChange(e),this._shortBatches&&this._updatePendingTileGeometries(),nt(e,!1),this._allTilesDirty=!0,++this._performanceInfo.numMerged)}_loadTile(e){e.load(),this.requestUpdate(),this._allTilesDirty=!0,this.overlayManager?.hasOverlays&&this.overlayManager.updateTileOverlayParameters(e)}_handleLayerViewChanges(e=$e){if(!this._layerViewsDirty)return;this._layerViewsDirty=!1;let t=!1;const i=new Set;let r=-1;for(let s=this.view.allLayerViews.length-1;s>=0;s--){const e=this.view.allLayerViews.items[s];if(i.add(e.uid),Te(e)||ve(e))if(this._basemapLayerViewHandles.has(e.uid)&&!ve(e)){const i=this._layerClassFromLayerView(e),s=this.getLayerIndexByUID(i,e.uid);null!=s&&((s<r||null==r)&&(t=!0),r=s)}else this._registerTiledLayerView(e),e.layer.loaded&&(t=!0)}this._basemapLayerViewHandles.forEach((e,r)=>{i.has(r)||(this._unregisterTiledLayerView(r),t=!0)}),t&&this._updateTiledLayers(),this.hasCompositeBlendMode=this._hasCompositeBlendMode(),this._evaluateTransparency(),e.madeProgress()}get _isFullyTransparent(){if(this.view.map?.ground?.opacity>0)return!1;for(const e of this.view.allLayerViews.items)if(we(e)&&!H(e.layer)&&0!==e.fullOpacity)return!1;return!0}_hasCompositeBlendMode(){for(const e of this.view.allLayerViews.items)if((Se(e)||ve(e))&&Ge(Ne[e.layer.blendMode]))return!0;return!1}_layerClassFromLayerView(e){return Ce(e)?0:1}_registerTiledLayerView(e){const t=[];if((Se(e)||ve(e))&&t.push(m(()=>e.layer.blendMode,()=>{this.hasCompositeBlendMode=this._hasCompositeBlendMode(),this._updateTileTextures(2)})),!ve(e)){const i=this._layerClassFromLayerView(e);t.push(m(()=>!e.destroyed&&e.suspended,()=>this._updateTiledLayers())),t.push(m(()=>!e.destroyed&&e.fullOpacity,()=>this._updateTileTextures(2)));const{layer:r}=e;"effectiveScaleRange"in r&&t.push(m(()=>!e.destroyed&&r.effectiveScaleRange,()=>this._restartAllAgents(i))),t.push(e.on("data-changed",()=>{const t=this.getLayerIndexByUID(i,e.uid);null!=t&&this._invalidateLayerData(t,i)}))}this._unregisterTiledLayerView(e.uid),this._basemapLayerViewHandles.set(e.uid,t)}_unregisterTiledLayerView(e){const t=this._basemapLayerViewHandles.get(e);if(t){for(const e of t)e.remove();this._basemapLayerViewHandles.delete(e)}}_updateTiledLayers(){if(!this.tilingScheme||this.view.suspended)return;const e=this.view.allLayerViews,t=[[],[]];let i=null;e.forEach(e=>{if(!e.layer||e.suspended||!Te(e)||!e.fullExtent)return;const r=this._layerClassFromLayerView(e);if(1===r){const t=e.displayLevelRange.maxLevel;t!==1/0&&(null===i||t>i)&&(i=t)}t[r].push(e)});for(const r of te){const e=this._layerViews[r],i=t[r];i.reverse();const s=i.length;let a=e.length!==s;const n=new Array(s),l=new Array(e.length);this._layerIndexByUid[r].clear();for(let t=0;t<s;t++){const s=i[t].uid;this._layerIndexByUid[r].set(s,t);const o=e.indexOf(i[t]);n[t]=o,t!==o&&(a=!0),o>-1&&(l[o]=t)}if(a){const e=this._postorderIterator;for(e.reset(this._rootTiles);!e.done;)e.next().modifyLayers(l,n,r);this._layerViews[r]=i,this._restartAllAgents(r),this._updateTilesVisibility(this._rootTiles)}}this.tilingScheme.ensureMaxLod(i)&&(this._viewChangeUpdate(),this.notifyChange("tilingScheme"))}_restartAllAgents(e){const t=this._postorderIterator;for(t.reset(this._rootTiles);!t.done;){const i=t.next();i.restartAgents(e),0===e&&i.computeElevationBounds()}this._updateRootTileElevationBounds()}layerViewByIndex(e,t){return this._layerViews[t][e]}numLayers(e){return this._layerViews[e].length}_updateTileTextures(e){this._allTiles.forAll(t=>{t.updateAgents(1),1===e?this.renderer.updateTileTexture(t,16):t.updateRenderData(1,e)}),this._evaluateTransparency()}_invalidateLayerData(e,t){this._allTiles.forAll(i=>i.removeLayerAgent(e,t)),this._allTiles.forAll(i=>i.invalidateLayerData(e,t))}setTileTreeDirty(){this._allTilesDirty=!0}requestRender(e=1){this.renderer.setNeedsRender(e)}requestUpdate(){1===++this._pendingUpdates&&(this._hasPendingUpdates=!0)}requestTileData(e,t,i,r){const s=this.layerViewByIndex(t,i),a=s.layer;return!a.tilemapCache||_e(s)?this._requestTileData(e,i,s,r):(++this._asyncWorkItems,a.tilemapCache.fetchAvailability(e.level,e.lij[1],e.lij[2],{...r,timeout:6e3}).then(()=>--this._asyncWorkItems).catch(t=>{throw--this._asyncWorkItems,c(r),g(t)||this._dataMissing(e,i,s),t}).then(()=>this._frameTask.schedule(()=>this._requestTileData(e,i,s,r),r.signal)))}_requestTileData(e,t,i,r){if(this.destroying)return Promise.resolve();const s=0===t;return r.requester??=s?this._elevationDataRequester:this._mapDataRequester,s?Ce(i)?this._requestElevationTileData(e,i,r):Promise.reject():we(i)?this._requestMapTileData(e,i,r):Promise.reject()}_requestElevationTileData(e,t,i){++this._asyncWorkItems;const r=r=>{!_(i)&&r&&(this.setMemoryDirty(),this.requestUpdate(),this._elevationDataArrived(e,t,r))},s=i=>{g(i)||(l.getLogger(this).error(`Tile ${e.lij.toString()} layer 0/${t.uid} error ${i}`),this._dataMissing(e,0,t),this.requestUpdate())};return t.fetchElevationTile(e,i).then(e=>this._frameTask.schedule(()=>r(e)),s).finally(()=>--this._asyncWorkItems)}_elevationDataArrived(e,t,i){const r=this._layerIndexByUid[0].get(t.uid);if(null==r)return void l.getLogger(this).warn("TerrainSurface: received data from unknown layer %d %s",0,e.lij.toString());const s=new J(e.lij,e.extent,i);e.dataArrived(r,0,s),this.emit("tile-data-changed",{tile:e,layerIndex:r,layerClass:0});const a=[e],n=e.level,o=this._iteratorPool.acquire();for(o.reset(a);!o.done;){const e=o.next();e.findElevationBoundsForLayer(r,n),e.computeElevationBounds()}0===n&&this._updateRootTileElevationBounds(),o.remove(),this._updateTilesVisibility(a)}_requestMapTileData(e,t,i){++this._asyncWorkItems;const r=(r,s)=>{be(s),_(i)||(console.error(`Tile ${e.lij.toString()} layer 1/${t.uid} error ${r}`),this._dataMissing(e,1,t),this.requestUpdate())},s=e=>t=>r(t,e),a=r=>this._frameTask.schedule(()=>{this.requestUpdate(),_(i)?be(r):this._mapTileDataArrived(e,t,r)},i.signal,s(r)).catch(s(r)),n=(e,t=null)=>this._frameTask.schedule(()=>r(e,t));return t.fetchTile(e.lij,i).then(a,n).finally(()=>--this._asyncWorkItems)}_mapTileDataArrived(e,t,i){const r=this.getLayerIndexByUID(1,t.uid);if(null==r)return be(i),void l.getLogger(this).warn("TerrainSurface: received data from unknown layer");e.dataArrived(r,1,i),this.emit("tile-data-changed",{tile:e,layerIndex:r,layerClass:1})}_dataMissing(e,t,i){const r=this.getLayerIndexByUID(t,i.uid);null!=r?(e.dataMissing(r,t),this.emit("tile-data-changed",{tile:e,layerIndex:r,layerClass:t})):l.getLogger(this).warn("TerrainSurface: received data from unknown layer")}get performanceInfo(){const e=this._performanceInfo;return e.numNodes=this._allTiles.length,e.numLeaves=e.numVisible=e.numRendered=e.numLoadedPerLevel.length=e.numRenderedPerLevel.length=0,this._allTiles.forAll(t=>{t.leaf&&e.numLeaves++;const i=t.level;t.renderData&&(e.numLoadedPerLevel[i]=(e.numLoadedPerLevel[i]||0)+1),t.visible&&(e.numVisible++,t.rendered&&(e.numRenderedPerLevel[i]=(e.numRenderedPerLevel[i]||0)+1,e.numRendered++))}),e}setMemoryDirty(){this._usedMemory=null}get usedMemory(){return this.tilingScheme?(null==this._usedMemory&&(this._usedMemory=this._recalculateUsedMemory()),this._usedMemory??0):0}_recalculateUsedMemory(){return this.tilingScheme?Math.round(this._allTiles.reduce((e,t)=>e+t.usedMemory,0)):null}getUsedMemoryForLayerView(e){let t=0;const i=this._layerClassFromLayerView(e),r=this.getLayerIndexByUID(i,e.uid);return null!=r&&this._allTiles.forAll(e=>t+=e.getUsedMemoryForLayer(i,r)),t}get renderPatchBorders(){return this._renderer.renderPatchBorders}set renderPatchBorders(e){this._renderer.renderPatchBorders=e}get visualizeNormals(){return this._renderer.visualizeNormals}set visualizeNormals(e){this._renderer.visualizeNormals=e}get renderingDisabled(){return this._renderer.renderingDisabled}set renderingDisabled(e){this._renderer.renderingDisabled=e}get test(){}checkAllTilesWaterproofness(){if(!Le)return;const e=this._rootTiles;if(null==e)return;const t=e=>e?.renderData?.geometry?.indices?.length>0,i=(e,i)=>{t(e)&&console.error("Tile[",e.lij,"] has geometry although parent[",i.lij,"] has geom")},r=e=>{if(e.intersectsClippingArea)if(e.renderData&&!e.renderData.geometryState&&console.error("Tile[",e.lij,"] has renderData but not geometryState"),e.renderData&&!e.renderData.geometry&&console.error("Tile[",e.lij,"] has renderData but not geometryInfo"),!e.renderData?.geometry||(e.renderData.geometry.indices?.length??0)>0||console.error("Tile[",e.lij,"] has renderData but no indices - geometryInfo: ",e.renderData.geometry),t(e)){e.checkGeometryWaterproofness();for(const t of e.children)i(t,e)}else if(e.leaf)console.error("Tile[",e.lij,"] has no geometry and no children, from root to leaf");else for(const t of e.children)r(t)},s=e=>{const t=e.parent?.visible??!0,i=e.visible;e.computeVisibility();const r=e.visible;if(i!==r&&t&&console.error(" Tile[",e.lij,"] has out of date visibility: ",i," instead of ",r),!e.leaf)for(const a of e.children)s(a)};for(const a of e)r(a),s(a)}get isGlobal(){return this._isGlobal}get isGeographic(){return this._isGeographic}get isWebMercator(){return this._isWebMercator}get isWebMercatorOnPlateCarree(){return this._isWebMercatorOnPlateCarree}isEastEndWrap(e){return this._isGlobal&&e[2]===this.lijEastEnd(e[0])-1}isWestEndWrap(e){return this._isGlobal&&0===e[2]}lijEastEnd(e){return 1<<e+(this._isGeographic?1:0)}wrapEastWest(e){const t=this.lijEastEnd(e[0]),i=e[2];if(0<=i&&i<t)return e;if(!this._isGlobal)return null;const r=(i+(i<0?t:0))%t;return[e[0],e[1],r]}enableInternalChecks(e){Pe(e)}enableWaterproofnessChecks(e){Ue(e)}static cleanupTerrainSurface(){tt.prune()}};e([w()],Xe.prototype,"_renderer",void 0),e([w({constructOnly:!0})],Xe.prototype,"_scaleRangeQueries",void 0),e([w({constructOnly:!0})],Xe.prototype,"view",void 0),e([w({constructOnly:!0})],Xe.prototype,"overlayManager",void 0),e([w({constructOnly:!0})],Xe.prototype,"terrainTextureCompressionTracker",void 0),e([w()],Xe.prototype,"_hasPendingUpdates",void 0),e([w()],Xe.prototype,"_asyncWorkItems",void 0),e([w()],Xe.prototype,"_allTilesDirty",void 0),e([w()],Xe.prototype,"_allTilesSorted",void 0),e([w()],Xe.prototype,"_viewChanged",void 0),e([w({type:Number})],Xe.prototype,"heading",void 0),e([w()],Xe.prototype,"_splitLimits",void 0),e([w({readOnly:!0})],Xe.prototype,"_watchUpdatingTracking",void 0),e([w()],Xe.prototype,"_frameTask",void 0),e([w()],Xe.prototype,"demResolution",null),e([w({readOnly:!0})],Xe.prototype,"snapLevel",null),e([w({readOnly:!0})],Xe.prototype,"lodSnappingEnabled",null),e([w()],Xe.prototype,"_userClippingExtent",null),e([w()],Xe.prototype,"_rootTilesExtent",void 0),e([w({readOnly:!0})],Xe.prototype,"extent",null),e([w({readOnly:!0})],Xe.prototype,"groundExtent",null),e([w({readOnly:!0})],Xe.prototype,"_tilingSchemeExtent",null),e([w({readOnly:!0})],Xe.prototype,"updating",null),e([w({readOnly:!0})],Xe.prototype,"running",null),e([w(X)],Xe.prototype,"updatingProgress",void 0),e([w({readOnly:!0})],Xe.prototype,"updatingProgressValue",null),e([w()],Xe.prototype,"_maxNumUpdating",void 0),e([w()],Xe.prototype,"baseOpacity",null),e([w()],Xe.prototype,"hasCompositeBlendMode",void 0),e([w({readOnly:!0})],Xe.prototype,"viewingMode",null),e([w()],Xe.prototype,"maxTextureScale",void 0),e([w({readOnly:!0})],Xe.prototype,"ready",null),e([w({value:1})],Xe.prototype,"renderOrder",null),e([w({readOnly:!0})],Xe.prototype,"rootTiles",null),e([w()],Xe.prototype,"_rootTiles",void 0),e([w({readOnly:!0})],Xe.prototype,"spatialReference",null),e([w({type:t})],Xe.prototype,"backgroundColor",null),e([w({value:!1})],Xe.prototype,"slicePlaneEnabled",null),e([w({readOnly:!0})],Xe.prototype,"tilingScheme",void 0),e([w({readOnly:!0})],Xe.prototype,"tilingSchemeLocked",null),e([w({readOnly:!0})],Xe.prototype,"tilingSchemeLogic",void 0),e([w()],Xe.prototype,"wireframe",null),e([w({value:!1})],Xe.prototype,"suspended",null),e([w()],Xe.prototype,"fadeDuration",null),e([w()],Xe.prototype,"visibleElevationBounds",void 0),e([w()],Xe.prototype,"rootTileElevationBounds",void 0),e([w()],Xe.prototype,"_layerViewsDirty",void 0),e([w()],Xe.prototype,"renderPatchBorders",null),e([w()],Xe.prototype,"visualizeNormals",null),e([w()],Xe.prototype,"renderingDisabled",null),Xe=Ye=e([S("esri.views.3d.terrain.TerrainSurface")],Xe);const Ke=Xe,Je=x(),Ze=N(),et=j(),tt=new p,it=new z("ground"),rt={spatialReference:null,extent:null,scale:0};function st(e,t,i){for(const r of e){if(!r.containsPointXY(t,i))continue;let e=r;for(;e&&!e.renderData;){const r=(t>e.extentMidX?1:0)+(i<e.extentMidY?2:0);e=e.children[r]}const s=e?.renderData?.geometryState.samplerData??null;return Z(t,i,s)}return null}class at{constructor(e){this.capacity=e,this._head=0,this._tail=0,this._data=new Array(e)}push(e){const t=this._tail;if(!(t<this.capacity))throw new Error("Queue full");this._data[t]=e,this._tail=t+1}pushAll(e){const t=e.length;if(0===t)return;const i=this._tail;if(!(i+t<=this.capacity))throw new Error("Queue full");for(let r=0;r<t;++r)this._data[i+r]=e[r];this._tail=i+t}pop(){const e=this._head;if(e<this._tail){const t=this._data[e];return this._head=e+1,t}}get empty(){return this._head>=this._tail}get full(){return this._tail>=this._data.length}}function nt(e,t){!e.leaf||e.level<de||dt(e,e=>{t&&lt(e);const i=ht(e);if(e.maxLevelDeltaNeighborCount++,i){let t=e.parent;for(;t;){const e=ht(t);if(t.unmergableChildCount++,!e)break;t=t.parent}}})}function lt(e){if(e.hasPendingUpdate(1))return;let t=e.parent;for(;t?.resetPendingUpdate(4);)t=t.parent;e.resetPendingUpdate(4),e.leaf&&e.setPendingUpdate(1),e.level<de||dt(e,e=>{lt(e)})}function ot(e){e.level<de||dt(e,e=>{if(e.maxLevelDeltaNeighborCount--,0===e.maxLevelDeltaNeighborCount&&0===e.unmergableChildCount){let t=e.parent;for(;t&&(t.unmergableChildCount--,ht(t));)t=t.parent}})}function ht(e){return 0===e.maxLevelDeltaNeighborCount&&0===e.unmergableChildCount}function dt(e,t){if(e.level<de)return;const i=e.level-de,r=e.lij[1]>>de,s=e.lij[2]>>de,a=e=>e.leaf||e.level===i;for(let n=0;n<4;++n){const l=e.findNeighborTile(me[n],a);if(!l||l.level!==i)continue;const o=l.lij;o[1]===r&&o[2]===s||t(l)}}export{Ke as default};
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.34/esri/copyright.txt for details.
4
4
  */
5
- import{destroyMaybe as t}from"../../../core/maybe.js";import{TextureUpdate as e}from"./interfaces.js";class i{constructor(t){this._getFadeDuration=t,this._fadeStart=0,this._delayedTime=0}clear(){this._current=t(this._current),this._next=t(this._next),this._waiting=t(this._waiting),this._delayed=t(this._delayed)}get current(){if(null==this._current)return null;if(!this._isFadingEnabled){let t=null;this._delayed?(t=this._delayed,this._delayed=null):this._waiting?(t=this._waiting,this._waiting=null):this._next&&(t=this._next,this._next=null),t&&(this.clear(),this._current=t)}let s=i.test.fadeMoment;if(this._delayed&&(s=s||performance.now(),s>=this._delayedTime&&(this._push(this._delayed,n.Immediate),this._delayed=null)),this._next){s=s||performance.now();const i=this._fadeDuration,n=null!=this._current&&this._next.texture===this._current.texture,a=this._next.type!==e.FADING,r=s-this._fadeStart>=i;(n||a||r)&&(t(this._current),this._current=this._next,this._next=this._waiting,this._waiting=null,this._fadeStart=this._alignFadeStart(s))}return this._current}get next(){return this._next}get fadeFactor(){if(null==this._next)return 1;const t=i.test.fadeMoment||performance.now(),e=Math.max(0,t-this._fadeStart),n=this._fadeDuration;return e>n?0:1-e/n}get isFading(){return null!=this._next||null!=this._delayed}push(e,i=n.Immediate){this._delayed=t(this._delayed),this._push(e,i)}_push(e,s){if(this._isFadingEnabled||this.clear(),null==this._current)return void(this._current=e);const a=i.test.fadeMoment||performance.now();return s!==n.Immediate?(this._delayed=e,void(this._delayedTime=a+s)):null==this._next?(this._next=e,void(this._fadeStart=this._alignFadeStart(a))):void(null!=e&&(t(this._waiting),this._waiting=e))}get _fadeDuration(){const t=this._getFadeDuration();return this._waiting?.5*t:t}_alignFadeStart(t){const e=this._getFadeDuration();return t+e-t%e}get _isFadingEnabled(){return this._getFadeDuration()>0}static{this.test={fadeMoment:0}}}var n;!function(t){t[t.Immediate=0]="Immediate",t[t.Delayed=5e3]="Delayed"}(n||(n={}));export{n as ActivationTime,i as TextureFader};
5
+ import{destroyMaybe as t}from"../../../core/maybe.js";class e{constructor(t){this._getFadeDuration=t,this._fadeStart=0,this._delayedTime=0}clear(){this._current=t(this._current),this._next=t(this._next),this._waiting=t(this._waiting),this._delayed=t(this._delayed)}get current(){if(null==this._current)return null;if(!this._isFadingEnabled){let t=null;this._delayed?(t=this._delayed,this._delayed=null):this._waiting?(t=this._waiting,this._waiting=null):this._next&&(t=this._next,this._next=null),t&&(this.clear(),this._current=t)}let i=e.test.fadeMoment;if(this._delayed&&(i=i||performance.now(),i>=this._delayedTime&&(this._push(this._delayed,0),this._delayed=null)),this._next){i=i||performance.now();const e=this._fadeDuration,n=null!=this._current&&this._next.texture===this._current.texture,s=0!==this._next.type,a=i-this._fadeStart>=e;(n||s||a)&&(t(this._current),this._current=this._next,this._next=this._waiting,this._waiting=null,this._fadeStart=this._alignFadeStart(i))}return this._current}get next(){return this._next}get fadeFactor(){if(null==this._next)return 1;const t=e.test.fadeMoment||performance.now(),i=Math.max(0,t-this._fadeStart),n=this._fadeDuration;return i>n?0:1-i/n}get isFading(){return null!=this._next||null!=this._delayed}push(e,i=0){this._delayed=t(this._delayed),this._push(e,i)}_push(i,n){if(this._isFadingEnabled||this.clear(),null==this._current)return void(this._current=i);const s=e.test.fadeMoment||performance.now();return 0!==n?(this._delayed=i,void(this._delayedTime=s+n)):null==this._next?(this._next=i,void(this._fadeStart=this._alignFadeStart(s))):void(null!=i&&(t(this._waiting),this._waiting=i))}get _fadeDuration(){const t=this._getFadeDuration();return this._waiting?.5*t:t}_alignFadeStart(t){const e=this._getFadeDuration();return t+e-t%e}get _isFadingEnabled(){return this._getFadeDuration()>0}static{this.test={fadeMoment:0}}}export{e as TextureFader};
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.34/esri/copyright.txt for details.
4
4
  */
5
- import{clamp as e}from"../../../core/mathUtils.js";import{abortMaybe as t}from"../../../core/maybe.js";import i from"../../../core/ObjectPool.js";import{d as s,k as n,e as r,g as a,f as l,l as o,c as h}from"../../../chunks/vec32.js";import{create as d,unitZ as u}from"../../../core/libs/gl-matrix-2/factories/vec3f64.js";import{getReferenceEllipsoid as c}from"../../../geometry/ellipsoidUtils.js";import{create as g,equals as p}from"../../../geometry/support/aaBoundingRect.js";import{c as f,a as _}from"../../../chunks/sphere.js";import{isGroupLayer as m}from"../../../layers/support/layerUtils.js";import{ElevationBounds as y}from"./ElevationBounds.js";import{ElevationTileAgent as M,isElevationTileAgent as A}from"./ElevationTileAgent.js";import{TextureUpdate as v}from"./interfaces.js";import{LayerClasses as T,LayerClass as E}from"./LayerClass.js";import{MapTileAgent as D,isMapTileAgent as I}from"./MapTileAgent.js";import{NeighborIndex as L}from"./NeighborIndex.js";import{maxPatchTesselation as x}from"./TerrainConst.js";import{isVectorTile as S,isTileTexture as O,isRasterTile as N,isImageWithType as b}from"./TerrainData.js";import{weakAssert as U,isBlendableLayerView as j,oppositeCorner as P,internalAssert as B,enableTerrainInternalChecks as C,neighborEdgeIndices as R,oppositeEdge as w,neighborCornerIndices as V,isNorth as G,isSouth as q,isWest as F,isEast as H,almostEquals as W,enableWaterproofTests as k,isWestCorner as X,isNorthCorner as Y}from"./terrainUtils.js";import{tileAgentDone as z}from"./TileAgent.js";import{TileFrustumVisibility as J}from"./TileFrustumVisibility.js";import{TilePerLayerInfo as $}from"./TilePerLayerInfo.js";import{TileUpdate as Q}from"./TileUpdate.js";import{fallsWithinLayerView as K}from"./tileUtils.js";const Z=.1;class ee{constructor(){this._lij=[0,0,0],this._children=[null,null,null,null],this._pendingUpdates=0,this._dirty=!0,this._previouslyRendered=!1,this.extent=g(),this._elevationBoundsMin=NaN,this._elevationBoundsMax=0,this.layerInfo=[[],[]],this.extentInRadians=g(),this.centerAtSeaLevel=d(),this._center=[d(),f(),d()],this.up=u(),this._withinClippingArea=!0,this._intersectsClippingArea=!0,this._maxTesselation=0,this._usedMemory=0,this._rasterTileMemory=0,this._vectorTileMemory=0,this._mapDataRefCount=0,this.screenDepth=0,this.renderOrder=0,this._edgeLen=0,this._edgeLen2=0,this._curvatureHeight=0,this.onCompressionFinished=()=>{this.setPendingUpdate(Q.TEXTURE_NOFADING),this.setMemoryDirty()},this.extentMidX=0,this.extentMidY=0,this.distanceToPOI=-1,this._lastPOI=d(),this.maxLevelDeltaNeighborCount=0,this.unmergableChildCount=0}get lij(){return this._lij}get spatialReference(){return this._surface.spatialReference??this._surface.tilingScheme.spatialReference}get elevationLevelDelta(){return this._surface.getElevationLevelDelta(this.level)}static prune(){se.prune(0),ne.prune(0),$.prune()}get _cached(){return!this.leaf&&this._mapDataRefCount<=0}get withinClippingArea(){return this._withinClippingArea}get intersectsClippingArea(){return this._intersectsClippingArea}get clippingArea(){return this._clippingArea}get parent(){return this._parent}get children(){return this._children}get surface(){return this._surface}get elevationBoundsMin(){return this._elevationBoundsMin}get elevationBoundsMax(){return this._elevationBoundsMax}get level(){return this._lij[0]}get key(){return`${this._lij[0]}/${this._lij[1]}/${this._lij[2]}`}get edgeLen(){return this._edgeLen}get radius(){return this._center[ae.MIDDLE][3]}get visible(){return this._dirty&&this.computeVisibility(),this._visible}get frustumVisibility(){return this._dirty&&this.computeVisibility(),this._frustumVisibility}computeVisibility(){this._dirty=!1;const e=this.parent,t=e?.frustumVisibility??J.INTERSECTS;this._frustumVisibility=t===J.INSIDE?J.INSIDE:t===J.OUTSIDE?J.OUTSIDE:this._calculateFrustumVisibility(this.surface.frustum);const i=this._frustumVisibility!==J.OUTSIDE&&this._intersectsClippingArea;i!==this._visible&&(this._visible=i,this._surface.emit("tiles-visibility-changed"),this._surface.renderer.setDirty(),this.updateAgentSuspension())}get _loadable(){return this.visible||this._surface.view.state.fixedContentCamera}get rendered(){const e=!!this.renderData;return e!==this._previouslyRendered&&(this._surface.emit("tiles-visibility-changed"),this._previouslyRendered=e,this._surface.renderer.setDirty()),e}init(e,t,i,s,n){this._lij[0]=e,this._lij[1]=t,this._lij[2]=i,this.ellipsoid=c(n.tilingScheme.spatialReference),n.tilingScheme.getExtent(e,t,i,this.extent),n.tilingScheme.convertExtentToRadians(this.extent,this.extentInRadians),this.extentMidX=.5*(this.extent[0]+this.extent[2]),this.extentMidY=.5*(this.extent[1]+this.extent[3]),this._withinClippingArea=!0,this._intersectsClippingArea=!0,this._clippingArea=null,this._mapDataRefCount=0,n.upsampleMapCache.pop(this.key),this._edgeLen=0,this._edgeLen2=0,this._center[ae.MIDDLE][3]=0,this.elevationLevel=e,s&&!Number.isNaN(s.elevationBoundsMin)?(this._elevationBoundsMin=s.elevationBoundsMin,this._elevationBoundsMax=s.elevationBoundsMax):(this._elevationBoundsMin=0,this._elevationBoundsMax=0),this._pendingUpdates=0,this.renderData=null,this.screenDepth=0,this._visible=!1,this._previouslyRendered=!1,this._parent=s,this.clearChildren(),this._surface=n,this.updateVisibility(),this.maxLevelDeltaNeighborCount=0,this.unmergableChildCount=0;for(const r of T){const e=n.numLayers(r),t=this.layerInfo[r];for(const i of t)i.release();t.length=e;for(let i=0;i<e;i++)t[i]=$.acquire(this._surface.upsampleInfoPool),r===E.ELEVATION&&this.findElevationBoundsForLayer(i,-1)}this.computeElevationBounds(),this._maxTesselation=Math.min(n.tilingScheme.pixelSize,x)}dispose(){null!=this._surface&&(U(!this.renderData,"tile.renderData was not unloaded"),this._surface.upsampleMapCache.pop(this.key),this.layerInfo.forEach(e=>{e.forEach(e=>e.release()),e.length=0}),this._surface=this._parent=null,this.clearChildren(),this.setMemoryDirty())}refMapData(){++this._mapDataRefCount,this._cached||this._surface.upsampleMapCache.pop(this.key)}unrefMapData(){--this._mapDataRefCount,this._cached&&this.cachedMemory>0&&this._surface.upsampleMapCache.put(this.key,this)}setMemoryDirty(){this._usedMemory=0}get usedMemory(){return this._ensureUsedMemory()+(this._cached?0:this._mapTileMemory)}get cachedMemory(){return this._ensureUsedMemory(),null==this._surface?this.usedMemory:this._cached?this._mapTileMemory:0}get _mapTileMemory(){return this._rasterTileMemory+this._vectorTileMemory}get _cpuImageMemorySize(){const e=4,t=this._surface.tilingScheme.pixelSize;return t*t*e}_ensureUsedMemory(){if(this._usedMemory>0)return this._vectorTileMemory=this.layerInfo[E.MAP].reduce((e,{data:t})=>e+(S(t)?t.usedMemoryPerReference:0),0),this._usedMemory;this._usedMemory=this._baseUsedMemory,this._rasterTileMemory=0,this._vectorTileMemory=0;for(const{data:e}of this.layerInfo[E.MAP])S(e)?this._vectorTileMemory+=e.usedMemoryPerReference:this._rasterTileMemory+=this.getTerrainDataMemory(e);for(const e of this.layerInfo[E.ELEVATION])this._usedMemory+=e.data?this._cpuImageMemorySize:0;return this.renderData&&(this._usedMemory+=this.renderData.estimatedGeometryMemoryUsage,this._rasterTileMemory+=this.renderData.texture?.cachedMemory??0),this._cached&&this._surface.upsampleMapCache.updateSize(this.key,this),this._usedMemory}getUsedMemoryForLayer(e,t){const i=this.layerInfo[e][t];return i?.data?e===E.MAP?this._cached?0:this.getTerrainDataMemory(i.data):e===E.ELEVATION?this._cpuImageMemorySize:0:0}getTerrainDataMemory(e){return O(e)?e.texture.usedMemory:N(e)?e.memoryUsage:S(e)?e.usedMemoryPerReference:b(e)||e instanceof HTMLImageElement?this._cpuImageMemorySize:0}updateScreenDepth(e){const t=this._center[ae.MIDDLE],i=e,s=t[0],n=t[1],r=t[2],a=i[2]*s+i[6]*n+i[10]*r+i[14];this.screenDepth=a<0?0:a/(i[3]*s+i[7]*n+i[11]*r+i[15])}shouldSplit(e,t,i){if(!this.visible)return Q.NONE;if(e.frustum&&(!this._intersectsClippingArea||this._calculateFrustumVisibility(e.frustum)===J.OUTSIDE))return Q.NONE;const h=this.level;s(ce,_(this._center[ae.MIDDLE]),t);let d=n(ce),u=ce,c=_(this._center[ae.MIDDLE]);s(ge,this._center[ae.TOP],t);const g=n(ge);g<d&&(d=g,u=ge,c=this._center[ae.TOP]),s(pe,this._center[ae.BOTTOM],t);const p=n(pe);if(p<d&&(d=p,u=pe,c=this._center[ae.BOTTOM]),this._edgeLen2>d&&h<e.maxLod)return Q.SPLIT;const f=Math.sqrt(d),m=e.fovX*f*2,y=this._edgeLen/m,M=()=>{if(h<e.maxLod)return this.elevationLevel=h,Q.NONE;const t=h+Math.ceil(-Math.log2(e.relativeWidthLimit/y));return t!==this.elevationLevel?(this.elevationLevel=t,Q.ELEVATION):Q.NONE},A=null!=i?i-h:1/0;if(A<=.5)return M();const v=r(this.up,ce),T=this._elevationBoundsMax-this._elevationBoundsMin,E=T/this.edgeLen;if(e.aboveGround&&v>0&&E<.001){if(v/f-Math.sin(this._curvatureHeight/(this.edgeLen*Math.SQRT1_2)*Math.PI)-E>0)return Q.NONE}const D=null!=i?3-Math.min(A,2):1;if(y*D<e.relativeWidthLimit||h>=e.maxLod)return M();if(h<7)return Q.SPLIT;a(fe,this.up,v),s(fe,fe,u);const I=n(fe);if(I<=this.radius*this.radius)return Q.SPLIT;a(fe,fe,this.radius/Math.sqrt(I)),l(fe,fe,c),s(fe,t,fe);const L=Math.min(1,(Math.abs(r(fe,this.up))+.5*T+this._curvatureHeight)/o(fe)),x=Z/e.angledSplitBias,S=e.fovY*f*2;return L*(this._edgeLen/S*D)<x*e.relativeHeightLimit?Q.NONE:Q.SPLIT}createChildren(){const e=this._children,t=this.lij[0]+1,i=2*this.lij[1],s=2*this.lij[2];return e[0]=this.surface.createTile(t,i,s,this),e[1]=this.surface.createTile(t,i,s+1,this),e[2]=this.surface.createTile(t,i+1,s,this),e[3]=this.surface.createTile(t,i+1,s+1,this),e}clearChildren(){this._children[0]=this._children[1]=this._children[2]=this._children[3]=null}get loaded(){return this.renderData?.hasGeometry??!1}load(){this.refMapData();for(const e of T)this._createOrUpdateAgents(0,e);this.surface.renderer.loadTile(this)}unload(){this.renderData&&this.unrefMapData(),this.surface.renderer.unloadTile(this);for(const e of T){const t=this.layerInfo[e];for(const e of t)e.loadingAgent&&e.loadingAgent!==z&&(ie(e.loadingAgent),e.loadingAgent=null),e.pendingUpdates=0}this.resetPendingUpdate(Q.GEOMETRY),this.resetPendingUpdate(Q.TEXTURE_NOFADING),this.resetPendingUpdate(Q.TEXTURE_FADING)}unloadMapData(){const e=this.layerInfo[E.MAP];for(const t of e)t.loadingAgent&&t.loadingAgent!==z&&(ie(t.loadingAgent),t.loadingAgent=null),t.pendingUpdates=0,t.invalidateSourceData();this.renderData&&this.renderData.releaseTexture(),this.setMemoryDirty()}updateClippingStatus(e){if(p(e,this._clippingArea))return!1;const t=this._intersectsClippingArea,i=this._withinClippingArea;null!=e?(this._intersectsClippingArea=this.intersectsExtent(e),this._withinClippingArea=this._isWithinExtent(e)):(this._intersectsClippingArea=!0,this._withinClippingArea=!0),this._clippingArea=e,this.updateVisibility();const s=i&&this._withinClippingArea,n=!(i||t||this._withinClippingArea||this._intersectsClippingArea);return!this.renderData||s||n||this.setPendingUpdate(Q.GEOMETRY),!0}updateVisibility(){this._dirty=!0,this._surface.setTileTreeDirty()}getLayerInfo(e,t){return this.layerInfo[t][e]}hasLayerData(e,t){const i=this.layerInfo[t][e];return!(!i?.data||i.dataInvalidated)}get updating(){if(this.hasPendingUpdates)return!0;for(const e of T){const t=this.layerInfo[e];for(const e of t)if(e.loadingAgent&&e.loadingAgent!==z&&e.loadingAgent.updating)return!0}return!1}_isSuspended(e){return!!this.hasPendingUpdate(Q.SPLIT)||e!==E.ELEVATION&&!this._loadable}get hasPendingUpdates(){return 0!==this._pendingUpdates}hasPendingUpdate(e){return(this._pendingUpdates&e)===e}setPendingUpdate(e){const t=this._pendingUpdates;return this._pendingUpdates|=e,e===Q.SPLIT||e===Q.MERGE?this._surface.setTileTreeDirty():this._surface.requestUpdate(),t!==this._pendingUpdates}resetPendingUpdate(e){return!!this.hasPendingUpdate(e)&&(this._pendingUpdates&=~e,!0)}requestLayerData(e,i,s){const n=this.layerInfo[i][e];if(n.waitingAgents.has(s))return console.warn("agent already requested this piece of map data (tile %s, agent tile %s, layer: %d/%d)",this._lij.toString(),s.tile.lij.toString(),i,e),!0;if(n.waitingAgents.push(s),n.data&&!n.dataInvalidated){console.warn("agent requested existing data (tile %s, agent tile %s, layer: %d/%d)",this._lij.toString(),s.tile.lij.toString(),i,e);const t=S(n.data);return s.dataArrived(this,t),!0}if(n.requestPromise)return!0;t(n.requestAbort),n.requestAbort=new AbortController;const r=this._surface.requestTileData(this,e,i,n.requestAbort);if(!r)return n.requestAbort=null,!1;const a=()=>{n.requestPromise===r&&(n.requestPromise=null,n.requestAbort=null)};return n.requestPromise=r,r.then(a,a),!0}get leaf(){return null==this._children[0]}hasLij(e){return this._lij[0]===e[0]&&this._lij[1]===e[1]&&this._lij[2]===e[2]}findByLij(e){if(this.hasLij(e))return this;const t=this._children;if(!t[0])return null;return t[0].findByLij(e)||t[1].findByLij(e)||t[2].findByLij(e)||t[3].findByLij(e)}distanceToSquared(e){return n(s(fe,_(this._center[ae.MIDDLE]),e))}containsPoint(e){const t=this.extent;return e[0]>=t[0]&&e[1]>=t[1]&&e[0]<=t[2]&&e[1]<=t[3]}containsPointXY(e,t){const i=this.extent;return e>=i[0]&&t>=i[1]&&e<=i[2]&&t<=i[3]}unrequestLayerData(e,t,i){const s=this.layerInfo[t][e],n=s.waitingAgents,r=null!=n.removeUnordered(i);U(r,"agent has not requested this piece of map data"),n.length<1&&(s.abortRequest(),this.setMemoryDirty())}dataArrived(e,t,i){const s=S(i),n=this.layerInfo[t][e];n.data=i,n.dataInvalidated=!1,n.waitingAgents.forAll(e=>e.dataArrived(this,s)),n.waitingAgents.clear(),this.setMemoryDirty()}dataMissing(e,t){const i=this.layerInfo[t][e];i.dataMissing=!0,i.waitingAgents.forAll(e=>e.dataMissing()),i.waitingAgents.clear(),this.setMemoryDirty()}updateRenderData(e,t,i){switch(i&&this.forEachLoadedNeighbor(i=>i.updateRenderData(e,t)),e){case E.MAP:return this._updateTexture(t);case E.ELEVATION:return this._updateGeometry()}}_updateTexture(e){this.renderData&&(this.resetPendingUpdate(e===v.FADING?Q.TEXTURE_NOFADING:Q.TEXTURE_FADING),this.setPendingUpdate(e===v.FADING?Q.TEXTURE_FADING:Q.TEXTURE_NOFADING))}_updateGeometry(){this.setPendingUpdate(Q.GEOMETRY);for(const e of this.layerInfo[E.ELEVATION])e.pendingUpdates|=Q.GEOMETRY}invalidateLayerData(e,t){this.layerInfo[t][e].invalidateSourceData(),this.restartAgents(t)}computeElevationBounds(){const e=this._elevationBoundsMin,t=this._elevationBoundsMax;let i=1/0,s=-1/0;const n=this.layerInfo[E.ELEVATION];let r=!0;for(const a of n)null!=a.elevationBounds&&(i=Math.min(i,a.elevationBounds.min),s=Math.max(s,a.elevationBounds.max),a.elevationBounds.hasNoDataValues||(r=!1));r&&(i=Math.min(i,0),s=Math.max(s,0)),e===i&&t===s||(this._elevationBoundsMin=i,this._elevationBoundsMax=s,this.updateRadiusAndCenter(),this._surface.setTileTreeDirty())}_updateCenter(){const e=this._elevationBoundsMin,t=this._elevationBoundsMax,i=.5*(e+t),s=this._center;a(fe,this.up,i),l(_(s[ae.MIDDLE]),this.centerAtSeaLevel,fe),a(fe,this.up,e),l(s[ae.TOP],this.centerAtSeaLevel,fe),a(fe,this.up,t),l(s[ae.BOTTOM],this.centerAtSeaLevel,fe)}findElevationBoundsForLayer(e,t){const i=this.layerInfo[E.ELEVATION][e],s=this.elevationLevelDelta,n=Math.max(this.elevationLevel-s,0),r=i.elevationBounds;if(null!=r&&r.level>=t&&r.level<=n)return;const a=this._surface.layerViewByIndex(e,E.ELEVATION);if(!K(this,a))return;const l=re;let o=!1;const h=i.data;if(h&&h.level<=n){const e=i.data;l.min=e.samplerData.data.minValue,l.max=e.samplerData.data.maxValue,l.hasNoDataValues=e.samplerData.data.hasNoDataValues,l.level=this.level,o=!0}else{let t,i,r=0;for(let a=this._parent;a&&(!i||r<s)&&(r=this.elevationLevel-a.level,t=i||t,i=a.layerInfo[E.ELEVATION][e].data,!(!i&&t&&a.level<=n));a=a.parent);i=i||t,i&&(i.computeMinMaxValue(this._lij[0],this._lij[1],this._lij[2],l),l.min!==1/0&&(l.level=i.level,o=!0))}o&&(null==i.elevationBounds&&(i.elevationBounds=new y),i.elevationBounds.copyFrom(l))}modifyLayers(e,t,i){const s=this.layerInfo[i];for(const a of s)a.loadingAgent&&a.loadingAgent!==z&&(ie(a.loadingAgent),a.loadingAgent=null),a.waitingAgents.clear();for(let a=0;a<s.length;++a)void 0===e[a]&&s[a].release();const n=new Array(...s),r=t.length;s.length=r;for(let a=0;a<r;a++){const e=t[a];s[a]=e>-1?n[e]:$.acquire(this._surface.upsampleInfoPool)}this.setMemoryDirty()}restartAgents(e){this.renderData&&(this._createOrUpdateAgents(0,e),this.updateRenderData(e,v.FADING))}updateAgents(e){if(this.renderData){const t=this.layerInfo[e];for(const e of t)e.loadingAgent===z&&(e.loadingAgent=null);this._createOrUpdateAgents(0,e)}}updateAgentSuspension(){for(const e of T){const t=this._isSuspended(e);for(const i of this.layerInfo[e])i.loadingAgent&&i.loadingAgent!==z&&(i.loadingAgent.setSuspension(t),i.loadingAgent===z&&this.updateRenderData(e,v.FADING))}}removeLayerAgent(e,t){const i=this.layerInfo[t][e];i.loadingAgent&&i.loadingAgent!==z&&i.loadingAgent.dispose(),i.loadingAgent=null}agentDone(e,t){const i=this.layerInfo[t][e];i.loadingAgent=z,i.data||null!=i.upsampleInfo||this._createOrUpdateAgents(e+1,t)}_hasBlendableAncestor(e){return"normal"!==e.blendMode||m(e.parent)&&this._hasBlendableAncestor(e.parent)}_hasBlendModes(e,t,i){for(let s=e;s<t;++s){const e=this._surface.layerViewByIndex(s,i);if(j(e)&&"normal"!==e?.layer?.blendMode||m(e?.layer?.parent)&&this._hasBlendableAncestor(e?.layer?.parent))return!0}return!1}_createOrUpdateAgents(e,t){const i=this.layerInfo[t];if(0===i.length)return;const s=this._isSuspended(t);for(let n=e;n<i.length;++n){const r=i[n],a=this._surface.layerViewByIndex(n,t);let l=!1;if(r.loadingAgent?K(this,a)?(r.loadingAgent!==z&&r.loadingAgent.setSuspension(s),r.loadingAgent!==z&&(l=r.loadingAgent.update())):r.dispose():K(this,a)&&(r.loadingAgent=te(this,n,t,s),l=r.loadingAgent.startLoading(),l?r.loadingAgent===z&&this.setPendingUpdate(Q.GEOMETRY):(ie(r.loadingAgent),r.loadingAgent=z)),r.loadingAgent===z&&this.updateRenderData(t,v.FADING),!this._hasBlendModes(e,i.length,t)&&l&&a.isOpaque)return}}_isWithinExtent(e){const t=this.extent;return t[0]>=e[0]&&e[2]>=t[2]&&t[1]>=e[1]&&e[3]>=t[3]}intersectsExtent(e){const t=this.extent;return t[2]>=e[0]&&e[2]>=t[0]&&t[3]>=e[1]&&e[3]>=t[1]}getElevationVerticesPerSide(t){const i=this.elevationLevel-this.level,s=Math.max(this.level-t,this.elevationLevelDelta-i),n=e(1+(this._maxTesselation>>s),2,this._maxTesselation+1),r=this.minimumVerticesPerSide;return Math.max(n,r)}_findLIJ(e,t){if(!e)return null;const i=this.surface.rootTiles;if(null!=i)for(const s of i)if(le(s,e)){let i=s,n=e[0]-i.level-1;for(;n>=0&&!i.leaf&&!t(i);){const t=e[1]>>n&1,s=e[2]>>n&1;i=i.children[2*t+s],n--}return t(i)?i:null}return null}findNeighborTile(e,t){const i=this._lij,s=this._getNeighborLIJ(i,e);return s?oe(i,s)?t(this)?this:null:this._findLIJ(s,t):null}findCorner(e,t){const i=e===L.NORTH_EAST?1:e===L.NORTH_WEST?0:e===L.SOUTH_WEST?2:3;let s=this;for(;s.children[0]&&(!t||!t(s));)s=s.children[i];return s}findNeighborCornerTileExact(e,t){return this.findNeighborTile(e,e=>t(e)||e.level===this.level)?.findCorner(P(e),t)||null}forAllSubtreeOnSide(e,t){const i=e===L.NORTH?[0,1]:e===L.NORTH_EAST?[1]:e===L.EAST?[1,3]:e===L.SOUTH_EAST?[3]:e===L.SOUTH?[2,3]:e===L.SOUTH_WEST?[2]:e===L.WEST?[0,2]:[0],s=e=>{const n=e.children;!t(e)&&n[0]&&i.forEach(e=>s(n[e]))};s(this)}getNeighborEdgeStartVertexIndex(e,t){if(!t)return 0;const i=this.level-t.level;if(B(!C||i>=0),0===i)return 0;const s=2**i,n=!(1&~e),r=n?0:1,a=t.lij[r+1]*s,l=this._lij[r+1],o=l-a,h=n?s-1-o:o;return C&&(B(a<=l&&l<a+s),B(0<=h&&h<s)),h}forEachLoadedNeighbor(e){const t=this.level,i=e=>e.level===t||e.loaded;R.forEach(t=>{const s=this.findNeighborTile(t,i);null!=s&&s!==this&&s.forAllSubtreeOnSide(w(t),i=>!!i.loaded&&(e(i,t),!0))}),V.forEach(t=>{const s=this.findNeighborTile(t,i)?.findCorner(P(t),e=>e.loaded);B(!s||he(this,s,t)),s?.loaded&&e(s,t)})}_getNeighborLIJ(e,t){const i=G(t)?-1:q(t)?1:0,s=F(t)?-1:H(t)?1:0,n=[e[0],e[1]+i,e[2]+s];return n[1]<0?null:this.surface.isGlobal?this._wrapLIJ(n):n[2]<0?null:n}_wrapLIJ(e){return!e||e[1]<0||e[1]>=2**e[0]?null:this.surface.wrapEastWest(e)}isEdgeNeighbor(e,t){if(null==e)return!1;if(0===this.level&&0===e.level){if(this._eastEnd&&e._westEnd&&t===L.EAST)return!0;if(this._westEnd&&e._eastEnd&&t===L.WEST)return!0}const i=Math.max(1e-6*(this.extent[2]-this.extent[0]),1);switch(t){case L.NORTH:return W(this.extent[3],e.extent[1],i);case L.SOUTH:return W(this.extent[1],e.extent[3],i);case L.EAST:return W(this.extent[2],e.extent[0],i)||W(this.extent[2],-e.extent[0],i);case L.WEST:return W(this.extent[0],e.extent[2],i)||W(this.extent[0],-e.extent[2],i)}}get _eastEnd(){return this._lij[2]===this.surface.lijEastEnd(this.level)-1}get _westEnd(){return 0===this._lij[2]}checkGeometryWaterproofness(){k&&(B(this.loaded),this.renderData?.checkGeometryWaterproofness())}shouldHaveNeighbor(e){const t=this.extent,i=this.surface.rootTilesExtent,s=.25*(t[2]-t[0]);if(G(e)&&t[3]+s>=i[3])return!1;if(q(e)&&t[1]-s<=i[1])return!1;const n=this.surface.isGlobal;return!(!n&&F(e)&&t[0]-s<=i[0])&&!(!n&&H(e)&&t[2]+s>=i[2])}updateDistanceToPOI(e){const t=this._lastPOI;if(this.distanceToPOI>=0&&t[0]===e[0]&&t[1]===e[1]&&t[2]===e[2])return;h(this._lastPOI,e);const i=this._center[ae.MIDDLE],s=e[0]-i[0],n=e[1]-i[1],r=e[2]-i[2];this.distanceToPOI=s*s+n*n+r*r}}function te(e,t,i,s){const n=i===E.ELEVATION?ne.acquire():se.acquire();return n.init(e,t,i,s),n}function ie(e){e.dispose(),A(e)?ne.release(e):I(e)&&se.release(e)}const se=new i(D),ne=new i(M),re=new y;var ae;function le(e,t){const i=e.lij,s=t[0]-i[0];return!(s<0)&&(t[1]>>s===i[1]&&t[2]>>s===i[2])}function oe(e,t){return e[0]===t[0]&&e[1]===t[1]&&e[2]===t[2]}function he(e,t,i){return null!=e&&null!=t&&t!==e&&(e.level>=t.level?de(e,t,i):de(t,e,P(i)))}function de(e,t,i){B(e.level>=t.level);const s=X(i),n=Y(i),r=e.extent,a=t.extent,l=[s?r[0]:r[2],n?r[3]:r[1]],o=[s?a[2]:a[0],n?a[1]:a[3]],h=1e-5*(r[2]-r[0]),d=W(l[0],o[0],h)||e.surface.isGlobal&&W(l[0],-o[0],h),u=W(l[1],o[1],h);if(d&&u)return!0;if(e.level===t.level)return B(!1),!1;if(!d&&!u)return B(!1),!1;const c=d?ue(a[1],a[3],r[1],r[3],h):ue(a[0],a[2],r[0],r[2],h);return B(c),c}function ue(e,t,i,s,n){return e-n<=i&&i<=s&&s<=t+n}!function(e){e[e.TOP=0]="TOP",e[e.MIDDLE=1]="MIDDLE",e[e.BOTTOM=2]="BOTTOM"}(ae||(ae={}));const ce=d(),ge=d(),pe=d(),fe=d();export{ae as CenterPosition,ee as Tile,he as isCornerNeighbor,oe as lijEquals};
5
+ import{clamp as e}from"../../../core/mathUtils.js";import{abortMaybe as t}from"../../../core/maybe.js";import i from"../../../core/ObjectPool.js";import{d as s,k as n,e as r,g as a,f as l,l as o,c as h}from"../../../chunks/vec32.js";import{create as d,unitZ as u}from"../../../core/libs/gl-matrix-2/factories/vec3f64.js";import{getReferenceEllipsoid as c}from"../../../geometry/ellipsoidUtils.js";import{create as g,equals as p}from"../../../geometry/support/aaBoundingRect.js";import{c as f,a as _}from"../../../chunks/sphere.js";import{isGroupLayer as m}from"../../../layers/support/layerUtils.js";import{ElevationBounds as y}from"./ElevationBounds.js";import{ElevationTileAgent as v,isElevationTileAgent as M}from"./ElevationTileAgent.js";import{LayerClasses as A}from"./LayerClass.js";import{MapTileAgent as x,isMapTileAgent as D}from"./MapTileAgent.js";import{maxPatchTesselation as b}from"./TerrainConst.js";import{isVectorTile as L,isTileTexture as I,isRasterTile as j,isImageWithType as T}from"./TerrainData.js";import{weakAssert as C,isBlendableLayerView as B,oppositeCorner as U,internalAssert as S,enableTerrainInternalChecks as P,neighborEdgeIndices as w,oppositeEdge as E,neighborCornerIndices as R,almostEquals as q,enableWaterproofTests as V,isNorth as N,isSouth as O,isWest as k,isEast as G,isWestCorner as z,isNorthCorner as F}from"./terrainUtils.js";import{tileAgentDone as W}from"./TileAgent.js";import{TilePerLayerInfo as H}from"./TilePerLayerInfo.js";import{fallsWithinLayerView as J}from"./tileUtils.js";const X=.1;class Y{constructor(){this._lij=[0,0,0],this._children=[null,null,null,null],this._pendingUpdates=0,this._dirty=!0,this._previouslyRendered=!1,this.extent=g(),this._elevationBoundsMin=NaN,this._elevationBoundsMax=0,this.layerInfo=[[],[]],this.extentInRadians=g(),this.centerAtSeaLevel=d(),this._center=[d(),f(),d()],this.up=u(),this._withinClippingArea=!0,this._intersectsClippingArea=!0,this._maxTesselation=0,this._usedMemory=0,this._rasterTileMemory=0,this._vectorTileMemory=0,this._mapDataRefCount=0,this.screenDepth=0,this.renderOrder=0,this._edgeLen=0,this._edgeLen2=0,this._curvatureHeight=0,this.onCompressionFinished=()=>{this.setPendingUpdate(16),this.setMemoryDirty()},this.extentMidX=0,this.extentMidY=0,this.distanceToPOI=-1,this._lastPOI=d(),this.maxLevelDeltaNeighborCount=0,this.unmergableChildCount=0}get lij(){return this._lij}get spatialReference(){return this._surface.spatialReference??this._surface.tilingScheme.spatialReference}get elevationLevelDelta(){return this._surface.getElevationLevelDelta(this.level)}static prune(){K.prune(0),Z.prune(0),H.prune()}get _cached(){return!this.leaf&&this._mapDataRefCount<=0}get withinClippingArea(){return this._withinClippingArea}get intersectsClippingArea(){return this._intersectsClippingArea}get clippingArea(){return this._clippingArea}get parent(){return this._parent}get children(){return this._children}get surface(){return this._surface}get elevationBoundsMin(){return this._elevationBoundsMin}get elevationBoundsMax(){return this._elevationBoundsMax}get level(){return this._lij[0]}get key(){return`${this._lij[0]}/${this._lij[1]}/${this._lij[2]}`}get edgeLen(){return this._edgeLen}get radius(){return this._center[1][3]}get visible(){return this._dirty&&this.computeVisibility(),this._visible}get frustumVisibility(){return this._dirty&&this.computeVisibility(),this._frustumVisibility}computeVisibility(){this._dirty=!1;const e=this.parent,t=e?.frustumVisibility??1;this._frustumVisibility=0===t?0:2===t?2:this._calculateFrustumVisibility(this.surface.frustum);const i=2!==this._frustumVisibility&&this._intersectsClippingArea;i!==this._visible&&(this._visible=i,this._surface.emit("tiles-visibility-changed"),this._surface.renderer.setDirty(),this.updateAgentSuspension())}get _loadable(){return this.visible||this._surface.view.state.fixedContentCamera}get rendered(){const e=!!this.renderData;return e!==this._previouslyRendered&&(this._surface.emit("tiles-visibility-changed"),this._previouslyRendered=e,this._surface.renderer.setDirty()),e}init(e,t,i,s,n){this._lij[0]=e,this._lij[1]=t,this._lij[2]=i,this.ellipsoid=c(n.tilingScheme.spatialReference),n.tilingScheme.getExtent(e,t,i,this.extent),n.tilingScheme.convertExtentToRadians(this.extent,this.extentInRadians),this.extentMidX=.5*(this.extent[0]+this.extent[2]),this.extentMidY=.5*(this.extent[1]+this.extent[3]),this._withinClippingArea=!0,this._intersectsClippingArea=!0,this._clippingArea=null,this._mapDataRefCount=0,n.upsampleMapCache.pop(this.key),this._edgeLen=0,this._edgeLen2=0,this._center[1][3]=0,this.elevationLevel=e,s&&!Number.isNaN(s.elevationBoundsMin)?(this._elevationBoundsMin=s.elevationBoundsMin,this._elevationBoundsMax=s.elevationBoundsMax):(this._elevationBoundsMin=0,this._elevationBoundsMax=0),this._pendingUpdates=0,this.renderData=null,this.screenDepth=0,this._visible=!1,this._previouslyRendered=!1,this._parent=s,this.clearChildren(),this._surface=n,this.updateVisibility(),this.maxLevelDeltaNeighborCount=0,this.unmergableChildCount=0;for(const r of A){const e=n.numLayers(r),t=this.layerInfo[r];for(const i of t)i.release();t.length=e;for(let i=0;i<e;i++)t[i]=H.acquire(this._surface.upsampleInfoPool),0===r&&this.findElevationBoundsForLayer(i,-1)}this.computeElevationBounds(),this._maxTesselation=Math.min(n.tilingScheme.pixelSize,b)}dispose(){null!=this._surface&&(C(!this.renderData,"tile.renderData was not unloaded"),this._surface.upsampleMapCache.pop(this.key),this.layerInfo.forEach(e=>{e.forEach(e=>e.release()),e.length=0}),this._surface=this._parent=null,this.clearChildren(),this.setMemoryDirty())}refMapData(){++this._mapDataRefCount,this._cached||this._surface.upsampleMapCache.pop(this.key)}unrefMapData(){--this._mapDataRefCount,this._cached&&this.cachedMemory>0&&this._surface.upsampleMapCache.put(this.key,this)}setMemoryDirty(){this._usedMemory=0}get usedMemory(){return this._ensureUsedMemory()+(this._cached?0:this._mapTileMemory)}get cachedMemory(){return this._ensureUsedMemory(),null==this._surface?this.usedMemory:this._cached?this._mapTileMemory:0}get _mapTileMemory(){return this._rasterTileMemory+this._vectorTileMemory}get _cpuImageMemorySize(){const e=4,t=this._surface.tilingScheme.pixelSize;return t*t*e}_ensureUsedMemory(){if(this._usedMemory>0)return this._vectorTileMemory=this.layerInfo[1].reduce((e,{data:t})=>e+(L(t)?t.usedMemoryPerReference:0),0),this._usedMemory;this._usedMemory=this._baseUsedMemory,this._rasterTileMemory=0,this._vectorTileMemory=0;for(const{data:e}of this.layerInfo[1])L(e)?this._vectorTileMemory+=e.usedMemoryPerReference:this._rasterTileMemory+=this.getTerrainDataMemory(e);for(const e of this.layerInfo[0])this._usedMemory+=e.data?this._cpuImageMemorySize:0;return this.renderData&&(this._usedMemory+=this.renderData.estimatedGeometryMemoryUsage,this._rasterTileMemory+=this.renderData.texture?.cachedMemory??0),this._cached&&this._surface.upsampleMapCache.updateSize(this.key,this),this._usedMemory}getUsedMemoryForLayer(e,t){const i=this.layerInfo[e][t];return i?.data?1===e?this._cached?0:this.getTerrainDataMemory(i.data):0===e?this._cpuImageMemorySize:0:0}getTerrainDataMemory(e){return I(e)?e.texture.usedMemory:j(e)?e.memoryUsage:L(e)?e.usedMemoryPerReference:T(e)||e instanceof HTMLImageElement?this._cpuImageMemorySize:0}updateScreenDepth(e){const t=this._center[1],i=e,s=t[0],n=t[1],r=t[2],a=i[2]*s+i[6]*n+i[10]*r+i[14];this.screenDepth=a<0?0:a/(i[3]*s+i[7]*n+i[11]*r+i[15])}shouldSplit(e,t,i){if(!this.visible)return 0;if(e.frustum&&(!this._intersectsClippingArea||2===this._calculateFrustumVisibility(e.frustum)))return 0;const h=this.level;s(ae,_(this._center[1]),t);let d=n(ae),u=ae,c=_(this._center[1]);s(le,this._center[0],t);const g=n(le);g<d&&(d=g,u=le,c=this._center[0]),s(oe,this._center[2],t);const p=n(oe);if(p<d&&(d=p,u=oe,c=this._center[2]),this._edgeLen2>d&&h<e.maxLod)return 1;const f=Math.sqrt(d),m=e.fovX*f*2,y=this._edgeLen/m,v=()=>{if(h<e.maxLod)return this.elevationLevel=h,0;const t=h+Math.ceil(-Math.log2(e.relativeWidthLimit/y));return t!==this.elevationLevel?(this.elevationLevel=t,2):0},M=null!=i?i-h:1/0;if(M<=.5)return v();const A=r(this.up,ae),x=this._elevationBoundsMax-this._elevationBoundsMin,D=x/this.edgeLen;if(e.aboveGround&&A>0&&D<.001){if(A/f-Math.sin(this._curvatureHeight/(this.edgeLen*Math.SQRT1_2)*Math.PI)-D>0)return 0}const b=null!=i?3-Math.min(M,2):1;if(y*b<e.relativeWidthLimit||h>=e.maxLod)return v();if(h<7)return 1;a(he,this.up,A),s(he,he,u);const L=n(he);if(L<=this.radius*this.radius)return 1;a(he,he,this.radius/Math.sqrt(L)),l(he,he,c),s(he,t,he);const I=Math.min(1,(Math.abs(r(he,this.up))+.5*x+this._curvatureHeight)/o(he)),j=X/e.angledSplitBias,T=e.fovY*f*2;return I*(this._edgeLen/T*b)<j*e.relativeHeightLimit?0:1}createChildren(){const e=this._children,t=this.lij[0]+1,i=2*this.lij[1],s=2*this.lij[2];return e[0]=this.surface.createTile(t,i,s,this),e[1]=this.surface.createTile(t,i,s+1,this),e[2]=this.surface.createTile(t,i+1,s,this),e[3]=this.surface.createTile(t,i+1,s+1,this),e}clearChildren(){this._children[0]=this._children[1]=this._children[2]=this._children[3]=null}get loaded(){return this.renderData?.hasGeometry??!1}load(){this.refMapData();for(const e of A)this._createOrUpdateAgents(0,e);this.surface.renderer.loadTile(this)}unload(){this.renderData&&this.unrefMapData(),this.surface.renderer.unloadTile(this);for(const e of A){const t=this.layerInfo[e];for(const e of t)e.loadingAgent&&e.loadingAgent!==W&&(Q(e.loadingAgent),e.loadingAgent=null),e.pendingUpdates=0}this.resetPendingUpdate(8),this.resetPendingUpdate(16),this.resetPendingUpdate(32)}unloadMapData(){const e=this.layerInfo[1];for(const t of e)t.loadingAgent&&t.loadingAgent!==W&&(Q(t.loadingAgent),t.loadingAgent=null),t.pendingUpdates=0,t.invalidateSourceData();this.renderData&&this.renderData.releaseTexture(),this.setMemoryDirty()}updateClippingStatus(e){if(p(e,this._clippingArea))return!1;const t=this._intersectsClippingArea,i=this._withinClippingArea;null!=e?(this._intersectsClippingArea=this.intersectsExtent(e),this._withinClippingArea=this._isWithinExtent(e)):(this._intersectsClippingArea=!0,this._withinClippingArea=!0),this._clippingArea=e,this.updateVisibility();const s=i&&this._withinClippingArea,n=!(i||t||this._withinClippingArea||this._intersectsClippingArea);return!this.renderData||s||n||this.setPendingUpdate(8),!0}updateVisibility(){this._dirty=!0,this._surface.setTileTreeDirty()}getLayerInfo(e,t){return this.layerInfo[t][e]}hasLayerData(e,t){const i=this.layerInfo[t][e];return!(!i?.data||i.dataInvalidated)}get updating(){if(this.hasPendingUpdates)return!0;for(const e of A){const t=this.layerInfo[e];for(const e of t)if(e.loadingAgent&&e.loadingAgent!==W&&e.loadingAgent.updating)return!0}return!1}_isSuspended(e){return!!this.hasPendingUpdate(1)||0!==e&&!this._loadable}get hasPendingUpdates(){return 0!==this._pendingUpdates}hasPendingUpdate(e){return(this._pendingUpdates&e)===e}setPendingUpdate(e){const t=this._pendingUpdates;return this._pendingUpdates|=e,1===e||4===e?this._surface.setTileTreeDirty():this._surface.requestUpdate(),t!==this._pendingUpdates}resetPendingUpdate(e){return!!this.hasPendingUpdate(e)&&(this._pendingUpdates&=~e,!0)}requestLayerData(e,i,s){const n=this.layerInfo[i][e];if(n.waitingAgents.has(s))return console.warn("agent already requested this piece of map data (tile %s, agent tile %s, layer: %d/%d)",this._lij.toString(),s.tile.lij.toString(),i,e),!0;if(n.waitingAgents.push(s),n.data&&!n.dataInvalidated){console.warn("agent requested existing data (tile %s, agent tile %s, layer: %d/%d)",this._lij.toString(),s.tile.lij.toString(),i,e);const t=L(n.data);return s.dataArrived(this,t),!0}if(n.requestPromise)return!0;t(n.requestAbort),n.requestAbort=new AbortController;const r=this._surface.requestTileData(this,e,i,n.requestAbort);if(!r)return n.requestAbort=null,!1;const a=()=>{n.requestPromise===r&&(n.requestPromise=null,n.requestAbort=null)};return n.requestPromise=r,r.then(a,a),!0}get leaf(){return null==this._children[0]}hasLij(e){return this._lij[0]===e[0]&&this._lij[1]===e[1]&&this._lij[2]===e[2]}findByLij(e){if(this.hasLij(e))return this;const t=this._children;if(!t[0])return null;return t[0].findByLij(e)||t[1].findByLij(e)||t[2].findByLij(e)||t[3].findByLij(e)}distanceToSquared(e){return n(s(he,_(this._center[1]),e))}containsPoint(e){const t=this.extent;return e[0]>=t[0]&&e[1]>=t[1]&&e[0]<=t[2]&&e[1]<=t[3]}containsPointXY(e,t){const i=this.extent;return e>=i[0]&&t>=i[1]&&e<=i[2]&&t<=i[3]}unrequestLayerData(e,t,i){const s=this.layerInfo[t][e],n=s.waitingAgents,r=null!=n.removeUnordered(i);C(r,"agent has not requested this piece of map data"),n.length<1&&(s.abortRequest(),this.setMemoryDirty())}dataArrived(e,t,i){const s=L(i),n=this.layerInfo[t][e];n.data=i,n.dataInvalidated=!1,n.waitingAgents.forAll(e=>e.dataArrived(this,s)),n.waitingAgents.clear(),this.setMemoryDirty()}dataMissing(e,t){const i=this.layerInfo[t][e];i.dataMissing=!0,i.waitingAgents.forAll(e=>e.dataMissing()),i.waitingAgents.clear(),this.setMemoryDirty()}updateRenderData(e,t,i){switch(i&&this.forEachLoadedNeighbor(i=>i.updateRenderData(e,t)),e){case 1:return this._updateTexture(t);case 0:return this._updateGeometry()}}_updateTexture(e){this.renderData&&(this.resetPendingUpdate(0===e?16:32),this.setPendingUpdate(0===e?32:16))}_updateGeometry(){this.setPendingUpdate(8);for(const e of this.layerInfo[0])e.pendingUpdates|=8}invalidateLayerData(e,t){this.layerInfo[t][e].invalidateSourceData(),this.restartAgents(t)}computeElevationBounds(){const e=this._elevationBoundsMin,t=this._elevationBoundsMax;let i=1/0,s=-1/0;const n=this.layerInfo[0];let r=!0;for(const a of n)null!=a.elevationBounds&&(i=Math.min(i,a.elevationBounds.min),s=Math.max(s,a.elevationBounds.max),a.elevationBounds.hasNoDataValues||(r=!1));r&&(i=Math.min(i,0),s=Math.max(s,0)),e===i&&t===s||(this._elevationBoundsMin=i,this._elevationBoundsMax=s,this.updateRadiusAndCenter(),this._surface.setTileTreeDirty())}_updateCenter(){const e=this._elevationBoundsMin,t=this._elevationBoundsMax,i=.5*(e+t),s=this._center;a(he,this.up,i),l(_(s[1]),this.centerAtSeaLevel,he),a(he,this.up,e),l(s[0],this.centerAtSeaLevel,he),a(he,this.up,t),l(s[2],this.centerAtSeaLevel,he)}findElevationBoundsForLayer(e,t){const i=this.layerInfo[0][e],s=this.elevationLevelDelta,n=Math.max(this.elevationLevel-s,0),r=i.elevationBounds;if(null!=r&&r.level>=t&&r.level<=n)return;const a=this._surface.layerViewByIndex(e,0);if(!J(this,a))return;const l=ee;let o=!1;const h=i.data;if(h&&h.level<=n){const e=i.data;l.min=e.samplerData.data.minValue,l.max=e.samplerData.data.maxValue,l.hasNoDataValues=e.samplerData.data.hasNoDataValues,l.level=this.level,o=!0}else{let t,i,r=0;for(let a=this._parent;a&&(!i||r<s)&&(r=this.elevationLevel-a.level,t=i||t,i=a.layerInfo[0][e].data,!(!i&&t&&a.level<=n));a=a.parent);i=i||t,i&&(i.computeMinMaxValue(this._lij[0],this._lij[1],this._lij[2],l),l.min!==1/0&&(l.level=i.level,o=!0))}o&&(null==i.elevationBounds&&(i.elevationBounds=new y),i.elevationBounds.copyFrom(l))}modifyLayers(e,t,i){const s=this.layerInfo[i];for(const a of s)a.loadingAgent&&a.loadingAgent!==W&&(Q(a.loadingAgent),a.loadingAgent=null),a.waitingAgents.clear();for(let a=0;a<s.length;++a)void 0===e[a]&&s[a].release();const n=new Array(...s),r=t.length;s.length=r;for(let a=0;a<r;a++){const e=t[a];s[a]=e>-1?n[e]:H.acquire(this._surface.upsampleInfoPool)}this.setMemoryDirty()}restartAgents(e){this.renderData&&(this._createOrUpdateAgents(0,e),this.updateRenderData(e,0))}updateAgents(e){if(this.renderData){const t=this.layerInfo[e];for(const e of t)e.loadingAgent===W&&(e.loadingAgent=null);this._createOrUpdateAgents(0,e)}}updateAgentSuspension(){for(const e of A){const t=this._isSuspended(e);for(const i of this.layerInfo[e])i.loadingAgent&&i.loadingAgent!==W&&(i.loadingAgent.setSuspension(t),i.loadingAgent===W&&this.updateRenderData(e,0))}}removeLayerAgent(e,t){const i=this.layerInfo[t][e];i.loadingAgent&&i.loadingAgent!==W&&i.loadingAgent.dispose(),i.loadingAgent=null}agentDone(e,t){const i=this.layerInfo[t][e];i.loadingAgent=W,i.data||null!=i.upsampleInfo||this._createOrUpdateAgents(e+1,t)}_hasBlendableAncestor(e){return"normal"!==e.blendMode||m(e.parent)&&this._hasBlendableAncestor(e.parent)}_hasBlendModes(e,t,i){for(let s=e;s<t;++s){const e=this._surface.layerViewByIndex(s,i);if(B(e)&&"normal"!==e?.layer?.blendMode||m(e?.layer?.parent)&&this._hasBlendableAncestor(e?.layer?.parent))return!0}return!1}_createOrUpdateAgents(e,t){const i=this.layerInfo[t];if(0===i.length)return;const s=this._isSuspended(t);for(let n=e;n<i.length;++n){const r=i[n],a=this._surface.layerViewByIndex(n,t);let l=!1;if(r.loadingAgent?J(this,a)?(r.loadingAgent!==W&&r.loadingAgent.setSuspension(s),r.loadingAgent!==W&&(l=r.loadingAgent.update())):r.dispose():J(this,a)&&(r.loadingAgent=$(this,n,t,s),l=r.loadingAgent.startLoading(),l?r.loadingAgent===W&&this.setPendingUpdate(8):(Q(r.loadingAgent),r.loadingAgent=W)),r.loadingAgent===W&&this.updateRenderData(t,0),!a.destroyed&&!this._hasBlendModes(e,i.length,t)&&l&&a.isOpaque)return}}_isWithinExtent(e){const t=this.extent;return t[0]>=e[0]&&e[2]>=t[2]&&t[1]>=e[1]&&e[3]>=t[3]}intersectsExtent(e){const t=this.extent;return t[2]>=e[0]&&e[2]>=t[0]&&t[3]>=e[1]&&e[3]>=t[1]}getElevationVerticesPerSide(t){const i=this.elevationLevel-this.level,s=Math.max(this.level-t,this.elevationLevelDelta-i),n=e(1+(this._maxTesselation>>s),2,this._maxTesselation+1),r=this.minimumVerticesPerSide;return Math.max(n,r)}_findLIJ(e,t){if(!e)return null;const i=this.surface.rootTiles;if(null!=i)for(const s of i)if(te(s,e)){let i=s,n=e[0]-i.level-1;for(;n>=0&&!i.leaf&&!t(i);){const t=e[1]>>n&1,s=e[2]>>n&1;i=i.children[2*t+s],n--}return t(i)?i:null}return null}findNeighborTile(e,t){const i=this._lij,s=this._getNeighborLIJ(i,e);return s?ie(i,s)?t(this)?this:null:this._findLIJ(s,t):null}findCorner(e,t){const i=1===e?1:7===e?0:5===e?2:3;let s=this;for(;s.children[0]&&(!t||!t(s));)s=s.children[i];return s}findNeighborCornerTileExact(e,t){return this.findNeighborTile(e,e=>t(e)||e.level===this.level)?.findCorner(U(e),t)||null}forAllSubtreeOnSide(e,t){const i=0===e?[0,1]:1===e?[1]:2===e?[1,3]:3===e?[3]:4===e?[2,3]:5===e?[2]:6===e?[0,2]:[0],s=e=>{const n=e.children;!t(e)&&n[0]&&i.forEach(e=>s(n[e]))};s(this)}getNeighborEdgeStartVertexIndex(e,t){if(!t)return 0;const i=this.level-t.level;if(S(!P||i>=0),0===i)return 0;const s=2**i,n=!(1&~e),r=n?0:1,a=t.lij[r+1]*s,l=this._lij[r+1],o=l-a,h=n?s-1-o:o;return P&&(S(a<=l&&l<a+s),S(0<=h&&h<s)),h}forEachLoadedNeighbor(e){const t=this.level,i=e=>e.level===t||e.loaded;w.forEach(t=>{const s=this.findNeighborTile(t,i);null!=s&&s!==this&&s.forAllSubtreeOnSide(E(t),i=>!!i.loaded&&(e(i,t),!0))}),R.forEach(t=>{const s=this.findNeighborTile(t,i)?.findCorner(U(t),e=>e.loaded);S(!s||se(this,s,t)),s?.loaded&&e(s,t)})}_getNeighborLIJ(e,t){const i=N(t)?-1:O(t)?1:0,s=k(t)?-1:G(t)?1:0,n=[e[0],e[1]+i,e[2]+s];return n[1]<0?null:this.surface.isGlobal?this._wrapLIJ(n):n[2]<0?null:n}_wrapLIJ(e){return!e||e[1]<0||e[1]>=2**e[0]?null:this.surface.wrapEastWest(e)}isEdgeNeighbor(e,t){if(null==e)return!1;if(0===this.level&&0===e.level){if(this._eastEnd&&e._westEnd&&2===t)return!0;if(this._westEnd&&e._eastEnd&&6===t)return!0}const i=Math.max(1e-6*(this.extent[2]-this.extent[0]),1);switch(t){case 0:return q(this.extent[3],e.extent[1],i);case 4:return q(this.extent[1],e.extent[3],i);case 2:return q(this.extent[2],e.extent[0],i)||q(this.extent[2],-e.extent[0],i);case 6:return q(this.extent[0],e.extent[2],i)||q(this.extent[0],-e.extent[2],i)}}get _eastEnd(){return this._lij[2]===this.surface.lijEastEnd(this.level)-1}get _westEnd(){return 0===this._lij[2]}checkGeometryWaterproofness(){V&&(S(this.loaded),this.renderData?.checkGeometryWaterproofness())}shouldHaveNeighbor(e){const t=this.extent,i=this.surface.rootTilesExtent,s=.25*(t[2]-t[0]);if(N(e)&&t[3]+s>=i[3])return!1;if(O(e)&&t[1]-s<=i[1])return!1;const n=this.surface.isGlobal;return!(!n&&k(e)&&t[0]-s<=i[0])&&!(!n&&G(e)&&t[2]+s>=i[2])}updateDistanceToPOI(e){const t=this._lastPOI;if(this.distanceToPOI>=0&&t[0]===e[0]&&t[1]===e[1]&&t[2]===e[2])return;h(this._lastPOI,e);const i=this._center[1],s=e[0]-i[0],n=e[1]-i[1],r=e[2]-i[2];this.distanceToPOI=s*s+n*n+r*r}}function $(e,t,i,s){const n=0===i?Z.acquire():K.acquire();return n.init(e,t,i,s),n}function Q(e){e.dispose(),M(e)?Z.release(e):D(e)&&K.release(e)}const K=new i(x),Z=new i(v),ee=new y;function te(e,t){const i=e.lij,s=t[0]-i[0];return!(s<0)&&(t[1]>>s===i[1]&&t[2]>>s===i[2])}function ie(e,t){return e[0]===t[0]&&e[1]===t[1]&&e[2]===t[2]}function se(e,t,i){return null!=e&&null!=t&&t!==e&&(e.level>=t.level?ne(e,t,i):ne(t,e,U(i)))}function ne(e,t,i){S(e.level>=t.level);const s=z(i),n=F(i),r=e.extent,a=t.extent,l=[s?r[0]:r[2],n?r[3]:r[1]],o=[s?a[2]:a[0],n?a[1]:a[3]],h=1e-5*(r[2]-r[0]),d=q(l[0],o[0],h)||e.surface.isGlobal&&q(l[0],-o[0],h),u=q(l[1],o[1],h);if(d&&u)return!0;if(e.level===t.level)return S(!1),!1;if(!d&&!u)return S(!1),!1;const c=d?re(a[1],a[3],r[1],r[3],h):re(a[0],a[2],r[0],r[2],h);return S(c),c}function re(e,t,i,s,n){return e-n<=i&&i<=s&&s<=t+n}const ae=d(),le=d(),oe=d(),he=d();export{Y as Tile,se as isCornerNeighbor,ie as lijEquals};
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.34/esri/copyright.txt for details.
4
4
  */
5
- import"../../../core/has.js";import{TextureUpdate as e}from"./interfaces.js";import{progressiveLoadingModulo as t}from"./TerrainConst.js";import{fallsWithinLayerView as s,getTileMapCache as i}from"./tileUtils.js";class l{get updating(){return!!this._tileRequested}init(e,t,s,i){this.tile=e,this._layerIdx=t,this._layerClass=s,this._suspended=i,this._tileLayerInfo=e.getLayerInfo(t,s),this._tileRequested=null;const l=this._findAncestorWithData();this._setUpsampleTile(l)}startLoading(){return this._requestNext()}dispose(){this._tileRequested&&(this._tileRequested.unrequestLayerData(this._layerIdx,this._layerClass,this),this._tileRequested=null),this.tile=null,this._tileLayerInfo=null}setSuspension(e){e!==this._suspended&&(this._suspended=e,e?this._tileRequested&&(this._tileRequested.unrequestLayerData(this._layerIdx,this._layerClass,this),this._tileRequested=null):this._tileLayerInfo.data||this.update())}update(){const e=this._findAncestorWithData();return this._setUpsampleTile(e),this._requestNext()}dataArrived(t,s){this._setUpsampleTile(t,s),this._tileRequested=null,t===this.tile?this.tile.updateRenderData(this._layerClass,e.FADING,s):this._requestNext()}dataMissing(){this._tileRequested=null,this._tileLayerInfo.data=null,this._requestNext()}_agentDone(){this.tile.agentDone(this._layerIdx,this._layerClass),this.dispose()}_requestNext(){if(this._suspended)return!0;const e=this._findNextDownload();if(this._tileRequested){if(e===this._tileRequested)return!0;this._tileRequested.unrequestLayerData(this._layerIdx,this._layerClass,this),this._tileRequested=null}return null!=e?e.requestLayerData(this._layerIdx,this._layerClass,this)&&(this._tileRequested=e):this._agentDone(),!!this._tileRequested}_findNextDownload(){const e=this._layerIdx,l=this._layerClass,a=this.tile.surface.layerViewByIndex(e,l),{minLevel:n,maxLevel:r}=a.dataLevelRange,h=this._desiredMinLevelDelta,d=this._progressiveLevelModulo+h,u=this._scaleRangeEnabled?s:()=>!0;let _=this.tile;const o=_.level;let p;const y=this._tileLayerInfo.upsampleInfo,f=y?.tile?.level??-1,c=null!=y&&f-o>=h,v=i(a),q="vector-tile-3d"===a.type?a.schemaHelper:null;for(;_&&u(_,a)&&_.level>=n;){const s=_.level,i=o-s,a=_.layerInfo[l][e];if(a.data&&i>=h){(!c||s>f)&&this._setUpsampleTile(_),a.dataInvalidated&&(p=_);break}const u=q?.getLevelRowColumn(_.lij)??_.lij;if("unavailable"!==v?.getAvailability(u[0],u[1],u[2])&&s<=r&&!a.data&&!a.dataMissing&&((!p||_.level===n||s%t===0||o-p.level<h)&&(p=_),i>=d))break;_=_.parent}if(null!=p&&o-p.level<h)if(y)p=null;else{const t=this._findAncestorWithData();if(null!=t){this._setUpsampleTile(t);p=t.layerInfo[l][e].dataInvalidated?t:null}}return p}_findAncestorWithData(){const e=this.tile.elevationLevel,t=this._desiredMinLevelDelta;let s;for(let i=this.tile;i;i=i.parent)if(i.hasLayerData(this._layerIdx,this._layerClass)){if(e-i.level>=t)return i;s=i}return s}_setUpsampleTile(t,s){this._tileLayerInfo.setUpsampleInfo(this.tile,t),this.tile.updateRenderData(this._layerClass,e.FADING,s)}get test(){}}class a extends l{constructor(){super(...arguments),this.type="none"}get _desiredMinLevelDelta(){throw n}get _progressiveLevelModulo(){throw n}dispose(){}}const n=new Error("Abstract method called on TileAgent"),r=new a;export{l as TileAgent,r as tileAgentDone};
5
+ import"../../../core/has.js";import{progressiveLoadingModulo as e}from"./TerrainConst.js";import{fallsWithinLayerView as t,getTileMapCache as s}from"./tileUtils.js";class i{get updating(){return!!this._tileRequested}init(e,t,s,i){this.tile=e,this._layerIdx=t,this._layerClass=s,this._suspended=i,this._tileLayerInfo=e.getLayerInfo(t,s),this._tileRequested=null;const l=this._findAncestorWithData();this._setUpsampleTile(l)}startLoading(){return this._requestNext()}dispose(){this._tileRequested&&(this._tileRequested.unrequestLayerData(this._layerIdx,this._layerClass,this),this._tileRequested=null),this.tile=null,this._tileLayerInfo=null}setSuspension(e){e!==this._suspended&&(this._suspended=e,e?this._tileRequested&&(this._tileRequested.unrequestLayerData(this._layerIdx,this._layerClass,this),this._tileRequested=null):this._tileLayerInfo.data||this.update())}update(){const e=this._findAncestorWithData();return this._setUpsampleTile(e),this._requestNext()}dataArrived(e,t){this._setUpsampleTile(e,t),this._tileRequested=null,e===this.tile?this.tile.updateRenderData(this._layerClass,0,t):this._requestNext()}dataMissing(){this._tileRequested=null,this._tileLayerInfo.data=null,this._requestNext()}_agentDone(){this.tile.agentDone(this._layerIdx,this._layerClass),this.dispose()}_requestNext(){if(this._suspended)return!0;const e=this._findNextDownload();if(this._tileRequested){if(e===this._tileRequested)return!0;this._tileRequested.unrequestLayerData(this._layerIdx,this._layerClass,this),this._tileRequested=null}return null!=e?e.requestLayerData(this._layerIdx,this._layerClass,this)&&(this._tileRequested=e):this._agentDone(),!!this._tileRequested}_findNextDownload(){const i=this._layerIdx,l=this._layerClass,a=this.tile.surface.layerViewByIndex(i,l),{minLevel:n,maxLevel:r}=a.dataLevelRange,h=this._desiredMinLevelDelta,d=this._progressiveLevelModulo+h,u=this._scaleRangeEnabled?t:()=>!0;let _=this.tile;const o=_.level;let p;const y=this._tileLayerInfo.upsampleInfo,f=y?.tile?.level??-1,v=null!=y&&f-o>=h,c=s(a),q="vector-tile-3d"===a.type?a.schemaHelper:null;for(;_&&u(_,a)&&_.level>=n;){const t=_.level,s=o-t,a=_.layerInfo[l][i];if(a.data&&s>=h){(!v||t>f)&&this._setUpsampleTile(_),a.dataInvalidated&&(p=_);break}const u=q?.getLevelRowColumn(_.lij)??_.lij;if("unavailable"!==c?.getAvailability(u[0],u[1],u[2])&&t<=r&&!a.data&&!a.dataMissing&&((!p||_.level===n||t%e===0||o-p.level<h)&&(p=_),s>=d))break;_=_.parent}if(null!=p&&o-p.level<h)if(y)p=null;else{const e=this._findAncestorWithData();if(null!=e){this._setUpsampleTile(e);p=e.layerInfo[l][i].dataInvalidated?e:null}}return p}_findAncestorWithData(){const e=this.tile.elevationLevel,t=this._desiredMinLevelDelta;let s;for(let i=this.tile;i;i=i.parent)if(i.hasLayerData(this._layerIdx,this._layerClass)){if(e-i.level>=t)return i;s=i}return s}_setUpsampleTile(e,t){this._tileLayerInfo.setUpsampleInfo(this.tile,e),this.tile.updateRenderData(this._layerClass,0,t)}get test(){}}class l extends i{constructor(){super(...arguments),this.type="none"}get _desiredMinLevelDelta(){throw a}get _progressiveLevelModulo(){throw a}dispose(){}}const a=new Error("Abstract method called on TileAgent"),n=new l;export{i as TileAgent,n as tileAgentDone};
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.34/esri/copyright.txt for details.
4
4
  */
5
- import{_ as e}from"../../../chunks/tslib.es6.js";import{BlendModeTechniqueConfiguration as r}from"./BlendModeTechniqueConfiguration.js";import{BaseOpacityMode as o}from"../webgl-engine/core/shaderLibrary/terrain/BaseOpacityMode.js";import{BlendLayersOutput as t}from"../webgl-engine/core/shaderLibrary/terrain/BlendLayersOutput.js";import{PremultipliedAlphaSource as i}from"../webgl-engine/core/shaderLibrary/terrain/PremultipliedAlphaSource.js";import{parameter as p}from"../webgl-engine/core/shaderTechnique/ShaderTechniqueConfiguration.js";class s extends r{constructor(){super(...arguments),this.output=t.Composite,this.baseOpacityMode=o.NotRequired,this.premultipliedSource=i.Off}}e([p({count:t.COUNT})],s.prototype,"output",void 0),e([p({count:o.COUNT})],s.prototype,"baseOpacityMode",void 0),e([p({count:i.COUNT})],s.prototype,"premultipliedSource",void 0);export{s as TileBlendTechniqueConfiguration};
5
+ import{_ as o}from"../../../chunks/tslib.es6.js";import{BlendModeTechniqueConfiguration as e}from"./BlendModeTechniqueConfiguration.js";import{parameter as t}from"../webgl-engine/core/shaderTechnique/ShaderTechniqueConfiguration.js";class i extends e{constructor(){super(...arguments),this.output=1,this.baseOpacityMode=0,this.premultipliedSource=0}}o([t({count:5})],i.prototype,"output",void 0),o([t({count:2})],i.prototype,"baseOpacityMode",void 0),o([t({count:2})],i.prototype,"premultipliedSource",void 0);export{i as TileBlendTechniqueConfiguration};
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.34/esri/copyright.txt for details.
4
4
  */
5
- import e from"../../../core/Logger.js";import{disposeMaybe as t}from"../../../core/maybe.js";import{ZEROS as r}from"../../../core/libs/gl-matrix-2/factories/vec2f64.js";import{RasterColorizerStretchType as i}from"../../2d/engine/imagery/enums.js";import{VectorTileRendererHelper3D as s}from"../../2d/engine/vectorTiles/VectorTileRendererHelper3D.js";import{BlendLayersTechnique as o}from"./BlendLayersTechnique.js";import{BlendLayersTechniqueConfiguration as n}from"./BlendLayersTechniqueConfiguration.js";import{LayerClass as a}from"./LayerClass.js";import{RasterColorizerTechnique as u}from"./RasterColorizerTechnique.js";import{RasterColorizerTechniqueConfiguration as h}from"./RasterColorizerTechniqueConfiguration.js";import{MultiSizeFramebuffer as l}from"./support/MultiSizeFramebuffer.js";import{LayerBlendMode as c}from"../webgl-engine/core/shaderLibrary/output/BlendOptions.js";import{BaseOpacityMode as d}from"../webgl-engine/core/shaderLibrary/terrain/BaseOpacityMode.js";import{BlendLayersOutput as _}from"../webgl-engine/core/shaderLibrary/terrain/BlendLayersOutput.js";import{PremultipliedAlphaSource as f}from"../webgl-engine/core/shaderLibrary/terrain/PremultipliedAlphaSource.js";import{a as p}from"../../../chunks/BlendLayers.glsl.js";import{BindParameters as b}from"../webgl-engine/lib/BindParameters.js";import{createQuadVAO as m,Layout as g}from"../webgl-engine/lib/glUtil3D.js";import{PrimitiveType as x,FramebufferBit as T,TextureType as y}from"../../webgl/enums.js";import{Texture as C}from"../../webgl/Texture.js";import{vertexCount as B}from"../../webgl/Util.js";const O=()=>e.getLogger("esri.views.3d.terrain");class q{constructor(e,t){this._rctx=e,this._techniques=t,this._fbos=[],this._vectorTileHelper=new s,this._bindParameters=new b(null),this._blendConfiguration=new n,this._current=0,this._lastUsedIds=new Array,this._lastCreatedBufferId=0,this._onHoldIds=new Array,this._vaoQuad=m(this._rctx,g.Pos2Tex)}dispose(){this._fbos.forEach(t),this._fbos=null,this._vtFBO=t(this._vtFBO),this._vaoQuad=t(this._vaoQuad),this._vectorTileHelper=t(this._vectorTileHelper)}updateHeading(e){this._vectorTileHelper?.updateHeading(e)}_acquireBlendTechnique(e,t,r,i=f.Off,s=p.BelowLayer){return this._blendConfiguration.output=t,this._blendConfiguration.blendMode=e,this._blendConfiguration.baseOpacityMode=r,this._blendConfiguration.premultipliedSource=i,this._blendConfiguration.background=s,this._techniques.precompile(o,this._blendConfiguration),this._techniques.get(o,this._blendConfiguration)}drawBackground(e,t){const r=this._acquireBlendTechnique(c.Normal,t?_.ColorComposite:_.GridComposite,d.NotRequired,f.Off,p.Only),i=this._rctx.bindTechnique(r,this._bindParameters,e);this._render(i)}_render(e){this._rctx.bindVAO(this._vaoQuad),e.assertCompatibleVertexAttributeLocations(this._vaoQuad),this._rctx.drawArrays(x.TRIANGLE_STRIP,0,B(this._vaoQuad,"geometry"))}drawGroup(e,t,r,i,s=f.On){t===_.Composite&&(e.fboTexture=this._fbos[this.getLastOnHoldId()].get(r).colorTexture,null==e.fboTexture&&(e.fboTexture=this._rctx.emptyTexture)),e.texture=this.currentFBO(r).colorTexture,this.closeGroup(r);const o=e.baseOpacity<1?d.Required:d.NotRequired,n=this._acquireBlendTechnique(i,t,o,s),a=this._rctx.bindTechnique(n,this._bindParameters,e);this._render(a)}drawImageData(e,t,r,i,s=f.Off){if(null==e.texture)return;const o=e.baseOpacity<1?d.Required:d.NotRequired;e.fboTexture=t===_.GroupBackgroundComposite||i===c.Normal&&o===d.NotRequired&&s===f.Off?null:this.switch(r).colorTexture,null==e.fboTexture&&(e.fboTexture=this._rctx.emptyTexture);const n=this._acquireBlendTechnique(i,t,o,s),a=this._rctx.bindTechnique(n,this._bindParameters,e);this._render(a)}drawRasterData(e,t,r,i,s){const o=s.sourceLayerInfo.data;if(!o.source)return;if(s.tile.surface.layerViewByIndex(s.layerIndex,a.MAP).ensureSymbolizerParameters(o),!o.bind(this._rctx))return;const n=e.baseOpacity<1?d.Required:d.NotRequired;e.fboTexture=i===c.Normal&&n===d.NotRequired?null:this.switch(r).colorTexture;const u=this._acquireRasterTechnique(o,t,i,n);if(!u)return;o.opacity=e.opacity;const h=o.getUniforms(this._rctx);h.scale=s.scale,h.offset=s.offset,h.backgroundColor=e.backgroundColor,h.fboTexture=e.fboTexture,h.baseOpacity=e.baseOpacity;const l=this._rctx.bindTechnique(u,this._bindParameters,h);this._render(l)}_acquireRasterTechnique(e,t,r,s){if(!this._rctx.capabilities.colorBufferFloat)return null;const o=e.symbolizerParameters,n=["stretch","lut","hillshade"].indexOf(o.type);return this._rasterConfiguration??=new h,this._rasterConfiguration.output=t,this._rasterConfiguration.blendMode=r,this._rasterConfiguration.baseOpacityMode=s,this._rasterConfiguration.colorizerType=n,this._rasterConfiguration.applyColormap=!!o.colormap,this._rasterConfiguration.requireBilinearWithNN=e.isBilinearWithStretchColorRamp,this._rasterConfiguration.stretchType=e.hasStretchTypeNone()?i.Noop:i.PerBand,this._techniques.precompile(u,this._rasterConfiguration),this._techniques.get(u,this._rasterConfiguration)}drawVectorData(e,t,i,s,o,n,u,h){const p=this._rctx,b=o.sourceLayerInfo.data,m=o.tile.surface.layerViewByIndex(o.layerIndex,a.MAP),g=e.baseOpacity<1?d.Required:d.NotRequired,x=g===d.Required||e.opacity<1||s!==c.Normal||t!==_.Composite,y=x?f.On:f.Off,C=this._acquireBlendTechnique(s,t,g,y);p.setPipelineState(C.getPipeline());let B=null,q=null;x?(q=this.currentFBO(i),null==this._vtFBO&&(this._vtFBO=new l(this._rctx)),B=this._vtFBO.get(i),p.bindFramebuffer(B),this._clearCurrentFBO()):h&&p.clear(T.DEPTH);try{this._vectorTileHelper.renderBackground(p,o.sourceLod,m.painter,m.layer.styleRepository,m.schemaHelper,Math.round(1/o.scale),o.offset,u,n,m.contentZoom),b&&this._vectorTileHelper.renderContent(p,o.sourceLod,b,o.vtlNeighborInfos,m.painter,m.layer.styleRepository,m.schemaHelper,Math.round(1/o.scale),o.offset,u,n,m.contentZoom)}catch(I){O().warnOnce("A render call containing vector tiles did not resolve correctly.",I)}return!B||(p.bindFramebuffer(q),e.texture=B.colorTexture,e.offset=r,e.scale=1,this.drawImageData(e,t,i,s,y),h)}copyFBOToTexture(e){const t=this._rctx,r=t.bindTexture(e.texture,C.TEXTURE_UNIT_FOR_UPDATES),i=e.descriptor;t.gl.copyTexImage2D(y.TEXTURE_2D,0,i.pixelFormat,0,0,i.width,i.height,0),e.generateMipmap(),t.bindTexture(r,C.TEXTURE_UNIT_FOR_UPDATES)}_clearCurrentFBO(){this._rctx.setStencilWriteMask(255),this._rctx.setClearColor(0,0,0,0),this._rctx.setClearDepth(1),this._rctx.setClearStencil(0),this._rctx.clear(T.COLOR|T.DEPTH|T.STENCIL)}_initFBO(e,t,r){this._rctx.bindFramebuffer(e),r&&(this._rctx.setViewport(0,0,t,t),this._clearCurrentFBO())}ensureBuffer(e){this._lastUsedIds.length=0,this._lastUsedIds.push(1),this._lastCreatedBufferId=1,this._onHoldIds.length=0,this.bind(e)}bind(e,t=0,r=!0){if(this._current=t,t>=this._fbos.length)for(let i=this._fbos.length;i<=t;i++)this._fbos.push(new l(this._rctx));this._initFBO(this._fbos[t].get(e),e,r)}_bindNextFreeBuffer(e){this._lastUsedIds.length>0?this.bind(e,this._lastUsedIds.pop()):(this._lastCreatedBufferId++,this.bind(e,this._lastCreatedBufferId))}openGroup(e){this._onHoldIds.push(this._current),this._bindNextFreeBuffer(e)}switch(e){const t=this.currentFBO(e),r=this._current;return this._bindNextFreeBuffer(e),this._lastUsedIds.push(r),t}getLastOnHoldId(){return this._onHoldIds[this._onHoldIds.length-1]}closeGroup(e){const t=this._current;this._bindNextFreeBuffer(e),this._lastUsedIds.push(t),this._lastUsedIds.push(this._onHoldIds.pop())}unbind(){this._rctx.bindFramebuffer(null)}currentFBO(e){return this._fbos[this._current].get(e)}}export{q as TileCompositor};
5
+ import e from"../../../core/Logger.js";import{disposeMaybe as t}from"../../../core/maybe.js";import{ZEROS as r}from"../../../core/libs/gl-matrix-2/factories/vec2f64.js";import{VectorTileRendererHelper3D as i}from"../../2d/engine/vectorTiles/VectorTileRendererHelper3D.js";import{BlendLayersTechnique as s}from"./BlendLayersTechnique.js";import{BlendLayersTechniqueConfiguration as o}from"./BlendLayersTechniqueConfiguration.js";import{RasterColorizerTechnique as n}from"./RasterColorizerTechnique.js";import{RasterColorizerTechniqueConfiguration as a}from"./RasterColorizerTechniqueConfiguration.js";import{MultiSizeFramebuffer as h}from"./support/MultiSizeFramebuffer.js";import{BindParameters as u}from"../webgl-engine/lib/BindParameters.js";import{createQuadVAO as c}from"../webgl-engine/lib/glUtil3D.js";import{PrimitiveType as l}from"../../webgl/enums.js";import{Texture as d}from"../../webgl/Texture.js";import{vertexCount as _}from"../../webgl/Util.js";const f=()=>e.getLogger("esri.views.3d.terrain");class p{constructor(e,t){this._rctx=e,this._techniques=t,this._fbos=[],this._vectorTileHelper=new i,this._bindParameters=new u(null),this._blendConfiguration=new o,this._current=0,this._lastUsedIds=new Array,this._lastCreatedBufferId=0,this._onHoldIds=new Array,this._vaoQuad=c(this._rctx,1)}dispose(){this._fbos.forEach(t),this._fbos=null,this._vtFBO=t(this._vtFBO),this._vaoQuad=t(this._vaoQuad),this._vectorTileHelper=t(this._vectorTileHelper)}updateHeading(e){this._vectorTileHelper?.updateHeading(e)}_acquireBlendTechnique(e,t,r,i=0,o=0){return this._blendConfiguration.output=t,this._blendConfiguration.blendMode=e,this._blendConfiguration.baseOpacityMode=r,this._blendConfiguration.premultipliedSource=i,this._blendConfiguration.background=o,this._techniques.precompile(s,this._blendConfiguration),this._techniques.get(s,this._blendConfiguration)}drawBackground(e,t){const r=this._acquireBlendTechnique(0,t?2:3,0,0,1),i=this._rctx.bindTechnique(r,this._bindParameters,e);this._render(i)}_render(e){this._rctx.bindVAO(this._vaoQuad),e.assertCompatibleVertexAttributeLocations(this._vaoQuad),this._rctx.drawArrays(l.TRIANGLE_STRIP,0,_(this._vaoQuad,"geometry"))}drawGroup(e,t,r,i,s=1){1===t&&(e.fboTexture=this._fbos[this.getLastOnHoldId()].get(r).colorTexture,null==e.fboTexture&&(e.fboTexture=this._rctx.emptyTexture)),e.texture=this.currentFBO(r).colorTexture,this.closeGroup(r);const o=e.baseOpacity<1?1:0,n=this._acquireBlendTechnique(i,t,o,s),a=this._rctx.bindTechnique(n,this._bindParameters,e);this._render(a)}drawImageData(e,t,r,i,s=0){if(null==e.texture)return;const o=e.baseOpacity<1?1:0;e.fboTexture=4===t||0===i&&0===o&&0===s?null:this.switch(r).colorTexture,null==e.fboTexture&&(e.fboTexture=this._rctx.emptyTexture);const n=this._acquireBlendTechnique(i,t,o,s),a=this._rctx.bindTechnique(n,this._bindParameters,e);this._render(a)}drawRasterData(e,t,r,i,s){const o=s.sourceLayerInfo.data;if(!o.source)return;if(s.tile.surface.layerViewByIndex(s.layerIndex,1).ensureSymbolizerParameters(o),!o.bind(this._rctx))return;const n=e.baseOpacity<1?1:0;e.fboTexture=0===i&&0===n?null:this.switch(r).colorTexture;const a=this._acquireRasterTechnique(o,t,i,n);if(!a)return;o.opacity=e.opacity;const h=o.getUniforms(this._rctx);h.scale=s.scale,h.offset=s.offset,h.backgroundColor=e.backgroundColor,h.fboTexture=e.fboTexture,h.baseOpacity=e.baseOpacity;const u=this._rctx.bindTechnique(a,this._bindParameters,h);this._render(u)}_acquireRasterTechnique(e,t,r,i){if(!this._rctx.capabilities.colorBufferFloat)return null;const s=e.symbolizerParameters,o=["stretch","lut","hillshade"].indexOf(s.type);return this._rasterConfiguration??=new a,this._rasterConfiguration.output=t,this._rasterConfiguration.blendMode=r,this._rasterConfiguration.baseOpacityMode=i,this._rasterConfiguration.colorizerType=o,this._rasterConfiguration.applyColormap=!!s.colormap,this._rasterConfiguration.requireBilinearWithNN=e.isBilinearWithStretchColorRamp,this._rasterConfiguration.stretchType=e.hasStretchTypeNone()?0:1,this._techniques.precompile(n,this._rasterConfiguration),this._techniques.get(n,this._rasterConfiguration)}drawVectorData(e,t,i,s,o,n,a,u){const c=this._rctx,l=o.sourceLayerInfo.data,d=o.tile.surface.layerViewByIndex(o.layerIndex,1),_=e.baseOpacity<1?1:0,p=1===_||e.opacity<1||0!==s||1!==t,b=p?1:0,g=this._acquireBlendTechnique(s,t,_,b);c.setPipelineState(g.getPipeline());let m=null,x=null;p?(x=this.currentFBO(i),null==this._vtFBO&&(this._vtFBO=new h(this._rctx)),m=this._vtFBO.get(i),c.bindFramebuffer(m),this._clearCurrentFBO()):u&&c.clear(256);try{this._vectorTileHelper.renderBackground(c,o.sourceLod,d.painter,d.layer.styleRepository,d.schemaHelper,Math.round(1/o.scale),o.offset,a,n,d.contentZoom),l&&this._vectorTileHelper.renderContent(c,o.sourceLod,l,o.vtlNeighborInfos,d.painter,d.layer.styleRepository,d.schemaHelper,Math.round(1/o.scale),o.offset,a,n,d.contentZoom)}catch(T){f().warnOnce("A render call containing vector tiles did not resolve correctly.",T)}return!m||(c.bindFramebuffer(x),e.texture=m.colorTexture,e.offset=r,e.scale=1,this.drawImageData(e,t,i,s,b),u)}copyFBOToTexture(e){const t=this._rctx,r=t.bindTexture(e.texture,d.TEXTURE_UNIT_FOR_UPDATES),i=e.descriptor;t.gl.copyTexImage2D(3553,0,i.pixelFormat,0,0,i.width,i.height,0),e.generateMipmap(),t.bindTexture(r,d.TEXTURE_UNIT_FOR_UPDATES)}_clearCurrentFBO(){this._rctx.setStencilWriteMask(255),this._rctx.setClearColor(0,0,0,0),this._rctx.setClearDepth(1),this._rctx.setClearStencil(0),this._rctx.clear(17664)}_initFBO(e,t,r){this._rctx.bindFramebuffer(e),r&&(this._rctx.setViewport(0,0,t,t),this._clearCurrentFBO())}ensureBuffer(e){this._lastUsedIds.length=0,this._lastUsedIds.push(1),this._lastCreatedBufferId=1,this._onHoldIds.length=0,this.bind(e)}bind(e,t=0,r=!0){if(this._current=t,t>=this._fbos.length)for(let i=this._fbos.length;i<=t;i++)this._fbos.push(new h(this._rctx));this._initFBO(this._fbos[t].get(e),e,r)}_bindNextFreeBuffer(e){this._lastUsedIds.length>0?this.bind(e,this._lastUsedIds.pop()):(this._lastCreatedBufferId++,this.bind(e,this._lastCreatedBufferId))}openGroup(e){this._onHoldIds.push(this._current),this._bindNextFreeBuffer(e)}switch(e){const t=this.currentFBO(e),r=this._current;return this._bindNextFreeBuffer(e),this._lastUsedIds.push(r),t}getLastOnHoldId(){return this._onHoldIds[this._onHoldIds.length-1]}closeGroup(e){const t=this._current;this._bindNextFreeBuffer(e),this._lastUsedIds.push(t),this._lastUsedIds.push(this._onHoldIds.pop())}unbind(){this._rctx.bindFramebuffer(null)}currentFBO(e){return this._fbos[this._current].get(e)}}export{p as TileCompositor};
@@ -2,4 +2,3 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.34/esri/copyright.txt for details.
4
4
  */
5
- var E;!function(E){E[E.INSIDE=0]="INSIDE",E[E.INTERSECTS=1]="INTERSECTS",E[E.OUTSIDE=2]="OUTSIDE"}(E||(E={}));export{E as TileFrustumVisibility};
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.34/esri/copyright.txt for details.
4
4
  */
5
- import{disposeMaybe as t,abortMaybe as s}from"../../../core/maybe.js";import e from"../../../core/ObjectPool.js";import i from"../../../core/PooledArray.js";import{releaseTerrainData as a}from"./terrainUtils.js";import{computeUpsampleInfo as n}from"./tileUtils.js";class o{constructor(){this.waitingAgents=new i,this.pendingUpdates=0}static acquire(t){const s=l.acquire();return s._init(t),s}release(){this.dispose(),p.delete(this),l.release(this)}dispose(){this.loadingAgent=t(this.loadingAgent),this.abortRequest(),this._unsetUpsampleInfo(),this.pendingUpdates=0,this._data=a(this._data)}static prune(){l.prune(0)}_init(t){this.waitingAgents.clear(),this._data=a(this._data),this.dataMissing=!1,this.dataInvalidated=!1,this._unsetUpsampleInfo(),this.abortRequest(),this.loadingAgent=null,this.pendingUpdates=0,this._pool=t,this.elevationBounds=null}invalidateSourceData(){this.dataInvalidated=!0,this.dataMissing=!1,this._unsetUpsampleInfo()}abortRequest(){this.requestAbort=s(this.requestAbort),this.requestPromise=null}_unsetUpsampleInfo(){this.upsampleInfo&&(this.upsampleInfo.tile?.unrefMapData(),this._pool.release(this.upsampleInfo),this.upsampleInfo=null)}setUpsampleInfo(t,s){if(t!==s&&null!=s){if(null==this.upsampleInfo)this.upsampleInfo=this._pool.acquire();else{if(this.upsampleInfo.tile===s)return;this.upsampleInfo.tile?.unrefMapData()}s.refMapData(),n(t,s,this.upsampleInfo)}else this._unsetUpsampleInfo()}get data(){return this._data}set data(t){a(this._data),this._data=t}}const l=new e(o,null,()=>{}),p=new Map;function r(){p.size>0&&(console.log(`${p.size} live TilePerLayerInfo allocations:`),p.forEach(t=>console.log(t,"\n")))}export{o as TilePerLayerInfo,r as printAllocations};
5
+ import{disposeMaybe as t,abortMaybe as s}from"../../../core/maybe.js";import e from"../../../core/ObjectPool.js";import i from"../../../core/PooledArray.js";import{releaseTerrainData as a}from"./terrainUtils.js";import{computeUpsampleInfo as n}from"./tileUtils.js";class o{constructor(){this.waitingAgents=new i,this.pendingUpdates=0}static acquire(t){const s=l.acquire();return s._init(t),s}release(){this.dispose(),p.delete(this),l.release(this)}dispose(){this.loadingAgent=t(this.loadingAgent),this.abortRequest(),this._unsetUpsampleInfo(),this.pendingUpdates=0,this._data=a(this._data)}static prune(){l.prune(0)}_init(t){this.waitingAgents.clear(),this._data=a(this._data),this.dataMissing=!1,this.dataInvalidated=!1,this._unsetUpsampleInfo(),this.abortRequest(),this.loadingAgent=null,this.pendingUpdates=0,this._pool=t,this.elevationBounds=null}invalidateSourceData(){this.dataInvalidated=!0,this.dataMissing=!1,this._unsetUpsampleInfo()}abortRequest(){this.requestAbort=s(this.requestAbort),this.requestPromise=null}_unsetUpsampleInfo(){this.upsampleInfo&&(this.upsampleInfo.tile?.unrefMapData(),this._pool.release(this.upsampleInfo),this.upsampleInfo=null)}setUpsampleInfo(t,s){if(t!==s&&null!=s){if(null==this.upsampleInfo)this.upsampleInfo=this._pool.acquire();else{if(this.upsampleInfo.tile===s)return;this.upsampleInfo.tile?.unrefMapData()}s.refMapData(),n(t,s,this.upsampleInfo)}else this._unsetUpsampleInfo()}get data(){return this._data}set data(t){a(this._data),this._data=t}}const l=new e(o,null,()=>{}),p=new Map;function r(){p.size>0&&(console.log(`${p.size} live TilePerLayerInfo allocations:`),p.forEach(t=>console.log(t,"\n")))}function h(){l.prune(),p.clear()}export{o as TilePerLayerInfo,h as clearTilePerLayerInfo,r as printAllocations};