@arcgis/core 5.2.0-next.117 → 5.2.0-next.118

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 (190) hide show
  1. package/analysis/ElevationProfile/ElevationProfileLineQuery.d.ts +1 -1
  2. package/analysis/featureReferenceUtils.js +1 -1
  3. package/arcade.d.ts +1 -1
  4. package/arcade.js +1 -1
  5. package/assets/esri/core/workers/RemoteClient.js +1 -1
  6. package/assets/esri/core/workers/chunks/03918a862455191a8910.js +1 -0
  7. package/assets/esri/core/workers/chunks/{9b9a60f1e0c48aa701f0.js → 066b7f6866d602f963e0.js} +1 -1
  8. package/assets/esri/core/workers/chunks/{4bfd63f3cf9208eb839b.js → 0dc317d022807af92e3f.js} +41 -41
  9. package/assets/esri/core/workers/chunks/{564fdf0d663b773806cc.js → 114bc14c49176f64a2c5.js} +1 -1
  10. package/assets/esri/core/workers/chunks/1630913399384030d0b9.js +1 -0
  11. package/assets/esri/core/workers/chunks/{db141122060d8d9b38da.js → 1742dbc6a827cfda471b.js} +1 -1
  12. package/assets/esri/core/workers/chunks/{045ff98313b06a2188b7.js → 1a39335aa2dce6d564d9.js} +1 -1
  13. package/assets/esri/core/workers/chunks/{caf38cf4d8542fb11c46.js → 20e4277a4a6c57957202.js} +1 -1
  14. package/assets/esri/core/workers/chunks/{729d458e9e28641227cd.js → 21c0743b2f612e7e7de3.js} +1 -1
  15. package/assets/esri/core/workers/chunks/{f42243c62dd0b6993816.js → 24014f3701c31ee74bc2.js} +1 -1
  16. package/assets/esri/core/workers/chunks/37cf4ca2083cd3b6002e.js +1 -0
  17. package/assets/esri/core/workers/chunks/{44d3fe10cb35d16f0b33.js → 4396ef5ab3eb9e9a7df2.js} +1 -1
  18. package/assets/esri/core/workers/chunks/{3b499cfc89c8f87cdb20.js → 4925d0b29a166cc8fee1.js} +1 -1
  19. package/assets/esri/core/workers/chunks/{56989b48c0a5d7fe85e6.js → 4c4ba466e23159991322.js} +1 -1
  20. package/assets/esri/core/workers/chunks/{b9023cc3298ee4fddea7.js → 54f3bc940cea15fce2c7.js} +1 -1
  21. package/assets/esri/core/workers/chunks/{7e42be27ead91a4cc0f1.js → 581285e4d7bbe1b7c27a.js} +1 -1
  22. package/assets/esri/core/workers/chunks/{05584d8828ae7bca0fc5.js → 64ee22134fda2f09c094.js} +1 -1
  23. package/assets/esri/core/workers/chunks/6efc5873747b9cd44fb9.js +1 -0
  24. package/assets/esri/core/workers/chunks/{0463c807b37f01bbc35c.js → 70347d25968975126fa7.js} +1 -1
  25. package/assets/esri/core/workers/chunks/{1eafb214519d8fc63ccb.js → 8465e2c7221125fd3cc4.js} +1 -1
  26. package/assets/esri/core/workers/chunks/862e1acd80c4e43831dc.js +1 -0
  27. package/assets/esri/core/workers/chunks/{fd808d38ae2d475ac442.js → 8675ab3c4dec2f13b9c6.js} +1 -1
  28. package/assets/esri/core/workers/chunks/{925a0b29d3ed7165b8dd.js → 8984d02c0ce828fd223a.js} +1 -1
  29. package/assets/esri/core/workers/chunks/{57328c206f1e699ac06f.js → 89edaa1ffa566908ebca.js} +1 -1
  30. package/assets/esri/core/workers/chunks/{bb4cbf6b7c35e8c78cc7.js → a917a1df8270860dc514.js} +1 -1
  31. package/assets/esri/core/workers/chunks/{996438b3afec92c5c68e.js → b0058619e0363002ad86.js} +1 -1
  32. package/assets/esri/core/workers/chunks/{9fb46ccd4be4c3b61c31.js → b5a102cf9f4377fb9842.js} +1 -1
  33. package/assets/esri/core/workers/chunks/b6409d89914030d5854a.js +1 -0
  34. package/assets/esri/core/workers/chunks/{2e0fd0536408053ac6f5.js → b961e0aaa6b3ea75315c.js} +1 -1
  35. package/assets/esri/core/workers/chunks/{fa869977ac2abb063925.js → b9c834e3c0701e9b14a2.js} +1 -1
  36. package/assets/esri/core/workers/chunks/{32dd990a3bd93cbad309.js → c0ec87800faf99cbd8bd.js} +1 -1
  37. package/assets/esri/core/workers/chunks/{20de0ea9fa08a6545978.js → cf1106eda10f3cccb1bd.js} +1 -1
  38. package/assets/esri/core/workers/chunks/{ed988360264574cd8f6b.js → cf7c06702babd6fa88b4.js} +1 -1
  39. package/assets/esri/core/workers/chunks/cfd8317ecd2e63af7c40.js +1 -0
  40. package/assets/esri/core/workers/chunks/d090baaa974e1e83fa44.js +1 -0
  41. package/assets/esri/core/workers/chunks/{c5ceceb0683671f92efa.js → da6583e8d88441a1c02a.js} +1 -1
  42. package/assets/esri/core/workers/chunks/{e1f2b07be33e33117313.js → dd02cc18ebebb90778c6.js} +1 -1
  43. package/assets/esri/core/workers/chunks/de8a3a0796bd115426c0.js +1 -0
  44. package/assets/esri/core/workers/chunks/{05b373a663cb5d4d722f.js → deb5b1d772ca407654d4.js} +1 -1
  45. package/assets/esri/core/workers/chunks/{10fa8fbade8ae084c307.js → e22a013ec38989caf9de.js} +1 -1
  46. package/assets/esri/core/workers/chunks/{c7e6b5594fed5bb16691.js → e4016ae9cb8f16e3efc3.js} +1 -1
  47. package/assets/esri/core/workers/chunks/e5f0c47957a4e9663720.js +1 -0
  48. package/assets/esri/core/workers/chunks/{a3f4818f4190fa92331d.js → edd36e98355f1655e5c8.js} +1 -1
  49. package/assets/esri/core/workers/chunks/ef6e52f9b656751eebaf.js +1 -0
  50. package/assets/esri/core/workers/chunks/f0709c48daca93e759c8.js +1 -0
  51. package/assets/esri/core/workers/chunks/f5423006fb07db7dd6ee.js +1 -0
  52. package/assets/esri/core/workers/chunks/{d926bffc3ff9f87e9081.js → f890359d972cce54459e.js} +1 -1
  53. package/assets/esri/core/workers/chunks/fb11ff3f2eae5f072560.js +1 -0
  54. package/assets/esri/core/workers/chunks/fdad31bbe8aee68a6eaf.js +1 -0
  55. package/assets/esri/core/workers/chunks/fe1787a8d499832996b3.js +1 -0
  56. package/chunks/CloudsComposition.glsl.js +2 -2
  57. package/chunks/ColorMaterial.glsl.js +3 -3
  58. package/chunks/Compositing.glsl.js +4 -4
  59. package/chunks/DeepSky.glsl.js +3 -3
  60. package/chunks/EdgeShader.glsl.js +6 -6
  61. package/chunks/FocusArea.glsl.js +1 -1
  62. package/chunks/GlobalIllumination.glsl.js +7 -7
  63. package/chunks/HUDMaterial.glsl.js +5 -5
  64. package/chunks/LaserlinePath.glsl.js +5 -5
  65. package/chunks/LineCallout.glsl.js +2 -2
  66. package/chunks/LineMarker.glsl.js +30 -30
  67. package/chunks/NavigationDepth.glsl.js +1 -1
  68. package/chunks/OccludedGeometryDepth.glsl.js +2 -2
  69. package/chunks/Path.glsl.js +12 -12
  70. package/chunks/PointRenderer.glsl.js +5 -5
  71. package/chunks/Precipitation.glsl.js +7 -7
  72. package/chunks/RibbonLine.glsl.js +50 -50
  73. package/chunks/SimpleAtmosphere.glsl.js +9 -9
  74. package/chunks/Stars.glsl.js +5 -5
  75. package/chunks/Terrain.glsl.js +18 -16
  76. package/chunks/Viewshed.glsl.js +3 -3
  77. package/chunks/VolumeMask.glsl.js +2 -2
  78. package/chunks/Water.glsl.js +20 -19
  79. package/config.js +1 -1
  80. package/core/NestedMap.js +1 -1
  81. package/kernel.js +1 -1
  82. package/layers/AnnotationFeatureLayer.d.ts +2 -1
  83. package/layers/AnnotationFeatureLayer.js +1 -1
  84. package/layers/CatalogLayer.d.ts +2 -1
  85. package/layers/CatalogLayer.js +1 -1
  86. package/layers/DimensionFeatureLayer.d.ts +2 -1
  87. package/layers/DimensionFeatureLayer.js +1 -1
  88. package/layers/FeatureLayer.d.ts +2 -30
  89. package/layers/FeatureLayer.js +1 -1
  90. package/layers/Lyr3DWasmPerSceneView.js +1 -1
  91. package/layers/SubtypeGroupLayer.d.ts +2 -1
  92. package/layers/SubtypeGroupLayer.js +1 -1
  93. package/layers/graphics/sources/FeatureLayerSource.js +1 -1
  94. package/layers/mixins/FeatureLayerBase.js +1 -1
  95. package/layers/mixins/FeatureLayerReload.d.ts +26 -0
  96. package/layers/mixins/FeatureLayerReload.js +2 -0
  97. package/layers/mixins/PortalLayer.js +1 -1
  98. package/layers/support/TimeInfo.d.ts +2 -2
  99. package/layers/support/TimeInfo.js +1 -1
  100. package/layers/support/fieldUtils.js +1 -1
  101. package/package.json +2 -2
  102. package/support/revision.js +1 -1
  103. package/time/timeZoneUtils.js +1 -1
  104. package/views/3d/analysis/LineOfSight/LineOfSightEditTool.js +1 -1
  105. package/views/3d/analysis/LineOfSight/LineOfSightItemTool.js +1 -1
  106. package/views/3d/interactive/editingTools/move/MoveTool3D.js +1 -1
  107. package/views/3d/interactive/visualElements/MeasurementArrowVisualElement.js +1 -1
  108. package/views/3d/support/engineContent/line.js +1 -1
  109. package/views/3d/webgl-engine/core/shaderLibrary/ForwardLinearDepth.glsl.js +2 -2
  110. package/views/3d/webgl-engine/core/shaderLibrary/ForwardLinearDepthToWriteShadowMap.glsl.js +4 -4
  111. package/views/3d/webgl-engine/core/shaderLibrary/attributes/InstancedDoublePrecision.glsl.js +9 -9
  112. package/views/3d/webgl-engine/core/shaderLibrary/default/DefaultMaterialAuxiliaryPasses.glsl.js +15 -15
  113. package/views/3d/webgl-engine/core/shaderLibrary/hud/HUD.glsl.js +3 -3
  114. package/views/3d/webgl-engine/core/shaderLibrary/shading/MarkerSizing.glsl.js +23 -23
  115. package/views/3d/webgl-engine/core/shaderLibrary/shading/ScreenSpaceRayMarching.glsl.js +8 -8
  116. package/views/3d/webgl-engine/core/shaderLibrary/shading/WaterColor.glsl.js +7 -7
  117. package/views/3d/webgl-engine/core/shaderLibrary/util/CloudsParallaxShading.glsl.js +7 -7
  118. package/views/3d/webgl-engine/core/shaderLibrary/util/View.glsl.js +1 -1
  119. package/views/3d/webgl-engine/core/shaderLibrary/util/cameraUniforms.js +2 -0
  120. package/views/3d/webgl-engine/effects/AmbientIllumination.js +1 -1
  121. package/views/3d/webgl-engine/effects/atmosphere/SimpleAtmosphere.glsl.js +1 -1
  122. package/views/3d/webgl-engine/effects/clouds/CloudsComposition.glsl.js +1 -1
  123. package/views/3d/webgl-engine/effects/globalIllumination/GlobalIllumination.glsl.js +1 -1
  124. package/views/3d/webgl-engine/effects/globalIllumination/GlobalIllumination.js +1 -1
  125. package/views/3d/webgl-engine/effects/laserlines/LaserlinePath.glsl.js +1 -1
  126. package/views/3d/webgl-engine/effects/precipitation/Precipitation.glsl.js +1 -1
  127. package/views/3d/webgl-engine/effects/ssao/SSAO.js +1 -1
  128. package/views/3d/webgl-engine/effects/stars/DeepSky.glsl.js +1 -1
  129. package/views/3d/webgl-engine/effects/stars/Stars.glsl.js +1 -1
  130. package/views/3d/webgl-engine/lib/LineMaterial.js +1 -1
  131. package/views/3d/webgl-engine/lib/Program.js +1 -1
  132. package/views/3d/webgl-engine/lib/RenderFeature.js +1 -1
  133. package/views/3d/webgl-engine/lib/edgeRendering/AdjustProjectedPosition.glsl.js +4 -4
  134. package/views/3d/webgl-engine/lib/edgeRendering/EdgeShader.glsl.js +1 -1
  135. package/views/3d/webgl-engine/materials/LineCalloutMaterial.js +1 -1
  136. package/views/3d/webgl-engine/materials/LineMarkerMaterial.js +1 -1
  137. package/views/3d/webgl-engine/materials/MeasurementArrowMaterial.js +1 -1
  138. package/views/3d/webgl-engine/materials/NativeLineMaterial.js +1 -1
  139. package/views/3d/webgl-engine/materials/Path.glsl.js +1 -1
  140. package/views/3d/webgl-engine/materials/PolygonOffset.js +1 -1
  141. package/views/3d/webgl-engine/materials/RibbonLineMaterial.js +1 -1
  142. package/views/3d/webgl-engine/materials/ViewingModeConfiguration.js +1 -1
  143. package/views/3d/webgl-engine/materials/Water.glsl.js +1 -1
  144. package/views/3d/webgl-engine/materials/renderers/PerBufferData.js +1 -1
  145. package/views/3d/webgl-engine/parts/RenderView.js +1 -1
  146. package/views/3d/webgl-engine/shaders/ColorMaterial.glsl.js +1 -1
  147. package/views/3d/webgl-engine/shaders/Compositing.glsl.js +1 -1
  148. package/views/3d/webgl-engine/shaders/GaussianSplatPass.glsl.js +26 -26
  149. package/views/3d/webgl-engine/shaders/GaussianSplatTechniqueConfiguration.js +1 -1
  150. package/views/3d/webgl-engine/shaders/HUDMaterial.glsl.js +1 -1
  151. package/views/3d/webgl-engine/shaders/LineCallout.glsl.js +1 -1
  152. package/views/3d/webgl-engine/shaders/LineCalloutTechniqueConfiguration.js +1 -1
  153. package/views/3d/webgl-engine/shaders/LineMarker.glsl.js +1 -1
  154. package/views/3d/webgl-engine/shaders/LineMarkerTechnique.js +1 -1
  155. package/views/3d/webgl-engine/shaders/LineMarkerTechniqueConfiguration.js +1 -1
  156. package/views/3d/webgl-engine/shaders/LineTechniqueConfiguration.js +2 -0
  157. package/views/3d/webgl-engine/shaders/MeasurementArrowTechniqueConfiguration.js +1 -1
  158. package/views/3d/webgl-engine/shaders/NativeLineTechniqueConfiguration.js +1 -1
  159. package/views/3d/webgl-engine/shaders/NavigationDepth.glsl.js +1 -1
  160. package/views/3d/webgl-engine/shaders/OccludedGeometryDepth.glsl.js +1 -1
  161. package/views/3d/webgl-engine/shaders/PointRenderer.glsl.js +1 -1
  162. package/views/3d/webgl-engine/shaders/RibbonLine.glsl.js +1 -1
  163. package/views/3d/webgl-engine/shaders/RibbonLineTechniqueConfiguration.js +1 -1
  164. package/views/3d/webgl-engine/shaders/ScreenSpacePassAtmosphere.glsl.js +1 -1
  165. package/views/3d/webgl-engine/shaders/Terrain.glsl.js +1 -1
  166. package/views/3d/webgl-engine/shaders/Viewshed.glsl.js +1 -1
  167. package/views/3d/webgl-engine/shaders/VolumeMask.glsl.js +1 -1
  168. package/widgets/ElevationProfile/ElevationProfileLineQuery.d.ts +1 -1
  169. package/widgets/OrientedImageryViewer/adapters/view/SceneViewAdapter.js +1 -1
  170. package/widgets/ValuePicker.d.ts +1 -1
  171. package/widgets/ValuePicker.js +1 -1
  172. package/widgets/VideoPlayer/VideoPlayerViewModel.d.ts +4 -2
  173. package/widgets/VideoPlayer/VideoPlayerViewModel.js +1 -1
  174. package/widgets/VideoPlayer.js +1 -1
  175. package/assets/esri/core/workers/chunks/0630e650abdfea1792e4.js +0 -1
  176. package/assets/esri/core/workers/chunks/0edebc6c516f0b9dac7b.js +0 -1
  177. package/assets/esri/core/workers/chunks/25c5e1b14b184b1228a3.js +0 -1
  178. package/assets/esri/core/workers/chunks/573e8fa0af8711ffec45.js +0 -1
  179. package/assets/esri/core/workers/chunks/5b9925f23d4b10a7087e.js +0 -1
  180. package/assets/esri/core/workers/chunks/66c46c5a7147550ea3ed.js +0 -1
  181. package/assets/esri/core/workers/chunks/6c7cb7974969e3167f2b.js +0 -1
  182. package/assets/esri/core/workers/chunks/7bbc3d22383388d11345.js +0 -1
  183. package/assets/esri/core/workers/chunks/7edf57e31ff07af9032b.js +0 -1
  184. package/assets/esri/core/workers/chunks/8bd187b48a4e4296e3d8.js +0 -1
  185. package/assets/esri/core/workers/chunks/9acaabe950319d031f2e.js +0 -1
  186. package/assets/esri/core/workers/chunks/ac02df176f9ea94278bb.js +0 -1
  187. package/assets/esri/core/workers/chunks/b4222152efaf73b37b53.js +0 -1
  188. package/assets/esri/core/workers/chunks/c0855be20ffcd52c7026.js +0 -1
  189. package/assets/esri/core/workers/chunks/e606be4ece4eac1e9bbe.js +0 -1
  190. package/assets/esri/core/workers/chunks/f05622413cadfd14553e.js +0 -1
