CGAL 5.3.1 - 2D Regularized Boolean Set-Operations

There are several overloaded function templates called difference() that compute the difference between two polygons and insert the resulting polygons with holes into a container via an output iterator.

A function template in this group has one of the two following signatures:

Parameters
oithe output iterator for the result.

The types Type1 and Type2 of the parameters must be convertible to the types specified in a row in the table below, respectively. The 3rd column specifies the corresponding dereference type of the output iterator.

Type1 Type2 Dereference Type of oi
Polygon_2 Polygon_2 Polygon_with_holes_2
Polygon_2 Polygon_with_holes_2 Polygon_with_holes_2
Polygon_with_holes_2 Polygon_2 Polygon_with_holes_2
Polygon_with_holes_2 Polygon_with_holes_2 Polygon_with_holes_2
General_polygon_2 General_polygon_2 General_polygon_with_holes_2
General_polygon_2 General_polygon_with_holes_2General_polygon_with_holes_2
General_polygon_with_holes_2General_polygon_2 General_polygon_with_holes_2
General_polygon_with_holes_2General_polygon_with_holes_2General_polygon_with_holes_2
See also
CGAL::complement()
CGAL::do_intersect()
CGAL::intersection()
CGAL::join()
CGAL::symmetric_difference()

Functions

template<typename Kernel , typename Container , typename OutputIterator >
OutputIterator CGAL::difference (const Polygon_2< Kernel, Container > &pgn1, const Polygon_2< Kernel, Container > &pgn2, OutputIterator oi)
 computes the difference of two polygons and inserts the resulting polygons with holes into a container via an output iterator. More...
 
template<typename Kernel , typename Container , typename OutputIterator >
OutputIterator CGAL::difference (const Polygon_2< Kernel, Container > &pgn1, const Polygon_with_holes_2< Kernel, Container > &pgn2, OutputIterator oi)
 computes the difference of two polygons and inserts the resulting polygons with holes into a container via an output iterator. More...
 
template<typename Kernel , typename Container , typename OutputIterator >
OutputIterator CGAL::difference (const Polygon_with_holes_2< Kernel, Container > &pgn1, const Polygon_2< Kernel, Container > &pgn2, OutputIterator oi)
 computes the difference of two polygons and inserts the resulting polygons with holes into a container via an output iterator. More...
 
template<typename Kernel , typename Container , typename OutputIterator >
OutputIterator CGAL::difference (const Polygon_with_holes_2< Kernel, Container > &pgn1, const Polygon_with_holes_2< Kernel, Container > &pgn2, OutputIterator oi)
 computes the difference of two polygons and inserts the resulting polygons with holes into a container via an output iterator. More...
 
template<typename ArrTraits , typename OutputIterator >
OutputIterator CGAL::difference (const General_polygon_2< ArrTraits > &pgn1, const General_polygon_2< ArrTraits > &pgn2, OutputIterator oi)
 computes the difference of two general polygons and inserts the resulting general polygons with holes into a container via an output iterator. More...
 
template<typename ArrTraits , typename OutputIterator >
OutputIterator CGAL::difference (const General_polygon_with_holes_2< General_polygon_2< ArrTraits > > &pgn1, const General_polygon_2< ArrTraits > &pgn2, OutputIterator oi)
 computes the difference of two general polygons and inserts the resulting general polygons with holes into a container via an output iterator. More...
 
template<typename ArrTraits , typename OutputIterator >
OutputIterator CGAL::difference (const General_polygon_2< ArrTraits > &pgn1, const General_polygon_with_holes_2< General_polygon_2< ArrTraits > > &pgn2, OutputIterator oi)
 computes the difference of two polygons and inserts the resulting general polygons with holes into a container via an output iterator. More...
 
template<typename Polygon , typename OutputIterator >
OutputIterator CGAL::difference (const General_polygon_with_holes_2< Polygon > &pgn1, const General_polygon_with_holes_2< Polygon > &pgn2, OutputIterator oi)
 computes the difference of two general polygons with holes and inserts the resulting general polygons with holes into a container via an output iterator. More...
 
