@arcgis/core 4.24.0-next.20220430 → 4.24.0-next.20220503

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 (998) hide show
  1. package/Basemap.js +1 -1
  2. package/Color.js +1 -1
  3. package/Ground.js +1 -1
  4. package/Map.js +1 -1
  5. package/PopupTemplate.js +1 -1
  6. package/WebMap.js +1 -1
  7. package/WebScene.js +1 -1
  8. package/analysis/LinearDimension.js +1 -1
  9. package/analysis/SliceAnalysis.js +1 -1
  10. package/applications/SceneViewer/sceneViewerUtils.js +1 -1
  11. package/arcade/Dictionary.js +1 -1
  12. package/arcade/Feature.js +1 -1
  13. package/arcade/featureset/sources/FeatureLayerDynamic.js +1 -1
  14. package/arcade/featureset/support/FeatureSet.js +1 -1
  15. package/assets/esri/core/workers/RemoteClient.js +1 -1
  16. package/assets/esri/core/workers/chunks/{e06461703e6f1acfcfdc.js → 076d1b1101b59af0d389.js} +1 -1
  17. package/assets/esri/core/workers/chunks/0b72d123386dc4ec7538.js +1 -0
  18. package/assets/esri/core/workers/chunks/0d53e575f11198867619.js +1 -0
  19. package/assets/esri/core/workers/chunks/0e6e3cf07c84d9f040c0.js +1 -0
  20. package/assets/esri/core/workers/chunks/105728404ddd9e73d5c9.js +1 -0
  21. package/assets/esri/core/workers/chunks/11106873b009b98e4286.js +1 -0
  22. package/assets/esri/core/workers/chunks/11a7b156591d1feca952.js +1 -0
  23. package/assets/esri/core/workers/chunks/{94325f920a125610e1f5.js → 12feeace7215248be23f.js} +1 -1
  24. package/assets/esri/core/workers/chunks/17be5bd0d1c233d73d7a.js +1 -0
  25. package/assets/esri/core/workers/chunks/1b53bd65407ba5c479d7.js +1 -0
  26. package/assets/esri/core/workers/chunks/1d91aa745b49b2ab36cf.js +1 -0
  27. package/assets/esri/core/workers/chunks/{fd35b69872ac9393924f.js → 1db8bfb1731be3ae320c.js} +1 -1
  28. package/assets/esri/core/workers/chunks/{3433361f09c84b31aec4.js → 2290bd6dc2e6bb136e14.js} +1 -1
  29. package/assets/esri/core/workers/chunks/24217129d492e170f0f0.js +1 -0
  30. package/assets/esri/core/workers/chunks/24e194107e0e5090125b.js +1 -0
  31. package/assets/esri/core/workers/chunks/2a1301a1d0cd4c0c17cf.js +1 -0
  32. package/assets/esri/core/workers/chunks/{178831b0d0bdabcc45e7.js → 2a676221ca1fc8e0cf34.js} +1 -1
  33. package/assets/esri/core/workers/chunks/2aede0d1dcac8592436b.js +1 -0
  34. package/assets/esri/core/workers/chunks/2b93ad626f5e75b97692.js +1 -0
  35. package/assets/esri/core/workers/chunks/2d03210fc6b5884c6bf9.js +1 -0
  36. package/assets/esri/core/workers/chunks/{b10c333abe4f4e52841c.js → 2dfd3def105005fc72c7.js} +1 -1
  37. package/assets/esri/core/workers/chunks/2f8ff35b8ab15c0e39c2.js +1 -0
  38. package/assets/esri/core/workers/chunks/36272141b3c33cb19026.js +1 -0
  39. package/assets/esri/core/workers/chunks/36c8e8de9c3f67d32572.js +1 -0
  40. package/assets/esri/core/workers/chunks/3ab8c6ae2f2713f637b0.js +1 -0
  41. package/assets/esri/core/workers/chunks/3c058381adcfdc407aa1.js +1 -0
  42. package/assets/esri/core/workers/chunks/3f39df1dfc0a685e5f9d.js +1 -0
  43. package/assets/esri/core/workers/chunks/3fd52a03b3126556aee6.js +1 -0
  44. package/assets/esri/core/workers/chunks/4082d8573f41f952c72e.js +1 -0
  45. package/assets/esri/core/workers/chunks/40b11eea270f6688ff9c.js +1 -0
  46. package/assets/esri/core/workers/chunks/4281b4b27f4767cdd3ae.js +1 -0
  47. package/assets/esri/core/workers/chunks/43fcaaeb6fd179e9199b.js +1 -0
  48. package/assets/esri/core/workers/chunks/4c65b27d80b23c0c3101.js +1 -0
  49. package/assets/esri/core/workers/chunks/{a6406a248b7b2ed65f35.js → 4ec7d59b0c814dbaa7a4.js} +1 -1
  50. package/assets/esri/core/workers/chunks/4f378ad6f4299183df85.js +1 -0
  51. package/assets/esri/core/workers/chunks/505b0aa5ee3e5a26c351.js +1 -0
  52. package/assets/esri/core/workers/chunks/509a9cdd0228a730bcea.js +1 -0
  53. package/assets/esri/core/workers/chunks/52255ad573cec0a34720.js +1 -0
  54. package/assets/esri/core/workers/chunks/52d4fdc451a58a858af1.js +1 -0
  55. package/assets/esri/core/workers/chunks/5405f478af3563580926.js +1 -0
  56. package/assets/esri/core/workers/chunks/54577c2522ca3ff08f7e.js +1 -0
  57. package/assets/esri/core/workers/chunks/54d67e450da6ce2641b4.js +1 -0
  58. package/assets/esri/core/workers/chunks/56d3cb0ae0069a8eadde.js +1 -0
  59. package/assets/esri/core/workers/chunks/5b4efe0014162f777534.js +1 -0
  60. package/assets/esri/core/workers/chunks/5baa162351551817838b.js +1 -0
  61. package/assets/esri/core/workers/chunks/5cf2064bfd9d0847d9ec.js +1 -0
  62. package/assets/esri/core/workers/chunks/620dc3c13c345d5aa9f6.js +1 -0
  63. package/assets/esri/core/workers/chunks/7c290763920f52a1f504.js +1 -0
  64. package/assets/esri/core/workers/chunks/7dc266be958e34e81007.js +972 -0
  65. package/assets/esri/core/workers/chunks/7dfd70f4fa1096e56641.js +1 -0
  66. package/assets/esri/core/workers/chunks/7f097de06972a68cd08a.js +1 -0
  67. package/assets/esri/core/workers/chunks/8033531b0cc706b40d86.js +1 -0
  68. package/assets/esri/core/workers/chunks/814234844a056d9f1ddc.js +1 -0
  69. package/assets/esri/core/workers/chunks/83700cdd60ceecc639cd.js +1 -0
  70. package/assets/esri/core/workers/chunks/857df84cea67079a91e5.js +1 -0
  71. package/assets/esri/core/workers/chunks/8793070d288878d6f49b.js +1 -0
  72. package/assets/esri/core/workers/chunks/8865c5cc28df60364e60.js +1 -0
  73. package/assets/esri/core/workers/chunks/{e9f786d4ba3143ed9644.js → 8cc85d1d46dda16ad041.js} +1 -1
  74. package/assets/esri/core/workers/chunks/958a7ef2cbf048819988.js +1 -0
  75. package/assets/esri/core/workers/chunks/967af0aa4dc4da032fdc.js +1 -0
  76. package/assets/esri/core/workers/chunks/9722880bd7f455b2bd07.js +1 -0
  77. package/assets/esri/core/workers/chunks/9d738aab0d907cd09a9d.js +1 -0
  78. package/assets/esri/core/workers/chunks/{86b31ae136f931d7884a.js → 9e6df034d7949880471f.js} +1 -1
  79. package/assets/esri/core/workers/chunks/a056a79f31cddb066f15.js +1 -0
  80. package/assets/esri/core/workers/chunks/a2c9fd78d42df7314a3e.js +1 -0
  81. package/assets/esri/core/workers/chunks/a4dcb50f6622cb1444c8.js +1 -0
  82. package/assets/esri/core/workers/chunks/a6bfbe449b8c2fa5334c.js +1 -0
  83. package/assets/esri/core/workers/chunks/a8ed1a938dc164b401d9.js +1 -0
  84. package/assets/esri/core/workers/chunks/a9a73bc4875a5aeaf1b9.js +1 -0
  85. package/assets/esri/core/workers/chunks/ac0df52b2f2a4874e4ea.js +1 -0
  86. package/assets/esri/core/workers/chunks/{431efa172901ab8e4d53.js → acfa8eb19225f7862b1d.js} +1 -1
  87. package/assets/esri/core/workers/chunks/adae54f116f311d72d97.js +1 -0
  88. package/assets/esri/core/workers/chunks/{718073d13d3de67b629b.js → aeeb364b7c1876f6e7db.js} +1 -1
  89. package/assets/esri/core/workers/chunks/afddfe620e6539991e6b.js +1 -0
  90. package/assets/esri/core/workers/chunks/b02a83845d3da4caee9d.js +1 -0
  91. package/assets/esri/core/workers/chunks/{0d21506b7d4f9afdbb09.js → b3847a6bbd45d813f03c.js} +1 -1
  92. package/assets/esri/core/workers/chunks/b4c23630d6c85f7b59c0.js +1 -0
  93. package/assets/esri/core/workers/chunks/{c318b229911b60fc3cbf.js → b50ae3dc7e43ff452568.js} +1 -1
  94. package/assets/esri/core/workers/chunks/b5ede4df4620097c6528.js +1 -0
  95. package/assets/esri/core/workers/chunks/b7d7ad127f8939cbdec2.js +1 -0
  96. package/assets/esri/core/workers/chunks/bf1d1c02d12b526b0750.js +1 -0
  97. package/assets/esri/core/workers/chunks/c0e6dbecdbd30066a82c.js +1 -0
  98. package/assets/esri/core/workers/chunks/c2a36243eb105d570bff.js +1 -0
  99. package/assets/esri/core/workers/chunks/c8a3a28809542396c6fd.js +1 -0
  100. package/assets/esri/core/workers/chunks/cf1047ad176a25dcd2d6.js +1 -0
  101. package/assets/esri/core/workers/chunks/d03de043d43691665a93.js +1 -0
  102. package/assets/esri/core/workers/chunks/d3fecbaca51ef8844026.js +1 -0
  103. package/assets/esri/core/workers/chunks/dafe120243db6648a4ab.js +1 -0
  104. package/assets/esri/core/workers/chunks/dccc33d87cb7d902f5c7.js +1 -0
  105. package/assets/esri/core/workers/chunks/dd43f5647900ee27af22.js +1 -0
  106. package/assets/esri/core/workers/chunks/{52489e2f7748dc610263.js → dfdd853dd6c023089963.js} +1 -1
  107. package/assets/esri/core/workers/chunks/e6f76f62cf58fb1e67c6.js +1 -0
  108. package/assets/esri/core/workers/chunks/ea73a1d9cad5e1a5d861.js +1 -0
  109. package/assets/esri/core/workers/chunks/{4130ea1f5a9f197168d7.js → ed4519ac9533a4d340f1.js} +1 -1
  110. package/assets/esri/core/workers/chunks/f0e462f5a16852f33225.js +1 -0
  111. package/assets/esri/core/workers/chunks/f13c29bcc71aed8f3a2e.js +1 -0
  112. package/assets/esri/core/workers/chunks/f356e505c36397fda3cf.js +1 -0
  113. package/assets/esri/core/workers/chunks/f55cbaf5a1d6ee6ac171.js +1 -0
  114. package/assets/esri/core/workers/chunks/f6e613ae6812a347a26c.js +1 -0
  115. package/assets/esri/core/workers/chunks/fb3279408bd5323ec612.js +1 -0
  116. package/assets/esri/core/workers/chunks/fdf80a371b7b2a45f1ff.js +1 -0
  117. package/assets/esri/libs/vxl/vxlLayer.wasm +0 -0
  118. package/chunks/ChapmanAtmosphere.glsl.js +15 -15
  119. package/chunks/CheckerBoard.glsl.js +3 -3
  120. package/chunks/Clouds.glsl.js +2 -3
  121. package/chunks/CloudsComposition.glsl.js +3 -3
  122. package/chunks/ColorMaterial.glsl.js +11 -11
  123. package/chunks/DefaultMaterial.glsl.js +26 -26
  124. package/chunks/EdgeShader.glsl.js +3 -3
  125. package/chunks/Fog.glsl.js +6 -6
  126. package/chunks/HUDMaterial.glsl.js +48 -48
  127. package/chunks/HeatmapDensity.glsl.js +7 -7
  128. package/chunks/HighlightApply.glsl.js +3 -3
  129. package/chunks/LineCallout.glsl.js +3 -3
  130. package/chunks/LineMarker.glsl.js +22 -22
  131. package/chunks/MeasurementArrow.glsl.js +4 -4
  132. package/chunks/NativeLine.glsl.js +11 -11
  133. package/chunks/Path.glsl.js +16 -16
  134. package/chunks/Pattern.glsl.js +30 -30
  135. package/chunks/RasterColorizer.glsl.js +4 -4
  136. package/chunks/RealisticTree.glsl.js +20 -20
  137. package/chunks/RibbonLine.glsl.js +39 -39
  138. package/chunks/ShadedColorMaterial.glsl.js +10 -10
  139. package/chunks/ShadowCastVisualize.glsl.js +5 -5
  140. package/chunks/ShadowHighlight.glsl.js +2 -2
  141. package/chunks/SlicePlaneMaterial.glsl.js +3 -3
  142. package/chunks/Stars.glsl.js +2 -2
  143. package/chunks/WaterSurface.glsl.js +20 -20
  144. package/chunks/languageUtils.js +1 -1
  145. package/chunks/persistableUrlUtils.js +1 -1
  146. package/chunks/vec22.js +1 -1
  147. package/chunks/vec2f64.js +1 -1
  148. package/chunks/vec3.js +1 -1
  149. package/chunks/vec33.js +1 -1
  150. package/chunks/vec43.js +1 -1
  151. package/colorUtils.js +1 -1
  152. package/config.js +1 -1
  153. package/core/Accessor.js +1 -1
  154. package/core/AsyncUpdate.js +1 -1
  155. package/core/Clonable.js +1 -1
  156. package/core/Collection.js +1 -1
  157. package/core/HandleOwner.js +1 -1
  158. package/core/Loadable.js +1 -1
  159. package/core/NestedMap.js +1 -1
  160. package/core/accessorSupport/DefaultsStore.js +1 -1
  161. package/core/accessorSupport/Properties.js +1 -1
  162. package/core/accessorSupport/decorators/enumeration.js +1 -1
  163. package/core/accessorSupport/extensions/serializableProperty/reader.js +1 -1
  164. package/core/accessorSupport/extensions/serializableProperty/writePolicyUtils.js +1 -1
  165. package/core/accessorSupport/extensions/serializableProperty/writer.js +1 -1
  166. package/core/accessorSupport/read.js +1 -1
  167. package/core/accessorSupport/tracking.js +1 -1
  168. package/core/accessorSupport/write.js +1 -1
  169. package/core/devEnvironmentUtils.js +1 -1
  170. package/core/has.js +1 -1
  171. package/core/libs/gl-matrix-2/factories/vec2f64.js +1 -1
  172. package/core/libs/gl-matrix-2/math/vec3.js +1 -1
  173. package/core/libs/rbush/PooledRBush.js +1 -1
  174. package/core/promiseUtils.js +1 -1
  175. package/core/reactiveUtils.js +1 -1
  176. package/core/scheduling.js +1 -1
  177. package/core/throttle.js +1 -1
  178. package/core/urlUtils.js +1 -1
  179. package/core/watchUtils.js +1 -1
  180. package/core/workers/RemoteClient.js +1 -1
  181. package/core/workers/WorkerOwner.js +1 -1
  182. package/core/workers/loaderConfig.js +1 -1
  183. package/core/workers/workerFactory.js +1 -1
  184. package/geometry/Mesh.js +1 -1
  185. package/geometry/geometryEngine.js +1 -1
  186. package/geometry/geometryEngineAsync.js +1 -1
  187. package/geometry/projection.js +1 -1
  188. package/geometry/support/axisAngleDegrees.js +1 -1
  189. package/geometry/support/meshUtils/centerAt.js +1 -1
  190. package/geometry/support/meshUtils/deduplicate.js +1 -1
  191. package/geometry/support/meshUtils/elevation.js +1 -1
  192. package/geometry/support/meshUtils/geographicUtils.js +1 -1
  193. package/geometry/support/meshUtils/georeference.js +1 -1
  194. package/geometry/support/meshUtils/loadExternal.js +1 -1
  195. package/geometry/support/meshUtils/loadGLTFMesh.js +1 -1
  196. package/geometry/support/meshUtils/offset.js +1 -1
  197. package/geometry/support/meshUtils/rotate.js +1 -1
  198. package/geometry/support/meshUtils/scale.js +1 -1
  199. package/geometry/support/normalizeUtils.js +1 -1
  200. package/geometry/support/normalizeUtilsCommon.js +1 -1
  201. package/geometry/support/offset.js +1 -1
  202. package/geometry/support/rotate.js +1 -1
  203. package/identity/IdentityManagerBase.js +1 -1
  204. package/identity/IdentityModal.js +1 -1
  205. package/interfaces.d.ts +109 -2
  206. package/intl/locale.js +1 -1
  207. package/intl/messages.js +1 -1
  208. package/kernel.js +1 -1
  209. package/layers/AnalysisLayer.js +1 -1
  210. package/layers/CSVLayer.js +1 -1
  211. package/layers/FeatureLayer.js +1 -1
  212. package/layers/GeoJSONLayer.js +1 -1
  213. package/layers/GeoRSSLayer.js +1 -1
  214. package/layers/ImageryLayer.js +1 -1
  215. package/layers/ImageryTileLayer.js +1 -1
  216. package/layers/Layer.js +1 -1
  217. package/layers/MapImageLayer.js +1 -1
  218. package/layers/MapNotesLayer.js +1 -1
  219. package/layers/OGCFeatureLayer.js +1 -1
  220. package/layers/RouteLayer.js +1 -1
  221. package/layers/SceneLayer.js +1 -1
  222. package/layers/StreamLayer.js +1 -1
  223. package/layers/SubtypeGroupLayer.js +1 -1
  224. package/layers/TileLayer.js +1 -1
  225. package/layers/VectorTileLayer.js +1 -1
  226. package/layers/VoxelLayer.js +1 -1
  227. package/layers/VoxelWasmPerScene.js +1 -1
  228. package/layers/WCSLayer.js +1 -1
  229. package/layers/WFSLayer.js +1 -1
  230. package/layers/WMSLayer.js +1 -1
  231. package/layers/WMTSLayer.js +1 -1
  232. package/layers/buildingSublayers/BuildingComponentSublayer.js +1 -1
  233. package/layers/effects/EffectView.js +1 -1
  234. package/layers/effects/FeatureEffectView.js +1 -1
  235. package/layers/effects/jsonUtils.js +1 -1
  236. package/layers/graphics/OptimizedGeometry.js +1 -1
  237. package/layers/graphics/centroid.js +1 -1
  238. package/layers/graphics/controllers/FeatureTileController3D.js +1 -1
  239. package/layers/graphics/controllers/I3SOnDemandController.js +1 -1
  240. package/layers/graphics/data/QueryEngineResult.js +1 -1
  241. package/layers/graphics/data/StreamFeatureManager.js +1 -1
  242. package/layers/graphics/editingSupport.js +1 -1
  243. package/layers/graphics/objectIdUtils.js +1 -1
  244. package/layers/graphics/sources/CSVSource.js +1 -1
  245. package/layers/graphics/sources/FeatureLayerSource.js +1 -1
  246. package/layers/graphics/sources/GeoJSONSource.js +1 -1
  247. package/layers/graphics/sources/MemorySource.js +1 -1
  248. package/layers/graphics/sources/OGCFeatureSource.js +1 -1
  249. package/layers/graphics/sources/WFSSource.js +1 -1
  250. package/layers/graphics/sources/WFSSourceWorker.js +1 -1
  251. package/layers/graphics/sources/connections/WebSocketConnection.js +1 -1
  252. package/layers/graphics/sources/geojson/GeoJSONSourceWorker.js +1 -1
  253. package/layers/graphics/sources/geojson/geojson.js +1 -1
  254. package/layers/graphics/sources/support/CSVSourceWorker.js +1 -1
  255. package/layers/graphics/sources/support/QueryTask.js +1 -1
  256. package/layers/mixins/APIKeyMixin.js +1 -1
  257. package/layers/mixins/ArcGISImageService.js +1 -1
  258. package/layers/mixins/ArcGISMapService.js +1 -1
  259. package/layers/mixins/ImageryTileMixin.js +1 -1
  260. package/layers/mixins/OperationalLayer.js +1 -1
  261. package/layers/mixins/PortalLayer.js +1 -1
  262. package/layers/mixins/SceneService.js +1 -1
  263. package/layers/mixins/refresh.js +1 -1
  264. package/layers/ogc/dateUtils.js +1 -1
  265. package/layers/ogc/ogcFeatureUtils.js +1 -1
  266. package/layers/ogc/wfsUtils.js +1 -1
  267. package/layers/save/featureLayerUtils.js +1 -1
  268. package/layers/support/ExportImageParameters.js +1 -1
  269. package/layers/support/ExportImageServiceParameters.js +1 -1
  270. package/layers/support/ExportWMSImageParameters.js +1 -1
  271. package/layers/support/FeatureEffect.js +1 -1
  272. package/layers/support/FeatureType.js +1 -1
  273. package/layers/support/FetchAssociatedFeatureLayer.js +1 -1
  274. package/layers/support/LabelClass.js +1 -1
  275. package/layers/support/LayerContingentValuesCache.js +1 -1
  276. package/layers/support/RasterFunction.js +1 -1
  277. package/layers/support/RasterInfo.js +1 -1
  278. package/layers/support/RasterJobHandler.js +1 -1
  279. package/layers/support/RasterWorker.js +1 -1
  280. package/layers/support/Sublayer.js +1 -1
  281. package/layers/support/SubtypeSublayer.js +1 -1
  282. package/layers/support/TilemapCache.js +1 -1
  283. package/layers/support/TimeReference.d.ts +4 -0
  284. package/layers/support/WMTSSublayer.js +1 -1
  285. package/layers/support/arcgisLayers.js +1 -1
  286. package/layers/support/commonProperties.js +1 -1
  287. package/layers/support/editableLayers.js +1 -1
  288. package/layers/support/fieldUtils.js +1 -1
  289. package/layers/support/floorFilterUtils.js +1 -1
  290. package/layers/support/imageryRendererUtils.js +1 -1
  291. package/layers/support/layerUtils.js +1 -1
  292. package/layers/support/layersCreator.js +1 -1
  293. package/layers/support/rasterDatasets/BaseRaster.js +1 -1
  294. package/layers/support/rasterDatasets/CloudRaster.js +1 -1
  295. package/layers/support/rasterDatasets/ImageAuxRaster.js +1 -1
  296. package/layers/support/rasterDatasets/ImageServerRaster.js +1 -1
  297. package/layers/support/rasterDatasets/InMemoryRaster.js +1 -1
  298. package/layers/support/rasterDatasets/MRFRaster.js +1 -1
  299. package/layers/support/rasterDatasets/TIFFRaster.js +1 -1
  300. package/layers/support/rasterDatasets/WCSRaster.js +1 -1
  301. package/layers/support/rasterDatasets/multipartParser.js +1 -1
  302. package/layers/support/rasterDatasets/pamParser.js +1 -1
  303. package/layers/support/rasterDatasets/wcsCapabilitiesParser.js +1 -1
  304. package/layers/support/rasterDatasets/wcsCoverageParser.js +1 -1
  305. package/layers/support/rasterDatasets/xmlUtilities.js +1 -1
  306. package/layers/support/rasterFormats/Lerc.js +1 -1
  307. package/layers/support/rasterFormats/RasterCodec.js +1 -1
  308. package/layers/support/rasterFormats/TiffDecoder.js +1 -1
  309. package/layers/support/rasterFunctions/pixelUtils.js +1 -1
  310. package/layers/support/rasterFunctions/rasterProjectionHelper.js +1 -1
  311. package/layers/support/rasterFunctions/stretchUtils.js +1 -1
  312. package/layers/support/rasterFunctions/vectorFieldUtils.js +1 -1
  313. package/layers/support/rasterTransforms/PolynomialTransform.js +1 -1
  314. package/layers/support/rasterTransforms/utils.js +1 -1
  315. package/layers/support/source/DataLayerSource.js +1 -1
  316. package/layers/support/source/QueryTableDataSource.js +1 -1
  317. package/layers/support/vectorTileLayerLoader.js +1 -1
  318. package/layers/support/wmsUtils.js +1 -1
  319. package/layers/support/wmtsUtils.js +1 -1
  320. package/libs/maquette-advanced-projector/projector.js +1 -1
  321. package/networks/Network.js +1 -1
  322. package/networks/UtilityNetwork.js +1 -1
  323. package/networks/support/utils.js +1 -1
  324. package/package.json +1 -1
  325. package/popup/content/ExpressionContent.js +1 -1
  326. package/portal/Portal.js +1 -1
  327. package/portal/PortalItem.js +1 -1
  328. package/portal/support/geometryServiceUtils.js +1 -1
  329. package/portal/support/layersLoader.js +1 -1
  330. package/portal/support/portalItemUtils.js +1 -1
  331. package/portal/support/portalLayers.js +1 -1
  332. package/renderers/DictionaryRenderer.js +1 -1
  333. package/renderers/FlowRenderer.js +1 -1
  334. package/renderers/RasterColormapRenderer.js +1 -1
  335. package/renderers/RasterStretchRenderer.js +1 -1
  336. package/renderers/VectorFieldRenderer.js +1 -1
  337. package/renderers/support/RasterSymbolizer.js +1 -1
  338. package/renderers/support/UniqueValueInfo.js +1 -1
  339. package/renderers/support/colorRampUtils.js +1 -1
  340. package/renderers/support/heatmapUtils.js +1 -1
  341. package/renderers/support/rasterRendererHelper.js +1 -1
  342. package/request.js +1 -1
  343. package/rest/identify.js +1 -1
  344. package/rest/imageService.js +1 -1
  345. package/rest/networkService.js +1 -1
  346. package/rest/networks/support/SynthesizeAssociationGeometriesParameters.js +1 -1
  347. package/rest/operations/identify.js +1 -1
  348. package/rest/print.js +1 -1
  349. package/rest/query/executeQuery.js +1 -1
  350. package/rest/query/operations/query.js +1 -1
  351. package/rest/query/operations/queryRelatedRecords.js +1 -1
  352. package/rest/query/operations/queryTopFeatures.js +1 -1
  353. package/rest/route.js +1 -1
  354. package/rest/support/DirectionLine.js +1 -1
  355. package/rest/support/DirectionPoint.js +1 -1
  356. package/rest/support/DirectionsFeatureSet.js +1 -1
  357. package/rest/support/FeatureSet.js +1 -1
  358. package/rest/support/ImageSampleParameters.js +1 -1
  359. package/rest/support/PointBarrier.js +1 -1
  360. package/rest/support/PolygonBarrier.js +1 -1
  361. package/rest/support/PolylineBarrier.js +1 -1
  362. package/rest/support/RouteInfo.js +1 -1
  363. package/rest/support/Stop.js +1 -1
  364. package/rest/support/meshFeatureSet.js +1 -1
  365. package/rest/support/printTaskUtils.js +1 -1
  366. package/smartMapping/labels/clusters.js +1 -1
  367. package/smartMapping/raster/renderers/rgb.js +1 -1
  368. package/smartMapping/raster/renderers/uniqueValue.js +1 -1
  369. package/smartMapping/raster/support/adapters/ImageryLayerAdapter.js +1 -1
  370. package/smartMapping/raster/support/adapters/RasterLayerAdapter.js +1 -1
  371. package/smartMapping/raster/support/utils.js +1 -1
  372. package/smartMapping/renderers/color.js +1 -1
  373. package/smartMapping/renderers/size.js +1 -1
  374. package/smartMapping/renderers/support/utils.js +1 -1
  375. package/smartMapping/renderers/univariateColorSize.js +1 -1
  376. package/smartMapping/statistics/support/WorkerClient.js +1 -1
  377. package/smartMapping/support/adapters/CSVLayerAdapter.js +1 -1
  378. package/smartMapping/support/adapters/FeatureLayerAdapter.js +1 -1
  379. package/smartMapping/support/adapters/OGCFeatureLayerAdapter.js +1 -1
  380. package/smartMapping/support/adapters/SceneLayerAdapter.js +1 -1
  381. package/smartMapping/support/adapters/support/utils.js +1 -1
  382. package/statistics/utils.js +1 -1
  383. package/support/LayersMixin.js +1 -1
  384. package/support/TablesMixin.js +1 -1
  385. package/support/arcadeUtils.js +1 -1
  386. package/support/basemapUtils.js +1 -1
  387. package/support/popupUtils.js +1 -1
  388. package/support/revision.js +1 -1
  389. package/support/timeUtils.js +1 -1
  390. package/symbols/FillSymbol3DLayer.js +1 -1
  391. package/symbols/LineSymbol3DLayer.js +1 -1
  392. package/symbols/LineSymbolMarker.js +1 -1
  393. package/symbols/PictureFillSymbol.js +1 -1
  394. package/symbols/PointSymbol3D.js +1 -1
  395. package/symbols/SimpleLineSymbol.js +1 -1
  396. package/symbols/SimpleMarkerSymbol.js +1 -1
  397. package/symbols/cim/CIMResourceManager.js +1 -1
  398. package/symbols/cim/CIMSymbolDrawHelper.js +1 -1
  399. package/symbols/cim/CIMSymbolHelper.js +1 -1
  400. package/symbols/cim/ExpandedCIM.js +1 -1
  401. package/symbols/cim/SDFHelper.js +1 -1
  402. package/symbols/cim/cimAnalyzer.js +1 -1
  403. package/symbols/cim/effects/EffectControlMeasureLine.js +1 -1
  404. package/symbols/cim/effects/EffectDashes.js +1 -1
  405. package/symbols/cim/effects/EffectOffset.js +1 -1
  406. package/symbols/cim/placements/PlacementAlongLineSameSize.js +1 -1
  407. package/symbols/cim/utils.js +1 -1
  408. package/symbols/support/cimSymbolUtils.js +1 -1
  409. package/symbols/support/jsonUtils.js +1 -1
  410. package/symbols/support/previewCIMSymbol.js +1 -1
  411. package/symbols/support/previewSymbol2D.js +1 -1
  412. package/symbols/support/previewSymbol3D.js +1 -1
  413. package/symbols/support/previewWebStyleSymbol.js +1 -1
  414. package/symbols/support/svgUtils.js +1 -1
  415. package/symbols/support/symbolConversion.js +1 -1
  416. package/symbols/support/symbolUtils.js +1 -1
  417. package/tasks/GenerateRendererTask.js +1 -1
  418. package/views/2d/MapViewConstraints.js +1 -1
  419. package/views/2d/constraints/GeometryConstraint.js +1 -1
  420. package/views/2d/engine/Bitmap.js +1 -1
  421. package/views/2d/engine/Container.js +1 -1
  422. package/views/2d/engine/DisplayObject.js +1 -1
  423. package/views/2d/engine/Stage.js +1 -1
  424. package/views/2d/engine/imagery/BrushRasterBitmap.js +1 -1
  425. package/views/2d/engine/imagery/RasterBitmap.js +1 -1
  426. package/views/2d/engine/imagery/RasterVFDisplayObject.js +1 -1
  427. package/views/2d/engine/vectorTiles/TilemapRequest.js +1 -1
  428. package/views/2d/engine/vectorTiles/WorkerTileHandler.js +1 -1
  429. package/views/2d/engine/vectorTiles/buckets/FillBucket.js +1 -1
  430. package/views/2d/engine/vectorTiles/buckets/LineBucket.js +1 -1
  431. package/views/2d/engine/vectorTiles/expression/expression.js +1 -1
  432. package/views/2d/engine/vectorTiles/shaders/VTLMaterial.js +1 -1
  433. package/views/2d/engine/vectorTiles/style/StyleLayer.js +1 -1
  434. package/views/2d/engine/vectorTiles/style/StyleRepository.js +1 -1
  435. package/views/2d/engine/vectorTiles/style/VectorTileSource.js +1 -1
  436. package/views/2d/engine/webgl/FeatureTile.js +1 -1
  437. package/views/2d/engine/webgl/GraphicTile.js +1 -1
  438. package/views/2d/engine/webgl/TextureManager.js +1 -1
  439. package/views/2d/engine/webgl/brushes/WGLBrushHeatmap.js +1 -1
  440. package/views/2d/engine/webgl/brushes/WGLBrushVTLCircle.js +1 -1
  441. package/views/2d/engine/webgl/brushes/WGLBrushVTLFill.js +1 -1
  442. package/views/2d/engine/webgl/brushes/WGLBrushVTLLine.js +1 -1
  443. package/views/2d/engine/webgl/collisions/CollisionEngine.js +1 -1
  444. package/views/2d/engine/webgl/collisions/MetricReader.js +1 -1
  445. package/views/2d/engine/webgl/cpuMapped/DisplayRecordReader.js +1 -1
  446. package/views/2d/engine/webgl/cpuMapped/FreeList.js +1 -1
  447. package/views/2d/engine/webgl/mesh/MeshData.js +1 -1
  448. package/views/2d/engine/webgl/mesh/templates/WGLBaseLineTemplate.js +1 -1
  449. package/views/2d/engine/webgl/mesh/templates/WGLBaseMarkerTemplate.js +1 -1
  450. package/views/2d/engine/webgl/mesh/templates/WGLBaseTextTemplate.js +1 -1
  451. package/views/2d/engine/webgl/mesh/templates/WGLDynamicFillTemplate.js +1 -1
  452. package/views/2d/engine/webgl/mesh/templates/WGLLabelTemplate.js +1 -1
  453. package/views/2d/engine/webgl/mesh/templates/WGLLineTemplate.js +1 -1
  454. package/views/2d/engine/webgl/mesh/templates/WGLMeshTemplate.js +1 -1
  455. package/views/2d/engine/webgl/painter/RenderPass.js +1 -1
  456. package/views/2d/engine/webgl/shaders/sources/shaderRepository.js +1 -1
  457. package/views/2d/engine/webgl/techniques/dotDensity/TechniqueDotDensity.js +1 -1
  458. package/views/2d/input/MapViewInputManager.js +1 -1
  459. package/views/2d/input/handlers/GamepadNavigation.js +1 -1
  460. package/views/2d/interactive/editingTools/draw/DrawGraphicTool2D.js +1 -1
  461. package/views/2d/interactive/snapping/featureSources/featureServiceSource/FeatureServiceTiles2D.js +1 -1
  462. package/views/2d/layers/BaseLayerView2D.js +1 -1
  463. package/views/2d/layers/BaseLayerViewGL2D.js +1 -1
  464. package/views/2d/layers/BitmapTileLayerView2D.js +1 -1
  465. package/views/2d/layers/FeatureLayerView2D.js +1 -1
  466. package/views/2d/layers/GeoRSSLayerView2D.js +1 -1
  467. package/views/2d/layers/GraphicsLayerView2D.js +1 -1
  468. package/views/2d/layers/ImageryLayerView2D.js +1 -1
  469. package/views/2d/layers/ImageryTileLayerView2D.js +1 -1
  470. package/views/2d/layers/KMLLayerView2D.js +1 -1
  471. package/views/2d/layers/LayerView2D.js +1 -1
  472. package/views/2d/layers/SubtypeGroupLayerView2D.js +1 -1
  473. package/views/2d/layers/TileLayerView2D.js +1 -1
  474. package/views/2d/layers/VectorTileLayerView2D.js +1 -1
  475. package/views/2d/layers/WMTSLayerView2D.js +1 -1
  476. package/views/2d/layers/features/FeatureStore2D.js +1 -1
  477. package/views/2d/layers/features/Pipeline.js +1 -1
  478. package/views/2d/layers/features/batchUtils.js +1 -1
  479. package/views/2d/layers/features/controllers/FeatureController2D.js +1 -1
  480. package/views/2d/layers/features/controllers/support/sourceAdapters.js +1 -1
  481. package/views/2d/layers/features/createSymbolSchema.js +1 -1
  482. package/views/2d/layers/features/processors/SymbolProcessor.js +1 -1
  483. package/views/2d/layers/features/schemaUtils.js +1 -1
  484. package/views/2d/layers/features/sources/BaseFeatureSource.js +1 -1
  485. package/views/2d/layers/features/sources/DataTileSource.js +1 -1
  486. package/views/2d/layers/features/sources/DataTileSubscription.js +1 -1
  487. package/views/2d/layers/features/sources/SnapshotFeatureSource.js +1 -1
  488. package/views/2d/layers/features/support/ClusterStore.js +1 -1
  489. package/views/2d/layers/features/support/FeatureSetReader.js +1 -1
  490. package/views/2d/layers/features/support/FeatureSetReaderJSON.js +1 -1
  491. package/views/2d/layers/features/support/FeatureSetReaderPBF.js +1 -1
  492. package/views/2d/layers/features/support/FeatureSetReaderPBFHeader.js +1 -1
  493. package/views/2d/layers/features/support/ResourceManagerProxy.js +1 -1
  494. package/views/2d/layers/features/tileRenderers/SymbolTileRenderer.js +1 -1
  495. package/views/2d/layers/features/tileRenderers/support/WGLFeatureView.js +1 -1
  496. package/views/2d/layers/graphics/graphicsUtils.js +1 -1
  497. package/views/2d/layers/imagery/BaseImageryTileSubView2D.js +1 -1
  498. package/views/2d/layers/imagery/ImageryTileView2D.js +1 -1
  499. package/views/2d/layers/imagery/VectorFieldTileView2D.js +1 -1
  500. package/views/2d/layers/support/ExportStrategy.js +1 -1
  501. package/views/2d/layers/support/FeatureCommandQueue.js +1 -1
  502. package/views/2d/magnifier/MagnifierView2D.js +1 -1
  503. package/views/2d/support/engineHelpers.js +1 -1
  504. package/views/2d/tiling/TileManager.js +1 -1
  505. package/views/3d/analysis/AreaMeasurement/support/AreaMeasurementVisualization.js +1 -1
  506. package/views/3d/analysis/AreaMeasurementAnalysisView3D.js +1 -1
  507. package/views/3d/analysis/Dimensioning/DimensioningVisualization.js +5 -0
  508. package/views/3d/analysis/Dimensioning/LinearDimensionVisualization.js +5 -0
  509. package/views/3d/analysis/DimensioningAnalysisView3D.js +1 -1
  510. package/views/3d/analysis/DirectLineMeasurement/DirectLineMeasurementController.js +1 -1
  511. package/views/3d/analysis/DirectLineMeasurement/DirectLineMeasurementVisualization.js +1 -1
  512. package/views/3d/analysis/DirectLineMeasurementAnalysisView3D.js +1 -1
  513. package/views/3d/analysis/LineOfSight/LineOfSightController.js +1 -1
  514. package/views/3d/analysis/LineOfSightAnalysisView3D.js +1 -1
  515. package/views/3d/analysis/Slice/SliceTool.js +1 -1
  516. package/views/3d/analysis/SliceAnalysisView3D.js +1 -1
  517. package/views/3d/environment/ChapmanAtmosphere.glsl.js +1 -1
  518. package/views/3d/environment/ChapmanAtmosphere.js +1 -1
  519. package/views/3d/environment/Clouds.glsl.js +1 -1
  520. package/views/3d/environment/CloudsComposition.glsl.js +1 -1
  521. package/views/3d/environment/CloudsComposition.js +1 -1
  522. package/views/3d/environment/CloudsCompositionParameters.js +5 -0
  523. package/views/3d/environment/EnvironmentRenderer.js +1 -1
  524. package/views/3d/environment/Fog.glsl.js +1 -1
  525. package/views/3d/environment/Fog.js +1 -1
  526. package/views/3d/environment/Precipitation.js +1 -1
  527. package/views/3d/environment/SceneViewEnvironment.js +1 -1
  528. package/views/3d/environment/SceneViewEnvironmentManager.js +1 -1
  529. package/views/3d/environment/SimpleAtmosphere.js +1 -1
  530. package/views/3d/environment/Stars.glsl.js +1 -1
  531. package/views/3d/environment/Stars.js +1 -1
  532. package/views/3d/externalRenderers/ExternalRendererStore.js +1 -1
  533. package/views/3d/glTF/internal/Resource.js +1 -1
  534. package/views/3d/glTF/loader.js +1 -1
  535. package/views/3d/input/SceneInputManager.js +1 -1
  536. package/views/3d/input/handlers/TwoFingerTilt.js +1 -1
  537. package/views/3d/interactive/Manipulator3D.js +1 -1
  538. package/views/3d/interactive/editingTools/draw/DrawGraphicTool3D.js +1 -1
  539. package/views/3d/interactive/editingTools/manipulations/MoveManipulation.js +1 -1
  540. package/views/3d/interactive/editingTools/moveGraphic/isSupportedGraphic.js +1 -1
  541. package/views/3d/interactive/editingTools/reshapeGraphic/GraphicReshapeTool.js +1 -1
  542. package/views/3d/interactive/editingTools/reshapeGraphic/ReshapeOperation.js +1 -1
  543. package/views/3d/interactive/editingTools/reshapeGraphic/isSupportedGraphic.js +1 -1
  544. package/views/3d/interactive/editingTools/transformGraphic/GraphicScaleRotateTransform.js +1 -1
  545. package/views/3d/interactive/editingTools/transformGraphic/isSupportedGraphic.js +1 -1
  546. package/views/3d/interactive/measurementTools/areaMeasurement3D/AreaMeasurement3DView.js +1 -1
  547. package/views/3d/interactive/measurementTools/directLineMeasurement3D/DirectLineMeasurement3DView.js +1 -1
  548. package/views/3d/interactive/snapping/featureSources/featureServiceSource/FeatureServiceTiles3D.js +1 -1
  549. package/views/3d/interactive/visualElements/DrapedVisualElementResources.js +1 -1
  550. package/views/3d/interactive/visualElements/LineVisualElement.js +1 -1
  551. package/views/3d/interactive/visualElements/OutlineVisualElement.js +1 -1
  552. package/views/3d/interactive/visualElements/VisualElementResources.js +1 -1
  553. package/views/3d/layers/BuildingComponentSublayerView3D.js +1 -1
  554. package/views/3d/layers/ElevationLayerView3D.js +1 -1
  555. package/views/3d/layers/FeatureLayerView3D.js +1 -1
  556. package/views/3d/layers/FeatureLayerViewBase3D.js +1 -1
  557. package/views/3d/layers/FeatureLikeLayerView3D.js +1 -1
  558. package/views/3d/layers/GraphicsLayerView3D.js +1 -1
  559. package/views/3d/layers/GraphicsView3D.js +1 -1
  560. package/views/3d/layers/I3SMeshView3D.js +1 -1
  561. package/views/3d/layers/ImageryLayerView3D.js +1 -1
  562. package/views/3d/layers/ImageryTileLayerView3D.js +1 -1
  563. package/views/3d/layers/LayerView3D.js +1 -1
  564. package/views/3d/layers/RouteLayerView3D.js +1 -1
  565. package/views/3d/layers/SceneLayerGraphicsView3D.js +1 -1
  566. package/views/3d/layers/SceneLayerView3D.js +1 -1
  567. package/views/3d/layers/SceneLayerWorker.js +1 -1
  568. package/views/3d/layers/StreamLayerView3D.js +1 -1
  569. package/views/3d/layers/TiledLayerView3D.js +1 -1
  570. package/views/3d/layers/VectorTileLayerView3D.js +1 -1
  571. package/views/3d/layers/VoxelLayerView3D.js +1 -1
  572. package/views/3d/layers/WMSLayerView3D.js +1 -1
  573. package/views/3d/layers/WMTSLayerView3D.js +1 -1
  574. package/views/3d/layers/graphics/Graphics3DCore.js +1 -1
  575. package/views/3d/layers/graphics/Graphics3DExtrudeSymbolLayer.js +1 -1
  576. package/views/3d/layers/graphics/Graphics3DFeatureProcessor.js +1 -1
  577. package/views/3d/layers/graphics/Graphics3DFilterVisibility.js +1 -1
  578. package/views/3d/layers/graphics/Graphics3DFrustumVisibility.js +1 -1
  579. package/views/3d/layers/graphics/Graphics3DLineSymbolLayer.js +1 -1
  580. package/views/3d/layers/graphics/Graphics3DMeshFillSymbolLayer.js +1 -1
  581. package/views/3d/layers/graphics/Graphics3DObject3DGraphicLayer.js +1 -1
  582. package/views/3d/layers/graphics/Graphics3DPathSymbolLayer.js +1 -1
  583. package/views/3d/layers/graphics/Graphics3DPointSymbol.js +1 -1
  584. package/views/3d/layers/graphics/Graphics3DSymbol.js +1 -1
  585. package/views/3d/layers/graphics/Graphics3DSymbolLayer.js +1 -1
  586. package/views/3d/layers/graphics/GraphicsDeconflictor.js +1 -1
  587. package/views/3d/layers/graphics/GraphicsProcessor.js +1 -1
  588. package/views/3d/layers/graphics/Labeler.js +1 -1
  589. package/views/3d/layers/i3s/I3SAttributeOverrides.js +1 -1
  590. package/views/3d/layers/i3s/I3SMeshViewFilter.js +1 -1
  591. package/views/3d/layers/i3s/I3SStreamDataController.js +1 -1
  592. package/views/3d/layers/i3s/I3SUtil.js +1 -1
  593. package/views/3d/layers/support/FeatureTileTree3D.js +1 -1
  594. package/views/3d/layers/support/FeatureTileTree3DDebugger.js +1 -1
  595. package/views/3d/layers/support/HeatmapFeatureProcessor.js +1 -1
  596. package/views/3d/layers/support/StageLayerElevationProvider.js +1 -1
  597. package/views/3d/layers/support/featureTileQuery3D.js +1 -1
  598. package/views/3d/state/ConstraintsManager.js +1 -1
  599. package/views/3d/state/helpers/SceneIntersectionHelper.js +1 -1
  600. package/views/3d/support/ResourceController.js +1 -1
  601. package/views/3d/support/SharedSymbolResources.js +1 -1
  602. package/views/3d/support/TextureCollection.js +1 -1
  603. package/views/3d/support/cameraUtils.js +1 -1
  604. package/views/3d/support/pointsOfInterest/CameraOnSurface.js +1 -1
  605. package/views/3d/support/pointsOfInterest/Focus.js +1 -1
  606. package/views/3d/support/pointsOfInterest/PointsOfInterest.js +1 -1
  607. package/views/3d/support/pointsOfInterest/StableSurfaceCenter.js +1 -1
  608. package/views/3d/terrain/OverlayFramebufferObject.js +1 -1
  609. package/views/3d/terrain/OverlayManager.js +1 -1
  610. package/views/3d/terrain/OverlayRenderer.js +1 -1
  611. package/views/3d/terrain/PatchGeometry.js +1 -1
  612. package/views/3d/terrain/PatchGeometryFactory.js +1 -1
  613. package/views/3d/terrain/PatchRenderData.js +1 -1
  614. package/views/3d/terrain/PlanarPatch.js +1 -1
  615. package/views/3d/terrain/RasterColorizerTechnique.js +1 -1
  616. package/views/3d/terrain/RasterTile.js +1 -1
  617. package/views/3d/terrain/SphericalPatch.js +1 -1
  618. package/views/3d/terrain/TerrainRenderer.js +1 -1
  619. package/views/3d/terrain/TerrainSurface.js +1 -1
  620. package/views/3d/terrain/Tile.js +1 -1
  621. package/views/3d/terrain/TileCompositor.js +1 -1
  622. package/views/3d/terrain/TileRenderer.js +1 -1
  623. package/views/3d/terrain/TilingSchemeLogic.js +1 -1
  624. package/views/3d/terrain/terrainUtils.js +1 -1
  625. package/views/3d/webgl-engine/collections/Component/ComponentIntersectionData.js +1 -1
  626. package/views/3d/webgl-engine/collections/Component/ComponentObjectCollection.js +1 -1
  627. package/views/3d/webgl-engine/collections/Component/Material/ComponentTechnique.js +1 -1
  628. package/views/3d/webgl-engine/collections/Component/Material/shader/ComponentData.glsl.js +2 -2
  629. package/views/3d/webgl-engine/core/material/MaterialBase.js +1 -1
  630. package/views/3d/webgl-engine/core/shaderLibrary/ScreenSizeScaling.glsl.js +1 -1
  631. package/views/3d/webgl-engine/core/shaderLibrary/Slice.glsl.js +5 -5
  632. package/views/3d/webgl-engine/core/shaderLibrary/attributes/PathVertexPosition.glsl.js +8 -8
  633. package/views/3d/webgl-engine/core/shaderLibrary/attributes/RibbonVertexPosition.glsl.js +6 -6
  634. package/views/3d/webgl-engine/core/shaderLibrary/attributes/VertexNormal.glsl.js +4 -4
  635. package/views/3d/webgl-engine/core/shaderLibrary/attributes/VertexPosition.glsl.js +2 -2
  636. package/views/3d/webgl-engine/core/shaderLibrary/attributes/VerticalOffset.glsl.js +5 -5
  637. package/views/3d/webgl-engine/core/shaderLibrary/hud/HUD.glsl.js +13 -13
  638. package/views/3d/webgl-engine/core/shaderLibrary/raster/BasicGrid.glsl.js +2 -2
  639. package/views/3d/webgl-engine/core/shaderLibrary/raster/Colormap.glsl.js +1 -1
  640. package/views/3d/webgl-engine/core/shaderLibrary/raster/Common.glsl.js +2 -2
  641. package/views/3d/webgl-engine/core/shaderLibrary/raster/Projection.glsl.js +1 -1
  642. package/views/3d/webgl-engine/core/shaderLibrary/raster/RasterColorizer.glsl.js +1 -1
  643. package/views/3d/webgl-engine/core/shaderLibrary/shading/ComputeMaterialColor.glsl.js +1 -1
  644. package/views/3d/webgl-engine/core/shaderLibrary/shading/EvaluateAmbientLighting.glsl.js +5 -5
  645. package/views/3d/webgl-engine/core/shaderLibrary/shading/EvaluateAmbientOcclusion.glsl.js +3 -3
  646. package/views/3d/webgl-engine/core/shaderLibrary/shading/EvaluateSceneLighting.glsl.js +13 -13
  647. package/views/3d/webgl-engine/core/shaderLibrary/shading/LineStipple.glsl.js +17 -17
  648. package/views/3d/webgl-engine/core/shaderLibrary/shading/ReadShadowMap.glsl.js +1 -1
  649. package/views/3d/webgl-engine/core/shaderLibrary/shading/VisualVariables.glsl.js +7 -7
  650. package/views/3d/webgl-engine/core/shaderLibrary/shading/WaterDistortion.glsl.js +2 -2
  651. package/views/3d/webgl-engine/core/shaderLibrary/terrain/Overlay.glsl.js +5 -5
  652. package/views/3d/webgl-engine/core/shaderLibrary/util/CameraSpace.glsl.js +2 -2
  653. package/views/3d/webgl-engine/core/shaderLibrary/util/CloudsParallaxShading.glsl.js +15 -15
  654. package/views/3d/webgl-engine/core/shaderLibrary/util/ScreenSizePerspective.glsl.js +2 -2
  655. package/views/3d/webgl-engine/core/shaderLibrary/util/View.glsl.js +1 -1
  656. package/views/3d/webgl-engine/core/shaderModules/BooleanPassUniform.js +5 -0
  657. package/views/3d/webgl-engine/core/shaderModules/Float4DrawUniform.js +5 -0
  658. package/views/3d/webgl-engine/core/shaderModules/{Matrix3Uniform.js → Float4PassUniform.js} +1 -1
  659. package/views/3d/webgl-engine/core/shaderModules/Float4Uniform.js +1 -1
  660. package/views/3d/webgl-engine/core/shaderModules/Matrix3DrawUniform.js +5 -0
  661. package/views/3d/webgl-engine/core/shaderModules/Matrix3PassUniform.js +5 -0
  662. package/views/3d/webgl-engine/core/shaderModules/{TextureCubeUniform.js → TextureCubePassUniform.js} +1 -1
  663. package/views/3d/webgl-engine/core/shaderTechnique/ShaderTechniqueConfiguration.js +1 -1
  664. package/views/3d/webgl-engine/lib/AutoDisposable.js +1 -1
  665. package/views/3d/webgl-engine/lib/BindParameters.js +1 -1
  666. package/views/3d/webgl-engine/lib/GLTextureMaterial.js +1 -1
  667. package/views/3d/webgl-engine/lib/RenderPluginManager.js +1 -1
  668. package/views/3d/webgl-engine/lib/Renderer.js +1 -1
  669. package/views/3d/webgl-engine/lib/ShadowAccumulator.js +1 -1
  670. package/views/3d/webgl-engine/lib/ShadowHighlight.js +1 -1
  671. package/views/3d/webgl-engine/lib/ShadowMap.js +1 -1
  672. package/views/3d/webgl-engine/lib/Texture.js +1 -1
  673. package/views/3d/webgl-engine/lib/WebGLLayer.js +1 -1
  674. package/views/3d/webgl-engine/lib/edgeRendering/EdgeView.js +1 -1
  675. package/views/3d/webgl-engine/lib/intersectorUtilsConversions.js +1 -1
  676. package/views/3d/webgl-engine/lib/pathGeometryUtils.js +1 -1
  677. package/views/3d/webgl-engine/materials/CheckerBoardMaterial.js +1 -1
  678. package/views/3d/webgl-engine/materials/ColorMaterial.js +1 -1
  679. package/views/3d/webgl-engine/materials/DefaultMaterial.js +1 -1
  680. package/views/3d/webgl-engine/materials/HUDMaterial.js +1 -1
  681. package/views/3d/webgl-engine/materials/HeatmapDensityMaterial.js +1 -1
  682. package/views/3d/webgl-engine/materials/ImageMaterial.js +1 -1
  683. package/views/3d/webgl-engine/materials/LineCalloutMaterial.js +1 -1
  684. package/views/3d/webgl-engine/materials/LineMarkerMaterial.js +1 -1
  685. package/views/3d/webgl-engine/materials/MeasurementArrowMaterial.js +1 -1
  686. package/views/3d/webgl-engine/materials/NativeLineMaterial.js +1 -1
  687. package/views/3d/webgl-engine/materials/PathMaterial.js +1 -1
  688. package/views/3d/webgl-engine/materials/PathTechnique.js +1 -1
  689. package/views/3d/webgl-engine/materials/RibbonLineMaterial.js +1 -1
  690. package/views/3d/webgl-engine/materials/ShadedColorMaterial.js +1 -1
  691. package/views/3d/webgl-engine/materials/{VisualVariableMaterialParameters.js → VisualVariablePassParameters.js} +1 -1
  692. package/views/3d/webgl-engine/materials/WaterGLMaterial.js +1 -1
  693. package/views/3d/webgl-engine/materials/WaterTechnique.js +1 -1
  694. package/views/3d/webgl-engine/parts/RenderView.js +1 -1
  695. package/views/3d/webgl-engine/parts/requireUtils.js +1 -1
  696. package/views/3d/webgl-engine/shaders/CheckerBoard.glsl.js +1 -1
  697. package/views/3d/webgl-engine/shaders/CheckerBoardTechnique.js +1 -1
  698. package/views/3d/webgl-engine/shaders/ColorMaterial.glsl.js +1 -1
  699. package/views/3d/webgl-engine/shaders/DefaultMaterial.glsl.js +1 -1
  700. package/views/3d/webgl-engine/shaders/DefaultMaterialTechnique.js +1 -1
  701. package/views/3d/webgl-engine/shaders/HUDMaterial.glsl.js +1 -1
  702. package/views/3d/webgl-engine/shaders/HUDMaterialTechnique.js +1 -1
  703. package/views/3d/webgl-engine/shaders/HeatmapDensity.glsl.js +1 -1
  704. package/views/3d/webgl-engine/shaders/HeatmapDensityTechnique.js +1 -1
  705. package/views/3d/webgl-engine/shaders/HeatmapTechnique.js +1 -1
  706. package/views/3d/webgl-engine/shaders/HighlightApply.glsl.js +1 -1
  707. package/views/3d/webgl-engine/shaders/LineCallout.glsl.js +1 -1
  708. package/views/3d/webgl-engine/shaders/LineMarker.glsl.js +1 -1
  709. package/views/3d/webgl-engine/shaders/Magnifier.glsl.js +3 -3
  710. package/views/3d/webgl-engine/shaders/MeasurementArrow.glsl.js +1 -1
  711. package/views/3d/webgl-engine/shaders/NativeLine.glsl.js +1 -1
  712. package/views/3d/webgl-engine/shaders/Path.glsl.js +1 -1
  713. package/views/3d/webgl-engine/shaders/Pattern.glsl.js +1 -1
  714. package/views/3d/webgl-engine/shaders/RealisticTree.glsl.js +1 -1
  715. package/views/3d/webgl-engine/shaders/RibbonLine.glsl.js +1 -1
  716. package/views/3d/webgl-engine/shaders/ShadedColorMaterial.glsl.js +1 -1
  717. package/views/3d/webgl-engine/shaders/ShadowCastVisualize.glsl.js +1 -1
  718. package/views/3d/webgl-engine/shaders/ShadowHighlight.glsl.js +1 -1
  719. package/views/3d/webgl-engine/shaders/SlicePlaneMaterial.glsl.js +1 -1
  720. package/views/3d/webgl-engine/shaders/WaterSurface.glsl.js +1 -1
  721. package/views/3d/webgl-engine/shaders/sources/edgeRenderer/AdjustProjectedPosition.glsl.js +3 -3
  722. package/views/3d/webgl-engine/shaders/sources/edgeRenderer/EdgeShader.glsl.js +1 -1
  723. package/views/3d/webgl-engine/shaders/sources/edgeRenderer/EdgeUtil.glsl.js +5 -5
  724. package/views/BasemapView.js +1 -1
  725. package/views/GroundView.js +1 -1
  726. package/views/LayerViewManager.js +1 -1
  727. package/views/MapView.js +1 -1
  728. package/views/SceneView.js +1 -1
  729. package/views/ToolViewManager.js +1 -1
  730. package/views/View.js +1 -1
  731. package/views/draw/DrawAction.js +1 -1
  732. package/views/draw/DrawGraphicTool.js +1 -1
  733. package/views/draw/DrawOperation.js +1 -1
  734. package/views/draw/DrawTool.js +1 -1
  735. package/views/draw/support/Box.js +1 -1
  736. package/views/draw/support/GraphicMover.js +1 -1
  737. package/views/draw/support/Reshape.js +1 -1
  738. package/views/interactive/coordinateHelper.js +1 -1
  739. package/views/interactive/editGeometry/operations/OffsetEdgeVertex.js +1 -1
  740. package/views/interactive/snapping/FeatureSnappingEngine.js +1 -1
  741. package/views/interactive/snapping/SnappingManager.js +1 -1
  742. package/views/interactive/snapping/featureSources/WorkerTileTreeDebugger.js +1 -1
  743. package/views/interactive/snapping/featureSources/featureServiceSource/FeatureServiceSnappingSourceWorkerHandle.js +1 -1
  744. package/views/interactive/snapping/featureSources/featureServiceSource/FeatureServiceTileStore.js +1 -1
  745. package/views/interactive/snapping/featureSources/featureServiceSource/FeatureServiceTiledFetcher.js +1 -1
  746. package/views/layers/FeatureLayerView.js +1 -1
  747. package/views/layers/GroupLayerView.js +1 -1
  748. package/views/layers/ImageryLayerView.js +1 -1
  749. package/views/layers/ImageryTileLayerView.js +1 -1
  750. package/views/layers/LayerView.js +1 -1
  751. package/views/layers/MapImageLayerView.js +1 -1
  752. package/views/layers/WMSLayerView.js +1 -1
  753. package/views/support/AllocationTracer.js +1 -1
  754. package/views/support/DefaultsFromMap.js +1 -1
  755. package/views/support/geometry2dUtils.js +1 -1
  756. package/views/support/layerViewUtils.js +1 -1
  757. package/views/support/waitForResources.js +1 -1
  758. package/views/ui/UI.js +1 -1
  759. package/views/webgl/BufferObject.js +1 -1
  760. package/views/webgl/FramebufferObject.js +1 -1
  761. package/views/webgl/RenderingContext.js +1 -1
  762. package/views/webgl/Texture.js +1 -1
  763. package/views/webgl/UniformBufferLayout.js +1 -1
  764. package/views/webgl/VertexArrayObject.js +1 -1
  765. package/views/webgl/capabilities.js +1 -1
  766. package/views/webgl/rasterUtils.js +1 -1
  767. package/views/webgl/testFloatBufferBlend.js +1 -1
  768. package/webdoc/widgets/TimeSlider.js +1 -1
  769. package/webmap/Bookmark.js +1 -1
  770. package/webscene/Slide.js +1 -1
  771. package/widgets/AreaMeasurement2D/AreaMeasurement2DTool.js +1 -1
  772. package/widgets/AreaMeasurement2D/AreaMeasurement2DViewModel.js +1 -1
  773. package/widgets/AreaMeasurement2D.js +1 -1
  774. package/widgets/AreaMeasurement3D.js +1 -1
  775. package/widgets/Attribution.js +1 -1
  776. package/widgets/BasemapGallery/BasemapGalleryViewModel.js +1 -1
  777. package/widgets/BasemapGallery/support/BasemapGalleryItem.js +1 -1
  778. package/widgets/BasemapGallery/support/basemapCompatibilityUtils.js +1 -1
  779. package/widgets/BasemapLayerList.js +1 -1
  780. package/widgets/BasemapToggle/BasemapToggleViewModel.js +1 -1
  781. package/widgets/Bookmarks/BookmarksViewModel.js +1 -1
  782. package/widgets/Bookmarks.js +1 -1
  783. package/widgets/BuildingExplorer/BuildingDisciplinesTree/BuildingDisciplinesNode.js +1 -1
  784. package/widgets/BuildingExplorer/BuildingExplorerViewModel.js +1 -1
  785. package/widgets/BuildingExplorer/BuildingLevel.js +1 -1
  786. package/widgets/BuildingExplorer/BuildingLevelPicker/BuildingLevelPicker.js +1 -1
  787. package/widgets/BuildingExplorer/BuildingNumericFilterViewModel.js +1 -1
  788. package/widgets/BuildingExplorer/BuildingPhase.js +1 -1
  789. package/widgets/BuildingExplorer/support/buildingLayerUtils.js +1 -1
  790. package/widgets/BuildingExplorer.js +1 -1
  791. package/widgets/CoordinateConversion/CoordinateConversionViewModel.js +1 -1
  792. package/widgets/CoordinateConversion/support/Format.js +1 -1
  793. package/widgets/Daylight/DaylightViewModel.js +1 -1
  794. package/widgets/Daylight/support/SliderWithDropdown.js +1 -1
  795. package/widgets/Daylight.js +1 -1
  796. package/widgets/DirectLineMeasurement3D.js +1 -1
  797. package/widgets/Directions/DirectionsViewModel.js +1 -1
  798. package/widgets/Directions.js +1 -1
  799. package/widgets/DistanceMeasurement2D/DistanceMeasurement2DViewModel.js +1 -1
  800. package/widgets/DistanceMeasurement2D.js +1 -1
  801. package/widgets/Editor/CreateFeaturesWorkflow.js +1 -1
  802. package/widgets/Editor/CreateWorkflow.js +1 -1
  803. package/widgets/Editor/EditorViewModel.js +1 -1
  804. package/widgets/Editor/UpdateWorkflow.js +1 -1
  805. package/widgets/Editor/workflowUtils.js +1 -1
  806. package/widgets/Editor.js +1 -1
  807. package/widgets/ElevationProfile/ElevationProfileLineGround.js +1 -1
  808. package/widgets/ElevationProfile/ElevationProfileLineInput.js +1 -1
  809. package/widgets/ElevationProfile/ElevationProfileLineView.js +1 -1
  810. package/widgets/ElevationProfile/ElevationProfileTool.js +1 -1
  811. package/widgets/ElevationProfile/ElevationProfileViewModel.js +1 -1
  812. package/widgets/ElevationProfile/components/Statistics.js +1 -1
  813. package/widgets/ElevationProfile/support/elevationQuerySourceUtils.js +1 -1
  814. package/widgets/ElevationProfile/support/profileUtils.js +1 -1
  815. package/widgets/ElevationProfile.js +1 -1
  816. package/widgets/Expand.js +1 -1
  817. package/widgets/Feature/FeatureAttachments.js +1 -1
  818. package/widgets/Feature/FeatureContent.js +1 -1
  819. package/widgets/Feature/FeatureExpression/FeatureExpressionViewModel.js +1 -1
  820. package/widgets/Feature/FeatureExpression.js +1 -1
  821. package/widgets/Feature/FeatureFields/FeatureFieldsViewModel.js +1 -1
  822. package/widgets/Feature/FeatureFields.js +1 -1
  823. package/widgets/Feature/FeatureMedia/FeatureMediaViewModel.js +1 -1
  824. package/widgets/Feature/FeatureMedia.js +1 -1
  825. package/widgets/Feature/FeatureViewModel.js +1 -1
  826. package/widgets/Feature/support/arcadeFeatureUtils.js +1 -1
  827. package/widgets/Feature/support/featureUtils.js +1 -1
  828. package/widgets/Feature/support/relatedFeatureUtils.js +1 -1
  829. package/widgets/FeatureForm/FeatureFormViewModel.js +1 -1
  830. package/widgets/FeatureForm/InputField.js +1 -1
  831. package/widgets/FeatureForm/support/formTemplateUtils.js +1 -1
  832. package/widgets/FeatureForm.js +1 -1
  833. package/widgets/FeatureTable/FeatureTableViewModel.js +1 -1
  834. package/widgets/FeatureTable/FieldColumn.js +1 -1
  835. package/widgets/FeatureTable/Grid/Column.js +1 -1
  836. package/widgets/FeatureTable/Grid/EditorColumn.js +1 -1
  837. package/widgets/FeatureTable/Grid/Grid.js +1 -1
  838. package/widgets/FeatureTable/Grid/GridViewModel.js +1 -1
  839. package/widgets/FeatureTable/Grid/support/ButtonMenu.js +1 -1
  840. package/widgets/FeatureTable/Grid/support/LocalStore.js +1 -1
  841. package/widgets/FeatureTable/support/FeatureStore.js +1 -1
  842. package/widgets/FeatureTable.js +1 -1
  843. package/widgets/FeatureTemplates/FeatureTemplatesViewModel.js +1 -1
  844. package/widgets/FeatureTemplates/ItemList.js +1 -1
  845. package/widgets/FeatureTemplates/TemplateItem.js +1 -1
  846. package/widgets/FeatureTemplates.js +1 -1
  847. package/widgets/FloorFilter/FloorFilterViewModel.js +1 -1
  848. package/widgets/FloorFilter.js +1 -1
  849. package/widgets/Fullscreen.js +1 -1
  850. package/widgets/Home.js +1 -1
  851. package/widgets/LayerList/LayerListViewModel.js +1 -1
  852. package/widgets/LayerList/support/layerListUtils.js +1 -1
  853. package/widgets/LayerList.js +1 -1
  854. package/widgets/Legend/LegendViewModel.js +1 -1
  855. package/widgets/Legend/styles/Card.js +1 -1
  856. package/widgets/Legend/styles/support/univariateUtils.js +1 -1
  857. package/widgets/Legend/support/ActiveLayerInfo.js +1 -1
  858. package/widgets/Legend/support/clusterUtils.js +1 -1
  859. package/widgets/Legend/support/sizeRampUtils.js +1 -1
  860. package/widgets/Locate/LocateViewModel.js +1 -1
  861. package/widgets/Popup/PopupViewModel.js +1 -1
  862. package/widgets/Popup/actionUtils.js +1 -1
  863. package/widgets/Popup.js +1 -1
  864. package/widgets/Print/PrintViewModel.js +1 -1
  865. package/widgets/Print.js +1 -1
  866. package/widgets/ScaleRangeSlider/ScaleRangeSliderViewModel.js +1 -1
  867. package/widgets/Search/LayerSearchSource.js +1 -1
  868. package/widgets/Search/SearchResultRenderer.js +1 -1
  869. package/widgets/Search/SearchViewModel.js +1 -1
  870. package/widgets/Search/support/geometryUtils.js +1 -1
  871. package/widgets/Search/support/layerSearchUtils.js +1 -1
  872. package/widgets/Search/support/locatorUtils.js +1 -1
  873. package/widgets/Search.js +1 -1
  874. package/widgets/ShadowCast/components/DiscreteConfigurator.js +1 -1
  875. package/widgets/ShadowCast/components/Label.js +1 -1
  876. package/widgets/ShadowCast/components/TimezonePicker.js +1 -1
  877. package/widgets/ShadowCast.js +1 -1
  878. package/widgets/Sketch/SketchViewModel.js +1 -1
  879. package/widgets/Sketch.js +1 -1
  880. package/widgets/Slider.js +1 -1
  881. package/widgets/Swipe/SwipeViewModel.js +1 -1
  882. package/widgets/TableList/TableListViewModel.js +1 -1
  883. package/widgets/TableList/support/tableListUtils.js +1 -1
  884. package/widgets/TableList.js +1 -1
  885. package/widgets/TimeSlider/TimeSliderViewModel.js +1 -1
  886. package/widgets/TimeSlider/utils.js +1 -1
  887. package/widgets/TimeSlider.js +1 -1
  888. package/widgets/UtilityNetworkTrace/UtilityNetworkTraceViewModel.js +1 -1
  889. package/widgets/Weather.js +1 -1
  890. package/widgets/Widget.js +1 -1
  891. package/widgets/smartMapping/BinaryColorSizeSlider/BinaryColorSizeSliderViewModel.js +1 -1
  892. package/widgets/smartMapping/BinaryColorSizeSlider.js +1 -1
  893. package/widgets/smartMapping/ClassedColorSlider.js +1 -1
  894. package/widgets/smartMapping/ClassedSizeSlider.js +1 -1
  895. package/widgets/smartMapping/ColorSizeSlider.js +1 -1
  896. package/widgets/smartMapping/SizeSlider/SizeSliderViewModel.js +1 -1
  897. package/widgets/smartMapping/SmartMappingSliderBase.js +1 -1
  898. package/widgets/smartMapping/SmartMappingSliderViewModel.js +1 -1
  899. package/widgets/support/AnalysisViewModel.js +1 -1
  900. package/widgets/support/ColorPicker.js +1 -1
  901. package/widgets/support/DatePicker.js +1 -1
  902. package/widgets/support/InteractiveAnalysisViewModel.js +1 -1
  903. package/widgets/support/Popover.js +1 -1
  904. package/widgets/support/SelectionToolbar/SelectionToolbarViewModel.js +1 -1
  905. package/widgets/support/SelectionToolbar.js +1 -1
  906. package/widgets/support/Selector2D/SelectionOperation2D.js +1 -1
  907. package/widgets/support/Selector2D.js +1 -1
  908. package/widgets/support/SnappingControls/SnappingControlsViewModel.js +1 -1
  909. package/widgets/support/SnappingControls.js +1 -1
  910. package/widgets/support/jsxWidgetSupport.js +1 -1
  911. package/widgets/support/widgetUtils.js +1 -1
  912. package/assets/esri/core/workers/chunks/049c5c30bd37693dddb7.js +0 -1
  913. package/assets/esri/core/workers/chunks/055a0ebf22a82f859474.js +0 -1
  914. package/assets/esri/core/workers/chunks/0b12ff7b2ed2838afbb8.js +0 -1
  915. package/assets/esri/core/workers/chunks/0e25548573baf855e394.js +0 -1
  916. package/assets/esri/core/workers/chunks/0edd4c3ca6e7d749d0e5.js +0 -1
  917. package/assets/esri/core/workers/chunks/0fcbf7e2db58e38ee6d1.js +0 -1
  918. package/assets/esri/core/workers/chunks/133f971e72a1a6277ac4.js +0 -1
  919. package/assets/esri/core/workers/chunks/135a90ae61f3b3cae91b.js +0 -1
  920. package/assets/esri/core/workers/chunks/13fde7fd56c39fa3f2d5.js +0 -1
  921. package/assets/esri/core/workers/chunks/1c90855c3b0e5dcff908.js +0 -1
  922. package/assets/esri/core/workers/chunks/1dbef1919c7ac10a6bcc.js +0 -1
  923. package/assets/esri/core/workers/chunks/1facbda248863cf72cbd.js +0 -1
  924. package/assets/esri/core/workers/chunks/1fb2d7abe6c8efa84695.js +0 -1
  925. package/assets/esri/core/workers/chunks/2068377c2a796d5f2245.js +0 -1
  926. package/assets/esri/core/workers/chunks/28a5878cbe5880476855.js +0 -1
  927. package/assets/esri/core/workers/chunks/2cf3934b3ecabdf207c8.js +0 -1
  928. package/assets/esri/core/workers/chunks/2d42711a629384144625.js +0 -1
  929. package/assets/esri/core/workers/chunks/3021fda52083fc67d18c.js +0 -1
  930. package/assets/esri/core/workers/chunks/30333a95dc0a44e23fb5.js +0 -1
  931. package/assets/esri/core/workers/chunks/30837d93116f0337972f.js +0 -1
  932. package/assets/esri/core/workers/chunks/320543485c8e22485075.js +0 -1
  933. package/assets/esri/core/workers/chunks/3f0f7da92a6e4493686e.js +0 -1
  934. package/assets/esri/core/workers/chunks/42057f252ba4e82a8b45.js +0 -1
  935. package/assets/esri/core/workers/chunks/45a3f6033cdf4bc74a4c.js +0 -1
  936. package/assets/esri/core/workers/chunks/492b65fe99641f5740f0.js +0 -1
  937. package/assets/esri/core/workers/chunks/4d1cd7df617273c489f4.js +0 -1
  938. package/assets/esri/core/workers/chunks/4df9dfa80dbbae9b743d.js +0 -1
  939. package/assets/esri/core/workers/chunks/515c1c055666ff4740f3.js +0 -1
  940. package/assets/esri/core/workers/chunks/541e644fc77dbe527124.js +0 -1
  941. package/assets/esri/core/workers/chunks/59e341b2db44351bf557.js +0 -1
  942. package/assets/esri/core/workers/chunks/5a10b58533b4116115ac.js +0 -1
  943. package/assets/esri/core/workers/chunks/5f940853341d7e2bc852.js +0 -1
  944. package/assets/esri/core/workers/chunks/5ff2cdecf95e0136dd52.js +0 -1
  945. package/assets/esri/core/workers/chunks/6147bfbe2bd7292d6ad0.js +0 -1
  946. package/assets/esri/core/workers/chunks/6467f996fe9f136c370b.js +0 -1
  947. package/assets/esri/core/workers/chunks/682a8f15f352de76df69.js +0 -1
  948. package/assets/esri/core/workers/chunks/6a06635089761ee3e6d4.js +0 -972
  949. package/assets/esri/core/workers/chunks/725828a41917d3d56f2d.js +0 -1
  950. package/assets/esri/core/workers/chunks/794b47764ebb0257ed41.js +0 -1
  951. package/assets/esri/core/workers/chunks/7fd03a75eb07a09cda35.js +0 -1
  952. package/assets/esri/core/workers/chunks/86ad6b020c01850d9095.js +0 -1
  953. package/assets/esri/core/workers/chunks/86f9d1ce36661781d962.js +0 -1
  954. package/assets/esri/core/workers/chunks/8dcf6c836b53b40dfbf1.js +0 -1
  955. package/assets/esri/core/workers/chunks/8e98ff9404a802352037.js +0 -1
  956. package/assets/esri/core/workers/chunks/94e51fe1c539df6257c2.js +0 -1
  957. package/assets/esri/core/workers/chunks/9519a02b9b8db88a3150.js +0 -1
  958. package/assets/esri/core/workers/chunks/9a8b50ed75219b4a42e1.js +0 -1
  959. package/assets/esri/core/workers/chunks/9f3a094aa4b47e4eb046.js +0 -1
  960. package/assets/esri/core/workers/chunks/a0ebf25c9c9a7f839b93.js +0 -1
  961. package/assets/esri/core/workers/chunks/a25f0a195f9217665530.js +0 -1
  962. package/assets/esri/core/workers/chunks/a2be1e0b632cef87f6a4.js +0 -1
  963. package/assets/esri/core/workers/chunks/a4d8cf9829da9cfc5f36.js +0 -1
  964. package/assets/esri/core/workers/chunks/a562059dbdd1bf1fab66.js +0 -1
  965. package/assets/esri/core/workers/chunks/a59ee7d2b98c85f27dd2.js +0 -1
  966. package/assets/esri/core/workers/chunks/a5dbab94697757c87c49.js +0 -1
  967. package/assets/esri/core/workers/chunks/a5e65d5a7a536759d1cc.js +0 -1
  968. package/assets/esri/core/workers/chunks/a8ac0b6a3eba35e3a5b6.js +0 -1
  969. package/assets/esri/core/workers/chunks/acbd0f4d72d1f5d8e4e8.js +0 -1
  970. package/assets/esri/core/workers/chunks/acc97a210f36bff2d1b0.js +0 -1
  971. package/assets/esri/core/workers/chunks/ad68fe924456d6d7d4f0.js +0 -1
  972. package/assets/esri/core/workers/chunks/b06c949fc7d08e376a5f.js +0 -1
  973. package/assets/esri/core/workers/chunks/b26bd8fde2fc65bb67fb.js +0 -1
  974. package/assets/esri/core/workers/chunks/b4405e9fe6c0cf7250d3.js +0 -1
  975. package/assets/esri/core/workers/chunks/bc08fe3b03767bd694c5.js +0 -1
  976. package/assets/esri/core/workers/chunks/c11501e96ffd81bf39a0.js +0 -1
  977. package/assets/esri/core/workers/chunks/c44116378cc1bc627044.js +0 -1
  978. package/assets/esri/core/workers/chunks/c9b09099488d0e719dfb.js +0 -1
  979. package/assets/esri/core/workers/chunks/cbea4f1eb814115748db.js +0 -1
  980. package/assets/esri/core/workers/chunks/ce262a2accd982988ef1.js +0 -1
  981. package/assets/esri/core/workers/chunks/d15e6662d90718411d62.js +0 -1
  982. package/assets/esri/core/workers/chunks/d16aac3461af9cee0c29.js +0 -1
  983. package/assets/esri/core/workers/chunks/d60dd3e1028f714f2258.js +0 -1
  984. package/assets/esri/core/workers/chunks/d6c150c243ca1f6108f9.js +0 -1
  985. package/assets/esri/core/workers/chunks/d85748b57a71999caf3a.js +0 -1
  986. package/assets/esri/core/workers/chunks/d8c59b1d73650c060dfb.js +0 -1
  987. package/assets/esri/core/workers/chunks/dcb6e1b33402d7fa455b.js +0 -1
  988. package/assets/esri/core/workers/chunks/df653bca2b14dffc82d1.js +0 -1
  989. package/assets/esri/core/workers/chunks/e2a12142439d3037a3a7.js +0 -1
  990. package/assets/esri/core/workers/chunks/e3e1d87b8532bf84a18d.js +0 -1
  991. package/assets/esri/core/workers/chunks/e7744b7e0c16bba93151.js +0 -1
  992. package/assets/esri/core/workers/chunks/ea50effc5c39870dc871.js +0 -1
  993. package/assets/esri/core/workers/chunks/f1665a64564593f2a438.js +0 -1
  994. package/assets/esri/core/workers/chunks/f4c12f3a5e7f89106ae0.js +0 -1
  995. package/assets/esri/core/workers/chunks/fbefdc74b3aab716187f.js +0 -1
  996. package/assets/esri/core/workers/chunks/fc4fd9db056579e09bfe.js +0 -1
  997. package/assets/esri/core/workers/chunks/fd4907fa96f55128764d.js +0 -1
  998. package/views/3d/webgl-engine/core/shaderModules/BooleanUniform.js +0 -5
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.24/esri/copyright.txt for details.
4
4
  */
