X-Git-Url: http://gitweb.pgornicz.com/gitweb.cgi?p=physics.git;a=blobdiff_plain;f=src%2Fgraphics%2Fgraphics.cpp;h=d89db8ae9980ef4fda901c3d53dace89dd35294d;hp=537cdc88d8ef92b412eeb1fdd47b6a4903ee61fc;hb=4a76d2e2cf7874e54a4e6688ebf1fa8ca59ce8c1;hpb=002fd13cf3966163e9a7b48ae43f4812661e1cc1 diff --git a/src/graphics/graphics.cpp b/src/graphics/graphics.cpp index 537cdc8..d89db8a 100644 --- a/src/graphics/graphics.cpp +++ b/src/graphics/graphics.cpp @@ -34,6 +34,7 @@ using std::endl; /// ***** Private Method Headers ***** void glDrawCircle(int); +void glDrawPolygon( const std::vector& points ); void sdlInit(); void glInit(); @@ -65,6 +66,21 @@ void graphics::drawCircle(float radius, const Vector2& pos, const float* color) glDrawCircle(32); } +void graphics::drawPolygon +( + const std::vector& points, + const float* color +) +{ + glMatrixMode(GL_MODELVIEW); + glLoadIdentity(); + + if(color != NULL) + glColor3fv(color); + + glDrawPolygon(points); +} + /// ***** Private Methods ***** void glDrawCircle(int pieces) @@ -81,6 +97,18 @@ void glDrawCircle(int pieces) glEnd(); } +void glDrawPolygon( const std::vector& points ) +{ + glBegin(GL_POLYGON); + for(unsigned int n = 0; n < points.size(); n++) + { + const Vector2& vec = points.at(n); + + glVertex3f(vec.x, vec.y, 0); + } + glEnd(); +} + void sdlInit() { if(SDL_Init(SDL_INIT_VIDEO) < 0)