From 3b534c013dd072d0296ebaac434e8c943ab88c14 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Constantin=20Ri=C3=9F?= Date: Wed, 9 Dec 2009 15:59:14 +0100 Subject: =?UTF-8?q?Beleuchtung=20hinzugef=C3=BCgt?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Triangle.h | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) (limited to 'Triangle.h') 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()); -- cgit v1.2.3