//============================================================================= // CylinderBuilder: Builds a 3D cylinder brush. //============================================================================= class CylinderBuilder extends BrushBuilder; var() float Height, OuterRadius, InnerRadius; var() int Sides; var() name GroupName; var() bool AlignToSide, Hollow; function BuildCylinder( int Direction, bool AlignToSide, int Sides, float Height, float Radius ) { local int n,i,j,Ofs; n = GetVertexCount(); if( AlignToSide ) { Radius /= cos(pi/Sides); Ofs = 1; } // Vertices. for( i=0; i=OuterRadius) ) return BadParameters(); BeginBrush( false, GroupName ); BuildCylinder( +1, AlignToSide, Sides, Height, OuterRadius ); if( Hollow ) { BuildCylinder( -1, AlignToSide, Sides, Height, InnerRadius ); for( j=-1; j<2; j+=2 ) for( i=0; i