]> git.proxmox.com Git - ceph.git/blob - ceph/src/boost/boost/geometry/strategies/covered_by.hpp
update sources to v12.2.3
[ceph.git] / ceph / src / boost / boost / geometry / strategies / covered_by.hpp
1 // Boost.Geometry (aka GGL, Generic Geometry Library)
2
3 // Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
4 // Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
5 // Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
6
7 // This file was modified by Oracle on 2017.
8 // Modifications copyright (c) 2017, Oracle and/or its affiliates.
9
10 // Contributed and/or modified by Adam Wulkiewicz, on behalf of Oracle
11
12 // Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
13 // (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.
14
15 // Use, modification and distribution is subject to the Boost Software License,
16 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
17 // http://www.boost.org/LICENSE_1_0.txt)
18
19 #ifndef BOOST_GEOMETRY_STRATEGIES_COVERED_BY_HPP
20 #define BOOST_GEOMETRY_STRATEGIES_COVERED_BY_HPP
21
22 #include <boost/mpl/assert.hpp>
23
24 #include <boost/geometry/core/cs.hpp>
25 #include <boost/geometry/core/point_type.hpp>
26 #include <boost/geometry/core/tag.hpp>
27 #include <boost/geometry/core/tags.hpp>
28 #include <boost/geometry/core/tag_cast.hpp>
29
30
31 namespace boost { namespace geometry
32 {
33
34
35 namespace strategy { namespace covered_by
36 {
37
38
39 namespace services
40 {
41
42 /*!
43 \brief Traits class binding a covered_by determination strategy to a coordinate system
44 \ingroup covered_by
45 \tparam GeometryContained geometry-type of input (possibly) contained type
46 \tparam GeometryContaining geometry-type of input (possibly) containing type
47 \tparam TagContained casted tag of (possibly) contained type
48 \tparam TagContaining casted tag of (possibly) containing type
49 \tparam CsTagContained tag of coordinate system of (possibly) contained type
50 \tparam CsTagContaining tag of coordinate system of (possibly) containing type
51 */
52 template
53 <
54 typename GeometryContained,
55 typename GeometryContaining,
56 typename TagContained = typename tag<GeometryContained>::type,
57 typename TagContaining = typename tag<GeometryContaining>::type,
58 typename CastedTagContained = typename tag_cast
59 <
60 typename tag<GeometryContained>::type,
61 pointlike_tag, linear_tag, polygonal_tag, areal_tag
62 >::type,
63 typename CastedTagContaining = typename tag_cast
64 <
65 typename tag<GeometryContaining>::type,
66 pointlike_tag, linear_tag, polygonal_tag, areal_tag
67 >::type,
68 typename CsTagContained = typename tag_cast
69 <
70 typename cs_tag<typename point_type<GeometryContained>::type>::type,
71 spherical_tag
72 >::type,
73 typename CsTagContaining = typename tag_cast
74 <
75 typename cs_tag<typename point_type<GeometryContaining>::type>::type,
76 spherical_tag
77 >::type
78 >
79 struct default_strategy
80 {
81 BOOST_MPL_ASSERT_MSG
82 (
83 false, NOT_IMPLEMENTED_FOR_THESE_TYPES
84 , (types<GeometryContained, GeometryContaining>)
85 );
86 };
87
88
89 } // namespace services
90
91
92 }} // namespace strategy::covered_by
93
94
95 }} // namespace boost::geometry
96
97
98 #endif // BOOST_GEOMETRY_STRATEGIES_COVERED_BY_HPP
99