Boost logo

Boost-Commit :

Subject: [Boost-commit] svn:boost r71710 - in branches/release: boost/geometry boost/geometry/algorithms boost/geometry/algorithms/detail boost/geometry/algorithms/detail/overlay boost/geometry/arithmetic boost/geometry/core boost/geometry/domains boost/geometry/geometries boost/geometry/geometries/adapted boost/geometry/geometries/register boost/geometry/iterators boost/geometry/multi boost/geometry/policies boost/geometry/ranges boost/geometry/strategies boost/geometry/util boost/geometry/views libs/geometry libs/geometry/doc libs/geometry/doc/concept libs/geometry/doc/doxy libs/geometry/doc/doxy/doxygen_input/pages libs/geometry/doc/generated libs/geometry/doc/html libs/geometry/doc/reference libs/geometry/doc/reference/core libs/geometry/doc/reference/geometries/adapted libs/geometry/doc/reference/geometries/adapted/boost_polygon libs/geometry/doc/reference/geometries/adapted/boost_range libs/geometry/doc/src libs/geometry/doc/src/docutils/tools/doxygen_xml2qbk libs/geometry/doc/src/examples libs/geometry/doc/src/examples/algorithms libs/geometry/doc/src/examples/core libs/geometry/doc/src/examples/geometries libs/geometry/doc/src/examples/geometries/adapted libs/geometry/doc/src/examples/geometries/adapted/boost_range libs/geometry/doc/src/examples/geometries/register libs/geometry/example libs/geometry/example/with_external_libs libs/geometry/test libs/geometry/test/algorithms libs/geometry/test/algorithms/overlay libs/geometry/test/arithmetic libs/geometry/test/core libs/geometry/test/geometries libs/geometry/test/multi/algorithms libs/geometry/test/multi/algorithms/overlay libs/geometry/test/point_concept libs/geometry/test/policies libs/geometry/test/ranges libs/geometry/test/strategies libs/geometry/test/util libs/geometry/test/views
From: barend.gehrels_at_[hidden]
Date: 2011-05-04 08:15:27


Author: barendgehrels
Date: 2011-05-04 08:15:07 EDT (Wed, 04 May 2011)
New Revision: 71710
URL: http://svn.boost.org/trac/boost/changeset/71710

Log:
Merged Boost.Geometry from revision 71351 through 71709
Mainly registration macro (instead of calling header files) for Boost.Tuple, C-Array, Boost.Array, Boost.Fusion
Second the intersections check if geometries are valid
Further doc updates
Added:
   branches/release/boost/geometry/algorithms/detail/has_self_intersections.hpp
      - copied unchanged from r71709, /trunk/boost/geometry/algorithms/detail/has_self_intersections.hpp
   branches/release/boost/geometry/geometries/adapted/boost_fusion.hpp
      - copied unchanged from r71709, /trunk/boost/geometry/geometries/adapted/boost_fusion.hpp
   branches/release/boost/geometry/geometries/adapted/boost_polygon.hpp
      - copied unchanged from r71709, /trunk/boost/geometry/geometries/adapted/boost_polygon.hpp
   branches/release/boost/geometry/geometries/adapted/boost_tuple.hpp
      - copied unchanged from r71709, /trunk/boost/geometry/geometries/adapted/boost_tuple.hpp
   branches/release/libs/geometry/doc/reference/core/interior_type.qbk
      - copied unchanged from r71709, /trunk/libs/geometry/doc/reference/core/interior_type.qbk
   branches/release/libs/geometry/doc/reference/core/ring_type.qbk
      - copied unchanged from r71709, /trunk/libs/geometry/doc/reference/core/ring_type.qbk
   branches/release/libs/geometry/doc/reference/geometries/adapted/
      - copied from r71709, /trunk/libs/geometry/doc/reference/geometries/adapted/
   branches/release/libs/geometry/doc/reference/geometries/adapted/boost_array.qbk
      - copied unchanged from r71709, /trunk/libs/geometry/doc/reference/geometries/adapted/boost_array.qbk
   branches/release/libs/geometry/doc/reference/geometries/adapted/boost_fusion.qbk
      - copied unchanged from r71709, /trunk/libs/geometry/doc/reference/geometries/adapted/boost_fusion.qbk
   branches/release/libs/geometry/doc/reference/geometries/adapted/boost_polygon/
      - copied from r71709, /trunk/libs/geometry/doc/reference/geometries/adapted/boost_polygon/
   branches/release/libs/geometry/doc/reference/geometries/adapted/boost_polygon/point_data.qbk
      - copied unchanged from r71709, /trunk/libs/geometry/doc/reference/geometries/adapted/boost_polygon/point_data.qbk
   branches/release/libs/geometry/doc/reference/geometries/adapted/boost_polygon/polygon_data.qbk
      - copied unchanged from r71709, /trunk/libs/geometry/doc/reference/geometries/adapted/boost_polygon/polygon_data.qbk
   branches/release/libs/geometry/doc/reference/geometries/adapted/boost_polygon/polygon_with_holes_data.qbk
      - copied unchanged from r71709, /trunk/libs/geometry/doc/reference/geometries/adapted/boost_polygon/polygon_with_holes_data.qbk
   branches/release/libs/geometry/doc/reference/geometries/adapted/boost_polygon/rectangle_data.qbk
      - copied unchanged from r71709, /trunk/libs/geometry/doc/reference/geometries/adapted/boost_polygon/rectangle_data.qbk
   branches/release/libs/geometry/doc/reference/geometries/adapted/boost_range/
      - copied from r71709, /trunk/libs/geometry/doc/reference/geometries/adapted/boost_range/
   branches/release/libs/geometry/doc/reference/geometries/adapted/boost_range/adapts_model.qbk
      - copied unchanged from r71709, /trunk/libs/geometry/doc/reference/geometries/adapted/boost_range/adapts_model.qbk
   branches/release/libs/geometry/doc/reference/geometries/adapted/boost_range/filtered.qbk
      - copied unchanged from r71709, /trunk/libs/geometry/doc/reference/geometries/adapted/boost_range/filtered.qbk
   branches/release/libs/geometry/doc/reference/geometries/adapted/boost_range/reversed.qbk
      - copied unchanged from r71709, /trunk/libs/geometry/doc/reference/geometries/adapted/boost_range/reversed.qbk
   branches/release/libs/geometry/doc/reference/geometries/adapted/boost_range/sliced.qbk
      - copied unchanged from r71709, /trunk/libs/geometry/doc/reference/geometries/adapted/boost_range/sliced.qbk
   branches/release/libs/geometry/doc/reference/geometries/adapted/boost_range/strided.qbk
      - copied unchanged from r71709, /trunk/libs/geometry/doc/reference/geometries/adapted/boost_range/strided.qbk
   branches/release/libs/geometry/doc/reference/geometries/adapted/boost_range/uniqued.qbk
      - copied unchanged from r71709, /trunk/libs/geometry/doc/reference/geometries/adapted/boost_range/uniqued.qbk
   branches/release/libs/geometry/doc/reference/geometries/adapted/boost_tuple.qbk
      - copied unchanged from r71709, /trunk/libs/geometry/doc/reference/geometries/adapted/boost_tuple.qbk
   branches/release/libs/geometry/doc/reference/geometries/adapted/c_array.qbk
      - copied unchanged from r71709, /trunk/libs/geometry/doc/reference/geometries/adapted/c_array.qbk
   branches/release/libs/geometry/doc/src/examples/core/interior_type.cpp
      - copied unchanged from r71709, /trunk/libs/geometry/doc/src/examples/core/interior_type.cpp
   branches/release/libs/geometry/doc/src/examples/core/ring_type.cpp
      - copied unchanged from r71709, /trunk/libs/geometry/doc/src/examples/core/ring_type.cpp
   branches/release/libs/geometry/doc/src/examples/core/rings.cpp
      - copied unchanged from r71709, /trunk/libs/geometry/doc/src/examples/core/rings.cpp
   branches/release/libs/geometry/doc/src/examples/geometries/adapted/
      - copied from r71709, /trunk/libs/geometry/doc/src/examples/geometries/adapted/
   branches/release/libs/geometry/doc/src/examples/geometries/adapted/Jamfile.v2
      - copied unchanged from r71709, /trunk/libs/geometry/doc/src/examples/geometries/adapted/Jamfile.v2
   branches/release/libs/geometry/doc/src/examples/geometries/adapted/boost_array.cpp
      - copied unchanged from r71709, /trunk/libs/geometry/doc/src/examples/geometries/adapted/boost_array.cpp
   branches/release/libs/geometry/doc/src/examples/geometries/adapted/boost_fusion.cpp
      - copied unchanged from r71709, /trunk/libs/geometry/doc/src/examples/geometries/adapted/boost_fusion.cpp
   branches/release/libs/geometry/doc/src/examples/geometries/adapted/boost_polygon.cpp
      - copied unchanged from r71709, /trunk/libs/geometry/doc/src/examples/geometries/adapted/boost_polygon.cpp
   branches/release/libs/geometry/doc/src/examples/geometries/adapted/boost_range/
      - copied from r71709, /trunk/libs/geometry/doc/src/examples/geometries/adapted/boost_range/
   branches/release/libs/geometry/doc/src/examples/geometries/adapted/boost_range/Jamfile.v2
      - copied unchanged from r71709, /trunk/libs/geometry/doc/src/examples/geometries/adapted/boost_range/Jamfile.v2
   branches/release/libs/geometry/doc/src/examples/geometries/adapted/boost_range/filtered.cpp
      - copied unchanged from r71709, /trunk/libs/geometry/doc/src/examples/geometries/adapted/boost_range/filtered.cpp
   branches/release/libs/geometry/doc/src/examples/geometries/adapted/boost_range/reversed.cpp
      - copied unchanged from r71709, /trunk/libs/geometry/doc/src/examples/geometries/adapted/boost_range/reversed.cpp
   branches/release/libs/geometry/doc/src/examples/geometries/adapted/boost_range/sliced.cpp
      - copied unchanged from r71709, /trunk/libs/geometry/doc/src/examples/geometries/adapted/boost_range/sliced.cpp
   branches/release/libs/geometry/doc/src/examples/geometries/adapted/boost_range/strided.cpp
      - copied unchanged from r71709, /trunk/libs/geometry/doc/src/examples/geometries/adapted/boost_range/strided.cpp
   branches/release/libs/geometry/doc/src/examples/geometries/adapted/boost_range/uniqued.cpp
      - copied unchanged from r71709, /trunk/libs/geometry/doc/src/examples/geometries/adapted/boost_range/uniqued.cpp
   branches/release/libs/geometry/doc/src/examples/geometries/adapted/boost_tuple.cpp
      - copied unchanged from r71709, /trunk/libs/geometry/doc/src/examples/geometries/adapted/boost_tuple.cpp
   branches/release/libs/geometry/doc/src/examples/geometries/adapted/c_array.cpp
      - copied unchanged from r71709, /trunk/libs/geometry/doc/src/examples/geometries/adapted/c_array.cpp
   branches/release/libs/geometry/doc/src/examples/geometries/register/box.cpp
      - copied unchanged from r71709, /trunk/libs/geometry/doc/src/examples/geometries/register/box.cpp
   branches/release/libs/geometry/doc/src/examples/geometries/register/box_2d_4values.cpp
      - copied unchanged from r71709, /trunk/libs/geometry/doc/src/examples/geometries/register/box_2d_4values.cpp
   branches/release/libs/geometry/doc/src/examples/geometries/register/box_templated.cpp
      - copied unchanged from r71709, /trunk/libs/geometry/doc/src/examples/geometries/register/box_templated.cpp
   branches/release/libs/geometry/test/geometries/boost_tuple.cpp
      - copied unchanged from r71709, /trunk/libs/geometry/test/geometries/boost_tuple.cpp
Removed:
   branches/release/boost/geometry/geometries/adapted/boost_array_cartesian.hpp
   branches/release/boost/geometry/geometries/adapted/boost_array_geographic.hpp
   branches/release/boost/geometry/geometries/adapted/c_array_cartesian.hpp
   branches/release/boost/geometry/geometries/adapted/c_array_geographic.hpp
   branches/release/boost/geometry/geometries/adapted/fusion.hpp
   branches/release/boost/geometry/geometries/adapted/fusion_cartesian.hpp
   branches/release/boost/geometry/geometries/adapted/fusion_geographic.hpp
   branches/release/boost/geometry/geometries/adapted/tuple.hpp
   branches/release/boost/geometry/geometries/adapted/tuple_cartesian.hpp
   branches/release/boost/geometry/geometries/adapted/tuple_geographic.hpp
Properties modified:
   branches/release/boost/geometry/ (props changed)
   branches/release/boost/geometry/algorithms/ (props changed)
   branches/release/boost/geometry/arithmetic/ (props changed)
   branches/release/boost/geometry/core/ (props changed)
   branches/release/boost/geometry/domains/ (props changed)
   branches/release/boost/geometry/geometries/ (props changed)
   branches/release/boost/geometry/geometry.hpp (props changed)
   branches/release/boost/geometry/iterators/ (props changed)
   branches/release/boost/geometry/multi/ (props changed)
   branches/release/boost/geometry/policies/ (props changed)
   branches/release/boost/geometry/ranges/ (props changed)
   branches/release/boost/geometry/strategies/ (props changed)
   branches/release/boost/geometry/util/ (props changed)
   branches/release/boost/geometry/views/ (props changed)
   branches/release/libs/geometry/ (props changed)
   branches/release/libs/geometry/doc/ (props changed)
   branches/release/libs/geometry/doc/Jamfile.v2 (props changed)
   branches/release/libs/geometry/doc/about_documentation.qbk (props changed)
   branches/release/libs/geometry/doc/acknowledgments.qbk (props changed)
   branches/release/libs/geometry/doc/concept/ (props changed)
   branches/release/libs/geometry/doc/copyright_note_policy.txt (props changed)
   branches/release/libs/geometry/doc/design_rationale.qbk (props changed)
   branches/release/libs/geometry/doc/doxy/ (props changed)
   branches/release/libs/geometry/doc/generated/ (props changed)
   branches/release/libs/geometry/doc/geometry.qbk (contents, props changed)
   branches/release/libs/geometry/doc/html/ (props changed)
   branches/release/libs/geometry/doc/imports.qbk (contents, props changed)
   branches/release/libs/geometry/doc/introduction.qbk (props changed)
   branches/release/libs/geometry/doc/make_qbk.py (props changed)
   branches/release/libs/geometry/doc/matrix.qbk (props changed)
   branches/release/libs/geometry/doc/quickref.xml (contents, props changed)
   branches/release/libs/geometry/doc/quickstart.qbk (props changed)
   branches/release/libs/geometry/doc/readme.txt (props changed)
   branches/release/libs/geometry/doc/reference/ (props changed)
   branches/release/libs/geometry/doc/reference.qbk (contents, props changed)
   branches/release/libs/geometry/doc/src/ (props changed)
   branches/release/libs/geometry/example/ (props changed)
   branches/release/libs/geometry/index.html (props changed)
   branches/release/libs/geometry/test/ (props changed)
Text files modified:
   branches/release/boost/geometry/algorithms/detail/overlay/overlay.hpp | 5 +
   branches/release/boost/geometry/algorithms/detail/overlay/self_turn_points.hpp | 27 ++++++++++
   branches/release/boost/geometry/core/closure.hpp | 24 ++++++---
   branches/release/boost/geometry/core/interior_type.hpp | 19 ++++---
   branches/release/boost/geometry/core/point_order.hpp | 19 ++++---
   branches/release/boost/geometry/core/ring_type.hpp | 11 ++-
   branches/release/boost/geometry/core/tag.hpp | 2
   branches/release/boost/geometry/geometries/adapted/boost_array.hpp | 14 ++++-
   branches/release/boost/geometry/geometries/adapted/c_array.hpp | 14 ++++-
   branches/release/boost/geometry/geometries/geometries.hpp | 2
   branches/release/boost/geometry/geometries/register/box.hpp | 72 +++++++++++++++++++++++----
   branches/release/boost/geometry/iterators/box_iterator.hpp | 17 ++++++
   branches/release/boost/geometry/iterators/segment_range_iterator.hpp | 19 +++---
   branches/release/libs/geometry/doc/concept/linestring.qbk | 2
   branches/release/libs/geometry/doc/concept/multi_linestring.qbk | 2
   branches/release/libs/geometry/doc/concept/multi_point.qbk | 2
   branches/release/libs/geometry/doc/concept/multi_polygon.qbk | 2
   branches/release/libs/geometry/doc/concept/point.qbk | 12 ++--
   branches/release/libs/geometry/doc/concept/polygon.qbk | 3
   branches/release/libs/geometry/doc/concept/ring.qbk | 2
   branches/release/libs/geometry/doc/doxy/Doxyfile | 5 +
   branches/release/libs/geometry/doc/doxy/doxygen_input/pages/doxygen_examples.hpp | 6 +-
   branches/release/libs/geometry/doc/geometry.qbk | 7 +
   branches/release/libs/geometry/doc/imports.qbk | 20 +++++++
   branches/release/libs/geometry/doc/quickref.xml | 55 ++++++++++++++++++---
   branches/release/libs/geometry/doc/reference.qbk | 29 ++++++++---
   branches/release/libs/geometry/doc/reference/core/tag.qbk | 15 ++++-
   branches/release/libs/geometry/doc/src/docutils/tools/doxygen_xml2qbk/doxygen_elements.hpp | 1
   branches/release/libs/geometry/doc/src/docutils/tools/doxygen_xml2qbk/doxygen_xml_parser.hpp | 9 +++
   branches/release/libs/geometry/doc/src/docutils/tools/doxygen_xml2qbk/for_debugger.ini | 2
   branches/release/libs/geometry/doc/src/docutils/tools/doxygen_xml2qbk/quickbook_output.hpp | 3
   branches/release/libs/geometry/doc/src/examples/algorithms/append.cpp | 8 +-
   branches/release/libs/geometry/doc/src/examples/algorithms/area.cpp | 2
   branches/release/libs/geometry/doc/src/examples/algorithms/area_with_strategy.cpp | 2
   branches/release/libs/geometry/doc/src/examples/algorithms/assign.cpp | 6 +
   branches/release/libs/geometry/doc/src/examples/algorithms/assign_2d_point.cpp | 2
   branches/release/libs/geometry/doc/src/examples/algorithms/assign_3d_point.cpp | 2
   branches/release/libs/geometry/doc/src/examples/algorithms/assign_box_corners.cpp | 2
   branches/release/libs/geometry/doc/src/examples/algorithms/assign_inverse.cpp | 2
   branches/release/libs/geometry/doc/src/examples/algorithms/assign_point_from_index.cpp | 2
   branches/release/libs/geometry/doc/src/examples/algorithms/assign_point_to_index.cpp | 2
   branches/release/libs/geometry/doc/src/examples/algorithms/assign_points.cpp | 6 +
   branches/release/libs/geometry/doc/src/examples/algorithms/centroid.cpp | 2
   branches/release/libs/geometry/doc/src/examples/algorithms/clear.cpp | 6 +
   branches/release/libs/geometry/doc/src/examples/algorithms/comparable_distance.cpp | 2
   branches/release/libs/geometry/doc/src/examples/algorithms/convert.cpp | 4 +
   branches/release/libs/geometry/doc/src/examples/algorithms/convex_hull.cpp | 6 +
   branches/release/libs/geometry/doc/src/examples/algorithms/correct.cpp | 6 +
   branches/release/libs/geometry/doc/src/examples/algorithms/difference.cpp | 2
   branches/release/libs/geometry/doc/src/examples/algorithms/difference_inserter.cpp | 2
   branches/release/libs/geometry/doc/src/examples/algorithms/distance.cpp | 2
   branches/release/libs/geometry/doc/src/examples/algorithms/envelope.cpp | 2
   branches/release/libs/geometry/doc/src/examples/algorithms/equals.cpp | 6 +
   branches/release/libs/geometry/doc/src/examples/algorithms/expand.cpp | 2
   branches/release/libs/geometry/doc/src/examples/algorithms/for_each_point.cpp | 2
   branches/release/libs/geometry/doc/src/examples/algorithms/for_each_point_const.cpp | 2
   branches/release/libs/geometry/doc/src/examples/algorithms/for_each_segment_const.cpp | 2
   branches/release/libs/geometry/doc/src/examples/algorithms/intersection_ls_ls_point.cpp | 2
   branches/release/libs/geometry/doc/src/examples/algorithms/intersection_poly_poly.cpp | 2
   branches/release/libs/geometry/doc/src/examples/algorithms/intersection_segment.cpp | 2
   branches/release/libs/geometry/doc/src/examples/algorithms/intersects_linestring.cpp | 2
   branches/release/libs/geometry/doc/src/examples/algorithms/intersects_segment.cpp | 2
   branches/release/libs/geometry/doc/src/examples/algorithms/length.cpp | 2
   branches/release/libs/geometry/doc/src/examples/algorithms/length_with_strategy.cpp | 2
   branches/release/libs/geometry/doc/src/examples/algorithms/make_2d_point.cpp | 6 +
   branches/release/libs/geometry/doc/src/examples/algorithms/make_3d_point.cpp | 2
   branches/release/libs/geometry/doc/src/examples/algorithms/make_inverse.cpp | 2
   branches/release/libs/geometry/doc/src/examples/algorithms/make_with_range.cpp | 11 ++-
   branches/release/libs/geometry/doc/src/examples/algorithms/num_geometries.cpp | 2
   branches/release/libs/geometry/doc/src/examples/algorithms/num_interior_rings.cpp | 2
   branches/release/libs/geometry/doc/src/examples/algorithms/num_points.cpp | 2
   branches/release/libs/geometry/doc/src/examples/algorithms/return_envelope.cpp | 2
   branches/release/libs/geometry/doc/src/examples/algorithms/reverse.cpp | 6 +
   branches/release/libs/geometry/doc/src/examples/algorithms/simplify.cpp | 2
   branches/release/libs/geometry/doc/src/examples/algorithms/simplify_insert.cpp | 2
   branches/release/libs/geometry/doc/src/examples/algorithms/simplify_insert_with_strategy.cpp | 2
   branches/release/libs/geometry/doc/src/examples/algorithms/sym_difference.cpp | 2
   branches/release/libs/geometry/doc/src/examples/algorithms/transform.cpp | 2
   branches/release/libs/geometry/doc/src/examples/algorithms/transform_with_strategy.cpp | 2
   branches/release/libs/geometry/doc/src/examples/algorithms/union.cpp | 2
   branches/release/libs/geometry/doc/src/examples/algorithms/unique.cpp | 6 +
   branches/release/libs/geometry/doc/src/examples/algorithms/within.cpp | 2
   branches/release/libs/geometry/doc/src/examples/core/Jamfile.v2 | 3 +
   branches/release/libs/geometry/doc/src/examples/core/closure.cpp | 2
   branches/release/libs/geometry/doc/src/examples/core/coordinate_dimension.cpp | 9 +-
   branches/release/libs/geometry/doc/src/examples/core/coordinate_system.cpp | 2
   branches/release/libs/geometry/doc/src/examples/core/coordinate_type.cpp | 2
   branches/release/libs/geometry/doc/src/examples/core/degree_radian.cpp | 2
   branches/release/libs/geometry/doc/src/examples/core/get_box.cpp | 4
   branches/release/libs/geometry/doc/src/examples/core/get_point.cpp | 2
   branches/release/libs/geometry/doc/src/examples/core/point_order.cpp | 2
   branches/release/libs/geometry/doc/src/examples/core/point_type.cpp | 2
   branches/release/libs/geometry/doc/src/examples/core/set_box.cpp | 2
   branches/release/libs/geometry/doc/src/examples/core/set_point.cpp | 2
   branches/release/libs/geometry/doc/src/examples/core/tag.cpp | 102 +++++++++++++++++++++++++++++++--------
   branches/release/libs/geometry/doc/src/examples/core/tag_cast.cpp | 2
   branches/release/libs/geometry/doc/src/examples/geometries/Jamfile.v2 | 1
   branches/release/libs/geometry/doc/src/examples/geometries/point.cpp | 2
   branches/release/libs/geometry/doc/src/examples/geometries/register/Jamfile.v2 | 4 +
   branches/release/libs/geometry/doc/src/examples/geometries/register/point.cpp | 4
   branches/release/libs/geometry/doc/src/examples/quick_start.cpp | 14 +++--
   branches/release/libs/geometry/example/01_point_example.cpp | 10 ++-
   branches/release/libs/geometry/example/02_linestring_example.cpp | 4
   branches/release/libs/geometry/example/03_polygon_example.cpp | 5 +
   branches/release/libs/geometry/example/04_boost_example.cpp | 5 +
   branches/release/libs/geometry/example/05_a_overlay_polygon_example.cpp | 4 +
   branches/release/libs/geometry/example/05_b_overlay_linestring_polygon_example.cpp | 4 +
   branches/release/libs/geometry/example/06_a_transformation_example.cpp | 7 +
   branches/release/libs/geometry/example/c02_custom_box_example.cpp | 2
   branches/release/libs/geometry/example/c04_a_custom_triangle_example.cpp | 6 +
   branches/release/libs/geometry/example/c04_b_custom_triangle_example.cpp | 12 ++-
   branches/release/libs/geometry/example/c06_custom_polygon_example.cpp | 7 +
   branches/release/libs/geometry/example/c08_custom_non_std_example.cpp | 6 +
   branches/release/libs/geometry/example/c09_custom_fusion_example.cpp | 5 +
   branches/release/libs/geometry/example/with_external_libs/x03_a_soci_example.cpp | 3
   branches/release/libs/geometry/test/algorithms/assign.cpp | 7 +
   branches/release/libs/geometry/test/algorithms/centroid.cpp | 21 +++++++-
   branches/release/libs/geometry/test/algorithms/convert.cpp | 7 +
   branches/release/libs/geometry/test/algorithms/distance.cpp | 7 +
   branches/release/libs/geometry/test/algorithms/envelope.cpp | 7 +
   branches/release/libs/geometry/test/algorithms/expand.cpp | 7 +
   branches/release/libs/geometry/test/algorithms/intersection.cpp | 21 ++++++++
   branches/release/libs/geometry/test/algorithms/make.cpp | 7 +
   branches/release/libs/geometry/test/algorithms/overlay/get_turn_info.cpp | 3
   branches/release/libs/geometry/test/algorithms/overlay/overlay_common.hpp | 4 +
   branches/release/libs/geometry/test/algorithms/overlay/self_intersection_points.cpp | 2
   branches/release/libs/geometry/test/algorithms/test_centroid.hpp | 34 ++++--------
   branches/release/libs/geometry/test/arithmetic/arithmetic.cpp | 7 +
   branches/release/libs/geometry/test/arithmetic/dot_product.cpp | 7 +
   branches/release/libs/geometry/test/core/access.cpp | 6 +
   branches/release/libs/geometry/test/core/coordinate_dimension.cpp | 7 +
   branches/release/libs/geometry/test/core/coordinate_system.cpp | 7 +
   branches/release/libs/geometry/test/core/coordinate_type.cpp | 7 +
   branches/release/libs/geometry/test/core/geometry_id.cpp | 7 +
   branches/release/libs/geometry/test/core/point_type.cpp | 7 +
   branches/release/libs/geometry/test/core/tag.cpp | 7 +
   branches/release/libs/geometry/test/core/topological_dimension.cpp | 7 +
   branches/release/libs/geometry/test/geometries/Jamfile.v2 | 2
   branches/release/libs/geometry/test/geometries/adapted.cpp | 7 +
   branches/release/libs/geometry/test/geometries/boost_array_as_point.cpp | 10 ++-
   branches/release/libs/geometry/test/geometries/boost_fusion.cpp | 12 +++-
   branches/release/libs/geometry/test/geometries/box.cpp | 7 +
   branches/release/libs/geometry/test/geometries/custom_linestring.cpp | 7 +
   branches/release/libs/geometry/test/geometries/segment.cpp | 7 +
   branches/release/libs/geometry/test/multi/algorithms/multi_distance.cpp | 7 +
   branches/release/libs/geometry/test/multi/algorithms/multi_envelope.cpp | 7 +-
   branches/release/libs/geometry/test/multi/algorithms/overlay/multi_overlay_cases.hpp | 2
   branches/release/libs/geometry/test/point_concept/array_point.cpp | 5 +
   branches/release/libs/geometry/test/policies/compare.cpp | 7 +
   branches/release/libs/geometry/test/ranges/box_range.cpp | 3 +
   branches/release/libs/geometry/test/ranges/segment_range.cpp | 4 +
   branches/release/libs/geometry/test/strategies/projected_point.cpp | 6 +
   branches/release/libs/geometry/test/strategies/pythagoras.cpp | 6 +
   branches/release/libs/geometry/test/strategies/segment_intersection.cpp | 3
   branches/release/libs/geometry/test/strategies/transformer.cpp | 7 +-
   branches/release/libs/geometry/test/util/for_each_coordinate.cpp | 7 +
   branches/release/libs/geometry/test/views/closeable_view.cpp | 3
   branches/release/libs/geometry/test/views/reversible_closeable.cpp | 4 +
   branches/release/libs/geometry/test/views/reversible_view.cpp | 5 +
   159 files changed, 807 insertions(+), 337 deletions(-)

