diff options
author | Matthias Schiffer <matthias@gamezock.de> | 2009-12-24 12:14:51 +0100 |
---|---|---|
committer | Matthias Schiffer <matthias@gamezock.de> | 2009-12-24 12:14:51 +0100 |
commit | 577cd77e2be089a1bf2284e33e9b07fc36a4320b (patch) | |
tree | 2f15ea093a0d7936b1d07b5393729da0afc224f9 /src/ShadowVolume.cpp | |
parent | 0f6fb2617e5234480994f954125f5c45d6d29e0b (diff) | |
download | zoom++-577cd77e2be089a1bf2284e33e9b07fc36a4320b.tar zoom++-577cd77e2be089a1bf2284e33e9b07fc36a4320b.zip |
Some optimizations
Diffstat (limited to 'src/ShadowVolume.cpp')
-rw-r--r-- | src/ShadowVolume.cpp | 28 |
1 files changed, 1 insertions, 27 deletions
diff --git a/src/ShadowVolume.cpp b/src/ShadowVolume.cpp index 67a44db..27aba6e 100644 --- a/src/ShadowVolume.cpp +++ b/src/ShadowVolume.cpp @@ -31,7 +31,7 @@ ShadowVolume::ShadowVolume(const Triangle &t, const vmml::vec3f &lightPos) : vis rays[i].p = t.getVertex(i); } - if(trianglePlane.isInFront(lightPos)) { + if(!trianglePlane.isBehind(lightPos)) { visible = false; return; @@ -42,30 +42,4 @@ ShadowVolume::ShadowVolume(const Triangle &t, const vmml::vec3f &lightPos) : vis } } -void ShadowVolume::render() const { - if(!visible) - return; - - glVertex3fv(rays[0].p.array); - glVertex3fv(rays[1].p.array); - glVertex3fv(rays[2].p.array); - - for(int i = 0; i < 3; ++i) { - const Ray &r1 = rays[i]; - const Ray &r2 = rays[(i+1)%3]; - - glVertex3fv(r1.p.array); - glVertex4fv(vmml::vec4f(r1.dir, 0).array); - glVertex3fv(r2.p.array); - - glVertex3fv(r2.p.array); - glVertex4fv(vmml::vec4f(r1.dir, 0).array); - glVertex4fv(vmml::vec4f(r2.dir, 0).array); - } - - glVertex4fv(vmml::vec4f(rays[2].dir, 0).array); - glVertex4fv(vmml::vec4f(rays[1].dir, 0).array); - glVertex4fv(vmml::vec4f(rays[0].dir, 0).array); -} - } |