*******************************************************************************/
-#include <Moof/Aabb.hh>
-#include <Moof/Camera.hh>
+#include "Aabb.hh"
+#include "Frustum.hh"
+#include "OpenGL.hh"
+#include "Texture.hh"
namespace Mf {
-void Aabb::draw(Scalar alpha) const
+ /*
+void Aabb::getOctant(Aabb& octant, int num) const
{
- Scalar vertices[] = {min[0], min[1], min[2],
- min[0], max[1], min[2],
- max[0], max[1], min[2],
- max[0], min[1], min[2],
- min[0], max[1], max[2],
- min[0], min[1], max[2],
- max[0], min[1], max[2],
- max[0], max[1], max[2]};
-
- GLubyte indices[] = {0, 1, 2, 3,
- 1, 2, 7, 4,
- 3, 0, 5, 6,
- 2, 3, 6, 7,
- 5, 0, 1, 4,
- 4, 5, 6, 7};
-
- glEnableClientState(GL_VERTEX_ARRAY);
- glVertexPointer(3, GL_SCALAR, 0, vertices);
-
- glDrawElements(GL_QUADS, sizeof(indices), GL_UNSIGNED_BYTE, indices);
+ Vector3 mid = getCenter();
+
+ switch (num)
+ {
+ case 0:
+ 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]));
+ break;
+ }
}
+*/
+
-bool Aabb::isVisible(const Camera& cam) const
-{
- return cam.getFrustum().checkAabb(*this);
-}
} // namespace Mf