Modified: branches/release/boost/geometry/algorithms/detail/overlay/overlay.hpp
==============================================================================
--- branches/release/boost/geometry/algorithms/detail/overlay/overlay.hpp (original)
+++ branches/release/boost/geometry/algorithms/detail/overlay/overlay.hpp 2011-05-04 08:15:07 EDT (Wed, 04 May 2011)
@@ -25,6 +25,8 @@
 #include <boost/geometry/algorithms/detail/overlay/traversal_info.hpp>
 #include <boost/geometry/algorithms/detail/overlay/turn_info.hpp>
 
+#include <boost/geometry/algorithms/detail/has_self_intersections.hpp>
+
 
 #include <boost/geometry/algorithms/num_points.hpp>
 #include <boost/geometry/algorithms/reverse.hpp>
@@ -168,6 +170,9 @@
                     GeometryOut, Direction, ReverseOut
>(geometry1, geometry2, out);
         }
+
+ has_self_intersections(geometry1);
+ has_self_intersections(geometry2);
 
         container_type turn_points;
 

Modified: branches/release/boost/geometry/algorithms/detail/overlay/self_turn_points.hpp
==============================================================================
--- branches/release/boost/geometry/algorithms/detail/overlay/self_turn_points.hpp (original)
+++ branches/release/boost/geometry/algorithms/detail/overlay/self_turn_points.hpp 2011-05-04 08:15:07 EDT (Wed, 04 May 2011)
@@ -138,6 +138,31 @@
 
 template
 <
+ typename Box,
+ typename Turns,
+ typename TurnPolicy,
+ typename InterruptPolicy
+>
+struct self_get_turn_points
+ <
+ box_tag, Box,
+ Turns,
+ TurnPolicy,
+ InterruptPolicy
+ >
+{
+ static inline bool apply(
+ Box const& ,
+ Turns& ,
+ InterruptPolicy& )
+ {
+ return true;
+ }
+};
+
+
+template
+<
     typename Polygon,
     typename Turns,
     typename TurnPolicy,
@@ -182,7 +207,7 @@
     typename Turns,
     typename InterruptPolicy
