\( \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.3 - Halfedge Data Structures
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Groups Pages
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.