]> git.tdb.fi Git - libs/math.git/blobdiff - source/geometry/intersection.h
Optimize bounding box bisection with more early culling
[libs/math.git] / source / geometry / intersection.h
index 7d21f75f81c081e87aeb783710a56aab7fe6207e..24e668dc35a1924a70e1c3815fecbeac8147595e 100644 (file)
@@ -10,11 +10,8 @@ template<typename T, unsigned D>
 struct IntersectionOps
 {
        static BoundingBox<T, D> combine_aabb(const BoundingBox<T, D> &a, const BoundingBox<T, D> &b) { return a&b; }
-       static bool init_inside() { return true; }
-       static bool combine_inside(bool a, bool b) { return a && b; }
-       static bool is_inside_decided(bool a) { return !a; }
-       static bool init_surface() { return true; }
-       static bool combine_surface(bool a, bool b) { return a && b; }
+       static Coverage combine_coverage(Coverage a, Coverage b) { return ((a==PARTIAL_COVERAGE && b==a) ? UNCERTAIN_COVERAGE : std::min(a, b)); }
+       static bool shortcircuit(bool c) { return !c; }
 };
 
 /**