define(["exports","./Transforms-713aa3a8","./Matrix2-163b5a1d","./Matrix3-b6f074fa","./ComponentDatatype-77274976","./CylinderGeometryLibrary-20be4f8b","./defaultValue-0a909f67","./GeometryAttribute-0b8b7b82","./GeometryAttributes-f06a2792","./GeometryOffsetAttribute-04332ce7","./IndexDatatype-2149f06c","./Math-e97915da","./VertexFormat-ab2e00e6"],(function(t,e,a,n,o,r,i,s,u,m,l,c,f){"use strict";const p=new a.Cartesian2,d=new n.Cartesian3,y=new n.Cartesian3,b=new n.Cartesian3,A=new n.Cartesian3;function x(t){const e=(t=i.defaultValue(t,i.defaultValue.EMPTY_OBJECT)).length,a=t.topRadius,n=t.bottomRadius,o=i.defaultValue(t.vertexFormat,f.VertexFormat.DEFAULT),r=i.defaultValue(t.slices,128);this._length=e,this._topRadius=a,this._bottomRadius=n,this._vertexFormat=f.VertexFormat.clone(o),this._slices=r,this._offsetAttribute=t.offsetAttribute,this._workerName="createCylinderGeometry"}x.packedLength=f.VertexFormat.packedLength+5,x.pack=function(t,e,a){return a=i.defaultValue(a,0),f.VertexFormat.pack(t._vertexFormat,e,a),a+=f.VertexFormat.packedLength,e[a++]=t._length,e[a++]=t._topRadius,e[a++]=t._bottomRadius,e[a++]=t._slices,e[a]=i.defaultValue(t._offsetAttribute,-1),e};const g=new f.VertexFormat,_={vertexFormat:g,length:void 0,topRadius:void 0,bottomRadius:void 0,slices:void 0,offsetAttribute:void 0};let h;x.unpack=function(t,e,a){e=i.defaultValue(e,0);const n=f.VertexFormat.unpack(t,e,g);e+=f.VertexFormat.packedLength;const o=t[e++],r=t[e++],s=t[e++],u=t[e++],m=t[e];return i.defined(a)?(a._vertexFormat=f.VertexFormat.clone(n,a._vertexFormat),a._length=o,a._topRadius=r,a._bottomRadius=s,a._slices=u,a._offsetAttribute=-1===m?void 0:m,a):(_.length=o,_.topRadius=r,_.bottomRadius=s,_.slices=u,_.offsetAttribute=-1===m?void 0:m,new x(_))},x.createGeometry=function(t){let f=t._length;const x=t._topRadius,g=t._bottomRadius,_=t._vertexFormat,h=t._slices;if(f<=0||x<0||g<0||0===x&&0===g)return;const F=h+h,v=h+F,C=F+F,w=r.CylinderGeometryLibrary.computePositions(f,x,g,h,!0),G=_.st?new Float32Array(2*C):void 0,V=_.normal?new Float32Array(3*C):void 0,D=_.tangent?new Float32Array(3*C):void 0,R=_.bitangent?new Float32Array(3*C):void 0;let T;const O=_.normal||_.tangent||_.bitangent;if(O){const t=_.tangent||_.bitangent;let e=0,a=0,o=0;const r=Math.atan2(g-x,f),i=d;i.z=Math.sin(r);const s=Math.cos(r);let u=b,m=y;for(T=0;T