5
- import{_ as e}from"../../../../chunks/tslib.es6.js";import t from"../../../../core/Accessor.js";import r from"../../../../core/Handles.js";import{unwrap as s,isNone as n}from"../../../../core/maybe.js";import{watch as i,sync as o,when as a,on as c,initial as u}from"../../../../core/reactiveUtils.js";import{property as h}from"../../../../core/accessorSupport/decorators/property.js";import"../../../../core/arrayUtils.js";import"../../../../core/has.js";import"../../../../core/accessorSupport/ensureType.js";import{subclass as d}from"../../../../core/accessorSupport/decorators/subclass.js";import{a as f,k as p,c as m}from"../../../../chunks/vec3.js";import{c as _}from"../../../../chunks/vec3f64.js";import{create as l}from"../../../../geometry/support/ray.js";import C from"../debugFlags.js";import{PointGraphics as y}from"../debugUtils.js";import{PropertiesPool as O}from"../PropertiesPool.js";import{fromRenderAtEye as A}from"../geometryUtils/ray.js";import{CameraOnSurface as S}from"./CameraOnSurface.js";import{CenterOnSurface as w}from"./CenterOnSurface.js";import{ContentGeometryUpdates as g}from"./ContentGeometryUpdates.js";import{Focus as I}from"./Focus.js";import{StableSurfaceCenter as v}from"./StableSurfaceCenter.js";import{SurfaceGeometryUpdates as b}from"./SurfaceGeometryUpdates.js";import{newIntersector as T}from"../../webgl-engine/lib/Intersector.js";import{StoreResults as R}from"../../webgl-engine/lib/IntersectorInterfaces.js";import{TERRAIN_ID as P}from"../../webgl-engine/lib/verticalOffsetUtils.js";import{TaskPriority as j}from"../../../support/Scheduler.js";let E=class extends t{constructor(e){super(e),this._handles=new r,this._tmpRay=l(),this._centerRayDirty=!0,this._surfaceAltitudeAtCenter=0,this._surfaceAltitudeAtCenterDirty=!0,this._contentAltitudeAtCenter=0,this._contentAltitudeAtCenterDirty=!0,this._propertiesPool=new O({renderPointOfView:N},this),this.renderPointOfView=_(),this._pois=new Array,this._debugCenters=new Map}initialize(){var e;const{state:t,basemapTerrain:r,renderCoordsHelper:n,map:h}=this.view;this._surfaceIntersector=T(t.viewingMode),t.isGlobal?this._surfaceIntersector.options.backfacesTerrain=!1:this._surfaceIntersector.options.backfacesTerrain=!0,this._surfaceIntersector.options.invisibleTerrain=!1,this._surfaceIntersector.options.store=R.MIN,this._contentIntersector=T(t.viewingMode);const d=()=>this._estimateSurfaceAltitudeAtCenter(),f=this.view.resourceController.scheduler,p=s(null==(e=this.view.basemapTerrain)?void 0:e.elevationQueryCache),m={state:t,scheduler:f,surface:r,renderCoordsHelper:n};this._set("centerOnSurfaceInfrequent",new w({...m,task:j.POINT_OF_INTEREST_INFREQUENT,estimateSurfaceAltitudeAtCenter:d})),this._set("centerOnSurfaceFrequent",new w({...m,task:j.POINT_OF_INTEREST_FREQUENT,estimateSurfaceAltitudeAtCenter:d})),this._set("contentCenterOnSurface",new w({...m,task:j.POINT_OF_INTEREST_INFREQUENT,estimateSurfaceAltitudeAtCenter:d,cameraName:"contentCamera"})),this._set("centerOnContent",new w({...m,task:j.POINT_OF_INTEREST_FREQUENT,estimateSurfaceAltitudeAtCenter:()=>this._estimateContentAltitudeAtCenter()})),this._set("cameraOnSurface",new S({...m,cache:p,task:j.POINT_OF_INTEREST_INFREQUENT,map:h})),this._set("contentCameraOnSurface",new S({...m,cache:p,task:j.POINT_OF_INTEREST_INFREQUENT,map:h,cameraName:"contentCamera"})),this._set("surfaceGeometryUpdates",new b({...m,centerOnSurfaces:[this.centerOnSurfaceFrequent,this.centerOnContent,this.centerOnSurfaceInfrequent]})),this._set("contentGeometryUpdates",new g({contentLayerViews:this.view.allLayerViews,renderCoordsHelper:n})),this._set("surfaceOrigin",new v({cache:p,view:this.view})),this._set("focus",new I({state:t,scheduler:f,surface:r,renderCoordsHelper:n,centerOnSurface:this.contentCenterOnSurface,estimateSurfaceIntersectionAtRenderPoint:(e,t)=>this._estimateSurfaceIntersectionAtRenderPoint(e,this.view.state.contentCamera,t)})),this._pois.push(this.centerOnContent,this.centerOnSurfaceFrequent,this.centerOnSurfaceInfrequent,this.contentCenterOnSurface,this.cameraOnSurface,this.contentCameraOnSurface,this.focus);const _=this.view.graphics;this._debugCenters.set(this.centerOnContent,new y(_,"red","CenterOnContent")),this._debugCenters.set(this.centerOnSurfaceFrequent,new y(_,"red","CenterOnSurface")),this._debugCenters.set(this.centerOnSurfaceInfrequent,new y(_,"red","CenterOnSurface")),this._debugCenters.set(this.contentCenterOnSurface,new y(_,"red","ContentCenterOnSurface")),this._debugCenters.set(this.cameraOnSurface,new y(_,"blue","CameraOnSurface")),this._debugCenters.set(this.contentCameraOnSurface,new y(_,"blue","ContentCameraOnSurface")),this._debugCenters.set(this.focus,new y(_,"green","Focus")),this._handles.add([i((()=>t.camera),(e=>this._cameraChanged(e)),o),i((()=>r.extent),(()=>this._updateCenterPointsOfInterest())),a((()=>!r.updating),(()=>this._updateCenterPointsOfInterest()),o),c((()=>this.surfaceGeometryUpdates.events),"request-update",(()=>this._updateCenterPointsOfInterest())),c((()=>this.contentGeometryUpdates.events),"request-update",(()=>this._updateCenterOnContent())),a((()=>C.SHOW_POI),(e=>this._setDebug(e)),u)]),this._cameraChanged(this.view.state.camera);for(const s of this._pois)s.runTask()}destroy(){this._setDebug(!1),this._handles.destroy(),this._propertiesPool.destroy();for(const e of this._pois)e.destroy();this.surfaceOrigin.destroy()}get updating(){var e;return!!(null!=(e=this.surfaceGeometryUpdates)&&e.updating||this._pois.some((e=>e.updating)))}get centerRay(){return this._centerRayDirty&&(this._centerRay=this.view.sceneIntersectionHelper.getCenterRayWithSubpixelOffset(this.view.state.camera,this._tmpRay),this._centerRayDirty=!1),this._centerRay}_estimateContentAltitudeAtCenter(){if(!this._contentAltitudeAtCenterDirty)return this._contentAltitudeAtCenter;this._contentAltitudeAtCenterDirty=!1;const e=this.centerRay;return n(e)||(this.view.sceneIntersectionHelper.intersectRay(e,this._contentIntersector,U,D)?this._contentAltitudeAtCenter=this.view.renderCoordsHelper.getAltitude(U):this._contentAltitudeAtCenter=this._estimateSurfaceAltitudeAtCenter()),this._contentAltitudeAtCenter}_estimateSurfaceAltitudeAtCenter(){if(!this.view.basemapTerrain)return 0;if(!this._surfaceAltitudeAtCenterDirty)return this._surfaceAltitudeAtCenter;this._surfaceAltitudeAtCenterDirty=!1;const e=this.centerRay;if(n(e))return this._surfaceAltitudeAtCenter;const t=e.origin,r=f(U,e.origin,e.direction);return this._surfaceIntersector.resetWithRay(e,this.view.state.camera),this.view.basemapTerrain.intersect(this._surfaceIntersector,null,t,r),this._surfaceIntersector.results.min.getIntersectionPoint(U)&&(this._surfaceAltitudeAtCenter=this.view.renderCoordsHelper.getAltitude(U)),this._surfaceAltitudeAtCenter}_estimateSurfaceIntersectionAtRenderPoint(e,t,r){const s=A(t,e,F);if(n(s))return null;const i=s.origin,o=f(U,s.origin,s.direction);return this._surfaceIntersector.resetWithRay(s,t),this.view.basemapTerrain.intersect(this._surfaceIntersector,null,i,o),this._surfaceIntersector.results.min.getIntersectionPoint(r)?r:null}_cameraChanged(e){this._updateCenterPointsOfInterest();const t=e.eye;p(this.renderPointOfView,t)||this._set("renderPointOfView",m(this._propertiesPool.get("renderPointOfView"),t))}_updateCenterPointsOfInterest(){this._centerRayDirty=!0,this._surfaceAltitudeAtCenterDirty=!0,this._contentAltitudeAtCenterDirty=!0;for(const e of this._pois)e.updateRenderLocation()}_updateCenterOnContent(){this._contentAltitudeAtCenterDirty=!0,this.centerOnContent.updateRenderLocation()}_setDebug(e){if(!e)return this._debugCenters.forEach((e=>e.hide())),void this._handles.remove("debug");for(const t of this._pois)this._handles.add(i((()=>t.renderLocation),(e=>this._debugCenters.get(t).show(e,t.renderCoordsHelper.spatialReference)),u),"debug")}get test(){return{update:()=>{this.surfaceGeometryUpdates.runTask();for(const e of this._pois)e.runTask()},surfaceGeometryUpdates:this.surfaceGeometryUpdates}}};e([h({readOnly:!0})],E.prototype,"centerOnContent",void 0),e([h({readOnly:!0})],E.prototype,"centerOnSurfaceFrequent",void 0),e([h({readOnly:!0})],E.prototype,"centerOnSurfaceInfrequent",void 0),e([h({readOnly:!0})],E.prototype,"contentCenterOnSurface",void 0),e([h({readOnly:!0})],E.prototype,"cameraOnSurface",void 0),e([h({readOnly:!0})],E.prototype,"contentCameraOnSurface",void 0),e([h({readOnly:!0})],E.prototype,"focus",void 0),e([h({readOnly:!0})],E.prototype,"renderPointOfView",void 0),e([h({readOnly:!0})],E.prototype,"surfaceOrigin",void 0),e([h({readOnly:!0})],E.prototype,"contentGeometryUpdates",void 0),e([h({readOnly:!0})],E.prototype,"surfaceGeometryUpdates",void 0),e([h({constructOnly:!0})],E.prototype,"view",void 0),e([h({readOnly:!0})],E.prototype,"updating",null),E=e([d("esri.views.3d.support.PointsOfInterest")],E);const N=Array,U=_(),F=l(),D={exclude:new Set([P])};export{E as PointsOfInterest};
5
+ import{_ as e}from"../../../../chunks/tslib.es6.js";import t from"../../../../core/Accessor.js";import r from"../../../../core/Handles.js";import{unwrap as s,isNone as n}from"../../../../core/maybe.js";import{watch as i,sync as o,when as a,on as c,initial as u}from"../../../../core/reactiveUtils.js";import{property as h}from"../../../../core/accessorSupport/decorators/property.js";import"../../../../core/arrayUtils.js";import"../../../../core/has.js";import"../../../../core/accessorSupport/ensureType.js";import{subclass as d}from"../../../../core/accessorSupport/decorators/subclass.js";import{a as f,k as p,c as m}from"../../../../chunks/vec3.js";import{c as _}from"../../../../chunks/vec3f64.js";import{create as l}from"../../../../geometry/support/ray.js";import C from"../debugFlags.js";import{PointGraphics as y}from"../debugUtils.js";import{PropertiesPool as O}from"../PropertiesPool.js";import{fromRenderAtEye as A}from"../geometryUtils/ray.js";import{CameraOnSurface as S}from"./CameraOnSurface.js";import{CenterOnSurface as w}from"./CenterOnSurface.js";import{ContentGeometryUpdates as g}from"./ContentGeometryUpdates.js";import{Focus as I}from"./Focus.js";import{StableSurfaceCenter as v}from"./StableSurfaceCenter.js";import{SurfaceGeometryUpdates as b}from"./SurfaceGeometryUpdates.js";import{newIntersector as T}from"../../webgl-engine/lib/Intersector.js";import{StoreResults as R}from"../../webgl-engine/lib/IntersectorInterfaces.js";import{TERRAIN_ID as P}from"../../webgl-engine/lib/verticalOffsetUtils.js";import{TaskPriority as j}from"../../../support/Scheduler.js";let E=class extends t{constructor(e){super(e),this._handles=new r,this._tmpRay=l(),this._centerRayDirty=!0,this._surfaceAltitudeAtCenter=0,this._surfaceAltitudeAtCenterDirty=!0,this._contentAltitudeAtCenter=0,this._contentAltitudeAtCenterDirty=!0,this._propertiesPool=new O({renderPointOfView:N},this),this.renderPointOfView=_(),this._pois=new Array,this._debugCenters=new Map}initialize(){const{state:e,basemapTerrain:t,renderCoordsHelper:r,map:n}=this.view;this._surfaceIntersector=T(e.viewingMode),e.isGlobal?this._surfaceIntersector.options.backfacesTerrain=!1:this._surfaceIntersector.options.backfacesTerrain=!0,this._surfaceIntersector.options.invisibleTerrain=!1,this._surfaceIntersector.options.store=R.MIN,this._contentIntersector=T(e.viewingMode);const h=()=>this._estimateSurfaceAltitudeAtCenter(),d=this.view.resourceController.scheduler,f=s(this.view.basemapTerrain?.elevationQueryCache),p={state:e,scheduler:d,surface:t,renderCoordsHelper:r};this._set("centerOnSurfaceInfrequent",new w({...p,task:j.POINT_OF_INTEREST_INFREQUENT,estimateSurfaceAltitudeAtCenter:h})),this._set("centerOnSurfaceFrequent",new w({...p,task:j.POINT_OF_INTEREST_FREQUENT,estimateSurfaceAltitudeAtCenter:h})),this._set("contentCenterOnSurface",new w({...p,task:j.POINT_OF_INTEREST_INFREQUENT,estimateSurfaceAltitudeAtCenter:h,cameraName:"contentCamera"})),this._set("centerOnContent",new w({...p,task:j.POINT_OF_INTEREST_FREQUENT,estimateSurfaceAltitudeAtCenter:()=>this._estimateContentAltitudeAtCenter()})),this._set("cameraOnSurface",new S({...p,cache:f,task:j.POINT_OF_INTEREST_INFREQUENT,map:n})),this._set("contentCameraOnSurface",new S({...p,cache:f,task:j.POINT_OF_INTEREST_INFREQUENT,map:n,cameraName:"contentCamera"})),this._set("surfaceGeometryUpdates",new b({...p,centerOnSurfaces:[this.centerOnSurfaceFrequent,this.centerOnContent,this.centerOnSurfaceInfrequent]})),this._set("contentGeometryUpdates",new g({contentLayerViews:this.view.allLayerViews,renderCoordsHelper:r})),this._set("surfaceOrigin",new v({cache:f,view:this.view})),this._set("focus",new I({state:e,scheduler:d,surface:t,renderCoordsHelper:r,centerOnSurface:this.contentCenterOnSurface,estimateSurfaceIntersectionAtRenderPoint:(e,t)=>this._estimateSurfaceIntersectionAtRenderPoint(e,this.view.state.contentCamera,t)})),this._pois.push(this.centerOnContent,this.centerOnSurfaceFrequent,this.centerOnSurfaceInfrequent,this.contentCenterOnSurface,this.cameraOnSurface,this.contentCameraOnSurface,this.focus);const m=this.view.graphics;this._debugCenters.set(this.centerOnContent,new y(m,"red","CenterOnContent")),this._debugCenters.set(this.centerOnSurfaceFrequent,new y(m,"red","CenterOnSurface")),this._debugCenters.set(this.centerOnSurfaceInfrequent,new y(m,"red","CenterOnSurface")),this._debugCenters.set(this.contentCenterOnSurface,new y(m,"red","ContentCenterOnSurface")),this._debugCenters.set(this.cameraOnSurface,new y(m,"blue","CameraOnSurface")),this._debugCenters.set(this.contentCameraOnSurface,new y(m,"blue","ContentCameraOnSurface")),this._debugCenters.set(this.focus,new y(m,"green","Focus")),this._handles.add([i((()=>e.camera),(e=>this._cameraChanged(e)),o),i((()=>t.extent),(()=>this._updateCenterPointsOfInterest())),a((()=>!t.updating),(()=>this._updateCenterPointsOfInterest()),o),c((()=>this.surfaceGeometryUpdates.events),"request-update",(()=>this._updateCenterPointsOfInterest())),c((()=>this.contentGeometryUpdates.events),"request-update",(()=>this._updateCenterOnContent())),a((()=>C.SHOW_POI),(e=>this._setDebug(e)),u)]),this._cameraChanged(this.view.state.camera);for(const s of this._pois)s.runTask()}destroy(){this._setDebug(!1),this._handles.destroy(),this._propertiesPool.destroy();for(const e of this._pois)e.destroy();this.surfaceOrigin.destroy()}get updating(){return!(!this.surfaceGeometryUpdates?.updating&&!this._pois.some((e=>e.updating)))}get centerRay(){return this._centerRayDirty&&(this._centerRay=this.view.sceneIntersectionHelper.getCenterRayWithSubpixelOffset(this.view.state.camera,this._tmpRay),this._centerRayDirty=!1),this._centerRay}_estimateContentAltitudeAtCenter(){if(!this._contentAltitudeAtCenterDirty)return this._contentAltitudeAtCenter;this._contentAltitudeAtCenterDirty=!1;const e=this.centerRay;return n(e)||(this.view.sceneIntersectionHelper.intersectRay(e,this._contentIntersector,U,D)?this._contentAltitudeAtCenter=this.view.renderCoordsHelper.getAltitude(U):this._contentAltitudeAtCenter=this._estimateSurfaceAltitudeAtCenter()),this._contentAltitudeAtCenter}_estimateSurfaceAltitudeAtCenter(){if(!this.view.basemapTerrain)return 0;if(!this._surfaceAltitudeAtCenterDirty)return this._surfaceAltitudeAtCenter;this._surfaceAltitudeAtCenterDirty=!1;const e=this.centerRay;if(n(e))return this._surfaceAltitudeAtCenter;const t=e.origin,r=f(U,e.origin,e.direction);return this._surfaceIntersector.resetWithRay(e,this.view.state.camera),this.view.basemapTerrain.intersect(this._surfaceIntersector,null,t,r),this._surfaceIntersector.results.min.getIntersectionPoint(U)&&(this._surfaceAltitudeAtCenter=this.view.renderCoordsHelper.getAltitude(U)),this._surfaceAltitudeAtCenter}_estimateSurfaceIntersectionAtRenderPoint(e,t,r){const s=A(t,e,F);if(n(s))return null;const i=s.origin,o=f(U,s.origin,s.direction);return this._surfaceIntersector.resetWithRay(s,t),this.view.basemapTerrain.intersect(this._surfaceIntersector,null,i,o),this._surfaceIntersector.results.min.getIntersectionPoint(r)?r:null}_cameraChanged(e){this._updateCenterPointsOfInterest();const t=e.eye;p(this.renderPointOfView,t)||this._set("renderPointOfView",m(this._propertiesPool.get("renderPointOfView"),t))}_updateCenterPointsOfInterest(){this._centerRayDirty=!0,this._surfaceAltitudeAtCenterDirty=!0,this._contentAltitudeAtCenterDirty=!0;for(const e of this._pois)e.updateRenderLocation()}_updateCenterOnContent(){this._contentAltitudeAtCenterDirty=!0,this.centerOnContent.updateRenderLocation()}_setDebug(e){if(!e)return this._debugCenters.forEach((e=>e.hide())),void this._handles.remove("debug");for(const t of this._pois)this._handles.add(i((()=>t.renderLocation),(e=>this._debugCenters.get(t).show(e,t.renderCoordsHelper.spatialReference)),u),"debug")}get test(){return{update:()=>{this.surfaceGeometryUpdates.runTask();for(const e of this._pois)e.runTask()},surfaceGeometryUpdates:this.surfaceGeometryUpdates}}};e([h({readOnly:!0})],E.prototype,"centerOnContent",void 0),e([h({readOnly:!0})],E.prototype,"centerOnSurfaceFrequent",void 0),e([h({readOnly:!0})],E.prototype,"centerOnSurfaceInfrequent",void 0),e([h({readOnly:!0})],E.prototype,"contentCenterOnSurface",void 0),e([h({readOnly:!0})],E.prototype,"cameraOnSurface",void 0),e([h({readOnly:!0})],E.prototype,"contentCameraOnSurface",void 0),e([h({readOnly:!0})],E.prototype,"focus",void 0),e([h({readOnly:!0})],E.prototype,"renderPointOfView",void 0),e([h({readOnly:!0})],E.prototype,"surfaceOrigin",void 0),e([h({readOnly:!0})],E.prototype,"contentGeometryUpdates",void 0),e([h({readOnly:!0})],E.prototype,"surfaceGeometryUpdates",void 0),e([h({constructOnly:!0})],E.prototype,"view",void 0),e([h({readOnly:!0})],E.prototype,"updating",null),E=e([d("esri.views.3d.support.PointsOfInterest")],E);const N=Array,U=_(),F=l(),D={exclude:new Set([P])};export{E as PointsOfInterest};
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.24/esri/copyright.txt for details.
4
4
  */
