WallGeometryLibrary-dfadd129.js 2.0 KB

1
  1. define(["exports","./arrayRemoveDuplicates-85770175","./Cartesian3-7e9cc2ff","./Matrix2-e3fb4559","./defaultValue-81eec7ed","./Math-5f585871","./PolylinePipeline-de59c85a"],(function(e,t,i,n,o,r,a){"use strict";const s={};function l(e,t){return r.CesiumMath.equalsEpsilon(e.latitude,t.latitude,r.CesiumMath.EPSILON10)&&r.CesiumMath.equalsEpsilon(e.longitude,t.longitude,r.CesiumMath.EPSILON10)}const h=new n.Cartographic,c=new n.Cartographic;const g=new Array(2),u=new Array(2),p={positions:void 0,height:void 0,granularity:void 0,ellipsoid:void 0};s.computePositions=function(e,s,d,f,y,m){const P=function(e,r,a,s){const g=(r=t.arrayRemoveDuplicates(r,i.Cartesian3.equalsEpsilon)).length;if(g<2)return;const u=o.defined(s),p=o.defined(a),d=new Array(g),f=new Array(g),y=new Array(g),m=r[0];d[0]=m;const P=e.cartesianToCartographic(m,h);p&&(P.height=a[0]),f[0]=P.height,y[0]=u?s[0]:0;let A=f[0]===y[0],C=1;for(let t=1;t<g;++t){const i=r[t],o=e.cartesianToCartographic(i,c);p&&(o.height=a[t]),A=A&&0===o.height,l(P,o)?P.height<o.height&&(f[C-1]=o.height):(d[C]=i,f[C]=o.height,y[C]=u?s[t]:0,A=A&&f[C]===y[C],n.Cartographic.clone(o,P),++C)}return A||C<2?void 0:(d.length=C,f.length=C,y.length=C,{positions:d,topHeights:f,bottomHeights:y})}(e,s,d,f);if(!o.defined(P))return;s=P.positions,d=P.topHeights,f=P.bottomHeights;const A=s.length,C=A-2;let w,v;const M=r.CesiumMath.chordLength(y,e.maximumRadius),b=p;if(b.minDistance=M,b.ellipsoid=e,m){let e,t=0;for(e=0;e<A-1;e++)t+=a.PolylinePipeline.numberOfPoints(s[e],s[e+1],M)+1;w=new Float64Array(3*t),v=new Float64Array(3*t);const i=g,n=u;b.positions=i,b.height=n;let o=0;for(e=0;e<A-1;e++){i[0]=s[e],i[1]=s[e+1],n[0]=d[e],n[1]=d[e+1];const t=a.PolylinePipeline.generateArc(b);w.set(t,o),n[0]=f[e],n[1]=f[e+1],v.set(a.PolylinePipeline.generateArc(b),o),o+=t.length}}else b.positions=s,b.height=d,w=new Float64Array(a.PolylinePipeline.generateArc(b)),b.height=f,v=new Float64Array(a.PolylinePipeline.generateArc(b));return{bottomPositions:v,topPositions:w,numCorners:C}},e.WallGeometryLibrary=s}));