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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (998) hide show
  1. package/Basemap.js +1 -1
  2. package/Color.js +1 -1
  3. package/Ground.js +1 -1
  4. package/Map.js +1 -1
  5. package/PopupTemplate.js +1 -1
  6. package/WebMap.js +1 -1
  7. package/WebScene.js +1 -1
  8. package/analysis/LinearDimension.js +1 -1
  9. package/analysis/SliceAnalysis.js +1 -1
  10. package/applications/SceneViewer/sceneViewerUtils.js +1 -1
  11. package/arcade/Dictionary.js +1 -1
  12. package/arcade/Feature.js +1 -1
  13. package/arcade/featureset/sources/FeatureLayerDynamic.js +1 -1
  14. package/arcade/featureset/support/FeatureSet.js +1 -1
  15. package/assets/esri/core/workers/RemoteClient.js +1 -1
  16. package/assets/esri/core/workers/chunks/{e06461703e6f1acfcfdc.js → 076d1b1101b59af0d389.js} +1 -1
  17. package/assets/esri/core/workers/chunks/0b72d123386dc4ec7538.js +1 -0
  18. package/assets/esri/core/workers/chunks/0d53e575f11198867619.js +1 -0
  19. package/assets/esri/core/workers/chunks/0e6e3cf07c84d9f040c0.js +1 -0
  20. package/assets/esri/core/workers/chunks/105728404ddd9e73d5c9.js +1 -0
  21. package/assets/esri/core/workers/chunks/11106873b009b98e4286.js +1 -0
  22. package/assets/esri/core/workers/chunks/11a7b156591d1feca952.js +1 -0
  23. package/assets/esri/core/workers/chunks/{94325f920a125610e1f5.js → 12feeace7215248be23f.js} +1 -1
  24. package/assets/esri/core/workers/chunks/17be5bd0d1c233d73d7a.js +1 -0
  25. package/assets/esri/core/workers/chunks/1b53bd65407ba5c479d7.js +1 -0
  26. package/assets/esri/core/workers/chunks/1d91aa745b49b2ab36cf.js +1 -0
  27. package/assets/esri/core/workers/chunks/{fd35b69872ac9393924f.js → 1db8bfb1731be3ae320c.js} +1 -1
  28. package/assets/esri/core/workers/chunks/{3433361f09c84b31aec4.js → 2290bd6dc2e6bb136e14.js} +1 -1
  29. package/assets/esri/core/workers/chunks/24217129d492e170f0f0.js +1 -0
  30. package/assets/esri/core/workers/chunks/24e194107e0e5090125b.js +1 -0
  31. package/assets/esri/core/workers/chunks/2a1301a1d0cd4c0c17cf.js +1 -0
  32. package/assets/esri/core/workers/chunks/{178831b0d0bdabcc45e7.js → 2a676221ca1fc8e0cf34.js} +1 -1
  33. package/assets/esri/core/workers/chunks/2aede0d1dcac8592436b.js +1 -0
  34. package/assets/esri/core/workers/chunks/2b93ad626f5e75b97692.js +1 -0
  35. package/assets/esri/core/workers/chunks/2d03210fc6b5884c6bf9.js +1 -0
  36. package/assets/esri/core/workers/chunks/{b10c333abe4f4e52841c.js → 2dfd3def105005fc72c7.js} +1 -1
  37. package/assets/esri/core/workers/chunks/2f8ff35b8ab15c0e39c2.js +1 -0
  38. package/assets/esri/core/workers/chunks/36272141b3c33cb19026.js +1 -0
  39. package/assets/esri/core/workers/chunks/36c8e8de9c3f67d32572.js +1 -0
  40. package/assets/esri/core/workers/chunks/3ab8c6ae2f2713f637b0.js +1 -0
  41. package/assets/esri/core/workers/chunks/3c058381adcfdc407aa1.js +1 -0
  42. package/assets/esri/core/workers/chunks/3f39df1dfc0a685e5f9d.js +1 -0
  43. package/assets/esri/core/workers/chunks/3fd52a03b3126556aee6.js +1 -0
  44. package/assets/esri/core/workers/chunks/4082d8573f41f952c72e.js +1 -0
  45. package/assets/esri/core/workers/chunks/40b11eea270f6688ff9c.js +1 -0
  46. package/assets/esri/core/workers/chunks/4281b4b27f4767cdd3ae.js +1 -0
  47. package/assets/esri/core/workers/chunks/43fcaaeb6fd179e9199b.js +1 -0
  48. package/assets/esri/core/workers/chunks/4c65b27d80b23c0c3101.js +1 -0
  49. package/assets/esri/core/workers/chunks/{a6406a248b7b2ed65f35.js → 4ec7d59b0c814dbaa7a4.js} +1 -1
  50. package/assets/esri/core/workers/chunks/4f378ad6f4299183df85.js +1 -0
  51. package/assets/esri/core/workers/chunks/505b0aa5ee3e5a26c351.js +1 -0
  52. package/assets/esri/core/workers/chunks/509a9cdd0228a730bcea.js +1 -0
  53. package/assets/esri/core/workers/chunks/52255ad573cec0a34720.js +1 -0
  54. package/assets/esri/core/workers/chunks/52d4fdc451a58a858af1.js +1 -0
  55. package/assets/esri/core/workers/chunks/5405f478af3563580926.js +1 -0
  56. package/assets/esri/core/workers/chunks/54577c2522ca3ff08f7e.js +1 -0
  57. package/assets/esri/core/workers/chunks/54d67e450da6ce2641b4.js +1 -0
  58. package/assets/esri/core/workers/chunks/56d3cb0ae0069a8eadde.js +1 -0
  59. package/assets/esri/core/workers/chunks/5b4efe0014162f777534.js +1 -0
  60. package/assets/esri/core/workers/chunks/5baa162351551817838b.js +1 -0
  61. package/assets/esri/core/workers/chunks/5cf2064bfd9d0847d9ec.js +1 -0
  62. package/assets/esri/core/workers/chunks/620dc3c13c345d5aa9f6.js +1 -0
  63. package/assets/esri/core/workers/chunks/7c290763920f52a1f504.js +1 -0
  64. package/assets/esri/core/workers/chunks/7dc266be958e34e81007.js +972 -0
  65. package/assets/esri/core/workers/chunks/7dfd70f4fa1096e56641.js +1 -0
  66. package/assets/esri/core/workers/chunks/7f097de06972a68cd08a.js +1 -0
  67. package/assets/esri/core/workers/chunks/8033531b0cc706b40d86.js +1 -0
  68. package/assets/esri/core/workers/chunks/814234844a056d9f1ddc.js +1 -0
  69. package/assets/esri/core/workers/chunks/83700cdd60ceecc639cd.js +1 -0
  70. package/assets/esri/core/workers/chunks/857df84cea67079a91e5.js +1 -0
  71. package/assets/esri/core/workers/chunks/8793070d288878d6f49b.js +1 -0
  72. package/assets/esri/core/workers/chunks/8865c5cc28df60364e60.js +1 -0
  73. package/assets/esri/core/workers/chunks/{e9f786d4ba3143ed9644.js → 8cc85d1d46dda16ad041.js} +1 -1
  74. package/assets/esri/core/workers/chunks/958a7ef2cbf048819988.js +1 -0
  75. package/assets/esri/core/workers/chunks/967af0aa4dc4da032fdc.js +1 -0
  76. package/assets/esri/core/workers/chunks/9722880bd7f455b2bd07.js +1 -0
  77. package/assets/esri/core/workers/chunks/9d738aab0d907cd09a9d.js +1 -0
  78. package/assets/esri/core/workers/chunks/{86b31ae136f931d7884a.js → 9e6df034d7949880471f.js} +1 -1
  79. package/assets/esri/core/workers/chunks/a056a79f31cddb066f15.js +1 -0
  80. package/assets/esri/core/workers/chunks/a2c9fd78d42df7314a3e.js +1 -0
  81. package/assets/esri/core/workers/chunks/a4dcb50f6622cb1444c8.js +1 -0
  82. package/assets/esri/core/workers/chunks/a6bfbe449b8c2fa5334c.js +1 -0
  83. package/assets/esri/core/workers/chunks/a8ed1a938dc164b401d9.js +1 -0
  84. package/assets/esri/core/workers/chunks/a9a73bc4875a5aeaf1b9.js +1 -0
  85. package/assets/esri/core/workers/chunks/ac0df52b2f2a4874e4ea.js +1 -0
  86. package/assets/esri/core/workers/chunks/{431efa172901ab8e4d53.js → acfa8eb19225f7862b1d.js} +1 -1
  87. package/assets/esri/core/workers/chunks/adae54f116f311d72d97.js +1 -0
  88. package/assets/esri/core/workers/chunks/{718073d13d3de67b629b.js → aeeb364b7c1876f6e7db.js} +1 -1
  89. package/assets/esri/core/workers/chunks/afddfe620e6539991e6b.js +1 -0
  90. package/assets/esri/core/workers/chunks/b02a83845d3da4caee9d.js +1 -0
  91. package/assets/esri/core/workers/chunks/{0d21506b7d4f9afdbb09.js → b3847a6bbd45d813f03c.js} +1 -1
  92. package/assets/esri/core/workers/chunks/b4c23630d6c85f7b59c0.js +1 -0
  93. package/assets/esri/core/workers/chunks/{c318b229911b60fc3cbf.js → b50ae3dc7e43ff452568.js} +1 -1
  94. package/assets/esri/core/workers/chunks/b5ede4df4620097c6528.js +1 -0
  95. package/assets/esri/core/workers/chunks/b7d7ad127f8939cbdec2.js +1 -0
  96. package/assets/esri/core/workers/chunks/bf1d1c02d12b526b0750.js +1 -0
  97. package/assets/esri/core/workers/chunks/c0e6dbecdbd30066a82c.js +1 -0
  98. package/assets/esri/core/workers/chunks/c2a36243eb105d570bff.js +1 -0
  99. package/assets/esri/core/workers/chunks/c8a3a28809542396c6fd.js +1 -0
  100. package/assets/esri/core/workers/chunks/cf1047ad176a25dcd2d6.js +1 -0
  101. package/assets/esri/core/workers/chunks/d03de043d43691665a93.js +1 -0
  102. package/assets/esri/core/workers/chunks/d3fecbaca51ef8844026.js +1 -0
  103. package/assets/esri/core/workers/chunks/dafe120243db6648a4ab.js +1 -0
  104. package/assets/esri/core/workers/chunks/dccc33d87cb7d902f5c7.js +1 -0
  105. package/assets/esri/core/workers/chunks/dd43f5647900ee27af22.js +1 -0
  106. package/assets/esri/core/workers/chunks/{52489e2f7748dc610263.js → dfdd853dd6c023089963.js} +1 -1
  107. package/assets/esri/core/workers/chunks/e6f76f62cf58fb1e67c6.js +1 -0
  108. package/assets/esri/core/workers/chunks/ea73a1d9cad5e1a5d861.js +1 -0
  109. package/assets/esri/core/workers/chunks/{4130ea1f5a9f197168d7.js → ed4519ac9533a4d340f1.js} +1 -1
  110. package/assets/esri/core/workers/chunks/f0e462f5a16852f33225.js +1 -0
  111. package/assets/esri/core/workers/chunks/f13c29bcc71aed8f3a2e.js +1 -0
  112. package/assets/esri/core/workers/chunks/f356e505c36397fda3cf.js +1 -0
  113. package/assets/esri/core/workers/chunks/f55cbaf5a1d6ee6ac171.js +1 -0
  114. package/assets/esri/core/workers/chunks/f6e613ae6812a347a26c.js +1 -0
  115. package/assets/esri/core/workers/chunks/fb3279408bd5323ec612.js +1 -0
  116. package/assets/esri/core/workers/chunks/fdf80a371b7b2a45f1ff.js +1 -0
  117. package/assets/esri/libs/vxl/vxlLayer.wasm +0 -0
  118. package/chunks/ChapmanAtmosphere.glsl.js +15 -15
  119. package/chunks/CheckerBoard.glsl.js +3 -3
  120. package/chunks/Clouds.glsl.js +2 -3
  121. package/chunks/CloudsComposition.glsl.js +3 -3
  122. package/chunks/ColorMaterial.glsl.js +11 -11
  123. package/chunks/DefaultMaterial.glsl.js +26 -26
  124. package/chunks/EdgeShader.glsl.js +3 -3
  125. package/chunks/Fog.glsl.js +6 -6
  126. package/chunks/HUDMaterial.glsl.js +48 -48
  127. package/chunks/HeatmapDensity.glsl.js +7 -7
  128. package/chunks/HighlightApply.glsl.js +3 -3
  129. package/chunks/LineCallout.glsl.js +3 -3
  130. package/chunks/LineMarker.glsl.js +22 -22
  131. package/chunks/MeasurementArrow.glsl.js +4 -4
  132. package/chunks/NativeLine.glsl.js +11 -11
  133. package/chunks/Path.glsl.js +16 -16
  134. package/chunks/Pattern.glsl.js +30 -30
  135. package/chunks/RasterColorizer.glsl.js +4 -4
  136. package/chunks/RealisticTree.glsl.js +20 -20
  137. package/chunks/RibbonLine.glsl.js +39 -39
  138. package/chunks/ShadedColorMaterial.glsl.js +10 -10
  139. package/chunks/ShadowCastVisualize.glsl.js +5 -5
  140. package/chunks/ShadowHighlight.glsl.js +2 -2
  141. package/chunks/SlicePlaneMaterial.glsl.js +3 -3
  142. package/chunks/Stars.glsl.js +2 -2
  143. package/chunks/WaterSurface.glsl.js +20 -20
  144. package/chunks/languageUtils.js +1 -1
  145. package/chunks/persistableUrlUtils.js +1 -1
  146. package/chunks/vec22.js +1 -1
  147. package/chunks/vec2f64.js +1 -1
  148. package/chunks/vec3.js +1 -1
  149. package/chunks/vec33.js +1 -1
  150. package/chunks/vec43.js +1 -1
  151. package/colorUtils.js +1 -1
  152. package/config.js +1 -1
  153. package/core/Accessor.js +1 -1
  154. package/core/AsyncUpdate.js +1 -1
  155. package/core/Clonable.js +1 -1
  156. package/core/Collection.js +1 -1
  157. package/core/HandleOwner.js +1 -1
  158. package/core/Loadable.js +1 -1
  159. package/core/NestedMap.js +1 -1
  160. package/core/accessorSupport/DefaultsStore.js +1 -1
  161. package/core/accessorSupport/Properties.js +1 -1
  162. package/core/accessorSupport/decorators/enumeration.js +1 -1
  163. package/core/accessorSupport/extensions/serializableProperty/reader.js +1 -1
  164. package/core/accessorSupport/extensions/serializableProperty/writePolicyUtils.js +1 -1
  165. package/core/accessorSupport/extensions/serializableProperty/writer.js +1 -1
  166. package/core/accessorSupport/read.js +1 -1
  167. package/core/accessorSupport/tracking.js +1 -1
  168. package/core/accessorSupport/write.js +1 -1
  169. package/core/devEnvironmentUtils.js +1 -1
  170. package/core/has.js +1 -1
  171. package/core/libs/gl-matrix-2/factories/vec2f64.js +1 -1
  172. package/core/libs/gl-matrix-2/math/vec3.js +1 -1
  173. package/core/libs/rbush/PooledRBush.js +1 -1
  174. package/core/promiseUtils.js +1 -1
  175. package/core/reactiveUtils.js +1 -1
  176. package/core/scheduling.js +1 -1
  177. package/core/throttle.js +1 -1
  178. package/core/urlUtils.js +1 -1
  179. package/core/watchUtils.js +1 -1
  180. package/core/workers/RemoteClient.js +1 -1
  181. package/core/workers/WorkerOwner.js +1 -1
  182. package/core/workers/loaderConfig.js +1 -1
  183. package/core/workers/workerFactory.js +1 -1
  184. package/geometry/Mesh.js +1 -1
  185. package/geometry/geometryEngine.js +1 -1
  186. package/geometry/geometryEngineAsync.js +1 -1
  187. package/geometry/projection.js +1 -1
  188. package/geometry/support/axisAngleDegrees.js +1 -1
  189. package/geometry/support/meshUtils/centerAt.js +1 -1
  190. package/geometry/support/meshUtils/deduplicate.js +1 -1
  191. package/geometry/support/meshUtils/elevation.js +1 -1
  192. package/geometry/support/meshUtils/geographicUtils.js +1 -1
  193. package/geometry/support/meshUtils/georeference.js +1 -1
  194. package/geometry/support/meshUtils/loadExternal.js +1 -1
  195. package/geometry/support/meshUtils/loadGLTFMesh.js +1 -1
  196. package/geometry/support/meshUtils/offset.js +1 -1
  197. package/geometry/support/meshUtils/rotate.js +1 -1
  198. package/geometry/support/meshUtils/scale.js +1 -1
  199. package/geometry/support/normalizeUtils.js +1 -1
  200. package/geometry/support/normalizeUtilsCommon.js +1 -1
  201. package/geometry/support/offset.js +1 -1
  202. package/geometry/support/rotate.js +1 -1
  203. package/identity/IdentityManagerBase.js +1 -1
  204. package/identity/IdentityModal.js +1 -1
  205. package/interfaces.d.ts +109 -2
  206. package/intl/locale.js +1 -1
  207. package/intl/messages.js +1 -1
  208. package/kernel.js +1 -1
  209. package/layers/AnalysisLayer.js +1 -1
  210. package/layers/CSVLayer.js +1 -1
  211. package/layers/FeatureLayer.js +1 -1
  212. package/layers/GeoJSONLayer.js +1 -1
  213. package/layers/GeoRSSLayer.js +1 -1
  214. package/layers/ImageryLayer.js +1 -1
  215. package/layers/ImageryTileLayer.js +1 -1
  216. package/layers/Layer.js +1 -1
  217. package/layers/MapImageLayer.js +1 -1
  218. package/layers/MapNotesLayer.js +1 -1
  219. package/layers/OGCFeatureLayer.js +1 -1
  220. package/layers/RouteLayer.js +1 -1
  221. package/layers/SceneLayer.js +1 -1
  222. package/layers/StreamLayer.js +1 -1
  223. package/layers/SubtypeGroupLayer.js +1 -1
  224. package/layers/TileLayer.js +1 -1
  225. package/layers/VectorTileLayer.js +1 -1
  226. package/layers/VoxelLayer.js +1 -1
  227. package/layers/VoxelWasmPerScene.js +1 -1
  228. package/layers/WCSLayer.js +1 -1
  229. package/layers/WFSLayer.js +1 -1
  230. package/layers/WMSLayer.js +1 -1
  231. package/layers/WMTSLayer.js +1 -1
  232. package/layers/buildingSublayers/BuildingComponentSublayer.js +1 -1
  233. package/layers/effects/EffectView.js +1 -1
  234. package/layers/effects/FeatureEffectView.js +1 -1
  235. package/layers/effects/jsonUtils.js +1 -1
  236. package/layers/graphics/OptimizedGeometry.js +1 -1
  237. package/layers/graphics/centroid.js +1 -1
  238. package/layers/graphics/controllers/FeatureTileController3D.js +1 -1
  239. package/layers/graphics/controllers/I3SOnDemandController.js +1 -1
  240. package/layers/graphics/data/QueryEngineResult.js +1 -1
  241. package/layers/graphics/data/StreamFeatureManager.js +1 -1
  242. package/layers/graphics/editingSupport.js +1 -1
  243. package/layers/graphics/objectIdUtils.js +1 -1
  244. package/layers/graphics/sources/CSVSource.js +1 -1
  245. package/layers/graphics/sources/FeatureLayerSource.js +1 -1
  246. package/layers/graphics/sources/GeoJSONSource.js +1 -1
  247. package/layers/graphics/sources/MemorySource.js +1 -1
  248. package/layers/graphics/sources/OGCFeatureSource.js +1 -1
  249. package/layers/graphics/sources/WFSSource.js +1 -1
  250. package/layers/graphics/sources/WFSSourceWorker.js +1 -1
  251. package/layers/graphics/sources/connections/WebSocketConnection.js +1 -1
  252. package/layers/graphics/sources/geojson/GeoJSONSourceWorker.js +1 -1
  253. package/layers/graphics/sources/geojson/geojson.js +1 -1
  254. package/layers/graphics/sources/support/CSVSourceWorker.js +1 -1
  255. package/layers/graphics/sources/support/QueryTask.js +1 -1
  256. package/layers/mixins/APIKeyMixin.js +1 -1
  257. package/layers/mixins/ArcGISImageService.js +1 -1
  258. package/layers/mixins/ArcGISMapService.js +1 -1
  259. package/layers/mixins/ImageryTileMixin.js +1 -1
  260. package/layers/mixins/OperationalLayer.js +1 -1
  261. package/layers/mixins/PortalLayer.js +1 -1
  262. package/layers/mixins/SceneService.js +1 -1
  263. package/layers/mixins/refresh.js +1 -1
  264. package/layers/ogc/dateUtils.js +1 -1
  265. package/layers/ogc/ogcFeatureUtils.js +1 -1
  266. package/layers/ogc/wfsUtils.js +1 -1
  267. package/layers/save/featureLayerUtils.js +1 -1
  268. package/layers/support/ExportImageParameters.js +1 -1
  269. package/layers/support/ExportImageServiceParameters.js +1 -1
  270. package/layers/support/ExportWMSImageParameters.js +1 -1
  271. package/layers/support/FeatureEffect.js +1 -1
  272. package/layers/support/FeatureType.js +1 -1
  273. package/layers/support/FetchAssociatedFeatureLayer.js +1 -1
  274. package/layers/support/LabelClass.js +1 -1
  275. package/layers/support/LayerContingentValuesCache.js +1 -1
  276. package/layers/support/RasterFunction.js +1 -1
  277. package/layers/support/RasterInfo.js +1 -1
  278. package/layers/support/RasterJobHandler.js +1 -1
  279. package/layers/support/RasterWorker.js +1 -1
  280. package/layers/support/Sublayer.js +1 -1
  281. package/layers/support/SubtypeSublayer.js +1 -1
  282. package/layers/support/TilemapCache.js +1 -1
  283. package/layers/support/TimeReference.d.ts +4 -0
  284. package/layers/support/WMTSSublayer.js +1 -1
  285. package/layers/support/arcgisLayers.js +1 -1
  286. package/layers/support/commonProperties.js +1 -1
  287. package/layers/support/editableLayers.js +1 -1
  288. package/layers/support/fieldUtils.js +1 -1
  289. package/layers/support/floorFilterUtils.js +1 -1
  290. package/layers/support/imageryRendererUtils.js +1 -1
  291. package/layers/support/layerUtils.js +1 -1
  292. package/layers/support/layersCreator.js +1 -1
  293. package/layers/support/rasterDatasets/BaseRaster.js +1 -1
  294. package/layers/support/rasterDatasets/CloudRaster.js +1 -1
  295. package/layers/support/rasterDatasets/ImageAuxRaster.js +1 -1
  296. package/layers/support/rasterDatasets/ImageServerRaster.js +1 -1
  297. package/layers/support/rasterDatasets/InMemoryRaster.js +1 -1
  298. package/layers/support/rasterDatasets/MRFRaster.js +1 -1
  299. package/layers/support/rasterDatasets/TIFFRaster.js +1 -1
  300. package/layers/support/rasterDatasets/WCSRaster.js +1 -1
  301. package/layers/support/rasterDatasets/multipartParser.js +1 -1
  302. package/layers/support/rasterDatasets/pamParser.js +1 -1
  303. package/layers/support/rasterDatasets/wcsCapabilitiesParser.js +1 -1
  304. package/layers/support/rasterDatasets/wcsCoverageParser.js +1 -1
  305. package/layers/support/rasterDatasets/xmlUtilities.js +1 -1
  306. package/layers/support/rasterFormats/Lerc.js +1 -1
  307. package/layers/support/rasterFormats/RasterCodec.js +1 -1
  308. package/layers/support/rasterFormats/TiffDecoder.js +1 -1
  309. package/layers/support/rasterFunctions/pixelUtils.js +1 -1
  310. package/layers/support/rasterFunctions/rasterProjectionHelper.js +1 -1
  311. package/layers/support/rasterFunctions/stretchUtils.js +1 -1
  312. package/layers/support/rasterFunctions/vectorFieldUtils.js +1 -1
  313. package/layers/support/rasterTransforms/PolynomialTransform.js +1 -1
  314. package/layers/support/rasterTransforms/utils.js +1 -1
  315. package/layers/support/source/DataLayerSource.js +1 -1
  316. package/layers/support/source/QueryTableDataSource.js +1 -1
  317. package/layers/support/vectorTileLayerLoader.js +1 -1
  318. package/layers/support/wmsUtils.js +1 -1
  319. package/layers/support/wmtsUtils.js +1 -1
  320. package/libs/maquette-advanced-projector/projector.js +1 -1
  321. package/networks/Network.js +1 -1
  322. package/networks/UtilityNetwork.js +1 -1
  323. package/networks/support/utils.js +1 -1
  324. package/package.json +1 -1
  325. package/popup/content/ExpressionContent.js +1 -1
  326. package/portal/Portal.js +1 -1
  327. package/portal/PortalItem.js +1 -1
  328. package/portal/support/geometryServiceUtils.js +1 -1
  329. package/portal/support/layersLoader.js +1 -1
  330. package/portal/support/portalItemUtils.js +1 -1
  331. package/portal/support/portalLayers.js +1 -1
  332. package/renderers/DictionaryRenderer.js +1 -1
  333. package/renderers/FlowRenderer.js +1 -1
  334. package/renderers/RasterColormapRenderer.js +1 -1
  335. package/renderers/RasterStretchRenderer.js +1 -1
  336. package/renderers/VectorFieldRenderer.js +1 -1
  337. package/renderers/support/RasterSymbolizer.js +1 -1
  338. package/renderers/support/UniqueValueInfo.js +1 -1
  339. package/renderers/support/colorRampUtils.js +1 -1
  340. package/renderers/support/heatmapUtils.js +1 -1
  341. package/renderers/support/rasterRendererHelper.js +1 -1
  342. package/request.js +1 -1
  343. package/rest/identify.js +1 -1
  344. package/rest/imageService.js +1 -1
  345. package/rest/networkService.js +1 -1
  346. package/rest/networks/support/SynthesizeAssociationGeometriesParameters.js +1 -1
  347. package/rest/operations/identify.js +1 -1
  348. package/rest/print.js +1 -1
  349. package/rest/query/executeQuery.js +1 -1
  350. package/rest/query/operations/query.js +1 -1
  351. package/rest/query/operations/queryRelatedRecords.js +1 -1
  352. package/rest/query/operations/queryTopFeatures.js +1 -1
  353. package/rest/route.js +1 -1
  354. package/rest/support/DirectionLine.js +1 -1
  355. package/rest/support/DirectionPoint.js +1 -1
  356. package/rest/support/DirectionsFeatureSet.js +1 -1
  357. package/rest/support/FeatureSet.js +1 -1
  358. package/rest/support/ImageSampleParameters.js +1 -1
  359. package/rest/support/PointBarrier.js +1 -1
  360. package/rest/support/PolygonBarrier.js +1 -1
  361. package/rest/support/PolylineBarrier.js +1 -1
  362. package/rest/support/RouteInfo.js +1 -1
  363. package/rest/support/Stop.js +1 -1
  364. package/rest/support/meshFeatureSet.js +1 -1
  365. package/rest/support/printTaskUtils.js +1 -1
  366. package/smartMapping/labels/clusters.js +1 -1
  367. package/smartMapping/raster/renderers/rgb.js +1 -1
  368. package/smartMapping/raster/renderers/uniqueValue.js +1 -1
  369. package/smartMapping/raster/support/adapters/ImageryLayerAdapter.js +1 -1
  370. package/smartMapping/raster/support/adapters/RasterLayerAdapter.js +1 -1
  371. package/smartMapping/raster/support/utils.js +1 -1
  372. package/smartMapping/renderers/color.js +1 -1
  373. package/smartMapping/renderers/size.js +1 -1
  374. package/smartMapping/renderers/support/utils.js +1 -1
  375. package/smartMapping/renderers/univariateColorSize.js +1 -1
  376. package/smartMapping/statistics/support/WorkerClient.js +1 -1
  377. package/smartMapping/support/adapters/CSVLayerAdapter.js +1 -1
  378. package/smartMapping/support/adapters/FeatureLayerAdapter.js +1 -1
  379. package/smartMapping/support/adapters/OGCFeatureLayerAdapter.js +1 -1
  380. package/smartMapping/support/adapters/SceneLayerAdapter.js +1 -1
  381. package/smartMapping/support/adapters/support/utils.js +1 -1
  382. package/statistics/utils.js +1 -1
  383. package/support/LayersMixin.js +1 -1
  384. package/support/TablesMixin.js +1 -1
  385. package/support/arcadeUtils.js +1 -1
  386. package/support/basemapUtils.js +1 -1
  387. package/support/popupUtils.js +1 -1
  388. package/support/revision.js +1 -1
  389. package/support/timeUtils.js +1 -1
  390. package/symbols/FillSymbol3DLayer.js +1 -1
  391. package/symbols/LineSymbol3DLayer.js +1 -1
  392. package/symbols/LineSymbolMarker.js +1 -1
  393. package/symbols/PictureFillSymbol.js +1 -1
  394. package/symbols/PointSymbol3D.js +1 -1
  395. package/symbols/SimpleLineSymbol.js +1 -1
  396. package/symbols/SimpleMarkerSymbol.js +1 -1
  397. package/symbols/cim/CIMResourceManager.js +1 -1
  398. package/symbols/cim/CIMSymbolDrawHelper.js +1 -1
  399. package/symbols/cim/CIMSymbolHelper.js +1 -1
  400. package/symbols/cim/ExpandedCIM.js +1 -1
  401. package/symbols/cim/SDFHelper.js +1 -1
  402. package/symbols/cim/cimAnalyzer.js +1 -1
  403. package/symbols/cim/effects/EffectControlMeasureLine.js +1 -1
  404. package/symbols/cim/effects/EffectDashes.js +1 -1
  405. package/symbols/cim/effects/EffectOffset.js +1 -1
  406. package/symbols/cim/placements/PlacementAlongLineSameSize.js +1 -1
  407. package/symbols/cim/utils.js +1 -1
  408. package/symbols/support/cimSymbolUtils.js +1 -1
  409. package/symbols/support/jsonUtils.js +1 -1
  410. package/symbols/support/previewCIMSymbol.js +1 -1
  411. package/symbols/support/previewSymbol2D.js +1 -1
  412. package/symbols/support/previewSymbol3D.js +1 -1
  413. package/symbols/support/previewWebStyleSymbol.js +1 -1
  414. package/symbols/support/svgUtils.js +1 -1
  415. package/symbols/support/symbolConversion.js +1 -1
  416. package/symbols/support/symbolUtils.js +1 -1
  417. package/tasks/GenerateRendererTask.js +1 -1
  418. package/views/2d/MapViewConstraints.js +1 -1
  419. package/views/2d/constraints/GeometryConstraint.js +1 -1
  420. package/views/2d/engine/Bitmap.js +1 -1
  421. package/views/2d/engine/Container.js +1 -1
  422. package/views/2d/engine/DisplayObject.js +1 -1
  423. package/views/2d/engine/Stage.js +1 -1
  424. package/views/2d/engine/imagery/BrushRasterBitmap.js +1 -1
  425. package/views/2d/engine/imagery/RasterBitmap.js +1 -1
  426. package/views/2d/engine/imagery/RasterVFDisplayObject.js +1 -1
  427. package/views/2d/engine/vectorTiles/TilemapRequest.js +1 -1
  428. package/views/2d/engine/vectorTiles/WorkerTileHandler.js +1 -1
  429. package/views/2d/engine/vectorTiles/buckets/FillBucket.js +1 -1
  430. package/views/2d/engine/vectorTiles/buckets/LineBucket.js +1 -1
  431. package/views/2d/engine/vectorTiles/expression/expression.js +1 -1
  432. package/views/2d/engine/vectorTiles/shaders/VTLMaterial.js +1 -1
  433. package/views/2d/engine/vectorTiles/style/StyleLayer.js +1 -1
  434. package/views/2d/engine/vectorTiles/style/StyleRepository.js +1 -1
  435. package/views/2d/engine/vectorTiles/style/VectorTileSource.js +1 -1
  436. package/views/2d/engine/webgl/FeatureTile.js +1 -1
  437. package/views/2d/engine/webgl/GraphicTile.js +1 -1
  438. package/views/2d/engine/webgl/TextureManager.js +1 -1
  439. package/views/2d/engine/webgl/brushes/WGLBrushHeatmap.js +1 -1
  440. package/views/2d/engine/webgl/brushes/WGLBrushVTLCircle.js +1 -1
  441. package/views/2d/engine/webgl/brushes/WGLBrushVTLFill.js +1 -1
  442. package/views/2d/engine/webgl/brushes/WGLBrushVTLLine.js +1 -1
  443. package/views/2d/engine/webgl/collisions/CollisionEngine.js +1 -1
  444. package/views/2d/engine/webgl/collisions/MetricReader.js +1 -1
  445. package/views/2d/engine/webgl/cpuMapped/DisplayRecordReader.js +1 -1
  446. package/views/2d/engine/webgl/cpuMapped/FreeList.js +1 -1
  447. package/views/2d/engine/webgl/mesh/MeshData.js +1 -1
  448. package/views/2d/engine/webgl/mesh/templates/WGLBaseLineTemplate.js +1 -1
  449. package/views/2d/engine/webgl/mesh/templates/WGLBaseMarkerTemplate.js +1 -1
  450. package/views/2d/engine/webgl/mesh/templates/WGLBaseTextTemplate.js +1 -1
  451. package/views/2d/engine/webgl/mesh/templates/WGLDynamicFillTemplate.js +1 -1
  452. package/views/2d/engine/webgl/mesh/templates/WGLLabelTemplate.js +1 -1
  453. package/views/2d/engine/webgl/mesh/templates/WGLLineTemplate.js +1 -1
  454. package/views/2d/engine/webgl/mesh/templates/WGLMeshTemplate.js +1 -1
  455. package/views/2d/engine/webgl/painter/RenderPass.js +1 -1
  456. package/views/2d/engine/webgl/shaders/sources/shaderRepository.js +1 -1
  457. package/views/2d/engine/webgl/techniques/dotDensity/TechniqueDotDensity.js +1 -1
  458. package/views/2d/input/MapViewInputManager.js +1 -1
  459. package/views/2d/input/handlers/GamepadNavigation.js +1 -1
  460. package/views/2d/interactive/editingTools/draw/DrawGraphicTool2D.js +1 -1
  461. package/views/2d/interactive/snapping/featureSources/featureServiceSource/FeatureServiceTiles2D.js +1 -1
  462. package/views/2d/layers/BaseLayerView2D.js +1 -1
  463. package/views/2d/layers/BaseLayerViewGL2D.js +1 -1
  464. package/views/2d/layers/BitmapTileLayerView2D.js +1 -1
  465. package/views/2d/layers/FeatureLayerView2D.js +1 -1
  466. package/views/2d/layers/GeoRSSLayerView2D.js +1 -1
  467. package/views/2d/layers/GraphicsLayerView2D.js +1 -1
  468. package/views/2d/layers/ImageryLayerView2D.js +1 -1
  469. package/views/2d/layers/ImageryTileLayerView2D.js +1 -1
  470. package/views/2d/layers/KMLLayerView2D.js +1 -1
  471. package/views/2d/layers/LayerView2D.js +1 -1
  472. package/views/2d/layers/SubtypeGroupLayerView2D.js +1 -1
  473. package/views/2d/layers/TileLayerView2D.js +1 -1
  474. package/views/2d/layers/VectorTileLayerView2D.js +1 -1
  475. package/views/2d/layers/WMTSLayerView2D.js +1 -1
  476. package/views/2d/layers/features/FeatureStore2D.js +1 -1
  477. package/views/2d/layers/features/Pipeline.js +1 -1
  478. package/views/2d/layers/features/batchUtils.js +1 -1
  479. package/views/2d/layers/features/controllers/FeatureController2D.js +1 -1
  480. package/views/2d/layers/features/controllers/support/sourceAdapters.js +1 -1
  481. package/views/2d/layers/features/createSymbolSchema.js +1 -1
  482. package/views/2d/layers/features/processors/SymbolProcessor.js +1 -1
  483. package/views/2d/layers/features/schemaUtils.js +1 -1
  484. package/views/2d/layers/features/sources/BaseFeatureSource.js +1 -1
  485. package/views/2d/layers/features/sources/DataTileSource.js +1 -1
  486. package/views/2d/layers/features/sources/DataTileSubscription.js +1 -1
  487. package/views/2d/layers/features/sources/SnapshotFeatureSource.js +1 -1
  488. package/views/2d/layers/features/support/ClusterStore.js +1 -1
  489. package/views/2d/layers/features/support/FeatureSetReader.js +1 -1
  490. package/views/2d/layers/features/support/FeatureSetReaderJSON.js +1 -1
  491. package/views/2d/layers/features/support/FeatureSetReaderPBF.js +1 -1
  492. package/views/2d/layers/features/support/FeatureSetReaderPBFHeader.js +1 -1
  493. package/views/2d/layers/features/support/ResourceManagerProxy.js +1 -1
  494. package/views/2d/layers/features/tileRenderers/SymbolTileRenderer.js +1 -1
  495. package/views/2d/layers/features/tileRenderers/support/WGLFeatureView.js +1 -1
  496. package/views/2d/layers/graphics/graphicsUtils.js +1 -1
  497. package/views/2d/layers/imagery/BaseImageryTileSubView2D.js +1 -1
  498. package/views/2d/layers/imagery/ImageryTileView2D.js +1 -1
  499. package/views/2d/layers/imagery/VectorFieldTileView2D.js +1 -1
  500. package/views/2d/layers/support/ExportStrategy.js +1 -1
  501. package/views/2d/layers/support/FeatureCommandQueue.js +1 -1
  502. package/views/2d/magnifier/MagnifierView2D.js +1 -1
  503. package/views/2d/support/engineHelpers.js +1 -1
  504. package/views/2d/tiling/TileManager.js +1 -1
  505. package/views/3d/analysis/AreaMeasurement/support/AreaMeasurementVisualization.js +1 -1
  506. package/views/3d/analysis/AreaMeasurementAnalysisView3D.js +1 -1
  507. package/views/3d/analysis/Dimensioning/DimensioningVisualization.js +5 -0
  508. package/views/3d/analysis/Dimensioning/LinearDimensionVisualization.js +5 -0
  509. package/views/3d/analysis/DimensioningAnalysisView3D.js +1 -1
  510. package/views/3d/analysis/DirectLineMeasurement/DirectLineMeasurementController.js +1 -1
  511. package/views/3d/analysis/DirectLineMeasurement/DirectLineMeasurementVisualization.js +1 -1
  512. package/views/3d/analysis/DirectLineMeasurementAnalysisView3D.js +1 -1
  513. package/views/3d/analysis/LineOfSight/LineOfSightController.js +1 -1
  514. package/views/3d/analysis/LineOfSightAnalysisView3D.js +1 -1
  515. package/views/3d/analysis/Slice/SliceTool.js +1 -1
  516. package/views/3d/analysis/SliceAnalysisView3D.js +1 -1
  517. package/views/3d/environment/ChapmanAtmosphere.glsl.js +1 -1
  518. package/views/3d/environment/ChapmanAtmosphere.js +1 -1
  519. package/views/3d/environment/Clouds.glsl.js +1 -1
  520. package/views/3d/environment/CloudsComposition.glsl.js +1 -1
  521. package/views/3d/environment/CloudsComposition.js +1 -1
  522. package/views/3d/environment/CloudsCompositionParameters.js +5 -0
  523. package/views/3d/environment/EnvironmentRenderer.js +1 -1
  524. package/views/3d/environment/Fog.glsl.js +1 -1
  525. package/views/3d/environment/Fog.js +1 -1
  526. package/views/3d/environment/Precipitation.js +1 -1
  527. package/views/3d/environment/SceneViewEnvironment.js +1 -1
  528. package/views/3d/environment/SceneViewEnvironmentManager.js +1 -1
  529. package/views/3d/environment/SimpleAtmosphere.js +1 -1
  530. package/views/3d/environment/Stars.glsl.js +1 -1
  531. package/views/3d/environment/Stars.js +1 -1
  532. package/views/3d/externalRenderers/ExternalRendererStore.js +1 -1
  533. package/views/3d/glTF/internal/Resource.js +1 -1
  534. package/views/3d/glTF/loader.js +1 -1
  535. package/views/3d/input/SceneInputManager.js +1 -1
  536. package/views/3d/input/handlers/TwoFingerTilt.js +1 -1
  537. package/views/3d/interactive/Manipulator3D.js +1 -1
  538. package/views/3d/interactive/editingTools/draw/DrawGraphicTool3D.js +1 -1
  539. package/views/3d/interactive/editingTools/manipulations/MoveManipulation.js +1 -1
  540. package/views/3d/interactive/editingTools/moveGraphic/isSupportedGraphic.js +1 -1
  541. package/views/3d/interactive/editingTools/reshapeGraphic/GraphicReshapeTool.js +1 -1
  542. package/views/3d/interactive/editingTools/reshapeGraphic/ReshapeOperation.js +1 -1
  543. package/views/3d/interactive/editingTools/reshapeGraphic/isSupportedGraphic.js +1 -1
  544. package/views/3d/interactive/editingTools/transformGraphic/GraphicScaleRotateTransform.js +1 -1
  545. package/views/3d/interactive/editingTools/transformGraphic/isSupportedGraphic.js +1 -1
  546. package/views/3d/interactive/measurementTools/areaMeasurement3D/AreaMeasurement3DView.js +1 -1
  547. package/views/3d/interactive/measurementTools/directLineMeasurement3D/DirectLineMeasurement3DView.js +1 -1
  548. package/views/3d/interactive/snapping/featureSources/featureServiceSource/FeatureServiceTiles3D.js +1 -1
  549. package/views/3d/interactive/visualElements/DrapedVisualElementResources.js +1 -1
  550. package/views/3d/interactive/visualElements/LineVisualElement.js +1 -1
  551. package/views/3d/interactive/visualElements/OutlineVisualElement.js +1 -1
  552. package/views/3d/interactive/visualElements/VisualElementResources.js +1 -1
  553. package/views/3d/layers/BuildingComponentSublayerView3D.js +1 -1
  554. package/views/3d/layers/ElevationLayerView3D.js +1 -1
  555. package/views/3d/layers/FeatureLayerView3D.js +1 -1
  556. package/views/3d/layers/FeatureLayerViewBase3D.js +1 -1
  557. package/views/3d/layers/FeatureLikeLayerView3D.js +1 -1
  558. package/views/3d/layers/GraphicsLayerView3D.js +1 -1
  559. package/views/3d/layers/GraphicsView3D.js +1 -1
  560. package/views/3d/layers/I3SMeshView3D.js +1 -1
  561. package/views/3d/layers/ImageryLayerView3D.js +1 -1
  562. package/views/3d/layers/ImageryTileLayerView3D.js +1 -1
  563. package/views/3d/layers/LayerView3D.js +1 -1
  564. package/views/3d/layers/RouteLayerView3D.js +1 -1
  565. package/views/3d/layers/SceneLayerGraphicsView3D.js +1 -1
  566. package/views/3d/layers/SceneLayerView3D.js +1 -1
  567. package/views/3d/layers/SceneLayerWorker.js +1 -1
  568. package/views/3d/layers/StreamLayerView3D.js +1 -1
  569. package/views/3d/layers/TiledLayerView3D.js +1 -1
  570. package/views/3d/layers/VectorTileLayerView3D.js +1 -1
  571. package/views/3d/layers/VoxelLayerView3D.js +1 -1
  572. package/views/3d/layers/WMSLayerView3D.js +1 -1
  573. package/views/3d/layers/WMTSLayerView3D.js +1 -1
  574. package/views/3d/layers/graphics/Graphics3DCore.js +1 -1
  575. package/views/3d/layers/graphics/Graphics3DExtrudeSymbolLayer.js +1 -1
  576. package/views/3d/layers/graphics/Graphics3DFeatureProcessor.js +1 -1
  577. package/views/3d/layers/graphics/Graphics3DFilterVisibility.js +1 -1
  578. package/views/3d/layers/graphics/Graphics3DFrustumVisibility.js +1 -1
  579. package/views/3d/layers/graphics/Graphics3DLineSymbolLayer.js +1 -1
  580. package/views/3d/layers/graphics/Graphics3DMeshFillSymbolLayer.js +1 -1
  581. package/views/3d/layers/graphics/Graphics3DObject3DGraphicLayer.js +1 -1
  582. package/views/3d/layers/graphics/Graphics3DPathSymbolLayer.js +1 -1
  583. package/views/3d/layers/graphics/Graphics3DPointSymbol.js +1 -1
  584. package/views/3d/layers/graphics/Graphics3DSymbol.js +1 -1
  585. package/views/3d/layers/graphics/Graphics3DSymbolLayer.js +1 -1
  586. package/views/3d/layers/graphics/GraphicsDeconflictor.js +1 -1
  587. package/views/3d/layers/graphics/GraphicsProcessor.js +1 -1
  588. package/views/3d/layers/graphics/Labeler.js +1 -1
  589. package/views/3d/layers/i3s/I3SAttributeOverrides.js +1 -1
  590. package/views/3d/layers/i3s/I3SMeshViewFilter.js +1 -1
  591. package/views/3d/layers/i3s/I3SStreamDataController.js +1 -1
  592. package/views/3d/layers/i3s/I3SUtil.js +1 -1
  593. package/views/3d/layers/support/FeatureTileTree3D.js +1 -1
  594. package/views/3d/layers/support/FeatureTileTree3DDebugger.js +1 -1
  595. package/views/3d/layers/support/HeatmapFeatureProcessor.js +1 -1
  596. package/views/3d/layers/support/StageLayerElevationProvider.js +1 -1
  597. package/views/3d/layers/support/featureTileQuery3D.js +1 -1
  598. package/views/3d/state/ConstraintsManager.js +1 -1
  599. package/views/3d/state/helpers/SceneIntersectionHelper.js +1 -1
  600. package/views/3d/support/ResourceController.js +1 -1
  601. package/views/3d/support/SharedSymbolResources.js +1 -1
  602. package/views/3d/support/TextureCollection.js +1 -1
  603. package/views/3d/support/cameraUtils.js +1 -1
  604. package/views/3d/support/pointsOfInterest/CameraOnSurface.js +1 -1
  605. package/views/3d/support/pointsOfInterest/Focus.js +1 -1
  606. package/views/3d/support/pointsOfInterest/PointsOfInterest.js +1 -1
  607. package/views/3d/support/pointsOfInterest/StableSurfaceCenter.js +1 -1
  608. package/views/3d/terrain/OverlayFramebufferObject.js +1 -1
  609. package/views/3d/terrain/OverlayManager.js +1 -1
  610. package/views/3d/terrain/OverlayRenderer.js +1 -1
  611. package/views/3d/terrain/PatchGeometry.js +1 -1
  612. package/views/3d/terrain/PatchGeometryFactory.js +1 -1
  613. package/views/3d/terrain/PatchRenderData.js +1 -1
  614. package/views/3d/terrain/PlanarPatch.js +1 -1
  615. package/views/3d/terrain/RasterColorizerTechnique.js +1 -1
  616. package/views/3d/terrain/RasterTile.js +1 -1
  617. package/views/3d/terrain/SphericalPatch.js +1 -1
  618. package/views/3d/terrain/TerrainRenderer.js +1 -1
  619. package/views/3d/terrain/TerrainSurface.js +1 -1
  620. package/views/3d/terrain/Tile.js +1 -1
  621. package/views/3d/terrain/TileCompositor.js +1 -1
  622. package/views/3d/terrain/TileRenderer.js +1 -1
  623. package/views/3d/terrain/TilingSchemeLogic.js +1 -1
  624. package/views/3d/terrain/terrainUtils.js +1 -1
  625. package/views/3d/webgl-engine/collections/Component/ComponentIntersectionData.js +1 -1
  626. package/views/3d/webgl-engine/collections/Component/ComponentObjectCollection.js +1 -1
  627. package/views/3d/webgl-engine/collections/Component/Material/ComponentTechnique.js +1 -1
  628. package/views/3d/webgl-engine/collections/Component/Material/shader/ComponentData.glsl.js +2 -2
  629. package/views/3d/webgl-engine/core/material/MaterialBase.js +1 -1
  630. package/views/3d/webgl-engine/core/shaderLibrary/ScreenSizeScaling.glsl.js +1 -1
  631. package/views/3d/webgl-engine/core/shaderLibrary/Slice.glsl.js +5 -5
  632. package/views/3d/webgl-engine/core/shaderLibrary/attributes/PathVertexPosition.glsl.js +8 -8
  633. package/views/3d/webgl-engine/core/shaderLibrary/attributes/RibbonVertexPosition.glsl.js +6 -6
  634. package/views/3d/webgl-engine/core/shaderLibrary/attributes/VertexNormal.glsl.js +4 -4
  635. package/views/3d/webgl-engine/core/shaderLibrary/attributes/VertexPosition.glsl.js +2 -2
  636. package/views/3d/webgl-engine/core/shaderLibrary/attributes/VerticalOffset.glsl.js +5 -5
  637. package/views/3d/webgl-engine/core/shaderLibrary/hud/HUD.glsl.js +13 -13
  638. package/views/3d/webgl-engine/core/shaderLibrary/raster/BasicGrid.glsl.js +2 -2
  639. package/views/3d/webgl-engine/core/shaderLibrary/raster/Colormap.glsl.js +1 -1
  640. package/views/3d/webgl-engine/core/shaderLibrary/raster/Common.glsl.js +2 -2
  641. package/views/3d/webgl-engine/core/shaderLibrary/raster/Projection.glsl.js +1 -1
  642. package/views/3d/webgl-engine/core/shaderLibrary/raster/RasterColorizer.glsl.js +1 -1
  643. package/views/3d/webgl-engine/core/shaderLibrary/shading/ComputeMaterialColor.glsl.js +1 -1
  644. package/views/3d/webgl-engine/core/shaderLibrary/shading/EvaluateAmbientLighting.glsl.js +5 -5
  645. package/views/3d/webgl-engine/core/shaderLibrary/shading/EvaluateAmbientOcclusion.glsl.js +3 -3
  646. package/views/3d/webgl-engine/core/shaderLibrary/shading/EvaluateSceneLighting.glsl.js +13 -13
  647. package/views/3d/webgl-engine/core/shaderLibrary/shading/LineStipple.glsl.js +17 -17
  648. package/views/3d/webgl-engine/core/shaderLibrary/shading/ReadShadowMap.glsl.js +1 -1
  649. package/views/3d/webgl-engine/core/shaderLibrary/shading/VisualVariables.glsl.js +7 -7
  650. package/views/3d/webgl-engine/core/shaderLibrary/shading/WaterDistortion.glsl.js +2 -2
  651. package/views/3d/webgl-engine/core/shaderLibrary/terrain/Overlay.glsl.js +5 -5
  652. package/views/3d/webgl-engine/core/shaderLibrary/util/CameraSpace.glsl.js +2 -2
  653. package/views/3d/webgl-engine/core/shaderLibrary/util/CloudsParallaxShading.glsl.js +15 -15
  654. package/views/3d/webgl-engine/core/shaderLibrary/util/ScreenSizePerspective.glsl.js +2 -2
  655. package/views/3d/webgl-engine/core/shaderLibrary/util/View.glsl.js +1 -1
  656. package/views/3d/webgl-engine/core/shaderModules/BooleanPassUniform.js +5 -0
  657. package/views/3d/webgl-engine/core/shaderModules/Float4DrawUniform.js +5 -0
  658. package/views/3d/webgl-engine/core/shaderModules/{Matrix3Uniform.js → Float4PassUniform.js} +1 -1
  659. package/views/3d/webgl-engine/core/shaderModules/Float4Uniform.js +1 -1
  660. package/views/3d/webgl-engine/core/shaderModules/Matrix3DrawUniform.js +5 -0
  661. package/views/3d/webgl-engine/core/shaderModules/Matrix3PassUniform.js +5 -0
  662. package/views/3d/webgl-engine/core/shaderModules/{TextureCubeUniform.js → TextureCubePassUniform.js} +1 -1
  663. package/views/3d/webgl-engine/core/shaderTechnique/ShaderTechniqueConfiguration.js +1 -1
  664. package/views/3d/webgl-engine/lib/AutoDisposable.js +1 -1
  665. package/views/3d/webgl-engine/lib/BindParameters.js +1 -1
  666. package/views/3d/webgl-engine/lib/GLTextureMaterial.js +1 -1
  667. package/views/3d/webgl-engine/lib/RenderPluginManager.js +1 -1
  668. package/views/3d/webgl-engine/lib/Renderer.js +1 -1
  669. package/views/3d/webgl-engine/lib/ShadowAccumulator.js +1 -1
  670. package/views/3d/webgl-engine/lib/ShadowHighlight.js +1 -1
  671. package/views/3d/webgl-engine/lib/ShadowMap.js +1 -1
  672. package/views/3d/webgl-engine/lib/Texture.js +1 -1
  673. package/views/3d/webgl-engine/lib/WebGLLayer.js +1 -1
  674. package/views/3d/webgl-engine/lib/edgeRendering/EdgeView.js +1 -1
  675. package/views/3d/webgl-engine/lib/intersectorUtilsConversions.js +1 -1
  676. package/views/3d/webgl-engine/lib/pathGeometryUtils.js +1 -1
  677. package/views/3d/webgl-engine/materials/CheckerBoardMaterial.js +1 -1
  678. package/views/3d/webgl-engine/materials/ColorMaterial.js +1 -1
  679. package/views/3d/webgl-engine/materials/DefaultMaterial.js +1 -1
  680. package/views/3d/webgl-engine/materials/HUDMaterial.js +1 -1
  681. package/views/3d/webgl-engine/materials/HeatmapDensityMaterial.js +1 -1
  682. package/views/3d/webgl-engine/materials/ImageMaterial.js +1 -1
  683. package/views/3d/webgl-engine/materials/LineCalloutMaterial.js +1 -1
  684. package/views/3d/webgl-engine/materials/LineMarkerMaterial.js +1 -1
  685. package/views/3d/webgl-engine/materials/MeasurementArrowMaterial.js +1 -1
  686. package/views/3d/webgl-engine/materials/NativeLineMaterial.js +1 -1
  687. package/views/3d/webgl-engine/materials/PathMaterial.js +1 -1
  688. package/views/3d/webgl-engine/materials/PathTechnique.js +1 -1
  689. package/views/3d/webgl-engine/materials/RibbonLineMaterial.js +1 -1
  690. package/views/3d/webgl-engine/materials/ShadedColorMaterial.js +1 -1
  691. package/views/3d/webgl-engine/materials/{VisualVariableMaterialParameters.js → VisualVariablePassParameters.js} +1 -1
  692. package/views/3d/webgl-engine/materials/WaterGLMaterial.js +1 -1
  693. package/views/3d/webgl-engine/materials/WaterTechnique.js +1 -1
  694. package/views/3d/webgl-engine/parts/RenderView.js +1 -1
  695. package/views/3d/webgl-engine/parts/requireUtils.js +1 -1
  696. package/views/3d/webgl-engine/shaders/CheckerBoard.glsl.js +1 -1
  697. package/views/3d/webgl-engine/shaders/CheckerBoardTechnique.js +1 -1
  698. package/views/3d/webgl-engine/shaders/ColorMaterial.glsl.js +1 -1
  699. package/views/3d/webgl-engine/shaders/DefaultMaterial.glsl.js +1 -1
  700. package/views/3d/webgl-engine/shaders/DefaultMaterialTechnique.js +1 -1
  701. package/views/3d/webgl-engine/shaders/HUDMaterial.glsl.js +1 -1
  702. package/views/3d/webgl-engine/shaders/HUDMaterialTechnique.js +1 -1
  703. package/views/3d/webgl-engine/shaders/HeatmapDensity.glsl.js +1 -1
  704. package/views/3d/webgl-engine/shaders/HeatmapDensityTechnique.js +1 -1
  705. package/views/3d/webgl-engine/shaders/HeatmapTechnique.js +1 -1
  706. package/views/3d/webgl-engine/shaders/HighlightApply.glsl.js +1 -1
  707. package/views/3d/webgl-engine/shaders/LineCallout.glsl.js +1 -1
  708. package/views/3d/webgl-engine/shaders/LineMarker.glsl.js +1 -1
  709. package/views/3d/webgl-engine/shaders/Magnifier.glsl.js +3 -3
  710. package/views/3d/webgl-engine/shaders/MeasurementArrow.glsl.js +1 -1
  711. package/views/3d/webgl-engine/shaders/NativeLine.glsl.js +1 -1
  712. package/views/3d/webgl-engine/shaders/Path.glsl.js +1 -1
  713. package/views/3d/webgl-engine/shaders/Pattern.glsl.js +1 -1
  714. package/views/3d/webgl-engine/shaders/RealisticTree.glsl.js +1 -1
  715. package/views/3d/webgl-engine/shaders/RibbonLine.glsl.js +1 -1
  716. package/views/3d/webgl-engine/shaders/ShadedColorMaterial.glsl.js +1 -1
  717. package/views/3d/webgl-engine/shaders/ShadowCastVisualize.glsl.js +1 -1
  718. package/views/3d/webgl-engine/shaders/ShadowHighlight.glsl.js +1 -1
  719. package/views/3d/webgl-engine/shaders/SlicePlaneMaterial.glsl.js +1 -1
  720. package/views/3d/webgl-engine/shaders/WaterSurface.glsl.js +1 -1
  721. package/views/3d/webgl-engine/shaders/sources/edgeRenderer/AdjustProjectedPosition.glsl.js +3 -3
  722. package/views/3d/webgl-engine/shaders/sources/edgeRenderer/EdgeShader.glsl.js +1 -1
  723. package/views/3d/webgl-engine/shaders/sources/edgeRenderer/EdgeUtil.glsl.js +5 -5
  724. package/views/BasemapView.js +1 -1
  725. package/views/GroundView.js +1 -1
  726. package/views/LayerViewManager.js +1 -1
  727. package/views/MapView.js +1 -1
  728. package/views/SceneView.js +1 -1
  729. package/views/ToolViewManager.js +1 -1
  730. package/views/View.js +1 -1
  731. package/views/draw/DrawAction.js +1 -1
  732. package/views/draw/DrawGraphicTool.js +1 -1
  733. package/views/draw/DrawOperation.js +1 -1
  734. package/views/draw/DrawTool.js +1 -1
  735. package/views/draw/support/Box.js +1 -1
  736. package/views/draw/support/GraphicMover.js +1 -1
  737. package/views/draw/support/Reshape.js +1 -1
  738. package/views/interactive/coordinateHelper.js +1 -1
  739. package/views/interactive/editGeometry/operations/OffsetEdgeVertex.js +1 -1
  740. package/views/interactive/snapping/FeatureSnappingEngine.js +1 -1
  741. package/views/interactive/snapping/SnappingManager.js +1 -1
  742. package/views/interactive/snapping/featureSources/WorkerTileTreeDebugger.js +1 -1
  743. package/views/interactive/snapping/featureSources/featureServiceSource/FeatureServiceSnappingSourceWorkerHandle.js +1 -1
  744. package/views/interactive/snapping/featureSources/featureServiceSource/FeatureServiceTileStore.js +1 -1
  745. package/views/interactive/snapping/featureSources/featureServiceSource/FeatureServiceTiledFetcher.js +1 -1
  746. package/views/layers/FeatureLayerView.js +1 -1
  747. package/views/layers/GroupLayerView.js +1 -1
  748. package/views/layers/ImageryLayerView.js +1 -1
  749. package/views/layers/ImageryTileLayerView.js +1 -1
  750. package/views/layers/LayerView.js +1 -1
  751. package/views/layers/MapImageLayerView.js +1 -1
  752. package/views/layers/WMSLayerView.js +1 -1
  753. package/views/support/AllocationTracer.js +1 -1
  754. package/views/support/DefaultsFromMap.js +1 -1
  755. package/views/support/geometry2dUtils.js +1 -1
  756. package/views/support/layerViewUtils.js +1 -1
  757. package/views/support/waitForResources.js +1 -1
  758. package/views/ui/UI.js +1 -1
  759. package/views/webgl/BufferObject.js +1 -1
  760. package/views/webgl/FramebufferObject.js +1 -1
  761. package/views/webgl/RenderingContext.js +1 -1
  762. package/views/webgl/Texture.js +1 -1
  763. package/views/webgl/UniformBufferLayout.js +1 -1
  764. package/views/webgl/VertexArrayObject.js +1 -1
  765. package/views/webgl/capabilities.js +1 -1
  766. package/views/webgl/rasterUtils.js +1 -1
  767. package/views/webgl/testFloatBufferBlend.js +1 -1
  768. package/webdoc/widgets/TimeSlider.js +1 -1
  769. package/webmap/Bookmark.js +1 -1
  770. package/webscene/Slide.js +1 -1
  771. package/widgets/AreaMeasurement2D/AreaMeasurement2DTool.js +1 -1
  772. package/widgets/AreaMeasurement2D/AreaMeasurement2DViewModel.js +1 -1
  773. package/widgets/AreaMeasurement2D.js +1 -1
  774. package/widgets/AreaMeasurement3D.js +1 -1
  775. package/widgets/Attribution.js +1 -1
  776. package/widgets/BasemapGallery/BasemapGalleryViewModel.js +1 -1
  777. package/widgets/BasemapGallery/support/BasemapGalleryItem.js +1 -1
  778. package/widgets/BasemapGallery/support/basemapCompatibilityUtils.js +1 -1
  779. package/widgets/BasemapLayerList.js +1 -1
  780. package/widgets/BasemapToggle/BasemapToggleViewModel.js +1 -1
  781. package/widgets/Bookmarks/BookmarksViewModel.js +1 -1
  782. package/widgets/Bookmarks.js +1 -1
  783. package/widgets/BuildingExplorer/BuildingDisciplinesTree/BuildingDisciplinesNode.js +1 -1
  784. package/widgets/BuildingExplorer/BuildingExplorerViewModel.js +1 -1
  785. package/widgets/BuildingExplorer/BuildingLevel.js +1 -1
  786. package/widgets/BuildingExplorer/BuildingLevelPicker/BuildingLevelPicker.js +1 -1
  787. package/widgets/BuildingExplorer/BuildingNumericFilterViewModel.js +1 -1
  788. package/widgets/BuildingExplorer/BuildingPhase.js +1 -1
  789. package/widgets/BuildingExplorer/support/buildingLayerUtils.js +1 -1
  790. package/widgets/BuildingExplorer.js +1 -1
  791. package/widgets/CoordinateConversion/CoordinateConversionViewModel.js +1 -1
  792. package/widgets/CoordinateConversion/support/Format.js +1 -1
  793. package/widgets/Daylight/DaylightViewModel.js +1 -1
  794. package/widgets/Daylight/support/SliderWithDropdown.js +1 -1
  795. package/widgets/Daylight.js +1 -1
  796. package/widgets/DirectLineMeasurement3D.js +1 -1
  797. package/widgets/Directions/DirectionsViewModel.js +1 -1
  798. package/widgets/Directions.js +1 -1
  799. package/widgets/DistanceMeasurement2D/DistanceMeasurement2DViewModel.js +1 -1
  800. package/widgets/DistanceMeasurement2D.js +1 -1
  801. package/widgets/Editor/CreateFeaturesWorkflow.js +1 -1
  802. package/widgets/Editor/CreateWorkflow.js +1 -1
  803. package/widgets/Editor/EditorViewModel.js +1 -1
  804. package/widgets/Editor/UpdateWorkflow.js +1 -1
  805. package/widgets/Editor/workflowUtils.js +1 -1
  806. package/widgets/Editor.js +1 -1
  807. package/widgets/ElevationProfile/ElevationProfileLineGround.js +1 -1
  808. package/widgets/ElevationProfile/ElevationProfileLineInput.js +1 -1
  809. package/widgets/ElevationProfile/ElevationProfileLineView.js +1 -1
  810. package/widgets/ElevationProfile/ElevationProfileTool.js +1 -1
  811. package/widgets/ElevationProfile/ElevationProfileViewModel.js +1 -1
  812. package/widgets/ElevationProfile/components/Statistics.js +1 -1
  813. package/widgets/ElevationProfile/support/elevationQuerySourceUtils.js +1 -1
  814. package/widgets/ElevationProfile/support/profileUtils.js +1 -1
  815. package/widgets/ElevationProfile.js +1 -1
  816. package/widgets/Expand.js +1 -1
  817. package/widgets/Feature/FeatureAttachments.js +1 -1
  818. package/widgets/Feature/FeatureContent.js +1 -1
  819. package/widgets/Feature/FeatureExpression/FeatureExpressionViewModel.js +1 -1
  820. package/widgets/Feature/FeatureExpression.js +1 -1
  821. package/widgets/Feature/FeatureFields/FeatureFieldsViewModel.js +1 -1
  822. package/widgets/Feature/FeatureFields.js +1 -1
  823. package/widgets/Feature/FeatureMedia/FeatureMediaViewModel.js +1 -1
  824. package/widgets/Feature/FeatureMedia.js +1 -1
  825. package/widgets/Feature/FeatureViewModel.js +1 -1
  826. package/widgets/Feature/support/arcadeFeatureUtils.js +1 -1
  827. package/widgets/Feature/support/featureUtils.js +1 -1
  828. package/widgets/Feature/support/relatedFeatureUtils.js +1 -1
  829. package/widgets/FeatureForm/FeatureFormViewModel.js +1 -1
  830. package/widgets/FeatureForm/InputField.js +1 -1
  831. package/widgets/FeatureForm/support/formTemplateUtils.js +1 -1
  832. package/widgets/FeatureForm.js +1 -1
  833. package/widgets/FeatureTable/FeatureTableViewModel.js +1 -1
  834. package/widgets/FeatureTable/FieldColumn.js +1 -1
  835. package/widgets/FeatureTable/Grid/Column.js +1 -1
  836. package/widgets/FeatureTable/Grid/EditorColumn.js +1 -1
  837. package/widgets/FeatureTable/Grid/Grid.js +1 -1
  838. package/widgets/FeatureTable/Grid/GridViewModel.js +1 -1
  839. package/widgets/FeatureTable/Grid/support/ButtonMenu.js +1 -1
  840. package/widgets/FeatureTable/Grid/support/LocalStore.js +1 -1
  841. package/widgets/FeatureTable/support/FeatureStore.js +1 -1
  842. package/widgets/FeatureTable.js +1 -1
  843. package/widgets/FeatureTemplates/FeatureTemplatesViewModel.js +1 -1
  844. package/widgets/FeatureTemplates/ItemList.js +1 -1
  845. package/widgets/FeatureTemplates/TemplateItem.js +1 -1
  846. package/widgets/FeatureTemplates.js +1 -1
  847. package/widgets/FloorFilter/FloorFilterViewModel.js +1 -1
  848. package/widgets/FloorFilter.js +1 -1
  849. package/widgets/Fullscreen.js +1 -1
  850. package/widgets/Home.js +1 -1
  851. package/widgets/LayerList/LayerListViewModel.js +1 -1
  852. package/widgets/LayerList/support/layerListUtils.js +1 -1
  853. package/widgets/LayerList.js +1 -1
  854. package/widgets/Legend/LegendViewModel.js +1 -1
  855. package/widgets/Legend/styles/Card.js +1 -1
  856. package/widgets/Legend/styles/support/univariateUtils.js +1 -1
  857. package/widgets/Legend/support/ActiveLayerInfo.js +1 -1
  858. package/widgets/Legend/support/clusterUtils.js +1 -1
  859. package/widgets/Legend/support/sizeRampUtils.js +1 -1
  860. package/widgets/Locate/LocateViewModel.js +1 -1
  861. package/widgets/Popup/PopupViewModel.js +1 -1
  862. package/widgets/Popup/actionUtils.js +1 -1
  863. package/widgets/Popup.js +1 -1
  864. package/widgets/Print/PrintViewModel.js +1 -1
  865. package/widgets/Print.js +1 -1
  866. package/widgets/ScaleRangeSlider/ScaleRangeSliderViewModel.js +1 -1
  867. package/widgets/Search/LayerSearchSource.js +1 -1
  868. package/widgets/Search/SearchResultRenderer.js +1 -1
  869. package/widgets/Search/SearchViewModel.js +1 -1
  870. package/widgets/Search/support/geometryUtils.js +1 -1
  871. package/widgets/Search/support/layerSearchUtils.js +1 -1
  872. package/widgets/Search/support/locatorUtils.js +1 -1
  873. package/widgets/Search.js +1 -1
  874. package/widgets/ShadowCast/components/DiscreteConfigurator.js +1 -1
  875. package/widgets/ShadowCast/components/Label.js +1 -1
  876. package/widgets/ShadowCast/components/TimezonePicker.js +1 -1
  877. package/widgets/ShadowCast.js +1 -1
  878. package/widgets/Sketch/SketchViewModel.js +1 -1
  879. package/widgets/Sketch.js +1 -1
  880. package/widgets/Slider.js +1 -1
  881. package/widgets/Swipe/SwipeViewModel.js +1 -1
  882. package/widgets/TableList/TableListViewModel.js +1 -1
  883. package/widgets/TableList/support/tableListUtils.js +1 -1
  884. package/widgets/TableList.js +1 -1
  885. package/widgets/TimeSlider/TimeSliderViewModel.js +1 -1
  886. package/widgets/TimeSlider/utils.js +1 -1
  887. package/widgets/TimeSlider.js +1 -1
  888. package/widgets/UtilityNetworkTrace/UtilityNetworkTraceViewModel.js +1 -1
  889. package/widgets/Weather.js +1 -1
  890. package/widgets/Widget.js +1 -1
  891. package/widgets/smartMapping/BinaryColorSizeSlider/BinaryColorSizeSliderViewModel.js +1 -1
  892. package/widgets/smartMapping/BinaryColorSizeSlider.js +1 -1
  893. package/widgets/smartMapping/ClassedColorSlider.js +1 -1
  894. package/widgets/smartMapping/ClassedSizeSlider.js +1 -1
  895. package/widgets/smartMapping/ColorSizeSlider.js +1 -1
  896. package/widgets/smartMapping/SizeSlider/SizeSliderViewModel.js +1 -1
  897. package/widgets/smartMapping/SmartMappingSliderBase.js +1 -1
  898. package/widgets/smartMapping/SmartMappingSliderViewModel.js +1 -1
  899. package/widgets/support/AnalysisViewModel.js +1 -1
  900. package/widgets/support/ColorPicker.js +1 -1
  901. package/widgets/support/DatePicker.js +1 -1
  902. package/widgets/support/InteractiveAnalysisViewModel.js +1 -1
  903. package/widgets/support/Popover.js +1 -1
  904. package/widgets/support/SelectionToolbar/SelectionToolbarViewModel.js +1 -1
  905. package/widgets/support/SelectionToolbar.js +1 -1
  906. package/widgets/support/Selector2D/SelectionOperation2D.js +1 -1
  907. package/widgets/support/Selector2D.js +1 -1
  908. package/widgets/support/SnappingControls/SnappingControlsViewModel.js +1 -1
  909. package/widgets/support/SnappingControls.js +1 -1
  910. package/widgets/support/jsxWidgetSupport.js +1 -1
  911. package/widgets/support/widgetUtils.js +1 -1
  912. package/assets/esri/core/workers/chunks/049c5c30bd37693dddb7.js +0 -1
  913. package/assets/esri/core/workers/chunks/055a0ebf22a82f859474.js +0 -1
  914. package/assets/esri/core/workers/chunks/0b12ff7b2ed2838afbb8.js +0 -1
  915. package/assets/esri/core/workers/chunks/0e25548573baf855e394.js +0 -1
  916. package/assets/esri/core/workers/chunks/0edd4c3ca6e7d749d0e5.js +0 -1
  917. package/assets/esri/core/workers/chunks/0fcbf7e2db58e38ee6d1.js +0 -1
  918. package/assets/esri/core/workers/chunks/133f971e72a1a6277ac4.js +0 -1
  919. package/assets/esri/core/workers/chunks/135a90ae61f3b3cae91b.js +0 -1
  920. package/assets/esri/core/workers/chunks/13fde7fd56c39fa3f2d5.js +0 -1
  921. package/assets/esri/core/workers/chunks/1c90855c3b0e5dcff908.js +0 -1
  922. package/assets/esri/core/workers/chunks/1dbef1919c7ac10a6bcc.js +0 -1
  923. package/assets/esri/core/workers/chunks/1facbda248863cf72cbd.js +0 -1
  924. package/assets/esri/core/workers/chunks/1fb2d7abe6c8efa84695.js +0 -1
  925. package/assets/esri/core/workers/chunks/2068377c2a796d5f2245.js +0 -1
  926. package/assets/esri/core/workers/chunks/28a5878cbe5880476855.js +0 -1
  927. package/assets/esri/core/workers/chunks/2cf3934b3ecabdf207c8.js +0 -1
  928. package/assets/esri/core/workers/chunks/2d42711a629384144625.js +0 -1
  929. package/assets/esri/core/workers/chunks/3021fda52083fc67d18c.js +0 -1
  930. package/assets/esri/core/workers/chunks/30333a95dc0a44e23fb5.js +0 -1
  931. package/assets/esri/core/workers/chunks/30837d93116f0337972f.js +0 -1
  932. package/assets/esri/core/workers/chunks/320543485c8e22485075.js +0 -1
  933. package/assets/esri/core/workers/chunks/3f0f7da92a6e4493686e.js +0 -1
  934. package/assets/esri/core/workers/chunks/42057f252ba4e82a8b45.js +0 -1
  935. package/assets/esri/core/workers/chunks/45a3f6033cdf4bc74a4c.js +0 -1
  936. package/assets/esri/core/workers/chunks/492b65fe99641f5740f0.js +0 -1
  937. package/assets/esri/core/workers/chunks/4d1cd7df617273c489f4.js +0 -1
  938. package/assets/esri/core/workers/chunks/4df9dfa80dbbae9b743d.js +0 -1
  939. package/assets/esri/core/workers/chunks/515c1c055666ff4740f3.js +0 -1
  940. package/assets/esri/core/workers/chunks/541e644fc77dbe527124.js +0 -1
  941. package/assets/esri/core/workers/chunks/59e341b2db44351bf557.js +0 -1
  942. package/assets/esri/core/workers/chunks/5a10b58533b4116115ac.js +0 -1
  943. package/assets/esri/core/workers/chunks/5f940853341d7e2bc852.js +0 -1
  944. package/assets/esri/core/workers/chunks/5ff2cdecf95e0136dd52.js +0 -1
  945. package/assets/esri/core/workers/chunks/6147bfbe2bd7292d6ad0.js +0 -1
  946. package/assets/esri/core/workers/chunks/6467f996fe9f136c370b.js +0 -1
  947. package/assets/esri/core/workers/chunks/682a8f15f352de76df69.js +0 -1
  948. package/assets/esri/core/workers/chunks/6a06635089761ee3e6d4.js +0 -972
  949. package/assets/esri/core/workers/chunks/725828a41917d3d56f2d.js +0 -1
  950. package/assets/esri/core/workers/chunks/794b47764ebb0257ed41.js +0 -1
  951. package/assets/esri/core/workers/chunks/7fd03a75eb07a09cda35.js +0 -1
  952. package/assets/esri/core/workers/chunks/86ad6b020c01850d9095.js +0 -1
  953. package/assets/esri/core/workers/chunks/86f9d1ce36661781d962.js +0 -1
  954. package/assets/esri/core/workers/chunks/8dcf6c836b53b40dfbf1.js +0 -1
  955. package/assets/esri/core/workers/chunks/8e98ff9404a802352037.js +0 -1
  956. package/assets/esri/core/workers/chunks/94e51fe1c539df6257c2.js +0 -1
  957. package/assets/esri/core/workers/chunks/9519a02b9b8db88a3150.js +0 -1
  958. package/assets/esri/core/workers/chunks/9a8b50ed75219b4a42e1.js +0 -1
  959. package/assets/esri/core/workers/chunks/9f3a094aa4b47e4eb046.js +0 -1
  960. package/assets/esri/core/workers/chunks/a0ebf25c9c9a7f839b93.js +0 -1
  961. package/assets/esri/core/workers/chunks/a25f0a195f9217665530.js +0 -1
  962. package/assets/esri/core/workers/chunks/a2be1e0b632cef87f6a4.js +0 -1
  963. package/assets/esri/core/workers/chunks/a4d8cf9829da9cfc5f36.js +0 -1
  964. package/assets/esri/core/workers/chunks/a562059dbdd1bf1fab66.js +0 -1
  965. package/assets/esri/core/workers/chunks/a59ee7d2b98c85f27dd2.js +0 -1
  966. package/assets/esri/core/workers/chunks/a5dbab94697757c87c49.js +0 -1
  967. package/assets/esri/core/workers/chunks/a5e65d5a7a536759d1cc.js +0 -1
  968. package/assets/esri/core/workers/chunks/a8ac0b6a3eba35e3a5b6.js +0 -1
  969. package/assets/esri/core/workers/chunks/acbd0f4d72d1f5d8e4e8.js +0 -1
  970. package/assets/esri/core/workers/chunks/acc97a210f36bff2d1b0.js +0 -1
  971. package/assets/esri/core/workers/chunks/ad68fe924456d6d7d4f0.js +0 -1
  972. package/assets/esri/core/workers/chunks/b06c949fc7d08e376a5f.js +0 -1
  973. package/assets/esri/core/workers/chunks/b26bd8fde2fc65bb67fb.js +0 -1
  974. package/assets/esri/core/workers/chunks/b4405e9fe6c0cf7250d3.js +0 -1
  975. package/assets/esri/core/workers/chunks/bc08fe3b03767bd694c5.js +0 -1
  976. package/assets/esri/core/workers/chunks/c11501e96ffd81bf39a0.js +0 -1
  977. package/assets/esri/core/workers/chunks/c44116378cc1bc627044.js +0 -1
  978. package/assets/esri/core/workers/chunks/c9b09099488d0e719dfb.js +0 -1
  979. package/assets/esri/core/workers/chunks/cbea4f1eb814115748db.js +0 -1
  980. package/assets/esri/core/workers/chunks/ce262a2accd982988ef1.js +0 -1
  981. package/assets/esri/core/workers/chunks/d15e6662d90718411d62.js +0 -1
  982. package/assets/esri/core/workers/chunks/d16aac3461af9cee0c29.js +0 -1
  983. package/assets/esri/core/workers/chunks/d60dd3e1028f714f2258.js +0 -1
  984. package/assets/esri/core/workers/chunks/d6c150c243ca1f6108f9.js +0 -1
  985. package/assets/esri/core/workers/chunks/d85748b57a71999caf3a.js +0 -1
  986. package/assets/esri/core/workers/chunks/d8c59b1d73650c060dfb.js +0 -1
  987. package/assets/esri/core/workers/chunks/dcb6e1b33402d7fa455b.js +0 -1
  988. package/assets/esri/core/workers/chunks/df653bca2b14dffc82d1.js +0 -1
  989. package/assets/esri/core/workers/chunks/e2a12142439d3037a3a7.js +0 -1
  990. package/assets/esri/core/workers/chunks/e3e1d87b8532bf84a18d.js +0 -1
  991. package/assets/esri/core/workers/chunks/e7744b7e0c16bba93151.js +0 -1
  992. package/assets/esri/core/workers/chunks/ea50effc5c39870dc871.js +0 -1
  993. package/assets/esri/core/workers/chunks/f1665a64564593f2a438.js +0 -1
  994. package/assets/esri/core/workers/chunks/f4c12f3a5e7f89106ae0.js +0 -1
  995. package/assets/esri/core/workers/chunks/fbefdc74b3aab716187f.js +0 -1
  996. package/assets/esri/core/workers/chunks/fc4fd9db056579e09bfe.js +0 -1
  997. package/assets/esri/core/workers/chunks/fd4907fa96f55128764d.js +0 -1
  998. package/views/3d/webgl-engine/core/shaderModules/BooleanUniform.js +0 -5
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.24/esri/copyright.txt for details.
4
4
  */
