mirror of https://github.com/CGAL/cgal
Used the explicit type Gps_segment_traits_2 to resolve ambiguity
This commit is contained in:
parent
81cab3b2bc
commit
eed57c67a9
|
|
@ -25,6 +25,7 @@
|
||||||
#include <CGAL/Minkowski_sum_2/Minkowski_sum_conv_2.h>
|
#include <CGAL/Minkowski_sum_2/Minkowski_sum_conv_2.h>
|
||||||
#include <CGAL/Minkowski_sum_2/Minkowski_sum_decomp_2.h>
|
#include <CGAL/Minkowski_sum_2/Minkowski_sum_decomp_2.h>
|
||||||
#include <CGAL/Polygon_nop_decomposition_2.h>
|
#include <CGAL/Polygon_nop_decomposition_2.h>
|
||||||
|
#include <CGAL/Gps_segment_traits_2.h>
|
||||||
|
|
||||||
#include <list>
|
#include <list>
|
||||||
|
|
||||||
|
|
@ -306,6 +307,17 @@ minkowski_sum_2(const Polygon_2<Kernel_, Container_>& pgn1,
|
||||||
* \param[in] decomposition_strategy A functor for decomposing polygons.
|
* \param[in] decomposition_strategy A functor for decomposing polygons.
|
||||||
* \param[in] traits The traits.
|
* \param[in] traits The traits.
|
||||||
* \return The resulting polygon with holes, representing the sum.
|
* \return The resulting polygon with holes, representing the sum.
|
||||||
|
*
|
||||||
|
* The type of the last argument, namely,
|
||||||
|
* Gps_segment_traits_2<Kernel_, Container_>
|
||||||
|
* and the type
|
||||||
|
* const typename Minkowski_sum_by_decomposition_2<DecompositionStrategy1_,
|
||||||
|
* DecompositionStrategy2_,
|
||||||
|
* Container_>::Traits_2>
|
||||||
|
* are exchangable except for in one case, where there is an ambiguity.
|
||||||
|
* Thus, we use the former, even though it is less generic, as change to the
|
||||||
|
* traits type in Minkowski_sum_by_decomposition_2 would require a similar
|
||||||
|
* change here.
|
||||||
*/
|
*/
|
||||||
template <typename Kernel_, typename Container_,
|
template <typename Kernel_, typename Container_,
|
||||||
typename DecompositionStrategy1_, typename DecompositionStrategy2_>
|
typename DecompositionStrategy1_, typename DecompositionStrategy2_>
|
||||||
|
|
@ -314,10 +326,7 @@ minkowski_sum_2(const Polygon_2<Kernel_, Container_>& pgn1,
|
||||||
const Polygon_2<Kernel_, Container_>& pgn2,
|
const Polygon_2<Kernel_, Container_>& pgn2,
|
||||||
const DecompositionStrategy1_& decomposition_strategy1,
|
const DecompositionStrategy1_& decomposition_strategy1,
|
||||||
const DecompositionStrategy2_& decomposition_strategy2,
|
const DecompositionStrategy2_& decomposition_strategy2,
|
||||||
const typename
|
const Gps_segment_traits_2<Kernel_, Container_>& traits)
|
||||||
Minkowski_sum_by_decomposition_2<DecompositionStrategy1_,
|
|
||||||
DecompositionStrategy2_,
|
|
||||||
Container_>::Traits_2& traits)
|
|
||||||
{
|
{
|
||||||
typedef Container_ Container;
|
typedef Container_ Container;
|
||||||
typedef DecompositionStrategy1_ Decomposition_strategy1;
|
typedef DecompositionStrategy1_ Decomposition_strategy1;
|
||||||
|
|
@ -372,10 +381,7 @@ minkowski_sum_2(const Polygon_with_holes_2<Kernel_, Container_>& pgn1,
|
||||||
const Polygon_with_holes_2<Kernel_, Container_>& pgn2,
|
const Polygon_with_holes_2<Kernel_, Container_>& pgn2,
|
||||||
const DecompositionStrategy1_& decomposition_strategy1,
|
const DecompositionStrategy1_& decomposition_strategy1,
|
||||||
const DecompositionStrategy2_& decomposition_strategy2,
|
const DecompositionStrategy2_& decomposition_strategy2,
|
||||||
const typename
|
const Gps_segment_traits_2<Kernel_, Container_>& traits)
|
||||||
Minkowski_sum_by_decomposition_2<DecompositionStrategy1_,
|
|
||||||
DecompositionStrategy2_,
|
|
||||||
Container_>::Traits_2& traits)
|
|
||||||
{
|
{
|
||||||
typedef Kernel_ Kernel;
|
typedef Kernel_ Kernel;
|
||||||
typedef Container_ Container;
|
typedef Container_ Container;
|
||||||
|
|
@ -435,10 +441,7 @@ minkowski_sum_2(const Polygon_2<Kernel_, Container_>& pgn1,
|
||||||
const Polygon_with_holes_2<Kernel_, Container_>& pgn2,
|
const Polygon_with_holes_2<Kernel_, Container_>& pgn2,
|
||||||
const DecompositionStrategy1_& decomposition_strategy1,
|
const DecompositionStrategy1_& decomposition_strategy1,
|
||||||
const DecompositionStrategy2_& decomposition_strategy2,
|
const DecompositionStrategy2_& decomposition_strategy2,
|
||||||
const typename
|
const Gps_segment_traits_2<Kernel_, Container_>& traits)
|
||||||
Minkowski_sum_by_decomposition_2<DecompositionStrategy1_,
|
|
||||||
DecompositionStrategy2_,
|
|
||||||
Container_>::Traits_2& traits)
|
|
||||||
{
|
{
|
||||||
typedef Kernel_ Kernel;
|
typedef Kernel_ Kernel;
|
||||||
typedef Container_ Container;
|
typedef Container_ Container;
|
||||||
|
|
@ -449,7 +452,7 @@ minkowski_sum_2(const Polygon_2<Kernel_, Container_>& pgn1,
|
||||||
Decomposition_strategy2, Container>
|
Decomposition_strategy2, Container>
|
||||||
mink_sum(decomposition_strategy1, decomposition_strategy2, traits);
|
mink_sum(decomposition_strategy1, decomposition_strategy2, traits);
|
||||||
Hole_filter_2<Kernel, Container> hole_filter;
|
Hole_filter_2<Kernel, Container> hole_filter;
|
||||||
Polygon_with_holes_2<Kernel,Container> filtered_pgn2;
|
Polygon_with_holes_2<Kernel, Container> filtered_pgn2;
|
||||||
hole_filter(pgn2, pgn1, filtered_pgn2);
|
hole_filter(pgn2, pgn1, filtered_pgn2);
|
||||||
return mink_sum(pgn1, filtered_pgn2);
|
return mink_sum(pgn1, filtered_pgn2);
|
||||||
}
|
}
|
||||||
|
|
@ -496,10 +499,7 @@ minkowski_sum_2(const Polygon_with_holes_2<Kernel_, Container_>& pgn1,
|
||||||
const Polygon_2<Kernel_, Container_>& pgn2,
|
const Polygon_2<Kernel_, Container_>& pgn2,
|
||||||
const DecompositionStrategy1_& decomposition_strategy1,
|
const DecompositionStrategy1_& decomposition_strategy1,
|
||||||
const DecompositionStrategy2_& decomposition_strategy2,
|
const DecompositionStrategy2_& decomposition_strategy2,
|
||||||
const typename
|
const Gps_segment_traits_2<Kernel_, Container_>& traits)
|
||||||
Minkowski_sum_by_decomposition_2<DecompositionStrategy1_,
|
|
||||||
DecompositionStrategy2_,
|
|
||||||
Container_>::Traits_2& traits)
|
|
||||||
{
|
{
|
||||||
return minkowski_sum_2(pgn2, pgn1,
|
return minkowski_sum_2(pgn2, pgn1,
|
||||||
decomposition_strategy2, decomposition_strategy1,
|
decomposition_strategy2, decomposition_strategy1,
|
||||||
|
|
@ -550,10 +550,7 @@ Polygon_with_holes_2<Kernel_, Container_>
|
||||||
minkowski_sum_2(const Polygon_2<Kernel_, Container_>& pgn1,
|
minkowski_sum_2(const Polygon_2<Kernel_, Container_>& pgn1,
|
||||||
const Polygon_2<Kernel_, Container_>& pgn2,
|
const Polygon_2<Kernel_, Container_>& pgn2,
|
||||||
const DecompositionStrategy1_& decomposition_strategy1,
|
const DecompositionStrategy1_& decomposition_strategy1,
|
||||||
const typename
|
const Gps_segment_traits_2<Kernel_, Container_>& traits)
|
||||||
Minkowski_sum_by_decomposition_2<DecompositionStrategy1_,
|
|
||||||
DecompositionStrategy1_,
|
|
||||||
Container_>::Traits_2& traits)
|
|
||||||
{
|
{
|
||||||
typedef Container_ Container;
|
typedef Container_ Container;
|
||||||
typedef DecompositionStrategy1_ Decomposition_strategy1;
|
typedef DecompositionStrategy1_ Decomposition_strategy1;
|
||||||
|
|
@ -605,10 +602,7 @@ Polygon_with_holes_2<Kernel_, Container_>
|
||||||
minkowski_sum_2(const Polygon_with_holes_2<Kernel_, Container_>& pgn1,
|
minkowski_sum_2(const Polygon_with_holes_2<Kernel_, Container_>& pgn1,
|
||||||
const Polygon_with_holes_2<Kernel_, Container_>& pgn2,
|
const Polygon_with_holes_2<Kernel_, Container_>& pgn2,
|
||||||
const DecompositionStrategy1_& decomposition_strategy1,
|
const DecompositionStrategy1_& decomposition_strategy1,
|
||||||
const typename
|
const Gps_segment_traits_2<Kernel_, Container_>& traits)
|
||||||
Minkowski_sum_by_decomposition_2<DecompositionStrategy1_,
|
|
||||||
DecompositionStrategy1_,
|
|
||||||
Container_>::Traits_2& traits)
|
|
||||||
{
|
{
|
||||||
typedef Kernel_ Kernel;
|
typedef Kernel_ Kernel;
|
||||||
typedef Container_ Container;
|
typedef Container_ Container;
|
||||||
|
|
@ -665,10 +659,7 @@ Polygon_with_holes_2<Kernel_, Container_>
|
||||||
minkowski_sum_2(const Polygon_2<Kernel_, Container_>& pgn1,
|
minkowski_sum_2(const Polygon_2<Kernel_, Container_>& pgn1,
|
||||||
const Polygon_with_holes_2<Kernel_, Container_>& pgn2,
|
const Polygon_with_holes_2<Kernel_, Container_>& pgn2,
|
||||||
const DecompositionStrategy1_& decomposition_strategy1,
|
const DecompositionStrategy1_& decomposition_strategy1,
|
||||||
const typename
|
const Gps_segment_traits_2<Kernel_, Container_>& traits)
|
||||||
Minkowski_sum_by_decomposition_2<DecompositionStrategy1_,
|
|
||||||
DecompositionStrategy1_,
|
|
||||||
Container_>::Traits_2& traits)
|
|
||||||
{
|
{
|
||||||
typedef Kernel_ Kernel;
|
typedef Kernel_ Kernel;
|
||||||
typedef Container_ Container;
|
typedef Container_ Container;
|
||||||
|
|
@ -723,10 +714,7 @@ Polygon_with_holes_2<Kernel_, Container_>
|
||||||
minkowski_sum_2(const Polygon_with_holes_2<Kernel_, Container_>& pgn1,
|
minkowski_sum_2(const Polygon_with_holes_2<Kernel_, Container_>& pgn1,
|
||||||
const Polygon_2<Kernel_, Container_>& pgn2,
|
const Polygon_2<Kernel_, Container_>& pgn2,
|
||||||
const DecompositionStrategy1_& decomposition_strategy1,
|
const DecompositionStrategy1_& decomposition_strategy1,
|
||||||
const typename
|
const Gps_segment_traits_2<Kernel_, Container_>& traits)
|
||||||
Minkowski_sum_by_decomposition_2<DecompositionStrategy1_,
|
|
||||||
DecompositionStrategy1_,
|
|
||||||
Container_>::Traits_2& traits)
|
|
||||||
{
|
{
|
||||||
return minkowski_sum_2(pgn2, pgn1,
|
return minkowski_sum_2(pgn2, pgn1,
|
||||||
decomposition_strategy1, decomposition_strategy1,
|
decomposition_strategy1, decomposition_strategy1,
|
||||||
|
|
@ -773,8 +761,7 @@ minkowski_sum_by_decomposition_2
|
||||||
(const Polygon_2<Kernel_, Container_>& pgn1,
|
(const Polygon_2<Kernel_, Container_>& pgn1,
|
||||||
const Polygon_2<Kernel_, Container_>& pgn2,
|
const Polygon_2<Kernel_, Container_>& pgn2,
|
||||||
const Decomposition_& decomp,
|
const Decomposition_& decomp,
|
||||||
const typename Minkowski_sum_by_decomposition_2<Decomposition_, Decomposition_,
|
const Gps_segment_traits_2<Kernel_, Container_>& traits)
|
||||||
Container_>::Traits_2& traits)
|
|
||||||
{
|
{
|
||||||
typedef Kernel_ Kernel;
|
typedef Kernel_ Kernel;
|
||||||
typedef Container_ Container;
|
typedef Container_ Container;
|
||||||
|
|
@ -852,9 +839,7 @@ minkowski_sum_by_decomposition_2
|
||||||
const Polygon_with_holes_2<Kernel_, Container_>& pgn2,
|
const Polygon_with_holes_2<Kernel_, Container_>& pgn2,
|
||||||
const NoHolesDecomposition_& decomp_no_holes,
|
const NoHolesDecomposition_& decomp_no_holes,
|
||||||
const WithHolesDecomposition_& decomp_with_holes,
|
const WithHolesDecomposition_& decomp_with_holes,
|
||||||
const typename Minkowski_sum_by_decomposition_2<NoHolesDecomposition_,
|
const Gps_segment_traits_2<Kernel_, Container_>& traits)
|
||||||
WithHolesDecomposition_,
|
|
||||||
Container_>::Traits_2& traits)
|
|
||||||
{
|
{
|
||||||
typedef Kernel_ Kernel;
|
typedef Kernel_ Kernel;
|
||||||
typedef Container_ Container;
|
typedef Container_ Container;
|
||||||
|
|
@ -997,9 +982,7 @@ minkowski_sum_by_decomposition_2
|
||||||
const Polygon_with_holes_2<Kernel_, Container_>& pgn2,
|
const Polygon_with_holes_2<Kernel_, Container_>& pgn2,
|
||||||
const NoHolesDecomposition_& decomp_no_holes,
|
const NoHolesDecomposition_& decomp_no_holes,
|
||||||
const WithHolesDecomposition_& decomp_with_holes,
|
const WithHolesDecomposition_& decomp_with_holes,
|
||||||
const typename Minkowski_sum_by_decomposition_2<NoHolesDecomposition_,
|
const Gps_segment_traits_2<Kernel_, Container_>& traits)
|
||||||
WithHolesDecomposition_,
|
|
||||||
Container_>::Traits_2& traits)
|
|
||||||
{
|
{
|
||||||
typedef Kernel_ Kernel;
|
typedef Kernel_ Kernel;
|
||||||
typedef Container_ Container;
|
typedef Container_ Container;
|
||||||
|
|
@ -1106,9 +1089,7 @@ minkowski_sum_by_decomposition_2
|
||||||
const Polygon_2<Kernel_, Container_>& pgn2,
|
const Polygon_2<Kernel_, Container_>& pgn2,
|
||||||
const NoHoleDecomposition_& decomp_no_holes,
|
const NoHoleDecomposition_& decomp_no_holes,
|
||||||
const WithHolesDecomposition_& decomp_with_holes,
|
const WithHolesDecomposition_& decomp_with_holes,
|
||||||
const typename Minkowski_sum_by_decomposition_2<NoHoleDecomposition_,
|
const Gps_segment_traits_2<Kernel_, Container_>& traits)
|
||||||
WithHolesDecomposition_,
|
|
||||||
Container_>::Traits_2& traits)
|
|
||||||
{
|
{
|
||||||
return minkowski_sum_by_decomposition_2(pgn2, pgn1,
|
return minkowski_sum_by_decomposition_2(pgn2, pgn1,
|
||||||
decomp_no_holes, decomp_with_holes,
|
decomp_no_holes, decomp_with_holes,
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue