diff options
author | Matthias Schiffer <matthias@gamezock.de> | 2009-12-09 16:28:58 +0100 |
---|---|---|
committer | Matthias Schiffer <matthias@gamezock.de> | 2009-12-09 16:28:58 +0100 |
commit | 8705ce3d468c3cd22159bc0fedf727e8250861ca (patch) | |
tree | f94debc4b7f52badac6052f016e9ab2f9232b095 /Triangle.h | |
parent | 3035d4c9e76d6f28579d0b5a024e1c1b2a538919 (diff) | |
parent | 3b534c013dd072d0296ebaac434e8c943ab88c14 (diff) | |
download | c3d-8705ce3d468c3cd22159bc0fedf727e8250861ca.tar c3d-8705ce3d468c3cd22159bc0fedf727e8250861ca.zip |
Merge branch 'master' of git://git.gamezock.de/c3d
Conflicts:
DisplayClass.cpp
Diffstat (limited to 'Triangle.h')
-rw-r--r-- | Triangle.h | 19 |
1 files changed, 18 insertions, 1 deletions
@@ -20,9 +20,26 @@ class Triangle const Vertex& getVertex(int i) const {return v[i];} const Color& getColor() const {return c;} + Vertex getNormal() const { + Vector v1 = v[0]-v[2]; + Vector v2 = v[0]-v[1]; + + return v1.cross(v2).normalize(); + } + void render() const { - glColor4f(c.getR(), c.getG(), c.getB(), c.getA()); + //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); + Vector normal = getNormal(); + glNormal3f(normal.getX(), normal.getY(), normal.getZ()); + for(int i = 0; i < 3; ++i) { glVertex3f(v[i].getX(), v[i].getY(), v[i].getZ()); |