基于廊坊系统为基础,国防科技大学系统演示Demo
surprise
2024-04-28 c310c155e3e91e6b285b3fb3519a3ef7c6690d66
1
define(["./GeometryOffsetAttribute-4d39b441","./Transforms-3e1dc9c2","./Matrix2-52f9f880","./RuntimeError-ac440aa5","./ComponentDatatype-a9820060","./CylinderGeometryLibrary-fe5ec654","./defaultValue-69ee94f4","./GeometryAttribute-c774c37f","./GeometryAttributes-1b4134a9","./IndexDatatype-1cbc8622","./_commonjsHelpers-3aae1032-15991586","./combine-0259f56f","./PixelFormat-9ceadbf3","./WebGLConstants-f63312fc"],(function(t,e,i,n,o,r,a,s,u,f,c,d,l,m){"use strict";const b=new i.Cartesian2;function p(t){const e=(t=a.defaultValue(t,a.defaultValue.EMPTY_OBJECT)).length,i=t.topRadius,n=t.bottomRadius,o=a.defaultValue(t.slices,128),r=Math.max(a.defaultValue(t.numberOfVerticalLines,16),0);this._length=e,this._topRadius=i,this._bottomRadius=n,this._slices=o,this._numberOfVerticalLines=r,this._offsetAttribute=t.offsetAttribute,this._workerName="createCylinderOutlineGeometry"}p.packedLength=6,p.pack=function(t,e,i){return i=a.defaultValue(i,0),e[i++]=t._length,e[i++]=t._topRadius,e[i++]=t._bottomRadius,e[i++]=t._slices,e[i++]=t._numberOfVerticalLines,e[i]=a.defaultValue(t._offsetAttribute,-1),e};const y={length:void 0,topRadius:void 0,bottomRadius:void 0,slices:void 0,numberOfVerticalLines:void 0,offsetAttribute:void 0};return p.unpack=function(t,e,i){e=a.defaultValue(e,0);const n=t[e++],o=t[e++],r=t[e++],s=t[e++],u=t[e++],f=t[e];return a.defined(i)?(i._length=n,i._topRadius=o,i._bottomRadius=r,i._slices=s,i._numberOfVerticalLines=u,i._offsetAttribute=-1===f?void 0:f,i):(y.length=n,y.topRadius=o,y.bottomRadius=r,y.slices=s,y.numberOfVerticalLines=u,y.offsetAttribute=-1===f?void 0:f,new p(y))},p.createGeometry=function(n){let c=n._length;const d=n._topRadius,l=n._bottomRadius,m=n._slices,p=n._numberOfVerticalLines;if(c<=0||d<0||l<0||0===d&&0===l)return;const y=2*m,_=r.CylinderGeometryLibrary.computePositions(c,d,l,m,!1);let h,A=2*m;if(p>0){const t=Math.min(p,m);h=Math.round(m/t),A+=t}const R=f.IndexDatatype.createTypedArray(y,2*A);let G,O=0;for(G=0;G<m-1;G++)R[O++]=G,R[O++]=G+1,R[O++]=G+m,R[O++]=G+1+m;if(R[O++]=m-1,R[O++]=0,R[O++]=m+m-1,R[O++]=m,p>0)for(G=0;G<m;G+=h)R[O++]=G,R[O++]=G+m;const V=new u.GeometryAttributes;V.position=new s.GeometryAttribute({componentDatatype:o.ComponentDatatype.DOUBLE,componentsPerAttribute:3,values:_}),b.x=.5*c,b.y=Math.max(l,d);const L=new e.BoundingSphere(i.Cartesian3.ZERO,i.Cartesian2.magnitude(b));if(a.defined(n._offsetAttribute)){c=_.length;const e=new Uint8Array(c/3),i=n._offsetAttribute===t.GeometryOffsetAttribute.NONE?0:1;t.arrayFill(e,i),V.applyOffset=new s.GeometryAttribute({componentDatatype:o.ComponentDatatype.UNSIGNED_BYTE,componentsPerAttribute:1,values:e})}return new s.Geometry({attributes:V,indices:R,primitiveType:s.PrimitiveType.LINES,boundingSphere:L,offsetAttribute:n._offsetAttribute})},function(t,e){return a.defined(e)&&(t=p.unpack(t,e)),p.createGeometry(t)}}));