// All material copyright Esri, All Rights Reserved, unless otherwise specified. // See https://js.arcgis.com/4.30/esri/copyright.txt for details. //>>built define("exports ../../../geometry ../../../Viewpoint ../../../core/mathUtils ../../../geometry/support/pointUtils ../viewpointUtils ../../../geometry/Point".split(" "),function(e,r,h,d,k,f,l){class m{constructor(a){this._view=a;this.viewpoint=new h({targetGeometry:new l,scale:0,rotation:0})}get view(){return this._view}get size(){const [a,b]=this._view.size;return Math.sqrt(a*a+b*b)}get scale(){return this.viewpoint.scale}get rotation(){return this.viewpoint.rotation}get center(){return this.viewpoint.targetGeometry}get scaleToResolutionFactor(){return f.getScaleToResolutionFactor(this.center.spatialReference)}pixelsPerPanAtZoom(a){return 1/ (a*this.scaleToResolutionFactor)}zoomAtPixelsPerPan(a){return 1/(a*this.scaleToResolutionFactor)}pixelsPerRotateAtZoom(a){return this.size/2}compareTo(a,b){b.pan=k.distance(this.center,a.center);let c=Math.abs(a.rotation-this.rotation);b.rotate=d.deg2rad(180<=c?360-c:c);b.sourceZoom=this.scale;b.targetZoom=a.scale}interpolate(a,b,c){const {pan:g,rotate:n,zoom:p,zoomOffset:q}=c;({center:c}=this);c.spatialReference=a.center.spatialReference;c.x=d.lerp(a.center.x,b.center.x,g);c.y=d.lerp(a.center.y, b.center.y,g);this.viewpoint.scale=d.lerp(a.scale,b.scale+q,p);a=a.rotation;b=b.rotation;180<=Math.abs(b-a)&&(a+=360*(a