//============================================================================= // ConeBuilder: Builds a 3D cone brush, compatible with cylinder of same size. // Copyright 1998-2013 Epic Games, Inc. All Rights Reserved. //============================================================================= class ConeBuilder extends BrushBuilder; var() float Z ; var() float CapZ; var() float OuterRadius ; var() float InnerRadius; var() int Sides ; var() name GroupName; var() bool AlignToSide, Hollow; function BuildCone( int Direction, bool InAlignToSide, int InSides, float InZ, float Radius, name Item ) { local int n,i,Ofs; n = GetVertexCount(); if( InAlignToSide ) { Radius /= cos(pi/InSides); Ofs = 1; } // Vertices. for( i=0; i=OuterRadius) ) return BadParameters(); if( Hollow && CapZ>Z ) return BadParameters(); if( Hollow && (CapZ==Z && InnerRadius==OuterRadius) ) return BadParameters(); BeginBrush( false, GroupName ); BuildCone( +1, AlignToSide, Sides, Z, OuterRadius, 'Top' ); if( Hollow ) { BuildCone( -1, AlignToSide, Sides, CapZ, InnerRadius, 'Cap' ); if( OuterRadius!=InnerRadius ) for( i=0; i