5
- import{_ as e}from"../../../../chunks/tslib.es6.js";import t from"../../../../core/Accessor.js";import r from"../../../../core/Handles.js";import{isNone as o}from"../../../../core/maybe.js";import{isAbortError as s}from"../../../../core/promiseUtils.js";import{watch as i,on as a}from"../../../../core/reactiveUtils.js";import{property as n}from"../../../../core/accessorSupport/decorators/property.js";import"../../../../core/arrayUtils.js";import"../../../../core/has.js";import"../../../../core/accessorSupport/ensureType.js";import{subclass as l}from"../../../../core/accessorSupport/decorators/subclass.js";import{c}from"../../../../chunks/vec3f64.js";import u from"../../../../geometry/Point.js";import{center as p}from"../../../../geometry/support/aaBoundingRect.js";let d=class extends t{constructor(e){super(e),this.location=null,this._updateController=null,this._handles=new r}get renderLocation(){if(!this.location)return null;const e=c();return this.view.renderCoordsHelper.toRenderCoords(this.location,e),e}initialize(){this.view.state.isLocal&&(this._handles.add([i((()=>{var e,t;return[null==(e=this.surfaceView)?void 0:e.spatialReference,null==(t=this.surfaceView)?void 0:t.extent]}),(()=>this._update())),a((()=>{var e;return null==(e=this.surface)?void 0:e.layers}),"change",(()=>this._update()))]),this._update())}destroy(){this._handles.destroy()}_update(){if(this._updateController&&(this._updateController.abort(),this._updateController=null),!this.surfaceView||o(this.surfaceView.extent)||!this.surfaceView.spatialReference)return void this._set("location",null);const e=p(this.surfaceView.extent),t=new u({x:e[0],y:e[1],z:0,spatialReference:this.surfaceView.spatialReference});this.surface&&this.surface.layers.length>0?(this._set("location",null),this._updateController=new AbortController,this.surface.queryElevation(t,{noDataValue:0,signal:this._updateController.signal,cache:this.cache}).then((e=>{this._updateController=null,this._set("location",e.geometry)})).catch((e=>{s(e)||e&&"elevation-query:invalid-layer"===e.name||console.error("StableSurfaceCenter failed to update: ",e)}))):this._set("location",t)}};e([n({constructOnly:!0})],d.prototype,"view",void 0),e([n({constructOnly:!0})],d.prototype,"cache",void 0),e([n({readOnly:!0,aliasOf:"view.map.ground"})],d.prototype,"surface",void 0),e([n({readOnly:!0,aliasOf:"view.basemapTerrain"})],d.prototype,"surfaceView",void 0),e([n({readOnly:!0})],d.prototype,"location",void 0),e([n({readOnly:!0})],d.prototype,"renderLocation",null),d=e([l("esri.views.3d.terrain.StableSurfaceCenter")],d);export{d as StableSurfaceCenter};
5
+ import{_ as e}from"../../../../chunks/tslib.es6.js";import t from"../../../../core/Accessor.js";import r from"../../../../core/Handles.js";import{isNone as o}from"../../../../core/maybe.js";import{isAbortError as s}from"../../../../core/promiseUtils.js";import{watch as i,on as a}from"../../../../core/reactiveUtils.js";import{property as n}from"../../../../core/accessorSupport/decorators/property.js";import"../../../../core/arrayUtils.js";import"../../../../core/has.js";import"../../../../core/accessorSupport/ensureType.js";import{subclass as l}from"../../../../core/accessorSupport/decorators/subclass.js";import{c}from"../../../../chunks/vec3f64.js";import p from"../../../../geometry/Point.js";import{center as u}from"../../../../geometry/support/aaBoundingRect.js";let h=class extends t{constructor(e){super(e),this.location=null,this._updateController=null,this._handles=new r}get renderLocation(){if(!this.location)return null;const e=c();return this.view.renderCoordsHelper.toRenderCoords(this.location,e),e}initialize(){this.view.state.isLocal&&(this._handles.add([i((()=>[this.surfaceView?.spatialReference,this.surfaceView?.extent]),(()=>this._update())),a((()=>this.surface?.layers),"change",(()=>this._update()))]),this._update())}destroy(){this._handles.destroy()}_update(){if(this._updateController&&(this._updateController.abort(),this._updateController=null),!this.surfaceView||o(this.surfaceView.extent)||!this.surfaceView.spatialReference)return void this._set("location",null);const e=u(this.surfaceView.extent),t=new p({x:e[0],y:e[1],z:0,spatialReference:this.surfaceView.spatialReference});this.surface&&this.surface.layers.length>0?(this._set("location",null),this._updateController=new AbortController,this.surface.queryElevation(t,{noDataValue:0,signal:this._updateController.signal,cache:this.cache}).then((e=>{this._updateController=null,this._set("location",e.geometry)})).catch((e=>{s(e)||e&&"elevation-query:invalid-layer"===e.name||console.error("StableSurfaceCenter failed to update: ",e)}))):this._set("location",t)}};e([n({constructOnly:!0})],h.prototype,"view",void 0),e([n({constructOnly:!0})],h.prototype,"cache",void 0),e([n({readOnly:!0,aliasOf:"view.map.ground"})],h.prototype,"surface",void 0),e([n({readOnly:!0,aliasOf:"view.basemapTerrain"})],h.prototype,"surfaceView",void 0),e([n({readOnly:!0})],h.prototype,"location",void 0),e([n({readOnly:!0})],h.prototype,"renderLocation",null),h=e([l("esri.views.3d.terrain.StableSurfaceCenter")],h);export{h as StableSurfaceCenter};
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.24/esri/copyright.txt for details.
4
4
  */
