removed all ../ entries and made a basic inc path (dependencies are currently broke)
[physics.git] / src / graphics / graphics.cpp
index ab7f08f..537cdc8 100644 (file)
@@ -1,48 +1,73 @@
+/*
+ *  Copyright (C) 2008 Patrik Gornicz, Gornicz_P (at) hotmail (dot) com.
+ *
+ *  This program is free software: you can redistribute it and/or modify
+ *  it under the terms of the GNU General Public License as published by
+ *  the Free Software Foundation, either version 3 of the License, or
+ *  (at your option) any later version.
+ *
+ *  This program is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU General Public License for more details.
+ *
+ *  You should have received a copy of the GNU General Public License
+ *  along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
 #include "graphics.h"
+#include "debug.h"
 
 #include <GL/gl.h>
 #include <GL/glu.h>
 #include <SDL/SDL.h>
 #include <cmath>
 
-#include "../debug.h"
+#include "mathw.h"
+
+#include <iostream>
+using std::cerr;
+using std::cout;
+using std::endl;
 
-static const float PI = 3.1415926535897;
 
 /// ***** Private Method Headers *****
-void drawCircle(int);
+
+void glDrawCircle(int);
 void sdlInit();
 void glInit();
 
-/// ***** Public Methods *****
+/// ***** Initializers/Cleaners *****
 
-void graphicsInit()
+void graphics::init()
 {
     sdlInit();
     glInit();
 }
 
-void graphicsCleanUp()
+void graphics::clean()
 {
 
 }
 
-void glDrawCircle(float radius, const Vector2& vec, const float* color)
+/// ***** Public Methods *****
+
+void graphics::drawCircle(float radius, const Vector2& pos, const float* color)
 {
     glMatrixMode(GL_MODELVIEW);
     glLoadIdentity();
-    glTranslatef(vec.x, vec.y, -1);
+    glTranslatef(pos.x, pos.y, -1);
     glScalef(radius, radius, radius);
 
     if(color != NULL)
         glColor3fv(color);
 
-    drawCircle(32);
+    glDrawCircle(32);
 }
 
 /// ***** Private Methods *****
 
-void drawCircle(int pieces)
+void glDrawCircle(int pieces)
 {
     glBegin(GL_POLYGON);
         for(int n = 0; n < pieces; n++)
@@ -89,4 +114,14 @@ void glInit()
     glLoadIdentity();
 
     glEnable(GL_DEPTH_TEST);
+
+    // anti aliasing?
+    /*
+    glEnable(GL_BLEND);
+    glEnable(GL_POLYGON_SMOOTH_HINT);
+
+    glBlendFunc(GL_SRC_ALPHA_SATURATE, GL_ONE);
+
+    glHint(GL_POLYGON_SMOOTH_HINT, GL_DONT_CARE);
+    */
 }