@arcgis/core 5.0.0-next.84 → 5.0.0-next.86

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 (845) hide show
  1. package/Basemap.d.ts +2 -2
  2. package/Camera.d.ts +3 -3
  3. package/CameraLayout.d.ts +2 -2
  4. package/Graphic.d.ts +3 -3
  5. package/Ground.d.ts +2 -2
  6. package/Map.d.ts +2 -2
  7. package/PopupTemplate.d.ts +3 -3
  8. package/Viewpoint.d.ts +2 -2
  9. package/WebDocument2D.d.ts +3 -3
  10. package/WebScene.d.ts +3 -3
  11. package/analysis/Analysis.d.ts +3 -3
  12. package/analysis/Dimension/types.d.ts +0 -1
  13. package/analysis/DimensionSimpleStyle.d.ts +3 -3
  14. package/analysis/ElevationProfile/ElevationProfileDisplayUnits.d.ts +2 -2
  15. package/analysis/ElevationProfile/ElevationProfileLine.d.ts +2 -2
  16. package/analysis/ElevationProfile/ElevationProfileLineChartOptions.d.ts +2 -2
  17. package/analysis/ElevationProfile/ElevationProfileLineViewOptions.d.ts +2 -2
  18. package/analysis/ElevationProfile/ElevationProfileViewOptions.d.ts +2 -2
  19. package/analysis/LengthDimension.d.ts +3 -3
  20. package/analysis/LineOfSightAnalysisObserver.d.ts +3 -3
  21. package/analysis/LineOfSightAnalysisTarget.d.ts +3 -3
  22. package/analysis/ShadowCast/DiscreteOptions.d.ts +2 -2
  23. package/analysis/ShadowCast/MinDurationOptions.d.ts +2 -2
  24. package/analysis/ShadowCast/TotalDurationOptions.d.ts +2 -2
  25. package/analysis/ShadowCast/types.d.ts +0 -1
  26. package/analysis/SlicePlane.d.ts +3 -3
  27. package/analysis/Viewshed.d.ts +3 -3
  28. package/analysis/VolumeMeasurement/VolumeMeasurementCutFillOptions.d.ts +3 -3
  29. package/analysis/VolumeMeasurement/VolumeMeasurementDisplayUnits.d.ts +3 -3
  30. package/analysis/VolumeMeasurement/VolumeMeasurementInputUnits.d.ts +3 -3
  31. package/analysis/VolumeMeasurement/types.d.ts +0 -1
  32. package/analysis/support/AnalysisOriginWebScene.d.ts +2 -2
  33. package/applications/Components/applySetUtils.d.ts +237 -0
  34. package/applications/Components/applySetUtils.js +5 -0
  35. package/applications/Components/editUtils.d.ts +92 -0
  36. package/applications/Components/editUtils.js +5 -0
  37. package/applications/Components/symbolUtils.d.ts +37 -0
  38. package/applications/Components/symbolUtils.js +5 -0
  39. package/applications/Components/templateUtils.d.ts +135 -0
  40. package/applications/Components/templateUtils.js +5 -0
  41. package/assets/esri/core/workers/RemoteClient.js +1 -1
  42. package/assets/esri/core/workers/chunks/001fd3d30e5bb0d180c6.js +1 -0
  43. package/assets/esri/core/workers/chunks/008a555ce169640e2a35.js.LICENSE.txt +1 -1
  44. package/assets/esri/core/workers/chunks/{9919b3c345785e910c38.js → 03d037f9f04f165aac63.js} +1 -1
  45. package/assets/esri/core/workers/chunks/0402b7996940ba0f8cc8.js +2 -0
  46. package/assets/esri/core/workers/chunks/{534ed6574e4a1613ba05.js.LICENSE.txt → 0402b7996940ba0f8cc8.js.LICENSE.txt} +1 -1
  47. package/assets/esri/core/workers/chunks/0889e3d1a034be031c9e.js +2 -0
  48. package/assets/esri/core/workers/chunks/{21ac84b5c7dedcfd747d.js.LICENSE.txt → 0889e3d1a034be031c9e.js.LICENSE.txt} +1 -1
  49. package/assets/esri/core/workers/chunks/09ca0d05b090e9a70e61.js +1 -0
  50. package/assets/esri/core/workers/chunks/{84a4390b1c277c415d44.js → 0c358199ada2ff71e7d9.js} +1 -1
  51. package/assets/esri/core/workers/chunks/{bbb409e54db77bfabdee.js → 0dcf1f3b6aa84cbe03a9.js} +1 -1
  52. package/assets/esri/core/workers/chunks/{59e7a0215791b2b51180.js → 126183819921e6025c90.js} +1 -1
  53. package/assets/esri/core/workers/chunks/{1a41c9127ca5a260d5ef.js → 15132d36e7ccbb3c009e.js} +1 -1
  54. package/assets/esri/core/workers/chunks/1919ed99166e70021917.js +1 -0
  55. package/assets/esri/core/workers/chunks/{9fac9eda0a41f7f4c2c6.js → 198ae9e02366870d3ec8.js} +1 -1
  56. package/assets/esri/core/workers/chunks/{6de843d1809cba61ded3.js → 1aee859eaffa54ef2515.js} +1 -1
  57. package/assets/esri/core/workers/chunks/1c68befc39d39799fcb8.js +1 -0
  58. package/assets/esri/core/workers/chunks/{df40be5a050b8d20617a.js → 1cf27708d17a4de75b68.js} +1 -1
  59. package/assets/esri/core/workers/chunks/{f3fdf9970b3c7acd071d.js → 21163137e345badb1aaf.js} +1 -1
  60. package/assets/esri/core/workers/chunks/21739c37160061f229ef.js +1 -0
  61. package/assets/esri/core/workers/chunks/{5b0ca8d2154ef59da600.js → 32b09ca094377a305881.js} +1 -1
  62. package/assets/esri/core/workers/chunks/365cb8aab4ca56999b47.js +1 -0
  63. package/assets/esri/core/workers/chunks/{c825ca22894bdb4d01ba.js → 3b434f318fdbbe4111e3.js} +1 -1
  64. package/assets/esri/core/workers/chunks/{98e04c2382fa5ba382fc.js → 3dc1ae04cfa2c06daf48.js} +1 -1
  65. package/assets/esri/core/workers/chunks/{c46a4681cbba638b58c1.js → 3ebd4cdafa7682062447.js} +1 -1
  66. package/assets/esri/core/workers/chunks/45c1a3376b138eeee329.js +1 -0
  67. package/assets/esri/core/workers/chunks/{76d6843d56bff0d4c45e.js → 476e51284e6ed7dc5c99.js} +1 -1
  68. package/assets/esri/core/workers/chunks/{18cdd268fc921ffd92e2.js → 47bea83ae7fe0e1acee0.js} +1 -1
  69. package/assets/esri/core/workers/chunks/{304ea784c28dc78e5e65.js → 4a857a7f5e00dfab2b44.js} +1 -1
  70. package/assets/esri/core/workers/chunks/4c07b2d1a14906371fc5.js +2 -0
  71. package/assets/esri/core/workers/chunks/{e3d3fc87789fd711f161.js.LICENSE.txt → 4c07b2d1a14906371fc5.js.LICENSE.txt} +1 -1
  72. package/assets/esri/core/workers/chunks/{04fddd41a8e6a4c1bc57.js → 5139bbe8f94df01467c7.js} +1 -1
  73. package/assets/esri/core/workers/chunks/{e881629bf230a148963d.js → 52ae2073604deef63ea2.js} +1 -1
  74. package/assets/esri/core/workers/chunks/5734aefbce8b6425630c.js +1 -0
  75. package/assets/esri/core/workers/chunks/{3909217130048b5feeae.js → 5852d291ef41201030d5.js} +12 -12
  76. package/assets/esri/core/workers/chunks/{348560f083350ad0bf2e.js → 5a0c5271304189a2401d.js} +1 -1
  77. package/assets/esri/core/workers/chunks/{1fe1a131be1d5e1e23ed.js → 5a1921c177580f17ff96.js} +1 -1
  78. package/assets/esri/core/workers/chunks/{1a13b472e0cf9f88e8de.js → 5d791bfca20791d8e0af.js} +1 -1
  79. package/assets/esri/core/workers/chunks/5eee48b02e1683f022df.js +2 -0
  80. package/assets/esri/core/workers/chunks/{ef519984fa691aad8d87.js.LICENSE.txt → 5eee48b02e1683f022df.js.LICENSE.txt} +1 -1
  81. package/assets/esri/core/workers/chunks/{3b6fc34b6d92eef030e5.js → 6298e71e6c480d6f46e3.js} +1 -1
  82. package/assets/esri/core/workers/chunks/{854adab6a06af861c104.js → 68d0bae1816061d96307.js} +1 -1
  83. package/assets/esri/core/workers/chunks/6d9e92d9c2503d5dc8dd.js +1 -0
  84. package/assets/esri/core/workers/chunks/{156c73a948bde11f0d53.js → 743165f9bc4d85748a0d.js} +1 -1
  85. package/assets/esri/core/workers/chunks/{9ff1e650ce0912afa780.js → 7449af8f3637c1694660.js} +1 -1
  86. package/assets/esri/core/workers/chunks/7f15d15c7e2c5d3e70c3.js +1 -0
  87. package/assets/esri/core/workers/chunks/{5e3dd05f1ecfdb21350e.js → 7f7c4ffbdf7b20dc7a54.js} +1 -1
  88. package/assets/esri/core/workers/chunks/804c9666d0dc548b9f79.js +1 -0
  89. package/assets/esri/core/workers/chunks/8258b1c8ba6d44ba19c3.js +1 -0
  90. package/assets/esri/core/workers/chunks/890833e98e79b8fd3747.js +1 -0
  91. package/assets/esri/core/workers/chunks/{d6e11f05db698d14f21d.js → 8a7f56139b7de0011a37.js} +1 -1
  92. package/assets/esri/core/workers/chunks/{dc57400b835724204909.js → 8b1fa59d436e2815b2f1.js} +2 -2
  93. package/assets/esri/core/workers/chunks/{dc57400b835724204909.js.LICENSE.txt → 8b1fa59d436e2815b2f1.js.LICENSE.txt} +1 -1
  94. package/assets/esri/core/workers/chunks/{ec03d59984782529031a.js → 8b575ac55bc396c0c477.js} +1 -1
  95. package/assets/esri/core/workers/chunks/{db9a9712038df76e3eda.js → 8ef337e25d65670eb73b.js} +1 -1
  96. package/assets/esri/core/workers/chunks/8f2fc50eb988c0228b05.js +1 -0
  97. package/assets/esri/core/workers/chunks/{c500b59cd7da54fe72ec.js → 8f3abaabc61858e929a5.js} +1 -1
  98. package/assets/esri/core/workers/chunks/9264cce4699284eae97c.js +2 -0
  99. package/assets/esri/core/workers/chunks/{5aee84e827e6fcc9c4c4.js.LICENSE.txt → 9264cce4699284eae97c.js.LICENSE.txt} +1 -1
  100. package/assets/esri/core/workers/chunks/{e201bfe3158c025edc99.js → 93faad2a759b08dce619.js} +1 -1
  101. package/assets/esri/core/workers/chunks/{1779e6eabc299831fc9f.js → 94c4ef224ff38eca7b87.js} +1 -1
  102. package/assets/esri/core/workers/chunks/95e93884b39ca4b312d1.js +2 -0
  103. package/assets/esri/core/workers/chunks/{90a53bfe95ed687c28c1.js.LICENSE.txt → 95e93884b39ca4b312d1.js.LICENSE.txt} +1 -1
  104. package/assets/esri/core/workers/chunks/{e8f6305744f87bbed961.js → 96616126aaf319cd1c6f.js} +1 -1
  105. package/assets/esri/core/workers/chunks/{d8c8f54532714d4db2cd.js → 981f05b5ef6f9c3f7e8a.js} +1 -1
  106. package/assets/esri/core/workers/chunks/{841058de8bc6e328fd68.js → 9d77a7d04872b4535e9e.js} +1 -1
  107. package/assets/esri/core/workers/chunks/{338768f94cc49559b209.js → 9ebc4303e29ee0fc1716.js} +1 -1
  108. package/assets/esri/core/workers/chunks/a270e34bb248114ec280.js +1 -0
  109. package/assets/esri/core/workers/chunks/a6b8ce1c2996ee392bdf.js +1 -0
  110. package/assets/esri/core/workers/chunks/{6610d23d8539f06e64ca.js → adecd31fd64d6753682d.js} +1 -1
  111. package/assets/esri/core/workers/chunks/{b91a157fb5f729de6597.js → b5ca894a6cb1a19676d5.js} +1 -1
  112. package/assets/esri/core/workers/chunks/{a2c0c1bb5e775abefc90.js → b6530c66804bede649d7.js} +1 -1
  113. package/assets/esri/core/workers/chunks/{3849dc35941e569fae5f.js → c12c095937b21e39ad3c.js} +1 -1
  114. package/assets/esri/core/workers/chunks/c18a2948ae3cb527d8bb.js +1 -0
  115. package/assets/esri/core/workers/chunks/{4ff3c03cfbec928c0720.js → c4fb3f0b0cfb21e68413.js} +1 -1
  116. package/assets/esri/core/workers/chunks/{f5b32bc3f7ee911e3c59.js → c5d56b85d34026507902.js} +1 -1
  117. package/assets/esri/core/workers/chunks/{181fab86394f1f912490.js → cc464d5a83f8f405e66c.js} +1 -1
  118. package/assets/esri/core/workers/chunks/cee29c3a94376f6740d7.js +1 -0
  119. package/assets/esri/core/workers/chunks/d6d9d56b3733622deab6.js +1 -0
  120. package/assets/esri/core/workers/chunks/{ce9467dc1ff695d795e5.js → d8b72c6f5f9b2d013b7f.js} +1 -1
  121. package/assets/esri/core/workers/chunks/{f0eb2bfe5a8607b251f5.js → dc2c9b584f8e4627de7f.js} +1 -1
  122. package/assets/esri/core/workers/chunks/{b586d7e608e8ba8b88fe.js → e067bbf12f711fd5b9a6.js} +1 -1
  123. package/assets/esri/core/workers/chunks/e271065410ba5c872f53.js +1 -0
  124. package/assets/esri/core/workers/chunks/{d9d2178d436597b1afaf.js → e7e508258ad27468a6a5.js} +1 -1
  125. package/assets/esri/core/workers/chunks/e8a0654cebafa22b5b56.js +1 -0
  126. package/assets/esri/core/workers/chunks/e95f90d59041640727da.js +1 -0
  127. package/assets/esri/core/workers/chunks/eb063660c37093f85349.js +1 -0
  128. package/assets/esri/core/workers/chunks/{2a1898c5b8d7757e39e3.js → f1e1666bede364c069fc.js} +1 -1
  129. package/assets/esri/core/workers/chunks/{ac0949ea3d2cf3eb7383.js → f25eb512592a84a508c1.js} +1 -1
  130. package/assets/esri/core/workers/chunks/f5ed6953a9255f0bed6a.js.LICENSE.txt +1 -1
  131. package/assets/esri/core/workers/chunks/f64ec13167eb51da2f9b.js +1 -0
  132. package/assets/esri/core/workers/chunks/{14f8215ab716c6d9d5f8.js → fbf21fda283836e8633c.js} +1 -1
  133. package/assets/esri/core/workers/chunks/fc763ce37d631e006199.js +1 -0
  134. package/assets/esri/core/workers/chunks/ff2a170acd98edfd0e06.js +1 -0
  135. package/assets/esri/libs/lyr3d/lyr3DMain.wasm +0 -0
  136. package/assets/esri/libs/lyr3d/lyr3DWorker.wasm +0 -0
  137. package/assets/esri/themes/dark/main.css +1 -1
  138. package/assets/esri/themes/light/main.css +1 -1
  139. package/assets/esri/themes/light/view.css +1 -1
  140. package/chunks/HUDMaterial.glsl.js +1 -1
  141. package/config.js +1 -1
  142. package/copyright.txt +2 -2
  143. package/core/Clonable.d.ts +0 -2
  144. package/core/Collection.d.ts +1 -1
  145. package/core/Error.d.ts +0 -1
  146. package/core/Evented.d.ts +0 -2
  147. package/core/Identifiable.d.ts +0 -1
  148. package/core/JSONSupport.d.ts +0 -2
  149. package/core/MultiOriginJSONSupport.d.ts +1 -3
  150. package/core/Promise.d.ts +8 -4
  151. package/core/ReadOnlyMultiOriginJSONSupport.d.ts +0 -2
  152. package/core/Version.d.ts +0 -1
  153. package/core/accessorSupport/types.d.ts +0 -1
  154. package/core/sql/types.d.ts +0 -1
  155. package/core/timeUtils.js +1 -1
  156. package/core/types.d.ts +0 -1
  157. package/core/units.d.ts +1 -1
  158. package/editing/sharedTemplates/templateLoader.js +5 -0
  159. package/editing/sharedTemplates/types.d.ts +0 -1
  160. package/editing/templateUtils.js +1 -1
  161. package/effects/FocusArea.d.ts +3 -3
  162. package/effects/FocusAreaOutline.d.ts +3 -3
  163. package/effects/FocusAreas.d.ts +3 -3
  164. package/effects/types.d.ts +0 -1
  165. package/form/ExpressionInfo.d.ts +2 -2
  166. package/form/FormTemplate.d.ts +2 -2
  167. package/form/elements/Element.d.ts +2 -2
  168. package/form/elements/UtilityNetworkAssociationsElement.d.ts +2 -2
  169. package/geometry/Geometry.d.ts +2 -2
  170. package/geometry/HeightModelInfo.d.ts +2 -2
  171. package/geometry/Mesh.d.ts +3 -3
  172. package/geometry/SpatialReference.d.ts +2 -2
  173. package/geometry/geometryEngineTypes.d.ts +0 -1
  174. package/geometry/support/MeshComponent.d.ts +3 -3
  175. package/geometry/support/MeshGeoreferencedVertexSpace.d.ts +3 -3
  176. package/geometry/support/MeshLocalVertexSpace.d.ts +3 -3
  177. package/geometry/support/MeshMaterial.d.ts +3 -3
  178. package/geometry/support/MeshTexture.d.ts +3 -3
  179. package/geometry/support/MeshTextureTransform.d.ts +3 -3
  180. package/geometry/support/MeshTransform.d.ts +3 -3
  181. package/geometry/support/MeshVertexAttributes.d.ts +3 -3
  182. package/graphic/GraphicOrigin.d.ts +0 -1
  183. package/ground/NavigationConstraint.d.ts +2 -2
  184. package/identity/Credential.d.ts +2 -2
  185. package/identity/OAuthInfo.d.ts +2 -2
  186. package/identity/ServerInfo.d.ts +2 -2
  187. package/interfaces.d.ts +8 -3
  188. package/intl/locale.d.ts +0 -1
  189. package/intl/messages.d.ts +0 -1
  190. package/intl/number.d.ts +0 -1
  191. package/intl/substitute.d.ts +0 -1
  192. package/intl/t9n.d.ts +0 -1
  193. package/kernel.js +1 -1
  194. package/layers/BaseElevationLayer.d.ts +3 -4
  195. package/layers/BingMapsLayer.d.ts +2 -2
  196. package/layers/BuildingSceneLayer.d.ts +5 -4
  197. package/layers/CatalogLayer.d.ts +3 -3
  198. package/layers/DimensionLayer.d.ts +2 -2
  199. package/layers/ElevationLayer.d.ts +3 -4
  200. package/layers/ElevationLayer.js +1 -1
  201. package/layers/FeatureLayer.d.ts +4 -4
  202. package/layers/GaussianSplatLayer.d.ts +2 -2
  203. package/layers/GeoJSONLayer.d.ts +2 -2
  204. package/layers/GeoRSSLayer.d.ts +2 -2
  205. package/layers/GroupLayer.d.ts +2 -2
  206. package/layers/ImageryLayer.d.ts +3 -3
  207. package/layers/ImageryTileLayer.d.ts +3 -3
  208. package/layers/IntegratedMesh3DTilesLayer.d.ts +2 -2
  209. package/layers/IntegratedMeshLayer.d.ts +5 -4
  210. package/layers/KMLLayer.d.ts +2 -2
  211. package/layers/KnowledgeGraphLayer.d.ts +2 -2
  212. package/layers/Layer.d.ts +2 -2
  213. package/layers/LineOfSightLayer.d.ts +2 -2
  214. package/layers/LinkChartLayer.d.ts +2 -2
  215. package/layers/MapImageLayer.d.ts +2 -2
  216. package/layers/MapNotesLayer.d.ts +2 -2
  217. package/layers/MediaLayer.d.ts +2 -2
  218. package/layers/OGCFeatureLayer.d.ts +2 -2
  219. package/layers/ParquetLayer.d.ts +3 -3
  220. package/layers/PointCloudLayer.d.ts +5 -4
  221. package/layers/RouteLayer.d.ts +2 -2
  222. package/layers/SceneLayer.d.ts +6 -5
  223. package/layers/StreamLayer.d.ts +3 -3
  224. package/layers/SubtypeGroupLayer.d.ts +4 -4
  225. package/layers/TileLayer.d.ts +2 -2
  226. package/layers/UnknownLayer.d.ts +2 -2
  227. package/layers/UnsupportedLayer.d.ts +2 -2
  228. package/layers/VectorTileLayer.d.ts +2 -2
  229. package/layers/VideoLayer.d.ts +2 -2
  230. package/layers/ViewshedLayer.d.ts +2 -2
  231. package/layers/VoxelLayer.d.ts +2 -2
  232. package/layers/WCSLayer.d.ts +3 -3
  233. package/layers/WFSLayer.d.ts +2 -2
  234. package/layers/WMSLayer.d.ts +2 -2
  235. package/layers/WMTSLayer.d.ts +2 -2
  236. package/layers/WebTileLayer.d.ts +2 -2
  237. package/layers/buildingSublayers/BuildingComponentSublayer.d.ts +2 -2
  238. package/layers/buildingSublayers/BuildingGroupSublayer.d.ts +1 -1
  239. package/layers/buildingSublayers/BuildingSublayer.d.ts +2 -2
  240. package/layers/catalog/CatalogDynamicGroupLayer.d.ts +2 -2
  241. package/layers/catalog/CatalogFootprintLayer.d.ts +2 -2
  242. package/layers/effects/types.d.ts +0 -1
  243. package/layers/knowledgeGraph/IdTypePair.d.ts +0 -1
  244. package/layers/knowledgeGraph/KnowledgeGraphSublayer.d.ts +2 -2
  245. package/layers/mixins/APIKeyMixin.d.ts +0 -1
  246. package/layers/mixins/CustomParametersMixin.d.ts +0 -1
  247. package/layers/mixins/EditBusLayer.d.ts +0 -2
  248. package/layers/mixins/ImageryTileMixin.js +1 -1
  249. package/layers/mixins/OperationalLayer.d.ts +0 -1
  250. package/layers/mixins/ScaleRangeLayer.d.ts +0 -1
  251. package/layers/mixins/SceneService.d.ts +0 -6
  252. package/layers/pointCloudFilters/PointCloudFilter.d.ts +2 -2
  253. package/layers/raster/datasets/FunctionRaster.js +1 -1
  254. package/layers/raster/datasets/pixelReader.d.ts +0 -1
  255. package/layers/raster/datasets/types.d.ts +0 -1
  256. package/layers/raster/functions/BaseRasterFunction.js +1 -1
  257. package/layers/raster/functions/StretchFunction.js +1 -1
  258. package/layers/raster/functions/changeDetectionUtils.d.ts +0 -1
  259. package/layers/raster/functions/focalStatUtils.d.ts +0 -1
  260. package/layers/scene/types.d.ts +11 -0
  261. package/layers/support/AggregateField.d.ts +2 -2
  262. package/layers/support/BuildingFilter.d.ts +2 -2
  263. package/layers/support/BuildingFilterBlock.d.ts +2 -2
  264. package/layers/support/BuildingSummaryStatistics.d.ts +3 -3
  265. package/layers/support/CodedValue.d.ts +2 -2
  266. package/layers/support/ControlPoint.d.ts +2 -2
  267. package/layers/support/ControlPointsGeoreference.d.ts +2 -2
  268. package/layers/support/DimensionalDefinition.d.ts +2 -2
  269. package/layers/support/DisplayFilter.d.ts +3 -3
  270. package/layers/support/DisplayFilterInfo.d.ts +3 -3
  271. package/layers/support/Domain.d.ts +2 -2
  272. package/layers/support/EditFieldsInfo.d.ts +3 -3
  273. package/layers/support/ElevationQuery.js +1 -1
  274. package/layers/support/ElevationTileData.js +1 -1
  275. package/layers/support/ExpressionInfo.d.ts +3 -3
  276. package/layers/support/FacilityLayerInfo.d.ts +2 -2
  277. package/layers/support/FeatureEffect.d.ts +2 -2
  278. package/layers/support/FeatureFilter.d.ts +2 -2
  279. package/layers/support/FeatureReductionBinning.d.ts +2 -2
  280. package/layers/support/FeatureReductionCluster.d.ts +2 -2
  281. package/layers/support/FeatureReductionSelection.d.ts +2 -2
  282. package/layers/support/FeatureTemplate.d.ts +3 -3
  283. package/layers/support/FeatureType.d.ts +3 -3
  284. package/layers/support/Field.d.ts +2 -2
  285. package/layers/support/FieldConfiguration.d.ts +3 -3
  286. package/layers/support/GeometryFieldsInfo.d.ts +3 -3
  287. package/layers/support/KMLSublayer.d.ts +3 -3
  288. package/layers/support/LOD.d.ts +2 -2
  289. package/layers/support/LabelClass.d.ts +2 -2
  290. package/layers/support/LabelExpressionInfo.d.ts +2 -2
  291. package/layers/support/LayerFloorInfo.d.ts +2 -2
  292. package/layers/support/LevelLayerInfo.d.ts +2 -2
  293. package/layers/support/LocalMediaElementSource.d.ts +3 -3
  294. package/layers/support/MapImage.d.ts +2 -2
  295. package/layers/support/MediaElementBase.d.ts +2 -2
  296. package/layers/support/MosaicRule.d.ts +2 -2
  297. package/layers/support/MultidimensionalSubset.d.ts +13 -4
  298. package/layers/support/OrderByInfo.d.ts +2 -2
  299. package/layers/support/ParquetGeometryEncodingLocation.d.ts +3 -3
  300. package/layers/support/ParquetGeometryEncodingWkb.d.ts +3 -3
  301. package/layers/support/PixelBlock.d.ts +2 -2
  302. package/layers/support/PlaybackInfo.d.ts +3 -3
  303. package/layers/support/PurgeOptions.d.ts +2 -2
  304. package/layers/support/RasterBandInfo.d.ts +2 -2
  305. package/layers/support/RasterFunction.d.ts +2 -2
  306. package/layers/support/RasterInfo.d.ts +2 -2
  307. package/layers/support/RasterJobHandler.js +1 -1
  308. package/layers/support/RasterSensorInfo.d.ts +2 -2
  309. package/layers/support/RasterWorker.js +1 -1
  310. package/layers/support/Relationship.d.ts +5 -3
  311. package/layers/support/RouteStopSymbols.d.ts +2 -2
  312. package/layers/support/RouteSymbols.d.ts +2 -2
  313. package/layers/support/SceneFilter.d.ts +2 -2
  314. package/layers/support/SceneLayerViewFilter.js +5 -0
  315. package/layers/support/SceneModification.d.ts +2 -2
  316. package/layers/support/SceneModifications.d.ts +1 -1
  317. package/layers/support/SiteLayerInfo.d.ts +2 -2
  318. package/layers/support/Sublayer.d.ts +2 -2
  319. package/layers/support/Subtype.d.ts +3 -3
  320. package/layers/support/SubtypeSublayer.d.ts +3 -3
  321. package/layers/support/TelemetryData.d.ts +3 -3
  322. package/layers/support/TelemetryDisplay.d.ts +3 -3
  323. package/layers/support/TileInfo.d.ts +2 -2
  324. package/layers/support/TileMatrixSet.d.ts +2 -2
  325. package/layers/support/TimeInfo.d.ts +3 -3
  326. package/layers/support/TrackInfo.d.ts +3 -3
  327. package/layers/support/TrackPartInfo.d.ts +3 -3
  328. package/layers/support/VideoTimeExtent.d.ts +3 -3
  329. package/layers/support/WMSSublayer.d.ts +2 -2
  330. package/layers/support/WMTSStyle.d.ts +2 -2
  331. package/layers/support/WMTSSublayer.d.ts +2 -2
  332. package/layers/support/types.d.ts +32 -0
  333. package/layers/video/types.d.ts +0 -1
  334. package/layers/voxel/VoxelColorStop.d.ts +3 -3
  335. package/layers/voxel/VoxelDynamicSection.d.ts +3 -3
  336. package/layers/voxel/VoxelIsosurface.d.ts +3 -3
  337. package/layers/voxel/VoxelOpacityStop.d.ts +3 -3
  338. package/layers/voxel/VoxelRangeFilter.d.ts +3 -3
  339. package/layers/voxel/VoxelSlice.d.ts +3 -3
  340. package/layers/voxel/VoxelTransferFunctionStyle.d.ts +3 -3
  341. package/layers/voxel/VoxelUniqueValue.d.ts +3 -3
  342. package/layers/voxel/VoxelVariable.d.ts +2 -2
  343. package/layers/voxel/VoxelVariableStyle.d.ts +2 -2
  344. package/layers/voxel/VoxelVolumeStyle.d.ts +2 -2
  345. package/layers/wms/types.d.ts +0 -1
  346. package/layers/wmts/types.d.ts +0 -1
  347. package/linkChart/ChronologicalLayoutSettings.d.ts +3 -3
  348. package/linkChart/LayoutSettings.d.ts +3 -3
  349. package/linkChart/LinkChartProperties.d.ts +3 -3
  350. package/linkChart/NonspatialDataDisplay.d.ts +3 -3
  351. package/linkChart/OrganicLayoutSettings.d.ts +3 -3
  352. package/linkChart/types.d.ts +0 -1
  353. package/networks/CircuitManager.d.ts +3 -3
  354. package/networks/Network.d.ts +2 -2
  355. package/networks/UnitIdentifierManager.d.ts +2 -2
  356. package/networks/support/Circuit.d.ts +2 -2
  357. package/networks/support/CircuitLocation.d.ts +2 -2
  358. package/networks/support/CircuitPath.d.ts +2 -2
  359. package/networks/support/CircuitPathConnectivityElement.d.ts +2 -2
  360. package/networks/support/CircuitSection.d.ts +2 -2
  361. package/networks/support/NamedTraceConfiguration.d.ts +2 -2
  362. package/networks/support/Subcircuit.d.ts +2 -2
  363. package/networks/support/Terminal.d.ts +2 -2
  364. package/networks/support/TerminalConfiguration.d.ts +2 -2
  365. package/networks/support/TraceConfiguration.d.ts +2 -2
  366. package/networks/support/UNTraceConfiguration.d.ts +2 -2
  367. package/networks/support/jsonTypes.d.ts +65 -0
  368. package/networks/support/typeUtils.d.ts +0 -1
  369. package/package.json +1 -1
  370. package/popup/ElementExpressionInfo.d.ts +2 -2
  371. package/popup/ExpressionInfo.d.ts +2 -2
  372. package/popup/FieldInfo.d.ts +3 -3
  373. package/popup/LayerOptions.d.ts +2 -2
  374. package/popup/RelatedRecordsInfo.d.ts +2 -2
  375. package/popup/content/AttachmentsContent.d.ts +2 -2
  376. package/popup/content/Content.d.ts +2 -2
  377. package/popup/content/RelationshipContent.d.ts +2 -2
  378. package/popup/content/UtilityNetworkAssociationsContent.d.ts +2 -2
  379. package/popup/content/mixins/MediaInfo.d.ts +2 -2
  380. package/popup/content/support/ChartMediaInfoValue.d.ts +2 -2
  381. package/popup/content/support/ImageMediaInfoValue.d.ts +2 -2
  382. package/popup/support/AttachmentsOrderByInfo.d.ts +3 -3
  383. package/popup/support/FieldInfoFormat.d.ts +3 -3
  384. package/popup/support/RelatedRecordsInfoFieldOrder.d.ts +2 -2
  385. package/popup/support/UtilityNetworkAssociationType.d.ts +3 -3
  386. package/portal/Portal.d.ts +2 -2
  387. package/portal/PortalFolder.d.ts +2 -2
  388. package/portal/PortalGroup.d.ts +2 -2
  389. package/portal/PortalItem.d.ts +2 -2
  390. package/portal/PortalUser.d.ts +2 -2
  391. package/portal/timeUnitKebabDictionary.js +1 -1
  392. package/renderers/FlowRenderer.d.ts +2 -2
  393. package/renderers/PieChartRenderer.d.ts +2 -2
  394. package/renderers/PointCloudRenderer.d.ts +2 -2
  395. package/renderers/RasterColormapRenderer.d.ts +2 -2
  396. package/renderers/RasterShadedReliefRenderer.d.ts +2 -2
  397. package/renderers/RasterStretchRenderer.d.ts +2 -2
  398. package/renderers/Renderer.d.ts +2 -2
  399. package/renderers/VectorFieldRenderer.d.ts +2 -2
  400. package/renderers/support/AttributeColorInfo.d.ts +2 -2
  401. package/renderers/support/AuthoringInfo.d.ts +2 -2
  402. package/renderers/support/AuthoringInfoClassBreakInfo.d.ts +2 -2
  403. package/renderers/support/AuthoringInfoFieldInfo.d.ts +2 -2
  404. package/renderers/support/AuthoringInfoVisualVariable.d.ts +2 -2
  405. package/renderers/support/ClassBreakInfo.d.ts +2 -2
  406. package/renderers/support/ColormapInfo.d.ts +2 -2
  407. package/renderers/support/DotDensityLegendOptions.d.ts +2 -2
  408. package/renderers/support/HeatmapColorStop.d.ts +2 -2
  409. package/renderers/support/HeatmapLegendOptions.d.ts +3 -3
  410. package/renderers/support/OthersCategory.d.ts +3 -3
  411. package/renderers/support/RasterPresetRenderer.d.ts +3 -3
  412. package/renderers/support/RendererLegendOptions.d.ts +3 -3
  413. package/renderers/support/UniqueValue.d.ts +3 -3
  414. package/renderers/support/UniqueValueClass.d.ts +3 -3
  415. package/renderers/support/UniqueValueGroup.d.ts +3 -3
  416. package/renderers/support/UniqueValueInfo.d.ts +2 -2
  417. package/renderers/support/pointCloud/ColorClassBreakInfo.d.ts +2 -2
  418. package/renderers/support/pointCloud/ColorModulation.d.ts +2 -2
  419. package/renderers/support/pointCloud/ColorUniqueValueInfo.d.ts +2 -2
  420. package/renderers/visualVariables/VisualVariable.d.ts +2 -2
  421. package/renderers/visualVariables/support/ColorSizeStop.d.ts +2 -2
  422. package/renderers/visualVariables/support/ColorStop.d.ts +2 -2
  423. package/renderers/visualVariables/support/OpacityStop.d.ts +2 -2
  424. package/renderers/visualVariables/support/SizeStop.d.ts +2 -2
  425. package/renderers/visualVariables/support/VisualVariableLegendOptions.d.ts +3 -3
  426. package/rest/featureService/FeatureService.d.ts +2 -2
  427. package/rest/featureService/types.d.ts +42 -5
  428. package/rest/geoprocessor/GPOptions.d.ts +2 -2
  429. package/rest/geoprocessor/utils.js +1 -1
  430. package/rest/knowledgeGraph/DataModel.d.ts +2 -2
  431. package/rest/knowledgeGraph/FieldIndex.d.ts +2 -2
  432. package/rest/knowledgeGraph/GraphObject.d.ts +2 -2
  433. package/rest/knowledgeGraph/GraphObjectType.d.ts +2 -2
  434. package/rest/knowledgeGraph/GraphProperty.d.ts +2 -2
  435. package/rest/knowledgeGraph/KnowledgeGraph.d.ts +2 -2
  436. package/rest/knowledgeGraph/Path.d.ts +2 -2
  437. package/rest/knowledgeGraph/ServiceDefinition.d.ts +2 -2
  438. package/rest/knowledgeGraph/SourceTypeValueBehavior.d.ts +2 -2
  439. package/rest/knowledgeGraph/toolService/findPaths/CIMFilteredFindPathsConfiguration.d.ts +2 -2
  440. package/rest/knowledgeGraph/toolService/findPaths/CIMFilteredFindPathsEntity.d.ts +2 -2
  441. package/rest/knowledgeGraph/toolService/findPaths/CIMFilteredFindPathsPathFilter.d.ts +2 -2
  442. package/rest/knowledgeGraph/toolService/findPaths/CIMFilteredFindPathsResultJSON.d.ts +0 -1
  443. package/rest/knowledgeGraph/toolService/findPaths/CIMKGTraversalDirection.d.ts +2 -2
  444. package/rest/knowledgeGraph/wasmInterface/WasmDataModelWrapperInterfaces.d.ts +0 -1
  445. package/rest/lastMileDelivery/types.d.ts +0 -1
  446. package/rest/layerSources/DynamicDataLayer.d.ts +2 -2
  447. package/rest/layerSources/DynamicMapLayer.d.ts +2 -2
  448. package/rest/layerSources/JoinTableDataSource.d.ts +2 -2
  449. package/rest/layerSources/QueryTableDataSource.d.ts +2 -2
  450. package/rest/layerSources/RasterDataSource.d.ts +2 -2
  451. package/rest/layerSources/TableDataSource.d.ts +2 -2
  452. package/rest/networks/circuits/exportCircuits.js +1 -1
  453. package/rest/networks/circuits/support/CircuitTraceResult.d.ts +2 -2
  454. package/rest/networks/circuits/support/ExportCircuitsParameters.d.ts +11 -3
  455. package/rest/networks/circuits/support/ExportCircuitsParameters.js +1 -1
  456. package/rest/networks/circuits/support/QueryCircuitsParameters.d.ts +2 -2
  457. package/rest/networks/support/AggregatedGeometry.d.ts +2 -2
  458. package/rest/networks/support/Association.d.ts +2 -2
  459. package/rest/networks/support/AssociationGeometriesResult.d.ts +2 -2
  460. package/rest/networks/support/FunctionResult.d.ts +2 -2
  461. package/rest/networks/support/NetworkElement.d.ts +2 -2
  462. package/rest/networks/support/QueryAssociationsParameters.d.ts +2 -2
  463. package/rest/networks/support/QueryAssociationsResult.d.ts +2 -2
  464. package/rest/networks/support/QueryNamedTraceConfigurationsParameters.d.ts +2 -2
  465. package/rest/networks/support/SynthesizeAssociationGeometriesParameters.d.ts +2 -2
  466. package/rest/networks/support/TraceLocation.d.ts +3 -3
  467. package/rest/networks/support/TraceParameters.d.ts +2 -2
  468. package/rest/networks/support/TraceResult.d.ts +2 -2
  469. package/rest/networks/support/ValidateNetworkTopologyParameters.d.ts +2 -2
  470. package/rest/networks/support/ValidateNetworkTopologyResult.d.ts +2 -2
  471. package/rest/query/support/AttachmentInfo.d.ts +2 -2
  472. package/rest/support/AddressCandidate.d.ts +2 -2
  473. package/rest/support/AddressToLocationsParameters.d.ts +2 -2
  474. package/rest/support/AddressesToLocationsParameters.d.ts +2 -2
  475. package/rest/support/ArealUnit.d.ts +2 -2
  476. package/rest/support/AreasAndLengthsParameters.d.ts +2 -2
  477. package/rest/support/AttachmentQuery.d.ts +2 -2
  478. package/rest/support/AttributeBinsFeatureSet.d.ts +2 -2
  479. package/rest/support/AttributeBinsGrouping.d.ts +3 -3
  480. package/rest/support/AttributeBinsQuery.d.ts +3 -3
  481. package/rest/support/BaseImageMeasureParameters.d.ts +2 -2
  482. package/rest/support/BaseImageMeasureResult.d.ts +2 -2
  483. package/rest/support/BaseImageMeasureResultValue.d.ts +2 -2
  484. package/rest/support/BinParametersBase.d.ts +3 -3
  485. package/rest/support/BufferParameters.d.ts +2 -2
  486. package/rest/support/CameraInfo.d.ts +2 -2
  487. package/rest/support/CameraInfoMixin.d.ts +0 -1
  488. package/rest/support/ClosestFacilityParameters.d.ts +3 -3
  489. package/rest/support/ClosestFacilitySolveResult.d.ts +2 -2
  490. package/rest/support/ColorRamp.d.ts +2 -2
  491. package/rest/support/DataFile.d.ts +2 -2
  492. package/rest/support/DataLayer.d.ts +3 -3
  493. package/rest/support/DateBinTimeInterval.d.ts +3 -3
  494. package/rest/support/DensifyParameters.d.ts +2 -2
  495. package/rest/support/DirectionLine.d.ts +3 -3
  496. package/rest/support/DirectionPoint.d.ts +3 -3
  497. package/rest/support/DirectionsEvent.d.ts +2 -2
  498. package/rest/support/DirectionsString.d.ts +2 -2
  499. package/rest/support/FeatureSet.d.ts +2 -2
  500. package/rest/support/FindImagesParameters.d.ts +3 -3
  501. package/rest/support/FindImagesResult.d.ts +2 -2
  502. package/rest/support/FindParameters.d.ts +2 -2
  503. package/rest/support/FindResult.d.ts +2 -2
  504. package/rest/support/GPMessage.d.ts +2 -2
  505. package/rest/support/GeneralizeParameters.d.ts +2 -2
  506. package/rest/support/IdentifyParameters.d.ts +2 -2
  507. package/rest/support/IdentifyResult.d.ts +2 -2
  508. package/rest/support/ImageAngleParameters.d.ts +2 -2
  509. package/rest/support/ImageAngleResult.d.ts +2 -2
  510. package/rest/support/ImageBoundaryParameters.d.ts +3 -3
  511. package/rest/support/ImageBoundaryResult.d.ts +2 -2
  512. package/rest/support/ImageGPSInfo.d.ts +2 -2
  513. package/rest/support/ImageGPSInfoParameters.d.ts +3 -3
  514. package/rest/support/ImageGPSInfoResult.d.ts +2 -2
  515. package/rest/support/ImageHistogramParameters.d.ts +2 -2
  516. package/rest/support/ImageIdentifyParameters.d.ts +2 -2
  517. package/rest/support/ImageIdentifyResult.d.ts +2 -2
  518. package/rest/support/ImageInspectionInfo.d.ts +2 -2
  519. package/rest/support/ImagePixelLocationParameters.d.ts +2 -2
  520. package/rest/support/ImagePixelLocationResult.d.ts +2 -2
  521. package/rest/support/ImageSample.d.ts +2 -2
  522. package/rest/support/ImageSampleParameters.d.ts +2 -2
  523. package/rest/support/ImageSampleResult.d.ts +2 -2
  524. package/rest/support/ImageToMapMultirayParameters.d.ts +3 -3
  525. package/rest/support/ImageToMapParameters.d.ts +3 -3
  526. package/rest/support/ImageUrlParameters.d.ts +3 -3
  527. package/rest/support/ImageUrlResult.d.ts +2 -2
  528. package/rest/support/ImageVolume.d.ts +2 -2
  529. package/rest/support/ImageVolumeParameters.d.ts +3 -3
  530. package/rest/support/ImageVolumeResult.d.ts +2 -2
  531. package/rest/support/JobInfo.d.ts +2 -2
  532. package/rest/support/LastMileDeliveryParameters.d.ts +3 -3
  533. package/rest/support/LegendLayer.d.ts +2 -2
  534. package/rest/support/LengthsParameters.d.ts +2 -2
  535. package/rest/support/LinearUnit.d.ts +2 -2
  536. package/rest/support/LocateSettingBase.d.ts +3 -3
  537. package/rest/support/LocateSettingSource.d.ts +3 -3
  538. package/rest/support/LocateSettings.d.ts +3 -3
  539. package/rest/support/LocateSettingsOverrides.d.ts +3 -3
  540. package/rest/support/LocationToAddressParameters.d.ts +2 -2
  541. package/rest/support/MapToImageParameters.d.ts +3 -3
  542. package/rest/support/MeasureAreaFromImageResult.d.ts +2 -2
  543. package/rest/support/MeasureFromImageParameters.d.ts +2 -2
  544. package/rest/support/MeasureLengthFromImageResult.d.ts +2 -2
  545. package/rest/support/NetworkUrl.d.ts +3 -3
  546. package/rest/support/NormalizationBinParametersMixin.d.ts +0 -1
  547. package/rest/support/OffsetParameters.d.ts +2 -2
  548. package/rest/support/ParameterValue.d.ts +4 -2
  549. package/rest/support/PointBarrier.d.ts +3 -3
  550. package/rest/support/PolygonBarrier.d.ts +3 -3
  551. package/rest/support/PolylineBarrier.d.ts +3 -3
  552. package/rest/support/ProjectParameters.d.ts +2 -2
  553. package/rest/support/QuantizationParameters.d.ts +2 -2
  554. package/rest/support/Query.d.ts +13 -2
  555. package/rest/support/RasterData.d.ts +2 -2
  556. package/rest/support/RelationParameters.d.ts +2 -2
  557. package/rest/support/RelationshipQuery.d.ts +2 -2
  558. package/rest/support/RouteInfo.d.ts +3 -3
  559. package/rest/support/RouteParameters.d.ts +3 -3
  560. package/rest/support/RouteResult.d.ts +2 -2
  561. package/rest/support/RouteSolveResult.d.ts +2 -2
  562. package/rest/support/ServiceAreaParameters.d.ts +3 -3
  563. package/rest/support/ServiceAreaSolveResult.d.ts +2 -2
  564. package/rest/support/StatisticDefinition.d.ts +2 -2
  565. package/rest/support/Stop.d.ts +3 -3
  566. package/rest/support/SuggestLocationsParameters.d.ts +2 -2
  567. package/rest/support/TimeUnit.d.ts +42 -0
  568. package/rest/support/TimeUnit.js +5 -0
  569. package/rest/support/TopFeaturesQuery.d.ts +2 -2
  570. package/rest/support/TopFilter.d.ts +2 -2
  571. package/rest/support/TravelMode.d.ts +3 -3
  572. package/rest/support/TrimExtendParameters.d.ts +2 -2
  573. package/rest/support/parameterValueUtils.js +1 -1
  574. package/rest/types.d.ts +1 -1
  575. package/rest/versionManagement/gdbVersion/support/AlterVersionParameters.d.ts +2 -2
  576. package/rest/versionManagement/gdbVersion/support/ReconcileParameters.d.ts +2 -2
  577. package/rest/versionManagement/support/CreateVersionParameters.d.ts +2 -2
  578. package/rest/versionManagement/support/GetVersionInfosParameters.d.ts +2 -2
  579. package/statistics/types.d.ts +0 -1
  580. package/support/MapFloorInfo.d.ts +2 -2
  581. package/support/revision.js +1 -1
  582. package/symbols/Font.d.ts +2 -2
  583. package/symbols/LineStyleMarker3D.d.ts +3 -3
  584. package/symbols/LineSymbolMarker.d.ts +2 -2
  585. package/symbols/Symbol.d.ts +2 -2
  586. package/symbols/Symbol3DLayer.d.ts +2 -2
  587. package/symbols/callouts/Callout3D.d.ts +2 -2
  588. package/symbols/callouts/LineCallout3DBorder.d.ts +2 -2
  589. package/symbols/edges/Edges3D.d.ts +2 -2
  590. package/symbols/patterns/LinePattern3D.d.ts +2 -2
  591. package/symbols/patterns/Pattern3D.d.ts +2 -2
  592. package/symbols/support/ElevationInfo.d.ts +10 -4
  593. package/symbols/support/FeatureExpressionInfo.d.ts +2 -2
  594. package/symbols/support/IconSymbol3DLayerResource.d.ts +2 -2
  595. package/symbols/support/ObjectSymbol3DLayerResource.d.ts +2 -2
  596. package/symbols/support/OccludedVisibility.d.ts +3 -3
  597. package/symbols/support/Symbol3DFillMaterial.js +1 -1
  598. package/symbols/support/Symbol3DHalo.d.ts +2 -2
  599. package/symbols/support/Symbol3DIconOutline.d.ts +2 -2
  600. package/symbols/support/Symbol3DMaterial.d.ts +6 -4
  601. package/symbols/support/Symbol3DMaterial.js +1 -1
  602. package/symbols/support/Symbol3DOutline.d.ts +2 -2
  603. package/symbols/support/Symbol3DTextBackground.d.ts +3 -3
  604. package/symbols/support/Symbol3DVerticalOffset.d.ts +2 -2
  605. package/symbols/support/symbolUtils.js +1 -1
  606. package/symbols/support/types.d.ts +0 -1
  607. package/tables/AttributeTableTemplate.d.ts +2 -2
  608. package/tables/elements/AttributeTableAttachmentElement.d.ts +2 -2
  609. package/tables/elements/AttributeTableElement.d.ts +2 -2
  610. package/tables/elements/AttributeTableFieldElement.d.ts +2 -2
  611. package/tables/elements/AttributeTableGroupElement.d.ts +2 -2
  612. package/tables/elements/AttributeTableRelationshipElement.d.ts +2 -2
  613. package/tables/support/FieldOrder.d.ts +3 -3
  614. package/time/TimeExtent.d.ts +2 -2
  615. package/time/TimeExtent.js +1 -1
  616. package/time/TimeInterval.d.ts +3 -3
  617. package/time/types.d.ts +0 -1
  618. package/versionManagement/VersionManagementService.d.ts +2 -2
  619. package/versionManagement/VersioningState.d.ts +2 -2
  620. package/versionManagement/support/type.d.ts +0 -1
  621. package/views/2d/ViewState.d.ts +2 -2
  622. package/views/2d/engine/webgl/shaders/sources/shaderRepository.js +1 -1
  623. package/views/2d/layers/imagery/BaseImageryTileSubView2D.js +1 -1
  624. package/views/2d/layers/imagery/ImageryTileView2D.js +1 -1
  625. package/views/2d/layers/support/MediaLayerInteractionOptions.d.ts +0 -1
  626. package/views/3d/analysis/Dimension/types.d.ts +0 -1
  627. package/views/3d/analysis/Slice/types.d.ts +0 -1
  628. package/views/3d/analysis/Viewshed/types.d.ts +0 -1
  629. package/views/3d/analysis/VolumeMeasurement/VolumeMeasurementShiftTool.js +1 -1
  630. package/views/3d/camera/intersectionUtils.js +1 -1
  631. package/views/3d/constraints/AltitudeConstraint.d.ts +2 -2
  632. package/views/3d/constraints/ClipDistanceConstraint.d.ts +2 -2
  633. package/views/3d/constraints/Constraints.d.ts +2 -2
  634. package/views/3d/constraints/TiltConstraint.d.ts +2 -2
  635. package/views/3d/environment/CloudyWeather.d.ts +2 -2
  636. package/views/3d/environment/FoggyWeather.d.ts +2 -2
  637. package/views/3d/environment/RainyWeather.d.ts +2 -2
  638. package/views/3d/environment/SnowyWeather.d.ts +2 -2
  639. package/views/3d/environment/SunLighting.d.ts +2 -2
  640. package/views/3d/environment/SunnyWeather.d.ts +2 -2
  641. package/views/3d/environment/VirtualLighting.d.ts +2 -2
  642. package/views/3d/layers/ElevationLayerView3D.js +1 -1
  643. package/views/3d/layers/FlowSubView3D.js +1 -1
  644. package/views/3d/layers/graphics/Graphics3DObjectSymbolLayer.js +1 -1
  645. package/views/3d/support/flow/FlowSubViewTiles3D.js +1 -1
  646. package/views/3d/support/gaussianSplatting/GaussianSplatDataStore.js +1 -1
  647. package/views/3d/support/pointsOfInterest/StableSurfaceCenter.js +1 -1
  648. package/views/3d/webgl/ManagedFBO.js +1 -1
  649. package/views/3d/webgl/ManagedFBOResource.d.ts +0 -1
  650. package/views/3d/webgl/RenderNode.d.ts +1 -1
  651. package/views/3d/webgl/RenderNode.js +1 -1
  652. package/views/3d/webgl/types.d.ts +0 -1
  653. package/views/3d/webgl-engine/collections/Component/Material/ComponentMaterial.js +1 -1
  654. package/views/3d/webgl-engine/effects/debug/RenderNodeVisualizerNode.js +1 -1
  655. package/views/3d/webgl-engine/effects/focusArea/FocusAreaMaskNode.js +1 -1
  656. package/views/3d/webgl-engine/effects/highlight/ShadowHighlight.js +1 -1
  657. package/views/3d/webgl-engine/effects/smaa/SMAA.js +1 -1
  658. package/views/3d/webgl-engine/lib/CutFillColor.js +1 -1
  659. package/views/3d/webgl-engine/lib/CutFillDepth.js +1 -1
  660. package/views/3d/webgl-engine/lib/GPUPointOcclusionQuery.js +1 -1
  661. package/views/3d/webgl-engine/lib/GaussianSplatRenderNode.js +1 -1
  662. package/views/3d/webgl-engine/lib/Renderer.js +1 -1
  663. package/views/3d/webgl-engine/statistics/RendererPerformanceInfo.js +1 -1
  664. package/views/3d/webgl.d.ts +16 -8
  665. package/views/3d/webgl.js +1 -1
  666. package/views/Theme.d.ts +2 -2
  667. package/views/VideoView.d.ts +4 -4
  668. package/views/View.d.ts +3 -3
  669. package/views/View2D.d.ts +2 -2
  670. package/views/ViewAnimation.d.ts +2 -2
  671. package/views/Viewport2DMixin.d.ts +0 -2
  672. package/views/analysis/ElevationProfile/ElevationProfileResult.d.ts +2 -2
  673. package/views/animation/types.d.ts +0 -1
  674. package/views/draw/CursorUpdateEvent.d.ts +0 -1
  675. package/views/draw/DrawAction.d.ts +3 -3
  676. package/views/draw/DrawCompleteEvent.d.ts +0 -1
  677. package/views/draw/VertexAddEvent.d.ts +0 -1
  678. package/views/draw/VertexRemoveEvent.d.ts +0 -1
  679. package/views/draw/support/managers/{DrawTooltipManager.js → TooltipManager.js} +1 -1
  680. package/views/draw/types.d.ts +0 -1
  681. package/views/interactive/Tooltip.d.ts +2 -2
  682. package/views/interactive/snapping/SelfSnappingEngine.js +1 -1
  683. package/views/interactive/snapping/SnappingContext.js +1 -1
  684. package/views/interactive/tooltip/types.d.ts +0 -1
  685. package/views/layers/ImageryTileLayerViewMixin.d.ts +0 -1
  686. package/views/layers/LayerView.d.ts +3 -3
  687. package/views/layers/SceneLayerView.js +1 -1
  688. package/views/layers/types.d.ts +0 -1
  689. package/views/navigation/types.d.ts +0 -1
  690. package/views/support/AttributionItem.d.ts +0 -1
  691. package/views/ui/UI.d.ts +2 -2
  692. package/webdoc/GeotriggersInfo.d.ts +3 -3
  693. package/webdoc/IPSInfo.d.ts +3 -3
  694. package/webdoc/Widgets.d.ts +2 -2
  695. package/webdoc/applicationProperties/Search.d.ts +2 -2
  696. package/webdoc/applicationProperties/SearchLayer.d.ts +2 -2
  697. package/webdoc/applicationProperties/SearchLayerField.d.ts +2 -2
  698. package/webdoc/applicationProperties/SearchTable.d.ts +2 -2
  699. package/webdoc/applicationProperties/SearchTableField.d.ts +2 -2
  700. package/webdoc/applicationProperties/Viewing.d.ts +2 -2
  701. package/webdoc/geotriggersInfo/DeviceLocationFeed.d.ts +3 -3
  702. package/webdoc/geotriggersInfo/ExpressionInfo.d.ts +3 -3
  703. package/webdoc/geotriggersInfo/FeatureFenceParameters.d.ts +3 -3
  704. package/webdoc/geotriggersInfo/FeatureFilter.d.ts +3 -3
  705. package/webdoc/geotriggersInfo/FeatureLayerSource.d.ts +3 -3
  706. package/webdoc/geotriggersInfo/Geotrigger.d.ts +3 -3
  707. package/webdoc/geotriggersInfo/GeotriggerNotificationOptions.d.ts +3 -3
  708. package/webdoc/geotriggersInfo/support/typeUtils.d.ts +0 -1
  709. package/webdoc/ips/AppleIPSProperties.d.ts +3 -3
  710. package/webdoc/ips/Configuration.d.ts +3 -3
  711. package/webdoc/ips/GNSSProperties.d.ts +3 -3
  712. package/webdoc/ips/PathSnappingProperties.d.ts +3 -3
  713. package/webdoc/ips/PositioningService.d.ts +3 -3
  714. package/webdoc/ips/SmoothingProperties.d.ts +3 -3
  715. package/webdoc/support/SlideThumbnail.d.ts +3 -3
  716. package/webdoc/support/types.d.ts +0 -1
  717. package/webdoc/widgets/FloorFilter.d.ts +2 -2
  718. package/webdoc/widgets/TimeSlider.d.ts +2 -2
  719. package/webmap/ApplicationProperties.d.ts +2 -2
  720. package/webmap/Bookmark.d.ts +2 -2
  721. package/webmap/InitialViewProperties.d.ts +2 -2
  722. package/webmap/background/ColorBackground.d.ts +2 -2
  723. package/webscene/ApplicationProperties.d.ts +2 -2
  724. package/webscene/Environment.d.ts +2 -2
  725. package/webscene/InitialViewProperties.d.ts +3 -3
  726. package/webscene/Presentation.d.ts +3 -3
  727. package/webscene/Slide.d.ts +4 -4
  728. package/webscene/SlideLegendInfo.d.ts +3 -3
  729. package/webscene/SunLighting.d.ts +2 -2
  730. package/webscene/VirtualLighting.d.ts +2 -2
  731. package/webscene/background/Background.d.ts +2 -2
  732. package/webscene/support/Description.d.ts +3 -3
  733. package/webscene/support/FeatureReference.d.ts +3 -3
  734. package/webscene/support/FeatureReferenceId.d.ts +3 -3
  735. package/webscene/support/LayerReference.d.ts +3 -3
  736. package/webscene/support/SlideElements.d.ts +3 -3
  737. package/webscene/support/SlideEnvironment.d.ts +3 -3
  738. package/webscene/support/SlideGround.d.ts +3 -3
  739. package/webscene/support/SlidePopupInfo.d.ts +3 -3
  740. package/webscene/support/SlideVisibleLayer.d.ts +3 -3
  741. package/webscene/support/Title.d.ts +3 -3
  742. package/widgets/Attachments/types.d.ts +0 -1
  743. package/widgets/BasemapGallery/support/PortalBasemapsSource.d.ts +2 -2
  744. package/widgets/BasemapLayerList/BasemapLayerListViewModel.d.ts +2 -2
  745. package/widgets/BasemapLayerList/types.d.ts +0 -1
  746. package/widgets/BatchAttributeForm/BatchAttributeFormViewModel.d.ts +20 -2
  747. package/widgets/BatchAttributeForm.d.ts +2 -0
  748. package/widgets/BatchAttributeForm.js +1 -1
  749. package/widgets/Bookmarks/BookmarksViewModel.d.ts +2 -2
  750. package/widgets/CatalogLayerList/CatalogLayerListViewModel.d.ts +2 -2
  751. package/widgets/CatalogLayerList/types.d.ts +0 -1
  752. package/widgets/CoordinateConversion/CoordinateConversionViewModel.d.ts +2 -2
  753. package/widgets/Daylight/DaylightViewModel.d.ts +2 -2
  754. package/widgets/Daylight/types.d.ts +0 -1
  755. package/widgets/DirectionalPad/DirectionalPadViewModel.d.ts +2 -2
  756. package/widgets/DirectionalPad/types.d.ts +0 -1
  757. package/widgets/Directions/DirectionsViewModel.d.ts +2 -2
  758. package/widgets/Editor/CreateFeaturesWorkflow.js +1 -1
  759. package/widgets/Editor/EditorViewModel.d.ts +2 -2
  760. package/widgets/Editor/UpdateFeaturesWorkflowData.d.ts +2 -2
  761. package/widgets/Editor/Workflow.d.ts +2 -2
  762. package/widgets/Editor/workflowUtils.js +1 -1
  763. package/widgets/ElevationProfile/ElevationProfileLine.d.ts +2 -2
  764. package/widgets/Feature/support/featureUtils.js +1 -1
  765. package/widgets/FeatureForm/FeatureFormViewModel.d.ts +3 -3
  766. package/widgets/FeatureTable/FeatureTableViewModel.d.ts +43 -4
  767. package/widgets/FeatureTable/FeatureTableViewModel.js +1 -1
  768. package/widgets/FeatureTable/Grid/GridViewModel.d.ts +2 -2
  769. package/widgets/FeatureTable/Grid/types.d.ts +7 -1
  770. package/widgets/FeatureTable/support/ColumnTemplateBase.d.ts +3 -3
  771. package/widgets/FeatureTable/support/EditableColumnTemplateMixin.d.ts +0 -1
  772. package/widgets/FeatureTable/support/FeatureStore.js +1 -1
  773. package/widgets/FeatureTable/support/TableTemplate.d.ts +3 -3
  774. package/widgets/FeatureTable.d.ts +43 -4
  775. package/widgets/FeatureTable.js +1 -1
  776. package/widgets/FeatureTemplates/FeatureTemplatesViewModel.d.ts +2 -2
  777. package/widgets/Features/FeaturesViewModel.d.ts +2 -2
  778. package/widgets/Histogram/types.d.ts +0 -1
  779. package/widgets/HistogramRangeSlider/types.d.ts +0 -1
  780. package/widgets/Home/HomeViewModel.d.ts +2 -2
  781. package/widgets/Home.d.ts +1 -2
  782. package/widgets/LayerList/LayerListViewModel.d.ts +2 -2
  783. package/widgets/Legend/support/ActiveLayerInfo.js +1 -1
  784. package/widgets/LinkChartLayoutSwitcher/LinkChartLayoutSwitcherViewModel.d.ts +2 -2
  785. package/widgets/Measurement/types.d.ts +0 -1
  786. package/widgets/OrientedImageryViewer/OrientedImageryViewerViewModel.d.ts +3 -3
  787. package/widgets/OrientedImageryViewer/types.d.ts +0 -1
  788. package/widgets/Print/CustomTemplate.d.ts +2 -2
  789. package/widgets/Print/PrintViewModel.d.ts +3 -3
  790. package/widgets/ScaleRangeSlider/types.d.ts +0 -1
  791. package/widgets/Search/SearchSource.d.ts +2 -2
  792. package/widgets/Search/SearchViewModel.d.ts +8 -4
  793. package/widgets/Search/SearchViewModel.js +1 -1
  794. package/widgets/Search/support/layerSearchUtils.js +1 -1
  795. package/widgets/Search.js +1 -1
  796. package/widgets/ShadowCast/types.d.ts +0 -1
  797. package/widgets/Sketch/SketchViewModel.d.ts +2 -2
  798. package/widgets/Swipe/types.d.ts +0 -1
  799. package/widgets/TableList/TableListViewModel.d.ts +2 -2
  800. package/widgets/TimeSlider/TimeSliderViewModel.d.ts +2 -2
  801. package/widgets/Track/types.d.ts +0 -1
  802. package/widgets/UtilityNetworkTrace/UtilityNetworkTraceViewModel.d.ts +2 -2
  803. package/widgets/ValuePicker/types.d.ts +0 -1
  804. package/widgets/Weather/types.d.ts +0 -1
  805. package/widgets/Widget.d.ts +3 -3
  806. package/widgets/support/GeolocationPositioning.d.ts +2 -2
  807. package/widgets/support/GridControls/GridControlsViewModel.d.ts +2 -2
  808. package/widgets/support/GridControls/types.d.ts +0 -1
  809. package/widgets/support/forms/types.d.ts +0 -1
  810. package/widgets/types.d.ts +1 -2
  811. package/assets/esri/core/workers/chunks/21ac84b5c7dedcfd747d.js +0 -2
  812. package/assets/esri/core/workers/chunks/22503abc06354741d28a.js +0 -1
  813. package/assets/esri/core/workers/chunks/3606fc5537c4d11b9554.js +0 -1
  814. package/assets/esri/core/workers/chunks/3ad7ec46adecf00ae1c2.js +0 -1
  815. package/assets/esri/core/workers/chunks/3b67aa46a60e35469bf8.js +0 -1
  816. package/assets/esri/core/workers/chunks/4b09d92c51c4619b548a.js +0 -1
  817. package/assets/esri/core/workers/chunks/52684c2abc9e8ce793cf.js +0 -1
  818. package/assets/esri/core/workers/chunks/532935f420ed5f13c011.js +0 -1
  819. package/assets/esri/core/workers/chunks/5348e4dc55428de9bba7.js +0 -1
  820. package/assets/esri/core/workers/chunks/534ed6574e4a1613ba05.js +0 -2
  821. package/assets/esri/core/workers/chunks/53a1c6e008287d1f12f0.js +0 -1
  822. package/assets/esri/core/workers/chunks/5aee84e827e6fcc9c4c4.js +0 -2
  823. package/assets/esri/core/workers/chunks/5fc6cada83bf8462d54c.js +0 -1
  824. package/assets/esri/core/workers/chunks/7b2f848947b296c7c785.js +0 -1
  825. package/assets/esri/core/workers/chunks/7f76566d9b3801742387.js +0 -1
  826. package/assets/esri/core/workers/chunks/81e395a93c67749c6487.js +0 -1
  827. package/assets/esri/core/workers/chunks/8deae3a426eceae73186.js +0 -1
  828. package/assets/esri/core/workers/chunks/90a53bfe95ed687c28c1.js +0 -2
  829. package/assets/esri/core/workers/chunks/911912b0ef7ffed875be.js +0 -1
  830. package/assets/esri/core/workers/chunks/a4ee92867ad5cde25aed.js +0 -1
  831. package/assets/esri/core/workers/chunks/ab3e457c82fa9bd0203f.js +0 -1
  832. package/assets/esri/core/workers/chunks/af3d4eba6fe24db3ceba.js +0 -1
  833. package/assets/esri/core/workers/chunks/b1085fa91724e2d3b24f.js +0 -1
  834. package/assets/esri/core/workers/chunks/b48b0f512a1cd7226bdc.js +0 -1
  835. package/assets/esri/core/workers/chunks/c0265669fb616f052b65.js +0 -1
  836. package/assets/esri/core/workers/chunks/c16115cfbca879dd6717.js +0 -1
  837. package/assets/esri/core/workers/chunks/d3c69c9cb3d9c3f5c67a.js +0 -1
  838. package/assets/esri/core/workers/chunks/d477def8bfd8482596d1.js +0 -1
  839. package/assets/esri/core/workers/chunks/dd30c1f5da0af72becd1.js +0 -1
  840. package/assets/esri/core/workers/chunks/dfef6e3d7bbf099de498.js +0 -1
  841. package/assets/esri/core/workers/chunks/e3d3fc87789fd711f161.js +0 -2
  842. package/assets/esri/core/workers/chunks/ef519984fa691aad8d87.js +0 -2
  843. package/layers/support/ElevationTileData.d.ts +0 -32
  844. package/rest/geoprocessor/execute.d.ts +0 -6
  845. /package/layers/buildingSublayers/{utils.d.ts → types.d.ts} +0 -0
