From 52ab626f69b6516b02a2d892d3f0e0f34a04fdf2 Mon Sep 17 00:00:00 2001 From: Menelaos Karavelas Date: Wed, 18 Jun 2014 14:27:13 +0300 Subject: [PATCH] [algorithms][is_valid] in polygon validity algorithm, replace the robustness policy used from no_rescale_policy to the appropriate rescale_policy type --- .../algorithms/detail/is_valid/polygon.hpp | 28 +++++++++++-------- 1 file changed, 17 insertions(+), 11 deletions(-) diff --git a/include/boost/geometry/algorithms/detail/is_valid/polygon.hpp b/include/boost/geometry/algorithms/detail/is_valid/polygon.hpp index 2d43076bd..5ec35f545 100644 --- a/include/boost/geometry/algorithms/detail/is_valid/polygon.hpp +++ b/include/boost/geometry/algorithms/detail/is_valid/polygon.hpp @@ -16,7 +16,6 @@ #include -#include #include #include #include @@ -26,15 +25,14 @@ #include -#include -#include +#include +#include #include #include #include -#include #include #include #include @@ -214,30 +212,38 @@ public: #ifdef GEOMETRY_TEST_DEBUG std::cout << "computing and analyzing turns..." << std::endl; #endif + typedef typename geometry::rescale_policy_type + < + point_type + >::type rescale_policy_type; + typedef detail::overlay::turn_info < point_type, - geometry::segment_ratio + typename geometry::segment_ratio_type < - typename geometry::coordinate_type::type - > + point_type, + rescale_policy_type + >::type > turn_info; typedef detail::overlay::get_turn_info < - detail::disjoint::assign_disjoint_policy + detail::overlay::assign_null_policy > turn_policy; + rescale_policy_type robust_policy + = geometry::get_rescale_policy(polygon); std::deque turns; detail::self_get_turn_points::no_interrupt_policy interrupt_policy; - // MK:: change the no_rescale_policy to rescale-to-integer geometry::self_turns(polygon, - detail::no_rescale_policy(), + robust_policy, turns, interrupt_policy); -#if GEOMETRY_TEST_DEBUG + +#ifdef GEOMETRY_TEST_DEBUG std::cout << "turns:"; for (typename std::deque::const_iterator tit = turns.begin(); tit != turns.end(); ++tit)