1 |
- define(["exports","./WindingOrder-1b9c8a87","./Cartesian2-6033fa5d","./Cartographic-67e73ef9","./Check-52a7d806","./ComponentDatatype-81047f82","./when-92c6cf3c","./Rectangle-bab7abf0","./EllipsoidRhumbLine-8847d1a1","./GeometryAttribute-ef657318","./Math-92c3b5f7","./PrimitiveType-cdfe443e"],(function(t,e,a,n,i,r,o,u,s,p,h,l){"use strict";var c=new n.t,d=new n.t,m={computeArea2D:function(t){i.o.defined("positions",t),i.o.typeOf.number.greaterThanOrEquals("positions.length",t.length,3);for(var e=t.length,a=0,n=e-1,r=0;r<e;n=r++){var o=t[n],u=t[r];a+=o.x*u.y-u.x*o.y}return.5*a},computeWindingOrder2D:function(t){return m.computeArea2D(t)>0?e.W.COUNTER_CLOCKWISE:e.W.CLOCKWISE},triangulate:function(t,n){i.o.defined("positions",t);var r=a.o.packArray(t);return e.z(r,n,2)}},g=new n.t,y=new n.t,f=new n.t,v=new n.t,b=new n.t,x=new n.t,w=new n.t;m.computeSubdivision=function(t,e,a,u,s){s=o.u(s,!1),u=o.u(u,h.e.RADIANS_PER_DEGREE),i.o.typeOf.object("ellipsoid",t),i.o.defined("positions",e),i.o.defined("indices",a),i.o.typeOf.number.greaterThanOrEquals("indices.length",a.length,3),i.o.typeOf.number.equals("indices.length % 3","0",a.length%3,0),i.o.typeOf.number.greaterThan("granularity",u,0);var c,d=a.slice(0),m=e.length,A=new Array(3*m),E=0;for(c=0;c<m;c++){var S=e[c];A[E++]=S.x,A[E++]=S.y,A[E++]=S.z}for(var O=[],D={},R=t.maximumRadius,T=h.e.chordLength(u,R),M=T*T;d.length>0;){var C,z,P=d.pop(),L=d.pop(),B=d.pop(),q=n.t.fromArray(A,3*B,g),G=n.t.fromArray(A,3*L,y),I=n.t.fromArray(A,3*P,f),W=s?q:n.t.multiplyByScalar(n.t.normalize(q,v),R,v),_=s?G:n.t.multiplyByScalar(n.t.normalize(G,b),R,b),N=s?I:n.t.multiplyByScalar(n.t.normalize(I,x),R,x),U=n.t.magnitudeSquared(n.t.subtract(W,_,w)),$=n.t.magnitudeSquared(n.t.subtract(_,N,w)),F=n.t.magnitudeSquared(n.t.subtract(N,W,w)),j=Math.max(U,$,F);j>M?U===j?(c=D[C=Math.min(B,L)+" "+Math.max(B,L)],o.e(c)||(z=n.t.add(q,G,w),n.t.multiplyByScalar(z,.5,z),A.push(z.x,z.y,z.z),c=A.length/3-1,D[C]=c),d.push(B,c,P),d.push(c,L,P)):$===j?(c=D[C=Math.min(L,P)+" "+Math.max(L,P)],o.e(c)||(z=n.t.add(G,I,w),n.t.multiplyByScalar(z,.5,z),A.push(z.x,z.y,z.z),c=A.length/3-1,D[C]=c),d.push(L,c,B),d.push(c,P,B)):F===j&&(c=D[C=Math.min(P,B)+" "+Math.max(P,B)],o.e(c)||(z=n.t.add(I,q,w),n.t.multiplyByScalar(z,.5,z),A.push(z.x,z.y,z.z),c=A.length/3-1,D[C]=c),d.push(P,c,L),d.push(c,B,L)):(O.push(B),O.push(L),O.push(P))}return new p.I({attributes:{position:new p.o({componentDatatype:r.ComponentDatatype.DOUBLE,componentsPerAttribute:3,values:A})},indices:O,primitiveType:l._0x29ba75.TRIANGLES})};var A=new n.t$1,E=new n.t$1,S=new n.t$1,O=new n.t$1;m.computeRhumbLineSubdivision=function(t,e,a,u){u=o.u(u,h.e.RADIANS_PER_DEGREE),i.o.typeOf.object("ellipsoid",t),i.o.defined("positions",e),i.o.defined("indices",a),i.o.typeOf.number.greaterThanOrEquals("indices.length",a.length,3),i.o.typeOf.number.equals("indices.length % 3","0",a.length%3,0),i.o.typeOf.number.greaterThan("granularity",u,0);var c,d=a.slice(0),m=e.length,v=new Array(3*m),b=0;for(c=0;c<m;c++){var x=e[c];v[b++]=x.x,v[b++]=x.y,v[b++]=x.z}for(var D=[],R={},T=t.maximumRadius,M=h.e.chordLength(u,T),C=new s.P(void 0,void 0,t),z=new s.P(void 0,void 0,t),P=new s.P(void 0,void 0,t);d.length>0;){var L=d.pop(),B=d.pop(),q=d.pop(),G=n.t.fromArray(v,3*q,g),I=n.t.fromArray(v,3*B,y),W=n.t.fromArray(v,3*L,f),_=t.cartesianToCartographic(G,A),N=t.cartesianToCartographic(I,E),U=t.cartesianToCartographic(W,S);C.setEndPoints(_,N);var $=C.surfaceDistance;z.setEndPoints(N,U);var F=z.surfaceDistance;P.setEndPoints(U,_);var j,k,K,H,J=P.surfaceDistance,Q=Math.max($,F,J);Q>M?$===Q?(c=R[j=Math.min(q,B)+" "+Math.max(q,B)],o.e(c)||(k=C.interpolateUsingFraction(.5,O),K=.5*(_.height+N.height),H=n.t.fromRadians(k.longitude,k.latitude,K,t,w),v.push(H.x,H.y,H.z),c=v.length/3-1,R[j]=c),d.push(q,c,L),d.push(c,B,L)):F===Q?(c=R[j=Math.min(B,L)+" "+Math.max(B,L)],o.e(c)||(k=z.interpolateUsingFraction(.5,O),K=.5*(N.height+U.height),H=n.t.fromRadians(k.longitude,k.latitude,K,t,w),v.push(H.x,H.y,H.z),c=v.length/3-1,R[j]=c),d.push(B,c,q),d.push(c,L,q)):J===Q&&(c=R[j=Math.min(L,q)+" "+Math.max(L,q)],o.e(c)||(k=P.interpolateUsingFraction(.5,O),K=.5*(U.height+_.height),H=n.t.fromRadians(k.longitude,k.latitude,K,t,w),v.push(H.x,H.y,H.z),c=v.length/3-1,R[j]=c),d.push(L,c,B),d.push(c,q,B)):(D.push(q),D.push(B),D.push(L))}return new p.I({attributes:{position:new p.o({componentDatatype:r.ComponentDatatype.DOUBLE,componentsPerAttribute:3,values:v})},indices:D,primitiveType:l._0x29ba75.TRIANGLES})},m.scaleToGeodeticHeight=function(t,e,a,i){a=o.u(a,u.t.WGS84);var r=c,s=d;if(e=o.u(e,0),i=o.u(i,!0),o.e(t))for(var p=t.length,h=0;h<p;h+=3)n.t.fromArray(t,h,s),i&&(s=a.scaleToGeodeticSurface(s,s)),0!==e&&(r=a.geodeticSurfaceNormal(s,r),n.t.multiplyByScalar(r,e,r),n.t.add(s,r,s)),t[h]=s.x,t[h+1]=s.y,t[h+2]=s.z;return t},t.A=m}));
|