CGAL 5.4.4 - 2D Arrangements
ArrangementDcelFace Concept Reference

Definition

A face record in a DCEL data structure. A face represents a region, which may have outer and inner boundaries. A boundary conists of a chain of incident halfedges, referred to as a Connected Component of the Boundary (CCB). A face may be unbounded. Otherwise, it has one or more outer CCBs. A face may also be bounded by inner CCBs, and it may contain isolated vertices in its interior. A planar face may have only one outer CCBs and its inner CCBs are refered to as holes.

See also
ArrangementDcel
ArrangementDcelVertex
ArrangementDcelHalfedge

Types

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

typedef unspecified_type Vertex
 the corresponding DCEL vertex type. More...
 
typedef unspecified_type Halfedge
 the corresponding DCEL halfedge type. More...
 
typedef unspecified_type Outer_ccb_iterator
 a bidirectional iterator over the outer CCBs of the face. More...
 
typedef unspecified_type Inner_ccb_iterator
 a bidirectional iterator over the inner CCBs of the face. More...
 
typedef unspecified_type Hole_iterator
 a bidirectional iterator over the holes (i.e., inner CCBs) of 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. More...
 
void assign (const Self &other)
 assigns f with the contents of the other face. More...
 

Access Functions

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

bool is_unbounded () const
 determines whether the face is unbounded. More...
 
Halfedgehalfedge ()
 obtains an incident halfedge along the outer boundaries of the face. More...
 
size_t number_of_outer_ccbs () const
 obtains the number of outer CCBs of f. More...
 
Outer_ccb_iterator outer_ccbs_begin ()
 obtains a begin iterator for the outer CCBs of f. More...
 
Outer_ccb_iterator outer_ccbs_end ()
 obtains a past-the-end iterator for the outer CCBs of f. More...
 
size_t number_of_inner_ccbs () const
 obtains the number of inner CCBs of f. More...
 
Inner_ccb_iterator inner_ccbs_begin ()
 obtains a begin iterator for the inner CCBs of f. More...
 
Inner_ccb_iterator inner_ccbs_end ()
 obtains a past-the-end iterator for the inner CCBs of f. More...
 
size_t number_of_holes () const
 obtains the number of holes (i.e., inner CCBs) inside f. More...
 
Hole_iterator holes_begin ()
 obtains a begin-iterator for the holes (i.e., inner CCBs) of f. More...
 
Hole_iterator holes_end ()
 obtains a past-the-end iterator for the holes (i.e., inner CCBs) of f. More...
 
size_t number_of_isolated_vertices () const
 obtains the number of isolated vertices inside f. More...
 
Isolated_vertex_iterator isolated_vertices_begin ()
 obtains a begin-iterator for the isolated vertices inside f. More...
 
Isolated_vertex_iterator isolated_vertices_end ()
 obtains a past-the-end iterator for the isolated vertices inside f. More...
 

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. More...
 
void add_outer_ccb (Halfedge *e)
 adds e as an outer CCB of f. More...
 
void erase_outer_ccb (Outer_ccb_iterator it)
 removes the outer CCB that it points to from f. More...
 
void add_inner_ccb (Halfedge *e)
 adds e as an inner CCB of f. More...
 
void erase_inner_ccb (Inner_ccb_iterator it)
 removes the inner CCB that it points to from f. More...
 
void add_hole (Halfedge *e)
 adds e as a hole (i.e., inner CCB) of f. More...
 
void erase_hole (Hole_iterator it)
 removes the hole (i.e., inner CCB) that it points to from f. More...
 
void add_isolated_vertex (Vertex *v)
 adds v as an isolated vertex inside f. More...
 
void erase_isolated_vertex (Isolated_vertex_iterator it)
 removes the isolated vertex that it points to from inside f. More...
 

Member Typedef Documentation

◆ Halfedge

the corresponding DCEL halfedge type.

◆ Hole_iterator

a bidirectional iterator over the holes (i.e., inner CCBs) of the face.

Its value-type is Halfedge*.

◆ Inner_ccb_iterator

a bidirectional iterator over the inner CCBs of 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*.

◆ Outer_ccb_iterator

a bidirectional iterator over the outer CCBs of the face.

