define(["exports","./Matrix2-fc7e9822","./defaultValue-94c3e563","./RuntimeError-c581ca93","./Transforms-3ac41eb6","./ComponentDatatype-4a60b8d6"],(function(t,n,a,e,o,r){"use strict";const s=Math.cos,i=Math.sin,c=Math.sqrt,h={computePosition:function(t,n,e,o,r,h,u){const g=n.radiiSquared,l=t.nwCorner,C=t.boundingRectangle;let d=l.latitude-t.granYCos*o+r*t.granXSin;const M=s(d),S=i(d),w=g.z*S;let m=l.longitude+o*t.granYSin+r*t.granXCos;const p=M*s(m),R=M*i(m),X=g.x*p,Y=g.y*R,O=c(X*p+Y*R+w*S);if(h.x=X/O,h.y=Y/O,h.z=w/O,e){const n=t.stNwCorner;a.defined(n)?(d=n.latitude-t.stGranYCos*o+r*t.stGranXSin,m=n.longitude+o*t.stGranYSin+r*t.stGranXCos,u.x=(m-t.stWest)*t.lonScalar,u.y=(d-t.stSouth)*t.latScalar):(u.x=(m-C.west)*t.lonScalar,u.y=(d-C.south)*t.latScalar)}}},u=new n.Matrix2;let g=new n.Cartesian3;const l=new n.Cartographic;let C=new n.Cartesian3;const d=new o.GeographicProjection;function M(t,a,e,o,r,s,i){const c=Math.cos(a),h=o*c,l=e*c,M=Math.sin(a),S=o*M,w=e*M;g=d.project(t,g),g=n.Cartesian3.subtract(g,C,g);const m=n.Matrix2.fromRotation(a,u);g=n.Matrix2.multiplyByVector(m,g,g),g=n.Cartesian3.add(g,C,g),t=d.unproject(g,t),s-=1,i-=1;const p=t.latitude,R=p+s*w,X=p-h*i,Y=p-h*i+s*w,O=Math.max(p,R,X,Y),f=Math.min(p,R,X,Y),_=t.longitude,x=_+s*l,G=_+i*S,P=_+i*S+s*l,W=Math.max(_,x,G,P),y=Math.min(_,x,G,P);return{north:O,south:f,east:W,west:y,granYCos:h,granYSin:S,granXCos:l,granXSin:w,nwCorner:t}}h.computeOptions=function(t,a,o,s,i,c,h){let u,g=t.east,S=t.west,w=t.north,m=t.south,p=!1,R=!1;w===r.CesiumMath.PI_OVER_TWO&&(p=!0),m===-r.CesiumMath.PI_OVER_TWO&&(R=!0);const X=w-m;u=S>g?r.CesiumMath.TWO_PI-S+g:g-S;const Y=Math.ceil(u/a)+1,O=Math.ceil(X/a)+1,f=u/(Y-1),_=X/(O-1),x=n.Rectangle.northwest(t,c),G=n.Rectangle.center(t,l);0===o&&0===s||(G.longituder.CesiumMath.PI_OVER_TWO||m<-r.CesiumMath.PI_OVER_TWO||m>r.CesiumMath.PI_OVER_TWO)throw new e.DeveloperError("Rotated rectangle is invalid. It crosses over either the north or south pole.");E.granYCos=t.granYCos,E.granYSin=t.granYSin,E.granXCos=t.granXCos,E.granXSin=t.granXSin,T.north=w,T.south=m,T.east=g,T.west=S}if(0!==s){o-=s;const t=n.Rectangle.northwest(T,h),a=M(t,o,f,_,G,Y,O);E.stGranYCos=a.granYCos,E.stGranXCos=a.granXCos,E.stGranYSin=a.granYSin,E.stGranXSin=a.granXSin,E.stNwCorner=t,E.stWest=a.west,E.stSouth=a.south}return E},t.RectangleGeometryLibrary=h}));