template<typename Kernel , typename Container , typename OutputIterator , typename GpsTraits >
OutputIterator CGAL::difference (const Polygon_2< Kernel, Container > &pgn1, const Polygon_2< Kernel, Container > &pgn2, OutputIterator oi, const GpsTraits &traits)
 computes the difference of two polygons and inserts the resulting polygons with holes into a container via an output iterator. More...
 
template<typename Kernel , typename Container , typename OutputIterator , typename GpsTraits >
OutputIterator CGAL::difference (const Polygon_2< Kernel, Container > &pgn1, const Polygon_with_holes_2< Kernel, Container > &pgn2, OutputIterator oi, const GpsTraits &traits)
 computes the difference of two polygons and inserts the resulting polygons with holes into a container via an output iterator. More...
 
template<typename Kernel , typename Container , typename OutputIterator , typename GpsTraits >
OutputIterator CGAL::difference (const Polygon_with_holes_2< Kernel, Container > &pgn1, const Polygon_2< Kernel, Container > &pgn2, OutputIterator oi, const GpsTraits &traits)
 computes the difference of two polygons and inserts the resulting polygons with holes into a container via an output iterator. More...
 
template<typename Kernel , typename Container , typename OutputIterator , typename GpsTraits >
OutputIterator CGAL::difference (const Polygon_with_holes_2< Kernel, Container > &pgn1, const Polygon_with_holes_2< Kernel, Container > &pgn2, OutputIterator oi, const GpsTraits &traits)
 computes the difference of two polygons with holes and inserts the resulting polygons with holes into a container via an output iterator. More...
 
template<typename ArrTraits , typename OutputIterator , typename GpsTraits >
OutputIterator CGAL::difference (const General_polygon_2< ArrTraits > &pgn1, const General_polygon_2< ArrTraits > &pgn2, OutputIterator oi, const GpsTraits &traits)
 computes the difference of two general polygons and inserts the resulting general polygons with holes into a container via an output iterator. More...
 
template<typename ArrTraits , typename OutputIterator , typename GpsTraits >
OutputIterator CGAL::difference (const General_polygon_with_holes_2< General_polygon_2< ArrTraits > > &pgn1, const General_polygon_2< ArrTraits > &pgn2, OutputIterator oi, const GpsTraits &traits)
 computes the difference of two general polygons and inserts the resulting general polygons with holes into a container via an output iterator. More...
 
template<typename ArrTraits , typename OutputIterator , typename GpsTraits >
OutputIterator CGAL::difference (const General_polygon_2< ArrTraits > &pgn1, const General_polygon_with_holes_2< General_polygon_2< ArrTraits > > &pgn2, OutputIterator oi, const GpsTraits &traits)
 computes the difference of two general polygons and inserts the resulting general polygons with holes into a container via an output iterator. More...
 
template<typename Polygon , typename OutputIterator , typename GpsTraits >
OutputIterator CGAL::difference (const General_polygon_with_holes_2< Polygon > &pgn1, const General_polygon_with_holes_2< Polygon > &pgn2, OutputIterator oi, const GpsTraits &traits)
 computes the difference of two general polygons and inserts the resulting general polygons with holes into a container via an output iterator. More...
 

Function Documentation

◆ difference() [1/16]

template<typename Kernel , typename Container , typename OutputIterator >
OutputIterator CGAL::difference ( const Polygon_2< Kernel, Container > &  pgn1,
const Polygon_2< Kernel, Container > &  pgn2,
OutputIterator  oi 
)

#include <CGAL/Boolean_set_operations_2.h>

computes the difference of two polygons and inserts the resulting polygons with holes into a container via an output iterator.

Parameters
pgn1the 1st input polygon.
pgn2the 2nd input polygon.
oithe output iterator for the result. Its dereference type must be convertibe to Polygon_with_holes_2<Kernel, Container>.
Returns
the past-the-end iterator of the output container.

◆ difference() [2/16]

template<typename Kernel , typename Container , typename OutputIterator >
OutputIterator CGAL::difference ( const Polygon_2< Kernel, Container > &  pgn1,
const Polygon_with_holes_2< Kernel, Container > &  pgn2,
OutputIterator  oi 
)