5
- import{_ as s}from"../../../chunks/tslib.es6.js";import o from"../../../core/Accessor.js";import{property as r}from"../../../core/accessorSupport/decorators/property.js";import"../../../core/arrayUtils.js";import"../../../core/has.js";import"../../../core/accessorSupport/ensureType.js";import{subclass as e}from"../../../core/accessorSupport/decorators/subclass.js";import{AnalysisView3D as t}from"./AnalysisView3D.js";let i=class extends(t(o)){constructor(s){super(s),this.type="dimensioning-view-3d",this.interactive=!1}};s([r()],i.prototype,"type",void 0),s([r()],i.prototype,"analysis",void 0),s([r({type:Boolean})],i.prototype,"interactive",void 0),i=s([e("esri.views.3d.analysis.DimensioningAnalysisView3D")],i);const p=i;export{p as default};
5
+ import{_ as i}from"../../../chunks/tslib.es6.js";import s from"../../../core/Accessor.js";import{destroyMaybe as o}from"../../../core/maybe.js";import{property as t}from"../../../core/accessorSupport/decorators/property.js";import"../../../core/arrayUtils.js";import"../../../core/has.js";import"../../../core/accessorSupport/ensureType.js";import{subclass as e}from"../../../core/accessorSupport/decorators/subclass.js";import{AnalysisView3D as r}from"./AnalysisView3D.js";import{DimensioningVisualization as a}from"./Dimensioning/DimensioningVisualization.js";let n=class extends(r(s)){constructor(i){super(i),this.type="dimensioning-view-3d",this.interactive=!1}initialize(){this._analysisVisualization=new a({view:this.view,analysis:this.analysis})}destroy(){this._analysisVisualization=o(this._analysisVisualization)}get testInfo(){return{visualization:this._analysisVisualization}}};i([t({readOnly:!0})],n.prototype,"type",void 0),i([t({constructOnly:!0,nonNullable:!0})],n.prototype,"analysis",void 0),i([t({type:Boolean})],n.prototype,"interactive",void 0),i([t()],n.prototype,"_analysisVisualization",void 0),n=i([e("esri.views.3d.analysis.DimensioningAnalysisView3D")],n);const p=n;export{p as default};
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.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/Handles.js";import s from"../../../../core/Logger.js";import{destroyMaybe as o,isNone as r,isSome as n}from"../../../../core/maybe.js";import{createQuantity as a}from"../../../../core/quantityUtils.js";import{when as c,watch as l,syncAndInitial as m}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 d}from"../../../../core/accessorSupport/decorators/subclass.js";import{i as h}from"../../../../chunks/vec3.js";import{c as u}from"../../../../chunks/vec3f64.js";import{geodesicLength as v}from"../../../../geometry/geometryEngine.js";import f from"../../../../geometry/Polyline.js";import{canProjectWithoutEngine as _,projectPointToVector as j,projectPointToWGS84ComparableLonLat as y}from"../../../../geometry/projection.js";import{getSphericalPCPF as g,SphericalECEFSpatialReference as D,WGS84ECEFSpatialReference as P}from"../../../../geometry/projectionEllipsoid.js";import{isSupported as w,geodesicLengths as z,inverseGeodeticSolver as A}from"../../../../geometry/support/geodesicUtils.js";import{MeasurementMode as R}from"../interfaces.js";import{applyProjectionAndElevationAlignment as E,logFailedGeometryProjectionError as b}from"../support/projectionUtils.js";import{UnitNormalizer as M}from"../support/UnitNormalizer.js";const S=s.getLogger("esri.views.3d.analysis.DirectLineMeasurement.DirectLineMeasurementController"),C=1e5;let L=class extends t{constructor(e){super(e),this._unitNormalizer=new M,this._handles=new i,this._tempStartPosition=u(),this._tempEndPosition=u(),this._tempCornerPosition=u()}initialize(){this._handles.add(c((()=>{var e;return null==(e=this.view)?void 0:e.ready}),(()=>this._initialize()),{once:!0,sync:!0,initial:!0}))}destroy(){this._handles=o(this._handles)}_initialize(){const e=this.view.spatialReference,t=g(e),i=t===D?P:t;this._sphericalPCPF=i;const s=_(e,i);this._unitNormalizer.spatialReference=s?i:e,this._handles.add([l((()=>({viewData:this.viewData,startPoint:this.analysis.startPoint})),(({viewData:e,startPoint:t})=>{e.elevationAlignedStartPoint=this._applyProjectionAndElevationAlignment(t)}),m),l((()=>({viewData:this.viewData,endPoint:this.analysis.endPoint})),(({viewData:e,endPoint:t})=>{e.elevationAlignedEndPoint=this._applyProjectionAndElevationAlignment(t)}),m),l((()=>({result:this._computedResult,viewData:this.viewData})),(({result:e,viewData:t})=>{t.result=e}),m)])}_applyProjectionAndElevationAlignment(e){if(r(e))return e;const t=E(e,this.view.spatialReference,this.view.elevationProvider);return r(t)?(b(this.analysis,e.spatialReference,S),null):t}get _computedResult(){const{elevationAlignedStartPoint:e,elevationAlignedEndPoint:t,measurementMode:i}=this.viewData;if(r(e)||r(t))return null;const s=this._euclideanDistances(e,t),o=this._geodesicDistance(e,t,s.horizontal.value),n=i===R.Geodesic||i===R.Auto&&s.horizontal.value>C?"geodesic":"euclidean";return{mode:n,distance:"euclidean"===n?s.direct:o,directDistance:s.direct,horizontalDistance:s.horizontal,verticalDistance:s.vertical,geodesicDistance:o}}_euclideanDistances(e,t){const i=e.clone();i.z=t.z;const s=this._tempStartPosition,o=this._tempEndPosition,r=this._tempCornerPosition,n=this.view.spatialReference,c=this._sphericalPCPF,l=_(n,c)?c:n;j(e,s,l),j(t,o,l),j(i,r,l);const m=h(s,o),p=h(r,o),d=Math.abs(t.z-e.z),u=e=>this._unitNormalizer.normalizeDistance(e),v=u(m),f=u(p),y=u(d);return{direct:a(v,"meters"),horizontal:a(f,"meters"),vertical:a(y,"meters")}}_geodesicDistance(e,t,i){const s=e.spatialReference,o=new f({spatialReference:s});o.addPath([e,t]);const r=s.isGeographic&&w(s)?z([o],"meters")[0]:s.isWebMercator?v(o,"meters"):null,c=n(r)?r:this._fallbackGeodesicDistance(e,t,i);return a(c,"meters")}_fallbackGeodesicDistance(e,t,i){if(y(e,U)&&y(t,k)){const e={distance:0};return A(e,U,k),e.distance}return i}};e([p()],L.prototype,"view",void 0),e([p()],L.prototype,"analysis",void 0),e([p()],L.prototype,"viewData",void 0),e([p()],L.prototype,"_computedResult",null),L=e([d("esri.views.3d.analysis.DirectLineMeasurement.DirectLineMeasurementController")],L);const U=u(),k=u();export{L as DirectLineMeasurementController};
5
+ import{_ as e}from"../../../../chunks/tslib.es6.js";import t from"../../../../core/Accessor.js";import i from"../../../../core/Handles.js";import s from"../../../../core/Logger.js";import{destroyMaybe as o,isNone as r,isSome as n}from"../../../../core/maybe.js";import{createQuantity as a}from"../../../../core/quantityUtils.js";import{when as c,watch as l,syncAndInitial as m}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 d}from"../../../../core/accessorSupport/decorators/subclass.js";import{i as h}from"../../../../chunks/vec3.js";import{c as u}from"../../../../chunks/vec3f64.js";import{geodesicLength as v}from"../../../../geometry/geometryEngine.js";import f from"../../../../geometry/Polyline.js";import{canProjectWithoutEngine as _,projectPointToVector as j,projectPointToWGS84ComparableLonLat as y}from"../../../../geometry/projection.js";import{getSphericalPCPF as g,SphericalECEFSpatialReference as D,WGS84ECEFSpatialReference as P}from"../../../../geometry/projectionEllipsoid.js";import{isSupported as w,geodesicLengths as z,inverseGeodeticSolver as A}from"../../../../geometry/support/geodesicUtils.js";import{MeasurementMode as R}from"../interfaces.js";import{applyProjectionAndElevationAlignment as E,logFailedGeometryProjectionError as b}from"../support/projectionUtils.js";import{UnitNormalizer as M}from"../support/UnitNormalizer.js";const S=s.getLogger("esri.views.3d.analysis.DirectLineMeasurement.DirectLineMeasurementController"),C=1e5;let L=class extends t{constructor(e){super(e),this._unitNormalizer=new M,this._handles=new i,this._tempStartPosition=u(),this._tempEndPosition=u(),this._tempCornerPosition=u()}initialize(){this._handles.add(c((()=>this.view?.ready),(()=>this._initialize()),{once:!0,sync:!0,initial:!0}))}destroy(){this._handles=o(this._handles)}_initialize(){const e=this.view.spatialReference,t=g(e),i=t===D?P:t;this._sphericalPCPF=i;const s=_(e,i);this._unitNormalizer.spatialReference=s?i:e,this._handles.add([l((()=>({viewData:this.viewData,startPoint:this.analysis.startPoint})),(({viewData:e,startPoint:t})=>{e.elevationAlignedStartPoint=this._applyProjectionAndElevationAlignment(t)}),m),l((()=>({viewData:this.viewData,endPoint:this.analysis.endPoint})),(({viewData:e,endPoint:t})=>{e.elevationAlignedEndPoint=this._applyProjectionAndElevationAlignment(t)}),m),l((()=>({result:this._computedResult,viewData:this.viewData})),(({result:e,viewData:t})=>{t.result=e}),m)])}_applyProjectionAndElevationAlignment(e){if(r(e))return e;const t=E(e,this.view.spatialReference,this.view.elevationProvider);return r(t)?(b(this.analysis,e.spatialReference,S),null):t}get _computedResult(){const{elevationAlignedStartPoint:e,elevationAlignedEndPoint:t,measurementMode:i}=this.viewData;if(r(e)||r(t))return null;const s=this._euclideanDistances(e,t),o=this._geodesicDistance(e,t,s.horizontal.value),n=i===R.Geodesic||i===R.Auto&&s.horizontal.value>C?"geodesic":"euclidean";return{mode:n,distance:"euclidean"===n?s.direct:o,directDistance:s.direct,horizontalDistance:s.horizontal,verticalDistance:s.vertical,geodesicDistance:o}}_euclideanDistances(e,t){const i=e.clone();i.z=t.z;const s=this._tempStartPosition,o=this._tempEndPosition,r=this._tempCornerPosition,n=this.view.spatialReference,c=this._sphericalPCPF,l=_(n,c)?c:n;j(e,s,l),j(t,o,l),j(i,r,l);const m=h(s,o),p=h(r,o),d=Math.abs(t.z-e.z),u=e=>this._unitNormalizer.normalizeDistance(e),v=u(m),f=u(p),y=u(d);return{direct:a(v,"meters"),horizontal:a(f,"meters"),vertical:a(y,"meters")}}_geodesicDistance(e,t,i){const s=e.spatialReference,o=new f({spatialReference:s});o.addPath([e,t]);const r=s.isGeographic&&w(s)?z([o],"meters")[0]:s.isWebMercator?v(o,"meters"):null,c=n(r)?r:this._fallbackGeodesicDistance(e,t,i);return a(c,"meters")}_fallbackGeodesicDistance(e,t,i){if(y(e,U)&&y(t,k)){const e={distance:0};return A(e,U,k),e.distance}return i}};e([p()],L.prototype,"view",void 0),e([p()],L.prototype,"analysis",void 0),e([p()],L.prototype,"viewData",void 0),e([p()],L.prototype,"_computedResult",null),L=e([d("esri.views.3d.analysis.DirectLineMeasurement.DirectLineMeasurementController")],L);const U=u(),k=u();export{L as DirectLineMeasurementController};
@@ -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"../../../../intl.js";import t from"../../../../core/Accessor.js";import i from"../../../../core/Handles.js";import{nextHighestPowerOfTen as s,deg2rad as n}from"../../../../core/mathUtils.js";import{isNone as a,destroyMaybe as r,isSome as o}from"../../../../core/maybe.js";import{formatDecimal as l,formatImperialLength as c,formatImperialVerticalLength as d,formatMetricLength as h,formatMetricVerticalLength as u}from"../../../../core/quantityFormatUtils.js";import{toUnit as m}from"../../../../core/quantityUtils.js";import{when as g,watch as p,syncAndInitial as _,whenOnce as v}from"../../../../core/reactiveUtils.js";import{createRenderScreenPointArray3 as b,createRenderScreenPointArray as L}from"../../../../core/screenUtils.js";import{preferredImperialLengthUnit as w,convertUnit as y}from"../../../../core/unitUtils.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 f}from"../../../../core/accessorSupport/decorators/subclass.js";import{i as P}from"../../../../chunks/vec2.js";import{g as A,a as E}from"../../../../chunks/vec3.js";import{c as V}from"../../../../chunks/vec3f64.js";import{f as j}from"../../../../chunks/vec4f32.js";import{MeasurementMode as z}from"../interfaces.js";import{VisualElementOrientation as D,ViewMode as M}from"./interfaces.js";import{screenSpaceTangent as O}from"../support/viewUtils.js";import{LabelVisualElement as G,mirrorPosition as C}from"../../interactive/visualElements/LabelVisualElement.js";import{LineVisualElement as x}from"../../interactive/visualElements/LineVisualElement.js";import{MeasurementArrowVisualElement as T}from"../../interactive/visualElements/MeasurementArrowVisualElement.js";import{RightAngleQuadVisualElement as H}from"../../interactive/visualElements/RightAngleQuadVisualElement.js";import{GeodesicSegment as R,EuclideanSegment as k}from"../../interactive/visualElements/support/Segment.js";import{RenderOccludedFlag as F}from"../../webgl-engine/lib/Material.js";import{createStipplePatternSimple as U}from"../../webgl-engine/materials/lineStippleUtils.js";import{onLocaleChange as W}from"../../../../intl/locale.js";import{fetchMessageBundle as Q}from"../../../../intl/messages.js";var q;!function(e){e[e.Pending=0]="Pending",e[e.Ready=1]="Ready",e[e.Destroyed=2]="Destroyed"}(q||(q={}));let B=class extends t{constructor(e){super(e),this._params={...J},this._handles=new i,this._segmentVisualElement=null,this._triangleVisualElement=null,this._rightAngleQuad=null,this._projectedGeodesicLine=null,this._geodesicStartHint=null,this._geodesicEndHint=null,this._segmentLabel=null,this._verticalLabel=null,this._horizontalLabel=null,this._startPosition=V(),this._endPosition=V(),this._cornerPosition=V(),this._startPositionAtSeaLevel=V(),this._endPositionAtSeaLevel=V(),this._state=q.Pending,this._triangleOrientationOverride=null,this.messages=null,this.loadingMessages=!0,this.visualElementOrientation=D.Auto,this.triangleCollapseRatioThreshold=.03}get ready(){return this._state===q.Ready}get visible(){return this.analysisView.visible}get viewMode(){const{elevationAlignedStartPoint:e,elevationAlignedEndPoint:t}=this.analysisView;if(a(e)||a(t)||e.equals(t))return M.None;const i=this.analysisView.result;if(a(i))return M.Direct;if("geodesic"===i.mode)return this._requiresGeodesicGuideAt(this._startPosition)||this._requiresGeodesicGuideAt(this._endPosition)?M.ProjectedGeodesic:M.Direct;const{verticalDistance:s,horizontalDistance:n}=i,r=s.value,o=n.value;return Math.min(r/o,o/r)<this.triangleCollapseRatioThreshold?M.Direct:M.Triangle}get actualVisualizedMeasurement(){if(a(this.analysisView.result))switch(this.analysisView.measurementMode){case z.Auto:case z.Euclidean:default:return"euclidean";case z.Geodesic:return"geodesic"}return this.analysisView.result.mode}get allowVisualElementsOrientationChange(){return a(this._triangleOrientationOverride)}set allowVisualElementsOrientationChange(e){a(this._triangleOrientationOverride)!==e&&(a(this._triangleOrientationOverride)?this._triangleOrientationOverride=this._actualVisualElementsOrientation:this._triangleOrientationOverride=null)}get labels(){const e="geodesic"===this.actualVisualizedMeasurement;return{direct:this._segmentLabel,horizontal:e?this._segmentLabel:this._horizontalLabel,vertical:this._verticalLabel}}get testData(){var e;return{labels:this.labels,stripeLength:null==(e=this._segmentVisualElement)?void 0:e.stripeLength}}initialize(){this._handles.add(g((()=>this.view.ready),(()=>this._initialize()),{once:!0,sync:!0,initial:!0}))}_initialize(){switch(this._state){case q.Ready:throw new Error("invalid state");case q.Destroyed:return}const e=this._params,t={attached:!0,view:this.view};this._segmentVisualElement=new T({...t,geometry:null,renderOccluded:F.OccludeAndTransparent}),this._triangleVisualElement=new x({...t,width:e.triangleLineWidth,color:e.triangleColor,renderOccluded:F.OccludeAndTransparent}),this._rightAngleQuad=new H({...t,color:I,renderOccluded:F.OccludeAndTransparent});const i={...t,polygonOffset:!0,renderOccluded:F.OccludeAndTransparent};this._projectedGeodesicLine=new x({...i,width:e.geodesicProjectionLineWidth,color:e.geodesicProjectionLineColor,stipplePattern:U(e.guideStippleLengthPixels)}),this._geodesicStartHint=new x({...i,width:e.guideLineWidth,color:e.geodesicProjectionLineColor,stipplePattern:U(e.guideStippleLengthPixels)}),this._geodesicEndHint=new x({...i,width:e.guideLineWidth,color:e.geodesicProjectionLineColor,stipplePattern:U(e.guideStippleLengthPixels)}),this._segmentLabel=new G({...t,fontSize:e.direcLabelFontSize}),this._verticalLabel=new G({...t,fontSize:e.verticalLabelFontSize}),this._horizontalLabel=new G({...t,fontSize:e.horizontalLabelFontSize}),this._handles.add([p((()=>{const{elevationAlignedStartPoint:e,elevationAlignedEndPoint:t}=this.analysisView,i=this.view;return{view:i,camera:i.state.camera,viewMode:this.viewMode,elevationAlignedStartPoint:e,elevationAlignedEndPoint:t,orientation:this._actualVisualElementsOrientation,visualizedMeasurement:this.actualVisualizedMeasurement,stripeLength:this._measurementArrowStripeLength}}),(e=>this._updateGeometryAndViewMode(e)),_),p((()=>({visible:this.visible,viewMode:this.viewMode})),(e=>this._updateVisualElementVisibility(e)),_),p((()=>({text:this._labelsText,visualizedMeasurement:this.actualVisualizedMeasurement})),(e=>this._updateLabelText(e)),_),p((()=>({visible:this.visible,viewMode:this.viewMode,state:this._state})),(e=>this._updateLabelVisibility(e)),_),p((()=>this._measurementArrowStripeLength),(e=>this._updateSegmentStripeLength(e)),_),W((async()=>this._updateMessageBundle()))]),this._state=q.Ready,this._updateMessageBundle()}destroy(){this._state!==q.Destroyed&&(this._handles=r(this._handles),this._segmentVisualElement=r(this._segmentVisualElement),this._triangleVisualElement=r(this._triangleVisualElement),this._rightAngleQuad=r(this._rightAngleQuad),this._projectedGeodesicLine=r(this._projectedGeodesicLine),this._geodesicStartHint=r(this._geodesicStartHint),this._geodesicEndHint=r(this._geodesicEndHint),this._segmentLabel=r(this._segmentLabel),this._verticalLabel=r(this._verticalLabel),this._horizontalLabel=r(this._horizontalLabel),this.set("view",null),this._state=q.Destroyed)}async whenReady(){await v((()=>this.ready))}_updateVisualElementVisibility({visible:e,viewMode:t}){if(this._segmentVisualElement.visible=!1,this._triangleVisualElement.visible=!1,this._rightAngleQuad.visible=!1,this._projectedGeodesicLine.visible=!1,this._geodesicStartHint.visible=!1,this._geodesicEndHint.visible=!1,e)switch(t){case M.None:break;case M.Direct:this._segmentVisualElement.visible=!0;break;case M.Triangle:this._segmentVisualElement.visible=!0,this._triangleVisualElement.visible=!0,this._rightAngleQuad.visible=!0;break;case M.ProjectedGeodesic:this._segmentVisualElement.visible=!0,this._projectedGeodesicLine.visible=!0,this._geodesicStartHint.visible=!0,this._geodesicEndHint.visible=!0}}_updateGeometryAndViewMode({view:e,camera:t,viewMode:i,elevationAlignedStartPoint:s,elevationAlignedEndPoint:n,orientation:r,visualizedMeasurement:o,stripeLength:l}){const c=e.renderCoordsHelper;if(a(c)||a(s)||a(n)||s.equals(n))return;let d=this._startPosition,h=this._endPosition;c.toRenderCoords(s,d),c.toRenderCoords(n,h);const u=r===D.AboveSegment?1:-1,m=u*(c.getAltitude(h)-c.getAltitude(d));m<0&&(d=this._endPosition,h=this._startPosition);const g="geodesic"===o?new R(this._startPosition,this._endPosition,c.spatialReference):new k(this._startPosition,this._endPosition);switch(this._segmentVisualElement.geometry=g,this._updateSegmentStripeLength(l),i){case M.Direct:this._updateSegment(g,r);break;case M.Triangle:this._updateSegmentAndTriangle({view:e,camera:t,segment:g,orientation:r,startPosition:d,endPosition:h,deltaSign:u,altitudeDelta:m});break;case M.ProjectedGeodesic:this._updateSegmentAndProjection({view:e,orientation:r,startPosition:d,endPosition:h})}}_updateSegment(e,t){this._segmentLabel.anchor=t===D.AboveSegment?"top":"bottom",this._segmentLabel.geometry={type:"segment",segment:e,sampleLocation:"center"}}_updateSegmentAndTriangle({view:{renderCoordsHelper:e},camera:t,segment:i,orientation:s,startPosition:n,endPosition:a,deltaSign:r,altitudeDelta:o}){const l=this._cornerPosition;e.worldUpAtPosition(n,l),A(l,l,r*Math.abs(o)),E(l,l,n),this._triangleVisualElement.geometry=[[[n[0],n[1],n[2]],[l[0],l[1],l[2]],[a[0],a[1],a[2]]]],this._rightAngleQuad.geometry={previous:n,center:l,next:a};const c=new k(n,l),d=new k(l,a),h=N(n,a,l,s,t);this._segmentLabel.anchor=h.segment,this._segmentLabel.geometry={type:"segment",segment:i,sampleLocation:"center"},this._verticalLabel.geometry={type:"segment",segment:c,sampleLocation:"center"},this._verticalLabel.anchor=h.vertical,this._horizontalLabel.geometry={type:"segment",segment:d,sampleLocation:"center"},this._horizontalLabel.anchor=h.horizontal}_updateSegmentAndProjection({view:{renderCoordsHelper:e},orientation:t,startPosition:i,endPosition:s}){e.setAltitude(this._startPositionAtSeaLevel,0,i),e.setAltitude(this._endPositionAtSeaLevel,0,s);const n=new R(this._startPositionAtSeaLevel,this._endPositionAtSeaLevel,e.spatialReference);this._projectedGeodesicLine.setGeometryFromSegment(n),this._geodesicStartHint.setGeometryFromSegment(new k(this._startPositionAtSeaLevel,i)),this._geodesicEndHint.setGeometryFromSegment(new k(this._endPositionAtSeaLevel,s)),this._segmentLabel.geometry={type:"segment",segment:n,sampleLocation:"center"},this._segmentLabel.anchor=t===D.AboveSegment?"top":"bottom"}_updateLabelText({text:e,visualizedMeasurement:t}){o(e)?(this._segmentLabel.text="euclidean"===t?e.euclideanDistance:e.geodesicDistance,this._horizontalLabel.text=e.horizontalDistance,this._verticalLabel.text=e.verticalDistance):(this._segmentLabel.text=null,this._horizontalLabel.text=null,this._verticalLabel.text=null),this.notifyChange("labels")}_updateLabelVisibility({state:e,visible:t,viewMode:i}){if(e!==q.Ready)return;const s=this._segmentLabel,n=this._horizontalLabel,a=this._verticalLabel;if(s.visible=!1,n.visible=!1,a.visible=!1,t)switch(i){case M.Direct:s.visible=!0;break;case M.Triangle:s.visible=!0,n.visible=!0,a.visible=!0;break;case M.ProjectedGeodesic:s.visible=!0;case M.None:}}get _labelsText(){if(this._state!==q.Ready)return null;const e=this.messages,t=this.analysisView.result;if(a(t)||a(e))return null;const{directDistance:i,horizontalDistance:s,verticalDistance:n,geodesicDistance:r}=t,o=this.analysisView.unit,m=e=>({euclideanDistance:"",geodesicDistance:"",horizontalDistance:"",verticalDistance:"",...e});switch(o){case"metric":return m({euclideanDistance:i&&h(e,i),geodesicDistance:r&&h(e,r),horizontalDistance:s&&h(e,s),verticalDistance:n&&u(e,n)});case"imperial":return m({euclideanDistance:i&&c(e,i),geodesicDistance:r&&c(e,r),horizontalDistance:s&&c(e,s),verticalDistance:n&&d(e,n)});default:return m({euclideanDistance:i&&l(e,i,o),geodesicDistance:r&&l(e,r,o),horizontalDistance:s&&l(e,s,o),verticalDistance:n&&l(e,n,o)})}}_updateSegmentStripeLength(e){const t=this._segmentVisualElement;o(e)?(t.stripeLength=e,t.stripesEnabled=!0):t.stripesEnabled=!1}get _actualVisualElementsOrientation(){if(o(this._triangleOrientationOverride))return this._triangleOrientationOverride;const e=this.visualElementOrientation;return e===D.Auto?this.view.state.camera.aboveGround?D.AboveSegment:D.BelowSegment:e}_requiresGeodesicGuideAt(e){const t=this.view;if(null==t||!t.state)return!1;const i=t.state.camera,s=t.renderCoordsHelper,n=i.computeScreenPixelSizeAt(e);return s.getAltitude(e)/n>=10}get _measurementArrowStripeLength(){const{result:e,unit:t}=this.analysisView;if(a(e))return null;let i=null;const n=e.directDistance;switch(t){case"metric":i=n&&m(n,"meters");break;case"imperial":i=n&&m(n,w(n.value,n.unit));break;default:i=n&&m(n,t)}if(a(i))return null;return s(i.value/30)*y(1,i.unit,"meters")}_updateMessageBundle(){this.loadingMessages=!0,Q("esri/core/t9n/Units").then((e=>{this.messages=e})).finally((()=>{this.loadingMessages=!1}))}};function N(e,t,i,s,n){const a=X,r=Y;n.projectToRenderScreen(i,a),n.projectToRenderScreen(t,r);const o={segment:"bottom",horizontal:"top",vertical:a[0]<r[0]?"left":"right"};{const s=Z,a=$;if(O(e,i,s,n),O(e,t,a,n),P(s,a)>=K){const e=Math.sign(s[1])===Math.sign(a[1]);o.segment=e?C(o.vertical):o.vertical}else{const e=ee;O(i,t,e,n),P(e,a)>=K&&(o.segment=Math.sign(e[0])===Math.sign(a[0])?C(o.horizontal):o.horizontal)}}if(s===D.BelowSegment){const e=e=>"top"===e?"bottom":"top";o.segment=e(o.segment),o.horizontal=e(o.horizontal),o.vertical=e(o.vertical)}return o}e([S()],B.prototype,"_state",void 0),e([S()],B.prototype,"_triangleOrientationOverride",void 0),e([S()],B.prototype,"messages",void 0),e([S()],B.prototype,"view",void 0),e([S()],B.prototype,"analysis",void 0),e([S()],B.prototype,"analysisView",void 0),e([S()],B.prototype,"ready",null),e([S()],B.prototype,"loadingMessages",void 0),e([S()],B.prototype,"visible",null),e([S()],B.prototype,"viewMode",null),e([S()],B.prototype,"actualVisualizedMeasurement",null),e([S()],B.prototype,"visualElementOrientation",void 0),e([S()],B.prototype,"triangleCollapseRatioThreshold",void 0),e([S()],B.prototype,"allowVisualElementsOrientationChange",null),e([S()],B.prototype,"labels",null),e([S()],B.prototype,"testData",null),e([S()],B.prototype,"_labelsText",null),e([S()],B.prototype,"_actualVisualElementsOrientation",null),e([S()],B.prototype,"_measurementArrowStripeLength",null),B=e([f("esri.views.3d.analysis.DirectLineMeasurement.DirectLineMeasurementVisualization")],B);const I=j(1,.5,0,.75),J={laserLineGlowColor:[1,.5,0],laserLineGlowWidth:8,laserLineGlowFalloff:8,laserLineInnerColor:[1,1,1],laserLineInnerWidth:.75,laserLineGlobalAlpha:.75,laserLineEnabled:!0,handleColor:[1,.5,0],handleOpacity:.5,handleRadius:5,triangleColor:I,triangleLineWidth:3,triangleCornerSize:32,triangleSubdivisions:128,arrowWidth:16,arrowOutlineColor:[1,.5,0,1],arrowOutlineWidth:.2,arrowStripeEvenColor:[1,1,1,1],arrowStripeOddColor:[1,.5,0,1],arrowStripeLength:16,arrowSubdivisions:128,geodesicProjectionLineWidth:2,geodesicProjectionLineColor:I,guideLineWidth:2,guideLineColor:I,guideStippleLengthPixels:6,labelDistance:25,direcLabelFontSize:16,horizontalLabelFontSize:12,verticalLabelFontSize:12},K=Math.cos(n(12)),X=b(),Y=b(),Z=L(),$=L(),ee=L();export{B as DirectLineMeasurementVisualization,q as State};
5
+ import{_ as e}from"../../../../chunks/tslib.es6.js";import"../../../../intl.js";import t from"../../../../core/Accessor.js";import i from"../../../../core/Handles.js";import{nextHighestPowerOfTen as s,deg2rad as n}from"../../../../core/mathUtils.js";import{isNone as a,destroyMaybe as r,isSome as o}from"../../../../core/maybe.js";import{formatDecimal as l,formatImperialLength as c,formatImperialVerticalLength as d,formatMetricLength as h,formatMetricVerticalLength as u}from"../../../../core/quantityFormatUtils.js";import{toUnit as m}from"../../../../core/quantityUtils.js";import{when as g,watch as p,syncAndInitial as _,whenOnce as v}from"../../../../core/reactiveUtils.js";import{createRenderScreenPointArray3 as b,createRenderScreenPointArray as L}from"../../../../core/screenUtils.js";import{preferredImperialLengthUnit as w,convertUnit as y}from"../../../../core/unitUtils.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 f}from"../../../../core/accessorSupport/decorators/subclass.js";import{i as P}from"../../../../chunks/vec2.js";import{g as A,a as E}from"../../../../chunks/vec3.js";import{c as V}from"../../../../chunks/vec3f64.js";import{f as j}from"../../../../chunks/vec4f32.js";import{MeasurementMode as z}from"../interfaces.js";import{VisualElementOrientation as D,ViewMode as M}from"./interfaces.js";import{screenSpaceTangent as O}from"../support/viewUtils.js";import{LabelVisualElement as G,mirrorPosition as C}from"../../interactive/visualElements/LabelVisualElement.js";import{LineVisualElement as x}from"../../interactive/visualElements/LineVisualElement.js";import{MeasurementArrowVisualElement as T}from"../../interactive/visualElements/MeasurementArrowVisualElement.js";import{RightAngleQuadVisualElement as H}from"../../interactive/visualElements/RightAngleQuadVisualElement.js";import{GeodesicSegment as R,EuclideanSegment as k}from"../../interactive/visualElements/support/Segment.js";import{RenderOccludedFlag as F}from"../../webgl-engine/lib/Material.js";import{createStipplePatternSimple as U}from"../../webgl-engine/materials/lineStippleUtils.js";import{onLocaleChange as W}from"../../../../intl/locale.js";import{fetchMessageBundle as Q}from"../../../../intl/messages.js";var q;!function(e){e[e.Pending=0]="Pending",e[e.Ready=1]="Ready",e[e.Destroyed=2]="Destroyed"}(q||(q={}));let B=class extends t{constructor(e){super(e),this._params={...J},this._handles=new i,this._segmentVisualElement=null,this._triangleVisualElement=null,this._rightAngleQuad=null,this._projectedGeodesicLine=null,this._geodesicStartHint=null,this._geodesicEndHint=null,this._segmentLabel=null,this._verticalLabel=null,this._horizontalLabel=null,this._startPosition=V(),this._endPosition=V(),this._cornerPosition=V(),this._startPositionAtSeaLevel=V(),this._endPositionAtSeaLevel=V(),this._state=q.Pending,this._triangleOrientationOverride=null,this.messages=null,this.loadingMessages=!0,this.visualElementOrientation=D.Auto,this.triangleCollapseRatioThreshold=.03}get ready(){return this._state===q.Ready}get visible(){return this.analysisView.visible}get viewMode(){const{elevationAlignedStartPoint:e,elevationAlignedEndPoint:t}=this.analysisView;if(a(e)||a(t)||e.equals(t))return M.None;const i=this.analysisView.result;if(a(i))return M.Direct;if("geodesic"===i.mode)return this._requiresGeodesicGuideAt(this._startPosition)||this._requiresGeodesicGuideAt(this._endPosition)?M.ProjectedGeodesic:M.Direct;const{verticalDistance:s,horizontalDistance:n}=i,r=s.value,o=n.value;return Math.min(r/o,o/r)<this.triangleCollapseRatioThreshold?M.Direct:M.Triangle}get actualVisualizedMeasurement(){if(a(this.analysisView.result))switch(this.analysisView.measurementMode){case z.Auto:case z.Euclidean:default:return"euclidean";case z.Geodesic:return"geodesic"}return this.analysisView.result.mode}get allowVisualElementsOrientationChange(){return a(this._triangleOrientationOverride)}set allowVisualElementsOrientationChange(e){a(this._triangleOrientationOverride)!==e&&(a(this._triangleOrientationOverride)?this._triangleOrientationOverride=this._actualVisualElementsOrientation:this._triangleOrientationOverride=null)}get labels(){const e="geodesic"===this.actualVisualizedMeasurement;return{direct:this._segmentLabel,horizontal:e?this._segmentLabel:this._horizontalLabel,vertical:this._verticalLabel}}get testData(){return{labels:this.labels,stripeLength:this._segmentVisualElement?.stripeLength}}initialize(){this._handles.add(g((()=>this.view.ready),(()=>this._initialize()),{once:!0,sync:!0,initial:!0}))}_initialize(){switch(this._state){case q.Ready:throw new Error("invalid state");case q.Destroyed:return}const e=this._params,t={attached:!0,view:this.view};this._segmentVisualElement=new T({...t,geometry:null,renderOccluded:F.OccludeAndTransparent}),this._triangleVisualElement=new x({...t,width:e.triangleLineWidth,color:e.triangleColor,renderOccluded:F.OccludeAndTransparent}),this._rightAngleQuad=new H({...t,color:I,renderOccluded:F.OccludeAndTransparent});const i={...t,polygonOffset:!0,renderOccluded:F.OccludeAndTransparent};this._projectedGeodesicLine=new x({...i,width:e.geodesicProjectionLineWidth,color:e.geodesicProjectionLineColor,stipplePattern:U(e.guideStippleLengthPixels)}),this._geodesicStartHint=new x({...i,width:e.guideLineWidth,color:e.geodesicProjectionLineColor,stipplePattern:U(e.guideStippleLengthPixels)}),this._geodesicEndHint=new x({...i,width:e.guideLineWidth,color:e.geodesicProjectionLineColor,stipplePattern:U(e.guideStippleLengthPixels)}),this._segmentLabel=new G({...t,fontSize:e.direcLabelFontSize}),this._verticalLabel=new G({...t,fontSize:e.verticalLabelFontSize}),this._horizontalLabel=new G({...t,fontSize:e.horizontalLabelFontSize}),this._handles.add([p((()=>{const{elevationAlignedStartPoint:e,elevationAlignedEndPoint:t}=this.analysisView,i=this.view;return{view:i,camera:i.state.camera,viewMode:this.viewMode,elevationAlignedStartPoint:e,elevationAlignedEndPoint:t,orientation:this._actualVisualElementsOrientation,visualizedMeasurement:this.actualVisualizedMeasurement,stripeLength:this._measurementArrowStripeLength}}),(e=>this._updateGeometryAndViewMode(e)),_),p((()=>({visible:this.visible,viewMode:this.viewMode})),(e=>this._updateVisualElementVisibility(e)),_),p((()=>({text:this._labelsText,visualizedMeasurement:this.actualVisualizedMeasurement})),(e=>this._updateLabelText(e)),_),p((()=>({visible:this.visible,viewMode:this.viewMode,state:this._state})),(e=>this._updateLabelVisibility(e)),_),p((()=>this._measurementArrowStripeLength),(e=>this._updateSegmentStripeLength(e)),_),W((async()=>this._updateMessageBundle()))]),this._state=q.Ready,this._updateMessageBundle()}destroy(){this._state!==q.Destroyed&&(this._handles=r(this._handles),this._segmentVisualElement=r(this._segmentVisualElement),this._triangleVisualElement=r(this._triangleVisualElement),this._rightAngleQuad=r(this._rightAngleQuad),this._projectedGeodesicLine=r(this._projectedGeodesicLine),this._geodesicStartHint=r(this._geodesicStartHint),this._geodesicEndHint=r(this._geodesicEndHint),this._segmentLabel=r(this._segmentLabel),this._verticalLabel=r(this._verticalLabel),this._horizontalLabel=r(this._horizontalLabel),this.set("view",null),this._state=q.Destroyed)}async whenReady(){await v((()=>this.ready))}_updateVisualElementVisibility({visible:e,viewMode:t}){if(this._segmentVisualElement.visible=!1,this._triangleVisualElement.visible=!1,this._rightAngleQuad.visible=!1,this._projectedGeodesicLine.visible=!1,this._geodesicStartHint.visible=!1,this._geodesicEndHint.visible=!1,e)switch(t){case M.None:break;case M.Direct:this._segmentVisualElement.visible=!0;break;case M.Triangle:this._segmentVisualElement.visible=!0,this._triangleVisualElement.visible=!0,this._rightAngleQuad.visible=!0;break;case M.ProjectedGeodesic:this._segmentVisualElement.visible=!0,this._projectedGeodesicLine.visible=!0,this._geodesicStartHint.visible=!0,this._geodesicEndHint.visible=!0}}_updateGeometryAndViewMode({view:e,camera:t,viewMode:i,elevationAlignedStartPoint:s,elevationAlignedEndPoint:n,orientation:r,visualizedMeasurement:o,stripeLength:l}){const c=e.renderCoordsHelper;if(a(c)||a(s)||a(n)||s.equals(n))return;let d=this._startPosition,h=this._endPosition;c.toRenderCoords(s,d),c.toRenderCoords(n,h);const u=r===D.AboveSegment?1:-1,m=u*(c.getAltitude(h)-c.getAltitude(d));m<0&&(d=this._endPosition,h=this._startPosition);const g="geodesic"===o?new R(this._startPosition,this._endPosition,c.spatialReference):new k(this._startPosition,this._endPosition);switch(this._segmentVisualElement.geometry=g,this._updateSegmentStripeLength(l),i){case M.Direct:this._updateSegment(g,r);break;case M.Triangle:this._updateSegmentAndTriangle({view:e,camera:t,segment:g,orientation:r,startPosition:d,endPosition:h,deltaSign:u,altitudeDelta:m});break;case M.ProjectedGeodesic:this._updateSegmentAndProjection({view:e,orientation:r,startPosition:d,endPosition:h})}}_updateSegment(e,t){this._segmentLabel.anchor=t===D.AboveSegment?"top":"bottom",this._segmentLabel.geometry={type:"segment",segment:e,sampleLocation:"center"}}_updateSegmentAndTriangle({view:{renderCoordsHelper:e},camera:t,segment:i,orientation:s,startPosition:n,endPosition:a,deltaSign:r,altitudeDelta:o}){const l=this._cornerPosition;e.worldUpAtPosition(n,l),A(l,l,r*Math.abs(o)),E(l,l,n),this._triangleVisualElement.geometry=[[[n[0],n[1],n[2]],[l[0],l[1],l[2]],[a[0],a[1],a[2]]]],this._rightAngleQuad.geometry={previous:n,center:l,next:a};const c=new k(n,l),d=new k(l,a),h=N(n,a,l,s,t);this._segmentLabel.anchor=h.segment,this._segmentLabel.geometry={type:"segment",segment:i,sampleLocation:"center"},this._verticalLabel.geometry={type:"segment",segment:c,sampleLocation:"center"},this._verticalLabel.anchor=h.vertical,this._horizontalLabel.geometry={type:"segment",segment:d,sampleLocation:"center"},this._horizontalLabel.anchor=h.horizontal}_updateSegmentAndProjection({view:{renderCoordsHelper:e},orientation:t,startPosition:i,endPosition:s}){e.setAltitude(this._startPositionAtSeaLevel,0,i),e.setAltitude(this._endPositionAtSeaLevel,0,s);const n=new R(this._startPositionAtSeaLevel,this._endPositionAtSeaLevel,e.spatialReference);this._projectedGeodesicLine.setGeometryFromSegment(n),this._geodesicStartHint.setGeometryFromSegment(new k(this._startPositionAtSeaLevel,i)),this._geodesicEndHint.setGeometryFromSegment(new k(this._endPositionAtSeaLevel,s)),this._segmentLabel.geometry={type:"segment",segment:n,sampleLocation:"center"},this._segmentLabel.anchor=t===D.AboveSegment?"top":"bottom"}_updateLabelText({text:e,visualizedMeasurement:t}){o(e)?(this._segmentLabel.text="euclidean"===t?e.euclideanDistance:e.geodesicDistance,this._horizontalLabel.text=e.horizontalDistance,this._verticalLabel.text=e.verticalDistance):(this._segmentLabel.text=null,this._horizontalLabel.text=null,this._verticalLabel.text=null),this.notifyChange("labels")}_updateLabelVisibility({state:e,visible:t,viewMode:i}){if(e!==q.Ready)return;const s=this._segmentLabel,n=this._horizontalLabel,a=this._verticalLabel;if(s.visible=!1,n.visible=!1,a.visible=!1,t)switch(i){case M.Direct:s.visible=!0;break;case M.Triangle:s.visible=!0,n.visible=!0,a.visible=!0;break;case M.ProjectedGeodesic:s.visible=!0;case M.None:}}get _labelsText(){if(this._state!==q.Ready)return null;const e=this.messages,t=this.analysisView.result;if(a(t)||a(e))return null;const{directDistance:i,horizontalDistance:s,verticalDistance:n,geodesicDistance:r}=t,o=this.analysisView.unit,m=e=>({euclideanDistance:"",geodesicDistance:"",horizontalDistance:"",verticalDistance:"",...e});switch(o){case"metric":return m({euclideanDistance:i&&h(e,i),geodesicDistance:r&&h(e,r),horizontalDistance:s&&h(e,s),verticalDistance:n&&u(e,n)});case"imperial":return m({euclideanDistance:i&&c(e,i),geodesicDistance:r&&c(e,r),horizontalDistance:s&&c(e,s),verticalDistance:n&&d(e,n)});default:return m({euclideanDistance:i&&l(e,i,o),geodesicDistance:r&&l(e,r,o),horizontalDistance:s&&l(e,s,o),verticalDistance:n&&l(e,n,o)})}}_updateSegmentStripeLength(e){const t=this._segmentVisualElement;o(e)?(t.stripeLength=e,t.stripesEnabled=!0):t.stripesEnabled=!1}get _actualVisualElementsOrientation(){if(o(this._triangleOrientationOverride))return this._triangleOrientationOverride;const e=this.visualElementOrientation;return e===D.Auto?this.view.state.camera.aboveGround?D.AboveSegment:D.BelowSegment:e}_requiresGeodesicGuideAt(e){const t=this.view;if(!t?.state)return!1;const i=t.state.camera,s=t.renderCoordsHelper,n=i.computeScreenPixelSizeAt(e);return s.getAltitude(e)/n>=10}get _measurementArrowStripeLength(){const{result:e,unit:t}=this.analysisView;if(a(e))return null;let i=null;const n=e.directDistance;switch(t){case"metric":i=n&&m(n,"meters");break;case"imperial":i=n&&m(n,w(n.value,n.unit));break;default:i=n&&m(n,t)}if(a(i))return null;return s(i.value/30)*y(1,i.unit,"meters")}_updateMessageBundle(){this.loadingMessages=!0,Q("esri/core/t9n/Units").then((e=>{this.messages=e})).finally((()=>{this.loadingMessages=!1}))}};function N(e,t,i,s,n){const a=X,r=Y;n.projectToRenderScreen(i,a),n.projectToRenderScreen(t,r);const o={segment:"bottom",horizontal:"top",vertical:a[0]<r[0]?"left":"right"};{const s=Z,a=$;if(O(e,i,s,n),O(e,t,a,n),P(s,a)>=K){const e=Math.sign(s[1])===Math.sign(a[1]);o.segment=e?C(o.vertical):o.vertical}else{const e=ee;O(i,t,e,n),P(e,a)>=K&&(o.segment=Math.sign(e[0])===Math.sign(a[0])?C(o.horizontal):o.horizontal)}}if(s===D.BelowSegment){const e=e=>"top"===e?"bottom":"top";o.segment=e(o.segment),o.horizontal=e(o.horizontal),o.vertical=e(o.vertical)}return o}e([S()],B.prototype,"_state",void 0),e([S()],B.prototype,"_triangleOrientationOverride",void 0),e([S()],B.prototype,"messages",void 0),e([S()],B.prototype,"view",void 0),e([S()],B.prototype,"analysis",void 0),e([S()],B.prototype,"analysisView",void 0),e([S()],B.prototype,"ready",null),e([S()],B.prototype,"loadingMessages",void 0),e([S()],B.prototype,"visible",null),e([S()],B.prototype,"viewMode",null),e([S()],B.prototype,"actualVisualizedMeasurement",null),e([S()],B.prototype,"visualElementOrientation",void 0),e([S()],B.prototype,"triangleCollapseRatioThreshold",void 0),e([S()],B.prototype,"allowVisualElementsOrientationChange",null),e([S()],B.prototype,"labels",null),e([S()],B.prototype,"testData",null),e([S()],B.prototype,"_labelsText",null),e([S()],B.prototype,"_actualVisualElementsOrientation",null),e([S()],B.prototype,"_measurementArrowStripeLength",null),B=e([f("esri.views.3d.analysis.DirectLineMeasurement.DirectLineMeasurementVisualization")],B);const I=j(1,.5,0,.75),J={laserLineGlowColor:[1,.5,0],laserLineGlowWidth:8,laserLineGlowFalloff:8,laserLineInnerColor:[1,1,1],laserLineInnerWidth:.75,laserLineGlobalAlpha:.75,laserLineEnabled:!0,handleColor:[1,.5,0],handleOpacity:.5,handleRadius:5,triangleColor:I,triangleLineWidth:3,triangleCornerSize:32,triangleSubdivisions:128,arrowWidth:16,arrowOutlineColor:[1,.5,0,1],arrowOutlineWidth:.2,arrowStripeEvenColor:[1,1,1,1],arrowStripeOddColor:[1,.5,0,1],arrowStripeLength:16,arrowSubdivisions:128,geodesicProjectionLineWidth:2,geodesicProjectionLineColor:I,guideLineWidth:2,guideLineColor:I,guideStippleLengthPixels:6,labelDistance:25,direcLabelFontSize:16,horizontalLabelFontSize:12,verticalLabelFontSize:12},K=Math.cos(n(12)),X=b(),Y=b(),Z=L(),$=L(),ee=L();export{B as DirectLineMeasurementVisualization,q as State};
@@ -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{destroyMaybe as e,unwrapOr as a}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 l}from"../../../core/accessorSupport/decorators/subclass.js";import{defaultUnitPropertyMetadata as n}from"../../../properties/defaultUnit.js";import{AnalysisView3D as o}from"./AnalysisView3D.js";import{MeasurementMode as r}from"./interfaces.js";import{DirectLineMeasurementController as u}from"./DirectLineMeasurement/DirectLineMeasurementController.js";import{DirectLineMeasurementVisualization as p}from"./DirectLineMeasurement/DirectLineMeasurementVisualization.js";let y=class extends(o(i)){constructor(t){super(t),this.type="direct-line-measurement-view-3d",this.result=null,this.measurementMode=r.Auto,this.elevationAlignedStartPoint=null,this.elevationAlignedEndPoint=null,this.interactive=!1}initialize(){const t=this.view,i=this.analysis;this._analysisVisualization=new p({view:t,analysis:i,analysisView:this}),this._analysisController=new u({view:t,analysis:i,viewData:this})}destroy(){this._analysisController=e(this._analysisController),this._analysisVisualization=e(this._analysisVisualization)}whenReady(){return this._analysisVisualization.whenReady()}get updating(){var t;return!(null==(t=this._analysisVisualization)||!t.loadingMessages)}get viewMode(){return this._analysisVisualization.viewMode}get actualVisualizedMeasurement(){return this._analysisVisualization.actualVisualizedMeasurement}get visualElementOrientation(){return this._analysisVisualization.visualElementOrientation}set visualElementOrientation(t){this._analysisVisualization.visualElementOrientation=t}get allowVisualElementsOrientationChange(){return this._analysisVisualization.allowVisualElementsOrientationChange}set allowVisualElementsOrientationChange(t){this._analysisVisualization.allowVisualElementsOrientationChange=t}get triangleCollapseRatioThreshold(){return this._analysisVisualization.triangleCollapseRatioThreshold}set triangleCollapseRatioThreshold(t){this._analysisVisualization.triangleCollapseRatioThreshold=t}get directLabelText(){return this._analysisVisualization.labels.direct.text}get horizontalLabelText(){return this._analysisVisualization.labels.horizontal.text}get verticalLabelText(){return this._analysisVisualization.labels.vertical.text}get testData(){var t;return this.destroyed?{labels:null,stripeLength:null,visualization:null,controller:null}:{...null==(t=this._analysisVisualization)?void 0:t.testData,visualization:this._analysisVisualization,controller:this._analysisController}}get unit(){return a(this.analysis.unit,this._defaultUnit)}};t([s()],y.prototype,"updating",null),t([s()],y.prototype,"type",void 0),t([s()],y.prototype,"analysis",void 0),t([s()],y.prototype,"result",void 0),t([s()],y.prototype,"measurementMode",void 0),t([s()],y.prototype,"elevationAlignedStartPoint",void 0),t([s()],y.prototype,"elevationAlignedEndPoint",void 0),t([s({readOnly:!0})],y.prototype,"viewMode",null),t([s({readOnly:!0})],y.prototype,"actualVisualizedMeasurement",null),t([s()],y.prototype,"visualElementOrientation",null),t([s()],y.prototype,"allowVisualElementsOrientationChange",null),t([s()],y.prototype,"triangleCollapseRatioThreshold",null),t([s({readOnly:!0})],y.prototype,"directLabelText",null),t([s({readOnly:!0})],y.prototype,"horizontalLabelText",null),t([s({readOnly:!0})],y.prototype,"verticalLabelText",null),t([s()],y.prototype,"interactive",void 0),t([s()],y.prototype,"testData",null),t([s()],y.prototype,"_analysisVisualization",void 0),t([s()],y.prototype,"_analysisController",void 0),t([s()],y.prototype,"unit",null),t([s(n)],y.prototype,"_defaultUnit",void 0),y=t([l("esri.views.3d.analysis.DirectLineMeasurementAnalysisView3D")],y);const h=y;export{h as default};
5
+ import{_ as t}from"../../../chunks/tslib.es6.js";import e from"../../../core/Accessor.js";import{destroyMaybe as i,unwrapOr as a}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 l}from"../../../core/accessorSupport/decorators/subclass.js";import{defaultUnitPropertyMetadata as n}from"../../../properties/defaultUnit.js";import{AnalysisView3D as o}from"./AnalysisView3D.js";import{MeasurementMode as r}from"./interfaces.js";import{DirectLineMeasurementController as u}from"./DirectLineMeasurement/DirectLineMeasurementController.js";import{DirectLineMeasurementVisualization as p}from"./DirectLineMeasurement/DirectLineMeasurementVisualization.js";let y=class extends(o(e)){constructor(t){super(t),this.type="direct-line-measurement-view-3d",this.result=null,this.measurementMode=r.Auto,this.elevationAlignedStartPoint=null,this.elevationAlignedEndPoint=null,this.interactive=!1}initialize(){const t=this.view,e=this.analysis;this._analysisVisualization=new p({view:t,analysis:e,analysisView:this}),this._analysisController=new u({view:t,analysis:e,viewData:this})}destroy(){this._analysisController=i(this._analysisController),this._analysisVisualization=i(this._analysisVisualization)}whenReady(){return this._analysisVisualization.whenReady()}get updating(){return!!this._analysisVisualization?.loadingMessages}get viewMode(){return this._analysisVisualization.viewMode}get actualVisualizedMeasurement(){return this._analysisVisualization.actualVisualizedMeasurement}get visualElementOrientation(){return this._analysisVisualization.visualElementOrientation}set visualElementOrientation(t){this._analysisVisualization.visualElementOrientation=t}get allowVisualElementsOrientationChange(){return this._analysisVisualization.allowVisualElementsOrientationChange}set allowVisualElementsOrientationChange(t){this._analysisVisualization.allowVisualElementsOrientationChange=t}get triangleCollapseRatioThreshold(){return this._analysisVisualization.triangleCollapseRatioThreshold}set triangleCollapseRatioThreshold(t){this._analysisVisualization.triangleCollapseRatioThreshold=t}get directLabelText(){return this._analysisVisualization.labels.direct.text}get horizontalLabelText(){return this._analysisVisualization.labels.horizontal.text}get verticalLabelText(){return this._analysisVisualization.labels.vertical.text}get testData(){return this.destroyed?{labels:null,stripeLength:null,visualization:null,controller:null}:{...this._analysisVisualization?.testData,visualization:this._analysisVisualization,controller:this._analysisController}}get unit(){return a(this.analysis.unit,this._defaultUnit)}};t([s()],y.prototype,"updating",null),t([s({readOnly:!0})],y.prototype,"type",void 0),t([s({constructOnly:!0,nonNullable:!0})],y.prototype,"analysis",void 0),t([s()],y.prototype,"result",void 0),t([s()],y.prototype,"measurementMode",void 0),t([s()],y.prototype,"elevationAlignedStartPoint",void 0),t([s()],y.prototype,"elevationAlignedEndPoint",void 0),t([s({readOnly:!0})],y.prototype,"viewMode",null),t([s({readOnly:!0})],y.prototype,"actualVisualizedMeasurement",null),t([s()],y.prototype,"visualElementOrientation",null),t([s()],y.prototype,"allowVisualElementsOrientationChange",null),t([s()],y.prototype,"triangleCollapseRatioThreshold",null),t([s({readOnly:!0})],y.prototype,"directLabelText",null),t([s({readOnly:!0})],y.prototype,"horizontalLabelText",null),t([s({readOnly:!0})],y.prototype,"verticalLabelText",null),t([s()],y.prototype,"interactive",void 0),t([s()],y.prototype,"testData",null),t([s()],y.prototype,"_analysisVisualization",void 0),t([s()],y.prototype,"_analysisController",void 0),t([s()],y.prototype,"unit",null),t([s(n)],y.prototype,"_defaultUnit",void 0),y=t([l("esri.views.3d.analysis.DirectLineMeasurementAnalysisView3D")],y);const h=y;export{h as default};
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.24/esri/copyright.txt for details.
4
4
  */
