diff options
author | Matthias Schiffer <matthias@gamezock.de> | 2009-12-26 03:19:49 +0100 |
---|---|---|
committer | Matthias Schiffer <matthias@gamezock.de> | 2009-12-26 03:19:49 +0100 |
commit | 5dc3e727e0fc470d344da8b18c3588104585496f (patch) | |
tree | 66f22567f013753b7d72e149ce3a66ddd71cec46 /src/BSPTree.cpp | |
parent | d1c909ca57b1685d8c4303d1ff9018fdb152f889 (diff) | |
download | zoom++-5dc3e727e0fc470d344da8b18c3588104585496f.tar zoom++-5dc3e727e0fc470d344da8b18c3588104585496f.zip |
Added collision detection
Diffstat (limited to 'src/BSPTree.cpp')
-rw-r--r-- | src/BSPTree.cpp | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/src/BSPTree.cpp b/src/BSPTree.cpp index 7b23e79..46079e0 100644 --- a/src/BSPTree.cpp +++ b/src/BSPTree.cpp @@ -27,7 +27,7 @@ void BSPTree::partition(const TriangleRecord &t, std::list<TriangleRecord> *fron if(plane.contains(t.getTriangle().getVertex(i))) { const vmml::vec3f *v[3] = {&t.getTriangle().getVertex(i), &t.getTriangle().getVertex((i+1)%3), &t.getTriangle().getVertex((i+2)%3)}; - vmml::vec3f is = plane.intersection(*v[1], *v[2]-*v[1]); + vmml::vec3f is = plane.intersection(MathUtil::Ray(*v[1], *v[2]-*v[1])); if(plane.isInFront(*v[1])) { front->push_back(TriangleRecord(Triangle(*v[0], *v[1], is, t.getTriangle().getColor()), t.getData())); @@ -47,8 +47,8 @@ void BSPTree::partition(const TriangleRecord &t, std::list<TriangleRecord> *fron if((plane.isInFront(*v[0]) && plane.isBehind(*v[1]) && plane.isBehind(*v[2])) || (plane.isBehind(*v[0]) && plane.isInFront(*v[1]) && plane.isInFront(*v[2]))) { - vmml::vec3f is1 = plane.intersection(*v[0], *v[1]-*v[0]); - vmml::vec3f is2 = plane.intersection(*v[0], *v[2]-*v[0]); + vmml::vec3f is1 = plane.intersection(MathUtil::Ray(*v[0], *v[1]-*v[0])); + vmml::vec3f is2 = plane.intersection(MathUtil::Ray(*v[0], *v[2]-*v[0])); if(plane.isInFront(*v[0])) { front->push_back(TriangleRecord(Triangle(*v[0], is1, is2, t.getTriangle().getColor()), t.getData())); |