@arcgis/core
Version:
ArcGIS Maps SDK for JavaScript: A complete 2D and 3D mapping and data visualization API
6 lines (5 loc) • 1.19 kB
JavaScript
/*
All material copyright ESRI, All Rights Reserved, unless otherwise specified.
See https://js.arcgis.com/4.33/esri/copyright.txt for details.
*/
import{equals as t}from"../../../../core/arrayUtils.js";import{fromValues as i}from"../../../../core/libs/gl-matrix-2/factories/vec2f64.js";import{projectAndScale as s}from"../../../../core/libs/gl-matrix-2/math/vec2.js";import{AccumulationType as a}from"./UpdateVertices.js";class c{constructor(t,s,c,o,r=a.CUMULATIVE){this.origin=t,this.axis1=s,this.factor1=c,this.factor2=o,this._accumulationType=r,this.axis2=i(s[1],-s[0])}_scale(t,i,a){s(t.pos,t.pos,this.origin,this.axis1,i),s(t.pos,t.pos,this.origin,this.axis2,a)}apply(t){this._scale(t,this.factor1,this.factor2)}undo(t){this._scale(t,1/this.factor1,1/this.factor2)}canAccumulate(i){return i instanceof c&&t(this.origin,i.origin)&&t(this.axis1,i.axis1)}accumulate(t,i){i._accumulationType===a.REPLACE?this._scale(t,i.factor1/this.factor1,i.factor2/this.factor2):this._scale(t,i.factor1,i.factor2)}accumulateParams(t){const i=t._accumulationType===a.REPLACE;this.factor1=i?t.factor1:this.factor1*t.factor1,this.factor2=i?t.factor2:this.factor2*t.factor2}}export{c as ScaleVertex};