1 // Boost.Geometry (aka GGL, Generic Geometry Library)
3 // Copyright (c) 2014-2015, Oracle and/or its affiliates.
5 // Contributed and/or modified by Menelaos Karavelas, on behalf of Oracle
7 // Licensed under the Boost Software License version 1.0.
8 // http://www.boost.org/users/license.html
10 #ifndef BOOST_GEOMETRY_ALGORITHMS_DETAIL_IS_VALID_DEBUG_PRINT_TURNS_HPP
11 #define BOOST_GEOMETRY_ALGORITHMS_DETAIL_IS_VALID_DEBUG_PRINT_TURNS_HPP
13 #ifdef BOOST_GEOMETRY_TEST_DEBUG
16 #include <boost/geometry/io/dsv/write.hpp>
17 #include <boost/geometry/algorithms/detail/overlay/debug_turn_info.hpp>
21 namespace boost { namespace geometry
24 namespace detail { namespace is_valid
27 #ifdef BOOST_GEOMETRY_TEST_DEBUG
28 template <typename Turn>
29 inline void debug_print_turn(Turn const& turn)
32 << geometry::method_char(turn.method)
34 << geometry::operation_char(turn.operations[0].operation)
36 << geometry::operation_char(turn.operations[1].operation)
38 << turn.operations[0].seg_id.multi_index
40 << turn.operations[1].seg_id.multi_index
42 << turn.operations[0].seg_id.ring_index
44 << turn.operations[1].seg_id.ring_index
46 << turn.operations[0].seg_id.segment_index
48 << turn.operations[1].seg_id.segment_index
50 << geometry::dsv(turn.point)
54 template <typename TurnIterator>
55 inline void debug_print_turns(TurnIterator first, TurnIterator beyond)
57 std::cout << "turns:";
58 for (TurnIterator tit = first; tit != beyond; ++tit)
60 debug_print_turn(*tit);
62 std::cout << std::endl << std::endl;
65 template <typename Turn>
66 inline void debug_print_turn(Turn const&)
69 template <typename TurnIterator>
70 inline void debug_print_turns(TurnIterator, TurnIterator)
72 #endif // BOOST_GEOMETRY_TEST_DEBUG
74 }} // namespace detail::is_valid
76 }} // namespace boost::geometry
78 #endif // BOOST_GEOMETRY_ALGORITHMS_DETAIL_IS_VALID_DEBUG_PRINT_TURNS_HPP