5
- import{disposeMaybe as e}from"../../../core/maybe.js";import{c as r}from"../../../chunks/vec2f32.js";import{TargetType as t,DepthStencilTargetType as i,TextureType as s,PixelFormat as o,PixelType as a,TextureWrapMode as h,TextureSamplingMode as p}from"../../webgl/enums.js";import{FramebufferObject as l}from"../../webgl/FramebufferObject.js";class f{constructor(e,f){this.size=r(),this._fbo=null,this._fbo=new l(e,{colorTarget:t.TEXTURE,depthStencilTarget:i.NONE},{target:s.TEXTURE_2D,pixelFormat:o.RGBA,dataType:a.UNSIGNED_BYTE,wrapMode:h.CLAMP_TO_EDGE,samplingMode:p.LINEAR_MIPMAP_LINEAR,hasMipmap:f,maxAnisotropy:8,width:0,height:0})}dispose(){this._fbo=e(this._fbo)}getTexture(){return this._fbo?this._fbo.colorTexture:null}isValid(){return null!==this._fbo}resize(e,r){this.size[0]=e,this.size[1]=r,this._fbo.resize(this.size[0],this.size[1])}bind(e){e.bindFramebuffer(this._fbo)}generateMipMap(){this._fbo.colorTexture.descriptor.hasMipmap&&this._fbo.colorTexture.generateMipmap()}disposeRenderTargetMemory(){var e;null==(e=this._fbo)||e.resize(0,0)}get gpuMemoryUsage(){var e,r;return null!=(e=null==(r=this._fbo)?void 0:r.gpuMemoryUsage)?e:0}}export{f as OverlayFramebufferObject};
5
+ import{disposeMaybe as e}from"../../../core/maybe.js";import{c as t}from"../../../chunks/vec2f32.js";import{TargetType as r,DepthStencilTargetType as s,TextureType as i,PixelFormat as o,PixelType as a,TextureWrapMode as h,TextureSamplingMode as p}from"../../webgl/enums.js";import{FramebufferObject as f}from"../../webgl/FramebufferObject.js";class b{constructor(e,b){this.size=t(),this._fbo=null,this._fbo=new f(e,{colorTarget:r.TEXTURE,depthStencilTarget:s.NONE},{target:i.TEXTURE_2D,pixelFormat:o.RGBA,dataType:a.UNSIGNED_BYTE,wrapMode:h.CLAMP_TO_EDGE,samplingMode:p.LINEAR_MIPMAP_LINEAR,hasMipmap:b,maxAnisotropy:8,width:0,height:0})}dispose(){this._fbo=e(this._fbo)}getTexture(){return this._fbo?this._fbo.colorTexture:null}isValid(){return null!==this._fbo}resize(e,t){this.size[0]=e,this.size[1]=t,this._fbo.resize(this.size[0],this.size[1])}bind(e){e.bindFramebuffer(this._fbo)}generateMipMap(){this._fbo.colorTexture.descriptor.hasMipmap&&this._fbo.colorTexture.generateMipmap()}disposeRenderTargetMemory(){this._fbo?.resize(0,0)}get gpuMemoryUsage(){return this._fbo?.gpuMemoryUsage??0}}export{b as OverlayFramebufferObject};
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.24/esri/copyright.txt for details.
4
4
  */
5
- import{_ as e}from"../../../chunks/tslib.es6.js";import t from"../../../core/Accessor.js";import{Cyclical as r,cyclicalPI as s}from"../../../core/Cyclical.js";import i from"../../../core/Handles.js";import a from"../../../core/has.js";import{clamp as n,deg2rad as o}from"../../../core/mathUtils.js";import{isSome as l,isNone as h,unwrap as c}from"../../../core/maybe.js";import{watch as d,sync as u}from"../../../core/reactiveUtils.js";import{addFrameTask as p}from"../../../core/scheduling.js";import{Milliseconds as _}from"../../../core/time.js";import{property as m}from"../../../core/accessorSupport/decorators/property.js";import"../../../core/arrayUtils.js";import"../../../core/accessorSupport/ensureType.js";import{subclass as y}from"../../../core/accessorSupport/decorators/subclass.js";import{h as g}from"../../../chunks/vec2.js";import{a as f,b as v,x as R,c as T,i as O}from"../../../chunks/vec3.js";import{c as w}from"../../../chunks/vec3f64.js";import{t as D,b as x,a as S}from"../../../chunks/vec4.js";import{c as E,f as P}from"../../../chunks/vec4f64.js";import{projectVectorToVector as U}from"../../../geometry/projection.js";import{getReferenceEllipsoid as M}from"../../../geometry/projectionEllipsoid.js";import{create as C,width as j,copy as I,center as N,intersection as b,height as A,contains as G,intersects as H,offset as L}from"../../../geometry/support/aaBoundingRect.js";import{create as k,wrap as V}from"../../../geometry/support/ray.js";import{j as B,k as F,t as q}from"../../../chunks/sphere.js";import{angleAroundAxis as W}from"../../../geometry/support/vector.js";import{y2lat as z}from"../../../geometry/support/webMercatorUtils.js";import{viewAngle as Y}from"../state/utils/viewUtils.js";import X from"../support/debugFlags.js";import{PointGraphics as K}from"../support/debugUtils.js";import{OverlayIndex as Z}from"./interfaces.js";import{computeOverlayResolution as J}from"./Overlay.js";import{OverlayRenderer as Q}from"./OverlayRenderer.js";import{RenderRequestType as $,ValidationState as ee}from"../webgl-engine/lib/basicInterfaces.js";import{newIntersector as te}from"../webgl-engine/lib/Intersector.js";import{fromValues as re}from"../webgl-engine/lib/LocalOriginFactory.js";import{SortedRenderGeometryRenderer as se}from"../webgl-engine/lib/SortedRenderGeometryRenderer.js";import{removeLoadedShaderModules as ie}from"../webgl-engine/parts/requireUtils.js";import{TaskPriority as ae}from"../../support/Scheduler.js";const ne=[[-.1,-2,3.9,2],[-.1,-3.9,3.9,.1],[-2,-3.9,2,.1],[-3.9,-3.9,.1,.1],[-3.9,-2,.1,2],[-3.9,-.1,.1,3.9],[-2,-.1,2,3.9],[-.1,-.1,3.9,3.9]];let oe,le=class extends t{constructor(e){super(e),this._handles=new i,this._spatialReference=null,this._renderSR=null,this._overlaySREqualsRenderSR=!0,this._drapeSources=new Set,this._drapeTargets=new Set,this._placementDirty=!1,this._contentUpdated=!1,this._drawTexturesDirty=!1,this._drawTexturesAnimateDirty=!1,this._hasUnusedRenderTargets=!1,this._longitudeCyclical=null,this._latestOriginId=0,this._maxResolution=a("esri-mobile")?2048:4096,this._animationTimeLast=0}get running(){return this._placementDirty&&(this._drapeSources.size>0||this.view.graphics.length>0||X.OVERLAY_DRAW_DEBUG_TEXTURE)&&!!this._spatialReference&&!this.suspended&&this.surface.ready}get _isSpherical(){return this.view.state.isGlobal}get _worldToPCSRatio(){return l(this._spatialReference)&&this._spatialReference.isGeographic&&!this.view.state.isLocal?M(this._spatialReference).metersPerDegree:1}get view(){return this.surface.view}get updating(){return this.running||this.renderer.updating||this._contentUpdated}get hasHighlights(){return this.renderer.hasHighlights}get rendersOccluded(){return this.renderer.rendersOccluded}initialize(){const e=this.view;this.renderer=new Q({view:e,worldToPCSRatio:this._worldToPCSRatio,spatialReference:this._spatialReference}),this._groundIntersector=te(this.view.state.viewingMode),this._groundIntersector.options.backfacesTerrain=!0,this._groundIntersector.options.invisibleTerrain=!0,this._groundIntersector.options.hud=!1,this._handles.add([this.renderer.events.on("has-highlights",(()=>{this._setDrawTexturesDirty(),this.notifyChange("hasHighlights")})),this.renderer.events.on("has-water",(t=>{var r;return null==(r=e._stage)?void 0:r.renderView.setRenderParameters({hasOverlayWater:t})})),this.renderer.events.on("renders-occluded",(()=>{this._setDrawTexturesDirty(),this.notifyChange("rendersOccluded")})),this.renderer.events.on("content-changed",(()=>this._setDrawTexturesDirty())),this.renderer.events.on("textures-disposed",(()=>this.updateOverlayResult())),d((()=>{var t,r,s;return[null==(t=e.pointsOfInterest)?void 0:t.renderPointOfView,null==(r=e.pointsOfInterest)||null==(s=r.centerOnSurfaceFrequent)?void 0:s.location]}),(()=>this.setPlacementDirty())),d((()=>{var t;return null==(t=e.state)?void 0:t.pixelRatio}),(()=>this.setPlacementDirty()),u),this.surface.on("elevation-change",(()=>this.setPlacementDirty())),e.on("resize",(()=>this.setPlacementDirty())),p({preRender:e=>{this._contentUpdated=!1,this.renderer.processSyncDrapeSources(),this.renderer.hasOverlays&&(this._dispatchAnimationUpdate(e),this._drawOverlayTextures(this.renderer.overlays,$.UPDATE)),this._hasUnusedRenderTargets&&this._collectUnusedRenderTargetMemory()}}),e.resourceController.scheduler.registerTask(ae.OVERLAY,this),e._stage.renderView.events.on("force-camera-for-screenshot",(e=>{this._updateOverlays(e,$.BACKGROUND),this.renderer.hasOverlays&&this._drawOverlayTextures(this.renderer.overlays,$.BACKGROUND,e)}))])}destroy(){this.renderer.dispose(),this._handles&&(this._handles.destroy(),this._handles=null),l(oe)&&(oe.hide(),oe=null)}get hasOverlays(){return this.renderer.hasOverlays}setSpatialReference(e){this._spatialReference=e,this.renderer.spatialReference=e,this._longitudeCyclical=null;const t=this.view.renderSpatialReference;l(e)&&l(t)?(this._renderSR=t,this._overlaySREqualsRenderSR=e.equals(this._renderSR),this._isSpherical&&(this._longitudeCyclical=e.isWebMercator?new r(-20037508.342787,20037508.342787):new r(-180,180),this.renderer.longitudeCyclical=this._longitudeCyclical),this.renderer&&(this.renderer.worldToPCSRatio=this._worldToPCSRatio)):this.renderer.disposeOverlays()}get gpuMemoryUsage(){return this.renderer.gpuMemoryUsage}registerDrapeSource(e,t,r){this._drapeSources.add(e),this.renderer.ensureOverlays(this._drapeTargets,this._drapeSources);const s=this.renderer.createDrapeSourceRenderer(e,t,r);return this._updateDrapeSourceExtent(e),this._setContentDirty(),this.notifyChange("running"),s}registerGeometryDrapeSource(e){return this.registerDrapeSource(e,se)}_updateDrapeSourceExtent(e){2===this.renderer.overlays.length&&l(e.setDrapingExtent)&&l(this._spatialReference)&&e.setDrapingExtent(this.renderer.overlays,this._spatialReference)}unregisterDrapeSource(e){this._drapeSources.has(e)&&(this._drapeSources.delete(e),this.renderer.removeDrapeSourceRenderer(e),this.renderer.ensureDrapeSources(this._drapeSources),this._setContentDirty(),this.notifyChange("running"))}registerDrapeTarget(e){this._drapeTargets.add(e),this.renderer.ensureOverlays(this._drapeTargets,this._drapeSources)}updateOverlayResult(){var e;null==(e=this.view._stage)||e.renderView.setRenderParameters({overlays:this.renderer.overlays})}unregisterDrapeTarget(e){this._drapeTargets.delete(e),this.renderer.ensureDrapeTargets(this._drapeTargets)}_setContentDirty(){this.setPlacementDirty(),this._setDrawTexturesDirty()}setPlacementDirty(){this._placementDirty=!0}runTask(){this._updateOverlays(this.view.state.camera,$.UPDATE)}_updateOverlays(e,t){if(!this._spatialReference)return;const r=J(e.fullWidth,e.fullHeight,this._maxResolution);this._computeOverlayExtents(e,r,ue);const s=j(ue.inner)/j(ue.outer);this.renderer.ensureOverlays(this._drapeTargets,this._drapeSources);const i=this._updateOverlay(Z.INNER,ue.inner,r,1*ue.pixelRatioAdjustment,ue.mapUnitsPerPixel),a=this._updateOverlay(Z.OUTER,ue.outer,r,s*ue.pixelRatioAdjustment,ue.mapUnitsPerPixel);i!==ye.EXTENT&&a!==ye.EXTENT||(this._drapeSources.forEach((e=>this._updateDrapeSourceExtent(e))),this.surface.updateTileOverlayParams(t)),i===ye.NONE&&a===ye.NONE||this._setDrawTexturesDirty(),this._placementDirty=!1}_updateOverlay(e,t,r,s,i){if(0===this.renderer.overlays.length)return ye.NONE;const a=this.renderer.overlays[e],n=a.mapUnitsPerPixel;if(a.mapUnitsPerPixel=i,a.pixelRatio=s,he(t,a.extent)&&r===a.resolution)return n===i?ye.NONE:ye.RERENDER_ONLY;I(a.extent,t),a.resolution=r;const o=N(a.extent);return a.renderLocalOrigin=re(o[0],o[1],0,"OV_"+this._latestOriginId++),ye.EXTENT}setTileParameters(e){const t=e.renderData.overlay;if(this.renderer.overlays.length>0){const r=this.renderer.overlays[Z.INNER],s=this.renderer.overlays[Z.OUTER],i=b(e.extent,this.surface.extent,pe);this._rectInsideRect(r.extent,i)||this._rectanglesOverlap(i,r.extent)||this._rectanglesOverlap(i,s.extent)?(this._setTileOverlayData(i,Z.INNER,t),this._setTileOverlayData(i,Z.OUTER,t)):(this._clearTileOverlayData(Z.INNER,t),this._clearTileOverlayData(Z.OUTER,t))}else this._clearTileOverlayData(Z.INNER,t),this._clearTileOverlayData(Z.OUTER,t)}overlayPixelSizeInMapUnits(e){if(0===this.renderer.overlays.length)return 0;const t=this.renderer.overlays[Z.INNER],r=this.renderer.overlays[Z.OUTER],s=this._pointIsInExtent(e,t.extent)?t:r;return(s.extent[2]-s.extent[0])/s.resolution}_setTileOverlayData(e,t,r){if(0===this.renderer.overlays.length)return;const s=this.renderer.overlays[t].extent,i=j(s),a=A(s);let n=e[0];if(this._longitudeCyclical){n=this._longitudeCyclical.minimalMonotonic(s[0],n);const t=this._longitudeCyclical.minimalMonotonic(s[0],e[2]);n>t&&(n=t-(e[2]-e[0]))}r.setScale(t,j(e)/i,A(e)/a),r.setOffset(t,(n-s[0])/i,(e[1]-s[1])/a)}_clearTileOverlayData(e,t){t.setScale(e,-1,-1),t.setOffset(e,-1,-1)}async reloadShaders(){ie(),await this.renderer.reloadShaders(),this._setDrawTexturesDirty(),this.runTask()}_dispatchAnimationUpdate(e){const t=_(e.time-this._animationTimeLast);(t>=this.surface.view._stage.renderView.animationTimestep||l(this.forcedAnimationTime)||this._drawTexturesDirty||this._drawTexturesAnimateDirty)&&(this.renderer.updateAnimation({dt:t,forcedTime:this.forcedAnimationTime,camera:this.view.state.camera})&&(this._drawTexturesAnimateDirty=!0),this._animationTimeLast=e.time)}_setDrawTexturesDirty(){this.renderer.hasOverlays?(this._contentUpdated=!0,this._drawTexturesDirty=!0):this.setPlacementDirty()}_intersectGroundFromView(e,t,r,s){const i=this.view.sceneIntersectionHelper.getCenterRayWithSubpixelOffset(e,me,t,r);if(h(i))return!1;const a=i.origin,n=f(de,i.origin,i.direction);return this._groundIntersector.reset(a,n,e),this._groundIntersector.intersect([],null),this.view.basemapTerrain.intersect(this._groundIntersector,null,a,n),this._groundIntersector.results.min.getIntersectionPoint(s)}_findHorizonBasedPointOfInterest(e,t){let r=.5;const i=.55,a=this.view.renderCoordsHelper.getAltitude(e.eye),o=this.view.pointsOfInterest.centerOnSurfaceFrequent,l=1e-5,h=n(o.estimatedSurfaceAltitude,e.aboveGround?-1/0:a+l,e.aboveGround?a-l:1/0),c=e.aboveGround;if("global"===this.view.viewingMode){const t=de;B(F(q,M(this.view.spatialReference).radius+h),V(e.eye,e.viewForward),t),v(t,t,e.eye);const a=s.normalize(W(e.viewForward,t,e.viewRight))/e.fovY+.5,n=a<=0||a>=1?.5:i;r=c?n*a:a+n*(1-a)}else{const t=.5*Math.PI-Math.acos(-e.viewForward[2]),s=Math.tan(t),a=P(0,s,1,0),o=D(a,a,e.projectionMatrix)[1],l=n(.5+.5*o,0,1);r=1===l||0===l?.5:c?l*i:1-(1-l)*i}return!!this._intersectGroundFromView(e,.5,r,t)&&R(t,e.eye)<o.distance*o.distance}_computeOverlayExtents(e,t,r){const s=this.view.pointsOfInterest.centerOnSurfaceFrequent.renderLocation,i=w();this._findHorizonBasedPointOfInterest(e,i)||T(i,s);const a=Math.max(.1,O(e.eye,i)),n=Y(this.view.renderCoordsHelper,s,e.eye),d=Math.PI/2-Math.abs(n-Math.PI/2);X.OVERLAY_SHOW_CENTER?(h(oe)&&(oe=new K(this.view.graphics,"red")),oe.show(i,this._renderSR)):l(oe)&&oe.hide(),this._overlaySREqualsRenderSR||U(i,this._renderSR,i,this._spatialReference);const u=this.surface.extent,p=!this._isSpherical&&l(this._spatialReference)&&this._spatialReference.isGeographic,_=p&&l(this._spatialReference)?1/M(this._spatialReference).metersPerDegree:1,m=e.perRenderPixelRatio*a*_;r.mapUnitsPerPixel=m/this._worldToPCSRatio;let y=t*m/2,f=!1,v=p?90:1/0;this._isSpherical&&l(u)&&l(this._spatialReference)&&(this._spatialReference.isWebMercator?(y/=Math.cos(z(i[1])),v=u[3]):(f=!0,y/=M(this._spatialReference).metersPerDegree,v=90),y>=v&&(y=v,i[1]=0,this._spatialReference.isWebMercator&&(i[0]=0)));let R=1;f&&(R=1/Math.max(.2,Math.cos(Math.abs(o(i[1])))),y*R>180&&(R=180/y),r.mapUnitsPerPixel*=R);const D=Math.log(2)/12;y=Math.exp(Math.round(Math.log(y)/D)*D);const E=y*R,P=32,C=.5*t/(P*E),N=.5*t/(P*y);i[0]=Math.round(i[0]*C)/C,i[1]=Math.round(i[1]*N)/N;const A=r.inner;A[0]=i[0]-E,A[1]=i[1]-y,A[2]=i[0]+E,A[3]=i[1]+y,this._isSpherical&&this._shiftExtentToFitBounds(A,1/0,v);const H=r.outer;if(6*E>j(u))I(H,c(u));else if(d<=.25*Math.PI)H[0]=A[0]-E,H[1]=A[1]-y,H[2]=A[2]+E,H[3]=A[3]+y;else{U(e.eye,this._renderSR,de,this._spatialReference),g(ce,i,de);let t=-Math.atan2(ce[1],ce[0])+.125*Math.PI;t<0&&(t+=2*Math.PI);const r=Math.floor(t/(.25*Math.PI));x(ce,ne[r],2*y),ce[0]*=R,ce[2]*=R,S(H,A,ce)}if(this._isSpherical)H[0]=this._longitudeCyclical.clamp(H[0]),H[2]=this._longitudeCyclical.clamp(H[2]),H[1]=Math.max(H[1],-v),H[3]=Math.min(H[3],v);else{const e=b(A,u,pe),t=b(H,u,_e);G(e,t)&&(H[2]=H[0],H[3]=H[1])}const L=Math.abs(A[2]-A[0])/t;r.mapUnitsPerPixel=Math.max(r.mapUnitsPerPixel,L),r.pixelRatioAdjustment=r.mapUnitsPerPixel/L}_drawOverlayTextures(e,t,r=this.view.state.camera){if(0===e.length||!this._drawTexturesDirty&&!this._drawTexturesAnimateDirty)return;const s=this._drawTexturesDirty;this._drawTexturesDirty=!1,this._drawTexturesAnimateDirty=!1;const i=this._drawOverlay(e[Z.INNER],r),a=this._drawOverlay(e[Z.OUTER],r);i!==ee.CHANGED&&a!==ee.CHANGED||this.surface.updateTileOverlayParams($.UPDATE),this._collectUnusedRenderTargetMemory(),this.updateOverlayResult(),s?(this.surface.requestRender(t),t===$.UPDATE&&this.surface.requestUpdate()):this.surface.requestRender($.BACKGROUND)}_drawOverlay(e,t){return this._longitudeCyclical?e.setupGeometryViewsCyclical(this._longitudeCyclical):e.setupGeometryViewsDirect(),e.draw(this.renderer,t.pixelRatio)}_collectUnusedRenderTargetMemory(){if(this._hasUnusedRenderTargets=!1,this.renderer.hasOverlays){const e=performance.now();this._hasUnusedRenderTargets=this.renderer.collectUnusedRenderTargetMemory(e)}}_rectanglesOverlap(e,t){return!h(e)&&(this._longitudeCyclical?(this._longitudeCyclical.contains(t[0],t[2],e[0])||this._longitudeCyclical.contains(t[0],t[2],e[2])||this._longitudeCyclical.contains(e[0],e[2],t[0]))&&!(e[1]>t[3]||e[3]<t[1]):H(e,t))}_rectInsideRect(e,t){return!h(t)&&(this._longitudeCyclical?this._longitudeCyclical.contains(e[0],e[2],t[0])&&this._longitudeCyclical.contains(e[0],e[2],t[2])&&t[1]>e[1]&&t[3]<e[3]:G(e,t))}_pointIsInExtent(e,t){if(this._longitudeCyclical)return this._longitudeCyclical.contains(t[0],t[2],e.x)&&e.y>=t[1]&&e.y<=t[3];const r=e.x,s=e.y;return r>t[0]&&r<t[2]&&s>t[1]&&s<t[3]}_shiftExtentToFitBounds(e,t,r){let s=0,i=0;e[0]<-t?s=e[0]+t:e[2]>t&&(s=t-e[2]),e[1]<-r?i=e[1]+r:e[3]>r&&(i=r-e[3]),L(e,s,i)}get test(){return{renderer:this.renderer,update:()=>this.runTask()}}};function he(e,t){const r=1e-5,s=X.TESTS_DISABLE_OPTIMIZATIONS?0:r*Math.max(e[2]-e[0],e[3]-e[1],t[2]-t[0],t[3]-t[1]);return Math.abs(t[0]-e[0])<=s&&Math.abs(t[1]-e[1])<=s&&Math.abs(t[2]-e[2])<=s&&Math.abs(t[3]-e[3])<=s}e([m()],le.prototype,"_spatialReference",void 0),e([m({readOnly:!0})],le.prototype,"running",null),e([m()],le.prototype,"_placementDirty",void 0),e([m()],le.prototype,"_contentUpdated",void 0),e([m()],le.prototype,"_isSpherical",null),e([m()],le.prototype,"_worldToPCSRatio",null),e([m()],le.prototype,"renderer",void 0),e([m({constructOnly:!0})],le.prototype,"surface",void 0),e([m({readOnly:!0,aliasOf:"surface.suspended"})],le.prototype,"suspended",void 0),e([m({readOnly:!0})],le.prototype,"updating",null),e([m({type:Boolean})],le.prototype,"hasHighlights",null),e([m({type:Boolean})],le.prototype,"rendersOccluded",null),le=e([y("esri.views.3d.terrain.OverlayManager")],le);const ce=E(),de=w(),ue={inner:C(),outer:C(),mapUnitsPerPixel:0,pixelRatioAdjustment:1},pe=C(),_e=C(),me=k();var ye;!function(e){e[e.NONE=0]="NONE",e[e.EXTENT=1]="EXTENT",e[e.RERENDER_ONLY=2]="RERENDER_ONLY"}(ye||(ye={}));export{le as OverlayManager};
5
+ import{_ as e}from"../../../chunks/tslib.es6.js";import t from"../../../core/Accessor.js";import{Cyclical as r,cyclicalPI as s}from"../../../core/Cyclical.js";import i from"../../../core/Handles.js";import a from"../../../core/has.js";import{clamp as n,deg2rad as o}from"../../../core/mathUtils.js";import{isSome as l,isNone as h,unwrap as c}from"../../../core/maybe.js";import{watch as d,sync as u}from"../../../core/reactiveUtils.js";import{addFrameTask as p}from"../../../core/scheduling.js";import{Milliseconds as _}from"../../../core/time.js";import{property as m}from"../../../core/accessorSupport/decorators/property.js";import"../../../core/arrayUtils.js";import"../../../core/accessorSupport/ensureType.js";import{subclass as y}from"../../../core/accessorSupport/decorators/subclass.js";import{h as g}from"../../../chunks/vec2.js";import{a as f,b as v,x as R,c as T,i as O}from"../../../chunks/vec3.js";import{c as w}from"../../../chunks/vec3f64.js";import{t as D,b as x,a as S}from"../../../chunks/vec4.js";import{c as E,f as P}from"../../../chunks/vec4f64.js";import{projectVectorToVector as U}from"../../../geometry/projection.js";import{getReferenceEllipsoid as M}from"../../../geometry/projectionEllipsoid.js";import{create as C,width as j,copy as I,center as N,intersection as b,height as A,contains as G,intersects as H,offset as L}from"../../../geometry/support/aaBoundingRect.js";import{create as k,wrap as V}from"../../../geometry/support/ray.js";import{j as B,k as F,t as q}from"../../../chunks/sphere.js";import{angleAroundAxis as W}from"../../../geometry/support/vector.js";import{y2lat as z}from"../../../geometry/support/webMercatorUtils.js";import{viewAngle as Y}from"../state/utils/viewUtils.js";import X from"../support/debugFlags.js";import{PointGraphics as K}from"../support/debugUtils.js";import{OverlayIndex as Z}from"./interfaces.js";import{computeOverlayResolution as J}from"./Overlay.js";import{OverlayRenderer as Q}from"./OverlayRenderer.js";import{RenderRequestType as $,ValidationState as ee}from"../webgl-engine/lib/basicInterfaces.js";import{newIntersector as te}from"../webgl-engine/lib/Intersector.js";import{fromValues as re}from"../webgl-engine/lib/LocalOriginFactory.js";import{SortedRenderGeometryRenderer as se}from"../webgl-engine/lib/SortedRenderGeometryRenderer.js";import{removeLoadedShaderModules as ie}from"../webgl-engine/parts/requireUtils.js";import{TaskPriority as ae}from"../../support/Scheduler.js";const ne=[[-.1,-2,3.9,2],[-.1,-3.9,3.9,.1],[-2,-3.9,2,.1],[-3.9,-3.9,.1,.1],[-3.9,-2,.1,2],[-3.9,-.1,.1,3.9],[-2,-.1,2,3.9],[-.1,-.1,3.9,3.9]];let oe,le=class extends t{constructor(e){super(e),this._handles=new i,this._spatialReference=null,this._renderSR=null,this._overlaySREqualsRenderSR=!0,this._drapeSources=new Set,this._drapeTargets=new Set,this._placementDirty=!1,this._contentUpdated=!1,this._drawTexturesDirty=!1,this._drawTexturesAnimateDirty=!1,this._hasUnusedRenderTargets=!1,this._longitudeCyclical=null,this._latestOriginId=0,this._maxResolution=a("esri-mobile")?2048:4096,this._animationTimeLast=0}get running(){return this._placementDirty&&(this._drapeSources.size>0||this.view.graphics.length>0||X.OVERLAY_DRAW_DEBUG_TEXTURE)&&!!this._spatialReference&&!this.suspended&&this.surface.ready}get _isSpherical(){return this.view.state.isGlobal}get _worldToPCSRatio(){return l(this._spatialReference)&&this._spatialReference.isGeographic&&!this.view.state.isLocal?M(this._spatialReference).metersPerDegree:1}get view(){return this.surface.view}get updating(){return this.running||this.renderer.updating||this._contentUpdated}get hasHighlights(){return this.renderer.hasHighlights}get rendersOccluded(){return this.renderer.rendersOccluded}initialize(){const e=this.view;this.renderer=new Q({view:e,worldToPCSRatio:this._worldToPCSRatio,spatialReference:this._spatialReference}),this._groundIntersector=te(this.view.state.viewingMode),this._groundIntersector.options.backfacesTerrain=!0,this._groundIntersector.options.invisibleTerrain=!0,this._groundIntersector.options.hud=!1,this._handles.add([this.renderer.events.on("has-highlights",(()=>{this._setDrawTexturesDirty(),this.notifyChange("hasHighlights")})),this.renderer.events.on("has-water",(t=>e._stage?.renderView.setRenderParameters({hasOverlayWater:t}))),this.renderer.events.on("renders-occluded",(()=>{this._setDrawTexturesDirty(),this.notifyChange("rendersOccluded")})),this.renderer.events.on("content-changed",(()=>this._setDrawTexturesDirty())),this.renderer.events.on("textures-disposed",(()=>this.updateOverlayResult())),d((()=>[e.pointsOfInterest?.renderPointOfView,e.pointsOfInterest?.centerOnSurfaceFrequent?.location]),(()=>this.setPlacementDirty())),d((()=>e.state?.pixelRatio),(()=>this.setPlacementDirty()),u),this.surface.on("elevation-change",(()=>this.setPlacementDirty())),e.on("resize",(()=>this.setPlacementDirty())),p({preRender:e=>{this._contentUpdated=!1,this.renderer.processSyncDrapeSources(),this.renderer.hasOverlays&&(this._dispatchAnimationUpdate(e),this._drawOverlayTextures(this.renderer.overlays,$.UPDATE)),this._hasUnusedRenderTargets&&this._collectUnusedRenderTargetMemory()}}),e.resourceController.scheduler.registerTask(ae.OVERLAY,this),e._stage.renderView.events.on("force-camera-for-screenshot",(e=>{this._updateOverlays(e,$.BACKGROUND),this.renderer.hasOverlays&&this._drawOverlayTextures(this.renderer.overlays,$.BACKGROUND,e)}))])}destroy(){this.renderer.dispose(),this._handles&&(this._handles.destroy(),this._handles=null),l(oe)&&(oe.hide(),oe=null)}get hasOverlays(){return this.renderer.hasOverlays}setSpatialReference(e){this._spatialReference=e,this.renderer.spatialReference=e,this._longitudeCyclical=null;const t=this.view.renderSpatialReference;l(e)&&l(t)?(this._renderSR=t,this._overlaySREqualsRenderSR=e.equals(this._renderSR),this._isSpherical&&(this._longitudeCyclical=e.isWebMercator?new r(-20037508.342787,20037508.342787):new r(-180,180),this.renderer.longitudeCyclical=this._longitudeCyclical),this.renderer&&(this.renderer.worldToPCSRatio=this._worldToPCSRatio)):this.renderer.disposeOverlays()}get gpuMemoryUsage(){return this.renderer.gpuMemoryUsage}registerDrapeSource(e,t,r){this._drapeSources.add(e),this.renderer.ensureOverlays(this._drapeTargets,this._drapeSources);const s=this.renderer.createDrapeSourceRenderer(e,t,r);return this._updateDrapeSourceExtent(e),this._setContentDirty(),this.notifyChange("running"),s}registerGeometryDrapeSource(e){return this.registerDrapeSource(e,se)}_updateDrapeSourceExtent(e){2===this.renderer.overlays.length&&l(e.setDrapingExtent)&&l(this._spatialReference)&&e.setDrapingExtent(this.renderer.overlays,this._spatialReference)}unregisterDrapeSource(e){this._drapeSources.has(e)&&(this._drapeSources.delete(e),this.renderer.removeDrapeSourceRenderer(e),this.renderer.ensureDrapeSources(this._drapeSources),this._setContentDirty(),this.notifyChange("running"))}registerDrapeTarget(e){this._drapeTargets.add(e),this.renderer.ensureOverlays(this._drapeTargets,this._drapeSources)}updateOverlayResult(){this.view._stage?.renderView.setRenderParameters({overlays:this.renderer.overlays})}unregisterDrapeTarget(e){this._drapeTargets.delete(e),this.renderer.ensureDrapeTargets(this._drapeTargets)}_setContentDirty(){this.setPlacementDirty(),this._setDrawTexturesDirty()}setPlacementDirty(){this._placementDirty=!0}runTask(){this._updateOverlays(this.view.state.camera,$.UPDATE)}_updateOverlays(e,t){if(!this._spatialReference)return;const r=J(e.fullWidth,e.fullHeight,this._maxResolution);this._computeOverlayExtents(e,r,ue);const s=j(ue.inner)/j(ue.outer);this.renderer.ensureOverlays(this._drapeTargets,this._drapeSources);const i=this._updateOverlay(Z.INNER,ue.inner,r,1*ue.pixelRatioAdjustment,ue.mapUnitsPerPixel),a=this._updateOverlay(Z.OUTER,ue.outer,r,s*ue.pixelRatioAdjustment,ue.mapUnitsPerPixel);i!==ye.EXTENT&&a!==ye.EXTENT||(this._drapeSources.forEach((e=>this._updateDrapeSourceExtent(e))),this.surface.updateTileOverlayParams(t)),i===ye.NONE&&a===ye.NONE||this._setDrawTexturesDirty(),this._placementDirty=!1}_updateOverlay(e,t,r,s,i){if(0===this.renderer.overlays.length)return ye.NONE;const a=this.renderer.overlays[e],n=a.mapUnitsPerPixel;if(a.mapUnitsPerPixel=i,a.pixelRatio=s,he(t,a.extent)&&r===a.resolution)return n===i?ye.NONE:ye.RERENDER_ONLY;I(a.extent,t),a.resolution=r;const o=N(a.extent);return a.renderLocalOrigin=re(o[0],o[1],0,"OV_"+this._latestOriginId++),ye.EXTENT}setTileParameters(e){const t=e.renderData.overlay;if(this.renderer.overlays.length>0){const r=this.renderer.overlays[Z.INNER],s=this.renderer.overlays[Z.OUTER],i=b(e.extent,this.surface.extent,pe);this._rectInsideRect(r.extent,i)||this._rectanglesOverlap(i,r.extent)||this._rectanglesOverlap(i,s.extent)?(this._setTileOverlayData(i,Z.INNER,t),this._setTileOverlayData(i,Z.OUTER,t)):(this._clearTileOverlayData(Z.INNER,t),this._clearTileOverlayData(Z.OUTER,t))}else this._clearTileOverlayData(Z.INNER,t),this._clearTileOverlayData(Z.OUTER,t)}overlayPixelSizeInMapUnits(e){if(0===this.renderer.overlays.length)return 0;const t=this.renderer.overlays[Z.INNER],r=this.renderer.overlays[Z.OUTER],s=this._pointIsInExtent(e,t.extent)?t:r;return(s.extent[2]-s.extent[0])/s.resolution}_setTileOverlayData(e,t,r){if(0===this.renderer.overlays.length)return;const s=this.renderer.overlays[t].extent,i=j(s),a=A(s);let n=e[0];if(this._longitudeCyclical){n=this._longitudeCyclical.minimalMonotonic(s[0],n);const t=this._longitudeCyclical.minimalMonotonic(s[0],e[2]);n>t&&(n=t-(e[2]-e[0]))}r.setScale(t,j(e)/i,A(e)/a),r.setOffset(t,(n-s[0])/i,(e[1]-s[1])/a)}_clearTileOverlayData(e,t){t.setScale(e,-1,-1),t.setOffset(e,-1,-1)}async reloadShaders(){ie(),await this.renderer.reloadShaders(),this._setDrawTexturesDirty(),this.runTask()}_dispatchAnimationUpdate(e){const t=_(e.time-this._animationTimeLast);(t>=this.surface.view._stage.renderView.animationTimestep||l(this.forcedAnimationTime)||this._drawTexturesDirty||this._drawTexturesAnimateDirty)&&(this.renderer.updateAnimation({dt:t,forcedTime:this.forcedAnimationTime,camera:this.view.state.camera})&&(this._drawTexturesAnimateDirty=!0),this._animationTimeLast=e.time)}_setDrawTexturesDirty(){this.renderer.hasOverlays?(this._contentUpdated=!0,this._drawTexturesDirty=!0):this.setPlacementDirty()}_intersectGroundFromView(e,t,r,s){const i=this.view.sceneIntersectionHelper.getCenterRayWithSubpixelOffset(e,me,t,r);if(h(i))return!1;const a=i.origin,n=f(de,i.origin,i.direction);return this._groundIntersector.reset(a,n,e),this._groundIntersector.intersect([],null),this.view.basemapTerrain.intersect(this._groundIntersector,null,a,n),this._groundIntersector.results.min.getIntersectionPoint(s)}_findHorizonBasedPointOfInterest(e,t){let r=.5;const i=.55,a=this.view.renderCoordsHelper.getAltitude(e.eye),o=this.view.pointsOfInterest.centerOnSurfaceFrequent,l=1e-5,h=n(o.estimatedSurfaceAltitude,e.aboveGround?-1/0:a+l,e.aboveGround?a-l:1/0),c=e.aboveGround;if("global"===this.view.viewingMode){const t=de;B(F(q,M(this.view.spatialReference).radius+h),V(e.eye,e.viewForward),t),v(t,t,e.eye);const a=s.normalize(W(e.viewForward,t,e.viewRight))/e.fovY+.5,n=a<=0||a>=1?.5:i;r=c?n*a:a+n*(1-a)}else{const t=.5*Math.PI-Math.acos(-e.viewForward[2]),s=Math.tan(t),a=P(0,s,1,0),o=D(a,a,e.projectionMatrix)[1],l=n(.5+.5*o,0,1);r=1===l||0===l?.5:c?l*i:1-(1-l)*i}return!!this._intersectGroundFromView(e,.5,r,t)&&R(t,e.eye)<o.distance*o.distance}_computeOverlayExtents(e,t,r){const s=this.view.pointsOfInterest.centerOnSurfaceFrequent.renderLocation,i=w();this._findHorizonBasedPointOfInterest(e,i)||T(i,s);const a=Math.max(.1,O(e.eye,i)),n=Y(this.view.renderCoordsHelper,s,e.eye),d=Math.PI/2-Math.abs(n-Math.PI/2);X.OVERLAY_SHOW_CENTER?(h(oe)&&(oe=new K(this.view.graphics,"red")),oe.show(i,this._renderSR)):l(oe)&&oe.hide(),this._overlaySREqualsRenderSR||U(i,this._renderSR,i,this._spatialReference);const u=this.surface.extent,p=!this._isSpherical&&l(this._spatialReference)&&this._spatialReference.isGeographic,_=p&&l(this._spatialReference)?1/M(this._spatialReference).metersPerDegree:1,m=e.perRenderPixelRatio*a*_;r.mapUnitsPerPixel=m/this._worldToPCSRatio;let y=t*m/2,f=!1,v=p?90:1/0;this._isSpherical&&l(u)&&l(this._spatialReference)&&(this._spatialReference.isWebMercator?(y/=Math.cos(z(i[1])),v=u[3]):(f=!0,y/=M(this._spatialReference).metersPerDegree,v=90),y>=v&&(y=v,i[1]=0,this._spatialReference.isWebMercator&&(i[0]=0)));let R=1;f&&(R=1/Math.max(.2,Math.cos(Math.abs(o(i[1])))),y*R>180&&(R=180/y),r.mapUnitsPerPixel*=R);const D=Math.log(2)/12;y=Math.exp(Math.round(Math.log(y)/D)*D);const E=y*R,P=32,C=.5*t/(P*E),N=.5*t/(P*y);i[0]=Math.round(i[0]*C)/C,i[1]=Math.round(i[1]*N)/N;const A=r.inner;A[0]=i[0]-E,A[1]=i[1]-y,A[2]=i[0]+E,A[3]=i[1]+y,this._isSpherical&&this._shiftExtentToFitBounds(A,1/0,v);const H=r.outer;if(6*E>j(u))I(H,c(u));else if(d<=.25*Math.PI)H[0]=A[0]-E,H[1]=A[1]-y,H[2]=A[2]+E,H[3]=A[3]+y;else{U(e.eye,this._renderSR,de,this._spatialReference),g(ce,i,de);let t=-Math.atan2(ce[1],ce[0])+.125*Math.PI;t<0&&(t+=2*Math.PI);const r=Math.floor(t/(.25*Math.PI));x(ce,ne[r],2*y),ce[0]*=R,ce[2]*=R,S(H,A,ce)}if(this._isSpherical)H[0]=this._longitudeCyclical.clamp(H[0]),H[2]=this._longitudeCyclical.clamp(H[2]),H[1]=Math.max(H[1],-v),H[3]=Math.min(H[3],v);else{const e=b(A,u,pe),t=b(H,u,_e);G(e,t)&&(H[2]=H[0],H[3]=H[1])}const L=Math.abs(A[2]-A[0])/t;r.mapUnitsPerPixel=Math.max(r.mapUnitsPerPixel,L),r.pixelRatioAdjustment=r.mapUnitsPerPixel/L}_drawOverlayTextures(e,t,r=this.view.state.camera){if(0===e.length||!this._drawTexturesDirty&&!this._drawTexturesAnimateDirty)return;const s=this._drawTexturesDirty;this._drawTexturesDirty=!1,this._drawTexturesAnimateDirty=!1;const i=this._drawOverlay(e[Z.INNER],r),a=this._drawOverlay(e[Z.OUTER],r);i!==ee.CHANGED&&a!==ee.CHANGED||this.surface.updateTileOverlayParams($.UPDATE),this._collectUnusedRenderTargetMemory(),this.updateOverlayResult(),s?(this.surface.requestRender(t),t===$.UPDATE&&this.surface.requestUpdate()):this.surface.requestRender($.BACKGROUND)}_drawOverlay(e,t){return this._longitudeCyclical?e.setupGeometryViewsCyclical(this._longitudeCyclical):e.setupGeometryViewsDirect(),e.draw(this.renderer,t.pixelRatio)}_collectUnusedRenderTargetMemory(){if(this._hasUnusedRenderTargets=!1,this.renderer.hasOverlays){const e=performance.now();this._hasUnusedRenderTargets=this.renderer.collectUnusedRenderTargetMemory(e)}}_rectanglesOverlap(e,t){return!h(e)&&(this._longitudeCyclical?(this._longitudeCyclical.contains(t[0],t[2],e[0])||this._longitudeCyclical.contains(t[0],t[2],e[2])||this._longitudeCyclical.contains(e[0],e[2],t[0]))&&!(e[1]>t[3]||e[3]<t[1]):H(e,t))}_rectInsideRect(e,t){return!h(t)&&(this._longitudeCyclical?this._longitudeCyclical.contains(e[0],e[2],t[0])&&this._longitudeCyclical.contains(e[0],e[2],t[2])&&t[1]>e[1]&&t[3]<e[3]:G(e,t))}_pointIsInExtent(e,t){if(this._longitudeCyclical)return this._longitudeCyclical.contains(t[0],t[2],e.x)&&e.y>=t[1]&&e.y<=t[3];const r=e.x,s=e.y;return r>t[0]&&r<t[2]&&s>t[1]&&s<t[3]}_shiftExtentToFitBounds(e,t,r){let s=0,i=0;e[0]<-t?s=e[0]+t:e[2]>t&&(s=t-e[2]),e[1]<-r?i=e[1]+r:e[3]>r&&(i=r-e[3]),L(e,s,i)}get test(){return{renderer:this.renderer,update:()=>this.runTask()}}};function he(e,t){const r=1e-5,s=X.TESTS_DISABLE_OPTIMIZATIONS?0:r*Math.max(e[2]-e[0],e[3]-e[1],t[2]-t[0],t[3]-t[1]);return Math.abs(t[0]-e[0])<=s&&Math.abs(t[1]-e[1])<=s&&Math.abs(t[2]-e[2])<=s&&Math.abs(t[3]-e[3])<=s}e([m()],le.prototype,"_spatialReference",void 0),e([m({readOnly:!0})],le.prototype,"running",null),e([m()],le.prototype,"_placementDirty",void 0),e([m()],le.prototype,"_contentUpdated",void 0),e([m()],le.prototype,"_isSpherical",null),e([m()],le.prototype,"_worldToPCSRatio",null),e([m()],le.prototype,"renderer",void 0),e([m({constructOnly:!0})],le.prototype,"surface",void 0),e([m({readOnly:!0,aliasOf:"surface.suspended"})],le.prototype,"suspended",void 0),e([m({readOnly:!0})],le.prototype,"updating",null),e([m({type:Boolean})],le.prototype,"hasHighlights",null),e([m({type:Boolean})],le.prototype,"rendersOccluded",null),le=e([y("esri.views.3d.terrain.OverlayManager")],le);const ce=E(),de=w(),ue={inner:C(),outer:C(),mapUnitsPerPixel:0,pixelRatioAdjustment:1},pe=C(),_e=C(),me=k();var ye;!function(e){e[e.NONE=0]="NONE",e[e.EXTENT=1]="EXTENT",e[e.RERENDER_ONLY=2]="RERENDER_ONLY"}(ye||(ye={}));export{le as OverlayManager};
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.24/esri/copyright.txt for details.
4
4
  */
