00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025 #include "Teddy/Models/Grid.h"
00026 #include "Teddy/Models/Vertex.h"
00027 #include "Teddy/Models/Line.h"
00028 #include "Teddy/Models/LineGeometry.h"
00029
00030
00031 namespace Teddy {
00032 namespace Models {
00033
00034
00039 Grid::Grid( const int xCount, const int zCount, const float xSize, const float zSize )
00040 :
00041 Model( "Grid" )
00042 {
00043 Vertex *v1;
00044 Vertex *v2;
00045 Line *l;
00046
00047 setGeometry( new LineGeometry() );
00048
00049
00050 fore = zCount/2*zSize;
00051 back = -zCount/2*zSize;
00052 right = xCount/2*xSize;
00053 left = -xCount/2*xSize;
00054
00055 float r1 = xCount/2*xSize;
00056 float r2 = zCount/2*zSize;
00057 float r = sqrt(r1*r1 + r2*r2);
00058
00059 setClipRadius( r );
00060
00061
00062 for( int x=-xCount/2; x<=xCount/2; x++ ){
00063 v1 = new Vertex( x*xSize, 0, fore );
00064 v2 = new Vertex( x*xSize, 0, back );
00065 l = new Line( v1, v2 );
00066 add( l );
00067 }
00068
00069
00070 for( int z=-zCount/2; z<=zCount/2; z++ ){
00071 v1 = new Vertex( left, 0, z*zSize );
00072 v2 = new Vertex( right, 0, z*zSize );
00073 l = new Line( v1, v2 );
00074 add( l );
00075 }
00076 }
00077
00078
00079 };
00080 };
00081