1 #include "Grid.h"
2 
3 #include "SyntopiaCore/Math/Vector3.h"
4 
5 using namespace SyntopiaCore::Math;
6 
7 namespace SyntopiaCore {
8 	namespace GLEngine {
9 
Grid(SyntopiaCore::Math::Vector3f base,SyntopiaCore::Math::Vector3f dir1,SyntopiaCore::Math::Vector3f dir2,SyntopiaCore::Math::Vector3f dir3)10 		Grid::Grid(SyntopiaCore::Math::Vector3f base,
11 				SyntopiaCore::Math::Vector3f dir1 ,
12 				 SyntopiaCore::Math::Vector3f dir2,
13 				 SyntopiaCore::Math::Vector3f dir3) : base(base), v1(dir1), v2(dir2), v3(dir3)
14 		{
15 			/// Bounding box
16 			from = base;
17 			to = base + dir1 + dir2 + dir3;
18 		};
19 
20 
~Grid()21 		Grid::~Grid() { };
22 
draw() const23 		void Grid::draw() const {
24 			glPushMatrix();
25 			glTranslatef( base.x(), base.y(), base.z() );
26 			glLineWidth( 1.0 );
27 
28 			glDisable (GL_LIGHTING);
29 			glColor4fv( primaryColor );
30 
31 			glBegin( GL_LINE_LOOP  );
32 			Vector3f O(0,0,0);
33 			vertex(O);
34 			vertex(v2);
35 			vertex(v2+v1);
36 			vertex(v1);
37 			glEnd();
38 
39 			glBegin( GL_LINE_LOOP  );
40 			vertex(v3);
41 			vertex(v2+v3);
42 			vertex(v2+v1+v3);
43 			vertex(v1+v3);
44 			glEnd();
45 
46 			glBegin( GL_LINES  );
47 			vertex( v3 );   vertex( O );
48 			vertex( v2 );   vertex( v2+v3 );
49 			vertex( v1+v2 );   vertex( v1+v2+v3 );
50 			vertex( v1 );   vertex( v1+v3 );
51 			glEnd();
52 
53 			glEnable (GL_LIGHTING);
54 
55 			glPopMatrix();
56 		};
57 
58 	}
59 }
60 
61