5
- import{_ as e}from"../../../../chunks/tslib.es6.js";import"../../../../geometry.js";import{getFeatureId as t}from"../../../../analysis/analysisUtils.js";import o from"../../../../core/Accessor.js";import i from"../../../../core/Evented.js";import n from"../../../../core/Handles.js";import{handlesGroup as r,makeHandle as s}from"../../../../core/handleUtils.js";import a from"../../../../core/Logger.js";import{isSome as l,isNone as c,abortMaybe as u,removeMaybe as p,unwrapOr as d,none as h}from"../../../../core/maybe.js";import{createTask as g,ignoreAbortErrors as m}from"../../../../core/promiseUtils.js";import{watch as v,syncAndInitial as _,sync as f}from"../../../../core/reactiveUtils.js";import{property as b}from"../../../../core/accessorSupport/decorators/property.js";import"../../../../core/arrayUtils.js";import"../../../../core/has.js";import"../../../../core/accessorSupport/ensureType.js";import{subclass as y}from"../../../../core/accessorSupport/decorators/subclass.js";import{c as C,b as T,n as I,g as O,a as P,j as S,v as w}from"../../../../chunks/vec3.js";import{c as j}from"../../../../chunks/vec3f64.js";import{WatchUpdatingTracking as E}from"../../../../core/support/WatchUpdatingTracking.js";import{tryProjectWithZConversion as R,projectPoint as A,projectBoundingRect as L}from"../../../../geometry/projection.js";import{containsPointObject as F,intersectsSegment as V,empty as x}from"../../../../geometry/support/aaBoundingRect.js";import{fromPoints as H,create as k}from"../../../../geometry/support/ray.js";import{zValueInAbsoluteHeightMode as D}from"../../../../support/elevationInfoUtils.js";import{LineOfSightAnalysisResult as N}from"../LineOfSightAnalysisResult.js";import{LineOfSightComputation as z}from"./LineOfSightComputation.js";import{LineOfSightRayIntersector as U}from"./LineOfSightRayIntersector.js";import{logFailedGeometryProjectionError as M}from"../support/projectionUtils.js";import{StoreResults as G}from"../../webgl-engine/lib/IntersectorInterfaces.js";import{toGraphic as B}from"../../webgl-engine/lib/intersectorUtilsConversions.js";import{ImmediateTask as W,TaskPriority as Z}from"../../../support/Scheduler.js";import q from"../../../../geometry/Point.js";const J=a.getLogger("esri.views.3d.analysis.LineOfSight.LineOfSightController");let K=class extends(i.EventedMixin(o)){constructor(e){super(e),this.updateOnCameraChange=!0,this._effectiveObserverElevationMode="absolute-height",this._observerFeatureId=null,this._updatingHandles=new E,this._frameTask=W,this._handles=new n,this._computationHandles=new n,this._externalObserverUpdate=!0}initialize(){var e;const t=null==(e=this.view.resourceController)?void 0:e.scheduler;this._frameTask=t?t.registerTask(Z.LINE_OF_SIGHT_TOOL):W,this._intersector=new U({view:this.view}),this._handles.add([this._connectObserver(),this._connectComputations(),this._connectTargets()])}destroy(){this._handles.destroy(),this._computationHandles.destroy(),this._computations.removeAll(),this._updatingHandles.destroy()}get updating(){return this._frameTask.updating||this._updatingHandles.updating}get priority(){return this._frameTask.priority}set priority(e){this._frameTask.priority=e}get _computations(){return this.analysisViewData.computations}get _elevationAlignedObserverPositionRenderSpace(){return this.analysisViewData.observerEngineLocation}set _elevationAlignedObserverPositionRenderSpace(e){this.analysisViewData.observerEngineLocation=e}get _screenPixelSize(){return this.view.state.camera.computeScreenPixelSizeAt(this._elevationAlignedObserverPositionRenderSpace)}getLineOfSightComputationDependencies(e){const{inputPoints:t}=e;return{inputPoints:t}}_computeResult(e){const t=e.computation,{inputPoints:o,computationResult:i}=t,{observerAdjusted:n,targetAdjusted:r}=o,{start:s,end:a}=i;C(s,n),C(a,r);this._canCompute(t)?this._computeIntersection(e):this._interpolateIntersection(e),t.notifyResultChanged(),this.emit("result-changed",{target:e.computation.target,result:t.result})}_adjustStartEndPositions(e){const t=this._screenPixelSize,o=this.view,{inputPoints:i}=e,{observer:n,observerSurfaceNormal:r,target:s,targetSurfaceNormal:a,observerAdjusted:c,targetAdjusted:u}=i,p=X;l(r)?C(p,r):T(p,s,n);const d=t;I(p,p),O(p,p,Math.min(d,1)),P(c,n,p),l(a)?C(p,a):T(p,n,s);const h=o.state.camera.computeScreenPixelSizeAt(s);I(p,p),O(p,p,Math.min(h,1)),P(u,s,p)}_computeIntersection({computation:e,interpolationInfo:o}){const{view:i}=this,{sceneIntersectionHelper:n,renderCoordsHelper:r}=i;if(c(n))return;const s=this._intersector.intersector,{computationResult:a,inputPoints:u}=e,{observer:p,target:d,observerFeatureId:h,targetFeatureId:g}=u,{start:m,end:v}=a,_=H(m,v,Y);s.options.store=l(h)||l(g)?G.ALL:G.MIN,n.intersectToolIntersectorRay(_,s);let f=null;if(l(h)||l(g))for(const l of s.results.all){const e=B(l,this.view);if(c(e)){f=l;break}const o=t(e);if(o!==h&&o!==g){f=l;break}}else f=s.results.min;const b=a.intersection,y=X;let T=!0;if(l(f)&&f.getIntersectionPoint(b)){C(o.originalIntersection,b),C(o.originalObserver,m),C(o.originalTarget,v),r.fromRenderCoords(b,y,i.spatialReference);const e=1-S(v,d)/S(m,d);T=S(p,b)>=e*S(p,d)}const I=new q(y,i.spatialReference);{const{result:t,target:o}=e;l(t)?(t.target=o,t.intersectedGraphic=T?null:B(f,i),t.intersectedLocation=T?null:I,t.visible=T):e.result=new N({target:o,elevationAlignedTargetLocation:e.elevationAlignedTargetLocation,intersectedGraphic:T?null:B(f,i),intersectedLocation:T?null:I,visible:T})}a.isValid=u.isValid=!0,a.isTargetVisible=T}_interpolateIntersection({computation:e,interpolationInfo:t}){const{computationResult:o,inputPoints:i}=e,{start:n,end:r,intersection:s}=o,{originalIntersection:a,originalObserver:l,originalTarget:c}=t;if(C(s,a),i.isValid){const e=X,t=S(l,a)/S(l,c);w(e,n,l),O(e,e,1-t),P(s,s,e),w(e,r,c),O(e,e,t),P(s,s,e),o.isValid=!0}else e.result=null,o.isValid=!1,o.isTargetVisible=!1}_canCompute(e){const t=this.analysisViewData.elevationAlignedObserver,o=this.view.frustum;if(c(t)||c(e.elevationAlignedTargetLocation)||c(o))return!1;const{observerAdjusted:i,targetAdjusted:n}=e.inputPoints,r=o.intersectsPoint(i),s=o.intersectsPoint(n);return r&&s}_onObserverPositionChange(e,o,i,n){if(this._externalObserverUpdate=n,c(e))return this.analysisViewData.elevationAlignedObserver=null,void(this._observerFeatureId=null);const r=R(e,this.view.spatialReference);if(c(r))return M(this.analysis,e.spatialReference,J),void(this.analysisViewData.elevationAlignedObserver=null);const s=this._getEffectiveElevationInfo(r,o);r.z=D(r.x,r.y,r.z,this.view.spatialReference,this.view,s),this._effectiveObserverElevationMode=s.mode,this.analysisViewData.elevationAlignedObserver=r;const a=j();this.view.renderCoordsHelper.toRenderCoords(r,a),this._elevationAlignedObserverPositionRenderSpace=a,this._observerFeatureId=t(i),this.priority=Z.LINE_OF_SIGHT_TOOL_INTERACTIVE}_onObserverRenderSpacePositionChangeForComputation(e,t,o,i){const{inputPoints:n}=e;switch(C(n.observer,t),o){case"on-the-ground":case"relative-to-ground":n.observerSurfaceNormal=this._intersector.adjustFromGroundIntersection(t,n.observer);break;case"relative-to-scene":case"absolute-height":n.observerSurfaceNormal=null}n.observerFeatureId=i,this._adjustStartEndPositions(e),e.notifyInputPointsChanged(),this.priority=Z.LINE_OF_SIGHT_TOOL_INTERACTIVE}_onTargetPositionChange(e,o,i,n,r=!0){const s=e.inputPoints;r&&(s.isValid=!1);const a=R(o,this.view.spatialReference);if(c(a))return M(this.analysis,o.spatialReference,J),e.elevationAlignedTargetLocation=null,void e.notifyInputPointsChanged();const l=this._getEffectiveElevationInfo(a,i);switch(a.z=D(a.x,a.y,a.z,this.view.spatialReference,this.view,l),e.elevationAlignedTargetLocation=a,this.view.renderCoordsHelper.toRenderCoords(e.elevationAlignedTargetLocation,s.target),l.mode){case"on-the-ground":case"relative-to-ground":s.targetSurfaceNormal=this._intersector.adjustFromGroundIntersection(s.target,s.targetAdjusted);break;case"relative-to-scene":case"absolute-height":s.targetSurfaceNormal=null}s.targetFeatureId=t(n),this._adjustStartEndPositions(e),e.notifyInputPointsChanged(),this.priority=Z.LINE_OF_SIGHT_TOOL_INTERACTIVE}_connectComputationToTarget(e){return r([v((()=>({computation:e,targetPosition:e.target.position,targetElevationInfo:e.target.elevationInfo,targetFeatureInfo:e.target.excludedFeature})),(({computation:e,targetPosition:t,targetElevationInfo:o,targetFeatureInfo:i})=>{l(t)&&this._onTargetPositionChange(e,t,o,i)}),_)])}_connectComputationToObserver(e){return v((()=>({computation:e,observer:this.analysisViewData.elevationAlignedObserver})),(({computation:e})=>{this._externalObserverUpdate&&(e.inputPoints.isValid=!1,e.notifyInputPointsChanged())}),_)}_connectComputationToRenderSpaceObserver(e){return v((()=>({computation:e,observer:this._elevationAlignedObserverPositionRenderSpace,observerElevationMode:this._effectiveObserverElevationMode,observerFeatureId:this._observerFeatureId})),(({computation:e,observer:t,observerElevationMode:o,observerFeatureId:i})=>{this._onObserverRenderSpacePositionChangeForComputation(e,t,o,i)}),_)}_connectComputationToCamera(e){return v((()=>({camera:this.view.state.camera,isDirty:this._isCameraDirty})),(({isDirty:t})=>{!this.updateOnCameraChange||e.inputPoints.isValid&&!t||e.notifyInputPointsChanged()}),f)}_connectComputationToSlicePlane(e){return v((()=>this.view.slicePlane),(()=>e.notifyInputPointsChanged()))}_connectComputationToElevation(e){return this.view.elevationProvider.on("elevation-change",(t=>{const o=this.analysis.observer,i=e.target;let n=null,r=null,s=null,a=null,u=null,p=null;const d=l(o)&&l(o.position)?o.position.spatialReference:l(i.position)?i.position.spatialReference:t.spatialReference;l(o)&&l(o.position)&&(n=ee,r=o.elevationInfo,s=o.excludedFeature,A(o.position,n,d)),l(i.position)&&(a=te,u=i.elevationInfo,p=i.excludedFeature,A(i.position,a,d)),c(n)&&c(a)||(L(t.extent,t.spatialReference,$,d),l(n)&&F($,n)&&this._onObserverPositionChange(n,r,s,!1),l(a)&&F($,a)&&this._onTargetPositionChange(e,a,u,p,!1),l(n)&&l(a)&&V($,n,a)&&e.notifyInputPointsChanged())}))}_connectComputationToTask(e){let t=h;const o={computation:e,interpolationInfo:{originalIntersection:j(),originalObserver:j(),originalTarget:j()}};return r([v((()=>this.getLineOfSightComputationDependencies(e)),(()=>{t=u(t),t=g((async e=>{await m(this._frameTask.schedule((()=>this._computeResult(o)),e))}))}),_),s((()=>t=u(t)))])}_connectComputation(e){const t=this._computationHandles;t.has(e)||t.add([this._connectComputationToTarget(e),this._connectComputationToObserver(e),this._connectComputationToRenderSpaceObserver(e),this._connectComputationToCamera(e),this._connectComputationToSlicePlane(e),this._connectComputationToElevation(e),this._connectComputationToTask(e)],e)}_disconnectAnalysis(e){this._computationHandles.remove(e)}_onComputationCollectionChange(e){e.added.forEach((e=>this._connectComputation(e))),e.removed.forEach((e=>this._disconnectAnalysis(e)))}_onTargetsChange(){return this._computations.removeAll(),this.analysis.targets.forEach((e=>this._addTarget(e))),this._updatingHandles.addOnCollectionChange((()=>this.analysis.targets),(e=>this._onTargetCollectionChange(e)))}_onTargetCollectionChange(e){e.added.forEach((e=>this._addTarget(e))),e.removed.forEach((e=>this._removeTarget(e)))}_onCursorTargetChange(e,t){l(t)&&this._removeTarget(t),l(e)&&this._addTarget(e)}_addTarget(e){this._computations.some((t=>t.target===e))||this._computations.add(new z({target:e}))}_removeTarget(e){const t=this._computations.find((t=>t.target===e));this._computations.remove(t)}_connectObserver(){return r([v((()=>({observerPosition:l(this.analysis.observer)?this.analysis.observer.position:null,observerElevationInfo:l(this.analysis.observer)?this.analysis.observer.elevationInfo:null,observerFeatureInfo:l(this.analysis.observer)?this.analysis.observer.excludedFeature:null})),(({observerPosition:e,observerElevationInfo:t,observerFeatureInfo:o})=>this._onObserverPositionChange(e,t,o,!0)),_)])}_connectComputations(){let e=null;return r([v((()=>this._computations),(()=>{p(e),e=this._updatingHandles.addOnCollectionChange((()=>this._computations),(e=>this._onComputationCollectionChange(e))),this._computations.forEach((e=>this._connectComputation(e)))}),_),s((()=>e=p(e)))])}_connectTargets(){let e=null;return r([v((()=>this.analysis.targets),(()=>{e=p(e),e=this._onTargetsChange()}),_),v((()=>this.analysisViewData.cursorTarget),((e,t)=>{this._onCursorTargetChange(e,t)})),s((()=>{e=p(e)}))])}get _isCameraDirty(){const e=this.analysisViewData.elevationAlignedObserver,{view:t}=this,{renderCoordsHelper:o}=t;if(c(e)||c(o))return!1;const i=X;o.toRenderCoords(e,i);const n=t.state.camera.computeScreenPixelSizeAt(i);return Math.abs((n-this._screenPixelSize)/this._screenPixelSize)>Q}_getEffectiveElevationInfo(e,t){return e.hasZ?d(t,{mode:"absolute-height",offset:0}):{mode:"on-the-ground",offset:0}}};e([b({constructOnly:!0})],K.prototype,"analysis",void 0),e([b({constructOnly:!0})],K.prototype,"analysisViewData",void 0),e([b({constructOnly:!0})],K.prototype,"view",void 0),e([b()],K.prototype,"updating",null),e([b()],K.prototype,"priority",null),e([b()],K.prototype,"updateOnCameraChange",void 0),e([b()],K.prototype,"_computations",null),e([b()],K.prototype,"_elevationAlignedObserverPositionRenderSpace",null),e([b()],K.prototype,"_effectiveObserverElevationMode",void 0),e([b()],K.prototype,"_observerFeatureId",void 0),e([b()],K.prototype,"_screenPixelSize",null),e([b({readOnly:!0})],K.prototype,"_updatingHandles",void 0),e([b()],K.prototype,"_frameTask",void 0),e([b()],K.prototype,"_isCameraDirty",null),K=e([y("esri.views.3d.analysis.LineOfSight.LineOfSightController")],K);const Q=.1,X=j(),Y=k(),$=x(),ee=new q,te=new q;export{K as LineOfSightController};
5
+ import{_ as e}from"../../../../chunks/tslib.es6.js";import"../../../../geometry.js";import{getFeatureId as t}from"../../../../analysis/analysisUtils.js";import o from"../../../../core/Accessor.js";import i from"../../../../core/Evented.js";import n from"../../../../core/Handles.js";import{handlesGroup as r,makeHandle as s}from"../../../../core/handleUtils.js";import a from"../../../../core/Logger.js";import{isSome as l,isNone as c,abortMaybe as u,removeMaybe as p,unwrapOr as d,none as h}from"../../../../core/maybe.js";import{createTask as g,ignoreAbortErrors as m}from"../../../../core/promiseUtils.js";import{watch as v,syncAndInitial as _,sync as f}from"../../../../core/reactiveUtils.js";import{property as b}from"../../../../core/accessorSupport/decorators/property.js";import"../../../../core/arrayUtils.js";import"../../../../core/has.js";import"../../../../core/accessorSupport/ensureType.js";import{subclass as y}from"../../../../core/accessorSupport/decorators/subclass.js";import{c as C,b as T,n as I,g as O,a as P,j as S,v as w}from"../../../../chunks/vec3.js";import{c as j}from"../../../../chunks/vec3f64.js";import{WatchUpdatingTracking as E}from"../../../../core/support/WatchUpdatingTracking.js";import{tryProjectWithZConversion as R,projectPoint as A,projectBoundingRect as L}from"../../../../geometry/projection.js";import{containsPointObject as F,intersectsSegment as V,empty as x}from"../../../../geometry/support/aaBoundingRect.js";import{fromPoints as H,create as k}from"../../../../geometry/support/ray.js";import{zValueInAbsoluteHeightMode as D}from"../../../../support/elevationInfoUtils.js";import{LineOfSightAnalysisResult as N}from"../LineOfSightAnalysisResult.js";import{LineOfSightComputation as z}from"./LineOfSightComputation.js";import{LineOfSightRayIntersector as U}from"./LineOfSightRayIntersector.js";import{logFailedGeometryProjectionError as M}from"../support/projectionUtils.js";import{StoreResults as G}from"../../webgl-engine/lib/IntersectorInterfaces.js";import{toGraphic as B}from"../../webgl-engine/lib/intersectorUtilsConversions.js";import{ImmediateTask as W,TaskPriority as Z}from"../../../support/Scheduler.js";import q from"../../../../geometry/Point.js";const J=a.getLogger("esri.views.3d.analysis.LineOfSight.LineOfSightController");let K=class extends(i.EventedMixin(o)){constructor(e){super(e),this.updateOnCameraChange=!0,this._effectiveObserverElevationMode="absolute-height",this._observerFeatureId=null,this._updatingHandles=new E,this._frameTask=W,this._handles=new n,this._computationHandles=new n,this._externalObserverUpdate=!0}initialize(){const e=this.view.resourceController?.scheduler;this._frameTask=e?e.registerTask(Z.LINE_OF_SIGHT_TOOL):W,this._intersector=new U({view:this.view}),this._handles.add([this._connectObserver(),this._connectComputations(),this._connectTargets()])}destroy(){this._handles.destroy(),this._computationHandles.destroy(),this._computations.removeAll(),this._updatingHandles.destroy()}get updating(){return this._frameTask.updating||this._updatingHandles.updating}get priority(){return this._frameTask.priority}set priority(e){this._frameTask.priority=e}get _computations(){return this.analysisViewData.computations}get _elevationAlignedObserverPositionRenderSpace(){return this.analysisViewData.observerEngineLocation}set _elevationAlignedObserverPositionRenderSpace(e){this.analysisViewData.observerEngineLocation=e}get _screenPixelSize(){return this.view.state.camera.computeScreenPixelSizeAt(this._elevationAlignedObserverPositionRenderSpace)}getLineOfSightComputationDependencies(e){const{inputPoints:t}=e;return{inputPoints:t}}_computeResult(e){const t=e.computation,{inputPoints:o,computationResult:i}=t,{observerAdjusted:n,targetAdjusted:r}=o,{start:s,end:a}=i;C(s,n),C(a,r);this._canCompute(t)?this._computeIntersection(e):this._interpolateIntersection(e),t.notifyResultChanged(),this.emit("result-changed",{target:e.computation.target,result:t.result})}_adjustStartEndPositions(e){const t=this._screenPixelSize,o=this.view,{inputPoints:i}=e,{observer:n,observerSurfaceNormal:r,target:s,targetSurfaceNormal:a,observerAdjusted:c,targetAdjusted:u}=i,p=X;l(r)?C(p,r):T(p,s,n);const d=t;I(p,p),O(p,p,Math.min(d,1)),P(c,n,p),l(a)?C(p,a):T(p,n,s);const h=o.state.camera.computeScreenPixelSizeAt(s);I(p,p),O(p,p,Math.min(h,1)),P(u,s,p)}_computeIntersection({computation:e,interpolationInfo:o}){const{view:i}=this,{sceneIntersectionHelper:n,renderCoordsHelper:r}=i;if(c(n))return;const s=this._intersector.intersector,{computationResult:a,inputPoints:u}=e,{observer:p,target:d,observerFeatureId:h,targetFeatureId:g}=u,{start:m,end:v}=a,_=H(m,v,Y);s.options.store=l(h)||l(g)?G.ALL:G.MIN,n.intersectToolIntersectorRay(_,s);let f=null;if(l(h)||l(g))for(const l of s.results.all){const e=B(l,this.view);if(c(e)){f=l;break}const o=t(e);if(o!==h&&o!==g){f=l;break}}else f=s.results.min;const b=a.intersection,y=X;let T=!0;if(l(f)&&f.getIntersectionPoint(b)){C(o.originalIntersection,b),C(o.originalObserver,m),C(o.originalTarget,v),r.fromRenderCoords(b,y,i.spatialReference);const e=1-S(v,d)/S(m,d);T=S(p,b)>=e*S(p,d)}const I=new q(y,i.spatialReference);{const{result:t,target:o}=e;l(t)?(t.target=o,t.intersectedGraphic=T?null:B(f,i),t.intersectedLocation=T?null:I,t.visible=T):e.result=new N({target:o,elevationAlignedTargetLocation:e.elevationAlignedTargetLocation,intersectedGraphic:T?null:B(f,i),intersectedLocation:T?null:I,visible:T})}a.isValid=u.isValid=!0,a.isTargetVisible=T}_interpolateIntersection({computation:e,interpolationInfo:t}){const{computationResult:o,inputPoints:i}=e,{start:n,end:r,intersection:s}=o,{originalIntersection:a,originalObserver:l,originalTarget:c}=t;if(C(s,a),i.isValid){const e=X,t=S(l,a)/S(l,c);w(e,n,l),O(e,e,1-t),P(s,s,e),w(e,r,c),O(e,e,t),P(s,s,e),o.isValid=!0}else e.result=null,o.isValid=!1,o.isTargetVisible=!1}_canCompute(e){const t=this.analysisViewData.elevationAlignedObserver,o=this.view.frustum;if(c(t)||c(e.elevationAlignedTargetLocation)||c(o))return!1;const{observerAdjusted:i,targetAdjusted:n}=e.inputPoints,r=o.intersectsPoint(i),s=o.intersectsPoint(n);return r&&s}_onObserverPositionChange(e,o,i,n){if(this._externalObserverUpdate=n,c(e))return this.analysisViewData.elevationAlignedObserver=null,void(this._observerFeatureId=null);const r=R(e,this.view.spatialReference);if(c(r))return M(this.analysis,e.spatialReference,J),void(this.analysisViewData.elevationAlignedObserver=null);const s=this._getEffectiveElevationInfo(r,o);r.z=D(r.x,r.y,r.z,this.view.spatialReference,this.view,s),this._effectiveObserverElevationMode=s.mode,this.analysisViewData.elevationAlignedObserver=r;const a=j();this.view.renderCoordsHelper.toRenderCoords(r,a),this._elevationAlignedObserverPositionRenderSpace=a,this._observerFeatureId=t(i),this.priority=Z.LINE_OF_SIGHT_TOOL_INTERACTIVE}_onObserverRenderSpacePositionChangeForComputation(e,t,o,i){const{inputPoints:n}=e;switch(C(n.observer,t),o){case"on-the-ground":case"relative-to-ground":n.observerSurfaceNormal=this._intersector.adjustFromGroundIntersection(t,n.observer);break;case"relative-to-scene":case"absolute-height":n.observerSurfaceNormal=null}n.observerFeatureId=i,this._adjustStartEndPositions(e),e.notifyInputPointsChanged(),this.priority=Z.LINE_OF_SIGHT_TOOL_INTERACTIVE}_onTargetPositionChange(e,o,i,n,r=!0){const s=e.inputPoints;r&&(s.isValid=!1);const a=R(o,this.view.spatialReference);if(c(a))return M(this.analysis,o.spatialReference,J),e.elevationAlignedTargetLocation=null,void e.notifyInputPointsChanged();const l=this._getEffectiveElevationInfo(a,i);switch(a.z=D(a.x,a.y,a.z,this.view.spatialReference,this.view,l),e.elevationAlignedTargetLocation=a,this.view.renderCoordsHelper.toRenderCoords(e.elevationAlignedTargetLocation,s.target),l.mode){case"on-the-ground":case"relative-to-ground":s.targetSurfaceNormal=this._intersector.adjustFromGroundIntersection(s.target,s.targetAdjusted);break;case"relative-to-scene":case"absolute-height":s.targetSurfaceNormal=null}s.targetFeatureId=t(n),this._adjustStartEndPositions(e),e.notifyInputPointsChanged(),this.priority=Z.LINE_OF_SIGHT_TOOL_INTERACTIVE}_connectComputationToTarget(e){return r([v((()=>({computation:e,targetPosition:e.target.position,targetElevationInfo:e.target.elevationInfo,targetFeatureInfo:e.target.excludedFeature})),(({computation:e,targetPosition:t,targetElevationInfo:o,targetFeatureInfo:i})=>{l(t)&&this._onTargetPositionChange(e,t,o,i)}),_)])}_connectComputationToObserver(e){return v((()=>({computation:e,observer:this.analysisViewData.elevationAlignedObserver})),(({computation:e})=>{this._externalObserverUpdate&&(e.inputPoints.isValid=!1,e.notifyInputPointsChanged())}),_)}_connectComputationToRenderSpaceObserver(e){return v((()=>({computation:e,observer:this._elevationAlignedObserverPositionRenderSpace,observerElevationMode:this._effectiveObserverElevationMode,observerFeatureId:this._observerFeatureId})),(({computation:e,observer:t,observerElevationMode:o,observerFeatureId:i})=>{this._onObserverRenderSpacePositionChangeForComputation(e,t,o,i)}),_)}_connectComputationToCamera(e){return v((()=>({camera:this.view.state.camera,isDirty:this._isCameraDirty})),(({isDirty:t})=>{!this.updateOnCameraChange||e.inputPoints.isValid&&!t||e.notifyInputPointsChanged()}),f)}_connectComputationToSlicePlane(e){return v((()=>this.view.slicePlane),(()=>e.notifyInputPointsChanged()))}_connectComputationToElevation(e){return this.view.elevationProvider.on("elevation-change",(t=>{const o=this.analysis.observer,i=e.target;let n=null,r=null,s=null,a=null,u=null,p=null;const d=l(o)&&l(o.position)?o.position.spatialReference:l(i.position)?i.position.spatialReference:t.spatialReference;l(o)&&l(o.position)&&(n=ee,r=o.elevationInfo,s=o.excludedFeature,A(o.position,n,d)),l(i.position)&&(a=te,u=i.elevationInfo,p=i.excludedFeature,A(i.position,a,d)),c(n)&&c(a)||(L(t.extent,t.spatialReference,$,d),l(n)&&F($,n)&&this._onObserverPositionChange(n,r,s,!1),l(a)&&F($,a)&&this._onTargetPositionChange(e,a,u,p,!1),l(n)&&l(a)&&V($,n,a)&&e.notifyInputPointsChanged())}))}_connectComputationToTask(e){let t=h;const o={computation:e,interpolationInfo:{originalIntersection:j(),originalObserver:j(),originalTarget:j()}};return r([v((()=>this.getLineOfSightComputationDependencies(e)),(()=>{t=u(t),t=g((async e=>{await m(this._frameTask.schedule((()=>this._computeResult(o)),e))}))}),_),s((()=>t=u(t)))])}_connectComputation(e){const t=this._computationHandles;t.has(e)||t.add([this._connectComputationToTarget(e),this._connectComputationToObserver(e),this._connectComputationToRenderSpaceObserver(e),this._connectComputationToCamera(e),this._connectComputationToSlicePlane(e),this._connectComputationToElevation(e),this._connectComputationToTask(e)],e)}_disconnectAnalysis(e){this._computationHandles.remove(e)}_onComputationCollectionChange(e){e.added.forEach((e=>this._connectComputation(e))),e.removed.forEach((e=>this._disconnectAnalysis(e)))}_onTargetsChange(){return this._computations.removeAll(),this.analysis.targets.forEach((e=>this._addTarget(e))),this._updatingHandles.addOnCollectionChange((()=>this.analysis.targets),(e=>this._onTargetCollectionChange(e)))}_onTargetCollectionChange(e){e.added.forEach((e=>this._addTarget(e))),e.removed.forEach((e=>this._removeTarget(e)))}_onCursorTargetChange(e,t){l(t)&&this._removeTarget(t),l(e)&&this._addTarget(e)}_addTarget(e){this._computations.some((t=>t.target===e))||this._computations.add(new z({target:e}))}_removeTarget(e){const t=this._computations.find((t=>t.target===e));this._computations.remove(t)}_connectObserver(){return r([v((()=>({observerPosition:l(this.analysis.observer)?this.analysis.observer.position:null,observerElevationInfo:l(this.analysis.observer)?this.analysis.observer.elevationInfo:null,observerFeatureInfo:l(this.analysis.observer)?this.analysis.observer.excludedFeature:null})),(({observerPosition:e,observerElevationInfo:t,observerFeatureInfo:o})=>this._onObserverPositionChange(e,t,o,!0)),_)])}_connectComputations(){let e=null;return r([v((()=>this._computations),(()=>{p(e),e=this._updatingHandles.addOnCollectionChange((()=>this._computations),(e=>this._onComputationCollectionChange(e))),this._computations.forEach((e=>this._connectComputation(e)))}),_),s((()=>e=p(e)))])}_connectTargets(){let e=null;return r([v((()=>this.analysis.targets),(()=>{e=p(e),e=this._onTargetsChange()}),_),v((()=>this.analysisViewData.cursorTarget),((e,t)=>{this._onCursorTargetChange(e,t)})),s((()=>{e=p(e)}))])}get _isCameraDirty(){const e=this.analysisViewData.elevationAlignedObserver,{view:t}=this,{renderCoordsHelper:o}=t;if(c(e)||c(o))return!1;const i=X;o.toRenderCoords(e,i);const n=t.state.camera.computeScreenPixelSizeAt(i);return Math.abs((n-this._screenPixelSize)/this._screenPixelSize)>Q}_getEffectiveElevationInfo(e,t){return e.hasZ?d(t,{mode:"absolute-height",offset:0}):{mode:"on-the-ground",offset:0}}};e([b({constructOnly:!0})],K.prototype,"analysis",void 0),e([b({constructOnly:!0})],K.prototype,"analysisViewData",void 0),e([b({constructOnly:!0})],K.prototype,"view",void 0),e([b()],K.prototype,"updating",null),e([b()],K.prototype,"priority",null),e([b()],K.prototype,"updateOnCameraChange",void 0),e([b()],K.prototype,"_computations",null),e([b()],K.prototype,"_elevationAlignedObserverPositionRenderSpace",null),e([b()],K.prototype,"_effectiveObserverElevationMode",void 0),e([b()],K.prototype,"_observerFeatureId",void 0),e([b()],K.prototype,"_screenPixelSize",null),e([b({readOnly:!0})],K.prototype,"_updatingHandles",void 0),e([b()],K.prototype,"_frameTask",void 0),e([b()],K.prototype,"_isCameraDirty",null),K=e([y("esri.views.3d.analysis.LineOfSight.LineOfSightController")],K);const Q=.1,X=j(),Y=k(),$=x(),ee=new q,te=new q;export{K as LineOfSightController};
@@ -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 o from"../../../core/Collection.js";import s from"../../../core/Evented.js";import{HandleOwnerMixin as r}from"../../../core/HandleOwner.js";import{destroyMaybe as e,isSome as n,applySome as a}from"../../../core/maybe.js";import{property as l}from"../../../core/accessorSupport/decorators/property.js";import"../../../core/arrayUtils.js";import"../../../core/has.js";import"../../../core/accessorSupport/ensureType.js";import{subclass as p}from"../../../core/accessorSupport/decorators/subclass.js";import{c as y}from"../../../chunks/vec3f64.js";import{AnalysisView3D as c}from"./AnalysisView3D.js";import{LineOfSightConfiguration as u}from"./LineOfSight/LineOfSightConfiguration.js";import{LineOfSightController as h}from"./LineOfSight/LineOfSightController.js";import{LineOfSightVisualization as m}from"./LineOfSight/LineOfSightVisualization.js";let d=class extends(c(r(s.EventedMixin(i)))){constructor(t){super(t),this.type="line-of-sight-view-3d",this.computations=new o,this.elevationAlignedObserver=null,this.configuration=new u,this.observerEngineLocation=y(),this.cursorTarget=null,this.interactive=!1}initialize(){const t=this.view,i=this.analysis;this._analysisController=new h({analysis:i,analysisViewData:this,view:t}),this._analysisVisualization=new m({analysis:i,analysisViewData:this,view:t}),this.handles.add([this._analysisController.on("result-changed",(t=>{t.target!==this.cursorTarget&&this.emit("result-changed",t)}))])}destroy(){this._analysisController=e(this._analysisController),this._analysisVisualization=e(this._analysisVisualization)}get results(){return this.computations.map((t=>t.result))}get priority(){return this._analysisController.priority}set priority(t){this._analysisController.priority=t}get updating(){return n(this._analysisController)&&this._analysisController.updating}getResultForTarget(t){const i=this.computations.find((i=>i.target===t));return a(i,(t=>t.result))}get testInfo(){return{visualization:this._analysisVisualization,controller:this._analysisController}}};t([l()],d.prototype,"type",void 0),t([l()],d.prototype,"analysis",void 0),t([l({readOnly:!0})],d.prototype,"results",null),t([l()],d.prototype,"priority",null),t([l()],d.prototype,"computations",void 0),t([l()],d.prototype,"elevationAlignedObserver",void 0),t([l()],d.prototype,"configuration",void 0),t([l()],d.prototype,"observerEngineLocation",void 0),t([l()],d.prototype,"cursorTarget",void 0),t([l()],d.prototype,"updating",null),t([l()],d.prototype,"interactive",void 0),t([l()],d.prototype,"_analysisController",void 0),t([l()],d.prototype,"_analysisVisualization",void 0),d=t([p("esri.views.3d.analysis.LineOfSightAnalysisView3D")],d);const g=d;export{g as default};
5
+ import{_ as t}from"../../../chunks/tslib.es6.js";import i from"../../../core/Accessor.js";import o from"../../../core/Collection.js";import s from"../../../core/Evented.js";import{HandleOwnerMixin as r}from"../../../core/HandleOwner.js";import{destroyMaybe as e,isSome as n,applySome as a}from"../../../core/maybe.js";import{property as l}from"../../../core/accessorSupport/decorators/property.js";import"../../../core/arrayUtils.js";import"../../../core/has.js";import"../../../core/accessorSupport/ensureType.js";import{subclass as p}from"../../../core/accessorSupport/decorators/subclass.js";import{c as y}from"../../../chunks/vec3f64.js";import{AnalysisView3D as c}from"./AnalysisView3D.js";import{LineOfSightConfiguration as u}from"./LineOfSight/LineOfSightConfiguration.js";import{LineOfSightController as h}from"./LineOfSight/LineOfSightController.js";import{LineOfSightVisualization as m}from"./LineOfSight/LineOfSightVisualization.js";let d=class extends(c(r(s.EventedMixin(i)))){constructor(t){super(t),this.type="line-of-sight-view-3d",this.computations=new o,this.elevationAlignedObserver=null,this.configuration=new u,this.observerEngineLocation=y(),this.cursorTarget=null,this.interactive=!1}initialize(){const t=this.view,i=this.analysis;this._analysisController=new h({analysis:i,analysisViewData:this,view:t}),this._analysisVisualization=new m({analysis:i,analysisViewData:this,view:t}),this.handles.add([this._analysisController.on("result-changed",(t=>{t.target!==this.cursorTarget&&this.emit("result-changed",t)}))])}destroy(){this._analysisController=e(this._analysisController),this._analysisVisualization=e(this._analysisVisualization)}get results(){return this.computations.map((t=>t.result))}get priority(){return this._analysisController.priority}set priority(t){this._analysisController.priority=t}get updating(){return n(this._analysisController)&&this._analysisController.updating}getResultForTarget(t){const i=this.computations.find((i=>i.target===t));return a(i,(t=>t.result))}get testInfo(){return{visualization:this._analysisVisualization,controller:this._analysisController}}};t([l({readOnly:!0})],d.prototype,"type",void 0),t([l({constructOnly:!0,nonNullable:!0})],d.prototype,"analysis",void 0),t([l({readOnly:!0})],d.prototype,"results",null),t([l()],d.prototype,"priority",null),t([l()],d.prototype,"computations",void 0),t([l()],d.prototype,"elevationAlignedObserver",void 0),t([l()],d.prototype,"configuration",void 0),t([l()],d.prototype,"observerEngineLocation",void 0),t([l()],d.prototype,"cursorTarget",void 0),t([l()],d.prototype,"updating",null),t([l()],d.prototype,"interactive",void 0),t([l()],d.prototype,"_analysisController",void 0),t([l()],d.prototype,"_analysisVisualization",void 0),d=t([p("esri.views.3d.analysis.LineOfSightAnalysisView3D")],d);const g=d;export{g as default};
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.24/esri/copyright.txt for details.
4
4
  */
