]> git.proxmox.com Git - ceph.git/blob - ceph/src/boost/boost/geometry/algorithms/detail/equals/point_point.hpp
bump version to 18.2.4-pve3
[ceph.git] / ceph / src / boost / boost / geometry / algorithms / detail / equals / point_point.hpp
1 // Boost.Geometry (aka GGL, Generic Geometry Library)
2
3 // Copyright (c) 2007-2014 Barend Gehrels, Amsterdam, the Netherlands.
4 // Copyright (c) 2008-2014 Bruno Lalande, Paris, France.
5 // Copyright (c) 2009-2014 Mateusz Loskot, London, UK.
6 // Copyright (c) 2013-2014 Adam Wulkiewicz, Lodz, Poland
7
8 // This file was modified by Oracle on 2013-2020.
9 // Modifications copyright (c) 2013-2020, Oracle and/or its affiliates.
10
11 // Contributed and/or modified by Adam Wulkiewicz, on behalf of Oracle
12 // Contributed and/or modified by Menelaos Karavelas, on behalf of Oracle
13
14 // Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
15 // (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.
16
17 // Use, modification and distribution is subject to the Boost Software License,
18 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
19 // http://www.boost.org/LICENSE_1_0.txt)
20
21 #ifndef BOOST_GEOMETRY_ALGORITHMS_DETAIL_EQUALS_POINT_POINT_HPP
22 #define BOOST_GEOMETRY_ALGORITHMS_DETAIL_EQUALS_POINT_POINT_HPP
23
24
25 #include <type_traits>
26
27 #include <boost/geometry/strategies/detail.hpp>
28
29
30 namespace boost { namespace geometry
31 {
32
33 #ifndef DOXYGEN_NO_DETAIL
34 namespace detail { namespace equals
35 {
36
37 /*!
38 \brief Internal utility function to detect of points are disjoint
39 \note To avoid circular references
40 */
41 template
42 <
43 typename Point1, typename Point2, typename Strategy,
44 std::enable_if_t<strategies::detail::is_umbrella_strategy<Strategy>::value, int> = 0
45 >
46 inline bool equals_point_point(Point1 const& point1, Point2 const& point2,
47 Strategy const& strategy)
48 {
49 typedef decltype(strategy.relate(point1, point2)) strategy_type;
50 return strategy_type::apply(point1, point2);
51 }
52
53 template
54 <
55 typename Point1, typename Point2, typename Strategy,
56 std::enable_if_t<! strategies::detail::is_umbrella_strategy<Strategy>::value, int> = 0
57 >
58 inline bool equals_point_point(Point1 const& point1, Point2 const& point2,
59 Strategy const& )
60 {
61 return Strategy::apply(point1, point2);
62 }
63
64 }} // namespace detail::equals
65 #endif // DOXYGEN_NO_DETAIL
66
67 }} // namespace boost::geometry
68
69 #endif // BOOST_GEOMETRY_ALGORITHMS_DETAIL_EQUALS_POINT_POINT_HPP