#include #include #include #include #include #include #include #include typedef CGAL::Epick K; typedef K::Point_3 Point; typedef K::Triangle_3 Triangle; typedef CGAL::Surface_mesh Mesh; typedef CGAL::AABB_face_graph_triangle_primitive Primitive; typedef CGAL::AABB_traits Traits; typedef CGAL::AABB_tree Tree; typedef CGAL::AABB_face_graph_triangle_primitive Primitive2; typedef CGAL::AABB_traits Traits2; typedef CGAL::AABB_tree Tree2; typedef CGAL::AABB_face_graph_triangle_primitive Primitive3; typedef CGAL::AABB_traits Traits3; typedef CGAL::AABB_tree Tree3; typedef CGAL::AABB_face_graph_triangle_primitive Primitive4; typedef CGAL::AABB_traits Traits4; typedef CGAL::AABB_tree Tree4; int main(void) { Mesh m; std::ifstream in("data/cube.off"); if(in) in >> m; else{ std::cout << "error reading bunny" << std::endl; return 1; } Tree t1(faces(m).begin(), faces(m).end(), m); Tree2 t2(faces(m).begin(), faces(m).end(), m); Tree3 t3(faces(m).begin(), faces(m).end(), m); Tree4 t4(faces(m).begin(), faces(m).end(), m); t1.build(); t2.build(); t3.build(); t4.build(); Primitive p1(faces(m).begin(), m); Primitive2 p2(faces(m).begin(), m); Primitive3 p3(faces(m).begin(), m); Primitive4 p4(faces(m).begin(), m); Triangle tr1 = t1.datum(p1); Triangle tr2 = t2.datum(p2); Triangle tr3 = t3.datum(p3); Triangle tr4 = t4.datum(p4); if(tr1 != tr2 || tr1 != tr3 || tr1 != tr4 || tr2 != tr3 || tr2 != tr4 || tr3 != tr4) return 1; return 0; }