diff --git a/include/boost/geometry/algorithms/detail/group_dim.hpp b/include/boost/geometry/algorithms/detail/group_dim.hpp new file mode 100644 index 000000000..a5c445b88 --- /dev/null +++ b/include/boost/geometry/algorithms/detail/group_dim.hpp @@ -0,0 +1,79 @@ +// Boost.Geometry (aka GGL, Generic Geometry Library) + +// Copyright (c) 2014 Oracle and/or its affiliates. + +// Use, modification and distribution is subject to the Boost Software License, +// Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) + +// Contributed and/or modified by Adam Wulkiewicz, on behalf of Oracle + +#ifndef BOOST_GEOMETRY_ALGORITHMS_DETAIL_GROUP_DIM_HPP +#define BOOST_GEOMETRY_ALGORITHMS_DETAIL_GROUP_DIM_HPP + +#include + +#include + +namespace boost { namespace geometry { + +#ifndef DOXYGEN_NO_DETAIL +namespace detail { + +template ::type, + bool IsPoint = boost::is_base_of::value, + bool IsLinear = boost::is_base_of::value, + bool IsAreal = boost::is_base_of::value> +struct group_tag + : not_implemented +{}; + +template +struct group_tag +{ + typedef pointlike_tag type; +}; + +template +struct group_tag +{ + typedef linear_tag type; +}; + +template +struct group_tag +{ + typedef areal_tag type; +}; + +template ::type> +struct group_dim + : not_implemented +{}; + +template +struct group_dim +{ + static const int value = 0; +}; + +template +struct group_dim +{ + static const int value = 1; +}; + +template +struct group_dim +{ + static const int value = 2; +}; + +} // namespace detail +#endif // DOXYGEN_NO_DETAIL + +}} // namespace boost::geometry + +#endif // BOOST_GEOMETRY_ALGORITHMS_DETAIL_GROUP_DIM_HPP diff --git a/include/boost/geometry/algorithms/detail/overlay/get_turns.hpp b/include/boost/geometry/algorithms/detail/overlay/get_turns.hpp index c84057f3f..aa615e154 100644 --- a/include/boost/geometry/algorithms/detail/overlay/get_turns.hpp +++ b/include/boost/geometry/algorithms/detail/overlay/get_turns.hpp @@ -735,71 +735,6 @@ struct get_turns_polygon_cs } }; -}} // namespace detail::get_turns -#endif // DOXYGEN_NO_DETAIL - -// TODO: move group_tag and group_dim to separate file - -#ifndef DOXYGEN_NO_DETAIL -namespace detail { - -template ::type, - bool IsPoint = boost::is_base_of::value, - bool IsLinear = boost::is_base_of::value, - bool IsAreal = boost::is_base_of::value> -struct group_tag - : not_implemented -{}; - -template -struct group_tag -{ - typedef pointlike_tag type; -}; - -template -struct group_tag -{ - typedef linear_tag type; -}; - -template -struct group_tag -{ - typedef areal_tag type; -}; - -template ::type> -struct group_dim - : not_implemented -{}; - -template -struct group_dim -{ - static const int value = 0; -}; - -template -struct group_dim -{ - static const int value = 1; -}; - -template -struct group_dim -{ - static const int value = 2; -}; - -} // namespace detail -#endif // DOXYGEN_NO_DETAIL - -#ifndef DOXYGEN_NO_DETAIL -namespace detail { namespace get_turns { - // GET_TURN_INFO_TYPE template #include #include