@@ -2,4 +2,4 @@
2
2
  All material copyright Esri, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/5.0/esri/copyright.txt for details.
4
4
  */
5
- import{__decorate as t}from"tslib";import{deg2rad as i}from"../../../../core/mathUtils.js";import{valueInUnit as o}from"../../../../core/quantity.js";import{watch as e,sync as s,syncAndInitial as a}from"../../../../core/reactiveUtils.js";import{verticalLengthUnitFromSpatialReference as n,convertUnit as r}from"../../../../core/units.js";import{property as l,subclass as p}from"../../../../core/accessorSupport/decorators.js";import{rotateZ as h}from"../../../../core/libs/gl-matrix-2/math/mat4.js";import{subtract as c,lerp as u}from"../../../../core/libs/gl-matrix-2/math/vec3.js";import{fromArray as d,clone as m}from"../../../../core/libs/gl-matrix-2/factories/vec3f64.js";import{sv3d as f,sm4d as v}from"../../../../geometry/support/vectorStacks.js";import{ShiftManipulator as y}from"../Slice/ShiftManipulator.js";import{IsShiftEdgeOnScreenFlag as _}from"../Slice/sliceToolUtils.js";import{calculateTranslateRotateFromBases as w}from"../../interactive/manipulatorUtils.js";import{screenToZConstrained as g}from"../../interactive/editingTools/dragEventPipeline3D.js";import{createManipulatorDragEventPipeline as T,addMapTranslation as U}from"../../../interactive/dragEventPipeline.js";import{InteractiveToolBase as j}from"../../../interactive/InteractiveToolBase.js";import M from"../../../interactive/sketch/SketchOptions.js";import O from"../../../interactive/sketch/Units.js";import{makeTooltip as k,enterInputModeIfAvailable as V}from"../../../interactive/tooltip/tooltipCommonUtils.js";import{ElevationTooltipInfo as S}from"../../../interactive/tooltip/infos/ElevationTooltipInfo.js";import{elevationFromZ as E}from"../../../support/euclideanLengthMeasurementUtils.js";let I=class extends j{constructor(t){super(t),this.multiTouchEnabled=!1,this.sketchOptions=new M}initialize(){const{view:t}=this;this._shiftManipulator=new y(t,0),this._shiftManipulator.state|=_,this.manipulators.add(this._shiftManipulator),this.addHandles([this._createDragPipeline(),e(()=>this.analysisViewData.targetGeometry,()=>this._updateManipulatorPosition(),s),e(()=>[this.analysisViewData.interactive,this.analysisViewData.targetGeometry,this.analysis.measureType],()=>this._updateManipulatorVisibility(),a)]),this._initializeTooltip(),this.finishToolCreation()}_initializeTooltip(){const{view:t}=this;this.tooltip=k(()=>({view:t,options:this.sketchOptions.tooltips})),this._tooltipInfo=new S({sketchOptions:this.sketchOptions}),this.sketchOptions.tooltips.placement="trailing",this._updateSketchOptions(),this.addHandles([e(()=>this.analysisViewData.effectiveTargetElevation,()=>this._updateTooltip()),e(()=>this._shouldShowTooltip,t=>{t?this._showTooltip():this._hideTooltip()}),this.tooltip.on("commit",()=>{const t=this._tooltipInfo.elevation.actual,i=n(this.view.spatialReference);if(null==t||null==i)return;const e=o(t,i);this._updateValue(e,{recordUndo:this.analysis.cutFillOptions.targetElevation})}),e(()=>[this.analysis.displayUnits.elevation,this.analysis.inputUnits.elevation],()=>this._updateSketchOptions(),a)])}destroy(){this._shiftManipulator.destroy(),this.tooltip.destroy()}onInputEvent(t){if(!this.destroyed&&!V(t,this.tooltip))return super.onInputEvent(t)}get _shouldShowTooltip(){return this.hasFocusedManipulators||"input"===this.tooltip.mode}_createDragPipeline(){return T(this._shiftManipulator,(t,i,o)=>{const e=m(t.renderLocation),s=this.analysis.inputUnits.elevation??"meters",a=n(this.view.spatialReference);let l;i.next(g(this.view,e,this.view.spatialReference)).next(U()).next(t=>{if("start"===t.action){const{targetElevation:t}=this.analysis.cutFillOptions;l=t&&a?r(t,s,a):void 0}return this._updateValue(null!=l?l+t.translationZ:t.mapEnd.z,"end"===t.action?{recordUndo:l}:void 0),t}),o.next(()=>{this._updateValue(l)})})}_updateManipulatorPosition(){const{targetGeometry:t}=this.analysisViewData,{renderCoordsHelper:o}=this.view;if(!t)return;const e=.5,s=t.rings[0],a=d(s[0]),n=d(s[1]);o.toRenderCoords(a,t.spatialReference,a),o.toRenderCoords(n,t.spatialReference,n);const r=f.get();c(r,n,a);const l=f.get();u(l,a,n,e);const p=o.worldBasisAtPosition(l,1,f.get()),y=o.worldBasisAtPosition(l,0,f.get()),_=w(p,y,l,v.get()),g=o.headingAtPosition(l,r),T=t.isClockwise(t.rings[0])?-Math.PI/2:Math.PI/2;h(_,_,i(g)+T),_[12]=0,_[13]=0,_[14]=0,this._shiftManipulator.renderLocation=m(l),this._shiftManipulator.modelTransform=_}_updateManipulatorVisibility(){const{interactive:t,targetGeometry:i}=this.analysisViewData,{measureType:o}=this.analysis,e=t&&null!=i&&"cut-fill"===o;this._shiftManipulator.available=e}_updateValue(t,i){const o=E(t,this.view.spatialReference);if(null==o)return;const e=this.analysis.inputUnits.elevation??"meters",s=r(o.value,o.unit,e),a=t=>{this.analysis.cutFillOptions.targetElevation=t};if(a(s),i&&"recordUndo"in i){const t=i.recordUndo;this.emit("record-undo",{apply:()=>a(s),undo:()=>a(t)})}}_getUpdatedTooltipInfo(){const{effectiveTargetElevation:t}=this.analysisViewData;return t?(this._tooltipInfo.elevation.actual=E(t,this.view.spatialReference),this._tooltipInfo):this._tooltipInfo}_updateTooltip(){this._shouldShowTooltip&&(this.tooltip.info=this._getUpdatedTooltipInfo())}_showTooltip(){this._updateTooltip()}_hideTooltip(){this.tooltip?.clear()}_updateSketchOptions(){const{analysis:t}=this,{displayUnits:i,inputUnits:o}=t;this.sketchOptions.values.inputUnits=new O({verticalLength:o.elevation}),this.sketchOptions.values.displayUnits=new O({verticalLength:i.elevation})}};t([l()],I.prototype,"multiTouchEnabled",void 0),t([l({constructOnly:!0})],I.prototype,"analysis",void 0),t([l({constructOnly:!0})],I.prototype,"view",void 0),t([l({constructOnly:!0})],I.prototype,"analysisViewData",void 0),t([l({constructOnly:!0,type:M})],I.prototype,"sketchOptions",void 0),t([l()],I.prototype,"_shouldShowTooltip",null),I=t([p("esri.views.3d.analysis.VolumeMeasurement.VolumeMeasurementShiftTool")],I);export{I as VolumeMeasurementShiftTool};
5
+ import{__decorate as t}from"tslib";import{deg2rad as i}from"../../../../core/mathUtils.js";import{valueInUnit as o}from"../../../../core/quantity.js";import{watch as e,sync as s,syncAndInitial as n}from"../../../../core/reactiveUtils.js";import{verticalLengthUnitFromSpatialReference as a,convertUnit as r}from"../../../../core/units.js";import{property as l,subclass as p}from"../../../../core/accessorSupport/decorators.js";import{rotateZ as h}from"../../../../core/libs/gl-matrix-2/math/mat4.js";import{subtract as c,lerp as u}from"../../../../core/libs/gl-matrix-2/math/vec3.js";import{fromArray as d,clone as m}from"../../../../core/libs/gl-matrix-2/factories/vec3f64.js";import{sv3d as f,sm4d as v}from"../../../../geometry/support/vectorStacks.js";import{ShiftManipulator as y}from"../Slice/ShiftManipulator.js";import{IsShiftEdgeOnScreenFlag as _}from"../Slice/sliceToolUtils.js";import{calculateTranslateRotateFromBases as w}from"../../interactive/manipulatorUtils.js";import{screenToZConstrained as g}from"../../interactive/editingTools/dragEventPipeline3D.js";import{createManipulatorDragEventPipeline as T,addMapTranslation as M}from"../../../interactive/dragEventPipeline.js";import{InteractiveToolBase as U}from"../../../interactive/InteractiveToolBase.js";import j from"../../../interactive/sketch/SketchOptions.js";import O from"../../../interactive/sketch/Units.js";import{makeTooltip as k,enterInputModeIfAvailable as S}from"../../../interactive/tooltip/tooltipCommonUtils.js";import{ElevationTooltipInfo as V}from"../../../interactive/tooltip/infos/ElevationTooltipInfo.js";import{elevationFromZ as E}from"../../../support/euclideanLengthMeasurementUtils.js";let I=class extends U{constructor(t){super(t),this.multiTouchEnabled=!1,this.sketchOptions=new j}initialize(){const{view:t}=this;this._shiftManipulator=new y(t,0),this._shiftManipulator.state|=_,this.manipulators.add(this._shiftManipulator),this.addHandles([this._createDragPipeline(),e(()=>this.analysisViewData.targetGeometry,()=>this._updateManipulatorPosition(),s),e(()=>this._showManipulator,t=>this._updateManipulatorVisibility(t),n)]),this._initializeTooltip(),this.finishToolCreation()}_initializeTooltip(){const{view:t}=this;this.tooltip=k(()=>({view:t,options:this.sketchOptions.tooltips})),this._tooltipInfo=new V({sketchOptions:this.sketchOptions}),this.sketchOptions.tooltips.placement="trailing",this._updateSketchOptions(),this.addHandles([e(()=>this.analysisViewData.effectiveTargetElevation,()=>this._updateTooltip()),e(()=>this._shouldShowTooltip,t=>{t?this._showTooltip():this._hideTooltip()}),this.tooltip.on("commit",()=>{const t=this._tooltipInfo.elevation.actual,i=a(this.view.spatialReference);if(null==t||null==i)return;const e=o(t,i);this._updateValue(e,{recordUndo:this.analysis.cutFillOptions.targetElevation})}),e(()=>[this.analysis.displayUnits.elevation,this.analysis.inputUnits.elevation],()=>this._updateSketchOptions(),n)])}destroy(){this._shiftManipulator.destroy(),this.tooltip.destroy()}onInputEvent(t){if(!this.destroyed&&!S(t,this.tooltip))return super.onInputEvent(t)}get _shouldShowTooltip(){return this.hasFocusedManipulators||"input"===this.tooltip.mode}get _showManipulator(){const{interactive:t,targetGeometry:i,visible:o}=this.analysisViewData,{measureType:e}=this.analysis;return o&&t&&null!=i&&"cut-fill"===e}_createDragPipeline(){return T(this._shiftManipulator,(t,i,o)=>{const e=m(t.renderLocation),s=this.analysis.inputUnits.elevation??"meters",n=a(this.view.spatialReference);let l;i.next(g(this.view,e,this.view.spatialReference)).next(M()).next(t=>{if("start"===t.action){const{targetElevation:t}=this.analysis.cutFillOptions;l=t&&n?r(t,s,n):void 0}return this._updateValue(null!=l?l+t.translationZ:t.mapEnd.z,"end"===t.action?{recordUndo:l}:void 0),t}),o.next(()=>{this._updateValue(l)})})}_updateManipulatorPosition(){const{targetGeometry:t}=this.analysisViewData,{renderCoordsHelper:o}=this.view;if(!t)return;const e=.5,s=t.rings[0],n=d(s[0]),a=d(s[1]);o.toRenderCoords(n,t.spatialReference,n),o.toRenderCoords(a,t.spatialReference,a);const r=f.get();c(r,a,n);const l=f.get();u(l,n,a,e);const p=o.worldBasisAtPosition(l,1,f.get()),y=o.worldBasisAtPosition(l,0,f.get()),_=w(p,y,l,v.get()),g=o.headingAtPosition(l,r),T=t.isClockwise(t.rings[0])?-Math.PI/2:Math.PI/2;h(_,_,i(g)+T),_[12]=0,_[13]=0,_[14]=0,this._shiftManipulator.renderLocation=m(l),this._shiftManipulator.modelTransform=_}_updateManipulatorVisibility(t){this._shiftManipulator.available=t}_updateValue(t,i){const o=E(t,this.view.spatialReference);if(null==o)return;const e=this.analysis.inputUnits.elevation??"meters",s=r(o.value,o.unit,e),n=t=>{this.analysis.cutFillOptions.targetElevation=t};if(n(s),i&&"recordUndo"in i){const t=i.recordUndo;this.emit("record-undo",{apply:()=>n(s),undo:()=>n(t)})}}_getUpdatedTooltipInfo(){const{effectiveTargetElevation:t}=this.analysisViewData;return t?(this._tooltipInfo.elevation.actual=E(t,this.view.spatialReference),this._tooltipInfo):this._tooltipInfo}_updateTooltip(){this._shouldShowTooltip&&(this.tooltip.info=this._getUpdatedTooltipInfo())}_showTooltip(){this._updateTooltip()}_hideTooltip(){this.tooltip?.clear()}_updateSketchOptions(){const{analysis:t}=this,{displayUnits:i,inputUnits:o}=t;this.sketchOptions.values.inputUnits=new O({verticalLength:o.elevation}),this.sketchOptions.values.displayUnits=new O({verticalLength:i.elevation})}};t([l()],I.prototype,"multiTouchEnabled",void 0),t([l({constructOnly:!0})],I.prototype,"analysis",void 0),t([l({constructOnly:!0})],I.prototype,"view",void 0),t([l({constructOnly:!0})],I.prototype,"analysisViewData",void 0),t([l({constructOnly:!0,type:j})],I.prototype,"sketchOptions",void 0),t([l()],I.prototype,"_shouldShowTooltip",null),t([l()],I.prototype,"_showManipulator",null),I=t([p("esri.views.3d.analysis.VolumeMeasurement.VolumeMeasurementShiftTool")],I);export{I as VolumeMeasurementShiftTool};
@@ -2,4 +2,4 @@
2
2
  All material copyright Esri, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/5.0/esri/copyright.txt for details.
