1 // Boost.Geometry 2 3 // Copyright (c) 2021, Oracle and/or its affiliates. 4 5 // Contributed and/or modified by Adam Wulkiewicz, on behalf of Oracle 6 7 // Licensed under the Boost Software License version 1.0. 8 // http://www.boost.org/users/license.html 9 10 #ifndef BOOST_GEOMETRY_ALGORITHMS_DETAIL_DUMMY_GEOMETRIES_HPP 11 #define BOOST_GEOMETRY_ALGORITHMS_DETAIL_DUMMY_GEOMETRIES_HPP 12 13 14 #include <boost/geometry/core/tag.hpp> 15 #include <boost/geometry/core/tags.hpp> 16 17 18 namespace boost { namespace geometry 19 { 20 21 22 #ifndef DOXYGEN_NO_DETAIL 23 namespace detail 24 { 25 26 struct dummy_point {}; 27 struct dummy_segment {}; 28 struct dummy_box {}; 29 struct dummy_linestring {}; 30 struct dummy_ring {}; 31 struct dummy_polygon {}; 32 struct dummy_multi_point {}; 33 struct dummy_multi_linestring {}; 34 struct dummy_multi_polygon {}; 35 36 } // namespace detail 37 #endif // DOXYGEN_NO_DETAIL 38 39 namespace traits 40 { 41 42 template <> struct tag<geometry::detail::dummy_point> { typedef point_tag type; }; 43 template <> struct tag<geometry::detail::dummy_segment> { typedef segment_tag type; }; 44 template <> struct tag<geometry::detail::dummy_box> { typedef box_tag type; }; 45 template <> struct tag<geometry::detail::dummy_linestring> { typedef linestring_tag type; }; 46 template <> struct tag<geometry::detail::dummy_ring> { typedef ring_tag type; }; 47 template <> struct tag<geometry::detail::dummy_polygon> { typedef polygon_tag type; }; 48 template <> struct tag<geometry::detail::dummy_multi_point> { typedef multi_point_tag type; }; 49 template <> struct tag<geometry::detail::dummy_multi_linestring> { typedef multi_linestring_tag type; }; 50 template <> struct tag<geometry::detail::dummy_multi_polygon> { typedef multi_polygon_tag type; }; 51 52 } // namespace traits 53 54 }} // namespace boost::geometry 55 56 #endif // BOOST_GEOMETRY_ALGORITHMS_DETAIL_DUMMY_GEOMETRIES_HPP 57