summaryrefslogtreecommitdiffstats
path: root/Triangle.h
diff options
context:
space:
mode:
authorConstantin Riß <constantin.riss@dre.de>2009-12-09 15:59:14 +0100
committerConstantin Riß <constantin.riss@dre.de>2009-12-09 15:59:14 +0100
commit3b534c013dd072d0296ebaac434e8c943ab88c14 (patch)
tree13e3d7315ccc816a2b9d07a58e98655618177b03 /Triangle.h
parent482852aceacb54879c08e6fffc909a2cc160d483 (diff)
downloadc3d-3b534c013dd072d0296ebaac434e8c943ab88c14.tar
c3d-3b534c013dd072d0296ebaac434e8c943ab88c14.zip
Beleuchtung hinzugefügt
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 807b5b9..3ce5845 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());