$include_dir="/home/hyper-archives/boost-commit/include"; include("$include_dir/msg-header.inc") ?>
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>