From 3d7dc39f28cbebb8c7186669cdec2212cbad8e66 Mon Sep 17 00:00:00 2001 From: Barend Gehrels Date: Tue, 21 Dec 2010 21:24:17 +0000 Subject: [PATCH] Added multi/closure.hpp [SVN r67395] --- .../detail/overlay/handle_tangencies.hpp | 5 +- include/boost/geometry/core/closure.hpp | 7 ++- include/boost/geometry/geometry.hpp | 2 + include/boost/geometry/multi/core/closure.hpp | 47 +++++++++++++++++++ .../boost/geometry/multi/core/point_order.hpp | 7 ++- include/boost/geometry/multi/multi.hpp | 10 ++++ 6 files changed, 71 insertions(+), 7 deletions(-) create mode 100644 include/boost/geometry/multi/core/closure.hpp diff --git a/include/boost/geometry/algorithms/detail/overlay/handle_tangencies.hpp b/include/boost/geometry/algorithms/detail/overlay/handle_tangencies.hpp index c58d54105..7442f32d3 100644 --- a/include/boost/geometry/algorithms/detail/overlay/handle_tangencies.hpp +++ b/include/boost/geometry/algorithms/detail/overlay/handle_tangencies.hpp @@ -217,9 +217,10 @@ private : } else { -//#ifdef BOOST_GEOMETRY_DEBUG_ENRICH +#ifdef BOOST_GEOMETRY_DEBUG_ENRICH + // TODO: this still happens in the traverse.cpp test std::cout << " iu/ux unhandled" << std::endl; -//#endif +#endif ret = order == 1; } diff --git a/include/boost/geometry/core/closure.hpp b/include/boost/geometry/core/closure.hpp index b27d8c9dc..9792e463e 100644 --- a/include/boost/geometry/core/closure.hpp +++ b/include/boost/geometry/core/closure.hpp @@ -9,6 +9,7 @@ #define BOOST_GEOMETRY_CORE_CLOSURE_HPP +#include #include #include @@ -51,7 +52,11 @@ namespace core_dispatch template struct closure { - static const closure_selector value = closed; + BOOST_MPL_ASSERT_MSG + ( + false, NOT_IMPLEMENTED_FOR_THIS_GEOMETRY_TYPE + , (types) + ); }; diff --git a/include/boost/geometry/geometry.hpp b/include/boost/geometry/geometry.hpp index c623adf24..f7a26d71e 100644 --- a/include/boost/geometry/geometry.hpp +++ b/include/boost/geometry/geometry.hpp @@ -41,6 +41,7 @@ #include #include #include +#include #include #include #include @@ -53,6 +54,7 @@ #include #include #include +#include #include #include #include diff --git a/include/boost/geometry/multi/core/closure.hpp b/include/boost/geometry/multi/core/closure.hpp new file mode 100644 index 000000000..46f79a18b --- /dev/null +++ b/include/boost/geometry/multi/core/closure.hpp @@ -0,0 +1,47 @@ +// Boost.Geometry (aka GGL, Generic Geometry Library) +// +// Copyright Barend Gehrels 2010, Geodan, Amsterdam, the Netherlands. +// 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_CORE_CLOSURE_HPP +#define BOOST_GEOMETRY_MULTI_CORE_CLOSURE_HPP + + +#include +#include +#include + +#include +#include + +namespace boost { namespace geometry +{ + + +#ifndef DOXYGEN_NO_DISPATCH +namespace core_dispatch +{ + + +// Specialization for polygon: the closure is the closure of its rings +template +struct closure +{ + static const closure_selector value = core_dispatch::closure + < + polygon_tag, + typename boost::range_value::type + >::value ; +}; + + +} // namespace core_dispatch +#endif // DOXYGEN_NO_DISPATCH + + +}} // namespace boost::geometry + + +#endif // BOOST_GEOMETRY_MULTI_CORE_CLOSURE_HPP diff --git a/include/boost/geometry/multi/core/point_order.hpp b/include/boost/geometry/multi/core/point_order.hpp index 6695948cc..62dbd7388 100644 --- a/include/boost/geometry/multi/core/point_order.hpp +++ b/include/boost/geometry/multi/core/point_order.hpp @@ -12,8 +12,7 @@ #include #include -#include -#include +#include namespace boost { namespace geometry { @@ -24,11 +23,11 @@ namespace core_dispatch { template -struct point_order +struct point_order : public detail::point_order::clockwise {}; template -struct point_order +struct point_order : public detail::point_order::clockwise {}; diff --git a/include/boost/geometry/multi/multi.hpp b/include/boost/geometry/multi/multi.hpp index d0097865c..57cefc51d 100644 --- a/include/boost/geometry/multi/multi.hpp +++ b/include/boost/geometry/multi/multi.hpp @@ -11,10 +11,13 @@ #define BOOST_GEOMETRY_MULTI_HPP +#include #include +#include #include #include #include +#include #include #include #include @@ -23,6 +26,7 @@ #include #include +#include #include #include #include @@ -34,6 +38,7 @@ #include #include #include +#include #include #include #include @@ -43,9 +48,14 @@ #include #include +#include #include +#include +#include #include +#include +#include #include #include