$include_dir="/home/hyper-archives/boost-commit/include"; include("$include_dir/msg-header.inc") ?>
Subject: [Boost-commit] svn:boost r67309 - in sandbox/geometry/boost/geometry: algorithms algorithms/detail/overlay algorithms/detail/sections core multi/algorithms multi/algorithms/detail/overlay multi/algorithms/detail/sections util views
From: barend.gehrels_at_[hidden]
Date: 2010-12-18 16:39:36
Author: barendgehrels
Date: 2010-12-18 16:39:33 EST (Sat, 18 Dec 2010)
New Revision: 67309
URL: http://svn.boost.org/trac/boost/changeset/67309
Log:
Moved closeable_view,reversible_view to views
Added identity_view to avoid copies
Renamed get_full_section.hpp to range_by_section.hpp
Added (temporary?) reference to ring/linestring types in ring_return_type...
Added:
   sandbox/geometry/boost/geometry/algorithms/detail/sections/range_by_section.hpp
      - copied, changed from r67303, /sandbox/geometry/boost/geometry/algorithms/detail/sections/get_full_section.hpp
   sandbox/geometry/boost/geometry/multi/algorithms/detail/sections/range_by_section.hpp
      - copied, changed from r67303, /sandbox/geometry/boost/geometry/multi/algorithms/detail/sections/get_full_section.hpp
   sandbox/geometry/boost/geometry/views/closeable_view.hpp
      - copied, changed from r67286, /sandbox/geometry/boost/geometry/util/closeable_view.hpp
   sandbox/geometry/boost/geometry/views/identity_view.hpp   (contents, props changed)
   sandbox/geometry/boost/geometry/views/reversible_view.hpp
      - copied, changed from r67286, /sandbox/geometry/boost/geometry/util/reversible_view.hpp
Removed:
   sandbox/geometry/boost/geometry/algorithms/detail/sections/get_full_section.hpp
   sandbox/geometry/boost/geometry/multi/algorithms/detail/sections/get_full_section.hpp
   sandbox/geometry/boost/geometry/util/closeable_view.hpp
   sandbox/geometry/boost/geometry/util/reversible_view.hpp
Text files modified: 
   sandbox/geometry/boost/geometry/algorithms/area.hpp                                   |     4 ++--                                    
   sandbox/geometry/boost/geometry/algorithms/centroid.hpp                               |     2 +-                                      
   sandbox/geometry/boost/geometry/algorithms/detail/overlay/copy_segments.hpp           |     4 ++--                                    
   sandbox/geometry/boost/geometry/algorithms/detail/overlay/get_turns.hpp               |    10 +++++-----                              
   sandbox/geometry/boost/geometry/algorithms/detail/sections/range_by_section.hpp       |     9 ++++-----                               
   sandbox/geometry/boost/geometry/algorithms/detail/sections/sectionalize.hpp           |     8 ++++----                                
   sandbox/geometry/boost/geometry/algorithms/distance.hpp                               |     2 +-                                      
   sandbox/geometry/boost/geometry/algorithms/length.hpp                                 |     2 +-                                      
   sandbox/geometry/boost/geometry/algorithms/num_points.hpp                             |     2 +-                                      
   sandbox/geometry/boost/geometry/algorithms/within.hpp                                 |     4 ++--                                    
   sandbox/geometry/boost/geometry/core/ring_type.hpp                                    |     4 ++--                                    
   sandbox/geometry/boost/geometry/multi/algorithms/detail/overlay/get_turns.hpp         |     2 +-                                      
   sandbox/geometry/boost/geometry/multi/algorithms/detail/sections/range_by_section.hpp |     8 ++++----                                
   sandbox/geometry/boost/geometry/multi/algorithms/intersection.hpp                     |     2 +-                                      
   sandbox/geometry/boost/geometry/multi/algorithms/union.hpp                            |     2 +-                                      
   sandbox/geometry/boost/geometry/util/order_as_direction.hpp                           |     1 -                                       
   sandbox/geometry/boost/geometry/views/closeable_view.hpp                              |     9 +++++----                               
   sandbox/geometry/boost/geometry/views/reversible_view.hpp                             |    11 ++++++-----                             
   18 files changed, 43 insertions(+), 43 deletions(-)
