From 736f26db4ac2f35b5e80d04bf91efdb323340337 Mon Sep 17 00:00:00 2001 From: Adam Wulkiewicz Date: Tue, 25 Feb 2014 16:47:18 +0100 Subject: [PATCH] get_turns(L,L) turn_position now indicates the global position in linestring, not local in segment, for consistency - this was set only for the first and the last segment --- .../detail/overlay/get_turn_info_ll.hpp | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/include/boost/geometry/algorithms/detail/overlay/get_turn_info_ll.hpp b/include/boost/geometry/algorithms/detail/overlay/get_turn_info_ll.hpp index fa5539a8a..ffc9d5031 100644 --- a/include/boost/geometry/algorithms/detail/overlay/get_turn_info_ll.hpp +++ b/include/boost/geometry/algorithms/detail/overlay/get_turn_info_ll.hpp @@ -21,13 +21,13 @@ namespace boost { namespace geometry { #ifndef DOXYGEN_NO_DETAIL namespace detail { namespace overlay { -enum turn_position { position_none, position_first, position_middle, position_second }; +enum turn_position { position_middle, position_front, position_back }; struct turn_operation_linear : public turn_operation { turn_operation_linear() - : position(position_none) + : position(position_middle) {} turn_position position; @@ -632,8 +632,8 @@ struct get_turn_info_linear_linear bool is_pi_ip, bool is_pj_ip, bool is_qi_ip, bool is_qj_ip, bool enable_first, bool enable_last, - overlay::operation_type p_operation, - overlay::operation_type q_operation, + operation_type p_operation, + operation_type q_operation, TurnInfo const& tp_model, IntersectionResult const& result, OutputIterator out) @@ -671,7 +671,8 @@ struct get_turn_info_linear_linear assign(pi, qi, result, ip, endpoint_ip_method(is_pi_ip, is_pj_ip, is_qi_ip, is_qj_ip), p_operation, q_operation, - ip_position(is_pi_ip, is_pj_ip), ip_position(is_qi_ip, is_qj_ip), + ip_position(is_p_first_ip, is_p_last_ip), + ip_position(is_q_first_ip, is_q_last_ip), tp_model, out); } } @@ -789,9 +790,10 @@ struct get_turn_info_linear_linear return method_touch_interior; } - static inline turn_position ip_position(bool ip_i, bool ip_j) + static inline turn_position ip_position(bool is_ip_first_i, bool is_ip_last_j) { - return ip_i ? position_first : ( ip_j ? position_second : position_middle ); + return is_ip_first_i ? position_front : + ( is_ip_last_j ? position_back : position_middle ); } template