From 59b00645ccfbade509b1d1694c9fcfc68e013a10 Mon Sep 17 00:00:00 2001 From: Matthias Schiffer Date: Thu, 10 Dec 2009 00:32:11 +0100 Subject: Zu vmmlib migriert --- BSPTree.h | 21 +++++++++++---------- 1 file changed, 11 insertions(+), 10 deletions(-) (limited to 'BSPTree.h') diff --git a/BSPTree.h b/BSPTree.h index 78ec81f..4965318 100644 --- a/BSPTree.h +++ b/BSPTree.h @@ -4,24 +4,25 @@ #include "Triangle.h" #include #include +#include class BSPTree { private: class Plane { public: Plane() : d(0) {} - Plane(const Vector &n, float d0) : normal(n), d(d0) {} + Plane(const vmml::vec3f &n, float d0) : normal(n), d(d0) {} Plane(const Triangle &t) : normal(t.getNormal()), d(t.getVertex(0).dot(normal)) {} - bool contains(const Vertex &v) { + bool contains(const vmml::vec3f &v) { return (fabsf(normal.dot(v) - d) < 1E-6); } - bool isBehind(const Vertex &v) { + bool isBehind(const vmml::vec3f &v) { return (normal.dot(v) - d) < 0; } - bool isInFront(const Vertex &v) { + bool isInFront(const vmml::vec3f &v) { return (normal.dot(v) - d) > 0; } @@ -54,12 +55,12 @@ class BSPTree { } - const Vector& getNormal() { + const vmml::vec3f& getNormal() { return normal; } private: - Vector normal; + vmml::vec3f normal; float d; }; @@ -74,7 +75,7 @@ class BSPTree { } template - void visit(const T& visitor, const Vector &v) { + void visit(const T& visitor, const vmml::vec3f &v) { if(plane.getNormal().dot(v) > 0) { if(frontTree) frontTree->visit(visitor, v); @@ -100,7 +101,7 @@ class BSPTree { } template - void visit(T& visitor, const Vector &v) { + void visit(T& visitor, const vmml::vec3f &v) { if(plane.getNormal().dot(v) > 0) { if(frontTree) frontTree->visit(visitor, v); @@ -130,8 +131,8 @@ class BSPTree { std::list triangles; BSPTree *frontTree, *backTree; - static Vertex findCenter(const std::list &triangles); - static const Triangle* findNearestTriangle(const std::list &triangles, const Vertex &v); + static vmml::vec3f findCenter(const std::list &triangles); + static const Triangle* findNearestTriangle(const std::list &triangles, const vmml::vec3f &v); }; #endif /* _BSPTREE_H_ */ -- cgit v1.2.3