#include #include #include #include #include #include #include typedef CGAL::Simple_cartesian K; typedef K::FT FT; typedef K::Point_3 Point; typedef K::Plane_3 Plane; typedef K::Segment_3 Segment; typedef K::Triangle_3 Triangle; typedef std::vector::iterator Iterator; typedef CGAL::AABB_segment_primitive Primitive; typedef CGAL::AABB_traits Traits; typedef CGAL::AABB_tree Tree; int main() { Point a(1.0, 0.0, 0.0); Point b(0.0, 1.0, 0.0); Point c(0.0, 0.0, 1.0); Point d(0.0, 0.0, 0.0); Tree tree; Plane plane_query(a,b,d); Triangle triangle_query(a,b,c); // Test calls to all functions but those who have `!empty()` as // precondition. CGAL::Emptyset_iterator devnull; tree.accelerate_distance_queries(); tree.all_intersections(triangle_query, devnull); tree.all_intersected_primitives(triangle_query, devnull); assert(!tree.any_intersected_primitive(triangle_query)); assert(!tree.any_intersection(triangle_query)); //Cannot call tree.bbox(); tree.build(); tree.clear(); //Cannot call tree.closest_*(...) assert(tree.do_intersect(plane_query) == false); assert(tree.do_intersect(triangle_query) == false); assert(tree.empty()); //Do not call tree.insert(...) assert(tree.number_of_intersected_primitives(plane_query) == 0); assert(tree.number_of_intersected_primitives(triangle_query) == 0); // Cannot call tree.rebuild(..) assert(tree.size() == 0); // Cannot call tree.squared_distance(..) return EXIT_SUCCESS; }