@arcgis/core 5.0.0-next.85 → 5.0.0-next.87

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 (992) 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/Ground.js +1 -1
  7. package/Map.d.ts +2 -2
  8. package/PopupTemplate.d.ts +3 -3
  9. package/Viewpoint.d.ts +2 -2
  10. package/WebDocument2D.d.ts +3 -3
  11. package/WebScene.d.ts +3 -3
  12. package/WebScene.js +1 -1
  13. package/analysis/Analysis.d.ts +3 -3
  14. package/analysis/Dimension/types.d.ts +0 -1
  15. package/analysis/DimensionSimpleStyle.d.ts +3 -3
  16. package/analysis/ElevationProfile/ElevationProfileDisplayUnits.d.ts +2 -2
  17. package/analysis/ElevationProfile/ElevationProfileLine.d.ts +2 -2
  18. package/analysis/ElevationProfile/ElevationProfileLineChartOptions.d.ts +2 -2
  19. package/analysis/ElevationProfile/ElevationProfileLineViewOptions.d.ts +2 -2
  20. package/analysis/ElevationProfile/ElevationProfileViewOptions.d.ts +2 -2
  21. package/analysis/LengthDimension.d.ts +3 -3
  22. package/analysis/LineOfSightAnalysisObserver.d.ts +3 -3
  23. package/analysis/LineOfSightAnalysisTarget.d.ts +3 -3
  24. package/analysis/ShadowCast/DiscreteOptions.d.ts +2 -2
  25. package/analysis/ShadowCast/MinDurationOptions.d.ts +2 -2
  26. package/analysis/ShadowCast/TotalDurationOptions.d.ts +2 -2
  27. package/analysis/ShadowCast/types.d.ts +0 -1
  28. package/analysis/SlicePlane.d.ts +3 -3
  29. package/analysis/Viewshed.d.ts +3 -3
  30. package/analysis/VolumeMeasurement/VolumeMeasurementCutFillOptions.d.ts +3 -3
  31. package/analysis/VolumeMeasurement/VolumeMeasurementDisplayUnits.d.ts +16 -4
  32. package/analysis/VolumeMeasurement/VolumeMeasurementDisplayUnits.js +1 -1
  33. package/analysis/VolumeMeasurement/VolumeMeasurementInputUnits.d.ts +3 -3
  34. package/analysis/VolumeMeasurement/types.d.ts +0 -1
  35. package/analysis/support/AnalysisOriginWebScene.d.ts +2 -2
  36. package/applications/Components/OrientedImageryViewer/galleryUtils.d.ts +80 -0
  37. package/applications/Components/OrientedImageryViewer/galleryUtils.js +5 -0
  38. package/applications/Components/clipboard.d.ts +106 -0
  39. package/applications/Components/clipboard.js +5 -0
  40. package/applications/Components/templateUtils.d.ts +30 -1
  41. package/assets/esri/core/libs/libtess/libtess-f32.wasm +0 -0
  42. package/assets/esri/core/libs/libtess/libtess-f64.wasm +0 -0
  43. package/assets/esri/core/t9n/Units.json +1 -1
  44. package/assets/esri/core/workers/RemoteClient.js +1 -1
  45. package/assets/esri/core/workers/chunks/{3b6fc34b6d92eef030e5.js → 0276e689e1371b40cff3.js} +1 -1
  46. package/assets/esri/core/workers/chunks/045a9cc900bb4ac8afde.js +1 -0
  47. package/assets/esri/core/workers/chunks/048173088bbeb1f6b8b6.js +1 -0
  48. package/assets/esri/core/workers/chunks/09ca0d05b090e9a70e61.js +1 -0
  49. package/assets/esri/core/workers/chunks/0be8b9d9ef56c37e74c3.js +1 -0
  50. package/assets/esri/core/workers/chunks/0bef671165e64f90ac86.js +1 -0
  51. package/assets/esri/core/workers/chunks/0c025d2b0d3162b07feb.js +1 -0
  52. package/assets/esri/core/workers/chunks/{84a4390b1c277c415d44.js → 0c358199ada2ff71e7d9.js} +1 -1
  53. package/assets/esri/core/workers/chunks/0c4ed18d67dea0c99f01.js +1 -0
  54. package/assets/esri/core/workers/chunks/0e0208b87566f4470f1d.js +1 -0
  55. package/assets/esri/core/workers/chunks/{c791e8ebf3ee0805c479.js → 0fc0fd7618ef25dd6b67.js} +1 -1
  56. package/assets/esri/core/workers/chunks/{59e7a0215791b2b51180.js → 126183819921e6025c90.js} +1 -1
  57. package/assets/esri/core/workers/chunks/{a09099697955eb44bfac.js → 15c180deb8d09127ad31.js} +1 -1
  58. package/assets/esri/core/workers/chunks/1616ee2f6dce0203f1d5.js +1 -0
  59. package/assets/esri/core/workers/chunks/1919ed99166e70021917.js +1 -0
  60. package/assets/esri/core/workers/chunks/1c68befc39d39799fcb8.js +1 -0
  61. package/assets/esri/core/workers/chunks/21bb414cb0623ffad577.js +1 -0
  62. package/assets/esri/core/workers/chunks/21c84e014c73bd85f4a3.js +1 -0
  63. package/assets/esri/core/workers/chunks/262677294d8c653e2b0b.js +1 -0
  64. package/assets/esri/core/workers/chunks/{04fddd41a8e6a4c1bc57.js → 28a6a59033baa44bafab.js} +1 -1
  65. package/assets/esri/core/workers/chunks/{f5b32bc3f7ee911e3c59.js → 28c273f34ffde25cebc6.js} +1 -1
  66. package/assets/esri/core/workers/chunks/{b7e40118b4d645e9f8e1.js → 2a12026f1ca9e8900a8b.js} +1 -1
  67. package/assets/esri/core/workers/chunks/2bc9f407f89d554a43ce.js +1 -0
  68. package/assets/esri/core/workers/chunks/2f21c5ae4fbe85c2792b.js +1 -0
  69. package/assets/esri/core/workers/chunks/3332ee9727874953523c.js +1 -0
  70. package/assets/esri/core/workers/chunks/{c477b0ce55211339c4cb.js → 33f44cc192c72064b5b6.js} +1 -1
  71. package/assets/esri/core/workers/chunks/365cb8aab4ca56999b47.js +1 -0
  72. package/assets/esri/core/workers/chunks/{b190a776de4859ac00f8.js → 3672125daca3df24c8ab.js} +1 -1
  73. package/assets/esri/core/workers/chunks/37a607f3835ec6f60834.js +1 -0
  74. package/assets/esri/core/workers/chunks/{c46a4681cbba638b58c1.js → 39dd80c184ac48f877f1.js} +1 -1
  75. package/assets/esri/core/workers/chunks/3a3adf9b6502ad698aea.js +1 -0
  76. package/assets/esri/core/workers/chunks/3b5f24bb824c95996308.js +1 -0
  77. package/assets/esri/core/workers/chunks/{304ea784c28dc78e5e65.js → 3c663035cf872b66cb98.js} +1 -1
  78. package/assets/esri/core/workers/chunks/{055aead7135a2f8bca29.js → 3d924488471601a17915.js} +1 -1
  79. package/assets/esri/core/workers/chunks/{98e04c2382fa5ba382fc.js → 3dc1ae04cfa2c06daf48.js} +1 -1
  80. package/assets/esri/core/workers/chunks/{156c73a948bde11f0d53.js → 42b56932340b6d0bc712.js} +1 -1
  81. package/assets/esri/core/workers/chunks/45c1a3376b138eeee329.js +1 -0
  82. package/assets/esri/core/workers/chunks/{301fa6276f4098521106.js → 476e51284e6ed7dc5c99.js} +1 -1
  83. package/assets/esri/core/workers/chunks/{18cdd268fc921ffd92e2.js → 47bea83ae7fe0e1acee0.js} +1 -1
  84. package/assets/esri/core/workers/chunks/4de93e9f91fd891ed96f.js +1 -0
  85. package/assets/esri/core/workers/chunks/4eb02a03956d1c9c77ee.js +1 -0
  86. package/assets/esri/core/workers/chunks/{1a41c9127ca5a260d5ef.js → 555a252bdb87e340bd02.js} +1 -1
  87. package/assets/esri/core/workers/chunks/5670e430584f020a3530.js +1 -0
  88. package/assets/esri/core/workers/chunks/5734aefbce8b6425630c.js +1 -0
  89. package/assets/esri/core/workers/chunks/{1fe1a131be1d5e1e23ed.js → 5a1921c177580f17ff96.js} +1 -1
  90. package/assets/esri/core/workers/chunks/{70df4331ed29d823bf38.js → 5b297353b058323f8080.js} +1 -1
  91. package/assets/esri/core/workers/chunks/5ef5dcca7c9b376f7f77.js +1 -0
  92. package/assets/esri/core/workers/chunks/{3849dc35941e569fae5f.js → 614c63dae0158da0ed3d.js} +1 -1
  93. package/assets/esri/core/workers/chunks/{c500b59cd7da54fe72ec.js → 641450da2680ae09b8e7.js} +1 -1
  94. package/assets/esri/core/workers/chunks/{ec03d59984782529031a.js → 687677acc05b5e87effe.js} +1 -1
  95. package/assets/esri/core/workers/chunks/{6de843d1809cba61ded3.js → 727321c615f35d708d46.js} +1 -1
  96. package/assets/esri/core/workers/chunks/782c24211daacb47b0b2.js +1 -0
  97. package/assets/esri/core/workers/chunks/79067e7d1ebc46afd775.js +1 -0
  98. package/assets/esri/core/workers/chunks/7a454e4d6df3360e0ab9.js +1 -0
  99. package/assets/esri/core/workers/chunks/7da56ba34c81d2bbaf25.js +1 -0
  100. package/assets/esri/core/workers/chunks/7f15d15c7e2c5d3e70c3.js +1 -0
  101. package/assets/esri/core/workers/chunks/{ce9467dc1ff695d795e5.js → 824b45b04b4f4f91dbce.js} +1 -1
  102. package/assets/esri/core/workers/chunks/836d10ceb93ed19f0aa6.js +1 -0
  103. package/assets/esri/core/workers/chunks/{854adab6a06af861c104.js → 837d39e70880e4310bda.js} +1 -1
  104. package/assets/esri/core/workers/chunks/890833e98e79b8fd3747.js +1 -0
  105. package/assets/esri/core/workers/chunks/{d6e11f05db698d14f21d.js → 8a7f56139b7de0011a37.js} +1 -1
  106. package/assets/esri/core/workers/chunks/8bcb2180ecc88a39b317.js +1 -0
  107. package/assets/esri/core/workers/chunks/8c5d827cbf8869defb87.js +1 -0
  108. package/assets/esri/core/workers/chunks/{db9a9712038df76e3eda.js → 8ef337e25d65670eb73b.js} +1 -1
  109. package/assets/esri/core/workers/chunks/{e201bfe3158c025edc99.js → 93faad2a759b08dce619.js} +1 -1
  110. package/assets/esri/core/workers/chunks/{1779e6eabc299831fc9f.js → 94c4ef224ff38eca7b87.js} +1 -1
  111. package/assets/esri/core/workers/chunks/{9ff1e650ce0912afa780.js → 97155c8ac832d7c46f24.js} +1 -1
  112. package/assets/esri/core/workers/chunks/{14f8215ab716c6d9d5f8.js → 98cb131b62e30aee35e1.js} +1 -1
  113. package/assets/esri/core/workers/chunks/{b586d7e608e8ba8b88fe.js → 9b3b9df0aa0fdcc77aa2.js} +1 -1
  114. package/assets/esri/core/workers/chunks/{841058de8bc6e328fd68.js → 9d77a7d04872b4535e9e.js} +1 -1
  115. package/assets/esri/core/workers/chunks/{338768f94cc49559b209.js → 9ebc4303e29ee0fc1716.js} +1 -1
  116. package/assets/esri/core/workers/chunks/{5543de9a0435c319f4f9.js → 9fa1512baa6e95d3f878.js} +20 -20
  117. package/assets/esri/core/workers/chunks/{e8f6305744f87bbed961.js → a5ed35f53769feb751db.js} +1 -1
  118. package/assets/esri/core/workers/chunks/a6b8ce1c2996ee392bdf.js +1 -0
  119. package/assets/esri/core/workers/chunks/{a2c0c1bb5e775abefc90.js → aa09e261d1f7dffaad8c.js} +1 -1
  120. package/assets/esri/core/workers/chunks/b268b4cbf5b0c856f88e.js +1 -0
  121. package/assets/esri/core/workers/chunks/b2f6cee006788ce3bd16.js +1 -0
  122. package/assets/esri/core/workers/chunks/{9fac9eda0a41f7f4c2c6.js → b46e772e415e2cfca896.js} +1 -1
  123. package/assets/esri/core/workers/chunks/b4ab715a3c506e122f35.js +1 -0
  124. package/assets/esri/core/workers/chunks/{b91a157fb5f729de6597.js → b9756dce0b3af1a9dc54.js} +1 -1
  125. package/assets/esri/core/workers/chunks/baa7e90ec5259057d86b.js +1 -0
  126. package/assets/esri/core/workers/chunks/{52ae2073604deef63ea2.js → c083045d21636b95f26f.js} +1 -1
  127. package/assets/esri/core/workers/chunks/{348560f083350ad0bf2e.js → c38098f7073a10efdb1e.js} +1 -1
  128. package/assets/esri/core/workers/chunks/{4ff3c03cfbec928c0720.js → c4fb3f0b0cfb21e68413.js} +1 -1
  129. package/assets/esri/core/workers/chunks/{adecd31fd64d6753682d.js → c7c865dc1a93e781a3e3.js} +1 -1
  130. package/assets/esri/core/workers/chunks/c8e56dc1239118ac2a60.js +1 -0
  131. package/assets/esri/core/workers/chunks/{181fab86394f1f912490.js → cc464d5a83f8f405e66c.js} +1 -1
  132. package/assets/esri/core/workers/chunks/{d9d2178d436597b1afaf.js → cc6d9b2062b9de629111.js} +1 -1
  133. package/assets/esri/core/workers/chunks/d5386c0e77063c87fddd.js +1 -0
  134. package/assets/esri/core/workers/chunks/d782671235af2db1c458.js +1 -0
  135. package/assets/esri/core/workers/chunks/{f0eb2bfe5a8607b251f5.js → dc2c9b584f8e4627de7f.js} +1 -1
  136. package/assets/esri/core/workers/chunks/de33ce9b6f4e6c0e1389.js +1 -0
  137. package/assets/esri/core/workers/chunks/{0abb084b8a137f4fcdfc.js → e1c5773c12d9947bdc5f.js} +1 -1
  138. package/assets/esri/core/workers/chunks/e55ce8466aa979ac1e6b.js +1 -0
  139. package/assets/esri/core/workers/chunks/{21739c37160061f229ef.js → e585883d0036aa866420.js} +1 -1
  140. package/assets/esri/core/workers/chunks/e6d6d664fc9f2cd6a042.js +1 -0
  141. package/assets/esri/core/workers/chunks/e7cdc2a21104d84aec4a.js +1 -0
  142. package/assets/esri/core/workers/chunks/e9edf3987039def65859.js +1 -0
  143. package/assets/esri/core/workers/chunks/eb063660c37093f85349.js +1 -0
  144. package/assets/esri/core/workers/chunks/{c825ca22894bdb4d01ba.js → edbe52c2848486d64b16.js} +1 -1
  145. package/assets/esri/core/workers/chunks/{4f8895eb57ec6ab4b318.js → f5a61fa75ac877b5bb74.js} +1 -1
  146. package/assets/esri/core/workers/chunks/f9bc4edfdb1590be2d92.js +1 -0
  147. package/assets/esri/core/workers/chunks/fc763ce37d631e006199.js +1 -0
  148. package/assets/esri/core/workers/chunks/ff2a170acd98edfd0e06.js +1 -0
  149. package/assets/esri/libs/lyr3d/lyr3DMain.wasm +0 -0
  150. package/assets/esri/libs/lyr3d/lyr3DWorker.wasm +0 -0
  151. package/assets/esri/libs/parquet/pkg/bundle_bg.wasm +0 -0
  152. package/assets/esri/themes/base/widgets/_FeatureTable.scss +9 -1
  153. package/assets/esri/themes/dark/main.css +1 -1
  154. package/assets/esri/themes/light/main.css +1 -1
  155. package/assets/esri/themes/light/view.css +1 -1
  156. package/chunks/bundle.js +1 -1
  157. package/chunks/libtess-f32.js +1 -1
  158. package/chunks/libtess-f64.js +1 -1
  159. package/config.js +1 -1
  160. package/copyright.txt +84 -0
  161. package/core/Clonable.d.ts +0 -2
  162. package/core/Collection.d.ts +1 -1
  163. package/core/Error.d.ts +0 -1
  164. package/core/Evented.d.ts +0 -2
  165. package/core/Identifiable.d.ts +0 -1
  166. package/core/JSONSupport.d.ts +0 -2
  167. package/core/MultiOriginJSONSupport.d.ts +1 -3
  168. package/core/Promise.d.ts +9 -5
  169. package/core/ReadOnlyMultiOriginJSONSupport.d.ts +0 -2
  170. package/core/Version.d.ts +0 -1
  171. package/core/accessorSupport/types.d.ts +0 -1
  172. package/core/quantity.js +1 -1
  173. package/core/quantityFormatUtils.js +1 -1
  174. package/core/sql/types.d.ts +0 -1
  175. package/core/timeUtils.js +1 -1
  176. package/core/types.d.ts +0 -1
  177. package/core/units.d.ts +2 -2
  178. package/core/units.js +1 -1
  179. package/core/workers/WorkerHandle.js +1 -1
  180. package/editing/Clipboard.js +5 -0
  181. package/editing/sharedTemplates/types.d.ts +0 -1
  182. package/effects/FocusArea.d.ts +3 -3
  183. package/effects/FocusAreaOutline.d.ts +3 -3
  184. package/effects/FocusAreas.d.ts +3 -3
  185. package/effects/types.d.ts +0 -1
  186. package/form/ExpressionInfo.d.ts +2 -2
  187. package/form/FormTemplate.d.ts +2 -2
  188. package/form/elements/Element.d.ts +2 -2
  189. package/form/elements/UtilityNetworkAssociationsElement.d.ts +2 -2
  190. package/geometry/Geometry.d.ts +2 -2
  191. package/geometry/HeightModelInfo.d.ts +2 -2
  192. package/geometry/Mesh.d.ts +3 -3
  193. package/geometry/SpatialReference.d.ts +2 -2
  194. package/geometry/ellipsoidUtils.js +1 -1
  195. package/geometry/geometryEngineTypes.d.ts +0 -1
  196. package/geometry/libtess.js +1 -1
  197. package/geometry/projection/projectors.js +1 -1
  198. package/geometry/projectionUtils.js +1 -1
  199. package/geometry/support/MeshComponent.d.ts +3 -3
  200. package/geometry/support/MeshGeoreferencedVertexSpace.d.ts +3 -3
  201. package/geometry/support/MeshLocalVertexSpace.d.ts +3 -3
  202. package/geometry/support/MeshMaterial.d.ts +3 -3
  203. package/geometry/support/MeshTexture.d.ts +3 -3
  204. package/geometry/support/MeshTextureTransform.d.ts +3 -3
  205. package/geometry/support/MeshTransform.d.ts +3 -3
  206. package/geometry/support/MeshVertexAttributes.d.ts +3 -3
  207. package/geometry/support/meshUtils/projection.js +1 -1
  208. package/geometry/support/meshUtils/vertexSpaceConversion.js +1 -1
  209. package/geometry/support/planetGCSUtils.js +1 -1
  210. package/geometry/support/spatialReferenceUtils.js +1 -1
  211. package/graphic/GraphicOrigin.d.ts +0 -1
  212. package/ground/NavigationConstraint.d.ts +2 -2
  213. package/identity/Credential.d.ts +2 -2
  214. package/identity/IdentityModal.js +1 -1
  215. package/identity/OAuthInfo.d.ts +2 -2
  216. package/identity/ServerInfo.d.ts +2 -2
  217. package/interfaces.d.ts +2 -3
  218. package/intl/locale.d.ts +0 -1
  219. package/intl/messages.d.ts +0 -1
  220. package/intl/number.d.ts +0 -1
  221. package/intl/substitute.d.ts +0 -1
  222. package/intl/t9n.d.ts +0 -1
  223. package/kernel.js +1 -1
  224. package/layers/BaseElevationLayer.d.ts +3 -4
  225. package/layers/BingMapsLayer.d.ts +2 -2
  226. package/layers/BuildingSceneLayer.d.ts +5 -4
  227. package/layers/CatalogLayer.d.ts +3 -3
  228. package/layers/DimensionLayer.d.ts +2 -2
  229. package/layers/ElevationLayer.d.ts +3 -4
  230. package/layers/ElevationLayer.js +1 -1
  231. package/layers/FeatureLayer.d.ts +4 -4
  232. package/layers/GaussianSplatLayer.d.ts +2 -2
  233. package/layers/GeoJSONLayer.d.ts +2 -2
  234. package/layers/GeoRSSLayer.d.ts +2 -2
  235. package/layers/GroupLayer.d.ts +2 -2
  236. package/layers/ImageryLayer.d.ts +3 -3
  237. package/layers/ImageryTileLayer.d.ts +3 -3
  238. package/layers/IntegratedMesh3DTilesLayer.d.ts +2 -2
  239. package/layers/IntegratedMeshLayer.d.ts +5 -4
  240. package/layers/KMLLayer.d.ts +2 -2
  241. package/layers/KnowledgeGraphLayer.d.ts +2 -2
  242. package/layers/Layer.d.ts +2 -2
  243. package/layers/LineOfSightLayer.d.ts +2 -2
  244. package/layers/LinkChartLayer.d.ts +2 -2
  245. package/layers/MapImageLayer.d.ts +2 -2
  246. package/layers/MapNotesLayer.d.ts +2 -2
  247. package/layers/MediaLayer.d.ts +2 -2
  248. package/layers/OGCFeatureLayer.d.ts +2 -2
  249. package/layers/ParquetLayer.d.ts +3 -3
  250. package/layers/PointCloudLayer.d.ts +5 -4
  251. package/layers/RouteLayer.d.ts +2 -2
  252. package/layers/SceneLayer.d.ts +6 -5
  253. package/layers/StreamLayer.d.ts +3 -3
  254. package/layers/SubtypeGroupLayer.d.ts +4 -4
  255. package/layers/TileLayer.d.ts +2 -2
  256. package/layers/UnknownLayer.d.ts +2 -2
  257. package/layers/UnsupportedLayer.d.ts +2 -2
  258. package/layers/VectorTileLayer.d.ts +2 -2
  259. package/layers/VideoLayer.d.ts +2 -2
  260. package/layers/ViewshedLayer.d.ts +2 -2
  261. package/layers/VoxelLayer.d.ts +2 -2
  262. package/layers/WCSLayer.d.ts +3 -3
  263. package/layers/WFSLayer.d.ts +2 -2
  264. package/layers/WMSLayer.d.ts +2 -2
  265. package/layers/WMTSLayer.d.ts +2 -2
  266. package/layers/WebTileLayer.d.ts +2 -2
  267. package/layers/buildingSublayers/BuildingComponentSublayer.d.ts +2 -2
  268. package/layers/buildingSublayers/BuildingGroupSublayer.d.ts +1 -1
  269. package/layers/buildingSublayers/BuildingSublayer.d.ts +2 -2
  270. package/layers/catalog/CatalogDynamicGroupLayer.d.ts +2 -2
  271. package/layers/catalog/CatalogFootprintLayer.d.ts +2 -2
  272. package/layers/effects/types.d.ts +0 -1
  273. package/layers/graphics/sources/support/ParquetSourceWorker.js +1 -1
  274. package/layers/knowledgeGraph/IdTypePair.d.ts +0 -1
  275. package/layers/knowledgeGraph/KnowledgeGraphSublayer.d.ts +2 -2
  276. package/layers/mixins/APIKeyMixin.d.ts +0 -1
  277. package/layers/mixins/ArcGISImageService.d.ts +30 -16
  278. package/layers/mixins/CustomParametersMixin.d.ts +0 -1
  279. package/layers/mixins/EditBusLayer.d.ts +0 -2
  280. package/layers/mixins/ImageryTileMixin.d.ts +2 -1
  281. package/layers/mixins/ImageryTileMixin.js +1 -1
  282. package/layers/mixins/OperationalLayer.d.ts +0 -1
  283. package/layers/mixins/ScaleRangeLayer.d.ts +0 -1
  284. package/layers/mixins/SceneService.d.ts +0 -6
  285. package/layers/orientedImagery/transformations/utils.js +1 -1
  286. package/layers/pointCloudFilters/PointCloudFilter.d.ts +2 -2
  287. package/layers/raster/datasets/pixelReader.d.ts +0 -1
  288. package/layers/raster/datasets/types.d.ts +0 -1
  289. package/layers/raster/functions/SpectralConversionFunction.js +5 -0
  290. package/layers/raster/functions/SpectralConversionFunctionArguments.js +5 -0
  291. package/layers/raster/functions/changeDetectionUtils.d.ts +0 -1
  292. package/layers/raster/functions/conversionUtils.js +1 -1
  293. package/layers/raster/functions/focalStatUtils.d.ts +0 -1
  294. package/layers/raster/functions/rasterFunctionHelper.js +1 -1
  295. package/layers/raster/functions/vectorFieldUtils.js +1 -1
  296. package/layers/scene/types.d.ts +11 -0
  297. package/layers/support/AggregateField.d.ts +2 -2
  298. package/layers/support/BuildingFilter.d.ts +2 -2
  299. package/layers/support/BuildingFilterBlock.d.ts +2 -2
  300. package/layers/support/BuildingSummaryStatistics.d.ts +3 -3
  301. package/layers/support/CodedValue.d.ts +2 -2
  302. package/layers/support/ControlPoint.d.ts +2 -2
  303. package/layers/support/ControlPointsGeoreference.d.ts +2 -2
  304. package/layers/support/DimensionalDefinition.d.ts +2 -2
  305. package/layers/support/DisplayFilter.d.ts +3 -3
  306. package/layers/support/DisplayFilterInfo.d.ts +3 -3
  307. package/layers/support/Domain.d.ts +2 -2
  308. package/layers/support/EditFieldsInfo.d.ts +3 -3
  309. package/layers/support/ElevationQuery.js +1 -1
  310. package/layers/support/ElevationTileData.js +1 -1
  311. package/layers/support/ExpressionInfo.d.ts +3 -3
  312. package/layers/support/FacilityLayerInfo.d.ts +2 -2
  313. package/layers/support/FeatureEffect.d.ts +2 -2
  314. package/layers/support/FeatureFilter.d.ts +2 -2
  315. package/layers/support/FeatureReductionBinning.d.ts +2 -2
  316. package/layers/support/FeatureReductionCluster.d.ts +2 -2
  317. package/layers/support/FeatureReductionSelection.d.ts +2 -2
  318. package/layers/support/FeatureTemplate.d.ts +3 -3
  319. package/layers/support/FeatureType.d.ts +3 -3
  320. package/layers/support/Field.d.ts +2 -2
  321. package/layers/support/FieldConfiguration.d.ts +3 -3
  322. package/layers/support/GeometryFieldsInfo.d.ts +3 -3
  323. package/layers/support/KMLSublayer.d.ts +3 -3
  324. package/layers/support/LOD.d.ts +2 -2
  325. package/layers/support/LabelClass.d.ts +2 -2
  326. package/layers/support/LabelExpressionInfo.d.ts +2 -2
  327. package/layers/support/LayerFloorInfo.d.ts +2 -2
  328. package/layers/support/LevelLayerInfo.d.ts +2 -2
  329. package/layers/support/LocalMediaElementSource.d.ts +3 -3
  330. package/layers/support/MapImage.d.ts +2 -2
  331. package/layers/support/MediaElementBase.d.ts +2 -2
  332. package/layers/support/MosaicRule.d.ts +2 -2
  333. package/layers/support/MultidimensionalSubset.d.ts +13 -4
  334. package/layers/support/OrderByInfo.d.ts +2 -2
  335. package/layers/support/ParquetGeometryEncodingLocation.d.ts +3 -3
  336. package/layers/support/ParquetGeometryEncodingWkb.d.ts +3 -3
  337. package/layers/support/PixelBlock.d.ts +2 -2
  338. package/layers/support/PlaybackInfo.d.ts +3 -3
  339. package/layers/support/PurgeOptions.d.ts +2 -2
  340. package/layers/support/RasterBandInfo.d.ts +2 -2
  341. package/layers/support/RasterFunction.d.ts +2 -2
  342. package/layers/support/RasterInfo.d.ts +2 -2
  343. package/layers/support/RasterSensorInfo.d.ts +2 -2
  344. package/layers/support/Relationship.d.ts +5 -3
  345. package/layers/support/RouteStopSymbols.d.ts +2 -2
  346. package/layers/support/RouteSymbols.d.ts +2 -2
  347. package/layers/support/SceneFilter.d.ts +2 -2
  348. package/layers/support/SceneLayerViewFilter.js +5 -0
  349. package/layers/support/SceneModification.d.ts +2 -2
  350. package/layers/support/SceneModifications.d.ts +1 -1
  351. package/layers/support/SiteLayerInfo.d.ts +2 -2
  352. package/layers/support/Sublayer.d.ts +2 -2
  353. package/layers/support/Subtype.d.ts +3 -3
  354. package/layers/support/SubtypeSublayer.d.ts +3 -3
  355. package/layers/support/TelemetryData.d.ts +3 -3
  356. package/layers/support/TelemetryDisplay.d.ts +3 -3
  357. package/layers/support/TileInfo.d.ts +2 -2
  358. package/layers/support/TileMatrixSet.d.ts +2 -2
  359. package/layers/support/TimeInfo.d.ts +3 -3
  360. package/layers/support/TrackInfo.d.ts +3 -3
  361. package/layers/support/TrackPartInfo.d.ts +3 -3
  362. package/layers/support/VideoTimeExtent.d.ts +3 -3
  363. package/layers/support/WMSSublayer.d.ts +2 -2
  364. package/layers/support/WMTSStyle.d.ts +2 -2
  365. package/layers/support/WMTSSublayer.d.ts +2 -2
  366. package/layers/support/rasterFunctionUtils.d.ts +0 -4
  367. package/layers/support/types.d.ts +32 -0
  368. package/layers/video/types.d.ts +0 -1
  369. package/layers/voxel/VoxelColorStop.d.ts +3 -3
  370. package/layers/voxel/VoxelDynamicSection.d.ts +3 -3
  371. package/layers/voxel/VoxelIsosurface.d.ts +3 -3
  372. package/layers/voxel/VoxelOpacityStop.d.ts +3 -3
  373. package/layers/voxel/VoxelRangeFilter.d.ts +3 -3
  374. package/layers/voxel/VoxelSlice.d.ts +3 -3
  375. package/layers/voxel/VoxelTransferFunctionStyle.d.ts +3 -3
  376. package/layers/voxel/VoxelUniqueValue.d.ts +3 -3
  377. package/layers/voxel/VoxelVariable.d.ts +2 -2
  378. package/layers/voxel/VoxelVariableStyle.d.ts +2 -2
  379. package/layers/voxel/VoxelVolumeStyle.d.ts +2 -2
  380. package/layers/wms/types.d.ts +0 -1
  381. package/layers/wmts/types.d.ts +0 -1
  382. package/linkChart/ChronologicalLayoutSettings.d.ts +3 -3
  383. package/linkChart/LayoutSettings.d.ts +3 -3
  384. package/linkChart/LinkChartProperties.d.ts +3 -3
  385. package/linkChart/NonspatialDataDisplay.d.ts +3 -3
  386. package/linkChart/OrganicLayoutSettings.d.ts +3 -3
  387. package/linkChart/types.d.ts +0 -1
  388. package/networks/CircuitManager.d.ts +2 -2
  389. package/networks/Network.d.ts +2 -2
  390. package/networks/UnitIdentifierManager.d.ts +2 -2
  391. package/networks/support/Circuit.d.ts +2 -2
  392. package/networks/support/CircuitLocation.d.ts +2 -2
  393. package/networks/support/CircuitPath.d.ts +2 -2
  394. package/networks/support/CircuitPathConnectivityElement.d.ts +2 -2
  395. package/networks/support/CircuitSection.d.ts +2 -2
  396. package/networks/support/NamedTraceConfiguration.d.ts +2 -2
  397. package/networks/support/Subcircuit.d.ts +2 -2
  398. package/networks/support/Terminal.d.ts +2 -2
  399. package/networks/support/TerminalConfiguration.d.ts +2 -2
  400. package/networks/support/TraceConfiguration.d.ts +2 -2
  401. package/networks/support/UNTraceConfiguration.d.ts +2 -2
  402. package/networks/support/typeUtils.d.ts +0 -1
  403. package/package.json +1 -1
  404. package/popup/ElementExpressionInfo.d.ts +2 -2
  405. package/popup/ExpressionInfo.d.ts +2 -2
  406. package/popup/FieldInfo.d.ts +3 -3
  407. package/popup/LayerOptions.d.ts +2 -2
  408. package/popup/RelatedRecordsInfo.d.ts +2 -2
  409. package/popup/content/AttachmentsContent.d.ts +2 -2
  410. package/popup/content/Content.d.ts +2 -2
  411. package/popup/content/RelationshipContent.d.ts +2 -2
  412. package/popup/content/UtilityNetworkAssociationsContent.d.ts +2 -2
  413. package/popup/content/mixins/MediaInfo.d.ts +2 -2
  414. package/popup/content/support/ChartMediaInfoValue.d.ts +2 -2
  415. package/popup/content/support/ImageMediaInfoValue.d.ts +2 -2
  416. package/popup/support/AttachmentsOrderByInfo.d.ts +3 -3
  417. package/popup/support/FieldInfoFormat.d.ts +3 -3
  418. package/popup/support/RelatedRecordsInfoFieldOrder.d.ts +2 -2
  419. package/popup/support/UtilityNetworkAssociationType.d.ts +3 -3
  420. package/portal/Portal.d.ts +2 -2
  421. package/portal/PortalFolder.d.ts +2 -2
  422. package/portal/PortalGroup.d.ts +2 -2
  423. package/portal/PortalItem.d.ts +2 -2
  424. package/portal/PortalUser.d.ts +2 -2
  425. package/portal/timeUnitKebabDictionary.js +1 -1
  426. package/renderers/FlowRenderer.d.ts +2 -2
  427. package/renderers/PieChartRenderer.d.ts +2 -2
  428. package/renderers/PointCloudRenderer.d.ts +2 -2
  429. package/renderers/RasterColormapRenderer.d.ts +2 -2
  430. package/renderers/RasterShadedReliefRenderer.d.ts +2 -2
  431. package/renderers/RasterStretchRenderer.d.ts +2 -2
  432. package/renderers/Renderer.d.ts +2 -2
  433. package/renderers/VectorFieldRenderer.d.ts +2 -2
  434. package/renderers/support/AttributeColorInfo.d.ts +2 -2
  435. package/renderers/support/AuthoringInfo.d.ts +2 -2
  436. package/renderers/support/AuthoringInfoClassBreakInfo.d.ts +2 -2
  437. package/renderers/support/AuthoringInfoFieldInfo.d.ts +2 -2
  438. package/renderers/support/AuthoringInfoVisualVariable.d.ts +2 -2
  439. package/renderers/support/ClassBreakInfo.d.ts +2 -2
  440. package/renderers/support/ColormapInfo.d.ts +2 -2
  441. package/renderers/support/DotDensityLegendOptions.d.ts +2 -2
  442. package/renderers/support/HeatmapColorStop.d.ts +2 -2
  443. package/renderers/support/HeatmapLegendOptions.d.ts +3 -3
  444. package/renderers/support/OthersCategory.d.ts +3 -3
  445. package/renderers/support/RasterPresetRenderer.d.ts +3 -3
  446. package/renderers/support/RendererLegendOptions.d.ts +3 -3
  447. package/renderers/support/UniqueValue.d.ts +3 -3
  448. package/renderers/support/UniqueValueClass.d.ts +3 -3
  449. package/renderers/support/UniqueValueGroup.d.ts +3 -3
  450. package/renderers/support/UniqueValueInfo.d.ts +2 -2
  451. package/renderers/support/pointCloud/ColorClassBreakInfo.d.ts +2 -2
  452. package/renderers/support/pointCloud/ColorModulation.d.ts +2 -2
  453. package/renderers/support/pointCloud/ColorUniqueValueInfo.d.ts +2 -2
  454. package/renderers/visualVariables/VisualVariable.d.ts +2 -2
  455. package/renderers/visualVariables/support/ColorSizeStop.d.ts +2 -2
  456. package/renderers/visualVariables/support/ColorStop.d.ts +2 -2
  457. package/renderers/visualVariables/support/OpacityStop.d.ts +2 -2
  458. package/renderers/visualVariables/support/SizeStop.d.ts +2 -2
  459. package/renderers/visualVariables/support/VisualVariableLegendOptions.d.ts +3 -3
  460. package/rest/featureService/FeatureService.d.ts +2 -2
  461. package/rest/geoprocessor/GPOptions.d.ts +2 -2
  462. package/rest/geoprocessor/utils.js +1 -1
  463. package/rest/imageService.d.ts +36 -19
  464. package/rest/imageService.js +1 -1
  465. package/rest/knowledgeGraph/DataModel.d.ts +2 -2
  466. package/rest/knowledgeGraph/FieldIndex.d.ts +2 -2
  467. package/rest/knowledgeGraph/GraphObject.d.ts +2 -2
  468. package/rest/knowledgeGraph/GraphObjectType.d.ts +2 -2
  469. package/rest/knowledgeGraph/GraphProperty.d.ts +2 -2
  470. package/rest/knowledgeGraph/KnowledgeGraph.d.ts +2 -2
  471. package/rest/knowledgeGraph/Path.d.ts +2 -2
  472. package/rest/knowledgeGraph/ServiceDefinition.d.ts +2 -2
  473. package/rest/knowledgeGraph/SourceTypeValueBehavior.d.ts +2 -2
  474. package/rest/knowledgeGraph/toolService/findPaths/CIMFilteredFindPathsConfiguration.d.ts +2 -2
  475. package/rest/knowledgeGraph/toolService/findPaths/CIMFilteredFindPathsEntity.d.ts +2 -2
  476. package/rest/knowledgeGraph/toolService/findPaths/CIMFilteredFindPathsPathFilter.d.ts +2 -2
  477. package/rest/knowledgeGraph/toolService/findPaths/CIMFilteredFindPathsResultJSON.d.ts +0 -1
  478. package/rest/knowledgeGraph/toolService/findPaths/CIMKGTraversalDirection.d.ts +2 -2
  479. package/rest/knowledgeGraph/wasmInterface/WasmDataModelWrapperInterfaces.d.ts +0 -1
  480. package/rest/lastMileDelivery/types.d.ts +0 -1
  481. package/rest/layerSources/DynamicDataLayer.d.ts +2 -2
  482. package/rest/layerSources/DynamicMapLayer.d.ts +2 -2
  483. package/rest/layerSources/JoinTableDataSource.d.ts +2 -2
  484. package/rest/layerSources/QueryTableDataSource.d.ts +2 -2
  485. package/rest/layerSources/RasterDataSource.d.ts +2 -2
  486. package/rest/layerSources/TableDataSource.d.ts +2 -2
  487. package/rest/networks/circuits/support/CircuitTraceResult.d.ts +2 -2
  488. package/rest/networks/circuits/support/ExportCircuitsParameters.d.ts +2 -2
  489. package/rest/networks/circuits/support/QueryCircuitsParameters.d.ts +2 -2
  490. package/rest/networks/support/AggregatedGeometry.d.ts +2 -2
  491. package/rest/networks/support/Association.d.ts +2 -2
  492. package/rest/networks/support/AssociationGeometriesResult.d.ts +2 -2
  493. package/rest/networks/support/FunctionResult.d.ts +2 -2
  494. package/rest/networks/support/NetworkElement.d.ts +2 -2
  495. package/rest/networks/support/QueryAssociationsParameters.d.ts +2 -2
  496. package/rest/networks/support/QueryAssociationsResult.d.ts +2 -2
  497. package/rest/networks/support/QueryNamedTraceConfigurationsParameters.d.ts +2 -2
  498. package/rest/networks/support/SynthesizeAssociationGeometriesParameters.d.ts +2 -2
  499. package/rest/networks/support/TraceLocation.d.ts +3 -3
  500. package/rest/networks/support/TraceParameters.d.ts +2 -2
  501. package/rest/networks/support/TraceResult.d.ts +2 -2
  502. package/rest/networks/support/ValidateNetworkTopologyParameters.d.ts +2 -2
  503. package/rest/networks/support/ValidateNetworkTopologyResult.d.ts +2 -2
  504. package/rest/query/support/AttachmentInfo.d.ts +2 -2
  505. package/rest/support/AddressCandidate.d.ts +2 -2
  506. package/rest/support/AddressToLocationsParameters.d.ts +2 -2
  507. package/rest/support/AddressesToLocationsParameters.d.ts +2 -2
  508. package/rest/support/ArealUnit.d.ts +2 -2
  509. package/rest/support/AreasAndLengthsParameters.d.ts +2 -2
  510. package/rest/support/AttachmentQuery.d.ts +2 -2
  511. package/rest/support/AttributeBinsFeatureSet.d.ts +2 -2
  512. package/rest/support/AttributeBinsGrouping.d.ts +3 -3
  513. package/rest/support/AttributeBinsQuery.d.ts +3 -3
  514. package/rest/support/BaseImageMeasureParameters.d.ts +2 -2
  515. package/rest/support/BaseImageMeasureResult.d.ts +2 -2
  516. package/rest/support/BaseImageMeasureResultValue.d.ts +2 -2
  517. package/rest/support/BinParametersBase.d.ts +3 -3
  518. package/rest/support/BufferParameters.d.ts +2 -2
  519. package/rest/support/CameraInfo.d.ts +2 -2
  520. package/rest/support/CameraInfoMixin.d.ts +0 -1
  521. package/rest/support/ClosestFacilityParameters.d.ts +3 -3
  522. package/rest/support/ClosestFacilitySolveResult.d.ts +2 -2
  523. package/rest/support/ColorRamp.d.ts +2 -2
  524. package/rest/support/DataFile.d.ts +2 -2
  525. package/rest/support/DataLayer.d.ts +3 -3
  526. package/rest/support/DateBinTimeInterval.d.ts +3 -3
  527. package/rest/support/DensifyParameters.d.ts +2 -2
  528. package/rest/support/DirectionLine.d.ts +3 -3
  529. package/rest/support/DirectionPoint.d.ts +3 -3
  530. package/rest/support/DirectionsEvent.d.ts +2 -2
  531. package/rest/support/DirectionsString.d.ts +2 -2
  532. package/rest/support/FeatureSet.d.ts +2 -2
  533. package/rest/support/FindImagesParameters.d.ts +3 -3
  534. package/rest/support/FindImagesResult.d.ts +2 -2
  535. package/rest/support/FindParameters.d.ts +2 -2
  536. package/rest/support/FindResult.d.ts +2 -2
  537. package/rest/support/GPMessage.d.ts +2 -2
  538. package/rest/support/GeneralizeParameters.d.ts +2 -2
  539. package/rest/support/IdentifyParameters.d.ts +2 -2
  540. package/rest/support/IdentifyResult.d.ts +2 -2
  541. package/rest/support/ImageAngleParameters.d.ts +2 -2
  542. package/rest/support/ImageAngleResult.d.ts +2 -2
  543. package/rest/support/ImageBoundaryParameters.d.ts +3 -3
  544. package/rest/support/ImageBoundaryResult.d.ts +2 -2
  545. package/rest/support/ImageGPSInfo.d.ts +2 -2
  546. package/rest/support/ImageGPSInfoParameters.d.ts +3 -3
  547. package/rest/support/ImageGPSInfoResult.d.ts +2 -2
  548. package/rest/support/ImageHistogramParameters.d.ts +2 -2
  549. package/rest/support/ImageIdentifyParameters.d.ts +2 -2
  550. package/rest/support/ImageIdentifyResult.d.ts +2 -2
  551. package/rest/support/ImageInspectionInfo.d.ts +2 -2
  552. package/rest/support/ImagePixelLocationParameters.d.ts +2 -2
  553. package/rest/support/ImagePixelLocationResult.d.ts +2 -2
  554. package/rest/support/ImageSample.d.ts +2 -2
  555. package/rest/support/ImageSampleParameters.d.ts +2 -2
  556. package/rest/support/ImageSampleResult.d.ts +2 -2
  557. package/rest/support/ImageToMapMultirayParameters.d.ts +3 -3
  558. package/rest/support/ImageToMapParameters.d.ts +3 -3
  559. package/rest/support/ImageUrlParameters.d.ts +3 -3
  560. package/rest/support/ImageUrlResult.d.ts +2 -2
  561. package/rest/support/ImageVolume.d.ts +2 -2
  562. package/rest/support/ImageVolumeParameters.d.ts +3 -3
  563. package/rest/support/ImageVolumeResult.d.ts +2 -2
  564. package/rest/support/JobInfo.d.ts +2 -2
  565. package/rest/support/LastMileDeliveryParameters.d.ts +3 -3
  566. package/rest/support/LegendLayer.d.ts +2 -2
  567. package/rest/support/LengthsParameters.d.ts +2 -2
  568. package/rest/support/LinearUnit.d.ts +2 -2
  569. package/rest/support/LocateSettingBase.d.ts +3 -3
  570. package/rest/support/LocateSettingSource.d.ts +3 -3
  571. package/rest/support/LocateSettings.d.ts +3 -3
  572. package/rest/support/LocateSettingsOverrides.d.ts +3 -3
  573. package/rest/support/LocationToAddressParameters.d.ts +2 -2
  574. package/rest/support/MapToImageParameters.d.ts +3 -3
  575. package/rest/support/MeasureAreaFromImageResult.d.ts +2 -2
  576. package/rest/support/MeasureFromImageParameters.d.ts +2 -2
  577. package/rest/support/MeasureLengthFromImageResult.d.ts +2 -2
  578. package/rest/support/NetworkUrl.d.ts +3 -3
  579. package/rest/support/NormalizationBinParametersMixin.d.ts +0 -1
  580. package/rest/support/OffsetParameters.d.ts +2 -2
  581. package/rest/support/ParameterValue.d.ts +4 -2
  582. package/rest/support/PointBarrier.d.ts +3 -3
  583. package/rest/support/PolygonBarrier.d.ts +3 -3
  584. package/rest/support/PolylineBarrier.d.ts +3 -3
  585. package/rest/support/ProjectParameters.d.ts +2 -2
  586. package/rest/support/QuantizationParameters.d.ts +2 -2
  587. package/rest/support/Query.d.ts +2 -2
  588. package/rest/support/RasterData.d.ts +2 -2
  589. package/rest/support/RelationParameters.d.ts +2 -2
  590. package/rest/support/RelationshipQuery.d.ts +2 -2
  591. package/rest/support/RouteInfo.d.ts +3 -3
  592. package/rest/support/RouteParameters.d.ts +3 -3
  593. package/rest/support/RouteResult.d.ts +2 -2
  594. package/rest/support/RouteSolveResult.d.ts +2 -2
  595. package/rest/support/ServiceAreaParameters.d.ts +3 -3
  596. package/rest/support/ServiceAreaSolveResult.d.ts +2 -2
  597. package/rest/support/StatisticDefinition.d.ts +2 -2
  598. package/rest/support/Stop.d.ts +3 -3
  599. package/rest/support/SuggestLocationsParameters.d.ts +2 -2
  600. package/rest/support/TimeUnit.d.ts +42 -0
  601. package/rest/support/TimeUnit.js +5 -0
  602. package/rest/support/TopFeaturesQuery.d.ts +2 -2
  603. package/rest/support/TopFilter.d.ts +2 -2
  604. package/rest/support/TravelMode.d.ts +3 -3
  605. package/rest/support/TrimExtendParameters.d.ts +2 -2
  606. package/rest/support/parameterValueUtils.js +1 -1
  607. package/rest/types.d.ts +1 -1
  608. package/rest/versionManagement/gdbVersion/support/AlterVersionParameters.d.ts +2 -2
  609. package/rest/versionManagement/gdbVersion/support/ReconcileParameters.d.ts +2 -2
  610. package/rest/versionManagement/support/CreateVersionParameters.d.ts +2 -2
  611. package/rest/versionManagement/support/GetVersionInfosParameters.d.ts +2 -2
  612. package/smartMapping/raster/support/adapters/ImageryLayerAdapter.js +1 -1
  613. package/smartMapping/support/adapters/FeatureLayerAdapter.js +1 -1
  614. package/statistics/types.d.ts +0 -1
  615. package/support/MapFloorInfo.d.ts +2 -2
  616. package/support/revision.js +1 -1
  617. package/symbols/Font.d.ts +2 -2
  618. package/symbols/LineStyleMarker3D.d.ts +3 -3
  619. package/symbols/LineSymbolMarker.d.ts +2 -2
  620. package/symbols/Symbol.d.ts +2 -2
  621. package/symbols/Symbol3DLayer.d.ts +2 -2
  622. package/symbols/callouts/Callout3D.d.ts +2 -2
  623. package/symbols/callouts/LineCallout3DBorder.d.ts +2 -2
  624. package/symbols/edges/Edges3D.d.ts +2 -2
  625. package/symbols/patterns/LinePattern3D.d.ts +2 -2
  626. package/symbols/patterns/Pattern3D.d.ts +2 -2
  627. package/symbols/support/ElevationInfo.d.ts +10 -4
  628. package/symbols/support/FeatureExpressionInfo.d.ts +2 -2
  629. package/symbols/support/IconSymbol3DLayerResource.d.ts +2 -2
  630. package/symbols/support/ObjectSymbol3DLayerResource.d.ts +2 -2
  631. package/symbols/support/OccludedVisibility.d.ts +3 -3
  632. package/symbols/support/Symbol3DFillMaterial.js +1 -1
  633. package/symbols/support/Symbol3DHalo.d.ts +2 -2
  634. package/symbols/support/Symbol3DIconOutline.d.ts +2 -2
  635. package/symbols/support/Symbol3DMaterial.d.ts +6 -4
  636. package/symbols/support/Symbol3DMaterial.js +1 -1
  637. package/symbols/support/Symbol3DOutline.d.ts +2 -2
  638. package/symbols/support/Symbol3DTextBackground.d.ts +3 -3
  639. package/symbols/support/Symbol3DVerticalOffset.d.ts +2 -2
  640. package/symbols/support/types.d.ts +0 -1
  641. package/tables/AttributeTableTemplate.d.ts +2 -2
  642. package/tables/elements/AttributeTableAttachmentElement.d.ts +2 -2
  643. package/tables/elements/AttributeTableElement.d.ts +2 -2
  644. package/tables/elements/AttributeTableFieldElement.d.ts +2 -2
  645. package/tables/elements/AttributeTableGroupElement.d.ts +2 -2
  646. package/tables/elements/AttributeTableRelationshipElement.d.ts +2 -2
  647. package/tables/support/FieldOrder.d.ts +3 -3
  648. package/time/TimeExtent.d.ts +2 -2
  649. package/time/TimeExtent.js +1 -1
  650. package/time/TimeInterval.d.ts +3 -3
  651. package/time/types.d.ts +0 -1
  652. package/versionManagement/VersionManagementService.d.ts +2 -2
  653. package/versionManagement/VersioningState.d.ts +2 -2
  654. package/versionManagement/support/type.d.ts +0 -1
  655. package/views/2d/ViewState.d.ts +2 -2
  656. package/views/2d/engine/imagery/RasterVFContainer.js +1 -1
  657. package/views/2d/engine/imagery/RasterVFDisplayObject.js +1 -1
  658. package/views/2d/engine/imagery/RasterVFTileContainer.js +1 -1
  659. package/views/2d/engine/rasterBrushes.js +1 -1
  660. package/views/2d/engine/webgl/shaderGraph/techniques/raster/VectorFieldTechnique.js +5 -0
  661. package/views/2d/engine/webgl/shaderGraph/techniques/raster/processor/AspectTechnique.js +1 -1
  662. package/views/2d/engine/webgl/shaderGraph/techniques/raster/processor/BandArithmeticTechnique.js +1 -1
  663. package/views/2d/engine/webgl/shaderGraph/techniques/raster/processor/ColormapToRGBTechnique.js +1 -1
  664. package/views/2d/engine/webgl/shaderGraph/techniques/raster/processor/CompositeBandTechnique.js +1 -1
  665. package/views/2d/engine/webgl/shaderGraph/techniques/raster/processor/ComputeChangeTechnique.js +1 -1
  666. package/views/2d/engine/webgl/shaderGraph/techniques/raster/processor/ContrastBrightnessTechnique.js +1 -1
  667. package/views/2d/engine/webgl/shaderGraph/techniques/raster/processor/ConvolutionTechnique.js +1 -1
  668. package/views/2d/engine/webgl/shaderGraph/techniques/raster/processor/CurvatureTechnique.js +1 -1
  669. package/views/2d/engine/webgl/shaderGraph/techniques/raster/processor/ExtractBandTechnique.js +1 -1
  670. package/views/2d/engine/webgl/shaderGraph/techniques/raster/processor/FocalStatisticsTechnique.js +1 -1
  671. package/views/2d/engine/webgl/shaderGraph/techniques/raster/processor/GrayscaleTechnique.js +1 -1
  672. package/views/2d/engine/webgl/shaderGraph/techniques/raster/processor/HillshadeTechnique.js +1 -1
  673. package/views/2d/engine/webgl/shaderGraph/techniques/raster/processor/LocalTechnique.js +1 -1
  674. package/views/2d/engine/webgl/shaderGraph/techniques/raster/processor/MaskTechnique.js +1 -1
  675. package/views/2d/engine/webgl/shaderGraph/techniques/raster/processor/NDVITechnique.js +1 -1
  676. package/views/2d/engine/webgl/shaderGraph/techniques/raster/processor/RemapTechnique.js +1 -1
  677. package/views/2d/engine/webgl/shaderGraph/techniques/raster/processor/ReprojectTechnique.js +1 -1
  678. package/views/2d/engine/webgl/shaderGraph/techniques/raster/processor/ShadedReliefTechnique.js +1 -1
  679. package/views/2d/engine/webgl/shaderGraph/techniques/raster/processor/SlopeTechnique.js +1 -1
  680. package/views/2d/engine/webgl/shaderGraph/techniques/raster/processor/StretchTechnique.js +1 -1
  681. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/raster/MagDirShader.js +5 -0
  682. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/raster/ScalarShader.js +5 -0
  683. package/views/2d/engine/webgl/shaders/sources/shaderRepository.js +1 -1
  684. package/views/2d/layers/MediaLayerView2D.js +1 -1
  685. package/views/2d/layers/TileLayerView2D.js +1 -1
  686. package/views/2d/layers/imagery/ImageryVFStrategy.js +1 -1
  687. package/views/2d/layers/imagery/VectorFieldTileView2D.js +1 -1
  688. package/views/2d/layers/support/MediaLayerInteractionOptions.d.ts +0 -1
  689. package/views/3d/analysis/AreaMeasurement/support/AreaMeasurementVisualization.js +1 -1
  690. package/views/3d/analysis/AreaMeasurement/support/MeasurementData.js +1 -1
  691. package/views/3d/analysis/AreaMeasurementAnalysisView3D.js +1 -1
  692. package/views/3d/analysis/Dimension/types.d.ts +0 -1
  693. package/views/3d/analysis/Slice/types.d.ts +0 -1
  694. package/views/3d/analysis/Viewshed/types.d.ts +0 -1
  695. package/views/3d/analysis/VolumeMeasurement/VolumeMeasurementCutFillController.js +1 -1
  696. package/views/3d/analysis/VolumeMeasurement/VolumeMeasurementRawResult.js +5 -0
  697. package/views/3d/analysis/VolumeMeasurement/VolumeMeasurementResult.d.ts +5 -1
  698. package/views/3d/analysis/VolumeMeasurement/VolumeMeasurementResult.js +1 -1
  699. package/views/3d/analysis/VolumeMeasurementAnalysisView3D.js +1 -1
  700. package/views/3d/constraints/AltitudeConstraint.d.ts +2 -2
  701. package/views/3d/constraints/ClipDistanceConstraint.d.ts +2 -2
  702. package/views/3d/constraints/Constraints.d.ts +2 -2
  703. package/views/3d/constraints/TiltConstraint.d.ts +2 -2
  704. package/views/3d/environment/CloudyWeather.d.ts +2 -2
  705. package/views/3d/environment/EnvironmentManager.js +1 -1
  706. package/views/3d/environment/FoggyWeather.d.ts +2 -2
  707. package/views/3d/environment/RainyWeather.d.ts +2 -2
  708. package/views/3d/environment/SnowyWeather.d.ts +2 -2
  709. package/views/3d/environment/SunLighting.d.ts +2 -2
  710. package/views/3d/environment/SunnyWeather.d.ts +2 -2
  711. package/views/3d/environment/VirtualLighting.d.ts +2 -2
  712. package/views/3d/layers/ElevationLayerView3D.js +1 -1
  713. package/views/3d/layers/FlowSubView3D.js +1 -1
  714. package/views/3d/layers/IntegratedMesh3DTilesLayerView3D.js +1 -1
  715. package/views/3d/layers/graphics/Graphics3DExtrudeSymbolLayer.js +1 -1
  716. package/views/3d/layers/graphics/Graphics3DMeshFillSymbolLayer.js +1 -1
  717. package/views/3d/layers/graphics/Graphics3DObjectSymbolLayer.js +1 -1
  718. package/views/3d/layers/graphics/emissiveUtils.js +5 -0
  719. package/views/3d/layers/support/layerUtils.js +1 -1
  720. package/views/3d/support/flow/FlowSubViewTiles3D.js +1 -1
  721. package/views/3d/support/gaussianSplatting/GaussianSplatFadeHelper.js +1 -1
  722. package/views/3d/support/mathUtils.js +1 -1
  723. package/views/3d/support/pointsOfInterest/StableSurfaceCenter.js +1 -1
  724. package/views/3d/support/supportedSpatialReference.js +1 -1
  725. package/views/3d/terrain/terrainUtils.js +1 -1
  726. package/views/3d/webgl/ManagedFBO.js +1 -1
  727. package/views/3d/webgl/ManagedFBOResource.d.ts +0 -1
  728. package/views/3d/webgl/RenderNode.d.ts +1 -1
  729. package/views/3d/webgl/RenderNode.js +1 -1
  730. package/views/3d/webgl/types.d.ts +0 -1
  731. package/views/3d/webgl-engine/collections/Component/Material/ComponentMaterial.js +1 -1
  732. package/views/3d/webgl-engine/core/shaderLibrary/util/EllipsoidMode.js +1 -1
  733. package/views/3d/webgl-engine/effects/debug/RenderNodeVisualizerNode.js +1 -1
  734. package/views/3d/webgl-engine/effects/focusArea/FocusAreaMaskNode.js +1 -1
  735. package/views/3d/webgl-engine/effects/highlight/ShadowHighlight.js +1 -1
  736. package/views/3d/webgl-engine/effects/smaa/SMAA.js +1 -1
  737. package/views/3d/webgl-engine/lib/CutFillColor.js +1 -1
  738. package/views/3d/webgl-engine/lib/CutFillDepth.js +1 -1
  739. package/views/3d/webgl-engine/lib/GPUPointOcclusionQuery.js +1 -1
  740. package/views/3d/webgl-engine/lib/GaussianSplatRenderNode.js +1 -1
  741. package/views/3d/webgl-engine/lib/Renderer.js +1 -1
  742. package/views/3d/webgl-engine/parts/RenderView.js +1 -1
  743. package/views/3d/webgl-engine/shaders/AnimatedLine.glsl.js +31 -23
  744. package/views/3d/webgl-engine/statistics/RendererPerformanceInfo.js +1 -1
  745. package/views/3d/webgl.d.ts +16 -8
  746. package/views/3d/webgl.js +1 -1
  747. package/views/Theme.d.ts +2 -2
  748. package/views/VideoView.d.ts +4 -4
  749. package/views/VideoView.js +1 -1
  750. package/views/View.d.ts +3 -3
  751. package/views/View2D.d.ts +2 -2
  752. package/views/ViewAnimation.d.ts +2 -2
  753. package/views/Viewport2DMixin.d.ts +0 -2
  754. package/views/analysis/ElevationProfile/ElevationProfileResult.d.ts +2 -2
  755. package/views/animation/types.d.ts +0 -1
  756. package/views/draw/CursorUpdateEvent.d.ts +0 -1
  757. package/views/draw/DrawAction.d.ts +3 -3
  758. package/views/draw/DrawCompleteEvent.d.ts +0 -1
  759. package/views/draw/VertexAddEvent.d.ts +0 -1
  760. package/views/draw/VertexRemoveEvent.d.ts +0 -1
  761. package/views/draw/support/managers/{DrawTooltipManager.js → TooltipManager.js} +1 -1
  762. package/views/draw/types.d.ts +0 -1
  763. package/views/input/ViewEvents.js +1 -1
  764. package/views/input/recognizers/VerticalTwoFingerDrag.js +1 -1
  765. package/views/input/types.d.ts +94 -0
  766. package/views/interactive/Tooltip.d.ts +2 -2
  767. package/views/interactive/tooltip/components/DrawHeaderActions.js +1 -1
  768. package/views/interactive/tooltip/types.d.ts +0 -1
  769. package/views/layers/ImageryTileLayerViewMixin.d.ts +0 -1
  770. package/views/layers/LayerView.d.ts +3 -3
  771. package/views/layers/SceneLayerView.js +1 -1
  772. package/views/layers/types.d.ts +0 -1
  773. package/views/navigation/types.d.ts +0 -1
  774. package/views/support/AttributionItem.d.ts +0 -1
  775. package/views/support/MeasurementWorker.js +1 -1
  776. package/views/support/MeasurementWorkerHandle.js +1 -1
  777. package/views/support/measurementUtils.js +1 -1
  778. package/views/support/screenUtils.js +1 -1
  779. package/views/ui/UI.d.ts +2 -2
  780. package/webdoc/GeotriggersInfo.d.ts +3 -3
  781. package/webdoc/IPSInfo.d.ts +3 -3
  782. package/webdoc/Widgets.d.ts +2 -2
  783. package/webdoc/applicationProperties/Search.d.ts +2 -2
  784. package/webdoc/applicationProperties/SearchLayer.d.ts +2 -2
  785. package/webdoc/applicationProperties/SearchLayerField.d.ts +2 -2
  786. package/webdoc/applicationProperties/SearchTable.d.ts +2 -2
  787. package/webdoc/applicationProperties/SearchTableField.d.ts +2 -2
  788. package/webdoc/applicationProperties/Viewing.d.ts +2 -2
  789. package/webdoc/geotriggersInfo/DeviceLocationFeed.d.ts +3 -3
  790. package/webdoc/geotriggersInfo/ExpressionInfo.d.ts +3 -3
  791. package/webdoc/geotriggersInfo/FeatureFenceParameters.d.ts +3 -3
  792. package/webdoc/geotriggersInfo/FeatureFilter.d.ts +3 -3
  793. package/webdoc/geotriggersInfo/FeatureLayerSource.d.ts +3 -3
  794. package/webdoc/geotriggersInfo/Geotrigger.d.ts +3 -3
  795. package/webdoc/geotriggersInfo/GeotriggerNotificationOptions.d.ts +3 -3
  796. package/webdoc/geotriggersInfo/support/typeUtils.d.ts +0 -1
  797. package/webdoc/ips/AppleIPSProperties.d.ts +3 -3
  798. package/webdoc/ips/Configuration.d.ts +3 -3
  799. package/webdoc/ips/GNSSProperties.d.ts +3 -3
  800. package/webdoc/ips/PathSnappingProperties.d.ts +3 -3
  801. package/webdoc/ips/PositioningService.d.ts +3 -3
  802. package/webdoc/ips/SmoothingProperties.d.ts +3 -3
  803. package/webdoc/support/SlideThumbnail.d.ts +3 -3
  804. package/webdoc/support/types.d.ts +0 -1
  805. package/webdoc/widgets/FloorFilter.d.ts +2 -2
  806. package/webdoc/widgets/TimeSlider.d.ts +2 -2
  807. package/webmap/ApplicationProperties.d.ts +2 -2
  808. package/webmap/Bookmark.d.ts +2 -2
  809. package/webmap/InitialViewProperties.d.ts +2 -2
  810. package/webmap/background/ColorBackground.d.ts +2 -2
  811. package/webscene/ApplicationProperties.d.ts +2 -2
  812. package/webscene/Environment.d.ts +2 -2
  813. package/webscene/InitialViewProperties.d.ts +3 -3
  814. package/webscene/Presentation.d.ts +3 -3
  815. package/webscene/Slide.d.ts +4 -4
  816. package/webscene/SlideLegendInfo.d.ts +3 -3
  817. package/webscene/SunLighting.d.ts +2 -2
  818. package/webscene/VirtualLighting.d.ts +2 -2
  819. package/webscene/background/Background.d.ts +2 -2
  820. package/webscene/support/Description.d.ts +3 -3
  821. package/webscene/support/FeatureReference.d.ts +3 -3
  822. package/webscene/support/FeatureReferenceId.d.ts +3 -3
  823. package/webscene/support/LayerReference.d.ts +3 -3
  824. package/webscene/support/SlideElements.d.ts +3 -3
  825. package/webscene/support/SlideEnvironment.d.ts +3 -3
  826. package/webscene/support/SlideGround.d.ts +3 -3
  827. package/webscene/support/SlidePopupInfo.d.ts +3 -3
  828. package/webscene/support/SlideVisibleLayer.d.ts +3 -3
  829. package/webscene/support/Title.d.ts +3 -3
  830. package/widgets/AreaMeasurement2D/AreaMeasurement2DTool.js +1 -1
  831. package/widgets/AreaMeasurement2D.d.ts +1 -0
  832. package/widgets/AreaMeasurement2D.js +1 -1
  833. package/widgets/Attachments/types.d.ts +0 -1
  834. package/widgets/BasemapGallery/support/PortalBasemapsSource.d.ts +2 -2
  835. package/widgets/BasemapLayerList/BasemapLayerListViewModel.d.ts +2 -2
  836. package/widgets/BasemapLayerList/types.d.ts +0 -1
  837. package/widgets/BasemapLayerList.d.ts +1 -0
  838. package/widgets/BasemapLayerList.js +1 -1
  839. package/widgets/BatchAttributeForm/BatchAttributeFormViewModel.d.ts +2 -2
  840. package/widgets/Bookmarks/BookmarksViewModel.d.ts +2 -2
  841. package/widgets/CatalogLayerList/CatalogLayerListViewModel.d.ts +2 -2
  842. package/widgets/CatalogLayerList/types.d.ts +0 -1
  843. package/widgets/CatalogLayerList.d.ts +1 -0
  844. package/widgets/CatalogLayerList.js +1 -1
  845. package/widgets/CoordinateConversion/CoordinateConversionViewModel.d.ts +2 -2
  846. package/widgets/Daylight/DaylightViewModel.d.ts +2 -2
  847. package/widgets/Daylight/types.d.ts +0 -1
  848. package/widgets/DirectionalPad/DirectionalPadViewModel.d.ts +2 -2
  849. package/widgets/DirectionalPad/types.d.ts +0 -1
  850. package/widgets/Directions/DirectionsViewModel.d.ts +2 -2
  851. package/widgets/Directions.d.ts +1 -0
  852. package/widgets/Directions.js +1 -1
  853. package/widgets/DistanceMeasurement2D.d.ts +1 -0
  854. package/widgets/DistanceMeasurement2D.js +1 -1
  855. package/widgets/Editor/EditorViewModel.d.ts +2 -2
  856. package/widgets/Editor/UpdateFeaturesWorkflowData.d.ts +2 -2
  857. package/widgets/Editor/Workflow.d.ts +2 -2
  858. package/widgets/Editor.d.ts +1 -0
  859. package/widgets/Editor.js +1 -1
  860. package/widgets/ElevationProfile/ElevationProfileLine.d.ts +2 -2
  861. package/widgets/FeatureForm/FeatureFormViewModel.d.ts +3 -3
  862. package/widgets/FeatureForm.d.ts +1 -0
  863. package/widgets/FeatureForm.js +1 -1
  864. package/widgets/FeatureTable/Grid/GridViewModel.d.ts +2 -2
  865. package/widgets/FeatureTable/support/ColumnTemplateBase.d.ts +3 -3
  866. package/widgets/FeatureTable/support/EditableColumnTemplateMixin.d.ts +0 -1
  867. package/widgets/FeatureTable/support/TableTemplate.d.ts +3 -3
  868. package/widgets/FeatureTable.d.ts +1 -0
  869. package/widgets/FeatureTable.js +1 -1
  870. package/widgets/FeatureTemplates/FeatureTemplatesViewModel.d.ts +2 -2
  871. package/widgets/Features/FeaturesViewModel.d.ts +2 -2
  872. package/widgets/FloorFilter.d.ts +1 -0
  873. package/widgets/FloorFilter.js +1 -1
  874. package/widgets/Histogram/types.d.ts +0 -1
  875. package/widgets/HistogramRangeSlider/types.d.ts +0 -1
  876. package/widgets/Home/HomeViewModel.d.ts +2 -2
  877. package/widgets/Home.d.ts +1 -2
  878. package/widgets/LayerList/LayerListViewModel.d.ts +2 -2
  879. package/widgets/LayerList.d.ts +1 -0
  880. package/widgets/LayerList.js +1 -1
  881. package/widgets/LinkChartLayoutSwitcher/LinkChartLayoutSwitcherViewModel.d.ts +2 -2
  882. package/widgets/Measurement/types.d.ts +0 -1
  883. package/widgets/OrientedImageryViewer/OrientedImageryViewerViewModel.d.ts +3 -3
  884. package/widgets/OrientedImageryViewer/OrientedImageryViewerViewModel.js +1 -1
  885. package/widgets/OrientedImageryViewer/adapters/sketch/DataCaptureAdapter.js +1 -1
  886. package/widgets/OrientedImageryViewer/adapters/sketch/TriangulatedMeasurementAdapter.js +1 -1
  887. package/widgets/OrientedImageryViewer/adapters/view/MapViewAdapter.js +1 -1
  888. package/widgets/OrientedImageryViewer/adapters/view/SceneViewAdapter.js +1 -1
  889. package/widgets/OrientedImageryViewer/components/ImageOverlays.js +1 -1
  890. package/widgets/OrientedImageryViewer/components/OverlayLayersListViewModel.js +1 -1
  891. package/widgets/OrientedImageryViewer/services/TransformationService.js +5 -0
  892. package/widgets/OrientedImageryViewer/support/dataCaptureUtils.js +5 -0
  893. package/widgets/OrientedImageryViewer/support/geometryUtils.js +5 -0
  894. package/widgets/OrientedImageryViewer/support/typeUtils.js +5 -0
  895. package/widgets/OrientedImageryViewer/types.d.ts +0 -1
  896. package/widgets/Print/CustomTemplate.d.ts +2 -2
  897. package/widgets/Print/PrintViewModel.d.ts +3 -3
  898. package/widgets/ScaleRangeSlider/types.d.ts +0 -1
  899. package/widgets/ScaleRangeSlider.d.ts +1 -0
  900. package/widgets/ScaleRangeSlider.js +1 -1
  901. package/widgets/Search/SearchSource.d.ts +2 -2
  902. package/widgets/Search/SearchViewModel.d.ts +3 -4
  903. package/widgets/ShadowCast/types.d.ts +0 -1
  904. package/widgets/Sketch/SketchViewModel.d.ts +2 -2
  905. package/widgets/Sketch.d.ts +1 -0
  906. package/widgets/Sketch.js +1 -1
  907. package/widgets/Swipe/types.d.ts +0 -1
  908. package/widgets/TableList/TableListViewModel.d.ts +2 -2
  909. package/widgets/TableList.d.ts +1 -0
  910. package/widgets/TableList.js +1 -1
  911. package/widgets/TimeSlider/TimeSliderViewModel.d.ts +2 -2
  912. package/widgets/TimeSlider.d.ts +1 -0
  913. package/widgets/TimeSlider.js +1 -1
  914. package/widgets/Track/types.d.ts +0 -1
  915. package/widgets/UtilityNetworkAssociations.d.ts +1 -0
  916. package/widgets/UtilityNetworkAssociations.js +1 -1
  917. package/widgets/UtilityNetworkTrace/UtilityNetworkTraceViewModel.d.ts +2 -2
  918. package/widgets/UtilityNetworkTrace.d.ts +1 -0
  919. package/widgets/UtilityNetworkTrace.js +1 -1
  920. package/widgets/UtilityNetworkValidateTopology.d.ts +1 -0
  921. package/widgets/UtilityNetworkValidateTopology.js +1 -1
  922. package/widgets/ValuePicker/types.d.ts +0 -1
  923. package/widgets/ValuePicker.d.ts +1 -0
  924. package/widgets/ValuePicker.js +1 -1
  925. package/widgets/Weather/types.d.ts +0 -1
  926. package/widgets/Widget.d.ts +3 -3
  927. package/widgets/support/GeolocationPositioning.d.ts +2 -2
  928. package/widgets/support/GridControls/GridControlsViewModel.d.ts +2 -2
  929. package/widgets/support/GridControls/types.d.ts +0 -1
  930. package/widgets/support/forms/types.d.ts +0 -1
  931. package/widgets/types.d.ts +1 -2
  932. package/assets/esri/core/workers/chunks/00e135dc1b4cb024973d.js +0 -1
  933. package/assets/esri/core/workers/chunks/03da31c7635d077e8d99.js +0 -1
  934. package/assets/esri/core/workers/chunks/185c97bc63ce546995ce.js +0 -1
  935. package/assets/esri/core/workers/chunks/1a13b472e0cf9f88e8de.js +0 -1
  936. package/assets/esri/core/workers/chunks/1a62c456e791c82050fe.js +0 -1
  937. package/assets/esri/core/workers/chunks/25dead73dfc5a4c19285.js +0 -1
  938. package/assets/esri/core/workers/chunks/2767b69085c9f7a1e1af.js +0 -1
  939. package/assets/esri/core/workers/chunks/3606fc5537c4d11b9554.js +0 -1
  940. package/assets/esri/core/workers/chunks/3ad7ec46adecf00ae1c2.js +0 -1
  941. package/assets/esri/core/workers/chunks/3b67aa46a60e35469bf8.js +0 -1
  942. package/assets/esri/core/workers/chunks/43e9eaedf65921b58eb2.js +0 -1
  943. package/assets/esri/core/workers/chunks/4b09d92c51c4619b548a.js +0 -1
  944. package/assets/esri/core/workers/chunks/4caec60ac0a5851730c6.js +0 -1
  945. package/assets/esri/core/workers/chunks/5119e3159617b8e1ea13.js +0 -1
  946. package/assets/esri/core/workers/chunks/52684c2abc9e8ce793cf.js +0 -1
  947. package/assets/esri/core/workers/chunks/532935f420ed5f13c011.js +0 -1
  948. package/assets/esri/core/workers/chunks/5348e4dc55428de9bba7.js +0 -1
  949. package/assets/esri/core/workers/chunks/53a1c6e008287d1f12f0.js +0 -1
  950. package/assets/esri/core/workers/chunks/59d3f3fbae775fd7686e.js +0 -1
  951. package/assets/esri/core/workers/chunks/5a706eecd8a988fae6b7.js +0 -1
  952. package/assets/esri/core/workers/chunks/5ba2bbbb42ef1920579d.js +0 -1
  953. package/assets/esri/core/workers/chunks/5cc731f161012b63c77a.js +0 -1
  954. package/assets/esri/core/workers/chunks/5fa8fe6353dbdda0b06a.js +0 -1
  955. package/assets/esri/core/workers/chunks/5fc6cada83bf8462d54c.js +0 -1
  956. package/assets/esri/core/workers/chunks/6107b58457a70c8de9da.js +0 -1
  957. package/assets/esri/core/workers/chunks/654eef3ad30f34c42e12.js +0 -1
  958. package/assets/esri/core/workers/chunks/7130b09300032d3a5925.js +0 -1
  959. package/assets/esri/core/workers/chunks/7a1ec6ac88d974cc5074.js +0 -1
  960. package/assets/esri/core/workers/chunks/7f76566d9b3801742387.js +0 -1
  961. package/assets/esri/core/workers/chunks/7f7c4ffbdf7b20dc7a54.js +0 -1
  962. package/assets/esri/core/workers/chunks/81e395a93c67749c6487.js +0 -1
  963. package/assets/esri/core/workers/chunks/8deae3a426eceae73186.js +0 -1
  964. package/assets/esri/core/workers/chunks/97ad3eb25ad003c16148.js +0 -1
  965. package/assets/esri/core/workers/chunks/9919b3c345785e910c38.js +0 -1
  966. package/assets/esri/core/workers/chunks/a4ee92867ad5cde25aed.js +0 -1
  967. package/assets/esri/core/workers/chunks/a56a5e00964d4cd59a66.js +0 -1
  968. package/assets/esri/core/workers/chunks/a774b4fc7df801503bea.js +0 -1
  969. package/assets/esri/core/workers/chunks/ab3e457c82fa9bd0203f.js +0 -1
  970. package/assets/esri/core/workers/chunks/ac0949ea3d2cf3eb7383.js +0 -1
  971. package/assets/esri/core/workers/chunks/af3d4eba6fe24db3ceba.js +0 -1
  972. package/assets/esri/core/workers/chunks/b1015e1f25b60c08d2cf.js +0 -1
  973. package/assets/esri/core/workers/chunks/b1085fa91724e2d3b24f.js +0 -1
  974. package/assets/esri/core/workers/chunks/b48b0f512a1cd7226bdc.js +0 -1
  975. package/assets/esri/core/workers/chunks/bbb409e54db77bfabdee.js +0 -1
  976. package/assets/esri/core/workers/chunks/c0265669fb616f052b65.js +0 -1
  977. package/assets/esri/core/workers/chunks/c18a2948ae3cb527d8bb.js +0 -1
  978. package/assets/esri/core/workers/chunks/d3c69c9cb3d9c3f5c67a.js +0 -1
  979. package/assets/esri/core/workers/chunks/d477def8bfd8482596d1.js +0 -1
  980. package/assets/esri/core/workers/chunks/d4f4c0201d8b641709c0.js +0 -1
  981. package/assets/esri/core/workers/chunks/dd30c1f5da0af72becd1.js +0 -1
  982. package/assets/esri/core/workers/chunks/dedd9d47ccc019ffc484.js +0 -1
  983. package/assets/esri/core/workers/chunks/dfef6e3d7bbf099de498.js +0 -1
  984. package/assets/esri/core/workers/chunks/ecf7d34b37ce6f0877af.js +0 -1
  985. package/assets/esri/core/workers/chunks/f3fdf9970b3c7acd071d.js +0 -1
  986. package/layers/support/ElevationTileData.d.ts +0 -32
  987. package/rest/geoprocessor/execute.d.ts +0 -6
  988. package/views/2d/engine/imagery/BrushVectorField.js +0 -5
  989. package/views/3d/analysis/AreaMeasurement/support/utils.js +0 -5
  990. package/views/3d/analysis/VolumeMeasurement/volumeMeasurementUtils.js +0 -5
  991. package/widgets/OrientedImageryViewer/dataCaptureUtils.js +0 -5
  992. /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"../../../../core/has.js";import{disposeMaybe as e,destroyMaybe as i}from"../../../../core/maybe.js";import{property as r,subclass as o}from"../../../../core/accessorSupport/decorators.js";import{multiply as s,fromTranslation as n}from"../../../../core/libs/gl-matrix-2/math/mat4.js";import{create as h}from"../../../../core/libs/gl-matrix-2/factories/mat4f64.js";import{set as u,sub as a}from"../../../../core/libs/gl-matrix-2/math/vec3.js";import{create as p}from"../../../../core/libs/gl-matrix-2/factories/vec3f64.js";import{RenderCategory as c}from"../../webgl.js";import{debugFlags as f}from"../../support/debugFlags.js";import{glLayout as d}from"../../support/buffer/glUtil.js";import{newLayout as _}from"../../support/buffer/InterleavedLayout.js";import l from"../../webgl/RenderNode.js";import{Pos2Locations as m}from"./DefaultVertexBufferLayouts.js";import{VertexArrayObject as g}from"./VertexArrayObject.js";import{TaskPriority as x}from"../../../support/Scheduler.js";import{Yield as v}from"../../../support/Yield.js";import{BufferObject as b}from"../../../webgl/BufferObject.js";import{DataType as w,PixelType as y}from"../../../webgl/enums.js";import{makePipelineState as T,defaultColorWrite as j}from"../../../webgl/renderState.js";import{Sync as P}from"../../../webgl/Sync.js";import C from"../../../webgl/Texture.js";import{TextureDescriptor as B}from"../../../webgl/TextureDescriptor.js";import{fromLayout as O}from"../../../webgl/VertexAttributeLocations.js";import{VertexBuffer as D}from"../../../webgl/VertexBuffer.js";let M=class extends l{constructor(t){super(t),this.category=c.COMPOSITE,this._debugVao=null,this._debugVaoLength=0,this.readyToRun=!1,this.done=!0,this._start=!1,this._origin=p(),this._textureWidth=256,this._uploadBuffer=new Float32Array(3*this._textureWidth),this._counter=0,this._width=0,this._height=0,this._pipeline=T({colorWrite:j}),this._format=0}initialize(){const t=this.view.resourceController.scheduler.registerTask(x.GRAPHICS_CORE,this);this.addHandles(t),this.produces="disabled",this.consumes.required=[this.category],this.formatOverride&&(this._format=this.formatOverride)}destroy(){this._program=e(this._program),this._debugProgram=e(this._debugProgram),this._debugVao=e(this._debugVao),this._sync=i(this._sync),this._pixelBuffer=e(this._pixelBuffer),this._texture=e(this._texture)}precompile(){this._ensureProgram(this.renderingContext)}render(t){const e=t.find(({name:t})=>t===this.category),i=this.renderingContext,r=this.gl,o=e.getTexture(r.DEPTH_STENCIL_ATTACHMENT),s=this.view.stage?.renderer.fboCache;if(!o||!s||this._sync||!this._start)return e;this._start=!1,this.produces=f.OCCLUSION_QUERY_DEBUG_PIXEL?this.category:"disabled";const n=s.acquire(this._width,this._height,"hud visibility",10);i.bindFramebuffer(n.fbo),i.setPipelineState(this._pipeline);const h=this._ensureProgram(i);return i.useProgram(h),F(h,this.camera,this._origin),i.bindTexture(o,0),h.setUniform1i("depthTex",0),i.bindTexture(this._texture,1),h.setUniform1i("positionTex",1),h.setUniform1i("count",this._counter),i.screen.draw(),0===this._format&&(this._format=6403===r.getParameter(r.IMPLEMENTATION_COLOR_READ_FORMAT)&&r.getParameter(r.IMPLEMENTATION_COLOR_READ_TYPE)===w.FLOAT?6403:6408),this._pixelBuffer??=b.createPixelPack(i,r.STREAM_READ),this._pixelBuffer.setSize(this._width*this._height*(6403===this._format?4:16)),i.bindBuffer(this._pixelBuffer),r.readPixels(0,0,this._width,this._height,this._format,w.FLOAT,0),i.unbindBuffer(35051),i.bindFramebuffer(null),n.release(),this._sync=new P(r),setTimeout(()=>this.readyToRun=!0,0),e}runTask(){if(this._sync&&this._pixelBuffer){try{if(!this._sync.poll())return v}catch(t){return this.readyToRun=!1,void(this._sync=i(this._sync))}this.readyToRun=!1,this._sync=i(this._sync),this._cpuBuffer=new Float32Array(this._width*this._height*(6403===this._format?1:4)),this._pixelBuffer.getSubData(this._cpuBuffer),this.done=!0}else this.readyToRun=!1}cancel(){this._start=!1,this._sync=i(this._sync)}init(t,e){this.cancel();const i=this._textureWidth;if(this._width=i,this._height=Math.ceil(t/i),this._counter=0,this._texture?.dispose(),0===this._height)return;const r=new B(this._width,this._height);r.pixelFormat=6407,r.dataType=y.FLOAT,r.samplingMode=9728,this._texture=new C(this.renderingContext,r),this.done=!1,u(this._origin,Math.fround(e[0]),Math.fround(e[1]),Math.fround(e[2]))}addPosition(t){const e=this._width;if(this._counter>=e*this._height)return-1;const i=this._counter%e;return a(L,t,this._origin),this._uploadBuffer[3*i+0]=L[0],this._uploadBuffer[3*i+1]=L[1],this._uploadBuffer[3*i+2]=L[2],i===e-1&&this._flush(),this._counter++}start(){if(0===this._width||0===this._height)return void(this.done=!0);const t=this._width;this._counter%t>0&&this._flush(),this.produces=this.category,this._start=!0,this.requestRender(1)}getOcclusion(t){return this._cpuBuffer?.[6403===this._format?t:4*t]??-1}get usedMemory(){return(this._texture?.usedMemory??0)+(this._pixelBuffer?.usedMemory??0)+4*(this._uploadBuffer?.length??0)+4*(this._cpuBuffer?.length??0)}_flush(){const t=this._width,e=Math.floor(this._counter/t);this._texture?.updateData(0,0,e,t,1,this._uploadBuffer)}_ensureProgram(t){return this._program??=t.programCache.acquire(R,E,m),this._program}_ensureDebugProgram(t){return this._debugProgram??=t.programCache.acquire(V,A,z),this._debugProgram}_ensureDebugVao(t,i){if(!this._debugVao||this._debugVaoLength<i){const r=new Float32Array(i);for(let t=0;t<i;t++)r[t]=t;this._debugVao=e(this._debugVao),this._debugVao=new g(t,new D(t,I,r))}return this._debugVao}};t([r()],M.prototype,"category",void 0),t([r()],M.prototype,"formatOverride",void 0),t([r()],M.prototype,"readyToRun",void 0),t([r()],M.prototype,"done",void 0),M=t([o("esri.views.3d.webgl-engine.lib.GPUPointOcclusionQuery")],M);const V="#version 300 es\nprecision highp float;\nprecision highp int;\n\nin highp float componentIndex;\n\nuniform highp mat4 proj;\nuniform highp mat4 view;\n\nuniform highp sampler2D positionTex;\n\nvoid main() {\n int width = textureSize(positionTex, 0).x;\n int u = int(componentIndex) % width;\n int v = int(componentIndex) / width;\n\n vec4 posWorld = vec4(texelFetch(positionTex, ivec2(u, v), 0).rgb, 1.0);\n vec4 posView = view * posWorld;\n vec4 projected = proj * posView;\n\n gl_Position = projected;\n gl_PointSize = 1.0;\n}",A="#version 300 es\nout highp vec4 fragColor;\nuniform lowp vec4 color;\nvoid main() {\n fragColor = color;\n}\n",R="#version 300 es\nprecision highp float;\nin vec2 position;\n\nvoid main() {\n gl_Position = vec4(position, 0.0, 1.0);\n}",E="#version 300 es\nprecision highp float;\nout highp vec4 fragColor;\n\nuniform highp mat4 proj;\nuniform highp mat4 view;\n\nuniform highp int count;\n\nuniform highp sampler2D depthTex;\nuniform highp sampler2D positionTex;\n\nfloat linearizeDepth(float depth) {\n float depthNdc = depth * 2.0 - 1.0;\n float c1 = proj[3][2];\n float c2 = proj[2][2];\n return -c1 / (depthNdc + c2 + 1e-7);\n}\n\nvoid main() {\n int u = int(floor(gl_FragCoord.x));\n int v = int(floor(gl_FragCoord.y));\n if (u + v * textureSize(positionTex, 0).x >= count) {\n fragColor = vec4(-1);\n return;\n }\n vec4 posWorld = vec4(texelFetch(positionTex, ivec2(u, v), 0).rgb, 1.0);\n vec4 posView = view * posWorld;\n vec4 projected = proj * posView;\n\n vec3 clipPos = projected.xyz / projected.w;\n\n if (clipPos.x < -1.0 || clipPos.x > 1.0 || clipPos.y < -1.0 || clipPos.y > 1.0) {\n fragColor = vec4(-1);\n return;\n }\n\n vec3 uvDepth = 0.5 * clipPos + vec3(0.5);\n\n float depth = texture(depthTex, uvDepth.xy).r;\n\n if (uvDepth.z <= depth) {\n fragColor = vec4(0);\n return;\n }\n\n fragColor = vec4(linearizeDepth(depth) - linearizeDepth(uvDepth.z));\n}\n";function F(t,e,i){s(S,e.viewMatrix,n(S,i)),t.setUniformMatrix4fv("view",S),t.setUniformMatrix4fv("proj",e.projectionMatrix)}const L=p(),S=h(),I=d(_().f32("componentIndex")),z=O(I);export{M as GPUPointOcclusionQuery};
