]> git.proxmox.com Git - ceph.git/blame - ceph/src/boost/boost/geometry/algorithms/detail/envelope/linear.hpp
Add patch for failing prerm scripts
[ceph.git] / ceph / src / boost / boost / geometry / algorithms / detail / envelope / linear.hpp
CommitLineData
7c673cae
FG
1// Boost.Geometry (aka GGL, Generic Geometry Library)
2
3// Copyright (c) 2007-2015 Barend Gehrels, Amsterdam, the Netherlands.
4// Copyright (c) 2008-2015 Bruno Lalande, Paris, France.
5// Copyright (c) 2009-2015 Mateusz Loskot, London, UK.
6
b32b8144
FG
7// This file was modified by Oracle on 2015, 2016.
8// Modifications copyright (c) 2015-2016, Oracle and/or its affiliates.
7c673cae 9
b32b8144 10// Contributed and/or modified by Vissarion Fysikopoulos, on behalf of Oracle
7c673cae
FG
11// Contributed and/or modified by Menelaos Karavelas, on behalf of Oracle
12
13// Distributed under the Boost Software License, Version 1.0.
14// (See accompanying file LICENSE_1_0.txt or copy at
15// http://www.boost.org/LICENSE_1_0.txt)
16
17#ifndef BOOST_GEOMETRY_ALGORITHMS_DETAIL_ENVELOPE_LINEAR_HPP
18#define BOOST_GEOMETRY_ALGORITHMS_DETAIL_ENVELOPE_LINEAR_HPP
19
20#include <boost/geometry/core/cs.hpp>
21#include <boost/geometry/core/tags.hpp>
22
23#include <boost/geometry/iterators/segment_iterator.hpp>
24
25#include <boost/geometry/algorithms/detail/envelope/range.hpp>
26
27#include <boost/geometry/algorithms/dispatch/envelope.hpp>
28
29
30namespace boost { namespace geometry
31{
32
33#ifndef DOXYGEN_NO_DETAIL
34namespace detail { namespace envelope
35{
36
37
38struct envelope_linestring_on_spheroid
39{
b32b8144
FG
40 template <typename Linestring, typename Box, typename Strategy>
41 static inline void apply(Linestring const& linestring,
42 Box& mbr,
43 Strategy const& strategy)
7c673cae
FG
44 {
45 envelope_range::apply(geometry::segments_begin(linestring),
46 geometry::segments_end(linestring),
b32b8144
FG
47 mbr,
48 strategy);
7c673cae
FG
49 }
50};
51
52
53}} // namespace detail::envelope
54#endif // DOXYGEN_NO_DETAIL
55
56
57#ifndef DOXYGEN_NO_DISPATCH
58namespace dispatch
59{
60
61
62template <typename Linestring, typename CS_Tag>
63struct envelope<Linestring, linestring_tag, CS_Tag>
64 : detail::envelope::envelope_range
65{};
66
67template <typename Linestring>
68struct envelope<Linestring, linestring_tag, spherical_equatorial_tag>
69 : detail::envelope::envelope_linestring_on_spheroid
70{};
71
b32b8144
FG
72template <typename Linestring>
73struct envelope<Linestring, linestring_tag, geographic_tag>
74 : detail::envelope::envelope_linestring_on_spheroid
75{};
76
7c673cae
FG
77
78template <typename MultiLinestring, typename CS_Tag>
79struct envelope
80 <
81 MultiLinestring, multi_linestring_tag, CS_Tag
82 > : detail::envelope::envelope_multi_range
83 <
84 detail::envelope::envelope_range
85 >
86{};
87
88template <typename MultiLinestring>
89struct envelope
90 <
91 MultiLinestring, multi_linestring_tag, spherical_equatorial_tag
92 > : detail::envelope::envelope_multi_range_on_spheroid
93 <
94 detail::envelope::envelope_linestring_on_spheroid
95 >
96{};
97
b32b8144
FG
98template <typename MultiLinestring>
99struct envelope
100 <
101 MultiLinestring, multi_linestring_tag, geographic_tag
102 > : detail::envelope::envelope_multi_range_on_spheroid
103 <
104 detail::envelope::envelope_linestring_on_spheroid
105 >
106{};
7c673cae
FG
107
108} // namespace dispatch
109#endif // DOXYGEN_NO_DISPATCH
110
111
112}} // namespace boost::geometry
113
114#endif // BOOST_GEOMETRY_ALGORITHMS_DETAIL_ENVELOPE_LINEAR_HPP