]> Dogcows Code - chaz/yoink/blobdiff - src/Moof/Aabb.hh
initial working frustum culling implementation
[chaz/yoink] / src / Moof / Aabb.hh
index f51531a49d49db13e1fd3f87b77510c59ed747c4..457d198495e9a358fd40e304b3236730e501af57 100644 (file)
@@ -32,6 +32,7 @@
 #include <Moof/Cullable.hh>
 #include <Moof/Drawable.hh>
 #include <Moof/Math.hh>
+#include <Moof/Plane.hh>
 
 
 namespace Mf {
@@ -104,6 +105,36 @@ struct Aabb : public Cullable, public Drawable
                                           (min[2] + max[2]) / 2.0);
        }
 
+       void getOctant(Aabb& octant, int num) const;
+
+       inline Plane getPlaneXY() const
+       {
+               Plane plane;
+               plane.normal = Vector3(0.0, 0.0, 1.0);
+               plane.d = cml::dot(-plane.normal, getCenter());
+               return plane;
+       }
+
+       inline Plane getPlaneXZ() const
+       {
+               Plane plane;
+               plane.normal = Vector3(0.0, 1.0, 0.0);
+               plane.d = cml::dot(-plane.normal, getCenter());
+               return plane;
+       }
+
+       inline Plane getPlaneYZ() const
+       {
+               Plane plane;
+               plane.normal = Vector3(1.0, 0.0, 0.0);
+               plane.d = cml::dot(-plane.normal, getCenter());
+               return plane;
+       }
+
+       void getCorners(Vector3 corners[8]) const;
+
+       void encloseVertices(const Vector3 vertices[], unsigned count);
+
        void draw(Scalar alpha = 0.0) const;
        bool isVisible(const Camera& cam) const;
 };
This page took 0.021564 seconds and 4 git commands to generate.