CGAL 6.1.1 - 2D Polygons

Loading...
Searching...
No Matches
List of all members
GeneralPolygonWithHoles_2 Concept Reference
Reference Manual » Concepts

## 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.
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.

## 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_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.

## Modifiers
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.

## Member Typedef Documentation

## ◆ Hole_const_iterator

typedef unspecified_type GeneralPolygonWithHoles_2::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.