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