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
>
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.
typedef
unspecified_type
Holes_container
range type for iterating over holes.
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.
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.
const
Polygon_2
&
outer_boundary
() const
returns the general polygon that represents the outer boundary.
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_container
&
holes
() const
returns the range of holes.
void
add_hole
(const
Polygon_2
&hole)
adds a given polygon as a hole.
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.
◆
Hole_const_iterator
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.
◆
add_hole()