4
4
  */
5
- import{copy as e,squaredDistance as r,scale as t,subtract as n,add as i,dot as o,length as s}from"../../../core/libs/gl-matrix-2/math/vec3.js";import{create as a}from"../../../core/libs/gl-matrix-2/factories/vec3f64.js";import{getReferenceEllipsoid as c}from"../../../geometry/ellipsoidUtils.js";import{containsPoint as l}from"../../../geometry/support/aaBoundingRect.js";import{Intersector as d}from"../webgl-engine/lib/Intersector.js";function u(e,r,t,n){return null!=e.renderCoordsHelper.fromRenderCoords(r.eye,M,n)&&l(t,M)}function g(e,r){return e.elevationProvider?e.elevationProvider.getElevation(r[0],r[1],r[2],e.renderCoordsHelper.spatialReference,"ground")??0:0}function f(o,s,a,c){const l=o.state.camera.clone();s&&a&&c&&(l.eye=s,l.center=a,l.up=c),p(o,l.ray,w)||e(w,l.center);const d=o.state.constraints,u=d.minimumPoiDistance;if(r(l.eye,w)<u){const r=d.collision.enabled;e(H,l.viewForward),t(H,H,u),r?l.eye=n(M,w,H):i(w,l.eye,H);const s=o.renderCoordsHelper,a=s.getAltitude(l.eye),c=d.collision.elevationMargin;r&&a<c&&(n(H,w,l.eye),l.eye=s.setAltitude(M,c,l.eye),i(w,l.eye,H))}return l.center=w,l}function m(e,t,n){if(!e.state.isGlobal||!e.stateManager.constraintsManager)return!1;const i=g(e,t),o=e.stateManager.constraintsManager.nearFarHeuristic.computeFarDistance(t,i,e.stage.renderer.sceneDepthRange.value.far),s=o*o;return r(t,n)>s}function p(e,r,t){let n=y[e.viewingMode];n||(n=new d(e.state.viewingMode),n.options.backfacesTerrain=!e.state.isGlobal,n.options.invisibleTerrain=!0,y[e.viewingMode]=n);const{isGlobal:i}=e.state;return!(!e.sceneIntersectionHelper.intersectRay(r,n,t)||m(e,r.origin,t))||(!(!e.renderCoordsHelper.intersectManifold(r,0,t)||m(e,r.origin,t))||!!i&&v(r,t,c(e.spatialReference).radius))}function v(e,r,n){const a=o(e.origin,e.origin)-n*n,c=a>0?Math.sqrt(a)/3:1;return t(r,e.direction,c/s(e.direction)),i(r,r,e.origin),!0}let y={};function b(){y={}}const M=a(),w=a(),H=a();export{f as cameraOnContentAlongViewDirection,b as cleanupIntersectionUtils,u as eyeWithinExtent,g as surfaceElevationBelowRenderLocation};
5
+ import{copy as e,squaredDistance as r,scale as t,subtract as n,add as i,length as o,dot as s,distance as a}from"../../../core/libs/gl-matrix-2/math/vec3.js";import{create as c}from"../../../core/libs/gl-matrix-2/factories/vec3f64.js";import{getReferenceEllipsoid as l}from"../../../geometry/ellipsoidUtils.js";import{containsPoint as u}from"../../../geometry/support/aaBoundingRect.js";import{Intersector as d}from"../webgl-engine/lib/Intersector.js";function g(e,r,t,n){return null!=e.renderCoordsHelper.fromRenderCoords(r.eye,H,n)&&u(t,H)}function f(e,r){return e.elevationProvider?e.elevationProvider.getElevation(r[0],r[1],r[2],e.renderCoordsHelper.spatialReference,"ground")??0:0}function m(o,s,a,c){const l=o.state.camera.clone();s&&a&&c&&(l.eye=s,l.center=a,l.up=c),v(o,l.ray,R)||e(R,l.center);const u=o.state.constraints,d=u.minimumPoiDistance;if(r(l.eye,R)<d){const r=u.collision.enabled;e(j,l.viewForward),t(j,j,d),r?l.eye=n(H,R,j):i(R,l.eye,j);const s=o.renderCoordsHelper,a=s.getAltitude(l.eye),c=u.collision.elevationMargin;r&&a<c&&(n(j,R,l.eye),l.eye=s.setAltitude(H,c,l.eye),i(R,l.eye,j))}return l.center=R,l}function p(e,r,t){const{origin:n,direction:i}=r;if(o(n)<e)return!0;const c=-s(i,n)/o(i);return c<0||c>=a(t,n)}function y(e,t,n){if(!e.state.isGlobal||!e.stateManager.constraintsManager)return!1;const i=f(e,t),o=e.stateManager.constraintsManager.nearFarHeuristic.computeFarDistance(t,i,e.stage.renderer.sceneDepthRange.value.far),s=o*o;return r(t,n)>s}function v(e,r,t){let n=M[e.viewingMode];n||(n=new d(e.state.viewingMode),n.options.backfacesTerrain=!e.state.isGlobal,n.options.invisibleTerrain=!0,M[e.viewingMode]=n);const{isGlobal:i}=e.state,o=i?l(e.spatialReference).radius:0;return!(!e.sceneIntersectionHelper.intersectRay(r,n,t)||y(e,r.origin,t)||i&&!p(o,n.ray,t))||(!(!e.renderCoordsHelper.intersectManifold(r,0,t)||y(e,r.origin,t)||i&&!p(o,n.ray,t))||!!i&&b(r,t,o))}function b(e,r,n){const a=s(e.origin,e.origin)-n*n,c=a>0?Math.sqrt(a)/3:1;return t(r,e.direction,c/o(e.direction)),i(r,r,e.origin),!0}let M={};function w(){M={}}const H=c(),R=c(),j=c();export{m as cameraOnContentAlongViewDirection,w as cleanupIntersectionUtils,g as eyeWithinExtent,f as surfaceElevationBelowRenderLocation};
@@ -1,7 +1,7 @@
1
- import type { Clonable, ClonableMixinProperties } from "../../../core/Clonable.js";
1
+ import type { Clonable } from "../../../core/Clonable.js";
2
2
 
3
3
  /** @since 5.0 */
4
- export interface AltitudeConstraintProperties extends ClonableMixinProperties, Partial<Pick<AltitudeConstraint, "max" | "min">> {}
4
+ export interface AltitudeConstraintProperties extends Partial<Pick<AltitudeConstraint, "max" | "min">> {}
5
5
 
6
6
  /** @since 5.0 */
