NONGYESHUZIDIZUO/public/Cesium/Workers/GeometryPipeline-6f0b08bc.js

2 lines
31 KiB
JavaScript

define(["exports","./AttributeCompression-16430ee7","./Cartesian2-2b41fabe","./Cartographic-1d953166","./Check-2514d21d","./when-d186add7","./Math-7f5f2992","./buildModuleUrl-d920237a","./Cartesian4-3408960c","./ComponentDatatype-07894a2b","./EncodedCartesian3-e527b85b","./GeometryAttribute-95780fd1","./IndexDatatype-61ffec74","./IntersectionTests-300d4352","./FeatureDetection-4281d393","./Plane-d9914d3c"],(function(e,t,r,i,n,a,o,s,u,p,c,l,v,y,m,f){"use strict";var d=new i.t,h=new i.t,b=new i.t;function w(e,t,s,u,p){var c,l,v,y,m,f,w,g;if(n.o.defined("point",e),n.o.defined("p0",t),n.o.defined("p1",s),n.o.defined("p2",u),a.e(p)||(p=new i.t),a.e(t.z)){if(i.t.equalsEpsilon(e,t,o.e.EPSILON14))return i.t.clone(i.t.UNIT_X,p);if(i.t.equalsEpsilon(e,s,o.e.EPSILON14))return i.t.clone(i.t.UNIT_Y,p);if(i.t.equalsEpsilon(e,u,o.e.EPSILON14))return i.t.clone(i.t.UNIT_Z,p);c=i.t.subtract(s,t,d),l=i.t.subtract(u,t,h),v=i.t.subtract(e,t,b),y=i.t.dot(c,c),m=i.t.dot(c,l),f=i.t.dot(c,v),w=i.t.dot(l,l),g=i.t.dot(l,v)}else{if(r.o.equalsEpsilon(e,t,o.e.EPSILON14))return i.t.clone(i.t.UNIT_X,p);if(r.o.equalsEpsilon(e,s,o.e.EPSILON14))return i.t.clone(i.t.UNIT_Y,p);if(r.o.equalsEpsilon(e,u,o.e.EPSILON14))return i.t.clone(i.t.UNIT_Z,p);c=r.o.subtract(s,t,d),l=r.o.subtract(u,t,h),v=r.o.subtract(e,t,b),y=r.o.dot(c,c),m=r.o.dot(c,l),f=r.o.dot(c,v),w=r.o.dot(l,l),g=r.o.dot(l,v)}p.y=w*f-m*g,p.z=y*g-m*f;var x=y*w-m*m;return 0!==p.y&&(p.y/=x),0!==p.z&&(p.z/=x),p.x=1-p.y-p.z,p}var g={calculateACMR:function(e){var t=(e=a.u(e,a.u.EMPTY_OBJECT)).indices,r=e.maximumIndex,i=a.u(e.cacheSize,24);if(!a.e(t))throw new n.t("indices is required.");var o=t.length;if(o<3||o%3!=0)throw new n.t("indices length must be a multiple of three.");if(r<=0)throw new n.t("maximumIndex must be greater than zero.");if(i<3)throw new n.t("cacheSize must be greater than two.");if(!a.e(r)){r=0;for(var s=0,u=t[s];s<o;)u>r&&(r=u),u=t[++s]}for(var p=[],c=0;c<r+1;c++)p[c]=0;for(var l=i+1,v=0;v<o;++v)l-p[t[v]]>i&&(p[t[v]]=l,++l);return(l-i+1)/(o/3)}};g.tipsify=function(e){var t,r=(e=a.u(e,a.u.EMPTY_OBJECT)).indices,i=e.maximumIndex,o=a.u(e.cacheSize,24);function s(e,r,i,n,a,o,s){for(var u,p=-1,c=-1,l=0;l<i.length;){var v=i[l];n[v].numLiveTriangles&&(u=0,a-n[v].timeStamp+2*n[v].numLiveTriangles<=r&&(u=a-n[v].timeStamp),(u>c||-1===c)&&(c=u,p=v)),++l}return-1===p?function(e,r,i,n){for(;r.length>=1;){var a=r[r.length-1];if(r.splice(r.length-1,1),e[a].numLiveTriangles>0)return a}for(;t<n;){if(e[t].numLiveTriangles>0)return++t-1;++t}return-1}(n,o,0,s):p}if(!a.e(r))throw new n.t("indices is required.");var u=r.length;if(u<3||u%3!=0)throw new n.t("indices length must be a multiple of three.");if(i<=0)throw new n.t("maximumIndex must be greater than zero.");if(o<3)throw new n.t("cacheSize must be greater than two.");var p=0,c=0,l=r[c],v=u;if(a.e(i))p=i+1;else{for(;c<v;)l>p&&(p=l),l=r[++c];if(-1===p)return 0;++p}var y,m=[];for(y=0;y<p;y++)m[y]={numLiveTriangles:0,timeStamp:0,vertexTriangles:[]};c=0;for(var f=0;c<v;)m[r[c]].vertexTriangles.push(f),++m[r[c]].numLiveTriangles,m[r[c+1]].vertexTriangles.push(f),++m[r[c+1]].numLiveTriangles,m[r[c+2]].vertexTriangles.push(f),++m[r[c+2]].numLiveTriangles,++f,c+=3;var d=0,h=o+1;t=1;var b,w,g,x,T=[],A=[],I=0,S=[],N=u/3,P=[];for(y=0;y<N;y++)P[y]=!1;for(;-1!==d;){T=[],x=(w=m[d]).vertexTriangles.length;for(var E=0;E<x;++E)if(!P[f=w.vertexTriangles[E]]){P[f]=!0,c=f+f+f;for(var O=0;O<3;++O)g=r[c],T.push(g),A.push(g),S[I]=g,++I,--(b=m[g]).numLiveTriangles,h-b.timeStamp>o&&(b.timeStamp=h,++h),++c}d=s(0,o,T,m,h,A,p)}return S};var x={};function T(e,t,r,i,n){e[t++]=r,e[t++]=i,e[t++]=i,e[t++]=n,e[t++]=n,e[t]=r}function A(e){var t={};for(var r in e)if(e.hasOwnProperty(r)&&a.e(e[r])&&a.e(e[r].values)){var i=e[r];t[r]=new l.o({componentDatatype:i.componentDatatype,componentsPerAttribute:i.componentsPerAttribute,normalize:i.normalize,values:[]})}return t}function I(e,t,r){for(var i in t)if(t.hasOwnProperty(i)&&a.e(t[i])&&a.e(t[i].values))for(var n=t[i],o=0;o<n.componentsPerAttribute;++o)e[i].values.push(n.values[r*n.componentsPerAttribute+o])}x.toWireframe=function(e){if(!a.e(e))throw new n.t("geometry is required.");var t=e.indices;if(a.e(t)){switch(e.primitiveType){case m._0x12cc5d.TRIANGLES:e.indices=function(e){for(var t=e.length,r=t/3*6,i=v.IndexDatatype.createTypedArray(t,r),n=0,a=0;a<t;a+=3,n+=6)T(i,n,e[a],e[a+1],e[a+2]);return i}(t);break;case m._0x12cc5d.TRIANGLE_STRIP:e.indices=function(e){var t=e.length;if(t>=3){var r=6*(t-2),i=v.IndexDatatype.createTypedArray(t,r);T(i,0,e[0],e[1],e[2]);for(var n=6,a=3;a<t;++a,n+=6)T(i,n,e[a-1],e[a],e[a-2]);return i}return new Uint16Array}(t);break;case m._0x12cc5d.TRIANGLE_FAN:e.indices=function(e){if(e.length>0){for(var t=e.length-1,r=6*(t-1),i=v.IndexDatatype.createTypedArray(t,r),n=e[0],a=0,o=1;o<t;++o,a+=6)T(i,a,n,e[o],e[o+1]);return i}return new Uint16Array}(t);break;default:throw new n.t("geometry.primitiveType must be TRIANGLES, TRIANGLE_STRIP, or TRIANGLE_FAN.")}e.primitiveType=m._0x12cc5d.LINES}return e},x.createLineSegmentsForVectors=function(e,t,r){if(t=a.u(t,"normal"),!a.e(e))throw new n.t("geometry is required.");if(!a.e(e.attributes.position))throw new n.t("geometry.attributes.position is required.");if(!a.e(e.attributes[t]))throw new n.t("geometry.attributes must have an attribute with the same name as the attributeName parameter, "+t+".");r=a.u(r,1e4);for(var i=e.attributes.position.values,o=e.attributes[t].values,u=i.length,c=new Float64Array(2*u),v=0,y=0;y<u;y+=3)c[v++]=i[y],c[v++]=i[y+1],c[v++]=i[y+2],c[v++]=i[y]+o[y]*r,c[v++]=i[y+1]+o[y+1]*r,c[v++]=i[y+2]+o[y+2]*r;var f,d=e.boundingSphere;return a.e(d)&&(f=new s.i(d.center,d.radius+r)),new l.I({attributes:{position:new l.o({componentDatatype:p.ComponentDatatype.DOUBLE,componentsPerAttribute:3,values:c})},primitiveType:m._0x12cc5d.LINES,boundingSphere:f})},x.createAttributeLocations=function(e){if(!a.e(e))throw new n.t("geometry is required.");var t,r=["position","positionHigh","positionLow","position3DHigh","position3DLow","position2DHigh","position2DLow","pickColor","normal","st","tangent","bitangent","extrudeDirection","compressedAttributes"],i=e.attributes,o={},s=0,u=r.length;for(t=0;t<u;++t){var p=r[t];a.e(i[p])&&(o[p]=s++)}for(var c in i)i.hasOwnProperty(c)&&!a.e(o[c])&&(o[c]=s++);return o},x.reorderForPreVertexCache=function(e){if(!a.e(e))throw new n.t("geometry is required.");var t=l.I.computeNumberOfVertices(e),r=e.indices;if(a.e(r)){for(var i=new Int32Array(t),o=0;o<t;o++)i[o]=-1;for(var s,u=r,c=u.length,y=v.IndexDatatype.createTypedArray(t,c),m=0,f=0,d=0;m<c;)-1!==(s=i[u[m]])?y[f]=s:(i[s=u[m]]=d,y[f]=d,++d),++m,++f;e.indices=y;var h=e.attributes;for(var b in h)if(h.hasOwnProperty(b)&&a.e(h[b])&&a.e(h[b].values)){for(var w=h[b],g=w.values,x=0,T=w.componentsPerAttribute,A=p.ComponentDatatype.createTypedArray(w.componentDatatype,d*T);x<t;){var I=i[x];if(-1!==I)for(var S=0;S<T;S++)A[T*I+S]=g[T*x+S];++x}w.values=A}}return e},x.reorderForPostVertexCache=function(e,t){if(!a.e(e))throw new n.t("geometry is required.");var r=e.indices;if(e.primitiveType===m._0x12cc5d.TRIANGLES&&a.e(r)){for(var i=r.length,o=0,s=0;s<i;s++)r[s]>o&&(o=r[s]);e.indices=g.tipsify({indices:r,maximumIndex:o,cacheSize:t})}return e},x.fitToUnsignedShortIndices=function(e){if(!a.e(e))throw new n.t("geometry is required.");if(a.e(e.indices)&&e.primitiveType!==m._0x12cc5d.TRIANGLES&&e.primitiveType!==m._0x12cc5d.LINES&&e.primitiveType!==m._0x12cc5d.POINTS)throw new n.t("geometry.primitiveType must equal to PrimitiveType.TRIANGLES, PrimitiveType.LINES, or PrimitiveType.POINTS.");var t=[],r=l.I.computeNumberOfVertices(e);if(a.e(e.indices)&&r>=o.e.SIXTY_FOUR_KILOBYTES){var i,s=[],u=[],p=0,c=A(e.attributes),v=e.indices,y=v.length;e.primitiveType===m._0x12cc5d.TRIANGLES?i=3:e.primitiveType===m._0x12cc5d.LINES?i=2:e.primitiveType===m._0x12cc5d.POINTS&&(i=1);for(var f=0;f<y;f+=i){for(var d=0;d<i;++d){var h=v[f+d],b=s[h];a.e(b)||(b=p++,s[h]=b,I(c,e.attributes,h)),u.push(b)}p+i>=o.e.SIXTY_FOUR_KILOBYTES&&(t.push(new l.I({attributes:c,indices:u,primitiveType:e.primitiveType,boundingSphere:e.boundingSphere,boundingSphereCV:e.boundingSphereCV})),s=[],u=[],p=0,c=A(e.attributes))}0!==u.length&&t.push(new l.I({attributes:c,indices:u,primitiveType:e.primitiveType,boundingSphere:e.boundingSphere,boundingSphereCV:e.boundingSphereCV}))}else t.push(e);return t};var S=new i.t,N=new i.t$1;x.projectTo2D=function(e,t,r,o,u){if(!a.e(e))throw new n.t("geometry is required.");if(!a.e(t))throw new n.t("attributeName is required.");if(!a.e(r))throw new n.t("attributeName3D is required.");if(!a.e(o))throw new n.t("attributeName2D is required.");if(!a.e(e.attributes[t]))throw new n.t("geometry must have attribute matching the attributeName argument: "+t+".");if(e.attributes[t].componentDatatype!==p.ComponentDatatype.DOUBLE)throw new n.t("The attribute componentDatatype must be ComponentDatatype.DOUBLE.");for(var c=e.attributes[t],v=(u=a.e(u)?u:new s.n).ellipsoid,y=c.values,m=new Float64Array(y.length),f=0,d=0;d<y.length;d+=3){var h=i.t.fromArray(y,d,S),b=v.cartesianToCartographic(h,N);if(!a.e(b))throw new n.t("Could not project point ("+h.x+", "+h.y+", "+h.z+") to 2D.");var w=u.project(b,S);m[f++]=w.x,m[f++]=w.y,m[f++]=w.z}return e.attributes[r]=c,e.attributes[o]=new l.o({componentDatatype:p.ComponentDatatype.DOUBLE,componentsPerAttribute:3,values:m}),delete e.attributes[t],e};var P={high:0,low:0};x.encodeAttribute=function(e,t,r,i){if(!a.e(e))throw new n.t("geometry is required.");if(!a.e(t))throw new n.t("attributeName is required.");if(!a.e(r))throw new n.t("attributeHighName is required.");if(!a.e(i))throw new n.t("attributeLowName is required.");if(!a.e(e.attributes[t]))throw new n.t("geometry must have attribute matching the attributeName argument: "+t+".");if(e.attributes[t].componentDatatype!==p.ComponentDatatype.DOUBLE)throw new n.t("The attribute componentDatatype must be ComponentDatatype.DOUBLE.");for(var o=e.attributes[t],s=o.values,u=s.length,v=new Float32Array(u),y=new Float32Array(u),m=0;m<u;++m)c.i.encode(s[m],P),v[m]=P.high,y[m]=P.low;var f=o.componentsPerAttribute;return e.attributes[r]=new l.o({componentDatatype:p.ComponentDatatype.FLOAT,componentsPerAttribute:f,values:v}),e.attributes[i]=new l.o({componentDatatype:p.ComponentDatatype.FLOAT,componentsPerAttribute:f,values:y}),delete e.attributes[t],e};var E=new i.t;function O(e,t){if(a.e(t))for(var r=t.values,n=r.length,o=0;o<n;o+=3)i.t.unpack(r,o,E),m.y.multiplyByPoint(e,E,E),i.t.pack(E,r,o)}function L(e,t){if(a.e(t))for(var r=t.values,n=r.length,o=0;o<n;o+=3)i.t.unpack(r,o,E),m.p.multiplyByVector(e,E,E),E=i.t.normalize(E,E),i.t.pack(E,r,o)}var D=new m.y,z=new m.p;x.transformToWorldCoordinates=function(e){if(!a.e(e))throw new n.t("instance is required.");var t=e.modelMatrix;if(m.y.equals(t,m.y.IDENTITY))return e;var r=e.geometry.attributes;O(t,r.position),O(t,r.prevPosition),O(t,r.nextPosition),(a.e(r.normal)||a.e(r.tangent)||a.e(r.bitangent))&&(m.y.inverse(t,D),m.y.transpose(D,D),m.y.getRotation(D,z),L(z,r.normal),L(z,r.tangent),L(z,r.bitangent));var i=e.geometry.boundingSphere;return a.e(i)&&(e.geometry.boundingSphere=s.i.transform(i,t,i)),e.modelMatrix=m.y.clone(m.y.IDENTITY),e};var _=new i.t;function q(e,t){var r,o,u,c,y=e.length,f=e[0].modelMatrix,d=a.e(e[0][t].indices),h=e[0][t].primitiveType;for(o=1;o<y;++o){if(!m.y.equals(e[o].modelMatrix,f))throw new n.t("All instances must have the same modelMatrix.");if(a.e(e[o][t].indices)!==d)throw new n.t("All instance geometries must have an indices or not have one.");if(e[o][t].primitiveType!==h)throw new n.t("All instance geometries must have the same primitiveType.")}var b,w,g,x,T=function(e,t){var r,i=e.length,n={},o=e[0][t].attributes;for(r in o)if(o.hasOwnProperty(r)&&a.e(o[r])&&a.e(o[r].values)){for(var s=o[r],u=s.values.length,c=!0,v=1;v<i;++v){var y=e[v][t].attributes[r];if(!a.e(y)||s.componentDatatype!==y.componentDatatype||s.componentsPerAttribute!==y.componentsPerAttribute||s.normalize!==y.normalize){c=!1;break}u+=y.values.length}c&&(n[r]=new l.o({componentDatatype:s.componentDatatype,componentsPerAttribute:s.componentsPerAttribute,normalize:s.normalize,values:p.ComponentDatatype.createTypedArray(s.componentDatatype,u)}),s.isInstanceAttribute&&(n[r].isInstanceAttribute=!0))}return n}(e,t);for(r in T)if(T.hasOwnProperty(r))for(b=T[r].values,c=0,o=0;o<y;++o)for(g=(w=e[o][t].attributes[r].values).length,u=0;u<g;++u)b[c++]=w[u];if(d){var A=0;for(o=0;o<y;++o)A+=e[o][t].indices.length;var I=l.I.computeNumberOfVertices(new l.I({attributes:T,primitiveType:m._0x12cc5d.POINTS})),S=v.IndexDatatype.createTypedArray(I,A),N=0,P=0;for(o=0;o<y;++o){var E=e[o][t].indices,O=E.length;for(c=0;c<O;++c)S[N++]=P+E[c];P+=l.I.computeNumberOfVertices(e[o][t])}x=S}var L,D=new i.t,z=0;for(o=0;o<y;++o){if(L=e[o][t].boundingSphere,!a.e(L)){D=void 0;break}i.t.add(L.center,D,D)}if(a.e(D))for(i.t.divideByScalar(D,y,D),o=0;o<y;++o){L=e[o][t].boundingSphere;var q=i.t.magnitude(i.t.subtract(L.center,D,_))+L.radius;q>z&&(z=q)}return new l.I({attributes:T,indices:x,primitiveType:h,boundingSphere:a.e(D)?new s.i(D,z):void 0})}x.combineInstances=function(e){if(!a.e(e)||e.length<1)throw new n.t("instances is required and must have length greater than zero.");for(var t=[],r=[],i=e.length,o=0;o<i;++o){var s=e[o];a.e(s.geometry)?t.push(s):a.e(s.westHemisphereGeometry)&&a.e(s.eastHemisphereGeometry)&&r.push(s)}var u=[];return t.length>0&&u.push(q(t,"geometry")),r.length>0&&(u.push(q(r,"westHemisphereGeometry")),u.push(q(r,"eastHemisphereGeometry"))),u};var C=new i.t,R=new i.t,G=new i.t,F=new i.t;x.computeNormal=function(e){if(!a.e(e))throw new n.t("geometry is required.");if(!a.e(e.attributes.position)||!a.e(e.attributes.position.values))throw new n.t("geometry.attributes.position.values is required.");if(!a.e(e.indices))throw new n.t("geometry.indices is required.");if(e.indices.length<2||e.indices.length%3!=0)throw new n.t("geometry.indices length must be greater than 0 and be a multiple of 3.");if(e.primitiveType!==m._0x12cc5d.TRIANGLES)throw new n.t("geometry.primitiveType must be PrimitiveType.TRIANGLES.");var t,r=e.indices,s=e.attributes,u=s.position.values,c=s.position.values.length/3,v=r.length,y=new Array(c),f=new Array(v/3),d=new Array(v);for(t=0;t<c;t++)y[t]={indexOffset:0,count:0,currentCount:0};var h=0;for(t=0;t<v;t+=3){var b=r[t],w=r[t+1],g=r[t+2],x=3*b,T=3*w,A=3*g;R.x=u[x],R.y=u[x+1],R.z=u[x+2],G.x=u[T],G.y=u[T+1],G.z=u[T+2],F.x=u[A],F.y=u[A+1],F.z=u[A+2],y[b].count++,y[w].count++,y[g].count++,i.t.subtract(G,R,G),i.t.subtract(F,R,F),f[h]=i.t.cross(G,F,new i.t),h++}var I,S=0;for(t=0;t<c;t++)y[t].indexOffset+=S,S+=y[t].count;for(h=0,t=0;t<v;t+=3){var N=(I=y[r[t]]).indexOffset+I.currentCount;d[N]=h,I.currentCount++,d[N=(I=y[r[t+1]]).indexOffset+I.currentCount]=h,I.currentCount++,d[N=(I=y[r[t+2]]).indexOffset+I.currentCount]=h,I.currentCount++,h++}var P=new Float32Array(3*c);for(t=0;t<c;t++){var E=3*t;if(I=y[t],i.t.clone(i.t.ZERO,C),I.count>0){for(h=0;h<I.count;h++)i.t.add(C,f[d[I.indexOffset+h]],C);i.t.equalsEpsilon(i.t.ZERO,C,o.e.EPSILON10)&&i.t.clone(f[d[I.indexOffset]],C)}i.t.equalsEpsilon(i.t.ZERO,C,o.e.EPSILON10)&&(C.z=1),i.t.normalize(C,C),P[E]=C.x,P[E+1]=C.y,P[E+2]=C.z}return e.attributes.normal=new l.o({componentDatatype:p.ComponentDatatype.FLOAT,componentsPerAttribute:3,values:P}),e};var k=new i.t,B=new i.t,M=new i.t;x.computeTangentAndBitangent=function(e){if(!a.e(e))throw new n.t("geometry is required.");var t=e.attributes,r=e.indices;if(!a.e(t.position)||!a.e(t.position.values))throw new n.t("geometry.attributes.position.values is required.");if(!a.e(t.normal)||!a.e(t.normal.values))throw new n.t("geometry.attributes.normal.values is required.");if(!a.e(t.st)||!a.e(t.st.values))throw new n.t("geometry.attributes.st.values is required.");if(!a.e(r))throw new n.t("geometry.indices is required.");if(r.length<2||r.length%3!=0)throw new n.t("geometry.indices length must be greater than 0 and be a multiple of 3.");if(e.primitiveType!==m._0x12cc5d.TRIANGLES)throw new n.t("geometry.primitiveType must be PrimitiveType.TRIANGLES.");var o,s,u,c,v=e.attributes.position.values,y=e.attributes.normal.values,f=e.attributes.st.values,d=e.attributes.position.values.length/3,h=r.length,b=new Array(3*d);for(o=0;o<b.length;o++)b[o]=0;for(o=0;o<h;o+=3){var w=r[o],g=r[o+1],x=r[o+2];u=3*g,c=3*x;var T=2*w,A=2*g,I=2*x,S=v[s=3*w],N=v[s+1],P=v[s+2],E=f[T],O=f[T+1],L=f[A+1]-O,D=f[I+1]-O,z=1/((f[A]-E)*D-(f[I]-E)*L),_=(D*(v[u]-S)-L*(v[c]-S))*z,q=(D*(v[u+1]-N)-L*(v[c+1]-N))*z,C=(D*(v[u+2]-P)-L*(v[c+2]-P))*z;b[s]+=_,b[s+1]+=q,b[s+2]+=C,b[u]+=_,b[u+1]+=q,b[u+2]+=C,b[c]+=_,b[c+1]+=q,b[c+2]+=C}var R=new Float32Array(3*d),G=new Float32Array(3*d);for(o=0;o<d;o++){u=(s=3*o)+1,c=s+2;var F=i.t.fromArray(y,s,k),U=i.t.fromArray(b,s,M),V=i.t.dot(F,U);i.t.multiplyByScalar(F,V,B),i.t.normalize(i.t.subtract(U,B,U),U),R[s]=U.x,R[u]=U.y,R[c]=U.z,i.t.normalize(i.t.cross(F,U,U),U),G[s]=U.x,G[u]=U.y,G[c]=U.z}return e.attributes.tangent=new l.o({componentDatatype:p.ComponentDatatype.FLOAT,componentsPerAttribute:3,values:R}),e.attributes.bitangent=new l.o({componentDatatype:p.ComponentDatatype.FLOAT,componentsPerAttribute:3,values:G}),e};var U=new r.o,V=new i.t,Y=new i.t,Z=new i.t,H=new r.o;function W(e){switch(e.primitiveType){case m._0x12cc5d.TRIANGLE_FAN:return function(e){var t=l.I.computeNumberOfVertices(e);if(t<3)throw new n.t("The number of vertices must be at least three.");var r=v.IndexDatatype.createTypedArray(t,3*(t-2));r[0]=1,r[1]=0,r[2]=2;for(var i=3,a=3;a<t;++a)r[i++]=a-1,r[i++]=0,r[i++]=a;return e.indices=r,e.primitiveType=m._0x12cc5d.TRIANGLES,e}(e);case m._0x12cc5d.TRIANGLE_STRIP:return function(e){var t=l.I.computeNumberOfVertices(e);if(t<3)throw new n.t("The number of vertices must be at least 3.");var r=v.IndexDatatype.createTypedArray(t,3*(t-2));r[0]=0,r[1]=1,r[2]=2,t>3&&(r[3]=0,r[4]=2,r[5]=3);for(var i=6,a=3;a<t-1;a+=2)r[i++]=a,r[i++]=a-1,r[i++]=a+1,a+2<t&&(r[i++]=a,r[i++]=a+1,r[i++]=a+2);return e.indices=r,e.primitiveType=m._0x12cc5d.TRIANGLES,e}(e);case m._0x12cc5d.TRIANGLES:return function(e){if(a.e(e.indices))return e;var t=l.I.computeNumberOfVertices(e);if(t<3)throw new n.t("The number of vertices must be at least three.");if(t%3!=0)throw new n.t("The number of vertices must be a multiple of three.");for(var r=v.IndexDatatype.createTypedArray(t,t),i=0;i<t;++i)r[i]=i;return e.indices=r,e}(e);case m._0x12cc5d.LINE_STRIP:return function(e){var t=l.I.computeNumberOfVertices(e);if(t<2)throw new n.t("The number of vertices must be at least two.");var r=v.IndexDatatype.createTypedArray(t,2*(t-1));r[0]=0,r[1]=1;for(var i=2,a=2;a<t;++a)r[i++]=a-1,r[i++]=a;return e.indices=r,e.primitiveType=m._0x12cc5d.LINES,e}(e);case m._0x12cc5d.LINE_LOOP:return function(e){var t=l.I.computeNumberOfVertices(e);if(t<2)throw new n.t("The number of vertices must be at least two.");var r=v.IndexDatatype.createTypedArray(t,2*t);r[0]=0,r[1]=1;for(var i=2,a=2;a<t;++a)r[i++]=a-1,r[i++]=a;return r[i++]=t-1,r[i]=0,e.indices=r,e.primitiveType=m._0x12cc5d.LINES,e}(e);case m._0x12cc5d.LINES:return function(e){if(a.e(e.indices))return e;var t=l.I.computeNumberOfVertices(e);if(t<2)throw new n.t("The number of vertices must be at least two.");if(t%2!=0)throw new n.t("The number of vertices must be a multiple of 2.");for(var r=v.IndexDatatype.createTypedArray(t,t),i=0;i<t;++i)r[i]=i;return e.indices=r,e}(e)}return e}function X(e,t){Math.abs(e.y)<o.e.EPSILON6&&(e.y=t?-o.e.EPSILON6:o.e.EPSILON6)}x.compressVertices=function(e){if(!a.e(e))throw new n.t("geometry is required.");var o,s,u=e.attributes.extrudeDirection;if(a.e(u)){var c=u.values;s=c.length/3;var v=new Float32Array(2*s),y=0;for(o=0;o<s;++o)i.t.fromArray(c,3*o,V),i.t.equals(V,i.t.ZERO)?y+=2:(H=t.t.octEncodeInRange(V,65535,H),v[y++]=H.x,v[y++]=H.y);return e.attributes.compressedAttributes=new l.o({componentDatatype:p.ComponentDatatype.FLOAT,componentsPerAttribute:2,values:v}),delete e.attributes.extrudeDirection,e}var m=e.attributes.normal,f=e.attributes.st,d=a.e(m),h=a.e(f);if(!d&&!h)return e;var b,w,g,x,T=e.attributes.tangent,A=e.attributes.bitangent,I=a.e(T),S=a.e(A);d&&(b=m.values),h&&(w=f.values),I&&(g=T.values),S&&(x=A.values);var N=s=(d?b.length:w.length)/(d?3:2),P=h&&d?2:1;P+=I||S?1:0;var E=new Float32Array(N*=P),O=0;for(o=0;o<s;++o){h&&(r.o.fromArray(w,2*o,U),E[O++]=t.t.compressTextureCoordinates(U));var L=3*o;d&&a.e(g)&&a.e(x)?(i.t.fromArray(b,L,V),i.t.fromArray(g,L,Y),i.t.fromArray(x,L,Z),t.t.octPack(V,Y,Z,U),E[O++]=U.x,E[O++]=U.y):(d&&(i.t.fromArray(b,L,V),E[O++]=t.t.octEncodeFloat(V)),I&&(i.t.fromArray(g,L,V),E[O++]=t.t.octEncodeFloat(V)),S&&(i.t.fromArray(x,L,V),E[O++]=t.t.octEncodeFloat(V)))}return e.attributes.compressedAttributes=new l.o({componentDatatype:p.ComponentDatatype.FLOAT,componentsPerAttribute:P,values:E}),d&&delete e.attributes.normal,h&&delete e.attributes.st,S&&delete e.attributes.bitangent,I&&delete e.attributes.tangent,e};var j=new i.t;function J(e,t,r,n){i.t.add(e,i.t.multiplyByScalar(i.t.subtract(t,e,j),e.y/(e.y-t.y),j),r),i.t.clone(r,n),X(r,!0),X(n,!1)}var K=new i.t,$=new i.t,Q=new i.t,ee=new i.t,te={positions:new Array(7),indices:new Array(9)};function re(e,t,r){if(!(e.x>=0||t.x>=0||r.x>=0)){!function(e,t,r){if(0!==e.y&&0!==t.y&&0!==r.y)return X(e,e.y<0),X(t,t.y<0),void X(r,r.y<0);var i=Math.abs(e.y),n=Math.abs(t.y),a=Math.abs(r.y),s=(i>n?i>a?o.e.sign(e.y):o.e.sign(r.y):n>a?o.e.sign(t.y):o.e.sign(r.y))<0;X(e,s),X(t,s),X(r,s)}(e,t,r);var i=e.y<0,n=t.y<0,a=r.y<0,s=0;s+=i?1:0,s+=n?1:0;var u=te.indices;1===(s+=a?1:0)?(u[1]=3,u[2]=4,u[5]=6,u[7]=6,u[8]=5,i?(J(e,t,K,Q),J(e,r,$,ee),u[0]=0,u[3]=1,u[4]=2,u[6]=1):n?(J(t,r,K,Q),J(t,e,$,ee),u[0]=1,u[3]=2,u[4]=0,u[6]=2):a&&(J(r,e,K,Q),J(r,t,$,ee),u[0]=2,u[3]=0,u[4]=1,u[6]=0)):2===s&&(u[2]=4,u[4]=4,u[5]=3,u[7]=5,u[8]=6,i?n?a||(J(r,e,K,Q),J(r,t,$,ee),u[0]=0,u[1]=1,u[3]=0,u[6]=2):(J(t,r,K,Q),J(t,e,$,ee),u[0]=2,u[1]=0,u[3]=2,u[6]=1):(J(e,t,K,Q),J(e,r,$,ee),u[0]=1,u[1]=2,u[3]=1,u[6]=0));var p=te.positions;return p[0]=e,p[1]=t,p[2]=r,p.length=3,(1===s||2===s)&&(p[3]=K,p[4]=$,p[5]=Q,p[6]=ee,p.length=7),te}}function ie(e,t){var r=e.attributes;if(0!==r.position.values.length){for(var i in r)if(r.hasOwnProperty(i)&&a.e(r[i])&&a.e(r[i].values)){var n=r[i];n.values=p.ComponentDatatype.createTypedArray(n.componentDatatype,n.values)}var o=l.I.computeNumberOfVertices(e);return e.indices=v.IndexDatatype.createTypedArray(o,e.indices),t&&(e.boundingSphere=s.i.fromVertices(r.position.values)),e}}function ne(e){var t=e.attributes,r={};for(var i in t)if(t.hasOwnProperty(i)&&a.e(t[i])&&a.e(t[i].values)){var n=t[i];r[i]=new l.o({componentDatatype:n.componentDatatype,componentsPerAttribute:n.componentsPerAttribute,normalize:n.normalize,values:[]})}return new l.I({attributes:r,indices:[],primitiveType:e.primitiveType})}function ae(e,t,r){var i=a.e(e.geometry.boundingSphere);t=ie(t,i),r=ie(r,i),a.e(r)&&!a.e(t)?e.geometry=r:!a.e(r)&&a.e(t)?e.geometry=t:(e.westHemisphereGeometry=t,e.eastHemisphereGeometry=r,e.geometry=void 0)}function oe(e,t){var r=new e,i=new e,n=new e;return function(a,o,s,u,p,c,l,v){var y=e.fromArray(p,a*t,r),m=e.fromArray(p,o*t,i),f=e.fromArray(p,s*t,n);e.multiplyByScalar(y,u.x,y),e.multiplyByScalar(m,u.y,m),e.multiplyByScalar(f,u.z,f);var d=e.add(y,m,y);e.add(d,f,d),v&&e.normalize(d,d),e.pack(d,c,l*t)}}var se=oe(u.e,4),ue=oe(i.t,3),pe=oe(r.o,2),ce=new i.t,le=new i.t,ve=new i.t,ye=new i.t;function me(e,t,r,n,s,u,p,c,l,v,y,m,f,d,h,b){if(a.e(u)||a.e(p)||a.e(c)||a.e(l)||a.e(v)||0!==d){var g=w(n,i.t.fromArray(s,3*e,ce),i.t.fromArray(s,3*t,le),i.t.fromArray(s,3*r,ve),ye);if(a.e(u)&&ue(e,t,r,g,u,m.normal.values,b,!0),a.e(v)){var x,T=i.t.fromArray(v,3*e,ce),A=i.t.fromArray(v,3*t,le),I=i.t.fromArray(v,3*r,ve);i.t.multiplyByScalar(T,g.x,T),i.t.multiplyByScalar(A,g.y,A),i.t.multiplyByScalar(I,g.z,I),i.t.equals(T,i.t.ZERO)&&i.t.equals(A,i.t.ZERO)&&i.t.equals(I,i.t.ZERO)?((x=ce).x=0,x.y=0,x.z=0):(x=i.t.add(T,A,T),i.t.add(x,I,x),i.t.normalize(x,x)),i.t.pack(x,m.extrudeDirection.values,3*b)}if(a.e(y)&&function(e,t,r,i,n,a,s){var u=n[e]*i.x,p=n[t]*i.y,c=n[r]*i.z;a[s]=u+p+c>o.e.EPSILON6?1:0}(e,t,r,g,y,m.applyOffset.values,b),a.e(p)&&ue(e,t,r,g,p,m.tangent.values,b,!0),a.e(c)&&ue(e,t,r,g,c,m.bitangent.values,b,!0),a.e(l)&&pe(e,t,r,g,l,m.st.values,b),d>0)for(var S=0;S<d;S++){var N=f[S];fe(e,t,r,g,b,h[N],m[N])}}}function fe(e,t,r,i,n,a,o){var s=a.componentsPerAttribute,u=a.values,p=o.values;switch(s){case 4:se(e,t,r,i,u,p,n,!1);break;case 3:ue(e,t,r,i,u,p,n,!1);break;case 2:pe(e,t,r,i,u,p,n,!1);break;default:p[n]=u[e]*i.x+u[t]*i.y+u[r]*i.z}}function de(e,t,r,i,n,a){var o=e.position.values.length/3;if(-1!==n){var s=i[n],u=r[s];return-1===u?(r[s]=o,e.position.values.push(a.x,a.y,a.z),t.push(o),o):(t.push(u),u)}return e.position.values.push(a.x,a.y,a.z),t.push(o),o}var he={position:!0,normal:!0,bitangent:!0,tangent:!0,st:!0,extrudeDirection:!0,applyOffset:!0};function be(e){var t=e.geometry,r=t.attributes,n=r.position.values,o=a.e(r.normal)?r.normal.values:void 0,s=a.e(r.bitangent)?r.bitangent.values:void 0,u=a.e(r.tangent)?r.tangent.values:void 0,p=a.e(r.st)?r.st.values:void 0,c=a.e(r.extrudeDirection)?r.extrudeDirection.values:void 0,l=a.e(r.applyOffset)?r.applyOffset.values:void 0,v=t.indices,y=[];for(var m in r)r.hasOwnProperty(m)&&!he[m]&&a.e(r[m])&&y.push(m);var f,d,h,b,w=y.length,g=ne(t),x=ne(t),T=[];T.length=n.length/3;var A=[];for(A.length=n.length/3,b=0;b<T.length;++b)T[b]=-1,A[b]=-1;var I=v.length;for(b=0;b<I;b+=3){var S=v[b],N=v[b+1],P=v[b+2],E=i.t.fromArray(n,3*S),O=i.t.fromArray(n,3*N),L=i.t.fromArray(n,3*P),D=re(E,O,L);if(a.e(D)&&D.positions.length>3)for(var z=D.positions,_=D.indices,q=_.length,C=0;C<q;++C){var R=_[C],G=z[R];G.y<0?(f=x.attributes,d=x.indices,h=T):(f=g.attributes,d=g.indices,h=A),me(S,N,P,G,n,o,u,s,p,c,l,f,y,w,r,de(f,d,h,v,R<3?b+R:-1,G))}else a.e(D)&&(E=D.positions[0],O=D.positions[1],L=D.positions[2]),E.y<0?(f=x.attributes,d=x.indices,h=T):(f=g.attributes,d=g.indices,h=A),me(S,N,P,E,n,o,u,s,p,c,l,f,y,w,r,de(f,d,h,v,b,E)),me(S,N,P,O,n,o,u,s,p,c,l,f,y,w,r,de(f,d,h,v,b+1,O)),me(S,N,P,L,n,o,u,s,p,c,l,f,y,w,r,de(f,d,h,v,b+2,L))}ae(e,x,g)}var we=f.o.fromPointNormal(i.t.ZERO,i.t.UNIT_Y),ge=new i.t,xe=new i.t;function Te(e,t,r,n,s,u,p){if(a.e(p)){var c=i.t.fromArray(n,3*e,ce);i.t.equalsEpsilon(c,r,o.e.EPSILON10)?u.applyOffset.values[s]=p[e]:u.applyOffset.values[s]=p[t]}}function Ae(e){var t,r=e.geometry,n=r.attributes,s=n.position.values,u=a.e(n.applyOffset)?n.applyOffset.values:void 0,p=r.indices,c=ne(r),l=ne(r),v=p.length,m=[];m.length=s.length/3;var f=[];for(f.length=s.length/3,t=0;t<m.length;++t)m[t]=-1,f[t]=-1;for(t=0;t<v;t+=2){var d=p[t],h=p[t+1],b=i.t.fromArray(s,3*d,ce),w=i.t.fromArray(s,3*h,le);Math.abs(b.y)<o.e.EPSILON6&&(b.y<0?b.y=-o.e.EPSILON6:b.y=o.e.EPSILON6),Math.abs(w.y)<o.e.EPSILON6&&(w.y<0?w.y=-o.e.EPSILON6:w.y=o.e.EPSILON6);var g=c.attributes,x=c.indices,T=f,A=l.attributes,I=l.indices,S=m,N=y.g.lineSegmentPlane(b,w,we,ve);if(a.e(N)){var P=i.t.multiplyByScalar(i.t.UNIT_Y,5*o.e.EPSILON9,ge);b.y<0&&(i.t.negate(P,P),g=l.attributes,x=l.indices,T=m,A=c.attributes,I=c.indices,S=f);var E=i.t.add(N,P,xe);Te(d,h,b,s,de(g,x,T,p,t,b),g,u),Te(d,h,E,s,de(g,x,T,p,-1,E),g,u),i.t.negate(P,P),i.t.add(N,P,E),Te(d,h,E,s,de(A,I,S,p,-1,E),A,u),Te(d,h,w,s,de(A,I,S,p,t+1,w),A,u)}else{var O,L,D;b.y<0?(O=l.attributes,L=l.indices,D=m):(O=c.attributes,L=c.indices,D=f),Te(d,h,b,s,de(O,L,D,p,t,b),O,u),Te(d,h,w,s,de(O,L,D,p,t+1,w),O,u)}}ae(e,l,c)}var Ie=new r.o,Se=new r.o,Ne=new i.t,Pe=new i.t,Ee=new i.t,Oe=new i.t,Le=new i.t,De=new i.t,ze=new i.t,_e=new u.e;function qe(e){for(var t=e.attributes,r=t.position.values,n=t.prevPosition.values,a=t.nextPosition.values,o=r.length,s=0;s<o;s+=3){var u=i.t.unpack(r,s,Ne);if(!(u.x>0)){var p=i.t.unpack(n,s,Pe);(u.y<0&&p.y>0||u.y>0&&p.y<0)&&(s-3>0?(n[s]=r[s-3],n[s+1]=r[s-2],n[s+2]=r[s-1]):i.t.pack(u,n,s));var c=i.t.unpack(a,s,Ee);(u.y<0&&c.y>0||u.y>0&&c.y<0)&&(s+3<o?(a[s]=r[s+3],a[s+1]=r[s+4],a[s+2]=r[s+5]):i.t.pack(u,a,s))}}}var Ce=5*o.e.EPSILON9,Re=o.e.EPSILON6;x.splitLongitude=function(e){if(!a.e(e))throw new n.t("instance is required.");var t=e.geometry,p=t.boundingSphere;if(a.e(p)&&(p.center.x-p.radius>0||s.i.intersectPlane(p,f.o.ORIGIN_ZX_PLANE)!==s.S.INTERSECTING))return e;if(t.geometryType!==l.Me.NONE)switch(t.geometryType){case l.Me.POLYLINES:!function(e){var t,n,s,p=e.geometry,c=p.attributes,l=c.position.values,v=c.prevPosition.values,m=c.nextPosition.values,f=c.expandAndWidth.values,d=a.e(c.st)?c.st.values:void 0,h=a.e(c.color)?c.color.values:void 0,b=a.e(c.dist)?c.dist.values:void 0,w=ne(p),g=ne(p),x=!1,T=l.length/3;for(t=0;t<T;t+=4){var A=t,I=t+2,S=i.t.fromArray(l,3*A,Ne),N=i.t.fromArray(l,3*I,Pe);if(Math.abs(S.y)<Re)for(S.y=Re*(N.y<0?-1:1),l[3*t+1]=S.y,l[3*(t+1)+1]=S.y,n=3*A;n<3*A+12;n+=3)v[n]=l[3*t],v[n+1]=l[3*t+1],v[n+2]=l[3*t+2];if(Math.abs(N.y)<Re)for(N.y=Re*(S.y<0?-1:1),l[3*(t+2)+1]=N.y,l[3*(t+3)+1]=N.y,n=3*A;n<3*A+12;n+=3)m[n]=l[3*(t+2)],m[n+1]=l[3*(t+2)+1],m[n+2]=l[3*(t+2)+2];var P=w.attributes,E=w.indices,O=g.attributes,L=g.indices,D=y.g.lineSegmentPlane(S,N,we,Oe);if(a.e(D)){x=!0;var z=i.t.multiplyByScalar(i.t.UNIT_Y,Ce,Le);S.y<0&&(i.t.negate(z,z),P=g.attributes,E=g.indices,O=w.attributes,L=w.indices);var _=i.t.add(D,z,De);P.position.values.push(S.x,S.y,S.z,S.x,S.y,S.z),P.position.values.push(_.x,_.y,_.z),P.position.values.push(_.x,_.y,_.z),P.prevPosition.values.push(v[3*A],v[3*A+1],v[3*A+2]),P.prevPosition.values.push(v[3*A+3],v[3*A+4],v[3*A+5]),P.prevPosition.values.push(S.x,S.y,S.z,S.x,S.y,S.z),P.nextPosition.values.push(_.x,_.y,_.z),P.nextPosition.values.push(_.x,_.y,_.z),P.nextPosition.values.push(_.x,_.y,_.z),P.nextPosition.values.push(_.x,_.y,_.z),i.t.negate(z,z),i.t.add(D,z,_),O.position.values.push(_.x,_.y,_.z),O.position.values.push(_.x,_.y,_.z),O.position.values.push(N.x,N.y,N.z,N.x,N.y,N.z),O.prevPosition.values.push(_.x,_.y,_.z),O.prevPosition.values.push(_.x,_.y,_.z),O.prevPosition.values.push(_.x,_.y,_.z),O.prevPosition.values.push(_.x,_.y,_.z),O.nextPosition.values.push(N.x,N.y,N.z,N.x,N.y,N.z),O.nextPosition.values.push(m[3*I],m[3*I+1],m[3*I+2]),O.nextPosition.values.push(m[3*I+3],m[3*I+4],m[3*I+5]);var q=r.o.fromArray(f,2*A,Ie),C=Math.abs(q.y);P.expandAndWidth.values.push(-1,C,1,C),P.expandAndWidth.values.push(-1,-C,1,-C),O.expandAndWidth.values.push(-1,C,1,C),O.expandAndWidth.values.push(-1,-C,1,-C);var R=i.t.magnitudeSquared(i.t.subtract(D,S,Ee));if(R/=i.t.magnitudeSquared(i.t.subtract(N,S,Ee)),a.e(h)){var G=u.e.fromArray(h,4*A,_e),F=u.e.fromArray(h,4*I,_e),k=o.e.lerp(G.x,F.x,R),B=o.e.lerp(G.y,F.y,R),M=o.e.lerp(G.z,F.z,R),U=o.e.lerp(G.w,F.w,R);for(n=4*A;n<4*A+8;++n)P.color.values.push(h[n]);for(P.color.values.push(k,B,M,U),P.color.values.push(k,B,M,U),O.color.values.push(k,B,M,U),O.color.values.push(k,B,M,U),n=4*I;n<4*I+8;++n)O.color.values.push(h[n])}if(a.e(d)){var V=r.o.fromArray(d,2*A,Ie),Y=r.o.fromArray(d,2*(t+3),Se),Z=o.e.lerp(V.x,Y.x,R);for(n=2*A;n<2*A+4;++n)P.st.values.push(d[n]);for(P.st.values.push(Z,V.y),P.st.values.push(Z,Y.y),O.st.values.push(Z,V.y),O.st.values.push(Z,Y.y),n=2*I;n<2*I+4;++n)O.st.values.push(d[n])}if(a.e(b)){var H=i.t.fromArray(b,3*A,ze),W=i.t.fromArray(b,3*I,ze),X=o.e.lerp(H.x,W.x,R);for(n=3*A;n<3*A+6;++n)P.dist.values.push(b[n]);for(P.dist.values.push(X,H.y,H.z),P.dist.values.push(X,H.y,H.z),O.dist.values.push(X,W.y,W.z),O.dist.values.push(X,W.y,W.z),n=3*I;n<3*I+6;++n)O.dist.values.push(b[n])}s=P.position.values.length/3-4,E.push(s,s+2,s+1),E.push(s+1,s+2,s+3),s=O.position.values.length/3-4,L.push(s,s+2,s+1),L.push(s+1,s+2,s+3)}else{var j,J;for(S.y<0?(j=g.attributes,J=g.indices):(j=w.attributes,J=w.indices),j.position.values.push(S.x,S.y,S.z),j.position.values.push(S.x,S.y,S.z),j.position.values.push(N.x,N.y,N.z),j.position.values.push(N.x,N.y,N.z),n=3*t;n<3*t+12;++n)j.prevPosition.values.push(v[n]),j.nextPosition.values.push(m[n]);for(n=2*t;n<2*t+8;++n)j.expandAndWidth.values.push(f[n]),a.e(d)&&j.st.values.push(d[n]);if(a.e(h))for(n=4*t;n<4*t+16;++n)j.color.values.push(h[n]);if(a.e(b))for(n=3*t;n<3*t+12;++n)j.dist.values.push(b[n]);s=j.position.values.length/3-4,J.push(s,s+2,s+1),J.push(s+1,s+2,s+3)}}x&&(qe(g),qe(w)),ae(e,g,w)}(e);break;case l.Me.TRIANGLES:be(e);break;case l.Me.LINES:Ae(e)}else W(t),t.primitiveType===m._0x12cc5d.TRIANGLES?be(e):t.primitiveType===m._0x12cc5d.LINES&&Ae(e);return e},e.k=x}));