@arcgis/core 6.0.0-next.7 → 6.0.0-next.9

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 (430) hide show
  1. package/arcade/featureSetUtils.js +1 -1
  2. package/assets/esri/core/workers/RemoteClient.js +1 -1
  3. package/assets/esri/core/workers/chunks/{85908e6e9c50749cee60.js → 037a8cc19debbaaa4e10.js} +1 -1
  4. package/assets/esri/core/workers/chunks/066550852483ab8f77bc.js +1 -0
  5. package/assets/esri/core/workers/chunks/0f725cf79ce00e790a7d.js +1 -0
  6. package/assets/esri/core/workers/chunks/12a7997a40c77f5c9160.js +1 -0
  7. package/assets/esri/core/workers/chunks/1b077c92345ffb5916c2.js +1 -0
  8. package/assets/esri/core/workers/chunks/{6dd0b79fa3a629ab4f27.js → 1bca39e0e651426bdbb5.js} +1 -1
  9. package/assets/esri/core/workers/chunks/1c0c5cb13c2590aae906.js +1 -0
  10. package/assets/esri/core/workers/chunks/1e0d2715d603f48a7e0b.js +1 -0
  11. package/assets/esri/core/workers/chunks/2686fe5b62dd0be699c0.js +1 -0
  12. package/assets/esri/core/workers/chunks/2a97268000c6d03ef720.js +1 -0
  13. package/assets/esri/core/workers/chunks/2d9a1f23ec6ce90723ac.js +1 -0
  14. package/assets/esri/core/workers/chunks/2e2e33ec50e97b91b178.js +1 -0
  15. package/assets/esri/core/workers/chunks/{7a05b18f655c1167ce0a.js → 2ef5237e4c876d6a4ee0.js} +1 -1
  16. package/assets/esri/core/workers/chunks/{776ae25a34352d3468bc.js → 3081ee6d8019494fc21e.js} +1 -1
  17. package/assets/esri/core/workers/chunks/37d6a264a3f1d8072aa0.js +1 -0
  18. package/assets/esri/core/workers/chunks/3b3e519f15ed52c83f0c.js +1 -0
  19. package/assets/esri/core/workers/chunks/3c0ed15b544df6fb0903.js +1 -0
  20. package/assets/esri/core/workers/chunks/3df5500a85345577480a.js +1 -0
  21. package/assets/esri/core/workers/chunks/{801e9e66edb4961461eb.js → 40a584cb952e94326e9e.js} +1 -1
  22. package/assets/esri/core/workers/chunks/{1ba0dfbe0958cdbd7c9f.js → 42fd2a7b22b03dacc6a7.js} +1 -1
  23. package/assets/esri/core/workers/chunks/444e5f214abce3d607cd.js +1 -0
  24. package/assets/esri/core/workers/chunks/{d201fbf3ceff946d2bd6.js → 44d5508042cacdfcac47.js} +1 -1
  25. package/assets/esri/core/workers/chunks/4503b20ca6a80fb63d72.js +1 -0
  26. package/assets/esri/core/workers/chunks/45367aa8e5c5d574de94.js +1 -0
  27. package/assets/esri/core/workers/chunks/45800373650fbc8262e6.js +1 -0
  28. package/assets/esri/core/workers/chunks/{6a7ab1ef9a37e87db5ae.js → 46a7da93a63663878583.js} +1 -1
  29. package/assets/esri/core/workers/chunks/{f43a50d4bd9636e68ae5.js → 46b4fb6a7fe4877b0efc.js} +63 -61
  30. package/assets/esri/core/workers/chunks/47d074136a7f8e551a9a.js +1 -0
  31. package/assets/esri/core/workers/chunks/{257910cca66dc5df465e.js → 4911ce62421a6c3320b0.js} +1 -1
  32. package/assets/esri/core/workers/chunks/4a1e23e021bac37a88ab.js +1 -0
  33. package/assets/esri/core/workers/chunks/4a6b92ecbb1f1c55cc43.js +1 -0
  34. package/assets/esri/core/workers/chunks/4debf2d9c3465250ef7a.js +1 -0
  35. package/assets/esri/core/workers/chunks/4e544de61f07ca660236.js +1 -0
  36. package/assets/esri/core/workers/chunks/4e8e322b469657ac22e2.js +1 -0
  37. package/assets/esri/core/workers/chunks/54b18559280a7d2a8d93.js +1 -0
  38. package/assets/esri/core/workers/chunks/567a65f4203f6e81f4b4.js +1 -0
  39. package/assets/esri/core/workers/chunks/5c7780f804d789cb37f5.js +1 -0
  40. package/assets/esri/core/workers/chunks/606ea251075fe81a1206.js +1 -0
  41. package/assets/esri/core/workers/chunks/{ceb680688fe7e570a774.js → 608be1172a908e92b9f1.js} +1 -1
  42. package/assets/esri/core/workers/chunks/{6f358116f79021ff9687.js → 612104dff305ff062dfa.js} +2 -2
  43. package/assets/esri/core/workers/chunks/6299be5e7e26bf3c6859.js +1 -0
  44. package/assets/esri/core/workers/chunks/6400446b7615b97c3521.js +1 -0
  45. package/assets/esri/core/workers/chunks/6431480ba0fa8c8d487f.js +1 -0
  46. package/assets/esri/core/workers/chunks/68be3fb88ca61f82fb90.js +1 -0
  47. package/assets/esri/core/workers/chunks/6c9266120d46e8c69dbf.js +1 -0
  48. package/assets/esri/core/workers/chunks/6c9acd9e4e201dc380e9.js +1 -0
  49. package/assets/esri/core/workers/chunks/709e019885822b1f6f3e.js +1 -0
  50. package/assets/esri/core/workers/chunks/7449568eb2305bf2d650.js +1 -0
  51. package/assets/esri/core/workers/chunks/745a153d0cd34faa124e.js +1 -0
  52. package/assets/esri/core/workers/chunks/7572c2bc5062e66f6330.js +1 -0
  53. package/assets/esri/core/workers/chunks/78472a57c2ba146fec65.js +1 -0
  54. package/assets/esri/core/workers/chunks/7f0f9dddc44b1f1600f0.js +1 -0
  55. package/assets/esri/core/workers/chunks/{56a24061589f4a968818.js → 814751e705c05099f864.js} +1 -1
  56. package/assets/esri/core/workers/chunks/8293600f94553afc8c38.js +1 -0
  57. package/assets/esri/core/workers/chunks/836bb3673ab30fc66f1e.js +1 -0
  58. package/assets/esri/core/workers/chunks/8487727f1197cf7dbf50.js +1 -0
  59. package/assets/esri/core/workers/chunks/{4d3f97a48046021713a6.js → 88e54449261ef94e390d.js} +1 -1
  60. package/assets/esri/core/workers/chunks/8b0d5551978ab0aac0d1.js +1 -0
  61. package/assets/esri/core/workers/chunks/8bea0d706ede6f84f8aa.js +1 -0
  62. package/assets/esri/core/workers/chunks/8d0c2de92770a1567536.js +1 -0
  63. package/assets/esri/core/workers/chunks/900181f68449d8f82eeb.js +1 -0
  64. package/assets/esri/core/workers/chunks/939942b00ba380e2957e.js +1 -0
  65. package/assets/esri/core/workers/chunks/{c76c42c74eedd43263d3.js → 9dd1fc56eb1ea6eb705e.js} +1 -1
  66. package/assets/esri/core/workers/chunks/{86a051e9fe71aa356108.js → 9e3e442a9874ed23a043.js} +1 -1
  67. package/assets/esri/core/workers/chunks/a40b6d8b5c73e06e14d4.js +1 -0
  68. package/assets/esri/core/workers/chunks/{1ba1f705b6ce5c8ea702.js → a655ebdb4bf0660615a2.js} +1 -1
  69. package/assets/esri/core/workers/chunks/aaba33611753c6aada68.js +1 -0
  70. package/assets/esri/core/workers/chunks/aeaaff7a4b1a99540f52.js +1 -0
  71. package/assets/esri/core/workers/chunks/af349c7bc8ef41a0e1bd.js +1 -0
  72. package/assets/esri/core/workers/chunks/{ecaac39dde7ec4213264.js → af75747b06d79446a855.js} +1 -1
  73. package/assets/esri/core/workers/chunks/b564ec4e03478f5659db.js +1 -0
  74. package/assets/esri/core/workers/chunks/bc0f54a2c15502b630ec.js +1 -0
  75. package/assets/esri/core/workers/chunks/c1c534e08fc21842670b.js +1 -0
  76. package/assets/esri/core/workers/chunks/{9ab25ee06041f907b9a2.js → c2c1f51a4668055c2838.js} +1 -1
  77. package/assets/esri/core/workers/chunks/c337fc0e6dc69c233e6d.js +1 -0
  78. package/assets/esri/core/workers/chunks/{a7985d20fa6e8d4878e7.js → d0f5bee9db1ad51ae687.js} +1 -1
  79. package/assets/esri/core/workers/chunks/d6ad4390df576198e45b.js +1 -0
  80. package/assets/esri/core/workers/chunks/dba280c370df13196711.js +1 -0
  81. package/assets/esri/core/workers/chunks/{c18189710d6198516175.js → de5ecb567bd69c613e9d.js} +1 -1
  82. package/assets/esri/core/workers/chunks/{534186fc921a0ccf58dc.js → e1f5d00878f27e1d413e.js} +1 -1
  83. package/assets/esri/core/workers/chunks/e65dfa19f030ec298437.js +1 -0
  84. package/assets/esri/core/workers/chunks/e932951598499befabf5.js +1 -0
  85. package/assets/esri/core/workers/chunks/f122c18af10e56f9ec2b.js +1 -0
  86. package/assets/esri/core/workers/chunks/f1df76f098a3cc924832.js +1 -0
  87. package/assets/esri/core/workers/chunks/f1f90adae13b04898008.js +1 -0
  88. package/assets/esri/core/workers/chunks/f4f9d08b2df856e3b694.js +1 -0
  89. package/assets/esri/core/workers/chunks/{711cfb84659cb4437679.js → f528ac5c648ca6a98582.js} +1 -1
  90. package/assets/esri/core/workers/chunks/f92364afaefbac7e8f77.js +1 -0
  91. package/assets/esri/core/workers/chunks/fc44227c1756f65b95df.js +1 -0
  92. package/assets/esri/core/workers/chunks/{72019baeba520edb6bb0.js → fc44d45598a7476bc606.js} +1 -1
  93. package/assets/esri/themes/base/_mixins.scss +2 -2
  94. package/assets/esri/themes/base/widgets/_Attribution.scss +1 -1
  95. package/assets/esri/themes/base/widgets/_BasemapLayerList.scss +2 -2
  96. package/assets/esri/themes/base/widgets/_BatchAttributeForm.scss +5 -5
  97. package/assets/esri/themes/base/widgets/_Bookmarks.scss +1 -1
  98. package/assets/esri/themes/base/widgets/_BuildingLevelPicker.scss +2 -2
  99. package/assets/esri/themes/base/widgets/_BuildingPhasePicker.scss +5 -5
  100. package/assets/esri/themes/base/widgets/_CatalogLayerList.scss +1 -1
  101. package/assets/esri/themes/base/widgets/_Compass.scss +0 -2
  102. package/assets/esri/themes/base/widgets/_DirectionalPad.scss +4 -10
  103. package/assets/esri/themes/base/widgets/_Directions.scss +40 -40
  104. package/assets/esri/themes/base/widgets/_Editor.scss +7 -7
  105. package/assets/esri/themes/base/widgets/_Expand.scss +1 -1
  106. package/assets/esri/themes/base/widgets/_Feature.scss +1 -1
  107. package/assets/esri/themes/base/widgets/_FeatureForm.scss +6 -6
  108. package/assets/esri/themes/base/widgets/_FeatureFormUtilityNetworkAssociationLayers.scss +1 -1
  109. package/assets/esri/themes/base/widgets/_FeatureFormUtilityNetworkAssociationList.scss +1 -1
  110. package/assets/esri/themes/base/widgets/_FeatureFormUtilityNetworkAssociationSettings.scss +3 -3
  111. package/assets/esri/themes/base/widgets/_FeatureTable.scss +27 -27
  112. package/assets/esri/themes/base/widgets/_FeatureTemplates.scss +1 -1
  113. package/assets/esri/themes/base/widgets/_Features.scss +5 -5
  114. package/assets/esri/themes/base/widgets/_FilterBuilder.scss +1 -1
  115. package/assets/esri/themes/base/widgets/_FilterCondition.scss +1 -1
  116. package/assets/esri/themes/base/widgets/_Grid.scss +18 -18
  117. package/assets/esri/themes/base/widgets/_GridControls.scss +11 -11
  118. package/assets/esri/themes/base/widgets/_LayerList.scss +1 -1
  119. package/assets/esri/themes/base/widgets/_Legend.scss +5 -5
  120. package/assets/esri/themes/base/widgets/_NavigationToggle.scss +4 -1
  121. package/assets/esri/themes/base/widgets/_OrientedImageryViewer.scss +18 -19
  122. package/assets/esri/themes/base/widgets/_ResponsiveToolbar.scss +0 -2
  123. package/assets/esri/themes/base/widgets/_SearchResultRenderer.scss +1 -1
  124. package/assets/esri/themes/base/widgets/_SelectionList.scss +15 -15
  125. package/assets/esri/themes/base/widgets/_SelectionToolbar.scss +2 -2
  126. package/assets/esri/themes/base/widgets/_ShadowCast.scss +11 -11
  127. package/assets/esri/themes/base/widgets/_Sketch.scss +1 -1
  128. package/assets/esri/themes/base/widgets/_Slice.scss +3 -3
  129. package/assets/esri/themes/base/widgets/_SnappingControls.scss +1 -1
  130. package/assets/esri/themes/base/widgets/_TimeSlider.scss +5 -5
  131. package/assets/esri/themes/base/widgets/_TimeZoneLabel.scss +5 -4
  132. package/assets/esri/themes/base/widgets/_Tooltip.scss +14 -17
  133. package/assets/esri/themes/base/widgets/_UtilityNetworkAssociations.scss +2 -2
  134. package/assets/esri/themes/base/widgets/_UtilityNetworkTrace.scss +1 -1
  135. package/assets/esri/themes/base/widgets/_UtilityNetworkValidateTopology.scss +2 -2
  136. package/assets/esri/themes/base/widgets/_ValuePicker.scss +2 -2
  137. package/assets/esri/themes/base/widgets/_VideoPlayer.scss +5 -5
  138. package/assets/esri/themes/base/widgets/_Widget.scss +5 -1
  139. package/assets/esri/themes/dark/main.css +1 -1
  140. package/assets/esri/themes/light/main.css +1 -1
  141. package/assets/esri/themes/light/view.css +1 -1
  142. package/chunks/AtmosphereCompositing.glsl.js +1 -1
  143. package/chunks/ChapmanAtmosphere.glsl.js +3 -3
  144. package/chunks/CloudsComposition.glsl.js +1 -1
  145. package/chunks/Component.glsl.js +41 -41
  146. package/chunks/DefaultMaterial.glsl.js +2 -2
  147. package/chunks/EdgeShader.glsl.js +9 -9
  148. package/chunks/Fog.glsl.js +5 -5
  149. package/chunks/GaussianSplat.glsl.js +2 -2
  150. package/chunks/GlobalIllumination.glsl.js +9 -9
  151. package/chunks/HUDMaterial.glsl.js +13 -13
  152. package/chunks/Haze.glsl.js +6 -6
  153. package/chunks/HazeCompositing.glsl.js +1 -1
  154. package/chunks/LaserlinePath.glsl.js +6 -6
  155. package/chunks/LineCallout.glsl.js +1 -1
  156. package/chunks/LineMarker.glsl.js +5 -5
  157. package/chunks/NavigationDepth.glsl.js +2 -2
  158. package/chunks/Path.glsl.js +1 -1
  159. package/chunks/Pattern.glsl.js +26 -26
  160. package/chunks/Precipitation.glsl.js +7 -7
  161. package/chunks/RealisticTree.glsl.js +2 -2
  162. package/chunks/RibbonLine.glsl.js +60 -60
  163. package/chunks/ShadowCastAccumulate.glsl.js +1 -1
  164. package/chunks/ShadowHighlight.glsl.js +5 -5
  165. package/chunks/ShadowHighlightBuffer.glsl.js +1 -1
  166. package/chunks/SimpleAtmosphere.glsl.js +4 -4
  167. package/chunks/Terrain.glsl.js +29 -32
  168. package/chunks/Viewshed.glsl.js +2 -2
  169. package/chunks/Water.glsl.js +2 -2
  170. package/config.js +1 -1
  171. package/core/Loadable.js +1 -1
  172. package/form/elements/inputs/DynamicChoiceInput.d.ts +35 -5
  173. package/geometry/HeightModelInfo.js +1 -1
  174. package/geometry/support/meshUtils.d.ts +1 -1
  175. package/geometry/support/scaleUtils.js +1 -1
  176. package/kernel.js +1 -1
  177. package/layers/BaseDynamicLayer.d.ts +1 -0
  178. package/layers/BaseElevationLayer.d.ts +2 -0
  179. package/layers/BaseTileLayer.d.ts +12 -9
  180. package/layers/CSVLayer.d.ts +0 -15
  181. package/layers/FeatureLayer.d.ts +2 -15
  182. package/layers/GeoJSONLayer.d.ts +0 -52
  183. package/layers/GeoRSSLayer.d.ts +0 -44
  184. package/layers/ParquetLayer.d.ts +93 -12
  185. package/layers/ParquetLayer.js +1 -1
  186. package/layers/SketchLayer.d.ts +0 -1
  187. package/layers/VectorTileLayer.d.ts +2 -12
  188. package/layers/graphics/sources/support/ParquetSourceWorker.js +1 -1
  189. package/layers/mixins/PortalLayer.js +1 -1
  190. package/layers/mixins/RefreshableLayer.d.ts +1 -3
  191. package/layers/mixins/ScaleRangeLayer.js +1 -1
  192. package/layers/mixins/SublayersOwner.js +1 -1
  193. package/layers/raster/datasets/GeospatialPDFRaster.js +1 -1
  194. package/layers/raster/datasets/TIFFRaster.js +1 -1
  195. package/layers/raster/formats/tiffParser.js +1 -1
  196. package/layers/support/ParquetPortalItemData.d.ts +2 -0
  197. package/layers/support/ParquetPortalItemData.js +1 -1
  198. package/layers/support/PortalItemData.d.ts +21 -0
  199. package/layers/support/PortalItemData.js +1 -1
  200. package/layers/support/Sublayer.js +1 -1
  201. package/layers/support/SubtypeSublayer.js +1 -1
  202. package/layers/support/layersLoader.js +1 -1
  203. package/layers/support/parquetUtils.d.ts +1 -1
  204. package/layers/support/types.d.ts +1 -1
  205. package/package.json +2 -2
  206. package/popup/FeaturesModel.d.ts +27 -6
  207. package/popup/FeaturesModel.js +1 -1
  208. package/portal/support/layersLoader.js +1 -1
  209. package/portal/support/portalLayers.js +1 -1
  210. package/rest/print.js +1 -1
  211. package/rest/support/printTaskUtils.js +1 -1
  212. package/symbols/cim/CIMSymbolHelper.js +1 -1
  213. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/hittestUtils.js +1 -1
  214. package/views/2d/engine/webgl/shaderGraph/techniques/text/TextShader.js +1 -1
  215. package/views/2d/interactive/snapping/featureSources/featureServiceSource/FeatureServiceTiles2D.js +1 -1
  216. package/views/2d/layers/FeatureLikeLayerView2D.js +1 -1
  217. package/views/2d/layers/LayerView2D.js +1 -1
  218. package/views/2d/layers/features/layerAdapters/ParquetLayerAdapter.js +1 -1
  219. package/views/2d/layers/features/sources/FeatureSource.js +1 -1
  220. package/views/2d/layers/features/sources/FeatureSourceQueryInfo.js +1 -1
  221. package/views/2d/layers/features/sources/strategies/ParquetTileLoadStrategy.js +1 -1
  222. package/views/3d/analysis/ShadowCast/ShadowCastTooltip.js +1 -1
  223. package/views/3d/analysis/ShadowCastAnalysisView3D.js +1 -1
  224. package/views/3d/analysis/Viewshed/ViewshedPlacementController.js +1 -1
  225. package/views/3d/analysis/Viewshed/types.d.ts +3 -1
  226. package/views/3d/environment/Environment.d.ts +2 -2
  227. package/views/3d/environment/Environment.js +1 -1
  228. package/views/3d/environment/EnvironmentView.js +2 -0
  229. package/views/3d/interactive/editingTools/originGeometryVisualElementUtils.js +1 -1
  230. package/views/3d/layers/BuildingComponentSublayerView3D.js +1 -1
  231. package/views/3d/layers/BuildingSceneLayerView3D.js +1 -1
  232. package/views/3d/layers/DynamicLayerView3D.js +1 -1
  233. package/views/3d/layers/FeatureLikeLayerViewBase3D.js +1 -1
  234. package/views/3d/layers/FlowSubView3D.js +1 -1
  235. package/views/3d/layers/GaussianSplatLayerView3D.js +1 -1
  236. package/views/3d/layers/GraphicsLayerView3D.js +1 -1
  237. package/views/3d/layers/IntegratedMesh3DTilesLayerView3D.js +1 -1
  238. package/views/3d/layers/IntegratedMeshLayerView3D.js +1 -1
  239. package/views/3d/layers/MediaLayerView3D.js +1 -1
  240. package/views/3d/layers/PointCloudLayerView3D.js +1 -1
  241. package/views/3d/layers/RouteLayerView3D.js +1 -1
  242. package/views/3d/layers/SceneLayerGraphicsView3D.js +1 -1
  243. package/views/3d/layers/SceneLayerView3D.js +1 -1
  244. package/views/3d/layers/TiledLayerView3D.js +1 -1
  245. package/views/3d/layers/VoxelLayerView3D.js +1 -1
  246. package/views/3d/layers/graphics/Deconflictor.js +1 -1
  247. package/views/3d/layers/graphics/ElevationAligners.js +1 -1
  248. package/views/3d/layers/graphics/Graphics3DBufferGraphicLayer.js +2 -0
  249. package/views/3d/layers/graphics/Graphics3DCore.js +1 -1
  250. package/views/3d/layers/graphics/Graphics3DDrapedBufferGraphicLayer.js +2 -0
  251. package/views/3d/layers/graphics/Graphics3DDrapedGraphicLayer.js +1 -1
  252. package/views/3d/layers/graphics/Graphics3DDrapedGraphicLayerBase.js +2 -0
  253. package/views/3d/layers/graphics/Graphics3DGraphic.js +1 -1
  254. package/views/3d/layers/graphics/Graphics3DIconSymbolLayer.js +1 -1
  255. package/views/3d/layers/graphics/Graphics3DObject3DGraphicLayer.js +1 -1
  256. package/views/3d/layers/graphics/Graphics3DScaleVisibility.js +1 -1
  257. package/views/3d/layers/graphics/Graphics3DStageObjectGraphicLayer.js +2 -0
  258. package/views/3d/layers/graphics/Graphics3DSymbol.js +1 -1
  259. package/views/3d/layers/graphics/LabelInfo.js +1 -1
  260. package/views/3d/layers/graphics/Labeler.js +1 -1
  261. package/views/3d/layers/graphics/elevationAlignmentUtils.js +1 -1
  262. package/views/3d/layers/graphics/pointUtils.js +1 -1
  263. package/views/3d/layers/support/FeatureTile.js +1 -1
  264. package/views/3d/layers/support/HeatmapFeatureProcessor.js +1 -1
  265. package/views/3d/layers/support/SampledGeometryMaxDistanceRatio.js +1 -1
  266. package/views/3d/support/popupHitTest.js +1 -1
  267. package/views/3d/terrain/OverlayManager.js +1 -1
  268. package/views/3d/terrain/OverlayRenderer.js +1 -1
  269. package/views/3d/webgl-engine/collections/Component/Material/Component.glsl.js +1 -1
  270. package/views/3d/webgl-engine/core/shaderLibrary/Laserline.glsl.js +5 -5
  271. package/views/3d/webgl-engine/core/shaderLibrary/attributes/VertexPosition.glsl.js +13 -13
  272. package/views/3d/webgl-engine/core/shaderLibrary/bindUniforms.js +2 -0
  273. package/views/3d/webgl-engine/core/shaderLibrary/hud/HUD.glsl.js +2 -2
  274. package/views/3d/webgl-engine/core/shaderLibrary/lastFrameUniforms.js +2 -0
  275. package/views/3d/webgl-engine/core/shaderLibrary/output/OutputHighlight.glsl.js +7 -7
  276. package/views/3d/webgl-engine/core/shaderLibrary/shading/EvaluateSceneLighting.glsl.js +29 -27
  277. package/views/3d/webgl-engine/core/shaderLibrary/shading/LineStipple.glsl.js +4 -4
  278. package/views/3d/webgl-engine/core/shaderLibrary/shading/MainLighting.glsl.js +2 -2
  279. package/views/3d/webgl-engine/core/shaderLibrary/shading/MarkerSizing.glsl.js +14 -14
  280. package/views/3d/webgl-engine/core/shaderLibrary/shading/NormalUtils.glsl.js +1 -1
  281. package/views/3d/webgl-engine/core/shaderLibrary/shading/ScreenSpaceRayMarching.glsl.js +5 -5
  282. package/views/3d/webgl-engine/core/shaderLibrary/shading/WaterColor.glsl.js +8 -8
  283. package/views/3d/webgl-engine/core/shaderLibrary/shading/evaluateSceneLightingFragment.glsl.js +1 -1
  284. package/views/3d/webgl-engine/core/shaderLibrary/shading/lightingUniforms.js +2 -0
  285. package/views/3d/webgl-engine/core/shaderLibrary/shading/pbrGlobals.glsl.js +1 -1
  286. package/views/3d/webgl-engine/core/shaderLibrary/shading/readShadow.glsl.js +6 -6
  287. package/views/3d/webgl-engine/core/shaderLibrary/terrain/Overlay.glsl.js +1 -1
  288. package/views/3d/webgl-engine/core/shaderLibrary/util/CloudsParallaxShading.glsl.js +3 -3
  289. package/views/3d/webgl-engine/core/shaderLibrary/util/View.glsl.js +1 -1
  290. package/views/3d/webgl-engine/core/shaderLibrary/util/cameraUniforms.js +1 -1
  291. package/views/3d/webgl-engine/effects/WeatherFader.js +1 -1
  292. package/views/3d/webgl-engine/effects/atmosphere/ChapmanApproximation.glsl.js +3 -3
  293. package/views/3d/webgl-engine/effects/atmosphere/ChapmanAtmosphere.glsl.js +1 -1
  294. package/views/3d/webgl-engine/effects/atmosphere/ChapmanRaymarching.glsl.js +1 -1
  295. package/views/3d/webgl-engine/effects/atmosphere/SimpleAtmosphere.glsl.js +1 -1
  296. package/views/3d/webgl-engine/effects/clouds/CloudsComposition.glsl.js +1 -1
  297. package/views/3d/webgl-engine/effects/clouds/CloudsComposition.js +1 -1
  298. package/views/3d/webgl-engine/effects/fog/Fog.glsl.js +1 -1
  299. package/views/3d/webgl-engine/effects/fog/Fog.js +1 -1
  300. package/views/3d/webgl-engine/effects/globalIllumination/GlobalIllumination.glsl.js +1 -1
  301. package/views/3d/webgl-engine/effects/glow/applyEmissiveGlow.glsl.js +5 -5
  302. package/views/3d/webgl-engine/effects/haze/Haze.glsl.js +1 -1
  303. package/views/3d/webgl-engine/effects/haze/HazeCompositing.glsl.js +1 -1
  304. package/views/3d/webgl-engine/effects/highlight/ShadowHighlight.glsl.js +1 -1
  305. package/views/3d/webgl-engine/effects/highlight/ShadowHighlightBuffer.glsl.js +1 -1
  306. package/views/3d/webgl-engine/effects/laserlines/LaserlinePath.glsl.js +1 -1
  307. package/views/3d/webgl-engine/effects/raymarching/DistanceFalloff.glsl.js +1 -1
  308. package/views/3d/webgl-engine/effects/shadowAccumulation/ShadowCastAccumulate.glsl.js +1 -1
  309. package/views/3d/webgl-engine/lib/BufferGeometry.js +1 -1
  310. package/views/3d/webgl-engine/lib/BufferObject3D.js +1 -1
  311. package/views/3d/webgl-engine/lib/EmissionComposite.js +1 -1
  312. package/views/3d/webgl-engine/lib/GeometryUtil.js +1 -1
  313. package/views/3d/webgl-engine/lib/Renderer.js +1 -1
  314. package/views/3d/webgl-engine/lib/affectsGeometry.js +1 -1
  315. package/views/3d/webgl-engine/lib/bufferGeometryUtils.js +2 -0
  316. package/views/3d/webgl-engine/lib/edgeRendering/AdjustProjectedPosition.glsl.js +5 -5
  317. package/views/3d/webgl-engine/lib/edgeRendering/EdgeShader.glsl.js +1 -1
  318. package/views/3d/webgl-engine/lib/edgeRendering/EdgeUtil.glsl.js +11 -11
  319. package/views/3d/webgl-engine/materials/Path.glsl.js +1 -1
  320. package/views/3d/webgl-engine/materials/Water.glsl.js +1 -1
  321. package/views/3d/webgl-engine/shaders/AtmosphereCompositing.glsl.js +1 -1
  322. package/views/3d/webgl-engine/shaders/DefaultMaterial.glsl.js +1 -1
  323. package/views/3d/webgl-engine/shaders/GaussianSplat.glsl.js +1 -1
  324. package/views/3d/webgl-engine/shaders/HUDMaterial.glsl.js +1 -1
  325. package/views/3d/webgl-engine/shaders/LineCallout.glsl.js +1 -1
  326. package/views/3d/webgl-engine/shaders/Pattern.glsl.js +1 -1
  327. package/views/3d/webgl-engine/shaders/RealisticTree.glsl.js +1 -1
  328. package/views/3d/webgl-engine/shaders/RibbonLine.glsl.js +1 -1
  329. package/views/3d/webgl-engine/shaders/SphereDepthInterpolate.glsl.js +1 -1
  330. package/views/3d/webgl-engine/shaders/Terrain.glsl.js +1 -1
  331. package/views/3d/webgl-engine/shaders/Viewshed.glsl.js +1 -1
  332. package/views/3d/webgl-engine/shaders/lineUniforms.js +2 -0
  333. package/views/DOMContainer.d.ts +27 -9
  334. package/views/DOMContainer.js +1 -1
  335. package/views/PopupView.d.ts +6 -0
  336. package/views/SceneView.js +1 -1
  337. package/views/VideoView.d.ts +27 -9
  338. package/views/View.d.ts +16 -7
  339. package/views/View.js +1 -1
  340. package/views/View2D.d.ts +1 -1
  341. package/views/interactive/snapping/FeatureSnappingSourceInfo.js +1 -1
  342. package/views/interactive/snapping/SnappingManagerPool.js +1 -1
  343. package/views/interactive/snapping/SnappingOptions.d.ts +1 -1
  344. package/views/interactive/tooltip/components/ElevationModeSelect.js +1 -1
  345. package/views/interactive/tooltip/components/TooltipEditableField.js +1 -1
  346. package/views/layers/FeatureLikeLayerView.d.ts +1 -2
  347. package/views/layers/LayerView.js +1 -1
  348. package/views/layers/LineOfSightLayerView.d.ts +3 -4
  349. package/views/layers/ParquetLayerView.d.ts +15 -0
  350. package/views/layers/ParquetLayerView.js +1 -1
  351. package/views/layers/ViewshedLayerView.d.ts +5 -6
  352. package/views/support/layerViewUtils.js +1 -1
  353. package/webdoc/support/saveUtils.js +1 -1
  354. package/webdoc/support/unsupportedErrors.js +1 -1
  355. package/widgets/Editor.d.ts +10 -0
  356. package/widgets/FeatureForm.d.ts +2 -2
  357. package/widgets/Legend.d.ts +1 -0
  358. package/widgets/ShadowCast/ShadowCastViewModel.js +1 -1
  359. package/widgets/support/SnappingControls.d.ts +1 -1
  360. package/assets/esri/core/workers/chunks/00a600c71ceebe7bfeee.js +0 -1
  361. package/assets/esri/core/workers/chunks/00d24415bdeb0adae3df.js +0 -1
  362. package/assets/esri/core/workers/chunks/0193df3f9fb23633da87.js +0 -1
  363. package/assets/esri/core/workers/chunks/05963f57cbe5a5249496.js +0 -1
  364. package/assets/esri/core/workers/chunks/06e7400f5ebe0719b81c.js +0 -1
  365. package/assets/esri/core/workers/chunks/07aa6d36f1006b6ab7ff.js +0 -1
  366. package/assets/esri/core/workers/chunks/0b36abcbf03037b4073d.js +0 -1
  367. package/assets/esri/core/workers/chunks/122111703528381539cc.js +0 -1
  368. package/assets/esri/core/workers/chunks/1ef39aef6b33c530cbe4.js +0 -1
  369. package/assets/esri/core/workers/chunks/2164fcaced72b0fda31f.js +0 -1
  370. package/assets/esri/core/workers/chunks/25b0885d3bc190b28c04.js +0 -1
  371. package/assets/esri/core/workers/chunks/25d6c674b1c4829f040f.js +0 -1
  372. package/assets/esri/core/workers/chunks/25e6013e2c095629b236.js +0 -1
  373. package/assets/esri/core/workers/chunks/27da9ece2afaeec39f59.js +0 -1
  374. package/assets/esri/core/workers/chunks/2c90f7a6432cd716db8b.js +0 -1
  375. package/assets/esri/core/workers/chunks/2e6a2f4d686b71249c0e.js +0 -1
  376. package/assets/esri/core/workers/chunks/2f9033890c465acff698.js +0 -1
  377. package/assets/esri/core/workers/chunks/303fde8f3459dde16555.js +0 -1
  378. package/assets/esri/core/workers/chunks/347bf269c2b1583d2dca.js +0 -1
  379. package/assets/esri/core/workers/chunks/350540770781b281c39a.js +0 -1
  380. package/assets/esri/core/workers/chunks/3b017b718ea2d4ed498f.js +0 -1
  381. package/assets/esri/core/workers/chunks/43fc42405167a5537039.js +0 -1
  382. package/assets/esri/core/workers/chunks/4cddd217383b9333f32e.js +0 -1
  383. package/assets/esri/core/workers/chunks/4d82db661365daa513a6.js +0 -1
  384. package/assets/esri/core/workers/chunks/4fa59f8ed3b7b6239548.js +0 -1
  385. package/assets/esri/core/workers/chunks/518e8883b6ed613bf451.js +0 -1
  386. package/assets/esri/core/workers/chunks/5e4d6c283c2fa28db022.js +0 -1
  387. package/assets/esri/core/workers/chunks/5ea8809b6519c05ad9f6.js +0 -1
  388. package/assets/esri/core/workers/chunks/604344e45c0f27497188.js +0 -1
  389. package/assets/esri/core/workers/chunks/633a9051580c5302d2f7.js +0 -1
  390. package/assets/esri/core/workers/chunks/6469c0d18d3663e7da4b.js +0 -1
  391. package/assets/esri/core/workers/chunks/64770e2cf41211b63fd2.js +0 -1
  392. package/assets/esri/core/workers/chunks/669e39c3437d7273f0c7.js +0 -1
  393. package/assets/esri/core/workers/chunks/7038ead1fa1674416ab3.js +0 -1
  394. package/assets/esri/core/workers/chunks/7165d6f6a5078768bebb.js +0 -1
  395. package/assets/esri/core/workers/chunks/71f739bb3f7350704af6.js +0 -1
  396. package/assets/esri/core/workers/chunks/798a63653f82c0e842c5.js +0 -1
  397. package/assets/esri/core/workers/chunks/8313c626596a76c7449d.js +0 -1
  398. package/assets/esri/core/workers/chunks/841f67baf6a1634ada48.js +0 -1
  399. package/assets/esri/core/workers/chunks/84e9258a57d8c365f361.js +0 -1
  400. package/assets/esri/core/workers/chunks/84fcbf7a1d04f01685d1.js +0 -1
  401. package/assets/esri/core/workers/chunks/87b4e916b2668203a6b0.js +0 -1
  402. package/assets/esri/core/workers/chunks/8e511079918e2fd9261f.js +0 -1
  403. package/assets/esri/core/workers/chunks/8fcfd515ee1b18c902e5.js +0 -1
  404. package/assets/esri/core/workers/chunks/9001e9a1e81bce175ddd.js +0 -1
  405. package/assets/esri/core/workers/chunks/95b82cbbe355266c65d7.js +0 -1
  406. package/assets/esri/core/workers/chunks/9673a9efec86040b8c13.js +0 -1
  407. package/assets/esri/core/workers/chunks/97dbbedea9fe03bd1306.js +0 -1
  408. package/assets/esri/core/workers/chunks/9a7fc93cc693fd12b5d8.js +0 -1
  409. package/assets/esri/core/workers/chunks/9c0fd8baa00ee9733ba4.js +0 -1
  410. package/assets/esri/core/workers/chunks/a010d2e4e34eb7bc1fec.js +0 -1
  411. package/assets/esri/core/workers/chunks/a20526996d01386ec3b7.js +0 -1
  412. package/assets/esri/core/workers/chunks/a7edf7541569fef77cb3.js +0 -1
  413. package/assets/esri/core/workers/chunks/ac4cc49104d26c384e98.js +0 -1
  414. package/assets/esri/core/workers/chunks/b05a41a60e30935644be.js +0 -1
  415. package/assets/esri/core/workers/chunks/b1008bdfca995ebf98ed.js +0 -1
  416. package/assets/esri/core/workers/chunks/bfd85e8d54062a590f0e.js +0 -1
  417. package/assets/esri/core/workers/chunks/d21257d2e2a37266c0f7.js +0 -1
  418. package/assets/esri/core/workers/chunks/d270cc9807161033686e.js +0 -1
  419. package/assets/esri/core/workers/chunks/d4926545193414cf2f16.js +0 -1
  420. package/assets/esri/core/workers/chunks/da18d96b35af20e73b3b.js +0 -1
  421. package/assets/esri/core/workers/chunks/df0481bcc1613ee4b7af.js +0 -1
  422. package/assets/esri/core/workers/chunks/ec28e18275d36e71b438.js +0 -1
  423. package/assets/esri/core/workers/chunks/ec9a2425b4a498054a19.js +0 -1
  424. package/assets/esri/core/workers/chunks/f05de08e194a3f9b96f2.js +0 -1
  425. package/assets/esri/core/workers/chunks/f0a68d2900d24f56afa0.js +0 -1
  426. package/assets/esri/core/workers/chunks/f762f70e7d39634ce797.js +0 -1
  427. package/assets/esri/core/workers/chunks/fb4ff0ac2bc445fec413.js +0 -1
  428. package/assets/esri/core/workers/chunks/fd0254c6fc6c03ec11ba.js +0 -1
  429. package/assets/esri/core/workers/chunks/fd0a5c243f3426f2a0b5.js +0 -1
  430. package/views/3d/environment/EnvironmentManager.js +0 -2
