CGAL 6.1 - Halfedge Data Structures

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

## Definition

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

A face optionally stores a reference to an incident halfedge that points to the face. 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 can be bypassed by the user, but not by accident.)

Refines
  `CopyConstructible`
  `DefaultConstructible`

Has models
  `CGAL::HalfedgeDS_face_base<Refs>`
  `CGAL::HalfedgeDS_face_min_base<Refs>`

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

## Types
typedef unspecified_type | HalfedgeDS
| instantiated `HalfedgeDS` ( \( \equiv\) `Refs`).
typedef unspecified_type | Base
| base class that allows modifications.
typedef unspecified_type | Vertex
| model of `HalfedgeDSVertex`.
typedef unspecified_type | Halfedge
| model of `HalfedgeDSHalfedge`.
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_face_halfedge
| `CGAL::Tag_true` or `CGAL::Tag_false`.

## Creation
| Face ()
| default constructor.

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