define(["exports","./Check-7b2a090c","./when-b60132fc","./Math-31e539c2"],(function(e,n,t,r){"use strict";function a(e,n,r){this.x=t.defaultValue(e,0),this.y=t.defaultValue(n,0),this.z=t.defaultValue(r,0)}a.fromSpherical=function(e,n){t.defined(n)||(n=new a);var r=e.clock,i=e.cone,u=t.defaultValue(e.magnitude,1),o=u*Math.sin(i);return n.x=o*Math.cos(r),n.y=o*Math.sin(r),n.z=u*Math.cos(i),n},a.fromElements=function(e,n,r,i){return t.defined(i)?(i.x=e,i.y=n,i.z=r,i):new a(e,n,r)},a.clone=function(e,n){if(t.defined(e))return t.defined(n)?(n.x=e.x,n.y=e.y,n.z=e.z,n):new a(e.x,e.y,e.z)},a.fromCartesian4=a.clone,a.packedLength=3,a.pack=function(e,n,r){return r=t.defaultValue(r,0),n[r++]=e.x,n[r++]=e.y,n[r]=e.z,n},a.unpack=function(e,n,r){return n=t.defaultValue(n,0),t.defined(r)||(r=new a),r.x=e[n++],r.y=e[n++],r.z=e[n],r},a.packArray=function(e,n){var r=e.length;t.defined(n)?n.length=3*r:n=new Array(3*r);for(var i=0;ir.Math3D.EPSILON12);return t.defined(o)?(o.x=d*I,o.y=l*E,o.z=f*N,o):new a(d*I,l*E,f*N)}function m(e,n,r){this.longitude=t.defaultValue(e,0),this.latitude=t.defaultValue(n,0),this.height=t.defaultValue(r,0)}m.fromRadians=function(e,n,r,a){return r=t.defaultValue(r,0),t.defined(a)?(a.longitude=e,a.latitude=n,a.height=r,a):new m(e,n,r)},m.fromDegrees=function(e,n,t,a){return e=r.Math3D.toRadians(e),n=r.Math3D.toRadians(n),m.fromRadians(e,n,t,a)};var w=new a,p=new a,g=new a,M=new a(1/6378137,1/6378137,1/6356752.314245179),v=new a(1/6378137,1/6378137,1/6378137),q=new a(1/40680631590769,1/40680631590769,1/40408299984661.445),b=new a(1/40680631590769,1/40680631590769,1/40680631590769),D=r.Math3D.EPSILON1;function S(e,n,r,a){this.x=t.defaultValue(e,0),this.y=t.defaultValue(n,0),this.z=t.defaultValue(r,0),this.w=t.defaultValue(a,0)}m.fromCartesian=function(e,n,i){var u=t.defined(n)?n.oneOverRadii:v,o=t.defined(n)?n.oneOverRadiiSquared:b,d=t.defined(n)?n._centerToleranceSquared:D;r.Math3D.equalsEpsilon(r.Math3D.Radius,6356752.314245179,r.Math3D.EPSILON10)&&(u=t.defined(n)?n.oneOverRadii:M,o=t.defined(n)?n.oneOverRadiiSquared:q);var l=x(e,u,o,d,p);if(t.defined(l)){var f=a.multiplyComponents(l,o,w);f=a.normalize(f,f);var c=a.subtract(e,l,g),y=Math.atan2(f.y,f.x),s=Math.asin(f.z),h=r.Math3D.sign(a.dot(c,e))*a.magnitude(c);return t.defined(i)?(i.longitude=y,i.latitude=s,i.height=h,i):new m(y,s,h)}},m.toCartesian=function(e,n,t){return a.fromRadians(e.longitude,e.latitude,e.height,n,t)},m.sphericalDistance=function(e,t,a,i){if(n.Check.defined("longitudeA",e),n.Check.defined("longitudeB",a),n.Check.defined("latitudeA",t),n.Check.defined("latitudeB",i),e===a&&t===i)return 0;var u=r.Math3D.toRadians(t),o=r.Math3D.toRadians(i),d=r.Math3D.toRadians(e),l=r.Math3D.toRadians(a),f=d*d+u*u,c=l*l+o*o,y=(f+c-((d-l)*(d-l)+(u-o)*(u-o)))/(2*Math.sqrt(f)*Math.sqrt(c));return y=r.Math3D.clamp(y,-1,1),Math.acos(y)*r.Math3D.Radius},m.clone=function(e,n){if(t.defined(e))return t.defined(n)?(n.longitude=e.longitude,n.latitude=e.latitude,n.height=e.height,n):new m(e.longitude,e.latitude,e.height)},m.equals=function(e,n){return e===n||t.defined(e)&&t.defined(n)&&e.longitude===n.longitude&&e.latitude===n.latitude&&e.height===n.height},m.equalsEpsilon=function(e,n,r){return e===n||t.defined(e)&&t.defined(n)&&Math.abs(e.longitude-n.longitude)<=r&&Math.abs(e.latitude-n.latitude)<=r&&Math.abs(e.height-n.height)<=r},m.ZERO=Object.freeze(new m(0,0,0)),m.prototype.clone=function(e){return m.clone(this,e)},m.prototype.equals=function(e){return m.equals(this,e)},m.prototype.equalsEpsilon=function(e,n){return m.equalsEpsilon(this,e,n)},m.prototype.toString=function(){return"("+this.longitude+", "+this.latitude+", "+this.height+")"},S.fromElements=function(e,n,r,a,i){return t.defined(i)?(i.x=e,i.y=n,i.z=r,i.w=a,i):new S(e,n,r,a)},S.fromColor=function(e,n){return t.defined(n)?(n.x=e.red,n.y=e.green,n.z=e.blue,n.w=e.alpha,n):new S(e.red,e.green,e.blue,e.alpha)},S.clone=function(e,n){if(t.defined(e))return t.defined(n)?(n.x=e.x,n.y=e.y,n.z=e.z,n.w=e.w,n):new S(e.x,e.y,e.z,e.w)},S.packedLength=4,S.pack=function(e,n,r){return r=t.defaultValue(r,0),n[r++]=e.x,n[r++]=e.y,n[r++]=e.z,n[r]=e.w,n},S.unpack=function(e,n,r){return n=t.defaultValue(n,0),t.defined(r)||(r=new S),r.x=e[n++],r.y=e[n++],r.z=e[n++],r.w=e[n],r},S.packArray=function(e,r){var a=e.length,i=4*a;if(t.defined(r)){if(!Array.isArray(r)&&r.length!==i)throw new n.DeveloperError("If result is a typed array, it must have exactly array.length * 4 elements");r.length!==i&&(r.length=i)}else r=new Array(i);for(var u=0;u=38)return r<0?Number.NEGATIVE_INFINITY:Number.POSITIVE_INFINITY;var a=r*e.x*.00390625;return a+=r*e.y*152587890625e-16,(a+=r*e.z*5.960464477539063e-8)*Math.pow(10,t)},e.Cartesian3=a,e.Cartesian4=S,e.Cartographic=m,e.scaleToGeodeticSurface=x}));