diff options
Diffstat (limited to 'boost/geometry/algorithms/detail/relate/turns.hpp')
-rw-r--r-- | boost/geometry/algorithms/detail/relate/turns.hpp | 24 |
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); } }; |