/** * @license * Cesium - https://github.com/CesiumGS/cesium * Version 1.127 * * Copyright 2011-2022 Cesium Contributors * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. * * Columbus View (Pat. Pend.) * * Portions licensed separately. * See https://github.com/CesiumGS/cesium/blob/main/LICENSE.md for full licensing details. */import{casZ}from"./chunk-BKSIEBAA.js";import{aaso,basft,easb}from"./chunk-JMSSU44E.js";import{aasR}from"./chunk-4UYSGV57.js";import{aasH}from"./chunk-VLPNAR64.js";import{aasw,baset}from"./chunk-GE5NEIZC.js";import{easg}from"./chunk-35CVRQTC.js";varnt={};nt.computeDiscriminant=function(t,e,r){if(typeoft!="number")throwneww("a is a required number.");if(typeofe!="number")throwneww("b is a required number.");if(typeofr!="number")throwneww("c is a required number.");returne*e-4*t*r};functionmt(t,e,r){letn=t+e;returnR.sign(t)!==R.sign(e)&&Math.abs(n/Math.max(Math.abs(t),Math.abs(e)))<r?0:n}nt.computeRealRoots=function(t,e,r){if(typeoft!="number")throwneww("a is a required number.");if(typeofe!="number")throwneww("b is a required number.");if(typeofr!="number")throwneww("c is a required number.");letn;if(t===0)returne===0?[]:[-r/e];if(e===0){if(r===0)return[0,0];leta=Math.abs(r),f=Math.abs(t);if(a<f&&a/f<R.EPSILON14)return[0,0];if(a>f&&f/a<R.EPSILON14)return[];if(n=-r/t,n<0)return[];letl=Math.sqrt(n);return[-l,l]}elseif(r===0)returnn=-e/t,n<0?[n,0]:[0,n];leti=e*e,c=4*t*r,s=mt(i,-c,R.EPSILON14);if(s<0)return[];letu=-.5*mt(e,R.sign(e)*Math.sqrt(s),R.EPSILON14);returne>0?[u/t,r/u]:[r/u,u/t]};varT=nt;varot={};ot.computeDiscriminant=function(t,e,r,n){if(typeoft!="number")throwneww("a is a required number.");if(typeofe!="number")throwneww("b is a required number.");if(typeofr!="number")throwneww("c is a required number.");if(typeofn!="number")throwneww("d is a required number.");leti=t*t,c=e*e,s=r*r,u=n*n;return18*t*e*r*n+c*s-27*i*u-4*(t*s*r+c*e*n)};functionrt(t,e,r,n){leti=t,c=e/3,s=r/3,u=n,a=i*s,f=c*u,l=c*c,d=s*s,p=i*s-l,q=i*u-c*s,m=c*u-d,h=4*p*m-q*q,E,D;if(h<0){letX,k,G;l*f>=a*d?(X=i,k=p,G=-2*c*p+i*q):(X=u,k=m,G=-u*q+2*s*m);letat=-(G<0?-1:1)*Math.abs(X)*Math.sqrt(-h);D=-G+at;let$=D/2,j=$<0?-Math.pow(-$,1/3):Math.pow($,1/3),tt=D===at?-j:-k/j;returnE=k<=0?j+tt:-G/(j*j+tt*tt+k),l*f>=a*d?[(E-c)/i]:[-u/(E+s)]}letW=p,V=-2*c*p+i*q,L=m,B=-u*q+2*s*m,I=Math.sqrt(h),C=Math.sqrt(3)/2,P=Math.abs(Math.atan2(i*I,-V)/3);E=2*Math.sqrt(-W);lety=Math.cos(P);D=E*y;letS=E*(-y/2-C*Math.sin(P)),M=D+S>2*c?D-c:S-c,N=i,x=M/N;P=Math.abs(Math.atan2(u*I,-B)/3),E=2*Math.sqrt(-L),y=Math.cos(P),D=E*y,S=E*(-y/2-C*Math.sin(P));let_=-u,A=D+S<2*s?D+s:S+s,v=_/A,yt=N*A,ut=-M*A-N*_,bt=M*_,U=(s*ut-c*bt)/(-c*ut+s*yt);returnx<=U?x<=v?U<=v?[x,U,v]:[x,v,U]:[v,x,U]:x<=v?[U,x,v]:U<=v?[U,v,x]:[v,U,x]}ot.computeRealRoots=function(t,e,r,n){if(typeoft!="number")throwneww("a is a required number.");if(typeofe!="number")throwneww("b is a required number.");if(typeofr!="number")throwneww("c is a required number.");if(typeofn!="number")throwneww("d is a required number.");leti,c;if(t===0)returnT.computeRealRoots(e,r,n);if(e===0){if(r===0){if(n===0)return[0,0,0];c=-n/t;lets=c<0?-Math.pow(-c,1/3):Math.pow(c,1/3);return[s,s,s]}elseif(n===0)returni=T.computeRealRoots(t,0,r),i.Length===0?[0]:[i[0],0,i[1]];returnrt(t,0,r,n)}else{if(r===0)returnn===0?(c=-e/t,c<0?[c,0,0]:[0,0,c]):rt(t,e,0,n);if(n===0)returni=T.computeRealRoots(t,e,r),i.length===0?[0]:i[1]<=0?[i[0],i[1],0]:i[0]>=0?[0,i[0],i[1]]:[i[0],0,i[1]]}returnrt(t,e,r,n)};varF=ot;varit={};it.computeDiscriminant=function(t,e,r,n,i){if(typeoft!="number")throwneww("a is a required number.");if(typeofe!="number")throwneww("b is a required number.");if(typeofr!="number")throwneww("c is a required number.");if(typeofn!="number")throwneww("d is a required number.");if(typeofi!="number")throwneww("e is a required number.");letc=t*t,s=c*t,u=e*e,a=u*e,f=r*r,l=f*r,d=n*n,p=d*n,q=i*i,m=q*i;returnu*f*d-4*a*p-4*t*l*d+18*t*e*r*p-27*c*d*d+256*s*m+i*(18*a*r*n-4*u*l+16*t*f*f-80*t*e*f*n-6*t*u*d+144*c*r*d)+q*(144*t*u*r-27*u*u-128*c*f-192*c*e*n)};functionz(t,e,r,n){leti=t*t,c=e-3*i/8,s=r-e*t/2+i*t/8,u=n-r*t/4+e*i/16-3*i*i/256,a=F.computeRealRoots(1,2*c,c*c-4*u,-s*s);if(a.length>0){letf=-t/4,l=a[a.length-1];if(Math.abs(l)<R.EPSILON14){letd=T.computeRealRoots(1,c,u);if(d.length===2){letp=d[0],q=d[1],m;if(p>=0&&q>=0){leth=Math.sqrt(p),E=Math.sqrt(q);return[f-E,f-h,f+h,f+E]}else{if(p>=0&&q<0)returnm=Math.sqrt(p),[f-m,f+m];if(p<0&&q>=0)returnm=Math.sqrt(q),[f-m,f+m]}}return[]}elseif(l>0){letd=Math.sqrt(l),p=(c+l-s/d)/2,q=(c+l+s/d)/2,m=T.computeRealRoots(1,d,p),h=T.computeRealRoots(1,-d,q);returnm.length!==0?(m[0]+=f,m[1]+=f,h.length!==0?(h[0]+=f,h[1]+=f,m[1]<=h[0]?[m[0],m[1],h[0],h[1]]:h[1]<=m[0]?[h[0],h[1],m[0],m[1]]:m[0]>=h[0]&&m[1]<=h[1]?[h[0],m[0],m[1],h[1]]:h[0]>=m[0]&&h[1]<=m[1]?[m[0],h[0],h[1],m[1]]:m[0]>h[0]&&m[0]<h[1]?[h[0],m[0],h[1],m[1]]:[m[0],h[0],m[1],h[1]]):m):h.length!==0?(h[0]+=f,h[1]+=f,h):[]}}return[]}functionY(t,e,r,n){leti=r*r,c=e*e,s=t*t,u=-2*e,a=r*t+c-4*n,f=s*n-r*e*t+i,l=F.computeRealRoots(1,u,a,f);if(l.length>0){letd=l[0],p=e-d,q=p*p,m=t/2,h=p/2,E=q-4*n,D=q+4*Math.abs(n),W=s-4*d,V=s+4*Math.abs(d),L,B;if(d<0||E*V<W*D){letN=Math.sqrt(W);L=N/2,B=N===0?0:(t*h-r)/N}else{letN=Math.sqrt(E);L=N===0?0:(t*h-r)/N,B=N/2}letI,C;m===0&&L===0?(I=0,C=0):R.sign(m)===R.sign(L)?(I=m+L,C=d/I):(C=m-L,I=d/C);letP,y;h===0&&B===0?(P=0,y=0):R.sign(h)===R.sign(B)?(P=h+B,y=n/P):(y=h-B,P=n/y);letS=T.computeRealRoots(1,I,P),M=T.computeRealRoots(1,C,y);if(S.length!==0)returnM.length!==0?S[1]<=M[0]?[S[0],S[1],M[0],M[1]]:M[1]<=S[0]?[M[0],M[1],S[0],S[1]]:S[0]>=M[0]&&S[1]<=M[1]?[M[0],S[0],S[1],M[1]]:M[0]>=S[0]&&M[1]<=S[1]?[S[0],M[0],M[1],S[1]]:S[0]>M[0]&&S[0]<M[1]?[M[0],S[0],M[1],S[1]]:[S[0],M[0],S[1],M[1]]:S;if(M.length!==0)returnM}return[]}it.computeRealRoots=function(t,e,r,n,i){if(typeoft!="number")throwneww("a is a required number.");if(typeofe!="number")throwneww("b is a required number.");if(typeofr!="number")throwneww("c is a required number.");if(typeofn!="number")throwneww("d is a required number.");if(typeofi!="number")throwneww("e is a required number.");if(Math.abs(t)<R.EPSILON15)returnF.computeRealRoots(e,r,n,i);letc=e/t,s=r/t,u=n/t,a=i/t,f=c<0?1:0;switch(f+=s<0?f+1:f,f+=u<0?f+1:f,f+=a<0?f+1:f,f){case0:returnz(c,s,u,a);case1:returnY(c,s,u,a);case2:returnY(c,s,u,a);case3:returnz(c,s,u,a);case4:returnz(c,s,u,a);case5:returnY(c,s,u,a);case6:returnz(c,s,u,a);case7:returnz(c,s,u,a);case8:returnY(c,s,u,a);case9:returnz(c,s,u,a);case10:returnz(c,s,u,a);case11:returnY(c,s,u,a);case12:returnz(c,s,u,a);case13:returnz(c,s,u,a);case14:returnz(c,s,u,a);case15:returnz(c,s,u,a);default:return}};vardt=it;functionJ(t,e){e=o.clone(H(e,o.ZERO)),o.equals(e,o.ZERO)||o.normalize(e,e),this.origin=o.clone(H(t,o.ZERO)),this.direction=e}J.clone=function(t,e){if(g(t))returng(e)?(e.origin=o.clone(t.origin),e.direction=o.clone(t.direction),e):newJ(t.origin,t.direction)};J.getPoint=function(t,e,r){returnet.typeOf.object("ray",t),et.typeOf.number("t",e),g(r)||(r=newo),r=o.multiplyByScalar(t.direction,e,r),o.add(t.origin,r,r)};varst=J;varO={};O.rayPlane=function(t,e,r){if(!g(t))throwneww("ray is required.");if(!g(e))throwneww("plane is required.");g(r)||(r=newo);letn=t.origin,i=t.direction,c=e.normal,s=o.dot(c,i);if(Math.abs(s)<R.EPSILON15)return;letu=(-e.distance-o.dot(c,n))/s;if(!(u<0))returnr=o.multiplyByScalar(i,u,r),o.add(n,r,r)};varOt=newo,Pt=newo,Mt=newo,lt=newo,ht=newo;O.rayTriangleParametric=function(t,e,r,n,i){if(!g(t))throwneww("ray is required.");if(!g(e))throwneww("p0 is required.");if(!g(r))throwneww("p1 is required.");if(!g(n))throwneww("p2 is required.");i=H(i,!1);letc=t.origin,s=t.direction,u=o.subtract(r,e,Ot),a=o.subtract(n,e,Pt),f=o.cross(s,a,Mt),l=o.dot(u,f),d,p,q,m,h;if(i){if(l<R.EPSILON6||(d=o.subtract(c,e,lt),q=o.dot(d,f),q<0||q>l)||(p=o.cross(d,u,ht),m=o.dot(s,p),m<0||q+m>l))return;h=o.dot(a,p)/l}else{if(Math.abs(l)<R.EPSILON6)return;letE=1/l;if(d=o.subtract(c,e,lt),q=o.dot(d,f)*E,q<0||q>1||(p=o.cross(d,u,ht),m=o.dot(s,p)*E,m<0||q+m>1))return;h=o.dot(a,p)*E}returnh};O.rayTriangle=function(t,e,r,n,i,c){lets=O.rayTriangleParametric(t,e,r,n,i);if(!(!g(s)||s<0))returng(c)||(c=newo),o.multiplyByScalar(t.direction,s,c),o.add(t.origin,c,c)};varEt=newst;O.lineSegmentTriangle=function(t,e,r,n,i,c,s){if(!g(t))throwneww("v0 is required.");if(!g(e))throwneww("v1 is required.");if(!g(r))throwneww("p0 is required.");if(!g(n))throwneww("p1 is required.");if(!g(i))throwneww("p2 is required.");letu=Et;o.clone(t,u.origin),o.subtract(e,t,u.direction),o.normalize(u.direction,u.direction);leta=O.rayTriangleParametric(u,r,n,i,c);if(!(!g(a)||a<0||a>o.distance(t,e)))returng(s)||(s=newo),o.multiplyByScalar(u.direction,a,s),o.add(u.origin,s,s)};functionCt(t,e,r,n){leti=e*e-4*t*r;if(i<0)return;if(i>0){lets=1/(2*t),u=Math.sqrt(i),a=(-e+u)*s,f=(-e-u)*s;returna<f?(n.root0=a,n.root1=f):(n.root0=f,n.root1=a),n}letc=-e/(2*t);if(c!==0)returnn.root0=n.root1=c,n}varNt={root0:0,root1:0};functionRt(t,e,r){g(r)||(r=newZ);letn=t.origin,i=t.direction,c=e.center,s=e.radius*e.radius,u=o.subtract(n,c,Mt),a=o.dot(i,i),f=2*o.dot(i,u),l=o.magnitudeSquared(u)-s,d=Ct(a,f,l,Nt);if(g(d))returnr.start=d.root0,r.stop=d.root1,r}O.raySphere=function(t,e,r){if(!g(t))throwneww("ray is required.");if(!g(e))throwneww("sphere is required.");if(r=Rt(t,e,r),!(!g(r)||r.stop<0))returnr.start=Math.max(r.start,0),r};varLt=newst;O.lineSegmentSphere=function(t,e,r,n){if(!g(t))throwneww("p0 is required.");if(!g(e))throwneww("p1 is required.");if(!g(r))throwneww("sphere is required.");leti=Lt;o.clone(t,i.origin);letc=o.subtract(e,t,i.direction),s=o.magnitude(c);if(o.normalize(c,c),n=Rt(i,r,n),!(!g(n)||n.stop<0||n.start>s))returnn.start=Math.max(n.start,0),n.stop=Math.min(n.stop,s),n};varIt=newo,Dt=newo;O.rayEllipsoid=function(t,e){if(!g(t))throwneww("ray is required.");if(!g(e))throwneww("ellipsoid is required.");letr=e.oneOverRadii,n=o.multiplyComponents(r,t.origin,It),i=o.multiplyComponents(r,t.direction,Dt),c=o.magnitudeSquared(n),s=o.dot(n,i),u,a,f,l,d;if(c>1){if(s>=0)return;letp=s*s;if(u=c-1,a=o.magnitudeSquared(i),f=a*u,p<f)return;if(p>f){l=s*s-f,d=-s+Math.sqrt(l);letm=d/a,h=u/d;returnm<h?newZ(m,h):{start:h,stop:m}}letq=Math.sqrt(u/a);returnnewZ(q,q)}elseif(c<1)returnu=c-1,a=o.magnitudeSquared(i),f=a*u,l=s*s-f,d=-s+Math.sqrt(l),newZ(0,d/a);if(s<0)returna=o.magnitudeSquared(i),newZ(0,-s/a)};functionQ(t,e,r){letn=t+e;returnR.sign(t)!==R.sign(e)&&Math.abs(n/Math.max(Math.abs(t),Math.abs(e)))<r?0:n}O.quadraticVectorExpression=function(t,e,r,n,i){letc=n*n,s=i*i,u=(t[b.COLUMN1ROW1]-t[b.COLUMN2ROW2])*s,a=i*(n*Q(t[b.COLUMN1ROW0],t[b.COLUMN0ROW1],R.EPSILON15)+e.y),f=t[b.COLUMN0ROW0]*c+t[b.COLUMN2ROW2]*s+n*e.x+r,l=s*Q(t[b.COLUMN2ROW1],t[b.COLUMN1ROW2],R.EPSILON15),d=i*(n*Q(t[b.COLUMN2ROW0],t[b.COLUMN0ROW2])+e.z),p,q=[];if(d===0&&l===0){if(p=T.computeRealRoots(u,a,f),p.length===0)returnq;letP=p[0],y=Math.sqrt(Math.max(1-P*P,0));if(q.push(newo(n,i*P,i*-y)),q.push(newo(n,i*P,i*y)),p.length===2){letS=p[1],M=Math.sqrt(Math.max(1-S*S,0));q.push(newo(n,i*S,i*-M)),q.push(newo(n,i*S,i*M))}returnq}letm=d*d,h=l*l,E=u*u,D=d*l,W=E+h,V=2*(a*u+D),L=2*f*u+a*a-h+m,B=2*(f*a-D),I=f*f-m;if(W===0&&V===0&&L===0&&B===0)returnq;p=dt.computeRealRoots(W,V,L,B,I);letC=p.length;if(C===0)returnq;for(letP=0;P<C;++P){lety=p[P],S=y*y,M=Math.max(1-S,0),N=Math.sqrt(M),x;R.sign(u)===R.sign(f)?x=Q(u*S+f,a*y,R.EPSILON12):R.sign(f)===R.sign(a*y)?x=Q(u*S,a*y+f,R.EPSILON12):x=Q(u*S+a*y,f,R.EPSILON12);let_=Q(l*y,d,R.EPSILON15),A=x*_;A<0?q.push(newo(n,i*y,i*N)):A>0?q.push(newo(n,i*y,i*-N)):N!==0?(q.push(newo(n,i*y,i*-N)),q.push(newo(n,i*y,i*N)),++P):q.push(newo(n,i*y,i*N))}returnq};varct=newo,wt=newo,qt=newo,K=newo,Bt=newo,xt=newb,Tt=newb,zt=newb,Wt=newb,Vt=newb,gt=newb,pt=newb,St=newo,vt=newo,Ut=newft;O.grazingAltitudeLocation=function(t,e){if(!g(t))throwneww("ray is required.");if(!g(e))throwneww("ellipsoid is required.");letr=t.origin,n=t.direction;if(!o.equals(r,o.ZERO)){letI=e.geodeticSurfaceNormal(r,ct);if(o.dot(n,I)>=0)returnr}leti=g(this.rayEllipsoid(t,e)),c=e.transformPositionToScaledSpace(n,ct),s=o.normalize(c,c),u=o.mostOrthogonalAxis(c,K),a=o.normalize(o.cross(u,s,wt),wt),f=o.normalize(o.cross(s,a,qt),qt),l=xt;l[0]=s.x,l[1]=s.y,l[2]=s.z,l[3]=a.x,l[4]=a.y,l[5]=a.z,l[6]=f.x,l[7]=f.y,l[8]=f.z;letd=b.transpose(l,Tt),p=b.fromScale(e.radii,zt),q=b.fromScale(e.oneOverRadii,Wt),m=Vt;m[0]=0,m[1]=-n.z,m[2]=n.y,m[3]=n.z,m[4]=0,m[5]=-n.x,m[6]=-n.y,m[7]=n.x,m[8]=0;leth=b.multiply(b.multiply(d,q,gt),m,gt),E=b.multiply(b.multiply(h,p,pt),l,pt),D=b.multiplyByVector(h,r,Bt),W=O.quadraticVectorExpression(E,o.negate(D,ct),0,0,1),V,L,B=W.length;if(B>0){letI=o.clone(o.ZERO,vt),C=Number.NEGATIVE_INFINITY;for(lety=0;y<B;++y){V=b.multiplyByVector(p,b.multiplyByVector(l,W[y],St),St);letS=o.normalize(o.subtract(V,r,K),K),M=o.dot(S,n);M>C&&(C=M,I=o.clone(V,I))}letP=e.cartesianToCartographic(I,Ut);returnC=R.clamp(C,0,1),L=o.magnitude(o.subtract(I,r,K))*Math.sqrt(1-C*C),L=i?-L:L,P.height=L,e.cartographicToCartesian(P,newo)}};varQt=newo;O.lineSegmentPlane=function(t,e,r,n){if(!g(t))throwneww("endPoint0 is required.");if(!g(e))throwneww("endPoint1 is required.");if(!g(r))throwneww("plane is required.");g(n)||(n=newo);leti=o.subtract(e,t,Qt),c=r.normal,s=o.dot(c,i);if(Math.abs(s)<R.EPSILON6)return;letu=o.dot(c,t),a=-(r.distance+u)/s;if(!(a<0||a>1))returno.multiplyByScalar(i,a,n),o.add(t,n,n),n};O.trianglePlaneIntersection=function(t,e,r,n){if(!g(t)||!g(e)||!g(r)||!g(n))throwneww("p0, p1, p2, and plane are required.");leti=n.normal,c=n.distance,s=o.dot(i,t)+c<0,u=o.dot(i,e)+c<0,a=o.dot(i,r)+c<0,f=0;f+=s?1:0,f+=u?1:0,f+=a?1:0;letl,d;if((f===1||f===2)&&(l=newo,d=newo),f===1){if(s)returnO.lineSegmentPlane(t,e,n,l),O.lineSegmentPlane(t,r,n,d),{positions:[t,e,r,l,d],indices:[0,3,4,1,2,4,1,4,3]};if(u)returnO.lineSegmentPlane(e,r,n,l),O.lineSegmentPlane(e,t,n,d),{positions:[t,e,r,l,d],indices:[1,3,4,2,0,4,2,4,3]};if(a)returnO.lineSegmentPlane(r,t,n,l),O.lineSegmentPlane(r,e,n,d),{positions:[t,e,r,l,d],indices:[2,3,4,0,1,4,0,4,3]}}elseif(f===2)if(s)if(u){if(!a)returnO.lineSegmentPlane(t,r,n,l),O.lineSegmentPlane(e,r,n,d),{positions:[t,e,r,l,d],indices:[0,1,4,0,4,3,2,3,4]}}elsereturnO.lineSegmentPlane(r,e,n,l),O.lineSegmentPlane(t,e,n,d),{positions:[t,e,r,l,d],indices:[2,0,4,2,4,3,1,3,4]};elsereturnO.lineSegmentPlane(e,t,n,l),O.lineSegmentPlane(r,t,n,d),{positions:[t,e,r,l,d],indices:[1,2,4,1,4,3,0,3,4]}};varwe=O;export{stasa,weasb};