\( \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.12 - Halfedge Data Structures
HalfedgeDSFace Concept Reference

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.