diff --git a/Boolean_set_operations_2/doc/Boolean_set_operations_2/CGAL/Boolean_set_operations_2.h b/Boolean_set_operations_2/doc/Boolean_set_operations_2/CGAL/Boolean_set_operations_2.h
index ce81aec3fdb..8c68af0c832 100644
--- a/Boolean_set_operations_2/doc/Boolean_set_operations_2/CGAL/Boolean_set_operations_2.h
+++ b/Boolean_set_operations_2/doc/Boolean_set_operations_2/CGAL/Boolean_set_operations_2.h
@@ -5,32 +5,17 @@ namespace CGAL {
\ingroup PkgBooleanSetOperations2
\anchor ref_bso_complement
-Each one of these functions computes the complement of a given
-polygon `pgn`, and stores the resulting polygon with holes in
-`res`.
+The `complement` function is overloaded. Depending on the
+type of polygon `pgn` the complement is either a single (general) polygon with
+holes, or several (general) poylgons with holes. In the latter case
+the `complement function` writes them into an output iterator
+`oi`.
-
-
-| Arg type |
-| Polygon_2 |
-| General_polygon_2 |
-
-
+\param pgn The input polygon for the `complement` function. It may be of the type
+`Polygon_2`, `General_polygon_2`, `Polygon_with_holes_2`, or
+`General_polygon_with_holes_2`.
-Each one of these functions computes the complement of a given
-polygon `pgn`, inserts the resulting polygons with
-holes into an output container through a given output iterator
-`oi`, and returns the output iterator. The value type of the
-`OutputIterator` is either `Polygon_with_holes_2` or
-`General_polygon_with_holes_2`.
-
-
-| Arg type |
-| Polygon_with_holes_2 |
-| General_polygon_with_holes_2 |
-
-
\sa `CGAL::do_intersect`
\sa `CGAL::intersection`
@@ -39,12 +24,30 @@ holes into an output container through a given output iterator
\sa `CGAL::symmetric_difference`
*/
/// @{
+
+/*!
+ writes the complement of the polygon `pgn` into the polygon with holes `res`.
+ */
template
void complement(const Polygon_2 & pgn, Polygon_with_holes_2 & res);
+
+/*!
+ writes the complement of the general polygon `pgn` into the general polygon with holes `res`.
+ */
template
void complement(const General_polygon_2 & pgn, General_polygon_with_holes_2 & res);
+
+/*!
+ writes the complement of the polygon with holes `pgn` into the output iterator `oi`.
+ The value type of `oi` is `Polygon_with_holes_2`.
+ */
template
OutputIterator complement(const Polygon_with_holes_2 & pgn, OutputIterator oi);
+
+/*!
+ writes the complement of the general polygon with holes `pgn` into the output iterator `oi`.
+ The value type of `oi` is `General_polygon_with_holes_2`.
+ */
template
OutputIterator complement(const General_polygon_with_holes_2 > & pgn, OutputIterator oi);
/// @}
@@ -54,7 +57,9 @@ OutputIterator complement(const General_polygon_with_holes_2
+The signature of the function is
+\code
+ OutputIterator
+ difference(const Type1 & p1, const Type2 & p2, OutputIterator oi);
+\endcode
+
+###Parameters###
+
+The types of the paramters of the `difference` function are any of the following combinations.
+
+
-| Arg 1 type | Arg 2 type |
+| Type1 | Type2 |
| Polygon_2 | Polygon_2 |
| Polygon_2 | Polygon_with_holes_2 |
| Polygon_with_holes_2 | Polygon_2 |
@@ -77,7 +91,6 @@ CONVERROR HtmlOnly needs treatment
| General_polygon_with_holes_2 | General_polygon_with_holes_2 |
-CONVERROR EndHtmlOnly
\sa `CGAL::do_intersect`
\sa `CGAL::intersection`
@@ -86,303 +99,83 @@ CONVERROR EndHtmlOnly
*/
-OutputIterator difference(const Type1 & p1, const Type2 & p2,
-OutputIterator oi);
+
+/// @{
/*!
-\ingroup PkgBooleanSetOperations2
-
-Each one of these functions computes the difference between two given
-polygons `p1` and `p2`, and inserts the resulting polygons
-with holes into an output container through the output iterator `oi`.
-The value type of the `OutputIterator` is either
-`Polygon_with_holes_2` or
-`General_polygon_with_holes_2`.
-
-CONVERROR HtmlOnly needs treatment
-
-
-| Arg 1 type | Arg 2 type |
-| Polygon_2 | Polygon_2 |
-| Polygon_2 | Polygon_with_holes_2 |
-| Polygon_with_holes_2 | Polygon_2 |
-| Polygon_with_holes_2 | Polygon_with_holes_2 |
-| General_polygon_2 | General_polygon_2 |
-| General_polygon_2 | General_polygon_with_holes_2 |
-| General_polygon_with_holes_2 | General_polygon_2 |
-| General_polygon_with_holes_2 | General_polygon_with_holes_2 |
-
-
-CONVERROR EndHtmlOnly
-
-\sa `CGAL::do_intersect`
-\sa `CGAL::intersection`
-\sa `CGAL::join`
-\sa `CGAL::symmetric_difference`
-
-*/
+ writes the difference of the polygons `p1` and `p2` into the output iterator `oi`.
+ The value type of `oi` is `Polygon_with_holes_2`.
+ */
template
OutputIterator difference(const Polygon_2 & p1,
-const Polygon_2 & p2,
-OutputIterator oi);
+ const Polygon_2 & p2,
+ OutputIterator oi);
/*!
-\ingroup PkgBooleanSetOperations2
-
-Each one of these functions computes the difference between two given
-polygons `p1` and `p2`, and inserts the resulting polygons
-with holes into an output container through the output iterator `oi`.
-The value type of the `OutputIterator` is either
-`Polygon_with_holes_2` or
-`General_polygon_with_holes_2`.
-
-CONVERROR HtmlOnly needs treatment
-
-
-| Arg 1 type | Arg 2 type |
-| Polygon_2 | Polygon_2 |
-| Polygon_2 | Polygon_with_holes_2 |
-| Polygon_with_holes_2 | Polygon_2 |
-| Polygon_with_holes_2 | Polygon_with_holes_2 |
-| General_polygon_2 | General_polygon_2 |
-| General_polygon_2 | General_polygon_with_holes_2 |
-| General_polygon_with_holes_2 | General_polygon_2 |
-| General_polygon_with_holes_2 | General_polygon_with_holes_2 |
-
-
-CONVERROR EndHtmlOnly
-
-\sa `CGAL::do_intersect`
-\sa `CGAL::intersection`
-\sa `CGAL::join`
-\sa `CGAL::symmetric_difference`
-
-*/
+ writes the difference of the polygons `p1` and `p2` into the output iterator `oi`.
+ The value type of `oi` is `Polygon_with_holes_2`.
+ */
template
OutputIterator difference(const Polygon_2 & p1,
-const Polygon_with_holes_2 & p2,
-OutputIterator oi);
+ const Polygon_with_holes_2 & p2,
+ OutputIterator oi);
/*!
-\ingroup PkgBooleanSetOperations2
-
-Each one of these functions computes the difference between two given
-polygons `p1` and `p2`, and inserts the resulting polygons
-with holes into an output container through the output iterator `oi`.
-The value type of the `OutputIterator` is either
-`Polygon_with_holes_2` or
-`General_polygon_with_holes_2`.
-
-CONVERROR HtmlOnly needs treatment
-
-
-| Arg 1 type | Arg 2 type |
-| Polygon_2 | Polygon_2 |
-| Polygon_2 | Polygon_with_holes_2 |
-| Polygon_with_holes_2 | Polygon_2 |
-| Polygon_with_holes_2 | Polygon_with_holes_2 |
-| General_polygon_2 | General_polygon_2 |
-| General_polygon_2 | General_polygon_with_holes_2 |
-| General_polygon_with_holes_2 | General_polygon_2 |
-| General_polygon_with_holes_2 | General_polygon_with_holes_2 |
-
-
-CONVERROR EndHtmlOnly
-
-\sa `CGAL::do_intersect`
-\sa `CGAL::intersection`
-\sa `CGAL::join`
-\sa `CGAL::symmetric_difference`
-
-*/
+ writes the difference of the polygons `p1` and `p2` into the output iterator `oi`.
+ The value type of `oi` is `Polygon_with_holes_2`.
+ */
template
OutputIterator difference(const Polygon_with_holes_2 & p1,
-const Polygon_2 & p2,
-OutputIterator oi);
+ const Polygon_2 & p2,
+ OutputIterator oi);
/*!
-\ingroup PkgBooleanSetOperations2
-
-Each one of these functions computes the difference between two given
-polygons `p1` and `p2`, and inserts the resulting polygons
-with holes into an output container through the output iterator `oi`.
-The value type of the `OutputIterator` is either
-`Polygon_with_holes_2` or
-`General_polygon_with_holes_2`.
-
-CONVERROR HtmlOnly needs treatment
-
-
-| Arg 1 type | Arg 2 type |
-| Polygon_2 | Polygon_2 |
-| Polygon_2 | Polygon_with_holes_2 |
-| Polygon_with_holes_2 | Polygon_2 |
-| Polygon_with_holes_2 | Polygon_with_holes_2 |
-| General_polygon_2 | General_polygon_2 |
-| General_polygon_2 | General_polygon_with_holes_2 |
-| General_polygon_with_holes_2 | General_polygon_2 |
-| General_polygon_with_holes_2 | General_polygon_with_holes_2 |
-
-
-CONVERROR EndHtmlOnly
-
-\sa `CGAL::do_intersect`
-\sa `CGAL::intersection`
-\sa `CGAL::join`
-\sa `CGAL::symmetric_difference`
-
-*/
+ writes the difference of the polygons `p1` and `p2` into the output iterator `oi`.
+ The value type of `oi` is `Polygon_with_holes_2`.
+ */
template
OutputIterator difference(const Polygon_with_holes_2 & p1,
-const Polygon_with_holes_2 & p2,
-OutputIterator oi);
+ const Polygon_with_holes_2 & p2,
+ OutputIterator oi);
/*!
-\ingroup PkgBooleanSetOperations2
-
-Each one of these functions computes the difference between two given
-polygons `p1` and `p2`, and inserts the resulting polygons
-with holes into an output container through the output iterator `oi`.
-The value type of the `OutputIterator` is either
-`Polygon_with_holes_2` or
-`General_polygon_with_holes_2`.
-
-CONVERROR HtmlOnly needs treatment
-
-
-| Arg 1 type | Arg 2 type |
-| Polygon_2 | Polygon_2 |
-| Polygon_2 | Polygon_with_holes_2 |
-| Polygon_with_holes_2 | Polygon_2 |
-| Polygon_with_holes_2 | Polygon_with_holes_2 |
-| General_polygon_2 | General_polygon_2 |
-| General_polygon_2 | General_polygon_with_holes_2 |
-| General_polygon_with_holes_2 | General_polygon_2 |
-| General_polygon_with_holes_2 | General_polygon_with_holes_2 |
-
-
-CONVERROR EndHtmlOnly
-
-\sa `CGAL::do_intersect`
-\sa `CGAL::intersection`
-\sa `CGAL::join`
-\sa `CGAL::symmetric_difference`
-
-*/
+ writes the difference of the general polygons `p1` and `p2` into the output iterator `oi`.
+ The value type of `oi` is `General_polygon_with_holes_2`.
+ */
template
OutputIterator difference(const General_polygon_2 & p1,
-const General_polygon_2 & p2,
-OutputIterator oi);
+ const General_polygon_2 & p2,
+ OutputIterator oi);
/*!
-\ingroup PkgBooleanSetOperations2
-
-Each one of these functions computes the difference between two given
-polygons `p1` and `p2`, and inserts the resulting polygons
-with holes into an output container through the output iterator `oi`.
-The value type of the `OutputIterator` is either
-`Polygon_with_holes_2` or
-`General_polygon_with_holes_2`.
-
-CONVERROR HtmlOnly needs treatment
-
-
-| Arg 1 type | Arg 2 type |
-| Polygon_2 | Polygon_2 |
-| Polygon_2 | Polygon_with_holes_2 |
-| Polygon_with_holes_2 | Polygon_2 |
-| Polygon_with_holes_2 | Polygon_with_holes_2 |
-| General_polygon_2 | General_polygon_2 |
-| General_polygon_2 | General_polygon_with_holes_2 |
-| General_polygon_with_holes_2 | General_polygon_2 |
-| General_polygon_with_holes_2 | General_polygon_with_holes_2 |
-
-
-CONVERROR EndHtmlOnly
-
-\sa `CGAL::do_intersect`
-\sa `CGAL::intersection`
-\sa `CGAL::join`
-\sa `CGAL::symmetric_difference`
-
-*/
+ writes the difference of the general polygons `p1` and `p2` into the output iterator `oi`.
+ The value type of `oi` is `General_polygon_with_holes_2`.
+ */
template
OutputIterator difference(const General_polygon_with_holes_2 > & p1,
-const General_polygon_2 & p2,
-OutputIterator oi);
+ const General_polygon_2 & p2,
+ OutputIterator oi);
+
/*!
-\ingroup PkgBooleanSetOperations2
-
-Each one of these functions computes the difference between two given
-polygons `p1` and `p2`, and inserts the resulting polygons
-with holes into an output container through the output iterator `oi`.
-The value type of the `OutputIterator` is either
-`Polygon_with_holes_2` or
-`General_polygon_with_holes_2`.
-
-CONVERROR HtmlOnly needs treatment
-
-
-| Arg 1 type | Arg 2 type |
-| Polygon_2 | Polygon_2 |
-| Polygon_2 | Polygon_with_holes_2 |
-| Polygon_with_holes_2 | Polygon_2 |
-| Polygon_with_holes_2 | Polygon_with_holes_2 |
-| General_polygon_2 | General_polygon_2 |
-| General_polygon_2 | General_polygon_with_holes_2 |
-| General_polygon_with_holes_2 | General_polygon_2 |
-| General_polygon_with_holes_2 | General_polygon_with_holes_2 |
-
-
-CONVERROR EndHtmlOnly
-
-\sa `CGAL::do_intersect`
-\sa `CGAL::intersection`
-\sa `CGAL::join`
-\sa `CGAL::symmetric_difference`
-
-*/
+ writes the difference of the general polygons `p1` and `p2` into the output iterator `oi`.
+ The value type of `oi` is `General_polygon_with_holes_2`.
+ */
template
OutputIterator difference(const General_polygon_2 & p1,
-const General_polygon_with_holes_2 > & p2,
-OutputIterator oi);
+ const General_polygon_with_holes_2 > & p2,
+ OutputIterator oi);
+
/*!
-\ingroup PkgBooleanSetOperations2
-
-Each one of these functions computes the difference between two given
-polygons `p1` and `p2`, and inserts the resulting polygons
-with holes into an output container through the output iterator `oi`.
-The value type of the `OutputIterator` is either
-`Polygon_with_holes_2` or
-`General_polygon_with_holes_2`.
-
-CONVERROR HtmlOnly needs treatment
-
-
-| Arg 1 type | Arg 2 type |
-| Polygon_2 | Polygon_2 |
-| Polygon_2 | Polygon_with_holes_2 |
-| Polygon_with_holes_2 | Polygon_2 |
-| Polygon_with_holes_2 | Polygon_with_holes_2 |
-| General_polygon_2 | General_polygon_2 |
-| General_polygon_2 | General_polygon_with_holes_2 |
-| General_polygon_with_holes_2 | General_polygon_2 |
-| General_polygon_with_holes_2 | General_polygon_with_holes_2 |
-
-
-CONVERROR EndHtmlOnly
-
-\sa `CGAL::do_intersect`
-\sa `CGAL::intersection`
-\sa `CGAL::join`
-\sa `CGAL::symmetric_difference`
-
-*/
+ writes the difference of the general polygons `p1` and `p2` into the output iterator `oi`.
+ The value type of `oi` is `General_polygon_with_holes_2`.
+ */
template
OutputIterator difference(const General_polygon_with_holes_2 & p1,
-const General_polygon_with_holes_2 & p2);
+ const General_polygon_with_holes_2 & p2,
+ OutputIterator oi);
+/// @}
} /* namespace CGAL */
diff --git a/Boolean_set_operations_2/doc/Boolean_set_operations_2/CGAL/General_polygon_2.h b/Boolean_set_operations_2/doc/Boolean_set_operations_2/CGAL/General_polygon_2.h
index 375600d3a4d..db4e79b8054 100644
--- a/Boolean_set_operations_2/doc/Boolean_set_operations_2/CGAL/General_polygon_2.h
+++ b/Boolean_set_operations_2/doc/Boolean_set_operations_2/CGAL/General_polygon_2.h
@@ -92,7 +92,7 @@ by the points themselves in counterclockwise order, followed by the number of ho
and for each hole, the number of points of the outer boundary is followed
by the points themselves in clockwise order.
-\relate General_polygon_2
+\relates General_polygon_2
*/
template
std::istream& operator>>(std::istream& in, CGAL::General_polygon_2& P);
@@ -113,7 +113,7 @@ comments.
The number of curves of the outer boundary is exported followed by the
curves themselves in counterclockwise order.
-\relate General_polygon_2
+\relates General_polygon_2
*/
template
std::ostream& operator<<(std::ostream& out, CGAL::General_polygon_2& P);
diff --git a/Boolean_set_operations_2/doc/Boolean_set_operations_2/CGAL/General_polygon_with_holes_2.h b/Boolean_set_operations_2/doc/Boolean_set_operations_2/CGAL/General_polygon_with_holes_2.h
index e6cbe5670e8..3426cbee2e4 100644
--- a/Boolean_set_operations_2/doc/Boolean_set_operations_2/CGAL/General_polygon_with_holes_2.h
+++ b/Boolean_set_operations_2/doc/Boolean_set_operations_2/CGAL/General_polygon_with_holes_2.h
@@ -41,7 +41,7 @@ by the number of holes, and for each hole, the number of curves on its
outer boundary is followed by the curves themselves in clockwise
order.
-\relate General_polygon_with_holes_2
+\relates General_polygon_with_holes_2
*/
template
std::istream& operator>>(std::istream& in, CGAL::General_polygon_with_holes_2& P);
@@ -65,7 +65,7 @@ is exported, and for each hole, the number of curves on its outer
boundary is exported followed by the curves themselves in clockwise
order.
-\relate General_polygon_with_holes_2
+\relates General_polygon_with_holes_2
*/
template
std::ostream& operator<<(std::ostream& out, CGAL::General_polygon_with_holes_2& P);
diff --git a/Boolean_set_operations_2/doc/Boolean_set_operations_2/CGAL/Polygon_with_holes_2.h b/Boolean_set_operations_2/doc/Boolean_set_operations_2/CGAL/Polygon_with_holes_2.h
index b7e122413b1..890b8d697cf 100644
--- a/Boolean_set_operations_2/doc/Boolean_set_operations_2/CGAL/Polygon_with_holes_2.h
+++ b/Boolean_set_operations_2/doc/Boolean_set_operations_2/CGAL/Polygon_with_holes_2.h
@@ -32,7 +32,7 @@ by the points themselves in counterclockwise order, followed by the number of ho
and for each hole, the number of points of the outer boundary is followed
by the points themselves in clockwise order.
-\relate Polygon_with_holes_2
+\relates Polygon_with_holes_2
*/
template
std::istream& operator>>(std::istream& in, CGAL::Polygon_with_holes_2& P);
@@ -56,7 +56,7 @@ is exported, and for each hole, the number of points on its outer
boundary is exported followed by the points themselves in clockwise
order.
-\relate Polygon_with_holes_2
+\relates Polygon_with_holes_2
*/
template
std::ostream& operator<<(std::ostream& out, CGAL::Polygon_with_holes_2& P);