CGAL 5.1 - CGAL and the Boost Graph Library
CGAL Namespace Reference

CGAL Namespace. More...

Classes

class  Dual
 The class template Dual is an adaptor that creates the dual view of a FaceGraph. More...
 
struct  dynamic_edge_property_t
 Dynamic edge property tag. More...
 
struct  dynamic_face_property_t
 Dynamic face property tag. More...
 
struct  dynamic_halfedge_property_t
 Dynamic halfedge property tag. More...
 
struct  dynamic_vertex_property_t
 Dynamic vertex property tag. More...
 
class  Face_around_face_circulator
 A bidirectional circulator with value type boost::graph_traits<Graph>::face_descriptor. More...
 
class  Face_around_face_iterator
 A bidirectional iterator with value type boost::graph_traits<Graph>::face_descriptor. More...
 
class  Face_around_target_circulator
 A bidirectional circulator with value type boost::graph_traits<Graph>::face_descriptor over all faces incident to the same vertex. More...
 
class  Face_around_target_iterator
 A bidirectional iterator with value type boost::graph_traits<Graph>::face_descriptor. More...
 
struct  Face_filtered_graph
 The class Face_filtered_graph is an adaptor that creates a filtered view of a graph by restricting it to a subset of faces. More...
 
struct  graph_has_property
 graph_has_property is used to indicate if a model of HalfedgeGraph or FaceGraph has an internal property associated with the given PropertyTag. More...
 
struct  Graph_with_descriptor_with_graph
 The class Graph_with_descriptor_with_graph wraps a graph into another graph in such a way that its descriptors contain a reference to the graph they come from. More...
 
struct  Graph_with_descriptor_with_graph_property_map
 Graph_with_descriptor_with_graph_property_map enables to forward properties from a Graph to a Graph_with_descriptor_with_graph. More...
 
class  Halfedge_around_face_circulator
 A bidirectional circulator with value type boost::graph_traits<Graph>::halfedge_descriptor over all halfedges incident to the same face or border. More...
 
class  Halfedge_around_face_iterator
 A bidirectional iterator with value type boost::graph_traits<Graph>::halfedge_descriptor over all halfedges incident to the same face or border. More...
 
class  Halfedge_around_source_circulator
 A bidirectional circulator with value type boost::graph_traits<Graph>::halfedge_descriptor over all halfedges having the same vertex as source. More...
 
class  Halfedge_around_source_iterator
 A bidirectional iterator with value type boost::graph_traits<Graph>::halfedge_descriptor over all halfedges having the same vertex as source. More...
 
class  Halfedge_around_target_circulator
 A bidirectional circulator with value type boost::graph_traits<Graph>::halfedge_descriptor over all halfedges having the same vertex as target. More...
 
class  Halfedge_around_target_iterator
 A bidirectional iterator with value type boost::graph_traits<Graph>::halfedge_descriptor over all halfedges having the same vertex as target. More...
 
class  HalfedgeDS_face_max_base_with_id
 The class HalfedgeDS_face_max_base_with_id is a model of the HalfedgeDSFace concept. More...
 
class  HalfedgeDS_halfedge_max_base_with_id
 The class HalfedgeDS_halfedge_max_base_with_id is a model of the HalfedgeDSHalfedge concept. More...
 
class  HalfedgeDS_vertex_max_base_with_id
 The class HalfedgeDS_vertex_max_base_with_id is a model of the HalfedgeDSVertex concept. More...
 
struct  Linear_cell_complex_bgl_min_items
 The class Linear_cell_complex_bgl_min_items defines void as the information associated with darts, darts have ids and 0- and 2-attributes are enabled and have ids. More...
 
struct  Linear_cell_complex_for_bgl_combinatorial_map_helper
 The class Linear_cell_complex_for_bgl_combinatorial_map_helper defines a CGAL::Linear_cell_complex_for_combinatorial_map as inner type, named type, having CGAL::Linear_cell_complex_bgl_min_items as items class. More...
 
class  Polyhedron_items_with_id_3
 The class Polyhedron_items_with_id_3 is a model of the PolyhedronItems_3 concept. More...
 
class  Seam_mesh
 This class is a data structure that takes a triangle mesh, further refered to as underlying mesh and turns some marked edges of that mesh into virtual boundary edges. More...
 
class  Triangulation_face_base_with_id_2
 The class Triangulation_face_base_with_id_2 is a model of the concept TriangulationFaceBase_2, the base face of a 2D-triangulation. More...
 
