#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; const std::string filename = (argc>1)?argv[1]:CGAL::data_file_path("meshes/in.off"); const char* outname= (argc>2)?argv[2]:"out.off"; CGAL::IO::read_polygon_mesh(filename, mesh); for(vertex_descriptor vd : vertices(mesh)){ for(halfedge_descriptor hd : CGAL::halfedges_around_target(vd,mesh)){ if(! CGAL::is_border(edge(hd,mesh),mesh)){ CGAL::Euler::flip_edge(hd,mesh); CGAL::IO::write_polygon_mesh(outname, mesh); return 0; } } } return 0; }