5
- import{_ as e}from"../../../chunks/tslib.es6.js";import r from"../../../core/Accessor.js";import t from"../../../core/Evented.js";import s from"../../../core/Handles.js";import{someMap as i}from"../../../core/MapUtils.js";import{releaseMaybe as o,disposeMaybe as a,isSome as n,isNone as d,unwrapOr as h}from"../../../core/maybe.js";import c from"../../../core/PooledArray.js";import{watch as l,syncAndInitial as u,on as p}from"../../../core/reactiveUtils.js";import{someSet as _}from"../../../core/SetUtils.js";import{property as g}from"../../../core/accessorSupport/decorators/property.js";import"../../../core/arrayUtils.js";import"../../../core/has.js";import"../../../core/accessorSupport/ensureType.js";import{subclass as m}from"../../../core/accessorSupport/decorators/subclass.js";import{q as y,f as R}from"../../../chunks/mat4.js";import{f as T}from"../../../chunks/vec3f64.js";import{ViewingMode as f}from"../../ViewingMode.js";import{DrapeTargetType as b,DrapeSourceType as S}from"../layers/interfaces.js";import v from"../support/debugFlags.js";import{OverlayIndex as w,RenderTargetType as x}from"./interfaces.js";import{Overlay as O}from"./Overlay.js";import{OverlayFramebufferObject as D}from"./OverlayFramebufferObject.js";import{OverlayRenderTarget as j}from"./OverlayRenderTarget.js";import{ShaderTechniqueRepository as E}from"../webgl-engine/core/shaderTechnique/ShaderTechniqueRepository.js";import{autoDispose as A,AutoDisposableMixin as P}from"../webgl-engine/lib/AutoDisposable.js";import{TransparencyPassType as C,UpdatePolicy as F}from"../webgl-engine/lib/basicInterfaces.js";import{Camera as M}from"../webgl-engine/lib/Camera.js";import{GLMaterialRepository as q}from"../webgl-engine/lib/GLMaterialRepository.js";import{createEmptyDepthTexture as I,createQuadVAO as U}from"../webgl-engine/lib/glUtil3D.js";import{GridLocalOriginFactory as W}from"../webgl-engine/lib/GridLocalOriginFactory.js";import{RenderOccludedFlag as L}from"../webgl-engine/lib/Material.js";import{OverlayRenderContext as V}from"../webgl-engine/lib/RenderContext.js";import{RenderPass as H}from"../webgl-engine/lib/RenderPass.js";import{RenderSlot as B}from"../webgl-engine/lib/RenderSlot.js";import{ShadowMap as N}from"../webgl-engine/lib/ShadowMap.js";import{SortedRenderGeometryRenderer as k}from"../webgl-engine/lib/SortedRenderGeometryRenderer.js";import{SSAOHelper as G}from"../webgl-engine/lib/SSAOHelper.js";import{TextureTechnique as z}from"../webgl-engine/lib/TextureTechnique.js";import{TextureTechniqueConfiguration as Y}from"../webgl-engine/lib/TextureTechniqueConfiguration.js";import{AmbientLight as X}from"../webgl-engine/lighting/Lightsources.js";import{StippleTextureRepository as Q}from"../webgl-engine/materials/StippleTextureRepository.js";import{AlphaMode as J,CompositingFunction as K}from"../webgl-engine/shaders/CompositingTechniqueConfiguration.js";import{ImmediateTask as Z,TaskPriority as $,noBudget as ee}from"../../support/Scheduler.js";import{ClearBufferBit as re,PrimitiveType as te,TextureType as se,PixelFormat as ie,PixelType as oe,TextureSamplingMode as ae}from"../../webgl/enums.js";import{Texture as ne}from"../../webgl/Texture.js";import{vertexCount as de}from"../../webgl/Util.js";let he=class extends(P(r)){constructor(e){super(e),this._overlays=null,this._overlayRenderTarget=null,this._hasHighlights=!1,this._rendersOccluded=!1,this._hasWater=!1,this._handles=new s,this._frameTask=Z,this._drapeSourceRenderers=new Map,this._sortedDrapeSourceRenderersDirty=!1,this._sortedDrapeSourceRenderers=new c,this._rctx=null,this._materialRepository=null,this._screenToWorldRatio=1,this._localOriginFactory=null,this.worldToPCSRatio=1,this.events=new t,this.longitudeCyclical=null}get _bindParameters(){return this._renderContext.bindParameters}get rctx(){return this._rctx}get materialRepository(){return this._materialRepository}get screenToWorldRatio(){return this._screenToWorldRatio}get localOriginFactory(){return this._localOriginFactory}initialize(){const e=this.view._stage.renderView;this._rctx=e.renderingContext;const r=e.waterTextureRepository;this._stippleTextureRepository=new Q(e.renderingContext),this._shaderTechniqueRepository=new E({rctx:this._rctx,viewingMode:f.Local,stippleTextureRepository:this._stippleTextureRepository,waterTextureRepository:r}),this._renderContext=new V(this._rctx,new N(this._rctx,this.view.state.viewingMode),new G(this._shaderTechniqueRepository,this._rctx,(()=>{}))),this._handles.add([l((()=>r.updating),(()=>this.events.emit("content-changed")),u),l((()=>this.spatialReference),(e=>this._localOriginFactory=new W(e)),u),p((()=>this.view.allLayerViews),"after-changes",(()=>this._sortedDrapeSourceRenderersDirty=!0))]),this._materialRepository=new q(e.textureRepository,this._shaderTechniqueRepository,(e=>{(e.renderOccluded&ge)>0!==this._rendersOccluded&&this._updateRendersOccluded(),this.events.emit("content-changed"),this.notifyChange("updating")}),(()=>this.events.emit("content-changed"))),this._bindParameters.slot=B.DRAPED_MATERIAL,this._bindParameters.highlightDepthTexture=I(this._rctx),this._bindParameters.camera=pe,this._bindParameters.transparencyPassType=C.NONE,this._bindParameters.lighting.groundLightingFactor=1,this._bindParameters.lighting.globalFactor=0,this._bindParameters.lighting.set([new X(T(1,1,1))]),this._frameTask=this.view.resourceController.scheduler.registerTask($.STAGE,this),this._handles.add(this._frameTask)}dispose(){this._handles.destroy(),this._drapeSourceRenderers.forEach((e=>e.destroy())),this._drapeSourceRenderers.clear(),this._debugTextureTechnique=o(this._debugTextureTechnique),this._debugPatternTexture=a(this._debugPatternTexture),this._bindParameters.highlightDepthTexture=a(this._bindParameters.highlightDepthTexture),this._shaderTechniqueRepository=a(this._shaderTechniqueRepository),this._temporaryFBO=a(this._temporaryFBO),this._quadVAO=a(this._quadVAO),this.disposeOverlays()}get updating(){return this._sortedDrapeSourceRenderersDirty||this._frameTask.updating||i(this._drapeSourceRenderers,(e=>e.updating))}get hasOverlays(){return n(this._overlays)&&n(this._overlayRenderTarget)}get gpuMemoryUsage(){return n(this._overlayRenderTarget)?this._overlayRenderTarget.gpuMemoryUsage:0}createGeometryDrapeSourceRenderer(e){return this.createDrapeSourceRenderer(e,k)}createDrapeSourceRenderer(e,r,t){const s=this._drapeSourceRenderers.get(e);n(s)&&s.destroy();const i=new r({...t,rendererContext:this,drapeSource:e});return this._drapeSourceRenderers.set(e,i),this._sortedDrapeSourceRenderersDirty=!0,"fullOpacity"in e&&this._handles.add(l((()=>e.fullOpacity),(()=>this.events.emit("content-changed"))),e),i}removeDrapeSourceRenderer(e){if(d(e))return;const r=this._drapeSourceRenderers.get(e);d(r)||(this._sortedDrapeSourceRenderersDirty=!0,this._drapeSourceRenderers.delete(e),this._handles.remove(e),r.destroy())}collectUnusedRenderTargetMemory(e){let r=!1;if(n(this._overlayRenderTarget))for(const t of this._overlayRenderTarget.renderTargets){const s=this.overlays[0].validTargets[t.type]||!this.overlays[1].validTargets[t.type];r=this._overlayRenderTarget.validateUsageForTarget(s,t,e)||r}return r}get overlays(){return h(this._overlays,[])}ensureDrapeTargets(e){n(this._overlays)&&this._overlays.forEach((r=>{r.hasTargetWithoutRasterImage=_(e,(e=>e.drapeTargetType===b.WithoutRasterImage))}))}ensureDrapeSources(e){n(this._overlays)&&this._overlays.forEach((r=>{r.hasDrapedFeatureSource=_(e,(e=>e.drapeSourceType===S.Features)),r.hasDrapedRasterSource=_(e,(e=>e.drapeSourceType===S.RasterImage))}))}ensureOverlays(e,r){d(this._overlays)&&(this._overlayRenderTarget=new j(this._rctx),this._overlays=[new O(w.INNER,this._overlayRenderTarget),new O(w.OUTER,this._overlayRenderTarget)]),this.ensureDrapeTargets(e),this.ensureDrapeSources(r)}disposeOverlays(){this._overlays=null,this._overlayRenderTarget=a(this._overlayRenderTarget),this.events.emit("textures-disposed")}get running(){return this.updating}runTask(e,r=(()=>!0)){this._frameTask.processQueue(e),e.done||this._processDrapeSources(e,r)}_processDrapeSources(e,r){let t=!1;for(const[s,i]of this._drapeSourceRenderers){if(e.done)break;(s.destroyed||r(s))&&(i.commitChanges()&&(t=!0,e.madeProgress()))}this._updateSortedDrapeSourceRenderers(),t&&(n(this._overlays)&&0===this._drapeSourceRenderers.size&&this.disposeOverlays(),this.notifyChange("updating"),this.events.emit("content-changed"),this._updateHasHighlights(),this._updateRendersOccluded(),this._updateHasWater())}processSyncDrapeSources(){this._processDrapeSources(ee,(e=>e.updatePolicy===F.SYNC))}isEmpty(){let e=!0;for(const r of this._drapeSourceRenderers.values())if(e=e&&r.isEmpty,!e)break;return e&&!v.OVERLAY_DRAW_DEBUG_TEXTURE}get hasHighlights(){return this._hasHighlights}get hasWater(){return this._hasWater}get rendersOccluded(){return this._rendersOccluded}updateAnimation(e){let r=!1;return this._drapeSourceRenderers.forEach((t=>r=t.updateAnimation(e)||r)),r}updateDrapeSourceOrder(){this._sortedDrapeSourceRenderersDirty=!0}drawTarget(e,r,t){const s=e.canvasGeometries;if(0===s.numViews)return!1;this._screenToWorldRatio=t*e.mapUnitsPerPixel;const i=r.renderPass;if(this.isEmpty()||i===H.MATERIAL_HIGHLIGHT&&!this.hasHighlights||i===H.MATERIAL_NORMAL&&!this.hasWater||!e.hasSomeSizedView())return!1;const o=r.fbo;if(!o.isValid())return!1;const a=2*e.resolution,d=e.resolution;o.resize(a,d);const h=this._rctx;pe.pixelRatio=e.pixelRatio*t,this._renderContext.pass=i,this._bindParameters.screenToWorldRatio=this._screenToWorldRatio,this._bindParameters.screenToPCSRatio=this._screenToWorldRatio*this.worldToPCSRatio,this._bindParameters.slot=i===H.MATERIAL_NORMAL?B.DRAPED_WATER:B.DRAPED_MATERIAL,e.applyViewport(this._rctx),o.bind(h),e.index===w.INNER&&(h.setClearColor(0,0,0,0),h.clearSafe(re.COLOR_BUFFER_BIT));const c=r.type===x.ColorNoRasterImage?ce.ExcludeRasterImage:r.type===x.Occluded?ce.OccludedOnly:ce.Normal;if(c===ce.OccludedOnly&&(this._renderContext.renderOccludedMask=ge),v.OVERLAY_DRAW_DEBUG_TEXTURE&&c!==ce.OccludedOnly)for(let n=0;n<s.numViews;n++)this._setViewParameters(s.extents[n],e,pe),this._drawDebugTexture(e.resolution,ue[e.index]);return this._drapeSourceRenderers.size>0&&this._sortedDrapeSourceRenderers.forAll((({drapeSource:r,renderer:t})=>{if(c===ce.ExcludeRasterImage&&r.drapeSourceType===S.RasterImage)return;const{fullOpacity:l}=r,u=n(l)&&l<1&&i===H.MATERIAL;u&&(this.bindTemporaryFramebuffer(this._rctx,a,d),h.clearSafe(re.COLOR_BUFFER_BIT));for(let i=0;i<s.numViews;i++)this._setViewParameters(s.extents[i],e,pe),t.render(this._renderContext,this._bindParameters);u&&n(this._temporaryFBO)&&(o.bind(h),this.view._stage.renderView.compositingHelper.composite(this._renderContext.bindParameters,this._temporaryFBO.getTexture(),J.PremultipliedAlpha,l,K.OverlayWithTransparency,e.index))})),h.bindFramebuffer(null),o.generateMipMap(),this._renderContext.resetRenderOccludedMask(),!0}bindTemporaryFramebuffer(e,r,t){d(this._temporaryFBO)&&(this._temporaryFBO=new D(e,!1)),this._temporaryFBO.resize(r,t),this._temporaryFBO.bind(e)}async reloadShaders(){await this._shaderTechniqueRepository.reloadAll()}notifyContentChanged(){this.events.emit("content-changed")}intersect(e,r,t,s){let i=0;for(const a of this._drapeSourceRenderers.values()){var o;i=null!=(o=null==a.intersect?void 0:a.intersect(e,r,t,s,i))?o:i}}_updateSortedDrapeSourceRenderers(){if(!this._sortedDrapeSourceRenderersDirty)return;if(this._sortedDrapeSourceRenderersDirty=!1,this._sortedDrapeSourceRenderers.clear(),0===this._drapeSourceRenderers.size)return;const e=this.view.map.allLayers;this._drapeSourceRenderers.forEach(((r,t)=>{const s=e.indexOf(t.layer);this._sortedDrapeSourceRenderers.push(new le(t,r,s<0?1/0:s))})),this._sortedDrapeSourceRenderers.sort(((e,r)=>e.index-r.index))}_setViewParameters(e,r,t){t.viewport[0]=t.viewport[1]=0,t.viewport[2]=t.viewport[3]=r.resolution,y(t.projectionMatrix,0,e[2]-e[0],0,e[3]-e[1],t.near,t.far),R(t.viewMatrix,[-e[0],-e[1],0]),this._bindParameters.camera=t}_updateHasWater(){const e=i(this._drapeSourceRenderers,(e=>e.hasWater));e!==this._hasWater&&(this._hasWater=e,this.events.emit("has-water",e))}_updateHasHighlights(){const e=i(this._drapeSourceRenderers,(e=>e.hasHighlights));e!==this._hasHighlights&&(this._hasHighlights=e,this.events.emit("has-highlights",e))}_updateRendersOccluded(){const e=i(this._drapeSourceRenderers,(e=>e.rendersOccluded));e!==this._rendersOccluded&&(this._rendersOccluded=e,this.events.emit("renders-occluded",e))}_drawDebugTexture(e,r){this._ensureDebugPatternResources(e,e);const t=this._rctx,s=t.bindTechnique(this._debugTextureTechnique);s.setUniform4f("uColor",r[0],r[1],r[2],1),s.bindTexture("tex",this._debugPatternTexture),t.bindVAO(this._quadVAO),t.drawArrays(te.TRIANGLE_STRIP,0,de(this._quadVAO,"geometry"))}_ensureDebugPatternResources(e,r){if(this._debugPatternTexture)return;const t=new Uint8Array(e*r*4);let s=0;for(let o=0;o<r;o++)for(let i=0;i<e;i++){const a=Math.floor(i/10),n=Math.floor(o/10);a<2||n<2||10*a>e-20||10*n>r-20?(t[s++]=255,t[s++]=255,t[s++]=255,t[s++]=255):(t[s++]=255,t[s++]=255,t[s++]=255,t[s++]=1&a&&1&n?1&i^1&o?0:255:1&a^1&n?0:128)}this._debugPatternTexture=new ne(this._rctx,{target:se.TEXTURE_2D,pixelFormat:ie.RGBA,dataType:oe.UNSIGNED_BYTE,samplingMode:ae.NEAREST,width:e,height:r},t);const i=new Y;i.hasAlpha=!0,this._debugTextureTechnique=this._shaderTechniqueRepository.acquire(z,i),this._quadVAO=U(this._rctx)}get test(){return{drapeSourceRenderers:this._drapeSourceRenderers,getDrapeSourceRenderer:e=>this._drapeSourceRenderers.get(e)}}};var ce;e([g()],he.prototype,"_frameTask",void 0),e([g()],he.prototype,"_sortedDrapeSourceRenderersDirty",void 0),e([A()],he.prototype,"_shaderTechniqueRepository",void 0),e([A()],he.prototype,"_stippleTextureRepository",void 0),e([g({constructOnly:!0})],he.prototype,"view",void 0),e([g()],he.prototype,"worldToPCSRatio",void 0),e([g()],he.prototype,"spatialReference",void 0),e([g({type:Boolean,readOnly:!0})],he.prototype,"updating",null),he=e([m("esri.views.3d.terrain.OverlayRenderer")],he),function(e){e[e.Normal=0]="Normal",e[e.OccludedOnly=1]="OccludedOnly",e[e.ExcludeRasterImage=2]="ExcludeRasterImage"}(ce||(ce={}));class le{constructor(e,r,t){this.drapeSource=e,this.renderer=r,this.index=t}}const ue=[[1,.5,.5],[.5,.5,1]],pe=new M;pe.near=1,pe.far=1e4,pe.relativeElevation=null;const _e=-2,ge=L.OccludeAndTransparent;export{_e as DRAPED_Z,ce as DrawPassOption,he as OverlayRenderer,ge as overlayRenderOccludedFlag};
5
+ import{_ as e}from"../../../chunks/tslib.es6.js";import r from"../../../core/Accessor.js";import t from"../../../core/Evented.js";import s from"../../../core/Handles.js";import{someMap as i}from"../../../core/MapUtils.js";import{releaseMaybe as o,disposeMaybe as a,isSome as n,isNone as d,unwrapOr as h}from"../../../core/maybe.js";import c from"../../../core/PooledArray.js";import{watch as l,syncAndInitial as u,on as p}from"../../../core/reactiveUtils.js";import{someSet as _}from"../../../core/SetUtils.js";import{property as g}from"../../../core/accessorSupport/decorators/property.js";import"../../../core/arrayUtils.js";import"../../../core/has.js";import"../../../core/accessorSupport/ensureType.js";import{subclass as m}from"../../../core/accessorSupport/decorators/subclass.js";import{q as y,f as R}from"../../../chunks/mat4.js";import{f as T}from"../../../chunks/vec3f64.js";import{ViewingMode as f}from"../../ViewingMode.js";import{DrapeTargetType as b,DrapeSourceType as S}from"../layers/interfaces.js";import w from"../support/debugFlags.js";import{OverlayIndex as v,RenderTargetType as x}from"./interfaces.js";import{Overlay as O}from"./Overlay.js";import{OverlayFramebufferObject as D}from"./OverlayFramebufferObject.js";import{OverlayRenderTarget as j}from"./OverlayRenderTarget.js";import{ShaderTechniqueRepository as E}from"../webgl-engine/core/shaderTechnique/ShaderTechniqueRepository.js";import{autoDispose as A,AutoDisposableMixin as P}from"../webgl-engine/lib/AutoDisposable.js";import{TransparencyPassType as C,UpdatePolicy as F}from"../webgl-engine/lib/basicInterfaces.js";import{Camera as M}from"../webgl-engine/lib/Camera.js";import{GLMaterialRepository as q}from"../webgl-engine/lib/GLMaterialRepository.js";import{createEmptyDepthTexture as I,createQuadVAO as U}from"../webgl-engine/lib/glUtil3D.js";import{GridLocalOriginFactory as W}from"../webgl-engine/lib/GridLocalOriginFactory.js";import{RenderOccludedFlag as L}from"../webgl-engine/lib/Material.js";import{OverlayRenderContext as V}from"../webgl-engine/lib/RenderContext.js";import{RenderPass as H}from"../webgl-engine/lib/RenderPass.js";import{RenderSlot as B}from"../webgl-engine/lib/RenderSlot.js";import{ShadowMap as N}from"../webgl-engine/lib/ShadowMap.js";import{SortedRenderGeometryRenderer as k}from"../webgl-engine/lib/SortedRenderGeometryRenderer.js";import{SSAOHelper as G}from"../webgl-engine/lib/SSAOHelper.js";import{TextureTechnique as z}from"../webgl-engine/lib/TextureTechnique.js";import{TextureTechniqueConfiguration as Y}from"../webgl-engine/lib/TextureTechniqueConfiguration.js";import{AmbientLight as X}from"../webgl-engine/lighting/Lightsources.js";import{StippleTextureRepository as Q}from"../webgl-engine/materials/StippleTextureRepository.js";import{AlphaMode as J,CompositingFunction as K}from"../webgl-engine/shaders/CompositingTechniqueConfiguration.js";import{ImmediateTask as Z,TaskPriority as $,noBudget as ee}from"../../support/Scheduler.js";import{ClearBufferBit as re,PrimitiveType as te,TextureType as se,PixelFormat as ie,PixelType as oe,TextureSamplingMode as ae}from"../../webgl/enums.js";import{Texture as ne}from"../../webgl/Texture.js";import{vertexCount as de}from"../../webgl/Util.js";let he=class extends(P(r)){constructor(e){super(e),this._overlays=null,this._overlayRenderTarget=null,this._hasHighlights=!1,this._rendersOccluded=!1,this._hasWater=!1,this._handles=new s,this._frameTask=Z,this._drapeSourceRenderers=new Map,this._sortedDrapeSourceRenderersDirty=!1,this._sortedDrapeSourceRenderers=new c,this._rctx=null,this._materialRepository=null,this._screenToWorldRatio=1,this._localOriginFactory=null,this.worldToPCSRatio=1,this.events=new t,this.longitudeCyclical=null}get _bindParameters(){return this._renderContext.bindParameters}get rctx(){return this._rctx}get materialRepository(){return this._materialRepository}get screenToWorldRatio(){return this._screenToWorldRatio}get localOriginFactory(){return this._localOriginFactory}initialize(){const e=this.view._stage.renderView;this._rctx=e.renderingContext;const r=e.waterTextureRepository;this._stippleTextureRepository=new Q(e.renderingContext),this._shaderTechniqueRepository=new E({rctx:this._rctx,viewingMode:f.Local,stippleTextureRepository:this._stippleTextureRepository,waterTextureRepository:r}),this._renderContext=new V(this._rctx,new N(this._rctx,this.view.state.viewingMode),new G(this._shaderTechniqueRepository,this._rctx,(()=>{}))),this._handles.add([l((()=>r.updating),(()=>this.events.emit("content-changed")),u),l((()=>this.spatialReference),(e=>this._localOriginFactory=new W(e)),u),p((()=>this.view.allLayerViews),"after-changes",(()=>this._sortedDrapeSourceRenderersDirty=!0))]),this._materialRepository=new q(e.textureRepository,this._shaderTechniqueRepository,(e=>{(e.renderOccluded&ge)>0!==this._rendersOccluded&&this._updateRendersOccluded(),this.events.emit("content-changed"),this.notifyChange("updating")}),(()=>this.events.emit("content-changed"))),this._bindParameters.slot=B.DRAPED_MATERIAL,this._bindParameters.highlightDepthTexture=I(this._rctx),this._bindParameters.camera=pe,this._bindParameters.transparencyPassType=C.NONE,this._bindParameters.lighting.groundLightingFactor=1,this._bindParameters.lighting.globalFactor=0,this._bindParameters.lighting.set([new X(T(1,1,1))]),this._frameTask=this.view.resourceController.scheduler.registerTask($.STAGE,this),this._handles.add(this._frameTask)}dispose(){this._handles.destroy(),this._drapeSourceRenderers.forEach((e=>e.destroy())),this._drapeSourceRenderers.clear(),this._debugTextureTechnique=o(this._debugTextureTechnique),this._debugPatternTexture=a(this._debugPatternTexture),this._bindParameters.highlightDepthTexture=a(this._bindParameters.highlightDepthTexture),this._shaderTechniqueRepository=a(this._shaderTechniqueRepository),this._temporaryFBO=a(this._temporaryFBO),this._quadVAO=a(this._quadVAO),this.disposeOverlays()}get updating(){return this._sortedDrapeSourceRenderersDirty||this._frameTask.updating||i(this._drapeSourceRenderers,(e=>e.updating))}get hasOverlays(){return n(this._overlays)&&n(this._overlayRenderTarget)}get gpuMemoryUsage(){return n(this._overlayRenderTarget)?this._overlayRenderTarget.gpuMemoryUsage:0}createGeometryDrapeSourceRenderer(e){return this.createDrapeSourceRenderer(e,k)}createDrapeSourceRenderer(e,r,t){const s=this._drapeSourceRenderers.get(e);n(s)&&s.destroy();const i=new r({...t,rendererContext:this,drapeSource:e});return this._drapeSourceRenderers.set(e,i),this._sortedDrapeSourceRenderersDirty=!0,"fullOpacity"in e&&this._handles.add(l((()=>e.fullOpacity),(()=>this.events.emit("content-changed"))),e),i}removeDrapeSourceRenderer(e){if(d(e))return;const r=this._drapeSourceRenderers.get(e);d(r)||(this._sortedDrapeSourceRenderersDirty=!0,this._drapeSourceRenderers.delete(e),this._handles.remove(e),r.destroy())}collectUnusedRenderTargetMemory(e){let r=!1;if(n(this._overlayRenderTarget))for(const t of this._overlayRenderTarget.renderTargets){const s=this.overlays[0].validTargets[t.type]||!this.overlays[1].validTargets[t.type];r=this._overlayRenderTarget.validateUsageForTarget(s,t,e)||r}return r}get overlays(){return h(this._overlays,[])}ensureDrapeTargets(e){n(this._overlays)&&this._overlays.forEach((r=>{r.hasTargetWithoutRasterImage=_(e,(e=>e.drapeTargetType===b.WithoutRasterImage))}))}ensureDrapeSources(e){n(this._overlays)&&this._overlays.forEach((r=>{r.hasDrapedFeatureSource=_(e,(e=>e.drapeSourceType===S.Features)),r.hasDrapedRasterSource=_(e,(e=>e.drapeSourceType===S.RasterImage))}))}ensureOverlays(e,r){d(this._overlays)&&(this._overlayRenderTarget=new j(this._rctx),this._overlays=[new O(v.INNER,this._overlayRenderTarget),new O(v.OUTER,this._overlayRenderTarget)]),this.ensureDrapeTargets(e),this.ensureDrapeSources(r)}disposeOverlays(){this._overlays=null,this._overlayRenderTarget=a(this._overlayRenderTarget),this.events.emit("textures-disposed")}get running(){return this.updating}runTask(e,r=(()=>!0)){this._frameTask.processQueue(e),e.done||this._processDrapeSources(e,r)}_processDrapeSources(e,r){let t=!1;for(const[s,i]of this._drapeSourceRenderers){if(e.done)break;(s.destroyed||r(s))&&(i.commitChanges()&&(t=!0,e.madeProgress()))}this._updateSortedDrapeSourceRenderers(),t&&(n(this._overlays)&&0===this._drapeSourceRenderers.size&&this.disposeOverlays(),this.notifyChange("updating"),this.events.emit("content-changed"),this._updateHasHighlights(),this._updateRendersOccluded(),this._updateHasWater())}processSyncDrapeSources(){this._processDrapeSources(ee,(e=>e.updatePolicy===F.SYNC))}isEmpty(){let e=!0;for(const r of this._drapeSourceRenderers.values())if(e=e&&r.isEmpty,!e)break;return e&&!w.OVERLAY_DRAW_DEBUG_TEXTURE}get hasHighlights(){return this._hasHighlights}get hasWater(){return this._hasWater}get rendersOccluded(){return this._rendersOccluded}updateAnimation(e){let r=!1;return this._drapeSourceRenderers.forEach((t=>r=t.updateAnimation(e)||r)),r}updateDrapeSourceOrder(){this._sortedDrapeSourceRenderersDirty=!0}drawTarget(e,r,t){const s=e.canvasGeometries;if(0===s.numViews)return!1;this._screenToWorldRatio=t*e.mapUnitsPerPixel;const i=r.renderPass;if(this.isEmpty()||i===H.MATERIAL_HIGHLIGHT&&!this.hasHighlights||i===H.MATERIAL_NORMAL&&!this.hasWater||!e.hasSomeSizedView())return!1;const o=r.fbo;if(!o.isValid())return!1;const a=2*e.resolution,d=e.resolution;o.resize(a,d);const h=this._rctx;pe.pixelRatio=e.pixelRatio*t,this._renderContext.pass=i,this._bindParameters.screenToWorldRatio=this._screenToWorldRatio,this._bindParameters.screenToPCSRatio=this._screenToWorldRatio*this.worldToPCSRatio,this._bindParameters.slot=i===H.MATERIAL_NORMAL?B.DRAPED_WATER:B.DRAPED_MATERIAL,e.applyViewport(this._rctx),o.bind(h),e.index===v.INNER&&(h.setClearColor(0,0,0,0),h.clearSafe(re.COLOR_BUFFER_BIT));const c=r.type===x.ColorNoRasterImage?ce.ExcludeRasterImage:r.type===x.Occluded?ce.OccludedOnly:ce.Normal;if(c===ce.OccludedOnly&&(this._renderContext.renderOccludedMask=ge),w.OVERLAY_DRAW_DEBUG_TEXTURE&&c!==ce.OccludedOnly)for(let n=0;n<s.numViews;n++)this._setViewParameters(s.extents[n],e,pe),this._drawDebugTexture(e.resolution,ue[e.index]);return this._drapeSourceRenderers.size>0&&this._sortedDrapeSourceRenderers.forAll((({drapeSource:r,renderer:t})=>{if(c===ce.ExcludeRasterImage&&r.drapeSourceType===S.RasterImage)return;const{fullOpacity:l}=r,u=n(l)&&l<1&&i===H.MATERIAL;u&&(this.bindTemporaryFramebuffer(this._rctx,a,d),h.clearSafe(re.COLOR_BUFFER_BIT));for(let i=0;i<s.numViews;i++)this._setViewParameters(s.extents[i],e,pe),t.render(this._renderContext,this._bindParameters);u&&n(this._temporaryFBO)&&(o.bind(h),this.view._stage.renderView.compositingHelper.composite(this._renderContext.bindParameters,this._temporaryFBO.getTexture(),J.PremultipliedAlpha,l,K.OverlayWithTransparency,e.index))})),h.bindFramebuffer(null),o.generateMipMap(),this._renderContext.resetRenderOccludedMask(),!0}bindTemporaryFramebuffer(e,r,t){d(this._temporaryFBO)&&(this._temporaryFBO=new D(e,!1)),this._temporaryFBO.resize(r,t),this._temporaryFBO.bind(e)}async reloadShaders(){await this._shaderTechniqueRepository.reloadAll()}notifyContentChanged(){this.events.emit("content-changed")}intersect(e,r,t,s){let i=0;for(const o of this._drapeSourceRenderers.values())i=o.intersect?.(e,r,t,s,i)??i}_updateSortedDrapeSourceRenderers(){if(!this._sortedDrapeSourceRenderersDirty)return;if(this._sortedDrapeSourceRenderersDirty=!1,this._sortedDrapeSourceRenderers.clear(),0===this._drapeSourceRenderers.size)return;const e=this.view.map.allLayers;this._drapeSourceRenderers.forEach(((r,t)=>{const s=e.indexOf(t.layer);this._sortedDrapeSourceRenderers.push(new le(t,r,s<0?1/0:s))})),this._sortedDrapeSourceRenderers.sort(((e,r)=>e.index-r.index))}_setViewParameters(e,r,t){t.viewport[0]=t.viewport[1]=0,t.viewport[2]=t.viewport[3]=r.resolution,y(t.projectionMatrix,0,e[2]-e[0],0,e[3]-e[1],t.near,t.far),R(t.viewMatrix,[-e[0],-e[1],0]),this._bindParameters.camera=t}_updateHasWater(){const e=i(this._drapeSourceRenderers,(e=>e.hasWater));e!==this._hasWater&&(this._hasWater=e,this.events.emit("has-water",e))}_updateHasHighlights(){const e=i(this._drapeSourceRenderers,(e=>e.hasHighlights));e!==this._hasHighlights&&(this._hasHighlights=e,this.events.emit("has-highlights",e))}_updateRendersOccluded(){const e=i(this._drapeSourceRenderers,(e=>e.rendersOccluded));e!==this._rendersOccluded&&(this._rendersOccluded=e,this.events.emit("renders-occluded",e))}_drawDebugTexture(e,r){this._ensureDebugPatternResources(e,e);const t=this._rctx,s=t.bindTechnique(this._debugTextureTechnique);s.setUniform4f("uColor",r[0],r[1],r[2],1),s.bindTexture("tex",this._debugPatternTexture),t.bindVAO(this._quadVAO),t.drawArrays(te.TRIANGLE_STRIP,0,de(this._quadVAO,"geometry"))}_ensureDebugPatternResources(e,r){if(this._debugPatternTexture)return;const t=new Uint8Array(e*r*4);let s=0;for(let o=0;o<r;o++)for(let i=0;i<e;i++){const a=Math.floor(i/10),n=Math.floor(o/10);a<2||n<2||10*a>e-20||10*n>r-20?(t[s++]=255,t[s++]=255,t[s++]=255,t[s++]=255):(t[s++]=255,t[s++]=255,t[s++]=255,t[s++]=1&a&&1&n?1&i^1&o?0:255:1&a^1&n?0:128)}this._debugPatternTexture=new ne(this._rctx,{target:se.TEXTURE_2D,pixelFormat:ie.RGBA,dataType:oe.UNSIGNED_BYTE,samplingMode:ae.NEAREST,width:e,height:r},t);const i=new Y;i.hasAlpha=!0,this._debugTextureTechnique=this._shaderTechniqueRepository.acquire(z,i),this._quadVAO=U(this._rctx)}get test(){return{drapeSourceRenderers:this._drapeSourceRenderers,getDrapeSourceRenderer:e=>this._drapeSourceRenderers.get(e)}}};var ce;e([g()],he.prototype,"_frameTask",void 0),e([g()],he.prototype,"_sortedDrapeSourceRenderersDirty",void 0),e([A()],he.prototype,"_shaderTechniqueRepository",void 0),e([A()],he.prototype,"_stippleTextureRepository",void 0),e([g({constructOnly:!0})],he.prototype,"view",void 0),e([g()],he.prototype,"worldToPCSRatio",void 0),e([g()],he.prototype,"spatialReference",void 0),e([g({type:Boolean,readOnly:!0})],he.prototype,"updating",null),he=e([m("esri.views.3d.terrain.OverlayRenderer")],he),function(e){e[e.Normal=0]="Normal",e[e.OccludedOnly=1]="OccludedOnly",e[e.ExcludeRasterImage=2]="ExcludeRasterImage"}(ce||(ce={}));class le{constructor(e,r,t){this.drapeSource=e,this.renderer=r,this.index=t}}const ue=[[1,.5,.5],[.5,.5,1]],pe=new M;pe.near=1,pe.far=1e4,pe.relativeElevation=null;const _e=-2,ge=L.OccludeAndTransparent;export{_e as DRAPED_Z,ce as DrawPassOption,he as OverlayRenderer,ge as overlayRenderOccludedFlag};
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.24/esri/copyright.txt for details.
4
4
  */
