2 lines
23 KiB
JavaScript
2 lines
23 KiB
JavaScript
|
define(["exports","./Cartesian3-7e9cc2ff","./Check-741c5f3c","./defaultValue-81eec7ed","./Math-5f585871"],(function(t,e,n,i,a){"use strict";const r=new e.Cartesian3,u=new e.Cartesian3;function o(t,n,o,s,d){const c=t.x,h=t.y,l=t.z,f=n.x,m=n.y,y=n.z,p=c*c*f*f,C=h*h*m*m,g=l*l*y*y,M=p+C+g,w=Math.sqrt(1/M),x=e.Cartesian3.multiplyByScalar(t,w,r);if(M<s)return isFinite(w)?e.Cartesian3.clone(x,d):void 0;const _=o.x,S=o.y,O=o.z,q=u;q.x=x.x*_*2,q.y=x.y*S*2,q.z=x.z*O*2;let T,R,A,V,b,P,E,I,v,z,N,W=(1-w)*e.Cartesian3.magnitude(t)/(.5*e.Cartesian3.magnitude(q)),L=0;do{W-=L,A=1/(1+W*_),V=1/(1+W*S),b=1/(1+W*O),P=A*A,E=V*V,I=b*b,v=P*A,z=E*V,N=I*b,T=p*P+C*E+g*I-1,R=p*v*_+C*z*S+g*N*O;L=T/(-2*R)}while(Math.abs(T)>a.CesiumMath.EPSILON12);return i.defined(d)?(d.x=c*A,d.y=h*V,d.z=l*b,d):new e.Cartesian3(c*A,h*V,l*b)}function s(t,e,n){this.longitude=i.defaultValue(t,0),this.latitude=i.defaultValue(e,0),this.height=i.defaultValue(n,0)}s.fromRadians=function(t,e,n,a){return n=i.defaultValue(n,0),i.defined(a)?(a.longitude=t,a.latitude=e,a.height=n,a):new s(t,e,n)},s.fromDegrees=function(t,e,n,i){return t=a.CesiumMath.toRadians(t),e=a.CesiumMath.toRadians(e),s.fromRadians(t,e,n,i)};const d=new e.Cartesian3,c=new e.Cartesian3,h=new e.Cartesian3,l=new e.Cartesian3(1/6378137,1/6378137,1/6356752.314245179),f=new e.Cartesian3(1/40680631590769,1/40680631590769,1/40408299984661.445),m=a.CesiumMath.EPSILON1;function y(t,n,r,u){n=i.defaultValue(n,0),r=i.defaultValue(r,0),u=i.defaultValue(u,0),t._radii=new e.Cartesian3(n,r,u),t._radiiSquared=new e.Cartesian3(n*n,r*r,u*u),t._radiiToTheFourth=new e.Cartesian3(n*n*n*n,r*r*r*r,u*u*u*u),t._oneOverRadii=new e.Cartesian3(0===n?0:1/n,0===r?0:1/r,0===u?0:1/u),t._oneOverRadiiSquared=new e.Cartesian3(0===n?0:1/(n*n),0===r?0:1/(r*r),0===u?0:1/(u*u)),t._minimumRadius=Math.min(n,r,u),t._maximumRadius=Math.max(n,r,u),t._centerToleranceSquared=a.CesiumMath.EPSILON1,0!==t._radiiSquared.z&&(t._squaredXOverSquaredZ=t._radiiSquared.x/t._radiiSquared.z)}function p(t,e,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,y(this,t,e,n)}s.fromCartesian=function(t,n,r){const u=i.defined(n)?n.oneOverRadii:l,y=i.defined(n)?n.oneOverRadiiSquared:f,p=o(t,u,y,i.defined(n)?n._centerToleranceSquared:m,c);if(!i.defined(p))return;let C=e.Cartesian3.multiplyComponents(p,y,d);C=e.Cartesian3.normalize(C,C);const g=e.Cartesian3.subtract(t,p,h),M=Math.atan2(C.y,C.x),w=Math.asin(C.z),x=a.CesiumMath.sign(e.Cartesian3.dot(g,t))*e.Cartesian3.magnitude(g);return i.defined(r)?(r.longitude=M,r.latitude=w,r.height=x,r):new s(M,w,x)},s.toCartesian=function(t,n,i){return e.Cartesian3.fromRadians(t.longitude,t.latitude,t.height,n,i)},s.clone=function(t,e){if(i.defined(t))return i.defined(e)?(e.longitude=t.longitude,e.latitude=t.latitude,e.height=t.height,e):new s(t.longitude,t.latitude,t.height)},s.equals=function(t,e){return t===e||i.defined(t)&&i.defined(e)&&t.longitude===e.longitude&&t.latitude===e.latitude&&t.height===e.height},s.equalsEpsilon=function(t,e,n){return n=i.defaultValue(n,0),t===e||i.defined(t)&&i.defined(e)&&Math.abs(t.longitude-e.longitude)<=n&&Math.abs(t.latitude-e.latitude)<=n&&Math.abs(t.height-e.height)<=n},s.ZERO=Object.freeze(new s(0,0,0)),s.prototype.clone=function(t){return s.clone(this,t)},s.prototype.equals=function(t){return s.equals(this,t)},s.prototype.equalsEpsilon=function(t,e){return s.equalsEpsilon(this,t,e)},s.prototype.toString=function(){return`(${this.longitude}, ${this.latitude}, ${this.height})`},Object.defineProperties(p.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(){ret
|