#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); // OpenMesh::IO::read_mesh(mesh, (argc>1)?argv[1]:"in.off"); 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); OpenMesh::IO::write_mesh(mesh, (argc>2)?argv[2]:"out.off"); return 0; } } } return 0; }