define(["./AttributeCompression-4d18cc04","./Transforms-3ac41eb6","./Matrix2-fc7e9822","./defaultValue-94c3e563","./TerrainEncoding-229275c2","./IndexDatatype-db156785","./RuntimeError-c581ca93","./ComponentDatatype-4a60b8d6","./OrientedBoundingBox-1e0d2855","./createTaskProcessorWorker","./_commonjsHelpers-3aae1032-f55dc0c4","./combine-761d9c3f","./WebGLConstants-7dccdc96","./EllipsoidTangentPlane-53e32153","./AxisAlignedBoundingBox-7a3018c0","./IntersectionTests-68fbc42d","./Plane-e20fba8c"],(function(e,t,i,n,r,s,o,h,u,d,p,f,l,c,a,g,m){"use strict";const w={clipTriangleAtAxisAlignedThreshold:function(e,t,i,r,s,h){if(!n.defined(e))throw new o.DeveloperError("threshold is required.");if(!n.defined(t))throw new o.DeveloperError("keepAbove is required.");if(!n.defined(i))throw new o.DeveloperError("u0 is required.");if(!n.defined(r))throw new o.DeveloperError("u1 is required.");if(!n.defined(s))throw new o.DeveloperError("u2 is required.");let u,d,p;n.defined(h)?h.length=0:h=[],t?(u=ie,d=r>e,p=s>e);const f=u+d+p;let l,c,a,g,m,w;return 1===f?u?(l=(e-i)/(r-i),c=(e-i)/(s-i),h.push(1),h.push(2),1!==c&&(h.push(-1),h.push(0),h.push(2),h.push(c)),1!==l&&(h.push(-1),h.push(0),h.push(1),h.push(l))):d?(a=(e-r)/(s-r),g=(e-r)/(i-r),h.push(2),h.push(0),1!==g&&(h.push(-1),h.push(1),h.push(0),h.push(g)),1!==a&&(h.push(-1),h.push(1),h.push(2),h.push(a))):p&&(m=(e-s)/(i-s),w=(e-s)/(r-s),h.push(0),h.push(1),1!==w&&(h.push(-1),h.push(2),h.push(1),h.push(w)),1!==m&&(h.push(-1),h.push(2),h.push(0),h.push(m))):2===f?u||i===e?d||r===e?p||s===e||(c=(e-i)/(s-i),a=(e-r)/(s-r),h.push(2),h.push(-1),h.push(0),h.push(2),h.push(c),h.push(-1),h.push(1),h.push(2),h.push(a)):(w=(e-s)/(r-s),l=(e-i)/(r-i),h.push(1),h.push(-1),h.push(2),h.push(1),h.push(w),h.push(-1),h.push(0),h.push(1),h.push(l)):(g=(e-r)/(i-r),m=(e-s)/(i-s),h.push(0),h.push(-1),h.push(1),h.push(0),h.push(g),h.push(-1),h.push(2),h.push(0),h.push(m)):3!==f&&(h.push(0),h.push(1),h.push(2)),h},computeBarycentricCoordinates:function(e,t,r,s,h,u,d,p,f){if(!n.defined(e))throw new o.DeveloperError("x is required.");if(!n.defined(t))throw new o.DeveloperError("y is required.");if(!n.defined(r))throw new o.DeveloperError("x1 is required.");if(!n.defined(s))throw new o.DeveloperError("y1 is required.");if(!n.defined(h))throw new o.DeveloperError("x2 is required.");if(!n.defined(u))throw new o.DeveloperError("y2 is required.");if(!n.defined(d))throw new o.DeveloperError("x3 is required.");if(!n.defined(p))throw new o.DeveloperError("y3 is required.");const l=r-d,c=d-h,a=u-p,g=s-p,m=1/(a*l+c*g),w=t-p,x=e-d,C=(a*x+c*w)*m,y=(-g*x+l*w)*m,v=1-C-y;return n.defined(f)?(f.x=C,f.y=y,f.z=v,f):new i.Cartesian3(C,y,v)},computeLineSegmentLineSegmentIntersection:function(e,t,r,s,h,u,d,p,f){o.Check.typeOf.number("x00",e),o.Check.typeOf.number("y00",t),o.Check.typeOf.number("x01",r),o.Check.typeOf.number("y01",s),o.Check.typeOf.number("x10",h),o.Check.typeOf.number("y10",u),o.Check.typeOf.number("x11",d),o.Check.typeOf.number("y11",p);const l=(d-h)*(t-u)-(p-u)*(e-h),c=(r-e)*(t-u)-(s-t)*(e-h),a=(p-u)*(r-e)-(d-h)*(s-t);if(0===a)return;const g=l/a,m=c/a;return g>=0&&g<=1&&m>=0&&m<=1?(n.defined(f)||(f=new i.Cartesian2),f.x=e+g*(r-e),f.y=t+g*(s-t),f):void 0}},x=32767,C=x/2|0,y=[],v=[],B=[],b=new i.Cartographic;let A=new i.Cartesian3;const I=[],E=[],D=[],T=[],O=[],z=new i.Cartesian3,V=new t.BoundingSphere,M=new u.OrientedBoundingBox,N=new i.Cartesian2,k=new i.Cartesian3;function q(e,n){const o=e.isEastChild,d=e.isNorthChild,p=o?C:0,f=o?x:C,l=d?C:0,c=d?x:C,a=I,g=E,m=D,q=O;a.length=0,g.length=0,m.length=0,q.length=0;const R=T;R.length=0;const S={},U=e.vertices;let F=e.indices;F=F.subarray(0,e.indexCountWithoutSkirts);const P=r.TerrainEncoding.clone(e.encoding),W=P.hasVertexNormals;let K=0;const L=e.vertexCountWithoutSkirts,Y=e.minimumHeight,_=e.maximumHeight,j=new Array(L),G=new Array(L),J=new Array(L),Z=W?new Array(2*L):void 0,Q=20;let $,ee,te,ie,ne;for(ee=0,te=0;ee=C||!o&&ie<=C)&&(d&&ne>=C||!d&&ne<=C)&&(S[ee]=K,a.push(ie),g.push(ne),m.push(J[ee]),W&&(q.push(Z[te]),q.push(Z[te+1])),++K)}const re=[];re.push(new H),re.push(new H),re.push(new H);const se=[];let oe,he;for(se.push(new H),se.push(new H),se.push(new H),ee=0;ee=h.length||(oe=se[0].initializeFromClipResult(h,oe,re),oe>=h.length||(oe=se[1].initializeFromClipResult(h,oe,re),oe>=h.length||(oe=se[2].initializeFromClipResult(h,oe,re),he=w.clipTriangleAtAxisAlignedThreshold(C,d,se[0].getV(),se[1].getV(),se[2].getV(),v),X(a,g,m,q,R,S,he,se,W),oe=f?(le.push(ee),ie=x):ie=2*ie+ue,a[ee]=ie,ne=Math.round(g[ee]),ne<=l?(fe.push(ee),ne=0):ne>=c?(ce.push(ee),ne=x):ne=2*ne+de,g[ee]=ne,$=h.CesiumMath.lerp(Y,_,m[ee]/x),$ge&&(ge=$),m[ee]=$,b.longitude=h.CesiumMath.lerp(Be,ve,ie/x),b.latitude=h.CesiumMath.lerp(ye,Ce,ne/x),b.height=$,we.cartographicToCartesian(b,A),me.push(A.x),me.push(A.y),me.push(A.z);const be=t.BoundingSphere.fromVertices(me,i.Cartesian3.ZERO,3,V),Ae=u.OrientedBoundingBox.fromRectangle(xe,ae,ge,we,M),Ie=new r.EllipsoidalOccluder(we),Ee=Ie.computeHorizonCullingPointFromVerticesPossiblyUnderEllipsoid(be.center,me,3,be.center,ae,z),De=ge-ae,Te=new Uint16Array(a.length+g.length+m.length);for(ee=0;ee