class  Triangulation_vertex_base_with_id_2
 The class Triangulation_vertex_base_with_id_2 is a model of the concept TriangulationVertexBase_2, the base vertex of a 2D-triangulation. More...
 
class  Vertex_around_face_iterator
 A bidirectional iterator with value type boost::graph_traits<Graph>::vertex_descriptor over all vertices incident to the same face or border. More...
 
class  Vertex_around_target_circulator
 A bidirectional circulator with value type boost::graph_traits<Graph>::vertex_descriptor over all vertices adjacent to the same vertex. More...
 
class  Vertex_around_target_iterator
 A bidirectional iterator with value type boost::graph_traits<Graph>::vertex_descriptor over all vertices adjacent to the same vertex. More...
 

Functions

template<class HalfedgeDS_with_id >
void set_halfedgeds_items_id (Polyhedron_with_id &P)
 Given a CGAL::Polyhedron_3, for each simplex type (vertex, halfedge, facet) associates an index from 0 to the number of simplices minus 1 to each simplex of hds. More...
 
template<typename Triangulation >
void set_triangulation_ids (Triangulation &tr)
 This function initializes vertex, edge, and face indices of the triangulation tr and must be called prior to using tr as a BGL graph in an algorithm that requires vertex, halfedge, edge, or face indices. More...
 
template<typename Graph >
Iterator_range< Halfedge_around_source_iterator< Graph > > halfedges_around_source (typename boost::graph_traits< Graph >::halfedge_descriptor h, const Graph &g)
 returns an iterator range over all halfedges with vertex source(h,g) as source.
 
template<typename Graph >
Iterator_range< Halfedge_around_source_iterator< Graph > > halfedges_around_source (typename boost::graph_traits< Graph >::vertex_descriptor v, const Graph &g)
 returns an iterator range over all halfedges with vertex v as source.
 
template<typename Graph >
Iterator_range< Halfedge_around_target_iterator< Graph > > halfedges_around_target (typename boost::graph_traits< Graph >::halfedge_descriptor h, const Graph &g)
 returns an iterator range over all halfedges with vertex target(h,g) as target.
 
template<typename Graph >
Iterator_range< Halfedge_around_target_iterator< Graph > > halfedges_around_target (typename boost::graph_traits< Graph >::vertex_descriptor v, const Graph &g)
 returns an iterator range over all halfedges with vertex v as target.
 
template<typename Graph >
Iterator_range< Halfedge_around_face_iterator< Graph > > halfedges_around_face (typename boost::graph_traits< Graph >::halfedge_descriptor h, const Graph &g)
 returns an iterator range over all halfedges incident to the same face or border as h.
 
template<typename Graph >
Iterator_range< Face_around_target_iterator< Graph > > faces_around_target (typename boost::graph_traits< Graph >::halfedge_descriptor h, const Graph &g)
 returns an iterator range over all faces around vertex target(h,g).
 
template<typename Graph >
Iterator_range< Face_around_face_iterator< Graph > > faces_around_face (typename boost::graph_traits< Graph >::halfedge_descriptor h, const Graph &g)
 returns an iterator range over all edge-adjacent faces to the same face face(h,g).
 
template<typename Graph >
Iterator_range< Vertex_around_target_iterator< Graph > > vertices_around_target (typename boost::graph_traits< Graph >::halfedge_descriptor h, const Graph &g)
 returns an iterator range over all vertices adjacent to the vertex target(h,g).
 
template<typename Graph >
Iterator_range< Vertex_around_face_iterator< Graph > > vertices_around_face (typename boost::graph_traits< Graph >::halfedge_descriptor h, const Graph &g)
 returns an iterator range over all vertices adjacent to the face face(h,g).
 
template<typename FaceGraph >
bool is_border (typename boost::graph_traits< FaceGraph >::halfedge_descriptor hd, const FaceGraph &g)
 returns true if the halfedge hd is on a border.
 
template<typename FaceGraph >
bool is_border_edge (typename boost::graph_traits< FaceGraph >::halfedge_descriptor hd, const FaceGraph &g)
 returns true if the halfedge hd or the opposite halfedge is on a border.
 
template<typename FaceGraph >
bool is_border (typename boost::graph_traits< FaceGraph >::edge_descriptor ed, const FaceGraph &g)
 returns true if the edge e is on a border.
 