#include <CGAL/Boolean_set_operations_2.h>

computes the difference of two polygons and inserts the resulting polygons with holes into a container via an output iterator.

Parameters
pgn1the 1st input polygon.
pgn2the 2nd input polygon.
oithe output iterator for the result. Its dereference type must be convertibe to Polygon_with_holes_2<Kernel, Container>.
Returns
the past-the-end iterator of the output container.

◆ difference() [3/16]

template<typename Kernel , typename Container , typename OutputIterator >
OutputIterator CGAL::difference ( const Polygon_with_holes_2< Kernel, Container > &  pgn1,
const Polygon_2< Kernel, Container > &  pgn2,
OutputIterator  oi 
)

#include <CGAL/Boolean_set_operations_2.h>

computes the difference of two polygons and inserts the resulting polygons with holes into a container via an output iterator.

Parameters
pgn1the 1st input polygon.
pgn2the 2nd input polygon.
oithe output iterator for the result. Its dereference type must be convertibe to Polygon_with_holes_2<Kernel, Container>.
Returns
the past-the-end iterator of the output container.

◆ difference() [4/16]

template<typename Kernel , typename Container , typename OutputIterator >
OutputIterator CGAL::difference ( const Polygon_with_holes_2< Kernel, Container > &  pgn1,
const Polygon_with_holes_2< Kernel, Container > &  pgn2,
OutputIterator  oi 
)

#include <CGAL/Boolean_set_operations_2.h>

computes the difference of two polygons and inserts the resulting polygons with holes into a container via an output iterator.

Parameters
pgn1the 1st input polygon.
pgn2the 2nd input polygon.
oithe output iterator for the result. Its dereference type must be convertibe to Polygon_with_holes_2<Kernel, Container>.
Returns
the past-the-end iterator of the output container.

◆ difference() [5/16]

template<typename ArrTraits , typename OutputIterator >
OutputIterator CGAL::difference ( const General_polygon_2< ArrTraits > &  pgn1,
const General_polygon_2< ArrTraits > &  pgn2,
OutputIterator  oi 
)

#include <CGAL/Boolean_set_operations_2.h>

computes the difference of two general polygons and inserts the resulting general polygons with holes into a container via an output iterator.

Parameters
pgn1the 1st input polygon.
pgn2the 2nd input polygon.
oithe output iterator for the result. Its dereference type must be convertibe to General_polygon_with_holes_2<General_polygon_2<ArrTraits> >.
Returns
the past-the-end iterator of the output container.
Precondition
ArrTraits must be a model of the concept ArrangementDirectionalXMonotoneTraits_2.

◆ difference() [6/16]

template<typename ArrTraits , typename OutputIterator >
OutputIterator CGAL::difference ( const General_polygon_with_holes_2< General_polygon_2< ArrTraits > > &  pgn1,
const General_polygon_2< ArrTraits > &  pgn2,
OutputIterator  oi 
)

#include <CGAL/Boolean_set_operations_2.h>

computes the difference of two general polygons and inserts the resulting general polygons with holes into a container via an output iterator.

Parameters
pgn1the 1st input polygon.
pgn2the 2nd input polygon.
oithe output iterator for the result. Its dereference type must be convertibe to General_polygon_with_holes_2<General_polygon_2<ArrTraits> >.
Returns
the past-the-end iterator of the output container.
Precondition
ArrTraits must be a model of the concept ArrangementDirectionalXMonotoneTraits_2.

◆ difference() [7/16]

template<typename ArrTraits , typename OutputIterator >
OutputIterator CGAL::difference ( const General_polygon_2< ArrTraits > &  pgn1,
const General_polygon_with_holes_2< General_polygon_2< ArrTraits > > &  pgn2,
OutputIterator  oi 
)

#include <CGAL/Boolean_set_operations_2.h>

computes the difference of two polygons and inserts the resulting general polygons with holes into a container via an output iterator.

