Boost logo

Boost-Commit :

Subject: [Boost-commit] svn:boost r71807 - in trunk/boost/geometry: algorithms algorithms/detail algorithms/detail/overlay extensions/algorithms/buffer extensions/iterators extensions/views iterators multi multi/algorithms multi/algorithms/detail/overlay multi/iterators multi/views multi/views/detail strategies/agnostic util views/detail
From: barend.gehrels_at_[hidden]
Date: 2011-05-08 06:57:26


Author: barendgehrels
Date: 2011-05-08 06:57:21 EDT (Sun, 08 May 2011)
New Revision: 71807
URL: http://svn.boost.org/trac/boost/changeset/71807

Log:
Moved circular_iterator to extensions (was not used internally)
Moved range_type/as_range to details (of views/algorithms)

Added:
   trunk/boost/geometry/algorithms/detail/as_range.hpp
      - copied, changed from r71709, /trunk/boost/geometry/util/as_range.hpp
   trunk/boost/geometry/extensions/iterators/circular_iterator.hpp
      - copied, changed from r71709, /trunk/boost/geometry/iterators/circular_iterator.hpp
   trunk/boost/geometry/multi/views/
   trunk/boost/geometry/multi/views/detail/
   trunk/boost/geometry/multi/views/detail/range_type.hpp
      - copied, changed from r71709, /trunk/boost/geometry/multi/iterators/range_type.hpp
   trunk/boost/geometry/views/detail/range_type.hpp
      - copied, changed from r71709, /trunk/boost/geometry/iterators/range_type.hpp
Removed:
   trunk/boost/geometry/iterators/circular_iterator.hpp
   trunk/boost/geometry/iterators/range_type.hpp
   trunk/boost/geometry/multi/iterators/range_type.hpp
   trunk/boost/geometry/util/as_range.hpp
Text files modified:
   trunk/boost/geometry/algorithms/append.hpp | 6 +++---
   trunk/boost/geometry/algorithms/convex_hull.hpp | 18 ++++++++----------
   trunk/boost/geometry/algorithms/detail/as_range.hpp | 10 +++++++---
   trunk/boost/geometry/algorithms/detail/overlay/copy_segments.hpp | 1 -
   trunk/boost/geometry/algorithms/detail/overlay/get_turns.hpp | 2 +-
   trunk/boost/geometry/algorithms/detail/overlay/overlay.hpp | 18 ++++++++----------
   trunk/boost/geometry/extensions/algorithms/buffer/sectionalizing_buffer.hpp | 2 +-
   trunk/boost/geometry/extensions/iterators/circular_iterator.hpp | 6 +++---
   trunk/boost/geometry/extensions/views/section_view.hpp | 2 +-
   trunk/boost/geometry/multi/algorithms/detail/overlay/get_turns.hpp | 2 +-
   trunk/boost/geometry/multi/algorithms/simplify.hpp | 1 -
   trunk/boost/geometry/multi/multi.hpp | 3 +--
   trunk/boost/geometry/multi/views/detail/range_type.hpp | 10 +++++-----
   trunk/boost/geometry/strategies/agnostic/hull_graham_andrew.hpp | 4 ++--
   trunk/boost/geometry/views/detail/range_type.hpp | 10 +++++++---
   15 files changed, 48 insertions(+), 47 deletions(-)