template<typename FaceGraph >
boost::optional< typename boost::graph_traits< FaceGraph >::halfedge_descriptor > is_border (typename boost::graph_traits< FaceGraph >::vertex_descriptor vd, const FaceGraph &g)
 returns a halfedge which is on a border and whose target vertex is vd, if such a halfedge exists.
 
template<typename FaceGraph >
bool is_closed (const FaceGraph &g)
 returns true if there are no border edges.
 
template<typename FaceGraph >
bool is_bivalent (typename boost::graph_traits< FaceGraph >::halfedge_descriptor hd, const FaceGraph &g)
 returns true if the target of hd has exactly two incident edges.
 
template<typename FaceGraph >
bool is_bivalent_mesh (const FaceGraph &g)
 returns true if all vertices have exactly two incident edges.
 
template<typename FaceGraph >
bool is_trivalent (typename boost::graph_traits< FaceGraph >::halfedge_descriptor hd, const FaceGraph &g)
 returns true if the target of hd has exactly three incident edges.
 
template<typename FaceGraph >
bool is_trivalent_mesh (const FaceGraph &g)
 returns true if all vertices have exactly three incident edges.
 
template<typename FaceGraph >
bool is_isolated_triangle (typename boost::graph_traits< FaceGraph >::halfedge_descriptor hd, const FaceGraph &g)
 returns true iff the connected component denoted by hd is a triangle. More...
 
template<typename FaceGraph >
bool is_triangle (typename boost::graph_traits< FaceGraph >::halfedge_descriptor hd, const FaceGraph &g)
 returns true iff the face denoted by hd is a triangle, that is it has three incident halfedges.
 
template<typename FaceGraph >
bool is_triangle_mesh (const FaceGraph &g)
 returns true if all faces are triangles.
 
template<typename FaceGraph >
bool is_isolated_quad (typename boost::graph_traits< FaceGraph >::halfedge_descriptor hd, const FaceGraph &g)
 returns true iff the connected component denoted by hd is a quadrilateral.
 
template<typename FaceGraph >
bool is_quad (typename boost::graph_traits< FaceGraph >::halfedge_descriptor hd, const FaceGraph &g)
 returns true iff the face denoted by hd is a quad, that is it has four incident halfedges.
 
template<typename FaceGraph >
bool is_quad_mesh (const FaceGraph &g)
 returns true if all faces are quadrilaterals.
 
template<typename FaceGraph >
bool is_tetrahedron (typename boost::graph_traits< FaceGraph >::halfedge_descriptor hd, const FaceGraph &g)
 returns true iff the connected component denoted by hd is a tetrahedron.
 
template<typename Graph >
bool is_valid_halfedge_graph (const Graph &g, bool verb=false)
 checks the integrity of g. More...
 
template<typename Graph >
bool is_valid_face_graph (const Graph &g, bool verb=false)
 checks the integrity of g. More...
 
template<typename Mesh >
bool is_valid_polygon_mesh (const Mesh &g, bool verb=false)
 checks the integrity of g. More...
 
template<typename FaceGraph >
bool is_hexahedron (typename boost::graph_traits< FaceGraph >::halfedge_descriptor hd, const FaceGraph &g)
 returns true iff the connected component denoted by hd is a hexahedron.
 
template<typename FaceGraph >
void clear (FaceGraph &g)
 removes all vertices, faces and halfedges from a graph. More...
 
template<typename FaceGraph >
bool is_empty (const FaceGraph &g)
 checks whether the graph is empty, by checking that it does not contain any vertex. More...
 
template<typename Graph >
int vertex_index_in_face (const typename boost::graph_traits< Graph >::vertex_descriptor vd, const typename boost::graph_traits< Graph >::face_descriptor fd, const Graph &g)
 returns the number of calls to next() one has to apply to the halfedge hd for source(hd, mesh) == vd to be true, starting from hd = halfedge(fd, tm). More...
 
template<typename Graph >
int halfedge_index_in_face (typename boost::graph_traits< Graph >::halfedge_descriptor he, const Graph &g)
 returns the number of calls to next(hd, tm) one has to apply to hd for hd == he to be true, starting from hd = halfedge(face(he, tm), tm). More...
 
template<typename Graph , typename P >
boost::graph_traits< Graph >::halfedge_descriptor make_triangle (const P &p0, const P &p1, const P &p2, Graph &g)
 Creates an isolated triangle with its vertices initialized to p0, p1 and p2, and adds it to the graph g. More...
 
