define(["exports","./Matrix2-fc7e9822","./RuntimeError-c581ca93","./ComponentDatatype-4a60b8d6","./defaultValue-94c3e563","./EllipsoidRhumbLine-daebc75b","./GeometryAttribute-a441ff32","./WebGLConstants-7dccdc96"],(function(e,t,n,r,a,i,s,u){"use strict";var o=l,x=l;function l(e,t,n){n=n||2;var r,a,i,s,u,o,x,l=t&&t.length,h=l?t[0]*n:e.length,c=p(e,0,h,n,!0),f=[];if(!c||c.next===c.prev)return f;if(l&&(c=C(e,t,c,n)),e.length>80*n){r=i=e[0],a=s=e[1];for(var d=n;di&&(i=u),o>s&&(s=o);x=Math.max(i-r,s-a),x=0!==x?1/x:0}return y(c,f,n,r,a,x),f}function p(e,t,n,r,a){var i,s;if(a===q(e,t,n,r)>0)for(i=t;i=t;i-=r)s=P(i,e[i],e[i+1],s);return s&&L(s,s.next)&&($(s),s=s.next),s}function h(e,t){if(!e)return e;t||(t=e);var n,r=e;do{if(n=!1,r.steiner||!L(r,r.next)&&0!==z(r.prev,r,r.next))r=r.next;else{if($(r),r=t=r.prev,r===r.next)break;n=!0}}while(n||r!==t);return t}function y(e,t,n,r,a,i,s){if(e){!s&&i&&A(e,r,a,i);var u,o,x=e;while(e.prev!==e.next)if(u=e.prev,o=e.next,i?f(e,r,a,i):c(e))t.push(u.i/n),t.push(e.i/n),t.push(o.i/n),$(e),e=o.next,x=o.next;else if(e=o,e===x){s?1===s?(e=d(h(e),t,n),y(e,t,n,r,a,i,2)):2===s&&v(e,t,n,r,a,i):y(h(e),t,n,r,a,i,1);break}}}function c(e){var t=e.prev,n=e,r=e.next;if(z(t,n,r)>=0)return!1;var a=e.next.next;while(a!==e.prev){if(O(t.x,t.y,n.x,n.y,r.x,r.y,a.x,a.y)&&z(a.prev,a,a.next)>=0)return!1;a=a.next}return!0}function f(e,t,n,r){var a=e.prev,i=e,s=e.next;if(z(a,i,s)>=0)return!1;var u=a.xi.x?a.x>s.x?a.x:s.x:i.x>s.x?i.x:s.x,l=a.y>i.y?a.y>s.y?a.y:s.y:i.y>s.y?i.y:s.y,p=S(u,o,t,n,r),h=S(x,l,t,n,r),y=e.prevZ,c=e.nextZ;while(y&&y.z>=p&&c&&c.z<=h){if(y!==e.prev&&y!==e.next&&O(a.x,a.y,i.x,i.y,s.x,s.y,y.x,y.y)&&z(y.prev,y,y.next)>=0)return!1;if(y=y.prevZ,c!==e.prev&&c!==e.next&&O(a.x,a.y,i.x,i.y,s.x,s.y,c.x,c.y)&&z(c.prev,c,c.next)>=0)return!1;c=c.nextZ}while(y&&y.z>=p){if(y!==e.prev&&y!==e.next&&O(a.x,a.y,i.x,i.y,s.x,s.y,y.x,y.y)&&z(y.prev,y,y.next)>=0)return!1;y=y.prevZ}while(c&&c.z<=h){if(c!==e.prev&&c!==e.next&&O(a.x,a.y,i.x,i.y,s.x,s.y,c.x,c.y)&&z(c.prev,c,c.next)>=0)return!1;c=c.nextZ}return!0}function d(e,t,n){var r=e;do{var a=r.prev,i=r.next.next;!L(a,i)&&R(a,r,r.next,i)&&G(a,i)&&G(i,a)&&(t.push(a.i/n),t.push(r.i/n),t.push(i.i/n),$(r),$(r.next),r=e=i),r=r.next}while(r!==e);return h(r)}function v(e,t,n,r,a,i){var s=e;do{var u=s.next.next;while(u!==s.prev){if(s.i!==u.i&&Z(s,u)){var o=W(s,u);return s=h(s,s.next),o=h(o,o.next),y(s,t,n,r,a,i),void y(o,t,n,r,a,i)}u=u.next}s=s.next}while(s!==e)}function C(e,t,n,r){var a,i,s,u,o,x=[];for(a=0,i=t.length;a=r.next.y&&r.next.y!==r.y){var u=r.x+(i-r.y)*(r.next.x-r.x)/(r.next.y-r.y);if(u<=a&&u>s){if(s=u,u===a){if(i===r.y)return r;if(i===r.next.y)return r.next}n=r.x=r.x&&r.x>=l&&a!==r.x&&O(in.x||r.x===n.x&&b(n,r)))&&(n=r,h=o)),r=r.next}while(r!==x);return n}function b(e,t){return z(e.prev,e,t.prev)<0&&z(t.next,e,e.next)<0}function A(e,t,n,r){var a=e;do{null===a.z&&(a.z=S(a.x,a.y,t,n,r)),a.prevZ=a.prev,a.nextZ=a.next,a=a.next}while(a!==e);a.prevZ.nextZ=null,a.prevZ=null,E(a)}function E(e){var t,n,r,a,i,s,u,o,x=1;do{n=e,e=null,i=null,s=0;while(n){for(s++,r=n,u=0,t=0;t0||o>0&&r)0!==u&&(0===o||!r||n.z<=r.z)?(a=n,n=n.nextZ,u--):(a=r,r=r.nextZ,o--),i?i.nextZ=a:e=a,a.prevZ=i,i=a;n=r}i.nextZ=null,x*=2}while(s>1);return e}function S(e,t,n,r,a){return e=32767*(e-n)*a,t=32767*(t-r)*a,e=16711935&(e|e<<8),e=252645135&(e|e<<4),e=858993459&(e|e<<2),e=1431655765&(e|e<<1),t=16711935&(t|t<<8),t=252645135&(t|t<<4),t=858993459&(t|t<<2),t=1431655765&(t|t<<1),e|t<<1}function M(e){var t=e,n=e;do{(t.x=0&&(e-s)*(r-u)-(n-s)*(t-u)>=0&&(n-s)*(i-u)-(a-s)*(r-u)>=0}function Z(e,t){return e.next.i!==t.i&&e.prev.i!==t.i&&!k(e,t)&&(G(e,t)&&G(t,e)&&B(e,t)&&(z(e.prev,e,t.prev)||z(e,t.prev,t))||L(e,t)&&z(e.prev,e,e.next)>0&&z(t.prev,t,t.next)>0)}function z(e,t,n){return(t.y-e.y)*(n.x-t.x)-(t.x-e.x)*(n.y-t.y)}function L(e,t){return e.x===t.x&&e.y===t.y}function R(e,t,n,r){var a=T(z(e,t,n)),i=T(z(e,t,r)),s=T(z(n,r,e)),u=T(z(n,r,t));return a!==i&&s!==u||(!(0!==a||!D(e,n,t))||(!(0!==i||!D(e,r,t))||(!(0!==s||!D(n,e,r))||!(0!==u||!D(n,t,r)))))}function D(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 T(e){return e>0?1:e<0?-1:0}function k(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}function G(e,t){return z(e.prev,e,e.next)<0?z(e,t,e.next)>=0&&z(e,e.prev,t)>=0:z(e,t,e.prev)<0||z(e,e.next,t)<0}function B(e,t){var n=e,r=!1,a=(e.x+t.x)/2,i=(e.y+t.y)/2;do{n.y>i!==n.next.y>i&&n.next.y!==n.y&&a<(n.next.x-n.x)*(i-n.y)/(n.next.y-n.y)+n.x&&(r=!r),n=n.next}while(n!==e);return r}function W(e,t){var n=new I(e.i,e.x,e.y),r=new I(t.i,t.x,t.y),a=e.next,i=t.prev;return e.next=t,t.prev=e,n.next=a,a.prev=n,r.next=n,n.prev=r,i.next=r,r.prev=i,r}function P(e,t,n,r){var a=new I(e,t,n);return r?(a.next=r.next,a.prev=r,r.next.prev=a,r.next=a):(a.prev=a,a.next=a),a}function $(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 I(e,t,n){this.i=e,this.x=t,this.y=n,this.prev=null,this.next=null,this.z=null,this.prevZ=null,this.nextZ=null,this.steiner=!1}function q(e,t,n,r){for(var a=0,i=t,s=n-r;i0&&(r+=e[a-1].length,n.holes.push(r))}return n},o.default=x;const N={CLOCKWISE:u.WebGLConstants.CW,COUNTER_CLOCKWISE:u.WebGLConstants.CCW,validate:function(e){return e===N.CLOCKWISE||e===N.COUNTER_CLOCKWISE}};var U=Object.freeze(N);const _=new t.Cartesian3,K=new t.Cartesian3,V={computeArea2D:function(e){n.Check.defined("positions",e),n.Check.typeOf.number.greaterThanOrEquals("positions.length",e.length,3);const t=e.length;let r=0;for(let n=t-1,a=0;a0?U.COUNTER_CLOCKWISE:U.CLOCKWISE},triangulate:function(e,r){n.Check.defined("positions",e);const a=t.Cartesian2.packArray(e);return o(a,r,2)}},F=new t.Cartesian3,j=new t.Cartesian3,H=new t.Cartesian3,J=new t.Cartesian3,Q=new t.Cartesian3,X=new t.Cartesian3,Y=new t.Cartesian3,ee=new t.Cartesian2,te=new t.Cartesian2,ne=new t.Cartesian2,re=new t.Cartesian2;V.computeSubdivision=function(e,i,u,o,x){x=a.defaultValue(x,r.CesiumMath.RADIANS_PER_DEGREE);const l=a.defined(o);n.Check.typeOf.object("ellipsoid",e),n.Check.defined("positions",i),n.Check.defined("indices",u),n.Check.typeOf.number.greaterThanOrEquals("indices.length",u.length,3),n.Check.typeOf.number.equals("indices.length % 3","0",u.length%3,0),n.Check.typeOf.number.greaterThan("granularity",x,0);const p=u.slice(0);let h;const y=i.length,c=new Array(3*y),f=new Array(2*y);let d=0,v=0;for(h=0;h0){const e=p.pop(),n=p.pop(),r=p.pop(),i=t.Cartesian3.fromArray(c,3*r,F),s=t.Cartesian3.fromArray(c,3*n,j),u=t.Cartesian3.fromArray(c,3*e,H);let o,x,y;l&&(o=t.Cartesian2.fromArray(f,2*r,ee),x=t.Cartesian2.fromArray(f,2*n,te),y=t.Cartesian2.fromArray(f,2*e,ne));const d=t.Cartesian3.multiplyByScalar(t.Cartesian3.normalize(i,J),g,J),v=t.Cartesian3.multiplyByScalar(t.Cartesian3.normalize(s,Q),g,Q),w=t.Cartesian3.multiplyByScalar(t.Cartesian3.normalize(u,X),g,X),A=t.Cartesian3.magnitudeSquared(t.Cartesian3.subtract(d,v,Y)),E=t.Cartesian3.magnitudeSquared(t.Cartesian3.subtract(v,w,Y)),S=t.Cartesian3.magnitudeSquared(t.Cartesian3.subtract(w,d,Y)),M=Math.max(A,E,S);let O,Z,z;M>b?A===M?(O=`${Math.min(r,n)} ${Math.max(r,n)}`,h=m[O],a.defined(h)||(Z=t.Cartesian3.add(i,s,Y),t.Cartesian3.multiplyByScalar(Z,.5,Z),c.push(Z.x,Z.y,Z.z),h=c.length/3-1,m[O]=h,l&&(z=t.Cartesian2.add(o,x,re),t.Cartesian2.multiplyByScalar(z,.5,z),f.push(z.x,z.y))),p.push(r,h,e),p.push(h,n,e)):E===M?(O=`${Math.min(n,e)} ${Math.max(n,e)}`,h=m[O],a.defined(h)||(Z=t.Cartesian3.add(s,u,Y),t.Cartesian3.multiplyByScalar(Z,.5,Z),c.push(Z.x,Z.y,Z.z),h=c.length/3-1,m[O]=h,l&&(z=t.Cartesian2.add(x,y,re),t.Cartesian2.multiplyByScalar(z,.5,z),f.push(z.x,z.y))),p.push(n,h,r),p.push(h,e,r)):S===M&&(O=`${Math.min(e,r)} ${Math.max(e,r)}`,h=m[O],a.defined(h)||(Z=t.Cartesian3.add(u,i,Y),t.Cartesian3.multiplyByScalar(Z,.5,Z),c.push(Z.x,Z.y,Z.z),h=c.length/3-1,m[O]=h,l&&(z=t.Cartesian2.add(y,o,re),t.Cartesian2.multiplyByScalar(z,.5,z),f.push(z.x,z.y))),p.push(e,h,n),p.push(h,r,n)):(C.push(r),C.push(n),C.push(e))}const A={attributes:{position:new s.GeometryAttribute({componentDatatype:r.ComponentDatatype.DOUBLE,componentsPerAttribute:3,values:c})},indices:C,primitiveType:s.PrimitiveType.TRIANGLES};return l&&(A.attributes.st=new s.GeometryAttribute({componentDatatype:r.ComponentDatatype.FLOAT,componentsPerAttribute:2,values:f})),new s.Geometry(A)};const ae=new t.Cartographic,ie=new t.Cartographic,se=new t.Cartographic,ue=new t.Cartographic;V.computeRhumbLineSubdivision=function(e,u,o,x,l){l=a.defaultValue(l,r.CesiumMath.RADIANS_PER_DEGREE);const p=a.defined(x);n.Check.typeOf.object("ellipsoid",e),n.Check.defined("positions",u),n.Check.defined("indices",o),n.Check.typeOf.number.greaterThanOrEquals("indices.length",o.length,3),n.Check.typeOf.number.equals("indices.length % 3","0",o.length%3,0),n.Check.typeOf.number.greaterThan("granularity",l,0);const h=o.slice(0);let y;const c=u.length,f=new Array(3*c),d=new Array(2*c);let v=0,C=0;for(y=0;y0){const n=h.pop(),r=h.pop(),i=h.pop(),s=t.Cartesian3.fromArray(f,3*i,F),u=t.Cartesian3.fromArray(f,3*r,j),o=t.Cartesian3.fromArray(f,3*n,H);let x,l,c;p&&(x=t.Cartesian2.fromArray(d,2*i,ee),l=t.Cartesian2.fromArray(d,2*r,te),c=t.Cartesian2.fromArray(d,2*n,ne));const v=e.cartesianToCartographic(s,ae),C=e.cartesianToCartographic(u,ie),w=e.cartesianToCartographic(o,se);A.setEndPoints(v,C);const M=A.surfaceDistance;E.setEndPoints(C,w);const O=E.surfaceDistance;S.setEndPoints(w,v);const Z=S.surfaceDistance,z=Math.max(M,O,Z);let L,R,D,T,k;z>b?M===z?(L=`${Math.min(i,r)} ${Math.max(i,r)}`,y=g[L],a.defined(y)||(R=A.interpolateUsingFraction(.5,ue),D=.5*(v.height+C.height),T=t.Cartesian3.fromRadians(R.longitude,R.latitude,D,e,Y),f.push(T.x,T.y,T.z),y=f.length/3-1,g[L]=y,p&&(k=t.Cartesian2.add(x,l,re),t.Cartesian2.multiplyByScalar(k,.5,k),d.push(k.x,k.y))),h.push(i,y,n),h.push(y,r,n)):O===z?(L=`${Math.min(r,n)} ${Math.max(r,n)}`,y=g[L],a.defined(y)||(R=E.interpolateUsingFraction(.5,ue),D=.5*(C.height+w.height),T=t.Cartesian3.fromRadians(R.longitude,R.latitude,D,e,Y),f.push(T.x,T.y,T.z),y=f.length/3-1,g[L]=y,p&&(k=t.Cartesian2.add(l,c,re),t.Cartesian2.multiplyByScalar(k,.5,k),d.push(k.x,k.y))),h.push(r,y,i),h.push(y,n,i)):Z===z&&(L=`${Math.min(n,i)} ${Math.max(n,i)}`,y=g[L],a.defined(y)||(R=S.interpolateUsingFraction(.5,ue),D=.5*(w.height+v.height),T=t.Cartesian3.fromRadians(R.longitude,R.latitude,D,e,Y),f.push(T.x,T.y,T.z),y=f.length/3-1,g[L]=y,p&&(k=t.Cartesian2.add(c,x,re),t.Cartesian2.multiplyByScalar(k,.5,k),d.push(k.x,k.y))),h.push(n,y,r),h.push(y,i,r)):(m.push(i),m.push(r),m.push(n))}const M={attributes:{position:new s.GeometryAttribute({componentDatatype:r.ComponentDatatype.DOUBLE,componentsPerAttribute:3,values:f})},indices:m,primitiveType:s.PrimitiveType.TRIANGLES};return p&&(M.attributes.st=new s.GeometryAttribute({componentDatatype:r.ComponentDatatype.FLOAT,componentsPerAttribute:2,values:d})),new s.Geometry(M)},V.scaleToGeodeticHeight=function(e,n,r,i){r=a.defaultValue(r,t.Ellipsoid.WGS84);let s=_,u=K;if(n=a.defaultValue(n,0),i=a.defaultValue(i,!0),a.defined(e)){const a=e.length;for(let o=0;o