CGAL 4.11.1 - CGAL and the Boost Graph Library
|
VertexListGraph
EdgeListGraph
HalfedgeGraph
HalfedgeListGraph
MutableHalfedgeGraph
FaceGraph
FaceListGraph
MutableFaceGraph
boost::vertex_index_t
boost::halfedge_index_t
boost::edge_index_t
boost::face_index_t
boost::vertex_point_t
Different CGAL types 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> >
boost::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_2
CGAL::Arr_vertex_index_map
CGAL::Arr_face_index_map
CGAL::HalfedgeDS_vertex_max_base_with_id
CGAL::HalfedgeDS_halfedge_max_base_with_id
CGAL::HalfedgeDS_face_max_base_with_id
CGAL::Polyhedron_items_with_id_3
CGAL::set_halfedgeds_items_id()
CGAL::Dual
CGAL::Graph_with_descriptor_with_graph
CGAL::Graph_with_descriptor_with_graph_property_map
CGAL::Face_filtered_graph
CGAL::Linear_cell_complex_bgl_min_items
CGAL::Linear_cell_complex_for_bgl_combinatorial_map_helper
CGAL::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_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::Halfedge_around_source_iterator
CGAL::Halfedge_around_target_iterator
CGAL::Halfedge_around_face_iterator
CGAL::Vertex_around_target_iterator
CGAL::Vertex_around_face_iterator
CGAL::Face_around_face_iterator
CGAL::Face_around_target_iterator
CGAL::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_circulator
CGAL::Halfedge_around_target_circulator
CGAL::Halfedge_around_face_circulator
CGAL::Vertex_around_target_circulator
CGAL::Face_around_target_circulator
CGAL::Face_around_face_circulator
CGAL::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::Dual
CGAL::Face_filtered_graph
CGAL::Graph_with_descriptor_with_graph
CGAL::Graph_with_descriptor_with_graph_property_map
CGAL::Seam_mesh
CGAL::read_off()
CGAL::write_off()
Modules | |
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. | |
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 . | |
Helper Classes | |
Several classes that enable to store ids in vertices/halfedges/faces of a CGAL::Polyhedron_3 , as well as adapters such as CGAL::Dual . | |
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. | |
I/O Functions | |
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... | |
template<class Nef_polyhedron , class Polygon_mesh > | |
void | CGAL::convert_nef_polyhedron_to_polygon_mesh (const Nef_polyhedron &nef, Polygon_mesh &pm) |
Converts an objet of type Nef_polyhedron_3 into a polygon mesh model of MutableFaceGraph . More... | |
void CGAL::convert_nef_polyhedron_to_polygon_mesh | ( | const Nef_polyhedron & | nef, |
Polygon_mesh & | pm | ||
) |
Converts an objet of type Nef_polyhedron_3
into a polygon mesh model of MutableFaceGraph
.
Note that contrary to Nef_polyhedron_3::convert_to_polyhedron()
, the output is not triangulated (but faces with more than one connected component of the boundary). The polygon mesh can be triangulated using the function triangulate_faces()
.
Polygon_mesh
must have an internal point property map with value type being Nef_polyhedron_3::Point_3
. nef.simple()
#include <CGAL/boost/graph/convert_nef_polyhedron_to_polygon_mesh.h>
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
.
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.
#include <CGAL/boost/graph/split_graph_into_polylines.h>