1 |
- define(["exports","./Matrix2-e3fb4559","./Cartesian3-7e9cc2ff","./Check-741c5f3c","./ComponentDatatype-aaeec80f","./defaultValue-81eec7ed","./EllipsoidRhumbLine-9c6b32ea","./GeometryAttribute-b025f9a8","./Math-5f585871","./WebGLConstants-508b9636"],(function(e,t,n,r,i,a,u,o,s,x){"use strict";var p=l,h=l;function l(e,t,n){n=n||2;var r,i,a,u,o,s,x,p=t&&t.length,h=p?t[0]*n:e.length,l=f(e,0,h,n,!0),c=[];if(!l||l.next===l.prev)return c;if(p&&(l=function(e,t,n,r){var i,a,u,o=[];for(i=0,a=t.length;i<a;i++)(u=f(e,t[i]*r,i<a-1?t[i+1]*r:e.length,r,!1))===u.next&&(u.steiner=!0),o.push(E(u));for(o.sort(g),i=0;i<o.length;i++)n=w(o[i],n);return n}(e,t,l,n)),e.length>80*n){r=a=e[0],i=u=e[1];for(var v=n;v<h;v+=n)(o=e[v])<r&&(r=o),(s=e[v+1])<i&&(i=s),o>a&&(a=o),s>u&&(u=s);x=0!==(x=Math.max(a-r,u-i))?32767/x:0}return y(l,c,n,r,i,x,0),c}function f(e,t,n,r,i){var a,u;if(i===P(e,t,n,r)>0)for(a=t;a<n;a+=r)u=T(a,e[a],e[a+1],u);else for(a=n-r;a>=t;a-=r)u=T(a,e[a],e[a+1],u);return u&&z(u,u.next)&&(W(u),u=u.next),u}function c(e,t){if(!e)return e;t||(t=e);var n,r=e;do{if(n=!1,r.steiner||!z(r,r.next)&&0!==A(r.prev,r,r.next))r=r.next;else{if(W(r),(r=t=r.prev)===r.next)break;n=!0}}while(n||r!==t);return t}function y(e,t,n,r,i,a,u){if(e){!u&&a&&function(e,t,n,r){var i=e;do{0===i.z&&(i.z=M(i.x,i.y,t,n,r)),i.prevZ=i.prev,i.nextZ=i.next,i=i.next}while(i!==e);i.prevZ.nextZ=null,i.prevZ=null,function(e){var t,n,r,i,a,u,o,s,x=1;do{for(n=e,e=null,a=null,u=0;n;){for(u++,r=n,o=0,t=0;t<x&&(o++,r=r.nextZ);t++);for(s=x;o>0||s>0&&r;)0!==o&&(0===s||!r||n.z<=r.z)?(i=n,n=n.nextZ,o--):(i=r,r=r.nextZ,s--),a?a.nextZ=i:e=i,i.prevZ=a,a=i;n=r}a.nextZ=null,x*=2}while(u>1)}(i)}(e,r,i,a);for(var o,s,x=e;e.prev!==e.next;)if(o=e.prev,s=e.next,a?d(e,r,i,a):v(e))t.push(o.i/n|0),t.push(e.i/n|0),t.push(s.i/n|0),W(e),e=s.next,x=s.next;else if((e=s)===x){u?1===u?y(e=m(c(e),t,n),t,n,r,i,a,2):2===u&&C(e,t,n,r,i,a):y(c(e),t,n,r,i,a,1);break}}}function v(e){var t=e.prev,n=e,r=e.next;if(A(t,n,r)>=0)return!1;for(var i=t.x,a=n.x,u=r.x,o=t.y,s=n.y,x=r.y,p=i<a?i<u?i:u:a<u?a:u,h=o<s?o<x?o:x:s<x?s:x,l=i>a?i>u?i:u:a>u?a:u,f=o>s?o>x?o:x:s>x?s:x,c=r.next;c!==t;){if(c.x>=p&&c.x<=l&&c.y>=h&&c.y<=f&&Z(i,o,a,s,u,x,c.x,c.y)&&A(c.prev,c,c.next)>=0)return!1;c=c.next}return!0}function d(e,t,n,r){var i=e.prev,a=e,u=e.next;if(A(i,a,u)>=0)return!1;for(var o=i.x,s=a.x,x=u.x,p=i.y,h=a.y,l=u.y,f=o<s?o<x?o:x:s<x?s:x,c=p<h?p<l?p:l:h<l?h:l,y=o>s?o>x?o:x:s>x?s:x,v=p>h?p>l?p:l:h>l?h:l,d=M(f,c,t,n,r),m=M(y,v,t,n,r),C=e.prevZ,g=e.nextZ;C&&C.z>=d&&g&&g.z<=m;){if(C.x>=f&&C.x<=y&&C.y>=c&&C.y<=v&&C!==i&&C!==u&&Z(o,p,s,h,x,l,C.x,C.y)&&A(C.prev,C,C.next)>=0)return!1;if(C=C.prevZ,g.x>=f&&g.x<=y&&g.y>=c&&g.y<=v&&g!==i&&g!==u&&Z(o,p,s,h,x,l,g.x,g.y)&&A(g.prev,g,g.next)>=0)return!1;g=g.nextZ}for(;C&&C.z>=d;){if(C.x>=f&&C.x<=y&&C.y>=c&&C.y<=v&&C!==i&&C!==u&&Z(o,p,s,h,x,l,C.x,C.y)&&A(C.prev,C,C.next)>=0)return!1;C=C.prevZ}for(;g&&g.z<=m;){if(g.x>=f&&g.x<=y&&g.y>=c&&g.y<=v&&g!==i&&g!==u&&Z(o,p,s,h,x,l,g.x,g.y)&&A(g.prev,g,g.next)>=0)return!1;g=g.nextZ}return!0}function m(e,t,n){var r=e;do{var i=r.prev,a=r.next.next;!z(i,a)&&R(i,r,r.next,a)&&G(i,a)&&G(a,i)&&(t.push(i.i/n|0),t.push(r.i/n|0),t.push(a.i/n|0),W(r),W(r.next),r=e=a),r=r.next}while(r!==e);return c(r)}function C(e,t,n,r,i,a){var u=e;do{for(var o=u.next.next;o!==u.prev;){if(u.i!==o.i&&S(u,o)){var s=O(u,o);return u=c(u,u.next),s=c(s,s.next),y(u,t,n,r,i,a,0),void y(s,t,n,r,i,a,0)}o=o.next}u=u.next}while(u!==e)}function g(e,t){return e.x-t.x}function w(e,t){var n=function(e,t){var n,r=t,i=e.x,a=e.y,u=-1/0;do{if(a<=r.y&&a>=r.next.y&&r.next.y!==r.y){var o=r.x+(a-r.y)*(r.next.x-r.x)/(r.next.y-r.y);if(o<=i&&o>u&&(u=o,n=r.x<r.next.x?r:r.next,o===i))return n}r=r.next}while(r!==t);if(!n)return null;var s,x=n,p=n.x,h=n.y,l=1/0;r=n;do{i>=r.x&&r.x>=p&&i!==r.x&&Z(a<h?i:u,a,p,h,a<h?u:i,a,r.x,r.y)&&(s=Math.abs(a-r.y)/(i-r.x),G(r,e)&&(s<l||s===l&&(r.x>n.x||r.x===n.x&&b(n,r)))&&(n=r,l=s)),r=r.next}while(r!==x);return n}(e,t);if(!n)return t;var r=O(n,e);return c(r,r.next),c(n,n.next)}function b(e,t){return A(e.prev,e,t.prev)<0&&A(t.next,e,e.next)<0}function M(e,t,n,r,i){return(e=1431655765&((e=858993459&((e=252645135&((e=16711935&((e=(e-n)*i|0)|e<<8))|e<<4))|e<<2))|e<<1))|(t=1431655765&((t=858993459&((t=252645135&((t=16711935&((t=(t-r)*i|0)|t<<8))|t<<4))|t<<2))|t<<1))<<1}function E(e){var t=e,n=e;do{(t.x<n.x||t.x===n.x&&t.y<n.y)&&(n=t),t=t.next}while(t!==e);return n}function Z(e,t,n,r,i,a,u,o){return(i-u)*(t-o)>=(e-u)*(a-o)&&(e-u)*(r-o)>=(n-u)*(t-o)&&(n-u)*(a-o)>=(i-u)*(r-o)}function S(e,t){return e.next.i!==t.i&&e.prev.i!==t.i&&!function(e,t){var n=e;do{if(n.i!==e.i&&n.next.i!==e.i&&n.i!==t.i&&n.next.i!==t.i&&R(n,n.next,e,t))return!0;n=n.next}while(n!==e);return!1}(e,t)&&(G(e,t)&&G(t,e)&&function(e,t){var n=e,r=!1,i=(e.x+t.x)/2,a=(e.y+t.y)/2;do{n.y>a!=n.next.y>a&&n.next.y!==n.y&&i<(n.next.x-n.x)*(a-n.y)/(n.next.y-n.y)+n.x&&(r=!r),n=n.next}while(n!==e);return r}(e,t)&&(A(e.prev,e,t.prev)||A(e,t.prev,t))||z(e,t)&&A(e.prev,e,e.next)>0&&A(t.prev,t,t.next)>0)}function A(e,t,n){return(t.y-e.y)*(n.x-t.x)-(t.x-e.x)*(n.y-t.y)}function z(e,t){return e.x===t.x&&e.y===t.y}function R(e,t,n,r){var i=D(A(e,t,n)),a=D(A(e,t,r)),u=D(A(n,r,e)),o=D(A(n,r,t));return i!==a&&u!==o||(!(0!==i||!L(e,n,t))||(!(0!==a||!L(e,r,t))||(!(0!==u||!L(n,e,r))||!(0!==o||!L(n,t,r)))))}function L(e,t,n){return t.x<=Math.max(e.x,n.x)&&t.x>=Math.min(e.x,n.x)&&t.y<=Math.max(e.y,n.y)&&t.y>=Math.min(e.y,n.y)}function D(e){return e>0?1:e<0?-1:0}function G(e,t){return A(e.prev,e,e.next)<0?A(e,t,e.next)>=0&&A(e,e.prev,t)>=0:A(e,t,e.prev)<0||A(e,e.next,t)<0}function O(e,t){var n=new $(e.i,e.x,e.y),r=new $(t.i,t.x,t.y),i=e.next,a=t.prev;return e.next=t,t.prev=e,n.next=i,i.prev=n,r.next=n,n.prev=r,a.next=r,r.prev=a,r}function T(e,t,n,r){var i=new $(e,t,n);return r?(i.next=r.next,i.prev=r,r.next.prev=i,r.next=i):(i.prev=i,i.next=i),i}function W(e){e.next.prev=e.prev,e.prev.next=e.next,e.prevZ&&(e.prevZ.nextZ=e.nextZ),e.nextZ&&(e.nextZ.prevZ=e.prevZ)}function $(e,t,n){this.i=e,this.x=t,this.y=n,this.prev=null,this.next=null,this.z=0,this.prevZ=null,this.nextZ=null,this.steiner=!1}function P(e,t,n,r){for(var i=0,a=t,u=n-r;a<n;a+=r)i+=(e[u]-e[a])*(e[a+1]+e[u+1]),u=a;return i}l.deviation=function(e,t,n,r){var i=t&&t.length,a=i?t[0]*n:e.length,u=Math.abs(P(e,0,a,n));if(i)for(var o=0,s=t.length;o<s;o++){var x=t[o]*n,p=o<s-1?t[o+1]*n:e.length;u-=Math.abs(P(e,x,p,n))}var h=0;for(o=0;o<r.length;o+=3){var l=r[o]*n,f=r[o+1]*n,c=r[o+2]*n;h+=Math.abs((e[l]-e[c])*(e[f+1]-e[l+1])-(e[l]-e[f])*(e[c+1]-e[l+1]))}return 0===u&&0===h?0:Math.abs((h-u)/u)},l.flatten=function(e){for(var t=e[0][0].length,n={vertices:[],holes:[],dimensions:t},r=0,i=0;i<e.length;i++){for(var a=0;a<e[i].length;a++)for(var u=0;u<t;u++)n.vertices.push(e[i][a][u]);i>0&&(r+=e[i-1].length,n.holes.push(r))}return n},p.default=h;const I={CLOCKWISE:x.WebGLConstants.CW,COUNTER_CLOCKWISE:x.WebGLConstants.CCW,validate:function(e){return e===I.CLOCKWISE||e===I.COUNTER_CLOCKWISE}};var B=Object.freeze(I);const N=new n.Cartesian3,U=new n.Cartesian3,_={computeArea2D:function(e){const t=e.length;let n=0;for(let r=t-1,i=0;i<t;r=i++){const t=e[r],a=e[i];n+=t.x*a.y-a.x*t.y}return.5*n},computeWindingOrder2D:function(e){return _.computeArea2D(e)>0?B.COUNTER_CLOCKWISE:B.CLOCKWISE},triangulate:function(e,n){const r=t.Cartesian2.packArray(e);return p(r,n,2)}},K=new n.Cartesian3,V=new n.Cartesian3,k=new n.Cartesian3,q=new n.Cartesian3,F=new n.Cartesian3,j=new n.Cartesian3,H=new n.Cartesian3;_.computeSubdivision=function(e,t,r,u){u=a.defaultValue(u,s.CesiumMath.RADIANS_PER_DEGREE);const x=r.slice(0);let p;const h=t.length,l=new Array(3*h);let f=0;for(p=0;p<h;p++){const e=t[p];l[f++]=e.x,l[f++]=e.y,l[f++]=e.z}const c=[],y={},v=e.maximumRadius,d=s.CesiumMath.chordLength(u,v),m=d*d;for(;x.length>0;){const e=x.pop(),t=x.pop(),r=x.pop(),i=n.Cartesian3.fromArray(l,3*r,K),u=n.Cartesian3.fromArray(l,3*t,V),o=n.Cartesian3.fromArray(l,3*e,k),s=n.Cartesian3.multiplyByScalar(n.Cartesian3.normalize(i,q),v,q),h=n.Cartesian3.multiplyByScalar(n.Cartesian3.normalize(u,F),v,F),f=n.Cartesian3.multiplyByScalar(n.Cartesian3.normalize(o,j),v,j),d=n.Cartesian3.magnitudeSquared(n.Cartesian3.subtract(s,h,H)),C=n.Cartesian3.magnitudeSquared(n.Cartesian3.subtract(h,f,H)),g=n.Cartesian3.magnitudeSquared(n.Cartesian3.subtract(f,s,H)),w=Math.max(d,C,g);let b,M;w>m?d===w?(b=`${Math.min(r,t)} ${Math.max(r,t)}`,p=y[b],a.defined(p)||(M=n.Cartesian3.add(i,u,H),n.Cartesian3.multiplyByScalar(M,.5,M),l.push(M.x,M.y,M.z),p=l.length/3-1,y[b]=p),x.push(r,p,e),x.push(p,t,e)):C===w?(b=`${Math.min(t,e)} ${Math.max(t,e)}`,p=y[b],a.defined(p)||(M=n.Cartesian3.add(u,o,H),n.Cartesian3.multiplyByScalar(M,.5,M),l.push(M.x,M.y,M.z),p=l.length/3-1,y[b]=p),x.push(t,p,r),x.push(p,e,r)):g===w&&(b=`${Math.min(e,r)} ${Math.max(e,r)}`,p=y[b],a.defined(p)||(M=n.Cartesian3.add(o,i,H),n.Cartesian3.multiplyByScalar(M,.5,M),l.push(M.x,M.y,M.z),p=l.length/3-1,y[b]=p),x.push(e,p,t),x.push(p,r,t)):(c.push(r),c.push(t),c.push(e))}return new o.Geometry({attributes:{position:new o.GeometryAttribute({componentDatatype:i.ComponentDatatype.DOUBLE,componentsPerAttribute:3,values:l})},indices:c,primitiveType:o.PrimitiveType.TRIANGLES})};const J=new t.Cartographic,Q=new t.Cartographic,X=new t.Cartographic,Y=new t.Cartographic;_.computeRhumbLineSubdivision=function(e,t,r,x){x=a.defaultValue(x,s.CesiumMath.RADIANS_PER_DEGREE);const p=r.slice(0);let h;const l=t.length,f=new Array(3*l);let c=0;for(h=0;h<l;h++){const e=t[h];f[c++]=e.x,f[c++]=e.y,f[c++]=e.z}const y=[],v={},d=e.maximumRadius,m=s.CesiumMath.chordLength(x,d),C=new u.EllipsoidRhumbLine(void 0,void 0,e),g=new u.EllipsoidRhumbLine(void 0,void 0,e),w=new u.EllipsoidRhumbLine(void 0,void 0,e);for(;p.length>0;){const t=p.pop(),r=p.pop(),i=p.pop(),u=n.Cartesian3.fromArray(f,3*i,K),o=n.Cartesian3.fromArray(f,3*r,V),s=n.Cartesian3.fromArray(f,3*t,k),x=e.cartesianToCartographic(u,J),l=e.cartesianToCartographic(o,Q),c=e.cartesianToCartographic(s,X);C.setEndPoints(x,l);const d=C.surfaceDistance;g.setEndPoints(l,c);const b=g.surfaceDistance;w.setEndPoints(c,x);const M=w.surfaceDistance,E=Math.max(d,b,M);let Z,S,A,z;E>m?d===E?(Z=`${Math.min(i,r)} ${Math.max(i,r)}`,h=v[Z],a.defined(h)||(S=C.interpolateUsingFraction(.5,Y),A=.5*(x.height+l.height),z=n.Cartesian3.fromRadians(S.longitude,S.latitude,A,e,H),f.push(z.x,z.y,z.z),h=f.length/3-1,v[Z]=h),p.push(i,h,t),p.push(h,r,t)):b===E?(Z=`${Math.min(r,t)} ${Math.max(r,t)}`,h=v[Z],a.defined(h)||(S=g.interpolateUsingFraction(.5,Y),A=.5*(l.height+c.height),z=n.Cartesian3.fromRadians(S.longitude,S.latitude,A,e,H),f.push(z.x,z.y,z.z),h=f.length/3-1,v[Z]=h),p.push(r,h,i),p.push(h,t,i)):M===E&&(Z=`${Math.min(t,i)} ${Math.max(t,i)}`,h=v[Z],a.defined(h)||(S=w.interpolateUsingFraction(.5,Y),A=.5*(c.height+x.height),z=n.Cartesian3.fromRadians(S.longitude,S.latitude,A,e,H),f.push(z.x,z.y,z.z),h=f.length/3-1,v[Z]=h),p.push(t,h,r),p.push(h,i,r)):(y.push(i),y.push(r),y.push(t))}return new o.Geometry({attributes:{position:new o.GeometryAttribute({componentDatatype:i.ComponentDatatype.DOUBLE,componentsPerAttribute:3,values:f})},indices:y,primitiveType:o.PrimitiveType.TRIANGLES})},_.scaleToGeodeticHeight=function(e,r,i,u){i=a.defaultValue(i,t.Ellipsoid.WGS84);let o=N,s=U;if(r=a.defaultValue(r,0),u=a.defaultValue(u,!0),a.defined(e)){const t=e.length;for(let a=0;a<t;a+=3)n.Cartesian3.fromArray(e,a,s),u&&(s=i.scaleToGeodeticSurface(s,s)),0!==r&&(o=i.geodeticSurfaceNormal(s,o),n.Cartesian3.multiplyByScalar(o,r,o),n.Cartesian3.add(s,o,s)),e[a]=s.x,e[a+1]=s.y,e[a+2]=s.z}return e},e.PolygonPipeline=_,e.WindingOrder=B}));
|