@arcgis/core 4.33.0-next.20250318 → 4.33.0-next.20250320

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 (179) hide show
  1. package/assets/esri/core/workers/RemoteClient.js +1 -1
  2. package/assets/esri/core/workers/chunks/0b7331613f91a3258352.js +1 -0
  3. package/assets/esri/core/workers/chunks/2219d970ece5676ca6ee.js +1 -0
  4. package/assets/esri/core/workers/chunks/3fc18638f8799b85001d.js +1 -0
  5. package/assets/esri/core/workers/chunks/630a9afdf0523c27ddb6.js +1 -0
  6. package/assets/esri/core/workers/chunks/657ae4a0461d45044b28.js +1 -0
  7. package/assets/esri/core/workers/chunks/8063e35dacf8f99471d8.js +1 -0
  8. package/assets/esri/core/workers/chunks/{e26e8feabf863350af20.js → 9e11307b4cc3b523d178.js} +66 -73
  9. package/assets/esri/core/workers/chunks/b23d16745674486ddd6c.js +1 -0
  10. package/assets/esri/core/workers/chunks/bfbb118ae3b4a4ce1c74.js +319 -0
  11. package/assets/esri/core/workers/chunks/c528a2ca3b1b73df5a5d.js +1 -0
  12. package/assets/esri/core/workers/chunks/d787474e78360c925fd9.js +1 -0
  13. package/assets/esri/core/workers/chunks/{7ded83eb64eff069b761.js → d8b903b4147b090576f2.js} +1 -1
  14. package/assets/esri/core/workers/chunks/e4290719c8afc2a4ee8c.js +1 -0
  15. package/assets/esri/core/workers/chunks/e5e1f8ac53c70427a60b.js +1 -0
  16. package/assets/esri/core/workers/chunks/fc9758006a7135c7d9c3.js +1 -0
  17. package/assets/esri/core/workers/chunks/fef46b841e8369b30227.js +1 -0
  18. package/assets/esri/libs/dxtEncoder/dxt_encoder.wasm +0 -0
  19. package/assets/esri/themes/base/widgets/_FeatureFormUtilityNetworkAssociationLayers.scss +20 -0
  20. package/assets/esri/themes/dark/main.css +1 -1
  21. package/assets/esri/themes/light/main.css +1 -1
  22. package/assets/esri/themes/light/view.css +1 -1
  23. package/chunks/HUDMaterial.glsl.js +80 -75
  24. package/chunks/RibbonLine.glsl.js +37 -37
  25. package/chunks/ShadowHighlight.glsl.js +2 -2
  26. package/chunks/Terrain.glsl.js +33 -34
  27. package/copyright.txt +29 -0
  28. package/core/typedArrayUtil.js +1 -1
  29. package/geometry/support/HalfFloatArray.js +5 -0
  30. package/geometry/support/buffer/BufferView.js +1 -1
  31. package/geometry/support/buffer/types.js +1 -1
  32. package/interfaces.d.ts +8 -47
  33. package/layers/VoxelWasmPerSceneView.js +1 -1
  34. package/layers/support/rasterFunctions/pixelUtils.js +1 -1
  35. package/package.json +3 -2
  36. package/renderers/support/RasterSymbolizer.js +1 -1
  37. package/support/basemapUtils.js +1 -1
  38. package/support/revision.js +1 -1
  39. package/views/2d/layers/imagery/ImageryTileView2D.js +1 -1
  40. package/views/3d/environment/ChapmanAtmosphere.js +1 -1
  41. package/views/3d/interactive/visualElements/LineVisualElement.js +1 -1
  42. package/views/3d/layers/BuildingComponentSublayerView3D.js +1 -1
  43. package/views/3d/layers/BuildingSceneLayerView3D.js +1 -1
  44. package/views/3d/layers/BuildingSublayerView3D.js +1 -1
  45. package/views/3d/layers/I3SMeshView3D.js +1 -1
  46. package/views/3d/layers/I3SMeshViewLabeler.js +1 -1
  47. package/views/3d/layers/ImageryTileLayerView3D.js +1 -1
  48. package/views/3d/layers/IntegratedMesh3DTilesLayerView3D.js +1 -1
  49. package/views/3d/layers/MediaLayerView3D.js +1 -1
  50. package/views/3d/layers/PointCloudLayerView3D.js +1 -1
  51. package/views/3d/layers/SceneLayerGraphicsView3D.js +1 -1
  52. package/views/3d/layers/graphics/Graphics3DCore.js +1 -1
  53. package/views/3d/layers/graphics/Graphics3DExtrudeSymbolLayer.js +1 -1
  54. package/views/3d/layers/graphics/Graphics3DFeatureProcessor.js +1 -1
  55. package/views/3d/layers/graphics/Graphics3DGraphicsPipeline.js +1 -1
  56. package/views/3d/layers/graphics/Graphics3DIconSymbolLayer.js +1 -1
  57. package/views/3d/layers/graphics/Graphics3DLineCalloutSymbolLayer.js +1 -1
  58. package/views/3d/layers/graphics/Graphics3DLineSymbolLayer.js +1 -1
  59. package/views/3d/layers/graphics/Graphics3DMeshFillSymbolLayer.js +1 -1
  60. package/views/3d/layers/graphics/Graphics3DObjectSymbolLayer.js +1 -1
  61. package/views/3d/layers/graphics/Graphics3DPathSymbolLayer.js +1 -1
  62. package/views/3d/layers/graphics/Graphics3DPolygonFillSymbolLayer.js +1 -1
  63. package/views/3d/layers/graphics/Graphics3DSymbolCreationContext.js +1 -1
  64. package/views/3d/layers/graphics/Graphics3DTextSymbolLayer.js +1 -1
  65. package/views/3d/layers/graphics/Graphics3DWaterSymbolLayer.js +1 -1
  66. package/views/3d/layers/graphics/GraphicsProcessor.js +1 -1
  67. package/views/3d/layers/graphics/Labeler.js +1 -1
  68. package/views/3d/layers/graphics/pipeline/Feature3DPipeline.js +1 -1
  69. package/views/3d/layers/graphics/pipeline/rendering/DirectRenderer.js +1 -1
  70. package/views/3d/layers/graphics/pipeline/rendering/FeaturePipelineRenderManager.js +1 -1
  71. package/views/3d/layers/graphics/pipeline/rendering/LodRenderer.js +1 -1
  72. package/views/3d/layers/graphics/pointUtils.js +1 -1
  73. package/views/3d/layers/graphics/polygonUtils.js +1 -1
  74. package/views/3d/layers/i3s/I3SClientNodeLoader.js +1 -1
  75. package/views/3d/layers/i3s/I3SIntersectionHandler.js +1 -1
  76. package/views/3d/layers/i3s/Intersector.js +1 -1
  77. package/views/3d/layers/i3s/PointCloudRenderer.js +1 -1
  78. package/views/3d/layers/support/HeatmapFeatureProcessor.js +1 -1
  79. package/views/3d/layers/support/Tiles3DIntersectionHandler.js +1 -1
  80. package/views/3d/state/helpers/SceneIntersectionHelper.js +1 -1
  81. package/views/3d/support/buffer/InterleavedLayout.js +1 -1
  82. package/views/3d/support/buffer/glUtil.js +1 -1
  83. package/views/3d/support/hitTest.js +1 -1
  84. package/views/3d/terrain/OverlayRenderTargets.js +1 -1
  85. package/views/3d/terrain/PatchGeometry.js +1 -1
  86. package/views/3d/terrain/PatchGeometryFactory.js +1 -1
  87. package/views/3d/terrain/TerrainAttributes.js +1 -1
  88. package/views/3d/terrain/TerrainRenderer.js +1 -1
  89. package/views/3d/terrain/TerrainSurface.js +1 -1
  90. package/views/3d/webgl/ManagedColorAttachment.js +1 -1
  91. package/views/3d/webgl/ManagedDepthAttachment.js +1 -1
  92. package/views/3d/webgl/ManagedFBO.js +1 -1
  93. package/views/3d/webgl/ManagedFBOAttachment.js +1 -1
  94. package/views/3d/webgl/{ManagedFBObject.js → ManagedFBOResource.js} +1 -1
  95. package/views/3d/webgl/formats.js +1 -1
  96. package/views/3d/webgl-engine/core/FBOCache.js +1 -1
  97. package/views/3d/webgl-engine/core/shaderLibrary/attributes/ObjectAndLayerIdColor.glsl.js +1 -1
  98. package/views/3d/webgl-engine/core/shaderLibrary/attributes/TextureCoordinateAttribute.glsl.js +2 -9
  99. package/views/3d/webgl-engine/core/shaderLibrary/hud/HUD.glsl.js +1 -1
  100. package/views/3d/webgl-engine/core/shaderLibrary/shading/ReadShadowMap.glsl.js +6 -6
  101. package/views/3d/webgl-engine/effects/debug/RenderNodeVisualizerNode.js +1 -1
  102. package/views/3d/webgl-engine/effects/focusArea/FocusAreaColorNode.js +1 -1
  103. package/views/3d/webgl-engine/effects/focusArea/FocusAreaMaskNode.js +1 -1
  104. package/views/3d/webgl-engine/effects/geometry/RenderOccludedRenderNode.js +1 -1
  105. package/views/3d/webgl-engine/effects/haze/Haze.js +1 -1
  106. package/views/3d/webgl-engine/effects/highlight/Highlight.js +1 -1
  107. package/views/3d/webgl-engine/effects/smaa/SMAA.js +1 -1
  108. package/views/3d/webgl-engine/effects/ssao/SSAO.js +1 -1
  109. package/views/3d/webgl-engine/lib/AttributeArray.js +1 -1
  110. package/views/3d/webgl-engine/lib/DefaultVertexAttributeLocations.js +1 -1
  111. package/views/3d/webgl-engine/lib/DefaultVertexBufferLayouts.js +1 -1
  112. package/views/3d/webgl-engine/lib/Geometry.js +1 -1
  113. package/views/3d/webgl-engine/lib/GeometryUtil.js +1 -1
  114. package/views/3d/webgl-engine/lib/IntersectorInterfaces.js +1 -1
  115. package/views/3d/webgl-engine/lib/IntersectorTarget.js +1 -1
  116. package/views/3d/webgl-engine/lib/MainFramebuffer.js +1 -1
  117. package/views/3d/webgl-engine/lib/Object3D.js +1 -1
  118. package/views/3d/webgl-engine/lib/ObjectAndLayerIdRenderHelper.js +1 -1
  119. package/views/3d/webgl-engine/lib/RenderGeometry.js +1 -1
  120. package/views/3d/webgl-engine/lib/Renderer.js +1 -1
  121. package/views/3d/webgl-engine/lib/ShadowMap.js +1 -1
  122. package/views/3d/webgl-engine/lib/SortedRenderGeometryRenderer.js +1 -1
  123. package/views/3d/webgl-engine/lib/TextTextureAtlas.js +1 -1
  124. package/views/3d/webgl-engine/lib/VertexAttribute.js +1 -1
  125. package/views/3d/webgl-engine/lib/ViewshedShadowMap.js +1 -1
  126. package/views/3d/webgl-engine/lib/WebGLLayer.js +1 -1
  127. package/views/3d/webgl-engine/lib/glUtil3D.js +1 -1
  128. package/views/3d/webgl-engine/lib/intersectorUtilsConversions.js +1 -1
  129. package/views/3d/webgl-engine/lib/lodRendering/InstanceData.js +1 -1
  130. package/views/3d/webgl-engine/lib/lodRendering/Intersector.js +1 -1
  131. package/views/3d/webgl-engine/lib/lodRendering/LodRenderer.js +1 -1
  132. package/views/3d/webgl-engine/lib/lodRendering/LodResources.js +1 -1
  133. package/views/3d/webgl-engine/materials/CheckerBoardMaterial.js +1 -1
  134. package/views/3d/webgl-engine/materials/ColorMaterial.js +1 -1
  135. package/views/3d/webgl-engine/materials/DefaultLayouts.js +1 -1
  136. package/views/3d/webgl-engine/materials/DefaultMaterial.js +1 -1
  137. package/views/3d/webgl-engine/materials/HUDMaterial.js +1 -1
  138. package/views/3d/webgl-engine/materials/HeatmapDensityMaterial.js +1 -1
  139. package/views/3d/webgl-engine/materials/ImageMaterial.js +1 -1
  140. package/views/3d/webgl-engine/materials/LineCalloutMaterial.js +1 -1
  141. package/views/3d/webgl-engine/materials/LineMarkerMaterial.js +1 -1
  142. package/views/3d/webgl-engine/materials/PathMaterial.js +1 -1
  143. package/views/3d/webgl-engine/materials/PathTechnique.js +1 -1
  144. package/views/3d/webgl-engine/materials/PatternMaterial.js +1 -1
  145. package/views/3d/webgl-engine/materials/RibbonLineMaterial.js +1 -1
  146. package/views/3d/webgl-engine/materials/SlicePlaneMaterial.js +1 -1
  147. package/views/3d/webgl-engine/materials/WaterMaterial.js +1 -1
  148. package/views/3d/webgl-engine/materials/internal/bufferWriterUtils.js +1 -1
  149. package/views/3d/webgl-engine/shaders/HUDMaterial.glsl.js +1 -1
  150. package/views/3d/webgl-engine/shaders/PatternTechnique.js +1 -1
  151. package/views/3d/webgl-engine/shaders/RibbonLineTechnique.js +1 -1
  152. package/views/3d/webgl-engine/shaders/Terrain.glsl.js +1 -1
  153. package/views/3d/webgl-engine/shaders/TerrainTechniqueConfiguration.js +1 -1
  154. package/views/3d/webgl.js +1 -1
  155. package/views/SceneView.js +1 -1
  156. package/views/webgl/FramebufferObject.js +1 -1
  157. package/views/webgl/GLObjectType.js +1 -1
  158. package/views/webgl/Renderbuffer.js +1 -1
  159. package/widgets/Editor/AddAssociationWorkflow.js +1 -1
  160. package/widgets/Editor/CreateFeaturesWorkflow.js +1 -1
  161. package/widgets/Editor/UpdateWorkflow.js +1 -1
  162. package/widgets/Editor.js +1 -1
  163. package/widgets/FeatureForm/FeatureFormUtilityNetworkAssociations/UtilityNetworkAssociationItemList.js +1 -1
  164. package/widgets/FeatureForm/UtilityNetworkAssociationAddAssociationViewModel.js +1 -1
  165. package/widgets/support/LabeledSwitch.js +1 -1
  166. package/widgets/support/Selector2D/selectorUtils.js +1 -1
  167. package/assets/esri/core/workers/chunks/048121d433aa9175348c.js +0 -1
  168. package/assets/esri/core/workers/chunks/0f4a2bdf5bb2f4303b7f.js +0 -1
  169. package/assets/esri/core/workers/chunks/147e412de9972da16a1d.js +0 -1
  170. package/assets/esri/core/workers/chunks/1545bd7d6ac7800c71b6.js +0 -1
  171. package/assets/esri/core/workers/chunks/2b21152c7e2d9c170ed7.js +0 -1
  172. package/assets/esri/core/workers/chunks/385dd6466fd967ce3ae9.js +0 -1
  173. package/assets/esri/core/workers/chunks/534f3d7e4300b662191a.js +0 -1
  174. package/assets/esri/core/workers/chunks/8d636075e5aa053940fc.js +0 -1
  175. package/assets/esri/core/workers/chunks/c43c273725b1a33712ec.js +0 -314
  176. package/assets/esri/core/workers/chunks/c8cd9a3175f516624842.js +0 -1
  177. package/assets/esri/core/workers/chunks/d630e64463687090db92.js +0 -1
  178. package/assets/esri/core/workers/chunks/dd6f18bbab50be139d20.js +0 -1
  179. package/assets/esri/core/workers/chunks/de6864e120243cf0bee8.js +0 -1
