CGAL 5.4.5 - 2D Regularized Boolean Set-Operations
|
There are several overloaded function templates called symmetric_difference()
that compute the symmetric difference between two or more input polygons and insert the resulting polygons with holes into a container via an output iterator.
A function template in this group that accepts two input polygons has one of the following signatures:
1.1. | OutputIterator symmetric_difference(const Type1& pgn1, const Type2& pgn2, OutputIterator oi, UsePolylines = Tag_true()); |
1.2. | OutputIterator symmetric_difference(const Type1& pgn1, const Type2& pgn2, OutputIterator oi); |
2. | OutputIterator symmetric_difference(const Type1& pgn1, const Type2& pgn2, OutputIterator oi, const GpsTraits& traits); |
There are also function templates that accept one or two ranges of input polygons:
3.1. | OutputIterator symmetric_difference(InputIterator begin, InputIterator end, OutputIterator oi, UsePolylines = Tag_true()); |
3.2. | OutputIterator symmetric_difference(InputIterator begin, InputIterator end, OutputIterator oi); |
4. | OutputIterator symmetric_difference(InputIterator begin, InputIterator end, OutputIterator oi, const GpsTraits& traits); |
5.1. | OutputIterator symmetric_difference(InputIterator1 begin1, InputIterator1 end1, InputIterator2 begin2, InputIterator2 end2, OutputIterator oi, UsePolylines = Tag_true()); |
5.2. | OutputIterator symmetric_difference(InputIterator1 begin1, InputIterator1 end1, InputIterator2 begin2, InputIterator2 end2, OutputIterator oi); |
6. | OutputIterator symmetric_difference(InputIterator1 begin1, InputIterator1 end1, InputIterator2 begin2, InputIterator2 end2, 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 with holes. If substituted with CGAL::Tag_false , the input polygons are used as is. Refer to Traits Selection for more information. |
Type1
and Type2
of the parameters and of InputIterator1::value_type
and InputIterator2::value_type
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.InputIterator::value_type
in (3.1.) above must be convertible to either Polygon_2
or Polygon_with_holes_2
.InputIterator::value_type
in (3.2.) above must be convertible to either General_polygon_2
or General_polygon_with_holes_2
.pgn1,pgn2 | the input polygons. |
(end,begin) | a range of input polygons. |
(end1,begin1) | the first range of input polygons. |
(end2,begin2) | the second range of input polygons. |
oi | the output iterator for the result. |
traits | an optional traits object. |
CGAL::complement()
CGAL::do_intersect()
CGAL::intersection()
CGAL::join()
CGAL::difference()
Functions | |
template<typename Kernel , typename Container , typename OutputIterator > | |
OutputIterator | CGAL::symmetric_difference (const Polygon_2< Kernel, Container > &pgn1, const Polygon_2< Kernel, Container > &pgn2, OutputIterator oi) |
computes the symmetric difference between 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 UsePolylines > | |
OutputIterator | CGAL::symmetric_difference (const Polygon_2< Kernel, Container > &pgn1, const Polygon_2< Kernel, Container > &pgn2, OutputIterator oi, UsePolylines=Tag_true()) |
computes the symmetric difference between 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::symmetric_difference (const Polygon_2< Kernel, Container > &pgn1, const Polygon_with_holes_2< Kernel, Container > &pgn2, OutputIterator oi) |
computes the symmetric difference between 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 UsePolylines > | |
OutputIterator | CGAL::symmetric_difference (const Polygon_2< Kernel, Container > &pgn1, const Polygon_with_holes_2< Kernel, Container > &pgn2, OutputIterator oi, UsePolylines=Tag_true()) |
computes the symmetric difference between 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::symmetric_difference (const Polygon_with_holes_2< Kernel, Container > &pgn1, const Polygon_2< Kernel, Container > &pgn2, OutputIterator oi) |
computes the symmetric difference between 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 UsePolylines > | |
OutputIterator | CGAL::symmetric_difference (const Polygon_with_holes_2< Kernel, Container > &pgn1, const Polygon_2< Kernel, Container > &pgn2, OutputIterator oi, UsePolylines=Tag_true()) |
computes the symmetric difference between 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::symmetric_difference (const Polygon_with_holes_2< Kernel, Container > &pgn1, const Polygon_with_holes_2< Kernel, Container > &pgn2, OutputIterator oi) |
computes the symmetric difference between two polygons with holes and inserts the resulting polygons with holes into a container via an output iterator. More... | |
template<typename Kernel , typename Container , typename OutputIterator , typename UsePolylines > | |
OutputIterator | CGAL::symmetric_difference (const Polygon_with_holes_2< Kernel, Container > &pgn1, const Polygon_with_holes_2< Kernel, Container > &pgn2, OutputIterator oi, UsePolylines=Tag_true()) |
computes the symmetric difference between two polygons with holes and inserts the resulting polygons with holes into a container via an output iterator. More... | |
template<typename ArrTraits , typename OutputIterator > | |
OutputIterator | CGAL::symmetric_difference (const General_polygon_2< ArrTraits > &pgn1, const General_polygon_2< ArrTraits > &pgn2, OutputIterator oi) |
computes the symmetric difference between 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::symmetric_difference (const General_polygon_with_holes_2< General_polygon_2< ArrTraits >> &pgn1, const General_polygon_2< ArrTraits > &pgn2, OutputIterator oi) |
computes the symmetric difference between 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::symmetric_difference (const General_polygon_2< ArrTraits > &pgn1, const General_polygon_with_holes_2< General_polygon_2< ArrTraits >> &pgn2, OutputIterator oi) |
computes the symmetric difference between two general polygons and inserts the resulting general polygons with holes into a container via an output iterator. More... | |
template<typename Polygon , typename OutputIterator > | |
OutputIterator | CGAL::symmetric_difference (const General_polygon_with_holes_2< Polygon > &pgn1, const General_polygon_with_holes_2< Polygon > &pgn2, OutputIterator oi) |
computes the symmetric difference between two general polygons and inserts the resulting general polygons with holes into a container via an output iterator. More... | |
template<typename InputIterator , typename OutputIterator > | |
OutputIterator | CGAL::symmetric_difference (InputIterator begin, InputIterator end, OutputIterator oi) |
Given a range of polygons (resp. More... | |
template<typename InputIterator , typename OutputIterator , typename UsePolylines > | |
OutputIterator | CGAL::symmetric_difference (InputIterator begin, InputIterator end, OutputIterator oi, UsePolylines=Tag_true()) |
Given a range of polygons (resp. More... | |
template<typename InputIterator1 , typename InputIterator2 , typename OutputIterator > | |
OutputIterator | CGAL::symmetric_difference (InputIterator1 begin1, InputIterator1 end1, InputIterator2 begin2, InputIterator2 end2, OutputIterator oi) |
Given a range of polygons (resp. More... | |
template<typename InputIterator1 , typename InputIterator2 , typename OutputIterator , typename UsePolylines > | |
OutputIterator | CGAL::symmetric_difference (InputIterator1 begin1, InputIterator1 end1, InputIterator2 begin2, InputIterator2 end2, OutputIterator oi, UsePolylines=Tag_true()) |
Given a range of polygons (resp. More... | |
template<typename Kernel , typename Container , typename OutputIterator , typename GpsTraits > | |
OutputIterator | CGAL::symmetric_difference (const Polygon_2< Kernel, Container > &pgn1, const Polygon_2< Kernel, Container > &pgn2, OutputIterator oi, const GpsTraits &traits) |
computes the symmetric difference between 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::symmetric_difference (const Polygon_2< Kernel, Container > &pgn1, const Polygon_with_holes_2< Kernel, Container > &pgn2, OutputIterator oi, const GpsTraits &traits) |
computes the symmetric difference between 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::symmetric_difference (const Polygon_with_holes_2< Kernel, Container > &pgn1, const Polygon_2< Kernel, Container > &pgn2, OutputIterator oi, const GpsTraits &traits) |
computes the symmetric difference between 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::symmetric_difference (const Polygon_with_holes_2< Kernel, Container > &pgn1, const Polygon_with_holes_2< Kernel, Container > &pgn2, OutputIterator oi, const GpsTraits &traits) |
computes the symmetric difference between 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::symmetric_difference (const General_polygon_2< ArrTraits > &pgn1, const General_polygon_2< ArrTraits > &pgn2, OutputIterator oi, const GpsTraits &traits) |
computes the symmetric difference between 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::symmetric_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 symmetric difference between 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::symmetric_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 symmetric difference between 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::symmetric_difference (const General_polygon_with_holes_2< Polygon > &pgn1, const General_polygon_with_holes_2< Polygon > &pgn2, OutputIterator oi, const GpsTraits &traits) |
computes the symmetric difference between two general polygons and inserts the resulting general polygons with holes into a container via an output iterator. More... | |
template<typename InputIterator , typename OutputIterator , typename GpsTraits > | |
OutputIterator | CGAL::symmetric_difference (InputIterator begin, InputIterator end, OutputIterator oi, const GpsTraits &traits) |
Given a range of polygons (resp. More... | |
template<typename InputIterator1 , typename InputIterator2 , typename OutputIterator , typename GpsTraits > | |
OutputIterator | CGAL::symmetric_difference (InputIterator1 begin1, InputIterator1 end1, InputIterator2 begin2, InputIterator2 end2, OutputIterator oi, const GpsTraits &traits) |
Given a range of polygons (resp. More... | |
OutputIterator CGAL::symmetric_difference | ( | const Polygon_2< Kernel, Container > & | pgn1, |
const Polygon_2< Kernel, Container > & | pgn2, | ||
OutputIterator | oi | ||
) |
#include <CGAL/Boolean_set_operations_2.h>
computes the symmetric difference between two polygons and inserts the resulting 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 convertible to Polygon_with_holes_2<Kernel, Container> . |
OutputIterator CGAL::symmetric_difference | ( | const Polygon_2< Kernel, Container > & | pgn1, |
const Polygon_2< Kernel, Container > & | pgn2, | ||
OutputIterator | oi, | ||
UsePolylines | = Tag_true() |
||
) |
#include <CGAL/Boolean_set_operations_2.h>
computes the symmetric difference between two polygons and inserts the resulting polygons with holes into a container via an output iterator.
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 convertible to Polygon_with_holes_2<Kernel, Container> . |
OutputIterator CGAL::symmetric_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 symmetric difference between two polygons and inserts the resulting 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 convertible to Polygon_with_holes_2<Kernel, Container> . |
OutputIterator CGAL::symmetric_difference | ( | const Polygon_2< Kernel, Container > & | pgn1, |
const Polygon_with_holes_2< Kernel, Container > & | pgn2, | ||
OutputIterator | oi, | ||
UsePolylines | = Tag_true() |
||
) |
#include <CGAL/Boolean_set_operations_2.h>
computes the symmetric difference between two polygons and inserts the resulting polygons with holes into a container via an output iterator.
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 convertible to Polygon_with_holes_2<Kernel, Container> . |
OutputIterator CGAL::symmetric_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 symmetric difference between two polygons and inserts the resulting 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 convertible to Polygon_with_holes_2<Kernel, Container> . |
OutputIterator CGAL::symmetric_difference | ( | const Polygon_with_holes_2< Kernel, Container > & | pgn1, |
const Polygon_2< Kernel, Container > & | pgn2, | ||
OutputIterator | oi, | ||
UsePolylines | = Tag_true() |
||
) |
#include <CGAL/Boolean_set_operations_2.h>
computes the symmetric difference between two polygons and inserts the resulting polygons with holes into a container via an output iterator.
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 convertible to Polygon_with_holes_2<Kernel, Container> . |
OutputIterator CGAL::symmetric_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 symmetric difference between two polygons with holes and inserts the resulting 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 convertible to Polygon_with_holes_2<Kernel, Container> . |
OutputIterator CGAL::symmetric_difference | ( | const Polygon_with_holes_2< Kernel, Container > & | pgn1, |
const Polygon_with_holes_2< Kernel, Container > & | pgn2, | ||
OutputIterator | oi, | ||
UsePolylines | = Tag_true() |
||
) |
#include <CGAL/Boolean_set_operations_2.h>
computes the symmetric difference between two polygons with holes and inserts the resulting polygons with holes into a container via an output iterator.
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 convertible to Polygon_with_holes_2<Kernel, Container> . |
OutputIterator CGAL::symmetric_difference | ( | const General_polygon_2< ArrTraits > & | pgn1, |
const General_polygon_2< ArrTraits > & | pgn2, | ||
OutputIterator | oi | ||
) |
#include <CGAL/Boolean_set_operations_2.h>
computes the symmetric difference between 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 convertible to General_polygon_with_holes_2<General_polygon_2<ArrTraits>> . |
ArrTraits
must be a model of the concept ArrangementDirectionalXMonotoneTraits_2
. OutputIterator CGAL::symmetric_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 symmetric difference between 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 convertible to General_polygon_with_holes_2<General_polygon_2<ArrTraits>> . |
ArrTraits
must be a model of the concept ArrangementDirectionalXMonotoneTraits_2
. OutputIterator CGAL::symmetric_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 symmetric difference between 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 convertible to General_polygon_with_holes_2<General_polygon_2<ArrTraits>> . |
ArrTraits
must be a model of the concept ArrangementDirectionalXMonotoneTraits_2
. OutputIterator CGAL::symmetric_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 symmetric difference between 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 convertible to General_polygon_with_holes_2<Polygon> . |
OutputIterator CGAL::symmetric_difference | ( | InputIterator | begin, |
InputIterator | end, | ||
OutputIterator | oi | ||
) |
#include <CGAL/Boolean_set_operations_2.h>
Given a range of polygons (resp.
general polygons) or a range of polygons with holes (resp. general polygons with holes) computes the symmetric difference of all polygons in the range and inserts the resulting polygons with holes (resp. general polygons with holes) into a container via an output iterator. A point is contained in the symmetric difference, if and only if it is contained in an odd number of input polygons.
begin | the first iterator of the input range. Its value type is either Polygon_2 (resp. General_polygon_2 ) or Polygon_with_holes_2 (resp. General_polygon_with_holes_2 ). |
end | the past-the-end iterator of the input range. Its value type is either Polygon_2 (resp. General_polygon_2 ) or Polygon_with_holes_2 (resp. General_polygon_with_holes_2 ). |
oi | the output iterator for the result. Its dereference type must be convertible to Polygon_with_holes_2 (resp. General_polygons_with_holes_2 ). |
OutputIterator CGAL::symmetric_difference | ( | InputIterator | begin, |
InputIterator | end, | ||
OutputIterator | oi, | ||
UsePolylines | = Tag_true() |
||
) |
#include <CGAL/Boolean_set_operations_2.h>
Given a range of polygons (resp.
general polygons) or a range of polygons with holes (resp. general polygons with holes) computes the symmetric difference of all polygons in the range and inserts the resulting polygons with holes (resp. general polygons with holes) into a container via an output iterator. A point is contained in the symmetric difference, if and only if it is contained in an odd number of input polygons.
UsePolylines | determines whether the boundaries of the polygons in the input range 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, the input polygons are converted to general polygon 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. |
begin | the first iterator of the input range. Its value type is either Polygon_2 (resp. General_polygon_2 ) or Polygon_with_holes_2 (resp. General_polygon_with_holes_2 ). |
end | the past-the-end iterator of the input range. Its value type is either Polygon_2 (resp. General_polygon_2 ) or Polygon_with_holes_2 (resp. General_polygon_with_holes_2 ). |
oi | the output iterator for the result. Its dereference type must be convertible to Polygon_with_holes_2 (resp. General_polygons_with_holes_2 ). |
OutputIterator CGAL::symmetric_difference | ( | InputIterator1 | begin1, |
InputIterator1 | end1, | ||
InputIterator2 | begin2, | ||
InputIterator2 | end2, | ||
OutputIterator | oi | ||
) |
#include <CGAL/Boolean_set_operations_2.h>
Given a range of polygons (resp.
general polygons) and a range of polygons with holes (resp. general polygons with holes) computes the symmetric difference between all polygons in the two ranges and inserts the resulting polygons with holes (resp. general polygons with holes) into a container via an output iterator. A point is contained in the symmetric difference, if and only if it is contained in an odd number of input polygons.
begin1 | the first iterator of the 1st input range. Its value type is Polygon_2 (resp. General_polygon_2 ). |
end1 | the past-the-end iterator of the 1st input range. Its value type is Polygon_2 (resp. General_polygon_2 ). |
begin2 | the first iterator of the 2nd input range. Its value type is Polygon_with_holes_2 (resp. General_polygon_with_holes_2 ). |
end2 | the past-the-end iterator of the 2nd input range. Its value type is Polygon_with_holes_2 (resp. General_polygon_with_holes_2 ). |
oi | the output iterator for the result. Its dereference type must be convertible to Polygon_with_holes_2 (resp. General_polygons_with_holes_2 ). |
OutputIterator CGAL::symmetric_difference | ( | InputIterator1 | begin1, |
InputIterator1 | end1, | ||
InputIterator2 | begin2, | ||
InputIterator2 | end2, | ||
OutputIterator | oi, | ||
UsePolylines | = Tag_true() |
||
) |
#include <CGAL/Boolean_set_operations_2.h>
Given a range of polygons (resp.
general polygons) and a range of polygons with holes (resp. general polygons with holes) computes the symmetric difference between all polygons in the two ranges and inserts the resulting polygons with holes (resp. general polygons with holes) into a container via an output iterator. A point is contained in the symmetric difference, if and only if it is contained in an odd number of input polygons.
UsePolylines | determines whether the boundaries of the polygons in the input ranges 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, the input polygons are converted to general polygon 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. |
begin1 | the first iterator of the 1st input range. Its value type is Polygon_2 (resp. General_polygon_2 ). |
end1 | the past-the-end iterator of the 1st input range. Its value type is Polygon_2 (resp. General_polygon_2 ). |
begin2 | the first iterator of the 2nd input range. Its value type is Polygon_with_holes_2 (resp. General_polygon_with_holes_2 ). |
end2 | the past-the-end iterator of the 2nd input range. Its value type is Polygon_with_holes_2 (resp. General_polygon_with_holes_2 ). |
oi | the output iterator for the result. Its dereference type must be convertible to Polygon_with_holes_2 (resp. General_polygons_with_holes_2 ). |
OutputIterator CGAL::symmetric_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 symmetric difference between two polygons and inserts the resulting 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 convertible to Polygon_with_holes_2<Kernel, Container> . |
traits | a traits object. |
GeneralPolygonSetTraits_2
. OutputIterator CGAL::symmetric_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 symmetric difference between two polygons and inserts the resulting 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 convertible to Polygon_with_holes_2<Kernel, Container> . |
traits | a traits object. |
GeneralPolygonSetTraits_2
. OutputIterator CGAL::symmetric_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 symmetric difference between two polygons and inserts the resulting 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 convertible to Polygon_with_holes_2<Kernel, Container> . |
traits | a traits object. |
GeneralPolygonSetTraits_2
. OutputIterator CGAL::symmetric_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 symmetric difference between two polygons with holes and inserts the resulting 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 convertible to Polygon_with_holes_2<Kernel, Container> . |
traits | a traits object. |
GeneralPolygonSetTraits_2
. OutputIterator CGAL::symmetric_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 symmetric difference between 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 convertible to General_polygon_with_holes_2<General_polygon_2<ArrTraits>> . |
traits | a traits object. |
ArrTraits
must be a model of the concept ArrangementDirectionalXMonotoneTraits_2
. GeneralPolygonSetTraits_2
. OutputIterator CGAL::symmetric_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 symmetric difference between 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 convertible to General_polygon_with_holes_2<General_polygon_2<ArrTraits>> . |
traits | a traits object. |
ArrTraits
must be a model of the concept ArrangementDirectionalXMonotoneTraits_2
. GeneralPolygonSetTraits_2
. OutputIterator CGAL::symmetric_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 symmetric difference between 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 convertible to General_polygon_with_holes_2<General_polygon_2<ArrTraits>> . |
traits | a traits object. |
ArrTraits
must be a model of the concept ArrangementDirectionalXMonotoneTraits_2
. GeneralPolygonSetTraits_2
. OutputIterator CGAL::symmetric_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 symmetric difference between 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 convertible to General_polygon_with_holes_2<Polygon> . |
traits | a traits object. |
GeneralPolygonSetTraits_2
. OutputIterator CGAL::symmetric_difference | ( | InputIterator | begin, |
InputIterator | end, | ||
OutputIterator | oi, | ||
const GpsTraits & | traits | ||
) |
#include <CGAL/Boolean_set_operations_2.h>
Given a range of polygons (resp.
general polygons) or a range of polygons with holes (resp. general polygons with holes) computes the symmetric difference of all polygons in the range and inserts the resulting polygons with holes (resp. general polygons with holes) into a container via an output iterator. A point is contained in the symmetric difference, if and only if it is contained in an odd number of input polygons.
begin | the first iterator of the input range. Its value type is either Polygon_2 (resp. General_polygon_2 ) or Polygon_with_holes_2 (resp. General_polygon_with_holes_2 ). |
end | the past-the-end iterator of the input range. Its value type is either Polygon_2 (resp. General_polygon_2 ) or Polygon_with_holes_2 (resp. General_polygon_with_holes_2 ). |
oi | the output iterator for the result. Its dereference type must be convertible to Polygon_with_holes_2 (resp. General_polygons_with_holes_2 ). |
traits | a traits object. |
GeneralPolygonSetTraits_2
. OutputIterator CGAL::symmetric_difference | ( | InputIterator1 | begin1, |
InputIterator1 | end1, | ||
InputIterator2 | begin2, | ||
InputIterator2 | end2, | ||
OutputIterator | oi, | ||
const GpsTraits & | traits | ||
) |
#include <CGAL/Boolean_set_operations_2.h>
Given a range of polygons (resp.
general polygons) and a range of polygons with holes (resp. general polygons with holes) computes the symmetric difference between all polygons in the two ranges and inserts the resulting polygons with holes (resp. general polygons with holes) into a container via an output iterator. A point is contained in the symmetric difference, if and only if it is contained in an odd number of input polygons.
begin1 | the first iterator of the 1st input range. Its value type is Polygon_2 (resp. General_polygon_2 ). |
end1 | the past-the-end iterator of the 1st input range. Its value type is Polygon_2 (resp. General_polygon_2 ). |
begin2 | the first iterator of the 2nd input range. Its value type is Polygon_with_holes_2 (resp. General_polygon_with_holes_2 ). |
end2 | the past-the-end iterator of the 2nd input range. Its value type is Polygon_with_holes_2 (resp. General_polygon_with_holes_2 ). |
oi | the output iterator for the result. Its dereference type must be convertible to Polygon_with_holes_2 (resp. General_polygons_with_holes_2 ). |
traits | a traits object. |
GeneralPolygonSetTraits_2
.