CGAL 4.9.1 - CGAL and the Boost Graph Library
|
Namespaces | |
Euler | |
internal | |
Operation on faces. | |
Classes | |
class | halfedge_graph_traits< Polyhedron_3< Traits > > |
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... | |
class | Polyhedron_items_with_id_3 |
The class Polyhedron_items_with_id_3 is a model of the PolyhedronItems_3 concept. 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 | 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_iterator |
A bidirectional iterator with value type boost::graph_traits<Graph>::halfedge_descriptor over all halfedges having the same vertex as target. 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_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_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 | 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 | 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 | Face_around_face_iterator |
A bidirectional iterator with value type boost::graph_traits<Graph>::face_descriptor . More... | |
class | Face_around_face_circulator |
A bidirectional circulator with value type boost::graph_traits<Graph>::face_descriptor . More... | |
class | Face_around_target_iterator |
class | Vertex_around_face_circulator |
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 | Opposite_edge_around_face_iterator |
class | Edge_around_face_iterator |
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 |
class | Out_edge_iterator |
class | In_edge_iterator |
class | Dual |
The class template Dual is an adaptor that creates the dual view of a FaceGraph . More... | |
struct | Property_map_value_dummy |
Functions | |
template<class HalfedgeDS_with_id > | |
void | set_halfedgeds_items_id (HalfedgeDS_with_id &hds) |
Given a CGAL::Polyhedron_3 or more generally a model of HalfedgeDS , 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 Graph > | |
Iterator_range < Halfedge_around_source_iterator < Graph > > | halfedges_around_source (typename boost::graph_traits< Graph >::halfedge_descriptor h, 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, 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 < Opposite_edge_around_face_iterator < Graph > > | opposite_edges_around_face (typename boost::graph_traits< Graph >::halfedge_descriptor h, const Graph &g) |
template<typename Graph > | |
Iterator_range < Edge_around_face_iterator < Graph > > | edges_around_face (typename boost::graph_traits< Graph >::halfedge_descriptor h, const Graph &g) |
template<typename Graph > | |
Iterator_range < Vertex_around_target_iterator < Graph > > | adjacent_vertices (typename boost::graph_traits< Graph >::halfedge_descriptor h, const Graph &g) |
template<typename Graph > | |
Iterator_range < Vertex_around_target_iterator < Graph > > | adjacent_vertices (typename boost::graph_traits< Graph >::vertex_descriptor v, const Graph &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_target_iterator < Graph > > | vertices_around_target (typename boost::graph_traits< Graph >::vertex_descriptor v, const Graph &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 FaceGraph > | |
bool | is_valid_halfedge_descriptor (typename boost::graph_traits< FaceGraph >::halfedge_descriptor h, const FaceGraph &g) |
template<typename FaceGraph > | |
bool | is_valid_vertex_descriptor (typename boost::graph_traits< FaceGraph >::vertex_descriptor v, const FaceGraph &g) |
template<typename FaceGraph > | |
bool | is_valid_face_descriptor (typename boost::graph_traits< FaceGraph >::face_descriptor f, const FaceGraph &g) |
template<typename FaceGraph > | |
bool | is_valid_polygon_mesh (const FaceGraph &g) |
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 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 border edges in g having p0 , p1 , and p2 as points 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 border edges in g having p0 , p1 , p2 , and p3 as points 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 in g having p0 , p1 , ... , and p7 as points 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 in g having p0 , p1 , p2 , and p3 as points and adds it to the graph g . More... | |
template<typename FaceGraph > | |
void | clear (FaceGraph &g) |
removes all vertices, faces and halfedges from a graph. 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<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) |
Operations on edges. 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) |
Operations on vertices. 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<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 Graph , typename Visitor , typename IsTerminal , typename LessForVertexDescriptors > | |
void | split_graph_into_polylines (const Graph &graph, Visitor &polyline_visitor, IsTerminal is_terminal, LessForVertexDescriptors less) |
template<typename SourceMesh , typename TargetMesh , typename V2V = Emptyset_iterator, typename H2H = Emptyset_iterator, typename F2F = Emptyset_iterator> | |
void | copy_face_graph (const SourceMesh &sm, TargetMesh &tm, V2V v2v=V2V(), H2H h2h=H2H(), F2F f2f=F2F()) |
copies a source model of FaceListGraph into a target model of a FaceListGraph . More... | |
template<typename P , typename Property > | |
boost::property_map< P, Property >::type | get (Property p, Dual< P > &dual) |
template<typename P , typename Property > | |
boost::property_map< P, Property >::const_type | get (Property p, const Dual< P > &dual) |
template<typename P , typename Property , typename Key > | |
boost::property_map_value< P, Property >::type | get (Property p, const Dual< P > &dual, const Key &k) |
template<typename P , typename Key > | |
Property_map_value_dummy< Dual < P >, boost::vertex_index_t, Key >::type | get (boost::vertex_index_t, const Dual< P > &dual, const Key &k) |
template<typename P , typename Key > | |
Property_map_value_dummy< Dual < P >, boost::face_index_t, Key >::type | get (boost::face_index_t, const Dual< P > &dual, const Key &k) |
template<typename P , typename Property , typename Key , typename Value > | |
void | put (Property p, const Dual< P > &dual, const Key &k, const Value &val) |
template<typename P > | |
boost::internal::Dual_vertex_index_pmap < P > | get (boost::vertex_index_t, const Dual< P > &dual) |
template<typename P > | |
boost::internal::Dual_face_index_pmap < P > | get (boost::face_index_t, const Dual< P > &dual) |
template<typename P > | |
boost::graph_traits < CGAL::Dual< P > >::vertices_size_type | num_vertices (const CGAL::Dual< P > &dual) |
template<typename P > | |
boost::graph_traits < CGAL::Dual< P > >::edges_size_type | num_edges (const CGAL::Dual< P > &dual) |
template<typename P > | |
boost::graph_traits < CGAL::Dual< P > >::halfedges_size_type | num_halfedges (const CGAL::Dual< P > &dual) |
template<typename P > | |
boost::graph_traits < CGAL::Dual< P > >::faces_size_type | num_faces (const CGAL::Dual< P > &dual) |
template<typename P > | |
Iterator_range< typename boost::graph_traits< Dual< P > >::vertex_iterator > | vertices (const CGAL::Dual< P > &dual) |
template<typename P > | |
Iterator_range< typename boost::graph_traits< Dual< P > >::face_iterator > | faces (const CGAL::Dual< P > &dual) |
template<typename P > | |
Iterator_range< typename boost::graph_traits< Dual< P > >::halfedge_iterator > | halfedges (const CGAL::Dual< P > &dual) |
template<typename P > | |
Iterator_range< typename boost::graph_traits< Dual< P > >::edge_iterator > | edges (const CGAL::Dual< P > &dual) |
template<typename P > | |
std::pair< typename boost::graph_traits< Dual< P > >::edge_descriptor, bool > | edge (typename boost::graph_traits< Dual< P > >::vertex_descriptor u, typename boost::graph_traits< Dual< P > >::vertex_descriptor v, const Dual< P > &dual) |
template<typename P > | |
boost::graph_traits< Dual< P > >::edge_descriptor | edge (typename boost::graph_traits< Dual< P > >::halfedge_descriptor h, const Dual< P > &dual) |
template<typename P > | |
boost::graph_traits< Dual< P > >::vertex_descriptor | source (typename boost::graph_traits< Dual< P > >::halfedge_descriptor h, const Dual< P > &dual) |
template<typename P > | |
boost::graph_traits< Dual< P > >::vertex_descriptor | target (typename boost::graph_traits< Dual< P > >::halfedge_descriptor h, const Dual< P > &dual) |
template<typename P > | |
boost::graph_traits< Dual< P > >::vertex_descriptor | source (typename boost::graph_traits< Dual< P > >::edge_descriptor h, const Dual< P > &dual) |
template<typename P > | |
boost::graph_traits< Dual< P > >::vertex_descriptor | target (typename boost::graph_traits< Dual< P > >::edge_descriptor h, const Dual< P > &dual) |
template<typename P > | |
boost::graph_traits< Dual< P > >::halfedge_descriptor | halfedge (typename boost::graph_traits< Dual< P > >::vertex_descriptor v, const Dual< P > &dual) |
template<typename P > | |
boost::graph_traits< Dual< P > >::halfedge_descriptor | halfedge (typename boost::graph_traits< Dual< P > >::face_descriptor f, const Dual< P > &dual) |
template<typename P > | |
boost::graph_traits< Dual< P > >::halfedge_descriptor | halfedge (typename boost::graph_traits< Dual< P > >::edge_descriptor e, const Dual< P > &dual) |
template<typename P > | |
std::pair< typename boost::graph_traits< Dual< P > >::halfedge_descriptor, bool > | halfedge (typename boost::graph_traits< Dual< P > >::vertex_descriptor u, typename boost::graph_traits< Dual< P > >::vertex_descriptor v, const Dual< P > &dual) |
template<typename P > | |
boost::graph_traits< Dual< P > >::face_descriptor | face (typename boost::graph_traits< Dual< P > >::halfedge_descriptor h, const Dual< P > &dual) |
template<typename P > | |
boost::graph_traits< Dual< P > >::halfedge_descriptor | opposite (typename boost::graph_traits< Dual< P > >::halfedge_descriptor h, const Dual< P > &dual) |
template<typename P > | |
boost::graph_traits< Dual< P > >::halfedge_descriptor | next (typename boost::graph_traits< Dual< P > >::halfedge_descriptor h, const Dual< P > &dual) |
template<typename P > | |
boost::graph_traits< Dual< P > >::halfedge_descriptor | prev (typename boost::graph_traits< Dual< P > >::halfedge_descriptor h, const Dual< P > &dual) |
template<typename P > | |
Iterator_range< typename boost::graph_traits< Dual< P > >::out_edge_iterator > | out_edges (typename boost::graph_traits< Dual< P > >::vertex_descriptor v, const Dual< P > &dual) |
template<typename P > | |
Iterator_range< typename boost::graph_traits< Dual< P > >::in_edge_iterator > | in_edges (typename boost::graph_traits< Dual< P > >::vertex_descriptor v, const Dual< P > &dual) |
template<typename P > | |
boost::graph_traits< Dual< P > >::degree_size_type | out_degree (typename boost::graph_traits< Dual< P > >::vertex_descriptor v, const Dual< P > &dual) |
template<typename P > | |
boost::graph_traits< Dual< P > >::degree_size_type | in_degree (typename boost::graph_traits< Dual< P > >::vertex_descriptor v, const Dual< P > &dual) |
template<typename HalfedgeGraph , typename PositionMap , typename NormalMap > | |
void | calculate_face_normals (const HalfedgeGraph &g, PositionMap pm, NormalMap nm) |
template<typename HalfedgeGraph , typename Position , typename Normal , typename Boundary > | |
void | calculate_vertex_normals (const HalfedgeGraph &g, Position position_map, Normal normal_map, Boundary boundary_map) |
template<typename HalfedgeGraph > | |
Kernel_traits< typename boost::property_traits < typename boost::property_map < HalfedgeGraph, CGAL::vertex_point_t > ::const_type >::value_type > ::Kernel::Triangle_3 | triangle (const HalfedgeGraph &g, typename boost::graph_traits< HalfedgeGraph >::halfedge_descriptor h) |
Convenience function that calls triangle() with the property map obtained by get(CGAL::vertex_point, g) . More... | |
template<typename HalfedgeGraph , typename PositionMap > | |
Kernel_traits< typename boost::property_traits < PositionMap >::value_type > ::Kernel::Triangle_3 | triangle (const HalfedgeGraph &g, typename boost::graph_traits< HalfedgeGraph >::halfedge_descriptor h, const PositionMap &pm) |
triangle() returns a Triangle_3 constructed from the positions of the vertex_descriptors around the face incident to h in counter-clockwise direction. More... | |
Kernel_traits< typename boost::property_traits< typename boost::property_map< HalfedgeGraph, CGAL::vertex_point_t>::const_type >::value_type >::Kernel::Triangle_3 CGAL::triangle | ( | const HalfedgeGraph & | g, |
typename boost::graph_traits< HalfedgeGraph >::halfedge_descriptor | h | ||
) |
Convenience function that calls triangle()
with the property map obtained by get(CGAL::vertex_point, g)
.
Kernel_traits<typename boost::property_traits<PositionMap>::value_type>::Kernel::Triangle_3 CGAL::triangle | ( | const HalfedgeGraph & | g, |
typename boost::graph_traits< HalfedgeGraph >::halfedge_descriptor | h, | ||
const PositionMap & | pm | ||
) |
triangle()
returns a Triangle_3
constructed from the positions of the vertex_descriptors
around the face incident to h
in counter-clockwise direction.
The Kernel of the returned Triangle_3
is the same as the Kernel of the value_type
of the.
PositionMap | must be a model of ReadablePropertyMap. Its value_type must be a model of Kernel::Point_3 |
HalfedgeGraph | must be a model of HalfedgeGraph. |
g | The graph |
h | The halfedge |
pm | The map used to find the vertices of the triangle. |