Boost logo

Boost-Commit :

Subject: [Boost-commit] svn:boost r67396 - in sandbox/geometry/boost/geometry: core multi/algorithms multi/core
From: barend.gehrels_at_[hidden]
Date: 2010-12-21 16:41:51


Author: barendgehrels
Date: 2010-12-21 16:41:49 EST (Tue, 21 Dec 2010)
New Revision: 67396
URL: http://svn.boost.org/trac/boost/changeset/67396

Log:
Added multi/closure.hpp (adaptions for MPL_ASSERT)
Text files modified:
   sandbox/geometry/boost/geometry/core/closure.hpp | 32 ++++++++++++++++++++++++++++++++
   sandbox/geometry/boost/geometry/multi/algorithms/intersection.hpp | 1 +
   sandbox/geometry/boost/geometry/multi/algorithms/union.hpp | 1 +
   sandbox/geometry/boost/geometry/multi/algorithms/within.hpp | 2 ++
   sandbox/geometry/boost/geometry/multi/core/closure.hpp | 5 +++++
   5 files changed, 41 insertions(+), 0 deletions(-)

Modified: sandbox/geometry/boost/geometry/core/closure.hpp
==============================================================================
--- sandbox/geometry/boost/geometry/core/closure.hpp (original)
+++ sandbox/geometry/boost/geometry/core/closure.hpp 2010-12-21 16:41:49 EST (Tue, 21 Dec 2010)
@@ -45,6 +45,26 @@
 } // namespace traits
 
 
+#ifndef DOXYGEN_NO_DETAIL
+namespace core_detail { namespace closure
+{
+
+struct closed
+{
+ static const closure_selector value = geometry::closed;
+};
+
+struct open
+{
+ static const closure_selector value = geometry::open;
+};
+
+
+}} // namespace detail::point_order
+#endif // DOXYGEN_NO_DETAIL
+
+
+
 #ifndef DOXYGEN_NO_DISPATCH
 namespace core_dispatch
 {
@@ -59,6 +79,18 @@
         );
 };
 
+template <typename Box>
+struct closure<point_tag, Box> : public core_detail::closure::open {};
+
+template <typename Box>
+struct closure<box_tag, Box> : public core_detail::closure::closed {};
+
+template <typename Box>
+struct closure<segment_tag, Box> : public core_detail::closure::open {};
+
+template <typename LineString>
+struct closure<linestring_tag, LineString> : public core_detail::closure::open {};
+
 
 template <typename Ring>
 struct closure<ring_tag, Ring>

Modified: sandbox/geometry/boost/geometry/multi/algorithms/intersection.hpp
==============================================================================
--- sandbox/geometry/boost/geometry/multi/algorithms/intersection.hpp (original)
+++ sandbox/geometry/boost/geometry/multi/algorithms/intersection.hpp 2010-12-21 16:41:49 EST (Tue, 21 Dec 2010)
@@ -10,6 +10,7 @@
 
 
 #include <boost/geometry/algorithms/intersection.hpp>
+#include <boost/geometry/multi/core/closure.hpp>
 #include <boost/geometry/multi/core/geometry_id.hpp>
 #include <boost/geometry/multi/core/is_areal.hpp>
 #include <boost/geometry/multi/core/point_order.hpp>

Modified: sandbox/geometry/boost/geometry/multi/algorithms/union.hpp
==============================================================================
--- sandbox/geometry/boost/geometry/multi/algorithms/union.hpp (original)
+++ sandbox/geometry/boost/geometry/multi/algorithms/union.hpp 2010-12-21 16:41:49 EST (Tue, 21 Dec 2010)
@@ -10,6 +10,7 @@
 
 
 #include <boost/geometry/algorithms/union.hpp>
+#include <boost/geometry/multi/core/closure.hpp>
 #include <boost/geometry/multi/core/geometry_id.hpp>
 #include <boost/geometry/multi/core/is_areal.hpp>
 #include <boost/geometry/multi/core/point_order.hpp>

Modified: sandbox/geometry/boost/geometry/multi/algorithms/within.hpp
==============================================================================
--- sandbox/geometry/boost/geometry/multi/algorithms/within.hpp (original)
+++ sandbox/geometry/boost/geometry/multi/algorithms/within.hpp 2010-12-21 16:41:49 EST (Tue, 21 Dec 2010)
@@ -13,6 +13,8 @@
 #include <boost/range.hpp>
 
 #include <boost/geometry/algorithms/within.hpp>
+#include <boost/geometry/multi/core/closure.hpp>
+#include <boost/geometry/multi/core/point_order.hpp>
 #include <boost/geometry/multi/core/tags.hpp>
 
 namespace boost { namespace geometry

Modified: sandbox/geometry/boost/geometry/multi/core/closure.hpp
==============================================================================
--- sandbox/geometry/boost/geometry/multi/core/closure.hpp (original)
+++ sandbox/geometry/boost/geometry/multi/core/closure.hpp 2010-12-21 16:41:49 EST (Tue, 21 Dec 2010)
@@ -24,6 +24,11 @@
 namespace core_dispatch
 {
 
+template <typename Multi>
+struct closure<multi_point_tag, Multi> : public core_detail::closure::closed {};
+
+template <typename Multi>
+struct closure<multi_linestring_tag, Multi> : public core_detail::closure::closed {};
 
 // Specialization for polygon: the closure is the closure of its rings
 template <typename MultiPolygon>


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