5
- import{_ as t}from"../../../../chunks/tslib.es6.js";import e from"../../../../analysis/SlicePlane.js";import{clock as i}from"../../../../core/clock.js";import a from"../../../../core/Handles.js";import{releaseMaybe as s,destroyMaybe as n,isSome as r,isNone as l,removeMaybe as o}from"../../../../core/maybe.js";import{watch as h,sync as p,syncAndInitial as u}from"../../../../core/reactiveUtils.js";import{addFrameTask as c}from"../../../../core/scheduling.js";import{createScreenPoint as d,screenPointObjectToArray as _,createScreenPointArray as v}from"../../../../core/screenUtils.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 y}from"../../../../core/accessorSupport/decorators/subclass.js";import{d as m,u as g,m as w}from"../../../../chunks/mat4.js";import{e as f,l as M,c as D,g as T,a as V,m as b,n as k,s as E}from"../../../../chunks/vec3.js";import{a as S,c as H}from"../../../../chunks/vec3f64.js";import{c as x,a as I,n as R,f as j}from"../../../../chunks/boundedPlane.js";import{signedDistance as O,create as C,intersectRay as z,normal as G}from"../../../../geometry/support/plane.js";import{create as U}from"../../../../geometry/support/ray.js";import{sv3d as L,sm4d as K,sv2d as B}from"../../../../geometry/support/vectorStacks.js";import{POINTER_MOVE_TIMER_MS as A,PLANE_PREVIEW_OUTLINE_WIDTH as F,forceVerticalModifier as N,forceHorizontalModifier as q,PREVIEW_FADE_DURATION_SECONDS as Z,PLANE_OUTLINE_COLOR as J,PLANE_BACKGROUND_COLOR as Q,PREVIEW_FADE_DOT_THRESHOLD as W,INITIAL_DEPTH_OFFSET_FRAC as X}from"./sliceToolConfig.js";import{createShiftManipulator as Y,createRotateManipulator as $,createResizeManipulator as tt,createGridVisualElement as et,createOutlineVisualElement as it,planeToShape as at,createRotatePlane as st,RotationAxis as nt,resizePlane as rt,calculatePlaneHalfSize as lt,SliceOrientation as ot,createPlane as ht,DidPointerMoveRecentlyFlag as pt,calculateBoundedPlaneTranslateRotate as ut,updateShiftRestartHandle as ct,updateRotateHeadingHandle as dt,updateRotateTiltHandle as _t,updateResizeHandle as vt,createShiftPlane as Pt}from"./sliceToolUtils.js";import{getRotateHeadingTexture as yt,getTiltRotateTexture as mt}from"./images/Factory.js";import{calculateInputRotationTransform as gt}from"../../interactive/manipulatorUtils.js";import{screenToRenderPlane as wt}from"../../interactive/editingTools/dragEventPipeline3D.js";import{fromScreen as ft}from"../../support/geometryUtils/ray.js";import{newIntersector as Mt}from"../../webgl-engine/lib/Intersector.js";import{StoreResults as Dt}from"../../webgl-engine/lib/IntersectorInterfaces.js";import{createManipulatorDragEventPipeline as Tt}from"../../../interactive/dragEventPipeline.js";import{InteractiveToolBase as Vt}from"../../../interactive/InteractiveToolBase.js";import{createScreenPointFromEvent as bt}from"../../../support/screenUtils.js";var kt;let Et=kt=class extends Vt{constructor(t){super(t),this.clock=i,this._previewPlaneOpacity=1,this.layersMode="none",this.shiftManipulator=null,this.rotateHeadingManipulator=null,this.rotateTiltManipulator=null,this.resizeManipulators=null,this._handles=new a,this._viewHandles=new a,this._frameTask=null,this._pointerMoveTimerMs=A,this._prevPointerMoveTimeout=null,this._previewPlaneGridVisualElement=null,this._previewPlaneOutlineVisualElement=null,this._startPlane=x(),this._previewPlane=null,this._activeKeyModifiers={},this._lastCursorPosition=d(),this._resizeHandles=[{direction:[1,0]},{direction:[1,1]},{direction:[0,1]},{direction:[-1,1]},{direction:[-1,0]},{direction:[-1,-1]},{direction:[0,-1]},{direction:[1,-1]}],this._intersector=Mt(t.view.state.viewingMode),this._intersector.options.store=Dt.MIN}initialize(){if(null==this.analysis)throw new Error("SliceTool requires valid analysis, but null was provided.");this.rotateHeadingImage=yt(this.view.toolViewManager.textures),this.rotateTiltImage=mt(this.view.toolViewManager.textures);const t=t=>{this._updateManipulatorsInteractive(t),t.grabbing||(r(this.analysisViewData.plane)&&I(this.analysisViewData.plane,this._startPlane),this.inputState=null)};this.shiftManipulator=Y(this.view),this.manipulators.add(this.shiftManipulator),this.shiftManipulator.events.on("grab-changed",(e=>{this._onShiftGrab(e),t(this.shiftManipulator)})),this._handles.add(this._createShiftDragPipeline(this.shiftManipulator)),this.rotateHeadingManipulator=$(this.view,this.rotateHeadingImage.texture),this.manipulators.add(this.rotateHeadingManipulator),this.rotateHeadingManipulator.events.on("grab-changed",(e=>{this._onRotateHeadingGrab(e),t(this.rotateHeadingManipulator)})),this._handles.add(this._createRotateHeadingDragPipeline(this.rotateHeadingManipulator)),this.rotateTiltManipulator=$(this.view,this.rotateTiltImage.texture),this.manipulators.add(this.rotateTiltManipulator),this.rotateTiltManipulator.events.on("grab-changed",(e=>{this._onRotateTiltGrab(e),t(this.rotateTiltManipulator)})),this._handles.add(this._createRotateTiltDragPipeline(this.rotateTiltManipulator)),this.resizeManipulators=this._resizeHandles.map(((e,i)=>{const a=tt(this.view,e);return a.events.on("grab-changed",(e=>{this._onResizeGrab(e,i),t(a)})),this._handles.add(this._createResizeDragPipeline(a)),a})),this.manipulators.addMany(this.resizeManipulators),this._previewPlaneGridVisualElement=et(this.view),this._previewPlaneOutlineVisualElement=it(this.view),this._previewPlaneOutlineVisualElement.width=F,this._handles.add(h((()=>this.analysisViewData.plane),(()=>this._updateManipulators()),p));const e=h((()=>this.state),(t=>{"sliced"===t&&this.finishToolCreation()}),u);this._handles.add([e,h((()=>this.view.state.camera),(()=>this._onCameraChange()))])}destroy(){this.rotateHeadingImage=s(this.rotateHeadingImage),this.rotateTiltImage=s(this.rotateTiltImage),this._handles=n(this._handles),this._viewHandles=n(this._viewHandles),this._removeFrameTask(),this._clearPointerMoveTimeout(),this._previewPlaneOutlineVisualElement=n(this._previewPlaneOutlineVisualElement),this._previewPlaneGridVisualElement=n(this._previewPlaneGridVisualElement)}get state(){const t=!!this.analysisViewData.plane,e=!!this.inputState;return t?t&&e?"slicing":t&&!e?"sliced":"ready":"ready"}get cursor(){return this._isPlacingSlicePlane||"exclude"===this.layersMode?"crosshair":r(this._creatingPointerId)?"grabbing":null}set analysis(t){if(null==t)throw new Error("SliceTool requires valid analysis, but null was provided.");this._handles.remove("analysis"),this._set("analysis",t)}get inputState(){return this._get("inputState")}set inputState(t){this._set("inputState",t),this.analysisViewData.showGrid=r(t)&&"resize"===t.type,this._updateMaterials()}get _isPlacingSlicePlane(){return!this.inputState&&!this.analysisViewData.plane&&this.active}get _creatingPointerId(){return r(this.inputState)&&"shift"===this.inputState.type?this.inputState.creatingPointerId:null}enterExcludeLayerMode(){l(this.analysisViewData.plane)||(this._set("layersMode","exclude"),this.active||(this.view.activeTool=this))}exitExcludeLayerMode(){l(this.analysisViewData.plane)||(this._set("layersMode","none"),this.active&&(this.view.activeTool=null))}onDeactivate(){this._set("layersMode","none"),this._updatePreviewPlane(null)}onShow(){this._updateVisibility(!0)}onHide(){this._updateVisibility(!1)}_updateVisibility(t){this._updateManipulators(),t||this._clearPointerMoveTimeout()}onInputEvent(t){switch(t.type){case"pointer-drag":if(!Ht(t))return;this._isPlacingSlicePlane?this._onClickPlacePlane(t)&&t.stopPropagation():this._onPointerDrag(t)&&t.stopPropagation();break;case"pointer-move":this._onPointerMove(t);break;case"pointer-up":this._onPointerUp(t)&&t.stopPropagation();break;case"immediate-click":if(!Ht(t))return;this._onClickPlacePlane(t)&&t.stopPropagation();break;case"click":if(!Ht(t))return;this._onClickExcludeLayer(t)&&t.stopPropagation();break;case"drag":this.inputState&&t.stopPropagation();break;case"key-down":this._onKeyDown(t)&&t.stopPropagation();break;case"key-up":this._onKeyUp(t)&&t.stopPropagation()}}onEditableChange(){this.analysisViewData.editable=this.editable}_onPointerDrag(t){const e=this.inputState;if(t.pointerId===this._creatingPointerId&&r(e)&&"shift"===e.type){const i=bt(t);return this.shiftManipulator.events.emit("drag",{action:e.hasBeenDragged?"update":"start",pointerType:t.pointerType,start:i,screenPoint:i}),e.hasBeenDragged=!0,!0}return!1}_onPointerMove(t){this._lastCursorPosition.x=t.x,this._lastCursorPosition.y=t.y,this._resetPointerMoveTimeout(),"touch"!==t.pointerType&&this._updatePreviewPlane(bt(t),this._activeKeyModifiers)}_onCameraChange(){this._updatePreviewPlane(this._lastCursorPosition,this._activeKeyModifiers),this._updateManipulators()}_onPointerUp(t){if(t.pointerId===this._creatingPointerId&&r(this.analysisViewData.plane)){const e=bt(t);return this.shiftManipulator.events.emit("drag",{action:"end",start:e,screenPoint:e}),I(this.analysisViewData.plane,this._startPlane),this.inputState=null,!0}return!1}_onClickPlacePlane(t){if("exclude"===this.layersMode)return!1;if(this._isPlacingSlicePlane){const i=bt(t),a=x();if(this._pickPlane(i,!1,this._activeKeyModifiers,a)){if(I(a,this._startPlane),this.analysis.shape=at(a,this.view,this.view.spatialReference,new e),"pointer-drag"===t.type){const e=this._calculatePickRay(i);this.inputState=St(e,t.pointerId,a.origin,a)}return!0}}return!1}_onClickExcludeLayer(t){return!("exclude"!==this.layersMode||!this.created)&&(this.view.hitTest(bt(t)).then((t=>{if(t.results.length){const e=t.results[0],i=e&&e.graphic;if(i){const t=i.sourceLayer||i.layer;t&&this.analysis.excludedLayers.push(t)}}else t.ground.layer?this.analysis.excludedLayers.push(t.ground.layer):this.analysis.excludeGroundSurface=!0})),this._set("layersMode","none"),this.active&&(this.view.activeTool=null),!0)}_onKeyDown(t){return(t.key===N||t.key===q)&&(this._activeKeyModifiers[t.key]=!0,r(this._previewPlane)&&this._updatePreviewPlane(this._lastCursorPosition,this._activeKeyModifiers),!0)}_onKeyUp(t){return!(t.key!==N&&t.key!==q||!this._activeKeyModifiers[t.key])&&(delete this._activeKeyModifiers[t.key],r(this._previewPlane)&&this._updatePreviewPlane(this._lastCursorPosition,this._activeKeyModifiers),!0)}_onShiftGrab(t){if("start"!==t.action||l(this.analysisViewData.plane))return;const e=this._calculatePickRay(t.screenPoint);I(this.analysisViewData.plane,this._startPlane),this.inputState=St(e,null,this.shiftManipulator.renderLocation,this.analysisViewData.plane)}_createShiftDragPipeline(t){return Tt(t,((t,e,i)=>{const a=this.inputState;if(l(a)||"shift"!==a.type)return;const s=r(this.analysisViewData.plane)?I(this.analysisViewData.plane,x()):null;e.next(wt(this.view,a.shiftPlane)).next(this._shiftDragAdjustSensitivity(a)).next(this._shiftDragUpdatePlane(a)),i.next((()=>{r(s)&&this._updateBoundedPlane(s)}))}))}_shiftDragAdjustSensitivity(t){return e=>{if(l(this.analysisViewData.plane))return null;const i=.001,a=Math.min((1-Math.abs(f(R(this.analysisViewData.plane),e.ray.direction)/M(e.ray.direction)))/i,1),s=-O(this._startPlane.plane,e.renderEnd),n=-O(this._startPlane.plane,t.startPoint);return t.depth=t.depth*(1-a)+s*a-n,e}}_shiftDragUpdatePlane(t){return()=>{if(l(this.analysisViewData.plane))return;const e=D(L.get(),this._startPlane.origin),i=D(L.get(),R(this._startPlane));T(i,i,-t.depth),V(i,i,e);const a=j(i,this.analysisViewData.plane.basis1,this.analysisViewData.plane.basis2,x());this._updateBoundedPlane(a)}}_onRotateHeadingGrab(t){if("start"!==t.action||l(this.analysisViewData.plane))return;const e=st(this.analysisViewData.plane,this.view.renderCoordsHelper,nt.HEADING,C()),i=this._calculatePickRay(t.screenPoint),a=H();z(e,i,a)&&(I(this.analysisViewData.plane,this._startPlane),this.inputState={type:"rotate",rotatePlane:e,startPoint:a})}_createRotateHeadingDragPipeline(t){return Tt(t,((t,e,i)=>{const a=this.inputState;if(l(a)||"rotate"!==a.type)return;const s=r(this.analysisViewData.plane)?I(this.analysisViewData.plane,x()):null;e.next(wt(this.view,a.rotatePlane)).next(this._rotateDragRenderPlaneToRotate(a)).next(this._rotateDragUpdatePlaneFromRotate()),i.next((()=>{r(s)&&this._updateBoundedPlane(s)}))}))}_onRotateTiltGrab(t){if("start"!==t.action||l(this.analysisViewData.plane))return;const e=st(this.analysisViewData.plane,this.view.renderCoordsHelper,nt.TILT,C()),i=this._calculatePickRay(t.screenPoint),a=H();z(e,i,a)&&(I(this.analysisViewData.plane,this._startPlane),this.inputState={type:"rotate",rotatePlane:e,startPoint:a})}_createRotateTiltDragPipeline(t){return Tt(t,((t,e,i)=>{const a=this.inputState;if(l(a)||"rotate"!==a.type)return;const s=r(this.analysisViewData.plane)?I(this.analysisViewData.plane,x()):null;e.next(wt(this.view,a.rotatePlane)).next(this._rotateDragRenderPlaneToRotate(a)).next(this._rotateDragUpdatePlaneFromRotate()),i.next((()=>{r(s)&&this._updateBoundedPlane(s)}))}))}_rotateDragRenderPlaneToRotate(t){return e=>{if(l(this.analysisViewData.plane))return null;const i=G(t.rotatePlane),a=gt(t.startPoint,e.renderEnd,this.analysisViewData.plane.origin,i);return{...e,rotateAxis:i,rotateAngle:a}}}_rotateDragUpdatePlaneFromRotate(){return t=>{if(l(this.analysisViewData.plane))return;const e=m(K.get(),t.rotateAngle,t.rotateAxis),i=b(L.get(),this._startPlane.basis1,e),a=b(L.get(),this._startPlane.basis2,e),s=j(this.analysisViewData.plane.origin,i,a,x());this._updateBoundedPlane(s)}}_onResizeGrab(t,e){if("start"!==t.action||l(this.analysisViewData.plane))return;const i=this._calculatePickRay(t.screenPoint),a=L.get();z(this.analysisViewData.plane.plane,i,a)&&(I(this.analysisViewData.plane,this._startPlane),this.inputState={type:"resize",activeHandleIdx:e,startPoint:S(a)})}_createResizeDragPipeline(t){return Tt(t,((t,e,i)=>{const a=this.inputState;if(l(a)||"resize"!==a.type||l(this.analysisViewData.plane))return;const s=I(this.analysisViewData.plane,x());e.next(wt(this.view,this.analysisViewData.plane.plane)).next(this._resizeDragUpdatePlane(a)),i.next((()=>{this._updateBoundedPlane(s)}))}))}_resizeDragUpdatePlane(t){return e=>{if(l(this.analysisViewData.plane))return;const i=this._resizeHandles[t.activeHandleIdx],a=rt(i,t.startPoint,e.renderEnd,this.view.state.camera,this._startPlane,I(this.analysisViewData.plane));this._updateBoundedPlane(a)}}_updateBoundedPlane(t){const e=this.analysisViewData;if(!r(e))throw new Error("valid internal object expected");e.plane=t}_updatePreviewPlane(t,e={}){let i=this._previewPlane;if(this._previewPlane=null,l(t))return this._removeFrameTask(),void this._updateManipulators();if(!this.analysisViewData.plane&&this.active){const a=r(i)?i:x();if(i=r(i)?I(i,xt):null,this._pickPlane(t,!0,e,a)){const t=W;let e=!1;r(i)&&(e=f(i.plane,a.plane)<t||f(k(L.get(),i.basis1),k(L.get(),a.basis1))<t),e&&(this._previewPlaneOpacity=0),this._previewPlane=a}}r(this._previewPlane)&&l(this._frameTask)&&0===this._previewPlaneOpacity?this._frameTask=c({update:({deltaTime:t})=>{this._previewPlaneOpacity=Math.min(this._previewPlaneOpacity+t/(1e3*Z),1),this._updateManipulators(),1===this._previewPlaneOpacity&&this._removeFrameTask()}}):l(this._previewPlane)&&r(this._frameTask)?this._removeFrameTask():r(this._previewPlane)&&this._updateManipulators()}_removeFrameTask(){this._frameTask=o(this._frameTask)}_calculatePickRay(t){const e=U(),i=_(t,It);return ft(this.view.state.camera,i,e),k(e.direction,e.direction),e}_pickMinResult(t){const e=_(t,B.get());return this.view.sceneIntersectionHelper.intersectToolIntersectorScreen(e,this._intersector),this._intersector.results.min}_pickPlane(t,e,i,a){const s=this._pickMinResult(t),n=L.get();if(!s.getIntersectionPoint(n))return!1;const r=s.getTransformedNormal(L.get()),l=this.view.state.camera;f(r,l.viewForward)>0&&T(r,r,-1);const o=lt(n,l),h=(e?1:-1)*o*X,p=T(L.get(),r,h);V(p,p,n);const u=this.analysis.tiltEnabled?ot.TILTED:ot.HORIZONTAL_OR_VERTICAL,c=i[N]?ot.VERTICAL:i[q]?ot.HORIZONTAL:u;return ht(p,r,o,o,l,c,this.view.renderCoordsHelper,a),!0}_clearPointerMoveTimeout(){this._prevPointerMoveTimeout=o(this._prevPointerMoveTimeout)}_resetPointerMoveTimeout(){this._clearPointerMoveTimeout(),this.shiftManipulator.state|=pt,this.rotateHeadingManipulator.state|=pt,this.rotateTiltManipulator.state|=pt,this._prevPointerMoveTimeout=this.clock.setTimeout((()=>{this.shiftManipulator.state&=~pt,this.rotateHeadingManipulator.state&=~pt,this.rotateTiltManipulator.state&=~pt}),this._pointerMoveTimerMs)}_updateManipulators(){if(kt.disableEngineLayers)return;let t=null,e=!1;if(r(this.analysisViewData.plane))t=this.analysisViewData.plane,e=!1;else{if(!r(this._previewPlane))return this.shiftManipulator.available=!1,this.rotateHeadingManipulator.available=!1,this.rotateTiltManipulator.available=!1,this.resizeManipulators.forEach((t=>t.available=!1)),this._previewPlaneOutlineVisualElement.visible=!1,void(this._previewPlaneGridVisualElement.visible=!1);t=this._previewPlane,e=!0}const i=ut(t,K.get());e?(this.shiftManipulator.available=!1,this.rotateHeadingManipulator.available=!1,this.rotateTiltManipulator.available=!1,this.resizeManipulators.forEach((t=>t.available=!1)),this._previewPlaneOutlineVisualElement.visible=!0,this._previewPlaneGridVisualElement.visible=!0):(this.shiftManipulator.available=!0,this.rotateHeadingManipulator.available=!0,this.rotateTiltManipulator.available=this.analysis.tiltEnabled,this.resizeManipulators.forEach((t=>t.available=!0)),ct(this.shiftManipulator,i,t,this.view.state.camera),dt(this.rotateHeadingManipulator,i,t,this.view.renderCoordsHelper),_t(this.rotateTiltManipulator,i,t),this.resizeManipulators.forEach(((e,a)=>vt(e,this._resizeHandles[a],i,t))),this._previewPlaneOutlineVisualElement.visible=!1,this._previewPlaneGridVisualElement.visible=!1);const a=E(L.get(),M(t.basis1),M(t.basis2),1),s=g(K.get(),a),n=w(s,i,s);this._previewPlaneOutlineVisualElement.transform=n,this._previewPlaneGridVisualElement.transform=n,this._updateMaterials()}_updateMaterials(){const t=[J[0],J[1],J[2],J[3]*this._previewPlaneOpacity];this._previewPlaneOutlineVisualElement.color=t;const e=[Q[0],Q[1],Q[2],Q[3]*this._previewPlaneOpacity],i=[0,0,0,0];this._previewPlaneGridVisualElement.backgroundColor=e,this._previewPlaneGridVisualElement.gridColor=i}_updateManipulatorsInteractive(t){if(!t.grabbing)return this.shiftManipulator.interactive=!0,this.rotateHeadingManipulator.interactive=!0,this.rotateTiltManipulator.interactive=!0,void this.resizeManipulators.forEach((t=>{t.interactive=!0}));this.shiftManipulator.interactive=this.shiftManipulator===t,this.rotateHeadingManipulator.interactive=this.rotateHeadingManipulator===t,this.rotateTiltManipulator.interactive=this.rotateTiltManipulator===t,this.resizeManipulators.forEach((e=>{e.interactive=e===t}))}testData(){return{plane:this.analysisViewData.plane,setPointerMoveTimerMs:t=>{this._pointerMoveTimerMs=t}}}};function St(t,e,i,a){const s=Pt(i,R(a),t.direction,C()),n=H();return z(s,t,n)?{type:"shift",creatingPointerId:e,hasBeenDragged:!1,shiftPlane:s,depth:0,startPoint:n}:null}function Ht(t){return"mouse"!==t.pointerType||0===t.button}Et.disableEngineLayers=!1,t([P()],Et.prototype,"clock",void 0),t([P({constructOnly:!0})],Et.prototype,"view",void 0),t([P()],Et.prototype,"analysisViewData",void 0),t([P({readOnly:!0})],Et.prototype,"state",null),t([P({readOnly:!0})],Et.prototype,"cursor",null),t([P()],Et.prototype,"analysis",null),t([P({readOnly:!0})],Et.prototype,"layersMode",void 0),t([P({value:null})],Et.prototype,"inputState",null),t([P()],Et.prototype,"_isPlacingSlicePlane",null),t([P()],Et.prototype,"_creatingPointerId",null),Et=kt=t([y("esri.views.3d.interactive.analysisTools.slice.SliceTool")],Et);const xt=x(),It=v(),Rt=Et;export{Rt as default};
5
+ import{_ as t}from"../../../../chunks/tslib.es6.js";import e from"../../../../analysis/SlicePlane.js";import{clock as i}from"../../../../core/clock.js";import a from"../../../../core/Handles.js";import{releaseMaybe as s,destroyMaybe as n,isSome as r,isNone as l,removeMaybe as o}from"../../../../core/maybe.js";import{watch as h,sync as p,syncAndInitial as u}from"../../../../core/reactiveUtils.js";import{addFrameTask as c}from"../../../../core/scheduling.js";import{createScreenPoint as d,screenPointObjectToArray as _,createScreenPointArray as v}from"../../../../core/screenUtils.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 y}from"../../../../core/accessorSupport/decorators/subclass.js";import{d as m,u as g,m as w}from"../../../../chunks/mat4.js";import{e as f,l as M,c as D,g as T,a as V,m as b,n as k,s as E}from"../../../../chunks/vec3.js";import{a as S,c as H}from"../../../../chunks/vec3f64.js";import{c as x,a as I,n as R,f as j}from"../../../../chunks/boundedPlane.js";import{signedDistance as O,create as C,intersectRay as z,normal as G}from"../../../../geometry/support/plane.js";import{create as U}from"../../../../geometry/support/ray.js";import{sv3d as L,sm4d as K,sv2d as B}from"../../../../geometry/support/vectorStacks.js";import{POINTER_MOVE_TIMER_MS as A,PLANE_PREVIEW_OUTLINE_WIDTH as F,forceVerticalModifier as N,forceHorizontalModifier as q,PREVIEW_FADE_DURATION_SECONDS as Z,PLANE_OUTLINE_COLOR as J,PLANE_BACKGROUND_COLOR as Q,PREVIEW_FADE_DOT_THRESHOLD as W,INITIAL_DEPTH_OFFSET_FRAC as X}from"./sliceToolConfig.js";import{createShiftManipulator as Y,createRotateManipulator as $,createResizeManipulator as tt,createGridVisualElement as et,createOutlineVisualElement as it,planeToShape as at,createRotatePlane as st,RotationAxis as nt,resizePlane as rt,calculatePlaneHalfSize as lt,SliceOrientation as ot,createPlane as ht,DidPointerMoveRecentlyFlag as pt,calculateBoundedPlaneTranslateRotate as ut,updateShiftRestartHandle as ct,updateRotateHeadingHandle as dt,updateRotateTiltHandle as _t,updateResizeHandle as vt,createShiftPlane as Pt}from"./sliceToolUtils.js";import{getRotateHeadingTexture as yt,getTiltRotateTexture as mt}from"./images/Factory.js";import{calculateInputRotationTransform as gt}from"../../interactive/manipulatorUtils.js";import{screenToRenderPlane as wt}from"../../interactive/editingTools/dragEventPipeline3D.js";import{fromScreen as ft}from"../../support/geometryUtils/ray.js";import{newIntersector as Mt}from"../../webgl-engine/lib/Intersector.js";import{StoreResults as Dt}from"../../webgl-engine/lib/IntersectorInterfaces.js";import{createManipulatorDragEventPipeline as Tt}from"../../../interactive/dragEventPipeline.js";import{InteractiveToolBase as Vt}from"../../../interactive/InteractiveToolBase.js";import{createScreenPointFromEvent as bt}from"../../../support/screenUtils.js";var kt;let Et=kt=class extends Vt{constructor(t){super(t),this.clock=i,this._previewPlaneOpacity=1,this.layersMode="none",this.shiftManipulator=null,this.rotateHeadingManipulator=null,this.rotateTiltManipulator=null,this.resizeManipulators=null,this._handles=new a,this._viewHandles=new a,this._frameTask=null,this._pointerMoveTimerMs=A,this._prevPointerMoveTimeout=null,this._previewPlaneGridVisualElement=null,this._previewPlaneOutlineVisualElement=null,this._startPlane=x(),this._previewPlane=null,this._activeKeyModifiers={},this._lastCursorPosition=d(),this._resizeHandles=[{direction:[1,0]},{direction:[1,1]},{direction:[0,1]},{direction:[-1,1]},{direction:[-1,0]},{direction:[-1,-1]},{direction:[0,-1]},{direction:[1,-1]}],this._intersector=Mt(t.view.state.viewingMode),this._intersector.options.store=Dt.MIN}initialize(){if(null==this.analysis)throw new Error("SliceTool requires valid analysis, but null was provided.");this.rotateHeadingImage=yt(this.view.toolViewManager.textures),this.rotateTiltImage=mt(this.view.toolViewManager.textures);const t=t=>{this._updateManipulatorsInteractive(t),t.grabbing||(r(this.analysisViewData.plane)&&I(this.analysisViewData.plane,this._startPlane),this.inputState=null)};this.shiftManipulator=Y(this.view),this.manipulators.add(this.shiftManipulator),this.shiftManipulator.events.on("grab-changed",(e=>{this._onShiftGrab(e),t(this.shiftManipulator)})),this._handles.add(this._createShiftDragPipeline(this.shiftManipulator)),this.rotateHeadingManipulator=$(this.view,this.rotateHeadingImage.texture),this.manipulators.add(this.rotateHeadingManipulator),this.rotateHeadingManipulator.events.on("grab-changed",(e=>{this._onRotateHeadingGrab(e),t(this.rotateHeadingManipulator)})),this._handles.add(this._createRotateHeadingDragPipeline(this.rotateHeadingManipulator)),this.rotateTiltManipulator=$(this.view,this.rotateTiltImage.texture),this.manipulators.add(this.rotateTiltManipulator),this.rotateTiltManipulator.events.on("grab-changed",(e=>{this._onRotateTiltGrab(e),t(this.rotateTiltManipulator)})),this._handles.add(this._createRotateTiltDragPipeline(this.rotateTiltManipulator)),this.resizeManipulators=this._resizeHandles.map(((e,i)=>{const a=tt(this.view,e);return a.events.on("grab-changed",(e=>{this._onResizeGrab(e,i),t(a)})),this._handles.add(this._createResizeDragPipeline(a)),a})),this.manipulators.addMany(this.resizeManipulators),this._previewPlaneGridVisualElement=et(this.view),this._previewPlaneOutlineVisualElement=it(this.view),this._previewPlaneOutlineVisualElement.width=F,this._handles.add(h((()=>this.analysisViewData.plane),(()=>this._updateManipulators()),p));const e=h((()=>this.state),(t=>{"sliced"===t&&this.finishToolCreation()}),u);this._handles.add([e,h((()=>this.view.state.camera),(()=>this._onCameraChange()))])}destroy(){this.rotateHeadingImage=s(this.rotateHeadingImage),this.rotateTiltImage=s(this.rotateTiltImage),this._handles=n(this._handles),this._viewHandles=n(this._viewHandles),this._removeFrameTask(),this._clearPointerMoveTimeout(),this._previewPlaneOutlineVisualElement=n(this._previewPlaneOutlineVisualElement),this._previewPlaneGridVisualElement=n(this._previewPlaneGridVisualElement)}get state(){const t=!!this.analysisViewData.plane,e=!!this.inputState;return t?t&&e?"slicing":t&&!e?"sliced":"ready":"ready"}get cursor(){return this._isPlacingSlicePlane||"exclude"===this.layersMode?"crosshair":r(this._creatingPointerId)?"grabbing":null}set analysis(t){if(null==t)throw new Error("SliceTool requires valid analysis, but null was provided.");this._handles.remove("analysis"),this._set("analysis",t)}get inputState(){return this._get("inputState")}set inputState(t){this._set("inputState",t),this.analysisViewData.showGrid=r(t)&&"resize"===t.type,this._updateMaterials()}get _isPlacingSlicePlane(){return!this.inputState&&!this.analysisViewData.plane&&this.active}get _creatingPointerId(){return r(this.inputState)&&"shift"===this.inputState.type?this.inputState.creatingPointerId:null}enterExcludeLayerMode(){l(this.analysisViewData.plane)||(this._set("layersMode","exclude"),this.active||(this.view.activeTool=this))}exitExcludeLayerMode(){l(this.analysisViewData.plane)||(this._set("layersMode","none"),this.active&&(this.view.activeTool=null))}onDeactivate(){this._set("layersMode","none"),this._updatePreviewPlane(null)}onShow(){this._updateVisibility(!0)}onHide(){this._updateVisibility(!1)}_updateVisibility(t){this._updateManipulators(),t||this._clearPointerMoveTimeout()}onInputEvent(t){switch(t.type){case"pointer-drag":if(!Ht(t))return;this._isPlacingSlicePlane?this._onClickPlacePlane(t)&&t.stopPropagation():this._onPointerDrag(t)&&t.stopPropagation();break;case"pointer-move":this._onPointerMove(t);break;case"pointer-up":this._onPointerUp(t)&&t.stopPropagation();break;case"immediate-click":if(!Ht(t))return;this._onClickPlacePlane(t)&&t.stopPropagation();break;case"click":if(!Ht(t))return;this._onClickExcludeLayer(t)&&t.stopPropagation();break;case"drag":this.inputState&&t.stopPropagation();break;case"key-down":this._onKeyDown(t)&&t.stopPropagation();break;case"key-up":this._onKeyUp(t)&&t.stopPropagation()}}onEditableChange(){this.analysisViewData.editable=this.editable}_onPointerDrag(t){const e=this.inputState;if(t.pointerId===this._creatingPointerId&&r(e)&&"shift"===e.type){const i=bt(t);return this.shiftManipulator.events.emit("drag",{action:e.hasBeenDragged?"update":"start",pointerType:t.pointerType,start:i,screenPoint:i}),e.hasBeenDragged=!0,!0}return!1}_onPointerMove(t){this._lastCursorPosition.x=t.x,this._lastCursorPosition.y=t.y,this._resetPointerMoveTimeout(),"touch"!==t.pointerType&&this._updatePreviewPlane(bt(t),this._activeKeyModifiers)}_onCameraChange(){this._updatePreviewPlane(this._lastCursorPosition,this._activeKeyModifiers),this._updateManipulators()}_onPointerUp(t){if(t.pointerId===this._creatingPointerId&&r(this.analysisViewData.plane)){const e=bt(t);return this.shiftManipulator.events.emit("drag",{action:"end",start:e,screenPoint:e}),I(this.analysisViewData.plane,this._startPlane),this.inputState=null,!0}return!1}_onClickPlacePlane(t){if("exclude"===this.layersMode)return!1;if(this._isPlacingSlicePlane){const i=bt(t),a=x();if(this._pickPlane(i,!1,this._activeKeyModifiers,a)){if(I(a,this._startPlane),this.analysis.shape=at(a,this.view,this.view.spatialReference,new e),"pointer-drag"===t.type){const e=this._calculatePickRay(i);this.inputState=St(e,t.pointerId,a.origin,a)}return!0}}return!1}_onClickExcludeLayer(t){return!("exclude"!==this.layersMode||!this.created)&&(this.view.hitTest(bt(t)).then((t=>{if(t.results.length){const e=t.results[0],i=e&&e.graphic;if(i){const t=i.sourceLayer||i.layer;t&&this.analysis.excludedLayers.push(t)}}else t.ground.layer?this.analysis.excludedLayers.push(t.ground.layer):this.analysis.excludeGroundSurface=!0})),this._set("layersMode","none"),this.active&&(this.view.activeTool=null),!0)}_onKeyDown(t){return(t.key===N||t.key===q)&&(this._activeKeyModifiers[t.key]=!0,r(this._previewPlane)&&this._updatePreviewPlane(this._lastCursorPosition,this._activeKeyModifiers),!0)}_onKeyUp(t){return!(t.key!==N&&t.key!==q||!this._activeKeyModifiers[t.key])&&(delete this._activeKeyModifiers[t.key],r(this._previewPlane)&&this._updatePreviewPlane(this._lastCursorPosition,this._activeKeyModifiers),!0)}_onShiftGrab(t){if("start"!==t.action||l(this.analysisViewData.plane))return;const e=this._calculatePickRay(t.screenPoint);I(this.analysisViewData.plane,this._startPlane),this.inputState=St(e,null,this.shiftManipulator.renderLocation,this.analysisViewData.plane)}_createShiftDragPipeline(t){return Tt(t,((t,e,i)=>{const a=this.inputState;if(l(a)||"shift"!==a.type)return;const s=r(this.analysisViewData.plane)?I(this.analysisViewData.plane,x()):null;e.next(wt(this.view,a.shiftPlane)).next(this._shiftDragAdjustSensitivity(a)).next(this._shiftDragUpdatePlane(a)),i.next((()=>{r(s)&&this._updateBoundedPlane(s)}))}))}_shiftDragAdjustSensitivity(t){return e=>{if(l(this.analysisViewData.plane))return null;const i=.001,a=Math.min((1-Math.abs(f(R(this.analysisViewData.plane),e.ray.direction)/M(e.ray.direction)))/i,1),s=-O(this._startPlane.plane,e.renderEnd),n=-O(this._startPlane.plane,t.startPoint);return t.depth=t.depth*(1-a)+s*a-n,e}}_shiftDragUpdatePlane(t){return()=>{if(l(this.analysisViewData.plane))return;const e=D(L.get(),this._startPlane.origin),i=D(L.get(),R(this._startPlane));T(i,i,-t.depth),V(i,i,e);const a=j(i,this.analysisViewData.plane.basis1,this.analysisViewData.plane.basis2,x());this._updateBoundedPlane(a)}}_onRotateHeadingGrab(t){if("start"!==t.action||l(this.analysisViewData.plane))return;const e=st(this.analysisViewData.plane,this.view.renderCoordsHelper,nt.HEADING,C()),i=this._calculatePickRay(t.screenPoint),a=H();z(e,i,a)&&(I(this.analysisViewData.plane,this._startPlane),this.inputState={type:"rotate",rotatePlane:e,startPoint:a})}_createRotateHeadingDragPipeline(t){return Tt(t,((t,e,i)=>{const a=this.inputState;if(l(a)||"rotate"!==a.type)return;const s=r(this.analysisViewData.plane)?I(this.analysisViewData.plane,x()):null;e.next(wt(this.view,a.rotatePlane)).next(this._rotateDragRenderPlaneToRotate(a)).next(this._rotateDragUpdatePlaneFromRotate()),i.next((()=>{r(s)&&this._updateBoundedPlane(s)}))}))}_onRotateTiltGrab(t){if("start"!==t.action||l(this.analysisViewData.plane))return;const e=st(this.analysisViewData.plane,this.view.renderCoordsHelper,nt.TILT,C()),i=this._calculatePickRay(t.screenPoint),a=H();z(e,i,a)&&(I(this.analysisViewData.plane,this._startPlane),this.inputState={type:"rotate",rotatePlane:e,startPoint:a})}_createRotateTiltDragPipeline(t){return Tt(t,((t,e,i)=>{const a=this.inputState;if(l(a)||"rotate"!==a.type)return;const s=r(this.analysisViewData.plane)?I(this.analysisViewData.plane,x()):null;e.next(wt(this.view,a.rotatePlane)).next(this._rotateDragRenderPlaneToRotate(a)).next(this._rotateDragUpdatePlaneFromRotate()),i.next((()=>{r(s)&&this._updateBoundedPlane(s)}))}))}_rotateDragRenderPlaneToRotate(t){return e=>{if(l(this.analysisViewData.plane))return null;const i=G(t.rotatePlane),a=gt(t.startPoint,e.renderEnd,this.analysisViewData.plane.origin,i);return{...e,rotateAxis:i,rotateAngle:a}}}_rotateDragUpdatePlaneFromRotate(){return t=>{if(l(this.analysisViewData.plane))return;const e=m(K.get(),t.rotateAngle,t.rotateAxis),i=b(L.get(),this._startPlane.basis1,e),a=b(L.get(),this._startPlane.basis2,e),s=j(this.analysisViewData.plane.origin,i,a,x());this._updateBoundedPlane(s)}}_onResizeGrab(t,e){if("start"!==t.action||l(this.analysisViewData.plane))return;const i=this._calculatePickRay(t.screenPoint),a=L.get();z(this.analysisViewData.plane.plane,i,a)&&(I(this.analysisViewData.plane,this._startPlane),this.inputState={type:"resize",activeHandleIdx:e,startPoint:S(a)})}_createResizeDragPipeline(t){return Tt(t,((t,e,i)=>{const a=this.inputState;if(l(a)||"resize"!==a.type||l(this.analysisViewData.plane))return;const s=I(this.analysisViewData.plane,x());e.next(wt(this.view,this.analysisViewData.plane.plane)).next(this._resizeDragUpdatePlane(a)),i.next((()=>{this._updateBoundedPlane(s)}))}))}_resizeDragUpdatePlane(t){return e=>{if(l(this.analysisViewData.plane))return;const i=this._resizeHandles[t.activeHandleIdx],a=rt(i,t.startPoint,e.renderEnd,this.view.state.camera,this._startPlane,I(this.analysisViewData.plane));this._updateBoundedPlane(a)}}_updateBoundedPlane(t){const e=this.analysisViewData;if(!r(e))throw new Error("valid internal object expected");e.plane=t}_updatePreviewPlane(t,e={}){let i=this._previewPlane;if(this._previewPlane=null,l(t))return this._removeFrameTask(),void this._updateManipulators();if(!this.analysisViewData.plane&&this.active){const a=r(i)?i:x();if(i=r(i)?I(i,xt):null,this._pickPlane(t,!0,e,a)){const t=W;let e=!1;r(i)&&(e=f(i.plane,a.plane)<t||f(k(L.get(),i.basis1),k(L.get(),a.basis1))<t),e&&(this._previewPlaneOpacity=0),this._previewPlane=a}}r(this._previewPlane)&&l(this._frameTask)&&0===this._previewPlaneOpacity?this._frameTask=c({update:({deltaTime:t})=>{this._previewPlaneOpacity=Math.min(this._previewPlaneOpacity+t/(1e3*Z),1),this._updateManipulators(),1===this._previewPlaneOpacity&&this._removeFrameTask()}}):l(this._previewPlane)&&r(this._frameTask)?this._removeFrameTask():r(this._previewPlane)&&this._updateManipulators()}_removeFrameTask(){this._frameTask=o(this._frameTask)}_calculatePickRay(t){const e=U(),i=_(t,It);return ft(this.view.state.camera,i,e),k(e.direction,e.direction),e}_pickMinResult(t){const e=_(t,B.get());return this.view.sceneIntersectionHelper.intersectToolIntersectorScreen(e,this._intersector),this._intersector.results.min}_pickPlane(t,e,i,a){const s=this._pickMinResult(t),n=L.get();if(!s.getIntersectionPoint(n))return!1;const r=s.getTransformedNormal(L.get()),l=this.view.state.camera;f(r,l.viewForward)>0&&T(r,r,-1);const o=lt(n,l),h=(e?1:-1)*o*X,p=T(L.get(),r,h);V(p,p,n);const u=this.analysis.tiltEnabled?ot.TILTED:ot.HORIZONTAL_OR_VERTICAL,c=i[N]?ot.VERTICAL:i[q]?ot.HORIZONTAL:u;return ht(p,r,o,o,l,c,this.view.renderCoordsHelper,a),!0}_clearPointerMoveTimeout(){this._prevPointerMoveTimeout=o(this._prevPointerMoveTimeout)}_resetPointerMoveTimeout(){this._clearPointerMoveTimeout(),this.shiftManipulator.state|=pt,this.rotateHeadingManipulator.state|=pt,this.rotateTiltManipulator.state|=pt,this._prevPointerMoveTimeout=this.clock.setTimeout((()=>{this.shiftManipulator.state&=~pt,this.rotateHeadingManipulator.state&=~pt,this.rotateTiltManipulator.state&=~pt}),this._pointerMoveTimerMs)}_updateManipulators(){if(kt.disableEngineLayers)return;let t=null,e=!1;if(r(this.analysisViewData.plane))t=this.analysisViewData.plane,e=!1;else{if(!r(this._previewPlane))return this.shiftManipulator.available=!1,this.rotateHeadingManipulator.available=!1,this.rotateTiltManipulator.available=!1,this.resizeManipulators.forEach((t=>t.available=!1)),this._previewPlaneOutlineVisualElement.visible=!1,void(this._previewPlaneGridVisualElement.visible=!1);t=this._previewPlane,e=!0}const i=ut(t,K.get());e?(this.shiftManipulator.available=!1,this.rotateHeadingManipulator.available=!1,this.rotateTiltManipulator.available=!1,this.resizeManipulators.forEach((t=>t.available=!1)),this._previewPlaneOutlineVisualElement.visible=!0,this._previewPlaneGridVisualElement.visible=!0):(this.shiftManipulator.available=!0,this.rotateHeadingManipulator.available=!0,this.rotateTiltManipulator.available=this.analysis.tiltEnabled,this.resizeManipulators.forEach((t=>t.available=!0)),ct(this.shiftManipulator,i,t,this.view.state.camera),dt(this.rotateHeadingManipulator,i,t,this.view.renderCoordsHelper),_t(this.rotateTiltManipulator,i,t),this.resizeManipulators.forEach(((e,a)=>vt(e,this._resizeHandles[a],i,t))),this._previewPlaneOutlineVisualElement.visible=!1,this._previewPlaneGridVisualElement.visible=!1);const a=E(L.get(),M(t.basis1),M(t.basis2),1),s=g(K.get(),a),n=w(s,i,s);this._previewPlaneOutlineVisualElement.transform=n,this._previewPlaneGridVisualElement.transform=n,this._updateMaterials()}_updateMaterials(){const t=[J[0],J[1],J[2],J[3]*this._previewPlaneOpacity];this._previewPlaneOutlineVisualElement.color=t;const e=[Q[0],Q[1],Q[2],Q[3]*this._previewPlaneOpacity],i=[0,0,0,0];this._previewPlaneGridVisualElement.backgroundColor=e,this._previewPlaneGridVisualElement.gridColor=i}_updateManipulatorsInteractive(t){if(!t.grabbing)return this.shiftManipulator.interactive=!0,this.rotateHeadingManipulator.interactive=!0,this.rotateTiltManipulator.interactive=!0,void this.resizeManipulators.forEach((t=>{t.interactive=!0}));this.shiftManipulator.interactive=this.shiftManipulator===t,this.rotateHeadingManipulator.interactive=this.rotateHeadingManipulator===t,this.rotateTiltManipulator.interactive=this.rotateTiltManipulator===t,this.resizeManipulators.forEach((e=>{e.interactive=e===t}))}testData(){return{plane:this.analysisViewData.plane,setPointerMoveTimerMs:t=>{this._pointerMoveTimerMs=t}}}};function St(t,e,i,a){const s=Pt(i,R(a),t.direction,C()),n=H();return z(s,t,n)?{type:"shift",creatingPointerId:e,hasBeenDragged:!1,shiftPlane:s,depth:0,startPoint:n}:null}function Ht(t){return"mouse"!==t.pointerType||0===t.button}Et.disableEngineLayers=!1,t([P()],Et.prototype,"clock",void 0),t([P({constructOnly:!0})],Et.prototype,"view",void 0),t([P()],Et.prototype,"analysisViewData",void 0),t([P({readOnly:!0})],Et.prototype,"state",null),t([P({readOnly:!0})],Et.prototype,"cursor",null),t([P()],Et.prototype,"analysis",null),t([P({readOnly:!0})],Et.prototype,"layersMode",void 0),t([P({value:null})],Et.prototype,"inputState",null),t([P()],Et.prototype,"_isPlacingSlicePlane",null),t([P()],Et.prototype,"_creatingPointerId",null),Et=kt=t([y("esri.views.3d.analysis.Slice.SliceTool")],Et);const xt=x(),It=v(),Rt=Et;export{Rt as default};
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.24/esri/copyright.txt for details.
4
4
  */
