NONGYESHUZIDIZUO/public/Cesium/Workers/PolylineVolumeGeometryLibra...

2 lines
8.1 KiB
JavaScript
Raw Normal View History

2025-01-21 08:36:33 +08:00
define(["exports","./Cartesian2-1b9b0d8a","./Cartographic-1bbcab04","./Cartesian4-034d54d5","./EllipsoidTangentPlane-fd839d7b","./Math-5e38123d","./PrimitiveType-b38a4004","./PolylinePipeline-bf1462fc","./GeometryAttribute-9bc31a7f"],(function(a,r,e,n,t,o,l,i,c){"use strict";var s=Object.freeze({ROUNDED:0,MITERED:1,BEVELED:2}),u=[new e.a,new e.a],y=new e.a,m=new e.a,d=new e.a,p=new e.a,f=new e.a,v=new e.a,g=new e.a,h=new e.a,w=new e.a,B=new e.a,E=new e.a,z={},S=new e.i;function b(a,r){for(var e=new Array(a.length),n=0;n<a.length;n++){var t=a[n];S=r.cartesianToCartographic(t,S),e[n]=S.height,a[n]=r.scaleToGeodeticSurface(t,t)}return e}function P(a,r,n,t){var o,l=a[0],i=a[1],c=e.a.angleBetween(l,i),s=Math.ceil(c/t),u=new Array(s);if(r===n){for(o=0;o<s;o++)u[o]=r;return u.push(n),u}var y=(n-r)/s;for(o=1;o<s;o++){var m=r+o*y;u[o]=m}return u[0]=r,u.push(n),u}var T=new e.a,A=new e.a;function x(a,n,o,l){var i=new t.s(o,l),c=i.projectPointOntoPlane(e.a.add(o,a,T),T),s=i.projectPointOntoPlane(e.a.add(o,n,A),A),u=r.r.angleBetween(c,s);return s.x*c.y-s.y*c.x>=0?-u:u}var D=new e.a(-1,0,0),N=l.c.clone(l.c.IDENTITY),O=new l.c,R=new l.r,V=l.r.IDENTITY.clone(),I=new e.a,F=new n.a,L=new e.a;function G(a,r,n,t,o,i,s,u){var y=I,m=F;N=c.m.eastNorthUpToFixedFrame(a,o,N),y=l.c.multiplyByPointAsVector(N,D,y);var d=x(y=e.a.normalize(y,y),r,a,o);R=l.r.fromRotationZ(d,R),L.z=i,N=l.c.multiplyTransformation(N,l.c.fromRotationTranslation(R,L,O),N);var p=V;p[0]=s;for(var f=0;f<u;f++)for(var v=0;v<n.length;v+=3)m=e.a.fromArray(n,v,m),m=l.r.multiplyByVector(p,m,m),m=l.c.multiplyByPoint(N,m,m),t.push(m.x,m.y,m.z);return t}function M(a,r,n,t,o,i,s,u,y){var m=I,d=F;N=c.m.eastNorthUpToFixedFrame(a,o,N),m=l.c.multiplyByPointAsVector(N,D,m);var p=x(m=e.a.normalize(m,m),r,a,o);R=l.r.fromRotationZ(p,R),L.z=i,N=l.c.multiplyTransformation(N,l.c.fromRotationTranslation(R,L,O),N);var f=V;f[0]=s;for(var v=0;v<u;v++)for(var g=0;g<n.length;g+=3)d=e.a.fromArray(n,g,d),d=l.r.multiplyByVector(f,d,d),d=l.c.multiplyByPoint(N,d,d),d=l.c.multiplyByPoint(y,d,d),t.push(d.x,d.y,d.z);return t}var U=new e.a;function _(a,r,n,t,o,l,i){for(var c=0;c<a.length;c+=3){t=G(e.a.fromArray(a,c,U),r,n,t,o,l[c/3],i,1)}return t}function j(a,r){var e=a.length,n=new Array(6*e),t=0,o=r.x+r.width/2,l=r.y+r.height/2,i=a[0];n[t++]=i.x-o,n[t++]=0,n[t++]=i.y-l;for(var c=1;c<e;c++){var s=(i=a[c]).x-o,u=i.y-l;n[t++]=s,n[t++]=0,n[t++]=u,n[t++]=s,n[t++]=0,n[t++]=u}return i=a[0],n[t++]=i.x-o,n[t++]=0,n[t++]=i.y-l,n}function C(a,r){for(var e=a.length,n=new Array(3*e),t=0,o=r.x+r.width/2,l=r.y+r.height/2,i=0;i<e;i++)n[t++]=a[i].x-o,n[t++]=0,n[t++]=a[i].y-l;return n}var q=new c.a,Q=new e.a,Y=new l.r;function Z(a,r,n,t,i,u,y,m,d,p){var f,v,g=e.a.angleBetween(e.a.subtract(r,a,B),e.a.subtract(n,a,E)),h=t===s.BEVELED?0:Math.ceil(g/o.n.toRadians(5));if(f=i?l.r.fromQuaternion(c.a.fromAxisAngle(e.a.negate(a,B),g/(h+1),q),Y):l.r.fromQuaternion(c.a.fromAxisAngle(a,g/(h+1),q),Y),r=e.a.clone(r,Q),h>0)for(var w=p?2:1,z=0;z<h;z++)r=l.r.multiplyByVector(f,r,r),v=e.a.subtract(r,a,B),v=e.a.normalize(v,v),i||(v=e.a.negate(v,v)),y=G(u.scaleToGeodeticSurface(r,E),v,m,y,u,d,1,w);else v=e.a.subtract(r,a,B),v=e.a.normalize(v,v),i||(v=e.a.negate(v,v)),y=G(u.scaleToGeodeticSurface(r,E),v,m,y,u,d,1,1),n=e.a.clone(n,Q),v=e.a.subtract(n,a,B),v=e.a.normalize(v,v),i||(v=e.a.negate(v,v)),y=G(u.scaleToGeodeticSurface(n,E),v,m,y,u,d,1,1);return y}z.removeDuplicatesFromShape=function(a){for(var e=a.length,n=[],t=e-1,o=0;o<e;t=o++){var l=a[t],i=a[o];r.r.equals(l,i)||n.push(i)}return n},z.angleIsGreaterThanPi=function(a,r,n,o){var l=new t.s(n,o),i=l.projectPointOntoPlane(e.a.add(n,a,T),T),c=l.projectPointOntoPlane(e.a.add(n,r,A),A);return c.x*i.y-c.y*i.x>=0};var K=new e.a,k=new e.a;z.computePositions=function(a,r,n,t,l){var c=t._ellipsoid,E=b(a,c),S=t._granularity,T=t._cornerType,A=l?j(r,n):C(r,n),x=l?C(r,n):void 0,D=n.height/2,N=n.width/2,O=a.length,R=[],V=l?[]:void 0,I=y,F=m,L=d,M=p,U=f,q=v,Q=g,Y=h,H=w,J=a[0],W=a[1];M=c.geodeticSurfaceNormal(J,M),I=e.a.subtract(W,J,I),I=e.a.normalize(I,I),Y=e.a.cross(M,I,Y),Y=e.a.normalize(Y,Y);var X=E[0],