home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Game Level Design
/
GLDesign.bin
/
Software
/
UnrealEngine2Runtime
/
UE2Runtime-22262001_Demo.exe
/
Editor
/
Classes
/
CubeBuilder.uc
< prev
next >
Wrap
Text File
|
2003-10-22
|
2KB
|
78 lines
//=============================================================================
// CubeBuilder: Builds a 3D cube brush.
//=============================================================================
class CubeBuilder
extends BrushBuilder;
var() float Height, Width, Breadth;
var() float WallThickness;
var() name GroupName;
var() bool Hollow;
var() bool Tessellated;
function BuildCube( int Direction, float dx, float dy, float dz, bool _tessellated )
{
local int n,i,j,k;
n = GetVertexCount();
for( i=-1; i<2; i+=2 )
for( j=-1; j<2; j+=2 )
for( k=-1; k<2; k+=2 )
Vertex3f( i*dx/2, j*dy/2, k*dz/2 );
// If the user wants a Tessellated cube, create the sides out of tris instead of quads.
if( _tessellated )
{
Poly3i(Direction,n+0,n+1,n+3);
Poly3i(Direction,n+0,n+3,n+2);
Poly3i(Direction,n+2,n+3,n+7);
Poly3i(Direction,n+2,n+7,n+6);
Poly3i(Direction,n+6,n+7,n+5);
Poly3i(Direction,n+6,n+5,n+4);
Poly3i(Direction,n+4,n+5,n+1);
Poly3i(Direction,n+4,n+1,n+0);
Poly3i(Direction,n+3,n+1,n+5);
Poly3i(Direction,n+3,n+5,n+7);
Poly3i(Direction,n+0,n+2,n+6);
Poly3i(Direction,n+0,n+6,n+4);
}
else
{
Poly4i(Direction,n+0,n+1,n+3,n+2);
Poly4i(Direction,n+2,n+3,n+7,n+6);
Poly4i(Direction,n+6,n+7,n+5,n+4);
Poly4i(Direction,n+4,n+5,n+1,n+0);
Poly4i(Direction,n+3,n+1,n+5,n+7);
Poly4i(Direction,n+0,n+2,n+6,n+4);
}
}
event bool Build()
{
if( Height<=0 || Width<=0 || Breadth<=0 )
return BadParameters();
if( Hollow && (Height<=WallThickness || Width<=WallThickness || Breadth<=WallThickness) )
return BadParameters();
if( Hollow && Tessellated )
return BadParameters("The 'Tessellated' option can't be specified with the 'Hollow' option.");
BeginBrush( false, GroupName );
BuildCube( +1, Breadth, Width, Height, Tessellated );
if( Hollow )
BuildCube( -1, Breadth-WallThickness, Width-WallThickness, Height-WallThickness, Tessellated );
return EndBrush();
}
defaultproperties
{
Height=256
Width=256
Breadth=256
WallThickness=16
GroupName=Cube
Hollow=false
Tessellated=false
BitmapFilename="BBCube"
ToolTip="Cube"
}