|
CGAL 5.1 - CGAL and the Boost Graph Library
|
VertexListGraphEdgeListGraphHalfedgeGraphHalfedgeListGraphMutableHalfedgeGraphFaceGraphFaceListGraphMutableFaceGraphCGAL::vertex_index_tCGAL::halfedge_index_tCGAL::edge_index_tCGAL::face_index_tCGAL::vertex_point_tA number of CGAL structures have been adapted as graphs for the Bgl. All adapted types are listed here. The pages document which concepts they model, the properties they support, and any possible caveats that a user might encounter.
boost::graph_traits<CGAL::Surface_mesh<P> > boost::graph_traits<CGAL::Polyhedron_3<T> > boost::graph_traits<CGAL::Linear_cell_complex_for_combinatorial_map<...> > boost::graph_traits<CGAL::Seam_mesh<T> > boost::graph_traits<CGAL::Triangulation_2<GT, TDS> > and other 2D triangulationsboost::graph_traits<CGAL::Arrangement_2<T, DC> > boost::graph_traits<OpenMesh::PolyMesh_ArrayKernelT<K> > boost::graph_traits<OpenMesh::TriMesh_ArrayKernelT<K> > CGAL::Triangulation_vertex_base_with_id_2CGAL::Triangulation_face_base_with_id_2CGAL::Arr_vertex_index_mapCGAL::Arr_face_index_mapCGAL::HalfedgeDS_vertex_max_base_with_idCGAL::HalfedgeDS_halfedge_max_base_with_idCGAL::HalfedgeDS_face_max_base_with_idCGAL::Polyhedron_items_with_id_3CGAL::set_halfedgeds_items_id()CGAL::Linear_cell_complex_bgl_min_itemsCGAL::Linear_cell_complex_for_bgl_combinatorial_map_helperCGAL::is_border()CGAL::is_border_edge()CGAL::is_bivalent()CGAL::is_bivalent_mesh()CGAL::is_trivalent()CGAL::is_trivalent_mesh()CGAL::is_isolated_triangle()CGAL::is_closed()CGAL::is_triangle()CGAL::is_triangle_mesh()CGAL::is_quad()CGAL::is_quad_mesh()CGAL::is_isolated_quad()CGAL::is_valid_halfedge_graph()CGAL::is_valid_face_graph()CGAL::is_valid_polygon_mesh()CGAL::is_tetrahedron()CGAL::is_hexahedron()CGAL::make_triangle()CGAL::make_tetrahedron()CGAL::make_quad()CGAL::make_hexahedron()CGAL::make_icosahedron()CGAL::make_regular_prism()CGAL::make_pyramid()CGAL::make_grid()CGAL::clear()CGAL::copy_face_graph()CGAL::set_triangulation_ids()CGAL::Halfedge_around_source_iteratorCGAL::Halfedge_around_target_iteratorCGAL::Halfedge_around_face_iteratorCGAL::Vertex_around_target_iteratorCGAL::Vertex_around_face_iteratorCGAL::Face_around_face_iteratorCGAL::Face_around_target_iteratorCGAL::halfedges_around_source()CGAL::halfedges_around_target()CGAL::halfedges_around_face()CGAL::faces_around_face()CGAL::faces_around_target()CGAL::vertices_around_face()CGAL::vertices_around_target()CGAL::Halfedge_around_source_circulatorCGAL::Halfedge_around_target_circulatorCGAL::Halfedge_around_face_circulatorCGAL::Vertex_around_target_circulatorCGAL::Face_around_target_circulatorCGAL::Face_around_face_circulatorCGAL::Euler::add_center_vertex()CGAL::Euler::add_edge()CGAL::Euler::add_face()CGAL::Euler::add_face_to_border()CGAL::Euler::add_vertex_and_face_to_border()CGAL::Euler::collapse_edge()CGAL::Euler::does_satisfy_link_condition()CGAL::Euler::fill_hole()CGAL::Euler::flip_edge()CGAL::Euler::join_face()CGAL::Euler::join_loop()CGAL::Euler::join_vertex()CGAL::Euler::make_hole()CGAL::Euler::remove_center_vertex()CGAL::Euler::remove_face()CGAL::Euler::split_edge()CGAL::Euler::split_face()CGAL::Euler::split_loop()CGAL::Euler::split_vertex()CGAL::expand_face_selection()CGAL::reduce_face_selection()CGAL::expand_edge_selection()CGAL::reduce_edge_selection()CGAL::expand_vertex_selection()CGAL::reduce_vertex_selection()CGAL::select_incident_faces()CGAL::expand_face_selection_for_removal()CGAL::regularize_face_selection_borders()CGAL::DualCGAL::Face_filtered_graphCGAL::Graph_with_descriptor_with_graphCGAL::Graph_with_descriptor_with_graph_property_mapCGAL::Seam_meshModules | |
| Specializations of boost::graph_traits | |
The Bgl defines the class template boost::graph_traits as a uniform interface to the properties and types of graph types. | |
| BGL Named Parameters | |
| The algorithms of the Bgl often have many parameters with default values that are appropriate for most cases. | |
| Concepts | |
| We extend the Boost Graph Library (Bgl for short) with a set of new concepts. | |
| Properties | |
The property tags model of the boost concept PropertyTag. | |
| Dynamic Properties | |
The dynamic property tags enable to associate information to simplices of a FaceGraph on the fly. | |
| External Indices | |
| Helper Functions | |
Generic convenience functions for testing if an edge is a border edge, if a mesh is triangular, for conversion between models of different FaceGraph concepts, etc. | |
| Iterators and Circulators | |
| Several iterators and circulators are provided that enable, for example, to iterate through the halfedges incident to a given face or vertex. | |
| Selection Functions | |
| Several functions to enlarge or reduce a k-ring selection of vertices, edges, or faces. | |
| Graph Adaptors | |
| Graph adaptors are classes that build an interface over an existing graph to provide new functionalities. | |
| Euler Operations | |
| We call high level operations that maintain the validity of a halfedge graph Euler Operations. | |
| Partitioning Operations | |
| Methods to split a mesh into subdomains, using the library METIS or a graphcut implementation. | |
| I/O Functions | |
| Methods to read and write graphs. | |
Files | |
| file | partition.h |
| Convenience header file including the headers for all the partitioning-related free functions of this package. | |
Functions | |
| template<typename Graph , typename Visitor , typename IsTerminal > | |
| void | CGAL::split_graph_into_polylines (const Graph &graph, Visitor &polyline_visitor, IsTerminal is_terminal) |
splits into polylines the graph g at vertices of degree greater than 2 and at vertices for which is_terminal(v,graph)==true. More... | |
| void CGAL::split_graph_into_polylines | ( | const Graph & | graph, |
| Visitor & | polyline_visitor, | ||
| IsTerminal | is_terminal | ||
| ) |
#include <CGAL/boost/graph/split_graph_into_polylines.h>
splits into polylines the graph g at vertices of degree greater than 2 and at vertices for which is_terminal(v,graph)==true.
The polylines are reported using a visitor.
| Graph | a model of the boost concepts VertexListGraph and EdgeListGraph. |
| Visitor | a class that provides:
|
| IsTerminal | A functor providing bool operator()(boost::graph_traits<Graph>::vertex_descriptor v, const Graph& g) const returning true if the vertex v of degree 2 is a polyline endpoint and false otherwise. |
An overload without is_terminal is provided if no vertices but those of degree different from 2 are polyline endpoints.