CGAL 6.2 - Halfedge Data Structures: HalfedgeDSItems Concept Reference

CGAL 6.2 - Halfedge Data Structures

Loading...
Searching...
No Matches
List of all members
HalfedgeDSItems Concept Reference
Reference Manual » Concepts

## Definition

The concept `HalfedgeDSItems` wraps the three item types - vertex, halfedge, and face - for a halfedge data structure. A `HalfedgeDSItems` contains three member class templates named `Vertex_wrapper`, `Halfedge_wrapper`, and `Face_wrapper`, each with two template parameters, `Refs` and `Traits`. `Refs` requires an instantiated halfedge data structure `HalfedgeDS` as argument, `Traits` is a geometric traits class supplied by the class that uses the halfedge data structure as internal representation. `Traits` is not used by the halfedge data structure itself. These three member class templates provide a local type named `Vertex`, `Halfedge`, and `Face` respectively. The requirements on these types are described on the manual pages of the concepts `HalfedgeDSVertex`, `HalfedgeDSHalfedge`, and `HalfedgeDSFace` respectively.

Has models
  `CGAL::HalfedgeDS_min_items`
  `CGAL::HalfedgeDS_items_2`
  `CGAL::Polyhedron_items_3`

See also
  `HalfedgeDS<Traits,Items,Alloc>`
  `HalfedgeDSVertex`
  `HalfedgeDSHalfedge`
  `HalfedgeDSFace`
  `PolyhedronItems_3`
  `CGAL::HalfedgeDS_vertex_base<Refs>`
  `CGAL::HalfedgeDS_halfedge_base<Refs>`
  `CGAL::HalfedgeDS_face_base<Refs>`

Example

The following example shows the canonical implementation of the `CGAL::HalfedgeDS_min_items` class. It uses the base classes for the item types that are provided in the library.

struct HalfedgeDS_min_items {
template < class Refs, class Traits>
struct Vertex_wrapper {
typedef CGAL::HalfedgeDS_vertex_min_base< Refs> Vertex;
};
template < class Refs, class Traits>
struct Halfedge_wrapper {
typedef CGAL::HalfedgeDS_halfedge_min_base< Refs> Halfedge;
};
template < class Refs, class Traits>
struct Face_wrapper {
typedef CGAL::HalfedgeDS_face_min_base< Refs> Face;
};
};
CGAL::HalfedgeDS_face_min_base
The class HalfedgeDS_face_min_base is a model of the HalfedgeDSFace concept.
Definition: HalfedgeDS_face_min_base.h:24
CGAL::HalfedgeDS_halfedge_min_base
The class HalfedgeDS_halfedge_min_base is a model of the HalfedgeDSHalfedge concept.
Definition: HalfedgeDS_halfedge_min_base.h:25
CGAL::HalfedgeDS_vertex_min_base
The class HalfedgeDS_vertex_min_base is a model of the HalfedgeDSVertex concept.
Definition: HalfedgeDS_vertex_min_base.h:24
HalfedgeDSItems::Vertex
Vertex_wrapper< Refs, Traits >::Vertex Vertex
model of HalfedgeDSVertex.
Definition: HalfedgeDSItems.h:72

See `CGAL::HalfedgeDS_items_2` for an example implementation.

## Types
typedef Vertex_wrapper< Refs, Traits >::Vertex | Vertex
| model of `HalfedgeDSVertex`.
typedef Halfedge_wrapper< Refs, Traits >::Halfedge | Halfedge
| model of `HalfedgeDSHalfedge`.
typedef Face_wrapper< Refs, Traits >::Face | Face
| model of `HalfedgeDSFace`.