#include #include #include #include #include #include #include #include #include #include #include typedef CGAL::Exact_predicates_inexact_constructions_kernel Kernel; typedef OpenMesh::TriMesh_ArrayKernelT Mesh; typedef boost::graph_traits::vertex_descriptor vertex_descriptor; typedef boost::graph_traits::face_descriptor face_descriptor; typedef boost::graph_traits::halfedge_descriptor halfedge_descriptor; int main(int argc, char** argv ) { Mesh mesh; std::vector V; V.push_back(add_vertex(mesh)); V.push_back(add_vertex(mesh)); V.push_back(add_vertex(mesh)); add_face(V.begin(), V.end(), mesh); CGAL::read_off(std::ifstream((argc>1)?argv[1]:"in.off"), mesh); BOOST_FOREACH(vertex_descriptor vd, vertices(mesh)){ BOOST_FOREACH(halfedge_descriptor hd, CGAL::halfedges_around_target(vd,mesh)){ if(! CGAL::is_border(edge(hd,mesh),mesh)){ CGAL::Euler::flip_edge(hd,mesh); CGAL::write_off((argc>2)?argv[2]:"out.off", mesh); return 0; } } } return 0; }