X-Git-Url: https://git.dogcows.com/gitweb?p=chaz%2Fyoink;a=blobdiff_plain;f=src%2FMoof%2FAabb.cc;h=17ce66312e4888a6a51dfed6e6654e0319aa00a7;hp=842d9d8a51b3fbfec7b8d1bd9f62ecf950bb1ea8;hb=c9e20ac06383b20ceb5404c9237e319c2e90d157;hpb=fe9614821670d9affcb68fb3e45723b9d40d0b7e diff --git a/src/Moof/Aabb.cc b/src/Moof/Aabb.cc index 842d9d8..17ce663 100644 --- a/src/Moof/Aabb.cc +++ b/src/Moof/Aabb.cc @@ -27,7 +27,7 @@ *******************************************************************************/ #include "Aabb.hh" -#include "Camera.hh" +#include "Frustum.hh" #include "OpenGL.hh" #include "Texture.hh" @@ -45,28 +45,35 @@ void Aabb::getOctant(Aabb& octant, int num) const octant.init(Vector3(min[0], min[1], mid[2]), Vector3(mid[0], mid[1], max[2])); break; + case 1: octant.init(Vector3(mid[0], min[1], mid[2]), Vector3(max[0], mid[1], max[2])); break; + case 2: octant.init(mid, max); break; + case 3: octant.init(Vector3(min[0], mid[1], mid[2]), Vector3(mid[0], max[1], max[2])); break; + case 4: octant.init(min, mid); break; + case 5: octant.init(Vector3(mid[0], min[1], min[2]), Vector3(max[0], mid[1], mid[2])); break; + case 6: octant.init(Vector3(mid[0], mid[1], min[2]), Vector3(max[0], max[1], mid[2])); break; + case 7: octant.init(Vector3(min[0], mid[1], min[2]), Vector3(mid[0], max[1], mid[2])); @@ -138,9 +145,9 @@ void Aabb::draw(Scalar alpha) const glPolygonMode(GL_FRONT_AND_BACK, GL_FILL); } -bool Aabb::isVisible(const Camera& cam) const +bool Aabb::isVisible(const Frustum& frustum) const { - return cam.getFrustum().contains(*this); + return frustum.contains(*this); }