CGAL 5.6 - 2D Arrangements
CGAL::Arrangement_on_surface_2< GeometryTraits, TopologyTraits >::Face Class Reference

#include <CGAL/Arrangement_on_surface_2.h>

Inherits from

Face.

Definition

An object of the class Face represents an arrangement face, namely, a \(2\)-dimensional arrangement cell.

An arrangement that supports only bounded curves contains exactly one unbounded face, and a number of bounded faces. An arrangement that supports also unbounded curves has one or more unbounded faces. Such an arrangement has also exactly one fictitious face, which does not correspond to a real two-dimensional cell of the arrangement (and thus it is ignored in counting the number of faces of the arrangement.) Each bounded face has an outer boundary comprising a halfedge chain winding in counterclockwise orientation around it. Each unbounded face of an arrangement that has a fictitious face also has a boundary comprising a counterclockwise halfedge-chain. The edges on the boundary of a face incident to the fictitious face are fictitious, as they do not correspond to real curves. A face may also contain holes, which are defined by clockwise-oriented halfedge chains, and isolated vertices.

Types inherited from the base Dcel::Face

typedef Base::Inner_ccb_iterator Inner_ccb_iterator
 a bidirectional iterator over the inner CCBs of the face. More...
 
typedef Base::Outer_ccb_iterator Outer_ccb_iterator
 a bidirectional iterator over the outer CCBs of the face. More...
 
typedef Base::Hole_iterator Hole_iterator
 a bidirectional iterator over the holes (i.e., inner CCBs) contained inside the face. More...
 
typedef Base::Isolated_vertex_iterator Isolated_vertex_iterator
 a bidirectional iterator over the isolated vertices contained inside the face. More...
 

Creation

 Face ()
 default constructor. More...
 

Access Functions

All non-const methods listed below also have const counterparts that return constant handles, iterators or circulators:

bool is_fictitious () const
 obtains a Boolean indicating whether this is the fictitious face, which contain the entire arrangement (and does not have an outer CCB). More...
 
bool is_unbounded () const
 obtains a Boolean indicating whether the face is unbounded. More...
 
Size number_of_outer_ccbs () const
 obtains the number of outer CCBs of the face. More...
 
Outer_ccb_iterator outer_ccbs_begin ()
 obtains a begin iterator for the outer CCBs of the face. More...
 
Outer_ccb_iterator outer_ccbs_end ()
 obtains a past-the-end iterator for the outer CCBs. More...
 
Size number_of_inner_ccbs () const
 obtains the number of inner CCBs of the face. More...
 
Inner_ccb_iterator inner_ccbs_begin ()
 obtains a begin iterator for the inner CCBs of the face. More...
 
Inner_ccb_iterator inner_ccbs_end ()
 obtains a past-the-end iterator for the inner CCBs. More...
 
bool has_outer_ccb () const
 indicates whether the face has an outer CCB. More...
 
Ccb_halfedge_circulator outer_ccb ()
 obtains a circulator that enables traversing the outer boundary of f. More...
 
Size number_of_holes () const
 obtains the number of holes (inner CCBs) inside the face. More...
 
Hole_iterator holes_begin ()
 obtains an iterator for traversing all the holes (inner CCBs) of f. More...
 
Hole_iterator holes_end ()
 obtains a past-the-end iterator for the holes of f. More...
 
Isolated_vertex_iterator isolated_vertices_begin ()
 obtains an iterator for traversing all the isolated vertices contained in the interior of f.
 
Isolated_vertex_iterator isolated_vertices_end ()
 obtains a past-the-end iterator for the isolated vertices contained inside f.
 

Member Typedef Documentation

◆ Hole_iterator

template<typename GeometryTraits, typename TopologyTraits>
typedef Base::Hole_iterator CGAL::Arrangement_on_surface_2< GeometryTraits, TopologyTraits >::Face::Hole_iterator

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

Its value type is Ccb_halfedge_circulator.

◆ Inner_ccb_iterator

template<typename GeometryTraits, typename TopologyTraits>
typedef Base::Inner_ccb_iterator CGAL::Arrangement_on_surface_2< GeometryTraits, TopologyTraits >::Face::Inner_ccb_iterator

a bidirectional iterator over the inner CCBs of the face.

Its value type is Ccb_halfedge_circulator.

◆ Isolated_vertex_iterator

template<typename GeometryTraits, typename TopologyTraits>
typedef Base::Isolated_vertex_iterator CGAL::Arrangement_on_surface_2< GeometryTraits, TopologyTraits >::Face::Isolated_vertex_iterator

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

Its value type is Vertex.