@@ -2,56 +2,59 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.33/esri/copyright.txt for details.
4
4
  */
5
- import{set as e,copy as o}from"../core/libs/gl-matrix-2/math/vec2.js";import{create as i}from"../core/libs/gl-matrix-2/factories/vec2f64.js";import{ZEROS as r,fromValues as l}from"../core/libs/gl-matrix-2/factories/vec4f64.js";import{earth as t}from"../geometry/support/Ellipsoid.js";import{ShaderOutput as a}from"../views/3d/webgl-engine/core/shaderLibrary/ShaderOutput.js";import{RejectBySlice as s}from"../views/3d/webgl-engine/core/shaderLibrary/Slice.glsl.js";import{ObjectAndLayerIdColor as n}from"../views/3d/webgl-engine/core/shaderLibrary/attributes/ObjectAndLayerIdColor.glsl.js";import{AlignPixel as c}from"../views/3d/webgl-engine/core/shaderLibrary/hud/AlignPixel.glsl.js";import{HUD as d}from"../views/3d/webgl-engine/core/shaderLibrary/hud/HUD.glsl.js";import{HUDOcclusionPass as u}from"../views/3d/webgl-engine/core/shaderLibrary/hud/HUDOcclusionPass.glsl.js";import{HUDVisibility as p}from"../views/3d/webgl-engine/core/shaderLibrary/hud/HUDVisibility.glsl.js";import{OutputHighlight as f}from"../views/3d/webgl-engine/core/shaderLibrary/output/OutputHighlight.glsl.js";import{VisualVariables as g}from"../views/3d/webgl-engine/core/shaderLibrary/shading/VisualVariables.glsl.js";import{ColorConversion as m}from"../views/3d/webgl-engine/core/shaderLibrary/util/ColorConversion.glsl.js";import{RgbaFloatEncoding as v}from"../views/3d/webgl-engine/core/shaderLibrary/util/RgbaFloatEncoding.glsl.js";import{ScreenSizePerspective as b,addScreenSizePerspective as h,addScreenSizePerspectiveAlignment as w}from"../views/3d/webgl-engine/core/shaderLibrary/util/ScreenSizePerspective.glsl.js";import{addPixelRatio as x}from"../views/3d/webgl-engine/core/shaderLibrary/util/View.glsl.js";import{Float2PassUniform as C}from"../views/3d/webgl-engine/core/shaderModules/Float2PassUniform.js";import{Float4BindUniform as P}from"../views/3d/webgl-engine/core/shaderModules/Float4BindUniform.js";import{Float4DrawUniform as z}from"../views/3d/webgl-engine/core/shaderModules/Float4DrawUniform.js";import{Float4PassUniform as S}from"../views/3d/webgl-engine/core/shaderModules/Float4PassUniform.js";import{FloatBindUniform as j}from"../views/3d/webgl-engine/core/shaderModules/FloatBindUniform.js";import{FloatPassUniform as y}from"../views/3d/webgl-engine/core/shaderModules/FloatPassUniform.js";import{glsl as A,If as O}from"../views/3d/webgl-engine/core/shaderModules/glsl.js";import{Texture2DBindUniform as F}from"../views/3d/webgl-engine/core/shaderModules/Texture2DBindUniform.js";import{Texture2DPassUniform as $}from"../views/3d/webgl-engine/core/shaderModules/Texture2DPassUniform.js";import{OITPass as D}from"../views/3d/webgl-engine/lib/OITPass.js";import{VertexAttribute as T}from"../views/3d/webgl-engine/lib/VertexAttribute.js";import{ShaderBuilder as L}from"../views/webgl/ShaderBuilder.js";import{alphaCutoff as B}from"../webscene/support/AlphaCutoff.js";const E={occludedFadeFactor:1};function M(o){const i=new L,E=o.signedDistanceFieldEnabled;i.include(d,o),i.vertex.include(s,o);const{occlusionPass:M,output:R,oitPass:_}=o;if(M)return i.include(u,o),i;const{vertex:I,fragment:q}=i;i.include(b),i.include(g,o),i.include(n,o),i.include(p),q.include(v),q.include(m),i.varyings.add("vcolor","vec4"),i.varyings.add("vtc","vec2"),i.varyings.add("vsize","vec2");const k=R===a.Highlight,G=k&&o.occlusionTestEnabled;G&&i.varyings.add("voccluded","float"),I.uniforms.add(new P("viewport",(e=>e.camera.fullViewport)),new C("screenOffset",((o,i)=>e(V,2*o.screenOffset[0]*i.camera.pixelRatio,2*o.screenOffset[1]*i.camera.pixelRatio))),new C("anchorPosition",(e=>H(e))),new S("materialColor",(e=>e.color)),new y("materialRotation",(e=>e.rotation))),x(I),E&&(I.uniforms.add(new S("outlineColor",(e=>e.outlineColor))),q.uniforms.add(new S("outlineColor",(e=>U(e)?e.outlineColor:r)),new y("outlineSize",(e=>U(e)?e.outlineSize:0)))),o.horizonCullingEnabled&&I.uniforms.add(new z("pointDistanceSphere",((e,o)=>{const i=o.camera.eye,r=e.origin;return l(r[0]-i[0],r[1]-i[1],r[2]-i[2],t.radius)}))),o.pixelSnappingEnabled&&I.include(c),o.hasScreenSizePerspective&&(h(I),w(I)),o.debugDrawLabelBorder&&i.varyings.add("debugBorderCoords","vec4"),i.attributes.add(T.UV0,"vec2"),i.attributes.add(T.COLOR,"vec4"),i.attributes.add(T.SIZE,"vec2"),i.attributes.add(T.ROTATION,"float"),i.attributes.add(T.FEATUREATTRIBUTE,"vec4"),I.code.add(o.horizonCullingEnabled?A`bool behindHorizon(vec3 posModel) {
5
+ import{set as e,copy as o}from"../core/libs/gl-matrix-2/math/vec2.js";import{create as i}from"../core/libs/gl-matrix-2/factories/vec2f64.js";import{ZEROS as r,fromValues as t}from"../core/libs/gl-matrix-2/factories/vec4f64.js";import{earth as l}from"../geometry/support/Ellipsoid.js";import{ShaderOutput as a}from"../views/3d/webgl-engine/core/shaderLibrary/ShaderOutput.js";import{RejectBySlice as s}from"../views/3d/webgl-engine/core/shaderLibrary/Slice.glsl.js";import{ObjectAndLayerIdColor as n}from"../views/3d/webgl-engine/core/shaderLibrary/attributes/ObjectAndLayerIdColor.glsl.js";import{AlignPixel as c}from"../views/3d/webgl-engine/core/shaderLibrary/hud/AlignPixel.glsl.js";import{HUD as d}from"../views/3d/webgl-engine/core/shaderLibrary/hud/HUD.glsl.js";import{HUDOcclusionPass as u}from"../views/3d/webgl-engine/core/shaderLibrary/hud/HUDOcclusionPass.glsl.js";import{HUDVisibility as f}from"../views/3d/webgl-engine/core/shaderLibrary/hud/HUDVisibility.glsl.js";import{OutputHighlight as p}from"../views/3d/webgl-engine/core/shaderLibrary/output/OutputHighlight.glsl.js";import{VisualVariables as m}from"../views/3d/webgl-engine/core/shaderLibrary/shading/VisualVariables.glsl.js";import{ColorConversion as g}from"../views/3d/webgl-engine/core/shaderLibrary/util/ColorConversion.glsl.js";import{RgbaFloatEncoding as v}from"../views/3d/webgl-engine/core/shaderLibrary/util/RgbaFloatEncoding.glsl.js";import{ScreenSizePerspective as b,addScreenSizePerspective as h,addScreenSizePerspectiveAlignment as x}from"../views/3d/webgl-engine/core/shaderLibrary/util/ScreenSizePerspective.glsl.js";import{addPixelRatio as w}from"../views/3d/webgl-engine/core/shaderLibrary/util/View.glsl.js";import{Float2PassUniform as C}from"../views/3d/webgl-engine/core/shaderModules/Float2PassUniform.js";import{Float4BindUniform as P}from"../views/3d/webgl-engine/core/shaderModules/Float4BindUniform.js";import{Float4DrawUniform as z}from"../views/3d/webgl-engine/core/shaderModules/Float4DrawUniform.js";import{Float4PassUniform as S}from"../views/3d/webgl-engine/core/shaderModules/Float4PassUniform.js";import{FloatBindUniform as j}from"../views/3d/webgl-engine/core/shaderModules/FloatBindUniform.js";import{FloatPassUniform as y}from"../views/3d/webgl-engine/core/shaderModules/FloatPassUniform.js";import{glsl as A,If as O}from"../views/3d/webgl-engine/core/shaderModules/glsl.js";import{Texture2DBindUniform as $}from"../views/3d/webgl-engine/core/shaderModules/Texture2DBindUniform.js";import{Texture2DPassUniform as F}from"../views/3d/webgl-engine/core/shaderModules/Texture2DPassUniform.js";import{OITPass as T}from"../views/3d/webgl-engine/lib/OITPass.js";import{VertexAttribute as D}from"../views/3d/webgl-engine/lib/VertexAttribute.js";import{ShaderBuilder as E}from"../views/webgl/ShaderBuilder.js";import{alphaCutoff as L}from"../webscene/support/AlphaCutoff.js";const B={occludedFadeFactor:1};function U(o){const i=new E,{signedDistanceFieldEnabled:B,occlusionTestEnabled:U,horizonCullingEnabled:R,pixelSnappingEnabled:I,hasScreenSizePerspective:q,debugDrawLabelBorder:k,vvSize:G,vvColor:N,hasRotation:Z,occludedFragmentFade:J,sampleSignedDistanceFieldTexelCenter:K}=o;i.include(d,o),i.vertex.include(s,o);const{occlusionPass:Q,output:W,oitPass:X}=o;if(Q)return i.include(u,o),i;const{vertex:Y,fragment:ee}=i;i.include(b),i.include(m,o),i.include(n,o),i.include(f),ee.include(v),ee.include(g),i.varyings.add("vcolor","vec4"),i.varyings.add("vtc","vec2"),i.varyings.add("vsize","vec2");const oe=W===a.Highlight,ie=oe&&U;ie&&i.varyings.add("voccluded","float"),Y.uniforms.add(new P("viewport",(e=>e.camera.fullViewport)),new C("screenOffset",((o,i)=>e(V,2*o.screenOffset[0]*i.camera.pixelRatio,2*o.screenOffset[1]*i.camera.pixelRatio))),new C("anchorPosition",(e=>H(e))),new S("materialColor",(e=>e.color)),new y("materialRotation",(e=>e.rotation)),new F("tex",(e=>e.texture))),w(Y),B&&(Y.uniforms.add(new S("outlineColor",(e=>e.outlineColor))),ee.uniforms.add(new S("outlineColor",(e=>M(e)?e.outlineColor:r)),new y("outlineSize",(e=>M(e)?e.outlineSize:0)))),R&&Y.uniforms.add(new z("pointDistanceSphere",((e,o)=>{const i=o.camera.eye,r=e.origin;return t(r[0]-i[0],r[1]-i[1],r[2]-i[2],l.radius)}))),I&&Y.include(c),q&&(h(Y),x(Y)),k&&i.varyings.add("debugBorderCoords","vec4"),i.attributes.add(D.UVI,"vec2"),i.attributes.add(D.COLOR,"vec4"),i.attributes.add(D.SIZE,"vec2"),i.attributes.add(D.ROTATION,"float"),i.attributes.add(D.FEATUREATTRIBUTE,"vec4"),Y.code.add(R?A`bool behindHorizon(vec3 posModel) {
6
6
  vec3 camToEarthCenter = pointDistanceSphere.xyz - localOrigin;
7
7
  vec3 camToPos = pointDistanceSphere.xyz + posModel;
8
8
  float earthRadius = pointDistanceSphere.w;
9
9
  float a = dot(camToPos, camToPos);
10
10
  float b = dot(camToPos, camToEarthCenter);
11
11
  float c = dot(camToEarthCenter, camToEarthCenter) - earthRadius * earthRadius;
12
- return b > 0.0 && b < a && b * b > a * c;
13
- }`:A`bool behindHorizon(vec3 posModel) { return false; }`),I.main.add(A`
14
- ProjectHUDAux projectAux;
15
- vec4 posProj = projectPositionHUD(projectAux);
16
- forwardObjectAndLayerIdColor();
17
-
18
- if (rejectBySlice(projectAux.posModel)) {
19
- // Project outside of clip plane
20
- gl_Position = vec4(1e038, 1e038, 1e038, 1.0);
21
- return;
22
- }
12
+ return b > 0.0 && b < a && b * b > a * c;
13
+ }`:A`bool behindHorizon(vec3 posModel) { return false; }`),Y.main.add(A`
14
+ ProjectHUDAux projectAux;
15
+ vec4 posProj = projectPositionHUD(projectAux);
16
+ forwardObjectAndLayerIdColor();
17
+
18
+ if (rejectBySlice(projectAux.posModel)) {
19
+ // Project outside of clip plane
20
+ gl_Position = vec4(1e038, 1e038, 1e038, 1.0);
21
+ return;
22
+ }
23
23
 
24
- if (behindHorizon(projectAux.posModel)) {
25
- // Project outside of clip plane
26
- gl_Position = vec4(1e038, 1e038, 1e038, 1.0);
27
- return;
28
- }
24
+ if (behindHorizon(projectAux.posModel)) {
25
+ // Project outside of clip plane
26
+ gl_Position = vec4(1e038, 1e038, 1e038, 1.0);
27
+ return;
28
+ }
29
29
 
30
- vec2 inputSize;
31
- ${O(o.hasScreenSizePerspective,A`
32
- inputSize = screenSizePerspectiveScaleVec2(size, projectAux.absCosAngle, projectAux.distanceToCamera, screenSizePerspective);
33
- vec2 screenOffsetScaled = screenSizePerspectiveScaleVec2(screenOffset, projectAux.absCosAngle, projectAux.distanceToCamera, screenSizePerspectiveAlignment);`,A`
34
- inputSize = size;
35
- vec2 screenOffsetScaled = screenOffset;`)}
36
- ${O(o.vvSize,A`inputSize *= vvScale(featureAttribute).xx;`)}
37
-
38
- vec2 combinedSize = inputSize * pixelRatio;
39
- vec4 quadOffset = vec4(0.0);
40
-
41
- ${O(o.occlusionTestEnabled,A`
42
- bool visible = testHUDVisibility(posProj);
43
- if (!visible) {
44
- vtc = vec2(0.0);
45
- ${O(o.debugDrawLabelBorder,"debugBorderCoords = vec4(0.5, 0.5, 1.5 / combinedSize);")}
46
- return;
47
- }`)}
48
- ${O(G,A`voccluded = visible ? 0.0 : 1.0;`)}
49
- `);const N=A`
50
- vec2 uv01 = floor(uv0);
51
- vec2 uv = uv0 - uv01;
52
- quadOffset.xy = (uv01 - anchorPosition) * 2.0 * combinedSize;
53
-
54
- ${O(o.hasRotation,A`
30
+ vec2 inputSize;
31
+ ${O(q,A`
32
+ inputSize = screenSizePerspectiveScaleVec2(size, projectAux.absCosAngle, projectAux.distanceToCamera, screenSizePerspective);
33
+ vec2 screenOffsetScaled = screenSizePerspectiveScaleVec2(screenOffset, projectAux.absCosAngle, projectAux.distanceToCamera, screenSizePerspectiveAlignment);`,A`
34
+ inputSize = size;
35
+ vec2 screenOffsetScaled = screenOffset;`)}
36
+ ${O(G,A`inputSize *= vvScale(featureAttribute).xx;`)}
37
+
38
+ vec2 combinedSize = inputSize * pixelRatio;
39
+ vec4 quadOffset = vec4(0.0);
40
+
41
+ ${O(U,A`
42
+ bool visible = testHUDVisibility(posProj);
43
+ if (!visible) {
44
+ vtc = vec2(0.0);
45
+ ${O(k,"debugBorderCoords = vec4(0.5, 0.5, 1.5 / combinedSize);")}
46
+ return;
47
+ }`)}
48
+ ${O(ie,A`voccluded = visible ? 0.0 : 1.0;`)}
49
+ `);const re=A`
50
+ vec2 uvi1 = vec2(uvi.x < 0.0 ? 1.0 : 0.0, uvi.y < 0.0 ? 1.0 : 0.0);
51
+ vec2 uv = abs(uvi + uvi1);
52
+ vec2 texSize = vec2(textureSize(tex, 0));
53
+ uv.x = uv.x >= ${_} ? 1.0 : uv.x / texSize.x;
54
+ uv.y = uv.y >= ${_} ? 1.0 : uv.y / texSize.y;
55
+ quadOffset.xy = (uvi1 - anchorPosition) * 2.0 * combinedSize;
56
+
57
+ ${O(Z,A`
55
58
  float angle = radians(materialRotation + rotation);
56
59
  float cosAngle = cos(angle);
57
60
  float sinAngle = sin(angle);
@@ -61,42 +64,44 @@ return b > 0.0 && b < a && b * b > a * c;
61
64
  `)}
62
65
 
63
66
  quadOffset.xy = (quadOffset.xy + screenOffsetScaled) / viewport.zw * posProj.w;
64
- `,Z=o.pixelSnappingEnabled?E?A`posProj = alignToPixelOrigin(posProj, viewport.zw) + quadOffset;`:A`posProj += quadOffset;
67
+ `,te=I?B?A`posProj = alignToPixelOrigin(posProj, viewport.zw) + quadOffset;`:A`posProj += quadOffset;
65
68
  if (inputSize.x == size.x) {
66
69
  posProj = alignToPixelOrigin(posProj, viewport.zw);
67
- }`:A`posProj += quadOffset;`;I.main.add(A`
68
- ${N}
69
- ${o.vvColor?"vcolor = interpolateVVColor(featureAttribute.y) * materialColor;":"vcolor = color / 255.0 * materialColor;"}
70
+ }`:A`posProj += quadOffset;`;Y.main.add(A`
71
+ ${re}
72
+ ${N?"vcolor = interpolateVVColor(featureAttribute.y) * materialColor;":"vcolor = color / 255.0 * materialColor;"}
70
73
 
71
- ${O(R===a.ObjectAndLayerIdColor,A`vcolor.a = 1.0;`)}
74
+ ${O(W===a.ObjectAndLayerIdColor,A`vcolor.a = 1.0;`)}
72
75
 
73
- bool alphaDiscard = vcolor.a < ${A.float(B)};
74
- ${O(E,`alphaDiscard = alphaDiscard && outlineColor.a < ${A.float(B)};`)}
76
+ bool alphaDiscard = vcolor.a < ${A.float(L)};
77
+ ${O(B,`alphaDiscard = alphaDiscard && outlineColor.a < ${A.float(L)};`)}
75
78
  if (alphaDiscard) {
76
79
  // "early discard" if both symbol color (= fill) and outline color (if applicable) are transparent
77
80
  gl_Position = vec4(1e38, 1e38, 1e38, 1.0);
78
81
  return;
79
82
  } else {
80
- ${Z}
83
+ ${te}
81
84
  gl_Position = posProj;
82
85
  }
83
86
 
84
87
  vtc = uv;
85
88
 
86
- ${O(o.debugDrawLabelBorder,A`debugBorderCoords = vec4(uv01, 1.5 / combinedSize);`)}
89
+ ${O(k,A`debugBorderCoords = vec4(uv01, 1.5 / combinedSize);`)}
87
90
  vsize = inputSize;
88
- `),q.uniforms.add(new $("tex",(e=>e.texture))),o.occludedFragmentFade&&(q.uniforms.add(new F("depthMap",(e=>e.mainDepth))),q.uniforms.add(new j("occludedOpacity",(e=>e.hudOccludedFragmentOpacity))));const J=o.debugDrawLabelBorder?A`(isBorder > 0.0 ? 0.0 : ${A.float(B)})`:A.float(B),K=A`
89
- ${O(o.debugDrawLabelBorder,A`float isBorder = float(any(lessThan(debugBorderCoords.xy, debugBorderCoords.zw)) || any(greaterThan(debugBorderCoords.xy, 1.0 - debugBorderCoords.zw)));`)}
91
+ `),ee.uniforms.add(new F("tex",(e=>e.texture))),J&&(ee.uniforms.add(new $("depthMap",(e=>e.mainDepth))),ee.uniforms.add(new j("occludedOpacity",(e=>e.hudOccludedFragmentOpacity))));const le=k?A`(isBorder > 0.0 ? 0.0 : ${A.float(L)})`:A.float(L),ae=A`
92
+ ${O(k,A`float isBorder = float(any(lessThan(debugBorderCoords.xy, debugBorderCoords.zw)) || any(greaterThan(debugBorderCoords.xy, 1.0 - debugBorderCoords.zw)));`)}
93
+
94
+ vec2 samplePos = vtc;
90
95
 
91
- ${O(o.sampleSignedDistanceFieldTexelCenter,A`
96
+ ${O(K,A`
92
97
  float txSize = float(textureSize(tex, 0).x);
93
98
  float texelSize = 1.0 / txSize;
94
99
 
95
100
  // Calculate how much we have to add/subtract to/from each texel to reach the size of an onscreen pixel
96
101
  vec2 scaleFactor = (vsize - txSize) * texelSize;
97
- vec2 samplePos = vtc + (vec2(1.0, -1.0) * texelSize) * scaleFactor;`,A`vec2 samplePos = vtc;`)}
102
+ samplePos += (vec2(1.0, -1.0) * texelSize) * scaleFactor;`)}
98
103
 
99
- ${E?A`
104
+ ${B?A`
100
105
  vec4 fillPixelColor = vcolor;
101
106
 
102
107
  // Get distance and map it into [-0.5, 0.5]
@@ -118,8 +123,8 @@ posProj = alignToPixelOrigin(posProj, viewport.zw);
118
123
  outlinePixelColor.a *= outlineAlphaFactor;
119
124
 
120
125
  if (
121
- outlineAlphaFactor + fillAlphaFactor < ${J} ||
122
- fillPixelColor.a + outlinePixelColor.a < ${A.float(B)}
126
+ outlineAlphaFactor + fillAlphaFactor < ${le} ||
127
+ fillPixelColor.a + outlinePixelColor.a < ${A.float(L)}
123
128
  ) {
124
129
  discard;
125
130
  }
@@ -129,39 +134,39 @@ posProj = alignToPixelOrigin(posProj, viewport.zw);
129
134
  vec3 compositeColor = vec3(outlinePixelColor) * outlinePixelColor.a +
130
135
  vec3(fillPixelColor) * fillPixelColor.a * (1.0 - outlinePixelColor.a);
131
136
 
132
- ${O(!k,A`fragColor = vec4(compositeColor, compositeAlpha);`)}
137
+ ${O(!oe,A`fragColor = vec4(compositeColor, compositeAlpha);`)}
133
138
  } else {
134
- if (fillAlphaFactor < ${J}) {
139
+ if (fillAlphaFactor < ${le}) {
135
140
  discard;
136
141
  }
137
142
 
138
- ${O(!k,A`fragColor = premultiplyAlpha(fillPixelColor);`)}
143
+ ${O(!oe,A`fragColor = premultiplyAlpha(fillPixelColor);`)}
139
144
  }
140
145
 
141
146
  // visualize SDF:
142
147
  // fragColor = vec4(clamp(-dist/vsize.x*2.0, 0.0, 1.0), clamp(dist/vsize.x*2.0, 0.0, 1.0), 0.0, 1.0);
143
148
  `:A`
144
- vec4 texColor = texture(tex, vtc, -0.5);
145
- if (texColor.a < ${J}) {
149
+ vec4 texColor = texture(tex, samplePos, -0.5);
150
+ if (texColor.a < ${le}) {
146
151
  discard;
147
152
  }
148
- ${O(!k,A`fragColor = texColor * premultiplyAlpha(vcolor);`)}
153
+ ${O(!oe,A`fragColor = texColor * premultiplyAlpha(vcolor);`)}
149
154
  `}
150
155
 
151
- ${O(o.occludedFragmentFade&&!k,A`
156
+ ${O(J&&!oe,A`
152
157
  float zSample = texelFetch(depthMap, ivec2(gl_FragCoord.xy), 0).x;
153
158
  if (zSample < gl_FragCoord.z) {
154
159
  fragColor *= occludedOpacity;
155
160
  }
156
161
  `)}
157
162
 
158
- ${O(!k&&o.debugDrawLabelBorder,A`fragColor = mix(fragColor, vec4(1.0, 0.0, 1.0, 1.0), isBorder * 0.5);`)}
159
- `;switch(R){case a.Color:case a.ColorEmission:i.outputs.add("fragColor","vec4",0),R===a.ColorEmission&&i.outputs.add("fragEmission","vec4",1),_===D.ColorAlpha&&i.outputs.add("fragAlpha","float",R===a.ColorEmission?2:1),q.main.add(A`
160
- ${K}
161
- ${O(_===D.FrontFace,A`fragColor.rgb /= fragColor.a;`)}
162
- ${O(R===a.ColorEmission,A`fragEmission = vec4(0.0);`)}
163
- ${O(_===D.ColorAlpha,A`fragAlpha = fragColor.a;`)}`);break;case a.ObjectAndLayerIdColor:q.main.add(A`
164
- ${K}
165
- outputObjectAndLayerIdColor();`);break;case a.Highlight:i.include(f,o),q.main.add(A`
166
- ${K}
167
- outputHighlight(${O(G,A`voccluded == 1.0`,A`false`)});`)}return i}function U(e){return e.outlineColor[3]>0&&e.outlineSize>0}function H(e){return e.textureIsSignedDistanceField?R(e.anchorPosition,e.distanceFieldBoundingBox,V):o(V,e.anchorPosition),V}function R(o,i,r){e(r,o[0]*(i[2]-i[0])+i[0],o[1]*(i[3]-i[1])+i[1])}const V=i(),_=Object.freeze(Object.defineProperty({__proto__:null,build:M,calculateAnchorPosition:H,shaderSettings:E},Symbol.toStringTag,{value:"Module"}));export{_ as H,M as b,H as c,E as s};
163
+ ${O(!oe&&k,A`fragColor = mix(fragColor, vec4(1.0, 0.0, 1.0, 1.0), isBorder * 0.5);`)}
164
+ `;switch(W){case a.Color:case a.ColorEmission:i.outputs.add("fragColor","vec4",0),W===a.ColorEmission&&i.outputs.add("fragEmission","vec4",1),X===T.ColorAlpha&&i.outputs.add("fragAlpha","float",W===a.ColorEmission?2:1),ee.main.add(A`
165
+ ${ae}
166
+ ${O(X===T.FrontFace,A`fragColor.rgb /= fragColor.a;`)}
167
+ ${O(W===a.ColorEmission,A`fragEmission = vec4(0.0);`)}
168
+ ${O(X===T.ColorAlpha,A`fragAlpha = fragColor.a;`)}`);break;case a.ObjectAndLayerIdColor:ee.main.add(A`
169
+ ${ae}
170
+ outputObjectAndLayerIdColor();`);break;case a.Highlight:i.include(p,o),ee.main.add(A`
171
+ ${ae}
172
+ outputHighlight(${O(ie,A`voccluded == 1.0`,A`false`)});`)}return i}function M(e){return e.outlineColor[3]>0&&e.outlineSize>0}function H(e){return e.textureIsSignedDistanceField?R(e.anchorPosition,e.distanceFieldBoundingBox,V):o(V,e.anchorPosition),V}function R(o,i,r){e(r,o[0]*(i[2]-i[0])+i[0],o[1]*(i[3]-i[1])+i[1])}const V=i(),I=32e3,_=A.float(I),q=Object.freeze(Object.defineProperty({__proto__:null,build:U,calculateAnchorPosition:H,fullUV:I,shaderSettings:B},Symbol.toStringTag,{value:"Module"}));export{q as H,U as b,H as c,I as f,B as s};
@@ -2,7 +2,7 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.33/esri/copyright.txt for details.
4
4
  */
5
- import{ShaderOutput as e}from"../views/3d/webgl-engine/core/shaderLibrary/ShaderOutput.js";import{SliceDraw as i}from"../views/3d/webgl-engine/core/shaderLibrary/Slice.glsl.js";import{ObjectAndLayerIdColor as t}from"../views/3d/webgl-engine/core/shaderLibrary/attributes/ObjectAndLayerIdColor.glsl.js";import{RibbonVertexPosition as n}from"../views/3d/webgl-engine/core/shaderLibrary/attributes/RibbonVertexPosition.glsl.js";import{LineStipple as r,computePixelSize as o}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{PiUtils as s}from"../views/3d/webgl-engine/core/shaderLibrary/shading/PiUtils.glsl.js";import{terrainDepthTest as l}from"../views/3d/webgl-engine/core/shaderLibrary/shading/TerrainDepthTest.glsl.js";import{ColorConversion as d}from"../views/3d/webgl-engine/core/shaderLibrary/util/ColorConversion.glsl.js";import{addProjViewLocalOrigin as p,addPixelRatio as c}from"../views/3d/webgl-engine/core/shaderLibrary/util/View.glsl.js";import{Float2BindUniform as m}from"../views/3d/webgl-engine/core/shaderModules/Float2BindUniform.js";import{Float4BindUniform as v}from"../views/3d/webgl-engine/core/shaderModules/Float4BindUniform.js";import{Float4PassUniform as f}from"../views/3d/webgl-engine/core/shaderModules/Float4PassUniform.js";import{FloatBindUniform as g}from"../views/3d/webgl-engine/core/shaderModules/FloatBindUniform.js";import{FloatPassUniform as h}from"../views/3d/webgl-engine/core/shaderModules/FloatPassUniform.js";import{glsl as S}from"../views/3d/webgl-engine/core/shaderModules/glsl.js";import{Matrix4BindUniform as u}from"../views/3d/webgl-engine/core/shaderModules/Matrix4BindUniform.js";import{VertexAttribute as D}from"../views/3d/webgl-engine/lib/VertexAttribute.js";import{LineMarkerSpace as x}from"../views/3d/webgl-engine/shaders/LineMarkerTechniqueConfiguration.js";import{outputColorHighlightOID as L}from"../views/3d/webgl-engine/shaders/OutputColorHighlightOID.glsl.js";import{CapType as w}from"../views/3d/webgl-engine/shaders/RibbonLineTechniqueConfiguration.js";import{ShaderBuilder as b}from"../views/webgl/ShaderBuilder.js";import{alphaCutoff as y}from"../webscene/support/AlphaCutoff.js";const j=1;function C(C){const F=new b,{attributes:P,varyings:R,vertex:z,fragment:A}=F,{applyMarkerOffset:T,draped:V,output:O,capType:W,stippleEnabled:E,falloffEnabled:I,roundJoins:N,wireframe:M,innerColorEnabled:_}=C;F.include(s),F.include(n,C),F.include(r,C),F.include(t,C),F.include(l,C);const k=T&&!V;k&&(z.uniforms.add(new h("markerScale",(e=>e.markerScale))),F.include(a,{space:x.World})),p(z,C),z.uniforms.add(new u("inverseProjectionMatrix",(e=>e.camera.inverseProjectionMatrix)),new m("nearFar",(e=>e.camera.nearFar)),new h("miterLimit",(e=>"miter"!==e.join?0:e.miterLimit)),new v("viewport",(e=>e.camera.fullViewport))),z.constants.add("LARGE_HALF_FLOAT","float",65500),P.add(D.POSITION,"vec3"),P.add(D.PREVPOSITION,"vec3"),P.add(D.NEXTPOSITION,"vec3"),P.add(D.SUBDIVISIONFACTOR,"float"),P.add(D.UV0,"vec2"),R.add("vColor","vec4"),R.add("vpos","vec3",{invariant:!0}),R.add("vLineDistance","float"),R.add("vLineWidth","float");const B=E;B&&R.add("vLineSizeInv","float");const U=W===w.ROUND,$=E&&U,H=I||$;H&&R.add("vLineDistanceNorm","float"),U&&(R.add("vSegmentSDF","float"),R.add("vReverseSegmentSDF","float")),z.code.add(S`vec2 perpendicular(vec2 v) {
5
+ import{ShaderOutput as e}from"../views/3d/webgl-engine/core/shaderLibrary/ShaderOutput.js";import{SliceDraw as i}from"../views/3d/webgl-engine/core/shaderLibrary/Slice.glsl.js";import{ObjectAndLayerIdColor as t}from"../views/3d/webgl-engine/core/shaderLibrary/attributes/ObjectAndLayerIdColor.glsl.js";import{RibbonVertexPosition as n}from"../views/3d/webgl-engine/core/shaderLibrary/attributes/RibbonVertexPosition.glsl.js";import{LineStipple as r,computePixelSize as o}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{PiUtils as s}from"../views/3d/webgl-engine/core/shaderLibrary/shading/PiUtils.glsl.js";import{terrainDepthTest as l}from"../views/3d/webgl-engine/core/shaderLibrary/shading/TerrainDepthTest.glsl.js";import{ColorConversion as d}from"../views/3d/webgl-engine/core/shaderLibrary/util/ColorConversion.glsl.js";import{addProjViewLocalOrigin as p,addPixelRatio as c}from"../views/3d/webgl-engine/core/shaderLibrary/util/View.glsl.js";import{Float2BindUniform as m}from"../views/3d/webgl-engine/core/shaderModules/Float2BindUniform.js";import{Float4BindUniform as f}from"../views/3d/webgl-engine/core/shaderModules/Float4BindUniform.js";import{Float4PassUniform as v}from"../views/3d/webgl-engine/core/shaderModules/Float4PassUniform.js";import{FloatBindUniform as g}from"../views/3d/webgl-engine/core/shaderModules/FloatBindUniform.js";import{FloatPassUniform as h}from"../views/3d/webgl-engine/core/shaderModules/FloatPassUniform.js";import{glsl as S}from"../views/3d/webgl-engine/core/shaderModules/glsl.js";import{Matrix4BindUniform as D}from"../views/3d/webgl-engine/core/shaderModules/Matrix4BindUniform.js";import{VertexAttribute as u}from"../views/3d/webgl-engine/lib/VertexAttribute.js";import{LineMarkerSpace as x}from"../views/3d/webgl-engine/shaders/LineMarkerTechniqueConfiguration.js";import{outputColorHighlightOID as L}from"../views/3d/webgl-engine/shaders/OutputColorHighlightOID.glsl.js";import{CapType as w}from"../views/3d/webgl-engine/shaders/RibbonLineTechniqueConfiguration.js";import{ShaderBuilder as b}from"../views/webgl/ShaderBuilder.js";import{alphaCutoff as y}from"../webscene/support/AlphaCutoff.js";const j=1;function P(P){const C=new b,{attributes:F,varyings:R,vertex:A,fragment:z}=C,{applyMarkerOffset:T,draped:V,output:W,capType:O,stippleEnabled:E,falloffEnabled:N,roundJoins:M,wireframe:I,innerColorEnabled:_}=P;C.include(s),C.include(n,P),C.include(r,P),C.include(t,P),C.include(l,P);const k=T&&!V;k&&(A.uniforms.add(new h("markerScale",(e=>e.markerScale))),C.include(a,{space:x.World})),p(A,P),A.uniforms.add(new D("inverseProjectionMatrix",(e=>e.camera.inverseProjectionMatrix)),new m("nearFar",(e=>e.camera.nearFar)),new h("miterLimit",(e=>"miter"!==e.join?0:e.miterLimit)),new f("viewport",(e=>e.camera.fullViewport))),A.constants.add("LARGE_HALF_FLOAT","float",65500),F.add(u.POSITION,"vec3"),F.add(u.PREVPOSITION,"vec3"),F.add(u.NEXTPOSITION,"vec3"),F.add(u.LINEPARAMETERS,"vec2"),F.add(u.U0,"float"),R.add("vColor","vec4"),R.add("vpos","vec3",{invariant:!0}),R.add("vLineDistance","float"),R.add("vLineWidth","float");const B=E;B&&R.add("vLineSizeInv","float");const U=O===w.ROUND,$=E&&U,H=N||$;H&&R.add("vLineDistanceNorm","float"),U&&(R.add("vSegmentSDF","float"),R.add("vReverseSegmentSDF","float")),A.code.add(S`vec2 perpendicular(vec2 v) {
6
6
  return vec2(v.y, -v.x);
7
7
  }
8
8
  float interp(float ncp, vec4 a, vec4 b) {
@@ -13,11 +13,11 @@ float s = sin(a);
13
13
  float c = cos(a);
14
14
  mat2 m = mat2(c, -s, s, c);
15
15
  return m * v;
16
- }`),z.code.add(S`vec4 projectAndScale(vec4 pos) {
16
+ }`),A.code.add(S`vec4 projectAndScale(vec4 pos) {
17
17
  vec4 posNdc = proj * pos;
18
18
  posNdc.xy *= viewport.zw / posNdc.w;
19
19
  return posNdc;
20
- }`),z.code.add(S`void clipAndTransform(inout vec4 pos, inout vec4 prev, inout vec4 next, in bool isStartVertex) {
20
+ }`),A.code.add(S`void clipAndTransform(inout vec4 pos, inout vec4 prev, inout vec4 next, in bool isStartVertex) {
21
21
  float vnp = nearFar[0] * 0.99;
22
22
  if(pos.z > -nearFar[0]) {
23
23
  if (!isStartVertex) {
@@ -47,21 +47,20 @@ forwardViewPosDepth(pos.xyz);
47
47
  pos = projectAndScale(pos);
48
48
  next = projectAndScale(next);
49
49
  prev = projectAndScale(prev);
50
- }`),c(z),z.constants.add("aaWidth","float",E?0:1).main.add(S`
51
- // unpack values from uv0.y
52
- bool isStartVertex = abs(abs(uv0.y)-3.0) == 1.0;
50
+ }`),c(A),A.constants.add("aaWidth","float",E?0:1).main.add(S`
51
+ // unpack values from vertex type
52
+ bool isStartVertex = abs(abs(lineParameters.y)-3.0) == 1.0;
53
53
 
54
54
  float coverage = 1.0;
55
55
 
56
- // Check for special value of uv0.y which is used by the Renderer when graphics
57
- // are removed before the VBO is recompacted. If this is the case, then we just
58
- // project outside of clip space.
59
- if (uv0.y == 0.0) {
56
+ // Check for special value of lineParameters.y which is used by the Renderer when graphics are removed before the
57
+ // VBO is recompacted. If this is the case, then we just project outside of clip space.
58
+ if (lineParameters.y == 0.0) {
60
59
  // Project out of clip space
61
60
  gl_Position = vec4(1e038, 1e038, 1e038, 1.0);
62
61
  }
63
62
  else {
64
- bool isJoin = abs(uv0.y) < 3.0;
63
+ bool isJoin = abs(lineParameters.y) < 3.0;
65
64
  float lineSize = getSize();
66
65
 
67
66
  if (lineSize < 1.0) {
@@ -77,26 +76,26 @@ prev = projectAndScale(prev);
77
76
  vec4 pos = view * vec4(position, 1.0);
78
77
  vec4 prev = view * vec4(prevPosition, 1.0);
79
78
  vec4 next = view * vec4(nextPosition, 1.0);
80
- `),k&&z.main.add(S`vec4 other = isStartVertex ? next : prev;
79
+ `),k&&A.main.add(S`vec4 other = isStartVertex ? next : prev;
81
80
  bool markersHidden = areWorldMarkersHidden(pos, other);
82
81
  if(!isJoin && !markersHidden) {
83
82
  pos.xyz += normalize(other.xyz - pos.xyz) * getWorldMarkerSize(pos) * 0.5;
84
- }`),z.main.add(S`clipAndTransform(pos, prev, next, isStartVertex);
83
+ }`),A.main.add(S`clipAndTransform(pos, prev, next, isStartVertex);
85
84
  vec2 left = (pos.xy - prev.xy);
86
85
  vec2 right = (next.xy - pos.xy);
87
86
  float leftLen = length(left);
88
- float rightLen = length(right);`);(E||U)&&z.main.add(S`
87
+ float rightLen = length(right);`);(E||U)&&A.main.add(S`
89
88
  float isEndVertex = float(!isStartVertex);
90
89
  vec2 segmentOrigin = mix(pos.xy, prev.xy, isEndVertex);
91
90
  vec2 segment = mix(right, left, isEndVertex);
92
91
  ${U?S`vec2 segmentEnd = mix(next.xy, pos.xy, isEndVertex);`:""}
93
- `),z.main.add(S`left = (leftLen > 0.001) ? left/leftLen : vec2(0.0, 0.0);
92
+ `),A.main.add(S`left = (leftLen > 0.001) ? left/leftLen : vec2(0.0, 0.0);
94
93
  right = (rightLen > 0.001) ? right/rightLen : vec2(0.0, 0.0);
95
94
  vec2 capDisplacementDir = vec2(0, 0);
96
95
  vec2 joinDisplacementDir = vec2(0, 0);
97
96
  float displacementLen = lineWidth;
98
97
  if (isJoin) {
99
- bool isOutside = (left.x * right.y - left.y * right.x) * uv0.y > 0.0;
98
+ bool isOutside = (left.x * right.y - left.y * right.x) * lineParameters.y > 0.0;
100
99
  joinDisplacementDir = normalize(left + right);
101
100
  joinDisplacementDir = perpendicular(joinDisplacementDir);
102
101
  if (leftLen > 0.001 && rightLen > 0.001) {
@@ -106,7 +105,8 @@ if (!isOutside) {
106
105
  displacementLen = min(displacementLen, min(leftLen, rightLen)/abs(nDotSeg));
107
106
  }
108
107
  }
109
- if (isOutside && (displacementLen > miterLimit * lineWidth)) {`),N?z.main.add(S`
108
+ float subdivisionFactor = lineParameters.x;
109
+ if (isOutside && (displacementLen > miterLimit * lineWidth)) {`),M?A.main.add(S`
110
110
  vec2 startDir = leftLen < 0.001 ? right : left;
111
111
  startDir = perpendicular(startDir);
112
112
 
@@ -116,8 +116,8 @@ if (isOutside && (displacementLen > miterLimit * lineWidth)) {`),N?z.main.add(S`
116
116
  float factor = ${E?S`min(1.0, subdivisionFactor * ${S.float((j+2)/(j+1))})`:S`subdivisionFactor`};
117
117
 
118
118
  float rotationAngle = acos(clamp(dot(startDir, endDir), -1.0, 1.0));
119
- joinDisplacementDir = rotate(startDir, -sign(uv0.y) * factor * rotationAngle);
120
- `):z.main.add(S`if (leftLen < 0.001) {
119
+ joinDisplacementDir = rotate(startDir, -sign(lineParameters.y) * factor * rotationAngle);
120
+ `):A.main.add(S`if (leftLen < 0.001) {
121
121
  joinDisplacementDir = right;
122
122
  }
123
123
  else if (rightLen < 0.001) {
@@ -126,7 +126,7 @@ joinDisplacementDir = left;
126
126
  else {
127
127
  joinDisplacementDir = (isStartVertex || subdivisionFactor > 0.0) ? right : left;
128
128
  }
129
- joinDisplacementDir = perpendicular(joinDisplacementDir);`);const J=W!==w.BUTT;return z.main.add(S`
129
+ joinDisplacementDir = perpendicular(joinDisplacementDir);`);const J=O!==w.BUTT;return A.main.add(S`
130
130
  displacementLen = lineWidth;
131
131
  }
132
132
  } else {
@@ -136,25 +136,25 @@ joinDisplacementDir = perpendicular(joinDisplacementDir);`);const J=W!==w.BUTT;r
136
136
 
137
137
  ${J?S`capDisplacementDir = isStartVertex ? -right : left;`:""}
138
138
  }
139
- `),z.main.add(S`
139
+ `),A.main.add(S`
140
140
  // Displacement (in pixels) caused by join/or cap
141
- vec2 dpos = joinDisplacementDir * sign(uv0.y) * displacementLen + capDisplacementDir * displacementLen;
142
- float lineDistNorm = sign(uv0.y) * pos.w;
141
+ vec2 dpos = joinDisplacementDir * sign(lineParameters.y) * displacementLen + capDisplacementDir * displacementLen;
142
+ float lineDistNorm = sign(lineParameters.y) * pos.w;
143
143
 
144
144
  vLineDistance = lineWidth * lineDistNorm;
145
145
  ${H?S`vLineDistanceNorm = lineDistNorm;`:""}
146
146
 
147
147
  pos.xy += dpos;
148
- `),U&&z.main.add(S`vec2 segmentDir = normalize(segment);
148
+ `),U&&A.main.add(S`vec2 segmentDir = normalize(segment);
149
149
  vSegmentSDF = (isJoin && isStartVertex) ? LARGE_HALF_FLOAT : (dot(pos.xy - segmentOrigin, segmentDir) * pos.w) ;
150
- vReverseSegmentSDF = (isJoin && !isStartVertex) ? LARGE_HALF_FLOAT : (dot(pos.xy - segmentEnd, -segmentDir) * pos.w);`),E&&(V?z.uniforms.add(new g("worldToScreenRatio",(e=>1/e.screenToPCSRatio))):z.main.add(S`vec3 segmentCenter = mix((nextPosition + position) * 0.5, (position + prevPosition) * 0.5, isEndVertex);
151
- float worldToScreenRatio = computeWorldToScreenRatio(segmentCenter);`),z.main.add(S`float segmentLengthScreenDouble = length(segment);
150
+ vReverseSegmentSDF = (isJoin && !isStartVertex) ? LARGE_HALF_FLOAT : (dot(pos.xy - segmentEnd, -segmentDir) * pos.w);`),E&&(V?A.uniforms.add(new g("worldToScreenRatio",(e=>1/e.screenToPCSRatio))):A.main.add(S`vec3 segmentCenter = mix((nextPosition + position) * 0.5, (position + prevPosition) * 0.5, isEndVertex);
151
+ float worldToScreenRatio = computeWorldToScreenRatio(segmentCenter);`),A.main.add(S`float segmentLengthScreenDouble = length(segment);
152
152
  float segmentLengthScreen = segmentLengthScreenDouble * 0.5;
153
153
  float discreteWorldToScreenRatio = discretizeWorldToScreenRatio(worldToScreenRatio);
154
154
  float segmentLengthRender = length(mix(nextPosition - position, position - prevPosition, isEndVertex));
155
- vStipplePatternStretch = worldToScreenRatio / discreteWorldToScreenRatio;`),V?z.main.add(S`float segmentLengthPseudoScreen = segmentLengthScreen / pixelRatio * discreteWorldToScreenRatio / worldToScreenRatio;
156
- float startPseudoScreen = uv0.x * discreteWorldToScreenRatio - mix(0.0, segmentLengthPseudoScreen, isEndVertex);`):z.main.add(S`float startPseudoScreen = mix(uv0.x, uv0.x - segmentLengthRender, isEndVertex) * discreteWorldToScreenRatio;
157
- float segmentLengthPseudoScreen = segmentLengthRender * discreteWorldToScreenRatio;`),z.uniforms.add(new h("stipplePatternPixelSize",(e=>o(e)))),z.main.add(S`float patternLength = lineSize * stipplePatternPixelSize;
155
+ vStipplePatternStretch = worldToScreenRatio / discreteWorldToScreenRatio;`),V?A.main.add(S`float segmentLengthPseudoScreen = segmentLengthScreen / pixelRatio * discreteWorldToScreenRatio / worldToScreenRatio;
156
+ float startPseudoScreen = u0 * discreteWorldToScreenRatio - mix(0.0, segmentLengthPseudoScreen, isEndVertex);`):A.main.add(S`float startPseudoScreen = mix(u0, u0 - segmentLengthRender, isEndVertex) * discreteWorldToScreenRatio;
157
+ float segmentLengthPseudoScreen = segmentLengthRender * discreteWorldToScreenRatio;`),A.uniforms.add(new h("stipplePatternPixelSize",(e=>o(e)))),A.main.add(S`float patternLength = lineSize * stipplePatternPixelSize;
158
158
  vStippleDistanceLimits = computeStippleDistanceLimits(startPseudoScreen, segmentLengthPseudoScreen, segmentLengthScreen, patternLength);
159
159
  vStippleDistance = mix(vStippleDistanceLimits.x, vStippleDistanceLimits.y, isEndVertex);
160
160
  if (segmentLengthScreenDouble >= 0.001) {
@@ -168,21 +168,21 @@ vStippleDistanceLimits = isJoin ?
168
168
  vStippleDistanceLimits :
169
169
  isStartVertex ?
170
170
  vec2(-1e34, vStippleDistanceLimits.y) :
171
- vec2(vStippleDistanceLimits.x, 1e34);`)),z.main.add(S`
171
+ vec2(vStippleDistanceLimits.x, 1e34);`)),A.main.add(S`
172
172
  // Convert back into NDC
173
173
  pos.xy = (pos.xy / viewport.zw) * pos.w;
174
174
 
175
175
  vColor = getColor();
176
176
  vColor.a *= coverage;
177
177
 
178
- ${M&&!V?"pos.z -= 0.001 * pos.w;":""}
178
+ ${I&&!V?"pos.z -= 0.001 * pos.w;":""}
179
179
 
180
180
  // transform final position to camera space for slicing
181
181
  vpos = (inverseProjectionMatrix * pos).xyz;
182
182
  gl_Position = pos;
183
183
  forwardObjectAndLayerIdColor();
184
- }`),F.fragment.include(i,C),F.include(L,C),A.include(d),A.main.add(S`discardBySlice(vpos);
185
- discardByTerrainDepth();`),M?A.main.add(S`vec4 finalColor = vec4(1.0, 0.0, 1.0, 1.0);`):(U&&A.main.add(S`
184
+ }`),C.fragment.include(i,P),C.include(L,P),z.include(d),z.main.add(S`discardBySlice(vpos);
185
+ discardByTerrainDepth();`),I?z.main.add(S`vec4 finalColor = vec4(1.0, 0.0, 1.0, 1.0);`):(U&&z.main.add(S`
186
186
  float sdf = min(vSegmentSDF, vReverseSegmentSDF);
187
187
  vec2 fragmentPosition = vec2(
188
188
  min(sdf, 0.0),
@@ -196,7 +196,7 @@ discardByTerrainDepth();`),M?A.main.add(S`vec4 finalColor = vec4(1.0, 0.0, 1.0,
196
196
  if (capCoverage < ${S.float(y)}) {
197
197
  discard;
198
198
  }
199
- `),$?A.main.add(S`
199
+ `),$?z.main.add(S`
200
200
  vec2 stipplePosition = vec2(
201
201
  min(getStippleSDF() * 2.0 - 1.0, 0.0),
202
202
  vLineDistanceNorm * gl_FragCoord.w
@@ -205,10 +205,10 @@ discardByTerrainDepth();`),M?A.main.add(S`vec4 finalColor = vec4(1.0, 0.0, 1.0,
205
205
  float stippleCapSDF = (stippleRadius - vLineWidth) * 0.5; // Divide by 2 to transform from double pixel scale
206
206
  float stippleCoverage = clamp(0.5 - stippleCapSDF, 0.0, 1.0);
207
207
  float stippleAlpha = step(${S.float(y)}, stippleCoverage);
208
- `):A.main.add(S`float stippleAlpha = getStippleAlpha();`),O!==e.ObjectAndLayerIdColor&&A.main.add(S`discardByStippleAlpha(stippleAlpha, ${S.float(y)});`),A.uniforms.add(new f("intrinsicColor",(e=>e.color))),A.main.add(S`vec4 color = intrinsicColor * vColor;`),_&&(A.uniforms.add(new f("innerColor",(e=>e.innerColor??e.color)),new h("innerWidth",((e,i)=>e.innerWidth*i.camera.pixelRatio))),A.main.add(S`float distToInner = abs(vLineDistance * gl_FragCoord.w) - innerWidth;
208
+ `):z.main.add(S`float stippleAlpha = getStippleAlpha();`),W!==e.ObjectAndLayerIdColor&&z.main.add(S`discardByStippleAlpha(stippleAlpha, ${S.float(y)});`),z.uniforms.add(new v("intrinsicColor",(e=>e.color))),z.main.add(S`vec4 color = intrinsicColor * vColor;`),_&&(z.uniforms.add(new v("innerColor",(e=>e.innerColor??e.color)),new h("innerWidth",((e,i)=>e.innerWidth*i.camera.pixelRatio))),z.main.add(S`float distToInner = abs(vLineDistance * gl_FragCoord.w) - innerWidth;
209
209
  float innerAA = clamp(0.5 - distToInner, 0.0, 1.0);
210
210
  float innerAlpha = innerColor.a + color.a * (1.0 - innerColor.a);
211
- color = mix(color, vec4(innerColor.rgb, innerAlpha), innerAA);`)),A.main.add(S`vec4 finalColor = blendStipple(color, stippleAlpha);`),I&&(A.uniforms.add(new h("falloff",(e=>e.falloff))),A.main.add(S`finalColor.a *= pow(max(0.0, 1.0 - abs(vLineDistanceNorm * gl_FragCoord.w)), falloff);`)),E||A.main.add(S`float featherStartDistance = max(vLineWidth - 2.0, 0.0);
211
+ color = mix(color, vec4(innerColor.rgb, innerAlpha), innerAA);`)),z.main.add(S`vec4 finalColor = blendStipple(color, stippleAlpha);`),N&&(z.uniforms.add(new h("falloff",(e=>e.falloff))),z.main.add(S`finalColor.a *= pow(max(0.0, 1.0 - abs(vLineDistanceNorm * gl_FragCoord.w)), falloff);`)),E||z.main.add(S`float featherStartDistance = max(vLineWidth - 2.0, 0.0);
212
212
  float value = abs(vLineDistance) * gl_FragCoord.w;
213
213
  float feather = (value - featherStartDistance) / (vLineWidth - featherStartDistance);
214
- finalColor.a *= 1.0 - clamp(feather, 0.0, 1.0);`)),A.main.add(S`outputColorHighlightOID(finalColor, vpos);`),F}const F=Object.freeze(Object.defineProperty({__proto__:null,build:C,ribbonlineNumRoundJoinSubdivisions:j},Symbol.toStringTag,{value:"Module"}));export{F as R,C as b,j as r};
214
+ finalColor.a *= 1.0 - clamp(feather, 0.0, 1.0);`)),z.main.add(S`outputColorHighlightOID(finalColor, vpos);`),C}const C=Object.freeze(Object.defineProperty({__proto__:null,build:P,ribbonlineNumRoundJoinSubdivisions:j},Symbol.toStringTag,{value:"Module"}));export{C as R,P as b,j as r};
@@ -2,7 +2,7 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.33/esri/copyright.txt for details.
4
4
  */
5
- import{invert as e,translate as i}from"../core/libs/gl-matrix-2/math/mat4.js";import{create as o}from"../core/libs/gl-matrix-2/factories/mat4f64.js";import{n as r,t}from"./vec32.js";import{create as a}from"../core/libs/gl-matrix-2/factories/vec3f64.js";import{NormalFromDepth as l}from"../views/3d/webgl-engine/core/shaderLibrary/NormalFromDepth.glsl.js";import{ScreenSpacePass as h}from"../views/3d/webgl-engine/core/shaderLibrary/ScreenSpacePass.glsl.js";import{ReadShadowMapPass as s}from"../views/3d/webgl-engine/core/shaderLibrary/shading/ReadShadowMap.glsl.js";import{RgbaFloatEncoding as n}from"../views/3d/webgl-engine/core/shaderLibrary/util/RgbaFloatEncoding.glsl.js";import{Float3BindUniform as g}from"../views/3d/webgl-engine/core/shaderModules/Float3BindUniform.js";import{Float4PassUniform as d}from"../views/3d/webgl-engine/core/shaderModules/Float4PassUniform.js";import{FloatPassUniform as c}from"../views/3d/webgl-engine/core/shaderModules/FloatPassUniform.js";import{glsl as w}from"../views/3d/webgl-engine/core/shaderModules/glsl.js";import{Matrix4BindUniform as m}from"../views/3d/webgl-engine/core/shaderModules/Matrix4BindUniform.js";import{Texture2DBindUniform as u}from"../views/3d/webgl-engine/core/shaderModules/Texture2DBindUniform.js";import{UintTexture2DPassUniform as p}from"../views/3d/webgl-engine/core/shaderModules/UintTexture2DPassUniform.js";import{SnapshotSlot as f}from"../views/3d/webgl-engine/lib/ShadowMap.js";import{ReadShadowMapConfiguration as v}from"../views/3d/webgl-engine/shaders/ReadShadowMapConfiguration.js";import{ShaderBuilder as b}from"../views/webgl/ShaderBuilder.js";const x=.025;function M(){const o=new b;o.include(s,j),o.include(h),o.include(l);const a=o.fragment;return a.include(n),a.uniforms.add(new u("shadowMapExcludingHighlight",(e=>e.shadowMap.getSnapshot(f.ExcludeHighlight))),new u("shadowMapHighlight",(e=>e.shadowMap.getSnapshot(f.Highlight))),new u("depthMap",(e=>e.depth?.attachment)),new p("highlightTexture",(e=>e.highlightTexture)),new d("uColor",(e=>e.shadowColor)),new c("opacity",(e=>e.shadowOpacity)),new c("occludedOpacity",(e=>e.occludedShadowOpacity)),new c("terminationFactor",(e=>e.opacityElevation*e.dayNightTerminator)),new g("lightingMainDirectionView",(({lighting:e,camera:i})=>r(y,t(y,e.mainLight.direction,i.viewInverseTransposeMatrix)))),new m("inverseViewMatrix",(({camera:o})=>e(S,i(S,o.viewMatrix,o.center))))),a.main.add(w`
5
+ import{invert as e,translate as i}from"../core/libs/gl-matrix-2/math/mat4.js";import{create as o}from"../core/libs/gl-matrix-2/factories/mat4f64.js";import{n as r,t}from"./vec32.js";import{create as a}from"../core/libs/gl-matrix-2/factories/vec3f64.js";import{NormalFromDepth as l}from"../views/3d/webgl-engine/core/shaderLibrary/NormalFromDepth.glsl.js";import{ScreenSpacePass as h}from"../views/3d/webgl-engine/core/shaderLibrary/ScreenSpacePass.glsl.js";import{ReadShadowMapPass as n}from"../views/3d/webgl-engine/core/shaderLibrary/shading/ReadShadowMap.glsl.js";import{RgbaFloatEncoding as s}from"../views/3d/webgl-engine/core/shaderLibrary/util/RgbaFloatEncoding.glsl.js";import{Float3BindUniform as g}from"../views/3d/webgl-engine/core/shaderModules/Float3BindUniform.js";import{Float4PassUniform as d}from"../views/3d/webgl-engine/core/shaderModules/Float4PassUniform.js";import{FloatPassUniform as c}from"../views/3d/webgl-engine/core/shaderModules/FloatPassUniform.js";import{glsl as w}from"../views/3d/webgl-engine/core/shaderModules/glsl.js";import{Matrix4BindUniform as m}from"../views/3d/webgl-engine/core/shaderModules/Matrix4BindUniform.js";import{Texture2DBindUniform as u}from"../views/3d/webgl-engine/core/shaderModules/Texture2DBindUniform.js";import{UintTexture2DPassUniform as p}from"../views/3d/webgl-engine/core/shaderModules/UintTexture2DPassUniform.js";import{SnapshotSlot as f}from"../views/3d/webgl-engine/lib/ShadowMap.js";import{ReadShadowMapConfiguration as v}from"../views/3d/webgl-engine/shaders/ReadShadowMapConfiguration.js";import{ShaderBuilder as b}from"../views/webgl/ShaderBuilder.js";const x=.025;function M(){const o=new b;o.include(n,j),o.include(h),o.include(l);const a=o.fragment;return a.include(s),a.uniforms.add(new u("shadowMapExcludingHighlight",(e=>e.shadowMap.getSnapshot(f.ExcludeHighlight))),new u("shadowMapHighlight",(e=>e.shadowMap.getSnapshot(f.Highlight))),new u("depthMap",(e=>e.depth?.attachment)),new p("highlightTexture",(e=>e.highlightTexture)),new d("uColor",(e=>e.shadowColor)),new c("opacity",(e=>e.shadowOpacity)),new c("occludedOpacity",(e=>e.occludedShadowOpacity)),new c("terminationFactor",(e=>e.opacityElevation*e.dayNightTerminator)),new g("lightingMainDirectionView",(({lighting:e,camera:i})=>r(y,t(y,e.mainLight.direction,i.viewInverseTransposeMatrix)))),new m("inverseViewMatrix",(({camera:o})=>e(S,i(S,o.viewMatrix,o.center))))),a.main.add(w`
6
6
  ivec2 highlightTextureSize = textureSize(highlightTexture, 0);
7
7
  ivec2 highlightIUV = ivec2(uv * vec2(highlightTextureSize));
8
8
  uvec2 highlightInfo = texelFetch(highlightTexture, highlightIUV, 0).rg;
@@ -18,7 +18,7 @@ import{invert as e,translate as i}from"../core/libs/gl-matrix-2/math/mat4.js";im
18
18
  }
19
19
 
20
20
  vec4 currentPixelPos;
21
- vec3 uvzShadow = calculateShadowmapUVZFromDepthMap_curretPixelPos(uv, shadowMapHighlight, depthMap, currentPixelPos);
21
+ vec3 uvzShadow = calculateShadowmapUVZFromDepthMap_currentPixelPos(uv, shadowMapHighlight, depthMap, currentPixelPos);
22
22
  if (uvzShadow.z < 0.0) {
23
23
  return;
24
24
  }