Boost logo

Boost-Commit :

Subject: [Boost-commit] svn:boost r81955 - in trunk/boost/geometry: algorithms algorithms/detail multi multi/algorithms
From: barend.gehrels_at_[hidden]
Date: 2012-12-14 17:12:13


Author: barendgehrels
Date: 2012-12-14 17:12:12 EST (Fri, 14 Dec 2012)
New Revision: 81955
URL: http://svn.boost.org/trac/boost/changeset/81955

Log:
[geometry] added combinations point/ring, point/polygon, point/multi_polygon for disjoint and intersects
Added:
   trunk/boost/geometry/multi/algorithms/disjoint.hpp (contents, props changed)
Text files modified:
   trunk/boost/geometry/algorithms/detail/disjoint.hpp | 14 ++++++++++++++
   trunk/boost/geometry/algorithms/disjoint.hpp | 10 ++++++++++
   trunk/boost/geometry/multi/multi.hpp | 1 +
   3 files changed, 25 insertions(+), 0 deletions(-)

Modified: trunk/boost/geometry/algorithms/detail/disjoint.hpp
==============================================================================
--- trunk/boost/geometry/algorithms/detail/disjoint.hpp (original)
+++ trunk/boost/geometry/algorithms/detail/disjoint.hpp 2012-12-14 17:12:12 EST (Fri, 14 Dec 2012)
@@ -26,6 +26,7 @@
 #include <boost/geometry/core/coordinate_dimension.hpp>
 #include <boost/geometry/core/reverse_dispatch.hpp>
 
+#include <boost/geometry/algorithms/covered_by.hpp>
 
 #include <boost/geometry/util/math.hpp>
 
@@ -165,6 +166,19 @@
 };
 
 
+template
+<
+ typename Geometry1, typename Geometry2
+>
+struct reverse_covered_by
+{
+ static inline bool apply(Geometry1 const& geometry1, Geometry2 const& geometry2)
+ {
+ return ! geometry::covered_by(geometry1, geometry2);
+ }
+};
+
+
 
 /*!
     \brief Internal utility function to detect of boxes are disjoint

Modified: trunk/boost/geometry/algorithms/disjoint.hpp
==============================================================================
--- trunk/boost/geometry/algorithms/disjoint.hpp (original)
+++ trunk/boost/geometry/algorithms/disjoint.hpp 2012-12-14 17:12:12 EST (Fri, 14 Dec 2012)
@@ -234,6 +234,16 @@
     : detail::disjoint::point_box<Point, Box, 0, DimensionCount>
 {};
 
+template <typename Point, typename Ring, std::size_t DimensionCount, bool Reverse>
+struct disjoint<Point, Ring, DimensionCount, point_tag, ring_tag, Reverse>
+ : detail::disjoint::reverse_covered_by<Point, Ring>
+{};
+
+template <typename Point, typename Polygon, std::size_t DimensionCount, bool Reverse>
+struct disjoint<Point, Polygon, DimensionCount, point_tag, polygon_tag, Reverse>
+ : detail::disjoint::reverse_covered_by<Point, Polygon>
+{};
+
 template <typename Linestring1, typename Linestring2, bool Reverse>
 struct disjoint<Linestring1, Linestring2, 2, linestring_tag, linestring_tag, Reverse>
     : detail::disjoint::disjoint_linear<Linestring1, Linestring2>

Added: trunk/boost/geometry/multi/algorithms/disjoint.hpp
==============================================================================
--- (empty file)
+++ trunk/boost/geometry/multi/algorithms/disjoint.hpp 2012-12-14 17:12:12 EST (Fri, 14 Dec 2012)
@@ -0,0 +1,41 @@
+// Boost.Geometry (aka GGL, Generic Geometry Library)
+
+// Copyright (c) 2012 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2012 Bruno Lalande, Paris, France.
+// Copyright (c) 2012 Mateusz Loskot, London, UK.
+
+// Use, modification and distribution is subject to the Boost Software License,
+// Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
+// http://www.boost.org/LICENSE_1_0.txt)
+
+#ifndef BOOST_GEOMETRY_MULTI_ALGORITHMS_DISJOINT_HPP
+#define BOOST_GEOMETRY_MULTI_ALGORITHMS_DISJOINT_HPP
+
+
+#include <boost/geometry/algorithms/disjoint.hpp>
+#include <boost/geometry/multi/algorithms/covered_by.hpp>
+
+
+namespace boost { namespace geometry
+{
+
+
+#ifndef DOXYGEN_NO_DISPATCH
+namespace dispatch
+{
+
+template <typename Point, typename MultiPolygon>
+struct disjoint<Point, MultiPolygon, 2, point_tag, multi_polygon_tag, false>
+ : detail::disjoint::reverse_covered_by<Point, MultiPolygon>
+{};
+
+} // namespace dispatch
+
+
+#endif // DOXYGEN_NO_DISPATCH
+
+
+}} // namespace boost::geometry
+
+
+#endif // BOOST_GEOMETRY_MULTI_ALGORITHMS_DISJOINT_HPP

Modified: trunk/boost/geometry/multi/multi.hpp
==============================================================================
--- trunk/boost/geometry/multi/multi.hpp (original)
+++ trunk/boost/geometry/multi/multi.hpp 2012-12-14 17:12:12 EST (Fri, 14 Dec 2012)
@@ -32,6 +32,7 @@
 #include <boost/geometry/multi/algorithms/convert.hpp>
 #include <boost/geometry/multi/algorithms/correct.hpp>
 #include <boost/geometry/multi/algorithms/covered_by.hpp>
+#include <boost/geometry/multi/algorithms/disjoint.hpp>
 #include <boost/geometry/multi/algorithms/distance.hpp>
 #include <boost/geometry/multi/algorithms/envelope.hpp>
 #include <boost/geometry/multi/algorithms/equals.hpp>


Boost-Commit list run by bdawes at acm.org, david.abrahams at rcn.com, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk