|
Boost-Commit : |
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
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