Parameters
pgn1the 1st input polygon.
pgn2the 2nd input polygon.
oithe output iterator for the result. Its dereference type must be convertibe to General_polygon_with_holes_2<General_polygon_2<ArrTraits> >.
Returns
the past-the-end iterator of the output container.
Precondition
ArrTraits must be a model of the concept ArrangementDirectionalXMonotoneTraits_2.

◆ difference() [8/16]

template<typename Polygon , typename OutputIterator >
OutputIterator CGAL::difference ( const General_polygon_with_holes_2< Polygon > &  pgn1,
const General_polygon_with_holes_2< Polygon > &  pgn2,
OutputIterator  oi 
)

#include <CGAL/Boolean_set_operations_2.h>

computes the difference of two general polygons with holes and inserts the resulting general polygons with holes into a container via an output iterator.

Parameters
pgn1the 1st input polygon.
pgn2the 2nd input polygon.
oithe output iterator for the result. Its dereference type must be convertibe to General_polygon_with_holes_2<Polygon>.
Returns
the past-the-end iterator of the output container.

◆ difference() [9/16]

template<typename Kernel , typename Container , typename OutputIterator , typename GpsTraits >
OutputIterator CGAL::difference ( const Polygon_2< Kernel, Container > &  pgn1,
const Polygon_2< Kernel, Container > &  pgn2,
OutputIterator  oi,
const GpsTraits &  traits 
)

#include <CGAL/Boolean_set_operations_2.h>

computes the difference of two polygons and inserts the resulting polygons with holes into a container via an output iterator.

Parameters
pgn1the 1st input polygon.
pgn2the 2nd input polygon.
oithe output iterator for the result. Its dereference type must be convertibe to Polygon_with_holes_2<Kernel, Container>.
traitsa traits object.
Returns
the past-the-end iterator of the output container.
Precondition
GpsTraits must be a model of GeneralPolygonSetTraits_2.

◆ difference() [10/16]

template<typename Kernel , typename Container , typename OutputIterator , typename GpsTraits >
OutputIterator CGAL::difference ( const Polygon_2< Kernel, Container > &  pgn1,
const Polygon_with_holes_2< Kernel, Container > &  pgn2,
OutputIterator  oi,
const GpsTraits &  traits 
)

#include <CGAL/Boolean_set_operations_2.h>

computes the difference of two polygons and inserts the resulting polygons with holes into a container via an output iterator.

Parameters
pgn1the 1st input polygon.
pgn2the 2nd input polygon.
oithe output iterator for the result. Its dereference type must be convertibe to Polygon_with_holes_2<Kernel, Container>.
traitsa traits object.
Returns
the past-the-end iterator of the output container.
Precondition
GpsTraits must be a model of GeneralPolygonSetTraits_2.

◆ difference() [11/16]

template<typename Kernel , typename Container , typename OutputIterator , typename GpsTraits >
OutputIterator CGAL::difference ( const Polygon_with_holes_2< Kernel, Container > &  pgn1,
const Polygon_2< Kernel, Container > &  pgn2,
OutputIterator  oi,
const GpsTraits &  traits 
)

#include <CGAL/Boolean_set_operations_2.h>

computes the difference of two polygons and inserts the resulting polygons with holes into a container via an output iterator.

Parameters
pgn1the 1st input polygon.
pgn2the 2nd input polygon.
oithe output iterator for the result. Its dereference type must be convertibe to Polygon_with_holes_2<Kernel, Container>.
traitsa traits object.
Returns
the past-the-end iterator of the output container.
Precondition
GpsTraits must be a model of GeneralPolygonSetTraits_2.

◆ difference() [12/16]

template<typename Kernel , typename Container , typename OutputIterator , typename GpsTraits >
OutputIterator CGAL::difference ( const Polygon_with_holes_2< Kernel, Container > &  pgn1,
const Polygon_with_holes_2< Kernel, Container > &  pgn2,
OutputIterator  oi,
const GpsTraits &  traits 
)

#include <CGAL/Boolean_set_operations_2.h>

computes the difference of two polygons with holes and inserts the resulting polygons with holes into a container via an output iterator.

