| 1 |
- import{a as J,b as wi}from"./chunk-APJGGXML.js";import{a as _}from"./chunk-W2I2FV32.js";import{a as Pi}from"./chunk-XKBSMKNP.js";import{a as li}from"./chunk-J4ID4JKR.js";import{d as _i,g as Ci,n as ki,o as N}from"./chunk-K2IDXOCV.js";import{a as R}from"./chunk-JX5O4HI2.js";import{a as ni}from"./chunk-CUQT2UK5.js";import{a as f}from"./chunk-I46SWINN.js";import{a as O}from"./chunk-LNIYJJXS.js";import{a as h}from"./chunk-4D2ERGZX.js";import{a as z}from"./chunk-PJGSCWXZ.js";import{a as M}from"./chunk-NUC3LT2W.js";var Ni=new f,zi=new f,Di=new f,Si=new f,Ui=new f(1,1,1),Ai=Math.cos,bi=Math.sin;function b(e){e=h(e,h.EMPTY_OBJECT);var n=h(e.radii,Ui),t=h(e.innerRadii,n),l=h(e.minimumClock,0),x=h(e.maximumClock,O.TWO_PI),P=h(e.minimumCone,0),w=h(e.maximumCone,O.PI),c=Math.round(h(e.stackPartitions,64)),u=Math.round(h(e.slicePartitions,64)),p=h(e.vertexFormat,_.DEFAULT);if(u<3)throw new z("options.slicePartitions cannot be less than three.");if(c<3)throw new z("options.stackPartitions cannot be less than three.");this._radii=f.clone(n),this._innerRadii=f.clone(t),this._minimumClock=l,this._maximumClock=x,this._minimumCone=P,this._maximumCone=w,this._stackPartitions=c,this._slicePartitions=u,this._vertexFormat=_.clone(p),this._offsetAttribute=e.offsetAttribute,this._workerName="createEllipsoidGeometry"}b.packedLength=2*f.packedLength+_.packedLength+7;b.pack=function(e,n,t){if(!M(e))throw new z("value is required");if(!M(n))throw new z("array is required");return t=h(t,0),f.pack(e._radii,n,t),t+=f.packedLength,f.pack(e._innerRadii,n,t),t+=f.packedLength,_.pack(e._vertexFormat,n,t),t+=_.packedLength,n[t++]=e._minimumClock,n[t++]=e._maximumClock,n[t++]=e._minimumCone,n[t++]=e._maximumCone,n[t++]=e._stackPartitions,n[t++]=e._slicePartitions,n[t]=h(e._offsetAttribute,-1),n};var xi=new f,Ti=new f,Fi=new _,L={radii:xi,innerRadii:Ti,vertexFormat:Fi,minimumClock:void 0,maximumClock:void 0,minimumCone:void 0,maximumCone:void 0,stackPartitions:void 0,slicePartitions:void 0,offsetAttribute:void 0};b.unpack=function(e,n,t){if(!M(e))throw new z("array is required");n=h(n,0);var l=f.unpack(e,n,xi);n+=f.packedLength;var x=f.unpack(e,n,Ti);n+=f.packedLength;var P=_.unpack(e,n,Fi);n+=_.packedLength;var w=e[n++],c=e[n++],u=e[n++],p=e[n++],i=e[n++],a=e[n++],r=e[n];return M(t)?(t._radii=f.clone(l,t._radii),t._innerRadii=f.clone(x,t._innerRadii),t._vertexFormat=_.clone(P,t._vertexFormat),t._minimumClock=w,t._maximumClock=c,t._minimumCone=u,t._maximumCone=p,t._stackPartitions=i,t._slicePartitions=a,t._offsetAttribute=r===-1?void 0:r,t):(L.minimumClock=w,L.maximumClock=c,L.minimumCone=u,L.maximumCone=p,L.stackPartitions=i,L.slicePartitions=a,L.offsetAttribute=r===-1?void 0:r,new b(L))};b.createGeometry=function(e){var n=e._radii;if(!(n.x<=0||n.y<=0||n.z<=0)){var t=e._innerRadii;if(!(t.x<=0||t.y<=0||t.z<=0)){var l=e._minimumClock,x=e._maximumClock,P=e._minimumCone,w=e._maximumCone,c=e._vertexFormat,u=e._slicePartitions+1,p=e._stackPartitions+1;u=Math.round(u*Math.abs(x-l)/O.TWO_PI),p=Math.round(p*Math.abs(w-P)/O.PI),u<2&&(u=2),p<2&&(p=2);var i,a,r=0,D=[P],S=[l];for(i=0;i<p;i++)D.push(P+i*(w-P)/(p-1));for(D.push(w),a=0;a<u;a++)S.push(l+a*(x-l)/(u-1));S.push(x);var v=D.length,m=S.length,U=0,B=1,V=t.x!==n.x||t.y!==n.y||t.z!==n.z,X=!1,mi=!1,fi=!1;V&&(B=2,P>0&&(X=!0,U+=u-1),w<Math.PI&&(mi=!0,U+=u-1),(x-l)%O.TWO_PI?(fi=!0,U+=(p-1)*2+1):U+=1);var C=m*v*B,A=new Float64Array(C*3),Z=J(new Array(C),!1),ci=J(new Array(C),!1),vi=u*p*B,Oi=6*(vi+U+1-(u+p)*B),o=Pi.createTypedArray(vi,Oi),Y=c.normal?new Float32Array(C*3):void 0,j=c.tangent?new Float32Array(C*3):void 0,H=c.bitangent?new Float32Array(C*3):void 0,G=c.st?new Float32Array(C*2):void 0,W=new Array(v),K=new Array(v);for(i=0;i<v;i++)W[i]=bi(D[i]),K[i]=Ai(D[i]);var Q=new Array(m),$=new Array(m);for(a=0;a<m;a++)$[a]=Ai(S[a]),Q[a]=bi(S[a]);for(i=0;i<v;i++)for(a=0;a<m;a++)A[r++]=n.x*W[i]*$[a],A[r++]=n.y*W[i]*Q[a],A[r++]=n.z*K[i];var I=C/2;if(V)for(i=0;i<v;i++)for(a=0;a<m;a++)A[r++]=t.x*W[i]*$[a],A[r++]=t.y*W[i]*Q[a],A[r++]=t.z*K[i],Z[I]=!0,i>0&&i!==v-1&&a!==0&&a!==m-1&&(ci[I]=!0),I++;r=0;var T,F;for(i=1;i<v-2;i++)for(T=i*m,F=(i+1)*m,a=1;a<m-2;a++)o[r++]=F+a,o[r++]=F+a+1,o[r++]=T+a+1,o[r++]=F+a,o[r++]=T+a+1,o[r++]=T+a;if(V){var ui=v*m;for(i=1;i<v-2;i++)for(T=ui+i*m,F=ui+(i+1)*m,a=1;a<m-2;a++)o[r++]=F+a,o[r++]=T+a,o[r++]=T+a+1,o[r++]=F+a,o[r++]=T+a+1,o[r++]=F+a+1}var d,s;if(V){if(X)for(s=v*m,i=1;i<m-2;i++)o[r++]=i,o[r++]=i+1,o[r++]=s+i+1,o[r++]=i,o[r++]=s+i+1,o[r++]=s+i;if(mi)for(d=v*m-m,s=v*m*B-m,i=1;i<m-2;i++)o[r++]=d+i+1,o[r++]=d+i,o[r++]=s+i,o[r++]=d+i+1,o[r++]=s+i,o[r++]=s+i+1}if(fi){for(i=1;i<v-2;i++)s=m*v+m*i,d=m*i,o[r++]=s,o[r++]=d+m,o[r++]=d,o[r++]=s,o[r++]=s+m,o[r++]=d+m;for(i=1;i<v-2;i++)s=m*v+m*(i+1)-1,d=m*(i+1)-1,o[r++]=d+m,o[r++]=s,o[r++]=d,o[r++]=d+m,o[r++]=s+m,o[r++]=s}var y=new li;c.position&&(y.position=new N({componentDatatype:R.DOUBLE,componentsPerAttribute:3,values:A}));var si=0,g=0,ii=0,ei=0,Li=C/2,hi,pi=ni.fromCartesian3(n),yi=ni.fromCartesian3(t);if(c.st||c.normal||c.tangent||c.bitangent){for(i=0;i<C;i++){hi=Z[i]?yi:pi;var Ei=f.fromArray(A,i*3,Ni),k=hi.geodeticSurfaceNormal(Ei,zi);if(c.st){var ri=Math.atan2(k.y,k.x);ri<0&&(ri+=O.TWO_PI),G[si++]=ri/O.TWO_PI,G[si++]=Math.asin(k.z)/Math.PI+.5}if(c.normal&&(ci[i]&&f.negate(k,k),Y[g++]=k.x,Y[g++]=k.y,Y[g++]=k.z),c.tangent||c.bitangent){var E=Di,ti=0,ai;if(Z[i]&&(ti=Li),!X&&i>=ti&&i<ti+m*2?ai=f.UNIT_X:ai=f.UNIT_Z,f.cross(ai,k,E),f.normalize(E,E),c.tangent&&(j[ii++]=E.x,j[ii++]=E.y,j[ii++]=E.z),c.bitangent){var q=f.cross(k,E,Si);f.normalize(q,q),H[ei++]=q.x,H[ei++]=q.y,H[ei++]=q.z}}}c.st&&(y.st=new N({componentDatatype:R.FLOAT,componentsPerAttribute:2,values:G})),c.normal&&(y.normal=new N({componentDatatype:R.FLOAT,componentsPerAttribute:3,values:Y})),c.tangent&&(y.tangent=new N({componentDatatype:R.FLOAT,componentsPerAttribute:3,values:j})),c.bitangent&&(y.bitangent=new N({componentDatatype:R.FLOAT,componentsPerAttribute:3,values:H}))}if(M(e._offsetAttribute)){var Mi=A.length,di=new Uint8Array(Mi/3),Ri=e._offsetAttribute===wi.NONE?0:1;J(di,Ri),y.applyOffset=new N({componentDatatype:R.UNSIGNED_BYTE,componentsPerAttribute:1,values:di})}return new ki({attributes:y,indices:o,primitiveType:Ci.TRIANGLES,boundingSphere:_i.fromEllipsoid(pi),offsetAttribute:e._offsetAttribute})}}};var oi;b.getUnitEllipsoid=function(){return M(oi)||(oi=b.createGeometry(new b({radii:new f(1,1,1),vertexFormat:_.POSITION_ONLY}))),oi};var re=b;export{re as a};
|