@arcgis/core 6.0.0-next.27 → 6.0.0-next.28

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 (119) hide show
  1. package/Map.d.ts +6 -0
  2. package/analysis/AreaMeasurementAnalysis.d.ts +4 -2
  3. package/analysis/DirectLineMeasurementAnalysis.d.ts +8 -4
  4. package/assets/esri/core/workers/RemoteClient.js +1 -1
  5. package/assets/esri/core/workers/chunks/{0bd04bcd4b2710838d48.js → 03f33cb78b5405ab7e23.js} +1 -1
  6. package/assets/esri/core/workers/chunks/{7c75a8ee266c36baa902.js → 5eec1c1162779574f46e.js} +1 -1
  7. package/assets/esri/core/workers/chunks/{9dd1fc56eb1ea6eb705e.js → 76e27e36050a3dd9d249.js} +1 -1
  8. package/assets/esri/core/workers/chunks/76f877e2d2493d56afab.js +1 -0
  9. package/assets/esri/core/workers/chunks/{00580a68835aac653038.js → 9c4961213ac6ec283dd9.js} +5 -5
  10. package/assets/esri/core/workers/chunks/{13c64087be3b2985a21b.js → dbda982485d3fe26c729.js} +1 -1
  11. package/assets/esri/core/workers/chunks/dc7aa0a1eb6c6e361f9f.js +1 -0
  12. package/chunks/BlendLayers.glsl.js +1 -1
  13. package/chunks/Component.glsl.js +9 -12
  14. package/chunks/GaussianSplat.glsl.js +65 -21
  15. package/chunks/GaussianSplatDepth.glsl.js +45 -4
  16. package/chunks/GaussianSplatShadow.glsl.js +73 -19
  17. package/chunks/GlobalIllumination.glsl.js +2 -17
  18. package/chunks/LineMarker.glsl.js +32 -31
  19. package/chunks/OITAddEmission.glsl.js +1 -1
  20. package/chunks/RasterColorizer.glsl.js +1 -1
  21. package/chunks/RibbonLine.glsl.js +34 -34
  22. package/chunks/Terrain.glsl.js +3 -4
  23. package/chunks/Water.glsl.js +22 -23
  24. package/config.js +1 -1
  25. package/form/elements/inputs/DynamicChoiceInput.d.ts +2 -2
  26. package/geometry/operators/containsOperator.d.ts +1 -1
  27. package/geometry/operators/densifyOperator.d.ts +1 -1
  28. package/geometry/operators/differenceOperator.d.ts +6 -4
  29. package/geometry/operators/distanceOperator.d.ts +1 -1
  30. package/geometry/operators/geodesicProximityOperator.d.ts +8 -8
  31. package/geometry/operators/graphicBufferOperator.d.ts +6 -6
  32. package/geometry/operators/integrateOperator.d.ts +2 -2
  33. package/geometry/operators/intersectsOperator.d.ts +3 -3
  34. package/geometry/operators/linesToPolygonsOperator.d.ts +2 -2
  35. package/geometry/operators/locateBetweenOperator.d.ts +2 -2
  36. package/geometry/operators/minimumBoundingCircleOperator.d.ts +1 -1
  37. package/geometry/operators/multiPartToSinglePartOperator.d.ts +2 -2
  38. package/geometry/operators/polygonSlicerOperator.d.ts +2 -2
  39. package/geometry/operators/projectOperator.d.ts +2 -2
  40. package/geometry/operators/proximityOperator.d.ts +15 -15
  41. package/geometry/operators/shapePreservingProjectOperator.d.ts +2 -2
  42. package/geometry/operators/simplifyOperator.d.ts +2 -2
  43. package/geometry/operators/support/GeographicTransformationStep.d.ts +3 -3
  44. package/geometry/operators/support/Transformation.d.ts +8 -8
  45. package/geometry/operators/support/geographicTransformationUtils.d.ts +3 -3
  46. package/geometry/operators/symmetricDifferenceOperator.d.ts +2 -2
  47. package/geometry/operators/withinOperator.d.ts +3 -3
  48. package/kernel.js +1 -1
  49. package/layers/GeospatialPDFLayer.d.ts +2 -2
  50. package/layers/ParquetLayer.d.ts +1 -1
  51. package/package.json +2 -2
  52. package/popup/FeaturesModel.js +1 -1
  53. package/popup/support/featureUtils.js +1 -1
  54. package/rest/featureService/FeatureService.d.ts +0 -5
  55. package/rest/networks/support/TraceLocation.d.ts +2 -1
  56. package/rest/networks/support/TraceResult.d.ts +0 -4
  57. package/rest/support/OutDistance.d.ts +0 -1
  58. package/smartMapping/statistics/histogramForTimeSeries.js +1 -1
  59. package/smartMapping/statistics/summaryStatisticsForTimeSeries.js +1 -1
  60. package/support/BasemapStyle.d.ts +2 -2
  61. package/symbols/cim/types.d.ts +7 -9
  62. package/views/2d/engine/webgl/animations/instructions.js +1 -1
  63. package/views/2d/layers/features/schema/processor/symbols/ComplexSymbolSchema.js +1 -1
  64. package/views/3d/analysis/AreaMeasurement/support/AreaMeasurementPathHelper.js +1 -1
  65. package/views/3d/analysis/AreaMeasurement/support/MeasurementData.js +1 -1
  66. package/views/3d/analysis/DirectLineMeasurement/DirectLineMeasurementController.js +1 -1
  67. package/views/3d/analysis/support/projectionUtils.js +1 -1
  68. package/views/3d/environment/SunLighting.d.ts +15 -2
  69. package/views/3d/environment/VirtualLighting.d.ts +15 -2
  70. package/views/3d/input/SceneInputManager.js +1 -1
  71. package/views/3d/input/handlers/ground/GroundMouseWheelMove.js +2 -0
  72. package/views/3d/interactive/editingTools/reshape/ReshapeOperation.js +1 -1
  73. package/views/3d/interactive/measurementTools/directLineMeasurement3D/DirectLineMeasurement3DTool.js +1 -1
  74. package/views/3d/interactive/measurementTools/directLineMeasurement3D/DirectLineMeasurement3DView.js +1 -1
  75. package/views/3d/layers/ImageryTileLayerView3D.js +1 -1
  76. package/views/3d/layers/support/FeatureTileFetcher3D.js +1 -1
  77. package/views/3d/navigation/Navigation3D.js +1 -1
  78. package/views/3d/state/controllers/GroundMouseWheelController.js +2 -0
  79. package/views/3d/state/utils/OffsetCorrectionController.js +1 -1
  80. package/views/3d/state/utils/groundNavigationUtils.js +1 -1
  81. package/views/3d/terrain/BlendLayers.glsl.js +1 -1
  82. package/views/3d/terrain/RasterColorizer.glsl.js +1 -1
  83. package/views/3d/terrain/TileCompositor.js +1 -1
  84. package/views/3d/terrain/TileRenderer.js +1 -1
  85. package/views/3d/webgl-engine/core/shaderLibrary/attributes/VertexTangent.glsl.js +7 -8
  86. package/views/3d/webgl-engine/core/shaderLibrary/shading/NormalUtils.glsl.js +3 -5
  87. package/views/3d/webgl-engine/core/shaderLibrary/shading/forwardLocalUp.glsl.js +6 -0
  88. package/views/3d/webgl-engine/core/shaderLibrary/shading/getLocalUp.glsl.js +4 -0
  89. package/views/3d/webgl-engine/core/shaderLibrary/terrain/TerrainTexture.glsl.js +1 -1
  90. package/views/3d/webgl-engine/core/shaderLibrary/terrain/{TileBackground.glsl.js → blendLayers.glsl.js} +10 -11
  91. package/views/3d/webgl-engine/core/shaderLibrary/util/GaussianSplatEvaluation.glsl.js +8 -2
  92. package/views/3d/webgl-engine/core/shaderLibrary/util/cameraUniforms.js +1 -1
  93. package/views/3d/webgl-engine/materials/Water.glsl.js +1 -1
  94. package/views/3d/webgl-engine/shaders/GaussianSplat.glsl.js +1 -1
  95. package/views/3d/webgl-engine/shaders/GaussianSplatDepth.glsl.js +1 -1
  96. package/views/3d/webgl-engine/shaders/GaussianSplatPass.glsl.js +61 -108
  97. package/views/3d/webgl-engine/shaders/GaussianSplatShadow.glsl.js +1 -1
  98. package/views/3d/webgl-engine/shaders/LineMarker.glsl.js +1 -1
  99. package/views/3d/webgl-engine/shaders/RibbonLine.glsl.js +1 -1
  100. package/views/3d/webgl-engine/shaders/Terrain.glsl.js +1 -1
  101. package/views/draw/DrawOperation.js +1 -1
  102. package/views/draw/DrawScreenTool.js +1 -1
  103. package/views/input/types.d.ts +2 -4
  104. package/views/interactive/options/LabelOptions.d.ts +5 -5
  105. package/views/interactive/options/SnappingOptions.d.ts +2 -2
  106. package/widgets/BatchAttributeForm/inputs/FieldInput.d.ts +0 -1
  107. package/widgets/Editor/VisibleElements.d.ts +4 -0
  108. package/widgets/Editor.d.ts +2 -0
  109. package/widgets/FeatureTable.js +1 -1
  110. package/widgets/Features/FeaturesViewModel.js +1 -1
  111. package/widgets/OrientedImageryViewer/OrientedImageryViewerViewModel.js +1 -1
  112. package/widgets/OrientedImageryViewer/support/NonPanoramicMedia.js +1 -1
  113. package/widgets/OrientedImageryViewer/support/dataCaptureUtils.js +1 -1
  114. package/widgets/PanoramicViewer/utils.js +1 -1
  115. package/widgets/Search/LayerSearchSource.d.ts +1 -1
  116. package/widgets/Sketch/VisibleElements.d.ts +4 -0
  117. package/widgets/Sketch.d.ts +2 -0
  118. package/assets/esri/core/workers/chunks/c29091fe157564cffcf7.js +0 -1
  119. package/assets/esri/core/workers/chunks/c8eae00b0ec87d8b2ff3.js +0 -1
