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 // Copyright (c) 2013-2015 Adam Wulkiewicz, Lodz, Poland. 7 8 // This file was modified by Oracle on 2013, 2014, 2015. 9 // Modifications copyright (c) 2013-2015, 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_DISJOINT_POINT_GEOMETRY_HPP 22 #define BOOST_GEOMETRY_ALGORITHMS_DETAIL_DISJOINT_POINT_GEOMETRY_HPP 23 24 #include <boost/geometry/algorithms/covered_by.hpp> 25 26 #include <boost/geometry/algorithms/detail/disjoint/linear_linear.hpp> 27 28 #include <boost/geometry/algorithms/dispatch/disjoint.hpp> 29 30 31 namespace boost { namespace geometry 32 { 33 34 35 #ifndef DOXYGEN_NO_DETAIL 36 namespace detail { namespace disjoint 37 { 38 39 40 struct reverse_covered_by 41 { 42 template <typename Geometry1, typename Geometry2, typename Strategy> applyboost::geometry::detail::disjoint::reverse_covered_by43 static inline bool apply(Geometry1 const& geometry1, 44 Geometry2 const& geometry2, 45 Strategy const& strategy) 46 { 47 return ! geometry::covered_by(geometry1, geometry2, strategy); 48 } 49 }; 50 51 52 }} // namespace detail::disjoint 53 #endif // DOXYGEN_NO_DETAIL 54 55 56 57 58 #ifndef DOXYGEN_NO_DISPATCH 59 namespace dispatch 60 { 61 62 63 template<typename Point, typename Linear, std::size_t DimensionCount> 64 struct disjoint<Point, Linear, DimensionCount, point_tag, linear_tag, false> 65 : detail::disjoint::reverse_covered_by 66 {}; 67 68 69 template <typename Point, typename Areal, std::size_t DimensionCount> 70 struct disjoint<Point, Areal, DimensionCount, point_tag, areal_tag, false> 71 : detail::disjoint::reverse_covered_by 72 {}; 73 74 75 template<typename Point, typename Segment, std::size_t DimensionCount> 76 struct disjoint<Point, Segment, DimensionCount, point_tag, segment_tag, false> 77 : detail::disjoint::reverse_covered_by 78 {}; 79 80 81 } // namespace dispatch 82 #endif // DOXYGEN_NO_DISPATCH 83 84 85 }} // namespace boost::geometry 86 87 88 89 #endif // BOOST_GEOMETRY_ALGORITHMS_DETAIL_DISJOINT_POINT_GEOMETRY_HPP 90