5
- import{h as t}from"../../../chunks/vec3.js";import{f as e,c as s}from"../../../chunks/vec3f64.js";import{c as r}from"../../../chunks/vec4f64.js";import{empty as i}from"../../../geometry/support/aaBoundingBox.js";import{BufferPool as n}from"../../../geometry/support/buffer/BufferPool.js";import{newLayout as o}from"../support/buffer/InterleavedLayout.js";import{GEOMETRY_VERTEX_STRIDE as u}from"./TerrainConst.js";import{internalAssert as l}from"./terrainUtils.js";import{VertexAttribute as f}from"../webgl-engine/lib/VertexAttribute.js";class c{constructor(){this.indices=null,this.vertexAttributes=null,this.boundingBox=i(),this.numSurfaceIndices=0,this.indexCount=0,this.numVerticesPerSide=0,this.uvOffsetAndScale=r(),this.outerEdges=[null,null,null,null],this.innerEdges=[null,null,null,null]}}class h{constructor(t,e,s,r,i){this._buf=t,this._localOrigin=e,this.offset0=s,this.stride=r,this.count=i}getVertexOffset(t){return l(0<=t&&t<this.count),this.offset0+this.stride*t}getVertex(t){const s=this.getVertexOffset(t)*u;return e(this._buf[s+0]+this._localOrigin[0],this._buf[s+1]+this._localOrigin[1],this._buf[s+2]+this._localOrigin[2])}setVertex(t,e){const s=this.getVertexOffset(t)*u;for(let r=0;r<3;++r)this._buf[s+r]=e[r]-this._localOrigin[r]}getValue(e){const r=e*(this.count-1);l(0<=r&&r<=this.count-1);const i=Math.floor(r),n=Math.ceil(r),o=r-i,u=this.getVertex(i),f=this.getVertex(n),c=s();return t(c,u,f,o)}}const a=o().vec3f(f.POSITION).vec2f(f.UV0),m=new n((t=>a.createBuffer(t)),(t=>t.count));function g(){m.clear()}function p(t){return m.acquire(t)}function x(t){m.release(t.vertexAttributes),t.vertexAttributes=null,t.indices=null}export{h as EdgeDescriptor,c as PatchGeometry,p as acquireTerrainAttributes,g as clearCaches,x as releaseGeometry};
5
+ import{h as t}from"../../../chunks/vec3.js";import{f as e,c as s}from"../../../chunks/vec3f64.js";import{c as i}from"../../../chunks/vec4f64.js";import{empty as r}from"../../../geometry/support/aaBoundingBox.js";import{BufferPool as n}from"../../../geometry/support/buffer/BufferPool.js";import{newLayout as o}from"../support/buffer/InterleavedLayout.js";import{GEOMETRY_VERTEX_STRIDE as u}from"./TerrainConst.js";import{internalAssert as f}from"./terrainUtils.js";import{VertexAttribute as l}from"../webgl-engine/lib/VertexAttribute.js";class h{constructor(){this.indices=null,this.vertexAttributes=null,this.boundingBox=r(),this.indexCount=0,this.numVerticesPerSide=0,this.uvOffsetAndScale=i(),this.outerEdges=[null,null,null,null],this.innerEdges=[null,null,null,null]}}class c{constructor(t,e,s,i,r){this._buf=t,this._localOrigin=e,this.offset0=s,this.stride=i,this.count=r}getVertexOffset(t){return f(0<=t&&t<this.count),this.offset0+this.stride*t}getVertex(t){const s=this.getVertexOffset(t)*u;return e(this._buf[s+0]+this._localOrigin[0],this._buf[s+1]+this._localOrigin[1],this._buf[s+2]+this._localOrigin[2])}setVertex(t,e,s,i){const r=this.getVertexOffset(t)*u;for(let n=0;n<3;++n)this._buf[r+n]=e[n]-this._localOrigin[n];this._buf[r+3]=s,this._buf[r+4]=i}setVertexRaw(t,e,s,i,r,n){const o=this.getVertexOffset(t)*u;this._buf[o+0]=e,this._buf[o+1]=s,this._buf[o+2]=i,this._buf[o+3]=r,this._buf[o+4]=n}getValue(e){const i=e*(this.count-1);f(0<=i&&i<=this.count-1);const r=Math.floor(i),n=Math.ceil(i),o=i-r,u=this.getVertex(r),l=this.getVertex(n),h=s();return t(h,u,l,o)}}const a=o().vec3f(l.POSITION).vec2f(l.UV0),b=new n((t=>a.createBuffer(t)),(t=>t.count));function g(){b.clear()}function m(t){return b.acquire(t)}function x(t){b.release(t.vertexAttributes),t.vertexAttributes=null,t.indices=null}export{c as EdgeDescriptor,h as PatchGeometry,m as acquireTerrainAttributes,g as clearCaches,x as releaseGeometry};
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.24/esri/copyright.txt for details.
4
4
  */
5
- import"../../../core/mathUtils.js";import{isSome as t}from"../../../core/maybe.js";import{s as e}from"../../../chunks/vec4.js";import{empty as o}from"../../../geometry/support/aaBoundingBox.js";import{earth as n}from"../../../geometry/support/Ellipsoid.js";import{sampleElevationOr0 as r}from"./ElevationData.js";import{neighborEdgeIndices as s}from"./GeometryState.js";import{PatchType as i}from"./interfaces.js";import{acquireTerrainAttributes as a,EdgeDescriptor as c}from"./PatchGeometry.js";import"../../../core/arrayUtils.js";import"../../../core/has.js";import"../../../geometry/Extent.js";import"../support/buffer/glUtil.js";import"./LayerClass.js";import{internalAssert as l}from"./terrainUtils.js";import"./TextureFader.js";import"./Tile.js";import"../../../core/HeapSort.js";import"../webgl-engine/lib/DefaultVertexAttributeLocations.js";import"../../webgl/BufferObject.js";import"../../webgl/VertexArrayObject.js";import{MAX_PATCH_TESSELATION as u,GEOMETRY_VERTEX_STRIDE as f}from"./TerrainConst.js";class m{constructor(t,e){this.values=t,this.numSurfaceIndices=e}}const d=65536;function h(t,s,u,m,d,h,M,O){const S=d[0],b=d[1],y=d[2],P=d[3],E=t.numVerticesPerSide,A=E-1,w=(E-2)**2,V=h&&(O===i.HAS_SOUTH_POLE||O===i.HAS_BOTH_POLES),B=h&&(O===i.HAS_NORTH_POLE||O===i.HAS_BOTH_POLES),D=6,I=((V?1:0)+(B?1:0))*D*(A+1),R=m.tile,H=t.neighborData,T=H.edges,_=H.edgeResolutions.reduce(((t,e)=>t+e+1),0),U=a(w+I+_),L=U.position.typedBuffer,C=U.uv0.typedBuffer,G=m.geometryInfo,k=G.boundingBox;o(k);const F=s[2]-s[0],N=s[3]-s[1],q=y-S,z=P-b,J=u[0],K=u[1],Q=u[2];for(let e=0;e<=A;e++){const t=S+e/A*q;v[e]=Math.sin(t),j[e]=Math.cos(t)}let W=0;const X=t.samplerData,Y=H.cornerElevations;R.level;const Z=h?(t,e)=>Math.PI/2-2*Math.atan(Math.exp(-t/n.radius)):(t,e)=>b+e*z;(()=>{for(let t=1;t<=A-1;t++){const e=t/A,o=s[1]+e*N,n=Z(o,e),i=Math.cos(n),a=Math.sin(n);for(let t=1;t<=A-1;t++){const n=t/A,c=s[0]+n*F,l=v[t],u=j[t],m=M.radius+r(c,o,X),d=u*i*m-J,h=l*i*m-K,p=a*m-Q;x(d,h,p,k);const g=f*W;L[g+0]=d,L[g+1]=h,L[g+2]=p,C[g+0]=n,C[g+1]=e,++W}}})(),G.numVerticesPerSide=t.numVerticesPerSide,G.vertexAttributes=U,e(G.uvOffsetAndScale,0,0,1,1);const $=m.localOrigin;p(G,$);(()=>{const t=G.vertexAttributes.position.typedBuffer,e=e=>{var o,i,a;const l=T[e],u=H.edgeResolutions[e],m=1===e||3===e,d=(1===e?u:0)/u,p=(0===e?u:0)/u,g=s[0]+d*F,v=s[1]+p*N,j=S+d*q,O=h?Math.PI/2-2*Math.atan(Math.exp(-v/n.radius)):v*Math.PI/180,E=0===e?Y[3]:1===e?Y[1]:Y[2],A=0===e||1===e?Y[0]:2===e?Y[1]:Y[3],w=u+1,V=null==l?void 0:l.neighborTile,B=R.level-(null!=(o=null==V?void 0:V.level)?o:R.level),D=2**B,I=u*D,_=(t=>{if(!t)return 0;const e=u,o=m?0:1,n=t.lij[o+1]*D,r=R.lij[o+1]-n;return(m?D-1-r:r)*e})(V),U=null==V?void 0:V.extent,z=(e+2)%4,Z=U?1===z?U[2]:U[0]:g,tt=U?0===z?U[3]:U[1]:v;let et=Z,ot=tt;const nt=null==V||null==(i=V.renderData)||null==(a=i.geometryState)?void 0:a.samplerData,rt=0===B?(t,e,o)=>.5*(o+r(t,e,X)):(t,e,o)=>o,st=(t,e,o)=>{const n=(_+t)/I;ot=U[1]*(1-n)+U[3]*n;const s=r(et,ot,nt);return rt(e,o,s)},it=(t,e,o)=>{const n=(_+t)/I;et=U[0]*(1-n)+U[2]*n;const s=r(et,ot,nt);return rt(e,o,s)},at=V?m?st:it:(t,e,o)=>r(e,o,X),ct=(t,e,o)=>0===t?E:t===w-1?A:at(t,e,o),lt=W;let ut=d,ft=g,mt=j,dt=p,ht=v,pt=O,Mt=Math.sin(mt),gt=Math.cos(mt),xt=Math.cos(pt),vt=Math.sin(pt);const jt=m?h?()=>Math.PI/2-2*Math.atan(Math.exp(-ht/n.radius)):()=>b*(1-dt)+P*dt:()=>O,Ot=m?t=>{dt=t,ht=s[1]*(1-t)+s[3]*t,pt=jt(),xt=Math.cos(pt),vt=Math.sin(pt)}:t=>{ut=t,ft=s[0]*(1-t)+s[2]*t,mt=S*(1-ut)+y*ut,Mt=Math.sin(mt),gt=Math.cos(mt)};for(let t=0;t<w;++t){Ot(t/u);const e=ct(t,ft,ht),o=M.radius+e,n=gt*xt*o-J,r=Mt*xt*o-K,s=vt*o-Q;x(n,r,s,k);const i=f*W;L[i+0]=n,L[i+1]=r,L[i+2]=s,C[i+0]=ut,C[i+1]=dt,++W}G.outerEdges[e]=new c(t,$,lt,1,w)};for(let o=0;o<4;++o)e(o)})();const tt=[],et=(t,e)=>{const o=e*E;x(-J,-K,-Q+t*M.radius,k),tt.push({connectedRowOffset:o,connectedOuterEdgeOffset:1===t?0:2,rowOffset:W,latitudeResolution:D});const r=-1===t?s[1]:s[3],i=Math.PI/2-2*Math.atan(Math.exp(-r/n.radius)),a=t*Math.PI/2-i,c=.99*(1===t?1:-1);for(let n=1;n<=D;++n){const t=i+a*(n/D),e=Math.cos(t),o=Math.sin(t);for(let n=0;n<=A;n++){const t=n/A,r=v[n],s=j[n],i=M.radius+0,a=s*e*i-J,l=r*e*i-K,u=o*i-Q;x(a,l,u,k);const m=f*W;L[m+0]=a,L[m+1]=l,L[m+2]=u,C[m+0]=t,C[m+1]=c,++W}}};V&&et(-1,0),B&&et(1,A),g(G,t.numVerticesPerSide,tt,[0,E-1],[0,E-1],t.wireframe),m.intersectionData=null;for(let e=0;e<4;++e)l(G.outerEdges[e].count===H.edgeResolutions[e]+1)}function p(t,e){const o=t.numVerticesPerSide-2;for(let n=0;n<4;++n){const r=0===n||2===n,s=(0===n?o-1:0)*o+(1===n?o-1:0),i=(r?0:1)*o+(r?1:0),a=t.vertexAttributes.position.typedBuffer;t.innerEdges[n]=new c(a,e,s,i,o)}}function M(s,i,l,u,m,d){const h=i[0],M=i[1],v=i[2]-h,j=i[3]-M,O=s.clippingArea,S=t(O)?Math.max(0,(O[0]-i[0])/v):0,b=t(O)?Math.max(0,(O[1]-i[1])/j):0,y=t(O)?Math.min(1,(O[2]-i[0])/v):1,P=t(O)?Math.min(1,(O[3]-i[1])/j):1,E=y>S?1/(y-S):1,A=P>b?1/(P-b):1,w=-S*E,V=-b*A,B=s.numVerticesPerSide,D=B-1,I=(B-2)**2,R=s.neighborData.edgeResolutions.reduce(((t,e)=>t+e+1),0),H=a(I+R),T=H.position.typedBuffer,_=H.uv0.typedBuffer,U=d.geometryInfo,L=U.boundingBox;o(L);let C=0;const G=n.radius,k=s.samplerData,F=t(O)?O:[-1/0,-1/0,1/0,1/0];Math.max(i[0],F[0]),Math.max(i[1],F[1]),Math.min(i[2],F[2]),Math.min(i[3],F[3]);const N=t(O)?[i[3]>O[3],i[2]>O[2],i[1]<O[1],i[0]<O[0]]:[!1,!1,!1,!1],q=d.tile.level,z=s.neighborData.edges,J=s.neighborData.cornerElevations;let K=V,Q=M;const W=t(O)?()=>{Q<O[1]?(Q=O[1],K=0):Q>O[3]&&(Q=O[3],K=1)}:()=>{};let X=w,Y=h;const Z=t(O)?()=>{Y<O[0]?(Y=O[0],X=0):Y>O[2]&&(Y=O[2],X=1)}:()=>{};!t(O)||(Math.max(Math.floor(D*(O[1]-M)/j),0),Math.min(Math.ceil(D*(O[3]-M)/j),B-1)),!t(O)||(Math.max(Math.floor(D*(O[0]-h)/v),0),Math.min(Math.ceil(D*(O[2]-h)/v),B-1));const $=l[0],tt=l[1],et=l[2],ot=m?t=>(Math.PI/2-2*Math.atan(Math.exp(-t/G)))*G-tt:t=>t*u-tt;(()=>{for(let t=1;t<=D-1;t++){const e=t/D;K=V+e*A,Q=M+e*j,W();const o=Q,n=ot(o);for(let t=1;t<=D-1;t++){const e=t/D;X=w+e*E,Y=h+e*v,Z();const s=Y,i=r(s,o,k),a=s*u-$,c=i-et;x(a,n,c,L);const l=f*C;T[l+0]=a,T[l+1]=n,T[l+2]=c,_[l+0]=X,_[l+1]=K,++C}}})(),U.numVerticesPerSide=s.numVerticesPerSide,U.vertexAttributes=H,e(d.geometryInfo.uvOffsetAndScale,S,b,y-S,P-b),p(U,d.localOrigin);{const e=s.neighborData,o=U.vertexAttributes.position.typedBuffer,n=d.localOrigin,a=s=>{const a=z[s],l=e.edgeResolutions[s],m=1===s||3===s;let d=1===s?l:0,h=0===s?l:0;const p=m?0:1,M=m?1:0,g=d/l,O=h/l;X=w+g*E,K=V+O*A,Y=i[0]+g*v,Q=i[1]+O*j,Z(),W();const S=l+1,b=C,y=J[0===s?3:1===s?1:2],P=1-(1&s),B=N[3-(1&s)],D=N[P],I=J[0===s||1===s?0:2===s?1:3],R=a,H=t(R)?(t,e)=>{const o=r(t,e,R.neighborSamplerData);return R.neighborTile.level===q?.5*(o+r(t,e,k)):o}:(t,e)=>r(t,e,k),G=N[s]?(t,e,o)=>r(e,o,k):(t,e,o)=>0!==t||B?t!==l||D?H(e,o):I:y,F=m?t=>{K=V+t*A,Q=i[1]*(1-t)+i[3]*t,W()}:t=>{X=w+t*E,Y=i[0]*(1-t)+i[2]*t,Z()};for(let t=0;t<S;++t){F(t/l);const e=Y,o=Q,n=G(t,e,o),r=e*u-$,s=ot(o),i=n-et;x(r,s,i,L);const a=f*C;T[a+0]=r,T[a+1]=s,T[a+2]=i,_[a+0]=X,_[a+1]=K,++C,d+=p,h+=M}U.outerEdges[s]=new c(o,n,b,1,S)};(()=>{for(let t=0;t<4;++t)a(t)})()}g(U,s.numVerticesPerSide,[],[0,B-1],[0,B-1],s.wireframe),d.intersectionData=null}function g(t,e,o,n,r,i){const a=e-1,c=t.vertexAttributes.count,l=2*(Math.min(e-2,n[1])-Math.max(1,n[0]))*(Math.min(e-2,r[1])-Math.max(1,r[0])),u=s.map(((t,o)=>0===o&&r[1]<e-2||1===o&&n[1]<e-2||2===o&&r[0]>1||3===o&&n[0]>1)),f=3*(l+t.outerEdges.reduce(((t,e,o)=>t+(u[o]?0:a-2+e.count-1)),0)+o.reduce(((t,e)=>t+a*(2*(e.latitudeResolution-1)+1)),0))*(i?2:1),h=new(c>d?Uint32Array:Uint16Array)(f);let p=0;const M=i?(t,e,o)=>{h[p++]=t,h[p++]=e,h[p++]=e,h[p++]=o,h[p++]=o,h[p++]=t}:(t,e,o)=>{h[p++]=t,h[p++]=e,h[p++]=o},g=e-2,x=a-2;(()=>{for(let t=Math.max(r[0],1)-1;t<Math.min(r[1],e-2)-1;++t)for(let o=Math.max(n[0],1)-1;o<Math.min(n[1],e-2)-1;++o){const e=t*g+o,n=e+1,r=n+g,s=r-1;M(e,n,r),M(r,s,e)}})();(()=>{for(let e=0;e<4;++e){if(u[e])continue;const o=t.outerEdges[e],n=t.innerEdges[e];let r=0,s=0;const i=o.count,c=n.count;o.count;const l=1===e||2===e?(t,e,o)=>M(t,e,o):(t,e,o)=>M(t,o,e);for(;r<i-1||s<c-1;){const t=n.getVertexOffset(s),e=o.getVertexOffset(r),u=r<i-1,f=s<c-1,m=u?0+a*(r+.5)/(i-1):0,d=f?1+x*(s+.5)/(c-1):0;if(u&&(!f||m<=d)){++r;l(t,e,o.getVertexOffset(r))}else{++s;l(t,e,n.getVertexOffset(s))}}}})();const v=o=>{let n=t.outerEdges[o.connectedOuterEdgeOffset].offset0;for(let t=0;t<o.latitudeResolution;++t){const r=0===t?o.rowOffset:n+e;for(let e=0;e<a;e++)M(n,n+1,r+e),t<o.latitudeResolution-1&&M(n+1,r+e+1,r+e),++n;n=r}};(()=>{o.forEach(v)})();const j=new m(h,f);t.indices=j.values,t.numSurfaceIndices=j.numSurfaceIndices;const O=j.numSurfaceIndices;t.indexCount=O}function x(t,e,o,n){t<n[0]?n[0]=t:t>n[3]&&(n[3]=t),e<n[1]?n[1]=e:e>n[4]&&(n[4]=e),o<n[2]?n[2]=o:o>n[5]&&(n[5]=o)}const v=new Array(u+1),j=new Array(u+1);export{M as createPlanarGlobePatch,h as createSphericalGlobePatch};
5
+ import{clamp as e}from"../../../core/mathUtils.js";import{isSome as t,unwrapOr as n}from"../../../core/maybe.js";import{f as o}from"../../../chunks/vec3f64.js";import{s as r}from"../../../chunks/vec4.js";import{empty as s}from"../../../geometry/support/aaBoundingBox.js";import{sampleElevationOr0 as i}from"./ElevationData.js";import{neighborEdgeIndices as a}from"./GeometryState.js";import{PatchType as c}from"./interfaces.js";import{acquireTerrainAttributes as l,EdgeDescriptor as u}from"./PatchGeometry.js";import"./PatchRenderData.js";import{MAX_PATCH_TESSELATION as f,GEOMETRY_VERTEX_STRIDE as g}from"./TerrainConst.js";import{internalAssert as d}from"./terrainUtils.js";const m=65536;function h(e,t){const n=e.tile,o=n.extent,a=n.extentInRadians,u=e.localOrigin,f=e.geometryState,m=n.surface.isWebMercator,h=a[0],p=a[1],b=a[2],v=a[3],A=f.numVerticesPerSide,D=A-1,B=(A-2)**2,E=m&&(t===c.HAS_SOUTH_POLE||t===c.HAS_BOTH_POLES),P=m&&(t===c.HAS_NORTH_POLE||t===c.HAS_BOTH_POLES),V=6,I=((E?1:0)+(P?1:0))*V*(D+1),j=f.neighborData,w=j.edgeResolutions.reduce(((e,t)=>e+t+1),0),T=l(B+I+w),_=e.geometryInfo;_.numVerticesPerSide=f.numVerticesPerSide,_.vertexAttributes=T,r(_.uvOffsetAndScale,0,0,1,1);const C=T.position.typedBuffer,W=T.uv0.typedBuffer,U=_.boundingBox;s(U);const L=u[0],G=u[1],q=u[2];for(let r=0;r<=D;r++){const e=r/D,t=h*(1-e)+b*e;y[r]=Math.sin(t),O[r]=Math.cos(t)}let z=0;const F=f.samplerData,J=n.ellipsoid.radius,K=N(m,J,p,v);(()=>{for(let e=1;e<=D-1;e++){const t=e/D,n=o[1]*(1-t)+o[3]*t,r=K(n,t),s=Math.cos(r),a=Math.sin(r);for(let e=1;e<=D-1;e++){const r=e/D,c=o[0]*(1-r)+o[2]*r,l=y[e],u=O[e],f=J+i(c,n,F),d=u*s*f-L,m=l*s*f-G,h=a*f-q;S(d,m,h,U);const p=g*z;C[p+0]=d,C[p+1]=m,C[p+2]=h,W[p+0]=r,W[p+1]=t,++z}}})(),M(e,z);(()=>{R(e),H(e)})(),z=B+w;const Q=[],X=(e,t)=>{const n=t*A;S(-L,-G,e*J-q,U),Q.push({connectedRowOffset:n,connectedOuterEdgeOffset:1===e?0:2,rowOffset:z,latitudeResolution:V});const r=k(-1===e?o[1]:o[3],J),s=e*Math.PI/2-r,i=.99*(1===e?1:-1);for(let o=1;o<=V;++o){const e=r+s*(o/V),t=Math.cos(e),n=Math.sin(e);for(let o=0;o<=D;o++){const e=o/D,r=y[o],s=O[o],a=J+0,c=s*t*a-L,l=r*t*a-G,u=n*a-q;S(c,l,u,U);const f=g*z;C[f+0]=c,C[f+1]=l,C[f+2]=u,W[f+0]=e,W[f+1]=i,++z}}};E&&X(-1,0),P&&X(1,D),x(_,f.numVerticesPerSide,Q,[0,A-1],[0,A-1],f.wireframe),e.intersectionData=null;for(let r=0;r<4;++r)d(_.outerEdges[r].count===j.edgeResolutions[r]+1)}function p(n,o){const a=n.tile,c=a.extent,u=n.localOrigin,f=n.geometryState,d=a.surface.isWebMercatorOnPlateeCarree,m=c[0],h=c[1],p=c[2]-m,y=c[3]-h,O=f.clippingArea,b=t(O)?Math.max(0,(O[0]-c[0])/p):0,v=t(O)?Math.max(0,(O[1]-c[1])/y):0,A=t(O)?Math.min(1,(O[2]-c[0])/p):1,B=t(O)?Math.min(1,(O[3]-c[1])/y):1,E=A-b,P=B-v,R=E>0?1/E:1,V=P>0?1/P:1,j=-b*R,w=-v*V,T=f.numVerticesPerSide,H=T-1,_=(T-2)**2+f.neighborData.edgeResolutions.reduce(((e,t)=>e+t+1),0),W=l(_),U=W.position.typedBuffer,L=W.uv0.typedBuffer,k=n.geometryInfo,G=k.boundingBox;s(G);let N=0;const q=a.ellipsoid.radius,z=f.samplerData,F=t(O)?O:[-1/0,-1/0,1/0,1/0],J=[Math.max(c[0],F[0]),Math.max(c[1],F[1]),Math.min(c[2],F[2]),Math.min(c[3],F[3])],K=u[0],Q=u[1],X=u[2],Y=D(d,q,o);(()=>{for(let t=1;t<=H-1;t++){const n=t/H,r=w+n*V,s=e(h+n*y,J[1],J[3]),a=e(r,0,1),c=Y(s)-Q;for(let t=1;t<=H-1;t++){const n=t/H,r=j+n*R,l=e(m+n*p,J[0],J[2]),u=e(r,0,1),f=i(l,s,z),d=l*o-K,h=f-X;S(d,c,h,G);const x=g*N;U[x+0]=d,U[x+1]=c,U[x+2]=h,L[x+0]=u,L[x+1]=a,++N}}})(),k.numVerticesPerSide=f.numVerticesPerSide,k.vertexAttributes=W,r(n.geometryInfo.uvOffsetAndScale,b,v,A-b,B-v),M(n,N);(()=>{I(n,o),C(n,o)})(),N=_,x(k,f.numVerticesPerSide,[],[0,T-1],[0,T-1],f.wireframe),n.intersectionData=null}function x(e,t,n,o,r,s){const i=t-1,c=e.vertexAttributes.count,l=2*(Math.min(t-2,o[1])-Math.max(1,o[0]))*(Math.min(t-2,r[1])-Math.max(1,r[0])),u=a.map(((e,n)=>0===n&&r[1]<t-2||1===n&&o[1]<t-2||2===n&&r[0]>1||3===n&&o[0]>1)),f=3*(l+e.outerEdges.reduce(((e,t,n)=>e+(u[n]?0:i-2+t.count-1)),0)+n.reduce(((e,t)=>e+i*(2*(t.latitudeResolution-1)+1)),0))*(s?2:1),g=new(c>m?Uint32Array:Uint16Array)(f);let d=0;const h=s?(e,t,n)=>{g[d++]=e,g[d++]=t,g[d++]=t,g[d++]=n,g[d++]=n,g[d++]=e}:(e,t,n)=>{g[d++]=e,g[d++]=t,g[d++]=n},p=t-2,x=i-2;(()=>{for(let e=Math.max(r[0],1)-1;e<Math.min(r[1],t-2)-1;++e)for(let n=Math.max(o[0],1)-1;n<Math.min(o[1],t-2)-1;++n){const t=e*p+n,o=t+1,r=o+p,s=r-1;h(t,o,r),h(r,s,t)}})();(()=>{for(let t=0;t<4;++t){if(u[t])continue;const n=e.outerEdges[t],o=e.innerEdges[t];let r=0,s=0;const a=n.count,c=o.count;n.count;const l=1===t||2===t?(e,t,n)=>h(e,t,n):(e,t,n)=>h(e,n,t);for(;r<a-1||s<c-1;){const e=o.getVertexOffset(s),t=n.getVertexOffset(r),u=r<a-1,f=s<c-1,g=u?0+i*(r+.5)/(a-1):0,d=f?1+x*(s+.5)/(c-1):0;if(u&&(!f||g<=d)){++r;l(e,t,n.getVertexOffset(r))}else{++s;l(e,t,o.getVertexOffset(s))}}}})();const M=n=>{let o=e.outerEdges[n.connectedOuterEdgeOffset].offset0;for(let e=0;e<n.latitudeResolution;++e){const r=0===e?n.rowOffset:o+t;for(let t=0;t<i;t++)h(o,o+1,r+t),e<n.latitudeResolution-1&&h(o+1,r+t+1,r+t),++o;o=r}};(()=>{n.forEach(M)})(),e.indices=g,e.indexCount=f}function M(e,t){const n=e.localOrigin,o=e.geometryInfo,r=e.geometryState.neighborData.edgeResolutions,s=o.numVerticesPerSide-2,i=o.vertexAttributes.position.typedBuffer;let a=t;for(let c=0;c<4;++c){{const e=0===c||2===c,t=(0===c?s-1:0)*s+(1===c?s-1:0),r=(e?0:1)*s+(e?1:0);o.innerEdges[c]=new u(i,n,t,r,s)}{const e=a,t=r[c]+1;o.outerEdges[c]=new u(i,n,e,1,t),a+=t}}}function S(e,t,n,o){e<o[0]?o[0]=e:e>o[3]&&(o[3]=e),t<o[1]?o[1]=t:t>o[4]&&(o[4]=t),n<o[2]?o[2]=n:n>o[5]&&(o[5]=n)}const y=new Array(f+1),O=new Array(f+1);function b(e,t,n,r,s){const i=r[0===t?1:3],a=r[0===e?0:2],c=Math.cos(i),l=Math.sin(i),u=Math.sin(a),f=Math.cos(a),g=s+n;return o(f*c*g,u*c*g,l*g)}function v(e,t){return(Math.PI/2-2*Math.atan(Math.exp(-e/t)))*t}function A(e,t){return e*t}function D(e,t,n){return e?e=>v(e,t):e=>A(e,n)}function B(e,t,n,r,s,i){const a=0===e?r[0]:r[2],c=n,l=i(0===t?r[1]:r[3]);return o(a*s,l,c)}function E(e,t){const n=e.geometryInfo,o=n.outerEdges,r=e.geometryState.neighborData.cornerElevations,s=n.boundingBox,i=e.localOrigin,a=(e,n,o,a,c)=>{const l=t(o,a,r[n]);for(let t=0;t<3;++t)l[t]-=i[t];S(l[0],l[1],l[2],s),e.setVertexRaw(c,l[0],l[1],l[2],o,a)};for(let c=0;c<4;++c){const e=o[c];a(e,0===c?3:1===c?1:2,1===c?1:0,0===c?1:0,0);a(e,2===c?1:3===c?3:0,3===c?0:1,2===c?0:1,e.count-1)}}function P(o,r){const s=o.geometryState,a=o.tile,c=a.extent,l=n(s.clippingArea,c),u=o.geometryInfo,f=u.boundingBox,g=u.outerEdges,d=s.neighborData.cornerElevations,m=u.uvOffsetAndScale[0],h=u.uvOffsetAndScale[1],p=u.uvOffsetAndScale[2],x=u.uvOffsetAndScale[3],M=p>0?1/p:1,y=x>0?1/x:1,O=-m*M,b=-h*y,v=a.surface.isWebMercatorOnPlateeCarree,A=D(v,v?a.ellipsoid.radius:0,r),B=s.samplerData,E=s.neighborData.edges,P=o.localOrigin,R=(n,o,s,u,g)=>{const m=c[0]*(1-u)+c[2]*u,h=c[1]*(1-g)+c[3]*g,p=e(m,l[0],l[2]),x=e(h,l[1],l[3]),v=[x===c[3],p===c[2],x===c[1],p===c[0]],D=!v[3]&&!v[1]||!v[0]&&!v[2],R=D?v[0]&&t(E[0])?E[0]:v[1]&&t(E[1])?E[1]:v[2]&&t(E[2])?E[2]:v[3]&&t(E[3])?E[3]:null:null,V=D?R?R.neighborTile.level===a.level?.5*(i(p,x,B)+i(p,x,R.neighborSamplerData)):i(p,x,R.neighborSamplerData):i(p,x,B):d[s],I=p*r-P[0],j=A(x)-P[1],w=V-P[2];S(I,j,w,f);const T=e(O+u*M,0,1),H=e(b+g*y,0,1);n.setVertexRaw(o,I,j,w,T,H)};for(let e=0;e<4;++e){const t=g[e];R(t,0,0===e?3:1===e?1:2,1===e?1:0,0===e?1:0);const n=2===e?1:3===e?3:0,o=3===e?0:1,r=2===e?0:1;R(t,t.count-1,n,o,r)}}function R(e){E(e,((t,n,o)=>b(t,n,o,e.tile.extentInRadians,e.tile.ellipsoid.radius)))}function V(e){R(e);const t=e.vao,n=e.geometryInfo.vertexAttributes;t?.vertexBuffers?.geometry?.setSubData(n.position.typedBuffer)}function I(e,n){const o=e.tile;t(o.renderData.geometryState.clippingArea)?P(e,n):E(e,((t,r,s)=>B(t,r,s,e.tile.extent,n,D(o.surface.isWebMercatorOnPlateeCarree,o.ellipsoid.radius,n))))}function j(e){const t=e.vao,n=e.geometryInfo.vertexAttributes;t?.vertexBuffers?.geometry?.setSubData(n.position.typedBuffer)}function w(e,t){I(e,t),j(e)}function T(e){H(e),j(e)}function H(e){for(let t=0;t<4;++t)_(e,t);R(e)}function _(e,t){const n=e.geometryState,o=n.neighborData,r=o.edges[t],s=o.edgeResolutions[t],a=e.tile;a.level;const c=s,l=1===t||3===t,u=1===t?1:0,f=0===t?1:0,d=a.extent,m=d[2]-d[0],h=d[3]-d[1],p=d[0]+u*m,x=d[1]+f*h,M=a.extentInRadians,y=M[0],O=M[1],b=M[2],v=M[3],A=y*(1-u)+b*u,D=a.ellipsoid.radius,B=N(a.surface.spatialReference.isWebMercator,D,O,v),E=B(x,f),P=r?.neighborTile,R=a.level-(P?.level??a.level),V=2**R,I=c*V,j=(e=>{if(!e)return 0;const t=c,n=l?0:1,o=e.lij[n+1]*V,r=a.lij[n+1]-o;return(l?V-1-r:r)*t})(P),w=P?.extent,T=(t+2)%4,H=w?1===T?w[2]:w[0]:p,_=w?0===T?w[3]:w[1]:x,C=n.samplerData,W=P?.renderData?.geometryState?.samplerData,U=0===R?(e,t,n)=>.5*(n+i(e,t,C)):(e,t,n)=>n;let L=H,k=_;const G=(e,t,n)=>{const o=(j+e)/I;k=w[1]*(1-o)+w[3]*o;const r=i(L,k,W);return U(t,n,r)},q=(e,t,n)=>{const o=(j+e)/I;L=w[0]*(1-o)+w[2]*o;const r=i(L,k,W);return U(t,n,r)},z=P?l?G:q:(e,t,n)=>i(t,n,C),F=(e,t,n)=>z(e,t,n);let J=u,K=p,Q=A,X=f,Y=x,Z=E,$=Math.sin(Q),ee=Math.cos(Q),te=Math.cos(Z),ne=Math.sin(Z);const oe=l?()=>B(Y,X):()=>E,re=l?e=>{X=e,Y=d[1]*(1-e)+d[3]*e,Z=oe(),te=Math.cos(Z),ne=Math.sin(Z)}:e=>{J=e,K=d[0]*(1-e)+d[2]*e,Q=y*(1-J)+b*J,$=Math.sin(Q),ee=Math.cos(Q)},se=e.geometryInfo,ie=se.boundingBox,ae=se.vertexAttributes,ce=ae.position.typedBuffer,le=ae.uv0.typedBuffer;let ue=se.outerEdges[t].getVertexOffset(1);const fe=c+1,ge=e.localOrigin,de=ge[0],me=ge[1],he=ge[2];for(let i=1;i<fe-1;++i){re(i/c);const e=D+F(i,K,Y),t=ee*te*e-de,n=$*te*e-me,o=ne*e-he;S(t,n,o,ie);const r=g*ue;ce[r+0]=t,ce[r+1]=n,ce[r+2]=o,le[r+0]=J,le[r+1]=X,++ue}}function C(e,t){W(e,t),I(e,t),j(e)}function W(e,n){const o=e.geometryState.clippingArea,r=e.tile.extent,s=t(o)&&(r[0]>o[0]||r[2]<o[2]||r[1]>o[1]||r[3]<o[3])?L:U;for(let t=0;t<4;++t)s(e,t,n)}function U(e,n,o){const r=e.geometryState.neighborData,s=r.edges,a=e.tile,c=a.level,l=a.surface,u=s[n],f=r.edgeResolutions[n],g=a.extent,d=e.geometryState,m=f+1,h=u,p=e.localOrigin,x=d.samplerData,M=(e,t)=>i(e,t,x),y=(e,t)=>{const n=i(e,t,h.neighborSamplerData);return h.neighborTile.level===c?.5*(n+i(e,t,x)):n},O=t(h)?y:M,b=(e,t)=>O(e,t),v=e.geometryInfo,A=v.outerEdges[n],B=D(l.isWebMercatorOnPlateeCarree,a.ellipsoid.radius,o),E=v.boundingBox,P=1===n||3===n,R=1===n?g[2]:g[0],V=0===n?g[3]:g[1],I=1===n?1:0,j=0===n?1:0;for(let t=1;t<m-1;++t){const e=t/f,n=P?R:g[0]*(1-e)+g[2]*e,r=P?g[1]*(1-e)+g[3]*e:V,s=P?I:e,i=P?e:j,a=b(n,r),c=n*o-p[0],l=B(r)-p[1],u=a-p[2];S(c,l,u,E),A.setVertexRaw(t,c,l,u,s,i)}}function L(o,r,s){const a=o.geometryState.neighborData,c=a.edges,l=o.tile,u=l.level;l.surface;const f=c[r],g=a.edgeResolutions[r],d=l.extent,m=o.geometryState,h=n(m.clippingArea,[-1/0,-1/0,1/0,1/0]),p=o.geometryInfo,x=p.uvOffsetAndScale[0],M=p.uvOffsetAndScale[1],y=x+p.uvOffsetAndScale[2],O=M+p.uvOffsetAndScale[3],b=y>x?1/(y-x):1,v=O>M?1/(O-M):1,A=-x*b,D=-M*v,B=g+1,E=[d[3]>h[3],d[2]>h[2],d[1]<h[1],d[0]<h[0]],P=f,R=m.samplerData,V=(e,t)=>i(e,t,R),I=P?.neighborTile.level===u,j=(e,t)=>{const n=i(e,t,P.neighborSamplerData);return I?.5*(n+i(e,t,R)):n},w=V,T=t(P)?j:V,H=E[r]?w:T,_=p.outerEdges[r],C=p.boundingBox,W=1===r||3===r,U=e(1===r?d[2]:d[0],h[0],h[2]),L=e(0===r?d[3]:d[1],h[1],h[3]),k=1===r?1:0,G=0===r?1:0,N=o.localOrigin;for(let t=1;t<B-1;++t){const n=t/g,o=W?U:e(d[0]*(1-n)+d[2]*n,h[0],h[2]),r=W?e(d[1]*(1-n)+d[3]*n,h[1],h[3]):L,i=W?k:e(A+n*b,0,1),a=W?e(D+n*v,0,1):G,c=H(o,r),l=o*s-N[0],u=r*s-N[1],f=c-N[2];S(l,u,f,C),_.setVertexRaw(t,l,u,f,i,a)}}function k(e,t){return Math.PI/2-2*Math.atan(Math.exp(-e/t))}function G(e,t,n){return e*(1-n)+t*n}function N(e,t,n,o){return e?(e,n)=>k(e,t):(e,t)=>G(n,o,t)}export{p as createPlanarGlobePatch,h as createSphericalGlobePatch,S as minMaxBoundingBox,R as updateCornerElevationsInBufferSpherical,w as updateCornerElevationsPlanar,V as updateCornerElevationsSpherical,C as updateEdgesElevationsPlanar,T as updateEdgesElevationsSpherical};
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.24/esri/copyright.txt for details.
4
4
  */
