define(["exports","./Math-b81aa1f1","./Cartesian2-69a87134","./Transforms-03dbcaf7"],function(a,R,W,h){"use strict";var r={},x=new W.Cartesian3,M=new W.Cartesian3,f=new h.Quaternion,z=new h.Matrix3;function S(a,r,e,i,t,n,s,o,l,C){var u=a+r;W.Cartesian3.multiplyByScalar(i,Math.cos(u),x),W.Cartesian3.multiplyByScalar(e,Math.sin(u),M),W.Cartesian3.add(x,M,x);var y=Math.cos(a);y*=y;var m=Math.sin(a);m*=m;var c=n/Math.sqrt(s*y+t*m)/o;return h.Quaternion.fromAxisAngle(x,c,f),h.Matrix3.fromQuaternion(f,z),h.Matrix3.multiplyByVector(z,l,C),W.Cartesian3.normalize(C,C),W.Cartesian3.multiplyByScalar(C,o,C),C}r.pointOnEllipsoid=function(a,r,e,i,t,n,s,o,l,C){return S(a,r,e,i,t,n,s,o,l,C)};var B=new W.Cartesian3,b=new W.Cartesian3,Q=new W.Cartesian3,d=new W.Cartesian3;r.raisePositionsToHeight=function(a,r,e){for(var i=r.ellipsoid,t=r.height,n=r.extrudedHeight,s=e?a.length/3*2:a.length/3,o=new Float64Array(3*s),l=a.length,C=e?l:0,u=0;u<l;u+=3){var y=u+1,m=u+2,c=W.Cartesian3.fromArray(a,u,B);i.scaleToGeodeticSurface(c,c);var h=W.Cartesian3.clone(c,b),x=i.geodeticSurfaceNormal(c,d),M=W.Cartesian3.multiplyByScalar(x,t,Q);W.Cartesian3.add(c,M,c),e&&(W.Cartesian3.multiplyByScalar(x,n,M),W.Cartesian3.add(h,M,h),o[u+C]=h.x,o[y+C]=h.y,o[m+C]=h.z),o[u]=c.x,o[y]=c.y,o[m]=c.z}return o};var G=new W.Cartesian3,H=new W.Cartesian3,N=new W.Cartesian3;r.computeEllipsePositions=function(a,r,e){var i=a.semiMinorAxis,t=a.semiMajorAxis,n=a.rotation,s=a.center,o=8*a.granularity,l=i*i,C=t*t,u=t*i,y=W.Cartesian3.magnitude(s),m=W.Cartesian3.normalize(s,G),c=W.Cartesian3.cross(W.Cartesian3.UNIT_Z,s,H);c=W.Cartesian3.normalize(c,c);var h=W.Cartesian3.cross(m,c,N),x=1+Math.ceil(R.CesiumMath.PI_OVER_TWO/o),M=R.CesiumMath.PI_OVER_TWO/(x-1),f=R.CesiumMath.PI_OVER_TWO-x*M;f<0&&(x-=Math.ceil(Math.abs(f)/M));var z,d,O,_,p,v=r?new Array(3*(x*(x+2)*2)):void 0,w=0,P=B,T=b,E=4*x*3,I=E-1,g=0,V=e?new Array(E):void 0;for(P=S(f=R.CesiumMath.PI_OVER_TWO,n,h,c,l,u,C,y,m,P),r&&(v[w++]=P.x,v[w++]=P.y,v[w++]=P.z),e&&(V[I--]=P.z,V[I--]=P.y,V[I--]=P.x),f=R.CesiumMath.PI_OVER_TWO-M,z=1;z<x+1;++z){if(P=S(f,n,h,c,l,u,C,y,m,P),T=S(Math.PI-f,n,h,c,l,u,C,y,m,T),r){for(v[w++]=P.x,v[w++]=P.y,v[w++]=P.z,O=2*z+2,d=1;d<O-1;++d)_=d/(O-1),p=W.Cartesian3.lerp(P,T,_,Q),v[w++]=p.x,v[w++]=p.y,v[w++]=p.z;v[w++]=T.x,v[w++]=T.y,v[w++]=T.z}e&&(V[I--]=P.z,V[I--]=P.y,V[I--]=P.x,V[g++]=T.x,V[g++]=T.y,V[g++]=T.z),f=R.CesiumMath.PI_OVER_TWO-(z+1)*M}for(z=x;1<z;--z){if(P=S(-(f=R.CesiumMath.PI_OVER_TWO-(z-1)*M),n,h,c,l,u,C,y,m,P),T=S(f+Math.PI,n,h,c,l,u,C,y,m,T),r){for(v[w++]=P.x,v[w++]=P.y,v[w++]=P.z,O=2*(z-1)+2,d=1;d<O-1;++d)_=d/(O-1),p=W.Cartesian3.lerp(P,T,_,Q),v[w++]=p.x,v[w++]=p.y,v[w++]=p.z;v[w++]=T.x,v[w++]=T.y,v[w++]=T.z}e&&(V[I--]=P.z,V[I--]=P.y,V[I--]=P.x,V[g++]=T.x,V[g++]=T.y,V[g++]=T.z)}P=S(-(f=R.CesiumMath.PI_OVER_TWO),n,h,c,l,u,C,y,m,P);var A={};return r&&(v[w++]=P.x,v[w++]=P.y,v[w++]=P.z,A.positions=v,A.numPts=x),e&&(V[I--]=P.z,V[I--]=P.y,V[I--]=P.x,A.outerPositions=V),A},a.EllipseGeometryLibrary=r});
|