◆ Outer_ccb_iterator

template<typename GeometryTraits, typename TopologyTraits>
typedef Base::Outer_ccb_iterator CGAL::Arrangement_on_surface_2< GeometryTraits, TopologyTraits >::Face::Outer_ccb_iterator

a bidirectional iterator over the outer CCBs of the face.

Its value type is Ccb_halfedge_circulator.

Constructor & Destructor Documentation

◆ Face()

template<typename GeometryTraits, typename TopologyTraits>
CGAL::Arrangement_on_surface_2< GeometryTraits, TopologyTraits >::Face::Face ( )

default constructor.

Member Function Documentation

◆ has_outer_ccb()

template<typename GeometryTraits, typename TopologyTraits>
bool CGAL::Arrangement_on_surface_2< GeometryTraits, TopologyTraits >::Face::has_outer_ccb ( ) const

indicates whether the face has an outer CCB.

(The fictitious face and the unbounded face of an arrangement that does not have a fictitious face do not have outer CCBs.)

◆ holes_begin()

template<typename GeometryTraits, typename TopologyTraits>
Hole_iterator CGAL::Arrangement_on_surface_2< GeometryTraits, TopologyTraits >::Face::holes_begin ( )

obtains an iterator for traversing all the holes (inner CCBs) of f.

◆ holes_end()

template<typename GeometryTraits, typename TopologyTraits>
Hole_iterator CGAL::Arrangement_on_surface_2< GeometryTraits, TopologyTraits >::Face::holes_end ( )

obtains a past-the-end iterator for the holes of f.

◆ inner_ccbs_begin()

template<typename GeometryTraits, typename TopologyTraits>
Inner_ccb_iterator CGAL::Arrangement_on_surface_2< GeometryTraits, TopologyTraits >::Face::inner_ccbs_begin ( )

obtains a begin iterator for the inner CCBs of the face.

◆ inner_ccbs_end()

template<typename GeometryTraits, typename TopologyTraits>
Inner_ccb_iterator CGAL::Arrangement_on_surface_2< GeometryTraits, TopologyTraits >::Face::inner_ccbs_end ( )

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

◆ is_fictitious()

template<typename GeometryTraits, typename TopologyTraits>
bool CGAL::Arrangement_on_surface_2< GeometryTraits, TopologyTraits >::Face::is_fictitious ( ) const

obtains a Boolean indicating whether this is the fictitious face, which contain the entire arrangement (and does not have an outer CCB).

An arrangement that supports only bounded curves does not have a fictitious face at all.

◆ is_unbounded()

template<typename GeometryTraits, typename TopologyTraits>
bool CGAL::Arrangement_on_surface_2< GeometryTraits, TopologyTraits >::Face::is_unbounded ( ) const

obtains a Boolean indicating whether the face is unbounded.

◆ number_of_holes()

template<typename GeometryTraits, typename TopologyTraits>
Size CGAL::Arrangement_on_surface_2< GeometryTraits, TopologyTraits >::Face::number_of_holes ( ) const

obtains the number of holes (inner CCBs) inside the face.

◆ number_of_inner_ccbs()

template<typename GeometryTraits, typename TopologyTraits>
Size CGAL::Arrangement_on_surface_2< GeometryTraits, TopologyTraits >::Face::number_of_inner_ccbs ( ) const

obtains the number of inner CCBs of the face.

◆ number_of_outer_ccbs()

template<typename GeometryTraits, typename TopologyTraits>
Size CGAL::Arrangement_on_surface_2< GeometryTraits, TopologyTraits >::Face::number_of_outer_ccbs ( ) const

obtains the number of outer CCBs of the face.

◆ outer_ccb()

template<typename GeometryTraits, typename TopologyTraits>
Ccb_halfedge_circulator CGAL::Arrangement_on_surface_2< GeometryTraits, TopologyTraits >::Face::outer_ccb ( )

obtains a circulator that enables traversing the outer boundary of f.

The edges along the CCB are traversed in a counterclockwise direction.

Precondition
The face f has an outer CCB.

◆ outer_ccbs_begin()

template<typename GeometryTraits, typename TopologyTraits>
Outer_ccb_iterator CGAL::Arrangement_on_surface_2< GeometryTraits, TopologyTraits >::Face::outer_ccbs_begin ( )

obtains a begin iterator for the outer CCBs of the face.

◆ outer_ccbs_end()

template<typename GeometryTraits, typename TopologyTraits>
Outer_ccb_iterator CGAL::Arrangement_on_surface_2< GeometryTraits, TopologyTraits >::Face::outer_ccbs_end ( )

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