5
- import{equals as e}from"../../../core/arrayUtils.js";import{lerp as t}from"../../../core/mathUtils.js";import{isSome as r,isNone as i,mapOr as o}from"../../../core/maybe.js";import{empty as s}from"../../../geometry/support/aaBoundingBox.js";import{fromValues as n}from"../../../geometry/support/aaBoundingRect.js";import"../../../geometry/support/Ellipsoid.js";import{glLayout as a}from"../support/buffer/glUtil.js";import{sampleElevationOr0 as l}from"./ElevationData.js";import{GeometryState as u,neighborEdgeIndices as h,oppositeEdge as m,eps as d,neighborCornerIndices as c,oppositeCorner as g}from"./GeometryState.js";import"./interfaces.js";import{LayerClass as f}from"./LayerClass.js";import{PatchGeometry as p,releaseGeometry as y}from"./PatchGeometry.js";import{internalAssert as x}from"./terrainUtils.js";import{TextureFader as v,ActivationTime as _}from"./TextureFader.js";export{ActivationTime}from"./TextureFader.js";import"./Tile.js";import D from"./TileOverlayData.js";import{fallsWithinLayer as S}from"./tileUtils.js";import{Default3D as b}from"../webgl-engine/lib/DefaultVertexAttributeLocations.js";import{BufferObject as G}from"../../webgl/BufferObject.js";import{VertexArrayObject as T}from"../../webgl/VertexArrayObject.js";class L{constructor(){this.geometryInfo=new p,this.intersectionData=null,this.geometryState=null,this._textureRef=new v((()=>this.tile.surface.textureFadeDuration)),this.overlay=new D,this._geometryStateChangedSinceLastUpdate=!0,this._hasGeometry=!1}init(e){this.tile=e,this.clear();const t=this.geometryInfo;t.indices=null,t.vertexAttributes=null,s(t.boundingBox),t.numSurfaceIndices=0,t.indexCount=0,t.numVerticesPerSide=0,this.intersectionData=null,this.geometryState=new u,this.localOrigin=null,this.overlay.clear()}clear(){const e=this._releaseGeometry();return this.releaseTexture(),this._textureRef.clear(),e}updateGeometryIfChanged(e,t){const r=this.updateGeometryStateAndPrepareForGeometryGeneration(t);this._hasGeometry=!0;return this.updateNeighborDataAndGeometryIfNeeded(r,e)}updateNeighborDataAndGeometryIfNeeded(e=!1,t=this.vao.context){const r=this._updateNeighborData(),i=e||this._geometryStateChangedSinceLastUpdate||r;return i&&(this._updateGeometry(t),this._geometryStateChangedSinceLastUpdate=!1),i}_calculateEdgeResolution(e,t){const o=this.tile,s=this.geometryState.numVerticesPerSide-1;if(!o.surface.isGlobal){const t=o.surface.extent;if(r(t)&&(0===e&&o.extent[3]>t[3]||1===e&&o.extent[2]>t[2]||2===e&&o.extent[1]<t[1]||3===e&&o.extent[0]<t[0]))return s}const n=o.level,a=h[e],l=t||o.findNeighborTile(a,(e=>e.isLoaded||e.level===n));var u;if(!l||l.isLeaf&&!l.isLoaded)return x(i(null==(u=o.surface)?void 0:u.rootTiles)||o.surface.updatingRootTiles||!o.shouldHaveNeighbor(a)),s;if(l.isLoaded){const t=l,r=t.renderData.geometryState,i=n-t.level;if(0===i){const e=r.numVerticesPerSide-1;return Math.max(e,s)}const o=2**i,a=r.neighborData.edgeResolutions[(e+2)%4]/o;return Math.max(1,a)}x(!l.isLeaf);let d=s;return l.forAllSubtreeOnSide(m(a),(e=>e===o||(e.isLoaded?(d=Math.max(d,2**(e.level-n)),!0):(x(!e.isLeaf),!1)))),d}_updateNeighborData(){const e=this.tile,r=t=>t.isLoaded||t.level===e.level,i=e=>e.isLoaded,o=[null,null,null,null],s=[null,null,null,null];(()=>{for(let t=0;t<4;++t){const i=e.findNeighborTile(h[t],r);o[t]=i,s[t]=null!=i&&i.isLoaded?i:null}})();const n=[null,null,null,null];(()=>{for(let t=0;t<4;++t)n[t]=e.findNeighborTile(c[t],i)})();const a=this.geometryState.neighborData;let u=!1;(()=>{for(let t=0;t<4;++t){const r=a.edgeResolutions[t],i=o[t],s=this._calculateEdgeResolution(t,i);a.edgeResolutions[t]=s,r!==s&&(u=!0,i&&i!==e&&!i.isLoaded&&i.level===e.level&&(a.modifiedEdgeResolutions[t]=!0))}})();(()=>{const r=[null,null,null,null],i=(i,o)=>{let s=1/0;for(let t=0;t<4;++t){const o=c[t],n=i[t];if(n){const i=n.findCorner(g(o),(t=>(null==t?void 0:t.isLoaded)||t===e));r[t]=i,s=Math.min(s,i.level)}else r[t]=null}for(let m=0;m<4;++m){const i=r[(m+3)%4],s=r[m];if(i&&i.level<e.level&&i===s){const r=i,s=1==(1&m),n=(e.getNeighborEdgeStartVertexIndex(m,r)+(0===o||1===o&&!s||3===o&&s?1:0))/2**(e.level-r.level),a=s?0===o||1===o?r.extent[0]:r.extent[2]:t(r.extent[0],r.extent[2],n),u=s?t(r.extent[1],r.extent[3],n):0===o||3===o?r.extent[1]:r.extent[3];return l(a,u,r.renderData.geometryState.samplerData)}}let n=0,a=0;for(let e=0;e<4;++e){const t=r[e];if(t&&t.level===s){var u,h;const r=0===e||1===e,i=0===e||3===e,o=t.extent;a+=l(o[r?0:2],o[i?1:3],null==(u=t.renderData)||null==(h=u.geometryState)?void 0:h.samplerData),n++}}return n?a/n:0},o=this.geometryState.neighborData.cornerElevations,a=(e,t)=>{const r=i(t,e);return o[e]!==r&&(o[e]=r,!0)};for(let t=0;t<4;++t){const r=n[t],i=s[t],o=[r,s[(t+1)%4],e,i],l=o.map(((e,r)=>o[(r+4-t)%4])),h=a(t,l);u||(u=h)}})();return(()=>{const t=(t,r)=>{if(null==t||!t.isLoaded||t.lij[0]>e.lij[0])return null;const i=t.renderData.geometryState;return{neighborSamplerData:i.samplerData,neighborEdgeOverlapResolution:i.neighborData.edgeResolutions[r+2],version:i.samplerDataVersion,neighborVerticesPerSide:i.numVerticesPerSide,neighborTile:t}},r=a.edges;for(let o=0;o<4;++o){var i;const n=s[o];n&&(x(null==n?void 0:n.isLoaded),x((null==n?void 0:n.lij[0])<=e.lij[0]));const a=r[o],l=null==a?void 0:a.version,h=t(n,o),m=null!=(i=null==h?void 0:h.version)?i:null,d=null!=a!=(null!=h),c=a&&h&&l!==m,g=a&&h&&(null==a?void 0:a.neighborTile)!==(null==h?void 0:h.neighborTile),f=d||c||g;u||(u=f),!f&&l||(r[o]=h)}})(),u}updateEdgeAfterResolutionChange(e){var t,r;const i=this._calculateEdgeResolution(e),o=this.geometryState.neighborData.edgeResolutions,s=o[e];x((null!=(t=null==(r=this.geometryState.neighborData.edges[e])?void 0:r.neighborTile.level)?t:0)<=this.tile.level),i!==s&&(o[e]=i,this._updateGeometry(this.vao.context))}_updateGeometry(e){this._releaseGeometry(),this._createGeometry(e)}releaseGeometry(){return this._releaseGeometry()}get hasGeometry(){return this._hasGeometry}ensureTexture(e,t){return r(this._texture)&&this._texture.descriptor.width!==e&&this.releaseTexture(),i(this._texture)&&(this._texture=t(),this.tile.setMemoryDirty()),this._texture}releaseTexture(){r(this._texture)&&(this._texture.release(),this._texture=null,this.tile.setMemoryDirty())}updateGeometryStateAndPrepareForGeometryGeneration(t){const r=this._getElevationInfo(),i=r.samplerData?this.tile.getElevationBasedVerticesPerSide(r.maxTileLevel):this.tile.getDefaultVerticesPerRowOnLevel(),o=Math.max(i,5);let s=this.tile.clippingArea;this.tile.intersectsClippingArea&&!this.tile.isWithinClippingArea||(s=null);const n=this.geometryState;let a=!1;return n.numVerticesPerSide!==o&&(n.numVerticesPerSide=o,n.samplerDataVersion++,a=!0),r.changed&&(n.samplerData=r.samplerData,n.samplerDataVersion++,a=!0),e(n.clippingArea,s)||(n.clippingArea=s,a=!0),n.wireframe!==t&&(n.wireframe=t,a=!0),this._geometryStateChangedSinceLastUpdate||(this._geometryStateChangedSinceLastUpdate=a),this._hasGeometry=!0,a}_createGeometry(e){this.tile.createGeometry(this.geometryState,this.localOrigin);const t=this.geometryInfo.vertexAttributes,r=this.geometryInfo.indices,i=e.gl;this._vao=new T(e,b,{geometry:a(t.layout)},{geometry:G.createVertex(e,i.STATIC_DRAW,t.buffer)},G.createIndex(e,i.STATIC_DRAW,r)),this._hasGeometry=!0}_releaseGeometry(){return this._hasGeometry=!1,!!this._vao&&(this._vao.dispose(),this._vao=null,y(this.geometryInfo),!0)}get vao(){return this._vao}setTextureReference(e,t=_.Immediate){r(e)&&e.texture!==this._texture&&this.releaseTexture(),this._textureRef.push(e,t)}get textureReference(){return this._textureRef.current}get nextTextureReference(){return this._textureRef.next}get textureFadeFactor(){return this._textureRef.fadeFactor}get textureIsFading(){return this._textureRef.isFading}_getElevationInfo(){const e=this.geometryState.samplerData,t=this.tile.layerInfo[f.ELEVATION],i=t.length;let o=new Array(i),s=0,n=0,a=!1;for(let l=0;l<i;l++){const i=t[l];if(r(i.upsampleInfo)){const t=i.upsampleInfo.tile,r=t.layerInfo[f.ELEVATION][l].data,u=r&&r.samplerData;e&&e[s]===u||(a=!0),o[s++]=u,n=Math.max(n,t.lij[0])}else if(i.data){const t=this.tile.surface.layerViewByIndex(l,f.ELEVATION);if(S(this.tile,t.layer,!1)){const t=i.data;e&&e[s]===t.samplerData||(a=!0),o[s++]=t.samplerData,n=this.tile.level}}}return r(e)&&e.length!==s&&(a=!0),s>0?o.length=s:o=null,{changed:a,samplerData:o,maxTileLevel:n}}get estimatedGeometryMemoryUsage(){const e=o(this.intersectionData,0,(e=>e.estimatedMemoryUsage));return this.geometryInfo.indices.byteLength+this.geometryInfo.vertexAttributes.byteLength+e}get textureDescriptor(){return r(this._texture)?this._texture.descriptor:null}get test(){return{hasTexture:null!=this._texture}}checkGeometryWaterproofness(){}}function j(e,t){return t[0]>=e[0]-d&&t[2]<=e[2]+d&&t[1]>=e[1]-d&&t[3]<=e[3]+d}function I(e,t,i){if(r(i))for(const r of i)if(r){const i=r.x0,o=r.width,s=i+(o-1)/r.dx,n=r.y1,a=n-(o-1)/r.dy;if(e>=i-d&&e<=s+d&&a-d<=t&&t<=n+d)return!0}return!1}function R(e,t){for(const r of t)if(r){const t=r.x0,i=r.width,o=t+(i-1)/r.dx,s=r.y1,a=s-(i-1)/r.dy;if(j(n(t,a,o,s),e))return!0}return!1}export{L as PatchRenderData,I as isElevationSampleIn,R as isExtentInSampler};
5
+ import{equals as e}from"../../../core/arrayUtils.js";import{lerp as t}from"../../../core/mathUtils.js";import{isSome as r,isNone as i,mapOr as s}from"../../../core/maybe.js";import{empty as a}from"../../../geometry/support/aaBoundingBox.js";import{fromValues as n}from"../../../geometry/support/aaBoundingRect.js";import"../../../geometry/support/Ellipsoid.js";import{glLayout as o}from"../support/buffer/glUtil.js";import{sampleElevationOr0 as l}from"./ElevationData.js";import{GeometryState as h,neighborEdgeIndices as u,oppositeEdge as d,eps as g,neighborCornerIndices as m,oppositeCorner as c}from"./GeometryState.js";import"./interfaces.js";import{LayerClass as f}from"./LayerClass.js";import{PatchGeometry as p,releaseGeometry as y}from"./PatchGeometry.js";import{internalAssert as _}from"./terrainUtils.js";import{TextureFader as x,ActivationTime as v}from"./TextureFader.js";export{ActivationTime}from"./TextureFader.js";import"./Tile.js";import b from"./TileOverlayData.js";import{fallsWithinLayer as D}from"./tileUtils.js";import{Default3D as C}from"../webgl-engine/lib/DefaultVertexAttributeLocations.js";import{BufferObject as S}from"../../webgl/BufferObject.js";import{VertexArrayObject as T}from"../../webgl/VertexArrayObject.js";class G{constructor(){this.geometryInfo=new p,this.intersectionData=null,this.geometryState=null,this._textureRef=new x((()=>this.tile.surface.textureFadeDuration)),this.overlay=new b,this._geometryStateChangedSinceLastUpdate=!0,this._hasGeometry=!1,this._numVerticesPerSideChanged=!1,this._samplerDataChanged=!1,this._edgeResolutionChanged=!1,this._edgeNeighborChanged=!1,this._cornerElevationChanged=!1,this._clippingAreaChanged=!1,this._wireframeChanged=!1}get tile(){return this._tile}init(e){this._tile=e,this.clear();const t=this.geometryInfo;t.indices=null,t.vertexAttributes=null,a(t.boundingBox),t.indexCount=0,t.numVerticesPerSide=0,this.intersectionData=null,this.geometryState=new h,this.localOrigin=null,this.overlay.clear()}clear(){const e=this._releaseGeometry();return this.releaseTexture(),this._textureRef.clear(),e}updateGeometryIfChanged(e,t){const r=this.updateGeometryStateAndPrepareForGeometryGeneration(t);this._hasGeometry=!0;return this.updateNeighborDataAndGeometryIfNeeded(r,e)}updateNeighborDataAndGeometryIfNeeded(e=!1,t=this.vao.context){const r=this._updateNeighborData(),i=e||this._geometryStateChangedSinceLastUpdate||r;return i&&(this._updateGeometry(t),this._geometryStateChangedSinceLastUpdate=!1),i}_calculateEdgeResolution(e,t){const s=this.tile,a=this.geometryState.numVerticesPerSide-1;if(!s.surface.isGlobal){const t=s.surface.extent;if(r(t)&&(0===e&&s.extent[3]>t[3]||1===e&&s.extent[2]>t[2]||2===e&&s.extent[1]<t[1]||3===e&&s.extent[0]<t[0]))return a}const n=s.level,o=u[e],l=t||s.findNeighborTile(o,(e=>e.isLoaded||e.level===n));if(!l||l.isLeaf&&!l.isLoaded)return _(i(s.surface?.rootTiles)||s.surface.updatingRootTiles||!s.shouldHaveNeighbor(o)),a;if(l.isLoaded){const t=l,r=t.renderData.geometryState,i=n-t.level;if(0===i){const e=r.numVerticesPerSide-1;return Math.max(e,a)}const s=2**i,o=r.neighborData.edgeResolutions[(e+2)%4]/s;return Math.max(1,o)}_(!l.isLeaf);let h=a;return l.forAllSubtreeOnSide(d(o),(e=>e===s||(e.isLoaded?(h=Math.max(h,2**(e.level-n)),!0):(_(!e.isLeaf),!1)))),h}_updateNeighborData(){const e=this.tile,r=t=>t.isLoaded||t.level===e.level,i=e=>e.isLoaded,s=[null,null,null,null],a=[null,null,null,null];(()=>{for(let t=0;t<4;++t){const i=e.findNeighborTile(u[t],r);s[t]=i,a[t]=i?.isLoaded?i:null}})();const n=[null,null,null,null];(()=>{for(let t=0;t<4;++t)n[t]=e.findNeighborTile(m[t],i)})();const o=this.geometryState.neighborData;let h=!1;(()=>{for(let t=0;t<4;++t){const r=o.edgeResolutions[t],i=s[t],a=this._calculateEdgeResolution(t,i);o.edgeResolutions[t]=a,r!==a&&(h=!0,this._edgeResolutionChanged=!0,i&&i!==e&&!i.isLoaded&&i.level===e.level&&(o.modifiedEdgeResolutions[t]=!0))}})();(()=>{const r=[null,null,null,null],i=(i,s)=>{let a=1/0;for(let t=0;t<4;++t){const s=m[t],n=i[t];if(n){const i=n.findCorner(c(s),(t=>t?.isLoaded||t===e));r[t]=i,a=Math.min(a,i.level)}else r[t]=null}for(let h=0;h<4;++h){const i=r[(h+3)%4],a=r[h];if(i&&i.level<e.level&&i===a){const r=i,a=1==(1&h),n=(e.getNeighborEdgeStartVertexIndex(h,r)+(0===s||1===s&&!a||3===s&&a?1:0))/2**(e.level-r.level),o=a?0===s||1===s?r.extent[0]:r.extent[2]:t(r.extent[0],r.extent[2],n),u=a?t(r.extent[1],r.extent[3],n):0===s||3===s?r.extent[1]:r.extent[3];return l(o,u,r.renderData.geometryState.samplerData)}}let n=0,o=0;for(let e=0;e<4;++e){const t=r[e];if(t&&t.level===a){const r=0===e||1===e,i=0===e||3===e,s=t.extent;o+=l(s[r?0:2],s[i?1:3],t.renderData?.geometryState?.samplerData),n++}}return n?o/n:0},s=this.geometryState.neighborData.cornerElevations,o=(e,t)=>{const r=i(t,e);return s[e]!==r&&(s[e]=r,!0)};for(let t=0;t<4;++t){const r=n[t],i=a[t],s=[r,a[(t+1)%4],e,i],l=s.map(((e,r)=>s[(r+4-t)%4])),u=o(t,l);this._cornerElevationChanged=!0,h||(h=u)}})();return(()=>{const t=(t,r)=>{if(!t?.isLoaded||t.lij[0]>e.lij[0])return null;const i=t.renderData.geometryState;return{neighborSamplerData:i.samplerData,neighborEdgeOverlapResolution:i.neighborData.edgeResolutions[r+2],version:i.samplerDataVersion,neighborVerticesPerSide:i.numVerticesPerSide,neighborTile:t}},r=o.edges;for(let i=0;i<4;++i){const s=a[i];s&&(_(s?.isLoaded),_(s?.lij[0]<=e.lij[0]));const n=r[i],o=n?.version,l=t(s,i),u=l?.version??null,d=null!=n!=(null!=l),g=n&&l&&o!==u,m=n&&l&&n?.neighborTile!==l?.neighborTile,c=d||g||m;this._edgeNeighborChanged||(this._edgeNeighborChanged=c),h||(h=c),!c&&o||(r[i]=l)}})(),h}updateEdgeAfterResolutionChange(e){const t=this._calculateEdgeResolution(e),r=this.geometryState.neighborData.edgeResolutions,i=r[e];_((this.geometryState.neighborData.edges[e]?.neighborTile.level??0)<=this.tile.level),t!==i&&(r[e]=t,this._edgeResolutionChanged=!0,G.deferTileNeighborUpdate?G.neighborTilesToUpdate.add(this.tile):this._updateGeometry(this.vao.context))}_updateGeometry(e){this.intersectionData=null;const t=this.tile,r=t.lij,i=G.updatedGeometryTiles.get(r)||0;G.updatedGeometryTiles.set(r,i+1);const s=this._vao,a=this.geometryInfo.vertexAttributes,n=!s||!a||this._wireframeChanged||this._numVerticesPerSideChanged||this._samplerDataChanged||this._clippingAreaChanged||this._edgeResolutionChanged,o=!n&&this._edgeNeighborChanged,l=!o&&this._cornerElevationChanged;this._numVerticesPerSideChanged=!1,this._samplerDataChanged=!1,this._edgeResolutionChanged=!1,this._edgeNeighborChanged=!1,this._cornerElevationChanged=!1,this._clippingAreaChanged=!1,this._wireframeChanged=!1,n?(this._releaseGeometry(),this._createGeometry(e)):o?t.updateEdgeElevations():l?t.updateCornerElevations():console.warn("Update for no reason?")}releaseGeometry(){return this._releaseGeometry()}get hasGeometry(){return this._hasGeometry}ensureTexture(e,t){return r(this._texture)&&this._texture.descriptor.width!==e&&this.releaseTexture(),i(this._texture)&&(this._texture=t(),this.tile.setMemoryDirty()),this._texture}releaseTexture(){r(this._texture)&&(this._texture.release(),this._texture=null,this.tile.setMemoryDirty())}updateGeometryStateAndPrepareForGeometryGeneration(t){const r=this._getElevationInfo(),i=r.samplerData?this.tile.getElevationBasedVerticesPerSide(r.maxTileLevel):this.tile.getDefaultVerticesPerRowOnLevel(),s=Math.max(i,5);let a=this.tile.clippingArea;this.tile.intersectsClippingArea&&!this.tile.isWithinClippingArea||(a=null);const n=this.geometryState;let o=!1;return n.numVerticesPerSide!==s&&(this._numVerticesPerSideChanged=!0,n.numVerticesPerSide=s,n.samplerDataVersion++,o=!0),r.changed&&(this._samplerDataChanged=!0,n.samplerData=r.samplerData,n.samplerDataVersion++,o=!0),e(n.clippingArea,a)||(this._clippingAreaChanged=!0,n.clippingArea=a,o=!0),n.wireframe!==t&&(this._wireframeChanged=!0,n.wireframe=t,o=!0),this._geometryStateChangedSinceLastUpdate||(this._geometryStateChangedSinceLastUpdate=o),this._hasGeometry=!0,o}_createGeometry(e){this.tile.createGeometry();const t=this.geometryInfo.vertexAttributes,r=this.geometryInfo.indices,i=e.gl;this._vao=new T(e,C,{geometry:o(t.layout)},{geometry:S.createVertex(e,i.STATIC_DRAW,t.buffer)},S.createIndex(e,i.STATIC_DRAW,r)),this._hasGeometry=!0}_releaseGeometry(){return this._hasGeometry=!1,!!this._vao&&(this._vao.dispose(),this._vao=null,y(this.geometryInfo),!0)}get vao(){return this._vao}setTextureReference(e,t=v.Immediate){r(e)&&e.texture!==this._texture&&this.releaseTexture(),this._textureRef.push(e,t)}get textureReference(){return this._textureRef.current}get nextTextureReference(){return this._textureRef.next}get textureFadeFactor(){return this._textureRef.fadeFactor}get textureIsFading(){return this._textureRef.isFading}_getElevationInfo(){const e=this.geometryState.samplerData,t=this.tile.layerInfo[f.ELEVATION],i=t.length;let s=new Array(i),a=0,n=0,o=!1;for(let l=0;l<i;l++){const i=t[l];if(r(i.upsampleInfo)){const t=i.upsampleInfo.tile,r=t.layerInfo[f.ELEVATION][l].data,h=r&&r.samplerData;e&&e[a]===h||(o=!0),s[a++]=h,n=Math.max(n,t.lij[0])}else if(i.data){const t=this.tile.surface.layerViewByIndex(l,f.ELEVATION);if(D(this.tile,t.layer,!1)){const t=i.data;e&&e[a]===t.samplerData||(o=!0),s[a++]=t.samplerData,n=this.tile.level}}}return r(e)&&e.length!==a&&(o=!0),a>0?s.length=a:s=null,{changed:o,samplerData:s,maxTileLevel:n}}get estimatedGeometryMemoryUsage(){const e=s(this.intersectionData,0,(e=>e.estimatedMemoryUsage));return this.geometryInfo.indices.byteLength+this.geometryInfo.vertexAttributes.byteLength+e}get textureDescriptor(){return r(this._texture)?this._texture.descriptor:null}get test(){return{hasTexture:null!=this._texture}}checkGeometryWaterproofness(){}}function R(e,t){return t[0]>=e[0]-g&&t[2]<=e[2]+g&&t[1]>=e[1]-g&&t[3]<=e[3]+g}function A(e,t,i){if(r(i))for(const r of i)if(r){const i=r.x0,s=r.width,a=i+(s-1)/r.dx,n=r.y1,o=n-(s-1)/r.dy;if(e>=i-g&&e<=a+g&&o-g<=t&&t<=n+g)return!0}return!1}function j(e,t){for(const r of t)if(r){const t=r.x0,i=r.width,s=t+(i-1)/r.dx,a=r.y1,o=a-(i-1)/r.dy;if(R(n(t,o,s,a),e))return!0}return!1}G.updatedGeometryTiles=new Map,G.deferTileNeighborUpdate=!1,G.neighborTilesToUpdate=new Set;export{G as PatchRenderData,A as isElevationSampleIn,j as isExtentInSampler};
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.24/esri/copyright.txt for details.
4
4
  */
