define(["exports","./when-cbf8cd21","./Check-35e1a91d","./Math-e66fad2a","./Cartesian2-4fe032cf","./Transforms-bfbebc8e","./ComponentDatatype-7ee14e67","./GeometryAttribute-21fe8c99","./GeometryAttributes-90846c5f","./IndexDatatype-66caba23","./GeometryOffsetAttribute-84f7eff3"],function(i,R,e,N,B,S,U,F,W,Y,J){"use strict";var f=new B.Cartesian3(1,1,1),j=Math.cos,q=Math.sin;function c(i){i=R.defaultValue(i,R.defaultValue.EMPTY_OBJECT);var e=R.defaultValue(i.radii,f),t=R.defaultValue(i.innerRadii,e),a=R.defaultValue(i.minimumClock,0),n=R.defaultValue(i.maximumClock,N.CesiumMath.TWO_PI),r=R.defaultValue(i.minimumCone,0),o=R.defaultValue(i.maximumCone,N.CesiumMath.PI),s=Math.round(R.defaultValue(i.stackPartitions,10)),m=Math.round(R.defaultValue(i.slicePartitions,8)),u=Math.round(R.defaultValue(i.subdivisions,128));this._radii=B.Cartesian3.clone(e),this._innerRadii=B.Cartesian3.clone(t),this._minimumClock=a,this._maximumClock=n,this._minimumCone=r,this._maximumCone=o,this._stackPartitions=s,this._slicePartitions=m,this._subdivisions=u,this._offsetAttribute=i.offsetAttribute,this._workerName="createEllipsoidOutlineGeometry"}c.packedLength=2*B.Cartesian3.packedLength+8,c.pack=function(i,e,t){return t=R.defaultValue(t,0),B.Cartesian3.pack(i._radii,e,t),t+=B.Cartesian3.packedLength,B.Cartesian3.pack(i._innerRadii,e,t),t+=B.Cartesian3.packedLength,e[t++]=i._minimumClock,e[t++]=i._maximumClock,e[t++]=i._minimumCone,e[t++]=i._maximumCone,e[t++]=i._stackPartitions,e[t++]=i._slicePartitions,e[t++]=i._subdivisions,e[t]=R.defaultValue(i._offsetAttribute,-1),e};var C=new B.Cartesian3,_=new B.Cartesian3,h={radii:C,innerRadii:_,minimumClock:void 0,maximumClock:void 0,minimumCone:void 0,maximumCone:void 0,stackPartitions:void 0,slicePartitions:void 0,subdivisions:void 0,offsetAttribute:void 0};c.unpack=function(i,e,t){e=R.defaultValue(e,0);var a=B.Cartesian3.unpack(i,e,C);e+=B.Cartesian3.packedLength;var n=B.Cartesian3.unpack(i,e,_);e+=B.Cartesian3.packedLength;var r=i[e++],o=i[e++],s=i[e++],m=i[e++],u=i[e++],f=i[e++],d=i[e++],l=i[e];return R.defined(t)?(t._radii=B.Cartesian3.clone(a,t._radii),t._innerRadii=B.Cartesian3.clone(n,t._innerRadii),t._minimumClock=r,t._maximumClock=o,t._minimumCone=s,t._maximumCone=m,t._stackPartitions=u,t._slicePartitions=f,t._subdivisions=d,t._offsetAttribute=-1===l?void 0:l,t):(h.minimumClock=r,h.maximumClock=o,h.minimumCone=s,h.maximumCone=m,h.stackPartitions=u,h.slicePartitions=f,h.subdivisions=d,h.offsetAttribute=-1===l?void 0:l,new c(h))},c.createGeometry=function(i){var e=i._radii;if(!(e.x<=0||e.y<=0||e.z<=0)){var t=i._innerRadii;if(!(t.x<=0||t.y<=0||t.z<=0)){var a=i._minimumClock,n=i._maximumClock,r=i._minimumCone,o=i._maximumCone,s=i._subdivisions,m=B.Ellipsoid.fromCartesian3(e),u=i._slicePartitions+1,f=i._stackPartitions+1;(u=Math.round(u*Math.abs(n-a)/N.CesiumMath.TWO_PI))<2&&(u=2),(f=Math.round(f*Math.abs(o-r)/N.CesiumMath.PI))<2&&(f=2);var d=0,l=1,c=t.x!==e.x||t.y!==e.y||t.z!==e.z,C=!1,_=!1;c&&(l=2,0<r&&(C=!0,d+=u),o<Math.PI&&(_=!0,d+=u));for(var h,p,y=s*l*(f+u),v=new Float64Array(3*y),b=2*(y+d-(u+f)*l),k=Y.IndexDatatype.createTypedArray(y,b),A=0,x=new Array(f),P=new Array(f),w=0;w<f;w++)p=r+w*(o-r)/(f-1),x[w]=q(p),P[w]=j(p);var M=new Array(s),V=new Array(s);for(w=0;w<s;w++)h=a+w*(n-a)/(s-1),M[w]=q(h),V[w]=j(h);for(w=0;w<f;w++)for(G=0;G<s;G++)v[A++]=e.x*x[w]*V[G],v[A++]=e.y*x[w]*M[G],v[A++]=e.z*P[w];if(c)for(w=0;w<f;w++)for(G=0;G<s;G++)v[A++]=t.x*x[w]*V[G],v[A++]=t.y*x[w]*M[G],v[A++]=t.z*P[w];for(x.length=s,P.length=s,w=0;w<s;w++)p=r+w*(o-r)/(s-1),x[w]=q(p),P[w]=j(p);for(M.length=u,V.length=u,w=0;w<u;w++)h=a+w*(n-a)/(u-1),M[w]=q(h),V[w]=j(h);for(w=0;w<s;w++)for(G=0;G<u;G++)v[A++]=e.x*x[w]*V[G],v[A++]=e.y*x[w]*M[G],v[A++]=e.z*P[w];if(c)for(w=0;w<s;w++)for(G=0;G<u;G++)v[A++]=t.x*x[w]*V[G],v[A++]=t.y*x[w]*M[G],v[A++]=t.z*P[w];for(w=A=0;w<f*l;w++)for(var g=w*s,G=0;G<s-1;G++)k[A++]=g+G,k[A++]=g+G+1;var E=f*s*l;for(w=0;w<u;w++)for(G=0;G<s-1;G++)k[A++]=E+w+G*u,k[A++]=E+w+(G+1)*u;if(c)for(E=f*s*l+u*s,w=0;w<u;w++)for(G=0;G<s-1;G++)k[A++]=E+w+G*u,k[A++]=E+w+(G+1)*u;if(c){var O=f*s*l,D=O+s*u;if(C)for(w=0;w<u;w++)k[A++]=O+w,k[A++]=D+w;if(_)for(O+=s*u-u,D+=s*u-u,w=0;w<u;w++)k[A++]=O+w,k[A++]=D+w}var I,T,z,L=new W.GeometryAttributes({position:new F.GeometryAttribute({componentDatatype:U.ComponentDatatype.DOUBLE,componentsPerAttribute:3,values:v})});return R.defined(i._offsetAttribute)&&(I=v.length,T=new Uint8Array(I/3),z=i._offsetAttribute===J.GeometryOffsetAttribute.NONE?0:1,J.arrayFill(T,z),L.applyOffset=new F.GeometryAttribute({componentDatatype:U.ComponentDatatype.UNSIGNED_BYTE,componentsPerAttribute:1,values:T})),new F.Geometry({attributes:L,indices:k,primitiveType:F.PrimitiveType.LINES,boundingSphere:S.BoundingSphere.fromEllipsoid(m),offsetAttribute:i._offsetAttribute})}}},i.EllipsoidOutlineGeometry=c});
|