@@ -1,5 +1,5 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/6.0/LICENSE.txt */
2
- import{sliceDraw as e}from"../views/3d/webgl-engine/core/shaderLibrary/Slice.glsl.js";import{RibbonVertexPosition as t}from"../views/3d/webgl-engine/core/shaderLibrary/attributes/RibbonVertexPosition.glsl.js";import{evaluateSceneLightingFragment as n}from"../views/3d/webgl-engine/core/shaderLibrary/shading/evaluateSceneLightingFragment.glsl.js";import{LineStipple as r,computePixelSize as i}from"../views/3d/webgl-engine/core/shaderLibrary/shading/LineStipple.glsl.js";import{MarkerSizing as a}from"../views/3d/webgl-engine/core/shaderLibrary/shading/MarkerSizing.glsl.js";import{NormalUtils as o}from"../views/3d/webgl-engine/core/shaderLibrary/shading/NormalUtils.glsl.js";import{PiUtils as s}from"../views/3d/webgl-engine/core/shaderLibrary/shading/PiUtils.glsl.js";import{positionOutsideClipSpace as c}from"../views/3d/webgl-engine/core/shaderLibrary/shading/PositionOutsideClipSpace.js";import{metersPerRenderUnit as l,screenPixelSizePerDistance as u,inverseProjectionMatrix as d,nearFar as f,viewport as p}from"../views/3d/webgl-engine/core/shaderLibrary/util/cameraUniforms.js";import{ColorConversion as m}from"../views/3d/webgl-engine/core/shaderLibrary/util/ColorConversion.glsl.js";import{NoPerspectiveWrite as h,NoPerspectiveRead as g}from"../views/3d/webgl-engine/core/shaderLibrary/util/NoPerspective.glsl.js";import{addProjViewLocalOrigin as _,addPixelRatio as v}from"../views/3d/webgl-engine/core/shaderLibrary/util/View.glsl.js";import{Float4PassUniform as y}from"../views/3d/webgl-engine/core/shaderModules/Float4PassUniform.js";import{FloatBindUniform as b}from"../views/3d/webgl-engine/core/shaderModules/FloatBindUniform.js";import{FloatPassUniform as x}from"../views/3d/webgl-engine/core/shaderModules/FloatPassUniform.js";import{glsl as S,If as C}from"../views/3d/webgl-engine/core/shaderModules/glsl.js";import{alphaCutoff as w}from"../views/3d/webgl-engine/shaders/alphaCutoff.glsl.js";import{animatedAlpha as T}from"../views/3d/webgl-engine/shaders/animatedAlpha.glsl.js";import{outputColorHighlightOLID as E}from"../views/3d/webgl-engine/shaders/OutputColorHighlightOLID.glsl.js";import{getTextureBackedBufferModule as ee}from"../views/3d/webgl-engine/shaders/RibbonLineTextureBuffer.glsl.js";import{ShaderBuilder as D}from"../views/webgl/ShaderBuilder.js";const O=1;function k(O){let k=new D,{attributes:A,varyings:j,vertex:M,fragment:N}=k,{applyMarkerOffset:P,draped:F,shadingEnabled:I,output:L,capType:R,stippleEnabled:z,falloffEnabled:B,wireframe:V,innerColorEnabled:H,hasAnimation:U,hasScreenSizePerspective:W,worldSized:G,imagePattern:K}=O,q=R===2,J=z&&q,Y=B||J,X=z||q,Z=O.usePerspectiveCorrectStipple,Q=ee(O).createBuilder(k,O);M.inputs.add(`position`,()=>Q.getTextureAttribute(`position`)),O.hasVVSize?M.inputs.add(`sizeFeatureAttribute`,()=>Q.getTextureAttribute(`sizeFeatureAttribute`)):M.inputs.add(`size`,()=>Q.getTextureAttribute(`size`)),O.hasVVOpacity&&M.inputs.add(`opacityFeatureAttribute`,()=>Q.getTextureAttribute(`opacityFeatureAttribute`)),O.hasVVColor?M.inputs.add(`colorFeatureAttribute`,()=>Q.getTextureAttribute(`colorFeatureAttribute`)):M.inputs.add(`color`,()=>Q.getTextureAttribute(`color`)),N.include(s),k.include(t,O),k.include(r,O),L===11?(k.varyings.add(`objectAndLayerIdColorVarying`,`vec4`),M.code.add(S`
2
+ import{sliceDraw as e}from"../views/3d/webgl-engine/core/shaderLibrary/Slice.glsl.js";import{RibbonVertexPosition as t}from"../views/3d/webgl-engine/core/shaderLibrary/attributes/RibbonVertexPosition.glsl.js";import{evaluateSceneLightingFragment as n}from"../views/3d/webgl-engine/core/shaderLibrary/shading/evaluateSceneLightingFragment.glsl.js";import{LineStipple as r,computePixelSize as i}from"../views/3d/webgl-engine/core/shaderLibrary/shading/LineStipple.glsl.js";import{MarkerSizing as a}from"../views/3d/webgl-engine/core/shaderLibrary/shading/MarkerSizing.glsl.js";import{NormalUtils as o}from"../views/3d/webgl-engine/core/shaderLibrary/shading/NormalUtils.glsl.js";import{PiUtils as s}from"../views/3d/webgl-engine/core/shaderLibrary/shading/PiUtils.glsl.js";import{positionOutsideClipSpace as c}from"../views/3d/webgl-engine/core/shaderLibrary/shading/PositionOutsideClipSpace.js";import{metersPerRenderUnit as l,screenPixelSizePerDistance as u,inverseProjectionMatrix as d,nearFar as f,viewport as p,pixelRatio as ee}from"../views/3d/webgl-engine/core/shaderLibrary/util/cameraUniforms.js";import{ColorConversion as m}from"../views/3d/webgl-engine/core/shaderLibrary/util/ColorConversion.glsl.js";import{NoPerspectiveWrite as h,NoPerspectiveRead as g}from"../views/3d/webgl-engine/core/shaderLibrary/util/NoPerspective.glsl.js";import{addProjViewLocalOrigin as _}from"../views/3d/webgl-engine/core/shaderLibrary/util/View.glsl.js";import{Float4PassUniform as v}from"../views/3d/webgl-engine/core/shaderModules/Float4PassUniform.js";import{FloatPassUniform as y}from"../views/3d/webgl-engine/core/shaderModules/FloatPassUniform.js";import{glsl as b,If as x}from"../views/3d/webgl-engine/core/shaderModules/glsl.js";import{alphaCutoff as S}from"../views/3d/webgl-engine/shaders/alphaCutoff.glsl.js";import{animatedAlpha as C}from"../views/3d/webgl-engine/shaders/animatedAlpha.glsl.js";import{groundMetersToScreenRatio as w,planarDistanceToScreenRatio as T}from"../views/3d/webgl-engine/shaders/lineUniforms.js";import{outputColorHighlightOLID as te}from"../views/3d/webgl-engine/shaders/OutputColorHighlightOLID.glsl.js";import{getTextureBackedBufferModule as E}from"../views/3d/webgl-engine/shaders/RibbonLineTextureBuffer.glsl.js";import{ShaderBuilder as D}from"../views/webgl/ShaderBuilder.js";const O=1;function k(O){let k=new D,{attributes:A,varyings:j,vertex:M,fragment:N}=k,{applyMarkerOffset:P,draped:F,shadingEnabled:I,output:L,capType:R,stippleEnabled:z,falloffEnabled:B,wireframe:V,innerColorEnabled:H,hasAnimation:U,hasScreenSizePerspective:W,worldSized:G,imagePattern:K}=O,q=R===2,J=z&&q,Y=B||J,X=z||q,Z=O.usePerspectiveCorrectStipple,Q=E(O).createBuilder(k,O);M.inputs.add(`position`,()=>Q.getTextureAttribute(`position`)),O.hasVVSize?M.inputs.add(`sizeFeatureAttribute`,()=>Q.getTextureAttribute(`sizeFeatureAttribute`)):M.inputs.add(`size`,()=>Q.getTextureAttribute(`size`)),O.hasVVOpacity&&M.inputs.add(`opacityFeatureAttribute`,()=>Q.getTextureAttribute(`opacityFeatureAttribute`)),O.hasVVColor?M.inputs.add(`colorFeatureAttribute`,()=>Q.getTextureAttribute(`colorFeatureAttribute`)):M.inputs.add(`color`,()=>Q.getTextureAttribute(`color`)),N.include(s),k.include(t,O),k.include(r,O),L===11?(k.varyings.add(`objectAndLayerIdColorVarying`,`vec4`),M.code.add(b`
3
3
  vec4 getOlidColor() {
4
4
  return ${Q.getTextureAttribute(`olidColor`)};
5
5
  }
@@ -7,9 +7,9 @@ import{sliceDraw as e}from"../views/3d/webgl-engine/core/shaderLibrary/Slice.gls
7
7
  void forwardObjectAndLayerIdColor() {
8
8
  objectAndLayerIdColorVarying = getOlidColor();
9
9
  }
10
- `),N.code.add(S`void outputObjectAndLayerIdColor() {
10
+ `),N.code.add(b`void outputObjectAndLayerIdColor() {
11
11
  fragColor = objectAndLayerIdColorVarying;
12
- }`)):(M.code.add(S`void forwardObjectAndLayerIdColor() {}`),N.code.add(S`void outputObjectAndLayerIdColor() {}`));let $=P&&!F;if($&&k.include(a,O),_(M,O),F&&(G||z)){let e=G?`groundMetersToScreenRatio`:`planarDistanceToScreenRatio`;M.uniforms.add(new b(e,e=>1/(e.screenToPlanarDistanceRatio*(G?e.planarDistanceToGroundRatio:1))))}return G&&!F&&M.uniforms.add(l,u),M.uniforms.add(d,f,p,new x(`miterLimit`,e=>e.join===`miter`?e.miterLimit:0)),M.constants.add(`LARGE_HALF_FLOAT`,`float`,65500),M.constants.add(`EPS`,`float`,.001),M.constants.add(`NUM_JOIN_SUBDIVISIONS`,`float`,O.numJoinSubdivisions),A.add(`textureElementIndex`,`uint`),A.add(`lineParameters`,`vec2`),j.add(`vColor`,`vec4`),j.add(`vpos`,`vec3`,{invariant:!0}),j.add(`vLineDistance`,`float`),j.add(`vLineWidth`,`float`),z||(j.add(`vIsInsideJoin`,`int`),j.add(`vStretchFactor`,`float`),j.add(`vJoinCenterLineSDFs`,`vec2`),j.add(`vSubdivisionFactor`,`float`)),z&&j.add(`vLineSizeInv`,`float`),Y&&j.add(`vLineDistanceNorm`,`float`),q&&(j.add(`vSegmentSDF`,`float`),j.add(`vReverseSegmentSDF`,`float`)),M.code.add(S`vec3 perpendicular(vec3 v) {
12
+ }`)):(M.code.add(b`void forwardObjectAndLayerIdColor() {}`),N.code.add(b`void outputObjectAndLayerIdColor() {}`));let $=P&&!F;return $&&k.include(a,O),_(M,O),F&&(G||z)&&M.uniforms.add(G?w:T),G&&!F&&M.uniforms.add(l,u),M.uniforms.add(d,f,p,new y(`miterLimit`,e=>e.join===`miter`?e.miterLimit:0)),M.constants.add(`LARGE_HALF_FLOAT`,`float`,65500),M.constants.add(`EPS`,`float`,.001),M.constants.add(`NUM_JOIN_SUBDIVISIONS`,`float`,O.numJoinSubdivisions),A.add(`textureElementIndex`,`uint`),A.add(`lineParameters`,`vec2`),j.add(`vColor`,`vec4`),j.add(`vpos`,`vec3`,{invariant:!0}),j.add(`vLineDistance`,`float`),j.add(`vLineWidth`,`float`),z||(j.add(`vIsInsideJoin`,`int`),j.add(`vStretchFactor`,`float`),j.add(`vJoinCenterLineSDFs`,`vec2`),j.add(`vSubdivisionFactor`,`float`)),z&&j.add(`vLineSizeInv`,`float`),Y&&j.add(`vLineDistanceNorm`,`float`),q&&(j.add(`vSegmentSDF`,`float`),j.add(`vReverseSegmentSDF`,`float`)),M.code.add(b`vec3 perpendicular(vec3 v) {
13
13
  return vec3(v.y, -v.x, 0.0);
14
14
  }
15
15
  float nearPlaneInterpolationFactor(float nearPlaneDistance, vec4 start, vec4 end) {
@@ -20,17 +20,17 @@ float s = sin(a);
20
20
  float c = cos(a);
21
21
  mat2 m = mat2(c, -s, s, c);
22
22
  return vec3(m * v.xy, v.z);
23
- }`),M.code.add(S`vec4 projectAndScale(vec4 pos) {
23
+ }`),M.code.add(b`vec4 projectAndScale(vec4 pos) {
24
24
  vec4 posNdc = proj * pos;
25
25
  posNdc.xy *= viewport.zw / posNdc.w;
26
26
  posNdc.z /= posNdc.w;
27
27
  return posNdc;
28
- }`),M.code.add(S`
28
+ }`),M.code.add(b`
29
29
  void clip(
30
30
  inout vec4 pos,
31
31
  inout vec4 prev,
32
32
  inout vec4 next,
33
- ${C(Z,S`inout float u0, inout float prevU0, inout float nextU0,`)}
33
+ ${x(Z,b`inout float u0, inout float prevU0, inout float nextU0,`)}
34
34
  bool isStartVertex
35
35
  ) {
36
36
  float adjustedNearPlaneDistance = nearFar[0] * 0.99;
@@ -41,7 +41,7 @@ return posNdc;
41
41
  if (prev.z < -nearFar[0]) {
42
42
  // Previous position in front of near plane
43
43
  float clipFactor = nearPlaneInterpolationFactor(adjustedNearPlaneDistance, prev, pos);
44
- ${C(Z,S`u0 = mix(prevU0, u0, clipFactor); nextU0 = u0;`)}
44
+ ${x(Z,b`u0 = mix(prevU0, u0, clipFactor); nextU0 = u0;`)}
45
45
  pos = mix(prev, pos, clipFactor);
46
46
  next = pos;
47
47
  } else {
@@ -51,7 +51,7 @@ return posNdc;
51
51
  if (next.z < -nearFar[0]) {
52
52
  // Next position in front of near plane
53
53
  float clipFactor = nearPlaneInterpolationFactor(adjustedNearPlaneDistance, pos, next);
54
- ${C(Z,S`u0 = mix(u0, nextU0, clipFactor); prevU0 = u0;`)}
54
+ ${x(Z,b`u0 = mix(u0, nextU0, clipFactor); prevU0 = u0;`)}
55
55
  pos = mix(pos, next, clipFactor);
56
56
  prev = pos;
57
57
  } else {
@@ -63,25 +63,25 @@ return posNdc;
63
63
  if (prev.z > -nearFar[0]) {
64
64
  // Previous position behind near plane
65
65
  float clipFactor = nearPlaneInterpolationFactor(adjustedNearPlaneDistance, pos, prev);
66
- ${C(Z,S`prevU0 = mix(u0, prevU0, clipFactor);`)}
66
+ ${x(Z,b`prevU0 = mix(u0, prevU0, clipFactor);`)}
67
67
  prev = mix(pos, prev, clipFactor);
68
68
  }
69
69
 
70
70
  if (next.z > -nearFar[0]) {
71
71
  // Next position behind near plane
72
72
  float clipFactor = nearPlaneInterpolationFactor(adjustedNearPlaneDistance, next, pos);
73
- ${C(Z,S`nextU0 = mix(nextU0, u0, clipFactor);`)}
73
+ ${x(Z,b`nextU0 = mix(nextU0, u0, clipFactor);`)}
74
74
  next = mix(next, pos, clipFactor);
75
75
  }
76
76
  }
77
77
  }
78
- `),v(M),M.constants.add(`aaWidth`,`float`,+!z),M.main.add(S`
78
+ `),M.uniforms.add(ee).constants.add(`aaWidth`,`float`,+!z).main.add(b`
79
79
  vec3 position = ${Q.getTextureAttribute(`position`)};
80
80
  float u0 = ${Q.getTextureAttribute(`u0`)};
81
- ${C(G,S`
81
+ ${x(G,b`
82
82
  float prevU0 = ${Q.getTextureAttribute(`u0`,-1)};
83
83
  float nextU0 = ${Q.getTextureAttribute(`u0`,1)};
84
- ${C(!F,S`
84
+ ${x(!F,b`
85
85
  u0 *= metersPerRenderUnit;
86
86
  prevU0 *= metersPerRenderUnit;
87
87
  nextU0 *= metersPerRenderUnit;
@@ -108,11 +108,11 @@ return posNdc;
108
108
  vec4 next = view * vec4(nextPosition, 1.0);
109
109
 
110
110
  bool isJoin = vertexType < 3.0;
111
- `),$&&M.main.add(S`vec4 other = isStartVertex ? next : prev;
111
+ `),$&&M.main.add(b`vec4 other = isStartVertex ? next : prev;
112
112
  bool markersHidden = areWorldMarkersHidden(pos.xyz, other.xyz);
113
113
  if (!isJoin && !markersHidden) {
114
114
  pos.xyz += normalize(other.xyz - pos.xyz) * getWorldMarkerSize(pos.xyz) * 0.5;
115
- }`),k.include(h),M.code.add(S`
115
+ }`),k.include(h),M.code.add(b`
116
116
  vec2 computeJoinAndCapDisplacement(
117
117
  bool isJoin,
118
118
  bool isStartVertex,
@@ -157,7 +157,7 @@ pos.xyz += normalize(other.xyz - pos.xyz) * getWorldMarkerSize(pos.xyz) * 0.5;
157
157
  }
158
158
  }
159
159
 
160
- ${C(!z,S`
160
+ ${x(!z,b`
161
161
  // Compute stretch compensation for feathering.
162
162
  if (subdivisionFactor > 0.0) {
163
163
  vIsInsideJoin = 1;
@@ -192,14 +192,14 @@ pos.xyz += normalize(other.xyz - pos.xyz) * getWorldMarkerSize(pos.xyz) * 0.5;
192
192
  `)}
193
193
 
194
194
  if (isOutside && displacementLen > miterLimit * lineWidth) {
195
- ${C(O.roundJoins,S`
195
+ ${x(O.roundJoins,b`
196
196
  vec3 startDir = perpendicular(leftLen < EPS ? right : left);
197
197
  vec3 endDir = perpendicular(rightLen < EPS ? left : right);
198
- float factor = ${z?S`min(1.0, subdivisionFactor * ((NUM_JOIN_SUBDIVISIONS + 1.0) / NUM_JOIN_SUBDIVISIONS))`:S`subdivisionFactor`};
198
+ float factor = ${z?b`min(1.0, subdivisionFactor * ((NUM_JOIN_SUBDIVISIONS + 1.0) / NUM_JOIN_SUBDIVISIONS))`:b`subdivisionFactor`};
199
199
 
200
200
  float rotationAngle = acos(clamp(dot(startDir.xy, endDir.xy), -1.0, 1.0));
201
201
  joinDisplacementDir = rotateZ(startDir, -lineSide * factor * rotationAngle);
202
- `,S`
202
+ `,b`
203
203
  /**
204
204
  * Convert to bevel join if miterLimit is exceeded.
205
205
  * Here vertices with a subdivisionFactor > 0 are either START vertices or
@@ -211,19 +211,19 @@ pos.xyz += normalize(other.xyz - pos.xyz) * getWorldMarkerSize(pos.xyz) * 0.5;
211
211
  vec3 startDir = perpendicular(leftLen < EPS ? right : left);
212
212
  vec3 endDir = perpendicular(rightLen < EPS ? left : right);
213
213
 
214
- ${C(z,S`joinDisplacementDir = (isStartVertex || subdivisionFactor > 0.0) ? endDir : startDir;`,S`joinDisplacementDir = mix(startDir, endDir, subdivisionFactor);`)}
214
+ ${x(z,b`joinDisplacementDir = (isStartVertex || subdivisionFactor > 0.0) ? endDir : startDir;`,b`joinDisplacementDir = mix(startDir, endDir, subdivisionFactor);`)}
215
215
  `)}
216
216
  displacementLen = lineWidth;
217
217
  }
218
218
  } else {
219
219
  joinDisplacementDir = perpendicular(isStartVertex ? right : left);
220
- ${R===0?``:S`capDisplacementDir = vec3((isStartVertex ? -right : left).xy, 0.0);`}
220
+ ${R===0?``:b`capDisplacementDir = vec3((isStartVertex ? -right : left).xy, 0.0);`}
221
221
  }
222
222
 
223
223
  return (joinDisplacementDir.xy * lineSide + capDisplacementDir.xy) * displacementLen;
224
224
  }
225
- `),M.main.add(S`
226
- clip(pos, prev, next, ${C(Z,S`u0, prevU0, nextU0,`)} isStartVertex);
225
+ `),M.main.add(b`
226
+ clip(pos, prev, next, ${x(Z,b`u0, prevU0, nextU0,`)} isStartVertex);
227
227
 
228
228
  vec3 clippedPos = pos.xyz;
229
229
  vec3 clippedCenter = mix(pos.xyz, isStartVertex ? next.xyz : prev.xyz, 0.5);
@@ -235,12 +235,12 @@ pos.xyz += normalize(other.xyz - pos.xyz) * getWorldMarkerSize(pos.xyz) * 0.5;
235
235
  vec3 left = (pos.xyz - prev.xyz);
236
236
  vec3 right = (next.xyz - pos.xyz);
237
237
 
238
- float lineSize = getSize(${C(W,`clippedPos`)});
239
- ${C(z&&W,`float patternLineSize = getSize(clippedCenter);`)}
240
- ${C(z&&!W,`float patternLineSize = lineSize;`)}
238
+ float lineSize = getSize(${x(W,`clippedPos`)});
239
+ ${x(z&&W,`float patternLineSize = getSize(clippedCenter);`)}
240
+ ${x(z&&!W,`float patternLineSize = lineSize;`)}
241
241
 
242
- ${C(G,S`
243
- ${C(F,S`float lineSizeScreen = lineSize * groundMetersToScreenRatio;`,S`
242
+ ${x(G,b`
243
+ ${x(F,b`float lineSizeScreen = lineSize * groundMetersToScreenRatio;`,b`
244
244
  float metersPerScreenPixel = max(-clippedPos.z, nearFar[0]) * metersPerRenderUnit * screenPixelSizePerDistance;
245
245
  float lineSizeScreen = lineSize / metersPerScreenPixel;
246
246
  `)}
@@ -251,7 +251,7 @@ pos.xyz += normalize(other.xyz - pos.xyz) * getWorldMarkerSize(pos.xyz) * 0.5;
251
251
 
252
252
  lineSizeScreen += aaWidth;
253
253
  float lineWidth = lineSizeScreen * pixelRatio;
254
- `,S`
254
+ `,b`
255
255
  if (lineSize < 1.0) {
256
256
  coverage = lineSize; // convert sub-pixel coverage to alpha
257
257
  lineSize = 1.0;
@@ -262,14 +262,14 @@ pos.xyz += normalize(other.xyz - pos.xyz) * getWorldMarkerSize(pos.xyz) * 0.5;
262
262
  `)}
263
263
 
264
264
  vLineWidth = noPerspectiveWrite(lineWidth, pos.w);
265
- ${z?S`vLineSizeInv = noPerspectiveWrite(1.0 / lineSize, pos.w);`:``}
266
- `),X&&M.main.add(S`
265
+ ${z?b`vLineSizeInv = noPerspectiveWrite(1.0 / lineSize, pos.w);`:``}
266
+ `),X&&M.main.add(b`
267
267
  float isEndVertex = float(!isStartVertex);
268
268
  vec3 segmentOrigin = mix(pos.xyz, prev.xyz, isEndVertex);
269
269
  vec3 segment = mix(right, left, isEndVertex);
270
- ${q?S`vec3 segmentEnd = mix(next.xyz, pos.xyz, isEndVertex);`:``}
271
- `),M.main.add(S`
272
- ${C(!z,S`
270
+ ${q?b`vec3 segmentEnd = mix(next.xyz, pos.xyz, isEndVertex);`:``}
271
+ `),M.main.add(b`
272
+ ${x(!z,b`
273
273
  vIsInsideJoin = 0;
274
274
  vStretchFactor = 1.0;
275
275
  vSubdivisionFactor = 0.0;
@@ -300,10 +300,10 @@ pos.xyz += normalize(other.xyz - pos.xyz) * getWorldMarkerSize(pos.xyz) * 0.5;
300
300
  float lineDistNorm = noPerspectiveWrite(lineSide, pos.w);
301
301
 
302
302
  vLineDistance = lineWidth * lineDistNorm;
303
- ${Y?S`vLineDistanceNorm = lineDistNorm;`:``}
303
+ ${Y?b`vLineDistanceNorm = lineDistNorm;`:``}
304
304
 
305
305
  pos.xyz += displacement;
306
- `),z||M.main.add(S`if (isJoin) {
306
+ `),z||M.main.add(b`if (isJoin) {
307
307
  vec2 joinCenterToVertex = displacementXY;
308
308
  vec2 leftCenterlineDir = left.xy;
309
309
  vec2 rightCenterlineDir = right.xy;
@@ -318,36 +318,36 @@ dot(vec2(leftCenterlineDir.y, -leftCenterlineDir.x), joinCenterToVertex)
318
318
  ),
319
319
  pos.w
320
320
  );
321
- }`),q&&M.main.add(S`vec2 segmentDir = normalize(segment.xy);
321
+ }`),q&&M.main.add(b`vec2 segmentDir = normalize(segment.xy);
322
322
  vSegmentSDF = noPerspectiveWrite((isJoin && isStartVertex) ? LARGE_HALF_FLOAT : (dot(pos.xy - segmentOrigin.xy, segmentDir)), pos.w);
323
- vReverseSegmentSDF = noPerspectiveWrite((isJoin && !isStartVertex) ? LARGE_HALF_FLOAT : (dot(pos.xy - segmentEnd.xy, -segmentDir)), pos.w);`),z&&(F?M.main.add(S`float stippleDistanceToScreenRatio = ${G?`groundMetersToScreenRatio`:`planarDistanceToScreenRatio`};`):M.main.add(S`vec3 segmentCenter = mix((nextPosition + position) * 0.5, (position + prevPosition) * 0.5, isEndVertex);
324
- float stippleDistanceToScreenRatio = computeWorldToScreenRatio(segmentCenter);`),M.main.add(S`
323
+ vReverseSegmentSDF = noPerspectiveWrite((isJoin && !isStartVertex) ? LARGE_HALF_FLOAT : (dot(pos.xy - segmentEnd.xy, -segmentDir)), pos.w);`),z&&(F?M.main.add(`float stippleDistanceToScreenRatio = ${G?`groundMetersToScreenRatio`:`planarDistanceToScreenRatio`};`):M.main.add(b`vec3 segmentCenter = mix((nextPosition + position) * 0.5, (position + prevPosition) * 0.5, isEndVertex);
324
+ float stippleDistanceToScreenRatio = computeWorldToScreenRatio(segmentCenter);`),M.main.add(b`
325
325
  float segmentLengthScreenDouble = length(segment.xy);
326
326
  float segmentLengthScreen = segmentLengthScreenDouble * 0.5;
327
327
  float discreteStippleDistanceToScreenRatio = discretizeStippleDistanceToScreenRatio(stippleDistanceToScreenRatio);
328
- float segmentLengthRender = ${C(G,S`abs(mix(nextU0 - u0, u0 - prevU0, isEndVertex))`,S`length(mix(nextPosition - position, position - prevPosition, isEndVertex))`)};
328
+ float segmentLengthRender = ${x(G,b`abs(mix(nextU0 - u0, u0 - prevU0, isEndVertex))`,b`length(mix(nextPosition - position, position - prevPosition, isEndVertex))`)};
329
329
 
330
- ${C(!F||G,S`
331
- float segmentStartRender = ${C(G,S`mix(u0, prevU0, isEndVertex)`,S`mix(u0, u0 - segmentLengthRender, isEndVertex)`)};
330
+ ${x(!F||G,b`
331
+ float segmentStartRender = ${x(G,b`mix(u0, prevU0, isEndVertex)`,b`mix(u0, u0 - segmentLengthRender, isEndVertex)`)};
332
332
  `)}
333
333
 
334
334
  vStipplePatternStretch = stippleDistanceToScreenRatio / discreteStippleDistanceToScreenRatio;
335
- `),F?M.main.add(S`float segmentLengthPseudoScreen = segmentLengthScreen / pixelRatio * discreteStippleDistanceToScreenRatio / stippleDistanceToScreenRatio;
336
- float startPseudoScreen = u0 * discreteStippleDistanceToScreenRatio - mix(0.0, segmentLengthPseudoScreen, isEndVertex);`):M.main.add(S`float startPseudoScreen = segmentStartRender * discreteStippleDistanceToScreenRatio;
337
- float segmentLengthPseudoScreen = segmentLengthRender * discreteStippleDistanceToScreenRatio;`),M.uniforms.add(new x(`stipplePatternPixelSize`,e=>i(e))),M.main.add(S`
335
+ `),F?M.main.add(b`float segmentLengthPseudoScreen = segmentLengthScreen / pixelRatio * discreteStippleDistanceToScreenRatio / stippleDistanceToScreenRatio;
336
+ float startPseudoScreen = u0 * discreteStippleDistanceToScreenRatio - mix(0.0, segmentLengthPseudoScreen, isEndVertex);`):M.main.add(b`float startPseudoScreen = segmentStartRender * discreteStippleDistanceToScreenRatio;
337
+ float segmentLengthPseudoScreen = segmentLengthRender * discreteStippleDistanceToScreenRatio;`),M.uniforms.add(new y(`stipplePatternPixelSize`,e=>i(e))),M.main.add(b`
338
338
  float patternLength = patternLineSize * stipplePatternPixelSize;
339
339
  vec2 stippleDistanceLimits;
340
340
 
341
- ${C(G,S`
341
+ ${x(G,b`
342
342
  stippleDistanceLimits = vec2(segmentStartRender, segmentStartRender + segmentLengthRender);
343
343
  vStipplePatternStretch = 1.0;
344
344
 
345
- ${C(K,S`
345
+ ${x(K,b`
346
346
  // The v-coordinate used in case of an image pattern.
347
347
  bool isLeft = lineSide < 0.0;
348
348
  vStippleV = isLeft ? 0.0 : 1.0;
349
349
  `)}
350
- `,S`
350
+ `,b`
351
351
  // Compute the coordinates at both start and end of the line segment, because we need both to clamp to in the
352
352
  // fragment shader
353
353
  stippleDistanceLimits = computeStippleDistanceLimits(startPseudoScreen, segmentLengthPseudoScreen, segmentLengthScreen, patternLength);
@@ -367,7 +367,7 @@ float segmentLengthPseudoScreen = segmentLengthRender * discreteStippleDistanceT
367
367
  vStippleDistance += (stippleDisplacementFactor - isEndVertex) * (stippleDistanceLimits.y - stippleDistanceLimits.x);
368
368
  }
369
369
 
370
- ${C(Z,S`
370
+ ${x(Z,b`
371
371
  float segmentStartInverseW = 1.0 / mix(pos.w, prev.w, isEndVertex);
372
372
  float segmentEndInverseW = 1.0 / mix(next.w, pos.w, isEndVertex);
373
373
  vStipplePerspective = noPerspectiveWrite(
@@ -383,7 +383,7 @@ float segmentLengthPseudoScreen = segmentLengthRender * discreteStippleDistanceT
383
383
  // Disable stipple distance limits on caps
384
384
  vStippleLimitsAndCaps.zw = isJoin ? vec2(0.0) :
385
385
  isStartVertex ? vec2(1.0, 0.0) : vec2(0.0, 1.0);
386
- `)),M.main.add(S`
386
+ `)),M.main.add(b`
387
387
  // Convert back into NDC
388
388
  pos.xy = (pos.xy / viewport.zw) * pos.w;
389
389
  pos.z = pos.z * pos.w;
@@ -397,7 +397,7 @@ float segmentLengthPseudoScreen = segmentLengthRender * discreteStippleDistanceT
397
397
  vpos = (inverseProjectionMatrix * pos).xyz;
398
398
  gl_Position = pos;
399
399
  forwardObjectAndLayerIdColor();
400
- }`),k.include(E,O),k.include(g),N.include(m),N.include(w),N.include(e,O),N.main.add(`discardBySlice(vpos);`),z||N.code.add(S`float lineFeatheringFactor(float lineWidth, float lineDistance) {
400
+ }`),k.include(te,O),k.include(g),N.include(m),N.include(S),N.include(e,O),N.main.add(`discardBySlice(vpos);`),z||N.code.add(b`float lineFeatheringFactor(float lineWidth, float lineDistance) {
401
401
  float stretchFactor = vIsInsideJoin == 1 ? noPerspectiveRead(vStretchFactor) : 1.0;
402
402
  float featherWidth = 2.0;
403
403
  float featherStartDistance = max(lineWidth - featherWidth / stretchFactor, 0.0);
@@ -409,29 +409,29 @@ float joinCenterDistance = abs(vSubdivisionFactor > 0.5 ? joinCenterSDFs.x : joi
409
409
  float straightFeather = (joinCenterDistance - straightFeatherStartDistance) / (lineWidth - straightFeatherStartDistance);
410
410
  feather = vIsInsideJoin == 1 ? max(feather, straightFeather) : feather;
411
411
  return 1.0 - clamp(feather, 0.0, 1.0);
412
- }`),N.main.add(S`
412
+ }`),N.main.add(b`
413
413
  float lineWidth = noPerspectiveRead(vLineWidth);
414
414
  float lineDistance = noPerspectiveRead(vLineDistance);
415
- ${C(Y,S`float lineDistanceNorm = noPerspectiveRead(vLineDistanceNorm);`)}
416
- `),V?N.main.add(S`vec4 albedo = vec4(1.0, 0.0, 1.0, 1.0);
417
- vec4 finalColor = albedo;`):(q&&N.main.add(S`float sdf = noPerspectiveRead(min(vSegmentSDF, vReverseSegmentSDF));
415
+ ${x(Y,b`float lineDistanceNorm = noPerspectiveRead(vLineDistanceNorm);`)}
416
+ `),V?N.main.add(b`vec4 albedo = vec4(1.0, 0.0, 1.0, 1.0);
417
+ vec4 finalColor = albedo;`):(q&&N.main.add(b`float sdf = noPerspectiveRead(min(vSegmentSDF, vReverseSegmentSDF));
418
418
  vec2 fragmentPosition = vec2(min(sdf, 0.0), lineDistance);
419
419
  float fragmentRadius = length(fragmentPosition);
420
420
  float fragmentCapSDF = (fragmentRadius - lineWidth) * 0.5;
421
421
  float capCoverage = clamp(0.5 - fragmentCapSDF, 0.0, 1.0);
422
422
  if (capCoverage < alphaCutoff) {
423
423
  discard;
424
- }`),J?N.main.add(S`
424
+ }`),J?N.main.add(b`
425
425
  vec2 stipplePosition = vec2(
426
426
  min(getStippleCapDistance(), 0.0),
427
- ${Z?S`lineDistance / lineWidth`:S`lineDistanceNorm`}
427
+ ${Z?b`lineDistance / lineWidth`:b`lineDistanceNorm`}
428
428
  );
429
429
  float stippleRadius = length(stipplePosition * lineWidth);
430
430
  float stippleCapSDF = (stippleRadius - lineWidth) * 0.5; // Divide by 2 to transform from double pixel scale
431
431
  float stippleCoverage = clamp(0.5 - stippleCapSDF, 0.0, 1.0);
432
432
  float stippleAlpha = step(alphaCutoff, stippleCoverage);
433
- `):N.main.add(S`float stippleAlpha = getStippleAlpha(lineWidth);`),L!==11&&N.main.add(S`discardByStippleAlpha(stippleAlpha, alphaCutoff);`),N.uniforms.add(new y(`intrinsicColor`,e=>e.color)).main.add(S`vec4 color = intrinsicColor * vColor;
434
- color.a = noPerspectiveRead(color.a);`),H&&N.uniforms.add(new y(`innerColor`,e=>e.innerColor??e.color),new x(`innerWidth`,(e,t)=>e.innerWidth*t.camera.pixelRatio)).main.add(S`float distToInner = abs(lineDistance) - innerWidth;
433
+ `):N.main.add(b`float stippleAlpha = getStippleAlpha(lineWidth);`),L!==11&&N.main.add(b`discardByStippleAlpha(stippleAlpha, alphaCutoff);`),N.uniforms.add(new v(`intrinsicColor`,e=>e.color)).main.add(b`vec4 color = intrinsicColor * vColor;
434
+ color.a = noPerspectiveRead(color.a);`),H&&N.uniforms.add(new v(`innerColor`,e=>e.innerColor??e.color),new y(`innerWidth`,(e,t)=>e.innerWidth*t.camera.pixelRatio)).main.add(b`float distToInner = abs(lineDistance) - innerWidth;
435
435
  float innerAA = clamp(0.5 - distToInner, 0.0, 1.0);
436
436
  float innerAlpha = innerColor.a + color.a * (1.0 - innerColor.a);
437
- color = mix(color, vec4(innerColor.rgb, innerAlpha), innerAA);`),N.main.add(`vec4 albedo = blendStipple(color, stippleAlpha);`),B&&(N.uniforms.add(new x(`falloff`,e=>e.falloff)),N.main.add(S`albedo.a *= pow(max(0.0, 1.0 - abs(lineDistanceNorm)), falloff);`)),z||N.main.add(S`albedo.a *= lineFeatheringFactor(lineWidth, lineDistance);`),U&&(M.main.add(`vec4 animatedAlphaTimeStamps = ${Q.getTextureAttribute(`timeStamps`)};`),k.include(T,O),N.main.add(`albedo.a *= animatedAlpha();`)),I?(j.add(`vnormal`,`vec3`),M.include(o,O),M.main.add(`vnormal = getLocalUp(vpos, localOrigin);`),k.include(n,O),N.main.add(`vec4 finalColor = evaluateSceneLightingFragment(vpos, vnormal, albedo);`)):N.main.add(`vec4 finalColor = albedo;`)),N.main.add(S`outputColorHighlightOLID(applySlice(finalColor, vpos), albedo.rgb);`),k}const A=Object.freeze(Object.defineProperty({__proto__:null,build:k,numRoundJoinSubdivisions:1},Symbol.toStringTag,{value:`Module`}));export{A as R,k as b,O as n};
437
+ color = mix(color, vec4(innerColor.rgb, innerAlpha), innerAA);`),N.main.add(`vec4 albedo = blendStipple(color, stippleAlpha);`),B&&(N.uniforms.add(new y(`falloff`,e=>e.falloff)),N.main.add(b`albedo.a *= pow(max(0.0, 1.0 - abs(lineDistanceNorm)), falloff);`)),z||N.main.add(b`albedo.a *= lineFeatheringFactor(lineWidth, lineDistance);`),U&&(M.main.add(`vec4 animatedAlphaTimeStamps = ${Q.getTextureAttribute(`timeStamps`)};`),k.include(C,O),N.main.add(`albedo.a *= animatedAlpha();`)),I?(j.add(`vnormal`,`vec3`),M.include(o,O),M.main.add(`vnormal = getLocalUp(vpos, localOrigin);`),k.include(n,O),N.main.add(`vec4 finalColor = evaluateSceneLightingFragment(vpos, vnormal, albedo);`)):N.main.add(`vec4 finalColor = albedo;`)),N.main.add(b`outputColorHighlightOLID(applySlice(finalColor, vpos), albedo.rgb);`),k}const A=Object.freeze(Object.defineProperty({__proto__:null,build:k,numRoundJoinSubdivisions:1},Symbol.toStringTag,{value:`Module`}));export{A as R,k as b,O as n};
@@ -1,5 +1,5 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/6.0/LICENSE.txt */
2
- import{ScreenSpacePass as e}from"../views/3d/webgl-engine/core/shaderLibrary/ScreenSpacePass.glsl.js";import{calculateUVZShadowFromDepth as t}from"../views/3d/webgl-engine/core/shaderLibrary/shading/calculateUVZShadowFromDepth.glsl.js";import{readShadowMaps as n}from"../views/3d/webgl-engine/core/shaderLibrary/shading/readShadow.glsl.js";import{glsl as r}from"../views/3d/webgl-engine/core/shaderModules/glsl.js";import{Texture2DBindUniform as i}from"../views/3d/webgl-engine/core/shaderModules/Texture2DBindUniform.js";import{ShaderBuilder as a}from"../views/webgl/ShaderBuilder.js";const o=255;function s(o){let s=new a,{fragment:c}=s;s.include(e),s.include(t),c.include(n,!1),c.constants.add(`sampleValue`,`float`,.00392156862745098);let l=o.index===1?`vec2`:`float`;return s.outputs.add(`sampleCount`,l),c.uniforms.add(new i(`depthMap`,e=>e.depth?.attachment)).main.add(r`
2
+ import{depthMap as e}from"../views/3d/webgl-engine/core/shaderLibrary/bindUniforms.js";import{ScreenSpacePass as t}from"../views/3d/webgl-engine/core/shaderLibrary/ScreenSpacePass.glsl.js";import{calculateUVZShadowFromDepth as n}from"../views/3d/webgl-engine/core/shaderLibrary/shading/calculateUVZShadowFromDepth.glsl.js";import{readShadowMaps as r}from"../views/3d/webgl-engine/core/shaderLibrary/shading/readShadow.glsl.js";import{glsl as i}from"../views/3d/webgl-engine/core/shaderModules/glsl.js";import{ShaderBuilder as a}from"../views/webgl/ShaderBuilder.js";const o=255;function s(o){let s=new a,{fragment:c}=s;s.include(t),s.include(n),c.include(r,!1),c.constants.add(`sampleValue`,`float`,.00392156862745098);let l=o.index===1?`vec2`:`float`;return s.outputs.add(`sampleCount`,l),c.uniforms.add(e).main.add(i`
3
3
  sampleCount = ${l}(0.0);
4
4
 
5
5
  vec3 uvzShadow = calculateUVZShadowFromDepth(uv, textureSize(shadowMap,0), depthMap);
@@ -1,5 +1,5 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/6.0/LICENSE.txt */
2
- import{normalize as e,transformMat4 as t}from"../core/libs/gl-matrix-2/math/vec3.js";import{create as n}from"../core/libs/gl-matrix-2/factories/vec3f64.js";import{NormalFromDepth as r}from"../views/3d/webgl-engine/core/shaderLibrary/NormalFromDepth.glsl.js";import{ScreenSpacePass as i}from"../views/3d/webgl-engine/core/shaderLibrary/ScreenSpacePass.glsl.js";import{calculateUVZShadowFromDepth as a}from"../views/3d/webgl-engine/core/shaderLibrary/shading/calculateUVZShadowFromDepth.glsl.js";import{blendEmission as o}from"../views/3d/webgl-engine/core/shaderLibrary/util/blendEmission.glsl.js";import{Float3BindUniform as s}from"../views/3d/webgl-engine/core/shaderModules/Float3BindUniform.js";import{Float4PassUniform as c}from"../views/3d/webgl-engine/core/shaderModules/Float4PassUniform.js";import{FloatPassUniform as l}from"../views/3d/webgl-engine/core/shaderModules/FloatPassUniform.js";import{glsl as u}from"../views/3d/webgl-engine/core/shaderModules/glsl.js";import{Texture2DBindUniform as d}from"../views/3d/webgl-engine/core/shaderModules/Texture2DBindUniform.js";import{Texture2DShadowBindUniform as f}from"../views/3d/webgl-engine/core/shaderModules/Texture2DShadowBindUniform.js";import{Texture2DUintPassUniform as p}from"../views/3d/webgl-engine/core/shaderModules/Texture2DUintPassUniform.js";import{ShaderBuilder as m}from"../views/webgl/ShaderBuilder.js";function h(n){let h=new m;h.include(a),h.include(i),h.include(r);let{fragment:_,outputs:v}=h;return v.add(`fragColor`,`vec4`,0),_.uniforms.add(new f(`shadowMapExcludingHighlight`,({shadowMap:e})=>e.getOutput(7)),new d(`shadowHighlight`,({shadowHighlight:e})=>e?.getTexture()),new d(`depthMap`,e=>e.mainDepth),new p(`highlightTexture`,e=>e.highlightTexture),new c(`uColor`,e=>e.shadowColor),new l(`opacity`,e=>e.shadowOpacity),new l(`occludedOpacity`,e=>e.occludedShadowOpacity),new l(`terminationFactor`,e=>e.opacityElevation*e.dayNightTerminator),new s(`lightingMainDirectionView`,({lighting:n,camera:r})=>e(g,t(g,n.mainLight.direction,r.viewInverseTransposeMatrix)))),_.main.add(u`
2
+ import{normalize as e,transformMat4 as t}from"../core/libs/gl-matrix-2/math/vec3.js";import{create as n}from"../core/libs/gl-matrix-2/factories/vec3f64.js";import{shadowHighlight as r,mainDepth as i}from"../views/3d/webgl-engine/core/shaderLibrary/bindUniforms.js";import{NormalFromDepth as a}from"../views/3d/webgl-engine/core/shaderLibrary/NormalFromDepth.glsl.js";import{ScreenSpacePass as o}from"../views/3d/webgl-engine/core/shaderLibrary/ScreenSpacePass.glsl.js";import{calculateUVZShadowFromDepth as s}from"../views/3d/webgl-engine/core/shaderLibrary/shading/calculateUVZShadowFromDepth.glsl.js";import{blendEmission as c}from"../views/3d/webgl-engine/core/shaderLibrary/util/blendEmission.glsl.js";import{Float3BindUniform as l}from"../views/3d/webgl-engine/core/shaderModules/Float3BindUniform.js";import{Float4PassUniform as u}from"../views/3d/webgl-engine/core/shaderModules/Float4PassUniform.js";import{FloatPassUniform as d}from"../views/3d/webgl-engine/core/shaderModules/FloatPassUniform.js";import{glsl as f}from"../views/3d/webgl-engine/core/shaderModules/glsl.js";import{Texture2DShadowBindUniform as p}from"../views/3d/webgl-engine/core/shaderModules/Texture2DShadowBindUniform.js";import{Texture2DUintPassUniform as m}from"../views/3d/webgl-engine/core/shaderModules/Texture2DUintPassUniform.js";import{ShaderBuilder as h}from"../views/webgl/ShaderBuilder.js";function g(n){let g=new h;g.include(s),g.include(o),g.include(a);let{fragment:v,outputs:y}=g;return y.add(`fragColor`,`vec4`,0),v.uniforms.add(new p(`shadowMapExcludingHighlight`,({shadowMap:e})=>e.getOutput(7)),r,i,new m(`highlightTexture`,e=>e.highlightTexture),new u(`uColor`,e=>e.shadowColor),new d(`opacity`,e=>e.shadowOpacity),new d(`occludedOpacity`,e=>e.occludedShadowOpacity),new d(`terminationFactor`,e=>e.opacityElevation*e.dayNightTerminator),new l(`lightingMainDirectionView`,({lighting:n,camera:r})=>e(_,t(_,n.mainLight.direction,r.viewInverseTransposeMatrix)))),v.main.add(f`
3
3
  ivec2 highlightTextureSize = textureSize(highlightTexture, 0);
4
4
  ivec2 highlightIUV = ivec2(uv * vec2(highlightTextureSize));
5
5
  uvec2 highlightInfo = texelFetch(highlightTexture, highlightIUV, 0).rg;
@@ -25,7 +25,7 @@ import{normalize as e,transformMat4 as t}from"../core/libs/gl-matrix-2/math/vec3
25
25
  vec3 uvzShadow = calculateUVZShadowAndPixelPosFromDepth(
26
26
  uv,
27
27
  textureSize(shadowMapExcludingHighlight, 0),
28
- depthMap,
28
+ mainDepth,
29
29
  currentPixelPos
30
30
  );
31
31
  if (uvzShadow.z < 0.0) {
@@ -34,10 +34,10 @@ import{normalize as e,transformMat4 as t}from"../core/libs/gl-matrix-2/math/vec3
34
34
 
35
35
  float shadowExcludingHighlightFactor = texture(shadowMapExcludingHighlight, uvzShadow);
36
36
 
37
- vec3 normal = normalFromDepth(depthMap, currentPixelPos.xyz, gl_FragCoord.xy, uv);
38
- bool shaded = dot(normal, lightingMainDirectionView) < ${u.float(.025)};
37
+ vec3 normal = normalFromDepth(mainDepth, currentPixelPos.xyz, gl_FragCoord.xy, uv);
38
+ bool shaded = dot(normal, lightingMainDirectionView) < ${f.float(.025)};
39
39
 
40
40
  float occludedFactor = max(shadowExcludingHighlightFactor, shaded ? 1.0 : 0.0);
41
41
  float fragOpacity = mix(opacity, occludedOpacity, occludedFactor);
42
42
  fragColor = vec4(uColor.rgb, uColor.a * fragOpacity * terminationFactor);
43
- `),h.include(o,n),h}const g=n(),_=Object.freeze(Object.defineProperty({__proto__:null,build:h},Symbol.toStringTag,{value:`Module`}));export{_ as S,h as b};
43
+ `),g.include(c,n),g}const _=n(),v=Object.freeze(Object.defineProperty({__proto__:null,build:g},Symbol.toStringTag,{value:`Module`}));export{v as S,g as b};
@@ -1,5 +1,5 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/6.0/LICENSE.txt */
2
- import{ScreenSpacePass as e}from"../views/3d/webgl-engine/core/shaderLibrary/ScreenSpacePass.glsl.js";import{calculateUVZShadowFromDepth as t}from"../views/3d/webgl-engine/core/shaderLibrary/shading/calculateUVZShadowFromDepth.glsl.js";import{glsl as n}from"../views/3d/webgl-engine/core/shaderModules/glsl.js";import{Texture2DBindUniform as r}from"../views/3d/webgl-engine/core/shaderModules/Texture2DBindUniform.js";import{Texture2DShadowBindUniform as i}from"../views/3d/webgl-engine/core/shaderModules/Texture2DShadowBindUniform.js";import{ShaderBuilder as a}from"../views/webgl/ShaderBuilder.js";function o(){let o=new a;return o.include(e),o.include(t),o.outputs.add(`fragShadow`,`float`),o.fragment.uniforms.add(new i(`shadowMapHighlight`,({shadowMap:e})=>e.getOutput(6)),new r(`depthMap`,({depth:e})=>e?.attachment)).main.add(n`fragShadow = 0.0;
2
+ import{depthMap as e}from"../views/3d/webgl-engine/core/shaderLibrary/bindUniforms.js";import{ScreenSpacePass as t}from"../views/3d/webgl-engine/core/shaderLibrary/ScreenSpacePass.glsl.js";import{calculateUVZShadowFromDepth as n}from"../views/3d/webgl-engine/core/shaderLibrary/shading/calculateUVZShadowFromDepth.glsl.js";import{glsl as r}from"../views/3d/webgl-engine/core/shaderModules/glsl.js";import{Texture2DShadowBindUniform as i}from"../views/3d/webgl-engine/core/shaderModules/Texture2DShadowBindUniform.js";import{ShaderBuilder as a}from"../views/webgl/ShaderBuilder.js";function o(){let o=new a;return o.include(t),o.include(n),o.outputs.add(`fragShadow`,`float`),o.fragment.uniforms.add(new i(`shadowMapHighlight`,({shadowMap:e})=>e.getOutput(6)),e).main.add(r`fragShadow = 0.0;
3
3
  vec3 uvzShadow = calculateUVZShadowFromDepth(uv, textureSize(shadowMapHighlight, 0), depthMap);
4
4
  if (uvzShadow.z >= 0.0) {
5
5
  fragShadow = texture(shadowMapHighlight, uvzShadow);
@@ -1,18 +1,18 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/6.0/LICENSE.txt */
2
- import{create as e}from"../core/libs/gl-matrix-2/factories/vec2f64.js";import{create as t}from"../core/libs/gl-matrix-2/factories/vec3f64.js";import{Transform as n}from"../views/3d/webgl-engine/core/shaderLibrary/Transform.glsl.js";import{mainLightDirection as r}from"../views/3d/webgl-engine/core/shaderLibrary/shading/MainLighting.glsl.js";import{projMatrix as i,viewMatrix as a}from"../views/3d/webgl-engine/core/shaderLibrary/util/cameraUniforms.js";import{Float2PassUniform as o}from"../views/3d/webgl-engine/core/shaderModules/Float2PassUniform.js";import{Float3BindUniform as s}from"../views/3d/webgl-engine/core/shaderModules/Float3BindUniform.js";import{Float3PassUniform as c}from"../views/3d/webgl-engine/core/shaderModules/Float3PassUniform.js";import{FloatPassUniform as l}from"../views/3d/webgl-engine/core/shaderModules/FloatPassUniform.js";import{glsl as u}from"../views/3d/webgl-engine/core/shaderModules/glsl.js";import{Texture2DPassUniform as d}from"../views/3d/webgl-engine/core/shaderModules/Texture2DPassUniform.js";import{NoParameters as f}from"../views/webgl/NoParameters.js";import{ShaderBuilder as p}from"../views/webgl/ShaderBuilder.js";class m extends f{constructor(){super(...arguments),this.texV=e(),this.altitudeFade=0,this.innerScale=0,this.undergroundFadeAlpha=0,this.silhouette=new h}}class h{constructor(){this.center=t(),this.v1=t(),this.v2=t()}}function g(e){let t=new p,{vertex:f,fragment:m}=t;if(f.uniforms.add(r),e.geometry===2)t.attributes.add(`position`,`vec2`),t.varyings.add(`color`,`vec4`),f.uniforms.add(new s(`cameraPosition`,e=>e.camera.eye),new l(`undergroundFadeAlpha`,e=>e.undergroundFadeAlpha)),f.main.add(u`float ndotl = dot(normalize(cameraPosition), mainLightDirection);
2
+ import{create as e}from"../core/libs/gl-matrix-2/factories/vec2f64.js";import{create as t}from"../core/libs/gl-matrix-2/factories/vec3f64.js";import{Transform as n}from"../views/3d/webgl-engine/core/shaderLibrary/Transform.glsl.js";import{mainLightDirection as r}from"../views/3d/webgl-engine/core/shaderLibrary/shading/lightingUniforms.js";import{cameraPosition as i,projMatrix as a,viewMatrix as o}from"../views/3d/webgl-engine/core/shaderLibrary/util/cameraUniforms.js";import{Float2PassUniform as s}from"../views/3d/webgl-engine/core/shaderModules/Float2PassUniform.js";import{Float3PassUniform as c}from"../views/3d/webgl-engine/core/shaderModules/Float3PassUniform.js";import{FloatPassUniform as l}from"../views/3d/webgl-engine/core/shaderModules/FloatPassUniform.js";import{glsl as u}from"../views/3d/webgl-engine/core/shaderModules/glsl.js";import{Texture2DPassUniform as d}from"../views/3d/webgl-engine/core/shaderModules/Texture2DPassUniform.js";import{NoParameters as f}from"../views/webgl/NoParameters.js";import{ShaderBuilder as p}from"../views/webgl/ShaderBuilder.js";class m extends f{constructor(){super(...arguments),this.texV=e(),this.altitudeFade=0,this.innerScale=0,this.undergroundFadeAlpha=0,this.silhouette=new h}}class h{constructor(){this.center=t(),this.v1=t(),this.v2=t()}}function g(e){let t=new p,{vertex:f,fragment:m}=t;if(f.uniforms.add(r),e.geometry===2)t.attributes.add(`position`,`vec2`),t.varyings.add(`color`,`vec4`),f.uniforms.add(i,new l(`undergroundFadeAlpha`,e=>e.undergroundFadeAlpha)),f.main.add(u`float ndotl = dot(normalize(cameraPosition), mainLightDirection);
3
3
  float lighting = max(0.0, smoothstep(-1.0, 0.8, 2.0 * ndotl));
4
4
  color = vec4(vec3(lighting), undergroundFadeAlpha);
5
- gl_Position = vec4(position.xy, 1.0, 1.0);`),m.main.add(u`fragColor = color;`);else{t.include(n),t.attributes.add(`position`,`vec3`),t.varyings.add(`vtc`,`vec2`),t.varyings.add(`falloff`,`float`);let r=e.geometry===1;f.uniforms.add(i,a),r||(t.varyings.add(`innerFactor`,`float`),f.uniforms.add(new c(`silCircleCenter`,e=>e.silhouette.center),new c(`silCircleV1`,e=>e.silhouette.v1),new c(`silCircleV2`,e=>e.silhouette.v2),new o(`texV`,e=>e.texV),new l(`innerScale`,e=>e.innerScale)));let s=1/128;f.main.add(u`
5
+ gl_Position = vec4(position.xy, 1.0, 1.0);`),m.main.add(u`fragColor = color;`);else{t.include(n),t.attributes.add(`position`,`vec3`),t.varyings.add(`vtc`,`vec2`),t.varyings.add(`falloff`,`float`);let r=e.geometry===1;f.uniforms.add(a,o),r||(t.varyings.add(`innerFactor`,`float`),f.uniforms.add(new c(`silCircleCenter`,e=>e.silhouette.center),new c(`silCircleV1`,e=>e.silhouette.v1),new c(`silCircleV2`,e=>e.silhouette.v2),new s(`texV`,e=>e.texV),new l(`innerScale`,e=>e.innerScale)));let i=1/128;f.main.add(u`
6
6
  ${r?u`
7
7
  vec3 pos = position;
8
8
  float ndotl = mainLightDirection.z;
9
9
  vtc = vec2(0.0, position.z + 0.05);`:u`
10
10
  innerFactor = clamp(-position.z, 0.0, 1.0);
11
11
  float scale = position.y * (1.0 + innerFactor * innerScale);
12
- float phi = position.x * ${u.float(6.2831853*s)} + 1.0;
12
+ float phi = position.x * ${u.float(6.2831853*i)} + 1.0;
13
13
  vec3 pos = (silCircleCenter + sin(phi) * silCircleV1 + cos(phi) * silCircleV2) * scale;
14
14
  float ndotl = dot(normalize(position.y > 0.0 ? pos: silCircleCenter), mainLightDirection);
15
- vtc.x = position.x * ${u.float(s)};
15
+ vtc.x = position.x * ${u.float(i)};
16
16
  vtc.y = texV.x * (1.0 - position.z) + texV.y * position.z;
17
17
  `}
18
18
  falloff = max(0.0, smoothstep(-1.0, 0.8, 2.0 * ndotl));
@@ -1,22 +1,22 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/6.0/LICENSE.txt */
2
- import{translate as e}from"../core/libs/gl-matrix-2/math/mat4.js";import{create as t}from"../core/libs/gl-matrix-2/factories/mat4f64.js";import{normalize as n,set as r}from"../core/libs/gl-matrix-2/math/vec3.js";import{create as i}from"../core/libs/gl-matrix-2/factories/vec3f64.js";import{addLinearDepth as a}from"../views/3d/webgl-engine/core/shaderLibrary/ForwardLinearDepth.glsl.js";import{sliceDraw as o}from"../views/3d/webgl-engine/core/shaderLibrary/Slice.glsl.js";import{Transform as s}from"../views/3d/webgl-engine/core/shaderLibrary/Transform.glsl.js";import{NormalAttribute as c}from"../views/3d/webgl-engine/core/shaderLibrary/attributes/NormalAttribute.glsl.js";import{TextureCoordinateAttribute as l}from"../views/3d/webgl-engine/core/shaderLibrary/attributes/TextureCoordinateAttribute.glsl.js";import{VertexTangent as u}from"../views/3d/webgl-engine/core/shaderLibrary/attributes/VertexTangent.glsl.js";import{outputDepth as d}from"../views/3d/webgl-engine/core/shaderLibrary/output/OutputDepth.glsl.js";import{OutputHighlight as f}from"../views/3d/webgl-engine/core/shaderLibrary/output/OutputHighlight.glsl.js";import{OutputHighlightOverlay as p}from"../views/3d/webgl-engine/core/shaderLibrary/output/OutputHighlightOverlay.js";import{EvaluateAmbientOcclusion as m}from"../views/3d/webgl-engine/core/shaderLibrary/shading/EvaluateAmbientOcclusion.glsl.js";import{EvaluateSceneLighting as h,addAmbientBoostFactor as g,lightingGlobalFactor as _}from"../views/3d/webgl-engine/core/shaderLibrary/shading/EvaluateSceneLighting.glsl.js";import{mainLightDirection as v,mainLightIntensity as y}from"../views/3d/webgl-engine/core/shaderLibrary/shading/MainLighting.glsl.js";import{NormalUtils as b}from"../views/3d/webgl-engine/core/shaderLibrary/shading/NormalUtils.glsl.js";import{readShadowDraw as x}from"../views/3d/webgl-engine/core/shaderLibrary/shading/readShadow.glsl.js";import{OverlayTerrain as S}from"../views/3d/webgl-engine/core/shaderLibrary/terrain/Overlay.glsl.js";import{OverlayTerrainPassParameters as C,TerrainTexture as w}from"../views/3d/webgl-engine/core/shaderLibrary/terrain/TerrainTexture.glsl.js";import{viewNormal as T,nearFar as E}from"../views/3d/webgl-engine/core/shaderLibrary/util/cameraUniforms.js";import{addProjViewLocalOrigin as D,addCameraPosition as O}from"../views/3d/webgl-engine/core/shaderLibrary/util/View.glsl.js";import{Float3BindUniform as k}from"../views/3d/webgl-engine/core/shaderModules/Float3BindUniform.js";import{glsl as A,If as j}from"../views/3d/webgl-engine/core/shaderModules/glsl.js";import{Matrix4DrawUniform as M}from"../views/3d/webgl-engine/core/shaderModules/Matrix4DrawUniform.js";import{Texture2DBindUniform as N}from"../views/3d/webgl-engine/core/shaderModules/Texture2DBindUniform.js";import{alphaCutoff as P}from"../views/3d/webgl-engine/shaders/alphaCutoff.glsl.js";import{outputColorHighlightOLID as F}from"../views/3d/webgl-engine/shaders/OutputColorHighlightOLID.glsl.js";import{ShaderBuilder as I}from"../views/webgl/ShaderBuilder.js";class L extends C{constructor(){super(...arguments),this.useStencil=!1}}function R(t){let i=new I,{attributes:C,vertex:L,fragment:R,varyings:V}=i;C.add(`position`,`vec3`),i.include(c,t),i.include(l,t);let H=()=>{L.include(b,t),L.code.add(A`vec3 getNormal() {
2
+ import{translate as e}from"../core/libs/gl-matrix-2/math/mat4.js";import{create as t}from"../core/libs/gl-matrix-2/factories/mat4f64.js";import{normalize as n,set as r}from"../core/libs/gl-matrix-2/math/vec3.js";import{create as i}from"../core/libs/gl-matrix-2/factories/vec3f64.js";import{waterNormals as a}from"../views/3d/webgl-engine/core/shaderLibrary/bindUniforms.js";import{addLinearDepth as o}from"../views/3d/webgl-engine/core/shaderLibrary/ForwardLinearDepth.glsl.js";import{sliceDraw as s}from"../views/3d/webgl-engine/core/shaderLibrary/Slice.glsl.js";import{Transform as c}from"../views/3d/webgl-engine/core/shaderLibrary/Transform.glsl.js";import{NormalAttribute as l}from"../views/3d/webgl-engine/core/shaderLibrary/attributes/NormalAttribute.glsl.js";import{TextureCoordinateAttribute as u}from"../views/3d/webgl-engine/core/shaderLibrary/attributes/TextureCoordinateAttribute.glsl.js";import{VertexTangent as d}from"../views/3d/webgl-engine/core/shaderLibrary/attributes/VertexTangent.glsl.js";import{outputDepth as f}from"../views/3d/webgl-engine/core/shaderLibrary/output/OutputDepth.glsl.js";import{OutputHighlight as p}from"../views/3d/webgl-engine/core/shaderLibrary/output/OutputHighlight.glsl.js";import{OutputHighlightOverlay as m}from"../views/3d/webgl-engine/core/shaderLibrary/output/OutputHighlightOverlay.js";import{EvaluateAmbientOcclusion as h}from"../views/3d/webgl-engine/core/shaderLibrary/shading/EvaluateAmbientOcclusion.glsl.js";import{EvaluateSceneLighting as g,addAmbientBoostFactor as _}from"../views/3d/webgl-engine/core/shaderLibrary/shading/EvaluateSceneLighting.glsl.js";import{lightingGlobalFactor as v,mainLightDirection as y,mainLightIntensity as b}from"../views/3d/webgl-engine/core/shaderLibrary/shading/lightingUniforms.js";import{NormalUtils as x}from"../views/3d/webgl-engine/core/shaderLibrary/shading/NormalUtils.glsl.js";import{readShadowDraw as S}from"../views/3d/webgl-engine/core/shaderLibrary/shading/readShadow.glsl.js";import{OverlayTerrain as C}from"../views/3d/webgl-engine/core/shaderLibrary/terrain/Overlay.glsl.js";import{OverlayTerrainPassParameters as w,TerrainTexture as T}from"../views/3d/webgl-engine/core/shaderLibrary/terrain/TerrainTexture.glsl.js";import{viewNormal as E,nearFar as D}from"../views/3d/webgl-engine/core/shaderLibrary/util/cameraUniforms.js";import{addProjViewLocalOrigin as O,addCameraPosition as k}from"../views/3d/webgl-engine/core/shaderLibrary/util/View.glsl.js";import{Float3BindUniform as A}from"../views/3d/webgl-engine/core/shaderModules/Float3BindUniform.js";import{glsl as j,If as M}from"../views/3d/webgl-engine/core/shaderModules/glsl.js";import{Matrix4DrawUniform as N}from"../views/3d/webgl-engine/core/shaderModules/Matrix4DrawUniform.js";import{alphaCutoff as P}from"../views/3d/webgl-engine/shaders/alphaCutoff.glsl.js";import{outputColorHighlightOLID as F}from"../views/3d/webgl-engine/shaders/OutputColorHighlightOLID.glsl.js";import{ShaderBuilder as I}from"../views/webgl/ShaderBuilder.js";class L extends w{constructor(){super(...arguments),this.useStencil=!1}}function R(t){let i=new I,{attributes:w,vertex:L,fragment:R,varyings:V}=i;w.add(`position`,`vec3`),i.include(l,t),i.include(u,t);function H(){L.include(x,t),L.code.add(j`vec3 getNormal() {
3
3
  float z = 1.0 - abs(normalCompressed.x) - abs(normalCompressed.y);
4
4
  vec3 n = vec3(normalCompressed + vec2(normalCompressed.x >= 0.0 ? 1.0 : -1.0,
5
5
  normalCompressed.y >= 0.0 ? 1.0 : -1.0) * min(z, 0.0), z);
6
6
  return normalize(n);
7
- }`)};D(L,t),i.include(s),R.include(P);let{output:U,overlayMode:W,tileBorders:G,transparencyMode:K,overlayEnabled:q,renderOccluded:J}=t,Y=K===2||K===3,X=q&&Y;switch(U){case 0:case 1:case 2:{let a=U===0&&!J?``:`discard`;i.include(w,t),R.include(h,t),q&&i.include(S,t);let s=W===2;s&&i.include(u,t),V.add(`vnormal`,`vec3`),V.add(`vpos`,`vec3`,{invariant:!0}),V.add(`upNormal`,`vec3`),H(),L.main.add(A`
7
+ }`)}O(L,t),i.include(c),R.include(P);let{output:U,overlayMode:W,tileBorders:G,transparencyMode:K,overlayEnabled:q,renderOccluded:J}=t,Y=K===2||K===3,X=q&&Y;switch(U){case 0:case 1:case 2:{i.include(T,t),R.include(g,t),q&&i.include(C,t);let o=W===2;o&&i.include(d,t),V.add(`vnormal`,`vec3`),V.add(`vpos`,`vec3`,{invariant:!0}),V.add(`upNormal`,`vec3`),H(),L.main.add(j`
8
8
  vpos = position;
9
9
  vec3 positionWorld = position + localOrigin;
10
10
  gl_Position = transformPosition(proj, view, vpos);
11
11
  vnormal = getNormal();
12
12
  upNormal = getLocalUp(position, localOrigin);
13
- ${j(s,A`forwardVertexTangent(vnormal);`)}
13
+ ${M(o,j`forwardVertexTangent(vnormal);`)}
14
14
 
15
15
  forwardTextureCoordinatesWithTransform(uv0);
16
- ${j(q,`setOverlayVTC(uv0);`)}
17
- ${j(G,`forwardTextureCoordinates();`)}
16
+ ${M(q,`setOverlayVTC(uv0);`)}
17
+ ${M(G,`forwardTextureCoordinates();`)}
18
18
  forwardLinearDepthToReadShadow();
19
- `),i.include(x,t),R.include(o,t),R.include(h,t),R.include(m,t),i.include(F,t),O(R,t),g(R),R.uniforms.add(_),R.uniforms.add(L.uniforms.get(`localOrigin`),new k(`viewDirection`,({camera:e})=>n(B,r(B,e.viewMatrix[12],e.viewMatrix[13],e.viewMatrix[14])))),s&&R.uniforms.add(new N(`ovWaterTex`,e=>e.overlay?.getTexture(3)),new M(`view`,({origin:t},{camera:n})=>e(z,n.viewMatrix,t))),R.uniforms.add(v,y).main.add(A`
19
+ `);let c=U===0&&!J?``:`discard`;i.include(S,t),R.include(s,t),R.include(g,t),R.include(h,t),i.include(F,t),k(R,t),_(R),R.uniforms.add(v),R.uniforms.add(L.uniforms.get(`localOrigin`),new A(`viewDirection`,({camera:e})=>n(B,r(B,e.viewMatrix[12],e.viewMatrix[13],e.viewMatrix[14])))),o&&R.uniforms.add(a,new N(`view`,({origin:t},{camera:n})=>e(z,n.viewMatrix,t))),R.uniforms.add(y,b).main.add(j`
20
20
  vec3 normal = normalize(vnormal);
21
21
  float lightAlignment = dot(normal, mainLightDirection);
22
22
 
@@ -25,13 +25,13 @@ return normalize(n);
25
25
  float ssao = evaluateAmbientOcclusionInverse();
26
26
  vec4 tileColor = getTileColor();
27
27
 
28
- ${j(q,A`vec4 overlayColorOpaque = getOverlayColor(ovColorTex, vtcOverlay);
28
+ ${M(q,j`vec4 overlayColorOpaque = getOverlayColor(ovColorTex, vtcOverlay);
29
29
  vec4 overlayColor = overlayOpacity * overlayColorOpaque;
30
- ${j(Y,`if (overlayColor.a < alphaCutoff) ${a};`)}
30
+ ${M(Y,`if (overlayColor.a < alphaCutoff) ${c};`)}
31
31
  vec4 groundColor = tileColor;
32
32
  tileColor = blendColorsPremultiplied(overlayColor, tileColor);`)}
33
33
 
34
- if(tileColor.a < alphaCutoff) ${a};
34
+ if(tileColor.a < alphaCutoff) ${c};
35
35
 
36
36
  bool sliced = rejectBySlice(vpos);
37
37
  if (sliced) {
@@ -44,39 +44,36 @@ return normalize(n);
44
44
  // heuristic shading function used in the old terrain, now used to add ambient lighting
45
45
  vec3 additionalLight = ssao * mainLightIntensity * additionalAmbientScale * ambientBoostFactor * lightingGlobalFactor;
46
46
  vec4 finalColor = vec4(evaluateSceneLighting(normal, albedo, shadow, 1.0 - ssao, additionalLight, viewDirection, upNormal), tileColor.a);
47
- ${j(s,A`vec4 overlayWaterMask = getOverlayColor(ovWaterTex, vtcOverlay);
47
+ ${M(o,j`vec4 overlayWaterMask = getOverlayColor(waterNormals, vtcOverlay);
48
48
  float waterNormalLength = length(overlayWaterMask);
49
49
  if (waterNormalLength > 0.95) {
50
- mat3 tbnMatrix = mat3(tbnTangent, tbnBiTangent, vnormal);
50
+ mat3 tbnMatrix = mat3(tbnTangent, tbnBiTangent, normal);
51
51
  vec4 waterOverlayColor = vec4(overlayColor.w > 0.0 ? overlayColorOpaque.xyz/overlayColor.w : vec3(1.0), overlayColor.w);
52
52
  vec4 viewPosition = view * vec4(vpos, 1.0);
53
- vec4 waterColorLinear = getOverlayWaterColor(overlayWaterMask, waterOverlayColor, -normalize(vpos - cameraPosition), shadow, vnormal, tbnMatrix, viewPosition.xyz, vpos + localOrigin);
53
+ vec4 waterColorLinear = getOverlayWaterColor(overlayWaterMask, waterOverlayColor, -normalize(vpos - cameraPosition), shadow, normal, tbnMatrix, viewPosition.xyz, vpos + localOrigin);
54
54
  vec4 waterColorNonLinear = delinearizeGamma(vec4(waterColorLinear.xyz, 1.0));
55
55
  float opacity = sliced ? groundSliceOpacity : 1.0;
56
56
  // un-gamma the ground color to mix in linear space
57
57
  finalColor = mix(groundColor, waterColorNonLinear, waterColorLinear.w) * opacity;
58
58
  }`)}
59
- ${j(G,A`vec2 dVuv = fwidth(vuv0);
59
+ ${M(G,j`vec2 dVuv = fwidth(vuv0);
60
60
  vec2 edgeFactors = smoothstep(vec2(0.0), 1.5 * dVuv, min(vuv0, 1.0 - vuv0));
61
61
  float edgeFactor = 1.0 - min(edgeFactors.x, edgeFactors.y);
62
62
  finalColor = mix(finalColor, vec4(1.0, 0.0, 0.0, 1.0), edgeFactor);`)}
63
- outputColorHighlightOLID(applySlice(finalColor, vpos), finalColor.rgb);`)}break;case 3:X&&i.include(S,t),L.main.add(A`
64
- ${j(X,`setOverlayVTC(uv0);`)}
65
- gl_Position = transformPosition(proj, view, position);`),R.main.add(`${j(X,`if (getCombinedOverlayColor().a < alphaCutoff) discard;`)}`);break;case 5:case 6:case 7:case 8:i.include(d,t),R.main.add(`outputDepth(linearDepth);`);case 9:a(i),L.uniforms.add(E).main.add(`gl_Position = transformPositionWithDepth(proj, view, position, nearFar, linearDepth);`),R.main.add(``);break;case 4:X&&i.include(S,t),V.add(`vnormal`,`vec3`),L.uniforms.add(T),H(),L.main.add(A`
66
- ${j(X,`setOverlayVTC(uv0);`)}
63
+ outputColorHighlightOLID(applySlice(finalColor, vpos), finalColor.rgb);`)}break;case 3:X&&i.include(C,t),L.main.add(j`
64
+ ${M(X,`setOverlayVTC(uv0);`)}
65
+ gl_Position = transformPosition(proj, view, position);`),R.main.add(`${M(X,`if (getCombinedOverlayColor().a < alphaCutoff) discard;`)}`);break;case 5:case 6:case 7:case 8:i.include(f,t),R.main.add(`outputDepth(linearDepth);`);case 9:o(i),L.uniforms.add(D).main.add(`gl_Position = transformPositionWithDepth(proj, view, position, nearFar, linearDepth);`),R.main.add(``);break;case 4:X&&i.include(C,t),V.add(`vnormal`,`vec3`),L.uniforms.add(E),H(),L.main.add(j`
66
+ ${M(X,`setOverlayVTC(uv0);`)}
67
67
  gl_Position = transformPosition(proj, view, position);
68
- vnormal = normalize((viewNormal * vec4(getNormal(), 1.0)).xyz);`),R.main.add(A`
69
- float opacity = 1.0;
70
- ${j(X,`
71
- opacity = getCombinedOverlayColor().a;
72
- if (opacity < alphaCutoff) discard;`)}
73
- vec3 normal = normalize(vnormal);
74
- if (gl_FrontFacing == false) {
75
- normal = -normal;
76
- }
77
- fragColor = vec4(vec3(0.5) + 0.5 * normal, opacity);`);break;case 10:q&&(i.include(S,t),i.include(p,t)),L.main.add(A`
78
- ${j(q,`setOverlayVTC(uv0);`)}
79
- gl_Position = transformPosition(proj, view, position);`),i.include(f,t),R.main.add(A`
80
- ${j(q,`calculateOcclusionAndOutputHighlight(getAllOverlayHighlightValuesEncoded());`,`calculateOcclusionAndOutputHighlight();`)}
81
- `);break;case 11:if(q)i.include(S,t),L.main.add(A`gl_Position = transformPosition(proj, view, position);
82
- setOverlayVTC(uv0);`),R.main.add(A`fragColor = getOverlayColorTexel();`);else{let e=K===0;L.main.add(A`${j(e,`gl_Position = transformPosition(proj, view, position);`)}`),R.main.add(A`fragColor = vec4(0.0);`)}}return i}const z=t(),B=i(),V=Object.freeze(Object.defineProperty({__proto__:null,TerrainPassParameters:L,build:R},Symbol.toStringTag,{value:`Module`}));export{L as T,V as a,R as b};
68
+ vnormal = normalize((viewNormal * vec4(getNormal(), 1.0)).xyz);
69
+ `),R.main.add(`float opacity = 1.0;`),X&&R.main.add(j`opacity = getCombinedOverlayColor().a;
70
+ if (opacity < alphaCutoff) discard;`),R.main.add(j`vec3 normal = normalize(vnormal);
71
+ if (gl_FrontFacing == false) {
72
+ normal = -normal;
73
+ }
74
+ fragColor = vec4(vec3(0.5) + 0.5 * normal, opacity);`);break;case 10:q&&(i.include(C,t),i.include(m,t)),L.main.add(j`
75
+ ${M(q,`setOverlayVTC(uv0);`)}
76
+ gl_Position = transformPosition(proj, view, position);`),i.include(p,t),R.main.add(j`
77
+ ${M(q,`calculateOcclusionAndOutputHighlight(getAllOverlayHighlightValuesEncoded());`,`calculateOcclusionAndOutputHighlight();`)}
78
+ `);break;case 11:if(q)i.include(C,t),L.main.add(j`gl_Position = transformPosition(proj, view, position);
79
+ setOverlayVTC(uv0);`),R.main.add(j`fragColor = getOverlayColorTexel();`);else{let e=K===0;L.main.add(j`${M(e,`gl_Position = transformPosition(proj, view, position);`)}`),R.main.add(j`fragColor = vec4(0.0);`)}}return i}const z=t(),B=i(),V=Object.freeze(Object.defineProperty({__proto__:null,TerrainPassParameters:L,build:R},Symbol.toStringTag,{value:`Module`}));export{L as T,V as a,R as b};