#include #include #include #include #include typedef CGAL::Simple_cartesian Kernel; typedef Kernel::Point_3 Point; typedef CGAL::Surface_mesh Mesh; typedef boost::graph_traits::vertex_descriptor vertex_descriptor; int main(int argc, char* argv[]) { const char* filename = (argc > 1) ? argv[1] : "data/prim.off"; Mesh sm; if(!CGAL::read_polygon_mesh(filename, sm)) { std::cerr << "Invalid input." << std::endl; return 1; } Mesh::Property_map ccmap; ccmap = sm.add_property_map("v:CC").first; int num = connected_components(sm, ccmap); std::cout << num << " connected components" << std::endl; for(vertex_descriptor v : vertices(sm)){ std::cout << v << " is in component " << ccmap[v] << std::endl; } return 0; }