1
lxl
2022-09-16 2d9ddf8269640309f22053d3c92a38fd77e84358
1
define(["exports","./Rectangle-82621db8","./PolylineVolumeGeometryLibrary-41961142","./when-54335d57","./Math-7a8129d6","./Transforms-b51fdb37","./PolylinePipeline-c53252ef"],function(a,M,T,o,N,c,L){"use strict";var e={},R=new M.Cartesian3,p=new M.Cartesian3,m=new M.Cartesian3,g=new M.Cartesian3,O=[new M.Cartesian3,new M.Cartesian3],V=new M.Cartesian3,Q=new M.Cartesian3,U=new M.Cartesian3,G=new M.Cartesian3,I=new M.Cartesian3,q=new M.Cartesian3,j=new M.Cartesian3,k=new M.Cartesian3,F=new M.Cartesian3,H=new M.Cartesian3,d=new c.Quaternion,h=new c.Matrix3;function J(a,e,r,n,t){var i,s=M.Cartesian3.angleBetween(M.Cartesian3.subtract(e,a,R),M.Cartesian3.subtract(r,a,p)),o=n===T.CornerType.BEVELED?1:Math.ceil(s/N.CesiumMath.toRadians(5))+1,l=3*o,C=new Array(l);C[l-3]=r.x,C[l-2]=r.y,C[l-1]=r.z,i=t?c.Matrix3.fromQuaternion(c.Quaternion.fromAxisAngle(M.Cartesian3.negate(a,R),s/o,d),h):c.Matrix3.fromQuaternion(c.Quaternion.fromAxisAngle(a,s/o,d),h);var y=0;e=M.Cartesian3.clone(e,R);for(var u=0;u<o;u++)e=c.Matrix3.multiplyByVector(i,e,e),C[y++]=e.x,C[y++]=e.y,C[y++]=e.z;return C}function K(a,e,r,n){var t=R;return[(t=(n||(e=M.Cartesian3.negate(e,e)),M.Cartesian3.add(a,e,t))).x,t.y,t.z,r.x,r.y,r.z]}function W(a,e,r,n){for(var t=new Array(a.length),i=new Array(a.length),s=M.Cartesian3.multiplyByScalar(e,r,R),o=M.Cartesian3.negate(s,p),l=0,C=a.length-1,y=0;y<a.length;y+=3){var u=M.Cartesian3.fromArray(a,y,m),c=M.Cartesian3.add(u,o,g);t[l++]=c.x,t[l++]=c.y,t[l++]=c.z;var d=M.Cartesian3.add(u,s,g);i[C--]=d.z,i[C--]=d.y,i[C--]=d.x}return n.push(t,i),n}e.addAttribute=function(a,e,r,n){var t=e.x,i=e.y,s=e.z;o.defined(r)&&(a[r]=t,a[r+1]=i,a[r+2]=s),o.defined(n)&&(a[n]=s,a[n-1]=i,a[n-2]=t)};var X=new M.Cartesian3,Y=new M.Cartesian3;e.computePositions=function(a){var e=a.granularity,r=a.positions,n=a.ellipsoid,t=a.width/2,i=a.cornerType,s=a.saveAttributes,o=V,l=Q,C=U,y=G,u=I,c=q,d=j,p=k,m=F,g=H,h=[],f=s?[]:void 0,w=s?[]:void 0,z=r[0],x=r[1];l=M.Cartesian3.normalize(M.Cartesian3.subtract(x,z,l),l),o=n.geodeticSurfaceNormal(z,o),y=M.Cartesian3.normalize(M.Cartesian3.cross(o,l,y),y),s&&(f.push(y.x,y.y,y.z),w.push(o.x,o.y,o.z)),d=M.Cartesian3.clone(z,d),z=x,C=M.Cartesian3.negate(l,C);var v,P,A=[],B=r.length;for(v=1;v<B-1;v++){o=n.geodeticSurfaceNormal(z,o),x=r[v+1],l=M.Cartesian3.normalize(M.Cartesian3.subtract(x,z,l),l),u=M.Cartesian3.normalize(M.Cartesian3.add(l,C,u),u);var E=M.Cartesian3.multiplyByScalar(o,M.Cartesian3.dot(l,o),X);M.Cartesian3.subtract(l,E,E),M.Cartesian3.normalize(E,E);var S=M.Cartesian3.multiplyByScalar(o,M.Cartesian3.dot(C,o),Y);if(M.Cartesian3.subtract(C,S,S),M.Cartesian3.normalize(S,S),!N.CesiumMath.equalsEpsilon(Math.abs(M.Cartesian3.dot(E,S)),1,N.CesiumMath.EPSILON7)){u=M.Cartesian3.cross(u,o,u),u=M.Cartesian3.cross(o,u,u),u=M.Cartesian3.normalize(u,u);var b=t/Math.max(.25,M.Cartesian3.magnitude(M.Cartesian3.cross(u,C,R))),D=T.PolylineVolumeGeometryLibrary.angleIsGreaterThanPi(l,C,z,n);u=M.Cartesian3.multiplyByScalar(u,b,u),D?(p=M.Cartesian3.add(z,u,p),g=M.Cartesian3.add(p,M.Cartesian3.multiplyByScalar(y,t,g),g),m=M.Cartesian3.add(p,M.Cartesian3.multiplyByScalar(y,2*t,m),m),O[0]=M.Cartesian3.clone(d,O[0]),O[1]=M.Cartesian3.clone(g,O[1]),h=W(L.PolylinePipeline.generateArc({positions:O,granularity:e,ellipsoid:n}),y,t,h),s&&(f.push(y.x,y.y,y.z),w.push(o.x,o.y,o.z)),c=M.Cartesian3.clone(m,c),y=M.Cartesian3.normalize(M.Cartesian3.cross(o,l,y),y),m=M.Cartesian3.add(p,M.Cartesian3.multiplyByScalar(y,2*t,m),m),d=M.Cartesian3.add(p,M.Cartesian3.multiplyByScalar(y,t,d),d),i===T.CornerType.ROUNDED||i===T.CornerType.BEVELED?A.push({leftPositions:J(p,c,m,i,D)}):A.push({leftPositions:K(z,M.Cartesian3.negate(u,u),m,D)})):(m=M.Cartesian3.add(z,u,m),g=M.Cartesian3.add(m,M.Cartesian3.negate(M.Cartesian3.multiplyByScalar(y,t,g),g),g),p=M.Cartesian3.add(m,M.Cartesian3.negate(M.Cartesian3.multiplyByScalar(y,2*t,p),p),p),O[0]=M.Cartesian3.clone(d,O[0]),O[1]=M.Cartesian3.clone(g,O[1]),h=W(L.PolylinePipeline.generateArc({positions:O,granularity:e,ellipsoid:n}),y,t,h),s&&(f.push(y.x,y.y,y.z),w.push(o.x,o.y,o.z)),c=M.Cartesian3.clone(p,c),y=M.Cartesian3.normalize(M.Cartesian3.cross(o,l,y),y),p=M.Cartesian3.add(m,M.Cartesian3.negate(M.Cartesian3.multiplyByScalar(y,2*t,p),p),p),d=M.Cartesian3.add(m,M.Cartesian3.negate(M.Cartesian3.multiplyByScalar(y,t,d),d),d),i===T.CornerType.ROUNDED||i===T.CornerType.BEVELED?A.push({rightPositions:J(m,c,p,i,D)}):A.push({rightPositions:K(z,u,p,D)})),C=M.Cartesian3.negate(l,C)}z=x}return o=n.geodeticSurfaceNormal(z,o),O[0]=M.Cartesian3.clone(d,O[0]),O[1]=M.Cartesian3.clone(z,O[1]),h=W(L.PolylinePipeline.generateArc({positions:O,granularity:e,ellipsoid:n}),y,t,h),s&&(f.push(y.x,y.y,y.z),w.push(o.x,o.y,o.z)),i===T.CornerType.ROUNDED&&(P=function(a){var e=V,r=Q,n=U,t=a[1];r=M.Cartesian3.fromArray(a[1],t.length-3,r),n=M.Cartesian3.fromArray(a[0],0,n);var i=J(e=M.Cartesian3.midpoint(r,n,e),r,n,T.CornerType.ROUNDED,!1),s=a.length-1,o=a[s-1];return t=a[s],r=M.Cartesian3.fromArray(o,o.length-3,r),n=M.Cartesian3.fromArray(t,0,n),[i,J(e=M.Cartesian3.midpoint(r,n,e),r,n,T.CornerType.ROUNDED,!1)]}(h)),{positions:h,corners:A,lefts:f,normals:w,endPositions:P}},a.CorridorGeometryLibrary=e});