1 |
- define(["exports","./Matrix2-e3fb4559","./Cartesian3-7e9cc2ff","./Matrix4-d34187af","./defaultValue-81eec7ed","./EllipsoidTangentPlane-f566b6b5","./Math-5f585871","./PolylinePipeline-e0b963d6","./Transforms-99272364","./Check-741c5f3c"],(function(e,a,t,n,r,i,s,o,l,c){"use strict";var C=Object.freeze({ROUNDED:0,MITERED:1,BEVELED:2});const u={};function d(e,a){r.defined(u[e])||(u[e]=!0,console.warn(r.defaultValue(a,e)))}d.geometryOutlines="Entity geometry outlines are unsupported on terrain. Outlines will be disabled. To enable outlines, disable geometry terrain clamping by explicitly setting height to 0.",d.geometryZIndex="Entity geometry with zIndex are unsupported when height or extrudedHeight are defined. zIndex will be ignored",d.geometryHeightReference="Entity corridor, ellipse, polygon or rectangle with heightReference must also have a defined height. heightReference will be ignored",d.geometryExtrudedHeightReference="Entity corridor, ellipse, polygon or rectangle with extrudedHeightReference must also have a defined extrudedHeight. extrudedHeightReference will be ignored";const y=[new t.Cartesian3,new t.Cartesian3],f=new t.Cartesian3,m=new t.Cartesian3,g=new t.Cartesian3,h=new t.Cartesian3,w=new t.Cartesian3,p=new t.Cartesian3,x=new t.Cartesian3,M=new t.Cartesian3,P=new t.Cartesian3,E=new t.Cartesian3,T=new t.Cartesian3,b={};let z=new a.Cartographic;function B(e,a,n,r){const i=e[0],s=e[1],o=t.Cartesian3.angleBetween(i,s),l=Math.ceil(o/r),c=new Array(l);let C;if(a===n){for(C=0;C<l;C++)c[C]=a;return c.push(n),c}const u=(n-a)/l;for(C=1;C<l;C++){const e=a+C*u;c[C]=e}return c[0]=a,c.push(n),c}const A=new t.Cartesian3,S=new t.Cartesian3;const D=new t.Cartesian3(-1,0,0);let R=new n.Matrix4;const v=new n.Matrix4;let F=new n.Matrix3;const G=n.Matrix3.IDENTITY.clone(),I=new t.Cartesian3,O=new n.Cartesian4,L=new t.Cartesian3;function V(e,s,o,c,C,u,d,y,f,m,g,h){let w=O;if(R=l.Transforms.eastNorthUpToFixedFrame(e,C,R),r.defined(m)||(m=new t.Cartesian3),0===m.z){let r=I;r=n.Matrix4.multiplyByPointAsVector(R,D,r),r=t.Cartesian3.normalize(r,r);const o=function(e,n,r,s){const o=new i.EllipsoidTangentPlane(r,s),l=o.projectPointOntoPlane(t.Cartesian3.add(r,e,A),A),c=o.projectPointOntoPlane(t.Cartesian3.add(r,n,S),S),C=a.Cartesian2.angleBetween(l,c);return c.x*l.y-c.y*l.x>=0?-C:C}(r,s,e,C);F=n.Matrix3.fromRotationZ(o)}else{let e=t.Cartesian3.subtract(f[1],f[0],new t.Cartesian3);e=t.Cartesian3.normalize(e,e);const a=new t.Cartesian3(0,0,-1);let r=new t.Cartesian3;t.Cartesian3.cross(a,e,r);t.Cartesian3.magnitude(r)<1e-5&&(r=a),t.Cartesian3.normalize(r,r);const i=t.Cartesian3.angleBetween(a,e),s=l.Quaternion.fromAxisAngle(r,i);F=n.Matrix3.fromQuaternion(s)}L.z=u,R=n.Matrix4.multiplyTransformation(R,n.Matrix4.fromRotationTranslation(F,L,v),R);const p=G;p[0]=d;for(let e=0;e<y;e++)for(let e=0;e<o.length;e+=3)w=t.Cartesian3.fromArray(o,e,w),w=n.Matrix3.multiplyByVector(p,w,w),w=n.Matrix4.multiplyByPoint(R,w,w),1===g&&(w=n.Matrix4.multiplyByPoint(h,w,w)),c.push(w.x,w.y,w.z);return c}const N=new t.Cartesian3;function _(e,a,n,r,i,s,o,l,c,C,u){for(let d=0;d<e.length;d+=3){r=V(t.Cartesian3.fromArray(e,d,N),a,n,r,i,s[d/3],o,1,l,c,C,u)}return r}function Q(e,a,n){const i=e.length,s=new Array(3*i);let o=0;const l=a.x+a.width/2,c=a.y+a.height/2;if(r.defined(n)||(n=new t.Cartesian3),0===n.z)for(let a=0;a<i;a++)s[o++]=e[a].x-l,s[o++]=0,s[o++]=e[a].y-c;else for(let a=0;a<i;a++)s[o++]=e[a].x-l,s[o++]=e[a].y-c,s[o++]=0;return s}const H=new l.Quaternion,j=new t.Cartesian3,q=new n.Matrix3;function U(e,a,r,i,o,c,u,d,y,f){const m=t.Cartesian3.angleBetween(t.Cartesian3.subtract(a,e,E),t.Cartesian3.subtract(r,e,T)),g=i===C.BEVELED?0:Math.ceil(m/s.CesiumMath.toRadians(5));let h,w,p;if(h=o?n.Matrix3.fromQuaternion(l.Quaternion.fromAxisAngle(t.Cartesian3.negate(e,E),m/(g+1),H),q):n.Matrix3.fromQuaternion(l.Quaternion.fromAxisAngle(e,m/(g+1),H),q),a=t.Cartesian3.clone(a,j),g>0){const r=f?2:1;for(let i=0;i<g;i++)a=n.Matrix3.multiplyByVector(h,a,a),w=t.Cartesian3.subtract(a,e,E),w=t.Cartesian3.normalize(w,w),o||(w=t.Cartesian3.negate(w,w)),p=c.scaleToGeodeticSurface(a,T),u=V(p,w,d,u,c,y,1,r,isFromGLP,inverseMat)}else w=t.Cartesian3.subtract(a,e,E),w=t.Cartesian3.normalize(w,w),o||(w=t.Cartesian3.negate(w,w)),p=c.scaleToGeodeticSurface(a,T),u=V(p,w,d,u,c,y,1,1,isFromGLP,inverseMat),r=t.Cartesian3.clone(r,j),w=t.Cartesian3.subtract(r,e,E),w=t.Cartesian3.normalize(w,w),o||(w=t.Cartesian3.negate(w,w)),p=c.scaleToGeodeticSurface(r,T),u=V(p,w,d,u,c,y,1,1,isFromGLP,inverseMat);return u}b.removeDuplicatesFromShape=function(e){const t=e.length,n=[];for(let r=t-1,i=0;i<t;r=i++){const t=e[r],s=e[i];a.Cartesian2.equals(t,s)||n.push(s)}return n},b.angleIsGreaterThanPi=function(e,a,n,r){const s=new i.EllipsoidTangentPlane(n,r),o=s.projectPointOntoPlane(t.Cartesian3.add(n,e,A),A),l=s.projectPointOntoPlane(t.Cartesian3.add(n,a,S),S);return l.x*o.y-l.y*o.x>=0};const Y=new t.Cartesian3,Z=new t.Cartesian3;b.computePositions=function(e,a,i,l,c){const u=l._ellipsoid,d=e.slice(0),T=[],A=new t.Cartesian3,S=new t.Cartesian3;t.Cartesian3.clone(d[0],A),t.Cartesian3.clone(d[1],S);const D=new n.Matrix4;(void 0===l._rootTransform||l._rootTransform.equals(new n.Matrix4))&&(l._rootTransform=n.Matrix4.IDENTITY),n.Matrix4.inverse(l._rootTransform,D),n.Matrix4.multiplyByPoint(D,A,A),n.Matrix4.multiplyByPoint(D,S,S),T.push(A),T.push(S);const R=function(e,a){const t=new Array(e.length);for(let n=0;n<e.length;n++){const r=e[n];z=a.cartesianToCartographic(r,z),t[n]=z.height,e[n]=a.scaleToGeodeticSurface(r,r)}return t}(e,u),v=R[0].toFixed(2),F=R[1].toFixed(2),G=new t.Cartesian3(0,0,1*(1*v-1*F).toFixed(2)),I=l._granularity,O=l._cornerType,L=c?function(e,a,n){const i=e.length,s=new Array(6*i);let o=0;const l=a.x+a.width/2,c=a.y+a.height/2;if(r.defined(n)||(n=new t.Cartesian3),0===n.z){let a=e[0];s[o++]=a.x-l,s[o++]=0,s[o++]=a.y-c;for(let t=1;t<i;t++){a=e[t];const n=a.x-l,r=a.y-c;s[o++]=n,s[o++]=0,s[o++]=r,s[o++]=n,s[o++]=0,s[o++]=r}a=e[0],s[o++]=a.x-l,s[o++]=0,s[o++]=a.y-c}else{let a=e[0];s[o++]=a.x-l,s[o++]=a.y-c,s[o++]=0;for(let t=1;t<i;t++){a=e[t];const n=a.x-l,r=a.y-c;s[o++]=n,s[o++]=r,s[o++]=0,s[o++]=n,s[o++]=r,s[o++]=0}a=e[0],s[o++]=a.x-l,s[o++]=a.y-c,s[o++]=0}return s}(a,i,G):Q(a,i,G),N=c?Q(a,i,G):void 0;let H=0;H=i.height/2;const j=i.width/2;let q=e.length,k=[],W=c?[]:void 0,J=f,K=m,X=g,$=h,ee=w,ae=p,te=x,ne=M,re=P,ie=e[0],se=e[1];const oe=l._isFromGLP;$=u.geodeticSurfaceNormal(ie,$),J=t.Cartesian3.subtract(se,ie,J),J.equals(new t.Cartesian3(0,0,0))&&(J=new t.Cartesian3(0,-1,0)),J=t.Cartesian3.normalize(J,J),ne=t.Cartesian3.cross($,J,ne),ne=t.Cartesian3.normalize(ne,ne);let le,ce,Ce=R[0],ue=R[1];c&&(W=V(ie,ne,N,W,u,Ce+H,1,1,T,G,oe,D)),re=t.Cartesian3.clone(ie,re),ie=se,K=t.Cartesian3.negate(J,K);for(let a=1;a<q-1;a++){const n=c?2:1;se=e[a+1],J=t.Cartesian3.subtract(se,ie,J),J=t.Cartesian3.normalize(J,J),X=t.Cartesian3.add(J,K,X),X=t.Cartesian3.normalize(X,X),$=u.geodeticSurfaceNormal(ie,$);const r=t.Cartesian3.multiplyByScalar($,t.Cartesian3.dot(J,$),Y);t.Cartesian3.subtract(J,r,r),t.Cartesian3.normalize(r,r);const i=t.Cartesian3.multiplyByScalar($,t.Cartesian3.dot(K,$),Z);t.Cartesian3.subtract(K,i,i),t.Cartesian3.normalize(i,i);if(!s.CesiumMath.equalsEpsilon(Math.abs(t.Cartesian3.dot(r,i)),1,s.CesiumMath.EPSILON7)){X=t.Cartesian3.cross(X,$,X),X=t.Cartesian3.cross($,X,X),X=t.Cartesian3.normalize(X,X);const e=1/Math.max(.25,t.Cartesian3.magnitude(t.Cartesian3.cross(X,K,E))),a=b.angleIsGreaterThanPi(J,K,ie,u);a?(ee=t.Cartesian3.add(ie,t.Cartesian3.multiplyByScalar(X,e*j,X),ee),ae=t.Cartesian3.add(ee,t.Cartesian3.multiplyByScalar(ne,j,ae),ae),y[0]=t.Cartesian3.clone(re,y[0]),y[1]=t.Cartesian3.clone(ae,y[1]),le=B(y,Ce+H,ue+H,I),ce=o.PolylinePipeline.generateArc({positions:y,granularity:I,ellipsoid:u}),k=_(ce,ne,L,k,u,le,1,T,G,oe,D),ne=t.Cartesian3.cross($,J,ne),ne=t.Cartesian3.normalize(ne,ne),te=t.Cartesian3.add(ee,t.Cartesian3.multiplyByScalar(ne,j,te),te),O===C.ROUNDED||O===C.BEVELED?U(ee,ae,te,O,a,u,k,L,ue+H,c):(X=t.Cartesian3.negate(X,X),k=V(ie,X,L,k,u,ue+H,e,n,oe,D)),re=t.Cartesian3.clone(te,re)):(ee=t.Cartesian3.add(ie,t.Cartesian3.multiplyByScalar(X,e*j,X),ee),ae=t.Cartesian3.add(ee,t.Cartesian3.multiplyByScalar(ne,-j,ae),ae),y[0]=t.Cartesian3.clone(re,y[0]),y[1]=t.Cartesian3.clone(ae,y[1]),le=B(y,Ce+H,ue+H,I),ce=o.PolylinePipeline.generateArc({positions:y,granularity:I,ellipsoid:u}),k=_(ce,ne,L,k,u,le,1,T,G,oe,D),ne=t.Cartesian3.cross($,J,ne),ne=t.Cartesian3.normalize(ne,ne),te=t.Cartesian3.add(ee,t.Cartesian3.multiplyByScalar(ne,-j,te),te),O===C.ROUNDED||O===C.BEVELED?U(ee,ae,te,O,a,u,k,L,ue+H,c):k=V(ie,X,L,k,u,ue+H,e,n,oe,D),re=t.Cartesian3.clone(te,re)),K=t.Cartesian3.negate(J,K)}else k=V(re,ne,L,k,u,Ce+H,1,1,oe,D),re=ie;Ce=ue,ue=R[a+1],ie=se}y[0]=t.Cartesian3.clone(re,y[0]),y[1]=t.Cartesian3.clone(ie,y[1]),le=B(y,Ce+H,ue+H,I),ce=o.PolylinePipeline.generateArc({positions:y,granularity:I,ellipsoid:u}),y[0].equals(y[1])&&3===ce.length&&ce.push(ce[0],ce[1],ce[2]),k=_(ce,ne,L,k,u,le,1,T,G,oe,D),c&&(W=V(ie,ne,N,W,u,ue+H,1,1,T,G,oe,D)),q=k.length;var de=c?q+W.length:q,ye=new Float64Array(de);return ye.set(k),c&&ye.set(W,q),ye},e.CornerType=C,e.PolylineVolumeGeometryLibrary=b,e.oneTimeWarning=d}));
|