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