home *** CD-ROM | disk | FTP | other *** search
/ Game Level Design / GLDesign.bin / Software / UnrealEngine2Runtime / UE2Runtime-22262001_Demo.exe / Editor / Classes / VolumetricBuilder.uc < prev   
Text File  |  2003-10-22  |  2KB  |  60 lines

  1. //=============================================================================
  2. // VolumetricBuilder: Builds a volumetric brush (criss-crossed sheets).
  3. //=============================================================================
  4. class VolumetricBuilder
  5.     extends BrushBuilder;
  6.  
  7. var() float Height, Radius;
  8. var() int NumSheets;
  9. var() name GroupName;
  10.  
  11. function BuildVolumetric( int Direction, int NumSheets, float Height, float Radius )
  12. {
  13.     local int n,x,y;
  14.     local rotator RotStep;
  15.     local vector vtx, NewVtx;
  16.  
  17.     n = GetVertexCount();
  18.     RotStep.Yaw = 65536.0f / (NumSheets * 2);
  19.  
  20.     // Vertices.
  21.     vtx.x = Radius;
  22.     vtx.z = Height / 2;
  23.     for( x = 0 ; x < (NumSheets * 2) ; x++ )
  24.     {
  25.         NewVtx = vtx >> (RotStep * x);
  26.         Vertex3f( NewVtx.x, NewVtx.y, NewVtx.z );
  27.         Vertex3f( NewVtx.x, NewVtx.y, NewVtx.z - Height );
  28.     }
  29.  
  30.     // Polys.
  31.     for( x = 0 ; x < NumSheets ; x++ )
  32.     {
  33.         y = (x*2) + 1;
  34.         if( y >= (NumSheets * 2) ) y -= (NumSheets * 2);
  35.         Poly4i( Direction, n+(x*2), n+y, n+y+(NumSheets*2), n+(x*2)+(NumSheets*2), 'Sheets', 0x00000108); // PF_TwoSided|PF_NotSolid.
  36.     }
  37. }
  38.  
  39. function bool Build()
  40. {
  41.     if( NumSheets<2 )
  42.         return BadParameters();
  43.     if( Height<=0 || Radius<=0 )
  44.         return BadParameters();
  45.  
  46.     BeginBrush( true, GroupName );
  47.     BuildVolumetric( +1, NumSheets, Height, Radius );
  48.     return EndBrush();
  49. }
  50.  
  51. defaultproperties
  52. {
  53.     Height=128
  54.     Radius=64
  55.     NumSheets=2
  56.     GroupName=Volumetric
  57.     BitmapFilename="BBVolumetric"
  58.     ToolTip="Volumetric (Torches, Chains, etc)"
  59. }
  60.