@arcgis/core 6.0.0-next.1 → 6.0.0-next.10

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 (701) hide show
  1. package/analysis/AreaMeasurementAnalysis.d.ts +11 -1
  2. package/analysis/DimensionSimpleStyle.js +1 -1
  3. package/analysis/DirectLineMeasurementAnalysis.d.ts +11 -1
  4. package/analysis/DistanceMeasurementAnalysis.d.ts +8 -0
  5. package/arcade/featureSetUtils.js +1 -1
  6. package/arcade/functions/knowledgegraph.js +1 -1
  7. package/arcade/geometry/unitConversion.js +1 -1
  8. package/arcgisGlobal.d.ts +5 -5
  9. package/assets/esri/core/workers/RemoteClient.js +1 -1
  10. package/assets/esri/core/workers/chunks/01803f76bc0d9f2cd566.js +1 -0
  11. package/assets/esri/core/workers/chunks/{f09c9d9a554c33a753b4.js → 02253bdffbd580af22d8.js} +1 -1
  12. package/assets/esri/core/workers/chunks/{5078b66ba31b770b689f.js → 037a8cc19debbaaa4e10.js} +1 -1
  13. package/assets/esri/core/workers/chunks/066550852483ab8f77bc.js +1 -0
  14. package/assets/esri/core/workers/chunks/{1ede8666d804c553803e.js → 0b6941781e35ce0f7274.js} +1 -1
  15. package/assets/esri/core/workers/chunks/0ccab50877b24f862d6e.js +1 -0
  16. package/assets/esri/core/workers/chunks/0f725cf79ce00e790a7d.js +1 -0
  17. package/assets/esri/core/workers/chunks/{a0d459bdb91ee892d4b6.js → 116293b1ee788a89ce1e.js} +1 -1
  18. package/assets/esri/core/workers/chunks/12a7997a40c77f5c9160.js +1 -0
  19. package/assets/esri/core/workers/chunks/{a7325ebb7edf3273bb34.js → 12b84262dedc6b393136.js} +1 -1
  20. package/assets/esri/core/workers/chunks/1b077c92345ffb5916c2.js +1 -0
  21. package/assets/esri/core/workers/chunks/{6dd0b79fa3a629ab4f27.js → 1bca39e0e651426bdbb5.js} +1 -1
  22. package/assets/esri/core/workers/chunks/1c0c5cb13c2590aae906.js +1 -0
  23. package/assets/esri/core/workers/chunks/{8959a825f5e1ce6f38ac.js → 1c65ab9ed611c322ce27.js} +1 -1
  24. package/assets/esri/core/workers/chunks/1e0d2715d603f48a7e0b.js +1 -0
  25. package/assets/esri/core/workers/chunks/261fea092ee7d27608a0.js +1 -0
  26. package/assets/esri/core/workers/chunks/2686fe5b62dd0be699c0.js +1 -0
  27. package/assets/esri/core/workers/chunks/2a97268000c6d03ef720.js +1 -0
  28. package/assets/esri/core/workers/chunks/{83589144eeeb08f45557.js → 2aeb5cc32284dd3e4d22.js} +1 -1
  29. package/assets/esri/core/workers/chunks/2d9a1f23ec6ce90723ac.js +1 -0
  30. package/assets/esri/core/workers/chunks/2e096537a3a5555a4a93.js +1 -0
  31. package/assets/esri/core/workers/chunks/{7a05b18f655c1167ce0a.js → 2ef5237e4c876d6a4ee0.js} +1 -1
  32. package/assets/esri/core/workers/chunks/37d6a264a3f1d8072aa0.js +1 -0
  33. package/assets/esri/core/workers/chunks/3b3e519f15ed52c83f0c.js +1 -0
  34. package/assets/esri/core/workers/chunks/3c0ed15b544df6fb0903.js +1 -0
  35. package/assets/esri/core/workers/chunks/{b612de42ee86c0d95247.js → 3d9d7d3a40b51eb7ee3d.js} +1 -1
  36. package/assets/esri/core/workers/chunks/3df5500a85345577480a.js +1 -0
  37. package/assets/esri/core/workers/chunks/3ffda5bf0b91700dc308.js +1 -0
  38. package/assets/esri/core/workers/chunks/40a584cb952e94326e9e.js +1 -0
  39. package/assets/esri/core/workers/chunks/{1317ecdfd0cfa683a493.js → 42323093827adffe56d3.js} +1 -1
  40. package/assets/esri/core/workers/chunks/{1ba0dfbe0958cdbd7c9f.js → 42fd2a7b22b03dacc6a7.js} +1 -1
  41. package/assets/esri/core/workers/chunks/444e5f214abce3d607cd.js +1 -0
  42. package/assets/esri/core/workers/chunks/{d201fbf3ceff946d2bd6.js → 44d5508042cacdfcac47.js} +1 -1
  43. package/assets/esri/core/workers/chunks/4503b20ca6a80fb63d72.js +1 -0
  44. package/assets/esri/core/workers/chunks/45367aa8e5c5d574de94.js +1 -0
  45. package/assets/esri/core/workers/chunks/45800373650fbc8262e6.js +1 -0
  46. package/assets/esri/core/workers/chunks/{6a7ab1ef9a37e87db5ae.js → 46a7da93a63663878583.js} +1 -1
  47. package/assets/esri/core/workers/chunks/46b4fb6a7fe4877b0efc.js +1120 -0
  48. package/assets/esri/core/workers/chunks/47d074136a7f8e551a9a.js +1 -0
  49. package/assets/esri/core/workers/chunks/4911ce62421a6c3320b0.js +1 -0
  50. package/assets/esri/core/workers/chunks/4a1e23e021bac37a88ab.js +1 -0
  51. package/assets/esri/core/workers/chunks/4a6b92ecbb1f1c55cc43.js +1 -0
  52. package/assets/esri/core/workers/chunks/4debf2d9c3465250ef7a.js +1 -0
  53. package/assets/esri/core/workers/chunks/4e544de61f07ca660236.js +1 -0
  54. package/assets/esri/core/workers/chunks/4e8e322b469657ac22e2.js +1 -0
  55. package/assets/esri/core/workers/chunks/505227797bcf2a1d908d.js +1 -0
  56. package/assets/esri/core/workers/chunks/{67ac6b326bf80fc3d33d.js → 53be85d04cd2da4f391d.js} +1 -1
  57. package/assets/esri/core/workers/chunks/54778dec1598818d93cb.js +1 -0
  58. package/assets/esri/core/workers/chunks/54b18559280a7d2a8d93.js +1 -0
  59. package/assets/esri/core/workers/chunks/557671c897ca5563be6c.js +1 -0
  60. package/assets/esri/core/workers/chunks/567a65f4203f6e81f4b4.js +1 -0
  61. package/assets/esri/core/workers/chunks/5c7780f804d789cb37f5.js +1 -0
  62. package/assets/esri/core/workers/chunks/606ea251075fe81a1206.js +1 -0
  63. package/assets/esri/core/workers/chunks/{ceb680688fe7e570a774.js → 608be1172a908e92b9f1.js} +1 -1
  64. package/assets/esri/core/workers/chunks/{e521bb9ee2030245c3ce.js → 612104dff305ff062dfa.js} +2 -2
  65. package/assets/esri/core/workers/chunks/6299be5e7e26bf3c6859.js +1 -0
  66. package/assets/esri/core/workers/chunks/{3ac9dcbb0571a2580236.js → 62c8c9ad09e0166207fd.js} +1 -1
  67. package/assets/esri/core/workers/chunks/6400446b7615b97c3521.js +1 -0
  68. package/assets/esri/core/workers/chunks/6431480ba0fa8c8d487f.js +1 -0
  69. package/assets/esri/core/workers/chunks/6588725275c75fae0d9c.js +1 -0
  70. package/assets/esri/core/workers/chunks/665e31c494d2af505acc.js +1 -0
  71. package/assets/esri/core/workers/chunks/{9232f57623e1fa3ccabc.js → 67e4b5651fd7ff7d8cf0.js} +1 -1
  72. package/assets/esri/core/workers/chunks/68be3fb88ca61f82fb90.js +1 -0
  73. package/assets/esri/core/workers/chunks/6c9266120d46e8c69dbf.js +1 -0
  74. package/assets/esri/core/workers/chunks/6c9acd9e4e201dc380e9.js +1 -0
  75. package/assets/esri/core/workers/chunks/6ebe73f69ae822053b70.js +1 -0
  76. package/assets/esri/core/workers/chunks/709e019885822b1f6f3e.js +1 -0
  77. package/assets/esri/core/workers/chunks/70cc2d79653d66e85b58.js +1 -0
  78. package/assets/esri/core/workers/chunks/7449568eb2305bf2d650.js +1 -0
  79. package/assets/esri/core/workers/chunks/745a153d0cd34faa124e.js +1 -0
  80. package/assets/esri/core/workers/chunks/7572c2bc5062e66f6330.js +1 -0
  81. package/assets/esri/core/workers/chunks/76196c414e48834f7b92.js +1 -0
  82. package/assets/esri/core/workers/chunks/78472a57c2ba146fec65.js +1 -0
  83. package/assets/esri/core/workers/chunks/7ef182e24cad50815b4e.js +1 -0
  84. package/assets/esri/core/workers/chunks/7f0f9dddc44b1f1600f0.js +1 -0
  85. package/assets/esri/core/workers/chunks/814751e705c05099f864.js +1 -0
  86. package/assets/esri/core/workers/chunks/8293600f94553afc8c38.js +1 -0
  87. package/assets/esri/core/workers/chunks/8487727f1197cf7dbf50.js +1 -0
  88. package/assets/esri/core/workers/chunks/88e54449261ef94e390d.js +1 -0
  89. package/assets/esri/core/workers/chunks/8b0d5551978ab0aac0d1.js +1 -0
  90. package/assets/esri/core/workers/chunks/8d0c2de92770a1567536.js +1 -0
  91. package/assets/esri/core/workers/chunks/900181f68449d8f82eeb.js +1 -0
  92. package/assets/esri/core/workers/chunks/939942b00ba380e2957e.js +1 -0
  93. package/assets/esri/core/workers/chunks/943a0f140813ee4ab04a.js +1 -0
  94. package/assets/esri/core/workers/chunks/96c3900685cfb2a8ca12.js +1 -0
  95. package/assets/esri/core/workers/chunks/9ce91a909eccc4dfe388.js +1 -0
  96. package/assets/esri/core/workers/chunks/{c76c42c74eedd43263d3.js → 9dd1fc56eb1ea6eb705e.js} +1 -1
  97. package/assets/esri/core/workers/chunks/{86a051e9fe71aa356108.js → 9e3e442a9874ed23a043.js} +1 -1
  98. package/assets/esri/core/workers/chunks/{aa1054834738aef48bda.js → a0356702f2d3f787aeac.js} +1 -1
  99. package/assets/esri/core/workers/chunks/a40b6d8b5c73e06e14d4.js +1 -0
  100. package/assets/esri/core/workers/chunks/{1ba1f705b6ce5c8ea702.js → a655ebdb4bf0660615a2.js} +1 -1
  101. package/assets/esri/core/workers/chunks/a8286febe371dc186aaa.js +1 -0
  102. package/assets/esri/core/workers/chunks/aaba33611753c6aada68.js +1 -0
  103. package/assets/esri/core/workers/chunks/aba42885c5d6b2b5fe7f.js +1 -0
  104. package/assets/esri/core/workers/chunks/ad76f7ab2f3e6d5a5b3c.js +1 -0
  105. package/assets/esri/core/workers/chunks/ae40eac1eadd1a537bf4.js +1 -0
  106. package/assets/esri/core/workers/chunks/aeaaff7a4b1a99540f52.js +1 -0
  107. package/assets/esri/core/workers/chunks/af349c7bc8ef41a0e1bd.js +1 -0
  108. package/assets/esri/core/workers/chunks/af75747b06d79446a855.js +1 -0
  109. package/assets/esri/core/workers/chunks/b564ec4e03478f5659db.js +1 -0
  110. package/assets/esri/core/workers/chunks/bbf993dba74850bbf9d7.js +1 -0
  111. package/assets/esri/core/workers/chunks/bc0f54a2c15502b630ec.js +1 -0
  112. package/assets/esri/core/workers/chunks/{ff3a53c3f00335552317.js → c29c474c4b1049352d3e.js} +1 -1
  113. package/assets/esri/core/workers/chunks/{9ab25ee06041f907b9a2.js → c2c1f51a4668055c2838.js} +1 -1
  114. package/assets/esri/core/workers/chunks/c337fc0e6dc69c233e6d.js +1 -0
  115. package/assets/esri/core/workers/chunks/{a7985d20fa6e8d4878e7.js → d0f5bee9db1ad51ae687.js} +1 -1
  116. package/assets/esri/core/workers/chunks/d6ad4390df576198e45b.js +1 -0
  117. package/assets/esri/core/workers/chunks/d7f6021fd41b9571a02c.js +1 -0
  118. package/assets/esri/core/workers/chunks/d90a3bfd45b5ed4092e0.js +1 -0
  119. package/assets/esri/core/workers/chunks/dba280c370df13196711.js +1 -0
  120. package/assets/esri/core/workers/chunks/ddf0671976648f621269.js +1 -0
  121. package/assets/esri/core/workers/chunks/{c18189710d6198516175.js → de5ecb567bd69c613e9d.js} +1 -1
  122. package/assets/esri/core/workers/chunks/e10b57aefcc89671116e.js +1 -0
  123. package/assets/esri/core/workers/chunks/{534186fc921a0ccf58dc.js → e1f5d00878f27e1d413e.js} +1 -1
  124. package/assets/esri/core/workers/chunks/e65dfa19f030ec298437.js +1 -0
  125. package/assets/esri/core/workers/chunks/e932951598499befabf5.js +1 -0
  126. package/assets/esri/core/workers/chunks/{e1ba915dae7747932c0f.js → eb04e1717a1002cda3ab.js} +1 -1
  127. package/assets/esri/core/workers/chunks/f122c18af10e56f9ec2b.js +1 -0
  128. package/assets/esri/core/workers/chunks/f1df76f098a3cc924832.js +1 -0
  129. package/assets/esri/core/workers/chunks/f1f90adae13b04898008.js +1 -0
  130. package/assets/esri/core/workers/chunks/f46d9a19f79d4a4bd354.js +1 -0
  131. package/assets/esri/core/workers/chunks/f4f9d08b2df856e3b694.js +1 -0
  132. package/assets/esri/core/workers/chunks/{711cfb84659cb4437679.js → f528ac5c648ca6a98582.js} +1 -1
  133. package/assets/esri/core/workers/chunks/f92364afaefbac7e8f77.js +1 -0
  134. package/assets/esri/core/workers/chunks/fb444954be74c1962ced.js +1 -0
  135. package/assets/esri/core/workers/chunks/fc44227c1756f65b95df.js +1 -0
  136. package/assets/esri/core/workers/chunks/{72019baeba520edb6bb0.js → fc44d45598a7476bc606.js} +1 -1
  137. package/assets/esri/core/workers/chunks/fecaf0bc28aeea4d15db.js +1 -0
  138. package/assets/esri/libs/librust-parquet/pkg/parquet_bg.wasm +0 -0
  139. package/assets/esri/themes/base/_mixins.scss +2 -2
  140. package/assets/esri/themes/base/widgets/_Attribution.scss +1 -1
  141. package/assets/esri/themes/base/widgets/_BasemapLayerList.scss +2 -2
  142. package/assets/esri/themes/base/widgets/_BatchAttributeForm.scss +5 -5
  143. package/assets/esri/themes/base/widgets/_Bookmarks.scss +1 -1
  144. package/assets/esri/themes/base/widgets/_BuildingLevelPicker.scss +2 -2
  145. package/assets/esri/themes/base/widgets/_BuildingPhasePicker.scss +5 -5
  146. package/assets/esri/themes/base/widgets/_CatalogLayerList.scss +1 -1
  147. package/assets/esri/themes/base/widgets/_Compass.scss +0 -2
  148. package/assets/esri/themes/base/widgets/_DirectionalPad.scss +4 -10
  149. package/assets/esri/themes/base/widgets/_Directions.scss +40 -40
  150. package/assets/esri/themes/base/widgets/_Editor.scss +7 -7
  151. package/assets/esri/themes/base/widgets/_Expand.scss +1 -1
  152. package/assets/esri/themes/base/widgets/_Feature.scss +1 -1
  153. package/assets/esri/themes/base/widgets/_FeatureForm.scss +6 -6
  154. package/assets/esri/themes/base/widgets/_FeatureFormUtilityNetworkAssociationLayers.scss +1 -1
  155. package/assets/esri/themes/base/widgets/_FeatureFormUtilityNetworkAssociationList.scss +1 -1
  156. package/assets/esri/themes/base/widgets/_FeatureFormUtilityNetworkAssociationSettings.scss +4 -4
  157. package/assets/esri/themes/base/widgets/_FeatureTable.scss +27 -27
  158. package/assets/esri/themes/base/widgets/_FeatureTemplates.scss +1 -1
  159. package/assets/esri/themes/base/widgets/_Features.scss +6 -6
  160. package/assets/esri/themes/base/widgets/_FilterBuilder.scss +1 -1
  161. package/assets/esri/themes/base/widgets/_FilterCondition.scss +1 -1
  162. package/assets/esri/themes/base/widgets/_Grid.scss +18 -18
  163. package/assets/esri/themes/base/widgets/_GridControls.scss +11 -11
  164. package/assets/esri/themes/base/widgets/_LayerList.scss +1 -1
  165. package/assets/esri/themes/base/widgets/_Legend.scss +5 -5
  166. package/assets/esri/themes/base/widgets/_NavigationToggle.scss +4 -1
  167. package/assets/esri/themes/base/widgets/_OrientedImageryViewer.scss +23 -28
  168. package/assets/esri/themes/base/widgets/_ResponsiveToolbar.scss +0 -2
  169. package/assets/esri/themes/base/widgets/_SearchResultRenderer.scss +1 -1
  170. package/assets/esri/themes/base/widgets/_SelectionList.scss +15 -15
  171. package/assets/esri/themes/base/widgets/_SelectionToolbar.scss +3 -5
  172. package/assets/esri/themes/base/widgets/_ShadowCast.scss +11 -11
  173. package/assets/esri/themes/base/widgets/_Sketch.scss +1 -1
  174. package/assets/esri/themes/base/widgets/_Slice.scss +3 -3
  175. package/assets/esri/themes/base/widgets/_SnappingControls.scss +1 -1
  176. package/assets/esri/themes/base/widgets/_TimeSlider.scss +5 -5
  177. package/assets/esri/themes/base/widgets/_TimeZoneLabel.scss +5 -4
  178. package/assets/esri/themes/base/widgets/_Tooltip.scss +14 -17
  179. package/assets/esri/themes/base/widgets/_UtilityNetworkAssociations.scss +2 -2
  180. package/assets/esri/themes/base/widgets/_UtilityNetworkTrace.scss +1 -1
  181. package/assets/esri/themes/base/widgets/_UtilityNetworkValidateTopology.scss +2 -2
  182. package/assets/esri/themes/base/widgets/_ValuePicker.scss +2 -2
  183. package/assets/esri/themes/base/widgets/_VideoPlayer.scss +5 -5
  184. package/assets/esri/themes/base/widgets/_Widget.scss +5 -1
  185. package/assets/esri/themes/dark/main.css +1 -1
  186. package/assets/esri/themes/light/main.css +1 -1
  187. package/assets/esri/themes/light/view.css +1 -1
  188. package/assets/esri/widgets/BatchAttributeForm/t9n/messages.en.json +1 -1
  189. package/{basemaps/BasemapCollection.d.ts → basemapGallery/BasemapGalleryModel.d.ts} +8 -8
  190. package/{basemaps/BasemapCollection.js → basemapGallery/BasemapGalleryModel.js} +1 -1
  191. package/{basemaps → basemapGallery}/BasemapsSource.d.ts +1 -1
  192. package/{basemaps → basemapGallery}/BasemapsSource.js +1 -1
  193. package/{basemaps → basemapGallery}/LocalBasemapsSource.d.ts +2 -2
  194. package/{basemaps → basemapGallery}/LocalBasemapsSource.js +1 -1
  195. package/{basemaps → basemapGallery}/PortalBasemapsSource.d.ts +2 -2
  196. package/{basemaps → basemapGallery}/PortalBasemapsSource.js +1 -1
  197. package/{basemaps → basemapGallery}/support/BasemapItem.d.ts +2 -2
  198. package/{basemaps → basemapGallery}/support/BasemapItem.js +1 -1
  199. package/{basemaps → basemapGallery}/types.d.ts +2 -2
  200. package/chunks/AtmosphereCompositing.glsl.js +1 -1
  201. package/chunks/ChapmanAtmosphere.glsl.js +3 -3
  202. package/chunks/CloudsComposition.glsl.js +1 -1
  203. package/chunks/Component.glsl.js +41 -41
  204. package/chunks/DefaultMaterial.glsl.js +2 -2
  205. package/chunks/EdgeShader.glsl.js +9 -9
  206. package/chunks/Fog.glsl.js +5 -5
  207. package/chunks/GaussianSplat.glsl.js +2 -2
  208. package/chunks/GlobalIllumination.glsl.js +13 -11
  209. package/chunks/GlobalIlluminationBlur.glsl.js +3 -5
  210. package/chunks/GlobalIlluminationUpscale.glsl.js +1 -1
  211. package/chunks/HUDMaterial.glsl.js +13 -13
  212. package/chunks/Haze.glsl.js +6 -6
  213. package/chunks/HazeCompositing.glsl.js +1 -1
  214. package/chunks/LaserlinePath.glsl.js +6 -6
  215. package/chunks/LineCallout.glsl.js +1 -1
  216. package/chunks/LineMarker.glsl.js +5 -5
  217. package/chunks/NavigationDepth.glsl.js +2 -2
  218. package/chunks/Path.glsl.js +1 -1
  219. package/chunks/Pattern.glsl.js +26 -26
  220. package/chunks/Precipitation.glsl.js +7 -7
  221. package/chunks/RealisticTree.glsl.js +2 -2
  222. package/chunks/RibbonLine.glsl.js +80 -73
  223. package/chunks/ShadowCastAccumulate.glsl.js +1 -1
  224. package/chunks/ShadowHighlight.glsl.js +5 -5
  225. package/chunks/ShadowHighlightBuffer.glsl.js +1 -1
  226. package/chunks/SimpleAtmosphere.glsl.js +4 -4
  227. package/chunks/Terrain.glsl.js +29 -32
  228. package/chunks/Viewshed.glsl.js +2 -2
  229. package/chunks/Water.glsl.js +2 -2
  230. package/config.js +1 -1
  231. package/core/Loadable.js +1 -1
  232. package/core/arrayUtils.js +1 -1
  233. package/core/colorUtils.js +1 -1
  234. package/core/has.js +1 -1
  235. package/core/screenUtils.js +1 -1
  236. package/core/units.js +1 -1
  237. package/core/workers/workerFactory.js +1 -1
  238. package/form/elements/inputs/DynamicChoiceInput.d.ts +35 -5
  239. package/geometry/HeightModelInfo.js +1 -1
  240. package/geometry/operators/proximityOperator.js +1 -1
  241. package/geometry/projectionUtils.js +1 -1
  242. package/geometry/support/meshUtils.d.ts +1 -1
  243. package/geometry/support/scaleUtils.js +1 -1
  244. package/geometry/support/wkt.js +2 -0
  245. package/kernel.js +1 -1
  246. package/layers/BaseDynamicLayer.d.ts +1 -0
  247. package/layers/BaseElevationLayer.d.ts +2 -0
  248. package/layers/BaseTileLayer.d.ts +12 -9
  249. package/layers/CSVLayer.d.ts +0 -15
  250. package/layers/FeatureLayer.d.ts +2 -15
  251. package/layers/GeoJSONLayer.d.ts +0 -52
  252. package/layers/GeoRSSLayer.d.ts +0 -44
  253. package/layers/GeospatialPDFLayer.d.ts +2 -5
  254. package/layers/GeospatialPDFLayer.js +1 -1
  255. package/layers/Lyr3DWasmPerSceneView.js +1 -1
  256. package/layers/OrientedImageryLayer.js +1 -1
  257. package/layers/ParquetLayer.d.ts +100 -12
  258. package/layers/ParquetLayer.js +1 -1
  259. package/layers/SketchLayer.d.ts +0 -1
  260. package/layers/VectorTileLayer.d.ts +2 -12
  261. package/layers/geospatialPDF/renderExtentUtils.js +1 -1
  262. package/layers/graphics/data/FeatureStore.js +1 -1
  263. package/layers/graphics/data/QueryEngineResult.js +1 -1
  264. package/layers/graphics/data/geometryUtils.js +1 -1
  265. package/layers/graphics/data/projectionSupport.js +1 -1
  266. package/layers/graphics/sources/FeatureLayerSource.js +1 -1
  267. package/layers/graphics/sources/support/ParquetSourceWorker.js +1 -1
  268. package/layers/graphics/transferFeatures.js +1 -1
  269. package/layers/knowledgeGraph/layerUtils.js +1 -1
  270. package/layers/knowledgeGraph/nodeMovementUtils.js +1 -1
  271. package/layers/mixins/PortalLayer.js +1 -1
  272. package/layers/mixins/RefreshableLayer.d.ts +1 -3
  273. package/layers/mixins/ScaleRangeLayer.js +1 -1
  274. package/layers/mixins/SublayersOwner.js +1 -1
  275. package/layers/orientedImagery/core/ExposurePoint.js +1 -1
  276. package/layers/orientedImagery/core/utils.js +1 -1
  277. package/layers/raster/datasets/GeospatialPDFRaster.js +1 -1
  278. package/layers/raster/datasets/TIFFRaster.js +1 -1
  279. package/layers/raster/datasets/byteStreamUtils.js +1 -1
  280. package/layers/raster/formats/tiffParser.js +1 -1
  281. package/layers/support/ParquetPortalItemData.d.ts +2 -0
  282. package/layers/support/ParquetPortalItemData.js +1 -1
  283. package/layers/support/PortalItemData.d.ts +21 -0
  284. package/layers/support/PortalItemData.js +1 -1
  285. package/layers/support/Sublayer.js +1 -1
  286. package/layers/support/SubtypeSublayer.js +1 -1
  287. package/layers/support/layersLoader.js +1 -1
  288. package/layers/support/parquetUtils.d.ts +1 -1
  289. package/layers/support/types.d.ts +1 -1
  290. package/package.json +3 -3
  291. package/popup/FeaturesModel.d.ts +27 -6
  292. package/popup/FeaturesModel.js +1 -1
  293. package/portal/support/layersLoader.js +1 -1
  294. package/portal/support/portalLayers.js +1 -1
  295. package/renderers/VectorFieldRenderer.d.ts +4 -4
  296. package/rest/print.d.ts +49 -3
  297. package/rest/print.js +1 -1
  298. package/rest/query/operations/pbfFlatFeatureSet.js +1 -1
  299. package/rest/support/printTaskUtils.js +1 -1
  300. package/smartMapping/renderers/color.js +1 -1
  301. package/smartMapping/renderers/dotDensity.js +1 -1
  302. package/smartMapping/renderers/heatmap.js +1 -1
  303. package/smartMapping/renderers/pieChart.js +1 -1
  304. package/smartMapping/renderers/support/spikeUtils.js +3 -3
  305. package/smartMapping/renderers/type.js +1 -1
  306. package/smartMapping/statistics/heatmapStatistics.js +1 -1
  307. package/smartMapping/statistics/histogram.js +1 -1
  308. package/smartMapping/statistics/summaryStatistics.js +1 -1
  309. package/smartMapping/statistics/summaryStatisticsForAttributes.js +1 -1
  310. package/smartMapping/statistics/uniqueValues.js +1 -1
  311. package/smartMapping/support/adapters/support/layerUtils.js +1 -1
  312. package/smartMapping/types.d.ts +3 -1
  313. package/symbols/LineSymbol3DLayer.js +1 -1
  314. package/symbols/callouts/LineCallout3D.js +1 -1
  315. package/symbols/cim/CIMSymbolDrawHelper.js +1 -1
  316. package/symbols/cim/CIMSymbolHelper.js +1 -1
  317. package/symbols/cim/cimAnalyzer.js +1 -1
  318. package/symbols/edges/Edges3D.js +1 -1
  319. package/symbols/support/Symbol3DIconOutline.js +1 -1
  320. package/symbols/support/Symbol3DOutline.js +1 -1
  321. package/symbols/support/Symbol3DTextBorder.js +1 -1
  322. package/symbols/support/defaults3D.js +1 -1
  323. package/views/2d/analysis/AreaMeasurement/AreaMeasurementTool.js +1 -1
  324. package/views/2d/analysis/AreaMeasurementAnalysisView2D.d.ts +6 -4
  325. package/views/2d/analysis/AreaMeasurementAnalysisView2D.js +1 -1
  326. package/views/2d/analysis/DistanceMeasurement/DistanceMeasurementTool.js +1 -1
  327. package/views/2d/analysis/DistanceMeasurementAnalysisView2D.d.ts +6 -4
  328. package/views/2d/analysis/DistanceMeasurementAnalysisView2D.js +1 -1
  329. package/views/2d/engine/webgl/shaderGraph/techniques/animated/AnimatedMarkerMeshWriter.js +1 -1
  330. package/views/2d/engine/webgl/shaderGraph/techniques/markers/MarkerMeshWriter.js +1 -1
  331. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/LineShader.js +1 -1
  332. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/TexturedLineShader.js +1 -1
  333. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/hittestUtils.js +1 -1
  334. package/views/2d/engine/webgl/shaderGraph/techniques/text/TextMeshWriter.js +1 -1
  335. package/views/2d/engine/webgl/shaderGraph/techniques/text/TextShader.js +1 -1
  336. package/views/2d/interactive/snapping/featureSources/featureServiceSource/FeatureServiceTiles2D.js +1 -1
  337. package/views/2d/layers/FeatureLikeLayerView2D.js +1 -1
  338. package/views/2d/layers/LayerView2D.js +1 -1
  339. package/views/2d/layers/features/FeatureContainer.js +1 -1
  340. package/views/2d/layers/features/FeatureSourceEventLog.js +1 -1
  341. package/views/2d/layers/features/layerAdapters/ParquetLayerAdapter.js +1 -1
  342. package/views/2d/layers/features/sources/FeatureSource.js +1 -1
  343. package/views/2d/layers/features/sources/FeatureSourceQueryInfo.js +1 -1
  344. package/views/2d/layers/features/sources/strategies/AFeatureTileLoadStrategy.js +1 -1
  345. package/views/2d/layers/features/sources/strategies/FeatureDrillDownTileLoadStrategy.js +1 -1
  346. package/views/2d/layers/features/sources/strategies/ParquetTileLoadStrategy.js +1 -1
  347. package/views/2d/layers/features/support/FeatureSetReader.js +1 -1
  348. package/views/2d/layers/features/support/FeatureSetReaderIndirect.js +1 -1
  349. package/views/2d/layers/features/support/FeatureSetReaderJSON.js +1 -1
  350. package/views/2d/layers/features/support/FeatureSetReaderPBF.js +1 -1
  351. package/views/2d/layers/features/support/FeatureSetReaderPBFHeader.js +1 -1
  352. package/views/3d/analysis/LineOfSight/LineOfSightEditTool.js +1 -1
  353. package/views/3d/analysis/LineOfSight/LineOfSightInteractionVisuals.js +1 -1
  354. package/views/3d/analysis/LineOfSight/LineOfSightItemManipulatedObject3D.js +1 -1
  355. package/views/3d/analysis/LineOfSight/LineOfSightItemTool.js +1 -1
  356. package/views/3d/analysis/LineOfSight/LineOfSightPlacementController.js +1 -1
  357. package/views/3d/analysis/LineOfSight/lineOfSightPlacementUtils.js +1 -1
  358. package/views/3d/analysis/ShadowCast/ShadowCastTooltip.js +1 -1
  359. package/views/3d/analysis/ShadowCastAnalysisView3D.js +1 -1
  360. package/views/3d/analysis/Viewshed/ViewshedPlacementController.js +1 -1
  361. package/views/3d/analysis/Viewshed/ViewshedPlacementPointPlugin.js +1 -1
  362. package/views/3d/analysis/Viewshed/placementUtils.js +1 -1
  363. package/views/3d/analysis/Viewshed/types.d.ts +3 -1
  364. package/views/3d/analysis/ViewshedAnalysisView3D.d.ts +3 -0
  365. package/views/3d/analysis/VolumeMeasurementAnalysisView3D.d.ts +2 -1
  366. package/views/3d/environment/Environment.d.ts +2 -2
  367. package/views/3d/environment/Environment.js +1 -1
  368. package/views/3d/environment/EnvironmentView.js +2 -0
  369. package/views/3d/interactive/SnappingVisualizer3D.js +1 -1
  370. package/views/3d/interactive/editingTools/move/MoveTool3D.js +1 -1
  371. package/views/3d/interactive/editingTools/originGeometryVisualElementUtils.js +1 -1
  372. package/views/3d/interactive/visualElements/ExtendedLineVisualElement.js +1 -1
  373. package/views/3d/interactive/visualElements/ParallelLineVisualElement.js +1 -1
  374. package/views/3d/interactive/visualElements/RightAngleQuadVisualElement.js +1 -1
  375. package/views/3d/layers/BuildingComponentSublayerView3D.js +1 -1
  376. package/views/3d/layers/BuildingSceneLayerView3D.js +1 -1
  377. package/views/3d/layers/DynamicLayerView3D.js +1 -1
  378. package/views/3d/layers/FeatureLikeLayerViewBase3D.js +1 -1
  379. package/views/3d/layers/FlowSubView3D.js +1 -1
  380. package/views/3d/layers/GaussianSplatLayerView3D.js +1 -1
  381. package/views/3d/layers/GraphicsLayerView3D.js +1 -1
  382. package/views/3d/layers/IntegratedMesh3DTilesLayerView3D.js +1 -1
  383. package/views/3d/layers/IntegratedMeshLayerView3D.js +1 -1
  384. package/views/3d/layers/MediaLayerView3D.js +1 -1
  385. package/views/3d/layers/PointCloudLayerView3D.js +1 -1
  386. package/views/3d/layers/RouteLayerView3D.js +1 -1
  387. package/views/3d/layers/SceneLayerGraphicsView3D.js +1 -1
  388. package/views/3d/layers/SceneLayerView3D.js +1 -1
  389. package/views/3d/layers/TiledLayerView3D.js +1 -1
  390. package/views/3d/layers/VoxelLayerView3D.js +1 -1
  391. package/views/3d/layers/graphics/Deconflictor.js +1 -1
  392. package/views/3d/layers/graphics/ElevationAligners.js +1 -1
  393. package/views/3d/layers/graphics/Graphics3DBufferGraphicLayer.js +2 -0
  394. package/views/3d/layers/graphics/Graphics3DCore.js +1 -1
  395. package/views/3d/layers/graphics/Graphics3DDrapedBufferGraphicLayer.js +2 -0
  396. package/views/3d/layers/graphics/Graphics3DDrapedGraphicLayer.js +1 -1
  397. package/views/3d/layers/graphics/Graphics3DDrapedGraphicLayerBase.js +2 -0
  398. package/views/3d/layers/graphics/Graphics3DGraphic.js +1 -1
  399. package/views/3d/layers/graphics/Graphics3DIconSymbolLayer.js +1 -1
  400. package/views/3d/layers/graphics/Graphics3DLineSymbolLayer.js +1 -1
  401. package/views/3d/layers/graphics/Graphics3DObject3DGraphicLayer.js +1 -1
  402. package/views/3d/layers/graphics/Graphics3DScaleVisibility.js +1 -1
  403. package/views/3d/layers/graphics/Graphics3DStageObjectGraphicLayer.js +2 -0
  404. package/views/3d/layers/graphics/Graphics3DSymbol.js +1 -1
  405. package/views/3d/layers/graphics/LabelInfo.js +1 -1
  406. package/views/3d/layers/graphics/Labeler.js +1 -1
  407. package/views/3d/layers/graphics/elevationAlignmentUtils.js +1 -1
  408. package/views/3d/layers/graphics/pointUtils.js +1 -1
  409. package/views/3d/layers/support/FeatureMemory.js +1 -1
  410. package/views/3d/layers/support/FeatureTile.js +1 -1
  411. package/views/3d/layers/support/FeatureTileFetcher3D.js +1 -1
  412. package/views/3d/layers/support/HeatmapFeatureProcessor.js +1 -1
  413. package/views/3d/layers/support/ImageHighlightHelper3D.js +1 -1
  414. package/views/3d/layers/support/SampledGeometryMaxDistanceRatio.js +1 -1
  415. package/views/3d/layers/support/featureTileQuery3D.js +1 -1
  416. package/views/3d/support/PBFDecoder.js +1 -1
  417. package/views/3d/support/elevationUpdateUtils.js +1 -1
  418. package/views/3d/support/popupHitTest.js +1 -1
  419. package/views/3d/terrain/OverlayManager.js +1 -1
  420. package/views/3d/terrain/OverlayRenderer.js +1 -1
  421. package/views/3d/terrain/TerrainRenderer.js +1 -1
  422. package/views/3d/webgl-engine/collections/Component/Material/Component.glsl.js +1 -1
  423. package/views/3d/webgl-engine/core/shaderLibrary/Laserline.glsl.js +5 -5
  424. package/views/3d/webgl-engine/core/shaderLibrary/attributes/VertexPosition.glsl.js +13 -13
  425. package/views/3d/webgl-engine/core/shaderLibrary/bindUniforms.js +2 -0
  426. package/views/3d/webgl-engine/core/shaderLibrary/hud/HUD.glsl.js +2 -2
  427. package/views/3d/webgl-engine/core/shaderLibrary/lastFrameUniforms.js +2 -0
  428. package/views/3d/webgl-engine/core/shaderLibrary/output/OutputHighlight.glsl.js +7 -7
  429. package/views/3d/webgl-engine/core/shaderLibrary/shading/EvaluateSceneLighting.glsl.js +31 -29
  430. package/views/3d/webgl-engine/core/shaderLibrary/shading/LineStipple.glsl.js +26 -12
  431. package/views/3d/webgl-engine/core/shaderLibrary/shading/MainLighting.glsl.js +2 -2
  432. package/views/3d/webgl-engine/core/shaderLibrary/shading/MarkerSizing.glsl.js +14 -14
  433. package/views/3d/webgl-engine/core/shaderLibrary/shading/NormalUtils.glsl.js +1 -1
  434. package/views/3d/webgl-engine/core/shaderLibrary/shading/ReadGlobalIllumination.glsl.js +16 -11
  435. package/views/3d/webgl-engine/core/shaderLibrary/shading/ScreenSpaceRayMarching.glsl.js +5 -5
  436. package/views/3d/webgl-engine/core/shaderLibrary/shading/WaterColor.glsl.js +8 -8
  437. package/views/3d/webgl-engine/core/shaderLibrary/shading/evaluateSceneLightingFragment.glsl.js +1 -1
  438. package/views/3d/webgl-engine/core/shaderLibrary/shading/lightingUniforms.js +2 -0
  439. package/views/3d/webgl-engine/core/shaderLibrary/shading/pbrGlobals.glsl.js +1 -1
  440. package/views/3d/webgl-engine/core/shaderLibrary/shading/readShadow.glsl.js +6 -6
  441. package/views/3d/webgl-engine/core/shaderLibrary/terrain/Overlay.glsl.js +1 -1
  442. package/views/3d/webgl-engine/core/shaderLibrary/util/CloudsParallaxShading.glsl.js +3 -3
  443. package/views/3d/webgl-engine/core/shaderLibrary/util/View.glsl.js +1 -1
  444. package/views/3d/webgl-engine/core/shaderLibrary/util/cameraUniforms.js +1 -1
  445. package/views/3d/webgl-engine/effects/WeatherFader.js +1 -1
  446. package/views/3d/webgl-engine/effects/atmosphere/ChapmanApproximation.glsl.js +3 -3
  447. package/views/3d/webgl-engine/effects/atmosphere/ChapmanAtmosphere.glsl.js +1 -1
  448. package/views/3d/webgl-engine/effects/atmosphere/ChapmanRaymarching.glsl.js +1 -1
  449. package/views/3d/webgl-engine/effects/atmosphere/SimpleAtmosphere.glsl.js +1 -1
  450. package/views/3d/webgl-engine/effects/clouds/CloudsComposition.glsl.js +1 -1
  451. package/views/3d/webgl-engine/effects/clouds/CloudsComposition.js +1 -1
  452. package/views/3d/webgl-engine/effects/fog/Fog.glsl.js +1 -1
  453. package/views/3d/webgl-engine/effects/fog/Fog.js +1 -1
  454. package/views/3d/webgl-engine/effects/globalIllumination/GlobalIllumination.glsl.js +1 -1
  455. package/views/3d/webgl-engine/effects/globalIllumination/GlobalIllumination.js +1 -1
  456. package/views/3d/webgl-engine/effects/globalIllumination/GlobalIlluminationColorQuantization.glsl.js +2 -2
  457. package/views/3d/webgl-engine/effects/glow/applyEmissiveGlow.glsl.js +5 -5
  458. package/views/3d/webgl-engine/effects/haze/Haze.glsl.js +1 -1
  459. package/views/3d/webgl-engine/effects/haze/HazeCompositing.glsl.js +1 -1
  460. package/views/3d/webgl-engine/effects/highlight/ShadowHighlight.glsl.js +1 -1
  461. package/views/3d/webgl-engine/effects/highlight/ShadowHighlightBuffer.glsl.js +1 -1
  462. package/views/3d/webgl-engine/effects/laserlines/LaserlinePath.glsl.js +1 -1
  463. package/views/3d/webgl-engine/effects/raymarching/DistanceFalloff.glsl.js +1 -1
  464. package/views/3d/webgl-engine/effects/shadowAccumulation/ShadowCastAccumulate.glsl.js +1 -1
  465. package/views/3d/webgl-engine/lib/BufferGeometry.js +1 -1
  466. package/views/3d/webgl-engine/lib/BufferObject3D.js +1 -1
  467. package/views/3d/webgl-engine/lib/EmissionComposite.js +1 -1
  468. package/views/3d/webgl-engine/lib/GeometryUtil.js +1 -1
  469. package/views/3d/webgl-engine/lib/Renderer.js +1 -1
  470. package/views/3d/webgl-engine/lib/affectsGeometry.js +1 -1
  471. package/views/3d/webgl-engine/lib/bufferGeometryUtils.js +2 -0
  472. package/views/3d/webgl-engine/lib/edgeRendering/AdjustProjectedPosition.glsl.js +5 -5
  473. package/views/3d/webgl-engine/lib/edgeRendering/EdgeShader.glsl.js +1 -1
  474. package/views/3d/webgl-engine/lib/edgeRendering/EdgeUtil.glsl.js +11 -11
  475. package/views/3d/webgl-engine/materials/Path.glsl.js +1 -1
  476. package/views/3d/webgl-engine/materials/Water.glsl.js +1 -1
  477. package/views/3d/webgl-engine/shaders/AtmosphereCompositing.glsl.js +1 -1
  478. package/views/3d/webgl-engine/shaders/DefaultMaterial.glsl.js +1 -1
  479. package/views/3d/webgl-engine/shaders/GaussianSplat.glsl.js +1 -1
  480. package/views/3d/webgl-engine/shaders/HUDMaterial.glsl.js +1 -1
  481. package/views/3d/webgl-engine/shaders/LineCallout.glsl.js +1 -1
  482. package/views/3d/webgl-engine/shaders/Pattern.glsl.js +1 -1
  483. package/views/3d/webgl-engine/shaders/RealisticTree.glsl.js +1 -1
  484. package/views/3d/webgl-engine/shaders/RibbonLine.glsl.js +1 -1
  485. package/views/3d/webgl-engine/shaders/SphereDepthInterpolate.glsl.js +1 -1
  486. package/views/3d/webgl-engine/shaders/Terrain.glsl.js +1 -1
  487. package/views/3d/webgl-engine/shaders/Viewshed.glsl.js +1 -1
  488. package/views/3d/webgl-engine/shaders/lineUniforms.js +2 -0
  489. package/views/DOMContainer.d.ts +28 -9
  490. package/views/DOMContainer.js +1 -1
  491. package/views/PopupView.d.ts +6 -0
  492. package/views/SceneView.d.ts +4 -10
  493. package/views/SceneView.js +1 -1
  494. package/views/VideoView.d.ts +27 -9
  495. package/views/View.d.ts +20 -19
  496. package/views/View.js +1 -1
  497. package/views/View2D.d.ts +13 -13
  498. package/views/draw/Draw.d.ts +1 -1
  499. package/views/draw/support/InteractiveHandle.js +1 -1
  500. package/views/draw/support/PluginContext.js +1 -1
  501. package/views/draw/support/managers/TooltipManager.js +1 -1
  502. package/views/interactive/options/SnappingOptions.d.ts +29 -12
  503. package/views/interactive/options/TooltipOptions.d.ts +9 -1
  504. package/views/interactive/options/ValueOptions.d.ts +9 -2
  505. package/views/interactive/options/ViewOptions.d.ts +82 -6
  506. package/views/interactive/snapping/FeatureSnappingSourceInfo.js +1 -1
  507. package/views/interactive/snapping/SnappingManagerPool.js +1 -1
  508. package/views/interactive/snapping/SnappingOptions.d.ts +1 -1
  509. package/views/interactive/snapping/SnappingVisualizer.js +1 -1
  510. package/views/interactive/support/Units.d.ts +1 -0
  511. package/views/interactive/tooltip/components/DrawHeaderActions.js +1 -1
  512. package/views/interactive/tooltip/components/ElevationModeSelect.js +1 -1
  513. package/views/interactive/tooltip/components/TooltipEditableField.js +1 -1
  514. package/views/interactive/tooltip/infos/DynamicTooltipInfo.js +1 -1
  515. package/views/layers/FeatureLikeLayerView.d.ts +2 -2
  516. package/views/layers/GraphicsLayerView.d.ts +1 -0
  517. package/views/layers/ImageryLayerView.d.ts +1 -0
  518. package/views/layers/LayerView.js +1 -1
  519. package/views/layers/LineOfSightLayerView.d.ts +3 -4
  520. package/views/layers/ParquetLayerView.d.ts +15 -0
  521. package/views/layers/ParquetLayerView.js +1 -1
  522. package/views/layers/ViewshedLayerView.d.ts +5 -6
  523. package/views/support/layerViewUtils.js +1 -1
  524. package/views/support/projectionUtils.js +1 -1
  525. package/views/types.d.ts +3 -1
  526. package/webdoc/support/saveUtils.js +1 -1
  527. package/webdoc/support/unsupportedErrors.js +1 -1
  528. package/widgets/BasemapGallery/BasemapGalleryViewModel.d.ts +2 -2
  529. package/widgets/BasemapGallery/BasemapGalleryViewModel.js +1 -1
  530. package/widgets/BasemapGallery/support/BasemapGalleryItem.d.ts +3 -3
  531. package/widgets/BasemapGallery/support/LocalBasemapsSource.d.ts +2 -2
  532. package/widgets/BasemapGallery/support/PortalBasemapsSource.d.ts +2 -2
  533. package/widgets/BasemapGallery/types.d.ts +3 -3
  534. package/widgets/BasemapLayerList.js +1 -1
  535. package/widgets/BatchAttributeForm/BatchAttributeFormViewModel.js +1 -1
  536. package/widgets/BatchAttributeForm/expressions/ExpressionsManager.js +1 -1
  537. package/widgets/BatchAttributeForm/expressions/expressionUtils.js +1 -1
  538. package/widgets/BatchAttributeForm/inputs/FieldInput.d.ts +6 -0
  539. package/widgets/BatchAttributeForm/inputs/FieldInput.js +1 -1
  540. package/widgets/BatchAttributeForm/inputs/support/DynamicChoiceController.js +1 -1
  541. package/widgets/BatchAttributeForm/inputs/support/createBatchFormInputs.js +1 -1
  542. package/widgets/BatchAttributeForm.js +1 -1
  543. package/widgets/DirectionalPad.js +1 -1
  544. package/widgets/Editor/EditorViewModel.d.ts +13 -8
  545. package/widgets/Editor/components/UpdateFeaturePanelContent.js +1 -1
  546. package/widgets/Editor/workflowUtils.js +1 -1
  547. package/widgets/Editor.d.ts +19 -9
  548. package/widgets/Expand.js +1 -1
  549. package/widgets/FeatureForm.d.ts +2 -2
  550. package/widgets/FeatureForm.js +1 -1
  551. package/widgets/FeatureTable/FieldColumn.js +1 -1
  552. package/widgets/FeatureTable.js +1 -1
  553. package/widgets/Features/FeaturesDrillIn.js +1 -1
  554. package/widgets/Features.js +1 -1
  555. package/widgets/Legend.d.ts +1 -0
  556. package/widgets/OrientedImageryViewer/OrientedImageryViewerViewModel.js +1 -1
  557. package/widgets/OrientedImageryViewer/adapters/draw/HeightMeasurementAdapter.js +1 -1
  558. package/widgets/OrientedImageryViewer/adapters/sketch/MeasurementAdapter.js +1 -1
  559. package/widgets/OrientedImageryViewer/adapters/sketch/TriangulatedMeasurementAdapter.js +1 -1
  560. package/widgets/OrientedImageryViewer/adapters/view/SceneViewAdapter.js +1 -1
  561. package/widgets/OrientedImageryViewer/components/ImageLocationViewModel.js +1 -1
  562. package/widgets/OrientedImageryViewer/components/SequentialNavigationUI.js +1 -1
  563. package/widgets/OrientedImageryViewer/components/SketchTools.js +1 -1
  564. package/widgets/OrientedImageryViewer/services/ImageMeasurementService.js +1 -1
  565. package/widgets/OrientedImageryViewer/types.d.ts +20 -0
  566. package/widgets/OrientedImageryViewer.d.ts +9 -1
  567. package/widgets/PanoramicVideoViewer.js +1 -1
  568. package/widgets/Print/PrintViewModel.d.ts +3 -2
  569. package/widgets/Print/PrintViewModel.js +1 -1
  570. package/widgets/Print.js +1 -1
  571. package/widgets/ScaleRangeSlider.js +1 -1
  572. package/widgets/Search/SearchResultRenderer.js +1 -1
  573. package/widgets/ShadowCast/ShadowCastViewModel.js +1 -1
  574. package/widgets/Sketch/SketchViewModel.d.ts +14 -9
  575. package/widgets/Sketch/support/ResponsiveToolbar/ResponsiveToolbar.js +1 -1
  576. package/widgets/Sketch.d.ts +10 -10
  577. package/widgets/Track/TrackViewModel.d.ts +1 -1
  578. package/widgets/UtilityNetworkAssociations.js +1 -1
  579. package/widgets/UtilityNetworkTrace/UtilityNetworkTraceFeature.js +1 -1
  580. package/widgets/UtilityNetworkTrace/UtilityNetworkTraceFeaturesDrillIn.js +1 -1
  581. package/widgets/UtilityNetworkTrace/types.d.ts +2 -2
  582. package/widgets/UtilityNetworkTrace.js +1 -1
  583. package/widgets/UtilityNetworkValidateTopology.js +1 -1
  584. package/widgets/ValuePicker.js +1 -1
  585. package/widgets/VideoPlayer/components/PlayerActionsGroup.js +1 -1
  586. package/widgets/VideoPlayer/components/PlayerControlsGroup.js +1 -1
  587. package/widgets/support/GridControls.js +1 -1
  588. package/widgets/support/PluginSettingsControls.js +1 -1
  589. package/widgets/support/SelectionList/FeatureItem.d.ts +9 -2
  590. package/widgets/support/SelectionToolbar.js +1 -1
  591. package/widgets/support/SnappingControls.d.ts +1 -1
  592. package/widgets/support/SnappingControls.js +1 -1
  593. package/widgets/support/componentsUtils.js +1 -1
  594. package/arcade/geometry/wkt.js +0 -2
  595. package/assets/esri/core/workers/chunks/00a600c71ceebe7bfeee.js +0 -1
  596. package/assets/esri/core/workers/chunks/00d24415bdeb0adae3df.js +0 -1
  597. package/assets/esri/core/workers/chunks/0193df3f9fb23633da87.js +0 -1
  598. package/assets/esri/core/workers/chunks/01b00fbf6a6a22d573ee.js +0 -1
  599. package/assets/esri/core/workers/chunks/02d4f91652a79d2b637e.js +0 -1
  600. package/assets/esri/core/workers/chunks/050c4b212f2b5691db34.js +0 -1
  601. package/assets/esri/core/workers/chunks/05963f57cbe5a5249496.js +0 -1
  602. package/assets/esri/core/workers/chunks/05d865b2736f452ad2aa.js +0 -1
  603. package/assets/esri/core/workers/chunks/06e7400f5ebe0719b81c.js +0 -1
  604. package/assets/esri/core/workers/chunks/07aa6d36f1006b6ab7ff.js +0 -1
  605. package/assets/esri/core/workers/chunks/084222c00d263a534952.js +0 -1
  606. package/assets/esri/core/workers/chunks/0b36abcbf03037b4073d.js +0 -1
  607. package/assets/esri/core/workers/chunks/107b025dc5b09465a78f.js +0 -1
  608. package/assets/esri/core/workers/chunks/1b551ef3d84d9c1e93f9.js +0 -1
  609. package/assets/esri/core/workers/chunks/1ef39aef6b33c530cbe4.js +0 -1
  610. package/assets/esri/core/workers/chunks/1f3148cebee1961249a4.js +0 -1
  611. package/assets/esri/core/workers/chunks/1f43e06dcfe56229bb0f.js +0 -1
  612. package/assets/esri/core/workers/chunks/2164fcaced72b0fda31f.js +0 -1
  613. package/assets/esri/core/workers/chunks/25b0885d3bc190b28c04.js +0 -1
  614. package/assets/esri/core/workers/chunks/25d6c674b1c4829f040f.js +0 -1
  615. package/assets/esri/core/workers/chunks/260dcb79dfd0f981949f.js +0 -1
  616. package/assets/esri/core/workers/chunks/2a570ce6b99dac6ee996.js +0 -1
  617. package/assets/esri/core/workers/chunks/2e6a2f4d686b71249c0e.js +0 -1
  618. package/assets/esri/core/workers/chunks/2f9033890c465acff698.js +0 -1
  619. package/assets/esri/core/workers/chunks/303676d1b10676c9cab4.js +0 -1
  620. package/assets/esri/core/workers/chunks/303fde8f3459dde16555.js +0 -1
  621. package/assets/esri/core/workers/chunks/32d08b571bbd996d4e6d.js +0 -1
  622. package/assets/esri/core/workers/chunks/33956f12505e72e60293.js +0 -1
  623. package/assets/esri/core/workers/chunks/350540770781b281c39a.js +0 -1
  624. package/assets/esri/core/workers/chunks/37a636f61cfe89c6bfd1.js +0 -1
  625. package/assets/esri/core/workers/chunks/380cc538c1ab453870fa.js +0 -1
  626. package/assets/esri/core/workers/chunks/3880d2c7fb14955d7f93.js +0 -1
  627. package/assets/esri/core/workers/chunks/3b017b718ea2d4ed498f.js +0 -1
  628. package/assets/esri/core/workers/chunks/40fb1910f780e78c128c.js +0 -1
  629. package/assets/esri/core/workers/chunks/4310c8d2b40ae69c3681.js +0 -1
  630. package/assets/esri/core/workers/chunks/43fc42405167a5537039.js +0 -1
  631. package/assets/esri/core/workers/chunks/4848f195eb93cc93dd15.js +0 -1
  632. package/assets/esri/core/workers/chunks/4cddd217383b9333f32e.js +0 -1
  633. package/assets/esri/core/workers/chunks/4d82db661365daa513a6.js +0 -1
  634. package/assets/esri/core/workers/chunks/4fa59f8ed3b7b6239548.js +0 -1
  635. package/assets/esri/core/workers/chunks/57970d43cdcc5cf57a30.js +0 -1
  636. package/assets/esri/core/workers/chunks/5e184fd47e76eb976fa9.js +0 -1
  637. package/assets/esri/core/workers/chunks/5ea8809b6519c05ad9f6.js +0 -1
  638. package/assets/esri/core/workers/chunks/5f3ab77a79c408423fde.js +0 -1
  639. package/assets/esri/core/workers/chunks/5fd099ca1024707387b2.js +0 -1
  640. package/assets/esri/core/workers/chunks/604344e45c0f27497188.js +0 -1
  641. package/assets/esri/core/workers/chunks/61ad8306ab79aca79505.js +0 -1
  642. package/assets/esri/core/workers/chunks/633a9051580c5302d2f7.js +0 -1
  643. package/assets/esri/core/workers/chunks/6469c0d18d3663e7da4b.js +0 -1
  644. package/assets/esri/core/workers/chunks/65654e481cce9ae40e54.js +0 -1
  645. package/assets/esri/core/workers/chunks/669e39c3437d7273f0c7.js +0 -1
  646. package/assets/esri/core/workers/chunks/68e24fa3f564c2a5c9fd.js +0 -1
  647. package/assets/esri/core/workers/chunks/6aebf7cfd294e88bf926.js +0 -1
  648. package/assets/esri/core/workers/chunks/71f739bb3f7350704af6.js +0 -1
  649. package/assets/esri/core/workers/chunks/750a9f3cdb96b966274a.js +0 -1
  650. package/assets/esri/core/workers/chunks/776565dd9741ba2ba151.js +0 -1
  651. package/assets/esri/core/workers/chunks/798a63653f82c0e842c5.js +0 -1
  652. package/assets/esri/core/workers/chunks/841f67baf6a1634ada48.js +0 -1
  653. package/assets/esri/core/workers/chunks/84fcbf7a1d04f01685d1.js +0 -1
  654. package/assets/esri/core/workers/chunks/897fc8e78a0d54a5ff5a.js +0 -1
  655. package/assets/esri/core/workers/chunks/8af92bcc075e03e3e902.js +0 -1742
  656. package/assets/esri/core/workers/chunks/8e511079918e2fd9261f.js +0 -1
  657. package/assets/esri/core/workers/chunks/8e7a33cc1f83063043f2.js +0 -1
  658. package/assets/esri/core/workers/chunks/8fcfd515ee1b18c902e5.js +0 -1
  659. package/assets/esri/core/workers/chunks/9001e9a1e81bce175ddd.js +0 -1
  660. package/assets/esri/core/workers/chunks/9432feca48ca3e5849bd.js +0 -1
  661. package/assets/esri/core/workers/chunks/956a40f40bde416efe93.js +0 -1
  662. package/assets/esri/core/workers/chunks/95b82cbbe355266c65d7.js +0 -1
  663. package/assets/esri/core/workers/chunks/9673a9efec86040b8c13.js +0 -1
  664. package/assets/esri/core/workers/chunks/97dbbedea9fe03bd1306.js +0 -1
  665. package/assets/esri/core/workers/chunks/985b3f18cee87c3fe022.js +0 -1
  666. package/assets/esri/core/workers/chunks/9a7fc93cc693fd12b5d8.js +0 -1
  667. package/assets/esri/core/workers/chunks/9c0fd8baa00ee9733ba4.js +0 -1
  668. package/assets/esri/core/workers/chunks/a010d2e4e34eb7bc1fec.js +0 -1
  669. package/assets/esri/core/workers/chunks/a20526996d01386ec3b7.js +0 -1
  670. package/assets/esri/core/workers/chunks/a23272a7a47a95f6ddea.js +0 -1
  671. package/assets/esri/core/workers/chunks/a7edf7541569fef77cb3.js +0 -1
  672. package/assets/esri/core/workers/chunks/aa5b42e44d2959fdacd3.js +0 -1
  673. package/assets/esri/core/workers/chunks/ae2181805d8ba130babc.js +0 -1
  674. package/assets/esri/core/workers/chunks/b05a41a60e30935644be.js +0 -1
  675. package/assets/esri/core/workers/chunks/b0cfec11c758eed8095f.js +0 -1
  676. package/assets/esri/core/workers/chunks/bff767ec5bb4c0d6b324.js +0 -1
  677. package/assets/esri/core/workers/chunks/c906f984b2b6e7578c06.js +0 -1
  678. package/assets/esri/core/workers/chunks/ca7fb75e2c62e7d37122.js +0 -1
  679. package/assets/esri/core/workers/chunks/cbdebdfa5f2cded29d0d.js +0 -1
  680. package/assets/esri/core/workers/chunks/cbe6c0f32608cb504695.js +0 -1
  681. package/assets/esri/core/workers/chunks/cfae60b9d2f2939e9c16.js +0 -1
  682. package/assets/esri/core/workers/chunks/d270cc9807161033686e.js +0 -1
  683. package/assets/esri/core/workers/chunks/d56780290e0218d3e9de.js +0 -1
  684. package/assets/esri/core/workers/chunks/d6d5a9e73ee43d6066d3.js +0 -1
  685. package/assets/esri/core/workers/chunks/d89fe41c71c9621c41ae.js +0 -1
  686. package/assets/esri/core/workers/chunks/da18d96b35af20e73b3b.js +0 -1
  687. package/assets/esri/core/workers/chunks/de02a6a1f4810f99e9bb.js +0 -1
  688. package/assets/esri/core/workers/chunks/df0481bcc1613ee4b7af.js +0 -1
  689. package/assets/esri/core/workers/chunks/e22d45aeef293a5ffb78.js +0 -1
  690. package/assets/esri/core/workers/chunks/e5943f3a4bbc12c06c4d.js +0 -1
  691. package/assets/esri/core/workers/chunks/e7c60bd85abbd36cdc64.js +0 -1
  692. package/assets/esri/core/workers/chunks/ec9a2425b4a498054a19.js +0 -1
  693. package/assets/esri/core/workers/chunks/edf3be87a997f4f05b96.js +0 -1
  694. package/assets/esri/core/workers/chunks/f05de08e194a3f9b96f2.js +0 -1
  695. package/assets/esri/core/workers/chunks/f0a68d2900d24f56afa0.js +0 -1
  696. package/assets/esri/core/workers/chunks/f0aaa646b17ffdbdcefa.js +0 -1
  697. package/assets/esri/core/workers/chunks/f0c0c02730fe0d948fc1.js +0 -1
  698. package/assets/esri/core/workers/chunks/fd0254c6fc6c03ec11ba.js +0 -1
  699. package/assets/esri/core/workers/chunks/ffb3728e6ac428f62af1.js +0 -1
  700. package/views/3d/environment/EnvironmentManager.js +0 -2
  701. /package/{basemaps → basemapGallery}/support/basemapCompatibilityUtils.js +0 -0
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/6.0/LICENSE.txt */
2
- import{__decorate as e}from"tslib";import t from"../../../core/Accessor.js";import{cyclicalPI as n}from"../../../core/Cyclical.js";import"../../../core/has.js";import{clamp as r,deg2rad as i}from"../../../core/mathUtils.js";import{destroyMaybe as a}from"../../../core/maybe.js";import{watch as o,sync as s,when as c}from"../../../core/reactiveUtils.js";import{property as l,subclass as u}from"../../../core/accessorSupport/decorators.js";import{subtract as d}from"../../../core/libs/gl-matrix-2/math/vec2.js";import{add as f,subtract as p,copy as m,distance as h}from"../../../core/libs/gl-matrix-2/math/vec3.js";import{create as g}from"../../../core/libs/gl-matrix-2/factories/vec3f64.js";import{transformMat4 as _,scale as ee,add as te}from"../../../core/libs/gl-matrix-2/math/vec4.js";import{fromValues as v,create as y}from"../../../core/libs/gl-matrix-2/factories/vec4f64.js";import{getReferenceEllipsoid as b}from"../../../geometry/ellipsoidUtils.js";import{projectVectorToVector as x}from"../../../geometry/projection/projectVectorToVector.js";import{create as S,width as C,center as w,copy as T,intersection as E,contains as ne,offset as D}from"../../../geometry/support/aaBoundingRect.js";import{createSpatialReferenceCyclical as O}from"../../../geometry/support/normalizeUtils.js";import{create as k,wrap as A}from"../../../geometry/support/ray.js";import{Sphere as j}from"../../../geometry/support/sphere.js";import{angleAroundAxis as M}from"../../../geometry/support/vector.js";import{y2lat as re}from"../../../geometry/support/webMercatorUtils.js";import{viewAngle as ie}from"../state/utils/viewUtils.js";import{debugFlags as N}from"../support/debugFlags.js";import{DebugPoint as ae}from"../support/debugUtils.js";import{getPlanarDistanceToGroundRatio as P}from"../support/planarDistanceToGroundRatio.js";import{OverlayRenderer as F}from"./OverlayRenderer.js";import{Intersector as I}from"../webgl-engine/lib/Intersector.js";import{fromValues as L}from"../webgl-engine/lib/LocalOriginFactory.js";import{SortedRenderGeometryRenderer as R}from"../webgl-engine/lib/SortedRenderGeometryRenderer.js";import{applyTextureResizeModulo as z,ensureTextureSize as B}from"../webgl-engine/lib/textureUtils.js";import{removeLoadedShaderModules as V}from"../webgl-engine/parts/renderUtils.js";import{TaskPriority as H,noBudget as U}from"../../support/Scheduler.js";import{Yield as W}from"../../support/Yield.js";const G=1.3,K=[[-.1,-2,3.9,2],[-.1,-3.9,3.9,.1],[-2,-3.9,2,.1],[-3.9,-3.9,.1,.1],[-3.9,-2,.1,2],[-3.9,-.1,.1,3.9],[-2,-.1,2,3.9],[-.1,-.1,3.9,3.9]];let q,J=class extends t{constructor(e){super(e),this._renderSR=null,this._overlaySREqualsRenderSR=!0,this._drapeSources=new Set,this._drapeTargets=new Set,this._placementDirty=!1,this._contentUpdated=!1,this._drawTexturesDirty=!1,this._drawTexturesAnimateDirty=!1,this._latestOriginId=0,this.groundView=e.view.groundView}initialize(){let{view:e}=this;this.renderer=new F({parent:this}),e.stage.renderer.plugins.add(this.renderer);let t=()=>this.requestRender();this._groundIntersector=new I(e.state.viewingMode),this._groundIntersector.options.backfacesTerrain=!0,this._groundIntersector.options.invisibleTerrain=!0,this._groundIntersector.options.hud=!1,this.addHandles([o(()=>this.renderer.hasHighlights,t),this.renderer.events.on(`has-water`,()=>e.stage?.renderer.updateHasFlags()),this.renderer.events.on(`content-changed`,t),o(()=>e.state.camera.pixelRatio,t),o(()=>e.state.alignPixelEnabled,t),this.renderer.events.on(`textures-disposed`,()=>this.groundView.requestRender(1)),o(()=>[e.pointsOfInterest?.renderPointOfView,e.pointsOfInterest?.centerOnSurfaceFrequent?.location],()=>this.setPlacementDirty()),o(()=>[e.state?.pixelRatio,e.state?.contentPixelRatio],()=>this.setPlacementDirty(),s),c(()=>e.groundAndIMSurface,e=>e.on(`elevation-change`,()=>this.setPlacementDirty())),e.on(`resize`,()=>this.setPlacementDirty()),e.resourceController.scheduler.registerTask(H.OVERLAY,this)]),e.stage.renderer.overlay=this}destroy(){this.view?.stage&&(this.view.stage.renderer.plugins.remove(this.renderer),this.view.stage.renderer.overlay=null,a(this.renderer)),q&&=(q.hide(),null),this.renderer=null}get spatialReference(){return this._spatialReference}set spatialReference(e){this._spatialReference=e,this.renderer.longitudeCyclical=null;let t=this.view.renderSpatialReference;e!=null&&t!=null?(this._renderSR=t,this._overlaySREqualsRenderSR=e.equals(this._renderSR),this._isSpherical&&(this.renderer.longitudeCyclical=O(e))):this.renderer.disposeOverlays()}get readyToRun(){return this._placementDirty&&(this._drapeSources.size>0||this.view.graphics.length>0||N.OVERLAY_DRAW_DEBUG_TEXTURE)&&!!this._spatialReference&&!(this.terrainSurface.enabled&&this.terrainSurface.freeze)&&this.groundView.ready}get _isSpherical(){return this.view.state.isGlobal}get mapUnitsToPlanarDistanceRatio(){return this._spatialReference!=null&&this._spatialReference.isGeographic&&this._isSpherical?b(this._spatialReference).metersPerDegree:1}getPlanarDistanceToGroundRatio(e){return this._spatialReference==null?1:P(this._spatialReference,this._isSpherical,e)}get _overlayStretch(){return G/this.view.resolutionScale}get longitudeCyclical(){return this.renderer.longitudeCyclical}get updating(){return this.readyToRun||!!this.renderer?.updating||this._contentUpdated}render(e){return this._contentUpdated=!1,this.renderer.time=e,this.renderer.processSyncDrapeSources(),this.renderer.precompileShaders(this.view.state)?this._drawOverlays():null}get hasOverlays(){return this.renderer.hasOverlays}registerDrapeSource(e,t){this._drapeSources.add(e),this.renderer.ensureOverlays(this._drapeTargets,this._drapeSources),this.renderer.registerDrapeSource(e,t),this._updateDrapeSourceExtent(e),this._setContentDirty(),this.notifyChange(`readyToRun`)}registerGeometryDrapeSource(e){let t=new R({stage:this.view.stage,drapeSource:e,rendererContext:this.renderer});return this.registerDrapeSource(e,t),t}_updateDrapeSourceExtent(e){this.renderer.overlays.length===2&&e.setDrapingExtent!=null&&this._spatialReference!=null&&e.setDrapingExtent(this.renderer.overlays,this._spatialReference)}unregisterDrapeSource(e){this._drapeSources.has(e)&&(this._drapeSources.delete(e),this.renderer.removeDrapeSourceRenderer(e),this.renderer.ensureDrapeSources(this._drapeSources),this._setContentDirty(),this.notifyChange(`readyToRun`))}registerDrapeTarget(e){this._drapeTargets.add(e),this.renderer.ensureOverlays(this._drapeTargets,this._drapeSources)}unregisterDrapeTarget(e){this._drapeTargets.delete(e),this.renderer.ensureDrapeTargets(this._drapeTargets)}_setContentDirty(){this.setPlacementDirty(),this.requestRender()}setPlacementDirty(){this._placementDirty=!0}runTask(e){return this.updateOverlays(e,this.view.state.contentCamera,1)}updateOverlays(e,t,n){if(!this._spatialReference||!this.view.pointsOfInterest?.centerOnSurfaceFrequent)return W;let r=this._computeOverlayHeight(t);this._computeOverlayExtents(t,r,Z),this.renderer.ensureOverlays(this._drapeTargets,this._drapeSources,Z.stretch);let i=this._updateOverlay(0,Z.inner,r,1*Z.pixelRatioAdjustment,Z.mapUnitsPerPixel),a=C(Z.inner)/C(Z.outer),o=this._updateOverlay(1,Z.outer,r,a*Z.pixelRatioAdjustment,Z.mapUnitsPerPixel);(i===1||o===1)&&(this._drapeSources.forEach(e=>this._updateDrapeSourceExtent(e)),this.groundView.updateOverlayParameters(),this.groundView.requestRender(n)),(i!==0||o!==0)&&this.requestRender(),this._placementDirty=!1,e.madeProgress()}_computeOverlayHeight(e){let t=this.view.state.contentPixelRatio*this.view.resolutionScale,n=e.fullWidth/e.pixelRatio*t,r=e.fullHeight/e.pixelRatio*t,i=Math.ceil(Math.max(n,r)*1.5),{maxPreferredTexturePixels:a,maxTextureSize:o}=this.view.stage.renderView.renderingContext.parameters,s=o*.5;return z(B({width:i,height:i},{maxPreferredTexturePixels:a*2,maxTextureSize:s})[1],s)}get overlays(){return this.renderer.overlays}_updateOverlay(e,t,n,r,i){if(this.renderer.overlays.length===0)return 0;let a=this.renderer.overlays[e],o=a.mapUnitsPerPixel;if(a.mapUnitsPerPixel=i,a.pixelRatio=r,oe(t,a.extent)&&n===a.resolution)return o===i?0:2;a.setExtent(t),a.resolution=n;let s=w(a.extent);return a.renderLocalOrigin=L(s[0],s[1],0,`OV_${this._latestOriginId++}`),1}overlayPixelSizeInMapUnits(e,t){if(this.renderer.overlays.length===0)return t();let n=this.renderer.overlays[0],r=this.renderer.overlays[1],i=this._pointIsInExtent(e,n.extent)?n:r;return(i.extent[2]-i.extent[0])/i.resolution}reloadShaders(){V(),this.requestRender(),this.runTask(U)}requestRender(e=1){this.renderer.hasOverlays?(e===1?(this._contentUpdated=!0,this._drawTexturesDirty=!0):this._drawTexturesAnimateDirty=!0,this.view.stage.renderView.requestRender(e)):this.setPlacementDirty()}_intersectGroundFromView(e,t,n,r,i){let a=this.view.sceneIntersectionHelper.getCenterRayWithSubpixelOffset(e,le,t,n);if(a==null)return!1;let o=a.origin,s=f(X,a.origin,a.direction);this._groundIntersector.reset(o,s,e),this._groundIntersector.intersect([]),this.view.groundAndIMSurface.intersect(this._groundIntersector,null,o,s);let c=this._groundIntersector.results.min;return c.getIntersectionPoint(i)&&c.withinDistance(r)}_findHorizonBasedPointOfInterest(e,t){let i=.5,a=.55,o=this.view.renderCoordsHelper.getAltitude(e.eye),s=this.view.pointsOfInterest.centerOnSurfaceFrequent,c=1e-5,l=r(s.estimatedSurfaceAltitude,e.aboveGround?-1/0:o+c,e.aboveGround?o-c:1/0),u=e.aboveGround;if(this.view.viewingMode===`global`){let t=X;$.radius=b(this.view.spatialReference).radius+l,$.closestPointOnSilhouette(A(e.eye,e.viewForward),t),p(t,t,e.eye);let r=n.normalize(M(e.viewForward,t,e.viewRight))/e.fovY+.5,o=r<=0||r>=1?.5:a;i=u?o*r:r+o*(1-r)}else{let t=Math.PI*.5-Math.acos(-e.viewForward[2]),n=v(0,Math.tan(t),1,0),o=_(n,n,e.projectionMatrix)[1],s=r(.5+.5*o,0,1);i=s===1||s===0?.5:u?s*a:1-(1-s)*a}return this._intersectGroundFromView(e,.5,i,s.distance,t)}_computeOverlayExtents(e,t,n){let{view:r}=this,a=r.pointsOfInterest.centerOnSurfaceFrequent.renderLocation,o=g();this._findHorizonBasedPointOfInterest(e,o)||m(o,a);let s=this._renderSR;N.OVERLAY_SHOW_CENTER?(q??=new ae(r.graphics,`red`),q.show(o,s)):q?.hide();let c=Math.max(.1,h(e.eye,o)),l=ie(r.renderCoordsHelper,a,e.eye),u=this._spatialReference;this._overlaySREqualsRenderSR||x(o,s,o,u);let f=this._isSpherical,p=this.groundView.groundExtent,_=!f&&u?.isGeographic,v=_&&u?1/b(u).metersPerDegree:1,y=r.state.contentPixelRatio,S=e.computeScreenPixelSizeAtDistance(c)/y*v;n.mapUnitsPerPixel=_?S:S/this.mapUnitsToPlanarDistanceRatio,n.stretch=this._overlayStretch;let w=t*S/2*n.stretch,D=!1,O=_?90:1/0;f&&p&&u&&(u.isWebMercator?(w/=Math.cos(re(o[1])),O=p[3]):(D=!0,w/=b(u).metersPerDegree,O=90),w>=O&&(w=O,o[1]=0,u.isWebMercator&&(o[0]=0)));let k=1;D&&(k=1/Math.max(.2,Math.cos(Math.abs(i(o[1])))),w*k>180&&(k=180/w),n.mapUnitsPerPixel*=k);let A=Math.log(2)/12;w=Math.exp(Math.round(Math.log(w)/A)*A);let j=w*k,M=.5*t/(32*j),P=.5*t/(32*w);o[0]=Math.round(o[0]*M)/M,o[1]=Math.round(o[1]*P)/P;let F=n.inner;F[0]=o[0]-j,F[1]=o[1]-w,F[2]=o[0]+j,F[3]=o[1]+w,f&&this._shiftExtentToFitBounds(F,1/0,O);let I=n.outer;if(p&&6*j>C(p))T(I,p);else if(Math.PI/2-Math.abs(l-Math.PI/2)<=.25*Math.PI)I[0]=F[0]-j,I[1]=F[1]-w,I[2]=F[2]+j,I[3]=F[3]+w;else{x(e.eye,s,X,u),d(Y,o,X);let t=-Math.atan2(Y[1],Y[0])+Math.PI*.125;t<0&&(t+=2*Math.PI);let n=Math.floor(t/(Math.PI*.25));ee(Y,K[n],w*2),Y[0]*=k,Y[2]*=k,te(I,F,Y)}if(f&&this.longitudeCyclical)I[0]=this.longitudeCyclical.clamp(I[0]),I[2]=this.longitudeCyclical.clamp(I[2]),I[1]=Math.max(I[1],-O),I[3]=Math.min(I[3],O);else{let e=E(F,p,Q),t=E(I,p,ce);ne(e,t)&&(I[2]=I[0],I[3]=I[1])}let L=Math.abs(F[2]-F[0])/t;n.mapUnitsPerPixel=Math.max(n.mapUnitsPerPixel,L),n.pixelRatioAdjustment=n.mapUnitsPerPixel/L}_drawOverlays(e=this.view.state){if(!this._drawTexturesDirty&&!this._drawTexturesAnimateDirty)return this.renderer;let t=!this._drawTexturesDirty&&this._drawTexturesAnimateDirty?0:1;this._drawTexturesDirty=this._drawTexturesAnimateDirty=!1;let n=this.renderer.computeValidity();return this.renderer.releaseRenderTargets(t),this.renderer.drawOverlays(e,t),n!==this.renderer.computeValidity()&&(this.groundView.updateOverlayParameters(),this.groundView.requestRender(1)),this.groundView.requestRender(t),t===1&&this.terrainSurface.requestUpdate(),this.renderer}_pointIsInExtent(e,t){if(this.longitudeCyclical)return this.longitudeCyclical.contains(t[0],t[2],e.x)&&e.y>=t[1]&&e.y<=t[3];let n=e.x,r=e.y;return n>t[0]&&n<t[2]&&r>t[1]&&r<t[3]}_shiftExtentToFitBounds(e,t,n){let r=0,i=0;e[0]<-t?r=e[0]+t:e[2]>t&&(r=t-e[2]),e[1]<-n?i=e[1]+n:e[3]>n&&(i=n-e[3]),D(e,r,i)}get test(){}};e([l()],J.prototype,`_spatialReference`,void 0),e([l({readOnly:!0})],J.prototype,`readyToRun`,null),e([l()],J.prototype,`_placementDirty`,void 0),e([l()],J.prototype,`_contentUpdated`,void 0),e([l()],J.prototype,`_isSpherical`,null),e([l()],J.prototype,`mapUnitsToPlanarDistanceRatio`,null),e([l()],J.prototype,`renderer`,void 0),e([l({constructOnly:!0})],J.prototype,`view`,void 0),e([l({constructOnly:!0})],J.prototype,`groundView`,void 0),e([l({constructOnly:!0})],J.prototype,`terrainSurface`,void 0),e([l()],J.prototype,`updating`,null),J=e([u(`esri.views.3d.terrain.OverlayManager`)],J);function oe(e,t){let n=N.ENABLE_OPTIMIZATIONS?1e-5*Math.max(e[2]-e[0],e[3]-e[1],t[2]-t[0],t[3]-t[1]):0;return Math.abs(t[0]-e[0])<=n&&Math.abs(t[1]-e[1])<=n&&Math.abs(t[2]-e[2])<=n&&Math.abs(t[3]-e[3])<=n}class se{constructor(){this.inner=S(),this.outer=S(),this.mapUnitsPerPixel=0,this.pixelRatioAdjustment=1,this.stretch=G}}const Y=y(),X=g(),Z=new se,Q=S(),ce=S(),le=k(),$=new j;export{J as OverlayManager};
2
+ import{__decorate as e}from"tslib";import t from"../../../core/Accessor.js";import{cyclicalPI as n}from"../../../core/Cyclical.js";import"../../../core/has.js";import{clamp as r,deg2rad as i}from"../../../core/mathUtils.js";import{destroyMaybe as a}from"../../../core/maybe.js";import{watch as o,sync as s,when as c}from"../../../core/reactiveUtils.js";import{property as l,subclass as u}from"../../../core/accessorSupport/decorators.js";import{subtract as d}from"../../../core/libs/gl-matrix-2/math/vec2.js";import{add as f,subtract as p,copy as m,distance as h}from"../../../core/libs/gl-matrix-2/math/vec3.js";import{create as g}from"../../../core/libs/gl-matrix-2/factories/vec3f64.js";import{transformMat4 as _,scale as ee,add as te}from"../../../core/libs/gl-matrix-2/math/vec4.js";import{fromValues as v,create as y}from"../../../core/libs/gl-matrix-2/factories/vec4f64.js";import{getReferenceEllipsoid as b}from"../../../geometry/ellipsoidUtils.js";import{projectVectorToVector as x}from"../../../geometry/projection/projectVectorToVector.js";import{create as S,width as C,center as w,copy as T,intersection as E,contains as ne,offset as D}from"../../../geometry/support/aaBoundingRect.js";import{createSpatialReferenceCyclical as O}from"../../../geometry/support/normalizeUtils.js";import{create as k,wrap as A}from"../../../geometry/support/ray.js";import{Sphere as j}from"../../../geometry/support/sphere.js";import{angleAroundAxis as M}from"../../../geometry/support/vector.js";import{y2lat as re}from"../../../geometry/support/webMercatorUtils.js";import{viewAngle as ie}from"../state/utils/viewUtils.js";import{debugFlags as N}from"../support/debugFlags.js";import{DebugPoint as ae}from"../support/debugUtils.js";import{getPlanarDistanceToGroundRatio as P}from"../support/planarDistanceToGroundRatio.js";import{OverlayRenderer as F}from"./OverlayRenderer.js";import{Intersector as I}from"../webgl-engine/lib/Intersector.js";import{fromValues as L}from"../webgl-engine/lib/LocalOriginFactory.js";import{SortedRenderGeometryRenderer as R}from"../webgl-engine/lib/SortedRenderGeometryRenderer.js";import{applyTextureResizeModulo as z,ensureTextureSize as B}from"../webgl-engine/lib/textureUtils.js";import{removeLoadedShaderModules as V}from"../webgl-engine/parts/renderUtils.js";import{TaskPriority as H,noBudget as U}from"../../support/Scheduler.js";import{Yield as W}from"../../support/Yield.js";const G=1.3,K=[[-.1,-2,3.9,2],[-.1,-3.9,3.9,.1],[-2,-3.9,2,.1],[-3.9,-3.9,.1,.1],[-3.9,-2,.1,2],[-3.9,-.1,.1,3.9],[-2,-.1,2,3.9],[-.1,-.1,3.9,3.9]];let q,J=class extends t{constructor(e){super(e),this._renderSR=null,this._overlaySREqualsRenderSR=!0,this._drapeSources=new Set,this._drapeTargets=new Set,this._placementDirty=!1,this._contentUpdated=!1,this._drawTexturesDirty=!1,this._drawTexturesAnimateDirty=!1,this._latestOriginId=0,this.groundView=e.view.groundView}initialize(){let{view:e}=this;this.renderer=new F({parent:this}),e.stage.renderer.plugins.add(this.renderer);let t=()=>this.requestRender();this._groundIntersector=new I(e.state.viewingMode),this._groundIntersector.options.backfacesTerrain=!0,this._groundIntersector.options.invisibleTerrain=!0,this._groundIntersector.options.hud=!1,this.addHandles([o(()=>this.renderer.hasHighlights,t),this.renderer.events.on(`has-water`,()=>e.stage?.renderer.updateHasFlags()),this.renderer.events.on(`content-changed`,t),o(()=>e.state.camera.pixelRatio,t),o(()=>e.state.alignPixelEnabled,t),this.renderer.events.on(`textures-disposed`,()=>this.groundView.requestRender(1)),o(()=>[e.pointsOfInterest?.renderPointOfView,e.pointsOfInterest?.centerOnSurfaceFrequent?.location],()=>this.setPlacementDirty()),o(()=>[e.state?.pixelRatio,e.state?.contentPixelRatio],()=>this.setPlacementDirty(),s),c(()=>e.groundAndIMSurface,e=>e.on(`elevation-change`,()=>this.setPlacementDirty())),e.on(`resize`,()=>this.setPlacementDirty()),e.resourceController.scheduler.registerTask(H.OVERLAY,this)]),e.stage.renderer.overlay=this}destroy(){this.view?.stage&&(this.view.stage.renderer.plugins.remove(this.renderer),this.view.stage.renderer.overlay=null,a(this.renderer)),q&&=(q.hide(),null),this.renderer=null}get spatialReference(){return this._spatialReference}set spatialReference(e){this._spatialReference=e,this.renderer.longitudeCyclical=null;let t=this.view.renderSpatialReference;e!=null&&t!=null?(this._renderSR=t,this._overlaySREqualsRenderSR=e.equals(this._renderSR),this._isSpherical&&(this.renderer.longitudeCyclical=O(e))):this.renderer.disposeOverlays()}get readyToRun(){return this._placementDirty&&(this._drapeSources.size>0||this.view.graphics.length>0||N.OVERLAY_DRAW_DEBUG_TEXTURE)&&!!this._spatialReference&&!(this.terrainSurface.enabled&&this.terrainSurface.freeze)&&this.groundView.ready}get _isSpherical(){return this.view.state.isGlobal}get mapUnitsToPlanarDistanceRatio(){return this._spatialReference!=null&&this._spatialReference.isGeographic&&this._isSpherical?b(this._spatialReference).metersPerDegree:1}getPlanarDistanceToGroundRatio(e){return this._spatialReference==null?1:P(this._spatialReference,this._isSpherical,e)}get _overlayStretch(){return G/this.view.resolutionScale}get longitudeCyclical(){return this.renderer.longitudeCyclical}get updating(){return this.readyToRun||!!this.renderer?.updating||this._contentUpdated}render(e){return this._contentUpdated=!1,this.renderer.time=e,this.renderer.processSyncDrapeSources(),this.renderer.precompileShaders(this.view.state)?this._drawOverlays():null}get hasOverlays(){return this.renderer.hasOverlays}registerDrapeSource(e,t){this._drapeSources.add(e),this.renderer.ensureOverlays(this._drapeTargets,this._drapeSources),this.renderer.registerDrapeSource(e,t),this._updateDrapeSourceExtent(e),this._setContentDirty(),this.notifyChange(`readyToRun`)}registerGeometryDrapeSource(e){let t=new R({stage:this.view.stage,drapeSource:e,rendererContext:this.renderer});return this.registerDrapeSource(e,t),t}_updateDrapeSourceExtent(e){this.renderer.overlays.length===2&&e.setDrapingExtent!=null&&this._spatialReference!=null&&e.setDrapingExtent(this.renderer.overlays,this._spatialReference)}unregisterDrapeSource(e){this._drapeSources.has(e)&&(this._drapeSources.delete(e),this.renderer.removeDrapeSourceRenderer(e),this.renderer.ensureDrapeSources(this._drapeSources),this._setContentDirty(),this.notifyChange(`readyToRun`))}registerDrapeTarget(e){this._drapeTargets.add(e),this.renderer.ensureOverlays(this._drapeTargets,this._drapeSources)}unregisterDrapeTarget(e){this._drapeTargets.delete(e),this.renderer.ensureDrapeTargets(this._drapeTargets)}_setContentDirty(){this.setPlacementDirty(),this.requestRender()}setPlacementDirty(){this._placementDirty=!0}runTask(e){return this.updateOverlays(e,this.view.state.contentCamera,1)}updateOverlays(e,t,n){if(!this._spatialReference||!this.view.pointsOfInterest?.centerOnSurfaceFrequent)return W;let r=this._computeOverlayHeight(t);this._computeOverlayExtents(t,r,Z),this.renderer.ensureOverlays(this._drapeTargets,this._drapeSources),this.renderer.overlayStretch=Z.stretch;let i=this._updateOverlay(0,Z.inner,r,1*Z.pixelRatioAdjustment,Z.mapUnitsPerPixel),a=C(Z.inner)/C(Z.outer),o=this._updateOverlay(1,Z.outer,r,a*Z.pixelRatioAdjustment,Z.mapUnitsPerPixel);(i===1||o===1)&&(this._drapeSources.forEach(e=>this._updateDrapeSourceExtent(e)),this.groundView.updateOverlayParameters(),this.groundView.requestRender(n)),(i!==0||o!==0)&&this.requestRender(),this._placementDirty=!1,e.madeProgress()}_computeOverlayHeight(e){let t=this.view.state.contentPixelRatio*this.view.resolutionScale,n=e.fullWidth/e.pixelRatio*t,r=e.fullHeight/e.pixelRatio*t,i=Math.ceil(Math.max(n,r)*1.5),{maxPreferredTexturePixels:a,maxTextureSize:o}=this.view.stage.renderView.renderingContext.parameters,s=o*.5;return z(B({width:i,height:i},{maxPreferredTexturePixels:a*2,maxTextureSize:s})[1],s)}get overlays(){return this.renderer.overlays}_updateOverlay(e,t,n,r,i){if(this.renderer.overlays.length===0)return 0;let a=this.renderer.overlays[e],o=a.mapUnitsPerPixel;if(a.mapUnitsPerPixel=i,a.pixelRatio=r,oe(t,a.extent)&&n===a.resolution)return o===i?0:2;a.setExtent(t),a.resolution=n;let s=w(a.extent);return a.renderLocalOrigin=L(s[0],s[1],0,`OV_${this._latestOriginId++}`),1}overlayPixelSizeInMapUnits(e,t){if(this.renderer.overlays.length===0)return t();let n=this.renderer.overlays[0],r=this.renderer.overlays[1],i=this._pointIsInExtent(e,n.extent)?n:r;return(i.extent[2]-i.extent[0])/i.resolution}reloadShaders(){V(),this.requestRender(),this.runTask(U)}requestRender(e=1){this.renderer.hasOverlays?(e===1?(this._contentUpdated=!0,this._drawTexturesDirty=!0):this._drawTexturesAnimateDirty=!0,this.view.stage.renderView.requestRender(e)):this.setPlacementDirty()}_intersectGroundFromView(e,t,n,r,i){let a=this.view.sceneIntersectionHelper.getCenterRayWithSubpixelOffset(e,le,t,n);if(a==null)return!1;let o=a.origin,s=f(X,a.origin,a.direction);this._groundIntersector.reset(o,s,e),this._groundIntersector.intersect([]),this.view.groundAndIMSurface.intersect(this._groundIntersector,null,o,s);let c=this._groundIntersector.results.min;return c.getIntersectionPoint(i)&&c.withinDistance(r)}_findHorizonBasedPointOfInterest(e,t){let i=.5,a=.55,o=this.view.renderCoordsHelper.getAltitude(e.eye),s=this.view.pointsOfInterest.centerOnSurfaceFrequent,c=1e-5,l=r(s.estimatedSurfaceAltitude,e.aboveGround?-1/0:o+c,e.aboveGround?o-c:1/0),u=e.aboveGround;if(this.view.viewingMode===`global`){let t=X;$.radius=b(this.view.spatialReference).radius+l,$.closestPointOnSilhouette(A(e.eye,e.viewForward),t),p(t,t,e.eye);let r=n.normalize(M(e.viewForward,t,e.viewRight))/e.fovY+.5,o=r<=0||r>=1?.5:a;i=u?o*r:r+o*(1-r)}else{let t=Math.PI*.5-Math.acos(-e.viewForward[2]),n=v(0,Math.tan(t),1,0),o=_(n,n,e.projectionMatrix)[1],s=r(.5+.5*o,0,1);i=s===1||s===0?.5:u?s*a:1-(1-s)*a}return this._intersectGroundFromView(e,.5,i,s.distance,t)}_computeOverlayExtents(e,t,n){let{view:r}=this,a=r.pointsOfInterest.centerOnSurfaceFrequent.renderLocation,o=g();this._findHorizonBasedPointOfInterest(e,o)||m(o,a);let s=this._renderSR;N.OVERLAY_SHOW_CENTER?(q??=new ae(r.graphics,`red`),q.show(o,s)):q?.hide();let c=Math.max(.1,h(e.eye,o)),l=ie(r.renderCoordsHelper,a,e.eye),u=this._spatialReference;this._overlaySREqualsRenderSR||x(o,s,o,u);let f=this._isSpherical,p=this.groundView.groundExtent,_=!f&&u?.isGeographic,v=_&&u?1/b(u).metersPerDegree:1,y=r.state.contentPixelRatio,S=e.computeScreenPixelSizeAtDistance(c)/y*v;n.mapUnitsPerPixel=_?S:S/this.mapUnitsToPlanarDistanceRatio,n.stretch=this._overlayStretch;let w=t*S/2*n.stretch,D=!1,O=_?90:1/0;f&&p&&u&&(u.isWebMercator?(w/=Math.cos(re(o[1])),O=p[3]):(D=!0,w/=b(u).metersPerDegree,O=90),w>=O&&(w=O,o[1]=0,u.isWebMercator&&(o[0]=0)));let k=1;D&&(k=1/Math.max(.2,Math.cos(Math.abs(i(o[1])))),w*k>180&&(k=180/w),n.mapUnitsPerPixel*=k);let A=Math.log(2)/12;w=Math.exp(Math.round(Math.log(w)/A)*A);let j=w*k,M=.5*t/(32*j),P=.5*t/(32*w);o[0]=Math.round(o[0]*M)/M,o[1]=Math.round(o[1]*P)/P;let F=n.inner;F[0]=o[0]-j,F[1]=o[1]-w,F[2]=o[0]+j,F[3]=o[1]+w,f&&this._shiftExtentToFitBounds(F,1/0,O);let I=n.outer;if(p&&6*j>C(p))T(I,p);else if(Math.PI/2-Math.abs(l-Math.PI/2)<=.25*Math.PI)I[0]=F[0]-j,I[1]=F[1]-w,I[2]=F[2]+j,I[3]=F[3]+w;else{x(e.eye,s,X,u),d(Y,o,X);let t=-Math.atan2(Y[1],Y[0])+Math.PI*.125;t<0&&(t+=2*Math.PI);let n=Math.floor(t/(Math.PI*.25));ee(Y,K[n],w*2),Y[0]*=k,Y[2]*=k,te(I,F,Y)}if(f&&this.longitudeCyclical)I[0]=this.longitudeCyclical.clamp(I[0]),I[2]=this.longitudeCyclical.clamp(I[2]),I[1]=Math.max(I[1],-O),I[3]=Math.min(I[3],O);else{let e=E(F,p,Q),t=E(I,p,ce);ne(e,t)&&(I[2]=I[0],I[3]=I[1])}let L=Math.abs(F[2]-F[0])/t;n.mapUnitsPerPixel=Math.max(n.mapUnitsPerPixel,L),n.pixelRatioAdjustment=n.mapUnitsPerPixel/L}_drawOverlays(e=this.view.state){if(!this._drawTexturesDirty&&!this._drawTexturesAnimateDirty)return this.renderer;let t=!this._drawTexturesDirty&&this._drawTexturesAnimateDirty?0:1;this._drawTexturesDirty=this._drawTexturesAnimateDirty=!1;let n=this.renderer.computeValidity();return this.renderer.releaseRenderTargets(t),this.renderer.drawOverlays(e,t),n!==this.renderer.computeValidity()&&(this.groundView.updateOverlayParameters(),this.groundView.requestRender(1)),this.groundView.requestRender(t),t===1&&this.terrainSurface.requestUpdate(),this.renderer}_pointIsInExtent(e,t){if(this.longitudeCyclical)return this.longitudeCyclical.contains(t[0],t[2],e.x)&&e.y>=t[1]&&e.y<=t[3];let n=e.x,r=e.y;return n>t[0]&&n<t[2]&&r>t[1]&&r<t[3]}_shiftExtentToFitBounds(e,t,n){let r=0,i=0;e[0]<-t?r=e[0]+t:e[2]>t&&(r=t-e[2]),e[1]<-n?i=e[1]+n:e[3]>n&&(i=n-e[3]),D(e,r,i)}get test(){}};e([l()],J.prototype,`_spatialReference`,void 0),e([l({readOnly:!0})],J.prototype,`readyToRun`,null),e([l()],J.prototype,`_placementDirty`,void 0),e([l()],J.prototype,`_contentUpdated`,void 0),e([l()],J.prototype,`_isSpherical`,null),e([l()],J.prototype,`mapUnitsToPlanarDistanceRatio`,null),e([l()],J.prototype,`renderer`,void 0),e([l({constructOnly:!0})],J.prototype,`view`,void 0),e([l({constructOnly:!0})],J.prototype,`groundView`,void 0),e([l({constructOnly:!0})],J.prototype,`terrainSurface`,void 0),e([l()],J.prototype,`updating`,null),J=e([u(`esri.views.3d.terrain.OverlayManager`)],J);function oe(e,t){let n=N.ENABLE_OPTIMIZATIONS?1e-5*Math.max(e[2]-e[0],e[3]-e[1],t[2]-t[0],t[3]-t[1]):0;return Math.abs(t[0]-e[0])<=n&&Math.abs(t[1]-e[1])<=n&&Math.abs(t[2]-e[2])<=n&&Math.abs(t[3]-e[3])<=n}class se{constructor(){this.inner=S(),this.outer=S(),this.mapUnitsPerPixel=0,this.pixelRatioAdjustment=1,this.stretch=G}}const Y=y(),X=g(),Z=new se,Q=S(),ce=S(),le=k(),$=new j;export{J as OverlayManager};
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/6.0/LICENSE.txt */
2
- import{__decorate as e}from"tslib";import{unique as t}from"../../../core/arrayUtils.js";import{EventEmitter as n}from"../../../core/Evented.js";import"../../../core/has.js";import{someMap as r,everyMap as i}from"../../../core/MapUtils.js";import{disposeMaybe as a}from"../../../core/maybe.js";import o from"../../../core/PooledArray.js";import{watch as s,syncAndInitial as c,on as l,initial as u}from"../../../core/reactiveUtils.js";import{someSet as d}from"../../../core/SetUtils.js";import{property as f,subclass as p}from"../../../core/accessorSupport/decorators.js";import{ortho as m,fromTranslation as h}from"../../../core/libs/gl-matrix-2/math/mat4.js";import{set as g}from"../../../core/libs/gl-matrix-2/math/vec3.js";import{ones as _}from"../../../core/libs/gl-matrix-2/factories/vec3f64.js";import{debugFlags as v}from"../support/debugFlags.js";import{Overlay as y}from"./Overlay.js";import{OverlayRenderTargets as b}from"./OverlayRenderTargets.js";import x from"../webgl/RenderCamera.js";import{SyncRenderPlugin as S}from"../webgl-engine/effects/RenderPlugin.js";import{trackHighlightOptions as C,renderHighlightBuffer as w}from"../webgl-engine/effects/highlight/Highlight.js";import{GLMaterialRepository as T}from"../webgl-engine/lib/GLMaterialRepository.js";import{GridLocalOriginFactory as E}from"../webgl-engine/lib/GridLocalOriginFactory.js";import{RenderContext as D,defaultRenderOccludedMask as O}from"../webgl-engine/lib/RenderContext.js";import{ShadowMap as k}from"../webgl-engine/lib/ShadowMap.js";import{T as A}from"../../../chunks/Texture.glsl.js";import{TextureTechnique as j}from"../webgl-engine/lib/TextureTechnique.js";import{TextureTechniqueConfiguration as M}from"../webgl-engine/lib/TextureTechniqueConfiguration.js";import{AmbientLight as N}from"../webgl-engine/lighting/Lightsources.js";import{O as P}from"../../../chunks/OverlayCompositing.glsl.js";import{OverlayCompositingTechnique as F}from"../webgl-engine/shaders/OverlayCompositingTechnique.js";import{TaskPriority as I}from"../../support/Scheduler.js";import L from"../../webgl/Texture.js";import{TextureDescriptor as R}from"../../webgl/TextureDescriptor.js";let z=class extends S{constructor(e){super(e),this._overlays=null,this._renderTargets=null,this._overlayParameters=new P,this.hasHighlights=!1,this.renderOccludedFlags=1,this._hasWater=!1,this._renderers=new Map,this._sortedDrapeSourceRenderersDirty=!1,this._sortedRenderers=new o,this._passParameters=new A,this._screenToMapUnitsRatio=1,this._localOriginFactory=null,this.unloadedMemory=0,this.ignoresMemoryFactor=!1,this._camera=new x,this.events=new n,this.longitudeCyclical=null,this.produces=new Map([[18,e=>e!==10||this.hasHighlights],[19,()=>this._hasWater]]),this._hasTargetWithoutRasterImage=!1,this._hasDrapedFeatureSource=!1,this._hasDrapedRasterSource=!1,this._hasDrapedFlowSource=!1;let{state:t,stage:r}=e.parent.view,i=r.renderer.fboCache,a=r.renderView.renderingContext,s=r.renderView.techniques;this._renderContext=new D(a,new k(i,t.viewingMode),s)}initialize(){let e=this._view,t=e.stage.renderView.waterTextures;this.addHandles([s(()=>t.updating,()=>this.events.emit(`content-changed`),c),s(()=>this._spatialReference,e=>this._localOriginFactory=new E(e),c),l(()=>e.allLayerViews,`after-changes`,()=>this._sortedDrapeSourceRenderersDirty=!0),s(()=>C(e.state.highlights),()=>this._sortedDrapeSourceRenderersDirty=!0,u),s(()=>e.state.highlights,e=>{this._bindParameters.highlights=e},u),e.resourceController.scheduler.registerTask(I.OVERLAY_RENDERER,this)]);let n=this._camera;n.near=1,n.far=1e4,n.relativeElevation=null,this._bindParameters.slot=18,this._bindParameters.camera=n,this._bindParameters.updateLighting(new N(_()),0,0,0)}destroy(){this._renderers.forEach(e=>e.destroy()),this._renderers.clear(),this._passParameters.texture=a(this._passParameters.texture),this.disposeOverlays(),this._renderContext.destroy(),this._sortedRenderers.prune()}get _bindParameters(){return this._renderContext.bind}get _rctx(){return this._stage.renderView.renderingContext}get _view(){return this.parent.view}get _stage(){return this.parent.view.stage}get _spatialReference(){return this.parent.spatialReference}get _techniques(){return this._stage.renderView.techniques}get rctx(){return this._rctx}get materials(){return this._pluginContext.materials}get screenToMapUnitsRatio(){return this._screenToMapUnitsRatio}get mapUnitsToGroundRatio(){return this.parent.mapUnitsToPlanarDistanceRatio*this._bindParameters.planarDistanceToGroundRatio}get localOriginFactory(){return this._localOriginFactory}set time(e){this._renderContext.time=e}get pluginContext(){return this._pluginContext}initializeRenderContext(e){let t=new T(this._view.stage.renderView.textures,this._techniques,()=>{this._onMaterialOrContentChanged(),this.events.emit(`content-changed`),this.notifyChange(`updating`),this.notifyChange(`isEmpty`)},()=>this.events.emit(`content-changed`));this._pluginContext={...e,materials:t},this._techniques.precompile(F)}uninitializeRenderContext(){}acquireTechniques(){return[]}render(){}get updating(){return this._sortedDrapeSourceRenderersDirty||r(this._renderers,e=>e.updating||e.canCompact)}get hasOverlays(){return this._overlays!=null&&this._renderTargets!=null}getMaterialRenderer(e){for(let t of this._renderers.values()){let n=t.getMaterialRenderer(e);if(n)return n}return null}get layers(){return this._sortedDrapeSourceRenderersDirty&&this._updateSortedDrapeSourceRenderers(),t(this._sortedRenderers.map(e=>e.drapeSource.layer).filter(e=>!!e))}registerDrapeSource(e,t){this._renderers.get(e)?.destroy(),this._renderers.set(e,t),this._sortedDrapeSourceRenderersDirty=!0,`fullOpacity`in e&&this.addHandles(s(()=>e.fullOpacity,()=>this.events.emit(`content-changed`)),e)}removeDrapeSourceRenderer(e){if(e==null)return;let t=this._renderers.get(e);t!=null&&(this._sortedDrapeSourceRenderersDirty=!0,this._renderers.delete(e),this.removeHandles(e),t.destroy())}computeValidity(){return this._renderTargets?.computeValidity()??0}releaseRenderTargets(e){this._renderTargets?.dispose(e)}get overlays(){return this._overlays??[]}ensureDrapeTargets(e){this._hasTargetWithoutRasterImage=this._overlays?d(e,e=>e.drapeTargetType===1):!1}ensureDrapeSources(e){this._overlays?(this._hasDrapedFeatureSource=d(e,e=>e.drapeSourceType===1),this._hasDrapedRasterSource=d(e,e=>e.drapeSourceType===0),this._hasDrapedFlowSource=d(e,e=>e.drapeSourceType===2)):this._hasDrapedFeatureSource=this._hasDrapedRasterSource=this._hasDrapedFlowSource=!1}get _needsColorWithoutRasterImage(){return this._hasDrapedRasterSource&&this._hasDrapedFeatureSource&&this._hasTargetWithoutRasterImage}ensureOverlays(e,t,n=this._bindParameters.overlayStretch){this._overlays??=(this._renderTargets=new b(this._stage.renderer.fboCache),[new y,new y]),this.ensureDrapeTargets(e),this.ensureDrapeSources(t),this._bindParameters.overlayStretch=n}disposeOverlays(){this._overlays=null,this._renderTargets?.dispose(1),this._renderTargets=null,this.events.emit(`textures-disposed`)}_useOverlayColorInsteadOfColorNoRasterImage(e){return e===1&&!this._needsColorWithoutRasterImage&&(this._hasDrapedFeatureSource||this._hasDrapedRasterSource)}getTexture(e){let t=this._useOverlayColorInsteadOfColorNoRasterImage(e);return this._renderTargets?.getTexture(t?0:e)}get readyToRun(){return this.updating}runTask(e){this._processDrapeSources(()=>!0,e)}_onMaterialOrContentChanged(){this.renderOccludedFlags=r(this._renderers,e=>e.hasOccluders)?H:1}_processDrapeSources(e,t){let n=!1;for(let[r,i]of this._renderers){if(t?.done)break;(r.destroyed||e(r))&&i.commitChanges()&&(n=!0,t?.madeProgress())}this._sortedDrapeSourceRenderersDirty&&(this._sortedDrapeSourceRenderersDirty=!1,n=!0,this._updateSortedDrapeSourceRenderers(),t?.madeProgress()),t&&this.compact(t),n&&(this._overlays!=null&&this._renderers.size===0&&this.disposeOverlays(),this.notifyChange(`updating`),this.notifyChange(`isEmpty`),this._onMaterialOrContentChanged(),this.hasHighlights=r(this._renderers,e=>e.hasHighlights),this.events.emit(`content-changed`))}compact(e){let t=!1;for(let n of this._renderers.values()){if(e.done)break;t=n.compact(e)||t}return t&&this.notifyChange(`updating`),t}hasHighlight(e){return r(this._renderers,t=>t.hasHighlight(e))}processSyncDrapeSources(){this._processDrapeSources(e=>e.updatePolicy===1)}get isEmpty(){return!v.OVERLAY_DRAW_DEBUG_TEXTURE&&i(this._renderers,e=>e.isEmpty)}get hasWater(){let e=r(this._renderers,({hasWater:e})=>e);return e!==this._hasWater&&(this._hasWater=e,this.events.emit(`has-water`)),this._hasWater}renders(e){if(v.OVERLAY_DRAW_DEBUG_TEXTURE&&e!==4&&e!==2)return!0;if(!this._overlays)return!1;let t=this._overlays[0];for(let e of this._overlays)e.setupGeometryViews(this.longitudeCyclical);if(!t.hasSomeSizedView())return!1;let n=this._setOutput(this._renderTargets?.targets.find(t=>t.content===e)?.output??0);++this._techniques.precompiling;let r=this._sortedRenderers.some(({renderer:e})=>e.precompile(this._renderContext));return--this._techniques.precompiling,this._setOutput(n),r}_setOutput(e){let t=this._bindParameters.output;return this._bindParameters.output=e,this._bindParameters.slot=e===4?19:18,t}get mode(){return this.isEmpty?0:this.hasWater&&this.renders(3)?2:+!!this._renderTargets?.getTexture(0)}updateAnimation(e){let t=!1;return this._renderers.forEach(n=>t=n.updateAnimation(e)||t),t&&this.parent.requestRender(0),t}updateDrapeSourceOrder(){this._sortedDrapeSourceRenderersDirty=!0}precompileShaders(e){if(!this._overlays||!this._renderTargets)return!1;let t=this._bindParameters;t.alignPixelEnabled=e.alignPixelEnabled,++this._techniques.precompiling;for(let e of this._renderTargets.targets){if(e.content===1&&!this._needsColorWithoutRasterImage)continue;let{output:n}=e;this._setOutput(n),n===10&&(t.highlightMixTexture=t.highlights.length>1?this._rctx.emptyTexture:null);let r=this._renderContext.renderOccludedMask;e.content===4&&(this._renderContext.renderOccludedMask=H),this._sortedRenderers.forAll(({drapeSource:t,renderer:n})=>{(e.content!==1||t.drapeSourceType!==0)&&(e.content===4&&n.hasOnlyOccluders||n.precompile(this._renderContext))}),this._renderContext.renderOccludedMask=r,t.highlightMixTexture=null}return--this._techniques.precompiling,!0}drawOverlays(e,t){if(!this._overlays||!this._renderTargets)return;for(let e of this._overlays)e.setupGeometryViews(this.longitudeCyclical);this._bindParameters.alignPixelEnabled=e.alignPixelEnabled;let n=this.allSourcesOccluders;for(let e of this._renderTargets.targets){if(!(e.content===0&&this._hasDrapedFlowSource)&&!e.handleRenderRequest(t)||e.content===1&&!this._needsColorWithoutRasterImage||e.content===4&&n)continue;let r=this._drawTarget(0,e),i=this._drawTarget(1,e);(r||i)&&e.fbo.generateMipMap()}}_drawTarget(e,t){let n=this._overlays[e],r=n.canvasGeometries;if(r.numViews===0)return!1;let i=this._view.state.contentPixelRatio;this._screenToMapUnitsRatio=i*n.mapUnitsPerPixel/this._bindParameters.overlayStretch;let{output:a,content:o}=t;if(this.isEmpty||a===4&&!this.hasWater||!n.hasSomeSizedView())return!1;let{_rctx:s,_camera:c,_renderContext:l,_bindParameters:u}=this;if(c.pixelRatio=n.pixelRatio*i,this._setOutput(a),u.screenToMapUnitsRatio=this._screenToMapUnitsRatio,u.screenToPlanarDistanceRatio=this._screenToMapUnitsRatio*this.parent.mapUnitsToPlanarDistanceRatio,o===4&&(l.renderOccludedMask=H),!this.renders(o))return l.renderOccludedMask=O,!1;let{resolution:d}=n,f=e===0,p=f?0:d;if(s.setViewport(p,0,d,d),this._bindTargetFBO(t),f&&(a===10?s.gl.clearBufferuiv(s.gl.COLOR,0,[0,0,0,0]):(s.setClearColor(0,0,0,0),s.clear(16384))),v.OVERLAY_DRAW_DEBUG_TEXTURE&&o!==4&&o!==2){this._techniques.precompile(j,U);let t=this._techniques.get(j,U);for(let i=0;i<r.numViews;i++)this._setViewParameters(r.extents[i],n),this._ensureDebugPatternResources(n.resolution,V[e]),s.bindTechnique(t,u,this._passParameters),s.screen.draw()}if(a===10){let{fboCache:n}=this._stage.renderer,r=this._resolution;this._bindTargetFBO(t),w(s,n,r,r,u,()=>this._renderAllGeometry(e,t),p)}else this._renderAllGeometry(e,t);return s.bindFramebuffer(null),l.renderOccludedMask=O,!0}get allSourcesOccluders(){return i(this._renderers,e=>e.hasOnlyOccluders)}_renderAllGeometry(e,t){let n=this._overlays[e],r=n.canvasGeometries;this._sortedRenderers.forAll(({drapeSource:i,renderer:a})=>{if(t.content===1&&i.drapeSourceType===0)return;let{fullOpacity:o}=i,s=o!=null&&o<1&&t.output===0&&this._bindTemporaryFBO();for(let e=0;e<r.numViews;e++)this._setViewParameters(r.extents[e],n),a.render(this._renderContext);if(s){this._bindTargetFBO(t),this._overlayParameters.texture=s.getTexture(),this._overlayParameters.opacity=o,this._overlayParameters.overlayIndex=e;let n=this._techniques.get(F);this._rctx.bindTechnique(n,this._bindParameters,this._overlayParameters),this._rctx.screen.draw(),s.release()}})}_bindTargetFBO(e){let t=this._resolution,n=2*t;e.fbo.ensureFramebuffer(n,t),e.fbo.bind(this._rctx)}_bindTemporaryFBO(){let e=this._resolution,t=2*e,n=this._stage.renderer.fboCache,r=n.acquire(t,e,`overlay tmp`);return n.rctx.bindFramebuffer(r.fbo),n.rctx.clear(16384),r}get _resolution(){return this._overlays?.[0].resolution??0}notifyContentChanged(){this.events.emit(`content-changed`)}intersectRay(e,t,n,r){this._sortedDrapeSourceRenderersDirty&&this._updateSortedDrapeSourceRenderers();let i=0;for(let{renderer:a}of this._sortedRenderers)i=a.intersectRay?.(e,t,n,r,i)??i}*intersectScreenPolygon(e,t,n){this._sortedDrapeSourceRenderersDirty&&this._updateSortedDrapeSourceRenderers();let r=0;for(let{renderer:i}of this._sortedRenderers)r=yield*i.intersectScreenPolygon(e,t,n,r)}_updateSortedDrapeSourceRenderers(){if(this._sortedRenderers.clear(),this._renderers.size===0)return;let e=this._view.map.allLayers.map(e=>e.uid),t=e.length;this._renderers.forEach((n,r)=>{let i=e.indexOf(r.layer?.uid),a=i>=0,o=r.renderGroup??+!a,s=r.drapeSourcePriorityOffset??0,c=t*o+(a?i:0)+s;this._sortedRenderers.push(new B(r,n,c))}),this._sortedRenderers.sort((e,t)=>e.index-t.index)}_setViewParameters(e,t){let n=this._camera;n.viewport=[0,0,t.resolution,t.resolution],this._bindParameters.planarDistanceToGroundRatio=this.parent.getPlanarDistanceToGroundRatio((e[1]+e[3])*.5),m(n.projectionMatrix,0,e[2]-e[0],0,e[3]-e[1],n.near,n.far),h(n.viewMatrix,[-e[0],-e[1],0])}_ensureDebugPatternResources(e,t){if(g(this._passParameters.color,t[0],t[1],t[2]),this._passParameters.texture)return;let n=new Uint8Array(e*e*4),r=0;for(let t=0;t<e;t++)for(let i=0;i<e;i++){let a=Math.floor(i/10),o=Math.floor(t/10);a<2||o<2||a*10>e-20||o*10>e-20?(n[r++]=255,n[r++]=255,n[r++]=255,n[r++]=255):(n[r++]=255,n[r++]=255,n[r++]=255,a&1&&o&1?n[r++]=i&1^t&1?0:255:n[r++]=a&1^o&1?0:128)}let i=new R(e);i.samplingMode=9728,this._passParameters.texture=new L(this._rctx,i,n)}get test(){}};e([f()],z.prototype,`hasHighlights`,void 0),e([f()],z.prototype,`renderOccludedFlags`,void 0),e([f()],z.prototype,`_sortedDrapeSourceRenderersDirty`,void 0),e([f({constructOnly:!0})],z.prototype,`parent`,void 0),e([f({readOnly:!0})],z.prototype,`_techniques`,null),e([f({type:Boolean,readOnly:!0})],z.prototype,`updating`,null),e([f()],z.prototype,`isEmpty`,null),z=e([p(`esri.views.3d.terrain.OverlayRenderer`)],z);class B{constructor(e,t,n){this.drapeSource=e,this.renderer=t,this.index=n}}const V=[[1,.5,.5],[.5,.5,1]],H=4,U=new M;U.hasAlpha=!0;export{z as OverlayRenderer,H as overlayRenderOccludedFlag};
2
+ import{__decorate as e}from"tslib";import{unique as t}from"../../../core/arrayUtils.js";import{EventEmitter as n}from"../../../core/Evented.js";import"../../../core/has.js";import{someMap as r,everyMap as i}from"../../../core/MapUtils.js";import{disposeMaybe as a}from"../../../core/maybe.js";import o from"../../../core/PooledArray.js";import{watch as s,syncAndInitial as c,on as l,initial as u}from"../../../core/reactiveUtils.js";import{someSet as d}from"../../../core/SetUtils.js";import{property as f,subclass as p}from"../../../core/accessorSupport/decorators.js";import{ortho as m,fromTranslation as h}from"../../../core/libs/gl-matrix-2/math/mat4.js";import{set as g}from"../../../core/libs/gl-matrix-2/math/vec3.js";import{ones as _}from"../../../core/libs/gl-matrix-2/factories/vec3f64.js";import{debugFlags as v}from"../support/debugFlags.js";import{Overlay as y}from"./Overlay.js";import{OverlayRenderTargets as b}from"./OverlayRenderTargets.js";import x from"../webgl/RenderCamera.js";import{SyncRenderPlugin as S}from"../webgl-engine/effects/RenderPlugin.js";import{trackHighlightOptions as C,renderHighlightBuffer as w}from"../webgl-engine/effects/highlight/Highlight.js";import{GLMaterialRepository as T}from"../webgl-engine/lib/GLMaterialRepository.js";import{GridLocalOriginFactory as E}from"../webgl-engine/lib/GridLocalOriginFactory.js";import{RenderContext as D,defaultRenderOccludedMask as O}from"../webgl-engine/lib/RenderContext.js";import{ShadowMap as k}from"../webgl-engine/lib/ShadowMap.js";import{T as A}from"../../../chunks/Texture.glsl.js";import{TextureTechnique as j}from"../webgl-engine/lib/TextureTechnique.js";import{TextureTechniqueConfiguration as M}from"../webgl-engine/lib/TextureTechniqueConfiguration.js";import{AmbientLight as N}from"../webgl-engine/lighting/Lightsources.js";import{O as P}from"../../../chunks/OverlayCompositing.glsl.js";import{OverlayCompositingTechnique as F}from"../webgl-engine/shaders/OverlayCompositingTechnique.js";import{TaskPriority as I}from"../../support/Scheduler.js";import L from"../../webgl/Texture.js";import{TextureDescriptor as R}from"../../webgl/TextureDescriptor.js";let z=class extends S{constructor(e){super(e),this._overlays=null,this._renderTargets=null,this._overlayParameters=new P,this.hasHighlights=!1,this.renderOccludedFlags=1,this._hasWater=!1,this._renderers=new Map,this._sortedDrapeSourceRenderersDirty=!1,this._sortedRenderers=new o,this._passParameters=new A,this._screenToMapUnitsRatio=1,this._localOriginFactory=null,this.unloadedMemory=0,this.ignoresMemoryFactor=!1,this._camera=new x,this.events=new n,this.longitudeCyclical=null,this.produces=new Map([[18,e=>e!==10||this.hasHighlights],[19,()=>this._hasWater]]),this._hasTargetWithoutRasterImage=!1,this._hasDrapedFeatureSource=!1,this._hasDrapedRasterSource=!1,this._hasDrapedFlowSource=!1;let{state:t,stage:r}=e.parent.view,i=r.renderer.fboCache,a=r.renderView.renderingContext,s=r.renderView.techniques;this._renderContext=new D(a,new k(i,t.viewingMode),s)}initialize(){let e=this._view,t=e.stage.renderView.waterTextures;this.addHandles([s(()=>t.updating,()=>this.events.emit(`content-changed`),c),s(()=>this._spatialReference,e=>this._localOriginFactory=new E(e),c),l(()=>e.allLayerViews,`after-changes`,()=>this._sortedDrapeSourceRenderersDirty=!0),s(()=>C(e.state.highlights),()=>this._sortedDrapeSourceRenderersDirty=!0,u),s(()=>e.state.highlights,e=>{this._bindParameters.highlights=e},u),e.resourceController.scheduler.registerTask(I.OVERLAY_RENDERER,this)]);let n=this._camera;n.near=1,n.far=1e4,n.relativeElevation=null,this._bindParameters.slot=18,this._bindParameters.camera=n,this._bindParameters.updateLighting(new N(_()),0,0,0)}destroy(){this._renderers.forEach(e=>e.destroy()),this._renderers.clear(),this._passParameters.texture=a(this._passParameters.texture),this.disposeOverlays(),this._renderContext.destroy(),this._sortedRenderers.prune()}get _bindParameters(){return this._renderContext.bind}get _rctx(){return this._stage.renderView.renderingContext}get _view(){return this.parent.view}get _stage(){return this.parent.view.stage}get _spatialReference(){return this.parent.spatialReference}get _techniques(){return this._stage.renderView.techniques}get rctx(){return this._rctx}get materials(){return this._pluginContext.materials}get screenToMapUnitsRatio(){return this._screenToMapUnitsRatio}get mapUnitsToGroundRatio(){return this.parent.mapUnitsToPlanarDistanceRatio*this._bindParameters.planarDistanceToGroundRatio}get localOriginFactory(){return this._localOriginFactory}set overlayStretch(e){this._bindParameters.overlayStretch=e}get overlayStretch(){return this._bindParameters.overlayStretch}set time(e){this._renderContext.time=e}get pluginContext(){return this._pluginContext}initializeRenderContext(e){let t=new T(this._view.stage.renderView.textures,this._techniques,()=>{this._onMaterialOrContentChanged(),this.events.emit(`content-changed`),this.notifyChange(`updating`),this.notifyChange(`isEmpty`)},()=>this.events.emit(`content-changed`));this._pluginContext={...e,materials:t},this._techniques.precompile(F)}uninitializeRenderContext(){}acquireTechniques(){return[]}render(){}get updating(){return this._sortedDrapeSourceRenderersDirty||r(this._renderers,e=>e.updating||e.canCompact)}get hasOverlays(){return this._overlays!=null&&this._renderTargets!=null}getMaterialRenderer(e){for(let t of this._renderers.values()){let n=t.getMaterialRenderer(e);if(n)return n}return null}get layers(){return this._sortedDrapeSourceRenderersDirty&&this._updateSortedDrapeSourceRenderers(),t(this._sortedRenderers.map(e=>e.drapeSource.layer).filter(e=>!!e))}registerDrapeSource(e,t){this._renderers.get(e)?.destroy(),this._renderers.set(e,t),this._sortedDrapeSourceRenderersDirty=!0,`fullOpacity`in e&&this.addHandles(s(()=>e.fullOpacity,()=>this.events.emit(`content-changed`)),e)}removeDrapeSourceRenderer(e){if(e==null)return;let t=this._renderers.get(e);t!=null&&(this._sortedDrapeSourceRenderersDirty=!0,this._renderers.delete(e),this.removeHandles(e),t.destroy())}computeValidity(){return this._renderTargets?.computeValidity()??0}releaseRenderTargets(e){this._renderTargets?.dispose(e)}get overlays(){return this._overlays??[]}ensureDrapeTargets(e){this._hasTargetWithoutRasterImage=this._overlays?d(e,e=>e.drapeTargetType===1):!1}ensureDrapeSources(e){this._overlays?(this._hasDrapedFeatureSource=d(e,e=>e.drapeSourceType===1),this._hasDrapedRasterSource=d(e,e=>e.drapeSourceType===0),this._hasDrapedFlowSource=d(e,e=>e.drapeSourceType===2)):this._hasDrapedFeatureSource=this._hasDrapedRasterSource=this._hasDrapedFlowSource=!1}get _needsColorWithoutRasterImage(){return this._hasDrapedRasterSource&&this._hasDrapedFeatureSource&&this._hasTargetWithoutRasterImage}ensureOverlays(e,t){this._overlays??=(this._renderTargets=new b(this._stage.renderer.fboCache),[new y,new y]),this.ensureDrapeTargets(e),this.ensureDrapeSources(t)}disposeOverlays(){this._overlays=null,this._renderTargets?.dispose(1),this._renderTargets=null,this.events.emit(`textures-disposed`)}_useOverlayColorInsteadOfColorNoRasterImage(e){return e===1&&!this._needsColorWithoutRasterImage&&(this._hasDrapedFeatureSource||this._hasDrapedRasterSource)}getTexture(e){let t=this._useOverlayColorInsteadOfColorNoRasterImage(e);return this._renderTargets?.getTexture(t?0:e)}get readyToRun(){return this.updating}runTask(e){this._processDrapeSources(()=>!0,e)}_onMaterialOrContentChanged(){this.renderOccludedFlags=r(this._renderers,e=>e.hasOccluders)?H:1}_processDrapeSources(e,t){let n=!1;for(let[r,i]of this._renderers){if(t?.done)break;(r.destroyed||e(r))&&i.commitChanges()&&(n=!0,t?.madeProgress())}this._sortedDrapeSourceRenderersDirty&&(this._sortedDrapeSourceRenderersDirty=!1,n=!0,this._updateSortedDrapeSourceRenderers(),t?.madeProgress()),t&&this.compact(t),n&&(this._overlays!=null&&this._renderers.size===0&&this.disposeOverlays(),this.notifyChange(`updating`),this.notifyChange(`isEmpty`),this._onMaterialOrContentChanged(),this.hasHighlights=r(this._renderers,e=>e.hasHighlights),this.events.emit(`content-changed`))}compact(e){let t=!1;for(let n of this._renderers.values()){if(e.done)break;t=n.compact(e)||t}return t&&this.notifyChange(`updating`),t}hasHighlight(e){return r(this._renderers,t=>t.hasHighlight(e))}processSyncDrapeSources(){this._processDrapeSources(e=>e.updatePolicy===1)}get isEmpty(){return!v.OVERLAY_DRAW_DEBUG_TEXTURE&&i(this._renderers,e=>e.isEmpty)}get hasWater(){let e=r(this._renderers,({hasWater:e})=>e);return e!==this._hasWater&&(this._hasWater=e,this.events.emit(`has-water`)),this._hasWater}renders(e){if(v.OVERLAY_DRAW_DEBUG_TEXTURE&&e!==4&&e!==2)return!0;if(!this._overlays)return!1;let t=this._overlays[0];for(let e of this._overlays)e.setupGeometryViews(this.longitudeCyclical);if(!t.hasSomeSizedView())return!1;let n=this._setOutput(this._renderTargets?.targets.find(t=>t.content===e)?.output??0);++this._techniques.precompiling;let r=this._sortedRenderers.some(({renderer:e})=>e.precompile(this._renderContext));return--this._techniques.precompiling,this._setOutput(n),r}_setOutput(e){let t=this._bindParameters.output;return this._bindParameters.output=e,this._bindParameters.slot=e===4?19:18,t}get mode(){return this.isEmpty?0:this.hasWater&&this.renders(3)?2:+!!this._renderTargets?.getTexture(0)}updateAnimation(e){let t=!1;return this._renderers.forEach(n=>t=n.updateAnimation(e)||t),t&&this.parent.requestRender(0),t}updateDrapeSourceOrder(){this._sortedDrapeSourceRenderersDirty=!0}precompileShaders(e){if(!this._overlays||!this._renderTargets)return!1;let t=this._bindParameters;t.alignPixelEnabled=e.alignPixelEnabled,++this._techniques.precompiling;for(let e of this._renderTargets.targets){if(e.content===1&&!this._needsColorWithoutRasterImage)continue;let{output:n}=e;this._setOutput(n),n===10&&(t.highlightMixTexture=t.highlights.length>1?this._rctx.emptyTexture:null);let r=this._renderContext.renderOccludedMask;e.content===4&&(this._renderContext.renderOccludedMask=H),this._sortedRenderers.forAll(({drapeSource:t,renderer:n})=>{(e.content!==1||t.drapeSourceType!==0)&&(e.content===4&&n.hasOnlyOccluders||n.precompile(this._renderContext))}),this._renderContext.renderOccludedMask=r,t.highlightMixTexture=null}return--this._techniques.precompiling,!0}drawOverlays(e,t){if(!this._overlays||!this._renderTargets)return;for(let e of this._overlays)e.setupGeometryViews(this.longitudeCyclical);this._bindParameters.alignPixelEnabled=e.alignPixelEnabled;let n=this.allSourcesOccluders;for(let e of this._renderTargets.targets){if(!(e.content===0&&this._hasDrapedFlowSource)&&!e.handleRenderRequest(t)||e.content===1&&!this._needsColorWithoutRasterImage||e.content===4&&n)continue;let r=this._drawTarget(0,e),i=this._drawTarget(1,e);(r||i)&&e.fbo.generateMipMap()}}_drawTarget(e,t){let n=this._overlays[e],r=n.canvasGeometries;if(r.numViews===0)return!1;let i=this._view.state.contentPixelRatio;this._screenToMapUnitsRatio=i*n.mapUnitsPerPixel/this._bindParameters.overlayStretch;let{output:a,content:o}=t;if(this.isEmpty||a===4&&!this.hasWater||!n.hasSomeSizedView())return!1;let{_rctx:s,_camera:c,_renderContext:l,_bindParameters:u}=this;if(c.pixelRatio=n.pixelRatio*i,this._setOutput(a),u.screenToMapUnitsRatio=this._screenToMapUnitsRatio,u.screenToPlanarDistanceRatio=this._screenToMapUnitsRatio*this.parent.mapUnitsToPlanarDistanceRatio,o===4&&(l.renderOccludedMask=H),!this.renders(o))return l.renderOccludedMask=O,!1;let{resolution:d}=n,f=e===0,p=f?0:d;if(s.setViewport(p,0,d,d),this._bindTargetFBO(t),f&&(a===10?s.gl.clearBufferuiv(s.gl.COLOR,0,[0,0,0,0]):(s.setClearColor(0,0,0,0),s.clear(16384))),v.OVERLAY_DRAW_DEBUG_TEXTURE&&o!==4&&o!==2){this._techniques.precompile(j,U);let t=this._techniques.get(j,U);for(let i=0;i<r.numViews;i++)this._setViewParameters(r.extents[i],n),this._ensureDebugPatternResources(n.resolution,V[e]),s.bindTechnique(t,u,this._passParameters),s.screen.draw()}if(a===10){let{fboCache:n}=this._stage.renderer,r=this._resolution;this._bindTargetFBO(t),w(s,n,r,r,u,()=>this._renderAllGeometry(e,t),p)}else this._renderAllGeometry(e,t);return s.bindFramebuffer(null),l.renderOccludedMask=O,!0}get allSourcesOccluders(){return i(this._renderers,e=>e.hasOnlyOccluders)}_renderAllGeometry(e,t){let n=this._overlays[e],r=n.canvasGeometries;this._sortedRenderers.forAll(({drapeSource:i,renderer:a})=>{if(t.content===1&&i.drapeSourceType===0)return;let{fullOpacity:o}=i,s=o!=null&&o<1&&t.output===0&&this._bindTemporaryFBO();for(let e=0;e<r.numViews;e++)this._setViewParameters(r.extents[e],n),a.render(this._renderContext);if(s){this._bindTargetFBO(t),this._overlayParameters.texture=s.getTexture(),this._overlayParameters.opacity=o,this._overlayParameters.overlayIndex=e;let n=this._techniques.get(F);this._rctx.bindTechnique(n,this._bindParameters,this._overlayParameters),this._rctx.screen.draw(),s.release()}})}_bindTargetFBO(e){let t=this._resolution,n=2*t;e.fbo.ensureFramebuffer(n,t),e.fbo.bind(this._rctx)}_bindTemporaryFBO(){let e=this._resolution,t=2*e,n=this._stage.renderer.fboCache,r=n.acquire(t,e,`overlay tmp`);return n.rctx.bindFramebuffer(r.fbo),n.rctx.clear(16384),r}get _resolution(){return this._overlays?.[0].resolution??0}notifyContentChanged(){this.events.emit(`content-changed`)}intersectRay(e,t,n,r){this._sortedDrapeSourceRenderersDirty&&this._updateSortedDrapeSourceRenderers();let i=0;for(let{renderer:a}of this._sortedRenderers)i=a.intersectRay?.(e,t,n,r,i)??i}*intersectScreenPolygon(e,t,n){this._sortedDrapeSourceRenderersDirty&&this._updateSortedDrapeSourceRenderers();let r=0;for(let{renderer:i}of this._sortedRenderers)r=yield*i.intersectScreenPolygon(e,t,n,r)}_updateSortedDrapeSourceRenderers(){if(this._sortedRenderers.clear(),this._renderers.size===0)return;let e=this._view.map.allLayers.map(e=>e.uid),t=e.length;this._renderers.forEach((n,r)=>{let i=e.indexOf(r.layer?.uid),a=i>=0,o=r.renderGroup??+!a,s=r.drapeSourcePriorityOffset??0,c=t*o+(a?i:0)+s;this._sortedRenderers.push(new B(r,n,c))}),this._sortedRenderers.sort((e,t)=>e.index-t.index)}_setViewParameters(e,t){let n=this._camera;n.viewport=[0,0,t.resolution,t.resolution],this._bindParameters.planarDistanceToGroundRatio=this.parent.getPlanarDistanceToGroundRatio((e[1]+e[3])*.5),m(n.projectionMatrix,0,e[2]-e[0],0,e[3]-e[1],n.near,n.far),h(n.viewMatrix,[-e[0],-e[1],0])}_ensureDebugPatternResources(e,t){if(g(this._passParameters.color,t[0],t[1],t[2]),this._passParameters.texture)return;let n=new Uint8Array(e*e*4),r=0;for(let t=0;t<e;t++)for(let i=0;i<e;i++){let a=Math.floor(i/10),o=Math.floor(t/10);a<2||o<2||a*10>e-20||o*10>e-20?(n[r++]=255,n[r++]=255,n[r++]=255,n[r++]=255):(n[r++]=255,n[r++]=255,n[r++]=255,a&1&&o&1?n[r++]=i&1^t&1?0:255:n[r++]=a&1^o&1?0:128)}let i=new R(e);i.samplingMode=9728,this._passParameters.texture=new L(this._rctx,i,n)}get test(){}};e([f()],z.prototype,`hasHighlights`,void 0),e([f()],z.prototype,`renderOccludedFlags`,void 0),e([f()],z.prototype,`_sortedDrapeSourceRenderersDirty`,void 0),e([f({constructOnly:!0})],z.prototype,`parent`,void 0),e([f({readOnly:!0})],z.prototype,`_techniques`,null),e([f({type:Boolean,readOnly:!0})],z.prototype,`updating`,null),e([f()],z.prototype,`isEmpty`,null),z=e([p(`esri.views.3d.terrain.OverlayRenderer`)],z);class B{constructor(e,t,n){this.drapeSource=e,this.renderer=t,this.index=n}}const V=[[1,.5,.5],[.5,.5,1]],H=4,U=new M;U.hasAlpha=!0;export{z as OverlayRenderer,H as overlayRenderOccludedFlag};
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/6.0/LICENSE.txt */
2
- import{__decorate as e}from"tslib";import has from"../../../core/has.js";import{disposeMaybe as t}from"../../../core/maybe.js";import{MemCachePool as n}from"../../../core/MemCachePool.js";import r from"../../../core/ObjectPool.js";import{watch as i,sync as a}from"../../../core/reactiveUtils.js";import{property as o,subclass as s}from"../../../core/accessorSupport/decorators.js";import{subtract as c,set as l,dot as u}from"../../../core/libs/gl-matrix-2/math/vec3.js";import{ZEROS as d,fromValues as f,create as p}from"../../../core/libs/gl-matrix-2/factories/vec3f64.js";import{fromValues as m,ZEROS as h}from"../../../core/libs/gl-matrix-2/factories/vec4f64.js";import{create as g,set as _}from"../../../geometry/support/aaBoundingBox.js";import{BufferViewVec3f as v}from"../../../geometry/support/buffer/BufferView.js";import{overlayRenderOccludedFlag as y}from"./OverlayRenderer.js";import{PatchRenderData as b}from"./PatchRenderData.js";import{TerrainAttributesCache as x}from"./TerrainAttributesCache.js";import{enableTerrainInternalChecks as S}from"./terrainUtils.js";import{TileRenderer as C}from"./TileRenderer.js";import{IteratorPreorder as w,fallsWithinLayerView as T,sortTiles as E,compareTiles as D}from"./tileUtils.js";import{getOverlayContentForOutputTerrain as O}from"../webgl-engine/core/shaderLibrary/terrain/Overlay.glsl.js";import{SyncRenderPlugin as k}from"../webgl-engine/effects/RenderPlugin.js";import{Vertices as A}from"../webgl-engine/lib/Attribute.js";import{IntersectorResultRay as j}from"../webgl-engine/lib/IntersectorResult.js";import{intersectAabbInvDirBefore as M,MeshIntersectionOptions as N,intersectTriangles as P}from"../webgl-engine/lib/RayIntersections.js";import{TriangleIntersectionData as F}from"../webgl-engine/lib/TriangleIntersectionData.js";import{terrainId as I,getVerticalOffsetTerrain as L}from"../webgl-engine/lib/verticalOffsetUtils.js";import{DrawParameters as R}from"../webgl-engine/materials/DrawParameters.js";import{hasShadowHighlights as z}from"../webgl-engine/shaders/ReceiveShadowsConfiguration.js";import{T as B}from"../../../chunks/Terrain.glsl.js";import{TerrainTechnique as V}from"../webgl-engine/shaders/TerrainTechnique.js";import{TerrainTechniqueConfiguration as H}from"../webgl-engine/shaders/TerrainTechniqueConfiguration.js";import{PrimitiveType as U}from"../../webgl/enums.js";const W=g();let G=class extends k{get visibleTiles(){return Array.from(this._visiblePatchesByOrigin.values()).flat()}get _isGlobal(){return this._stage.viewingMode===1}get _techniques(){return this._context.techniques}get _rctx(){return this._context.renderContext.rctx}get renderOccludedFlags(){return this._overlayRenderer.renderOccludedFlags}constructor(e,t,i,a,o){super({}),this._overlayRenderer=e,this._stage=t,this._allTiles=i,this._compressionTracker=a,this.type=7,this.isGround=!0,this._passParameters=new B,this._drawParameters=new R,this._renderDataPool=new r(()=>new b),this._visiblePatchesByOrigin=new Map,this._allPatchesByOrigin=new Map,this._patchesByOriginDirty=!0,this._patchSortingDirty=!0,this._tileIterator=new w,this._castShadows=!1,this._inViewshed=!1,this._cutFillEnabled=!1,this._tileRenderer=null,this._stencilEnabledLayerExtents=[],this._numTilesRendered=0,this._numTilesCulled=0,this._numOriginsRendered=0,this.produces=new Map([[1,()=>this._desiredSlot===1],[7,()=>this._desiredSlot===7],[9,()=>this._produces()&&this.renderOccludedFlags===y]]),this._tileSize=256,this._configuration=new H(t.viewingMode===1),this._tileTextureCache=new n((e,t)=>o.newCache(e,t),`TileTexture`),this.tileGeometryCache=new x(o)}normalizeCtorArgs(){return{}}initialize(){this._stage.addRenderPlugin(this),this.addHandles(i(()=>this._overlayRenderer.renderOccludedFlags,()=>this.setNeedsRender(),a))}destroy(){this._stage.removeRenderPlugin(this),this._tileTextureCache.destroy(),this.tileGeometryCache.destroy(),this._allTiles.prune(),this._tileRenderer=null}_produces(){return this.visible&&!!this._rootTiles&&!this.renderingDisabled}set renderingDisabled(e){this._set(`renderingDisabled`,!!e),this.setDirty()}set visible(e){this._set(`visible`,!!e),this.setDirty()}updateHeading(e){this._tileRenderer?.updateHeading(e)}set transparency(e){this._configuration.transparencyMode!==e&&(this._configuration.transparencyMode=e,this.setNeedsRender())}get transparency(){return this._configuration.transparencyMode}get renderPatchBorders(){return this._configuration.tileBorders}set renderPatchBorders(e){this._configuration.tileBorders!==e&&(this._configuration.tileBorders=e,this.setNeedsRender(),this.notifyChange(`renderPatchBorders`))}get layerViewUid(){return I}get slicePlaneEnabled(){return this._configuration.hasSlicePlane}set slicePlaneEnabled(e){this._configuration.hasSlicePlane!==e&&(this._configuration.hasSlicePlane=e,this.setNeedsRender())}set textureFadingEnabled(e){this._configuration.textureFadingEnabled!==e&&(this._configuration.textureFadingEnabled=e,this.setNeedsRender())}set pbrMode(e){this._configuration.pbrMode!==e&&(this._configuration.pbrMode=e,this.setNeedsRender())}setRootTiles(e){this._rootTiles=e,this.setDirty()}setStencilEnabledLayerExtents(e){this._stencilEnabledLayerExtents=e,this._setSortingDirty()}set tileSize(e){this._tileSize=e,this._tileRenderer!=null&&(this._tileRenderer.tileSize=e),this.setDirty()}get tileSize(){return this._tileSize}_ensureRenderData(e){e.renderData||(e.renderData=this._renderDataPool.acquire(),e.renderData.init(e,this._getLocalOriginOfTile(e)))}loadTile(e){this._ensureRenderData(e),this.updateTileGeometryState(e),!this.reuseTextureFromParent(e)&&this.updateTileTexture(e,32)}reuseTextureFromParent(e){let{parent:t}=e;if(!this._canReuseTextureFromParent(t,e))return!1;let n=m(e.lij[2]&1?.5:0,e.lij[1]&1?0:.5,.5,.5);return t.renderData?.reuseTexture(e.renderData,n)??!1}_canReuseTextureFromParent(e,t){if(!e)return!1;let{layerInfo:n,surface:r}=t;for(let i=0;i<n[1].length;i++){let n=r.layerViewByIndex(i,1);if(T(e,n)!==T(t,n))return!1}return!0}updateTileTexture(e,t){this._tileRenderer!=null&&(this._tileRenderer.updateTileTexture(e,t===32?0:2),this.setNeedsRender(),e.resetPendingUpdate(t))}updateTileGeometryState(e){for(let t of e.layerInfo[0])t.pendingUpdates&=-9;e.resetPendingUpdate(8);let t=e.renderData.updateGeometryState();return t&&this.setDirty(),t}updateGeometryIfNeeded(e){e.loaded&&e.renderData.updateGeometryIfNeeded(this._rctx)}unloadTile(e){let t=e.renderData;t&&(t.releaseGeometry(),this._renderDataPool.release(t),t.clear(),e.renderData=null,e.setMemoryDirty(),this.setDirty())}_getLocalOriginOfTile(e){let t=Math.max(0,Math.floor((e.level-3)/7)*7);if(this._isGlobal&&t===0)return d;for(;e.parent&&e.level>t;)e=e.parent;return e.centerAtSeaLevel}getStats(){return{numTilesRendered:this._numTilesRendered,numTilesCulled:this._numTilesCulled,numOriginsRendered:this._numOriginsRendered}}set wireframe(e){this._get(`wireframe`)!==e&&(this._set(`wireframe`,e),this.setNeedsRender())}setDirty(e=1){this._patchesByOriginDirty=!0,this._context.requestRender(e)}_setSortingDirty(e=1){this._patchSortingDirty=!0,this._context.requestRender(e)}setNeedsRender(e=1){this._context.requestRender(e)}initializeRenderContext(e){this._context=e,this._tileRenderer=new C(this._rctx,this._tileSize,this._techniques,this._tileTextureCache,this._compressionTracker),this.updateTileBackground()}uninitializeRenderContext(){this._tileRenderer=t(this._tileRenderer)}intersectRay(e,t,n,r){let i=this._rootTiles;if(!i||e.options.selectOpaqueTerrainOnly&&e.options.selectionMode&&this.transparency!==0)return;let a=K,o=q;c(a,r,n),l(o,1/a[0],1/a[1],1/a[2]);let s=e.results.min,d=e.results.max,f=e.results.ground,p=e.options.store===0,m=!!e.results.ground.target,h=L(e.verticalOffset),g=e.tolerance,y,b=p&&s.distance!=null?s.distance:1/0,x=e.options,S=x.normalRequired||!x.backfacesTerrain,C=new N(g,!1,S),w=i=>{let l=i.renderData;if(!l?.vao)return;let m=l.geometry;_(W,m.boundingBox);let w=l.localOrigin;if(h!=null&&(h.localOrigin=w,h.applyToAabb(W)),J[0]=n[0]-w[0],J[1]=n[1]-w[1],J[2]=n[2]-w[2],!M(W,J,o,g,b))return;let T=(e,t,n,r)=>{e.set(this.type,i,t,n,r),b=p&&s.renderDistance!=null?s.renderDistance:1/0},E=(i,o,c)=>{(!S||c!=null)&&o>=0&&(x.backfacesTerrain||u(c,a)<0)&&(x.invisibleTerrain||!x.selectionMode||t==null||t(n,r,o))&&((f.renderDistance==null||o<f.renderDistance)&&T(f,i,o,c),!x.isFiltered&&(x.store===2&&(y==null?(y=new j(e.ray),T(y,i,o,c),e.results.all.push(y)):o<y.renderDistance&&T(y,i,o,c)),(s.renderDistance==null||o<s.renderDistance)&&T(s,i,o,c),x.store!==0&&(d.renderDistance==null||o>d.renderDistance)&&T(d,i,o,c)))},D=Y;c(D,r,w);let{indices:O,indexCount:k}=m,N=m.vertexAttributes,I=N.getField(`position`,v),L=new A(I.typedBuffer,3,N.stride/4),R=k/3;!h&&R>200?(l.intersectionData??=new F(O,R,L),l.intersectionData.intersectRay(J,D,C,E)):P(J,D,0,R,(e,t)=>I.getVec(O[t],e),h,C,E)},T=this._tileIterator;T.reset(i);let E=e.options.invisibleTerrain;for(let e=T.next();e;e=T.next())(e.visible||E&&e.intersectsClippingArea)&&(h!=null||e.intersectsRay(n,a,g,b))&&(!m||!this._useStencilForTile(e))?w(e):T.skipSubtree()}processScaleRangeQueries(e,t){if(!t.done&&e)for(this._updatePatchGroups();e.updating&&!t.done;){e.prepare();for(let t of this._visiblePatchesByOrigin.values())for(let n of t)n.renderData?.textureReference!=null&&e.queriesForTile(n);e.process(),t.madeProgress()}}get _desiredSlot(){if(!this._produces())return null;switch(this.transparency){case 0:return 1;case 1:case 2:return 7;case 3:case 4:return null}}acquireTechniques(e){let{shadowMap:t,viewshedEnabled:n,cutFillComputationEnabled:r,slot:i,hasEmission:a,useFloatBlend:o}=e.bind,s=!!has(`enable-feature:terrain-shadows`)&&t.enabled;if(s!==this._castShadows&&(this._castShadows=s,this._patchesByOriginDirty=!0),this._inViewshed!==n&&(this._inViewshed=n,this._patchesByOriginDirty=!0),this._cutFillEnabled!==r&&(this._cutFillEnabled=r,this._patchesByOriginDirty=!0),this.transparency===3)return null;if(i===9){if((e.renderOccludedMask&y)===0)return null}else if(i!==this._desiredSlot)return null;let c=this._configuration;switch(c.screenSpaceReflections=c.cloudReflections=c.receiveShadows=c.hasShadowHighlights=c.receiveAmbientOcclusion=c.renderOccluded=c.hasHighlightMixTexture=!1,c.hasEmission=a,c.overlayMode=this._overlayRenderer.mode,c.useFloatBlend=o.value,e.output){case 0:case 1:case 2:{let n=e.bind;c.screenSpaceReflections=n.hasScreenSpaceReflections,c.cloudReflections=n.clouds.data!=null;let r=i===9;return c.receiveShadows=t.ready&&!r,c.hasShadowHighlights=z(c,e.bind),c.renderOccluded=r,c.receiveAmbientOcclusion=!r&&n.ssao!=null,c.receiveGlobalIllumination=!r&&n.globalIlluminationEnabled,this._acquireTechnique(e.output)}case 5:case 7:return this._castShadows?this._acquireTechnique(5):null;case 8:return this._inViewshed?this._acquireTechnique(8):null;case 9:return this._cutFillEnabled?this._acquireTechnique(9):null;case 3:case 4:case 11:return this._acquireTechnique(e.output);case 10:return c.hasHighlightMixTexture=e.bind.highlightMixTexture!=null,this._overlayRenderer.hasHighlights?this._acquireTechnique(10):null}return null}render(e,t){switch(this._updatePatchGroups(),this._passParameters.useStencil=!1,this._passParameters.overlayContent=O(e.output,e.bind),e.output){case 0:case 1:case 2:return this._renderMaterialPass(e,t);case 3:case 4:case 11:return this._renderAuxiliaryPass(e,t,this._visiblePatchesByOrigin);case 10:{let n=e.bind.highlight?.name;n&&this._overlayRenderer.hasHighlights&&this._overlayRenderer.renders(2)&&this._overlayRenderer.hasHighlight(n)&&this._renderAuxiliaryPass(e,t,this._visiblePatchesByOrigin);break}case 5:case 7:case 8:case 9:return this._renderAuxiliaryPass(e,t,this._allPatchesByOrigin)}}updateTileBackground(e){if(this._tileRenderer==null)return;let t=this._tileRenderer,n;if(e!=null){let t=e.toUnitRGBA();n=f(t[0]||0,t[1]||0,t[2]||0)}t.setBackground(n),this._allTiles.forAll(e=>t.updateTileTexture(e,0)),this._configuration.tileBlendInput=t.backgroundIsGrid?2:t.backgroundColor==null?0:1,this.setNeedsRender()}_updatePatchGroups(){if(this._patchesByOriginDirty&&(this._rebuildPatchGroups(),this._patchesByOriginDirty=!1,this._patchSortingDirty=!0),this._patchSortingDirty){let e=Array.from(this._visiblePatchesByOrigin.values()),t=this._stencilEnabledLayerExtents;for(let n of e)E(n,t);e.sort((e,t)=>D(e[0],t[0])),this._visiblePatchesByOrigin=new Map(e.map(e=>[e[0].renderData.localOrigin,e])),this.notifyChange(`visibleTiles`),this._patchSortingDirty=!1}}_rebuildPatchGroups(){let e=this._rootTiles;if(e!=null){e[0]?.surface.checkAllTilesWaterproofness(`render-patch-groups`),this._visiblePatchesByOrigin.clear(),this._allPatchesByOrigin.clear();for(let t of e)this._rebuildPatchGroupsForRootTile(t)}}_rebuildPatchGroupsForRootTile(e){let t=this._tileIterator;for(t.resetOne(e);!t.done;){let e=t.next(),n=e.renderData;if(!n){this._numTilesCulled++;continue}let r=n.localOrigin;if(this._castShadows||this._inViewshed||this._cutFillEnabled){let t=this._allPatchesByOrigin.get(r);t||(t=[],this._allPatchesByOrigin.set(r,t)),t.push(e)}if(!e.visible){this._numTilesCulled++,t.skipSubtree();continue}let i=this._visiblePatchesByOrigin.get(r);i||(i=[],this._visiblePatchesByOrigin.set(r,i)),i.push(e),t.skipSubtree()}}_useStencilForTile(e){for(let t of this._stencilEnabledLayerExtents)if(e.intersectsExtent(t))return!0;return!1}_renderAuxiliaryPass(e,t,n){let{rctx:r,bind:i}=e;r.bindTechnique(t,i,this._passParameters);let a=this._stencilEnabledLayerExtents.length>0;n.forEach(n=>{this._drawParameters.origin=n[0].renderData.localOrigin,t.program.bindDraw(i,this._passParameters,this._drawParameters);for(let r=0;r<n.length;r++)this._renderPatch(e,t,n[r],U.TRIANGLES,a,this._passParameters.overlayContent===null)}),r.bindVAO(null)}_renderMaterialPass(e,t){let{rctx:n,bind:r}=e,i=n.bindTechnique(t,r,this._passParameters);this._numTilesRendered=0,this._numTilesCulled=0,this._numOriginsRendered=0;let a=r.slot===9;a&&(i.bindTexture(`tex`,n.emptyTexture),i.setUniform3fv(`textureOpacities`,d),i.setUniform4fv(`texOffsetAndScale`,h));let o=this._tileRenderer?.backgroundColor==null?d:this._tileRenderer.backgroundColor;this._configuration.tileBlendInput===1&&i.setUniform3fv(`backgroundColor`,o);let s=this._stencilEnabledLayerExtents.length>0,c=this.wireframe?U.LINES:U.TRIANGLES;this._configuration.textureFadingEnabled&&i.bindTexture(`texNext`,n.emptyTexture);for(let n of this._visiblePatchesByOrigin.values()){this._drawParameters.origin=n[0].renderData.localOrigin,t.program.bindDraw(r,this._passParameters,this._drawParameters),this._numOriginsRendered++;for(let r of n){let n=r.renderData,o=n.textureReference;if(o!=null){if(!a){i.setUniform4fv(`texOffsetAndScale`,o.offsetAndScale),i.bindTexture(`tex`,o.texture.texture);let e=n.textureFadeFactor,t=e<1?n.nextTextureReference:null;this._configuration.textureFadingEnabled&&t&&e<1?(i.setUniform1f(`fadeFactor`,e),i.setUniform4fv(`nextTexOffsetAndScale`,t.offsetAndScale),i.setUniform3fv(`nextTexOpacities`,t.opacities),i.bindTexture(`texNext`,t.texture.texture)):i.setUniform1f(`fadeFactor`,1),n.textureIsFading&&this.setNeedsRender(2),i.setUniform3fv(`textureOpacities`,o.opacities)}this._renderPatch(e,t,r,c,s),r.renderOrder=this._numTilesRendered,this._numTilesRendered++}}}n.bindVAO(null)}_renderPatch(e,t,n,r,i,a=!1){let o=n.renderData,s=o.vao,c=s?.indexBuffer;if(!s||c==null){S&&console.error(`Rendered tile with no indices: `,n.lij,` : `,o);return}let l=t.program;!a&&!this._overlayRenderer.isEmpty&&this._bindOverlayPatchData(l,o.overlay);let{rctx:u,bind:d}=e;i&&(this._passParameters.useStencil=this._useStencilForTile(n),u.setPipelineState(t.getPipeline(d,this._passParameters)));let f=o.geometry.indexCount;u.bindVAO(s),l.assertCompatibleVertexAttributeLocations(s),u.drawElements(r,f,c.indexType,0)}_bindOverlayPatchData(e,t){e.setUniform4fv(`overlayTexOffset`,t.offsets),e.setUniform4fv(`overlayTexScale`,t.scales)}_acquireTechnique(e){return this._configuration.output=e,this._techniques.get(V,this._configuration)}get test(){}hasHighlight(e){return this._overlayRenderer.hasHighlight(e)}};e([o({readOnly:!0})],G.prototype,`visibleTiles`,null),e([o({readOnly:!0})],G.prototype,`_isGlobal`,null),e([o()],G.prototype,`renderOccludedFlags`,null),e([o({value:!1})],G.prototype,`renderingDisabled`,null),e([o({value:!0})],G.prototype,`visible`,null),e([o()],G.prototype,`renderPatchBorders`,null),e([o()],G.prototype,`wireframe`,null),G=e([s(`esri.views.3d.terrain.TerrainRenderer`)],G);const K=p(),q=p(),J=p(),Y=p();export{G as TerrainRenderer};
2
+ import{__decorate as e}from"tslib";import has from"../../../core/has.js";import{disposeMaybe as t}from"../../../core/maybe.js";import{MemCachePool as n}from"../../../core/MemCachePool.js";import r from"../../../core/ObjectPool.js";import{watch as i,sync as a}from"../../../core/reactiveUtils.js";import{property as o,subclass as s}from"../../../core/accessorSupport/decorators.js";import{subtract as c,set as l,dot as u}from"../../../core/libs/gl-matrix-2/math/vec3.js";import{ZEROS as d,fromValues as f,create as p}from"../../../core/libs/gl-matrix-2/factories/vec3f64.js";import{fromValues as m,ZEROS as h}from"../../../core/libs/gl-matrix-2/factories/vec4f64.js";import{create as g,set as _}from"../../../geometry/support/aaBoundingBox.js";import{BufferViewVec3f as v}from"../../../geometry/support/buffer/BufferView.js";import{overlayRenderOccludedFlag as y}from"./OverlayRenderer.js";import{PatchRenderData as b}from"./PatchRenderData.js";import{TerrainAttributesCache as x}from"./TerrainAttributesCache.js";import{enableTerrainInternalChecks as S}from"./terrainUtils.js";import{TileRenderer as C}from"./TileRenderer.js";import{IteratorPreorder as w,fallsWithinLayerView as T,sortTiles as E,compareTiles as D}from"./tileUtils.js";import{getOverlayContentForOutputTerrain as O}from"../webgl-engine/core/shaderLibrary/terrain/Overlay.glsl.js";import{SyncRenderPlugin as k}from"../webgl-engine/effects/RenderPlugin.js";import{Vertices as A}from"../webgl-engine/lib/Attribute.js";import{IntersectorResultRay as j}from"../webgl-engine/lib/IntersectorResult.js";import{intersectAabbInvDirBefore as M,MeshIntersectionOptions as N,intersectTriangles as P}from"../webgl-engine/lib/RayIntersections.js";import{TriangleIntersectionData as F}from"../webgl-engine/lib/TriangleIntersectionData.js";import{terrainId as I,getVerticalOffsetTerrain as L}from"../webgl-engine/lib/verticalOffsetUtils.js";import{DrawParameters as R}from"../webgl-engine/materials/DrawParameters.js";import{hasShadowHighlights as z}from"../webgl-engine/shaders/ReceiveShadowsConfiguration.js";import{T as B}from"../../../chunks/Terrain.glsl.js";import{TerrainTechnique as V}from"../webgl-engine/shaders/TerrainTechnique.js";import{TerrainTechniqueConfiguration as H}from"../webgl-engine/shaders/TerrainTechniqueConfiguration.js";import{PrimitiveType as U}from"../../webgl/enums.js";const W=g();let G=class extends k{get visibleTiles(){return Array.from(this._visiblePatchesByOrigin.values()).flat()}get _isGlobal(){return this._stage.viewingMode===1}get _techniques(){return this._context.techniques}get _rctx(){return this._context.renderContext.rctx}get renderOccludedFlags(){return this._overlayRenderer.renderOccludedFlags}constructor(e,t,i,a,o){super({}),this._overlayRenderer=e,this._stage=t,this._allTiles=i,this._compressionTracker=a,this.type=7,this.isGround=!0,this._passParameters=new B,this._drawParameters=new R,this._renderDataPool=new r(()=>new b),this._visiblePatchesByOrigin=new Map,this._allPatchesByOrigin=new Map,this._patchesByOriginDirty=!0,this._patchSortingDirty=!0,this._tileIterator=new w,this._castShadows=!1,this._inViewshed=!1,this._cutFillEnabled=!1,this._tileRenderer=null,this._stencilEnabledLayerExtents=[],this._numTilesRendered=0,this._numTilesCulled=0,this._numOriginsRendered=0,this.produces=new Map([[1,()=>this._desiredSlot===1],[7,()=>this._desiredSlot===7],[9,()=>this._produces()&&this.renderOccludedFlags===y]]),this._tileSize=256,this._configuration=new H(t.viewingMode===1),this._tileTextureCache=new n((e,t)=>o.newCache(e,t),`TileTexture`),this.tileGeometryCache=new x(o)}normalizeCtorArgs(){return{}}initialize(){this._stage.addRenderPlugin(this),this.addHandles(i(()=>this._overlayRenderer.renderOccludedFlags,()=>this.setNeedsRender(),a))}destroy(){this._stage.removeRenderPlugin(this),this._tileTextureCache.destroy(),this.tileGeometryCache.destroy(),this._allTiles.prune(),this._tileRenderer=null}_produces(){return this.visible&&!!this._rootTiles&&!this.renderingDisabled}set renderingDisabled(e){this._set(`renderingDisabled`,!!e),this.setDirty()}set visible(e){this._set(`visible`,!!e),this.setDirty()}updateHeading(e){this._tileRenderer?.updateHeading(e)}set transparency(e){this._configuration.transparencyMode!==e&&(this._configuration.transparencyMode=e,this.setNeedsRender())}get transparency(){return this._configuration.transparencyMode}get renderPatchBorders(){return this._configuration.tileBorders}set renderPatchBorders(e){this._configuration.tileBorders!==e&&(this._configuration.tileBorders=e,this.setNeedsRender(),this.notifyChange(`renderPatchBorders`))}get layerViewUid(){return I}get slicePlaneEnabled(){return this._configuration.hasSlicePlane}set slicePlaneEnabled(e){this._configuration.hasSlicePlane!==e&&(this._configuration.hasSlicePlane=e,this.setNeedsRender())}set textureFadingEnabled(e){this._configuration.textureFadingEnabled!==e&&(this._configuration.textureFadingEnabled=e,this.setNeedsRender())}set pbrMode(e){this._configuration.pbrMode!==e&&(this._configuration.pbrMode=e,this.setNeedsRender())}setRootTiles(e){this._rootTiles=e,this.setDirty()}setStencilEnabledLayerExtents(e){this._stencilEnabledLayerExtents=e,this._setSortingDirty()}set tileSize(e){this._tileSize=e,this._tileRenderer!=null&&(this._tileRenderer.tileSize=e),this.setDirty()}get tileSize(){return this._tileSize}_ensureRenderData(e){e.renderData||(e.renderData=this._renderDataPool.acquire(),e.renderData.init(e,this._getLocalOriginOfTile(e)))}loadTile(e){this._ensureRenderData(e),this.updateTileGeometryState(e),!this.reuseTextureFromParent(e)&&this.updateTileTexture(e,32)}reuseTextureFromParent(e){let{parent:t}=e;if(!this._canReuseTextureFromParent(t,e))return!1;let n=m(e.lij[2]&1?.5:0,e.lij[1]&1?0:.5,.5,.5);return t.renderData?.reuseTexture(e.renderData,n)??!1}_canReuseTextureFromParent(e,t){if(!e)return!1;let{layerInfo:n,surface:r}=t;for(let i=0;i<n[1].length;i++){let n=r.layerViewByIndex(i,1);if(T(e,n)!==T(t,n))return!1}return!0}updateTileTexture(e,t){this._tileRenderer!=null&&(this._tileRenderer.updateTileTexture(e,t===32?0:2),this.setNeedsRender(),e.resetPendingUpdate(t))}updateTileGeometryState(e){for(let t of e.layerInfo[0])t.pendingUpdates&=-9;e.resetPendingUpdate(8);let t=e.renderData.updateGeometryState();return t&&this.setDirty(),t}updateGeometryIfNeeded(e){e.loaded&&e.renderData.updateGeometryIfNeeded(this._rctx)}unloadTile(e){let t=e.renderData;t&&(t.releaseGeometry(),this._renderDataPool.release(t),t.clear(),e.renderData=null,e.setMemoryDirty(),this.setDirty())}_getLocalOriginOfTile(e){let t=Math.max(0,Math.floor((e.level-3)/7)*7);if(this._isGlobal&&t===0)return d;for(;e.parent&&e.level>t;)e=e.parent;return e.centerAtSeaLevel}getStats(){return{numTilesRendered:this._numTilesRendered,numTilesCulled:this._numTilesCulled,numOriginsRendered:this._numOriginsRendered}}set wireframe(e){this._get(`wireframe`)!==e&&(this._set(`wireframe`,e),this.setNeedsRender())}setDirty(e=1){this._patchesByOriginDirty=!0,this._context.requestRender(e)}_setSortingDirty(e=1){this._patchSortingDirty=!0,this._context.requestRender(e)}setNeedsRender(e=1){this._context.requestRender(e)}initializeRenderContext(e){this._context=e,this._tileRenderer=new C(this._rctx,this._tileSize,this._techniques,this._tileTextureCache,this._compressionTracker),this.updateTileBackground()}uninitializeRenderContext(){this._tileRenderer=t(this._tileRenderer)}intersectRay(e,t,n,r){let i=this._rootTiles;if(!i||e.options.selectOpaqueTerrainOnly&&e.options.selectionMode&&this.transparency!==0)return;let a=K,o=q;c(a,r,n),l(o,1/a[0],1/a[1],1/a[2]);let s=e.results.min,d=e.results.max,f=e.results.ground,p=e.options.store===0,m=!!e.results.ground.target,h=L(e.verticalOffset),g=e.tolerance,y,b=p&&s.distance!=null?s.distance:1/0,x=e.options,S=x.normalRequired||!x.backfacesTerrain,C=new N(g,!1,S),w=i=>{let l=i.renderData;if(!l?.vao)return;let m=l.geometry;_(W,m.boundingBox);let w=l.localOrigin;if(h!=null&&(h.localOrigin=w,h.applyToAabb(W)),J[0]=n[0]-w[0],J[1]=n[1]-w[1],J[2]=n[2]-w[2],!M(W,J,o,g,b))return;let T=(e,t,n,r)=>{e.set(this.type,i,t,n,r),b=p&&s.renderDistance!=null?s.renderDistance:1/0},E=(i,o,c)=>{(!S||c!=null)&&o>=0&&(x.backfacesTerrain||u(c,a)<0)&&(x.invisibleTerrain||!x.selectionMode||t==null||t(n,r,o))&&((f.renderDistance==null||o<f.renderDistance)&&T(f,i,o,c),!x.isFiltered&&(x.store===2&&(y==null?(y=new j(e.ray),T(y,i,o,c),e.results.all.push(y)):o<y.renderDistance&&T(y,i,o,c)),(s.renderDistance==null||o<s.renderDistance)&&T(s,i,o,c),x.store!==0&&(d.renderDistance==null||o>d.renderDistance)&&T(d,i,o,c)))},D=Y;c(D,r,w);let{indices:O,indexCount:k}=m,N=m.vertexAttributes,I=N.getField(`position`,v),L=new A(I.typedBuffer,3,N.stride/4),R=k/3;!h&&R>200?(l.intersectionData??=new F(O,R,L),l.intersectionData.intersectRay(J,D,C,E)):P(J,D,0,R,(e,t)=>I.getVec(O[t],e),h,C,E)},T=this._tileIterator;T.reset(i);let E=e.options.invisibleTerrain;for(let e=T.next();e;e=T.next())(e.visible||E&&e.intersectsClippingArea)&&(h!=null||e.intersectsRay(n,a,g,b))&&(!m||!this._useStencilForTile(e))?w(e):T.skipSubtree()}processScaleRangeQueries(e,t){if(!t.done&&e)for(this._updatePatchGroups();e.updating&&!t.done;){e.prepare();for(let t of this._visiblePatchesByOrigin.values())for(let n of t)n.renderData?.textureReference!=null&&e.queriesForTile(n);e.process(),t.madeProgress()}}get _desiredSlot(){if(!this._produces())return null;switch(this.transparency){case 0:return 1;case 1:case 2:return 7;case 3:case 4:return null}}acquireTechniques(e){let{shadowMap:t,viewshedEnabled:n,cutFillComputationEnabled:r,slot:i,hasEmission:a,useFloatBlend:o}=e.bind,s=!!has(`enable-feature:terrain-shadows`)&&t.enabled;if(s!==this._castShadows&&(this._castShadows=s,this._patchesByOriginDirty=!0),this._inViewshed!==n&&(this._inViewshed=n,this._patchesByOriginDirty=!0),this._cutFillEnabled!==r&&(this._cutFillEnabled=r,this._patchesByOriginDirty=!0),this.transparency===3)return null;if(i===9){if((e.renderOccludedMask&y)===0)return null}else if(i!==this._desiredSlot)return null;let c=this._configuration;switch(c.receiveGlobalIllumination=c.screenSpaceReflections=c.cloudReflections=c.receiveShadows=c.hasShadowHighlights=c.receiveAmbientOcclusion=c.renderOccluded=c.hasHighlightMixTexture=!1,c.hasEmission=a,c.overlayMode=this._overlayRenderer.mode,c.useFloatBlend=o.value,e.output){case 0:case 1:case 2:{let n=e.bind;c.screenSpaceReflections=n.hasScreenSpaceReflections,c.cloudReflections=n.clouds.data!=null;let r=i===9;return c.receiveShadows=t.ready&&!r,c.hasShadowHighlights=z(c,e.bind),c.renderOccluded=r,c.receiveAmbientOcclusion=!r&&n.ssao!=null,c.receiveGlobalIllumination=!r&&n.globalIlluminationEnabled,this._acquireTechnique(e.output)}case 5:case 7:return this._castShadows?this._acquireTechnique(5):null;case 8:return this._inViewshed?this._acquireTechnique(8):null;case 9:return this._cutFillEnabled?this._acquireTechnique(9):null;case 3:case 4:case 11:return this._acquireTechnique(e.output);case 10:return c.hasHighlightMixTexture=e.bind.highlightMixTexture!=null,this._overlayRenderer.hasHighlights?this._acquireTechnique(10):null}return null}render(e,t){switch(this._updatePatchGroups(),this._passParameters.useStencil=!1,this._passParameters.overlayContent=O(e.output,e.bind),e.output){case 0:case 1:case 2:return this._renderMaterialPass(e,t);case 3:case 4:case 11:return this._renderAuxiliaryPass(e,t,this._visiblePatchesByOrigin);case 10:{let n=e.bind.highlight?.name;n&&this._overlayRenderer.hasHighlights&&this._overlayRenderer.renders(2)&&this._overlayRenderer.hasHighlight(n)&&this._renderAuxiliaryPass(e,t,this._visiblePatchesByOrigin);break}case 5:case 7:case 8:case 9:return this._renderAuxiliaryPass(e,t,this._allPatchesByOrigin)}}updateTileBackground(e){if(this._tileRenderer==null)return;let t=this._tileRenderer,n;if(e!=null){let t=e.toUnitRGBA();n=f(t[0]||0,t[1]||0,t[2]||0)}t.setBackground(n),this._allTiles.forAll(e=>t.updateTileTexture(e,0)),this._configuration.tileBlendInput=t.backgroundIsGrid?2:t.backgroundColor==null?0:1,this.setNeedsRender()}_updatePatchGroups(){if(this._patchesByOriginDirty&&(this._rebuildPatchGroups(),this._patchesByOriginDirty=!1,this._patchSortingDirty=!0),this._patchSortingDirty){let e=Array.from(this._visiblePatchesByOrigin.values()),t=this._stencilEnabledLayerExtents;for(let n of e)E(n,t);e.sort((e,t)=>D(e[0],t[0])),this._visiblePatchesByOrigin=new Map(e.map(e=>[e[0].renderData.localOrigin,e])),this.notifyChange(`visibleTiles`),this._patchSortingDirty=!1}}_rebuildPatchGroups(){let e=this._rootTiles;if(e!=null){e[0]?.surface.checkAllTilesWaterproofness(`render-patch-groups`),this._visiblePatchesByOrigin.clear(),this._allPatchesByOrigin.clear();for(let t of e)this._rebuildPatchGroupsForRootTile(t)}}_rebuildPatchGroupsForRootTile(e){let t=this._tileIterator;for(t.resetOne(e);!t.done;){let e=t.next(),n=e.renderData;if(!n){this._numTilesCulled++;continue}let r=n.localOrigin;if(this._castShadows||this._inViewshed||this._cutFillEnabled){let t=this._allPatchesByOrigin.get(r);t||(t=[],this._allPatchesByOrigin.set(r,t)),t.push(e)}if(!e.visible){this._numTilesCulled++,t.skipSubtree();continue}let i=this._visiblePatchesByOrigin.get(r);i||(i=[],this._visiblePatchesByOrigin.set(r,i)),i.push(e),t.skipSubtree()}}_useStencilForTile(e){for(let t of this._stencilEnabledLayerExtents)if(e.intersectsExtent(t))return!0;return!1}_renderAuxiliaryPass(e,t,n){let{rctx:r,bind:i}=e;r.bindTechnique(t,i,this._passParameters);let a=this._stencilEnabledLayerExtents.length>0;n.forEach(n=>{this._drawParameters.origin=n[0].renderData.localOrigin,t.program.bindDraw(i,this._passParameters,this._drawParameters);for(let r=0;r<n.length;r++)this._renderPatch(e,t,n[r],U.TRIANGLES,a,this._passParameters.overlayContent===null)}),r.bindVAO(null)}_renderMaterialPass(e,t){let{rctx:n,bind:r}=e,i=n.bindTechnique(t,r,this._passParameters);this._numTilesRendered=0,this._numTilesCulled=0,this._numOriginsRendered=0;let a=r.slot===9;a&&(i.bindTexture(`tex`,n.emptyTexture),i.setUniform3fv(`textureOpacities`,d),i.setUniform4fv(`texOffsetAndScale`,h));let o=this._tileRenderer?.backgroundColor==null?d:this._tileRenderer.backgroundColor;this._configuration.tileBlendInput===1&&i.setUniform3fv(`backgroundColor`,o);let s=this._stencilEnabledLayerExtents.length>0,c=this.wireframe?U.LINES:U.TRIANGLES;this._configuration.textureFadingEnabled&&i.bindTexture(`texNext`,n.emptyTexture);for(let n of this._visiblePatchesByOrigin.values()){this._drawParameters.origin=n[0].renderData.localOrigin,t.program.bindDraw(r,this._passParameters,this._drawParameters),this._numOriginsRendered++;for(let r of n){let n=r.renderData,o=n.textureReference;if(o!=null){if(!a){i.setUniform4fv(`texOffsetAndScale`,o.offsetAndScale),i.bindTexture(`tex`,o.texture.texture);let e=n.textureFadeFactor,t=e<1?n.nextTextureReference:null;this._configuration.textureFadingEnabled&&t&&e<1?(i.setUniform1f(`fadeFactor`,e),i.setUniform4fv(`nextTexOffsetAndScale`,t.offsetAndScale),i.setUniform3fv(`nextTexOpacities`,t.opacities),i.bindTexture(`texNext`,t.texture.texture)):i.setUniform1f(`fadeFactor`,1),n.textureIsFading&&this.setNeedsRender(2),i.setUniform3fv(`textureOpacities`,o.opacities)}this._renderPatch(e,t,r,c,s),r.renderOrder=this._numTilesRendered,this._numTilesRendered++}}}n.bindVAO(null)}_renderPatch(e,t,n,r,i,a=!1){let o=n.renderData,s=o.vao,c=s?.indexBuffer;if(!s||c==null){S&&console.error(`Rendered tile with no indices: `,n.lij,` : `,o);return}let l=t.program;!a&&!this._overlayRenderer.isEmpty&&this._bindOverlayPatchData(l,o.overlay);let{rctx:u,bind:d}=e;i&&(this._passParameters.useStencil=this._useStencilForTile(n),u.setPipelineState(t.getPipeline(d,this._passParameters)));let f=o.geometry.indexCount;u.bindVAO(s),l.assertCompatibleVertexAttributeLocations(s),u.drawElements(r,f,c.indexType,0)}_bindOverlayPatchData(e,t){e.setUniform4fv(`overlayTexOffset`,t.offsets),e.setUniform4fv(`overlayTexScale`,t.scales)}_acquireTechnique(e){return this._configuration.output=e,this._techniques.get(V,this._configuration)}get test(){}hasHighlight(e){return this._overlayRenderer.hasHighlight(e)}};e([o({readOnly:!0})],G.prototype,`visibleTiles`,null),e([o({readOnly:!0})],G.prototype,`_isGlobal`,null),e([o()],G.prototype,`renderOccludedFlags`,null),e([o({value:!1})],G.prototype,`renderingDisabled`,null),e([o({value:!0})],G.prototype,`visible`,null),e([o()],G.prototype,`renderPatchBorders`,null),e([o()],G.prototype,`wireframe`,null),G=e([s(`esri.views.3d.terrain.TerrainRenderer`)],G);const K=p(),q=p(),J=p(),Y=p();export{G as TerrainRenderer};
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/6.0/LICENSE.txt */
2
- import"./ComponentData.glsl.js";import"../../../core/shaderLibrary/forwardLinearDepthToWriteShadow.glsl.js";import"../../../core/shaderLibrary/ShaderOutput.js";import"../../../core/shaderLibrary/Slice.glsl.js";import"../../../core/shaderLibrary/attributes/TextureCoordinateAttribute.glsl.js";import"../../../core/shaderLibrary/attributes/VertexColor.glsl.js";import"../../../core/shaderLibrary/attributes/VertexNormal.glsl.js";import"../../../core/shaderLibrary/attributes/VertexPosition.glsl.js";import"../../../core/shaderLibrary/output/DepthConversion.glsl.js";import"../../../core/shaderLibrary/output/OutputDepth.glsl.js";import"../../../core/shaderLibrary/output/OutputHighlight.glsl.js";import"../../../core/shaderLibrary/output/OutputHighlightOverlay.js";import"../../../core/shaderLibrary/shading/ComputeFragmentNormals.glsl.js";import"../../../core/shaderLibrary/shading/ComputeMaterialColor.glsl.js";import"../../../core/shaderLibrary/shading/ComputeNormalTexture.glsl.js";import"../../../core/shaderLibrary/shading/EvaluateSceneLighting.glsl.js";import"../../../core/shaderLibrary/shading/MainLighting.glsl.js";import"../../../core/shaderLibrary/shading/NormalUtils.glsl.js";import"../../../core/shaderLibrary/shading/pbrGlobals.glsl.js";import"../../../core/shaderLibrary/shading/PhysicallyBasedRenderingParameters.glsl.js";import"../../../core/shaderLibrary/shading/ReadBaseColorTexture.glsl.js";import"../../../core/shaderLibrary/shading/readShadow.glsl.js";import"../../../core/shaderLibrary/terrain/Overlay.glsl.js";import"../../../core/shaderLibrary/util/DiscardOrAdjustAlpha.glsl.js";import"../../../core/shaderModules/BooleanDrawUniform.js";import"../../../core/shaderModules/FloatDrawUniform.js";import"../../../core/shaderModules/glsl.js";import"../../../core/shaderModules/Texture2DBindUniform.js";import"../../../effects/snowcover/SnowCover.glsl.js";import"../../../shaders/alphaCutoff.glsl.js";import"../../../shaders/OutputColorHighlightOLID.glsl.js";import"../../../shaders/SphereDepthInterpolate.glsl.js";import"../../../../../webgl/ShaderBuilder.js";export{b as build}from"../../../../../../chunks/Component.glsl.js";
2
+ import"./ComponentData.glsl.js";import"../../../core/shaderLibrary/bindUniforms.js";import"../../../core/shaderLibrary/forwardLinearDepthToWriteShadow.glsl.js";import"../../../core/shaderLibrary/ShaderOutput.js";import"../../../core/shaderLibrary/Slice.glsl.js";import"../../../core/shaderLibrary/attributes/TextureCoordinateAttribute.glsl.js";import"../../../core/shaderLibrary/attributes/VertexColor.glsl.js";import"../../../core/shaderLibrary/attributes/VertexNormal.glsl.js";import"../../../core/shaderLibrary/attributes/VertexPosition.glsl.js";import"../../../core/shaderLibrary/output/DepthConversion.glsl.js";import"../../../core/shaderLibrary/output/OutputDepth.glsl.js";import"../../../core/shaderLibrary/output/OutputHighlight.glsl.js";import"../../../core/shaderLibrary/output/OutputHighlightOverlay.js";import"../../../core/shaderLibrary/shading/ComputeFragmentNormals.glsl.js";import"../../../core/shaderLibrary/shading/ComputeMaterialColor.glsl.js";import"../../../core/shaderLibrary/shading/ComputeNormalTexture.glsl.js";import"../../../core/shaderLibrary/shading/EvaluateSceneLighting.glsl.js";import"../../../core/shaderLibrary/shading/lightingUniforms.js";import"../../../core/shaderLibrary/shading/NormalUtils.glsl.js";import"../../../core/shaderLibrary/shading/pbrGlobals.glsl.js";import"../../../core/shaderLibrary/shading/PhysicallyBasedRenderingParameters.glsl.js";import"../../../core/shaderLibrary/shading/ReadBaseColorTexture.glsl.js";import"../../../core/shaderLibrary/shading/readShadow.glsl.js";import"../../../core/shaderLibrary/terrain/Overlay.glsl.js";import"../../../core/shaderLibrary/util/DiscardOrAdjustAlpha.glsl.js";import"../../../core/shaderModules/BooleanDrawUniform.js";import"../../../core/shaderModules/FloatDrawUniform.js";import"../../../core/shaderModules/glsl.js";import"../../../effects/snowcover/SnowCover.glsl.js";import"../../../shaders/alphaCutoff.glsl.js";import"../../../shaders/OutputColorHighlightOLID.glsl.js";import"../../../shaders/SphereDepthInterpolate.glsl.js";import"../../../../../webgl/ShaderBuilder.js";export{b as build}from"../../../../../../chunks/Component.glsl.js";
@@ -1,7 +1,7 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/6.0/LICENSE.txt */
2
- import{ReadDepth as e}from"./output/ReadDepth.glsl.js";import{BlendColorsPremultiplied as t}from"./util/BlendColorsPremultiplied.glsl.js";import{CameraSpace as n}from"./util/CameraSpace.glsl.js";import{Float3PassUniform as r}from"../shaderModules/Float3PassUniform.js";import{FloatPassUniform as i}from"../shaderModules/FloatPassUniform.js";import{glsl as a}from"../shaderModules/glsl.js";import{Texture2DBindUniform as o}from"../shaderModules/Texture2DBindUniform.js";import{Texture2DPassUniform as s}from"../shaderModules/Texture2DPassUniform.js";function c(c,l){let u=c.fragment;u.include(e),c.include(n),u.include(t),u.uniforms.add(new i(`globalAlpha`,e=>e.globalAlpha),new r(`glowColor`,e=>e.glowColor),new i(`glowWidth`,(e,t)=>e.glowWidth*t.camera.pixelRatio),new i(`glowFalloff`,e=>e.glowFalloff),new r(`innerColor`,e=>e.innerColor),new i(`innerWidth`,(e,t)=>e.innerWidth*t.camera.pixelRatio),new o(`depthMap`,e=>e.depth?.attachment),new s(`normalMap`,e=>e.normals)),u.code.add(a`vec4 premultipliedColor(vec3 rgb, float alpha) {
2
+ import{depthMap as e}from"./bindUniforms.js";import{ReadDepth as t}from"./output/ReadDepth.glsl.js";import{BlendColorsPremultiplied as n}from"./util/BlendColorsPremultiplied.glsl.js";import{CameraSpace as r}from"./util/CameraSpace.glsl.js";import{Float3PassUniform as i}from"../shaderModules/Float3PassUniform.js";import{FloatPassUniform as a}from"../shaderModules/FloatPassUniform.js";import{glsl as o}from"../shaderModules/glsl.js";import{Texture2DPassUniform as s}from"../shaderModules/Texture2DPassUniform.js";function c(c,l){let u=c.fragment;u.include(t),c.include(r),u.include(n),u.uniforms.add(new a(`globalAlpha`,e=>e.globalAlpha),new i(`glowColor`,e=>e.glowColor),new a(`glowWidth`,(e,t)=>e.glowWidth*t.camera.pixelRatio),new a(`glowFalloff`,e=>e.glowFalloff),new i(`innerColor`,e=>e.innerColor),new a(`innerWidth`,(e,t)=>e.innerWidth*t.camera.pixelRatio),e,new s(`normalMap`,e=>e.normals)),u.code.add(o`vec4 premultipliedColor(vec3 rgb, float alpha) {
3
3
  return vec4(rgb * alpha, alpha);
4
- }`),u.code.add(a`vec4 laserlineProfile(float dist) {
4
+ }`),u.code.add(o`vec4 laserlineProfile(float dist) {
5
5
  if (dist > glowWidth) {
6
6
  return vec4(0.0);
7
7
  }
@@ -11,7 +11,7 @@ return blendColorsPremultiplied(
11
11
  premultipliedColor(innerColor, innerAlpha),
12
12
  premultipliedColor(glowColor, glowAlpha)
13
13
  );
14
- }`),u.code.add(a`bool laserlineReconstructFromDepth(out vec3 pos, out vec3 normal, out float angleCutoffAdjust, out float depthDiscontinuityAlpha) {
14
+ }`),u.code.add(o`bool laserlineReconstructFromDepth(out vec3 pos, out vec3 normal, out float angleCutoffAdjust, out float depthDiscontinuityAlpha) {
15
15
  float depth = depthFromTexture(depthMap, uv);
16
16
  if (depth == 1.0) {
17
17
  return false;
@@ -30,13 +30,13 @@ angleCutoffAdjust = mix(0.0, 0.004, blendFactor);
30
30
  float ddepth = fwidth(linearDepth);
31
31
  depthDiscontinuityAlpha = 1.0 - smoothstep(0.0, 0.01, -ddepth / linearDepth);
32
32
  return true;
33
- }`),l.contrastControlEnabled?u.uniforms.add(new s(`colorTexture`,(e,t)=>e.colors),new i(`globalAlphaContrastBoost`,e=>e.globalAlphaContrastBoost)).code.add(a`float rgbToLuminance(vec3 color) {
33
+ }`),l.contrastControlEnabled?u.uniforms.add(new s(`colorTexture`,(e,t)=>e.colors),new a(`globalAlphaContrastBoost`,e=>e.globalAlphaContrastBoost)).code.add(o`float rgbToLuminance(vec3 color) {
34
34
  return dot(vec3(0.2126, 0.7152, 0.0722), color);
35
35
  }
36
36
  vec4 laserlineOutput(vec4 color) {
37
37
  float backgroundLuminance = rgbToLuminance(texture(colorTexture, uv).rgb);
38
38
  float alpha = clamp(globalAlpha * max(backgroundLuminance * globalAlphaContrastBoost, 1.0), 0.0, 1.0);
39
39
  return color * alpha;
40
- }`):u.code.add(a`vec4 laserlineOutput(vec4 color) {
40
+ }`):u.code.add(o`vec4 laserlineOutput(vec4 color) {
41
41
  return color * globalAlpha;
42
42
  }`)}export{c as Laserline};
@@ -1,27 +1,27 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/6.0/LICENSE.txt */
2
- import{create as e}from"../../../../../../core/libs/gl-matrix-2/factories/mat3f64.js";import{create as t}from"../../../../../../core/libs/gl-matrix-2/factories/vec3f64.js";import{DoublePrecision as n}from"../util/DoublePrecision.glsl.js";import{Float3DrawUniform as r}from"../../shaderModules/Float3DrawUniform.js";import{Float3PassUniform as i}from"../../shaderModules/Float3PassUniform.js";import{If as a,glsl as o}from"../../shaderModules/glsl.js";import{IntegerDrawUniform as s}from"../../shaderModules/IntegerDrawUniform.js";import{Matrix3DrawUniform as c}from"../../shaderModules/Matrix3DrawUniform.js";import{Matrix3PassUniform as l}from"../../shaderModules/Matrix3PassUniform.js";import{Matrix4BindUniform as u}from"../../shaderModules/Matrix4BindUniform.js";import{Texture2DPassUniform as d}from"../../shaderModules/Texture2DPassUniform.js";import{ViewingModeConfiguration as f}from"../../../materials/ViewingModeConfiguration.js";import{NoParameters as p}from"../../../../../webgl/NoParameters.js";class m extends f{}function h(e,t){let{attributes:f,vertex:p,varyings:m,fragment:h}=e;p.include(n),f.add(`position`,`vec3`),m.add(`vPositionWorldCameraRelative`,`vec3`),m.add(`vPosition_view`,`vec3`,{invariant:!0}),p.uniforms.add(new i(`transformWorldFromViewTH`,e=>e.transformWorldFromViewTH),new i(`transformWorldFromViewTL`,e=>e.transformWorldFromViewTL),new l(`transformViewFromCameraRelativeRS`,e=>e.transformViewFromCameraRelativeRS),new u(`transformProjFromView`,e=>e.camera.projectionMatrix));let{vertexPositionRotationType:g,useTransformationTexture:_}=t,v=g===1,y=g===2,b=v||y;_?p.uniforms.add(new s(`transformationDrawId`,e=>e.transformationDrawId),new d(`transformationTexture`,e=>e.transformationTexture)):(p.uniforms.add(new r(`transformWorldFromModelTH`,e=>e.transformWorldFromModelTH),new r(`transformWorldFromModelTL`,e=>e.transformWorldFromModelTL)),b&&p.uniforms.add(new c(`transformWorldFromModelRS`,e=>e.transformWorldFromModelRS))),p.code.add(o`
3
- ${a(b,o`
2
+ import{create as e}from"../../../../../../core/libs/gl-matrix-2/factories/mat3f64.js";import{create as t}from"../../../../../../core/libs/gl-matrix-2/factories/vec3f64.js";import{projMatrix as n}from"../util/cameraUniforms.js";import{DoublePrecision as r}from"../util/DoublePrecision.glsl.js";import{Float3DrawUniform as i}from"../../shaderModules/Float3DrawUniform.js";import{Float3PassUniform as a}from"../../shaderModules/Float3PassUniform.js";import{If as o,glsl as s}from"../../shaderModules/glsl.js";import{IntegerDrawUniform as c}from"../../shaderModules/IntegerDrawUniform.js";import{Matrix3DrawUniform as l}from"../../shaderModules/Matrix3DrawUniform.js";import{Matrix3PassUniform as u}from"../../shaderModules/Matrix3PassUniform.js";import{Texture2DPassUniform as d}from"../../shaderModules/Texture2DPassUniform.js";import{ViewingModeConfiguration as f}from"../../../materials/ViewingModeConfiguration.js";import{NoParameters as p}from"../../../../../webgl/NoParameters.js";class m extends f{}function h(e,t){let{attributes:f,vertex:p,varyings:m,fragment:h}=e;p.include(r),f.add(`position`,`vec3`),m.add(`vPositionWorldCameraRelative`,`vec3`),m.add(`vPosition_view`,`vec3`,{invariant:!0}),p.uniforms.add(new a(`transformWorldFromViewTH`,e=>e.transformWorldFromViewTH),new a(`transformWorldFromViewTL`,e=>e.transformWorldFromViewTL),new u(`transformViewFromCameraRelativeRS`,e=>e.transformViewFromCameraRelativeRS),n);let{vertexPositionRotationType:g,useTransformationTexture:_}=t,v=g===1,y=g===2,b=v||y;_?p.uniforms.add(new c(`transformationDrawId`,e=>e.transformationDrawId),new d(`transformationTexture`,e=>e.transformationTexture)):(p.uniforms.add(new i(`transformWorldFromModelTH`,e=>e.transformWorldFromModelTH),new i(`transformWorldFromModelTL`,e=>e.transformWorldFromModelTL)),b&&p.uniforms.add(new l(`transformWorldFromModelRS`,e=>e.transformWorldFromModelRS))),p.code.add(s`
3
+ ${o(b,s`
4
4
  mat3 modelTransformation() {
5
- ${a(_,o`
5
+ ${o(_,s`
6
6
  return mat3(
7
7
  texelFetch(transformationTexture, ivec2(2, transformationDrawId), 0).xyz,
8
8
  texelFetch(transformationTexture, ivec2(3, transformationDrawId), 0).xyz,
9
9
  texelFetch(transformationTexture, ivec2(4, transformationDrawId), 0).xyz
10
- );`,o`return transformWorldFromModelRS;`)}
10
+ );`,s`return transformWorldFromModelRS;`)}
11
11
  }
12
12
  `)}
13
13
 
14
14
  vec3 originL() {
15
- return ${a(_,o`texelFetch(transformationTexture, ivec2(0, transformationDrawId), 0).xyz;`,o`transformWorldFromModelTL;`)}
15
+ return ${o(_,s`texelFetch(transformationTexture, ivec2(0, transformationDrawId), 0).xyz;`,s`transformWorldFromModelTL;`)}
16
16
  }
17
17
 
18
18
  vec3 originH() {
19
- return ${a(_,o`texelFetch(transformationTexture, ivec2(1, transformationDrawId), 0).xyz;`,o`transformWorldFromModelTH;`)};
19
+ return ${o(_,s`texelFetch(transformationTexture, ivec2(1, transformationDrawId), 0).xyz;`,s`transformWorldFromModelTH;`)};
20
20
  }
21
21
 
22
22
  vec3 positionWorldCameraRelative() {
23
23
 
24
- vec3 rotatedModelPosition = ${a(v,o`modelTransformation() *`)} position;
24
+ vec3 rotatedModelPosition = ${o(v,s`modelTransformation() *`)} position;
25
25
 
26
26
  vec3 transform_CameraRelativeFromModel = dpAdd(
27
27
  originL(),
@@ -34,20 +34,20 @@ import{create as e}from"../../../../../../core/libs/gl-matrix-2/factories/mat3f6
34
34
  }
35
35
 
36
36
  vec3 positionForDraping() {
37
- return ${a(y,o`modelTransformation() *`)} position;
37
+ return ${o(y,s`modelTransformation() *`)} position;
38
38
  }
39
- `),p.code.add(o`
39
+ `),p.code.add(s`
40
40
  void forwardPosition(float fOffset) {
41
41
  vPositionWorldCameraRelative = positionWorldCameraRelative();
42
42
  if (fOffset != 0.0) {
43
- vPositionWorldCameraRelative += fOffset * ${t.spherical?o`normalize(transformWorldFromViewTL + vPositionWorldCameraRelative)`:o`vec3(0.0, 0.0, 1.0)`};
43
+ vPositionWorldCameraRelative += fOffset * ${t.spherical?s`normalize(transformWorldFromViewTL + vPositionWorldCameraRelative)`:s`vec3(0.0, 0.0, 1.0)`};
44
44
  }
45
45
 
46
46
  vPosition_view = transformViewFromCameraRelativeRS * vPositionWorldCameraRelative;
47
- gl_Position = transformProjFromView * vec4(vPosition_view, 1.0);
47
+ gl_Position = proj * vec4(vPosition_view, 1.0);
48
48
  }
49
- `),h.uniforms.add(new i(`transformWorldFromViewTL`,e=>e.transformWorldFromViewTL)),p.code.add(o`vec3 positionWorld() {
49
+ `),h.uniforms.add(new a(`transformWorldFromViewTL`,e=>e.transformWorldFromViewTL)),p.code.add(s`vec3 positionWorld() {
50
50
  return transformWorldFromViewTL + vPositionWorldCameraRelative;
51
- }`),h.code.add(o`vec3 positionWorld() {
51
+ }`),h.code.add(s`vec3 positionWorld() {
52
52
  return transformWorldFromViewTL + vPositionWorldCameraRelative;
53
53
  }`)}class g extends p{constructor(){super(...arguments),this.transformWorldFromViewTH=t(),this.transformWorldFromViewTL=t(),this.transformViewFromCameraRelativeRS=e()}}class _ extends p{constructor(){super(...arguments),this.transformWorldFromModelRS=e(),this.transformWorldFromModelTH=t(),this.transformWorldFromModelTL=t(),this.transformationDrawId=0}}export{h as VertexPosition,m as VertexPositionConfiguration,_ as VertexPositionDrawParameters,g as VertexPositionPassParameters};
@@ -0,0 +1,2 @@
1
+ /* COPYRIGHT Esri - https://js.arcgis.com/6.0/LICENSE.txt */
2
+ import{Texture2DBindUniform as e}from"../shaderModules/Texture2DBindUniform.js";const t=new e(`depthMap`,e=>e.depth?.attachment),n=new e(`mainDepth`,e=>e.mainDepth),r=new e(`waterNormals`,e=>e.overlay?.getTexture(3)),i=new e(`shadowHighlight`,e=>e.shadowHighlight?.getTexture());export{t as depthMap,n as mainDepth,i as shadowHighlight,r as waterNormals};
@@ -1,5 +1,5 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/6.0/LICENSE.txt */
2
- import{addVerticalOffset as e}from"../attributes/VerticalOffset.glsl.js";import{viewport as t,viewNormal as n}from"../util/cameraUniforms.js";import{ScreenSizePerspective as r,addScreenSizePerspectiveAlignment as i}from"../util/ScreenSizePerspective.glsl.js";import{addProjViewLocalOrigin as a,addCameraPosition as o,addPixelRatio as s}from"../util/View.glsl.js";import{FloatBindUniform as c}from"../../shaderModules/FloatBindUniform.js";import{FloatPassUniform as l}from"../../shaderModules/FloatPassUniform.js";import{glsl as u}from"../../shaderModules/glsl.js";const d=.5;function f(f,p){let m=f.vertex;f.include(r),f.attributes.add(`position`,`vec3`),f.vertex.inputs.add(`position`,()=>`position`),f.attributes.add(`normal`,`vec3`),p.hasVertexCenterOffset?f.attributes.add(`centerOffset`,`vec3`):m.constants.add(`centerOffset`,`vec3`,[0,0,0]),f.attributes.add(`groundDistance`,`float`),a(m,p),o(m,p),m.uniforms.add(t,new l(`polygonOffset`,e=>e.shaderPolygonOffset),new c(`aboveGround`,e=>e.camera.aboveGround?1:-1)),p.hasVerticalOffset&&e(m),m.code.add(u`struct ProjectHUDAux {
2
+ import{addVerticalOffset as e}from"../attributes/VerticalOffset.glsl.js";import{viewport as t,viewNormal as n,pixelRatio as r}from"../util/cameraUniforms.js";import{ScreenSizePerspective as i,addScreenSizePerspectiveAlignment as a}from"../util/ScreenSizePerspective.glsl.js";import{addProjViewLocalOrigin as o,addCameraPosition as s}from"../util/View.glsl.js";import{FloatBindUniform as c}from"../../shaderModules/FloatBindUniform.js";import{FloatPassUniform as l}from"../../shaderModules/FloatPassUniform.js";import{glsl as u}from"../../shaderModules/glsl.js";const d=.5;function f(f,p){let m=f.vertex;f.include(i),f.attributes.add(`position`,`vec3`),f.vertex.inputs.add(`position`,()=>`position`),f.attributes.add(`normal`,`vec3`),p.hasVertexCenterOffset?f.attributes.add(`centerOffset`,`vec3`):m.constants.add(`centerOffset`,`vec3`,[0,0,0]),f.attributes.add(`groundDistance`,`float`),o(m,p),s(m,p),m.uniforms.add(t,new l(`polygonOffset`,e=>e.shaderPolygonOffset),new c(`aboveGround`,e=>e.camera.aboveGround?1:-1)),p.hasVerticalOffset&&e(m),m.code.add(u`struct ProjectHUDAux {
3
3
  vec3 posModel;
4
4
  vec3 posView;
5
5
  vec3 vnormal;
@@ -39,7 +39,7 @@ return groundRelative;
39
39
  posModel += modelOffset;
40
40
  posView += viewOffset;
41
41
  }
42
- `)),p.screenCenterOffsetUnitsEnabled&&s(m),p.hasScreenSizePerspective&&i(m),m.code.add(u`
42
+ `)),p.screenCenterOffsetUnitsEnabled&&m.uniforms.add(r),p.hasScreenSizePerspective&&a(m),m.code.add(u`
43
43
  vec4 projectPositionHUD(out ProjectHUDAux aux) {
44
44
  float pointGroundDistance = groundDistance;
45
45
  aux.posModel = position;
@@ -0,0 +1,2 @@
1
+ /* COPYRIGHT Esri - https://js.arcgis.com/6.0/LICENSE.txt */
2
+ import{Texture2DBindUniform as e}from"../shaderModules/Texture2DBindUniform.js";const t=new e(`lastFrameColorTexture`,e=>e.reprojection.lastFrameColor?.getTexture());export{t as lastFrameColorTexture};
@@ -1,5 +1,5 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/6.0/LICENSE.txt */
2
- import{HighlightReadBitmap as e}from"../HighlightReadBitmap.glsl.js";import{glsl as t}from"../../shaderModules/glsl.js";import{Integer2BindUniform as n}from"../../shaderModules/Integer2BindUniform.js";import{IntegerBindUniform as r}from"../../shaderModules/IntegerBindUniform.js";import{Texture2DBindUniform as i}from"../../shaderModules/Texture2DBindUniform.js";import{Texture2DUintBindUniform as a}from"../../shaderModules/Texture2DUintBindUniform.js";function o(o,s){let{fragment:c}=o,{output:l,draped:u,hasHighlightMixTexture:d}=s;l===10?(c.uniforms.add(new r(`highlightLevel`,e=>e.highlightLevel??0),new n(`highlightMixOrigin`,e=>e.highlightMixOrigin)),o.outputs.add(`fragHighlight`,`uvec2`,0),o.include(e),d?c.uniforms.add(new a(`highlightMixTexture`,e=>e.highlightMixTexture)).code.add(t`uvec2 getAccumulatedHighlight() {
2
+ import{mainDepth as e}from"../bindUniforms.js";import{HighlightReadBitmap as t}from"../HighlightReadBitmap.glsl.js";import{glsl as n}from"../../shaderModules/glsl.js";import{Integer2BindUniform as r}from"../../shaderModules/Integer2BindUniform.js";import{IntegerBindUniform as i}from"../../shaderModules/IntegerBindUniform.js";import{Texture2DUintBindUniform as a}from"../../shaderModules/Texture2DUintBindUniform.js";function o(o,s){let{fragment:c}=o,{output:l,draped:u,hasHighlightMixTexture:d}=s;l===10?(c.uniforms.add(new i(`highlightLevel`,e=>e.highlightLevel??0),new r(`highlightMixOrigin`,e=>e.highlightMixOrigin)),o.outputs.add(`fragHighlight`,`uvec2`,0),o.include(t),d?c.uniforms.add(new a(`highlightMixTexture`,e=>e.highlightMixTexture)).code.add(n`uvec2 getAccumulatedHighlight() {
3
3
  return texelFetch(highlightMixTexture, ivec2(gl_FragCoord.xy) - highlightMixOrigin, 0).rg;
4
4
  }
5
5
  void outputHighlight(bool occluded) {
@@ -19,14 +19,14 @@ uvec2 combinedHighlight = getAccumulatedHighlight();
19
19
  combinedHighlight[li] |= bits;
20
20
  fragHighlight = combinedHighlight;
21
21
  }
22
- }`):c.code.add(t`void outputHighlight(bool occluded) {
22
+ }`):c.code.add(n`void outputHighlight(bool occluded) {
23
23
  uint bits = occluded ? 3u : 1u;
24
24
  fragHighlight = uvec2(bits, 0);
25
- }`),u?c.code.add(t`bool isHighlightOccluded() {
25
+ }`),u?c.code.add(n`bool isHighlightOccluded() {
26
26
  return false;
27
- }`):c.uniforms.add(new i(`depthTexture`,e=>e.mainDepth)).code.add(t`bool isHighlightOccluded() {
28
- float sceneDepth = texelFetch(depthTexture, ivec2(gl_FragCoord.xy), 0).x;
27
+ }`):c.uniforms.add(e).code.add(n`bool isHighlightOccluded() {
28
+ float sceneDepth = texelFetch(mainDepth, ivec2(gl_FragCoord.xy), 0).x;
29
29
  return gl_FragCoord.z > sceneDepth + 5e-7;
30
- }`),c.code.add(t`void calculateOcclusionAndOutputHighlight() {
30
+ }`),c.code.add(n`void calculateOcclusionAndOutputHighlight() {
31
31
  outputHighlight(isHighlightOccluded());
32
- }`)):c.code.add(t`void calculateOcclusionAndOutputHighlight() {}`)}export{o as OutputHighlight};
32
+ }`)):c.code.add(n`void calculateOcclusionAndOutputHighlight() {}`)}export{o as OutputHighlight};