define(["exports","./Cartesian2-2b41fabe","./Cartographic-1d953166","./Check-2514d21d","./ComponentDatatype-07894a2b","./when-d186add7","./Rectangle-f841217d","./EllipsoidRhumbLine-394d2834","./GeometryAttribute-95780fd1","./Math-7f5f2992","./FeatureDetection-4281d393","./WebGLConstants-8d1e45f7"],(function(e,t,n,r,i,a,x,u,o,p,h,f){"use strict";function y(e,t,n){n=n||2;var r,i,a,x,u,o,p,h=t&&t.length,f=h?t[0]*n:e.length,y=l(e,0,f,n,!0),c=[];if(!y||y.next===y.prev)return c;if(h&&(y=function(e,t,n,r){var i,a,x,u,o,p=[];for(i=0,a=t.length;i80*n){r=a=e[0],i=x=e[1];for(var d=n;da&&(a=u),o>x&&(x=o);p=0!==(p=Math.max(a-r,x-i))?1/p:0}return v(y,c,n,r,i,p),c}function l(e,t,n,r,i){var a,x;if(i===W(e,t,n,r)>0)for(a=t;a=t;a-=r)x=B(a,e[a],e[a+1],x);return x&&z(x,x.next)&&(I(x),x=x.next),x}function s(e,t){if(!e)return e;t||(t=e);var n,r=e;do{if(n=!1,r.steiner||!z(r,r.next)&&0!==S(r.prev,r,r.next))r=r.next;else{if(I(r),(r=t=r.prev)===r.next)break;n=!0}}while(n||r!==t);return t}function v(e,t,n,r,i,a,x){if(e){!x&&a&&function(e,t,n,r){var i=e;do{null===i.z&&(i.z=C(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,x,u,o,p=1;do{for(n=e,e=null,a=null,x=0;n;){for(x++,r=n,u=0,t=0;t0||o>0&&r;)0!==u&&(0===o||!r||n.z<=r.z)?(i=n,n=n.nextZ,u--):(i=r,r=r.nextZ,o--),a?a.nextZ=i:e=i,i.prevZ=a,a=i;n=r}a.nextZ=null,p*=2}while(x>1)}(i)}(e,r,i,a);for(var u,o,p=e;e.prev!==e.next;)if(u=e.prev,o=e.next,a?d(e,r,i,a):c(e))t.push(u.i/n),t.push(e.i/n),t.push(o.i/n),I(e),e=o.next,p=o.next;else if((e=o)===p){x?1===x?v(e=m(s(e),t,n),t,n,r,i,a,2):2===x&&g(e,t,n,r,i,a):v(s(e),t,n,r,i,a,1);break}}}function c(e){var t=e.prev,n=e,r=e.next;if(S(t,n,r)>=0)return!1;for(var i=e.next.next;i!==e.prev;){if(Z(t.x,t.y,n.x,n.y,r.x,r.y,i.x,i.y)&&S(i.prev,i,i.next)>=0)return!1;i=i.next}return!0}function d(e,t,n,r){var i=e.prev,a=e,x=e.next;if(S(i,a,x)>=0)return!1;for(var u=i.xa.x?i.x>x.x?i.x:x.x:a.x>x.x?a.x:x.x,h=i.y>a.y?i.y>x.y?i.y:x.y:a.y>x.y?a.y:x.y,f=C(u,o,t,n,r),y=C(p,h,t,n,r),l=e.prevZ,s=e.nextZ;l&&l.z>=f&&s&&s.z<=y;){if(l!==e.prev&&l!==e.next&&Z(i.x,i.y,a.x,a.y,x.x,x.y,l.x,l.y)&&S(l.prev,l,l.next)>=0||(l=l.prevZ,s!==e.prev&&s!==e.next&&Z(i.x,i.y,a.x,a.y,x.x,x.y,s.x,s.y)&&S(s.prev,s,s.next)>=0))return!1;s=s.nextZ}for(;l&&l.z>=f;){if(l!==e.prev&&l!==e.next&&Z(i.x,i.y,a.x,a.y,x.x,x.y,l.x,l.y)&&S(l.prev,l,l.next)>=0)return!1;l=l.prevZ}for(;s&&s.z<=y;){if(s!==e.prev&&s!==e.next&&Z(i.x,i.y,a.x,a.y,x.x,x.y,s.x,s.y)&&S(s.prev,s,s.next)>=0)return!1;s=s.nextZ}return!0}function m(e,t,n){var r=e;do{var i=r.prev,a=r.next.next;!z(i,a)&&A(i,r,r.next,a)&&T(i,a)&&T(a,i)&&(t.push(i.i/n),t.push(r.i/n),t.push(a.i/n),I(r),I(r.next),r=e=a),r=r.next}while(r!==e);return s(r)}function g(e,t,n,r,i,a){var x=e;do{for(var u=x.next.next;u!==x.prev;){if(x.i!==u.i&&M(x,u)){var o=L(x,u);return x=s(x,x.next),o=s(o,o.next),v(x,t,n,r,i,a),void v(o,t,n,r,i,a)}u=u.next}x=x.next}while(x!==e)}function w(e,t){return e.x-t.x}function b(e,t){if(t=function(e,t){var n,r=t,i=e.x,a=e.y,x=-1/0;do{if(a<=r.y&&a>=r.next.y&&r.next.y!==r.y){var u=r.x+(a-r.y)*(r.next.x-r.x)/(r.next.y-r.y);if(u<=i&&u>x){if(x=u,u===i){if(a===r.y)return r;if(a===r.next.y)return r.next}n=r.x=r.x&&r.x>=h&&i!==r.x&&Z(an.x||r.x===n.x&&E(n,r)))&&(n=r,y=o)),r=r.next}while(r!==p);return n}(e,t),t){var n=L(t,e);s(n,n.next)}}function E(e,t){return S(e.prev,e,t.prev)<0&&S(t.next,e,e.next)<0}function C(e,t,n,r,i){return(e=1431655765&((e=858993459&((e=252645135&((e=16711935&((e=32767*(e-n)*i)|e<<8))|e<<4))|e<<2))|e<<1))|(t=1431655765&((t=858993459&((t=252645135&((t=16711935&((t=32767*(t-r)*i)|t<<8))|t<<4))|t<<2))|t<<1))<<1}function O(e){var t=e,n=e;do{(t.x=0&&(e-x)*(r-u)-(n-x)*(t-u)>=0&&(n-x)*(a-u)-(i-x)*(r-u)>=0}function M(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&&A(n,n.next,e,t))return!0;n=n.next}while(n!==e);return!1}(e,t)&&(T(e,t)&&T(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)&&(S(e.prev,e,t.prev)||S(e,t.prev,t))||z(e,t)&&S(e.prev,e,e.next)>0&&S(t.prev,t,t.next)>0)}function S(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 A(e,t,n,r){var i=D(S(e,t,n)),a=D(S(e,t,r)),x=D(S(n,r,e)),u=D(S(n,r,t));return!!(i!==a&&x!==u||0===i&&R(e,n,t)||0===a&&R(e,r,t)||0===x&&R(n,e,r)||0===u&&R(n,t,r))}function R(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 T(e,t){return S(e.prev,e,e.next)<0?S(e,t,e.next)>=0&&S(e,e.prev,t)>=0:S(e,t,e.prev)<0||S(e,e.next,t)<0}function L(e,t){var n=new N(e.i,e.x,e.y),r=new N(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 B(e,t,n,r){var i=new N(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 I(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 N(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 W(e,t,n,r){for(var i=0,a=t,x=n-r;a0&&(r+=e[i-1].length,n.holes.push(r))}return n};var P={CLOCKWISE:f.B.CW,COUNTER_CLOCKWISE:f.B.CCW,NONE:f.B.NONE,validate:function(e){return e===P.CLOCKWISE||e===P.COUNTER_CLOCKWISE}},G=Object.freeze(P),_=new n.t,q=new n.t,U={computeArea2D:function(e){r.o.defined("positions",e),r.o.typeOf.number.greaterThanOrEquals("positions.length",e.length,3);for(var t=e.length,n=0,i=t-1,a=0;a0?G.COUNTER_CLOCKWISE:G.CLOCKWISE},triangulate:function(e,n){return r.o.defined("positions",e),y(t.o.packArray(e),n,2)}},K=new n.t,k=new n.t,F=new n.t,$=new n.t,j=new n.t,H=new n.t,J=new n.t;U.computeSubdivision=function(e,t,x,u,f){f=a.u(f,!1),u=a.u(u,p.e.RADIANS_PER_DEGREE),r.o.typeOf.object("ellipsoid",e),r.o.defined("positions",t),r.o.defined("indices",x),r.o.typeOf.number.greaterThanOrEquals("indices.length",x.length,3),r.o.typeOf.number.equals("indices.length % 3","0",x.length%3,0),r.o.typeOf.number.greaterThan("granularity",u,0);var y,l=x.slice(0),s=t.length,v=new Array(3*s),c=0;for(y=0;y0;){var C,O,Z=l.pop(),M=l.pop(),S=l.pop(),z=n.t.fromArray(v,3*S,K),A=n.t.fromArray(v,3*M,k),R=n.t.fromArray(v,3*Z,F),D=f?z:n.t.multiplyByScalar(n.t.normalize(z,$),w,$),T=f?A:n.t.multiplyByScalar(n.t.normalize(A,j),w,j),L=f?R:n.t.multiplyByScalar(n.t.normalize(R,H),w,H),B=n.t.magnitudeSquared(n.t.subtract(D,T,J)),I=n.t.magnitudeSquared(n.t.subtract(T,L,J)),N=n.t.magnitudeSquared(n.t.subtract(L,D,J)),W=Math.max(B,I,N);W>E?B===W?(y=g[C=Math.min(S,M)+" "+Math.max(S,M)],a.e(y)||(O=n.t.add(z,A,J),n.t.multiplyByScalar(O,.5,O),v.push(O.x,O.y,O.z),y=v.length/3-1,g[C]=y),l.push(S,y,Z),l.push(y,M,Z)):I===W?(y=g[C=Math.min(M,Z)+" "+Math.max(M,Z)],a.e(y)||(O=n.t.add(A,R,J),n.t.multiplyByScalar(O,.5,O),v.push(O.x,O.y,O.z),y=v.length/3-1,g[C]=y),l.push(M,y,S),l.push(y,Z,S)):N===W&&(y=g[C=Math.min(Z,S)+" "+Math.max(Z,S)],a.e(y)||(O=n.t.add(R,z,J),n.t.multiplyByScalar(O,.5,O),v.push(O.x,O.y,O.z),y=v.length/3-1,g[C]=y),l.push(Z,y,M),l.push(y,S,M)):(m.push(S),m.push(M),m.push(Z))}return new o.I({attributes:{position:new o.o({componentDatatype:i.ComponentDatatype.DOUBLE,componentsPerAttribute:3,values:v})},indices:m,primitiveType:h._0x12cc5d.TRIANGLES})};var Q=new n.t$1,V=new n.t$1,X=new n.t$1,Y=new n.t$1;U.computeRhumbLineSubdivision=function(e,t,x,f){f=a.u(f,p.e.RADIANS_PER_DEGREE),r.o.typeOf.object("ellipsoid",e),r.o.defined("positions",t),r.o.defined("indices",x),r.o.typeOf.number.greaterThanOrEquals("indices.length",x.length,3),r.o.typeOf.number.equals("indices.length % 3","0",x.length%3,0),r.o.typeOf.number.greaterThan("granularity",f,0);var y,l=x.slice(0),s=t.length,v=new Array(3*s),c=0;for(y=0;y0;){var Z=l.pop(),M=l.pop(),S=l.pop(),z=n.t.fromArray(v,3*S,K),A=n.t.fromArray(v,3*M,k),R=n.t.fromArray(v,3*Z,F),D=e.cartesianToCartographic(z,Q),T=e.cartesianToCartographic(A,V),L=e.cartesianToCartographic(R,X);E.setEndPoints(D,T);var B=E.surfaceDistance;C.setEndPoints(T,L);var I=C.surfaceDistance;O.setEndPoints(L,D);var N,W,P,G,_=O.surfaceDistance,q=Math.max(B,I,_);q>b?B===q?(y=g[N=Math.min(S,M)+" "+Math.max(S,M)],a.e(y)||(W=E.interpolateUsingFraction(.5,Y),P=.5*(D.height+T.height),G=n.t.fromRadians(W.longitude,W.latitude,P,e,J),v.push(G.x,G.y,G.z),y=v.length/3-1,g[N]=y),l.push(S,y,Z),l.push(y,M,Z)):I===q?(y=g[N=Math.min(M,Z)+" "+Math.max(M,Z)],a.e(y)||(W=C.interpolateUsingFraction(.5,Y),P=.5*(T.height+L.height),G=n.t.fromRadians(W.longitude,W.latitude,P,e,J),v.push(G.x,G.y,G.z),y=v.length/3-1,g[N]=y),l.push(M,y,S),l.push(y,Z,S)):_===q&&(y=g[N=Math.min(Z,S)+" "+Math.max(Z,S)],a.e(y)||(W=O.interpolateUsingFraction(.5,Y),P=.5*(L.height+D.height),G=n.t.fromRadians(W.longitude,W.latitude,P,e,J),v.push(G.x,G.y,G.z),y=v.length/3-1,g[N]=y),l.push(Z,y,M),l.push(y,S,M)):(m.push(S),m.push(M),m.push(Z))}return new o.I({attributes:{position:new o.o({componentDatatype:i.ComponentDatatype.DOUBLE,componentsPerAttribute:3,values:v})},indices:m,primitiveType:h._0x12cc5d.TRIANGLES})},U.scaleToGeodeticHeight=function(e,t,r,i){r=a.u(r,x.t.WGS84);var u=_,o=q;if(t=a.u(t,0),i=a.u(i,!0),a.e(e))for(var p=e.length,h=0;h