5
- import{_ as i}from"../../../chunks/tslib.es6.js";import s from"../../../core/Accessor.js";import{destroyMaybe as t,unwrap as o,isNone as e}from"../../../core/maybe.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{AnalysisView3D as r}from"./AnalysisView3D.js";import{SliceController as n}from"./Slice/SliceController.js";import h from"./Slice/SliceTool.js";import{SliceVisualization as y}from"./Slice/SliceVisualization.js";let p=class extends(r(s)){constructor(i){super(i),this.type="slice-view-3d",this.tool=null,this.analysisVisualization=null,this.analysisController=null,this.plane=null,this.active=!0,this.showGrid=!1}initialize(){this.analysisVisualization=new y({view:this.view,analysis:this.analysis,analysisViewData:this}),this.analysisController=new n({view:this.view,analysis:this.analysis,analysisViewData:this})}destroy(){this.analysisVisualization=t(this.analysisVisualization),this.analysisController=t(this.analysisController)}get editable(){return!this.analysisVisualization.preview}set editable(i){this.analysisVisualization.preview=!i}set interactive(i){i!==this._get("interactive")&&(this._set("interactive",i),i?this._createTool():this._removeTool())}async when(){return await this.analysisVisualization.whenReady(),await this.analysisController.whenReady(),this}get testData(){return{visualization:this.analysisVisualization,controller:this.analysisController,tool:o(this.tool)}}_createTool(){this._removeTool();const i=new h({view:this.view,analysis:this.analysis,analysisViewData:this,visible:this.visible});this.tool=i,this.view.tools.add(i)}_removeTool(){const i=this.tool;e(i)||(this.view.tools.remove(i),this.tool=null)}};i([a()],p.prototype,"type",void 0),i([a()],p.prototype,"analysis",void 0),i([a()],p.prototype,"tool",void 0),i([a()],p.prototype,"plane",void 0),i([a()],p.prototype,"active",void 0),i([a({aliasOf:"analysisVisualization.showGrid"})],p.prototype,"showGrid",void 0),i([a()],p.prototype,"editable",null),i([a({type:Boolean,value:!1})],p.prototype,"interactive",null),p=i([l("esri.views.3d.analysis.SliceAnalysisView3D")],p);const c=p;export{c as default};
5
+ import{_ as i}from"../../../chunks/tslib.es6.js";import s from"../../../core/Accessor.js";import{destroyMaybe as t,unwrap as o,isNone as e}from"../../../core/maybe.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{AnalysisView3D as r}from"./AnalysisView3D.js";import{SliceController as n}from"./Slice/SliceController.js";import h from"./Slice/SliceTool.js";import{SliceVisualization as y}from"./Slice/SliceVisualization.js";let p=class extends(r(s)){constructor(i){super(i),this.type="slice-view-3d",this.tool=null,this.analysisVisualization=null,this.analysisController=null,this.plane=null,this.active=!0,this.showGrid=!1}initialize(){this.analysisVisualization=new y({view:this.view,analysis:this.analysis,analysisViewData:this}),this.analysisController=new n({view:this.view,analysis:this.analysis,analysisViewData:this})}destroy(){this.analysisVisualization=t(this.analysisVisualization),this.analysisController=t(this.analysisController)}get editable(){return!this.analysisVisualization.preview}set editable(i){this.analysisVisualization.preview=!i}set interactive(i){i!==this._get("interactive")&&(this._set("interactive",i),i?this._createTool():this._removeTool())}async when(){return await this.analysisVisualization.whenReady(),await this.analysisController.whenReady(),this}get testData(){return{visualization:this.analysisVisualization,controller:this.analysisController,tool:o(this.tool)}}_createTool(){this._removeTool();const i=new h({view:this.view,analysis:this.analysis,analysisViewData:this,visible:this.visible});this.tool=i,this.view.tools.add(i)}_removeTool(){const i=this.tool;e(i)||(this.view.tools.remove(i),this.tool=null)}};i([a({readOnly:!0})],p.prototype,"type",void 0),i([a({constructOnly:!0,nonNullable:!0})],p.prototype,"analysis",void 0),i([a()],p.prototype,"tool",void 0),i([a()],p.prototype,"plane",void 0),i([a()],p.prototype,"active",void 0),i([a({aliasOf:"analysisVisualization.showGrid"})],p.prototype,"showGrid",void 0),i([a()],p.prototype,"editable",null),i([a({type:Boolean,value:!1})],p.prototype,"interactive",null),p=i([l("esri.views.3d.analysis.SliceAnalysisView3D")],p);const c=p;export{c as default};
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.24/esri/copyright.txt for details.
4
4
  */