Modified: sandbox/geometry/boost/geometry/algorithms/area.hpp
==============================================================================
--- sandbox/geometry/boost/geometry/algorithms/area.hpp	(original)
+++ sandbox/geometry/boost/geometry/algorithms/area.hpp	2010-12-18 16:39:33 EST (Sat, 18 Dec 2010)
@@ -33,8 +33,8 @@
 
 #include <boost/geometry/util/math.hpp>
 #include <boost/geometry/util/order_as_direction.hpp>
-#include <boost/geometry/util/closeable_view.hpp>
-#include <boost/geometry/util/reversible_view.hpp>
+#include <boost/geometry/views/closeable_view.hpp>
+#include <boost/geometry/views/reversible_view.hpp>
 
 
 namespace boost { namespace geometry
Modified: sandbox/geometry/boost/geometry/algorithms/centroid.hpp
==============================================================================
--- sandbox/geometry/boost/geometry/algorithms/centroid.hpp	(original)
+++ sandbox/geometry/boost/geometry/algorithms/centroid.hpp	2010-12-18 16:39:33 EST (Sat, 18 Dec 2010)
@@ -28,7 +28,7 @@
 #include <boost/geometry/iterators/segment_returning_iterator.hpp>
 #include <boost/geometry/strategies/centroid.hpp>
 #include <boost/geometry/strategies/concepts/centroid_concept.hpp>
-#include <boost/geometry/util/closeable_view.hpp>
+#include <boost/geometry/views/closeable_view.hpp>
 #include <boost/geometry/util/copy.hpp>
 #include <boost/geometry/util/for_each_coordinate.hpp>
 
Modified: sandbox/geometry/boost/geometry/algorithms/detail/overlay/copy_segments.hpp
==============================================================================
--- sandbox/geometry/boost/geometry/algorithms/detail/overlay/copy_segments.hpp	(original)
+++ sandbox/geometry/boost/geometry/algorithms/detail/overlay/copy_segments.hpp	2010-12-18 16:39:33 EST (Sat, 18 Dec 2010)
@@ -25,8 +25,8 @@
 #include <boost/geometry/geometries/concepts/check.hpp>
 #include <boost/geometry/iterators/ever_circling_iterator.hpp>
 #include <boost/geometry/iterators/range_type.hpp>
-#include <boost/geometry/util/closeable_view.hpp>
-#include <boost/geometry/util/reversible_view.hpp>
+#include <boost/geometry/views/closeable_view.hpp>
+#include <boost/geometry/views/reversible_view.hpp>
 
 
 namespace boost { namespace geometry
Modified: sandbox/geometry/boost/geometry/algorithms/detail/overlay/get_turns.hpp
==============================================================================
--- sandbox/geometry/boost/geometry/algorithms/detail/overlay/get_turns.hpp	(original)
+++ sandbox/geometry/boost/geometry/algorithms/detail/overlay/get_turns.hpp	2010-12-18 16:39:33 EST (Sat, 18 Dec 2010)
@@ -30,8 +30,8 @@
 #include <boost/geometry/geometries/concepts/check.hpp>
 
 #include <boost/geometry/util/math.hpp>
-#include <boost/geometry/util/closeable_view.hpp>
-#include <boost/geometry/util/reversible_view.hpp>
+#include <boost/geometry/views/closeable_view.hpp>
+#include <boost/geometry/views/reversible_view.hpp>
 
 #include <boost/geometry/geometries/box.hpp>
 
@@ -48,7 +48,7 @@
 #include <boost/geometry/algorithms/detail/overlay/segment_identifier.hpp>
 
 
-#include <boost/geometry/algorithms/detail/sections/get_full_section.hpp>
+#include <boost/geometry/algorithms/detail/sections/range_by_section.hpp>
 
 #include <boost/geometry/algorithms/combine.hpp>
 #include <boost/geometry/algorithms/distance.hpp>
@@ -106,12 +106,12 @@
 
     typedef typename reversible_view
         <
-            cview_type1 const, 
+            cview_type1 const,
             Reverse1 ? iterate_reverse : iterate_forward
         >::type view_type1;
     typedef typename reversible_view
         <
-            cview_type2 const, 
+            cview_type2 const,
             Reverse2 ? iterate_reverse : iterate_forward
         >::type view_type2;
 
Deleted: sandbox/geometry/boost/geometry/algorithms/detail/sections/get_full_section.hpp
==============================================================================
--- sandbox/geometry/boost/geometry/algorithms/detail/sections/get_full_section.hpp	2010-12-18 16:39:33 EST (Sat, 18 Dec 2010)
+++ (empty file)
@@ -1,128 +0,0 @@
-// Boost.Geometry (aka GGL, Generic Geometry Library)
-//
-// Copyright Barend Gehrels 2009, 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_ALGORITHMS_DETAIL_SECTIONS_GET_FULL_SECTION_HPP
-#define BOOST_GEOMETRY_ALGORITHMS_DETAIL_SECTIONS_GET_FULL_SECTION_HPP
-
-// TODO rename to "range_by_section"
-
-#include <boost/mpl/assert.hpp>
-#include <boost/range.hpp>
-
-#include <boost/geometry/core/access.hpp>
-#include <boost/geometry/core/closure.hpp>
-#include <boost/geometry/core/exterior_ring.hpp>
-#include <boost/geometry/core/interior_rings.hpp>
-
-
-
-namespace boost { namespace geometry
-{
-
-#ifndef DOXYGEN_NO_DETAIL
-namespace detail { namespace section
-{
-
-
-template <typename Range, typename Section>
-struct full_section_range
-{
-    static inline Range const& apply(Range const& range, Section const& section)
-    {
-        return range;
-    }
-};
-
-
-template <typename Polygon, typename Section>
-struct full_section_polygon
-{
-    typedef typename geometry::ring_type<Polygon>::type ring_type;
-
-    static inline typename ring_return_type<Polygon const>::type apply(Polygon const& polygon, Section const& section)
-    {
-        return section.ring_index < 0
-            ? geometry::exterior_ring(polygon)
-            : geometry::interior_rings(polygon)[section.ring_index];
-    }
-};
-
-
-}} // namespace detail::section
-#endif
-
-
-#ifndef DOXYGEN_NO_DISPATCH
-namespace dispatch
-{
-
-
-template
-<
-    typename Tag,
-    typename Geometry,
-    typename Section
->
-struct range_by_section
-{
-    BOOST_MPL_ASSERT_MSG
-        (
-            false, NOT_OR_NOT_YET_IMPLEMENTED_FOR_THIS_GEOMETRY_TYPE
-            , (types<Geometry>)
-        );
-};
-
-
-template <typename LineString, typename Section>
-struct range_by_section<linestring_tag, LineString, Section>
-    : detail::section::full_section_range<LineString, Section>
-{};
-
-
-template <typename Ring, typename Section>
-struct range_by_section<ring_tag, Ring, Section>
-    : detail::section::full_section_range<Ring, Section>
-{};
-
-
-template <typename Polygon, typename Section>
-struct range_by_section<polygon_tag, Polygon, Section>
-    : detail::section::full_section_polygon<Polygon, Section>
-{};
-
-
-} // namespace dispatch
-#endif
-
-
-/*!
-    \brief Get full ring (exterior, one of interiors, one from multi)
-        indicated by the specified section
-    \ingroup sectionalize
-    \tparam Geometry type
-    \tparam Section type of section to get from
-    \param geometry geometry to take section of
-    \param section structure with section
- */
-template <typename Geometry, typename Section>
-inline typename ring_return_type<Geometry const>::type 
-            range_by_section(Geometry const& geometry, Section const& section)
-{
-    concept::check<Geometry const>();
-
-    return dispatch::range_by_section
-        <
-            typename tag<Geometry>::type,
-            Geometry,
-            Section
-        >::apply(geometry, section);
-}
-
-
-}} // namespace boost::geometry
-
-#endif // BOOST_GEOMETRY_ALGORITHMS_DETAIL_SECTIONS_GET_FULL_SECTION_HPP
Copied: sandbox/geometry/boost/geometry/algorithms/detail/sections/range_by_section.hpp (from r67303, /sandbox/geometry/boost/geometry/algorithms/detail/sections/get_full_section.hpp)
==============================================================================
--- /sandbox/geometry/boost/geometry/algorithms/detail/sections/get_full_section.hpp	(original)
+++ sandbox/geometry/boost/geometry/algorithms/detail/sections/range_by_section.hpp	2010-12-18 16:39:33 EST (Sat, 18 Dec 2010)
@@ -5,10 +5,9 @@
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
 // http://www.boost.org/LICENSE_1_0.txt)
 
-#ifndef BOOST_GEOMETRY_ALGORITHMS_DETAIL_SECTIONS_GET_FULL_SECTION_HPP
-#define BOOST_GEOMETRY_ALGORITHMS_DETAIL_SECTIONS_GET_FULL_SECTION_HPP
+#ifndef BOOST_GEOMETRY_ALGORITHMS_DETAIL_SECTIONS_RANGE_BY_SECTION_HPP
+#define BOOST_GEOMETRY_ALGORITHMS_DETAIL_SECTIONS_RANGE_BY_SECTION_HPP
 
-// TODO rename to "range_by_section"
 
 #include <boost/mpl/assert.hpp>
 #include <boost/range.hpp>
@@ -109,7 +108,7 @@
     \param section structure with section
  */
 template <typename Geometry, typename Section>
-inline typename ring_return_type<Geometry const>::type 
+inline typename ring_return_type<Geometry const>::type
             range_by_section(Geometry const& geometry, Section const& section)
 {
     concept::check<Geometry const>();
@@ -125,4 +124,4 @@
 
 }} // namespace boost::geometry
 
-#endif // BOOST_GEOMETRY_ALGORITHMS_DETAIL_SECTIONS_GET_FULL_SECTION_HPP
+#endif // BOOST_GEOMETRY_ALGORITHMS_DETAIL_SECTIONS_RANGE_BY_SECTION_HPP
Modified: sandbox/geometry/boost/geometry/algorithms/detail/sections/sectionalize.hpp
==============================================================================
--- sandbox/geometry/boost/geometry/algorithms/detail/sections/sectionalize.hpp	(original)
+++ sandbox/geometry/boost/geometry/algorithms/detail/sections/sectionalize.hpp	2010-12-18 16:39:33 EST (Sat, 18 Dec 2010)
@@ -26,8 +26,8 @@
 
 #include <boost/geometry/geometries/concepts/check.hpp>
 #include <boost/geometry/util/math.hpp>
-#include <boost/geometry/util/closeable_view.hpp>
-#include <boost/geometry/util/reversible_view.hpp>
+#include <boost/geometry/views/closeable_view.hpp>
+#include <boost/geometry/views/reversible_view.hpp>
 #include <boost/geometry/geometries/segment.hpp>
 
 
@@ -357,7 +357,7 @@
     typedef typename closeable_view<Range const, Closure>::type cview_type;
     typedef typename reversible_view
         <
-            cview_type const, 
+            cview_type const,
             Reverse ? iterate_reverse : iterate_forward
         >::type view_type;
 
@@ -540,7 +540,7 @@
 
 template
 <
-    typename LineString, 
+    typename LineString,
     typename Sections,
     std::size_t DimensionCount,
     std::size_t MaxCount
Modified: sandbox/geometry/boost/geometry/algorithms/distance.hpp
==============================================================================
--- sandbox/geometry/boost/geometry/algorithms/distance.hpp	(original)
+++ sandbox/geometry/boost/geometry/algorithms/distance.hpp	2010-12-18 16:39:33 EST (Sat, 18 Dec 2010)
@@ -31,7 +31,7 @@
 #include <boost/geometry/algorithms/assign.hpp>
 #include <boost/geometry/algorithms/within.hpp>
 
-#include <boost/geometry/util/closeable_view.hpp>
+#include <boost/geometry/views/closeable_view.hpp>
 #include <boost/geometry/util/math.hpp>
 
 
Modified: sandbox/geometry/boost/geometry/algorithms/length.hpp
==============================================================================
--- sandbox/geometry/boost/geometry/algorithms/length.hpp	(original)
+++ sandbox/geometry/boost/geometry/algorithms/length.hpp	2010-12-18 16:39:33 EST (Sat, 18 Dec 2010)
@@ -23,7 +23,7 @@
 
 #include <boost/geometry/algorithms/assign.hpp>
 #include <boost/geometry/algorithms/detail/calculate_null.hpp>
-#include <boost/geometry/util/closeable_view.hpp>
+#include <boost/geometry/views/closeable_view.hpp>
 #include <boost/geometry/strategies/distance.hpp>
 #include <boost/geometry/strategies/length_result.hpp>
 
Modified: sandbox/geometry/boost/geometry/algorithms/num_points.hpp
==============================================================================
--- sandbox/geometry/boost/geometry/algorithms/num_points.hpp	(original)
+++ sandbox/geometry/boost/geometry/algorithms/num_points.hpp	2010-12-18 16:39:33 EST (Sat, 18 Dec 2010)
@@ -39,7 +39,7 @@
     static inline std::size_t apply(Range const& range, bool add_for_open)
     {
         std::size_t n = boost::size(range);
-        if (add_for_open)
+        if (add_for_open && n > 0)
         {
             closure_selector const s = geometry::closure<Range>::value;
 
Modified: sandbox/geometry/boost/geometry/algorithms/within.hpp
==============================================================================
--- sandbox/geometry/boost/geometry/algorithms/within.hpp	(original)
+++ sandbox/geometry/boost/geometry/algorithms/within.hpp	2010-12-18 16:39:33 EST (Sat, 18 Dec 2010)
@@ -29,8 +29,8 @@
 #include <boost/geometry/strategies/within.hpp>
 #include <boost/geometry/strategies/concepts/within_concept.hpp>
 #include <boost/geometry/util/order_as_direction.hpp>
-#include <boost/geometry/util/closeable_view.hpp>
-#include <boost/geometry/util/reversible_view.hpp>
+#include <boost/geometry/views/closeable_view.hpp>
+#include <boost/geometry/views/reversible_view.hpp>
 
 
 namespace boost { namespace geometry
Modified: sandbox/geometry/boost/geometry/core/ring_type.hpp
==============================================================================
--- sandbox/geometry/boost/geometry/core/ring_type.hpp	(original)
+++ sandbox/geometry/boost/geometry/core/ring_type.hpp	2010-12-18 16:39:33 EST (Sat, 18 Dec 2010)
@@ -90,14 +90,14 @@
 template <typename LineString>
 struct ring_return_type<linestring_tag, LineString>
 {
-    typedef LineString type;
+    typedef LineString& type;
 };
 
 
 template <typename Ring>
 struct ring_return_type<ring_tag, Ring>
 {
-    typedef Ring type;
+    typedef Ring& type;
 };
 
 
Modified: sandbox/geometry/boost/geometry/multi/algorithms/detail/overlay/get_turns.hpp
==============================================================================
--- sandbox/geometry/boost/geometry/multi/algorithms/detail/overlay/get_turns.hpp	(original)
+++ sandbox/geometry/boost/geometry/multi/algorithms/detail/overlay/get_turns.hpp	2010-12-18 16:39:33 EST (Sat, 18 Dec 2010)
@@ -15,7 +15,7 @@
 #include <boost/geometry/multi/algorithms/distance.hpp>
 #include <boost/geometry/multi/iterators/range_type.hpp>
 
-#include <boost/geometry/multi/algorithms/detail/sections/get_full_section.hpp>
+#include <boost/geometry/multi/algorithms/detail/sections/range_by_section.hpp>
 #include <boost/geometry/multi/algorithms/detail/sections/sectionalize.hpp>
 
 
Deleted: sandbox/geometry/boost/geometry/multi/algorithms/detail/sections/get_full_section.hpp
==============================================================================
--- sandbox/geometry/boost/geometry/multi/algorithms/detail/sections/get_full_section.hpp	2010-12-18 16:39:33 EST (Sat, 18 Dec 2010)
+++ (empty file)
@@ -1,84 +0,0 @@
-// Boost.Geometry (aka GGL, Generic Geometry Library)
-//
-// Copyright Barend Gehrels 2009, 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_ALGORITHMS_DETAIL_SECTIONS_GET_FULL_SECTION_HPP
-#define BOOST_GEOMETRY_MULTI_ALGORITHMS_DETAIL_SECTIONS_GET_FULL_SECTION_HPP
-
-
-#include <boost/assert.hpp>
-#include <boost/range.hpp>
-
-#include <boost/geometry/multi/core/tags.hpp>
-#include <boost/geometry/multi/core/ring_type.hpp>
-#include <boost/geometry/algorithms/detail/sections/get_full_section.hpp>
-
-
-namespace boost { namespace geometry
-{
-
-
-#ifndef DOXYGEN_NO_DETAIL
-namespace detail { namespace section
-{
-
-
-template
-<
-    typename MultiGeometry,
-    typename Section,
-    typename Policy
->
-struct full_section_multi
-{
-    static inline typename ring_return_type<MultiGeometry const>::type apply(
-                MultiGeometry const& multi, Section const& section)
-    {
-        BOOST_ASSERT
-            (
-                section.multi_index >= 0
-                && section.multi_index < boost::size(multi)
-            );
-
-        return Policy::apply(multi[section.multi_index], section);
-    }
-};
-
-
-}} // namespace detail::section
-#endif
-
-
-
-#ifndef DOXYGEN_NO_DISPATCH
-namespace dispatch
-{
-
-
-template <typename MultiPolygon, typename Section>
-struct range_by_section<multi_polygon_tag, MultiPolygon, Section>
-    : detail::section::full_section_multi
-        <
-            MultiPolygon,
-            Section,
-            detail::section::full_section_polygon
-                <
-                    typename boost::range_value<MultiPolygon>::type,
-                    Section
-                >
-       >
-{};
-
-
-} // namespace dispatch
-#endif
-
-
-
-
-}} // namespace boost::geometry
-
-#endif // BOOST_GEOMETRY_MULTI_ALGORITHMS_DETAIL_SECTIONS_GET_FULL_SECTION_HPP
Copied: sandbox/geometry/boost/geometry/multi/algorithms/detail/sections/range_by_section.hpp (from r67303, /sandbox/geometry/boost/geometry/multi/algorithms/detail/sections/get_full_section.hpp)
==============================================================================
--- /sandbox/geometry/boost/geometry/multi/algorithms/detail/sections/get_full_section.hpp	(original)
+++ sandbox/geometry/boost/geometry/multi/algorithms/detail/sections/range_by_section.hpp	2010-12-18 16:39:33 EST (Sat, 18 Dec 2010)
@@ -5,8 +5,8 @@
 // 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_DETAIL_SECTIONS_GET_FULL_SECTION_HPP
-#define BOOST_GEOMETRY_MULTI_ALGORITHMS_DETAIL_SECTIONS_GET_FULL_SECTION_HPP
+#ifndef BOOST_GEOMETRY_MULTI_ALGORITHMS_DETAIL_SECTIONS_RANGE_BY_SECTION_HPP
+#define BOOST_GEOMETRY_MULTI_ALGORITHMS_DETAIL_SECTIONS_RANGE_BY_SECTION_HPP
 
 
 #include <boost/assert.hpp>
@@ -14,7 +14,7 @@
 
 #include <boost/geometry/multi/core/tags.hpp>
 #include <boost/geometry/multi/core/ring_type.hpp>
-#include <boost/geometry/algorithms/detail/sections/get_full_section.hpp>
+#include <boost/geometry/algorithms/detail/sections/range_by_section.hpp>
 
 
 namespace boost { namespace geometry
@@ -81,4 +81,4 @@
 
 }} // namespace boost::geometry
 
-#endif // BOOST_GEOMETRY_MULTI_ALGORITHMS_DETAIL_SECTIONS_GET_FULL_SECTION_HPP
+#endif // BOOST_GEOMETRY_MULTI_ALGORITHMS_DETAIL_SECTIONS_RANGE_BY_SECTION_HPP
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-18 16:39:33 EST (Sat, 18 Dec 2010)
@@ -20,7 +20,7 @@
 #include <boost/geometry/multi/algorithms/detail/overlay/copy_segments.hpp>
 #include <boost/geometry/multi/algorithms/detail/overlay/copy_segment_point.hpp>
 #include <boost/geometry/multi/algorithms/detail/overlay/add_to_containment.hpp>
-#include <boost/geometry/multi/algorithms/detail/sections/get_full_section.hpp>
+#include <boost/geometry/multi/algorithms/detail/sections/range_by_section.hpp>
 #include <boost/geometry/multi/algorithms/detail/sections/sectionalize.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-18 16:39:33 EST (Sat, 18 Dec 2010)
@@ -20,7 +20,7 @@
 #include <boost/geometry/multi/algorithms/detail/overlay/copy_segments.hpp>
 #include <boost/geometry/multi/algorithms/detail/overlay/copy_segment_point.hpp>
 #include <boost/geometry/multi/algorithms/detail/overlay/add_to_containment.hpp>
-#include <boost/geometry/multi/algorithms/detail/sections/get_full_section.hpp>
+#include <boost/geometry/multi/algorithms/detail/sections/range_by_section.hpp>
 #include <boost/geometry/multi/algorithms/detail/sections/sectionalize.hpp>
 
 namespace boost { namespace geometry
Deleted: sandbox/geometry/boost/geometry/util/closeable_view.hpp
==============================================================================
--- sandbox/geometry/boost/geometry/util/closeable_view.hpp	2010-12-18 16:39:33 EST (Sat, 18 Dec 2010)
+++ (empty file)
@@ -1,73 +0,0 @@
-// 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_UTIL_CLOSEABLE_VIEW_HPP
-#define BOOST_GEOMETRY_UTIL_CLOSEABLE_VIEW_HPP
-
-
-#include <boost/range.hpp>
-
-#include <boost/geometry/core/closure.hpp>
-#include <boost/geometry/core/ring_type.hpp>
-#include <boost/geometry/core/tag.hpp>
-#include <boost/geometry/core/tags.hpp>
-#include <boost/geometry/iterators/closing_iterator.hpp>
-
-
-namespace boost { namespace geometry
-{
-
-namespace detail
-{
-
-template <typename Range>
-struct closing_view
-{
-    // Keep this explicit, important for nested views/ranges
-    explicit inline closing_view(Range& r)
-        : m_range(r)
-    {}
-
-
-    typedef closing_iterator<Range> iterator;
-    typedef closing_iterator<Range const> const_iterator;
-
-    inline const_iterator begin() const { return const_iterator(m_range); }
-    inline const_iterator end() const { return const_iterator(m_range, true); }
-
-    inline iterator begin() { return iterator(m_range); }
-    inline iterator end() { return iterator(m_range, true); }
-private :
-    Range& m_range;
-};
-
-}
-
-
-template <typename Range, closure_selector Close>
-struct closeable_view {};
-
-
-
-template <typename Range>
-struct closeable_view<Range, closed>
-{
-    typedef Range type;
-};
-
-
-template <typename Range>
-struct closeable_view<Range, open>
-{
-    typedef detail::closing_view<Range> type;
-};
-
-
-}} // namespace boost::geometry
-
-
-#endif // BOOST_GEOMETRY_UTIL_CLOSEABLE_VIEW_HPP
Modified: sandbox/geometry/boost/geometry/util/order_as_direction.hpp
==============================================================================
--- sandbox/geometry/boost/geometry/util/order_as_direction.hpp	(original)
+++ sandbox/geometry/boost/geometry/util/order_as_direction.hpp	2010-12-18 16:39:33 EST (Sat, 18 Dec 2010)
@@ -10,7 +10,6 @@
 #define BOOST_GEOMETRY_UTIL_ORDER_AS_DIRECTION_HPP
 
 #include <boost/geometry/core/point_order.hpp>
-#include <boost/geometry/util/reversible_view.hpp>
 
 
 namespace boost { namespace geometry
Deleted: sandbox/geometry/boost/geometry/util/reversible_view.hpp
==============================================================================
--- sandbox/geometry/boost/geometry/util/reversible_view.hpp	2010-12-18 16:39:33 EST (Sat, 18 Dec 2010)
+++ (empty file)
@@ -1,46 +0,0 @@
-// 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_UTIL_REVERSIBLE_VIEW_HPP
-#define BOOST_GEOMETRY_UTIL_REVERSIBLE_VIEW_HPP
-
-
-#include <boost/range.hpp>
-#include <boost/range/adaptor/reversed.hpp>
-
-#include <boost/geometry/core/ring_type.hpp>
-#include <boost/geometry/core/tag.hpp>
-#include <boost/geometry/core/tags.hpp>
-
-
-namespace boost { namespace geometry
-{
-
-enum iterate_direction { iterate_forward, iterate_reverse };
-
-// BSG 13-12-2010, changed into meta-function
-template <typename Range, iterate_direction Direction>
-struct reversible_view {};
-
-
-template <typename Range>
-struct reversible_view<Range, iterate_forward>
-{
-    typedef Range type;
-};
-
-
-template <typename Range>
-struct reversible_view<Range, iterate_reverse> 
-{
-    typedef boost::range_detail::reverse_range<Range> type;
-};
-
-}} // namespace boost::geometry
-
-
-#endif // BOOST_GEOMETRY_UTIL_REVERSIBLE_VIEW_HPP
Copied: sandbox/geometry/boost/geometry/views/closeable_view.hpp (from r67286, /sandbox/geometry/boost/geometry/util/closeable_view.hpp)
==============================================================================
--- /sandbox/geometry/boost/geometry/util/closeable_view.hpp	(original)
+++ sandbox/geometry/boost/geometry/views/closeable_view.hpp	2010-12-18 16:39:33 EST (Sat, 18 Dec 2010)
@@ -5,8 +5,8 @@
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
 // http://www.boost.org/LICENSE_1_0.txt)
 
-#ifndef BOOST_GEOMETRY_UTIL_CLOSEABLE_VIEW_HPP
-#define BOOST_GEOMETRY_UTIL_CLOSEABLE_VIEW_HPP
+#ifndef BOOST_GEOMETRY_VIEWS_CLOSEABLE_VIEW_HPP
+#define BOOST_GEOMETRY_VIEWS_CLOSEABLE_VIEW_HPP
 
 
 #include <boost/range.hpp>
@@ -17,6 +17,7 @@
 #include <boost/geometry/core/tags.hpp>
 #include <boost/geometry/iterators/closing_iterator.hpp>
 
+#include <boost/geometry/views/identity_view.hpp>
 
 namespace boost { namespace geometry
 {
@@ -56,7 +57,7 @@
 template <typename Range>
 struct closeable_view<Range, closed>
 {
-    typedef Range type;
+    typedef identity_view<Range> type;
 };
 
 
@@ -70,4 +71,4 @@
 }} // namespace boost::geometry
 
 
-#endif // BOOST_GEOMETRY_UTIL_CLOSEABLE_VIEW_HPP
+#endif // BOOST_GEOMETRY_VIEWS_CLOSEABLE_VIEW_HPP
Added: sandbox/geometry/boost/geometry/views/identity_view.hpp
==============================================================================
--- (empty file)
+++ sandbox/geometry/boost/geometry/views/identity_view.hpp	2010-12-18 16:39:33 EST (Sat, 18 Dec 2010)
@@ -0,0 +1,42 @@
+// 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_VIEWS_IDENTITY_VIEW_HPP
+#define BOOST_GEOMETRY_VIEWS_IDENTITY_VIEW_HPP
+
+
+#include <boost/range.hpp>
+
+
+namespace boost { namespace geometry
+{
+
+
+template <typename Range>
+struct identity_view
+{
+    typedef typename boost::range_iterator<Range const>::type const_iterator;
+    typedef typename boost::range_iterator<Range>::type iterator;
+
+    explicit inline identity_view(Range& r)
+        : m_range(r)
+    {}
+
+    inline const_iterator begin() const { return boost::begin(m_range); }
+    inline const_iterator end() const { return boost::end(m_range); }
+
+    inline iterator begin() { return boost::begin(m_range); }
+    inline iterator end() { return boost::end(m_range); }
+private :
+    Range& m_range;
+};
+
+
+}} // namespace boost::geometry
+
+
+#endif // BOOST_GEOMETRY_VIEWS_IDENTITY_VIEW_HPP
Copied: sandbox/geometry/boost/geometry/views/reversible_view.hpp (from r67286, /sandbox/geometry/boost/geometry/util/reversible_view.hpp)
==============================================================================
--- /sandbox/geometry/boost/geometry/util/reversible_view.hpp	(original)
+++ sandbox/geometry/boost/geometry/views/reversible_view.hpp	2010-12-18 16:39:33 EST (Sat, 18 Dec 2010)
@@ -5,8 +5,8 @@
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
 // http://www.boost.org/LICENSE_1_0.txt)
 
-#ifndef BOOST_GEOMETRY_UTIL_REVERSIBLE_VIEW_HPP
-#define BOOST_GEOMETRY_UTIL_REVERSIBLE_VIEW_HPP
+#ifndef BOOST_GEOMETRY_VIEWS_REVERSIBLE_VIEW_HPP
+#define BOOST_GEOMETRY_VIEWS_REVERSIBLE_VIEW_HPP
 
 
 #include <boost/range.hpp>
@@ -16,6 +16,7 @@
 #include <boost/geometry/core/tag.hpp>
 #include <boost/geometry/core/tags.hpp>
 
+#include <boost/geometry/views/identity_view.hpp>
 
 namespace boost { namespace geometry
 {
@@ -30,12 +31,12 @@
 template <typename Range>
 struct reversible_view<Range, iterate_forward>
 {
-    typedef Range type;
+    typedef identity_view<Range> type;
 };
 
 
 template <typename Range>
-struct reversible_view<Range, iterate_reverse> 
+struct reversible_view<Range, iterate_reverse>
 {
     typedef boost::range_detail::reverse_range<Range> type;
 };
@@ -43,4 +44,4 @@
 }} // namespace boost::geometry
 
 
-#endif // BOOST_GEOMETRY_UTIL_REVERSIBLE_VIEW_HPP
+#endif // BOOST_GEOMETRY_VIEWS_REVERSIBLE_VIEW_HPP