>
-inline void get_turns(Geometry const& geometry,
+inline void self_turns(Geometry const& geometry,
             Turns& turns, InterruptPolicy& interrupt_policy)
 {
     concept::check<Geometry const>();

Modified: branches/release/boost/geometry/core/closure.hpp
==============================================================================
--- branches/release/boost/geometry/core/closure.hpp (original)
+++ branches/release/boost/geometry/core/closure.hpp 2011-05-04 08:15:07 EDT (Wed, 04 May 2011)
@@ -32,11 +32,11 @@
 \brief Enumerates options for defining if polygons are open or closed
 \ingroup enum
 \details The enumeration closure_selector describes options for if a polygon is
- open or closed. In a closed polygon the very first point (per ring) should be
- equal to the very last point.
- The specific closing property of a polygon type is defined by the closure metafunction.
- The closure metafunction defines a value, which is one of the values enumerated
- in the closure_selector
+ open or closed. In a closed polygon the very first point (per ring) should
+ be equal to the very last point.
+ The specific closing property of a polygon type is defined by the closure
+ metafunction. The closure metafunction defines a value, which is one of the
+ values enumerated in the closure_selector
 
 \qbk{
 [heading See also]
@@ -45,8 +45,13 @@
 */
 enum closure_selector
 {
+ /// Rings are open: first point and last point are different, algorithms
+ /// close them explicitly on the fly
     open = 0,
+ /// Rings are closed: first point and last point must be the same
     closed = 1,
+ /// (Not yet implemented): algorithms first figure out if ring must be
+ /// closed on the fly
     closure_undertermined = -1
 };
 
@@ -123,13 +128,15 @@
 struct closure<segment_tag, Box> : public core_detail::closure::closed {};
 
 template <typename LineString>
-struct closure<linestring_tag, LineString> : public core_detail::closure::closed {};
+struct closure<linestring_tag, LineString>
+ : public core_detail::closure::closed {};
 
 
 template <typename Ring>
 struct closure<ring_tag, Ring>
 {
- static const closure_selector value = geometry::traits::closure<Ring>::value;
+ static const closure_selector value
+ = geometry::traits::closure<Ring>::value;
 };
 
 // Specialization for polygon: the closure is the closure of its rings
@@ -149,7 +156,8 @@
 
 
 /*!
-\brief \brief_meta{value, closure (clockwise\, counterclockwise), \meta_geometry_type}
+\brief \brief_meta{value, closure (clockwise\, counterclockwise),
+ \meta_geometry_type}
 \tparam Geometry \tparam_geometry
 \ingroup core
 

Modified: branches/release/boost/geometry/core/interior_type.hpp
==============================================================================
--- branches/release/boost/geometry/core/interior_type.hpp (original)
+++ branches/release/boost/geometry/core/interior_type.hpp 2011-05-04 08:15:07 EDT (Wed, 04 May 2011)
@@ -114,7 +114,7 @@
     typedef typename boost::remove_reference
         <
             typename interior_return_type<polygon_tag, Polygon>::type
- > type;
+ >::type type;
 };
 
 
@@ -123,13 +123,16 @@
 
 
 /*!
- \brief Meta-function defining container type
- of inner rings of (multi)polygon geometriy
- \details the interior rings should be organized as a container
- (std::vector, std::deque, boost::array) with
- boost range support. This meta function defines the type
- of that container.
- \ingroup core
+\brief \brief_meta{type, interior_type (container type
+ of inner rings), \meta_geometry_type}
+\details Interior rings should be organized as a container
+ (std::vector, std::deque, boost::array) with
+ Boost.Range support. This metafunction defines the type
+ of the container.
+\tparam Geometry A type fullfilling the Polygon or MultiPolygon concept.
+\ingroup core
+
+\qbk{[include reference/core/interior_type.qbk]}
 */
 template <typename Geometry>
 struct interior_type

Modified: branches/release/boost/geometry/core/point_order.hpp
==============================================================================
--- branches/release/boost/geometry/core/point_order.hpp (original)
+++ branches/release/boost/geometry/core/point_order.hpp 2011-05-04 08:15:07 EDT (Wed, 04 May 2011)
@@ -29,11 +29,11 @@
 /*!
 \brief Enumerates options for the order of points within polygons
 \ingroup enum
-\details The enumeration order_selector describes options for the order of points
- within a polygon. Polygons can be ordered either clockwise or counterclockwise.
- The specific order of a polygon type is defined by the point_order metafunction.
- The point_order metafunction defines a value, which is one of the values enumerated
- in the order_selector
+\details The enumeration order_selector describes options for the order of
+ points within a polygon. Polygons can be ordered either clockwise or
+ counterclockwise. The specific order of a polygon type is defined by the
+ point_order metafunction. The point_order metafunction defines a value,
+ which is one of the values enumerated in the order_selector
 
 \qbk{
 [heading See also]
@@ -46,7 +46,8 @@
     clockwise = 1,
     /// Points are ordered counter clockwise
     counterclockwise = 2,
- /// Points might be stored in any order, the algorithm will find out (not yet supported)
+ /// Points might be stored in any order, algorithms will determine it on the
+ /// fly (not yet supported)
     order_undetermined = 0
 };
 
@@ -119,7 +120,8 @@
 template <typename Ring>
 struct point_order<ring_tag, Ring>
 {
- static const order_selector value = geometry::traits::point_order<Ring>::value;
+ static const order_selector value
+ = geometry::traits::point_order<Ring>::value;
 };
 
 // Specialization for polygon: the order is the order of its rings
@@ -138,7 +140,8 @@
 
 
 /*!
-\brief \brief_meta{value, point order (clockwise\, counterclockwise), \meta_geometry_type}
+\brief \brief_meta{value, point order (clockwise\, counterclockwise),
+ \meta_geometry_type}
 \tparam Geometry \tparam_geometry
 \ingroup core
 

Modified: branches/release/boost/geometry/core/ring_type.hpp
==============================================================================
--- branches/release/boost/geometry/core/ring_type.hpp (original)
+++ branches/release/boost/geometry/core/ring_type.hpp 2011-05-04 08:15:07 EDT (Wed, 04 May 2011)
@@ -132,12 +132,15 @@
 
 
 /*!
-\brief Meta-function which defines ring type of (multi)polygon geometry
-\details a polygon contains one exterior ring
+\brief \brief_meta{type, ring_type, \meta_geometry_type}
+\details A polygon contains one exterior ring
     and zero or more interior rings (holes).
- This meta function retrieves the type of the rings
-\note Exterior ring and interior rings must have the same ring-type.
+ This metafunction retrieves the type of the rings.
+ Exterior ring and each of the interior rings all have the same ring_type.
+\tparam Geometry A type fullfilling the Ring, Polygon or MultiPolygon concept.
 \ingroup core
+
+\qbk{[include reference/core/ring_type.qbk]}
 */
 template <typename Geometry>
 struct ring_type

Modified: branches/release/boost/geometry/core/tag.hpp
==============================================================================
--- branches/release/boost/geometry/core/tag.hpp (original)
+++ branches/release/boost/geometry/core/tag.hpp 2011-05-04 08:15:07 EDT (Wed, 04 May 2011)
@@ -49,6 +49,8 @@
 
 /*!
 \brief \brief_meta{type, tag, \meta_geometry_type}
+\details With Boost.Geometry, tags are the driving force of the tag dispatching
+ mechanism. The tag metafunction is therefore used in every free function.
 \tparam Geometry \tparam_geometry
 \ingroup core
 

Modified: branches/release/boost/geometry/geometries/adapted/boost_array.hpp
==============================================================================
--- branches/release/boost/geometry/geometries/adapted/boost_array.hpp (original)
+++ branches/release/boost/geometry/geometries/adapted/boost_array.hpp 2011-05-04 08:15:07 EDT (Wed, 04 May 2011)
@@ -98,9 +98,6 @@
     }
 };
 
-// The library user has
-// 1) either to specify the coordinate system
-// 2) or include <boost/geometry/geometries/adapted/boost_array__at_.hpp> where @=cartesian,geographic,...
 
 } // namespace traits
 #endif // DOXYGEN_NO_TRAITS_SPECIALIZATIONS
@@ -108,5 +105,16 @@
 
 }} // namespace boost::geometry
 
+
+#define BOOST_GEOMETRY_REGISTER_BOOST_ARRAY_CS(CoordinateSystem) \
+ namespace boost { namespace geometry { namespace traits { \
+ template <class T, std::size_t N> \
+ struct coordinate_system<boost::array<T, N> > \
+ { \
+ typedef CoordinateSystem type; \
+ }; \
+ }}}
+
+
 #endif // BOOST_GEOMETRY_GEOMETRIES_ADAPTED_BOOST_ARRAY_HPP
 

Deleted: branches/release/boost/geometry/geometries/adapted/boost_array_cartesian.hpp
==============================================================================
--- branches/release/boost/geometry/geometries/adapted/boost_array_cartesian.hpp 2011-05-04 08:15:07 EDT (Wed, 04 May 2011)
+++ (empty file)
@@ -1,42 +0,0 @@
-// Boost.Geometry (aka GGL, Generic Geometry Library)
-
-// Copyright (c) 2010 Alfredo Correa
-// Copyright (c) 2010-2011 Barend Gehrels, 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_GEOMETRIES_ADAPTED_BOOST_ARRAY_CARTESIAN_HPP
-#define BOOST_GEOMETRY_GEOMETRIES_ADAPTED_BOOST_ARRAY_CARTESIAN_HPP
-
-#ifdef BOOST_GEOMETRY_ADAPTED_BOOST_ARRAY_COORDINATE_SYSTEM_DEFINED
-#error Include only one headerfile to register coordinate coordinate_system for adapted boost array
-#endif
-
-#define BOOST_GEOMETRY_ADAPTED_BOOST_ARRAY_COORDINATE_SYSTEM_DEFINED
-
-
-#include <boost/geometry/geometries/adapted/boost_array.hpp>
-
-
-namespace boost { namespace geometry
-{
-
-
-#ifndef DOXYGEN_NO_TRAITS_SPECIALIZATIONS
-namespace traits
-{
- template <typename T, std::size_t N>
- struct coordinate_system<boost::array<T, N> >
- { typedef cs::cartesian type; };
-
-}
-#endif
-
-
-}} // namespace boost::geometry
-
-
-#endif // BOOST_GEOMETRY_GEOMETRIES_ADAPTED_BOOST_ARRAY_CARTESIAN_HPP
-

Deleted: branches/release/boost/geometry/geometries/adapted/boost_array_geographic.hpp
==============================================================================
--- branches/release/boost/geometry/geometries/adapted/boost_array_geographic.hpp 2011-05-04 08:15:07 EDT (Wed, 04 May 2011)
+++ (empty file)
@@ -1,40 +0,0 @@
-// Boost.Geometry (aka GGL, Generic Geometry Library)
-
-// Copyright (c) 2010 Alfredo Correa
-// Copyright (c) 2010-2011 Barend Gehrels, 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_GEOMETRIES_ADAPTED_BOOST_ARRAY_GEOGRAPHIC_HPP
-#define BOOST_GEOMETRY_GEOMETRIES_ADAPTED_BOOST_ARRAY_GEOGRAPHIC_HPP
-
-#ifdef BOOST_GEOMETRY_ADAPTED_BOOST_ARRAY_COORDINATE_SYSTEM_DEFINED
-#error Include only one headerfile to register coordinate coordinate_system for adapted boost array
-#endif
-
-#define BOOST_GEOMETRY_ADAPTED_BOOST_ARRAY_COORDINATE_SYSTEM_DEFINED
-
-
-#include <boost/geometry/geometries/adapted/boost_array.hpp>
-
-namespace boost { namespace geometry
-{
-
-
-#ifndef DOXYGEN_NO_TRAITS_SPECIALIZATIONS
-namespace traits
-{
- template <typename T, std::size_t N>
- struct coordinate_system<boost::array<T, N> >
- { typedef cs::geographic type; };
-
-}
-#endif
-
-
-}} // namespace boost::geometry
-
-
-#endif // BOOST_GEOMETRY_GEOMETRIES_ADAPTED_BOOST_ARRAY_GEOGRAPHIC_HPP

Modified: branches/release/boost/geometry/geometries/adapted/c_array.hpp
==============================================================================
--- branches/release/boost/geometry/geometries/adapted/c_array.hpp (original)
+++ branches/release/boost/geometry/geometries/adapted/c_array.hpp 2011-05-04 08:15:07 EDT (Wed, 04 May 2011)
@@ -90,9 +90,6 @@
     }
 };
 
-// The library user has
-// 1) either to specify the coordinate system
-// 2) or include <boost/geometry/geometries/adapted/c_array__at_.hpp> where @=cartesian,geographic,...
 
 } // namespace traits
 #endif // DOXYGEN_NO_TRAITS_SPECIALIZATIONS
@@ -100,4 +97,15 @@
 
 }} // namespace boost::geometry
 
+
+#define BOOST_GEOMETRY_REGISTER_C_ARRAY_CS(CoordinateSystem) \
+ namespace boost { namespace geometry { namespace traits { \
+ template <typename T, std::size_t N> \
+ struct coordinate_system<T[N]> \
+ { \
+ typedef CoordinateSystem type; \
+ }; \
+ }}}
+
+
 #endif // BOOST_GEOMETRY_GEOMETRIES_ADAPTED_C_ARRAY_HPP

Deleted: branches/release/boost/geometry/geometries/adapted/c_array_cartesian.hpp
==============================================================================
--- branches/release/boost/geometry/geometries/adapted/c_array_cartesian.hpp 2011-05-04 08:15:07 EDT (Wed, 04 May 2011)
+++ (empty file)
@@ -1,45 +0,0 @@
-// Boost.Geometry (aka GGL, Generic Geometry Library)
-
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// 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_GEOMETRIES_ADAPTED_C_ARRAY_CARTESIAN_HPP
-#define BOOST_GEOMETRY_GEOMETRIES_ADAPTED_C_ARRAY_CARTESIAN_HPP
-
-#ifdef BOOST_GEOMETRY_ADAPTED_C_ARRAY_COORDINATE_SYSTEM_DEFINED
-#error Include only one headerfile to register coordinate coordinate_system for adapted c array
-#endif
-
-#define BOOST_GEOMETRY_ADAPTED_C_ARRAY_COORDINATE_SYSTEM_DEFINED
-
-
-#include <boost/geometry/geometries/adapted/c_array.hpp>
-
-
-namespace boost { namespace geometry
-{
-
-
-#ifndef DOXYGEN_NO_TRAITS_SPECIALIZATIONS
-namespace traits
-{
- template <typename T, int N>
- struct coordinate_system<T[N]>
- { typedef cs::cartesian type; };
-
-}
-#endif
-
-
-}} // namespace boost::geometry
-
-
-#endif // BOOST_GEOMETRY_GEOMETRIES_ADAPTED_C_ARRAY_CARTESIAN_HPP

Deleted: branches/release/boost/geometry/geometries/adapted/c_array_geographic.hpp
==============================================================================
--- branches/release/boost/geometry/geometries/adapted/c_array_geographic.hpp 2011-05-04 08:15:07 EDT (Wed, 04 May 2011)
+++ (empty file)
@@ -1,43 +0,0 @@
-// Boost.Geometry (aka GGL, Generic Geometry Library)
-
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// 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_GEOMETRIES_ADAPTED_C_ARRAY_GEOGRAPHIC_HPP
-#define BOOST_GEOMETRY_GEOMETRIES_ADAPTED_C_ARRAY_GEOGRAPHIC_HPP
-
-#ifdef BOOST_GEOMETRY_ADAPTED_C_ARRAY_COORDINATE_SYSTEM_DEFINED
-#error Include only one headerfile to register coordinate coordinate_system for adapted c array
-#endif
-
-#define BOOST_GEOMETRY_ADAPTED_C_ARRAY_COORDINATE_SYSTEM_DEFINED
-
-#include <boost/geometry/geometries/adapted/c_array.hpp>
-
-namespace boost { namespace geometry
-{
-
-
-#ifndef DOXYGEN_NO_TRAITS_SPECIALIZATIONS
-namespace traits
-{
- template <typename T, int N>
- struct coordinate_system<T[N]>
- { typedef cs::geographic type; };
-
-}
-#endif
-
-
-}} // namespace boost::geometry
-
-
-#endif // BOOST_GEOMETRY_GEOMETRIES_ADAPTED_C_ARRAY_GEOGRAPHIC_HPP

Deleted: branches/release/boost/geometry/geometries/adapted/fusion.hpp
==============================================================================
--- branches/release/boost/geometry/geometries/adapted/fusion.hpp 2011-05-04 08:15:07 EDT (Wed, 04 May 2011)
+++ (empty file)
@@ -1,159 +0,0 @@
-// Boost.Geometry (aka GGL, Generic Geometry Library)
-
-// Copyright (c) 2011 Akira Takahashi
-// Copyright (c) 2011 Barend Gehrels, 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_GEOMETRIES_ADAPTED_FUSION_HPP
-#define BOOST_GEOMETRY_GEOMETRIES_ADAPTED_FUSION_HPP
-
-
-#include <cstddef>
-
-#include <boost/fusion/include/is_sequence.hpp>
-#include <boost/fusion/include/size.hpp>
-#include <boost/fusion/include/tag_of.hpp>
-#include <boost/fusion/include/front.hpp>
-#include <boost/fusion/include/at.hpp>
-#include <boost/utility/enable_if.hpp>
-
-#include <boost/fusion/mpl.hpp>
-#include <boost/mpl/front.hpp>
-#include <boost/mpl/count_if.hpp>
-#include <boost/mpl/pop_front.hpp>
-#include <boost/mpl/size.hpp>
-#include <boost/type_traits/is_same.hpp>
-#include <boost/type_traits/remove_reference.hpp>
-#include <boost/mpl/placeholders.hpp>
-#include <boost/mpl/and.hpp>
-#include <boost/mpl/front.hpp>
-
-#include <boost/geometry/core/access.hpp>
-#include <boost/geometry/core/coordinate_dimension.hpp>
-#include <boost/geometry/core/coordinate_system.hpp>
-#include <boost/geometry/core/coordinate_type.hpp>
-#include <boost/geometry/core/point_type.hpp>
-#include <boost/geometry/core/tags.hpp>
-
-
-namespace boost { namespace geometry
-{
-
-namespace fusion_adapt_detail
-{
-
-template <class Sequence>
-struct all_same :
- boost::mpl::bool_<
- boost::mpl::count_if<
- Sequence,
- boost::is_same<
- typename boost::mpl::front<Sequence>::type,
- boost::mpl::_
- >
- >::value == boost::mpl::size<Sequence>::value
- >
-{};
-
-template <class Sequence>
-struct is_coordinate_size : boost::mpl::bool_<
- boost::fusion::result_of::size<Sequence>::value == 2 ||
- boost::fusion::result_of::size<Sequence>::value == 3> {};
-
-template<typename Sequence>
-struct is_fusion_sequence
- : mpl::and_<boost::fusion::traits::is_sequence<Sequence>,
- fusion_adapt_detail::is_coordinate_size<Sequence>,
- fusion_adapt_detail::all_same<Sequence> >
-{};
-
-
-} // namespace fusion_adapt_detail
-
-
-#ifndef DOXYGEN_NO_TRAITS_SPECIALIZATIONS
-namespace traits
-{
-
-// Boost Fusion Sequence, 2D or 3D
-template <typename Sequence>
-struct coordinate_type
- <
- Sequence,
- typename boost::enable_if
- <
- fusion_adapt_detail::is_fusion_sequence<Sequence>
- >::type
- >
-{
- typedef typename boost::mpl::front<Sequence>::type type;
-};
-
-
-template <typename Sequence>
-struct dimension
- <
- Sequence,
- typename boost::enable_if
- <
- fusion_adapt_detail::is_fusion_sequence<Sequence>
- >::type
- > : boost::mpl::size<Sequence>
-{};
-
-
-template <typename Sequence, std::size_t Dimension>
-struct access
- <
- Sequence,
- Dimension,
- typename boost::enable_if
- <
- fusion_adapt_detail::is_fusion_sequence<Sequence>
- >::type
- >
-{
- typedef typename coordinate_type<Sequence>::type ctype;
-
- static inline ctype get(Sequence const& point)
- {
- return boost::fusion::at_c<Dimension>(point);
- }
-
- template <class CoordinateType>
- static inline void set(Sequence& point, CoordinateType const& value)
- {
- boost::fusion::at_c<Dimension>(point) = value;
- }
-};
-
-// The library user has
-// 1) either to specify the coordinate system using a traits class
-// 2) or include <boost/geometry/geometries/adapted/fusion__at_.hpp>
-// where @=cartesian,geographic,...
-
-template <typename Sequence>
-struct tag
- <
- Sequence,
- typename boost::enable_if
- <
- fusion_adapt_detail::is_fusion_sequence<Sequence>
- >::type
- >
-{
- typedef point_tag type;
-};
-
-} // namespace traits
-
-#endif // DOXYGEN_NO_TRAITS_SPECIALIZATIONS
-
-
-}} // namespace boost::geometry
-
-#endif // BOOST_GEOMETRY_GEOMETRIES_ADAPTED_FUSION_HPP
-

Deleted: branches/release/boost/geometry/geometries/adapted/fusion_cartesian.hpp
==============================================================================
--- branches/release/boost/geometry/geometries/adapted/fusion_cartesian.hpp 2011-05-04 08:15:07 EDT (Wed, 04 May 2011)
+++ (empty file)
@@ -1,44 +0,0 @@
-// Boost.Geometry (aka GGL, Generic Geometry Library)
-
-// Copyright (c) 2011 Akira Takahashi
-// Copyright (c) 2011 Barend Gehrels, 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_GEOMETRIES_ADAPTED_FUSION_CARTESIAN_HPP
-#define BOOST_GEOMETRY_GEOMETRIES_ADAPTED_FUSION_CARTESIAN_HPP
-
-#ifdef BOOST_GEOMETRY_ADAPTED_FUSION_COORDINATE_SYSTEM_DEFINED
-#error Include only one headerfile to register coordinate coordinate_system for adapted fusion
-#endif
-
-#define BOOST_GEOMETRY_ADAPTED_FUSION_COORDINATE_SYSTEM_DEFINED
-
-
-#include <boost/geometry/geometries/adapted/fusion.hpp>
-
-
-namespace boost { namespace geometry
-{
-
-
-#ifndef DOXYGEN_NO_TRAITS_SPECIALIZATIONS
-namespace traits
-{
- template <typename Sequence>
- struct coordinate_system<
- Sequence,
- typename boost::enable_if<
- fusion_adapt_detail::is_fusion_sequence<Sequence> >::type>
- { typedef cs::cartesian type; };
-
-} // namespace traits
-#endif
-
-
-}} // namespace boost::geometry
-
-
-#endif // BOOST_GEOMETRY_GEOMETRIES_ADAPTED_FUSION_CARTESIAN_HPP

Deleted: branches/release/boost/geometry/geometries/adapted/fusion_geographic.hpp
==============================================================================
--- branches/release/boost/geometry/geometries/adapted/fusion_geographic.hpp 2011-05-04 08:15:07 EDT (Wed, 04 May 2011)
+++ (empty file)
@@ -1,44 +0,0 @@
-// Boost.Geometry (aka GGL, Generic Geometry Library)
-
-// Copyright (c) 2011 Akira Takahashi
-// Copyright (c) 2011 Barend Gehrels, 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_GEOMETRIES_ADAPTED_FUSION_GEOGRAPHIC_HPP
-#define BOOST_GEOMETRY_GEOMETRIES_ADAPTED_FUSION_GEOGRAPHIC_HPP
-
-#ifdef BOOST_GEOMETRY_ADAPTED_FUSION_COORDINATE_SYSTEM_DEFINED
-#error Include only one headerfile to register coordinate coordinate_system for adapted fusion
-#endif
-
-#define BOOST_GEOMETRY_ADAPTED_FUSION_COORDINATE_SYSTEM_DEFINED
-
-
-#include <boost/geometry/geometries/adapted/fusion.hpp>
-
-
-namespace boost { namespace geometry
-{
-
-
-#ifndef DOXYGEN_NO_TRAITS_SPECIALIZATIONS
-namespace traits
-{
- template <typename Sequence>
- struct coordinate_system<
- Sequence,
- typename boost::enable_if<
- fusion_adapt_detail::is_fusion_sequence<Sequence> >::type>
- { typedef cs::geographic<degree> type; };
-
-} // namespace traits
-#endif
-
-
-}} // namespace boost::geometry
-
-
-#endif // BOOST_GEOMETRY_GEOMETRIES_ADAPTED_FUSION_GEOGRAPHIC_HPP

Deleted: branches/release/boost/geometry/geometries/adapted/tuple.hpp
==============================================================================
--- branches/release/boost/geometry/geometries/adapted/tuple.hpp 2011-05-04 08:15:07 EDT (Wed, 04 May 2011)
+++ (empty file)
@@ -1,136 +0,0 @@
-// Boost.Geometry (aka GGL, Generic Geometry Library)
-
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-// Copyright (c) 2008-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// 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_GEOMETRIES_ADAPTED_TUPLE_HPP
-#define BOOST_GEOMETRY_GEOMETRIES_ADAPTED_TUPLE_HPP
-
-
-#include <cstddef>
-
-#include <boost/tuple/tuple.hpp>
-
-#include <boost/geometry/core/coordinate_dimension.hpp>
-#include <boost/geometry/core/coordinate_type.hpp>
-#include <boost/geometry/core/point_type.hpp>
-#include <boost/geometry/core/tags.hpp>
-
-namespace boost { namespace geometry
-{
-
-
-#ifndef DOXYGEN_NO_TRAITS_SPECIALIZATIONS
-namespace traits
-{
-
-// boost::tuple, 2D
-template <typename CoordinateType>
-struct coordinate_type<boost::tuple<CoordinateType, CoordinateType> >
-{
- typedef CoordinateType type;
-};
-
-
-template <typename CoordinateType>
-struct dimension<boost::tuple<CoordinateType, CoordinateType> >
- : boost::mpl::int_<2>
-{};
-
-
-template <typename CoordinateType, std::size_t Dimension>
-struct access
- <
- boost::tuple<CoordinateType, CoordinateType>,
- Dimension
- >
-{
- static inline CoordinateType get(
- boost::tuple<CoordinateType, CoordinateType> const& point)
- {
- return point.template get<Dimension>();
- }
-
- static inline void set(boost::tuple<CoordinateType, CoordinateType>& point,
- CoordinateType const& value)
- {
- point.template get<Dimension>() = value;
- }
-};
-
-
-template <typename CoordinateType>
-struct tag<boost::tuple<CoordinateType, CoordinateType> >
-{
- typedef point_tag type;
-};
-
-
-// boost::tuple, 3D
-template <typename CoordinateType>
-struct coordinate_type
- <
- boost::tuple<CoordinateType, CoordinateType, CoordinateType>
- >
-{
- typedef CoordinateType type;
-};
-
-template <typename CoordinateType>
-struct dimension<boost::tuple<CoordinateType, CoordinateType, CoordinateType> >
- : boost::mpl::int_<3>
-{};
-
-
-template <typename CoordinateType, std::size_t Dimension>
-struct access
- <
- boost::tuple<CoordinateType, CoordinateType, CoordinateType>,
- Dimension
- >
-{
- static inline CoordinateType get(
- boost::tuple
- <
- CoordinateType, CoordinateType, CoordinateType
- > const& point)
- {
- return point.template get<Dimension>();
- }
-
- static inline void set(
- boost::tuple<CoordinateType, CoordinateType, CoordinateType>& point,
- CoordinateType const& value)
- {
- point.template get<Dimension>() = value;
- }
-};
-
-
-template <typename CoordinateType>
-struct tag<boost::tuple<CoordinateType, CoordinateType, CoordinateType> >
-{
- typedef point_tag type;
-};
-
-// The library user has
-// 1) either to specify the coordinate system using a traits class
-// 2) or include <boost/geometry/geometries/adapted/tuple__at_.hpp>
-// where @=cartesian,geographic,...
-
-} // namespace traits
-#endif // DOXYGEN_NO_TRAITS_SPECIALIZATIONS
-
-
-}} // namespace boost::geometry
-
-#endif // BOOST_GEOMETRY_GEOMETRIES_ADAPTED_TUPLE_HPP
-

Deleted: branches/release/boost/geometry/geometries/adapted/tuple_cartesian.hpp
==============================================================================
--- branches/release/boost/geometry/geometries/adapted/tuple_cartesian.hpp 2011-05-04 08:15:07 EDT (Wed, 04 May 2011)
+++ (empty file)
@@ -1,49 +0,0 @@
-// Boost.Geometry (aka GGL, Generic Geometry Library)
-
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-// Copyright (c) 2008-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// 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_GEOMETRIES_ADAPTED_TUPLE_CARTESIAN_HPP
-#define BOOST_GEOMETRY_GEOMETRIES_ADAPTED_TUPLE_CARTESIAN_HPP
-
-#ifdef BOOST_GEOMETRY_ADAPTED_TUPLE_COORDINATE_SYSTEM_DEFINED
-#error Include only one headerfile to register coordinate coordinate_system for adapted tuple
-#endif
-
-#define BOOST_GEOMETRY_ADAPTED_TUPLE_COORDINATE_SYSTEM_DEFINED
-
-
-#include <boost/geometry/geometries/adapted/tuple.hpp>
-
-
-namespace boost { namespace geometry
-{
-
-
-#ifndef DOXYGEN_NO_TRAITS_SPECIALIZATIONS
-namespace traits
-{
- template <typename T>
- struct coordinate_system<boost::tuple<T, T> >
- { typedef cs::cartesian type; };
-
- template <typename T>
- struct coordinate_system<boost::tuple<T, T, T> >
- { typedef cs::cartesian type; };
-
-}
-#endif
-
-
-}} // namespace boost::geometry
-
-
-#endif // BOOST_GEOMETRY_GEOMETRIES_ADAPTED_TUPLE_CARTESIAN_HPP

Deleted: branches/release/boost/geometry/geometries/adapted/tuple_geographic.hpp
==============================================================================
--- branches/release/boost/geometry/geometries/adapted/tuple_geographic.hpp 2011-05-04 08:15:07 EDT (Wed, 04 May 2011)
+++ (empty file)
@@ -1,49 +0,0 @@
-// Boost.Geometry (aka GGL, Generic Geometry Library)
-
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-// Copyright (c) 2008-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// 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_GEOMETRIES_ADAPTED_TUPLE_GEOGRAPHIC_HPP
-#define BOOST_GEOMETRY_GEOMETRIES_ADAPTED_TUPLE_GEOGRAPHIC_HPP
-
-#ifdef BOOST_GEOMETRY_ADAPTED_TUPLE_COORDINATE_SYSTEM_DEFINED
-#error Include only one headerfile to register coordinate coordinate_system for adapted tuple
-#endif
-
-#define BOOST_GEOMETRY_ADAPTED_TUPLE_COORDINATE_SYSTEM_DEFINED
-
-
-#include <boost/geometry/geometries/adapted/tuple.hpp>
-
-
-namespace boost { namespace geometry
-{
-
-
-#ifndef DOXYGEN_NO_TRAITS_SPECIALIZATIONS
-namespace traits
-{
- template <typename T>
- struct coordinate_system<boost::tuple<T, T> >
- { typedef cs::geographic<degree> type; };
-
- template <typename T>
- struct coordinate_system<boost::tuple<T, T, T> >
- { typedef cs::geographic<degree> type; };
-
-}
-#endif
-
-
-}} // namespace boost::geometry
-
-
-#endif // BOOST_GEOMETRY_GEOMETRIES_ADAPTED_TUPLE_GEOGRAPHIC_HPP

Modified: branches/release/boost/geometry/geometries/geometries.hpp
==============================================================================
--- branches/release/boost/geometry/geometries/geometries.hpp (original)
+++ branches/release/boost/geometry/geometries/geometries.hpp 2011-05-04 08:15:07 EDT (Wed, 04 May 2011)
@@ -15,7 +15,7 @@
 #define BOOST_GEOMETRY_GEOMETRIES_HPP
 
 #include <boost/geometry/geometries/adapted/c_array.hpp>
-#include <boost/geometry/geometries/adapted/tuple.hpp>
+#include <boost/geometry/geometries/adapted/boost_tuple.hpp>
 
 #include <boost/geometry/geometries/point.hpp>
 #include <boost/geometry/geometries/point_xy.hpp>

Modified: branches/release/boost/geometry/geometries/register/box.hpp
==============================================================================
--- branches/release/boost/geometry/geometries/register/box.hpp (original)
+++ branches/release/boost/geometry/geometries/register/box.hpp 2011-05-04 08:15:07 EDT (Wed, 04 May 2011)
@@ -40,7 +40,7 @@
 };
 
 
-#define BOOST_GEOMETRY_DETAIL_SPECIALIZE_BOX_ACCESS_TEMPLATIZED(Box, MinCorner, MaxCorner) \
+#define BOOST_GEOMETRY_DETAIL_SPECIALIZE_BOX_ACCESS_TEMPLATED(Box, MinCorner, MaxCorner) \
 template <typename P, size_t D> \
 struct indexed_access<Box<P>, min_corner, D> \
 { \
@@ -94,7 +94,7 @@
     template<> struct tag<Box > { typedef box_tag type; }; \
     template<> struct point_type<Box > { typedef PointType type; };
 
-#define BOOST_GEOMETRY_DETAIL_SPECIALIZE_BOX_TRAITS_TEMPLATIZED(Box) \
+#define BOOST_GEOMETRY_DETAIL_SPECIALIZE_BOX_TRAITS_TEMPLATED(Box) \
     template<typename P> struct tag<Box<P> > { typedef box_tag type; }; \
     template<typename P> struct point_type<Box<P> > { typedef P type; };
 
@@ -102,23 +102,73 @@
 
 
 
-#define BOOST_GEOMETRY_REGISTER_BOX(Box, PointType, MinCorner, MaxCorner) \
+/*!
+\brief \brief_macro{box}
+\ingroup register
+\details \details_macro{BOOST_GEOMETRY_REGISTER_BOX, box} The
+ box may contain template parameters, which must be specified then.
+\param Box \param_macro_type{Box}
+\param Point Point type on which box is based. Might be two or three-dimensional
+\param MinCorner minimum corner (should be public member or method)
+\param MaxCorner maximum corner (should be public member or method)
+
+\qbk{
+[heading Example]
+[register_box]
+[register_box_output]
+}
+*/
+#define BOOST_GEOMETRY_REGISTER_BOX(Box, Point, MinCorner, MaxCorner) \
 namespace boost { namespace geometry { namespace traits { \
- BOOST_GEOMETRY_DETAIL_SPECIALIZE_BOX_TRAITS(Box, PointType) \
- BOOST_GEOMETRY_DETAIL_SPECIALIZE_BOX_ACCESS(Box, PointType, MinCorner, MaxCorner) \
+ BOOST_GEOMETRY_DETAIL_SPECIALIZE_BOX_TRAITS(Box, Point) \
+ BOOST_GEOMETRY_DETAIL_SPECIALIZE_BOX_ACCESS(Box, Point, MinCorner, MaxCorner) \
 }}}
 
 
-#define BOOST_GEOMETRY_REGISTER_BOX_TEMPLATIZED(Box, MinCorner, MaxCorner) \
+/*!
+\brief \brief_macro{box}
+\ingroup register
+\details \details_macro{BOOST_GEOMETRY_REGISTER_BOX_TEMPLATED, box}
+ \details_macro_templated{box}
+\param Box \param_macro_type{Box}
+\param MinCorner minimum corner (should be public member or method)
+\param MaxCorner maximum corner (should be public member or method)
+
+\qbk{
+[heading Example]
+[register_box_templated]
+[register_box_templated_output]
+}
+*/
+#define BOOST_GEOMETRY_REGISTER_BOX_TEMPLATED(Box, MinCorner, MaxCorner) \
 namespace boost { namespace geometry { namespace traits { \
- BOOST_GEOMETRY_DETAIL_SPECIALIZE_BOX_TRAITS_TEMPLATIZED(Box) \
- BOOST_GEOMETRY_DETAIL_SPECIALIZE_BOX_ACCESS_TEMPLATIZED(Box, MinCorner, MaxCorner) \
+ BOOST_GEOMETRY_DETAIL_SPECIALIZE_BOX_TRAITS_TEMPLATED(Box) \
+ BOOST_GEOMETRY_DETAIL_SPECIALIZE_BOX_ACCESS_TEMPLATED(Box, MinCorner, MaxCorner) \
 }}}
 
-#define BOOST_GEOMETRY_REGISTER_BOX_2D_4VALUES(Box, PointType, Left, Bottom, Right, Top) \
+/*!
+\brief \brief_macro{box}
+\ingroup register
+\details \details_macro{BOOST_GEOMETRY_REGISTER_BOX_2D_4VALUES, box}
+\param Box \param_macro_type{Box}
+\param Point Point type reported as point_type by box. Must be two dimensional.
+ Note that these box tyeps do not contain points, but they must have a
+ related point_type
+\param Left Left side (must be public member or method)
+\param Bottom Bottom side (must be public member or method)
+\param Right Right side (must be public member or method)
+\param Top Top side (must be public member or method)
+
+\qbk{
+[heading Example]
+[register_box_2d_4values]
+[register_box_2d_4values_output]
+}
+*/
+#define BOOST_GEOMETRY_REGISTER_BOX_2D_4VALUES(Box, Point, Left, Bottom, Right, Top) \
 namespace boost { namespace geometry { namespace traits { \
- BOOST_GEOMETRY_DETAIL_SPECIALIZE_BOX_TRAITS(Box, PointType) \
- BOOST_GEOMETRY_DETAIL_SPECIALIZE_BOX_ACCESS_4VALUES(Box, PointType, Left, Bottom, Right, Top) \
+ BOOST_GEOMETRY_DETAIL_SPECIALIZE_BOX_TRAITS(Box, Point) \
+ BOOST_GEOMETRY_DETAIL_SPECIALIZE_BOX_ACCESS_4VALUES(Box, Point, Left, Bottom, Right, Top) \
 }}}
 
 

Modified: branches/release/boost/geometry/iterators/box_iterator.hpp
==============================================================================
--- branches/release/boost/geometry/iterators/box_iterator.hpp (original)
+++ branches/release/boost/geometry/iterators/box_iterator.hpp 2011-05-04 08:15:07 EDT (Wed, 04 May 2011)
@@ -41,6 +41,13 @@
         boost::random_access_traversal_tag
>
 {
+ // Default constructor is required to check concept of Range
+ inline box_iterator()
+ : m_index(-1)
+ , m_box_address(NULL)
+ {
+ }
+
     explicit inline box_iterator(Box const& box)
         : m_index(0)
         , m_box_address(&box)
@@ -56,6 +63,14 @@
         init(box);
     }
 
+ // Operator= is required to check concept of Range
+ inline box_iterator<Box>& operator=(box_iterator<Box> const& source)
+ {
+ m_index = source.m_index;
+ m_box_address = source.m_box_address;
+ return *this;
+ }
+
     typedef std::ptrdiff_t difference_type;
 
 private:
@@ -101,7 +116,7 @@
     // Copy points here - box might define them otherwise
     point_type m_points[4];
     int m_index;
- Box const* const m_box_address;
+ Box const* m_box_address;
 };
 
 

Modified: branches/release/boost/geometry/iterators/segment_range_iterator.hpp
==============================================================================
--- branches/release/boost/geometry/iterators/segment_range_iterator.hpp (original)
+++ branches/release/boost/geometry/iterators/segment_range_iterator.hpp 2011-05-04 08:15:07 EDT (Wed, 04 May 2011)
@@ -51,15 +51,6 @@
     {
     }
 
- // Operator= is required to check concept of Range
- inline segment_range_iterator<Segment>& operator=(segment_range_iterator<Segment> const& source)
- {
- m_index = source.m_index;
- m_segment_address = source.m_segment_address;
- return *this;
- }
-
-
     explicit inline segment_range_iterator(Segment const& segment)
         : m_index(0)
         , m_segment_address(&segment)
@@ -74,7 +65,15 @@
     {
         init(segment);
     }
-
+
+ // Operator= is required to check concept of Range
+ inline segment_range_iterator<Segment>& operator=(segment_range_iterator<Segment> const& source)
+ {
+ m_index = source.m_index;
+ m_segment_address = source.m_segment_address;
+ return *this;
+ }
+
     typedef std::ptrdiff_t difference_type;
 
 private:

Modified: branches/release/libs/geometry/doc/concept/linestring.qbk
==============================================================================
--- branches/release/libs/geometry/doc/concept/linestring.qbk (original)
+++ branches/release/libs/geometry/doc/concept/linestring.qbk 2011-05-04 08:15:07 EDT (Wed, 04 May 2011)
@@ -23,7 +23,7 @@
 The Linestring Concept is defined as following:
 
 * there must be a specialization of `traits::tag` defining `linestring_tag` as type
-* it must behave like a Boost.Range
+* it must behave like a Boost.Range Random Access Range
 * The type defined by the metafunction `range_value<...>::type` must fulfill
         the [link geometry.reference.concepts.concept_point Point Concept]
 

Modified: branches/release/libs/geometry/doc/concept/multi_linestring.qbk
==============================================================================
--- branches/release/libs/geometry/doc/concept/multi_linestring.qbk (original)
+++ branches/release/libs/geometry/doc/concept/multi_linestring.qbk 2011-05-04 08:15:07 EDT (Wed, 04 May 2011)
@@ -20,7 +20,7 @@
 The MultiLinestring Concept is defined as following:
 
 * There must be a specialization of the metafunction `traits::tag`, defining `multi_linestring_tag` as type
-* It must behave like a Boost.Range
+* It must behave like a Boost.Range Random Access Range
 * The type defined by the metafunction `range_value<...>::type` must fulfill
         the [link geometry.reference.concepts.concept_linestring Linestring Concept]
 

Modified: branches/release/libs/geometry/doc/concept/multi_point.qbk
==============================================================================
--- branches/release/libs/geometry/doc/concept/multi_point.qbk (original)
+++ branches/release/libs/geometry/doc/concept/multi_point.qbk 2011-05-04 08:15:07 EDT (Wed, 04 May 2011)
@@ -21,7 +21,7 @@
 The MultiPoint Concept is defined as following:
 
 * There must be a specialization of the metafunction `traits::tag`, defining `multi_point_tag` as type
-* It must behave like a Boost.Range
+* It must behave like a Boost.Range Random Access Range
 * The type defined by the metafunction `range_value<...>::type` must fulfill the [link geometry.reference.concepts.concept_point Point Concept]
 
 [heading Available Models]

Modified: branches/release/libs/geometry/doc/concept/multi_polygon.qbk
==============================================================================
--- branches/release/libs/geometry/doc/concept/multi_polygon.qbk (original)
+++ branches/release/libs/geometry/doc/concept/multi_polygon.qbk 2011-05-04 08:15:07 EDT (Wed, 04 May 2011)
@@ -20,7 +20,7 @@
 The MultiPolygon Concept is defined as following:
 
 * There must be a specialization of the metafunction `traits::tag`, defining `multi_polygon_tag` as type
-* It must behave like a Boost.Range
+* It must behave like a Boost.Range Random Access Range
 * The type defined by the metafunction `range_value<...>::type` must fulfill
         the [link geometry.reference.concepts.concept_polygon Polygon Concept]
 

Modified: branches/release/libs/geometry/doc/concept/point.qbk
==============================================================================
--- branches/release/libs/geometry/doc/concept/point.qbk (original)
+++ branches/release/libs/geometry/doc/concept/point.qbk 2011-05-04 08:15:07 EDT (Wed, 04 May 2011)
@@ -37,12 +37,12 @@
 * [link geometry.reference.models.model_point model::point]
 * [link geometry.reference.models.model_d2_point_xy model::d2::point_xy]
 * a lat long point (currently in an extension)
-* a C array (requires `#include boost/geometry/geometries/adapted/c_array.hpp>`)
-* a Boost.Array (requires `#include <boost/geometry/geometries/adapted/boost_array.hpp>`)
-* a Boost.Polygon point (requires `#include boost/geometry/geometries/adapted/boost_polygon/point.hpp>`)
-* a Boost.Fusion adapted structure (requires `#include boost/geometry/geometries/adapted/fusion.hpp>`)
-* a Boost.Tuple (requires `#include boost/geometry/geometries/adapted/tuple.hpp>`)
-* an adapted point using one of the [link geometry.reference.register registration macro's]
+* [link geometry.reference.adapted.c_array C array]
+* [link geometry.reference.adapted.boost_array Boost.Array]
+* [link geometry.reference.adapted.boost_fusion Boost.Fusion]
+* [link geometry.reference.adapted.boost_polygon Boost.Polygon]
+* [link geometry.reference.adapted.boost_tuple Boost.Tuple]
+* other point types, adapted e.g. using one of the [link geometry.reference.adapted registration macro's]
 
 [endsect]
 

Modified: branches/release/libs/geometry/doc/concept/polygon.qbk
==============================================================================
--- branches/release/libs/geometry/doc/concept/polygon.qbk (original)
+++ branches/release/libs/geometry/doc/concept/polygon.qbk 2011-05-04 08:15:07 EDT (Wed, 04 May 2011)
@@ -29,7 +29,8 @@
 * there must be a specialization of `traits::tag` defining `polygon_tag` as type
 * there must be a specialization of `traits::ring_type` defining the type of its exterior ring and interior rings as type
 * this type defined by `ring_type` must fulfill the [link geometry.reference.concepts.concept_ring Ring Concept]
-* there must be a specialization of `traits::interior_type` defining the type of the collection of its interior rings as type
+* there must be a specialization of `traits::interior_type` defining the type of the collection of its interior rings as type;
+ this collection itself must fulfill a Boost.Range Random Access Range Concept
 * there must be a specialization of `traits::exterior_ring` with two functions named `get`, returning the exterior ring, one being const, the other being non const
 * there must be a specialization of `traits::interior_rings` with two functions named `get`, returning the interior rings, one being const, the other being non const
 

Modified: branches/release/libs/geometry/doc/concept/ring.qbk
==============================================================================
--- branches/release/libs/geometry/doc/concept/ring.qbk (original)
+++ branches/release/libs/geometry/doc/concept/ring.qbk 2011-05-04 08:15:07 EDT (Wed, 04 May 2011)
@@ -22,7 +22,7 @@
 The Ring Concept is defined as following:
 
 * there must be a specialization of `traits::tag` defining `ring_tag` as type
-* it must behave like a Boost.Range
+* it must behave like a Boost.Range Random Access Range
 * The type defined by the metafunction `range_value<...>::type` must fulfill
         the [link geometry.reference.concepts.concept_point Point Concept]
 * there might be a specialization of `traits::point_order` defining the order or orientation of its points, `clockwise` or `counterclockwise`

Modified: branches/release/libs/geometry/doc/doxy/Doxyfile
==============================================================================
--- branches/release/libs/geometry/doc/doxy/Doxyfile (original)
+++ branches/release/libs/geometry/doc/doxy/Doxyfile 2011-05-04 08:15:07 EDT (Wed, 04 May 2011)
@@ -50,7 +50,7 @@
                         brief_macro{1}="Macro to register a \1" \
                         brief_macro_const=" (const version)" \
                         brief_macro_getset=" (having separate get/set methods)" \
- brief_meta{3}="Metafunction defining [*\1] as the specified \2 of the \3" \
+ brief_meta{3}="Metafunction defining [*\1] as the \2 of the \3" \
                         tparam_allocator="container-allocator-type" \
                         tparam_box="Any type fulfilling a Box Concept" \
                         tparam_box_or_segment="Any type fulfilling a Box Concept or a Segment Concept" \
@@ -95,9 +95,10 @@
                         details_calc2{2}="The free function \1 calculates the \2 of two geometries" \
                         details_calc2{1}="The free function \1 calculates the \1 of two geometries" \
                         details_check12{2}="The free function \1 checks if the first geometry \2 the second geometry" \
- details_macro{2}="The macro \1 registers a \2 such that it is recognized by Boost.Geometry and that Boost.Geometry functionality can used with the specified point type" \
+ details_macro{2}="The macro \1 registers a \2 such that it is recognized by Boost.Geometry and that Boost.Geometry functionality can used with the specified type." \
                         details_macro_const="The const version registers only read access to the fields, the point type is therefore read-only" \
                         details_macro_getset="The get/set version registers get and set methods separately and can be used for classes with protected member variables and get/set methods to change coordinates" \
+ details_macro_templated{1}="The type must have one template parameter, which should be a point type, and should not be specified. Boost.Geometry takes care of inserting the template parameter. Hence all types of this templated \1 are registered, regardless of their point type." \
                         details_default_strategy="It uses the default strategy, based on the coordinate system of the geometry." \
                         details_strategy_reasons="Reasons to specify a strategy include: use another coordinate system for calculations; construct the strategy beforehand (e.g. with the radius of the Earth); select a strategy when there are more than one available for a calculation." \
                         details_return{1}="This version with the return_ prefix returns the \1, and a template parameter must therefore be specified in the call." \

Modified: branches/release/libs/geometry/doc/doxy/doxygen_input/pages/doxygen_examples.hpp
==============================================================================
--- branches/release/libs/geometry/doc/doxy/doxygen_input/pages/doxygen_examples.hpp (original)
+++ branches/release/libs/geometry/doc/doxy/doxygen_input/pages/doxygen_examples.hpp 2011-05-04 08:15:07 EDT (Wed, 04 May 2011)
@@ -157,7 +157,7 @@
 */
 
 //---------------------------------------------------------------------------------------------------
-/*!
+/*
 \example c03_custom_linestring_example.cpp
 GPS tracks are shown in this example: a custom linestring with GPS points
 */
@@ -219,14 +219,14 @@
 
 
 //---------------------------------------------------------------------------------------------------
- /*!
+ /*
 \example x03_c_soci_example.cpp
 Example showing how to get polygons from PostGIS using SOCI and use them in GGL through WKB
 */
 
 
 //---------------------------------------------------------------------------------------------------
- /*!
+ /*
 \example x03_d_soci_example.cpp
 Example showing how to get polygons from PostGIS using SOCI and use them in GGL through WKB
 

Modified: branches/release/libs/geometry/doc/geometry.qbk
==============================================================================
--- branches/release/libs/geometry/doc/geometry.qbk (original)
+++ branches/release/libs/geometry/doc/geometry.qbk 2011-05-04 08:15:07 EDT (Wed, 04 May 2011)
@@ -49,6 +49,9 @@
 [def __other__ Other geometries]
 [def __nyiversion__ Not yet supported in this version]
 
+[def __not_in_boost_geometry_hpp__ The standard header `boost/geometry.hpp` does not include this header.]
+
+
 [/Parts]
 [def __ret_zero__ Returns zero]
 [def __ret_one__ Returns 1]
@@ -62,8 +65,8 @@
 All algorithms in Boost.Geometry will check any geometry arguments against the concept requirements.]
 
 
-[def __boost_geometry__ Boost.Geometry]
-[def __boost_gil__ [@http://www.boost.org/libs/gil/ Boost.GIL]]
+[def __boost_geometry__ Boost.Geometry]
+[def __boost_gil__ [@http://www.boost.org/libs/gil/ Boost.GIL]]
 
 [heading Contributions]
 

Modified: branches/release/libs/geometry/doc/imports.qbk
==============================================================================
--- branches/release/libs/geometry/doc/imports.qbk (original)
+++ branches/release/libs/geometry/doc/imports.qbk 2011-05-04 08:15:07 EDT (Wed, 04 May 2011)
@@ -69,9 +69,29 @@
 [import src/examples/core/set_box.cpp]
 [import src/examples/core/degree_radian.cpp]
 
+[import src/examples/core/interior_type.cpp]
 [import src/examples/core/point_type.cpp]
+[import src/examples/core/ring_type.cpp]
+[import src/examples/core/rings.cpp]
 [import src/examples/core/tag.cpp]
 [import src/examples/core/tag_cast.cpp]
 
 [import src/examples/geometries/point.cpp]
+[import src/examples/geometries/adapted/c_array.cpp]
+[import src/examples/geometries/adapted/boost_array.cpp]
+[import src/examples/geometries/adapted/boost_fusion.cpp]
+[import src/examples/geometries/adapted/boost_polygon.cpp]
+[import src/examples/geometries/adapted/boost_tuple.cpp]
+
+[import src/examples/geometries/adapted/boost_range/filtered.cpp]
+[import src/examples/geometries/adapted/boost_range/reversed.cpp]
+[import src/examples/geometries/adapted/boost_range/sliced.cpp]
+[import src/examples/geometries/adapted/boost_range/strided.cpp]
+[import src/examples/geometries/adapted/boost_range/uniqued.cpp]
+
+[import src/examples/geometries/register/box.cpp]
+[import src/examples/geometries/register/box_templated.cpp]
+[import src/examples/geometries/register/box_2d_4values.cpp]
 [import src/examples/geometries/register/point.cpp]
+
+

Modified: branches/release/libs/geometry/doc/quickref.xml
==============================================================================
--- branches/release/libs/geometry/doc/quickref.xml (original)
+++ branches/release/libs/geometry/doc/quickref.xml 2011-05-04 08:15:07 EDT (Wed, 04 May 2011)
@@ -100,16 +100,53 @@
    </entry>
   </row>
   <row>
- <entry valign="top" namest="a" nameend="c">
- <bridgehead renderas="sect3">Macros</bridgehead>
+ <entry valign="top">
+ <bridgehead renderas="sect3">0-dimensional (adapted)</bridgehead>
     <simplelist type="vert" columns="1">
- <member><link linkend="geometry.reference.register.boost_geometry_register_point_2d">BOOST_GEOMETRY_REGISTER_POINT_2D</link></member>
- <member><link linkend="geometry.reference.register.boost_geometry_register_point_2d_const">BOOST_GEOMETRY_REGISTER_POINT_2D_CONST</link></member>
- <member><link linkend="geometry.reference.register.boost_geometry_register_point_2d_get_set">BOOST_GEOMETRY_REGISTER_POINT_2D_GET_SET</link></member>
- <member><link linkend="geometry.reference.register.boost_geometry_register_point_3d">BOOST_GEOMETRY_REGISTER_POINT_3D</link></member>
- <member><link linkend="geometry.reference.register.boost_geometry_register_point_3d_const">BOOST_GEOMETRY_REGISTER_POINT_3D_CONST</link></member>
- <member><link linkend="geometry.reference.register.boost_geometry_register_point_3d_get_set">BOOST_GEOMETRY_REGISTER_POINT_3D_GET_SET</link></member>
-
+ <member><link linkend="geometry.reference.adapted.boost_array">Boost.Array</link></member>
+ <member><link linkend="geometry.reference.adapted.boost_fusion">Boost.Fusion</link></member>
+ <member><link linkend="geometry.reference.adapted.boost_polygon.point_data">Boost.Polygon's point_data</link></member>
+ <member><link linkend="geometry.reference.adapted.boost_tuple">Boost.Tuple</link></member>
+ <member><link linkend="geometry.reference.adapted.c_array">C arrays</link></member>
+ </simplelist>
+ </entry>
+ <entry valign="top">
+ <bridgehead renderas="sect3">1-dimensional (adapted)</bridgehead>
+ <simplelist type="vert" columns="1">
+ </simplelist>
+ </entry>
+ <entry valign="top">
+ <bridgehead renderas="sect3">2-dimensional (adapted)</bridgehead>
+ <simplelist type="vert" columns="1">
+ <member><link linkend="geometry.reference.adapted.boost_polygon.rectangle_data">Boost.Polygon's rectangle_data</link></member>
+ <member><link linkend="geometry.reference.adapted.boost_polygon.polygon_data">Boost.Polygon's polygon_data</link></member>
+ <member><link linkend="geometry.reference.adapted.boost_polygon.polygon_with_holes_data">Boost.Polygon's polygon_with_holes_data</link></member>
+ </simplelist>
+ </entry>
+ </row>
+ <row>
+ <entry valign="top">
+ <bridgehead renderas="sect3">0-dimensional (macro's for adaption)</bridgehead>
+ <simplelist type="vert" columns="1">
+ <member><link linkend="geometry.reference.adapted.register.boost_geometry_register_point_2d">BOOST_GEOMETRY_REGISTER_POINT_2D</link></member>
+ <member><link linkend="geometry.reference.adapted.register.boost_geometry_register_point_2d_const">BOOST_GEOMETRY_REGISTER_POINT_2D_CONST</link></member>
+ <member><link linkend="geometry.reference.adapted.register.boost_geometry_register_point_2d_get_set">BOOST_GEOMETRY_REGISTER_POINT_2D_GET_SET</link></member>
+ <member><link linkend="geometry.reference.adapted.register.boost_geometry_register_point_3d">BOOST_GEOMETRY_REGISTER_POINT_3D</link></member>
+ <member><link linkend="geometry.reference.adapted.register.boost_geometry_register_point_3d_const">BOOST_GEOMETRY_REGISTER_POINT_3D_CONST</link></member>
+ <member><link linkend="geometry.reference.adapted.register.boost_geometry_register_point_3d_get_set">BOOST_GEOMETRY_REGISTER_POINT_3D_GET_SET</link></member>
+ </simplelist>
+ </entry>
+ <entry valign="top">
+ <bridgehead renderas="sect3">1-dimensionial (macro's for adaption)</bridgehead>
+ <simplelist type="vert" columns="1">
+ </simplelist>
+ </entry>
+ <entry valign="top">
+ <bridgehead renderas="sect3">2-dimensional (macro's for adaption)</bridgehead>
+ <simplelist type="vert" columns="1">
+ <member><link linkend="geometry.reference.adapted.register.boost_geometry_register_box">BOOST_GEOMETRY_REGISTER_BOX</link></member>
+ <member><link linkend="geometry.reference.adapted.register.boost_geometry_register_box_2d_4values">BOOST_GEOMETRY_REGISTER_BOX_2D_4VALUES</link></member>
+ <member><link linkend="geometry.reference.adapted.register.boost_geometry_register_box_templated">BOOST_GEOMETRY_REGISTER_BOX_TEMPLATED</link></member>
     </simplelist>
    </entry>
   </row>

Modified: branches/release/libs/geometry/doc/reference.qbk
==============================================================================
--- branches/release/libs/geometry/doc/reference.qbk (original)
+++ branches/release/libs/geometry/doc/reference.qbk 2011-05-04 08:15:07 EDT (Wed, 04 May 2011)
@@ -34,14 +34,30 @@
 [include generated/interior_rings.qbk]
 [endsect]
 
-
 [endsect] [/access functions]
 
-
-
-[section:register Adaption and adapted models]
+[section:adapted Adapted models]
+[include reference/geometries/adapted/c_array.qbk]
+[include reference/geometries/adapted/boost_array.qbk]
+[include reference/geometries/adapted/boost_fusion.qbk]
+[include reference/geometries/adapted/boost_tuple.qbk]
+[section:boost_polygon Boost.Polygon]
+[include reference/geometries/adapted/boost_polygon/point_data.qbk]
+[include reference/geometries/adapted/boost_polygon/rectangle_data.qbk]
+[include reference/geometries/adapted/boost_polygon/polygon_data.qbk]
+[include reference/geometries/adapted/boost_polygon/polygon_with_holes_data.qbk]
+[endsect]
+[section:boost_range Boost.Range]
+[include reference/geometries/adapted/boost_range/filtered.qbk]
+[include reference/geometries/adapted/boost_range/reversed.qbk]
+[include reference/geometries/adapted/boost_range/sliced.qbk]
+[include reference/geometries/adapted/boost_range/strided.qbk]
+[/ include reference/geometries/adapted/boost_range/uniqued.qbk]
+[endsect]
+[section:register Macro's for adaption]
 [include generated/register.qbk]
 [endsect]
+[endsect]
 
 [section:algorithms Algorithms]
 
@@ -52,10 +68,8 @@
 [section:assign assign]
 [include generated/assign.qbk]
 [endsect]
-[/section:append append]
-[include generated/append.qbk]
-[/endsect]
 
+[include generated/append.qbk]
 
 [section:buffer buffer]
 [include generated/buffer.qbk]
@@ -175,7 +189,6 @@
 [include generated/cs_tag.qbk]
 [include generated/degree.qbk]
 [include generated/dimension.qbk]
-[include generated/exception.qbk]
 [include generated/interior_type.qbk]
 [include generated/is_radian.qbk]
 [include generated/point_order.qbk]

Modified: branches/release/libs/geometry/doc/reference/core/tag.qbk
==============================================================================
--- branches/release/libs/geometry/doc/reference/core/tag.qbk (original)
+++ branches/release/libs/geometry/doc/reference/core/tag.qbk 2011-05-04 08:15:07 EDT (Wed, 04 May 2011)
@@ -8,9 +8,18 @@
   http://www.boost.org/LICENSE_1_0.txt)
 =============================================================================/]
 
-[note With Boost.Geometry, tags are the driving force of the tag dispatching
- mechanism. The tag metafunction is therefore used in every free function.
-]
+[heading Metafunction result type]
+The metafunction tag defines [*type] as one of the following tags:
+
+* point_tag
+* linestring_tag
+* polygon_tag
+* multi_point_tag
+* multi_linestring_tag
+* multi_polygon_tag
+* box_tag
+* segment_tag
+* ring_tag
 
 [heading Complexity]
 Compile time

Modified: branches/release/libs/geometry/doc/src/docutils/tools/doxygen_xml2qbk/doxygen_elements.hpp
==============================================================================
--- branches/release/libs/geometry/doc/src/docutils/tools/doxygen_xml2qbk/doxygen_elements.hpp (original)
+++ branches/release/libs/geometry/doc/src/docutils/tools/doxygen_xml2qbk/doxygen_elements.hpp 2011-05-04 08:15:07 EDT (Wed, 04 May 2011)
@@ -140,6 +140,7 @@
 
 struct class_or_struct : public element
 {
+ bool is_class; // true if class, false if struct
     std::string name, fullname;
     std::vector<function> functions;
 

Modified: branches/release/libs/geometry/doc/src/docutils/tools/doxygen_xml2qbk/doxygen_xml_parser.hpp
==============================================================================
--- branches/release/libs/geometry/doc/src/docutils/tools/doxygen_xml2qbk/doxygen_xml_parser.hpp (original)
+++ branches/release/libs/geometry/doc/src/docutils/tools/doxygen_xml2qbk/doxygen_xml_parser.hpp 2011-05-04 08:15:07 EDT (Wed, 04 May 2011)
@@ -430,9 +430,16 @@
             {
                 recurse = true;
             }
- if (kind == "struct" || kind == "class")
+ else if (kind == "struct")
             {
                 recurse = true;
+ doc.cos.is_class = false;
+ parse_element(node->first_node(), config, "", doc.cos);
+ }
+ else if (kind == "class")
+ {
+ recurse = true;
+ doc.cos.is_class = true;
                 parse_element(node->first_node(), config, "", doc.cos);
             }
         }

Modified: branches/release/libs/geometry/doc/src/docutils/tools/doxygen_xml2qbk/for_debugger.ini
==============================================================================
--- branches/release/libs/geometry/doc/src/docutils/tools/doxygen_xml2qbk/for_debugger.ini (original)
+++ branches/release/libs/geometry/doc/src/docutils/tools/doxygen_xml2qbk/for_debugger.ini 2011-05-04 08:15:07 EDT (Wed, 04 May 2011)
@@ -4,7 +4,7 @@
 # xml=../../../../doxy/doxygen_output/xml/classboost_1_1geometry_1_1strategy_1_1distance_1_1pythagoras.xml
 # xml=../../../../doxy/doxygen_output/xml/group__get.xml
 
-xml=../../../../doxy/doxygen_output/xml/group__num__points.xml
+xml=../../../../doxy/doxygen_output/xml/structboost_1_1geometry_1_1tag.xml
 
 start_include=boost/geometry/
 convenience_header_path=../../../../../../../boost/geometry/

Modified: branches/release/libs/geometry/doc/src/docutils/tools/doxygen_xml2qbk/quickbook_output.hpp
==============================================================================
--- branches/release/libs/geometry/doc/src/docutils/tools/doxygen_xml2qbk/quickbook_output.hpp (original)
+++ branches/release/libs/geometry/doc/src/docutils/tools/doxygen_xml2qbk/quickbook_output.hpp 2011-05-04 08:15:07 EDT (Wed, 04 May 2011)
@@ -474,7 +474,8 @@
     out << "[heading Synopsis]" << std::endl
         << "``";
     quickbook_template_parameter_list(cos.template_parameters, out);
- out << "class " << short_name << std::endl;
+ out << (cos.is_class ? "class" : "struct")
+ << " " << short_name << std::endl;
 
     if (! cos.base_classes.empty())
     {

Modified: branches/release/libs/geometry/doc/src/examples/algorithms/append.cpp
==============================================================================
--- branches/release/libs/geometry/doc/src/examples/algorithms/append.cpp (original)
+++ branches/release/libs/geometry/doc/src/examples/algorithms/append.cpp 2011-05-04 08:15:07 EDT (Wed, 04 May 2011)
@@ -12,11 +12,13 @@
 
 #include <iostream>
 
-#include <boost/geometry/geometry.hpp>
+#include <boost/assign.hpp>
+
+#include <boost/geometry.hpp>
 #include <boost/geometry/geometries/geometries.hpp>
-#include <boost/geometry/geometries/adapted/tuple_cartesian.hpp>
+#include <boost/geometry/geometries/adapted/boost_tuple.hpp>
 
-#include <boost/assign.hpp>
+BOOST_GEOMETRY_REGISTER_BOOST_TUPLE_CS(cs::cartesian)
 
 int main()
 {

Modified: branches/release/libs/geometry/doc/src/examples/algorithms/area.cpp
==============================================================================
--- branches/release/libs/geometry/doc/src/examples/algorithms/area.cpp (original)
+++ branches/release/libs/geometry/doc/src/examples/algorithms/area.cpp 2011-05-04 08:15:07 EDT (Wed, 04 May 2011)
@@ -11,7 +11,7 @@
 //` Calculate the area of a polygon
 
 #include <iostream>
-#include <boost/geometry/geometry.hpp>
+#include <boost/geometry.hpp>
 #include <boost/geometry/domains/gis/io/wkt/wkt.hpp>
 
 namespace bg = boost::geometry; /*< Convenient namespace alias >*/

Modified: branches/release/libs/geometry/doc/src/examples/algorithms/area_with_strategy.cpp
==============================================================================
--- branches/release/libs/geometry/doc/src/examples/algorithms/area_with_strategy.cpp (original)
+++ branches/release/libs/geometry/doc/src/examples/algorithms/area_with_strategy.cpp 2011-05-04 08:15:07 EDT (Wed, 04 May 2011)
@@ -11,7 +11,7 @@
 //` Calculate the area of a polygon
 
 #include <iostream>
-#include <boost/geometry/geometry.hpp>
+#include <boost/geometry.hpp>
 #include <boost/geometry/domains/gis/io/wkt/wkt.hpp>
 
 namespace bg = boost::geometry; /*< Convenient namespace alias >*/

Modified: branches/release/libs/geometry/doc/src/examples/algorithms/assign.cpp
==============================================================================
--- branches/release/libs/geometry/doc/src/examples/algorithms/assign.cpp (original)
+++ branches/release/libs/geometry/doc/src/examples/algorithms/assign.cpp 2011-05-04 08:15:07 EDT (Wed, 04 May 2011)
@@ -12,8 +12,10 @@
 
 #include <iostream>
 
-#include <boost/geometry/geometry.hpp>
-#include <boost/geometry/geometries/adapted/tuple_cartesian.hpp>
+#include <boost/geometry.hpp>
+#include <boost/geometry/geometries/adapted/boost_tuple.hpp>
+
+BOOST_GEOMETRY_REGISTER_BOOST_TUPLE_CS(cs::cartesian)
 
 int main()
 {

Modified: branches/release/libs/geometry/doc/src/examples/algorithms/assign_2d_point.cpp
==============================================================================
--- branches/release/libs/geometry/doc/src/examples/algorithms/assign_2d_point.cpp (original)
+++ branches/release/libs/geometry/doc/src/examples/algorithms/assign_2d_point.cpp 2011-05-04 08:15:07 EDT (Wed, 04 May 2011)
@@ -13,7 +13,7 @@
 #include <iostream>
 #include <iomanip>
 
-#include <boost/geometry/geometry.hpp>
+#include <boost/geometry.hpp>
 #include <boost/geometry/geometries/geometries.hpp>
 
 #if defined(HAVE_TTMATH)

Modified: branches/release/libs/geometry/doc/src/examples/algorithms/assign_3d_point.cpp
==============================================================================
--- branches/release/libs/geometry/doc/src/examples/algorithms/assign_3d_point.cpp (original)
+++ branches/release/libs/geometry/doc/src/examples/algorithms/assign_3d_point.cpp 2011-05-04 08:15:07 EDT (Wed, 04 May 2011)
@@ -13,7 +13,7 @@
 #include <iostream>
 #include <iomanip>
 
-#include <boost/geometry/geometry.hpp>
+#include <boost/geometry.hpp>
 #include <boost/geometry/geometries/geometries.hpp>
 
 int main()

Modified: branches/release/libs/geometry/doc/src/examples/algorithms/assign_box_corners.cpp
==============================================================================
--- branches/release/libs/geometry/doc/src/examples/algorithms/assign_box_corners.cpp (original)
+++ branches/release/libs/geometry/doc/src/examples/algorithms/assign_box_corners.cpp 2011-05-04 08:15:07 EDT (Wed, 04 May 2011)
@@ -12,7 +12,7 @@
 
 #include <iostream>
 
-#include <boost/geometry/geometry.hpp>
+#include <boost/geometry.hpp>
 #include <boost/geometry/geometries/geometries.hpp>
 
 using namespace boost::geometry;

Modified: branches/release/libs/geometry/doc/src/examples/algorithms/assign_inverse.cpp
==============================================================================
--- branches/release/libs/geometry/doc/src/examples/algorithms/assign_inverse.cpp (original)
+++ branches/release/libs/geometry/doc/src/examples/algorithms/assign_inverse.cpp 2011-05-04 08:15:07 EDT (Wed, 04 May 2011)
@@ -12,7 +12,7 @@
 
 #include <iostream>
 
-#include <boost/geometry/geometry.hpp>
+#include <boost/geometry.hpp>
 #include <boost/geometry/geometries/geometries.hpp>
 
 using namespace boost::geometry;

Modified: branches/release/libs/geometry/doc/src/examples/algorithms/assign_point_from_index.cpp
==============================================================================
--- branches/release/libs/geometry/doc/src/examples/algorithms/assign_point_from_index.cpp (original)
+++ branches/release/libs/geometry/doc/src/examples/algorithms/assign_point_from_index.cpp 2011-05-04 08:15:07 EDT (Wed, 04 May 2011)
@@ -12,7 +12,7 @@
 
 #include <iostream>
 
-#include <boost/geometry/geometry.hpp>
+#include <boost/geometry.hpp>
 #include <boost/geometry/geometries/geometries.hpp>
 
 using namespace boost::geometry;

Modified: branches/release/libs/geometry/doc/src/examples/algorithms/assign_point_to_index.cpp
==============================================================================
--- branches/release/libs/geometry/doc/src/examples/algorithms/assign_point_to_index.cpp (original)
+++ branches/release/libs/geometry/doc/src/examples/algorithms/assign_point_to_index.cpp 2011-05-04 08:15:07 EDT (Wed, 04 May 2011)
@@ -12,7 +12,7 @@
 
 #include <iostream>
 
-#include <boost/geometry/geometry.hpp>
+#include <boost/geometry.hpp>
 #include <boost/geometry/geometries/geometries.hpp>
 
 using namespace boost::geometry;

Modified: branches/release/libs/geometry/doc/src/examples/algorithms/assign_points.cpp
==============================================================================
--- branches/release/libs/geometry/doc/src/examples/algorithms/assign_points.cpp (original)
+++ branches/release/libs/geometry/doc/src/examples/algorithms/assign_points.cpp 2011-05-04 08:15:07 EDT (Wed, 04 May 2011)
@@ -12,13 +12,15 @@
 
 #include <iostream>
 
-#include <boost/geometry/geometry.hpp>
+#include <boost/geometry.hpp>
 #include <boost/geometry/geometries/geometries.hpp>
-#include <boost/geometry/geometries/adapted/tuple_cartesian.hpp>
+#include <boost/geometry/geometries/adapted/boost_tuple.hpp>
 
 #include <boost/assign.hpp>
 #include <boost/geometry/geometries/adapted/boost_range/filtered.hpp>
 
+BOOST_GEOMETRY_REGISTER_BOOST_TUPLE_CS(cs::cartesian)
+
 template <typename T>
 struct x_between
 {

Modified: branches/release/libs/geometry/doc/src/examples/algorithms/centroid.cpp
==============================================================================
--- branches/release/libs/geometry/doc/src/examples/algorithms/centroid.cpp (original)
+++ branches/release/libs/geometry/doc/src/examples/algorithms/centroid.cpp 2011-05-04 08:15:07 EDT (Wed, 04 May 2011)
@@ -13,7 +13,7 @@
 #include <iostream>
 #include <list>
 
-#include <boost/geometry/geometry.hpp>
+#include <boost/geometry.hpp>
 #include <boost/geometry/geometries/geometries.hpp>
 
 #include <boost/geometry/domains/gis/io/wkt/wkt.hpp>

Modified: branches/release/libs/geometry/doc/src/examples/algorithms/clear.cpp
==============================================================================
--- branches/release/libs/geometry/doc/src/examples/algorithms/clear.cpp (original)
+++ branches/release/libs/geometry/doc/src/examples/algorithms/clear.cpp 2011-05-04 08:15:07 EDT (Wed, 04 May 2011)
@@ -12,9 +12,11 @@
 
 #include <iostream>
 
-#include <boost/geometry/geometry.hpp>
+#include <boost/geometry.hpp>
 #include <boost/geometry/geometries/geometries.hpp>
-#include <boost/geometry/geometries/adapted/tuple_cartesian.hpp>
+#include <boost/geometry/geometries/adapted/boost_tuple.hpp>
+
+BOOST_GEOMETRY_REGISTER_BOOST_TUPLE_CS(cs::cartesian)
 
 #include <boost/assign.hpp>
 

Modified: branches/release/libs/geometry/doc/src/examples/algorithms/comparable_distance.cpp
==============================================================================
--- branches/release/libs/geometry/doc/src/examples/algorithms/comparable_distance.cpp (original)
+++ branches/release/libs/geometry/doc/src/examples/algorithms/comparable_distance.cpp 2011-05-04 08:15:07 EDT (Wed, 04 May 2011)
@@ -12,7 +12,7 @@
 
 #include <iostream>
 
-#include <boost/geometry/geometry.hpp>
+#include <boost/geometry.hpp>
 
 #include <boost/numeric/conversion/bounds.hpp>
 #include <boost/foreach.hpp>

Modified: branches/release/libs/geometry/doc/src/examples/algorithms/convert.cpp
==============================================================================
--- branches/release/libs/geometry/doc/src/examples/algorithms/convert.cpp (original)
+++ branches/release/libs/geometry/doc/src/examples/algorithms/convert.cpp 2011-05-04 08:15:07 EDT (Wed, 04 May 2011)
@@ -13,7 +13,9 @@
 #include <iostream>
 
 #include <boost/geometry.hpp>
-#include <boost/geometry/geometries/adapted/tuple_cartesian.hpp>
+#include <boost/geometry/geometries/adapted/boost_tuple.hpp>
+
+BOOST_GEOMETRY_REGISTER_BOOST_TUPLE_CS(cs::cartesian)
 
 int main()
 {

Modified: branches/release/libs/geometry/doc/src/examples/algorithms/convex_hull.cpp
==============================================================================
--- branches/release/libs/geometry/doc/src/examples/algorithms/convex_hull.cpp (original)
+++ branches/release/libs/geometry/doc/src/examples/algorithms/convex_hull.cpp 2011-05-04 08:15:07 EDT (Wed, 04 May 2011)
@@ -12,8 +12,10 @@
 
 #include <iostream>
 
-#include <boost/geometry/geometry.hpp>
-#include <boost/geometry/geometries/adapted/tuple_cartesian.hpp>
+#include <boost/geometry.hpp>
+#include <boost/geometry/geometries/adapted/boost_tuple.hpp>
+
+BOOST_GEOMETRY_REGISTER_BOOST_TUPLE_CS(cs::cartesian)
 
 /*<-*/ #include "create_svg_two.hpp" /*->*/
 int main()

Modified: branches/release/libs/geometry/doc/src/examples/algorithms/correct.cpp
==============================================================================
--- branches/release/libs/geometry/doc/src/examples/algorithms/correct.cpp (original)
+++ branches/release/libs/geometry/doc/src/examples/algorithms/correct.cpp 2011-05-04 08:15:07 EDT (Wed, 04 May 2011)
@@ -12,8 +12,10 @@
 
 #include <iostream>
 
-#include <boost/geometry/geometry.hpp>
-#include <boost/geometry/geometries/adapted/tuple_cartesian.hpp>
+#include <boost/geometry.hpp>
+#include <boost/geometry/geometries/adapted/boost_tuple.hpp>
+
+BOOST_GEOMETRY_REGISTER_BOOST_TUPLE_CS(cs::cartesian)
 
 #include <boost/assign.hpp>
 

Modified: branches/release/libs/geometry/doc/src/examples/algorithms/difference.cpp
==============================================================================
--- branches/release/libs/geometry/doc/src/examples/algorithms/difference.cpp (original)
+++ branches/release/libs/geometry/doc/src/examples/algorithms/difference.cpp 2011-05-04 08:15:07 EDT (Wed, 04 May 2011)
@@ -13,7 +13,7 @@
 #include <iostream>
 #include <list>
 
-#include <boost/geometry/geometry.hpp>
+#include <boost/geometry.hpp>
 #include <boost/geometry/geometries/geometries.hpp>
 #include <boost/geometry/domains/gis/io/wkt/wkt.hpp>
 

Modified: branches/release/libs/geometry/doc/src/examples/algorithms/difference_inserter.cpp
==============================================================================
--- branches/release/libs/geometry/doc/src/examples/algorithms/difference_inserter.cpp (original)
+++ branches/release/libs/geometry/doc/src/examples/algorithms/difference_inserter.cpp 2011-05-04 08:15:07 EDT (Wed, 04 May 2011)
@@ -13,7 +13,7 @@
 #include <iostream>
 #include <vector>
 
-#include <boost/geometry/geometry.hpp>
+#include <boost/geometry.hpp>
 #include <boost/geometry/geometries/geometries.hpp>
 #include <boost/geometry/domains/gis/io/wkt/wkt.hpp>
 

Modified: branches/release/libs/geometry/doc/src/examples/algorithms/distance.cpp
==============================================================================
--- branches/release/libs/geometry/doc/src/examples/algorithms/distance.cpp (original)
+++ branches/release/libs/geometry/doc/src/examples/algorithms/distance.cpp 2011-05-04 08:15:07 EDT (Wed, 04 May 2011)
@@ -13,7 +13,7 @@
 #include <iostream>
 #include <list>
 
-#include <boost/geometry/geometry.hpp>
+#include <boost/geometry.hpp>
 #include <boost/geometry/geometries/geometries.hpp>
 #include <boost/geometry/multi/geometries/multi_point.hpp>
 

Modified: branches/release/libs/geometry/doc/src/examples/algorithms/envelope.cpp
==============================================================================
--- branches/release/libs/geometry/doc/src/examples/algorithms/envelope.cpp (original)
+++ branches/release/libs/geometry/doc/src/examples/algorithms/envelope.cpp 2011-05-04 08:15:07 EDT (Wed, 04 May 2011)
@@ -12,7 +12,7 @@
 
 #include <iostream>
 
-#include <boost/geometry/geometry.hpp>
+#include <boost/geometry.hpp>
 #include <boost/geometry/geometries/geometries.hpp>
 #include <boost/geometry/domains/gis/io/wkt/wkt.hpp>
 

Modified: branches/release/libs/geometry/doc/src/examples/algorithms/equals.cpp
==============================================================================
--- branches/release/libs/geometry/doc/src/examples/algorithms/equals.cpp (original)
+++ branches/release/libs/geometry/doc/src/examples/algorithms/equals.cpp 2011-05-04 08:15:07 EDT (Wed, 04 May 2011)
@@ -12,9 +12,11 @@
 
 #include <iostream>
 
-#include <boost/geometry/geometry.hpp>
+#include <boost/geometry.hpp>
 #include <boost/geometry/geometries/geometries.hpp>
-#include <boost/geometry/geometries/adapted/tuple_cartesian.hpp>
+#include <boost/geometry/geometries/adapted/boost_tuple.hpp>
+
+BOOST_GEOMETRY_REGISTER_BOOST_TUPLE_CS(cs::cartesian)
 
 #include <boost/assign.hpp>
 

Modified: branches/release/libs/geometry/doc/src/examples/algorithms/expand.cpp
==============================================================================
--- branches/release/libs/geometry/doc/src/examples/algorithms/expand.cpp (original)
+++ branches/release/libs/geometry/doc/src/examples/algorithms/expand.cpp 2011-05-04 08:15:07 EDT (Wed, 04 May 2011)
@@ -13,7 +13,7 @@
 #include <iostream>
 #include <list>
 
-#include <boost/geometry/geometry.hpp>
+#include <boost/geometry.hpp>
 
 int main()
 {

Modified: branches/release/libs/geometry/doc/src/examples/algorithms/for_each_point.cpp
==============================================================================
--- branches/release/libs/geometry/doc/src/examples/algorithms/for_each_point.cpp (original)
+++ branches/release/libs/geometry/doc/src/examples/algorithms/for_each_point.cpp 2011-05-04 08:15:07 EDT (Wed, 04 May 2011)
@@ -12,7 +12,7 @@
 
 #include <iostream>
 
-#include <boost/geometry/geometry.hpp>
+#include <boost/geometry.hpp>
 #include <boost/geometry/geometries/geometries.hpp>
 #include <boost/geometry/domains/gis/io/wkt/wkt.hpp>
 

Modified: branches/release/libs/geometry/doc/src/examples/algorithms/for_each_point_const.cpp
==============================================================================
--- branches/release/libs/geometry/doc/src/examples/algorithms/for_each_point_const.cpp (original)
+++ branches/release/libs/geometry/doc/src/examples/algorithms/for_each_point_const.cpp 2011-05-04 08:15:07 EDT (Wed, 04 May 2011)
@@ -12,7 +12,7 @@
 
 #include <iostream>
 
-#include <boost/geometry/geometry.hpp>
+#include <boost/geometry.hpp>
 #include <boost/geometry/geometries/geometries.hpp>
 #include <boost/geometry/domains/gis/io/wkt/wkt.hpp>
 

Modified: branches/release/libs/geometry/doc/src/examples/algorithms/for_each_segment_const.cpp
==============================================================================
--- branches/release/libs/geometry/doc/src/examples/algorithms/for_each_segment_const.cpp (original)
+++ branches/release/libs/geometry/doc/src/examples/algorithms/for_each_segment_const.cpp 2011-05-04 08:15:07 EDT (Wed, 04 May 2011)
@@ -12,7 +12,7 @@
 
 #include <iostream>
 
-#include <boost/geometry/geometry.hpp>
+#include <boost/geometry.hpp>
 #include <boost/geometry/geometries/geometries.hpp>
 
 #include <boost/assign.hpp>

Modified: branches/release/libs/geometry/doc/src/examples/algorithms/intersection_ls_ls_point.cpp
==============================================================================
--- branches/release/libs/geometry/doc/src/examples/algorithms/intersection_ls_ls_point.cpp (original)
+++ branches/release/libs/geometry/doc/src/examples/algorithms/intersection_ls_ls_point.cpp 2011-05-04 08:15:07 EDT (Wed, 04 May 2011)
@@ -13,7 +13,7 @@
 #include <iostream>
 #include <deque>
 
-#include <boost/geometry/geometry.hpp>
+#include <boost/geometry.hpp>
 #include <boost/geometry/domains/gis/io/wkt/wkt.hpp>
 #include <boost/geometry/geometries/adapted/std_as_linestring.hpp> /*< Adapts std::vector to linestring concept >*/
 

Modified: branches/release/libs/geometry/doc/src/examples/algorithms/intersection_poly_poly.cpp
==============================================================================
--- branches/release/libs/geometry/doc/src/examples/algorithms/intersection_poly_poly.cpp (original)
+++ branches/release/libs/geometry/doc/src/examples/algorithms/intersection_poly_poly.cpp 2011-05-04 08:15:07 EDT (Wed, 04 May 2011)
@@ -13,7 +13,7 @@
 #include <iostream>
 #include <deque>
 
-#include <boost/geometry/geometry.hpp>
+#include <boost/geometry.hpp>
 #include <boost/geometry/geometries/geometries.hpp>
 #include <boost/geometry/domains/gis/io/wkt/wkt.hpp>
 

Modified: branches/release/libs/geometry/doc/src/examples/algorithms/intersection_segment.cpp
==============================================================================
--- branches/release/libs/geometry/doc/src/examples/algorithms/intersection_segment.cpp (original)
+++ branches/release/libs/geometry/doc/src/examples/algorithms/intersection_segment.cpp 2011-05-04 08:15:07 EDT (Wed, 04 May 2011)
@@ -12,7 +12,7 @@
 
 #include <iostream>
 
-#include <boost/geometry/geometry.hpp>
+#include <boost/geometry.hpp>
 #include <boost/geometry/domains/gis/io/wkt/wkt.hpp>
 #include <boost/geometry/geometries/adapted/std_as_linestring.hpp> /*< Adapts std::vector to linestring concept >*/
 

Modified: branches/release/libs/geometry/doc/src/examples/algorithms/intersects_linestring.cpp
==============================================================================
--- branches/release/libs/geometry/doc/src/examples/algorithms/intersects_linestring.cpp (original)
+++ branches/release/libs/geometry/doc/src/examples/algorithms/intersects_linestring.cpp 2011-05-04 08:15:07 EDT (Wed, 04 May 2011)
@@ -12,7 +12,7 @@
 
 #include <iostream>
 
-#include <boost/geometry/geometry.hpp>
+#include <boost/geometry.hpp>
 #include <boost/geometry/domains/gis/io/wkt/wkt.hpp>
 
 int main()

Modified: branches/release/libs/geometry/doc/src/examples/algorithms/intersects_segment.cpp
==============================================================================
--- branches/release/libs/geometry/doc/src/examples/algorithms/intersects_segment.cpp (original)
+++ branches/release/libs/geometry/doc/src/examples/algorithms/intersects_segment.cpp 2011-05-04 08:15:07 EDT (Wed, 04 May 2011)
@@ -12,7 +12,7 @@
 
 #include <iostream>
 
-#include <boost/geometry/geometry.hpp>
+#include <boost/geometry.hpp>
 #include <boost/geometry/domains/gis/io/wkt/wkt.hpp>
 
 int main()

Modified: branches/release/libs/geometry/doc/src/examples/algorithms/length.cpp
==============================================================================
--- branches/release/libs/geometry/doc/src/examples/algorithms/length.cpp (original)
+++ branches/release/libs/geometry/doc/src/examples/algorithms/length.cpp 2011-05-04 08:15:07 EDT (Wed, 04 May 2011)
@@ -11,7 +11,7 @@
     //` The following simple example shows the calculation of the length of a linestring containing three points
 
 #include <iostream>
-#include <boost/geometry/geometry.hpp>
+#include <boost/geometry.hpp>
 #include <boost/geometry/domains/gis/io/wkt/wkt.hpp>
 
 

Modified: branches/release/libs/geometry/doc/src/examples/algorithms/length_with_strategy.cpp
==============================================================================
--- branches/release/libs/geometry/doc/src/examples/algorithms/length_with_strategy.cpp (original)
+++ branches/release/libs/geometry/doc/src/examples/algorithms/length_with_strategy.cpp 2011-05-04 08:15:07 EDT (Wed, 04 May 2011)
@@ -11,7 +11,7 @@
 //`The following example shows the length measured over a sphere, expressed in kilometers. To do that the radius of the sphere must be specified in the constructor of the strategy.
 
 #include <iostream>
-#include <boost/geometry/geometry.hpp>
+#include <boost/geometry.hpp>
 
 int main()
 {

Modified: branches/release/libs/geometry/doc/src/examples/algorithms/make_2d_point.cpp
==============================================================================
--- branches/release/libs/geometry/doc/src/examples/algorithms/make_2d_point.cpp (original)
+++ branches/release/libs/geometry/doc/src/examples/algorithms/make_2d_point.cpp 2011-05-04 08:15:07 EDT (Wed, 04 May 2011)
@@ -12,12 +12,14 @@
 
 #include <iostream>
 
-#include <boost/geometry/geometry.hpp>
+#include <boost/geometry.hpp>
 #include <boost/geometry/geometries/geometries.hpp>
 #include <boost/geometry/geometries/register/point.hpp>
-#include <boost/geometry/geometries/adapted/tuple_cartesian.hpp>
+#include <boost/geometry/geometries/adapted/boost_tuple.hpp>
 #include <boost/geometry/geometries/adapted/boost_polygon/point.hpp>
 
+BOOST_GEOMETRY_REGISTER_BOOST_TUPLE_CS(cs::cartesian)
+
 struct mypoint { float _x, _y; };
 
 BOOST_GEOMETRY_REGISTER_POINT_2D(mypoint, float, cs::cartesian, _x, _y)

Modified: branches/release/libs/geometry/doc/src/examples/algorithms/make_3d_point.cpp
==============================================================================
--- branches/release/libs/geometry/doc/src/examples/algorithms/make_3d_point.cpp (original)
+++ branches/release/libs/geometry/doc/src/examples/algorithms/make_3d_point.cpp 2011-05-04 08:15:07 EDT (Wed, 04 May 2011)
@@ -12,7 +12,7 @@
 
 #include <iostream>
 
-#include <boost/geometry/geometry.hpp>
+#include <boost/geometry.hpp>
 #include <boost/geometry/geometries/geometries.hpp>
 
 int main()

Modified: branches/release/libs/geometry/doc/src/examples/algorithms/make_inverse.cpp
==============================================================================
--- branches/release/libs/geometry/doc/src/examples/algorithms/make_inverse.cpp (original)
+++ branches/release/libs/geometry/doc/src/examples/algorithms/make_inverse.cpp 2011-05-04 08:15:07 EDT (Wed, 04 May 2011)
@@ -12,7 +12,7 @@
 
 #include <iostream>
 
-#include <boost/geometry/geometry.hpp>
+#include <boost/geometry.hpp>
 #include <boost/geometry/geometries/geometries.hpp>
 
 using namespace boost::geometry;

Modified: branches/release/libs/geometry/doc/src/examples/algorithms/make_with_range.cpp
==============================================================================
--- branches/release/libs/geometry/doc/src/examples/algorithms/make_with_range.cpp (original)
+++ branches/release/libs/geometry/doc/src/examples/algorithms/make_with_range.cpp 2011-05-04 08:15:07 EDT (Wed, 04 May 2011)
@@ -12,24 +12,25 @@
 
 #include <iostream>
 
-#include <boost/geometry/geometry.hpp>
-#include <boost/geometry/geometries/geometries.hpp>
-#include <boost/geometry/geometries/adapted/c_array_cartesian.hpp> /*< Necessary to register a C array like {1,2} as a point >*/
+#include <boost/geometry.hpp>
+#include <boost/geometry/geometries/adapted/c_array.hpp>
 
+BOOST_GEOMETRY_REGISTER_C_ARRAY_CS(cs::cartesian) /*< Necessary to register a C array like {1,2} as a point >*/
 
 int main()
 {
     using boost::geometry::make;
+ using boost::geometry::detail::make::make_points;
 
     typedef boost::geometry::model::d2::point_xy<double> point;
     typedef boost::geometry::model::linestring<point> linestring;
 
     double coordinates[][2] = {{1,2}, {3,4}, {5, 6}}; /*< Initialize with C array points >*/
- linestring ls = make<linestring>(coordinates);
+ linestring ls = make_points<linestring>(coordinates);
     std::cout << boost::geometry::dsv(ls) << std::endl;
 
     point points[3] = { make<point>(9,8), make<point>(7,6), make<point>(5,4) }; /*< Construct array with points, using make which should work for any point type >*/
- std::cout << boost::geometry::dsv(make<linestring>(points)) << std::endl; /*< Construct linestring with point-array and output it as Delimiter Separated Values >*/
+ std::cout << boost::geometry::dsv(make_points<linestring>(points)) << std::endl; /*< Construct linestring with point-array and output it as Delimiter Separated Values >*/
 
     return 0;
 }

Modified: branches/release/libs/geometry/doc/src/examples/algorithms/num_geometries.cpp
==============================================================================
--- branches/release/libs/geometry/doc/src/examples/algorithms/num_geometries.cpp (original)
+++ branches/release/libs/geometry/doc/src/examples/algorithms/num_geometries.cpp 2011-05-04 08:15:07 EDT (Wed, 04 May 2011)
@@ -12,7 +12,7 @@
 
 #include <iostream>
 
-#include <boost/geometry/geometry.hpp>
+#include <boost/geometry.hpp>
 #include <boost/geometry/multi/multi.hpp>
 #include <boost/geometry/geometries/geometries.hpp>
 #include <boost/geometry/multi/geometries/multi_polygon.hpp>

Modified: branches/release/libs/geometry/doc/src/examples/algorithms/num_interior_rings.cpp
==============================================================================
--- branches/release/libs/geometry/doc/src/examples/algorithms/num_interior_rings.cpp (original)
+++ branches/release/libs/geometry/doc/src/examples/algorithms/num_interior_rings.cpp 2011-05-04 08:15:07 EDT (Wed, 04 May 2011)
@@ -12,7 +12,7 @@
 
 #include <iostream>
 
-#include <boost/geometry/geometry.hpp>
+#include <boost/geometry.hpp>
 #include <boost/geometry/multi/multi.hpp>
 #include <boost/geometry/geometries/geometries.hpp>
 #include <boost/geometry/multi/geometries/multi_polygon.hpp>

Modified: branches/release/libs/geometry/doc/src/examples/algorithms/num_points.cpp
==============================================================================
--- branches/release/libs/geometry/doc/src/examples/algorithms/num_points.cpp (original)
+++ branches/release/libs/geometry/doc/src/examples/algorithms/num_points.cpp 2011-05-04 08:15:07 EDT (Wed, 04 May 2011)
@@ -12,7 +12,7 @@
 
 #include <iostream>
 
-#include <boost/geometry/geometry.hpp>
+#include <boost/geometry.hpp>
 #include <boost/geometry/multi/multi.hpp>
 #include <boost/geometry/geometries/geometries.hpp>
 #include <boost/geometry/multi/geometries/multi_polygon.hpp>

Modified: branches/release/libs/geometry/doc/src/examples/algorithms/return_envelope.cpp
==============================================================================
--- branches/release/libs/geometry/doc/src/examples/algorithms/return_envelope.cpp (original)
+++ branches/release/libs/geometry/doc/src/examples/algorithms/return_envelope.cpp 2011-05-04 08:15:07 EDT (Wed, 04 May 2011)
@@ -13,7 +13,7 @@
 #include <iostream>
 
 
-#include <boost/geometry/geometry.hpp>
+#include <boost/geometry.hpp>
 #include <boost/geometry/geometries/geometries.hpp>
 
 #include <boost/assign.hpp>

Modified: branches/release/libs/geometry/doc/src/examples/algorithms/reverse.cpp
==============================================================================
--- branches/release/libs/geometry/doc/src/examples/algorithms/reverse.cpp (original)
+++ branches/release/libs/geometry/doc/src/examples/algorithms/reverse.cpp 2011-05-04 08:15:07 EDT (Wed, 04 May 2011)
@@ -12,9 +12,11 @@
 
 #include <iostream>
 
-#include <boost/geometry/geometry.hpp>
+#include <boost/geometry.hpp>
 #include <boost/geometry/geometries/geometries.hpp>
-#include <boost/geometry/geometries/adapted/tuple_cartesian.hpp>
+#include <boost/geometry/geometries/adapted/boost_tuple.hpp>
+
+BOOST_GEOMETRY_REGISTER_BOOST_TUPLE_CS(cs::cartesian)
 
 #include <boost/assign.hpp>
 

Modified: branches/release/libs/geometry/doc/src/examples/algorithms/simplify.cpp
==============================================================================
--- branches/release/libs/geometry/doc/src/examples/algorithms/simplify.cpp (original)
+++ branches/release/libs/geometry/doc/src/examples/algorithms/simplify.cpp 2011-05-04 08:15:07 EDT (Wed, 04 May 2011)
@@ -11,7 +11,7 @@
 //` Example showing how to simplify a linestring
 
 #include <iostream>
-#include <boost/geometry/geometry.hpp>
+#include <boost/geometry.hpp>
 
 /*< For this example we use Boost.Assign to add points >*/
 #include <boost/assign.hpp>

Modified: branches/release/libs/geometry/doc/src/examples/algorithms/simplify_insert.cpp
==============================================================================
--- branches/release/libs/geometry/doc/src/examples/algorithms/simplify_insert.cpp (original)
+++ branches/release/libs/geometry/doc/src/examples/algorithms/simplify_insert.cpp 2011-05-04 08:15:07 EDT (Wed, 04 May 2011)
@@ -11,7 +11,7 @@
 //` Simplify a linestring using a back inserter
 
 #include <iostream>
-#include <boost/geometry/geometry.hpp>
+#include <boost/geometry.hpp>
 
 int main()
 {

Modified: branches/release/libs/geometry/doc/src/examples/algorithms/simplify_insert_with_strategy.cpp
==============================================================================
--- branches/release/libs/geometry/doc/src/examples/algorithms/simplify_insert_with_strategy.cpp (original)
+++ branches/release/libs/geometry/doc/src/examples/algorithms/simplify_insert_with_strategy.cpp 2011-05-04 08:15:07 EDT (Wed, 04 May 2011)
@@ -11,7 +11,7 @@
 //` Simplify a linestring using an output iterator
 
 #include <iostream>
-#include <boost/geometry/geometry.hpp>
+#include <boost/geometry.hpp>
 #include <boost/geometry/domains/gis/io/wkt/wkt.hpp>
 #include <boost/geometry/domains/gis/io/wkt/stream_wkt.hpp>
 

Modified: branches/release/libs/geometry/doc/src/examples/algorithms/sym_difference.cpp
==============================================================================
--- branches/release/libs/geometry/doc/src/examples/algorithms/sym_difference.cpp (original)
+++ branches/release/libs/geometry/doc/src/examples/algorithms/sym_difference.cpp 2011-05-04 08:15:07 EDT (Wed, 04 May 2011)
@@ -12,7 +12,7 @@
 
 #include <iostream>
 
-#include <boost/geometry/geometry.hpp>
+#include <boost/geometry.hpp>
 #include <boost/geometry/geometries/geometries.hpp>
 #include <boost/geometry/multi/geometries/multi_polygon.hpp>
 #include <boost/geometry/domains/gis/io/wkt/wkt.hpp>

Modified: branches/release/libs/geometry/doc/src/examples/algorithms/transform.cpp
==============================================================================
--- branches/release/libs/geometry/doc/src/examples/algorithms/transform.cpp (original)
+++ branches/release/libs/geometry/doc/src/examples/algorithms/transform.cpp 2011-05-04 08:15:07 EDT (Wed, 04 May 2011)
@@ -11,7 +11,7 @@
 //` Shows how points can be transformed using the default strategy
 
 #include <iostream>
-#include <boost/geometry/geometry.hpp>
+#include <boost/geometry.hpp>
 
 
 int main()

Modified: branches/release/libs/geometry/doc/src/examples/algorithms/transform_with_strategy.cpp
==============================================================================
--- branches/release/libs/geometry/doc/src/examples/algorithms/transform_with_strategy.cpp (original)
+++ branches/release/libs/geometry/doc/src/examples/algorithms/transform_with_strategy.cpp 2011-05-04 08:15:07 EDT (Wed, 04 May 2011)
@@ -11,7 +11,7 @@
 //` Shows how points can be scaled, translated or rotated
 
 #include <iostream>
-#include <boost/geometry/geometry.hpp>
+#include <boost/geometry.hpp>
 
 
 int main()

Modified: branches/release/libs/geometry/doc/src/examples/algorithms/union.cpp
==============================================================================
--- branches/release/libs/geometry/doc/src/examples/algorithms/union.cpp (original)
+++ branches/release/libs/geometry/doc/src/examples/algorithms/union.cpp 2011-05-04 08:15:07 EDT (Wed, 04 May 2011)
@@ -13,7 +13,7 @@
 #include <iostream>
 #include <vector>
 
-#include <boost/geometry/geometry.hpp>
+#include <boost/geometry.hpp>
 #include <boost/geometry/geometries/geometries.hpp>
 #include <boost/geometry/domains/gis/io/wkt/wkt.hpp>
 

Modified: branches/release/libs/geometry/doc/src/examples/algorithms/unique.cpp
==============================================================================
--- branches/release/libs/geometry/doc/src/examples/algorithms/unique.cpp (original)
+++ branches/release/libs/geometry/doc/src/examples/algorithms/unique.cpp 2011-05-04 08:15:07 EDT (Wed, 04 May 2011)
@@ -12,8 +12,10 @@
 
 #include <iostream>
 
-#include <boost/geometry/geometry.hpp>
-#include <boost/geometry/geometries/adapted/tuple_cartesian.hpp>
+#include <boost/geometry.hpp>
+#include <boost/geometry/geometries/adapted/boost_tuple.hpp>
+
+BOOST_GEOMETRY_REGISTER_BOOST_TUPLE_CS(cs::cartesian)
 
 int main()
 {

Modified: branches/release/libs/geometry/doc/src/examples/algorithms/within.cpp
==============================================================================
--- branches/release/libs/geometry/doc/src/examples/algorithms/within.cpp (original)
+++ branches/release/libs/geometry/doc/src/examples/algorithms/within.cpp 2011-05-04 08:15:07 EDT (Wed, 04 May 2011)
@@ -13,7 +13,7 @@
 #include <iostream>
 #include <list>
 
-#include <boost/geometry/geometry.hpp>
+#include <boost/geometry.hpp>
 #include <boost/geometry/geometries/geometries.hpp>
 
 #include <boost/geometry/domains/gis/io/wkt/wkt.hpp>

Modified: branches/release/libs/geometry/doc/src/examples/core/Jamfile.v2
==============================================================================
--- branches/release/libs/geometry/doc/src/examples/core/Jamfile.v2 (original)
+++ branches/release/libs/geometry/doc/src/examples/core/Jamfile.v2 2011-05-04 08:15:07 EDT (Wed, 04 May 2011)
@@ -25,6 +25,9 @@
 exe point_order : point_order.cpp ;
 exe closure : closure.cpp ;
 
+exe interior_type : interior_type.cpp ;
 exe point_type : point_type.cpp ;
+exe ring_type : ring_type.cpp ;
+exe rings : rings.cpp ;
 exe tag : tag.cpp ;
 exe tag_cast : tag_cast.cpp ;

Modified: branches/release/libs/geometry/doc/src/examples/core/closure.cpp
==============================================================================
--- branches/release/libs/geometry/doc/src/examples/core/closure.cpp (original)
+++ branches/release/libs/geometry/doc/src/examples/core/closure.cpp 2011-05-04 08:15:07 EDT (Wed, 04 May 2011)
@@ -11,7 +11,7 @@
 //` Examine if a polygon is defined as "should be closed"
 
 #include <iostream>
-#include <boost/geometry/geometry.hpp>
+#include <boost/geometry.hpp>
 
 int main()
 {

Modified: branches/release/libs/geometry/doc/src/examples/core/coordinate_dimension.cpp
==============================================================================
--- branches/release/libs/geometry/doc/src/examples/core/coordinate_dimension.cpp (original)
+++ branches/release/libs/geometry/doc/src/examples/core/coordinate_dimension.cpp 2011-05-04 08:15:07 EDT (Wed, 04 May 2011)
@@ -11,15 +11,16 @@
 //` Examine the number of coordinates making up the points in a linestring type
 
 #include <iostream>
-#include <boost/geometry/geometry.hpp>
-#include <boost/geometry/geometries/adapted/tuple_cartesian.hpp>
-#include <boost/geometry/geometries/adapted/std_as_linestring.hpp>
+#include <boost/geometry.hpp>
+#include <boost/geometry/geometries/adapted/boost_tuple.hpp>
+
+BOOST_GEOMETRY_REGISTER_BOOST_TUPLE_CS(cs::cartesian);
 
 int main()
 {
     int dim = boost::geometry::dimension
         <
- std::vector
+ boost::geometry::model::linestring
                 <
                     boost::tuple<float, float, float>
>

Modified: branches/release/libs/geometry/doc/src/examples/core/coordinate_system.cpp
==============================================================================
--- branches/release/libs/geometry/doc/src/examples/core/coordinate_system.cpp (original)
+++ branches/release/libs/geometry/doc/src/examples/core/coordinate_system.cpp 2011-05-04 08:15:07 EDT (Wed, 04 May 2011)
@@ -12,7 +12,7 @@
 
 #include <iostream>
 #include <typeinfo>
-#include <boost/geometry/geometry.hpp>
+#include <boost/geometry.hpp>
 
 int main()
 {

Modified: branches/release/libs/geometry/doc/src/examples/core/coordinate_type.cpp
==============================================================================
--- branches/release/libs/geometry/doc/src/examples/core/coordinate_type.cpp (original)
+++ branches/release/libs/geometry/doc/src/examples/core/coordinate_type.cpp 2011-05-04 08:15:07 EDT (Wed, 04 May 2011)
@@ -12,7 +12,7 @@
 
 #include <iostream>
 #include <typeinfo>
-#include <boost/geometry/geometry.hpp>
+#include <boost/geometry.hpp>
 
 int main()
 {

Modified: branches/release/libs/geometry/doc/src/examples/core/degree_radian.cpp
==============================================================================
--- branches/release/libs/geometry/doc/src/examples/core/degree_radian.cpp (original)
+++ branches/release/libs/geometry/doc/src/examples/core/degree_radian.cpp 2011-05-04 08:15:07 EDT (Wed, 04 May 2011)
@@ -11,7 +11,7 @@
 //` Specify two coordinate systems, one in degrees, one in radians.
 
 #include <iostream>
-#include <boost/geometry/geometry.hpp>
+#include <boost/geometry.hpp>
 
 using namespace boost::geometry;
 

Modified: branches/release/libs/geometry/doc/src/examples/core/get_box.cpp
==============================================================================
--- branches/release/libs/geometry/doc/src/examples/core/get_box.cpp (original)
+++ branches/release/libs/geometry/doc/src/examples/core/get_box.cpp 2011-05-04 08:15:07 EDT (Wed, 04 May 2011)
@@ -11,7 +11,7 @@
 //` Get the coordinate of a box
 
 #include <iostream>
-#include <boost/geometry/geometry.hpp>
+#include <boost/geometry.hpp>
 
 namespace bg = boost::geometry;
 
@@ -19,7 +19,7 @@
 {
     bg::model::box<bg::model::d2::point_xy<double> > box;
 
- bg::assign(box, 1, 3, 5, 6);
+ bg::assign_values(box, 1, 3, 5, 6);
 
     std::cout << "Box:"
         << " " << bg::get<bg::min_corner, 0>(box)

Modified: branches/release/libs/geometry/doc/src/examples/core/get_point.cpp
==============================================================================
--- branches/release/libs/geometry/doc/src/examples/core/get_point.cpp (original)
+++ branches/release/libs/geometry/doc/src/examples/core/get_point.cpp 2011-05-04 08:15:07 EDT (Wed, 04 May 2011)
@@ -11,7 +11,7 @@
 //` Get the coordinate of a point
 
 #include <iostream>
-#include <boost/geometry/geometry.hpp>
+#include <boost/geometry.hpp>
 
 namespace bg = boost::geometry;
 

Modified: branches/release/libs/geometry/doc/src/examples/core/point_order.cpp
==============================================================================
--- branches/release/libs/geometry/doc/src/examples/core/point_order.cpp (original)
+++ branches/release/libs/geometry/doc/src/examples/core/point_order.cpp 2011-05-04 08:15:07 EDT (Wed, 04 May 2011)
@@ -11,7 +11,7 @@
 //` Examine the expected point order of a polygon type
 
 #include <iostream>
-#include <boost/geometry/geometry.hpp>
+#include <boost/geometry.hpp>
 
 int main()
 {

Modified: branches/release/libs/geometry/doc/src/examples/core/point_type.cpp
==============================================================================
--- branches/release/libs/geometry/doc/src/examples/core/point_type.cpp (original)
+++ branches/release/libs/geometry/doc/src/examples/core/point_type.cpp 2011-05-04 08:15:07 EDT (Wed, 04 May 2011)
@@ -12,7 +12,7 @@
 
 #include <iostream>
 #include <typeinfo>
-#include <boost/geometry/geometry.hpp>
+#include <boost/geometry.hpp>
 
 int main()
 {

Modified: branches/release/libs/geometry/doc/src/examples/core/set_box.cpp
==============================================================================
--- branches/release/libs/geometry/doc/src/examples/core/set_box.cpp (original)
+++ branches/release/libs/geometry/doc/src/examples/core/set_box.cpp 2011-05-04 08:15:07 EDT (Wed, 04 May 2011)
@@ -11,7 +11,7 @@
 //` Set the coordinate of a box
 
 #include <iostream>
-#include <boost/geometry/geometry.hpp>
+#include <boost/geometry.hpp>
 
 namespace bg = boost::geometry;
 

Modified: branches/release/libs/geometry/doc/src/examples/core/set_point.cpp
==============================================================================
--- branches/release/libs/geometry/doc/src/examples/core/set_point.cpp (original)
+++ branches/release/libs/geometry/doc/src/examples/core/set_point.cpp 2011-05-04 08:15:07 EDT (Wed, 04 May 2011)
@@ -11,7 +11,7 @@
 //` Set the coordinate of a point
 
 #include <iostream>
-#include <boost/geometry/geometry.hpp>
+#include <boost/geometry.hpp>
 
 namespace bg = boost::geometry;
 

Modified: branches/release/libs/geometry/doc/src/examples/core/tag.cpp
==============================================================================
--- branches/release/libs/geometry/doc/src/examples/core/tag.cpp (original)
+++ branches/release/libs/geometry/doc/src/examples/core/tag.cpp 2011-05-04 08:15:07 EDT (Wed, 04 May 2011)
@@ -8,41 +8,101 @@
 // http://www.boost.org/LICENSE_1_0.txt)
 
 //[tag
-//` Examine the tag of some geometry types
+//` Shows how tag dispatching essentially works in Boost.Geometry
 
 #include <iostream>
-#include <typeinfo>
-#include <boost/geometry/geometry.hpp>
+
+#include <boost/assign.hpp>
+
+#include <boost/geometry.hpp>
+#include <boost/geometry/geometries/adapted/boost_tuple.hpp>
+
+BOOST_GEOMETRY_REGISTER_BOOST_TUPLE_CS(cs::cartesian)
+
+template <typename Tag> struct dispatch {};
+
+// Specialization for points
+template <> struct dispatch<boost::geometry::point_tag>
+{
+ template <typename Point>
+ static inline void apply(Point const& p)
+ {
+ // Use the Boost.Geometry free function "get"
+ // working on all supported point types
+ std::cout << "Hello POINT, you are located at: "
+ << boost::geometry::get<0>(p) << ", "
+ << boost::geometry::get<1>(p)
+ << std::endl;
+ }
+};
+
+// Specialization for polygons
+template <> struct dispatch<boost::geometry::polygon_tag>
+{
+ template <typename Polygon>
+ static inline void apply(Polygon const& p)
+ {
+ // Use the Boost.Geometry manipulator "dsv"
+ // working on all supported geometries
+ std::cout << "Hello POLYGON, you look like: "
+ << boost::geometry::dsv(p)
+ << std::endl;
+ }
+};
+
+// Specialization for multipolygons
+template <> struct dispatch<boost::geometry::multi_polygon_tag>
+{
+ template <typename MultiPolygon>
+ static inline void apply(MultiPolygon const& m)
+ {
+ // Use the Boost.Range free function "size" because all
+ // multigeometries comply to Boost.Range
+ std::cout << "Hello MULTIPOLYGON, you contain: "
+ << boost::size(m) << " polygon(s)"
+ << std::endl;
+ }
+};
+
+template <typename Geometry>
+inline void hello(Geometry const& geometry)
+{
+ // Call the metafunction "tag" to dispatch, and call method (here "apply")
+ dispatch
+ <
+ typename boost::geometry::tag<Geometry>::type
+ >::apply(geometry);
+}
 
 int main()
 {
- typedef boost::geometry::model::d2::point_xy<double> point_type;
- typedef boost::geometry::model::polygon<point_type> polygon_type;
- typedef boost::geometry::model::multi_polygon<polygon_type> mp_type;
-
- typedef boost::geometry::tag<point_type>::type tag1;
- typedef boost::geometry::tag<polygon_type>::type tag2;
- typedef boost::geometry::tag<mp_type>::type tag3;
-
- std::cout
- << "tag 1: " << typeid(tag1).name() << std::endl
- << "tag 2: " << typeid(tag2).name() << std::endl
- << "tag 3: " << typeid(tag3).name() << std::endl
- ;
+ // Define polygon type (here: based on a Boost.Tuple)
+ typedef boost::geometry::model::polygon<boost::tuple<int, int> > polygon_type;
+
+ // Declare and fill a polygon and a multipolygon
+ polygon_type poly;
+ boost::geometry::exterior_ring(poly) = boost::assign::tuple_list_of(0, 0)(0, 10)(10, 5)(0, 0);
+
+ boost::geometry::model::multi_polygon<polygon_type> multi;
+ multi.push_back(poly);
+
+ // Call "hello" for point, polygon, multipolygon
+ hello(boost::make_tuple(2, 3));
+ hello(poly);
+ hello(multi);
 
     return 0;
 }
 
 //]
 
-
 //[tag_output
 /*`
-Output (in MSVC):
+Output:
 [pre
-tag 1: struct boost::geometry::point_tag
-tag 2: struct boost::geometry::polygon_tag
-tag 3: struct boost::geometry::multi_polygon_tag
+Hello POINT, you are located at: 2, 3
+Hello POLYGON, you look like: (((0, 0), (0, 10), (10, 5), (0, 0)))
+Hello MULTIPOLYGON, you contain: 1 polygon(s)
 ]
 */
 //]

Modified: branches/release/libs/geometry/doc/src/examples/core/tag_cast.cpp
==============================================================================
--- branches/release/libs/geometry/doc/src/examples/core/tag_cast.cpp (original)
+++ branches/release/libs/geometry/doc/src/examples/core/tag_cast.cpp 2011-05-04 08:15:07 EDT (Wed, 04 May 2011)
@@ -12,7 +12,7 @@
 
 #include <iostream>
 #include <typeinfo>
-#include <boost/geometry/geometry.hpp>
+#include <boost/geometry.hpp>
 
 namespace geo = boost::geometry;
 int main()

Modified: branches/release/libs/geometry/doc/src/examples/geometries/Jamfile.v2
==============================================================================
--- branches/release/libs/geometry/doc/src/examples/geometries/Jamfile.v2 (original)
+++ branches/release/libs/geometry/doc/src/examples/geometries/Jamfile.v2 2011-05-04 08:15:07 EDT (Wed, 04 May 2011)
@@ -15,4 +15,5 @@
 
 exe point : point.cpp ;
 
+build-project adapted ;
 build-project register ;

Modified: branches/release/libs/geometry/doc/src/examples/geometries/point.cpp
==============================================================================
--- branches/release/libs/geometry/doc/src/examples/geometries/point.cpp (original)
+++ branches/release/libs/geometry/doc/src/examples/geometries/point.cpp 2011-05-04 08:15:07 EDT (Wed, 04 May 2011)
@@ -11,7 +11,7 @@
 //` Declaration and use of the Boost.Geometry model::point, modelling the Point Concept
 
 #include <iostream>
-#include <boost/geometry/geometry.hpp>
+#include <boost/geometry.hpp>
 
 namespace bg = boost::geometry;
 

Modified: branches/release/libs/geometry/doc/src/examples/geometries/register/Jamfile.v2
==============================================================================
--- branches/release/libs/geometry/doc/src/examples/geometries/register/Jamfile.v2 (original)
+++ branches/release/libs/geometry/doc/src/examples/geometries/register/Jamfile.v2 2011-05-04 08:15:07 EDT (Wed, 04 May 2011)
@@ -13,5 +13,7 @@
     : # requirements
     ;
 
+exe box : box.cpp ;
+exe box_templated : box_templated.cpp ;
+exe box_2d_4values : box_2d_4values.cpp ;
 exe point : point.cpp ;
-

Modified: branches/release/libs/geometry/doc/src/examples/geometries/register/point.cpp
==============================================================================
--- branches/release/libs/geometry/doc/src/examples/geometries/register/point.cpp (original)
+++ branches/release/libs/geometry/doc/src/examples/geometries/register/point.cpp 2011-05-04 08:15:07 EDT (Wed, 04 May 2011)
@@ -11,7 +11,7 @@
 //` Show the use of the macro BOOST_GEOMETRY_REGISTER_POINT_2D
 
 #include <iostream>
-#include <boost/geometry/geometry.hpp>
+#include <boost/geometry.hpp>
 #include <boost/geometry/geometries/register/point.hpp>
 
 /*< Somewhere, any legacy point struct is defined >*/
@@ -28,7 +28,7 @@
 
     namespace bg = boost::geometry;
 
- /*< Any Boost.Geometry function can be used for legacy point now. Here: assign and distance >*/
+ /*< Any Boost.Geometry function can be used for legacy point now. Here: assign_values and distance >*/
     bg::assign_values(p1, 1, 1);
     bg::assign_values(p2, 2, 2);
 

Modified: branches/release/libs/geometry/doc/src/examples/quick_start.cpp
==============================================================================
--- branches/release/libs/geometry/doc/src/examples/quick_start.cpp (original)
+++ branches/release/libs/geometry/doc/src/examples/quick_start.cpp 2011-05-04 08:15:07 EDT (Wed, 04 May 2011)
@@ -20,13 +20,15 @@
 //#pragma warning( disable : 4244 )
 #endif // defined(_MSC_VER)
 
-#include <boost/geometry/geometry.hpp>
+#include <boost/geometry.hpp>
 #include <boost/geometry/algorithms/overlaps.hpp>
 #include <boost/geometry/geometries/geometries.hpp>
 #include <boost/geometry/geometries/register/point.hpp>
-#include <boost/geometry/geometries/adapted/tuple_cartesian.hpp>
-#include <boost/geometry/geometries/adapted/c_array_cartesian.hpp>
-#include <boost/geometry/geometries/adapted/std_as_linestring.hpp>
+#include <boost/geometry/geometries/adapted/c_array.hpp>
+
+
+BOOST_GEOMETRY_REGISTER_BOOST_TUPLE_CS(cs::cartesian)
+BOOST_GEOMETRY_REGISTER_C_ARRAY_CS(cs::cartesian)
 
 
 // Small QRect simulations following http://doc.trolltech.com/4.4/qrect.html
@@ -129,7 +131,7 @@
     QRect r2(110, 210, 20, 20);
     if (overlaps(r1, r2))
     {
- assign(r2, 200, 300, 220, 320);
+ assign_values(r2, 200, 300, 220, 320);
     }
     //]
 }
@@ -144,7 +146,7 @@
     XYZ p;
 
     SPH sph1, sph2;
- assign(sph1, 12.5, 41.90, 1.0);
+ assign_values(sph1, 12.5, 41.90, 1.0);
     // Go from spherical to Cartesian-3D:
     transform(sph1, p);
     // Go back from Cartesian 3D to spherical:

Modified: branches/release/libs/geometry/example/01_point_example.cpp
==============================================================================
--- branches/release/libs/geometry/example/01_point_example.cpp (original)
+++ branches/release/libs/geometry/example/01_point_example.cpp 2011-05-04 08:15:07 EDT (Wed, 04 May 2011)
@@ -13,11 +13,15 @@
 #include <iostream>
 
 #include <boost/geometry/geometry.hpp>
-#include <boost/geometry/geometries/adapted/tuple_cartesian.hpp>
-#include <boost/geometry/geometries/adapted/c_array_cartesian.hpp>
-#include <boost/geometry/geometries/adapted/boost_array_cartesian.hpp>
+#include <boost/geometry/geometries/adapted/boost_tuple.hpp>
+#include <boost/geometry/geometries/adapted/c_array.hpp>
+#include <boost/geometry/geometries/adapted/boost_array.hpp>
 #include <boost/geometry/geometries/adapted/boost_polygon/point.hpp>
 
+BOOST_GEOMETRY_REGISTER_C_ARRAY_CS(cs::cartesian)
+BOOST_GEOMETRY_REGISTER_BOOST_ARRAY_CS(cs::cartesian)
+BOOST_GEOMETRY_REGISTER_BOOST_TUPLE_CS(cs::cartesian)
+
 
 int main()
 {

Modified: branches/release/libs/geometry/example/02_linestring_example.cpp
==============================================================================
--- branches/release/libs/geometry/example/02_linestring_example.cpp (original)
+++ branches/release/libs/geometry/example/02_linestring_example.cpp 2011-05-04 08:15:07 EDT (Wed, 04 May 2011)
@@ -18,9 +18,9 @@
 
 #include <boost/geometry/geometry.hpp>
 // Optional includes to handle c-arrays as points, std::vectors as linestrings
-#include <boost/geometry/geometries/adapted/c_array_cartesian.hpp>
+#include <boost/geometry/geometries/adapted/c_array.hpp>
 #include <boost/geometry/geometries/adapted/std_as_linestring.hpp>
-
+BOOST_GEOMETRY_REGISTER_C_ARRAY_CS(cs::cartesian)
 
 
 template<typename P>

Modified: branches/release/libs/geometry/example/03_polygon_example.cpp
==============================================================================
--- branches/release/libs/geometry/example/03_polygon_example.cpp (original)
+++ branches/release/libs/geometry/example/03_polygon_example.cpp 2011-05-04 08:15:07 EDT (Wed, 04 May 2011)
@@ -15,10 +15,13 @@
 #include <string>
 
 #include <boost/geometry/geometry.hpp>
-#include <boost/geometry/geometries/adapted/c_array_cartesian.hpp>
+#include <boost/geometry/geometries/adapted/c_array.hpp>
 #include <boost/geometry/geometries/adapted/std_as_linestring.hpp>
 #include <boost/geometry/multi/multi.hpp>
 
+BOOST_GEOMETRY_REGISTER_C_ARRAY_CS(cs::cartesian)
+
+
 std::string boolstr(bool v)
 {
     return v ? "true" : "false";

Modified: branches/release/libs/geometry/example/04_boost_example.cpp
==============================================================================
--- branches/release/libs/geometry/example/04_boost_example.cpp (original)
+++ branches/release/libs/geometry/example/04_boost_example.cpp 2011-05-04 08:15:07 EDT (Wed, 04 May 2011)
@@ -13,10 +13,11 @@
 #include <iostream>
 
 #include <boost/geometry/geometry.hpp>
-#include <boost/geometry/geometries/adapted/tuple_cartesian.hpp>
+#include <boost/geometry/geometries/adapted/boost_tuple.hpp>
 
-#include <boost/assign.hpp>
+#include <boost/assign.hpp>
 
+BOOST_GEOMETRY_REGISTER_BOOST_TUPLE_CS(cs::cartesian);
 
 
 int main(void)

Modified: branches/release/libs/geometry/example/05_a_overlay_polygon_example.cpp
==============================================================================
--- branches/release/libs/geometry/example/05_a_overlay_polygon_example.cpp (original)
+++ branches/release/libs/geometry/example/05_a_overlay_polygon_example.cpp 2011-05-04 08:15:07 EDT (Wed, 04 May 2011)
@@ -19,12 +19,14 @@
 
 
 #include <boost/geometry/geometry.hpp>
-#include <boost/geometry/geometries/adapted/c_array_cartesian.hpp>
+#include <boost/geometry/geometries/adapted/c_array.hpp>
 
 #if defined(HAVE_SVG)
 # include <boost/geometry/extensions/io/svg/svg_mapper.hpp>
 #endif
 
+BOOST_GEOMETRY_REGISTER_C_ARRAY_CS(cs::cartesian)
+
 
 int main(void)
 {

Modified: branches/release/libs/geometry/example/05_b_overlay_linestring_polygon_example.cpp
==============================================================================
--- branches/release/libs/geometry/example/05_b_overlay_linestring_polygon_example.cpp (original)
+++ branches/release/libs/geometry/example/05_b_overlay_linestring_polygon_example.cpp 2011-05-04 08:15:07 EDT (Wed, 04 May 2011)
@@ -19,12 +19,14 @@
 
 
 #include <boost/geometry/geometry.hpp>
-#include <boost/geometry/geometries/adapted/c_array_cartesian.hpp>
+#include <boost/geometry/geometries/adapted/c_array.hpp>
 
 #if defined(HAVE_SVG)
 # include <boost/geometry/extensions/io/svg/svg_mapper.hpp>
 #endif
 
+BOOST_GEOMETRY_REGISTER_C_ARRAY_CS(cs::cartesian);
+
 
 int main(void)
 {

Modified: branches/release/libs/geometry/example/06_a_transformation_example.cpp
==============================================================================
--- branches/release/libs/geometry/example/06_a_transformation_example.cpp (original)
+++ branches/release/libs/geometry/example/06_a_transformation_example.cpp 2011-05-04 08:15:07 EDT (Wed, 04 May 2011)
@@ -13,9 +13,12 @@
 #include <iostream>
 
 #include <boost/geometry/geometry.hpp>
-#include <boost/geometry/geometries/adapted/c_array_cartesian.hpp>
+#include <boost/geometry/geometries/adapted/c_array.hpp>
 #include <boost/geometry/geometries/adapted/std_as_linestring.hpp>
 
+BOOST_GEOMETRY_REGISTER_C_ARRAY_CS(cs::cartesian)
+
+
 int main()
 {
     using namespace boost::geometry;
@@ -34,7 +37,7 @@
     model::polygon<point_2d> poly, poly2;
     const double coor[][2] = { {0, 0}, {0, 7}, {2, 2}, {2, 0}, {0, 0} };
     // note that for this syntax you have to include the two
- // include files above (c_array_cartesian.hpp, std_as_linestring.hpp)
+ // include files above (c_array.hpp, std_as_linestring.hpp)
     assign_points(poly, coor);
     //read_wkt("POLYGON((0 0,0 7,4 2,2 0,0 0))", poly);
     transform(poly, poly2, translate);

Modified: branches/release/libs/geometry/example/c02_custom_box_example.cpp
==============================================================================
--- branches/release/libs/geometry/example/c02_custom_box_example.cpp (original)
+++ branches/release/libs/geometry/example/c02_custom_box_example.cpp 2011-05-04 08:15:07 EDT (Wed, 04 May 2011)
@@ -53,7 +53,7 @@
 BOOST_GEOMETRY_REGISTER_POINT_2D(my_point, double, cs::cartesian, x, y)
 BOOST_GEOMETRY_REGISTER_POINT_2D(my_int_point, int, cs::cartesian, x, y)
 BOOST_GEOMETRY_REGISTER_BOX(my_box, my_point, ll, ur)
-BOOST_GEOMETRY_REGISTER_BOX_TEMPLATIZED(my_box_t, ll, ur)
+BOOST_GEOMETRY_REGISTER_BOX_TEMPLATED(my_box_t, ll, ur)
 BOOST_GEOMETRY_REGISTER_BOX_2D_4VALUES(my_box_ltrb, my_int_point, left, top, right, bottom)
 BOOST_GEOMETRY_REGISTER_BOX_2D_4VALUES(my_box_4, my_point, coors[0], coors[1], coors[2], coors[3])
 

Modified: branches/release/libs/geometry/example/c04_a_custom_triangle_example.cpp
==============================================================================
--- branches/release/libs/geometry/example/c04_a_custom_triangle_example.cpp (original)
+++ branches/release/libs/geometry/example/c04_a_custom_triangle_example.cpp 2011-05-04 08:15:07 EDT (Wed, 04 May 2011)
@@ -16,7 +16,6 @@
 
 #include <boost/geometry/algorithms/area.hpp>
 #include <boost/geometry/algorithms/centroid.hpp>
-#include <boost/geometry/geometries/register/ring.hpp>
 #include <boost/geometry/strategies/strategies.hpp>
 #include <boost/geometry/util/write_dsv.hpp>
 
@@ -30,7 +29,10 @@
 };
 
 
-BOOST_GEOMETRY_REGISTER_RING(triangle)
+// Register triangle as a ring
+namespace boost { namespace geometry { namespace traits {
+template <> struct tag<triangle> { typedef ring_tag type; };
+}}}
 
 
 // Specializations of algorithms, where useful. If not specialized the default ones

Modified: branches/release/libs/geometry/example/c04_b_custom_triangle_example.cpp
==============================================================================
--- branches/release/libs/geometry/example/c04_b_custom_triangle_example.cpp (original)
+++ branches/release/libs/geometry/example/c04_b_custom_triangle_example.cpp 2011-05-04 08:15:07 EDT (Wed, 04 May 2011)
@@ -17,12 +17,11 @@
 
 #include <boost/geometry/algorithms/area.hpp>
 #include <boost/geometry/algorithms/centroid.hpp>
-#include <boost/geometry/geometries/adapted/tuple.hpp>
-#include <boost/geometry/geometries/adapted/tuple_cartesian.hpp>
-#include <boost/geometry/geometries/register/ring.hpp>
+#include <boost/geometry/geometries/adapted/boost_tuple.hpp>
 #include <boost/geometry/strategies/strategies.hpp>
 #include <boost/geometry/util/write_dsv.hpp>
 
+BOOST_GEOMETRY_REGISTER_BOOST_TUPLE_CS(cs::cartesian)
 
 
 template <typename P>
@@ -30,8 +29,11 @@
 {
 };
 
-// Register triangle<P>
-BOOST_GEOMETRY_REGISTER_RING_TEMPLATIZED(triangle)
+
+// Register triangle<P> as a ring
+namespace boost { namespace geometry { namespace traits {
+template <typename P> struct tag<triangle<P> > { typedef ring_tag type; };
+}}}
 
 
 namespace boost { namespace geometry { namespace dispatch {

Modified: branches/release/libs/geometry/example/c06_custom_polygon_example.cpp
==============================================================================
--- branches/release/libs/geometry/example/c06_custom_polygon_example.cpp (original)
+++ branches/release/libs/geometry/example/c06_custom_polygon_example.cpp 2011-05-04 08:15:07 EDT (Wed, 04 May 2011)
@@ -14,7 +14,6 @@
 #include <boost/geometry/geometry.hpp>
 
 #include <boost/geometry/geometries/register/point.hpp>
-#include <boost/geometry/geometries/register/ring.hpp>
 
 
 struct my_point
@@ -49,7 +48,11 @@
 
 // We can conveniently use macro's to register point and ring
 BOOST_GEOMETRY_REGISTER_POINT_2D(my_point, double, cs::cartesian, x, y)
-BOOST_GEOMETRY_REGISTER_RING(my_ring)
+
+// Register my_ring as a ring
+namespace boost { namespace geometry { namespace traits {
+template <> struct tag<my_ring> { typedef ring_tag type; };
+}}}
 
 
 

Modified: branches/release/libs/geometry/example/c08_custom_non_std_example.cpp
==============================================================================
--- branches/release/libs/geometry/example/c08_custom_non_std_example.cpp (original)
+++ branches/release/libs/geometry/example/c08_custom_non_std_example.cpp 2011-05-04 08:15:07 EDT (Wed, 04 May 2011)
@@ -20,7 +20,6 @@
 
 #include <boost/geometry/geometry.hpp>
 #include <boost/geometry/geometries/register/point.hpp>
-#include <boost/geometry/geometries/register/ring.hpp>
 #include <boost/geometry/util/add_const_if_c.hpp>
 
 // Sample point, having x/y
@@ -215,7 +214,10 @@
 
 // 4) register with Boost.Geometry
 BOOST_GEOMETRY_REGISTER_POINT_2D(my_point, double, cs::cartesian, x, y)
-BOOST_GEOMETRY_REGISTER_RING(my_polygon)
+
+namespace boost { namespace geometry { namespace traits {
+template <> struct tag<my_polygon> { typedef ring_tag type; };
+}}}
 
 
 // end adaption

Modified: branches/release/libs/geometry/example/c09_custom_fusion_example.cpp
==============================================================================
--- branches/release/libs/geometry/example/c09_custom_fusion_example.cpp (original)
+++ branches/release/libs/geometry/example/c09_custom_fusion_example.cpp 2011-05-04 08:15:07 EDT (Wed, 04 May 2011)
@@ -15,12 +15,13 @@
 
 #include <boost/geometry/algorithms/distance.hpp>
 
-#include <boost/geometry/geometries/adapted/fusion.hpp>
-#include <boost/geometry/geometries/adapted/fusion_cartesian.hpp>
+#include <boost/geometry/geometries/adapted/boost_fusion.hpp>
 
 #include <boost/geometry/strategies/strategies.hpp>
 #include <boost/geometry/util/write_dsv.hpp>
 
+BOOST_GEOMETRY_REGISTER_BOOST_FUSION_CS(cs::cartesian);
+
 
 // Sample point, having x/y
 struct my_2d

Modified: branches/release/libs/geometry/example/with_external_libs/x03_a_soci_example.cpp
==============================================================================
--- branches/release/libs/geometry/example/with_external_libs/x03_a_soci_example.cpp (original)
+++ branches/release/libs/geometry/example/with_external_libs/x03_a_soci_example.cpp 2011-05-04 08:15:07 EDT (Wed, 04 May 2011)
@@ -35,9 +35,10 @@
 #include <exception>
 
 #include <boost/geometry/geometry.hpp>
-#include <boost/geometry/geometries/adapted/tuple_cartesian.hpp>
+#include <boost/geometry/geometries/adapted/boost_tuple.hpp>
 #include <boost/geometry/domains/gis/io/wkt/wkt.hpp>
 
+BOOST_GEOMETRY_REGISTER_BOOST_TUPLE_CS(cs::cartesian);
 
 
 int main()

Modified: branches/release/libs/geometry/test/algorithms/assign.cpp
==============================================================================
--- branches/release/libs/geometry/test/algorithms/assign.cpp (original)
+++ branches/release/libs/geometry/test/algorithms/assign.cpp 2011-05-04 08:15:07 EDT (Wed, 04 May 2011)
@@ -19,10 +19,13 @@
 #include <boost/geometry/algorithms/num_points.hpp>
 
 #include <boost/geometry/geometries/geometries.hpp>
-#include <boost/geometry/geometries/adapted/c_array_cartesian.hpp>
-#include <boost/geometry/geometries/adapted/tuple_cartesian.hpp>
+#include <boost/geometry/geometries/adapted/c_array.hpp>
+#include <boost/geometry/geometries/adapted/boost_tuple.hpp>
 #include <test_common/test_point.hpp>
 
+BOOST_GEOMETRY_REGISTER_C_ARRAY_CS(cs::cartesian)
+BOOST_GEOMETRY_REGISTER_BOOST_TUPLE_CS(cs::cartesian)
+
 
 template <typename Linestring>
 void check_linestring_2d(Linestring const& line)

Modified: branches/release/libs/geometry/test/algorithms/centroid.cpp
==============================================================================
--- branches/release/libs/geometry/test/algorithms/centroid.cpp (original)
+++ branches/release/libs/geometry/test/algorithms/centroid.cpp 2011-05-04 08:15:07 EDT (Wed, 04 May 2011)
@@ -15,11 +15,15 @@
 #include <algorithms/test_centroid.hpp>
 
 #include <boost/geometry/geometries/geometries.hpp>
-#include <boost/geometry/geometries/adapted/c_array_cartesian.hpp>
-#include <boost/geometry/geometries/adapted/tuple_cartesian.hpp>
+#include <boost/geometry/geometries/adapted/c_array.hpp>
+#include <boost/geometry/geometries/adapted/boost_tuple.hpp>
 
 #include <test_geometries/all_custom_polygon.hpp>
 
+BOOST_GEOMETRY_REGISTER_C_ARRAY_CS(cs::cartesian)
+BOOST_GEOMETRY_REGISTER_BOOST_TUPLE_CS(cs::cartesian)
+
+
 template <typename Polygon>
 void test_polygon()
 {
@@ -78,12 +82,21 @@
 template <typename P>
 void test_3d()
 {
- test_centroid<bg::model::linestring<P> >("LINESTRING(1 2 3,4 5 -6,7 -8 9,-10 11 12,13 -14 -15, 16 17 18)", 5.6748865168734692, 0.31974938587214002, 1.9915270387763671);
+ test_centroid<bg::model::linestring<P> >("LINESTRING(1 2 3,4 5 -6,7 -8 9,-10 11 12,13 -14 -15, 16 17 18)",
+ 5.6748865168734692, 0.31974938587214002, 1.9915270387763671);
     test_centroid<bg::model::box<P> >("POLYGON((1 2 3,5 6 7))", 3, 4, 5);
     test_centroid<P>("POINT(1 2 3)", 1, 2, 3);
 }
 
 
+template <typename P>
+void test_5d()
+{
+ test_centroid<bg::model::linestring<P> >("LINESTRING(1 2 3 4 95,4 5 -6 24 40,7 -8 9 -5 -7,-10 11 12 -5 5,13 -14 -15 4 3, 16 17 18 5 12)",
+ 4.9202312983547678, 0.69590937869808345, 1.2632138719797417, 6.0468332057401986, 23.082402715244868);
+}
+
+
 int test_main(int, char* [])
 {
     test_2d<bg::model::d2::point_xy<double> >();
@@ -92,6 +105,8 @@
 
     test_3d<boost::tuple<double, double, double> >();
 
+ test_5d<boost::tuple<double, double, double, double, double> >();
+
 #if defined(HAVE_TTMATH)
     test_2d<bg::model::d2::point_xy<ttmath_big> >();
     test_3d<boost::tuple<ttmath_big, ttmath_big, ttmath_big> >();

Modified: branches/release/libs/geometry/test/algorithms/convert.cpp
==============================================================================
--- branches/release/libs/geometry/test/algorithms/convert.cpp (original)
+++ branches/release/libs/geometry/test/algorithms/convert.cpp 2011-05-04 08:15:07 EDT (Wed, 04 May 2011)
@@ -21,10 +21,13 @@
 #include <boost/geometry/algorithms/num_points.hpp>
 
 #include <boost/geometry/geometries/geometries.hpp>
-#include <boost/geometry/geometries/adapted/c_array_cartesian.hpp>
-#include <boost/geometry/geometries/adapted/tuple_cartesian.hpp>
+#include <boost/geometry/geometries/adapted/c_array.hpp>
+#include <boost/geometry/geometries/adapted/boost_tuple.hpp>
 #include <test_common/test_point.hpp>
 
+BOOST_GEOMETRY_REGISTER_C_ARRAY_CS(cs::cartesian)
+BOOST_GEOMETRY_REGISTER_BOOST_TUPLE_CS(cs::cartesian)
+
 
 template <typename P>
 void test_all()

Modified: branches/release/libs/geometry/test/algorithms/distance.cpp
==============================================================================
--- branches/release/libs/geometry/test/algorithms/distance.cpp (original)
+++ branches/release/libs/geometry/test/algorithms/distance.cpp 2011-05-04 08:15:07 EDT (Wed, 04 May 2011)
@@ -22,13 +22,16 @@
 
 #include <boost/geometry/geometries/geometries.hpp>
 #include <boost/geometry/geometries/adapted/boost_array_as_linestring.hpp>
-#include <boost/geometry/geometries/adapted/c_array_cartesian.hpp>
-#include <boost/geometry/geometries/adapted/tuple_cartesian.hpp>
+#include <boost/geometry/geometries/adapted/c_array.hpp>
+#include <boost/geometry/geometries/adapted/boost_tuple.hpp>
 
 #include <test_common/test_point.hpp>
 #include <test_geometries/custom_segment.hpp>
 #include <test_geometries/wrapped_boost_array.hpp>
 
+BOOST_GEOMETRY_REGISTER_C_ARRAY_CS(cs::cartesian)
+BOOST_GEOMETRY_REGISTER_BOOST_TUPLE_CS(cs::cartesian)
+
 
 template <typename P>
 void test_distance_point()

Modified: branches/release/libs/geometry/test/algorithms/envelope.cpp
==============================================================================
--- branches/release/libs/geometry/test/algorithms/envelope.cpp (original)
+++ branches/release/libs/geometry/test/algorithms/envelope.cpp 2011-05-04 08:15:07 EDT (Wed, 04 May 2011)
@@ -16,11 +16,14 @@
 #include <algorithms/test_envelope.hpp>
 
 #include <boost/geometry/geometries/geometries.hpp>
-#include <boost/geometry/geometries/adapted/c_array_cartesian.hpp>
-#include <boost/geometry/geometries/adapted/tuple_cartesian.hpp>
+#include <boost/geometry/geometries/adapted/c_array.hpp>
+#include <boost/geometry/geometries/adapted/boost_tuple.hpp>
 #include <boost/geometry/geometries/adapted/std_pair_as_segment.hpp>
 #include <test_common/test_point.hpp>
 
+BOOST_GEOMETRY_REGISTER_C_ARRAY_CS(cs::cartesian)
+BOOST_GEOMETRY_REGISTER_BOOST_TUPLE_CS(cs::cartesian)
+
 
 template <typename P>
 void test_2d()

Modified: branches/release/libs/geometry/test/algorithms/expand.cpp
==============================================================================
--- branches/release/libs/geometry/test/algorithms/expand.cpp (original)
+++ branches/release/libs/geometry/test/algorithms/expand.cpp 2011-05-04 08:15:07 EDT (Wed, 04 May 2011)
@@ -18,11 +18,14 @@
 #include <boost/geometry/algorithms/make.hpp>
 
 #include <boost/geometry/geometries/geometries.hpp>
-#include <boost/geometry/geometries/adapted/c_array_cartesian.hpp>
-#include <boost/geometry/geometries/adapted/tuple_cartesian.hpp>
+#include <boost/geometry/geometries/adapted/c_array.hpp>
+#include <boost/geometry/geometries/adapted/boost_tuple.hpp>
 #include <boost/geometry/geometries/adapted/std_pair_as_segment.hpp>
 #include <test_common/test_point.hpp>
 
+BOOST_GEOMETRY_REGISTER_C_ARRAY_CS(cs::cartesian)
+BOOST_GEOMETRY_REGISTER_BOOST_TUPLE_CS(cs::cartesian)
+
 
 template <typename Point>
 void test_point_3d()

Modified: branches/release/libs/geometry/test/algorithms/intersection.cpp
==============================================================================
--- branches/release/libs/geometry/test/algorithms/intersection.cpp (original)
+++ branches/release/libs/geometry/test/algorithms/intersection.cpp 2011-05-04 08:15:07 EDT (Wed, 04 May 2011)
@@ -350,10 +350,31 @@
 }
 
 
+template <typename P>
+void test_exception()
+{
+ typedef bg::model::polygon<P> polygon;
 
+ try
+ {
+ // Define polygon with a spike (= invalid)
+ std::string spike = "POLYGON((0 0,0 4,2 4,2 6,2 4,4 4,4 0,0 0))";
+
+ test_one<polygon, polygon, polygon>("with_spike",
+ simplex_normal[0], spike,
+ 0, 0, 0);
+ }
+ catch(bg::overlay_invalid_input_exception const& )
+ {
+ return;
+ }
+ BOOST_CHECK_MESSAGE(false, "No exception thrown");
+}
 
 int test_main(int, char* [])
 {
+ test_exception<bg::model::d2::point_xy<double> >();
+
     test_all<bg::model::d2::point_xy<double> >();
 
 #if ! defined(BOOST_GEOMETRY_TEST_ONLY_ONE_TYPE)

Modified: branches/release/libs/geometry/test/algorithms/make.cpp
==============================================================================
--- branches/release/libs/geometry/test/algorithms/make.cpp (original)
+++ branches/release/libs/geometry/test/algorithms/make.cpp 2011-05-04 08:15:07 EDT (Wed, 04 May 2011)
@@ -20,10 +20,13 @@
 #include <boost/geometry/domains/gis/io/wkt/write_wkt.hpp>
 
 #include <boost/geometry/geometries/geometries.hpp>
-#include <boost/geometry/geometries/adapted/c_array_cartesian.hpp>
-#include <boost/geometry/geometries/adapted/tuple_cartesian.hpp>
+#include <boost/geometry/geometries/adapted/c_array.hpp>
+#include <boost/geometry/geometries/adapted/boost_tuple.hpp>
 #include <test_common/test_point.hpp>
 
+BOOST_GEOMETRY_REGISTER_C_ARRAY_CS(cs::cartesian)
+BOOST_GEOMETRY_REGISTER_BOOST_TUPLE_CS(cs::cartesian)
+
 
 template <typename T, typename P>
 void test_point_2d()

Modified: branches/release/libs/geometry/test/algorithms/overlay/get_turn_info.cpp
==============================================================================
--- branches/release/libs/geometry/test/algorithms/overlay/get_turn_info.cpp (original)
+++ branches/release/libs/geometry/test/algorithms/overlay/get_turn_info.cpp 2011-05-04 08:15:07 EDT (Wed, 04 May 2011)
@@ -818,7 +818,8 @@
 /***
 #include <boost/geometry/geometries/adapted/c_array_as_linestring.hpp>
 #include <boost/geometry/geometries/adapted/c_array_as_ring.hpp>
-#include <boost/geometry/geometries/adapted/c_array_cartesian.hpp>
+#include <boost/geometry/geometries/adapted/c_array.hpp>
+BOOST_GEOMETRY_REGISTER_C_ARRAY_CS(cs::cartesian)
 
 template <typename G>
 void test2(G const& geometry)

Modified: branches/release/libs/geometry/test/algorithms/overlay/overlay_common.hpp
==============================================================================
--- branches/release/libs/geometry/test/algorithms/overlay/overlay_common.hpp (original)
+++ branches/release/libs/geometry/test/algorithms/overlay/overlay_common.hpp 2011-05-04 08:15:07 EDT (Wed, 04 May 2011)
@@ -22,7 +22,7 @@
 #include <boost/geometry/algorithms/correct.hpp>
 #include <boost/geometry/geometries/geometries.hpp>
 
-#include <boost/geometry/geometries/adapted/tuple_cartesian.hpp>
+#include <boost/geometry/geometries/adapted/boost_tuple.hpp>
 
 
 #include <boost/geometry/domains/gis/io/wkt/read_wkt.hpp>
@@ -33,6 +33,8 @@
 # include <boost/geometry/extensions/io/svg/svg_mapper.hpp>
 #endif
 
+BOOST_GEOMETRY_REGISTER_BOOST_TUPLE_CS(cs::cartesian);
+
 
 
 template <typename G1, typename G2, typename Functor, typename T>

Modified: branches/release/libs/geometry/test/algorithms/overlay/self_intersection_points.cpp
==============================================================================
--- branches/release/libs/geometry/test/algorithms/overlay/self_intersection_points.cpp (original)
+++ branches/release/libs/geometry/test/algorithms/overlay/self_intersection_points.cpp 2011-05-04 08:15:07 EDT (Wed, 04 May 2011)
@@ -53,7 +53,7 @@
         ///bg::get_intersection_points(geometry, turns);
 
         bg::detail::get_turns::no_interrupt_policy policy;
- bg::get_turns
+ bg::self_turns
             <
                 bg::detail::overlay::assign_null_policy
>(geometry, turns, policy);

Modified: branches/release/libs/geometry/test/algorithms/test_centroid.hpp
==============================================================================
--- branches/release/libs/geometry/test/algorithms/test_centroid.hpp (original)
+++ branches/release/libs/geometry/test/algorithms/test_centroid.hpp 2011-05-04 08:15:07 EDT (Wed, 04 May 2011)
@@ -16,41 +16,31 @@
 #include <boost/geometry/strategies/strategies.hpp>
 #include <boost/geometry/algorithms/centroid.hpp>
 #include <boost/geometry/algorithms/distance.hpp>
+#include <boost/geometry/geometries/adapted/boost_tuple.hpp>
 
 #include <boost/geometry/domains/gis/io/wkt/read_wkt.hpp>
 
 
-template<std::size_t D>
+template <std::size_t D>
 struct check_result
 {
-};
-
-template <>
-struct check_result<2>
-{
- template <typename Point, typename T>
- static void apply(Point const& p, T const& x, T const& y, T const&)
+ template <typename Point1, typename Point2>
+ static void apply(Point1 const& actual, Point2 const& expected)
     {
- BOOST_CHECK_CLOSE(bg::get<0>(p), x, 0.001);
- BOOST_CHECK_CLOSE(bg::get<1>(p), y, 0.001);
+ check_result<D-1>::apply(actual, expected);
+ BOOST_CHECK_CLOSE(bg::get<D-1>(actual), bg::get<D-1>(expected), 0.001);
     }
 };
 
-
 template <>
-struct check_result<3>
+struct check_result<0>
 {
- template <typename Point, typename T>
- static void apply(Point const& p, T const& x, T const& y, T const& z)
- {
- BOOST_CHECK_CLOSE(bg::get<0>(p), x, 0.001);
- BOOST_CHECK_CLOSE(bg::get<1>(p), y, 0.001);
- BOOST_CHECK_CLOSE(bg::get<2>(p), z, 0.001);
- }
+ template <typename Point1, typename Point2>
+ static void apply(Point1 const&, Point2 const&)
+ {}
 };
 
 
-
 template <typename CalculationType, typename Geometry, typename Point>
 void test_with_other_calculation_type(Geometry const& geometry, Point& c1)
 {
@@ -67,14 +57,14 @@
 }
 
 template <typename Geometry, typename T>
-void test_centroid(std::string const& wkt, T const& x, T const& y, T const& z = T())
+void test_centroid(std::string const& wkt, T const& d1, T const& d2, T const& d3 = T(), T const& d4 = T(), T const& d5 = T())
 {
     Geometry geometry;
     bg::read_wkt(wkt, geometry);
     typedef typename bg::point_type<Geometry>::type point_type;
     point_type c1;
     bg::centroid(geometry, c1);
- check_result<bg::dimension<Geometry>::type::value>::apply(c1, x, y, z);
+ check_result<bg::dimension<Geometry>::type::value>::apply(c1, boost::make_tuple(d1, d2, d3, d4, d5));
 
 #ifdef REPORT_RESULTS
     std::cout << "normal: " << std::setprecision(20) << bg::get<0>(c1) << " " << bg::get<1>(c1) << std::endl;

Modified: branches/release/libs/geometry/test/arithmetic/arithmetic.cpp
==============================================================================
--- branches/release/libs/geometry/test/arithmetic/arithmetic.cpp (original)
+++ branches/release/libs/geometry/test/arithmetic/arithmetic.cpp 2011-05-04 08:15:07 EDT (Wed, 04 May 2011)
@@ -21,10 +21,13 @@
 #include <boost/geometry/algorithms/assign.hpp>
 
 #include <boost/geometry/geometries/point.hpp>
-#include <boost/geometry/geometries/adapted/c_array_cartesian.hpp>
-#include <boost/geometry/geometries/adapted/tuple_cartesian.hpp>
+#include <boost/geometry/geometries/adapted/c_array.hpp>
+#include <boost/geometry/geometries/adapted/boost_tuple.hpp>
 #include <test_common/test_point.hpp>
 
+BOOST_GEOMETRY_REGISTER_C_ARRAY_CS(cs::cartesian)
+BOOST_GEOMETRY_REGISTER_BOOST_TUPLE_CS(cs::cartesian)
+
 
 template <typename P>
 void test_addition()

Modified: branches/release/libs/geometry/test/arithmetic/dot_product.cpp
==============================================================================
--- branches/release/libs/geometry/test/arithmetic/dot_product.cpp (original)
+++ branches/release/libs/geometry/test/arithmetic/dot_product.cpp 2011-05-04 08:15:07 EDT (Wed, 04 May 2011)
@@ -21,10 +21,13 @@
 #include <boost/geometry/algorithms/assign.hpp>
 
 #include <boost/geometry/geometries/point.hpp>
-#include <boost/geometry/geometries/adapted/c_array_cartesian.hpp>
-#include <boost/geometry/geometries/adapted/tuple_cartesian.hpp>
+#include <boost/geometry/geometries/adapted/c_array.hpp>
+#include <boost/geometry/geometries/adapted/boost_tuple.hpp>
 #include <test_common/test_point.hpp>
 
+BOOST_GEOMETRY_REGISTER_C_ARRAY_CS(cs::cartesian)
+BOOST_GEOMETRY_REGISTER_BOOST_TUPLE_CS(cs::cartesian)
+
 
 template <typename P>
 void test_all()

Modified: branches/release/libs/geometry/test/core/access.cpp
==============================================================================
--- branches/release/libs/geometry/test/core/access.cpp (original)
+++ branches/release/libs/geometry/test/core/access.cpp 2011-05-04 08:15:07 EDT (Wed, 04 May 2011)
@@ -22,8 +22,8 @@
 #include <boost/geometry/core/coordinate_type.hpp>
 #include <boost/geometry/algorithms/make.hpp>
 
-#include <boost/geometry/geometries/adapted/c_array_cartesian.hpp>
-#include <boost/geometry/geometries/adapted/tuple_cartesian.hpp>
+#include <boost/geometry/geometries/adapted/c_array.hpp>
+#include <boost/geometry/geometries/adapted/boost_tuple.hpp>
 
 
 #include <boost/geometry/core/cs.hpp>
@@ -31,6 +31,8 @@
 #include <boost/geometry/geometries/segment.hpp>
 #include <boost/geometry/geometries/box.hpp>
 
+BOOST_GEOMETRY_REGISTER_C_ARRAY_CS(cs::cartesian)
+BOOST_GEOMETRY_REGISTER_BOOST_TUPLE_CS(cs::cartesian)
 
 
 template <typename G>

Modified: branches/release/libs/geometry/test/core/coordinate_dimension.cpp
==============================================================================
--- branches/release/libs/geometry/test/core/coordinate_dimension.cpp (original)
+++ branches/release/libs/geometry/test/core/coordinate_dimension.cpp 2011-05-04 08:15:07 EDT (Wed, 04 May 2011)
@@ -16,8 +16,8 @@
 
 #include <boost/geometry/geometries/geometries.hpp>
 
-#include <boost/geometry/geometries/adapted/c_array_cartesian.hpp>
-#include <boost/geometry/geometries/adapted/tuple_cartesian.hpp>
+#include <boost/geometry/geometries/adapted/c_array.hpp>
+#include <boost/geometry/geometries/adapted/boost_tuple.hpp>
 
 #include <boost/geometry/geometries/adapted/boost_array_as_linestring.hpp>
 #include <boost/geometry/geometries/adapted/std_as_linestring.hpp>
@@ -25,6 +25,9 @@
 #include <vector>
 #include <deque>
 
+BOOST_GEOMETRY_REGISTER_C_ARRAY_CS(cs::cartesian)
+BOOST_GEOMETRY_REGISTER_BOOST_TUPLE_CS(cs::cartesian)
+
 
 template <typename G, int Expected>
 void test_geometry()

Modified: branches/release/libs/geometry/test/core/coordinate_system.cpp
==============================================================================
--- branches/release/libs/geometry/test/core/coordinate_system.cpp (original)
+++ branches/release/libs/geometry/test/core/coordinate_system.cpp 2011-05-04 08:15:07 EDT (Wed, 04 May 2011)
@@ -16,8 +16,8 @@
 
 #include <boost/geometry/geometries/geometries.hpp>
 
-#include <boost/geometry/geometries/adapted/c_array_cartesian.hpp>
-#include <boost/geometry/geometries/adapted/tuple_cartesian.hpp>
+#include <boost/geometry/geometries/adapted/c_array.hpp>
+#include <boost/geometry/geometries/adapted/boost_tuple.hpp>
 
 #include <boost/geometry/geometries/adapted/boost_array_as_linestring.hpp>
 #include <boost/geometry/geometries/adapted/std_as_linestring.hpp>
@@ -25,6 +25,9 @@
 #include <vector>
 #include <deque>
 
+BOOST_GEOMETRY_REGISTER_C_ARRAY_CS(cs::cartesian)
+BOOST_GEOMETRY_REGISTER_BOOST_TUPLE_CS(cs::cartesian)
+
 
 template <typename G, typename Expected>
 void test_geometry()

Modified: branches/release/libs/geometry/test/core/coordinate_type.cpp
==============================================================================
--- branches/release/libs/geometry/test/core/coordinate_type.cpp (original)
+++ branches/release/libs/geometry/test/core/coordinate_type.cpp 2011-05-04 08:15:07 EDT (Wed, 04 May 2011)
@@ -16,8 +16,8 @@
 
 #include <boost/geometry/geometries/geometries.hpp>
 
-#include <boost/geometry/geometries/adapted/c_array_cartesian.hpp>
-#include <boost/geometry/geometries/adapted/tuple_cartesian.hpp>
+#include <boost/geometry/geometries/adapted/c_array.hpp>
+#include <boost/geometry/geometries/adapted/boost_tuple.hpp>
 
 #include <boost/geometry/geometries/adapted/boost_array_as_linestring.hpp>
 #include <boost/geometry/geometries/adapted/std_as_linestring.hpp>
@@ -25,6 +25,9 @@
 #include <vector>
 #include <deque>
 
+BOOST_GEOMETRY_REGISTER_C_ARRAY_CS(cs::cartesian)
+BOOST_GEOMETRY_REGISTER_BOOST_TUPLE_CS(cs::cartesian)
+
 
 template <typename G, typename Expected>
 void test_geometry()

Modified: branches/release/libs/geometry/test/core/geometry_id.cpp
==============================================================================
--- branches/release/libs/geometry/test/core/geometry_id.cpp (original)
+++ branches/release/libs/geometry/test/core/geometry_id.cpp 2011-05-04 08:15:07 EDT (Wed, 04 May 2011)
@@ -15,8 +15,8 @@
 
 #include <boost/geometry/geometries/geometries.hpp>
 
-#include <boost/geometry/geometries/adapted/c_array_cartesian.hpp>
-#include <boost/geometry/geometries/adapted/tuple_cartesian.hpp>
+#include <boost/geometry/geometries/adapted/c_array.hpp>
+#include <boost/geometry/geometries/adapted/boost_tuple.hpp>
 
 #include <boost/geometry/geometries/adapted/boost_array_as_linestring.hpp>
 #include <boost/geometry/geometries/adapted/std_as_linestring.hpp>
@@ -24,6 +24,9 @@
 #include <vector>
 #include <deque>
 
+BOOST_GEOMETRY_REGISTER_C_ARRAY_CS(cs::cartesian)
+BOOST_GEOMETRY_REGISTER_BOOST_TUPLE_CS(cs::cartesian)
+
 
 template <typename G, int Expected>
 void test_geometry()

Modified: branches/release/libs/geometry/test/core/point_type.cpp
==============================================================================
--- branches/release/libs/geometry/test/core/point_type.cpp (original)
+++ branches/release/libs/geometry/test/core/point_type.cpp 2011-05-04 08:15:07 EDT (Wed, 04 May 2011)
@@ -15,8 +15,8 @@
 
 #include <boost/geometry/geometries/geometries.hpp>
 
-#include <boost/geometry/geometries/adapted/c_array_cartesian.hpp>
-#include <boost/geometry/geometries/adapted/tuple_cartesian.hpp>
+#include <boost/geometry/geometries/adapted/c_array.hpp>
+#include <boost/geometry/geometries/adapted/boost_tuple.hpp>
 
 #include <boost/geometry/geometries/adapted/boost_array_as_linestring.hpp>
 #include <boost/geometry/geometries/adapted/std_as_linestring.hpp>
@@ -24,6 +24,9 @@
 #include <vector>
 #include <deque>
 
+BOOST_GEOMETRY_REGISTER_C_ARRAY_CS(cs::cartesian)
+BOOST_GEOMETRY_REGISTER_BOOST_TUPLE_CS(cs::cartesian)
+
 
 template <typename G, typename Expected>
 void test_geometry()

Modified: branches/release/libs/geometry/test/core/tag.cpp
==============================================================================
--- branches/release/libs/geometry/test/core/tag.cpp (original)
+++ branches/release/libs/geometry/test/core/tag.cpp 2011-05-04 08:15:07 EDT (Wed, 04 May 2011)
@@ -14,8 +14,8 @@
 
 #include <boost/geometry/geometries/geometries.hpp>
 
-#include <boost/geometry/geometries/adapted/c_array_cartesian.hpp>
-#include <boost/geometry/geometries/adapted/tuple_cartesian.hpp>
+#include <boost/geometry/geometries/adapted/c_array.hpp>
+#include <boost/geometry/geometries/adapted/boost_tuple.hpp>
 
 #include <boost/geometry/geometries/adapted/boost_array_as_linestring.hpp>
 #include <boost/geometry/geometries/adapted/std_as_linestring.hpp>
@@ -23,6 +23,9 @@
 #include <vector>
 #include <deque>
 
+BOOST_GEOMETRY_REGISTER_C_ARRAY_CS(cs::cartesian)
+BOOST_GEOMETRY_REGISTER_BOOST_TUPLE_CS(cs::cartesian)
+
 
 template <typename G, typename Expected>
 void test_geometry()

Modified: branches/release/libs/geometry/test/core/topological_dimension.cpp
==============================================================================
--- branches/release/libs/geometry/test/core/topological_dimension.cpp (original)
+++ branches/release/libs/geometry/test/core/topological_dimension.cpp 2011-05-04 08:15:07 EDT (Wed, 04 May 2011)
@@ -14,8 +14,8 @@
 
 #include <boost/geometry/geometries/geometries.hpp>
 
-#include <boost/geometry/geometries/adapted/c_array_cartesian.hpp>
-#include <boost/geometry/geometries/adapted/tuple_cartesian.hpp>
+#include <boost/geometry/geometries/adapted/c_array.hpp>
+#include <boost/geometry/geometries/adapted/boost_tuple.hpp>
 
 #include <boost/geometry/geometries/adapted/boost_array_as_linestring.hpp>
 #include <boost/geometry/geometries/adapted/std_as_linestring.hpp>
@@ -23,6 +23,9 @@
 #include <vector>
 #include <deque>
 
+BOOST_GEOMETRY_REGISTER_C_ARRAY_CS(cs::cartesian)
+BOOST_GEOMETRY_REGISTER_BOOST_TUPLE_CS(cs::cartesian)
+
 
 template <typename G, int Expected>
 void test_geometry()

Modified: branches/release/libs/geometry/test/geometries/Jamfile.v2
==============================================================================
--- branches/release/libs/geometry/test/geometries/Jamfile.v2 (original)
+++ branches/release/libs/geometry/test/geometries/Jamfile.v2 2011-05-04 08:15:07 EDT (Wed, 04 May 2011)
@@ -10,10 +10,12 @@
 
 test-suite boost-geometry-geometries
     :
+ [ run adapted.cpp ]
     [ run boost_array_as_point.cpp ]
     [ run boost_fusion.cpp ]
     [ run boost_polygon.cpp ]
     [ run boost_range.cpp ]
+ [ run boost_tuple.cpp ]
     [ run box.cpp ]
     #[ compile-fail custom_linestring.cpp
     # : # requirements

Modified: branches/release/libs/geometry/test/geometries/adapted.cpp
==============================================================================
--- branches/release/libs/geometry/test/geometries/adapted.cpp (original)
+++ branches/release/libs/geometry/test/geometries/adapted.cpp 2011-05-04 08:15:07 EDT (Wed, 04 May 2011)
@@ -45,11 +45,14 @@
 #endif
 
 
-#include <boost/geometry/geometries/adapted/c_array_cartesian.hpp>
-#include <boost/geometry/geometries/adapted/tuple_cartesian.hpp>
+#include <boost/geometry/geometries/adapted/c_array.hpp>
+#include <boost/geometry/geometries/adapted/boost_tuple.hpp>
 
 #include <test_common/test_point.hpp>
 
+BOOST_GEOMETRY_REGISTER_C_ARRAY_CS(cs::cartesian)
+BOOST_GEOMETRY_REGISTER_BOOST_TUPLE_CS(cs::cartesian)
+
 
 // ----------------------------------------------------------------------------
 

Modified: branches/release/libs/geometry/test/geometries/boost_array_as_point.cpp
==============================================================================
--- branches/release/libs/geometry/test/geometries/boost_array_as_point.cpp (original)
+++ branches/release/libs/geometry/test/geometries/boost_array_as_point.cpp 2011-05-04 08:15:07 EDT (Wed, 04 May 2011)
@@ -12,11 +12,15 @@
 
 
 #include<boost/geometry/geometry.hpp>
-#include<boost/geometry/geometries/adapted/boost_array_cartesian.hpp>
-#include<boost/geometry/geometries/adapted/c_array_cartesian.hpp>
-#include<boost/geometry/geometries/adapted/tuple_cartesian.hpp>
+#include<boost/geometry/geometries/adapted/boost_array.hpp>
+#include<boost/geometry/geometries/adapted/c_array.hpp>
+#include<boost/geometry/geometries/adapted/boost_tuple.hpp>
 #include<iostream>
 
+BOOST_GEOMETRY_REGISTER_C_ARRAY_CS(cs::cartesian)
+BOOST_GEOMETRY_REGISTER_BOOST_ARRAY_CS(cs::cartesian)
+BOOST_GEOMETRY_REGISTER_BOOST_TUPLE_CS(cs::cartesian)
+
 
 int test_main(int, char* [])
 {

Modified: branches/release/libs/geometry/test/geometries/boost_fusion.cpp
==============================================================================
--- branches/release/libs/geometry/test/geometries/boost_fusion.cpp (original)
+++ branches/release/libs/geometry/test/geometries/boost_fusion.cpp 2011-05-04 08:15:07 EDT (Wed, 04 May 2011)
@@ -13,12 +13,16 @@
 #include <boost/fusion/include/adapt_struct_named.hpp>
 
 #include <boost/geometry/geometry.hpp>
-#include <boost/geometry/geometries/adapted/fusion.hpp>
-#include <boost/geometry/geometries/adapted/fusion_cartesian.hpp>
-#include<boost/geometry/geometries/adapted/c_array_cartesian.hpp>
-#include <boost/geometry/geometries/adapted/tuple_cartesian.hpp>
+#include <boost/geometry/geometries/adapted/boost_fusion.hpp>
+#include <boost/geometry/geometries/adapted/c_array.hpp>
+#include <boost/geometry/geometries/adapted/boost_tuple.hpp>
 #include <iostream>
 
+BOOST_GEOMETRY_REGISTER_C_ARRAY_CS(cs::cartesian)
+BOOST_GEOMETRY_REGISTER_BOOST_FUSION_CS(cs::cartesian)
+BOOST_GEOMETRY_REGISTER_BOOST_TUPLE_CS(cs::cartesian)
+
+
 struct for_fusion_2d
 {
     float x,y;

Modified: branches/release/libs/geometry/test/geometries/box.cpp
==============================================================================
--- branches/release/libs/geometry/test/geometries/box.cpp (original)
+++ branches/release/libs/geometry/test/geometries/box.cpp 2011-05-04 08:15:07 EDT (Wed, 04 May 2011)
@@ -20,10 +20,13 @@
 
 #include <boost/geometry/geometries/point.hpp>
 #include <boost/geometry/geometries/box.hpp>
-#include <boost/geometry/geometries/adapted/c_array_cartesian.hpp>
-#include <boost/geometry/geometries/adapted/tuple_cartesian.hpp>
+#include <boost/geometry/geometries/adapted/c_array.hpp>
+#include <boost/geometry/geometries/adapted/boost_tuple.hpp>
 #include <test_common/test_point.hpp>
 
+BOOST_GEOMETRY_REGISTER_C_ARRAY_CS(cs::cartesian)
+BOOST_GEOMETRY_REGISTER_BOOST_TUPLE_CS(cs::cartesian)
+
 
 template <typename P>
 bg::model::box<P> create_box()

Modified: branches/release/libs/geometry/test/geometries/custom_linestring.cpp
==============================================================================
--- branches/release/libs/geometry/test/geometries/custom_linestring.cpp (original)
+++ branches/release/libs/geometry/test/geometries/custom_linestring.cpp 2011-05-04 08:15:07 EDT (Wed, 04 May 2011)
@@ -27,10 +27,13 @@
 #include <boost/geometry/geometries/geometries.hpp>
 #include <boost/geometry/geometries/adapted/boost_array_as_linestring.hpp>
 #include <boost/geometry/geometries/adapted/std_as_linestring.hpp>
-#include <boost/geometry/geometries/adapted/c_array_cartesian.hpp>
-#include <boost/geometry/geometries/adapted/tuple_cartesian.hpp>
+#include <boost/geometry/geometries/adapted/c_array.hpp>
+#include <boost/geometry/geometries/adapted/boost_tuple.hpp>
 #include <test_common/test_point.hpp>
 
+BOOST_GEOMETRY_REGISTER_C_ARRAY_CS(cs::cartesian)
+BOOST_GEOMETRY_REGISTER_BOOST_TUPLE_CS(cs::cartesian)
+
 //#define TEST_FAIL_CLEAR
 //#define TEST_FAIL_APPEND
 

Modified: branches/release/libs/geometry/test/geometries/segment.cpp
==============================================================================
--- branches/release/libs/geometry/test/geometries/segment.cpp (original)
+++ branches/release/libs/geometry/test/geometries/segment.cpp 2011-05-04 08:15:07 EDT (Wed, 04 May 2011)
@@ -22,8 +22,8 @@
 #include <boost/geometry/geometries/segment.hpp>
 
 
-#include <boost/geometry/geometries/adapted/c_array_cartesian.hpp>
-#include <boost/geometry/geometries/adapted/tuple_cartesian.hpp>
+#include <boost/geometry/geometries/adapted/c_array.hpp>
+#include <boost/geometry/geometries/adapted/boost_tuple.hpp>
 
 #include <boost/geometry/util/write_dsv.hpp>
 
@@ -31,6 +31,9 @@
 #include <test_common/test_point.hpp>
 #include <test_geometries/custom_segment.hpp>
 
+BOOST_GEOMETRY_REGISTER_C_ARRAY_CS(cs::cartesian)
+BOOST_GEOMETRY_REGISTER_BOOST_TUPLE_CS(cs::cartesian)
+
 
 template <typename P>
 void test_all()

Modified: branches/release/libs/geometry/test/multi/algorithms/multi_distance.cpp
==============================================================================
--- branches/release/libs/geometry/test/multi/algorithms/multi_distance.cpp (original)
+++ branches/release/libs/geometry/test/multi/algorithms/multi_distance.cpp 2011-05-04 08:15:07 EDT (Wed, 04 May 2011)
@@ -23,10 +23,13 @@
 #include <boost/geometry/domains/gis/io/wkt/read_wkt_multi.hpp>
 
 #include <boost/geometry/geometries/geometries.hpp>
-#include <boost/geometry/geometries/adapted/c_array_cartesian.hpp>
-#include <boost/geometry/geometries/adapted/tuple_cartesian.hpp>
+#include <boost/geometry/geometries/adapted/c_array.hpp>
+#include <boost/geometry/geometries/adapted/boost_tuple.hpp>
 #include <test_common/test_point.hpp>
 
+BOOST_GEOMETRY_REGISTER_C_ARRAY_CS(cs::cartesian)
+BOOST_GEOMETRY_REGISTER_BOOST_TUPLE_CS(cs::cartesian)
+
 
 template <typename Geometry1, typename Geometry2>
 void test_distance(std::string const& wkt1, std::string const& wkt2, double expected)

Modified: branches/release/libs/geometry/test/multi/algorithms/multi_envelope.cpp
==============================================================================
--- branches/release/libs/geometry/test/multi/algorithms/multi_envelope.cpp (original)
+++ branches/release/libs/geometry/test/multi/algorithms/multi_envelope.cpp 2011-05-04 08:15:07 EDT (Wed, 04 May 2011)
@@ -24,11 +24,12 @@
 #include <boost/geometry/domains/gis/io/wkt/read_wkt_multi.hpp>
 
 #include <boost/geometry/geometries/geometries.hpp>
-#include <boost/geometry/geometries/adapted/c_array_cartesian.hpp>
-#include <boost/geometry/geometries/adapted/tuple_cartesian.hpp>
+#include <boost/geometry/geometries/adapted/c_array.hpp>
+#include <boost/geometry/geometries/adapted/boost_tuple.hpp>
 #include <test_common/test_point.hpp>
 
-
+BOOST_GEOMETRY_REGISTER_C_ARRAY_CS(cs::cartesian)
+BOOST_GEOMETRY_REGISTER_BOOST_TUPLE_CS(cs::cartesian)
 
 
 template <typename P>

Modified: branches/release/libs/geometry/test/multi/algorithms/overlay/multi_overlay_cases.hpp
==============================================================================
--- branches/release/libs/geometry/test/multi/algorithms/overlay/multi_overlay_cases.hpp (original)
+++ branches/release/libs/geometry/test/multi/algorithms/overlay/multi_overlay_cases.hpp 2011-05-04 08:15:07 EDT (Wed, 04 May 2011)
@@ -138,7 +138,7 @@
     // -> went wrong in the assemble phase for intersection (traversal is OK)
     // -> fixed
     "MULTIPOLYGON(((3 3,3 4,4 4,4 3,3 3)),((5 3,5 4,4 4,4 5,3 5,3 6,5 6,5 5,7 5,7 6,8 6,8 5,9 5,9 2,8 2,8 1,7 1,7 2,5 2,5 3),(6 3,8 3,8 4,6 4,6 3)))",
- "MULTIPOLYGON(((6 3,6 4,7 4,7 3,6 3)),((2 3,1 3,1 4,3 4,3 5,4 5,4 6,5 6,5 7,9 7,9 4,7 4,7 5,8 5,8 6,7 6,7 5,6 5,6 4,4 4,4 3,3 3,3 2,4 2,2 2,2 3)),((5 2,4 2,4 3,6 3,6 2,5 2)),((7 2,7 3,8 3,8 2,8 1,7 1,7 2)))"
+ "MULTIPOLYGON(((6 3,6 4,7 4,7 3,6 3)),((2 3,1 3,1 4,3 4,3 5,4 5,4 6,5 6,5 7,9 7,9 4,7 4,7 5,8 5,8 6,7 6,7 5,6 5,6 4,4 4,4 3,3 3,3 2,2 2,2 3)),((5 2,4 2,4 3,6 3,6 2,5 2)),((7 2,7 3,8 3,8 2,8 1,7 1,7 2)))"
 };
 
 static std::string case_78_multi[2] =

Modified: branches/release/libs/geometry/test/point_concept/array_point.cpp
==============================================================================
--- branches/release/libs/geometry/test/point_concept/array_point.cpp (original)
+++ branches/release/libs/geometry/test/point_concept/array_point.cpp 2011-05-04 08:15:07 EDT (Wed, 04 May 2011)
@@ -14,9 +14,12 @@
 
 #include <test_common/test_point.hpp>
 
-#include <boost/geometry/geometries/adapted/c_array_cartesian.hpp>
+#include <boost/geometry/geometries/adapted/c_array.hpp>
 #include "function_requiring_a_point.hpp"
 
+BOOST_GEOMETRY_REGISTER_C_ARRAY_CS(cs::cartesian)
+
+
 int main()
 {
     float p1[3] = { 0, 0, 0 };

Modified: branches/release/libs/geometry/test/policies/compare.cpp
==============================================================================
--- branches/release/libs/geometry/test/policies/compare.cpp (original)
+++ branches/release/libs/geometry/test/policies/compare.cpp 2011-05-04 08:15:07 EDT (Wed, 04 May 2011)
@@ -19,11 +19,14 @@
 #include <boost/geometry/strategies/strategies.hpp>
 
 #include <boost/geometry/geometries/point.hpp>
-#include <boost/geometry/geometries/adapted/c_array_cartesian.hpp>
-#include <boost/geometry/geometries/adapted/tuple_cartesian.hpp>
+#include <boost/geometry/geometries/adapted/c_array.hpp>
+#include <boost/geometry/geometries/adapted/boost_tuple.hpp>
 
 #include <test_common/test_point.hpp>
 
+BOOST_GEOMETRY_REGISTER_C_ARRAY_CS(cs::cartesian)
+BOOST_GEOMETRY_REGISTER_BOOST_TUPLE_CS(cs::cartesian)
+
 
 template <typename Container>
 inline std::string coordinates(Container const& points)

Modified: branches/release/libs/geometry/test/ranges/box_range.cpp
==============================================================================
--- branches/release/libs/geometry/test/ranges/box_range.cpp (original)
+++ branches/release/libs/geometry/test/ranges/box_range.cpp 2011-05-04 08:15:07 EDT (Wed, 04 May 2011)
@@ -54,6 +54,9 @@
         int const n = boost::size(range);
         BOOST_CHECK_EQUAL(n, 5);
     }
+
+ // Check Boost.Range concept
+ BOOST_CONCEPT_ASSERT( (boost::ForwardRangeConcept<range_type>) );
 }
 
 

Modified: branches/release/libs/geometry/test/ranges/segment_range.cpp
==============================================================================
--- branches/release/libs/geometry/test/ranges/segment_range.cpp (original)
+++ branches/release/libs/geometry/test/ranges/segment_range.cpp 2011-05-04 08:15:07 EDT (Wed, 04 May 2011)
@@ -58,6 +58,10 @@
         int const n = boost::size(range);
         BOOST_CHECK_EQUAL(n, 2);
     }
+
+ // Check Boost.Range concept
+ BOOST_CONCEPT_ASSERT( (boost::ForwardRangeConcept<range_type>) );
+
 }
 
 

Modified: branches/release/libs/geometry/test/strategies/projected_point.cpp
==============================================================================
--- branches/release/libs/geometry/test/strategies/projected_point.cpp (original)
+++ branches/release/libs/geometry/test/strategies/projected_point.cpp 2011-05-04 08:15:07 EDT (Wed, 04 May 2011)
@@ -22,14 +22,16 @@
 
 
 #include <boost/geometry/geometries/point.hpp>
-#include <boost/geometry/geometries/adapted/c_array_cartesian.hpp>
-#include <boost/geometry/geometries/adapted/tuple_cartesian.hpp>
+#include <boost/geometry/geometries/adapted/c_array.hpp>
+#include <boost/geometry/geometries/adapted/boost_tuple.hpp>
 #include <test_common/test_point.hpp>
 
 #ifdef HAVE_TTMATH
 # include <boost/geometry/extensions/contrib/ttmath_stub.hpp>
 #endif
 
+BOOST_GEOMETRY_REGISTER_C_ARRAY_CS(cs::cartesian)
+BOOST_GEOMETRY_REGISTER_BOOST_TUPLE_CS(cs::cartesian)
 
 
 template <typename P, typename PS, typename CalculationType>

Modified: branches/release/libs/geometry/test/strategies/pythagoras.cpp
==============================================================================
--- branches/release/libs/geometry/test/strategies/pythagoras.cpp (original)
+++ branches/release/libs/geometry/test/strategies/pythagoras.cpp 2011-05-04 08:15:07 EDT (Wed, 04 May 2011)
@@ -30,8 +30,8 @@
 
 
 #include <boost/geometry/geometries/point.hpp>
-#include <boost/geometry/geometries/adapted/c_array_cartesian.hpp>
-#include <boost/geometry/geometries/adapted/tuple_cartesian.hpp>
+#include <boost/geometry/geometries/adapted/c_array.hpp>
+#include <boost/geometry/geometries/adapted/boost_tuple.hpp>
 
 #include <test_common/test_point.hpp>
 
@@ -39,6 +39,8 @@
 # include <boost/geometry/extensions/contrib/ttmath_stub.hpp>
 #endif
 
+BOOST_GEOMETRY_REGISTER_C_ARRAY_CS(cs::cartesian)
+BOOST_GEOMETRY_REGISTER_BOOST_TUPLE_CS(cs::cartesian)
 
 
 template <typename P1, typename P2>

Modified: branches/release/libs/geometry/test/strategies/segment_intersection.cpp
==============================================================================
--- branches/release/libs/geometry/test/strategies/segment_intersection.cpp (original)
+++ branches/release/libs/geometry/test/strategies/segment_intersection.cpp 2011-05-04 08:15:07 EDT (Wed, 04 May 2011)
@@ -38,8 +38,9 @@
 
 #include <boost/geometry/geometries/point.hpp>
 #include <boost/geometry/geometries/segment.hpp>
-#include <boost/geometry/geometries/adapted/tuple_cartesian.hpp>
+#include <boost/geometry/geometries/adapted/boost_tuple.hpp>
 
+BOOST_GEOMETRY_REGISTER_BOOST_TUPLE_CS(cs::cartesian);
 
 
 template <typename R>

Modified: branches/release/libs/geometry/test/strategies/transformer.cpp
==============================================================================
--- branches/release/libs/geometry/test/strategies/transformer.cpp (original)
+++ branches/release/libs/geometry/test/strategies/transformer.cpp 2011-05-04 08:15:07 EDT (Wed, 04 May 2011)
@@ -24,10 +24,11 @@
 #include <boost/geometry/algorithms/transform.hpp>
 
 #include <boost/geometry/geometries/point.hpp>
-#include <boost/geometry/geometries/adapted/c_array_cartesian.hpp>
-#include <boost/geometry/geometries/adapted/tuple_cartesian.hpp>
-
+#include <boost/geometry/geometries/adapted/c_array.hpp>
+#include <boost/geometry/geometries/adapted/boost_tuple.hpp>
 
+BOOST_GEOMETRY_REGISTER_C_ARRAY_CS(cs::cartesian)
+BOOST_GEOMETRY_REGISTER_BOOST_TUPLE_CS(cs::cartesian)
 
 
 template <typename P, typename T>

Modified: branches/release/libs/geometry/test/util/for_each_coordinate.cpp
==============================================================================
--- branches/release/libs/geometry/test/util/for_each_coordinate.cpp (original)
+++ branches/release/libs/geometry/test/util/for_each_coordinate.cpp 2011-05-04 08:15:07 EDT (Wed, 04 May 2011)
@@ -23,10 +23,13 @@
 
 
 #include <boost/geometry/geometries/point.hpp>
-#include <boost/geometry/geometries/adapted/c_array_cartesian.hpp>
-#include <boost/geometry/geometries/adapted/tuple_cartesian.hpp>
+#include <boost/geometry/geometries/adapted/c_array.hpp>
+#include <boost/geometry/geometries/adapted/boost_tuple.hpp>
 #include <test_common/test_point.hpp>
 
+BOOST_GEOMETRY_REGISTER_C_ARRAY_CS(cs::cartesian)
+BOOST_GEOMETRY_REGISTER_BOOST_TUPLE_CS(cs::cartesian)
+
 
 struct test_operation
 {

Modified: branches/release/libs/geometry/test/views/closeable_view.cpp
==============================================================================
--- branches/release/libs/geometry/test/views/closeable_view.cpp (original)
+++ branches/release/libs/geometry/test/views/closeable_view.cpp 2011-05-04 08:15:07 EDT (Wed, 04 May 2011)
@@ -19,8 +19,9 @@
 #include <boost/geometry/domains/gis/io/wkt/read_wkt.hpp>
 #include <boost/geometry/util/write_dsv.hpp>
 #include <boost/geometry/geometries/geometries.hpp>
-#include <boost/geometry/geometries/adapted/tuple_cartesian.hpp>
+#include <boost/geometry/geometries/adapted/boost_tuple.hpp>
 
+BOOST_GEOMETRY_REGISTER_BOOST_TUPLE_CS(cs::cartesian);
 
 
 

Modified: branches/release/libs/geometry/test/views/reversible_closeable.cpp
==============================================================================
--- branches/release/libs/geometry/test/views/reversible_closeable.cpp (original)
+++ branches/release/libs/geometry/test/views/reversible_closeable.cpp 2011-05-04 08:15:07 EDT (Wed, 04 May 2011)
@@ -21,7 +21,9 @@
 #include <boost/geometry/domains/gis/io/wkt/read_wkt.hpp>
 #include <boost/geometry/util/write_dsv.hpp>
 #include <boost/geometry/geometries/geometries.hpp>
-#include <boost/geometry/geometries/adapted/tuple_cartesian.hpp>
+#include <boost/geometry/geometries/adapted/boost_tuple.hpp>
+
+BOOST_GEOMETRY_REGISTER_BOOST_TUPLE_CS(cs::cartesian);
 
 
 template <typename View>

Modified: branches/release/libs/geometry/test/views/reversible_view.cpp
==============================================================================
--- branches/release/libs/geometry/test/views/reversible_view.cpp (original)
+++ branches/release/libs/geometry/test/views/reversible_view.cpp 2011-05-04 08:15:07 EDT (Wed, 04 May 2011)
@@ -19,7 +19,10 @@
 #include <boost/geometry/domains/gis/io/wkt/wkt.hpp>
 #include <boost/geometry/util/write_dsv.hpp>
 #include <boost/geometry/geometries/geometries.hpp>
-#include <boost/geometry/geometries/adapted/tuple_cartesian.hpp>
+#include <boost/geometry/geometries/adapted/boost_tuple.hpp>
+
+BOOST_GEOMETRY_REGISTER_BOOST_TUPLE_CS(cs::cartesian);
+
 
 template <bg::iterate_direction Direction, typename Range>
 void test_forward_or_reverse(Range const& range, std::string const& expected)


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