5
+ import{__decorate as t}from"tslib";import"../../../../core/has.js";import{disposeMaybe as e,destroyMaybe as i}from"../../../../core/maybe.js";import{property as r,subclass as o}from"../../../../core/accessorSupport/decorators.js";import{multiply as s,fromTranslation as n}from"../../../../core/libs/gl-matrix-2/math/mat4.js";import{create as h}from"../../../../core/libs/gl-matrix-2/factories/mat4f64.js";import{set as u,sub as a}from"../../../../core/libs/gl-matrix-2/math/vec3.js";import{create as p}from"../../../../core/libs/gl-matrix-2/factories/vec3f64.js";import{RenderNodeOutput as c}from"../../webgl.js";import{debugFlags as f}from"../../support/debugFlags.js";import{glLayout as d}from"../../support/buffer/glUtil.js";import{newLayout as _}from"../../support/buffer/InterleavedLayout.js";import l from"../../webgl/RenderNode.js";import{Pos2Locations as m}from"./DefaultVertexBufferLayouts.js";import{VertexArrayObject as g}from"./VertexArrayObject.js";import{TaskPriority as x}from"../../../support/Scheduler.js";import{Yield as v}from"../../../support/Yield.js";import{BufferObject as b}from"../../../webgl/BufferObject.js";import{DataType as w,PixelType as y}from"../../../webgl/enums.js";import{makePipelineState as T,defaultColorWrite as j}from"../../../webgl/renderState.js";import{Sync as P}from"../../../webgl/Sync.js";import C from"../../../webgl/Texture.js";import{TextureDescriptor as B}from"../../../webgl/TextureDescriptor.js";import{fromLayout as O}from"../../../webgl/VertexAttributeLocations.js";import{VertexBuffer as D}from"../../../webgl/VertexBuffer.js";let M=class extends l{constructor(t){super(t),this.category=c.COMPOSITE,this._debugVao=null,this._debugVaoLength=0,this.readyToRun=!1,this.done=!0,this._start=!1,this._origin=p(),this._textureWidth=256,this._uploadBuffer=new Float32Array(3*this._textureWidth),this._counter=0,this._width=0,this._height=0,this._pipeline=T({colorWrite:j}),this._format=0}initialize(){const t=this.view.resourceController.scheduler.registerTask(x.GRAPHICS_CORE,this);this.addHandles(t),this.produces="disabled",this.consumes.required=[this.category],this.formatOverride&&(this._format=this.formatOverride)}destroy(){this._program=e(this._program),this._debugProgram=e(this._debugProgram),this._debugVao=e(this._debugVao),this._sync=i(this._sync),this._pixelBuffer=e(this._pixelBuffer),this._texture=e(this._texture)}precompile(){this._ensureProgram(this.renderingContext)}render(t){const e=t.find(({name:t})=>t===this.category),i=this.renderingContext,r=this.gl,o=e.getTexture(r.DEPTH_STENCIL_ATTACHMENT),s=this.view.stage?.renderer.fboCache;if(!o||!s||this._sync||!this._start)return e;this._start=!1,this.produces=f.OCCLUSION_QUERY_DEBUG_PIXEL?this.category:"disabled";const n=s.acquire(this._width,this._height,"hud visibility",10);i.bindFramebuffer(n.fbo),i.setPipelineState(this._pipeline);const h=this._ensureProgram(i);return i.useProgram(h),F(h,this.camera,this._origin),i.bindTexture(o,0),h.setUniform1i("depthTex",0),i.bindTexture(this._texture,1),h.setUniform1i("positionTex",1),h.setUniform1i("count",this._counter),i.screen.draw(),0===this._format&&(this._format=6403===r.getParameter(r.IMPLEMENTATION_COLOR_READ_FORMAT)&&r.getParameter(r.IMPLEMENTATION_COLOR_READ_TYPE)===w.FLOAT?6403:6408),this._pixelBuffer??=b.createPixelPack(i,r.STREAM_READ),this._pixelBuffer.setSize(this._width*this._height*(6403===this._format?4:16)),i.bindBuffer(this._pixelBuffer),r.readPixels(0,0,this._width,this._height,this._format,w.FLOAT,0),i.unbindBuffer(35051),i.bindFramebuffer(null),n.release(),this._sync=new P(r),setTimeout(()=>this.readyToRun=!0,0),e}runTask(){if(this._sync&&this._pixelBuffer){try{if(!this._sync.poll())return v}catch(t){return this.readyToRun=!1,void(this._sync=i(this._sync))}this.readyToRun=!1,this._sync=i(this._sync),this._cpuBuffer=new Float32Array(this._width*this._height*(6403===this._format?1:4)),this._pixelBuffer.getSubData(this._cpuBuffer),this.done=!0}else this.readyToRun=!1}cancel(){this._start=!1,this._sync=i(this._sync)}init(t,e){this.cancel();const i=this._textureWidth;if(this._width=i,this._height=Math.ceil(t/i),this._counter=0,this._texture?.dispose(),0===this._height)return;const r=new B(this._width,this._height);r.pixelFormat=6407,r.dataType=y.FLOAT,r.samplingMode=9728,this._texture=new C(this.renderingContext,r),this.done=!1,u(this._origin,Math.fround(e[0]),Math.fround(e[1]),Math.fround(e[2]))}addPosition(t){const e=this._width;if(this._counter>=e*this._height)return-1;const i=this._counter%e;return a(L,t,this._origin),this._uploadBuffer[3*i+0]=L[0],this._uploadBuffer[3*i+1]=L[1],this._uploadBuffer[3*i+2]=L[2],i===e-1&&this._flush(),this._counter++}start(){if(0===this._width||0===this._height)return void(this.done=!0);const t=this._width;this._counter%t>0&&this._flush(),this.produces=this.category,this._start=!0,this.requestRender(1)}getOcclusion(t){return this._cpuBuffer?.[6403===this._format?t:4*t]??-1}get usedMemory(){return(this._texture?.usedMemory??0)+(this._pixelBuffer?.usedMemory??0)+4*(this._uploadBuffer?.length??0)+4*(this._cpuBuffer?.length??0)}_flush(){const t=this._width,e=Math.floor(this._counter/t);this._texture?.updateData(0,0,e,t,1,this._uploadBuffer)}_ensureProgram(t){return this._program??=t.programCache.acquire(R,E,m),this._program}_ensureDebugProgram(t){return this._debugProgram??=t.programCache.acquire(V,A,z),this._debugProgram}_ensureDebugVao(t,i){if(!this._debugVao||this._debugVaoLength<i){const r=new Float32Array(i);for(let t=0;t<i;t++)r[t]=t;this._debugVao=e(this._debugVao),this._debugVao=new g(t,new D(t,I,r))}return this._debugVao}};t([r()],M.prototype,"category",void 0),t([r()],M.prototype,"formatOverride",void 0),t([r()],M.prototype,"readyToRun",void 0),t([r()],M.prototype,"done",void 0),M=t([o("esri.views.3d.webgl-engine.lib.GPUPointOcclusionQuery")],M);const V="#version 300 es\nprecision highp float;\nprecision highp int;\n\nin highp float componentIndex;\n\nuniform highp mat4 proj;\nuniform highp mat4 view;\n\nuniform highp sampler2D positionTex;\n\nvoid main() {\n int width = textureSize(positionTex, 0).x;\n int u = int(componentIndex) % width;\n int v = int(componentIndex) / width;\n\n vec4 posWorld = vec4(texelFetch(positionTex, ivec2(u, v), 0).rgb, 1.0);\n vec4 posView = view * posWorld;\n vec4 projected = proj * posView;\n\n gl_Position = projected;\n gl_PointSize = 1.0;\n}",A="#version 300 es\nout highp vec4 fragColor;\nuniform lowp vec4 color;\nvoid main() {\n fragColor = color;\n}\n",R="#version 300 es\nprecision highp float;\nin vec2 position;\n\nvoid main() {\n gl_Position = vec4(position, 0.0, 1.0);\n}",E="#version 300 es\nprecision highp float;\nout highp vec4 fragColor;\n\nuniform highp mat4 proj;\nuniform highp mat4 view;\n\nuniform highp int count;\n\nuniform highp sampler2D depthTex;\nuniform highp sampler2D positionTex;\n\nfloat linearizeDepth(float depth) {\n float depthNdc = depth * 2.0 - 1.0;\n float c1 = proj[3][2];\n float c2 = proj[2][2];\n return -c1 / (depthNdc + c2 + 1e-7);\n}\n\nvoid main() {\n int u = int(floor(gl_FragCoord.x));\n int v = int(floor(gl_FragCoord.y));\n if (u + v * textureSize(positionTex, 0).x >= count) {\n fragColor = vec4(-1);\n return;\n }\n vec4 posWorld = vec4(texelFetch(positionTex, ivec2(u, v), 0).rgb, 1.0);\n vec4 posView = view * posWorld;\n vec4 projected = proj * posView;\n\n vec3 clipPos = projected.xyz / projected.w;\n\n if (clipPos.x < -1.0 || clipPos.x > 1.0 || clipPos.y < -1.0 || clipPos.y > 1.0) {\n fragColor = vec4(-1);\n return;\n }\n\n vec3 uvDepth = 0.5 * clipPos + vec3(0.5);\n\n float depth = texture(depthTex, uvDepth.xy).r;\n\n if (uvDepth.z <= depth) {\n fragColor = vec4(0);\n return;\n }\n\n fragColor = vec4(linearizeDepth(depth) - linearizeDepth(uvDepth.z));\n}\n";function F(t,e,i){s(S,e.viewMatrix,n(S,i)),t.setUniformMatrix4fv("view",S),t.setUniformMatrix4fv("proj",e.projectionMatrix)}const L=p(),S=h(),I=d(_().f32("componentIndex")),z=O(I);export{M as GPUPointOcclusionQuery};
@@ -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{watch as e}from"../../../../core/reactiveUtils.js";import{property as s,subclass as i}from"../../../../core/accessorSupport/decorators.js";import{set as a}from"../../../../core/libs/gl-matrix-2/math/vec2.js";import{subtract as r,length as n,scale as o,negate as l,dot as h,squaredLength as m,copy as p,floor as u}from"../../../../core/libs/gl-matrix-2/math/vec3.js";import{create as c,clone as d}from"../../../../core/libs/gl-matrix-2/factories/vec3f64.js";import{set as f}from"../../../../core/libs/gl-matrix-2/math/vec4.js";import{create as _}from"../../../../geometry/support/plane.js";import{fromPoints as g}from"../../../../geometry/support/ray.js";import{Sphere as P}from"../../../../geometry/support/sphere.js";import{RenderCategory as b}from"../../webgl.js";import{GaussianSplatTarget as C}from"../../layers/i3s/Intersector.js";import{GaussianSplatDataStore as v}from"../../support/gaussianSplatting/GaussianSplatDataStore.js";import w from"../../webgl/RenderNode.js";import{IntersectorResult as x}from"./IntersectorResult.js";import{G as y}from"../../../../chunks/GaussianSplat.glsl.js";import{G as S}from"../../../../chunks/GaussianSplatComposition.glsl.js";import{GaussianSplatCompositionTechnique as q}from"../shaders/GaussianSplatCompositionTechnique.js";import{G as j}from"../../../../chunks/GaussianSplatDepthComposition.glsl.js";import{GaussianSplatDepthCompositionTechnique as D}from"../shaders/GaussianSplatDepthCompositionTechnique.js";import{GaussianSplatTechnique as T}from"../shaders/GaussianSplatTechnique.js";import{GaussianSplatTechniqueConfiguration as G}from"../shaders/GaussianSplatTechniqueConfiguration.js";import{DepthStencilAttachment as A,ColorAttachment1 as F,PrimitiveType as R}from"../../../webgl/enums.js";var E;let H=class extends w{static{E=this}constructor(t){super(t),this.gaussianPosition=c(),this.intersectionRayDir=c(),this.intersectionPlane=_(),this._slicePlaneEnabled=!1,this._data=null,this.produces=b.OPAQUE,this.type=0,this.isGround=!1,this.layerViewUid="",this._passParameters=new y,this._compositionPassParameters=new S,this._depthCompositionPassParameters=new j,this._previousCameraPosition=c(),this._previousCameraDirection=c(),this.fadeHelper=null,this._configuration=new G(t.view.state.isGlobal)}async initialize(){this._data=new v(this),this.view.sceneIntersectionHelper.addIntersectionHandler(this),this.addHandles([e(()=>this.view.state.camera,()=>this._onCameraChange())])}precompile(){this._configuration.alphaCutoff=this.view.qualitySettings.gaussianSplat.minimumOpacity,this._configuration.terrainDepthTest=this.bindParameters.terrainDepthTest,this._configuration.fadingEnabled=this.fadeHelper.fadingEnabled,this.techniques.precompile(T,this._configuration),this.techniques.precompile(q),this.techniques.precompile(D)}render(t){const e=t.find(({name:t})=>t===b.OPAQUE);if(this._handleFading(),!this._data.visibleGaussians||!this._data.orderTexture.texture||!this._data.textureAtlas.texture)return e;const s=this.techniques.get(T,this._configuration),i=this.techniques.get(q),a=this.techniques.get(D);if(!s.compiled||!a.compiled||!i.compiled)return this.requestRender(1),e;const{fullWidth:r,fullHeight:n}=this.bindParameters.camera;this._prepareParameters(n,r);const o=this.renderingContext,l=this.fboCache,h=l.acquire(r,n,"gaussian color output"),m=e.getAttachment(A);h.attachDepth(m),this._renderGaussianColorAndDepth(h,s);const p=l.acquire(r,n,this.produces);return this._depthCompositionPassParameters.splatDepth=h.getTexture(F),p.attachDepth(e.getAttachment(A)),o.bindFramebuffer(p.fbo),o.bindTechnique(a,this.bindParameters,this._depthCompositionPassParameters),o.screen.draw(),this._compositionPassParameters.color=e.getTexture(),this._compositionPassParameters.splatColor=h.getTexture(),o.bindFramebuffer(p.fbo),o.bindTechnique(i,this.bindParameters,this._compositionPassParameters),o.screen.draw(),h.release(),p}intersect(t,e,s,i){const{gaussianPosition:a,intersectionRayDir:p,intersectionPlane:u,layerViewUid:_}=this,b=g(s,i);r(p,i,s);const v=1/n(p);o(p,p,v);const w=c();l(w,p),f(u,p[0],p[1],p[2],-h(p,s));const y=new I,S=new I,q=new Array;this._data.visibleGaussianTiles.forEach(r=>{const{maxScale:n}=r,o=r.obb.minimumDistancePlane(u),l=r.obb.maximumDistancePlane(u),c=l<0,f=null!=y.dist&&null!=S.dist&&y.dist<o*v&&S.dist>l*v;if(c||f)return;if(!new P(r.obb.center,r.obb.radius+n).intersectRay(b,null))return;if(!r.obb.intersectRay(s,p,n))return;const{positions:g,squaredScales:C,gaussianAtlasIndices:x}=r,j=x.length;for(let u=0;u<j;u++){const r=3*u;a[0]=g[r]-s[0],a[1]=g[r+1]-s[1],a[2]=g[r+2]-s[2];const n=C[u],o=h(a,p),l=o*o;if(m(a)-l>n)continue;const c=o*v,f=t=>(t.point=t.point?t.point.fill(a[0],a[1],a[2]):d(a),t.dist=c,t.normal=w,t.layerViewUid=_,t);if((null==y.dist||c<y.dist)&&(null==e||e(s,i,c))&&f(y),0!==t.options.store&&(null==S.dist||c>S.dist)&&(null==e||e(s,i,c))&&f(S),2===t.options.store&&(null==e||e(s,i,c))){const t=new I;q.push(f(t))}}});const j=(t,e)=>{const{layerViewUid:s}=e,i=new C(e.point,s);t.set(0,i,e.dist,e.normal)};if(M(y)){const e=t.results.min;(null==e.distance||y.dist<e.distance)&&j(e,y)}if(M(S)&&0!==t.options.store){const e=t.results.max;(null==e.distance||S.dist>e.distance)&&j(e,S)}if(2===t.options.store)for(const r of q){const e=new x(b);j(e,r),t.results.all.push(e)}}get slicePlaneEnabled(){return this._slicePlaneEnabled}set slicePlaneEnabled(t){this._slicePlaneEnabled!==t&&(this._slicePlaneEnabled=t,this.requestRender(1))}get data(){return this._data}destroy(){this._data.destroy(),super.destroy()}_onCameraChange(){const t=this.view.state.camera.eye,e=this.view.state.camera.ray.direction,s=.001;(Math.abs(t[0]-this._previousCameraPosition[0])>s||Math.abs(t[1]-this._previousCameraPosition[1])>s||Math.abs(t[2]-this._previousCameraPosition[2])>s||Math.abs(e[0]-this._previousCameraDirection[0])>s||Math.abs(e[1]-this._previousCameraDirection[1])>s||Math.abs(e[2]-this._previousCameraDirection[2])>s)&&(p(this._previousCameraPosition,t),p(this._previousCameraDirection,e),this._data.requestSort())}_prepareParameters(t,e){this._passParameters.splatOrder=this._data.orderTexture.texture,this._passParameters.splatFading=this._data.fadingTexture.texture,this._passParameters.splatAtlas=this._data.textureAtlas.texture;const s=Math.tan(.5*this.camera.fovY),i=s/t*e;a(this._passParameters.tanFov,i,s),this._passParameters.focalLength=t/(2*s);const r=this.view.qualitySettings.gaussianSplat.minimumSplatPixelRadius;this._passParameters.minSplatRadius=r*Math.sqrt(e*t)/Math.sqrt(2073600),this._prepareHighPrecisionCameraPosition()}_renderGaussianColorAndDepth(t,e){const s=this.renderingContext;t.acquireColor(F,8,"gaussian depth output"),s.bindFramebuffer(t.fbo),s.setClearColor(0,0,0,0),s.clear(16384),this.renderingContext.bindTechnique(e,this.bindParameters,this._passParameters),this.renderingContext.drawArraysInstanced(R.TRIANGLE_STRIP,0,4,this._data.visibleGaussians)}_prepareHighPrecisionCameraPosition(){o(this._passParameters.tileCameraPosition,this.camera.eye,1/E.tileSize),u(this._passParameters.tileCameraPosition,this._passParameters.tileCameraPosition),o(this._passParameters.cameraDelta,this._passParameters.tileCameraPosition,E.tileSize),r(this._passParameters.cameraDelta,this.camera.eye,this._passParameters.cameraDelta)}_handleFading(){if(0===this.fadeHelper.numFadingTiles)return void(this._previousFrameStart=null);this._previousFrameStart??=this.view.stage.renderer.renderContext.time;const t=this.view.stage?.renderer.renderContext.time-this._previousFrameStart;this.fadeHelper.updateAllTileFading(t),this._previousFrameStart=this.view.stage.renderer.renderContext.time,this._data.fadingTexture.updateTexture(this._data.textureAtlas.pageAllocator.pageCount)}static{this.tileSize=2.048}};function M(t){return null!=t.dist&&null!=t.point}t([s({constructOnly:!0})],H.prototype,"fadeHelper",void 0),H=E=t([i("esri.views.3d.webgl-engine.lib.GaussianSplatRenderNode")],H);class I{constructor(){this.point=null,this.dist=null,this.normal=null,this.layerViewUid=""}}export{H as GaussianSplatRenderNode};
5
+ import{__decorate as t}from"tslib";import{watch as e}from"../../../../core/reactiveUtils.js";import{property as s,subclass as i}from"../../../../core/accessorSupport/decorators.js";import{set as a}from"../../../../core/libs/gl-matrix-2/math/vec2.js";import{subtract as r,length as n,scale as o,negate as l,dot as h,squaredLength as m,copy as p,floor as u}from"../../../../core/libs/gl-matrix-2/math/vec3.js";import{create as c,clone as d}from"../../../../core/libs/gl-matrix-2/factories/vec3f64.js";import{set as f}from"../../../../core/libs/gl-matrix-2/math/vec4.js";import{create as _}from"../../../../geometry/support/plane.js";import{fromPoints as g}from"../../../../geometry/support/ray.js";import{Sphere as P}from"../../../../geometry/support/sphere.js";import{RenderNodeOutput as b}from"../../webgl.js";import{GaussianSplatTarget as C}from"../../layers/i3s/Intersector.js";import{GaussianSplatDataStore as v}from"../../support/gaussianSplatting/GaussianSplatDataStore.js";import w from"../../webgl/RenderNode.js";import{IntersectorResult as x}from"./IntersectorResult.js";import{G as y}from"../../../../chunks/GaussianSplat.glsl.js";import{G as S}from"../../../../chunks/GaussianSplatComposition.glsl.js";import{GaussianSplatCompositionTechnique as q}from"../shaders/GaussianSplatCompositionTechnique.js";import{G as j}from"../../../../chunks/GaussianSplatDepthComposition.glsl.js";import{GaussianSplatDepthCompositionTechnique as D}from"../shaders/GaussianSplatDepthCompositionTechnique.js";import{GaussianSplatTechnique as T}from"../shaders/GaussianSplatTechnique.js";import{GaussianSplatTechniqueConfiguration as G}from"../shaders/GaussianSplatTechniqueConfiguration.js";import{DepthStencilAttachment as A,ColorAttachment1 as F,PrimitiveType as R}from"../../../webgl/enums.js";var E;let H=class extends w{static{E=this}constructor(t){super(t),this.gaussianPosition=c(),this.intersectionRayDir=c(),this.intersectionPlane=_(),this._slicePlaneEnabled=!1,this._data=null,this.produces=b.OPAQUE,this.type=0,this.isGround=!1,this.layerViewUid="",this._passParameters=new y,this._compositionPassParameters=new S,this._depthCompositionPassParameters=new j,this._previousCameraPosition=c(),this._previousCameraDirection=c(),this.fadeHelper=null,this._configuration=new G(t.view.state.isGlobal)}async initialize(){this._data=new v(this),this.view.sceneIntersectionHelper.addIntersectionHandler(this),this.addHandles([e(()=>this.view.state.camera,()=>this._onCameraChange())])}precompile(){this._configuration.alphaCutoff=this.view.qualitySettings.gaussianSplat.minimumOpacity,this._configuration.terrainDepthTest=this.bindParameters.terrainDepthTest,this._configuration.fadingEnabled=this.fadeHelper.fadingEnabled,this.techniques.precompile(T,this._configuration),this.techniques.precompile(q),this.techniques.precompile(D)}render(t){const e=t.find(({name:t})=>t===b.OPAQUE);if(this._handleFading(),!this._data.visibleGaussians||!this._data.orderTexture.texture||!this._data.textureAtlas.texture)return e;const s=this.techniques.get(T,this._configuration),i=this.techniques.get(q),a=this.techniques.get(D);if(!s.compiled||!a.compiled||!i.compiled)return this.requestRender(1),e;const{fullWidth:r,fullHeight:n}=this.bindParameters.camera;this._prepareParameters(n,r);const o=this.renderingContext,l=this.fboCache,h=l.acquire(r,n,"gaussian color output"),m=e.getAttachment(A);h.attachDepth(m),this._renderGaussianColorAndDepth(h,s);const p=l.acquire(r,n,this.produces);return this._depthCompositionPassParameters.splatDepth=h.getTexture(F),p.attachDepth(e.getAttachment(A)),o.bindFramebuffer(p.fbo),o.bindTechnique(a,this.bindParameters,this._depthCompositionPassParameters),o.screen.draw(),this._compositionPassParameters.color=e.getTexture(),this._compositionPassParameters.splatColor=h.getTexture(),o.bindFramebuffer(p.fbo),o.bindTechnique(i,this.bindParameters,this._compositionPassParameters),o.screen.draw(),h.release(),p}intersect(t,e,s,i){const{gaussianPosition:a,intersectionRayDir:p,intersectionPlane:u,layerViewUid:_}=this,b=g(s,i);r(p,i,s);const v=1/n(p);o(p,p,v);const w=c();l(w,p),f(u,p[0],p[1],p[2],-h(p,s));const y=new I,S=new I,q=new Array;this._data.visibleGaussianTiles.forEach(r=>{const{maxScale:n}=r,o=r.obb.minimumDistancePlane(u),l=r.obb.maximumDistancePlane(u),c=l<0,f=null!=y.dist&&null!=S.dist&&y.dist<o*v&&S.dist>l*v;if(c||f)return;if(!new P(r.obb.center,r.obb.radius+n).intersectRay(b,null))return;if(!r.obb.intersectRay(s,p,n))return;const{positions:g,squaredScales:C,gaussianAtlasIndices:x}=r,j=x.length;for(let u=0;u<j;u++){const r=3*u;a[0]=g[r]-s[0],a[1]=g[r+1]-s[1],a[2]=g[r+2]-s[2];const n=C[u],o=h(a,p),l=o*o;if(m(a)-l>n)continue;const c=o*v,f=t=>(t.point=t.point?t.point.fill(a[0],a[1],a[2]):d(a),t.dist=c,t.normal=w,t.layerViewUid=_,t);if((null==y.dist||c<y.dist)&&(null==e||e(s,i,c))&&f(y),0!==t.options.store&&(null==S.dist||c>S.dist)&&(null==e||e(s,i,c))&&f(S),2===t.options.store&&(null==e||e(s,i,c))){const t=new I;q.push(f(t))}}});const j=(t,e)=>{const{layerViewUid:s}=e,i=new C(e.point,s);t.set(0,i,e.dist,e.normal)};if(M(y)){const e=t.results.min;(null==e.distance||y.dist<e.distance)&&j(e,y)}if(M(S)&&0!==t.options.store){const e=t.results.max;(null==e.distance||S.dist>e.distance)&&j(e,S)}if(2===t.options.store)for(const r of q){const e=new x(b);j(e,r),t.results.all.push(e)}}get slicePlaneEnabled(){return this._slicePlaneEnabled}set slicePlaneEnabled(t){this._slicePlaneEnabled!==t&&(this._slicePlaneEnabled=t,this.requestRender(1))}get data(){return this._data}destroy(){this._data.destroy(),super.destroy()}_onCameraChange(){const t=this.view.state.camera.eye,e=this.view.state.camera.ray.direction,s=.001;(Math.abs(t[0]-this._previousCameraPosition[0])>s||Math.abs(t[1]-this._previousCameraPosition[1])>s||Math.abs(t[2]-this._previousCameraPosition[2])>s||Math.abs(e[0]-this._previousCameraDirection[0])>s||Math.abs(e[1]-this._previousCameraDirection[1])>s||Math.abs(e[2]-this._previousCameraDirection[2])>s)&&(p(this._previousCameraPosition,t),p(this._previousCameraDirection,e),this._data.requestSort())}_prepareParameters(t,e){this._passParameters.splatOrder=this._data.orderTexture.texture,this._passParameters.splatFading=this._data.fadingTexture.texture,this._passParameters.splatAtlas=this._data.textureAtlas.texture;const s=Math.tan(.5*this.camera.fovY),i=s/t*e;a(this._passParameters.tanFov,i,s),this._passParameters.focalLength=t/(2*s);const r=this.view.qualitySettings.gaussianSplat.minimumSplatPixelRadius;this._passParameters.minSplatRadius=r*Math.sqrt(e*t)/Math.sqrt(2073600),this._prepareHighPrecisionCameraPosition()}_renderGaussianColorAndDepth(t,e){const s=this.renderingContext;t.acquireColor(F,8,"gaussian depth output"),s.bindFramebuffer(t.fbo),s.setClearColor(0,0,0,0),s.clear(16384),this.renderingContext.bindTechnique(e,this.bindParameters,this._passParameters),this.renderingContext.drawArraysInstanced(R.TRIANGLE_STRIP,0,4,this._data.visibleGaussians)}_prepareHighPrecisionCameraPosition(){o(this._passParameters.tileCameraPosition,this.camera.eye,1/E.tileSize),u(this._passParameters.tileCameraPosition,this._passParameters.tileCameraPosition),o(this._passParameters.cameraDelta,this._passParameters.tileCameraPosition,E.tileSize),r(this._passParameters.cameraDelta,this.camera.eye,this._passParameters.cameraDelta)}_handleFading(){if(0===this.fadeHelper.numFadingTiles)return void(this._previousFrameStart=null);this._previousFrameStart??=this.view.stage.renderer.renderContext.time;const t=this.view.stage?.renderer.renderContext.time-this._previousFrameStart;this.fadeHelper.updateAllTileFading(t),this._previousFrameStart=this.view.stage.renderer.renderContext.time,this._data.fadingTexture.updateTexture(this._data.textureAtlas.pageAllocator.pageCount)}static{this.tileSize=2.048}};function M(t){return null!=t.dist&&null!=t.point}t([s({constructOnly:!0})],H.prototype,"fadeHelper",void 0),H=E=t([i("esri.views.3d.webgl-engine.lib.GaussianSplatRenderNode")],H);class I{constructor(){this.point=null,this.dist=null,this.normal=null,this.layerViewUid=""}}export{H as GaussianSplatRenderNode};
@@ -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{update as t}from"../../../../core/arrayUtils.js";import{createTask as r}from"../../../../core/asyncUtils.js";import"../../../../core/has.js";import{clamp as i,lerp as s}from"../../../../core/mathUtils.js";import{removeMaybe as a,abortMaybe as n,destroyMaybe as h,releaseMaybe as o}from"../../../../core/maybe.js";import{throwIfAborted as d}from"../../../../core/promiseUtils.js";import{watch as _,syncAndInitial as l,initial as u,sync as p}from"../../../../core/reactiveUtils.js";import{signal as m}from"../../../../core/signal.js";import{Milliseconds as c}from"../../../../core/time.js";import{property as f,subclass as g}from"../../../../core/accessorSupport/decorators.js";import{equals as b,invert as P,multiply as C}from"../../../../core/libs/gl-matrix-2/math/mat4.js";import{IDENTITY as w,create as T}from"../../../../core/libs/gl-matrix-2/factories/mat4f64.js";import{set as S}from"../../../../core/libs/gl-matrix-2/math/vec4.js";import{ZEROS as E}from"../../../../core/libs/gl-matrix-2/factories/vec4f32.js";import{fromValues as x,ZEROS as A}from"../../../../core/libs/gl-matrix-2/factories/vec4f64.js";import{pruneIndexArrays as D}from"../../../../geometry/support/Indices.js";import{RenderCategory as I,InternalRenderCategory as R}from"../../webgl.js";import{innerAtmosphereFadeStart as y}from"../../environment/atmosphereUtils.js";import{minNearDistanceInMeters as O}from"../../state/NearFarHeuristic.js";import{debugFlags as F}from"../../support/debugFlags.js";import{FBOCache as H,defaultWebGLFBO as v}from"../core/FBOCache.js";import{RenderPassManager as M}from"../core/renderPasses/RenderPassManager.js";import{isColor as N}from"../core/shaderLibrary/ShaderOutput.js";import{distanceFadeEnd as q}from"../core/shaderLibrary/shading/ScreenSpaceConstants.js";import{RenderNodes as G}from"../effects/RenderNodes.js";import{RenderPluginManager as L}from"../effects/RenderPluginManager.js";import{Blit as U}from"../effects/blit/Blit.js";import{maxHighlightsPerChannel as V,renderHighlightBuffer as j}from"../effects/highlight/Highlight.js";import{OITBlend as B}from"../effects/transparency/OITBlend.js";import{AnimationTimer as k}from"./AnimationTimer.js";import{AnimationTimeStep as z}from"./AnimationTimeStep.js";import{BoundingInfo as W}from"./BoundingInfo.js";import{DepthRange as Q}from"./DepthRange.js";import{depthRangeFromScene as Y}from"./depthRangeUtils.js";import{hudFragmentOpacityParameters as Z}from"./hudFragmentOpacityParameters.js";import{MainFramebuffer as J}from"./MainFramebuffer.js";import{RenderContext as K,defaultRenderOccludedMask as X}from"./RenderContext.js";import{RendererBase as $}from"./RendererBase.js";import{setupFeatureDefaults as ee}from"./RenderFeature.js";import{RenderPluginInput as te}from"./RenderPluginInput.js";import{ShadowAccumulator as re}from"./ShadowAccumulator.js";import{ShadowMap as ie}from"./ShadowMap.js";import se from"./SliceHelper.js";import{MergedRenderer as ae}from"../materials/renderers/MergedRenderer.js";import{RenderSceneResult as ne}from"../parts/renderUtils.js";import{RendererPerformanceInfo as he,PerformanceCategory as oe}from"../statistics/RendererPerformanceInfo.js";import{PixelType as de,ColorAttachment1 as _e,ColorAttachment2 as le}from"../../../webgl/enums.js";let ue=class extends ${constructor(e,t,r,i,s,a){super({stage:e}),this._techniques=r,this._rctx=i,this._compositingHelper=s,this._requestRender=a,this._pluginsHas={hudElements:!1,water:!1},this.renderPassManager=new M,this._isRendering=!1,this._inGlobeView=!1,this._backgroundColor=x(0,0,0,1),this._sliceHelper=new se,this.sceneDepthRange=m(Q.Infinite),this._state=m(2),this._hasAnimations=!1,this._animationTimestep=new z,this._loadEdgeViewTask=null,this._edgeViewCallbacks=[],this._reprojectionMatrixVersion=m(0),this._lastFrameTime=c(0),this._renderHiddenTransparentEdges=()=>{},this._pluginInput=new te,this._releaseNormals=e=>{e.some(({name:e})=>"normals"===e)&&this._pluginInput.release("normals")},this._debugNeedsDepth=!1,this._fboCache=new H(i),this._renderStateFeatures=m(ee(e.view.qualityProfile)),this._framebuffer=new J(this.fboCache),this._performanceInfo=new he(this._rctx),this._shadowMap=new ie(this.fboCache,e.viewingMode),this._shadowAccumulator=new re(this.fboCache,r,e,e=>{const t=this.shadowsEnabled;this._shadowMap.enabled=!0,this._ensureBindParametersCamera(e.camera,e.contentCamera),this._plugins.prepareRender(),this._shadowMap.enabled=t},(t,r,i)=>{const s=e.view.qualitySettings.maximumPixelRatio;t.shadowMap.start(t.camera,r,i,!0,s),this._renderShadowCascades(3,t.shadowMap),t.shadowMap.finish(),t.camera.setGLViewport(this._rctx),this._ensureBindParametersCamera(t.camera,t.contentCamera)},a),this._renderContext=new K(this._rctx,this._shadowMap,r),this._nodes=new G(this._renderContext),this._plugins=new L({renderContext:this._renderContext,techniques:r,materials:t,requestRender:a,controller:e,fbos:this.fboCache,isFeatureEnabled:e=>this.isFeatureEnabled(e)}),this._plugins.add(this.renderPassManager),this.addHandles([_(()=>e.view.state.camera,()=>a(),l),_(()=>F.EDGES_SHOW_HIDDEN_TRANSPARENT_EDGES,e=>{this._renderHiddenTransparentEdges=e?()=>this._renderEdges(0):()=>{},a()},u),_(()=>e.view.environment.background?.color,e=>{const t=e?e.toUnitRGBA():A;S(this._backgroundColor,t[0]*t[3],t[1]*t[3],t[2]*t[3],t[3]),a()},l),_(()=>e.view.state.camera.relativeElevation,e=>this._inGlobeView=(e??1/0)>=q,l),_(()=>this._bindParameters.clouds.fadeFactor,()=>{this._bindParameters.fadeLighting(),this._requestRender(2)},p),_(()=>this._bindParameters.clouds.data?.state,()=>a(),p),_(()=>e.view.state.highlights,e=>{this._bindParameters.highlights=e,a()},u)])}destroy(){this._gpuTimerHandle=a(this._gpuTimerHandle),this._nodes.destroy(),this._framebuffer.dispose(),this._shadowMap.dispose(),this._shadowAccumulator.destroy(),this._shadowAccumulator=null,this._loadEdgeViewTask=n(this._loadEdgeViewTask),this._edgeView=h(this._edgeView),this.renderPassManager.dispose(),this._releaseFBOs(),this._disposeOffscreenBuffers(),this._fboCache.destroy(),this._fboCache=null,this._plugins.destroy(),this._plugins=null,this._pluginInput=null,this._blit=null,this._oitBlend=null,this._compositingHelper=null,this._nodes=null,this._framebuffer=null,this._shadowMap=null,this._renderContext=null,this._performanceInfo=null,W.prune(),ae.prune(),D()}get renderContext(){return this._renderContext}get _bindParameters(){return this._renderContext.bind}get _framebufferSize(){return this._framebuffer.size}get performanceInfo(){return this._performanceInfo}updateRenderFeatures(e){this._renderStateFeatures.value=ee(e),this._requestRender()}isFeatureEnabled(e,t=this._state.value){return this._renderStateFeatures.value.get(t,e)??!1}setFeatureEnabled(e,t,r){this._renderStateFeatures.mutate(i=>i.set(t,e,r)),this._requestRender()}get _highQualityTransparency(){return this.isFeatureEnabled(1)}get hasReflections(){return this._pluginsHas.water&&this.isFeatureEnabled(6)}get _hasHighlights(){return this._plugins.produces(8,2,4,19,14,15)}hasHighlight(e){return this._plugins.hasHighlight(e)}get _hasHUDHighlights(){return this._plugins.produces(8,14,15)}get hasSSAO(){return this.isFeatureEnabled(5)&&!this._inGlobeView}get hasSMAA(){return this.isFeatureEnabled(0)}get hasEmitters(){return this._plugins.hasEmitters&&this._hasFloatBufferBlendSupport}get highResolutionAtmosphere(){return this.isFeatureEnabled(4)}get fboCache(){return this._fboCache}_releaseFBOs(){this._bindParameters.ssr.lastFrameColor=o(this._bindParameters.ssr.lastFrameColor),this._bindParameters.terrainDepth=o(this._bindParameters.terrainDepth),this._bindParameters.geometryDepth=o(this._bindParameters.geometryDepth)}_disposeOffscreenBuffers(){this._framebuffer.dispose(),this._disposeBindBuffers()}_disposeBindBuffers(){this._shadowMap.disposeOffscreenBuffers(),this._bindParameters.depth=o(this._bindParameters.depth),this._bindParameters.hudVisibility=o(this._bindParameters.hudVisibility)}get updating(){return this._loadEdgeViewTask&&!this._loadEdgeViewTask.finished||this._edgeView?.updating||this._shadowAccumulator.readyToRun||this._plugins.updating||!this.isCameraFinal}loadEdgeView(){return this._loadEdgeViewTask||(this._loadEdgeViewTask=r(async e=>{const{EdgeView:t}=await import("./edgeRendering/EdgeView.js");d(e);const r=this._edgeView=new t({rctx:this._rctx,renderSR:this.stage.view.renderSpatialReference,viewingMode:this.stage.view.stage.viewingMode,techniques:this._techniques,setNeedsRender:()=>this._requestRender(),schedule:xe(this.stage.view.resourceController)});return this.addHandles(_(()=>r.updating,()=>this._requestRender(),p)),this._requestRender(),this._edgeViewCallbacks.forEach(e=>e(r)),this._edgeViewCallbacks.length=0,r})),this._loadEdgeViewTask.promise}withEdgeView(e){this.loadEdgeView(),null==this._edgeView?this._edgeViewCallbacks.push(e):e(this._edgeView)}get edgeView(){return this._edgeView}get isCameraFinal(){return this._reprojectionMatrixVersion.value>=0&&b(this._bindParameters.ssr.reprojectionMatrix,w)}set _reprojectionMatrix(e){t(this._bindParameters.ssr.reprojectionMatrix,e)&&this._reprojectionMatrixVersion.value++}get shadowsEnabled(){return!!this._shadowMap?.enabled}setParameters(e){const{_shadowMap:t,_bindParameters:r}=this;if(void 0!==e.shadowMap&&this._shadowMap.enabled!==e.shadowMap&&(this._shadowMap.enabled=e.shadowMap,this._requestRender()),void 0!==e.shadowMapMaxCascades&&t.maxCascades!==e.shadowMapMaxCascades&&(t.maxCascades=e.shadowMapMaxCascades,this._requestRender()),e.environment){void 0!==e.environment.weather&&(this._bindParameters.weather=e.environment.weather);const t="virtual"!==e.environment.lighting.type;r.enableFillLights!==t&&(r.enableFillLights=t,this._requestRender())}void 0!==e.shadowCast&&this._shadowAccumulator.setOptions(e.shadowCast)}set slice(e){this._sliceHelper.update(e)&&this._requestRender()}get plugins(){return this._plugins}get _hasFloatBufferBlendSupport(){return this._rctx.driverTest.floatBufferBlend.result}get _oitEnabled(){return this.isFeatureEnabled(2)&&this._hasFloatBufferBlendSupport}commit(e,t){return this._isRendering&&console.warn("Renderer.modify called while rendering"),!!super.commit(e,t,this._plugins.context)&&(this.updateHasFlags(),!0)}rendererAdded(e){this._plugins.add(e)}rendererRemoved(e){this._plugins.remove(e)}get occludedRequiresStencil(){return this.occludedRequiresOccludeeStencil||this.occludedRequiresIntegratedMeshStencil}get occludedRequiresOccludeeStencil(){return this._bindParameters.hasOccludees&&!!(8&this.plugins.renderOccludedFlags)}get occludedRequiresIntegratedMeshStencil(){return this._plugins.produces(0,0)&&this._plugins.produces(0,10)}updateHasFlags(){const has=this._pluginsHas;has.hudElements=this._plugins.produces(0,...Pe),has.water=this._plugins.produces(2,20),this._bindParameters.hasOccludees=this._plugins.hasOccludees,this._requestRender()}updateAnimation(e,t){this._animationTimer??=new k(e.camera,t),this._animationTimer.advance(e.camera,t,this._animationTimeDilation);const r=this._hasAnimations;return this._hasAnimations=this._plugins.updateAnimation(this._animationTimer),this._hasAnimations=this._nodes.updateAnimation(this._animationTimer)||this._hasAnimations,this._hasAnimations!==r&&(this._gpuTimerHandle=r?a(this._gpuTimerHandle):this.performanceInfo.enableGPUPerformanceInfo()),this._hasAnimations}get animationTimestep(){return this._animationTimestep.value}get _animationTimeDilation(){return this._animationTimestep.timeDilation}resetAnimation(){this._animationTimestep.clear()}tick(){this.fboCache.clean()}render(e,t,r,i=!1){try{return this._isRendering=!0,this._render(e,t,r,i)}catch(s){console.error(`Exception during rendering: ${s}`)}finally{this._isRendering=!1}return new ne(this._pluginInput.get(I.FINAL),null)}_render(e,t,r,i){const s=0===r;this.performanceInfo.startFrame(),this.fboCache.frameStart(),this.fboCache.interactive=s,this._disposeBindBuffers();const{camera:a,contentCamera:n,mode:h,alignPixelEnabled:o}=e;this._state.value=h;const d=this._nodes.produces("magnifier-color"),_=this._nodes.produces(I.FINAL);this._renderContext.time=t,this._renderContext.output=0,this._bindParameters.hasEmission=this.hasEmitters,this._bindParameters.oitPass=0,this._bindParameters.alignPixelEnabled=o,this._bindParameters.decorations=!i,this._bindParameters.mainDepth=null;const l=!i||!this._sliceHelper.isDecoration;this._bindParameters.slicePlane=l?this._sliceHelper.plane:null,this._bindParameters.viewshedEnabled=this._nodes.produces(R.VIEWSHED),this._bindParameters.cutFillEnabled=this._nodes.produces(R.CUTFILL_DEPTH),this._renderOverlay(),a.setGLViewport(this._rctx);const u=this._framebuffer,p=u.initialize(a.fullWidth,a.fullHeight,this._backgroundColor,this._bindParameters.hasEmission);this.hasReflections?(p?.setName("last frame color"),this._bindParameters.ssr.lastFrameColor=p):p?.release(),this._ensureBindParametersCamera(a,n),this._updateHUDOccludedFragmentOpacity(h,t),this._plugins.sortTestsTransparentOrderedSlots(we),this._plugins.prepareRender(),this._bindParameters.shadowHighlightsVisible=this._needsShadowHighlight&&!i;const m=this._plugins.produces(0,...me);this._precompilePrepasses(),this.performanceInfo.advance(oe.PREPARE);const c=this._computeShadowDepthRange(a);this._renderShadowMap(a,this._bindParameters.lighting.mainLight.direction,c),this._pluginInput.set("normals",this._renderNormals()),this._renderRemainingGeometryDepth(),this._renderShadowAccumulation(c,a,n,!s),this._ensureBindParametersSSR(t),this._precompileShaders(m),this._renderContext.output=0,u.bind(),this._bindParameters.mainDepth=u.depth.attachment,this._renderOpaque(),this._renderTransparent(m),this._shadowMap.disposeMainBuffer(),this._pluginInput.set(R.FOCUSAREA,this._renderFocusAreaGeometry()),this._pluginInput.set(R.CUTFILL_DEPTH,this._renderCutFillDepth()),u.update(e=>this._renderNodes(R.TRANSPARENT_ENVIRONMENT,e)),u.update(e=>this._renderNodes(R.VIEWSHED,e)),u.update(e=>this._renderNodes(R.LASERLINES,e)),u.update(e=>this._renderNodes(R.FOCUSAREA_COLOR,e)),this._pluginInput.release(R.FOCUSAREA),this._pluginInput.release(R.CUTFILL_DEPTH),u.update(e=>this._renderNodes(R.OCCLUDED,e)),this._pluginInput.set("highlights",this._renderHighlightPrepass()),this._renderHighlightShadowMap(a,this._bindParameters.lighting.mainLight.direction,c);const f=2===r?this._renderObjectAndLayerIdColor():null;u.update(e=>this._renderNodes(I.COMPOSITE,e)),this._shadowMap.disposeOffscreenBuffers();const g=s&&!_&&!(d&&!i),b=this._pluginInput.get(I.COMPOSITE),P=g?v:this.fboCache.acquire(b.fbo.width,b.fbo.height,R.ANTIALIASING),C=this._nodes.produces(R.ANTIALIASING)?this._renderNodes(R.ANTIALIASING,P):this.blitFBO(b,P,!1);let w;this._pluginInput.set(R.ANTIALIASING,C),this._hasHUDHighlights?(this._renderHUD(1,C),w=this._renderNodes(R.HIGHLIGHTS,C)):(w=this._renderNodes(R.HIGHLIGHTS,C),this._renderHUD(1,w));const T=this._renderNodes(R.MAGNIFIER,w);return s&&d&&!i&&!_&&this.blitFBO(T),_?(T.attachDepth(u.depth),this.blitFBO(this._renderNodes(I.FINAL,T)),T.detachDepth()):this._pluginInput.set(I.FINAL,T),this._pluginInput.release("highlights"),this.onPostRender&&this.onPostRender(),this._releaseFBOs(),u.releaseDepth(),this._renderContext.lastFrameCamera.copyFrom(this._bindParameters.camera),this.fboCache.frameEnd(),this.performanceInfo.finishFrame(),s||(this._releaseFBOs(),this._disposeOffscreenBuffers()),new ne(this._pluginInput.get(I.FINAL),f)}_precompileShaders(e){++this._plugins.context.techniques.precompiling,this._renderContext.output=0,this._precompileOpaqueGeometry(),this._nodes.precompile(R.OPAQUE_ENVIRONMENT),this._bindParameters.terrainDepthTest=this._bindParameters.cullAboveTerrain=this._needsTerrainDepth,this._renderContext.output=1,this._plugins.precompile(...ce),this._needsTerrainDepth&&(this._precompileOpaqueGeometry(),this._precompileTransparentGeometry()),this._renderContext.output=0,this._plugins.precompile(...ce),e&&(this._precompileTransparentGeometry(),this._hasPhotoshopTerrain&&(this._bindParameters.cullAboveTerrain=!1,this._precompileTransparentGeometry(),this._bindParameters.cullAboveTerrain=this._needsTerrainDepth)),this._nodes.precompile(R.FOCUSAREA),this._needsHUDVisibility&&this._plugins.precompile(13),this._plugins.precompile(16),this._precompileHUD(0),this._bindParameters.terrainDepthTest=!1,this._bindParameters.cullAboveTerrain=!1,this._nodes.precompile(R.VIEWSHED,R.CUTFILL_DEPTH,R.CUTFILL_COLOR,R.LASERLINES,R.FOCUSAREA_COLOR,R.OCCLUDED,R.ANTIALIASING,R.HIGHLIGHTS);const t=this._bindParameters;t.highlightMixTexture=t.highlights.length>1?this._rctx.emptyTexture:null,this._precompileHUD(1),this._hasHighlights&&(t.highlights.forEach((e,r)=>{t.highlightLevel=r,this._precompileAllGeometry(8)}),t.highlightLevel=null),t.highlightMixTexture=null,this._nodes.precompile(I.COMPOSITE,R.MAGNIFIER),this._shadowAccumulator.precompile(),this._plugins.precompile(9),--this._plugins.context.techniques.precompiling}_renderFocusAreaGeometry(){const e=this._nodes.produce(R.FOCUSAREA,this._pluginInput);return e&&this.performanceInfo.advance(oe.FOCUS_AREA_MASK),e}_renderObjectAndLayerIdColor(){if(!this._nodes.produces("olid"))return null;const e=this._renderContext.output;++this._techniques.precompiling;const t=this._framebufferSize;let r=this.fboCache.acquire(t.width,t.height,"olid");return r.acquireDepth(14),r=this._nodes.render(r,this._pluginInput),--this._techniques.precompiling,this.performanceInfo.advance(oe.OBJECT_AND_LAYER_ID_COLOR),this._renderContext.output=e,r}finish(e){this._hasAnimations||this._animationTimestep.clear();const t=this.performanceInfo.gpuSamplingEnabled,r=0===e;if(r||t){const e=r?this.performanceInfo.elapsedTime:0;let i=0;t?i=this.performanceInfo.totalGPUTimeSampler.last:this._rctx.gl.finish();const s=Math.max(e,i);this._animationTimestep.frame(s,r)}}readMainDepth(e,t){const{mainDepth:r,camera:i}=this._bindParameters;if(!r)return;const s=this.fboCache.acquire(this._framebufferSize.width,this._framebufferSize.height,"linear depth");this._rctx.bindFramebuffer(s.fbo),i.setGLViewport(this._rctx),this._rctx.setScissorRect(e[0],e[1],e[2],e[3]),this._rctx.setScissorTestEnabled(!0),this._rctx.clearFramebuffer(A),this._compositingHelper.blitDepthToLinearDepth(this._bindParameters,r),this._rctx.setScissorTestEnabled(!1),this._rctx.setScissorRect(0,0,this._rctx.gl.canvas.width,this._rctx.gl.canvas.width),s.fbo?.readPixels(e[0],e[1],e[2],e[3],6408,de.UNSIGNED_BYTE,t),s.release()}readHUDVisibility(e,t,r,i,s){this._bindParameters.hudVisibility?.fbo?.readPixels(e,t,r,i,6408,de.UNSIGNED_BYTE,s)}readAccumulatedShadow(e){return this._shadowAccumulator.readAccumulatedShadow(e[0],e[1])}_renderEdges(e){const t=this._edgeView;if(!t?.shouldRender())return;const r=this._framebufferSize,i=this.fboCache.acquire(r.width,r.height,"edges"),s=this._bindParameters.geometryDepth,a=()=>t.render(this._bindParameters,e);this.renderToTargets(a,i,s??this._framebuffer.depth,A),this._framebuffer.bind(),this._compositingHelper.composite(this._bindParameters,i.getTexture()),i.release(),this.performanceInfo.advance(1===e?oe.OPAQUE_EDGES:oe.TRANSPARENT_EDGES)}_renderOverlay(){this._bindParameters.overlay=this.overlay?.render(this._renderContext.time),this._bindParameters.overlay&&this.performanceInfo.advance(oe.OVERLAY)}_renderShadowMap(e,t,r){if(!this.shadowsEnabled)return;const i=this._shadowMap;i.start(e,t,r,this.isFeatureEnabled(7),this.stage.view.qualitySettings.maximumPixelRatio),this._needsShadowHighlight?(this._renderShadowCascades(5,this._shadowMap),i.copySnapshot(1),this._renderShadowCascades(4,this._shadowMap)):this._renderShadowCascades(3),i.finish(),e.setGLViewport(this._rctx),this._ensureBindParametersCamera(e,this._bindParameters.contentCamera),this.performanceInfo.advance(oe.SHADOW_MAP)}_renderHighlightShadowMap(e,t,r){if(!this.shadowsEnabled||!this._needsShadowHighlight)return;const i=this._shadowMap;i.start(e,t,r,this.isFeatureEnabled(7),this.stage.view.qualitySettings.maximumPixelRatio),this._renderShadowCascades(4,this._shadowMap),i.moveSnapshot(0),i.finish(),e.setGLViewport(this._rctx),this._ensureBindParametersCamera(e,this._bindParameters.contentCamera),this.performanceInfo.advance(oe.SHADOW_MAP)}_renderCutFillDepth(){return this._nodes.produce(R.CUTFILL_DEPTH,this._pluginInput)}_precompileShadowCascades(e){0!==this._shadowMap.cascades.length&&this._precompileAllGeometry(e)}_renderShadowCascades(e,t=this._shadowMap){t.bindFbo();for(const r of t.cascades)r.camera.setGLViewport(this._rctx),this._ensureBindParametersCamera(r.camera,r.camera),this.renderAllGeometry(e)}get _needsDepth(){return this._plugins.consumes(1)||this._nodes.requireGeometryDepth()||this.hasReflections||this._needsShadowHighlight||this._shadowAccumulator.active||this._debugNeedsDepth}_renderRemainingGeometryDepth(){const e=this._pluginInput.get("normals");e?(this._pluginInput.set(R.SSAO,this._renderSSAO()),this._needsDepth?(this._rctx.bindFramebuffer(e.fbo),this._rctx.clear(1024),this._renderGeometryWithoutNormals(1),this._bindParameters.depth?.release(),this._bindParameters.depth=e.obtainDepthTexture(),this.performanceInfo.advance(oe.DEPTH)):(e.detachDepth(),this._bindParameters.depth=o(this._bindParameters.depth)),this.hasSSAO&&this._pluginInput.release("normals")):this._renderAllGeometryDepth()}_renderAllGeometryDepth(){if(this._bindParameters.depth=o(this._bindParameters.depth),!this._needsDepth)return;const e=this._framebufferSize,t=this.fboCache.acquire(e.width,e.height,"geometry depth",14);this._rctx.bindFramebuffer(t.fbo),this._rctx.clear(1280),this.renderAllGeometry(1),this._bindParameters.depth=t.obtainDepthTexture(),t.release(),this.performanceInfo.advance(oe.DEPTH)}_renderTerrainDepth(){if(this._bindParameters.terrainDepth=o(this._bindParameters.terrainDepth),this._bindParameters.terrainDepthTest=this._bindParameters.cullAboveTerrain=this._needsTerrainDepth,!this._needsTerrainDepth)return;const e=this._renderContext.output;this._renderContext.output=1;const t=this._framebufferSize,r=this.fboCache.acquire(t.width,t.height,"terrain depth",14);this._rctx.bindFramebuffer(r.fbo),this._rctx.clear(1280),this._renderTransparentGround(),this._bindParameters.terrainDepth=r.obtainDepthTexture(),r.release(),this._renderContext.output=e}_renderGeometryDepth(){if(this._bindParameters.geometryDepth=o(this._bindParameters.geometryDepth),!this._needsTerrainDepth)return;const e=this._renderContext.output,{width:t,height:r}=this._framebufferSize,i=this.fboCache.acquire(t,r,"geometry depth",14);this._rctx.bindFramebuffer(i.fbo),this._rctx.clear(1280),this._renderOpaqueAndTransparentGeometry(1),this._renderContext.output=e,this._bindParameters.geometryDepth=i.obtainDepthTexture(),i.release()}get _needsShadowDepthRange(){return this._shadowMap.enabled||this._shadowAccumulator.active}_computeShadowDepthRange(e){if(!this._needsShadowDepthRange)return Q.Zero;const t=Y(e,this._plugins.plugins,this.stage.layers,0);return t.union(this._plugins.queryDepthRange(e)),t.near=Math.max(e.near,t.near),t.far=Math.min(e.far,t.far),t}updateSceneDepthRange(e){if(!this.stage.view.state.isGlobal)return void(this.sceneDepthRange.value=Q.Infinite);if((this.stage.view.renderCoordsHelper?.getAltitude(e.eye)??0)<y)return void(this.sceneDepthRange.value=Q.Infinite);const t=e.clone();t.near=O,t.far=1e10;const r=Y(t,this._plugins.plugins,this.stage.layers,1);r.union(this._plugins.queryDepthRange(t)),this.sceneDepthRange.value.equals(r)||(this.sceneDepthRange.value=r)}get _normalsRequired(){const e=this._nodes.require("normals",I.FINAL,I.COMPOSITE,I.OPAQUE,I.TRANSPARENT,R.VIEWSHED,R.LASERLINES);return(this.hasSSAO?1:0)+e}_updateHUDOccludedFragmentOpacity(e,t){const{idleOpacity:r,navigatingOpacity:a,maxDelta:n,tiltFadeStart:h,tiltFadeEnd:o,altitudeStart:d,altitudeEnd:_}=Z,l=this.stage.view,u=l.stateManager.camera,p=l.qualitySettings.fadeDuration,m=2===e?r:a,c=i((u.tilt-h)/(o-h),0,1),f=i(((u.position.z??0)-d)/(_-d),0,1),g=s(s(1,m,c),1,f),b=this._bindParameters.hudOccludedFragmentOpacity;if(p<=0||b===g||0===this._lastFrameTime||this._lastFrameTime>t)return this._bindParameters.hudOccludedFragmentOpacity=g,void(this._lastFrameTime=t);const P=t-this._lastFrameTime;this._lastFrameTime=t;const C=Math.max(1-r,Math.abs(r-a)),w=Math.min(C*P/p,n);w>=Math.abs(g-b)?this._bindParameters.hudOccludedFragmentOpacity=g:(this._bindParameters.hudOccludedFragmentOpacity=b+Math.sign(g-b)*w,this._requestRender())}_precompilePrepasses(){this._normalsRequired&&this._precompileAllGeometry(2),this._needsDepth&&this._precompileAllGeometry(1),this.shadowsEnabled&&(this._needsShadowHighlight?(this._precompileShadowCascades(4),this._precompileShadowCascades(5)):this._precompileShadowCascades(3)),this._shadowAccumulator.active&&this._precompileAllGeometry(3)}_renderNormals(){const e=this._normalsRequired;if(0===e)return;const t=this._framebufferSize,r=this.fboCache.acquire(t.width,t.height,"normals",5);r.acquireDepth(14),this._rctx.bindFramebuffer(r.fbo),this._rctx.clearFramebuffer(A,!0,!0),this._renderContext.output=2,this._plugins.render(...fe);const i=this._nodes.optional("normals",I.FINAL,I.COMPOSITE,I.OPAQUE,I.TRANSPARENT,R.VIEWSHED);return r.retain(e+i-1),this.performanceInfo.advance(oe.NORMALS),r}_renderSSAO(){const e=this._pluginInput.get("normals");if(!this.hasSSAO||!e)return;const t=this._nodes.produce(R.SSAO,this._pluginInput);return this._bindParameters.ssao=t,t&&this.performanceInfo.advance(oe.SSAO),t}_precompileAllGeometry(e){const t=this._renderContext.output;this._renderContext.output=e,this._precompileOpaqueGeometry(),this._precompileTransparentGeometry(),this._plugins.precompile(...ce),this._renderContext.output=t}renderAllGeometry(e){this._renderContext.output=e,this._renderOpaqueAndTransparentGeometry(e),this._renderTransparentGround()}precompileSlots(e,...t){for(const r of t)this._bindParameters.slot=r,e.precompile(this._renderContext)}precompileOccludedSlots(e,t){for(const r of t)this._renderContext.renderOccludedMask=r,this.precompileSlots(e,...be);this._renderContext.renderOccludedMask=X}renderSlots(e,...t){for(const r of t)this._bindParameters.slot=r,e.forAll(e=>{const t=e.acquireTechniques(this._renderContext);t&&e.render(this._renderContext,t)})}renderOccludedSlots(e,t){this._renderContext.renderOccludedMask=t,this.plugins.renderOccludedFlags>1&&this._plugins.render(10),this.renderSlots(e,...be),this._renderContext.renderOccludedMask=X}renderHUD(e){this._bindParameters.hudRenderStyle=e,this._plugins.render(14)}precompileViewshedShadowMap(){this._precompileAllGeometry(6)}precompileCutFill(){const e=7,t=this._renderContext.output;this._renderContext.output=e,this._plugins.precompile(0,1,...ce),this._renderContext.output=t}renderViewshedShadowMap(e){const{camera:t,contentCamera:r}=this._bindParameters,i=this._renderContext.output;e.setGLViewport(this._rctx),this._ensureBindParametersCamera(e,e),this.renderAllGeometry(6),this._ensureBindParametersCamera(t,r),this._bindParameters.camera.setGLViewport(this._rctx),this._renderContext.output=i}renderCutFillReferenceDepth(e){const{camera:t,contentCamera:r}=this._bindParameters,i=this._renderContext.output;e.setGLViewport(this._rctx),this._ensureBindParametersCamera(e,e),this._renderContext.output=7,this._plugins.render(0,1,...ce),this._ensureBindParametersCamera(t,r),t.setGLViewport(this._rctx),this._renderContext.output=i}_renderOpaqueAndTransparentGeometry(e){this._renderContext.output=e,this._renderOpaqueGeometry(),this._renderTransparentGeometry()}_renderGeometryWithoutNormals(e){this._renderContext.output=e,this._plugins.render(...ge)}_precompileOpaqueGeometry(){this._plugins.precompile(...pe),this._nodes.precompile("opaque-color")}_renderOpaqueGeometry(){this._plugins.render(...pe)}_renderTransparentGeometry(){this._plugins.render(...me)}get _hasPhotoshopTerrain(){return this._plugins.produces(0,6)}get _needsTerrainDepth(){return this._highQualityTransparency&&this._hasPhotoshopTerrain}_renderPhotoshopTerrain(){if(!this._hasPhotoshopTerrain)return null;const e=this._framebufferSize,t=this.fboCache.acquire(e.width,e.height,"transparent terrain");return this.renderToTargets(()=>this._plugins.render(6),t,this._framebuffer.depth,A),this.performanceInfo.advance(oe.TRANSPARENT_TERRAIN),t}_renderTransparentGround(){this._plugins.render(...ce)}get _needsHUDVisibility(){return this._plugins.produces(this._renderContext.output,13)}_renderHUDVisibility(){if(!this._needsHUDVisibility)return void(this._bindParameters.hudVisibility=o(this._bindParameters.hudVisibility));const{width:e,height:t}=this._framebufferSize;let r=this._bindParameters.hudVisibility;r?.fbo?.width===e&&r?.fbo?.height===t||(r?.release(),r=this.fboCache.acquire(e,t,"hud visibility",4),this._bindParameters.hudVisibility=r);const i=this._bindParameters.geometryDepth;r.attachDepth(i||this._framebuffer.depth),this._rctx.bindFramebuffer(r.fbo),this._rctx.clearFramebuffer([0,1,0,1]),this._plugins.render(13),r.detachDepth(),this._framebuffer.bind(),this.performanceInfo.advance(oe.HUD_VISIBILITY)}_renderLineCallouts(e){if(this._bindParameters.hudRenderStyle=e,0===e){const e=()=>this._plugins.render(16),t=this._framebufferSize,r=this.fboCache.acquireDepth(13,t.width,t.height,"line callouts");this.renderToTargets(e,this._framebuffer.color,r,void 0,!0,!0),r.release()}else this._plugins.render(16)}_precompileHUD(e){if(this._precompileHUDOutput(e),this._hasHighlights){const t=this._renderContext.output;this._renderContext.output=8,this._precompileHUDOutput(e),this._renderContext.output=t}}_precompileHUDOutput(e){const t=this._bindParameters.hudRenderStyle;this._bindParameters.hudRenderStyle=e,this._oitEnabled&&N(this._renderContext.output)?(this._bindParameters.oitPass=1,this._plugins.precompile(...Pe),this._bindParameters.oitPass=2,this._plugins.precompile(...Pe),this._bindParameters.oitPass=0):this._plugins.precompile(...Pe),this._bindParameters.hudRenderStyle=t}_renderHUD(e,t){if(this._pluginsHas.hudElements){if(this._oitEnabled){const r=this._renderOIT(1,e);this._rctx.bindFramebuffer(t.fbo),this._compositingHelper.compositePreMultipliedAlpha(this._bindParameters,r.getTexture(),!1),r.release()}else if(this._renderContext.output=0,0===e){const t=()=>this._renderHUDElements(e),r=this._framebufferSize,i=this.fboCache.acquireDepth(13,r.width,r.height,"hud");this.renderToTargets(t,this._framebuffer.color,i,void 0,!0,!0),i.release()}else t.acquireDepth(13),this._rctx.bindFramebuffer(t.fbo),this._renderHUDElements(e),t.detachDepth();this.performanceInfo.advance(0===e?oe.HUD_OCCLUDED:oe.HUD)}}_renderHUDElements(e){this._bindParameters.hudRenderStyle=e,this._plugins.render(...Pe)}get _needsShadowHighlight(){return this.shadowsEnabled&&this._plugins.produces(4,2)}_renderHighlightPrepass(){if(!this._hasHighlights)return;const{fboCache:e,_rctx:t,_bindParameters:r}=this,i=this._framebufferSize,{highlights:s}=r,a=e.acquire(i.width,i.height,"highlights",s.length>V?3:1);a.acquireDepth(14);const n=this._plugins.produces(8,0);return n&&this._framebuffer.color.fbo&&a.fbo&&t.blitFramebuffer(this._framebuffer.color.fbo,a.fbo,1024),t.bindFramebuffer(a.fbo),t.gl.clearBufferuiv(6144,0,[0,0,0,0]),n||t.clear(1024),this._renderContext.output=8,t.bindFramebuffer(a.fbo),j(t,e,i,r,()=>this._renderHighlightGeometries()),a.detachDepth(),this.performanceInfo.advance(oe.HIGHLIGHTS),a}_renderHighlightGeometries(){this._plugins.render(...Ce),this._rctx.clear(256),this._renderHUDElements(2)}_renderShadowAccumulation(e,t,r,i){this._shadowAccumulator.updateDepthRange(e),this._shadowAccumulator.accumulating&&this._bindParameters.depth&&this._shadowAccumulator.renderAccumulation(this._bindParameters.depth,t,r,i)&&this.performanceInfo.advance(oe.ACCUMULATED_SHADOWS)}_precompileTransparentGeometry(){this._oitEnabled&&N(this._renderContext.output)?(this._bindParameters.oitPass=1,this._plugins.precompile(...me),this._bindParameters.oitPass=2,this._plugins.precompile(...me),this._bindParameters.oitPass=0):this._plugins.precompile(...me)}_renderOIT(e,t=2){const r=1===e,i=this._framebufferSize,s=r?()=>this._renderHUDElements(t):()=>this._renderTransparentGeometry(),a=this._bindParameters,n=this._renderContext.output;this._renderContext.output=0,a.oitPass=1;const h=r?"oit hud":"oit",o=this.fboCache.acquire(i.width,i.height,h,8),d=this._bindParameters.hasEmission&&!(1===e&&1===t);d&&o.acquireColor(_e,8,"oit emissive"),o.acquireColor(d?le:_e,7,"oit alpha"),r||o.attachDepth(this._framebuffer.depth),this._rctx.bindFramebuffer(o.fbo),this._rctx.clearFramebuffer([0,0,0,1]),d&&this._rctx.clearBuffer(1,E),s(),o.detachDepth(),a.oitPass=2;const _=this.fboCache.acquire(i.width,i.height,r?"oit hud front":"oit front");let l;return d&&_.acquireColor(_e,8,"oit emissive front"),r?_.acquireDepth(13):_.attachDepth(this._framebuffer.depth),this._rctx.bindFramebuffer(_.fbo),this._rctx.clearFramebuffer(A,r),s(),_.detachDepth(),a.oitPass=0,r?(l=this.fboCache.acquire(i.width,i.height,"oit hud composite"),this._rctx.bindFramebuffer(l.fbo),this._rctx.setClearColor(0,0,0,1e-13),this._rctx.clear(16384)):this._framebuffer.bind(),this._oitBlend??=new B(this._techniques),this._oitBlend.blend(this._rctx,o,_,a,d,!r),l?.detachDepth(),_.release(),o.release(),this._renderContext.output=n,l}_renderOpaque(){const e=this.plugins.produces(0,...pe);if(e){this._plugins.render(0,1);const e=this._framebuffer;e.update(e=>this._renderNodes(R.CUTFILL_COLOR,e)),e.update(e=>this._renderNodes(R.OPAQUE_TERRAIN,e)),e.bind(),this._plugins.render(2,3)}const t=this._framebuffer;this._renderTerrainDepth(),t.update(t=>this._renderNodes(I.OPAQUE,t,e)),this.fboCache.debugCallback?.(I.OPAQUE,t.color.fbo),t.update(e=>this._renderNodes(R.OPAQUE_ENVIRONMENT,e)),this.fboCache.debugCallback?.(R.OPAQUE_ENVIRONMENT,t.color.fbo),this._renderEdges(1)}_renderTransparent(e){const t=this._framebuffer;t.bind(),this._renderPlugins(21,oe.VOXEL),this._renderHiddenTransparentEdges(),e&&(this._oitEnabled?this._renderOIT(0):this._renderTransparentGeometry()),t.update(t=>this._renderNodes(I.TRANSPARENT,t,e)),this.fboCache.debugCallback?.(I.TRANSPARENT,t.color.fbo),this._renderGeometryDepth(),this._renderHUDVisibility(),this._needsTerrainDepth||this._plugins.render(16),this._renderEdges(0);const r=this._renderPhotoshopTerrain(),i=r?.getTexture();i&&this._bindParameters.hudVisibility&&(this._needsTerrainDepth?this._renderLineCallouts(0):(this._rctx.bindFramebuffer(this._bindParameters.hudVisibility?.fbo),this._compositingHelper.compositeHUD(this._bindParameters,i)),this._renderHUD(0,t.color)),this._bindParameters.cullAboveTerrain=!1,i&&(t.bind(),this._compositingHelper.compositePreMultipliedAlpha(this._bindParameters,i),r?.release(),this._needsTerrainDepth&&(this._renderEdges(1),e&&(this._oitEnabled?this._renderOIT(0):this._renderTransparentGeometry(),this.performanceInfo.advance(oe.TRANSPARENT)),this._renderEdges(0))),this._bindParameters.ssao=o(this._bindParameters.ssao),this._needsTerrainDepth&&this._renderLineCallouts(1),this._bindParameters.terrainDepthTest=!1,this._renderTransparentEnvironment()}_renderTransparentEnvironment(){this._shadowAccumulator.render(this._bindParameters),this.performanceInfo.advance(oe.APPLY_ACCUMULATED_SHADOWS),this._framebuffer.bind(),this._plugins.render(9),this.performanceInfo.advance(oe.TRANSPARENT_MATERIAL_WITHOUT_DEPTH)}_renderPlugins(e,t){this._plugins.produces(this._renderContext.output,e)&&(this._plugins.render(e),this.performanceInfo.advance(t))}_renderNodes(e,t,r=!1){if(t.setName(e),this._pluginInput.set(e,t),!this._nodes.produces(e))return r&&this.performanceInfo.advance(e),t;const i=this._nodes.render(t,this._pluginInput,this._releaseNormals);return this.performanceInfo.advance(e),i}blitFBO(e,t=v,r=!0){return this._blit??=new U(this._techniques),this._blit.blit(this._rctx,e,t,this._bindParameters),this._pluginInput.set(e.name,t),r&&e.release(),t}_ensureBindParametersCamera(e,t){this._bindParameters.camera=e,this._bindParameters.contentCamera=t}_ensureBindParametersSSR(e){if(this._bindParameters.ssr.lastFrameColor){null==this._ssrEnableTime&&(this._ssrEnableTime=e),this._renderContext.lastFrameCamera.equals(this._bindParameters.camera)?this._reprojectionMatrix=w:(P(Se,this._bindParameters.camera.viewMatrix),P(Te,this._bindParameters.camera.projectionMatrix),C(Ee,Se,Te),C(Ee,this._renderContext.lastFrameCamera.viewMatrix,Ee),C(Ee,this._renderContext.lastFrameCamera.projectionMatrix,Ee),this._reprojectionMatrix=Ee);const t=this.stage.view.qualitySettings.fadeDuration;this._bindParameters.ssr.fadeFactor=t>0?Math.min(t,e-this._ssrEnableTime)/t:1,this._bindParameters.ssr.fadeFactor<1&&this._requestRender()}else this._reprojectionMatrix=w,this._ssrEnableTime=null}addRenderNode(e){this._nodes.add(e),this._requestRender()}removeRenderNode(e){this._nodes.remove(e),this._requestRender()}updateLighting(e,t,r,i){this._bindParameters.updateLighting(e,t,r,i),this._requestRender(1)}get usedMemory(){return{fbos:this.fboCache.usedMemory,plugins:this._plugins.usedMemory,edges:this.edgeView?.usedMemory??0}}renderToTargets(e,t,r,i,s=!1,a=!1){t.attachDepth(r),this._rctx.bindFramebuffer(t.fbo),this._rctx.clearFramebuffer(i,s,a),e(),t.detachDepth()}get test(){}};e([f({readOnly:!0})],ue.prototype,"highResolutionAtmosphere",null),e([f()],ue.prototype,"_edgeView",void 0),e([f()],ue.prototype,"updating",null),ue=e([g("esri.views.3d.webgl-engine.lib.Renderer")],ue);const pe=[0,1,2,3],me=[7,8,4,5],ce=[6,7,8],fe=[0,1,2,4,...ce],ge=[3,5],be=[2,4,9],Pe=[17,14,15],Ce=[4,5,2,3,0,1,...ce],we=[4,9,5,12],Te=T(),Se=T(),Ee=T();function xe(e){return t=>e.immediate.schedule(t)}export{ue as Renderer};
5
+ import{__decorate as e}from"tslib";import{update as t}from"../../../../core/arrayUtils.js";import{createTask as r}from"../../../../core/asyncUtils.js";import"../../../../core/has.js";import{clamp as i,lerp as s}from"../../../../core/mathUtils.js";import{removeMaybe as a,abortMaybe as n,destroyMaybe as h,releaseMaybe as o}from"../../../../core/maybe.js";import{throwIfAborted as d}from"../../../../core/promiseUtils.js";import{watch as _,syncAndInitial as l,initial as u,sync as p}from"../../../../core/reactiveUtils.js";import{signal as m}from"../../../../core/signal.js";import{Milliseconds as c}from"../../../../core/time.js";import{property as f,subclass as g}from"../../../../core/accessorSupport/decorators.js";import{equals as b,invert as P,multiply as C}from"../../../../core/libs/gl-matrix-2/math/mat4.js";import{IDENTITY as w,create as T}from"../../../../core/libs/gl-matrix-2/factories/mat4f64.js";import{set as S}from"../../../../core/libs/gl-matrix-2/math/vec4.js";import{ZEROS as E}from"../../../../core/libs/gl-matrix-2/factories/vec4f32.js";import{fromValues as x,ZEROS as A}from"../../../../core/libs/gl-matrix-2/factories/vec4f64.js";import{pruneIndexArrays as D}from"../../../../geometry/support/Indices.js";import{RenderNodeOutput as I,InternalRenderCategory as R}from"../../webgl.js";import{innerAtmosphereFadeStart as y}from"../../environment/atmosphereUtils.js";import{minNearDistanceInMeters as O}from"../../state/NearFarHeuristic.js";import{debugFlags as F}from"../../support/debugFlags.js";import{FBOCache as H,defaultWebGLFBO as v}from"../core/FBOCache.js";import{RenderPassManager as M}from"../core/renderPasses/RenderPassManager.js";import{isColor as N}from"../core/shaderLibrary/ShaderOutput.js";import{distanceFadeEnd as q}from"../core/shaderLibrary/shading/ScreenSpaceConstants.js";import{RenderNodes as G}from"../effects/RenderNodes.js";import{RenderPluginManager as L}from"../effects/RenderPluginManager.js";import{Blit as U}from"../effects/blit/Blit.js";import{maxHighlightsPerChannel as V,renderHighlightBuffer as j}from"../effects/highlight/Highlight.js";import{OITBlend as B}from"../effects/transparency/OITBlend.js";import{AnimationTimer as k}from"./AnimationTimer.js";import{AnimationTimeStep as z}from"./AnimationTimeStep.js";import{BoundingInfo as W}from"./BoundingInfo.js";import{DepthRange as Q}from"./DepthRange.js";import{depthRangeFromScene as Y}from"./depthRangeUtils.js";import{hudFragmentOpacityParameters as Z}from"./hudFragmentOpacityParameters.js";import{MainFramebuffer as J}from"./MainFramebuffer.js";import{RenderContext as K,defaultRenderOccludedMask as X}from"./RenderContext.js";import{RendererBase as $}from"./RendererBase.js";import{setupFeatureDefaults as ee}from"./RenderFeature.js";import{RenderPluginInput as te}from"./RenderPluginInput.js";import{ShadowAccumulator as re}from"./ShadowAccumulator.js";import{ShadowMap as ie}from"./ShadowMap.js";import se from"./SliceHelper.js";import{MergedRenderer as ae}from"../materials/renderers/MergedRenderer.js";import{RenderSceneResult as ne}from"../parts/renderUtils.js";import{RendererPerformanceInfo as he,PerformanceCategory as oe}from"../statistics/RendererPerformanceInfo.js";import{PixelType as de,ColorAttachment1 as _e,ColorAttachment2 as le}from"../../../webgl/enums.js";let ue=class extends ${constructor(e,t,r,i,s,a){super({stage:e}),this._techniques=r,this._rctx=i,this._compositingHelper=s,this._requestRender=a,this._pluginsHas={hudElements:!1,water:!1},this.renderPassManager=new M,this._isRendering=!1,this._inGlobeView=!1,this._backgroundColor=x(0,0,0,1),this._sliceHelper=new se,this.sceneDepthRange=m(Q.Infinite),this._state=m(2),this._hasAnimations=!1,this._animationTimestep=new z,this._loadEdgeViewTask=null,this._edgeViewCallbacks=[],this._reprojectionMatrixVersion=m(0),this._lastFrameTime=c(0),this._renderHiddenTransparentEdges=()=>{},this._pluginInput=new te,this._releaseNormals=e=>{e.some(({name:e})=>"normals"===e)&&this._pluginInput.release("normals")},this._debugNeedsDepth=!1,this._fboCache=new H(i),this._renderStateFeatures=m(ee(e.view.qualityProfile)),this._framebuffer=new J(this.fboCache),this._performanceInfo=new he(this._rctx),this._shadowMap=new ie(this.fboCache,e.viewingMode),this._shadowAccumulator=new re(this.fboCache,r,e,e=>{const t=this.shadowsEnabled;this._shadowMap.enabled=!0,this._ensureBindParametersCamera(e.camera,e.contentCamera),this._plugins.prepareRender(),this._shadowMap.enabled=t},(t,r,i)=>{const s=e.view.qualitySettings.maximumPixelRatio;t.shadowMap.start(t.camera,r,i,!0,s),this._renderShadowCascades(3,t.shadowMap),t.shadowMap.finish(),t.camera.setGLViewport(this._rctx),this._ensureBindParametersCamera(t.camera,t.contentCamera)},a),this._renderContext=new K(this._rctx,this._shadowMap,r),this._nodes=new G(this._renderContext),this._plugins=new L({renderContext:this._renderContext,techniques:r,materials:t,requestRender:a,controller:e,fbos:this.fboCache,isFeatureEnabled:e=>this.isFeatureEnabled(e)}),this._plugins.add(this.renderPassManager),this.addHandles([_(()=>e.view.state.camera,()=>a(),l),_(()=>F.EDGES_SHOW_HIDDEN_TRANSPARENT_EDGES,e=>{this._renderHiddenTransparentEdges=e?()=>this._renderEdges(0):()=>{},a()},u),_(()=>e.view.environment.background?.color,e=>{const t=e?e.toUnitRGBA():A;S(this._backgroundColor,t[0]*t[3],t[1]*t[3],t[2]*t[3],t[3]),a()},l),_(()=>e.view.state.camera.relativeElevation,e=>this._inGlobeView=(e??1/0)>=q,l),_(()=>this._bindParameters.clouds.fadeFactor,()=>{this._bindParameters.fadeLighting(),this._requestRender(2)},p),_(()=>this._bindParameters.clouds.data?.state,()=>a(),p),_(()=>e.view.state.highlights,e=>{this._bindParameters.highlights=e,a()},u)])}destroy(){this._gpuTimerHandle=a(this._gpuTimerHandle),this._nodes.destroy(),this._framebuffer.dispose(),this._shadowMap.dispose(),this._shadowAccumulator.destroy(),this._shadowAccumulator=null,this._loadEdgeViewTask=n(this._loadEdgeViewTask),this._edgeView=h(this._edgeView),this.renderPassManager.dispose(),this._releaseFBOs(),this._disposeOffscreenBuffers(),this._fboCache.destroy(),this._fboCache=null,this._plugins.destroy(),this._plugins=null,this._pluginInput=null,this._blit=null,this._oitBlend=null,this._compositingHelper=null,this._nodes=null,this._framebuffer=null,this._shadowMap=null,this._renderContext=null,this._performanceInfo=null,W.prune(),ae.prune(),D()}get renderContext(){return this._renderContext}get _bindParameters(){return this._renderContext.bind}get _framebufferSize(){return this._framebuffer.size}get performanceInfo(){return this._performanceInfo}updateRenderFeatures(e){this._renderStateFeatures.value=ee(e),this._requestRender()}isFeatureEnabled(e,t=this._state.value){return this._renderStateFeatures.value.get(t,e)??!1}setFeatureEnabled(e,t,r){this._renderStateFeatures.mutate(i=>i.set(t,e,r)),this._requestRender()}get _highQualityTransparency(){return this.isFeatureEnabled(1)}get hasReflections(){return this._pluginsHas.water&&this.isFeatureEnabled(6)}get _hasHighlights(){return this._plugins.produces(8,2,4,19,14,15)}hasHighlight(e){return this._plugins.hasHighlight(e)}get _hasHUDHighlights(){return this._plugins.produces(8,14,15)}get hasSSAO(){return this.isFeatureEnabled(5)&&!this._inGlobeView}get hasSMAA(){return this.isFeatureEnabled(0)}get hasEmitters(){return this._plugins.hasEmitters&&this._hasFloatBufferBlendSupport}get highResolutionAtmosphere(){return this.isFeatureEnabled(4)}get fboCache(){return this._fboCache}_releaseFBOs(){this._bindParameters.ssr.lastFrameColor=o(this._bindParameters.ssr.lastFrameColor),this._bindParameters.terrainDepth=o(this._bindParameters.terrainDepth),this._bindParameters.geometryDepth=o(this._bindParameters.geometryDepth)}_disposeOffscreenBuffers(){this._framebuffer.dispose(),this._disposeBindBuffers()}_disposeBindBuffers(){this._shadowMap.disposeOffscreenBuffers(),this._bindParameters.depth=o(this._bindParameters.depth),this._bindParameters.hudVisibility=o(this._bindParameters.hudVisibility)}get updating(){return this._loadEdgeViewTask&&!this._loadEdgeViewTask.finished||this._edgeView?.updating||this._shadowAccumulator.readyToRun||this._plugins.updating||!this.isCameraFinal}loadEdgeView(){return this._loadEdgeViewTask||(this._loadEdgeViewTask=r(async e=>{const{EdgeView:t}=await import("./edgeRendering/EdgeView.js");d(e);const r=this._edgeView=new t({rctx:this._rctx,renderSR:this.stage.view.renderSpatialReference,viewingMode:this.stage.view.stage.viewingMode,techniques:this._techniques,setNeedsRender:()=>this._requestRender(),schedule:xe(this.stage.view.resourceController)});return this.addHandles(_(()=>r.updating,()=>this._requestRender(),p)),this._requestRender(),this._edgeViewCallbacks.forEach(e=>e(r)),this._edgeViewCallbacks.length=0,r})),this._loadEdgeViewTask.promise}withEdgeView(e){this.loadEdgeView(),null==this._edgeView?this._edgeViewCallbacks.push(e):e(this._edgeView)}get edgeView(){return this._edgeView}get isCameraFinal(){return this._reprojectionMatrixVersion.value>=0&&b(this._bindParameters.ssr.reprojectionMatrix,w)}set _reprojectionMatrix(e){t(this._bindParameters.ssr.reprojectionMatrix,e)&&this._reprojectionMatrixVersion.value++}get shadowsEnabled(){return!!this._shadowMap?.enabled}setParameters(e){const{_shadowMap:t,_bindParameters:r}=this;if(void 0!==e.shadowMap&&this._shadowMap.enabled!==e.shadowMap&&(this._shadowMap.enabled=e.shadowMap,this._requestRender()),void 0!==e.shadowMapMaxCascades&&t.maxCascades!==e.shadowMapMaxCascades&&(t.maxCascades=e.shadowMapMaxCascades,this._requestRender()),e.environment){void 0!==e.environment.weather&&(this._bindParameters.weather=e.environment.weather);const t="virtual"!==e.environment.lighting.type;r.enableFillLights!==t&&(r.enableFillLights=t,this._requestRender())}void 0!==e.shadowCast&&this._shadowAccumulator.setOptions(e.shadowCast)}set slice(e){this._sliceHelper.update(e)&&this._requestRender()}get plugins(){return this._plugins}get _hasFloatBufferBlendSupport(){return this._rctx.driverTest.floatBufferBlend.result}get _oitEnabled(){return this.isFeatureEnabled(2)&&this._hasFloatBufferBlendSupport}commit(e,t){return this._isRendering&&console.warn("Renderer.modify called while rendering"),!!super.commit(e,t,this._plugins.context)&&(this.updateHasFlags(),!0)}rendererAdded(e){this._plugins.add(e)}rendererRemoved(e){this._plugins.remove(e)}get occludedRequiresStencil(){return this.occludedRequiresOccludeeStencil||this.occludedRequiresIntegratedMeshStencil}get occludedRequiresOccludeeStencil(){return this._bindParameters.hasOccludees&&!!(8&this.plugins.renderOccludedFlags)}get occludedRequiresIntegratedMeshStencil(){return this._plugins.produces(0,0)&&this._plugins.produces(0,10)}updateHasFlags(){const has=this._pluginsHas;has.hudElements=this._plugins.produces(0,...Pe),has.water=this._plugins.produces(2,20),this._bindParameters.hasOccludees=this._plugins.hasOccludees,this._requestRender()}updateAnimation(e,t){this._animationTimer??=new k(e.camera,t),this._animationTimer.advance(e.camera,t,this._animationTimeDilation);const r=this._hasAnimations;return this._hasAnimations=this._plugins.updateAnimation(this._animationTimer),this._hasAnimations=this._nodes.updateAnimation(this._animationTimer)||this._hasAnimations,this._hasAnimations!==r&&(this._gpuTimerHandle=r?a(this._gpuTimerHandle):this.performanceInfo.enableGPUPerformanceInfo()),this._hasAnimations}get animationTimestep(){return this._animationTimestep.value}get _animationTimeDilation(){return this._animationTimestep.timeDilation}resetAnimation(){this._animationTimestep.clear()}tick(){this.fboCache.clean()}render(e,t,r,i=!1){try{return this._isRendering=!0,this._render(e,t,r,i)}catch(s){console.error(`Exception during rendering: ${s}`)}finally{this._isRendering=!1}return new ne(this._pluginInput.get(I.FINAL),null)}_render(e,t,r,i){const s=0===r;this.performanceInfo.startFrame(),this.fboCache.frameStart(),this.fboCache.interactive=s,this._disposeBindBuffers();const{camera:a,contentCamera:n,mode:h,alignPixelEnabled:o}=e;this._state.value=h;const d=this._nodes.produces("magnifier-color"),_=this._nodes.produces(I.FINAL);this._renderContext.time=t,this._renderContext.output=0,this._bindParameters.hasEmission=this.hasEmitters,this._bindParameters.oitPass=0,this._bindParameters.alignPixelEnabled=o,this._bindParameters.decorations=!i,this._bindParameters.mainDepth=null;const l=!i||!this._sliceHelper.isDecoration;this._bindParameters.slicePlane=l?this._sliceHelper.plane:null,this._bindParameters.viewshedEnabled=this._nodes.produces(R.VIEWSHED),this._bindParameters.cutFillEnabled=this._nodes.produces(R.CUTFILL_DEPTH),this._renderOverlay(),a.setGLViewport(this._rctx);const u=this._framebuffer,p=u.initialize(a.fullWidth,a.fullHeight,this._backgroundColor,this._bindParameters.hasEmission);this.hasReflections?(p?.setName("last frame color"),this._bindParameters.ssr.lastFrameColor=p):p?.release(),this._ensureBindParametersCamera(a,n),this._updateHUDOccludedFragmentOpacity(h,t),this._plugins.sortTestsTransparentOrderedSlots(we),this._plugins.prepareRender(),this._bindParameters.shadowHighlightsVisible=this._needsShadowHighlight&&!i;const m=this._plugins.produces(0,...me);this._precompilePrepasses(),this.performanceInfo.advance(oe.PREPARE);const c=this._computeShadowDepthRange(a);this._renderShadowMap(a,this._bindParameters.lighting.mainLight.direction,c),this._pluginInput.set("normals",this._renderNormals()),this._renderRemainingGeometryDepth(),this._renderShadowAccumulation(c,a,n,!s),this._ensureBindParametersSSR(t),this._precompileShaders(m),this._renderContext.output=0,u.bind(),this._bindParameters.mainDepth=u.depth.attachment,this._renderOpaque(),this._renderTransparent(m),this._shadowMap.disposeMainBuffer(),this._pluginInput.set(R.FOCUSAREA,this._renderFocusAreaGeometry()),this._pluginInput.set(R.CUTFILL_DEPTH,this._renderCutFillDepth()),u.update(e=>this._renderNodes(R.TRANSPARENT_ENVIRONMENT,e)),u.update(e=>this._renderNodes(R.VIEWSHED,e)),u.update(e=>this._renderNodes(R.LASERLINES,e)),u.update(e=>this._renderNodes(R.FOCUSAREA_COLOR,e)),this._pluginInput.release(R.FOCUSAREA),this._pluginInput.release(R.CUTFILL_DEPTH),u.update(e=>this._renderNodes(R.OCCLUDED,e)),this._pluginInput.set("highlights",this._renderHighlightPrepass()),this._renderHighlightShadowMap(a,this._bindParameters.lighting.mainLight.direction,c);const f=2===r?this._renderObjectAndLayerIdColor():null;u.update(e=>this._renderNodes(I.COMPOSITE,e)),this._shadowMap.disposeOffscreenBuffers();const g=s&&!_&&!(d&&!i),b=this._pluginInput.get(I.COMPOSITE),P=g?v:this.fboCache.acquire(b.fbo.width,b.fbo.height,R.ANTIALIASING),C=this._nodes.produces(R.ANTIALIASING)?this._renderNodes(R.ANTIALIASING,P):this.blitFBO(b,P,!1);let w;this._pluginInput.set(R.ANTIALIASING,C),this._hasHUDHighlights?(this._renderHUD(1,C),w=this._renderNodes(R.HIGHLIGHTS,C)):(w=this._renderNodes(R.HIGHLIGHTS,C),this._renderHUD(1,w));const T=this._renderNodes(R.MAGNIFIER,w);return s&&d&&!i&&!_&&this.blitFBO(T),_?(T.attachDepth(u.depth),this.blitFBO(this._renderNodes(I.FINAL,T)),T.detachDepth()):this._pluginInput.set(I.FINAL,T),this._pluginInput.release("highlights"),this.onPostRender&&this.onPostRender(),this._releaseFBOs(),u.releaseDepth(),this._renderContext.lastFrameCamera.copyFrom(this._bindParameters.camera),this.fboCache.frameEnd(),this.performanceInfo.finishFrame(),s||(this._releaseFBOs(),this._disposeOffscreenBuffers()),new ne(this._pluginInput.get(I.FINAL),f)}_precompileShaders(e){++this._plugins.context.techniques.precompiling,this._renderContext.output=0,this._precompileOpaqueGeometry(),this._nodes.precompile(R.OPAQUE_ENVIRONMENT),this._bindParameters.terrainDepthTest=this._bindParameters.cullAboveTerrain=this._needsTerrainDepth,this._renderContext.output=1,this._plugins.precompile(...ce),this._needsTerrainDepth&&(this._precompileOpaqueGeometry(),this._precompileTransparentGeometry()),this._renderContext.output=0,this._plugins.precompile(...ce),e&&(this._precompileTransparentGeometry(),this._hasPhotoshopTerrain&&(this._bindParameters.cullAboveTerrain=!1,this._precompileTransparentGeometry(),this._bindParameters.cullAboveTerrain=this._needsTerrainDepth)),this._nodes.precompile(R.FOCUSAREA),this._needsHUDVisibility&&this._plugins.precompile(13),this._plugins.precompile(16),this._precompileHUD(0),this._bindParameters.terrainDepthTest=!1,this._bindParameters.cullAboveTerrain=!1,this._nodes.precompile(R.VIEWSHED,R.CUTFILL_DEPTH,R.CUTFILL_COLOR,R.LASERLINES,R.FOCUSAREA_COLOR,R.OCCLUDED,R.ANTIALIASING,R.HIGHLIGHTS);const t=this._bindParameters;t.highlightMixTexture=t.highlights.length>1?this._rctx.emptyTexture:null,this._precompileHUD(1),this._hasHighlights&&(t.highlights.forEach((e,r)=>{t.highlightLevel=r,this._precompileAllGeometry(8)}),t.highlightLevel=null),t.highlightMixTexture=null,this._nodes.precompile(I.COMPOSITE,R.MAGNIFIER),this._shadowAccumulator.precompile(),this._plugins.precompile(9),--this._plugins.context.techniques.precompiling}_renderFocusAreaGeometry(){const e=this._nodes.produce(R.FOCUSAREA,this._pluginInput);return e&&this.performanceInfo.advance(oe.FOCUS_AREA_MASK),e}_renderObjectAndLayerIdColor(){if(!this._nodes.produces("olid"))return null;const e=this._renderContext.output;++this._techniques.precompiling;const t=this._framebufferSize;let r=this.fboCache.acquire(t.width,t.height,"olid");return r.acquireDepth(14),r=this._nodes.render(r,this._pluginInput),--this._techniques.precompiling,this.performanceInfo.advance(oe.OBJECT_AND_LAYER_ID_COLOR),this._renderContext.output=e,r}finish(e){this._hasAnimations||this._animationTimestep.clear();const t=this.performanceInfo.gpuSamplingEnabled,r=0===e;if(r||t){const e=r?this.performanceInfo.elapsedTime:0;let i=0;t?i=this.performanceInfo.totalGPUTimeSampler.last:this._rctx.gl.finish();const s=Math.max(e,i);this._animationTimestep.frame(s,r)}}readMainDepth(e,t){const{mainDepth:r,camera:i}=this._bindParameters;if(!r)return;const s=this.fboCache.acquire(this._framebufferSize.width,this._framebufferSize.height,"linear depth");this._rctx.bindFramebuffer(s.fbo),i.setGLViewport(this._rctx),this._rctx.setScissorRect(e[0],e[1],e[2],e[3]),this._rctx.setScissorTestEnabled(!0),this._rctx.clearFramebuffer(A),this._compositingHelper.blitDepthToLinearDepth(this._bindParameters,r),this._rctx.setScissorTestEnabled(!1),this._rctx.setScissorRect(0,0,this._rctx.gl.canvas.width,this._rctx.gl.canvas.width),s.fbo?.readPixels(e[0],e[1],e[2],e[3],6408,de.UNSIGNED_BYTE,t),s.release()}readHUDVisibility(e,t,r,i,s){this._bindParameters.hudVisibility?.fbo?.readPixels(e,t,r,i,6408,de.UNSIGNED_BYTE,s)}readAccumulatedShadow(e){return this._shadowAccumulator.readAccumulatedShadow(e[0],e[1])}_renderEdges(e){const t=this._edgeView;if(!t?.shouldRender())return;const r=this._framebufferSize,i=this.fboCache.acquire(r.width,r.height,"edges"),s=this._bindParameters.geometryDepth,a=()=>t.render(this._bindParameters,e);this.renderToTargets(a,i,s??this._framebuffer.depth,A),this._framebuffer.bind(),this._compositingHelper.composite(this._bindParameters,i.getTexture()),i.release(),this.performanceInfo.advance(1===e?oe.OPAQUE_EDGES:oe.TRANSPARENT_EDGES)}_renderOverlay(){this._bindParameters.overlay=this.overlay?.render(this._renderContext.time),this._bindParameters.overlay&&this.performanceInfo.advance(oe.OVERLAY)}_renderShadowMap(e,t,r){if(!this.shadowsEnabled)return;const i=this._shadowMap;i.start(e,t,r,this.isFeatureEnabled(7),this.stage.view.qualitySettings.maximumPixelRatio),this._needsShadowHighlight?(this._renderShadowCascades(5,this._shadowMap),i.copySnapshot(1),this._renderShadowCascades(4,this._shadowMap)):this._renderShadowCascades(3),i.finish(),e.setGLViewport(this._rctx),this._ensureBindParametersCamera(e,this._bindParameters.contentCamera),this.performanceInfo.advance(oe.SHADOW_MAP)}_renderHighlightShadowMap(e,t,r){if(!this.shadowsEnabled||!this._needsShadowHighlight)return;const i=this._shadowMap;i.start(e,t,r,this.isFeatureEnabled(7),this.stage.view.qualitySettings.maximumPixelRatio),this._renderShadowCascades(4,this._shadowMap),i.moveSnapshot(0),i.finish(),e.setGLViewport(this._rctx),this._ensureBindParametersCamera(e,this._bindParameters.contentCamera),this.performanceInfo.advance(oe.SHADOW_MAP)}_renderCutFillDepth(){return this._nodes.produce(R.CUTFILL_DEPTH,this._pluginInput)}_precompileShadowCascades(e){0!==this._shadowMap.cascades.length&&this._precompileAllGeometry(e)}_renderShadowCascades(e,t=this._shadowMap){t.bindFbo();for(const r of t.cascades)r.camera.setGLViewport(this._rctx),this._ensureBindParametersCamera(r.camera,r.camera),this.renderAllGeometry(e)}get _needsDepth(){return this._plugins.consumes(1)||this._nodes.requireGeometryDepth()||this.hasReflections||this._needsShadowHighlight||this._shadowAccumulator.active||this._debugNeedsDepth}_renderRemainingGeometryDepth(){const e=this._pluginInput.get("normals");e?(this._pluginInput.set(R.SSAO,this._renderSSAO()),this._needsDepth?(this._rctx.bindFramebuffer(e.fbo),this._rctx.clear(1024),this._renderGeometryWithoutNormals(1),this._bindParameters.depth?.release(),this._bindParameters.depth=e.obtainDepthTexture(),this.performanceInfo.advance(oe.DEPTH)):(e.detachDepth(),this._bindParameters.depth=o(this._bindParameters.depth)),this.hasSSAO&&this._pluginInput.release("normals")):this._renderAllGeometryDepth()}_renderAllGeometryDepth(){if(this._bindParameters.depth=o(this._bindParameters.depth),!this._needsDepth)return;const e=this._framebufferSize,t=this.fboCache.acquire(e.width,e.height,"geometry depth",14);this._rctx.bindFramebuffer(t.fbo),this._rctx.clear(1280),this.renderAllGeometry(1),this._bindParameters.depth=t.obtainDepthTexture(),t.release(),this.performanceInfo.advance(oe.DEPTH)}_renderTerrainDepth(){if(this._bindParameters.terrainDepth=o(this._bindParameters.terrainDepth),this._bindParameters.terrainDepthTest=this._bindParameters.cullAboveTerrain=this._needsTerrainDepth,!this._needsTerrainDepth)return;const e=this._renderContext.output;this._renderContext.output=1;const t=this._framebufferSize,r=this.fboCache.acquire(t.width,t.height,"terrain depth",14);this._rctx.bindFramebuffer(r.fbo),this._rctx.clear(1280),this._renderTransparentGround(),this._bindParameters.terrainDepth=r.obtainDepthTexture(),r.release(),this._renderContext.output=e}_renderGeometryDepth(){if(this._bindParameters.geometryDepth=o(this._bindParameters.geometryDepth),!this._needsTerrainDepth)return;const e=this._renderContext.output,{width:t,height:r}=this._framebufferSize,i=this.fboCache.acquire(t,r,"geometry depth",14);this._rctx.bindFramebuffer(i.fbo),this._rctx.clear(1280),this._renderOpaqueAndTransparentGeometry(1),this._renderContext.output=e,this._bindParameters.geometryDepth=i.obtainDepthTexture(),i.release()}get _needsShadowDepthRange(){return this._shadowMap.enabled||this._shadowAccumulator.active}_computeShadowDepthRange(e){if(!this._needsShadowDepthRange)return Q.Zero;const t=Y(e,this._plugins.plugins,this.stage.layers,0);return t.union(this._plugins.queryDepthRange(e)),t.near=Math.max(e.near,t.near),t.far=Math.min(e.far,t.far),t}updateSceneDepthRange(e){if(!this.stage.view.state.isGlobal)return void(this.sceneDepthRange.value=Q.Infinite);if((this.stage.view.renderCoordsHelper?.getAltitude(e.eye)??0)<y)return void(this.sceneDepthRange.value=Q.Infinite);const t=e.clone();t.near=O,t.far=1e10;const r=Y(t,this._plugins.plugins,this.stage.layers,1);r.union(this._plugins.queryDepthRange(t)),this.sceneDepthRange.value.equals(r)||(this.sceneDepthRange.value=r)}get _normalsRequired(){const e=this._nodes.require("normals",I.FINAL,I.COMPOSITE,I.OPAQUE,I.TRANSPARENT,R.VIEWSHED,R.LASERLINES);return(this.hasSSAO?1:0)+e}_updateHUDOccludedFragmentOpacity(e,t){const{idleOpacity:r,navigatingOpacity:a,maxDelta:n,tiltFadeStart:h,tiltFadeEnd:o,altitudeStart:d,altitudeEnd:_}=Z,l=this.stage.view,u=l.stateManager.camera,p=l.qualitySettings.fadeDuration,m=2===e?r:a,c=i((u.tilt-h)/(o-h),0,1),f=i(((u.position.z??0)-d)/(_-d),0,1),g=s(s(1,m,c),1,f),b=this._bindParameters.hudOccludedFragmentOpacity;if(p<=0||b===g||0===this._lastFrameTime||this._lastFrameTime>t)return this._bindParameters.hudOccludedFragmentOpacity=g,void(this._lastFrameTime=t);const P=t-this._lastFrameTime;this._lastFrameTime=t;const C=Math.max(1-r,Math.abs(r-a)),w=Math.min(C*P/p,n);w>=Math.abs(g-b)?this._bindParameters.hudOccludedFragmentOpacity=g:(this._bindParameters.hudOccludedFragmentOpacity=b+Math.sign(g-b)*w,this._requestRender())}_precompilePrepasses(){this._normalsRequired&&this._precompileAllGeometry(2),this._needsDepth&&this._precompileAllGeometry(1),this.shadowsEnabled&&(this._needsShadowHighlight?(this._precompileShadowCascades(4),this._precompileShadowCascades(5)):this._precompileShadowCascades(3)),this._shadowAccumulator.active&&this._precompileAllGeometry(3)}_renderNormals(){const e=this._normalsRequired;if(0===e)return;const t=this._framebufferSize,r=this.fboCache.acquire(t.width,t.height,"normals",5);r.acquireDepth(14),this._rctx.bindFramebuffer(r.fbo),this._rctx.clearFramebuffer(A,!0,!0),this._renderContext.output=2,this._plugins.render(...fe);const i=this._nodes.optional("normals",I.FINAL,I.COMPOSITE,I.OPAQUE,I.TRANSPARENT,R.VIEWSHED);return r.retain(e+i-1),this.performanceInfo.advance(oe.NORMALS),r}_renderSSAO(){const e=this._pluginInput.get("normals");if(!this.hasSSAO||!e)return;const t=this._nodes.produce(R.SSAO,this._pluginInput);return this._bindParameters.ssao=t,t&&this.performanceInfo.advance(oe.SSAO),t}_precompileAllGeometry(e){const t=this._renderContext.output;this._renderContext.output=e,this._precompileOpaqueGeometry(),this._precompileTransparentGeometry(),this._plugins.precompile(...ce),this._renderContext.output=t}renderAllGeometry(e){this._renderContext.output=e,this._renderOpaqueAndTransparentGeometry(e),this._renderTransparentGround()}precompileSlots(e,...t){for(const r of t)this._bindParameters.slot=r,e.precompile(this._renderContext)}precompileOccludedSlots(e,t){for(const r of t)this._renderContext.renderOccludedMask=r,this.precompileSlots(e,...be);this._renderContext.renderOccludedMask=X}renderSlots(e,...t){for(const r of t)this._bindParameters.slot=r,e.forAll(e=>{const t=e.acquireTechniques(this._renderContext);t&&e.render(this._renderContext,t)})}renderOccludedSlots(e,t){this._renderContext.renderOccludedMask=t,this.plugins.renderOccludedFlags>1&&this._plugins.render(10),this.renderSlots(e,...be),this._renderContext.renderOccludedMask=X}renderHUD(e){this._bindParameters.hudRenderStyle=e,this._plugins.render(14)}precompileViewshedShadowMap(){this._precompileAllGeometry(6)}precompileCutFill(){const e=7,t=this._renderContext.output;this._renderContext.output=e,this._plugins.precompile(0,1,...ce),this._renderContext.output=t}renderViewshedShadowMap(e){const{camera:t,contentCamera:r}=this._bindParameters,i=this._renderContext.output;e.setGLViewport(this._rctx),this._ensureBindParametersCamera(e,e),this.renderAllGeometry(6),this._ensureBindParametersCamera(t,r),this._bindParameters.camera.setGLViewport(this._rctx),this._renderContext.output=i}renderCutFillReferenceDepth(e){const{camera:t,contentCamera:r}=this._bindParameters,i=this._renderContext.output;e.setGLViewport(this._rctx),this._ensureBindParametersCamera(e,e),this._renderContext.output=7,this._plugins.render(0,1,...ce),this._ensureBindParametersCamera(t,r),t.setGLViewport(this._rctx),this._renderContext.output=i}_renderOpaqueAndTransparentGeometry(e){this._renderContext.output=e,this._renderOpaqueGeometry(),this._renderTransparentGeometry()}_renderGeometryWithoutNormals(e){this._renderContext.output=e,this._plugins.render(...ge)}_precompileOpaqueGeometry(){this._plugins.precompile(...pe),this._nodes.precompile("opaque-color")}_renderOpaqueGeometry(){this._plugins.render(...pe)}_renderTransparentGeometry(){this._plugins.render(...me)}get _hasPhotoshopTerrain(){return this._plugins.produces(0,6)}get _needsTerrainDepth(){return this._highQualityTransparency&&this._hasPhotoshopTerrain}_renderPhotoshopTerrain(){if(!this._hasPhotoshopTerrain)return null;const e=this._framebufferSize,t=this.fboCache.acquire(e.width,e.height,"transparent terrain");return this.renderToTargets(()=>this._plugins.render(6),t,this._framebuffer.depth,A),this.performanceInfo.advance(oe.TRANSPARENT_TERRAIN),t}_renderTransparentGround(){this._plugins.render(...ce)}get _needsHUDVisibility(){return this._plugins.produces(this._renderContext.output,13)}_renderHUDVisibility(){if(!this._needsHUDVisibility)return void(this._bindParameters.hudVisibility=o(this._bindParameters.hudVisibility));const{width:e,height:t}=this._framebufferSize;let r=this._bindParameters.hudVisibility;r?.fbo?.width===e&&r?.fbo?.height===t||(r?.release(),r=this.fboCache.acquire(e,t,"hud visibility",4),this._bindParameters.hudVisibility=r);const i=this._bindParameters.geometryDepth;r.attachDepth(i||this._framebuffer.depth),this._rctx.bindFramebuffer(r.fbo),this._rctx.clearFramebuffer([0,1,0,1]),this._plugins.render(13),r.detachDepth(),this._framebuffer.bind(),this.performanceInfo.advance(oe.HUD_VISIBILITY)}_renderLineCallouts(e){if(this._bindParameters.hudRenderStyle=e,0===e){const e=()=>this._plugins.render(16),t=this._framebufferSize,r=this.fboCache.acquireDepth(13,t.width,t.height,"line callouts");this.renderToTargets(e,this._framebuffer.color,r,void 0,!0,!0),r.release()}else this._plugins.render(16)}_precompileHUD(e){if(this._precompileHUDOutput(e),this._hasHighlights){const t=this._renderContext.output;this._renderContext.output=8,this._precompileHUDOutput(e),this._renderContext.output=t}}_precompileHUDOutput(e){const t=this._bindParameters.hudRenderStyle;this._bindParameters.hudRenderStyle=e,this._oitEnabled&&N(this._renderContext.output)?(this._bindParameters.oitPass=1,this._plugins.precompile(...Pe),this._bindParameters.oitPass=2,this._plugins.precompile(...Pe),this._bindParameters.oitPass=0):this._plugins.precompile(...Pe),this._bindParameters.hudRenderStyle=t}_renderHUD(e,t){if(this._pluginsHas.hudElements){if(this._oitEnabled){const r=this._renderOIT(1,e);this._rctx.bindFramebuffer(t.fbo),this._compositingHelper.compositePreMultipliedAlpha(this._bindParameters,r.getTexture(),!1),r.release()}else if(this._renderContext.output=0,0===e){const t=()=>this._renderHUDElements(e),r=this._framebufferSize,i=this.fboCache.acquireDepth(13,r.width,r.height,"hud");this.renderToTargets(t,this._framebuffer.color,i,void 0,!0,!0),i.release()}else t.acquireDepth(13),this._rctx.bindFramebuffer(t.fbo),this._renderHUDElements(e),t.detachDepth();this.performanceInfo.advance(0===e?oe.HUD_OCCLUDED:oe.HUD)}}_renderHUDElements(e){this._bindParameters.hudRenderStyle=e,this._plugins.render(...Pe)}get _needsShadowHighlight(){return this.shadowsEnabled&&this._plugins.produces(4,2)}_renderHighlightPrepass(){if(!this._hasHighlights)return;const{fboCache:e,_rctx:t,_bindParameters:r}=this,i=this._framebufferSize,{highlights:s}=r,a=e.acquire(i.width,i.height,"highlights",s.length>V?3:1);a.acquireDepth(14);const n=this._plugins.produces(8,0);return n&&this._framebuffer.color.fbo&&a.fbo&&t.blitFramebuffer(this._framebuffer.color.fbo,a.fbo,1024),t.bindFramebuffer(a.fbo),t.gl.clearBufferuiv(6144,0,[0,0,0,0]),n||t.clear(1024),this._renderContext.output=8,t.bindFramebuffer(a.fbo),j(t,e,i,r,()=>this._renderHighlightGeometries()),a.detachDepth(),this.performanceInfo.advance(oe.HIGHLIGHTS),a}_renderHighlightGeometries(){this._plugins.render(...Ce),this._rctx.clear(256),this._renderHUDElements(2)}_renderShadowAccumulation(e,t,r,i){this._shadowAccumulator.updateDepthRange(e),this._shadowAccumulator.accumulating&&this._bindParameters.depth&&this._shadowAccumulator.renderAccumulation(this._bindParameters.depth,t,r,i)&&this.performanceInfo.advance(oe.ACCUMULATED_SHADOWS)}_precompileTransparentGeometry(){this._oitEnabled&&N(this._renderContext.output)?(this._bindParameters.oitPass=1,this._plugins.precompile(...me),this._bindParameters.oitPass=2,this._plugins.precompile(...me),this._bindParameters.oitPass=0):this._plugins.precompile(...me)}_renderOIT(e,t=2){const r=1===e,i=this._framebufferSize,s=r?()=>this._renderHUDElements(t):()=>this._renderTransparentGeometry(),a=this._bindParameters,n=this._renderContext.output;this._renderContext.output=0,a.oitPass=1;const h=r?"oit hud":"oit",o=this.fboCache.acquire(i.width,i.height,h,8),d=this._bindParameters.hasEmission&&!(1===e&&1===t);d&&o.acquireColor(_e,8,"oit emissive"),o.acquireColor(d?le:_e,7,"oit alpha"),r||o.attachDepth(this._framebuffer.depth),this._rctx.bindFramebuffer(o.fbo),this._rctx.clearFramebuffer([0,0,0,1]),d&&this._rctx.clearBuffer(1,E),s(),o.detachDepth(),a.oitPass=2;const _=this.fboCache.acquire(i.width,i.height,r?"oit hud front":"oit front");let l;return d&&_.acquireColor(_e,8,"oit emissive front"),r?_.acquireDepth(13):_.attachDepth(this._framebuffer.depth),this._rctx.bindFramebuffer(_.fbo),this._rctx.clearFramebuffer(A,r),s(),_.detachDepth(),a.oitPass=0,r?(l=this.fboCache.acquire(i.width,i.height,"oit hud composite"),this._rctx.bindFramebuffer(l.fbo),this._rctx.setClearColor(0,0,0,1e-13),this._rctx.clear(16384)):this._framebuffer.bind(),this._oitBlend??=new B(this._techniques),this._oitBlend.blend(this._rctx,o,_,a,d,!r),l?.detachDepth(),_.release(),o.release(),this._renderContext.output=n,l}_renderOpaque(){const e=this.plugins.produces(0,...pe);if(e){this._plugins.render(0,1);const e=this._framebuffer;e.update(e=>this._renderNodes(R.CUTFILL_COLOR,e)),e.update(e=>this._renderNodes(R.OPAQUE_TERRAIN,e)),e.bind(),this._plugins.render(2,3)}const t=this._framebuffer;this._renderTerrainDepth(),t.update(t=>this._renderNodes(I.OPAQUE,t,e)),this.fboCache.debugCallback?.(I.OPAQUE,t.color.fbo),t.update(e=>this._renderNodes(R.OPAQUE_ENVIRONMENT,e)),this.fboCache.debugCallback?.(R.OPAQUE_ENVIRONMENT,t.color.fbo),this._renderEdges(1)}_renderTransparent(e){const t=this._framebuffer;t.bind(),this._renderPlugins(21,oe.VOXEL),this._renderHiddenTransparentEdges(),e&&(this._oitEnabled?this._renderOIT(0):this._renderTransparentGeometry()),t.update(t=>this._renderNodes(I.TRANSPARENT,t,e)),this.fboCache.debugCallback?.(I.TRANSPARENT,t.color.fbo),this._renderGeometryDepth(),this._renderHUDVisibility(),this._needsTerrainDepth||this._plugins.render(16),this._renderEdges(0);const r=this._renderPhotoshopTerrain(),i=r?.getTexture();i&&this._bindParameters.hudVisibility&&(this._needsTerrainDepth?this._renderLineCallouts(0):(this._rctx.bindFramebuffer(this._bindParameters.hudVisibility?.fbo),this._compositingHelper.compositeHUD(this._bindParameters,i)),this._renderHUD(0,t.color)),this._bindParameters.cullAboveTerrain=!1,i&&(t.bind(),this._compositingHelper.compositePreMultipliedAlpha(this._bindParameters,i),r?.release(),this._needsTerrainDepth&&(this._renderEdges(1),e&&(this._oitEnabled?this._renderOIT(0):this._renderTransparentGeometry(),this.performanceInfo.advance(oe.TRANSPARENT)),this._renderEdges(0))),this._bindParameters.ssao=o(this._bindParameters.ssao),this._needsTerrainDepth&&this._renderLineCallouts(1),this._bindParameters.terrainDepthTest=!1,this._renderTransparentEnvironment()}_renderTransparentEnvironment(){this._shadowAccumulator.render(this._bindParameters),this.performanceInfo.advance(oe.APPLY_ACCUMULATED_SHADOWS),this._framebuffer.bind(),this._plugins.render(9),this.performanceInfo.advance(oe.TRANSPARENT_MATERIAL_WITHOUT_DEPTH)}_renderPlugins(e,t){this._plugins.produces(this._renderContext.output,e)&&(this._plugins.render(e),this.performanceInfo.advance(t))}_renderNodes(e,t,r=!1){if(t.setName(e),this._pluginInput.set(e,t),!this._nodes.produces(e))return r&&this.performanceInfo.advance(e),t;const i=this._nodes.render(t,this._pluginInput,this._releaseNormals);return this.performanceInfo.advance(e),i}blitFBO(e,t=v,r=!0){return this._blit??=new U(this._techniques),this._blit.blit(this._rctx,e,t,this._bindParameters),this._pluginInput.set(e.name,t),r&&e.release(),t}_ensureBindParametersCamera(e,t){this._bindParameters.camera=e,this._bindParameters.contentCamera=t}_ensureBindParametersSSR(e){if(this._bindParameters.ssr.lastFrameColor){null==this._ssrEnableTime&&(this._ssrEnableTime=e),this._renderContext.lastFrameCamera.equals(this._bindParameters.camera)?this._reprojectionMatrix=w:(P(Se,this._bindParameters.camera.viewMatrix),P(Te,this._bindParameters.camera.projectionMatrix),C(Ee,Se,Te),C(Ee,this._renderContext.lastFrameCamera.viewMatrix,Ee),C(Ee,this._renderContext.lastFrameCamera.projectionMatrix,Ee),this._reprojectionMatrix=Ee);const t=this.stage.view.qualitySettings.fadeDuration;this._bindParameters.ssr.fadeFactor=t>0?Math.min(t,e-this._ssrEnableTime)/t:1,this._bindParameters.ssr.fadeFactor<1&&this._requestRender()}else this._reprojectionMatrix=w,this._ssrEnableTime=null}addRenderNode(e){this._nodes.add(e),this._requestRender()}removeRenderNode(e){this._nodes.remove(e),this._requestRender()}updateLighting(e,t,r,i){this._bindParameters.updateLighting(e,t,r,i),this._requestRender(1)}get usedMemory(){return{fbos:this.fboCache.usedMemory,plugins:this._plugins.usedMemory,edges:this.edgeView?.usedMemory??0}}renderToTargets(e,t,r,i,s=!1,a=!1){t.attachDepth(r),this._rctx.bindFramebuffer(t.fbo),this._rctx.clearFramebuffer(i,s,a),e(),t.detachDepth()}get test(){}};e([f({readOnly:!0})],ue.prototype,"highResolutionAtmosphere",null),e([f()],ue.prototype,"_edgeView",void 0),e([f()],ue.prototype,"updating",null),ue=e([g("esri.views.3d.webgl-engine.lib.Renderer")],ue);const pe=[0,1,2,3],me=[7,8,4,5],ce=[6,7,8],fe=[0,1,2,4,...ce],ge=[3,5],be=[2,4,9],Pe=[17,14,15],Ce=[4,5,2,3,0,1,...ce],we=[4,9,5,12],Te=T(),Se=T(),Ee=T();function xe(e){return t=>e.immediate.schedule(t)}export{ue as Renderer};
@@ -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 t from"../../../../core/Accessor.js";import{toConst as r}from"../../../../core/compilerUtils.js";import{unpackFloatRGBA as i}from"../../../../core/floatRGBA.js";import has from"../../../../core/has.js";import s from"../../../../core/Logger.js";import{removeMaybe as n,destroyMaybe as o}from"../../../../core/maybe.js";import{when as a,watch as h,initial as l,syncAndInitial as p}from"../../../../core/reactiveUtils.js";import{addFrameTask as d}from"../../../../core/scheduling.js";import{Milliseconds as c}from"../../../../core/time.js";import{property as m,subclass as u}from"../../../../core/accessorSupport/decorators.js";import{isMoon as f,isMars as _}from"../../../../geometry/support/spatialReferenceUtils.js";import{ChapmanAtmosphere as g}from"../../environment/ChapmanAtmosphere.js";import{CloudsComposition as w}from"../../environment/CloudsComposition.js";import{Fog as x}from"../../environment/Fog.js";import{LocalAtmosphere as v}from"../../environment/LocalAtmosphere.js";import{MarsAtmosphere as y}from"../../environment/MarsAtmosphere.js";import{ComponentObjectCollection as j}from"../collections/Component/ComponentObjectCollection.js";import{ShaderTechniqueConstructionContext as R}from"../core/shaderTechnique/ShaderTechniqueConstructionContext.js";import{ShaderTechniqueRepository as b}from"../core/shaderTechnique/ShaderTechniqueRepository.js";import{ObjectAndLayerIDRenderNode as C}from"../effects/geometry/ObjectAndLayerIDRenderNode.js";import{olidEnabled as T}from"../effects/geometry/olidUtils.js";import{RenderOccludedRenderNode as A}from"../effects/geometry/RenderOccludedRenderNode.js";import{GlowRenderNode as O}from"../effects/glow/GlowRenderNode.js";import{Haze as S}from"../effects/haze/Haze.js";import{Highlight as q}from"../effects/highlight/Highlight.js";import{ShadowHighlight as U}from"../effects/highlight/ShadowHighlight.js";import{Magnifier as M}from"../effects/magnifier/Magnifier.js";import{SMAA as k}from"../effects/smaa/SMAA.js";import{SSAO as L}from"../effects/ssao/SSAO.js";import{Stars as D}from"../effects/stars/Stars.js";import H from"../lib/CompositingHelper.js";import{GLMaterialRepository as F}from"../lib/GLMaterialRepository.js";import{ObjectAndLayerIdRenderHelper as W}from"../lib/ObjectAndLayerIdRenderHelper.js";import{Renderer as B}from"../lib/Renderer.js";import{RenderingContext as E}from"../lib/RenderingContext.js";import{RenderingContextOptions as N}from"../lib/RenderingContextOptions.js";import{TextureRepository as z}from"../lib/TextureRepository.js";import{createMarkerTextureRepository as G}from"../materials/markerTextureRepository.js";import{createStippleTextureRepository as P}from"../materials/stippleTextureRepository.js";import{WaterTextureRepository as I}from"../materials/internal/WaterTextureRepository.js";import{getContextCache as V}from"./contextCache.js";import{removeLoadedShaderModules as X}from"./renderUtils.js";import{ScreenshotManager as Q,ScreenshotContext as J}from"./ScreenshotManager.js";import{contextCache as K}from"./testUtils.js";import{noBudget as Y}from"../../../support/Scheduler.js";import{checkWebGLError as Z}from"../../../webgl/checkWebGLError.js";let $=class extends t{constructor(e,t){super(e),this._waterTextures=new I,this.olidRenderHelper=T()?new W:null,this._needsUpdate=!0,this._needsRender=!0,this._idleSuspend=!0,this._needsWaterReflectionUpdate=!1,this._lastAnimationUpdate=0,this.glow=null,this.fog=null,this.test=null;try{this._initializeContext(t)}catch(n){return void console.error("Failed to initialize context",n)}const{memoryController:r}=t.view.resourceController;this._stippleTextures=P(this._rctx,r),this.notifyChange("stippleTextures"),this._markerTextures=G(this._rctx,r),this.notifyChange("markerTextures"),this._techniques=new b(new R(this._rctx,this.stippleTextures,this.waterTextures,this.markerTextures)),this._textures=new z(t),this.addHandles(this._textures.events.on("changed",e=>this.requestRender(e)));const i=new F(this._textures,this._techniques,()=>this.requestRender(),()=>this.requestRender());this._compositingHelper=new H(this._rctx,this._techniques),this._renderer=new B(t,i,this._techniques,this._rctx,this._compositingHelper,e=>this.requestRender(e)),this.notifyChange("renderer"),this.addHandles([a(()=>t.view.ready,()=>this._createRenderNodes(),l),h(()=>this.waterTextures?.updating,()=>this.requestRender(),l),h(()=>t.view.qualityProfile,e=>this.renderer?.updateRenderFeatures(e),p)]);const s={renderScene:(e,t,r,i)=>this.renderer.render(e,t,r,i),requestRenderScene:e=>this.requestRender(e),prepareOverlay:()=>t.options.screenshot.prepareOverlay(),renderOverlay:(e,r,i)=>t.options.screenshot.renderOverlay(e,r,i)};this._screenshotManager=new Q(this._rctx,s,e=>t.view.overlayManager.updateOverlays(Y,e.camera,0)),this._registerFrameTask(t)}destroy(){const e=this.stage?.container;e?.contains(this._canvas)&&e.removeChild(this._canvas),this._frameTask=n(this._frameTask),this._techniques=o(this._techniques),this._componentObjectCollection=o(this._componentObjectCollection),this._set("componentObjectCollection",null),this._screenshotManager=o(this._screenshotManager),o(this.renderer),this._textures=o(this._textures),o(this.waterTextures),o(this.markerTextures),o(this.stippleTextures),this._waterTextures=null,this._markerTextures=null,this._stippleTextures=null,this._canvas=null,this._rctx=o(this._rctx),this._compositingHelper=null,this._renderer=null,this._set("renderer",null),this.test?.destroy()}_createRenderNodes(){const{view:e,viewingMode:t}=this.stage;new D({view:e}),f(e.spatialReference)||(2===t?(new v({view:e}),this.glow=new O({view:e})):_(e.spatialReference)?(new y({view:e}),this.glow=new O({view:e})):(new g({view:e}),new w({view:e}),this.glow=new O({view:e}),new S({view:e}),this.fog=new x({view:e}))),new L({view:e,isEnabled:()=>this.renderer.hasSSAO}),new k({view:e,isEnabled:()=>this.renderer.hasSMAA}),new M({view:e}),new q({view:e}),new U({view:e,viewingMode:t}),new A({view:e}),T()&&new C({view:e})}requestRender(e=1){switch(e){case 2:this.view.state.fading=!0;case 1:this._needsUpdate=!0;case 0:this._needsRender=!0}}get updating(){return this._needsUpdate||this._needsWaterReflectionUpdate||this.renderer.updating||this._textures.updating||this.waterTextures.updating}get textures(){return this._textures}get techniques(){return this._techniques}get compositingHelper(){return this._compositingHelper}setIdleSuspend(e){this._idleSuspend!==e&&(this._idleSuspend=e,this.requestRender())}get renderingContext(){return this._rctx}get capabilities(){return this._rctx.capabilities}get canvas(){return this._canvas}takeScreenshot(e){return this._screenshotManager.takeScreenshot(r(e))}getAlpha(){return!!this._rctx.contextAttributes.alpha}getMinimalDepthForArea(e,t,r,s,n,o=n){const a=s.constrainWindowSize(t,r,n*s.pixelRatio,o*s.pixelRatio),h=this._ensureLinearDepthArrayBuffer(a);this.renderer.readMainDepth(a,h);const l=(e,t,r)=>i(t,e)*(r[1]-r[0])+r[0];let p=Number.MAX_VALUE;for(let i=0;i<a[2]*a[3];i++){const e=l(4*i,h,s.nearFar);p>e&&e!==s.nearFar[0]&&e!==s.nearFar[1]&&(p=e)}if(e){const i=e.pickDepth(t*s.pixelRatio,r*s.pixelRatio,s);null!=i&&p>i&&i!==s.nearFar[0]&&i!==s.nearFar[1]&&(p=i)}return p===Number.MAX_VALUE?void 0:p}_ensureLinearDepthArrayBuffer(e){const t=4*e[2]*e[3];return(null==this._tmpDepthBuffer||this._tmpDepthBuffer.byteLength<t)&&(this._tmpDepthBuffer=new Uint8Array(t)),this._tmpDepthBuffer}async reloadShaders(){X(),await this._techniques.reloadAll(),this.renderer.overlay?.reloadShaders(),this.requestRender()}_registerFrameTask(e){const t=e.view.state;let r=!1,i=0,s=!1;const n={preRender:({time:s})=>{r=this.updating,i=this._needsUpdate?1:0,this._needsRender&&this.renderer.updateSceneDepthRange(t.camera),e.commitSyncLayers(),s=this.test?.time??s;const n=c(s-this._lastAnimationUpdate);this.view.state.animationsEnabled&&(n>this.renderer.animationTimestep||r||this._needsRender)&&(this.renderer.updateAnimation(t,s)&&this.requestRender(0),this._lastAnimationUpdate=s)},render:({time:e})=>{if((this._needsRender||!this._idleSuspend||!this.renderer.isCameraFinal||this._needsWaterReflectionUpdate)&&t.camera.fullWidth>0&&t.camera.fullHeight>0){const r=this._needsUpdate&&this._idleSuspend&&this.renderer.isCameraFinal;this._needsRender=!1,this._needsUpdate=!1,this._needsWaterReflectionUpdate=!1,e=this.test?.time??e,this.renderer.render(t,e,0),s=!0,r&&this.renderer.hasReflections&&(this.requestRender(0),this._needsWaterReflectionUpdate=!0)}},update:({time:e})=>{this.view.state.animationsEnabled&&this._textures.update();const r=new J(t,this.renderer.fboCache);e=this.test?.time??e,this._screenshotManager.update(r,e)},finish:()=>{s&&(this.renderer.finish(2===t.mode?i:1),s=!1)}};this._frameTask=d(n)}_initializeContext(e){const{options:t}=e,r=t.canvas??document.createElement("canvas");r.setAttribute("style","width: 100%; height:100%; display:block;"),this._canvas=r;const i={alpha:t.alpha||!1,premultipliedAlpha:!0,antialias:!1,depth:!0,stencil:t.stencil??!0,powerPreference:"high-performance",preserveDrawingBuffer:t.preserveDrawingBuffer??!1},n=r.getContext("webgl2",i);if(null==n)return void s.getLogger(this).error("A WebGL2 context could not be created.");Z(n,!0),this._rctx=ee(n,e),this._loadShaderOnlyExtensions(),!t.alpha&&this._rctx.contextAttributes.alpha&&s.getLogger(this).error("WebGL context has alpha channel even though no alpha channel was requested");const{container:o}=e;!this._rctx.contextAttributes.alpha&&has("safari")>=11&&(o.style.backgroundColor="black"),o.contains(r)||o.appendChild(r)}_loadShaderOnlyExtensions(){this._rctx.capabilities.enable("textureFloatLinear")}get _viewingMode(){return this.stage.viewingMode}get stage(){return this.view.stage}get stippleTextures(){return this._stippleTextures}get markerTextures(){return this._markerTextures}get waterTextures(){return this._waterTextures}getObjectAndLayerIdColor(e){return this.olidRenderHelper?.getObjectAndLayerIdColor(e)}get renderer(){return this._renderer}get componentObjectCollection(){return null==this._componentObjectCollection&&(this._componentObjectCollection=new j(this.renderer.renderPassManager,this._viewingMode,this.view.spatialReference.isWebMercator)),this._componentObjectCollection}set componentObjectCollection(e){this._componentObjectCollection=e}updateQualitySettings(e){null!=this.test?.time&&null!=e.fadeDuration&&(this.test.savedFadeDuration=e.fadeDuration,e.fadeDuration=c(0)),this._rctx.updateOptions({maxPreferredTexturePixels:this.view.qualitySettings.maxTexturePixels})}};function ee(e,t){const r=new N(t);if(K.enabled){let t=te.get(e);return 1===t?.refCount?(t.configure(r),t.ref(),t):(t=new E(e,r),te.set(e,t),t.ref(),t)}return new E(e,r)}e([m({type:Boolean,readOnly:!0})],$.prototype,"updating",null),e([m({constructOnly:!0})],$.prototype,"view",void 0),e([m({readOnly:!0})],$.prototype,"stippleTextures",null),e([m({readOnly:!0})],$.prototype,"markerTextures",null),e([m({readOnly:!0})],$.prototype,"waterTextures",null),e([m({readOnly:!0})],$.prototype,"olidRenderHelper",void 0),e([m()],$.prototype,"_textures",void 0),e([m({readOnly:!0})],$.prototype,"renderer",null),e([m()],$.prototype,"_screenshotManager",void 0),e([m()],$.prototype,"componentObjectCollection",null),e([m()],$.prototype,"_componentObjectCollection",void 0),e([m()],$.prototype,"_needsUpdate",void 0),e([m()],$.prototype,"_needsWaterReflectionUpdate",void 0),$=e([u("esri.views.3d.webgl-engine.parts.RenderView")],$);const te=V();export{$ as RenderView};
5
+ import{__decorate as e}from"tslib";import t from"../../../../core/Accessor.js";import{toConst as r}from"../../../../core/compilerUtils.js";import{unpackFloatRGBA as i}from"../../../../core/floatRGBA.js";import has from"../../../../core/has.js";import s from"../../../../core/Logger.js";import{removeMaybe as n,destroyMaybe as o}from"../../../../core/maybe.js";import{when as a,watch as h,initial as l,syncAndInitial as p}from"../../../../core/reactiveUtils.js";import{addFrameTask as d}from"../../../../core/scheduling.js";import{Milliseconds as c}from"../../../../core/time.js";import{property as m,subclass as u}from"../../../../core/accessorSupport/decorators.js";import{isMoon as f,isMars as _}from"../../../../geometry/ellipsoidUtils.js";import{ChapmanAtmosphere as g}from"../../environment/ChapmanAtmosphere.js";import{CloudsComposition as w}from"../../environment/CloudsComposition.js";import{Fog as x}from"../../environment/Fog.js";import{LocalAtmosphere as v}from"../../environment/LocalAtmosphere.js";import{MarsAtmosphere as y}from"../../environment/MarsAtmosphere.js";import{ComponentObjectCollection as j}from"../collections/Component/ComponentObjectCollection.js";import{ShaderTechniqueConstructionContext as R}from"../core/shaderTechnique/ShaderTechniqueConstructionContext.js";import{ShaderTechniqueRepository as b}from"../core/shaderTechnique/ShaderTechniqueRepository.js";import{ObjectAndLayerIDRenderNode as C}from"../effects/geometry/ObjectAndLayerIDRenderNode.js";import{olidEnabled as T}from"../effects/geometry/olidUtils.js";import{RenderOccludedRenderNode as A}from"../effects/geometry/RenderOccludedRenderNode.js";import{GlowRenderNode as O}from"../effects/glow/GlowRenderNode.js";import{Haze as S}from"../effects/haze/Haze.js";import{Highlight as q}from"../effects/highlight/Highlight.js";import{ShadowHighlight as U}from"../effects/highlight/ShadowHighlight.js";import{Magnifier as M}from"../effects/magnifier/Magnifier.js";import{SMAA as k}from"../effects/smaa/SMAA.js";import{SSAO as L}from"../effects/ssao/SSAO.js";import{Stars as D}from"../effects/stars/Stars.js";import H from"../lib/CompositingHelper.js";import{GLMaterialRepository as F}from"../lib/GLMaterialRepository.js";import{ObjectAndLayerIdRenderHelper as W}from"../lib/ObjectAndLayerIdRenderHelper.js";import{Renderer as B}from"../lib/Renderer.js";import{RenderingContext as E}from"../lib/RenderingContext.js";import{RenderingContextOptions as N}from"../lib/RenderingContextOptions.js";import{TextureRepository as z}from"../lib/TextureRepository.js";import{createMarkerTextureRepository as G}from"../materials/markerTextureRepository.js";import{createStippleTextureRepository as P}from"../materials/stippleTextureRepository.js";import{WaterTextureRepository as I}from"../materials/internal/WaterTextureRepository.js";import{getContextCache as V}from"./contextCache.js";import{removeLoadedShaderModules as X}from"./renderUtils.js";import{ScreenshotManager as Q,ScreenshotContext as J}from"./ScreenshotManager.js";import{contextCache as K}from"./testUtils.js";import{noBudget as Y}from"../../../support/Scheduler.js";import{checkWebGLError as Z}from"../../../webgl/checkWebGLError.js";let $=class extends t{constructor(e,t){super(e),this._waterTextures=new I,this.olidRenderHelper=T()?new W:null,this._needsUpdate=!0,this._needsRender=!0,this._idleSuspend=!0,this._needsWaterReflectionUpdate=!1,this._lastAnimationUpdate=0,this.glow=null,this.fog=null,this.test=null;try{this._initializeContext(t)}catch(n){return void console.error("Failed to initialize context",n)}const{memoryController:r}=t.view.resourceController;this._stippleTextures=P(this._rctx,r),this.notifyChange("stippleTextures"),this._markerTextures=G(this._rctx,r),this.notifyChange("markerTextures"),this._techniques=new b(new R(this._rctx,this.stippleTextures,this.waterTextures,this.markerTextures)),this._textures=new z(t),this.addHandles(this._textures.events.on("changed",e=>this.requestRender(e)));const i=new F(this._textures,this._techniques,()=>this.requestRender(),()=>this.requestRender());this._compositingHelper=new H(this._rctx,this._techniques),this._renderer=new B(t,i,this._techniques,this._rctx,this._compositingHelper,e=>this.requestRender(e)),this.notifyChange("renderer"),this.addHandles([a(()=>t.view.ready,()=>this._createRenderNodes(),l),h(()=>this.waterTextures?.updating,()=>this.requestRender(),l),h(()=>t.view.qualityProfile,e=>this.renderer?.updateRenderFeatures(e),p)]);const s={renderScene:(e,t,r,i)=>this.renderer.render(e,t,r,i),requestRenderScene:e=>this.requestRender(e),prepareOverlay:()=>t.options.screenshot.prepareOverlay(),renderOverlay:(e,r,i)=>t.options.screenshot.renderOverlay(e,r,i)};this._screenshotManager=new Q(this._rctx,s,e=>t.view.overlayManager.updateOverlays(Y,e.camera,0)),this._registerFrameTask(t)}destroy(){const e=this.stage?.container;e?.contains(this._canvas)&&e.removeChild(this._canvas),this._frameTask=n(this._frameTask),this._techniques=o(this._techniques),this._componentObjectCollection=o(this._componentObjectCollection),this._set("componentObjectCollection",null),this._screenshotManager=o(this._screenshotManager),o(this.renderer),this._textures=o(this._textures),o(this.waterTextures),o(this.markerTextures),o(this.stippleTextures),this._waterTextures=null,this._markerTextures=null,this._stippleTextures=null,this._canvas=null,this._rctx=o(this._rctx),this._compositingHelper=null,this._renderer=null,this._set("renderer",null),this.test?.destroy()}_createRenderNodes(){const{view:e,viewingMode:t}=this.stage;new D({view:e}),f(e.spatialReference)||(2===t?(new v({view:e}),this.glow=new O({view:e})):_(e.spatialReference)?(new y({view:e}),this.glow=new O({view:e})):(new g({view:e}),new w({view:e}),this.glow=new O({view:e}),new S({view:e}),this.fog=new x({view:e}))),new L({view:e,isEnabled:()=>this.renderer.hasSSAO}),new k({view:e,isEnabled:()=>this.renderer.hasSMAA}),new M({view:e}),new q({view:e}),new U({view:e,viewingMode:t}),new A({view:e}),T()&&new C({view:e})}requestRender(e=1){switch(e){case 2:this.view.state.fading=!0;case 1:this._needsUpdate=!0;case 0:this._needsRender=!0}}get updating(){return this._needsUpdate||this._needsWaterReflectionUpdate||this.renderer.updating||this._textures.updating||this.waterTextures.updating}get textures(){return this._textures}get techniques(){return this._techniques}get compositingHelper(){return this._compositingHelper}setIdleSuspend(e){this._idleSuspend!==e&&(this._idleSuspend=e,this.requestRender())}get renderingContext(){return this._rctx}get capabilities(){return this._rctx.capabilities}get canvas(){return this._canvas}takeScreenshot(e){return this._screenshotManager.takeScreenshot(r(e))}getAlpha(){return!!this._rctx.contextAttributes.alpha}getMinimalDepthForArea(e,t,r,s,n,o=n){const a=s.constrainWindowSize(t,r,n*s.pixelRatio,o*s.pixelRatio),h=this._ensureLinearDepthArrayBuffer(a);this.renderer.readMainDepth(a,h);const l=(e,t,r)=>i(t,e)*(r[1]-r[0])+r[0];let p=Number.MAX_VALUE;for(let i=0;i<a[2]*a[3];i++){const e=l(4*i,h,s.nearFar);p>e&&e!==s.nearFar[0]&&e!==s.nearFar[1]&&(p=e)}if(e){const i=e.pickDepth(t*s.pixelRatio,r*s.pixelRatio,s);null!=i&&p>i&&i!==s.nearFar[0]&&i!==s.nearFar[1]&&(p=i)}return p===Number.MAX_VALUE?void 0:p}_ensureLinearDepthArrayBuffer(e){const t=4*e[2]*e[3];return(null==this._tmpDepthBuffer||this._tmpDepthBuffer.byteLength<t)&&(this._tmpDepthBuffer=new Uint8Array(t)),this._tmpDepthBuffer}async reloadShaders(){X(),await this._techniques.reloadAll(),this.renderer.overlay?.reloadShaders(),this.requestRender()}_registerFrameTask(e){const t=e.view.state;let r=!1,i=0,s=!1;const n={preRender:({time:s})=>{r=this.updating,i=this._needsUpdate?1:0,this._needsRender&&this.renderer.updateSceneDepthRange(t.camera),e.commitSyncLayers(),s=this.test?.time??s;const n=c(s-this._lastAnimationUpdate);this.view.state.animationsEnabled&&(n>this.renderer.animationTimestep||r||this._needsRender)&&(this.renderer.updateAnimation(t,s)&&this.requestRender(0),this._lastAnimationUpdate=s)},render:({time:e})=>{if((this._needsRender||!this._idleSuspend||!this.renderer.isCameraFinal||this._needsWaterReflectionUpdate)&&t.camera.fullWidth>0&&t.camera.fullHeight>0){const r=this._needsUpdate&&this._idleSuspend&&this.renderer.isCameraFinal;this._needsRender=!1,this._needsUpdate=!1,this._needsWaterReflectionUpdate=!1,e=this.test?.time??e,this.renderer.render(t,e,0),s=!0,r&&this.renderer.hasReflections&&(this.requestRender(0),this._needsWaterReflectionUpdate=!0)}},update:({time:e})=>{this.view.state.animationsEnabled&&this._textures.update();const r=new J(t,this.renderer.fboCache);e=this.test?.time??e,this._screenshotManager.update(r,e)},finish:()=>{s&&(this.renderer.finish(2===t.mode?i:1),s=!1)}};this._frameTask=d(n)}_initializeContext(e){const{options:t}=e,r=t.canvas??document.createElement("canvas");r.setAttribute("style","width: 100%; height:100%; display:block;"),this._canvas=r;const i={alpha:t.alpha||!1,premultipliedAlpha:!0,antialias:!1,depth:!0,stencil:t.stencil??!0,powerPreference:"high-performance",preserveDrawingBuffer:t.preserveDrawingBuffer??!1},n=r.getContext("webgl2",i);if(null==n)return void s.getLogger(this).error("A WebGL2 context could not be created.");Z(n,!0),this._rctx=ee(n,e),this._loadShaderOnlyExtensions(),!t.alpha&&this._rctx.contextAttributes.alpha&&s.getLogger(this).error("WebGL context has alpha channel even though no alpha channel was requested");const{container:o}=e;!this._rctx.contextAttributes.alpha&&has("safari")>=11&&(o.style.backgroundColor="black"),o.contains(r)||o.appendChild(r)}_loadShaderOnlyExtensions(){this._rctx.capabilities.enable("textureFloatLinear")}get _viewingMode(){return this.stage.viewingMode}get stage(){return this.view.stage}get stippleTextures(){return this._stippleTextures}get markerTextures(){return this._markerTextures}get waterTextures(){return this._waterTextures}getObjectAndLayerIdColor(e){return this.olidRenderHelper?.getObjectAndLayerIdColor(e)}get renderer(){return this._renderer}get componentObjectCollection(){return null==this._componentObjectCollection&&(this._componentObjectCollection=new j(this.renderer.renderPassManager,this._viewingMode,this.view.spatialReference.isWebMercator)),this._componentObjectCollection}set componentObjectCollection(e){this._componentObjectCollection=e}updateQualitySettings(e){null!=this.test?.time&&null!=e.fadeDuration&&(this.test.savedFadeDuration=e.fadeDuration,e.fadeDuration=c(0)),this._rctx.updateOptions({maxPreferredTexturePixels:this.view.qualitySettings.maxTexturePixels})}};function ee(e,t){const r=new N(t);if(K.enabled){let t=te.get(e);return 1===t?.refCount?(t.configure(r),t.ref(),t):(t=new E(e,r),te.set(e,t),t.ref(),t)}return new E(e,r)}e([m({type:Boolean,readOnly:!0})],$.prototype,"updating",null),e([m({constructOnly:!0})],$.prototype,"view",void 0),e([m({readOnly:!0})],$.prototype,"stippleTextures",null),e([m({readOnly:!0})],$.prototype,"markerTextures",null),e([m({readOnly:!0})],$.prototype,"waterTextures",null),e([m({readOnly:!0})],$.prototype,"olidRenderHelper",void 0),e([m()],$.prototype,"_textures",void 0),e([m({readOnly:!0})],$.prototype,"renderer",null),e([m()],$.prototype,"_screenshotManager",void 0),e([m()],$.prototype,"componentObjectCollection",null),e([m()],$.prototype,"_componentObjectCollection",void 0),e([m()],$.prototype,"_needsUpdate",void 0),e([m()],$.prototype,"_needsWaterReflectionUpdate",void 0),$=e([u("esri.views.3d.webgl-engine.parts.RenderView")],$);const te=V();export{$ as RenderView};
@@ -2,46 +2,54 @@
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{set as e}from"../../../../core/libs/gl-matrix-2/math/vec2.js";import{create as t}from"../../../../core/libs/gl-matrix-2/factories/vec2f64.js";import{fadeInTime as a,fadeOutTime as i}from"../../support/flow/constants.js";import{Float2PassUniform as o}from"../core/shaderModules/Float2PassUniform.js";import{FloatPassUniform as m}from"../core/shaderModules/FloatPassUniform.js";import{glsl as n}from"../core/shaderModules/glsl.js";function s(t,s){const{hasAnimation:l,animation:T}=s;if(!l)return;const{attributes:f,varyings:v,vertex:c,fragment:p}=t;f.add("timeStamps","vec4"),v.add("vTimeStamp","float"),v.add("vFirstTime","float"),v.add("vLastTime","float"),v.add("vTransitionType","float"),c.main.add(n`vTimeStamp = timeStamps.x;
5
+ import{set as t}from"../../../../core/libs/gl-matrix-2/math/vec2.js";import{create as a}from"../../../../core/libs/gl-matrix-2/factories/vec2f64.js";import{fadeInTime as e,fadeOutTime as i}from"../../support/flow/constants.js";import{Float2PassUniform as o}from"../core/shaderModules/Float2PassUniform.js";import{FloatPassUniform as m}from"../core/shaderModules/FloatPassUniform.js";import{glsl as n}from"../core/shaderModules/glsl.js";function l(a,l){const{hasAnimation:s,animation:p}=l;if(!s)return;const{attributes:f,varyings:T,vertex:u,fragment:c}=a;f.add("timeStamps","vec4"),T.add("vTimeStamp","float"),T.add("vFirstTime","float"),T.add("vLastTime","float"),T.add("vTransitionType","float"),u.main.add(n`vTimeStamp = timeStamps.x;
6
6
  vFirstTime = timeStamps.y;
7
7
  vLastTime = timeStamps.z;
8
- vTransitionType = timeStamps.w;`),3===T&&p.constants.add("decayRate","float",2.3),p.code.add(n`
8
+ vTransitionType = timeStamps.w;`),3===p&&c.constants.add("decayRate","float",2.3),c.code.add(n`
9
9
  float getTrailOpacity(float x) {
10
- ${r(T)}
11
- }`),p.uniforms.add(new m("timeElapsed",e=>e.timeElapsed),new m("trailLength",e=>e.trailLength),new m("speed",e=>e.animationSpeed),new o("startEndTime",t=>e(d,t.startTime,t.endTime))),p.constants.add("fadeInTime","float",a),p.constants.add("fadeOutTime","float",i),p.constants.add("incomingTransition","int",0),p.constants.add("outgoingTransition","int",2),p.code.add(n`float fadeIn(float x) {
10
+ if (x < 0.0) {
11
+ return 0.0;
12
+ }
13
+
14
+ ${d(p)}
15
+ }`),c.uniforms.add(new m("timeElapsed",t=>t.timeElapsed),new m("trailLength",t=>t.trailLength),new m("speed",t=>t.animationSpeed),new o("startEndTime",a=>t(r,a.startTime,a.endTime))),c.constants.add("fadeInTime","float",e),c.constants.add("fadeOutTime","float",i),c.constants.add("incomingTransition","int",0),c.constants.add("outgoingTransition","int",2),c.code.add(n`float fadeIn(float x) {
12
16
  return smoothstep(0.0, fadeInTime, x);
13
17
  }
14
18
  float fadeOut(float x) {
15
19
  return isinf(fadeOutTime) ? 1.0 : smoothstep(fadeOutTime, 0.0, x);
16
20
  }
21
+ void updateAlphaIf(inout float alpha, bool condition, float newAlpha) {
22
+ alpha = condition ? min(alpha, newAlpha) : alpha;
23
+ }
17
24
  vec4 animate(vec4 color) {
18
25
  float startTime = startEndTime[0];
19
26
  float endTime = startEndTime[1];
20
27
  float totalTime = vLastTime - vFirstTime;
28
+ float totalTimeWithFadeOut = totalTime + min(fadeOutTime * speed, trailLength);
29
+ float originTime = -vFirstTime;
21
30
  float actualEndTime = int(vTransitionType) == outgoingTransition ? min(endTime, startTime + vLastTime / speed) : endTime;
22
31
  vec4 animatedColor = color;
23
32
  if (speed == 0.0) {
24
- animatedColor.a *= getTrailOpacity((totalTime - (vTimeStamp - vFirstTime)) / trailLength);
25
- animatedColor.a *= isinf(actualEndTime) ? 1.0 : fadeOut(timeElapsed - actualEndTime);
26
- animatedColor.a *= fadeIn(timeElapsed - startTime);
33
+ float alpha = getTrailOpacity((totalTimeWithFadeOut - (vTimeStamp - vFirstTime)) / trailLength);
34
+ updateAlphaIf(alpha, !isinf(actualEndTime), fadeOut(timeElapsed - actualEndTime));
35
+ updateAlphaIf(alpha, true, fadeIn(timeElapsed - startTime));
36
+ animatedColor.a *= alpha;
27
37
  return animatedColor;
28
38
  }
29
- float relativeStartTime = mod(startTime, totalTime);
30
- float vHeadRelativeToFirst = mod((timeElapsed - relativeStartTime) * speed - vFirstTime, totalTime);
31
- float vRelativeToHead = vHeadRelativeToFirst + vFirstTime - vTimeStamp;
32
- bool inPreviousCycle = vRelativeToHead < 0.0;
33
- vRelativeToHead += inPreviousCycle ? totalTime : 0.0;
39
+ float relativeStartTime = mod(startTime, totalTimeWithFadeOut);
40
+ float shiftedTimeElapsed = timeElapsed - relativeStartTime + originTime;
41
+ float headRelativeToFirst = mod(shiftedTimeElapsed * speed, totalTimeWithFadeOut);
42
+ float vRelativeToHead = headRelativeToFirst - originTime - vTimeStamp;
34
43
  float vAbsoluteTime = timeElapsed - vRelativeToHead / speed;
35
- if (vAbsoluteTime > actualEndTime) {
36
- vRelativeToHead = (timeElapsed - relativeStartTime) * speed - vTimeStamp;
37
- vAbsoluteTime = timeElapsed - vRelativeToHead / speed;
44
+ if (startTime > timeElapsed) {
45
+ return vec4(0.0);
38
46
  }
39
- animatedColor *= step(startTime, vAbsoluteTime);
40
- animatedColor *= step(vAbsoluteTime, actualEndTime);
41
- animatedColor.a *= isinf(actualEndTime) ? 1.0 : fadeOut(timeElapsed - actualEndTime);
42
- animatedColor.a *= inPreviousCycle ? fadeOut(vHeadRelativeToFirst / speed) : 1.0;
43
- animatedColor.a *= getTrailOpacity(vRelativeToHead / trailLength);
44
- animatedColor.a *= int(vTransitionType) == incomingTransition ? fadeIn(vAbsoluteTime - startTime) : 1.0;
45
- animatedColor.a *= fadeIn(vTimeStamp - vFirstTime);
47
+ float alpha = getTrailOpacity(vRelativeToHead / trailLength);
48
+ updateAlphaIf(alpha, true, fadeIn(timeElapsed - startTime));
49
+ updateAlphaIf(alpha, !isinf(actualEndTime), fadeOut(timeElapsed - actualEndTime));
50
+ updateAlphaIf(alpha, int(vTransitionType) != incomingTransition, step(startTime, vAbsoluteTime));
51
+ updateAlphaIf(alpha, headRelativeToFirst > totalTime, fadeOut((headRelativeToFirst - totalTime) / speed));
52
+ updateAlphaIf(alpha, true, fadeIn(vTimeStamp - vFirstTime));
53
+ animatedColor.a *= alpha;
46
54
  return animatedColor;
47
- }`)}function r(e){switch(e){case 2:return"return x >= 0.0 && x <= 1.0 ? 1.0 : 0.0;";case 3:return"float cutOff = exp(-decayRate);\n return (exp(-decayRate * x) - cutOff) / (1.0 - cutOff);";default:return"return 1.0;"}}const d=t();export{s as AnimatedLine};
55
+ }`)}function d(t){switch(t){case 2:return"return x >= 0.0 && x <= 1.0 ? 1.0 : 0.0;";case 3:return"float cutOff = exp(-decayRate);\n return (exp(-decayRate * x) - cutOff) / (1.0 - cutOff);";default:return"return 1.0;"}}const r=a();export{l as AnimatedLine};
@@ -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{disposeMaybe as t}from"../../../../core/maybe.js";import{recordPerformance as e}from"../../../../core/performance.js";import r from"../../../../core/PerformanceSampler.js";import{Milliseconds as i}from"../../../../core/time.js";import{RenderCategory as s,InternalRenderCategory as a}from"../../webgl.js";import{createElapsedTimerPool as m}from"../../../webgl/TimerPool.js";const o={OVERLAY:"overlay",PREPARE:"prepare",SHADOW_MAP:"shadow map",DEPTH:"depth",ACCUMULATED_SHADOWS:"accumulated shadows",APPLY_ACCUMULATED_SHADOWS:"apply accumulated shadows",OBJECT_AND_LAYER_ID_COLOR:"object/layer id color",NORMALS:"normals",SSAO:"SSAO",HIGHLIGHTS:"highlights",OPAQUE_EDGES:"opaque edges",VOXEL:"voxel",TRANSPARENT:"transparent",TRANSPARENT_EDGES:"transparent edges",HUD_VISIBILITY:"HUD visibility",TRANSPARENT_TERRAIN:"transparent terrain",TRANSPARENT_MATERIAL_WITHOUT_DEPTH:"transparent material without depth",OPAQUE_ENVIRONMENT:"opaque environment",TRANSPARENT_ENVIRONMENT:"transparent environment",OCCLUDED:"occluded",HUD:"HUD",HUD_OCCLUDED:"HUD occluded",FINISH:"finish",FOCUS_AREA_MASK:"focus area mask"},l=Object.values(s).concat(Object.values(a)).concat(Object.values(o)),p="Total";class T{constructor(t){this._rctx=t,this._startTimeStampCPU=i(0),this._lastTimeStampCPU=i(0),this._totalCPUTime=new r(p),this._cpuTimeSamplers=new Map(l.map(t=>[t,new r(t)])),this._enableGPUTimer=0,this._totalGPUTime=new r("GPU"),this._gpuTimeSamplers=new Map(l.map(t=>[t,new r(t)])),this._totalTime=i(0),this._totalFrameCount=0}get totalCPUTimeSampler(){return this._totalCPUTime}get cpuTimeSamplers(){return Array.from(this._cpuTimeSamplers.values())}get totalGPUTimeSampler(){return this._totalGPUTime}get gpuTimeSamplers(){return Array.from(this._gpuTimeSamplers.values())}get gpuSamplingEnabled(){return null!=this._gpuTimerPool}get totalTime(){return this._totalTime}get totalFrameCount(){return this._totalFrameCount}get elapsedTime(){return i(performance.now()-this._startTimeStampCPU)}enableGPUPerformanceInfo(){if(null==this._gpuTimerPool){const t=[...l,p];this._gpuTimerPool=m(this._rctx,t)}if(null==this._gpuTimerPool)return{hasGPUTimerSupport:!1,remove:()=>{}};++this._enableGPUTimer;let e=!1;return{hasGPUTimerSupport:!0,remove:()=>{e||(e=!0,--this._enableGPUTimer,0===this._enableGPUTimer&&(this._gpuTimerPool=t(this._gpuTimerPool)))}}}startFrame(){this._startTimeStampCPU=this._lastTimeStampCPU=i(performance.now()),this._gpuTimerPool&&(this._gpuTimeSamplers.forEach(t=>t.push(0)),this._gpuTimerPool.start())}advance(t){const r=i(performance.now());if(this._cpuTimeSamplers.get(t).push(r-this._lastTimeStampCPU),e(t,this._lastTimeStampCPU,r,"Maps SDK","Scheduling"),this._lastTimeStampCPU=r,this._gpuTimerPool){const e=this._gpuTimerPool.stop(t);this._gpuTimeSamplers.get(t).set(e),this._gpuTimerPool.start()}}finishFrame(){if(this._gpuTimerPool){const t=this._gpuTimerPool.stop(o.FINISH);this._gpuTimeSamplers.get(o.FINISH).set(t),this._rctx.gl.flush()}const t=i(performance.now()-this._startTimeStampCPU);this._totalTime=i(this._totalTime+t),this._totalCPUTime.push(t),this._gpuTimerPool&&this._totalGPUTime.push(this.gpuTimeSamplers.reduce((t,e)=>t+(e.last||0),0)),++this._totalFrameCount}}export{l as PerformanceCategories,o as PerformanceCategory,T as RendererPerformanceInfo};
5
+ import{disposeMaybe as t}from"../../../../core/maybe.js";import{recordPerformance as e}from"../../../../core/performance.js";import r from"../../../../core/PerformanceSampler.js";import{Milliseconds as i}from"../../../../core/time.js";import{RenderNodeOutput as s,InternalRenderCategory as a}from"../../webgl.js";import{createElapsedTimerPool as m}from"../../../webgl/TimerPool.js";const o={OVERLAY:"overlay",PREPARE:"prepare",SHADOW_MAP:"shadow map",DEPTH:"depth",ACCUMULATED_SHADOWS:"accumulated shadows",APPLY_ACCUMULATED_SHADOWS:"apply accumulated shadows",OBJECT_AND_LAYER_ID_COLOR:"object/layer id color",NORMALS:"normals",SSAO:"SSAO",HIGHLIGHTS:"highlights",OPAQUE_EDGES:"opaque edges",VOXEL:"voxel",TRANSPARENT:"transparent",TRANSPARENT_EDGES:"transparent edges",HUD_VISIBILITY:"HUD visibility",TRANSPARENT_TERRAIN:"transparent terrain",TRANSPARENT_MATERIAL_WITHOUT_DEPTH:"transparent material without depth",OPAQUE_ENVIRONMENT:"opaque environment",TRANSPARENT_ENVIRONMENT:"transparent environment",OCCLUDED:"occluded",HUD:"HUD",HUD_OCCLUDED:"HUD occluded",FINISH:"finish",FOCUS_AREA_MASK:"focus area mask"},l=Object.values(s).concat(Object.values(a)).concat(Object.values(o)),p="Total";class T{constructor(t){this._rctx=t,this._startTimeStampCPU=i(0),this._lastTimeStampCPU=i(0),this._totalCPUTime=new r(p),this._cpuTimeSamplers=new Map(l.map(t=>[t,new r(t)])),this._enableGPUTimer=0,this._totalGPUTime=new r("GPU"),this._gpuTimeSamplers=new Map(l.map(t=>[t,new r(t)])),this._totalTime=i(0),this._totalFrameCount=0}get totalCPUTimeSampler(){return this._totalCPUTime}get cpuTimeSamplers(){return Array.from(this._cpuTimeSamplers.values())}get totalGPUTimeSampler(){return this._totalGPUTime}get gpuTimeSamplers(){return Array.from(this._gpuTimeSamplers.values())}get gpuSamplingEnabled(){return null!=this._gpuTimerPool}get totalTime(){return this._totalTime}get totalFrameCount(){return this._totalFrameCount}get elapsedTime(){return i(performance.now()-this._startTimeStampCPU)}enableGPUPerformanceInfo(){if(null==this._gpuTimerPool){const t=[...l,p];this._gpuTimerPool=m(this._rctx,t)}if(null==this._gpuTimerPool)return{hasGPUTimerSupport:!1,remove:()=>{}};++this._enableGPUTimer;let e=!1;return{hasGPUTimerSupport:!0,remove:()=>{e||(e=!0,--this._enableGPUTimer,0===this._enableGPUTimer&&(this._gpuTimerPool=t(this._gpuTimerPool)))}}}startFrame(){this._startTimeStampCPU=this._lastTimeStampCPU=i(performance.now()),this._gpuTimerPool&&(this._gpuTimeSamplers.forEach(t=>t.push(0)),this._gpuTimerPool.start())}advance(t){const r=i(performance.now());if(this._cpuTimeSamplers.get(t).push(r-this._lastTimeStampCPU),e(t,this._lastTimeStampCPU,r,"Maps SDK","Scheduling"),this._lastTimeStampCPU=r,this._gpuTimerPool){const e=this._gpuTimerPool.stop(t);this._gpuTimeSamplers.get(t).set(e),this._gpuTimerPool.start()}}finishFrame(){if(this._gpuTimerPool){const t=this._gpuTimerPool.stop(o.FINISH);this._gpuTimeSamplers.get(o.FINISH).set(t),this._rctx.gl.flush()}const t=i(performance.now()-this._startTimeStampCPU);this._totalTime=i(this._totalTime+t),this._totalCPUTime.push(t),this._gpuTimerPool&&this._totalGPUTime.push(this.gpuTimeSamplers.reduce((t,e)=>t+(e.last||0),0)),++this._totalFrameCount}}export{l as PerformanceCategories,o as PerformanceCategory,T as RendererPerformanceInfo};
@@ -9,8 +9,6 @@ import type SpatialReference from "../../geometry/SpatialReference.js";
9
9
  import type SceneView from "../SceneView.js";
10
10
  import type RenderCamera from "./webgl/RenderCamera.js";
11
11
 
12
- export type RenderCategory = "opaque-color" | "transparent-color" | "composite-color" | "final-color";
13
-
14
12
  /**
15
13
  * Describes a specific RenderNodeOutput.
16
14
  *
@@ -20,8 +18,10 @@ export type RenderCategory = "opaque-color" | "transparent-color" | "composite-c
20
18
  * transparent-color| Contains the rendered image after all opaque and transparent geometries have been drawn. | transparent-color, normals | color0, depth
21
19
  * composite-color | Contains the rendered image without any post processes applied. | composite-color, normals, highlights (if scene has highlights) | color0, depth
22
20
  * final-color | Contains the rendered image including post processes. | final-color, normals, highlights (if scene has highlights) | color0, depth
21
+ *
22
+ * @since 5.0
23
23
  */
24
- export type RenderNodeOutput = RenderCategory;
24
+ export type RenderNodeOutput = "opaque-color" | "transparent-color" | "composite-color" | "final-color";
25
25
 
26
26
  /**
27
27
  * Describes a specific RenderNodeInput.
@@ -58,19 +58,27 @@ export type RenderNodeOutput = RenderCategory;
58
58
  * bool isHighlit = (bits & 1u) == 1u;
59
59
  * bool isOccluded = (bits & 3u) == 3u;
60
60
  * ```
61
+ *
62
+ * @since 5.0
61
63
  */
62
64
  export type RenderNodeInput = RenderNodeOutput | "normals" | "highlights";
63
65
 
64
- /** Describes the input framebuffer objects of a custom RenderNode. */
66
+ /**
67
+ * Describes the input framebuffer objects of a custom RenderNode.
68
+ *
69
+ * @since 5.0
70
+ */
65
71
  export interface ConsumedNodes {
66
72
  /**
67
- * One or more optional inputs. You can use an optional
68
- * input if you want the render function to be called even if this input is not available.
73
+ * One or more optional inputs. You can use an optional input if you want the render function to be called even if this input is not available.
74
+ *
75
+ * @since 5.0
69
76
  */
70
77
  optional?: RenderNodeInput[];
71
78
  /**
72
- * One or more required inputs. If a required input
73
- * is not available, the render function will not be called.
79
+ * One or more required inputs. If a required input is not available, the render function will not be called.
80
+ *
81
+ * @since 5.0
74
82
  */
75
83
  required: RenderNodeInput[];
76
84
  }
package/views/3d/webgl.js CHANGED
@@ -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 o from"../../Camera.js";import{rad2deg as e,deg2rad as r}from"../../core/mathUtils.js";import{create as t}from"../../core/libs/gl-matrix-2/factories/mat4f64.js";import{scale as i,add as n}from"../../core/libs/gl-matrix-2/math/vec3.js";import{create as l}from"../../core/libs/gl-matrix-2/factories/vec3f64.js";import c from"../../geometry/Point.js";import a from"../../geometry/SpatialReference.js";import{computeTranslationToOriginAndRotation as s}from"../../geometry/projection/computeTranslationToOriginAndRotation.js";import{projectBuffer as m}from"../../geometry/projection/projectBuffer.js";import{projectPointToVector as p}from"../../geometry/projection/projectPointToVector.js";import{projectVectorToVector as f}from"../../geometry/projection/projectVectorToVector.js";import{cameraOnContentAlongViewDirection as u}from"./camera/intersectionUtils.js";import{directionToHeadingTilt as d,viewModeDependentUtil as R}from"./support/viewingModeUtils.js";const g={OPAQUE:"opaque-color",TRANSPARENT:"transparent-color",COMPOSITE:"composite-color",FINAL:"final-color"},j={SSAO:"ssao",LASERLINES:"laserline-color",ANTIALIASING:"aa-color",HIGHLIGHTS:"highlight-color",MAGNIFIER:"magnifier-color",OCCLUDED:"occluded-color",VIEWSHED:"viewshed-color",CUTFILL_DEPTH:"cutfill-depth",CUTFILL_COLOR:"cutfill-color",OPAQUE_TERRAIN:"opaque-terrain-color",OPAQUE_ENVIRONMENT:"opaque-environment-color",TRANSPARENT_ENVIRONMENT:"transparent-environment-color",FOCUSAREA:"focusarea",FOCUSAREA_COLOR:"focusarea-color"};function A(o,e,r,t,i,n,l){return t=t||o.spatialReference,m(e,t,r,i,o.renderCoordsHelper.spatialReference,n,l)?i:null}function E(o,e,r,t,i,n,l){return n=n||o.spatialReference,m(e,o.renderCoordsHelper.spatialReference,r,t,n,i,l)?t:null}function T(o,e,r,i){return i||(i=t()),r=r||o.spatialReference,s(r,e,i,o.renderCoordsHelper.spatialReference)?i:null}function y(r,t,i){const n=r.renderSpatialReference,l=d(r,t.eye,t.viewForward,t.up,O);let s=r.spatialReference;return f(t.eye,n,N,s)||(s=a.WGS84,f(t.eye,n,N,s)),null==i?i=new o(new c(N,s),l.heading,l.tilt,e(t.fov)):(i.position.x=N[0],i.position.y=N[1],i.position.z=N[2],i.position.spatialReference=s,i.heading=l.heading,i.tilt=l.tilt,i.fov=e(t.fov)),i.layout.row=t.row,i.layout.rows=t.rows,i.layout.column=t.column,i.layout.columns=t.columns,i}function I(o,e){if(!e)return null;const t=o.renderSpatialReference,c=R(o).headingTiltToDirectionUp,a=l();if(!p(e.position,a,t))return null;const s=c(a,e.heading,e.tilt);i(s.direction,s.direction,o.state.camera.distance),n(s.direction,s.direction,a);const m=u(o,a,s.direction,s.up);return m.fov=r(e.fov),m.row=e.layout.row,m.rows=e.layout.rows,m.column=e.layout.column,m.columns=e.layout.columns,m}const N=l(),O={heading:0,tilt:0};export{j as InternalRenderCategory,g as RenderCategory,y as fromRenderCamera,E as fromRenderCoordinates,T as renderCoordinateTransformAt,I as toRenderCamera,A as toRenderCoordinates};
5
+ import o from"../../Camera.js";import{rad2deg as e,deg2rad as r}from"../../core/mathUtils.js";import{create as t}from"../../core/libs/gl-matrix-2/factories/mat4f64.js";import{scale as i,add as n}from"../../core/libs/gl-matrix-2/math/vec3.js";import{create as l}from"../../core/libs/gl-matrix-2/factories/vec3f64.js";import c from"../../geometry/Point.js";import a from"../../geometry/SpatialReference.js";import{computeTranslationToOriginAndRotation as s}from"../../geometry/projection/computeTranslationToOriginAndRotation.js";import{projectBuffer as m}from"../../geometry/projection/projectBuffer.js";import{projectPointToVector as p}from"../../geometry/projection/projectPointToVector.js";import{projectVectorToVector as f}from"../../geometry/projection/projectVectorToVector.js";import{cameraOnContentAlongViewDirection as u}from"./camera/intersectionUtils.js";import{directionToHeadingTilt as d,viewModeDependentUtil as R}from"./support/viewingModeUtils.js";const g={OPAQUE:"opaque-color",TRANSPARENT:"transparent-color",COMPOSITE:"composite-color",FINAL:"final-color"},j={SSAO:"ssao",LASERLINES:"laserline-color",ANTIALIASING:"aa-color",HIGHLIGHTS:"highlight-color",MAGNIFIER:"magnifier-color",OCCLUDED:"occluded-color",VIEWSHED:"viewshed-color",CUTFILL_DEPTH:"cutfill-depth",CUTFILL_COLOR:"cutfill-color",OPAQUE_TERRAIN:"opaque-terrain-color",OPAQUE_ENVIRONMENT:"opaque-environment-color",TRANSPARENT_ENVIRONMENT:"transparent-environment-color",FOCUSAREA:"focusarea",FOCUSAREA_COLOR:"focusarea-color"};function A(o,e,r,t,i,n,l){return t=t||o.spatialReference,m(e,t,r,i,o.renderCoordsHelper.spatialReference,n,l)?i:null}function E(o,e,r,t,i,n,l){return n=n||o.spatialReference,m(e,o.renderCoordsHelper.spatialReference,r,t,n,i,l)?t:null}function T(o,e,r,i){return i||(i=t()),r=r||o.spatialReference,s(r,e,i,o.renderCoordsHelper.spatialReference)?i:null}function y(r,t,i){const n=r.renderSpatialReference,l=d(r,t.eye,t.viewForward,t.up,O);let s=r.spatialReference;return f(t.eye,n,N,s)||(s=a.WGS84,f(t.eye,n,N,s)),null==i?i=new o(new c(N,s),l.heading,l.tilt,e(t.fov)):(i.position.x=N[0],i.position.y=N[1],i.position.z=N[2],i.position.spatialReference=s,i.heading=l.heading,i.tilt=l.tilt,i.fov=e(t.fov)),i.layout.row=t.row,i.layout.rows=t.rows,i.layout.column=t.column,i.layout.columns=t.columns,i}function I(o,e){if(!e)return null;const t=o.renderSpatialReference,c=R(o).headingTiltToDirectionUp,a=l();if(!p(e.position,a,t))return null;const s=c(a,e.heading,e.tilt);i(s.direction,s.direction,o.state.camera.distance),n(s.direction,s.direction,a);const m=u(o,a,s.direction,s.up);return m.fov=r(e.fov),m.row=e.layout.row,m.rows=e.layout.rows,m.column=e.layout.column,m.columns=e.layout.columns,m}const N=l(),O={heading:0,tilt:0};export{j as InternalRenderCategory,g as RenderNodeOutput,y as fromRenderCamera,E as fromRenderCoordinates,T as renderCoordinateTransformAt,I as toRenderCamera,A as toRenderCoordinates};
package/views/Theme.d.ts CHANGED
@@ -1,9 +1,9 @@
1
1
  import type Color from "../Color.js";
2
2
  import type Accessor from "../core/Accessor.js";
3
- import type { ClonableMixin, ClonableMixinProperties } from "../core/Clonable.js";
3
+ import type { ClonableMixin } from "../core/Clonable.js";
4
4
  import type { ColorLike } from "../Color.js";
5
5
 
6
- export interface ThemeProperties extends ClonableMixinProperties {
6
+ export interface ThemeProperties {
7
7
  /** The base color used to render temporary graphics in the [View](https://developers.arcgis.com/javascript/latest/api-reference/esri-views-View.html). */
8
8
  accentColor?: ColorLike;
9
9
  /** The base color used to render temporary labels in the [View](https://developers.arcgis.com/javascript/latest/api-reference/esri-views-View.html). */
@@ -3,13 +3,13 @@ import type WebMap from "../WebMap.js";
3
3
  import type Accessor from "../core/Accessor.js";
4
4
  import type VideoLayer from "../layers/VideoLayer.js";
5
5
  import type Navigation from "./navigation/Navigation.js";
6
- import type { EventedMixin, EventedMixinProperties } from "../core/Evented.js";
7
- import type { EsriPromiseMixin, EsriPromiseMixinProperties } from "../core/Promise.js";
6
+ import type { EventedMixin } from "../core/Evented.js";
7
+ import type { EsriPromiseMixin } from "../core/Promise.js";
8
8
  import type { DOMContainer, DOMContainerProperties } from "./DOMContainer.js";
9
- import type { Viewport2DMixin, Viewport2DMixinProperties } from "./Viewport2DMixin.js";
9
+ import type { Viewport2DMixin } from "./Viewport2DMixin.js";
10
10
  import type { NavigationProperties } from "./navigation/Navigation.js";
11
11
 
12
- export interface VideoViewProperties extends EsriPromiseMixinProperties, EventedMixinProperties, DOMContainerProperties, Viewport2DMixinProperties, Partial<Pick<VideoView, "layer" | "map" | "scale">> {
12
+ export interface VideoViewProperties extends DOMContainerProperties, Partial<Pick<VideoView, "layer" | "map" | "scale">> {
13
13
  /**
14
14
  * Options to configure the navigation behavior of the View.
15
15
  *