@@ -1,5 +1,5 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.2/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{EvaluateAmbientOcclusion as i}from"../views/3d/webgl-engine/core/shaderLibrary/shading/EvaluateAmbientOcclusion.glsl.js";import{EvaluateSceneLighting as n}from"../views/3d/webgl-engine/core/shaderLibrary/shading/EvaluateSceneLighting.glsl.js";import{LineStipple as r,computePixelSize as o}from"../views/3d/webgl-engine/core/shaderLibrary/shading/LineStipple.glsl.js";import{mainLightIntensity as a}from"../views/3d/webgl-engine/core/shaderLibrary/shading/MainLighting.glsl.js";import{MarkerSizing as s}from"../views/3d/webgl-engine/core/shaderLibrary/shading/MarkerSizing.glsl.js";import{NormalUtils as l}from"../views/3d/webgl-engine/core/shaderLibrary/shading/NormalUtils.glsl.js";import{PiUtils as d}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{ColorConversion as p}from"../views/3d/webgl-engine/core/shaderLibrary/util/ColorConversion.glsl.js";import{NoPerspectiveWrite as m,NoPerspectiveRead as v}from"../views/3d/webgl-engine/core/shaderLibrary/util/NoPerspective.glsl.js";import{addProjViewLocalOrigin as g,addPixelRatio as f,addCameraPosition as h}from"../views/3d/webgl-engine/core/shaderLibrary/util/View.glsl.js";import{Float2BindUniform as u}from"../views/3d/webgl-engine/core/shaderModules/Float2BindUniform.js";import{Float4BindUniform as S}from"../views/3d/webgl-engine/core/shaderModules/Float4BindUniform.js";import{Float4PassUniform as x}from"../views/3d/webgl-engine/core/shaderModules/Float4PassUniform.js";import{FloatBindUniform as D}from"../views/3d/webgl-engine/core/shaderModules/FloatBindUniform.js";import{FloatPassUniform as b}from"../views/3d/webgl-engine/core/shaderModules/FloatPassUniform.js";import{glsl as L,If as w}from"../views/3d/webgl-engine/core/shaderModules/glsl.js";import{Matrix4BindUniform as y}from"../views/3d/webgl-engine/core/shaderModules/Matrix4BindUniform.js";import{alphaCutoff as C}from"../views/3d/webgl-engine/shaders/alphaCutoff.glsl.js";import{AnimatedLine as P}from"../views/3d/webgl-engine/shaders/AnimatedLine.glsl.js";import{outputColorHighlightOLID as F}from"../views/3d/webgl-engine/shaders/OutputColorHighlightOLID.glsl.js";import{getTextureBackedBufferModule as j}from"../views/3d/webgl-engine/shaders/RibbonLineTextureBuffer.glsl.js";import{ShaderBuilder as z}from"../views/webgl/ShaderBuilder.js";const A=1;function W(A){const W=new z,{attributes:T,varyings:I,vertex:R,fragment:V}=W,{applyMarkerOffset:E,draped:O,shadingEnabled:N,output:$,capType:J,stippleEnabled:U,falloffEnabled:_,wireframe:M,innerColorEnabled:H,hasAnimation:B,hasScreenSizePerspective:k,worldSized:G,imagePattern:X}=A,Y=2===J,Z=U&&Y,q=_||Z,K=U||Y,Q=j(A).createBuilder(W,A);R.inputs.add("position",()=>Q.getTextureAttribute("position")),A.hasVVSize?R.inputs.add("sizeFeatureAttribute",()=>Q.getTextureAttribute("sizeFeatureAttribute")):R.inputs.add("size",()=>Q.getTextureAttribute("size")),A.hasVVOpacity&&R.inputs.add("opacityFeatureAttribute",()=>Q.getTextureAttribute("opacityFeatureAttribute")),A.hasVVColor?R.inputs.add("colorFeatureAttribute",()=>Q.getTextureAttribute("colorFeatureAttribute")):R.inputs.add("color",()=>Q.getTextureAttribute("color")),V.include(d),W.include(t,A),W.include(r,A);const ee={animation:A.animation,hasAnimation:A.hasAnimation,timeStampsExpr:Q.getTextureAttribute("timeStamps")};W.include(P,ee),11===$?(W.varyings.add("objectAndLayerIdColorVarying","vec4"),R.code.add(L`
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{EvaluateAmbientOcclusion as i}from"../views/3d/webgl-engine/core/shaderLibrary/shading/EvaluateAmbientOcclusion.glsl.js";import{EvaluateSceneLighting as n}from"../views/3d/webgl-engine/core/shaderLibrary/shading/EvaluateSceneLighting.glsl.js";import{LineStipple as r,computePixelSize as o}from"../views/3d/webgl-engine/core/shaderLibrary/shading/LineStipple.glsl.js";import{mainLightIntensity as a}from"../views/3d/webgl-engine/core/shaderLibrary/shading/MainLighting.glsl.js";import{MarkerSizing as s}from"../views/3d/webgl-engine/core/shaderLibrary/shading/MarkerSizing.glsl.js";import{NormalUtils as l}from"../views/3d/webgl-engine/core/shaderLibrary/shading/NormalUtils.glsl.js";import{PiUtils as d}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{inverseProjMatrix as p,nearFar as m,viewport as g}from"../views/3d/webgl-engine/core/shaderLibrary/util/cameraUniforms.js";import{ColorConversion as v}from"../views/3d/webgl-engine/core/shaderLibrary/util/ColorConversion.glsl.js";import{NoPerspectiveWrite as f,NoPerspectiveRead as h}from"../views/3d/webgl-engine/core/shaderLibrary/util/NoPerspective.glsl.js";import{addProjViewLocalOrigin as u,addPixelRatio as S,addCameraPosition as x}from"../views/3d/webgl-engine/core/shaderLibrary/util/View.glsl.js";import{Float4PassUniform as D}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 L}from"../views/3d/webgl-engine/core/shaderModules/FloatPassUniform.js";import{glsl as y,If as w}from"../views/3d/webgl-engine/core/shaderModules/glsl.js";import{alphaCutoff as C}from"../views/3d/webgl-engine/shaders/alphaCutoff.glsl.js";import{AnimatedLine as P}from"../views/3d/webgl-engine/shaders/AnimatedLine.glsl.js";import{outputColorHighlightOLID as z}from"../views/3d/webgl-engine/shaders/OutputColorHighlightOLID.glsl.js";import{getTextureBackedBufferModule as F}from"../views/3d/webgl-engine/shaders/RibbonLineTextureBuffer.glsl.js";import{ShaderBuilder as j}from"../views/webgl/ShaderBuilder.js";const A=1;function W(A){const W=new j,{attributes:T,varyings:I,vertex:R,fragment:V}=W,{applyMarkerOffset:E,draped:O,shadingEnabled:N,output:$,capType:J,stippleEnabled:_,falloffEnabled:U,wireframe:H,innerColorEnabled:M,hasAnimation:B,hasScreenSizePerspective:k,worldSized:G,imagePattern:X}=A,Y=2===J,Z=_&&Y,q=U||Z,K=_||Y,Q=F(A).createBuilder(W,A);R.inputs.add("position",()=>Q.getTextureAttribute("position")),A.hasVVSize?R.inputs.add("sizeFeatureAttribute",()=>Q.getTextureAttribute("sizeFeatureAttribute")):R.inputs.add("size",()=>Q.getTextureAttribute("size")),A.hasVVOpacity&&R.inputs.add("opacityFeatureAttribute",()=>Q.getTextureAttribute("opacityFeatureAttribute")),A.hasVVColor?R.inputs.add("colorFeatureAttribute",()=>Q.getTextureAttribute("colorFeatureAttribute")):R.inputs.add("color",()=>Q.getTextureAttribute("color")),V.include(d),W.include(t,A),W.include(r,A);const ee={animation:A.animation,hasAnimation:A.hasAnimation,timeStampsExpr:Q.getTextureAttribute("timeStamps")};W.include(P,ee),11===$?(W.varyings.add("objectAndLayerIdColorVarying","vec4"),R.code.add(y`
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
- `),V.code.add(L`void outputObjectAndLayerIdColor() {
10
+ `),V.code.add(y`void outputObjectAndLayerIdColor() {
11
11
  fragColor = objectAndLayerIdColorVarying;
12
- }`)):(R.code.add(L`void forwardObjectAndLayerIdColor() {}`),V.code.add(L`void outputObjectAndLayerIdColor() {}`));const te=E&&!O;return te&&(R.uniforms.add(new b("markerScale",e=>e.markerScale)),W.include(s,{space:2,hasScreenSizePerspective:k,worldSized:G})),g(R,A),O&&(G||U)&&R.uniforms.add(new D("worldToScreenRatio",e=>1/e.screenToPCSRatio)),R.uniforms.add(new y("inverseProjectionMatrix",e=>e.camera.inverseProjectionMatrix),new u("nearFar",e=>e.camera.nearFar),new b("miterLimit",e=>"miter"!==e.join?0:e.miterLimit),new S("viewport",e=>e.camera.fullViewport)),R.constants.add("LARGE_HALF_FLOAT","float",65500),R.constants.add("EPS","float",.001),R.constants.add("NUM_JOIN_SUBDIVISIONS","float",A.numJoinSubdivisions),T.add("textureElementIndex","uint"),T.add("lineParameters","vec2"),I.add("vColor","vec4"),I.add("vpos","vec3",{invariant:!0}),I.add("vLineDistance","float"),I.add("vLineWidth","float"),U||(I.add("vIsInsideJoin","int"),I.add("vStretchFactor","float"),I.add("vJoinCenterLineSDFs","vec2"),I.add("vSubdivisionFactor","float")),U&&I.add("vLineSizeInv","float"),q&&I.add("vLineDistanceNorm","float"),Y&&(I.add("vSegmentSDF","float"),I.add("vReverseSegmentSDF","float")),R.code.add(L`vec3 perpendicular(vec3 v) {
12
+ }`)):(R.code.add(y`void forwardObjectAndLayerIdColor() {}`),V.code.add(y`void outputObjectAndLayerIdColor() {}`));const te=E&&!O;return te&&W.include(s,A),u(R,A),O&&(G||_)&&R.uniforms.add(new b("worldToScreenRatio",e=>1/e.screenToPCSRatio)),R.uniforms.add(p,m,g,new L("miterLimit",e=>"miter"!==e.join?0:e.miterLimit)),R.constants.add("LARGE_HALF_FLOAT","float",65500),R.constants.add("EPS","float",.001),R.constants.add("NUM_JOIN_SUBDIVISIONS","float",A.numJoinSubdivisions),T.add("textureElementIndex","uint"),T.add("lineParameters","vec2"),I.add("vColor","vec4"),I.add("vpos","vec3",{invariant:!0}),I.add("vLineDistance","float"),I.add("vLineWidth","float"),_||(I.add("vIsInsideJoin","int"),I.add("vStretchFactor","float"),I.add("vJoinCenterLineSDFs","vec2"),I.add("vSubdivisionFactor","float")),_&&I.add("vLineSizeInv","float"),q&&I.add("vLineDistanceNorm","float"),Y&&(I.add("vSegmentSDF","float"),I.add("vReverseSegmentSDF","float")),R.code.add(y`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,12 +20,12 @@ 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
- }`),R.code.add(L`vec4 projectAndScale(vec4 pos) {
23
+ }`),R.code.add(y`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
- }`),R.code.add(L`void clip(
28
+ }`),R.code.add(y`void clip(
29
29
  inout vec4 pos,
30
30
  inout vec4 prev,
31
31
  inout vec4 next,
@@ -56,10 +56,10 @@ if (next.z > -nearFar[0]) {
56
56
  next = mix(next, pos, nearPlaneInterpolationFactor(adjustedNearPlaneDistance, next, pos));
57
57
  }
58
58
  }
59
- }`),f(R),R.constants.add("aaWidth","float",U?0:1),R.main.add(L`
59
+ }`),S(R),R.constants.add("aaWidth","float",_?0:1),R.main.add(y`
60
60
  vec3 position = ${Q.getTextureAttribute("position")};
