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 d9767797cf2..3217ece8c79 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 @@ -4,14 +4,19 @@ namespace CGAL { * \ingroup PkgBooleanSetOperations2Ref * \anchor ref_bso_complement * - * The `complement` function is overloaded. Depending on the type of polygon + * There are several overloaded functions called `complement` that computes + * the complement of a given polygon `pgn` . 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`. * - * \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`. + * \param pgn The input polygon for the `complement` function. Its type must + * be convertible to one of the types `Polygon_2`, `General_polygon_2`, + * `Polygon_with_holes_2`, or `General_polygon_with_holes_2`. + * + * \pre `GpsTraits` must be a model of the concept `GeneralPolygonSetTraits_2`. + * \pre `%ArrTraits` must be a model of the concept `ArrangementDirectionalXMonotoneTraits_2`. + * \pre A model of `GpsTraits` must derive from a type that is convertible to a model of `%ArrTraits`. * * \sa \link boolean_do_intersect `CGAL::do_intersect()` \endlink * \sa \link boolean_intersection `CGAL::intersection()` \endlink @@ -23,62 +28,86 @@ namespace CGAL { /// @{ // Traits-less -/*! writes the complement of the polygon `pgn` into the polygon with holes `res`. + +/*! Computes the complement of a polygon. + * \param pgn the input polygon + * \param res the complement of \p pgn. */ 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`. +/*! Computes the complement of a general polygon. + * \param pgn the input polygon + * \param res the complement of \p pgn */ 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`. +/*! Computes the complement of a polygon with holes. + * \param pgn the input polygon + * \param oi the output iterator for the result. + * Its dereference type is `Polygon_with_holes_2`. + * \return the past-the-end iterator of the output container. */ -template +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`. +/*! Computes the complement of a general polygon with holes. + * \param pgn the input polygon + * \param oi the output iterator for the result. + * Its dereference type is + * `General_polygon_with_holes_2< >`. + * \return the past-the-end iterator of the output container. */ template -OutputIterator complement(const General_polygon_with_holes_2 >& pgn, OutputIterator oi); +OutputIterator complement(const General_polygon_with_holes_2 >& pgn, + OutputIterator oi); // With Traits -/*! writes the complement of the polygon `pgn` into the polygon with holes `res`. + +/*! Computes the complement of a polygon. + * \param pgn the input polygon + * \param res the complement of \p pgn + * \param traits a model of `GeneralPolygonSetTraits_2` */ - template +template void complement(const Polygon_2& pgn, Polygon_with_holes_2& res, const GpsTraits& traits); -/*! writes the complement of the general polygon `pgn` into the general polygon - * with holes `res`. +/*! Computes the complement of a general polygon. + * \param pgn the input polygon + * \param res the complement of \p pgn + * \param traits a model of `GeneralPolygonSetTraits_2` */ template void complement(const General_polygon_2& pgn, General_polygon_with_holes_2& res, const GpsTraits& traits); -/*! writes the complement of the polygon with holes `pgn` into the output - * iterator `oi`. - * The value type of `oi` is `Polygon_with_holes_2`. +/*! Computes the complement of a polygon with holes. + * \param pgn the input polygon + * \param oi the output iterator for the result. + * Its dereference type is `Polygon_with_holes_2`. + * \param traits a model of `GeneralPolygonSetTraits_2` + * \return the past-the-end iterator of the output container. */ -template +template OutputIterator complement(const Polygon_with_holes_2& pgn, OutputIterator oi, const GpsTraits& traits); -/*! 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`. +/*! Computes the complement of the general polygon with holes. + * \param pgn the input polygon + * \param oi the output iterator for the result. + * Its dereference type is + * `General_polygon_with_holes_2< >`. + * \param traits a model of `GeneralPolygonSetTraits_2` + * \return the past-the-end iterator of the output container. */ template OutputIterator complement(const General_polygon_with_holes_2 >& pgn, @@ -124,6 +153,10 @@ namespace CGAL { * * * + * \pre `GpsTraits` must be a model of the concept `GeneralPolygonSetTraits_2`. + * \pre `%ArrTraits` must be a model of the concept `ArrangementDirectionalXMonotoneTraits_2`. + * \pre A model of `GpsTraits` must derive from a type that is convertible to a model of `%ArrTraits`. + * * \sa \link boolean_do_intersect `CGAL::do_intersect()` \endlink * \sa \link boolean_intersection `CGAL::intersection()` \endlink * \sa \link boolean_join `CGAL::join()` \endlink @@ -238,6 +271,10 @@ namespace CGAL { * * * + * \pre `GpsTraits` must be a model of the concept `GeneralPolygonSetTraits_2`. + * \pre `%ArrTraits` must be a model of the concept `ArrangementDirectionalXMonotoneTraits_2`. + * \pre A model of `GpsTraits` must derive from a type that is convertible to a model of `%ArrTraits`. + * * \sa \link boolean_intersection `CGAL::intersection()` \endlink * \sa \link boolean_join `CGAL::join()` \endlink * \sa \link boolean_difference `CGAL::difference()` \endlink @@ -355,6 +392,10 @@ namespace CGAL { * * * + * \pre `GpsTraits` must be a model of the concept `GeneralPolygonSetTraits_2`. + * \pre `%ArrTraits` must be a model of the concept `ArrangementDirectionalXMonotoneTraits_2`. + * \pre A model of `GpsTraits` must derive from a type that is convertible to a model of `%ArrTraits`. + * * \sa \link boolean_do_intersect `CGAL::do_intersect()` \endlink * \sa \link boolean_join `CGAL::join()` \endlink * \sa \link boolean_difference `CGAL::difference()` \endlink @@ -495,6 +536,10 @@ namespace CGAL { * * * + * \pre `GpsTraits` must be a model of the concept `GeneralPolygonSetTraits_2`. + * \pre `%ArrTraits` must be a model of the concept `ArrangementDirectionalXMonotoneTraits_2`. + * \pre A model of `GpsTraits` must derive from a type that is convertible to a model of `%ArrTraits`. + * * \sa \link boolean_do_intersect `CGAL::do_intersect()` \endlink * \sa \link boolean_intersection `CGAL::intersection()` \endlink * \sa \link boolean_difference `CGAL::difference()` \endlink @@ -604,8 +649,9 @@ namespace CGAL { * \ingroup PkgBooleanSetOperations2Ref * \anchor ref_bso_oriented_side * - * `Oriented_side()` refers to a group of overloaded functions divided into - * two subgroups. + * There are several overloaded functions called `Oriented_side()` that computes + * the relative position of two polygons or of a point and a polygon. This group + * of functions is divided into two subgroups. * * \cgalHeading{Oriented Side of two Polygons} * @@ -825,6 +871,10 @@ namespace CGAL { * * * + * \pre `GpsTraits` must be a model of the concept `GeneralPolygonSetTraits_2`. + * \pre `%ArrTraits` must be a model of the concept `ArrangementDirectionalXMonotoneTraits_2`. + * \pre A model of `GpsTraits` must derive from a type that is convertible to a model of `%ArrTraits`. + * * \sa \link boolean_do_intersect `CGAL::do_intersect()` \endlink * \sa \link boolean_intersection `CGAL::intersection()` \endlink * \sa \link boolean_join `CGAL::join()` \endlink