Modified: trunk/boost/geometry/algorithms/append.hpp
==============================================================================
--- trunk/boost/geometry/algorithms/append.hpp (original)
+++ trunk/boost/geometry/algorithms/append.hpp 2011-05-08 06:57:21 EDT (Sun, 08 May 2011)
@@ -79,19 +79,19 @@
 template <typename Polygon, typename Point>
 struct point_to_polygon
 {
- typedef typename ring_type<Polygon>::type range_type;
+ typedef typename ring_type<Polygon>::type ring_type;
 
     static inline void apply(Polygon& polygon, Point const& point,
                 int ring_index, int = 0)
     {
         if (ring_index == -1)
         {
- append_point<range_type, Point>::apply(
+ append_point<ring_type, Point>::apply(
                         exterior_ring(polygon), point);
         }
         else if (ring_index < int(num_interior_rings(polygon)))
         {
- append_point<range_type, Point>::apply(
+ append_point<ring_type, Point>::apply(
                         interior_rings(polygon)[ring_index], point);
         }
     }

Modified: trunk/boost/geometry/algorithms/convex_hull.hpp
==============================================================================
--- trunk/boost/geometry/algorithms/convex_hull.hpp (original)
+++ trunk/boost/geometry/algorithms/convex_hull.hpp 2011-05-08 06:57:21 EDT (Sun, 08 May 2011)
@@ -22,12 +22,12 @@
 
 #include <boost/geometry/geometries/concepts/check.hpp>
 
-#include <boost/geometry/iterators/range_type.hpp>
-
 #include <boost/geometry/strategies/convex_hull.hpp>
 #include <boost/geometry/strategies/concepts/convex_hull_concept.hpp>
 
-#include <boost/geometry/util/as_range.hpp>
+#include <boost/geometry/views/detail/range_type.hpp>
+
+#include <boost/geometry/algorithms/detail/as_range.hpp>
 
 
 namespace boost { namespace geometry
@@ -46,8 +46,8 @@
 struct hull_insert
 {
 
- // Member template function, to avoid inconvenient declaration
- // of output-iterator-type, from hull_to_geometry
+ // Member template function (to avoid inconvenient declaration
+ // of output-iterator-type, from hull_to_geometry)
     template <typename OutputIterator>
     static inline OutputIterator apply(Geometry const& geometry,
             OutputIterator out, Strategy const& strategy)
@@ -78,10 +78,10 @@
                 Strategy
>::apply(geometry,
                 std::back_inserter(
- // Handle both ring and polygon the same:
- geometry::as_range
+ // Handle linestring, ring and polygon the same:
+ detail::as_range
                         <
- typename geometry::range_type<OutputGeometry>::type
+ typename range_type<OutputGeometry>::type
>(out)), strategy);
     }
 };
@@ -167,7 +167,6 @@
             Geometry2
>();
 
- //typedef typename range_type<Geometry1>::type range_type;
     typedef typename point_type<Geometry2>::type point_type;
 
     typedef typename strategy_convex_hull
@@ -225,7 +224,6 @@
     concept::check<Geometry const>();
     concept::check<typename point_type<Geometry>::type>();
 
- typedef typename range_type<Geometry>::type range_type;
     typedef typename point_type<Geometry>::type point_type;
 
     typedef typename strategy_convex_hull

Copied: trunk/boost/geometry/algorithms/detail/as_range.hpp (from r71709, /trunk/boost/geometry/util/as_range.hpp)
==============================================================================
--- /trunk/boost/geometry/util/as_range.hpp (original)
+++ trunk/boost/geometry/algorithms/detail/as_range.hpp 2011-05-08 06:57:21 EDT (Sun, 08 May 2011)
@@ -11,8 +11,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_AS_RANGE_HPP
-#define BOOST_GEOMETRY_UTIL_AS_RANGE_HPP
+#ifndef BOOST_GEOMETRY_ALGORITHMS_DETAIL_AS_RANGE_HPP
+#define BOOST_GEOMETRY_ALGORITHMS_DETAIL_AS_RANGE_HPP
 
 
 #include <boost/type_traits.hpp>
@@ -58,6 +58,9 @@
 } // namespace dispatch
 #endif // DOXYGEN_NO_DISPATCH
 
+// Will probably be replaced by the more generic "view_as", therefore in detail
+namespace detail
+{
 
 /*!
 \brief Function getting either the range (ring, linestring) itself
@@ -96,8 +99,9 @@
>::get(input);
 }
 
+}
 
 }} // namespace boost::geometry
 
 
-#endif // BOOST_GEOMETRY_UTIL_AS_RANGE_HPP
+#endif // BOOST_GEOMETRY_ALGORITHMS_DETAIL_AS_RANGE_HPP

Modified: trunk/boost/geometry/algorithms/detail/overlay/copy_segments.hpp
==============================================================================
--- trunk/boost/geometry/algorithms/detail/overlay/copy_segments.hpp (original)
+++ trunk/boost/geometry/algorithms/detail/overlay/copy_segments.hpp 2011-05-08 06:57:21 EDT (Sun, 08 May 2011)
@@ -24,7 +24,6 @@
 #include <boost/geometry/core/interior_rings.hpp>
 #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/views/closeable_view.hpp>
 #include <boost/geometry/views/reversible_view.hpp>
 

Modified: trunk/boost/geometry/algorithms/detail/overlay/get_turns.hpp
==============================================================================
--- trunk/boost/geometry/algorithms/detail/overlay/get_turns.hpp (original)
+++ trunk/boost/geometry/algorithms/detail/overlay/get_turns.hpp 2011-05-08 06:57:21 EDT (Sun, 08 May 2011)
@@ -33,10 +33,10 @@
 #include <boost/geometry/util/math.hpp>
 #include <boost/geometry/views/closeable_view.hpp>
 #include <boost/geometry/views/reversible_view.hpp>
+#include <boost/geometry/views/detail/range_type.hpp>
 
 #include <boost/geometry/geometries/box.hpp>
 
-#include <boost/geometry/iterators/range_type.hpp>
 #include <boost/geometry/iterators/ever_circling_iterator.hpp>
 
 #include <boost/geometry/strategies/cartesian/cart_intersect.hpp>

Modified: trunk/boost/geometry/algorithms/detail/overlay/overlay.hpp
==============================================================================
--- trunk/boost/geometry/algorithms/detail/overlay/overlay.hpp (original)
+++ trunk/boost/geometry/algorithms/detail/overlay/overlay.hpp 2011-05-08 06:57:21 EDT (Sun, 08 May 2011)
@@ -31,8 +31,6 @@
 #include <boost/geometry/algorithms/num_points.hpp>
 #include <boost/geometry/algorithms/reverse.hpp>
 
-#include <boost/geometry/iterators/range_type.hpp>
-
 #include <boost/geometry/algorithms/detail/overlay/add_rings.hpp>
 #include <boost/geometry/algorithms/detail/overlay/assign_parents.hpp>
 #include <boost/geometry/algorithms/detail/overlay/ring_properties.hpp>
@@ -106,8 +104,10 @@
             Geometry2 const& geometry2,
             OutputIterator out)
 {
- typedef typename geometry::range_type<GeometryOut>::type ring_type;
- typedef std::deque<ring_type> ring_container_type;
+ typedef std::deque
+ <
+ typename geometry::ring_type<GeometryOut>::type
+ > ring_container_type;
 
     typedef ring_properties<typename geometry::point_type<Geometry1>::type> properties;
 
@@ -155,12 +155,10 @@
         typedef detail::overlay::traversal_turn_info<point_type> turn_info;
         typedef std::deque<turn_info> container_type;
 
- // "Use" rangetype for ringtype:
- // -> for polygon, it is the type of the exterior ring.
- // -> for ring, it is the ring itself.
- // -> for multi-polygon, it is also the type of the ring.
- typedef typename geometry::range_type<GeometryOut>::type ring_type;
- typedef std::deque<ring_type> ring_container_type;
+ typedef std::deque
+ <
+ typename geometry::ring_type<GeometryOut>::type
+ > ring_container_type;
 
         if (geometry::num_points(geometry1) == 0
             || geometry::num_points(geometry2) == 0)

Modified: trunk/boost/geometry/extensions/algorithms/buffer/sectionalizing_buffer.hpp
==============================================================================
--- trunk/boost/geometry/extensions/algorithms/buffer/sectionalizing_buffer.hpp (original)
+++ trunk/boost/geometry/extensions/algorithms/buffer/sectionalizing_buffer.hpp 2011-05-08 06:57:21 EDT (Sun, 08 May 2011)
@@ -84,7 +84,7 @@
         {
             typedef typename boost::range_iterator
                 <
- typename geometry::range_type<Geometry>::type const
+ typename geometry::detail::range_type<Geometry>::type const
>::type iterator_type;
 
 

Copied: trunk/boost/geometry/extensions/iterators/circular_iterator.hpp (from r71709, /trunk/boost/geometry/iterators/circular_iterator.hpp)
==============================================================================
--- /trunk/boost/geometry/iterators/circular_iterator.hpp (original)
+++ trunk/boost/geometry/extensions/iterators/circular_iterator.hpp 2011-05-08 06:57:21 EDT (Sun, 08 May 2011)
@@ -11,8 +11,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_ITERATORS_CIRCULAR_ITERATOR_HPP
-#define BOOST_GEOMETRY_ITERATORS_CIRCULAR_ITERATOR_HPP
+#ifndef BOOST_GEOMETRY_EXTENSIONS_ITERATORS_CIRCULAR_ITERATOR_HPP
+#define BOOST_GEOMETRY_EXTENSIONS_ITERATORS_CIRCULAR_ITERATOR_HPP
 
 #include <boost/iterator.hpp>
 #include <boost/iterator/iterator_adaptor.hpp>
@@ -118,4 +118,4 @@
 }} // namespace boost::geometry
 
 
-#endif // BOOST_GEOMETRY_ITERATORS_CIRCULAR_ITERATOR_HPP
+#endif // BOOST_GEOMETRY_EXTENSIONS_ITERATORS_CIRCULAR_ITERATOR_HPP

Modified: trunk/boost/geometry/extensions/views/section_view.hpp
==============================================================================
--- trunk/boost/geometry/extensions/views/section_view.hpp (original)
+++ trunk/boost/geometry/extensions/views/section_view.hpp 2011-05-08 06:57:21 EDT (Sun, 08 May 2011)
@@ -30,7 +30,7 @@
 template <typename Geometry, typename Section>
 class section_view
 {
- typedef typename geometry::range_type<Geometry>::type range_type;
+ typedef typename detail::range_type<Geometry>::type range_type;
 public :
     typedef typename boost::range_iterator
         <

Deleted: trunk/boost/geometry/iterators/circular_iterator.hpp
==============================================================================
--- trunk/boost/geometry/iterators/circular_iterator.hpp 2011-05-08 06:57:21 EDT (Sun, 08 May 2011)
+++ (empty file)
@@ -1,121 +0,0 @@
-// Boost.Geometry (aka GGL, Generic Geometry Library)
-
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-// Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
-
-// Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
-// (geolib/GGL), copyright (c) 1995-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_ITERATORS_CIRCULAR_ITERATOR_HPP
-#define BOOST_GEOMETRY_ITERATORS_CIRCULAR_ITERATOR_HPP
-
-#include <boost/iterator.hpp>
-#include <boost/iterator/iterator_adaptor.hpp>
-#include <boost/iterator/iterator_categories.hpp>
-
-#include <boost/geometry/iterators/base.hpp>
-
-
-namespace boost { namespace geometry
-{
-
-/*!
- \brief Iterator which goes circular through a range, starting at a point, ending at that point
- \tparam Iterator iterator on which this class is based on
- \ingroup iterators
-*/
-template <typename Iterator>
-struct circular_iterator :
- public detail::iterators::iterator_base
- <
- circular_iterator<Iterator>,
- Iterator
- >
-{
- friend class boost::iterator_core_access;
-
- explicit inline circular_iterator(Iterator begin, Iterator end, Iterator start)
- : m_begin(begin)
- , m_end(end)
- , m_start(start)
- {
- this->base_reference() = start;
- }
-
- // Constructor to indicate the end of a range, to enable e.g. std::copy
- explicit inline circular_iterator(Iterator end)
- : m_begin(end)
- , m_end(end)
- , m_start(end)
- {
- this->base_reference() = end;
- }
-
- /// Navigate to a certain position, should be in [start .. end], it at end
- /// it will circle again.
- inline void moveto(Iterator it)
- {
- this->base_reference() = it;
- check_end();
- }
-
-private:
-
- inline void increment()
- {
- if (this->base() != m_end)
- {
- (this->base_reference())++;
- check_end();
- }
- }
- inline void decrement()
- {
- if (this->base() != m_end)
- {
- // If at begin, go back to end (assumed this is possible...)
- if (this->base() == m_begin)
- {
- this->base_reference() = this->m_end;
- }
-
- // Decrement
- (this->base_reference())--;
-
- // If really back at start, go to end == end of iteration
- if (this->base() == m_start)
- {
- this->base_reference() = this->m_end;
- }
- }
- }
-
-
- inline void check_end()
- {
- if (this->base() == this->m_end)
- {
- this->base_reference() = this->m_begin;
- }
-
- if (this->base() == m_start)
- {
- this->base_reference() = this->m_end;
- }
- }
-
- Iterator m_begin;
- Iterator m_end;
- Iterator m_start;
-};
-
-
-}} // namespace boost::geometry
-
-
-#endif // BOOST_GEOMETRY_ITERATORS_CIRCULAR_ITERATOR_HPP

Deleted: trunk/boost/geometry/iterators/range_type.hpp
==============================================================================
--- trunk/boost/geometry/iterators/range_type.hpp 2011-05-08 06:57:21 EDT (Sun, 08 May 2011)
+++ (empty file)
@@ -1,89 +0,0 @@
-// Boost.Geometry (aka GGL, Generic Geometry Library)
-
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-// Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
-
-// Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
-// (geolib/GGL), copyright (c) 1995-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_ITERATORS_RANGE_TYPE_HPP
-#define BOOST_GEOMETRY_ITERATORS_RANGE_TYPE_HPP
-
-
-#include <boost/type_traits.hpp>
-
-#include <boost/geometry/core/ring_type.hpp>
-#include <boost/geometry/core/tag.hpp>
-#include <boost/geometry/core/tags.hpp>
-
-
-namespace boost { namespace geometry
-{
-
-
-#ifndef DOXYGEN_NO_DISPATCH
-namespace dispatch
-{
-
-
-template <typename GeometryTag, typename Geometry>
-struct range_type
-{
- // Even if it is not recognized, define itself as a type.
- // This enables calling range_type over any range
- // (not necessarily a geometry)
-
- // Furthermore, applicable for ring/linestring
- typedef Geometry type;
-};
-
-
-template <typename Geometry>
-struct range_type<point_tag, Geometry>
-{
- typedef void type;
-};
-
-
-template <typename Geometry>
-struct range_type<polygon_tag, Geometry>
-{
- typedef typename ring_type<Geometry>::type type;
-};
-
-
-} // namespace dispatch
-#endif // DOXYGEN_NO_DISPATCH
-
-
-
-/*!
-\brief Meta-function defining a type which is a boost-range.
-\details
-- For linestrings and rings, it defines the type itself.
-- For polygons it defines the ring type.
-- For multi-points, it defines the type itself
-- For multi-polygons and multi-linestrings, it defines the single-version
- (so in the end the linestring and ring-type-of-multi-polygon)
-\ingroup iterators
-*/
-template <typename Geometry>
-struct range_type
-{
- typedef typename dispatch::range_type
- <
- typename tag<Geometry>::type,
- Geometry
- >::type type;
-};
-
-
-}} // namespace boost::geometry
-
-
-#endif // BOOST_GEOMETRY_ITERATORS_RANGE_TYPE_HPP

Modified: trunk/boost/geometry/multi/algorithms/detail/overlay/get_turns.hpp
==============================================================================
--- trunk/boost/geometry/multi/algorithms/detail/overlay/get_turns.hpp (original)
+++ trunk/boost/geometry/multi/algorithms/detail/overlay/get_turns.hpp 2011-05-08 06:57:21 EDT (Sun, 08 May 2011)
@@ -15,7 +15,7 @@
 #include <boost/geometry/algorithms/detail/overlay/get_turns.hpp>
 
 #include <boost/geometry/multi/algorithms/distance.hpp>
-#include <boost/geometry/multi/iterators/range_type.hpp>
+#include <boost/geometry/multi/views/detail/range_type.hpp>
 
 #include <boost/geometry/multi/algorithms/detail/sections/range_by_section.hpp>
 #include <boost/geometry/multi/algorithms/detail/sections/sectionalize.hpp>

Modified: trunk/boost/geometry/multi/algorithms/simplify.hpp
==============================================================================
--- trunk/boost/geometry/multi/algorithms/simplify.hpp (original)
+++ trunk/boost/geometry/multi/algorithms/simplify.hpp 2011-05-08 06:57:21 EDT (Sun, 08 May 2011)
@@ -19,7 +19,6 @@
 #include <boost/geometry/core/mutable_range.hpp>
 #include <boost/geometry/multi/core/tags.hpp>
 
-#include <boost/geometry/multi/iterators/range_type.hpp>
 
 #include <boost/geometry/multi/algorithms/clear.hpp>
 #include <boost/geometry/algorithms/simplify.hpp>

Deleted: trunk/boost/geometry/multi/iterators/range_type.hpp
==============================================================================
--- trunk/boost/geometry/multi/iterators/range_type.hpp 2011-05-08 06:57:21 EDT (Sun, 08 May 2011)
+++ (empty file)
@@ -1,62 +0,0 @@
-// Boost.Geometry (aka GGL, Generic Geometry Library)
-
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-// Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
-
-// Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
-// (geolib/GGL), copyright (c) 1995-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_ITERATORS_RANGE_TYPE_HPP
-#define BOOST_GEOMETRY_MULTI_ITERATORS_RANGE_TYPE_HPP
-
-
-#include <boost/range.hpp>
-
-#include <boost/geometry/iterators/range_type.hpp>
-
-
-namespace boost { namespace geometry
-{
-
-#ifndef DOXYGEN_NO_DISPATCH
-namespace dispatch
-{
-
-// multi-point acts itself as a range
-template <typename Geometry>
-struct range_type<multi_point_tag, Geometry>
-{
- typedef Geometry type;
-};
-
-
-template <typename Geometry>
-struct range_type<multi_linestring_tag, Geometry>
-{
- typedef typename boost::range_value<Geometry>::type type;
-};
-
-
-template <typename Geometry>
-struct range_type<multi_polygon_tag, Geometry>
-{
- // Call its single-version
- typedef typename geometry::ring_type
- <
- typename boost::range_value<Geometry>::type
- >::type type;
-};
-
-
-} // namespace dispatch
-#endif // DOXYGEN_NO_DISPATCH
-
-
-}} // namespace boost::geometry
-
-#endif // BOOST_GEOMETRY_MULTI_ITERATORS_RANGE_TYPE_HPP

Modified: trunk/boost/geometry/multi/multi.hpp
==============================================================================
--- trunk/boost/geometry/multi/multi.hpp (original)
+++ trunk/boost/geometry/multi/multi.hpp 2011-05-08 06:57:21 EDT (Sun, 08 May 2011)
@@ -66,8 +66,7 @@
 #include <boost/geometry/multi/geometries/concepts/multi_linestring_concept.hpp>
 #include <boost/geometry/multi/geometries/concepts/multi_polygon_concept.hpp>
 
-#include <boost/geometry/multi/iterators/range_type.hpp>
-
+#include <boost/geometry/multi/views/detail/range_type.hpp>
 #include <boost/geometry/multi/strategies/cartesian/centroid_average.hpp>
 
 #include <boost/geometry/multi/util/write_dsv.hpp>

Copied: trunk/boost/geometry/multi/views/detail/range_type.hpp (from r71709, /trunk/boost/geometry/multi/iterators/range_type.hpp)
==============================================================================
--- /trunk/boost/geometry/multi/iterators/range_type.hpp (original)
+++ trunk/boost/geometry/multi/views/detail/range_type.hpp 2011-05-08 06:57:21 EDT (Sun, 08 May 2011)
@@ -11,13 +11,13 @@
 // 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_ITERATORS_RANGE_TYPE_HPP
-#define BOOST_GEOMETRY_MULTI_ITERATORS_RANGE_TYPE_HPP
+#ifndef BOOST_GEOMETRY_MULTI_VIEWS_DETAIL_RANGE_TYPE_HPP
+#define BOOST_GEOMETRY_MULTI_VIEWS_DETAIL_RANGE_TYPE_HPP
 
 
 #include <boost/range.hpp>
 
-#include <boost/geometry/iterators/range_type.hpp>
+#include <boost/geometry/views/detail/range_type.hpp>
 
 
 namespace boost { namespace geometry
@@ -46,7 +46,7 @@
 struct range_type<multi_polygon_tag, Geometry>
 {
     // Call its single-version
- typedef typename geometry::ring_type
+ typedef typename geometry::detail::range_type
         <
             typename boost::range_value<Geometry>::type
>::type type;
@@ -59,4 +59,4 @@
 
 }} // namespace boost::geometry
 
-#endif // BOOST_GEOMETRY_MULTI_ITERATORS_RANGE_TYPE_HPP
+#endif // BOOST_GEOMETRY_MULTI_VIEWS_DETAIL_RANGE_TYPE_HPP

Modified: trunk/boost/geometry/strategies/agnostic/hull_graham_andrew.hpp
==============================================================================
--- trunk/boost/geometry/strategies/agnostic/hull_graham_andrew.hpp (original)
+++ trunk/boost/geometry/strategies/agnostic/hull_graham_andrew.hpp 2011-05-08 06:57:21 EDT (Sun, 08 May 2011)
@@ -23,7 +23,7 @@
 #include <boost/geometry/core/point_type.hpp>
 #include <boost/geometry/strategies/convex_hull.hpp>
 
-#include <boost/geometry/iterators/range_type.hpp>
+#include <boost/geometry/views/detail/range_type.hpp>
 
 #include <boost/geometry/policies/compare.hpp>
 
@@ -277,7 +277,7 @@
         // This makes use of the geometry::less/greater predicates with the optional
         // direction template parameter to indicate x direction
 
- typedef typename range_type<InputGeometry>::type range_type;
+ typedef typename geometry::detail::range_type<InputGeometry>::type range_type;
 
         typedef typename boost::range_iterator
             <

Deleted: trunk/boost/geometry/util/as_range.hpp
==============================================================================
--- trunk/boost/geometry/util/as_range.hpp 2011-05-08 06:57:21 EDT (Sun, 08 May 2011)
+++ (empty file)
@@ -1,103 +0,0 @@
-// Boost.Geometry (aka GGL, Generic Geometry Library)
-
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-// Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
-
-// Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
-// (geolib/GGL), copyright (c) 1995-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_AS_RANGE_HPP
-#define BOOST_GEOMETRY_UTIL_AS_RANGE_HPP
-
-
-#include <boost/type_traits.hpp>
-
-#include <boost/geometry/core/exterior_ring.hpp>
-#include <boost/geometry/core/tag.hpp>
-#include <boost/geometry/core/tags.hpp>
-
-#include <boost/geometry/util/add_const_if_c.hpp>
-
-
-namespace boost { namespace geometry
-{
-
-
-#ifndef DOXYGEN_NO_DISPATCH
-namespace dispatch
-{
-
-
-template <typename GeometryTag, typename Geometry, typename Range, bool IsConst>
-struct as_range
-{
- static inline typename add_const_if_c<IsConst, Range>::type& get(
- typename add_const_if_c<IsConst, Geometry>::type& input)
- {
- return input;
- }
-};
-
-
-template <typename Geometry, typename Range, bool IsConst>
-struct as_range<polygon_tag, Geometry, Range, IsConst>
-{
- static inline typename add_const_if_c<IsConst, Range>::type& get(
- typename add_const_if_c<IsConst, Geometry>::type& input)
- {
- return exterior_ring(input);
- }
-};
-
-
-} // namespace dispatch
-#endif // DOXYGEN_NO_DISPATCH
-
-
-/*!
-\brief Function getting either the range (ring, linestring) itself
-or the outer ring (polygon)
-\details Utility to handle polygon's outer ring as a range
-\ingroup utility
-*/
-template <typename Range, typename Geometry>
-inline Range& as_range(Geometry& input)
-{
- return dispatch::as_range
- <
- typename tag<Geometry>::type,
- Geometry,
- Range,
- false
- >::get(input);
-}
-
-
-/*!
-\brief Function getting either the range (ring, linestring) itself
-or the outer ring (polygon), const version
-\details Utility to handle polygon's outer ring as a range
-\ingroup utility
-*/
-template <typename Range, typename Geometry>
-inline Range const& as_range(Geometry const& input)
-{
- return dispatch::as_range
- <
- typename tag<Geometry>::type,
- Geometry,
- Range,
- true
- >::get(input);
-}
-
-
-}} // namespace boost::geometry
-
-
-#endif // BOOST_GEOMETRY_UTIL_AS_RANGE_HPP

Copied: trunk/boost/geometry/views/detail/range_type.hpp (from r71709, /trunk/boost/geometry/iterators/range_type.hpp)
==============================================================================
--- /trunk/boost/geometry/iterators/range_type.hpp (original)
+++ trunk/boost/geometry/views/detail/range_type.hpp 2011-05-08 06:57:21 EDT (Sun, 08 May 2011)
@@ -11,8 +11,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_ITERATORS_RANGE_TYPE_HPP
-#define BOOST_GEOMETRY_ITERATORS_RANGE_TYPE_HPP
+#ifndef BOOST_GEOMETRY_VIEWS_DETAIL_RANGE_TYPE_HPP
+#define BOOST_GEOMETRY_VIEWS_DETAIL_RANGE_TYPE_HPP
 
 
 #include <boost/type_traits.hpp>
@@ -60,6 +60,9 @@
 } // namespace dispatch
 #endif // DOXYGEN_NO_DISPATCH
 
+// Will probably be replaced by the more generic "view_as", therefore in detail
+namespace detail
+{
 
 
 /*!
@@ -82,8 +85,9 @@
>::type type;
 };
 
+}
 
 }} // namespace boost::geometry
 
 
-#endif // BOOST_GEOMETRY_ITERATORS_RANGE_TYPE_HPP
+#endif // BOOST_GEOMETRY_VIEWS_DETAIL_RANGE_TYPE_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