Its value-type is Halfedge*.

◆ Vertex

the corresponding DCEL vertex type.

Member Function Documentation

◆ add_hole()

void ArrangementDcelFace::add_hole ( Halfedge e)

adds e as a hole (i.e., inner CCB) of f.

◆ add_inner_ccb()

void ArrangementDcelFace::add_inner_ccb ( Halfedge e)

adds e as an inner CCB of f.

◆ add_isolated_vertex()

void ArrangementDcelFace::add_isolated_vertex ( Vertex v)

adds v as an isolated vertex inside f.

◆ add_outer_ccb()

void ArrangementDcelFace::add_outer_ccb ( Halfedge e)

adds e as an outer CCB of f.

◆ Arr_dcel_face()

ArrangementDcelFace::Arr_dcel_face ( )

default constructor.

◆ assign()

void ArrangementDcelFace::assign ( const Self &  other)

assigns f with the contents of the other face.

◆ erase_hole()

void ArrangementDcelFace::erase_hole ( Hole_iterator  it)

removes the hole (i.e., inner CCB) that it points to from f.

◆ erase_inner_ccb()

void ArrangementDcelFace::erase_inner_ccb ( Inner_ccb_iterator  it)

removes the inner CCB that it points to from f.

◆ erase_isolated_vertex()

void ArrangementDcelFace::erase_isolated_vertex ( Isolated_vertex_iterator  it)

removes the isolated vertex that it points to from inside f.

◆ erase_outer_ccb()

void ArrangementDcelFace::erase_outer_ccb ( Outer_ccb_iterator  it)

removes the outer CCB that it points to from f.

◆ halfedge()

Halfedge* ArrangementDcelFace::halfedge ( )

obtains an incident halfedge along the outer boundaries of the face.

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

◆ holes_begin()

Hole_iterator ArrangementDcelFace::holes_begin ( )

obtains a begin-iterator for the holes (i.e., inner CCBs) of f.

◆ holes_end()

Hole_iterator ArrangementDcelFace::holes_end ( )

obtains a past-the-end iterator for the holes (i.e., inner CCBs) of f.

◆ inner_ccbs_begin()

Inner_ccb_iterator ArrangementDcelFace::inner_ccbs_begin ( )

obtains a begin iterator for the inner CCBs of f.

◆ inner_ccbs_end()

Inner_ccb_iterator ArrangementDcelFace::inner_ccbs_end ( )

obtains a past-the-end iterator for the inner CCBs of f.

◆ is_unbounded()

bool ArrangementDcelFace::is_unbounded ( ) const

determines whether the face is unbounded.

◆ isolated_vertices_begin()

Isolated_vertex_iterator ArrangementDcelFace::isolated_vertices_begin ( )

obtains a begin-iterator for the isolated vertices inside f.

◆ isolated_vertices_end()

Isolated_vertex_iterator ArrangementDcelFace::isolated_vertices_end ( )

obtains a past-the-end iterator for the isolated vertices inside f.

◆ number_of_holes()

size_t ArrangementDcelFace::number_of_holes ( ) const

obtains the number of holes (i.e., inner CCBs) inside f.

◆ number_of_inner_ccbs()

size_t ArrangementDcelFace::number_of_inner_ccbs ( ) const

obtains the number of inner CCBs of f.

◆ number_of_isolated_vertices()

size_t ArrangementDcelFace::number_of_isolated_vertices ( ) const

obtains the number of isolated vertices inside f.

◆ number_of_outer_ccbs()

size_t ArrangementDcelFace::number_of_outer_ccbs ( ) const

obtains the number of outer CCBs of f.

In case of planar arrangement this is either 0 or 1.

◆ outer_ccbs_begin()

Outer_ccb_iterator ArrangementDcelFace::outer_ccbs_begin ( )

obtains a begin iterator for the outer CCBs of f.

◆ outer_ccbs_end()

Outer_ccb_iterator ArrangementDcelFace::outer_ccbs_end ( )

obtains a past-the-end iterator for the outer CCBs of f.

◆ set_halfedge()

void ArrangementDcelFace::set_halfedge ( Halfedge e)

sets the incident halfedge.