CGAL 4.7 - Halfedge Data Structures: HalfedgeDSFace Concept 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 - Halfedge Data Structures

All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Groups Pages
List of all members
HalfedgeDSFace Concept Reference
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`.