CGAL 6.1 - CGAL and the Boost Graph Library
Loading...
Searching...
No Matches
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 referred 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_circulator
 A bidirectional circulator with value type boost::graph_traits<Graph>::vertex_descriptor over all vertices incident to the same face or border. 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.
 
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.
 
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 >
std::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 Graph >
bool is_valid_halfedge_graph (const Graph &g, bool verb=false)
 checks the integrity of the graph g.
 
template<typename FaceGraph >
bool is_valid_face_graph (const FaceGraph &g, bool verb=false)
 checks the integrity of the graph g.
 
template<typename Mesh >
bool is_valid_polygon_mesh (const Mesh &g, bool verb=false)
 checks the integrity of the mesh g.
 
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.
 
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 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 remove_all_elements (FaceGraph &g)
 removes all vertices, faces and halfedges from a graph.
 
template<typename FaceGraph >
void clear (FaceGraph &g)
 removes all vertices, faces and halfedges from a graph.
 
template<typename FaceGraph >
bool is_empty (const FaceGraph &g)
 checks whether the graph is empty, by checking that it does not contain any vertex.
 
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).
 
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).
 
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.
 
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.
 
template<typename Graph , typename P , typename NamedParameters = parameters::Default_named_parameters>
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, const NamedParameters &np=parameters::default_values())
 creates an isolated hexahedron with its vertices initialized to p0, p1, ... , and p7, and adds it to the graph g.
 
template<typename IsoCuboid , typename Graph , typename NamedParameters = parameters::Default_named_parameters>
boost::graph_traits< Graph >::halfedge_descriptor make_hexahedron (const IsoCuboid &c, Graph &g, const NamedParameters &np=parameters::default_values())
 creates an isolated hexahedron equivalent to c, and adds it to the graph g.
 
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.
 
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.
 
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.
 
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)
 creates an icosahedron, outward oriented, centered in center and adds it to the graph g.
 
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.
 
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.
 
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.
 
template<typename TriangleMesh , typename IsSelectedMap , typename NamedParameters = parameters::Default_named_parameters>
void regularize_face_selection_borders (TriangleMesh &mesh, IsSelectedMap is_selected, double weight, const NamedParameters &np=parameters::default_values())
 regularizes a selection in order to minimize the length of the border of the selection.
 
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.
 
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.
 
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.
 
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.
 
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.
 
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.
 
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.
 
template<typename SourceMesh , typename TargetMesh , typename NamedParameters1 = parameters::Default_named_parameters, typename NamedParameters2 = parameters::Default_named_parameters>
void copy_face_graph (const SourceMesh &sm, TargetMesh &tm, const NamedParameters1 &np1=parameters::default_values(), const NamedParameters2 &np2=parameters::default_values())
 copies a source model of FaceListGraph into a target model of a FaceListGraph.
 
template<typename Graph , typename NamedParameters = CGAL::parameters::Default_named_parameters>
bool read_off (std::istream &is, Graph &g, const NamedParameters &np=parameters::default_values())
 
template<typename Graph , typename NamedParameters = CGAL::parameters::Default_named_parameters>
bool read_off (const char *fname, Graph &g, const NamedParameters &np=parameters::default_values())
 
template<typename Graph , typename NamedParameters = CGAL::parameters::Default_named_parameters>
bool write_off (std::ostream &os, const Graph &g, const NamedParameters &np=parameters::default_values())
 
template<typename Graph , typename NamedParameters = CGAL::parameters::Default_named_parameters>
bool write_off (const char *fname, const Graph &g, const NamedParameters &np=parameters::default_values())
 
template<typename Graph , typename NamedParameters = CGAL::parameters::Default_named_parameters>
bool write_vtp (std::ostream &os, const Graph &g, const NamedParameters &np=parameters::default_values())
 
template<typename Graph , typename NamedParameters = CGAL::parameters::Default_named_parameters>
bool write_wrl (std::ostream &os, const Graph &g, const NamedParameters &np=parameters::default_values())
 
template<typename InputGraph , typename EdgeCostMap , typename VertexLabelCostMap , typename VertexLabelMap , typename NamedParameters = parameters::Default_named_parameters>
double alpha_expansion_graphcut (const InputGraph &input_graph, EdgeCostMap edge_cost_map, VertexLabelCostMap vertex_label_cost_map, VertexLabelMap vertex_label_map, const NamedParameters &np=parameters::default_values())
 regularizes a partition of a graph into n labels using the alpha expansion algorithm [1].
 

Definition

CGAL Namespace.