CGAL 4.12 - 2D Arrangements
ArrangementDcelFace Concept Reference

## Definition

A face record in a Dcel data structure. A face may either be unbounded, otherwise it has an incident halfedge along the chain defining its outer boundary. A face may also contain holes and isolated vertices in its interior.

See also
ArrangementDcel
ArrangementDcelVertex
ArrangementDcelHalfedge

## Types

The non-mutable iterators Hole_const_iterator, and Isolated_vertex_const_iterator are also defined.

typedef unspecified_type Vertex
the corresponding Dcel vertex type.

typedef unspecified_type Halfedge
the corresponding Dcel halfedge type.

typedef unspecified_type Hole_iterator
a bidirectional iterator over the holes in inside the face. More...

typedef unspecified_type Isolated_vertex_iterator
a bidirectional iterator over the isolated vertices in inside the face. More...

## Creation

Arr_dcel_face ()
default constructor.

void assign (const Self &other)
assigns f with the contents of the other face.

## Access Functions

All functions below also have const counterparts, returning non-mutable pointers or iterators:

bool is_unbounded () const
returns whether the face is unbounded.

Halfedgehalfedge ()
returns an incident halfedge along the outer boundary of the face. More...

size_t number_of_holes () const
returns the number of holes inside f.

Hole_iterator holes_begin ()
returns a begin-iterator for the holes inside f.

Hole_iterator holes_end ()
returns a past-the-end iterator for the holes inside f.

size_t number_of_isolated_vertices () const
returns the number of isolated vertices inside f.

Isolated_vertex_iterator isolated_vertices_begin ()
returns a begin-iterator for the isolated vertices inside f.

Isolated_vertex_iterator isolated_vertices_end ()
returns a past-the-end iterator for the isolated vertices inside f.

## Modifiers

void set_unbounded (bool flag)
sets the face as unbounded (if flag is true), or as a bounded face (if it is false).

void set_halfedge (Halfedge *e)
sets the incident halfedge.

void add_hole (Halfedge *e)
adds e as a hole inside f.

void erase_hole (Hole_iterator it)
removes the hole that it points to from inside f.

void add_isolated_vertex (Vertex *v)
adds v as an isolated vertex inside f.

void erase_isolated_vertex (Isolated_vertex_iterator it)
removes the isolated vertex that it points to from inside f.

## ◆ Hole_iterator

a bidirectional iterator over the holes in inside the face.

Its value-type is Halfedge*.

## ◆ Isolated_vertex_iterator

a bidirectional iterator over the isolated vertices in inside the face.

Its value-type is Vertex*.

## ◆ halfedge()

 Halfedge* ArrangementDcelFace::halfedge ( )

returns an incident halfedge along the outer boundary of the face.

If f has no outer boundary, the function returns NULL.