CGAL 4.7 - CGAL and the Boost Graph Library: CGAL Namespace Reference

\( \newcommand{\E}{\mathrm{E}} \) \( \newcommand{\A}{\mathrm{A}} \) \( \newcommand{\R}{\mathrm{R}} \) \( \newcommand{\N}{\mathrm{N}} \) \( \newcommand{\Q}{\mathrm{Q}} \) \( \newcommand{\Z}{\mathrm{Z}} \) \( \def\ccSum #1#2#3{ \sum_{#1}^{#2}{#3} } \def\ccProd #1#2#3{ \sum_{#1}^{#2}{#3} }\)

CGAL 4.7 - CGAL and the Boost Graph Library

All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Groups Pages
Namespaces | Classes | Enumerations | Functions
CGAL Namespace Reference

## Namespaces

| Euler

## 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 | 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

## Enumerations

enum | vertex_is_border_t { vertex_is_border }
| The constant `vertex_is_border` is a property tag which refers to the property of a vertex of being a border vertex. More...
enum | vertex_point_t { vertex_point }
| The constant `vertex_point` is a property tag which refers to the geometric embedding property of a vertex of a `HalfedgeGraph`. More...

## 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, 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 < 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 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...

## Enumeration Type Documentation

enum CGAL::vertex_is_border_t

The constant `vertex_is_border` is a property tag which refers to the property of a vertex of being a border vertex.

`vertex_is_border` is an interior property, that is, a property map for `vertex_is_border` can be extracted from any model of a `HalfedgeGraph` using the Bgl PropertyGraph interface: `boost::get(vertex_is_border,graph)`

The Boolean flag that indicates if the vertex is a border can be directly accessed via: `boost::get(vertex_is_border,graph,edge)`

Enumerator
vertex_is_border |

enum CGAL::vertex_point_t

The constant `vertex_point` is a property tag which refers to the geometric embedding property of a vertex of a `HalfedgeGraph`.

A `vertex_point` is an interior property, that is, a property map for a `vertex_point` can be extracted from any model of a `HalfedgeGraph` using the Bgl PropertyGraph interface: `boost::get(vertex_point,graph)`

A point of a vertex can be directly accessed via:

- `boost::get(vertex_point,graph,vertex)`
- `boost::put(vertex_point,graph,vertex,newpoint)`

Enumerator
vertex_point |

## Function Documentation

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 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)`.

template<typename HalfedgeGraph , typename PositionMap >

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.

Precondition
  The face incident to h is triangular.

Template Parameters

  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.

Parameters

  g | The graph
  h | The halfedge
  pm | The map used to find the vertices of the triangle.