changed src so the libpg headers are now used
[physics.git] / src / graphics / graphics.cpp
index d5148c1..55e2337 100644 (file)
  */
 
 #include "graphics.h"
-#include "../debug.h"
+
+#include <pg/debug.h>
+#include <pg/mathw.h>
 
 #include <GL/gl.h>
 #include <GL/glu.h>
 #include <SDL/SDL.h>
 #include <cmath>
 
-#include "../mathw.h"
+#include <iostream>
+using std::cerr;
+using std::cout;
+using std::endl;
 
 
 /// ***** Private Method Headers *****
 
 void glDrawCircle(int);
+void glDrawPolygon( const std::vector<Vector2>& points );
 void sdlInit();
 void glInit();
 
@@ -51,7 +57,7 @@ void graphics::drawCircle(float radius, const Vector2& pos, const float* color)
 {
     glMatrixMode(GL_MODELVIEW);
     glLoadIdentity();
-    glTranslatef(pos.x, pos.y, -1);
+    glTranslatef(pos.m_fX, pos.m_fY, -1);
     glScalef(radius, radius, radius);
 
     if(color != NULL)
@@ -60,6 +66,21 @@ void graphics::drawCircle(float radius, const Vector2& pos, const float* color)
     glDrawCircle(32);
 }
 
+void graphics::drawPolygon
+(
+  const std::vector<Vector2>& points,
+  const float* color
+)
+{
+    glMatrixMode(GL_MODELVIEW);
+    glLoadIdentity();
+
+    if(color != NULL)
+        glColor3fv(color);
+
+    glDrawPolygon(points);
+}
+
 /// ***** Private Methods *****
 
 void glDrawCircle(int pieces)
@@ -76,6 +97,18 @@ void glDrawCircle(int pieces)
     glEnd();
 }
 
+void glDrawPolygon( const std::vector<Vector2>& points )
+{
+    glBegin(GL_POLYGON);
+        for(unsigned int n = 0; n < points.size(); n++)
+        {
+            const Vector2& vec = points.at(n);
+
+            glVertex3f(vec.m_fX, vec.m_fY, 0);
+        }
+    glEnd();
+}
+
 void sdlInit()
 {
     if(SDL_Init(SDL_INIT_VIDEO) < 0)