define(["exports","./when-cbf8cd21","./Check-35e1a91d","./Math-e66fad2a","./WebGLConstants-95ceb4e9","./PixelFormat-d198afce"],function(e,I,a,L,t,M){"use strict";function u(e,t){if(null===e||"object"!=typeof e)return e;t=I.defaultValue(t,!1);var i,n,r=new e.constructor;for(i in e){e.hasOwnProperty(i)&&(n=e[i],t&&(n=u(n,t)),r[i]=n)}return r}function E(e,t){this.x=I.defaultValue(e,0),this.y=I.defaultValue(t,0)}E.fromElements=function(e,t,i){return I.defined(i)?(i.x=e,i.y=t,i):new E(e,t)},E.fromCartesian3=E.clone=function(e,t){if(I.defined(e))return I.defined(t)?(t.x=e.x,t.y=e.y,t):new E(e.x,e.y)},E.fromCartesian4=E.clone,E.packedLength=2,E.pack=function(e,t,i){return i=I.defaultValue(i,0),t[i++]=e.x,t[i]=e.y,t},E.unpack=function(e,t,i){return t=I.defaultValue(t,0),I.defined(i)||(i=new E),i.x=e[t++],i.y=e[t],i},E.packArray=function(e,t){var i=e.length,n=2*i;if(I.defined(t)){if(!Array.isArray(t)&&t.length!==n)throw new a.DeveloperError("If result is a typed array, it must have exactly array.length * 2 elements");t.length!==n&&(t.length=n)}else t=new Array(n);for(var r=0;rL.CesiumMath.EPSILON12);return I.defined(r)?(r.x=a*E,r.y=u*T,r.z=o*P,r):new z(a*E,u*T,o*P)}function q(e,t,i){this.longitude=I.defaultValue(e,0),this.latitude=I.defaultValue(t,0),this.height=I.defaultValue(i,0)}q.fromRadians=function(e,t,i,n){return i=I.defaultValue(i,0),I.defined(n)?(n.longitude=e,n.latitude=t,n.height=i,n):new q(e,t,i)},q.fromDegrees=function(e,t,i,n){return e=L.CesiumMath.toRadians(e),t=L.CesiumMath.toRadians(t),q.fromRadians(e,t,i,n)};var U=new z,W=new z,D=new z,B=new z(1/A.x,1/A.y,1/A.z),G=new z(1/(A.x*A.x),1/(A.y*A.y),1/(A.z*A.z)),X=L.CesiumMath.EPSILON1;function Y(e,t,i,n){t=I.defaultValue(t,0),i=I.defaultValue(i,0),n=I.defaultValue(n,0),e._radii=new z(t,i,n),e._radiiSquared=new z(t*t,i*i,n*n),e._radiiToTheFourth=new z(t*t*t*t,i*i*i*i,n*n*n*n),e._oneOverRadii=new z(0===t?0:1/t,0===i?0:1/i,0===n?0:1/n),e._oneOverRadiiSquared=new z(0===t?0:1/(t*t),0===i?0:1/(i*i),0===n?0:1/(n*n)),e._minimumRadius=Math.min(t,i,n),e._maximumRadius=Math.max(t,i,n),e._centerToleranceSquared=L.CesiumMath.EPSILON1,0!==e._radiiSquared.z&&(e._squaredXOverSquaredZ=e._radiiSquared.x/e._radiiSquared.z)}function k(e,t,i){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,Y(this,e,t,i)}q.fromCartesian=function(e,t,i){var n=I.defined(t)?t.oneOverRadii:B,r=I.defined(t)?t.oneOverRadiiSquared:G,a=F(e,n,r,I.defined(t)?t._centerToleranceSquared:X,W);if(I.defined(a)){var u=z.multiplyComponents(a,r,U),u=z.normalize(u,u),o=z.subtract(e,a,D),s=Math.atan2(u.y,u.x),d=Math.asin(u.z),m=L.CesiumMath.sign(z.dot(o,e))*z.magnitude(o);return I.defined(i)?(i.longitude=s,i.latitude=d,i.height=m,i):new q(s,d,m)}},q.toCartesian=function(e,t,i){return z.fromRadians(e.longitude,e.latitude,e.height,t,i)},q.clone=function(e,t){if(I.defined(e))return I.defined(t)?(t.longitude=e.longitude,t.latitude=e.latitude,t.height=e.height,t):new q(e.longitude,e.latitude,e.height)},q.equals=function(e,t){return e===t||I.defined(e)&&I.defined(t)&&e.longitude===t.longitude&&e.latitude===t.latitude&&e.height===t.height},q.equalsEpsilon=function(e,t,i){return i=I.defaultValue(i,0),e===t||I.defined(e)&&I.defined(t)&&Math.abs(e.longitude-t.longitude)<=i&&Math.abs(e.latitude-t.latitude)<=i&&Math.abs(e.height-t.height)<=i},q.ZERO=Object.freeze(new q(0,0,0)),q.prototype.clone=function(e){return q.clone(this,e)},q.prototype.equals=function(e){return q.equals(this,e)},q.prototype.equalsEpsilon=function(e,t){return q.equalsEpsilon(this,e,t)},q.prototype.toString=function(){return"("+this.longitude+", "+this.latitude+", "+this.height+")"},Object.defineProperties(k.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}}}),k.clone=function(e,t){if(I.defined(e)){var i=e._radii;return I.defined(t)?(z.clone(i,t._radii),z.clone(e._radiiSquared,t._radiiSquared),z.clone(e._radiiToTheFourth,t._radiiToTheFourth),z.clone(e._oneOverRadii,t._oneOverRadii),z.clone(e._oneOverRadiiSquared,t._oneOverRadiiSquared),t._minimumRadius=e._minimumRadius,t._maximumRadius=e._maximumRadius,t._centerToleranceSquared=e._centerToleranceSquared,t):new k(i.x,i.y,i.z)}},k.fromCartesian3=function(e,t){return I.defined(t)||(t=new k),I.defined(e)&&Y(t,e.x,e.y,e.z),t},k.WGS84=Object.freeze(new k(A.x,A.y,A.z)),k.UNIT_SPHERE=Object.freeze(new k(1,1,1)),k.MOON=Object.freeze(new k(L.CesiumMath.LUNAR_RADIUS,L.CesiumMath.LUNAR_RADIUS,L.CesiumMath.LUNAR_RADIUS)),k.prototype.clone=function(e){return k.clone(this,e)},k.packedLength=z.packedLength,k.pack=function(e,t,i){return i=I.defaultValue(i,0),z.pack(e._radii,t,i),t},k.unpack=function(e,t,i){t=I.defaultValue(t,0);var n=z.unpack(e,t);return k.fromCartesian3(n,i)},k.prototype.geocentricSurfaceNormal=z.normalize,k.prototype.geodeticSurfaceNormalCartographic=function(e,t){var i=e.longitude,n=e.latitude,r=Math.cos(n),a=r*Math.cos(i),u=r*Math.sin(i),o=Math.sin(n);return I.defined(t)||(t=new z),t.x=a,t.y=u,t.z=o,z.normalize(t,t)},k.prototype.geodeticSurfaceNormal=function(e,t){if(!z.equalsEpsilon(e,z.ZERO,L.CesiumMath.EPSILON14))return I.defined(t)||(t=new z),t=z.multiplyComponents(e,this._oneOverRadiiSquared,t),z.normalize(t,t)};var j=new z,H=new z;k.prototype.cartographicToCartesian=function(e,t){var i=j,n=H;this.geodeticSurfaceNormalCartographic(e,i),z.multiplyComponents(this._radiiSquared,i,n);var r=Math.sqrt(z.dot(i,n));return z.divideByScalar(n,r,n),z.multiplyByScalar(i,e.height,i),I.defined(t)||(t=new z),z.add(n,i,t)},k.prototype.cartographicArrayToCartesianArray=function(e,t){var i=e.length;I.defined(t)?t.length=i:t=new Array(i);for(var n=0;n=this._radii.z-t))return i};var Q=[.14887433898163,.43339539412925,.67940956829902,.86506336668898,.97390652851717,0],$=[.29552422471475,.26926671930999,.21908636251598,.14945134915058,.066671344308684,0];function ee(e,t,i){for(var n=.5*(t+e),r=.5*(t-e),a=0,u=0;u<5;u++){var o=r*Q[u];a+=$[u]*(i(n+o)+i(n-o))}return a*=r}function te(e,t,i,n){this.west=I.defaultValue(e,0),this.south=I.defaultValue(t,0),this.east=I.defaultValue(i,0),this.north=I.defaultValue(n,0)}k.prototype.surfaceArea=function(e){for(var t=e.west,i=e.east,n=e.south,r=e.north;iL.CesiumMath.PI&&(n-=L.CesiumMath.TWO_PI),i>L.CesiumMath.PI&&(i-=L.CesiumMath.TWO_PI)),I.defined(t)?(t.west=i,t.south=u,t.east=n,t.north=o,t):new te(i,u,n,o)},te.fromCartesianArray=function(e,t,i){t=I.defaultValue(t,k.WGS84);for(var n=Number.MAX_VALUE,r=-Number.MAX_VALUE,a=Number.MAX_VALUE,u=-Number.MAX_VALUE,o=Number.MAX_VALUE,s=-Number.MAX_VALUE,d=0,m=e.length;dL.CesiumMath.PI&&(r-=L.CesiumMath.TWO_PI),n>L.CesiumMath.PI&&(n-=L.CesiumMath.TWO_PI)),I.defined(i)?(i.west=n,i.south=o,i.east=r,i.north=s,i):new te(n,o,r,s)},te.clone=function(e,t){if(I.defined(e))return I.defined(t)?(t.west=e.west,t.south=e.south,t.east=e.east,t.north=e.north,t):new te(e.west,e.south,e.east,e.north)},te.equalsEpsilon=function(e,t,i){return i=I.defaultValue(i,0),e===t||I.defined(e)&&I.defined(t)&&Math.abs(e.west-t.west)<=i&&Math.abs(e.south-t.south)<=i&&Math.abs(e.east-t.east)<=i&&Math.abs(e.north-t.north)<=i},te.prototype.clone=function(e){return te.clone(this,e)},te.prototype.equals=function(e){return te.equals(this,e)},te.equals=function(e,t){return e===t||I.defined(e)&&I.defined(t)&&e.west===t.west&&e.south===t.south&&e.east===t.east&&e.north===t.north},te.prototype.equalsEpsilon=function(e,t){return te.equalsEpsilon(this,e,t)},te.validate=function(e){},te.southwest=function(e,t){return I.defined(t)?(t.longitude=e.west,t.latitude=e.south,t.height=0,t):new q(e.west,e.south)},te.northwest=function(e,t){return I.defined(t)?(t.longitude=e.west,t.latitude=e.north,t.height=0,t):new q(e.west,e.north)},te.northeast=function(e,t){return I.defined(t)?(t.longitude=e.east,t.latitude=e.north,t.height=0,t):new q(e.east,e.north)},te.southeast=function(e,t){return I.defined(t)?(t.longitude=e.east,t.latitude=e.south,t.height=0,t):new q(e.east,e.south)},te.center=function(e,t){var i=e.east,n=e.west;i=e.south&&n<=e.north};var ie=new q;te.subsample=function(e,t,i,n){t=I.defaultValue(t,k.WGS84),i=I.defaultValue(i,0),I.defined(n)||(n=[]);var r=0,a=e.north,u=e.south,o=e.east,s=e.west,d=ie;d.height=i,d.longitude=s,d.latitude=a,n[r]=t.cartographicToCartesian(d,n[r]),r++,d.longitude=o,n[r]=t.cartographicToCartesian(d,n[r]),r++,d.latitude=u,n[r]=t.cartographicToCartesian(d,n[r]),r++,d.longitude=s,n[r]=t.cartographicToCartesian(d,n[r]),r++,d.latitude=a<0?a:0