@arcgis/core
Version:
ArcGIS Maps SDK for JavaScript: A complete 2D and 3D mapping and data visualization API
3 lines (2 loc) • 2.05 kB
JavaScript
/* COPYRIGHT Esri - https://js.arcgis.com/5.0.8/LICENSE.txt */
import{__decorate as t,__param as e}from"tslib";import{location as i,uniform as r,input as o}from"../../GraphShaderModule.js";import{ifElse as s,Float as n,Vec2 as a,greaterThan as d,cond as l,equal as p,sqrt as m,dot as c,abs as u,max as v,clamp as f,mix as h,texture2D as x,Vec4 as g}from"../../graph/glsl.js";import{gradientFillMethods as y,bitset as w}from"../fill/gradientFillConstants.js";import{BaseHittestVertexInput as b,FeatureFragmentInput as S}from"./AFeatureShader.js";import{FillShader as j,FillVertexInput as z}from"./FillShader.js";import{MosaicInfo as F}from"./MosaicInfo.js";import{getBitBool as M,getBit as G,oneMinus as I}from"./utils.js";class P extends z{}t([i(5,g)],P.prototype,"tlbr",void 0),t([i(6,a)],P.prototype,"relativePosition",void 0),t([i(7,n)],P.prototype,"gradientMethod",void 0),t([i(8,a)],P.prototype,"relativeGradientSize",void 0);class D extends S{}class A extends j{constructor(){super(...arguments),this.type="GradientFillShader"}vertex(t,e){const{tlbr:i,relativePosition:r,gradientMethod:o,relativeGradientSize:a}=t,d=s(M(t.bitset,w.isAbsolute),this.view.displayZoomFactor,new n(1));return{...super.vertex(t,e),tlbr:i,relativePosition:r,gradientMethod:o,gradientSize:a.multiply(d),isDiscrete:G(t.bitset,w.isDiscrete)}}fragment(t){const{tlbr:e,relativePosition:i,gradientMethod:r,gradientSize:o,isDiscrete:g}=t,w=s(d(g,new n(.5)),o.subtract(1),new a(0)),b=l([p(r,new n(y.rectangular)),()=>{const t=u(i).add(w).divide(o);return I(v(t.x,t.y))}],[p(r,new n(y.circular)),I(m(c(i,i)).add(w.x).divide(o.x))],[!0,I(i.x.add(w.x).divide(o.x))]),S=new a(f(b,new n(0),new n(1)),.5),j=h(e.xy,e.zw,S).divide(this.mosaicInfo.size),z=x(this.mosaicInfo.texture,j),F=t.color.a;return this.getFragmentOutput(z.multiply(F),t,new n(0))}}t([r(F)],A.prototype,"mosaicInfo",void 0),t([e(0,o(P)),e(1,o(b))],A.prototype,"vertex",null),t([e(0,o(D))],A.prototype,"fragment",null);export{D as GradientFillFragmentInput,A as GradientFillShader,P as GradientFillVertexInput};