CGAL 5.6.1 - 2D Polygons
GeneralPolygonWithHoles_2 Concept Reference

Definition

Refines
CopyConstructible
Assignable
DefaultConstructible

A model of this concept represents a general polygon with holes. The concept requires the ability to access the general polygon that represents the outer boundary and the general polygons that represent the holes.

Has Models:

CGAL::General_polygon_with_holes_2<Polygon>

CGAL::Polygon_with_holes_2<Kernel,Container>

Types

typedef unspecified_type Polygon_2
 the polygon type used to represent the outer boundary and each hole.
 
typedef unspecified_type Hole_const_iterator
 a bidirectional iterator over the polygonal holes. More...
 
typedef unspecified_type Holes_container
 range type for iterating over holes.
 

Creation

template<typename InputIterator >
 GeneralPolygonWithHoles_2 (Polygon_2 &outer, InputIterator begin, InputIterator end)
 constructs a general polygon with holes using a given general polygon outer as the outer boundary and a given range of holes. More...
 

Predicates

bool is_unbounded ()
 returns true if the outer boundary is empty and false otherwise.
 
bool has_holes ()
 returns true if the polygon with holes has holes and false otherwise.
 
Size number_of_holes ()
 returns the number of holes.
 

Access Functions

const Polygon_2outer_boundary () const
 returns the general polygon that represents the outer boundary. More...
 
Hole_const_iterator holes_begin () const
 returns the begin iterator of the holes.
 
Hole_const_iterator holes_end () const
 returns the past-the-end iterator of the holes.
 
const Holes_containerholes () const
 returns the range of holes.
 

Modifiers

void add_hole (const Polygon_2 &hole)
 adds a given polygon as a hole. More...
 
void erase_hole (Hole_iterator hit)
 erases the specified hole.
 
void clear_outer_boundary ()
 clears the output boundary.
 
void clear_holes ()
 removes all the holes.
 
void clear ()
 removes the outer boundary and all holes.
 

Member Typedef Documentation

◆ Hole_const_iterator

a bidirectional iterator over the polygonal holes.

Its value type is Polygon_2.

Constructor & Destructor Documentation

◆ GeneralPolygonWithHoles_2()

template<typename InputIterator >
GeneralPolygonWithHoles_2::GeneralPolygonWithHoles_2 ( Polygon_2 outer,
InputIterator  begin,
InputIterator  end 
)

constructs a general polygon with holes using a given general polygon outer as the outer boundary and a given range of holes.

If outer is an empty general polygon, then an unbounded polygon with holes will be created. The holes must be contained inside the outer boundary, and the polygons representing the holes must be simple and pairwise disjoint, except perhaps at the vertices.

Member Function Documentation

◆ add_hole()

void GeneralPolygonWithHoles_2::add_hole ( const Polygon_2 hole)

adds a given polygon as a hole.

Precondition
the hole must be clockwise oriented.

◆ outer_boundary()

const Polygon_2& GeneralPolygonWithHoles_2::outer_boundary ( ) const

returns the general polygon that represents the outer boundary.

Note that this polygon is not necessarily a valid (simple) general polygon because it may be relatively simple.