Core.Object | +--Editor.BrushBuilder | +--Editor.SheetBuilder
enum
ESheetAxis
name
GroupName
HorizBreaks,
VertBreaks
00001 //============================================================================= 00002 // SheetBuilder: Builds a simple sheet. 00003 //============================================================================= 00004 class SheetBuilder 00005 extends BrushBuilder; 00006 00007 var() int Height, Width, HorizBreaks, VertBreaks; 00008 var() enum ESheetAxis 00009 { 00010 AX_Horizontal, 00011 AX_XAxis, 00012 AX_YAxis, 00013 } Axis; 00014 var() name GroupName; 00015 00016 event bool Build() 00017 { 00018 local int x, y, XStep, YStep, idx, count; 00019 00020 if( Height<=0 || Width<=0 || HorizBreaks<=0 || VertBreaks<=0 ) 00021 return BadParameters(); 00022 00023 BeginBrush( false, GroupName ); 00024 XStep = Width/HorizBreaks; 00025 YStep = Height/VertBreaks; 00026 00027 count = 0; 00028 for( x = 0 ; x < HorizBreaks ; x++ ) 00029 { 00030 for( y = 0 ; y < VertBreaks ; y++ ) 00031 { 00032 if( Axis==AX_Horizontal ) 00033 { 00034 Vertex3f( (x*XStep)-Width/2, (y*YStep)-Height/2, 0 ); 00035 Vertex3f( (x*XStep)-Width/2, ((y+1)*YStep)-Height/2, 0 ); 00036 Vertex3f( ((x+1)*XStep)-Width/2, ((y+1)*YStep)-Height/2, 0 ); 00037 Vertex3f( ((x+1)*XStep)-Width/2, (y*YStep)-Height/2, 0 ); 00038 } 00039 else if( Axis==AX_XAxis ) 00040 { 00041 Vertex3f( 0, (x*XStep)-Width/2, (y*YStep)-Height/2 ); 00042 Vertex3f( 0, (x*XStep)-Width/2, ((y+1)*YStep)-Height/2 ); 00043 Vertex3f( 0, ((x+1)*XStep)-Width/2, ((y+1)*YStep)-Height/2 ); 00044 Vertex3f( 0, ((x+1)*XStep)-Width/2, (y*YStep)-Height/2 ); 00045 } 00046 else 00047 { 00048 Vertex3f( (x*XStep)-Width/2, 0, (y*YStep)-Height/2 ); 00049 Vertex3f( (x*XStep)-Width/2, 0, ((y+1)*YStep)-Height/2 ); 00050 Vertex3f( ((x+1)*XStep)-Width/2, 0, ((y+1)*YStep)-Height/2 ); 00051 Vertex3f( ((x+1)*XStep)-Width/2, 0, (y*YStep)-Height/2 ); 00052 } 00053 00054 Poly4i(+1,count,count+1,count+2,count+3,'Sheet',0x00000108); // PF_TwoSided|PF_NotSolid. 00055 count = GetVertexCount(); 00056 } 00057 } 00058 00059 return EndBrush(); 00060 } 00061 00062 defaultproperties 00063 { 00064 Height=256 00065 width=256 00066 HorizBreaks=1 00067 VertBreaks=1 00068 GroupName="Sheet" 00069 BitmapFilename="BBSheet" 00070 ToolTip="Sheet" 00071 }