@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 e from"../../../../request.js";import{binaryIndexOf as t,flatten as r,splitIntoChunks as o}from"../../../../core/arrayUtils.js";import n from"../../../../core/Error.js";import a from"../../../../core/has.js";import{isSome as i,isNone as s}from"../../../../core/maybe.js";import{eachAlways as c}from"../../../../core/promiseUtils.js";import{isInt16Array as l,isInt32Array as u}from"../../../../core/typedArrayUtil.js";import{g as f}from"../../../../chunks/mat3.js";import{c as p}from"../../../../chunks/mat3f64.js";import{a as m}from"../../../../chunks/mat4.js";import{c as h}from"../../../../chunks/mat4f64.js";import{a as d,m as y,c as S}from"../../../../chunks/quat.js";import{b}from"../../../../chunks/quatf32.js";import{s as g,c as w,v as E,q as T,g as I,a as M,m as v}from"../../../../chunks/vec3.js";import{c as R}from"../../../../chunks/vec3f64.js";import{c as x}from"../../../../chunks/vec4f64.js";import{projectBoundingSphere as j,canProjectWithoutEngine as C,projectBuffer as N,computeTranslationToOriginAndRotation as q,projectVectorToVector as k}from"../../../../geometry/projection.js";import{getSphericalPCPF as U,getReferenceEllipsoid as D}from"../../../../geometry/projectionEllipsoid.js";import _ from"../../../../geometry/SpatialReference.js";import{create as W,empty as z,expandPointInPlace as F,intersects as O}from"../../../../geometry/support/aaBoundingRect.js";import{isPlateCarree as A}from"../../../../geometry/support/spatialReferenceUtils.js";import G from"../../../../rest/support/Query.js";import{readBinaryAttribute as K}from"./I3SBinaryReader.js";import{computeGlobalTransformation as L}from"./I3SProjectionUtil.js";import{createSolidEdgeMaterial as B,createMaterialFromEdges as P}from"../support/edgeUtils.js";import{parseColorMixMode as $,ColorMixModeEnum as Q}from"../support/symbolColorUtils.js";import{create as Z,compute as H,corners as J}from"../../support/orientedBoundingBox.js";function V(e){return e&&parseInt(e.substring(e.lastIndexOf("/")+1,e.length),10)}function X(e){if(a("disable-feature:i3s-draco")||!e)return!1;for(const r of e)for(const e of r.geometryBuffers){var t;if("draco"===(null==(t=e.compressedAttributes)?void 0:t.encoding))return!0}return!1}function Y(e,t,r,o,n,a){n.traverse(r,(r=>{let n=r.mbs;t!==o&&(n=ne,j(r.mbs,o,n,t));const i=ie(e,n);return i!==ae.OUTSIDE&&(a(r,i),!0)}))}function ee(e,t,r){let o=0,n=0;for(let a=0;a<t.length&&o<e.length;a++)e[o]===t[a]&&(r(a)&&(e[n]=e[o],n++),o++);e.length=n}function te(e,r,o){let n=0,a=0;for(;n<o.length;){t(e,o[n])>=0===r&&(o[a]=o[n],a++),n++}o.length=a}const re=W();function oe(e,t){if(0===t.rotationScale[1]&&0===t.rotationScale[2]&&0===t.rotationScale[3]&&0===t.rotationScale[5]&&0===t.rotationScale[6]&&0===t.rotationScale[7])return re[0]=(e[0]-t.position[0])/t.rotationScale[0],re[1]=(e[1]-t.position[1])/t.rotationScale[4],re[2]=(e[2]-t.position[0])/t.rotationScale[0],re[3]=(e[3]-t.position[1])/t.rotationScale[4],re}const ne=x();var ae;function ie(e,t){const r=t[0],o=t[1],n=t[3],a=e[0]-r,i=r-e[2],s=e[1]-o,c=o-e[3],l=Math.max(a,i,0),u=Math.max(s,c,0),f=l*l+u*u;if(f>n*n)return ae.OUTSIDE;if(f>0)return ae.INTERSECTS_CENTER_OUTSIDE;return-Math.max(a,i,s,c)>n?ae.INSIDE:ae.INTERSECTS_CENTER_INSIDE}function se(e,t){const r=t[0],o=t[1],n=t[2],a=t[3],i=e[0]-r,s=r-e[3],c=e[1]-o,l=o-e[4],u=e[2]-n,f=n-e[5],p=Math.max(i,s,0),m=Math.max(c,l,0),h=Math.max(u,f,0),d=p*p+m*m+h*h;if(d>a*a)return ae.OUTSIDE;if(d>0)return ae.INTERSECTS_CENTER_OUTSIDE;return-Math.max(i,s,c,l,u,f)>a?ae.INSIDE:ae.INTERSECTS_CENTER_INSIDE}function ce(e,t,r){const o=[],n=r&&r.missingFields,a=r&&r.originalFields;for(const i of e){const e=i.toLowerCase();let r=!1;for(const n of t)if(e===n.name.toLowerCase()){o.push(n.name),r=!0,a&&a.push(i);break}!r&&n&&n.push(i)}return o}async function le(e,t,o,a,c){if(0===t.length)return[];const l=e.attributeStorageInfo;if(i(e.associatedLayer))try{return await fe(e.associatedLayer,t,o,a)}catch(u){if(e.associatedLayer.loaded)throw u}if(l){const i=ue(t,o,c);if(s(i))throw new n("scenelayer:features-not-loaded","Tried to query attributes for unloaded features");const u=e.parsedUrl.path,f=await Promise.all(i.map((e=>me(u,l,e.node,e.indices,a).then((t=>{for(let r=0;r<e.graphics.length;r++){const o=e.graphics[r],n=t[r];if(o.attributes)for(const e in o.attributes)e in n||(n[e]=o.attributes[e]);o.attributes=n}return e.graphics})))));return r(f)}throw new n("scenelayer:no-attribute-source","This scene layer does not have a source for attributes available")}function ue(e,t,r){const o=new Map,n=[],a=r();for(const i of e){const e=i.attributes[t];for(let t=0;t<a.length;t++){const r=a[t],s=r.featureIds.indexOf(e);if(s>=0){let e=o.get(r.node);e||(e={node:r.node,indices:[],graphics:[]},n.push(e),o.set(r.node,e)),e.indices.push(s),e.graphics.push(i);for(let r=t;r>0;r--)a[r]=a[r-1];a[0]=r;break}}}return n}async function fe(e,t,r,o){t.sort(((e,t)=>e.attributes[r]-t.attributes[r]));const n=t.map((e=>e.attributes[r])),a=[],i=ce(o,e.fields,{originalFields:a}),s=await pe(e,n,i);for(let c=0;c<t.length;c++){const e=t[c],r=s[c],o={};if(e.attributes)for(const t in e.attributes)o[t]=e.attributes[t];for(let t=0;t<a.length;t++)o[a[t]]=r[i[t]];e.attributes=o}return t}function pe(e,t,a){const i=e.capabilities.query.maxRecordCount;if(null!=i&&t.length>i){const n=o(t,i);return Promise.all(n.map((t=>pe(e,t,a)))).then(r)}const s=new G({objectIds:t,outFields:a,orderByFields:[e.objectIdField]});return e.queryFeatures(s).then((e=>{if(e&&e.features&&e.features.length===t.length)return e.features.map((e=>e.attributes));throw new n("scenelayer:feature-not-in-associated-layer","Feature not found in associated feature layer")}))}function me(t,r,o,n,a){const i=[];for(const e of r)if(e&&a.includes(e.name)){const r=`${t}/nodes/${o.resources.attributes}/attributes/${e.key}/0`;i.push({url:r,storageInfo:e})}return c(i.map((t=>e(t.url,{responseType:"array-buffer"}).then((e=>K(t.storageInfo,e.data)))))).then((e=>{const t=[];for(const r of n){const o={};for(let t=0;t<e.length;t++)null!=e[t].value&&(o[i[t].storageInfo.name]=ye(e[t].value,r));t.push(o)}return t}))}!function(e){e[e.OUTSIDE=0]="OUTSIDE",e[e.INTERSECTS_CENTER_OUTSIDE=1]="INTERSECTS_CENTER_OUTSIDE",e[e.INTERSECTS_CENTER_INSIDE=2]="INTERSECTS_CENTER_INSIDE",e[e.INSIDE=3]="INSIDE"}(ae||(ae={}));const he=-32768,de=-(2**31);function ye(e,t){if(!e)return null;const r=e[t];if(l(e))return r===he?null:r;if(u(e))return r===de?null:r;return r!=r?null:r}function Se(e){const t=e.store.indexCRS||e.store.geographicCRS,r=void 0===t?e.store.indexWKT:void 0;if(r){if(!e.spatialReference)throw new n("layerview:no-store-spatial-reference-wkt-index-and-no-layer-spatial-reference","Found indeWKT in the scene layer store but no layer spatial reference",{});if(r!==e.spatialReference.wkt)throw new n("layerview:store-spatial-reference-wkt-index-incompatible","The indeWKT of the scene layer store does not match the WKT of the layer spatial reference",{})}const o=t?new _(V(t)):e.spatialReference;return o.equals(e.spatialReference)?e.spatialReference:o}function be(e){const t=e.store.vertexCRS||e.store.projectedCRS,r=void 0===t?e.store.vertexWKT:void 0;if(r){if(!e.spatialReference)throw new n("layerview:no-store-spatial-reference-wkt-vertex-and-no-layer-spatial-reference","Found vertexWKT in the scene layer store but no layer spatial reference",{});if(r!==e.spatialReference.wkt)throw new n("layerview:store-spatial-reference-wkt-vertex-incompatible","The vertexWKT of the scene layer store does not match the WKT of the layer spatial reference",{})}const o=t?new _(V(t)):e.spatialReference;return o.equals(e.spatialReference)?e.spatialReference:o}function ge(e,t){return s(t)?"@null":t===U(t)?"@ECEF":e.equals(t)?"":null!=t.wkid?"@"+t.wkid:null}function we(e,t,r){if(!C(e,t))throw new n("layerview:spatial-reference-incompatible","The spatial reference of this scene layer is incompatible with the spatial reference of the view",{});if("local"===r&&!Ee(e,t))throw new n("layerview:spatial-reference-incompatible","The spatial reference of this scene layer is incompatible with the spatial reference of the view",{})}function Ee(e,t){return e.equals(t)||e.isWGS84&&t.isWebMercator||e.isWebMercator&&t.isWGS84}function Te(e,t,r){const o=Se(e),n=be(e);we(o,t,r),we(n,t,r)}function Ie(e){return(null==e.geometryType||"triangles"===e.geometryType)&&((null==e.topology||"PerAttributeArray"===e.topology)&&(null!=e.vertexAttributes&&null!=e.vertexAttributes.position))}function Me(e){if(null==e.store||null==e.store.defaultGeometrySchema||!Ie(e.store.defaultGeometrySchema))throw new n("scenelayer:unsupported-geometry-schema","The geometry schema of this scene layer is not supported.",{url:e.parsedUrl.path})}function ve(e,t){Te(e,t.spatialReference,t.viewingMode)}function Re(e){return null!=e.geometryType&&"points"===e.geometryType&&((null==e.topology||"PerAttributeArray"===e.topology)&&((null==e.encoding||""===e.encoding||"lepcc-xyz"===e.encoding)&&(null!=e.vertexAttributes&&null!=e.vertexAttributes.position)))}function xe(e){if(null==e.store||null==e.store.defaultGeometrySchema||!Re(e.store.defaultGeometrySchema))throw new n("pointcloud:unsupported-geometry-schema","The geometry schema of this point cloud scene layer is not supported.",{})}function je(e,t){we(e.spatialReference,t.spatialReference,t.viewingMode)}function Ce(e){return"simple"===e.type||"class-breaks"===e.type||"unique-value"===e.type}function Ne(e){return"mesh-3d"===e.type}function qe(e){if(null==e||!Ce(e))return!0;if(("unique-value"===e.type||"class-breaks"===e.type)&&null==e.defaultSymbol)return!0;const t=e.getSymbols();if(0===t.length)return!0;for(const r of t){if(!Ne(r)||0===r.symbolLayers.length)return!0;for(const e of r.symbolLayers.items)if("fill"!==e.type||s(e.material)||s(e.material.color)||"replace"!==e.material.colorMixMode)return!0}return!1}const ke=B({color:[0,0,0,0],opacity:0});class Ue{constructor(){this.edgeMaterial=null,this.material=null,this.castShadows=!0}}function De(e){const t=new Ue;let r=!1,o=!1;for(const n of e.symbolLayers.items)if("fill"===n.type&&n.enabled){const e=n.material,a=n.edges;if(i(e)&&!r){const o=e.color,a=$(e.colorMixMode);i(o)?t.material={color:[o.r/255,o.g/255,o.b/255],alpha:o.a,colorMixMode:a}:t.material={color:[1,1,1],alpha:1,colorMixMode:Q.Multiply},t.castShadows=n.castShadows,r=!0}i(a)&&!o&&(t.edgeMaterial=P(a,{}),o=!0)}return t.material||(t.material={color:[1,1,1],alpha:1,colorMixMode:Q.Multiply}),t}function _e(e,t){return(0|e)+(0|t)|0}function We(e,t,r,o,n=0){o===U(o)?t.isGeographic?$e(e,r,t,n):Pe(e,r,t,n):t.isWGS84&&(o.isWebMercator||A(o))?ze(t,e,o,r,n):t.isWebMercator&&A(o)?Le(t,e,o,r,n):e===r?(r.center[2]+=n,N(r.center,t,0,r.center,o,0,1)):(g(r.center,e.center[0],e.center[1],e.center[2]+n),N(r.center,t,0,r.center,o,0,1),d(r.quaternion,e.quaternion),w(r.halfSize,e.halfSize))}function ze(e,t,r,o,n){w(Ge,t.center),Ge[2]+=n;const a=U(r);N(Ge,e,0,Ge,a,0,1),Be(a,t,Ge,r,o)}const Fe=new Float64Array(24),Oe={data:Fe,size:3},Ae=R(),Ge=R(),Ke=p();function Le(e,t,r,o,n){w(Ge,t.center),Ge[2]+=n,Be(e,t,Ge,r,o)}function Be(e,t,r,o,n){const a=f(Ke,t.quaternion);for(let i=0;i<8;++i){for(let e=0;e<3;++e)Ae[e]=t.halfSize[e]*(0!=(i&1<<e)?-1:1);for(let e=0;e<3;++e){let t=r[e];for(let r=0;r<3;++r)t+=Ae[r]*a[3*r+e];Fe[3*i+e]=t}}N(Fe,e,0,Fe,o,0,8),H(Oe,n)}function Pe(e,t,r,o){J(e,Je),g(t.center,e.center[0],e.center[1],e.center[2]+o),q(r,t.center,Ze,U(r)),g(t.center,Ze[12],Ze[13],Ze[14]);const n=2*Math.sqrt(1+Ze[0]+Ze[5]+Ze[10]);He[0]=(Ze[6]-Ze[9])/n,He[1]=(Ze[8]-Ze[2])/n,He[2]=(Ze[1]-Ze[4])/n,He[3]=.25*n,y(t.quaternion,He,e.quaternion),S(He,t.quaternion);let a=0,i=0,s=0;for(const c of Je)c[2]+=o,N(c,r,0,c,U(r),0,1),E(et,c,t.center),T(et,et,He),a=Math.max(a,Math.abs(et[0])),i=Math.max(i,Math.abs(et[1])),s=Math.max(s,Math.abs(et[2]));g(t.halfSize,a,i,s)}function $e(e,t,r,o){const n=D(r),a=1+Math.max(0,o)/(n.radius+e.center[2]);g(t.center,e.center[0],e.center[1],e.center[2]+o),N(t.center,r,0,t.center,U(r),0,1),d(t.quaternion,e.quaternion),S(He,e.quaternion),g(et,0,0,1),T(et,et,He),g(et,e.halfSize[0]*Math.abs(et[0]),e.halfSize[1]*Math.abs(et[1]),e.halfSize[2]*Math.abs(et[2])),I(et,et,n.inverseFlattening),M(t.halfSize,e.halfSize,et),I(t.halfSize,t.halfSize,a)}function Qe(e,t,r,o,n,a){if(!a||0===a.length||s(t))return null;const c=L(e.mbs,n,r,t);let l;m(rt,c);const u=()=>{if(!l)if(l=Je,z(Xe),i(e.serviceObb)){We(e.serviceObb,r,Ye,t,n),J(Ye,l);for(const e of l)v(e,e,rt),F(Xe,e)}else{const o=e.mbs,a=o[3];k(o,r,et,t),v(et,et,rt),et[2]+=n;for(let e=0;e<8;++e){const t=1&e?a:-a,r=2&e?a:-a,o=4&e?a:-a,n=l[e];w(n,[et[0]+t,et[1]+r,et[2]+o]),F(Xe,n)}}};let f=1/0,p=-1/0;const h=e=>{if("replace"!==e.type)return;const r=e.geometry;if(!r.hasZ)return;z(Ve);const n=r.spatialReference||o,a=r.rings.reduce(((e,r)=>r.reduce(((e,r)=>(k(r,n,et,t),v(et,et,rt),F(Ve,et),Math.min(et[2],e))),e)),1/0);u(),O(Xe,Ve)&&(f=Math.min(f,a),p=Math.max(p,a))};if(a.forEach((e=>h(e))),f===1/0)return null;const d=(e,t,r)=>{v(et,r,c),e[t+0]=et[0],e[t+1]=et[1],e[t+2]=et[2],t+=24,r[2]=f,v(et,r,c),e[t+0]=et[0],e[t+1]=et[1],e[t+2]=et[2],t+=24,r[2]=p,v(et,r,c),e[t+0]=et[0],e[t+1]=et[1],e[t+2]=et[2]};for(let i=0;i<8;++i)d(tt.data,3*i,l[i]);return H(tt)}const Ze=h(),He=b(),Je=[[0,0,0],[0,0,0],[0,0,0],[0,0,0],[0,0,0],[0,0,0],[0,0,0],[0,0,0]],Ve=W(),Xe=W(),Ye=Z(),et=[0,0,0],tt={data:new Array(72),size:3},rt=h();export{ae as MbsIntersectResult,Ue as SymbolInfo,_e as addWraparound,je as checkPointCloudLayerCompatibleWithView,xe as checkPointCloudLayerValid,ve as checkSceneLayerCompatibleWithView,Me as checkSceneLayerValid,we as checkSpatialReference,Te as checkSpatialReferences,Qe as computeVisibilityObb,X as containsDraco,V as extractWkid,ee as filterInPlace,ce as findFieldsCaseInsensitive,Y as findIntersectingNodes,ge as getCacheKeySuffix,ye as getCachedAttributeValue,oe as getClipRect,Se as getIndexCrs,De as getSymbolInfo,be as getVertexCrs,se as intersectBoundingBoxWithMbs,ie as intersectBoundingRectWithMbs,Ee as isSupportedLocalModeProjection,te as objectIdFilter,qe as rendererNeedsTextures,We as transformObb,ke as transparentEdgeMaterial,le as whenGraphicAttributes};
5
+ import e from"../../../../request.js";import{binaryIndexOf as t,flatten as r,splitIntoChunks as o}from"../../../../core/arrayUtils.js";import n from"../../../../core/Error.js";import a from"../../../../core/has.js";import{isSome as s,isNone as i}from"../../../../core/maybe.js";import{eachAlways as c}from"../../../../core/promiseUtils.js";import{isInt16Array as l,isInt32Array as u}from"../../../../core/typedArrayUtil.js";import{g as f}from"../../../../chunks/mat3.js";import{c as p}from"../../../../chunks/mat3f64.js";import{a as m}from"../../../../chunks/mat4.js";import{c as h}from"../../../../chunks/mat4f64.js";import{a as d,m as y,c as S}from"../../../../chunks/quat.js";import{b}from"../../../../chunks/quatf32.js";import{s as g,c as w,v as E,q as T,g as I,a as M,m as v}from"../../../../chunks/vec3.js";import{c as R}from"../../../../chunks/vec3f64.js";import{c as x}from"../../../../chunks/vec4f64.js";import{projectBoundingSphere as j,canProjectWithoutEngine as C,projectBuffer as N,computeTranslationToOriginAndRotation as q,projectVectorToVector as k}from"../../../../geometry/projection.js";import{getSphericalPCPF as U,getReferenceEllipsoid as D}from"../../../../geometry/projectionEllipsoid.js";import _ from"../../../../geometry/SpatialReference.js";import{create as W,empty as z,expandPointInPlace as F,intersects as O}from"../../../../geometry/support/aaBoundingRect.js";import{isPlateCarree as A}from"../../../../geometry/support/spatialReferenceUtils.js";import G from"../../../../rest/support/Query.js";import{readBinaryAttribute as K}from"./I3SBinaryReader.js";import{computeGlobalTransformation as L}from"./I3SProjectionUtil.js";import{createSolidEdgeMaterial as B,createMaterialFromEdges as P}from"../support/edgeUtils.js";import{parseColorMixMode as $,ColorMixModeEnum as Q}from"../support/symbolColorUtils.js";import{create as Z,compute as H,corners as J}from"../../support/orientedBoundingBox.js";function V(e){return e&&parseInt(e.substring(e.lastIndexOf("/")+1,e.length),10)}function X(e){if(a("disable-feature:i3s-draco")||!e)return!1;for(const t of e)for(const e of t.geometryBuffers)if("draco"===e.compressedAttributes?.encoding)return!0;return!1}function Y(e,t,r,o,n,a){n.traverse(r,(r=>{let n=r.mbs;t!==o&&(n=ne,j(r.mbs,o,n,t));const s=se(e,n);return s!==ae.OUTSIDE&&(a(r,s),!0)}))}function ee(e,t,r){let o=0,n=0;for(let a=0;a<t.length&&o<e.length;a++)e[o]===t[a]&&(r(a)&&(e[n]=e[o],n++),o++);e.length=n}function te(e,r,o){let n=0,a=0;for(;n<o.length;){t(e,o[n])>=0===r&&(o[a]=o[n],a++),n++}o.length=a}const re=W();function oe(e,t){if(0===t.rotationScale[1]&&0===t.rotationScale[2]&&0===t.rotationScale[3]&&0===t.rotationScale[5]&&0===t.rotationScale[6]&&0===t.rotationScale[7])return re[0]=(e[0]-t.position[0])/t.rotationScale[0],re[1]=(e[1]-t.position[1])/t.rotationScale[4],re[2]=(e[2]-t.position[0])/t.rotationScale[0],re[3]=(e[3]-t.position[1])/t.rotationScale[4],re}const ne=x();var ae;function se(e,t){const r=t[0],o=t[1],n=t[3],a=e[0]-r,s=r-e[2],i=e[1]-o,c=o-e[3],l=Math.max(a,s,0),u=Math.max(i,c,0),f=l*l+u*u;if(f>n*n)return ae.OUTSIDE;if(f>0)return ae.INTERSECTS_CENTER_OUTSIDE;return-Math.max(a,s,i,c)>n?ae.INSIDE:ae.INTERSECTS_CENTER_INSIDE}function ie(e,t){const r=t[0],o=t[1],n=t[2],a=t[3],s=e[0]-r,i=r-e[3],c=e[1]-o,l=o-e[4],u=e[2]-n,f=n-e[5],p=Math.max(s,i,0),m=Math.max(c,l,0),h=Math.max(u,f,0),d=p*p+m*m+h*h;if(d>a*a)return ae.OUTSIDE;if(d>0)return ae.INTERSECTS_CENTER_OUTSIDE;return-Math.max(s,i,c,l,u,f)>a?ae.INSIDE:ae.INTERSECTS_CENTER_INSIDE}function ce(e,t,r){const o=[],n=r&&r.missingFields,a=r&&r.originalFields;for(const s of e){const e=s.toLowerCase();let r=!1;for(const n of t)if(e===n.name.toLowerCase()){o.push(n.name),r=!0,a&&a.push(s);break}!r&&n&&n.push(s)}return o}async function le(e,t,o,a,c){if(0===t.length)return[];const l=e.attributeStorageInfo;if(s(e.associatedLayer))try{return await fe(e.associatedLayer,t,o,a)}catch(u){if(e.associatedLayer.loaded)throw u}if(l){const s=ue(t,o,c);if(i(s))throw new n("scenelayer:features-not-loaded","Tried to query attributes for unloaded features");const u=e.parsedUrl.path,f=await Promise.all(s.map((e=>me(u,l,e.node,e.indices,a).then((t=>{for(let r=0;r<e.graphics.length;r++){const o=e.graphics[r],n=t[r];if(o.attributes)for(const e in o.attributes)e in n||(n[e]=o.attributes[e]);o.attributes=n}return e.graphics})))));return r(f)}throw new n("scenelayer:no-attribute-source","This scene layer does not have a source for attributes available")}function ue(e,t,r){const o=new Map,n=[],a=r();for(const s of e){const e=s.attributes[t];for(let t=0;t<a.length;t++){const r=a[t],i=r.featureIds.indexOf(e);if(i>=0){let e=o.get(r.node);e||(e={node:r.node,indices:[],graphics:[]},n.push(e),o.set(r.node,e)),e.indices.push(i),e.graphics.push(s);for(let r=t;r>0;r--)a[r]=a[r-1];a[0]=r;break}}}return n}async function fe(e,t,r,o){t.sort(((e,t)=>e.attributes[r]-t.attributes[r]));const n=t.map((e=>e.attributes[r])),a=[],s=ce(o,e.fields,{originalFields:a}),i=await pe(e,n,s);for(let c=0;c<t.length;c++){const e=t[c],r=i[c],o={};if(e.attributes)for(const t in e.attributes)o[t]=e.attributes[t];for(let t=0;t<a.length;t++)o[a[t]]=r[s[t]];e.attributes=o}return t}function pe(e,t,a){const s=e.capabilities.query.maxRecordCount;if(null!=s&&t.length>s){const n=o(t,s);return Promise.all(n.map((t=>pe(e,t,a)))).then(r)}const i=new G({objectIds:t,outFields:a,orderByFields:[e.objectIdField]});return e.queryFeatures(i).then((e=>{if(e&&e.features&&e.features.length===t.length)return e.features.map((e=>e.attributes));throw new n("scenelayer:feature-not-in-associated-layer","Feature not found in associated feature layer")}))}function me(t,r,o,n,a){const s=[];for(const e of r)if(e&&a.includes(e.name)){const r=`${t}/nodes/${o.resources.attributes}/attributes/${e.key}/0`;s.push({url:r,storageInfo:e})}return c(s.map((t=>e(t.url,{responseType:"array-buffer"}).then((e=>K(t.storageInfo,e.data)))))).then((e=>{const t=[];for(const r of n){const o={};for(let t=0;t<e.length;t++)null!=e[t].value&&(o[s[t].storageInfo.name]=ye(e[t].value,r));t.push(o)}return t}))}!function(e){e[e.OUTSIDE=0]="OUTSIDE",e[e.INTERSECTS_CENTER_OUTSIDE=1]="INTERSECTS_CENTER_OUTSIDE",e[e.INTERSECTS_CENTER_INSIDE=2]="INTERSECTS_CENTER_INSIDE",e[e.INSIDE=3]="INSIDE"}(ae||(ae={}));const he=-32768,de=-(2**31);function ye(e,t){if(!e)return null;const r=e[t];if(l(e))return r===he?null:r;if(u(e))return r===de?null:r;return r!=r?null:r}function Se(e){const t=e.store.indexCRS||e.store.geographicCRS,r=void 0===t?e.store.indexWKT:void 0;if(r){if(!e.spatialReference)throw new n("layerview:no-store-spatial-reference-wkt-index-and-no-layer-spatial-reference","Found indeWKT in the scene layer store but no layer spatial reference",{});if(r!==e.spatialReference.wkt)throw new n("layerview:store-spatial-reference-wkt-index-incompatible","The indeWKT of the scene layer store does not match the WKT of the layer spatial reference",{})}const o=t?new _(V(t)):e.spatialReference;return o.equals(e.spatialReference)?e.spatialReference:o}function be(e){const t=e.store.vertexCRS||e.store.projectedCRS,r=void 0===t?e.store.vertexWKT:void 0;if(r){if(!e.spatialReference)throw new n("layerview:no-store-spatial-reference-wkt-vertex-and-no-layer-spatial-reference","Found vertexWKT in the scene layer store but no layer spatial reference",{});if(r!==e.spatialReference.wkt)throw new n("layerview:store-spatial-reference-wkt-vertex-incompatible","The vertexWKT of the scene layer store does not match the WKT of the layer spatial reference",{})}const o=t?new _(V(t)):e.spatialReference;return o.equals(e.spatialReference)?e.spatialReference:o}function ge(e,t){return i(t)?"@null":t===U(t)?"@ECEF":e.equals(t)?"":null!=t.wkid?"@"+t.wkid:null}function we(e,t,r){if(!C(e,t))throw new n("layerview:spatial-reference-incompatible","The spatial reference of this scene layer is incompatible with the spatial reference of the view",{});if("local"===r&&!Ee(e,t))throw new n("layerview:spatial-reference-incompatible","The spatial reference of this scene layer is incompatible with the spatial reference of the view",{})}function Ee(e,t){return e.equals(t)||e.isWGS84&&t.isWebMercator||e.isWebMercator&&t.isWGS84}function Te(e,t,r){const o=Se(e),n=be(e);we(o,t,r),we(n,t,r)}function Ie(e){return(null==e.geometryType||"triangles"===e.geometryType)&&((null==e.topology||"PerAttributeArray"===e.topology)&&(null!=e.vertexAttributes&&null!=e.vertexAttributes.position))}function Me(e){if(null==e.store||null==e.store.defaultGeometrySchema||!Ie(e.store.defaultGeometrySchema))throw new n("scenelayer:unsupported-geometry-schema","The geometry schema of this scene layer is not supported.",{url:e.parsedUrl.path})}function ve(e,t){Te(e,t.spatialReference,t.viewingMode)}function Re(e){return null!=e.geometryType&&"points"===e.geometryType&&((null==e.topology||"PerAttributeArray"===e.topology)&&((null==e.encoding||""===e.encoding||"lepcc-xyz"===e.encoding)&&(null!=e.vertexAttributes&&null!=e.vertexAttributes.position)))}function xe(e){if(null==e.store||null==e.store.defaultGeometrySchema||!Re(e.store.defaultGeometrySchema))throw new n("pointcloud:unsupported-geometry-schema","The geometry schema of this point cloud scene layer is not supported.",{})}function je(e,t){we(e.spatialReference,t.spatialReference,t.viewingMode)}function Ce(e){return"simple"===e.type||"class-breaks"===e.type||"unique-value"===e.type}function Ne(e){return"mesh-3d"===e.type}function qe(e){if(null==e||!Ce(e))return!0;if(("unique-value"===e.type||"class-breaks"===e.type)&&null==e.defaultSymbol)return!0;const t=e.getSymbols();if(0===t.length)return!0;for(const r of t){if(!Ne(r)||0===r.symbolLayers.length)return!0;for(const e of r.symbolLayers.items)if("fill"!==e.type||i(e.material)||i(e.material.color)||"replace"!==e.material.colorMixMode)return!0}return!1}const ke=B({color:[0,0,0,0],opacity:0});class Ue{constructor(){this.edgeMaterial=null,this.material=null,this.castShadows=!0}}function De(e){const t=new Ue;let r=!1,o=!1;for(const n of e.symbolLayers.items)if("fill"===n.type&&n.enabled){const e=n.material,a=n.edges;if(s(e)&&!r){const o=e.color,a=$(e.colorMixMode);s(o)?t.material={color:[o.r/255,o.g/255,o.b/255],alpha:o.a,colorMixMode:a}:t.material={color:[1,1,1],alpha:1,colorMixMode:Q.Multiply},t.castShadows=n.castShadows,r=!0}s(a)&&!o&&(t.edgeMaterial=P(a,{}),o=!0)}return t.material||(t.material={color:[1,1,1],alpha:1,colorMixMode:Q.Multiply}),t}function _e(e,t){return(0|e)+(0|t)|0}function We(e,t,r,o,n=0){o===U(o)?t.isGeographic?$e(e,r,t,n):Pe(e,r,t,n):t.isWGS84&&(o.isWebMercator||A(o))?ze(t,e,o,r,n):t.isWebMercator&&A(o)?Le(t,e,o,r,n):e===r?(r.center[2]+=n,N(r.center,t,0,r.center,o,0,1)):(g(r.center,e.center[0],e.center[1],e.center[2]+n),N(r.center,t,0,r.center,o,0,1),d(r.quaternion,e.quaternion),w(r.halfSize,e.halfSize))}function ze(e,t,r,o,n){w(Ge,t.center),Ge[2]+=n;const a=U(r);N(Ge,e,0,Ge,a,0,1),Be(a,t,Ge,r,o)}const Fe=new Float64Array(24),Oe={data:Fe,size:3},Ae=R(),Ge=R(),Ke=p();function Le(e,t,r,o,n){w(Ge,t.center),Ge[2]+=n,Be(e,t,Ge,r,o)}function Be(e,t,r,o,n){const a=f(Ke,t.quaternion);for(let s=0;s<8;++s){for(let e=0;e<3;++e)Ae[e]=t.halfSize[e]*(0!=(s&1<<e)?-1:1);for(let e=0;e<3;++e){let t=r[e];for(let r=0;r<3;++r)t+=Ae[r]*a[3*r+e];Fe[3*s+e]=t}}N(Fe,e,0,Fe,o,0,8),H(Oe,n)}function Pe(e,t,r,o){J(e,Je),g(t.center,e.center[0],e.center[1],e.center[2]+o),q(r,t.center,Ze,U(r)),g(t.center,Ze[12],Ze[13],Ze[14]);const n=2*Math.sqrt(1+Ze[0]+Ze[5]+Ze[10]);He[0]=(Ze[6]-Ze[9])/n,He[1]=(Ze[8]-Ze[2])/n,He[2]=(Ze[1]-Ze[4])/n,He[3]=.25*n,y(t.quaternion,He,e.quaternion),S(He,t.quaternion);let a=0,s=0,i=0;for(const c of Je)c[2]+=o,N(c,r,0,c,U(r),0,1),E(et,c,t.center),T(et,et,He),a=Math.max(a,Math.abs(et[0])),s=Math.max(s,Math.abs(et[1])),i=Math.max(i,Math.abs(et[2]));g(t.halfSize,a,s,i)}function $e(e,t,r,o){const n=D(r),a=1+Math.max(0,o)/(n.radius+e.center[2]);g(t.center,e.center[0],e.center[1],e.center[2]+o),N(t.center,r,0,t.center,U(r),0,1),d(t.quaternion,e.quaternion),S(He,e.quaternion),g(et,0,0,1),T(et,et,He),g(et,e.halfSize[0]*Math.abs(et[0]),e.halfSize[1]*Math.abs(et[1]),e.halfSize[2]*Math.abs(et[2])),I(et,et,n.inverseFlattening),M(t.halfSize,e.halfSize,et),I(t.halfSize,t.halfSize,a)}function Qe(e,t,r,o,n,a){if(!a||0===a.length||i(t))return null;const c=L(e.mbs,n,r,t);let l;m(rt,c);const u=()=>{if(!l)if(l=Je,z(Xe),s(e.serviceObb)){We(e.serviceObb,r,Ye,t,n),J(Ye,l);for(const e of l)v(e,e,rt),F(Xe,e)}else{const o=e.mbs,a=o[3];k(o,r,et,t),v(et,et,rt),et[2]+=n;for(let e=0;e<8;++e){const t=1&e?a:-a,r=2&e?a:-a,o=4&e?a:-a,n=l[e];w(n,[et[0]+t,et[1]+r,et[2]+o]),F(Xe,n)}}};let f=1/0,p=-1/0;const h=e=>{if("replace"!==e.type)return;const r=e.geometry;if(!r.hasZ)return;z(Ve);const n=r.spatialReference||o,a=r.rings.reduce(((e,r)=>r.reduce(((e,r)=>(k(r,n,et,t),v(et,et,rt),F(Ve,et),Math.min(et[2],e))),e)),1/0);u(),O(Xe,Ve)&&(f=Math.min(f,a),p=Math.max(p,a))};if(a.forEach((e=>h(e))),f===1/0)return null;const d=(e,t,r)=>{v(et,r,c),e[t+0]=et[0],e[t+1]=et[1],e[t+2]=et[2],t+=24,r[2]=f,v(et,r,c),e[t+0]=et[0],e[t+1]=et[1],e[t+2]=et[2],t+=24,r[2]=p,v(et,r,c),e[t+0]=et[0],e[t+1]=et[1],e[t+2]=et[2]};for(let s=0;s<8;++s)d(tt.data,3*s,l[s]);return H(tt)}const Ze=h(),He=b(),Je=[[0,0,0],[0,0,0],[0,0,0],[0,0,0],[0,0,0],[0,0,0],[0,0,0],[0,0,0]],Ve=W(),Xe=W(),Ye=Z(),et=[0,0,0],tt={data:new Array(72),size:3},rt=h();export{ae as MbsIntersectResult,Ue as SymbolInfo,_e as addWraparound,je as checkPointCloudLayerCompatibleWithView,xe as checkPointCloudLayerValid,ve as checkSceneLayerCompatibleWithView,Me as checkSceneLayerValid,we as checkSpatialReference,Te as checkSpatialReferences,Qe as computeVisibilityObb,X as containsDraco,V as extractWkid,ee as filterInPlace,ce as findFieldsCaseInsensitive,Y as findIntersectingNodes,ge as getCacheKeySuffix,ye as getCachedAttributeValue,oe as getClipRect,Se as getIndexCrs,De as getSymbolInfo,be as getVertexCrs,ie as intersectBoundingBoxWithMbs,se as intersectBoundingRectWithMbs,Ee as isSupportedLocalModeProjection,te as objectIdFilter,qe as rendererNeedsTextures,We as transformObb,ke as transparentEdgeMaterial,le as whenGraphicAttributes};
@@ -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 i from"../../../../core/Collection.js";import s from"../../../../core/Handles.js";import r from"../../../../core/Logger.js";import{isSome as n,isNone as o,removeMaybe as l,destroyMaybe as h}from"../../../../core/maybe.js";import a from"../../../../core/PooledArray.js";import{watch as c,sync as d,syncAndInitial as u}from"../../../../core/reactiveUtils.js";import{property as p}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{create as _,empty as f,expand as g,height as T,intersects as y}from"../../../../geometry/support/aaBoundingRect.js";import{FeatureTileDescriptor3D as S,Visibility as v}from"./FeatureTileDescriptor3D.js";import{FeatureTileMeasurements3D as E}from"./FeatureTileMeasurements3D.js";import{toBoundingRect as w}from"../../support/extentUtils.js";import{TaskPriority as R,noBudget as x}from"../../../support/Scheduler.js";const C=r.getLogger("esri.views.3d.layers.support.FeatureTileTree3D");let j=class extends t{constructor(e){super(e),this.tiles=new i,this.tileSize=512,this._idToTile=new Map,this._handles=new s,this._clients=new Set,this._dirty=!1,this._newTiles=new a}get tilingScheme(){const e=this.tilingSchemeOwner.tilingScheme;if(!e)return null;return e.clone()}set filterExtent(e){if(n(e)&&!e.spatialReference.equals(this.viewState.spatialReference))return void C.error("#extent","extent spatial reference needs to be in the same spatial reference as the view");const t=this._get("filterExtent");if(t===e||n(t)&&e&&t.equals(e))return;const i=n(e)?e.clone():null;this._set("filterExtent",i),this._setDirty()}get filterExtentRect(){if(o(this.filterExtent)||!this.tilingScheme)return null;const e=_();return w(this.filterExtent,e,this.tilingScheme.spatialReference),e}get rootTileIds(){return this.filterExtentRect?this.tilingScheme.rootTilesInExtent(this.filterExtentRect):[[0,0,0]]}set suspended(e){e!==this._get("suspended")&&(this._set("suspended",e),this._setDirty())}get updating(){return this._dirty||!!this._pendingTiles}initialize(){this._handles.add([c((()=>[this.tilingScheme,this.tileSize]),(()=>this._reset()),d),c((()=>{var e,t,i;return[this.tileSize,null==(e=this.cameraOnSurface)?void 0:e.location,this.tilingScheme,null==(t=this.viewState)?void 0:t.contentCamera,null==(i=this.focus)?void 0:i.location]}),(()=>this._setDirty()),u)]),this.scheduler&&(this._frameWorker=this.scheduler.registerTask(R.FEATURE_TILE_TREE,this))}destroy(){this._frameWorker=l(this._frameWorker),this._handles=h(this._handles)}addClient(){const e=I();return this._clients.add(e),1===this._clients.size&&this._setDirty(),{remove:()=>this._removeClient(e)}}_removeClient(e){this._clients.delete(e),this._hasClients||this._clear()}get _hasClients(){return this._clients.size>0}_setDirty(){!this._hasClients||this.suspended||this._dirty||(this._frameWorker?(this._dirty=!0,this.notifyChange("updating")):this.runTask(x))}_clear(){this.tiles.removeAll(),this._idToTile.clear(),this._reset(),this._dirty=!1,this.notifyChange("updating")}get running(){return this.updating}runTask(e){this._dirty=!1,this._pendingTiles||(this._startUpdate(),n(this._frameWorker)&&(this._frameWorker.priority=R.FEATURE_TILE_TREE_ACTIVE)),this._subdivideTilesForView(e),!this._pendingTiles&&n(this._frameWorker)&&(this._frameWorker.priority=R.FEATURE_TILE_TREE),this.notifyChange("updating")}_startUpdate(){if(this.suspended)return;if(!this.tilingScheme)return void this._clear();this._tileMeasurements||(this._tileMeasurements=new E({renderCoordsHelper:this.renderCoordsHelper,tilingScheme:this.tilingScheme,tileSize:this.tileSize}));const e=this.viewState.contentCamera;this._tileMeasurements.begin(e,this.focus.location,this.cameraOnSurface.location.z),this._pendingTiles=this._getRootTiles()}_reset(){this._newTiles.clear(),this._tileMeasurements=null,this._pendingTiles=null,this._setDirty()}_getRootTiles(){return this.rootTileIds.map((e=>new S(e[0],e[1],e[2],this.tilingScheme)))}_purgeHorizonTiles(e){e.sort(((e,t)=>{const i=e.measures.screenRect,s=t.measures.screenRect;return i[1]+i[3]-(s[1]+s[3])})),f(k);for(let t=0;t<e.length;t++)if(g(k,e.data[t].measures.screenRect,k),T(k)>z)return e.data.slice(t,e.length);return[]}_subdivideTilesForView(e){if(this._pendingTiles){for(;this._pendingTiles.length>0&&!e.done;){const t=this._pendingTiles.pop();e.madeProgress(),this.filterExtentRect&&!y(this.filterExtentRect,t.extent)||(this._tileMeasurements.updateTile(t),t.measures.visibility!==v.INVISIBLE&&(t.measures.shouldSplit?(this.tilingScheme.ensureMaxLod(t.lij[0]+1),this._pendingTiles.push(...t.getChildren())):this._newTiles.push(t)))}0===this._pendingTiles.length&&(this._updateTiles(this._purgeHorizonTiles(this._newTiles)),this._newTiles.clear(),this._tileMeasurements.end(),this._pendingTiles=null)}}_updateTiles(e){for(const s of this.tiles.items)s.used=!1;const t=e.filter((e=>{const t=this._idToTile.get(e.id);return t?(t.copyMeasurementsFrom(e),t.used=!0):this._idToTile.set(e.id,e),!t})),i=this.tiles.items.filter((e=>!e.used&&(this._idToTile.delete(e.id),!0)));this.tiles.removeMany(i),this.tiles.addMany(t),this._sortTiles()}_sortTiles(){this.viewState.fixedContentCamera||this.tiles.sort(((e,t)=>e.measures.visibility!==t.measures.visibility?e.measures.visibility===v.VISIBLE_ON_SURFACE?-1:1:e.measures.distance-t.measures.distance)),this.tiles.forEach(((e,t)=>e.loadPriority=t))}};e([p({constructOnly:!0})],j.prototype,"scheduler",void 0),e([p({constructOnly:!0})],j.prototype,"renderCoordsHelper",void 0),e([p({constructOnly:!0})],j.prototype,"tilingSchemeOwner",void 0),e([p({constructOnly:!0})],j.prototype,"cameraOnSurface",void 0),e([p({constructOnly:!0})],j.prototype,"focus",void 0),e([p({constructOnly:!0})],j.prototype,"viewState",void 0),e([p({constructOnly:!0})],j.prototype,"terrain",void 0),e([p()],j.prototype,"tiles",void 0),e([p()],j.prototype,"tileSize",void 0),e([p({readOnly:!0})],j.prototype,"tilingScheme",null),e([p()],j.prototype,"filterExtent",null),e([p({readOnly:!0})],j.prototype,"filterExtentRect",null),e([p({readOnly:!0})],j.prototype,"rootTileIds",null),e([p({value:!1})],j.prototype,"suspended",null),e([p({readOnly:!0})],j.prototype,"updating",null),j=e([m("esri.views.3d.layers.support.FeatureTileTree3D")],j);let O=0;function I(){return O++}const k=_(),z=10;export{j as FeatureTileTree3D};
5
+ import{_ as e}from"../../../../chunks/tslib.es6.js";import t from"../../../../core/Accessor.js";import i from"../../../../core/Collection.js";import s from"../../../../core/Handles.js";import r from"../../../../core/Logger.js";import{isSome as n,isNone as o,removeMaybe as l,destroyMaybe as h}from"../../../../core/maybe.js";import a from"../../../../core/PooledArray.js";import{watch as c,sync as d,syncAndInitial as p}from"../../../../core/reactiveUtils.js";import{property as u}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{create as _,empty as f,expand as g,height as T,intersects as y}from"../../../../geometry/support/aaBoundingRect.js";import{FeatureTileDescriptor3D as S,Visibility as E}from"./FeatureTileDescriptor3D.js";import{FeatureTileMeasurements3D as v}from"./FeatureTileMeasurements3D.js";import{toBoundingRect as w}from"../../support/extentUtils.js";import{TaskPriority as R,noBudget as x}from"../../../support/Scheduler.js";const C=r.getLogger("esri.views.3d.layers.support.FeatureTileTree3D");let j=class extends t{constructor(e){super(e),this.tiles=new i,this.tileSize=512,this._idToTile=new Map,this._handles=new s,this._clients=new Set,this._dirty=!1,this._newTiles=new a}get tilingScheme(){const e=this.tilingSchemeOwner.tilingScheme;if(!e)return null;return e.clone()}set filterExtent(e){if(n(e)&&!e.spatialReference.equals(this.viewState.spatialReference))return void C.error("#extent","extent spatial reference needs to be in the same spatial reference as the view");const t=this._get("filterExtent");if(t===e||n(t)&&e&&t.equals(e))return;const i=n(e)?e.clone():null;this._set("filterExtent",i),this._setDirty()}get filterExtentRect(){if(o(this.filterExtent)||!this.tilingScheme)return null;const e=_();return w(this.filterExtent,e,this.tilingScheme.spatialReference),e}get rootTileIds(){return this.filterExtentRect?this.tilingScheme.rootTilesInExtent(this.filterExtentRect):[[0,0,0]]}set suspended(e){e!==this._get("suspended")&&(this._set("suspended",e),this._setDirty())}get updating(){return this._dirty||!!this._pendingTiles}initialize(){this._handles.add([c((()=>[this.tilingScheme,this.tileSize]),(()=>this._reset()),d),c((()=>[this.tileSize,this.cameraOnSurface?.location,this.tilingScheme,this.viewState?.contentCamera,this.focus?.location]),(()=>this._setDirty()),p)]),this.scheduler&&(this._frameWorker=this.scheduler.registerTask(R.FEATURE_TILE_TREE,this))}destroy(){this._frameWorker=l(this._frameWorker),this._handles=h(this._handles)}addClient(){const e=I();return this._clients.add(e),1===this._clients.size&&this._setDirty(),{remove:()=>this._removeClient(e)}}_removeClient(e){this._clients.delete(e),this._hasClients||this._clear()}get _hasClients(){return this._clients.size>0}_setDirty(){!this._hasClients||this.suspended||this._dirty||(this._frameWorker?(this._dirty=!0,this.notifyChange("updating")):this.runTask(x))}_clear(){this.tiles.removeAll(),this._idToTile.clear(),this._reset(),this._dirty=!1,this.notifyChange("updating")}get running(){return this.updating}runTask(e){this._dirty=!1,this._pendingTiles||(this._startUpdate(),n(this._frameWorker)&&(this._frameWorker.priority=R.FEATURE_TILE_TREE_ACTIVE)),this._subdivideTilesForView(e),!this._pendingTiles&&n(this._frameWorker)&&(this._frameWorker.priority=R.FEATURE_TILE_TREE),this.notifyChange("updating")}_startUpdate(){if(this.suspended)return;if(!this.tilingScheme)return void this._clear();this._tileMeasurements||(this._tileMeasurements=new v({renderCoordsHelper:this.renderCoordsHelper,tilingScheme:this.tilingScheme,tileSize:this.tileSize}));const e=this.viewState.contentCamera;this._tileMeasurements.begin(e,this.focus.location,this.cameraOnSurface.location.z),this._pendingTiles=this._getRootTiles()}_reset(){this._newTiles.clear(),this._tileMeasurements=null,this._pendingTiles=null,this._setDirty()}_getRootTiles(){return this.rootTileIds.map((e=>new S(e[0],e[1],e[2],this.tilingScheme)))}_purgeHorizonTiles(e){e.sort(((e,t)=>{const i=e.measures.screenRect,s=t.measures.screenRect;return i[1]+i[3]-(s[1]+s[3])})),f(k);for(let t=0;t<e.length;t++)if(g(k,e.data[t].measures.screenRect,k),T(k)>z)return e.data.slice(t,e.length);return[]}_subdivideTilesForView(e){if(this._pendingTiles){for(;this._pendingTiles.length>0&&!e.done;){const t=this._pendingTiles.pop();e.madeProgress(),this.filterExtentRect&&!y(this.filterExtentRect,t.extent)||(this._tileMeasurements.updateTile(t),t.measures.visibility!==E.INVISIBLE&&(t.measures.shouldSplit?(this.tilingScheme.ensureMaxLod(t.lij[0]+1),this._pendingTiles.push(...t.getChildren())):this._newTiles.push(t)))}0===this._pendingTiles.length&&(this._updateTiles(this._purgeHorizonTiles(this._newTiles)),this._newTiles.clear(),this._tileMeasurements.end(),this._pendingTiles=null)}}_updateTiles(e){for(const s of this.tiles.items)s.used=!1;const t=e.filter((e=>{const t=this._idToTile.get(e.id);return t?(t.copyMeasurementsFrom(e),t.used=!0):this._idToTile.set(e.id,e),!t})),i=this.tiles.items.filter((e=>!e.used&&(this._idToTile.delete(e.id),!0)));this.tiles.removeMany(i),this.tiles.addMany(t),this._sortTiles()}_sortTiles(){this.viewState.fixedContentCamera||this.tiles.sort(((e,t)=>e.measures.visibility!==t.measures.visibility?e.measures.visibility===E.VISIBLE_ON_SURFACE?-1:1:e.measures.distance-t.measures.distance)),this.tiles.forEach(((e,t)=>e.loadPriority=t))}};e([u({constructOnly:!0})],j.prototype,"scheduler",void 0),e([u({constructOnly:!0})],j.prototype,"renderCoordsHelper",void 0),e([u({constructOnly:!0})],j.prototype,"tilingSchemeOwner",void 0),e([u({constructOnly:!0})],j.prototype,"cameraOnSurface",void 0),e([u({constructOnly:!0})],j.prototype,"focus",void 0),e([u({constructOnly:!0})],j.prototype,"viewState",void 0),e([u({constructOnly:!0})],j.prototype,"terrain",void 0),e([u()],j.prototype,"tiles",void 0),e([u()],j.prototype,"tileSize",void 0),e([u({readOnly:!0})],j.prototype,"tilingScheme",null),e([u()],j.prototype,"filterExtent",null),e([u({readOnly:!0})],j.prototype,"filterExtentRect",null),e([u({readOnly:!0})],j.prototype,"rootTileIds",null),e([u({value:!1})],j.prototype,"suspended",null),e([u({readOnly:!0})],j.prototype,"updating",null),j=e([m("esri.views.3d.layers.support.FeatureTileTree3D")],j);let O=0;function I(){return O++}const k=_(),z=10;export{j as FeatureTileTree3D};
@@ -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 t}from"../../../../chunks/tslib.es6.js";import"../../../../geometry.js";import e from"../../../../core/Handles.js";import{initial as r}from"../../../../core/reactiveUtils.js";import{property as o}from"../../../../core/accessorSupport/decorators/property.js";import"../../../../core/arrayUtils.js";import"../../../../core/has.js";import"../../../../core/accessorSupport/ensureType.js";import{subclass as i}from"../../../../core/accessorSupport/decorators/subclass.js";import{WatchUpdatingTracking as s}from"../../../../core/support/WatchUpdatingTracking.js";import{TileTreeDebugger as a}from"../../../support/TileTreeDebugger.js";import p from"../../../../geometry/Polygon.js";let n=class extends a{constructor(t){super(t),this.watchUpdatingTracking=new s,this.handles=new e}initialize(){const{featureTiles:t}=this.view;this.handles.add(t.addClient()),this.watchUpdatingTracking.addOnCollectionChange((()=>null==t?void 0:t.tiles),(()=>this.update()),r)}destroy(){this.handles&&(this.handles.destroy(),this.handles=null),this.watchUpdatingTracking.destroy()}getTiles(){const t=t=>{const[e,r,o]=t.lij;return p.fromExtent(this.view.featureTiles.tilingScheme.getExtentGeometry(e,r,o))};return this.view.featureTiles.tiles.toArray().sort(((t,e)=>t.loadPriority-e.loadPriority)).map((e=>({...e,geometry:t(e)})))}};t([o({readOnly:!0})],n.prototype,"watchUpdatingTracking",void 0),t([o({readOnly:!0,aliasOf:"watchUpdatingTracking.updating"})],n.prototype,"updating",void 0),t([o()],n.prototype,"view",void 0),n=t([i("esri.views.3d.layers.support.FeatureTileTree3DDebugger")],n);export{n as FeatureTileTree3DDebugger};
5
+ import{_ as t}from"../../../../chunks/tslib.es6.js";import"../../../../geometry.js";import e from"../../../../core/Handles.js";import{initial as r}from"../../../../core/reactiveUtils.js";import{property as o}from"../../../../core/accessorSupport/decorators/property.js";import"../../../../core/arrayUtils.js";import"../../../../core/has.js";import"../../../../core/accessorSupport/ensureType.js";import{subclass as s}from"../../../../core/accessorSupport/decorators/subclass.js";import{WatchUpdatingTracking as i}from"../../../../core/support/WatchUpdatingTracking.js";import{TileTreeDebugger as a}from"../../../support/TileTreeDebugger.js";import p from"../../../../geometry/Polygon.js";let n=class extends a{constructor(t){super(t),this.watchUpdatingTracking=new i,this.handles=new e}initialize(){const{featureTiles:t}=this.view;this.handles.add(t.addClient()),this.watchUpdatingTracking.addOnCollectionChange((()=>t?.tiles),(()=>this.update()),r)}destroy(){this.handles&&(this.handles.destroy(),this.handles=null),this.watchUpdatingTracking.destroy()}getTiles(){const t=t=>{const[e,r,o]=t.lij;return p.fromExtent(this.view.featureTiles.tilingScheme.getExtentGeometry(e,r,o))};return this.view.featureTiles.tiles.toArray().sort(((t,e)=>t.loadPriority-e.loadPriority)).map((e=>({...e,geometry:t(e)})))}};t([o({readOnly:!0})],n.prototype,"watchUpdatingTracking",void 0),t([o({readOnly:!0,aliasOf:"watchUpdatingTracking.updating"})],n.prototype,"updating",void 0),t([o()],n.prototype,"view",void 0),n=t([s("esri.views.3d.layers.support.FeatureTileTree3DDebugger")],n);export{n as FeatureTileTree3DDebugger};
@@ -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{estimateAttributesObjectSize as r,estimateFixedArraySize as t,estimateNumberByteSize as i}from"../../../../core/byteSizeEstimations.js";import a from"../../../../core/Error.js";import{HandleOwner as o}from"../../../../core/HandleOwner.js";import{makeHandle as s}from"../../../../core/handleUtils.js";import n from"../../../../core/Logger.js";import{isSome as l,disposeMaybe as d,unwrap as u,isNone as p,applySome as m,mapSome as h}from"../../../../core/maybe.js";import{initial as c,sync as y,watch as _}from"../../../../core/reactiveUtils.js";import{property as f}from"../../../../core/accessorSupport/decorators/property.js";import"../../../../core/arrayUtils.js";import"../../../../core/has.js";import"../../../../core/accessorSupport/ensureType.js";import{subclass as g}from"../../../../core/accessorSupport/decorators/subclass.js";import{c as R}from"../../../../chunks/vec3.js";import{c as v}from"../../../../chunks/vec3f64.js";import{projectPointToVector as b}from"../../../../geometry/projection.js";import{getResolutionForScale as F}from"../../../../geometry/support/scaleUtils.js";import{getObjectId as w}from"../../../../layers/graphics/dehydratedFeatures.js";import{convertFromPoint as P}from"../../../../layers/graphics/featureConversionUtils.js";import{OptimizedFeature as S}from"../../../../layers/graphics/OptimizedFeature.js";import j from"../../../../layers/graphics/OptimizedGeometry.js";import x from"../../../../layers/graphics/data/FeatureStore.js";import{isNumericField as T}from"../../../../layers/support/fieldUtils.js";import{generateGradient as G}from"../../../../renderers/support/heatmapUtils.js";import{DrapeSourceType as M}from"../interfaces.js";import{DRAPED_Z as N}from"../../terrain/OverlayRenderer.js";import{UpdatePolicy as O,PrimitiveType as E}from"../../webgl-engine/lib/basicInterfaces.js";import{DrapedHeatmapRenderer as I}from"../../webgl-engine/lib/DrapedHeatmapRenderer.js";import{Geometry as H}from"../../webgl-engine/lib/Geometry.js";import{ModelDirty as C}from"../../webgl-engine/lib/ModelDirtyTypes.js";import{RenderGeometry as W}from"../../webgl-engine/lib/RenderGeometry.js";import{VertexAttribute as L}from"../../webgl-engine/lib/VertexAttribute.js";import{HeatmapDensityMaterial as U}from"../../webgl-engine/materials/HeatmapDensityMaterial.js";const V=n.getLogger("esri.views.3d.layers.support.HeatmapFeatureProcessor"),A=50;let D=class extends o{constructor(e){super(e),this.type="heatmap",this.filterVisibility={filterChanged(){},dirty:!1},this.preferredUpdatePolicy=O.ASYNC,this.dataExtent=null,this.drapeSourceType=M.Features,this._renderGeometries=new Map,this._material=new U({}),this._materialWithField=new U({isAttributeDriven:!0}),this._fieldTotal=0,this._drapeSourceRenderer=null}initialize(){this._featureStore=new x({geometryType:"esriGeometryPoint",hasZ:this.hasZ,hasM:this.hasM});const{colorBufferFloat:e,textureFloat:r}=this._renderView.capabilities,{floatBufferBlendWorking:t}=this._renderView.renderingContext.driverTest;if(null==r||!r.textureFloat)throw new a("heatmap:missing-texture-float","HeatmapRenderer requires WebGL2 or the WebGL1 extension OES_texture_float.");if(null==e||!e.textureFloat)throw new a("heatmap:missing-color-buffer-float","HeatmapRenderer requires the WebGL2 extension EXT_color_buffer_float or the WebGL1 extension WEBGL_color_buffer_float.");if(null==e||!e.floatBlend)throw new a("heatmap:missing-float-blend","HeatmapRenderer requires the WebGL extension EXT_float_blend.");if(!t)throw new a("heatmap:missing-float-blend","HeatmapRenderer requires the WebGL extension EXT_float_blend. This device claims support for it, but does not actually support it.");this._drapeSourceRenderer=this.view.basemapTerrain.overlayManager.registerDrapeSource(this,I,this._rendererParameters),this.updatingHandles.addOnCollectionChange((()=>this._loadedPointGraphics),(e=>this._onLoadedFeaturesChange(e)),c),this.updatingHandles.addWhen((()=>this._materialParameters),(e=>this._forEachMaterial((r=>r.setParameters(e)))),c),this.updatingHandles.add((()=>this._rendererParameters),(e=>this._drapeSourceRenderer.set(e))),this.updatingHandles.add((()=>this._heatmapRendererField),(()=>{this._recreate()}),y),this.updatingHandles.add((()=>({fieldName:this._heatmapRendererFieldName,numeric:this._heatmapRendererFieldIsNumeric})),(({fieldName:e,numeric:r})=>{if(l(e)&&r){let r=0;this._featureStore.forEach((t=>{var i;r+=null!=(i=t.attributes[e])?i:0})),this._fieldTotal=r}else this._fieldTotal=this._featureStore.numFeatures}),c),this.handles.add([_((()=>({fieldName:this._heatmapRendererFieldName,field:this._heatmapRendererField})),(({fieldName:e,field:r})=>{var t;e&&!r&&V.warn(`Heatmap renderer field '${e}' for layer '${null!=(t=this.layer.title)?t:this.layer.id}' not found`)})),_((()=>({field:this._heatmapRendererField,numeric:this._heatmapRendererFieldIsNumeric})),(({field:e,numeric:r})=>{var t;l(e)&&!r&&V.warn(`Heatmap renderer field '${e.name}' for layer '${null!=(t=this.layer.title)?t:this.layer.id}' does not contain numeric values and cannot be used to drive the heatmap density`)})),s((()=>this.view.basemapTerrain.overlayManager.unregisterDrapeSource(this)))])}destroy(){this._renderGeometries.clear(),this._material=d(this._material),this._materialWithField=d(this._materialWithField),this._featureStore.clear(),this._featureStore=null}get layer(){return this.owner.layer}get featureStore(){return this._featureStore}get updating(){return this.updatingHandles.updating}get updatingRemaining(){return 0}get suspendInfo(){return{}}get legendEnabled(){return!0}get displayFeatureLimit(){var e,r,t,i,a,o,s;const n=null!=(e=null==(r=this.owner)||null==(t=r.view)||null==(i=t.resourceController)||null==(a=i.memoryController)?void 0:a.memoryFactor)?e:1,l=null==(o=this.owner)||null==(s=o.view)?void 0:s.qualitySettings,d=l?Math.ceil(l.heatmap.maxTotalNumberOfFeatures*n):0;return{minimumTotalNumberOfFeatures:0,maximumTotalNumberOfFeatures:d,maximumTotalNumberOfPrimitives:d*2,maximumNumberOfFeatures:d}}get hasZ(){return"hasZ"in this.layer&&this.layer.hasZ}get hasM(){return"hasM"in this.layer&&this.layer.hasM}get view(){return this.owner.view}get fullOpacity(){return this.owner.fullOpacity}get updatePolicy(){return this.owner.updatePolicy}get scaleVisibilitySuspended(){return!1}get usedMemory(){var e,r,t,i,a;const o=this.usedMemoryPerFeature*this._featureStore.numFeatures,{R32F:s}=null==(e=this._renderView)||null==(r=e.capabilities)?void 0:r.colorBufferFloat,n=null!=s?1:4,d=4,u=null!=(t=Math.ceil((null==(i=this._overlayRenderer)||null==(a=i.overlays[0])?void 0:a.resolution)*this._densityMapPixelRatio))?t:0;return u*u*n*d+o+(l(this._heatmapRenderer)?3*Math.min(this._heatmapRenderer.blurRadius,A):0)*n*d}get usedMemoryPerFeature(){if(0===this._featureStore.numFeatures)return 0;let e=0;this._featureStore.forEach((t=>e+=r(t.attributes))),e/=this._featureStore.numFeatures;const a=i(),o=6;return o*t([0,0,0],a)+o*t([0,0],a)+(this._heatmapRendererFieldIsNumeric?o*a:0)+e}get unprocessedMemoryEstimate(){return 0}get performanceInfo(){return{core:{visible:this._featureStore.numFeatures,missing:0,pending:0},elevationUpdating:!1,visibilityFrustum:!0,visibilityScale:!0}}get _overlayRenderer(){return this.view.basemapTerrain.overlayManager.renderer}get _overlaySpatialReference(){return u(this._overlayRenderer.spatialReference)}get _rendererParameters(){return{...this._blurRadiusParameter,...this._densityParameters,...this._colorRampParameter,...this._pixelRatioParameter}}get _materialParameters(){return{...this._blurRadiusParameter,...this._resolutionForScaleParameter}}get _densityParameters(){const e=this._heatmapRenderer;if(p(e))return null;return{minDensity:e.minPixelIntensity,maxDensity:e.maxPixelIntensity,fieldTotal:this._fieldTotal}}get _blurRadiusParameter(){return m(this._heatmapRenderer,(({blurRadius:e})=>({searchRadius:this._clampSearchRadius(e)})))}get _resolutionForScaleParameter(){return m(this._heatmapRenderer,(({referenceScale:e})=>({resolutionForScale:0===e?0:F(e,this.view.spatialReference)})))}get _colorRampParameter(){return m(this._heatmapRenderer,(e=>({colorRampData:G(e.colorStops)})))}get _pixelRatioParameter(){return{pixelRatio:this._densityMapPixelRatio}}get _densityMapPixelRatio(){var e,r,t,i,a,o,s,n;const l=null!=(e=null==(r=this.owner)||null==(t=r.view)||null==(i=t.resourceController)||null==(a=i.memoryController)?void 0:a.memoryFactor)?e:1;return(null!=(o=null==(s=this.owner)||null==(n=s.view)?void 0:n.qualitySettings.heatmap.pixelRatio)?o:1)*Math.sqrt(l)}get _renderView(){return this.view._stage.renderView}get _featuresArePoints(){return"point"===this.layer.geometryType}get _loadedPointGraphics(){return this.owner.loadedGraphics}get _heatmapRenderer(){const e=this.layer.renderer;return"heatmap"===(null==e?void 0:e.type)?e:null}get _heatmapRendererFieldName(){return m(this._heatmapRenderer,(e=>e.field))}get _heatmapRendererField(){return m(this._heatmapRendererFieldName,(e=>this.layer.fieldsIndex.get(e)))}get _heatmapRendererFieldIsNumeric(){const e=this._heatmapRendererField;return!p(e)&&T(e)}async whenGraphicBounds(){return null}computeAttachmentOrigin(){return null}highlight(){return B}maskOccludee(){return B}setObjectIdVisibility(){}async setup(){}_onLoadedFeaturesChange(e){if(!this._featuresArePoints)return;const{objectIdField:r}=this.layer;this._featureStore.removeManyById(e.removed.map((e=>w(e,r)))),this._featureStore.addMany(e.added.map((e=>new S(P(new j,e.geometry),e.attributes,m(e.centroid,(e=>P(new j,e))),w(e,r)))));const t=e.added,i=e.removed;this._fieldTotal+=this._computeFieldTotalChange(t,i);const a=h(i,(({uid:e})=>{const r=this._renderGeometries.get(e);return this._renderGeometries.delete(e),r})),o=t.map((e=>{const r=this._pointGraphicToRenderGeometry(e);return this._renderGeometries.set(e.uid,r),r}));a.length>0&&this._drapeSourceRenderer.removeGeometries(a,C.Geometry.REMOVE),o.length>0&&this._drapeSourceRenderer.addGeometries(o,C.Geometry.ADD),(o.length>0||a.length>0)&&this._renderView.requestRender()}_recreate(){if(!this._loadedPointGraphics)return;const e=this._loadedPointGraphics.toArray();this._onLoadedFeaturesChange({added:e,removed:e})}_pointGraphicToRenderGeometry(e){const r=this._heatmapRendererFieldName,t=l(r)?this._materialWithField:this._material,i=v();b(e.geometry,i,this._overlaySpatialReference),i[2]=N;const a=[[L.POSITION,{data:i,size:i.length}]],o=this._heatmapRendererFieldIsNumeric;var s;l(r)&&a.push([L.FEATUREATTRIBUTE,{data:[o&&null!=(s=e.attributes[r])?s:0],size:1}]);const n=new W(new H(a,null,E.Point),t,{layerUid:this.layer.uid,graphicUid:e.uid});return R(n.boundingSphere,i),n}_forEachMaterial(e){e(this._material),e(this._materialWithField)}_computeFieldTotalChange(e,r){if(p(this._heatmapRendererFieldName)||!this._heatmapRendererFieldIsNumeric)return e.length-r.length;const t=this._heatmapRendererFieldName,i=(e,r)=>{var i;return e+(null!=(i=r.attributes[t])?i:0)};return e.reduce(i,0)-r.reduce(i,0)}_clampSearchRadius(e){return e>A&&V.warnOnce(`SceneView supports a maximum blurRadius of ${A} for HeatmapRenderer.`),Math.min(e,A)}};e([f()],D.prototype,"type",void 0),e([f({constructOnly:!0})],D.prototype,"owner",void 0),e([f()],D.prototype,"layer",null),e([f()],D.prototype,"featureStore",null),e([f()],D.prototype,"updating",null),e([f()],D.prototype,"updatingRemaining",null),e([f()],D.prototype,"suspendInfo",null),e([f()],D.prototype,"legendEnabled",null),e([f()],D.prototype,"filterVisibility",void 0),e([f()],D.prototype,"displayFeatureLimit",null),e([f()],D.prototype,"preferredUpdatePolicy",void 0),e([f()],D.prototype,"hasZ",null),e([f()],D.prototype,"hasM",null),e([f()],D.prototype,"dataExtent",void 0),e([f()],D.prototype,"view",null),e([f()],D.prototype,"fullOpacity",null),e([f()],D.prototype,"updatePolicy",null),e([f()],D.prototype,"drapeSourceType",void 0),e([f()],D.prototype,"_featureStore",void 0),e([f()],D.prototype,"_overlayRenderer",null),e([f()],D.prototype,"_overlaySpatialReference",null),e([f()],D.prototype,"_rendererParameters",null),e([f()],D.prototype,"_materialParameters",null),e([f()],D.prototype,"_densityParameters",null),e([f()],D.prototype,"_blurRadiusParameter",null),e([f()],D.prototype,"_resolutionForScaleParameter",null),e([f()],D.prototype,"_colorRampParameter",null),e([f()],D.prototype,"_pixelRatioParameter",null),e([f()],D.prototype,"_densityMapPixelRatio",null),e([f()],D.prototype,"_renderGeometries",void 0),e([f()],D.prototype,"_material",void 0),e([f()],D.prototype,"_materialWithField",void 0),e([f()],D.prototype,"_renderView",null),e([f()],D.prototype,"_featuresArePoints",null),e([f()],D.prototype,"_loadedPointGraphics",null),e([f()],D.prototype,"_heatmapRenderer",null),e([f()],D.prototype,"_heatmapRendererFieldName",null),e([f()],D.prototype,"_heatmapRendererField",null),e([f()],D.prototype,"_heatmapRendererFieldIsNumeric",null),e([f()],D.prototype,"_fieldTotal",void 0),e([f()],D.prototype,"_drapeSourceRenderer",void 0),D=e([g("esri.views.3d.layers.support.HeatmapFeatureProcessor")],D);const B=s();export{D as HeatmapFeatureProcessor,A as MAX_RADIUS};
5
+ import{_ as e}from"../../../../chunks/tslib.es6.js";import{estimateAttributesObjectSize as r,estimateFixedArraySize as t,estimateNumberByteSize as i}from"../../../../core/byteSizeEstimations.js";import a from"../../../../core/Error.js";import{HandleOwner as o}from"../../../../core/HandleOwner.js";import{makeHandle as s}from"../../../../core/handleUtils.js";import n from"../../../../core/Logger.js";import{isSome as l,disposeMaybe as d,unwrap as p,isNone as m,applySome as u,mapSome as h}from"../../../../core/maybe.js";import{initial as c,sync as y,watch as _}from"../../../../core/reactiveUtils.js";import{property as f}from"../../../../core/accessorSupport/decorators/property.js";import"../../../../core/arrayUtils.js";import"../../../../core/has.js";import"../../../../core/accessorSupport/ensureType.js";import{subclass as g}from"../../../../core/accessorSupport/decorators/subclass.js";import{c as R}from"../../../../chunks/vec3.js";import{c as b}from"../../../../chunks/vec3f64.js";import{projectPointToVector as F}from"../../../../geometry/projection.js";import{getResolutionForScale as w}from"../../../../geometry/support/scaleUtils.js";import{getObjectId as v}from"../../../../layers/graphics/dehydratedFeatures.js";import{convertFromPoint as P}from"../../../../layers/graphics/featureConversionUtils.js";import{OptimizedFeature as S}from"../../../../layers/graphics/OptimizedFeature.js";import j from"../../../../layers/graphics/OptimizedGeometry.js";import x from"../../../../layers/graphics/data/FeatureStore.js";import{isNumericField as T}from"../../../../layers/support/fieldUtils.js";import{generateGradient as G}from"../../../../renderers/support/heatmapUtils.js";import{DrapeSourceType as M}from"../interfaces.js";import{DRAPED_Z as N}from"../../terrain/OverlayRenderer.js";import{UpdatePolicy as O,PrimitiveType as E}from"../../webgl-engine/lib/basicInterfaces.js";import{DrapedHeatmapRenderer as I}from"../../webgl-engine/lib/DrapedHeatmapRenderer.js";import{Geometry as H}from"../../webgl-engine/lib/Geometry.js";import{ModelDirty as C}from"../../webgl-engine/lib/ModelDirtyTypes.js";import{RenderGeometry as W}from"../../webgl-engine/lib/RenderGeometry.js";import{VertexAttribute as L}from"../../webgl-engine/lib/VertexAttribute.js";import{HeatmapDensityMaterial as U}from"../../webgl-engine/materials/HeatmapDensityMaterial.js";const V=n.getLogger("esri.views.3d.layers.support.HeatmapFeatureProcessor"),A=50;let D=class extends o{constructor(e){super(e),this.type="heatmap",this.filterVisibility={filterChanged(){},dirty:!1},this.preferredUpdatePolicy=O.ASYNC,this.dataExtent=null,this.drapeSourceType=M.Features,this._renderGeometries=new Map,this._material=new U({}),this._materialWithField=new U({isAttributeDriven:!0}),this._fieldTotal=0,this._drapeSourceRenderer=null}initialize(){this._featureStore=new x({geometryType:"esriGeometryPoint",hasZ:this.hasZ,hasM:this.hasM});const{colorBufferFloat:e,textureFloat:r}=this._renderView.capabilities,{floatBufferBlendWorking:t}=this._renderView.renderingContext.driverTest;if(!r?.textureFloat)throw new a("heatmap:missing-texture-float","HeatmapRenderer requires WebGL2 or the WebGL1 extension OES_texture_float.");if(!e?.textureFloat)throw new a("heatmap:missing-color-buffer-float","HeatmapRenderer requires the WebGL2 extension EXT_color_buffer_float or the WebGL1 extension WEBGL_color_buffer_float.");if(!e?.floatBlend)throw new a("heatmap:missing-float-blend","HeatmapRenderer requires the WebGL extension EXT_float_blend.");if(!t)throw new a("heatmap:missing-float-blend","HeatmapRenderer requires the WebGL extension EXT_float_blend. This device claims support for it, but does not actually support it.");this._drapeSourceRenderer=this.view.basemapTerrain.overlayManager.registerDrapeSource(this,I,this._rendererParameters),this.updatingHandles.addOnCollectionChange((()=>this._loadedPointGraphics),(e=>this._onLoadedFeaturesChange(e)),c),this.updatingHandles.addWhen((()=>this._materialParameters),(e=>this._forEachMaterial((r=>r.setParameters(e)))),c),this.updatingHandles.add((()=>this._rendererParameters),(e=>this._drapeSourceRenderer.set(e))),this.updatingHandles.add((()=>this._heatmapRendererField),(()=>{this._recreate()}),y),this.updatingHandles.add((()=>({fieldName:this._heatmapRendererFieldName,numeric:this._heatmapRendererFieldIsNumeric})),(({fieldName:e,numeric:r})=>{if(l(e)&&r){let r=0;this._featureStore.forEach((t=>{r+=t.attributes[e]??0})),this._fieldTotal=r}else this._fieldTotal=this._featureStore.numFeatures}),c),this.handles.add([_((()=>({fieldName:this._heatmapRendererFieldName,field:this._heatmapRendererField})),(({fieldName:e,field:r})=>{e&&!r&&V.warn(`Heatmap renderer field '${e}' for layer '${this.layer.title??this.layer.id}' not found`)})),_((()=>({field:this._heatmapRendererField,numeric:this._heatmapRendererFieldIsNumeric})),(({field:e,numeric:r})=>{l(e)&&!r&&V.warn(`Heatmap renderer field '${e.name}' for layer '${this.layer.title??this.layer.id}' does not contain numeric values and cannot be used to drive the heatmap density`)})),s((()=>this.view.basemapTerrain.overlayManager.unregisterDrapeSource(this)))])}destroy(){this._renderGeometries.clear(),this._material=d(this._material),this._materialWithField=d(this._materialWithField),this._featureStore.clear(),this._featureStore=null}get layer(){return this.owner.layer}get featureStore(){return this._featureStore}get updating(){return this.updatingHandles.updating}get updatingRemaining(){return 0}get suspendInfo(){return{}}get legendEnabled(){return!0}get displayFeatureLimit(){const e=this.owner?.view?.resourceController?.memoryController?.memoryFactor??1,r=this.owner?.view?.qualitySettings,t=r?Math.ceil(r.heatmap.maxTotalNumberOfFeatures*e):0;return{minimumTotalNumberOfFeatures:0,maximumTotalNumberOfFeatures:t,maximumTotalNumberOfPrimitives:t*2,maximumNumberOfFeatures:t}}get hasZ(){return"hasZ"in this.layer&&this.layer.hasZ}get hasM(){return"hasM"in this.layer&&this.layer.hasM}get view(){return this.owner.view}get fullOpacity(){return this.owner.fullOpacity}get updatePolicy(){return this.owner.updatePolicy}get scaleVisibilitySuspended(){return!1}get usedMemory(){const e=this.usedMemoryPerFeature*this._featureStore.numFeatures,{R32F:r}=this._renderView?.capabilities?.colorBufferFloat,t=null!=r?1:4,i=4,a=Math.ceil(this._overlayRenderer?.overlays[0]?.resolution*this._densityMapPixelRatio)??0;return a*a*t*i+e+(l(this._heatmapRenderer)?3*Math.min(this._heatmapRenderer.blurRadius,A):0)*t*i}get usedMemoryPerFeature(){if(0===this._featureStore.numFeatures)return 0;let e=0;this._featureStore.forEach((t=>e+=r(t.attributes))),e/=this._featureStore.numFeatures;const a=i(),o=6;return o*t([0,0,0],a)+o*t([0,0],a)+(this._heatmapRendererFieldIsNumeric?o*a:0)+e}get unprocessedMemoryEstimate(){return 0}get performanceInfo(){return{core:{visible:this._featureStore.numFeatures,missing:0,pending:0},elevationUpdating:!1,visibilityFrustum:!0,visibilityScale:!0}}get _overlayRenderer(){return this.view.basemapTerrain.overlayManager.renderer}get _overlaySpatialReference(){return p(this._overlayRenderer.spatialReference)}get _rendererParameters(){return{...this._blurRadiusParameter,...this._densityParameters,...this._colorRampParameter,...this._pixelRatioParameter}}get _materialParameters(){return{...this._blurRadiusParameter,...this._resolutionForScaleParameter}}get _densityParameters(){const e=this._heatmapRenderer;if(m(e))return null;return{minDensity:e.minPixelIntensity,maxDensity:e.maxPixelIntensity,fieldTotal:this._fieldTotal}}get _blurRadiusParameter(){return u(this._heatmapRenderer,(({blurRadius:e})=>({searchRadius:this._clampSearchRadius(e)})))}get _resolutionForScaleParameter(){return u(this._heatmapRenderer,(({referenceScale:e})=>({resolutionForScale:0===e?0:w(e,this.view.spatialReference)})))}get _colorRampParameter(){return u(this._heatmapRenderer,(e=>({colorRampData:G(e.colorStops)})))}get _pixelRatioParameter(){return{pixelRatio:this._densityMapPixelRatio}}get _densityMapPixelRatio(){const e=this.owner?.view?.resourceController?.memoryController?.memoryFactor??1;return(this.owner?.view?.qualitySettings.heatmap.pixelRatio??1)*Math.sqrt(e)}get _renderView(){return this.view._stage.renderView}get _featuresArePoints(){return"point"===this.layer.geometryType}get _loadedPointGraphics(){return this.owner.loadedGraphics}get _heatmapRenderer(){const e=this.layer.renderer;return"heatmap"===e?.type?e:null}get _heatmapRendererFieldName(){return u(this._heatmapRenderer,(e=>e.field))}get _heatmapRendererField(){return u(this._heatmapRendererFieldName,(e=>this.layer.fieldsIndex.get(e)))}get _heatmapRendererFieldIsNumeric(){const e=this._heatmapRendererField;return!m(e)&&T(e)}async whenGraphicBounds(){return null}computeAttachmentOrigin(){return null}highlight(){return B}maskOccludee(){return B}setObjectIdVisibility(){}async setup(){}_onLoadedFeaturesChange(e){if(!this._featuresArePoints)return;const{objectIdField:r}=this.layer;this._featureStore.removeManyById(e.removed.map((e=>v(e,r)))),this._featureStore.addMany(e.added.map((e=>new S(P(new j,e.geometry),e.attributes,u(e.centroid,(e=>P(new j,e))),v(e,r)))));const t=e.added,i=e.removed;this._fieldTotal+=this._computeFieldTotalChange(t,i);const a=h(i,(({uid:e})=>{const r=this._renderGeometries.get(e);return this._renderGeometries.delete(e),r})),o=t.map((e=>{const r=this._pointGraphicToRenderGeometry(e);return this._renderGeometries.set(e.uid,r),r}));a.length>0&&this._drapeSourceRenderer.removeGeometries(a,C.Geometry.REMOVE),o.length>0&&this._drapeSourceRenderer.addGeometries(o,C.Geometry.ADD),(o.length>0||a.length>0)&&this._renderView.requestRender()}_recreate(){if(!this._loadedPointGraphics)return;const e=this._loadedPointGraphics.toArray();this._onLoadedFeaturesChange({added:e,removed:e})}_pointGraphicToRenderGeometry(e){const r=this._heatmapRendererFieldName,t=l(r)?this._materialWithField:this._material,i=b();F(e.geometry,i,this._overlaySpatialReference),i[2]=N;const a=[[L.POSITION,{data:i,size:i.length}]],o=this._heatmapRendererFieldIsNumeric;l(r)&&a.push([L.FEATUREATTRIBUTE,{data:[o?e.attributes[r]??0:0],size:1}]);const s=new W(new H(a,null,E.Point),t,{layerUid:this.layer.uid,graphicUid:e.uid});return R(s.boundingSphere,i),s}_forEachMaterial(e){e(this._material),e(this._materialWithField)}_computeFieldTotalChange(e,r){if(m(this._heatmapRendererFieldName)||!this._heatmapRendererFieldIsNumeric)return e.length-r.length;const t=this._heatmapRendererFieldName,i=(e,r)=>e+(r.attributes[t]??0);return e.reduce(i,0)-r.reduce(i,0)}_clampSearchRadius(e){return e>A&&V.warnOnce(`SceneView supports a maximum blurRadius of ${A} for HeatmapRenderer.`),Math.min(e,A)}};e([f()],D.prototype,"type",void 0),e([f({constructOnly:!0})],D.prototype,"owner",void 0),e([f()],D.prototype,"layer",null),e([f()],D.prototype,"featureStore",null),e([f()],D.prototype,"updating",null),e([f()],D.prototype,"updatingRemaining",null),e([f()],D.prototype,"suspendInfo",null),e([f()],D.prototype,"legendEnabled",null),e([f()],D.prototype,"filterVisibility",void 0),e([f()],D.prototype,"displayFeatureLimit",null),e([f()],D.prototype,"preferredUpdatePolicy",void 0),e([f()],D.prototype,"hasZ",null),e([f()],D.prototype,"hasM",null),e([f()],D.prototype,"dataExtent",void 0),e([f()],D.prototype,"view",null),e([f()],D.prototype,"fullOpacity",null),e([f()],D.prototype,"updatePolicy",null),e([f()],D.prototype,"drapeSourceType",void 0),e([f()],D.prototype,"_featureStore",void 0),e([f()],D.prototype,"_overlayRenderer",null),e([f()],D.prototype,"_overlaySpatialReference",null),e([f()],D.prototype,"_rendererParameters",null),e([f()],D.prototype,"_materialParameters",null),e([f()],D.prototype,"_densityParameters",null),e([f()],D.prototype,"_blurRadiusParameter",null),e([f()],D.prototype,"_resolutionForScaleParameter",null),e([f()],D.prototype,"_colorRampParameter",null),e([f()],D.prototype,"_pixelRatioParameter",null),e([f()],D.prototype,"_densityMapPixelRatio",null),e([f()],D.prototype,"_renderGeometries",void 0),e([f()],D.prototype,"_material",void 0),e([f()],D.prototype,"_materialWithField",void 0),e([f()],D.prototype,"_renderView",null),e([f()],D.prototype,"_featuresArePoints",null),e([f()],D.prototype,"_loadedPointGraphics",null),e([f()],D.prototype,"_heatmapRenderer",null),e([f()],D.prototype,"_heatmapRendererFieldName",null),e([f()],D.prototype,"_heatmapRendererField",null),e([f()],D.prototype,"_heatmapRendererFieldIsNumeric",null),e([f()],D.prototype,"_fieldTotal",void 0),e([f()],D.prototype,"_drapeSourceRenderer",void 0),D=e([g("esri.views.3d.layers.support.HeatmapFeatureProcessor")],D);const B=s();export{D as HeatmapFeatureProcessor,A as MAX_RADIUS};
@@ -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 o from"../../../../core/Evented.js";import r from"../../../../core/Handles.js";import s from"../../../../core/Logger.js";import{unwrapOr as i}from"../../../../core/maybe.js";import{getMetersPerVerticalUnitForSR as n}from"../../../../core/unitUtils.js";import{property as a}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/vec3.js";import{c as d}from"../../../../chunks/vec3f64.js";import{empty as m,toRect as p,expandWithVec3 as h}from"../../../../geometry/support/aaBoundingBox.js";import{empty as u}from"../../../../geometry/support/aaBoundingRect.js";import{getMetersPerUnit as f}from"../../../../symbols/support/unitConversionUtils.js";import{newIntersector as v}from"../../webgl-engine/lib/Intersector.js";import{StoreResults as y}from"../../webgl-engine/lib/IntersectorInterfaces.js";const g=s.getLogger("esri.views.3d.layers.support.StageLayerElevationProvider"),j=1;let b=class extends(o.EventedMixin(t)){constructor(e){super(e),this.elevationOffset=0,this._layerHandes=new r}initialize(){this.renderCoordsHelper=this.view.renderCoordsHelper,this.intersectLayers=[this.stageLayer],this.intersector=v(this.view.state.viewingMode),this.intersector.options.store=y.MIN;const e=this._computeLayerExtent(this.stageLayer);this.zmin=e[2],this.zmax=e[5];const t=this.stageLayer.events;this._layerHandes.add([t.on("layerObjectAdded",(e=>this._objectChanged(e.object))),t.on("layerObjectRemoved",(e=>this._objectChanged(e.object))),t.on("objectGeometryAdded",(e=>this._objectChanged(e.object))),t.on("objectGeometryRemoved",(e=>this._objectChanged(e.object))),t.on("vertexAttrsUpdated",(e=>this._objectChanged(e.object))),t.on("objectTransformation",(e=>this._objectChanged(e)))])}dispose(){this._layerHandes.destroy()}elevationInfoChanged(){const e=null!=this.layer?this.layer.elevationInfo:null;if(null!=e&&"on-the-ground"!==e.mode){const t=n(this.layer.spatialReference),o=f(e.unit);this.elevationOffset=i(e.offset,0)*o/t}else this.elevationOffset=0}getElevation(e,t,o,r){if(_[0]=e,_[1]=t,_[2]=o,!this.renderCoordsHelper.toRenderCoords(_,r,_))return g.error("could not project point for elevation alignment"),null;const s=this.elevationOffset,i=this.zmin+s,n=this.zmax+s;this.renderCoordsHelper.setAltitude(B,n,_),this.renderCoordsHelper.setAltitude(R,i,_);const a=e=>e.metadata&&e.metadata.isElevationSource;return this.intersector.reset(B,R,null),this.intersector.intersect(this.intersectLayers,null,j,null,a),this.intersector.results.min.getIntersectionPoint(_)?this.renderCoordsHelper.getAltitude(_):null}_objectChanged(e){var t;if(null==(t=e.metadata)||!t.isElevationSource||!this.spatialReference)return;m(x),e.metadata.lastValidElevationBB.isEmpty()||this._expandExtent(e.metadata.lastValidElevationBB.min,e.metadata.lastValidElevationBB.max,x);const o=e.boundingVolumeWorldSpace.min,r=e.boundingVolumeWorldSpace.max;this._expandExtent(o,r,x),p(x,E),this.zmin=Math.min(this.zmin,x[2]),this.zmax=Math.max(this.zmax,x[5]),C.extent=E,C.spatialReference=this.spatialReference,this.emit("elevation-change",C),c(e.metadata.lastValidElevationBB.min,o),c(e.metadata.lastValidElevationBB.max,r)}_computeLayerExtent(e){return m(x),e.objects.forAll((e=>this._expandExtent(e.boundingVolumeWorldSpace.min,e.boundingVolumeWorldSpace.max,x))),x}_expandExtent(e,t,o){for(let r=0;r<8;++r)_[0]=1&r?e[0]:t[0],_[1]=2&r?e[1]:t[1],_[2]=4&r?e[2]:t[2],this.renderCoordsHelper.fromRenderCoords(_,_,this.spatialReference),h(o,_);return o}};e([a({constructOnly:!0})],b.prototype,"layer",void 0),e([a({constructOnly:!0})],b.prototype,"stageLayer",void 0),e([a({constructOnly:!0})],b.prototype,"view",void 0),e([a({readOnly:!0,aliasOf:"view.spatialReference"})],b.prototype,"spatialReference",void 0),b=e([l("esri.views.3d.layers.support.StageLayerElevationProvider")],b);const x=m(),E=u(),C={spatialReference:null,extent:E,context:"scene"},_=d(),B=d(),R=d();export{b as StageLayerElevationProvider};
5
+ import{_ as e}from"../../../../chunks/tslib.es6.js";import t from"../../../../core/Accessor.js";import o from"../../../../core/Evented.js";import r from"../../../../core/Handles.js";import s from"../../../../core/Logger.js";import{unwrapOr as i}from"../../../../core/maybe.js";import{getMetersPerVerticalUnitForSR as n}from"../../../../core/unitUtils.js";import{property as a}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/vec3.js";import{c as d}from"../../../../chunks/vec3f64.js";import{empty as m,toRect as p,expandWithVec3 as h}from"../../../../geometry/support/aaBoundingBox.js";import{empty as u}from"../../../../geometry/support/aaBoundingRect.js";import{getMetersPerUnit as f}from"../../../../symbols/support/unitConversionUtils.js";import{newIntersector as y}from"../../webgl-engine/lib/Intersector.js";import{StoreResults as v}from"../../webgl-engine/lib/IntersectorInterfaces.js";const g=s.getLogger("esri.views.3d.layers.support.StageLayerElevationProvider"),j=1;let b=class extends(o.EventedMixin(t)){constructor(e){super(e),this.elevationOffset=0,this._layerHandes=new r}initialize(){this.renderCoordsHelper=this.view.renderCoordsHelper,this.intersectLayers=[this.stageLayer],this.intersector=y(this.view.state.viewingMode),this.intersector.options.store=v.MIN;const e=this._computeLayerExtent(this.stageLayer);this.zmin=e[2],this.zmax=e[5];const t=this.stageLayer.events;this._layerHandes.add([t.on("layerObjectAdded",(e=>this._objectChanged(e.object))),t.on("layerObjectRemoved",(e=>this._objectChanged(e.object))),t.on("objectGeometryAdded",(e=>this._objectChanged(e.object))),t.on("objectGeometryRemoved",(e=>this._objectChanged(e.object))),t.on("vertexAttrsUpdated",(e=>this._objectChanged(e.object))),t.on("objectTransformation",(e=>this._objectChanged(e)))])}dispose(){this._layerHandes.destroy()}elevationInfoChanged(){const e=null!=this.layer?this.layer.elevationInfo:null;if(null!=e&&"on-the-ground"!==e.mode){const t=n(this.layer.spatialReference),o=f(e.unit);this.elevationOffset=i(e.offset,0)*o/t}else this.elevationOffset=0}getElevation(e,t,o,r){if(_[0]=e,_[1]=t,_[2]=o,!this.renderCoordsHelper.toRenderCoords(_,r,_))return g.error("could not project point for elevation alignment"),null;const s=this.elevationOffset,i=this.zmin+s,n=this.zmax+s;this.renderCoordsHelper.setAltitude(B,n,_),this.renderCoordsHelper.setAltitude(R,i,_);const a=e=>e.metadata&&e.metadata.isElevationSource;return this.intersector.reset(B,R,null),this.intersector.intersect(this.intersectLayers,null,j,null,a),this.intersector.results.min.getIntersectionPoint(_)?this.renderCoordsHelper.getAltitude(_):null}_objectChanged(e){if(!e.metadata?.isElevationSource||!this.spatialReference)return;m(x),e.metadata.lastValidElevationBB.isEmpty()||this._expandExtent(e.metadata.lastValidElevationBB.min,e.metadata.lastValidElevationBB.max,x);const t=e.boundingVolumeWorldSpace.min,o=e.boundingVolumeWorldSpace.max;this._expandExtent(t,o,x),p(x,E),this.zmin=Math.min(this.zmin,x[2]),this.zmax=Math.max(this.zmax,x[5]),C.extent=E,C.spatialReference=this.spatialReference,this.emit("elevation-change",C),c(e.metadata.lastValidElevationBB.min,t),c(e.metadata.lastValidElevationBB.max,o)}_computeLayerExtent(e){return m(x),e.objects.forAll((e=>this._expandExtent(e.boundingVolumeWorldSpace.min,e.boundingVolumeWorldSpace.max,x))),x}_expandExtent(e,t,o){for(let r=0;r<8;++r)_[0]=1&r?e[0]:t[0],_[1]=2&r?e[1]:t[1],_[2]=4&r?e[2]:t[2],this.renderCoordsHelper.fromRenderCoords(_,_,this.spatialReference),h(o,_);return o}};e([a({constructOnly:!0})],b.prototype,"layer",void 0),e([a({constructOnly:!0})],b.prototype,"stageLayer",void 0),e([a({constructOnly:!0})],b.prototype,"view",void 0),e([a({readOnly:!0,aliasOf:"view.spatialReference"})],b.prototype,"spatialReference",void 0),b=e([l("esri.views.3d.layers.support.StageLayerElevationProvider")],b);const x=m(),E=u(),C={spatialReference:null,extent:E,context:"scene"},_=d(),B=d(),R=d();export{b as StageLayerElevationProvider};
@@ -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{isNone as t,isSome as s,destroyMaybe as o}from"../../../../core/maybe.js";import{throwIfAborted as u,createAbortError as a}from"../../../../core/promiseUtils.js";import{property as y}from"../../../../core/accessorSupport/decorators/property.js";import"../../../../core/arrayUtils.js";import"../../../../core/has.js";import"../../../../core/accessorSupport/ensureType.js";import{subclass as i}from"../../../../core/accessorSupport/decorators/subclass.js";import{fromFeatureSetJSON as l}from"../../../../layers/graphics/dehydratedFeatures.js";import{runQuery as p,executeQuery as n}from"../../../../rest/query/operations/query.js";import{PBFDecoder as c}from"../../support/PBFDecoder.js";let d=class extends r{constructor(e){super(e)}get queryFeaturesDehydrated(){const e=this.layer.capabilities,r=e&&e.query;if(r&&r.supportsFormatPBF){var o,y;t(this._decoder)&&(this._decoder=new c(this.schedule));const e={sourceSpatialReference:null!=(o=null==(y=this.layer.spatialReference)?void 0:y.toJSON())?o:null,applyTransform:!0,maxStringAttributeLength:1024};return(r,t)=>p(this.layer.parsedUrl,r,"pbf",this._createRequestOptions(t)).then((r=>(u(t),s(this._decoder)?this._decoder.invoke({buffer:r.data,options:e},t.signal):Promise.reject(a()))))}return(e,r)=>n(this.layer.parsedUrl,e,this.layer.spatialReference,this._createRequestOptions(r)).then((e=>l(e.data)))}queryFeatureCount(e,r){return this.layer.queryFeatureCount(e,r)}destroy(){this._decoder=o(this._decoder)}_createRequestOptions(e){return{...e,query:{...this.layer.customParameters,token:this.layer.apiKey,...null==e?void 0:e.query}}}};e([y({constructOnly:!0})],d.prototype,"layer",void 0),e([y({constructOnly:!0})],d.prototype,"schedule",void 0),e([y({readOnly:!0})],d.prototype,"queryFeaturesDehydrated",null),d=e([i("esri.views.3d.layers.support.featureTileQuery3D.FeatureTileServiceQuery3D")],d);let h=class extends r{constructor(e){super(e)}queryFeaturesDehydrated(e,r){return this.layer.queryFeatures(e,r)}queryFeatureCount(e,r){return this.layer.queryFeatureCount(e,r)}};e([y({constructOnly:!0})],h.prototype,"layer",void 0),e([y({readOnly:!0})],h.prototype,"queryFeaturesDehydrated",null),h=e([i("esri.views.3d.layers.support.featureTileQuery3D.FeatureTileServiceMeshQuery3D")],h);let m=class extends r{constructor(e){super(e)}queryFeaturesDehydrated(e,r){return this.layer.queryFeatures(e,r)}};e([y({constructOnly:!0})],m.prototype,"layer",void 0),m=e([i("esri.views.3d.layers.support.featureTileQuery3D.FeatureTileServiceQuery3D")],m);let f=class extends r{constructor(e){super(e)}queryFeaturesDehydrated(e,r){return this.source.queryFeaturesJSON(e,r).then(l,(t=>{if(t&&"query-features-json:unsupported"===t.name)return this.layer.queryFeatures(e,r);throw t}))}queryFeatureCount(e,r){return this.layer.queryFeatureCount(e,r)}};function q(e,r){return"feature"===e.type&&"feature-layer"===e.source.type?s(e.infoFor3D)?new h({layer:e}):new d({layer:e,schedule:r}):"feature"===e.type&&"memory"===e.source.type||"csv"===e.type||"geojson"===e.type||"wfs"===e.type?new f({layer:e,source:e.source}):"ogc-feature"===e.type?new m({layer:e}):null}e([y({constructOnly:!0})],f.prototype,"layer",void 0),e([y({constructOnly:!0})],f.prototype,"source",void 0),f=e([i("esri.views.3d.layers.support.featureTileQuery3D.FeatureTileClientQuery3D")],f);export{q as createFeatureTileQuery3D};
5
+ import{_ as e}from"../../../../chunks/tslib.es6.js";import r from"../../../../core/Accessor.js";import{isNone as t,isSome as s,destroyMaybe as o}from"../../../../core/maybe.js";import{throwIfAborted as u,createAbortError as a}from"../../../../core/promiseUtils.js";import{property as y}from"../../../../core/accessorSupport/decorators/property.js";import"../../../../core/arrayUtils.js";import"../../../../core/has.js";import"../../../../core/accessorSupport/ensureType.js";import{subclass as i}from"../../../../core/accessorSupport/decorators/subclass.js";import{fromFeatureSetJSON as p}from"../../../../layers/graphics/dehydratedFeatures.js";import{runQuery as c,executeQuery as n}from"../../../../rest/query/operations/query.js";import{PBFDecoder as l}from"../../support/PBFDecoder.js";let d=class extends r{constructor(e){super(e)}get queryFeaturesDehydrated(){const e=this.layer.capabilities,r=e&&e.query;if(r&&r.supportsFormatPBF){t(this._decoder)&&(this._decoder=new l(this.schedule));const e={sourceSpatialReference:this.layer.spatialReference?.toJSON()??null,applyTransform:!0,maxStringAttributeLength:1024};return(r,t)=>c(this.layer.parsedUrl,r,"pbf",this._createRequestOptions(t)).then((r=>(u(t),s(this._decoder)?this._decoder.invoke({buffer:r.data,options:e},t.signal):Promise.reject(a()))))}return(e,r)=>n(this.layer.parsedUrl,e,this.layer.spatialReference,this._createRequestOptions(r)).then((e=>p(e.data)))}queryFeatureCount(e,r){return this.layer.queryFeatureCount(e,r)}destroy(){this._decoder=o(this._decoder)}_createRequestOptions(e){return{...e,query:{...this.layer.customParameters,token:this.layer.apiKey,...e?.query}}}};e([y({constructOnly:!0})],d.prototype,"layer",void 0),e([y({constructOnly:!0})],d.prototype,"schedule",void 0),e([y({readOnly:!0})],d.prototype,"queryFeaturesDehydrated",null),d=e([i("esri.views.3d.layers.support.featureTileQuery3D.FeatureTileServiceQuery3D")],d);let h=class extends r{constructor(e){super(e)}queryFeaturesDehydrated(e,r){return this.layer.queryFeatures(e,r)}queryFeatureCount(e,r){return this.layer.queryFeatureCount(e,r)}};e([y({constructOnly:!0})],h.prototype,"layer",void 0),e([y({readOnly:!0})],h.prototype,"queryFeaturesDehydrated",null),h=e([i("esri.views.3d.layers.support.featureTileQuery3D.FeatureTileServiceMeshQuery3D")],h);let m=class extends r{constructor(e){super(e)}queryFeaturesDehydrated(e,r){return this.layer.queryFeatures(e,r)}};e([y({constructOnly:!0})],m.prototype,"layer",void 0),m=e([i("esri.views.3d.layers.support.featureTileQuery3D.FeatureTileServiceQuery3D")],m);let f=class extends r{constructor(e){super(e)}queryFeaturesDehydrated(e,r){return this.source.queryFeaturesJSON(e,r).then(p,(t=>{if(t&&"query-features-json:unsupported"===t.name)return this.layer.queryFeatures(e,r);throw t}))}queryFeatureCount(e,r){return this.layer.queryFeatureCount(e,r)}};function q(e,r){return"feature"===e.type&&"feature-layer"===e.source.type?s(e.infoFor3D)?new h({layer:e}):new d({layer:e,schedule:r}):"feature"===e.type&&"memory"===e.source.type||"csv"===e.type||"geojson"===e.type||"wfs"===e.type?new f({layer:e,source:e.source}):"ogc-feature"===e.type?new m({layer:e}):null}e([y({constructOnly:!0})],f.prototype,"layer",void 0),e([y({constructOnly:!0})],f.prototype,"source",void 0),f=e([i("esri.views.3d.layers.support.featureTileQuery3D.FeatureTileClientQuery3D")],f);export{q as createFeatureTileQuery3D};
@@ -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 t}from"../../../chunks/tslib.es6.js";import i from"../../../core/Accessor.js";import a from"../../../core/Handles.js";import{equalsShallow as e}from"../../../core/lang.js";import{deg2rad as s,rad2deg as n}from"../../../core/mathUtils.js";import{destroyMaybe as r,isNone as o}from"../../../core/maybe.js";import{watch as l,sync as u,initial as c}from"../../../core/reactiveUtils.js";import{property as d}from"../../../core/accessorSupport/decorators/property.js";import"../../../core/accessorSupport/ensureType.js";import{subclass as h}from"../../../core/accessorSupport/decorators/subclass.js";import{ViewingMode as p}from"../../ViewingMode.js";import{applyAll as v}from"../camera/constraintUtils.js";import{surfaceElevationBelowRenderLocation as m}from"../camera/intersectionUtils.js";import{ConstraintTypes as w,InteractionType as _,TiltMode as C}from"../camera/constraintUtils/common.js";import{createNearFarHeuristic as f}from"./NearFarHeuristic.js";import{SurfaceCollisionConstraint as y}from"./SurfaceCollisionConstraint.js";let M=class extends i{constructor(t){super(t),this._handles=new a,this.nearFarHeuristic=f(t.view.state.viewingMode,t.view.basemapTerrain,t.view.renderCoordsHelper.spatialReference)}initialize(){this._handles.add([l((()=>{var t,i,a,e;return[null==(t=this.view.constraints)||null==(i=t.clipDistance)?void 0:i.near,null==(a=this.view.constraints)||null==(e=a.clipDistance)?void 0:e.far]}),(()=>this._clipDistanceNearFarChanged()),{equals:e}),l((()=>{var t,i;return null==(t=this.view.constraints)||null==(i=t.clipDistance)?void 0:i.mode}),(()=>this._updateNearFar())),this.view.state.events.on("before-camera-change",(t=>this._updateCameraNearFar(t.camera))),l((()=>this.view.renderDataExtent),(()=>this._updateNearFar()),u),l((()=>{var t,i,a,e;return[null==(t=this.view.constraints)||null==(i=t.altitude)?void 0:i.min,null==(a=this.view.constraints)||null==(e=a.altitude)?void 0:e.max]}),(()=>this._updateAltitude()),{sync:!0,equals:e}),l((()=>{var t,i;return null==(t=this.view.constraints)||null==(i=t.tilt)?void 0:i.max}),(()=>this._updateTiltMax()),u),l((()=>{var t,i;return null==(t=this.view.constraints)||null==(i=t.tilt)?void 0:i.mode}),(()=>this._updateTilt()),u),l((()=>{var t;return null==(t=this.view.state)?void 0:t.camera}),(()=>this._updateTiltAutoMax()),u),l((()=>{var t,i,a,e,s,n;return[null==(t=this.view.map)||null==(i=t.ground)||null==(a=i.navigationConstraint)?void 0:a.type,null==(e=this.view.state)||null==(s=e.constraints)||null==(n=s.collision)?void 0:n.enabled]}),(()=>this._updateCollision()),{sync:!0,equals:e})]),this.view.state.isLocal&&this._handles.add(l((()=>this.view.renderDataExtent),(t=>this._updateLocalSurfaceDistance(t)),c)),this._updateNearFar(),this.view.state.viewingMode!==p.Local&&this._updateAltitude(),this._updateTilt(),this._updateCollision(),this._set("surfaceCollisionConstraint",new y({view:this.view}))}destroy(){this._handles=r(this._handles),this.surfaceCollisionConstraint&&(this.surfaceCollisionConstraint.destroy(),this._set("surfaceCollisionConstraint",null))}_clipDistanceNearFarChanged(){var t;const i=null==(t=this.view.constraints)?void 0:t.clipDistance;i&&"auto"!==i.mode&&this.view.state.updateCamera((t=>(this._updateCameraNearFarManual(t,i),!0)))}_updateNearFar(){this.view.state.updateCamera((t=>(this._updateCameraNearFar(t),!0)))}_updateCameraNearFar(t){const i=this.view.constraints&&this.view.constraints.clipDistance;"manual"===(i?i.mode:"auto")?this._updateCameraNearFarManual(t,i):this._updateCameraNearFarAuto(t,i)}_updateCameraNearFarAuto(t,i){this.nearFarHeuristic.compute(t.eye,t.center,this.view.renderDataExtent,m(this.view,t.eye),t),i&&i.autoUpdate(t.near,t.far)}_updateCameraNearFarManual(t,i){i&&(t.near=i.near,t.far=i.far)}_updateCollision(){var t,i,a;const e=null==(t=this.view.map)||null==(i=t.ground)||null==(a=i.navigationConstraint)?void 0:a.type,s=!e||"stay-above"===e,n=this.view.state.constraints.collision;if(s!==n.enabled){n.enabled=s,s&&this._reapplyConstraints(w.COLLISION);const t=this.view.constraints&&this.view.constraints.tilt;t&&"auto"!==t.mode||this._updateTiltAuto()}}_updateAltitude(){const t=this.view.constraints&&this.view.constraints.altitude;t&&this.view.state.viewingMode!==p.Local?this.view.state.constraints.altitude={min:t.min,max:t.max}:this.view.state.constraints.altitude=null,this._reapplyConstraints()}_updateTiltMax(){const t=this.view.constraints&&this.view.constraints.tilt;t&&"auto"!==t.mode&&(this._updateTiltManual(t),this._reapplyConstraints())}_updateTilt(){const t=this.view.constraints&&this.view.constraints.tilt;"manual"===(t?t.mode:"auto")?this._updateTiltManual(t):this._updateTiltAuto(),this._reapplyConstraints()}_updateTiltManual(t){const i=this.view.state.constraints;i.tilt=i.createConstantMaxTilt(s(t.max))}_updateTiltAuto(){const t=this.view.state.constraints;t.tilt=t.createDefaultTilt(),this._updateTiltAutoMax()}_updateTiltAutoMax(){const t=this.view.constraints&&this.view.constraints.tilt;if(!t||"auto"!==t.mode)return;const i=this.view.state.constraints;if(i.tilt){const a=i.tilt(this.view.state.camera.distance).max;t.autoUpdate(n(a))}}_updateLocalSurfaceDistance(t){if(o(t))return;let i=Math.max(t.width,t.height);if(i<=0)return;t.hasZ&&(i=Math.max(i,t.zmax-t.zmin));const a=this.view.state,e=3*i/Math.atan(a.camera.fov/2);e!==a.constraints.distance&&(a.constraints.distance=e)}_reapplyConstraints(t=w.ALL){this.view.state.updateCamera((i=>v(this.view,i,{selection:t,interactionType:_.NONE,interactionFactor:null,interactionStartCamera:null,interactionDirection:null,tiltMode:C.TUMBLE})))}};t([d({constructOnly:!0})],M.prototype,"view",void 0),t([d({readOnly:!0})],M.prototype,"surfaceCollisionConstraint",void 0),M=t([h("esri.views.3d.state.ConstraintsManager")],M);export{M as ConstraintsManager};
5
+ import{_ as t}from"../../../chunks/tslib.es6.js";import i from"../../../core/Accessor.js";import a from"../../../core/Handles.js";import{equalsShallow as e}from"../../../core/lang.js";import{deg2rad as s,rad2deg as r}from"../../../core/mathUtils.js";import{destroyMaybe as n,isNone as o}from"../../../core/maybe.js";import{watch as c,sync as l,initial as u}from"../../../core/reactiveUtils.js";import{property as h}from"../../../core/accessorSupport/decorators/property.js";import"../../../core/accessorSupport/ensureType.js";import{subclass as p}from"../../../core/accessorSupport/decorators/subclass.js";import{ViewingMode as d}from"../../ViewingMode.js";import{applyAll as m}from"../camera/constraintUtils.js";import{surfaceElevationBelowRenderLocation as v}from"../camera/intersectionUtils.js";import{ConstraintTypes as w,InteractionType as _,TiltMode as C}from"../camera/constraintUtils/common.js";import{createNearFarHeuristic as f}from"./NearFarHeuristic.js";import{SurfaceCollisionConstraint as y}from"./SurfaceCollisionConstraint.js";let M=class extends i{constructor(t){super(t),this._handles=new a,this.nearFarHeuristic=f(t.view.state.viewingMode,t.view.basemapTerrain,t.view.renderCoordsHelper.spatialReference)}initialize(){this._handles.add([c((()=>[this.view.constraints?.clipDistance?.near,this.view.constraints?.clipDistance?.far]),(()=>this._clipDistanceNearFarChanged()),{equals:e}),c((()=>this.view.constraints?.clipDistance?.mode),(()=>this._updateNearFar())),this.view.state.events.on("before-camera-change",(t=>this._updateCameraNearFar(t.camera))),c((()=>this.view.renderDataExtent),(()=>this._updateNearFar()),l),c((()=>[this.view.constraints?.altitude?.min,this.view.constraints?.altitude?.max]),(()=>this._updateAltitude()),{sync:!0,equals:e}),c((()=>this.view.constraints?.tilt?.max),(()=>this._updateTiltMax()),l),c((()=>this.view.constraints?.tilt?.mode),(()=>this._updateTilt()),l),c((()=>this.view.state?.camera),(()=>this._updateTiltAutoMax()),l),c((()=>[this.view.map?.ground?.navigationConstraint?.type,this.view.state?.constraints?.collision?.enabled]),(()=>this._updateCollision()),{sync:!0,equals:e})]),this.view.state.isLocal&&this._handles.add(c((()=>this.view.renderDataExtent),(t=>this._updateLocalSurfaceDistance(t)),u)),this._updateNearFar(),this.view.state.viewingMode!==d.Local&&this._updateAltitude(),this._updateTilt(),this._updateCollision(),this._set("surfaceCollisionConstraint",new y({view:this.view}))}destroy(){this._handles=n(this._handles),this.surfaceCollisionConstraint&&(this.surfaceCollisionConstraint.destroy(),this._set("surfaceCollisionConstraint",null))}_clipDistanceNearFarChanged(){const t=this.view.constraints?.clipDistance;t&&"auto"!==t.mode&&this.view.state.updateCamera((i=>(this._updateCameraNearFarManual(i,t),!0)))}_updateNearFar(){this.view.state.updateCamera((t=>(this._updateCameraNearFar(t),!0)))}_updateCameraNearFar(t){const i=this.view.constraints&&this.view.constraints.clipDistance;"manual"===(i?i.mode:"auto")?this._updateCameraNearFarManual(t,i):this._updateCameraNearFarAuto(t,i)}_updateCameraNearFarAuto(t,i){this.nearFarHeuristic.compute(t.eye,t.center,this.view.renderDataExtent,v(this.view,t.eye),t),i&&i.autoUpdate(t.near,t.far)}_updateCameraNearFarManual(t,i){i&&(t.near=i.near,t.far=i.far)}_updateCollision(){const t=this.view.map?.ground?.navigationConstraint?.type,i=!t||"stay-above"===t,a=this.view.state.constraints.collision;if(i!==a.enabled){a.enabled=i,i&&this._reapplyConstraints(w.COLLISION);const t=this.view.constraints&&this.view.constraints.tilt;t&&"auto"!==t.mode||this._updateTiltAuto()}}_updateAltitude(){const t=this.view.constraints&&this.view.constraints.altitude;t&&this.view.state.viewingMode!==d.Local?this.view.state.constraints.altitude={min:t.min,max:t.max}:this.view.state.constraints.altitude=null,this._reapplyConstraints()}_updateTiltMax(){const t=this.view.constraints&&this.view.constraints.tilt;t&&"auto"!==t.mode&&(this._updateTiltManual(t),this._reapplyConstraints())}_updateTilt(){const t=this.view.constraints&&this.view.constraints.tilt;"manual"===(t?t.mode:"auto")?this._updateTiltManual(t):this._updateTiltAuto(),this._reapplyConstraints()}_updateTiltManual(t){const i=this.view.state.constraints;i.tilt=i.createConstantMaxTilt(s(t.max))}_updateTiltAuto(){const t=this.view.state.constraints;t.tilt=t.createDefaultTilt(),this._updateTiltAutoMax()}_updateTiltAutoMax(){const t=this.view.constraints&&this.view.constraints.tilt;if(!t||"auto"!==t.mode)return;const i=this.view.state.constraints;if(i.tilt){const a=i.tilt(this.view.state.camera.distance).max;t.autoUpdate(r(a))}}_updateLocalSurfaceDistance(t){if(o(t))return;let i=Math.max(t.width,t.height);if(i<=0)return;t.hasZ&&(i=Math.max(i,t.zmax-t.zmin));const a=this.view.state,e=3*i/Math.atan(a.camera.fov/2);e!==a.constraints.distance&&(a.constraints.distance=e)}_reapplyConstraints(t=w.ALL){this.view.state.updateCamera((i=>m(this.view,i,{selection:t,interactionType:_.NONE,interactionFactor:null,interactionStartCamera:null,interactionDirection:null,tiltMode:C.TUMBLE})))}};t([h({constructOnly:!0})],M.prototype,"view",void 0),t([h({readOnly:!0})],M.prototype,"surfaceCollisionConstraint",void 0),M=t([p("esri.views.3d.state.ConstraintsManager")],M);export{M as ConstraintsManager};
@@ -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{isNone as e,isSome as t,unwrapOr as r}from"../../../../core/maybe.js";import i from"../../../../core/PooledArray.js";import{castRenderScreenPointArray3 as n,createRenderScreenPointArray3 as s}from"../../../../core/screenUtils.js";import{a as o,n as a,g as c,l}from"../../../../chunks/vec3.js";import{c as h}from"../../../../chunks/vec3f64.js";import{create as u,copy as d,NEGATIVE_INFINITY as m,width as p,height as y,expandPointInPlace as g}from"../../../../geometry/support/aaBoundingRect.js";import{create as f}from"../../../../geometry/support/ray.js";import{sv3d as R}from"../../../../geometry/support/vectorStacks.js";import{ViewingMode as v}from"../../../ViewingMode.js";import{fromRenderAtEye as x,fromScreen as w}from"../../support/geometryUtils/ray.js";import{DEFAULT_TOLERANCE as b,newIntersector as I}from"../../webgl-engine/lib/Intersector.js";import{StoreResults as M,IntersectorType as P}from"../../webgl-engine/lib/IntersectorInterfaces.js";import{isValidIntersectorResult as j,sliceFilterPredicate as E}from"../../webgl-engine/lib/intersectorUtils.js";class H{constructor(e,t,r){this.viewingMode=e,this._forEachLayer=t,this.view=r,this.externalIntersectionHandlers=new i,this.tolerance=b,this.tmpRay=f(),this.tmpRegion=u(),this.validateHUDIntersector=I(this.viewingMode),this.validateHUDIntersector.options.hud=!1}intersectScreen(e,t,r){return this.intersectRay(this._getPickRay(e,this.tmpRay),k(this.viewingMode),t,r)}intersectScreenFreePointFallback(e,t,r){return this.intersectRayFreePointFallback(this._getPickRay(e,this.tmpRay),t,r)}intersectRayFreePointFallback(e,t,r){return this.intersectRay(e,k(this.viewingMode),t,r)||this._intersectRayFreePointLocal(e,t)}intersectRay(e,t,r,i){return t.options.selectionMode=!1,t.options.store=M.MIN,this.computeIntersection(e,t,i),!!t.results.min&&t.results.min.getIntersectionPoint(r)}getCenterRayWithSubpixelOffset(e,t,r=.5,i=.5){return e.getRenderCenter(N,r,i),N[0]+=.0466,N[1]-=.0123,x(e,N,t)}intersectIntersectorScreen(e,t,r){this.computeIntersection(this._getPickRay(e,this.tmpRay),t,r)}intersectToolIntersectorScreen(e,t,r){const i=this._getPickRay(e,this.tmpRay);this.intersectToolIntersectorRay(i,t,r)}intersectToolIntersectorRay(e,t,r){t.options.selectionMode=!0,this.computeIntersection(e,t,r);const i=t.results.min;!!this.view.basemapTerrain&&this.view.basemapTerrain.opaque||j(i)&&i.intersector!==P.TERRAIN||(t.options.selectionMode=!1,this.computeIntersection(e,t,r))}setTolerance(e=b){this.tolerance=e}addIntersectionHandler(e){this.externalIntersectionHandlers.push(e),this.externalIntersectionHandlers.sort(((e,t)=>e.type===P.TERRAIN?1:t.type===P.TERRAIN?-1:0))}removeIntersectionHandler(e){null!=this.externalIntersectionHandlers.removeUnordered(e)&&this.externalIntersectionHandlers.sort(((e,t)=>e.type===P.TERRAIN?1:t.type===P.TERRAIN?-1:0))}_getPickRay(e,t){const r=this.view.state.camera;return w(r,e,t)}_intersectRayFreePointLocal(t,r){if(this.viewingMode!==v.Local||e(t))return!1;const i=this.view.renderDataExtent;if(e(i))return o(r,t.origin,a(R.get(),t.direction)),!0;const n={x:i.xmax-i.xmin,y:i.ymax-i.ymin,z:8*Math.max(i.xmax-i.xmin,i.ymax-i.ymin)},s=Math.max(n.x,n.y,n.z);if(0===s)return o(r,t.origin,a(R.get(),t.direction)),!0;const h=this.view.state.camera,u=Math.max(0,i.xmin-h.eye[0],h.eye[0]-i.xmax),d=Math.max(0,i.ymin-h.eye[1],h.eye[1]-i.ymax),m=Math.sqrt(u*u+d*d),p=Math.abs(h.relativeElevation)+Number.MIN_VALUE,y=Math.max(0,Math.log(s/p))**2;let g=s/Math.max(1,y);g=Math.max(g,Math.min(m,s));const f=c(R.get(),t.direction,g/l(t.direction));return o(r,t.origin,f),!0}intersectElevationFromScreen(e,t,r=0,i=null){return this._intersectElevation(this._getPickRay(e,this.tmpRay),t,r,i)}_intersectElevation(i,s,a=0,c=null){if(e(i))return null;const l=t(s)?s.mode:"absolute-height",h=t(s)?r(s.offset,0):0,u="on-the-ground"!==l?h+a:0,d=u/this.view.renderCoordsHelper.unitInMeters;if("absolute-height"===l){if(this.view.renderCoordsHelper.intersectInfiniteManifold(i,u,S)){const e=this.view.computeMapPointFromVec3d(S);return e.z-=h,e}return null}const m=this.view.state.camera,p=n(R.get());m.projectToRenderScreen(i.origin,p);const y=new A(null,this._forEachLayer),g=this.view.slicePlane,f=t(g)?E(g):null,v=I(this.viewingMode);v.options.store=M.MIN,v.options.verticalOffset=d;const x=i.origin,w=o(R.get(),x,i.direction);v.reset(x,w,m),v.point=p;const b=t(c)?"type"in c&&"graphics"===c.type?e=>e.metadata.layerUid!==c.uid:e=>e.metadata.graphicUid!==c.uid:null;switch(l){case"relative-to-scene":{const t=t=>(e(b)||b(t))&&t.metadata&&t.metadata.isElevationSource;v.intersect(y.layers,p,this.tolerance,null,t),this.externalIntersectionHandlers.forAll((e=>{if(e.type===P.I3S||e.type===P.TERRAIN){const t=e.slicePlaneEnabled?f:null;e.intersect(v,t,v.rayBegin,v.rayEnd,p)}}))}break;case"on-the-ground":case"relative-to-ground":this.externalIntersectionHandlers.forAll((e=>{if(e.isGround){const t=e.slicePlaneEnabled?f:null;e.intersect(v,t,v.rayBegin,v.rayEnd,p)}}))}if(v.results.min.getIntersectionPoint(S)){const e=this.view.computeMapPointFromVec3d(S);return e.z=a,e}return null}computeIntersection(i,s,a){if(e(i))return;const c=this.view.state.camera,l=n(R.get());c.projectToRenderScreen(i.origin,l);const h=new A(a,this._forEachLayer);s.options.selectOpaqueTerrainOnly=!a||!("include"in a||"exclude"in a);const u=i.origin,d=o(R.get(),i.origin,i.direction);s.reset(u,d,c),s.intersect(h.layers,l,this.tolerance);const m=this.view.slicePlane,p=t(m)?E(m):null;s.intersect(h.sliceableLayers,l,this.tolerance,p);const y=a&&(a.requiresGroundFeedback||a.enableDraped);this.externalIntersectionHandlers.forAll((e=>{if(s.options.isFiltered=!h.filterLayerUid(e.layerUid),e.isGround&&y||!s.options.isFiltered){const t=e.slicePlaneEnabled?p:null;e.intersect(s,t,u,d,l)}}));const g=R.get();if(a&&a.enableDraped&&s.results.ground.getIntersectionPoint(g)){const e=this.view.basemapTerrain.overlayManager.renderer,t=this.view.renderCoordsHelper.spatialReference,i=R.get();this.view.renderCoordsHelper.fromRenderCoords(g,i,this.view.spatialReference),i[2]=r(this.view.elevationProvider.getElevation(g[0],g[1],g[2],t,"ground"),0),e.intersect(s,i,s.results.ground,(e=>h.filterRenderGeometry(e)))}s.sortResults(),this._processHUDResults(s)}_processHUDResults(r){const i=r.results.hud;d(this.tmpRegion,m);const n=this.view.state.camera,s=[],o=this.tmpRegion,a=e=>{const t=new T(e);n.projectToRenderScreen(e.target.center,t.screenPoint),t.screenPoint[0]=Math.floor(t.screenPoint[0]),t.screenPoint[1]=Math.floor(t.screenPoint[1]),s.push(t),g(o,t.screenPoint)};r.sortResults(i.all),t(i.min.dist)&&a(i.min);for(const e of i.all)i.min.target.object!==e.target.object&&i.max.target.object!==e.target.object&&a(e);if(t(i.max.dist)&&i.max.target.object!==i.min.target.object&&a(i.max),!s.length)return;o[0]===o[2]&&(o[2]+=1),o[1]===o[3]&&(o[3]+=1);const c=n.fullWidth,l=n.fullHeight,h=Math.max(0,o[0]-U),u=Math.max(0,o[1]-U),f=Math.min(p(o)+2*U,c-h),R=Math.min(y(o)+2*U,l-u),v=new Uint8Array(f*R*4);this.view._stage.renderView.readHUDVisibility(h,u,f,R,v);let x=!0;const w=e(r.results.max.dist);let b=0;for(const e of s)for(const t of L){if(v[4*(Math.min(e.screenPoint[0]+t[0],c)-o[0]+(Math.min(e.screenPoint[1]+t[1],l)-o[1])*f)]){x&&(r.results.min.copy(e.result),x=!1),w&&r.results.max.copy(e.result),r.options.store===M.ALL&&r.results.all.splice(b++,0,e.result);break}}}}const U=1,L=(()=>{const e=[],t=U;for(let r=-t;r<=t;r++)for(let i=-t;i<=t;i++)e.push([i+t,r+t]);return e})();class T{constructor(e){this.result=e,this.screenPoint=s()}}let _;function k(e){return _&&_.viewingMode===e||(_=I(e)),_}class A{constructor(e,t){this.layers=new Array,this.sliceableLayers=new Array,this.include=null==e?void 0:e.include,this.exclude=null==e?void 0:e.exclude,t((e=>{e.isPickable&&this.filterLayerUid(e.apiLayerUid)&&(e.isSliceable?this.sliceableLayers:this.layers).push(e)}))}filterLayerUid(t){const{include:r,exclude:i}=this;return e(t)?null==r&&null==i:(null==r||r.has(t))&&(null==i||!i.has(t))}filterRenderGeometry(e){return this.filterLayerUid(e.layerUid)}}function F(e){return"object"==typeof e&&"intersect"in e}const S=h(),N=s();export{H as SceneIntersectionHelper,F as isIntersectionHandler};
5
+ import{isNone as e,isSome as t,unwrapOr as r}from"../../../../core/maybe.js";import i from"../../../../core/PooledArray.js";import{castRenderScreenPointArray3 as n,createRenderScreenPointArray3 as s}from"../../../../core/screenUtils.js";import{a as o,n as a,g as c,l}from"../../../../chunks/vec3.js";import{c as h}from"../../../../chunks/vec3f64.js";import{create as u,copy as m,NEGATIVE_INFINITY as d,width as p,height as y,expandPointInPlace as g}from"../../../../geometry/support/aaBoundingRect.js";import{create as f}from"../../../../geometry/support/ray.js";import{sv3d as R}from"../../../../geometry/support/vectorStacks.js";import{ViewingMode as v}from"../../../ViewingMode.js";import{fromRenderAtEye as x,fromScreen as w}from"../../support/geometryUtils/ray.js";import{DEFAULT_TOLERANCE as b,newIntersector as I}from"../../webgl-engine/lib/Intersector.js";import{StoreResults as M,IntersectorType as P}from"../../webgl-engine/lib/IntersectorInterfaces.js";import{isValidIntersectorResult as j,sliceFilterPredicate as E}from"../../webgl-engine/lib/intersectorUtils.js";class H{constructor(e,t,r){this.viewingMode=e,this._forEachLayer=t,this.view=r,this.externalIntersectionHandlers=new i,this.tolerance=b,this.tmpRay=f(),this.tmpRegion=u(),this.validateHUDIntersector=I(this.viewingMode),this.validateHUDIntersector.options.hud=!1}intersectScreen(e,t,r){return this.intersectRay(this._getPickRay(e,this.tmpRay),k(this.viewingMode),t,r)}intersectScreenFreePointFallback(e,t,r){return this.intersectRayFreePointFallback(this._getPickRay(e,this.tmpRay),t,r)}intersectRayFreePointFallback(e,t,r){return this.intersectRay(e,k(this.viewingMode),t,r)||this._intersectRayFreePointLocal(e,t)}intersectRay(e,t,r,i){return t.options.selectionMode=!1,t.options.store=M.MIN,this.computeIntersection(e,t,i),!!t.results.min&&t.results.min.getIntersectionPoint(r)}getCenterRayWithSubpixelOffset(e,t,r=.5,i=.5){return e.getRenderCenter(N,r,i),N[0]+=.0466,N[1]-=.0123,x(e,N,t)}intersectIntersectorScreen(e,t,r){this.computeIntersection(this._getPickRay(e,this.tmpRay),t,r)}intersectToolIntersectorScreen(e,t,r){const i=this._getPickRay(e,this.tmpRay);this.intersectToolIntersectorRay(i,t,r)}intersectToolIntersectorRay(e,t,r){t.options.selectionMode=!0,this.computeIntersection(e,t,r);const i=t.results.min;!!this.view.basemapTerrain&&this.view.basemapTerrain.opaque||j(i)&&i.intersector!==P.TERRAIN||(t.options.selectionMode=!1,this.computeIntersection(e,t,r))}setTolerance(e=b){this.tolerance=e}addIntersectionHandler(e){this.externalIntersectionHandlers.push(e),this.externalIntersectionHandlers.sort(((e,t)=>e.type===P.TERRAIN?1:t.type===P.TERRAIN?-1:0))}removeIntersectionHandler(e){null!=this.externalIntersectionHandlers.removeUnordered(e)&&this.externalIntersectionHandlers.sort(((e,t)=>e.type===P.TERRAIN?1:t.type===P.TERRAIN?-1:0))}_getPickRay(e,t){const r=this.view.state.camera;return w(r,e,t)}_intersectRayFreePointLocal(t,r){if(this.viewingMode!==v.Local||e(t))return!1;const i=this.view.renderDataExtent;if(e(i))return o(r,t.origin,a(R.get(),t.direction)),!0;const n={x:i.xmax-i.xmin,y:i.ymax-i.ymin,z:8*Math.max(i.xmax-i.xmin,i.ymax-i.ymin)},s=Math.max(n.x,n.y,n.z);if(0===s)return o(r,t.origin,a(R.get(),t.direction)),!0;const h=this.view.state.camera,u=Math.max(0,i.xmin-h.eye[0],h.eye[0]-i.xmax),m=Math.max(0,i.ymin-h.eye[1],h.eye[1]-i.ymax),d=Math.sqrt(u*u+m*m),p=Math.abs(h.relativeElevation)+Number.MIN_VALUE,y=Math.max(0,Math.log(s/p))**2;let g=s/Math.max(1,y);g=Math.max(g,Math.min(d,s));const f=c(R.get(),t.direction,g/l(t.direction));return o(r,t.origin,f),!0}intersectElevationFromScreen(e,t,r=0,i=null){return this._intersectElevation(this._getPickRay(e,this.tmpRay),t,r,i)}_intersectElevation(i,s,a=0,c=null){if(e(i))return null;const l=t(s)?s.mode:"absolute-height",h=t(s)?r(s.offset,0):0,u="on-the-ground"!==l?h+a:0,m=u/this.view.renderCoordsHelper.unitInMeters;if("absolute-height"===l){if(this.view.renderCoordsHelper.intersectInfiniteManifold(i,u,S)){const e=this.view.computeMapPointFromVec3d(S);return e.z-=h,e}return null}const d=this.view.state.camera,p=n(R.get());d.projectToRenderScreen(i.origin,p);const y=new A(null,this._forEachLayer),g=this.view.slicePlane,f=t(g)?E(g):null,v=I(this.viewingMode);v.options.store=M.MIN,v.options.verticalOffset=m;const x=i.origin,w=o(R.get(),x,i.direction);v.reset(x,w,d),v.point=p;const b=t(c)?"type"in c&&"graphics"===c.type?e=>e.metadata.layerUid!==c.uid:e=>e.metadata.graphicUid!==c.uid:null;switch(l){case"relative-to-scene":{const t=t=>(e(b)||b(t))&&t.metadata&&t.metadata.isElevationSource;v.intersect(y.layers,p,this.tolerance,null,t),this.externalIntersectionHandlers.forAll((e=>{if(e.type===P.I3S||e.type===P.TERRAIN){const t=e.slicePlaneEnabled?f:null;e.intersect(v,t,v.rayBegin,v.rayEnd,p)}}))}break;case"on-the-ground":case"relative-to-ground":this.externalIntersectionHandlers.forAll((e=>{if(e.isGround){const t=e.slicePlaneEnabled?f:null;e.intersect(v,t,v.rayBegin,v.rayEnd,p)}}))}if(v.results.min.getIntersectionPoint(S)){const e=this.view.computeMapPointFromVec3d(S);return e.z=a,e}return null}computeIntersection(i,s,a){if(e(i))return;const c=this.view.state.camera,l=n(R.get());c.projectToRenderScreen(i.origin,l);const h=new A(a,this._forEachLayer);s.options.selectOpaqueTerrainOnly=!a||!("include"in a||"exclude"in a);const u=i.origin,m=o(R.get(),i.origin,i.direction);s.reset(u,m,c),s.intersect(h.layers,l,this.tolerance);const d=this.view.slicePlane,p=t(d)?E(d):null;s.intersect(h.sliceableLayers,l,this.tolerance,p);const y=a&&(a.requiresGroundFeedback||a.enableDraped);this.externalIntersectionHandlers.forAll((e=>{if(s.options.isFiltered=!h.filterLayerUid(e.layerUid),e.isGround&&y||!s.options.isFiltered){const t=e.slicePlaneEnabled?p:null;e.intersect(s,t,u,m,l)}}));const g=R.get();if(a&&a.enableDraped&&s.results.ground.getIntersectionPoint(g)){const e=this.view.basemapTerrain.overlayManager.renderer,t=this.view.renderCoordsHelper.spatialReference,i=R.get();this.view.renderCoordsHelper.fromRenderCoords(g,i,this.view.spatialReference),i[2]=r(this.view.elevationProvider.getElevation(g[0],g[1],g[2],t,"ground"),0),e.intersect(s,i,s.results.ground,(e=>h.filterRenderGeometry(e)))}s.sortResults(),this._processHUDResults(s)}_processHUDResults(r){const i=r.results.hud;m(this.tmpRegion,d);const n=this.view.state.camera,s=[],o=this.tmpRegion,a=e=>{const t=new T(e);n.projectToRenderScreen(e.target.center,t.screenPoint),t.screenPoint[0]=Math.floor(t.screenPoint[0]),t.screenPoint[1]=Math.floor(t.screenPoint[1]),s.push(t),g(o,t.screenPoint)};r.sortResults(i.all),t(i.min.dist)&&a(i.min);for(const e of i.all)i.min.target.object!==e.target.object&&i.max.target.object!==e.target.object&&a(e);if(t(i.max.dist)&&i.max.target.object!==i.min.target.object&&a(i.max),!s.length)return;o[0]===o[2]&&(o[2]+=1),o[1]===o[3]&&(o[3]+=1);const c=n.fullWidth,l=n.fullHeight,h=Math.max(0,o[0]-U),u=Math.max(0,o[1]-U),f=Math.min(p(o)+2*U,c-h),R=Math.min(y(o)+2*U,l-u),v=new Uint8Array(f*R*4);this.view._stage.renderView.readHUDVisibility(h,u,f,R,v);let x=!0;const w=e(r.results.max.dist);let b=0;for(const e of s)for(const t of L){if(v[4*(Math.min(e.screenPoint[0]+t[0],c)-o[0]+(Math.min(e.screenPoint[1]+t[1],l)-o[1])*f)]){x&&(r.results.min.copy(e.result),x=!1),w&&r.results.max.copy(e.result),r.options.store===M.ALL&&r.results.all.splice(b++,0,e.result);break}}}}const U=1,L=(()=>{const e=[],t=U;for(let r=-t;r<=t;r++)for(let i=-t;i<=t;i++)e.push([i+t,r+t]);return e})();class T{constructor(e){this.result=e,this.screenPoint=s()}}let _;function k(e){return _&&_.viewingMode===e||(_=I(e)),_}class A{constructor(e,t){this.layers=new Array,this.sliceableLayers=new Array,this.include=e?.include,this.exclude=e?.exclude,t((e=>{e.isPickable&&this.filterLayerUid(e.apiLayerUid)&&(e.isSliceable?this.sliceableLayers:this.layers).push(e)}))}filterLayerUid(t){const{include:r,exclude:i}=this;return e(t)?null==r&&null==i:(null==r||r.has(t))&&(null==i||!i.has(t))}filterRenderGeometry(e){return this.filterLayerUid(e.layerUid)}}function F(e){return"object"==typeof e&&"intersect"in e}const S=h(),N=s();export{H as SceneIntersectionHelper,F as isIntersectionHandler};
@@ -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{destroyMaybe as s,removeMaybe as a}from"../../../core/maybe.js";import{watch as o,sync as i}from"../../../core/reactiveUtils.js";import{addFrameTask as h}from"../../../core/scheduling.js";import{secondsFromMilliseconds as l}from"../../../core/time.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 u}from"../../../core/accessorSupport/decorators/subclass.js";import{maxDownloadSlots as m,downloadSlotsPerClient as d}from"./index.js";import{newMemoryController as c}from"./MemoryController.js";import{StreamDataLoader as _}from"./StreamDataLoader.js";import{ImmediateTask as p,State as y,newScheduler as g,TaskPriority as C}from"../../support/Scheduler.js";let T=class extends t{constructor(){super(...arguments),this.updating=!1}};function v(e,t=(()=>performance.now())){return new f.ResourceController({view:e,now:t})}var f;e([n({readOnly:!0})],T.prototype,"updating",void 0),T=e([u("esri.views.3d.support.ResourceController")],T),function(t){let v=class extends T{constructor(){super(...arguments),this._scheduler=null,this._memoryController=null,this._streamDataLoader=null,this._scheduleTask=p,this._cameraChangeTime=0,this._handles=new r,this._frameTask=null,this._state=y.IDLE}initialize(){this._cameraChangeTime=this.now(),this._scheduler=g(this.now),this._memoryController=c(this.view),this._streamDataLoader=new _,this._streamDataLoader.setup(m,d,this._scheduler),this._handles.add([o((()=>{var e;return null==(e=this.view.state)?void 0:e.camera}),((e,t)=>this._cameraChangedHandler(e,t)),i),o((()=>this.view.stationary),(()=>this._stationaryChangedHandler()))]),this._frameTask=h({update:e=>this._frame(e)}),this._scheduleTask=this._scheduler.registerTask(C.RESOURCE_CONTROLLER)}destroy(){this._handles=s(this._handles),this._scheduleTask.remove(),this._frameTask=a(this._frameTask),this._streamDataLoader=s(this._streamDataLoader),this._memoryController=s(this._memoryController),this._scheduler=s(this._scheduler)}get updating(){var e,t,r;return!!(null!=(e=this._memoryController)&&e.updating||null!=(t=this._streamDataLoader)&&t.updating||null!=(r=this._scheduleTask)&&r.updating)}get scheduler(){return this._scheduler}get memoryController(){return this._memoryController}schedule(e,t,r){return this._scheduleTask.schedule(e,t,r)}createStreamDataRequester(e){const t=this._streamDataLoader;return{request:(r,s,a)=>t.request(r,s,e,a),get busy(){return!t.hasDownloadSlots(e)}}}_frame(e){this.view.suspended||this.view.stateManager&&(this.view.stateManager.step(l(e.deltaTime)),!this._scheduler)||(this._updateState(),this._scheduler.state=this._state,this._scheduler.updateBudget(e)?(this._memoryController.update(),this._scheduler.frame()):this._memoryController.updating&&this._memoryController.update())}_cameraChangedHandler(e,t){e&&t&&e.almostEquals(t)||(this._cameraChangeTime=this._scheduler.now,this._updateState(),this._scheduler.state=this._state)}_stationaryChangedHandler(){this.memoryController.resetStableQuality()}_updateState(){this.view.animation?this._state=y.ANIMATING:this.view.interacting?this._state=y.INTERACTING:(this._state===y.ANIMATING&&(this._cameraChangeTime=0),this._scheduler.now-this._cameraChangeTime<=f?this._state=y.INTERACTING:this._state=y.IDLE)}get test(){return{getQueueStats:e=>this._streamDataLoader.test.loadQueue.getStatsForType(e),state:this._state}}};e([n({constructOnly:!0})],v.prototype,"view",void 0),e([n({constructOnly:!0})],v.prototype,"now",void 0),e([n()],v.prototype,"_scheduler",void 0),e([n()],v.prototype,"_memoryController",void 0),e([n()],v.prototype,"_streamDataLoader",void 0),e([n()],v.prototype,"_scheduleTask",void 0),e([n({readOnly:!0})],v.prototype,"updating",null),v=e([u("esri.views.3d.support.ResourceController")],v),t.ResourceController=v;const f=300}(f||(f={}));export{T as ResourceControllerMain,v as newResourceController};
5
+ import{_ as e}from"../../../chunks/tslib.es6.js";import t from"../../../core/Accessor.js";import r from"../../../core/Handles.js";import{destroyMaybe as s,removeMaybe as a}from"../../../core/maybe.js";import{watch as o,sync as i}from"../../../core/reactiveUtils.js";import{addFrameTask as h}from"../../../core/scheduling.js";import{secondsFromMilliseconds as l}from"../../../core/time.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 m}from"../../../core/accessorSupport/decorators/subclass.js";import{maxDownloadSlots as d,downloadSlotsPerClient as u}from"./index.js";import{newMemoryController as c}from"./MemoryController.js";import{StreamDataLoader as _}from"./StreamDataLoader.js";import{ImmediateTask as p,State as y,newScheduler as g,TaskPriority as C}from"../../support/Scheduler.js";let T=class extends t{constructor(){super(...arguments),this.updating=!1}};function f(e,t=(()=>performance.now())){return new w.ResourceController({view:e,now:t})}var w;e([n({readOnly:!0})],T.prototype,"updating",void 0),T=e([m("esri.views.3d.support.ResourceController")],T),function(t){let f=class extends T{constructor(){super(...arguments),this._scheduler=null,this._memoryController=null,this._streamDataLoader=null,this._scheduleTask=p,this._cameraChangeTime=0,this._handles=new r,this._frameTask=null,this._state=y.IDLE}initialize(){this._cameraChangeTime=this.now(),this._scheduler=g(this.now),this._memoryController=c(this.view),this._streamDataLoader=new _,this._streamDataLoader.setup(d,u,this._scheduler),this._handles.add([o((()=>this.view.state?.camera),((e,t)=>this._cameraChangedHandler(e,t)),i),o((()=>this.view.stationary),(()=>this._stationaryChangedHandler()))]),this._frameTask=h({update:e=>this._frame(e)}),this._scheduleTask=this._scheduler.registerTask(C.RESOURCE_CONTROLLER)}destroy(){this._handles=s(this._handles),this._scheduleTask.remove(),this._frameTask=a(this._frameTask),this._streamDataLoader=s(this._streamDataLoader),this._memoryController=s(this._memoryController),this._scheduler=s(this._scheduler)}get updating(){return!!(this._memoryController?.updating||this._streamDataLoader?.updating||this._scheduleTask?.updating)}get scheduler(){return this._scheduler}get memoryController(){return this._memoryController}schedule(e,t,r){return this._scheduleTask.schedule(e,t,r)}createStreamDataRequester(e){const t=this._streamDataLoader;return{request:(r,s,a)=>t.request(r,s,e,a),get busy(){return!t.hasDownloadSlots(e)}}}_frame(e){this.view.suspended||this.view.stateManager&&(this.view.stateManager.step(l(e.deltaTime)),!this._scheduler)||(this._updateState(),this._scheduler.state=this._state,this._scheduler.updateBudget(e)?(this._memoryController.update(),this._scheduler.frame()):this._memoryController.updating&&this._memoryController.update())}_cameraChangedHandler(e,t){e&&t&&e.almostEquals(t)||(this._cameraChangeTime=this._scheduler.now,this._updateState(),this._scheduler.state=this._state)}_stationaryChangedHandler(){this.memoryController.resetStableQuality()}_updateState(){this.view.animation?this._state=y.ANIMATING:this.view.interacting?this._state=y.INTERACTING:(this._state===y.ANIMATING&&(this._cameraChangeTime=0),this._scheduler.now-this._cameraChangeTime<=w?this._state=y.INTERACTING:this._state=y.IDLE)}get test(){return{getQueueStats:e=>this._streamDataLoader.test.loadQueue.getStatsForType(e),state:this._state}}};e([n({constructOnly:!0})],f.prototype,"view",void 0),e([n({constructOnly:!0})],f.prototype,"now",void 0),e([n()],f.prototype,"_scheduler",void 0),e([n()],f.prototype,"_memoryController",void 0),e([n()],f.prototype,"_streamDataLoader",void 0),e([n()],f.prototype,"_scheduleTask",void 0),e([n({readOnly:!0})],f.prototype,"updating",null),f=e([m("esri.views.3d.support.ResourceController")],f),t.ResourceController=f;const w=300}(w||(w={}));export{T as ResourceControllerMain,f as newResourceController};
@@ -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{removeUnordered as e}from"../../../core/arrayUtils.js";import t from"../../../core/Handles.js";import{makeHandle as s}from"../../../core/handleUtils.js";import{watch as r,sync as i}from"../../../core/reactiveUtils.js";import{getReferenceEllipsoid as n}from"../../../geometry/projectionEllipsoid.js";import{ClientType as c}from"./index.js";import{StreamTextureCollection as a}from"./StreamTextureCollection.js";import{getSettings as o,getLabelSettings as l}from"../webgl-engine/lib/screenSizePerspectiveUtils.js";import{TextureWrapMode as p}from"../../webgl/enums.js";class h{constructor(e){this.textures=null,this.streamDataRequester=null,this.graphicsOwners=[],this.screenSizePerspectiveHandles=null,this.cimSymbolRasterizer=null,this.viewState=e.viewState,this.view=e.view,this.pointsOfInterest=e.pointsOfInterest,this.objectResourceCache=e.objectResourceCache,this.streamDataRequester=e.resourceController.createStreamDataRequester(c.SYMBOLOGY),this.textures=new a(this.streamDataRequester,e.view._stage,{preMultiplyAlpha:!0,wrap:{s:p.CLAMP_TO_EDGE,t:p.CLAMP_TO_EDGE}},e.resourceController.scheduler);const t=n(this.view.spatialReference).radius;this.screenSizePerspectiveSettings=o(e.viewingMode,t),this.screenSizePerspectiveSettingsLabels=l(e.viewingMode,t)}destroy(){this.textures.destroy(),this.textures=null,this.streamDataRequester=null}addGraphicsOwner(t){if(!t)return s();this.graphicsOwners.push(t);const i=r((()=>{var e;return null==(e=t.layer)?void 0:e.screenSizePerspectiveEnabled}),(()=>this._updateScreenSizePerspectiveEnabled()));return this._updateScreenSizePerspectiveEnabled(),s((()=>{i.remove(),e(this.graphicsOwners,t),this._updateScreenSizePerspectiveEnabled()}))}_updateScreenSizePerspectiveEnabled(){const e=this.graphicsOwners.some((e=>{var t;return!0===(null==(t=e.layer)?void 0:t.screenSizePerspectiveEnabled)}));if(e&&!this.screenSizePerspectiveHandles){this.screenSizePerspectiveHandles=new t;const e=()=>this._updateScreenSizePerspectiveSettings();this.screenSizePerspectiveHandles.add([r((()=>this.pointsOfInterest.centerOnSurfaceInfrequent.distance),e,i),this.viewState.events.on("camera-projection-changed",e)]),this._updateScreenSizePerspectiveSettings()}else!e&&this.screenSizePerspectiveHandles&&(this.screenSizePerspectiveHandles.destroy(),this.screenSizePerspectiveHandles=null)}_updateScreenSizePerspectiveSettings(){const e=this.pointsOfInterest;d.distance=e.centerOnSurfaceInfrequent.distance,d.fovY=this.viewState.camera.fovY,this.screenSizePerspectiveSettings.update(d),this.screenSizePerspectiveSettingsLabels.update(d),this.view._stage.renderView.requestRender()}get test(){return{screenSizePerspectiveHandles:this.screenSizePerspectiveHandles}}}const d={distance:0,fovY:0};export{h as SharedSymbolResources};
5
+ import{removeUnordered as e}from"../../../core/arrayUtils.js";import t from"../../../core/Handles.js";import{makeHandle as s}from"../../../core/handleUtils.js";import{watch as i,sync as r}from"../../../core/reactiveUtils.js";import{getReferenceEllipsoid as n}from"../../../geometry/projectionEllipsoid.js";import{ClientType as c}from"./index.js";import{StreamTextureCollection as a}from"./StreamTextureCollection.js";import{getSettings as o,getLabelSettings as p}from"../webgl-engine/lib/screenSizePerspectiveUtils.js";import{TextureWrapMode as l}from"../../webgl/enums.js";class h{constructor(e){this.textures=null,this.streamDataRequester=null,this.graphicsOwners=[],this.screenSizePerspectiveHandles=null,this.cimSymbolRasterizer=null,this.viewState=e.viewState,this.view=e.view,this.pointsOfInterest=e.pointsOfInterest,this.objectResourceCache=e.objectResourceCache,this.streamDataRequester=e.resourceController.createStreamDataRequester(c.SYMBOLOGY),this.textures=new a(this.streamDataRequester,e.view._stage,{preMultiplyAlpha:!0,wrap:{s:l.CLAMP_TO_EDGE,t:l.CLAMP_TO_EDGE}},e.resourceController.scheduler);const t=n(this.view.spatialReference).radius;this.screenSizePerspectiveSettings=o(e.viewingMode,t),this.screenSizePerspectiveSettingsLabels=p(e.viewingMode,t)}destroy(){this.textures.destroy(),this.textures=null,this.streamDataRequester=null}addGraphicsOwner(t){if(!t)return s();this.graphicsOwners.push(t);const r=i((()=>t.layer?.screenSizePerspectiveEnabled),(()=>this._updateScreenSizePerspectiveEnabled()));return this._updateScreenSizePerspectiveEnabled(),s((()=>{r.remove(),e(this.graphicsOwners,t),this._updateScreenSizePerspectiveEnabled()}))}_updateScreenSizePerspectiveEnabled(){const e=this.graphicsOwners.some((e=>!0===e.layer?.screenSizePerspectiveEnabled));if(e&&!this.screenSizePerspectiveHandles){this.screenSizePerspectiveHandles=new t;const e=()=>this._updateScreenSizePerspectiveSettings();this.screenSizePerspectiveHandles.add([i((()=>this.pointsOfInterest.centerOnSurfaceInfrequent.distance),e,r),this.viewState.events.on("camera-projection-changed",e)]),this._updateScreenSizePerspectiveSettings()}else!e&&this.screenSizePerspectiveHandles&&(this.screenSizePerspectiveHandles.destroy(),this.screenSizePerspectiveHandles=null)}_updateScreenSizePerspectiveSettings(){const e=this.pointsOfInterest;S.distance=e.centerOnSurfaceInfrequent.distance,S.fovY=this.viewState.camera.fovY,this.screenSizePerspectiveSettings.update(S),this.screenSizePerspectiveSettingsLabels.update(S),this.view._stage.renderView.requestRender()}get test(){return{screenSizePerspectiveHandles:this.screenSizePerspectiveHandles}}}const S={distance:0,fovY:0};export{h as SharedSymbolResources};
@@ -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{isSome as r}from"../../../core/maybe.js";import{property as s}from"../../../core/accessorSupport/decorators/property.js";import"../../../core/arrayUtils.js";import"../../../core/has.js";import"../../../core/accessorSupport/ensureType.js";import{subclass as o}from"../../../core/accessorSupport/decorators/subclass.js";import{TaskPriority as u,ImmediateTask as a}from"../../support/Scheduler.js";let n=class extends t{constructor(e,t){var r;super({}),this._stage=e,this._textureRequests=new Map,this._frameTask=null!=(r=null==t?void 0:t.registerTask(u.TEXTURE_UNLOAD))?r:a}normalizeCtorArgs(){return{}}destroy(){super.destroy(),this._frameTask.remove(),this._textureRequests.forEach((e=>this._releaseTextureRequest(e))),this._textureRequests.clear()}get updating(){return this._frameTask.updating}fromData(e,t,r){const s=this.makeUid(e);let o=this._textureRequests.get(s);return o||(o={referenceCount:0,texture:t(),textureAsync:null,abortController:null,onRemove:r},this._stage&&(this._stage.add(o.texture),this._stage.loadImmediate(o.texture)),this._textureRequests.set(s,o)),o.referenceCount++,{uid:s,texture:o.texture,release:()=>this._release(s)}}_release(e){const t=this._textureRequests.get(e);t?(t.referenceCount<1&&console.warn("TextureCollection: reference count is < 1 for "+e),t.referenceCount--,t.referenceCount<1&&this._frameTask.schedule((()=>this._releaseNow(e)))):console.warn(`TextureCollection: texture doesn't exist: '${e}'`)}get test(){return{textureRequests:this._textureRequests}}_releaseNow(e){if(!this._textureRequests)return;const t=this._textureRequests.get(e);!t||t.referenceCount>0||(this._releaseTextureRequest(t),this._textureRequests.delete(e))}_releaseTextureRequest(e){var t;(e.onRemove&&e.onRemove(),e.texture)?null==(t=this._stage)||t.remove(e.texture):e.abortController&&(e.abortController.abort(),e.abortController=null)}makeUid(e,t=null){return r(t)?`${e}.${t}px`:e}};e([s()],n.prototype,"_frameTask",void 0),e([s()],n.prototype,"updating",null),n=e([o("esri.views.3d.support.TextureCollection")],n);export{n as TextureCollection};
5
+ import{_ as e}from"../../../chunks/tslib.es6.js";import t from"../../../core/Accessor.js";import{isSome as r}from"../../../core/maybe.js";import{property as s}from"../../../core/accessorSupport/decorators/property.js";import"../../../core/arrayUtils.js";import"../../../core/has.js";import"../../../core/accessorSupport/ensureType.js";import{subclass as o}from"../../../core/accessorSupport/decorators/subclass.js";import{TaskPriority as u,ImmediateTask as a}from"../../support/Scheduler.js";let i=class extends t{constructor(e,t){super({}),this._stage=e,this._textureRequests=new Map,this._frameTask=t?.registerTask(u.TEXTURE_UNLOAD)??a}normalizeCtorArgs(){return{}}destroy(){super.destroy(),this._frameTask.remove(),this._textureRequests.forEach((e=>this._releaseTextureRequest(e))),this._textureRequests.clear()}get updating(){return this._frameTask.updating}fromData(e,t,r){const s=this.makeUid(e);let o=this._textureRequests.get(s);return o||(o={referenceCount:0,texture:t(),textureAsync:null,abortController:null,onRemove:r},this._stage&&(this._stage.add(o.texture),this._stage.loadImmediate(o.texture)),this._textureRequests.set(s,o)),o.referenceCount++,{uid:s,texture:o.texture,release:()=>this._release(s)}}_release(e){const t=this._textureRequests.get(e);t?(t.referenceCount<1&&console.warn("TextureCollection: reference count is < 1 for "+e),t.referenceCount--,t.referenceCount<1&&this._frameTask.schedule((()=>this._releaseNow(e)))):console.warn(`TextureCollection: texture doesn't exist: '${e}'`)}get test(){return{textureRequests:this._textureRequests}}_releaseNow(e){if(!this._textureRequests)return;const t=this._textureRequests.get(e);!t||t.referenceCount>0||(this._releaseTextureRequest(t),this._textureRequests.delete(e))}_releaseTextureRequest(e){e.onRemove&&e.onRemove(),e.texture?this._stage?.remove(e.texture):e.abortController&&(e.abortController.abort(),e.abortController=null)}makeUid(e,t=null){return r(t)?`${e}.${t}px`:e}};e([s()],i.prototype,"_frameTask",void 0),e([s()],i.prototype,"updating",null),i=e([o("esri.views.3d.support.TextureCollection")],i);export{i as TextureCollection};
@@ -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 e from"../../../Camera.js";import{Cyclical as t}from"../../../core/Cyclical.js";import n from"../../../core/Logger.js";import{deg2rad as r,rad2deg as i}from"../../../core/mathUtils.js";import{isNone as o,unwrapOr as a,isSome as s}from"../../../core/maybe.js";import{createResolver as l}from"../../../core/promiseUtils.js";import{g as c,a as f,j as u,i as m,c as p}from"../../../chunks/vec3.js";import{a as d,c as v}from"../../../chunks/vec3f64.js";import h from"../../../geometry/Point.js";import{projectPointToVector as g,projectVectorToVector as y,projectVectorToPoint as R,project as x}from"../../../geometry/projection.js";import{getReferenceEllipsoid as j}from"../../../geometry/projectionEllipsoid.js";import M from"../../../geometry/SpatialReference.js";import{getResolutionForScale as w}from"../../../geometry/support/scaleUtils.js";import{ViewingMode as S}from"../../ViewingMode.js";import{cameraOnContentAlongViewDirection as T}from"../camera/intersectionUtils.js";import{c as C,t as z}from"../../../chunks/cameraUtilsPlanar.js";import{c as U,t as b}from"../../../chunks/cameraUtilsSpherical.js";import{getGreatCircleSpanAt as A}from"./earthUtils.js";import{getElevationAtPoint as D}from"./ElevationProvider.js";import{isSpatialReferenceSupported as H}from"../../support/spatialReferenceSupport.js";const P=n.getLogger("esri.views.3d.support.cameraUtils"),L=39.37,E=96,G=1,O=8,k=5,I=1,q=v(),J=v(),F={heading:0,tilt:0},W=new h,X=new t(-20037508.342788905,20037508.342788905),K=new t(-180,180);var Y;function N(e){return e.spatialReference||M.WGS84}function V(e){return"global"===e.viewingMode?U:C}function Z(e,t,n,r,i){return V(e).headingTiltToDirectionUp(t,n,r,i)}function B(e,t){if(o(t))return null;const n=e.renderSpatialReference,i=V(e).headingTiltToDirectionUp,a=v();if(!g(t.position,a,n))return null;const s=i(a,t.heading,t.tilt);c(s.direction,s.direction,e.state.camera.distance),f(s.direction,s.direction,a);const l=T(e,a,s.direction,s.up);return l.fov=r(t.fov),l}!function(e){e[e.LOCKED=0]="LOCKED",e[e.ADJUST=1]="ADJUST"}(Y||(Y={}));const Q=v();function $(t,n,r){const a=t.renderSpatialReference,s=re(t,n.eye,n.viewForward,n.up,F);let l=N(t);return y(n.eye,a,Q,l)||(l=M.WGS84,y(n.eye,a,Q,l)),o(r)?new e(new h(Q,l),s.heading,s.tilt,i(n.fov)):(r.position.x=Q[0],r.position.y=Q[1],r.position.z=Q[2],r.position.spatialReference=l,r.heading=s.heading,r.tilt=s.tilt,r.fov=i(n.fov),r)}function _(e,t,n){const i=e.state.camera,o=i.width/2/i.pixelRatio;e.renderCoordsHelper.viewingMode===S.Global&&null!=n&&(t*=Math.cos(r(n))),t/=e.renderCoordsHelper.unitInMeters;return o/(E*L/t)/Math.tan(i.fovX/2)}function ee(e,t,n){const i=e.state.camera,o=t*Math.tan(i.fovX/2),a=i.width/2/i.pixelRatio;let s=E*L/(a/o);return e.renderCoordsHelper.viewingMode===S.Global&&(s/=Math.cos(r(n))),s*=e.renderCoordsHelper.unitInMeters,s}function te(e,t,n,r,i,o){return ne(e,t,_(e,n,t.latitude),r,i,o)}function ne(e,t,n,r,i,a){if(Te(a)){const s=new Se(a.signal);return le(e,r.heading,r.tilt,t,n,i,s),void s.resolver.promise.then((t=>{const n=Re(e,t,r.fov);if(!o(n))return a.resolver.resolve(n);a.resolver.reject()}),(e=>a.resolver.reject(e)))}const s=le(e,r.heading,r.tilt,t,n,i);return Re(e,s,r.fov,a)}function re(e,t,n,r,i){return V(e).directionToHeadingTilt(t,n,r,i)}function ie(e,t){return!!(e.basemapTerrain&&e.renderCoordsHelper.fromRenderCoords(t,W,e.spatialReference)&&a(D(e.elevationProvider,W),0)>W.z-I)}async function oe(e,t,n){if(!e.renderCoordsHelper.fromRenderCoords(t,W,e.spatialReference))return!1;const r=await e.elevationProvider.queryElevation(W.x,W.y,W.z,W.spatialReference,"ground",n);return a(r,0)>W.z-I}async function ae(e,t,n){const r=v();if(t)if(t instanceof h){if(g(t,r,e.renderSpatialReference),null==t.z&&null!=e.basemapTerrain){const i=await e.elevationProvider.queryElevation(t.x,t.y,t.z,t.spatialReference,"ground",n);return s(i)&&e.renderCoordsHelper.setAltitude(r,i),r}}else p(r,t);else p(r,e.state.camera.center);return r}function se(e,t){const n=v();if(t&&t instanceof h){if(g(t,n,e.renderSpatialReference),null==t.z&&null!=e.basemapTerrain){const r=D(e.elevationProvider,t);s(r)&&e.renderCoordsHelper.setAltitude(n,r)}}else p(n,t||e.state.camera.center);return n}function le(e,t,n,r,i,o,a){const s=r&&r instanceof h?r:null;if(Te(a))return ae(e,r,a.signal).then((r=>{ce(e,t,n,s,r,i,o,a)}),(e=>a.resolver.reject(e))),null;const l=se(e,r);return ce(e,t,n,s,l,i,o,a)}function ce(e,t,n,r,i,a,s,l){if(o(r)){const t=e.renderSpatialReference;if(r=R(i,t,N(e)),o(r))return null}a=Math.max(a,e.state.constraints.minimumPoiDistance);const c=pe(e,t,n,i,a,s),f=(0,V(e).eyeForCenterWithHeadingTilt)(i,a,c.heading,c.tilt);if(s===Y.ADJUST&&"global"===e.viewingMode&&n>0){const o=()=>{const o=ge(e,i,a,he(e,a,n,i));return s=n-o<1?Y.LOCKED:Y.ADJUST,ce(e,t,o,r,i,a,s,l)},c=e.map.ground.navigationConstraint;if(!c||"stay-above"===c.type){if(ie(e,f.eye))return o();if(Te(l))return oe(e,f.eye,l.signal).then((e=>e?o():(l.resolver.resolve({eye:f.eye,up:f.up,center:d(i),heading:f.heading,tilt:f.tilt}),null))),null}}const u=!l||Te(l)?{center:v(),eye:v(),up:v(),tilt:0,heading:0}:l;return u.eye=f.eye,u.up=f.up,u.center=d(i),u.heading=f.heading,u.tilt=f.tilt,Te(l)&&l.resolver.resolve(u),u}function fe(e,t,n,r,i,s=null){const l=null!=t.zmax&&null!=t.zmin;let c,f,u;if(e.state.isGlobal){if(!H(t.spatialReference,S.Global))return Te(s)&&s.resolver.reject(),null;const e=new h(t.xmin,t.ymin,t.spatialReference),n=new h(t.xmax,t.ymax,t.spatialReference),r=t.spatialReference.isGeographic?K:X;c=new h({x:r.center(e.x,n.x),y:(n.y+e.y)/2,z:l?(t.zmax+t.zmin)/2:null,spatialReference:t.spatialReference});const i=j(t.spatialReference),o=A(c,e,n);f=o.lon,u=o.lat,r.diff(e.x,n.x)>r.range/2&&(f+=i.halfCircumference),f=Math.min(f,i.halfCircumference),u=Math.min(u,i.halfCircumference)}else{const n=a(e.renderSpatialReference,t.spatialReference);n.equals(t.spatialReference)||(t=x(t,n)),f=t.xmax-t.xmin,u=t.ymax-t.ymin;const r=l?(t.zmax+t.zmin)/2:null;c=new h({x:t.xmin+.5*f,y:t.ymin+.5*u,z:r,spatialReference:n})}const m=l?t.zmax-t.zmin:0,p=e.state.camera,d=1/Math.tan(p.fovX/2),v=1/Math.tan(p.fovY/2),g=1/Math.tan(p.fov/2),y=Math.max(.5*f*d,.5*u*v,.5*m*g)/G;if(Te(s)){const t=new Se(s.signal);return le(e,n,r,c,y,i,t),void t.resolver.promise.then((t=>{const n=Re(e,t,e.camera.fov);if(!o(n))return s.resolver.resolve(n);s.resolver.reject()}),(e=>s.resolver.reject(e)))}const R=le(e,n,r,c,y,i);return Re(e,R,e.camera.fov,s)}function ue(e,t,n){const r=e.renderSpatialReference,i=R(n,r,N(e));if(o(i))return null;const a=Math.tan(t.fovX/2),s=Math.tan(t.fovY/2),l=u(t.eye,n),c=2*l*a*G,f=2*l*s*G;return"global"===e.viewingMode?b(e,i,c,f):z(e,i,c,f)}function me(e,t,n){const r=e.pointsOfInterest.centerOnSurfaceFrequent.distance;if(Math.log(n/r)/Math.LN2>O)return!0;const i=e.renderSpatialReference,a=N(e),s=R(t,i,a),l=R(e.pointsOfInterest.centerOnSurfaceFrequent.renderLocation,i,a);if(o(s)||o(l))return!1;const c=Math.tan(.5*e.state.camera.fov)*r;return l.distance(s)/c>k}function pe(e,t,n,r,i,o){let a=0;return o===Y.ADJUST&&me(e,r,i)?(t=0,a=ve(e,i,n,r)):a=ye(e,r,i,n),a=e.state.constraints.clampTilt(i,a),{heading:t,tilt:n=ge(e,r,i,a)}}const de=.7;function ve(e,t,n,r){const i=e.state.constraints.tilt(t);i.max=Math.min(i.max,.5*Math.PI);const o=i.min*(1-de)+i.max*de,a=ye(e,r,t,n);return Math.min(a,o)}function he(e,t,n,r){const i=e.state.constraints.tilt(t);let o=ye(e,r,t,n);return o=Math.min(o,.5*Math.PI),i.min*(1-de)+o*de}function ge(e,t,n,r){return V(e).lookAtTiltToEyeTilt(r,t,n)}function ye(e,t,n,r){return V(e).eyeTiltToLookAtTilt(r,t,n)}function Re(t,n,r,i){if(o(n))return null;const a=t.renderSpatialReference,l=R(n.eye,a,N(t));return o(l)?null:s(i)?(i.position=l,i.heading=n.heading,i.tilt=n.tilt,i.fov=r,i):new e(l,n.heading,n.tilt,r)}function xe(e,t){var n;const r=null==(n=e.basemapTerrain)?void 0:n.tilingScheme;if(r)return r.levelAtScale(t);P.error("#scaleToZoom()","Cannot compute zoom from scale without a tiling scheme")}function je(e,t){var n;const r=null==(n=e.basemapTerrain)?void 0:n.tilingScheme;if(r)return r.scaleAtLevel(t);P.error("#zoomToScale()","Cannot compute scale from zoom without a tiling scheme")}function Me(e,t){return e.spatialReference?w(t,e.spatialReference):void 0}function we(t,n,r){const i=t.renderSpatialReference;let o,a;n||(n=t.state.camera);const s=M.WGS84;return n instanceof e?(o=n.position.latitude,g(n.position,q,i),g(r,J,i),a=m(q,J)):(y(n.center,i,J,s),o=J[1],a=n.distance),ee(t,a,o)}class Se{constructor(e){this.signal=e,this.resolver=l()}}function Te(e){return e&&"resolver"in e}export{Se as AsyncContext,Y as OrientationMode,we as computeScale,re as directionToHeadingTilt,ee as distanceToScale,B as externalToInternal,ne as fromCenterDistance,te as fromCenterScale,fe as fromExtent,le as getObserverForPointAtDistance,Z as headingTiltToDirectionUp,$ as internalToExternal,Re as observerToCamera,_ as scaleToDistance,Me as scaleToResolution,xe as scaleToZoom,ue as toExtent,je as zoomToScale};
5
+ import e from"../../../Camera.js";import{Cyclical as t}from"../../../core/Cyclical.js";import n from"../../../core/Logger.js";import{deg2rad as r,rad2deg as i}from"../../../core/mathUtils.js";import{isNone as o,unwrapOr as a,isSome as s}from"../../../core/maybe.js";import{createResolver as c}from"../../../core/promiseUtils.js";import{g as l,a as f,j as u,i as m,c as p}from"../../../chunks/vec3.js";import{a as d,c as h}from"../../../chunks/vec3f64.js";import v from"../../../geometry/Point.js";import{projectPointToVector as g,projectVectorToVector as y,projectVectorToPoint as R,project as x}from"../../../geometry/projection.js";import{getReferenceEllipsoid as j}from"../../../geometry/projectionEllipsoid.js";import M from"../../../geometry/SpatialReference.js";import{getResolutionForScale as w}from"../../../geometry/support/scaleUtils.js";import{ViewingMode as S}from"../../ViewingMode.js";import{cameraOnContentAlongViewDirection as T}from"../camera/intersectionUtils.js";import{c as C,t as z}from"../../../chunks/cameraUtilsPlanar.js";import{c as U,t as b}from"../../../chunks/cameraUtilsSpherical.js";import{getGreatCircleSpanAt as A}from"./earthUtils.js";import{getElevationAtPoint as D}from"./ElevationProvider.js";import{isSpatialReferenceSupported as H}from"../../support/spatialReferenceSupport.js";const P=n.getLogger("esri.views.3d.support.cameraUtils"),L=39.37,E=96,G=1,O=8,k=5,I=1,q=h(),J=h(),F={heading:0,tilt:0},W=new v,X=new t(-20037508.342788905,20037508.342788905),K=new t(-180,180);var Y;function N(e){return e.spatialReference||M.WGS84}function V(e){return"global"===e.viewingMode?U:C}function Z(e,t,n,r,i){return V(e).headingTiltToDirectionUp(t,n,r,i)}function B(e,t){if(o(t))return null;const n=e.renderSpatialReference,i=V(e).headingTiltToDirectionUp,a=h();if(!g(t.position,a,n))return null;const s=i(a,t.heading,t.tilt);l(s.direction,s.direction,e.state.camera.distance),f(s.direction,s.direction,a);const c=T(e,a,s.direction,s.up);return c.fov=r(t.fov),c}!function(e){e[e.LOCKED=0]="LOCKED",e[e.ADJUST=1]="ADJUST"}(Y||(Y={}));const Q=h();function $(t,n,r){const a=t.renderSpatialReference,s=re(t,n.eye,n.viewForward,n.up,F);let c=N(t);return y(n.eye,a,Q,c)||(c=M.WGS84,y(n.eye,a,Q,c)),o(r)?new e(new v(Q,c),s.heading,s.tilt,i(n.fov)):(r.position.x=Q[0],r.position.y=Q[1],r.position.z=Q[2],r.position.spatialReference=c,r.heading=s.heading,r.tilt=s.tilt,r.fov=i(n.fov),r)}function _(e,t,n){const i=e.state.camera,o=i.width/2/i.pixelRatio;e.renderCoordsHelper.viewingMode===S.Global&&null!=n&&(t*=Math.cos(r(n))),t/=e.renderCoordsHelper.unitInMeters;return o/(E*L/t)/Math.tan(i.fovX/2)}function ee(e,t,n){const i=e.state.camera,o=t*Math.tan(i.fovX/2),a=i.width/2/i.pixelRatio;let s=E*L/(a/o);return e.renderCoordsHelper.viewingMode===S.Global&&(s/=Math.cos(r(n))),s*=e.renderCoordsHelper.unitInMeters,s}function te(e,t,n,r,i,o){return ne(e,t,_(e,n,t.latitude),r,i,o)}function ne(e,t,n,r,i,a){if(Te(a)){const s=new Se(a.signal);return ce(e,r.heading,r.tilt,t,n,i,s),void s.resolver.promise.then((t=>{const n=Re(e,t,r.fov);if(!o(n))return a.resolver.resolve(n);a.resolver.reject()}),(e=>a.resolver.reject(e)))}const s=ce(e,r.heading,r.tilt,t,n,i);return Re(e,s,r.fov,a)}function re(e,t,n,r,i){return V(e).directionToHeadingTilt(t,n,r,i)}function ie(e,t){return!!(e.basemapTerrain&&e.renderCoordsHelper.fromRenderCoords(t,W,e.spatialReference)&&a(D(e.elevationProvider,W),0)>W.z-I)}async function oe(e,t,n){if(!e.renderCoordsHelper.fromRenderCoords(t,W,e.spatialReference))return!1;const r=await e.elevationProvider.queryElevation(W.x,W.y,W.z,W.spatialReference,"ground",n);return a(r,0)>W.z-I}async function ae(e,t,n){const r=h();if(t)if(t instanceof v){if(g(t,r,e.renderSpatialReference),null==t.z&&null!=e.basemapTerrain){const i=await e.elevationProvider.queryElevation(t.x,t.y,t.z,t.spatialReference,"ground",n);return s(i)&&e.renderCoordsHelper.setAltitude(r,i),r}}else p(r,t);else p(r,e.state.camera.center);return r}function se(e,t){const n=h();if(t&&t instanceof v){if(g(t,n,e.renderSpatialReference),null==t.z&&null!=e.basemapTerrain){const r=D(e.elevationProvider,t);s(r)&&e.renderCoordsHelper.setAltitude(n,r)}}else p(n,t||e.state.camera.center);return n}function ce(e,t,n,r,i,o,a){const s=r&&r instanceof v?r:null;if(Te(a))return ae(e,r,a.signal).then((r=>{le(e,t,n,s,r,i,o,a)}),(e=>a.resolver.reject(e))),null;const c=se(e,r);return le(e,t,n,s,c,i,o,a)}function le(e,t,n,r,i,a,s,c){if(o(r)){const t=e.renderSpatialReference;if(r=R(i,t,N(e)),o(r))return null}a=Math.max(a,e.state.constraints.minimumPoiDistance);const l=pe(e,t,n,i,a,s),f=(0,V(e).eyeForCenterWithHeadingTilt)(i,a,l.heading,l.tilt);if(s===Y.ADJUST&&"global"===e.viewingMode&&n>0){const o=()=>{const o=ge(e,i,a,ve(e,a,n,i));return s=n-o<1?Y.LOCKED:Y.ADJUST,le(e,t,o,r,i,a,s,c)},l=e.map.ground.navigationConstraint;if(!l||"stay-above"===l.type){if(ie(e,f.eye))return o();if(Te(c))return oe(e,f.eye,c.signal).then((e=>e?o():(c.resolver.resolve({eye:f.eye,up:f.up,center:d(i),heading:f.heading,tilt:f.tilt}),null))),null}}const u=!c||Te(c)?{center:h(),eye:h(),up:h(),tilt:0,heading:0}:c;return u.eye=f.eye,u.up=f.up,u.center=d(i),u.heading=f.heading,u.tilt=f.tilt,Te(c)&&c.resolver.resolve(u),u}function fe(e,t,n,r,i,s=null){const c=null!=t.zmax&&null!=t.zmin;let l,f,u;if(e.state.isGlobal){if(!H(t.spatialReference,S.Global))return Te(s)&&s.resolver.reject(),null;const e=new v(t.xmin,t.ymin,t.spatialReference),n=new v(t.xmax,t.ymax,t.spatialReference),r=t.spatialReference.isGeographic?K:X;l=new v({x:r.center(e.x,n.x),y:(n.y+e.y)/2,z:c?(t.zmax+t.zmin)/2:null,spatialReference:t.spatialReference});const i=j(t.spatialReference),o=A(l,e,n);f=o.lon,u=o.lat,r.diff(e.x,n.x)>r.range/2&&(f+=i.halfCircumference),f=Math.min(f,i.halfCircumference),u=Math.min(u,i.halfCircumference)}else{const n=a(e.renderSpatialReference,t.spatialReference);n.equals(t.spatialReference)||(t=x(t,n)),f=t.xmax-t.xmin,u=t.ymax-t.ymin;const r=c?(t.zmax+t.zmin)/2:null;l=new v({x:t.xmin+.5*f,y:t.ymin+.5*u,z:r,spatialReference:n})}const m=c?t.zmax-t.zmin:0,p=e.state.camera,d=1/Math.tan(p.fovX/2),h=1/Math.tan(p.fovY/2),g=1/Math.tan(p.fov/2),y=Math.max(.5*f*d,.5*u*h,.5*m*g)/G;if(Te(s)){const t=new Se(s.signal);return ce(e,n,r,l,y,i,t),void t.resolver.promise.then((t=>{const n=Re(e,t,e.camera.fov);if(!o(n))return s.resolver.resolve(n);s.resolver.reject()}),(e=>s.resolver.reject(e)))}const R=ce(e,n,r,l,y,i);return Re(e,R,e.camera.fov,s)}function ue(e,t,n){const r=e.renderSpatialReference,i=R(n,r,N(e));if(o(i))return null;const a=Math.tan(t.fovX/2),s=Math.tan(t.fovY/2),c=u(t.eye,n),l=2*c*a*G,f=2*c*s*G;return"global"===e.viewingMode?b(e,i,l,f):z(e,i,l,f)}function me(e,t,n){const r=e.pointsOfInterest.centerOnSurfaceFrequent.distance;if(Math.log(n/r)/Math.LN2>O)return!0;const i=e.renderSpatialReference,a=N(e),s=R(t,i,a),c=R(e.pointsOfInterest.centerOnSurfaceFrequent.renderLocation,i,a);if(o(s)||o(c))return!1;const l=Math.tan(.5*e.state.camera.fov)*r;return c.distance(s)/l>k}function pe(e,t,n,r,i,o){let a=0;return o===Y.ADJUST&&me(e,r,i)?(t=0,a=he(e,i,n,r)):a=ye(e,r,i,n),a=e.state.constraints.clampTilt(i,a),{heading:t,tilt:n=ge(e,r,i,a)}}const de=.7;function he(e,t,n,r){const i=e.state.constraints.tilt(t);i.max=Math.min(i.max,.5*Math.PI);const o=i.min*(1-de)+i.max*de,a=ye(e,r,t,n);return Math.min(a,o)}function ve(e,t,n,r){const i=e.state.constraints.tilt(t);let o=ye(e,r,t,n);return o=Math.min(o,.5*Math.PI),i.min*(1-de)+o*de}function ge(e,t,n,r){return V(e).lookAtTiltToEyeTilt(r,t,n)}function ye(e,t,n,r){return V(e).eyeTiltToLookAtTilt(r,t,n)}function Re(t,n,r,i){if(o(n))return null;const a=t.renderSpatialReference,c=R(n.eye,a,N(t));return o(c)?null:s(i)?(i.position=c,i.heading=n.heading,i.tilt=n.tilt,i.fov=r,i):new e(c,n.heading,n.tilt,r)}function xe(e,t){const n=e.basemapTerrain?.tilingScheme;if(n)return n.levelAtScale(t);P.error("#scaleToZoom()","Cannot compute zoom from scale without a tiling scheme")}function je(e,t){const n=e.basemapTerrain?.tilingScheme;if(n)return n.scaleAtLevel(t);P.error("#zoomToScale()","Cannot compute scale from zoom without a tiling scheme")}function Me(e,t){return e.spatialReference?w(t,e.spatialReference):void 0}function we(t,n,r){const i=t.renderSpatialReference;let o,a;n||(n=t.state.camera);const s=M.WGS84;return n instanceof e?(o=n.position.latitude,g(n.position,q,i),g(r,J,i),a=m(q,J)):(y(n.center,i,J,s),o=J[1],a=n.distance),ee(t,a,o)}class Se{constructor(e){this.signal=e,this.resolver=c()}}function Te(e){return e&&"resolver"in e}export{Se as AsyncContext,Y as OrientationMode,we as computeScale,re as directionToHeadingTilt,ee as distanceToScale,B as externalToInternal,ne as fromCenterDistance,te as fromCenterScale,fe as fromExtent,ce as getObserverForPointAtDistance,Z as headingTiltToDirectionUp,$ as internalToExternal,Re as observerToCamera,_ as scaleToDistance,Me as scaleToResolution,xe as scaleToZoom,ue as toExtent,je as zoomToScale};
@@ -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 t}from"../../../../chunks/tslib.es6.js";import{isAbortError as e}from"../../../../core/promiseUtils.js";import{on as r}from"../../../../core/reactiveUtils.js";import{property as o}from"../../../../core/accessorSupport/decorators/property.js";import"../../../../core/arrayUtils.js";import"../../../../core/has.js";import"../../../../core/accessorSupport/ensureType.js";import{subclass as i}from"../../../../core/accessorSupport/decorators/subclass.js";import{i as s,k as n,c as a}from"../../../../chunks/vec3.js";import{c as l}from"../../../../chunks/vec3f64.js";import d from"../../../../geometry/Point.js";import{distanceToScale as c}from"../cameraUtils.js";import{PropertiesPool as p}from"../PropertiesPool.js";import{PointOfInterest as h}from"./PointOfInterest.js";const u=Array;let m=class extends h{constructor(t){super(t),this._dirty=!1,this._propertiesPool=new p({location:d,renderLocation:u},this),this._estimatedSurfaceAltitude=0,this._pendingElevationQueryController=null,this.cameraName="camera",this.renderLocation=l(),this.tmpPoint=new d}initialize(){if(this.scheduler&&this.handles.add(this.scheduler.registerTask(this.task,this)),this.runTask(),this.map){const t=()=>this._setDirty();this.handles.add(r((()=>{var t,e;return null==(t=this.map)||null==(e=t.ground)?void 0:e.layers}),"change",t,{onListenerAdd:t,onListenerRemove:t}))}this._updateRenderLocation()}destroy(){this._cancelPendingRequest(),this._propertiesPool.destroy(),this._propertiesPool=null}get _camera(){return this.state[this.cameraName]}get location(){const t=this._propertiesPool.get("location");return this.renderCoordsHelper.fromRenderCoords(this.renderLocation,t,this.state.spatialReference),t}get scale(){const t=this._camera,e=s(t.eye,this.renderLocation),r={renderCoordsHelper:this.renderCoordsHelper,state:{camera:t}};return c(r,e,0)}get updating(){return this._dirty||null!=this._pendingElevationQueryController}updateRenderLocation(){this._setDirty(),this._updateRenderLocation()}_setDirty(){this._dirty||(this._dirty=!0,this.notifyChange("updating"))}_cancelPendingRequest(){const t=this._pendingElevationQueryController;t&&(this._pendingElevationQueryController=null,t.abort(),this.notifyChange("updating"))}get running(){return!this._pendingElevationQueryController&&this._dirty}runTask(){if(this._cancelPendingRequest(),this._dirty=!1,this.notifyChange("updating"),!this.map||!this.map.ground)return void this._updateSurfaceAltitude(0);this.renderCoordsHelper.fromRenderCoords(this._camera.eye,this.tmpPoint,this.state.spatialReference);let t=new AbortController;this.map.ground.queryElevation(this.tmpPoint,{signal:t.signal,cache:this.cache}).then((t=>this._updateSurfaceAltitude(t.geometry.z))).catch((t=>{e(t)||this._updateSurfaceAltitude(0)})).catch((()=>{})).then((()=>{this._pendingElevationQueryController===t&&(this._pendingElevationQueryController=null,this.notifyChange("updating")),t=null})),this._pendingElevationQueryController=t}_updateSurfaceAltitude(t){this._estimatedSurfaceAltitude!==t&&(this._estimatedSurfaceAltitude=t,this._updateRenderLocation())}_updateRenderLocation(){this.renderCoordsHelper.setAltitude(y,this._estimatedSurfaceAltitude,this._camera.eye),n(this._get("renderLocation"),y)||this._set("renderLocation",a(this._propertiesPool.get("renderLocation"),y))}};t([o({constructOnly:!0})],m.prototype,"scheduler",void 0),t([o({constructOnly:!0})],m.prototype,"cache",void 0),t([o({constructOnly:!0})],m.prototype,"task",void 0),t([o({constructOnly:!0})],m.prototype,"cameraName",void 0),t([o({readOnly:!0})],m.prototype,"location",null),t([o({constructOnly:!0})],m.prototype,"map",void 0),t([o({readOnly:!0})],m.prototype,"renderLocation",void 0),t([o({readOnly:!0})],m.prototype,"scale",null),t([o({readOnly:!0})],m.prototype,"updating",null),m=t([i("esri.views.3d.support.CameraOnSurface")],m);const y=l();export{m as CameraOnSurface};
5
+ import{_ as t}from"../../../../chunks/tslib.es6.js";import{isAbortError as e}from"../../../../core/promiseUtils.js";import{on as r}from"../../../../core/reactiveUtils.js";import{property as o}from"../../../../core/accessorSupport/decorators/property.js";import"../../../../core/arrayUtils.js";import"../../../../core/has.js";import"../../../../core/accessorSupport/ensureType.js";import{subclass as i}from"../../../../core/accessorSupport/decorators/subclass.js";import{i as s,k as n,c as a}from"../../../../chunks/vec3.js";import{c}from"../../../../chunks/vec3f64.js";import d from"../../../../geometry/Point.js";import{distanceToScale as l}from"../cameraUtils.js";import{PropertiesPool as p}from"../PropertiesPool.js";import{PointOfInterest as h}from"./PointOfInterest.js";const u=Array;let m=class extends h{constructor(t){super(t),this._dirty=!1,this._propertiesPool=new p({location:d,renderLocation:u},this),this._estimatedSurfaceAltitude=0,this._pendingElevationQueryController=null,this.cameraName="camera",this.renderLocation=c(),this.tmpPoint=new d}initialize(){if(this.scheduler&&this.handles.add(this.scheduler.registerTask(this.task,this)),this.runTask(),this.map){const t=()=>this._setDirty();this.handles.add(r((()=>this.map?.ground?.layers),"change",t,{onListenerAdd:t,onListenerRemove:t}))}this._updateRenderLocation()}destroy(){this._cancelPendingRequest(),this._propertiesPool.destroy(),this._propertiesPool=null}get _camera(){return this.state[this.cameraName]}get location(){const t=this._propertiesPool.get("location");return this.renderCoordsHelper.fromRenderCoords(this.renderLocation,t,this.state.spatialReference),t}get scale(){const t=this._camera,e=s(t.eye,this.renderLocation),r={renderCoordsHelper:this.renderCoordsHelper,state:{camera:t}};return l(r,e,0)}get updating(){return this._dirty||null!=this._pendingElevationQueryController}updateRenderLocation(){this._setDirty(),this._updateRenderLocation()}_setDirty(){this._dirty||(this._dirty=!0,this.notifyChange("updating"))}_cancelPendingRequest(){const t=this._pendingElevationQueryController;t&&(this._pendingElevationQueryController=null,t.abort(),this.notifyChange("updating"))}get running(){return!this._pendingElevationQueryController&&this._dirty}runTask(){if(this._cancelPendingRequest(),this._dirty=!1,this.notifyChange("updating"),!this.map||!this.map.ground)return void this._updateSurfaceAltitude(0);this.renderCoordsHelper.fromRenderCoords(this._camera.eye,this.tmpPoint,this.state.spatialReference);let t=new AbortController;this.map.ground.queryElevation(this.tmpPoint,{signal:t.signal,cache:this.cache}).then((t=>this._updateSurfaceAltitude(t.geometry.z))).catch((t=>{e(t)||this._updateSurfaceAltitude(0)})).catch((()=>{})).then((()=>{this._pendingElevationQueryController===t&&(this._pendingElevationQueryController=null,this.notifyChange("updating")),t=null})),this._pendingElevationQueryController=t}_updateSurfaceAltitude(t){this._estimatedSurfaceAltitude!==t&&(this._estimatedSurfaceAltitude=t,this._updateRenderLocation())}_updateRenderLocation(){this.renderCoordsHelper.setAltitude(y,this._estimatedSurfaceAltitude,this._camera.eye),n(this._get("renderLocation"),y)||this._set("renderLocation",a(this._propertiesPool.get("renderLocation"),y))}};t([o({constructOnly:!0})],m.prototype,"scheduler",void 0),t([o({constructOnly:!0})],m.prototype,"cache",void 0),t([o({constructOnly:!0})],m.prototype,"task",void 0),t([o({constructOnly:!0})],m.prototype,"cameraName",void 0),t([o({readOnly:!0})],m.prototype,"location",null),t([o({constructOnly:!0})],m.prototype,"map",void 0),t([o({readOnly:!0})],m.prototype,"renderLocation",void 0),t([o({readOnly:!0})],m.prototype,"scale",null),t([o({readOnly:!0})],m.prototype,"updating",null),m=t([i("esri.views.3d.support.CameraOnSurface")],m);const y=c();export{m as CameraOnSurface};
@@ -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{clamp as t}from"../../../../core/mathUtils.js";import{watch as r}from"../../../../core/reactiveUtils.js";import{createRenderScreenPointArray3 as o}from"../../../../core/screenUtils.js";import{property as s}from"../../../../core/accessorSupport/decorators/property.js";import"../../../../core/arrayUtils.js";import"../../../../core/has.js";import"../../../../core/accessorSupport/ensureType.js";import{subclass as i}from"../../../../core/accessorSupport/decorators/subclass.js";import{e as n,y as a,c,h as d,b as p,n as l}from"../../../../chunks/vec3.js";import{c as h}from"../../../../chunks/vec3f64.js";import u from"../../../../geometry/Point.js";import{wrap as m}from"../../../../geometry/support/ray.js";import{PropertiesPool as f}from"../PropertiesPool.js";import{PointOfInterest as y}from"./PointOfInterest.js";import{PaddingSide as g}from"../../webgl-engine/lib/Camera.js";import{TaskPriority as _}from"../../../support/Scheduler.js";const O=Array;let j=class extends y{constructor(e){super(e),this._propertiesPool=new f({location:u,renderLocation:O},this),this._dirty=!0,this.renderLocation=this._propertiesPool.get("renderLocation")}initialize(){this.handles.add([r((()=>this.centerOnSurface.renderLocation),(()=>this.updateRenderLocation())),r((()=>this.state.contentCamera),(()=>this.updateRenderLocation()))]),this.scheduler&&this.handles.add(this.scheduler.registerTask(_.POINT_OF_INTEREST_FREQUENT,this))}destroy(){this._propertiesPool.destroy(),this._propertiesPool=null}get updating(){return this._dirty||this.centerOnSurface.updating}get location(){const e=this._propertiesPool.get("location");return this.renderCoordsHelper.fromRenderCoords(this.renderLocation,e,this.state.spatialReference),e}get running(){return this._dirty}runTask(){const e=this._get("renderLocation"),r=this.centerOnSurface.renderLocation,o=this.renderCoordsHelper,s=this.state.contentCamera;this._dirty=!1,o.worldUpAtPosition(r,P);const i=Math.max(0,(Math.acos(n(P,s.viewForward))-.5*Math.PI)*(s.aboveGround?1:-1));if(Number.isNaN(i)){if(!e||!a(e,r)){const e=this._propertiesPool.get("renderLocation");c(e,r),this._set("renderLocation",e)}return}const p=1-t(i/(.5*Math.PI),0,1),l=p*p*p;this._calculateScreenHorizontalEdgeOnSurface(L);const h=this._propertiesPool.get("renderLocation");d(h,r,L,l),e&&a(e,h)||this._set("renderLocation",h)}_calculateScreenHorizontalEdgeOnSurface(e){const t=this.state.contentCamera,r=t.getRenderCenter(o());if(r[1]=t.aboveGround?t.padding[g.BOTTOM]:t.fullHeight-t.padding[g.TOP],this.estimateSurfaceIntersectionAtRenderPoint(r,e))return e;const s=this.renderCoordsHelper.getAltitude(this.centerOnSurface.renderLocation);if(t.unprojectFromRenderScreen(r,S)){p(S,S,t.eye);const r=l(S,S);if(this.renderCoordsHelper.intersectManifold(m(t.eye,r),s,e))return e}return this.renderCoordsHelper.setAltitude(e,s,t.eye)}updateRenderLocation(){this._dirty=!0}};e([s()],j.prototype,"_dirty",void 0),e([s({constructOnly:!0})],j.prototype,"scheduler",void 0),e([s({constructOnly:!0})],j.prototype,"centerOnSurface",void 0),e([s({constructOnly:!0})],j.prototype,"estimateSurfaceIntersectionAtRenderPoint",void 0),e([s({readOnly:!0})],j.prototype,"updating",null),e([s({readOnly:!0})],j.prototype,"location",null),e([s({readOnly:!0})],j.prototype,"renderLocation",void 0),j=e([i("esri.views.3d.support.CenterOnSurface")],j);const P=h(),S=h(),L=h();export{j as Focus};
5
+ import{_ as e}from"../../../../chunks/tslib.es6.js";import{clamp as t}from"../../../../core/mathUtils.js";import{watch as r}from"../../../../core/reactiveUtils.js";import{createRenderScreenPointArray3 as o}from"../../../../core/screenUtils.js";import{property as s}from"../../../../core/accessorSupport/decorators/property.js";import"../../../../core/arrayUtils.js";import"../../../../core/has.js";import"../../../../core/accessorSupport/ensureType.js";import{subclass as i}from"../../../../core/accessorSupport/decorators/subclass.js";import{e as n,z as a,c,h as d,b as p,n as l}from"../../../../chunks/vec3.js";import{c as h}from"../../../../chunks/vec3f64.js";import u from"../../../../geometry/Point.js";import{wrap as m}from"../../../../geometry/support/ray.js";import{PropertiesPool as f}from"../PropertiesPool.js";import{PointOfInterest as y}from"./PointOfInterest.js";import{PaddingSide as g}from"../../webgl-engine/lib/Camera.js";import{TaskPriority as _}from"../../../support/Scheduler.js";const O=Array;let j=class extends y{constructor(e){super(e),this._propertiesPool=new f({location:u,renderLocation:O},this),this._dirty=!0,this.renderLocation=this._propertiesPool.get("renderLocation")}initialize(){this.handles.add([r((()=>this.centerOnSurface.renderLocation),(()=>this.updateRenderLocation())),r((()=>this.state.contentCamera),(()=>this.updateRenderLocation()))]),this.scheduler&&this.handles.add(this.scheduler.registerTask(_.POINT_OF_INTEREST_FREQUENT,this))}destroy(){this._propertiesPool.destroy(),this._propertiesPool=null}get updating(){return this._dirty||this.centerOnSurface.updating}get location(){const e=this._propertiesPool.get("location");return this.renderCoordsHelper.fromRenderCoords(this.renderLocation,e,this.state.spatialReference),e}get running(){return this._dirty}runTask(){const e=this._get("renderLocation"),r=this.centerOnSurface.renderLocation,o=this.renderCoordsHelper,s=this.state.contentCamera;this._dirty=!1,o.worldUpAtPosition(r,P);const i=Math.max(0,(Math.acos(n(P,s.viewForward))-.5*Math.PI)*(s.aboveGround?1:-1));if(Number.isNaN(i)){if(!e||!a(e,r)){const e=this._propertiesPool.get("renderLocation");c(e,r),this._set("renderLocation",e)}return}const p=1-t(i/(.5*Math.PI),0,1),l=p*p*p;this._calculateScreenHorizontalEdgeOnSurface(L);const h=this._propertiesPool.get("renderLocation");d(h,r,L,l),e&&a(e,h)||this._set("renderLocation",h)}_calculateScreenHorizontalEdgeOnSurface(e){const t=this.state.contentCamera,r=t.getRenderCenter(o());if(r[1]=t.aboveGround?t.padding[g.BOTTOM]:t.fullHeight-t.padding[g.TOP],this.estimateSurfaceIntersectionAtRenderPoint(r,e))return e;const s=this.renderCoordsHelper.getAltitude(this.centerOnSurface.renderLocation);if(t.unprojectFromRenderScreen(r,S)){p(S,S,t.eye);const r=l(S,S);if(this.renderCoordsHelper.intersectManifold(m(t.eye,r),s,e))return e}return this.renderCoordsHelper.setAltitude(e,s,t.eye)}updateRenderLocation(){this._dirty=!0}};e([s()],j.prototype,"_dirty",void 0),e([s({constructOnly:!0})],j.prototype,"scheduler",void 0),e([s({constructOnly:!0})],j.prototype,"centerOnSurface",void 0),e([s({constructOnly:!0})],j.prototype,"estimateSurfaceIntersectionAtRenderPoint",void 0),e([s({readOnly:!0})],j.prototype,"updating",null),e([s({readOnly:!0})],j.prototype,"location",null),e([s({readOnly:!0})],j.prototype,"renderLocation",void 0),j=e([i("esri.views.3d.support.CenterOnSurface")],j);const P=h(),S=h(),L=h();export{j as Focus};