summaryrefslogtreecommitdiffstats
path: root/Triangle.h
diff options
context:
space:
mode:
authorMatthias Schiffer <matthias@gamezock.de>2009-12-09 16:28:58 +0100
committerMatthias Schiffer <matthias@gamezock.de>2009-12-09 16:28:58 +0100
commit8705ce3d468c3cd22159bc0fedf727e8250861ca (patch)
treef94debc4b7f52badac6052f016e9ab2f9232b095 /Triangle.h
parent3035d4c9e76d6f28579d0b5a024e1c1b2a538919 (diff)
parent3b534c013dd072d0296ebaac434e8c943ab88c14 (diff)
downloadc3d-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.h19
1 files changed, 18 insertions, 1 deletions
diff --git a/Triangle.h b/Triangle.h
index ab51051..ddb9d97 100644
--- a/Triangle.h
+++ b/Triangle.h
@@ -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());