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:
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.
CGAL::complement()
CGAL::do_intersect()
CGAL::intersection()
CGAL::join()
CGAL::symmetric_difference()
#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.
ArrTraits
must be a model of the concept
ArrangementDirectionalXMonotoneTraits_2
.
#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.
ArrTraits
must be a model of the concept
ArrangementDirectionalXMonotoneTraits_2
.
GeneralPolygonSetTraits_2
.
#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.
ArrTraits
must be a model of the concept
ArrangementDirectionalXMonotoneTraits_2
.
#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.
ArrTraits
must be a model of the concept
ArrangementDirectionalXMonotoneTraits_2
.
GeneralPolygonSetTraits_2
.
#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.
ArrTraits
must be a model of the concept
ArrangementDirectionalXMonotoneTraits_2
.
#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.
ArrTraits
must be a model of the concept
ArrangementDirectionalXMonotoneTraits_2
.
GeneralPolygonSetTraits_2
.
#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.
#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.
GeneralPolygonSetTraits_2
.
#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.
#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.
GeneralPolygonSetTraits_2
.
#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.
#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.
#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.
GeneralPolygonSetTraits_2
.
#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.
#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.
#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.
GeneralPolygonSetTraits_2
.
#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.
#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.
#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.
GeneralPolygonSetTraits_2
.
#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.
1.1. |
OutputIterator
difference(const Type1& pgn1, const Type2& pgn2,
OutputIterator
oi, UsePolylines =
Tag_true()
);
|
||
1.2. |
OutputIterator
difference(const Type1& pgn1, const Type2& pgn2,
OutputIterator
oi);
|
||
2. |
OutputIterator
difference(const Type1& pgn1, const Type2& pgn2,
OutputIterator
oi, const GpsTraits& traits);
|
||
UsePolylines |
determines whether the boundaries of the input polygons are treated as cyclic sequences of single ( \(x\)-monotone) segments or as cyclic sequences of ( \(x\)-monotone) polylines. If substituted with
CGAL::Tag_true
, which is the default, the input polygons are converted to general polygons bounded by polylines before the operation is actually performed. Then, the resulting general polygons with holes are converted back to standard polygons. If substituted with
CGAL::Tag_false
, the input polygons are used as is. Refer to
Traits Selection
for more information.
|
||
Type1
|
Type2
|
Dereference Type of
oi
|
|
---|---|---|---|
1 |
Polygon_2
|
Polygon_2
|
Polygon_with_holes_2
|
2 |
Polygon_2
|
Polygon_with_holes_2
|
Polygon_with_holes_2
|
3 |
Polygon_with_holes_2
|
Polygon_2
|
Polygon_with_holes_2
|
4 |
Polygon_with_holes_2
|
Polygon_with_holes_2
|
Polygon_with_holes_2
|
5 |
General_polygon_2
|
General_polygon_2
|
General_polygon_with_holes_2
|
6 |
General_polygon_2
|
General_polygon_with_holes_2
|
General_polygon_with_holes_2
|
7 |
General_polygon_with_holes_2
|
General_polygon_2
|
General_polygon_with_holes_2
|
8 |
General_polygon_with_holes_2
|
General_polygon_with_holes_2
|
General_polygon_with_holes_2
|
pgn1,pgn2 | the input polygons. | ||
oi | the output iterator for the result. | ||
traits | an optional traits object. | ||
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.
|
|||
template<typename Kernel , typename Container , typename OutputIterator , typename UsePolylines > | |||
OutputIterator | CGAL::difference (const Polygon_2 < Kernel , Container > &pgn1, const Polygon_2 < Kernel , Container > &pgn2, OutputIterator oi, UsePolylines= Tag_true ()) | ||
computes the difference of two polygons and inserts the resulting polygons with holes into a container via an output iterator.
|
|||
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.
|
|||
template<typename Kernel , typename Container , typename OutputIterator , typename UsePolylines > | |||
OutputIterator | CGAL::difference (const Polygon_2 < Kernel , Container > &pgn1, const Polygon_with_holes_2 < Kernel , Container > &pgn2, OutputIterator oi, UsePolylines= Tag_true ()) | ||
computes the difference of two polygons and inserts the resulting polygons with holes into a container via an output iterator.
|
|||
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.
|
|||
template<typename Kernel , typename Container , typename OutputIterator , typename UsePolylines > | |||
OutputIterator | CGAL::difference (const Polygon_with_holes_2 < Kernel , Container > &pgn1, const Polygon_2 < Kernel , Container > &pgn2, OutputIterator oi, UsePolylines= Tag_true ()) | ||
computes the difference of two polygons and inserts the resulting polygons with holes into a container via an output iterator.
|
|||
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.
|
|||
template<typename Kernel , typename Container , typename OutputIterator , typename UsePolylines > | |||
OutputIterator | CGAL::difference (const Polygon_with_holes_2 < Kernel , Container > &pgn1, const Polygon_with_holes_2 < Kernel , Container > &pgn2, OutputIterator oi, UsePolylines= Tag_true ()) | ||
computes the difference of two polygons and inserts the resulting polygons with holes into a container via an output iterator.
|
|||
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.
|
|||
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.
|
|||
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.
|
|||
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.
|
|||
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.
|
|||
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.
|
|||
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.
|
|||
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.
|
|||
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.
|
|||
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.
|
|||
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.
|
|||
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.
|
|||
pgn1 | the 1st input polygon. | ||
pgn2 | the 2nd input polygon. | ||
oi |
the output iterator for the result. Its dereference type must be convertibe to
General_polygon_with_holes_2
<
General_polygon_2
<
ArrTraits
>>
.
|
||
pgn1 | the 1st input polygon. | ||
pgn2 | the 2nd input polygon. | ||
oi |
the output iterator for the result. Its dereference type must be convertibe to
General_polygon_with_holes_2
<
General_polygon_2
<
ArrTraits
>>
.
|
||
traits | a traits object. | ||
pgn1 | the 1st input polygon. | ||
pgn2 | the 2nd input polygon. | ||
oi |
the output iterator for the result. Its dereference type must be convertibe to
General_polygon_with_holes_2
<
General_polygon_2
<
ArrTraits
>>
.
|
||
pgn1 | the 1st input polygon. | ||
pgn2 | the 2nd input polygon. | ||
oi |
the output iterator for the result. Its dereference type must be convertibe to
General_polygon_with_holes_2
<
General_polygon_2
<
ArrTraits
>>
.
|
||
traits | a traits object. | ||
OutputIterator CGAL::difference | const General_polygon_with_holes_2 < General_polygon_2 < ArrTraits > > & | pgn1 , | |
pgn1 | the 1st input polygon. | ||
pgn2 | the 2nd input polygon. | ||
oi |
the output iterator for the result. Its dereference type must be convertibe to
General_polygon_with_holes_2
<
General_polygon_2
<
ArrTraits
>>
.
|
||
OutputIterator CGAL::difference | const General_polygon_with_holes_2 < General_polygon_2 < ArrTraits > > & | pgn1 , | |
pgn1 | the 1st input polygon. | ||
pgn2 | the 2nd input polygon. | ||
oi |
the output iterator for the result. Its dereference type must be convertibe to
General_polygon_with_holes_2
<
General_polygon_2
<
ArrTraits
>>
.
|
||
traits | a traits object. | ||
pgn1 | the 1st input polygon. | ||
pgn2 | the 2nd input polygon. | ||
oi |
the output iterator for the result. Its dereference type must be convertibe to
General_polygon_with_holes_2
<Polygon>
.
|
||
pgn1 | the 1st input polygon. | ||
pgn2 | the 2nd input polygon. | ||
oi |
the output iterator for the result. Its dereference type must be convertibe to
General_polygon_with_holes_2
<Polygon>
.
|
||
traits | a traits object. | ||
pgn1 | the 1st input polygon. | ||
pgn2 | the 2nd input polygon. | ||
oi |
the output iterator for the result. Its dereference type must be convertibe to
Polygon_with_holes_2
<
Kernel
,
Container
>
.
|
||
OutputIterator CGAL::difference | const Polygon_2 < Kernel , Container > & | pgn1 , | |
pgn1 | the 1st input polygon. | ||
pgn2 | the 2nd input polygon. | ||
oi |
the output iterator for the result. Its dereference type must be convertibe to
Polygon_with_holes_2
<
Kernel
,
Container
>
.
|
||
traits | a traits object. | ||
OutputIterator CGAL::difference | const Polygon_2 < Kernel , Container > & | pgn1 , | |
UsePolylines |
determines whether the boundaries of
pgn1
and
pgn2
are treated as cyclic sequences of single ( \(x\)-monotone) segments or as a cyclic sequences of ( \(x\)-monotone) polylines. If substituted with
CGAL::Tag_true
, which is the default,
pgn1
and
pgn2
are converted to a general polygons bounded by polylines before the operation is actually performed. Then, the resulting general polygons with holes are converted back to standard polygons with holes. If substituted with
CGAL::Tag_false
,
pgn1
and
pgn2
are used as is. Refer to
Traits Selection
for more information.
|
||
pgn1 | the 1st input polygon. | ||
pgn2 | the 2nd input polygon. | ||
oi |
the output iterator for the result. Its dereference type must be convertibe to
Polygon_with_holes_2
<
Kernel
,
Container
>
.
|
||
pgn1 | the 1st input polygon. | ||
pgn2 | the 2nd input polygon. | ||
oi |
the output iterator for the result. Its dereference type must be convertibe to
Polygon_with_holes_2
<
Kernel
,
Container
>
.
|
||
OutputIterator CGAL::difference | const Polygon_2 < Kernel , Container > & | pgn1 , | |
pgn1 | the 1st input polygon. | ||
pgn2 | the 2nd input polygon. | ||
oi |
the output iterator for the result. Its dereference type must be convertibe to
Polygon_with_holes_2
<
Kernel
,
Container
>
.
|
||
traits | a traits object. | ||
OutputIterator CGAL::difference | const Polygon_2 < Kernel , Container > & | pgn1 , | |
UsePolylines |
determines whether the boundaries of
pgn1
and
pgn2
are treated as cyclic sequences of single ( \(x\)-monotone) segments or as a cyclic sequences of ( \(x\)-monotone) polylines. If substituted with
CGAL::Tag_true
, which is the default,
pgn1
and
pgn2
are converted to a general polygon and a general polygon with holes, respectively, bounded by polylines before the operation is actually performed. Then, the resulting general polygons with holes are converted back to standard polygons with holes. If substituted with
CGAL::Tag_false
,
pgn1
and
pgn2
are used as is. Refer to
Traits Selection
for more information.
|
||
pgn1 | the 1st input polygon. | ||
pgn2 | the 2nd input polygon. | ||
oi |
the output iterator for the result. Its dereference type must be convertibe to
Polygon_with_holes_2
<
Kernel
,
Container
>
.
|
||
pgn1 | the 1st input polygon. | ||
pgn2 | the 2nd input polygon. | ||
oi |
the output iterator for the result. Its dereference type must be convertibe to
Polygon_with_holes_2
<
Kernel
,
Container
>
.
|
||
OutputIterator CGAL::difference | const Polygon_with_holes_2 < Kernel , Container > & | pgn1 , | |
pgn1 | the 1st input polygon. | ||
pgn2 | the 2nd input polygon. | ||
oi |
the output iterator for the result. Its dereference type must be convertibe to
Polygon_with_holes_2
<
Kernel
,
Container
>
.
|
||
traits | a traits object. | ||
OutputIterator CGAL::difference | const Polygon_with_holes_2 < Kernel , Container > & | pgn1 , | |
UsePolylines |
determines whether the boundaries of
pgn1
and
pgn2
are treated as cyclic sequences of single ( \(x\)-monotone) segments or as a cyclic sequences of ( \(x\)-monotone) polylines. If substituted with
CGAL::Tag_true
, which is the default,
pgn1
and
pgn2
are converted to a general polygon with holes and a general polygon, respectively, bounded by polylines before the operation is actually performed. Then, the resulting general polygons with holes are converted back to standard polygons with holes. If substituted with
CGAL::Tag_false
,
pgn1
and
pgn2
are used as is. Refer to
Traits Selection
for more information.
|
||
pgn1 | the 1st input polygon. | ||
pgn2 | the 2nd input polygon. | ||
oi |
the output iterator for the result. Its dereference type must be convertibe to
Polygon_with_holes_2
<
Kernel
,
Container
>
.
|
||
pgn1 | the 1st input polygon. | ||
pgn2 | the 2nd input polygon. | ||
oi |
the output iterator for the result. Its dereference type must be convertibe to
Polygon_with_holes_2
<
Kernel
,
Container
>
.
|
||
OutputIterator CGAL::difference | const Polygon_with_holes_2 < Kernel , Container > & | pgn1 , | |
pgn1 | the 1st input polygon. | ||
pgn2 | the 2nd input polygon. | ||
oi |
the output iterator for the result. Its dereference type must be convertibe to
Polygon_with_holes_2
<
Kernel
,
Container
>
.
|
||
traits | a traits object. | ||
OutputIterator CGAL::difference | const Polygon_with_holes_2 < Kernel , Container > & | pgn1 , | |
UsePolylines |
determines whether the boundaries of
pgn1
and
pgn2
are treated as cyclic sequences of single ( \(x\)-monotone) segments or as a cyclic sequences of ( \(x\)-monotone) polylines. If substituted with
CGAL::Tag_true
, which is the default,
pgn1
and
pgn2
are converted to general polygons with holes, bounded by polylines before the operation is actually performed. Then, the resulting general polygons with holes are converted back to standard polygons with holes. If substituted with
CGAL::Tag_false
,
pgn1
and
pgn2
are used as is. Refer to
Traits Selection
for more information.
|
||
pgn1 | the 1st input polygon. | ||
pgn2 | the 2nd input polygon. | ||
oi |
the output iterator for the result. Its dereference type must be convertibe to
Polygon_with_holes_2
<
Kernel
,
Container
>
.
|