1 |
- define(["exports","./Cartesian2-6033fa5d","./Cartographic-67e73ef9","./Cartesian4-ad128b5d","./EllipsoidTangentPlane-53184efd","./Math-92c3b5f7","./PrimitiveType-cdfe443e","./PolylinePipeline-c0932bf7","./GeometryAttribute-ef657318"],(function(t,e,r,a,n,o,l,i,c){"use strict";var s=Object.freeze({ROUNDED:0,MITERED:1,BEVELED:2}),u=[new r.t,new r.t],y=new r.t,m=new r.t,d=new r.t,p=new r.t,f=new r.t,g=new r.t,v=new r.t,h=new r.t,w=new r.t,B=new r.t,E=new r.t,z={},S=new r.t$1;function P(t,e){for(var r=new Array(t.length),a=0;a<t.length;a++){var n=t[a];S=e.cartesianToCartographic(n,S),r[a]=S.height,t[a]=e.scaleToGeodeticSurface(n,n)}return r}function T(t,e,a,n){var o,l=t[0],i=t[1],c=r.t.angleBetween(l,i),s=Math.ceil(c/n),u=new Array(s);if(e===a){for(o=0;o<s;o++)u[o]=e;return u.push(a),u}var y=(a-e)/s;for(o=1;o<s;o++){var m=e+o*y;u[o]=m}return u[0]=e,u.push(a),u}var A=new r.t,b=new r.t;function x(t,a,o,l){var i=new n.f(o,l),c=i.projectPointOntoPlane(r.t.add(o,t,A),A),s=i.projectPointOntoPlane(r.t.add(o,a,b),b),u=e.o.angleBetween(c,s);return s.x*c.y-s.y*c.x>=0?-u:u}var D=new r.t(-1,0,0),N=l.y.clone(l.y.IDENTITY),O=new l.y,R=new l.p,V=l.p.IDENTITY.clone(),I=new r.t,F=new a.e,L=new r.t;function G(t,e,a,n,o,i,s,u){var y=I,m=F;N=c.m.eastNorthUpToFixedFrame(t,o,N),y=l.y.multiplyByPointAsVector(N,D,y);var d=x(y=r.t.normalize(y,y),e,t,o);R=l.p.fromRotationZ(d,R),L.z=i,N=l.y.multiplyTransformation(N,l.y.fromRotationTranslation(R,L,O),N);var p=V;p[0]=s;for(var f=0;f<u;f++)for(var g=0;g<a.length;g+=3)m=r.t.fromArray(a,g,m),m=l.p.multiplyByVector(p,m,m),m=l.y.multiplyByPoint(N,m,m),n.push(m.x,m.y,m.z);return n}function M(t,e,a,n,o,i,s,u,y){var m=I,d=F;N=c.m.eastNorthUpToFixedFrame(t,o,N),m=l.y.multiplyByPointAsVector(N,D,m);var p=x(m=r.t.normalize(m,m),e,t,o);R=l.p.fromRotationZ(p,R),L.z=i,N=l.y.multiplyTransformation(N,l.y.fromRotationTranslation(R,L,O),N);var f=V;f[0]=s;for(var g=0;g<u;g++)for(var v=0;v<a.length;v+=3)d=r.t.fromArray(a,v,d),d=l.p.multiplyByVector(f,d,d),d=l.y.multiplyByPoint(N,d,d),d=l.y.multiplyByPoint(y,d,d),n.push(d.x,d.y,d.z);return n}var U=new r.t;function _(t,e,a,n,o,l,i){for(var c=0;c<t.length;c+=3){n=G(r.t.fromArray(t,c,U),e,a,n,o,l[c/3],i,1)}return n}function j(t,e){var r=t.length,a=new Array(6*r),n=0,o=e.x+e.width/2,l=e.y+e.height/2,i=t[0];a[n++]=i.x-o,a[n++]=0,a[n++]=i.y-l;for(var c=1;c<r;c++){var s=(i=t[c]).x-o,u=i.y-l;a[n++]=s,a[n++]=0,a[n++]=u,a[n++]=s,a[n++]=0,a[n++]=u}return i=t[0],a[n++]=i.x-o,a[n++]=0,a[n++]=i.y-l,a}function C(t,e){for(var r=t.length,a=new Array(3*r),n=0,o=e.x+e.width/2,l=e.y+e.height/2,i=0;i<r;i++)a[n++]=t[i].x-o,a[n++]=0,a[n++]=t[i].y-l;return a}var q=new c.n,Q=new r.t,Y=new l.p;function Z(t,e,a,n,i,u,y,m,d,p){var f,g,v=r.t.angleBetween(r.t.subtract(e,t,B),r.t.subtract(a,t,E)),h=n===s.BEVELED?0:Math.ceil(v/o.e.toRadians(5));if(f=i?l.p.fromQuaternion(c.n.fromAxisAngle(r.t.negate(t,B),v/(h+1),q),Y):l.p.fromQuaternion(c.n.fromAxisAngle(t,v/(h+1),q),Y),e=r.t.clone(e,Q),h>0)for(var w=p?2:1,z=0;z<h;z++)e=l.p.multiplyByVector(f,e,e),g=r.t.subtract(e,t,B),g=r.t.normalize(g,g),i||(g=r.t.negate(g,g)),y=G(u.scaleToGeodeticSurface(e,E),g,m,y,u,d,1,w);else g=r.t.subtract(e,t,B),g=r.t.normalize(g,g),i||(g=r.t.negate(g,g)),y=G(u.scaleToGeodeticSurface(e,E),g,m,y,u,d,1,1),a=r.t.clone(a,Q),g=r.t.subtract(a,t,B),g=r.t.normalize(g,g),i||(g=r.t.negate(g,g)),y=G(u.scaleToGeodeticSurface(a,E),g,m,y,u,d,1,1);return y}z.removeDuplicatesFromShape=function(t){for(var r=t.length,a=[],n=r-1,o=0;o<r;n=o++){var l=t[n],i=t[o];e.o.equals(l,i)||a.push(i)}return a},z.angleIsGreaterThanPi=function(t,e,a,o){var l=new n.f(a,o),i=l.projectPointOntoPlane(r.t.add(a,t,A),A),c=l.projectPointOntoPlane(r.t.add(a,e,b),b);return c.x*i.y-c.y*i.x>=0};var J=new r.t,$=new r.t;z.computePositions=function(t,e,a,n,l){var c=n._ellipsoid,E=P(t,c),S=n._granularity,A=n._cornerType,b=l?j(e,a):C(e,a),x=l?C(e,a):void 0,D=a.height/2,N=a.width/2,O=t.length,R=[],V=l?[]:void 0,I=y,F=m,L=d,M=p,U=f,q=g,Q=v,Y=h,k=w,H=t[0],K=t[1];M=c.geodeticSurfaceNormal(H,M),I=r.t.subtract(K,H,I),I=r.t.normalize(I,I),Y=r.t.cross(M,I,Y),Y=r.t.normalize(Y,Y);var W=E[0],X=E[1];l&&(V=G(H,Y,x,V,c,W+D,1,1)),k=r.t.clone(H,k),H=K,F=r.t.negate(I,F);for(var tt,et=1;et<O-1;et++){var rt=l?2:1;K=t[et+1],I=r.t.subtract(K,H,I),I=r.t.normalize(I,I),L=r.t.add(I,F,L),L=r.t.normalize(L,L),M=c.geodeticSurfaceNormal(H,M);var at=r.t.multiplyByScalar(M,r.t.dot(I,M),J);r.t.subtract(I,at,at),r.t.normalize(at,at);var nt=r.t.multiplyByScalar(M,r.t.dot(F,M),$);if(r.t.subtract(F,nt,nt),r.t.normalize(nt,nt),!o.e.equalsEpsilon(Math.abs(r.t.dot(at,nt)),1,o.e.EPSILON7)){L=r.t.cross(L,M,L),L=r.t.cross(M,L,L),L=r.t.normalize(L,L);var ot=1/Math.max(.25,r.t.magnitude(r.t.cross(L,F,B))),lt=z.angleIsGreaterThanPi(I,F,H,c);lt?(U=r.t.add(H,r.t.multiplyByScalar(L,ot*N,L),U),q=r.t.add(U,r.t.multiplyByScalar(Y,N,q),q),u[0]=r.t.clone(k,u[0]),u[1]=r.t.clone(q,u[1]),tt=T(u,W+D,X+D,S),R=_(i.m.generateArc({positions:u,granularity:S,ellipsoid:c}),Y,b,R,c,tt,1),Y=r.t.cross(M,I,Y),Y=r.t.normalize(Y,Y),Q=r.t.add(U,r.t.multiplyByScalar(Y,N,Q),Q),A===s.ROUNDED||A===s.BEVELED?Z(U,q,Q,A,lt,c,R,b,X+D,l):R=G(H,L=r.t.negate(L,L),b,R,c,X+D,ot,rt),k=r.t.clone(Q,k)):(U=r.t.add(H,r.t.multiplyByScalar(L,ot*N,L),U),q=r.t.add(U,r.t.multiplyByScalar(Y,-N,q),q),u[0]=r.t.clone(k,u[0]),u[1]=r.t.clone(q,u[1]),tt=T(u,W+D,X+D,S),R=_(i.m.generateArc({positions:u,granularity:S,ellipsoid:c}),Y,b,R,c,tt,1),Y=r.t.cross(M,I,Y),Y=r.t.normalize(Y,Y),Q=r.t.add(U,r.t.multiplyByScalar(Y,-N,Q),Q),A===s.ROUNDED||A===s.BEVELED?Z(U,q,Q,A,lt,c,R,b,X+D,l):R=G(H,L,b,R,c,X+D,ot,rt),k=r.t.clone(Q,k)),F=r.t.negate(I,F)}else R=G(k,Y,b,R,c,W+D,1,1),k=H;W=X,X=E[et+1],H=K}u[0]=r.t.clone(k,u[0]),u[1]=r.t.clone(H,u[1]),tt=T(u,W+D,X+D,S),R=_(i.m.generateArc({positions:u,granularity:S,ellipsoid:c}),Y,b,R,c,tt,1),l&&(V=G(H,Y,x,V,c,X+D,1,1)),O=R.length;var it=l?O+V.length:O,ct=new Float64Array(it);return ct.set(R),l&&ct.set(V,O),ct},z.computeLocalPositions=function(t,e,a,n,E,S){var A=n._ellipsoid,b=P(t,A),x=n._granularity,D=n._cornerType,N=E?j(e,a):C(e,a),O=E?C(e,a):void 0,R=a.width/2,V=t.length,I=[],F=E?[]:void 0,L=y,G=m,q=d,Q=p,Y=f,k=g,H=v,K=h,W=w,X=c.m.eastNorthUpToFixedFrame(S,A,new l.y),tt=l.y.inverse(X,new l.y),et=t[0],rt=t[1];Q=A.geodeticSurfaceNormal(et,Q),L=r.t.subtract(rt,et,L),L=r.t.normalize(L,L),K=r.t.cross(Q,L,K),K=r.t.normalize(K,K);var at=b[0],nt=b[1];E&&(F=M(et,K,O,F,A,at+0,1,1,tt)),W=r.t.clone(et,W),et=rt,G=r.t.negate(L,G);for(var ot,lt=1;lt<V-1;lt++){var it=E?2:1;rt=t[lt+1],L=r.t.subtract(rt,et,L),L=r.t.normalize(L,L),q=r.t.add(L,G,q),q=r.t.normalize(q,q),Q=A.geodeticSurfaceNormal(et,Q);var ct=r.t.multiplyByScalar(Q,r.t.dot(L,Q),J);r.t.subtract(L,ct,ct),r.t.normalize(ct,ct);var st=r.t.multiplyByScalar(Q,r.t.dot(G,Q),$);if(r.t.subtract(G,st,st),r.t.normalize(st,st),!o.e.equalsEpsilon(Math.abs(r.t.dot(ct,st)),1,o.e.EPSILON7)){q=r.t.cross(q,Q,q),q=r.t.cross(Q,q,q),q=r.t.normalize(q,q);var ut=1/Math.max(.25,r.t.magnitude(r.t.cross(q,G,B))),yt=z.angleIsGreaterThanPi(L,G,et,A);yt?(Y=r.t.add(et,r.t.multiplyByScalar(q,ut*R,q),Y),k=r.t.add(Y,r.t.multiplyByScalar(K,R,k),k),u[0]=r.t.clone(W,u[0]),u[1]=r.t.clone(k,u[1]),ot=T(u,at+0,nt+0,x),I=_(i.m.generateArc({positions:u,granularity:x,ellipsoid:A}),K,N,I,A,ot,1,fromEnu),K=r.t.cross(Q,L,K),K=r.t.normalize(K,K),H=r.t.add(Y,r.t.multiplyByScalar(K,R,H),H),D===s.ROUNDED||D===s.BEVELED?Z(Y,k,H,D,yt,A,I,N,nt+0,E):I=M(et,q=r.t.negate(q,q),N,I,A,nt+0,ut,it,tt),W=r.t.clone(H,W)):(Y=r.t.add(et,r.t.multiplyByScalar(q,ut*R,q),Y),k=r.t.add(Y,r.t.multiplyByScalar(K,-R,k),k),u[0]=r.t.clone(W,u[0]),u[1]=r.t.clone(k,u[1]),ot=T(u,at+0,nt+0,x),I=_(i.m.generateArc({positions:u,granularity:x,ellipsoid:A}),K,N,I,A,ot,1),K=r.t.cross(Q,L,K),K=r.t.normalize(K,K),H=r.t.add(Y,r.t.multiplyByScalar(K,-R,H),H),D===s.ROUNDED||D===s.BEVELED?Z(Y,k,H,D,yt,A,I,N,nt+0,E):I=M(et,q,N,I,A,nt+0,ut,it,tt),W=r.t.clone(H,W)),G=r.t.negate(L,G)}else I=M(W,K,N,I,A,at+0,1,1,tt),W=et;at=nt,nt=b[lt+1],et=rt}u[0]=r.t.clone(W,u[0]),u[1]=r.t.clone(et,u[1]),ot=T(u,at+0,nt+0,x),I=function(t,e,a,n,o,l,i,c){for(var s=0;s<t.length;s+=3)n=M(r.t.fromArray(t,s,U),e,a,n,o,l[s/3],i,1,c);return n}(i.m.generateArc({positions:u,granularity:x,ellipsoid:A}),K,N,I,A,ot,1,tt),E&&(F=M(et,K,O,F,A,nt+0,1,1,tt)),V=I.length;var mt=E?V+F.length:V,dt=new Float64Array(mt);return dt.set(I),E&&dt.set(F,V),dt},t.J=z,t.S=s}));
|