summaryrefslogtreecommitdiff
path: root/boost/geometry/algorithms/detail/relate/turns.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'boost/geometry/algorithms/detail/relate/turns.hpp')
-rw-r--r--boost/geometry/algorithms/detail/relate/turns.hpp24
1 files changed, 16 insertions, 8 deletions
diff --git a/boost/geometry/algorithms/detail/relate/turns.hpp b/boost/geometry/algorithms/detail/relate/turns.hpp
index 09d74dec3a..6fa05eaf21 100644
--- a/boost/geometry/algorithms/detail/relate/turns.hpp
+++ b/boost/geometry/algorithms/detail/relate/turns.hpp
@@ -2,8 +2,8 @@
// Copyright (c) 2007-2015 Barend Gehrels, Amsterdam, the Netherlands.
-// This file was modified by Oracle on 2013, 2014, 2015.
-// Modifications copyright (c) 2013-2015 Oracle and/or its affiliates.
+// This file was modified by Oracle on 2013, 2014, 2015, 2017.
+// Modifications copyright (c) 2013-2017 Oracle and/or its affiliates.
// Contributed and/or modified by Adam Wulkiewicz, on behalf of Oracle
// Contributed and/or modified by Menelaos Karavelas, on behalf of Oracle
@@ -75,28 +75,35 @@ struct get_turns
{
detail::get_turns::no_interrupt_policy interrupt_policy;
- apply(turns, geometry1, geometry2, interrupt_policy);
+ typename strategy::intersection::services::default_strategy
+ <
+ typename cs_tag<Geometry1>::type
+ >::type intersection_strategy;
+
+ apply(turns, geometry1, geometry2, interrupt_policy, intersection_strategy);
}
- template <typename Turns, typename InterruptPolicy>
+ template <typename Turns, typename InterruptPolicy, typename IntersectionStrategy>
static inline void apply(Turns & turns,
Geometry1 const& geometry1,
Geometry2 const& geometry2,
- InterruptPolicy & interrupt_policy)
+ InterruptPolicy & interrupt_policy,
+ IntersectionStrategy const& intersection_strategy)
{
RobustPolicy robust_policy = geometry::get_rescale_policy
<
RobustPolicy
>(geometry1, geometry2);
- apply(turns, geometry1, geometry2, interrupt_policy, robust_policy);
+ apply(turns, geometry1, geometry2, interrupt_policy, intersection_strategy, robust_policy);
}
- template <typename Turns, typename InterruptPolicy>
+ template <typename Turns, typename InterruptPolicy, typename IntersectionStrategy>
static inline void apply(Turns & turns,
Geometry1 const& geometry1,
Geometry2 const& geometry2,
InterruptPolicy & interrupt_policy,
+ IntersectionStrategy const& intersection_strategy,
RobustPolicy const& robust_policy)
{
static const bool reverse1 = detail::overlay::do_reverse
@@ -119,7 +126,8 @@ struct get_turns
reverse2,
GetTurnPolicy
>::apply(0, geometry1, 1, geometry2,
- robust_policy, turns, interrupt_policy);
+ intersection_strategy, robust_policy,
+ turns, interrupt_policy);
}
};