2 lines
30 KiB
JavaScript
2 lines
30 KiB
JavaScript
/* 2020-9-22 15:23:25 | 版权所有 军懋国兴 */
|
|
define(["exports","./when-cbf8cd21","./Check-35e1a91d","./Math-69007a69"],function(e,T,S,E){"use strict";function R(e,t,n){this.x=T.defaultValue(e,0),this.y=T.defaultValue(t,0),this.z=T.defaultValue(n,0)}R.fromSpherical=function(e,t){S.Check.typeOf.object("spherical",e),T.defined(t)||(t=new R);var n=e.clock,r=e.cone,a=T.defaultValue(e.magnitude,1),i=a*Math.sin(r);return t.x=i*Math.cos(n),t.y=i*Math.sin(n),t.z=a*Math.cos(r),t},R.fromElements=function(e,t,n,r){return T.defined(r)?(r.x=e,r.y=t,r.z=n,r):new R(e,t,n)},R.fromCartesian4=R.clone=function(e,t){if(T.defined(e))return T.defined(t)?(t.x=e.x,t.y=e.y,t.z=e.z,t):new R(e.x,e.y,e.z)},R.packedLength=3,R.pack=function(e,t,n){return S.Check.typeOf.object("value",e),S.Check.defined("array",t),n=T.defaultValue(n,0),t[n++]=e.x,t[n++]=e.y,t[n]=e.z,t},R.unpack=function(e,t,n){return S.Check.defined("array",e),t=T.defaultValue(t,0),T.defined(n)||(n=new R),n.x=e[t++],n.y=e[t++],n.z=e[t],n},R.packArray=function(e,t){S.Check.defined("array",e);var n=e.length,r=3*n;if(T.defined(t)){if(!Array.isArray(t)&&t.length!==r)throw new S.DeveloperError("If result is a typed array, it must have exactly array.length * 3 elements");t.length!==r&&(t.length=r)}else t=new Array(r);for(var a=0;a<n;++a)R.pack(e[a],t,3*a);return t},R.unpackArray=function(e,t){if(S.Check.defined("array",e),S.Check.typeOf.number.greaterThanOrEquals("array.length",e.length,3),e.length%3!=0)throw new S.DeveloperError("array length must be a multiple of 3.");var n=e.length;T.defined(t)?t.length=n/3:t=new Array(n/3);for(var r=0;r<n;r+=3){var a=r/3;t[a]=R.unpack(e,r,t[a])}return t},R.fromArray=R.unpack,R.maximumComponent=function(e){return S.Check.typeOf.object("cartesian",e),Math.max(e.x,e.y,e.z)},R.minimumComponent=function(e){return S.Check.typeOf.object("cartesian",e),Math.min(e.x,e.y,e.z)},R.minimumByComponent=function(e,t,n){return S.Check.typeOf.object("first",e),S.Check.typeOf.object("second",t),S.Check.typeOf.object("result",n),n.x=Math.min(e.x,t.x),n.y=Math.min(e.y,t.y),n.z=Math.min(e.z,t.z),n},R.maximumByComponent=function(e,t,n){return S.Check.typeOf.object("first",e),S.Check.typeOf.object("second",t),S.Check.typeOf.object("result",n),n.x=Math.max(e.x,t.x),n.y=Math.max(e.y,t.y),n.z=Math.max(e.z,t.z),n},R.magnitudeSquared=function(e){return S.Check.typeOf.object("cartesian",e),e.x*e.x+e.y*e.y+e.z*e.z},R.magnitude=function(e){return Math.sqrt(R.magnitudeSquared(e))};var n=new R;R.distance=function(e,t){return S.Check.typeOf.object("left",e),S.Check.typeOf.object("right",t),R.subtract(e,t,n),R.magnitude(n)},R.distanceSquared=function(e,t){return S.Check.typeOf.object("left",e),S.Check.typeOf.object("right",t),R.subtract(e,t,n),R.magnitudeSquared(n)},R.normalize=function(e,t){S.Check.typeOf.object("cartesian",e),S.Check.typeOf.object("result",t);var n=R.magnitude(e);if(t.x=e.x/n,t.y=e.y/n,t.z=e.z/n,isNaN(t.x)||isNaN(t.y)||isNaN(t.z))throw new S.DeveloperError("normalized result is not a number");return t},R.dot=function(e,t){return S.Check.typeOf.object("left",e),S.Check.typeOf.object("right",t),e.x*t.x+e.y*t.y+e.z*t.z},R.multiplyComponents=function(e,t,n){return S.Check.typeOf.object("left",e),S.Check.typeOf.object("right",t),S.Check.typeOf.object("result",n),n.x=e.x*t.x,n.y=e.y*t.y,n.z=e.z*t.z,n},R.divideComponents=function(e,t,n){return S.Check.typeOf.object("left",e),S.Check.typeOf.object("right",t),S.Check.typeOf.object("result",n),n.x=e.x/t.x,n.y=e.y/t.y,n.z=e.z/t.z,n},R.add=function(e,t,n){return S.Check.typeOf.object("left",e),S.Check.typeOf.object("right",t),S.Check.typeOf.object("result",n),n.x=e.x+t.x,n.y=e.y+t.y,n.z=e.z+t.z,n},R.subtract=function(e,t,n){return S.Check.typeOf.object("left",e),S.Check.typeOf.object("right",t),S.Check.typeOf.object("result",n),n.x=e.x-t.x,n.y=e.y-t.y,n.z=e.z-t.z,n},R.multiplyByScalar=function(e,t,n){return S.Check.typeOf.object("cartesian",e),S.Check.typeOf.number("scalar",t),S.Check.typeOf.object("result",n),n.x=e.x*t,n.y=e.y*t,n.z=e.z*t,n},R.divideByScalar=function(e,t,n){return S.Check.typeOf.object("cartesian",e),S.Check.typeOf.number("scalar",t),S.Check.typeOf.object("result",n),n.x=e.x/t,n.y=e.y/t,n.z=e.z/t,n},R.negate=function(e,t){return S.Check.typeOf.object("cartesian",e),S.Check.typeOf.object("result",t),t.x=-e.x,t.y=-e.y,t.z=-e.z,t},R.abs=function(e,t){return S.Check.typeOf.object("cartesian",e),S.Check.typeOf.object("result",t),t.x=Math.abs(e.x),t.y=Math.abs(e.y),t.z=Math.abs(e.z),t};var a=new R;R.lerp=function(e,t,n,r){return S.Check.typeOf.object("start",e),S.Check.typeOf.object("end",t),S.Check.typeOf.number("t",n),S.Check.typeOf.object("result",r),R.multiplyByScalar(t,n,a),r=R.multiplyByScalar(e,1-n,r),R.add(a,r,r)};var i=new R,o=new R;R.angleBetween=function(e,t){S.Check.typeOf.object("left",e),S.Check.typeOf.object("right",t),R.normalize(e,i),R.normalize(t,o);var n=R.dot(i,o),r=R.magnitude(R.cross(i,o,i));return Math.atan2(r,n)};var r=new R;R.mostOrthogonalAxis=function(e,t){S.Check.typeOf.object("cartesian",e),S.Check.typeOf.object("result",t);var n=R.normalize(e,r);return R.abs(n,n),t=n.x<=n.y?n.x<=n.z?R.clone(R.UNIT_X,t):R.clone(R.UNIT_Z,t):n.y<=n.z?R.clone(R.UNIT_Y,t):R.clone(R.UNIT_Z,t)},R.projectVector=function(e,t,n){S.Check.defined("a",e),S.Check.defined("b",t),S.Check.defined("result",n);var r=R.dot(e,t)/R.dot(t,t);return R.multiplyByScalar(t,r,n)},R.equals=function(e,t){return e===t||T.defined(e)&&T.defined(t)&&e.x===t.x&&e.y===t.y&&e.z===t.z},R.equalsArray=function(e,t,n){return e.x===t[n]&&e.y===t[n+1]&&e.z===t[n+2]},R.equalsEpsilon=function(e,t,n,r){return e===t||T.defined(e)&&T.defined(t)&&E.CesiumMath.equalsEpsilon(e.x,t.x,n,r)&&E.CesiumMath.equalsEpsilon(e.y,t.y,n,r)&&E.CesiumMath.equalsEpsilon(e.z,t.z,n,r)},R.cross=function(e,t,n){S.Check.typeOf.object("left",e),S.Check.typeOf.object("right",t),S.Check.typeOf.object("result",n);var r=e.x,a=e.y,i=e.z,o=t.x,u=t.y,c=t.z,h=a*c-i*u,s=i*o-r*c,f=r*u-a*o;return n.x=h,n.y=s,n.z=f,n},R.midpoint=function(e,t,n){return S.Check.typeOf.object("left",e),S.Check.typeOf.object("right",t),S.Check.typeOf.object("result",n),n.x=.5*(e.x+t.x),n.y=.5*(e.y+t.y),n.z=.5*(e.z+t.z),n},R.fromDegrees=function(e,t,n,r,a){return S.Check.typeOf.number("longitude",e),S.Check.typeOf.number("latitude",t),e=E.CesiumMath.toRadians(e),t=E.CesiumMath.toRadians(t),R.fromRadians(e,t,n,r,a)};var c=new R,h=new R,s=new R(40680631590769,40680631590769,40408299984661.445);R.fromRadians=function(e,t,n,r,a){S.Check.typeOf.number("longitude",e),S.Check.typeOf.number("latitude",t),n=T.defaultValue(n,0);var i=T.defined(r)?r.radiiSquared:s,o=Math.cos(t);c.x=o*Math.cos(e),c.y=o*Math.sin(e),c.z=Math.sin(t),c=R.normalize(c,c),R.multiplyComponents(i,c,h);var u=Math.sqrt(R.dot(c,h));return h=R.divideByScalar(h,u,h),c=R.multiplyByScalar(c,n,c),T.defined(a)||(a=new R),R.add(h,c,a)},R.fromDegreesArray=function(e,t,n){if(S.Check.defined("coordinates",e),e.length<2||e.length%2!=0)throw new S.DeveloperError("the number of coordinates must be a multiple of 2 and at least 2");var r=e.length;T.defined(n)?n.length=r/2:n=new Array(r/2);for(var a=0;a<r;a+=2){var i=e[a],o=e[a+1],u=a/2;n[u]=R.fromDegrees(i,o,0,t,n[u])}return n},R.fromRadiansArray=function(e,t,n){if(S.Check.defined("coordinates",e),e.length<2||e.length%2!=0)throw new S.DeveloperError("the number of coordinates must be a multiple of 2 and at least 2");var r=e.length;T.defined(n)?n.length=r/2:n=new Array(r/2);for(var a=0;a<r;a+=2){var i=e[a],o=e[a+1],u=a/2;n[u]=R.fromRadians(i,o,0,t,n[u])}return n},R.fromDegreesArrayHeights=function(e,t,n){if(S.Check.defined("coordinates",e),e.length<3||e.length%3!=0)throw new S.DeveloperError("the number of coordinates must be a multiple of 3 and at least 3");var r=e.length;T.defined(n)?n.length=r/3:n=new Array(r/3);for(var a=0;a<r;a+=3){var i=e[a],o=e[a+1],u=e[a+2],c=a/3;n[c]=R.fromDegrees(i,o,u,t,n[c])}return n},R.fromRadiansArrayHeights=function(e,t,n){if(S.Check.defined("coordinates",e),e.length<3||e.length%3!=0)throw new S.DeveloperError("the number of coordinates must be a multiple of 3 and at least 3");var r=e.length;T.defined(n)?n.length=r/3:n=new Array(r/3);for(var a=0;a<r;a+=3){var i=e[a],o=e[a+1],u=e[a+2],c=a/3;n[c]=R.fromRadians(i,o,u,t,n[c])}return n},R.ZERO=Object.freeze(new R(0,0,0)),R.UNIT_X=Object.freeze(new R(1,0,0)),R.UNIT_Y=Object.freeze(new R(0,1,0)),R.UNIT_Z=Object.freeze(new R(0,0,1)),R.prototype.clone=function(e){return R.clone(this,e)},R.prototype.equals=function(e){return R.equals(this,e)},R.prototype.equalsEpsilon=function(e,t,n){return R.equalsEpsilon(this,e,t,n)},R.prototype.toString=function(){return"("+this.x+", "+this.y+", "+this.z+")"};var A=new R,I=new R;function f(e,t,n,r,a){if(!T.defined(e))throw new S.DeveloperError("cartesian is required.");if(!T.defined(t))throw new S.DeveloperError("oneOverRadii is required.");if(!T.defined(n))throw new S.DeveloperError("oneOverRadiiSquared is required.");if(!T.defined(r))throw new S.DeveloperError("centerToleranceSquared is required.");var i=e.x,o=e.y,u=e.z,c=t.x,h=t.y,s=t.z,f=i*i*c*c,d=o*o*h*h,l=u*u*s*s,y=f+d+l,p=Math.sqrt(1/y),m=R.multiplyByScalar(e,p,A);if(y<r)return isFinite(p)?R.clone(m,a):void 0;var C=n.x,O=n.y,g=n.z,b=I;b.x=m.x*C*2,b.y=m.y*O*2,b.z=m.z*g*2;var k,M,w,x,v,j,_,z=(1-p)*R.magnitude(e)/(.5*R.magnitude(b)),q=0;do{q=(k=f*(v=(M=1/(1+(z-=q)*C))*M)+d*(j=(w=1/(1+z*O))*w)+l*(_=(x=1/(1+z*g))*x)-1)/(-2*(f*(v*M)*C+d*(j*w)*O+l*(_*x)*g))}while(Math.abs(k)>E.CesiumMath.EPSILON12);return T.defined(a)?(a.x=i*M,a.y=o*w,a.z=u*x,a):new R(i*M,o*w,u*x)}function d(e,t,n){this.longitude=T.defaultValue(e,0),this.latitude=T.defaultValue(t,0),this.height=T.defaultValue(n,0)}d.fromRadians=function(e,t,n,r){return S.Check.typeOf.number("longitude",e),S.Check.typeOf.number("latitude",t),n=T.defaultValue(n,0),T.defined(r)?(r.longitude=e,r.latitude=t,r.height=n,r):new d(e,t,n)},d.fromDegrees=function(e,t,n,r){return S.Check.typeOf.number("longitude",e),S.Check.typeOf.number("latitude",t),e=E.CesiumMath.toRadians(e),t=E.CesiumMath.toRadians(t),d.fromRadians(e,t,n,r)};var l=new R,y=new R,p=new R,m=new R(1/6378137,1/6378137,1/6356752.314245179),C=new R(1/40680631590769,1/40680631590769,1/40408299984661.445),O=E.CesiumMath.EPSILON1;function u(e,t,n,r){t=T.defaultValue(t,0),n=T.defaultValue(n,0),r=T.defaultValue(r,0),S.Check.typeOf.number.greaterThanOrEquals("x",t,0),S.Check.typeOf.number.greaterThanOrEquals("y",n,0),S.Check.typeOf.number.greaterThanOrEquals("z",r,0),e._radii=new R(t,n,r),e._radiiSquared=new R(t*t,n*n,r*r),e._radiiToTheFourth=new R(t*t*t*t,n*n*n*n,r*r*r*r),e._oneOverRadii=new R(0===t?0:1/t,0===n?0:1/n,0===r?0:1/r),e._oneOverRadiiSquared=new R(0===t?0:1/(t*t),0===n?0:1/(n*n),0===r?0:1/(r*r)),e._minimumRadius=Math.min(t,n,r),e._maximumRadius=Math.max(t,n,r),e._centerToleranceSquared=E.CesiumMath.EPSILON1,0!==e._radiiSquared.z&&(e._squaredXOverSquaredZ=e._radiiSquared.x/e._radiiSquared.z)}function g(e,t,n){this._radii=void 0,this._radiiSquared=void 0,this._radiiToTheFourth=void 0,this._oneOverRadii=void 0,this._oneOverRadiiSquared=void 0,this._minimumRadius=void 0,this._maximumRadius=void 0,this._centerToleranceSquared=void 0,this._squaredXOverSquaredZ=void 0,u(this,e,t,n)}d.fromCartesian=function(e,t,n){var r=T.defined(t)?t.oneOverRadii:m,a=T.defined(t)?t.oneOverRadiiSquared:C,i=f(e,r,a,T.defined(t)?t._centerToleranceSquared:O,y);if(T.defined(i)){var o=R.multiplyComponents(i,a,l),o=R.normalize(o,o),u=R.subtract(e,i,p),c=Math.atan2(o.y,o.x),h=Math.asin(o.z),s=E.CesiumMath.sign(R.dot(u,e))*R.magnitude(u);return T.defined(n)?(n.longitude=c,n.latitude=h,n.height=s,n):new d(c,h,s)}},d.toCartesian=function(e,t,n){return S.Check.defined("cartographic",e),R.fromRadians(e.longitude,e.latitude,e.height,t,n)},d.clone=function(e,t){if(T.defined(e))return T.defined(t)?(t.longitude=e.longitude,t.latitude=e.latitude,t.height=e.height,t):new d(e.longitude,e.latitude,e.height)},d.equals=function(e,t){return e===t||T.defined(e)&&T.defined(t)&&e.longitude===t.longitude&&e.latitude===t.latitude&&e.height===t.height},d.equalsEpsilon=function(e,t,n){return n=T.defaultValue(n,0),e===t||T.defined(e)&&T.defined(t)&&Math.abs(e.longitude-t.longitude)<=n&&Math.abs(e.latitude-t.latitude)<=n&&Math.abs(e.height-t.height)<=n},d.ZERO=Object.freeze(new d(0,0,0)),d.prototype.clone=function(e){return d.clone(this,e)},d.prototype.equals=function(e){return d.equals(this,e)},d.prototype.equalsEpsilon=function(e,t){return d.equalsEpsilon(this,e,t)},d.prototype.toString=function(){return"("+this.longitude+", "+this.latitude+", "+this.height+")"},Object.defineProperties(g.prototype,{radii:{get:function(){return this._radii}},radiiSquared:{get:function(){return this._radiiSquared}},radiiToTheFourth:{get:function(){return this._radiiToTheFourth}},oneOverRadii:{get:function(){return this._oneOverRadii}},oneOverRadiiSquared:{get:function(){return this._oneOverRadiiSquared}},minimumRadius:{get:function(){return this._minimumRadius}},maximumRadius:{get:function(){return this._maximumRadius}}}),g.clone=function(e,t){if(T.defined(e)){var n=e._radii;return T.defined(t)?(R.clone(n,t._radii),R.clone(e._radiiSquared,t._radiiSquared),R.clone(e._radiiToTheFourth,t._radiiToTheFourth),R.clone(e._oneOverRadii,t._oneOverRadii),R.clone(e._oneOverRadiiSquared,t._oneOverRadiiSquared),t._minimumRadius=e._minimumRadius,t._maximumRadius=e._maximumRadius,t._centerToleranceSquared=e._centerToleranceSquared,t):new g(n.x,n.y,n.z)}},g.fromCartesian3=function(e,t){return T.defined(t)||(t=new g),T.defined(e)&&u(t,e.x,e.y,e.z),t},g.WGS84=Object.freeze(new g(6378137,6378137,6356752.314245179)),g.UNIT_SPHERE=Object.freeze(new g(1,1,1)),g.MOON=Object.freeze(new g(E.CesiumMath.LUNAR_RADIUS,E.CesiumMath.LUNAR_RADIUS,E.CesiumMath.LUNAR_RADIUS)),g.prototype.clone=function(e){return g.clone(this,e)},g.packedLength=R.packedLength,g.pack=function(e,t,n){return S.Check.typeOf.object("value",e),S.Check.defined("array",t),n=T.defaultValue(n,0),R.pack(e._radii,t,n),t},g.unpack=function(e,t,n){S.Check.defined("array",e),t=T.defaultValue(t,0);var r=R.unpack(e,t);return g.fromCartesian3(r,n)},g.prototype.geocentricSurfaceNormal=R.normalize,g.prototype.geodeticSurfaceNormalCartographic=function(e,t){S.Check.typeOf.object("cartographic",e);var n=e.longitude,r=e.latitude,a=Math.cos(r),i=a*Math.cos(n),o=a*Math.sin(n),u=Math.sin(r);return T.defined(t)||(t=new R),t.x=i,t.y=o,t.z=u,R.normalize(t,t)},g.prototype.geodeticSurfaceNormal=function(e,t){if(!R.equalsEpsilon(e,R.ZERO,E.CesiumMath.EPSILON14))return T.defined(t)||(t=new R),t=R.multiplyComponents(e,this._oneOverRadiiSquared,t),R.normalize(t,t)};var b=new R,k=new R;g.prototype.cartographicToCartesian=function(e,t){var n=b,r=k;this.geodeticSurfaceNormalCartographic(e,n),R.multiplyComponents(this._radiiSquared,n,r);var a=Math.sqrt(R.dot(n,r));return R.divideByScalar(r,a,r),R.multiplyByScalar(n,e.height,n),T.defined(t)||(t=new R),R.add(r,n,t)},g.prototype.cartographicArrayToCartesianArray=function(e,t){S.Check.defined("cartographics",e);var n=e.length;T.defined(t)?t.length=n:t=new Array(n);for(var r=0;r<n;r++)t[r]=this.cartographicToCartesian(e[r],t[r]);return t};var M=new R,w=new R,x=new R;g.prototype.cartesianToCartographic=function(e,t){var n=this.scaleToGeodeticSurface(e,w);if(T.defined(n)){var r=this.geodeticSurfaceNormal(n,M),a=R.subtract(e,n,x),i=Math.atan2(r.y,r.x),o=Math.asin(r.z),u=E.CesiumMath.sign(R.dot(a,e))*R.magnitude(a);return T.defined(t)?(t.longitude=i,t.latitude=o,t.height=u,t):new d(i,o,u)}},g.prototype.cartesianArrayToCartographicArray=function(e,t){S.Check.defined("cartesians",e);var n=e.length;T.defined(t)?t.length=n:t=new Array(n);for(var r=0;r<n;++r)t[r]=this.cartesianToCartographic(e[r],t[r]);return t},g.prototype.scaleToGeodeticSurface=function(e,t){return f(e,this._oneOverRadii,this._oneOverRadiiSquared,this._centerToleranceSquared,t)},g.prototype.scaleToGeocentricSurface=function(e,t){S.Check.typeOf.object("cartesian",e),T.defined(t)||(t=new R);var n=e.x,r=e.y,a=e.z,i=this._oneOverRadiiSquared,o=1/Math.sqrt(n*n*i.x+r*r*i.y+a*a*i.z);return R.multiplyByScalar(e,o,t)},g.prototype.transformPositionToScaledSpace=function(e,t){return T.defined(t)||(t=new R),R.multiplyComponents(e,this._oneOverRadii,t)},g.prototype.transformPositionFromScaledSpace=function(e,t){return T.defined(t)||(t=new R),R.multiplyComponents(e,this._radii,t)},g.prototype.equals=function(e){return this===e||T.defined(e)&&R.equals(this._radii,e._radii)},g.prototype.toString=function(){return this._radii.toString()},g.prototype.getSurfaceNormalIntersectionWithZAxis=function(e,t,n){if(S.Check.typeOf.object("position",e),!E.CesiumMath.equalsEpsilon(this._radii.x,this._radii.y,E.CesiumMath.EPSILON15))throw new S.DeveloperError("Ellipsoid must be an ellipsoid of revolution (radii.x == radii.y)");S.Check.typeOf.number.greaterThan("Ellipsoid.radii.z",this._radii.z,0),t=T.defaultValue(t,0);var r=this._squaredXOverSquaredZ;if(T.defined(n)||(n=new R),n.x=0,n.y=0,n.z=e.z*(1-r),!(Math.abs(n.z)>=this._radii.z-t))return n};var v=[.14887433898163,.43339539412925,.67940956829902,.86506336668898,.97390652851717,0],j=[.29552422471475,.26926671930999,.21908636251598,.14945134915058,.066671344308684,0];function _(e,t,n){S.Check.typeOf.number("a",e),S.Check.typeOf.number("b",t),S.Check.typeOf.func("func",n);for(var r=.5*(t+e),a=.5*(t-e),i=0,o=0;o<5;o++){var u=a*v[o];i+=j[o]*(n(r+u)+n(r-u))}return i*=a}function z(e,t,n,r){this.west=T.defaultValue(e,0),this.south=T.defaultValue(t,0),this.east=T.defaultValue(n,0),this.north=T.defaultValue(r,0)}g.prototype.surfaceArea=function(e){S.Check.typeOf.object("rectangle",e);for(var t=e.west,n=e.east,r=e.south,a=e.north;n<t;)n+=E.CesiumMath.TWO_PI;var i=this._radiiSquared,o=i.x,u=i.y,c=i.z,h=o*u;return _(r,a,function(e){var r=Math.cos(e),a=Math.sin(e);return Math.cos(e)*_(t,n,function(e){var t=Math.cos(e),n=Math.sin(e);return Math.sqrt(h*a*a+c*(u*t*t+o*n*n)*r*r)})})},Object.defineProperties(z.prototype,{width:{get:function(){return z.computeWidth(this)}},height:{get:function(){return z.computeHeight(this)}}}),z.packedLength=4,z.pack=function(e,t,n){return S.Check.typeOf.object("value",e),S.Check.defined("array",t),n=T.defaultValue(n,0),t[n++]=e.west,t[n++]=e.south,t[n++]=e.east,t[n]=e.north,t},z.unpack=function(e,t,n){return S.Check.defined("array",e),t=T.defaultValue(t,0),T.defined(n)||(n=new z),n.west=e[t++],n.south=e[t++],n.east=e[t++],n.north=e[t],n},z.computeWidth=function(e){S.Check.typeOf.object("rectangle",e);var t=e.east,n=e.west;return t<n&&(t+=E.CesiumMath.TWO_PI),t-n},z.computeHeight=function(e){return S.Check.typeOf.object("rectangle",e),e.north-e.south},z.fromDegrees=function(e,t,n,r,a){return e=E.CesiumMath.toRadians(T.defaultValue(e,0)),t=E.CesiumMath.toRadians(T.defaultValue(t,0)),n=E.CesiumMath.toRadians(T.defaultValue(n,0)),r=E.CesiumMath.toRadians(T.defaultValue(r,0)),T.defined(a)?(a.west=e,a.south=t,a.east=n,a.north=r,a):new z(e,t,n,r)},z.fromRadians=function(e,t,n,r,a){return T.defined(a)?(a.west=T.defaultValue(e,0),a.south=T.defaultValue(t,0),a.east=T.defaultValue(n,0),a.north=T.defaultValue(r,0),a):new z(e,t,n,r)},z.fromCartographicArray=function(e,t){S.Check.defined("cartographics",e);for(var n=Number.MAX_VALUE,r=-Number.MAX_VALUE,a=Number.MAX_VALUE,i=-Number.MAX_VALUE,o=Number.MAX_VALUE,u=-Number.MAX_VALUE,c=0,h=e.length;c<h;c++)var s=e[c],n=Math.min(n,s.longitude),r=Math.max(r,s.longitude),o=Math.min(o,s.latitude),u=Math.max(u,s.latitude),f=0<=s.longitude?s.longitude:s.longitude+E.CesiumMath.TWO_PI,a=Math.min(a,f),i=Math.max(i,f);return i-a<r-n&&(n=a,(r=i)>E.CesiumMath.PI&&(r-=E.CesiumMath.TWO_PI),n>E.CesiumMath.PI&&(n-=E.CesiumMath.TWO_PI)),T.defined(t)?(t.west=n,t.south=o,t.east=r,t.north=u,t):new z(n,o,r,u)},z.fromCartesianArray=function(e,t,n){S.Check.defined("cartesians",e),t=T.defaultValue(t,g.WGS84);for(var r=Number.MAX_VALUE,a=-Number.MAX_VALUE,i=Number.MAX_VALUE,o=-Number.MAX_VALUE,u=Number.MAX_VALUE,c=-Number.MAX_VALUE,h=0,s=e.length;h<s;h++)var f=t.cartesianToCartographic(e[h]),r=Math.min(r,f.longitude),a=Math.max(a,f.longitude),u=Math.min(u,f.latitude),c=Math.max(c,f.latitude),d=0<=f.longitude?f.longitude:f.longitude+E.CesiumMath.TWO_PI,i=Math.min(i,d),o=Math.max(o,d);return o-i<a-r&&(r=i,(a=o)>E.CesiumMath.PI&&(a-=E.CesiumMath.TWO_PI),r>E.CesiumMath.PI&&(r-=E.CesiumMath.TWO_PI)),T.defined(n)?(n.west=r,n.south=u,n.east=a,n.north=c,n):new z(r,u,a,c)},z.clone=function(e,t){if(T.defined(e))return T.defined(t)?(t.west=e.west,t.south=e.south,t.east=e.east,t.north=e.north,t):new z(e.west,e.south,e.east,e.north)},z.equalsEpsilon=function(e,t,n){return n=T.defaultValue(n,0),e===t||T.defined(e)&&T.defined(t)&&Math.abs(e.west-t.west)<=n&&Math.abs(e.south-t.south)<=n&&Math.abs(e.east-t.east)<=n&&Math.abs(e.north-t.north)<=n},z.prototype.clone=function(e){return z.clone(this,e)},z.prototype.equals=function(e){return z.equals(this,e)},z.equals=function(e,t){return e===t||T.defined(e)&&T.defined(t)&&e.west===t.west&&e.south===t.south&&e.east===t.east&&e.north===t.north},z.prototype.equalsEpsilon=function(e,t){return z.equalsEpsilon(this,e,t)},z.validate=function(e){S.Check.typeOf.object("rectangle",e);var t=e.north;S.Check.typeOf.number.greaterThanOrEquals("north",t,-E.CesiumMath.PI_OVER_TWO),S.Check.typeOf.number.lessThanOrEquals("north",t,E.CesiumMath.PI_OVER_TWO);var n=e.south;S.Check.typeOf.number.greaterThanOrEquals("south",n,-E.CesiumMath.PI_OVER_TWO),S.Check.typeOf.number.lessThanOrEquals("south",n,E.CesiumMath.PI_OVER_TWO);var r=e.west;S.Check.typeOf.number.greaterThanOrEquals("west",r,-Math.PI),S.Check.typeOf.number.lessThanOrEquals("west",r,Math.PI);var a=e.east;S.Check.typeOf.number.greaterThanOrEquals("east",a,-Math.PI),S.Check.typeOf.number.lessThanOrEquals("east",a,Math.PI)},z.southwest=function(e,t){return S.Check.typeOf.object("rectangle",e),T.defined(t)?(t.longitude=e.west,t.latitude=e.south,t.height=0,t):new d(e.west,e.south)},z.northwest=function(e,t){return S.Check.typeOf.object("rectangle",e),T.defined(t)?(t.longitude=e.west,t.latitude=e.north,t.height=0,t):new d(e.west,e.north)},z.northeast=function(e,t){return S.Check.typeOf.object("rectangle",e),T.defined(t)?(t.longitude=e.east,t.latitude=e.north,t.height=0,t):new d(e.east,e.north)},z.southeast=function(e,t){return S.Check.typeOf.object("rectangle",e),T.defined(t)?(t.longitude=e.east,t.latitude=e.south,t.height=0,t):new d(e.east,e.south)},z.center=function(e,t){S.Check.typeOf.object("rectangle",e);var n=e.east,r=e.west;n<r&&(n+=E.CesiumMath.TWO_PI);var a=E.CesiumMath.negativePiToPi(.5*(r+n)),i=.5*(e.south+e.north);return T.defined(t)?(t.longitude=a,t.latitude=i,t.height=0,t):new d(a,i)},z.intersection=function(e,t,n){S.Check.typeOf.object("rectangle",e),S.Check.typeOf.object("otherRectangle",t);var r=e.east,a=e.west,i=t.east,o=t.west;r<a&&0<i?r+=E.CesiumMath.TWO_PI:i<o&&0<r&&(i+=E.CesiumMath.TWO_PI),r<a&&o<0?o+=E.CesiumMath.TWO_PI:i<o&&a<0&&(a+=E.CesiumMath.TWO_PI);var u=E.CesiumMath.negativePiToPi(Math.max(a,o)),c=E.CesiumMath.negativePiToPi(Math.min(r,i));if(!((e.west<e.east||t.west<t.east)&&c<=u)){var h=Math.max(e.south,t.south),s=Math.min(e.north,t.north);if(!(s<=h))return T.defined(n)?(n.west=u,n.south=h,n.east=c,n.north=s,n):new z(u,h,c,s)}},z.simpleIntersection=function(e,t,n){S.Check.typeOf.object("rectangle",e),S.Check.typeOf.object("otherRectangle",t);var r=Math.max(e.west,t.west),a=Math.max(e.south,t.south),i=Math.min(e.east,t.east),o=Math.min(e.north,t.north);if(!(o<=a||i<=r))return T.defined(n)?(n.west=r,n.south=a,n.east=i,n.north=o,n):new z(r,a,i,o)},z.union=function(e,t,n){S.Check.typeOf.object("rectangle",e),S.Check.typeOf.object("otherRectangle",t),T.defined(n)||(n=new z);var r=e.east,a=e.west,i=t.east,o=t.west;r<a&&0<i?r+=E.CesiumMath.TWO_PI:i<o&&0<r&&(i+=E.CesiumMath.TWO_PI),r<a&&o<0?o+=E.CesiumMath.TWO_PI:i<o&&a<0&&(a+=E.CesiumMath.TWO_PI);var u=E.CesiumMath.convertLongitudeRange(Math.min(a,o)),c=E.CesiumMath.convertLongitudeRange(Math.max(r,i));return n.west=u,n.south=Math.min(e.south,t.south),n.east=c,n.north=Math.max(e.north,t.north),n},z.expand=function(e,t,n){return S.Check.typeOf.object("rectangle",e),S.Check.typeOf.object("cartographic",t),T.defined(n)||(n=new z),n.west=Math.min(e.west,t.longitude),n.south=Math.min(e.south,t.latitude),n.east=Math.max(e.east,t.longitude),n.north=Math.max(e.north,t.latitude),n},z.contains=function(e,t){S.Check.typeOf.object("rectangle",e),S.Check.typeOf.object("cartographic",t);var n=t.longitude,r=t.latitude,a=e.west,i=e.east;return i<a&&(i+=E.CesiumMath.TWO_PI,n<0&&(n+=E.CesiumMath.TWO_PI)),(a<n||E.CesiumMath.equalsEpsilon(n,a,E.CesiumMath.EPSILON14))&&(n<i||E.CesiumMath.equalsEpsilon(n,i,E.CesiumMath.EPSILON14))&&r>=e.south&&r<=e.north};var q=new d;function V(e,t){this.x=T.defaultValue(e,0),this.y=T.defaultValue(t,0)}z.subsample=function(e,t,n,r){S.Check.typeOf.object("rectangle",e),t=T.defaultValue(t,g.WGS84),n=T.defaultValue(n,0),T.defined(r)||(r=[]);var a=0,i=e.north,o=e.south,u=e.east,c=e.west,h=q;h.height=n,h.longitude=c,h.latitude=i,r[a]=t.cartographicToCartesian(h,r[a]),a++,h.longitude=u,r[a]=t.cartographicToCartesian(h,r[a]),a++,h.latitude=o,r[a]=t.cartographicToCartesian(h,r[a]),a++,h.longitude=c,r[a]=t.cartographicToCartesian(h,r[a]),a++,h.latitude=i<0?i:0<o?o:0;for(var s=1;s<8;++s)h.longitude=-Math.PI+s*E.CesiumMath.PI_OVER_TWO,z.contains(e,h)&&(r[a]=t.cartographicToCartesian(h,r[a]),a++);return 0===h.latitude&&(h.longitude=c,r[a]=t.cartographicToCartesian(h,r[a]),a++,h.longitude=u,r[a]=t.cartographicToCartesian(h,r[a]),a++),r.length=a,r},z.MAX_VALUE=Object.freeze(new z(-Math.PI,-E.CesiumMath.PI_OVER_TWO,Math.PI,E.CesiumMath.PI_OVER_TWO)),V.fromElements=function(e,t,n){return T.defined(n)?(n.x=e,n.y=t,n):new V(e,t)},V.fromCartesian3=V.clone=function(e,t){if(T.defined(e))return T.defined(t)?(t.x=e.x,t.y=e.y,t):new V(e.x,e.y)},V.fromCartesian4=V.clone,V.packedLength=2,V.pack=function(e,t,n){return S.Check.typeOf.object("value",e),S.Check.defined("array",t),n=T.defaultValue(n,0),t[n++]=e.x,t[n]=e.y,t},V.unpack=function(e,t,n){return S.Check.defined("array",e),t=T.defaultValue(t,0),T.defined(n)||(n=new V),n.x=e[t++],n.y=e[t],n},V.packArray=function(e,t){S.Check.defined("array",e);var n=e.length,r=2*n;if(T.defined(t)){if(!Array.isArray(t)&&t.length!==r)throw new S.DeveloperError("If result is a typed array, it must have exactly array.length * 2 elements");t.length!==r&&(t.length=r)}else t=new Array(r);for(var a=0;a<n;++a)V.pack(e[a],t,2*a);return t},V.unpackArray=function(e,t){if(S.Check.defined("array",e),S.Check.typeOf.number.greaterThanOrEquals("array.length",e.length,2),e.length%2!=0)throw new S.DeveloperError("array length must be a multiple of 2.");var n=e.length;T.defined(t)?t.length=n/2:t=new Array(n/2);for(var r=0;r<n;r+=2){var a=r/2;t[a]=V.unpack(e,r,t[a])}return t},V.fromArray=V.unpack,V.maximumComponent=function(e){return S.Check.typeOf.object("cartesian",e),Math.max(e.x,e.y)},V.minimumComponent=function(e){return S.Check.typeOf.object("cartesian",e),Math.min(e.x,e.y)},V.minimumByComponent=function(e,t,n){return S.Check.typeOf.object("first",e),S.Check.typeOf.object("second",t),S.Check.typeOf.object("result",n),n.x=Math.min(e.x,t.x),n.y=Math.min(e.y,t.y),n},V.maximumByComponent=function(e,t,n){return S.Check.typeOf.object("first",e),S.Check.typeOf.object("second",t),S.Check.typeOf.object("result",n),n.x=Math.max(e.x,t.x),n.y=Math.max(e.y,t.y),n},V.magnitudeSquared=function(e){return S.Check.typeOf.object("cartesian",e),e.x*e.x+e.y*e.y},V.magnitude=function(e){return Math.sqrt(V.magnitudeSquared(e))};var P=new V;V.distance=function(e,t){return S.Check.typeOf.object("left",e),S.Check.typeOf.object("right",t),V.subtract(e,t,P),V.magnitude(P)},V.distanceSquared=function(e,t){return S.Check.typeOf.object("left",e),S.Check.typeOf.object("right",t),V.subtract(e,t,P),V.magnitudeSquared(P)},V.normalize=function(e,t){S.Check.typeOf.object("cartesian",e),S.Check.typeOf.object("result",t);var n=V.magnitude(e);if(t.x=e.x/n,t.y=e.y/n,isNaN(t.x)||isNaN(t.y))throw new S.DeveloperError("normalized result is not a number");return t},V.dot=function(e,t){return S.Check.typeOf.object("left",e),S.Check.typeOf.object("right",t),e.x*t.x+e.y*t.y},V.multiplyComponents=function(e,t,n){return S.Check.typeOf.object("left",e),S.Check.typeOf.object("right",t),S.Check.typeOf.object("result",n),n.x=e.x*t.x,n.y=e.y*t.y,n},V.divideComponents=function(e,t,n){return S.Check.typeOf.object("left",e),S.Check.typeOf.object("right",t),S.Check.typeOf.object("result",n),n.x=e.x/t.x,n.y=e.y/t.y,n},V.add=function(e,t,n){return S.Check.typeOf.object("left",e),S.Check.typeOf.object("right",t),S.Check.typeOf.object("result",n),n.x=e.x+t.x,n.y=e.y+t.y,n},V.subtract=function(e,t,n){return S.Check.typeOf.object("left",e),S.Check.typeOf.object("right",t),S.Check.typeOf.object("result",n),n.x=e.x-t.x,n.y=e.y-t.y,n},V.multiplyByScalar=function(e,t,n){return S.Check.typeOf.object("cartesian",e),S.Check.typeOf.number("scalar",t),S.Check.typeOf.object("result",n),n.x=e.x*t,n.y=e.y*t,n},V.divideByScalar=function(e,t,n){return S.Check.typeOf.object("cartesian",e),S.Check.typeOf.number("scalar",t),S.Check.typeOf.object("result",n),n.x=e.x/t,n.y=e.y/t,n},V.negate=function(e,t){return S.Check.typeOf.object("cartesian",e),S.Check.typeOf.object("result",t),t.x=-e.x,t.y=-e.y,t},V.abs=function(e,t){return S.Check.typeOf.object("cartesian",e),S.Check.typeOf.object("result",t),t.x=Math.abs(e.x),t.y=Math.abs(e.y),t};var N=new V;V.lerp=function(e,t,n,r){return S.Check.typeOf.object("start",e),S.Check.typeOf.object("end",t),S.Check.typeOf.number("t",n),S.Check.typeOf.object("result",r),V.multiplyByScalar(t,n,N),r=V.multiplyByScalar(e,1-n,r),V.add(N,r,r)};var W=new V,U=new V;V.angleBetween=function(e,t){return S.Check.typeOf.object("left",e),S.Check.typeOf.object("right",t),V.normalize(e,W),V.normalize(t,U),E.CesiumMath.acosClamped(V.dot(W,U))};var L=new V;V.mostOrthogonalAxis=function(e,t){S.Check.typeOf.object("cartesian",e),S.Check.typeOf.object("result",t);var n=V.normalize(e,L);return V.abs(n,n),t=n.x<=n.y?V.clone(V.UNIT_X,t):V.clone(V.UNIT_Y,t)},V.equals=function(e,t){return e===t||T.defined(e)&&T.defined(t)&&e.x===t.x&&e.y===t.y},V.equalsArray=function(e,t,n){return e.x===t[n]&&e.y===t[n+1]},V.equalsEpsilon=function(e,t,n,r){return e===t||T.defined(e)&&T.defined(t)&&E.CesiumMath.equalsEpsilon(e.x,t.x,n,r)&&E.CesiumMath.equalsEpsilon(e.y,t.y,n,r)},V.ZERO=Object.freeze(new V(0,0)),V.UNIT_X=Object.freeze(new V(1,0)),V.UNIT_Y=Object.freeze(new V(0,1)),V.prototype.clone=function(e){return V.clone(this,e)},V.prototype.equals=function(e){return V.equals(this,e)},V.prototype.equalsEpsilon=function(e,t,n){return V.equalsEpsilon(this,e,t,n)},V.prototype.toString=function(){return"("+this.x+", "+this.y+")"},e.Cartesian2=V,e.Cartesian3=R,e.Cartographic=d,e.Ellipsoid=g,e.Rectangle=z}); |