UNPKG

@arcgis/core

Version:

ArcGIS Maps SDK for JavaScript: A complete 2D and 3D mapping and data visualization API

6 lines (5 loc) 4.33 kB
/* All material copyright ESRI, All Rights Reserved, unless otherwise specified. See https://js.arcgis.com/4.32/esri/copyright.txt for details. */ import{_ as i}from"../../../../../../../chunks/tslib.es6.js";import{animationDebugFlags as t}from"../../../../../../../symbols/cim/animationDebugFlags.js";import{generateVirtualMachineSource as o}from"../../../animations/instructions.js";import{location as e,uniform as a,option as r}from"../../GraphShaderModule.js";import{sin as l,cos as s,negate as n,Float as m,Mat3 as u,Vec3 as p,lessThanEqual as d,cond as c,ifElse as y,equal as f,texture2D as h,clamp as S,abs as b,Vec2 as g,block as V,Vec4 as v}from"../../graph/glsl.js";import{AnimationUniformInfo as w}from"./AnimationUniformInfo.js";import{FeatureVertexInput as x,FeatureFragmentInput as j,AFeatureShader as z}from"../shaders/AFeatureShader.js";import{softEdgeRatio as T}from"../shaders/constants.js";import{MosaicInfo as _}from"../shaders/MosaicInfo.js";import{rgba2float as I}from"../shaders/utils.js";import{VisualVariableColor as C}from"../shaders/VisualVariableColor.js";import{VisualVariableOpacity as O}from"../shaders/VisualVariableOpacity.js";import{VisualVariableRotation as M}from"../shaders/VisualVariableRotation.js";import{VisualVariableSizeMinMaxValue as P}from"../shaders/VisualVariableSizeMinMaxValue.js";import{VisualVariableSizeScaleStops as D}from"../shaders/VisualVariableSizeScaleStops.js";import{VisualVariableSizeStops as F}from"../shaders/VisualVariableSizeStops.js";import{VisualVariableSizeUnitValue as R}from"../shaders/VisualVariableSizeUnitValue.js";import{getVisualVariableAngle as A}from"../shaders/vvUtils.js";class L extends x{}i([e(3,v)],L.prototype,"animationPointerAndBaseSizeAndReferenceSize",void 0),i([e(4,g)],L.prototype,"zoomRange",void 0);class U extends j{}class E extends z{_getScreenPosition(i){const{pos:t,translation:o,rotation:e,scale:a,offset:r,id:d,vvScale:c}=i,y=A(this,d).multiply(Math.PI/180),f=o.x.multiply(4/3),h=o.y.multiply(-1).multiply(4/3),S=l(y),b=s(y),g=b.multiply(f).add(n(S).multiply(h)),V=S.multiply(f).add(b.multiply(h)),v=l(e.subtract(y)),w=s(e.subtract(y)),x=new m(0),j=new m(1),{pixelRatio:z}=this.animationInfo,T=new u(j,x,x,x,j,x,g.multiply(z),V.multiply(z),j),_=new u(w,v.multiply(-1),x,v,w,x,0,0,j),I=a.multiply(c).multiply(z).multiply(4/3),C=_.multiply(I),O=this.animationInfo.toScreen.multiply(new p(t,1)),M=T.multiply(O).xy,P=C.multiply(new p(r,0)).xy;return M.add(P)}_clip(i,o){let e=super.clip(i,o);const a=d(this._getLocalTimeOrigin(i),new m(0));return t.forceGlobalTimeOrigin||(e=e.add(c([a,()=>new m(2)],[!0,()=>new m(0)]))),e}_getLocalTimeOrigin(i){return this.storage.getLocalTimeOrigin(i)}_toNdc(i){return this.animationInfo.toNdc.multiply(new p(i,1)).xy}_getEvalParams(i,t){const{globalTime:o,animationTextureSize:e,animationTexture:a}=this.animationInfo;return{globalTime:o,localTimeOrigin:this._getLocalTimeOrigin(i.id),animationTextureSize:e,animationTexture:a,pixelDimensions:t}}_getColor(i,t){return y(f(t.isSDF,new m(1)),this._getSDFColor(i,t),this._getSpriteColor(i,t))}_getSpriteColor(i,t){return h(this.mosaicInfo.texture,i).multiply(t.color)}_getSDFColor(i,t){const o=h(this.mosaicInfo.texture,i),e=new m(.5).subtract(I(o)).multiply(t.distanceToPx).multiply(T),a=S(new m(.5).subtract(e),new m(0),new m(1)),r=t.color.multiply(a),l=t.outlineSize.multiply(.5),s=b(e).subtract(l),n=S(new m(.5).subtract(s),new m(0),new m(1)),u=t.outlineColor.multiply(n);return new m(1).subtract(u.a).multiply(r).add(u)}}function G(i,t,e){const a=i.add(new g(t,0)),r=h(e.animationTexture,a.add(.5).divide(e.animationTextureSize)).xy;return i=i.add(r),V({animationPointer:i,...e},v,null,(i=>{const{out:t}=i;if(!t)throw new Error("out is null");return o({...i,out:t})}))}i([a(_)],E.prototype,"mosaicInfo",void 0),i([a(w)],E.prototype,"animationInfo",void 0),i([r(C)],E.prototype,"visualVariableColor",void 0),i([r(O)],E.prototype,"visualVariableOpacity",void 0),i([r(P)],E.prototype,"visualVariableSizeMinMaxValue",void 0),i([r(D)],E.prototype,"visualVariableSizeScaleStops",void 0),i([r(F)],E.prototype,"visualVariableSizeStops",void 0),i([r(R)],E.prototype,"visualVariableSizeUnitValue",void 0),i([r(M)],E.prototype,"visualVariableRotation",void 0);export{U as AAnimatedFragmentInput,E as AAnimatedShader,L as AAnimatedVertexInput,G as getValue};