2 lines
29 KiB
JavaScript
2 lines
29 KiB
JavaScript
|
define(["exports","./AttributeCompression-af389d04","./Matrix2-9aa31791","./RuntimeError-346a3079","./when-4bbc8319","./ComponentDatatype-93750d1a","./Transforms-d13cc04e","./EncodedCartesian3-f286cedc","./GeometryAttribute-43536dc0","./IndexDatatype-b7d979a6","./IntersectionTests-96a04219","./Plane-318d6937"],(function(e,t,r,a,i,n,s,o,u,p,d,l){"use strict";var v=new r.Cartesian3,y=new r.Cartesian3,f=new r.Cartesian3;var c={calculateACMR:function(e){var t=(e=i.defaultValue(e,i.defaultValue.EMPTY_OBJECT)).indices,r=e.maximumIndex,a=i.defaultValue(e.cacheSize,24),n=t.length;if(!i.defined(r)){r=0;for(var s=0,o=t[s];s<n;)o>r&&(r=o),o=t[++s]}for(var u=[],p=0;p<r+1;p++)u[p]=0;for(var d=a+1,l=0;l<n;++l)d-u[t[l]]>a&&(u[t[l]]=d,++d);return(d-a+1)/(n/3)}};c.tipsify=function(e){var t,r=(e=i.defaultValue(e,i.defaultValue.EMPTY_OBJECT)).indices,a=e.maximumIndex,n=i.defaultValue(e.cacheSize,24);function s(e,r,a,i,n,s,o){for(var u,p=-1,d=-1,l=0;l<a.length;){var v=a[l];i[v].numLiveTriangles&&(u=0,n-i[v].timeStamp+2*i[v].numLiveTriangles<=r&&(u=n-i[v].timeStamp),(u>d||-1===d)&&(d=u,p=v)),++l}return-1===p?function(e,r,a,i){for(;r.length>=1;){var n=r[r.length-1];if(r.splice(r.length-1,1),e[n].numLiveTriangles>0)return n}for(;t<i;){if(e[t].numLiveTriangles>0)return++t-1;++t}return-1}(i,s,0,o):p}var o=r.length,u=0,p=0,d=r[p],l=o;if(i.defined(a))u=a+1;else{for(;p<l;)d>u&&(u=d),d=r[++p];if(-1===u)return 0;++u}var v,y=[];for(v=0;v<u;v++)y[v]={numLiveTriangles:0,timeStamp:0,vertexTriangles:[]};p=0;for(var f=0;p<l;)y[r[p]].vertexTriangles.push(f),++y[r[p]].numLiveTriangles,y[r[p+1]].vertexTriangles.push(f),++y[r[p+1]].numLiveTriangles,y[r[p+2]].vertexTriangles.push(f),++y[r[p+2]].numLiveTriangles,++f,p+=3;var c=0,m=n+1;t=1;var C,h,b,g,A=[],T=[],x=0,P=[],w=o/3,S=[];for(v=0;v<w;v++)S[v]=!1;for(;-1!==c;){A=[],g=(h=y[c]).vertexTriangles.length;for(var I=0;I<g;++I)if(!S[f=h.vertexTriangles[I]]){S[f]=!0,p=f+f+f;for(var O=0;O<3;++O)b=r[p],A.push(b),T.push(b),P[x]=b,++x,--(C=y[b]).numLiveTriangles,m-C.timeStamp>n&&(C.timeStamp=m,++m),++p}c=s(0,n,A,y,m,T,u)}return P};var m={};function C(e,t,r,a,i){e[t++]=r,e[t++]=a,e[t++]=a,e[t++]=i,e[t++]=i,e[t]=r}function h(e){var t={};for(var r in e)if(e.hasOwnProperty(r)&&i.defined(e[r])&&i.defined(e[r].values)){var a=e[r];t[r]=new u.GeometryAttribute({componentDatatype:a.componentDatatype,componentsPerAttribute:a.componentsPerAttribute,normalize:a.normalize,values:[]})}return t}function b(e,t,r){for(var a in t)if(t.hasOwnProperty(a)&&i.defined(t[a])&&i.defined(t[a].values))for(var n=t[a],s=0;s<n.componentsPerAttribute;++s)e[a].values.push(n.values[r*n.componentsPerAttribute+s])}m.toWireframe=function(e){var t=e.indices;if(i.defined(t)){switch(e.primitiveType){case u.PrimitiveType.TRIANGLES:e.indices=function(e){for(var t=e.length,r=t/3*6,a=p.IndexDatatype.createTypedArray(t,r),i=0,n=0;n<t;n+=3,i+=6)C(a,i,e[n],e[n+1],e[n+2]);return a}(t);break;case u.PrimitiveType.TRIANGLE_STRIP:e.indices=function(e){var t=e.length;if(t>=3){var r=6*(t-2),a=p.IndexDatatype.createTypedArray(t,r);C(a,0,e[0],e[1],e[2]);for(var i=6,n=3;n<t;++n,i+=6)C(a,i,e[n-1],e[n],e[n-2]);return a}return new Uint16Array}(t);break;case u.PrimitiveType.TRIANGLE_FAN:e.indices=function(e){if(e.length>0){for(var t=e.length-1,r=6*(t-1),a=p.IndexDatatype.createTypedArray(t,r),i=e[0],n=0,s=1;s<t;++s,n+=6)C(a,n,i,e[s],e[s+1]);return a}return new Uint16Array}(t)}e.primitiveType=u.PrimitiveType.LINES}return e},m.createLineSegmentsForVectors=function(e,t,r){t=i.defaultValue(t,"normal"),r=i.defaultValue(r,1e4);for(var a,o=e.attributes.position.values,p=e.attributes[t].values,d=o.length,l=new Float64Array(2*d),v=0,y=0;y<d;y+=3)l[v++]=o[y],l[v++]=o[y+1],l[v++]=o[y+2],l[v++]=o[y]+p[y]*r,l[v++]=o[y+1]+p[y+1]*r,l[v++]=o[y+2]+p[y+2]*r;var f=e.boundingSphere;return i.defined(f)&&(a=new s.BoundingSphere(f.center,f.radius+r)),new u.Geometry({attributes:{position:new u.GeometryAttribute({componentDatatype:n.ComponentDatatype.DOUBLE,componentsPerAttribute:3,values:l})},primitiveType:u.PrimitiveType.LINES,boundingSphere:a})},m.createAttributeLocations=function(e){var t,r=["posi
|