1 // Boost.Geometry (aka GGL, Generic Geometry Library) 2 3 // Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands. 4 // Copyright (c) 2013 Adam Wulkiewicz, Lodz, Poland 5 6 // Use, modification and distribution is subject to the Boost Software License, 7 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at 8 // http://www.boost.org/LICENSE_1_0.txt) 9 10 #ifndef BOOST_GEOMETRY_ALGORITHMS_DETAIL_OVERLAY_DO_REVERSE_HPP 11 #define BOOST_GEOMETRY_ALGORITHMS_DETAIL_OVERLAY_DO_REVERSE_HPP 12 13 #include <boost/geometry/core/point_order.hpp> 14 15 namespace boost { namespace geometry 16 { 17 18 19 #ifndef DOXYGEN_NO_DETAIL 20 namespace detail { namespace overlay 21 { 22 23 // Metafunction helper for intersection and union 24 template <order_selector Selector, bool Reverse = false> 25 struct do_reverse {}; 26 27 template <> 28 struct do_reverse<clockwise, false> : boost::false_type {}; 29 30 template <> 31 struct do_reverse<clockwise, true> : boost::true_type {}; 32 33 template <> 34 struct do_reverse<counterclockwise, false> : boost::true_type {}; 35 36 template <> 37 struct do_reverse<counterclockwise, true> : boost::false_type {}; 38 39 40 }} // namespace detail::overlay 41 #endif // DOXYGEN_NO_DETAIL 42 43 44 }} // namespace boost::geometry 45 46 47 #endif // BOOST_GEOMETRY_ALGORITHMS_DETAIL_OVERLAY_DO_REVERSE_HPP 48