summaryrefslogtreecommitdiff
path: root/boost/geometry/algorithms/detail/overlay/self_turn_points.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'boost/geometry/algorithms/detail/overlay/self_turn_points.hpp')
-rw-r--r--boost/geometry/algorithms/detail/overlay/self_turn_points.hpp25
1 files changed, 16 insertions, 9 deletions
diff --git a/boost/geometry/algorithms/detail/overlay/self_turn_points.hpp b/boost/geometry/algorithms/detail/overlay/self_turn_points.hpp
index 8dffeae283..b1f984ffe1 100644
--- a/boost/geometry/algorithms/detail/overlay/self_turn_points.hpp
+++ b/boost/geometry/algorithms/detail/overlay/self_turn_points.hpp
@@ -23,9 +23,12 @@
#include <boost/geometry/algorithms/detail/disjoint/box_box.hpp>
#include <boost/geometry/algorithms/detail/partition.hpp>
#include <boost/geometry/algorithms/detail/overlay/get_turns.hpp>
+#include <boost/geometry/algorithms/detail/sections/section_box_policies.hpp>
#include <boost/geometry/geometries/box.hpp>
+#include <boost/geometry/util/condition.hpp>
+
namespace boost { namespace geometry
{
@@ -96,7 +99,7 @@ struct self_section_visitor
m_rescale_policy,
m_turns, m_interrupt_policy);
}
- if (m_interrupt_policy.has_intersections)
+ if (BOOST_GEOMETRY_CONDITION(m_interrupt_policy.has_intersections))
{
// TODO: we should give partition an interrupt policy.
// Now we throw, and catch below, to stop the partition loop.
@@ -121,15 +124,19 @@ struct get_turns
{
typedef model::box
<
- typename geometry::point_type<Geometry>::type
+ typename geometry::robust_point_type
+ <
+ typename geometry::point_type<Geometry>::type,
+ RobustPolicy
+ >::type
> box_type;
- typedef typename geometry::sections
- <
- box_type, 1
- > sections_type;
+
+ typedef geometry::sections<box_type, 1> sections_type;
+
+ typedef boost::mpl::vector_c<std::size_t, 0> dimensions;
sections_type sec;
- geometry::sectionalize<false>(geometry, robust_policy, false, sec);
+ geometry::sectionalize<false, dimensions>(geometry, robust_policy, sec);
self_section_visitor
<
@@ -142,8 +149,8 @@ struct get_turns
geometry::partition
<
box_type,
- detail::get_turns::get_section_box,
- detail::get_turns::ovelaps_section_box
+ detail::section::get_section_box,
+ detail::section::overlaps_section_box
>::apply(sec, visitor);
}
catch(self_ip_exception const& )