7
7
  export default abstract class AltitudeConstraint extends Clonable {
@@ -1,7 +1,7 @@
1
- import type { Clonable, ClonableMixinProperties } from "../../../core/Clonable.js";
1
+ import type { Clonable } from "../../../core/Clonable.js";
2
2
 
3
3
  /** @since 5.0 */
4
- export interface ClipDistanceConstraintProperties extends ClonableMixinProperties, Partial<Pick<ClipDistanceConstraint, "far" | "mode" | "near">> {}
4
+ export interface ClipDistanceConstraintProperties extends Partial<Pick<ClipDistanceConstraint, "far" | "mode" | "near">> {}
5
5
 
6
6
  /** @since 5.0 */
7
7
  export default abstract class ClipDistanceConstraint extends Clonable {
@@ -1,13 +1,13 @@
1
1
  import type AltitudeConstraint from "./AltitudeConstraint.js";
2
2
  import type ClipDistanceConstraint from "./ClipDistanceConstraint.js";
3
3
  import type TiltConstraint from "./TiltConstraint.js";
4
- import type { Clonable, ClonableMixinProperties } from "../../../core/Clonable.js";
4
+ import type { Clonable } from "../../../core/Clonable.js";
5
5
  import type { TiltConstraintProperties } from "./TiltConstraint.js";
6
6
  import type { AltitudeConstraintProperties } from "./AltitudeConstraint.js";
7
7
  import type { ClipDistanceConstraintProperties } from "./ClipDistanceConstraint.js";
8
8
 
9
9
  /** @since 5.0 */
10
- export interface ConstraintsProperties extends ClonableMixinProperties {
10
+ export interface ConstraintsProperties {
11
11
  /**
12
12
  * Specifies a constraint on the minimum and maximum allowed camera altitude.
13
13
  * > [!WARNING]
@@ -1,7 +1,7 @@
1
- import type { Clonable, ClonableMixinProperties } from "../../../core/Clonable.js";
1
+ import type { Clonable } from "../../../core/Clonable.js";
2
2
 
3
3
  /** @since 5.0 */
4
- export interface TiltConstraintProperties extends ClonableMixinProperties, Partial<Pick<TiltConstraint, "max" | "mode">> {}
4
+ export interface TiltConstraintProperties extends Partial<Pick<TiltConstraint, "max" | "mode">> {}
5
5
 
6
6
  /** @since 5.0 */
7
7
  export default abstract class TiltConstraint extends Clonable {
@@ -1,6 +1,6 @@
1
- import type { JSONSupport, JSONSupportMixinProperties } from "../../../core/JSONSupport.js";
1
+ import type { JSONSupport } from "../../../core/JSONSupport.js";
2
2
 
3
- export interface CloudyWeatherProperties extends JSONSupportMixinProperties, Partial<Pick<CloudyWeather, "cloudCover">> {}
3
+ export interface CloudyWeatherProperties extends Partial<Pick<CloudyWeather, "cloudCover">> {}
4
4
 
5
5
  /**
6
6
  * The CloudyWeather class allows you to change the weather conditions in the scene to cloudy weather.
@@ -1,6 +1,6 @@
1
- import type { JSONSupport, JSONSupportMixinProperties } from "../../../core/JSONSupport.js";
1
+ import type { JSONSupport } from "../../../core/JSONSupport.js";
2
2
 
3
- export interface FoggyWeatherProperties extends JSONSupportMixinProperties, Partial<Pick<FoggyWeather, "fogStrength">> {}
3
+ export interface FoggyWeatherProperties extends Partial<Pick<FoggyWeather, "fogStrength">> {}
4
4
 
5
5
  /**
6
6
  * The FoggyWeather class allows you to change the weather conditions in the scene to foggy weather.
@@ -1,6 +1,6 @@
1
- import type { JSONSupport, JSONSupportMixinProperties } from "../../../core/JSONSupport.js";
1
+ import type { JSONSupport } from "../../../core/JSONSupport.js";
2
2
 
3
- export interface RainyWeatherProperties extends JSONSupportMixinProperties, Partial<Pick<RainyWeather, "cloudCover" | "precipitation">> {}
3
+ export interface RainyWeatherProperties extends Partial<Pick<RainyWeather, "cloudCover" | "precipitation">> {}
4
4
 
5
5
  /**
6
6
  * The RainyWeather class allows you to change the weather conditions in the scene to rainy weather.
@@ -1,6 +1,6 @@
1
- import type { JSONSupport, JSONSupportMixinProperties } from "../../../core/JSONSupport.js";
1
+ import type { JSONSupport } from "../../../core/JSONSupport.js";
2
2
 
3
- export interface SnowyWeatherProperties extends JSONSupportMixinProperties, Partial<Pick<SnowyWeather, "cloudCover" | "precipitation" | "snowCover">> {}
3
+ export interface SnowyWeatherProperties extends Partial<Pick<SnowyWeather, "cloudCover" | "precipitation" | "snowCover">> {}
4
4
 
5
5
  /**
6
6
  * The SnowyWeather class allows you to change the weather conditions in the scene to snowy weather.
@@ -1,8 +1,8 @@
1
1
  import type WebSceneSunLighting from "../../../webscene/SunLighting.js";
2
- import type { EventedMixin, EventedMixinProperties } from "../../../core/Evented.js";
2
+ import type { EventedMixin } from "../../../core/Evented.js";
3
3
  import type { SunLightingProperties as WebSceneSunLightingProperties } from "../../../webscene/SunLighting.js";
4
4
 
5
- export interface SunLightingProperties extends WebSceneSunLightingProperties, EventedMixinProperties, Partial<Pick<SunLighting, "cameraTrackingEnabled">> {
5
+ export interface SunLightingProperties extends WebSceneSunLightingProperties, Partial<Pick<SunLighting, "cameraTrackingEnabled">> {
6
6
  /**
7
7
  * The current date and time of the simulated sun. When setting the date, specifying the time zone is important,
8
8
  * otherwise the time zone of the browser will be used. This might lead to different lighting for users in different
@@ -1,6 +1,6 @@
1
- import type { JSONSupport, JSONSupportMixinProperties } from "../../../core/JSONSupport.js";
1
+ import type { JSONSupport } from "../../../core/JSONSupport.js";
2
2
 
3
- export interface SunnyWeatherProperties extends JSONSupportMixinProperties, Partial<Pick<SunnyWeather, "cloudCover">> {}
3
+ export interface SunnyWeatherProperties extends Partial<Pick<SunnyWeather, "cloudCover">> {}
4
4
 
5
5
  /**
6
6
  * The SunnyWeather class allows you to change the weather conditions in the scene to sunny weather.
@@ -1,8 +1,8 @@
1
1
  import type WebSceneVirtualLighting from "../../../webscene/VirtualLighting.js";
2
- import type { EventedMixin, EventedMixinProperties } from "../../../core/Evented.js";
2
+ import type { EventedMixin } from "../../../core/Evented.js";
3
3
  import type { VirtualLightingProperties as WebSceneVirtualLightingProperties } from "../../../webscene/VirtualLighting.js";
4
4
 
5
- export interface VirtualLightingProperties extends WebSceneVirtualLightingProperties, EventedMixinProperties {}
5
+ export interface VirtualLightingProperties extends WebSceneVirtualLightingProperties {}
6
6
 
7
7
  /**
8
8
  * The VirtualLighting class allows you to change the lighting in the scene to virtual light. The position of the light
@@ -2,4 +2,4 @@
2
2
  All material copyright Esri, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/5.0/esri/copyright.txt for details.
4
4
  */
5
- import{__decorate as e}from"tslib";import o from"../../../request.js";import i from"../../../core/Error.js";import t from"../../../core/Logger.js";import{releaseMaybe as r}from"../../../core/maybe.js";import{isAborted as s}from"../../../core/promiseUtils.js";import{property as a,subclass as n}from"../../../core/accessorSupport/decorators.js";import l from"../../../layers/support/ElevationTileData.js";import{acquireDecoder as c}from"../../../layers/support/LercDecoder.js";import{queueHighPriority as m}from"../../../request/queue.js";import{ElevationLayerView3DModifications as p,ElevationLayerView3DModification as f}from"./ElevationLayerView3DModifications.js";import{LayerView3D as d}from"./LayerView3D.js";import{TiledLayerView3D as y}from"./TiledLayerView3D.js";import{elevationNoDataValue as h}from"../terrain/TerrainConst.js";import{useFetchTileForLayer as g}from"../terrain/terrainUtils.js";import u from"../../layers/LayerView.js";let w=class extends(y(d(u))){constructor(){super(...arguments),this.type="elevation-3d",this.modifications=new p}get tileInfo(){return this.layer.tileInfo}initialize(){const e=this.view,o=e.map?.allLayers,t=o&&o.includes(this.layer),r=e.map?.ground?.layers,s=r&&r.includes(this.layer);if(t&&!s){const e=new i("layerview:elevation-layer-only",`3D elevation layer '${this.layer.id}' can only be added to layers in map.ground`);this.addResolvingPromise(Promise.reject(e))}this._lercDecoder=c(e.resourceController),this._addTilingSchemeMatchPromise()}destroy(){this._lercDecoder=r(this._lercDecoder)}async fetchElevationTile(e,o){const i=await this._fetchTileData(e.lij,o);if(!s(o))return i&&await this.modifications.apply(i,e,o.signal),i}async _fetchTileData(e,i){const r=this.layer;if(g(r)){const o=await r.fetchTile(e[0],e[1],e[2],{noDataValue:h,signal:i.signal});return s(i)?void t.getLogger(this).warnOnce("A call to fetchTile resolved even though the request was aborted. fetchTile should not resolve if options.signal.aborted is true."):o}i={...m,responseType:"array-buffer",...i};const a=this.getTileUrl(e),n=(await o(a,i)).data,c=await this._lercDecoder.decode(n,{noDataValue:h},i.signal);if(c)return new l(c);throw new Error("LERC decoding failed")}async setModifications(e){if(this.modifications.modifications.length=0,!e||0===e.length)return;this._simplifyOperatorPromise??=import("../../../geometry/operators/simplifyOperator.js");const o=await this._simplifyOperatorPromise;for(const i of e){const e=i.geometry;if("polygon"===e?.type){const r=o.execute(e);if("polygon"===r?.type){const e=new f(i.type,r);this.modifications.modifications.push(e)}else t.getLogger(this).warn("Failed to simplify modification polygon")}else t.getLogger(this).warn("Invalid modification added to elevation layer: "+(e?`non polygon geometry ${e.type}`:"no geometry"))}}};e([a()],w.prototype,"layer",void 0),e([a()],w.prototype,"tileInfo",null),e([a()],w.prototype,"modifications",void 0),w=e([n("esri.views.3d.layers.ElevationLayerView3D")],w);const v=w;export{v as default};
5
+ import{__decorate as e}from"tslib";import o from"../../../request.js";import i from"../../../core/Error.js";import t from"../../../core/Logger.js";import{releaseMaybe as r}from"../../../core/maybe.js";import{isAborted as s}from"../../../core/promiseUtils.js";import{property as a,subclass as n}from"../../../core/accessorSupport/decorators.js";import l from"../../../layers/support/ElevationTileData.js";import{acquireDecoder as c}from"../../../layers/support/LercDecoder.js";import{queueHighPriority as m}from"../../../request/queue.js";import{ElevationLayerView3DModifications as p,ElevationLayerView3DModification as f}from"./ElevationLayerView3DModifications.js";import{LayerView3D as d}from"./LayerView3D.js";import{TiledLayerView3D as y}from"./TiledLayerView3D.js";import{elevationNoDataValue as h}from"../terrain/TerrainConst.js";import{useFetchTileForLayer as g}from"../terrain/terrainUtils.js";import u from"../../layers/LayerView.js";let w=class extends(y(d(u))){constructor(){super(...arguments),this.type="elevation-3d",this.modifications=new p}get tileInfo(){return this.layer.tileInfo}initialize(){const e=this.view,o=e.map?.allLayers,t=o&&o.includes(this.layer),r=e.map?.ground?.layers,s=r&&r.includes(this.layer);if(t&&!s){const e=new i("layerview:elevation-layer-only",`3D elevation layer '${this.layer.id}' can only be added to layers in map.ground`);this.addResolvingPromise(Promise.reject(e))}this._lercDecoder=c(e.resourceController),this._addTilingSchemeMatchPromise()}destroy(){this._lercDecoder=r(this._lercDecoder)}async fetchElevationTile(e,o){const i=await this._fetchTileData(e.lij,o);if(!s(o))return i&&await this.modifications.apply(i,e,o.signal),i}async _fetchTileData(e,i){const r=this.layer;if(g(r)){const o=await r.fetchTile(e[0],e[1],e[2],{noDataValue:h,signal:i.signal});return s(i)?void t.getLogger(this).warnOnce("A call to fetchTile resolved even though the request was aborted. fetchTile should not resolve if options.signal.aborted is true."):l.from(o)}i={...m,responseType:"array-buffer",...i};const a=this.getTileUrl(e),n=(await o(a,i)).data,c=await this._lercDecoder.decode(n,{noDataValue:h},i.signal);if(c)return new l(c);throw new Error("LERC decoding failed")}async setModifications(e){if(this.modifications.modifications.length=0,!e||0===e.length)return;this._simplifyOperatorPromise??=import("../../../geometry/operators/simplifyOperator.js");const o=await this._simplifyOperatorPromise;for(const i of e){const e=i.geometry;if("polygon"===e?.type){const r=o.execute(e);if("polygon"===r?.type){const e=new f(i.type,r);this.modifications.modifications.push(e)}else t.getLogger(this).warn("Failed to simplify modification polygon")}else t.getLogger(this).warn("Invalid modification added to elevation layer: "+(e?`non polygon geometry ${e.type}`:"no geometry"))}}};e([a()],w.prototype,"layer",void 0),e([a()],w.prototype,"tileInfo",null),e([a()],w.prototype,"modifications",void 0),w=e([n("esri.views.3d.layers.ElevationLayerView3D")],w);const v=w;export{v 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/5.0/esri/copyright.txt for details.
4
4
  */
5
- import{__decorate as e}from"tslib";import{equals as t}from"../../../core/arrayUtils.js";import"../../../core/has.js";import{removeMaybe as i,abortMaybe as s}from"../../../core/maybe.js";import{debounce as r,ignoreAbortErrors as l,throwIfAborted as n}from"../../../core/promiseUtils.js";import{watch as a,when as o,sync as u,whenOnce as d}from"../../../core/reactiveUtils.js";import{addFrameTask as h}from"../../../core/scheduling.js";import{Seconds as p,secondsFromMilliseconds as c}from"../../../core/time.js";import{property as m,subclass as g}from"../../../core/accessorSupport/decorators.js";import{projectOrLoad as f}from"../../../geometry/projectionUtils.js";import _ from"../../../geometry/SpatialReference.js";import{fromExtent as y,intersection as v,toExtent as T,create as w,contains as S,area as b,intersects as R}from"../../../geometry/support/aaBoundingRect.js";import{getInfo as x}from"../../../geometry/support/spatialReferenceUtils.js";import L from"../../../symbols/support/ElevationInfo.js";import{simulationSettingsEqual as A,getPositions as j,getFlowSimulationSettings as E}from"../../2d/engine/flow/utils.js";import M from"./SubView3D.js";import{getFeatureTileId as U}from"./support/FeatureTileDescriptor.js";import{makeScheduleFunction as P}from"./support/makeScheduleFunction.js";import{debugFlags as C}from"../support/debugFlags.js";import{tileFilterDistance as F,scaleThresholdForLoadingAllTiles as I,defaultTransitionDuration as D,transitionDurationFactor as W,seamlessTransitionEnabled as q,densityFactor as V,loadAllTilesDensityFactor as k,averageLoadingTimeSmoothingFactor as G,fadeOutTime as O,fadeInTime as B,minimumTracingResolution as H}from"../support/flow/constants.js";import{isFullExtent as z,wrappedWidth as N,FlowQuery3D as Q}from"../support/flow/FlowQuery3D.js";import{FlowWorkerHandle as J}from"../support/flow/FlowWorkerHandle.js";import{materialParametersFromRenderer as K,createStreamlineGeometry as X}from"../support/flow/geometryUtils.js";import{boundingRectOfTiles as Y}from"../support/flow/loadUtils.js";import{StreamlineResources3DOverlay as Z}from"../support/flow/StreamlineResources3DOverlay.js";import{StreamlineResources3DShape as $}from"../support/flow/StreamlineResources3DShape.js";import{webMercatorWorldExtent as ee}from"../terrain/TerrainConst.js";import{descendantsAtLevel as te,tilesAreRelated as ie}from"../terrain/tileUtils.js";import{isScreenSizePerspectiveEnabled as se}from"../webgl-engine/lib/screenSizePerspectiveUtils.js";import{RibbonLineMaterial as re}from"../webgl-engine/materials/RibbonLineMaterial.js";import{isInEffectiveScaleRange as le,hasLayerBasedScaleVisibility as ne}from"../../support/layerViewUtils.js";import{TaskPriority as ae}from"../../support/Scheduler.js";let oe=class extends M{constructor(e){super(e),this.type="flow",this.renderedTiles=null,this.requireLoad=!1,this.workerHandle=null,this.frameTask=null,this._averageLoadingTime=p(0),this._abortController=null,this._loadingState="ready-to-load",this._tilesUpdateIsWaiting=!1,this._debugAllowAutoLoading=!0,this.emissiveStrength=0,this._overrideMaterialParameters=null,this._overrideSimulationSettings=null,this._overrideTransitionEnabled=null,this._updateTask=null,this._debouncedTileUpdate=r(async()=>{const{allTiles:e}=this.surface,t=this._getTileFilterFunction(),i=new Set;function*s(s){for(let r=0;r<e.length;++r){const l=e.at(r);t(l)&&i.add(l),s.madeProgress(),s.done&&(s=yield)}}await this.frameTask.scheduleGenerator(s),this.renderedTiles=i})}initialize(){const{surface:e,view:t}=this,{resourceController:i}=t;this.workerHandle=new J(P(i)),this.frameTask=i.scheduler.registerTask(ae.FLOW_GENERATOR),this._updateTask=h({update:()=>this._update()}),this.addHandles([a(()=>this._simulationSettings,()=>this.triggerLoad(),{sync:!0,equals:(e,t)=>null==e&&null==t||null!=e&&null!=t&&A(e,t)}),a(()=>{const{elevationInfo:e}=this;return[this._clippingArea,this._visible,this._draped,this.view.state.contentPixelRatio,this.view.viewingMode,e?.mode,e?.offset,e?.unit,this._effectiveDensity]},()=>this.triggerLoad(),u),o(()=>!this.view.animationsEnabled,()=>{const{_resources:e,_lastResources:t}=this;null!=e&&(e.startTime=pe),null!=t&&(t.startTime=pe)},u),a(()=>this._materialParameters,e=>{this._resources?.setMaterialParameters(e),this._lastResources?.setMaterialParameters(e)}),o(()=>e.allTilesCreated,()=>this._triggerTilesUpdate,u),t.enableFeatureTiles(),a(()=>[this._dataBounds,this._featureTilesBounds,this.loadAllTiles],()=>this._triggerTilesUpdate()),a(()=>this._flowRenderer,(e,t)=>{const i=t?.visualVariables??[],s=e?.visualVariables??[];s.length===i.length&&s.every((e,t)=>e.type===i[t].type)||this.clear()}),o(()=>!t.featureTiles?.updating,()=>{this._triggerTilesUpdate()})]),this._triggerTilesUpdate()}destroy(){this._updateTask=i(this._updateTask),this.abort(),this.clear()}abort(){this._abortController=s(this._abortController),this.requireLoad=!1}get _clippingArea(){const e=f(this.view.clippingArea,this.surface.spatialReference).geometry;return null==e?null:y(e)}get _dataBounds(){const e=this._fullExtentSurfaceSpatialReference;return null==e?null:y(e)}get _fullExtentSurfaceSpatialReference(){return f(this.layer.fullExtent,this.surface.spatialReference).geometry}get _draped(){return"on-the-ground"===this.elevationInfo.mode}get extent(){if(this.loadAllTiles)return ce(this._fullExtentSurfaceSpatialReference);const{spatialReference:e}=this.surface;let t=this.renderedTiles;if(null==e||null==t)return null;const i=this.view.terrainLevel;if(null!=i){const e=new Set;t.forEach(t=>{Math.abs(i-t.level)<F&&e.add(t)}),t=e}const s=Y(t,this.spatialReferenceInfo);return null==s?null:(v(s,this._clippingArea,s),ce(T(s,e)))}get loadAllTiles(){return this.view.scale>(C.FLOW_GLOBAL_SCALE_THRESHOLD??I)}get isDataGlobal(){const{extent:e,spatialReferenceInfo:t}=this;return null!=e&&z(e.xmin,e.xmax,t)}get loadAllTilesLevel(){const{tilingScheme:e}=this.surface;return Math.min(Math.ceil(e.levelAtScale(C.FLOW_GLOBAL_SCALE_THRESHOLD??I)),e.getMaxLod())}get targetTiles(){const e=new Map;if(this.loadAllTiles){const{_dataBounds:t}=this;if(null==t)return e;const i=w(),s=this.loadAllTilesLevel,r=this.surface.tilingScheme,l=r.rootTilesInExtent(t).flatMap(e=>te(e,s));for(const n of l){const[l,a,o]=n;r.getExtent(s,a,o,i),de(t,i)&&e.set(U(s,a,o),n)}return e}const{renderedTiles:t}=this;for(const i of t??[])e.set(i.key,i.lij);return e}get _featureTilesBounds(){const e=this.view.featureTiles?.filterExtent,t=f(e,this.surface.spatialReference).geometry;return null==t?null:y(t)}get _flowRenderer(){const e=this.layer.renderer;return"flow"!==e?.type?null:e}get _materialParameters(){return{...K(this._flowRenderer,this.layerView.fullOpacity,this.emissiveStrength),...this._overrideMaterialParameters,hasSlicePlane:this.layerView.slicePlaneEnabled,screenSizePerspective:!this._draped&&se(this.layer.screenSizePerspectiveEnabled)?this.view.screenSizePerspective.parameters:null}}get _opacity(){return this.layerView.fullOpacity}get _seamlessTransitionWaitingTime(){const{_averageLoadingTime:e}=this;return p(0===e?D:this._averageLoadingTime*W)}get _seamlessTransitionEnabled(){return null!=this._overrideTransitionEnabled?this._overrideTransitionEnabled:q}get _tracingResolution(){const{extent:e}=this;if(!e)return[0,0];const t=N(e.xmin,e.xmax,this.spatialReferenceInfo?.valid)/(e.ymax-e.ymin),[i,s]=this.view.size;let r,l;i<s?(r=i,l=i/t):(r=s*t,l=s);const n=H,a=this.view.qualitySettings.flow.maxTracingResolution,o=Math.max(1,n/Math.min(r,l)),u=o*Math.min(1,a/Math.max(r*o,l*o));return[Math.round(r*u),Math.round(l*u)]}get _visible(){const e=this._flowRenderer?.color;return this.visibleAtCurrentScale&&this.layer.effectiveVisible&&this._opacity>0&&(null==e||e.a>0)}get _estimatedStreamlines(){const{extent:e,_simulationSettings:t,renderedTiles:i,loadAllTiles:s}=this;if(null==t||null==i)return 0;const r=this._tracingResolution[0]*this._tracingResolution[1]/t.lineSpacing**2*t.density;if(s)return 2*r;const l=null==e?null:y(e);if(null==l)return 0;let n=0;for(const u of i)S(l,u.extent)&&(n+=b(u.extent));const a=b(l),o=0===a?0:n/a;return 2*Math.round(r*o)}get _effectiveDensity(){const{_estimatedStreamlines:e,_simulationSettings:t}=this,{qualitySettings:i,quality:s}=this.view;if(null==t)return 0;const r=i.flow.maxTotalNumberOfStreamlines,l=e>=r?r/e:1,n=t.density*l*s;return t.lineSpacing/Math.sqrt(n)<t.lineCollisionWidth?(t.lineSpacing/t.lineCollisionWidth)**2:n}get elevationInfo(){return this.layer.elevationInfo??ue}startPositions(e){if(!this._seamlessTransitionEnabled)return[];const{_flowRenderer:t,_resources:i}=this;return null==t||null==i?[]:j(i.streamlines,i.query,e,t.flowSpeed)}get needsMagnitude(){return this._flowRenderer?.hasVisualVariables()??!1}get spatialReferenceInfo(){return x(this.surface.spatialReference)}get layer(){return this.layerView.layer}get loadingState(){return this._loadingState}get loadRequirementsMet(){return null!=this.renderedTiles&&(this.renderedTiles.size>0||this.loadAllTiles)&&null!=this.extent}getUpdating(){return!this.destroyed&&(null==this.extent||this.updatingHandles.updating||this.requireLoad||"before-transition"===this._loadingState)}get updating(){return this.getUpdating()}get visibleAtCurrentScale(){return!ne()||le(this.layer.effectiveScaleRange,this.view.scale)}get _simulationSettings(){const{_flowRenderer:e,_overrideSimulationSettings:t}=this;if(null==e)return null;let i=E(e);return i.segmentLength=i.lineCollisionWidth/2,i.onlyForwardTracing=!1,i.density*=V,this.loadAllTiles&&this.isDataGlobal&&(i.density*=k),null!=t&&(i={...i,...t}),i}getSimulationSettings(e){const{_simulationSettings:t,spatialReferenceInfo:i}=this;if(null==t)return null;const s="global"===this.view.viewingMode&&null!=i&&z(e.extent.xmin,e.extent.xmax,i);return{...t,wrapAround:s,density:this._effectiveDensity}}get surface(){return this.view.basemapTerrain}doRefresh(){this.triggerLoad()}clear(){this._resources?.detach(),this._resources=null,this._lastResources?.detach(),this._lastResources=null,this._loadingState="ready-to-load"}_update(){const e=this._time;this._lastResources?.hasFadedOut(e)&&this._lastResources.detach();const t=this._nextStateForTransition(e);if(!this.requireLoad||this.updatingHandles.updating||"ready-to-load"!==t||!this.loadRequirementsMet)return void(this._loadingState=t);this._loadingState="loading";const i=async()=>{const t=this._time,i=this._seamlessTransitionEnabled&&null!=this._resources?p(e+this._seamlessTransitionWaitingTime):e;await this._load(i);const s=p((this._time-t)/1e3);this._updateAverageLoadingTime(s)};this.updatingHandles.addPromise(l(i())),this.requireLoad=!1}_updateAverageLoadingTime(e){const t=G;this._averageLoadingTime=p(t*e+(1-t)*this._averageLoadingTime)}triggerLoad(){this._debugAllowAutoLoading&&(this.requireLoad=!0)}get _time(){return c(this.layerView.view.stage.renderer.renderContext.time)}async _load(e){const{extent:t,view:i}=this;if(!this._visible)return this.clear(),void(this._loadingState="ready-to-load");if(null==t)return void(this._loadingState="ready-to-load");const s=new Q(t,this.layerView.timeExtent,this._tracingResolution,i.state.contentPixelRatio,e);null==this._abortController&&(this._abortController=new AbortController);const r=this._abortController,l=await this._loadStreamlines(s,r.signal);if(n(r.signal),this._visible&&null!=l){this._lastResources?.detach(),this._lastResources=this._resources,this._resources=l;const t=this._getStartTime(e);null!=this._lastResources&&(this._lastResources.endTime=t),this._resources.startTime=t,this.view.animationsEnabled||(this._lastResources?.detach(),this._lastResources=null),await l.attach(),this._loadingState=this._seamlessTransitionEnabled?"before-transition":"transitioning"}else this._loadingState="ready-to-load"}async _loadStreamlines(e,t){const i=await this.fetchDataAndGenerateStreamlines(e,t);if(null==i)return null;const{geometries:s,material:r}=await this._createGeometry(e,i);return this._draped?new Z(e,i,r,s,this.layerView):new $(e,i,r,s,this.view)}async fetchDataAndGenerateStreamlines(e,t){return null}async _createGeometry(e,t){const i=new re(this._materialParameters,this.view.state.isGlobal),s=new Array,{elevationInfo:r,_draped:l,view:n}=this;function*a(a){for(let o=0;o<t.length;++o)s.push(X(n,e,t[o],r,i,l)),a.madeProgress(),a.done&&(a=yield)}return await this.frameTask.scheduleGenerator(a),{geometries:s,material:i}}_triggerTilesUpdate(){if(this._tilesUpdateIsWaiting)return;this._tilesUpdateIsWaiting=!0;const e=async()=>{await d(()=>this.view.stationary),this._tilesUpdateIsWaiting=!1,await this._debouncedTileUpdate()};this.updatingHandles.addPromise(l(e()))}_getTileFilterFunction(){const{_dataBounds:e,view:i,_featureTilesBounds:s,loadAllTiles:r}=this;if(r){const{loadAllTilesLevel:t}=this;return i=>i.level===t&&de(e,i.extent)}const l=t=>t.rendered&&t.visible&&de(e,t.extent),{featureTiles:n}=i;if(!n)return l;const a=n.tiles.filter(e=>e.measures.visible);return e=>l(e)&&de(s,e.extent)&&a.some(({lij:i})=>t(i,e.lij)||ie(i,e.lij))}_nextStateForTransition(e){const{_resources:t}=this;if(null==this._flowRenderer||null==t||"ready-to-load"===this._loadingState||"loading"===this._loadingState)return this._loadingState;const i=t.startTime;return e<i?"before-transition":e<i+O?"transitioning":"ready-to-load"}_getStartTime(e){if(!this.view.animationsEnabled)return pe;const t=this._time;return p(t>e?t:e)}get usedMemory(){return(this._lastResources?.usedMemory??0)+(this._resources?.usedMemory??0)}get test(){}};e([m()],oe.prototype,"type",void 0),e([m()],oe.prototype,"renderedTiles",void 0),e([m()],oe.prototype,"_resources",void 0),e([m()],oe.prototype,"_lastResources",void 0),e([m()],oe.prototype,"requireLoad",void 0),e([m()],oe.prototype,"_averageLoadingTime",void 0),e([m()],oe.prototype,"_loadingState",void 0),e([m()],oe.prototype,"emissiveStrength",void 0),e([m()],oe.prototype,"_clippingArea",null),e([m()],oe.prototype,"_dataBounds",null),e([m()],oe.prototype,"_fullExtentSurfaceSpatialReference",null),e([m()],oe.prototype,"_draped",null),e([m()],oe.prototype,"extent",null),e([m()],oe.prototype,"loadAllTiles",null),e([m()],oe.prototype,"isDataGlobal",null),e([m()],oe.prototype,"loadAllTilesLevel",null),e([m()],oe.prototype,"targetTiles",null),e([m()],oe.prototype,"_featureTilesBounds",null),e([m()],oe.prototype,"_flowRenderer",null),e([m()],oe.prototype,"_materialParameters",null),e([m()],oe.prototype,"_opacity",null),e([m()],oe.prototype,"_seamlessTransitionWaitingTime",null),e([m()],oe.prototype,"_seamlessTransitionEnabled",null),e([m()],oe.prototype,"_tracingResolution",null),e([m()],oe.prototype,"_visible",null),e([m()],oe.prototype,"_estimatedStreamlines",null),e([m()],oe.prototype,"_effectiveDensity",null),e([m()],oe.prototype,"elevationInfo",null),e([m()],oe.prototype,"needsMagnitude",null),e([m()],oe.prototype,"spatialReferenceInfo",null),e([m()],oe.prototype,"layer",null),e([m()],oe.prototype,"loadingState",null),e([m()],oe.prototype,"updating",null),e([m()],oe.prototype,"visibleAtCurrentScale",null),e([m()],oe.prototype,"_overrideMaterialParameters",void 0),e([m()],oe.prototype,"_overrideSimulationSettings",void 0),e([m()],oe.prototype,"_overrideTransitionEnabled",void 0),e([m()],oe.prototype,"_simulationSettings",null),e([m()],oe.prototype,"surface",null),oe=e([g("esri.views.3d.layers.FlowSubView3D")],oe);const ue=new L({mode:"on-the-ground"});function de(e,t){return null==e||null==t||R(e,t)}const he=T(ee,_.WebMercator),pe=p(-B);function ce(e){return null!=e&&e.spatialReference.isWebMercator?e?.intersection(he):e}export{oe as default};
5
+ import{__decorate as e}from"tslib";import{equals as t}from"../../../core/arrayUtils.js";import"../../../core/has.js";import{removeMaybe as i,abortMaybe as s}from"../../../core/maybe.js";import{debounce as r,ignoreAbortErrors as l,throwIfAborted as n}from"../../../core/promiseUtils.js";import{watch as a,when as o,sync as u,whenOnce as d}from"../../../core/reactiveUtils.js";import{addFrameTask as h}from"../../../core/scheduling.js";import{Seconds as c,secondsFromMilliseconds as p}from"../../../core/time.js";import{property as m,subclass as g}from"../../../core/accessorSupport/decorators.js";import{projectOrLoad as f}from"../../../geometry/projectionUtils.js";import _ from"../../../geometry/SpatialReference.js";import{fromExtent as y,intersection as v,toExtent as T,create as w,contains as S,area as b,intersects as R}from"../../../geometry/support/aaBoundingRect.js";import{getInfo as x}from"../../../geometry/support/spatialReferenceUtils.js";import A from"../../../symbols/support/ElevationInfo.js";import{simulationSettingsEqual as L,getPositions as j,getFlowSimulationSettings as E}from"../../2d/engine/flow/utils.js";import M from"./SubView3D.js";import{getFeatureTileId as P}from"./support/FeatureTileDescriptor.js";import{makeScheduleFunction as U}from"./support/makeScheduleFunction.js";import{debugFlags as C}from"../support/debugFlags.js";import{tileFilterDistance as W,scaleThresholdForLoadingAllTiles as F,defaultTransitionDuration as I,transitionDurationFactor as D,seamlessTransitionEnabled as k,densityFactor as q,loadAllTilesDensityFactor as V,averageLoadingTimeSmoothingFactor as G,fadeOutTime as O,fadeInTime as B,minimumTracingResolution as H}from"../support/flow/constants.js";import{isFullExtent as z,wrappedWidth as N,FlowQuery3D as Q}from"../support/flow/FlowQuery3D.js";import{FlowWorkerHandle as J}from"../support/flow/FlowWorkerHandle.js";import{materialParametersFromRenderer as K,createStreamlineGeometry as X}from"../support/flow/geometryUtils.js";import{boundingRectOfTiles as Y}from"../support/flow/loadUtils.js";import{StreamlineResources3DOverlay as Z}from"../support/flow/StreamlineResources3DOverlay.js";import{StreamlineResources3DShape as $}from"../support/flow/StreamlineResources3DShape.js";import{webMercatorWorldExtent as ee}from"../terrain/TerrainConst.js";import{descendantsAtLevel as te,tilesAreRelated as ie}from"../terrain/tileUtils.js";import{isScreenSizePerspectiveEnabled as se}from"../webgl-engine/lib/screenSizePerspectiveUtils.js";import{RibbonLineMaterial as re}from"../webgl-engine/materials/RibbonLineMaterial.js";import{isInEffectiveScaleRange as le,hasLayerBasedScaleVisibility as ne}from"../../support/layerViewUtils.js";import{TaskPriority as ae}from"../../support/Scheduler.js";let oe=class extends M{constructor(e){super(e),this.type="flow",this.renderedTiles=null,this.requireLoad=!1,this.workerHandle=null,this.frameTask=null,this._averageLoadingTime=c(0),this._abortController=null,this._loadingState="ready-to-load",this._tilesUpdateIsWaiting=!1,this._debugAllowAutoLoading=!0,this.emissiveStrength=0,this._overrideMaterialParameters=null,this._overrideSimulationSettings=null,this._overrideTransitionEnabled=null,this._updateTask=null,this._debouncedTileUpdate=r(async()=>{const{allTiles:e}=this.surface,t=this._getTileFilterFunction(),i=new Set;function*s(s){for(let r=0;r<e.length;++r){const l=e.at(r);t(l)&&i.add(l),s.madeProgress(),s.done&&(s=yield)}}await this.frameTask.scheduleGenerator(s),this.renderedTiles=i})}initialize(){const{surface:e,view:t}=this,{resourceController:i}=t;this.workerHandle=new J(U(i)),this.frameTask=i.scheduler.registerTask(ae.FLOW_GENERATOR),this._updateTask=h({update:()=>this._update()}),this.addHandles([a(()=>this._simulationSettings,()=>this.triggerLoad(),{sync:!0,equals:(e,t)=>null==e&&null==t||null!=e&&null!=t&&L(e,t)}),a(()=>{const{elevationInfo:e}=this;return[this._clippingArea,this.visible,this._draped,this.view.state.contentPixelRatio,this.view.viewingMode,e?.mode,e?.offset,e?.unit,this._effectiveDensity]},()=>this.triggerLoad(),u),o(()=>!this.view.animationsEnabled,()=>{const{_resources:e,_lastResources:t}=this;null!=e&&(e.startTime=ce),null!=t&&(t.startTime=ce)},u),a(()=>this._materialParameters,e=>{this._resources?.setMaterialParameters(e),this._lastResources?.setMaterialParameters(e)}),o(()=>e.allTilesCreated,()=>this._triggerTilesUpdate,u),t.enableFeatureTiles(),a(()=>[this._dataBounds,this._featureTilesBounds,this.loadAllTiles],()=>this._triggerTilesUpdate()),a(()=>this._flowRenderer,(e,t)=>{const i=t?.visualVariables??[],s=e?.visualVariables??[];s.length===i.length&&s.every((e,t)=>e.type===i[t].type)||this.clear()}),o(()=>!t.featureTiles?.updating,()=>{this._triggerTilesUpdate()})]),this._triggerTilesUpdate()}destroy(){this._updateTask=i(this._updateTask),this.abort(),this.clear()}abort(){this._abortController=s(this._abortController),this.requireLoad=!1}get _clippingArea(){const e=f(this.view.clippingArea,this.surface.spatialReference).geometry;return null==e?null:y(e)}get _dataBounds(){const e=this._fullExtentSurfaceSpatialReference;return null==e?null:y(e)}get _fullExtentSurfaceSpatialReference(){return f(this.layer.fullExtent,this.surface.spatialReference).geometry}get _draped(){return"on-the-ground"===this.elevationInfo.mode}get extent(){if(this.loadAllTiles)return pe(this._fullExtentSurfaceSpatialReference);const{spatialReference:e}=this.surface;let t=this.renderedTiles;if(null==e||null==t)return null;const i=this.view.terrainLevel;if(null!=i){const e=new Set;t.forEach(t=>{Math.abs(i-t.level)<W&&e.add(t)}),t=e}const s=Y(t,this.spatialReferenceInfo);return null==s?null:(v(s,this._clippingArea,s),pe(T(s,e)))}get loadAllTiles(){return this.view.scale>(C.FLOW_GLOBAL_SCALE_THRESHOLD??F)}get isDataGlobal(){const{extent:e,spatialReferenceInfo:t}=this;return null!=e&&z(e.xmin,e.xmax,t)}get loadAllTilesLevel(){const{tilingScheme:e}=this.surface;return Math.min(Math.ceil(e.levelAtScale(C.FLOW_GLOBAL_SCALE_THRESHOLD??F)),e.getMaxLod())}get targetTiles(){const e=new Map;if(this.loadAllTiles){const{_dataBounds:t}=this;if(null==t)return e;const i=w(),s=this.loadAllTilesLevel,r=this.surface.tilingScheme,l=r.rootTilesInExtent(t).flatMap(e=>te(e,s));for(const n of l){const[l,a,o]=n;r.getExtent(s,a,o,i),de(t,i)&&e.set(P(s,a,o),n)}return e}const{renderedTiles:t}=this;for(const i of t??[])e.set(i.key,i.lij);return e}get _featureTilesBounds(){const e=this.view.featureTiles?.filterExtent,t=f(e,this.surface.spatialReference).geometry;return null==t?null:y(t)}get _flowRenderer(){const e=this.layer.renderer;return"flow"!==e?.type?null:e}get _materialParameters(){return{...K(this._flowRenderer,this.layerView.fullOpacity,this.emissiveStrength),...this._overrideMaterialParameters,hasSlicePlane:this.layerView.slicePlaneEnabled,screenSizePerspective:!this._draped&&se(this.layer.screenSizePerspectiveEnabled)?this.view.screenSizePerspective.parameters:null}}get _opacity(){return this.layerView.fullOpacity}get _seamlessTransitionWaitingTime(){const{_averageLoadingTime:e}=this;return c(0===e?I:this._averageLoadingTime*D)}get _seamlessTransitionEnabled(){return null!=this._overrideTransitionEnabled?this._overrideTransitionEnabled:k}get _tracingResolution(){const{extent:e}=this;if(!e)return[0,0];const t=N(e.xmin,e.xmax,this.spatialReferenceInfo?.valid)/(e.ymax-e.ymin),[i,s]=this.view.size;let r,l;i<s?(r=i,l=i/t):(r=s*t,l=s);const n=H,a=this.view.qualitySettings.flow.maxTracingResolution,o=Math.max(1,n/Math.min(r,l)),u=o*Math.min(1,a/Math.max(r*o,l*o));return[Math.round(r*u),Math.round(l*u)]}get visible(){const e=this._flowRenderer?.color;return this.visibleAtCurrentScale&&this.layer.effectiveVisible&&this._opacity>0&&(null==e||e.a>0)}get _estimatedStreamlines(){const{extent:e,_simulationSettings:t,renderedTiles:i,loadAllTiles:s}=this;if(null==t||null==i)return 0;const r=this._tracingResolution[0]*this._tracingResolution[1]/t.lineSpacing**2*t.density;if(s)return 2*r;const l=null==e?null:y(e);if(null==l)return 0;let n=0;for(const u of i)S(l,u.extent)&&(n+=b(u.extent));const a=b(l),o=0===a?0:n/a;return 2*Math.round(r*o)}get _effectiveDensity(){const{_estimatedStreamlines:e,_simulationSettings:t}=this,{qualitySettings:i,quality:s}=this.view;if(null==t)return 0;const r=i.flow.maxTotalNumberOfStreamlines,l=e>=r?r/e:1,n=t.density*l*s;return t.lineSpacing/Math.sqrt(n)<t.lineCollisionWidth?(t.lineSpacing/t.lineCollisionWidth)**2:n}get elevationInfo(){return this.layer.elevationInfo??ue}startPositions(e){if(!this._seamlessTransitionEnabled)return[];const{_flowRenderer:t,_resources:i}=this;return null==t||null==i?[]:j(i.streamlines,i.query,e,t.flowSpeed)}get needsMagnitude(){return this._flowRenderer?.hasVisualVariables()??!1}get spatialReferenceInfo(){return x(this.surface.spatialReference)}get layer(){return this.layerView.layer}get loadingState(){return this._loadingState}get loadRequirementsMet(){return null!=this.renderedTiles&&(this.renderedTiles.size>0||this.loadAllTiles)&&null!=this.extent}hasWork(){return null==this.extent||this.updatingHandles.updating||this.requireLoad||"before-transition"===this._loadingState}get updating(){return this._debugAllowAutoLoading&&this.visible&&!(this.destroyed||this.destroying)&&this.hasWork()}get visibleAtCurrentScale(){return!ne()||le(this.layer.effectiveScaleRange,this.view.scale)}get _simulationSettings(){const{_flowRenderer:e,_overrideSimulationSettings:t}=this;if(null==e)return null;let i=E(e);return i.segmentLength=i.lineCollisionWidth/2,i.onlyForwardTracing=!1,i.density*=q,this.loadAllTiles&&this.isDataGlobal&&(i.density*=V),null!=t&&(i={...i,...t}),i}getSimulationSettings(e){const{_simulationSettings:t,spatialReferenceInfo:i}=this;if(null==t)return null;const s="global"===this.view.viewingMode&&null!=i&&z(e.extent.xmin,e.extent.xmax,i);return{...t,wrapAround:s,density:this._effectiveDensity}}get surface(){return this.view.basemapTerrain}doRefresh(){}clear(){this._resources?.detach(),this._resources=null,this._lastResources?.detach(),this._lastResources=null,this._loadingState="ready-to-load"}_update(){const e=this._time;this._lastResources?.hasFadedOut(e)&&this._lastResources.detach();const t=this._nextStateForTransition(e);if(!this.requireLoad||this.updatingHandles.updating||"ready-to-load"!==t||!this.loadRequirementsMet)return void(this._loadingState=t);this._loadingState="loading";const i=async()=>{const t=this._time,i=this._seamlessTransitionEnabled&&null!=this._resources?c(e+this._seamlessTransitionWaitingTime):e;await this._load(i);const s=c((this._time-t)/1e3);this._updateAverageLoadingTime(s)};this.updatingHandles.addPromise(l(i())),this.requireLoad=!1}_updateAverageLoadingTime(e){const t=G;this._averageLoadingTime=c(t*e+(1-t)*this._averageLoadingTime)}triggerLoad(){this._debugAllowAutoLoading&&(this.visible?this.requireLoad=!0:this.clear())}get _time(){return p(this.layerView.view.stage.renderer.renderContext.time)}async _load(e){const{extent:t,view:i}=this;if(!this.visible)return void this.clear();if(null==t)return void(this._loadingState="ready-to-load");const s=new Q(t,this.layerView.timeExtent,this._tracingResolution,i.state.contentPixelRatio,e);null==this._abortController&&(this._abortController=new AbortController);const r=this._abortController,l=await this._loadStreamlines(s,r.signal);if(n(r.signal),null!=l){this._lastResources?.detach(),this._lastResources=this._resources,this._resources=l;const t=this._getStartTime(e);null!=this._lastResources&&(this._lastResources.endTime=t),this._resources.startTime=t,this.view.animationsEnabled||(this._lastResources?.detach(),this._lastResources=null),await l.attach(),this._loadingState=this._seamlessTransitionEnabled?"before-transition":"transitioning"}else this._loadingState="ready-to-load"}async _loadStreamlines(e,t){const i=await this.fetchDataAndGenerateStreamlines(e,t);if(null==i)return null;const{geometries:s,material:r}=await this._createGeometry(e,i);return this._draped?new Z(e,i,r,s,this.layerView):new $(e,i,r,s,this.view)}async fetchDataAndGenerateStreamlines(e,t){return null}async _createGeometry(e,t){const i=new re(this._materialParameters,this.view.state.isGlobal),s=new Array,{elevationInfo:r,_draped:l,view:n}=this;function*a(a){for(let o=0;o<t.length;++o)s.push(X(n,e,t[o],r,i,l)),a.madeProgress(),a.done&&(a=yield)}return await this.frameTask.scheduleGenerator(a),{geometries:s,material:i}}_triggerTilesUpdate(){if(this._tilesUpdateIsWaiting)return;this._tilesUpdateIsWaiting=!0;const e=async()=>{await d(()=>this.view.stationary),this._tilesUpdateIsWaiting=!1,await this._debouncedTileUpdate()};this.updatingHandles.addPromise(l(e()))}_getTileFilterFunction(){const{_dataBounds:e,view:i,_featureTilesBounds:s,loadAllTiles:r}=this;if(r){const{loadAllTilesLevel:t}=this;return i=>i.level===t&&de(e,i.extent)}const l=t=>t.rendered&&t.visible&&de(e,t.extent),{featureTiles:n}=i;if(!n)return l;const a=n.tiles.filter(e=>e.measures.visible);return e=>l(e)&&de(s,e.extent)&&a.some(({lij:i})=>t(i,e.lij)||ie(i,e.lij))}_nextStateForTransition(e){const{_resources:t}=this;if(null==this._flowRenderer||null==t||"ready-to-load"===this._loadingState||"loading"===this._loadingState)return this._loadingState;const i=t.startTime;return e<i?"before-transition":e<i+O?"transitioning":"ready-to-load"}_getStartTime(e){if(!this.view.animationsEnabled)return ce;const t=this._time;return c(t>e?t:e)}get usedMemory(){return(this._lastResources?.usedMemory??0)+(this._resources?.usedMemory??0)}get test(){}};e([m()],oe.prototype,"type",void 0),e([m()],oe.prototype,"renderedTiles",void 0),e([m()],oe.prototype,"_resources",void 0),e([m()],oe.prototype,"_lastResources",void 0),e([m()],oe.prototype,"requireLoad",void 0),e([m()],oe.prototype,"_averageLoadingTime",void 0),e([m()],oe.prototype,"_loadingState",void 0),e([m()],oe.prototype,"emissiveStrength",void 0),e([m()],oe.prototype,"_clippingArea",null),e([m()],oe.prototype,"_dataBounds",null),e([m()],oe.prototype,"_fullExtentSurfaceSpatialReference",null),e([m()],oe.prototype,"_draped",null),e([m()],oe.prototype,"extent",null),e([m()],oe.prototype,"loadAllTiles",null),e([m()],oe.prototype,"isDataGlobal",null),e([m()],oe.prototype,"loadAllTilesLevel",null),e([m()],oe.prototype,"targetTiles",null),e([m()],oe.prototype,"_featureTilesBounds",null),e([m()],oe.prototype,"_flowRenderer",null),e([m()],oe.prototype,"_materialParameters",null),e([m()],oe.prototype,"_opacity",null),e([m()],oe.prototype,"_seamlessTransitionWaitingTime",null),e([m()],oe.prototype,"_seamlessTransitionEnabled",null),e([m()],oe.prototype,"_tracingResolution",null),e([m()],oe.prototype,"visible",null),e([m()],oe.prototype,"_estimatedStreamlines",null),e([m()],oe.prototype,"_effectiveDensity",null),e([m()],oe.prototype,"elevationInfo",null),e([m()],oe.prototype,"needsMagnitude",null),e([m()],oe.prototype,"spatialReferenceInfo",null),e([m()],oe.prototype,"layer",null),e([m()],oe.prototype,"loadingState",null),e([m()],oe.prototype,"updating",null),e([m()],oe.prototype,"visibleAtCurrentScale",null),e([m()],oe.prototype,"_overrideMaterialParameters",void 0),e([m()],oe.prototype,"_overrideSimulationSettings",void 0),e([m()],oe.prototype,"_overrideTransitionEnabled",void 0),e([m()],oe.prototype,"_simulationSettings",null),e([m()],oe.prototype,"surface",null),oe=e([g("esri.views.3d.layers.FlowSubView3D")],oe);const ue=new A({mode:"on-the-ground"});function de(e,t){return null==e||null==t||R(e,t)}const he=T(ee,_.WebMercator),ce=c(-B);function pe(e){return null!=e&&e.spatialReference.isWebMercator?e?.intersection(he):e}export{oe 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/5.0/esri/copyright.txt for details.
4
4
  */
5
- import{throwIfAborted as e}from"../../../../core/promiseUtils.js";import{pt2px as t}from"../../../../core/screenUtils.js";import{identity as s,scale as r,translate as i,copy as a}from"../../../../core/libs/gl-matrix-2/math/mat4.js";import{create as o}from"../../../../core/libs/gl-matrix-2/factories/mat4f64.js";import{length as n,negate as l,copy as c,multiply as h,add as d,set as m}from"../../../../core/libs/gl-matrix-2/math/vec3.js";import{fromArray as u,ONES as p,create as f,ZEROS as y,fromValues as _}from"../../../../core/libs/gl-matrix-2/factories/vec3f64.js";import{ZEROS as g,ONES as b,create as v}from"../../../../core/libs/gl-matrix-2/factories/vec4f64.js";import{computeTranslationToOriginAndRotation as P}from"../../../../geometry/projection/computeTranslationToOriginAndRotation.js";import{projectPointToVector as x}from"../../../../geometry/projection/projectPointToVector.js";import{create as R,size as S,containsPoint as C,center as w}from"../../../../geometry/support/aaBoundingBox.js";import{getEmissiveMode as L}from"../../../../symbols/support/materialUtils.js";import{defaultObjectPrimitive as O}from"../../../../symbols/support/primitives.js";import{objectSymbolLayerPrimitiveBoundingBox as U,objectSymbolLayerSizeWithResourceSize as j}from"../../../../symbols/support/symbolLayerUtils3D.js";import{estimateNumVerticesForLods as E,defaultSymbolLayerMemoryComplexity as T}from"./defaultSymbolComplexity.js";import{perLodInstanceElevationAligner as B}from"./ElevationAligners.js";import{needsElevationUpdates3D as G,SampleElevationInfo as z,evaluateElevationInfoAtPoint as D}from"./elevationAlignmentUtils.js";import{Graphics3DLodInstanceGraphicLayer as V}from"./Graphics3DLodInstanceGraphicLayer.js";import{Graphics3DSymbolLayer as F,nanFallbackColor as A}from"./Graphics3DSymbolLayer.js";import{validateSymbolLayerSize as I,computeObjectScale as k,computeObjectRotation as H}from"./graphicUtils.js";import{makeLodResources as M}from"./lodResourceUtils.js";import{fetch as W}from"./objectResourceUtils.js";import{placePointOnGeometry as N,extendPointGraphicElevationContext as q}from"./pointUtils.js";import{isValidPrimitive as $,primitiveLodResources as Z}from"./primitiveObjectSymbolUtils.js";import{SymbolComplexity as J}from"./SymbolComplexity.js";import{getResourceUrlFromSymbolStyle as K}from"./webStyleUtils.js";import{initFastSymbolUpdatesState as Q,updateFastSymbolUpdatesState as X,ConvertOptions as Y,evaluateModelTransformScale as ee,evaluateModelTransform as te}from"../support/FastSymbolUpdates.js";import{VerticalOffsetParameters as se}from"../../webgl-engine/core/shaderLibrary/attributes/VerticalOffset.glsl.js";import{LodRenderer as re}from"../../webgl-engine/lib/lodRendering/LodRenderer.js";import{DefaultMaterial as ie}from"../../webgl-engine/materials/DefaultMaterial.js";import{schematicMRRFactors as ae}from"../../webgl-engine/materials/pbrUtils.js";class oe{constructor(e,t,s,r,i,a,o,n,l,c,h=null){this.lodResources=e,this.lodRenderer=t,this.stageResources=s,this.resourceSize=r,this.isEsriSymbolResource=i,this.isWosr=a,this.resourceBoundingBox=o,this.symbolSize=n,this.extentPadding=l,this.physicalBasedRenderingEnabled=c,this.pivotOffset=h}}class ne extends F{getCachedSize(){const[e,t,s]=null!=this._resources?this._resources.symbolSize:[1,1,1];return{width:e,depth:t,height:s}}constructor(e,t,s,r){super(e,t,s,r,he(t)),this._resources=null,this._instanceIndexToGraphicUid=new Map,this._hasLoadedPBRTextures=!1,this._disposeResourceHandles=new Array,this.skipHighSymbolLodsChanged=!1,this.ensureDrapedStatus(!1),this._hasLoadedPBRTextures=s.physicalBasedRenderingEnabled}async doLoad(e){if(!this._drivenProperties.size){const e=I(this.symbolLayer);if(e)throw new Error(e)}if(this._isPrimitive){const t=this.symbolLayer.resource,s=t&&$(t?.primitive)?t.primitive:O;this._resources=await this._createResourcesForPrimitive(s,e)}else{const t=await K(this.symbol.styleOrigin),s=t?.href??this.symbolLayer.resource?.href;this._resources=await this._createResourcesForUrl(s,e)}this.layerOpacityChanged(),this.slicePlaneEnabledChanged(),this.physicalBasedRenderingChanged(),this.updateComplexity()}get extentPadding(){return null!=this._resources?this._resources.extentPadding:0}get _isPrimitive(){return null!=this._primitive}get lodRenderer(){return this._resources?.lodRenderer}get materials(){return this._resources?.stageResources.materials??[]}async _createResourcesForPrimitive(e,t){const s=this.symbolLayer,r=R(U(e)),i=u(S(r)),a=u(j(i,s)),o=n(a),l=!1,c=!1,h=s?.material,d={usePBR:this._context.physicalBasedRenderingEnabled,isSchematic:!0,mrrFactors:ae,ambient:p,diffuse:p,opacity:1,hasSlicePlane:this._context.slicePlaneEnabled,castShadows:s.castShadows,emissiveStrengthFromSymbol:h?.emissive?.strength??0,emissiveSource:1,offsetTransparentBackfaces:!1,drivenOpacity:this.needsDrivenTransparentPass},m=!!d.usePBR,f=this.symbol;"point-3d"===f.type&&f.verticalOffset&&(d.verticalOffset=new se(f.verticalOffset),d.castShadows=!1),this._context.screenSizePerspectiveEnabled&&(d.screenSizePerspective=this.view.screenSizePerspective.parameters),this._hasDrivenColorOrOpacity?d.externalColor=A:d.externalColor=this._materialColor?.toUnitRGBA()??g,this._fastUpdates=Q(this._context.renderer,this._fastVisualVariableConvertOptions(r,a,i,null)),d.instanced=!0,this._fastUpdates?(Object.assign(d,this._fastUpdates.materialParameters),d.instancedFeatureAttribute=!0):this._hasDrivenColorOrOpacity&&(d.instancedColor=!0);const y=new ie(d,this._context);y.setParameters({cullFace:de(y.transparent)});const _=Z(e,y);if(!_)throw new Error(`Unknown object symbol primitive: ${e}`);const b=await this._createStageResources(_,m,t),v=await this._createLodRenderer(_,t);return new oe(_,v,b,i,l,c,r,a,o,m)}async _createResourcesForUrl(e,s){const r={instanced:!0,hasSlicePlane:this._context.slicePlaneEnabled,castShadows:this.symbolLayer.castShadows},i={spherical:this._context.spherical,materialParameters:r,cache:this._context.sharedResources.objectResourceCache,compressionOptions:{compressionTracker:this._context.compressionTracker,compressionCallback:()=>this.updateComplexity()}};this._fastUpdates=Q(this._context.renderer,this._fastVisualVariableConvertOptions(null,null,null,null)),this._fastUpdates?(Object.assign(i.materialParameters,this._fastUpdates.materialParameters),i.materialParameters.instancedFeatureAttribute=!0):this._hasDrivenColorOrOpacity&&(i.materialParameters.instancedColor=!0);const a=this.symbol;if("point-3d"===a.type&&a.verticalOffset){const{screenLength:e,minWorldLength:s,maxWorldLength:r}=a.verticalOffset;i.materialParameters.verticalOffset={screenLength:t(e),minWorldLength:s||0,maxWorldLength:null!=r?r:1/0},i.materialParameters.castShadows=!1}const o=this._context.physicalBasedRenderingEnabled;i.signal=s,i.usePBR=o,i.useEmissive=this.view.stage.renderView.renderingContext.driverTest.floatBufferBlend.result,i.skipHighLods=this._context.skipHighSymbolLods;const l=this.symbolLayer.material;i.materialParameters.emissiveStrengthFromSymbol=l?.emissive?.strength??1,i.materialParameters.emissiveSource=L(l?.emissive?.source??"emissive");const c=await W(e,i),h=c.isEsriSymbolResource,d=c.isWosr,m=M(c.lods),p=this._context,f=this._getExternalColorParameters(l),y=this.needsDrivenTransparentPass,_=m.getMaterials();_.forEach(e=>{e.setParameters({...f,drivenOpacity:y}),p.screenSizePerspectiveEnabled&&e.setParameters({screenSizePerspective:this.view.screenSizePerspective.parameters})});const g=c.referenceBoundingBox,b=u(S(g)),v=u(m.levels[0].pivotOffset),P=u(j(b,this.symbolLayer)),x=n(P),R=this._fastUpdates;X(R,this._context.renderer,this._fastVisualVariableConvertOptions(g,P,b,v))&&_.forEach(e=>e.setParameters(R.materialParameters));const C=await this._createStageResources(m,o,s),w=await this._createLodRenderer(m,s);return new oe(m,w,C,b,h,d,g,P,x,o,v)}_addDisposeResource(e){this._disposeResourceHandles.push(e)}async _createStageResources(t,s,r){const i=this._context.stage,a=t.getMaterials();s!==this._context.physicalBasedRenderingEnabled&&this.physicalBasedRenderingChanged();const o=t.getTextures();i.addTextures(o),this._addDisposeResource(()=>{o.forEach(e=>e.unload()),i.removeTextures(o)}),await Promise.all(o.map(e=>this._context.stage.schedule(()=>e.load(i.renderView.renderingContext),r))),e(r);const n=t.getEngineGeometries();return{materials:a,textures:o,geometries:n}}async _createLodRenderer(e,t){const s=this._context.stage,r={layerViewUid:this._context.layerViewUid,graphicUid:e=>this._instanceIndexToGraphicUid.get(e),notifyGraphicGeometryChanged:e=>this._context.notifyGraphicGeometryChanged(this._instanceIndexToGraphicUid.get(e)),notifyGraphicVisibilityChanged:e=>this._context.notifyGraphicVisibilityChanged(this._instanceIndexToGraphicUid.get(e))},i=this._fastUpdates,o=new re({symbol:e,metadata:r,shaderTransformation:i?{applyTransform:(e,t,s)=>{e.getFeatureAttribute(t,fe),a(s,te(i.materialParameters,fe,s))},scaleFactor:(e,t,s)=>{t.getFeatureAttribute(s,fe),ee(e,i.materialParameters,fe)}}:null},this._context.scheduler);return o.slicePlaneEnabled=this._context.slicePlaneEnabled,this._addDisposeResource(()=>{s.removeRenderPlugin(o),o.destroy()}),await s.addRenderPlugin(o,t),o}_getExternalColorParameters(e){const t={};if(t.externalColor=A,!this._drivenProperties.color&&null!=e?.color){const s=e.color.toUnitRGBA();this._drivenProperties.opacity&&(s[3]=NaN),t.externalColor=s}return t}destroy(){super.destroy(),this._cleanupResources()}_cleanupResources(){this._disposeResourceHandles.forEach(e=>e()),this._disposeResourceHandles.length=0,this._resources=null}createGraphics3DGraphic(e){const t=e.graphic;if(!this._validateGeometry(t.geometry))return null;const s=N(t.geometry);if(null==s)return this.logger.warn(`unsupported geometry type for object symbol: ${t.geometry.type}`),null;const r=this.createElevationContextForGraphic(t),i=e.renderingInfo;return this._createAs3DShape(t,s,i,r,t.uid)}notifyDestroyGraphicLayer(e){this._instanceIndexToGraphicUid.delete(e.instanceIndex)}graphicLayerToGraphicId(){return 0}layerOpacityChanged(){if(null==this._resources)return;const e=this._getLayerOpacity(),t=this._resources.stageResources.materials;for(let s=0;s<t.length;s++){const r=t[s];r.setParameters({layerOpacity:e}),this._isPrimitive&&r.setParameters({cullFace:de(r.transparent)})}}layerScreenSizePerspectiveChanged(){if(null==this._resources)return;const e=this._context.screenSizePerspectiveEnabled?this.view.screenSizePerspective.parameters:null;for(const t of this._resources.stageResources.materials)t.setParameters({screenSizePerspective:e})}layerElevationInfoChanged(e,t){return this.updateGraphics3DGraphicElevationInfo(e,t,G)}slicePlaneEnabledChanged(){if(null==this._resources)return!0;this._resources.lodRenderer.slicePlaneEnabled=this._context.slicePlaneEnabled;for(const e of this._resources.stageResources.materials)e.setParameters({hasSlicePlane:this._context.slicePlaneEnabled});return!0}physicalBasedRenderingChanged(){if(null==this._resources)return!0;const{stageResources:e,isWosr:t}=this._resources;for(const s of e.materials)this._isPrimitive?s.setParameters({usePBR:this._context.physicalBasedRenderingEnabled,isSchematic:!0}):t||s.setParameters({usePBR:this._context.physicalBasedRenderingEnabled,isSchematic:!1});return!1!==this._hasLoadedPBRTextures||!0!==this._context.physicalBasedRenderingEnabled||(this._hasLoadedPBRTextures=!0,!1)}applyRendererDiff(e,t){if(null==this._resources)return 0;const{stageResources:{materials:s},lodRenderer:r,resourceBoundingBox:i,symbolSize:a,resourceSize:o,pivotOffset:n}=this._resources;for(const l in e.diff){if("visualVariables"!==l)return 0;if(!X(this._fastUpdates,t,this._fastVisualVariableConvertOptions(i,a,o,n)))return 0;for(const e of s)e.setParameters(this._fastUpdates.materialParameters);r.notifyShaderTransformationChanged()}return 2}computeComplexity(){if(null==this._resources)return super.computeComplexity();const e=this._resources.lodResources,t=E(e.levels),s=e.computeUsedMemory(),r={...T(this.symbol,this.symbolLayer),resourceBytes:s};return new J({verticesPerFeature:t,memory:r})}_hasLodRenderer(){return null!=this._resources}_createAs3DShape(e,t,s,r,i){if(!this._hasLodRenderer()||null==this._resources)return null;const a=this.getFastUpdateAttrValues(e),o=this._context.clippingExtent;if(x(t,me,this._context.elevationProvider.spatialReference),null!=o&&!C(o,me))return null;const n=ce(r),l=this._computeGlobalTransform(t,r,pe,ye),c=this._computeLocalTransform(this._resources,this.symbolLayer,s,ue),h=this._resources.lodRenderer.instanceData,d=h.addInstance();this._instanceIndexToGraphicUid.set(d,i),h.setLocalTransform(d,c,!1),h.setGlobalTransform(d,l),a&&h.setFeatureAttribute(d,a),null==this._fastUpdates&&this._hasDrivenColorOrOpacity&&h.setColor(d,this._getDrivenUInt8ColorWithNaNSupport(s,this._materialColor,!this._isPrimitive));const m=this._context.stage.renderView.olidRenderHelper;if(m){const e=m.getObjectAndLayerIdColor({graphicUid:i,layerViewUid:this._context.layerViewUid});h.setObjectAndLayerIdColor(d,e)}const u=new V(this,d,B,r,this._context.stage.view.state.highlightOrderMap);return n&&(u.alignedSampledElevation=ye.sampledElevation),u.needsElevationUpdates=G(r.mode),q(u,t,this._context.elevationProvider),u}_computeGlobalTransform(e,t,s,r){return D(e,this._context.elevationProvider,t,this._context.renderCoordsHelper,r),me[0]=e.x,me[1]=e.y,me[2]=r.z,P(e.spatialReference,me,s,this._context.renderCoordsHelper.spatialReference),s}_computeLocalTransform(e,t,r,i){return s(i),this._applyObjectRotation(r,!1,i),this._applyObjectRotation(t,!0,i),this._applyObjectScale(e,r,i),this._applyAnchor(e,t,i),i}_applyObjectScale(e,t,s){if(this._fastUpdates?.requiresShaderTransformation)return;const i=this._drivenProperties.size&&t.size?t.size:e.symbolSize,a=k(i,e.symbolSize,e.resourceSize,this._context.renderCoordsHelper.unitInMeters);1===a[0]&&1===a[1]&&1===a[2]||r(s,s,a)}prepareSymbolLayerPatch(e){if("partial"!==e.diff.type)return;const t=e.diff.diff;this._preparePatchTransform(e,t),this._preparePatchColor(e,t)}updateGeometry(e,t){if(null==this._resources)return!0;const s=e.geometry;if(!s)return!1;const r=N(s);if(null==r)return!1;const i=this.getGeometryElevationMode(s),{elevationContext:a}=t;return a.mode===i&&(a.updateFeatureExpressionFeature(e,this._context.layer),this._computeGlobalTransform(r,a,pe,ye),ce(a)&&(t.alignedSampledElevation=ye.sampledElevation),this._resources.lodRenderer.instanceData.setGlobalTransform(t.instanceIndex,pe,!0),q(t,r,this._context.elevationProvider),!0)}_preparePatchTransform(e,t){if(!(t.heading||t.tilt||t.roll||t.width||t.height||t.depth||t.anchor||t.anchorPosition))return;if(null==this._resources)return;const s=(e,t,s)=>(null!=e&&"complete"===e.type?e.newValue:t)??s,r=s(t.heading,this.symbolLayer.heading,0),i=s(t.tilt,this.symbolLayer.tilt,0),a=s(t.roll,this.symbolLayer.roll,0),o=s(t.width,this.symbolLayer.width,void 0),n=s(t.height,this.symbolLayer.height,void 0),l=s(t.depth,this.symbolLayer.depth,void 0),c=s(t.anchor,this.symbolLayer.anchor,void 0),h=s(t.anchorPosition,this.symbolLayer.anchorPosition,void 0);delete t.heading,delete t.tilt,delete t.roll,delete t.width,delete t.height,delete t.depth,delete t.anchor,delete t.anchorPosition;const d={heading:r,tilt:i,roll:a,anchor:c,anchorPosition:h},m=this._resources;1===this.loadStatus&&e.symbolLayerStatePatches.push(()=>{m.symbolSize=u(j(m.resourceSize,{width:o,height:n,depth:l,isPrimitive:this._isPrimitive}))}),e.graphics3DGraphicPatches.push(({instanceIndex:e},t)=>{const s=this._computeLocalTransform(m,d,t,ue);m.lodRenderer.instanceData.setLocalTransform(e,s,!0)})}_preparePatchColor(e,t){if(!t.material||"partial"!==t.material.type)return;const s=t.material.diff;if(!s.color||"complete"!==s.color.type||null==s.color.newValue||null==s.color.oldValue)return;const r=s.color.newValue,i=null!=r?r.toUnitRGBA():b;delete s.color;const a=this._resources;if(null==a)return;const o=this._isPrimitive;e.graphics3DGraphicPatches.push(({instanceIndex:e})=>{if(this._hasDrivenColorOrOpacity)a.lodRenderer.instanceData.setColor(e,i);else{const e={externalColor:i};for(const t of a.stageResources.materials)t.setParameters(e),o&&t.setParameters({cullFace:de(t.transparent)})}})}_applyObjectRotation(e,t,s){if(!this._fastUpdates?.requiresShaderTransformation||!t)return H(e.heading,e.tilt,e.roll,s)}_applyAnchor(e,t,s){if(this._fastUpdates?.requiresShaderTransformation)return;const r=le(e.resourceBoundingBox,e.pivotOffset,t);r&&i(s,s,r)}_fastVisualVariableConvertOptions(e,t,s,r){const i=null!=e?u(S(e)):p,a=null!=e?le(e,r,this.symbolLayer):y,o=this._context.renderCoordsHelper.unitInMeters,n=k(null!=t?t:void 0,t,s,o),l=_(this.symbolLayer.tilt||0,this.symbolLayer.roll||0,this.symbolLayer.heading||0);return new Y({supports:{size:!0,color:!0,rotation:!0,opacity:!1},modelSize:i,symbolSize:t??p,unitInMeters:o,anchor:a,scale:n,rotation:l,fallbackColor:this._getFallbackOpacityAndColor(),fallbackSize:n})}get _primitive(){const{resource:e}=this.symbolLayer;return null!=e?.href?null:e?.primitive??O}_getFallbackOpacityAndColor(){return this._materialColor?.toUnitRGBA()??(this._isPrimitive?g:A)}get _materialColor(){return this.symbolLayer.material?.color}}function le(e,t,s){const r=f();switch(s.anchor){case"center":c(r,w(e)),l(r,r);break;case"top":{const t=w(e);m(r,-t[0],-t[1],-e[5]);break}case"bottom":{const t=w(e);m(r,-t[0],-t[1],-e[2]);break}case"relative":{const t=w(e),i=S(e),a=s.anchorPosition,o=a?_(a.x,a.y,a.z):y;h(r,i,o),d(r,r,t),l(r,r);break}default:null!=t?l(r,t):c(r,y)}return r}function ce(e){return"absolute-height"!==e.mode}function he(e){return 1===(e.material?.color?.a??0)&&null==e.resource?.href}function de(e){return e?0:2}const me=f(),ue=o(),pe=o(),fe=v(),ye=new z;export{ne as Graphics3DObjectSymbolLayer};
5
+ import{throwIfAborted as e}from"../../../../core/promiseUtils.js";import{pt2px as t}from"../../../../core/screenUtils.js";import{identity as s,scale as r,translate as i,copy as a}from"../../../../core/libs/gl-matrix-2/math/mat4.js";import{create as o}from"../../../../core/libs/gl-matrix-2/factories/mat4f64.js";import{length as n,negate as l,copy as c,multiply as h,add as d,set as m}from"../../../../core/libs/gl-matrix-2/math/vec3.js";import{fromArray as p,ONES as u,create as f,ZEROS as y,fromValues as _}from"../../../../core/libs/gl-matrix-2/factories/vec3f64.js";import{ZEROS as g,ONES as b,create as v}from"../../../../core/libs/gl-matrix-2/factories/vec4f64.js";import{computeTranslationToOriginAndRotation as P}from"../../../../geometry/projection/computeTranslationToOriginAndRotation.js";import{projectPointToVector as x}from"../../../../geometry/projection/projectPointToVector.js";import{create as R,size as S,containsPoint as C,center as w}from"../../../../geometry/support/aaBoundingBox.js";import{getEmissiveMode as L}from"../../../../symbols/support/materialUtils.js";import{defaultObjectPrimitive as O}from"../../../../symbols/support/primitives.js";import{objectSymbolLayerPrimitiveBoundingBox as U,objectSymbolLayerSizeWithResourceSize as E}from"../../../../symbols/support/symbolLayerUtils3D.js";import{estimateNumVerticesForLods as j,defaultSymbolLayerMemoryComplexity as T}from"./defaultSymbolComplexity.js";import{perLodInstanceElevationAligner as B}from"./ElevationAligners.js";import{needsElevationUpdates3D as G,SampleElevationInfo as z,evaluateElevationInfoAtPoint as D}from"./elevationAlignmentUtils.js";import{Graphics3DLodInstanceGraphicLayer as V}from"./Graphics3DLodInstanceGraphicLayer.js";import{Graphics3DSymbolLayer as F,nanFallbackColor as A}from"./Graphics3DSymbolLayer.js";import{validateSymbolLayerSize as I,computeObjectScale as k,computeObjectRotation as H}from"./graphicUtils.js";import{makeLodResources as M}from"./lodResourceUtils.js";import{fetch as W}from"./objectResourceUtils.js";import{placePointOnGeometry as N,extendPointGraphicElevationContext as q}from"./pointUtils.js";import{isValidPrimitive as $,primitiveLodResources as Z}from"./primitiveObjectSymbolUtils.js";import{SymbolComplexity as J}from"./SymbolComplexity.js";import{getResourceUrlFromSymbolStyle as K}from"./webStyleUtils.js";import{initFastSymbolUpdatesState as Q,updateFastSymbolUpdatesState as X,ConvertOptions as Y,evaluateModelTransformScale as ee,evaluateModelTransform as te}from"../support/FastSymbolUpdates.js";import{VerticalOffsetParameters as se}from"../../webgl-engine/core/shaderLibrary/attributes/VerticalOffset.glsl.js";import{LodRenderer as re}from"../../webgl-engine/lib/lodRendering/LodRenderer.js";import{DefaultMaterial as ie}from"../../webgl-engine/materials/DefaultMaterial.js";import{schematicMRRFactors as ae}from"../../webgl-engine/materials/pbrUtils.js";class oe{constructor(e,t,s,r,i,a,o,n,l,c,h=null){this.lodResources=e,this.lodRenderer=t,this.stageResources=s,this.resourceSize=r,this.isEsriSymbolResource=i,this.isWosr=a,this.resourceBoundingBox=o,this.symbolSize=n,this.extentPadding=l,this.physicalBasedRenderingEnabled=c,this.pivotOffset=h}}class ne extends F{getCachedSize(){const[e,t,s]=null!=this._resources?this._resources.symbolSize:[1,1,1];return{width:e,depth:t,height:s}}constructor(e,t,s,r){super(e,t,s,r,he(t)),this._resources=null,this._instanceIndexToGraphicUid=new Map,this._hasLoadedPBRTextures=!1,this._disposeResourceHandles=new Array,this.skipHighSymbolLodsChanged=!1,this.ensureDrapedStatus(!1),this._hasLoadedPBRTextures=s.physicalBasedRenderingEnabled}async doLoad(e){if(!this._drivenProperties.size){const e=I(this.symbolLayer);if(e)throw new Error(e)}if(this._isPrimitive){const t=this.symbolLayer.resource,s=t&&$(t?.primitive)?t.primitive:O;this._resources=await this._createResourcesForPrimitive(s,e)}else{const t=await K(this.symbol.styleOrigin),s=t?.href??this.symbolLayer.resource?.href;this._resources=await this._createResourcesForUrl(s,e)}this.layerOpacityChanged(),this.slicePlaneEnabledChanged(),this.physicalBasedRenderingChanged(),this.updateComplexity()}get extentPadding(){return null!=this._resources?this._resources.extentPadding:0}get _isPrimitive(){return null!=this._primitive}get lodRenderer(){return this._resources?.lodRenderer}get materials(){return this._resources?.stageResources.materials??[]}async _createResourcesForPrimitive(e,t){const s=this.symbolLayer,r=R(U(e)),i=p(S(r)),a=p(E(i,s)),o=n(a),l=!1,c=!1,h=s?.material,d={usePBR:this._context.physicalBasedRenderingEnabled,isSchematic:!0,mrrFactors:ae,ambient:u,diffuse:u,opacity:1,hasSlicePlane:this._context.slicePlaneEnabled,castShadows:s.castShadows,emissiveStrengthFromSymbol:h?.emissive?.strength??0,emissiveSource:1,offsetTransparentBackfaces:!1,drivenOpacity:this.needsDrivenTransparentPass},m=!!d.usePBR,f=this.symbol;"point-3d"===f.type&&f.verticalOffset&&(d.verticalOffset=new se(f.verticalOffset),d.castShadows=!1),this._context.screenSizePerspectiveEnabled&&(d.screenSizePerspective=this.view.screenSizePerspective.parameters),this._hasDrivenColorOrOpacity?d.externalColor=A:d.externalColor=this._materialColor?.toUnitRGBA()??g,this._fastUpdates=Q(this._context.renderer,this._fastVisualVariableConvertOptions(r,a,i,null)),d.instanced=!0,this._fastUpdates?(Object.assign(d,this._fastUpdates.materialParameters),d.instancedFeatureAttribute=!0):this._hasDrivenColorOrOpacity&&(d.instancedColor=!0);const y=new ie(d,this._context);y.setParameters({cullFace:de(y.transparent)});const _=Z(e,y);if(!_)throw new Error(`Unknown object symbol primitive: ${e}`);const b=await this._createStageResources(_,m,t),v=await this._createLodRenderer(_,t);return new oe(_,v,b,i,l,c,r,a,o,m)}async _createResourcesForUrl(e,s){const r={instanced:!0,hasSlicePlane:this._context.slicePlaneEnabled,castShadows:this.symbolLayer.castShadows},i={spherical:this._context.spherical,materialParameters:r,cache:this._context.sharedResources.objectResourceCache,compressionOptions:{compressionTracker:this._context.compressionTracker,compressionCallback:()=>this.updateComplexity()}};this._fastUpdates=Q(this._context.renderer,this._fastVisualVariableConvertOptions(null,null,null,null)),this._fastUpdates?(Object.assign(i.materialParameters,this._fastUpdates.materialParameters),i.materialParameters.instancedFeatureAttribute=!0):this._hasDrivenColorOrOpacity&&(i.materialParameters.instancedColor=!0);const a=this.symbol;if("point-3d"===a.type&&a.verticalOffset){const{screenLength:e,minWorldLength:s,maxWorldLength:r}=a.verticalOffset;i.materialParameters.verticalOffset={screenLength:t(e),minWorldLength:s||0,maxWorldLength:null!=r?r:1/0},i.materialParameters.castShadows=!1}const o=this._context.physicalBasedRenderingEnabled;i.signal=s,i.usePBR=o,i.useEmissive=this.view.stage.renderView.renderingContext.driverTest.floatBufferBlend.result,i.skipHighLods=this._context.skipHighSymbolLods;const l=this.symbolLayer.material;i.materialParameters.emissiveStrengthFromSymbol=l?.emissive?.strength??1,i.materialParameters.emissiveSource=L(l?.emissive?.source??"emissive");const c=await W(e,i),h=c.isEsriSymbolResource,d=c.isWosr,m=M(c.lods),u=this._context,f=this._getExternalColorParameters(l),y=this.needsDrivenTransparentPass,_=m.getMaterials();_.forEach(e=>{e.setParameters({...f,drivenOpacity:y}),u.screenSizePerspectiveEnabled&&e.setParameters({screenSizePerspective:this.view.screenSizePerspective.parameters})});const g=c.referenceBoundingBox,b=p(S(g)),v=p(m.levels[0].pivotOffset),P=p(E(b,this.symbolLayer)),x=n(P),R=this._fastUpdates;X(R,this._context.renderer,this._fastVisualVariableConvertOptions(g,P,b,v))&&_.forEach(e=>e.setParameters(R.materialParameters));const C=await this._createStageResources(m,o,s),w=await this._createLodRenderer(m,s);return new oe(m,w,C,b,h,d,g,P,x,o,v)}_addDisposeResource(e){this._disposeResourceHandles.push(e)}async _createStageResources(t,s,r){const i=this._context.stage,a=t.getMaterials();s!==this._context.physicalBasedRenderingEnabled&&this.physicalBasedRenderingChanged();const o=t.getTextures();i.addTextures(o),this._addDisposeResource(()=>{o.forEach(e=>e.unload()),i.removeTextures(o)}),await Promise.all(o.map(e=>this._context.stage.schedule(()=>e.load(i.renderView.renderingContext),r))),e(r);const n=t.getEngineGeometries();return{materials:a,textures:o,geometries:n}}async _createLodRenderer(e,t){const s=this._context.stage,r={layerViewUid:this._context.layerViewUid,graphicUid:e=>this._instanceIndexToGraphicUid.get(e),notifyGraphicGeometryChanged:e=>this._context.notifyGraphicGeometryChanged(this._instanceIndexToGraphicUid.get(e)),notifyGraphicVisibilityChanged:e=>this._context.notifyGraphicVisibilityChanged(this._instanceIndexToGraphicUid.get(e))},i=this._fastUpdates,o=new re({symbol:e,metadata:r,shaderTransformation:i?{applyTransform:(e,t,s)=>{e.getFeatureAttribute(t,fe),a(s,te(i.materialParameters,fe,s))},scaleFactor:(e,t,s)=>{t.getFeatureAttribute(s,fe),ee(e,i.materialParameters,fe)}}:null},this._context.scheduler);return o.slicePlaneEnabled=this._context.slicePlaneEnabled,this._addDisposeResource(()=>{s.removeRenderPlugin(o),o.destroy()}),await s.addRenderPlugin(o,t),o}_getExternalColorParameters(e){const t={};if(t.externalColor=A,!this._drivenProperties.color&&null!=e?.color){const s=e.color.toUnitRGBA();this._drivenProperties.opacity&&(s[3]=NaN),t.externalColor=s}return t}destroy(){super.destroy(),this._cleanupResources()}_cleanupResources(){this._disposeResourceHandles.forEach(e=>e()),this._disposeResourceHandles.length=0,this._resources=null}createGraphics3DGraphic(e){const t=e.graphic;if(!this._validateGeometry(t.geometry))return null;const s=N(t.geometry);if(null==s)return this.logger.warn(`unsupported geometry type for object symbol: ${t.geometry.type}`),null;const r=this.createElevationContextForGraphic(t),i=e.renderingInfo;return this._createAs3DShape(t,s,i,r,t.uid)}notifyDestroyGraphicLayer(e){this._instanceIndexToGraphicUid.delete(e.instanceIndex)}graphicLayerToGraphicId(){return 0}layerOpacityChanged(){if(null==this._resources)return;const e=this._getLayerOpacity(),t=this._resources.stageResources.materials;for(let s=0;s<t.length;s++){const r=t[s];r.setParameters({layerOpacity:e}),this._isPrimitive&&r.setParameters({cullFace:de(r.transparent)})}}layerScreenSizePerspectiveChanged(){if(null==this._resources)return;const e=this._context.screenSizePerspectiveEnabled?this.view.screenSizePerspective.parameters:null;for(const t of this._resources.stageResources.materials)t.setParameters({screenSizePerspective:e})}layerElevationInfoChanged(e,t){return this.updateGraphics3DGraphicElevationInfo(e,t,G)}slicePlaneEnabledChanged(){if(null==this._resources)return!0;this._resources.lodRenderer.slicePlaneEnabled=this._context.slicePlaneEnabled;for(const e of this._resources.stageResources.materials)e.setParameters({hasSlicePlane:this._context.slicePlaneEnabled});return!0}physicalBasedRenderingChanged(){if(null==this._resources)return!0;const{stageResources:e,isWosr:t}=this._resources;for(const s of e.materials)this._isPrimitive?s.setParameters({usePBR:this._context.physicalBasedRenderingEnabled,isSchematic:!0}):t||s.setParameters({usePBR:this._context.physicalBasedRenderingEnabled,isSchematic:!1});return!1!==this._hasLoadedPBRTextures||!0!==this._context.physicalBasedRenderingEnabled||(this._hasLoadedPBRTextures=!0,!1)}applyRendererDiff(e,t){if(null==this._resources)return 0;const{stageResources:{materials:s},lodRenderer:r,resourceBoundingBox:i,symbolSize:a,resourceSize:o,pivotOffset:n}=this._resources;for(const l in e.diff){if("visualVariables"!==l)return 0;if(!X(this._fastUpdates,t,this._fastVisualVariableConvertOptions(i,a,o,n)))return 0;for(const e of s)e.setParameters(this._fastUpdates.materialParameters);r.notifyShaderTransformationChanged()}return 2}computeComplexity(){if(null==this._resources)return super.computeComplexity();const e=this._resources.lodResources,t=j(e.levels),s=e.computeUsedMemory(),r={...T(this.symbol,this.symbolLayer),resourceBytes:s};return new J({verticesPerFeature:t,memory:r})}_hasLodRenderer(){return null!=this._resources}_createAs3DShape(e,t,s,r,i){if(!this._hasLodRenderer()||null==this._resources)return null;const a=this.getFastUpdateAttrValues(e),o=this._context.clippingExtent;if(x(t,me,this._context.elevationProvider.spatialReference),null!=o&&!C(o,me))return null;const n=ce(r),l=this._computeGlobalTransform(t,r,ue,ye),c=this._computeLocalTransform(this._resources,this.symbolLayer,s,pe),h=this._resources.lodRenderer.instanceData,d=h.addInstance();this._instanceIndexToGraphicUid.set(d,i),h.setLocalTransform(d,c,!1),h.setGlobalTransform(d,l),a&&h.setFeatureAttribute(d,a),null==this._fastUpdates&&this._hasDrivenColorOrOpacity&&h.setColor(d,this._getDrivenUInt8ColorWithNaNSupport(s,this._materialColor,!this._isPrimitive));const m=this._context.stage.renderView.olidRenderHelper;if(m){const e=m.getObjectAndLayerIdColor({graphicUid:i,layerViewUid:this._context.layerViewUid});h.setObjectAndLayerIdColor(d,e)}const p=new V(this,d,B,r,this._context.stage.view.state.highlightOrderMap);return n&&(p.alignedSampledElevation=ye.sampledElevation),p.needsElevationUpdates=G(r.mode),q(p,t,this._context.elevationProvider),p}_computeGlobalTransform(e,t,s,r){return D(e,this._context.elevationProvider,t,this._context.renderCoordsHelper,r),me[0]=e.x,me[1]=e.y,me[2]=r.z,P(e.spatialReference,me,s,this._context.renderCoordsHelper.spatialReference),s}_computeLocalTransform(e,t,r,i){return s(i),this._applyObjectRotation(r,!1,i),this._applyObjectRotation(t,!0,i),this._applyObjectScale(e,r,i),this._applyAnchor(e,t,i),i}_applyObjectScale(e,t,s){if(this._fastUpdates?.requiresShaderTransformation)return;const i=this._drivenProperties.size&&t.size?t.size:e.symbolSize,a=k(i,e.symbolSize,e.resourceSize,this._context.renderCoordsHelper.unitInMeters);1===a[0]&&1===a[1]&&1===a[2]||r(s,s,a)}prepareSymbolLayerPatch(e){if("partial"!==e.diff.type)return;const t=e.diff.diff;this._preparePatchTransform(e,t),this._preparePatchColor(e,t),this._preparePatchEmissive(e,t)}updateGeometry(e,t){if(null==this._resources)return!0;const s=e.geometry;if(!s)return!1;const r=N(s);if(null==r)return!1;const i=this.getGeometryElevationMode(s),{elevationContext:a}=t;return a.mode===i&&(a.updateFeatureExpressionFeature(e,this._context.layer),this._computeGlobalTransform(r,a,ue,ye),ce(a)&&(t.alignedSampledElevation=ye.sampledElevation),this._resources.lodRenderer.instanceData.setGlobalTransform(t.instanceIndex,ue,!0),q(t,r,this._context.elevationProvider),!0)}_preparePatchTransform(e,t){if(!(t.heading||t.tilt||t.roll||t.width||t.height||t.depth||t.anchor||t.anchorPosition))return;if(null==this._resources)return;const s=(e,t,s)=>(null!=e&&"complete"===e.type?e.newValue:t)??s,r=s(t.heading,this.symbolLayer.heading,0),i=s(t.tilt,this.symbolLayer.tilt,0),a=s(t.roll,this.symbolLayer.roll,0),o=s(t.width,this.symbolLayer.width,void 0),n=s(t.height,this.symbolLayer.height,void 0),l=s(t.depth,this.symbolLayer.depth,void 0),c=s(t.anchor,this.symbolLayer.anchor,void 0),h=s(t.anchorPosition,this.symbolLayer.anchorPosition,void 0);delete t.heading,delete t.tilt,delete t.roll,delete t.width,delete t.height,delete t.depth,delete t.anchor,delete t.anchorPosition;const d={heading:r,tilt:i,roll:a,anchor:c,anchorPosition:h},m=this._resources;1===this.loadStatus&&e.symbolLayerStatePatches.push(()=>{m.symbolSize=p(E(m.resourceSize,{width:o,height:n,depth:l,isPrimitive:this._isPrimitive}))}),e.graphics3DGraphicPatches.push(({instanceIndex:e},t)=>{const s=this._computeLocalTransform(m,d,t,pe);m.lodRenderer.instanceData.setLocalTransform(e,s,!0)})}_preparePatchColor(e,t){if(!t.material||"partial"!==t.material.type)return;const s=t.material.diff;if(!s.color||"complete"!==s.color.type||null==s.color.newValue||null==s.color.oldValue)return;const r=s.color.newValue,i=null!=r?r.toUnitRGBA():b;delete s.color;const a=this._resources;if(null==a)return;const o=this._isPrimitive;e.graphics3DGraphicPatches.push(({instanceIndex:e})=>{if(this._hasDrivenColorOrOpacity)a.lodRenderer.instanceData.setColor(e,i);else{const e={externalColor:i};for(const t of a.stageResources.materials)t.setParameters(e),o&&t.setParameters({cullFace:de(t.transparent)})}})}_preparePatchEmissive(e,t){if(!this.view.stage.renderView.renderingContext.driverTest.floatBufferBlend.result||!t.material||"partial"!==t.material.type||!t.material.diff)return;const s=t.material.diff;if(!s.emissive)return;const r=s.emissive.type;if("collection"===r||"complete"===r)return;const i=s.emissive.diff,a=i?.strength,o=i?.source;if(!i||o||!a||"complete"!==a.type)return;const n={emissiveStrengthFromSymbol:a.newValue??(this._isPrimitive?0:1)};e.graphics3DGraphicPatches.push(()=>{this._resources?.stageResources.materials.forEach(e=>e.setParameters(n))}),delete s.emissive}_applyObjectRotation(e,t,s){if(!this._fastUpdates?.requiresShaderTransformation||!t)return H(e.heading,e.tilt,e.roll,s)}_applyAnchor(e,t,s){if(this._fastUpdates?.requiresShaderTransformation)return;const r=le(e.resourceBoundingBox,e.pivotOffset,t);r&&i(s,s,r)}_fastVisualVariableConvertOptions(e,t,s,r){const i=null!=e?p(S(e)):u,a=null!=e?le(e,r,this.symbolLayer):y,o=this._context.renderCoordsHelper.unitInMeters,n=k(null!=t?t:void 0,t,s,o),l=_(this.symbolLayer.tilt||0,this.symbolLayer.roll||0,this.symbolLayer.heading||0);return new Y({supports:{size:!0,color:!0,rotation:!0,opacity:!1},modelSize:i,symbolSize:t??u,unitInMeters:o,anchor:a,scale:n,rotation:l,fallbackColor:this._getFallbackOpacityAndColor(),fallbackSize:n})}get _primitive(){const{resource:e}=this.symbolLayer;return null!=e?.href?null:e?.primitive??O}_getFallbackOpacityAndColor(){return this._materialColor?.toUnitRGBA()??(this._isPrimitive?g:A)}get _materialColor(){return this.symbolLayer.material?.color}}function le(e,t,s){const r=f();switch(s.anchor){case"center":c(r,w(e)),l(r,r);break;case"top":{const t=w(e);m(r,-t[0],-t[1],-e[5]);break}case"bottom":{const t=w(e);m(r,-t[0],-t[1],-e[2]);break}case"relative":{const t=w(e),i=S(e),a=s.anchorPosition,o=a?_(a.x,a.y,a.z):y;h(r,i,o),d(r,r,t),l(r,r);break}default:null!=t?l(r,t):c(r,y)}return r}function ce(e){return"absolute-height"!==e.mode}function he(e){return 1===(e.material?.color?.a??0)&&null==e.resource?.href}function de(e){return e?0:2}const me=f(),pe=o(),ue=o(),fe=v(),ye=new z;export{ne as Graphics3DObjectSymbolLayer};
@@ -2,4 +2,4 @@
2
2
  All material copyright Esri, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/5.0/esri/copyright.txt for details.
4
4
  */
5
- import{__decorate as e}from"tslib";import{watch as t,when as s,syncAndInitial as i,sync as l}from"../../../../core/reactiveUtils.js";import{throttle as a}from"../../../../core/throttle.js";import{property as r,subclass as o}from"../../../../core/accessorSupport/decorators.js";import{clone as n,create as d}from"../../../../geometry/support/aaBoundingRect.js";import{toFlowData as h}from"../../../2d/engine/flow/dataUtils.js";import u from"../../layers/FlowSubView3D.js";import{getFeatureTileId as p}from"../../layers/support/FeatureTileDescriptor.js";import{tilesWaitingTime as c}from"./constants.js";import{FlowDataTile as f}from"./loadUtils.js";import{isRasterTile as T}from"../../terrain/TerrainData.js";import{descendantsAtLevel as g}from"../../terrain/tileUtils.js";const _={type:"delete"},y={type:"invalid"};let D=class extends u{constructor(e){super(e),this._flowDataTiles=m(),this._resetTileData=!0,this._flowDataTilesSet=!1,this._throttledTriggerLoad=null,this._throttling=!1}initialize(){this.addHandles([this.surface.on("tile-data-changed",({tile:e,layerIndex:t,layerClass:s})=>{if(t!==this._layerIndex||1!==s)return;const i=this.frameTask.schedule(()=>{this._applyTileDataUpdate(e)&&this.triggerLoad()});this.updatingHandles.addPromise(i)}),t(()=>this.renderedTiles,e=>{const t=this.frameTask.scheduleGenerator(this.loadAllTiles?t=>this._applyTileDataUpdates(e,t):t=>this._syncToTiles(e,t));this.updatingHandles.addPromise(t)},i),s(()=>null!=this.renderedTiles&&null!=this.extent&&this.loadAllTiles,()=>{const e=this.frameTask.scheduleGenerator(e=>this._enterAllTilesMode(e));this.updatingHandles.addPromise(e)},i),t(()=>this._pixelSize,()=>{this.invalidateTileData(),this._resetTileData=!0},l),this.layerView.on("data-changed",()=>{this.invalidateTileData(),this._resetTileData=!0})]),this._throttledTriggerLoad=a(()=>{super.triggerLoad(),this._throttling=!1},()=>this._throttling=!0,c,this),this.addHandles(this._throttledTriggerLoad)}*_enterAllTilesMode(e){const{targetTiles:t,_flowDataTiles:s}=this,i=m();for(const[l,a]of s)t.has(l)&&i.set(l,a);this._setFlowDataTiles(i),e.madeProgress(),e.done&&(e=yield),yield*this._applyTileDataUpdates(new Set(this.surface.allTiles),e),this.triggerLoad()}*_syncToTiles(e,t){const s=m();for(const i of e??[]){const e=this._flowDataTiles.get(i.key),l=null==e||"delete"===e.type||"invalid"===e.type?this._getLoadedState(i):e;null!=l&&s.set(i.key,l),t.madeProgress(),t.done&&(t=yield)}this._setFlowDataTiles(s),this.triggerLoad()}*_applyTileDataUpdates(e,t){let s=!1;for(const i of e??[]){const e=this._applyTileDataUpdate(i);s||=e,t.madeProgress(),t.done&&(t=yield)}s&&this.triggerLoad()}abort(){super.abort(),this._throttling=!1}get _layerIndex(){return this.surface.getLayerIndexByUID(1,this.layerView.uid)}get _pixelSize(){return this.surface.tilingScheme.pixelSize}doRefresh(){this.invalidateTileData(),super.doRefresh()}triggerLoad(){const{_throttledTriggerLoad:e}=this;this._allTilesLoaded?(e.hasPendingUpdates()||e(),e.forceUpdate()):e()}async fetchDataAndGenerateStreamlines(e,t){const{_flowDataTiles:s,needsMagnitude:i,workerHandle:l}=this,a=this.getSimulationSettings(e);if(null==a||null==l||0===s.size)return;const r=this._resetTileData;this._resetTileData=!1;const o=m();s.forEach((e,t)=>{"delete"===e.type?(o.set(t,_),s.delete(t)):(r||"on-worker"!==e.type&&"invalid"!==e.type)&&(o.set(t,e),s.set(t,"invalid"===e.type?y:{type:"on-worker",sourceLevel:e.sourceLevel}))});const n={simulationSettings:a,flowExtentInfo:e.flowExtentInfo,flowDataTiles:o,reset:r,needsMagnitude:i,startPositions:this.startPositions(e)},{streamlines:d}=await l.generateTiledStreamlines(n,t);return d}getUpdating(){return super.getUpdating()||this._throttling}get loadRequirementsMet(){return super.loadRequirementsMet&&this._flowDataTilesSet}_getLoadedState(e){const{_layerIndex:t}=this,s=e.isDisposed;if(null==t||s)return null;const i=e.getLayerInfo(t,1);if(null==i)return null;const l=this._getRasterTile(i,e,t);return null==l?this._upsampleFlowData(t,i.upsampleInfo,e.lij,e.extent):{type:"loaded",data:this._createFlowDataTile(l,e.lij,e.extent,this._pixelSize),sourceLevel:e.level}}_upsampleFlowData(e,t,s,i){if(null==t)return null;const l=t.tile;if(null==l)return null;const a=l.getLayerInfo(e,1);if(null==a)return null;const r=this._getRasterTile(a,l,e);if(null==r)return null;const{scale:o,offset:n}=t,d=Math.max(Math.floor(this._pixelSize*o),1),h=r.source,u=Math.floor(n[0]*h.width),p=Math.floor((1-n[1]-o)*h.height);return{type:"loaded",data:this._createFlowDataTile(r,s,i,d,u,p),sourceLevel:l.level}}_getRasterTile(e,t,s){const{data:i}=e;return!e.dataMissing&&t.hasLayerData(s,1)&&T(i)?i:null}_createFlowDataTile(e,t,s,i,l,a){const r=h(this.layer.serviceRasterInfo.dataType,e.source,i,i,l,a),o=r.mask.slice();return new f(r.data,o,r.width,r.height,t,n(s))}_applyTileDataUpdate(e){const{renderedTiles:t,_layerIndex:s,loadAllTiles:i,loadAllTilesLevel:l}=this;if(null==t||null==s||i&&e.level>l)return!1;if(t.has(e))return this._updateRenderedTile(e);const a=e.key;let r=this._setTileData(a,_);const o=this._updateUpsampledTiles(t,e,s);r||=o;const n=i&&this._updateDescendants(e,s);return r||=n,r}_updateRenderedTile(e){const t=e.key,{_flowDataTiles:s}=this;if(w(s.get(t),e))return!1;const i=this._getLoadedState(e);return this._setTileData(t,i)}_updateUpsampledTiles(e,t,s){const{_flowDataTiles:i}=this;let l=!1;for(const a of e.values()){const e=a.key;if(w(i.get(e),t))continue;const r=a.getLayerInfo(s,1);if(null==r)continue;if(null!=this._getRasterTile(r,a,s))continue;const o=r.upsampleInfo?.tile;if(o!==t)continue;const n=this._getLoadedState(a),d=this._setTileData(e,n);l||=d}return l}_updateDescendants(e,t){let s=!1;const{tilingScheme:i,upsampleInfoPool:l}=this.surface,{targetTiles:a,_flowDataTiles:r,loadAllTilesLevel:o}=this,n=e.lij,h=g(n,o).map(e=>[p(e[0],e[1],e[2]),e]).filter(([e])=>a.has(e));if(0===h.length)return s;const u=1<<o-n[0],c=1/u,f=n[1]*u,T=n[2]*u,_=l.acquire();for(const[p,g]of h){if(w(r.get(p),e))continue;const l=d();i.getExtent(g[0],g[1],g[2],l);const a=1-(g[1]-f)*c-c,o=(g[2]-T)*c;_.init(e,o,a,c);const n=this._upsampleFlowData(t,_,g,l),h=this._setTileData(p,n);s||=h}return l.release(_),s}_setTileData(e,t){if(null==t)return!1;const{_flowDataTiles:s}=this;return(null!=s.get(e)||"delete"!==t.type)&&(s.set(e,t),!0)}_setFlowDataTiles(e){this._flowDataTiles=e,this._resetTileData=!0,this._flowDataTilesSet=!0}get _allTilesLoaded(){let e=0;for(const t of this._flowDataTiles.values()??[])"delete"!==t.type&&"invalid"!==t.type&&e++;return this.loadAllTiles?e===this.targetTiles.size:e===this.renderedTiles?.size}invalidateTileData(){const{_flowDataTiles:e}=this;for(const t of e.keys())e.set(t,y)}get usedMemory(){const e=9*this._pixelSize**2,t=(this._flowDataTiles.size??0)*e;return super.usedMemory+t}get test(){return{...super.test,loadedTiles:this._flowDataTiles}}};function m(){return new Map}function w(e,t){return null!=e&&("loaded"===e.type||"on-worker"===e.type)&&e.sourceLevel>=t.level}e([r()],D.prototype,"_throttling",void 0),D=e([o("esri.views.3d.support.flow.FlowSubViewTiles3D")],D);export{D as default};
5
+ import{__decorate as e}from"tslib";import{watch as t,when as s,syncAndInitial as i,sync as l}from"../../../../core/reactiveUtils.js";import{throttle as a}from"../../../../core/throttle.js";import{property as r,subclass as o}from"../../../../core/accessorSupport/decorators.js";import{clone as n,create as d}from"../../../../geometry/support/aaBoundingRect.js";import{toFlowData as h}from"../../../2d/engine/flow/dataUtils.js";import u from"../../layers/FlowSubView3D.js";import{getFeatureTileId as p}from"../../layers/support/FeatureTileDescriptor.js";import{tilesWaitingTime as c}from"./constants.js";import{FlowDataTile as f}from"./loadUtils.js";import{isRasterTile as T}from"../../terrain/TerrainData.js";import{descendantsAtLevel as _}from"../../terrain/tileUtils.js";const g={type:"delete"},D={type:"invalid"};let y=class extends u{constructor(e){super(e),this._flowDataTiles=m(),this._flowDataTilesSet=!1,this._throttledTriggerLoad=null,this._throttling=!1,this._resetTileData=!0}initialize(){this.addHandles([this.surface.on("tile-data-changed",({tile:e,layerIndex:t,layerClass:s})=>{if(t!==this._layerIndex||1!==s)return;const i=this.frameTask.schedule(()=>{this._applyTileDataUpdate(e)&&this.triggerLoad()});this.updatingHandles.addPromise(i)}),t(()=>this.renderedTiles,e=>{const t=this.frameTask.scheduleGenerator(this.loadAllTiles?t=>this._applyTileDataUpdates(e,t):t=>this._syncToTiles(e,t));this.updatingHandles.addPromise(t)},i),s(()=>null!=this.renderedTiles&&null!=this.extent&&this.loadAllTiles,()=>{const e=this.frameTask.scheduleGenerator(e=>this._enterAllTilesMode(e));this.updatingHandles.addPromise(e)},i),t(()=>this._pixelSize,()=>{this.invalidateTileData(),this._resetTileData=!0},l),this.layerView.on("data-changed",()=>{this.invalidateTileData(),this._resetTileData=!0})]),this._throttledTriggerLoad=a(()=>{super.triggerLoad(),this._throttling=!1},()=>this._throttling=!0,c,this),this.addHandles(this._throttledTriggerLoad)}*_enterAllTilesMode(e){const{targetTiles:t,_flowDataTiles:s}=this,i=m();for(const[l,a]of s)t.has(l)&&i.set(l,a);this._setFlowDataTiles(i),e.madeProgress(),e.done&&(e=yield),yield*this._applyTileDataUpdates(new Set(this.surface.allTiles),e),this.triggerLoad()}*_syncToTiles(e,t){const s=m();for(const i of e??[]){const e=this._flowDataTiles.get(i.key),l=null==e||"delete"===e.type||"invalid"===e.type?this._getLoadedState(i):e;null!=l&&s.set(i.key,l),t.madeProgress(),t.done&&(t=yield)}this._setFlowDataTiles(s),this.triggerLoad()}*_applyTileDataUpdates(e,t){let s=!1;for(const i of e??[]){const e=this._applyTileDataUpdate(i);s||=e,t.madeProgress(),t.done&&(t=yield)}s&&this.triggerLoad()}abort(){super.abort(),this._throttling=!1}get _layerIndex(){return this.surface.getLayerIndexByUID(1,this.layerView.uid)}get _pixelSize(){return this.surface.tilingScheme.pixelSize}doRefresh(){this.invalidateTileData(),super.doRefresh()}triggerLoad(){const{_throttledTriggerLoad:e}=this;this._allTilesLoaded?(e.hasPendingUpdates()||e(),e.forceUpdate()):e()}async fetchDataAndGenerateStreamlines(e,t){const{_flowDataTiles:s,needsMagnitude:i,workerHandle:l}=this,a=this.getSimulationSettings(e);if(null==a||null==l||0===s.size)return;const r=this._resetTileData;this._resetTileData=!1;const o=m();s.forEach((e,t)=>{"delete"===e.type?(o.set(t,g),s.delete(t)):(r||"on-worker"!==e.type&&"invalid"!==e.type)&&(o.set(t,e),s.set(t,"invalid"===e.type?D:{type:"on-worker",sourceLevel:e.sourceLevel}))});const n={simulationSettings:a,flowExtentInfo:e.flowExtentInfo,flowDataTiles:o,reset:r,needsMagnitude:i,startPositions:this.startPositions(e)},{streamlines:d}=await l.generateTiledStreamlines(n,t);return d}hasWork(){return super.hasWork()||this._throttling||this._resetTileData}get loadRequirementsMet(){return super.loadRequirementsMet&&this._flowDataTilesSet}_getLoadedState(e){const{_layerIndex:t}=this,s=e.isDisposed;if(null==t||s)return null;const i=e.getLayerInfo(t,1);if(null==i)return null;const l=this._getRasterTile(i,e,t);return null==l?this._upsampleFlowData(t,i.upsampleInfo,e.lij,e.extent):{type:"loaded",data:this._createFlowDataTile(l,e.lij,e.extent,this._pixelSize),sourceLevel:e.level}}_upsampleFlowData(e,t,s,i){if(null==t)return null;const l=t.tile;if(null==l)return null;const a=l.getLayerInfo(e,1);if(null==a)return null;const r=this._getRasterTile(a,l,e);if(null==r)return null;const{scale:o,offset:n}=t,d=Math.max(Math.floor(this._pixelSize*o),1),h=r.source,u=Math.floor(n[0]*h.width),p=Math.floor((1-n[1]-o)*h.height);return{type:"loaded",data:this._createFlowDataTile(r,s,i,d,u,p),sourceLevel:l.level}}_getRasterTile(e,t,s){const{data:i}=e;return!e.dataMissing&&t.hasLayerData(s,1)&&T(i)?i:null}_createFlowDataTile(e,t,s,i,l,a){const r=h(this.layer.serviceRasterInfo.dataType,e.source,i,i,l,a),o=r.mask.slice();return new f(r.data,o,r.width,r.height,t,n(s))}_applyTileDataUpdate(e){const{renderedTiles:t,_layerIndex:s,loadAllTiles:i,loadAllTilesLevel:l}=this;if(null==t||null==s||i&&e.level>l)return!1;if(t.has(e))return this._updateRenderedTile(e);const a=e.key;let r=this._setTileData(a,g);const o=this._updateUpsampledTiles(t,e,s);r||=o;const n=i&&this._updateDescendants(e,s);return r||=n,r}_updateRenderedTile(e){const t=e.key,{_flowDataTiles:s}=this;if(w(s.get(t),e))return!1;const i=this._getLoadedState(e);return this._setTileData(t,i)}_updateUpsampledTiles(e,t,s){const{_flowDataTiles:i}=this;let l=!1;for(const a of e.values()){const e=a.key;if(w(i.get(e),t))continue;const r=a.getLayerInfo(s,1);if(null==r)continue;if(null!=this._getRasterTile(r,a,s))continue;const o=r.upsampleInfo?.tile;if(o!==t)continue;const n=this._getLoadedState(a),d=this._setTileData(e,n);l||=d}return l}_updateDescendants(e,t){let s=!1;const{tilingScheme:i,upsampleInfoPool:l}=this.surface,{targetTiles:a,_flowDataTiles:r,loadAllTilesLevel:o}=this,n=e.lij,h=_(n,o).map(e=>[p(e[0],e[1],e[2]),e]).filter(([e])=>a.has(e));if(0===h.length)return s;const u=1<<o-n[0],c=1/u,f=n[1]*u,T=n[2]*u,g=l.acquire();for(const[p,_]of h){if(w(r.get(p),e))continue;const l=d();i.getExtent(_[0],_[1],_[2],l);const a=1-(_[1]-f)*c-c,o=(_[2]-T)*c;g.init(e,o,a,c);const n=this._upsampleFlowData(t,g,_,l),h=this._setTileData(p,n);s||=h}return l.release(g),s}_setTileData(e,t){if(null==t)return!1;const{_flowDataTiles:s}=this;return(null!=s.get(e)||"delete"!==t.type)&&(s.set(e,t),!0)}_setFlowDataTiles(e){this._flowDataTiles=e,this._resetTileData=!0,this._flowDataTilesSet=!0}get _allTilesLoaded(){let e=0;for(const t of this._flowDataTiles.values()??[])"delete"!==t.type&&"invalid"!==t.type&&e++;return this.loadAllTiles?e===this.targetTiles.size:e===this.renderedTiles?.size}invalidateTileData(){const{_flowDataTiles:e}=this;for(const t of e.keys())e.set(t,D)}get usedMemory(){const e=9*this._pixelSize**2,t=(this._flowDataTiles.size??0)*e;return super.usedMemory+t}get test(){return{...super.test,loadedTiles:this._flowDataTiles}}};function m(){return new Map}function w(e,t){return null!=e&&("loaded"===e.type||"on-worker"===e.type)&&e.sourceLevel>=t.level}e([r()],y.prototype,"_throttling",void 0),e([r()],y.prototype,"_resetTileData",void 0),y=e([o("esri.views.3d.support.flow.FlowSubViewTiles3D")],y);export{y 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/5.0/esri/copyright.txt for details.
4
4
  */
5
- import{reallocGrowthFactor as e}from"../../../../core/arrayUtils.js";import{signal as r}from"../../../../core/signal.js";import{normalize as t}from"../../../../core/libs/gl-matrix-2/math/vec3.js";import{create as s}from"../../../../core/libs/gl-matrix-2/factories/vec3f64.js";import{intersectsSphere as i}from"../../../../geometry/support/frustum.js";import{Sphere as n}from"../../../../geometry/support/sphere.js";import{makeScheduleFunction as a}from"../../layers/support/makeScheduleFunction.js";import{GaussianSplatSortWorkerHandle as o}from"../GaussianSplatWorkerHandle.js";import{GaussianSplatFadeTexture as u}from"./GaussianSplatFadeTexture.js";import{GaussianSplatOrderTexture as h}from"./GaussianSplatOrderTexture.js";import{GaussianSplatTextureAtlas as d}from"./GaussianSplatTextureAtlas.js";import{TaskPriority as l}from"../../../support/Scheduler.js";class _{constructor(e){this._updating=r(!1),this._useDeterministicSort=!1,this.visibleGaussians=0,this._visibleGaussianTiles=new Array,this._workerHandle=null,this._isSorting=!1,this._pendingSortTask=!1,this._bufferCapacity=0,this._minimumBoundingSphere=new n,this._cameraDirectionNormalized=s(),this._frameTask=null,this._renderer=e,this._orderTexture=new h(this._renderer.renderingContext),this._fadingTexture=new u(this._renderer.renderingContext),this._textureAtlas=new d(this._renderer.renderingContext,this._renderer.view.resourceController.memoryController,this._renderer.fboCache);const{resourceController:t}=this._renderer.view;this._workerHandle=new o(a(t)),this._frameTask=t.scheduler.registerTask(l.GAUSSIAN_SPLAT_SORTING)}get textureAtlas(){return this._textureAtlas}get orderTexture(){return this._orderTexture}get fadingTexture(){return this._fadingTexture}get visibleGaussianTiles(){return this._visibleGaussianTiles}updateGaussianVisibility(e){this._visibleGaussianTiles=e,this.requestSort()}isUpdating(){return this._updating.value}destroy(){this._pendingSortTask=!1,this._frameTask.remove(),this._workerHandle?.destroyWorkerAndSelf(),this._textureAtlas.destroy(),this._orderTexture.destroy(),this._fadingTexture.destroy()}requestSort(){this._updating.value=!0,this._isSorting?this._pendingSortTask=!0:(this._isSorting=!0,this._pendingSortTask=!1,this._sortOnWorker().then(()=>this._handleSortComplete()).catch(()=>this._handleSortComplete()))}_handleSortComplete(){this._isSorting=!1,this._pendingSortTask?this.requestSort():this._updating.value=!1}_clearBuffersAndTextures(){this._bufferCapacity=0,this._orderTexture.clear(),this._textureAtlas.clear()}_ensureBufferCapacity(r){if(this._bufferCapacity<r){const t=Math.ceil(r*e);this._atlasIndicesBuffer=new Uint32Array(t),this._sortedAtlasIndicesBuffer=new Uint32Array(t),this._distancesBuffer=new Float64Array(t),this._sortOrderBuffer=new Uint32Array(t),this._bufferCapacity=t}}async _sortOnWorker(){if(0===this._visibleGaussianTiles.length)return this.visibleGaussians=0,this._clearBuffersAndTextures(),void this._renderer.requestRender(1);this._useDeterministicSort&&this._visibleGaussianTiles.sort((e,r)=>e.obb.centerX-r.obb.centerX||e.obb.centerY-r.obb.centerY||e.obb.centerZ-r.obb.centerZ);let e=this._visibleGaussianTiles.reduce((e,r)=>e+r.gaussianAtlasIndices.length,0);this._ensureBufferCapacity(e),this._textureAtlas.ensureTextureAtlas();const{frustum:r}=this._renderer.camera;t(this._cameraDirectionNormalized,this._renderer.camera.ray.direction);const s=this._cameraDirectionNormalized[0],n=this._cameraDirectionNormalized[1],a=this._cameraDirectionNormalized[2];let o=0;if(this._visibleGaussianTiles.forEach(t=>{const{gaussianAtlasIndices:u,positions:h}=t;if(this._minimumBoundingSphere.center=t.obb.center,this._minimumBoundingSphere.radius=t.obb.radius+t.maxScale,i(r,this._minimumBoundingSphere))for(let e=0;e<u.length;e++){this._atlasIndicesBuffer[o]=u[e];const r=3*e,t=h[r],i=h[r+1],d=h[r+2];this._distancesBuffer[o]=t*s+i*n+d*a,this._sortOrderBuffer[o]=o,o++}else e-=u.length}),0===e)return this.visibleGaussians=0,this._clearBuffersAndTextures(),void this._renderer.requestRender(1);const u={distances:this._distancesBuffer,sortOrderIndices:this._sortOrderBuffer,numGaussians:e,preciseSort:this._useDeterministicSort};await(this._workerHandle?.sort(u).then(e=>{this._distancesBuffer=e.distances,this._sortOrderBuffer=e.sortedOrderIndices}));const h=async r=>{const t=this._sortedAtlasIndicesBuffer.subarray(0,e);for(let s=0;s<e;s++)t[s]=this._atlasIndicesBuffer[this._sortOrderBuffer[s]];this._orderTexture.setData(t,e),this.visibleGaussians=e,this._renderer.requestRender(1),r.madeProgress()};await this._frameTask.schedule(h)}set useDeterministicSort(e){this._useDeterministicSort=e}}export{_ as GaussianSplatDataStore};
5
+ import{reallocGrowthFactor as e}from"../../../../core/arrayUtils.js";import{signal as r}from"../../../../core/signal.js";import{normalize as t}from"../../../../core/libs/gl-matrix-2/math/vec3.js";import{create as s}from"../../../../core/libs/gl-matrix-2/factories/vec3f64.js";import{intersectsSphere as i}from"../../../../geometry/support/frustum.js";import{Sphere as n}from"../../../../geometry/support/sphere.js";import{makeScheduleFunction as a}from"../../layers/support/makeScheduleFunction.js";import{GaussianSplatSortWorkerHandle as o}from"../GaussianSplatWorkerHandle.js";import{GaussianSplatFadeTexture as u}from"./GaussianSplatFadeTexture.js";import{GaussianSplatOrderTexture as h}from"./GaussianSplatOrderTexture.js";import{GaussianSplatTextureAtlas as d}from"./GaussianSplatTextureAtlas.js";import{TaskPriority as l}from"../../../support/Scheduler.js";class _{constructor(e){this._updating=r(!1),this._useDeterministicSort=!1,this.visibleGaussians=0,this._visibleGaussianTiles=new Array,this._workerHandle=null,this._isSorting=!1,this._pendingSortTask=!1,this._bufferCapacity=0,this._minimumBoundingSphere=new n,this._cameraDirectionNormalized=s(),this._frameTask=null,this._renderer=e,this._orderTexture=new h(this._renderer.renderingContext),this._fadingTexture=new u(this._renderer.renderingContext),this._textureAtlas=new d(this._renderer.renderingContext,this._renderer.view.resourceController.memoryController,this._renderer.fboCache);const{resourceController:t}=this._renderer.view;this._workerHandle=new o(a(t)),this._frameTask=t.scheduler.registerTask(l.GAUSSIAN_SPLAT_SORTING)}get textureAtlas(){return this._textureAtlas}get orderTexture(){return this._orderTexture}get fadingTexture(){return this._fadingTexture}get visibleGaussianTiles(){return this._visibleGaussianTiles}updateGaussianVisibility(e){this._visibleGaussianTiles=e,this.requestSort()}isUpdating(){return this._updating.value}destroy(){this._pendingSortTask=!1,this._frameTask.remove(),this._workerHandle?.destroyWorkerAndSelf(),this._textureAtlas.destroy(),this._orderTexture.destroy(),this._fadingTexture.destroy()}requestSort(){this._updating.value=!0,this._isSorting?this._pendingSortTask=!0:(this._isSorting=!0,this._pendingSortTask=!1,this._sortOnWorker().then(()=>this._handleSortComplete()).catch(()=>this._handleSortComplete()))}_handleSortComplete(){this._isSorting=!1,this._pendingSortTask?this.requestSort():this._updating.value=!1}_clearBuffersAndTextures(){this._bufferCapacity=0,this._orderTexture.clear(),this._textureAtlas.clear()}_ensureBufferCapacity(r){if(this._bufferCapacity<r){const t=Math.ceil(r*e);this._atlasIndicesBuffer=new Uint32Array(t),this._sortedAtlasIndicesBuffer=new Uint32Array(t),this._distancesBuffer=new Float64Array(t),this._sortOrderBuffer=new Uint32Array(t),this._bufferCapacity=t}}async _sortOnWorker(){if(0===this._visibleGaussianTiles.length)return this.visibleGaussians=0,this._clearBuffersAndTextures(),void this._renderer.requestRender(1);this._useDeterministicSort&&this._visibleGaussianTiles.sort((e,r)=>e.obb.centerX-r.obb.centerX||e.obb.centerY-r.obb.centerY||e.obb.centerZ-r.obb.centerZ);let e=this._visibleGaussianTiles.reduce((e,r)=>e+r.gaussianAtlasIndices.length,0);this._ensureBufferCapacity(e),this._textureAtlas.ensureTextureAtlas();const{frustum:r}=this._renderer.camera;t(this._cameraDirectionNormalized,this._renderer.camera.ray.direction);const s=this._cameraDirectionNormalized[0],n=this._cameraDirectionNormalized[1],a=this._cameraDirectionNormalized[2];let o=0;const u=1.5;if(this._visibleGaussianTiles.forEach(t=>{const{gaussianAtlasIndices:h,positions:d}=t;if(this._minimumBoundingSphere.center=t.obb.center,this._minimumBoundingSphere.radius=(t.obb.radius+t.maxScale)*u,i(r,this._minimumBoundingSphere))for(let e=0;e<h.length;e++){this._atlasIndicesBuffer[o]=h[e];const r=3*e,t=d[r],i=d[r+1],u=d[r+2];this._distancesBuffer[o]=t*s+i*n+u*a,this._sortOrderBuffer[o]=o,o++}else e-=h.length}),0===e)return this.visibleGaussians=0,this._clearBuffersAndTextures(),void this._renderer.requestRender(1);const h={distances:this._distancesBuffer,sortOrderIndices:this._sortOrderBuffer,numGaussians:e,preciseSort:this._useDeterministicSort};await(this._workerHandle?.sort(h).then(e=>{this._distancesBuffer=e.distances,this._sortOrderBuffer=e.sortedOrderIndices}));const d=async r=>{const t=this._sortedAtlasIndicesBuffer.subarray(0,e);for(let s=0;s<e;s++)t[s]=this._atlasIndicesBuffer[this._sortOrderBuffer[s]];this._orderTexture.setData(t,e),this.visibleGaussians=e,this._renderer.requestRender(1),r.madeProgress()};await this._frameTask.schedule(d)}set useDeterministicSort(e){this._useDeterministicSort=e}}export{_ as GaussianSplatDataStore};
@@ -2,4 +2,4 @@
2
2
  All material copyright Esri, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/5.0/esri/copyright.txt for details.
4
4
  */
5
- import{__decorate as t}from"tslib";import e from"../../../../core/Accessor.js";import"../../../../core/has.js";import{abortMaybe as o}from"../../../../core/maybe.js";import"../../../../core/RandomLCG.js";import"../../../../core/Logger.js";import{watch as r,on as i}from"../../../../core/reactiveUtils.js";import{property as s,subclass as n}from"../../../../core/accessorSupport/decorators.js";import{create as l}from"../../../../core/libs/gl-matrix-2/factories/vec3f64.js";import p from"../../../../geometry/Point.js";import{center as a}from"../../../../geometry/support/aaBoundingRect.js";import"../../../../core/asyncUtils.js";import"../../../../core/units.js";import"../../../../geometry/ellipsoidUtils.js";import"../../../../geometry/Extent.js";import"../../../../geometry/Geometry.js";import"../../../../geometry/Multipoint.js";import"../../../../geometry/Polygon.js";import"../../../../geometry/Polyline.js";import"../../../../geometry/SpatialReference.js";import"../../../../geometry/operators/support/GeographicTransformation.js";import"../../../../geometry/projection/projectors.js";import"../../../../geometry/support/spatialReferenceUtils.js";import"../../../../layers/support/TileElevationSampler.js";let u=class extends e{constructor(t){super(t),this.location=null,this._updateController=null}initialize(){this.view.state.isLocal&&(this.addHandles([r(()=>[this._groundView?.spatialReference,this._groundView?.groundExtent],()=>this._update()),i(()=>this._ground?.layers,"change",()=>this._update())]),this._update())}destroy(){this._updateController=o(this._updateController)}get renderLocation(){if(!this.location)return null;const t=l();return this.view.renderCoordsHelper.toRenderCoords(this.location,t),t}get _ground(){return this.view.map?.ground}get _groundView(){return this.view.groundView}_update(){if(this._updateController=o(this._updateController),null==this._groundView?.groundExtent||null==this._groundView?.spatialReference)return void this._set("location",null);const t=a(this._groundView.groundExtent),e=new p({x:t[0],y:t[1],z:0,spatialReference:this._groundView.spatialReference});this._ground&&this._ground.layers.length>0?(this._set("location",null),this._updateController=new AbortController,this._ground.queryElevation(e,{noDataValue:0,signal:this._updateController.signal,cache:this.cache}).then(t=>{this._updateController=null,this._set("location",t.geometry)}).catch(t=>{})):this._set("location",e)}};t([s({constructOnly:!0})],u.prototype,"view",void 0),t([s({constructOnly:!0})],u.prototype,"cache",void 0),t([s({readOnly:!0})],u.prototype,"location",void 0),t([s({readOnly:!0})],u.prototype,"renderLocation",null),t([s()],u.prototype,"_ground",null),t([s()],u.prototype,"_groundView",null),u=t([n("esri.views.3d.support.pointsOfInterest.StableSurfaceCenter")],u);export{u as StableSurfaceCenter};
5
+ import{__decorate as t}from"tslib";import e from"../../../../core/Accessor.js";import"../../../../core/has.js";import{abortMaybe as o}from"../../../../core/maybe.js";import"../../../../core/RandomLCG.js";import"../../../../core/Logger.js";import{watch as r,on as i}from"../../../../core/reactiveUtils.js";import{property as s,subclass as n}from"../../../../core/accessorSupport/decorators.js";import{create as l}from"../../../../core/libs/gl-matrix-2/factories/vec3f64.js";import p from"../../../../geometry/Point.js";import{center as a}from"../../../../geometry/support/aaBoundingRect.js";import"../../../../core/asyncUtils.js";import"../../../../core/units.js";import"../../../../geometry/ellipsoidUtils.js";import"../../../../geometry/Extent.js";import"../../../../geometry/Geometry.js";import"../../../../geometry/Multipoint.js";import"../../../../geometry/Polygon.js";import"../../../../geometry/Polyline.js";import"../../../../geometry/SpatialReference.js";import"../../../../geometry/operators/support/GeographicTransformation.js";import"../../../../geometry/projection/projectors.js";import"../../../../geometry/support/spatialReferenceUtils.js";import"../../../../layers/support/ElevationTileData.js";import"../../../../layers/support/TileElevationSampler.js";let u=class extends e{constructor(t){super(t),this.location=null,this._updateController=null}initialize(){this.view.state.isLocal&&(this.addHandles([r(()=>[this._groundView?.spatialReference,this._groundView?.groundExtent],()=>this._update()),i(()=>this._ground?.layers,"change",()=>this._update())]),this._update())}destroy(){this._updateController=o(this._updateController)}get renderLocation(){if(!this.location)return null;const t=l();return this.view.renderCoordsHelper.toRenderCoords(this.location,t),t}get _ground(){return this.view.map?.ground}get _groundView(){return this.view.groundView}_update(){if(this._updateController=o(this._updateController),null==this._groundView?.groundExtent||null==this._groundView?.spatialReference)return void this._set("location",null);const t=a(this._groundView.groundExtent),e=new p({x:t[0],y:t[1],z:0,spatialReference:this._groundView.spatialReference});this._ground&&this._ground.layers.length>0?(this._set("location",null),this._updateController=new AbortController,this._ground.queryElevation(e,{noDataValue:0,signal:this._updateController.signal,cache:this.cache}).then(t=>{this._updateController=null,this._set("location",t.geometry)}).catch(t=>{})):this._set("location",e)}};t([s({constructOnly:!0})],u.prototype,"view",void 0),t([s({constructOnly:!0})],u.prototype,"cache",void 0),t([s({readOnly:!0})],u.prototype,"location",void 0),t([s({readOnly:!0})],u.prototype,"renderLocation",null),t([s()],u.prototype,"_ground",null),t([s()],u.prototype,"_groundView",null),u=t([n("esri.views.3d.support.pointsOfInterest.StableSurfaceCenter")],u);export{u as StableSurfaceCenter};
@@ -2,4 +2,4 @@
2
2
  All material copyright Esri, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/5.0/esri/copyright.txt for details.
4
4
  */
5
- import{someMap as t}from"../../../core/MapUtils.js";import{releaseMaybe as e}from"../../../core/maybe.js";import{RenderCategory as h}from"../webgl.js";import{isManagedDepthTexture as o}from"./ManagedDepthTexture.js";import r from"./ManagedFBOResource.js";import{ColorAttachment0 as s,DepthStencilAttachment as i}from"../../webgl/enums.js";class a extends r{constructor(t,e,o,r,s,i){super(t,i),this.fbo=o,this.type=0,this._colors=new Map,this._name=h.COMPOSITE,this.acquireColor=null,this.acquireDepth=null,this._name=e,this.acquireColor=r,this.acquireDepth=s}dispose(){this.fbo?.dispose()}get usedMemory(){return this.fbo?.usedMemory||0}get numberOfColorAttachments(){return this._colors.size}get name(){return this._name}setName(t){this._name=t}getTexture(t=s){return t===i?this.fbo?.depthStencilTexture:this.fbo?.getColorTexture(t)}get depthTexture(){return this.getTexture(i)}getAttachment(t=s){return t===i?this._depth:this._colors.get(t)}hasAttachment(e){return t(this._colors,t=>t.name===e)}attachDepth(t){return t?.retain(),this.detachDepth(),t&&this.fbo?.attachDepthStencil(t.attachment),this._depth=t,this}detachDepth(){this.fbo?.detachDepthStencilTexture(),this.fbo?.detachDepthStencilBuffer(),this._depth=e(this._depth)}obtainDepthTexture(){const t=this._depth;return o(t)?(this.fbo?.detachDepthStencilTexture(),this._depth=null,t):null}attachColor(t,e){return t.retain(),this.detachColor(e),this.fbo?.attachColorTexture(t.attachment,e),this._colors.set(e,t),this}detachColor(t){this.fbo?.detachColorTexture(t);const e=this._colors.get(t);this._colors.delete(t),e?.release()}detachAllColors(){this._colors.forEach((t,e)=>this.detachColor(e))}detachAll(){this.detachAllColors(),this.detachDepth()}detachAllColorsBut0(){this._colors.forEach((t,e)=>{e!==s&&this.detachColor(e)})}detachAllButColor0(){this.detachAllColorsBut0(),this.detachDepth()}}export{a as default};
5
+ import{someMap as t}from"../../../core/MapUtils.js";import{releaseMaybe as e}from"../../../core/maybe.js";import{RenderNodeOutput as h}from"../webgl.js";import{isManagedDepthTexture as o}from"./ManagedDepthTexture.js";import r from"./ManagedFBOResource.js";import{ColorAttachment0 as s,DepthStencilAttachment as i}from"../../webgl/enums.js";class a extends r{constructor(t,e,o,r,s,i){super(t,i),this.fbo=o,this.type=0,this._colors=new Map,this._name=h.COMPOSITE,this.acquireColor=null,this.acquireDepth=null,this._name=e,this.acquireColor=r,this.acquireDepth=s}dispose(){this.fbo?.dispose()}get usedMemory(){return this.fbo?.usedMemory||0}get numberOfColorAttachments(){return this._colors.size}get name(){return this._name}setName(t){this._name=t}getTexture(t=s){return t===i?this.fbo?.depthStencilTexture:this.fbo?.getColorTexture(t)}get depthTexture(){return this.getTexture(i)}getAttachment(t=s){return t===i?this._depth:this._colors.get(t)}hasAttachment(e){return t(this._colors,t=>t.name===e)}attachDepth(t){return t?.retain(),this.detachDepth(),t&&this.fbo?.attachDepthStencil(t.attachment),this._depth=t,this}detachDepth(){this.fbo?.detachDepthStencilTexture(),this.fbo?.detachDepthStencilBuffer(),this._depth=e(this._depth)}obtainDepthTexture(){const t=this._depth;return o(t)?(this.fbo?.detachDepthStencilTexture(),this._depth=null,t):null}attachColor(t,e){return t.retain(),this.detachColor(e),this.fbo?.attachColorTexture(t.attachment,e),this._colors.set(e,t),this}detachColor(t){this.fbo?.detachColorTexture(t);const e=this._colors.get(t);this._colors.delete(t),e?.release()}detachAllColors(){this._colors.forEach((t,e)=>this.detachColor(e))}detachAll(){this.detachAllColors(),this.detachDepth()}detachAllColorsBut0(){this._colors.forEach((t,e)=>{e!==s&&this.detachColor(e)})}detachAllButColor0(){this.detachAllColorsBut0(),this.detachDepth()}}export{a as default};
@@ -1,4 +1,3 @@
1
-
2
1
  /** @since 5.0 */
3
2
  export default abstract class ManagedFBOResource {
4
3
  /**
@@ -2,7 +2,7 @@ import type Accessor from "../../../core/Accessor.js";
2
2
  import type SceneView from "../../SceneView.js";
3
3
  import type ManagedFBO from "./ManagedFBO.js";
4
4
  import type RenderCamera from "./RenderCamera.js";
5
- import type { ConsumedNodes, RenderNodeOutput } from "../webgl.js";
5
+ import type { RenderNodeOutput, ConsumedNodes } from "../webgl.js";
6
6
  import type { SunLight } from "./types.js";
7
7
 
8
8
  export interface RenderNodeProperties extends Partial<Pick<RenderNode, "produces">> {
@@ -2,4 +2,4 @@
2
2
  All material copyright Esri, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/5.0/esri/copyright.txt for details.
4
4
  */
5
- import{__decorate as e}from"tslib";import r from"../../../core/Accessor.js";import t from"../../../core/Error.js";import{watch as i,initial as s}from"../../../core/reactiveUtils.js";import{property as n}from"../../../core/accessorSupport/decorators/property.js";import{subclass as o}from"../../../core/accessorSupport/decorators/subclass.js";import{RenderCategory as d}from"../webgl.js";let a=class extends r{constructor(e){super(e),this.view=null,this.consumes={required:[]},this.produces=d.COMPOSITE,this.requireGeometryDepth=!1,this._dirty=!0}initialize(){this.addHandles([i(()=>this.view.ready,e=>{e&&this.view.stage?.renderer.addRenderNode(this)},s)])}destroy(){this.view.stage?.renderer?.removeRenderNode(this)}precompile(){}render(){throw new t("RenderNode:render-function-not-implemented","render() is not implemented.")}get camera(){return this.view.state.camera.clone()}get sunLight(){return this.bindParameters.lighting.legacy}get gl(){return this.view.stage.renderView.renderingContext.gl}get techniques(){return this.view.stage.renderView.techniques}acquireOutputFramebuffer(){const e=this._frameBuffer?.getTexture()?.descriptor,r=this.view.stage.renderer.fboCache.acquire(e?.width??640,e?.height??480,this.produces);return r.fbo?.initializeAndBind(),r}bindRenderTarget(){return this._frameBuffer?.fbo?.initializeAndBind(),this._frameBuffer}requestRender(e){switch(e){case 2:this.view.state.fading=!0;case 1:this.view.stage?.renderView.requestRender(e);case 0:case void 0:this._dirty=!0}}resetWebGLState(){this.renderingContext.resetState(),this.renderingContext.bindFramebuffer(this._frameBuffer?.fbo)}get fboCache(){return this.view.stage.renderer.fboCache}get bindParameters(){return this.renderContext.bind}get renderingContext(){return this.view.stage.renderView.renderingContext}get renderContext(){return this.view.stage?.renderer.renderContext}updateAnimation(e){return!!this._dirty&&(this._dirty=!1,!0)}doRender(e){this._frameBuffer=e.find(({name:e})=>e===this.produces);try{return this.render(e)}finally{this._frameBuffer=null}}};e([n({constructOnly:!0})],a.prototype,"view",void 0),e([n({constructOnly:!0})],a.prototype,"consumes",void 0),e([n()],a.prototype,"produces",void 0),e([n({readOnly:!0})],a.prototype,"techniques",null),a=e([o("esri.views.3d.webgl.RenderNode")],a);export{a as default};
5
+ import{__decorate as e}from"tslib";import r from"../../../core/Accessor.js";import t from"../../../core/Error.js";import{watch as i,initial as s}from"../../../core/reactiveUtils.js";import{property as n}from"../../../core/accessorSupport/decorators/property.js";import{subclass as o}from"../../../core/accessorSupport/decorators/subclass.js";import{RenderNodeOutput as d}from"../webgl.js";let a=class extends r{constructor(e){super(e),this.view=null,this.consumes={required:[]},this.produces=d.COMPOSITE,this.requireGeometryDepth=!1,this._dirty=!0}initialize(){this.addHandles([i(()=>this.view.ready,e=>{e&&this.view.stage?.renderer.addRenderNode(this)},s)])}destroy(){this.view.stage?.renderer?.removeRenderNode(this)}precompile(){}render(){throw new t("RenderNode:render-function-not-implemented","render() is not implemented.")}get camera(){return this.view.state.camera.clone()}get sunLight(){return this.bindParameters.lighting.legacy}get gl(){return this.view.stage.renderView.renderingContext.gl}get techniques(){return this.view.stage.renderView.techniques}acquireOutputFramebuffer(){const e=this._frameBuffer?.getTexture()?.descriptor,r=this.view.stage.renderer.fboCache.acquire(e?.width??640,e?.height??480,this.produces);return r.fbo?.initializeAndBind(),r}bindRenderTarget(){return this._frameBuffer?.fbo?.initializeAndBind(),this._frameBuffer}requestRender(e){switch(e){case 2:this.view.state.fading=!0;case 1:this.view.stage?.renderView.requestRender(e);case 0:case void 0:this._dirty=!0}}resetWebGLState(){this.renderingContext.resetState(),this.renderingContext.bindFramebuffer(this._frameBuffer?.fbo)}get fboCache(){return this.view.stage.renderer.fboCache}get bindParameters(){return this.renderContext.bind}get renderingContext(){return this.view.stage.renderView.renderingContext}get renderContext(){return this.view.stage?.renderer.renderContext}updateAnimation(e){return!!this._dirty&&(this._dirty=!1,!0)}doRender(e){this._frameBuffer=e.find(({name:e})=>e===this.produces);try{return this.render(e)}finally{this._frameBuffer=null}}};e([n({constructOnly:!0})],a.prototype,"view",void 0),e([n({constructOnly:!0})],a.prototype,"consumes",void 0),e([n()],a.prototype,"produces",void 0),e([n({readOnly:!0})],a.prototype,"techniques",null),a=e([o("esri.views.3d.webgl.RenderNode")],a);export{a as default};
@@ -1,4 +1,3 @@
1
-
2
1
  /**
3
2
  * Tuple of an RGB color value and an intensity value.
4
3
  *
@@ -2,4 +2,4 @@
2
2
  All material copyright Esri, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/5.0/esri/copyright.txt for details.
4
4
  */
5
- import{__decorate as e}from"tslib";import{exactEquals as s}from"../../../../../../core/libs/gl-matrix-2/math/vec3.js";import{ZEROS as t}from"../../../../../../core/libs/gl-matrix-2/factories/vec3f64.js";import{defaultComponentParameters as i}from"../ComponentDrawParameters.js";import{ComponentTechnique as r}from"./ComponentTechnique.js";import{ComponentTechniqueConfiguration as o}from"./ComponentTechniqueConfiguration.js";import{parameter as a,MaterialBase as n}from"../../../core/material/MaterialBase.js";import{isColor as l}from"../../../core/shaderLibrary/ShaderOutput.js";class u extends n{constructor(e,r,a,n,l,u){super(),this.floatBufferBlendSupported=l,this.emissiveOverride=i.emissiveOverride,this.emissiveSourceOverride=i.emissiveSourceOverride,this.transparent=i.transparent,this.opaqueOverride=i.opaqueOverride,this.castShadows=i.castShadows,this.baseColorTranslucent=e.baseColor[3]<1,this.usePBR=e.usePBR,this.hasParametersFromSource=e.hasParametersFromSource,this.hasEmissiveBase=null!=e.emissionTexture||!s(e.emissiveBaseColor,t),this.isGround=e.isGround,this.slicePlaneEnabled=e.slicePlaneEnabled,this.updateOpacity(e.objectOpacity),this.isIntegratedMesh=e.isIntegratedMesh,this.polygonOffsetEnabled=e.polygonOffsetEnabled,this.applySSAO=e.applySSAO,this.hasEmissiveTexture=null!=e.emissionTexture,this._configuration=new o(n),this._initializeMaterialConfiguration(e,r,u),this.updateComponentParameters(a)}dispose(){}get _hasEmissiveStrength(){return 2!==this.emissiveOverride}get hasEmissions(){return this.floatBufferBlendSupported&&this._hasEmissiveStrength&&(this.hasEmissiveBase||2!==this.emissiveSourceOverride)}acquireTechnique(e,s,t,i){const o=this._updateConfiguration(s,t);return e.get(r,o,i.layout)}_initializeMaterialConfiguration(e,s,t){const i=this._configuration;i.hasMetallicRoughnessTexture=null!=e.metallicRoughnessTexture,i.hasOcclusionTexture=null!=e.occlusionTexture,i.hasNormalTexture=null!=e.normalTexture,i.sphereDepthInterpolate=e.sphereDepthInterpolate&&i.spherical,i.ellipsoidMode=e.ellipsoidMode,i.doubleSidedMode=e.doubleSided?1:0,i.hasColorTexture=null!=e.baseColorTexture,i.cullFace=e.cullFace,i.alphaDiscardMode=e.alphaDiscardMode,i.hasVertexColors=s.hasVertexColors,i.textureCoordinateType=s.textureCoordinateType,i.shadeNormals=s.shadeNormals,i.normalType=s.hasNormals?1:2,i.hasPolygonOffset=this.polygonOffsetEnabled,i.hasModelRotationScale=t}_updateConfiguration(e,s){const t=this._configuration,i=e.identifier,r=0===i;t.hasEmission=s.hasEmission&&r,t.renderOccluded=10===s.slot,t.oitPass=r?s.oitPass:0,t.terrainDepthTest=r&&s.terrainDepthTest,t.cullAboveTerrain=!!r&&s.cullAboveTerrain;const o=this.isIntegratedMesh?d(s)?h(s)?3:2:1:0;t.integratedMeshMode=o,t.pbrMode=3===o?4:this.usePBR?this.hasParametersFromSource?t.shadeNormals&&this.isIntegratedMesh?0:2:1:0;const{hasEmissiveTexture:a,emissiveSourceOverride:n}=this,u=1===n,c=2===n;t.emissionSource=this.hasEmissions?this.hasEmissiveBase?c?a?4:2:u?a?5:7:6:u?7:6:0;const p=null!=s.slicePlane&&this.slicePlaneEnabled;t.hasSlicePlane=p;const m=p&&this.isGround;t.isGroundSlice=m;const v=this.computeMaterialPass();t.blendingEnabled=1===v||2===v||4===v||m,t.hasHighlightMixTexture=2===i&&null!=s.highlightMixTexture,t.output=e.output,t.snowCover=r&&s.snowCover>0,t.vertexDiscardMode=r&&2===v?e.transparent?2:1:0;const f=r&&l(e.output);return t.receiveAmbientOcclusion=f&&this.applySSAO&&null!=s.ssao?.getTexture(),t.hasOccludees=f&&s.hasOccludees,t.receiveShadows=f&&s.shadowMap.ready,t.screenSpaceReflections=f&&null!=s.ssr.lastFrameColor,t.cloudReflections=f&&null!=s.clouds.data?.cubeMap?.colorTexture,t}computeMaterialPass(){const{_configuration:e,objectTranslucent:s,baseColorTranslucent:t,isIntegratedMesh:i,transparent:r,opaqueOverride:o}=this,{alphaDiscardMode:a}=e;if(i)return s?4:3;if(s)return i?4:1;if(0===o)return 0;if(t||0===a||3===a)return 1;switch(r){case 2:return 0;case 0:return 1;case 1:return 2}}updateOpacity(e){this.objectTranslucent=e<1}updateComponentParameters(e){this.transparent=e.transparent,this.opaqueOverride=e.opaqueOverride,this.emissiveOverride=e.emissiveOverride,this.emissiveSourceOverride=e.emissiveSourceOverride,this.castShadows=e.castShadows,this._configuration.componentDataType=e.componentDataType,this._setDirty()}update(e){void 0!==e.usePBR&&(this.usePBR=e.usePBR),void 0!==e.slicePlaneEnabled&&(this.slicePlaneEnabled=e.slicePlaneEnabled),void 0!==e.polygonOffsetEnabled&&(this.polygonOffsetEnabled=e.polygonOffsetEnabled,this._configuration.hasPolygonOffset=this.polygonOffsetEnabled,this._setDirty())}}function h(e){return null!=e.overlay?.getTexture(3)}function d(e){return null!=e.overlay?.getTexture(1)}e([a()],u.prototype,"objectTranslucent",void 0),e([a()],u.prototype,"polygonOffsetEnabled",void 0),e([a()],u.prototype,"slicePlaneEnabled",void 0),e([a()],u.prototype,"usePBR",void 0),e([a()],u.prototype,"emissiveOverride",void 0),e([a()],u.prototype,"emissiveSourceOverride",void 0),e([a()],u.prototype,"transparent",void 0),e([a()],u.prototype,"opaqueOverride",void 0),e([a()],u.prototype,"castShadows",void 0);export{u as ComponentMaterial};
5
+ import{__decorate as e}from"tslib";import{exactEquals as s}from"../../../../../../core/libs/gl-matrix-2/math/vec3.js";import{ZEROS as t}from"../../../../../../core/libs/gl-matrix-2/factories/vec3f64.js";import{defaultComponentParameters as i}from"../ComponentDrawParameters.js";import{ComponentTechnique as r}from"./ComponentTechnique.js";import{ComponentTechniqueConfiguration as o}from"./ComponentTechniqueConfiguration.js";import{parameter as a,MaterialBase as n}from"../../../core/material/MaterialBase.js";import{isColor as l}from"../../../core/shaderLibrary/ShaderOutput.js";class u extends n{constructor(e,r,a,n,l,u){super(),this.floatBufferBlendSupported=l,this.objectTransparent=!1,this.emissiveOverride=i.emissiveOverride,this.emissiveSourceOverride=i.emissiveSourceOverride,this.transparent=i.transparent,this.opaqueOverride=i.opaqueOverride,this.castShadows=i.castShadows,this.baseColorTranslucent=e.baseColor[3]<1,this.usePBR=e.usePBR,this.hasParametersFromSource=e.hasParametersFromSource,this.hasEmissiveBase=null!=e.emissionTexture||!s(e.emissiveBaseColor,t),this.isGround=e.isGround,this.slicePlaneEnabled=e.slicePlaneEnabled,this.updateOpacity(e.objectOpacity),this.isIntegratedMesh=e.isIntegratedMesh,this.polygonOffsetEnabled=e.polygonOffsetEnabled,this.applySSAO=e.applySSAO,this.hasEmissiveTexture=null!=e.emissionTexture,this._configuration=new o(n),this._initializeMaterialConfiguration(e,r,u),this.updateComponentParameters(a)}dispose(){}get _hasEmissiveStrength(){return 2!==this.emissiveOverride}get hasEmissions(){return this.floatBufferBlendSupported&&this._hasEmissiveStrength&&(this.hasEmissiveBase||2!==this.emissiveSourceOverride)}acquireTechnique(e,s,t,i){const o=this._updateConfiguration(s,t);return e.get(r,o,i.layout)}_initializeMaterialConfiguration(e,s,t){const i=this._configuration;i.hasMetallicRoughnessTexture=null!=e.metallicRoughnessTexture,i.hasOcclusionTexture=null!=e.occlusionTexture,i.hasNormalTexture=null!=e.normalTexture,i.sphereDepthInterpolate=e.sphereDepthInterpolate&&i.spherical,i.ellipsoidMode=e.ellipsoidMode,i.doubleSidedMode=e.doubleSided?1:0,i.hasColorTexture=null!=e.baseColorTexture,i.cullFace=e.cullFace,i.alphaDiscardMode=e.alphaDiscardMode,i.hasVertexColors=s.hasVertexColors,i.textureCoordinateType=s.textureCoordinateType,i.shadeNormals=s.shadeNormals,i.normalType=s.hasNormals?1:2,i.hasPolygonOffset=this.polygonOffsetEnabled,i.hasModelRotationScale=t}_updateConfiguration(e,s){const t=this._configuration,i=e.identifier,r=0===i;t.hasEmission=s.hasEmission&&r,t.renderOccluded=10===s.slot,t.oitPass=r?s.oitPass:0,t.terrainDepthTest=r&&s.terrainDepthTest,t.cullAboveTerrain=!!r&&s.cullAboveTerrain;const o=this.isIntegratedMesh?d(s)?h(s)?3:2:1:0;t.integratedMeshMode=o,t.pbrMode=3===o?4:this.usePBR?this.hasParametersFromSource?t.shadeNormals&&this.isIntegratedMesh?0:2:1:0;const{hasEmissiveTexture:a,emissiveSourceOverride:n}=this,u=1===n,c=2===n;t.emissionSource=this.hasEmissions?this.hasEmissiveBase?c?a?4:2:u?a?5:7:6:u?7:6:0,t.hasSlicePlane=null!=s.slicePlane&&this.slicePlaneEnabled,t.isGroundSlice=t.hasSlicePlane&&this.isGround;const p=this.computeMaterialPass();t.blendingEnabled=1===p||2===p||4===p||t.isGroundSlice,t.hasHighlightMixTexture=2===i&&null!=s.highlightMixTexture,t.output=e.output,t.snowCover=r&&s.snowCover>0,t.vertexDiscardMode=r&&2===p?e.transparent?2:1:0;const m=r&&l(e.output);return t.receiveAmbientOcclusion=m&&this.applySSAO&&null!=s.ssao?.getTexture(),t.hasOccludees=m&&s.hasOccludees,t.receiveShadows=m&&s.shadowMap.ready,t.screenSpaceReflections=m&&null!=s.ssr.lastFrameColor,t.cloudReflections=m&&null!=s.clouds.data?.cubeMap?.colorTexture,t}computeMaterialPass(){const{_configuration:e,objectTransparent:s,baseColorTranslucent:t,isIntegratedMesh:i,transparent:r,opaqueOverride:o}=this,{alphaDiscardMode:a,hasSlicePlane:n}=e;if(i)return s||n?4:3;if(s)return 1;if(0===o)return 0;if(t||0===a||3===a)return 1;switch(r){case 2:return 0;case 0:return 1;case 1:return 2}}updateOpacity(e){this.objectTransparent=e<1}updateComponentParameters(e){this.transparent=e.transparent,this.opaqueOverride=e.opaqueOverride,this.emissiveOverride=e.emissiveOverride,this.emissiveSourceOverride=e.emissiveSourceOverride,this.castShadows=e.castShadows,this._configuration.componentDataType=e.componentDataType,this._setDirty()}update(e){void 0!==e.usePBR&&(this.usePBR=e.usePBR),void 0!==e.slicePlaneEnabled&&(this.slicePlaneEnabled=e.slicePlaneEnabled),void 0!==e.polygonOffsetEnabled&&(this.polygonOffsetEnabled=e.polygonOffsetEnabled,this._configuration.hasPolygonOffset=this.polygonOffsetEnabled,this._setDirty())}}function h(e){return null!=e.overlay?.getTexture(3)}function d(e){return null!=e.overlay?.getTexture(1)}e([a()],u.prototype,"objectTransparent",void 0),e([a()],u.prototype,"polygonOffsetEnabled",void 0),e([a()],u.prototype,"slicePlaneEnabled",void 0),e([a()],u.prototype,"usePBR",void 0),e([a()],u.prototype,"emissiveOverride",void 0),e([a()],u.prototype,"emissiveSourceOverride",void 0),e([a()],u.prototype,"transparent",void 0),e([a()],u.prototype,"opaqueOverride",void 0),e([a()],u.prototype,"castShadows",void 0);export{u as ComponentMaterial};