61
61
  float u0 = ${Q.getTextureAttribute("u0")};
62
- ${w(G,L`
62
+ ${w(G,y`
63
63
  float prevU0 = ${Q.getTextureAttribute("u0",-1)};
64
64
  float nextU0 = ${Q.getTextureAttribute("u0",1)};
65
65
  `)}
@@ -84,11 +84,11 @@ next = mix(next, pos, nearPlaneInterpolationFactor(adjustedNearPlaneDistance, ne
84
84
  vec4 next = view * vec4(nextPosition, 1.0);
85
85
 
86
86
  bool isJoin = vertexType < 3.0;
87
- `),te&&R.main.add(L`vec4 other = isStartVertex ? next : prev;
87
+ `),te&&R.main.add(y`vec4 other = isStartVertex ? next : prev;
88
88
  bool markersHidden = areWorldMarkersHidden(pos.xyz, other.xyz);
89
89
  if (!isJoin && !markersHidden) {
90
90
  pos.xyz += normalize(other.xyz - pos.xyz) * getWorldMarkerSize(pos.xyz) * 0.5;
91
- }`),W.include(m),R.code.add(L`
91
+ }`),W.include(f),R.code.add(y`
92
92
  vec2 computeJoinAndCapDisplacement(
93
93
  bool isJoin,
94
94
  bool isStartVertex,
@@ -133,7 +133,7 @@ pos.xyz += normalize(other.xyz - pos.xyz) * getWorldMarkerSize(pos.xyz) * 0.5;
133
133
  }
134
134
  }
135
135
 
136
- ${w(!U,L`
136
+ ${w(!_,y`
137
137
  // Compute stretch compensation for feathering.
138
138
  if (subdivisionFactor > 0.0) {
139
139
  vIsInsideJoin = 1;
@@ -168,14 +168,14 @@ pos.xyz += normalize(other.xyz - pos.xyz) * getWorldMarkerSize(pos.xyz) * 0.5;
168
168
  `)}
169
169
 
170
170
  if (isOutside && displacementLen > miterLimit * lineWidth) {
171
- ${w(A.roundJoins,L`
171
+ ${w(A.roundJoins,y`
172
172
  vec3 startDir = perpendicular(leftLen < EPS ? right : left);
173
173
  vec3 endDir = perpendicular(rightLen < EPS ? left : right);
174
- float factor = ${U?L`min(1.0, subdivisionFactor * ((NUM_JOIN_SUBDIVISIONS + 1.0) / NUM_JOIN_SUBDIVISIONS))`:L`subdivisionFactor`};
174
+ float factor = ${_?y`min(1.0, subdivisionFactor * ((NUM_JOIN_SUBDIVISIONS + 1.0) / NUM_JOIN_SUBDIVISIONS))`:y`subdivisionFactor`};
175
175
 
176
176
  float rotationAngle = acos(clamp(dot(startDir.xy, endDir.xy), -1.0, 1.0));
177
177
  joinDisplacementDir = rotateZ(startDir, -lineSide * factor * rotationAngle);
178
- `,L`
178
+ `,y`
179
179
  /**
180
180
  * Convert to bevel join if miterLimit is exceeded.
181
181
  * Here vertices with a subdivisionFactor > 0 are either START vertices or
@@ -187,18 +187,18 @@ pos.xyz += normalize(other.xyz - pos.xyz) * getWorldMarkerSize(pos.xyz) * 0.5;
187
187
  vec3 startDir = perpendicular(leftLen < EPS ? right : left);
188
188
  vec3 endDir = perpendicular(rightLen < EPS ? left : right);
189
189
 
190
- ${w(U,L`joinDisplacementDir = (isStartVertex || subdivisionFactor > 0.0) ? endDir : startDir;`,L`joinDisplacementDir = mix(startDir, endDir, subdivisionFactor);`)}
190
+ ${w(_,y`joinDisplacementDir = (isStartVertex || subdivisionFactor > 0.0) ? endDir : startDir;`,y`joinDisplacementDir = mix(startDir, endDir, subdivisionFactor);`)}
191
191
  `)}
192
192
  displacementLen = lineWidth;
193
193
  }
194
194
  } else {
195
195
  joinDisplacementDir = perpendicular(isStartVertex ? right : left);
196
- ${0!==J?L`capDisplacementDir = vec3((isStartVertex ? -right : left).xy, 0.0);`:""}
196
+ ${0!==J?y`capDisplacementDir = vec3((isStartVertex ? -right : left).xy, 0.0);`:""}
197
197
  }
198
198
 
199
199
  return (joinDisplacementDir.xy * lineSide + capDisplacementDir.xy) * displacementLen;
200
200
  }
201
- `),R.main.add(L`
201
+ `),R.main.add(y`
202
202
  clip(pos, prev, next, isStartVertex);
203
203
 
204
204
  vec3 clippedPos = pos.xyz;
@@ -212,10 +212,10 @@ pos.xyz += normalize(other.xyz - pos.xyz) * getWorldMarkerSize(pos.xyz) * 0.5;
212
212
  vec3 right = (next.xyz - pos.xyz);
213
213
 
214
214
  float lineSize = getSize(${w(k,"clippedPos")});
215
- ${w(U&&k,"float patternLineSize = getSize(clippedCenter);")}
216
- ${w(U&&!k,"float patternLineSize = lineSize;")}
215
+ ${w(_&&k,"float patternLineSize = getSize(clippedCenter);")}
216
+ ${w(_&&!k,"float patternLineSize = lineSize;")}
217
217
 
218
- ${w(G,L`
218
+ ${w(G,y`
219
219
  float lineSizeScreen = lineSize * worldToScreenRatio;
220
220
  if (lineSizeScreen < 1.0) {
221
221
  coverage = lineSizeScreen;
@@ -224,7 +224,7 @@ pos.xyz += normalize(other.xyz - pos.xyz) * getWorldMarkerSize(pos.xyz) * 0.5;
224
224
 
225
225
  lineSizeScreen += aaWidth;
226
226
  float lineWidth = lineSizeScreen * pixelRatio;
227
- `,L`
227
+ `,y`
228
228
  if (lineSize < 1.0) {
229
229
  coverage = lineSize; // convert sub-pixel coverage to alpha
230
230
  lineSize = 1.0;
@@ -235,14 +235,14 @@ pos.xyz += normalize(other.xyz - pos.xyz) * getWorldMarkerSize(pos.xyz) * 0.5;
235
235
  `)}
236
236
 
237
237
  vLineWidth = noPerspectiveWrite(lineWidth, pos.w);
238
- ${U?L`vLineSizeInv = noPerspectiveWrite(1.0 / lineSize, pos.w);`:""}
239
- `),K&&R.main.add(L`
238
+ ${_?y`vLineSizeInv = noPerspectiveWrite(1.0 / lineSize, pos.w);`:""}
239
+ `),K&&R.main.add(y`
240
240
  float isEndVertex = float(!isStartVertex);
241
241
  vec3 segmentOrigin = mix(pos.xyz, prev.xyz, isEndVertex);
242
242
  vec3 segment = mix(right, left, isEndVertex);
243
- ${Y?L`vec3 segmentEnd = mix(next.xyz, pos.xyz, isEndVertex);`:""}
244
- `),R.main.add(L`
245
- ${w(!U,L`
243
+ ${Y?y`vec3 segmentEnd = mix(next.xyz, pos.xyz, isEndVertex);`:""}
244
+ `),R.main.add(y`
245
+ ${w(!_,y`
246
246
  vIsInsideJoin = 0;
247
247
  vStretchFactor = 1.0;
248
248
  vSubdivisionFactor = 0.0;
@@ -273,10 +273,10 @@ pos.xyz += normalize(other.xyz - pos.xyz) * getWorldMarkerSize(pos.xyz) * 0.5;
273
273
  float lineDistNorm = noPerspectiveWrite(lineSide, pos.w);
274
274
 
275
275
  vLineDistance = lineWidth * lineDistNorm;
276
- ${q?L`vLineDistanceNorm = lineDistNorm;`:""}
276
+ ${q?y`vLineDistanceNorm = lineDistNorm;`:""}
277
277
 
278
278
  pos.xyz += displacement;
279
- `),U||R.main.add(L`if (isJoin) {
279
+ `),_||R.main.add(y`if (isJoin) {
280
280
  vec2 joinCenterToVertex = displacementXY;
281
281
  vec2 leftCenterlineDir = left.xy;
282
282
  vec2 rightCenterlineDir = right.xy;
@@ -291,35 +291,35 @@ dot(vec2(leftCenterlineDir.y, -leftCenterlineDir.x), joinCenterToVertex)
291
291
  ),
292
292
  pos.w
293
293
  );
294
- }`),Y&&R.main.add(L`vec2 segmentDir = normalize(segment.xy);
294
+ }`),Y&&R.main.add(y`vec2 segmentDir = normalize(segment.xy);
295
295
  vSegmentSDF = noPerspectiveWrite((isJoin && isStartVertex) ? LARGE_HALF_FLOAT : (dot(pos.xy - segmentOrigin.xy, segmentDir)), pos.w);
296
- vReverseSegmentSDF = noPerspectiveWrite((isJoin && !isStartVertex) ? LARGE_HALF_FLOAT : (dot(pos.xy - segmentEnd.xy, -segmentDir)), pos.w);`),U&&(O||R.main.add(L`vec3 segmentCenter = mix((nextPosition + position) * 0.5, (position + prevPosition) * 0.5, isEndVertex);
297
- float worldToScreenRatio = computeWorldToScreenRatio(segmentCenter);`),R.main.add(L`
296
+ vReverseSegmentSDF = noPerspectiveWrite((isJoin && !isStartVertex) ? LARGE_HALF_FLOAT : (dot(pos.xy - segmentEnd.xy, -segmentDir)), pos.w);`),_&&(O||R.main.add(y`vec3 segmentCenter = mix((nextPosition + position) * 0.5, (position + prevPosition) * 0.5, isEndVertex);
297
+ float worldToScreenRatio = computeWorldToScreenRatio(segmentCenter);`),R.main.add(y`
298
298
  float segmentLengthScreenDouble = length(segment.xy);
299
299
  float segmentLengthScreen = segmentLengthScreenDouble * 0.5;
300
300
  float discreteWorldToScreenRatio = discretizeWorldToScreenRatio(worldToScreenRatio);
301
- float segmentLengthRender = ${w(G,L`abs(mix(nextU0 - u0, u0 - prevU0, isEndVertex))`,L`length(mix(nextPosition - position, position - prevPosition, isEndVertex))`)};
301
+ float segmentLengthRender = ${w(G,y`abs(mix(nextU0 - u0, u0 - prevU0, isEndVertex))`,y`length(mix(nextPosition - position, position - prevPosition, isEndVertex))`)};
302
302
 
303
- ${w(!O||G,L`
304
- float segmentStartRender = ${w(G,L`mix(u0, prevU0, isEndVertex)`,L`mix(u0, u0 - segmentLengthRender, isEndVertex)`)};
303
+ ${w(!O||G,y`
304
+ float segmentStartRender = ${w(G,y`mix(u0, prevU0, isEndVertex)`,y`mix(u0, u0 - segmentLengthRender, isEndVertex)`)};
305
305
  `)}
306
306
 
307
307
  vStipplePatternStretch = worldToScreenRatio / discreteWorldToScreenRatio;
308
- `),O?R.main.add(L`float segmentLengthPseudoScreen = segmentLengthScreen / pixelRatio * discreteWorldToScreenRatio / worldToScreenRatio;
309
- float startPseudoScreen = u0 * discreteWorldToScreenRatio - mix(0.0, segmentLengthPseudoScreen, isEndVertex);`):R.main.add(L`float startPseudoScreen = segmentStartRender * discreteWorldToScreenRatio;
310
- float segmentLengthPseudoScreen = segmentLengthRender * discreteWorldToScreenRatio;`),R.uniforms.add(new b("stipplePatternPixelSize",e=>o(e))),R.main.add(L`
308
+ `),O?R.main.add(y`float segmentLengthPseudoScreen = segmentLengthScreen / pixelRatio * discreteWorldToScreenRatio / worldToScreenRatio;
309
+ float startPseudoScreen = u0 * discreteWorldToScreenRatio - mix(0.0, segmentLengthPseudoScreen, isEndVertex);`):R.main.add(y`float startPseudoScreen = segmentStartRender * discreteWorldToScreenRatio;
310
+ float segmentLengthPseudoScreen = segmentLengthRender * discreteWorldToScreenRatio;`),R.uniforms.add(new L("stipplePatternPixelSize",e=>o(e))),R.main.add(y`
311
311
  float patternLength = patternLineSize * stipplePatternPixelSize;
312
312
 
313
- ${w(G,L`
313
+ ${w(G,y`
314
314
  vStippleDistanceLimits = vec2(segmentStartRender, segmentStartRender + segmentLengthRender);
315
315
  vStipplePatternStretch = 1.0;
316
316
 
317
- ${w(X,L`
317
+ ${w(X,y`
318
318
  // The v-coordinate used in case of an image pattern.
319
319
  bool isLeft = lineSide < 0.0;
320
320
  vStippleV = isLeft ? 0.0 : 1.0;
321
321
  `)}
322
- `,L`
322
+ `,y`
323
323
  // Compute the coordinates at both start and end of the line segment, because we need both to clamp to in the
324
324
  // fragment shader
325
325
  vStippleDistanceLimits = computeStippleDistanceLimits(startPseudoScreen, segmentLengthPseudoScreen, segmentLengthScreen, patternLength);
@@ -350,7 +350,7 @@ float segmentLengthPseudoScreen = segmentLengthRender * discreteWorldToScreenRat
350
350
  isStartVertex ?
351
351
  vec2(-1e34, vStippleDistanceLimits.y) :
352
352
  vec2(vStippleDistanceLimits.x, 1e34);
353
- `)),R.main.add(L`
353
+ `)),R.main.add(y`
354
354
  // Convert back into NDC
355
355
  pos.xy = (pos.xy / viewport.zw) * pos.w;
356
356
  pos.z = pos.z * pos.w;
@@ -358,13 +358,13 @@ float segmentLengthPseudoScreen = segmentLengthRender * discreteWorldToScreenRat
358
358
  vColor = getColor();
359
359
  vColor.a = noPerspectiveWrite(vColor.a * coverage, pos.w);
360
360
 
361
- ${M&&!O?"pos.z -= EPS * pos.w;":""}
361
+ ${H&&!O?"pos.z -= EPS * pos.w;":""}
362
362
 
363
363
  // transform final position to camera space for slicing
364
364
  vpos = (inverseProjectionMatrix * pos).xyz;
365
365
  gl_Position = pos;
366
366
  forwardObjectAndLayerIdColor();
367
- }`),W.fragment.include(e,A),W.include(F,A),V.include(p),V.main.add(L`discardBySlice(vpos);`),W.include(v),V.include(C),U||V.code.add(L`float lineFeatheringFactor(float lineWidth, float lineDistance) {
367
+ }`),W.fragment.include(e,A),W.include(z,A),V.include(v),V.main.add(y`discardBySlice(vpos);`),W.include(h),V.include(C),_||V.code.add(y`float lineFeatheringFactor(float lineWidth, float lineDistance) {
368
368
  float stretchFactor = vIsInsideJoin == 1 ? noPerspectiveRead(vStretchFactor) : 1.0;
369
369
  float featherWidth = 2.0;
370
370
  float featherStartDistance = max(lineWidth - featherWidth / stretchFactor, 0.0);
@@ -376,31 +376,31 @@ float joinCenterDistance = abs(vSubdivisionFactor > 0.5 ? joinCenterSDFs.x : joi
376
376
  float straightFeather = (joinCenterDistance - straightFeatherStartDistance) / (lineWidth - straightFeatherStartDistance);
377
377
  feather = vIsInsideJoin == 1 ? max(feather, straightFeather) : feather;
378
378
  return 1.0 - clamp(feather, 0.0, 1.0);
379
- }`),V.main.add(L`
379
+ }`),V.main.add(y`
380
380
  float lineWidth = noPerspectiveRead(vLineWidth);
381
381
  float lineDistance = noPerspectiveRead(vLineDistance);
382
- ${w(q,L`float lineDistanceNorm = noPerspectiveRead(vLineDistanceNorm);`)}
383
- `),M?V.main.add(L`vec4 finalColor = vec4(1.0, 0.0, 1.0, 1.0);`):(Y&&V.main.add(L`float sdf = noPerspectiveRead(min(vSegmentSDF, vReverseSegmentSDF));
382
+ ${w(q,y`float lineDistanceNorm = noPerspectiveRead(vLineDistanceNorm);`)}
383
+ `),H?V.main.add(y`vec4 finalColor = vec4(1.0, 0.0, 1.0, 1.0);`):(Y&&V.main.add(y`float sdf = noPerspectiveRead(min(vSegmentSDF, vReverseSegmentSDF));
384
384
  vec2 fragmentPosition = vec2(min(sdf, 0.0), lineDistance);
385
385
  float fragmentRadius = length(fragmentPosition);
386
386
  float fragmentCapSDF = (fragmentRadius - lineWidth) * 0.5;
387
387
  float capCoverage = clamp(0.5 - fragmentCapSDF, 0.0, 1.0);
388
388
  if (capCoverage < alphaCutoff) {
389
389
  discard;
390
- }`),Z?V.main.add(L`vec2 stipplePosition = vec2(
390
+ }`),Z?V.main.add(y`vec2 stipplePosition = vec2(
391
391
  min(getStippleSDF() * 2.0 - 1.0, 0.0),
392
392
  lineDistanceNorm
393
393
  );
394
394
  float stippleRadius = length(stipplePosition * lineWidth);
395
395
  float stippleCapSDF = (stippleRadius - lineWidth) * 0.5;
396
396
  float stippleCoverage = clamp(0.5 - stippleCapSDF, 0.0, 1.0);
397
- float stippleAlpha = step(alphaCutoff, stippleCoverage);`):V.main.add(L`float stippleAlpha = getStippleAlpha(lineWidth);`),11!==$&&V.main.add(L`discardByStippleAlpha(stippleAlpha, alphaCutoff);`),V.uniforms.add(new x("intrinsicColor",e=>e.color)).main.add(L`vec4 color = intrinsicColor * vColor;
398
- color.a = noPerspectiveRead(color.a);`),H&&V.uniforms.add(new x("innerColor",e=>e.innerColor??e.color),new b("innerWidth",(e,t)=>e.innerWidth*t.camera.pixelRatio)).main.add(L`float distToInner = abs(lineDistance) - innerWidth;
397
+ float stippleAlpha = step(alphaCutoff, stippleCoverage);`):V.main.add(y`float stippleAlpha = getStippleAlpha(lineWidth);`),11!==$&&V.main.add(y`discardByStippleAlpha(stippleAlpha, alphaCutoff);`),V.uniforms.add(new D("intrinsicColor",e=>e.color)).main.add(y`vec4 color = intrinsicColor * vColor;
398
+ color.a = noPerspectiveRead(color.a);`),M&&V.uniforms.add(new D("innerColor",e=>e.innerColor??e.color),new L("innerWidth",(e,t)=>e.innerWidth*t.camera.pixelRatio)).main.add(y`float distToInner = abs(lineDistance) - innerWidth;
399
399
  float innerAA = clamp(0.5 - distToInner, 0.0, 1.0);
400
400
  float innerAlpha = innerColor.a + color.a * (1.0 - innerColor.a);
401
- color = mix(color, vec4(innerColor.rgb, innerAlpha), innerAA);`),V.main.add(L`vec4 finalColor = blendStipple(color, stippleAlpha);`),_&&(V.uniforms.add(new b("falloff",e=>e.falloff)),V.main.add(L`finalColor.a *= pow(max(0.0, 1.0 - abs(lineDistanceNorm)), falloff);`)),U||V.main.add(L`finalColor.a *= lineFeatheringFactor(lineWidth, lineDistance);`),N&&(I.add("vnormal","vec3"),R.include(l,A),R.main.add("vnormal = getLocalUp(vpos, localOrigin);"),V.include(n,A),h(V,A),V.include(n,A),V.include(i,A),V.uniforms.add(a,R.uniforms.get("localOrigin")).main.add(L`vec3 posWorld = vpos + localOrigin;
401
+ color = mix(color, vec4(innerColor.rgb, innerAlpha), innerAA);`),V.main.add(y`vec4 finalColor = blendStipple(color, stippleAlpha);`),U&&(V.uniforms.add(new L("falloff",e=>e.falloff)),V.main.add(y`finalColor.a *= pow(max(0.0, 1.0 - abs(lineDistanceNorm)), falloff);`)),_||V.main.add(y`finalColor.a *= lineFeatheringFactor(lineWidth, lineDistance);`),N&&(I.add("vnormal","vec3"),R.include(l,A),R.main.add("vnormal = getLocalUp(vpos, localOrigin);"),V.include(n,A),x(V,A),V.include(n,A),V.include(i,A),V.uniforms.add(a,R.uniforms.get("localOrigin")).main.add(y`vec3 posWorld = vpos + localOrigin;
402
402
  float ssao = evaluateAmbientOcclusionInverse();
403
403
  float additionalAmbientScale = additionalDirectedAmbientLight(posWorld);
404
404
  vec3 additionalLight = ssao * mainLightIntensity * additionalAmbientScale * ambientBoostFactor * lightingGlobalFactor;
405
405
  vec3 viewDirection = normalize(vpos - cameraPosition);
406
- finalColor = vec4(evaluateSceneLighting(vnormal, finalColor.rgb, 0.0, 1.0 - ssao, additionalLight, viewDirection, vnormal), finalColor.a);`)),B&&V.main.add("finalColor = animate(finalColor);")),V.main.add(L`outputColorHighlightOLID(applySlice(finalColor, vpos), finalColor.rgb);`),W}const T=Object.freeze(Object.defineProperty({__proto__:null,build:W,numRoundJoinSubdivisions:A},Symbol.toStringTag,{value:"Module"}));export{T as R,W as b,A as n};
406
+ finalColor = vec4(evaluateSceneLighting(vnormal, finalColor.rgb, 0.0, 1.0 - ssao, additionalLight, viewDirection, vnormal), finalColor.a);`)),B&&V.main.add("finalColor = animate(finalColor);")),V.main.add(y`outputColorHighlightOLID(applySlice(finalColor, vpos), finalColor.rgb);`),W}const T=Object.freeze(Object.defineProperty({__proto__:null,build:W,numRoundJoinSubdivisions:A},Symbol.toStringTag,{value:"Module"}));export{T as R,W as b,A as n};
@@ -1,28 +1,28 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
2
- import{create as e}from"../core/libs/gl-matrix-2/factories/vec2f64.js";import{create as o}from"../core/libs/gl-matrix-2/factories/vec3f64.js";import{Transform as i}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{Float2PassUniform as t}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 n}from"../views/3d/webgl-engine/core/shaderModules/Float3PassUniform.js";import{FloatPassUniform as a}from"../views/3d/webgl-engine/core/shaderModules/FloatPassUniform.js";import{glsl as l}from"../views/3d/webgl-engine/core/shaderModules/glsl.js";import{Matrix4BindUniform as d}from"../views/3d/webgl-engine/core/shaderModules/Matrix4BindUniform.js";import{Texture2DPassUniform as c}from"../views/3d/webgl-engine/core/shaderModules/Texture2DPassUniform.js";import{NoParameters as m}from"../views/webgl/NoParameters.js";import{ShaderBuilder as f}from"../views/webgl/ShaderBuilder.js";class g extends m{constructor(){super(...arguments),this.texV=e(),this.altitudeFade=0,this.innerScale=0,this.undergroundFadeAlpha=0,this.silhouette=new p}}class p{constructor(){this.center=o(),this.v1=o(),this.v2=o()}}function h(e){const o=new f,{vertex:m,fragment:g}=o;if(m.uniforms.add(r),2===e.geometry)o.attributes.add("position","vec2"),o.varyings.add("color","vec4"),m.uniforms.add(new s("cameraPosition",e=>e.camera.eye),new a("undergroundFadeAlpha",e=>e.undergroundFadeAlpha)),m.main.add(l`float ndotl = dot(normalize(cameraPosition), mainLightDirection);
2
+ import{create as e}from"../core/libs/gl-matrix-2/factories/vec2f64.js";import{create as o}from"../core/libs/gl-matrix-2/factories/vec3f64.js";import{Transform as i}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 t,viewMatrix as s}from"../views/3d/webgl-engine/core/shaderLibrary/util/cameraUniforms.js";import{Float2PassUniform as n}from"../views/3d/webgl-engine/core/shaderModules/Float2PassUniform.js";import{Float3BindUniform as a}from"../views/3d/webgl-engine/core/shaderModules/Float3BindUniform.js";import{Float3PassUniform as l}from"../views/3d/webgl-engine/core/shaderModules/Float3PassUniform.js";import{FloatPassUniform as d}from"../views/3d/webgl-engine/core/shaderModules/FloatPassUniform.js";import{glsl as c}from"../views/3d/webgl-engine/core/shaderModules/glsl.js";import{Texture2DPassUniform as m}from"../views/3d/webgl-engine/core/shaderModules/Texture2DPassUniform.js";import{NoParameters as f}from"../views/webgl/NoParameters.js";import{ShaderBuilder as g}from"../views/webgl/ShaderBuilder.js";class p 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=o(),this.v1=o(),this.v2=o()}}function u(e){const o=new g,{vertex:f,fragment:p}=o;if(f.uniforms.add(r),2===e.geometry)o.attributes.add("position","vec2"),o.varyings.add("color","vec4"),f.uniforms.add(new a("cameraPosition",e=>e.camera.eye),new d("undergroundFadeAlpha",e=>e.undergroundFadeAlpha)),f.main.add(c`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);`),g.main.add(l`fragColor = color;`);else{o.include(i),o.attributes.add("position","vec3"),o.varyings.add("vtc","vec2"),o.varyings.add("falloff","float");const r=1===e.geometry;m.uniforms.add(new d("proj",e=>e.camera.projectionMatrix),new d("view",e=>e.camera.viewMatrix)),r||(o.varyings.add("innerFactor","float"),m.uniforms.add(new n("silCircleCenter",e=>e.silhouette.center),new n("silCircleV1",e=>e.silhouette.v1),new n("silCircleV2",e=>e.silhouette.v2),new t("texV",e=>e.texV),new a("innerScale",e=>e.innerScale)));const s=6.2831853,f=1/128;m.main.add(l`
6
- ${r?l`
5
+ gl_Position = vec4(position.xy, 1.0, 1.0);`),p.main.add(c`fragColor = color;`);else{o.include(i),o.attributes.add("position","vec3"),o.varyings.add("vtc","vec2"),o.varyings.add("falloff","float");const r=1===e.geometry;f.uniforms.add(t,s),r||(o.varyings.add("innerFactor","float"),f.uniforms.add(new l("silCircleCenter",e=>e.silhouette.center),new l("silCircleV1",e=>e.silhouette.v1),new l("silCircleV2",e=>e.silhouette.v2),new n("texV",e=>e.texV),new d("innerScale",e=>e.innerScale)));const a=6.2831853,g=1/128;f.main.add(c`
6
+ ${r?c`
7
7
  vec3 pos = position;
8
8
  float ndotl = mainLightDirection.z;
9
- vtc = vec2(0.0, position.z + 0.05);`:l`
9
+ vtc = vec2(0.0, position.z + 0.05);`:c`
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 * ${l.float(s*f)} + 1.0;
12
+ float phi = position.x * ${c.float(a*g)} + 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 * ${l.float(f)};
15
+ vtc.x = position.x * ${c.float(g)};
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));
19
19
 
20
20
  gl_Position = transformPosition(proj, view, pos);
21
21
  gl_Position.z = gl_Position.w; // project atmosphere onto the far plane
22
- `),g.uniforms.add(new c("tex",e=>e.texture)),r||g.uniforms.add(new a("altitudeFade",e=>e.altitudeFade)),g.main.add(l`
22
+ `),p.uniforms.add(new m("tex",e=>e.texture)),r||p.uniforms.add(new d("altitudeFade",e=>e.altitudeFade)),p.main.add(c`
23
23
  vec4 atmosphereColor = texture(tex, vtc) * falloff;
24
- ${r?l`fragColor = atmosphereColor;`:l`
24
+ ${r?c`fragColor = atmosphereColor;`:c`
25
25
  vec4 innerColor = vec4(atmosphereColor.rgb, 1.0 - altitudeFade);
26
26
  fragColor = mix(atmosphereColor, innerColor, smoothstep(0.0, 1.0, innerFactor));
27
27
  `}
28
- `)}return o}const u=Object.freeze(Object.defineProperty({__proto__:null,SilhouetteCircle:p,SimpleAtmospherePassParameters:g,build:h},Symbol.toStringTag,{value:"Module"}));export{g as S,u as a,p as b,h as c};
28
+ `)}return o}const v=Object.freeze(Object.defineProperty({__proto__:null,SilhouetteCircle:h,SimpleAtmospherePassParameters:p,build:u},Symbol.toStringTag,{value:"Module"}));export{p as S,v as a,h as b,u as c};
@@ -1,8 +1,8 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
2
- import{copy as e,multiply as a}from"../core/libs/gl-matrix-2/math/mat4.js";import{create as i}from"../core/libs/gl-matrix-2/factories/mat4f64.js";import{Float4BindUniform as r}from"../views/3d/webgl-engine/core/shaderModules/Float4BindUniform.js";import{FloatBindUniform as o}from"../views/3d/webgl-engine/core/shaderModules/FloatBindUniform.js";import{glsl as t}from"../views/3d/webgl-engine/core/shaderModules/glsl.js";import{Matrix4PassUniform as n}from"../views/3d/webgl-engine/core/shaderModules/Matrix4PassUniform.js";import{ShaderBuilder as s}from"../views/webgl/ShaderBuilder.js";function l(){const e=new s,{vertex:a,fragment:i,attributes:l,varyings:c}=e;return l.add("position","vec3"),l.add("color","vec4"),l.add("size","float"),c.add("vcolor","vec4"),c.add("vsize","float"),a.uniforms.add(new n("transform",(e,a)=>d(e,a)),new r("viewport",e=>e.camera.fullViewport),new o("pixelRatio",e=>e.camera.pixelRatio)),i.uniforms.add(new o("pixelRatio",e=>e.camera.pixelRatio)),i.constants.add("starFootprintRadiusScale","float",.7),a.main.add(t`gl_Position = transform * vec4(position, 0);
3
- vcolor = color;`),a.main.add(t`vsize = size * 5.0;`),a.main.add(t`gl_PointSize = max(vsize * pixelRatio, 1.0);`),i.main.add(t`float rasterizedPointSizeScreen = max(vsize, 1.0 / pixelRatio);
4
- vec2 pointOffsetScreen = (gl_PointCoord - vec2(0.5)) * rasterizedPointSizeScreen;`),i.main.add(t`float radiusScreen = max(starFootprintRadiusScale * vsize, 1e-4);
2
+ import{copy as e,multiply as a}from"../core/libs/gl-matrix-2/math/mat4.js";import{create as r}from"../core/libs/gl-matrix-2/factories/mat4f64.js";import{viewport as i,pixelRatio as o}from"../views/3d/webgl-engine/core/shaderLibrary/util/cameraUniforms.js";import{glsl as t}from"../views/3d/webgl-engine/core/shaderModules/glsl.js";import{Matrix4PassUniform as n}from"../views/3d/webgl-engine/core/shaderModules/Matrix4PassUniform.js";import{ShaderBuilder as s}from"../views/webgl/ShaderBuilder.js";function d(){const e=new s,{vertex:a,fragment:r,attributes:d,varyings:c}=e;return d.add("position","vec3"),d.add("color","vec4"),d.add("size","float"),c.add("vcolor","vec4"),c.add("vsize","float"),a.uniforms.add(new n("transform",(e,a)=>l(e,a)),i,o),r.uniforms.add(o),r.constants.add("starFootprintRadiusScale","float",.7),a.main.add(t`gl_Position = transform * vec4(position, 0);
3
+ vcolor = color;`),a.main.add(t`vsize = size * 5.0;`),a.main.add(t`gl_PointSize = max(vsize * pixelRatio, 1.0);`),r.main.add(t`float rasterizedPointSizeScreen = max(vsize, 1.0 / pixelRatio);
4
+ vec2 pointOffsetScreen = (gl_PointCoord - vec2(0.5)) * rasterizedPointSizeScreen;`),r.main.add(t`float radiusScreen = max(starFootprintRadiusScale * vsize, 1e-4);
5
5
  float distanceFromCenterScreen = clamp(length(pointOffsetScreen), 0.0, radiusScreen);
6
- float alpha = clamp((radiusScreen - distanceFromCenterScreen) / radiusScreen, 0.0, 1.0);`),i.main.add(t`float subpixelCoverage = min(vsize * vsize, 1.0);
6
+ float alpha = clamp((radiusScreen - distanceFromCenterScreen) / radiusScreen, 0.0, 1.0);`),r.main.add(t`float subpixelCoverage = min(vsize * vsize, 1.0);
7
7
  float intensity = alpha * alpha * alpha * subpixelCoverage;
8
- fragColor = vec4(vcolor.xyz, intensity);`),e}function d(i,r){const o=24e-8;return e(c,r.camera.projectionMatrix),c[10]=o-1,c[11]=-1,c[14]=(o-2)*r.camera.near,a(c,c,r.camera.viewMatrix),a(c,c,i.modelMatrix)}const c=i(),m=Object.freeze(Object.defineProperty({__proto__:null,build:l},Symbol.toStringTag,{value:"Module"}));export{m as S,l as b};
8
+ fragColor = vec4(vcolor.xyz, intensity);`),e}function l(r,i){const o=24e-8;return e(c,i.camera.projectionMatrix),c[10]=o-1,c[11]=-1,c[14]=(o-2)*i.camera.near,a(c,c,i.camera.viewMatrix),a(c,c,r.modelMatrix)}const c=r(),m=Object.freeze(Object.defineProperty({__proto__:null,build:d},Symbol.toStringTag,{value:"Module"}));export{m as S,d as b};
@@ -1,21 +1,21 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
2
- import{translate as e}from"../core/libs/gl-matrix-2/math/mat4.js";import{create as o}from"../core/libs/gl-matrix-2/factories/mat4f64.js";import{normalize as r,set as i}from"../core/libs/gl-matrix-2/math/vec3.js";import{create as a}from"../core/libs/gl-matrix-2/factories/vec3f64.js";import{addLinearDepth as l}from"../views/3d/webgl-engine/core/shaderLibrary/ForwardLinearDepth.glsl.js";import{addNearFar as t}from"../views/3d/webgl-engine/core/shaderLibrary/ForwardLinearDepthToWriteShadowMap.glsl.js";import{SliceDraw as n}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 d}from"../views/3d/webgl-engine/core/shaderLibrary/attributes/NormalAttribute.glsl.js";import{TextureCoordinateAttribute as c}from"../views/3d/webgl-engine/core/shaderLibrary/attributes/TextureCoordinateAttribute.glsl.js";import{VertexTangent as m}from"../views/3d/webgl-engine/core/shaderLibrary/attributes/VertexTangent.glsl.js";import{outputDepth as g}from"../views/3d/webgl-engine/core/shaderLibrary/output/OutputDepth.glsl.js";import{OutputHighlight as v}from"../views/3d/webgl-engine/core/shaderLibrary/output/OutputHighlight.glsl.js";import{OutputHighlightOverlay as u}from"../views/3d/webgl-engine/core/shaderLibrary/output/OutputHighlightOverlay.js";import{EvaluateAmbientOcclusion as p}from"../views/3d/webgl-engine/core/shaderLibrary/shading/EvaluateAmbientOcclusion.glsl.js";import{EvaluateSceneLighting as w,addAmbientBoostFactor as f,addLightingGlobalFactor as h}from"../views/3d/webgl-engine/core/shaderLibrary/shading/EvaluateSceneLighting.glsl.js";import{mainLightDirection as b,mainLightIntensity as y}from"../views/3d/webgl-engine/core/shaderLibrary/shading/MainLighting.glsl.js";import{NormalUtils as C}from"../views/3d/webgl-engine/core/shaderLibrary/shading/NormalUtils.glsl.js";import{ReadShadowMapDrawFragment as O}from"../views/3d/webgl-engine/core/shaderLibrary/shading/ReadShadowMap.glsl.js";import{OverlayTerrain as j}from"../views/3d/webgl-engine/core/shaderLibrary/terrain/Overlay.glsl.js";import{OverlayTerrainPassParameters as L,TerrainTexture as x}from"../views/3d/webgl-engine/core/shaderLibrary/terrain/TerrainTexture.glsl.js";import{addProjViewLocalOrigin as T,addViewNormal as P,addCameraPosition as M}from"../views/3d/webgl-engine/core/shaderLibrary/util/View.glsl.js";import{Float3BindUniform as S}from"../views/3d/webgl-engine/core/shaderModules/Float3BindUniform.js";import{glsl as D,If as $}from"../views/3d/webgl-engine/core/shaderModules/glsl.js";import{Matrix4DrawUniform as z}from"../views/3d/webgl-engine/core/shaderModules/Matrix4DrawUniform.js";import{Texture2DBindUniform as A}from"../views/3d/webgl-engine/core/shaderModules/Texture2DBindUniform.js";import{alphaCutoff as F}from"../views/3d/webgl-engine/shaders/alphaCutoff.glsl.js";import{outputColorHighlightOLID as N}from"../views/3d/webgl-engine/shaders/OutputColorHighlightOLID.glsl.js";import{ShaderBuilder as _}from"../views/webgl/ShaderBuilder.js";class V extends L{constructor(){super(...arguments),this.useStencil=!1}}function W(o){const a=new _,{attributes:L,vertex:V,fragment:W,varyings:H}=a;L.add("position","vec3"),a.include(d,o),a.include(c,o);const U=()=>{V.include(C,o),V.code.add(D`vec3 getNormal() {
2
+ import{translate as e}from"../core/libs/gl-matrix-2/math/mat4.js";import{create as o}from"../core/libs/gl-matrix-2/factories/mat4f64.js";import{normalize as r,set as i}from"../core/libs/gl-matrix-2/math/vec3.js";import{create as a}from"../core/libs/gl-matrix-2/factories/vec3f64.js";import{addLinearDepth as l}from"../views/3d/webgl-engine/core/shaderLibrary/ForwardLinearDepth.glsl.js";import{SliceDraw as t}from"../views/3d/webgl-engine/core/shaderLibrary/Slice.glsl.js";import{Transform as n}from"../views/3d/webgl-engine/core/shaderLibrary/Transform.glsl.js";import{NormalAttribute as s}from"../views/3d/webgl-engine/core/shaderLibrary/attributes/NormalAttribute.glsl.js";import{TextureCoordinateAttribute as d}from"../views/3d/webgl-engine/core/shaderLibrary/attributes/TextureCoordinateAttribute.glsl.js";import{VertexTangent as c}from"../views/3d/webgl-engine/core/shaderLibrary/attributes/VertexTangent.glsl.js";import{outputDepth as m}from"../views/3d/webgl-engine/core/shaderLibrary/output/OutputDepth.glsl.js";import{OutputHighlight as g}from"../views/3d/webgl-engine/core/shaderLibrary/output/OutputHighlight.glsl.js";import{OutputHighlightOverlay as v}from"../views/3d/webgl-engine/core/shaderLibrary/output/OutputHighlightOverlay.js";import{EvaluateAmbientOcclusion as u}from"../views/3d/webgl-engine/core/shaderLibrary/shading/EvaluateAmbientOcclusion.glsl.js";import{EvaluateSceneLighting as p,addAmbientBoostFactor as w,addLightingGlobalFactor as f}from"../views/3d/webgl-engine/core/shaderLibrary/shading/EvaluateSceneLighting.glsl.js";import{mainLightDirection as h,mainLightIntensity as b}from"../views/3d/webgl-engine/core/shaderLibrary/shading/MainLighting.glsl.js";import{NormalUtils as y}from"../views/3d/webgl-engine/core/shaderLibrary/shading/NormalUtils.glsl.js";import{ReadShadowMapDrawFragment as C}from"../views/3d/webgl-engine/core/shaderLibrary/shading/ReadShadowMap.glsl.js";import{OverlayTerrain as O}from"../views/3d/webgl-engine/core/shaderLibrary/terrain/Overlay.glsl.js";import{OverlayTerrainPassParameters as j,TerrainTexture as L}from"../views/3d/webgl-engine/core/shaderLibrary/terrain/TerrainTexture.glsl.js";import{viewNormal as x,nearFar as T}from"../views/3d/webgl-engine/core/shaderLibrary/util/cameraUniforms.js";import{addProjViewLocalOrigin as P,addCameraPosition as M}from"../views/3d/webgl-engine/core/shaderLibrary/util/View.glsl.js";import{Float3BindUniform as S}from"../views/3d/webgl-engine/core/shaderModules/Float3BindUniform.js";import{glsl as D,If as $}from"../views/3d/webgl-engine/core/shaderModules/glsl.js";import{Matrix4DrawUniform as z}from"../views/3d/webgl-engine/core/shaderModules/Matrix4DrawUniform.js";import{Texture2DBindUniform as A}from"../views/3d/webgl-engine/core/shaderModules/Texture2DBindUniform.js";import{alphaCutoff as N}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 _}from"../views/webgl/ShaderBuilder.js";class V extends j{constructor(){super(...arguments),this.useStencil=!1}}function W(o){const a=new _,{attributes:j,vertex:V,fragment:W,varyings:H}=a;j.add("position","vec3"),a.include(s,o),a.include(d,o);const U=()=>{V.include(y,o),V.code.add(D`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
- }`)};T(V,o),a.include(s),W.include(F);const{output:E,overlayMode:I,tileBorders:q,transparencyMode:G,overlayEnabled:R,renderOccluded:J}=o,K=2===G||3===G,Q=R&&K;switch(E){case 0:case 1:case 2:{const l=0!==E||J?"discard":"";a.include(x,o),W.include(w,o),R&&a.include(j,o);const t=2===I;t&&a.include(m,o),H.add("vnormal","vec3"),H.add("vpos","vec3",{invariant:!0}),H.add("upNormal","vec3"),U(),V.main.add(D`
7
+ }`)};P(V,o),a.include(n),W.include(N);const{output:E,overlayMode:I,tileBorders:q,transparencyMode:G,overlayEnabled:R,renderOccluded:J}=o,K=2===G||3===G,Q=R&&K;switch(E){case 0:case 1:case 2:{const l=0!==E||J?"discard":"";a.include(L,o),W.include(p,o),R&&a.include(O,o);const n=2===I;n&&a.include(c,o),H.add("vnormal","vec3"),H.add("vpos","vec3",{invariant:!0}),H.add("upNormal","vec3"),U(),V.main.add(D`
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
- ${$(t,D`forwardVertexTangent(vnormal);`)}
13
+ ${$(n,D`forwardVertexTangent(vnormal);`)}
14
14
 
15
15
  forwardTextureCoordinatesWithTransform(uv0);
16
16
  ${$(R,"setOverlayVTC(uv0);")}
17
17
  ${$(q,"forwardTextureCoordinates();")}
18
- forwardLinearDepthToReadShadowMap();`),a.include(O,o),W.include(n,o),W.include(w,o),W.include(p,o),a.include(N,o),M(W,o),f(W),h(W),W.uniforms.add(V.uniforms.get("localOrigin"),new S("viewDirection",({camera:e})=>r(B,i(B,e.viewMatrix[12],e.viewMatrix[13],e.viewMatrix[14])))),t&&W.uniforms.add(new A("ovWaterTex",e=>e.overlay?.getTexture(3)),new z("view",({origin:o},{camera:r})=>e(k,r.viewMatrix,o))),W.uniforms.add(b,y).main.add(D`
18
+ forwardLinearDepthToReadShadowMap();`),a.include(C,o),W.include(t,o),W.include(p,o),W.include(u,o),a.include(F,o),M(W,o),w(W),f(W),W.uniforms.add(V.uniforms.get("localOrigin"),new S("viewDirection",({camera:e})=>r(B,i(B,e.viewMatrix[12],e.viewMatrix[13],e.viewMatrix[14])))),n&&W.uniforms.add(new A("ovWaterTex",e=>e.overlay?.getTexture(3)),new z("view",({origin:o},{camera:r})=>e(k,r.viewMatrix,o))),W.uniforms.add(h,b).main.add(D`
19
19
  vec3 normal = normalize(vnormal);
20
20
  float lightAlignment = dot(normal, mainLightDirection);
21
21
 
@@ -43,7 +43,7 @@ return normalize(n);
43
43
  // heuristic shading function used in the old terrain, now used to add ambient lighting
44
44
  vec3 additionalLight = ssao * mainLightIntensity * additionalAmbientScale * ambientBoostFactor * lightingGlobalFactor;
45
45
  vec4 finalColor = vec4(evaluateSceneLighting(normal, albedo, shadow, 1.0 - ssao, additionalLight, viewDirection, upNormal), tileColor.a);
46
- ${$(t,D`vec4 overlayWaterMask = getOverlayColor(ovWaterTex, vtcOverlay);
46
+ ${$(n,D`vec4 overlayWaterMask = getOverlayColor(ovWaterTex, vtcOverlay);
47
47
  float waterNormalLength = length(overlayWaterMask);
48
48
  if (waterNormalLength > 0.95) {
49
49
  mat3 tbnMatrix = mat3(tbnTangent, tbnBiTangent, vnormal);
@@ -59,22 +59,24 @@ return normalize(n);
59
59
  vec2 edgeFactors = smoothstep(vec2(0.0), 1.5 * dVuv, min(vuv0, 1.0 - vuv0));
60
60
  float edgeFactor = 1.0 - min(edgeFactors.x, edgeFactors.y);
61
61
  finalColor = mix(finalColor, vec4(1.0, 0.0, 0.0, 1.0), edgeFactor);`)}
62
- outputColorHighlightOLID(applySlice(finalColor, vpos), finalColor.rgb);`)}break;case 3:Q&&a.include(j,o),V.main.add(D`
62
+ outputColorHighlightOLID(applySlice(finalColor, vpos), finalColor.rgb);`)}break;case 3:Q&&a.include(O,o),V.main.add(D`
63
63
  ${$(Q,"setOverlayVTC(uv0);")}
64
- gl_Position = transformPosition(proj, view, position);`),W.main.add(`${$(Q,"if (getCombinedOverlayColor().a < alphaCutoff) discard;")}`);break;case 5:case 6:case 7:case 8:a.include(g,o),W.main.add("outputDepth(linearDepth);");case 9:l(a),t(a),V.main.add("gl_Position = transformPositionWithDepth(proj, view, position, nearFar, linearDepth);"),W.main.add("");break;case 4:Q&&a.include(j,o),H.add("vnormal","vec3"),P(V),U(),V.main.add(D`
64
+ gl_Position = transformPosition(proj, view, position);`),W.main.add(`${$(Q,"if (getCombinedOverlayColor().a < alphaCutoff) discard;")}`);break;case 5:case 6:case 7:case 8:a.include(m,o),W.main.add("outputDepth(linearDepth);");case 9:l(a),V.uniforms.add(T).main.add("gl_Position = transformPositionWithDepth(proj, view, position, nearFar, linearDepth);"),W.main.add("");break;case 4:Q&&a.include(O,o),H.add("vnormal","vec3"),U(),V.uniforms.add(x).main.add(D`
65
65
  ${$(Q,"setOverlayVTC(uv0);")}
66
66
  gl_Position = transformPosition(proj, view, position);
67
- vnormal = normalize((viewNormal * vec4(getNormal(), 1.0)).xyz);`),W.main.add(D`
67
+ vnormal = normalize((viewNormal * vec4(getNormal(), 1.0)).xyz);
68
+ `),W.main.add(D`
68
69
  float opacity = 1.0;
69
- ${$(Q,"\n opacity = getCombinedOverlayColor().a;\n if (opacity < alphaCutoff) discard;")}
70
- 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:R&&(a.include(j,o),a.include(u,o)),V.main.add(D`
70
+ ${$(Q,"\n opacity = getCombinedOverlayColor().a;\n if (opacity < alphaCutoff) discard;")}
71
+ vec3 normal = normalize(vnormal);
72
+ if (gl_FrontFacing == false) {
73
+ normal = -normal;
74
+ }
75
+ fragColor = vec4(vec3(0.5) + 0.5 * normal, opacity);
76
+ `);break;case 10:R&&(a.include(O,o),a.include(v,o)),V.main.add(D`
75
77
  ${$(R,"setOverlayVTC(uv0);")}
76
- gl_Position = transformPosition(proj, view, position);`),a.include(v,o),W.main.add(D`
78
+ gl_Position = transformPosition(proj, view, position);`),a.include(g,o),W.main.add(D`
77
79
  ${$(R,D`
78
80
  calculateOcclusionAndOutputHighlight(getAllOverlayHighlightValuesEncoded());`,"calculateOcclusionAndOutputHighlight();")}
79
- `);break;case 11:if(R)a.include(j,o),V.main.add(D`gl_Position = transformPosition(proj, view, position);
81
+ `);break;case 11:if(R)a.include(O,o),V.main.add(D`gl_Position = transformPosition(proj, view, position);
80
82
  setOverlayVTC(uv0);`),W.main.add(D`fragColor = getOverlayColorTexel();`);else{const e=0===G;V.main.add(D`${$(e,"gl_Position = transformPosition(proj, view, position);")}`),W.main.add(D`fragColor = vec4(0.0);`)}}return a}const k=o(),B=a(),H=Object.freeze(Object.defineProperty({__proto__:null,TerrainPassParameters:V,build:W},Symbol.toStringTag,{value:"Module"}));export{V as T,H as a,W as b};
@@ -1,5 +1,5 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
2
- import{invertOrIdentity as e}from"../core/libs/gl-matrix-2/math/mat4.js";import{IDENTITY as i,create as o}from"../core/libs/gl-matrix-2/factories/mat4f64.js";import{create as t}from"../core/libs/gl-matrix-2/factories/vec2f64.js";import{create as s,UNIT_Z as a}from"../core/libs/gl-matrix-2/factories/vec3f64.js";import{ScreenSpacePass as r}from"../views/3d/webgl-engine/core/shaderLibrary/ScreenSpacePass.glsl.js";import{ReadDepth as n}from"../views/3d/webgl-engine/core/shaderLibrary/output/ReadDepth.glsl.js";import{PiUtils as d}from"../views/3d/webgl-engine/core/shaderLibrary/shading/PiUtils.glsl.js";import{LocalFromScreenSpaceDrawParameters as l,localFromScreenSpace as v}from"../views/3d/webgl-engine/core/shaderLibrary/util/LocalFromScreenSpace.glsl.js";import{Float2DrawUniform as h}from"../views/3d/webgl-engine/core/shaderModules/Float2DrawUniform.js";import{Float3DrawUniform as c}from"../views/3d/webgl-engine/core/shaderModules/Float3DrawUniform.js";import{FloatDrawUniform as w}from"../views/3d/webgl-engine/core/shaderModules/FloatDrawUniform.js";import{FloatsDrawUniform as f}from"../views/3d/webgl-engine/core/shaderModules/FloatsDrawUniform.js";import{glsl as m}from"../views/3d/webgl-engine/core/shaderModules/glsl.js";import{IntegerDrawUniform as p}from"../views/3d/webgl-engine/core/shaderModules/IntegerDrawUniform.js";import{Matrix4BindUniform as g}from"../views/3d/webgl-engine/core/shaderModules/Matrix4BindUniform.js";import{Matrix4sDrawUniform as u}from"../views/3d/webgl-engine/core/shaderModules/Matrix4sDrawUniform.js";import{Texture2DBindUniform as x}from"../views/3d/webgl-engine/core/shaderModules/Texture2DBindUniform.js";import{Texture2DDrawUniform as V}from"../views/3d/webgl-engine/core/shaderModules/Texture2DDrawUniform.js";import{Texture2DPassUniform as b}from"../views/3d/webgl-engine/core/shaderModules/Texture2DPassUniform.js";import{NoParameters as M}from"../views/webgl/NoParameters.js";import{ShaderBuilder as D}from"../views/webgl/ShaderBuilder.js";class P extends M{}class F extends l{constructor(){super(...arguments),this.observerOffset=s(),this.fovs=t(),this.headingAndTilt=t(),this.upVector=a,this.targetVector=s(),this.projectionMatrices=i.flat(),this.viewMatrices=i.flat(),this.volumeOffset=0}}function T(i){const o=new D,t=o.fragment;o.include(r),o.include(v),o.outputs.add("fragColor","vec4",0),t.include(n),t.include(d),t.uniforms.add(new g("inverseProjectionMatrix",e=>e.camera.inverseProjectionMatrix),new g("inverseViewNormalMatrix",({camera:i})=>e(S,i.viewInverseTransposeMatrix)),new x("depthTexture",e=>e.mainDepth),new b("normalMap",e=>e.normals),new c("viewshedObserverOffset",e=>e.observerOffset),new c("viewshedTargetVector",e=>e.targetVector),new c("viewshedUpVector",e=>e.upVector),new h("viewshedFOVs",e=>e.fovs),new h("viewshedHeadingAndTilt",e=>e.headingAndTilt),new h("viewshedNearFar",e=>e.shadowMap?.nearFar??[1,100]),new w("viewshedVolumeOffset",e=>e.volumeOffset),new V("viewshedShadowMap",e=>e.shadowMap?.depthTexture),new u("viewshedProjectionMatrices",e=>e.projectionMatrices,6),new u("viewshedViewMatrices",e=>e.viewMatrices,6),new p("viewshedNumFaces",e=>e.shadowMap?.numActiveFaces??0),new f("viewshedAtlasRegions",24,e=>e.shadowMap?.atlasRegions.flat()??U));const s=.5;return t.constants.add("viewshedAlpha","float",s),t.constants.add("visibleColor","vec4",[0,s,0,s]),t.constants.add("occludedColor","vec4",[s,0,0,s]),t.code.add(m`vec2 getViewshedUv(vec4 worldPosition, int face) {
2
+ import{invertOrIdentity as e}from"../core/libs/gl-matrix-2/math/mat4.js";import{IDENTITY as i,create as o}from"../core/libs/gl-matrix-2/factories/mat4f64.js";import{create as t}from"../core/libs/gl-matrix-2/factories/vec2f64.js";import{create as s,UNIT_Z as a}from"../core/libs/gl-matrix-2/factories/vec3f64.js";import{ScreenSpacePass as r}from"../views/3d/webgl-engine/core/shaderLibrary/ScreenSpacePass.glsl.js";import{ReadDepth as n}from"../views/3d/webgl-engine/core/shaderLibrary/output/ReadDepth.glsl.js";import{PiUtils as d}from"../views/3d/webgl-engine/core/shaderLibrary/shading/PiUtils.glsl.js";import{inverseProjMatrix as l}from"../views/3d/webgl-engine/core/shaderLibrary/util/cameraUniforms.js";import{LocalFromScreenSpaceDrawParameters as h,localFromScreenSpace as v}from"../views/3d/webgl-engine/core/shaderLibrary/util/LocalFromScreenSpace.glsl.js";import{Float2DrawUniform as c}from"../views/3d/webgl-engine/core/shaderModules/Float2DrawUniform.js";import{Float3DrawUniform as w}from"../views/3d/webgl-engine/core/shaderModules/Float3DrawUniform.js";import{FloatDrawUniform as f}from"../views/3d/webgl-engine/core/shaderModules/FloatDrawUniform.js";import{FloatsDrawUniform as m}from"../views/3d/webgl-engine/core/shaderModules/FloatsDrawUniform.js";import{glsl as p}from"../views/3d/webgl-engine/core/shaderModules/glsl.js";import{IntegerDrawUniform as g}from"../views/3d/webgl-engine/core/shaderModules/IntegerDrawUniform.js";import{Matrix4BindUniform as u}from"../views/3d/webgl-engine/core/shaderModules/Matrix4BindUniform.js";import{Matrix4sDrawUniform as x}from"../views/3d/webgl-engine/core/shaderModules/Matrix4sDrawUniform.js";import{Texture2DBindUniform as V}from"../views/3d/webgl-engine/core/shaderModules/Texture2DBindUniform.js";import{Texture2DDrawUniform as b}from"../views/3d/webgl-engine/core/shaderModules/Texture2DDrawUniform.js";import{Texture2DPassUniform as D}from"../views/3d/webgl-engine/core/shaderModules/Texture2DPassUniform.js";import{NoParameters as M}from"../views/webgl/NoParameters.js";import{ShaderBuilder as P}from"../views/webgl/ShaderBuilder.js";class F extends M{}class T extends h{constructor(){super(...arguments),this.observerOffset=s(),this.fovs=t(),this.headingAndTilt=t(),this.upVector=a,this.targetVector=s(),this.projectionMatrices=i.flat(),this.viewMatrices=i.flat(),this.volumeOffset=0}}function S(i){const o=new P,t=o.fragment;o.include(r),o.include(v),o.outputs.add("fragColor","vec4",0),t.include(n),t.include(d),t.uniforms.add(l,new u("inverseViewNormalMatrix",({camera:i})=>e(U,i.viewInverseTransposeMatrix)),new V("depthTexture",e=>e.mainDepth),new D("normalMap",e=>e.normals),new w("viewshedObserverOffset",e=>e.observerOffset),new w("viewshedTargetVector",e=>e.targetVector),new w("viewshedUpVector",e=>e.upVector),new c("viewshedFOVs",e=>e.fovs),new c("viewshedHeadingAndTilt",e=>e.headingAndTilt),new c("viewshedNearFar",e=>e.shadowMap?.nearFar??[1,100]),new f("viewshedVolumeOffset",e=>e.volumeOffset),new b("viewshedShadowMap",e=>e.shadowMap?.depthTexture),new x("viewshedProjectionMatrices",e=>e.projectionMatrices,6),new x("viewshedViewMatrices",e=>e.viewMatrices,6),new g("viewshedNumFaces",e=>e.shadowMap?.numActiveFaces??0),new m("viewshedAtlasRegions",24,e=>e.shadowMap?.atlasRegions.flat()??y));const s=.5;return t.constants.add("viewshedAlpha","float",s),t.constants.add("visibleColor","vec4",[0,s,0,s]),t.constants.add("occludedColor","vec4",[s,0,0,s]),t.code.add(p`vec2 getViewshedUv(vec4 worldPosition, int face) {
3
3
  mat4 viewshedMatrix = viewshedProjectionMatrices[face];
4
4
  vec4 viewshedUv4 = viewshedMatrix * worldPosition;
5
5
  vec3 viewshedUv = viewshedUv4.xyz / viewshedUv4.w;
@@ -125,7 +125,7 @@ vec3 normalN = normalize(normalTexel.xyz * 2.0 - 1.0);
125
125
  vec3 normal = normalize((inverseViewNormalMatrix * vec4(normalN, 1.0)).xyz);
126
126
  vec3 viewingDir = normalize(localPosition);
127
127
  return dot(normal, viewingDir);
128
- }`),t.main.add(m`float depth = depthFromTexture(depthTexture, uv);
128
+ }`),t.main.add(p`float depth = depthFromTexture(depthTexture, uv);
129
129
  if (depth >= 1.0 || depth <= 0.0) {
130
130
  return;
131
131
  }
@@ -144,4 +144,4 @@ float cosAngle = normalCosAngle(linearDepth, localPosition.xyz);
144
144
  float threshold = -0.01;
145
145
  if (cosAngle > threshold) {
146
146
  fragColor = occludedColor;
147
- }`),i.hasEmissive&&(o.outputs.add("fragEmission","vec4",1),t.constants.add("viewshedEmissiveAlpha","float",s**.1),t.main.add("fragEmission = vec4(vec3(0.0), viewshedEmissiveAlpha);")),o}const S=o(),U=new Array(24).fill(0),y=Object.freeze(Object.defineProperty({__proto__:null,ViewshedDrawParameters:F,ViewshedPassParameters:P,build:T},Symbol.toStringTag,{value:"Module"}));export{P as V,F as a,y as b,T as c};
147
+ }`),i.hasEmissive&&(o.outputs.add("fragEmission","vec4",1),t.constants.add("viewshedEmissiveAlpha","float",s**.1),t.main.add("fragEmission = vec4(vec3(0.0), viewshedEmissiveAlpha);")),o}const U=o(),y=new Array(24).fill(0),j=Object.freeze(Object.defineProperty({__proto__:null,ViewshedDrawParameters:T,ViewshedPassParameters:F,build:S},Symbol.toStringTag,{value:"Module"}));export{F as V,T as a,j as b,S as c};
@@ -1,3 +1,3 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
2
- import{translate as e}from"../core/libs/gl-matrix-2/math/mat4.js";import{create as r}from"../core/libs/gl-matrix-2/factories/mat4f64.js";import{ZEROS as o}from"../core/libs/gl-matrix-2/factories/vec3f64.js";import{glsl as i}from"../views/3d/webgl-engine/core/shaderModules/glsl.js";import{Matrix4BindUniform as t}from"../views/3d/webgl-engine/core/shaderModules/Matrix4BindUniform.js";import{Matrix4DrawUniform as s}from"../views/3d/webgl-engine/core/shaderModules/Matrix4DrawUniform.js";import{NoParameters as a}from"../views/webgl/NoParameters.js";import{ShaderBuilder as n}from"../views/webgl/ShaderBuilder.js";class m extends a{constructor(){super(...arguments),this.origin=o}}function l(){const r=new n;return r.attributes.add("position","vec3"),r.outputs.add("fragColor","vec4",0),r.vertex.uniforms.add(new t("proj",e=>e.camera.projectionMatrix),new s("view",(r,o)=>e(d,o.camera.viewMatrix,r.origin))).main.add(i`gl_Position = proj * view * vec4(position, 1.0);
3
- gl_Position.z = min(gl_Position.z, gl_Position.w);`),r.fragment.main.add(i`fragColor = vec4(1);`),r}const d=r(),c=Object.freeze(Object.defineProperty({__proto__:null,VolumeMaskDrawParameters:m,build:l},Symbol.toStringTag,{value:"Module"}));export{m as V,c as a,l as b};
2
+ import{translate as r}from"../core/libs/gl-matrix-2/math/mat4.js";import{create as e}from"../core/libs/gl-matrix-2/factories/mat4f64.js";import{ZEROS as o}from"../core/libs/gl-matrix-2/factories/vec3f64.js";import{projMatrix as i}from"../views/3d/webgl-engine/core/shaderLibrary/util/cameraUniforms.js";import{glsl as t}from"../views/3d/webgl-engine/core/shaderModules/glsl.js";import{Matrix4DrawUniform as s}from"../views/3d/webgl-engine/core/shaderModules/Matrix4DrawUniform.js";import{NoParameters as a}from"../views/webgl/NoParameters.js";import{ShaderBuilder as m}from"../views/webgl/ShaderBuilder.js";class n extends a{constructor(){super(...arguments),this.origin=o}}function l(){const e=new m;return e.attributes.add("position","vec3"),e.outputs.add("fragColor","vec4",0),e.vertex.uniforms.add(i,new s("view",(e,o)=>r(d,o.camera.viewMatrix,e.origin))).main.add(t`gl_Position = proj * view * vec4(position, 1.0);
3
+ gl_Position.z = min(gl_Position.z, gl_Position.w);`),e.fragment.main.add(t`fragColor = vec4(1);`),e}const d=e(),c=Object.freeze(Object.defineProperty({__proto__:null,VolumeMaskDrawParameters:n,build:l},Symbol.toStringTag,{value:"Module"}));export{n as V,c as a,l as b};