@arcgis/core 4.33.0-next.20250311 → 4.33.0-next.20250313
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.
- package/Basemap.js +1 -1
- package/assets/esri/core/workers/RemoteClient.js +1 -1
- package/assets/esri/core/workers/chunks/025f8b72d7d8b5cccb0f.js +1 -0
- package/assets/esri/core/workers/chunks/{5b1b93665c93955491c4.js → 08bfceab05b5ea02bb4e.js} +106 -107
- package/assets/esri/core/workers/chunks/{bc988b9d3990380be907.js → 0a98dc3ea67ce97a6e7b.js} +1 -1
- package/assets/esri/core/workers/chunks/0e5c77d043ed4641556f.js +1 -0
- package/assets/esri/core/workers/chunks/10fc47b441ae49ef4db8.js +1 -0
- package/assets/esri/core/workers/chunks/{eacab4bd6eb58e545f73.js → 11f9d7cd95891596b716.js} +1 -1
- package/assets/esri/core/workers/chunks/{4263eee3247aaf4e64bf.js → 147e412de9972da16a1d.js} +1 -1
- package/assets/esri/core/workers/chunks/4908b36ef448bfe1f448.js +1 -0
- package/assets/esri/core/workers/chunks/4d95cc85f4b73e857b1f.js +1 -0
- package/assets/esri/core/workers/chunks/54ace3e4802934f3f9f2.js +1 -0
- package/assets/esri/core/workers/chunks/5820808c7659460969d4.js +1 -0
- package/assets/esri/core/workers/chunks/6388fdacb434a266b039.js +314 -0
- package/assets/esri/core/workers/chunks/add0770399a63b7635b5.js +1 -0
- package/assets/esri/core/workers/chunks/b2f8702a9f54fff23ad9.js +1 -0
- package/assets/esri/core/workers/chunks/b8b8425e8b1246cdc86d.js +1 -0
- package/assets/esri/core/workers/chunks/d0fbd4c6bffe0cb98d14.js +1 -0
- package/assets/esri/core/workers/chunks/{2c227d97d00b3849f441.js → d459c790a3b89ac53d2d.js} +1 -1
- package/assets/esri/core/workers/chunks/dd6f18bbab50be139d20.js +1 -0
- package/assets/esri/core/workers/chunks/de6864e120243cf0bee8.js +1 -0
- package/assets/esri/core/workers/chunks/fc7ce48c7b31a4665a9b.js +1 -0
- package/assets/esri/core/workers/chunks/fe6e7ac83cd2293d576e.js +1 -0
- package/chunks/ComponentShader.glsl.js +7 -8
- package/chunks/DefaultMaterial.glsl.js +21 -21
- package/chunks/HighlightApply.glsl.js +27 -132
- package/chunks/{SingleHighlightBlur.glsl.js → HighlightBlur.glsl.js} +4 -4
- package/chunks/HighlightDownsample.glsl.js +8 -8
- package/chunks/HighlightToSingle.glsl.js +2 -2
- package/chunks/Pattern.glsl.js +23 -25
- package/chunks/RealisticTree.glsl.js +12 -12
- package/chunks/ShadowHighlight.glsl.js +5 -6
- package/chunks/Terrain.glsl.js +30 -31
- package/core/LRUCache.js +1 -1
- package/core/MemCache.js +1 -1
- package/core/has.js +1 -1
- package/geometry/support/ShortArray.js +5 -0
- package/interfaces.d.ts +18 -4
- package/layers/support/layerUtils.js +1 -1
- package/layers/video/VideoController.js +1 -1
- package/package.json +1 -1
- package/support/revision.js +1 -1
- package/views/2d/engine/vectorTiles/VectorTileContainer.js +1 -1
- package/views/2d/engine/webgl/Painter.js +1 -1
- package/views/2d/engine/webgl/WorldExtentClipRenderer.js +1 -1
- package/views/2d/engine/webgl/effects/FeatureEffect.js +1 -1
- package/views/2d/engine/webgl/effects/HighlightEffect.js +1 -1
- package/views/2d/engine/webgl/effects/HittestEffect.js +1 -1
- package/views/2d/layers/imagery/BaseImageryTileSubView2D.js +1 -1
- package/views/2d/layers/imagery/ImageryTileView2D.js +1 -1
- package/views/2d/layers/imagery/VectorFieldTileView2D.js +1 -1
- package/views/3d/analysis/Viewshed/ViewshedComputedData.js +1 -1
- package/views/3d/analysis/ViewshedAnalysisView3D.js +1 -1
- package/views/3d/environment/ChapmanAtmosphere.js +1 -1
- package/views/3d/environment/CloudsRenderer.js +1 -1
- package/views/3d/environment/EnvironmentManager.js +1 -1
- package/views/3d/environment/Fog.js +1 -1
- package/views/3d/environment/Precipitation.js +1 -1
- package/views/3d/layers/graphics/Graphics3DDrapedGraphicLayer.js +1 -1
- package/views/3d/layers/graphics/Graphics3DGraphic.js +1 -1
- package/views/3d/layers/graphics/Graphics3DLodInstanceGraphicLayer.js +1 -1
- package/views/3d/layers/graphics/Graphics3DObject3DGraphicLayer.js +1 -1
- package/views/3d/layers/graphics/Graphics3DPathSymbolLayer.js +1 -1
- package/views/3d/layers/graphics/LabelInfo.js +1 -1
- package/views/3d/layers/graphics/pipeline/Feature3DPipeline.js +1 -1
- package/views/3d/layers/graphics/pipeline/Feature3DPipelineWorker.js +1 -1
- package/views/3d/layers/graphics/pipeline/Feature3DPipelineWorkerHandle.js +1 -1
- package/views/3d/layers/graphics/pipeline/featureData/processingUtils.js +1 -1
- package/views/3d/layers/graphics/pipeline/rendering/DirectRenderer.js +1 -1
- package/views/3d/layers/graphics/pipeline/rendering/FeaturePipelineRenderManager.js +1 -1
- package/views/3d/layers/graphics/pipeline/rendering/LodRenderer.js +1 -1
- package/views/3d/layers/graphics/pipeline/rendering/RenderCommandContext.js +1 -1
- package/views/3d/layers/graphics/pipeline/symbolization/TestObjectSymbol.js +1 -1
- package/views/3d/layers/graphics/pipeline/symbolization/TestSymbol.js +1 -1
- package/views/3d/layers/graphics/pipeline/utils.js +1 -1
- package/views/3d/layers/support/FeatureTileFetcher3D.js +1 -1
- package/views/3d/support/flowUtils.js +5 -0
- package/views/3d/terrain/OverlayRenderTargets.js +1 -1
- package/views/3d/terrain/OverlayRenderer.js +1 -1
- package/views/3d/terrain/TileRenderer.js +1 -1
- package/views/3d/webgl/ManagedFBO.js +1 -1
- package/views/3d/webgl/formats.js +1 -1
- package/views/3d/webgl-engine/core/FBOCache.js +1 -1
- package/views/3d/webgl-engine/core/shaderLibrary/HighlightCellGridScreenSpacePass.glsl.js +2 -2
- package/views/3d/webgl-engine/core/shaderLibrary/HighlightReadBitmap.glsl.js +3 -3
- package/views/3d/webgl-engine/core/shaderLibrary/attributes/PathVertexPosition.glsl.js +63 -77
- package/views/3d/webgl-engine/core/shaderLibrary/attributes/VertexPosition.glsl.js +6 -6
- package/views/3d/webgl-engine/core/shaderLibrary/output/OutputHighlight.glsl.js +7 -8
- package/views/3d/webgl-engine/core/shaderLibrary/terrain/Overlay.glsl.js +18 -18
- package/views/3d/webgl-engine/core/shaderModules/UintTexture2DBindUniform.js +5 -0
- package/views/3d/webgl-engine/core/shaderModules/UintTexture2DDrawUniform.js +5 -0
- package/views/3d/webgl-engine/core/shaderModules/UintTexture2DPassUniform.js +5 -0
- package/views/3d/webgl-engine/effects/bloom/BloomRenderNode.js +1 -1
- package/views/3d/webgl-engine/effects/debug/RenderNodeVisualizerNode.js +1 -1
- package/views/3d/webgl-engine/effects/focusArea/FocusAreaColorNode.js +1 -1
- package/views/3d/webgl-engine/effects/focusArea/FocusAreaMaskNode.js +1 -1
- package/views/3d/webgl-engine/effects/haze/Haze.js +1 -1
- package/views/3d/webgl-engine/effects/highlight/Highlight.js +1 -1
- package/views/3d/webgl-engine/effects/highlight/HighlightBlurTechnique.js +5 -0
- package/views/3d/webgl-engine/effects/highlight/ShadowHighlight.js +1 -1
- package/views/3d/webgl-engine/effects/transparency/OITBlend.js +1 -1
- package/views/3d/webgl-engine/effects/transparency/OITBlendTechnique.js +1 -1
- package/views/3d/webgl-engine/lib/MainFramebuffer.js +1 -1
- package/views/3d/webgl-engine/lib/Normals.js +1 -1
- package/views/3d/webgl-engine/lib/Object3D.js +1 -1
- package/views/3d/webgl-engine/lib/OrderIndependentTransparency.js +1 -1
- package/views/3d/webgl-engine/lib/PathBuilder.js +1 -1
- package/views/3d/webgl-engine/lib/PathGeometryData.js +1 -1
- package/views/3d/webgl-engine/lib/Program.js +1 -1
- package/views/3d/webgl-engine/lib/Renderer.js +1 -1
- package/views/3d/webgl-engine/lib/VertexAttribute.js +1 -1
- package/views/3d/webgl-engine/materials/LineMarkerMaterial.js +1 -1
- package/views/3d/webgl-engine/materials/PathMaterial.js +1 -1
- package/views/3d/webgl-engine/materials/PathTechnique.js +1 -1
- package/views/3d/webgl-engine/materials/RibbonLineMaterial.js +1 -1
- package/views/3d/webgl-engine/materials/internal/bufferWriterUtils.js +1 -1
- package/views/3d/webgl-engine/parts/Model.js +1 -1
- package/views/3d/webgl-engine/shaders/DefaultMaterial.glsl.js +1 -1
- package/views/3d/webgl-engine/shaders/HighlightApply.glsl.js +1 -1
- package/views/3d/webgl-engine/shaders/{SingleHighlightBlur.glsl.js → HighlightBlur.glsl.js} +1 -1
- package/views/3d/webgl-engine/shaders/HighlightDownsample.glsl.js +1 -1
- package/views/3d/webgl-engine/shaders/HighlightToSingle.glsl.js +1 -1
- package/views/3d/webgl-engine/shaders/RealisticTree.glsl.js +1 -1
- package/views/3d/webgl-engine/shaders/ShadowHighlight.glsl.js +1 -1
- package/views/3d/webgl-engine/shaders/Terrain.glsl.js +1 -1
- package/views/FocusAreas.js +1 -1
- package/views/animation/easing.js +1 -1
- package/views/support/imageReprojection.js +1 -1
- package/views/support/projectionUtils.js +1 -1
- package/views/webgl/FramebufferObject.js +1 -1
- package/views/webgl/RenderingContext.js +1 -1
- package/views/webgl/ShaderBuilder.js +1 -1
- package/views/webgl/ShaderTranspiler.js +1 -1
- package/views/webgl/ValidatedTextureDescriptor.js +1 -1
- package/views/webgl/enums.js +1 -1
- package/widgets/Editor/EditorViewModel.js +1 -1
- package/widgets/FeatureTable/FeatureTableViewModel.js +1 -1
- package/widgets/FloorFilter/FloorFilterViewModel.js +1 -1
- package/widgets/OrientedImageryViewer.js +1 -1
- package/widgets/support/GoTo.js +1 -1
- package/widgets/support/goToUtils.js +1 -1
- package/assets/esri/core/workers/chunks/0137c17f15d79134b4ca.js +0 -314
- package/assets/esri/core/workers/chunks/15fe629cd4da1bb2169f.js +0 -1
- package/assets/esri/core/workers/chunks/3bbf7f89bc37c01b453b.js +0 -1
- package/assets/esri/core/workers/chunks/40f2c8022fd583c43f42.js +0 -1
- package/assets/esri/core/workers/chunks/4f2bb248dd258b493663.js +0 -1
- package/assets/esri/core/workers/chunks/5295e685ae839087c568.js +0 -1
- package/assets/esri/core/workers/chunks/54b115ecf446b4095d3e.js +0 -1
- package/assets/esri/core/workers/chunks/5a536de1ecae424bad05.js +0 -1
- package/assets/esri/core/workers/chunks/7ca9230681d05ef89059.js +0 -1
- package/assets/esri/core/workers/chunks/8196ff250c0de00104f7.js +0 -1
- package/assets/esri/core/workers/chunks/840c02610d845114ace7.js +0 -1
- package/assets/esri/core/workers/chunks/a4228101f709f0bb9a3d.js +0 -1
- package/assets/esri/core/workers/chunks/be883ebdbaf11647b718.js +0 -1
- package/assets/esri/core/workers/chunks/d374d2a1487faee3672d.js +0 -1
- package/assets/esri/core/workers/chunks/dbdca19978fbee8dc106.js +0 -1
- package/assets/esri/core/workers/chunks/ffd28a9b1d8db3a731f4.js +0 -1
- package/chunks/SingleHighlightApply.glsl.js +0 -32
- package/views/3d/webgl-engine/core/shaderLibrary/attributes/PositionAttribute.glsl.js +0 -5
- package/views/3d/webgl-engine/effects/highlight/SingleHighlightApplyTechnique.js +0 -5
- package/views/3d/webgl-engine/effects/highlight/SingleHighlightBlurTechnique.js +0 -5
- package/views/3d/webgl-engine/shaders/SingleHighlightApply.glsl.js +0 -5
|
@@ -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{earth as e,mars as o,moon as r}from"../geometry/support/Ellipsoid.js";import{OverlayContent as a}from"../views/3d/terrain/OverlayContent.js";import{IntegratedMeshMode as i}from"../views/3d/webgl-engine/collections/Component/Material/ComponentTechniqueConfiguration.js";import{ComponentData as
|
|
5
|
+
import{earth as e,mars as o,moon as r}from"../geometry/support/Ellipsoid.js";import{OverlayContent as a}from"../views/3d/terrain/OverlayContent.js";import{IntegratedMeshMode as i}from"../views/3d/webgl-engine/collections/Component/Material/ComponentTechniqueConfiguration.js";import{ComponentData as t,ComponentDataType as l}from"../views/3d/webgl-engine/collections/Component/Material/shader/ComponentData.glsl.js";import{VertexDiscardMode as n}from"../views/3d/webgl-engine/collections/Component/Material/shader/VertexDiscardMode.js";import{ForwardLinearDepth as d}from"../views/3d/webgl-engine/core/shaderLibrary/ForwardLinearDepth.glsl.js";import{ShaderOutput as s,isColorOrColorEmission as g}from"../views/3d/webgl-engine/core/shaderLibrary/ShaderOutput.js";import{SlicePass as m}from"../views/3d/webgl-engine/core/shaderLibrary/Slice.glsl.js";import{TextureCoordinateAttribute as c}from"../views/3d/webgl-engine/core/shaderLibrary/attributes/TextureCoordinateAttribute.glsl.js";import{VertexColor as v}from"../views/3d/webgl-engine/core/shaderLibrary/attributes/VertexColor.glsl.js";import{VertexNormal as u}from"../views/3d/webgl-engine/core/shaderLibrary/attributes/VertexNormal.glsl.js";import{VertexPosition as h}from"../views/3d/webgl-engine/core/shaderLibrary/attributes/VertexPosition.glsl.js";import{OutputDepth as w}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{computeFragmentNormals as b}from"../views/3d/webgl-engine/core/shaderLibrary/shading/ComputeFragmentNormals.glsl.js";import{ComputeMaterialColor as C}from"../views/3d/webgl-engine/core/shaderLibrary/shading/ComputeMaterialColor.glsl.js";import{ComputeNormalTexture as f}from"../views/3d/webgl-engine/core/shaderLibrary/shading/ComputeNormalTexture.glsl.js";import{EvaluateSceneLighting as y,addLightingGlobalFactor as x}from"../views/3d/webgl-engine/core/shaderLibrary/shading/EvaluateSceneLighting.glsl.js";import{addMainLightIntensity as L}from"../views/3d/webgl-engine/core/shaderLibrary/shading/MainLighting.glsl.js";import{PBRMode as j,PhysicallyBasedRenderingParameters as O}from"../views/3d/webgl-engine/core/shaderLibrary/shading/PhysicallyBasedRenderingParameters.glsl.js";import{ReadBaseColorTexture as S}from"../views/3d/webgl-engine/core/shaderLibrary/shading/ReadBaseColorTexture.glsl.js";import{ReadShadowMapPass as M}from"../views/3d/webgl-engine/core/shaderLibrary/shading/ReadShadowMap.glsl.js";import{terrainDepthTest as N}from"../views/3d/webgl-engine/core/shaderLibrary/shading/TerrainDepthTest.glsl.js";import{OverlayIM as T,getIMColorTexture as $}from"../views/3d/webgl-engine/core/shaderLibrary/terrain/Overlay.glsl.js";import{DiscardOrAdjustAlphaDraw as A}from"../views/3d/webgl-engine/core/shaderLibrary/util/DiscardOrAdjustAlpha.glsl.js";import{EllipsoidMode as D}from"../views/3d/webgl-engine/core/shaderLibrary/util/EllipsoidMode.js";import{If as W,glsl as P}from"../views/3d/webgl-engine/core/shaderModules/glsl.js";import{Texture2DBindUniform as B}from"../views/3d/webgl-engine/core/shaderModules/Texture2DBindUniform.js";import{Texture2DPassUniform as R}from"../views/3d/webgl-engine/core/shaderModules/Texture2DPassUniform.js";import{outputColorHighlightOID as z}from"../views/3d/webgl-engine/shaders/OutputColorHighlightOID.glsl.js";import{ShaderBuilder as E}from"../views/webgl/ShaderBuilder.js";import{alphaCutoff as I}from"../webscene/support/AlphaCutoff.js";function V(V){const F=new E,{vertex:H,fragment:_}=F;F.include(h,V),F.include(u,V),F.include(v,V),F.include(c,V),F.include(d,V),F.include(t,V),F.include(A,V),_.include(m,V),F.include(S,V),F.include(N,V);const{output:G,pbrMode:k,hasNormalTexture:q,snowCover:U,receiveShadows:J,spherical:K,ellipsoidMode:Q}=V,X=k===j.Normal||k===j.Schematic;X&&(F.include(O,V),q&&F.include(f,V));const Y=G===s.Shadow||G===s.ShadowHighlight||G===s.ShadowExcludeHighlight,Z=Y&&V.componentData===l.Varying,ee=V.integratedMeshMode===i.ColorOverlay||V.integratedMeshMode===i.ColorOverlayWithWater;if(ee){F.include(y,V),F.include(T,V);const a=Q===D.Earth,i=Q===D.Earth,t=a?e.radius:i?o.radius:r.radius;H.code.add(`\n ${W(K,`const float invRadius = ${P.float(1/t)};`)}\n vec2 projectOverlay(vec3 pos) { return pos.xy ${W(K,"/ (1.0 + invRadius * pos.z);")}; }`)}const oe=ee&&g(G)&&k===j.WaterOnIntegratedMesh;oe&&(F.varyings.add("tbnTangent","vec3"),F.varyings.add("tbnBiTangent","vec3"),F.varyings.add("groundNormal","vec3"));const re=V.vertexDiscardMode===n.None,ae=V.vertexDiscardMode===n.Opaque,ie=1-1/255;if(H.main.add(P`
|
|
6
6
|
bool castShadows;
|
|
7
7
|
vec4 externalColor = forwardExternalColor(castShadows);
|
|
8
8
|
${W(Z,"if(!castShadows) { gl_Position = vec4(vec3(1e38), 1.0); return; }")}
|
|
@@ -27,12 +27,12 @@ import{earth as e,mars as o,moon as r}from"../geometry/support/Ellipsoid.js";imp
|
|
|
27
27
|
tbnBiTangent = vec3(0.0, 1.0, 0.0);`)}
|
|
28
28
|
${W(ee,"setOverlayVTC(projectOverlay(position));")}
|
|
29
29
|
|
|
30
|
-
if (externalColor.a < ${P.float(
|
|
30
|
+
if (externalColor.a < ${P.float(I)}) {
|
|
31
31
|
// Discard this vertex
|
|
32
32
|
gl_Position = vec4(1e38, 1e38, 1e38, 1.0);
|
|
33
33
|
return;
|
|
34
34
|
}
|
|
35
|
-
`),g(G))return
|
|
35
|
+
`),g(G))return F.include(C,V),F.include(b,V),F.include(y,V),F.include(z,V),J&&F.include(M,V),_.code.add(P`
|
|
36
36
|
float evaluateShadow() {
|
|
37
37
|
return ${J?"readShadowMap(vPositionWorldCameraRelative, linearDepth)":"0.0"};
|
|
38
38
|
}`),ee&&_.uniforms.add(new R("ovColorTex",((e,o)=>$(e,o)))),_.main.add(P`
|
|
@@ -94,15 +94,14 @@ import{earth as e,mars as o,moon as r}from"../geometry/support/Ellipsoid.js";imp
|
|
|
94
94
|
// un-gamma the ground color to mix in linear space
|
|
95
95
|
shadedColor = mix(shadedColor, waterColorNonLinear, waterColorLinear.w);
|
|
96
96
|
}`)}
|
|
97
|
-
`)),_.main.add("outputColorHighlightOID(shadedColor, vPositionWorldCameraRelative);"),
|
|
97
|
+
`)),_.main.add("outputColorHighlightOID(shadedColor, vPositionWorldCameraRelative);"),F;const te=G===s.Normal,le=G===s.ObjectAndLayerIdColor,ne=G===s.Highlight,de=Y||G===s.ViewshedShadow;return de&&F.include(w,V),te&&F.include(b,V),F.include(p,V),_.main.add(P`
|
|
98
98
|
discardBySlice(vPositionWorldCameraRelative);
|
|
99
99
|
|
|
100
100
|
vec4 textureColor = readBaseColorTexture();
|
|
101
101
|
discardOrAdjustAlpha(textureColor);
|
|
102
102
|
|
|
103
103
|
${W(de,"outputDepth(linearDepth);")}
|
|
104
|
-
${W(
|
|
105
|
-
${W(
|
|
104
|
+
${W(te,P`fragColor = vec4(vec3(0.5) + 0.5 * fragmentFaceNormalView, 1.0);`)}
|
|
105
|
+
${W(le,ee?"fragColor = getOverlayColorTexel();":"outputObjectAndLayerIdColor();")}
|
|
106
106
|
${W(ne,P`${W(ee,P`
|
|
107
|
-
|
|
108
|
-
calculateOcclusionAndOutputHighlightOverlay(overlayHighlightTexel);`,P`calculateOcclusionAndOutputHighlight();`)}`)}`),V}const V=Object.freeze(Object.defineProperty({__proto__:null,build:I},Symbol.toStringTag,{value:"Module"}));export{V as C,I as b};
|
|
107
|
+
calculateOcclusionAndOutputHighlightOverlay(getAllOverlayHighlightValuesEncoded());`,P`calculateOcclusionAndOutputHighlight();`)}`)}`),F}const F=Object.freeze(Object.defineProperty({__proto__:null,build:V},Symbol.toStringTag,{value:"Module"}));export{F as C,V as b};
|
|
@@ -2,10 +2,10 @@
|
|
|
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{ONES as e}from"../core/libs/gl-matrix-2/factories/vec4f64.js";import{ForwardLinearDepth as r}from"../views/3d/webgl-engine/core/shaderLibrary/ForwardLinearDepth.glsl.js";import{Offset as o}from"../views/3d/webgl-engine/core/shaderLibrary/Offset.glsl.js";import{isColorOrColorEmission as i}from"../views/3d/webgl-engine/core/shaderLibrary/ShaderOutput.js";import{SliceDraw as a}from"../views/3d/webgl-engine/core/shaderLibrary/Slice.glsl.js";import{Transform as l}from"../views/3d/webgl-engine/core/shaderLibrary/Transform.glsl.js";import{InstancedDoublePrecision as s}from"../views/3d/webgl-engine/core/shaderLibrary/attributes/InstancedDoublePrecision.glsl.js";import{NormalAttribute as n,NormalType as t}from"../views/3d/webgl-engine/core/shaderLibrary/attributes/NormalAttribute.glsl.js";import{
|
|
5
|
+
import{ONES as e}from"../core/libs/gl-matrix-2/factories/vec4f64.js";import{ForwardLinearDepth as r}from"../views/3d/webgl-engine/core/shaderLibrary/ForwardLinearDepth.glsl.js";import{Offset as o}from"../views/3d/webgl-engine/core/shaderLibrary/Offset.glsl.js";import{isColorOrColorEmission as i}from"../views/3d/webgl-engine/core/shaderLibrary/ShaderOutput.js";import{SliceDraw as a}from"../views/3d/webgl-engine/core/shaderLibrary/Slice.glsl.js";import{Transform as l}from"../views/3d/webgl-engine/core/shaderLibrary/Transform.glsl.js";import{InstancedDoublePrecision as s}from"../views/3d/webgl-engine/core/shaderLibrary/attributes/InstancedDoublePrecision.glsl.js";import{NormalAttribute as n,NormalType as t}from"../views/3d/webgl-engine/core/shaderLibrary/attributes/NormalAttribute.glsl.js";import{SymbolColor as d}from"../views/3d/webgl-engine/core/shaderLibrary/attributes/SymbolColor.glsl.js";import{TextureCoordinateAttribute as c}from"../views/3d/webgl-engine/core/shaderLibrary/attributes/TextureCoordinateAttribute.glsl.js";import{VertexColor as m}from"../views/3d/webgl-engine/core/shaderLibrary/attributes/VertexColor.glsl.js";import{VertexNormal as g}from"../views/3d/webgl-engine/core/shaderLibrary/attributes/VertexNormal.glsl.js";import{VerticalOffset as v}from"../views/3d/webgl-engine/core/shaderLibrary/attributes/VerticalOffset.glsl.js";import{DefaultMaterialAuxiliaryPasses as u}from"../views/3d/webgl-engine/core/shaderLibrary/default/DefaultMaterialAuxiliaryPasses.glsl.js";import{ComputeNormalTexture as b}from"../views/3d/webgl-engine/core/shaderLibrary/shading/ComputeNormalTexture.glsl.js";import{EvaluateAmbientOcclusion as w}from"../views/3d/webgl-engine/core/shaderLibrary/shading/EvaluateAmbientOcclusion.glsl.js";import{EvaluateSceneLighting as h,addAmbientBoostFactor as p,addLightingGlobalFactor as f}from"../views/3d/webgl-engine/core/shaderLibrary/shading/EvaluateSceneLighting.glsl.js";import{addMainLightIntensity as x}from"../views/3d/webgl-engine/core/shaderLibrary/shading/MainLighting.glsl.js";import{Normals as y}from"../views/3d/webgl-engine/core/shaderLibrary/shading/Normals.glsl.js";import{PhysicallyBasedRendering as L}from"../views/3d/webgl-engine/core/shaderLibrary/shading/PhysicallyBasedRendering.glsl.js";import{PhysicallyBasedRenderingParameters as C,PBRMode as j}from"../views/3d/webgl-engine/core/shaderLibrary/shading/PhysicallyBasedRenderingParameters.glsl.js";import{ReadShadowMapPass as P,ReadShadowMapDraw as O}from"../views/3d/webgl-engine/core/shaderLibrary/shading/ReadShadowMap.glsl.js";import{terrainDepthTest as N}from"../views/3d/webgl-engine/core/shaderLibrary/shading/TerrainDepthTest.glsl.js";import{colorTextureUV as S,normalTextureUV as T,emissiveTextureUV as V,occlusionTextureUV as A,metallicRoughnessTextureUV as M}from"../views/3d/webgl-engine/core/shaderLibrary/shading/TextureTransformUV.glsl.js";import{VisualVariables as $}from"../views/3d/webgl-engine/core/shaderLibrary/shading/VisualVariables.glsl.js";import{DiscardOrAdjustAlphaPass as D}from"../views/3d/webgl-engine/core/shaderLibrary/util/DiscardOrAdjustAlpha.glsl.js";import{MixExternalColor as E}from"../views/3d/webgl-engine/core/shaderLibrary/util/MixExternalColor.glsl.js";import{addProjViewLocalOrigin as I,addCameraPosition as U}from"../views/3d/webgl-engine/core/shaderLibrary/util/View.glsl.js";import{Float3PassUniform as B}from"../views/3d/webgl-engine/core/shaderModules/Float3PassUniform.js";import{Float4PassUniform as F}from"../views/3d/webgl-engine/core/shaderModules/Float4PassUniform.js";import{FloatPassUniform as _}from"../views/3d/webgl-engine/core/shaderModules/FloatPassUniform.js";import{glsl as R,If as z}from"../views/3d/webgl-engine/core/shaderModules/glsl.js";import{Texture2DPassUniform as G}from"../views/3d/webgl-engine/core/shaderModules/Texture2DPassUniform.js";import{VertexAttribute as W}from"../views/3d/webgl-engine/lib/VertexAttribute.js";import{outputColorHighlightOID as k}from"../views/3d/webgl-engine/shaders/OutputColorHighlightOID.glsl.js";import{ShaderBuilder as H}from"../views/webgl/ShaderBuilder.js";import{alphaCutoff as q}from"../webscene/support/AlphaCutoff.js";function J(J){const K=new H,{attributes:Q,vertex:X,fragment:Y,varyings:Z}=K,{output:ee,normalType:re,offsetBackfaces:oe,instancedColor:ie,spherical:ae,receiveShadows:le,snowCover:se,pbrMode:ne,textureAlphaPremultiplied:te,instancedDoublePrecision:de,hasVertexColors:ce,hasVertexTangents:me,hasColorTexture:ge,hasNormalTexture:ve,hasNormalTextureTransform:ue,hasColorTextureTransform:be}=J;if(I(X,J),Q.add(W.POSITION,"vec3"),Z.add("vpos","vec3",{invariant:!0}),K.include($,J),K.include(s,J),K.include(v,J),K.include(S,J),!i(ee))return K.include(u,J),K;K.include(T,J),K.include(V,J),K.include(A,J),K.include(M,J),U(X,J),K.include(n,J),K.include(l,J);const we=re===t.Attribute||re===t.Compressed;return we&&oe&&K.include(o),K.include(b,J),K.include(g,J),ie&&K.attributes.add(W.INSTANCECOLOR,"vec4"),Z.add("vPositionLocal","vec3"),K.include(c,J),K.include(r,J),K.include(d,J),K.include(m,J),X.uniforms.add(new F("externalColor",(r=>"ignore"===r.colorMixMode?e:r.externalColor))),Z.add("vcolorExt","vec4"),K.include(N,J),X.main.add(R`
|
|
6
6
|
forwardNormalizedVertexColor();
|
|
7
7
|
vcolorExt = externalColor;
|
|
8
|
-
${
|
|
8
|
+
${z(ie,"vcolorExt *= instanceColor * 0.003921568627451;")}
|
|
9
9
|
vcolorExt *= vvColor();
|
|
10
10
|
vcolorExt *= getSymbolColor();
|
|
11
11
|
forwardColorMixMode();
|
|
@@ -13,11 +13,11 @@ import{ONES as e}from"../core/libs/gl-matrix-2/factories/vec4f64.js";import{Forw
|
|
|
13
13
|
vpos = getVertexInLocalOriginSpace();
|
|
14
14
|
vPositionLocal = vpos - view[3].xyz;
|
|
15
15
|
vpos = subtractOrigin(vpos);
|
|
16
|
-
${
|
|
16
|
+
${z(we,"vNormalWorld = dpNormal(vvLocalNormal(normalModel()));")}
|
|
17
17
|
vpos = addVerticalOffset(vpos, localOrigin);
|
|
18
|
-
${
|
|
18
|
+
${z(me,"vTangent = dpTransformVertexTangent(tangent);")}
|
|
19
19
|
gl_Position = transformPosition(proj, view, vpos);
|
|
20
|
-
${
|
|
20
|
+
${z(we&&oe,"gl_Position = offsetBackfacingClipPosition(gl_Position, vpos, vNormalWorld, cameraPosition);")}
|
|
21
21
|
|
|
22
22
|
forwardViewPosDepth((view * vec4(vpos, 1.0)).xyz);
|
|
23
23
|
forwardLinearDepth();
|
|
@@ -28,18 +28,18 @@ import{ONES as e}from"../core/libs/gl-matrix-2/factories/vec4f64.js";import{Forw
|
|
|
28
28
|
forwardOcclusionUV();
|
|
29
29
|
forwardMetallicRoughnessUV();
|
|
30
30
|
|
|
31
|
-
if (vcolorExt.a < ${
|
|
31
|
+
if (vcolorExt.a < ${R.float(q)}) {
|
|
32
32
|
gl_Position = vec4(1e38, 1e38, 1e38, 1.0);
|
|
33
33
|
}
|
|
34
|
-
`),
|
|
34
|
+
`),K.include(h,J),K.include(w,J),K.include(D,J),K.include(de?P:O,J),K.fragment.include(a,J),K.include(k,J),U(Y,J),Y.uniforms.add(X.uniforms.get("localOrigin"),new B("ambient",(e=>e.ambient)),new B("diffuse",(e=>e.diffuse)),new _("opacity",(e=>e.opacity)),new _("layerOpacity",(e=>e.layerOpacity))),ge&&Y.uniforms.add(new G("tex",(e=>e.texture))),K.include(C,J),K.include(L,J),Y.include(E),K.include(y,J),p(Y),f(Y),x(Y),Y.main.add(R`
|
|
35
35
|
discardBySlice(vpos);
|
|
36
36
|
discardByTerrainDepth();
|
|
37
|
-
${ge?
|
|
38
|
-
vec4 texColor = texture(tex, ${
|
|
39
|
-
${
|
|
40
|
-
discardOrAdjustAlpha(texColor);`:
|
|
37
|
+
${ge?R`
|
|
38
|
+
vec4 texColor = texture(tex, ${be?"colorUV":"vuv0"});
|
|
39
|
+
${z(te,"texColor.rgb /= texColor.a;")}
|
|
40
|
+
discardOrAdjustAlpha(texColor);`:R`vec4 texColor = vec4(1.0);`}
|
|
41
41
|
shadingParams.viewDirection = normalize(vpos - cameraPosition);
|
|
42
|
-
${re===t.ScreenDerivative?
|
|
42
|
+
${re===t.ScreenDerivative?R`vec3 normal = screenDerivativeNormal(vPositionLocal);`:R`shadingParams.normalView = vNormalWorld;
|
|
43
43
|
vec3 normal = shadingNormal(shadingParams);`}
|
|
44
44
|
applyPBRFactors();
|
|
45
45
|
float ssao = evaluateAmbientOcclusionInverse() * getBakedOcclusion();
|
|
@@ -47,15 +47,15 @@ import{ONES as e}from"../core/libs/gl-matrix-2/factories/vec4f64.js";import{Forw
|
|
|
47
47
|
vec3 posWorld = vpos + localOrigin;
|
|
48
48
|
|
|
49
49
|
float additionalAmbientScale = additionalDirectedAmbientLight(posWorld);
|
|
50
|
-
float shadow = ${le?"max(lightingGlobalFactor * (1.0 - additionalAmbientScale), readShadowMap(vpos, linearDepth))":
|
|
50
|
+
float shadow = ${le?"max(lightingGlobalFactor * (1.0 - additionalAmbientScale), readShadowMap(vpos, linearDepth))":z(ae,"lightingGlobalFactor * (1.0 - additionalAmbientScale)","0.0")};
|
|
51
51
|
|
|
52
52
|
vec3 matColor = max(ambient, diffuse);
|
|
53
|
-
vec3 albedo = mixExternalColor(${
|
|
54
|
-
float opacity_ = layerOpacity * mixExternalOpacity(${
|
|
55
|
-
${ve?`mat3 tangentSpace = computeTangentSpace(${me?"normal":"normal, vpos, vuv0"});\n vec3 shadingNormal = computeTextureNormal(tangentSpace, ${
|
|
53
|
+
vec3 albedo = mixExternalColor(${z(ce,"vColor.rgb *")} matColor, texColor.rgb, vcolorExt.rgb, int(colorMixMode));
|
|
54
|
+
float opacity_ = layerOpacity * mixExternalOpacity(${z(ce,"vColor.a * ")} opacity, texColor.a, vcolorExt.a, int(colorMixMode));
|
|
55
|
+
${ve?`mat3 tangentSpace = computeTangentSpace(${me?"normal":"normal, vpos, vuv0"});\n vec3 shadingNormal = computeTextureNormal(tangentSpace, ${ue?"normalUV":"vuv0"});`:"vec3 shadingNormal = normal;"}
|
|
56
56
|
vec3 normalGround = ${ae?"normalize(posWorld);":"vec3(0.0, 0.0, 1.0);"}
|
|
57
57
|
|
|
58
|
-
${
|
|
58
|
+
${z(se,R`
|
|
59
59
|
float snow = smoothstep(0.5, 0.55, dot(normal, normalGround));
|
|
60
60
|
albedo = mix(albedo, vec3(1), snow);
|
|
61
61
|
shadingNormal = mix(shadingNormal, normal, snow);
|
|
@@ -63,11 +63,11 @@ import{ONES as e}from"../core/libs/gl-matrix-2/factories/vec4f64.js";import{Forw
|
|
|
63
63
|
|
|
64
64
|
vec3 additionalLight = ssao * mainLightIntensity * additionalAmbientScale * ambientBoostFactor * lightingGlobalFactor;
|
|
65
65
|
|
|
66
|
-
${ne===
|
|
66
|
+
${ne===j.Normal||ne===j.Schematic?R`
|
|
67
67
|
float additionalAmbientIrradiance = additionalAmbientIrradianceFactor * mainLightIntensity[2];
|
|
68
|
-
${
|
|
68
|
+
${z(se,R`mrr = mix(mrr, vec3(0.0, 1.0, 0.04), snow);`)}
|
|
69
69
|
vec4 emission = ${se?"mix(getEmissions(), vec4(0.0), snow)":"getEmissions()"};
|
|
70
|
-
vec3 shadedColor = evaluateSceneLightingPBR(shadingNormal, albedo, shadow, 1.0 - ssao, additionalLight, shadingParams.viewDirection, normalGround, mrr, emission, additionalAmbientIrradiance);`:
|
|
70
|
+
vec3 shadedColor = evaluateSceneLightingPBR(shadingNormal, albedo, shadow, 1.0 - ssao, additionalLight, shadingParams.viewDirection, normalGround, mrr, emission, additionalAmbientIrradiance);`:R`vec3 shadedColor = evaluateSceneLighting(shadingNormal, albedo, shadow, 1.0 - ssao, additionalLight);`}
|
|
71
71
|
vec4 finalColor = vec4(shadedColor, opacity_);
|
|
72
72
|
outputColorHighlightOID(finalColor, vpos);
|
|
73
|
-
`),
|
|
73
|
+
`),K}const K=Object.freeze(Object.defineProperty({__proto__:null,build:J},Symbol.toStringTag,{value:"Module"}));export{K as D,J as b};
|
|
@@ -2,136 +2,31 @@
|
|
|
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{HighlightCellGridScreenSpacePass as e}from"../views/3d/webgl-engine/core/shaderLibrary/HighlightCellGridScreenSpacePass.glsl.js";import{HighlightReadBitmap as
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
}
|
|
28
|
-
}
|
|
29
|
-
vec2 readTexel(ivec2 iuv, int du, int dv) {
|
|
30
|
-
return texelFetch(highlightTexture, iuv + ivec2(du, dv), 0).rg;
|
|
31
|
-
}
|
|
32
|
-
void readAndApplyTexel(ivec2 iuv, int du, int dv, float weight) {
|
|
33
|
-
vec2 texel = readTexel(iuv, du, dv);
|
|
34
|
-
applyTexel(texel, weight);
|
|
35
|
-
}
|
|
36
|
-
void readAndApply2TexelsU(ivec2 iuv, int du, int dv, float weight) {
|
|
37
|
-
readAndApplyTexel(iuv, -du, dv, weight);
|
|
38
|
-
readAndApplyTexel(iuv, +du, dv, weight);
|
|
39
|
-
}
|
|
40
|
-
float getWeight(int pixelDistance) {
|
|
41
|
-
float scaledDistance = float(pixelDistance) * pixelSampleScale / pixelRatio;
|
|
42
|
-
float d0f = floor(scaledDistance);
|
|
43
|
-
int d0 = int(d0f);
|
|
44
|
-
if (d0 >= 8){
|
|
45
|
-
return 0.0;
|
|
46
|
-
}
|
|
47
|
-
float w0 = pascal17[d0];
|
|
48
|
-
float w1 = pascal17[d0+1];
|
|
49
|
-
float f = scaledDistance - d0f;
|
|
50
|
-
return mix(w0, w1, f);
|
|
51
|
-
}`),c.main.add(t`vec2 highlightTextureSize = vec2(textureSize(highlightTexture,0));
|
|
52
|
-
ivec2 iuv = ivec2(sUV * highlightTextureSize);
|
|
53
|
-
vec2 centerTexel = texelFetch(highlightTexture, iuv, 0).rg;
|
|
54
|
-
bool outlinePossible = false;
|
|
55
|
-
if (vOutlinePossible > 0.0){
|
|
56
|
-
for (int highlightLevel=0; highlightLevel<= maxHighlightLevel; ++highlightLevel) {
|
|
57
|
-
if ((readLevelBits(centerTexel,highlightLevel) & 1u) == 0u) {
|
|
58
|
-
outlinePossible = true;
|
|
59
|
-
break;
|
|
60
|
-
}
|
|
61
|
-
}
|
|
62
|
-
}
|
|
63
|
-
if (outlinePossible) {
|
|
64
|
-
int maxPixelDistance = clamp(int(8.0 * pixelRatio / pixelSampleScale), 2, 16);
|
|
65
|
-
float weightSum = 0.0;
|
|
66
|
-
for(int y = 0; y <= maxPixelDistance; ++y) {
|
|
67
|
-
float w = getWeight(y);
|
|
68
|
-
weights[y] = w;
|
|
69
|
-
weightSum += w * (y == 0 ? 1.0 : 2.0);
|
|
70
|
-
}
|
|
71
|
-
for(int y = 0; y <= maxPixelDistance; ++y) {
|
|
72
|
-
weights[y] = weights[y] / weightSum;
|
|
73
|
-
}
|
|
74
|
-
float weight0 = weights[0];
|
|
75
|
-
applyTexel(centerTexel, weight0 * weight0);
|
|
76
|
-
for(int y = 0; y <= maxPixelDistance; y += 1) {
|
|
77
|
-
float yFactor = weights[y];
|
|
78
|
-
if (y != 0) {
|
|
79
|
-
float xFactor = weight0;
|
|
80
|
-
float weight = xFactor * yFactor;
|
|
81
|
-
if (weight > 0.0) {
|
|
82
|
-
readAndApplyTexel(iuv, 0, +y, weight);
|
|
83
|
-
readAndApplyTexel(iuv, 0, -y, weight);
|
|
84
|
-
}
|
|
85
|
-
}
|
|
86
|
-
for(int x = 1; x <= maxPixelDistance; x += 1) {
|
|
87
|
-
float xFactor = weights[x];
|
|
88
|
-
float weight = xFactor * yFactor;
|
|
89
|
-
if (weight > 0.0) {
|
|
90
|
-
readAndApply2TexelsU(iuv, x, +y, weight);
|
|
91
|
-
if (y != 0){
|
|
92
|
-
readAndApply2TexelsU(iuv, x, -y, weight);
|
|
93
|
-
}
|
|
94
|
-
}
|
|
95
|
-
}
|
|
96
|
-
}
|
|
97
|
-
} else {
|
|
98
|
-
applyTexel(centerTexel, 1.0);
|
|
99
|
-
}
|
|
100
|
-
int frontColorIndex = 999;
|
|
101
|
-
int maxColorIndex = 0;
|
|
102
|
-
for (int i = 0; i <= maxHighlightLevel; ++i) {
|
|
103
|
-
if (colorWeight[i] > 0.0){
|
|
104
|
-
frontColorIndex = min(frontColorIndex, i);
|
|
105
|
-
maxColorIndex = max(maxColorIndex, i);
|
|
106
|
-
}
|
|
107
|
-
}
|
|
108
|
-
if (frontColorIndex == 999){
|
|
109
|
-
fragColor = vec4(0.0);
|
|
110
|
-
return;
|
|
111
|
-
}
|
|
112
|
-
vec4 accumulatedColor = vec4(0.0);
|
|
113
|
-
for (int curColorIndex = frontColorIndex; curColorIndex <= maxColorIndex; ++curColorIndex) {
|
|
114
|
-
float curColorWeight = colorWeight[curColorIndex];
|
|
115
|
-
if (curColorWeight <= 0.01){
|
|
116
|
-
continue;
|
|
117
|
-
}
|
|
118
|
-
uint vc = readLevelBits(centerTexel, curColorIndex);
|
|
119
|
-
bool centerFilled = (vc & 1u) == 1u;
|
|
120
|
-
bool centerOccluded = (vc & 3u) == 3u;
|
|
121
|
-
float curColorOcclusion = colorOcclusion[curColorIndex];
|
|
122
|
-
bool occluded = centerFilled ? centerOccluded : curColorOcclusion > 0.5 * curColorWeight;
|
|
123
|
-
int colorChannel = centerFilled ? 0 : 1;
|
|
124
|
-
vec4 colorBase = texelFetch(highlightOptionsTexture, ivec2(curColorIndex, colorChannel), 0);
|
|
5
|
+
import{HighlightCellGridScreenSpacePass as e}from"../views/3d/webgl-engine/core/shaderLibrary/HighlightCellGridScreenSpacePass.glsl.js";import{HighlightReadBitmap as t}from"../views/3d/webgl-engine/core/shaderLibrary/HighlightReadBitmap.glsl.js";import{Float2DrawUniform as i}from"../views/3d/webgl-engine/core/shaderModules/Float2DrawUniform.js";import{FloatPassUniform as l}from"../views/3d/webgl-engine/core/shaderModules/FloatPassUniform.js";import{glsl as r}from"../views/3d/webgl-engine/core/shaderModules/glsl.js";import{IntegerPassUniform as o}from"../views/3d/webgl-engine/core/shaderModules/IntegerPassUniform.js";import{Texture2DPassUniform as n}from"../views/3d/webgl-engine/core/shaderModules/Texture2DPassUniform.js";import{UintTexture2DPassUniform as u}from"../views/3d/webgl-engine/core/shaderModules/UintTexture2DPassUniform.js";import{o as g,b as h}from"./HighlightDownsample.glsl.js";import{ShaderBuilder as s}from"../views/webgl/ShaderBuilder.js";function c(){const c=new s;c.include(e);const{fragment:a}=c;return a.uniforms.add(new n("blurInput",(e=>e.highlightBlurTexture)),new i("blurSize",(e=>e.blurSize)),new u("highlightTexture",(e=>e.highlightTexture)),new n("highlightOptionsTexture",(e=>e.highlightOptionsTexture)),new o("highlightLevel",(e=>e.highlightLevel)),new l("occludedIntensityFactor",(e=>e.occludedFactor))),a.constants.add("inner","float",1-(g-h)/g),c.include(t),a.main.add(r`vec2 highlightTextureSize = vec2(textureSize(highlightTexture,0));
|
|
6
|
+
vec2 uv = sUV;
|
|
7
|
+
vec2 center = texture(blurInput, uv).rg;
|
|
8
|
+
vec2 blurredHighlightValue = (vOutlinePossible == 0.0)
|
|
9
|
+
? center
|
|
10
|
+
: center * 0.204164
|
|
11
|
+
+ texture(blurInput, uv + blurSize * 1.407333).rg * 0.304005
|
|
12
|
+
+ texture(blurInput, uv - blurSize * 1.407333).rg * 0.304005
|
|
13
|
+
+ texture(blurInput, uv + blurSize * 3.294215).rg * 0.093913
|
|
14
|
+
+ texture(blurInput, uv - blurSize * 3.294215).rg * 0.093913;
|
|
15
|
+
float highlightIntensity = blurredHighlightValue.r;
|
|
16
|
+
float occlusionWeight = blurredHighlightValue.g;
|
|
17
|
+
if (highlightIntensity <= 0.01) {
|
|
18
|
+
discard;
|
|
19
|
+
}
|
|
20
|
+
vec4 fillColor = texelFetch(highlightOptionsTexture, ivec2(highlightLevel, 0), 0);
|
|
21
|
+
vec4 outlineColor = texelFetch(highlightOptionsTexture, ivec2(highlightLevel, 1), 0);
|
|
22
|
+
uvec2 centerTexel = texelFetch(highlightTexture, ivec2(uv * highlightTextureSize), 0).rg;
|
|
23
|
+
uint centerBits = readLevelBits(centerTexel, highlightLevel);
|
|
24
|
+
bool centerFilled = (centerBits & 1u) == 1u;
|
|
25
|
+
bool centerOccluded = (centerBits & 3u) == 3u;
|
|
26
|
+
bool occluded = centerOccluded || (0.5 * highlightIntensity < occlusionWeight);
|
|
125
27
|
float occlusionFactor = occluded ? occludedIntensityFactor : 1.0;
|
|
126
|
-
float outlineFactor = centerFilled ? 1.0 : smoothstep(0.0,
|
|
127
|
-
float
|
|
128
|
-
|
|
129
|
-
float
|
|
130
|
-
|
|
131
|
-
float alpha = clamp(a0 + a1 - a0 * a1, 0.0, 1.0);
|
|
132
|
-
if (alpha > 0.001){
|
|
133
|
-
vec3 blendedColor = ((1.0 - a1) * a0 * accumulatedColor.rgb + a1 * currentColor) / alpha;
|
|
134
|
-
accumulatedColor = vec4(blendedColor, alpha);
|
|
135
|
-
}
|
|
136
|
-
}
|
|
137
|
-
fragColor = accumulatedColor;`),a}const c=Object.freeze(Object.defineProperty({__proto__:null,build:a},Symbol.toStringTag,{value:"Module"}));export{c as H,a as b};
|
|
28
|
+
float outlineFactor = centerFilled ? 1.0 : smoothstep(0.0, inner, highlightIntensity);
|
|
29
|
+
float fillFactor = centerFilled ? 1.0 : 0.0;
|
|
30
|
+
vec4 baseColor = mix(outlineColor, fillColor, fillFactor);
|
|
31
|
+
float intensity = baseColor.a * occlusionFactor * outlineFactor;
|
|
32
|
+
fragColor = vec4(baseColor.rgb, intensity);`),c}const a=Object.freeze(Object.defineProperty({__proto__:null,build:c},Symbol.toStringTag,{value:"Module"}));export{a as H,c as b};
|
|
@@ -2,15 +2,15 @@
|
|
|
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{create as e}from"../core/libs/gl-matrix-2/factories/vec2f64.js";import{HighlightCellGridScreenSpacePass as r}from"../views/3d/webgl-engine/core/shaderLibrary/HighlightCellGridScreenSpacePass.glsl.js";import{Float2DrawUniform as t}from"../views/3d/webgl-engine/core/shaderModules/Float2DrawUniform.js";import{glsl as i}from"../views/3d/webgl-engine/core/shaderModules/glsl.js";import{Texture2DDrawUniform as
|
|
5
|
+
import{create as e}from"../core/libs/gl-matrix-2/factories/vec2f64.js";import{HighlightCellGridScreenSpacePass as r}from"../views/3d/webgl-engine/core/shaderLibrary/HighlightCellGridScreenSpacePass.glsl.js";import{Float2DrawUniform as t}from"../views/3d/webgl-engine/core/shaderModules/Float2DrawUniform.js";import{glsl as i}from"../views/3d/webgl-engine/core/shaderModules/glsl.js";import{Texture2DDrawUniform as s}from"../views/3d/webgl-engine/core/shaderModules/Texture2DDrawUniform.js";import{NoParameters as u}from"../views/webgl/NoParameters.js";import{ShaderBuilder as l}from"../views/webgl/ShaderBuilder.js";class o extends u{constructor(){super(...arguments),this.blurSize=e()}}function n(){const e=new l;return e.include(r),e.outputs.add("fragHighlight","vec2",0),e.fragment.uniforms.add(new t("blurSize",(e=>e.blurSize)),new s("blurInput",(e=>e.blurInput))).main.add(i`vec2 highlightTextureSize = vec2(textureSize(blurInput,0));
|
|
6
6
|
vec2 center = texture(blurInput, sUV).rg;
|
|
7
7
|
if (vOutlinePossible == 0.0) {
|
|
8
|
-
|
|
8
|
+
fragHighlight = center;
|
|
9
9
|
} else {
|
|
10
10
|
vec2 sum = center * 0.204164;
|
|
11
11
|
sum += texture(blurInput, sUV + blurSize * 1.407333).rg * 0.304005;
|
|
12
12
|
sum += texture(blurInput, sUV - blurSize * 1.407333).rg * 0.304005;
|
|
13
13
|
sum += texture(blurInput, sUV + blurSize * 3.294215).rg * 0.093913;
|
|
14
14
|
sum += texture(blurInput, sUV - blurSize * 3.294215).rg * 0.093913;
|
|
15
|
-
|
|
16
|
-
}`),e}const g=Object.freeze(Object.defineProperty({__proto__:null,
|
|
15
|
+
fragHighlight = sum;
|
|
16
|
+
}`),e}const g=Object.freeze(Object.defineProperty({__proto__:null,HighlightBlurDrawParameters:o,build:n},Symbol.toStringTag,{value:"Module"}));export{o as H,g as a,n as b};
|
|
@@ -2,10 +2,10 @@
|
|
|
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{ScreenSpacePass as e}from"../views/3d/webgl-engine/core/shaderLibrary/ScreenSpacePass.glsl.js";import{glsl as t}from"../views/3d/webgl-engine/core/shaderModules/glsl.js";import{
|
|
6
|
-
ivec2 cellBottomLeftCornerInput = ivec2(floor(gl_FragCoord.xy) * vec2(cellSize));
|
|
5
|
+
import{ScreenSpacePass as e}from"../views/3d/webgl-engine/core/shaderLibrary/ScreenSpacePass.glsl.js";import{glsl as t}from"../views/3d/webgl-engine/core/shaderModules/glsl.js";import{UintTexture2DPassUniform as i}from"../views/3d/webgl-engine/core/shaderModules/UintTexture2DPassUniform.js";import{NoParameters as l}from"../views/webgl/NoParameters.js";import{ShaderBuilder as r}from"../views/webgl/ShaderBuilder.js";class o extends l{}function c(){const l=new r,{outputs:o,fragment:c}=l;return l.include(e),c.uniforms.add(new i("highlightTexture",(e=>e.highlightTexture))),c.constants.add("outlineWidth","int",Math.ceil(n)),c.constants.add("cellSize","int",u),o.add("fragGrid","uvec2"),c.main.add(t`ivec2 inputTextureSize = textureSize(highlightTexture, 0);
|
|
6
|
+
ivec2 cellBottomLeftCornerInput = ivec2(ivec2(floor(gl_FragCoord.xy) * vec2(cellSize)));
|
|
7
7
|
ivec2 coordMid = cellBottomLeftCornerInput + ivec2(cellSize >> 1);
|
|
8
|
-
uvec2 centreTexel =
|
|
8
|
+
uvec2 centreTexel = texelFetch(highlightTexture, coordMid, 0).rg & uvec2(0x55u);
|
|
9
9
|
float marginSquare = float(outlineWidth*outlineWidth);
|
|
10
10
|
uvec2 outputValue = centreTexel & uvec2(0x55u);
|
|
11
11
|
for(int y = -outlineWidth; y <= cellSize + outlineWidth; y+=2) {
|
|
@@ -14,10 +14,10 @@ int xMargin = dy > 0 ? int(ceil(sqrt(marginSquare - float(dy*dy)))) : outlineWid
|
|
|
14
14
|
for(int x = -xMargin; x <= cellSize + xMargin; x+=2) {
|
|
15
15
|
ivec2 coord = cellBottomLeftCornerInput + ivec2(x, y);
|
|
16
16
|
uvec2[4] texels = uvec2[4] (
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
17
|
+
texelFetch(highlightTexture,coord+ivec2(0,0),0).rg & uvec2(0x55u),
|
|
18
|
+
texelFetch(highlightTexture,coord+ivec2(1,0),0).rg & uvec2(0x55u),
|
|
19
|
+
texelFetch(highlightTexture,coord+ivec2(0,1),0).rg & uvec2(0x55u),
|
|
20
|
+
texelFetch(highlightTexture,coord+ivec2(1,1),0).rg & uvec2(0x55u)
|
|
21
21
|
);
|
|
22
22
|
if (texels[0] == texels[1] && texels[1] == texels[2] && texels[2] == texels[3] && texels[3] == centreTexel) {
|
|
23
23
|
continue;
|
|
@@ -28,4 +28,4 @@ outputValue |= texels[i];
|
|
|
28
28
|
}
|
|
29
29
|
}
|
|
30
30
|
}
|
|
31
|
-
fragGrid =
|
|
31
|
+
fragGrid = outputValue;`),l}const u=32,n=9,s=.4,a=Object.freeze(Object.defineProperty({__proto__:null,HighlightDownsampleDrawParameters:o,blurSize:s,build:c,gridCellPixelSize:u,outlineSize:n},Symbol.toStringTag,{value:"Module"}));export{o as H,a,s as b,c,u as g,n as o};
|
|
@@ -2,8 +2,8 @@
|
|
|
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{HighlightCellGridScreenSpacePass as e}from"../views/3d/webgl-engine/core/shaderLibrary/HighlightCellGridScreenSpacePass.glsl.js";import{HighlightReadBitmap as i}from"../views/3d/webgl-engine/core/shaderLibrary/HighlightReadBitmap.glsl.js";import{glsl as r}from"../views/3d/webgl-engine/core/shaderModules/glsl.js";import{IntegerPassUniform as l}from"../views/3d/webgl-engine/core/shaderModules/IntegerPassUniform.js";import{
|
|
6
|
-
|
|
5
|
+
import{HighlightCellGridScreenSpacePass as e}from"../views/3d/webgl-engine/core/shaderLibrary/HighlightCellGridScreenSpacePass.glsl.js";import{HighlightReadBitmap as i}from"../views/3d/webgl-engine/core/shaderLibrary/HighlightReadBitmap.glsl.js";import{glsl as r}from"../views/3d/webgl-engine/core/shaderModules/glsl.js";import{IntegerPassUniform as l}from"../views/3d/webgl-engine/core/shaderModules/IntegerPassUniform.js";import{UintTexture2DPassUniform as g}from"../views/3d/webgl-engine/core/shaderModules/UintTexture2DPassUniform.js";import{ShaderBuilder as t}from"../views/webgl/ShaderBuilder.js";function s(){const s=new t;s.include(e),s.include(i);const{fragment:h}=s;return s.outputs.add("fragSingleHighlight","vec2",0),h.uniforms.add(new g("highlightTexture",(e=>e.highlightTexture)),new l("highlightLevel",(e=>e.highlightLevel))),h.main.add(r`ivec2 iuv = ivec2(gl_FragCoord.xy);
|
|
6
|
+
uvec2 inputTexel = texelFetch(highlightTexture, iuv, 0).rg;
|
|
7
7
|
uint bits = readLevelBits(inputTexel, highlightLevel);
|
|
8
8
|
bool hasHighlight = (bits & 1u) == 1u;
|
|
9
9
|
bool hasOccluded = (bits & 2u) == 2u;
|
package/chunks/Pattern.glsl.js
CHANGED
|
@@ -2,17 +2,17 @@
|
|
|
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 o}from"../views/3d/webgl-engine/core/shaderLibrary/Slice.glsl.js";import{Transform as r}from"../views/3d/webgl-engine/core/shaderLibrary/Transform.glsl.js";import{ObjectAndLayerIdColor as t}from"../views/3d/webgl-engine/core/shaderLibrary/attributes/ObjectAndLayerIdColor.glsl.js";import{VertexColor as a}from"../views/3d/webgl-engine/core/shaderLibrary/attributes/VertexColor.glsl.js";import{terrainDepthTest as i}from"../views/3d/webgl-engine/core/shaderLibrary/shading/TerrainDepthTest.glsl.js";import{VisualVariables as n}from"../views/3d/webgl-engine/core/shaderLibrary/shading/VisualVariables.glsl.js";import{ColorConversion as l}from"../views/3d/webgl-engine/core/shaderLibrary/util/ColorConversion.glsl.js";import{addProjViewLocalOrigin as c,addCameraPosition as d}from"../views/3d/webgl-engine/core/shaderLibrary/util/View.glsl.js";import{Float4PassUniform as s}from"../views/3d/webgl-engine/core/shaderModules/Float4PassUniform.js";import{FloatBindUniform as v}from"../views/3d/webgl-engine/core/shaderModules/FloatBindUniform.js";import{glsl as g}from"../views/3d/webgl-engine/core/shaderModules/glsl.js";import{VertexAttribute as
|
|
6
|
-
const mat2 rotate45 = mat2(${g.float(
|
|
7
|
-
${g.float(
|
|
8
|
-
`),
|
|
5
|
+
import{ShaderOutput as e}from"../views/3d/webgl-engine/core/shaderLibrary/ShaderOutput.js";import{SliceDraw as o}from"../views/3d/webgl-engine/core/shaderLibrary/Slice.glsl.js";import{Transform as r}from"../views/3d/webgl-engine/core/shaderLibrary/Transform.glsl.js";import{ObjectAndLayerIdColor as t}from"../views/3d/webgl-engine/core/shaderLibrary/attributes/ObjectAndLayerIdColor.glsl.js";import{VertexColor as a}from"../views/3d/webgl-engine/core/shaderLibrary/attributes/VertexColor.glsl.js";import{terrainDepthTest as i}from"../views/3d/webgl-engine/core/shaderLibrary/shading/TerrainDepthTest.glsl.js";import{VisualVariables as n}from"../views/3d/webgl-engine/core/shaderLibrary/shading/VisualVariables.glsl.js";import{ColorConversion as l}from"../views/3d/webgl-engine/core/shaderLibrary/util/ColorConversion.glsl.js";import{addProjViewLocalOrigin as c,addCameraPosition as d}from"../views/3d/webgl-engine/core/shaderLibrary/util/View.glsl.js";import{Float4PassUniform as s}from"../views/3d/webgl-engine/core/shaderModules/Float4PassUniform.js";import{FloatBindUniform as v}from"../views/3d/webgl-engine/core/shaderModules/FloatBindUniform.js";import{glsl as g,If as p}from"../views/3d/webgl-engine/core/shaderModules/glsl.js";import{VertexAttribute as m}from"../views/3d/webgl-engine/lib/VertexAttribute.js";import{Style as f}from"../views/3d/webgl-engine/materials/PatternStyle.js";import{outputColorHighlightOID as u}from"../views/3d/webgl-engine/shaders/OutputColorHighlightOID.glsl.js";import{ShaderBuilder as w}from"../views/webgl/ShaderBuilder.js";const b=.70710678118,h=b,y=.08715574274,S=10,j=1;function x(x){const T=new w,{vertex:P,fragment:R,attributes:V,varyings:D}=T,O=x.output===e.Highlight;c(P,x),T.include(r,x),T.include(a,x),T.include(n,x),T.include(t,x),T.fragment.include(o,x),T.include(u,x),T.include(i,x),x.draped?P.uniforms.add(new v("worldToScreenRatio",(e=>1/e.screenToPCSRatio))):V.add(m.BOUNDINGRECT,"mat3"),V.add(m.POSITION,"vec3"),V.add(m.UVMAPSPACE,"vec4"),x.vvColor&&V.add(m.COLORFEATUREATTRIBUTE,"float"),x.hasVertexColors||D.add("vColor","vec4"),D.add("vpos","vec3",{invariant:!0}),D.add("vuv","vec2"),P.uniforms.add(new s("uColor",(e=>e.color)));const A=x.style===f.ForwardDiagonal||x.style===f.BackwardDiagonal||x.style===f.DiagonalCross;return A&&P.code.add(g`
|
|
6
|
+
const mat2 rotate45 = mat2(${g.float(b)}, ${g.float(-.70710678118)},
|
|
7
|
+
${g.float(h)}, ${g.float(b)});
|
|
8
|
+
`),x.draped||(d(P,x),P.uniforms.add(new v("worldToScreenPerDistanceRatio",(e=>1/e.camera.perScreenPixelRatio))),P.code.add(g`vec3 projectPointToLineSegment(vec3 center, vec3 halfVector, vec3 point) {
|
|
9
9
|
float projectedLength = dot(halfVector, point - center) / dot(halfVector, halfVector);
|
|
10
10
|
return center + halfVector * clamp(projectedLength, -1.0, 1.0);
|
|
11
|
-
}`),
|
|
11
|
+
}`),P.code.add(g`vec3 intersectRayPlane(vec3 rayDir, vec3 rayOrigin, vec3 planeNormal, vec3 planePoint) {
|
|
12
12
|
float d = dot(planeNormal, planePoint);
|
|
13
13
|
float t = (d - dot(planeNormal, rayOrigin)) / dot(planeNormal, rayDir);
|
|
14
14
|
return rayOrigin + t * rayDir;
|
|
15
|
-
}`),
|
|
15
|
+
}`),P.code.add(g`
|
|
16
16
|
float boundingRectDistanceToCamera() {
|
|
17
17
|
vec3 center = vec3(boundingRect[0][0], boundingRect[0][1], boundingRect[0][2]);
|
|
18
18
|
vec3 halfU = vec3(boundingRect[1][0], boundingRect[1][1], boundingRect[1][2]);
|
|
@@ -22,7 +22,7 @@ return rayOrigin + t * rayDir;
|
|
|
22
22
|
vec3 viewDir = - vec3(view[0][2], view[1][2], view[2][2]);
|
|
23
23
|
|
|
24
24
|
float viewAngle = dot(viewDir, n);
|
|
25
|
-
float minViewAngle = ${g.float(
|
|
25
|
+
float minViewAngle = ${g.float(y)};
|
|
26
26
|
|
|
27
27
|
if (abs(viewAngle) < minViewAngle) {
|
|
28
28
|
// view direction is (almost) parallel to plane -> clamp it to min angle
|
|
@@ -42,15 +42,13 @@ return rayOrigin + t * rayDir;
|
|
|
42
42
|
|
|
43
43
|
return length(closestPoint - cameraPosition);
|
|
44
44
|
}
|
|
45
|
-
`)),
|
|
45
|
+
`)),P.code.add(g`
|
|
46
46
|
vec2 scaledUV() {
|
|
47
|
-
vec2 uv = uvMapSpace.xy ${
|
|
48
|
-
vec2 uvCellOrigin = uvMapSpace.zw ${
|
|
47
|
+
vec2 uv = uvMapSpace.xy ${p(A," * rotate45")};
|
|
48
|
+
vec2 uvCellOrigin = uvMapSpace.zw ${p(A," * rotate45")};
|
|
49
49
|
|
|
50
|
-
${
|
|
51
|
-
|
|
52
|
-
float worldToScreenRatio = worldToScreenPerDistanceRatio / distanceToCamera;
|
|
53
|
-
`}
|
|
50
|
+
${p(!x.draped,g`float distanceToCamera = boundingRectDistanceToCamera();
|
|
51
|
+
float worldToScreenRatio = worldToScreenPerDistanceRatio / distanceToCamera;`)}
|
|
54
52
|
|
|
55
53
|
// Logarithmically discretize ratio to avoid jittering
|
|
56
54
|
float step = 0.1;
|
|
@@ -58,21 +56,21 @@ return rayOrigin + t * rayDir;
|
|
|
58
56
|
discreteWorldToScreenRatio = ceil(discreteWorldToScreenRatio / step) * step;
|
|
59
57
|
discreteWorldToScreenRatio = exp(discreteWorldToScreenRatio);
|
|
60
58
|
|
|
61
|
-
vec2 uvOffset = mod(uvCellOrigin * discreteWorldToScreenRatio, ${g.float(
|
|
59
|
+
vec2 uvOffset = mod(uvCellOrigin * discreteWorldToScreenRatio, ${g.float(S)});
|
|
62
60
|
return uvOffset + (uv * discreteWorldToScreenRatio);
|
|
63
61
|
}
|
|
64
|
-
`),
|
|
62
|
+
`),P.main.add(g`
|
|
65
63
|
vuv = scaledUV();
|
|
66
64
|
vpos = position;
|
|
67
65
|
forwardViewPosDepth((view * vec4(vpos, 1.0)).xyz);
|
|
68
66
|
forwardNormalizedVertexColor();
|
|
69
67
|
forwardObjectAndLayerIdColor();
|
|
70
|
-
${
|
|
68
|
+
${x.hasVertexColors?"vColor *= uColor;":x.vvColor?"vColor = uColor * interpolateVVColor(colorFeatureAttribute);":"vColor = uColor;"}
|
|
71
69
|
gl_Position = transformPosition(proj, view, vpos);
|
|
72
|
-
`),
|
|
73
|
-
const float lineWidth = ${g.float(
|
|
74
|
-
const float spacing = ${g.float(
|
|
75
|
-
const float spacingINV = ${g.float(1/
|
|
70
|
+
`),R.include(l),x.draped&&R.uniforms.add(new v("texelSize",(e=>1/e.camera.pixelRatio))),O||(R.code.add(g`
|
|
71
|
+
const float lineWidth = ${g.float(j)};
|
|
72
|
+
const float spacing = ${g.float(S)};
|
|
73
|
+
const float spacingINV = ${g.float(1/S)};
|
|
76
74
|
|
|
77
75
|
float coverage(float p, float txlSize) {
|
|
78
76
|
p = mod(p, spacing);
|
|
@@ -88,7 +86,7 @@ return rayOrigin + t * rayDir;
|
|
|
88
86
|
|
|
89
87
|
return coverage / txlSize;
|
|
90
88
|
}
|
|
91
|
-
`),
|
|
89
|
+
`),x.draped||R.code.add(g`const int maxSamples = 5;
|
|
92
90
|
float sampleAA(float p) {
|
|
93
91
|
vec2 dxdy = abs(vec2(dFdx(p), dFdy(p)));
|
|
94
92
|
float fwidth = dxdy.x + dxdy.y;
|
|
@@ -109,10 +107,10 @@ accumulator += coverage(p + step.x * dxdy.x + step.y * dxdy.y, fwidth);
|
|
|
109
107
|
}
|
|
110
108
|
accumulator /= float(samples.x * samples.y);
|
|
111
109
|
return accumulator;
|
|
112
|
-
}`)),
|
|
110
|
+
}`)),R.main.add(g`
|
|
113
111
|
discardBySlice(vpos);
|
|
114
112
|
discardByTerrainDepth();
|
|
115
113
|
vec4 color = vColor;
|
|
116
|
-
${
|
|
114
|
+
${p(!O,g`color.a *= ${C(x)};`)}
|
|
117
115
|
outputColorHighlightOID(color, vpos);
|
|
118
|
-
`),
|
|
116
|
+
`),T}function C(e){function o(o){return e.draped?g`coverage(vuv.${o}, texelSize)`:g`sampleAA(vuv.${o})`}switch(e.style){case f.ForwardDiagonal:case f.Horizontal:return o("y");case f.BackwardDiagonal:case f.Vertical:return o("x");case f.DiagonalCross:case f.Cross:return g`1.0 - (1.0 - ${o("x")}) * (1.0 - ${o("y")})`;default:return"0.0"}}const T=Object.freeze(Object.defineProperty({__proto__:null,build:x},Symbol.toStringTag,{value:"Module"}));export{T as P,x as b};
|