CGAL 5.3 - 2D Regularized Boolean Set-Operations
All Classes Namespaces Files Functions Variables Typedefs Enumerations Friends Modules Pages

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.