5
- import"../webgl-engine/core/shaderLibrary/attributes/TextureCoordinateAttribute.glsl.js";import"../webgl-engine/core/shaderLibrary/output/ReadLinearDepth.glsl.js";import"../webgl-engine/core/shaderLibrary/shading/Gamma.glsl.js";import"../webgl-engine/core/shaderModules/Float2PassUniform.js";import"../webgl-engine/core/shaderModules/Float2Uniform.js";import"../webgl-engine/core/shaderModules/Float3PassUniform.js";import"../webgl-engine/core/shaderModules/Float3Uniform.js";import"../webgl-engine/core/shaderModules/Float4Uniform.js";import"../webgl-engine/core/shaderModules/FloatUniform.js";import"../webgl-engine/core/shaderModules/interfaces.js";import"../webgl-engine/core/shaderModules/Matrix4PassUniform.js";import"../webgl-engine/core/shaderModules/Matrix4Uniform.js";import"../webgl-engine/core/shaderModules/ShaderBuilder.js";import"../webgl-engine/core/shaderModules/Texture2DUniform.js";import"../webgl-engine/lib/VertexAttribute.js";export{b as build}from"../../../chunks/ChapmanAtmosphere.glsl.js";
5
+ import"../../../chunks/mat4.js";import"../../../chunks/mat4f64.js";import"../webgl-engine/core/shaderLibrary/attributes/TextureCoordinateAttribute.glsl.js";import"../webgl-engine/core/shaderLibrary/output/ReadLinearDepth.glsl.js";import"../webgl-engine/core/shaderLibrary/shading/Gamma.glsl.js";import"../webgl-engine/core/shaderModules/Float2PassUniform.js";import"../webgl-engine/core/shaderModules/Float2Uniform.js";import"../webgl-engine/core/shaderModules/Float3PassUniform.js";import"../webgl-engine/core/shaderModules/Float3Uniform.js";import"../webgl-engine/core/shaderModules/Float4Uniform.js";import"../webgl-engine/core/shaderModules/FloatUniform.js";import"../webgl-engine/core/shaderModules/interfaces.js";import"../webgl-engine/core/shaderModules/Matrix4PassUniform.js";import"../webgl-engine/core/shaderModules/ShaderBuilder.js";import"../webgl-engine/core/shaderModules/Texture2DUniform.js";import"../webgl-engine/lib/VertexAttribute.js";export{b as build}from"../../../chunks/ChapmanAtmosphere.glsl.js";
@@ -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"../../../core/Handles.js";import{lerp as t,smoothstep as i}from"../../../core/mathUtils.js";import{releaseMaybe as s,disposeMaybe as a,destroyMaybe as r,isSome as h,isNone as n,unwrapOr as o}from"../../../core/maybe.js";import{on as d}from"../../../core/reactiveUtils.js";import{a as m}from"../../../chunks/mat4.js";import{c as _}from"../../../chunks/mat4f64.js";import{b as u}from"../../../chunks/vec2.js";import{a as c}from"../../../chunks/vec2f64.js";import{s as l,l as p,c as f}from"../../../chunks/vec3.js";import{c as v}from"../../../chunks/vec3f64.js";import{c as g,f as b}from"../../../chunks/vec4f64.js";import{earth as T}from"../../../geometry/support/Ellipsoid.js";import{rayLeighScaleHeight as R,atmosphereHeight as w,betaRayleigh as H,betaOzone as j,betaMie as x,innerAtmosphereDepth as q,computeInnerAltitudeFade as E}from"./atmosphereUtils.js";import{ChapmanAtmosphereTechnique as z}from"./ChapmanAtmosphereTechnique.js";import{ChapmanAtmosphereTechniqueConfiguration as B}from"./ChapmanAtmosphereTechniqueConfiguration.js";import{NoParameters as U}from"../webgl-engine/core/shaderModules/interfaces.js";import{Pos2Tex as y}from"../webgl-engine/lib/DefaultVertexBufferLayouts.js";import{createQuadVAO as C}from"../webgl-engine/lib/glUtil3D.js";import{PrimitiveType as P}from"../../webgl/enums.js";class F{constructor(e){this._view=e,this.type="realistic",this.canRender=!0,this._cameraPosition=v(),this._viewInverse=_(),this._heightParameters=g(),this._betasRayleigh=v(),this._betasCombined=v(),this._scaleHeight=0,this._radii=c(),this._cameraHeight=0,this._cameraHeightSq=0,this._cAtmosphere=0,this._innerFadeDistance=0,this._altitudeFade=0,this._lowerElevationBoundRadius=0,this._lowerBoundEarthRadius=T.radius,this._hazeStrength=1,this._darkenHaze=!1,this._updateRadius(T.radius)}destroy(){this._atmosphereTechnique=s(this._atmosphereTechnique),this._atmosphereHazeTechnique=s(this._atmosphereHazeTechnique),this._vao=a(this._vao),this._handles=r(this._handles)}when(){return Promise.resolve()}initializeRenderContext(t){const i=t.renderContext.rctx,s=this._handles=new e,a=this._view.basemapTerrain;h(a.rootTiles)&&this._updateElevation({spatialReference:a.spatialReference,tile:a.rootTiles[0],extent:a.rootTiles[0].extent,context:"ground"}),s.add(d((()=>this._view.basemapTerrain),"elevation-change",(e=>this._updateElevation(e)),{onListenerAdd:()=>this._updateElevation()})),s.add(d((()=>this._view.basemapTerrain),"elevation-bounds-change",(()=>this._updateVisibleElevationBounds())));const r=new B;r.haze=!1,this._atmosphereTechnique=t.shaderTechniqueRepository.acquire(z,r),r.haze=!0,this._atmosphereHazeTechnique=t.shaderTechniqueRepository.acquire(z,r),this._vao=C(i,y),this._scaleHeight=R*w,l(this._betasRayleigh,H[0],H[1],H[2]),l(this._betasCombined,H[0]+j[0],H[1]+j[1],H[2]+j[2])}render(e){this._render(e,this._atmosphereTechnique,e.offscreenRenderingHelper.depthTexture)}renderHaze(e,t){this._darkenHaze=t,this._render(e,this._atmosphereHazeTechnique,e.offscreenRenderingHelper.linearDepthTexture)}_render(e,t,i){this._update(e.bindParameters.camera);const s=e.rctx.bindTechnique(t,k,e.bindParameters);e.offscreenRenderingHelper.renderDepthDetached((()=>{s.bindTexture("depthTex",i),this._renderCommon(t.program,e)}))}_renderCommon(e,t){if(n(this._vao))return;const i=t.rctx;e.setUniform4fv("heightParameters",this._heightParameters),e.setUniform3fv("cameraPosition",this._cameraPosition),e.setUniformMatrix4fv("inverseViewMatrix",this._viewInverse),e.setUniform2fv("radii",this._radii),e.setUniform1f("scaleHeight",this._scaleHeight),e.setUniform1f("betaMie",x),e.setUniform3fv("betaRayleigh",this._betasRayleigh),e.setUniform3fv("betaCombined",this._betasCombined),e.setUniform1f("innerFadeDistance",this._innerFadeDistance),e.setUniform1f("altitudeFade",this._altitudeFade),e.setUniform1f("hazeStrength",this._hazeStrength),i.bindVAO(this._vao),e.assertCompatibleVertexAttributeLocations(this._vao),i.drawArrays(P.TRIANGLE_STRIP,0,4)}_adjustRadiusForTesselation(e){return e*Math.cos(Math.PI/16/16)}_updateElevation(e){const t=e?e.tile:o(this._view.basemapTerrain.rootTiles,[null])[0];if(n(t)||0!==t.level)return;const i=this._adjustRadiusForTesselation(T.radius+t.elevationBounds[0]);i!==this._lowerElevationBoundRadius&&(this._lowerElevationBoundRadius=i,this._lowerBoundEarthRadius=-1,this._updateVisibleElevationBounds())}_updateVisibleElevationBounds(){const e=this._adjustRadiusForTesselation(T.radius+this._view.basemapTerrain.elevationBounds.min);(this._lowerBoundEarthRadius<0||e<this._lowerBoundEarthRadius)&&this._updateRadius(e)}_updateRadius(e){this._lowerBoundEarthRadius=e,u(this._radii,e,e+w),this._innerFadeDistance=2*Math.sqrt((2*e-q)*q)}_update(e){if(n(e))return;this._cameraHeight=p(e.eye),this._cameraHeightSq=this._cameraHeight*this._cameraHeight,this._cAtmosphere=this._cameraHeightSq-this._radii[1]*this._radii[1];const s=Math.min(1,Math.max(0,(this._cameraHeight-this._radii[0])/w));this._heightParameters=b(this._cameraHeight,this._cameraHeightSq,this._cAtmosphere,s),f(this._cameraPosition,e.eye),m(this._viewInverse,e.viewMatrix),this._altitudeFade=E(this._cameraHeight-this._lowerBoundEarthRadius),this._hazeStrength=this._darkenHaze?t(.6,1,i(9500,10500,this._cameraHeight-T.radius)):1}static isSupported(e){return e.renderContext.rctx.capabilities.depthTexture}}const k=new U;export{F as ChapmanAtmosphere};
5
+ import e from"../../../core/Handles.js";import{lerp as t,smoothstep as i}from"../../../core/mathUtils.js";import{releaseMaybe as s,disposeMaybe as a,destroyMaybe as r,isSome as h,isNone as o,unwrapOr as n}from"../../../core/maybe.js";import{on as d}from"../../../core/reactiveUtils.js";import{b as m}from"../../../chunks/vec2.js";import{a as _}from"../../../chunks/vec2f64.js";import{s as u,l as c,c as l}from"../../../chunks/vec3.js";import{c as p}from"../../../chunks/vec3f64.js";import{c as f,f as g}from"../../../chunks/vec4f64.js";import{earth as v}from"../../../geometry/support/Ellipsoid.js";import{rayLeighScaleHeight as b,atmosphereHeight as T,betaRayleigh as R,betaOzone as H,betaMie as w,innerAtmosphereDepth as j,computeInnerAltitudeFade as q}from"./atmosphereUtils.js";import{ChapmanAtmosphereTechnique as x}from"./ChapmanAtmosphereTechnique.js";import{ChapmanAtmosphereTechniqueConfiguration as E}from"./ChapmanAtmosphereTechniqueConfiguration.js";import{NoParameters as z}from"../webgl-engine/core/shaderModules/interfaces.js";import{Pos2Tex as B}from"../webgl-engine/lib/DefaultVertexBufferLayouts.js";import{createQuadVAO as y}from"../webgl-engine/lib/glUtil3D.js";import{PrimitiveType as U}from"../../webgl/enums.js";class C{constructor(e){this._view=e,this.type="realistic",this.canRender=!0,this._cameraPosition=p(),this._heightParameters=f(),this._betasRayleigh=p(),this._betasCombined=p(),this._scaleHeight=0,this._radii=_(),this._cameraHeight=0,this._cameraHeightSq=0,this._cAtmosphere=0,this._innerFadeDistance=0,this._altitudeFade=0,this._lowerElevationBoundRadius=0,this._lowerBoundEarthRadius=v.radius,this._hazeStrength=1,this._darkenHaze=!1,this._updateRadius(v.radius)}destroy(){this._atmosphereTechnique=s(this._atmosphereTechnique),this._atmosphereHazeTechnique=s(this._atmosphereHazeTechnique),this._vao=a(this._vao),this._handles=r(this._handles)}when(){return Promise.resolve()}initializeRenderContext(t){const i=t.renderContext.rctx,s=this._handles=new e,a=this._view.basemapTerrain;h(a.rootTiles)&&this._updateElevation({spatialReference:a.spatialReference,tile:a.rootTiles[0],extent:a.rootTiles[0].extent,context:"ground"}),s.add(d((()=>this._view.basemapTerrain),"elevation-change",(e=>this._updateElevation(e)),{onListenerAdd:()=>this._updateElevation()})),s.add(d((()=>this._view.basemapTerrain),"elevation-bounds-change",(()=>this._updateVisibleElevationBounds())));const r=new E;r.haze=!1,this._atmosphereTechnique=t.shaderTechniqueRepository.acquire(x,r),r.haze=!0,this._atmosphereHazeTechnique=t.shaderTechniqueRepository.acquire(x,r),this._vao=y(i,B),this._scaleHeight=b*T,u(this._betasRayleigh,R[0],R[1],R[2]),u(this._betasCombined,R[0]+H[0],R[1]+H[1],R[2]+H[2])}render(e){this._render(e,this._atmosphereTechnique,e.offscreenRenderingHelper.depthTexture)}renderHaze(e,t){this._darkenHaze=t,this._render(e,this._atmosphereHazeTechnique,e.offscreenRenderingHelper.linearDepthTexture)}_render(e,t,i){this._update(e.bindParameters.camera);const s=e.rctx.bindTechnique(t,P,e.bindParameters);e.offscreenRenderingHelper.renderDepthDetached((()=>{s.bindTexture("depthTex",i),this._renderCommon(t.program,e)}))}_renderCommon(e,t){if(o(this._vao))return;const i=t.rctx;e.setUniform4fv("heightParameters",this._heightParameters),e.setUniform3fv("cameraPosition",this._cameraPosition),e.setUniform2fv("radii",this._radii),e.setUniform1f("scaleHeight",this._scaleHeight),e.setUniform1f("betaMie",w),e.setUniform3fv("betaRayleigh",this._betasRayleigh),e.setUniform3fv("betaCombined",this._betasCombined),e.setUniform1f("innerFadeDistance",this._innerFadeDistance),e.setUniform1f("altitudeFade",this._altitudeFade),e.setUniform1f("hazeStrength",this._hazeStrength),i.bindVAO(this._vao),e.assertCompatibleVertexAttributeLocations(this._vao),i.drawArrays(U.TRIANGLE_STRIP,0,4)}_adjustRadiusForTesselation(e){return e*Math.cos(Math.PI/16/16)}_updateElevation(e){const t=e?e.tile:n(this._view.basemapTerrain.rootTiles,[null])[0];if(o(t)||0!==t.level)return;const i=this._adjustRadiusForTesselation(v.radius+t.elevationBounds[0]);i!==this._lowerElevationBoundRadius&&(this._lowerElevationBoundRadius=i,this._lowerBoundEarthRadius=-1,this._updateVisibleElevationBounds())}_updateVisibleElevationBounds(){const e=this._adjustRadiusForTesselation(v.radius+this._view.basemapTerrain.elevationBounds.min);(this._lowerBoundEarthRadius<0||e<this._lowerBoundEarthRadius)&&this._updateRadius(e)}_updateRadius(e){this._lowerBoundEarthRadius=e,m(this._radii,e,e+T),this._innerFadeDistance=2*Math.sqrt((2*e-j)*j)}_update(e){if(o(e))return;this._cameraHeight=c(e.eye),this._cameraHeightSq=this._cameraHeight*this._cameraHeight,this._cAtmosphere=this._cameraHeightSq-this._radii[1]*this._radii[1];const s=Math.min(1,Math.max(0,(this._cameraHeight-this._radii[0])/T));this._heightParameters=g(this._cameraHeight,this._cameraHeightSq,this._cAtmosphere,s),l(this._cameraPosition,e.eye),this._altitudeFade=q(this._cameraHeight-this._lowerBoundEarthRadius),this._hazeStrength=this._darkenHaze?t(.6,1,i(9500,10500,this._cameraHeight-v.radius)):1}static isSupported(e){return e.renderContext.rctx.capabilities.depthTexture}}const P=new z;export{C as ChapmanAtmosphere};
@@ -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"../../../chunks/mat3f64.js";import"./CloudsTechniqueConfiguration.js";import"./NoiseTextureAtlas.js";import"../webgl-engine/core/shaderLibrary/ScreenSpacePass.js";import"../webgl-engine/core/shaderModules/FloatUniform.js";import"../webgl-engine/core/shaderModules/interfaces.js";import"../webgl-engine/core/shaderModules/Matrix3Uniform.js";import"../webgl-engine/core/shaderModules/ShaderBuilder.js";import"../webgl-engine/core/shaderModules/Texture2DUniform.js";import"../webgl-engine/core/shaderTechnique/BindType.js";export{C as CloudsDrawParameters,b as build}from"../../../chunks/Clouds.glsl.js";
5
+ import"../../../chunks/mat3f64.js";import"./CloudsTechniqueConfiguration.js";import"./NoiseTextureAtlas.js";import"../webgl-engine/core/shaderLibrary/ScreenSpacePass.js";import"../webgl-engine/core/shaderModules/FloatUniform.js";import"../webgl-engine/core/shaderModules/interfaces.js";import"../webgl-engine/core/shaderModules/Matrix3DrawUniform.js";import"../webgl-engine/core/shaderModules/ShaderBuilder.js";import"../webgl-engine/core/shaderModules/Texture2DUniform.js";export{C as CloudsDrawParameters,b as build}from"../../../chunks/Clouds.glsl.js";
@@ -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"../webgl-engine/core/shaderLibrary/shading/EvaluateAmbientLighting.glsl.js";import"../webgl-engine/core/shaderLibrary/shading/Gamma.glsl.js";import"../webgl-engine/core/shaderLibrary/shading/PhysicallyBasedRenderingParameters.glsl.js";import"../webgl-engine/core/shaderLibrary/shading/PiUtils.glsl.js";import"../webgl-engine/core/shaderLibrary/util/CloudsParallaxShading.glsl.js";import"../webgl-engine/core/shaderLibrary/util/ColorConversion.glsl.js";import"../webgl-engine/core/shaderLibrary/util/RgbaFloatEncoding.glsl.js";import"../webgl-engine/core/shaderModules/BooleanUniform.js";import"../webgl-engine/core/shaderModules/interfaces.js";import"../webgl-engine/core/shaderModules/Matrix4PassUniform.js";import"../webgl-engine/core/shaderModules/Matrix4Uniform.js";import"../webgl-engine/core/shaderModules/ShaderBuilder.js";import"../webgl-engine/core/shaderTechnique/BindType.js";import"../webgl-engine/lib/VertexAttribute.js";export{C as CloudsCompositionPassParameters,b as build}from"../../../chunks/CloudsComposition.glsl.js";
5
+ import"../../../chunks/mat4.js";import"../../../chunks/mat4f64.js";import"../webgl-engine/core/shaderLibrary/shading/EvaluateAmbientLighting.glsl.js";import"../webgl-engine/core/shaderLibrary/shading/Gamma.glsl.js";import"../webgl-engine/core/shaderLibrary/shading/PhysicallyBasedRenderingParameters.glsl.js";import"../webgl-engine/core/shaderLibrary/shading/PiUtils.glsl.js";import"../webgl-engine/core/shaderLibrary/util/CloudsParallaxShading.glsl.js";import"../webgl-engine/core/shaderLibrary/util/ColorConversion.glsl.js";import"../webgl-engine/core/shaderLibrary/util/RgbaFloatEncoding.glsl.js";import"../webgl-engine/core/shaderModules/BooleanPassUniform.js";import"../webgl-engine/core/shaderModules/Float3PassUniform.js";import"../webgl-engine/core/shaderModules/interfaces.js";import"../webgl-engine/core/shaderModules/Matrix4PassUniform.js";import"../webgl-engine/core/shaderModules/ShaderBuilder.js";import"../webgl-engine/lib/VertexAttribute.js";export{C as CloudsCompositionPassParameters,b as build}from"../../../chunks/CloudsComposition.glsl.js";
@@ -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 a from"../../../core/Accessor.js";import{clamp as s}from"../../../core/mathUtils.js";import{releaseMaybe as r,disposeMaybe as e,isNone as o}from"../../../core/maybe.js";import{property as i}from"../../../core/accessorSupport/decorators/property.js";import"../../../core/arrayUtils.js";import"../../../core/has.js";import"../../../core/accessorSupport/ensureType.js";import{subclass as n}from"../../../core/accessorSupport/decorators/subclass.js";import{a as c,e as d}from"../../../chunks/mat4.js";import{c as f}from"../../../chunks/mat4f64.js";import{y as h,c as m,l as u,n as I,g as l,b as p}from"../../../chunks/vec3.js";import{c as F,f as _}from"../../../chunks/vec3f64.js";import{create as g,fromPoints as H,axis as C}from"../../../geometry/support/axisAngle.js";import{C as E}from"../../../chunks/CloudsComposition.glsl.js";import{CloudsCompositionTechnique as N}from"./CloudsCompositionTechnique.js";import{weatherHeightLimit as P}from"./weather.js";import{createQuadVAO as D}from"../webgl-engine/lib/glUtil3D.js";import{PrimitiveType as O}from"../../webgl/enums.js";let x=class extends a{constructor(t){super(t),this._inverseViewMatrix=f(),this._passParameters=new E,this._technique=new N(t),this._vao=D(t.rctx),this._parameters=new S(t.radius)}destroy(){this._technique=r(this._technique),this._vao=e(this._vao)}render(t,a,s){const r=t.bindParameters.camera;if(o(this._vao)||o(r))return;if(!this._technique.compiled)return void this.requestRender();this._parameters.clouds=a;const e=t.rctx,i=e.bindTechnique(this._technique,this._passParameters,t.bindParameters);c(this._inverseViewMatrix,r.viewMatrix),i.setUniformMatrix4fv("inverseViewMatrix",this._inverseViewMatrix),i.setUniform2f("cloudVariables",this._parameters.clouds.coverage,this._parameters.clouds.absorption),this._setParallaxParams(r.eye,s),t.bindParameters.cloudsComposition=this._parameters,w(i,r,this._parameters),e.bindVAO(this._vao),i.assertCompatibleVertexAttributeLocations(this._vao),e.drawArrays(O.TRIANGLE_STRIP,0,4),this.fading&&this.requestRender()}get fading(){return this._passParameters.crossFade||this._parameters.fadeInOut.stage!==A.FINISHED||this._parameters.fadeIn.stage!==v.FINISHED||this._parameters.fadeInOutHeight.stage!==T.FINISHED}_isCameraPositionFinal(t){return h(this._parameters.cameraPositionLastFrame,t)}_setFadeInStage(t){const a=performance.now(),s=this._parameters,r=s.parallax.anchorPointClouds,e=this._isCameraPositionFinal(t);s.fadeIn.stage===v.FINISHED&&(s.fadeIn.factor=1,m(r,j),s.fadeIn.stage=v.CHANGE_ANCHOR,this._passParameters.crossFade=!1,s.fadeInOut.stage=A.FINISHED),s.fadeIn.stage===v.CHANGE_ANCHOR&&e&&(m(r,j),s.fadeIn.stage=v.FADE_IN,s.startTime=a),s.fadeIn.factor>0&&s.fadeIn.stage===v.FADE_IN&&(s.fadeIn.factor=1-(a-s.startTime)/M),s.fadeIn.factor<=0&&s.fadeIn.stage===v.FADE_IN&&(s.fadeIn.stage=v.FINISHED,s.fadeIn.factor=0)}_setCrossFadingStage(){const t=performance.now(),a=this._parameters,{crossFade:s}=a,r=a.parallax.anchorPointClouds;this._passParameters.crossFade||(m(r,j),a.startTime=t,s.factor=0,this._passParameters.crossFade=!0),s.factor<1&&this._passParameters.crossFade&&(s.factor=(t-a.startTime)/R),s.factor>=1&&this._passParameters.crossFade&&(this._passParameters.crossFade=!1,s.factor=1,m(r,a.parallaxNew.anchorPointClouds))}_setFadeInOutStage(t){const a=performance.now(),s=this._parameters,{fadeInOut:r,crossFade:e}=s;r.stage===A.FINISHED&&(s.startTime=a,r.factor=0,r.stage=A.FADE_OUT),r.factor<1&&r.stage===A.FADE_OUT&&(r.factor=(a-s.startTime)/q),r.factor>=1&&r.stage===A.FADE_OUT&&(r.factor=1,m(s.parallax.anchorPointClouds,j)),r.factor>=1&&r.stage===A.FADE_OUT&&this._isCameraPositionFinal(t)&&(s.startTime=a,r.factor=1,r.stage=A.FADE_IN,this._passParameters.crossFade=!1,e.factor=0),r.factor>0&&r.stage===A.FADE_IN&&(r.factor=1-(a-s.startTime)/M),r.factor<=0&&r.stage===A.FADE_IN&&(r.stage=A.FINISHED,r.factor=0)}_setFadeInOutHeight(t){const a=performance.now(),r=this._parameters,e=r.fadeInOutHeight,o=(a-(e.stage===T.FINISHED?a:r.startTimeHeightFade))/G;e.factor+=t?o:-o,r.startTimeHeightFade=a,e.factor=s(e.factor,0,1),e.stage=T.HEIGHT_FADE}_setParallaxParams(t,a){const s=this._parameters,{parallax:r}=s;s.fadeInOutHeight.factor<0&&(s.fadeInOutHeight.factor=u(t)-s.radius>P?1:0),I(j,t),l(j,j,s.radius),0===r.anchorPointClouds[0]&&0===r.anchorPointClouds[1]&&0===r.anchorPointClouds[2]&&m(r.anchorPointClouds,j);const e=u(p(y,r.anchorPointClouds,j));let o=!0;e>s.fadeIn.distanceThresholdFactor*r.cloudsHeight||s.fadeIn.stage!==v.FINISHED?this._setFadeInStage(t):e>s.fadeInOut.distanceThresholdFactor*r.cloudsHeight||s.fadeInOut.stage!==A.FINISHED?this._setFadeInOutStage(t):e>s.crossFade.distanceThresholdFactor*r.cloudsHeight&&!a||this._passParameters.crossFade?this._setCrossFadingStage():o=!1;const i=u(t),n=i-s.radius;if((n>1.7*P||n<-P)&&s.fadeInOutHeight.factor<1?s.fadeInOutHeight.factor=1:(n>P||n<-.35*P)&&s.fadeInOutHeight.factor<1?this._setFadeInOutHeight(!0):n<P&&n>-.35*P&&s.fadeInOutHeight.factor>0?this._setFadeInOutHeight(!1):s.fadeInOutHeight.stage=T.FINISHED,r.radiusCurvatureCorrectionFactor=.84*Math.sqrt(Math.max(i*i-s.radius*s.radius,0))/i,H(U,r.anchorPointClouds,b),r.transform=f(),d(r.transform,r.transform,b[3],C(b)),o){const{parallaxNew:t}=s;H(U,t.anchorPointClouds,b),t.transform=f(),d(t.transform,t.transform,b[3],C(b))}m(s.cameraPositionLastFrame,t)}};var v,A,T;t([i({constructOnly:!0})],x.prototype,"rctx",void 0),t([i({constructOnly:!0})],x.prototype,"viewingMode",void 0),t([i({constructOnly:!0})],x.prototype,"radius",void 0),t([i({constructOnly:!0})],x.prototype,"requestRender",void 0),x=t([n("esri.views.3d.environment.CloudsComposition")],x),function(t){t[t.FINISHED=0]="FINISHED",t[t.CHANGE_ANCHOR=1]="CHANGE_ANCHOR",t[t.FADE_IN=2]="FADE_IN"}(v||(v={})),function(t){t[t.FINISHED=0]="FINISHED",t[t.FADE_OUT=1]="FADE_OUT",t[t.FADE_IN=2]="FADE_IN"}(A||(A={})),function(t){t[t.FINISHED=0]="FINISHED",t[t.HEIGHT_FADE=1]="HEIGHT_FADE"}(T||(T={}));class S{constructor(t){this.radius=t,this.startTime=0,this.startTimeHeightFade=0,this.cameraPositionLastFrame=F(),this.parallax={anchorPointClouds:F(),cloudsHeight:1e5,radiusCurvatureCorrectionFactor:0,transform:f()},this.parallaxNew={anchorPointClouds:F(),cloudsHeight:1e5,radiusCurvatureCorrectionFactor:0,transform:f()},this.crossFade={factor:0,distanceThresholdFactor:.3},this.fadeInOut={stage:A.FINISHED,factor:0,distanceThresholdFactor:.6},this.fadeIn={stage:v.FINISHED,factor:0,distanceThresholdFactor:2},this.fadeInOutHeight={stage:T.FINISHED,factor:-1}}}function w(t,a,r){t.bindTexture("cubeMap",r.clouds.cubeMap.colorTexture),t.setUniform1f("cloudsHeight",r.parallax.cloudsHeight),t.setUniformMatrix4fv("rotationMatrixClouds",r.parallax.transform),t.setUniformMatrix4fv("rotationMatrixCloudsCrossFade",r.parallaxNew.transform),t.setUniform3fv("anchorPosition",r.parallax.anchorPointClouds),t.setUniform3fv("anchorPositionCrossFade",r.parallaxNew.anchorPointClouds),r.fadeInOut.stage!==A.FINISHED?t.setUniform1f("totalFadeInOut",r.fadeInOutHeight.factor+Math.max(s(r.fadeInOut.factor,0,1))):t.setUniform1f("totalFadeInOut",r.fadeInOutHeight.factor+Math.max(s(r.fadeIn.factor,0,1))),t.setUniform1f("radiusCurvatureCorrectionFactor",r.parallax.radiusCurvatureCorrectionFactor),t.setUniform1f("crossFadeAnchorFactor",s(r.crossFade.factor,0,1)),t.setUniform1f("radius",r.radius),t.setUniform3fv("cameraPosition",a.eye)}const U=_(0,0,1),b=g(),j=F(),y=F(),M=500,q=250,R=500,G=500;export{x as CloudsComposition,S as CloudsCompositionParameters,w as bindCloudsComposition};
5
+ import{_ as t}from"../../../chunks/tslib.es6.js";import a from"../../../core/Accessor.js";import{clamp as e}from"../../../core/mathUtils.js";import{releaseMaybe as s,disposeMaybe as r,isNone as o}from"../../../core/maybe.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 i}from"../../../core/accessorSupport/decorators/subclass.js";import{e as c}from"../../../chunks/mat4.js";import{c as d}from"../../../chunks/mat4f64.js";import{c as f,z as m,l as u,n as h,g as l,b as I}from"../../../chunks/vec3.js";import{f as p,c as g}from"../../../chunks/vec3f64.js";import{create as F,fromPoints as _,axis as H}from"../../../geometry/support/axisAngle.js";import{C}from"../../../chunks/CloudsComposition.glsl.js";import{FadeInOutStages as O,FadeInStages as P,FadeHeightStages as E}from"./CloudsCompositionParameters.js";import{CloudsCompositionTechnique as N}from"./CloudsCompositionTechnique.js";import{weatherHeightLimit as D}from"./weather.js";import{createQuadVAO as b}from"../webgl-engine/lib/glUtil3D.js";import{PrimitiveType as T}from"../../webgl/enums.js";let S=class extends a{constructor(t){super(t),this._technique=new N(t),this._vao=b(t.rctx),this._passParameters=new C(t.radius)}destroy(){this._technique=s(this._technique),this._vao=r(this._vao)}render(t,a){const e=t.bindParameters.cloudsComposition;if(o(this._vao)||o(e.clouds))return;if(!this._technique.compiled)return void this.requestRender();this._setParallaxParameters(e,t.bindParameters.camera.eye,a);const s=t.rctx.bindTechnique(this._technique,this._passParameters,t.bindParameters);t.rctx.bindVAO(this._vao),s.assertCompatibleVertexAttributeLocations(this._vao),t.rctx.drawArrays(T.TRIANGLE_STRIP,0,4),U(e)&&this.requestRender()}_setFadeInStage(t,a){const e=performance.now(),s=t.parallax.anchorPointClouds;t.fadeIn.stage===P.FINISHED&&(t.fadeIn.factor=1,f(s,x),t.fadeIn.stage=P.CHANGE_ANCHOR,t.crossFade.enabled=!1,t.fadeInOut.stage=O.FINISHED);const r=k(t,a);t.fadeIn.stage===P.CHANGE_ANCHOR&&r&&(f(s,x),t.fadeIn.stage=P.FADE_IN,t.startTime=e),t.fadeIn.factor>0&&t.fadeIn.stage===P.FADE_IN&&(t.fadeIn.factor=1-(e-t.startTime)/y),t.fadeIn.factor<=0&&t.fadeIn.stage===P.FADE_IN&&(t.fadeIn.stage=P.FINISHED,t.fadeIn.factor=0)}_setCrossFadingStage(t){const a=performance.now(),{crossFade:e}=t,s=t.parallax.anchorPointClouds;t.crossFade.enabled||(f(s,x),t.startTime=a,e.factor=0,t.crossFade.enabled=!0),e.factor<1&&t.crossFade.enabled&&(e.factor=(a-t.startTime)/q),e.factor>=1&&t.crossFade.enabled&&(t.crossFade.enabled=!1,e.factor=1,f(s,t.parallaxNew.anchorPointClouds))}_setFadeInOutStage(t,a){const e=performance.now(),{fadeInOut:s,crossFade:r}=t;s.stage===O.FINISHED&&(t.startTime=e,s.factor=0,s.stage=O.FADE_OUT),s.factor<1&&s.stage===O.FADE_OUT&&(s.factor=(e-t.startTime)/w),s.factor>=1&&s.stage===O.FADE_OUT&&(s.factor=1,f(t.parallax.anchorPointClouds,x)),s.factor>=1&&s.stage===O.FADE_OUT&&k(t,a)&&(t.startTime=e,s.factor=1,s.stage=O.FADE_IN,t.crossFade.enabled=!1,r.factor=0),s.factor>0&&s.stage===O.FADE_IN&&(s.factor=1-(e-t.startTime)/y),s.factor<=0&&s.stage===O.FADE_IN&&(s.stage=O.FINISHED,s.factor=0)}_setFadeInOutHeight(t,a){const s=performance.now(),r=t.fadeInOutHeight,o=(s-(r.stage===E.FINISHED?s:t.startTimeHeightFade))/R;r.factor+=a?o:-o,t.startTimeHeightFade=s,r.factor=e(r.factor,0,1),r.stage=E.HEIGHT_FADE}_setParallaxParameters(t,a,e){const{parallax:s}=t;t.fadeInOutHeight.factor<0&&(t.fadeInOutHeight.factor=u(a)-this._passParameters.radius>D?1:0),h(x,a),l(x,x,this._passParameters.radius),0===s.anchorPointClouds[0]&&0===s.anchorPointClouds[1]&&0===s.anchorPointClouds[2]&&f(s.anchorPointClouds,x);const r=u(I(v,s.anchorPointClouds,x));let o=!0;r>t.fadeIn.distanceThresholdFactor*s.cloudsHeight||t.fadeIn.stage!==P.FINISHED?this._setFadeInStage(t,a):r>t.fadeInOut.distanceThresholdFactor*s.cloudsHeight||t.fadeInOut.stage!==O.FINISHED?this._setFadeInOutStage(t,a):r>t.crossFade.distanceThresholdFactor*s.cloudsHeight&&!e||t.crossFade.enabled?this._setCrossFadingStage(t):o=!1;const n=u(a),i=n-this._passParameters.radius;if((i>1.7*D||i<-D)&&t.fadeInOutHeight.factor<1?t.fadeInOutHeight.factor=1:(i>D||i<-.35*D)&&t.fadeInOutHeight.factor<1?this._setFadeInOutHeight(t,!0):i<D&&i>-.35*D&&t.fadeInOutHeight.factor>0?this._setFadeInOutHeight(t,!1):t.fadeInOutHeight.stage=E.FINISHED,s.radiusCurvatureCorrectionFactor=.84*Math.sqrt(Math.max(n*n-this._passParameters.radius*this._passParameters.radius,0))/n,_(A,s.anchorPointClouds,j),s.transform=d(),c(s.transform,s.transform,j[3],H(j)),o){const{parallaxNew:a}=t;_(A,a.anchorPointClouds,j),a.transform=d(),c(a.transform,a.transform,j[3],H(j))}f(t.cameraPositionLastFrame,a)}};t([n({constructOnly:!0})],S.prototype,"rctx",void 0),t([n({constructOnly:!0})],S.prototype,"viewingMode",void 0),t([n({constructOnly:!0})],S.prototype,"radius",void 0),t([n({constructOnly:!0})],S.prototype,"requestRender",void 0),S=t([i("esri.views.3d.environment.CloudsComposition")],S);const A=p(0,0,1),j=F(),x=g(),v=g(),y=500,w=250,q=500,R=500;function U(t){return t.crossFade.enabled||t.fadeInOut.stage!==O.FINISHED||t.fadeIn.stage!==P.FINISHED||t.fadeInOutHeight.stage!==E.FINISHED}function k(t,a){return m(t.cameraPositionLastFrame,a)}export{S as CloudsComposition};
@@ -0,0 +1,5 @@
1
+ /*
2
+ All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
+ See https://js.arcgis.com/4.24/esri/copyright.txt for details.
4
+ */
5
+ import{c as t}from"../../../chunks/mat4f64.js";import{c as a}from"../../../chunks/vec3f64.js";class r{constructor(){this.startTime=0,this.startTimeHeightFade=0,this.cameraPositionLastFrame=a(),this.parallax={anchorPointClouds:a(),cloudsHeight:1e5,radiusCurvatureCorrectionFactor:0,transform:t()},this.parallaxNew={anchorPointClouds:a(),cloudsHeight:1e5,radiusCurvatureCorrectionFactor:0,transform:t()},this.crossFade={enabled:!1,factor:0,distanceThresholdFactor:.3},this.fadeInOut={stage:o.FINISHED,factor:0,distanceThresholdFactor:.6},this.fadeIn={stage:s.FINISHED,factor:0,distanceThresholdFactor:2},this.fadeInOutHeight={stage:e.FINISHED,factor:-1}}}var s,o,e;!function(t){t[t.FINISHED=0]="FINISHED",t[t.CHANGE_ANCHOR=1]="CHANGE_ANCHOR",t[t.FADE_IN=2]="FADE_IN"}(s||(s={})),function(t){t[t.FINISHED=0]="FINISHED",t[t.FADE_OUT=1]="FADE_OUT",t[t.FADE_IN=2]="FADE_IN"}(o||(o={})),function(t){t[t.FINISHED=0]="FINISHED",t[t.HEIGHT_FADE=1]="HEIGHT_FADE"}(e||(e={}));export{r as CloudsCompositionParameters,e as FadeHeightStages,o as FadeInOutStages,s as FadeInStages};
@@ -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"../../../core/has.js";import s from"../../../core/Handles.js";import{lerp as i}from"../../../core/mathUtils.js";import{destroyMaybe as r,isSome as n,isNone as o}from"../../../core/maybe.js";import{when as h,syncAndInitial as a,watch as p,initial as l}from"../../../core/reactiveUtils.js";import{property as d}from"../../../core/accessorSupport/decorators/property.js";import"../../../core/arrayUtils.js";import"../../../core/accessorSupport/ensureType.js";import{subclass as _}from"../../../core/accessorSupport/decorators/subclass.js";import{l as m}from"../../../chunks/vec3.js";import{getReferenceEllipsoid as c}from"../../../geometry/projectionEllipsoid.js";import{isMoon as u,isEarth as g}from"../../../geometry/support/spatialReferenceUtils.js";import{ChapmanAtmosphere as w}from"./ChapmanAtmosphere.js";import{CloudsComposition as y}from"./CloudsComposition.js";import{isReadyCloudsData as v}from"./CloudsData.js";import{CloudsGenerator as f}from"./CloudsGenerator.js";import{cloudPresets as A}from"./CloudsPresets.js";import{Fog as R}from"./Fog.js";import{PanoramicAtmosphere as b}from"./PanoramicAtmosphere.js";import{Precipitation as E}from"./Precipitation.js";import x from"./SimpleAtmosphere.js";import{Stars as N}from"./Stars.js";import{weatherHeightLimit as j}from"./weather.js";import{RenderPass as T}from"../webgl-engine/lib/RenderPass.js";import{RenderSlot as C}from"../webgl-engine/lib/RenderSlot.js";var O;const P=[C.POSTPROCESSING_ENVIRONMENT_OPAQUE,C.POSTPROCESSING_ENVIRONMENT_TRANSPARENT];let S,M=O=class extends t{constructor(e){super(e),this._handles=new s,this._context=null,this._pendingAtmosphere=null,this._atmosphere=null}initialize(){this.view._stage.addRenderPlugin(P,this)}destroy(){var e;this._pendingAtmosphere=r(this._pendingAtmosphere),null!=(null==(e=this.view)?void 0:e._stage)&&this.view._stage.removeRenderPlugin(this),this._handles=r(this._handles),this._set("view",null)}get atmosphereType(){return n(this._pendingAtmosphere)?this._pendingAtmosphere.type:n(this._atmosphere)?this._atmosphere.type:"none"}get canRender(){var e;return!(null==(e=this.view.basemapTerrain)||!e.renderer.canRender)||"global"!==this.view.viewingMode}get needsLinearDepth(){return"realistic"===this._selectAtmosphereType()}updateAnimation(e){return!!n(this._precipitation)&&this._precipitation.update(e)}get updating(){return n(this._pendingAtmosphere)||n(this._stars)&&this._stars.updating||n(this._clouds)&&this._clouds.running}get weatherVisible(){return m(this.view.state.camera.eye)-c(this.view.spatialReference).radius<=j}get _stars(){var e,t;const s=this.view,i=null!=(e=null==(t=s.environment)?void 0:t.starsEnabled)&&e,h=this._get("_stars");return!i||o(this._context)?(r(h),null):n(h)?h:new N({view:s,requestRender:()=>this._setNeedsRender()})}get _precipitation(){const e=this._get("_precipitation");if(!this._precipitationEnabled||o(this._context))return r(e),null;const t=this.view,s=this._context;return n(e)&&e.context===s?e:(r(e),new E({context:s,view:t}))}get _clouds(){const e=this._get("_clouds");if(!this.weatherEnabled||o(this._context))return r(e),null;if(n(e))return e;const t=this.view,s=this._context.renderContext.rctx;return r(e),new f({rctx:s,view:t,requestRender:()=>this._setNeedsRender()})}get _cloudComposition(){const e=this._get("_cloudComposition");if(!this.weatherEnabled||o(this._context))return r(e),null;const t=this.view.state.viewingMode,s=this._context.renderContext.rctx,i=c(this.view.spatialReference).radius;return n(e)&&e.viewingMode===t&&e.radius===i?e:(r(e),new y({rctx:s,viewingMode:t,radius:i,requestRender:()=>this._setNeedsRender()}))}get _fog(){const e=this._get("_fog");if(!this.weatherEnabled||o(this._context))return r(e),null;if(n(e))return e;const t=this.view,s=this._context;return r(e),new R({context:s,view:t})}get weatherEnabled(){var e,t;return!(null==(e=this.view)||null==(t=e.environmentManager)||!t.weatherEnabled)}get _precipitationEnabled(){return this.weatherEnabled&&("rainy"===this.view.environment.weather.type||"snowy"===this.view.environment.weather.type)}initializeRenderContext(e=null){this._context=e,this._handles.add([h((()=>{var e;return null==(e=this.view)?void 0:e.basemapTerrain}),(()=>this._updateBasemapTerrain()),a),p((()=>({viewingMode:this.view.viewingMode,atmosphereEnabled:this.view.environment.atmosphereEnabled,atmosphereQuality:this.view.environment.atmosphere.quality})),(()=>this._updateAtmosphere()),a),p((()=>this._stars),(()=>this._setNeedsRender())),p((()=>this._clouds),(()=>this._updateWeather(this._weatherUpdateParameters)),l),p((()=>this._precipitation),(()=>this._setNeedsRender())),p((()=>this._fog),(()=>this._updateFog(this._weatherUpdateParameters)),l),p((()=>this._weatherUpdateParameters),(e=>{this._updateWeather(e),this._updateFog(e)}),a)])}uninitializeRenderContext(){this._context=null,this._atmosphere=r(this._atmosphere),this._set("_stars",r(this._stars)),this._set("_precipitation",r(this._precipitation)),this._set("_clouds",r(this._clouds)),this._set("_cloudComposition",r(this._cloudComposition)),this._set("_fog",r(this._fog))}render(e){if(e.pass===T.MATERIAL)switch(e.bindParameters.slot){case C.POSTPROCESSING_ENVIRONMENT_OPAQUE:n(this._stars)&&this._stars.render(e),n(this._atmosphere)&&this._atmosphere.canRender&&(this._atmosphere.render(e),v(this._clouds)&&n(this._cloudComposition)&&this._cloudComposition.render(e,this._clouds,n(this.view.animation)));break;case C.POSTPROCESSING_ENVIRONMENT_TRANSPARENT:if(n(this._atmosphere)&&this._atmosphere.canRender){const t=this.weatherEnabled?this.view.environment.weather.type:"disabled";if(this._atmosphere.renderHaze(e,"rainy"===t),n(this._fog)){const s="foggy"===t||"rainy"===t||"snowy"===t;(s||"realistic"!==this._selectAtmosphereType())&&this._fog.render(e,s,"rainy"===t)}if(n(this._precipitation)){const t=this.view.environment.weather;"rainy"!==t.type&&"snowy"!==t.type||this._precipitation.render(e,t.precipitation,t.type)}}}}get _weatherUpdateParameters(){const e=this.weatherEnabled?this.view.environment.weather:null;return o(e)?null:"rainy"===e.type||"snowy"===e.type?{type:e.type,weatherAdjustment:e.cloudCover,effect:e.precipitation}:{type:e.type,weatherAdjustment:"foggy"===e.type?e.fogStrength:e.cloudCover}}_updateWeather(e){o(e)||o(this._clouds)||(this._clouds.applyPreset(A[e.type],e.weatherAdjustment),this._setNeedsRender())}_setNeedsRender(){n(this._context)&&this._context.requestRender()}_updateFog(e){if(!o(this._fog)&&!o(e))switch(e.type){case"foggy":this._fog.strength=i(3e-5,.005,e.weatherAdjustment**3),this._setNeedsRender();break;case"rainy":case"snowy":this._fog.strength=i(4e-6,8e-5,e.effect**3),this._setNeedsRender();break;default:this._fog.strength=4e-6,this._setNeedsRender()}}_updateAtmosphere(){const e=this._selectAtmosphereType();if(this.atmosphereType===e)return;n(this._pendingAtmosphere)&&(this._pendingAtmosphere!==this._atmosphere&&this._pendingAtmosphere.destroy(),this._pendingAtmosphere=null);const t=this._getAtmosphereClass();if(!t)return n(this._atmosphere)&&(this._atmosphere.destroy(),this._atmosphere=null,this._setNeedsRender()),void this._updateBasemapTerrain();const s=new t(this.view);n(this._context)&&s.initializeRenderContext(this._context),o(this._atmosphere)&&(this._atmosphere=s,this._setNeedsRender()),this._pendingAtmosphere=s,s.when().then((()=>{n(this._atmosphere)&&this._pendingAtmosphere&&this._pendingAtmosphere!==this._atmosphere&&(this._atmosphere.destroy(),this._atmosphere=this._pendingAtmosphere),this._pendingAtmosphere=null,this._setNeedsRender(),this._updateBasemapTerrain()})).catch((()=>{this._pendingAtmosphere===s&&(this._pendingAtmosphere=null)}))}_getAtmosphereClass(){switch(this._selectAtmosphereType()){case"none":return null;case"realistic":return w;case"panoramic":return b;case"simple":return x;default:return}}_selectAtmosphereType(){const e=this.view.get("environment.atmosphereEnabled"),t=this.view.get("environment.atmosphere.quality"),s=this.view.viewingMode;return!e||null==t||u(this.view.spatialReference)?"none":"local"===s?"panoramic":"high"===t&&n(this._context)&&w.isSupported(this._context)&&g(this.view.spatialReference)?"realistic":"simple"}_updateBasemapTerrain(){this.view.basemapTerrain&&(this.view.basemapTerrain.velvetOverground=n(this._atmosphere)&&"simple"===this.atmosphereType)}get test(){return{atmosphere:this._atmosphere,clouds:this._clouds,selectAtmosphereType:()=>this._selectAtmosphereType(),stubGetAtmosphereClass:e=>{S=O.prototype._getAtmosphereClass,O.prototype._getAtmosphereClass=e},restoreGetAtmosphereClass:()=>{O.prototype._getAtmosphereClass=S}}}};e([d({constructOnly:!0})],M.prototype,"view",void 0),e([d({type:Boolean,readOnly:!0})],M.prototype,"updating",null),e([d()],M.prototype,"weatherVisible",null),e([d()],M.prototype,"_context",void 0),e([d()],M.prototype,"_pendingAtmosphere",void 0),e([d({readOnly:!0})],M.prototype,"_stars",null),e([d({readOnly:!0})],M.prototype,"_precipitation",null),e([d({readOnly:!0})],M.prototype,"_clouds",null),e([d({readOnly:!0})],M.prototype,"_cloudComposition",null),e([d({readOnly:!0})],M.prototype,"_fog",null),e([d({readOnly:!0})],M.prototype,"weatherEnabled",null),e([d({readOnly:!0})],M.prototype,"_precipitationEnabled",null),e([d({readOnly:!0})],M.prototype,"_weatherUpdateParameters",null),M=O=e([_("esri.views.3d.environment.EnvironmentRenderer")],M);export{M as EnvironmentRenderer};
5
+ import{_ as e}from"../../../chunks/tslib.es6.js";import t from"../../../core/Accessor.js";import"../../../core/has.js";import s from"../../../core/Handles.js";import{lerp as i}from"../../../core/mathUtils.js";import{destroyMaybe as r,isSome as o,isNone as n}from"../../../core/maybe.js";import{when as h,syncAndInitial as a,watch as p,initial as d}from"../../../core/reactiveUtils.js";import{property as l}from"../../../core/accessorSupport/decorators/property.js";import"../../../core/arrayUtils.js";import"../../../core/accessorSupport/ensureType.js";import{subclass as _}from"../../../core/accessorSupport/decorators/subclass.js";import{l as m}from"../../../chunks/vec3.js";import{getReferenceEllipsoid as c}from"../../../geometry/projectionEllipsoid.js";import{isMoon as u,isEarth as g}from"../../../geometry/support/spatialReferenceUtils.js";import{ChapmanAtmosphere as w}from"./ChapmanAtmosphere.js";import{CloudsComposition as y}from"./CloudsComposition.js";import{isReadyCloudsData as v}from"./CloudsData.js";import{CloudsGenerator as f}from"./CloudsGenerator.js";import{cloudPresets as A}from"./CloudsPresets.js";import{Fog as R}from"./Fog.js";import{PanoramicAtmosphere as b}from"./PanoramicAtmosphere.js";import{Precipitation as E}from"./Precipitation.js";import x from"./SimpleAtmosphere.js";import{Stars as C}from"./Stars.js";import{weatherHeightLimit as N}from"./weather.js";import{RenderPass as j}from"../webgl-engine/lib/RenderPass.js";import{RenderSlot as T}from"../webgl-engine/lib/RenderSlot.js";var P;const O=[T.POSTPROCESSING_ENVIRONMENT_OPAQUE,T.POSTPROCESSING_ENVIRONMENT_TRANSPARENT];let S,M=P=class extends t{constructor(e){super(e),this._handles=new s,this._context=null,this._pendingAtmosphere=null,this._atmosphere=null}initialize(){this.view._stage.addRenderPlugin(O,this)}destroy(){this._pendingAtmosphere=r(this._pendingAtmosphere),null!=this.view?._stage&&this.view._stage.removeRenderPlugin(this),this._handles=r(this._handles),this._set("view",null)}get atmosphereType(){return o(this._pendingAtmosphere)?this._pendingAtmosphere.type:o(this._atmosphere)?this._atmosphere.type:"none"}get canRender(){return!!this.view.basemapTerrain?.renderer.canRender||"global"!==this.view.viewingMode}get needsLinearDepth(){return"realistic"===this._selectAtmosphereType()}updateAnimation(e){return!!o(this._precipitation)&&this._precipitation.update(e)}get updating(){return o(this._pendingAtmosphere)||o(this._stars)&&this._stars.updating||o(this._clouds)&&this._clouds.running}get weatherVisible(){return m(this.view.state.camera.eye)-c(this.view.spatialReference).radius<=N}get _stars(){const e=this.view,t=e.environment?.starsEnabled??!1,s=this._get("_stars");return!t||n(this._context)?(r(s),null):o(s)?s:new C({view:e,requestRender:()=>this._setNeedsRender()})}get _precipitation(){const e=this._get("_precipitation");if(!this._precipitationEnabled||n(this._context))return r(e),null;const t=this.view,s=this._context;return o(e)&&e.context===s?e:(r(e),new E({context:s,view:t}))}get _clouds(){const e=this._get("_clouds");if(!this.weatherEnabled||n(this._context))return r(e),null;if(o(e))return e;const t=this.view,s=this._context.renderContext.rctx;return r(e),new f({rctx:s,view:t,requestRender:()=>this._setNeedsRender()})}get _cloudsComposition(){const e=this._get("_cloudsComposition");if(!this.weatherEnabled||n(this._context))return r(e),null;const t=this.view.state.viewingMode,s=this._context.renderContext.rctx,i=c(this.view.spatialReference).radius;return o(e)&&e.viewingMode===t&&e.radius===i?e:(r(e),new y({rctx:s,viewingMode:t,radius:i,requestRender:()=>this._setNeedsRender()}))}get _fog(){const e=this._get("_fog");if(!this.weatherEnabled||n(this._context))return r(e),null;if(o(e))return e;const t=this.view,s=this._context;return r(e),new R({context:s,view:t})}get weatherEnabled(){return!!this.view?.environmentManager?.weatherEnabled}get _precipitationEnabled(){return this.weatherEnabled&&("rainy"===this.view.environment.weather.type||"snowy"===this.view.environment.weather.type)}initializeRenderContext(e=null){this._context=e,this._handles.add([h((()=>this.view?.basemapTerrain),(()=>this._updateBasemapTerrain()),a),p((()=>({viewingMode:this.view.viewingMode,atmosphereEnabled:this.view.environment.atmosphereEnabled,atmosphereQuality:this.view.environment.atmosphere.quality})),(()=>this._updateAtmosphere()),a),p((()=>this._stars),(()=>this._setNeedsRender())),p((()=>this._clouds),(()=>this._updateWeather(this._weatherUpdateParameters)),d),p((()=>this._precipitation),(()=>this._setNeedsRender())),p((()=>this._fog),(()=>this._updateFog(this._weatherUpdateParameters)),d),p((()=>this._weatherUpdateParameters),(e=>{this._updateWeather(e),this._updateFog(e)}),a)])}uninitializeRenderContext(){this._context=null,this._atmosphere=r(this._atmosphere),this._set("_stars",r(this._stars)),this._set("_precipitation",r(this._precipitation)),this._set("_clouds",r(this._clouds)),this._set("_cloudsComposition",r(this._cloudsComposition)),this._set("_fog",r(this._fog))}render(e){if(e.pass===j.MATERIAL)switch(e.bindParameters.slot){case T.POSTPROCESSING_ENVIRONMENT_OPAQUE:o(this._stars)&&this._stars.render(e),e.bindParameters.cloudsComposition.clouds=null,o(this._atmosphere)&&this._atmosphere.canRender&&(this._atmosphere.render(e),v(this._clouds)&&o(this._cloudsComposition)&&(e.bindParameters.cloudsComposition.clouds=this._clouds,this._cloudsComposition.render(e,o(this.view.animation))));break;case T.POSTPROCESSING_ENVIRONMENT_TRANSPARENT:if(o(this._atmosphere)&&this._atmosphere.canRender){const t=this.weatherEnabled?this.view.environment.weather.type:"disabled";if(this._atmosphere.renderHaze(e,"rainy"===t),o(this._fog)){const s="foggy"===t||"rainy"===t||"snowy"===t;(s||"realistic"!==this._selectAtmosphereType())&&this._fog.render(e,s,"rainy"===t)}if(o(this._precipitation)){const t=this.view.environment.weather;"rainy"!==t.type&&"snowy"!==t.type||this._precipitation.render(e,t.precipitation,t.type)}}}}get _weatherUpdateParameters(){const e=this.weatherEnabled?this.view.environment.weather:null;return n(e)?null:"rainy"===e.type||"snowy"===e.type?{type:e.type,weatherAdjustment:e.cloudCover,effect:e.precipitation}:{type:e.type,weatherAdjustment:"foggy"===e.type?e.fogStrength:e.cloudCover}}_updateWeather(e){n(e)||n(this._clouds)||(this._clouds.applyPreset(A[e.type],e.weatherAdjustment),this._setNeedsRender())}_setNeedsRender(){o(this._context)&&this._context.requestRender()}_updateFog(e){if(!n(this._fog)&&!n(e))switch(e.type){case"foggy":this._fog.strength=i(3e-5,.005,e.weatherAdjustment**3),this._setNeedsRender();break;case"rainy":case"snowy":this._fog.strength=i(4e-6,8e-5,e.effect**3),this._setNeedsRender();break;default:this._fog.strength=4e-6,this._setNeedsRender()}}_updateAtmosphere(){const e=this._selectAtmosphereType();if(this.atmosphereType===e)return;o(this._pendingAtmosphere)&&(this._pendingAtmosphere!==this._atmosphere&&this._pendingAtmosphere.destroy(),this._pendingAtmosphere=null);const t=this._getAtmosphereClass();if(!t)return o(this._atmosphere)&&(this._atmosphere.destroy(),this._atmosphere=null,this._setNeedsRender()),void this._updateBasemapTerrain();const s=new t(this.view);o(this._context)&&s.initializeRenderContext(this._context),n(this._atmosphere)&&(this._atmosphere=s,this._setNeedsRender()),this._pendingAtmosphere=s,s.when().then((()=>{o(this._atmosphere)&&this._pendingAtmosphere&&this._pendingAtmosphere!==this._atmosphere&&(this._atmosphere.destroy(),this._atmosphere=this._pendingAtmosphere),this._pendingAtmosphere=null,this._setNeedsRender(),this._updateBasemapTerrain()})).catch((()=>{this._pendingAtmosphere===s&&(this._pendingAtmosphere=null)}))}_getAtmosphereClass(){switch(this._selectAtmosphereType()){case"none":return null;case"realistic":return w;case"panoramic":return b;case"simple":return x;default:return}}_selectAtmosphereType(){const e=this.view.get("environment.atmosphereEnabled"),t=this.view.get("environment.atmosphere.quality"),s=this.view.viewingMode;return!e||null==t||u(this.view.spatialReference)?"none":"local"===s?"panoramic":"high"===t&&o(this._context)&&w.isSupported(this._context)&&g(this.view.spatialReference)?"realistic":"simple"}_updateBasemapTerrain(){this.view.basemapTerrain&&(this.view.basemapTerrain.velvetOverground=o(this._atmosphere)&&"simple"===this.atmosphereType)}get test(){return{atmosphere:this._atmosphere,clouds:this._clouds,selectAtmosphereType:()=>this._selectAtmosphereType(),stubGetAtmosphereClass:e=>{S=P.prototype._getAtmosphereClass,P.prototype._getAtmosphereClass=e},restoreGetAtmosphereClass:()=>{P.prototype._getAtmosphereClass=S}}}};e([l({constructOnly:!0})],M.prototype,"view",void 0),e([l({type:Boolean,readOnly:!0})],M.prototype,"updating",null),e([l()],M.prototype,"weatherVisible",null),e([l()],M.prototype,"_context",void 0),e([l()],M.prototype,"_pendingAtmosphere",void 0),e([l({readOnly:!0})],M.prototype,"_stars",null),e([l({readOnly:!0})],M.prototype,"_precipitation",null),e([l({readOnly:!0})],M.prototype,"_clouds",null),e([l({readOnly:!0})],M.prototype,"_cloudsComposition",null),e([l({readOnly:!0})],M.prototype,"_fog",null),e([l({readOnly:!0})],M.prototype,"weatherEnabled",null),e([l({readOnly:!0})],M.prototype,"_precipitationEnabled",null),e([l({readOnly:!0})],M.prototype,"_weatherUpdateParameters",null),M=P=e([_("esri.views.3d.environment.EnvironmentRenderer")],M);export{M as EnvironmentRenderer};