template<typename Graph , typename P >
boost::graph_traits< Graph >::halfedge_descriptor make_quad (const P &p0, const P &p1, const P &p2, const P &p3, Graph &g)
 Creates an isolated quad with its vertices initialized to p0, p1, p2, and p3, and adds it to the graph g. More...
 
template<typename Graph , typename P >
boost::graph_traits< Graph >::halfedge_descriptor make_hexahedron (const P &p0, const P &p1, const P &p2, const P &p3, const P &p4, const P &p5, const P &p6, const P &p7, Graph &g)
 Creates an isolated hexahedron with its vertices initialized to p0, p1, ... , and p7, and adds it to the graph g. More...
 
template<typename Graph , typename P >
boost::graph_traits< Graph >::halfedge_descriptor make_tetrahedron (const P &p0, const P &p1, const P &p2, const P &p3, Graph &g)
 Creates an isolated tetrahedron with its vertices initialized to p0, p1, p2, and p3, and adds it to the graph g. More...
 
template<class Graph , class P >
boost::graph_traits< Graph >::halfedge_descriptor make_regular_prism (typename boost::graph_traits< Graph >::vertices_size_type nb_vertices, Graph &g, const P &base_center=P(0, 0, 0), typename CGAL::Kernel_traits< P >::Kernel::FT height=1.0, typename CGAL::Kernel_traits< P >::Kernel::FT radius=1.0, bool is_closed=true)
 Creates a triangulated regular prism, outward oriented, having nb_vertices vertices in each of its bases and adds it to the graph g. More...
 
template<class Graph , class P >
boost::graph_traits< Graph >::halfedge_descriptor make_pyramid (typename boost::graph_traits< Graph >::vertices_size_type nb_vertices, Graph &g, const P &base_center=P(0, 0, 0), typename CGAL::Kernel_traits< P >::Kernel::FT height=1.0, typename CGAL::Kernel_traits< P >::Kernel::FT radius=1.0, bool is_closed=true)
 Creates a pyramid, outward oriented, having nb_vertices vertices in its base and adds it to the graph g. More...
 
template<class Graph , class P >
boost::graph_traits< Graph >::halfedge_descriptor make_icosahedron (Graph &g, const P &center=P(0, 0, 0), typename CGAL::Kernel_traits< P >::Kernel::FT radius=1.0)
 Creates an icosahedron, outward oriented, centered in center and adds it to the graph g. More...
 
template<class Graph , class CoordinateFunctor >
boost::graph_traits< Graph >::halfedge_descriptor make_grid (typename boost::graph_traits< Graph >::vertices_size_type i, typename boost::graph_traits< Graph >::vertices_size_type j, Graph &g, const CoordinateFunctor &calculator, bool triangulated=false)
 Creates a row major ordered grid with i cells along the width and j cells along the height and adds it to the graph g. More...
 
template<class FaceRange , class FaceGraph , class IsFaceSelectedPMap , class OutputIterator >
OutputIterator expand_face_selection (const FaceRange &selection, FaceGraph &fg, unsigned int k, IsFaceSelectedPMap is_selected, OutputIterator out)
 Augments a selection with faces of fg that are adjacent to a face in selection. More...
 
template<class FaceRange , class FaceGraph , class IsFaceSelectedPMap , class OutputIterator >
OutputIterator reduce_face_selection (const FaceRange &selection, FaceGraph &fg, unsigned int k, IsFaceSelectedPMap is_selected, OutputIterator out)
 Diminishes a selection of faces from faces adjacent to a non-selected face. More...
 
template<typename TriangleMesh , typename IsSelectedMap , typename NamedParameters >
void regularize_face_selection_borders (TriangleMesh &mesh, IsSelectedMap is_selected, double weight, const NamedParameters &np)
 regularizes a selection in order to minimize the length of the border of the selection. More...
 
template<class HalfedgeRange , class FaceGraph , class OutputIterator >
OutputIterator select_incident_faces (const HalfedgeRange &hedges, FaceGraph &fg, OutputIterator out)
 Discovers and puts in out all faces incident to the target vertex of a halfedge in hedges. More...
 