5
- import{isSome as e}from"../../../core/maybe.js";import{f as t,c as r}from"../../../chunks/vec3f64.js";import{projectVectorToVector as i}from"../../../geometry/projection.js";import s from"../../../geometry/SpatialReference.js";import{wrap as a}from"../../../geometry/support/aaBoundingBox.js";import{create as o}from"../../../geometry/support/aaBoundingRect.js";import{intersectsAABB as n}from"../../../geometry/support/frustum.js";import{isPlateCarree as h}from"../../../geometry/support/spatialReferenceUtils.js";import{createPlanarGlobePatch as c}from"./PatchGeometryFactory.js";import{Tile as l,CenterPosition as m}from"./Tile.js";import{intersectAabbInvDirBefore as p}from"../webgl-engine/materials/internal/MaterialUtil.js";class d extends l{constructor(e,t,r){super(),this.horizontalScaleFactor=1,this.isWebmercatorOnPlateeCaree=!1,this.extentInRenderSR=o(),void 0!==e&&this.init(e,t,r)}init(r,a,o){super.init(r,a,o);const n=o.view.renderSpatialReference,c=o.spatialReference,l=e(n)&&h(n),m=l&&c.isGeographic?this.ellipsoid.radius*Math.PI/180:1;this.horizontalScaleFactor=m,this.isWebmercatorOnPlateeCaree=l&&c.isWebMercator;const p=this.extentInRenderSR,d=this.extent;if(this.isWebmercatorOnPlateeCaree){const e=t(d[0],d[1],0);i(e,s.WebMercator,e,s.PlateCarree);const r=t(d[2],d[3],0);i(r,s.WebMercator,r,s.PlateCarree),p[0]=e[0],p[1]=e[1],p[2]=r[0],p[3]=r[1]}else for(let e=0;e<4;++e)p[e]=d[e]*m;this.centerAtSeaLevel[0]=.5*(p[0]+p[2]),this.centerAtSeaLevel[1]=.5*(p[1]+p[3]),this.centerAtSeaLevel[2]=0,this._edgeLen=Math.max(p[2]-p[0],p[3]-p[1]),this._edgeLen2=this._edgeLen*this._edgeLen,this.updateRadiusAndCenter()}updateRadiusAndCenter(){this._updateCenter();const e=this.extentInRenderSR,t=.5*(e[2]-e[0]),r=.5*(e[3]-e[1]),i=Math.sqrt(t*t+r*r),s=.5*(this.elevationBounds[0]-this.elevationBounds[1]),a=Math.max(i,s);this._center[m.MIDDLE][3]=a}_isVisible(e){return n(e,this._aabb())}_aabb(){const e=this.extentInRenderSR;return a(e[0],e[1],this.elevationBounds[0],e[2],e[3],this.elevationBounds[1])}intersectsRay(e,t,r,i){return u[0]=1/t[0],u[1]=1/t[1],u[2]=1/t[2],p(this._aabb(),e,u,r,i)}createGeometry(e,t){c(e,this.extent,t,this.horizontalScaleFactor,this.isWebmercatorOnPlateeCaree,this.renderData),this.setMemoryDirty()}getDefaultVerticesPerRowOnLevel(){return this.level<9?3:2}}const u=r();export{d as PlanarPatch};
5
+ import{isSome as e}from"../../../core/maybe.js";import{f as t,c as r}from"../../../chunks/vec3f64.js";import{projectVectorToVector as i}from"../../../geometry/projection.js";import s from"../../../geometry/SpatialReference.js";import{wrap as a}from"../../../geometry/support/aaBoundingBox.js";import{create as o}from"../../../geometry/support/aaBoundingRect.js";import{intersectsAABB as n}from"../../../geometry/support/frustum.js";import{isPlateCarree as h}from"../../../geometry/support/spatialReferenceUtils.js";import{createPlanarGlobePatch as c,updateCornerElevationsPlanar as l,updateEdgesElevationsPlanar as m}from"./PatchGeometryFactory.js";import{Tile as p,CenterPosition as d}from"./Tile.js";import{intersectAabbInvDirBefore as u}from"../webgl-engine/materials/internal/MaterialUtil.js";class f extends p{constructor(e,t,r){super(),this.horizontalScaleFactor=1,this.extentInRenderSR=o(),void 0!==e&&this.init(e,t,r)}init(r,a,o){super.init(r,a,o);const n=o.view.renderSpatialReference,c=o.spatialReference,l=e(n)&&h(n)&&c.isGeographic?this.ellipsoid.radius*Math.PI/180:1;this.horizontalScaleFactor=l;const m=this.surface.isWebMercatorOnPlateeCarree,p=this.extentInRenderSR,d=this.extent;if(m){const e=t(d[0],d[1],0);i(e,s.WebMercator,e,s.PlateCarree);const r=t(d[2],d[3],0);i(r,s.WebMercator,r,s.PlateCarree),p[0]=e[0],p[1]=e[1],p[2]=r[0],p[3]=r[1]}else for(let e=0;e<4;++e)p[e]=d[e]*l;this.centerAtSeaLevel[0]=.5*(p[0]+p[2]),this.centerAtSeaLevel[1]=.5*(p[1]+p[3]),this.centerAtSeaLevel[2]=0,this._edgeLen=Math.max(p[2]-p[0],p[3]-p[1]),this._edgeLen2=this._edgeLen*this._edgeLen,this.updateRadiusAndCenter()}updateRadiusAndCenter(){this._updateCenter();const e=this.extentInRenderSR,t=.5*(e[2]-e[0]),r=.5*(e[3]-e[1]),i=Math.sqrt(t*t+r*r),s=.5*(this.elevationBounds[0]-this.elevationBounds[1]),a=Math.max(i,s);this._center[d.MIDDLE][3]=a}_isVisible(e){return n(e,this._aabb())}_aabb(){const e=this.extentInRenderSR;return a(e[0],e[1],this.elevationBounds[0],e[2],e[3],this.elevationBounds[1])}intersectsRay(e,t,r,i){return g[0]=1/t[0],g[1]=1/t[1],g[2]=1/t[2],u(this._aabb(),e,g,r,i)}createGeometry(){c(this.renderData,this.horizontalScaleFactor),this.setMemoryDirty()}getDefaultVerticesPerRowOnLevel(){return this.level<9?3:2}updateCornerElevations(){l(this.renderData,this.horizontalScaleFactor)}updateEdgeElevations(){m(this.renderData,this.horizontalScaleFactor)}}const g=r();export{f as PlanarPatch};
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.24/esri/copyright.txt for details.
4
4
  */
5
- import{_ as e}from"../../../chunks/tslib.es6.js";import{RasterColorizerType as o,RasterColorizerStretchType as r}from"../../2d/engine/imagery/enums.js";import{BlendMode as i}from"../webgl-engine/core/shaderLibrary/output/BlendOptions.js";import{R as t}from"../../../chunks/RasterColorizer.glsl.js";import{ReloadableShaderModule as n}from"../webgl-engine/core/shaderTechnique/ReloadableShaderModule.js";import{ShaderTechnique as s}from"../webgl-engine/core/shaderTechnique/ShaderTechnique.js";import{parameter as a,ShaderTechniqueConfiguration as l}from"../webgl-engine/core/shaderTechnique/ShaderTechniqueConfiguration.js";import{Default3D as m}from"../webgl-engine/lib/DefaultVertexAttributeLocations.js";import{Program as p}from"../webgl-engine/lib/Program.js";import{BlendFactor as c}from"../../webgl/enums.js";import{getUniformLocationInfos as h,setUniforms as u}from"../../webgl/rasterUtils.js";import{simpleBlendingParams as g,makePipelineState as d,defaultColorWriteParams as f}from"../../webgl/renderState.js";class b extends s{initializeProgram(e){const o=b.shader.get().build(this.configuration),r=new p(e.rctx,o,m);return this._uniformLocationInfos=h(e.rctx,r),r}initializePipeline(){const e=this.configuration.mode===i.OneMinusSourceAlpha?g(c.ONE,c.ONE_MINUS_SRC_ALPHA):this.configuration.mode===i.SourceAlpha?g(c.ZERO,c.SRC_ALPHA):null;return d({blending:e,colorWrite:f})}bindPass(e){this.program.bindPass(e,null),u(this.program,this._uniformLocationInfos,e.basic),u(this.program,this._uniformLocationInfos,e.common)}}b.shader=new n(t,(()=>import("../webgl-engine/core/shaderLibrary/raster/RasterColorizer.glsl.js")));class j extends l{constructor(){super(...arguments),this.mode=i.OneMinusSourceAlpha,this.colorizerType=o.Stretch,this.stretchType=r.Noop,this.applyColormap=!0}}e([a({count:i.COUNT})],j.prototype,"mode",void 0),e([a({count:o.COUNT})],j.prototype,"colorizerType",void 0),e([a({count:r.COUNT})],j.prototype,"stretchType",void 0),e([a()],j.prototype,"applyColormap",void 0);export{b as RasterColorizerTechnique,j as RasterColorizerTechniqueConfiguration};
5
+ import{_ as e}from"../../../chunks/tslib.es6.js";import{RasterColorizerType as r,RasterColorizerStretchType as o}from"../../2d/engine/imagery/enums.js";import{BlendMode as i}from"../webgl-engine/core/shaderLibrary/output/BlendOptions.js";import{R as t}from"../../../chunks/RasterColorizer.glsl.js";import{ReloadableShaderModule as n}from"../webgl-engine/core/shaderTechnique/ReloadableShaderModule.js";import{ShaderTechnique as s}from"../webgl-engine/core/shaderTechnique/ShaderTechnique.js";import{parameter as l,ShaderTechniqueConfiguration as a}from"../webgl-engine/core/shaderTechnique/ShaderTechniqueConfiguration.js";import{Default3D as p}from"../webgl-engine/lib/DefaultVertexAttributeLocations.js";import{Program as c}from"../webgl-engine/lib/Program.js";import{BlendFactor as m}from"../../webgl/enums.js";import{simpleBlendingParams as u,makePipelineState as h,defaultColorWriteParams as g}from"../../webgl/renderState.js";class d extends s{initializeProgram(e){const r=d.shader.get().build(this.configuration);return new c(e.rctx,r,p)}initializePipeline(){const e=this.configuration.mode===i.OneMinusSourceAlpha?u(m.ONE,m.ONE_MINUS_SRC_ALPHA):this.configuration.mode===i.SourceAlpha?u(m.ZERO,m.SRC_ALPHA):null;return h({blending:e,colorWrite:g})}}d.shader=new n(t,(()=>import("../webgl-engine/core/shaderLibrary/raster/RasterColorizer.glsl.js")));class b extends a{constructor(){super(...arguments),this.mode=i.OneMinusSourceAlpha,this.colorizerType=r.Stretch,this.stretchType=o.Noop,this.applyColormap=!0}}e([l({count:i.COUNT})],b.prototype,"mode",void 0),e([l({count:r.COUNT})],b.prototype,"colorizerType",void 0),e([l({count:o.COUNT})],b.prototype,"stretchType",void 0),e([l()],b.prototype,"applyColormap",void 0);export{d as RasterColorizerTechnique,b as RasterColorizerTechniqueConfiguration};
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.24/esri/copyright.txt for details.
4
4
  */
5
- import{disposeMaybe as t,isSome as e,isNone as r}from"../../../core/maybe.js";import{C as s}from"../../../chunks/RasterColorizer.glsl.js";import{TextureSamplingMode as i}from"../../webgl/enums.js";import{createTransformTexture as o,getBasicGridUniforms as a,getCommonUniforms as h,getColormapUniforms as n,getStretchUniforms as l,getShadedReliefUniforms as u,createRasterTexture as m,createColormapTexture as d}from"../../webgl/rasterUtils.js";const _={bandCount:3,outMin:0,outMax:1,minCutOff:[0,0,0],maxCutOff:[255,255,255],factor:[1/255,1/255,1/255],useGamma:!1,gamma:[1,1,1],gammaCorrection:[1,1,1],colormap:null,colormapOffset:null,stretchType:"none",type:"stretch"};class c{constructor(t,e,r=null,s=null){this.type="raster-tile",this._memoryUsed=null,this._source=null,this._symbolizerParameters=null,this._bandIds=null,this._interpolation=null,this._dirty=!1,this._transformGrid=null,this.isRendereredSource=!1,this.symbolizerRenderer=null,this.rawPixelData=null,this.lij=null,this.scale=1,this.offset=[0,0],this.opacity=1,this.lij=t,this.source=e,this.width=r||e.width,this.height=s||e.height}get source(){return this._source}set source(e){this._source=e,this._rasterTexture=t(this._rasterTexture),this._memoryUsed=null}get symbolizerParameters(){return this.isRendereredSource?{..._,maxCutOff:[1,1,1],factor:[1,1,1]}:this._symbolizerParameters||_}set symbolizerParameters(t){this._symbolizerParameters=t}get bandIds(){return this._bandIds}set bandIds(t){if(e(t)&&t.length>0){this._bandIds&&t.every(((t,e)=>!!this._bandIds[e]&&t===this._bandIds[e]))||(this._bandIds=t,this._dirty=!0)}else this._bandIds=null}get interpolation(){return this._interpolation||"nearest"}set interpolation(t){if(this._interpolation=t,e(this._rasterTexture)){const e=this._getRasterTextureInterpolation(t);this._rasterTexture.setSamplingMode("bilinear"===e?i.LINEAR:i.NEAREST)}}get transformGrid(){return this._transformGrid}set transformGrid(e){this._transformGrid=e,this._transformGridTexture=t(this._transformGridTexture),this._memoryUsed=null}bind(t){return!!(this.source&&this.source.pixels&&this.source.pixels.length>0)&&((r(this._rasterTexture)||this._dirty)&&this._updateRasterTexture(t,this.bandIds),e(this._rasterTexture)&&(this._updateColormapTexture(t),this.transformGrid&&r(this._transformGridTexture)&&(this._transformGridTexture=o(t,this.transformGrid))),!0)}getUniforms(){const t=a(this.scale,this.offset),{symbolizerParameters:e,transformGrid:r,width:i,height:o,opacity:m}=this,d=h(r,[i,o],[this.source.width,this.source.height],m),_=n(e.colormap,e.colormapOffset),c="stretch"===this.symbolizerParameters.type?l(this.symbolizerParameters):null,p="hillshade"===this.symbolizerParameters.type?u(this.symbolizerParameters):null;return new s(t,d,_,c||p)}bindRasterTextures(t){t.bindTexture("u_image",this._rasterTexture),t.bindTexture("u_transformGrid",this._transformGridTexture),t.bindTexture("u_colormap",this._colormapTexture)}get memoryUsage(){if(r(this._memoryUsed)){const t=[this._rasterTexture,this._transformGridTexture,this._colormapTexture];this._memoryUsed=t.map((t=>e(t)?t.descriptor.width*t.descriptor.height*4:0)).reduce(((t,e)=>t+e),0)}return this._memoryUsed}release(){return this._rasterTexture=t(this._rasterTexture),this._transformGridTexture=t(this._transformGridTexture),this._colormapTexture=t(this._colormapTexture),this.source=null,this.transformGrid=null,this.rawPixelData=null,!0}_updateRasterTexture(s,i){const o=this.source?this.source.extractBands(i):null;if(!(o&&o.pixels&&o.pixels.length>0))return void(this._rasterTexture=t(this._rasterTexture));const a=r(i)&&r(this.bandIds)||e(i)&&e(this.bandIds)&&i.join("")===this.bandIds.join("");if(e(this._rasterTexture)&&a)return;this._rasterTexture=t(this._rasterTexture);const h=this._getRasterTextureInterpolation(this.interpolation);this._rasterTexture=m(s,o,h,this.isRendereredSource||this.hasStretchTypeNone())}hasStretchTypeNone(){return"stretchType"in this.symbolizerParameters&&"none"===this.symbolizerParameters.stretchType&&!this.symbolizerParameters.useGamma&&"u8"===this.source.pixelType}_getRasterTextureInterpolation(t){return"lut"===this.symbolizerParameters.type||"nearest"===t||"majority"===t?"nearest":"bilinear"}_updateColormapTexture(e){const r=this._colormap,s=this.symbolizerParameters.colormap;return s?r?s.length!==r.length||s.some(((t,e)=>t!==r[e]))?(this._colormapTexture=t(this._colormapTexture),this._colormapTexture=d(e,s),void(this._colormap=s)):void 0:(this._colormapTexture=d(e,s),void(this._colormap=s)):(this._colormapTexture=t(this._colormapTexture),void(this._colormap=null))}}export{c as RasterTile};
5
+ import{disposeMaybe as t,isSome as e,isNone as r}from"../../../core/maybe.js";import{C as s}from"../../../chunks/RasterColorizer.glsl.js";import{TextureSamplingMode as i}from"../../webgl/enums.js";import{createTransformTexture as o,getBasicGridUniforms as a,getCommonUniforms as h,getColormapUniforms as n,getStretchUniforms as l,getShadedReliefUniforms as u,createRasterTexture as m,createColormapTexture as d}from"../../webgl/rasterUtils.js";const _={bandCount:3,outMin:0,outMax:1,minCutOff:[0,0,0],maxCutOff:[255,255,255],factor:[1/255,1/255,1/255],useGamma:!1,gamma:[1,1,1],gammaCorrection:[1,1,1],colormap:null,colormapOffset:null,stretchType:"none",type:"stretch"};class c{constructor(t,e,r=null,s=null){this.type="raster-tile",this._memoryUsed=null,this._source=null,this._symbolizerParameters=null,this._bandIds=null,this._interpolation=null,this._dirty=!1,this._transformGrid=null,this.isRendereredSource=!1,this.symbolizerRenderer=null,this.rawPixelData=null,this.lij=null,this.scale=1,this.offset=[0,0],this.opacity=1,this.lij=t,this.source=e,this.width=r||e.width,this.height=s||e.height}get source(){return this._source}set source(e){this._source=e,this._rasterTexture=t(this._rasterTexture),this._memoryUsed=null}get symbolizerParameters(){return this.isRendereredSource?{..._,maxCutOff:[1,1,1],factor:[1,1,1]}:this._symbolizerParameters||_}set symbolizerParameters(t){this._symbolizerParameters=t}get bandIds(){return this._bandIds}set bandIds(t){if(e(t)&&t.length>0){this._bandIds&&t.every(((t,e)=>!!this._bandIds[e]&&t===this._bandIds[e]))||(this._bandIds=t,this._dirty=!0)}else this._bandIds=null}get interpolation(){return this._interpolation||"nearest"}set interpolation(t){if(this._interpolation=t,e(this._rasterTexture)){const e=this._getRasterTextureInterpolation(t);this._rasterTexture.setSamplingMode("bilinear"===e?i.LINEAR:i.NEAREST)}}get transformGrid(){return this._transformGrid}set transformGrid(e){this._transformGrid=e,this._transformGridTexture=t(this._transformGridTexture),this._memoryUsed=null}bind(t){return!!(this.source&&this.source.pixels&&this.source.pixels.length>0)&&((r(this._rasterTexture)||this._dirty)&&this._updateRasterTexture(t,this.bandIds),e(this._rasterTexture)&&(this._updateColormapTexture(t),this.transformGrid&&r(this._transformGridTexture)&&(this._transformGridTexture=o(t,this.transformGrid))),!0)}getUniforms(){const t=a(this.scale,this.offset),{symbolizerParameters:e,transformGrid:r,width:i,height:o,opacity:m}=this,d=h(r,[i,o],[this.source.width,this.source.height],m),_=n(e.colormap,e.colormapOffset),c="stretch"===this.symbolizerParameters.type?l(this.symbolizerParameters):null,p="hillshade"===this.symbolizerParameters.type?u(this.symbolizerParameters):null;return new s(t,d,_,c||p,this._rasterTexture,this._transformGridTexture,this._colormapTexture)}get memoryUsage(){if(r(this._memoryUsed)){const t=[this._rasterTexture,this._transformGridTexture,this._colormapTexture];this._memoryUsed=t.map((t=>e(t)?t.descriptor.width*t.descriptor.height*4:0)).reduce(((t,e)=>t+e),0)}return this._memoryUsed}release(){return this._rasterTexture=t(this._rasterTexture),this._transformGridTexture=t(this._transformGridTexture),this._colormapTexture=t(this._colormapTexture),this.source=null,this.transformGrid=null,this.rawPixelData=null,!0}_updateRasterTexture(s,i){const o=this.source?this.source.extractBands(i):null;if(!(o&&o.pixels&&o.pixels.length>0))return void(this._rasterTexture=t(this._rasterTexture));const a=r(i)&&r(this.bandIds)||e(i)&&e(this.bandIds)&&i.join("")===this.bandIds.join("");if(e(this._rasterTexture)&&a)return;this._rasterTexture=t(this._rasterTexture);const h=this._getRasterTextureInterpolation(this.interpolation);this._rasterTexture=m(s,o,h,this.isRendereredSource||this.hasStretchTypeNone())}hasStretchTypeNone(){return"stretchType"in this.symbolizerParameters&&"none"===this.symbolizerParameters.stretchType&&!this.symbolizerParameters.useGamma&&"u8"===this.source.pixelType}_getRasterTextureInterpolation(t){return"lut"===this.symbolizerParameters.type||"nearest"===t||"majority"===t?"nearest":"bilinear"}_updateColormapTexture(e){const r=this._colormap,s=this.symbolizerParameters.colormap;return s?r?s.length!==r.length||s.some(((t,e)=>t!==r[e]))?(this._colormapTexture=t(this._colormapTexture),this._colormapTexture=d(e,s),void(this._colormap=s)):void 0:(this._colormapTexture=d(e,s),void(this._colormap=s)):(this._colormapTexture=t(this._colormapTexture),void(this._colormap=null))}}export{c as RasterTile};
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.24/esri/copyright.txt for details.
4
4
  */
5
- import{lerp as t}from"../../../core/mathUtils.js";import{n as e,s as i,d as s}from"../../../chunks/vec3.js";import{c as r,d as o}from"../../../chunks/vec3f64.js";import{lonLatToSphericalPCPF as a}from"../../../geometry/projection.js";import{getReferenceEllipsoid as h}from"../../../geometry/projectionEllipsoid.js";import{intersectsSphere as n,NumPlanes as l,PlaneIndex as d}from"../../../geometry/support/frustum.js";import{create as c}from"../../../geometry/support/plane.js";import{PatchType as p}from"./interfaces.js";import{createSphericalGlobePatch as u}from"./PatchGeometryFactory.js";import{Tile as m}from"./Tile.js";class _ extends m{constructor(t,e,i){super(),this.obb=new Array(8),this.isWebMercator=!1;for(let s=0;s<8;s++)this.obb[s]=r();void 0!==t&&this.init(t,e,i)}init(i,s,r){super.init(i,s,r),this.isWebMercator=r.tilingScheme.spatialReference.isWebMercator;const h=this.ellipsoid.radius,n=this.extentInRadians[0],l=this.extentInRadians[1],d=this.extentInRadians[2],c=this.extentInRadians[3],p=i[0],u=t(l,c,.5),m=t(n,d,.5),_=0===p?0:Math.min(Math.abs(l),Math.abs(c));this._edgeLen=(d-n)*Math.cos(_)*h,this._edgeLen2=this._edgeLen*this._edgeLen,this._curvatureHeight=h-Math.sqrt(h*h-this._edgeLen2/4),a(this.centerAtSeaLevel,m,u,this.ellipsoid.radius,0);const f=o(this.centerAtSeaLevel);e(f,f),this.up=f,this._updateOBB(),this.updateRadiusAndCenter()}updateRadiusAndCenter(){if(0===this.lij[0])i(this._center[L.MIDDLE],0,0,0),i(this._center[L.TOP],0,0,0),i(this._center[L.BOTTOM],0,0,0),this.ellipsoid||(this.ellipsoid=h(this.surface.spatialReference)),this._center[L.MIDDLE][3]=this.ellipsoid.radius+this.elevationBounds[1];else{this._updateCenter();const t=Math.max(s(this._center[L.MIDDLE],this.obb[0]),s(this._center[L.MIDDLE],this.obb[1]));this._center[L.MIDDLE][3]=Math.sqrt(t)}}_isVisible(t){if(!n(t,this._center[L.MIDDLE]))return!1;if(this.lij[0]<10)return!0;const e=this.obb;for(let i=0;i<l.NUM;i++){const s=i===d.NEAR,r=t[i];s&&(M[0]=r[0],M[1]=r[1],M[2]=r[2],M[3]=r[3]-this.surface.view.state.camera.near);const o=s?M:r;let a;for(a=0;a<8;a++){const t=e[a];if(o[0]*t[0]+o[1]*t[1]+o[2]*t[2]+o[3]<0)break}if(8===a)return!1}return!0}computeElevationBounds(){super.computeElevationBounds(),this._updateOBB()}createGeometry(t,e){const i=this._getPatchType(this.lij[1],this.lij[0]);u(t,this.extent,e,this.renderData,this.extentInRadians,this.isWebMercator,this.ellipsoid,i),this.setMemoryDirty()}_updateOBB(){const t=this.extentInRadians,e=this.obb;for(let i=0;i<2;i++){const s=this.elevationBounds[i];let r=4*i;a(e[r++],t[0],t[1],this.ellipsoid.radius,s),a(e[r++],t[0],t[3],this.ellipsoid.radius,s),a(e[r++],t[2],t[3],this.ellipsoid.radius,s),a(e[r++],t[2],t[1],this.ellipsoid.radius,s)}if(this.isWebMercator)switch(this._getPatchType(this.lij[1],this.lij[0])){case p.HAS_NORTH_POLE:i(e[1],0,0,this.ellipsoid.radius),i(e[2],0,0,this.ellipsoid.radius),i(e[5],0,0,this.ellipsoid.radius),i(e[6],0,0,this.ellipsoid.radius);break;case p.HAS_SOUTH_POLE:i(e[0],0,0,-this.ellipsoid.radius),i(e[3],0,0,-this.ellipsoid.radius),i(e[4],0,0,-this.ellipsoid.radius),i(e[7],0,0,-this.ellipsoid.radius)}}_getPatchType(t,e){return t===(1<<e)-1?0===t?p.HAS_BOTH_POLES:p.HAS_SOUTH_POLE:0===t?p.HAS_NORTH_POLE:p.REGULAR}intersectsRay(t,e,i,s){const r=this._center[L.MIDDLE],o=r[3]+i,a=e[0]*e[0]+e[1]*e[1]+e[2]*e[2],h=r[0]-t[0],n=r[1]-t[1],l=r[2]-t[2],d=(h*e[0]+n*e[1]+l*e[2])/a,c=e[0]*d-h,p=e[1]*d-n,u=e[2]*d-l;return c*c+p*p+u*u<o*o}getDefaultVerticesPerRowOnLevel(){return this.level<f.length?f[this.level]+1:2}}const f=[128,64,32,16,16,8,8,4],M=c();var L;!function(t){t[t.TOP=0]="TOP",t[t.MIDDLE=1]="MIDDLE",t[t.BOTTOM=2]="BOTTOM"}(L||(L={}));export{L as CenterPosition,_ as SphericalPatch};
5
+ import{lerp as t}from"../../../core/mathUtils.js";import{n as e,s as i,d as s}from"../../../chunks/vec3.js";import{c as r,d as o}from"../../../chunks/vec3f64.js";import{lonLatToSphericalPCPF as a}from"../../../geometry/projection.js";import{getReferenceEllipsoid as n}from"../../../geometry/projectionEllipsoid.js";import{intersectsSphere as h,NumPlanes as l,PlaneIndex as d}from"../../../geometry/support/frustum.js";import{create as c}from"../../../geometry/support/plane.js";import{PatchType as u}from"./interfaces.js";import{createSphericalGlobePatch as p,updateCornerElevationsSpherical as m,updateEdgesElevationsSpherical as _}from"./PatchGeometryFactory.js";import{Tile as f}from"./Tile.js";class D extends f{constructor(t,e,i){super(),this.obb=new Array(8);for(let s=0;s<8;s++)this.obb[s]=r();void 0!==t&&this.init(t,e,i)}init(i,s,r){super.init(i,s,r);const n=this.ellipsoid.radius,h=this.extentInRadians[0],l=this.extentInRadians[1],d=this.extentInRadians[2],c=this.extentInRadians[3],u=i[0],p=t(l,c,.5),m=t(h,d,.5),_=0===u?0:Math.min(Math.abs(l),Math.abs(c));this._edgeLen=(d-h)*Math.cos(_)*n,this._edgeLen2=this._edgeLen*this._edgeLen,this._curvatureHeight=n-Math.sqrt(n*n-this._edgeLen2/4),a(this.centerAtSeaLevel,m,p,this.ellipsoid.radius,0);const f=o(this.centerAtSeaLevel);e(f,f),this.up=f,this._updateOBB(),this.updateRadiusAndCenter()}updateRadiusAndCenter(){if(0===this.lij[0])i(this._center[E.MIDDLE],0,0,0),i(this._center[E.TOP],0,0,0),i(this._center[E.BOTTOM],0,0,0),this.ellipsoid||(this.ellipsoid=n(this.surface.spatialReference)),this._center[E.MIDDLE][3]=this.ellipsoid.radius+this.elevationBounds[1];else{this._updateCenter();const t=Math.max(s(this._center[E.MIDDLE],this.obb[0]),s(this._center[E.MIDDLE],this.obb[1]));this._center[E.MIDDLE][3]=Math.sqrt(t)}}_isVisible(t){if(!h(t,this._center[E.MIDDLE]))return!1;if(this.lij[0]<10)return!0;const e=this.obb;for(let i=0;i<l.NUM;i++){const s=i===d.NEAR,r=t[i];s&&(O[0]=r[0],O[1]=r[1],O[2]=r[2],O[3]=r[3]-this.surface.view.state.camera.near);const o=s?O:r;let a;for(a=0;a<8;a++){const t=e[a];if(o[0]*t[0]+o[1]*t[1]+o[2]*t[2]+o[3]<0)break}if(8===a)return!1}return!0}computeElevationBounds(){super.computeElevationBounds(),this._updateOBB()}createGeometry(){const t=this._getPatchType(this.lij[1],this.lij[0]);p(this.renderData,t),this.setMemoryDirty()}_updateOBB(){const t=this.extentInRadians,e=this.obb;for(let i=0;i<2;i++){const s=this.elevationBounds[i];let r=4*i;a(e[r++],t[0],t[1],this.ellipsoid.radius,s),a(e[r++],t[0],t[3],this.ellipsoid.radius,s),a(e[r++],t[2],t[3],this.ellipsoid.radius,s),a(e[r++],t[2],t[1],this.ellipsoid.radius,s)}if(this.surface.isWebMercator)switch(this._getPatchType(this.lij[1],this.lij[0])){case u.HAS_NORTH_POLE:i(e[1],0,0,this.ellipsoid.radius),i(e[2],0,0,this.ellipsoid.radius),i(e[5],0,0,this.ellipsoid.radius),i(e[6],0,0,this.ellipsoid.radius);break;case u.HAS_SOUTH_POLE:i(e[0],0,0,-this.ellipsoid.radius),i(e[3],0,0,-this.ellipsoid.radius),i(e[4],0,0,-this.ellipsoid.radius),i(e[7],0,0,-this.ellipsoid.radius)}}_getPatchType(t,e){return t===(1<<e)-1?0===t?u.HAS_BOTH_POLES:u.HAS_SOUTH_POLE:0===t?u.HAS_NORTH_POLE:u.REGULAR}intersectsRay(t,e,i,s){const r=this._center[E.MIDDLE],o=r[3]+i,a=e[0]*e[0]+e[1]*e[1]+e[2]*e[2],n=r[0]-t[0],h=r[1]-t[1],l=r[2]-t[2],d=(n*e[0]+h*e[1]+l*e[2])/a,c=e[0]*d-n,u=e[1]*d-h,p=e[2]*d-l;return c*c+u*u+p*p<o*o}getDefaultVerticesPerRowOnLevel(){return this.level<L.length?L[this.level]+1:2}updateCornerElevations(){m(this.renderData)}updateEdgeElevations(){_(this.renderData)}}const L=[128,64,32,16,16,8,8,4],O=c();var E;!function(t){t[t.TOP=0]="TOP",t[t.MIDDLE=1]="MIDDLE",t[t.BOTTOM=2]="BOTTOM"}(E||(E={}));export{E as CenterPosition,D as SphericalPatch};