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