@@ -1,50 +1,50 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/6.0/LICENSE.txt */
2
- import{markerTextureSize as e,markerSymbolSize as t,markerTipThicknessFactor as n}from"../views/3d/support/engineContent/marker.js";import{sliceDraw as r}from"../views/3d/webgl-engine/core/shaderLibrary/Slice.glsl.js";import{RibbonVertexPosition as i}from"../views/3d/webgl-engine/core/shaderLibrary/attributes/RibbonVertexPosition.glsl.js";import{OutputHighlight as a}from"../views/3d/webgl-engine/core/shaderLibrary/output/OutputHighlight.glsl.js";import{evaluateSceneLightingFragment as o}from"../views/3d/webgl-engine/core/shaderLibrary/shading/evaluateSceneLightingFragment.glsl.js";import{MarkerSizing as s}from"../views/3d/webgl-engine/core/shaderLibrary/shading/MarkerSizing.glsl.js";import{NormalUtils as c}from"../views/3d/webgl-engine/core/shaderLibrary/shading/NormalUtils.glsl.js";import{positionOutsideClipSpace as l}from"../views/3d/webgl-engine/core/shaderLibrary/shading/PositionOutsideClipSpace.js";import{nearFar as u,viewport as d,viewNormal as f,inverseProjectionMatrix as p,screenPixelSizePerDistance as m,pixelRatio as h}from"../views/3d/webgl-engine/core/shaderLibrary/util/cameraUniforms.js";import{ColorConversion as g}from"../views/3d/webgl-engine/core/shaderLibrary/util/ColorConversion.glsl.js";import{NoPerspectiveWrite as _,NoPerspectiveRead as v}from"../views/3d/webgl-engine/core/shaderLibrary/util/NoPerspective.glsl.js";import{addProjViewLocalOrigin as y}from"../views/3d/webgl-engine/core/shaderLibrary/util/View.glsl.js";import{Float4PassUniform as b}from"../views/3d/webgl-engine/core/shaderModules/Float4PassUniform.js";import{glsl as x,If as S}from"../views/3d/webgl-engine/core/shaderModules/glsl.js";import{Texture2DPassUniform as C}from"../views/3d/webgl-engine/core/shaderModules/Texture2DPassUniform.js";import{alphaCutoff as w}from"../views/3d/webgl-engine/shaders/alphaCutoff.glsl.js";import{outputColorHighlightOLID as T}from"../views/3d/webgl-engine/shaders/OutputColorHighlightOLID.glsl.js";import{ShaderBuilder as E}from"../views/webgl/ShaderBuilder.js";function D(D){let O=new E,{draped:k,worldSpace:A,anchor:j,hasTip:M,shadingEnabled:N}=D,P=!k&&!A;O.attributes.add(`position`,`vec3`),O.attributes.add(D.hasVVSize?`sizeFeatureAttribute`:`size`,`float`),D.hasVVOpacity&&O.attributes.add(`opacityFeatureAttribute`,`float`),O.attributes.add(D.hasVVColor?`colorFeatureAttribute`:`color`,D.hasVVColor?`float`:`vec4`),O.vertex.inputs.add(`position`,()=>`position`),D.hasVVSize?O.vertex.inputs.add(`sizeFeatureAttribute`,()=>`sizeFeatureAttribute`):O.vertex.inputs.add(`size`,()=>`size`),D.hasVVOpacity&&O.vertex.inputs.add(`opacityFeatureAttribute`,()=>`opacityFeatureAttribute`),D.hasVVColor?O.vertex.inputs.add(`colorFeatureAttribute`,()=>`colorFeatureAttribute`):O.vertex.inputs.add(`color`,()=>`color`),O.include(i,D),O.include(s,D);let{vertex:F,fragment:I,varyings:L}=O;y(F,D),O.attributes.add(`previousDelta`,`vec4`),O.attributes.add(`uv0`,`vec2`),L.add(`vColor`,`vec4`),L.add(`vpos`,`vec3`,{invariant:!0}),L.add(`vUV`,`vec2`),L.add(`vSize`,`float`),M&&L.add(`vLineWidth`,`float`),F.uniforms.add(u,d).code.add(x`vec4 projectAndScale(vec4 pos) {
2
+ import{markerTextureSize as e,markerSymbolSize as t,markerTipThicknessFactor as n}from"../views/3d/support/engineContent/marker.js";import{sliceDraw as r}from"../views/3d/webgl-engine/core/shaderLibrary/Slice.glsl.js";import{RibbonVertexPosition as i}from"../views/3d/webgl-engine/core/shaderLibrary/attributes/RibbonVertexPosition.glsl.js";import{OutputHighlight as a}from"../views/3d/webgl-engine/core/shaderLibrary/output/OutputHighlight.glsl.js";import{evaluateSceneLightingFragment as o}from"../views/3d/webgl-engine/core/shaderLibrary/shading/evaluateSceneLightingFragment.glsl.js";import{forwardLocalUp as s}from"../views/3d/webgl-engine/core/shaderLibrary/shading/forwardLocalUp.glsl.js";import{MarkerSizing as c}from"../views/3d/webgl-engine/core/shaderLibrary/shading/MarkerSizing.glsl.js";import{positionOutsideClipSpace as l}from"../views/3d/webgl-engine/core/shaderLibrary/shading/PositionOutsideClipSpace.js";import{nearFar as u,viewport as d,viewNormal as f,inverseProjectionMatrix as p,screenPixelSizePerDistance as m,pixelRatio as h}from"../views/3d/webgl-engine/core/shaderLibrary/util/cameraUniforms.js";import{ColorConversion as g}from"../views/3d/webgl-engine/core/shaderLibrary/util/ColorConversion.glsl.js";import{NoPerspectiveWrite as _,NoPerspectiveRead as v}from"../views/3d/webgl-engine/core/shaderLibrary/util/NoPerspective.glsl.js";import{addProjViewLocalOrigin as y,addCameraPosition as b}from"../views/3d/webgl-engine/core/shaderLibrary/util/View.glsl.js";import{Float4PassUniform as x}from"../views/3d/webgl-engine/core/shaderModules/Float4PassUniform.js";import{glsl as S,If as C}from"../views/3d/webgl-engine/core/shaderModules/glsl.js";import{Texture2DPassUniform as w}from"../views/3d/webgl-engine/core/shaderModules/Texture2DPassUniform.js";import{alphaCutoff as T}from"../views/3d/webgl-engine/shaders/alphaCutoff.glsl.js";import{outputColorHighlightOLID as E}from"../views/3d/webgl-engine/shaders/OutputColorHighlightOLID.glsl.js";import{ShaderBuilder as D}from"../views/webgl/ShaderBuilder.js";function O(O){let k=new D,{draped:A,worldSpace:j,anchor:M,hasTip:N,shadingEnabled:P}=O,F=!A&&!j;k.attributes.add(`position`,`vec3`),k.attributes.add(O.hasVVSize?`sizeFeatureAttribute`:`size`,`float`),O.hasVVOpacity&&k.attributes.add(`opacityFeatureAttribute`,`float`),k.attributes.add(O.hasVVColor?`colorFeatureAttribute`:`color`,O.hasVVColor?`float`:`vec4`),k.vertex.inputs.add(`position`,()=>`position`),O.hasVVSize?k.vertex.inputs.add(`sizeFeatureAttribute`,()=>`sizeFeatureAttribute`):k.vertex.inputs.add(`size`,()=>`size`),O.hasVVOpacity&&k.vertex.inputs.add(`opacityFeatureAttribute`,()=>`opacityFeatureAttribute`),O.hasVVColor?k.vertex.inputs.add(`colorFeatureAttribute`,()=>`colorFeatureAttribute`):k.vertex.inputs.add(`color`,()=>`color`),k.include(i,O),k.include(c,O);let{vertex:I,fragment:L,varyings:R}=k;y(I,O),k.attributes.add(`previousDelta`,`vec4`),k.attributes.add(`uv0`,`vec2`),R.add(`vColor`,`vec4`),R.add(`vpos`,`vec3`,{invariant:!0}),R.add(`vUV`,`vec2`),R.add(`vSize`,`float`),N&&R.add(`vLineWidth`,`float`),I.uniforms.add(u,d).code.add(S`vec4 projectAndScale(vec4 pos) {
3
3
  vec4 posNdc = proj * pos;
4
4
  posNdc.xy *= viewport.zw / posNdc.w;
5
5
  return posNdc;
6
- }`),F.code.add(x`void clip(vec4 pos, inout vec4 prev) {
6
+ }`),I.code.add(S`void clip(vec4 pos, inout vec4 prev) {
7
7
  float vnp = nearFar[0] * 0.99;
8
8
  if (prev.z > -nearFar[0]) {
9
9
  float interpolation = (-vnp - pos.z) / (prev.z - pos.z);
10
10
  prev = mix(pos, prev, interpolation);
11
11
  }
12
- }`),A?(O.attributes.add(`normal`,`vec3`),F.constants.add(`tiltThreshold`,`float`,.7).uniforms.add(f).code.add(x`vec3 perpendicular(vec3 v) {
12
+ }`),j?(k.attributes.add(`normal`,`vec3`),I.constants.add(`tiltThreshold`,`float`,.7).uniforms.add(f).code.add(S`vec3 perpendicular(vec3 v) {
13
13
  vec3 n = (viewNormal * vec4(normal.xyz, 1.0)).xyz;
14
14
  vec3 n2 = cross(v, n);
15
15
  vec3 forward = vec3(0.0, 0.0, 1.0);
16
16
  float tiltDot = dot(forward, n);
17
17
  return abs(tiltDot) < tiltThreshold ? n : n2;
18
- }`)):F.code.add(x`vec2 perpendicular(vec2 v) {
18
+ }`)):I.code.add(S`vec2 perpendicular(vec2 v) {
19
19
  return vec2(v.y, -v.x);
20
- }`);let R=A?`vec3`:`vec2`;return F.code.add(x`
21
- ${R} normalizedSegment(${R} pos, ${R} prev) {
22
- ${R} segment = pos - prev;
20
+ }`);let z=j?`vec3`:`vec2`;return I.code.add(S`
21
+ ${z} normalizedSegment(${z} pos, ${z} prev) {
22
+ ${z} segment = pos - prev;
23
23
  float segmentLen = length(segment);
24
24
 
25
25
  // normalize or zero if too short
26
- return (segmentLen > 0.001) ? segment / segmentLen : ${A?`vec3(0.0, 0.0, 0.0)`:`vec2(0.0, 0.0)`};
26
+ return (segmentLen > 0.001) ? segment / segmentLen : ${j?`vec3(0.0, 0.0, 0.0)`:`vec2(0.0, 0.0)`};
27
27
  }
28
28
 
29
- ${R} displace(${R} pos, ${R} prev, float displacementLen) {
30
- ${R} segment = normalizedSegment(pos, prev);
29
+ ${z} displace(${z} pos, ${z} prev, float displacementLen) {
30
+ ${z} segment = normalizedSegment(pos, prev);
31
31
 
32
- ${R} displacementDirU = perpendicular(segment);
33
- ${R} displacementDirV = segment;
32
+ ${z} displacementDirU = perpendicular(segment);
33
+ ${z} displacementDirV = segment;
34
34
 
35
- ${j===1?`pos -= 0.5 * displacementLen * displacementDirV;`:``}
35
+ ${M===1?`pos -= 0.5 * displacementLen * displacementDirV;`:``}
36
36
 
37
37
  return pos + displacementLen * (uv0.x * displacementDirU + uv0.y * displacementDirV);
38
38
  }
39
- `),P&&(F.uniforms.add(p),F.code.add(x`vec3 inverseProject(vec4 posScreen) {
39
+ `),F&&(I.uniforms.add(p),I.code.add(S`vec3 inverseProject(vec4 posScreen) {
40
40
  posScreen.xy = (posScreen.xy / viewport.zw) * posScreen.w;
41
41
  return (inverseProjectionMatrix * posScreen).xyz;
42
- }`),F.code.add(x`bool rayIntersectPlane(vec3 rayDir, vec3 planeOrigin, vec3 planeNormal, out vec3 intersection) {
42
+ }`),I.code.add(S`bool rayIntersectPlane(vec3 rayDir, vec3 planeOrigin, vec3 planeNormal, out vec3 intersection) {
43
43
  float cos = dot(rayDir, planeNormal);
44
44
  float t = dot(planeOrigin, planeNormal) / cos;
45
45
  intersection = t * rayDir;
46
46
  return abs(cos) > 0.001 && t > 0.0;
47
- }`),F.uniforms.add(m),F.code.add(x`
47
+ }`),I.uniforms.add(m),I.code.add(S`
48
48
  vec4 toFront(vec4 displacedPosScreen, vec3 posLeft, vec3 posRight, vec3 prev, float lineWidth) {
49
49
  // Project displaced position back to camera space
50
50
  vec3 displacedPos = inverseProject(displacedPosScreen);
@@ -54,7 +54,7 @@ return abs(cos) > 0.001 && t > 0.0;
54
54
  vec3 planeNormal = normalize(cross(posLeft - posRight, posLeft - prev));
55
55
  vec3 planeOrigin = posLeft;
56
56
 
57
- ${S(D.hasCap,`if(prev.z > posLeft.z) {
57
+ ${C(O.hasCap,`if(prev.z > posLeft.z) {
58
58
  vec2 diff = posLeft.xy - posRight.xy;
59
59
  planeOrigin.xy += perpendicular(diff) / 2.0;
60
60
  }`)};
@@ -76,7 +76,7 @@ return abs(cos) > 0.001 && t > 0.0;
76
76
  displacedPos *= minDepth / length(displacedPos);
77
77
  return vec4(displacedPos.xyz, 1.0);
78
78
  }
79
- `)),O.include(_),F.uniforms.add(h).main.add(x`
79
+ `)),k.include(_),I.uniforms.add(h).main.add(S`
80
80
  // Check for special value of uv0.y which is used by the Renderer when graphics are removed before the VBO is
81
81
  // recompacted. If this is the case, then we just project outside of clip space.
82
82
  if (uv0.y == 0.0) {
@@ -88,24 +88,24 @@ return abs(cos) > 0.001 && t > 0.0;
88
88
  vec4 pos = view * vec4(position, 1.0);
89
89
  vec4 prev = view * vec4(position + previousDelta.xyz * previousDelta.w, 1.0);
90
90
 
91
- float lineWidth = getLineWidth(${S(D.lineWidthRequiresPosition,`pos.xyz`)});
91
+ float lineWidth = getLineWidth(${C(O.lineWidthRequiresPosition,`pos.xyz`)});
92
92
  float screenMarkerSize = getScreenMarkerSize(lineWidth);
93
93
 
94
94
  clip(pos, prev);
95
95
 
96
- ${A?x`${S(D.hideOnShortSegments,x`
96
+ ${j?S`${C(O.hideOnShortSegments,S`
97
97
  if (areWorldMarkersHidden(pos.xyz, prev.xyz)) {
98
98
  gl_Position = ${l};
99
99
  return;
100
100
  }`)}
101
101
  pos.xyz = displace(pos.xyz, prev.xyz, getWorldMarkerSize(pos.xyz));
102
- vec4 displacedPosScreen = projectAndScale(pos);`:x`
102
+ vec4 displacedPosScreen = projectAndScale(pos);`:S`
103
103
  vec4 posScreen = projectAndScale(pos);
104
104
  vec4 prevScreen = projectAndScale(prev);
105
105
  vec4 displacedPosScreen = posScreen;
106
106
 
107
107
  displacedPosScreen.xy = displace(posScreen.xy, prevScreen.xy, screenMarkerSize);
108
- ${S(P,x`
108
+ ${C(F,S`
109
109
  vec2 displacementDirU = perpendicular(normalizedSegment(posScreen.xy, prevScreen.xy));
110
110
 
111
111
  // We need three points of the ribbon line in camera space to calculate the plane it lies in
@@ -121,8 +121,8 @@ return abs(cos) > 0.001 && t > 0.0;
121
121
 
122
122
  // Convert texture coordinate into [0,1]
123
123
  vUV = (uv0 + 1.0) / 2.0;
124
- ${S(!A,`vUV = noPerspectiveWrite(vUV, displacedPosScreen.w);`)}
125
- ${S(M,`vLineWidth = noPerspectiveWrite(lineWidth, displacedPosScreen.w);`)}
124
+ ${C(!j,`vUV = noPerspectiveWrite(vUV, displacedPosScreen.w);`)}
125
+ ${C(N,`vLineWidth = noPerspectiveWrite(lineWidth, displacedPosScreen.w);`)}
126
126
 
127
127
  vSize = screenMarkerSize;
128
128
  vColor = getColor();
@@ -131,13 +131,13 @@ return abs(cos) > 0.001 && t > 0.0;
131
131
  vpos = pos.xyz;
132
132
 
133
133
  gl_Position = displacedPosScreen;
134
- `),I.include(r,D),O.include(T,D),I.include(g),I.include(w),I.uniforms.add(new b(`intrinsicColor`,({color:e})=>e),new C(`tex`,({markerTexture:e})=>e)).constants.add(`texelSize`,`float`,1/e).code.add(x`float markerAlpha(vec2 samplePos) {
134
+ `),L.include(r,O),k.include(E,O),L.include(g),L.include(T),L.uniforms.add(new x(`intrinsicColor`,({color:e})=>e),new w(`tex`,({markerTexture:e})=>e)).constants.add(`texelSize`,`float`,1/e).code.add(S`float markerAlpha(vec2 samplePos) {
135
135
  samplePos += vec2(0.5, -0.5) * texelSize;
136
136
  float sdf = texture(tex, samplePos).r;
137
137
  float pixelDistance = sdf * vSize;
138
138
  pixelDistance -= 0.5;
139
139
  return clamp(0.5 - pixelDistance, 0.0, 1.0);
140
- }`),M&&(O.include(v),I.constants.add(`relativeMarkerSize`,`float`,t/e).constants.add(`relativeTipLineWidth`,`float`,n).code.add(x`
140
+ }`),N&&(k.include(v),L.constants.add(`relativeMarkerSize`,`float`,t/e).constants.add(`relativeTipLineWidth`,`float`,n).code.add(S`
141
141
  float tipAlpha(vec2 samplePos) {
142
142
  // Convert coordinates s.t. they are in pixels and relative to the tip of an arrow marker
143
143
  samplePos -= vec2(0.5, 0.5 + 0.5 * relativeMarkerSize);
@@ -146,18 +146,19 @@ return clamp(0.5 - pixelDistance, 0.0, 1.0);
146
146
  float halfMarkerSize = 0.5 * relativeMarkerSize * vSize;
147
147
  float halfTipLineWidth = 0.5 * max(1.0, relativeTipLineWidth * noPerspectiveRead(vLineWidth));
148
148
 
149
- ${S(A,`halfTipLineWidth *= fwidth(samplePos.y);`)}
149
+ ${C(j,`halfTipLineWidth *= fwidth(samplePos.y);`)}
150
150
 
151
151
  float distance = max(abs(samplePos.x) - halfMarkerSize, abs(samplePos.y) - halfTipLineWidth);
152
152
  return clamp(0.5 - distance, 0.0, 1.0);
153
153
  }
154
- `)),O.include(a,D),O.include(v),I.main.add(x`
154
+ `)),k.include(a,O),k.include(v),L.main.add(S`
155
155
  discardBySlice(vpos);
156
156
 
157
157
  vec4 albedo = intrinsicColor * vColor;
158
158
 
159
159
  // Cancel out perspective correct interpolation if in screen space or draped
160
- vec2 samplePos = ${S(A,`vUV`,`noPerspectiveRead(vUV)`)};
161
- albedo.a *= ${M?`max(markerAlpha(samplePos), tipAlpha(samplePos))`:`markerAlpha(samplePos)`};
160
+ vec2 samplePos = ${C(j,`vUV`,`noPerspectiveRead(vUV)`)};
161
+ albedo.a *= ${N?`max(markerAlpha(samplePos), tipAlpha(samplePos))`:`markerAlpha(samplePos)`};
162
162
  if(albedo.a < alphaCutoff) discard; // We also want to discard in the opaque color pass
163
- `),N?(L.add(`vnormal`,`vec3`),F.include(c,D),F.main.add(`vnormal = getLocalUp(vpos, localOrigin);`),O.include(o,D),I.main.add(`vec4 finalColor = evaluateSceneLightingFragment(vpos, vnormal, albedo);`)):I.main.add(`vec4 finalColor = albedo;`),I.main.add(`outputColorHighlightOLID(applySlice(finalColor, vpos), albedo.rgb);`),O}const O=Object.freeze(Object.defineProperty({__proto__:null,build:D},Symbol.toStringTag,{value:`Module`}));export{O as L,D as b};
163
+ `),P?(R.add(`vposWorld`,`vec3`),b(I,O),k.include(s,O),I.main.add(S`vposWorld = transpose(mat3(view)) * vpos + cameraPosition;
164
+ forwardLocalUp(vposWorld, localOrigin);`),k.include(o,O),L.main.add(`vec4 finalColor = evaluateSceneLightingFragment(vposWorld, upNormal, albedo);`)):L.main.add(`vec4 finalColor = albedo;`),L.main.add(`outputColorHighlightOLID(applySlice(finalColor, vpos), albedo.rgb);`),k}const k=Object.freeze(Object.defineProperty({__proto__:null,build:O},Symbol.toStringTag,{value:`Module`}));export{k as L,O as b};
@@ -1,5 +1,5 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/6.0/LICENSE.txt */
2
- import{ScreenSpacePass as e}from"../views/3d/webgl-engine/core/shaderLibrary/ScreenSpacePass.glsl.js";import{ColorConversion as t}from"../views/3d/webgl-engine/core/shaderLibrary/util/ColorConversion.glsl.js";import{emissionFilter as n}from"../views/3d/webgl-engine/core/shaderLibrary/util/emissionFilter.glsl.js";import{glsl as r}from"../views/3d/webgl-engine/core/shaderModules/glsl.js";import{Texture2DPassUniform as i}from"../views/3d/webgl-engine/core/shaderModules/Texture2DPassUniform.js";import{OITBlendFragmentPassParameters as a,oitBlendFragment as o}from"../views/3d/webgl-engine/effects/transparency/oitBlendFragment.glsl.js";import{floatBlendScale as s}from"../views/3d/webgl-engine/shaders/floatBlendScale.glsl.js";import{ToneMapping as c}from"../views/3d/webgl-engine/shaders/ToneMapping.glsl.js";import{ShaderBuilder as l}from"../views/webgl/ShaderBuilder.js";class u extends a{}function d(a){let u=new l;u.include(e);let{fragment:d,outputs:f}=u;return f.add(`fragEmission`,`vec4`,1),d.include(s,a),d.include(o,a),d.include(n,a),d.include(c),d.include(t),d.uniforms.add(new i(`emissionTexture`,e=>e.emissionTexture),new i(`frontFaceEmissionTexture`,e=>e.frontFaceEmissionTexture)),d.main.add(r`vec4 emission = oitBlendFragment(emissionTexture, frontFaceEmissionTexture, floatBlendInputScale);
2
+ import{ScreenSpacePass as e}from"../views/3d/webgl-engine/core/shaderLibrary/ScreenSpacePass.glsl.js";import{ColorConversion as t}from"../views/3d/webgl-engine/core/shaderLibrary/util/ColorConversion.glsl.js";import{emissionFilter as n}from"../views/3d/webgl-engine/core/shaderLibrary/util/emissionFilter.glsl.js";import{glsl as r}from"../views/3d/webgl-engine/core/shaderModules/glsl.js";import{Texture2DPassUniform as i}from"../views/3d/webgl-engine/core/shaderModules/Texture2DPassUniform.js";import{OITBlendFragmentPassParameters as a,oitBlendFragment as o}from"../views/3d/webgl-engine/effects/transparency/oitBlendFragment.glsl.js";import{floatBlendScale as s}from"../views/3d/webgl-engine/shaders/floatBlendScale.glsl.js";import{ToneMapping as c}from"../views/3d/webgl-engine/shaders/ToneMapping.glsl.js";import{ShaderBuilder as l}from"../views/webgl/ShaderBuilder.js";class u extends a{}function d(a){let u=new l;u.include(e);let{fragment:d,outputs:f}=u;return f.add(`fragEmission`,`vec4`,1),d.include(s,a),d.include(o,a),d.include(n,a),d.include(c),d.include(t),d.uniforms.add(new i(`emissionTexture`,e=>e.emissionTexture),new i(`frontFaceEmissionTexture`,e=>e.frontFaceEmissionTexture)).main.add(r`vec4 emission = oitBlendFragment(emissionTexture, frontFaceEmissionTexture, floatBlendInputScale);
3
3
  vec4 transparentColor = oitBlendFragment();
4
4
  vec3 dim = emissionFilter(transparentColor.rgb, transparentColor.a);
5
5
  fragEmission.rgb = emission.rgb * dim * pow(emission.a, 0.5) * floatBlendOutputScale;
@@ -1,5 +1,5 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/6.0/LICENSE.txt */
2
- import{ZEROS as e}from"../core/libs/gl-matrix-2/factories/vec3f64.js";import{Colormap as t}from"../views/3d/webgl-engine/core/shaderLibrary/raster/Colormap.glsl.js";import{CommonPassParameters as n,Common as r}from"../views/3d/webgl-engine/core/shaderLibrary/raster/Common.glsl.js";import{TileBackground as i}from"../views/3d/webgl-engine/core/shaderLibrary/terrain/TileBackground.glsl.js";import{TileComposite as a}from"../views/3d/webgl-engine/core/shaderLibrary/terrain/TileComposite.glsl.js";import{ColorConversion as o}from"../views/3d/webgl-engine/core/shaderLibrary/util/ColorConversion.glsl.js";import{BooleanPassUniform as s}from"../views/3d/webgl-engine/core/shaderModules/BooleanPassUniform.js";import{Float2PassUniform as c}from"../views/3d/webgl-engine/core/shaderModules/Float2PassUniform.js";import{Float3PassUniform as l}from"../views/3d/webgl-engine/core/shaderModules/Float3PassUniform.js";import{FloatPassUniform as u}from"../views/3d/webgl-engine/core/shaderModules/FloatPassUniform.js";import{FloatsPassUniform as d}from"../views/3d/webgl-engine/core/shaderModules/FloatsPassUniform.js";import{glsl as f}from"../views/3d/webgl-engine/core/shaderModules/glsl.js";import{IntegerPassUniform as p}from"../views/3d/webgl-engine/core/shaderModules/IntegerPassUniform.js";import{Texture2DPassUniform as m}from"../views/3d/webgl-engine/core/shaderModules/Texture2DPassUniform.js";import{ShaderBuilder as h}from"../views/webgl/ShaderBuilder.js";class g extends n{constructor(t,n,r,i,a,o){super(t,i,a),this.colormap=n,this.symbolizer=r,this.u_colormap=o,this.backgroundColor=e,this.fboTexture=null,this.baseOpacity=1}}class _ extends g{}class v extends g{}function y(e){let n=new h;return n.include(a),n.include(r,e),n.include(t,e),n.include(i,e),n.fragment.code.add(f`vec4 applyBackgroundBlend(vec4 layerColor) {
2
+ import{ZEROS as e}from"../core/libs/gl-matrix-2/factories/vec3f64.js";import{Colormap as t}from"../views/3d/webgl-engine/core/shaderLibrary/raster/Colormap.glsl.js";import{CommonPassParameters as n,Common as r}from"../views/3d/webgl-engine/core/shaderLibrary/raster/Common.glsl.js";import{blendLayers as i}from"../views/3d/webgl-engine/core/shaderLibrary/terrain/blendLayers.glsl.js";import{TileComposite as a}from"../views/3d/webgl-engine/core/shaderLibrary/terrain/TileComposite.glsl.js";import{ColorConversion as o}from"../views/3d/webgl-engine/core/shaderLibrary/util/ColorConversion.glsl.js";import{BooleanPassUniform as s}from"../views/3d/webgl-engine/core/shaderModules/BooleanPassUniform.js";import{Float2PassUniform as c}from"../views/3d/webgl-engine/core/shaderModules/Float2PassUniform.js";import{Float3PassUniform as l}from"../views/3d/webgl-engine/core/shaderModules/Float3PassUniform.js";import{FloatPassUniform as u}from"../views/3d/webgl-engine/core/shaderModules/FloatPassUniform.js";import{FloatsPassUniform as d}from"../views/3d/webgl-engine/core/shaderModules/FloatsPassUniform.js";import{glsl as f}from"../views/3d/webgl-engine/core/shaderModules/glsl.js";import{IntegerPassUniform as p}from"../views/3d/webgl-engine/core/shaderModules/IntegerPassUniform.js";import{Texture2DPassUniform as m}from"../views/3d/webgl-engine/core/shaderModules/Texture2DPassUniform.js";import{ShaderBuilder as h}from"../views/webgl/ShaderBuilder.js";class g extends n{constructor(t,n,r,i,a,o){super(t,i,a),this.colormap=n,this.symbolizer=r,this.u_colormap=o,this.backgroundColor=e,this.fboTexture=null,this.baseOpacity=1}}class _ extends g{}class v extends g{}function y(e){let n=new h;return n.include(a),n.include(r,e),n.include(t,e),n.include(i,e),n.fragment.code.add(f`vec4 applyBackgroundBlend(vec4 layerColor) {
3
3
  return blendLayers(vuv, layerColor, u_opacity);
4
4
  }`),e.colorizerType===0?x(n,e):e.colorizerType===1?b(n):e.colorizerType===2&&S(n,e),n}function b(e){e.fragment.main.add(f`vec2 pixelLocation = getPixelLocation(uv);
5
5
  if (isOutside(pixelLocation)) {
@@ -1,5 +1,5 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/6.0/LICENSE.txt */
2
- import{sliceDraw as e}from"../views/3d/webgl-engine/core/shaderLibrary/Slice.glsl.js";import{RibbonVertexPosition as t}from"../views/3d/webgl-engine/core/shaderLibrary/attributes/RibbonVertexPosition.glsl.js";import{EvaluateAmbientOcclusion as n}from"../views/3d/webgl-engine/core/shaderLibrary/shading/EvaluateAmbientOcclusion.glsl.js";import{EvaluateSceneLighting as r}from"../views/3d/webgl-engine/core/shaderLibrary/shading/EvaluateSceneLighting.glsl.js";import{mainLightIntensity as ee}from"../views/3d/webgl-engine/core/shaderLibrary/shading/lightingUniforms.js";import{LineStipple as te,computePixelSize as ne}from"../views/3d/webgl-engine/core/shaderLibrary/shading/LineStipple.glsl.js";import{MarkerSizing as i}from"../views/3d/webgl-engine/core/shaderLibrary/shading/MarkerSizing.glsl.js";import{NormalUtils as a}from"../views/3d/webgl-engine/core/shaderLibrary/shading/NormalUtils.glsl.js";import{PiUtils as o}from"../views/3d/webgl-engine/core/shaderLibrary/shading/PiUtils.glsl.js";import{positionOutsideClipSpace as s}from"../views/3d/webgl-engine/core/shaderLibrary/shading/PositionOutsideClipSpace.js";import{readFragmentShadow as c}from"../views/3d/webgl-engine/core/shaderLibrary/shading/readFragmentShadow.glsl.js";import{metersPerRenderUnit as l,screenPixelSizePerDistance as u,inverseProjectionMatrix as d,nearFar as f,viewport as p,pixelRatio as m}from"../views/3d/webgl-engine/core/shaderLibrary/util/cameraUniforms.js";import{ColorConversion as h}from"../views/3d/webgl-engine/core/shaderLibrary/util/ColorConversion.glsl.js";import{NoPerspectiveWrite as g,NoPerspectiveRead as _}from"../views/3d/webgl-engine/core/shaderLibrary/util/NoPerspective.glsl.js";import{addProjViewLocalOrigin as v}from"../views/3d/webgl-engine/core/shaderLibrary/util/View.glsl.js";import{Float4PassUniform as y}from"../views/3d/webgl-engine/core/shaderModules/Float4PassUniform.js";import{FloatPassUniform as b}from"../views/3d/webgl-engine/core/shaderModules/FloatPassUniform.js";import{glsl as x,If as S}from"../views/3d/webgl-engine/core/shaderModules/glsl.js";import{alphaCutoff as re}from"../views/3d/webgl-engine/shaders/alphaCutoff.glsl.js";import{animatedAlpha as ie}from"../views/3d/webgl-engine/shaders/animatedAlpha.glsl.js";import{groundMetersToScreenRatio as ae,planarDistanceToScreenRatio as C}from"../views/3d/webgl-engine/shaders/lineUniforms.js";import{outputColorHighlightOLID as w}from"../views/3d/webgl-engine/shaders/OutputColorHighlightOLID.glsl.js";import{getTextureBackedBufferModule as T}from"../views/3d/webgl-engine/shaders/RibbonLineTextureBuffer.glsl.js";import{ShaderBuilder as E}from"../views/webgl/ShaderBuilder.js";const D=1;function O(D){let O=new E,{attributes:k,varyings:A,vertex:j,fragment:M}=O,{applyMarkerOffset:N,draped:P,spherical:F,shadingEnabled:I,output:L,capType:R,stippleEnabled:z,falloffEnabled:B,wireframe:V,innerColorEnabled:H,hasAnimation:U,hasScreenSizePerspective:W,worldSized:G,imagePattern:K,useFlatJoinVarying:q}=D,J=R===2,Y=z&&J,X=B||Y,oe=z||J,Z=D.usePerspectiveCorrectStipple,Q=T(D).createBuilder(O,D);j.inputs.add(`position`,()=>Q.getTextureAttribute(`position`)),D.hasVVSize?j.inputs.add(`sizeFeatureAttribute`,()=>Q.getTextureAttribute(`sizeFeatureAttribute`)):j.inputs.add(`size`,()=>Q.getTextureAttribute(`size`)),D.hasVVOpacity&&j.inputs.add(`opacityFeatureAttribute`,()=>Q.getTextureAttribute(`opacityFeatureAttribute`)),D.hasVVColor?j.inputs.add(`colorFeatureAttribute`,()=>Q.getTextureAttribute(`colorFeatureAttribute`)):j.inputs.add(`color`,()=>Q.getTextureAttribute(`color`)),M.include(o),O.include(t,D),O.include(te,D),L===11?(O.varyings.add(`objectAndLayerIdColorVarying`,`vec4`),j.code.add(x`
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 n}from"../views/3d/webgl-engine/core/shaderLibrary/shading/EvaluateAmbientOcclusion.glsl.js";import{EvaluateSceneLighting as r}from"../views/3d/webgl-engine/core/shaderLibrary/shading/EvaluateSceneLighting.glsl.js";import{forwardLocalUp as i}from"../views/3d/webgl-engine/core/shaderLibrary/shading/forwardLocalUp.glsl.js";import{mainLightIntensity as a}from"../views/3d/webgl-engine/core/shaderLibrary/shading/lightingUniforms.js";import{LineStipple as o,computePixelSize as s}from"../views/3d/webgl-engine/core/shaderLibrary/shading/LineStipple.glsl.js";import{MarkerSizing as c}from"../views/3d/webgl-engine/core/shaderLibrary/shading/MarkerSizing.glsl.js";import{PiUtils as l}from"../views/3d/webgl-engine/core/shaderLibrary/shading/PiUtils.glsl.js";import{positionOutsideClipSpace as u}from"../views/3d/webgl-engine/core/shaderLibrary/shading/PositionOutsideClipSpace.js";import{readFragmentShadow as d}from"../views/3d/webgl-engine/core/shaderLibrary/shading/readFragmentShadow.glsl.js";import{metersPerRenderUnit as f,screenPixelSizePerDistance as p,inverseProjectionMatrix as m,nearFar as h,viewport as ee,pixelRatio as te}from"../views/3d/webgl-engine/core/shaderLibrary/util/cameraUniforms.js";import{ColorConversion as ne}from"../views/3d/webgl-engine/core/shaderLibrary/util/ColorConversion.glsl.js";import{NoPerspectiveWrite as g,NoPerspectiveRead as _}from"../views/3d/webgl-engine/core/shaderLibrary/util/NoPerspective.glsl.js";import{addProjViewLocalOrigin as v}from"../views/3d/webgl-engine/core/shaderLibrary/util/View.glsl.js";import{Float4PassUniform as y}from"../views/3d/webgl-engine/core/shaderModules/Float4PassUniform.js";import{FloatPassUniform as b}from"../views/3d/webgl-engine/core/shaderModules/FloatPassUniform.js";import{glsl as x,If as S}from"../views/3d/webgl-engine/core/shaderModules/glsl.js";import{alphaCutoff as C}from"../views/3d/webgl-engine/shaders/alphaCutoff.glsl.js";import{animatedAlpha as re}from"../views/3d/webgl-engine/shaders/animatedAlpha.glsl.js";import{groundMetersToScreenRatio as ie,planarDistanceToScreenRatio as w}from"../views/3d/webgl-engine/shaders/lineUniforms.js";import{outputColorHighlightOLID as T}from"../views/3d/webgl-engine/shaders/OutputColorHighlightOLID.glsl.js";import{getTextureBackedBufferModule as E}from"../views/3d/webgl-engine/shaders/RibbonLineTextureBuffer.glsl.js";import{ShaderBuilder as D}from"../views/webgl/ShaderBuilder.js";const O=1;function k(O){let k=new D,{attributes:A,varyings:j,vertex:M,fragment:N}=k,{applyMarkerOffset:P,draped:F,shadingEnabled:I,output:L,capType:R,stippleEnabled:z,falloffEnabled:B,wireframe:V,innerColorEnabled:H,hasAnimation:U,hasScreenSizePerspective:W,worldSized:G,imagePattern:K,useFlatJoinVarying:q}=O,J=R===2,Y=z&&J,X=B||Y,ae=z||J,Z=O.usePerspectiveCorrectStipple,Q=E(O).createBuilder(k,O);M.inputs.add(`position`,()=>Q.getTextureAttribute(`position`)),O.hasVVSize?M.inputs.add(`sizeFeatureAttribute`,()=>Q.getTextureAttribute(`sizeFeatureAttribute`)):M.inputs.add(`size`,()=>Q.getTextureAttribute(`size`)),O.hasVVOpacity&&M.inputs.add(`opacityFeatureAttribute`,()=>Q.getTextureAttribute(`opacityFeatureAttribute`)),O.hasVVColor?M.inputs.add(`colorFeatureAttribute`,()=>Q.getTextureAttribute(`colorFeatureAttribute`)):M.inputs.add(`color`,()=>Q.getTextureAttribute(`color`)),N.include(l),k.include(t,O),k.include(o,O),L===11?(k.varyings.add(`objectAndLayerIdColorVarying`,`vec4`),M.code.add(x`
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
- `),M.code.add(x`void outputObjectAndLayerIdColor() {
10
+ `),N.code.add(x`void outputObjectAndLayerIdColor() {
11
11
  fragColor = objectAndLayerIdColorVarying;
12
- }`)):(j.code.add(x`void forwardObjectAndLayerIdColor() {}`),M.code.add(x`void outputObjectAndLayerIdColor() {}`));let $=N&&!P;return $&&O.include(i,D),v(j,D),P&&(G||z)&&j.uniforms.add(G?ae:C),G&&!P&&j.uniforms.add(l,u),j.uniforms.add(d,f,p,new b(`miterLimit`,e=>e.join===`miter`?e.miterLimit:0)),j.constants.add(`LARGE_HALF_FLOAT`,`float`,65500),j.constants.add(`EPS`,`float`,.001),j.constants.add(`NUM_JOIN_SUBDIVISIONS`,`float`,D.numJoinSubdivisions),k.add(`textureElementIndex`,`uint`),k.add(`lineParameters`,`vec2`),A.add(`vColor`,`vec4`),A.add(`vpos`,`vec3`,{invariant:!0}),A.add(`vLineDistance`,`float`),A.add(`vLineWidth`,`float`),q?A.add(`vIsInsideJoin`,`int`,{flat:!0}):A.add(`vIsInsideJoin`,`float`),A.add(`vStretchFactor`,`float`),A.add(`vJoinCenterLineSDFs`,`vec2`),A.add(`vSubdivisionFactor`,`float`),z&&A.add(`vLineSizeInv`,`float`),X&&A.add(`vLineDistanceNorm`,`float`),J&&(A.add(`vSegmentSDF`,`float`),A.add(`vReverseSegmentSDF`,`float`)),j.code.add(x`vec3 perpendicular(vec3 v) {
12
+ }`)):(M.code.add(x`void forwardObjectAndLayerIdColor() {}`),N.code.add(x`void outputObjectAndLayerIdColor() {}`));let $=P&&!F;return $&&k.include(c,O),v(M,O),F&&(G||z)&&M.uniforms.add(G?ie:w),G&&!F&&M.uniforms.add(f,p),M.uniforms.add(m,h,ee,new b(`miterLimit`,e=>e.join===`miter`?e.miterLimit:0)),M.constants.add(`LARGE_HALF_FLOAT`,`float`,65500),M.constants.add(`EPS`,`float`,.001),M.constants.add(`NUM_JOIN_SUBDIVISIONS`,`float`,O.numJoinSubdivisions),A.add(`textureElementIndex`,`uint`),A.add(`lineParameters`,`vec2`),j.add(`vColor`,`vec4`),j.add(`vpos`,`vec3`,{invariant:!0}),j.add(`vLineDistance`,`float`),j.add(`vLineWidth`,`float`),q?j.add(`vIsInsideJoin`,`int`,{flat:!0}):j.add(`vIsInsideJoin`,`float`),j.add(`vStretchFactor`,`float`),j.add(`vJoinCenterLineSDFs`,`vec2`),j.add(`vSubdivisionFactor`,`float`),z&&j.add(`vLineSizeInv`,`float`),X&&j.add(`vLineDistanceNorm`,`float`),J&&(j.add(`vSegmentSDF`,`float`),j.add(`vReverseSegmentSDF`,`float`)),M.code.add(x`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
- }`),j.code.add(x`vec4 projectAndScale(vec4 pos) {
23
+ }`),M.code.add(x`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
- }`),j.code.add(x`
28
+ }`),M.code.add(x`
29
29
  void clip(
30
30
  inout vec4 pos,
31
31
  inout vec4 prev,
@@ -75,13 +75,13 @@ return posNdc;
75
75
  }
76
76
  }
77
77
  }
78
- `),j.uniforms.add(m),j.constants.add(`aaWidth`,`float`,1),M.constants.add(`aaWidth`,`float`,1),j.main.add(x`
78
+ `),M.uniforms.add(te),M.constants.add(`aaWidth`,`float`,1),N.constants.add(`aaWidth`,`float`,1),M.main.add(x`
79
79
  vec3 position = ${Q.getTextureAttribute(`position`)};
80
80
  float u0 = ${Q.getTextureAttribute(`u0`)};
81
81
  ${S(G,x`
82
82
  float prevU0 = ${Q.getTextureAttribute(`u0`,-1)};
83
83
  float nextU0 = ${Q.getTextureAttribute(`u0`,1)};
84
- ${S(!P,x`
84
+ ${S(!F,x`
85
85
  u0 *= metersPerRenderUnit;
86
86
  prevU0 *= metersPerRenderUnit;
87
87
  nextU0 *= metersPerRenderUnit;
@@ -102,7 +102,7 @@ return posNdc;
102
102
  // Check for special value of lineParameters.y which is used by the Renderer when graphics are removed before the
103
103
  // VBO is recompacted. If this is the case, then we just project outside of clip space.
104
104
  if (lineParameters.y == 0.0) {
105
- gl_Position = ${s};
105
+ gl_Position = ${u};
106
106
  }
107
107
  else {
108
108
  vec4 pos = view * vec4(position, 1.0);
@@ -110,11 +110,11 @@ return posNdc;
110
110
  vec4 next = view * vec4(nextPosition, 1.0);
111
111
 
112
112
  bool isJoin = vertexType < 3.0;
113
- `),$&&j.main.add(x`vec4 other = isStartVertex ? next : prev;
113
+ `),$&&M.main.add(x`vec4 other = isStartVertex ? next : prev;
114
114
  bool markersHidden = areWorldMarkersHidden(pos.xyz, other.xyz);
115
115
  if (!isJoin && !markersHidden) {
116
116
  pos.xyz += normalize(other.xyz - pos.xyz) * getWorldMarkerSize(pos.xyz) * 0.5;
117
- }`),O.include(g),j.code.add(x`
117
+ }`),k.include(g),M.code.add(x`
118
118
  vec2 computeJoinAndCapDisplacement(
119
119
  bool isJoin,
120
120
  bool isStartVertex,
@@ -194,7 +194,7 @@ pos.xyz += normalize(other.xyz - pos.xyz) * getWorldMarkerSize(pos.xyz) * 0.5;
194
194
  }
195
195
 
196
196
  if (isOutside && displacementLen > miterLimit * lineWidth) {
197
- ${S(D.roundJoins,x`
197
+ ${S(O.roundJoins,x`
198
198
  vec3 startDir = perpendicular(leftLen < EPS ? right : left);
199
199
  vec3 endDir = perpendicular(rightLen < EPS ? left : right);
200
200
  float factor = ${z?x`min(1.0, subdivisionFactor * ((NUM_JOIN_SUBDIVISIONS + 1.0) / NUM_JOIN_SUBDIVISIONS))`:x`subdivisionFactor`};
@@ -224,7 +224,7 @@ pos.xyz += normalize(other.xyz - pos.xyz) * getWorldMarkerSize(pos.xyz) * 0.5;
224
224
 
225
225
  return (joinDisplacementDir.xy * lineSide + capDisplacementDir.xy) * displacementLen;
226
226
  }
227
- `),j.main.add(x`
227
+ `),M.main.add(x`
228
228
  clip(pos, prev, next, ${S(Z,x`u0, prevU0, nextU0,`)} isStartVertex);
229
229
 
230
230
  vec3 clippedPos = pos.xyz;
@@ -242,7 +242,7 @@ pos.xyz += normalize(other.xyz - pos.xyz) * getWorldMarkerSize(pos.xyz) * 0.5;
242
242
  ${S(z&&!W,`float patternLineSize = lineSize;`)}
243
243
 
244
244
  ${S(G,x`
245
- ${S(P,x`float lineSizeScreen = lineSize * groundMetersToScreenRatio;`,x`
245
+ ${S(F,x`float lineSizeScreen = lineSize * groundMetersToScreenRatio;`,x`
246
246
  float metersPerScreenPixel = max(-clippedPos.z, nearFar[0]) * metersPerRenderUnit * screenPixelSizePerDistance;
247
247
  float lineSizeScreen = lineSize / metersPerScreenPixel;
248
248
  `)}
@@ -253,12 +253,12 @@ pos.xyz += normalize(other.xyz - pos.xyz) * getWorldMarkerSize(pos.xyz) * 0.5;
253
253
 
254
254
  vLineWidth = noPerspectiveWrite(lineWidth, pos.w);
255
255
  ${z?`vLineSizeInv = noPerspectiveWrite(1.0 / ${G?`lineSize`:`max(lineSize, 1.0)`}, pos.w);`:``}
256
- `),oe&&j.main.add(x`
256
+ `),ae&&M.main.add(x`
257
257
  float isEndVertex = float(!isStartVertex);
258
258
  vec3 segmentOrigin = mix(pos.xyz, prev.xyz, isEndVertex);
259
259
  vec3 segment = mix(right, left, isEndVertex);
260
260
  ${J?`vec3 segmentEnd = mix(next.xyz, pos.xyz, isEndVertex);`:``}
261
- `),j.main.add(x`
261
+ `),M.main.add(x`
262
262
  vIsInsideJoin = ${q?x`0`:x`float(isInsideJoin)`};
263
263
  vStretchFactor = 1.0;
264
264
  vSubdivisionFactor = 0.0;
@@ -291,7 +291,7 @@ pos.xyz += normalize(other.xyz - pos.xyz) * getWorldMarkerSize(pos.xyz) * 0.5;
291
291
  ${X?x`vLineDistanceNorm = lineDistNorm;`:``}
292
292
 
293
293
  pos.xyz += displacement;
294
- `),j.main.add(x`if (isJoin) {
294
+ `),M.main.add(x`if (isJoin) {
295
295
  vec2 joinCenterToVertex = displacementXY;
296
296
  vec2 leftCenterlineDir = left.xy;
297
297
  vec2 rightCenterlineDir = right.xy;
@@ -306,23 +306,23 @@ dot(vec2(leftCenterlineDir.y, -leftCenterlineDir.x), joinCenterToVertex)
306
306
  ),
307
307
  pos.w
308
308
  );
309
- }`),J&&j.main.add(x`vec2 segmentDir = normalize(segment.xy);
309
+ }`),J&&M.main.add(x`vec2 segmentDir = normalize(segment.xy);
310
310
  vSegmentSDF = noPerspectiveWrite((isJoin && isStartVertex) ? LARGE_HALF_FLOAT : (dot(pos.xy - segmentOrigin.xy, segmentDir)), pos.w);
311
- vReverseSegmentSDF = noPerspectiveWrite((isJoin && !isStartVertex) ? LARGE_HALF_FLOAT : (dot(pos.xy - segmentEnd.xy, -segmentDir)), pos.w);`),z&&(P?j.main.add(`float stippleDistanceToScreenRatio = ${G?`groundMetersToScreenRatio`:`planarDistanceToScreenRatio`};`):j.main.add(x`vec3 segmentCenter = mix((nextPosition + position) * 0.5, (position + prevPosition) * 0.5, isEndVertex);
312
- float stippleDistanceToScreenRatio = computeWorldToScreenRatio(segmentCenter);`),j.main.add(x`
311
+ vReverseSegmentSDF = noPerspectiveWrite((isJoin && !isStartVertex) ? LARGE_HALF_FLOAT : (dot(pos.xy - segmentEnd.xy, -segmentDir)), pos.w);`),z&&(F?M.main.add(`float stippleDistanceToScreenRatio = ${G?`groundMetersToScreenRatio`:`planarDistanceToScreenRatio`};`):M.main.add(x`vec3 segmentCenter = mix((nextPosition + position) * 0.5, (position + prevPosition) * 0.5, isEndVertex);
312
+ float stippleDistanceToScreenRatio = computeWorldToScreenRatio(segmentCenter);`),M.main.add(x`
313
313
  float segmentLengthScreenDouble = length(segment.xy);
314
314
  float segmentLengthScreen = segmentLengthScreenDouble * 0.5;
315
315
  float discreteStippleDistanceToScreenRatio = discretizeStippleDistanceToScreenRatio(stippleDistanceToScreenRatio);
316
316
  float segmentLengthRender = ${S(G,x`abs(mix(nextU0 - u0, u0 - prevU0, isEndVertex))`,x`length(mix(nextPosition - position, position - prevPosition, isEndVertex))`)};
317
317
 
318
- ${S(!P||G,x`
318
+ ${S(!F||G,x`
319
319
  float segmentStartRender = ${S(G,x`mix(u0, prevU0, isEndVertex)`,x`mix(u0, u0 - segmentLengthRender, isEndVertex)`)};
320
320
  `)}
321
321
 
322
322
  vStipplePatternStretch = stippleDistanceToScreenRatio / discreteStippleDistanceToScreenRatio;
323
- `),P?j.main.add(x`float segmentLengthPseudoScreen = segmentLengthScreen / pixelRatio * discreteStippleDistanceToScreenRatio / stippleDistanceToScreenRatio;
324
- float startPseudoScreen = u0 * discreteStippleDistanceToScreenRatio - mix(0.0, segmentLengthPseudoScreen, isEndVertex);`):j.main.add(x`float startPseudoScreen = segmentStartRender * discreteStippleDistanceToScreenRatio;
325
- float segmentLengthPseudoScreen = segmentLengthRender * discreteStippleDistanceToScreenRatio;`),j.uniforms.add(new b(`stipplePatternPixelSize`,e=>ne(e))),j.main.add(x`
323
+ `),F?M.main.add(x`float segmentLengthPseudoScreen = segmentLengthScreen / pixelRatio * discreteStippleDistanceToScreenRatio / stippleDistanceToScreenRatio;
324
+ float startPseudoScreen = u0 * discreteStippleDistanceToScreenRatio - mix(0.0, segmentLengthPseudoScreen, isEndVertex);`):M.main.add(x`float startPseudoScreen = segmentStartRender * discreteStippleDistanceToScreenRatio;
325
+ float segmentLengthPseudoScreen = segmentLengthRender * discreteStippleDistanceToScreenRatio;`),M.uniforms.add(new b(`stipplePatternPixelSize`,e=>s(e))),M.main.add(x`
326
326
  float patternLength = patternLineSize * stipplePatternPixelSize;
327
327
  vec2 stippleDistanceLimits;
328
328
 
@@ -371,7 +371,7 @@ float segmentLengthPseudoScreen = segmentLengthRender * discreteStippleDistanceT
371
371
  // Disable stipple distance limits on caps
372
372
  vStippleLimitsAndCaps.zw = isJoin ? vec2(0.0) :
373
373
  isStartVertex ? vec2(1.0, 0.0) : vec2(0.0, 1.0);
374
- `)),j.main.add(x`
374
+ `)),M.main.add(x`
375
375
  // Convert back into NDC
376
376
  pos.xy = (pos.xy / viewport.zw) * pos.w;
377
377
  pos.z = pos.z * pos.w;
@@ -379,13 +379,13 @@ float segmentLengthPseudoScreen = segmentLengthRender * discreteStippleDistanceT
379
379
  vColor = getColor();
380
380
  vColor.a = noPerspectiveWrite(vColor.a, pos.w);
381
381
 
382
- ${V&&!P?`pos.z -= EPS * pos.w;`:``}
382
+ ${V&&!F?`pos.z -= EPS * pos.w;`:``}
383
383
 
384
384
  // transform final position to camera space for slicing
385
385
  vpos = (inverseProjectionMatrix * pos).xyz;
386
386
  gl_Position = pos;
387
387
  forwardObjectAndLayerIdColor();
388
- }`),O.include(w,D),O.include(_),M.include(h),M.include(re),M.include(e,D),M.main.add(`discardBySlice(vpos);`),M.code.add(x`float lineFeatheringFactor(float lineWidth, float lineDistance) {
388
+ }`),k.include(T,O),k.include(_),N.include(ne),N.include(C),N.include(e,O),N.main.add(`discardBySlice(vpos);`),N.code.add(x`float lineFeatheringFactor(float lineWidth, float lineDistance) {
389
389
  float stretchFactor = float(vIsInsideJoin) > 0.5 ? noPerspectiveRead(vStretchFactor) : 1.0;
390
390
  float featherWidth = 2.0;
391
391
  float featherStartDistance = lineWidth - featherWidth / stretchFactor;
@@ -398,12 +398,12 @@ float straightFeather = (joinCenterDistance - straightFeatherStartDistance) / (l
398
398
  feather = float(vIsInsideJoin) > 0.5 ? max(feather, straightFeather) : feather;
399
399
  float coverage = min(lineWidth - aaWidth, 1.0);
400
400
  return clamp(1.0 - feather, 0.0, coverage);
401
- }`),M.main.add(x`
401
+ }`),N.main.add(x`
402
402
  float lineWidth = noPerspectiveRead(vLineWidth);
403
403
  float lineDistance = noPerspectiveRead(vLineDistance);
404
404
  ${S(X,x`float lineDistanceNorm = noPerspectiveRead(vLineDistanceNorm);`)}
405
- `),Y&&M.main.add(x`float nominalLineWidth = lineWidth - aaWidth;`),V?M.main.add(x`vec4 albedo = vec4(1.0, 0.0, 1.0, 1.0);
406
- vec4 finalColor = albedo;`):(J&&M.main.add(x`
405
+ `),Y&&N.main.add(x`float nominalLineWidth = lineWidth - aaWidth;`),V?N.main.add(x`vec4 albedo = vec4(1.0, 0.0, 1.0, 1.0);
406
+ vec4 finalColor = albedo;`):(J&&N.main.add(x`
407
407
  float sdf = noPerspectiveRead(min(vSegmentSDF, vReverseSegmentSDF));
408
408
  vec2 fragmentPosition = vec2(min(sdf, 0.0), lineDistance);
409
409
 
@@ -414,7 +414,7 @@ vec4 finalColor = albedo;`):(J&&M.main.add(x`
414
414
  if (capCoverage < alphaCutoff) {
415
415
  discard;
416
416
  }
417
- `),Y?M.main.add(x`vec2 stipplePosition = vec2(
417
+ `),Y?N.main.add(x`vec2 stipplePosition = vec2(
418
418
  min(getStippleCapDistance(), 0.0) * nominalLineWidth,
419
419
  lineDistance
420
420
  );
@@ -422,11 +422,11 @@ float stippleRadius = length(stipplePosition);
422
422
  float stippleCapSDF = (stippleRadius - nominalLineWidth) * 0.5;
423
423
  float stippleCoverage = clamp(0.5 - stippleCapSDF, 0.0, 1.0);
424
424
  float lineCoverage = min(lineFeatheringFactor(lineWidth, lineDistance), capCoverage);
425
- float stippleAlpha = lineCoverage > 0.0 ? min(stippleCoverage, lineCoverage) / lineCoverage : 0.0;`):M.main.add(x`float stippleAlpha = getStippleAlpha(lineWidth);`),L!==11&&M.main.add(x`discardByStippleAlpha(stippleAlpha, alphaCutoff);`),M.uniforms.add(new y(`intrinsicColor`,e=>e.color)).main.add(x`vec4 color = intrinsicColor * vColor;
426
- color.a = noPerspectiveRead(color.a);`),H&&M.uniforms.add(new y(`innerColor`,e=>e.innerColor??e.color),new b(`innerWidth`,(e,t)=>e.innerWidth*t.camera.pixelRatio)).main.add(x`float distToInner = abs(lineDistance) - innerWidth;
425
+ float stippleAlpha = lineCoverage > 0.0 ? min(stippleCoverage, lineCoverage) / lineCoverage : 0.0;`):N.main.add(x`float stippleAlpha = getStippleAlpha(lineWidth);`),L!==11&&N.main.add(x`discardByStippleAlpha(stippleAlpha, alphaCutoff);`),N.uniforms.add(new y(`intrinsicColor`,e=>e.color)).main.add(x`vec4 color = intrinsicColor * vColor;
426
+ color.a = noPerspectiveRead(color.a);`),H&&N.uniforms.add(new y(`innerColor`,e=>e.innerColor??e.color),new b(`innerWidth`,(e,t)=>e.innerWidth*t.camera.pixelRatio)).main.add(x`float distToInner = abs(lineDistance) - innerWidth;
427
427
  float innerAA = clamp(0.5 - distToInner, 0.0, 1.0);
428
428
  float innerAlpha = innerColor.a + color.a * (1.0 - innerColor.a);
429
- color = mix(color, vec4(innerColor.rgb, innerAlpha), innerAA);`),M.main.add(`vec4 albedo = blendStipple(color, stippleAlpha);`),B&&(M.uniforms.add(new b(`falloff`,e=>e.falloff)),M.main.add(x`albedo.a *= pow(max(0.0, 1.0 - abs(lineDistanceNorm)), falloff);`)),M.main.add(x`albedo.a *= ${Y?`lineCoverage`:`lineFeatheringFactor(lineWidth, lineDistance)`};`),U&&(j.main.add(`vec4 animatedAlphaTimeStamps = ${Q.getTextureAttribute(`timeStamps`)};`),O.include(ie,D),M.main.add(`albedo.a *= animatedAlpha();`)),I?(F?(A.add(`vnormal`,`vec3`),j.include(a,D),j.main.add(`vnormal = getLocalUp(position, localOrigin);`)):M.main.add(`vec3 vnormal = vec3(0.0, 0.0, 1.0);`),j.main.add(`forwardLinearDepthToReadShadow();`),O.include(c,D),M.include(r,D),M.include(n,D),M.include(a,D),M.uniforms.add(ee).main.add(x`vec3 normal = normalize(vnormal);
429
+ color = mix(color, vec4(innerColor.rgb, innerAlpha), innerAA);`),N.main.add(`vec4 albedo = blendStipple(color, stippleAlpha);`),B&&(N.uniforms.add(new b(`falloff`,e=>e.falloff)),N.main.add(x`albedo.a *= pow(max(0.0, 1.0 - abs(lineDistanceNorm)), falloff);`)),N.main.add(x`albedo.a *= ${Y?`lineCoverage`:`lineFeatheringFactor(lineWidth, lineDistance)`};`),U&&(M.main.add(`vec4 animatedAlphaTimeStamps = ${Q.getTextureAttribute(`timeStamps`)};`),k.include(re,O),N.main.add(`albedo.a *= animatedAlpha();`)),I?(k.include(i,O),M.main.add(x`forwardLocalUp(position, localOrigin);`),M.main.add(`forwardLinearDepthToReadShadow();`),k.include(d,O),N.include(r,O),N.include(n,O),N.uniforms.add(a).main.add(x`vec3 normal = normalize(upNormal);
430
430
  float additionalAmbientScale = additionalDirectedAmbientLight(normal);
431
431
  float shadow = readFragmentShadow(additionalAmbientScale);
432
432
  float ssao = evaluateAmbientOcclusionInverse();
@@ -435,4 +435,4 @@ vec3 viewDirection = normalize((inverseViewMatrix * vec4(vpos, 0.0)).xyz);
435
435
  vec4 finalColor = vec4(
436
436
  evaluateSceneLighting(normal, albedo.rgb, shadow, 1.0 - ssao, additionalLight,viewDirection, normal),
437
437
  albedo.a
438
- );`)):M.main.add(`vec4 finalColor = albedo;`)),M.main.add(x`outputColorHighlightOLID(applySlice(finalColor, vpos), albedo.rgb);`),O}const k=Object.freeze(Object.defineProperty({__proto__:null,build:O,numRoundJoinSubdivisions:1},Symbol.toStringTag,{value:`Module`}));export{k as R,O as b,D as n};
438
+ );`)):N.main.add(`vec4 finalColor = albedo;`)),N.main.add(x`outputColorHighlightOLID(applySlice(finalColor, vpos), albedo.rgb);`),k}const A=Object.freeze(Object.defineProperty({__proto__:null,build:k,numRoundJoinSubdivisions:1},Symbol.toStringTag,{value:`Module`}));export{A as R,k as b,O as n};
@@ -1,22 +1,21 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/6.0/LICENSE.txt */
2
- import{translate as e}from"../core/libs/gl-matrix-2/math/mat4.js";import{create as t}from"../core/libs/gl-matrix-2/factories/mat4f64.js";import{normalize as n,set as r}from"../core/libs/gl-matrix-2/math/vec3.js";import{create as i}from"../core/libs/gl-matrix-2/factories/vec3f64.js";import{waterNormals as a}from"../views/3d/webgl-engine/core/shaderLibrary/bindUniforms.js";import{addLinearDepth as o}from"../views/3d/webgl-engine/core/shaderLibrary/ForwardLinearDepth.glsl.js";import{sliceDraw as s}from"../views/3d/webgl-engine/core/shaderLibrary/Slice.glsl.js";import{Transform as c}from"../views/3d/webgl-engine/core/shaderLibrary/Transform.glsl.js";import{NormalAttribute as l}from"../views/3d/webgl-engine/core/shaderLibrary/attributes/NormalAttribute.glsl.js";import{TextureCoordinateAttribute as u}from"../views/3d/webgl-engine/core/shaderLibrary/attributes/TextureCoordinateAttribute.glsl.js";import{VertexTangent as d}from"../views/3d/webgl-engine/core/shaderLibrary/attributes/VertexTangent.glsl.js";import{outputDepth as f}from"../views/3d/webgl-engine/core/shaderLibrary/output/OutputDepth.glsl.js";import{OutputHighlight as p}from"../views/3d/webgl-engine/core/shaderLibrary/output/OutputHighlight.glsl.js";import{OutputHighlightOverlay as m}from"../views/3d/webgl-engine/core/shaderLibrary/output/OutputHighlightOverlay.js";import{EvaluateAmbientOcclusion as h}from"../views/3d/webgl-engine/core/shaderLibrary/shading/EvaluateAmbientOcclusion.glsl.js";import{EvaluateSceneLighting as g,addAmbientBoostFactor as _}from"../views/3d/webgl-engine/core/shaderLibrary/shading/EvaluateSceneLighting.glsl.js";import{lightingGlobalFactor as v,mainLightDirection as y,mainLightIntensity as b}from"../views/3d/webgl-engine/core/shaderLibrary/shading/lightingUniforms.js";import{NormalUtils as x}from"../views/3d/webgl-engine/core/shaderLibrary/shading/NormalUtils.glsl.js";import{readShadowDraw as S}from"../views/3d/webgl-engine/core/shaderLibrary/shading/readShadow.glsl.js";import{OverlayTerrain as C}from"../views/3d/webgl-engine/core/shaderLibrary/terrain/Overlay.glsl.js";import{OverlayTerrainPassParameters as w,TerrainTexture as T}from"../views/3d/webgl-engine/core/shaderLibrary/terrain/TerrainTexture.glsl.js";import{viewNormal as E,nearFar as D}from"../views/3d/webgl-engine/core/shaderLibrary/util/cameraUniforms.js";import{addProjViewLocalOrigin as O,addCameraPosition as k}from"../views/3d/webgl-engine/core/shaderLibrary/util/View.glsl.js";import{Float3BindUniform as A}from"../views/3d/webgl-engine/core/shaderModules/Float3BindUniform.js";import{glsl as j,If as M}from"../views/3d/webgl-engine/core/shaderModules/glsl.js";import{Matrix4DrawUniform as N}from"../views/3d/webgl-engine/core/shaderModules/Matrix4DrawUniform.js";import{alphaCutoff as P}from"../views/3d/webgl-engine/shaders/alphaCutoff.glsl.js";import{outputColorHighlightOLID as F}from"../views/3d/webgl-engine/shaders/OutputColorHighlightOLID.glsl.js";import{ShaderBuilder as I}from"../views/webgl/ShaderBuilder.js";class L extends w{constructor(){super(...arguments),this.useStencil=!1}}function R(t){let i=new I,{attributes:w,vertex:L,fragment:R,varyings:V}=i;w.add(`position`,`vec3`),i.include(l,t),i.include(u,t);function H(){L.include(x,t),L.code.add(j`vec3 getNormal() {
2
+ import{translate as e}from"../core/libs/gl-matrix-2/math/mat4.js";import{create as t}from"../core/libs/gl-matrix-2/factories/mat4f64.js";import{normalize as n,set as r}from"../core/libs/gl-matrix-2/math/vec3.js";import{create as i}from"../core/libs/gl-matrix-2/factories/vec3f64.js";import{waterNormals as a}from"../views/3d/webgl-engine/core/shaderLibrary/bindUniforms.js";import{addLinearDepth as o}from"../views/3d/webgl-engine/core/shaderLibrary/ForwardLinearDepth.glsl.js";import{sliceDraw as s}from"../views/3d/webgl-engine/core/shaderLibrary/Slice.glsl.js";import{Transform as c}from"../views/3d/webgl-engine/core/shaderLibrary/Transform.glsl.js";import{NormalAttribute as l}from"../views/3d/webgl-engine/core/shaderLibrary/attributes/NormalAttribute.glsl.js";import{TextureCoordinateAttribute as u}from"../views/3d/webgl-engine/core/shaderLibrary/attributes/TextureCoordinateAttribute.glsl.js";import{VertexTangent as d}from"../views/3d/webgl-engine/core/shaderLibrary/attributes/VertexTangent.glsl.js";import{outputDepth as f}from"../views/3d/webgl-engine/core/shaderLibrary/output/OutputDepth.glsl.js";import{OutputHighlight as p}from"../views/3d/webgl-engine/core/shaderLibrary/output/OutputHighlight.glsl.js";import{OutputHighlightOverlay as m}from"../views/3d/webgl-engine/core/shaderLibrary/output/OutputHighlightOverlay.js";import{EvaluateAmbientOcclusion as h}from"../views/3d/webgl-engine/core/shaderLibrary/shading/EvaluateAmbientOcclusion.glsl.js";import{EvaluateSceneLighting as g,addAmbientBoostFactor as _}from"../views/3d/webgl-engine/core/shaderLibrary/shading/EvaluateSceneLighting.glsl.js";import{forwardLocalUp as v}from"../views/3d/webgl-engine/core/shaderLibrary/shading/forwardLocalUp.glsl.js";import{lightingGlobalFactor as y,mainLightDirection as b,mainLightIntensity as x}from"../views/3d/webgl-engine/core/shaderLibrary/shading/lightingUniforms.js";import{readShadowDraw as S}from"../views/3d/webgl-engine/core/shaderLibrary/shading/readShadow.glsl.js";import{OverlayTerrain as C}from"../views/3d/webgl-engine/core/shaderLibrary/terrain/Overlay.glsl.js";import{OverlayTerrainPassParameters as w,TerrainTexture as T}from"../views/3d/webgl-engine/core/shaderLibrary/terrain/TerrainTexture.glsl.js";import{viewNormal as E,nearFar as D}from"../views/3d/webgl-engine/core/shaderLibrary/util/cameraUniforms.js";import{addProjViewLocalOrigin as O,addCameraPosition as k}from"../views/3d/webgl-engine/core/shaderLibrary/util/View.glsl.js";import{Float3BindUniform as A}from"../views/3d/webgl-engine/core/shaderModules/Float3BindUniform.js";import{glsl as j,If as M}from"../views/3d/webgl-engine/core/shaderModules/glsl.js";import{Matrix4DrawUniform as N}from"../views/3d/webgl-engine/core/shaderModules/Matrix4DrawUniform.js";import{alphaCutoff as P}from"../views/3d/webgl-engine/shaders/alphaCutoff.glsl.js";import{outputColorHighlightOLID as F}from"../views/3d/webgl-engine/shaders/OutputColorHighlightOLID.glsl.js";import{ShaderBuilder as I}from"../views/webgl/ShaderBuilder.js";class L extends w{constructor(){super(...arguments),this.useStencil=!1}}function R(t){let i=new I,{attributes:w,vertex:L,fragment:R,varyings:V}=i;w.add(`position`,`vec3`),i.include(l,t),i.include(u,t);function H(){L.code.add(j`vec3 getNormal() {
3
3
  float z = 1.0 - abs(normalCompressed.x) - abs(normalCompressed.y);
4
4
  vec3 n = vec3(normalCompressed + vec2(normalCompressed.x >= 0.0 ? 1.0 : -1.0,
5
5
  normalCompressed.y >= 0.0 ? 1.0 : -1.0) * min(z, 0.0), z);
6
6
  return normalize(n);
7
- }`)}O(L,t),i.include(c),R.include(P);let{output:U,overlayMode:W,tileBorders:G,transparencyMode:K,overlayEnabled:q,renderOccluded:J}=t,Y=K===2||K===3,X=q&&Y;switch(U){case 0:case 1:case 2:{i.include(T,t),R.include(g,t),q&&i.include(C,t);let o=W===2;o&&i.include(d,t),V.add(`vnormal`,`vec3`),V.add(`vpos`,`vec3`,{invariant:!0}),V.add(`upNormal`,`vec3`),H(),L.main.add(j`
7
+ }`)}O(L,t),i.include(c),R.include(P);let{output:U,overlayMode:W,tileBorders:G,transparencyMode:K,overlayEnabled:q,renderOccluded:J}=t,Y=K===2||K===3,X=q&&Y;switch(U){case 0:case 1:case 2:{i.include(T,t),R.include(g,t),q&&i.include(C,t);let o=W===2;o&&i.include(d,t),V.add(`vnormal`,`vec3`),V.add(`vpos`,`vec3`,{invariant:!0}),H(),L.main.add(j`
8
8
  vpos = position;
9
9
  vec3 positionWorld = position + localOrigin;
10
10
  gl_Position = transformPosition(proj, view, vpos);
11
11
  vnormal = getNormal();
12
- upNormal = getLocalUp(position, localOrigin);
13
12
  ${M(o,j`forwardVertexTangent(vnormal);`)}
14
13
 
15
14
  forwardTextureCoordinatesWithTransform(uv0);
16
15
  ${M(q,`setOverlayVTC(uv0);`)}
17
16
  ${M(G,`forwardTextureCoordinates();`)}
18
17
  forwardLinearDepthToReadShadow();
19
- `);let c=U===0&&!J?``:`discard`;i.include(S,t),R.include(s,t),R.include(g,t),R.include(h,t),i.include(F,t),k(R,t),_(R),R.uniforms.add(v),R.uniforms.add(L.uniforms.get(`localOrigin`),new A(`viewDirection`,({camera:e})=>n(B,r(B,e.viewMatrix[12],e.viewMatrix[13],e.viewMatrix[14])))),o&&R.uniforms.add(a,new N(`view`,({origin:t},{camera:n})=>e(z,n.viewMatrix,t))),R.uniforms.add(y,b).main.add(j`
18
+ `),i.include(v,t),L.main.add(j`forwardLocalUp(position, localOrigin);`);let c=U===0&&!J?``:`discard`;i.include(S,t),R.include(s,t),R.include(g,t),R.include(h,t),i.include(F,t),k(R,t),_(R),R.uniforms.add(y),R.uniforms.add(L.uniforms.get(`localOrigin`),new A(`viewDirection`,({camera:e})=>n(B,r(B,e.viewMatrix[12],e.viewMatrix[13],e.viewMatrix[14])))),o&&R.uniforms.add(a,new N(`view`,({origin:t},{camera:n})=>e(z,n.viewMatrix,t))),R.uniforms.add(b,x).main.add(j`
20
19
  vec3 normal = normalize(vnormal);
21
20
  float lightAlignment = dot(normal, mainLightDirection);
22
21