template<class EdgeRange , class HalfedgeGraph , class IsEdgeSelectedPMap , class OutputIterator >
OutputIterator expand_edge_selection (const EdgeRange &selection, HalfedgeGraph &fg, unsigned int k, IsEdgeSelectedPMap is_selected, OutputIterator out)
 Augments a selection with edges of fg that are adjacent to an edge in selection. More...
 
template<class EdgeRange , class HalfedgeGraph , class IsEdgeSelectedPMap , class OutputIterator >
OutputIterator reduce_edge_selection (const EdgeRange &selection, HalfedgeGraph &fg, unsigned int k, IsEdgeSelectedPMap is_selected, OutputIterator out)
 Diminishes a selection of edges from edges adjacent to a non-selected edge. More...
 
template<class VertexRange , class HalfedgeGraph , class IsVertexSelectedPMap , class OutputIterator >
OutputIterator expand_vertex_selection (const VertexRange &selection, HalfedgeGraph &fg, unsigned int k, IsVertexSelectedPMap is_selected, OutputIterator out)
 Augments a selection with vertices of fg that are adjacent to a vertex in selection. More...
 
template<class VertexRange , class HalfedgeGraph , class IsVertexSelectedPMap , class OutputIterator >
OutputIterator reduce_vertex_selection (const VertexRange &selection, HalfedgeGraph &fg, unsigned int k, IsVertexSelectedPMap is_selected, OutputIterator out)
 Diminishes a selection of vertices from vertices adjacent to a non-selected vertex. More...
 
template<class TriangleMesh , class FaceRange , class IsSelectedMap >
void expand_face_selection_for_removal (const FaceRange &faces_to_be_deleted, TriangleMesh &tm, IsSelectedMap is_selected)
 Expands a selection of faces so that their removal does not create any non manifold vertex. More...
 
template<typename Graph , typename Visitor , typename IsTerminal >
void 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<typename SourceMesh , typename TargetMesh , typename NamedParameters1 , typename NamedParameters2 >
void copy_face_graph (const SourceMesh &sm, TargetMesh &tm, const NamedParameters1 &np1, const NamedParameters2 &np2)
 copies a source model of FaceListGraph into a target model of a FaceListGraph. More...
 
template<typename FaceGraph , typename NamedParameters >
bool write_wrl (std::ostream &os, const FaceGraph &g, const NamedParameters &np)
 writes the graph g in the wrl format (VRML 2.0). More...
 
template<typename FaceGraph , typename NamedParameters >
bool write_off (std::ostream &os, const FaceGraph &g, const NamedParameters &np)
 writes the graph g in the OFF format. More...
 
template<typename FaceGraph , typename NamedParameters >
bool write_off (const char *fname, const FaceGraph &g, const NamedParameters &np)
 writes the graph g in the OFF format into a file named fname. More...
 
template<typename FaceGraph , typename NamedParameters >
bool read_off (std::istream &is, FaceGraph &g, NamedParameters np)
 reads the graph g from data in the OFF format. More...
 
template<typename FaceGraph , typename NamedParameters >
bool read_off (const char *fname, FaceGraph &g, NamedParameters np)
 reads the graph g from data in the OFF format. More...
 
template<class TriangleMesh , class NamedParameters >
void write_vtp (std::ostream &os, const TriangleMesh &mesh, const NamedParameters &np)
 writes a triangulated surface mesh in the PolyData XML format. More...
 
template<typename InputGraph , typename EdgeCostMap , typename VertexLabelCostMap , typename VertexLabelMap , typename NamedParameters >
double alpha_expansion_graphcut (const InputGraph &input_graph, EdgeCostMap edge_cost_map, VertexLabelCostMap vertex_label_cost_map, VertexLabelMap vertex_label_map, const NamedParameters &np)
 regularizes a partition of a graph into n labels using the alpha expansion algorithm [1]. More...
 
enum  vertex_index_t
 The constant vertex_index is a property tag which identifies the index property of a vertex of a Bgl Graph. More...
 
enum  halfedge_index_t
 The constant halfedge_index is a property tag which identifies the index property of a halfedge of a HalfedgeGraph. More...
 
enum  edge_index_t
 The constant edge_index is a property tag which identifies the index property of an edge of a Bgl Graph. More...
 
enum  face_index_t
 The constant face_index is a property tag which identifies the index property of a face of a FaceGraph. More...
 
enum  vertex_point_t
 The constant vertex_point is a property tag which refers to the geometric embedding property of a vertex of a HalfedgeGraph. More...
 

Definition

CGAL Namespace.