Parameters
pgn1the 1st input polygon.
pgn2the 2nd input polygon.
oithe output iterator for the result. Its dereference type must be convertibe to Polygon_with_holes_2<Kernel, Container>.
traitsa traits object.
Returns
the past-the-end iterator of the output container.
Precondition
GpsTraits must be a model of GeneralPolygonSetTraits_2.

◆ difference() [13/16]

template<typename ArrTraits , typename OutputIterator , typename GpsTraits >
OutputIterator CGAL::difference ( const General_polygon_2< ArrTraits > &  pgn1,
const General_polygon_2< ArrTraits > &  pgn2,
OutputIterator  oi,
const GpsTraits &  traits 
)

#include <CGAL/Boolean_set_operations_2.h>

computes the difference of two general polygons and inserts the resulting general polygons with holes into a container via an output iterator.

Parameters
pgn1the 1st input polygon.
pgn2the 2nd input polygon.
oithe output iterator for the result. Its dereference type must be convertibe to General_polygon_with_holes_2<General_polygon_2<ArrTraits> >.
traitsa traits object.
Returns
the past-the-end iterator of the output container.
Precondition
ArrTraits must be a model of the concept ArrangementDirectionalXMonotoneTraits_2.
GpsTraits must be a model of GeneralPolygonSetTraits_2.

◆ difference() [14/16]

template<typename ArrTraits , typename OutputIterator , typename GpsTraits >
OutputIterator CGAL::difference ( const General_polygon_with_holes_2< General_polygon_2< ArrTraits > > &  pgn1,
const General_polygon_2< ArrTraits > &  pgn2,
OutputIterator  oi,
const GpsTraits &  traits 
)

#include <CGAL/Boolean_set_operations_2.h>

computes the difference of two general polygons and inserts the resulting general polygons with holes into a container via an output iterator.

Parameters
pgn1the 1st input polygon.
pgn2the 2nd input polygon.
oithe output iterator for the result. Its dereference type must be convertibe to General_polygon_with_holes_2<General_polygon_2<ArrTraits> >.
traitsa traits object.
Returns
the past-the-end iterator of the output container.
Precondition
ArrTraits must be a model of the concept ArrangementDirectionalXMonotoneTraits_2.
GpsTraits must be a model of GeneralPolygonSetTraits_2.

◆ difference() [15/16]

template<typename ArrTraits , typename OutputIterator , typename GpsTraits >
OutputIterator CGAL::difference ( const General_polygon_2< ArrTraits > &  pgn1,
const General_polygon_with_holes_2< General_polygon_2< ArrTraits > > &  pgn2,
OutputIterator  oi,
const GpsTraits &  traits 
)

#include <CGAL/Boolean_set_operations_2.h>

computes the difference of two general polygons and inserts the resulting general polygons with holes into a container via an output iterator.

Parameters
pgn1the 1st input polygon.
pgn2the 2nd input polygon.
oithe output iterator for the result. Its dereference type must be convertibe to General_polygon_with_holes_2<General_polygon_2<ArrTraits> >.
traitsa traits object.
Returns
the past-the-end iterator of the output container.
Precondition
ArrTraits must be a model of the concept ArrangementDirectionalXMonotoneTraits_2.
GpsTraits must be a model of GeneralPolygonSetTraits_2.

◆ difference() [16/16]

template<typename Polygon , typename OutputIterator , typename GpsTraits >
OutputIterator CGAL::difference ( const General_polygon_with_holes_2< Polygon > &  pgn1,
const General_polygon_with_holes_2< Polygon > &  pgn2,
OutputIterator  oi,
const GpsTraits &  traits 
)

#include <CGAL/Boolean_set_operations_2.h>

computes the difference of two general polygons and inserts the resulting general polygons with holes into a container via an output iterator.

Parameters
pgn1the 1st input polygon.
pgn2the 2nd input polygon.
oithe output iterator for the result. Its dereference type must be convertibe to General_polygon_with_holes_2<Polygon>.
traitsa traits object.
Returns
the past-the-end iterator of the output container.
Precondition
GpsTraits must be a model of GeneralPolygonSetTraits_2.