| 1 |
- import{a as X}from"./chunk-XJVZABJP.js";import{a as M}from"./chunk-VETUMSV6.js";import{b as q}from"./chunk-OGTTQ4KL.js";import{a as C}from"./chunk-7AR5UXG3.js";import{b as D}from"./chunk-45OWWDV7.js";import{a as x}from"./chunk-CUQT2UK5.js";import{a as i,c as b}from"./chunk-I46SWINN.js";import{a as R}from"./chunk-LNIYJJXS.js";import{a as A}from"./chunk-4D2ERGZX.js";import{a as H}from"./chunk-PJGSCWXZ.js";import{a as T}from"./chunk-NUC3LT2W.js";var m={};m.numberOfPoints=function(e,t,n){var r=i.distance(e,t);return Math.ceil(r/n)};m.numberOfPointsRhumbLine=function(e,t,n){var r=Math.pow(e.longitude-t.longitude,2)+Math.pow(e.latitude-t.latitude,2);return r=Math.max(r,R.EPSILON21),Math.ceil(Math.sqrt(r/(n*n)))};var F=new b;m.extractHeights=function(e,t){for(var n=e.length,r=new Array(n),a=0;a<n;a++){var s=e[a];r[a]=t.cartesianToCartographic(s,F).height}return r};var j=new D,J=new i,Z=new i,K=new C(i.UNIT_X,0),V=new i,Q=new C(i.UNIT_X,0),$=new i,rr=new i,G=[];function z(e,t,n){var r=G;r.length=e;var a;if(t===n){for(a=0;a<e;a++)r[a]=t;return r}var s=n-t,v=s/e;for(a=0;a<e;a++){var g=t+a*v;r[a]=g}return r}function ar(e,t){var n=G;n.length=e;for(var r=0;r<e;r++)n[r]+=t*Math.sin(Math.PI*r/e);return n}var O=new b,N=new b,S=new i,B=new i,W=new i,U=new X,I=new M;function er(e,t,n,r,a,s,v,g,d){var P=r.scaleToGeodeticSurface(e,B),c=r.scaleToGeodeticSurface(t,W),o=m.numberOfPoints(e,t,n),l=r.cartesianToCartographic(P,O),w=r.cartesianToCartographic(c,N),f=z(o,a,s);d>0&&(f=ar(o,d)),U.setEndPoints(l,w);var u=U.surfaceDistance/o,h=g;l.height=a;var p=r.cartographicToCartesian(l,S);i.pack(p,v,h),h+=3;for(var y=1;y<o;y++){var L=U.interpolateUsingSurfaceDistance(y*u,N);L.height=f[y],p=r.cartographicToCartesian(L,S),i.pack(p,v,h),h+=3}return h}function tr(e,t,n,r,a,s,v,g){var d=r.scaleToGeodeticSurface(e,B),P=r.scaleToGeodeticSurface(t,W),c=r.cartesianToCartographic(d,O),o=r.cartesianToCartographic(P,N),l=m.numberOfPointsRhumbLine(c,o,n),w=z(l,a,s);I.ellipsoid.equals(r)||(I=new M(void 0,void 0,r)),I.setEndPoints(c,o);var f=I.surfaceDistance/l,u=g;c.height=a;var h=r.cartographicToCartesian(c,S);i.pack(h,v,u),u+=3;for(var p=1;p<l;p++){var y=I.interpolateUsingSurfaceDistance(p*f,N);y.height=w[p],h=r.cartographicToCartesian(y,S),i.pack(h,v,u),u+=3}return u}m.wrapLongitude=function(e,t){var n=[],r=[];if(T(e)&&e.length>0){t=A(t,D.IDENTITY);var a=D.inverseTransformation(t,j),s=D.multiplyByPoint(a,i.ZERO,J),v=i.normalize(D.multiplyByPointAsVector(a,i.UNIT_Y,Z),Z),g=C.fromPointNormal(s,v,K),d=i.normalize(D.multiplyByPointAsVector(a,i.UNIT_X,V),V),P=C.fromPointNormal(s,d,Q),c=1;n.push(i.clone(e[0]));for(var o=n[0],l=e.length,w=1;w<l;++w){var f=e[w];if(C.getPointDistance(P,o)<0||C.getPointDistance(P,f)<0){var u=q.lineSegmentPlane(o,f,g,$);if(T(u)){var h=i.multiplyByScalar(v,5e-9,rr);C.getPointDistance(g,o)<0&&i.negate(h,h),n.push(i.add(u,h,new i)),r.push(c+1),i.negate(h,h),n.push(i.add(u,h,new i)),c=1}}n.push(i.clone(e[w])),c++,o=f}r.push(c)}return{positions:n,lengths:r}};m.generateArc=function(e){T(e)||(e={});var t=e.positions;if(!T(t))throw new H("options.positions is required.");var n=t.length,r=A(e.ellipsoid,x.WGS84),a=A(e.height,0),s=Array.isArray(a);if(n<1)return[];if(n===1){var v=r.scaleToGeodeticSurface(t[0],B);if(a=s?a[0]:a,a!==0){var g=r.geodeticSurfaceNormal(v,S);i.multiplyByScalar(g,a,g),i.add(v,g,v)}return[v.x,v.y,v.z]}var d=e.minDistance;if(!T(d)){var P=A(e.granularity,R.RADIANS_PER_DEGREE);d=R.chordLength(P,r.maximumRadius)}var c=0,o;for(o=0;o<n-1;o++)c+=m.numberOfPoints(t[o],t[o+1],d);var l=e.hMax,w=(c+1)*3,f=new Array(w),u=0;for(o=0;o<n-1;o++){var h=t[o],p=t[o+1],y=s?a[o]:a,L=s?a[o+1]:a;u=er(h,p,d,r,y,L,f,u,l)}G.length=0;var k=t[n-1],E=r.cartesianToCartographic(k,O);E.height=s?a[n-1]:a;var _=r.cartographicToCartesian(E,S);return i.pack(_,f,w-3),f};var Y=new b,nr=new b;m.generateRhumbArc=function(e){T(e)||(e={});var t=e.positions;if(!T(t))throw new H("options.positions is required.");var n=t.length,r=A(e.ellipsoid,x.WGS84),a=A(e.height,0),s=Array.isArray(a);if(n<1)return[];if(n===1){var v=r.scaleToGeodeticSurface(t[0],B);if(a=s?a[0]:a,a!==0){var g=r.geodeticSurfaceNormal(v,S);i.multiplyByScalar(g,a,g),i.add(v,g,v)}return[v.x,v.y,v.z]}var d=A(e.granularity,R.RADIANS_PER_DEGREE),P=0,c,o=r.cartesianToCartographic(t[0],Y),l;for(c=0;c<n-1;c++)l=r.cartesianToCartographic(t[c+1],nr),P+=m.numberOfPointsRhumbLine(o,l,d),o=b.clone(l,Y);var w=(P+1)*3,f=new Array(w),u=0;for(c=0;c<n-1;c++){var h=t[c],p=t[c+1],y=s?a[c]:a,L=s?a[c+1]:a;u=tr(h,p,d,r,y,L,f,u)}G.length=0;var k=t[n-1],E=r.cartesianToCartographic(k,O);E.height=s?a[n-1]:a;var _=r.cartographicToCartesian(E,S);return i.pack(_,f,w-3),f};m.generateCartesianArc=function(e){for(var t=m.generateArc(e),n=t.length/3,r=new Array(n),a=0;a<n;a++)r[a]=i.unpack(t,a*3);return r};m.generateCartesianRhumbArc=function(e){for(var t=m.generateRhumbArc(e),n=t.length/3,r=new Array(n),a=0;a<n;a++)r[a]=i.unpack(t,a*3);return r};var wr=m;export{wr as a};
|