diff options
author | Matthias Schiffer <matthias@gamezock.de> | 2009-12-10 00:32:11 +0100 |
---|---|---|
committer | Matthias Schiffer <matthias@gamezock.de> | 2009-12-10 00:32:11 +0100 |
commit | 59b00645ccfbade509b1d1694c9fcfc68e013a10 (patch) | |
tree | 5df4d3b47810d2d95589f9e7c58653349578f195 /Triangle.h | |
parent | 4731d3f4cf576d791db21ac1932fd91f9b43ff3a (diff) | |
download | c3d-59b00645ccfbade509b1d1694c9fcfc68e013a10.tar c3d-59b00645ccfbade509b1d1694c9fcfc68e013a10.zip |
Zu vmmlib migriert
Diffstat (limited to 'Triangle.h')
-rw-r--r-- | Triangle.h | 42 |
1 files changed, 15 insertions, 27 deletions
@@ -2,64 +2,52 @@ #define _TRIANGLE_H_ #include "gl.h" -#include "Color.h" -#include "Vector.h" -#include "Vertex.h" -#include "Matrix.h" +#include <vmmlib/vector.hpp> +#include <vmmlib/matrix.hpp> class Triangle { public: - Triangle(const Vertex &v1, const Vertex &v2, const Vertex &v3, const Color &c0) : c(c0) + Triangle(const vmml::vec3f &v1, const vmml::vec3f &v2, const vmml::vec3f &v3, const vmml::vec4f &c0) : c(c0) { v[0] = v1; v[1] = v2; v[2] = v3; } - const Vertex& getVertex(int i) const {return v[i];} - const Color& getColor() const {return c;} + const vmml::vec3f& getVertex(int i) const {return v[i];} + const vmml::vec4f& getColor() const {return c;} - Vector getNormal() const { - Vector v1 = v[0]-v[2]; - Vector v2 = v[0]-v[1]; - - return v1.cross(v2).normalize(); + vmml::vec3f getNormal() const { + return v[0].compute_normal(v[1], v[2]); } void render() const { - //glColor4f(c.getR(), c.getG(), c.getB(), c.getA()); - float color[] = {c.getR(), c.getG(), c.getB(), c.getA()}; - glMaterialfv(GL_FRONT_AND_BACK, GL_DIFFUSE, color); - - for(int i = 0; i < 3; ++i) { - color[i] /= 2; - } - glMaterialfv(GL_FRONT_AND_BACK, GL_AMBIENT, color); + glMaterialfv(GL_FRONT_AND_BACK, GL_DIFFUSE, c.array); + glMaterialfv(GL_FRONT_AND_BACK, GL_AMBIENT, (c/2).array); - Vector normal = getNormal(); - glNormal3f(normal.getX(), normal.getY(), normal.getZ()); + glNormal3fv(getNormal().array); for(int i = 0; i < 3; ++i) { - glVertex3f(v[i].getX(), v[i].getY(), v[i].getZ()); + glVertex3fv(v[i].array); } } - void transform(const Matrix &m) { + void transform(const vmml::mat4f &m) { for(int i = 0; i < 3; ++i) { v[i] = m*v[i]; } } - Vertex getCenter() const { + vmml::vec3f getCenter() const { return (v[0]+v[1]+v[2])/3; } private: - Vertex v[3]; - Color c; + vmml::vec3f v[3]; + vmml::vec4f c; }; #endif /*_TRIANGLE_H_*/ |