CGAL 6.1 - Halfedge Data Structures

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

## Definition

The concept `HalfedgeDSVertex` defines the requirements for the local `Vertex` type in the `HalfedgeDS` concept. It is also required in the `Vertex_wrapper<Refs,Traits>` member class template of an items class, see the `HalfedgeDSItems` concept.

A vertex optionally stores a reference to an incident halfedge that points to the vertex. A type tag indicates whether the related member functions are supported. Figure figureHalfedgeDSOptionalMethods depicts the relationship between a halfedge and its incident halfedges, vertices, and faces.

For the protection of the integrity of the data structure classes such as `CGAL::Polyhedron_3` are allowed to redefine the modifying member functions to be private. In order to make them accessible for the halfedge data structure they must be derived from a base class `Base` where the modifying member functions are still public. (The protection could be bypassed by an user, but not by accident.)

Refines
  `CopyConstructible`
  `DefaultConstructible`

Has models
  `CGAL::HalfedgeDS_vertex_base<Refs>`
  `CGAL::HalfedgeDS_vertex_min_base<Refs>`

See also
  `HalfedgeDS<Traits,Items,Alloc>`
  `HalfedgeDSItems`
  `HalfedgeDSHalfedge`
  `HalfedgeDSFace`

## Types
typedef unspecified_type | HalfedgeDS
| instantiated `HalfedgeDS` ( \( \equiv\) `Refs`).
typedef unspecified_type | Base
| base class that allows modifications.
typedef unspecified_type | Halfedge
| model of `HalfedgeDSHalfedge`.
typedef unspecified_type | Face
| model of `HalfedgeDSFace`.
typedef unspecified_type | Vertex_handle
| handle to vertex.
typedef unspecified_type | Halfedge_handle
| handle to halfedge.
typedef unspecified_type | Face_handle
| handle to face.
typedef unspecified_type | Vertex_const_handle
typedef unspecified_type | Halfedge_const_handle
typedef unspecified_type | Face_const_handle
typedef unspecified_type | Supports_vertex_halfedge
| `CGAL::Tag_true` or `CGAL::Tag_false`.

## Creation
| Vertex ()
| default constructor.

## Operations available if Supports_vertex_halfedge == CGAL::Tag_true
Halfedge_handle | halfedge ()
Halfedge_const_handle | halfedge () const
| incident halfedge that points to the vertex.
void | set_halfedge (Halfedge_handle h)
| sets incident halfedge to `h`.