diff options
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); -} - } |