define(["./AttributeCompression-90851096","./buildModuleUrl-4e1b81e7","./Cartesian2-47311507","./Cartographic-3309dd0d","./when-b60132fc","./TerrainEncoding-c4158481","./IndexDatatype-8a5eead4","./Check-7b2a090c","./Math-119be1a3","./OrientedBoundingBox-87d59c2a","./createTaskProcessorWorker","./PrimitiveType-a54dc62f","./Cartesian4-3ca25aab","./RuntimeError-4a5c8994","./WebGLConstants-4ae0db90","./Event-16a2dfbf","./ComponentDatatype-c140a87d","./EllipsoidTangentPlane-edb321d3","./IntersectionTests-7386ffbf","./Plane-7ae8294c","./GeometryAttribute-3a88ba31","./FeatureDetection-c3b71206","./PolygonPipeline-660e1625","./earcut-2.2.1-20c8012f","./EllipsoidRhumbLine-ed1a6bf4"],(function(e,i,t,n,r,s,h,u,o,a,d,p,l,f,g,c,m,x,v,C,w,y,B,b,A){"use strict";var I={clipTriangleAtAxisAlignedThreshold:function(e,i,t,n,s,h){var u,o,a;r.defined(h)?h.length=0:h=[],i?(u=te,o=n>e,a=s>e);var d,p,l,f,g,c,m=u+o+a;return 1===m?u?(d=(e-t)/(n-t),p=(e-t)/(s-t),h.push(1),h.push(2),1!==p&&(h.push(-1),h.push(0),h.push(2),h.push(p)),1!==d&&(h.push(-1),h.push(0),h.push(1),h.push(d))):o?(l=(e-n)/(s-n),f=(e-n)/(t-n),h.push(2),h.push(0),1!==f&&(h.push(-1),h.push(1),h.push(0),h.push(f)),1!==l&&(h.push(-1),h.push(1),h.push(2),h.push(l))):a&&(g=(e-s)/(t-s),c=(e-s)/(n-s),h.push(0),h.push(1),1!==c&&(h.push(-1),h.push(2),h.push(1),h.push(c)),1!==g&&(h.push(-1),h.push(2),h.push(0),h.push(g))):2===m?u||t===e?o||n===e?a||s===e||(p=(e-t)/(s-t),l=(e-n)/(s-n),h.push(2),h.push(-1),h.push(0),h.push(2),h.push(p),h.push(-1),h.push(1),h.push(2),h.push(l)):(c=(e-s)/(n-s),d=(e-t)/(n-t),h.push(1),h.push(-1),h.push(2),h.push(1),h.push(c),h.push(-1),h.push(0),h.push(1),h.push(d)):(f=(e-n)/(t-n),g=(e-s)/(t-s),h.push(0),h.push(-1),h.push(1),h.push(0),h.push(f),h.push(-1),h.push(2),h.push(0),h.push(g)):3!==m&&(h.push(0),h.push(1),h.push(2)),h},computeBarycentricCoordinates:function(e,i,t,s,h,u,o,a,d){var p=t-o,l=o-h,f=u-a,g=s-a,c=1/(f*p+l*g),m=i-a,x=e-o,v=(f*x+l*m)*c,C=(-g*x+p*m)*c,w=1-v-C;return r.defined(d)?(d.x=v,d.y=C,d.z=w,d):new n.Cartesian3(v,C,w)},computeLineSegmentLineSegmentIntersection:function(e,i,n,s,h,u,o,a,d){var p=(a-u)*(n-e)-(o-h)*(s-i);if(0!==p){var l=((o-h)*(i-u)-(a-u)*(e-h))/p,f=((n-e)*(i-u)-(s-i)*(e-h))/p;return l>=0&&l<=1&&f>=0&&f<=1?(r.defined(d)||(d=new t.Cartesian2),d.x=e+l*(n-e),d.y=i+l*(s-i),d):void 0}}},M=32767,H=16383,T=[],z=[],E=[],N=new n.Cartographic,V=new n.Cartesian3,R=[],O=[],P=[],U=[],F=[],S=new n.Cartesian3,D=new i.BoundingSphere,L=new a.OrientedBoundingBox,X=new t.Cartesian2,k=new n.Cartesian3;function W(){this.vertexBuffer=void 0,this.index=void 0,this.first=void 0,this.second=void 0,this.ratio=void 0}W.prototype.clone=function(e){return r.defined(e)||(e=new W),e.uBuffer=this.uBuffer,e.vBuffer=this.vBuffer,e.heightBuffer=this.heightBuffer,e.normalBuffer=this.normalBuffer,e.index=this.index,e.first=this.first,e.second=this.second,e.ratio=this.ratio,e},W.prototype.initializeIndexed=function(e,i,t,n,r){this.uBuffer=e,this.vBuffer=i,this.heightBuffer=t,this.normalBuffer=n,this.index=r,this.first=void 0,this.second=void 0,this.ratio=void 0},W.prototype.initializeFromClipResult=function(e,i,t){var n=i+1;return-1!==e[i]?t[e[i]].clone(this):(this.vertexBuffer=void 0,this.index=void 0,this.first=t[e[n]],++n,this.second=t[e[n]],++n,this.ratio=e[n],++n),n},W.prototype.getKey=function(){return this.isIndexed()?this.index:JSON.stringify({first:this.first.getKey(),second:this.second.getKey(),ratio:this.ratio})},W.prototype.isIndexed=function(){return r.defined(this.index)},W.prototype.getH=function(e,i){if(r.defined(this.index))return this.heightBuffer[this.index];var t=this.first.getH(e,i),n=this.second.getH(e,i);return 0===i+t/M*e||0===i+n/M*e?0:o.CesiumMath.lerp(this.first.getH(),this.second.getH(),this.ratio)},W.prototype.getU=function(){return r.defined(this.index)?this.uBuffer[this.index]:o.CesiumMath.lerp(this.first.getU(),this.second.getU(),this.ratio)},W.prototype.getV=function(){return r.defined(this.index)?this.vBuffer[this.index]:o.CesiumMath.lerp(this.first.getV(),this.second.getV(),this.ratio)};var K=new t.Cartesian2,Y=-1,_=[new n.Cartesian3,new n.Cartesian3],G=[new n.Cartesian3,new n.Cartesian3];function J(i,t){++Y;var r=_[Y],s=G[Y];return r=e.AttributeCompression.octDecode(i.first.getNormalX(),i.first.getNormalY(),r),s=e.AttributeCompression.octDecode(i.second.getNormalX(),i.second.getNormalY(),s),V=n.Cartesian3.lerp(r,s,i.ratio,V),n.Cartesian3.normalize(V,V),e.AttributeCompression.octEncode(V,t),--Y,t}W.prototype.getNormalX=function(){return r.defined(this.index)?this.normalBuffer[2*this.index]:(K=J(this,K)).x},W.prototype.getNormalY=function(){return r.defined(this.index)?this.normalBuffer[2*this.index+1]:(K=J(this,K)).y};var Z=[];function j(e,i,t,n,s,h,u,o,a,d,p){if(0!==u.length){for(var l=0,f=0;f=H||!d&&_<=H)&&(p&&G>=H||!p&&G<=H)&&(y[K]=Q,m.push(_),x.push(G),v.push(he[K]),Z&&(C.push(ue[Y]),C.push(ue[Y+1])),++Q)}var de=[];de.push(new W),de.push(new W),de.push(new W);var pe,le=[];for(le.push(new W),le.push(new W),le.push(new W),K=0;K=Ce.length||((pe=le[0].initializeFromClipResult(Ce,pe,de))>=Ce.length||(pe=le[1].initializeFromClipResult(Ce,pe,de))>=Ce.length||(pe=le[2].initializeFromClipResult(Ce,pe,de),j(m,x,v,C,w,y,I.clipTriangleAtAxisAlignedThreshold(H,p,le[0].getV(),le[1].getV(),le[2].getV(),z),le,Z,ie,ee),pe=f?(Ae.push(K),_=M):_=2*_+we,m[K]=_,(G=Math.round(x[K]))<=g?(be.push(K),G=0):G>=c?(Ie.push(K),G=M):G=2*G+ye,x[K]=G,(A=o.CesiumMath.lerp(ee,ie,v[K]/M))He&&(He=A);var Fe=A;(Fe=o.CesiumMath.clamp(Fe,te,ne))ze&&(ze=Fe),v[K]=A,N.longitude=o.CesiumMath.lerp(Ue,Pe,_/M),N.latitude=o.CesiumMath.lerp(Oe,Re,G/M),N.height=A,Ne.cartographicToCartesian(N,V),Ee.push(V.x),Ee.push(V.y),Ee.push(V.z)}var Se=i.BoundingSphere.fromVertices(Ee,n.Cartesian3.ZERO,3,D),De=a.OrientedBoundingBox.fromRectangle(Ve,Me,He,Ne,L),Le=a.OrientedBoundingBox.fromRectangle(Ve,Te,ze,Ne,L),Xe=new s.EllipsoidalOccluder(Ne).computeHorizonCullingPointFromVerticesPossiblyUnderEllipsoid(Se.center,Ee,3,Se.center,Me,S),ke=He-Me,We=new Uint16Array(m.length+x.length+v.length);for(K=0;K