ArrangementDcelFace

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.

Types

ArrangementDcelFace::Vertex
the corresponding DCEL vertex type.

ArrangementDcelFace::Halfedge
the corresponding DCEL halfedge type.


ArrangementDcelFace::Hole_iterator
a bidirectional iterator over the holes in inside the face. Its value-type is Halfedge*.


ArrangementDcelFace::Isolated_vertex_iterator
a bidirectional iterator over the isolated vertices in inside the face. Its value-type is Vertex*.

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

Creation

ArrangementDcelFace f;
default constructor.

void f.assign ( 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 f.is_unbounded () returns whether the face is unbounded.

Halfedge* f.halfedge () returns an incident halfedge along the outer boundary of the face. If f has no outer boundary, the function returns NULL.

size_t f.number_of_holes () returns the number of holes inside f.
Hole_iterator f.holes_begin () returns a begin-iterator for the holes inside f.
Hole_iterator f.holes_end () returns a past-the-end iterator for the holes inside f.

size_t f.number_of_isolated_vertices () returns the number of isolated vertices inside f.
Isolated_vertex_iterator f.isolated_vertices_begin () returns a begin-iterator for the isolated vertices inside f.
Isolated_vertex_iterator f.isolated_vertices_end () returns a past-the-end iterator for the isolated vertices inside f.

Modifiers

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

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

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

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

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

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

See Also

ArrangementDcel
ArrangementDcelVertex
ArrangementDcelHalfedge